From f9a9adc65f35fe0dffa27e9d295f6462adaa8e44 Mon Sep 17 00:00:00 2001 From: bischofmax <106820326+bischofmax@users.noreply.github.com> Date: Wed, 20 Sep 2023 16:16:07 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20hpi-schu?= =?UTF-8?q?l-cloud/schulcloud-server@e33f7e5b8a499c4f5f6f1dd9ed28204bd9b98?= =?UTF-8?q?31f=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/ReadableStreamWithFileTypeImp.html | 316 ++++++++++++++++++ coverage.html | 24 ++ dependencies.html | 4 +- injectables/FilesStorageService.html | 109 +++--- injectables/PreviewService.html | 2 +- js/menu-wc.js | 3 + js/search/search_index.js | 4 +- miscellaneous/typealiases.html | 21 ++ miscellaneous/variables.html | 231 +++++++------ modules/AuthenticationModule.html | 8 +- modules/AuthenticationModule/dependencies.svg | 8 +- modules/AuthorizationModule.html | 8 +- modules/AuthorizationModule/dependencies.svg | 8 +- modules/BoardModule.html | 8 +- modules/BoardModule/dependencies.svg | 8 +- modules/CacheWrapperModule.html | 8 +- modules/CacheWrapperModule/dependencies.svg | 8 +- modules/CalendarModule.html | 8 +- modules/CalendarModule/dependencies.svg | 8 +- modules/CollaborativeStorageModule.html | 8 +- .../dependencies.svg | 8 +- modules/CommonToolModule.html | 112 +++---- modules/CommonToolModule/dependencies.svg | 112 +++---- modules/ConsoleWriterModule.html | 8 +- modules/ConsoleWriterModule/dependencies.svg | 8 +- modules/ContextExternalToolModule.html | 8 +- .../dependencies.svg | 8 +- modules/CoreModule.html | 8 +- modules/CoreModule/dependencies.svg | 8 +- modules/DatabaseManagementModule.html | 8 +- .../DatabaseManagementModule/dependencies.svg | 8 +- modules/ExternalToolModule.html | 152 ++++----- modules/ExternalToolModule/dependencies.svg | 152 ++++----- modules/FilesStorageClientModule.html | 74 ++-- .../FilesStorageClientModule/dependencies.svg | 74 ++-- modules/FilesStorageModule.html | 114 +++---- modules/FilesStorageModule/dependencies.svg | 114 +++---- modules/FwuLearningContentsModule.html | 70 ++-- .../dependencies.svg | 70 ++-- modules/FwuLearningContentsTestModule.html | 78 ++--- .../dependencies.svg | 78 ++--- modules/H5PEditorModule.html | 46 +-- modules/H5PEditorModule/dependencies.svg | 46 +-- modules/IdentityManagementModule.html | 8 +- .../IdentityManagementModule/dependencies.svg | 8 +- modules/KeycloakAdministrationModule.html | 8 +- .../dependencies.svg | 8 +- modules/KeycloakConfigurationModule.html | 8 +- .../dependencies.svg | 8 +- modules/KeycloakModule.html | 8 +- modules/KeycloakModule/dependencies.svg | 8 +- modules/LearnroomApiModule.html | 158 ++++----- modules/LearnroomApiModule/dependencies.svg | 158 ++++----- modules/LegacySchoolApiModule.html | 62 ++-- .../LegacySchoolApiModule/dependencies.svg | 62 ++-- modules/LegacySchoolModule.html | 104 +++--- modules/LegacySchoolModule/dependencies.svg | 104 +++--- modules/LessonModule.html | 112 +++---- modules/LessonModule/dependencies.svg | 112 +++---- modules/LoggerModule.html | 8 +- modules/LoggerModule/dependencies.svg | 8 +- modules/LtiToolModule.html | 8 +- modules/LtiToolModule/dependencies.svg | 8 +- modules/NewsModule.html | 56 ++-- modules/NewsModule/dependencies.svg | 56 ++-- modules/OauthApiModule.html | 102 +++--- modules/OauthApiModule/dependencies.svg | 102 +++--- modules/OauthModule.html | 8 +- modules/OauthModule/dependencies.svg | 8 +- modules/OauthProviderModule.html | 8 +- modules/OauthProviderModule/dependencies.svg | 8 +- modules/ProvisioningModule.html | 128 +++---- modules/ProvisioningModule/dependencies.svg | 128 +++---- modules/PseudonymModule.html | 8 +- modules/PseudonymModule/dependencies.svg | 8 +- modules/SchoolExternalToolModule.html | 8 +- .../SchoolExternalToolModule/dependencies.svg | 8 +- modules/SharingApiModule.html | 70 ++-- modules/SharingApiModule/dependencies.svg | 70 ++-- modules/SystemModule.html | 66 ++-- modules/SystemModule/dependencies.svg | 66 ++-- modules/TaskModule.html | 112 +++---- modules/TaskModule/dependencies.svg | 112 +++---- modules/TeamsModule.html | 8 +- modules/TeamsModule/dependencies.svg | 8 +- modules/ToolApiModule.html | 166 ++++----- modules/ToolApiModule/dependencies.svg | 166 ++++----- modules/ToolLaunchModule.html | 128 +++---- modules/ToolLaunchModule/dependencies.svg | 128 +++---- modules/ToolModule.html | 8 +- modules/ToolModule/dependencies.svg | 8 +- modules/UserApiModule.html | 26 +- modules/UserApiModule/dependencies.svg | 26 +- modules/UserLoginMigrationApiModule.html | 118 +++---- .../dependencies.svg | 118 +++---- modules/UserLoginMigrationModule.html | 8 +- .../UserLoginMigrationModule/dependencies.svg | 8 +- overview.html | 2 +- 98 files changed, 2796 insertions(+), 2396 deletions(-) create mode 100644 classes/ReadableStreamWithFileTypeImp.html diff --git a/classes/ReadableStreamWithFileTypeImp.html b/classes/ReadableStreamWithFileTypeImp.html new file mode 100644 index 00000000000..585cf3be993 --- /dev/null +++ b/classes/ReadableStreamWithFileTypeImp.html @@ -0,0 +1,316 @@ + + + + + + schulcloud-server documentation + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + +
+
+

+

File

+

+

+ apps/server/src/shared/testing/factory/readable-stream-with-file-type.factory.ts +

+ + + +

+

Extends

+

+

+ Readable +

+ +

+

Implements

+

+

+ ReadableStreamWithFileType +

+ + +
+

Index

+ + + + + + + + + + + + + + + +
+
Properties
+
+ +
+
+ +
+

Constructor

+ + + + + + + + + + + + + +
+constructor(props: ReadableStreamWithFileTypeProps) +
+ +
+
+ Parameters : + + + + + + + + + + + + + + + + + + +
NameTypeOptional
props + ReadableStreamWithFileTypeProps + + No +
+
+
+
+ +
+ +

+ Properties +

+ + + + + + + + + + + + + + +
+ + + Optional + fileType + + +
+ Type : FileTypeResult + +
+ +
+
+ + + + + + + +
+ + +
+
import { FileTypeResult, ReadableStreamWithFileType } from 'file-type';
+import { Readable } from 'stream';
+import { BaseFactory } from './base.factory';
+
+type ReadableStreamWithFileTypeProps = {
+	fileType?: FileTypeResult;
+	readable: Readable;
+};
+
+class ReadableStreamWithFileTypeImp extends Readable implements ReadableStreamWithFileType {
+	fileType?: FileTypeResult;
+
+	constructor(props: ReadableStreamWithFileTypeProps) {
+		super();
+		this.fileType = props.fileType;
+	}
+}
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export const readableStreamWithFileTypeFactory = BaseFactory.define<
+	ReadableStreamWithFileTypeImp,
+	ReadableStreamWithFileTypeProps
+>(ReadableStreamWithFileTypeImp, () => {
+	const readable = Readable.from('abc');
+
+	return {
+		fileType: {
+			ext: 'png',
+			mime: 'image/png',
+		},
+		readable,
+	};
+});
+
+
+
+ + + + + + + + + +
+
+

results matching ""

+
    +
    +
    +

    No results matching ""

    +
    +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coverage.html b/coverage.html index 1ecd505fb2e..621d33cd0ef 100644 --- a/coverage.html +++ b/coverage.html @@ -16471,6 +16471,30 @@ (0/1) + + + + apps/server/src/shared/testing/factory/readable-stream-with-file-type.factory.ts + + class + ReadableStreamWithFileTypeImp + + 0 % + (0/3) + + + + + + apps/server/src/shared/testing/factory/readable-stream-with-file-type.factory.ts + + variable + readableStreamWithFileTypeFactory + + 0 % + (0/1) + + diff --git a/dependencies.html b/dependencies.html index 6c5f5251d59..36dd129eb57 100644 --- a/dependencies.html +++ b/dependencies.html @@ -185,6 +185,8 @@ feathers-mongoose : ^6.3.0
  • feathers-swagger : ^3.0.0
  • +
  • + file-type : ^18.5.0
  • freeport : ^1.0.5
  • @@ -273,8 +275,6 @@ socketio-file-upload : ^0.7.0
  • source-map-support : ^0.5.19
  • -
  • - stream-mime-type : ^2.0.0
  • strip-bom : ^4.0.0
  • diff --git a/injectables/FilesStorageService.html b/injectables/FilesStorageService.html index 0ab03dc5d64..a4f4c39b934 100644 --- a/injectables/FilesStorageService.html +++ b/injectables/FilesStorageService.html @@ -384,8 +384,8 @@

    - + @@ -467,8 +467,8 @@

    - + @@ -550,8 +550,8 @@

    - + @@ -622,8 +622,8 @@

    - + @@ -718,8 +718,8 @@

    - + @@ -814,8 +814,8 @@

    - + @@ -910,8 +910,8 @@

    - + @@ -993,8 +993,8 @@

    - + @@ -1065,8 +1065,8 @@

    - + @@ -1257,8 +1257,8 @@

    - + @@ -1329,8 +1329,8 @@

    - + @@ -1401,8 +1401,8 @@

    - + @@ -1473,8 +1473,8 @@

    - + @@ -1689,8 +1689,8 @@

    - + @@ -1785,8 +1785,8 @@

    - + @@ -2228,8 +2228,8 @@

    - + @@ -2312,8 +2312,8 @@

    - + @@ -2396,8 +2396,8 @@

    - + @@ -2468,8 +2468,8 @@

    - + @@ -2540,8 +2540,8 @@

    - + @@ -2612,8 +2612,8 @@

    - + @@ -2684,8 +2684,8 @@

    - + @@ -2756,8 +2756,8 @@

    - + @@ -2827,8 +2827,8 @@

    - + @@ -2899,8 +2899,8 @@

    - + @@ -3075,8 +3075,8 @@

    import { AntivirusService } from '@shared/infra/antivirus/antivirus.service'; import { S3ClientAdapter } from '@shared/infra/s3-client'; import { LegacyLogger } from '@src/core/logger'; +import FileType from 'file-type-cjs/file-type-cjs-index'; import { Readable } from 'stream'; -import StreamMimeType from 'stream-mime-type-cjs/stream-mime-type-cjs-index'; import { CopyFileResponse, CopyFilesOfParentParams, @@ -3193,12 +3193,9 @@

    } private async detectMimeTypeByStream(file: Readable): Promise<{ mime?: string; stream: Readable }> { - const { stream, mime } = await StreamMimeType.getMimeType(file, { - strict: true, - }); - const readable = new Readable().wrap(stream); + const stream = await FileType.fileTypeStream(file); - return { mime, stream: readable }; + return { mime: stream.fileType?.mime, stream }; } private async resolveFileName(file: FileDto, params: FileRecordParams): Promise<string> { diff --git a/injectables/PreviewService.html b/injectables/PreviewService.html index a2320aba821..5b83075eafc 100644 --- a/injectables/PreviewService.html +++ b/injectables/PreviewService.html @@ -1055,7 +1055,7 @@

    ): PassThrough { const mimeType = previewParams.outputFormat ?? fileRecord.mimeType; const format = this.getFormat(mimeType); - const im = subClass({ imageMagick: true }); + const im = subClass({ imageMagick: '7+' }); const preview = im(original.data, fileRecord.name); const { width } = previewParams; diff --git a/js/menu-wc.js b/js/menu-wc.js index b28c3dd7f5a..3c2bf6acc74 100644 --- a/js/menu-wc.js +++ b/js/menu-wc.js @@ -3727,6 +3727,9 @@ customElements.define('compodoc-menu', class extends HTMLElement { + diff --git a/js/search/search_index.js b/js/search/search_index.js index b8475ccad04..02e72afc7b1 100644 --- a/js/search/search_index.js +++ b/js/search/search_index.js @@ -1,4 +1,4 @@ var COMPODOC_SEARCH_INDEX = { - "index": {"version":"2.3.9","fields":["title","body"],"fieldVectors":[["title/classes/AbstractAccountService.html",[0,0.229,1,5.639]],["body/classes/AbstractAccountService.html",[0,0.169,1,6.214,2,0.571,3,0.013,4,0.013,5,0.007,6,4.969,7,0.076,8,0.897,9,6.761,10,3.002,11,5.992,12,3.428,13,5.275,14,6.214,15,6.214,16,6.214,17,6.214,18,3.673,19,6.214,20,6.214,21,6.214,22,6.493,23,6.493,24,6.493,25,6.493,26,2.892,27,0.542,28,4.969,29,1.035,30,0.001,31,0.732,32,0.183,33,0.652,34,1.275,35,1.573,36,3.006,37,5.992,38,4.969,39,2.386,40,3.577,41,4.969,42,5.275,43,4.969,44,6.214,45,4.969,46,6.214,47,0.966,48,4.18,49,3.853,50,4.969,51,5.486,52,3.448,53,5.275,54,6.214,55,2.785,56,5.344,57,4.969,58,3.147,59,2.307,60,6.214,61,4.969,62,2.898,63,6.493,64,7.509,65,4.969,66,6.702,67,6.214,68,4.969,69,6.214,70,4.461,71,4.969,72,3.489,73,6.866,74,5.992,75,7.433,76,6.866,77,4.708,78,5.081,79,6.493,80,6.214,81,6.493,82,6.766,83,2.679,84,4.969,85,5.566,86,6.493,87,4.4,88,4.969,89,6.493,90,4.969,91,6.493,92,7.779,93,4.969,94,2.362,95,0.114,96,1.343,97,2.114,98,2.961,99,0.843,100,1.663,101,0.009,102,3.75,103,0,104,0]],["title/injectables/AbstractLaunchStrategy.html",[105,0.889,106,5.437]],["body/injectables/AbstractLaunchStrategy.html",[0,0.094,3,0.007,4,0.007,5,0.004,7,0.043,8,0.564,9,4.928,26,1.904,27,0.468,29,0.895,30,0.001,31,0.643,32,0.165,33,0.564,35,1.336,36,2.449,39,1.902,47,0.909,95,0.147,99,0.471,101,0.005,103,0,104,0,105,0.616,106,3.768,107,0.665,108,6.611,109,11.453,110,2.322,111,2.514,112,2.568,113,5.06,114,5.06,115,3.908,116,3.706,117,5.06,118,3.908,119,3.908,120,3.908,121,3.908,122,3.768,123,3.768,124,3.908,125,5.06,126,5.06,127,0.351,128,2.239,129,4.381,130,6.613,131,2.778,132,3.002,133,2.322,134,10.061,135,5.06,136,7.159,137,5.738,138,2.03,139,7.096,140,7.027,141,2.778,142,2.322,143,5.935,144,2.724,145,2.799,146,6.134,147,2.778,148,2.196,149,3.908,150,3.656,151,6.621,152,2.778,153,2.322,154,2.759,155,7.829,156,2.778,157,3.908,158,4.299,159,2.778,160,7.86,161,3.908,162,2.778,163,2.706,164,3.908,165,0.626,166,2.778,167,2.31,168,3.908,169,2.778,170,3.768,171,3.768,172,2.778,173,3.908,174,2.778,175,6.352,176,3.908,177,2.778,178,5.545,179,2.322,180,5.06,181,6.871,182,2.778,183,2.322,184,6.621,185,4.034,186,2.778,187,0.398,188,2.291,189,2.621,190,2.239,191,1.543,192,1.804,193,5.287,194,1.81,195,4.068,196,1.971,197,1.867,198,1.328,199,1.06,200,1.972,201,3.17,202,2.426,203,4.084,204,0.953,205,2.239,206,1.422,207,3.768,208,1.031,209,1.609,210,3.002,211,2.239,212,3.908,213,2.778,214,0.917,215,0.899,216,0.864,217,1.695,218,6.557,219,2.778,220,2.778,221,2.35,222,2.778,223,2.778,224,2.778,225,2.778,226,2.778,227,1.118,228,4.675,229,2.778,230,2.778,231,3.493,232,2.778,233,2.778,234,1.48,235,1.572,236,2.726,237,2.778,238,2.529,239,4.675,240,1.896,241,4.084,242,2.566,243,2.778,244,2.566,245,2.778,246,2.778,247,2.401,248,2.778,249,2.778,250,2.322,251,2.778,252,2.778,253,2.426,254,2.322,255,2.426,256,2.322,257,2.778,258,2.778,259,2.778,260,2.778,261,2.778,262,2.778,263,6.052,264,2.562,265,2.778,266,4.675,267,2.778,268,2.566,269,2.778,270,2.426,271,2.778,272,2.778,273,2.778,274,2.426,275,5.287,276,2.239,277,3.652,278,3.552,279,2.013,280,2.778,281,2.059,282,2.778,283,2.778,284,2.817,285,2.778,286,2.566,287,2.778,288,5.591,289,2.778,290,3.493,291,2.566,292,2.778,293,2.778,294,4.675,295,2.778,296,4.675,297,2.778,298,2.17,299,2.778,300,2.778,301,2.778,302,2.566,303,2.778,304,2.778,305,1.741,306,2.778,307,1.736,308,2.778,309,5.165,310,2.322,311,2.566,312,2.322,313,2.426,314,2.322,315,2.566,316,2.239,317,2.778,318,2.322,319,2.778,320,2.322,321,2.566,322,2.239,323,2.322,324,2.322,325,2.059,326,2.566,327,2.566,328,2.778,329,0.818,330,2.778,331,2.922,332,2.778,333,2.778]],["title/interfaces/AcceptConsentRequestBody.html",[334,0.742,335,5.437]],["body/interfaces/AcceptConsentRequestBody.html",[3,0.023,4,0.023,5,0.012,7,0.135,30,0.001,32,0.191,33,0.698,47,1.004,55,2.645,95,0.113,101,0.017,103,0.001,104,0.001,138,4.781,165,0.87,334,0.967,335,8.878,336,2.141,337,6.008,338,8.119,339,6.514,340,7.085,341,11.647,342,11.014,343,11.647,344,9.849,345,9.849,346,8.474,347,2.45,348,7.402,349,5.814,350,7.348,351,4.343,352,7.678,353,7.085]],["title/interfaces/AcceptLoginRequestBody.html",[334,0.742,354,5.269]],["body/interfaces/AcceptLoginRequestBody.html",[3,0.023,4,0.023,5,0.013,7,0.136,30,0.001,32,0.189,33,0.704,47,1.015,55,2.653,77,8.004,101,0.017,103,0.001,104,0.001,165,0.874,199,4.824,334,0.974,336,2.155,337,6.048,338,8.173,340,7.132,344,9.872,345,9.872,347,2.458,354,8.639,355,3.479,356,11.04,357,11.04,358,11.674,359,4.182]],["title/classes/AcceptQuery.html",[0,0.229,360,5.437]],["body/classes/AcceptQuery.html",[0,0.393,2,1.092,3,0.025,4,0.025,5,0.013,7,0.146,27,0.394,30,0.001,32,0.133,95,0.16,101,0.018,103,0.001,104,0.001,165,0.913,347,2.353,355,4.542,360,9.311,361,6.358,362,9.494,363,7.994,364,1.759,365,9.494,366,6.358,367,5.559,368,4.562,369,2.546,370,3.853,371,3.183,372,9.494,373,6.097,374,3.032,375,4.685,376,2.226,377,7.525,378,9.494,379,2.188]],["title/entities/Account.html",[94,3.205,380,1.41]],["body/entities/Account.html",[0,0.224,3,0.017,4,0.017,5,0.009,7,0.173,27,0.538,30,0.001,32,0.184,33,0.684,39,3.015,47,0.928,48,5.282,49,4.604,51,5.152,82,7.923,83,3.385,87,5.152,94,4.323,95,0.134,96,2.458,97,2.798,101,0.017,103,0.001,104,0.001,165,0.824,216,1.216,240,4.108,347,1.853,351,5.152,364,2.4,369,3.016,370,4.257,371,2.507,380,1.902,381,2.164,382,6.577,383,6.793,384,8.406,385,7.008,386,7.293,387,6.577,388,6.577,389,6.577,390,6.577,391,6.577,392,6.577,393,6.577,394,5.198,395,6.577,396,5.138,397,6.577,398,1.926,399,3.561,400,2.886,401,8.403,402,2.705,403,4.351,404,1.191,405,1.777,406,2.108,407,5.302,408,6.076,409,6.076,410,6.076,411,4.998,412,5.499,413,6.076,414,6.076,415,3.589,416,4.224,417,4.875,418,5.302,419,6.076,420,6.076,421,5.138,422,5.499,423,5.746,424,6.076]],["title/modules/AccountApiModule.html",[425,1.808,426,5.437]],["body/modules/AccountApiModule.html",[0,0.288,3,0.022,4,0.022,5,0.012,30,0.001,95,0.171,99,1.437,101,0.016,103,0.001,104,0.001,187,1.213,425,3.17,426,11.288,427,3.132,428,3.304,429,3.407,430,3.392,431,3.362,432,4.371,433,4.058,434,8.475,435,8.475,436,8.475,437,9.313,438,6.199,439,12.124,440,10.973,441,8.003,442,4.326,443,3.332,444,3.249,445,7.829,446,5.368,447,4.512,448,10.331,449,4.326,450,3.486,451,8.475,452,8.475,453,7.829,454,8.475]],["title/classes/AccountByIdBodyParams.html",[0,0.229,455,5.892]],["body/classes/AccountByIdBodyParams.html",[0,0.349,2,0.906,3,0.021,4,0.021,5,0.011,7,0.121,27,0.475,30,0.001,31,0.576,32,0.16,33,0.644,47,0.88,51,5.645,87,6.361,95,0.155,101,0.015,103,0.001,104,0.001,165,0.811,234,2.088,347,2.092,364,2.117,368,5.084,369,2.838,370,4.294,371,3.547,373,5.42,374,2.516,376,1.847,379,2.632,383,7.443,455,8.97,456,10.121,457,7.878,458,7.878,459,10.268,460,5.868,461,3.063,462,7.878,463,7.878,464,7.878,465,7.878,466,7.878,467,3.253,468,8.021,469,3.474,470,4.813,471,5.15,472,5.295,473,8.97,474,6.586,475,3.946,476,6.586]],["title/classes/AccountByIdParams.html",[0,0.229,477,5.892]],["body/classes/AccountByIdParams.html",[0,0.397,2,1.113,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.289,47,0.85,94,5.553,95,0.15,101,0.018,103,0.001,104,0.001,165,0.923,364,1.793,368,4.614,369,2.576,370,3.897,371,3.22,374,3.091,376,2.269,379,2.23,456,9.769,467,3.14,470,4.922,477,10.207,478,6.867,479,7.172,480,8.939]],["title/controllers/AccountController.html",[448,5.892,481,2.629]],["body/controllers/AccountController.html",[0,0.116,3,0.009,4,0.009,5,0.005,7,0.052,8,0.667,10,1.373,27,0.394,29,0.752,30,0.001,31,0.532,32,0.193,33,0.474,34,1.625,35,1.501,36,2.506,87,4.681,94,6.209,95,0.128,100,1.138,101,0.006,103,0,104,0,112,2.789,163,3.637,185,4.91,187,0.487,215,1.1,216,0.628,227,1,264,3.403,290,1.962,364,1.755,367,5.551,368,3.174,376,0.797,379,3.167,403,4.617,439,6.447,447,1.425,448,4.826,453,3.14,455,7.021,461,2.658,477,9.656,481,1.325,482,3.399,483,1.636,484,6.097,485,6.097,486,6.98,487,6.98,488,8.038,489,6.98,490,3.399,491,6.155,492,3.399,493,4.198,494,6.27,495,10.837,496,4.383,497,8.038,498,7.885,499,8.048,500,3.777,501,6.98,502,7.21,503,7.07,504,8.838,505,8.752,506,7.515,507,9.808,508,6.98,509,8.009,510,8.196,511,5.659,512,3.399,513,6.366,514,3.399,515,3.399,516,3.399,517,3.399,518,7.021,519,3.399,520,6.367,521,6.479,522,6.107,523,5.525,524,5.211,525,3.399,526,5.525,527,3.399,528,3.399,529,4.178,530,7.021,531,3.399,532,5.525,533,4.826,534,5.104,535,2.989,536,6.097,537,5.525,538,2.477,539,3.399,540,4.003,541,3.399,542,3.399,543,5.212,544,3.399,545,3.399,546,3.399,547,7.021,548,3.399,549,4.858,550,3.399,551,3.399,552,2.183,553,6.241,554,8.198,555,1.794,556,1.839,557,1.855,558,1.616,559,1.855,560,3.399,561,1.855,562,3.399,563,5.848,564,4.777,565,5.001,566,3.399,567,3.399,568,3.399,569,2.285,570,3.399,571,2.125,572,3.399,573,2.583,574,1.541,575,2.026,576,3.256,577,1.906,578,3.14,579,3.399,580,3.399,581,3.399,582,3.399,583,3.399,584,3.399,585,3.399,586,3.399,587,3.399,588,3.399,589,3.399]],["title/classes/AccountDto.html",[0,0.229,66,4.272]],["body/classes/AccountDto.html",[0,0.23,2,0.777,3,0.018,4,0.018,5,0.01,7,0.104,26,2.487,27,0.565,29,0.536,30,0.001,31,0.379,32,0.191,33,0.694,34,1.814,39,2.483,47,0.867,48,4.349,51,4.577,64,10.431,66,7.551,82,7.039,83,3.705,87,4.577,94,3.21,95,0.119,99,1.146,101,0.013,103,0.001,104,0.001,127,0.855,165,0.732,216,2.409,347,1.376,351,4.577,364,2.443,383,6.035,384,7.468,385,6.226,404,1.678,405,2.503,471,2.873,590,6.754,591,4.521,592,4.664,593,7.468,594,6.754,595,2.333,596,4.103,597,6.754,598,6.754,599,6.754,600,6.239,601,6.754,602,7.745,603,6.754,604,8.558,605,6.754,606,6.754,607,6.754,608,6.239,609,6.754,610,8.558,611,6.754,612,6.754,613,6.754,614,5.9,615,6.754,616,6.754,617,3.898,618,2.873,619,3.86,620,4.337,621,5.132,622,4.337,623,5.132]],["title/classes/AccountEntityToDtoMapper.html",[0,0.229,624,5.639]],["body/classes/AccountEntityToDtoMapper.html",[0,0.267,2,0.902,3,0.021,4,0.021,5,0.011,7,0.121,8,1.236,27,0.474,29,0.906,30,0.001,31,0.64,32,0.16,33,0.57,34,1.346,35,1.376,39,2.103,48,3.684,51,3.877,55,2.507,66,8.296,82,5.962,87,3.877,94,6.488,95,0.131,98,6.795,99,1.331,101,0.015,103,0.001,104,0.001,217,1.353,227,1.203,234,1.273,351,3.877,380,2.527,383,5.112,384,6.325,385,5.274,403,5.19,591,3.355,592,3.461,624,8.563,625,9.743,626,7.847,627,4.181,628,10.242,629,10.242,630,8.256,631,10.242,632,7.847,633,10.242,634,7.847,635,7.249,636,8.563,637,7.847,638,6.56,639,5.816,640,7.847,641,7.249,642,6.855,643,5.568,644,6.855,645,7.249,646,7.249,647,6.855,648,6.56,649,7.847,650,7.249,651,7.249,652,7.847,653,10.242,654,7.847,655,7.847,656,7.847,657,7.249]],["title/classes/AccountFactory.html",[0,0.229,658,5.437]],["body/classes/AccountFactory.html",[0,0.157,2,0.53,3,0.012,4,0.012,5,0.007,7,0.071,8,0.848,26,1.985,27,0.534,29,1.03,30,0.001,31,0.7,32,0.184,33,0.623,34,1.851,35,1.43,39,1.883,47,0.511,48,2.164,49,3.992,51,3.471,55,2.467,59,3.178,87,2.278,94,2.191,95,0.122,99,0.782,101,0.016,103,0,104,0,127,0.583,138,3.05,144,3.16,148,1.426,165,0.555,185,4.879,216,1.298,217,1.353,227,0.898,234,1.139,305,1.326,329,3.407,359,2.435,366,2.538,379,1.961,380,2.141,381,2.311,401,4.259,404,1.272,461,2.36,538,3.149,569,3.099,596,3.829,627,2.187,658,6.859,659,4.611,660,7.136,661,4.546,662,5.334,663,7.024,664,7.024,665,3.938,666,5.334,667,5.563,668,3.938,669,3.938,670,3.938,671,3.867,672,4.324,673,4.77,674,6.123,675,5.638,676,6.898,677,2.609,678,7.024,679,4.611,680,7.024,681,4.611,682,2.585,683,3.938,684,2.609,685,4.983,686,5.192,687,4.414,688,5.022,689,3.902,690,2.585,691,2.415,692,4.02,693,2.516,694,2.474,695,2.585,696,4.907,697,2.609,698,4.684,699,2.585,700,7.07,701,4.039,702,6.484,703,2.609,704,4.205,705,2.585,706,2.609,707,2.585,708,2.609,709,2.585,710,2.92,711,2.747,712,2.585,713,5.94,714,2.609,715,2.585,716,3.938,717,3.867,718,3.938,719,2.609,720,2.494,721,2.474,722,2.034,723,2.585,724,2.585,725,2.585,726,2.609,727,2.609,728,1.805,729,2.585,730,2.609,731,2.762,732,2.585,733,2.609,734,2.661,735,2.661,736,2.747,737,4.186,738,4.055,739,4.611,740,4.028,741,4.611,742,7.024,743,4.611,744,3.341,745,4.259,746,4.611,747,4.611]],["title/injectables/AccountIdmToDtoMapper.html",[105,0.889,748,5.269]],["body/injectables/AccountIdmToDtoMapper.html",[0,0.327,3,0.026,4,0.026,5,0.014,7,0.148,8,1.406,9,6.224,27,0.4,29,0.765,30,0.001,31,0.541,32,0.135,33,0.482,35,1.162,66,7.934,78,7.964,94,4.577,95,0.161,99,1.634,101,0.018,103,0.001,104,0.001,105,1.535,107,2.304,187,1.379,625,9.392,630,9.392,636,9.741,638,8.052,748,9.101,749,9.631,750,10.167,751,9.631]],["title/classes/AccountIdmToDtoMapperDb.html",[0,0.229,752,5.892]],["body/classes/AccountIdmToDtoMapperDb.html",[0,0.303,2,1.024,3,0.024,4,0.024,5,0.013,7,0.137,8,1.34,27,0.37,29,0.707,30,0.001,31,0.5,32,0.125,33,0.446,34,1.528,35,1.075,39,2.387,48,4.181,51,4.401,66,8.023,78,7.591,83,2.679,94,5.277,95,0.155,99,1.511,101,0.017,103,0.001,104,0.001,217,1.176,227,0.94,234,1.801,404,2.011,591,3.808,592,3.928,593,7.179,596,2.704,625,7.179,630,8.951,636,9.284,638,7.446,639,6.601,643,6.32,748,9.895,750,9.895,752,9.7,753,8.906,754,8.227,755,8.227,756,10.57,757,10.258,758,8.227,759,7.78,760,7.78]],["title/classes/AccountIdmToDtoMapperIdm.html",[0,0.229,761,5.892]],["body/classes/AccountIdmToDtoMapperIdm.html",[0,0.304,2,1.029,3,0.024,4,0.024,5,0.013,7,0.138,8,1.344,27,0.372,29,0.71,30,0.001,31,0.502,32,0.126,33,0.448,34,1.534,35,1.079,39,2.397,48,4.199,51,4.42,66,8.036,78,7.612,83,2.691,94,5.292,95,0.156,99,1.517,101,0.017,103,0.001,104,0.001,145,2.308,217,1.181,227,0.944,234,1.806,404,2.017,591,3.825,592,3.946,593,7.211,596,2.716,625,7.211,630,8.976,636,9.309,638,7.479,639,6.63,643,6.348,748,9.911,750,9.911,754,8.264,755,8.264,756,10.591,757,10.286,759,7.815,760,7.815,761,9.727,762,8.946]],["title/injectables/AccountLookupService.html",[105,0.889,763,5.639]],["body/injectables/AccountLookupService.html",[0,0.183,3,0.014,4,0.014,5,0.008,7,0.083,8,0.95,26,2.462,27,0.387,29,0.741,30,0.001,31,0.523,32,0.131,33,0.466,34,2.426,35,1.239,36,2.231,47,0.573,49,4.815,78,5.385,94,3.743,95,0.147,99,0.912,101,0.01,103,0,104,0,105,1.038,107,1.286,111,1.575,112,2.562,127,0.997,167,4.361,187,0.769,200,4.193,216,1.456,217,1.04,221,1.856,227,1.206,234,1.277,235,5.811,264,3.335,359,2.731,369,1.736,379,2.148,569,7.678,639,3.983,694,5.508,734,5.382,763,6.585,764,9.485,765,5.374,766,4.412,767,11.182,768,5.589,769,7.67,770,7.134,771,9.485,772,8.969,773,5.058,774,7.019,775,4.803,776,7.877,777,5.985,778,5.294,779,5.838,780,7.877,781,6.881,782,9.979,783,6.885,784,6.03,785,7.877,786,7.276,787,5.374,788,8.277,789,7.58,790,5.374,791,7.877,792,7.877,793,5.374,794,10.268,795,6.052,796,12.105,797,10.268,798,6.418,799,7.276,800,5.374,801,3.134,802,3.894,803,3.359,804,4.083,805,4.332,806,3.318,807,7.276,808,4.695,809,7.276,810,5.374,811,5.374,812,5.374]],["title/modules/AccountModule.html",[425,1.808,437,4.786]],["body/modules/AccountModule.html",[0,0.227,3,0.018,4,0.018,5,0.009,30,0.001,95,0.174,99,1.13,101,0.013,103,0.001,104,0.001,187,0.954,206,3.412,227,0.969,234,1.489,369,1.469,425,2.814,427,2.463,428,2.598,429,2.679,430,2.667,431,2.644,432,3.881,433,3.959,437,10.027,438,5.793,440,10.254,441,7.479,442,3.69,443,2.621,444,2.555,449,3.69,450,2.741,687,3.091,748,8.202,752,8.019,761,8.019,763,10.254,789,6.743,801,3.887,802,4.829,803,4.166,804,5.064,813,6.664,814,6.664,815,6.664,816,6.664,817,9.581,818,9.702,819,11.195,820,9.887,821,10.254,822,11.33,823,8.886,824,6.156,825,6.664,826,5.822,827,6.664,828,6.664,829,10.5,830,6.156,831,6.156,832,6.156,833,6.156,834,6.156,835,6.664,836,3.847,837,4.939,838,6.156,839,3.129]],["title/interfaces/AccountParams.html",[334,0.742,840,5.639]],["body/interfaces/AccountParams.html",[0,0.224,3,0.017,4,0.017,5,0.009,7,0.101,26,2.349,30,0.001,32,0.128,33,0.563,47,0.911,48,5.547,49,4.389,51,5.839,94,6.397,95,0.152,99,1.117,101,0.017,103,0.001,104,0.001,111,1.821,116,3.377,165,0.719,185,4.905,192,2.715,217,1.712,227,1.247,334,1.149,336,1.605,404,1.193,461,3.053,627,3.679,658,5.311,734,3.803,840,9.413,841,5.755,842,5.755,843,4.914,844,4.128,845,4.675,846,4.675,847,5.755,848,7.989,849,5.006,850,9.526,851,4.469,852,4.469,853,4.628,854,4.595,855,10.218,856,5.508,857,5.755,858,7.955,859,5.755,860,5.755,861,5.755,862,8.726,863,7.955,864,7.955,865,5.508,866,9.117,867,9.117,868,5.755,869,7.955,870,7.955,871,5.508,872,5.755,873,7.955,874,6.462,875,5.508]],["title/injectables/AccountRepo.html",[105,0.889,820,5.437]],["body/injectables/AccountRepo.html",[0,0.124,3,0.01,4,0.01,5,0.005,7,0.056,8,0.705,10,2.361,11,4.712,12,2.696,13,4.148,14,4.888,15,4.888,16,4.888,17,4.888,18,2.889,19,4.888,20,4.888,26,2.701,27,0.524,29,0.993,30,0.001,31,0.695,32,0.175,33,0.62,34,1.89,35,1.509,36,2.855,37,4.712,39,2.754,40,1.755,42,4.148,44,4.888,46,4.888,47,0.855,48,3.93,49,4.954,51,5.277,52,2.712,53,4.148,54,4.888,55,2.794,56,5.961,58,6.195,60,4.888,62,2.126,67,4.888,69,4.888,70,5.35,85,2.279,94,5.488,95,0.125,96,1.58,97,1.551,99,0.618,101,0.007,102,1.839,103,0,104,0,105,0.77,107,0.872,111,1.463,112,3.066,144,2,148,1.808,187,0.522,217,1.21,221,1.973,227,1.219,234,1.486,247,3.88,264,1.543,329,2.466,347,1.491,369,0.804,371,1.005,379,0.84,380,1.751,381,1.924,398,1.067,404,1.059,461,1.929,596,2.542,692,4.302,704,1.801,771,9.492,808,3.185,820,4.712,876,3.646,877,5.992,878,4.069,879,7.734,880,7.318,881,5.4,882,7.318,883,2.451,884,2.761,885,5.481,886,5.846,887,3.646,888,3.646,889,3.646,890,5.107,891,3.646,892,3.646,893,3.646,894,4.712,895,3.646,896,3.646,897,3.646,898,3.646,899,5.846,900,3.646,901,3.646,902,8.372,903,3.646,904,3.646,905,3.039,906,3.646,907,4.069,908,2.223,909,2.25,910,2.223,911,2.25,912,2.587,913,2.223,914,2.25,915,2.007,916,3.646,917,3.646,918,3.646,919,2.77,920,5.846,921,4.442,922,5.107,923,3.646,924,3.646,925,3.646,926,3.646,927,3.646,928,3.646,929,3.185,930,5.846,931,3.646,932,3.646,933,3.646,934,3.646,935,3.048,936,3.646,937,3.646,938,2.642,939,3.646,940,3.368,941,7.318,942,3.646,943,3.646,944,3.368,945,3.185,946,2.375,947,3.185,948,2.77,949,3.646,950,2.848,951,2.77,952,3.646,953,2.375,954,2.702,955,3.646,956,2.375,957,2.063,958,3.048,959,3.185,960,2.492,961,3.646,962,3.646,963,3.646,964,2.492]],["title/classes/AccountResponse.html",[0,0.229,499,5.437]],["body/classes/AccountResponse.html",[0,0.281,2,0.951,3,0.022,4,0.022,5,0.012,7,0.127,27,0.542,29,0.657,30,0.001,31,0.464,32,0.183,33,0.663,34,2.186,39,3.416,47,0.948,51,6.298,83,3.187,95,0.106,101,0.016,103,0.001,104,0.001,127,1.34,165,0.837,347,2.158,364,2.361,376,1.938,383,8.303,407,6.663,415,4.51,423,7.221,467,3.698,499,10.274,592,5.621,618,3.517,622,5.308,965,8.266,966,4.231,967,8.266,968,8.266,969,8.266,970,8.266,971,8.266,972,8.266]],["title/classes/AccountResponseMapper.html",[0,0.229,973,6.23]],["body/classes/AccountResponseMapper.html",[0,0.292,2,0.987,3,0.023,4,0.023,5,0.012,7,0.132,8,1.309,27,0.451,29,0.862,30,0.001,31,0.609,32,0.152,33,0.543,34,1.861,35,1.309,39,2.908,51,5.361,66,7.917,94,6.258,95,0.153,99,1.456,101,0.016,103,0.001,104,0.001,227,1.145,234,1.76,383,7.069,499,10.779,592,4.785,625,9.59,627,4.099,639,8.041,641,10.023,642,7.498,643,7.699,644,9.478,973,10.023,974,5.298,975,6.2,976,10.85,977,10.85,978,7.498,979,10.85,980,6.705,981,8.583,982,4.3,983,7.176]],["title/classes/AccountSaveDto.html",[0,0.229,64,5.125]],["body/classes/AccountSaveDto.html",[0,0.285,2,0.673,3,0.016,4,0.016,5,0.008,7,0.09,26,2.527,27,0.553,29,0.465,30,0.001,31,0.328,32,0.187,33,0.695,34,1.679,39,2.622,47,0.93,48,4.594,51,4.835,64,8.591,82,7.435,83,3.727,87,4.835,95,0.137,99,0.992,101,0.011,103,0.001,104,0.001,127,0.74,165,0.662,216,2.331,347,1.707,351,4.835,364,2.446,373,4.422,374,1.869,383,6.375,384,7.888,385,6.577,405,2.264,407,4.716,408,5.405,409,5.405,410,5.405,411,4.445,412,4.891,413,5.405,414,5.405,415,3.193,416,3.757,417,4.336,418,4.716,419,5.405,420,5.405,421,4.57,422,4.891,423,5.111,424,5.405,468,6.544,469,2.58,470,4.501,471,5.658,472,3.932,474,4.891,475,2.931,476,4.891,591,4.184,592,4.316,593,7.888,595,2.021,600,5.405,602,7.004,604,9.869,608,5.405,610,9.039,614,5.111,618,2.489,619,3.343,620,3.757,621,4.445,622,3.757,623,4.445,984,13.386,985,5.851,986,8.377,987,5.851,988,5.851,989,5.851,990,5.851,991,5.851,992,5.851,993,5.851,994,5.851,995,5.851,996,5.851,997,5.851,998,5.851,999,7.599,1000,4.568,1001,4.992,1002,5.851,1003,5.851,1004,5.851]],["title/classes/AccountSearchListResponse.html",[0,0.229,536,5.892]],["body/classes/AccountSearchListResponse.html",[0,0.266,2,0.899,3,0.021,4,0.021,5,0.011,7,0.12,27,0.52,29,0.621,30,0.001,31,0.439,32,0.188,33,0.627,55,3.061,56,6.182,59,3.17,70,6.435,95,0.146,101,0.015,103,0.001,104,0.001,127,0.989,145,2.017,163,3.948,165,0.807,364,2.236,376,1.833,404,1.85,456,8.541,467,2.745,469,3.447,499,10.549,536,8.924,596,3.664,1005,7.572,1006,5.547,1007,8.077,1008,7.009,1009,5.838,1010,7.816,1011,4.159,1012,7.816,1013,5.218,1014,3.836,1015,4.342,1016,2.791,1017,5.547,1018,6.656,1019,5.958,1020,5.17,1021,4.159,1022,5.547,1023,5.547,1024,7.816,1025,4.951,1026,4.342]],["title/classes/AccountSearchQueryParams.html",[0,0.229,530,5.892]],["body/classes/AccountSearchQueryParams.html",[0,0.348,2,0.901,3,0.021,4,0.021,5,0.011,7,0.12,27,0.502,30,0.001,32,0.186,33,0.604,47,0.744,55,2.505,56,5.482,70,5.125,94,3.722,95,0.155,101,0.015,103,0.001,104,0.001,144,3.577,165,0.808,247,3.106,329,3.013,364,2.238,368,4.77,369,2.662,370,4.029,371,3.328,374,2.501,376,1.836,379,2.357,404,1.853,456,9.524,467,3.061,469,3.454,470,4.309,479,5.804,530,8.936,533,8.936,596,3.106,905,3.252,907,7.12,1005,9.287,1014,3.844,1020,5.18,1027,7.832,1028,8.892,1029,12.531,1030,7.832,1031,3.278,1032,7.832,1033,7.832,1034,7.235,1035,5.451,1036,6.548,1037,6.841,1038,7.235,1039,7.832,1040,7.235,1041,4.35,1042,6.548,1043,7.832,1044,3.844,1045,7.832]],["title/injectables/AccountService.html",[105,0.889,818,4.887]],["body/injectables/AccountService.html",[0,0.208,1,10.18,3,0.007,4,0.007,5,0.004,7,0.043,8,0.572,10,1.915,11,3.824,12,2.187,13,3.366,14,3.966,15,3.966,16,3.966,17,3.966,18,2.344,19,3.966,20,3.966,21,3.966,22,4.144,23,4.144,24,4.144,27,0.501,29,0.958,30,0.001,31,0.671,32,0.171,33,0.598,34,0.814,35,1.425,36,2.84,37,3.824,39,2.466,40,2.283,42,3.366,44,3.966,46,3.966,47,0.985,48,3.369,49,2.798,51,5.124,52,2.2,53,3.366,54,3.966,55,2.28,56,4.646,58,1.79,60,3.966,62,1.648,63,4.144,64,7.336,66,5.484,67,3.966,69,3.966,70,3.596,81,4.144,82,6.077,83,1.844,85,7.733,86,4.144,87,4.961,89,4.144,91,4.144,92,6.27,94,5.959,95,0.143,96,0.764,97,1.203,98,1.684,99,0.479,100,1.588,101,0.005,102,1.426,103,0,104,0,105,0.625,107,0.676,111,2.131,112,3.053,127,0.6,144,0.772,145,0.729,148,0.874,165,0.375,167,1.079,187,0.405,200,0.921,204,2.102,216,1.785,217,1.496,221,2.936,227,1.273,234,1.164,247,1.882,305,2.065,329,0.833,355,1.865,369,1.046,374,1.515,404,0.859,406,0.906,473,2.469,503,1.703,558,1.343,593,6.448,596,3.494,687,1.311,692,1.053,750,5.607,766,1.215,784,1.492,789,5.909,795,2.796,798,2.965,801,1.648,804,2.148,806,1.191,809,2.611,818,3.437,819,7.693,821,6.001,822,6.63,830,2.611,831,2.611,832,2.611,853,2.41,894,3.824,1046,2.826,1047,6.129,1048,4.743,1049,4.743,1050,2.826,1051,7.178,1052,2.498,1053,3.183,1054,4.743,1055,6.129,1056,4.743,1057,2.826,1058,2.826,1059,4.743,1060,2.826,1061,4.743,1062,1.234,1063,2.826,1064,2.826,1065,2.611,1066,2.826,1067,2.826,1068,2.826,1069,2.826,1070,4.743,1071,2.826,1072,2.826,1073,2.826,1074,2.826,1075,2.826,1076,2.826,1077,2.826,1078,2.826,1079,2.826,1080,2.611,1081,2.826,1082,2.826,1083,2.611,1084,4.743,1085,2.826,1086,2.826,1087,2.826,1088,2.826,1089,2.826,1090,2.826,1091,2.826,1092,8.072,1093,2.826,1094,2.826,1095,2.611,1096,6.129,1097,2.611,1098,8.659,1099,2.826,1100,2.826,1101,2.826,1102,7.178,1103,2.826,1104,2.826,1105,7.178,1106,2.826,1107,2.826,1108,4.743,1109,2.826,1110,1.815,1111,2.826,1112,2.826,1113,2.278,1114,1.147,1115,2.826,1116,4.743,1117,2.826,1118,4.743,1119,2.826,1120,2.826,1121,3.302,1122,2.826,1123,5.662,1124,2.826,1125,2.826,1126,3.437,1127,2.826,1128,2.826,1129,2.826,1130,2.278,1131,2.826,1132,2.278,1133,2.826,1134,1.9,1135,2.611,1136,2.469,1137,2.826,1138,2.826,1139,2.826,1140,2.826,1141,6.129,1142,2.826,1143,5.662,1144,2.826,1145,3.966,1146,4.743,1147,2.826,1148,2.826,1149,2.826,1150,2.826,1151,2.826,1152,4.743,1153,2.826,1154,4.743,1155,2.826,1156,2.826,1157,2.826,1158,1.504,1159,4.144,1160,2.826]],["title/injectables/AccountServiceDb.html",[105,0.889,821,5.639]],["body/injectables/AccountServiceDb.html",[0,0.112,1,10.327,3,0.009,4,0.009,5,0.005,7,0.051,8,0.649,10,2.171,11,4.335,12,2.48,13,3.816,14,4.496,15,4.496,16,4.496,17,4.496,18,2.657,19,4.496,20,4.496,21,4.496,22,4.697,23,4.697,24,4.697,25,4.697,26,2.789,27,0.513,29,0.981,30,0.001,31,0.693,32,0.173,33,0.618,34,1.352,35,1.476,36,2.905,37,4.335,39,2.112,40,2.588,42,3.816,44,4.496,46,4.496,47,0.919,48,4.079,49,3.838,51,5.075,54,4.496,55,2.404,56,4.943,58,2.083,60,4.496,62,1.918,63,4.697,64,5.988,66,5.504,67,4.496,69,4.496,70,3.948,81,4.697,82,6.602,83,2.052,85,4.264,86,4.697,87,4.293,89,4.697,91,4.697,92,5.959,94,5.321,95,0.14,96,0.889,97,1.399,98,1.959,99,0.558,100,1.101,101,0.006,103,0,104,0,105,0.709,107,0.787,111,1.968,112,3.068,127,0.416,144,0.899,145,1.76,167,2.053,187,0.471,206,1.683,215,1.064,216,0.994,217,1.616,221,3.064,227,1.304,234,1.597,247,2.133,305,1.547,329,0.969,351,1.625,383,2.142,384,2.651,385,2.21,404,0.974,406,1.054,510,2.383,511,1.683,558,1.563,596,3.633,624,2.749,635,6.302,643,3.816,644,2.873,645,3.038,646,3.038,647,4.697,648,6.588,650,3.038,657,7.28,763,8.23,764,7.28,786,4.967,799,4.967,820,7.519,821,4.496,826,2.873,833,3.038,894,4.335,907,2.289,983,2.749,1065,3.038,1080,3.038,1095,3.038,1097,4.967,1161,3.288,1162,5.377,1163,3.038,1164,3.288,1165,3.288,1166,3.288,1167,5.377,1168,3.288,1169,3.288,1170,3.288,1171,3.288,1172,3.288,1173,3.288,1174,3.288,1175,3.288,1176,3.288,1177,3.288,1178,3.288,1179,3.288,1180,3.288,1181,3.288,1182,2.749,1183,2.873,1184,10.629,1185,5.377,1186,9.844,1187,8.689,1188,3.288,1189,3.288,1190,4.967,1191,3.288,1192,3.288,1193,3.288,1194,5.377,1195,2.651,1196,5.377,1197,5.377,1198,5.377,1199,5.377,1200,5.377,1201,5.377,1202,5.377,1203,5.377,1204,5.377,1205,8.689,1206,7.88,1207,6.822,1208,3.288,1209,3.288,1210,3.288,1211,3.288,1212,5.377,1213,3.288,1214,3.288,1215,3.288,1216,3.288,1217,3.288,1218,2.333,1219,3.288,1220,3.288,1221,3.288]],["title/injectables/AccountValidationService.html",[105,0.889,819,5.639]],["body/injectables/AccountValidationService.html",[0,0.224,3,0.017,4,0.017,5,0.009,7,0.101,8,1.098,26,2.854,27,0.467,29,0.894,30,0.001,31,0.632,32,0.158,33,0.563,35,1.258,36,2.654,39,3.42,47,0.942,48,5.282,49,2.564,59,3.236,85,7.827,94,4.323,95,0.152,99,1.116,101,0.013,103,0.001,104,0.001,105,1.199,107,1.574,111,1.315,112,2.905,127,0.832,167,2.511,187,0.941,215,2.128,217,1.486,221,2.457,227,1.1,284,3.964,380,1.375,403,4.351,441,7.635,450,2.705,624,5.499,639,4.875,642,5.746,691,3.444,819,7.605,820,9.847,826,5.746,853,5.299,905,4.672,1163,6.076,1190,6.076,1222,6.577,1223,9.096,1224,9.096,1225,9.096,1226,6.577,1227,9.096,1228,6.577,1229,9.096,1230,6.577,1231,9.096,1232,6.577,1233,6.577,1234,6.577,1235,6.577,1236,3.964,1237,5.138,1238,4.224,1239,5.499,1240,3.796,1241,6.076,1242,6.076,1243,6.577,1244,6.577,1245,6.577,1246,6.577,1247,6.076,1248,9.096,1249,9.096,1250,6.577,1251,6.577,1252,3.919,1253,3.033,1254,6.577,1255,6.577,1256,6.577,1257,6.577,1258,9.096,1259,6.577,1260,9.096,1261,6.577]],["title/interfaces/AdminIdAndToken.html",[334,0.742,1262,5.437]],["body/interfaces/AdminIdAndToken.html",[0,0.194,3,0.009,4,0.009,5,0.005,7,0.054,30,0.001,31,0.462,32,0.127,34,1.812,36,2.816,39,3.387,47,1.016,51,4.067,55,1.578,72,2.68,83,1.717,87,3.545,95,0.106,101,0.016,103,0,104,0,105,0.752,111,2.371,112,2.906,116,4.022,127,0.448,148,1.095,165,0.451,187,0.507,204,1.958,216,1.055,217,1.395,221,2.275,227,1.381,234,1.464,305,2.597,334,0.79,336,0.862,347,1.966,351,5.22,359,1.227,369,0.78,404,0.641,461,1.653,535,3.881,543,4.123,564,2.118,692,1.319,701,1.236,720,1.915,728,2.809,731,4.403,839,1.662,853,1.799,874,4.051,953,4.674,1016,2.939,1035,2.464,1262,8.516,1263,2.854,1264,2.96,1265,4.904,1266,2.023,1267,6.254,1268,2.273,1269,2.765,1270,2.69,1271,4.46,1272,3.903,1273,4.46,1274,4.46,1275,4.46,1276,4.602,1277,1.826,1278,3.089,1279,2.96,1280,2.96,1281,2.96,1282,2.96,1283,2.96,1284,2.96,1285,2.565,1286,2.96,1287,2.96,1288,2.96,1289,2.273,1290,7.548,1291,1.506,1292,2.854,1293,2.379,1294,2.464,1295,2.043,1296,2.512,1297,2.96,1298,5.289,1299,5.226,1300,5.226,1301,5.533,1302,6.194,1303,7.826,1304,6.384,1305,5.998,1306,2.69,1307,2.96,1308,2.96,1309,2.464,1310,2.96,1311,2.96,1312,2.96,1313,2.765,1314,2.96,1315,5.605,1316,2.854,1317,2.96,1318,2.96,1319,2.96,1320,2.854,1321,2.96,1322,2.96,1323,2.96,1324,8.488,1325,2.96,1326,2.96,1327,1.398,1328,2.96,1329,2.96,1330,2.96,1331,2.96,1332,2.96,1333,2.96,1334,2.96,1335,2.96,1336,8.069,1337,8.069,1338,2.96,1339,2.96,1340,2.96,1341,2.96,1342,2.96,1343,2.96,1344,2.42,1345,2.96,1346,2.96,1347,2.96,1348,2.96,1349,2.96,1350,2.96,1351,2.96,1352,2.96,1353,2.96,1354,2.96,1355,2.96,1356,2.96,1357,2.96,1358,2.96,1359,4.338,1360,4.773,1361,2.96,1362,2.96,1363,2.96,1364,2.96,1365,2.96,1366,2.379,1367,2.96,1368,2.96,1369,2.96,1370,4.773,1371,2.96,1372,4.773,1373,4.773,1374,2.96,1375,2.96,1376,2.69,1377,5.998,1378,4.746,1379,4.324,1380,2.96,1381,3.329,1382,5.08,1383,4.338,1384,5.605,1385,5.998,1386,5.998,1387,5.998,1388,2.765,1389,2.96,1390,2.96,1391,2.96,1392,7.548,1393,5.998,1394,5.998,1395,5.998,1396,2.96,1397,4.773,1398,4.773,1399,2.96,1400,2.96,1401,2.96,1402,2.96,1403,2.96,1404,4.773,1405,4.46]],["title/modules/AntivirusModule.html",[425,1.808,1406,5.437]],["body/modules/AntivirusModule.html",[0,0.308,3,0.024,4,0.024,5,0.013,8,1.092,27,0.376,29,0.718,30,0.001,31,0.508,32,0.127,33,0.453,35,1.092,47,0.886,95,0.144,101,0.017,103,0.001,104,0.001,187,1.295,227,0.955,334,0.996,347,1.843,425,3.265,427,3.343,432,3.343,433,3.411,627,3.49,701,3.159,836,5.222,1406,9.822,1407,8.357,1408,6.554,1409,7.536,1410,11.127,1411,9.046,1412,8.06,1413,9.822,1414,8.357,1415,6.757,1416,9.038,1417,7.2,1418,7.536,1419,8.357,1420,6.297,1421,8.357,1422,8.357,1423,7.563,1424,7.563]],["title/interfaces/AntivirusModuleOptions.html",[334,0.742,1410,5.892]],["body/interfaces/AntivirusModuleOptions.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.135,30,0.001,32,0.177,47,0.996,95,0.141,101,0.017,103,0.001,104,0.001,165,0.869,187,1.255,227,0.926,334,0.965,336,2.136,347,2.448,425,3.22,432,3.241,433,3.307,627,2.73,836,5.062,1406,8.866,1407,8.102,1409,5.895,1410,10.496,1412,7.275,1413,9.686,1414,8.102,1415,7.82,1416,10.46,1417,8.332,1418,8.721,1419,8.102,1420,6.104,1421,8.102,1422,8.102,1423,7.332,1424,7.332]],["title/injectables/AntivirusService.html",[105,0.889,1413,5.437]],["body/injectables/AntivirusService.html",[0,0.244,3,0.019,4,0.019,5,0.01,7,0.111,8,1.166,27,0.454,29,0.867,30,0.001,31,0.613,32,0.153,33,0.546,35,1.166,36,2.1,47,0.997,95,0.15,101,0.014,103,0.001,104,0.001,105,1.273,107,1.72,111,2.436,112,2.448,116,3.533,127,1.223,145,2.817,150,2.636,187,1.029,216,1.786,217,1.542,221,1.694,227,0.759,234,1.567,305,2.068,334,0.791,347,1.464,351,5.395,369,1.585,576,4.237,701,3.813,784,3.794,839,3.374,1158,3.825,1413,7.79,1415,4.332,1416,5.794,1417,4.616,1418,4.831,1425,6.64,1426,8.442,1427,8.442,1428,6.64,1429,9.532,1430,10.199,1431,7.188,1432,8.928,1433,7.188,1434,8.928,1435,7.188,1436,8.126,1437,5.208,1438,4.831,1439,3.438,1440,4.914,1441,5.327,1442,5.615,1443,6.279,1444,4.683,1445,5.462,1446,5.462,1447,6.64,1448,6.64,1449,8.928,1450,6.64,1451,8.928,1452,6.64,1453,6.64,1454,6.64,1455,6.01,1456,6.64,1457,6.64,1458,6.01,1459,4.755,1460,6.01,1461,6.01,1462,6.64,1463,6.64,1464,6.64,1465,6.64,1466,6.64,1467,6.64,1468,6.64]],["title/interfaces/AntivirusServiceOptions.html",[334,0.742,1430,5.892]],["body/interfaces/AntivirusServiceOptions.html",[0,0.26,3,0.02,4,0.02,5,0.011,7,0.118,30,0.001,32,0.168,36,1.663,47,1.001,95,0.154,101,0.015,103,0.001,104,0.001,105,1.328,111,2.252,112,1.716,116,2.477,127,0.968,145,1.975,150,2.806,165,0.796,187,1.095,216,1.862,217,1.581,221,1.803,227,0.808,234,1.634,305,2.201,334,0.842,336,1.864,347,2.295,351,3.781,369,1.687,701,2.673,784,4.039,839,3.593,1158,4.072,1413,6.169,1415,7.214,1416,9.649,1417,7.687,1418,8.045,1425,7.07,1429,8.559,1430,9.84,1432,7.07,1434,7.07,1436,7.84,1437,5.545,1438,5.144,1439,3.66,1440,5.231,1441,5.672,1442,5.978,1443,6.685,1444,4.986,1445,5.815,1446,5.815,1447,7.07,1448,7.07,1449,9.307,1450,7.07,1451,9.307,1452,7.07,1453,7.07,1454,7.07,1455,6.398,1456,7.07,1457,7.07,1458,6.398,1459,5.062,1460,6.398,1461,6.398,1462,7.07,1463,7.07,1464,7.07,1465,7.07,1466,7.07,1467,7.07,1468,7.07]],["title/classes/ApiValidationError.html",[0,0.229,1469,4.461]],["body/classes/ApiValidationError.html",[0,0.261,2,0.883,3,0.02,4,0.02,5,0.011,7,0.118,8,1.219,27,0.541,29,0.61,30,0.001,31,0.431,32,0.189,33,0.565,35,0.927,47,0.82,55,1.689,95,0.13,101,0.015,103,0.001,104,0.001,127,0.972,165,0.798,187,1.1,204,4.272,216,2.496,364,2.307,404,1.829,406,2.462,503,7.225,564,2.851,596,3.881,722,3.388,798,4.802,1013,5.496,1016,2.743,1253,5.204,1291,3.268,1327,4.457,1469,6.681,1470,10.101,1471,7.682,1472,8.256,1473,6.851,1474,4.069,1475,7.247,1476,7.682,1477,7.682,1478,9.858,1479,5.005,1480,4.307,1481,5.005,1482,5.005,1483,5.005,1484,5.005,1485,5.005,1486,4.684,1487,4.39,1488,6.001,1489,6.423,1490,7.097,1491,5.772,1492,6.087,1493,4.866,1494,6.193]],["title/classes/ApiValidationErrorResponse.html",[0,0.229,1495,5.892]],["body/classes/ApiValidationErrorResponse.html",[0,0.22,2,0.744,3,0.017,4,0.017,5,0.009,7,0.1,8,1.085,27,0.528,29,0.714,30,0.001,31,0.505,32,0.188,33,0.559,35,0.781,47,0.924,55,1.423,95,0.143,101,0.012,103,0.001,104,0.001,111,2.067,127,0.819,144,2.458,148,2.782,165,0.711,187,0.926,204,4.027,216,2.416,217,1.365,309,3.662,329,2.649,379,2.072,394,3.698,404,1.629,503,7.513,558,3.076,565,4.748,577,3.628,596,3.565,1016,3.211,1253,5.414,1291,2.753,1327,4.412,1469,8.039,1473,5.908,1474,3.792,1478,9.031,1486,7.751,1491,5.14,1492,7.513,1495,7.857,1496,11.173,1497,6.472,1498,7.491,1499,6.666,1500,7.509,1501,8.995,1502,8.995,1503,8.995,1504,9.031,1505,6.472,1506,6.472,1507,5.245,1508,5.09,1509,6.472,1510,4.045,1511,6.472,1512,5.653,1513,6.472,1514,5.978,1515,4.156,1516,5.978,1517,8.995,1518,11.173,1519,6.472,1520,6.472,1521,6.472,1522,6.472,1523,6.472,1524,6.472,1525,8.995,1526,6.472,1527,6.472,1528,6.472,1529,6.472,1530,6.472,1531,6.472,1532,6.472,1533,6.472,1534,6.472]],["title/interfaces/AppStartInfo.html",[334,0.742,1535,5.892]],["body/interfaces/AppStartInfo.html",[0,0.285,3,0.028,4,0.022,5,0.012,7,0.129,30,0.001,32,0.174,33,0.654,47,0.988,55,2.586,95,0.107,101,0.016,103,0.001,104,0.001,145,3.034,163,3.366,165,0.844,214,2.763,215,2.708,216,1.547,217,1.105,227,0.883,334,0.921,336,2.038,549,5.825,1021,4.453,1327,3.305,1535,10.271,1536,7.731,1537,7.311,1538,11.176,1539,10.819,1540,10.819,1541,9.675,1542,4.982,1543,5.548,1544,9.327,1545,2.673,1546,6.997,1547,4.164,1548,7.731,1549,9.863,1550,7.731,1551,9.863,1552,7.731,1553,9.863,1554,7.731,1555,5.231,1556,7.731]],["title/classes/AppStartLoggable.html",[0,0.229,1546,5.639]],["body/classes/AppStartLoggable.html",[0,0.289,2,0.979,3,0.031,4,0.023,5,0.012,7,0.131,8,1.302,27,0.448,29,0.676,30,0.001,31,0.478,32,0.119,33,0.426,35,1.027,47,0.862,55,1.872,95,0.109,101,0.016,103,0.001,104,0.001,127,1.077,145,3.058,163,3.402,214,3.563,215,2.754,216,1.573,217,1.124,227,0.898,334,0.937,549,5.924,1021,6.305,1327,3.361,1535,10.886,1536,10.947,1537,7.435,1538,9.427,1539,7.435,1540,7.435,1541,6.648,1542,5.53,1543,6.158,1544,9.427,1545,2.718,1546,9.022,1547,6.2,1548,7.862,1549,9.969,1550,7.862,1551,9.969,1552,7.862,1553,9.969,1554,7.862,1555,5.32,1556,7.862,1557,8.511,1558,8.511,1559,8.511]],["title/interfaces/AppendedAttachment.html",[334,0.742,1560,4.999]],["body/interfaces/AppendedAttachment.html",[3,0.024,4,0.024,5,0.013,7,0.137,30,0.001,31,0.501,47,1.024,77,5.654,101,0.017,103,0.001,104,0.001,165,0.879,334,1.484,336,2.174,404,2.362,1560,8.977,1561,6.782,1562,9.396,1563,9.91,1564,6.782,1565,4.958,1566,8.241,1567,6.467,1568,6.782,1569,6.467,1570,8.977,1571,6.782,1572,8.241,1573,8.449,1574,8.449,1575,8.241,1576,6.701,1577,6.615,1578,6.615,1579,6.782,1580,6.782]],["title/modules/AuthenticationApiModule.html",[425,1.808,1581,5.269]],["body/modules/AuthenticationApiModule.html",[0,0.314,3,0.024,4,0.024,5,0.013,30,0.001,95,0.165,101,0.018,103,0.001,104,0.001,187,1.322,425,3.295,427,3.413,428,3.599,429,3.712,430,3.695,431,3.662,432,4.545,433,4.281,442,4.565,443,3.631,444,3.539,446,5.848,447,4.76,449,4.565,1581,10.717,1582,9.233,1583,9.233,1584,9.233,1585,8.869,1586,11.211,1587,9.233,1588,10.742,1589,9.233,1590,9.233,1591,8.529]],["title/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.229,1592,5.437]],["body/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.286,2,0.967,3,0.022,4,0.022,5,0.012,7,0.129,27,0.544,29,0.667,30,0.001,31,0.472,32,0.184,33,0.42,47,0.979,95,0.108,101,0.016,103,0.001,104,0.001,127,1.063,165,0.846,405,2.893,595,2.903,1253,6.322,1592,10.326,1593,13.309,1594,10.86,1595,8.404,1596,8.36,1597,9.497,1598,10.291,1599,10.291,1600,10.705,1601,8.404,1602,8.404,1603,9.889,1604,8.404,1605,8.404,1606,7.763,1607,7.026,1608,6.229,1609,7.763,1610,8.404,1611,8.404,1612,8.404,1613,8.404,1614,8.404,1615,8.404,1616,8.404,1617,7.341,1618,8.404]],["title/modules/AuthenticationModule.html",[425,1.808,1585,4.461]],["body/modules/AuthenticationModule.html",[0,0.188,3,0.015,4,0.015,5,0.008,30,0.001,32,0.078,95,0.175,101,0.011,103,0,104,0,187,0.791,217,1.374,234,0.897,305,1.59,425,2.54,427,2.044,428,2.155,429,2.223,430,2.213,431,2.193,432,3.503,433,3.574,437,8.188,438,5.45,441,7.036,442,3.233,443,2.174,444,2.119,449,3.233,450,2.274,783,3.332,802,4.006,803,3.456,817,9.013,823,8.36,1499,4.098,1545,1.766,1585,9.352,1619,5.529,1620,5.529,1621,5.529,1622,5.529,1623,9.301,1624,9.013,1625,8.767,1626,8.188,1627,9.594,1628,10.079,1629,9.301,1630,9.646,1631,10.079,1632,8.031,1633,10.079,1634,10.079,1635,5.529,1636,5.529,1637,9.478,1638,4.83,1639,8.042,1640,4.098,1641,4.83,1642,4.83,1643,5.529,1644,4.83,1645,4.098,1646,8.638,1647,11.057,1648,4.098,1649,4.623,1650,4.83,1651,4.623,1652,5.108,1653,5.529,1654,4.83,1655,5.529,1656,5.529,1657,5.529,1658,5.529,1659,3.924,1660,4.457,1661,3.602,1662,5.108,1663,5.529,1664,4.83,1665,5.108,1666,3.848,1667,5.108,1668,5.529,1669,5.529,1670,5.529,1671,4.623,1672,5.529,1673,5.529,1674,5.529,1675,5.529,1676,5.529,1677,5.529,1678,5.529,1679,5.529,1680,3.78,1681,5.529,1682,5.529,1683,3.259,1684,5.529,1685,9.478,1686,5.529,1687,4.201,1688,5.529,1689,5.108,1690,5.529,1691,3.413,1692,5.529,1693,4.623,1694,5.529,1695,5.529,1696,3.16,1697,5.108,1698,5.529,1699,5.529]],["title/interfaces/AuthenticationResponse.html",[334,0.742,1700,5.892]],["body/interfaces/AuthenticationResponse.html",[0,0.179,3,0.014,4,0.014,5,0.007,7,0.081,30,0.001,32,0.074,36,1.143,47,0.991,51,3.832,55,1.157,87,3.832,94,3.686,95,0.13,99,0.892,101,0.01,103,0,104,0,111,2.456,112,1.18,116,3.669,163,2.904,165,0.613,167,2.009,185,2.06,187,0.753,216,1.703,217,1.806,221,1.24,227,1.353,234,1.494,247,3.076,305,1.514,334,0.579,336,1.282,347,1.072,359,1.824,363,4.98,483,2.532,543,5.68,576,7.757,643,3.734,740,6.775,905,2.185,946,3.428,1016,3.289,1062,2.296,1388,6.058,1491,3.007,1683,6.387,1700,8.879,1701,4.861,1702,4.861,1703,7.62,1704,9.389,1705,6.775,1706,4.861,1707,4.861,1708,3.812,1709,4.596,1710,4.861,1711,4.399,1712,4.861,1713,4.861,1714,4.596,1715,6.775,1716,4.861,1717,3.379,1718,4.861,1719,4.861,1720,3.998,1721,4.596,1722,4.399,1723,4.241,1724,2.95,1725,6.673,1726,8.508,1727,4.861,1728,4.861,1729,7.164,1730,7.164,1731,4.861,1732,10.473,1733,4.861,1734,4.861,1735,10.011,1736,10.011,1737,11.539,1738,4.861,1739,4.861,1740,10.011,1741,4.861,1742,9.389,1743,4.861,1744,4.861,1745,7.7,1746,4.861,1747,4.861,1748,4.861,1749,4.861,1750,4.861,1751,4.861,1752,4.861,1753,4.861,1754,7.164,1755,4.861,1756,4.596,1757,4.861,1758,3.998,1759,7.164,1760,4.861,1761,4.861,1762,4.861,1763,7.164,1764,4.861,1765,7.164,1766,4.861,1767,4.861,1768,7.164,1769,4.861,1770,4.861,1771,4.861,1772,7.164,1773,3.379,1774,4.861,1775,4.861,1776,4.861,1777,4.861,1778,4.861,1779,4.861,1780,4.861]],["title/injectables/AuthenticationService.html",[105,0.889,1627,4.999]],["body/injectables/AuthenticationService.html",[0,0.175,3,0.014,4,0.014,5,0.007,7,0.079,8,0.922,21,6.385,27,0.497,29,0.95,30,0.001,31,0.671,32,0.171,33,0.598,34,0.884,35,1.405,36,2.599,47,0.992,48,5.283,51,3.774,59,1.599,66,6.805,73,4.761,74,4.155,77,3.264,83,1.55,87,2.547,94,5.348,95,0.165,101,0.01,103,0,104,0,105,1.006,107,1.233,111,2.012,112,2.862,127,0.966,145,1.33,148,2.363,167,3.473,187,0.738,216,1.86,217,1.486,221,2.532,227,1.062,231,2.975,234,1.743,305,2.197,369,1.136,403,3.409,461,1.187,647,4.502,789,7.479,801,3.006,804,3.916,818,8.439,1247,4.761,1627,5.661,1629,9.389,1638,4.502,1648,3.82,1654,4.502,1683,3.038,1703,3.464,1708,3.734,1773,3.31,1781,5.154,1782,7.638,1783,7.638,1784,7.055,1785,7.638,1786,7.638,1787,7.638,1788,5.154,1789,11.253,1790,5.154,1791,7.638,1792,5.154,1793,7.638,1794,8.111,1795,5.154,1796,7.055,1797,5.154,1798,7.638,1799,5.154,1800,7.638,1801,5.154,1802,7.638,1803,5.154,1804,5.154,1805,7.638,1806,5.154,1807,4.026,1808,3.82,1809,5.154,1810,4.502,1811,7.638,1812,3.657,1813,5.534,1814,4.502,1815,5.154,1816,5.154,1817,4.309,1818,5.154,1819,3.31,1820,4.309,1821,7.108,1822,3.657,1823,5.154,1824,5.154,1825,5.154,1826,4.761,1827,6.744,1828,3.405,1829,5.154,1830,5.154,1831,5.154,1832,5.154,1833,7.055,1834,5.154,1835,7.638,1836,7.638,1837,5.154,1838,7.638,1839,4.761,1840,5.154,1841,3.734,1842,4.502,1843,7.055,1844,5.154,1845,5.154,1846,5.154,1847,5.154,1848,3.464,1849,5.154,1850,4.155,1851,5.154,1852,5.154,1853,5.154]],["title/interfaces/AuthorizableObject.html",[334,0.742,1854,3.933]],["body/interfaces/AuthorizableObject.html",[0,0.327,3,0.026,4,0.026,5,0.014,9,4.606,26,2.613,30,0.001,34,1.998,95,0.124,101,0.022,103,0.001,104,0.001,116,3.77,208,3.574,214,3.18,217,1.272,227,1.229,334,1.06,336,2.346,405,2.602,595,4.025,661,4.057,692,4.667,1854,7.305,1855,8.897,1856,8.413,1857,4.118,1858,9.741,1859,8.897,1860,6.37,1861,10.762]],["title/interfaces/AuthorizationContext.html",[334,0.742,1862,3.713]],["body/interfaces/AuthorizationContext.html",[3,0.026,4,0.026,5,0.014,7,0.153,30,0.001,32,0.167,95,0.153,99,1.69,101,0.019,103,0.001,104,0.001,165,0.94,334,1.097,336,2.427,843,5.745,1862,6.546,1863,8.705,1864,9.205,1865,7.284,1866,7.45,1867,9.965]],["title/classes/AuthorizationContextBuilder.html",[0,0.229,1868,4.272]],["body/classes/AuthorizationContextBuilder.html",[0,0.277,2,0.937,3,0.022,4,0.022,5,0.012,7,0.125,8,1.266,27,0.482,29,0.922,30,0.001,31,0.652,32,0.163,33,0.581,35,1.401,95,0.135,99,1.382,101,0.016,103,0.001,104,0.001,111,2.321,199,4.959,208,3.024,217,1.533,227,1.225,627,4.211,667,4.927,843,5.952,1862,7.275,1865,7.011,1866,6.94,1868,6.648,1869,12.262,1870,8.149,1871,6.478,1872,6.943,1873,10.496,1874,8.149,1875,10.496,1876,8.149,1877,10.496,1878,8.149,1879,10.496,1880,5.309,1881,5.161]],["title/classes/AuthorizationError.html",[0,0.229,1882,6.23]],["body/classes/AuthorizationError.html",[0,0.261,2,0.883,3,0.02,4,0.02,5,0.011,7,0.118,8,1.219,27,0.541,29,0.61,30,0.001,31,0.431,32,0.189,33,0.565,35,0.927,47,0.929,55,1.689,59,3.134,95,0.13,101,0.015,103,0.001,104,0.001,127,0.972,165,0.798,187,1.1,204,4.272,216,2.496,364,2.307,404,1.829,406,2.462,564,2.851,596,3.881,1013,5.496,1016,2.743,1253,5.204,1291,5.1,1327,4.918,1472,8.256,1473,7.447,1474,4.069,1475,7.247,1479,5.005,1480,4.307,1481,5.005,1482,5.005,1483,5.005,1484,5.005,1485,5.005,1486,4.684,1487,4.39,1488,6.001,1493,4.866,1865,4.023,1882,9.331,1883,7.682,1884,8.142,1885,7.682,1886,7.682,1887,4.742,1888,6.711,1889,7.097]],["title/injectables/AuthorizationHelper.html",[105,0.889,1890,4.272]],["body/injectables/AuthorizationHelper.html",[0,0.205,3,0.016,4,0.016,5,0.009,7,0.093,8,1.034,27,0.476,29,0.971,30,0.001,31,0.643,32,0.172,33,0.573,35,1.381,47,0.937,95,0.128,96,1.633,101,0.012,103,0.001,104,0.001,105,1.13,107,1.446,111,1.992,116,4.26,187,0.865,217,1.65,227,1.29,247,2.397,347,2.589,369,1.332,371,2.362,380,2.557,398,1.77,461,3.158,496,4.822,692,4.655,738,3.489,806,3.612,1062,2.638,1828,5.452,1866,7.193,1890,5.43,1891,6.044,1892,8.573,1893,10.387,1894,8.573,1895,7.92,1896,8.573,1897,8.573,1898,9.963,1899,12.495,1900,6.044,1901,7.92,1902,6.044,1903,8.573,1904,6.044,1905,7.92,1906,6.044,1907,8.573,1908,10.842,1909,6.044,1910,4.049,1911,3.731,1912,5.583,1913,7.489,1914,7.92,1915,5.583,1916,4.826,1917,5.28,1918,8.573,1919,2.51,1920,6.044,1921,3.998,1922,3.828,1923,5.053,1924,4.592,1925,3.141,1926,5.583,1927,5.583,1928,5.292,1929,6.044,1930,6.044,1931,6.044,1932,5.86,1933,6.044,1934,6.044]],["title/interfaces/AuthorizationLoaderService.html",[334,0.742,1935,5.437]],["body/interfaces/AuthorizationLoaderService.html",[3,0.025,4,0.025,5,0.013,7,0.146,8,1.394,12,5.326,26,2.769,27,0.394,29,0.754,30,0.001,31,0.533,32,0.133,33,0.475,34,1.629,35,1.146,36,2.705,40,5.991,95,0.16,99,1.61,101,0.022,103,0.001,104,0.001,334,1.271,336,2.313,359,3.292,404,1.719,1854,5.537,1863,10.09,1935,10.035,1936,9.023,1937,8.294,1938,9.494,1939,5.48,1940,6.014,1941,6.737,1942,7.214,1943,7.938]],["title/interfaces/AuthorizationLoaderServiceGeneric.html",[334,0.742,1943,5.639]],["body/interfaces/AuthorizationLoaderServiceGeneric.html",[3,0.025,4,0.025,5,0.013,7,0.145,8,1.39,12,5.311,26,2.765,27,0.393,29,0.751,30,0.001,31,0.53,32,0.133,33,0.473,34,1.621,35,1.14,36,2.699,40,5.979,95,0.159,99,1.603,101,0.022,103,0.001,104,0.001,334,1.268,336,2.302,359,3.276,404,2.086,1854,5.511,1863,10.061,1935,10.014,1936,8.997,1937,8.255,1939,5.454,1940,5.985,1941,6.706,1942,7.18,1943,9.629,1944,9.45]],["title/modules/AuthorizationModule.html",[425,1.808,1945,3.649]],["body/modules/AuthorizationModule.html",[0,0.186,3,0.015,4,0.015,5,0.008,30,0.001,95,0.167,101,0.01,103,0,104,0,187,0.784,191,3.042,192,1.633,425,2.526,427,2.024,428,2.135,429,2.201,430,2.192,431,2.172,432,3.484,433,3.554,438,5.431,441,7.012,442,3.21,443,2.153,444,2.099,449,3.21,450,2.253,1545,1.749,1632,8.004,1890,7.284,1919,2.274,1945,7.776,1946,5.476,1947,5.476,1948,5.476,1949,5.476,1950,9.27,1951,7.385,1952,6.932,1953,10.802,1954,8.662,1955,8.662,1956,8.983,1957,8.351,1958,7.012,1959,7.678,1960,9.27,1961,8.662,1962,7.385,1963,8.351,1964,9.27,1965,9.614,1966,8.523,1967,8.662,1968,8.738,1969,8.662,1970,8.004,1971,8.351,1972,8.662,1973,7.729,1974,8.662,1975,8.662,1976,5.476,1977,7.211,1978,7.986,1979,5.059,1980,4.784,1981,6.068,1982,4.784,1983,6.239,1984,2.342,1985,5.059,1986,5.476,1987,3.517,1988,4.784,1989,3.38,1990,4.278,1991,2.963,1992,5.476,1993,3.744,1994,5.059]],["title/classes/AuthorizationParams.html",[0,0.229,1995,5.269]],["body/classes/AuthorizationParams.html",[0,0.366,2,0.975,3,0.022,4,0.022,5,0.012,7,0.13,27,0.534,30,0.001,32,0.18,33,0.675,47,0.981,95,0.138,101,0.016,102,5.43,103,0.001,104,0.001,165,0.85,204,4.057,364,2.379,374,2.707,460,6.759,470,5.41,471,5.464,602,8.998,614,7.403,1001,7.047,1044,4.159,1253,5.454,1995,8.408,1996,8.475,1997,9.239,1998,10.925,1999,7.829,2000,8.475,2001,10.925,2002,7.829,2003,8.475,2004,8.475,2005,8.475,2006,8.475,2007,7.829,2008,5.442,2009,7.829,2010,7.829]],["title/injectables/AuthorizationService.html",[105,0.889,1952,3.618]],["body/injectables/AuthorizationService.html",[0,0.15,3,0.012,4,0.012,5,0.006,7,0.068,8,0.818,26,2.801,27,0.496,29,0.948,30,0.001,31,0.67,32,0.168,33,0.597,35,1.411,36,2.302,39,2.689,47,0.896,80,3.682,95,0.15,99,0.747,101,0.008,102,3.422,103,0,104,0,105,0.894,107,1.054,111,1.654,112,2.622,116,4.389,127,0.858,148,3.278,167,1.681,187,0.63,199,5.036,204,1.51,208,1.634,216,1.529,217,1.399,221,1.949,227,1.059,234,1.627,284,2.654,305,2.886,347,2.159,359,4.329,461,3.115,722,1.942,784,3.58,885,5.67,1158,3.609,1440,3.01,1441,3.264,1819,2.828,1854,6.438,1862,6.874,1866,7.276,1890,6.993,1893,5.924,1895,6.265,1901,6.265,1905,6.265,1919,3.434,1928,6.54,1936,6.461,1939,6.372,1940,2.789,1952,3.638,1964,7.489,1965,8.859,1985,4.068,1988,3.847,1989,5.105,1990,3.44,2011,4.404,2012,6.782,2013,6.782,2014,5.026,2015,8.27,2016,6.265,2017,8.27,2018,4.404,2019,4.404,2020,6.782,2021,4.404,2022,6.782,2023,4.404,2024,6.782,2025,4.404,2026,4.404,2027,7.192,2028,4.404,2029,5.924,2030,4.404,2031,4.404,2032,4.404,2033,4.418,2034,4.404,2035,4.404,2036,4.404,2037,5.362,2038,5.654,2039,3.847,2040,4.404,2041,4.404,2042,4.404,2043,4.404,2044,6.782,2045,6.782,2046,4.404,2047,4.404,2048,3.847,2049,3.55,2050,4.068,2051,4.404,2052,4.404,2053,4.404,2054,3.847,2055,4.404,2056,4.558,2057,6.782,2058,6.782,2059,4.404]],["title/classes/AxiosResponseImp.html",[0,0.229,2060,6.23]],["body/classes/AxiosResponseImp.html",[0,0.255,2,0.862,3,0.02,4,0.02,5,0.011,7,0.115,27,0.528,29,0.595,30,0.001,31,0.421,32,0.185,33,0.375,47,0.863,55,2.452,95,0.128,101,0.019,103,0.001,104,0.001,127,0.949,154,5.632,163,3.895,165,0.785,214,3.281,217,0.99,227,0.791,234,1.808,405,2.686,498,5.124,564,4.584,595,2.59,660,4.126,692,4.154,731,2.948,736,4.467,1026,4.164,1298,3.54,1299,3.498,1300,3.498,1301,3.704,1302,4.055,1381,7.404,2060,10.3,2061,12.954,2062,6.925,2063,7.761,2064,12.354,2065,12.354,2066,9.939,2067,11.873,2068,7.496,2069,12.354,2070,7.496,2071,6.925,2072,7.496,2073,9.939,2074,5.124,2075,9.939,2076,3.957,2077,7.496,2078,4.372,2079,5.218,2080,7.496,2081,7.496,2082,7.496,2083,7.496,2084,6.043,2085,6.267,2086,5.319,2087,7.496,2088,6.925]],["title/classes/BBBBaseMeetingConfig.html",[0,0.229,2089,4.999]],["body/classes/BBBBaseMeetingConfig.html",[0,0.332,2,1.124,3,0.026,4,0.026,5,0.014,7,0.15,27,0.488,29,0.776,30,0.001,31,0.549,32,0.165,33,0.489,47,0.854,101,0.019,103,0.001,104,0.001,127,1.236,154,4.454,165,0.929,2089,9.917,2090,6.405,2091,11.011,2092,7.133,2093,9.771,2094,8.945,2095,10.267,2096,9.771,2097,9.771,2098,9.026,2099,8.536]],["title/interfaces/BBBBaseResponse.html",[334,0.742,2100,4.694]],["body/interfaces/BBBBaseResponse.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.177,47,0.989,95,0.126,101,0.019,103,0.001,104,0.001,165,0.931,334,1.081,336,2.392,1327,5.174,2090,4.99,2100,8.204,2101,8.209,2102,9.819,2103,13.1,2104,13.1,2105,12.102,2106,5.787,2107,7.67]],["title/classes/BBBCreateConfig.html",[0,0.229,2108,5.639]],["body/classes/BBBCreateConfig.html",[0,0.233,2,0.789,3,0.018,4,0.018,5,0.01,7,0.105,27,0.555,29,0.545,30,0.001,31,0.734,32,0.187,33,0.691,47,0.985,95,0.088,101,0.018,103,0.001,104,0.001,127,0.868,154,3.126,165,0.74,347,2.333,404,1.695,596,2.082,1031,2.197,2089,8.487,2090,6.783,2091,11.66,2092,3.881,2094,6.643,2095,8.177,2098,6.335,2099,5.99,2106,4.042,2108,10.021,2109,6.857,2110,10.658,2111,10.658,2112,10.807,2113,6.75,2114,10.658,2115,9.662,2116,6.485,2117,10.658,2118,10.658,2119,9.845,2120,6.857,2121,6.857,2122,6.857,2123,6.857,2124,6.857,2125,6.857,2126,6.857,2127,6.857,2128,6.857,2129,6.857,2130,6.335,2131,6.335,2132,9.361,2133,9.361,2134,9.361,2135,6.335,2136,2.744,2137,6.857,2138,5.082,2139,6.857,2140,6.857,2141,6.857,2142,6.857,2143,6.857,2144,6.857,2145,6.857,2146,6.857,2147,6.857,2148,6.857,2149,6.857,2150,6.857,2151,6.857]],["title/classes/BBBCreateConfigBuilder.html",[0,0.229,2152,5.892]],["body/classes/BBBCreateConfigBuilder.html",[0,0.238,2,0.804,3,0.019,4,0.019,5,0.01,7,0.108,8,1.144,27,0.517,29,0.917,30,0.001,31,0.677,32,0.169,33,0.577,35,1.456,47,0.925,95,0.138,101,0.013,102,3.526,103,0.001,104,0.001,144,2.941,165,0.749,204,2.397,216,1.753,227,1.273,347,2.193,367,3.363,369,1.541,404,1.717,596,2.879,661,3.995,667,5.418,691,3.66,692,2.603,728,2.736,883,5.216,956,4.553,2090,6.131,2106,4.119,2108,8.998,2112,10.869,2113,6.006,2115,5.633,2116,3.781,2119,8.759,2152,11.592,2153,11.145,2154,6.456,2155,8.362,2156,7.928,2157,9.482,2158,9.482,2159,9.482,2160,9.482,2161,6.456,2162,6.988,2163,9.482,2164,6.988,2165,9.482,2166,6.988,2167,9.482,2168,6.988,2169,9.482,2170,6.988,2171,3.003,2172,3.342,2173,3.223,2174,4.426,2175,5.063,2176,6.988,2177,6.988,2178,6.988,2179,6.988,2180,4.426,2181,6.988,2182,6.456,2183,5.179,2184,6.105,2185,3.955,2186,4.426,2187,4.697,2188,5.633,2189,6.988,2190,5.459,2191,6.988,2192,6.105,2193,6.988,2194,6.988]],["title/interfaces/BBBCreateResponse.html",[334,0.742,2195,5.892]],["body/interfaces/BBBCreateResponse.html",[3,0.022,4,0.022,5,0.012,7,0.13,30,0.001,32,0.193,47,1.021,55,2.994,95,0.108,101,0.016,103,0.001,104,0.001,165,0.848,334,0.929,336,2.056,347,2.671,404,1.944,2090,4.289,2094,8.815,2100,8.216,2101,7.056,2106,4.974,2195,9.377,2196,8.439,2197,11.476,2198,11.476,2199,11.476,2200,10.852,2201,11.476,2202,11.476,2203,11.476,2204,11.476,2205,11.476,2206,7.056]],["title/classes/BBBJoinConfig.html",[0,0.229,2207,5.639]],["body/classes/BBBJoinConfig.html",[0,0.272,2,0.92,3,0.021,4,0.021,5,0.011,7,0.123,27,0.547,29,0.636,30,0.001,31,0.449,32,0.185,33,0.658,39,3.085,47,0.957,95,0.103,101,0.02,103,0.001,104,0.001,127,1.013,154,3.648,165,0.82,347,2.114,404,1.879,415,4.367,496,4.849,596,2.43,1031,2.564,2089,9.026,2090,6.687,2091,11.495,2092,4.529,2094,7.362,2095,9.062,2106,4.717,2130,7.393,2131,7.393,2135,7.393,2175,8.34,2207,10.549,2208,8.003,2209,10.056,2210,11.511,2211,7.499,2212,8.003,2213,8.003,2214,8.003,2215,8.003,2216,8.003,2217,8.003,2218,9.062,2219,10.374,2220,8.003,2221,8.003,2222,6.081,2223,8.003,2224,8.003,2225,8.003,2226,8.003,2227,6.691,2228,8.003]],["title/classes/BBBJoinConfigBuilder.html",[0,0.229,2229,5.892]],["body/classes/BBBJoinConfigBuilder.html",[0,0.272,2,0.92,3,0.021,4,0.021,5,0.011,7,0.123,8,1.252,27,0.524,29,0.914,30,0.001,31,0.646,32,0.171,33,0.576,35,1.469,47,0.837,95,0.133,101,0.015,103,0.001,104,0.001,144,3.532,165,0.82,216,1.918,227,1.215,347,2.345,404,1.879,596,3.15,661,4.37,667,5.404,692,3.865,2090,6.189,2153,11.25,2154,7.393,2155,8.689,2156,8.673,2161,7.393,2175,8.824,2207,6.691,2229,11.652,2230,9.254,2231,10.374,2232,9.583,2233,9.583,2234,10.374,2235,8.003,2236,10.374,2237,8.003,2238,10.374,2239,8.003,2240,8.003,2241,8.003,2242,8.003,2243,8.003,2244,8.003,2245,8.003]],["title/interfaces/BBBJoinResponse.html",[334,0.742,2246,6.23]],["body/interfaces/BBBJoinResponse.html",[3,0.025,4,0.025,5,0.013,7,0.143,30,0.001,32,0.185,47,1.032,95,0.12,101,0.018,103,0.001,104,0.001,150,4.72,165,0.902,334,1.026,336,2.27,404,2.068,2090,4.735,2100,8.594,2101,7.791,2106,5.492,2206,7.791,2246,10.549,2247,8.608,2248,12.87,2249,12.87,2250,12.87,2251,11.889]],["title/interfaces/BBBMeetingInfoResponse.html",[334,0.742,2252,5.269]],["body/interfaces/BBBMeetingInfoResponse.html",[3,0.016,4,0.016,5,0.009,7,0.095,30,0.001,32,0.198,33,0.549,39,1.662,47,1.006,55,3.116,95,0.08,101,0.012,103,0.001,104,0.001,138,5.206,165,0.69,334,0.683,336,1.511,347,2.81,404,1.581,496,2.613,674,3.384,1062,2.707,2090,3.152,2094,7.782,2100,7.033,2101,5.185,2106,3.656,2197,10.131,2198,10.131,2199,10.131,2200,9.58,2201,10.131,2202,10.131,2203,10.131,2204,5.729,2205,10.131,2206,5.185,2209,5.418,2252,6.821,2253,5.729,2254,5,2255,10.967,2256,11.559,2257,10.967,2258,10.131,2259,10.967,2260,10.967,2261,10.967,2262,10.967,2263,7.782,2264,10.967,2265,10.967,2266,10.967,2267,7.946,2268,10.131,2269,10.967,2270,10.967,2271,5.729,2272,6.202,2273,6.202,2274,6.202,2275,6.202,2276,6.202,2277,6.202]],["title/interfaces/BBBResponse.html",[334,0.742,2278,5.125]],["body/interfaces/BBBResponse.html",[3,0.027,4,0.027,5,0.015,7,0.158,30,0.001,32,0.144,95,0.132,101,0.02,103,0.001,104,0.001,165,0.958,334,1.133,336,2.508,692,4.801,1016,4.751,2090,5.232,2100,7.166,2106,6.068,2206,8.608,2278,9.212,2279,10.296]],["title/injectables/BBBService.html",[105,0.889,2280,5.125]],["body/injectables/BBBService.html",[0,0.118,3,0.009,4,0.009,5,0.005,7,0.053,8,0.678,27,0.482,29,0.962,30,0.001,31,0.639,32,0.156,33,0.542,35,1.519,36,2.473,47,0.957,95,0.146,101,0.007,103,0,104,0,105,0.74,107,0.83,111,2.013,112,1.587,127,0.711,150,4.325,154,4.78,163,1.771,167,1.325,185,2.199,187,0.497,193,10.586,216,1.308,217,1.635,221,0.818,227,1.279,234,1.805,235,1.964,238,3.829,250,9.056,254,2.901,255,4.907,256,2.901,264,4.586,270,3.031,305,2.751,359,3.491,367,1.67,379,0.799,661,4.887,687,2.606,691,4.26,839,1.629,883,3.41,884,2.653,956,3.66,1016,1.239,1265,6.883,1266,1.983,1268,2.228,1381,2.023,1426,4.907,1439,4.574,1440,2.372,1441,2.572,1460,4.697,1491,3.21,1510,3.511,1812,3.986,2054,6.183,2063,5.662,2074,2.372,2076,1.831,2089,8.742,2090,5.994,2094,2.462,2099,3.031,2100,2.415,2105,3.205,2106,6.952,2108,8.766,2183,4.163,2186,3.558,2187,3.776,2188,4.528,2195,3.031,2207,7.471,2230,7.267,2252,2.711,2253,9.685,2278,7.267,2280,4.268,2281,3.47,2282,3.776,2283,5.617,2284,5.617,2285,5.189,2286,5.617,2287,5.705,2288,7.806,2289,3.47,2290,6.558,2291,8.418,2292,3.47,2293,6.183,2294,5.617,2295,3.47,2296,5.773,2297,5.617,2298,3.385,2299,5.189,2300,5.617,2301,5.617,2302,3.47,2303,4.907,2304,5.617,2305,3.47,2306,5.189,2307,4.907,2308,9.564,2309,3.149,2310,8.135,2311,5.617,2312,3.47,2313,5.617,2314,3.47,2315,5.617,2316,3.47,2317,7.107,2318,5.617,2319,5.617,2320,3.47,2321,3.716,2322,5.617,2323,3.47,2324,4.907,2325,5.189,2326,3.47,2327,3.47,2328,3.47,2329,3.47,2330,3.47,2331,3.47,2332,3.47,2333,7.463,2334,2.797,2335,2.901,2336,3.47,2337,3.47,2338,3.47,2339,3.47,2340,6.558,2341,3.47,2342,8.135,2343,5.617,2344,1.434,2345,3.47,2346,3.47,2347,3.47,2348,6.538,2349,6.538,2350,9.564,2351,5.617,2352,5.617,2353,7.078,2354,7.078,2355,7.078,2356,7.078,2357,6.538,2358,3.47,2359,3.47,2360,3.47,2361,3.47,2362,5.189,2363,3.47,2364,3.47,2365,3.47,2366,3.47,2367,4.697,2368,3.47,2369,3.47,2370,3.47,2371,3.47,2372,3.47,2373,3.47,2374,3.47,2375,3.47,2376,3.47,2377,3.47,2378,3.205,2379,3.47]],["title/classes/BaseDO.html",[0,0.229,1939,3.893]],["body/classes/BaseDO.html",[0,0.334,2,1.129,3,0.026,4,0.026,5,0.014,7,0.151,9,4.696,27,0.49,29,0.78,30,0.001,31,0.551,32,0.165,33,0.632,34,2.298,47,0.974,59,3.047,101,0.019,102,4.954,103,0.001,104,0.001,127,1.242,165,0.931,618,4.177,661,4.966,1939,6.804,2380,9.819,2381,9.208,2382,11.787]],["title/injectables/BaseDORepo.html",[105,0.889,2383,4.611]],["body/injectables/BaseDORepo.html",[0,0.139,3,0.011,4,0.011,5,0.006,7,0.063,8,0.774,9,5.704,10,3.61,12,2.958,18,3.169,26,2.594,27,0.522,29,0.988,30,0.001,31,0.698,32,0.175,33,0.622,34,2.008,35,1.483,36,2.85,40,3.087,47,0.466,49,1.598,55,0.901,95,0.124,96,1.733,97,1.744,99,0.695,101,0.008,102,2.068,103,0,104,0,105,0.845,107,0.981,111,2.423,112,2.889,127,0.519,148,1.268,165,0.507,187,0.587,216,1.186,217,1.702,221,2.696,227,1.207,234,1.04,247,1.626,359,2.224,380,2.569,381,2.111,398,1.2,500,4.385,524,3.781,574,1.858,595,1.416,661,4.93,770,2.416,878,4.465,884,3.03,885,4.827,915,2.256,929,3.581,1008,4.312,1052,3.22,1053,3.964,1143,3.786,1545,1.309,1857,3.822,1919,1.702,1939,2.366,2092,3.63,2321,2.711,2383,4.385,2384,4.099,2385,4.552,2386,4.552,2387,4.552,2388,4.552,2389,4.465,2390,4.465,2391,4.552,2392,4.465,2393,4.552,2394,2.97,2395,5.108,2396,4.099,2397,4.647,2398,4.552,2399,4.099,2400,7.535,2401,4.552,2402,4.099,2403,4.552,2404,4.099,2405,5.227,2406,4.552,2407,4.552,2408,4.099,2409,4.552,2410,4.099,2411,4.552,2412,8.038,2413,4.099,2414,4.099,2415,4.552,2416,4.099,2417,4.311,2418,4.465,2419,4.099,2420,4.552,2421,4.099,2422,3.911,2423,3.911,2424,4.552,2425,4.099,2426,4.552,2427,4.099,2428,2.909,2429,4.552,2430,4.099,2431,4.099,2432,5.327,2433,2.67,2434,3.581,2435,2.755,2436,7.902,2437,4.099,2438,4.099,2439,4.647,2440,4.099,2441,6.983,2442,4.099,2443,4.099,2444,5.011,2445,3.786,2446,2.909,2447,4.754,2448,9.505,2449,6.414,2450,4.063,2451,3.786,2452,4.099,2453,4.099,2454,4.099,2455,4.099,2456,5.603,2457,4.099,2458,4.099,2459,3.427,2460,4.099,2461,4.099,2462,4.099,2463,4.099,2464,4.099,2465,4.099,2466,4.099,2467,4.099,2468,3.427,2469,4.099,2470,4.099,2471,4.099,2472,4.099,2473,4.099,2474,4.099,2475,3.427,2476,3.581,2477,2.53,2478,2.342,2479,4.099,2480,4.099,2481,4.099,2482,3.581]],["title/classes/BaseDomainObject.html",[0,0.229,2483,6.23]],["body/classes/BaseDomainObject.html",[0,0.396,2,1.108,3,0.026,4,0.026,5,0.014,7,0.148,9,6.374,27,0.4,30,0.001,32,0.135,34,2.149,47,0.847,95,0.124,101,0.018,102,5.878,103,0.001,104,0.001,165,0.92,214,3.847,334,1.06,359,3.339,1854,7.305,1856,8.413,1865,5.043,2483,10.762,2484,11.651,2485,5.411,2486,9.631,2487,8.897,2488,6.584,2489,5.504,2490,7.763,2491,8.897,2492,9.631]],["title/classes/BaseEntity.html",[0,0.229,2433,4.394]],["body/classes/BaseEntity.html",[0,0.382,2,0.877,3,0.02,4,0.02,5,0.011,7,0.117,9,4.806,27,0.418,30,0.001,32,0.174,34,2.188,47,0.817,49,4.66,72,3.579,83,3.382,95,0.153,96,2.716,97,3.244,101,0.023,103,0.001,104,0.001,165,0.944,214,3.712,217,1.007,234,1.823,240,3.522,334,0.839,359,2.643,364,2.083,380,2.101,381,2.509,398,2.232,399,3.935,574,3.456,591,4.297,592,4.433,672,3.874,722,3.363,938,5.524,946,4.967,960,5.212,1240,4.401,1253,3.516,1278,6.902,1309,5.307,1854,6.97,1919,3.166,2183,5.65,2423,4.649,2433,7.325,2434,6.66,2485,3.293,2493,7.043,2494,8.783,2495,10.441,2496,7.624,2497,10.441,2498,7.624,2499,6.374,2500,4.706,2501,5.524,2502,6.374,2503,6.146,2504,6.374,2505,6.374,2506,7.043,2507,4.896,2508,4.896,2509,5.65,2510,4.829,2511,7.043,2512,7.043,2513,7.043,2514,5.043,2515,6.374,2516,6.66,2517,7.043,2518,6.66,2519,7.043]],["title/classes/BaseEntityWithTimestamps.html",[0,0.229,399,2.641]],["body/classes/BaseEntityWithTimestamps.html",[0,0.373,2,0.836,3,0.019,4,0.019,5,0.01,7,0.112,9,4.655,27,0.487,30,0.001,32,0.172,34,2.159,47,0.798,49,4.571,72,3.411,83,3.678,95,0.15,96,2.63,97,3.091,101,0.022,103,0.001,104,0.001,144,2.66,165,0.926,214,3.624,217,0.96,234,1.983,240,3.674,329,2.867,334,0.8,359,2.519,364,2.265,380,2.035,381,2.391,398,2.127,399,4.298,574,3.294,591,5.014,592,5.172,672,3.692,722,3.205,938,5.265,946,4.734,960,4.967,1240,4.194,1253,3.351,1278,6.808,1309,5.057,1854,6.838,1919,3.017,2183,5.385,2423,4.431,2433,6.342,2434,6.347,2485,3.138,2493,6.712,2494,7.604,2495,10.243,2497,10.243,2499,6.075,2500,4.485,2501,5.265,2502,6.075,2503,5.857,2504,6.075,2505,6.075,2506,6.712,2507,4.666,2508,4.666,2509,5.385,2510,4.602,2511,6.712,2512,6.712,2513,6.712,2514,4.806,2515,6.075,2516,6.347,2517,6.712,2518,6.347,2519,6.712,2520,7.266,2521,7.266,2522,7.266,2523,6.712,2524,7.266]],["title/classes/BaseFactory.html",[0,0.229,660,3.713]],["body/classes/BaseFactory.html",[0,0.23,2,0.374,3,0.009,4,0.009,5,0.005,7,0.05,8,0.643,27,0.489,29,0.987,30,0.001,31,0.627,32,0.174,33,0.558,34,1.681,35,1.473,47,0.492,49,1.268,55,2.396,59,2.681,95,0.068,101,0.006,103,0,104,0,127,0.857,138,3.4,144,3.049,148,1.649,165,0.619,185,4.728,215,1.053,216,1.447,217,1.628,227,1.117,234,1.88,247,2.115,264,4.613,329,3.355,334,0.587,359,2.715,366,1.791,379,1.804,380,2.599,381,2.577,538,4.16,595,2.985,627,2.108,660,2.935,661,4.461,662,6.6,665,2.989,666,5.203,667,5.602,668,2.989,669,2.989,670,2.989,671,2.935,672,4.391,673,4.39,674,5.945,675,5.998,676,7.334,682,1.824,683,3.796,685,5.132,686,5.347,687,4.008,688,5.172,689,4.8,690,1.824,691,1.704,692,4.631,693,1.775,694,1.746,695,2.989,696,4.786,698,5.109,699,2.989,700,6.69,701,4.111,702,6.499,704,4.586,705,2.989,707,1.824,709,2.989,711,3.177,712,1.824,713,6.144,715,1.824,716,5.734,717,4.311,718,4.39,720,5.302,721,3.633,722,2.351,723,2.989,724,4.39,725,2.989,728,2.087,729,2.989,731,4.022,732,2.989,735,1.878,808,2.842,948,2.472,1278,1.76,1298,3.698,1299,3.654,1300,3.654,1301,3.869,1302,3.664,1303,2.224,1315,2.542,1379,6.164,1756,2.842,2086,3.783,2450,3.377,2525,3.254,2526,3.377,2527,5.331,2528,3.254,2529,5.331,2530,3.254,2531,3.254,2532,3.254,2533,3.254,2534,3.254,2535,3.254,2536,3.254,2537,3.254,2538,3.254,2539,3.254,2540,3.254,2541,3.254,2542,4.925,2543,4.051,2544,3.254,2545,3.254,2546,3.254,2547,3.254,2548,3.254,2549,3.006,2550,5.331,2551,5.331,2552,3.254,2553,3.254,2554,7.83,2555,3.254,2556,10.228,2557,7.83,2558,3.254,2559,3.254,2560,3.254,2561,3.254,2562,3.254,2563,3.332,2564,3.254,2565,3.254,2566,3.254,2567,3.254,2568,3.254]],["title/injectables/BaseRepo.html",[105,0.889,877,3.933]],["body/injectables/BaseRepo.html",[0,0.228,3,0.018,4,0.018,5,0.009,7,0.103,8,1.113,9,4.41,10,3.724,12,4.252,18,4.556,26,2.367,27,0.511,29,0.945,30,0.001,31,0.668,32,0.167,33,0.595,34,1.582,35,1.369,36,2.827,40,4.438,49,4.423,95,0.158,96,2.492,97,2.854,101,0.013,103,0.001,104,0.001,105,1.215,107,1.605,112,2.918,127,0.849,187,0.96,216,1.24,217,0.886,221,2.173,227,0.973,379,1.546,380,1.928,381,3.034,398,1.964,692,5.131,734,3.872,774,6.304,877,5.378,883,3.866,884,4.355,885,5.917,908,5.623,910,5.623,913,5.623,915,3.693,1911,4.141,1922,5.841,2321,4.438,2383,6.304,2394,4.861,2395,6.484,2397,6.681,2432,5.495,2433,4.371,2435,4.509,2445,6.197,2451,6.197,2456,5.861,2485,3.983,2569,6.709,2570,6.138,2571,6.418,2572,5.922,2573,8.518,2574,9.221,2575,9.221,2576,8.518,2577,6.304,2578,6.008,2579,6.544,2580,6.709,2581,6.709,2582,6.709,2583,6.709,2584,6.709,2585,6.709,2586,3.541,2587,6.709]],["title/interfaces/BaseResponseMapper.html",[334,0.742,2588,5.269]],["body/interfaces/BaseResponseMapper.html",[3,0.025,4,0.025,5,0.013,7,0.145,8,1.386,27,0.477,29,0.912,30,0.001,31,0.645,32,0.181,33,0.575,35,1.386,95,0.147,99,1.595,100,3.148,101,0.018,103,0.001,104,0.001,334,1.035,336,2.291,347,2.34,692,5.018,975,6.563,2588,8.971,2589,12.398,2590,9.406,2591,9.602,2592,9.602,2593,9.406,2594,5.065,2595,9.258,2596,9.406,2597,10.365,2598,4.78]],["title/classes/BasicToolConfig.html",[0,0.229,2599,4.887]],["body/classes/BasicToolConfig.html",[0,0.313,2,1.059,3,0.024,4,0.024,5,0.013,7,0.142,27,0.51,29,0.732,30,0.001,31,0.517,32,0.188,33,0.461,47,0.67,95,0.145,101,0.018,103,0.001,104,0.001,127,1.166,165,0.896,198,4.405,200,3.001,209,4.228,238,6.646,404,2.053,405,3.064,406,2.952,595,3.182,596,3.443,2599,9.537,2600,4.949,2601,11.339,2602,7.702,2603,9.755,2604,8.51,2605,8.047,2606,6.242,2607,8.047,2608,8.047,2609,6.412,2610,6.537]],["title/classes/BasicToolConfigEntity.html",[0,0.229,2611,5.437]],["body/classes/BasicToolConfigEntity.html",[0,0.301,2,1.02,3,0.024,4,0.024,5,0.013,7,0.136,27,0.502,29,0.704,30,0.001,31,0.498,32,0.183,33,0.444,47,0.645,95,0.155,96,2.396,101,0.017,103,0.001,104,0.001,127,1.122,165,0.875,198,4.24,200,2.888,209,4.157,238,5.991,240,2.778,364,2.052,398,2.596,404,2.005,405,2.992,595,3.063,596,3.362,617,5.118,1031,2.841,2600,4.833,2606,6.096,2609,7.708,2610,6.292,2611,10.493,2612,11.074,2613,7.413,2614,10.493,2615,8.867,2616,7.746,2617,7.746,2618,5.669,2619,7.746,2620,5.171,2621,4.188,2622,6.292]],["title/classes/BasicToolConfigParams.html",[0,0.229,2623,5.437]],["body/classes/BasicToolConfigParams.html",[0,0.385,2,1.057,3,0.024,4,0.024,5,0.013,7,0.141,27,0.47,30,0.001,32,0.185,47,0.823,95,0.164,101,0.018,103,0.001,104,0.001,165,0.895,198,4.395,200,2.994,209,3.898,238,6.639,364,2.098,374,2.935,376,2.155,404,2.051,467,3.298,470,4.77,596,3.438,1044,4.511,2600,4.011,2606,6.755,2623,9.127,2624,9.191,2625,8.49,2626,9.53,2627,6.522,2628,7.409,2629,7.409,2630,7.409,2631,7.409,2632,7.409]],["title/classes/BasicToolConfigResponse.html",[0,0.229,2633,5.639]],["body/classes/BasicToolConfigResponse.html",[0,0.301,2,1.017,3,0.023,4,0.023,5,0.013,7,0.136,27,0.501,29,0.703,30,0.001,31,0.497,32,0.186,33,0.443,47,0.804,95,0.155,101,0.017,103,0.001,104,0.001,127,1.12,165,0.874,198,4.231,200,2.882,209,4.152,238,6.526,364,2.049,376,2.074,404,2.003,405,2.988,406,2.835,467,3.496,595,3.056,596,3.357,2600,4.826,2606,6.641,2609,6.158,2610,6.278,2621,4.179,2622,6.278,2633,10.876,2634,11.058,2635,7.132,2636,10.487,2637,8.847,2638,7.729,2639,7.729,2640,7.132]],["title/injectables/BasicToolLaunchStrategy.html",[105,0.889,2641,5.639]],["body/injectables/BasicToolLaunchStrategy.html",[0,0.157,3,0.012,4,0.012,5,0.007,7,0.071,8,0.85,9,2.213,26,2.254,27,0.524,29,1.002,30,0.001,31,0.708,32,0.181,33,0.631,35,1.523,36,2.441,39,2.285,47,0.88,95,0.132,99,0.785,101,0.009,103,0,104,0,105,0.928,106,10.455,107,1.107,108,2.67,110,3.868,111,2.593,112,2.713,113,5.888,114,5.888,115,5.888,116,4.084,117,7.129,118,5.888,119,5.888,120,5.888,121,5.888,122,5.677,123,5.677,124,5.888,125,5.888,126,5.888,133,3.868,134,10.098,135,5.888,136,7.022,137,5.103,138,3.058,139,7.126,140,7.057,142,3.868,143,5.888,144,1.924,145,2.459,146,6.407,148,2.179,149,3.868,150,3.496,151,5.888,153,3.868,155,8.797,157,3.868,158,4.272,160,7.829,161,3.868,163,3.407,164,5.888,165,0.753,167,3.255,168,3.868,170,3.729,171,3.729,173,3.868,175,3.22,176,5.888,178,8.441,179,3.868,180,5.888,181,6.037,183,3.868,184,5.888,185,2.757,187,0.662,207,3.729,208,1.717,209,2.424,210,2.971,211,3.729,217,1.355,227,1.006,231,2.67,240,2.206,241,6.152,247,1.835,253,4.042,347,0.943,404,1.275,596,3.832,731,2.769,1291,1.968,1298,3.326,1299,3.286,1300,3.286,1301,3.48,1302,3.81,2180,5.401,2641,5.888,2642,4.627,2643,4.274,2644,4.627,2645,4.627,2646,4.042,2647,4.042,2648,4.042,2649,4.042,2650,4.042,2651,4.042,2652,4.042,2653,4.042,2654,4.042,2655,4.042,2656,4.042,2657,4.998,2658,4.902,2659,3.868,2660,6.506,2661,4.627,2662,6.152,2663,4.274,2664,4.627,2665,4.627,2666,7.043,2667,4.627,2668,4.274,2669,4.042]],["title/entities/Board.html",[380,1.41,1984,2.884]],["body/entities/Board.html",[0,0.189,3,0.015,4,0.015,5,0.008,7,0.086,26,2.413,27,0.336,30,0.001,32,0.147,34,0.955,95,0.168,96,1.504,101,0.015,103,0,104,0,111,2.217,144,1.521,145,2.085,148,1.722,165,0.639,187,0.797,188,4.628,208,2.066,217,1.712,227,1.221,234,1.983,305,2.737,329,1.64,334,0.613,347,1.134,364,1.497,369,2.302,380,1.69,381,1.832,394,4.619,398,1.63,399,3.164,400,2.443,402,2.29,404,1.008,405,1.504,406,1.784,571,3.48,577,3.121,744,4.034,783,3.355,806,4.009,1041,4.489,1910,2.63,1984,4.945,2477,3.436,2501,6.894,2594,5.101,2670,7.433,2671,5.567,2672,7.459,2673,5.567,2674,4.787,2675,3.967,2676,6.141,2677,5.567,2678,4.41,2679,8.082,2680,6.515,2681,5.567,2682,3.038,2683,6.314,2684,4.034,2685,3.182,2686,2.962,2687,5.119,2688,3.247,2689,4.2,2690,3.951,2691,4.175,2692,3.48,2693,7.565,2694,11.292,2695,7.955,2696,6.314,2697,4.266,2698,5.856,2699,4.863,2700,6.515,2701,2.567,2702,6.515,2703,8.082,2704,5.567,2705,3.627,2706,5.567,2707,5.567,2708,8.082,2709,4.655,2710,5.567,2711,9.515,2712,5.567,2713,5.567,2714,5.567,2715,5.567,2716,5.567,2717,8.082,2718,5.567,2719,8.082,2720,8.082,2721,5.567,2722,5.567,2723,4.488,2724,5.567,2725,5.567,2726,5.143,2727,5.567,2728,4.23,2729,5.567,2730,4.655,2731,5.567,2732,5.567,2733,5.567,2734,5.567,2735,5.567,2736,5.567,2737,5.567,2738,5.567,2739,5.567,2740,5.567,2741,5.567,2742,5.567,2743,5.567,2744,4.655,2745,5.567,2746,8.082,2747,5.567,2748,5.567,2749,5.567,2750,5.567,2751,11.566,2752,4.863]],["title/modules/BoardApiModule.html",[425,1.808,2753,5.437]],["body/modules/BoardApiModule.html",[0,0.272,3,0.021,4,0.021,5,0.011,30,0.001,95,0.171,101,0.015,103,0.001,104,0.001,187,1.143,425,3.082,427,2.952,428,3.114,429,3.211,430,3.196,431,3.168,432,4.25,433,3.012,438,6.103,442,4.165,443,3.141,444,3.062,446,5.059,447,4.344,449,4.165,481,3.114,1545,2.551,1945,5.605,1977,7.212,1983,10.094,2753,11.287,2754,7.987,2755,7.987,2756,7.987,2757,10.094,2758,10.094,2759,10.416,2760,10.803,2761,7.987,2762,10.046,2763,10.046,2764,10.046,2765,10.046,2766,10.046,2767,3.6,2768,7.987,2769,3.946,2770,6.977,2771,7.378,2772,7.378]],["title/classes/BoardColumnBoardResponse.html",[0,0.229,2773,5.639]],["body/classes/BoardColumnBoardResponse.html",[0,0.255,2,0.864,3,0.02,4,0.02,5,0.011,7,0.116,27,0.538,29,0.596,30,0.001,31,0.422,32,0.182,33,0.376,34,2.12,47,0.924,83,3.574,95,0.128,101,0.014,103,0.001,104,0.001,127,1.259,165,0.786,347,2.027,364,2.354,376,1.761,467,3.667,469,3.312,591,5.286,592,5.452,618,3.195,620,4.823,622,4.823,966,3.844,1474,4.195,2697,7.34,2773,10.335,2774,10.279,2775,10.279,2776,7.51,2777,9.657,2778,8.054,2779,7.51,2780,7.51,2781,7.51,2782,7.51,2783,7.51,2784,5.441,2785,7.51,2786,7.51,2787,6.22,2788,7.51,2789,3.964,2790,6.938]],["title/classes/BoardComposite.html",[0,0.229,2791,4.272]],["body/classes/BoardComposite.html",[0,0.198,2,0.669,3,0.015,4,0.015,5,0.008,7,0.089,8,1.007,9,6.112,26,1.74,27,0.538,29,0.932,30,0.001,31,0.659,32,0.177,33,0.587,34,1.431,35,1.459,36,1.812,55,2.145,59,1.805,83,3.205,95,0.145,99,0.987,101,0.016,103,0.001,104,0.001,116,2.7,148,3.632,165,0.659,187,0.833,208,2.158,217,0.768,227,1.124,234,1.582,247,2.307,305,2.806,334,0.64,347,2.171,359,2.892,363,5.357,404,1.511,591,4.556,592,4.699,595,2.882,596,2.533,661,3.514,692,3.108,884,3.94,1121,5.806,1240,3.357,1724,4.677,1857,5.02,1860,6.452,1919,2.415,1940,3.684,1941,4.128,1942,4.42,2037,3.357,2478,3.324,2598,6.796,2685,3.324,2791,5.284,2792,11.807,2793,5.373,2794,6.183,2795,6.183,2796,6.183,2797,5.92,2798,6.183,2799,7.161,2800,3.976,2801,5.357,2802,6.421,2803,5.817,2804,6.183,2805,5.357,2806,6.497,2807,5.817,2808,6.044,2809,6.529,2810,5.817,2811,7.559,2812,6.044,2813,5.817,2814,5.92,2815,5.817,2816,6.044,2817,5.817,2818,3.976,2819,5.373,2820,5.817,2821,5.081,2822,5.817,2823,5.081,2824,5.817,2825,7.706,2826,4.544,2827,4.544,2828,5.373,2829,5.373,2830,5.373,2831,7.706,2832,5.373,2833,5.373,2834,5.373,2835,3.466,2836,5.373,2837,5.373,2838,5.373,2839,5.373,2840,7.287,2841,3.91,2842,5.373,2843,5.081,2844,3.684]],["title/interfaces/BoardCompositeProps.html",[334,0.742,2844,4.272]],["body/interfaces/BoardCompositeProps.html",[0,0.244,3,0.019,4,0.019,5,0.01,7,0.11,9,5.575,26,2.432,30,0.001,32,0.176,33,0.482,34,2.087,36,1.556,55,1.575,83,3.917,95,0.156,99,1.215,101,0.018,103,0.001,104,0.001,148,3.371,165,0.762,187,1.025,208,2.658,217,0.946,227,1.23,234,1.767,247,2.841,305,3.135,334,0.788,336,1.745,347,1.964,359,3.343,404,1.297,591,5.202,592,5.366,1121,6.711,1240,4.134,1724,5.405,1857,4.122,1919,2.974,1940,4.537,1941,5.083,1942,5.442,2037,4.134,2478,4.093,2598,6.703,2685,4.093,2791,4.537,2792,6.617,2793,6.617,2799,8.178,2801,4.6,2802,5.81,2805,4.6,2806,5.879,2808,5.19,2809,6.615,2811,7.287,2812,5.19,2814,5.083,2816,5.19,2825,8.906,2826,5.595,2827,5.595,2828,6.617,2829,6.617,2830,6.617,2831,8.906,2832,6.617,2833,6.617,2834,6.617,2835,4.268,2836,6.617,2837,6.617,2838,6.617,2839,6.617,2840,8.422,2841,4.814,2842,6.617,2843,6.257,2844,6.107]],["title/interfaces/BoardCompositeVisitor.html",[334,0.742,2802,4.065]],["body/interfaces/BoardCompositeVisitor.html",[3,0.018,4,0.018,5,0.013,7,0.104,8,1.118,27,0.524,29,1.002,30,0.001,31,0.708,32,0.187,33,0.631,35,1.522,36,2.74,95,0.162,101,0.018,103,0.001,104,0.001,148,4.205,334,1.02,336,1.645,2697,6.657,2802,5.583,2806,4.118,2845,10.033,2846,11.865,2847,6.239,2848,8.092,2849,8.092,2850,8.092,2851,8.092,2852,8.092,2853,8.092,2854,8.092,2855,7.745,2856,6.969,2857,6.754,2858,7.745,2859,6.754,2860,7.745,2861,7.601,2862,6.754,2863,7.745,2864,8.023,2865,6.754,2866,7.745,2867,7.908,2868,6.754,2869,7.745,2870,7.698,2871,6.754,2872,8.558,2873,7.698,2874,6.754,2875,5.647,2876,6.239,2877,5.647,2878,8.524,2879,5.006,2880,3.23,2881,4.223,2882,4.025,2883,5.276,2884,5.9,2885,5.9,2886,5.9,2887,5.9,2888,5.9,2889,5.9,2890,6.239]],["title/interfaces/BoardCompositeVisitorAsync.html",[334,0.742,2806,4.113]],["body/interfaces/BoardCompositeVisitorAsync.html",[3,0.018,4,0.018,5,0.013,7,0.104,8,1.118,27,0.524,29,1.002,30,0.001,31,0.708,32,0.187,33,0.631,35,1.522,36,2.953,95,0.162,101,0.018,103,0.001,104,0.001,148,3.901,334,1.02,336,1.645,2697,6.657,2802,4.07,2806,5.649,2845,10.033,2846,11.865,2847,6.239,2855,5.647,2856,6.969,2858,5.647,2860,5.647,2861,7.601,2863,5.647,2864,8.023,2866,5.647,2867,7.908,2869,5.647,2870,7.698,2872,6.239,2873,7.698,2875,5.647,2876,6.239,2877,5.647,2878,8.524,2879,5.006,2880,3.23,2881,4.223,2882,4.025,2883,5.276,2884,8.092,2885,8.092,2886,8.092,2887,8.092,2888,8.092,2889,8.092,2890,8.558,2891,8.558,2892,8.558,2893,8.558,2894,8.558,2895,8.558,2896,8.558,2897,8.558,2898,6.754,2899,6.754,2900,6.754,2901,6.754,2902,6.754,2903,6.754,2904,6.754]],["title/classes/BoardContextResponse.html",[0,0.229,2905,5.892]],["body/classes/BoardContextResponse.html",[0,0.302,2,1.022,3,0.024,4,0.024,5,0.013,7,0.137,27,0.502,29,0.706,30,0.001,31,0.499,32,0.191,33,0.445,34,2.234,47,0.806,95,0.142,99,1.507,101,0.017,103,0.001,104,0.001,127,1.403,165,0.876,364,2.054,376,2.084,467,3.248,475,4.452,618,3.781,966,4.549,1031,2.848,2621,4.197,2905,11.379,2906,12.657,2907,8.886,2908,8.886,2909,5.973,2910,6.051,2911,6.051,2912,8.886,2913,9.986,2914,5.707,2915,5.853,2916,8.886]],["title/controllers/BoardController.html",[481,2.629,2762,5.892]],["body/controllers/BoardController.html",[0,0.152,3,0.012,4,0.012,5,0.006,7,0.069,8,0.828,10,3.372,27,0.42,29,0.802,30,0.001,31,0.567,32,0.196,33,0.505,35,1.219,36,2.605,95,0.151,100,1.497,101,0.009,103,0,104,0,112,2.867,187,0.64,199,2.62,206,2.289,215,1.447,216,0.827,217,1.408,221,2.381,227,0.881,234,1.354,264,4.277,364,1.872,376,1.049,447,1.875,481,1.743,483,2.152,491,6.327,498,6.402,502,7.494,506,7.811,509,8.687,513,6.803,543,3.438,552,2.872,553,6.665,554,8.417,555,2.361,556,2.42,557,2.44,558,2.125,559,2.44,561,2.44,563,6.236,564,4.907,883,2.877,1016,3.807,1469,7.052,1474,2.329,1984,4.559,2037,6.154,2686,5.673,2697,4.408,2757,6.523,2762,5.995,2769,2.21,2905,5.995,2917,4.472,2918,4.131,2919,7.714,2920,6.34,2921,8.35,2922,8.35,2923,7.714,2924,4.472,2925,11.262,2926,7.676,2927,10.103,2928,5.532,2929,4.472,2930,7.676,2931,7.676,2932,4.472,2933,4.472,2934,7.811,2935,4.472,2936,5.532,2937,4.472,2938,4.472,2939,4.472,2940,4.472,2941,4.472,2942,4.472,2943,4.472,2944,6.863,2945,4.472,2946,4.472,2947,4.472,2948,4.472,2949,6.731,2950,7.55,2951,4.089,2952,4.472,2953,4.472,2954,3.24,2955,2.531,2956,5.738,2957,5.532,2958,4.472,2959,4.472,2960,3.907,2961,3.739,2962,3.605,2963,4.472,2964,4.472,2965,4.472,2966,10.103,2967,4.472,2968,4.472,2969,4.472,2970,4.472,2971,4.472,2972,5.532,2973,5.532,2974,4.472,2975,4.472,2976,3.907,2977,4.472,2978,4.472,2979,4.472,2980,4.472,2981,4.472,2982,4.131]],["title/injectables/BoardCopyService.html",[105,0.889,2983,5.639]],["body/injectables/BoardCopyService.html",[0,0.14,3,0.011,4,0.011,5,0.006,7,0.064,8,0.779,27,0.464,29,0.886,30,0.001,31,0.627,32,0.165,33,0.558,35,1.301,36,2.492,55,0.909,95,0.147,99,0.701,101,0.008,103,0,104,0,105,0.851,107,0.989,111,2.652,112,2.723,127,0.817,145,1.066,185,2.527,187,0.592,188,4.598,216,1.801,217,1.678,221,1.872,227,1.299,234,1.288,380,0.864,450,1.7,461,3.102,564,4.141,731,2.538,806,2.72,846,2.932,1041,4.413,1052,2.631,1053,3.982,1444,2.692,1474,1.403,1545,1.32,1758,7.401,1925,2.147,1984,4.415,2422,3.936,2439,2.994,2672,5.613,2689,5.062,2691,4.273,2693,8.499,2700,5.204,2702,5.204,2709,3.455,2744,3.542,2983,5.397,2984,11.47,2985,3.455,2986,6.455,2987,7.944,2988,5.204,2989,5.204,2990,6.455,2991,6.455,2992,6.455,2993,2.733,2994,7.994,2995,8.196,2996,8.426,2997,7.654,2998,4.132,2999,6.455,3000,8.979,3001,4.132,3002,4.132,3003,9.565,3004,4.132,3005,7.944,3006,6.455,3007,4.132,3008,3.61,3009,6.455,3010,4.132,3011,3.61,3012,6.455,3013,8.326,3014,4.132,3015,9.741,3016,6.455,3017,4.132,3018,5.639,3019,6.455,3020,4.132,3021,5.963,3022,6.036,3023,3.817,3024,3.61,3025,3.228,3026,2.551,3027,2.362,3028,3.817,3029,4.132,3030,3.331,3031,3.331,3032,3.228,3033,5.963,3034,4.132,3035,4.132,3036,4.132,3037,7.944,3038,4.132,3039,3.455,3040,3.228,3041,3.331,3042,4.132,3043,4.132,3044,9.537,3045,4.132,3046,4.132,3047,6.455,3048,4.132,3049,4.132,3050,5.639,3051,3.455,3052,4.132,3053,4.132,3054,6.455,3055,3.455,3056,4.132,3057,4.132,3058,4.784,3059,4.132,3060,4.581,3061,4.905,3062,4.132,3063,4.132,3064,4.132,3065,4.132,3066,3.61,3067,3.61,3068,3.817,3069,3.455,3070,3.331,3071,3.817,3072,4.132,3073,4.132,3074,4.132,3075,4.132,3076,4.132,3077,5.963,3078,4.132,3079,6.455,3080,6.455,3081,4.132,3082,4.132,3083,3.817,3084,4.132,3085,4.132,3086,4.132,3087,4.132,3088,4.132]],["title/classes/BoardDoAuthorizable.html",[0,0.229,3089,4.786]],["body/classes/BoardDoAuthorizable.html",[0,0.256,2,0.867,3,0.02,4,0.02,5,0.011,7,0.116,8,1.204,26,2.332,27,0.514,29,0.599,30,0.001,31,0.423,32,0.14,33,0.377,34,1.293,35,1.204,39,2.02,95,0.128,101,0.024,102,3.803,103,0.001,104,0.001,116,3.228,145,3.07,148,2.332,165,0.788,227,1.053,334,1.098,359,2.614,404,2.025,521,6.077,595,3.446,596,3.029,661,4.202,692,3.716,728,2.951,843,3.29,884,4.712,1031,3.197,1114,3.058,1854,5.818,1857,5.292,1860,7.395,1922,4.775,1940,4.775,2571,5.247,2586,3.979,2800,5.153,2818,5.153,2845,9.296,3089,7.079,3090,6.585,3091,5.425,3092,9.592,3093,7.538,3094,7.538,3095,7.538,3096,7.538,3097,7.538,3098,10.512,3099,7.538,3100,8.041,3101,8.041,3102,8.714,3103,6.302,3104,6.585,3105,7.082,3106,5.592,3107,6.585,3108,6.585,3109,9.013,3110,3.651,3111,6.302,3112,6.585,3113,8.714,3114,6.585]],["title/interfaces/BoardDoAuthorizableProps.html",[334,0.742,3111,5.639]],["body/interfaces/BoardDoAuthorizableProps.html",[0,0.274,3,0.021,4,0.021,5,0.011,7,0.124,26,2.639,30,0.001,32,0.162,33,0.522,34,2.095,39,2.162,95,0.134,101,0.024,102,4.07,103,0.001,104,0.001,145,2.691,165,0.824,227,1.1,334,1.148,336,1.965,359,2.797,404,2.093,521,6.503,728,3.158,843,3.521,1031,3.341,1114,3.272,1854,6.739,1857,4.459,1922,5.11,1940,5.11,2571,5.615,2586,4.258,2845,6.302,3089,5.725,3090,7.047,3091,5.766,3092,10.197,3098,10.547,3100,8.406,3101,8.406,3102,9.109,3103,6.745,3104,7.047,3105,7.319,3106,5.846,3107,7.047,3108,7.047,3109,10.197,3110,3.908,3111,8.718,3112,7.047,3113,9.109,3114,7.047]],["title/injectables/BoardDoAuthorizableService.html",[105,0.889,3115,4.887]],["body/injectables/BoardDoAuthorizableService.html",[0,0.211,3,0.016,4,0.016,5,0.009,7,0.096,8,1.055,12,4.031,26,2.289,27,0.456,29,0.872,30,0.001,31,0.616,32,0.154,33,0.549,34,1.883,35,1.22,36,2.384,39,2.71,40,4.207,95,0.148,99,1.054,101,0.012,103,0.001,104,0.001,105,1.152,107,1.486,111,2.313,112,2.69,127,1.106,187,0.889,188,4.542,214,2.051,216,1.616,217,1.712,221,2.726,227,1.301,234,1.78,305,1.787,450,2.555,770,3.661,806,2.617,839,2.916,905,3.629,1935,7.046,1958,7.515,1977,4.324,2570,3.361,2598,5.577,2767,2.8,2861,6.242,2913,4.604,3089,8.513,3091,5.618,3098,8.573,3100,5.007,3109,8.152,3110,4.899,3115,6.333,3116,10.684,3117,5.738,3118,8.741,3119,8.741,3120,4.72,3121,8.746,3122,6.212,3123,6.212,3124,8.741,3125,6.212,3126,6.828,3127,8.741,3128,6.212,3129,5.007,3130,5.738,3131,6.212,3132,7.636,3133,6.212,3134,10.113,3135,6.212,3136,6.212,3137,8.741,3138,6.212,3139,6.212,3140,5.193,3141,6.212,3142,6.212,3143,6.212,3144,3.333,3145,4.72,3146,6.212,3147,8.741,3148,6.212,3149,6.212,3150,6.212,3151,6.212,3152,6.212,3153,5.426]],["title/interfaces/BoardDoBuilder.html",[334,0.742,3154,4.216]],["body/interfaces/BoardDoBuilder.html",[3,0.018,4,0.018,5,0.013,7,0.105,8,1.127,27,0.526,29,1.005,30,0.001,31,0.71,32,0.192,33,0.633,35,1.527,95,0.168,101,0.013,103,0.001,104,0.001,334,0.752,336,1.665,1857,2.922,1984,2.922,2594,4.692,2697,6.319,2856,6.471,2861,6.567,2864,6.931,2867,6.832,2870,6.65,2873,6.65,2879,5.065,2880,3.268,2881,4.257,2882,4.072,2883,5.339,3144,6.787,3154,5.838,3155,12.88,3156,6.834,3157,8.627,3158,8.627,3159,8.627,3160,8.627,3161,8.627,3162,8.627,3163,8.627,3164,8.627,3165,8.932,3166,6.834,3167,8.627,3168,9.218,3169,6.834,3170,8.627,3171,8.688,3172,6.834,3173,8.627,3174,8.932,3175,6.834,3176,8.627,3177,8.932,3178,6.834,3179,8.627,3180,8.932,3181,6.834,3182,8.627,3183,8.932,3184,6.834,3185,6.834,3186,12.651,3187,4.119]],["title/classes/BoardDoBuilderImpl.html",[0,0.229,3188,5.892]],["body/classes/BoardDoBuilderImpl.html",[0,0.131,2,0.444,3,0.01,4,0.01,5,0.005,7,0.059,8,0.738,27,0.51,29,0.986,30,0.001,31,0.68,32,0.184,33,0.606,34,1.803,35,1.44,39,1.034,95,0.097,99,1.038,101,0.007,103,0,104,0,111,1.519,116,4.269,127,0.488,144,1.054,148,1.892,165,0.483,187,0.552,199,1.473,214,2.02,217,1.683,227,1.214,234,1.82,247,1.531,305,1.76,329,1.137,591,4.493,592,4.635,692,4.284,1041,4.803,1110,2.478,1291,2.602,1474,2.579,2594,4.807,2598,1.961,2697,5.293,2728,2.932,2799,8.023,2819,5.651,2856,5.676,2861,6.19,2864,5.633,2867,5.552,2870,5.405,2873,5.405,2880,1.845,3144,7.363,3154,4.75,3157,5.651,3158,5.651,3159,5.651,3160,5.651,3161,5.651,3162,5.651,3163,5.651,3164,5.651,3165,6.754,3167,5.651,3168,6.97,3170,5.651,3171,6.57,3173,5.651,3174,6.754,3176,5.651,3177,6.754,3179,5.651,3180,6.754,3182,5.651,3183,6.754,3188,5.343,3189,10.84,3190,11.463,3191,3.859,3192,7.02,3193,6.117,3194,6.117,3195,6.117,3196,6.117,3197,6.117,3198,6.117,3199,5.343,3200,3.859,3201,6.117,3202,3.859,3203,3.859,3204,3.859,3205,6.117,3206,3.859,3207,3.859,3208,3.859,3209,3.859,3210,3.859,3211,6.117,3212,7.208,3213,3.859,3214,6.117,3215,3.859,3216,6.117,3217,3.859,3218,2.553,3219,3.859,3220,3.859,3221,3.859,3222,8.646,3223,3.565,3224,4.534,3225,8.646,3226,9.708,3227,7.599,3228,10.509,3229,10.509,3230,3.859,3231,3.371,3232,4.648,3233,3.371,3234,3.371,3235,3.371,3236,2.478,3237,3.859,3238,7.599,3239,2.412,3240,3.859,3241,3.859,3242,2.053,3243,3.859,3244,3.371,3245,2.037,3246,3.859,3247,2.326,3248,3.859,3249,3.859,3250,3.859,3251,3.859,3252,3.859,3253,6.117,3254,3.859,3255,3.859,3256,3.859,3257,3.859,3258,3.859,3259,3.859,3260,3.859,3261,4.182,3262,2.412,3263,3.859,3264,5.114,3265,3.859,3266,3.859,3267,6.117,3268,3.859,3269,3.859,3270,3.859,3271,3.859,3272,3.859]],["title/injectables/BoardDoRepo.html",[105,0.889,3121,4.786]],["body/injectables/BoardDoRepo.html",[0,0.151,3,0.012,4,0.012,5,0.006,7,0.068,8,0.824,10,2.757,12,3.149,18,3.374,26,2.741,27,0.497,29,0.967,30,0.001,31,0.672,32,0.176,33,0.599,34,1.961,35,1.414,36,2.837,40,3.286,49,1.732,55,2.338,59,2.581,95,0.147,96,1.845,97,1.89,99,0.754,101,0.008,103,0,104,0,105,0.9,107,1.063,111,1.663,112,3.044,127,0.864,138,2.964,145,1.146,187,0.636,216,1.537,217,1.725,221,2.948,227,1.237,234,1.725,305,1.278,398,1.301,595,1.535,692,2.544,770,6.267,806,1.872,1850,5.504,1857,5.206,1932,2.274,1984,2.919,2395,5.334,2405,4.516,2476,5.964,2598,6.544,2686,2.364,2799,2.986,3121,4.845,3126,3.471,3144,5.007,3171,3.376,3188,3.881,3189,10.637,3190,4.104,3192,4.104,3199,3.881,3261,3.037,3273,4.104,3274,8.316,3275,5.708,3276,6.307,3277,6.828,3278,6.828,3279,6.828,3280,3.092,3281,8.927,3282,8.316,3283,7.803,3284,4.443,3285,4.163,3286,4.443,3287,4.443,3288,10.559,3289,4.443,3290,8.316,3291,4.443,3292,5.964,3293,4.443,3294,6.307,3295,6.762,3296,4.443,3297,6.828,3298,4.443,3299,4.443,3300,6.828,3301,4.443,3302,6.828,3303,4.443,3304,5.964,3305,4.612,3306,4.443,3307,3.581,3308,4.443,3309,4.104,3310,6.307,3311,4.104,3312,3.881,3313,4.443,3314,4.443,3315,4.443,3316,4.443,3317,4.443,3318,3.881,3319,4.443,3320,5.685,3321,6.307,3322,4.443,3323,4.443,3324,4.443,3325,4.443,3326,4.443,3327,6.307,3328,4.443,3329,4.443,3330,4.443,3331,2.491,3332,4.443,3333,3.581,3334,4.443,3335,3.881,3336,4.443,3337,4.443,3338,4.443,3339,4.443,3340,4.443,3341,4.443,3342,4.443,3343,4.443,3344,4.443,3345,4.443,3346,4.443,3347,4.443,3348,5.504,3349,4.443]],["title/injectables/BoardDoRule.html",[105,0.889,1954,5.639]],["body/injectables/BoardDoRule.html",[0,0.244,3,0.019,4,0.019,5,0.01,7,0.11,8,1.165,27,0.453,29,0.866,30,0.001,31,0.612,32,0.153,33,0.546,35,1.165,39,2.587,95,0.156,101,0.014,103,0.001,104,0.001,105,1.272,107,1.717,116,4.058,127,0.908,187,1.027,199,4.164,214,2.369,215,2.322,216,1.326,217,1.441,227,1.352,347,2.377,369,2.128,371,3.355,380,1.5,461,3.041,738,4.142,806,3.023,1857,3.068,1862,6.422,1865,3.758,1880,4.675,1881,4.545,1890,7.942,1928,7.201,1954,8.07,1989,5.958,2033,6.289,2056,4.823,3089,9.774,3100,5.784,3350,11.667,3351,7.175,3352,6.488,3353,4.905,3354,7.175,3355,7.175,3356,6.385,3357,7.175,3358,4.905,3359,4.823,3360,6.599,3361,5.452,3362,9.653,3363,7.175,3364,8.432,3365,7.175,3366,9.653,3367,9.653,3368,7.175]],["title/injectables/BoardDoService.html",[105,0.889,3369,4.999]],["body/injectables/BoardDoService.html",[0,0.268,3,0.021,4,0.021,5,0.011,7,0.121,8,1.241,27,0.475,29,0.908,30,0.001,31,0.642,32,0.16,33,0.572,35,1.241,36,2.632,55,2.515,59,2.449,95,0.147,99,1.339,101,0.015,103,0.001,104,0.001,105,1.355,107,1.888,112,2.888,127,0.999,187,1.13,215,2.554,216,1.459,217,1.358,221,3.035,1857,3.375,2570,4.27,2598,6.893,2811,4.934,3116,11.191,3120,5.997,3121,9.14,3305,5.65,3369,7.62,3370,7.893,3371,10.281,3372,7.028,3373,7.893,3374,10.281,3375,7.893,3376,10.281,3377,12.114,3378,9.463,3379,7.893,3380,7.893,3381,7.893,3382,6.599,3383,7.893,3384,7.893,3385,7.893,3386,11.435,3387,7.893,3388,7.893,3389,7.893,3390,7.893,3391,7.893]],["title/entities/BoardElement.html",[380,1.41,2693,4.887]],["body/entities/BoardElement.html",[0,0.268,3,0.021,4,0.021,5,0.011,7,0.121,9,4.917,26,2.145,27,0.427,30,0.001,31,0.68,32,0.17,34,1.764,95,0.165,96,2.133,101,0.023,103,0.001,104,0.001,165,0.812,208,2.929,364,1.462,369,1.74,380,2.15,381,2.597,398,2.311,399,4.025,400,3.463,404,1.429,405,2.133,406,2.529,1031,3.882,1910,5.722,1932,5.263,1984,3.375,2670,8.933,2689,5.343,2690,5.601,2691,5.315,2692,4.934,2693,7.449,2694,11.191,2697,4.166,2698,7.449,2699,6.895,2701,4.741,2744,5.848,2861,6.346,3022,9.966,3392,7.893,3393,7.893,3394,7.028,3395,7.893,3396,6.602,3397,6.801,3398,10.281,3399,5.601,3400,5.494,3401,5.85]],["title/classes/BoardElementResponse.html",[0,0.229,3402,5.639]],["body/classes/BoardElementResponse.html",[0,0.268,2,0.908,3,0.021,4,0.021,5,0.011,7,0.121,27,0.475,29,0.627,30,0.001,31,0.443,32,0.19,33,0.395,95,0.161,101,0.015,103,0.001,104,0.001,127,1.301,165,0.812,208,3.815,364,1.905,376,1.851,379,2.369,467,3.073,966,4.04,1013,4.714,1031,3.882,1295,5.934,1984,5.608,2344,5.557,2477,6.346,2578,6.698,2594,4.535,2621,3.728,2691,4.511,2697,6.631,2701,4.741,2773,9.56,2774,9.463,2775,9.463,3402,10.503,3403,5.997,3404,7.893,3405,9.56,3406,9.56,3407,7.893,3408,10.503,3409,10.281,3410,7.893,3411,7.893,3412,7.291,3413,7.893,3414,7.893,3415,5.069]],["title/interfaces/BoardExternalReference.html",[334,0.742,3295,4.887]],["body/interfaces/BoardExternalReference.html",[3,0.026,4,0.026,5,0.014,7,0.152,26,2.737,30,0.001,32,0.191,34,2.251,95,0.127,101,0.023,103,0.001,104,0.001,165,0.934,188,4.476,200,3.214,334,1.086,336,2.403,1031,3.162,2586,5.208,2845,7.708,2913,9.725,3295,8.565,3416,8.619]],["title/classes/BoardLessonResponse.html",[0,0.229,3406,5.639]],["body/classes/BoardLessonResponse.html",[0,0.311,2,0.761,3,0.018,4,0.018,5,0.009,7,0.102,27,0.546,29,0.526,30,0.001,31,0.687,32,0.184,33,0.628,34,2.031,47,0.89,55,2.692,83,3.394,95,0.134,101,0.013,103,0.001,104,0.001,127,1.156,165,0.722,347,1.862,364,2.404,374,2.115,375,3.707,376,1.552,467,3.62,469,2.92,471,4.452,591,5.062,592,5.221,618,2.817,620,4.252,622,4.252,966,3.389,2136,2.65,2697,7.001,2774,10.361,2775,10.361,2784,4.797,2787,6.541,3406,9.897,3417,6.621,3418,7.283,3419,7.307,3420,10.936,3421,10.936,3422,9.897,3423,6.621,3424,5.783,3425,6.621,3426,6.621,3427,6.621,3428,6.621,3429,6.621,3430,9.138,3431,6.621,3432,6.621,3433,6.116,3434,6.621,3435,6.621,3436,8.006,3437,4.698,3438,4.698,3439,6.621,3440,6.621,3441,6.621,3442,7.581]],["title/classes/BoardManagementConsole.html",[0,0.229,3443,5.892]],["body/classes/BoardManagementConsole.html",[0,0.268,2,0.908,3,0.021,4,0.021,5,0.011,7,0.121,8,1.241,27,0.427,29,0.817,30,0.001,31,0.577,32,0.144,33,0.514,35,0.952,36,2.234,47,0.748,49,3.077,95,0.155,101,0.015,103,0.001,104,0.001,111,1.578,112,2.564,127,0.999,144,2.157,215,2.554,217,1.042,221,1.86,227,0.833,234,1.28,329,2.325,364,1.462,379,2.635,734,4.556,783,4.757,836,4.556,883,5.079,1984,5.687,2477,4.872,2675,5.946,2697,5.427,3247,4.757,3443,8.981,3444,11.435,3445,6.895,3446,9.498,3447,6.599,3448,8.142,3449,10.966,3450,7.893,3451,8.288,3452,9.498,3453,6.363,3454,10.281,3455,7.893,3456,5.601,3457,8.432,3458,7.673,3459,4.703,3460,7.291,3461,6.166,3462,5.142,3463,7.893,3464,7.893,3465,6.599,3466,10.128,3467,7.893,3468,7.893,3469,5.85]],["title/injectables/BoardManagementUc.html",[105,0.889,3449,5.639]],["body/injectables/BoardManagementUc.html",[0,0.174,3,0.014,4,0.014,5,0.007,7,0.079,8,0.918,26,2.425,27,0.496,29,0.969,30,0.001,31,0.67,32,0.174,33,0.597,34,0.88,35,1.403,36,2.181,55,2.987,95,0.138,96,1.386,97,2.182,99,0.87,101,0.01,103,0,104,0,105,1.003,107,1.227,111,2.683,112,2.519,127,0.649,144,1.401,145,1.323,148,1.586,187,0.734,188,2.881,199,2.904,215,1.659,217,1.536,221,2.647,227,1.288,329,1.51,369,1.13,371,1.413,687,2.378,692,2.835,784,2.706,905,4.168,1018,5.91,1041,2.848,1158,2.728,1459,3.392,1474,2.582,1661,3.341,1984,3.253,2395,5.736,2675,5.513,2697,4.016,2809,4.789,2856,4.306,2880,3.639,2913,3.8,3140,4.287,3144,7.079,3224,3.8,3232,3.896,3236,3.293,3242,4.049,3285,5.532,3305,6.3,3437,6.438,3446,7.029,3447,4.287,3448,6.746,3449,6.361,3451,6.133,3452,7.029,3456,3.639,3470,12.201,3471,4.737,3472,7.609,3473,7.609,3474,7.609,3475,7.609,3476,7.609,3477,7.029,3478,5.128,3479,5.128,3480,7.609,3481,5.128,3482,7.609,3483,5.128,3484,7.609,3485,5.128,3486,7.609,3487,5.128,3488,7.609,3489,9.072,3490,5.128,3491,4.479,3492,7.609,3493,8.392,3494,5.128,3495,5.128,3496,5.128,3497,5.128,3498,5.128,3499,4.737,3500,5.128,3501,5.128,3502,5.128,3503,5.128,3504,5.128,3505,5.128,3506,5.128,3507,5.128,3508,4.006,3509,5.128,3510,5.128,3511,5.128,3512,4.737,3513,5.128,3514,5.128,3515,5.128,3516,4.737,3517,9.072,3518,5.128,3519,5.128,3520,5.128,3521,5.128,3522,5.128,3523,4.479,3524,5.128,3525,5.128,3526,5.128,3527,5.128,3528,5.128]],["title/modules/BoardModule.html",[425,1.808,1983,5.269]],["body/modules/BoardModule.html",[0,0.215,3,0.017,4,0.017,5,0.009,30,0.001,95,0.167,99,1.074,101,0.012,103,0.001,104,0.001,187,0.906,425,2.965,427,2.339,428,2.467,429,2.544,430,2.533,431,2.51,432,3.776,433,3.852,438,5.7,442,3.56,443,2.489,444,2.426,449,3.56,450,2.603,766,3.806,774,4.327,1545,2.021,1919,2.628,1958,7.359,1983,11.146,2478,3.617,2570,3.424,2578,4.123,3115,9.616,3121,8.564,3281,9.729,3283,10.09,3311,5.847,3369,8.945,3456,4.491,3529,6.329,3530,6.329,3531,6.329,3532,6.329,3533,9.428,3534,8.945,3535,10.699,3536,10.368,3537,11.096,3538,10.085,3539,10.699,3540,9.729,3541,6.329,3542,3.264,3543,3.106,3544,2.628,3545,6.329,3546,5.102,3547,4.254,3548,5.291,3549,6.329,3550,4.944]],["title/entities/BoardNode.html",[380,1.41,3144,3.618]],["body/entities/BoardNode.html",[0,0.213,3,0.017,4,0.017,5,0.009,7,0.17,9,4.212,26,2.422,27,0.483,30,0.001,32,0.182,33,0.441,34,1.892,47,0.899,55,2.554,95,0.159,96,1.697,101,0.017,103,0.001,104,0.001,145,2.273,165,0.696,167,3.362,187,0.899,208,3.268,217,1.344,227,1.225,234,1.018,240,3.638,247,4.035,305,1.806,334,0.691,364,2.152,369,1.942,370,3.678,371,3.317,380,1.842,381,2.066,386,5.813,398,1.839,399,3.448,400,2.755,402,2.583,404,1.137,405,1.697,406,2.012,576,5.996,618,3.747,619,5.033,627,1.955,883,2.633,905,3.657,1031,2.822,1439,3.003,1474,3.743,1857,2.685,1984,2.685,2598,4.476,2789,3.315,2809,5.821,3132,5.486,3144,5.458,3154,5.506,3212,7.081,3261,6.021,3305,4.352,3320,4.293,3399,4.456,3551,5.801,3552,7.539,3553,6.28,3554,5.801,3555,6.28,3556,6.28,3557,6.28,3558,6.28,3559,6.28,3560,4.771,3561,8.136,3562,5.656,3563,9.397,3564,8.136,3565,5.486,3566,4.906,3567,5.801,3568,5.801,3569,5.801,3570,5.801,3571,4.371,3572,4.371,3573,4.091,3574,4.96,3575,5.801,3576,5.801,3577,7.694,3578,5.801,3579,5.801,3580,5.801,3581,5.801,3582,5.801,3583,4.091,3584,5.801,3585,5.801]],["title/interfaces/BoardNodeProps.html",[334,0.742,3562,4.331]],["body/interfaces/BoardNodeProps.html",[0,0.22,3,0.017,4,0.017,5,0.009,7,0.172,9,4.306,26,2.602,30,0.001,32,0.175,33,0.636,34,2.139,47,0.907,55,2.583,95,0.16,96,1.752,101,0.017,103,0.001,104,0.001,145,2.323,165,0.711,167,3.437,187,0.928,208,3.341,217,1.367,227,1.24,234,1.051,240,3.68,247,4.104,305,1.865,334,0.713,336,1.579,369,1.429,370,3.729,371,2.851,380,1.883,398,1.898,399,3.525,400,2.844,402,2.666,404,1.174,405,1.752,406,2.077,576,3.82,618,3.831,619,5.146,627,2.018,883,2.717,905,3.739,1031,2.885,1439,3.1,1474,3.987,1857,2.772,1984,2.772,2598,4.576,2789,3.421,2809,6.201,3132,5.662,3144,5.998,3154,5.629,3212,6.645,3261,6.156,3305,5.805,3320,4.431,3399,4.6,3551,5.988,3552,4.804,3560,4.925,3561,8.318,3562,6.645,3563,9.558,3564,8.318,3565,5.662,3566,5.064,3567,5.988,3568,5.988,3569,5.988,3570,5.988,3571,4.512,3572,4.512,3573,4.223,3574,5.045,3575,5.988,3576,5.988,3577,7.866,3578,5.988,3579,5.988,3580,5.988,3581,5.988,3582,5.988,3583,4.223,3584,5.988,3585,5.988]],["title/injectables/BoardNodeRepo.html",[105,0.889,3281,5.437]],["body/injectables/BoardNodeRepo.html",[0,0.216,3,0.017,4,0.017,5,0.009,7,0.098,8,1.07,12,4.088,26,2.31,27,0.46,29,0.879,30,0.001,31,0.622,32,0.155,33,0.554,34,1.754,35,1.234,36,2.623,40,4.267,55,2.248,59,1.967,95,0.131,96,1.713,97,2.697,99,1.075,101,0.012,103,0.001,104,0.001,105,1.168,107,1.517,112,2.881,127,0.802,145,1.636,187,0.907,215,2.051,216,1.172,217,1.697,221,2.409,227,1.308,247,2.514,380,2.437,574,2.873,576,5.225,957,3.587,958,7.412,1277,3.269,1291,2.697,1828,3.953,1919,2.632,1922,4.015,2395,6.328,3144,6.894,3189,10.18,3199,10.18,3261,4.333,3280,4.412,3281,7.147,3285,5.406,3288,10.765,3321,8.19,3331,5.732,3552,4.698,3586,6.339,3587,8.866,3588,8.866,3589,6.339,3590,6.339,3591,8.866,3592,6.339,3593,8.866,3594,6.339,3595,6.339,3596,5.856,3597,6.339,3598,8.866,3599,8.19,3600,10.224,3601,5.11,3602,8.866,3603,8.866,3604,6.339,3605,6.339,3606,5.538,3607,6.339,3608,6.339,3609,8.866,3610,6.339,3611,6.339,3612,6.339,3613,4.698,3614,6.339,3615,6.339,3616,6.339,3617,6.339,3618,5.3,3619,6.339,3620,6.339,3621,6.339,3622,6.339,3623,6.339]],["title/injectables/BoardRepo.html",[105,0.889,2994,4.999]],["body/injectables/BoardRepo.html",[0,0.194,3,0.015,4,0.015,5,0.008,7,0.088,8,0.992,10,3.32,12,3.792,18,4.063,26,2.741,27,0.521,29,0.977,30,0.001,31,0.691,32,0.173,33,0.616,34,1.41,35,1.485,36,2.765,40,3.957,95,0.124,99,0.967,101,0.011,103,0.001,104,0.001,105,1.084,107,1.364,111,2.506,112,3.051,187,0.816,188,3.997,217,1.625,221,3.069,227,1.231,234,0.925,380,1.192,381,2.706,404,1.489,596,3.205,692,4.8,806,4.063,877,7.01,883,3.447,884,3.884,885,4.798,908,3.477,909,3.519,910,3.477,911,3.519,913,3.477,914,3.519,915,3.139,1041,3.167,1062,2.488,1984,5.793,2672,3.564,2675,5.493,2696,6.423,2700,6.628,2702,6.628,2744,4.3,2994,6.094,3624,5.701,3625,8.223,3626,8.223,3627,8.223,3628,8.223,3629,8.223,3630,5.701,3631,8.223,3632,5.701,3633,5.701,3634,8.223,3635,5.701,3636,8.223,3637,5.701,3638,5.701,3639,3.897,3640,5.701,3641,8.223,3642,5.701,3643,5.701,3644,4.981,3645,5.701,3646,5.701,3647,5.701,3648,5.701,3649,5.701,3650,9.645,3651,8.909,3652,5.701,3653,5.701,3654,5.701,3655,5.701,3656,5.701]],["title/classes/BoardResponse.html",[0,0.229,2956,5.639]],["body/classes/BoardResponse.html",[0,0.278,2,0.941,3,0.022,4,0.022,5,0.012,7,0.126,27,0.528,29,0.65,30,0.001,31,0.459,32,0.182,33,0.582,34,2.179,47,0.893,95,0.158,101,0.016,103,0.001,104,0.001,127,1.332,145,2.111,165,0.831,364,2.275,376,1.918,467,3.495,469,3.609,475,4.099,618,3.481,966,4.188,1011,4.354,1474,4.312,2784,5.928,2787,6.578,2789,4.319,2909,5.499,2910,5.742,2911,5.742,2956,10.622,2957,9.9,3224,9.416,3657,8.182,3658,8.047,3659,8.182,3660,8.182,3661,8.182,3662,7.18,3663,8.182,3664,8.182,3665,8.182,3666,5.806,3667,6.841,3668,5.806]],["title/classes/BoardResponseMapper.html",[0,0.229,2960,5.892]],["body/classes/BoardResponseMapper.html",[0,0.291,2,0.983,3,0.023,4,0.023,5,0.012,7,0.131,8,1.306,27,0.355,29,0.679,30,0.001,31,0.48,32,0.152,33,0.428,34,1.466,35,1.031,95,0.16,99,1.45,100,2.861,101,0.016,103,0.001,104,0.001,187,1.223,217,1.129,227,1.142,234,1.926,305,2.459,591,3.654,627,3.696,731,3.361,806,3.601,974,5.275,975,6.184,1474,2.901,1487,4.884,1828,4.824,1984,3.654,2422,5.212,2697,6.588,2811,5.343,2861,7.704,2956,10.435,2960,9.452,2961,7.146,2982,7.895,3058,6.334,3224,6.334,3516,7.895,3658,5.413,3662,6.679,3669,10.82,3670,9.996,3671,7.466,3672,8.02,3673,5.843,3674,7.466,3675,8.547,3676,8.547,3677,8.547,3678,6.89,3679,6.334,3680,8.547,3681,8.547]],["title/controllers/BoardSubmissionController.html",[481,2.629,2766,5.892]],["body/controllers/BoardSubmissionController.html",[0,0.211,3,0.016,4,0.016,5,0.009,7,0.095,8,1.054,27,0.363,29,0.693,30,0.001,31,0.49,32,0.188,33,0.437,35,1.054,36,1.897,95,0.166,100,2.076,101,0.012,103,0.001,104,0.001,111,2.02,112,2.689,127,0.785,187,0.888,206,4.47,216,1.868,217,1.153,221,2.058,227,0.655,264,4.278,364,1.618,376,1.454,447,2.6,481,2.418,483,2.985,491,6.046,498,5.969,502,6.855,506,7.145,509,6.326,513,6.306,538,3.914,543,4.374,552,3.983,553,6.316,554,7.966,555,3.274,556,3.355,557,3.384,558,2.948,559,3.384,561,3.384,563,5.389,564,4.571,1019,5.893,1469,6.684,1984,2.652,2037,5.832,2686,4.646,2758,7.894,2759,8.145,2760,8.448,2766,7.627,2769,3.065,2770,5.418,2771,5.729,2772,5.729,2881,5.269,2882,3.696,2926,6.634,2930,6.634,2931,4.713,2934,7.812,2936,5,2949,8.145,2951,5.203,2954,4.494,2962,5,2972,5,2973,5,3187,3.738,3262,5.458,3305,4.314,3682,10.105,3683,6.202,3684,4.895,3685,8.448,3686,9.334,3687,6.202,3688,9.58,3689,6.202,3690,5.729,3691,6.202,3692,6.202,3693,6.202,3694,9.58,3695,9.58,3696,6.202,3697,6.202,3698,6.202,3699,7.038,3700,5.185,3701,6.202,3702,6.202,3703,6.202,3704,6.202,3705,5.729,3706,6.202,3707,6.202,3708,6.202,3709,6.202,3710,3.738,3711,6.202,3712,5.729]],["title/classes/BoardTaskResponse.html",[0,0.229,3405,5.639]],["body/classes/BoardTaskResponse.html",[0,0.225,2,0.761,3,0.018,4,0.018,5,0.009,7,0.102,27,0.551,29,0.526,30,0.001,31,0.687,32,0.186,33,0.664,34,2.031,47,0.955,83,3.845,95,0.134,101,0.013,103,0.001,104,0.001,127,1.156,165,0.722,364,2.433,375,5.263,376,1.552,379,2.411,467,3.529,469,2.92,564,4.393,591,5.062,592,5.221,618,2.817,620,4.252,622,4.252,966,3.389,1984,2.831,2078,3.861,2136,2.65,2691,2.905,2697,7.06,2774,10.448,2775,10.448,2784,4.797,2787,7.052,3245,5.523,3405,9.897,3418,7.283,3424,7.982,3713,6.621,3714,6.719,3715,6.541,3716,6.621,3717,6.621,3718,6.621,3719,6.621,3720,6.621,3721,6.621,3722,6.621,3723,6.621,3724,6.621,3725,8.748,3726,6.621,3727,6.621,3728,5.337]],["title/classes/BoardTaskStatusMapper.html",[0,0.229,3729,5.892]],["body/classes/BoardTaskStatusMapper.html",[0,0.327,2,1.108,3,0.026,4,0.026,5,0.014,7,0.148,8,1.406,27,0.4,29,0.765,30,0.001,31,0.541,32,0.135,33,0.482,35,1.162,95,0.149,99,1.634,100,3.9,101,0.018,103,0.001,104,0.001,217,1.272,227,1.016,234,1.562,564,3.574,627,3.899,975,6.658,982,4.825,3725,10.473,3729,10.177,3730,11.651,3731,9.631,3732,10.762,3733,8.609,3734,9.631,3735,9.631]],["title/classes/BoardTaskStatusResponse.html",[0,0.229,3725,5.639]],["body/classes/BoardTaskStatusResponse.html",[0,0.258,2,0.873,3,0.02,4,0.02,5,0.011,7,0.117,27,0.54,29,0.603,30,0.001,31,0.426,32,0.182,33,0.38,55,2.802,95,0.097,101,0.014,103,0.001,104,0.001,127,1.269,165,0.792,347,2.596,364,2.361,376,1.781,467,3.694,966,3.888,2691,5.787,2697,6.963,2774,10.304,2775,10.304,3725,10.373,3736,7.016,3737,8.339,3738,8.636,3739,8.207,3740,8.207,3741,8.804,3742,8.339,3743,7.016,3744,7.595,3745,7.595,3746,7.595,3747,7.595,3748,7.595,3749,7.595,3750,6.35,3751,7.016,3752,6.35,3753,6.123,3754,7.016,3755,7.016]],["title/injectables/BoardUc.html",[105,0.889,2757,5.269]],["body/injectables/BoardUc.html",[0,0.109,3,0.009,4,0.009,5,0.005,7,0.049,8,0.635,26,2.954,27,0.494,29,0.944,30,0.001,31,0.667,32,0.167,33,0.595,35,1.415,36,2.838,39,3.501,47,0.766,55,2.316,59,0.994,95,0.125,99,0.544,101,0.006,103,0,104,0,105,0.694,107,0.767,111,2.105,112,3.045,127,0.666,187,0.459,199,2.01,216,1.703,217,1.65,221,3.206,227,0.904,461,0.738,766,1.377,1052,2.731,1053,3.44,1474,4.035,1545,1.023,1865,6.59,1866,1.814,1880,7.388,1881,4.244,1952,4.943,1984,4.749,2014,3.902,2598,3.943,2697,5.863,2757,4.113,2856,6.286,2861,1.978,2919,6.19,2920,6.19,2923,6.19,3089,3.736,3115,7.054,3126,5.234,3236,5.504,3295,2.322,3378,8.468,3466,10.445,3535,7.848,3536,7.605,3537,8.139,3756,3.205,3757,6.19,3758,6.19,3759,6.19,3760,6.701,3761,6.701,3762,5.853,3763,7.167,3764,6.19,3765,6.19,3766,6.19,3767,2.503,3768,3.205,3769,4.113,3770,3.205,3771,5.265,3772,10.513,3773,6.487,3774,4.478,3775,3.205,3776,5.265,3777,3.205,3778,5.265,3779,3.205,3780,5.265,3781,9.401,3782,3.205,3783,5.265,3784,3.205,3785,5.265,3786,3.205,3787,5.265,3788,3.205,3789,5.265,3790,7.759,3791,3.205,3792,3.205,3793,7.759,3794,3.205,3795,5.265,3796,3.205,3797,5.265,3798,3.205,3799,5.265,3800,3.205,3801,5.265,3802,3.205,3803,2.583,3804,2.503,3805,3.205,3806,3.205,3807,3.205,3808,8.557,3809,8.571,3810,9.287,3811,3.205,3812,3.205,3813,3.205,3814,3.205,3815,7.759,3816,3.205,3817,6.19,3818,3.205,3819,3.205,3820,3.205,3821,3.205,3822,2.435,3823,7.167,3824,6.19,3825,3.205,3826,3.205,3827,3.205,3828,3.205,3829,3.205,3830,2.03,3831,2.679,3832,2.154]],["title/classes/BoardUrlParams.html",[0,0.229,2925,5.892]],["body/classes/BoardUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,1984,5.011,2925,10.237,3466,10.516,3833,9.724,3834,5.671,3835,9.724]],["title/classes/BruteForceError.html",[0,0.229,1814,5.892]],["body/classes/BruteForceError.html",[0,0.254,2,0.859,3,0.02,4,0.02,5,0.011,7,0.115,8,1.196,27,0.546,29,0.593,30,0.001,31,0.419,32,0.19,33,0.557,35,0.901,47,0.922,55,2.789,95,0.127,101,0.014,103,0.001,104,0.001,127,0.945,165,0.783,187,1.069,204,4.066,216,2.535,364,2.286,380,1.562,404,1.795,406,2.393,511,3.823,558,3.549,564,2.771,596,3.851,1013,5.436,1016,2.666,1253,5.132,1291,3.177,1327,5.111,1472,8.211,1473,6.36,1474,4.024,1475,7.147,1479,4.866,1480,4.187,1481,4.866,1482,4.866,1483,4.866,1484,4.866,1485,4.866,1486,4.554,1487,4.268,1493,4.73,1814,8.661,1843,11.717,3836,11.129,3837,7.468,3838,9.914,3839,9.914,3840,6.899,3841,7.468,3842,7.468]],["title/injectables/BsonConverter.html",[105,0.889,3843,5.639]],["body/injectables/BsonConverter.html",[0,0.263,3,0.021,4,0.021,5,0.011,7,0.119,8,1.225,27,0.422,29,0.806,30,0.001,31,0.57,32,0.142,33,0.508,35,1.451,95,0.13,101,0.015,103,0.001,104,0.001,105,1.338,107,1.852,187,1.108,217,1.341,227,1.071,264,4.298,379,2.339,734,4.468,778,8.902,1062,5.591,1708,9.597,2325,12.235,3843,8.487,3844,7.741,3845,9.378,3846,9.378,3847,10.152,3848,7.741,3849,10.152,3850,10.898,3851,9.393,3852,9.372,3853,8.712,3854,11.107,3855,12.024,3856,10.152,3857,7.741,3858,10.152,3859,7.741,3860,7.741,3861,8.868,3862,7.741]],["title/classes/Builder.html",[0,0.229,2155,4.533]],["body/classes/Builder.html",[0,0.319,2,1.079,3,0.025,4,0.025,5,0.013,7,0.144,8,1.384,27,0.515,29,0.745,30,0.001,31,0.527,32,0.161,33,0.469,35,1.132,101,0.018,103,0.001,104,0.001,127,1.187,165,0.906,216,2.289,227,0.99,661,5.217,667,6.056,692,5.078,2090,6.556,2155,7.708,2156,10.355,3863,9.384,3864,11.468,3865,11.468,3866,11.468,3867,9.384,3868,11.468]],["title/classes/BusinessError.html",[0,0.229,1472,4.163]],["body/classes/BusinessError.html",[0,0.338,2,0.691,3,0.016,4,0.016,5,0.008,7,0.092,8,1.03,9,4.749,27,0.507,29,0.477,30,0.001,31,0.337,32,0.189,33,0.497,35,0.725,47,0.863,55,1.877,59,2.649,95,0.139,101,0.011,103,0.001,104,0.001,127,1.08,145,1.55,165,0.674,187,0.86,204,4.353,216,2.484,217,0.793,227,0.634,234,1.61,359,2.083,364,2.116,375,3.463,376,1.409,379,2.734,404,1.546,406,1.925,467,3.069,564,3.168,661,3.596,795,3.541,806,2.531,966,3.075,1013,4.957,1016,3.048,1062,2.622,1253,6.005,1291,4.859,1327,4.687,1472,5.269,1473,7.253,1474,4.234,1475,6.943,1480,3.368,1486,7.444,1487,6.179,1492,3.621,1493,6.29,1500,7.267,1617,7.457,1773,3.858,2092,4.831,2180,3.805,2621,4.032,2789,4.506,3544,3.545,3672,8.014,3869,6.008,3870,6.882,3871,6.882,3872,5.836,3873,6.669,3874,5.407,3875,9.445,3876,9.536,3877,8.537,3878,6.008,3879,6.008,3880,6.008,3881,6.008,3882,6.008,3883,6.008,3884,6.008,3885,5.248,3886,5.55,3887,5.55,3888,6.669,3889,7.886,3890,8.537,3891,6.008,3892,6.008]],["title/injectables/CacheService.html",[105,0.889,3893,5.639]],["body/injectables/CacheService.html",[0,0.331,3,0.026,4,0.026,5,0.014,7,0.15,8,1.416,27,0.405,30,0.001,35,1.176,95,0.162,101,0.019,103,0.001,104,0.001,105,1.546,107,2.332,187,1.395,227,1.029,1608,7.224,2171,4.189,2172,4.661,2173,4.495,3893,9.812,3894,9.747,3895,13.068,3896,9.747,3897,11,3898,5.319,3899,9.747,3900,7.406,3901,9.004,3902,8.515,3903,9.747]],["title/modules/CacheWrapperModule.html",[425,1.808,1623,5.437]],["body/modules/CacheWrapperModule.html",[0,0.266,3,0.021,4,0.021,5,0.011,30,0.001,47,0.743,95,0.17,101,0.015,103,0.001,104,0.001,150,2.866,187,1.119,204,2.681,217,1.503,227,1.078,334,0.86,425,3.05,427,2.889,428,3.047,429,3.142,430,3.128,431,3.1,432,4.206,433,4.291,438,4.825,442,4.107,443,3.073,444,2.996,449,4.107,837,5.793,839,3.669,883,4.283,1052,3.185,1053,5.047,1545,2.496,1623,10.699,1990,7.981,2171,3.359,2172,3.738,2173,3.605,3544,3.246,3893,11.638,3897,6.828,3898,4.265,3900,8.648,3902,6.828,3904,7.816,3905,7.816,3906,7.816,3907,7.816,3908,10.216,3909,10.216,3910,6.828,3911,6.106,3912,7.981,3913,8.541,3914,7.816,3915,7.816,3916,7.816,3917,9.437,3918,7.221,3919,7.816,3920,6.828,3921,7.221,3922,6.828,3923,6.828,3924,7.221]],["title/classes/CalendarEventDto.html",[0,0.229,3925,5.437]],["body/classes/CalendarEventDto.html",[0,0.327,2,1.105,3,0.025,4,0.025,5,0.014,7,0.148,27,0.52,29,0.763,30,0.001,31,0.539,32,0.176,33,0.481,47,0.946,100,3.216,101,0.018,103,0.001,104,0.001,127,1.216,165,0.919,1474,4.247,2789,5.071,3925,10.736,3926,13.005,3927,9.608,3928,8.554,3929,9.726,3930,11.634,3931,9.608,3932,9.608,3933,8.875,3934,8.875]],["title/injectables/CalendarMapper.html",[105,0.889,3935,5.639]],["body/injectables/CalendarMapper.html",[0,0.318,3,0.025,4,0.025,5,0.013,7,0.144,8,1.382,27,0.389,29,0.744,30,0.001,31,0.526,32,0.131,33,0.468,35,1.13,95,0.159,101,0.018,103,0.001,104,0.001,105,1.509,107,2.24,187,1.34,217,1.236,227,0.988,234,1.518,630,9.231,1474,3.177,3925,10.391,3928,7.828,3935,9.574,3936,9.362,3937,11.452,3938,10.777,3939,9.362,3940,7.827,3941,9.362,3942,8.648,3943,8.648,3944,8.648,3945,7.547,3946,9.362,3947,9.362,3948,7.113,3949,9.362]],["title/modules/CalendarModule.html",[425,1.808,3950,5.639]],["body/modules/CalendarModule.html",[0,0.312,3,0.024,4,0.024,5,0.013,30,0.001,95,0.164,101,0.017,103,0.001,104,0.001,187,1.313,425,3.285,427,3.389,428,3.575,429,3.686,430,3.67,431,3.637,432,4.531,433,4.622,442,4.545,443,3.606,444,3.515,449,3.686,1266,5.24,3935,11.192,3950,11.546,3951,9.17,3952,9.17,3953,9.17,3954,11.731,3955,9.17,3956,7.599,3957,9.17,3958,8.471]],["title/injectables/CalendarService.html",[105,0.889,3954,5.639]],["body/injectables/CalendarService.html",[0,0.219,3,0.017,4,0.017,5,0.009,7,0.099,8,1.083,26,2.598,27,0.487,29,0.82,30,0.001,31,0.579,32,0.165,33,0.516,34,1.107,35,1.083,36,1.95,39,2.405,47,0.883,55,2.27,95,0.169,99,1.094,101,0.012,103,0.001,104,0.001,105,1.183,107,1.543,111,2.612,112,2.314,127,0.816,150,4.092,154,5.086,165,0.709,167,2.462,185,3.514,187,0.923,193,10.245,215,2.088,216,2.348,217,1.185,227,0.947,234,1.674,238,5.583,250,8.629,254,5.393,255,5.635,270,5.635,305,1.856,363,4.142,576,6.083,1265,8.3,1266,3.686,1268,4.142,1376,4.901,1381,3.762,1439,4.292,1440,4.41,1441,4.781,1709,5.635,1887,3.982,2054,5.635,2063,6.247,2074,4.41,2171,2.772,2172,3.085,2173,2.975,2333,7.649,2334,7.235,2349,5.959,2357,5.959,2378,5.959,2622,4.578,3898,3.52,3925,5.2,3935,10.413,3938,5.393,3942,5.959,3943,5.959,3944,5.959,3954,7.503,3958,5.959,3959,6.451,3960,10.321,3961,8.975,3962,5.635,3963,8.975,3964,8.975,3965,11.157,3966,6.451,3967,8.994,3968,6.451,3969,6.451,3970,6.451,3971,6.451,3972,8.975,3973,6.451,3974,6.451,3975,6.451,3976,5.039,3977,6.451,3978,6.451,3979,6.451]],["title/classes/Card.html",[0,0.229,2856,3.817]],["body/classes/Card.html",[0,0.205,2,0.693,3,0.016,4,0.016,5,0.012,7,0.093,8,1.032,27,0.547,29,0.992,30,0.001,31,0.701,32,0.181,33,0.625,35,1.533,36,1.859,47,0.831,55,2.687,59,1.87,95,0.147,101,0.016,103,0.001,104,0.001,112,2.23,116,2.768,148,3.674,165,0.676,208,2.236,217,0.796,221,1.42,227,1.05,334,0.663,347,2.026,363,5.494,404,1.801,595,2.955,596,3.791,661,3.604,692,3.187,728,3.349,806,4.19,884,4.041,1474,4.031,1857,5.079,1860,6.579,1984,2.577,2598,6.545,2791,8.045,2794,6.34,2795,6.34,2796,6.34,2797,6.071,2798,6.34,2800,4.119,2801,5.494,2802,6.525,2804,6.34,2805,5.494,2806,6.602,2808,4.366,2809,4.516,2811,6.217,2812,4.366,2814,6.071,2816,4.366,2818,4.119,2844,5.419,2856,4.842,2864,5.573,2867,5.494,2870,5.348,2878,8.018,2879,4.466,2880,2.882,2881,2.747,2882,3.591,3236,7.628,3980,5.566,3981,5.566,3982,6.026,3983,6.026,3984,4.579,3985,4.579,3986,4.579,3987,5.264,3988,6.026,3989,5.264,3990,6.026,3991,6.026,3992,6.026,3993,6.026,3994,6.026,3995,3.986,3996,6.071,3997,4.707,3998,7.903,3999,5.566,4000,5.348,4001,5.566,4002,5.566,4003,5.264]],["title/controllers/CardController.html",[481,2.629,2764,5.892]],["body/controllers/CardController.html",[0,0.128,3,0.01,4,0.01,5,0.005,7,0.058,8,0.723,10,3.017,27,0.412,29,0.788,30,0.001,31,0.557,32,0.194,33,0.496,35,1.197,36,2.576,95,0.146,100,1.259,101,0.007,103,0,104,0,111,0.752,112,2.845,163,1.186,187,0.538,206,1.926,215,1.217,216,1.108,217,1.374,221,2.337,227,0.633,234,1.212,240,1.178,264,3.941,364,1.837,376,0.882,447,1.577,481,1.466,483,1.81,491,6.272,498,4.097,502,7.412,506,7.725,509,8.268,513,6.728,529,2.644,538,2.687,543,4.663,552,2.416,553,6.503,554,8.325,555,1.986,556,2.035,557,2.053,558,1.788,559,2.053,561,2.053,563,6.121,564,4.854,770,2.217,883,2.513,1016,2.14,1469,6.882,1474,2.034,1724,2.109,1828,2.672,1919,1.562,2037,6.005,2594,3.296,2597,3.145,2686,5.277,2757,5.837,2758,5.837,2764,5.236,2769,1.859,2856,5.613,2880,1.799,2926,7.536,2928,4.832,2930,7.536,2931,7.073,2934,7.434,2936,6.87,2949,9.705,2950,6.87,2951,5.079,2954,2.726,2955,2.129,2962,3.032,2972,6.87,2973,6.87,2976,3.286,3232,6.476,3236,3.849,3262,6.752,3372,4.097,3512,3.475,3690,3.475,3758,5.537,3762,6.527,3764,6.902,3765,6.902,3822,4.554,4004,3.762,4005,6.902,4006,7.472,4007,3.762,4008,10.891,4009,7.445,4010,3.762,4011,6.023,4012,3.762,4013,4.554,4014,3.762,4015,3.762,4016,3.762,4017,8.523,4018,3.762,4019,3.762,4020,3.762,4021,7.472,4022,7.445,4023,3.762,4024,3.762,4025,3.762,4026,3.762,4027,3.762,4028,7.445,4029,3.762,4030,3.762,4031,3.762,4032,7.445,4033,3.762,4034,3.762,4035,3.762,4036,3.762,4037,3.762,4038,2.322,4039,3.032,4040,2.571,4041,6.527,4042,4.832,4043,3.762,4044,3.762,4045,2.939,4046,3.475,4047,3.145,4048,3.145,4049,3.145,4050,3.762,4051,5.236,4052,3.762,4053,5.994,4054,3.762,4055,5.994,4056,3.475,4057,3.762,4058,3.762,4059,9.308,4060,3.762,4061,3.286,4062,3.762,4063,3.762,4064,3.762,4065,3.762,4066,3.762,4067,3.762,4068,3.762,4069,3.762,4070,3.475,4071,2.571,4072,4.942,4073,3.475,4074,3.762,4075,3.762,4076,3.762,4077,3.762,4078,3.475]],["title/classes/CardIdsParams.html",[0,0.229,4022,5.892]],["body/classes/CardIdsParams.html",[0,0.394,2,1.097,3,0.025,4,0.025,5,0.013,7,0.147,27,0.396,30,0.001,32,0.175,47,0.966,95,0.149,101,0.018,103,0.001,104,0.001,145,2.461,165,0.915,364,1.767,369,2.103,374,3.047,376,2.237,379,2.198,467,3.113,770,7.834,1000,4.953,1925,6.019,2489,5.451,4022,10.119,4079,10.701,4080,9.539,4081,9.539,4082,7.69,4083,6.827,4084,9.539]],["title/classes/CardListResponse.html",[0,0.229,4041,5.892]],["body/classes/CardListResponse.html",[0,0.322,2,1.089,3,0.025,4,0.025,5,0.013,7,0.146,27,0.479,29,0.752,30,0.001,31,0.532,32,0.175,33,0.474,95,0.148,101,0.018,103,0.001,104,0.001,127,1.46,145,2.444,163,4.183,165,0.911,364,1.755,376,2.221,467,3.099,966,4.849,1006,6.722,1011,5.04,1026,5.261,4041,11.589,4079,11.488,4085,9.472,4086,10.433,4087,9.472,4088,9.472]],["title/entities/CardNode.html",[380,1.41,3165,5.269]],["body/entities/CardNode.html",[0,0.299,3,0.023,4,0.023,5,0.012,7,0.136,27,0.366,30,0.001,32,0.155,55,2.647,95,0.167,96,2.38,101,0.021,103,0.001,104,0.001,165,0.871,208,3.269,217,1.163,227,0.93,240,3.772,334,0.97,364,1.632,380,2.306,381,2.899,398,2.579,404,1.997,405,2.38,617,5.084,1857,4.715,2620,5.137,2621,4.16,2856,6.241,3144,5.916,3154,6.894,3165,8.615,3212,5.657,3231,9.634,3236,8.103,3261,6.022,3560,6.693,3562,7.082,3583,5.739,4089,10.187,4090,5.92,4091,8.137,4092,6.022,4093,5.92,4094,9.634,4095,7.365,4096,8.137,4097,8.137]],["title/interfaces/CardNodeProps.html",[334,0.742,4094,5.892]],["body/interfaces/CardNodeProps.html",[0,0.301,3,0.023,4,0.023,5,0.013,7,0.136,30,0.001,32,0.155,55,2.779,95,0.167,96,2.391,101,0.021,103,0.001,104,0.001,165,0.874,208,3.283,217,1.168,227,0.934,240,3.464,334,0.974,336,2.155,380,2.312,398,2.59,404,2.185,405,2.391,617,5.107,1857,4.728,2620,5.16,2621,4.179,2856,6.258,3144,5.933,3154,6.912,3165,6.911,3212,5.681,3231,9.66,3236,8.354,3261,6.048,3560,6.722,3562,7.747,3583,5.764,4089,8.173,4090,5.946,4092,6.048,4093,5.946,4094,10.538,4095,7.397,4096,8.173,4097,8.173]],["title/interfaces/CardProps.html",[334,0.742,4003,5.892]],["body/interfaces/CardProps.html",[0,0.273,3,0.021,4,0.021,5,0.015,7,0.123,30,0.001,32,0.162,36,1.742,47,0.918,55,2.776,95,0.162,101,0.02,103,0.001,104,0.001,112,1.798,148,2.481,165,0.821,208,2.976,217,1.059,221,1.89,227,1.216,334,0.883,336,1.953,347,1.634,404,2.087,728,4.067,806,4.854,1474,4.39,1857,4.927,1984,3.429,2598,5.279,2791,6.579,2801,5.149,2802,6.26,2805,5.149,2806,6.334,2814,5.69,2844,7.298,2856,4.538,2864,6.767,2867,6.671,2870,6.493,2878,9.288,2879,5.943,2880,3.835,2881,3.656,2882,4.778,3236,8.306,3980,7.408,3995,5.304,3996,7.371,3997,6.264,3998,9.596,3999,7.408,4000,6.493,4001,7.408,4002,7.408,4003,9.074]],["title/classes/CardResponse.html",[0,0.229,4086,5.437]],["body/classes/CardResponse.html",[0,0.247,2,0.837,3,0.019,4,0.019,5,0.01,7,0.112,27,0.534,29,0.578,30,0.001,31,0.409,32,0.183,33,0.55,34,2.099,47,0.853,55,2.143,95,0.162,101,0.014,103,0.001,104,0.001,127,1.233,145,1.878,165,0.77,364,2.333,375,3.954,376,1.707,467,3.557,469,3.211,475,3.647,618,3.097,966,3.726,1011,3.873,1019,5.684,1041,6.795,1474,4.152,1925,5.065,2594,3.211,2597,9.186,2787,6.092,2789,3.842,2880,3.481,2909,4.892,2910,5.318,2911,5.318,3236,7.856,3424,6.359,3658,7.749,3662,6.782,3666,5.165,3668,5.165,4039,5.868,4040,4.976,4045,5.686,4047,6.086,4070,6.724,4071,4.976,4072,4.815,4073,6.724,4086,9.862,4095,6.086,4098,7.279,4099,11.301,4100,7.279,4101,7.279,4102,7.279,4103,7.279,4104,7.279,4105,7.279,4106,9.186,4107,7.279,4108,7.279,4109,6.359,4110,7.279,4111,6.724,4112,7.279]],["title/classes/CardResponseMapper.html",[0,0.229,4048,5.639]],["body/classes/CardResponseMapper.html",[0,0.305,2,1.031,3,0.024,4,0.024,5,0.013,7,0.138,8,1.345,27,0.373,29,0.712,30,0.001,31,0.503,32,0.126,33,0.449,34,1.538,35,1.082,95,0.156,99,1.521,100,3.001,101,0.017,103,0.001,104,0.001,217,1.184,227,0.946,234,1.968,591,3.834,627,3.778,974,5.534,975,6.372,980,7.004,1041,4.98,1474,3.043,1828,4.971,2344,3.705,2594,3.954,2856,7.391,3236,5.757,3658,5.679,3662,6.882,3679,6.645,4048,9.322,4049,7.496,4078,8.282,4086,10.235,4099,8.282,4106,9.322,4113,11.15,4114,11.15,4115,8.966,4116,7.832,4117,7.832,4118,7.496,4119,8.966,4120,8.966,4121,8.966]],["title/injectables/CardService.html",[105,0.889,3535,5.437]],["body/injectables/CardService.html",[0,0.176,3,0.014,4,0.014,5,0.007,7,0.079,8,0.923,10,3.09,12,3.529,26,2.432,27,0.508,29,0.971,30,0.001,31,0.686,32,0.172,33,0.612,34,0.886,35,1.444,36,2.87,47,0.663,49,2.014,55,2.477,59,2.375,83,2.302,95,0.145,99,0.876,101,0.01,103,0,104,0,105,1.008,107,1.236,111,2.252,112,3.069,127,0.968,187,0.74,216,1.685,217,1.488,221,3.009,227,0.962,234,1.744,305,1.486,591,2.209,592,2.279,734,2.982,770,3.045,806,2.177,883,3.208,1474,3.65,1984,2.209,2344,2.135,2570,2.795,2686,2.749,2697,6.153,2799,3.473,2856,7.858,3120,3.926,3121,7.993,3232,5.814,3236,6.907,3275,6.398,3305,5.565,3369,8.639,3372,5.231,3378,7.87,3382,4.32,3535,6.168,3538,8.857,3773,10.221,3774,6.728,3781,5.978,3824,9.307,4051,4.514,4117,4.514,4118,4.32,4122,5.167,4123,7.652,4124,7.652,4125,6.685,4126,5.167,4127,6.685,4128,5.167,4129,7.652,4130,5.167,4131,7.652,4132,5.167,4133,7.652,4134,5.167,4135,7.652,4136,5.167,4137,7.652,4138,5.167,4139,7.652,4140,5.167,4141,7.652,4142,5.167,4143,4.165,4144,5.167,4145,5.167,4146,5.167,4147,5.167,4148,5.167,4149,4.514,4150,3.418,4151,4.773,4152,5.167,4153,5.167,4154,5.167,4155,5.167,4156,7.652,4157,7.652,4158,7.652,4159,5.167]],["title/classes/CardSkeletonResponse.html",[0,0.229,4160,5.639]],["body/classes/CardSkeletonResponse.html",[0,0.29,2,0.981,3,0.023,4,0.023,5,0.012,7,0.131,27,0.493,29,0.677,30,0.001,31,0.479,32,0.166,33,0.427,47,0.786,55,2.376,72,5.073,95,0.109,101,0.016,103,0.001,104,0.001,127,1.367,144,2.953,165,0.854,364,2.002,376,2,379,1.965,467,3.188,475,4.273,946,7.04,966,4.366,1013,3.91,2543,8.211,2856,6.115,2909,5.732,2910,5.897,2911,5.897,3236,8.575,3394,7.387,3781,10.052,4095,7.13,4160,10.758,4161,12.471,4162,8.529,4163,8.529,4164,8.529,4165,10.806,4166,9.44,4167,10.806,4168,9.44,4169,7.148,4170,10.806,4171,9.982,4172,9.982,4173,8.529,4174,8.529]],["title/injectables/CardUc.html",[105,0.889,2758,5.269]],["body/injectables/CardUc.html",[0,0.155,3,0.012,4,0.012,5,0.006,7,0.07,8,0.84,26,2.886,27,0.464,29,0.915,30,0.001,31,0.627,32,0.177,33,0.559,35,1.296,36,2.7,39,3.331,55,2.458,59,1.415,95,0.138,99,0.773,101,0.009,103,0,104,0,105,0.918,107,1.091,111,2.45,112,2.941,127,0.881,145,1.176,187,0.652,199,3.611,216,1.884,217,1.695,221,3.091,227,1.134,461,1.604,692,3.796,766,1.959,1041,2.532,1052,3.443,1053,4.194,1545,1.456,1773,2.927,1828,2.032,1865,6.908,1866,3.941,1880,6.163,1881,2.887,1952,5.763,2014,5.161,2439,3.303,2444,3.561,2594,4.738,2598,4.807,2758,5.44,2856,5.353,2864,2.97,2867,2.927,2870,2.849,3089,7.231,3115,8.097,3126,7.96,3232,5.291,3378,7.96,3535,9.009,3538,7.187,3762,3.982,3767,3.561,3769,5.44,3774,5.46,3781,7.389,3803,3.675,3804,3.561,3808,7.011,3810,7.389,3822,8.162,3823,4.211,3830,4.411,3831,3.811,3832,3.064,4000,4.353,4005,8.738,4051,8.263,4175,4.558,4176,7.806,4177,6.964,4178,8.45,4179,7.065,4180,7.381,4181,4.558,4182,4.558,4183,4.558,4184,4.558,4185,6.964,4186,9.29,4187,4.558,4188,6.964,4189,8.45,4190,4.558,4191,6.964,4192,4.558,4193,4.558,4194,9.459,4195,4.558,4196,4.558,4197,4.558,4198,6.964,4199,4.558,4200,4.558,4201,6.964,4202,6.433,4203,4.558,4204,7.806,4205,4.558,4206,4.558,4207,4.558,4208,4.558,4209,3.675,4210,4.558,4211,4.558]],["title/classes/CardUrlParams.html",[0,0.229,4008,5.892]],["body/classes/CardUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,2856,6.632,3781,9.826,3834,5.671,4008,10.237,4212,9.724,4213,9.724]],["title/classes/ChallengeParams.html",[0,0.229,4214,5.892]],["body/classes/ChallengeParams.html",[0,0.397,2,1.113,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,47,0.85,95,0.15,101,0.018,103,0.001,104,0.001,165,0.923,355,4.594,361,6.432,364,1.793,368,4.614,369,2.576,370,3.897,371,3.22,374,3.091,376,2.269,379,2.23,467,3.14,470,4.922,479,7.172,4214,10.207,4215,9.677,4216,9.289,4217,9.677]],["title/classes/ChangeLanguageParams.html",[0,0.229,4218,5.639]],["body/classes/ChangeLanguageParams.html",[0,0.401,2,1.132,3,0.026,4,0.026,5,0.014,7,0.151,27,0.409,30,0.001,32,0.138,95,0.162,99,1.669,101,0.019,103,0.001,104,0.001,165,0.933,364,1.824,374,3.144,376,2.308,467,3.172,1031,3.154,1044,4.831,2914,6.321,4218,9.869,4219,9.843,4220,8.801,4221,9.962,4222,9.843,4223,9.843,4224,9.843]],["title/classes/Class.html",[0,0.315]],["body/classes/Class.html",[0,0.373,2,0.715,3,0.017,4,0.032,5,0.009,7,0.096,8,1.056,26,2.735,27,0.564,29,0.494,30,0.001,31,0.65,32,0.123,33,0.311,35,1.056,39,2.345,47,0.953,55,1.924,62,6.404,83,3.304,95,0.13,101,0.017,103,0.001,104,0.001,116,3.745,145,3.248,148,1.925,165,0.691,227,1.408,334,0.685,359,2.157,404,1.833,591,4.696,592,4.844,595,3.023,596,2.657,661,3.686,692,3.26,884,4.133,1854,5.103,1857,4.948,1860,6.695,1940,3.941,2586,3.284,2800,4.253,2818,4.253,2821,5.435,2823,5.435,2826,4.86,2827,4.86,4225,5.747,4226,8.75,4227,3.78,4228,7.957,4229,8.345,4230,8.139,4231,8.345,4232,6.865,4233,8.345,4234,8.345,4235,8.083,4236,6.221,4237,4.86,4238,6.221,4239,3.889,4240,6.221,4241,6.221,4242,6.221,4243,5.435,4244,6.221,4245,6.221,4246,6.221,4247,6.221,4248,6.221,4249,6.221,4250,6.221,4251,6.221,4252,6.221,4253,6.221,4254,6.221,4255,6.221,4256,6.221,4257,6.221,4258,6.221,4259,6.221,4260,6.221,4261,7.691,4262,5.201,4263,5.201,4264,5.747,4265,5.747,4266,8.083,4267,5.747,4268,5.747,4269,5.747,4270,5.747,4271,5.747,4272,5.747,4273,5.747,4274,5.747,4275,5.747,4276,5.747]],["title/entities/ClassEntity.html",[380,1.41,4277,5.269]],["body/entities/ClassEntity.html",[0,0.266,2,0.612,3,0.014,4,0.03,5,0.008,7,0.181,26,1.63,27,0.528,30,0.001,31,0.573,32,0.178,33,0.664,34,0.912,47,0.934,49,5.174,55,2.038,62,5.957,95,0.14,96,2.112,97,2.262,99,0.902,101,0.015,103,0,104,0,111,1.063,144,1.453,145,3.231,165,0.732,234,0.862,240,4.024,305,1.53,334,0.585,359,2.71,364,2.352,369,2.926,370,4.108,380,1.634,381,1.75,386,6.723,396,6.105,398,1.557,399,3.06,402,2.187,404,0.963,405,1.437,406,1.704,618,2.262,619,4.466,905,2.208,2136,2.128,4227,3.516,4228,7.402,4229,7.762,4230,8.067,4231,7.762,4232,6.803,4233,7.762,4234,7.762,4277,6.105,4278,4.912,4279,5.317,4280,5.317,4281,5.317,4282,5.317,4283,5.317,4284,6.534,4285,5.317,4286,8.502,4287,3.773,4288,5.317,4289,5.317,4290,5.317,4291,5.317,4292,5.317,4293,4.228,4294,3.205,4295,4.912,4296,7.748,4297,4.446,4298,9.437,4299,6.827,4300,4.912,4301,4.912,4302,4.446,4303,2.333,4304,3.134,4305,3.941,4306,7.22,4307,4.154,4308,4.912,4309,4.912,4310,7.22,4311,4.912,4312,7.22,4313,4.912,4314,4.912,4315,6.105,4316,3.941,4317,7.22,4318,4.912,4319,5.939,4320,3.853,4321,7.22,4322,4.912]],["title/classes/ClassEntityFactory.html",[0,0.229,4323,6.23]],["body/classes/ClassEntityFactory.html",[0,0.162,2,0.548,3,0.013,4,0.023,5,0.007,7,0.073,8,0.869,27,0.533,29,1.027,30,0.001,31,0.713,32,0.184,33,0.62,34,1.66,35,1.443,47,0.523,49,4.662,55,2.495,59,3.224,62,5.062,95,0.124,101,0.009,103,0,104,0,127,0.603,138,3.126,144,3.192,148,1.473,165,0.569,185,4.849,216,1.331,217,0.951,227,0.76,234,1.84,329,3.441,359,2.496,366,2.622,379,2,380,2.172,381,2.369,404,1.304,538,3.228,596,3.855,627,2.241,660,7.176,661,4.603,662,5.424,665,4.037,666,5.424,667,5.614,668,4.037,669,4.037,670,4.037,671,3.964,672,4.411,673,4.866,674,6.928,675,5.719,676,6.94,677,2.696,682,2.67,683,4.037,684,2.696,685,5.067,686,5.28,687,4.488,688,5.107,689,4,690,2.67,691,2.495,692,4.071,693,2.599,694,2.556,695,2.67,696,4.99,697,2.696,698,4.779,699,2.67,700,7.036,701,4.08,702,6.55,703,2.696,704,4.289,705,2.67,706,2.696,707,2.67,708,2.696,709,2.67,710,3.017,711,2.838,712,2.67,713,6.015,714,2.696,715,2.67,716,4.037,717,3.964,718,4.037,719,2.696,720,2.577,721,2.556,722,2.101,723,2.67,724,2.67,725,2.67,726,2.696,727,2.696,728,1.865,729,2.67,730,2.696,731,2.831,732,2.67,733,2.696,734,2.749,735,2.749,737,2.838,1925,2.475,2321,3.151,4227,1.64,4228,3.451,4229,3.619,4230,3.53,4231,3.619,4232,2.978,4233,3.619,4234,3.619,4277,3.721,4286,5.625,4296,3.982,4323,8.019,4324,4.763,4325,6.651,4326,6.651,4327,4.763,4328,3.982,4329,4.763,4330,4.763,4331,3.38,4332,3.619]],["title/classes/ClassFactory.html",[0,0.229,4333,6.23]],["body/classes/ClassFactory.html",[0,0.293,2,0.541,3,0.012,4,0.026,5,0.007,7,0.072,8,0.86,27,0.531,29,1.025,30,0.001,31,0.711,32,0.184,33,0.618,34,1.649,35,1.438,47,0.751,49,1.833,55,2.484,59,3.206,62,5.023,83,2.145,95,0.133,96,1.271,97,2.001,101,0.009,103,0,104,0,127,0.595,138,3.096,144,3.18,148,1.455,165,0.563,185,4.834,216,1.318,217,0.942,227,0.752,234,2.002,329,3.427,359,2.472,366,2.588,379,1.984,380,1.801,381,2.346,404,1.291,538,3.196,591,2.011,592,2.074,596,3.845,627,2.22,660,6.971,661,4.581,662,5.388,665,3.997,666,5.388,667,5.463,668,3.997,669,3.997,670,3.997,671,3.925,672,4.377,673,4.828,674,6.91,675,5.687,676,6.862,677,2.661,682,2.636,683,3.997,684,2.661,685,5.034,686,5.245,687,4.459,688,5.073,689,3.961,690,2.636,691,2.462,692,4.051,693,2.566,694,2.523,695,2.636,696,4.957,697,2.661,698,4.741,699,2.636,700,7.016,701,4.064,702,6.524,703,2.661,704,3.523,705,2.636,706,2.661,707,2.636,708,2.661,709,2.636,712,2.636,713,5.985,714,2.661,715,2.636,716,3.997,717,3.925,718,3.997,719,2.661,720,2.544,721,2.523,722,2.074,723,2.636,724,2.636,725,2.636,726,2.661,727,2.661,728,1.841,729,2.636,730,2.661,731,2.804,732,2.636,733,2.661,735,2.714,737,2.802,2321,3.11,3499,4.344,4150,7.697,4227,1.619,4228,3.407,4229,3.573,4230,3.485,4231,3.573,4232,2.939,4233,3.573,4234,3.573,4261,5.418,4262,3.931,4263,3.931,4325,6.587,4326,6.587,4331,3.337,4332,3.573,4333,7.956,4334,4.702,4335,6.112,4336,4.702,4337,3.407,4338,4.702,4339,4.702]],["title/classes/ClassMapper.html",[0,0.229,4340,5.892]],["body/classes/ClassMapper.html",[0,0.459,2,0.775,3,0.018,4,0.03,5,0.01,7,0.104,8,1.117,27,0.472,29,0.903,30,0.001,31,0.691,32,0.16,33,0.569,34,1.587,35,1.372,49,2.629,62,5.396,95,0.146,96,1.822,97,2.869,101,0.013,103,0.001,104,0.001,111,2.461,145,2.934,227,1.2,234,2.082,380,1.935,381,2.219,591,2.883,592,2.974,627,4.176,921,5.123,1857,2.883,2405,4.46,2441,5.267,2446,4.785,2485,2.912,4227,3.185,4228,6.704,4229,7.031,4230,6.858,4231,7.031,4232,5.784,4233,7.031,4234,7.031,4261,7.031,4262,5.637,4277,10.48,4332,5.123,4340,8.083,4341,6.743,4342,9.253,4343,9.253,4344,9.253,4345,9.253,4346,9.253,4347,6.743,4348,9.253,4349,6.743,4350,9.253,4351,6.743,4352,9.253,4353,6.743,4354,6.743,4355,4.33,4356,5.267,4357,6.743,4358,6.743,4359,6.743,4360,6.743,4361,6.743,4362,6.743,4363,6.743,4364,6.743,4365,5.89,4366,6.743,4367,6.743,4368,6.743,4369,5.637,4370,5.637,4371,5.89,4372,6.743,4373,6.743,4374,6.743,4375,6.743,4376,6.743,4377,6.743,4378,6.743,4379,6.743,4380,6.229,4381,6.743,4382,6.743,4383,6.743,4384,6.743,4385,6.743,4386,6.229,4387,6.743]],["title/modules/ClassModule.html",[425,1.808,4388,5.892]],["body/modules/ClassModule.html",[0,0.317,3,0.025,4,0.025,5,0.013,30,0.001,95,0.158,101,0.018,103,0.001,104,0.001,187,1.334,425,3.309,427,3.444,428,3.633,429,3.746,430,3.729,431,3.696,432,4.563,433,4.656,442,4.59,443,3.664,444,3.572,766,4.005,2570,5.041,4388,12.096,4389,9.319,4390,9.319,4391,9.319,4392,12.283,4393,11.236,4394,9.319]],["title/interfaces/ClassProps.html",[334,0.742,4263,5.639]],["body/interfaces/ClassProps.html",[0,0.345,3,0.017,4,0.033,5,0.009,7,0.096,26,2.888,30,0.001,31,0.651,32,0.187,33,0.68,39,1.675,47,0.993,55,2.42,62,6.76,83,3.791,95,0.13,101,0.017,103,0.001,104,0.001,116,2.023,145,3.252,165,0.694,227,1.409,334,0.688,336,1.522,359,2.167,404,1.838,591,4.957,592,5.113,1854,5.918,1857,3.754,1940,3.959,2586,3.299,2826,4.883,2827,4.883,4225,5.774,4227,3.99,4228,8.399,4229,8.808,4230,8.592,4231,8.808,4232,7.246,4233,8.808,4234,8.808,4235,5.774,4261,8.808,4262,5.226,4263,7.34,4264,5.774,4265,5.774,4266,8.11,4267,5.774,4268,5.774,4269,5.774,4270,5.774,4271,5.774,4272,5.774,4273,5.774,4274,5.774,4275,5.774,4276,5.774]],["title/injectables/ClassService.html",[105,0.889,4392,5.892]],["body/injectables/ClassService.html",[0,0.39,2,1.185,3,0.021,4,0.021,5,0.011,7,0.122,8,1.244,26,2.739,27,0.476,29,0.91,30,0.001,31,0.643,32,0.161,33,0.573,34,1.359,35,1.244,36,2.636,39,3.07,95,0.156,99,1.344,101,0.015,103,0.001,104,0.001,105,1.358,107,1.896,112,2.891,116,4.172,127,1.003,145,2.045,187,1.134,215,2.564,216,1.465,217,1.513,221,2.7,227,1.209,234,1.285,305,2.279,1238,5.089,1439,3.789,1857,3.388,2405,5.241,2485,3.423,2570,4.287,4386,7.32,4392,9.004,4393,10.78,4395,7.924,4396,10.308,4397,10.308,4398,7.924,4399,7.924,4400,10.308,4401,7.924,4402,10.308,4403,7.924,4404,10.308,4405,7.32,4406,7.924,4407,7.924,4408,7.924,4409,7.924,4410,7.924]],["title/classes/ClassSourceOptions.html",[0,0.229,4261,5.125]],["body/classes/ClassSourceOptions.html",[0,0.314,2,1.062,3,0.024,4,0.035,5,0.013,7,0.142,27,0.511,29,0.733,30,0.001,31,0.518,32,0.159,33,0.462,47,0.826,101,0.022,103,0.001,104,0.001,127,1.168,145,2.382,165,0.897,227,0.974,334,1.016,405,3.068,595,4.55,661,5.18,884,5.363,1858,7.719,4261,8.628,4332,9.748,4411,11.851,4412,8.529,4413,11.714,4414,11.355,4415,9.233,4416,9.233,4417,8.529]],["title/classes/ClassSourceOptionsEntity.html",[0,0.229,4286,5.269]],["body/classes/ClassSourceOptionsEntity.html",[0,0.312,2,1.055,3,0.024,4,0.034,5,0.013,7,0.141,27,0.47,29,0.728,30,0.001,31,0.515,32,0.159,33,0.613,47,0.891,95,0.118,96,2.478,101,0.022,103,0.001,104,0.001,127,1.16,145,2.366,165,0.893,240,3.542,334,1.009,364,1.699,369,2.492,370,3.059,386,5.24,398,2.685,405,3.055,595,3.168,2618,5.788,4286,8.833,4332,9.724,4418,11.325,4419,8.471,4420,11.18,4421,11.307,4422,10.445,4423,8.471]],["title/interfaces/ClassSourceOptionsEntityProps.html",[334,0.742,4420,5.892]],["body/interfaces/ClassSourceOptionsEntityProps.html",[0,0.327,3,0.025,4,0.031,5,0.014,7,0.148,30,0.001,32,0.135,33,0.582,47,0.946,95,0.123,96,2.596,101,0.022,103,0.001,104,0.001,145,2.479,165,0.919,240,3.645,334,1.057,336,2.34,369,2.118,370,3.205,398,2.813,405,2.596,2618,5.955,4286,7.505,4332,10.12,4418,8.875,4419,8.875,4420,10.931,4422,10.747,4423,8.875]],["title/interfaces/ClassSourceOptionsProps.html",[334,0.742,4413,5.892]],["body/interfaces/ClassSourceOptionsProps.html",[0,0.333,3,0.026,4,0.031,5,0.014,7,0.151,30,0.001,32,0.137,33,0.589,47,0.952,101,0.022,103,0.001,104,0.001,145,2.527,165,0.93,227,1.034,334,1.078,336,2.386,405,2.647,595,4.066,661,4.126,1858,8.189,4261,7.442,4332,10.174,4411,9.048,4412,9.048,4413,11.434,4417,9.048]],["title/injectables/ClassesRepo.html",[105,0.889,4393,5.639]],["body/injectables/ClassesRepo.html",[0,0.428,2,1.187,3,0.021,4,0.021,5,0.011,7,0.122,8,1.245,26,2.533,27,0.476,29,0.911,30,0.001,31,0.644,32,0.161,33,0.574,35,1.245,36,2.638,39,2.128,49,3.095,62,4.63,95,0.165,96,2.145,97,3.378,99,1.347,101,0.015,103,0.001,104,0.001,105,1.36,107,1.9,111,1.588,112,2.893,127,1.005,187,1.137,206,6.215,215,2.569,216,1.908,217,1.515,221,2.432,227,0.838,234,1.288,380,1.66,921,6.033,2395,6.939,2485,3.429,3280,5.526,3285,6.293,4277,8.063,4340,10.607,4393,8.629,4424,7.94,4425,8.629,4426,10.321,4427,7.94,4428,9.016,4429,7.94,4430,10.321,4431,7.94,4432,7.94,4433,7.94,4434,7.94,4435,7.94,4436,7.94,4437,7.94,4438,7.94,4439,7.94,4440,7.94]],["title/injectables/CloseUserLoginMigrationUc.html",[105,0.889,4441,5.639]],["body/injectables/CloseUserLoginMigrationUc.html",[0,0.224,3,0.018,4,0.018,5,0.009,7,0.102,8,1.1,26,2.614,27,0.434,29,0.83,30,0.001,31,0.586,32,0.147,33,0.523,35,1.1,36,1.981,39,1.768,47,0.48,95,0.152,99,1.119,101,0.013,103,0.001,104,0.001,105,1.201,107,1.579,111,2.506,112,2.342,127,1.154,167,2.519,204,2.263,216,2.083,217,1.562,221,2.881,227,1.102,234,1.479,305,2.623,347,2.295,355,5.022,461,2.888,766,2.836,843,2.88,1865,4.774,1866,3.735,1880,4.299,1952,6.724,2767,2.975,3830,4.18,3832,4.435,4227,4.07,4441,7.622,4442,4.969,4443,11.267,4444,5.319,4445,7.964,4446,11.267,4447,5.319,4448,8.677,4449,9.289,4450,10.103,4451,6.096,4452,9.117,4453,6.599,4454,9.117,4455,7.852,4456,6.599,4457,7.126,4458,4.891,4459,7.122,4460,5.014,4461,5.155,4462,5.517,4463,6.096,4464,8.16,4465,6.599,4466,5.517,4467,4.891,4468,7.964,4469,6.599,4470,7.964,4471,6.096,4472,6.096,4473,6.096,4474,5.014,4475,5.517]],["title/injectables/CollaborativeStorageAdapter.html",[105,0.889,4476,5.639]],["body/injectables/CollaborativeStorageAdapter.html",[0,0.182,3,0.014,4,0.014,5,0.008,7,0.082,8,0.947,27,0.49,29,0.906,30,0.001,31,0.64,32,0.165,33,0.57,34,1.346,35,1.316,36,2.626,47,0.676,72,3.683,95,0.151,100,4.045,101,0.01,103,0,104,0,105,1.034,107,1.279,111,1.569,127,0.993,148,1.654,163,2.474,165,0.62,187,0.765,200,2.556,206,4.758,227,1.081,264,4.988,379,2.627,493,5.962,494,6.872,496,5.196,520,5.273,728,4.01,839,2.509,1052,3.788,1053,4.541,1545,1.707,1916,5.974,2296,5.568,2951,4.675,3543,6.053,3928,5.364,4476,6.56,4477,8.124,4478,10.558,4479,5.345,4480,5.685,4481,8.256,4482,10.105,4483,6.854,4484,6.325,4485,9.021,4486,6.854,4487,6.325,4488,6.325,4489,7.846,4490,6.325,4491,6.325,4492,5.345,4493,9.942,4494,8.562,4495,7.846,4496,6.325,4497,8.897,4498,5.345,4499,8.324,4500,6.325,4501,5.345,4502,7.846,4503,5.345,4504,6.325,4505,5.345,4506,7.846,4507,7.421,4508,8,4509,5.345,4510,5.815,4511,4.67,4512,4.176,4513,4.469,4514,6.56,4515,5.345,4516,4.67,4517,4.938,4518,4.176,4519,5.345,4520,5.345,4521,7.846,4522,5.345,4523,5.345,4524,5.345,4525,5.345]],["title/injectables/CollaborativeStorageAdapterMapper.html",[105,0.889,4494,5.639]],["body/injectables/CollaborativeStorageAdapterMapper.html",[0,0.268,3,0.021,4,0.021,5,0.011,7,0.121,8,1.239,27,0.327,29,0.626,30,0.001,31,0.442,32,0.111,33,0.394,35,0.951,95,0.161,100,4.539,101,0.015,103,0.001,104,0.001,105,1.353,107,1.885,116,3.697,187,1.128,227,1.084,234,1.278,264,4.836,379,1.815,496,5.523,1916,6.35,2485,4.435,3543,5.04,3928,5.385,4477,6.901,4481,9.758,4484,8.277,4494,8.585,4497,8.59,4499,7.381,4507,8.771,4508,9.456,4510,7.61,4511,6.882,4512,8.021,4513,6.586,4516,8.97,4518,6.154,4526,7.878,4527,10.268,4528,10.268,4529,7.878,4530,8.277,4531,8.277,4532,9.758,4533,6.188,4534,6.35,4535,6.882,4536,6.882,4537,6.882,4538,4.458,4539,6.154,4540,7.878,4541,7.878,4542,7.878,4543,7.878,4544,7.878]],["title/modules/CollaborativeStorageAdapterModule.html",[425,1.808,4545,5.639]],["body/modules/CollaborativeStorageAdapterModule.html",[0,0.241,3,0.019,4,0.019,5,0.01,30,0.001,47,0.514,95,0.173,101,0.013,103,0.001,104,0.001,187,1.013,217,0.934,425,2.902,427,2.615,428,2.758,429,2.844,430,2.831,431,2.806,432,4.003,433,4.083,438,5.898,442,3.843,443,2.782,444,2.712,449,3.843,836,5.519,1266,4.043,1420,4.924,1545,2.259,1981,9.488,1982,6.18,2171,3.04,2172,3.383,2173,3.262,3543,4.692,3898,3.86,3956,6.426,4476,11.304,4477,4.755,4478,6.18,4482,5.915,4493,5.703,4494,10.44,4514,9.054,4516,6.18,4517,6.535,4545,11.771,4546,7.074,4547,7.074,4548,7.074,4549,7.074,4550,9.488,4551,8.135,4552,9.047,4553,11.535,4554,11.152,4555,7.074,4556,4.894,4557,7.074,4558,7.074,4559,6.535,4560,5.375,4561,3.764,4562,7.074,4563,9.561,4564,7.074,4565,7.074,4566,7.074]],["title/controllers/CollaborativeStorageController.html",[481,2.629,4567,5.892]],["body/controllers/CollaborativeStorageController.html",[0,0.355,3,0.018,4,0.018,5,0.009,7,0.102,8,1.101,27,0.275,29,0.525,30,0.001,31,0.371,32,0.093,33,0.331,35,0.798,36,1.983,95,0.164,101,0.013,103,0.001,104,0.001,111,1.322,187,0.946,200,3.673,204,3.131,215,2.139,216,1.222,227,0.698,234,1.48,264,5.009,364,1.225,367,3.181,376,1.55,379,3.025,447,2.771,461,2.598,481,2.577,483,3.181,491,5.533,496,5.154,498,6.239,502,5.705,506,5.946,509,6.613,511,4.672,513,6.056,520,7.578,524,5.38,535,4.938,543,4.573,552,4.245,554,7.494,555,3.489,556,3.576,557,3.607,561,3.607,564,4.184,843,2.885,1052,2.694,1053,4.047,1295,5.268,1545,2.111,1916,5.461,2490,7.358,3543,6.004,4482,9.891,4491,8.428,4499,7.791,4534,7.358,4567,7.973,4568,6.353,4569,9.127,4570,6.61,4571,7.631,4572,6.61,4573,10.929,4574,9.426,4575,11.831,4576,9.088,4577,6.61,4578,6.61,4579,7.358,4580,9.127,4581,6.61,4582,7.358,4583,6.61,4584,6.61,4585,9.127,4586,6.353,4587,7.973,4588,6.61,4589,7.631,4590,6.106,4591,6.106,4592,5.774,4593,6.106,4594,6.61,4595,6.61,4596,6.61,4597,6.61,4598,6.61,4599,6.61]],["title/modules/CollaborativeStorageModule.html",[425,1.808,4600,5.437]],["body/modules/CollaborativeStorageModule.html",[0,0.25,3,0.02,4,0.02,5,0.01,30,0.001,95,0.173,101,0.014,103,0.001,104,0.001,187,1.053,425,2.961,427,2.72,428,2.869,429,2.958,430,2.945,431,2.919,432,4.083,433,4.166,438,5.965,442,3.947,443,2.894,444,2.821,447,4.116,449,3.947,450,3.027,1545,2.35,1625,9.597,1945,6.833,1973,8.489,2767,3.317,3543,3.612,4478,8.576,4510,8.188,4514,6.153,4545,10.56,4567,9.651,4568,5.122,4589,11.375,4590,6.798,4591,6.798,4600,11.387,4601,7.359,4602,7.359,4603,7.359,4604,7.359,4605,10.56,4606,10.56,4607,10.56,4608,6.798,4609,7.359,4610,6.429,4611,6.798,4612,7.359,4613,6.429,4614,5.932,4615,6.798,4616,7.359,4617,7.359]],["title/injectables/CollaborativeStorageService.html",[105,0.889,4605,5.639]],["body/injectables/CollaborativeStorageService.html",[0,0.183,3,0.014,4,0.014,5,0.008,7,0.083,8,0.952,26,2.145,27,0.475,29,0.908,30,0.001,31,0.642,32,0.16,33,0.572,34,1.354,35,1.32,36,2.729,47,0.936,95,0.161,99,0.914,100,3.441,101,0.01,103,0,104,0,105,1.04,107,1.289,111,2.286,112,2.564,127,0.999,144,1.472,187,0.771,221,2.423,227,1.278,234,1.28,264,4.841,329,1.587,369,1.74,371,2.175,379,1.818,380,1.65,450,2.216,461,1.818,496,3.325,843,2.352,1052,3.806,1053,4.559,1545,1.721,1868,3.413,1916,4.98,1952,5.515,1973,7.94,2767,2.429,3091,3.598,3543,2.645,3928,8.704,4476,8.595,4481,6.362,4487,6.362,4488,6.362,4490,6.362,4491,7.528,4496,6.362,4497,8.383,4499,6.972,4500,6.362,4504,6.362,4508,8.031,4512,4.209,4514,4.505,4533,4.756,4534,4.344,4568,8.222,4586,5.493,4605,6.598,4606,8.595,4613,10.319,4618,5.388,4619,7.892,4620,5.388,4621,8.976,4622,9.339,4623,8.158,4624,5.388,4625,5.388,4626,5.388,4627,7.892,4628,7.814,4629,5.388,4630,4.101,4631,6.598,4632,5.395,4633,5.388,4634,5.388,4635,8.475,4636,10.109,4637,5.388,4638,6.165,4639,6.598,4640,6.277,4641,5.304,4642,7.291,4643,7.291,4644,4.505,4645,5.388,4646,5.388,4647,5.388,4648,5.388,4649,7.892,4650,5.388,4651,5.388,4652,5.388,4653,5.388,4654,5.388,4655,5.388,4656,5.388,4657,5.388,4658,5.388]],["title/injectables/CollaborativeStorageUc.html",[105,0.889,4589,5.639]],["body/injectables/CollaborativeStorageUc.html",[0,0.225,3,0.018,4,0.018,5,0.009,7,0.102,8,1.101,27,0.492,29,0.94,30,0.001,31,0.664,32,0.166,33,0.592,35,1.36,36,2.776,47,0.889,95,0.157,101,0.013,103,0.001,104,0.001,105,1.203,107,1.581,111,1.825,112,2.344,127,1.155,187,0.946,216,1.687,227,1.19,234,1.48,264,4.426,379,1.523,461,2.103,496,4.75,766,3.922,1916,5.461,3928,4.518,4487,7.358,4488,7.358,4490,7.358,4496,7.358,4497,8.898,4499,7.46,4500,7.358,4504,7.358,4510,7.748,4513,5.526,4568,8.515,4573,10.415,4574,9.426,4576,9.088,4586,6.353,4589,7.631,4592,5.774,4593,6.106,4605,9.426,4607,9.426,4610,5.774,4611,6.106,4613,5.774,4614,5.328,4638,7.13,4639,7.631,4640,7.578,4641,6.135,4642,8.431,4643,8.431,4659,12.234,4660,6.61,4661,10.455,4662,6.61,4663,10.455,4664,6.61,4665,6.61,4666,6.61,4667,6.61,4668,6.61,4669,11.274,4670,6.61,4671,9.127,4672,8.431,4673,6.61,4674,6.61,4675,6.61,4676,6.61,4677,6.61,4678,6.61,4679,6.61]],["title/classes/Column.html",[0,0.229,2697,3.56]],["body/classes/Column.html",[0,0.224,2,0.759,3,0.018,4,0.018,5,0.009,7,0.102,8,1.1,27,0.545,29,0.995,30,0.001,31,0.704,32,0.182,33,0.627,35,1.541,36,1.981,47,0.86,55,2.005,59,2.048,95,0.134,101,0.017,103,0.001,104,0.001,112,2.342,116,2.95,148,3.658,165,0.72,208,2.449,217,0.872,221,1.555,227,0.962,334,0.726,347,2.128,363,5.855,404,1.892,595,3.15,596,3.878,661,3.841,692,3.396,728,2.584,806,2.78,884,4.306,1474,4.15,1857,4.817,1860,6.909,1984,2.822,2598,6.669,2697,4.812,2791,8.212,2794,6.757,2795,6.757,2796,6.757,2797,6.469,2798,6.757,2800,4.511,2801,5.855,2802,6.79,2804,6.757,2805,5.855,2806,6.87,2808,4.781,2809,4.812,2811,6.529,2812,4.781,2814,6.469,2816,4.781,2818,4.511,2844,5.775,2856,5.16,2875,5.517,3984,6.927,3985,5.014,3986,5.014,3987,5.764,3989,5.764,3995,4.365,3996,6.469,3997,5.155,4000,5.699,4680,6.096,4681,5.764,4682,6.096,4683,6.599,4684,6.599,4685,6.096,4686,6.096,4687,5.764]],["title/classes/ColumnBoard.html",[0,0.229,2861,4.163]],["body/classes/ColumnBoard.html",[0,0.21,2,0.711,3,0.016,4,0.016,5,0.009,7,0.095,8,1.051,27,0.549,29,0.998,30,0.001,31,0.706,32,0.182,33,0.629,35,1.542,36,1.893,47,0.839,55,1.916,59,1.919,95,0.129,101,0.017,103,0.001,104,0.001,112,2.262,116,2.819,148,3.705,165,0.688,199,4.573,208,2.294,217,0.817,221,1.457,227,1.065,334,0.681,347,2.055,363,5.595,404,1.827,595,3.01,596,3.816,661,3.67,692,3.246,728,3.411,806,2.605,884,4.115,1474,4.065,1857,4.683,1860,6.673,1984,2.644,2598,6.581,2697,4.599,2791,8.093,2794,6.457,2795,6.457,2796,6.457,2797,6.182,2798,6.457,2800,4.227,2801,5.595,2802,6.601,2804,6.457,2805,5.595,2806,6.678,2808,4.48,2809,4.599,2811,6.306,2812,4.48,2814,6.182,2816,4.48,2818,4.227,2844,5.518,2861,5.378,2877,5.169,3295,8.679,3984,4.698,3985,4.698,3986,4.698,3987,5.401,3989,5.401,3995,4.09,3996,6.182,3997,4.83,4000,5.446,4688,10.666,4689,5.712,4690,6.183,4691,6.183,4692,5.712,4693,6.183,4694,6.183,4695,6.183,4696,6.183,4697,6.183,4698,6.183,4699,8.048,4700,5.712,4701,5.712,4702,5.712,4703,5.169]],["title/classes/ColumnBoardFactory.html",[0,0.229,4704,6.23]],["body/classes/ColumnBoardFactory.html",[0,0.166,2,0.562,3,0.013,4,0.013,5,0.007,7,0.075,8,0.886,27,0.536,29,1.024,30,0.001,31,0.689,32,0.186,33,0.614,34,1.803,35,1.454,47,0.534,49,1.907,55,2.517,59,3.261,83,2.21,95,0.113,99,0.83,101,0.014,103,0,104,0,127,0.619,138,3.189,144,3.218,145,1.262,148,1.513,165,0.58,185,4.879,199,2.804,216,1.63,217,0.97,227,0.775,234,1.59,329,3.469,359,2.546,366,2.692,379,2.032,380,2.197,381,2.417,404,1.33,538,3.293,591,2.091,592,2.157,596,3.876,627,2.286,660,7.208,661,4.65,662,5.497,665,4.118,666,5.497,667,5.655,668,4.118,669,4.118,670,4.118,671,4.043,672,4.482,673,4.945,674,6.426,675,5.785,676,6.973,677,2.768,682,2.742,683,4.118,684,2.768,685,5.135,686,5.35,687,4.548,688,5.175,689,4.08,690,2.742,691,2.561,692,4.112,693,2.669,694,2.624,695,2.742,696,5.057,697,2.768,698,4.855,699,2.742,700,6.879,701,4.113,702,6.602,703,2.768,704,4.358,705,2.742,706,2.768,707,2.742,708,2.768,709,2.742,710,3.098,711,2.914,712,2.742,713,6.076,714,2.768,715,2.742,716,4.118,717,4.043,718,4.118,719,2.768,720,2.646,721,2.624,722,2.157,723,2.742,724,2.742,725,2.742,726,2.768,727,2.768,728,1.915,729,2.742,730,2.768,731,2.888,732,2.742,733,2.768,734,2.823,736,2.914,737,2.914,1474,1.66,1984,2.091,2697,2.582,2799,3.287,2861,3.019,2913,3.625,3140,4.089,4150,4.858,4703,4.089,4704,8.148,4705,7.345,4706,4.891,4707,9.805,4708,4.891,4709,4.891,4710,4.891]],["title/entities/ColumnBoardNode.html",[380,1.41,3171,5.125]],["body/entities/ColumnBoardNode.html",[0,0.272,3,0.021,4,0.021,5,0.011,7,0.123,27,0.43,30,0.001,32,0.171,34,1.37,49,4.483,95,0.166,96,2.158,101,0.02,103,0.001,104,0.001,165,0.819,199,4.645,208,2.964,217,1.055,227,1.093,234,1.295,240,3.603,334,0.879,364,1.92,380,2.166,381,2.628,398,2.339,404,1.876,405,2.158,617,4.61,734,4.61,1857,4.43,1984,4.917,2598,5.265,2620,4.658,2621,3.772,2674,4.75,2913,8.523,3144,5.558,3154,6.476,3171,7.872,3212,5.129,3261,5.46,3295,8.332,3333,9.27,3335,10.046,3560,6.069,3562,6.653,3583,5.204,4090,5.368,4092,5.46,4093,5.368,4711,10.046,4712,7.872,4713,7.987,4714,6.174,4715,7.987,4716,9.571,4717,9.051,4718,9.571,4719,7.378,4720,6.678,4721,7.378,4722,7.378,4723,7.378]],["title/interfaces/ColumnBoardNodeProps.html",[334,0.742,4717,5.892]],["body/interfaces/ColumnBoardNodeProps.html",[0,0.281,3,0.022,4,0.022,5,0.012,7,0.127,30,0.001,32,0.164,34,1.418,49,4.129,95,0.167,96,2.234,101,0.02,103,0.001,104,0.001,165,0.837,199,4.978,208,3.067,217,1.092,227,1.118,234,1.341,240,3.662,334,0.91,336,2.013,380,2.215,398,2.42,404,2.117,405,2.234,617,4.771,734,4.771,1857,4.529,1984,3.534,2598,5.383,2620,4.82,2621,3.904,2674,4.857,2913,7.851,3144,5.683,3154,6.621,3171,6.281,3212,5.308,3261,5.651,3295,9.235,3333,6.663,3335,7.221,3560,6.281,3562,7.507,3583,5.385,4090,5.556,4092,5.651,4093,5.556,4711,7.221,4714,4.925,4716,9.785,4717,10.211,4718,9.785,4719,7.636,4720,6.911,4721,7.636,4722,7.636,4723,7.636]],["title/interfaces/ColumnBoardProps.html",[334,0.742,4703,5.639]],["body/interfaces/ColumnBoardProps.html",[0,0.285,3,0.022,4,0.022,5,0.012,7,0.129,30,0.001,32,0.165,36,1.818,47,0.93,95,0.151,101,0.02,103,0.001,104,0.001,112,1.877,148,2.589,165,0.844,199,4.994,208,3.105,217,1.105,221,1.972,227,1.241,334,0.921,336,2.038,347,1.705,404,2.129,728,4.18,806,3.526,1474,4.44,1857,3.578,1984,3.578,2598,5.426,2697,5.636,2791,6.763,2801,5.374,2802,6.435,2805,5.374,2806,6.511,2814,5.939,2844,7.447,2861,5.166,2877,6.997,3295,9.479,3995,5.536,3996,7.577,3997,6.538,4000,6.674,4688,7.731,4689,7.731,4699,9.863,4700,7.731,4701,7.731,4702,7.731,4703,8.927]],["title/injectables/ColumnBoardService.html",[105,0.889,3536,5.269]],["body/injectables/ColumnBoardService.html",[0,0.151,3,0.012,4,0.012,5,0.006,7,0.068,8,0.824,10,2.757,12,3.149,26,2.31,27,0.487,29,0.931,30,0.001,31,0.658,32,0.165,33,0.586,34,1.601,35,1.379,36,2.684,47,0.898,49,1.732,83,3.439,95,0.136,99,0.754,101,0.008,103,0,104,0,105,0.9,107,1.063,111,2.126,112,2.977,127,0.864,144,1.214,187,0.636,199,3.174,216,1.537,217,1.701,221,2.374,227,1.122,234,2.088,329,2.011,591,3.991,592,4.116,734,2.564,770,4.024,883,2.862,1062,1.939,1474,4.132,1932,2.274,1984,4.887,2171,1.909,2172,2.125,2173,2.049,2321,2.939,2570,2.404,2594,3.011,2697,4.389,2799,6.273,2856,4.706,2861,7.722,2867,6.468,2880,3.265,2918,4.104,3120,3.376,3121,7.546,3236,2.853,3276,6.307,3294,6.307,3295,8.671,3369,8.208,3466,5.708,3536,5.334,3540,8.927,3674,3.881,3774,2.564,3898,2.424,4125,5.964,4143,3.581,4150,6.173,4151,4.104,4724,11.968,4725,4.443,4726,6.828,4727,6.828,4728,6.828,4729,4.443,4730,6.828,4731,4.443,4732,6.828,4733,4.443,4734,6.828,4735,4.443,4736,6.307,4737,6.828,4738,4.443,4739,6.828,4740,4.443,4741,4.443,4742,6.828,4743,4.443,4744,4.443,4745,6.828,4746,4.443,4747,4.443,4748,4.443,4749,6.828,4750,4.443,4751,6.828,4752,4.443,4753,4.443,4754,4.443,4755,4.443,4756,4.443,4757,4.443,4758,4.443,4759,4.443,4760,4.443,4761,4.443,4762,9.333,4763,8.316,4764,4.443,4765,4.443,4766,4.443,4767,4.443,4768,6.828,4769,4.443,4770,4.443,4771,4.443,4772,4.443,4773,4.443,4774,4.443,4775,4.443,4776,4.443,4777,4.443,4778,4.443,4779,4.443,4780,4.443,4781,4.443,4782,6.828,4783,4.443,4784,4.443,4785,6.828,4786,6.828,4787,4.443,4788,4.443,4789,4.443,4790,4.104,4791,4.443,4792,4.443,4793,4.443,4794,4.443,4795,4.443,4796,4.443,4797,4.443,4798,6.828,4799,6.828,4800,4.443,4801,6.828,4802,6.828,4803,4.443,4804,4.443,4805,4.443,4806,6.828,4807,4.443,4808,3.037,4809,3.376,4810,4.443,4811,4.443,4812,4.443,4813,4.443,4814,4.104]],["title/entities/ColumnBoardTarget.html",[380,1.41,2698,4.887]],["body/entities/ColumnBoardTarget.html",[0,0.27,3,0.021,4,0.021,5,0.011,7,0.122,26,2.392,27,0.476,30,0.001,32,0.161,47,0.834,49,4.47,95,0.161,96,2.145,101,0.015,103,0.001,104,0.001,144,2.169,148,3.193,165,0.815,214,2.621,227,0.838,234,1.288,240,4.041,329,2.339,364,2.125,369,1.75,371,3.16,380,2.158,381,2.613,398,2.325,399,4.041,400,3.483,404,1.438,405,2.145,406,2.544,734,4.583,1474,4.121,1984,5.192,2586,4.191,2670,9.485,2674,3.64,2687,6.537,2698,7.478,2777,8.063,2778,7.471,2789,4.191,2790,9.534,2861,6.371,3573,5.173,4712,6.033,4815,11.216,4816,7.94,4817,10.593,4818,7.94,4819,7.94,4820,7.94,4821,4.901,4822,10.321,4823,7.94,4824,7.94,4825,4.963,4826,5.099,4827,7.94]],["title/injectables/ColumnBoardTargetService.html",[105,0.889,4828,5.639]],["body/injectables/ColumnBoardTargetService.html",[0,0.246,3,0.019,4,0.019,5,0.01,7,0.111,8,1.172,26,2.679,27,0.455,29,0.87,30,0.001,31,0.615,32,0.154,33,0.548,34,1.666,35,1.172,36,2.544,95,0.157,96,2.624,97,3.08,99,1.228,101,0.014,103,0.001,104,0.001,105,1.28,107,1.732,111,2.341,112,2.819,127,0.916,187,1.036,215,2.343,216,1.795,217,1.613,221,2.759,227,1.156,234,1.174,398,2.12,1062,3.16,1474,3.719,1984,5.007,2395,6.691,2432,5.787,2698,7.036,2744,5.22,2777,5.656,3285,6.682,3327,6.688,3348,5.836,3536,9.82,4817,6.688,4828,8.119,4829,11.709,4830,7.24,4831,9.711,4832,9.711,4833,7.24,4834,7.24,4835,9.711,4836,7.24,4837,10.122,4838,9.711,4839,7.24,4840,6.324,4841,10.957,4842,7.24,4843,7.24,4844,9.711,4845,7.24,4846,7.24,4847,7.24,4848,7.24,4849,7.24,4850,7.24,4851,7.24]],["title/controllers/ColumnController.html",[481,2.629,2763,5.892]],["body/controllers/ColumnController.html",[0,0.163,3,0.013,4,0.013,5,0.007,7,0.074,8,0.875,10,3.526,27,0.404,29,0.772,30,0.001,31,0.546,32,0.194,33,0.486,35,1.173,36,2.546,59,1.492,95,0.154,100,1.61,101,0.009,103,0,104,0,112,2.82,187,0.688,206,2.462,215,1.556,216,0.889,217,1.153,221,2.291,227,0.507,234,1.176,264,4.116,364,1.801,368,1.899,371,1.998,376,1.128,447,2.016,481,1.875,483,2.314,491,6.244,502,7.324,506,7.634,509,8.49,513,6.729,543,4.87,552,3.088,553,6.521,554,8.326,555,2.538,556,2.602,557,2.624,558,2.285,559,2.624,561,2.624,563,6.001,564,4.845,883,3.04,1016,2.589,1469,6.901,1474,2.461,2037,6.022,2686,5.551,2697,5.507,2757,6.82,2763,6.335,2769,2.376,2856,4.941,2926,7.387,2928,5.846,2930,7.387,2931,7.387,2934,7.634,2936,7.038,2949,8.841,2950,7.837,2951,4.321,2954,3.484,2955,2.722,2962,3.877,2972,7.038,2973,7.038,2976,4.201,3224,3.564,3262,6.855,3372,4.958,3757,8.065,3759,6.699,3763,8.065,3766,8.065,3773,6.063,4038,2.968,4048,4.021,4056,4.442,4061,4.201,4086,5.846,4852,4.809,4853,4.809,4854,11.113,4855,10.474,4856,9.722,4857,4.809,4858,4.442,4859,4.809,4860,4.809,4861,4.809,4862,4.809,4863,4.809,4864,4.809,4865,8.493,4866,4.809,4867,4.809,4868,4.809,4869,4.809,4870,4.809,4871,6.699,4872,4.809,4873,4.809,4874,4.809,4875,4.809,4876,4.809,4877,9.722,4878,4.809,4879,4.809,4880,4.809,4881,4.809,4882,4.809,4883,4.809,4884,4.809,4885,4.809]],["title/entities/ColumnNode.html",[380,1.41,3168,5.437]],["body/entities/ColumnNode.html",[0,0.321,3,0.025,4,0.025,5,0.013,30,0.001,32,0.132,95,0.17,96,2.548,101,0.018,103,0.001,104,0.001,208,3.498,217,1.245,227,0.995,380,2.405,381,3.102,398,2.76,404,1.707,405,2.548,617,5.442,1857,5.306,2598,5.844,2620,5.498,2621,4.453,3144,6.17,3154,7.189,3168,9.271,3212,6.054,3223,10.624,3261,6.445,3560,7.163,3562,7.385,3583,6.142,4090,6.336,4093,6.336,4711,8.236,4886,9.428]],["title/interfaces/ColumnProps.html",[334,0.742,4687,5.892]],["body/interfaces/ColumnProps.html",[0,0.3,3,0.023,4,0.023,5,0.012,7,0.136,30,0.001,32,0.155,36,1.918,47,0.945,95,0.155,101,0.021,103,0.001,104,0.001,112,1.98,148,2.731,165,0.872,208,3.276,217,1.166,221,2.08,227,1.165,334,0.972,336,2.15,347,1.799,404,2.182,728,3.456,806,3.719,1474,4.501,1857,3.775,1984,3.775,2598,5.612,2697,4.66,2791,6.995,2801,5.669,2802,6.655,2805,5.669,2806,6.734,2814,6.264,2844,7.633,2856,6.25,2875,7.381,3995,5.839,3996,7.836,3997,6.896,4000,6.903,4680,8.155,4685,8.155,4686,8.155,4687,9.647]],["title/classes/ColumnResponse.html",[0,0.229,2957,5.437]],["body/classes/ColumnResponse.html",[0,0.278,2,0.939,3,0.022,4,0.022,5,0.012,7,0.126,27,0.528,29,0.649,30,0.001,31,0.458,32,0.182,33,0.581,34,2.178,47,0.892,95,0.157,101,0.016,103,0.001,104,0.001,127,1.33,145,2.107,165,0.83,364,2.274,376,1.915,467,3.493,469,3.601,475,4.091,618,3.474,966,4.18,1011,4.345,1474,4.309,2784,5.916,2787,6.57,2789,4.31,2856,4.621,2909,5.488,2910,5.735,2911,5.735,2957,10.235,3232,9.648,3658,8.042,3662,7.174,3666,5.794,3668,5.794,4160,10.26,4887,8.165,4888,8.165,4889,8.165,4890,8.165,4891,8.165,4892,8.165,4893,8.165,4894,8.165]],["title/classes/ColumnResponseMapper.html",[0,0.229,2961,5.639]],["body/classes/ColumnResponseMapper.html",[0,0.291,2,0.985,3,0.023,4,0.023,5,0.012,7,0.132,8,1.307,27,0.356,29,0.68,30,0.001,31,0.481,32,0.152,33,0.428,34,1.469,35,1.033,95,0.152,99,1.453,100,2.867,101,0.016,103,0.001,104,0.001,187,1.226,217,1.131,227,1.143,234,2.026,305,2.464,591,3.662,627,3.7,731,3.368,806,3.608,974,5.287,975,6.192,980,6.691,1474,2.907,1487,4.895,1828,4.831,2422,5.223,2697,6.801,2811,5.354,2856,6.726,2957,10.069,2961,9.059,3058,6.348,3232,6.508,3236,5.5,3658,5.425,3662,6.688,3672,6.348,3678,6.904,3679,6.348,3781,6.691,4116,7.482,4118,7.161,4160,9.059,4895,10.835,4896,10.835,4897,7.912,4898,7.482,4899,8.565,4900,8.565,4901,8.565,4902,8.565,4903,8.565]],["title/injectables/ColumnService.html",[105,0.889,3537,5.639]],["body/injectables/ColumnService.html",[0,0.221,3,0.017,4,0.017,5,0.009,7,0.1,8,1.09,10,3.648,12,4.166,26,2.337,27,0.506,29,0.967,30,0.001,31,0.684,32,0.171,33,0.609,34,1.117,35,1.42,36,2.844,47,0.754,49,2.539,55,2.281,59,2.021,83,2.718,95,0.151,99,1.105,101,0.012,103,0.001,104,0.001,105,1.191,107,1.558,111,1.302,112,3.049,127,0.824,187,0.932,215,2.108,216,1.67,217,1.37,221,2.87,227,0.953,234,1.817,591,2.785,592,2.873,734,3.76,883,3.788,1474,3.994,1984,2.785,2570,3.524,2697,7.271,2799,4.378,2861,7.708,3120,4.949,3121,8.642,3305,5.536,3369,9.256,3372,6.176,3378,8.752,3382,5.446,3537,7.554,3772,7.893,3817,10.35,4125,7.893,4127,7.893,4143,5.251,4150,4.308,4898,5.69,4904,6.513,4905,6.513,4906,6.513,4907,9.035,4908,6.513,4909,9.035,4910,6.513,4911,9.035,4912,6.513,4913,9.035,4914,6.513,4915,6.513,4916,6.513,4917,6.513,4918,6.513,4919,6.513,4920,6.513]],["title/classes/ColumnUrlParams.html",[0,0.229,4854,5.892]],["body/classes/ColumnUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,2697,6.185,3772,10.988,3834,5.671,4854,10.237,4921,9.724,4922,9.724]],["title/entities/ColumnboardBoardElement.html",[380,1.41,2696,5.269]],["body/entities/ColumnboardBoardElement.html",[0,0.318,3,0.025,4,0.025,5,0.013,7,0.144,27,0.388,30,0.001,32,0.131,95,0.159,96,2.524,101,0.018,103,0.001,104,0.001,165,0.903,364,1.731,380,2.391,381,3.073,398,2.735,404,1.692,405,2.524,617,5.391,1984,5.285,2620,5.447,2670,8.933,2693,8.286,2695,7.809,2696,8.933,2697,4.93,2698,9.332,2699,8.159,2744,5.742,3022,7.097,4815,10.564,4923,9.34,4924,11.435,4925,9.34,4926,4.307,4927,9.989,4928,8.159]],["title/injectables/CommonCartridgeExportService.html",[105,0.889,4929,5.639]],["body/injectables/CommonCartridgeExportService.html",[0,0.143,3,0.011,4,0.011,5,0.006,7,0.065,8,0.788,26,2.658,27,0.451,29,0.862,30,0.001,31,0.609,32,0.173,33,0.543,35,1.254,36,2.258,39,2.907,47,0.838,95,0.144,99,0.712,101,0.008,103,0,104,0,105,0.861,107,1.004,111,2.587,112,2.584,127,0.827,130,7.529,145,2.07,150,3.598,187,0.601,188,4.363,216,1.483,217,1.585,221,2.312,227,1.184,234,0.681,235,3.698,264,1.777,290,3.771,318,3.509,693,3.565,1474,3.682,1515,6.673,1828,2.913,1910,3.086,2155,6.595,2344,3.742,2675,5.783,2691,4.559,3030,3.383,3031,3.383,3105,4.139,3872,4.467,4530,5.267,4929,5.463,4930,11.219,4931,7.114,4932,4.197,4933,8.023,4934,8.023,4935,5.708,4936,8.023,4937,6.534,4938,8.023,4939,4.197,4940,8.475,4941,8.243,4942,4.197,4943,4.197,4944,8.764,4945,7.258,4946,8.71,4947,4.197,4948,4.197,4949,4.197,4950,6.036,4951,4.197,4952,4.197,4953,6.086,4954,4.197,4955,3.938,4956,6.096,4957,6.534,4958,4.197,4959,6.036,4960,4.139,4961,4.843,4962,4.197,4963,4.197,4964,7.009,4965,2.921,4966,4.197,4967,3.877,4968,3.383,4969,3.698,4970,4.197,4971,5.708,4972,4.197,4973,3.877,4974,4.197,4975,3.279,4976,4.197,4977,3.279,4978,4.197,4979,4.197,4980,4.197,4981,4.197,4982,2.353,4983,4.197,4984,4.197,4985,5.267,4986,6.534,4987,4.197,4988,3.383,4989,4.033,4990,4.197,4991,5.267,4992,4.197,4993,4.197,4994,3.734,4995,3.877,4996,3.111,4997,2.734,4998,2.869,4999,4.197,5000,4.197,5001,9.812,5002,6.534,5003,6.708,5004,6.534,5005,5.708,5006,8.023,5007,2.978,5008,5.708,5009,6.036,5010,6.036,5011,4.637,5012,4.197,5013,2.978,5014,4.197,5015,5.463,5016,5.708,5017,5.708,5018,2.978,5019,6.534,5020,4.197,5021,3.877,5022,4.197,5023,4.197,5024,4.197,5025,4.197,5026,6.534,5027,4.197,5028,6.534,5029,4.197,5030,4.197,5031,3.877,5032,4.197,5033,4.197,5034,4.197]],["title/classes/CommonCartridgeFileBuilder.html",[0,0.229,4944,5.269]],["body/classes/CommonCartridgeFileBuilder.html",[0,0.261,2,0.597,3,0.014,4,0.014,5,0.018,7,0.08,8,0.926,27,0.498,29,0.725,30,0.001,31,0.513,32,0.142,33,0.457,35,1.102,36,1.984,47,0.734,95,0.15,101,0.019,103,0,104,0,111,2.625,112,2.048,127,0.971,144,2.758,165,0.606,214,3.016,215,1.679,216,2.444,217,1.49,227,1.19,234,2.113,329,2.973,334,0.845,595,3.155,667,5.057,701,2.68,1474,2.604,1515,4.928,1925,5.245,2155,6.784,2594,4.029,3187,4.625,4931,8.041,4944,5.995,4945,4.117,4946,5.246,4956,8.868,4969,6.097,4975,5.995,4977,5.995,4985,6.186,4989,6.962,4991,4.181,4998,5.246,5035,7.751,5036,7.859,5037,4.337,5038,9.092,5039,8.416,5040,7.67,5041,8.439,5042,7.089,5043,7.089,5044,4.181,5045,8.439,5046,7.674,5047,5.187,5048,5.187,5049,8.439,5050,5.187,5051,7.636,5052,9.092,5053,5.187,5054,9.408,5055,7.636,5056,5.187,5057,5.187,5058,4.181,5059,4.181,5060,3.941,5061,3.681,5062,5.951,5063,3.486,5064,5.995,5065,6.186,5066,4.052,5067,5.56,5068,4.052,5069,6.416,5070,4.181,5071,4.337,5072,4.337,5073,4.337,5074,8.439,5075,4.337,5076,6.416,5077,4.337,5078,4.337,5079,6.416,5080,4.337,5081,4.337,5082,4.337,5083,4.337,5084,4.337,5085,4.337,5086,4.337,5087,4.337,5088,4.337,5089,4.337,5090,4.337,5091,4.181,5092,4.337,5093,4.337,5094,4.337,5095,4.337,5096,4.337,5097,3.285,5098,4.337,5099,4.337,5100,4.337]],["title/classes/CommonCartridgeLtiResource.html",[0,0.229,5101,5.892]],["body/classes/CommonCartridgeLtiResource.html",[0,0.213,2,0.722,3,0.017,4,0.017,5,0.012,7,0.097,8,1.063,27,0.458,29,0.499,30,0.001,31,0.353,32,0.155,33,0.314,35,1.227,47,0.899,95,0.141,101,0.017,103,0.001,104,0.001,111,1.256,127,0.795,150,2.303,214,2.908,215,2.032,216,1.628,217,0.829,227,1.074,307,3.925,309,3.554,329,1.85,347,1.794,371,1.73,379,2.029,405,1.697,595,3.043,1291,3.747,1474,2.989,1515,5.656,2155,7.412,2344,4.557,3996,4.456,4931,7.788,4945,3.369,4946,6.021,4968,5.062,4969,5.757,5003,7.364,5015,5.25,5035,7.355,5036,7.457,5040,7.73,5060,4.771,5061,4.456,5062,6.627,5063,4.221,5097,6.985,5101,7.694,5102,9.361,5103,5.486,5104,7.947,5105,8.889,5106,10.187,5107,6.28,5108,5.801,5109,6.28,5110,6.28,5111,5.25,5112,5.801,5113,6.28,5114,6.28,5115,5.486,5116,6.28,5117,6.28,5118,6.28,5119,5.486,5120,5.486,5121,4.033,5122,5.486,5123,6.28,5124,6.28,5125,6.28,5126,8.136,5127,6.28,5128,6.28,5129,8.136,5130,6.28,5131,6.28,5132,6.28,5133,5.486,5134,8.808,5135,8.808,5136,8.808,5137,8.808,5138,8.808,5139,8.808,5140,8.808,5141,8.808,5142,8.808,5143,6.28,5144,6.28,5145,6.28,5146,6.28,5147,6.382,5148,8.808,5149,8.808,5150,8.808,5151,8.808,5152,6.28,5153,6.28,5154,6.28,5155,6.28,5156,6.28,5157,5.062,5158,5.486,5159,5.486]],["title/classes/CommonCartridgeManifestElement.html",[0,0.229,5064,5.269]],["body/classes/CommonCartridgeManifestElement.html",[0,0.231,2,0.781,3,0.018,4,0.018,5,0.01,7,0.104,8,1.122,27,0.386,29,0.539,30,0.001,31,0.381,32,0.13,33,0.34,35,0.819,47,0.494,95,0.153,101,0.018,103,0.001,104,0.001,111,2.28,127,1.176,214,3.069,216,2.108,217,0.897,227,0.981,234,2,307,4.243,309,3.842,329,1.999,405,1.834,595,3.211,1291,3.955,1515,6.808,2263,7.523,2594,4.676,4931,7.937,4946,4.64,4969,6.759,4989,7.372,4998,4.64,5015,5.675,5035,6.715,5036,6.808,5039,9.33,5061,4.817,5062,8.498,5063,4.562,5064,7.262,5065,9.628,5067,4.918,5097,7.222,5115,8.121,5119,8.121,5120,8.121,5121,5.97,5122,8.121,5157,7.494,5160,5.303,5161,11.402,5162,10.601,5163,10.533,5164,6.271,5165,6.788,5166,5.93,5167,5.93,5168,8.121,5169,5.93,5170,9.296,5171,6.788,5172,9.296,5173,9.296,5174,9.296,5175,9.296,5176,9.296,5177,6.788,5178,9.296,5179,6.788,5180,6.788,5181,6.788,5182,6.788,5183,9.296,5184,9.296,5185,9.296,5186,9.296,5187,9.296,5188,9.296,5189,6.788,5190,6.788,5191,6.788]],["title/classes/CommonCartridgeMetadataElement.html",[0,0.229,5166,5.892]],["body/classes/CommonCartridgeMetadataElement.html",[0,0.284,2,0.96,3,0.022,4,0.022,5,0.012,7,0.128,8,1.287,27,0.443,29,0.663,30,0.001,31,0.469,32,0.15,33,0.418,35,1.008,47,0.854,59,2.592,95,0.137,101,0.02,103,0.001,104,0.001,127,1.057,214,3.521,215,2.703,216,1.544,227,0.881,405,2.257,595,3.684,1291,4.536,1474,2.834,2263,8.335,3996,5.926,4013,6.346,4931,8.07,4945,4.481,4946,7.289,4969,6.648,4975,6.524,4977,6.524,5035,7.44,5036,7.543,5061,5.926,5062,7.653,5063,5.613,5097,7.838,5133,7.296,5160,6.524,5163,11.432,5164,7.715,5166,9.315,5192,8.352,5193,8.352,5194,8.352,5195,8.352,5196,8.352,5197,8.352,5198,10.663,5199,8.352,5200,8.352,5201,8.352,5202,8.352,5203,8.352,5204,8.352]],["title/classes/CommonCartridgeOrganizationBuilder.html",[0,0.229,5070,5.437]],["body/classes/CommonCartridgeOrganizationBuilder.html",[0,0.281,2,0.661,3,0.015,4,0.015,5,0.017,7,0.088,8,0.998,27,0.44,29,0.657,30,0.001,31,0.464,32,0.136,33,0.414,35,0.694,36,1.797,47,0.771,95,0.155,101,0.02,103,0.001,104,0.001,111,2.409,112,1.289,127,1.047,214,3.2,215,1.861,216,2.28,217,1.545,227,1.234,234,2.068,334,0.911,405,1.554,595,3.348,667,3.884,701,2.008,884,3.908,1474,2.808,1515,5.313,1925,4.299,2155,7.548,2594,4.274,3187,4.986,4931,7.869,4944,4.492,4945,4.439,4946,5.656,4956,9.156,4969,6.356,4975,6.463,4977,6.463,4985,6.669,4989,7.218,4991,4.635,4998,7.245,5035,7.113,5036,7.212,5037,4.808,5038,8.544,5039,7.57,5040,8.053,5041,8.861,5045,6.917,5049,9.389,5051,6.917,5052,9.427,5054,9.941,5055,6.917,5058,4.635,5059,4.635,5060,4.369,5061,4.08,5062,6.314,5063,3.865,5064,6.463,5065,6.669,5066,4.492,5067,5.995,5068,4.492,5069,8.102,5070,6.669,5071,4.808,5072,4.808,5073,4.808,5074,8.861,5075,4.808,5076,6.917,5077,4.808,5078,4.808,5079,6.917,5080,4.808,5081,4.808,5082,4.808,5083,4.808,5084,4.808,5085,4.808,5086,4.808,5087,4.808,5088,4.808,5089,4.808,5090,4.808,5091,4.635,5092,4.808,5093,4.808,5094,4.808,5095,4.808,5096,4.808,5097,3.642,5098,4.808,5099,4.808,5100,4.808,5205,7.643,5206,5.75,5207,5.75,5208,5.75,5209,5.75,5210,5.75,5211,5.75]],["title/classes/CommonCartridgeOrganizationItemElement.html",[0,0.229,5068,5.269]],["body/classes/CommonCartridgeOrganizationItemElement.html",[0,0.282,2,0.955,3,0.022,4,0.022,5,0.012,7,0.128,8,1.282,27,0.441,29,0.659,30,0.001,31,0.466,32,0.149,33,0.415,35,1.001,47,0.852,95,0.15,101,0.02,103,0.001,104,0.001,127,1.05,214,3.507,215,2.686,216,1.534,227,1.121,405,2.243,595,3.669,1291,4.519,1474,3.975,1515,7.521,2594,3.661,3187,7.691,3307,6.691,3996,5.89,4931,7.877,4945,4.453,4956,8.07,4969,6.011,4971,9.278,4989,5.123,4998,8.006,5005,7.251,5035,7.418,5036,7.521,5052,9.953,5062,7.63,5063,5.579,5067,6.014,5068,8.297,5097,7.82,5129,7.667,5157,6.691,5160,6.484,5212,8.3,5213,8.3,5214,8.3,5215,8.3]],["title/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.229,5167,5.892]],["body/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.297,2,1.004,3,0.023,4,0.023,5,0.012,7,0.134,8,1.323,27,0.456,29,0.694,30,0.001,31,0.49,32,0.123,33,0.437,35,1.054,95,0.112,101,0.017,103,0.001,104,0.001,127,1.105,214,3.621,215,2.826,216,1.614,227,0.922,905,3.626,1291,4.666,1515,7.043,3187,6.61,4931,7.764,4969,4.942,4998,8.598,5035,7.595,5036,7.7,5062,8.616,5063,5.869,5097,7.967,5160,6.821,5167,9.581,5168,10.475,5216,8.732,5217,8.067,5218,10.968,5219,8.067,5220,8.732,5221,6.821,5222,8.732,5223,8.067,5224,8.732,5225,8.732,5226,8.732]],["title/classes/CommonCartridgeResourceItemElement.html",[0,0.229,5066,5.269]],["body/classes/CommonCartridgeResourceItemElement.html",[0,0.229,2,0.774,3,0.018,4,0.018,5,0.01,7,0.104,8,1.115,27,0.495,29,0.535,30,0.001,31,0.378,32,0.148,33,0.337,35,1.274,47,0.672,95,0.162,101,0.018,103,0.001,104,0.001,111,2.11,127,0.852,165,0.73,214,3.052,216,1.951,227,1.114,234,1.843,305,1.936,347,1.883,405,2.498,595,2.325,1062,2.938,1291,3.932,2155,7.636,2321,4.452,2344,4.921,3187,7.414,4931,8.279,4956,8.633,4964,8.074,4968,5.426,4969,6.962,5008,5.88,5016,5.88,5017,5.88,5035,7.792,5036,7.9,5040,9.048,5060,5.115,5061,4.777,5062,7.402,5063,4.524,5066,7.22,5067,9.434,5097,7.196,5101,5.88,5102,5.426,5104,8.876,5105,9.159,5106,8.538,5111,5.628,5112,6.218,5160,5.258,5227,8.825,5228,9.243,5229,6.731,5230,6.731,5231,6.731,5232,5.88,5233,7.451,5234,5.88,5235,8.538,5236,7.102,5237,10.555,5238,6.731,5239,6.731,5240,6.731,5241,6.731,5242,6.731,5243,6.731,5244,6.731]],["title/classes/CommonCartridgeResourceWrapperElement.html",[0,0.229,5169,5.892]],["body/classes/CommonCartridgeResourceWrapperElement.html",[0,0.313,2,1.059,3,0.024,4,0.024,5,0.013,7,0.142,8,1.368,27,0.471,29,0.732,30,0.001,31,0.517,32,0.129,33,0.461,35,1.112,95,0.118,101,0.018,103,0.001,104,0.001,127,1.166,214,3.744,215,2.981,216,1.703,227,0.972,1291,4.824,4931,7.912,4969,5.213,5035,7.781,5036,7.888,5062,8.731,5063,6.191,5067,9.288,5097,8.119,5160,7.196,5168,10.731,5169,9.905,5217,8.51,5219,8.51,5245,9.212,5246,11.339,5247,9.212,5248,9.212]],["title/classes/CommonCartridgeWebContentResource.html",[0,0.229,5232,5.892]],["body/classes/CommonCartridgeWebContentResource.html",[0,0.259,2,0.877,3,0.02,4,0.02,5,0.014,7,0.117,8,1.213,27,0.497,29,0.606,30,0.001,31,0.428,32,0.168,33,0.381,35,1.357,47,0.928,95,0.144,101,0.019,103,0.001,104,0.001,127,0.965,214,3.318,215,2.467,216,1.409,227,1.187,347,2.048,371,2.101,405,2.06,595,3.472,1291,4.276,1474,2.587,1515,6.454,2344,5.52,4931,8.149,4945,4.09,4946,6.87,4964,10.441,4967,9.284,4968,6.146,4969,6.363,5003,8.403,5008,6.66,5009,9.284,5010,7.043,5011,5.41,5035,7.868,5036,7.977,5061,5.41,5062,7.325,5063,5.124,5097,7.571,5103,6.66,5104,8.783,5105,9.635,5108,7.043,5111,6.374,5157,6.146,5158,6.66,5159,6.66,5232,8.78,5233,10.014,5249,7.043,5250,7.624,5251,7.624,5252,7.624,5253,7.624]],["title/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.229,5234,5.892]],["body/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.229,2,0.775,3,0.018,4,0.018,5,0.013,7,0.104,8,1.117,27,0.472,29,0.536,30,0.001,31,0.379,32,0.16,33,0.337,35,1.275,47,0.895,95,0.146,101,0.018,103,0.001,104,0.001,111,1.348,127,0.853,150,3.393,214,3.055,215,2.182,216,1.71,217,0.89,227,1.2,307,4.215,309,3.816,329,1.986,347,1.885,371,1.858,405,1.822,595,3.197,1291,3.937,1474,3.14,1515,5.942,2155,7.642,2321,7.881,2344,4.699,2744,3.006,3996,4.785,4931,7.924,4945,3.617,4946,6.325,4968,5.435,4969,5.979,5003,8.832,5015,5.637,5016,5.89,5017,5.89,5035,7.547,5036,7.651,5040,8.027,5060,5.123,5061,4.785,5062,6.883,5063,4.532,5091,7.459,5097,7.202,5103,5.89,5104,8.253,5105,9.165,5111,5.637,5115,8.083,5119,8.083,5120,8.083,5121,5.942,5122,8.083,5126,6.229,5133,5.89,5157,5.435,5158,5.89,5159,5.89,5233,9.605,5234,8.083,5235,10.503,5249,6.229,5254,6.743,5255,6.743,5256,6.743,5257,10.564,5258,6.743,5259,6.743,5260,6.743,5261,6.743,5262,9.253,5263,9.253,5264,6.743,5265,9.253,5266,6.743]],["title/modules/CommonToolModule.html",[425,1.808,5267,4.887]],["body/modules/CommonToolModule.html",[0,0.248,3,0.019,4,0.019,5,0.01,30,0.001,95,0.165,101,0.014,103,0.001,104,0.001,187,1.044,191,4.051,192,2.174,381,2.4,425,2.947,427,2.695,428,2.843,429,2.931,430,2.918,431,2.893,432,4.065,433,4.147,438,5.95,442,3.923,443,2.867,444,2.795,449,3.923,450,3,766,3.134,843,3.183,1545,2.329,1919,3.028,1921,4.824,1945,5.279,1951,8.09,1966,10.069,1977,6.792,1991,3.945,2510,4.619,2767,3.287,3027,4.167,5267,10.227,5268,7.292,5269,7.292,5270,7.292,5271,7.292,5272,10.613,5273,10.613,5274,10.613,5275,10.069,5276,7.292,5277,5.878,5278,7.292,5279,6.37,5280,7.292,5281,7.292,5282,7.292,5283,6.097]],["title/injectables/CommonToolService.html",[105,0.889,5272,5.269]],["body/injectables/CommonToolService.html",[0,0.274,3,0.021,4,0.021,5,0.011,7,0.124,8,1.258,27,0.433,29,0.828,30,0.001,31,0.585,32,0.146,33,0.522,35,1.258,95,0.166,101,0.015,103,0.001,104,0.001,105,1.374,107,1.93,111,2.31,139,7.635,140,7.461,158,6.693,187,1.155,192,2.405,199,3.079,200,3.764,201,6.051,227,1.219,334,0.888,347,2.124,1031,2.585,5272,8.146,5284,10.674,5285,6.503,5286,11.555,5287,10.428,5288,8.067,5289,8.067,5290,8.2,5291,10.428,5292,7.689,5293,11.555,5294,8.067,5295,8.067,5296,8.067,5297,10.428,5298,6.745,5299,7.452,5300,8.067,5301,8.067]],["title/injectables/CommonToolValidationService.html",[105,0.889,5273,5.269]],["body/injectables/CommonToolValidationService.html",[0,0.142,3,0.011,4,0.011,5,0.006,7,0.064,8,0.785,27,0.478,29,0.914,30,0.001,31,0.693,32,0.168,33,0.56,35,1.351,47,0.836,95,0.144,101,0.012,103,0,104,0,105,0.857,107,0.998,111,2.584,116,3.722,136,7.955,139,4.567,140,4.523,144,1.777,145,3.141,148,3.861,158,4.521,165,0.514,181,8.061,187,0.597,192,1.243,195,2.803,196,6.942,199,1.592,200,2.603,201,4.185,209,4.19,217,1.369,227,0.44,234,1.681,264,5.339,279,3.022,281,3.091,290,4.613,298,3.258,305,2.596,310,5.436,312,5.436,314,5.436,320,5.436,323,5.436,324,5.436,325,4.819,329,1.229,347,1.993,368,1.647,369,1.989,371,3.241,494,2.514,503,5.896,511,2.135,558,1.982,627,2.488,728,1.633,806,2.739,846,2.96,1031,1.337,1508,2.361,1989,2.575,2076,2.202,2187,2.803,2298,2.514,2485,1.802,3264,5.436,5273,5.08,5284,10.865,5302,3.258,5303,7.991,5304,6.502,5305,6.502,5306,6.502,5307,6.502,5308,6.502,5309,6.502,5310,6.502,5311,6.502,5312,6.502,5313,12.83,5314,4.171,5315,3.644,5316,6.502,5317,4.171,5318,6.502,5319,12.337,5320,4.171,5321,6.502,5322,4.171,5323,6.502,5324,4.171,5325,6.502,5326,4.171,5327,6.502,5328,12.172,5329,4.171,5330,6.502,5331,4.171,5332,6.502,5333,4.171,5334,4.171,5335,4.171,5336,4.171,5337,4.171,5338,4.171,5339,6.502,5340,4.171,5341,4.171,5342,4.171,5343,4.171,5344,3.853,5345,4.171,5346,2.642,5347,6.502,5348,4.171,5349,4.171,5350,4.171,5351,5.68,5352,6.502,5353,4.171,5354,4.171,5355,4.171,5356,4.171,5357,3.644,5358,4.171,5359,6.502,5360,4.171,5361,3.853,5362,6.502,5363,3.487,5364,3.487,5365,4.171,5366,4.171,5367,3.362,5368,4.171,5369,2.678]],["title/classes/ConsentRequestBody.html",[0,0.229,5370,5.639]],["body/classes/ConsentRequestBody.html",[0,0.284,2,0.67,3,0.015,4,0.015,5,0.008,7,0.09,27,0.514,30,0.001,32,0.174,33,0.673,34,1.432,47,0.854,55,2.147,95,0.125,101,0.011,103,0.001,104,0.001,116,1.885,165,0.66,204,4.149,247,3.312,277,3.342,339,7.902,340,4.696,342,8.527,344,9.45,345,7.625,347,1.701,361,5.869,364,2.293,368,5.111,369,2.152,370,4.317,371,3.798,373,4.408,374,1.861,376,1.366,379,2.457,404,1.512,461,1.924,467,2.865,470,3.518,471,4.536,502,3.641,506,3.795,564,2.162,565,4.408,596,3.427,728,4.174,1035,5.812,1253,2.686,1498,4.221,1510,3.641,1887,7.25,1997,6.523,2116,3.151,2298,7.079,2489,3.329,2507,5.363,3544,4.427,4556,4.275,4638,6.523,5346,3.69,5370,6.982,5371,10.662,5372,9.975,5373,6.982,5374,6.982,5375,6.523,5376,5.825,5377,5.825,5378,6.561,5379,5.825,5380,4.87,5381,7.295,5382,5.578,5383,7.295,5384,7.714,5385,7.295,5386,5.825,5387,5.381,5388,7.714,5389,6.051,5390,9.849,5391,6.345,5392,7.714,5393,5.825,5394,8.329,5395,4.426,5396,5.089,5397,5.089,5398,5.089,5399,5.381,5400,3.853,5401,6.345,5402,6.732,5403,4.551,5404,4.696,5405,4.426,5406,4.87,5407,4.551,5408,5.381,5409,4.87,5410,3.741,5411,5.381,5412,4.426,5413,5.381,5414,5.089,5415,4.87,5416,5.089,5417,5.381,5418,5.289,5419,6.732,5420,5.381]],["title/classes/ConsentResponse.html",[0,0.229,5421,5.437]],["body/classes/ConsentResponse.html",[0,0.335,2,0.567,3,0.013,4,0.013,5,0.007,7,0.076,27,0.536,29,0.392,30,0.001,31,0.277,32,0.181,33,0.683,34,1.689,47,0.965,70,5.284,72,3.47,77,6.681,95,0.126,101,0.009,103,0,104,0,127,0.624,137,7.135,144,2.02,145,1.907,150,2.711,165,0.584,199,3.384,339,7.298,346,7.442,347,1.506,349,4.89,355,4.354,356,9.214,357,7.745,359,2.563,361,7.166,364,2.369,367,5.329,368,3.889,369,2.325,370,3.693,371,3.485,374,1.575,376,1.157,379,2.721,461,2.551,467,3.469,470,4.148,471,5.44,522,5.617,1013,2.262,1862,4.069,1887,6.078,1932,3.784,2008,6.323,2282,4.968,2298,5.934,2489,5.066,3400,3.433,3544,4.767,4082,3.976,4216,8.404,5382,5.627,5415,6.18,5418,6.237,5421,9.255,5422,4.933,5423,8.19,5424,8.19,5425,7.412,5426,7.412,5427,7.412,5428,7.147,5429,7.392,5430,4.933,5431,9.672,5432,4.933,5433,7.745,5434,7.392,5435,4.933,5436,7.392,5437,6.18,5438,4.933,5439,7.412,5440,8.19,5441,4.933,5442,4.933,5443,7.392,5444,6.457,5445,4.933,5446,7.392,5447,4.933,5448,7.412,5449,4.933,5450,7.392,5451,5.617,5452,8.602,5453,6.618,5454,4.933,5455,4.933,5456,4.933,5457,6.829,5458,6.829,5459,4.933,5460,4.933,5461,4.309,5462,4.557,5463,4.557,5464,4.557]],["title/classes/ConsentSessionResponse.html",[0,0.229,5465,5.639]],["body/classes/ConsentSessionResponse.html",[0,0.346,2,0.892,3,0.021,4,0.021,5,0.011,7,0.119,27,0.5,29,0.616,30,0.001,31,0.636,32,0.169,33,0.653,34,1.744,47,1.011,95,0.13,101,0.015,103,0.001,104,0.001,127,0.981,145,3.458,165,0.803,339,7.533,361,6.877,364,2.101,367,4.892,374,2.477,376,1.819,379,2.612,467,3.234,471,4.325,1013,4.66,1596,8.046,1609,7.165,1887,6.274,3544,4.996,4216,9.091,5431,6.775,5465,8.498,5466,12.492,5467,7.165,5468,8.615,5469,9.39,5470,12.033,5471,7.756,5472,5.022,5473,9.39,5474,7.756,5475,7.756,5476,7.756,5477,7.756,5478,7.756]],["title/modules/ConsoleWriterModule.html",[425,1.808,3533,5.269]],["body/modules/ConsoleWriterModule.html",[0,0.324,3,0.025,4,0.025,5,0.013,30,0.001,95,0.149,101,0.018,103,0.001,104,0.001,187,1.365,425,3.343,427,3.526,428,3.719,429,3.835,430,3.818,431,3.784,432,4.611,433,4.704,442,4.656,443,3.751,444,3.657,3448,9.478,3458,6.042,3533,10.684,5479,9.539,5480,9.539,5481,9.539,5482,8.812,5483,7.69,5484,9.539,5485,8.333]],["title/injectables/ConsoleWriterService.html",[105,0.889,3448,4.533]],["body/injectables/ConsoleWriterService.html",[0,0.331,3,0.033,4,0.026,5,0.014,7,0.15,8,1.414,27,0.404,29,0.772,30,0.001,31,0.546,32,0.136,33,0.486,35,1.173,47,0.915,95,0.125,101,0.019,103,0.001,104,0.001,105,1.544,107,2.327,148,3.625,187,1.392,731,3.824,1298,4.593,1299,4.537,1300,4.537,2880,5.604,3448,7.876,3458,6.159,5482,10.825,5483,9.446,5486,9.724,5487,11.718,5488,9.724,5489,9.724]],["title/injectables/ContentElementFactory.html",[105,0.889,3540,5.437]],["body/injectables/ContentElementFactory.html",[0,0.228,3,0.018,4,0.018,5,0.013,7,0.103,8,1.114,27,0.472,29,0.534,30,0.001,31,0.377,32,0.167,33,0.336,34,1.809,35,1.37,49,2.62,83,3.699,95,0.165,101,0.013,103,0.001,104,0.001,105,1.217,107,1.608,111,2.602,187,0.962,217,1.5,227,1.198,234,2.203,305,1.933,307,4.201,309,5.968,329,1.979,591,4.509,592,4.651,667,4.334,734,3.879,2344,2.777,2586,3.547,2594,5.991,2799,7.088,2864,6.015,2867,5.928,2870,5.771,2878,8.501,2879,4.981,2880,4.415,2881,3.063,2882,4.004,3218,4.445,3239,4.201,3242,4.912,3245,3.547,3523,5.87,3540,7.442,3774,6.554,4150,6.976,5147,8.226,5490,11.901,5491,6.72,5492,11.354,5493,11.354,5494,11.354,5495,9.232,5496,6.72,5497,10.488,5498,6.72,5499,6.72,5500,6.72,5501,6.72,5502,6.72,5503,6.72,5504,4.594,5505,6.72,5506,4.594,5507,6.72,5508,4.594,5509,6.72,5510,6.72,5511,9.232,5512,5.106,5513,5.87]],["title/classes/ContentElementResponseFactory.html",[0,0.229,4049,5.639]],["body/classes/ContentElementResponseFactory.html",[0,0.273,2,0.924,3,0.021,4,0.021,5,0.015,7,0.124,8,1.255,27,0.432,29,0.638,30,0.001,31,0.451,32,0.162,33,0.402,35,0.97,95,0.169,99,1.363,100,2.689,101,0.015,103,0.001,104,0.001,111,2.306,144,2.195,165,0.822,187,1.15,217,1.374,227,0.848,234,1.303,305,2.311,329,2.367,627,4.029,975,5.944,1828,4.637,2062,7.422,2071,7.422,2092,4.547,2588,9.009,2594,5.888,2595,8.384,2597,9.642,2598,6.198,2879,5.955,2880,3.842,2881,3.663,2882,4.788,3218,5.315,3673,7.884,4049,8.696,5514,11.533,5515,10.654,5516,10.401,5517,10.401,5518,10.401,5519,8.035,5520,6.718,5521,7.019,5522,7.019,5523,7.019,5524,10.401,5525,8.035,5526,8.035,5527,8.035,5528,7.019,5529,8.035]],["title/injectables/ContentElementService.html",[105,0.889,3538,5.125]],["body/injectables/ContentElementService.html",[0,0.207,3,0.016,4,0.016,5,0.009,7,0.094,8,1.039,10,3.477,12,3.97,26,2.268,27,0.495,29,0.946,30,0.001,31,0.669,32,0.179,33,0.596,34,1.043,35,1.384,36,2.804,55,2.198,95,0.153,99,1.031,101,0.012,103,0.001,104,0.001,105,1.135,107,1.455,111,1.999,112,3.019,127,1.09,187,0.87,216,1.848,217,1.436,221,2.808,227,0.909,234,1.396,305,1.749,883,3.609,982,3.046,1984,2.6,2344,4.493,2570,3.29,2594,5.614,2686,3.235,2856,6.932,2951,5.956,3120,4.62,3121,8.454,3305,5.371,3318,5.312,3369,9.079,3372,5.886,3378,8.492,3382,5.084,3538,6.542,3540,9.875,3774,6.275,4127,7.521,4143,4.901,4186,4.901,4204,10.042,5497,11.921,5528,5.312,5530,11.316,5531,6.08,5532,6.08,5533,6.08,5534,8.61,5535,6.08,5536,8.61,5537,6.08,5538,8.61,5539,6.08,5540,6.08,5541,7.431,5542,7.431,5543,7.431,5544,6.08,5545,6.08,5546,5.312,5547,6.08,5548,6.08,5549,6.08,5550,6.08,5551,6.08,5552,6.08,5553,6.08,5554,4.406,5555,6.08,5556,6.08,5557,6.08,5558,6.08]],["title/classes/ContentElementUpdateVisitor.html",[0,0.229,5546,5.892]],["body/classes/ContentElementUpdateVisitor.html",[0,0.199,2,0.673,3,0.016,4,0.016,5,0.008,7,0.09,8,1.011,27,0.532,29,1.002,30,0.001,31,0.708,32,0.184,33,0.631,35,1.495,95,0.126,99,0.992,101,0.011,103,0.001,104,0.001,111,2.352,127,0.74,148,4.141,165,0.662,214,2.766,216,1.809,234,0.949,305,1.683,469,2.58,806,4.122,982,2.931,2344,4.672,2594,5.771,2598,5.429,2697,5.968,2802,5.897,2848,7.318,2849,7.318,2850,7.318,2851,7.318,2852,7.318,2853,7.318,2854,7.318,2855,7.004,2856,6.398,2858,7.004,2860,7.004,2861,6.978,2863,7.004,2864,7.366,2866,7.004,2867,7.26,2869,7.004,2870,7.067,2873,6.678,2881,2.667,2951,3.486,3415,6.86,5530,11.965,5541,6.689,5542,6.689,5543,6.689,5546,7.318,5559,5.851,5560,8.377,5561,8.377,5562,8.187,5563,8.377,5564,8.377,5565,5.851,5566,3.932,5567,5.851,5568,5.851,5569,5.851,5570,5.851,5571,5.851,5572,5.851,5573,7.738,5574,5.851,5575,5.405,5576,5.851,5577,5.851,5578,5.851,5579,5.405,5580,5.851,5581,5.851,5582,5.405,5583,5.851,5584,8.377,5585,5.405,5586,5.851,5587,5.405,5588,5.851,5589,5.851,5590,5.851,5591,5.405,5592,5.851]],["title/classes/ContentElementUrlParams.html",[0,0.229,5593,5.892]],["body/classes/ContentElementUrlParams.html",[0,0.397,2,1.113,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.004,47,0.85,95,0.15,101,0.018,103,0.001,104,0.001,165,0.923,364,1.793,368,4.614,369,2.576,370,3.897,371,3.22,374,3.091,376,2.269,379,2.23,467,3.14,1000,4.996,2594,5.153,3834,5.643,5593,10.207,5594,11.684,5595,8.939,5596,11.595,5597,8.939]],["title/classes/ContextExternalTool.html",[0,0.229,140,3.817]],["body/classes/ContextExternalTool.html",[0,0.242,2,0.818,3,0.019,4,0.019,5,0.01,7,0.109,8,1.158,27,0.54,29,0.964,30,0.001,31,0.399,32,0.179,33,0.607,34,1.863,35,0.858,47,0.882,55,2.669,95,0.156,101,0.018,103,0.001,104,0.001,127,0.9,140,5.43,165,0.758,181,7.363,192,2.12,194,4.633,199,2.715,200,4.517,201,3.724,214,3.168,227,0.751,334,0.783,404,1.738,405,2.593,595,2.457,596,2.159,1939,6.71,4072,4.704,5292,7.455,5598,8.126,5599,11.356,5600,5.556,5601,9.224,5602,5.824,5603,8.833,5604,8.833,5605,9.719,5606,8.864,5607,7.112,5608,7.112,5609,7.112,5610,9.371,5611,7.112,5612,5.153,5613,7.112,5614,5.556,5615,5.047,5616,5.404,5617,6.57,5618,6.57,5619,6.57,5620,6.57,5621,4.505,5622,4.862,5623,4.704,5624,5.153,5625,6.809,5626,5.271]],["title/injectables/ContextExternalToolAuthorizableService.html",[105,0.889,5627,5.437]],["body/injectables/ContextExternalToolAuthorizableService.html",[0,0.293,3,0.023,4,0.023,5,0.012,7,0.133,8,1.313,12,5.017,26,2.612,27,0.452,29,0.864,30,0.001,31,0.611,32,0.153,33,0.544,34,1.479,35,1.04,36,2.364,40,5.236,95,0.166,99,1.462,101,0.016,103,0.001,104,0.001,105,1.434,107,2.062,112,2.673,127,1.091,140,7.085,187,1.234,200,4.294,209,4.103,214,2.846,215,2.789,216,1.593,217,1.138,221,2.031,227,0.91,450,3.546,1935,8.77,2485,3.723,2767,3.886,3117,7.963,5274,10.298,5598,7.451,5627,8.77,5628,10.413,5629,7.963,5630,8.62,5631,8.62,5632,8.62]],["title/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.229,5633,5.639]],["body/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.309,2,1.045,3,0.024,4,0.024,5,0.013,7,0.14,27,0.467,29,0.722,30,0.001,31,0.51,32,0.171,33,0.455,95,0.144,101,0.017,103,0.001,104,0.001,127,1.15,145,2.345,163,4.134,165,0.888,199,3.469,200,4.156,209,4.391,364,1.684,376,2.131,467,3.022,1006,6.448,1009,6.425,1011,4.835,1026,5.048,1379,7.358,2171,5.482,2600,5.329,5633,9.4,5634,11.279,5635,10.914,5636,8.783,5637,8.394]],["title/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.229,5635,5.437]],["body/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.249,2,0.842,3,0.019,4,0.019,5,0.01,7,0.113,26,2.557,27,0.535,29,0.934,30,0.001,31,0.66,32,0.184,33,0.551,47,0.855,55,2.151,95,0.141,99,1.241,101,0.014,103,0.001,104,0.001,127,0.926,145,1.888,165,0.773,200,4.262,209,4.504,364,2.336,375,4.469,376,1.716,467,3.597,1011,3.894,1508,4.142,2136,2.929,2171,5.694,2600,5.71,4945,5.911,5623,4.841,5634,12.086,5635,9.88,5638,6.761,5639,8.607,5640,6.235,5641,7.983,5642,9.036,5643,9.782,5644,6.761,5645,6.761,5646,6.761,5647,9.187,5648,6.761,5649,6.761,5650,6.393,5651,6.119,5652,6.761,5653,7.319,5654,7.319,5655,6.761,5656,4.768,5657,6.761,5658,6.761,5659,5.717,5660,6.761]],["title/classes/ContextExternalToolContextParams.html",[0,0.229,5661,5.639]],["body/classes/ContextExternalToolContextParams.html",[0,0.374,2,1.009,3,0.023,4,0.023,5,0.012,7,0.135,27,0.457,30,0.001,32,0.154,47,0.8,95,0.154,101,0.017,103,0.001,104,0.001,145,2.263,165,0.869,197,8.076,198,4.194,200,4.313,209,4.136,316,7.07,364,2.038,368,4.975,369,2.777,370,3.668,371,3.471,374,2.801,376,2.056,467,3.229,1000,4.702,1044,4.304,2577,8.612,4714,7.16,5598,7.511,5661,9.195,5662,9.686,5663,8.77,5664,7.416,5665,7.661,5666,8.77,5667,8.77,5668,8.77,5669,8.77,5670,8.77,5671,7.661]],["title/entities/ContextExternalToolEntity.html",[380,1.41,5672,5.269]],["body/entities/ContextExternalToolEntity.html",[0,0.237,3,0.019,4,0.019,5,0.01,7,0.107,27,0.517,29,0.916,30,0.001,32,0.175,33,0.474,47,0.904,55,2.365,95,0.155,96,1.885,101,0.018,103,0.001,104,0.001,165,0.748,192,2.08,199,2.663,200,4.49,209,2.401,240,4.054,334,0.768,364,2.304,369,2.542,370,2.327,380,1.98,381,2.296,386,3.987,398,2.043,399,3.708,402,2.87,404,1.263,405,1.885,406,2.235,1608,5.17,1925,4.922,4287,4.951,4293,5.124,4294,4.204,4714,6.872,4926,4.959,5292,6.726,5598,7.951,5602,5.778,5621,4.419,5622,4.769,5623,4.614,5624,5.055,5625,4.951,5626,5.17,5664,7.119,5672,7.398,5673,11.75,5674,5.624,5675,9.642,5676,6.976,5677,10.075,5678,6.976,5679,6.976,5680,9.162,5681,6.976,5682,8.356,5683,6.976,5684,6.976,5685,5.833,5686,4.545,5687,7.918,5688,6.445,5689,6.445,5690,6.445,5691,6.094,5692,5.833,5693,5.624,5694,5.833]],["title/classes/ContextExternalToolFactory.html",[0,0.229,5695,6.23]],["body/classes/ContextExternalToolFactory.html",[0,0.159,2,0.536,3,0.012,4,0.012,5,0.007,7,0.072,8,0.855,27,0.531,29,1.032,30,0.001,31,0.701,32,0.185,33,0.616,34,1.47,35,1.434,47,0.844,49,1.818,55,2.477,59,3.363,95,0.139,96,1.26,97,1.984,101,0.009,103,0,104,0,127,0.59,138,3.077,140,2.64,144,3.313,145,2.211,148,1.443,165,0.56,181,4.488,185,4.824,188,1.766,197,3.135,200,2.792,201,2.443,209,1.605,216,1.31,217,0.936,227,0.748,234,1.149,264,1.975,316,3.76,329,3.419,359,2.457,366,2.567,379,1.975,380,1.792,381,2.332,404,1.283,538,3.177,596,3.838,627,2.206,660,6.959,661,4.566,662,5.366,665,3.973,666,5.366,667,5.449,668,3.973,669,3.973,670,3.973,671,3.901,672,4.355,673,4.804,674,6.334,675,5.667,676,6.852,677,2.64,682,2.615,683,3.973,684,2.64,685,5.013,686,5.223,687,4.44,688,5.052,689,3.936,690,2.615,691,2.443,692,4.038,693,2.545,694,2.502,695,2.615,696,4.936,697,2.64,698,4.718,699,2.615,700,7.004,701,4.053,702,6.507,703,2.64,704,3.501,705,2.615,706,2.64,707,2.615,708,2.64,709,2.615,712,2.615,713,5.967,714,2.64,715,2.615,716,3.973,717,3.901,718,3.973,719,2.64,720,2.523,721,2.502,722,2.057,723,2.615,724,2.615,725,2.615,726,2.64,727,2.64,728,1.826,729,2.615,730,2.64,731,2.786,732,2.615,733,2.64,735,2.692,736,2.779,737,2.779,905,2.942,4150,3.085,4227,3.731,4335,6.081,4337,3.379,5292,2.72,5601,3.31,5602,2.337,5603,5.384,5605,3.899,5695,7.917,5696,7.086,5697,3.76,5698,7.086,5699,7.086,5700,4.664,5701,6.935,5702,3.643,5703,3.457,5704,3.643,5705,4.664]],["title/classes/ContextExternalToolIdParams.html",[0,0.229,5706,5.269]],["body/classes/ContextExternalToolIdParams.html",[0,0.396,2,1.108,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,47,0.847,95,0.149,101,0.018,103,0.001,104,0.001,165,0.92,200,4.24,209,4.01,364,1.784,368,4.601,369,2.568,370,3.212,371,3.21,374,3.076,376,2.258,467,3.131,478,6.834,1000,4.982,5598,7.283,5662,9.392,5706,9.101,5707,9.284,5708,8.413,5709,8.413]],["title/classes/ContextExternalToolIdParams-1.html",[0,0.191,905,2.329,5706,4.381]],["body/classes/ContextExternalToolIdParams-1.html",[0,0.399,2,1.121,3,0.026,4,0.026,5,0.014,7,0.15,26,2.627,27,0.405,30,0.001,32,0.137,95,0.162,99,1.653,101,0.019,103,0.001,104,0.001,165,0.927,200,3.823,209,4.04,364,1.806,374,3.113,376,2.286,467,3.154,478,6.917,1000,5.018,2600,5.122,5706,9.168,5707,9.332,5710,10.841,5711,7.062,5712,7.857]],["title/modules/ContextExternalToolModule.html",[425,1.808,5713,5.437]],["body/modules/ContextExternalToolModule.html",[0,0.256,3,0.02,4,0.02,5,0.011,30,0.001,95,0.166,101,0.014,103,0.001,104,0.001,187,1.079,192,2.247,200,3.876,209,3.434,425,3.189,427,2.786,428,2.939,429,3.03,430,3.017,431,2.99,432,4.132,433,4.216,438,6.006,442,4.01,443,2.964,444,2.89,449,4.01,766,3.24,1545,2.408,1887,4.653,1919,3.13,1945,5.397,1977,6.943,1991,4.078,1993,5.153,1994,6.964,2510,4.775,2767,3.398,4969,4.266,5267,9.214,5277,6.077,5598,4.712,5627,11.007,5713,11.367,5714,7.538,5715,7.538,5716,7.538,5717,7.538,5718,9.663,5719,9.934,5720,9.894,5721,11.416,5722,7.538]],["title/classes/ContextExternalToolPostParams.html",[0,0.229,5723,5.639]],["body/classes/ContextExternalToolPostParams.html",[0,0.375,2,0.845,3,0.019,4,0.019,5,0.01,7,0.113,27,0.525,29,0.877,30,0.001,32,0.186,33,0.589,47,0.918,55,2.156,95,0.157,101,0.014,103,0.001,104,0.001,165,0.775,192,2.19,197,7.419,198,3.513,200,4.5,209,4.437,364,2.339,369,1.619,374,2.346,375,4.477,376,1.722,467,3.298,470,4.131,471,4.696,1000,4.719,1044,3.605,2489,4.198,3436,6.958,4714,6.577,5292,6.437,5418,6.211,5598,8.056,5602,5.53,5662,10.39,5664,6.813,5671,6.417,5701,7.997,5723,8.198,5724,6.786,5725,7.904,5726,7.346,5727,7.346,5728,7.346,5729,5.322,5730,7.346,5731,9.324,5732,6.141,5733,6.141,5734,6.141,5735,7.346,5736,6.786,5737,6.786,5738,7.346,5739,4.859,5740,5.66,5741,5.444]],["title/interfaces/ContextExternalToolProps.html",[334,0.742,5605,5.639]],["body/interfaces/ContextExternalToolProps.html",[0,0.268,3,0.021,4,0.021,5,0.011,7,0.121,29,0.998,30,0.001,32,0.181,33,0.606,34,2.078,47,0.954,55,2.762,95,0.161,101,0.02,103,0.001,104,0.001,140,4.467,165,0.812,181,7.957,192,2.353,194,5.142,199,3.013,200,3.725,201,4.133,214,2.606,227,0.833,334,0.869,336,1.923,404,1.429,405,2.133,1939,5.934,4072,5.221,5292,7.649,5598,4.934,5599,6.895,5600,6.166,5601,9.626,5602,6.293,5603,9.545,5604,5.997,5605,9.56,5610,10.127,5614,6.166,5615,5.601,5616,5.997,5617,7.291,5618,7.291,5619,7.291,5620,7.291,5621,4.999,5622,5.396,5623,5.221,5624,5.719,5625,7.296,5626,5.85]],["title/injectables/ContextExternalToolRepo.html",[105,0.889,5274,5.269]],["body/injectables/ContextExternalToolRepo.html",[0,0.126,3,0.01,4,0.01,5,0.005,7,0.057,8,0.714,10,2.388,12,2.728,18,2.923,26,2.368,27,0.533,29,1.025,30,0.001,31,0.715,32,0.184,33,0.637,34,1.689,35,1.526,36,2.605,40,2.847,47,0.537,95,0.156,96,1.598,97,1.574,101,0.007,103,0,104,0,105,0.779,107,0.885,111,2.507,112,2.857,116,2.391,127,0.468,140,6.265,148,1.144,158,1.853,165,0.292,187,0.53,197,6.946,199,2.258,200,4.005,201,3.097,216,1.093,217,1.462,221,1.394,227,1.198,234,1.676,277,2.957,305,1.701,307,3.697,309,3.347,316,4.768,329,1.742,359,2.051,380,1.93,381,1.217,398,1.083,404,1.071,450,1.522,529,2.609,595,1.278,596,3.64,661,3.113,878,4.117,884,2.794,885,4.593,915,2.036,935,3.093,945,3.232,1052,3.44,1053,3.744,1545,1.182,1608,2.742,1857,3.16,2092,2.094,2180,2.343,2383,8.493,2385,4.197,2386,4.197,2387,4.197,2388,4.197,2389,4.117,2390,4.117,2391,4.197,2392,4.117,2393,4.197,2394,2.68,2395,4.824,2397,4.285,2398,2.625,2400,4.824,2401,2.625,2403,2.625,2405,2.447,2406,4.197,2407,2.625,2409,2.625,2411,4.197,2415,4.197,2417,3.975,2418,4.117,2420,2.625,2422,2.256,2423,2.256,2424,2.625,2426,2.625,2428,2.625,2429,2.625,2435,2.486,2446,2.625,2447,4.384,2468,4.945,2482,3.232,2485,1.598,4227,1.273,4355,2.376,4533,3.565,4628,3.912,4630,3.074,4714,2.204,5274,4.62,5292,3.449,5601,6.551,5602,2.963,5603,4.494,5610,5.957,5664,2.283,5672,8.869,5675,4.945,5677,9.028,5682,2.68,5686,3.853,5687,8.231,5701,2.68,5704,5.773,5742,9.918,5743,3.232,5744,5.464,5745,5.915,5746,5.915,5747,5.915,5748,3.699,5749,5.464,5750,9.547,5751,3.699,5752,8.6,5753,5.915,5754,3.699,5755,5.464,5756,3.699,5757,4.945,5758,3.417,5759,3.699,5760,5.915,5761,3.699,5762,5.915,5763,3.699,5764,3.699,5765,3.699,5766,2.68,5767,2.68,5768,2.68,5769,2.68,5770,2.68,5771,2.68,5772,2.68,5773,2.68,5774,2.68,5775,3.699,5776,3.699,5777,3.699,5778,2.575,5779,4.768,5780,2.982,5781,3.232,5782,2.811,5783,3.699,5784,3.449,5785,3.417,5786,2.625,5787,5.915,5788,3.699,5789,3.699,5790,3.699,5791,3.699,5792,3.699,5793,3.417,5794,3.699,5795,3.699,5796,3.417,5797,3.699,5798,3.417,5799,3.417,5800,3.699,5801,3.699,5802,3.699,5803,3.699,5804,3.699,5805,3.699,5806,3.417,5807,3.417,5808,5.915,5809,5.915]],["title/classes/ContextExternalToolRequestMapper.html",[0,0.229,5810,5.892]],["body/classes/ContextExternalToolRequestMapper.html",[0,0.271,2,0.917,3,0.021,4,0.021,5,0.011,7,0.123,8,1.249,27,0.43,29,0.913,30,0.001,31,0.645,32,0.161,33,0.518,34,1.775,35,1.249,95,0.156,101,0.015,103,0.001,104,0.001,111,2.297,144,2.178,181,7.277,192,2.376,194,5.193,200,4.342,209,3.955,227,1.212,367,3.836,627,4.02,982,3.993,5292,4.649,5598,7.182,5601,5.656,5602,3.993,5603,6.057,5701,5.776,5723,10.167,5731,9.575,5741,5.908,5778,5.548,5810,9.039,5811,10.613,5812,6.426,5813,10.348,5814,10.037,5815,10.348,5816,7.971,5817,9.606,5818,6.963,5819,7.971,5820,8.651,5821,6.664,5822,7.971,5823,7.971,5824,7.971,5825,7.971,5826,7.971,5827,7.364,5828,6.963,5829,6.664,5830,6.963]],["title/classes/ContextExternalToolResponse.html",[0,0.229,5831,5.437]],["body/classes/ContextExternalToolResponse.html",[0,0.23,2,0.778,3,0.018,4,0.018,5,0.01,7,0.104,27,0.542,29,0.904,30,0.001,31,0.38,32,0.185,33,0.597,34,1.815,47,0.959,55,2.039,95,0.136,101,0.013,103,0.001,104,0.001,127,0.856,144,1.849,145,1.746,165,0.733,192,2.017,197,8.018,198,3.235,200,4.547,329,1.993,364,2.381,375,4.839,376,1.586,467,3.578,618,2.878,1011,3.6,1016,2.415,1031,2.168,2914,4.344,4714,6.306,5292,6.172,5598,8.243,5602,5.302,5621,4.285,5623,4.475,5625,4.801,5640,5.989,5656,4.408,5662,10.631,5664,6.532,5691,5.91,5693,5.454,5701,7.668,5741,5.014,5831,9.616,5832,5.91,5833,7.754,5834,8.102,5835,5.91,5836,5.91,5837,5.91,5838,5.91,5839,8.895,5840,5.91,5841,5.91,5842,5.91,5843,5.285,5844,6.25,5845,6.765,5846,6.765,5847,6.765,5848,6.765,5849,5.91,5850,6.25,5851,5.91]],["title/classes/ContextExternalToolResponseMapper.html",[0,0.229,5852,5.892]],["body/classes/ContextExternalToolResponseMapper.html",[0,0.267,2,0.904,3,0.021,4,0.021,5,0.011,7,0.121,8,1.237,27,0.426,29,0.906,30,0.001,31,0.641,32,0.144,33,0.513,34,1.349,35,1.237,95,0.146,101,0.015,103,0.001,104,0.001,111,2.282,140,7.101,144,2.148,192,2.344,200,4.269,209,3.929,217,1.507,227,1.204,234,1.663,313,6.868,315,7.263,627,4.005,974,4.853,980,6.142,982,3.939,2485,3.396,4533,7.29,4714,4.685,5292,4.585,5598,7.134,5602,3.939,5664,4.853,5701,5.697,5731,9.533,5741,5.827,5811,10.543,5814,9.97,5818,6.868,5820,8.574,5829,6.573,5830,6.868,5831,10.114,5839,10.381,5852,8.959,5853,10.255,5854,10.255,5855,7.263,5856,6.338,5857,6.338,5858,6.868,5859,7.862,5860,7.862,5861,7.862,5862,7.862]],["title/injectables/ContextExternalToolRule.html",[105,0.889,1955,5.639]],["body/injectables/ContextExternalToolRule.html",[0,0.245,3,0.019,4,0.019,5,0.01,7,0.111,8,1.169,27,0.454,29,0.869,30,0.001,31,0.614,32,0.153,33,0.547,35,1.169,95,0.161,101,0.014,103,0.001,104,0.001,105,1.277,107,1.726,116,4.064,127,0.913,140,7.381,187,1.033,199,4.175,200,4.091,201,3.778,214,2.382,215,2.334,216,1.334,217,0.953,227,1.022,347,2.558,380,2.791,461,3.076,806,4.608,1862,6.436,1890,7.954,1928,7.919,1955,8.099,1989,5.979,2033,4.7,2056,6.511,3352,6.511,3353,4.931,3356,6.408,3358,4.931,3359,4.849,3360,6.622,3361,7.361,5672,10.32,5686,4.7,5704,7.568,5863,11.692,5864,6.664,5865,6.664,5866,6.664,5867,6.664,5868,7.019,5869,7.214,5870,7.214]],["title/classes/ContextExternalToolScope.html",[0,0.229,5752,5.892]],["body/classes/ContextExternalToolScope.html",[0,0.216,2,0.729,3,0.017,4,0.017,5,0.009,7,0.098,8,1.07,26,2.715,27,0.534,29,0.959,30,0.001,31,0.678,32,0.18,33,0.604,34,1.754,35,1.457,95,0.142,99,1.075,101,0.012,103,0.001,104,0.001,111,2.414,144,1.732,145,3.513,148,1.961,165,0.7,197,7.442,200,3.933,227,1.169,277,5.142,329,1.867,347,2.083,404,1.606,450,2.607,529,2.796,596,3.538,2432,6.093,4714,6.093,5664,6.311,5672,4.952,5675,5.3,5686,4.13,5701,7.408,5703,4.698,5704,4.952,5742,10.765,5752,11.371,5871,5.538,5872,6.061,5873,6.061,5874,6.061,5875,8.866,5876,8.866,5877,8.866,5878,8.866,5879,6.061,5880,6.061,5881,4.412,5882,4.333,5883,4.412,5884,4.412,5885,8.866,5886,6.339,5887,8.866,5888,6.339,5889,8.866,5890,6.339,5891,8.866,5892,6.339,5893,4.333,5894,6.061,5895,4.412,5896,4.333,5897,4.412,5898,4.333,5899,7.569]],["title/classes/ContextExternalToolSearchListResponse.html",[0,0.229,5900,5.892]],["body/classes/ContextExternalToolSearchListResponse.html",[0,0.31,2,1.05,3,0.024,4,0.024,5,0.013,7,0.14,27,0.468,29,0.725,30,0.001,31,0.512,32,0.172,33,0.457,95,0.145,101,0.017,103,0.001,104,0.001,127,1.155,145,2.355,163,4.139,165,0.891,199,3.485,200,4.415,209,4.211,364,1.691,376,2.14,467,3.03,1005,9.067,1006,6.478,1009,6.443,1011,4.857,1026,5.07,5598,7.648,5636,8.808,5662,9.862,5831,10.924,5900,9.85,5901,7.974]],["title/injectables/ContextExternalToolService.html",[105,0.889,5720,4.887]],["body/injectables/ContextExternalToolService.html",[0,0.212,3,0.017,4,0.017,5,0.009,7,0.096,8,1.057,26,2.573,27,0.513,29,0.98,30,0.001,31,0.692,32,0.173,33,0.617,35,1.449,36,2.818,95,0.149,99,1.057,101,0.012,103,0.001,104,0.001,105,1.154,107,1.491,112,3.073,127,0.788,140,7.602,187,0.892,199,2.379,200,4.445,209,3.015,215,2.016,216,1.152,217,1.529,221,2.907,227,1.16,450,2.563,529,2.748,2485,2.691,5274,9.381,5285,5.023,5598,7.871,5601,8.521,5603,4.735,5628,11,5629,5.756,5641,6.347,5701,4.515,5707,4.618,5720,6.347,5750,10.152,5778,4.337,5821,5.21,5902,8.76,5903,7.652,5904,8.76,5905,8.76,5906,8.76,5907,8.76,5908,6.231,5909,8.76,5910,6.231,5911,8.76,5912,6.231,5913,8.76,5914,6.231,5915,8.76,5916,5.756,5917,8.76,5918,5.756,5919,8.76,5920,6.231,5921,10.115,5922,6.231,5923,6.231,5924,8.76,5925,6.231,5926,8.76,5927,6.231,5928,6.231]],["title/injectables/ContextExternalToolUc.html",[105,0.889,5929,5.639]],["body/injectables/ContextExternalToolUc.html",[0,0.159,3,0.012,4,0.012,5,0.007,7,0.072,8,0.859,26,2.857,27,0.469,29,0.897,30,0.001,31,0.634,32,0.163,33,0.565,34,1.221,35,1.311,36,2.681,39,3.254,47,0.625,95,0.153,99,0.796,101,0.009,103,0,104,0,105,0.938,107,1.122,111,2.325,112,2.954,127,0.901,140,7.536,187,0.672,197,6.452,198,2.243,199,4.439,200,4.265,209,3.739,216,1.908,217,1.717,221,2.983,227,1.146,234,1.557,461,1.982,524,2.765,766,2.016,843,3.106,1052,3.505,1053,4.257,1062,3.106,1545,1.498,1862,5.681,1868,2.971,1952,6.056,2485,2.026,2767,2.115,3027,2.681,3830,2.971,4209,3.782,4714,5.721,5275,8.051,5598,7.269,5601,5.051,5664,5.926,5707,8.618,5720,8.178,5721,9.437,5778,3.265,5817,10.582,5903,6.218,5929,5.951,5930,11.628,5931,4.098,5932,7.945,5933,8.6,5934,6.575,5935,6.575,5936,7.945,5937,4.691,5938,4.691,5939,4.691,5940,4.691,5941,7.118,5942,4.691,5943,4.691,5944,6.537,5945,4.691,5946,7.118,5947,6.933,5948,4.691,5949,7.118,5950,4.334,5951,4.691,5952,4.691,5953,4.691,5954,3.782,5955,7.118,5956,8.6,5957,7.513,5958,4.691,5959,6.575,5960,4.691,5961,4.334,5962,4.691,5963,6.218,5964,4.691,5965,4.098,5966,4.691,5967,4.334,5968,9.6,5969,4.691,5970,4.691,5971,6.575,5972,4.691]],["title/injectables/ContextExternalToolValidationService.html",[105,0.889,5721,5.639]],["body/injectables/ContextExternalToolValidationService.html",[0,0.218,3,0.017,4,0.017,5,0.009,7,0.098,8,1.077,27,0.427,29,0.816,30,0.001,31,0.656,32,0.144,33,0.514,35,1.077,36,1.939,95,0.167,101,0.012,103,0.001,104,0.001,105,1.176,107,1.531,111,2.485,112,2.716,127,1.129,139,5.1,140,7.288,158,4.471,187,0.916,188,3.379,192,2.661,199,3.407,200,4.393,201,4.674,209,4.278,216,2.055,217,1.357,221,2.62,234,1.447,247,2.538,305,1.841,394,3.657,503,5.379,520,4.301,558,3.041,774,4.375,795,3.772,2298,5.379,2485,2.764,3465,5.35,3871,5.159,3872,4.375,4960,4.053,5273,9.708,5302,4.999,5315,5.59,5598,6.95,5603,4.863,5628,9.713,5720,8.775,5721,7.462,5778,4.454,5817,9.296,5821,5.35,5856,5.159,5857,5.159,5858,5.59,5944,4.053,5973,8.925,5974,5.815,5975,6.399,5976,8.097,5977,9.211,5978,6.399,5979,8.925,5980,6.399,5981,8.925,5982,6.399,5983,6.399,5984,4.999,5985,5.998,5986,5.35,5987,6.399,5988,6.399,5989,6.399,5990,5.35,5991,5.912,5992,6.399,5993,5.912,5994,7.462,5995,5.912,5996,6.399,5997,6.399,5998,5.59,5999,4.454,6000,5.912,6001,6.399,6002,6.399,6003,6.399,6004,6.399,6005,6.399,6006,6.399]],["title/classes/ContextRef.html",[0,0.229,5601,4.786]],["body/classes/ContextRef.html",[0,0.317,2,1.072,3,0.025,4,0.025,5,0.013,7,0.143,27,0.513,29,0.74,30,0.001,31,0.523,32,0.189,33,0.466,34,2.118,47,0.83,95,0.12,101,0.018,103,0.001,104,0.001,127,1.179,165,0.902,197,8.299,198,4.456,200,4.192,405,3.086,595,3.219,618,3.965,619,5.325,2621,4.401,5236,5.825,5598,8.045,5599,11.242,5601,9.371,6007,8.608,6008,10.549,6009,8.608]],["title/classes/ContextRefParams.html",[0,0.229,6010,5.892]],["body/classes/ContextRefParams.html",[0,0.387,2,1.064,3,0.025,4,0.025,5,0.013,7,0.142,26,2.568,27,0.472,30,0.001,32,0.173,95,0.165,99,1.57,101,0.018,103,0.001,104,0.001,165,0.898,197,8.858,198,4.426,364,2.107,374,2.956,376,2.17,467,3.308,1000,4.862,1044,4.542,2600,5.372,4714,7.335,5664,7.598,5671,8.084,5710,11.371,5711,6.705,6010,9.933,6011,9.254,6012,9.254,6013,9.254,6014,9.254]],["title/classes/ContextTypeMapper.html",[0,0.229,6015,5.892]],["body/classes/ContextTypeMapper.html",[0,0.325,2,1.1,3,0.025,4,0.025,5,0.014,7,0.147,8,1.4,27,0.397,29,0.759,30,0.001,31,0.537,32,0.163,33,0.478,35,1.154,95,0.149,101,0.018,103,0.001,104,0.001,197,8.727,217,1.263,227,1.009,316,7.708,627,3.887,1031,3.064,1291,4.068,2027,8.136,3359,6.427,6015,10.133,6016,11.6,6017,7.994,6018,11.6,6019,11.6,6020,9.562,6021,8.353,6022,7.087,6023,9.562]],["title/injectables/ConverterUtil.html",[105,0.889,2291,5.639]],["body/injectables/ConverterUtil.html",[0,0.425,3,0.025,4,0.025,5,0.014,7,0.147,8,1.402,27,0.398,29,0.923,30,0.001,31,0.538,32,0.163,33,0.48,35,1.157,47,0.909,95,0.149,101,0.018,103,0.001,104,0.001,105,1.531,107,2.293,187,1.372,227,1.012,379,2.208,692,4.841,2291,9.712,4587,10.148,6024,9.585,6025,11.617,6026,11.617,6027,9.585,6028,9.585,6029,9.585,6030,8.854,6031,9.585]],["title/classes/CookiesDto.html",[0,0.229,6032,5.639]],["body/classes/CookiesDto.html",[0,0.33,2,1.116,3,0.026,4,0.026,5,0.014,7,0.149,27,0.522,29,0.77,30,0.001,31,0.545,32,0.176,33,0.485,47,0.949,101,0.019,103,0.001,104,0.001,127,1.228,165,0.924,405,3.162,595,3.351,6032,11.165,6033,9.7,6034,10.977,6035,10.977,6036,11.701,6037,9.7,6038,9.7,6039,9.7,6040,9.7,6041,9.7]],["title/classes/CopyApiResponse.html",[0,0.229,6042,5.269]],["body/classes/CopyApiResponse.html",[0,0.225,2,0.76,3,0.018,4,0.018,5,0.009,7,0.102,27,0.521,29,0.525,30,0.001,31,0.371,32,0.194,33,0.649,34,2.151,47,0.954,95,0.117,100,3.055,101,0.013,103,0.001,104,0.001,127,1.155,145,1.705,165,0.721,188,3.456,364,2.267,375,4.799,376,1.55,379,3.025,467,2.809,538,4.092,564,4.812,966,3.383,1011,4.857,1031,3.613,1041,6.572,1474,4.336,1480,5.861,1491,5.216,1660,10.3,2078,3.855,2563,7.048,2594,5.635,2621,3.122,2789,3.489,3025,9.242,3026,4.08,3310,8.431,5221,7.13,6042,9.981,6043,10.683,6044,6.61,6045,7.13,6046,6.239,6047,5.946,6048,9.133,6049,6.61,6050,7.973,6051,6.61,6052,6.106,6053,8.431,6054,6.477,6055,6.61,6056,6.61,6057,8.99,6058,8.431,6059,6.61,6060,6.61,6061,6.61,6062,6.61]],["title/classes/CopyFileDto.html",[0,0.229,6063,5.437]],["body/classes/CopyFileDto.html",[0,0.299,2,1.011,3,0.023,4,0.023,5,0.012,7,0.135,26,2.708,27,0.524,29,0.698,30,0.001,31,0.708,32,0.177,33,0.602,34,2.063,47,0.801,95,0.141,99,1.491,101,0.017,103,0.001,104,0.001,127,1.112,145,2.842,163,2.771,165,0.87,336,2.141,618,3.739,1009,6.294,2136,3.517,3543,6.372,6063,8.878,6064,5.953,6065,12.984,6066,8.789,6067,7.955,6068,10.541,6069,11.013,6070,8.789,6071,8.789,6072,7.085,6073,7.085,6074,7.085,6075,7.085]],["title/classes/CopyFileListResponse.html",[0,0.229,6076,5.269]],["body/classes/CopyFileListResponse.html",[0,0.367,2,0.687,3,0.016,4,0.016,5,0.008,7,0.092,27,0.473,29,0.474,30,0.001,31,0.556,32,0.18,33,0.57,34,1.458,47,0.921,55,3.009,56,5.995,59,2.638,70,6.24,83,1.797,95,0.138,101,0.021,103,0.001,104,0.001,127,0.756,145,1.541,150,2.19,163,3.842,165,0.672,364,1.998,375,4.015,376,1.4,380,1.249,404,1.792,467,3.609,469,2.634,596,3.274,618,3.617,1007,7.688,1008,6.65,1009,6.162,1011,3.178,1013,4.538,1014,2.931,1015,4.722,1016,2.132,1017,4.238,1018,5.538,1019,4.957,1020,3.95,1021,3.178,1022,4.238,1023,4.238,1025,5.384,1026,4.722,1031,3.171,1442,4.665,1446,4.538,1565,3.317,2136,3.402,2787,6.187,2915,5.224,3542,3.08,3574,2.912,6064,3.897,6067,3.95,6072,4.814,6073,4.814,6074,4.814,6075,4.814,6076,6.641,6077,5.538,6078,4.993,6079,9.73,6080,5.972,6081,5.972,6082,5.065,6083,5.936,6084,8.086,6085,6.448,6086,7.992,6087,4.993,6088,4.814,6089,4.814,6090,3.317,6091,4.993,6092,4.157,6093,4.993,6094,4.993,6095,4.993,6096,4.665,6097,4.814,6098,4.993,6099,4.993,6100,4.238,6101,4.814,6102,3.95,6103,4.814,6104,4.327,6105,4.993,6106,4.993,6107,4.814,6108,4.993,6109,4.426,6110,3.317,6111,2.971,6112,3.891,6113,4.426]],["title/classes/CopyFileParams.html",[0,0.229,6114,4.611]],["body/classes/CopyFileParams.html",[0,0.453,2,0.744,3,0.017,4,0.024,5,0.013,7,0.1,26,2.535,27,0.374,30,0.001,32,0.171,39,1.734,47,0.976,95,0.156,99,1.098,101,0.025,103,0.001,104,0.001,150,2.373,165,0.711,204,2.22,334,0.712,347,1.832,364,1.666,369,1.427,373,4.748,374,2.067,375,4.532,376,1.517,377,5.86,379,1.491,380,1.353,467,3.699,469,2.854,470,5.12,471,4.753,565,3.416,1000,5.197,1001,6.658,1031,3.313,1044,3.176,1291,2.753,1381,3.774,2744,5.235,2915,5.457,3574,3.155,4227,2.228,5740,6.777,6064,4.74,6077,6.735,6083,6.15,6111,3.22,6114,6.149,6115,4.504,6116,7.196,6117,5.978,6118,6.472,6119,7.918,6120,5.978,6121,6.472,6122,8.039,6123,7.638,6124,7.777,6125,4.504,6126,4.424,6127,6.838,6128,4.424,6129,4.504,6130,4.156,6131,5.95,6132,4.281,6133,4.504,6134,4.504,6135,4.35,6136,4.424,6137,4.35,6138,4.35,6139,4.156,6140,4.504,6141,4.424,6142,4.504,6143,4.35,6144,4.424,6145,4.216,6146,4.216,6147,4.504]],["title/classes/CopyFileResponse.html",[0,0.229,6079,5.269]],["body/classes/CopyFileResponse.html",[0,0.379,2,0.738,3,0.017,4,0.017,5,0.009,7,0.099,27,0.463,29,0.51,30,0.001,31,0.657,32,0.17,33,0.515,34,1.91,47,0.967,55,2.735,56,5.358,70,5.578,83,1.931,95,0.143,101,0.021,103,0.001,104,0.001,127,0.812,150,2.354,163,3.691,165,0.707,364,1.907,375,4.517,376,1.505,380,1.342,404,1.62,467,3.665,469,2.832,618,3.806,1007,6.354,1008,4.881,1009,6.363,1015,3.566,1025,5.665,1026,4.968,1031,3.299,1442,5.015,1446,4.878,1565,3.566,2136,3.58,2784,4.652,2787,6.435,2915,5.434,3542,3.311,3574,3.13,6064,5.368,6067,6.809,6072,5.175,6073,5.175,6074,5.175,6075,5.175,6076,5.015,6077,7.627,6078,5.367,6079,9.911,6082,5.33,6083,6.129,6084,8.308,6085,6.707,6086,8.252,6087,5.367,6088,5.175,6089,5.175,6090,3.566,6091,5.367,6092,4.469,6093,5.367,6094,5.367,6095,5.367,6096,5.015,6097,5.175,6098,5.367,6099,5.367,6100,4.556,6101,5.175,6102,4.246,6103,5.175,6104,4.652,6105,5.367,6106,5.367,6107,5.175,6108,5.367,6109,4.758,6110,3.566,6111,3.194,6112,4.183,6113,4.758,6148,6.42,6149,6.42,6150,6.42,6151,6.42]],["title/classes/CopyFileResponseBuilder.html",[0,0.229,6152,6.23]],["body/classes/CopyFileResponseBuilder.html",[0,0.315,2,1.067,3,0.025,4,0.025,5,0.017,7,0.143,8,1.374,27,0.385,29,0.737,30,0.001,31,0.74,32,0.13,33,0.464,34,1.953,35,1.119,47,1.006,95,0.119,101,0.018,103,0.001,104,0.001,116,3.002,217,1.225,227,0.979,234,1.504,627,3.836,667,5.345,982,4.647,6064,5.221,6067,8.499,6079,10.486,6152,10.519,6153,11.387,6154,8.569,6155,11.387,6156,9.276]],["title/interfaces/CopyFiles.html",[334,0.742,6157,5.125]],["body/interfaces/CopyFiles.html",[3,0.024,4,0.024,5,0.016,7,0.14,30,0.001,31,0.511,32,0.158,47,1.034,55,2.003,95,0.117,101,0.024,103,0.001,104,0.001,163,3.55,165,0.89,334,1.405,336,2.218,1565,5.059,2186,5.769,5410,7.849,5562,6.339,6157,8.555,6158,7.115,6159,7.615,6160,10.292,6161,10.292,6162,6.121,6163,6.024,6164,7.115,6165,6.339,6166,6.339,6167,6.339,6168,6.339,6169,6.75,6170,6.75,6171,6.75,6172,6.75]],["title/classes/CopyFilesOfParentParamBuilder.html",[0,0.229,6173,5.892]],["body/classes/CopyFilesOfParentParamBuilder.html",[0,0.305,2,1.031,3,0.03,4,0.035,5,0.016,7,0.138,8,1.345,26,2.649,27,0.373,29,0.712,30,0.001,31,0.503,32,0.126,33,0.449,35,1.082,39,2.988,95,0.156,99,1.521,101,0.017,103,0.001,104,0.001,217,1.184,227,0.946,336,2.184,367,4.315,627,3.778,667,5.234,2744,5.661,3305,5.509,3542,5.75,3543,5.473,6064,5.112,6173,9.74,6174,11.15,6175,8.282,6176,11.15,6177,10.546,6178,8.282,6179,10.146,6180,8.282,6181,10.3]],["title/classes/CopyFilesOfParentParams.html",[0,0.229,6137,4.533]],["body/classes/CopyFilesOfParentParams.html",[0,0.454,2,0.759,3,0.018,4,0.024,5,0.013,7,0.102,26,2.551,27,0.274,30,0.001,32,0.166,39,1.768,47,0.972,95,0.157,99,1.119,101,0.025,103,0.001,104,0.001,150,2.42,165,0.72,204,2.263,334,0.726,347,1.857,364,1.223,369,1.455,373,4.812,374,2.108,375,4.57,376,1.547,377,5.94,379,1.52,380,1.38,467,3.708,469,2.91,470,5.151,471,4.793,565,3.483,1000,5.228,1001,6.714,1031,3.347,1044,3.239,1291,2.807,1381,3.848,2744,5.272,2915,5.513,3574,3.217,4227,2.271,5740,6.825,6064,4.18,6077,5.94,6083,6.202,6111,3.283,6114,4.511,6115,4.593,6116,4.593,6119,7.966,6120,6.096,6122,8.088,6123,7.702,6124,7.842,6125,4.593,6126,4.511,6127,6.909,6128,4.511,6129,4.593,6130,4.238,6131,6.03,6132,4.365,6133,4.593,6134,4.593,6135,4.435,6136,4.511,6137,6.128,6138,4.435,6139,4.238,6140,4.593,6141,4.511,6142,4.593,6143,4.435,6144,4.511,6145,4.299,6146,4.299,6147,4.593,6182,6.599]],["title/classes/CopyFilesOfParentPayload.html",[0,0.229,6138,4.533]],["body/classes/CopyFilesOfParentPayload.html",[0,0.451,2,0.73,3,0.017,4,0.029,5,0.013,7,0.098,26,2.587,27,0.425,30,0.001,32,0.174,39,2.742,47,0.965,95,0.155,99,1.077,101,0.025,103,0.001,104,0.001,150,2.328,165,0.701,204,2.178,334,0.699,347,1.808,364,1.896,369,1.4,373,4.685,374,2.028,375,4.495,376,1.489,377,5.782,379,1.463,380,1.328,467,3.691,469,2.8,470,5.089,471,4.714,565,3.351,1000,5.302,1001,6.603,1031,3.279,1044,3.116,1291,2.701,1381,3.703,2744,5.198,2915,5.401,3574,3.095,4227,2.185,5740,7.158,6064,5.08,6077,7.219,6083,6.1,6111,3.159,6114,4.34,6115,4.419,6116,4.419,6119,8.079,6122,7.991,6123,7.575,6124,7.712,6125,4.419,6126,4.34,6127,6.769,6128,4.34,6129,4.419,6130,4.077,6131,5.871,6132,4.2,6133,4.419,6134,4.419,6135,4.267,6136,4.34,6137,4.267,6138,5.965,6139,4.077,6140,4.419,6141,4.34,6142,4.419,6143,4.267,6144,4.34,6145,4.136,6146,4.136,6147,4.419,6183,6.349,6184,6.349,6185,6.349]],["title/injectables/CopyFilesService.html",[105,0.889,6186,5.437]],["body/injectables/CopyFilesService.html",[0,0.2,3,0.016,4,0.026,5,0.012,7,0.09,8,1.014,26,2.233,27,0.445,29,0.899,30,0.001,31,0.681,32,0.174,33,0.536,34,1.943,35,1.184,36,1.826,39,2.629,47,0.427,95,0.156,99,0.997,100,1.967,101,0.016,103,0.001,104,0.001,105,1.107,107,1.406,111,2.48,112,2.2,127,1.063,187,0.841,206,3.008,216,1.553,217,1.745,221,1.385,227,1.195,234,0.953,336,1.431,564,3.118,574,2.664,692,4.518,1041,3.264,1474,1.994,1660,4.737,1828,3.746,2744,3.746,2997,8.359,3013,7.081,3025,4.59,3026,3.627,3027,3.358,3040,8.362,3041,7.907,3542,3.031,3543,5.782,5369,5.396,5412,4.465,6057,4.465,6063,9.777,6064,5.192,6067,6.488,6137,3.949,6173,5.133,6186,6.774,6187,9.893,6188,5.876,6189,9.809,6190,8.403,6191,7.341,6192,5.428,6193,8.989,6194,5.876,6195,5.876,6196,5.876,6197,8.403,6198,5.876,6199,9.809,6200,10.595,6201,8.403,6202,5.876,6203,5.876,6204,5.133,6205,5.428,6206,8.403,6207,5.876,6208,5.876,6209,8.201,6210,5.876,6211,5.876,6212,5.876,6213,5.876,6214,7.341,6215,5.876,6216,7.341,6217,5.876,6218,5.876,6219,4.258,6220,5.876,6221,5.876,6222,5.133,6223,5.876,6224,8.403,6225,5.876,6226,5.876,6227,4.59,6228,5.428,6229,4.913,6230,5.428,6231,8.403,6232,5.876,6233,5.876]],["title/modules/CopyHelperModule.html",[425,1.808,6234,4.887]],["body/modules/CopyHelperModule.html",[0,0.324,3,0.025,4,0.025,5,0.013,30,0.001,95,0.149,101,0.018,103,0.001,104,0.001,187,1.365,425,3.343,427,3.526,428,3.719,429,3.835,430,3.818,431,3.784,432,4.611,433,4.704,442,4.656,443,3.751,444,3.657,2997,10.007,6043,7.975,6234,9.91,6235,9.539,6236,9.539,6237,9.539,6238,8.812,6239,9.539,6240,8.812,6241,9.539]],["title/injectables/CopyHelperService.html",[105,0.889,2997,4.786]],["body/injectables/CopyHelperService.html",[0,0.232,3,0.018,4,0.018,5,0.01,7,0.105,8,1.124,26,1.421,27,0.441,29,0.843,30,0.001,31,0.71,32,0.149,33,0.531,35,1.281,47,0.936,95,0.146,101,0.013,103,0.001,104,0.001,105,1.228,107,1.63,144,1.861,187,0.975,217,1.631,227,1.334,234,1.105,247,2.702,329,2.006,472,6.262,564,4.581,905,3.869,1041,3.783,1911,4.204,2076,3.595,2433,4.437,2586,3.595,2997,6.612,3013,8.512,3044,8.607,3331,6.703,3651,6.292,6043,9.546,6057,8.069,6227,8.296,6228,6.292,6242,11.418,6243,6.811,6244,9.317,6245,9.317,6246,9.317,6247,9.317,6248,6.811,6249,9.317,6250,9.546,6251,6.811,6252,9.317,6253,6.811,6254,6.292,6255,6.811,6256,9.317,6257,6.811,6258,5.694,6259,6.811,6260,4.505,6261,6.811,6262,5.95,6263,4.833,6264,6.811,6265,6.811,6266,6.811,6267,6.811,6268,10.62,6269,6.811,6270,5.175,6271,6.811,6272,6.811,6273,6.811,6274,9.317,6275,6.811,6276,6.811,6277,6.811,6278,6.811,6279,6.811,6280,6.811,6281,6.811]],["title/classes/CopyMapper.html",[0,0.229,6282,5.437]],["body/classes/CopyMapper.html",[0,0.239,2,0.808,3,0.019,4,0.019,5,0.01,7,0.108,8,1.148,26,2.658,27,0.448,29,0.857,30,0.001,31,0.606,32,0.162,33,0.54,35,1.302,39,3.474,95,0.163,99,1.192,100,4.171,101,0.013,103,0.001,104,0.001,185,3.726,217,1.528,227,1.139,234,1.139,564,2.607,627,4.09,975,5.438,1130,5.663,1474,2.384,2675,4.67,2689,4.945,2691,4.175,3013,7.995,3040,5.488,4955,4.234,6042,9.035,6043,9.67,6057,5.338,6227,7.433,6254,6.49,6282,7.671,6283,7.025,6284,9.516,6285,9.516,6286,9.516,6287,9.67,6288,7.025,6289,9.968,6290,9.516,6291,9.67,6292,7.025,6293,9.968,6294,9.516,6295,7.025,6296,7.025,6297,8.79,6298,7.025,6299,7.025,6300,7.025,6301,7.025,6302,7.025,6303,7.025,6304,9.516,6305,9.516,6306,7.025,6307,7.025,6308,7.025,6309,9.516,6310,7.025,6311,7.025,6312,7.025,6313,7.025,6314,7.025,6315,8.79,6316,6.49]],["title/modules/CoreModule.html",[425,1.808,6317,4.461]],["body/modules/CoreModule.html",[0,0.274,3,0.021,4,0.021,5,0.011,30,0.001,95,0.162,101,0.015,103,0.001,104,0.001,187,1.155,204,3.963,379,1.859,425,3.39,427,2.982,428,3.145,429,3.243,430,3.228,431,3.2,432,2.982,433,4.357,438,6.514,442,4.192,443,3.172,444,3.092,449,4.192,1052,3.287,1492,4.862,3874,6.605,4571,8.718,6317,9.168,6318,8.067,6319,8.067,6320,8.067,6321,10.444,6322,10.832,6323,10.832,6324,8.067,6325,8.146,6326,8.406,6327,8.718,6328,9.633,6329,7.258,6330,10.428,6331,7.556,6332,7.729,6333,10.428,6334,7.258,6335,9.109,6336,9.633,6337,10.428,6338,8.718,6339,6.503]],["title/classes/County.html",[0,0.229,6340,5.639]],["body/classes/County.html",[0,0.345,2,0.889,3,0.021,4,0.021,5,0.011,7,0.119,27,0.499,29,0.614,30,0.001,31,0.719,32,0.169,33,0.387,47,0.983,55,2.23,83,3.05,95,0.13,96,2.088,101,0.022,103,0.001,104,0.001,127,0.978,165,0.801,240,3.764,334,0.85,369,2.235,370,3.775,371,2.794,380,2.12,398,2.262,399,3.97,400,3.39,402,3.178,404,1.399,405,2.088,406,2.476,591,3.304,592,3.408,620,4.962,621,5.871,622,4.962,623,5.871,1925,4.015,2136,4.058,2618,5.19,4293,5.485,4303,3.39,5640,5.738,5656,5.034,6340,11.196,6341,10.899,6342,6.749,6343,9.886,6344,9.886,6345,8.857,6346,7.726,6347,7.726,6348,7.726,6349,7.726,6350,8.477,6351,8.857,6352,8.857,6353,6.749,6354,6.749,6355,6.749,6356,6.749,6357,6.749,6358,6.749,6359,4.711,6360,6.749,6361,6.749,6362,6.036]],["title/entities/Course.html",[188,2.554,380,1.41]],["body/entities/Course.html",[0,0.13,3,0.01,4,0.01,5,0.005,7,0.161,26,2.181,27,0.502,30,0.001,31,0.526,32,0.169,33,0.573,34,0.654,39,2.02,47,0.89,62,3.532,83,3.363,95,0.147,96,1.03,101,0.012,103,0,104,0,111,1.507,116,3.384,127,0.482,144,2.858,145,2.8,148,1.874,165,0.479,188,3.776,192,2.56,208,1.414,214,1.258,217,1.571,227,1.234,234,1.858,240,3.663,305,1.742,329,3.374,334,0.42,347,1.234,364,2.238,369,2.697,370,3.125,371,1.05,379,2.159,380,1.266,381,1.254,386,4.307,394,3.461,398,1.116,399,2.371,400,1.672,402,1.568,404,0.69,405,1.03,406,1.221,461,2.159,475,1.909,535,2.062,565,3.197,618,1.622,686,2.08,701,1.331,770,3.57,844,4.247,905,1.583,922,3.33,1031,2.415,1218,2.705,1439,2.897,1474,1.294,1910,2.861,1919,2.515,1925,3.148,2116,2.062,2136,3.436,2674,4.976,2678,5.922,2682,2.08,2690,2.705,2692,2.383,3091,1.738,3285,2.324,3396,2.448,3554,3.521,3715,2.383,3739,4.006,3740,4.006,4013,2.896,4083,2.246,4227,2.085,4228,6.221,4243,3.33,4303,2.657,4641,2.562,4821,2.353,4926,2.793,4961,6.944,6270,2.896,6331,2.762,6363,3.521,6364,7.029,6365,6.404,6366,6.788,6367,5.771,6368,5.246,6369,6.788,6370,6.404,6371,6.922,6372,6.944,6373,5.595,6374,3.812,6375,3.812,6376,5.595,6377,3.946,6378,3.812,6379,5.595,6380,3.812,6381,7.932,6382,3.187,6383,3.812,6384,5.595,6385,3.812,6386,3.33,6387,3.812,6388,3.33,6389,3.812,6390,3.812,6391,6.963,6392,3.812,6393,5.595,6394,3.812,6395,3.812,6396,3.812,6397,2.383,6398,3.521,6399,3.521,6400,3.693,6401,4.389,6402,4.489,6403,3.187,6404,3.609,6405,2.562,6406,4.006,6407,2.353,6408,3.836,6409,2.137,6410,5.064,6411,5.291,6412,3.521,6413,3.187,6414,2.762,6415,3.521,6416,3.521,6417,3.33,6418,2.978,6419,3.521,6420,3.521,6421,3.073,6422,3.521,6423,3.693,6424,2.223,6425,5.461,6426,3.187,6427,4.141,6428,2.606,6429,2.383,6430,2.297,6431,3.187,6432,3.521,6433,3.521,6434,5.595,6435,5.595,6436,5.595,6437,7.179,6438,5.064,6439,4.732,6440,5.595,6441,4.602,6442,4.732,6443,2.896,6444,2.448,6445,4.071,6446,3.521,6447,3.521,6448,3.521,6449,5.595,6450,3.521,6451,3.521,6452,3.521,6453,3.521,6454,3.521,6455,3.521,6456,3.521,6457,3.521,6458,3.521,6459,3.521,6460,2.606,6461,2.414,6462,3.521,6463,3.33,6464,3.521,6465,6.963,6466,5.595,6467,3.521,6468,3.521,6469,3.187,6470,3.187,6471,2.653,6472,3.521,6473,6.302,6474,3.521,6475,3.521,6476,3.521,6477,3.521]],["title/controllers/CourseController.html",[481,2.629,6478,5.892]],["body/controllers/CourseController.html",[0,0.227,3,0.018,4,0.018,5,0.009,7,0.103,8,1.11,27,0.382,29,0.731,30,0.001,31,0.516,32,0.148,33,0.46,35,1.11,36,2.462,56,4.428,70,4.609,95,0.17,100,2.238,101,0.013,103,0.001,104,0.001,111,2.103,112,2.753,127,0.846,187,0.957,216,1.944,217,1.569,221,2.168,227,0.971,234,1.706,250,8.794,264,3.895,305,1.923,364,1.705,369,1.474,376,1.568,447,2.803,469,2.949,481,2.607,483,3.218,491,6.173,513,6.439,529,4.639,555,3.529,556,3.617,557,3.649,559,3.649,561,3.649,789,6.755,801,3.899,1008,5.02,1016,4.491,1028,8.04,1569,4.845,1828,4.689,2344,3.802,2686,4.895,2934,6.853,3710,4.03,4935,9.188,6424,5.365,6478,8.037,6479,6.687,6480,9.717,6481,6.687,6482,9.897,6483,9.897,6484,9.2,6485,6.687,6486,6.177,6487,7.244,6488,6.687,6489,6.184,6490,5.59,6491,3.984,6492,8.794,6493,6.687,6494,8.794,6495,6.177,6496,6.687,6497,5.59,6498,5.841,6499,6.687,6500,6.687,6501,6.687,6502,6.687,6503,6.687,6504,6.687,6505,6.687,6506,6.687,6507,5.841,6508,6.687,6509,6.687,6510,6.687,6511,6.687,6512,6.687,6513,5.59,6514,6.687]],["title/injectables/CourseCopyService.html",[105,0.889,6515,5.437]],["body/injectables/CourseCopyService.html",[0,0.17,3,0.013,4,0.013,5,0.007,7,0.077,8,0.899,10,2.014,26,1.862,27,0.44,29,0.842,30,0.001,31,0.647,32,0.182,33,0.53,35,1.195,36,2.151,39,2.392,47,0.542,83,1.5,95,0.143,99,0.846,101,0.01,103,0,104,0,105,0.982,107,1.193,111,2.608,112,2.716,127,0.943,138,3.236,145,1.287,185,2.918,187,0.714,188,4.938,192,1.487,216,2.055,217,1.708,221,2.906,227,1.045,234,1.209,247,1.978,318,4.17,369,1.099,441,7.026,450,2.052,461,2.79,564,4.396,1041,4.14,1062,2.177,1474,1.693,1958,6.78,1984,3.816,2563,3.118,2675,4.38,2723,4.021,2983,9.634,2985,4.17,2994,8.54,2997,8.177,3003,3.79,3013,7.354,3021,10.271,3025,3.896,3026,3.079,3027,2.85,3033,8.244,3039,4.17,3040,3.896,3041,4.021,3061,3.79,4961,3.697,5451,3.79,6057,3.79,6227,3.896,6250,6.232,6262,7.796,6364,3.352,6365,3.41,6369,3.614,6372,3.697,6515,6.009,6516,11.118,6517,7.461,6518,7.454,6519,7.454,6520,7.454,6521,4.17,6522,9.289,6523,4.988,6524,4.988,6525,4.608,6526,7.454,6527,9.901,6528,4.988,6529,7.454,6530,12.331,6531,4.988,6532,11.118,6533,7.454,6534,4.988,6535,4.608,6536,4.988,6537,8.543,6538,6.511,6539,3.79,6540,4.608,6541,4.988,6542,4.988,6543,4.988,6544,4.988,6545,4.988,6546,4.608,6547,4.988,6548,4.988,6549,4.988,6550,4.988,6551,4.988,6552,7.454,6553,4.988,6554,7.454,6555,4.988,6556,4.17,6557,4.988,6558,4.988,6559,4.988,6560,4.988,6561,4.988,6562,4.988,6563,4.357,6564,4.988,6565,4.988,6566,4.988,6567,7.454,6568,4.988,6569,4.988,6570,4.988,6571,4.988,6572,4.988,6573,4.988]],["title/injectables/CourseCopyUC.html",[105,0.889,6574,5.639]],["body/injectables/CourseCopyUC.html",[0,0.262,3,0.02,4,0.02,5,0.011,7,0.119,8,1.222,26,2.721,27,0.47,29,0.804,30,0.001,31,0.568,32,0.142,33,0.507,35,1.222,36,2.2,39,2.714,95,0.164,99,1.308,101,0.015,103,0.001,104,0.001,105,1.334,107,1.845,111,2.493,112,2.535,127,1.281,148,2.385,187,1.104,216,1.872,217,1.337,221,2.386,227,0.814,234,1.251,305,2.218,347,1.571,766,3.314,843,3.366,1415,6.814,1439,3.688,1828,4.515,1865,5.303,1866,4.364,1880,5.024,1887,6.25,1952,6.441,2027,5.024,2171,3.314,2172,3.688,2173,3.556,2174,4.884,2675,6.12,2767,3.476,3013,5.101,3026,4.76,3027,4.407,6022,5.715,6515,10.515,6517,8.466,6574,8.466,6575,11.091,6576,6.736,6577,11.091,6578,7.712,6579,7.712,6580,7.712,6581,9.354,6582,7.712,6583,7.712,6584,7.712,6585,6.736,6586,7.124,6587,6.736,6588,6.736,6589,4.884]],["title/injectables/CourseExportUc.html",[105,0.889,6494,5.639]],["body/injectables/CourseExportUc.html",[0,0.281,3,0.022,4,0.022,5,0.012,7,0.127,8,1.278,26,2.766,27,0.44,29,0.841,30,0.001,31,0.595,32,0.149,33,0.53,35,0.997,36,2.301,39,3.304,95,0.164,99,1.402,101,0.016,103,0.001,104,0.001,105,1.396,107,1.978,111,2.118,112,2.621,127,1.34,187,1.183,216,1.958,221,1.948,227,0.872,843,3.607,1865,5.547,1866,4.678,1881,5.235,1952,7.113,2027,5.385,2675,5.199,2767,3.726,4929,10.307,4931,6.538,4935,9.253,4945,6.614,4946,8.427,4950,9.785,4969,4.678,6022,6.126,6494,8.856,6575,10.798,6590,8.266,6591,8.266,6592,8.266,6593,10.593,6594,8.266,6595,8.266,6596,8.266,6597,7.221,6598,7.636,6599,8.266]],["title/classes/CourseFactory.html",[0,0.229,6600,5.639]],["body/classes/CourseFactory.html",[0,0.15,2,0.507,3,0.012,4,0.012,5,0.006,7,0.068,8,0.819,27,0.538,29,1.021,30,0.001,31,0.701,32,0.183,33,0.617,34,1.42,35,1.411,47,0.493,55,2.747,59,3.115,95,0.129,99,0.748,101,0.008,103,0,104,0,127,0.558,138,2.947,144,3.115,148,1.364,165,0.536,185,4.944,188,3.133,192,1.314,216,1.255,217,1.577,227,1.059,234,1.101,329,3.358,359,2.353,366,2.427,379,2.313,380,2.099,381,2.233,404,1.229,538,3.043,596,3.792,627,2.113,660,7.079,661,4.466,662,5.211,665,3.805,666,5.211,667,5.491,668,3.805,669,3.805,670,3.805,671,3.736,672,4.206,673,4.64,674,6.382,675,5.525,676,6.84,677,2.495,682,2.471,683,3.805,684,2.495,685,4.868,686,5.072,687,4.312,688,4.906,689,3.77,690,2.471,691,2.309,692,3.949,693,2.406,694,2.365,695,2.471,696,4.794,697,2.495,698,4.556,699,2.471,700,7.148,701,3.982,702,6.392,703,2.495,704,4.089,705,2.471,706,2.495,707,2.471,708,2.495,709,2.471,710,2.792,711,2.627,712,2.471,713,5.836,714,2.495,715,2.471,716,3.805,717,3.736,718,3.805,719,2.495,720,2.385,721,2.365,722,1.944,723,2.471,724,2.471,725,2.471,726,2.495,727,2.495,728,1.726,729,2.471,730,2.495,731,2.669,732,2.471,733,2.495,735,2.545,736,2.627,737,5.539,848,3.128,849,3.35,1841,3.194,3739,6.148,4961,5.031,5512,5.157,6364,2.963,6370,4.64,6372,6.889,6410,3.686,6600,6.919,6601,4.409,6602,9.295,6603,6.27,6604,6.787,6605,4.409,6606,4.409,6607,6.27,6608,4.409,6609,4.073,6610,6.787,6611,4.409,6612,4.409,6613,3.444,6614,3.554,6615,8.276,6616,3.444,6617,5.031,6618,4.073,6619,4.409,6620,4.409,6621,4.409,6622,3.444]],["title/entities/CourseGroup.html",[380,1.41,6404,4.019]],["body/entities/CourseGroup.html",[0,0.227,3,0.018,4,0.018,5,0.009,7,0.189,26,2.362,27,0.47,30,0.001,31,0.636,32,0.176,39,1.789,47,0.823,62,3.893,95,0.167,96,1.804,101,0.018,103,0.001,104,0.001,116,2.974,144,1.824,145,2.371,148,2.065,165,0.83,188,4.98,192,3.375,204,2.29,208,2.477,214,2.204,217,0.882,227,0.704,234,1.49,240,3.292,309,3.778,329,1.966,334,1.011,364,2.098,380,1.922,381,2.197,398,1.955,399,3.598,400,2.929,402,2.746,404,1.209,405,1.804,406,2.139,461,2.117,844,5.132,957,3.778,1218,4.737,1277,3.443,1910,3.153,2136,2.671,2478,3.815,2510,4.228,2674,5.626,2675,4.51,2678,5.015,2682,3.643,2688,3.893,2690,4.737,2692,4.173,2705,4.349,2835,3.978,2881,3.043,3061,5.072,3394,4.563,4227,2.298,4303,2.929,4926,4.238,6045,5.215,6366,4.837,6370,7.74,6400,5.604,6404,5.476,6406,6.079,6407,4.12,6408,5.821,6409,3.742,6425,6.658,6429,4.173,6431,5.581,6444,4.287,6445,7.063,6473,5.581,6623,6.167,6624,5.831,6625,6.675,6626,6.675,6627,4.487,6628,6.167,6629,6.675,6630,6.675,6631,6.675,6632,7.683,6633,4.12,6634,4.415,6635,6.167,6636,6.167,6637,4.837,6638,6.167,6639,6.167,6640,6.167,6641,6.167,6642,6.167,6643,6.167]],["title/classes/CourseGroupFactory.html",[0,0.229,6644,6.23]],["body/classes/CourseGroupFactory.html",[0,0.167,2,0.565,3,0.013,4,0.013,5,0.007,7,0.076,8,0.889,27,0.536,29,1.033,30,0.001,31,0.709,32,0.185,33,0.624,34,1.516,35,1.455,47,0.535,55,2.701,59,3.266,95,0.135,99,0.833,101,0.009,103,0,104,0,127,0.621,138,3.198,144,3.222,148,1.518,165,0.582,185,4.883,188,1.858,216,1.361,217,1.167,227,0.777,329,3.473,359,2.553,366,2.702,379,2.037,380,2.201,381,2.424,404,1.334,538,3.302,596,3.878,627,2.293,660,7.212,661,4.656,662,5.507,665,4.129,666,5.507,667,5.661,668,4.129,669,4.129,670,4.129,671,4.054,672,4.492,673,4.956,674,6.433,675,5.794,676,6.977,677,2.778,682,2.752,683,4.129,684,2.778,685,5.144,686,5.36,687,4.556,688,5.185,689,4.091,690,2.752,691,2.571,692,4.117,693,2.679,694,2.633,695,2.752,696,5.066,697,2.778,698,4.866,699,2.752,700,7.082,701,4.117,702,6.61,703,2.778,704,4.368,705,2.752,706,2.778,707,2.752,708,2.778,709,2.752,710,3.109,711,2.925,712,2.752,713,6.084,714,2.778,715,2.752,716,4.129,717,4.054,718,4.129,719,2.778,720,2.656,721,2.633,722,2.165,723,2.752,724,2.752,725,2.752,726,2.778,727,2.778,728,1.922,729,2.752,730,2.778,731,2.896,732,2.752,733,2.778,735,2.833,736,2.925,737,2.925,848,3.483,849,3.73,6370,5.035,6404,4.389,6600,4.104,6603,6.804,6607,6.804,6609,4.534,6618,4.534,6632,4.104,6644,8.166,6645,4.909,6646,4.909,6647,4.534,6648,4.909,6649,4.534]],["title/injectables/CourseGroupRepo.html",[105,0.889,1956,5.269]],["body/injectables/CourseGroupRepo.html",[0,0.23,3,0.018,4,0.018,5,0.01,7,0.104,8,1.12,10,3.749,12,4.282,13,6.589,18,4.588,26,2.633,27,0.524,29,0.979,30,0.001,31,0.692,32,0.173,33,0.617,34,1.162,35,1.487,36,2.793,39,1.816,40,4.469,42,6.589,47,0.77,49,2.642,95,0.146,96,1.831,97,2.883,98,4.038,99,1.149,101,0.013,103,0.001,104,0.001,105,1.224,107,1.621,112,3.032,187,0.97,188,3.515,217,1.399,221,2.685,227,1.202,234,1.099,380,1.417,381,3.055,404,1.682,596,3.459,692,4.962,877,7.361,883,3.893,884,4.385,885,5.27,908,4.132,909,4.183,910,4.132,911,4.183,913,4.132,914,4.183,915,3.73,921,5.149,1956,7.253,3639,4.632,5784,6.645,6366,8.256,6370,4.632,6404,6.79,6650,6.777,6651,8.577,6652,8.577,6653,6.777,6654,7.055,6655,6.777,6656,6.777,6657,6.777,6658,5.149,6659,6.777,6660,9.285]],["title/injectables/CourseGroupRule.html",[105,0.889,1957,5.437]],["body/injectables/CourseGroupRule.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.196,27,0.462,29,0.884,30,0.001,31,0.625,32,0.156,33,0.557,35,1.196,95,0.158,101,0.014,103,0.001,104,0.001,105,1.306,107,1.787,111,1.493,116,4.104,127,0.945,187,1.069,199,4.526,214,2.466,215,2.417,216,1.833,217,1.566,227,1.046,347,2.415,380,2.748,461,3.065,806,3.146,1862,6.526,1865,5.192,1866,6.298,1880,4.866,1890,8.034,1893,8.661,1911,4.61,1928,7.318,1957,7.992,1959,9.592,1989,6.119,2033,6.459,2056,5.02,3352,6.663,3353,5.105,3356,6.558,3358,5.105,3359,5.02,3360,6.777,6370,5.105,6404,7.831,6661,11.856,6662,7.468,6663,7.468,6664,7.468,6665,7.468,6666,6.524,6667,6.524,6668,6.244,6669,6.524]],["title/injectables/CourseGroupService.html",[105,0.889,6670,6.23]],["body/injectables/CourseGroupService.html",[0,0.305,3,0.024,4,0.024,5,0.013,7,0.138,8,1.347,26,2.651,27,0.464,29,0.887,30,0.001,31,0.627,32,0.157,33,0.559,35,1.084,36,2.426,39,2.408,95,0.156,99,1.524,101,0.017,103,0.001,104,0.001,105,1.471,107,2.15,112,2.724,116,3.931,127,1.137,187,1.286,215,2.908,216,1.661,217,1.187,221,2.631,227,0.948,450,3.696,1956,9.927,2570,6.041,5784,6.512,6366,6.511,6670,10.315,6671,8.986,6672,11.166,6673,7.849,6674,8.986,6675,11.166,6676,8.986,6677,8.986,6678,8.986,6679,8.986,6680,8.986]],["title/classes/CourseMapper.html",[0,0.229,6498,5.892]],["body/classes/CourseMapper.html",[0,0.32,2,1.082,3,0.025,4,0.025,5,0.013,7,0.145,8,1.386,27,0.391,29,0.747,30,0.001,31,0.528,32,0.132,33,0.471,35,1.135,95,0.147,99,1.595,100,3.844,101,0.018,103,0.001,104,0.001,188,5.013,217,1.517,227,0.993,234,1.525,627,3.859,982,4.712,6498,10.032,6681,9.406,6682,11.484,6683,11.484,6684,9.406,6685,10.794,6686,9.406,6687,9.406,6688,9.406,6689,9.406,6690,9.406,6691,9.406,6692,9.406,6693,9.406,6694,9.406]],["title/classes/CourseMetadataListResponse.html",[0,0.229,6497,5.639]],["body/classes/CourseMetadataListResponse.html",[0,0.304,2,0.74,3,0.017,4,0.017,5,0.009,7,0.099,26,1.868,27,0.487,29,0.511,30,0.001,31,0.361,32,0.181,33,0.586,34,1.911,47,0.905,55,2.985,56,5.837,59,2.779,70,6.076,83,3.818,95,0.132,99,1.091,101,0.017,103,0.001,104,0.001,127,1.133,145,1.659,163,3.693,165,0.707,188,3.901,240,2.014,364,2.064,375,4.52,376,1.508,379,2.867,404,1.622,467,3.26,469,2.836,475,3.221,596,3.383,618,2.736,728,2.518,1007,7.681,1008,6.619,1009,5.117,1011,3.421,1013,4.724,1014,3.156,1015,3.572,1016,2.296,1017,4.563,1018,5.834,1019,5.222,1020,4.253,1021,5.482,1022,4.563,1023,4.563,1025,4.073,1026,3.572,1474,3.976,1666,4.476,2282,4.322,2594,4.914,2789,3.394,2910,3.509,2911,3.509,3715,6.44,6364,4.322,6365,7.043,6369,7.465,6372,7.636,6437,5.376,6439,5.023,6441,4.886,6471,7.171,6497,7.487,6685,10.404,6695,8.272,6696,5.94,6697,6.43,6698,6.43,6699,5.183,6700,5.023,6701,7.616,6702,5.023,6703,5.94,6704,5.023,6705,5.023,6706,4.019,6707,4.659,6708,5.183]],["title/classes/CourseMetadataResponse.html",[0,0.229,6685,5.639]],["body/classes/CourseMetadataResponse.html",[0,0.286,2,0.677,3,0.016,4,0.016,5,0.008,7,0.091,26,2.234,27,0.516,29,0.467,30,0.001,31,0.33,32,0.177,33,0.607,34,2.128,47,0.985,55,2.159,56,4.048,59,3.046,70,4.214,83,4.109,95,0.126,99,0.998,101,0.016,103,0.001,104,0.001,127,1.064,163,2.652,165,0.665,188,4.462,240,2.635,364,2.248,375,4.345,376,1.38,379,2.796,404,1.066,467,3.167,469,2.596,475,4.214,618,2.504,728,3.293,1007,5.192,1008,3.211,1009,3.363,1013,4.911,1021,5.7,1025,3.727,1026,3.269,1474,4.401,1480,5.504,1666,5.855,2282,5.654,2381,4.597,2594,5.473,2789,3.106,2910,4.59,2911,4.59,3715,7.585,6364,5.654,6365,8.294,6369,8.791,6372,8.993,6437,4.92,6439,4.597,6441,4.471,6471,8.445,6497,4.92,6685,9.474,6695,11.667,6696,5.436,6699,4.744,6700,4.597,6701,8.482,6702,6.571,6703,7.771,6704,6.571,6705,6.571,6706,5.258,6707,6.095,6708,6.781,6709,5.885,6710,5.885,6711,5.885,6712,5.885,6713,5.885,6714,5.885,6715,5.885,6716,5.885]],["title/entities/CourseNews.html",[380,1.41,6717,4.999]],["body/entities/CourseNews.html",[0,0.341,3,0.014,4,0.024,5,0.007,7,0.173,9,3.642,26,2.095,27,0.213,30,0.001,31,0.428,32,0.141,34,0.881,47,0.887,83,2.291,95,0.153,96,2.453,101,0.02,103,0,104,0,165,0.848,188,3.437,192,3.198,208,1.905,227,0.542,234,1.472,240,3.644,334,0.565,364,0.951,369,2.564,370,3.88,380,2.243,381,1.689,398,1.503,399,2.982,400,2.252,404,1.819,405,2.714,406,1.645,461,2.472,571,5.675,574,4.115,595,1.774,617,5.24,627,1.598,672,4.614,731,3.57,769,4.538,843,2.241,844,5.094,854,3.842,1031,2.44,1298,4.288,1299,4.687,1300,4.236,1301,4.486,1302,4.912,1474,3.081,1492,4.59,1910,3.597,1916,2.487,1932,3.899,1991,2.778,2344,3.752,2572,3.297,2620,5.295,2674,4.163,2688,2.994,2744,5.686,2789,2.71,3394,3.51,3396,3.297,3397,3.396,3399,3.643,3400,3.574,3401,3.805,3415,3.297,3547,3.451,3573,3.345,4227,1.767,4319,3.901,4320,3.72,4926,4.187,4996,3.805,5011,3.643,5554,6.578,6110,2.852,6329,3.574,6407,3.169,6409,2.878,6430,3.094,6633,4.701,6717,5.645,6718,4.139,6719,5.134,6720,4.701,6721,4.139,6722,6.729,6723,5.83,6724,4.139,6725,8.778,6726,5.038,6727,4.871,6728,5.645,6729,5.645,6730,6.553,6731,7.418,6732,4.139,6733,5.404,6734,4.139,6735,3.901,6736,3.901,6737,4.891,6738,4.139,6739,4.139,6740,3.901,6741,4.139,6742,3.805,6743,4.139,6744,3.059,6745,3.169,6746,3.901,6747,4.139,6748,4.139,6749,7.092,6750,4.139,6751,7.319,6752,4.139,6753,4.139,6754,5.787,6755,3.901,6756,6.319,6757,4.011,6758,4.962,6759,3.901,6760,3.72,6761,3.901,6762,4.139]],["title/classes/CourseQueryParams.html",[0,0.229,6483,5.892]],["body/classes/CourseQueryParams.html",[0,0.39,2,1.082,3,0.025,4,0.025,5,0.013,7,0.145,27,0.391,30,0.001,32,0.132,95,0.159,101,0.024,103,0.001,104,0.001,165,0.907,364,1.743,368,4.535,369,2.532,370,3.831,371,3.165,374,3.004,376,2.205,379,2.167,467,3.086,470,4.838,472,6.322,1031,3.68,1578,8.512,4931,5.806,4945,7.103,4946,9.051,4969,5.323,6483,10.032,6763,9.406,6764,9.406,6765,9.406,6766,9.406]],["title/injectables/CourseRepo.html",[105,0.889,1958,4.113]],["body/injectables/CourseRepo.html",[0,0.224,3,0.011,4,0.011,5,0.006,7,0.065,8,0.795,10,2.66,12,3.038,18,3.255,26,2.776,27,0.491,29,0.918,30,0.001,31,0.649,32,0.174,33,0.578,34,1.13,35,1.395,36,2.722,39,3.449,40,3.17,56,3.17,58,4.172,59,3.06,83,1.276,95,0.126,96,1.146,98,2.527,99,0.719,101,0.008,103,0,104,0,105,0.868,107,1.015,112,2.971,138,3.954,144,1.159,187,0.607,188,4.474,217,1.742,221,2.459,227,1.29,234,1.599,277,4.358,329,1.249,347,1.342,369,1.452,371,1.169,380,0.887,381,2.168,398,1.242,404,1.463,596,2.765,692,4.483,701,3.932,877,6.351,883,2.762,884,3.111,885,4.018,908,2.586,909,2.618,910,2.586,911,2.618,913,2.586,914,2.618,915,2.335,964,4.503,1121,2.952,1958,4.017,2185,5.153,2432,3.925,2675,3.233,3639,2.899,3644,3.705,3740,6.023,4425,6.753,4428,3.705,4628,6.023,4961,6.749,5784,6.086,5786,6.462,5899,6.74,6366,3.073,6370,2.899,6371,5.31,6372,4.882,6424,6.086,6487,4.017,6658,3.223,6767,3.918,6768,6.587,6769,7.056,6770,6.587,6771,6.085,6772,6.085,6773,4.241,6774,7.406,6775,6.722,6776,4.241,6777,4.241,6778,4.241,6779,6.085,6780,4.241,6781,4.241,6782,6.085,6783,4.241,6784,4.241,6785,5.986,6786,10.323,6787,3.918,6788,6.085,6789,7.613,6790,3.918,6791,3.918,6792,3.918,6793,4.585,6794,6.085,6795,6.085,6796,3.419,6797,3.918,6798,3.918,6799,3.918,6800,5.755,6801,6.085,6802,6.085,6803,6.085,6804,7.955,6805,4.882,6806,4.882,6807,7.461,6808,3.918,6809,3.705,6810,3.918,6811,3.918,6812,3.918]],["title/injectables/CourseRule.html",[105,0.889,1959,4.999]],["body/injectables/CourseRule.html",[0,0.263,3,0.021,4,0.021,5,0.011,7,0.119,8,1.223,27,0.47,29,0.899,30,0.001,31,0.635,32,0.159,33,0.566,35,1.223,95,0.154,101,0.015,103,0.001,104,0.001,105,1.336,107,1.849,116,4.144,127,0.978,187,1.106,188,5.013,199,4.586,214,2.551,215,2.5,216,1.428,217,1.495,227,1.07,347,2.448,380,2.768,461,3.114,806,3.255,1862,6.614,1865,5.927,1866,5.738,1881,4.894,1890,8.11,1911,4.769,1928,7.416,1959,7.514,1989,6.258,2033,6.606,2056,5.193,3352,6.815,3353,5.282,3356,6.706,3358,5.282,3359,5.193,3360,6.931,4961,7.514,6370,5.282,6371,8.173,6813,7.726,6814,7.726,6815,7.726,6816,7.726,6817,7.726]],["title/classes/CourseScope.html",[0,0.229,6786,5.892]],["body/classes/CourseScope.html",[0,0.237,2,0.524,3,0.012,4,0.012,5,0.006,7,0.07,8,0.84,26,2.752,27,0.501,29,0.853,30,0.001,31,0.603,32,0.166,33,0.537,34,0.782,35,1.348,36,2.334,39,3.439,40,2.194,56,3.351,58,4.411,83,1.371,95,0.131,96,1.232,98,2.716,99,0.773,101,0.009,103,0,104,0,105,0.918,111,2.148,112,2.409,144,1.246,148,1.41,165,0.55,187,0.652,188,4.231,217,1.76,221,2.532,227,1.312,234,1.653,277,5.088,329,1.343,347,2.076,369,1.005,371,1.256,398,1.335,404,1.53,529,2.011,596,3.094,701,3.303,877,4.061,885,2.268,964,4.76,1121,3.173,1958,2.78,2185,5.353,2432,6.072,2675,3.418,3639,3.116,3644,3.982,3740,6.257,4425,3.811,4628,4.606,4961,7.011,5784,6.265,5786,6.712,5872,4.76,5873,4.76,5874,4.76,5879,4.76,5880,4.76,5881,3.173,5882,3.116,5883,3.173,5884,3.173,5893,3.116,5894,4.76,5895,3.173,5896,3.116,5897,3.173,5898,3.116,5899,6.966,6366,3.303,6370,3.116,6371,5.613,6372,5.161,6424,6.265,6487,4.246,6658,3.464,6767,4.211,6769,3.982,6772,4.211,6774,4.942,6775,5.216,6779,4.211,6782,4.211,6785,6.263,6786,11.301,6787,6.433,6788,6.433,6789,7.908,6790,6.433,6791,6.433,6792,8.738,6793,4.847,6794,6.433,6795,6.433,6796,3.675,6797,6.433,6798,4.211,6799,4.211,6800,6.083,6801,6.433,6802,6.433,6803,6.433,6804,8.263,6805,5.161,6806,5.161,6807,7.806,6808,4.211,6809,3.982,6810,4.211,6811,4.211,6812,4.211,6818,6.964,6819,6.964,6820,6.964,6821,6.964,6822,4.558,6823,4.558,6824,4.558,6825,4.558,6826,4.558]],["title/injectables/CourseService.html",[105,0.889,130,4.887]],["body/injectables/CourseService.html",[0,0.288,3,0.022,4,0.022,5,0.012,7,0.13,8,1.297,12,4.957,26,2.78,27,0.491,29,0.938,30,0.001,31,0.663,32,0.166,33,0.591,35,1.297,36,2.701,39,2.266,95,0.152,99,1.434,101,0.016,103,0.001,104,0.001,105,1.416,107,2.023,112,2.941,116,3.824,127,1.07,130,7.788,187,1.211,188,4.069,215,2.737,216,1.563,217,1.117,221,2.533,227,1.134,450,3.479,1958,7.581,2570,5.815,2675,4.151,5784,6.268,6424,4.932,6673,7.388,6827,8.457,6828,10.748,6829,8.457,6830,10.748,6831,8.457,6832,10.748,6833,8.457,6834,8.457,6835,8.457,6836,8.457,6837,8.457,6838,8.457]],["title/injectables/CourseUc.html",[105,0.889,6492,5.639]],["body/injectables/CourseUc.html",[0,0.3,3,0.023,4,0.023,5,0.012,7,0.136,8,1.332,26,2.634,27,0.459,29,0.877,30,0.001,31,0.62,32,0.155,33,0.552,35,1.065,36,2.399,39,2.366,59,2.739,95,0.162,98,5.26,99,1.497,101,0.017,103,0.001,104,0.001,105,1.455,107,2.112,127,1.117,187,1.264,188,3.342,215,2.857,216,1.632,227,0.932,450,3.631,469,3.894,592,3.894,701,4.41,1028,8.961,1958,8.087,2185,4.996,6487,5.383,6492,9.233,6521,7.381,6546,8.155,6839,8.828,6840,11.043,6841,8.828,6842,11.043,6843,8.828,6844,5.751,6845,7.116]],["title/classes/CourseUrlParams.html",[0,0.229,6482,5.892]],["body/classes/CourseUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,188,4.437,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,2675,6.173,3834,5.671,6482,10.237,6846,9.724,6847,9.724]],["title/classes/CreateCardBodyParams.html",[0,0.229,4855,5.892]],["body/classes/CreateCardBodyParams.html",[0,0.39,2,1.079,3,0.025,4,0.025,5,0.013,7,0.144,27,0.39,30,0.001,32,0.132,33,0.574,95,0.159,99,1.592,101,0.018,103,0.001,104,0.001,165,0.906,364,1.739,368,3.706,369,2.73,371,3.16,374,2.997,375,4.652,376,2.2,471,4.879,1031,3.675,1044,4.605,2489,6.554,3773,10.355,3774,7.637,4855,10.018,5418,7.264,6848,11.468,6849,8.668,6850,8.138,6851,9.384,6852,9.384]],["title/classes/CreateContentElementBodyParams.html",[0,0.229,4009,5.892]],["body/classes/CreateContentElementBodyParams.html",[0,0.362,2,0.958,3,0.022,4,0.022,5,0.012,7,0.128,27,0.442,30,0.001,32,0.191,33,0.533,55,2.719,95,0.151,99,1.414,101,0.016,103,0.001,104,0.001,165,0.841,329,3.136,364,1.973,368,4.884,369,2.347,370,4.125,371,3.601,374,2.662,375,4.32,376,1.954,379,2.454,467,2.862,471,4.53,1031,3.412,1044,4.09,1145,8.903,1295,6.146,2344,4.85,2594,5.454,2809,6.527,2915,5.621,3437,5.914,3442,6.039,3774,7.667,3822,8.917,4009,9.302,5419,8.584,6850,5.914,6853,11.735,6854,6.968,6855,8.334,6856,9.837,6857,8.334,6858,8.334,6859,8.334]],["title/interfaces/CreateJwtParams.html",[334,0.742,6860,5.892]],["body/interfaces/CreateJwtParams.html",[0,0.247,3,0.019,4,0.019,5,0.01,7,0.112,30,0.001,32,0.183,33,0.679,47,1.024,85,7.866,95,0.125,101,0.014,103,0.001,104,0.001,116,3.15,165,0.769,217,1.549,227,1.027,334,0.8,336,1.77,565,5.138,627,3.03,1646,5.676,1648,5.385,1671,6.075,1683,4.283,1687,5.521,1691,4.485,1812,6.908,1827,7.215,4474,7.396,6054,8.676,6860,9.589,6861,6.712,6862,9.551,6863,10.222,6864,9.551,6865,11.625,6866,10.521,6867,8.992,6868,6.712,6869,6.712,6870,6.712,6871,6.712,6872,8.504,6873,6.712,6874,8.992,6875,8.992,6876,6.712,6877,6.347,6878,6.347,6879,6.712,6880,8.992,6881,6.712,6882,6.712,6883,6.712,6884,6.712,6885,6.712,6886,5.676,6887,5.676,6888,6.347,6889,6.712,6890,6.712,6891,6.712,6892,6.712]],["title/interfaces/CreateJwtPayload.html",[334,0.742,1794,5.437]],["body/interfaces/CreateJwtPayload.html",[3,0.022,4,0.022,5,0.012,7,0.129,30,0.001,32,0.184,33,0.621,39,3.324,47,1.031,48,5.823,55,2.354,85,7.753,101,0.02,103,0.001,104,0.001,165,0.846,334,1.178,336,2.047,347,2.4,355,3.305,404,1.522,461,1.936,575,5.008,956,5.475,1687,6.386,1691,5.187,1794,9.497,1813,6.089,1827,6.229,1919,4.445,2488,8.479,3110,6.008,4227,4.27,4641,5.648,4997,5.475,6054,5.964,6862,6.565,6864,6.565,6886,6.565,6887,6.565,6893,7.763,6894,7.763,6895,6.775,6896,5.397,6897,7.341]],["title/classes/CreateNewsParams.html",[0,0.229,6898,5.437]],["body/classes/CreateNewsParams.html",[0,0.325,2,0.814,3,0.019,4,0.019,5,0.01,7,0.109,27,0.503,30,0.001,32,0.17,33,0.478,34,1.64,47,0.944,83,2.876,95,0.149,99,1.2,100,3.2,101,0.013,103,0.001,104,0.001,165,0.755,364,2.245,374,2.259,375,3.878,376,1.659,379,2.991,380,2.781,467,3.256,469,3.12,470,4.562,471,4.068,475,3.544,999,6.426,1000,4.088,1031,2.267,1035,6.655,1044,3.472,1295,5.519,1474,4.112,1848,6.426,2344,5.007,2744,5.171,2778,6.229,2910,5.217,2911,5.217,3242,3.764,6046,6.536,6723,6.954,6726,7.163,6730,6.316,6731,7.744,6793,6.655,6898,7.707,6899,12.487,6900,6.18,6901,7.469,6902,7.538,6903,7.074,6904,6.535,6905,6.18,6906,7.707,6907,7.993,6908,7.265,6909,6.535,6910,6.535,6911,7.557,6912,7.074,6913,7.074,6914,6.927,6915,7.074,6916,5.703,6917,7.074,6918,7.086,6919,6.535,6920,6.535]],["title/classes/CreateSubmissionItemBodyParams.html",[0,0.229,6921,5.892]],["body/classes/CreateSubmissionItemBodyParams.html",[0,0.394,2,1.097,3,0.025,4,0.025,5,0.013,7,0.147,27,0.396,30,0.001,32,0.134,95,0.149,101,0.018,103,0.001,104,0.001,165,0.915,347,2.643,364,1.767,368,4.575,369,2.553,373,6.114,374,3.047,376,2.237,379,2.198,467,3.113,2881,5.914,3247,8.011,6921,10.119,6922,9.338,6923,11.584,6924,8.812,6925,8.333,6926,10.119,6927,9.338,6928,8.812]],["title/classes/CurrentUserMapper.html",[0,0.229,6929,5.125]],["body/classes/CurrentUserMapper.html",[0,0.245,2,0.828,3,0.019,4,0.019,5,0.01,7,0.111,8,1.168,27,0.454,29,0.868,30,0.001,31,0.613,32,0.153,33,0.547,34,1.235,35,1.319,39,2.929,47,0.986,48,6.199,59,3.003,85,7.619,95,0.161,99,1.221,101,0.014,103,0.001,104,0.001,227,1.153,231,4.156,234,1.168,305,2.071,334,0.793,461,3.075,491,6.294,496,4.076,503,4.34,558,3.422,627,4.111,738,6.308,1813,8.832,1820,6.02,3110,5.293,4092,4.923,4227,3.762,5868,5.218,6929,7.352,6930,11.684,6931,6.291,6932,9.676,6933,9.676,6934,9.676,6935,9.676,6936,7.201,6937,9.676,6938,6.612,6939,7.201,6940,9.676,6941,7.201,6942,6.866,6943,5.625,6944,7.201,6945,5.805,6946,7.201,6947,6.652,6948,6.291,6949,6.02,6950,7.201,6951,7.201,6952,7.201,6953,7.201,6954,7.201,6955,6.02,6956,7.201]],["title/interfaces/CustomLtiProperty.html",[334,0.742,6957,5.892]],["body/interfaces/CustomLtiProperty.html",[0,0.187,3,0.015,4,0.015,5,0.008,7,0.085,26,1.674,30,0.001,31,0.531,32,0.133,47,0.976,49,3.129,95,0.133,96,2.169,97,2.346,101,0.021,103,0,104,0,116,2.597,144,2.84,145,2.071,150,2.022,165,0.634,216,1.019,227,0.582,234,0.894,236,3.216,240,4.278,329,3.253,334,0.607,336,1.343,347,2.25,369,2.924,370,4.538,371,3.655,380,1.678,394,4.587,398,1.614,399,3.142,400,2.419,402,2.268,404,0.999,405,1.49,406,1.767,540,5.815,701,1.926,853,2.802,1019,4.681,1031,3.539,1576,3.323,1680,6.469,1696,3.151,1925,2.865,2076,5.83,2136,2.207,2400,3.151,2586,2.91,2674,2.528,3110,2.671,4303,2.419,6090,3.063,6413,4.61,6426,4.61,6957,8.267,6958,5.094,6959,6.71,6960,7.628,6961,7.414,6962,7.414,6963,5.094,6964,5.094,6965,7.414,6966,5.094,6967,5.094,6968,6.077,6969,7.414,6970,7.414,6971,5.094,6972,4.087,6973,4.307,6974,3.492,6975,4.19,6976,3.492,6977,6.71,6978,3.541,6979,4.307,6980,4.307,6981,4.087,6982,5.094,6983,5.094,6984,4.445,6985,4.307,6986,5.094,6987,3.913,6988,4.307,6989,3.492,6990,4.087,6991,3.286,6992,3.541,6993,3.995,6994,4.445,6995,4.307,6996,4.61,6997,4.61,6998,5.094,6999,4.19,7000,4.445,7001,4.61,7002,5.094,7003,4.19,7004,4.445,7005,4.307,7006,4.445,7007,4.19,7008,4.445,7009,4.61,7010,5.094,7011,4.61,7012,5.094,7013,4.61,7014,5.094,7015,5.094,7016,5.094,7017,5.094,7018,4.61,7019,5.094,7020,4.61,7021,5.094,7022,4.19,7023,4.445,7024,3.838,7025,4.087,7026,4.61,7027,5.094,7028,4.087,7029,4.445]],["title/classes/CustomLtiPropertyDO.html",[0,0.229,7030,5.639]],["body/classes/CustomLtiPropertyDO.html",[0,0.333,2,0.843,3,0.019,4,0.019,5,0.01,7,0.113,26,2.043,27,0.458,29,0.582,30,0.001,31,0.55,32,0.155,33,0.367,47,1.023,95,0.141,101,0.019,103,0.001,104,0.001,127,0.928,144,3.52,150,2.689,165,0.774,236,4.276,347,2.498,404,1.328,1696,4.19,1939,5.653,2076,6.66,2136,2.934,2586,3.87,3110,3.552,4371,6.405,6090,4.073,6960,7.895,6968,6.289,6973,5.728,6974,4.644,6975,5.571,6976,4.644,6978,4.708,6979,5.728,6980,5.728,6981,5.434,6985,5.728,6987,5.203,6988,5.728,6989,4.644,6990,5.434,6991,4.369,6993,7.096,6995,5.728,6997,6.13,6999,5.571,7001,6.13,7003,5.571,7005,5.728,7007,5.571,7009,6.13,7011,6.13,7013,6.13,7018,6.13,7020,6.13,7022,5.571,7024,5.104,7026,6.13,7028,5.434,7030,9.22,7031,6.773,7032,9.047,7033,9.794,7034,7.332,7035,6.405,7036,5.571,7037,5.728,7038,6.817,7039,5.728,7040,5.728,7041,6.773,7042,6.773,7043,6.773,7044,6.773,7045,6.773,7046,6.773,7047,6.773,7048,6.405,7049,6.773,7050,6.773,7051,6.773,7052,6.773,7053,6.773,7054,6.773,7055,6.773,7056,6.773,7057,6.773,7058,6.773,7059,6.773,7060,6.773]],["title/classes/CustomParameter.html",[0,0.229,136,4.216]],["body/classes/CustomParameter.html",[0,0.254,2,0.86,3,0.02,4,0.02,5,0.011,7,0.115,27,0.563,29,0.594,30,0.001,31,0.666,32,0.193,33,0.666,47,0.992,95,0.096,101,0.014,103,0.001,104,0.001,127,0.947,136,7.718,146,7.487,165,0.784,195,7.487,196,7.905,277,4.458,329,3.281,331,6.963,347,2.022,379,2.567,405,2.682,471,4.739,595,2.585,1031,2.398,2136,2.994,2621,3.534,4303,3.283,5236,4.677,5369,7.153,5602,5.581,5621,4.739,5622,5.115,6427,5.115,6428,5.115,7061,12.6,7062,7.482,7063,8.256,7064,9.926,7065,7.482,7066,7.482,7067,7.482,7068,7.482,7069,7.482,7070,7.482,7071,7.482,7072,7.482,7073,7.482,7074,6.912,7075,6.912,7076,6.256,7077,6.256,7078,5.029,7079,6.031,7080,6.536,7081,6.536,7082,6.536,7083,6.536,7084,6.536,7085,6.536]],["title/classes/CustomParameterEntity.html",[0,0.229,7086,5.437]],["body/classes/CustomParameterEntity.html",[0,0.218,2,0.738,3,0.017,4,0.017,5,0.009,7,0.099,27,0.548,29,0.51,30,0.001,31,0.625,32,0.189,33,0.645,47,0.967,95,0.115,96,1.735,101,0.012,103,0.001,104,0.001,127,0.812,146,6.919,165,0.707,195,6.919,196,7.305,198,3.07,240,4.132,277,4.12,329,3.032,331,6.435,347,1.822,364,2.418,369,2.797,370,3.714,379,2.372,386,6.363,398,1.88,405,2.417,471,4.38,595,2.218,1031,3.986,2136,2.569,2600,5.807,2618,4.579,2621,3.032,4303,2.817,5236,4.013,5369,6.611,5602,5.157,5621,4.066,5622,4.389,6427,4.389,6428,4.389,7063,7.629,7074,5.931,7075,5.931,7076,5.367,7077,5.367,7078,4.315,7079,5.175,7080,5.608,7081,5.608,7082,5.608,7083,5.608,7084,5.608,7085,5.608,7086,9.437,7087,13.305,7088,13.305,7089,6.42,7090,8.945,7091,6.42,7092,6.42,7093,6.42,7094,6.42,7095,6.42,7096,6.42,7097,6.42,7098,6.42,7099,6.42]],["title/classes/CustomParameterEntry.html",[0,0.229,181,4.272]],["body/classes/CustomParameterEntry.html",[0,0.322,2,1.089,3,0.025,4,0.025,5,0.013,7,0.146,27,0.517,29,0.752,30,0.001,31,0.727,32,0.175,33,0.622,47,0.941,101,0.018,103,0.001,104,0.001,127,1.199,144,3.398,165,0.911,181,8.403,290,7.47,405,3.117,595,3.272,2136,3.791,4303,4.156,7037,7.399,7061,11.956,7100,9.472,7101,11.534,7102,9.472,7103,7.919]],["title/classes/CustomParameterEntryEntity.html",[0,0.229,5680,5.125]],["body/classes/CustomParameterEntryEntity.html",[0,0.31,2,1.05,3,0.024,4,0.024,5,0.013,7,0.14,27,0.508,29,0.725,30,0.001,31,0.717,32,0.172,33,0.612,47,0.929,95,0.117,96,2.467,101,0.017,103,0.001,104,0.001,127,1.155,144,3.343,165,0.891,240,4.113,290,7.375,364,2.089,398,2.673,405,3.047,595,3.153,2136,3.653,2618,5.772,4303,4.005,5680,9.975,7037,7.131,7103,7.632,7104,12.778,7105,9.128,7106,11.275,7107,9.128]],["title/classes/CustomParameterEntryParam.html",[0,0.229,5731,5.125]],["body/classes/CustomParameterEntryParam.html",[0,0.389,2,1.074,3,0.025,4,0.025,5,0.013,7,0.144,27,0.475,30,0.001,31,0.694,32,0.16,33,0.572,47,0.936,95,0.147,101,0.018,103,0.001,104,0.001,144,3.377,165,0.903,200,4.026,290,7.134,364,2.119,374,2.983,375,4.639,376,2.19,467,3.073,470,5.207,471,4.865,2627,6.628,5729,6.767,5731,8.689,7108,7.629,7109,11.417,7110,9.34,7111,9.34,7112,9.34]],["title/classes/CustomParameterEntryResponse.html",[0,0.229,5839,5.269]],["body/classes/CustomParameterEntryResponse.html",[0,0.305,2,1.033,3,0.024,4,0.024,5,0.013,7,0.138,27,0.505,29,0.714,30,0.001,31,0.713,32,0.17,33,0.608,47,0.924,95,0.115,101,0.017,103,0.001,104,0.001,127,1.137,144,3.319,165,0.882,200,4.14,290,7.335,364,2.069,375,4.529,376,2.107,405,3.017,467,3.415,595,3.104,2136,3.596,4303,3.942,5839,10.209,7037,7.019,7103,7.513,7108,7.843,7109,11.739,7113,8.986,7114,11.166,7115,8.986,7116,8.986]],["title/classes/CustomParameterFactory.html",[0,0.229,7117,5.639]],["body/classes/CustomParameterFactory.html",[0,0.257,2,0.441,3,0.01,4,0.01,5,0.005,7,0.059,8,0.734,27,0.509,29,0.994,30,0.001,31,0.688,32,0.182,33,0.586,34,1.044,35,1.385,47,0.442,55,2.391,59,3.103,95,0.121,101,0.018,103,0,104,0,127,0.485,136,4.729,138,2.642,144,2.971,146,2.576,148,1.186,150,1.406,154,3.449,158,1.92,165,0.481,185,5.053,195,2.576,196,2.72,200,1.249,201,2.007,209,1.32,216,1.125,217,1.597,227,1.236,236,2.235,238,4.093,277,3.76,278,2.913,279,4.409,281,2.841,290,2.213,325,2.841,329,3.203,331,2.396,359,2.11,366,2.11,371,2.374,379,1.743,380,1.582,381,2.002,404,1.56,461,0.883,471,1.631,538,2.728,596,3.672,627,1.894,660,6.658,661,4.213,662,4.829,665,3.411,666,4.829,667,5.105,668,3.411,669,3.411,670,3.411,671,3.349,672,3.845,673,4.241,674,6.262,675,5.172,676,6.573,677,2.169,682,2.149,683,3.411,684,2.169,685,4.511,686,4.7,687,3.996,688,4.547,689,3.38,690,2.149,691,2.007,692,3.725,693,2.092,694,2.057,695,2.149,696,4.442,697,2.169,698,4.165,699,2.149,700,7.355,701,3.797,702,6.096,703,2.169,704,3.006,705,2.149,706,2.169,707,2.149,708,2.169,709,2.149,712,2.149,713,5.505,714,2.169,715,2.149,716,3.411,717,3.349,718,3.411,719,2.169,720,2.074,721,2.057,722,1.691,723,2.149,724,2.149,725,2.149,726,2.169,727,2.169,728,1.501,729,2.149,730,2.169,731,2.393,732,2.149,733,2.169,735,2.213,736,2.284,737,5.133,905,1.592,1508,2.169,1696,3.477,2076,3.212,2599,2.777,2606,2.11,2609,2.668,4335,6.667,4337,2.777,4945,2.057,5472,3.006,5602,1.92,5640,2.169,5697,3.09,5702,2.995,5703,2.841,6968,2.462,6974,2.428,6976,2.428,6978,2.462,6989,2.428,6991,2.284,7117,6.325,7118,5.315,7119,6.085,7120,5.315,7121,3.833,7122,2.777,7123,4.51,7124,2.995,7125,2.777,7126,2.62,7127,2.536,7128,3.349,7129,3.349,7130,3.349,7131,6.609,7132,5.087,7133,3.349,7134,3.667,7135,3.09,7136,2.841,7137,2.913,7138,3.349,7139,2.841,7140,3.349,7141,3.349,7142,3.205,7143,3.349,7144,3.349,7145,2.576,7146,3.349,7147,3.349,7148,3.349,7149,2.62,7150,3.349,7151,3.205,7152,3.205,7153,3.349,7154,2.668,7155,4.623,7156,5.315,7157,6.609,7158,5.315,7159,5.315,7160,3.349,7161,3.205,7162,2.995,7163,5.087,7164,3.349,7165,3.349,7166,3.349,7167,3.349,7168,3.349,7169,5.315,7170,3.349,7171,3.205,7172,2.497,7173,3.205,7174,3.349,7175,3.349,7176,3.349,7177,3.349]],["title/classes/CustomParameterPostParams.html",[0,0.229,7178,5.437]],["body/classes/CustomParameterPostParams.html",[0,0.323,2,0.807,3,0.019,4,0.019,5,0.01,7,0.108,27,0.552,30,0.001,31,0.605,32,0.191,33,0.648,47,0.982,95,0.138,101,0.013,103,0.001,104,0.001,165,0.751,198,3.354,277,4.315,331,6.739,347,1.936,364,2.46,373,5.017,374,2.24,375,4.9,376,1.644,379,2.484,467,3.423,470,5.366,471,5.513,1001,6.424,1044,3.442,2600,5.848,5369,6.923,5602,5.401,5729,8.374,7063,7.991,7178,7.662,7179,13.4,7180,7.013,7181,8.422,7182,7.013,7183,7.013,7184,7.662,7185,7.013,7186,5.329,7187,7.013,7188,9.014,7189,7.013,7190,7.013,7191,7.013,7192,7.013,7193,7.013,7194,9.014,7195,7.013,7196,7.013,7197,9.014,7198,7.013,7199,7.013,7200,7.013,7201,7.013,7202,7.013]],["title/classes/CustomParameterResponse.html",[0,0.229,5647,5.269]],["body/classes/CustomParameterResponse.html",[0,0.225,2,0.761,3,0.018,4,0.018,5,0.009,7,0.102,27,0.551,29,0.526,30,0.001,31,0.633,32,0.19,33,0.649,47,0.972,95,0.117,101,0.013,103,0.001,104,0.001,127,0.838,165,0.722,198,3.166,277,4.187,331,6.541,347,1.862,364,2.433,375,5.263,376,1.552,379,2.411,405,2.469,467,3.529,471,4.452,595,2.287,1031,3.353,2136,2.65,2600,5.837,2621,3.127,2914,6.719,4303,2.905,5236,4.138,5369,6.719,5602,5.242,5621,4.193,5622,4.526,5647,9.248,6427,4.526,6428,4.526,7063,7.755,7076,5.535,7077,5.535,7078,4.45,7079,5.337,7080,5.783,7081,5.783,7082,5.783,7083,5.783,7084,5.783,7085,5.783,7181,8.174,7188,9.897,7194,9.897,7197,9.897,7203,13.375,7204,6.621,7205,9.138,7206,6.621,7207,6.621,7208,6.621,7209,6.621,7210,6.621,7211,6.621,7212,6.621,7213,6.621,7214,6.621,7215,6.621,7216,6.621]],["title/controllers/DashboardController.html",[481,2.629,7217,5.892]],["body/controllers/DashboardController.html",[0,0.226,3,0.018,4,0.018,5,0.009,7,0.102,8,1.105,27,0.436,29,0.833,30,0.001,31,0.588,32,0.147,33,0.524,35,1.265,36,2.662,55,2.694,95,0.161,100,4.202,101,0.013,103,0.001,104,0.001,112,2.911,185,4.797,187,0.951,215,2.15,216,1.228,217,1.618,221,2.47,227,1.106,264,4.437,364,1.942,376,1.557,447,2.785,481,2.589,483,3.197,491,6.449,513,6.794,529,2.93,543,5.251,552,4.266,555,3.506,556,3.594,557,3.625,559,3.625,561,3.625,1382,6.974,2934,5.967,3710,5.519,4179,8.763,6480,8.46,6486,6.136,7217,8,7218,6.642,7219,7.062,7220,10.482,7221,6.642,7222,6.642,7223,10.968,7224,9.446,7225,9.158,7226,6.642,7227,6.642,7228,7.864,7229,9.87,7230,9.158,7231,6.642,7232,5.803,7233,6.642,7234,8.763,7235,6.642,7236,5.047,7237,6.642,7238,6.642,7239,6.642,7240,6.642,7241,10.482,7242,8,7243,6.642,7244,6.642,7245,6.642,7246,6.642,7247,6.642,7248,6.642,7249,6.642,7250,6.136]],["title/classes/DashboardEntity.html",[0,0.229,7251,4.887]],["body/classes/DashboardEntity.html",[0,0.169,2,0.344,3,0.008,4,0.008,5,0.004,7,0.127,8,0.6,26,2.401,27,0.516,29,0.882,30,0.001,31,0.623,32,0.174,33,0.556,34,1.76,35,1.428,39,1.993,47,0.86,55,2.686,83,0.9,95,0.082,101,0.019,103,0,104,0,111,2.625,127,0.378,144,1.359,145,1.919,148,3.561,165,0.393,187,0.428,214,0.987,217,1.7,227,1.358,234,1.603,247,2.95,305,1.836,334,0.329,347,1.515,405,0.808,415,2.713,416,1.92,595,2.205,618,3.512,619,2.841,627,2.315,905,2.65,1041,1.661,1277,4.257,1382,4.59,1474,3.204,1758,5.65,1773,3.193,1828,3.315,1932,3.267,2381,3.884,2586,1.578,2594,4.791,2672,6.615,2685,1.709,2686,1.591,2728,2.272,2789,3.925,2809,5.586,3224,4.73,3331,3.578,3400,2.081,3573,3.239,3667,6.901,3715,3.108,4179,4.157,4821,1.846,6258,2.5,6365,2.044,6401,9.444,6402,3.685,6471,3.461,6701,6.089,7228,5.176,7251,3.602,7252,2.612,7253,4.972,7254,6.496,7255,4.972,7256,4.972,7257,6.496,7258,6.217,7259,7.447,7260,4.972,7261,5.994,7262,4.972,7263,4.972,7264,4.972,7265,4.972,7266,4.972,7267,4.972,7268,6.496,7269,2.99,7270,2.99,7271,2.99,7272,2.99,7273,2.99,7274,4.343,7275,2.99,7276,2.216,7277,2.99,7278,4.343,7279,2.99,7280,4.593,7281,4.343,7282,9.464,7283,2.99,7284,9.624,7285,2.99,7286,2.99,7287,6.768,7288,2.99,7289,4.343,7290,9.464,7291,2.99,7292,2.99,7293,4.343,7294,2.99,7295,4.343,7296,2.99,7297,4.343,7298,2.99,7299,4.343,7300,2.99,7301,4.343,7302,2.99,7303,4.343,7304,2.99,7305,2.99,7306,4.343,7307,2.99,7308,4.343,7309,2.216,7310,4.343,7311,2.612,7312,4.343,7313,4.343,7314,4.343,7315,2.612,7316,4.343,7317,2.612,7318,4.343,7319,2.612,7320,3.778,7321,8.675,7322,2.612,7323,4.343,7324,2.612,7325,4.343,7326,2.612,7327,4.343,7328,2.612,7329,2.612,7330,2.612,7331,2.612,7332,2.612,7333,4.343,7334,2.612,7335,4.343,7336,2.5,7337,4.343,7338,2.612,7339,2.081,7340,4.343,7341,2.612,7342,2.612,7343,2.612,7344,2.612,7345,2.41,7346,2.612,7347,4.343,7348,2.612,7349,2.272,7350,2.612,7351,2.612,7352,2.612,7353,2.612,7354,2.612,7355,2.612,7356,2.612,7357,2.612,7358,2.612,7359,4.343,7360,4.343,7361,2.5,7362,5.575,7363,2.612,7364,4.343,7365,2.612,7366,2.612,7367,2.612,7368,2.612,7369,2.612,7370,2.612,7371,2.612,7372,2.612,7373,2.612,7374,2.612,7375,2.612,7376,2.612,7377,2.612,7378,2.612,7379,2.612,7380,2.612,7381,2.612,7382,2.612,7383,2.612,7384,2.612,7385,2.612,7386,2.612,7387,2.612,7388,4.343,7389,2.612,7390,2.612,7391,2.612,7392,4.343,7393,4.343,7394,2.612,7395,2.612,7396,2.612,7397,2.612,7398,2.612,7399,2.612,7400,2.612,7401,5.575,7402,2.612,7403,2.612]],["title/entities/DashboardGridElementModel.html",[380,1.41,7404,5.269]],["body/entities/DashboardGridElementModel.html",[0,0.308,3,0.017,4,0.017,5,0.009,7,0.181,27,0.489,30,0.001,32,0.157,33,0.453,34,2.02,39,2.424,47,0.856,49,2.543,55,2.679,95,0.151,96,2.444,97,2.776,101,0.021,103,0.001,104,0.001,127,0.826,144,1.783,145,2.334,165,0.715,188,3.425,234,1.684,240,3.817,329,1.922,334,0.996,364,2.182,369,2.596,370,2.176,380,2.171,381,2.147,386,3.728,398,1.91,399,4.065,402,3.72,404,1.638,405,1.763,406,2.898,461,2.583,618,3.848,619,3.728,1474,4.135,1910,4.272,2501,8.123,2672,7.361,2674,4.76,2676,7.889,2678,5.666,2680,7.291,2682,3.56,2684,4.727,2688,3.805,2789,3.444,4294,3.932,4926,3.009,6397,4.078,6409,3.657,6737,4.189,7219,7.81,7404,8.111,7405,5.454,7406,9.822,7407,9.822,7408,6.524,7409,6.524,7410,6.524,7411,6.524,7412,6.524,7413,6.524,7414,6.524,7415,7.291,7416,6.704,7417,5.454,7418,7.562,7419,5.454,7420,5.454,7421,5.454,7422,5.454,7423,5.454,7424,5.259,7425,5.454,7426,5.454,7427,7.291,7428,6.554,7429,5.454,7430,4.63,7431,5.454,7432,5.454,7433,5.454,7434,5.454,7435,5.454]],["title/interfaces/DashboardGridElementModelProperties.html",[334,0.742,7415,5.437]],["body/interfaces/DashboardGridElementModelProperties.html",[0,0.312,3,0.018,4,0.018,5,0.009,7,0.183,30,0.001,32,0.172,33,0.566,34,2.197,39,2.463,47,0.931,49,2.602,55,2.816,95,0.152,96,2.483,97,2.84,101,0.022,103,0.001,104,0.001,127,0.845,145,1.722,165,0.726,188,4.287,234,1.49,240,3.547,334,1.011,336,1.626,369,2.317,370,2.227,380,2.197,398,1.955,399,4.115,402,3.78,404,1.664,405,1.804,406,2.945,461,2.609,618,3.91,619,3.815,1474,4.267,1910,4.34,2501,7.614,2672,7.671,2674,4.213,2676,6.983,2678,5.015,2680,5.381,2682,3.643,2684,4.837,2688,3.893,2789,3.524,4294,4.023,4926,3.078,6397,4.173,6409,3.742,6737,4.287,7219,8.006,7404,7.179,7405,5.581,7406,10.134,7407,10.134,7415,8.472,7416,8.391,7417,5.581,7418,7.683,7419,5.581,7420,5.581,7421,5.581,7422,5.581,7423,5.581,7424,5.381,7425,5.581,7426,5.581,7427,7.408,7428,6.658,7429,5.581,7430,4.737,7431,5.581,7432,5.581,7433,5.581,7434,5.581,7435,5.581]],["title/classes/DashboardGridElementResponse.html",[0,0.229,7436,5.437]],["body/classes/DashboardGridElementResponse.html",[0,0.311,2,0.598,3,0.014,4,0.014,5,0.007,7,0.08,27,0.518,29,0.413,30,0.001,31,0.292,32,0.179,33,0.632,34,2.282,47,0.955,55,2.222,83,2.313,95,0.099,101,0.017,103,0,104,0,127,1.279,145,1.984,165,0.607,240,2.409,364,2.269,376,1.219,379,3.047,380,1.087,467,3.554,469,2.294,475,5.656,538,4.101,618,3.892,728,3.01,966,2.662,1011,2.767,1013,5.355,1021,4.091,1041,2.889,1277,5.212,1382,4.746,1474,4.424,1666,5.352,2594,5.901,2787,5.718,2789,4.058,2809,5.335,2910,6.161,2911,6.161,3715,7.496,6364,6.148,6365,7.372,6441,3.951,6471,8.347,6699,6.198,6700,6.006,6701,9.041,6702,7.146,6705,6.006,6706,4.806,6707,5.571,6708,6.198,6733,3.69,7219,4.806,7228,5.352,7236,5.842,7320,8.195,7428,6.628,7436,9.416,7437,4.543,7438,9.421,7439,9.017,7440,9.017,7441,5.2,7442,5.2,7443,5.2,7444,8.694,7445,6.717,7446,5.2,7447,5.2,7448,5.2,7449,5.2,7450,4.543,7451,5.2,7452,5.2,7453,5.2,7454,4.543,7455,4.543,7456,4.543,7457,4.543,7458,4.543]],["title/classes/DashboardGridSubElementResponse.html",[0,0.229,7444,5.437]],["body/classes/DashboardGridSubElementResponse.html",[0,0.333,2,0.674,3,0.016,4,0.016,5,0.008,7,0.09,27,0.47,29,0.465,30,0.001,31,0.329,32,0.17,33,0.293,34,2.31,47,0.967,55,1.844,83,1.763,95,0.108,101,0.019,103,0.001,104,0.001,127,1.353,145,1.512,165,0.663,240,1.836,364,1.981,376,1.374,379,3.085,380,1.225,467,3.619,469,2.584,475,5.667,538,3.759,618,4.166,728,2.294,966,2.999,1013,4.49,1021,3.118,1041,3.255,1277,4.325,1382,3.616,1474,4.515,1666,4.078,2594,5.905,2787,6.122,2789,4.426,2809,4.426,2910,6.173,2911,6.173,3715,7.747,6364,6.582,6365,6.695,6441,4.452,6471,8.626,6699,6.76,6700,6.551,6701,9.093,6702,7.65,6705,4.577,6706,3.662,6707,4.245,6708,4.723,6733,4.158,7219,5.242,7228,4.078,7236,6.372,7320,7.441,7428,7.096,7436,8.618,7437,5.118,7438,8.555,7439,8.188,7440,8.188,7444,9.768,7445,5.118,7450,5.118,7454,5.118,7455,5.118,7456,5.118,7457,5.118,7458,5.118,7459,5.859,7460,5.859,7461,5.859,7462,5.859,7463,5.859]],["title/classes/DashboardMapper.html",[0,0.229,7232,5.892]],["body/classes/DashboardMapper.html",[0,0.256,2,0.865,3,0.02,4,0.02,5,0.011,7,0.116,8,1.202,27,0.464,29,0.887,30,0.001,31,0.627,32,0.157,33,0.559,34,1.291,35,1.348,95,0.128,99,1.276,100,3.98,101,0.014,103,0.001,104,0.001,111,2.541,145,1.941,163,2.372,217,1.57,227,1.179,234,1.812,627,4.147,975,5.694,982,3.769,1130,6.065,1474,2.554,2263,5.339,2809,3.971,3715,4.703,6365,5.143,6402,8.813,6471,5.237,7219,6.228,7232,8.704,7236,9.035,7251,8.615,7258,6.291,7287,9.035,7428,5.452,7436,9.585,7439,6.291,7440,6.291,7444,9.005,7464,7.524,7465,9.963,7466,9.963,7467,9.963,7468,7.524,7469,9.963,7470,7.524,7471,9.963,7472,7.524,7473,7.524,7474,7.524,7475,7.524,7476,7.524,7477,7.524,7478,7.524,7479,7.524,7480,7.524,7481,7.524,7482,7.524,7483,7.524,7484,7.524,7485,9.963,7486,7.524,7487,9.963,7488,7.524,7489,7.524,7490,7.524,7491,7.524,7492,7.524]],["title/entities/DashboardModelEntity.html",[380,1.41,7416,4.999]],["body/entities/DashboardModelEntity.html",[0,0.318,3,0.018,4,0.018,5,0.01,7,0.184,27,0.389,30,0.001,32,0.131,34,2.056,39,2.856,47,0.833,49,2.673,55,2.518,95,0.154,96,2.529,97,2.918,101,0.022,103,0.001,104,0.001,127,0.868,144,1.874,145,1.769,165,0.74,188,3.544,234,1.728,240,3.587,329,2.02,334,1.03,364,1.734,369,2.524,370,2.287,380,2.228,381,2.256,398,2.008,399,4.173,402,3.85,404,1.695,405,1.853,406,2.999,461,2.851,618,3.983,619,3.919,1474,3.886,1910,5.034,2501,8.297,2672,6.662,2674,4.886,2676,8.098,2678,5.816,2680,5.528,2682,3.742,2684,4.969,2688,3.999,2789,3.62,4294,4.133,4926,3.162,6397,4.287,6409,3.844,6737,4.404,7219,7.733,7404,7.312,7405,5.733,7406,9.231,7407,9.231,7415,7.546,7416,7.899,7417,5.733,7418,7.826,7419,5.733,7420,5.733,7421,5.733,7422,5.733,7423,5.733,7424,5.528,7425,5.733,7426,5.733,7427,7.546,7428,8.297,7429,5.733,7430,4.866,7431,5.733,7432,5.733,7433,5.733,7434,7.826,7435,5.733,7493,6.857,7494,6.335,7495,6.857]],["title/injectables/DashboardModelMapper.html",[105,0.889,7496,5.269]],["body/injectables/DashboardModelMapper.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,8,0.803,27,0.502,29,0.959,30,0.001,31,0.678,32,0.172,33,0.604,34,1.142,35,1.431,36,2.822,39,1.152,47,0.313,95,0.105,96,1.162,99,0.729,101,0.008,103,0,104,0,105,0.877,107,1.029,111,2.452,112,3.033,127,0.544,145,1.11,187,0.616,188,4.396,216,0.795,217,1.745,221,2.961,227,1.311,234,1.488,284,2.592,305,1.237,380,1.392,398,1.259,461,1.877,1382,2.654,1439,2.056,1758,3.267,1828,2.968,1932,3.408,2263,3.052,2395,5.242,2400,2.457,2435,2.89,2672,6.203,2684,3.116,2835,6.739,3280,2.993,3285,4.06,3546,3.466,6401,6.647,6403,3.595,6470,3.595,6701,4.552,7219,7.664,7228,2.993,7251,7.931,7287,9.439,7321,7.752,7336,3.595,7404,8.835,7406,3.466,7407,3.466,7416,9.311,7424,3.466,7428,3.116,7496,5.201,7497,4.3,7498,8.148,7499,8.148,7500,6.658,7501,6.658,7502,6.658,7503,6.658,7504,8.148,7505,6.658,7506,6.658,7507,8.148,7508,4.3,7509,4.3,7510,4.3,7511,12.422,7512,4.3,7513,4.3,7514,6.658,7515,4.3,7516,6.658,7517,4.3,7518,9.168,7519,6.658,7520,4.3,7521,6.658,7522,4.3,7523,4.3,7524,4.3,7525,6.658,7526,4.3,7527,6.658,7528,4.3,7529,4.3,7530,4.3,7531,9.923,7532,6.658,7533,4.3,7534,4.3,7535,4.3,7536,4.3,7537,4.3,7538,4.3,7539,4.3,7540,4.3,7541,4.3,7542,4.3,7543,4.3,7544,4.3,7545,4.3,7546,4.3,7547,4.3,7548,4.3,7549,3.972,7550,4.3,7551,6.658,7552,4.3,7553,6.658,7554,4.3,7555,4.3,7556,4.3,7557,6.658,7558,4.3,7559,6.658,7560,4.3,7561,6.658,7562,4.3,7563,4.3,7564,4.3,7565,6.658,7566,6.658,7567,4.3,7568,4.3,7569,4.3,7570,3.757,7571,4.3,7572,4.3,7573,4.3,7574,4.3,7575,4.3,7576,4.3,7577,3.757,7578,6.658,7579,4.3,7580,4.3]],["title/injectables/DashboardRepo.html",[105,0.889,7581,5.269]],["body/injectables/DashboardRepo.html",[0,0.305,3,0.017,4,0.017,5,0.009,7,0.099,8,1.084,9,3.09,26,2.726,27,0.488,29,0.932,30,0.001,31,0.659,32,0.165,33,0.587,34,1.541,35,1.347,36,2.869,39,2.992,49,2.519,95,0.143,96,1.746,97,2.749,99,1.096,101,0.017,103,0.001,104,0.001,105,1.184,107,1.546,112,2.987,127,0.818,187,0.925,206,5.288,214,2.133,216,1.661,217,1.704,221,2.936,227,1.282,234,1.048,334,0.711,380,1.879,461,1.489,661,2.722,722,2.85,877,3.768,1919,2.683,2395,6.38,2435,4.343,3280,4.497,3285,5.479,6701,4.417,6984,7.243,7219,7.593,7251,9.207,7287,6.827,7416,4.789,7496,8.722,7518,7.849,7577,5.644,7581,7.019,7582,5.969,7583,8.3,7584,7.849,7585,8.3,7586,6.461,7587,9.542,7588,6.461,7589,9.023,7590,6.461,7591,8.3,7592,6.461,7593,9.542,7594,6.461,7595,5.969,7596,5.969,7597,8.3,7598,5.969,7599,5.644,7600,7.512,7601,4.909,7602,8.3,7603,5.969,7604,8.3,7605,5.969,7606,9.542,7607,5.969,7608,8.3,7609,5.969,7610,5.969]],["title/classes/DashboardResponse.html",[0,0.229,7236,5.125]],["body/classes/DashboardResponse.html",[0,0.34,2,0.698,3,0.016,4,0.016,5,0.009,7,0.093,27,0.415,29,0.482,30,0.001,31,0.341,32,0.161,33,0.304,34,2.322,47,0.949,55,1.891,83,1.826,95,0.11,101,0.019,103,0.001,104,0.001,127,1.375,145,2.219,165,0.68,240,1.902,364,1.593,376,1.424,379,3.118,380,1.798,467,3.637,469,2.678,475,5.745,538,4.477,618,4.249,728,2.377,966,3.108,1011,3.23,1013,2.784,1021,3.23,1041,4.777,1277,4.436,1382,3.747,1474,4.378,1666,4.226,2594,5.755,2787,6.243,2789,4.54,2809,4.54,2910,6.257,2911,6.257,3715,7.444,6364,5.781,6365,6.827,6441,4.613,6471,8.288,6699,6.933,6700,6.719,6701,8.818,6702,6.719,6705,4.743,6706,3.795,6707,4.399,6708,4.894,6733,6.103,7219,6.791,7228,4.226,7236,8.713,7320,7.589,7428,8.308,7436,9.244,7437,5.304,7438,8.725,7439,8.35,7440,8.35,7444,8.757,7445,5.304,7454,5.304,7455,5.304,7456,5.304,7457,5.304,7458,5.304,7611,6.071,7612,6.071,7613,6.071]],["title/injectables/DashboardUc.html",[105,0.889,7234,5.639]],["body/injectables/DashboardUc.html",[0,0.214,3,0.017,4,0.017,5,0.009,7,0.097,8,1.065,26,2.873,27,0.483,29,0.923,30,0.001,31,0.676,32,0.163,33,0.582,35,1.332,36,2.618,39,3.606,47,0.741,95,0.149,99,1.068,101,0.012,103,0.001,104,0.001,105,1.163,107,1.507,111,2.325,112,2.877,127,1.117,148,1.949,185,3.99,187,0.902,216,1.632,217,1.535,221,2.916,227,1.075,234,1.022,305,1.812,369,1.389,450,2.591,511,3.225,722,2.778,839,2.957,1958,7.545,2185,3.565,2686,4.697,2730,5.267,2809,5.379,6424,3.674,6800,5.503,6844,4.104,7219,7.893,7234,7.38,7242,9.646,7251,8.001,7282,9.232,7290,10.345,7321,4.921,7361,5.267,7581,6.895,7584,7.711,7589,7.711,7600,9.232,7614,6.299,7615,10.19,7616,10.19,7617,8.827,7618,6.299,7619,6.299,7620,6.299,7621,6.299,7622,6.299,7623,6.299,7624,6.299,7625,8.827,7626,6.299,7627,6.299,7628,5.819,7629,4.669,7630,6.299,7631,6.299,7632,6.299,7633,4.385,7634,6.299,7635,10.19,7636,8.827,7637,8.827,7638,6.299,7639,6.299,7640,6.299,7641,6.299]],["title/classes/DashboardUrlParams.html",[0,0.229,7223,5.892]],["body/classes/DashboardUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,3834,5.671,7219,7.325,7223,10.237,7242,10.988,7642,9.724,7643,9.724]],["title/classes/DatabaseManagementConsole.html",[0,0.229,7644,5.639]],["body/classes/DatabaseManagementConsole.html",[0,0.196,2,0.664,3,0.015,4,0.015,5,0.008,7,0.089,8,1.001,27,0.441,29,0.772,30,0.001,31,0.545,32,0.136,33,0.531,35,1.172,36,2.544,47,0.42,95,0.125,101,0.022,103,0.001,104,0.001,111,1.155,112,2.819,127,0.731,145,3.022,163,2.617,215,1.869,217,1.631,221,2.503,227,1.025,334,0.636,347,1.691,364,1.8,368,4.194,369,1.273,371,2.926,379,2.977,443,3.263,701,4.665,721,4.452,1910,4.588,2180,6.153,2835,3.441,3247,3.48,3262,5.188,3445,5.045,3447,4.828,3448,7.138,3451,6.69,3453,7.831,3457,8.593,3458,6.726,3459,3.441,3461,4.511,3462,5.407,3542,2.978,5483,4.655,5485,5.045,7644,6.939,7645,10.392,7646,7.666,7647,8.299,7648,8.561,7649,9.426,7650,5.775,7651,7.666,7652,7.141,7653,9.822,7654,8.879,7655,5.775,7656,7.666,7657,7.982,7658,5.775,7659,8.788,7660,8.337,7661,5.777,7662,6.306,7663,5.775,7664,5.045,7665,4.828,7666,7.666,7667,8.296,7668,6.4,7669,7.666,7670,5.045,7671,7.666,7672,7.666,7673,5.335,7674,5.335,7675,5.335,7676,8.879,7677,7.666,7678,8.974,7679,3.948,7680,7.25,7681,5.335,7682,5.335,7683,5.045]],["title/controllers/DatabaseManagementController.html",[481,2.629,7684,5.892]],["body/controllers/DatabaseManagementController.html",[0,0.251,3,0.02,4,0.02,5,0.01,7,0.114,8,1.187,27,0.511,29,0.879,30,0.001,31,0.621,32,0.155,33,0.554,35,1.483,36,2.848,47,0.919,95,0.126,101,0.014,103,0.001,104,0.001,112,3.052,187,1.057,215,2.39,217,0.975,221,2.319,227,1.297,264,3.127,347,2.255,364,2.278,447,3.096,481,2.879,483,3.555,529,3.258,2955,4.18,3461,5.77,6489,6.615,7646,10.904,7648,9.515,7649,8.646,7660,8.203,7665,6.175,7683,8.597,7684,8.597,7685,12.644,7686,7.386,7687,7.386,7688,9.841,7689,9.091,7690,9.841,7691,7.386,7692,9.841,7693,7.386,7694,10.311,7695,9.841,7696,7.386,7697,6.823,7698,9.841,7699,7.386,7700,7.386,7701,9.841,7702,7.386,7703,11.068,7704,9.841,7705,7.386,7706,7.386,7707,7.386,7708,7.386,7709,7.386,7710,7.386,7711,7.386,7712,7.386,7713,7.386]],["title/modules/DatabaseManagementModule.html",[425,1.808,7714,5.639]],["body/modules/DatabaseManagementModule.html",[0,0.325,3,0.025,4,0.025,5,0.014,30,0.001,95,0.149,101,0.018,103,0.001,104,0.001,187,1.369,425,3.347,427,3.534,428,3.728,429,3.844,430,3.827,431,3.793,432,4.615,433,4.709,442,4.663,443,3.76,444,3.665,7652,5.831,7714,11.44,7715,9.562,7716,9.562,7717,9.562,7718,11.371,7719,8.833,7720,8.833,7721,7.994]],["title/injectables/DatabaseManagementService.html",[105,0.889,7718,5.437]],["body/injectables/DatabaseManagementService.html",[0,0.181,3,0.014,4,0.014,5,0.008,7,0.082,8,0.946,27,0.528,29,0.96,30,0.001,31,0.692,32,0.17,33,0.604,35,1.488,36,2.885,47,0.992,95,0.14,96,2.118,97,2.271,99,0.905,101,0.01,103,0,104,0,105,1.033,107,1.277,111,1.567,112,3.08,127,0.676,187,0.764,215,1.728,216,0.987,217,1.678,221,2.776,227,1.301,247,3.684,369,2.048,398,1.563,779,8.08,884,3.702,948,4.056,1062,4.054,1828,3.495,1910,5.706,2395,5.849,2433,5.107,3280,3.716,3285,4.78,3850,6.319,3861,8.114,5021,4.931,6758,6.051,7648,8.251,7653,6.123,7662,7.777,7689,7.241,7694,10.289,7697,7.241,7718,6.319,7719,11.875,7722,4.663,7723,7.838,7724,7.241,7725,7.838,7726,7.838,7727,7.838,7728,10.235,7729,7.838,7730,5.338,7731,7.838,7732,5.338,7733,7.838,7734,5.338,7735,7.838,7736,5.338,7737,7.838,7738,5.338,7739,7.838,7740,5.338,7741,5.338,7742,7.838,7743,5.338,7744,5.338,7745,5.338,7746,5.338,7747,5.338,7748,5.338,7749,5.338,7750,5.338,7751,9.288,7752,7.838,7753,5.338,7754,5.338,7755,5.338,7756,5.338,7757,7.838,7758,5.338,7759,5.338,7760,5.338,7761,7.838,7762,5.338,7763,5.338,7764,5.338,7765,5.338,7766,5.338,7767,5.338,7768,5.338]],["title/classes/DeleteFilesConsole.html",[0,0.229,7769,5.892]],["body/classes/DeleteFilesConsole.html",[0,0.263,2,0.89,3,0.021,4,0.021,5,0.014,7,0.119,8,1.225,27,0.422,29,0.806,30,0.001,31,0.57,32,0.142,33,0.508,35,0.934,36,2.206,55,2.745,83,2.329,95,0.145,101,0.015,103,0.001,104,0.001,111,1.548,112,2.54,127,0.98,144,2.115,215,2.505,217,1.022,221,1.824,234,1.255,329,2.28,364,1.434,379,2.61,1015,4.3,1021,4.119,1052,4.616,1053,5.332,1545,2.472,1841,7.355,1991,5.492,2769,3.825,3453,6.24,3457,8.369,3458,7.616,3459,4.613,3542,6.201,5279,10.504,6418,9.753,7769,8.868,7770,11.328,7771,7.741,7772,9.378,7773,7.741,7774,10.711,7775,7.741,7776,10.152,7777,11.191,7778,11.191,7779,9.895,7780,9.47,7781,11.328,7782,7.741,7783,11.328,7784,7.741,7785,6.047,7786,7.151,7787,7.151,7788,6.762,7789,7.741,7790,7.741,7791,7.741,7792,7.741,7793,4.903]],["title/injectables/DeleteFilesUc.html",[105,0.889,7774,5.639]],["body/injectables/DeleteFilesUc.html",[0,0.171,3,0.013,4,0.013,5,0.013,7,0.077,8,0.904,27,0.48,29,0.844,30,0.001,31,0.596,32,0.156,33,0.532,35,1.282,36,2.158,47,0.651,55,1.97,58,4.743,83,2.695,95,0.148,99,0.851,101,0.01,103,0.001,104,0,105,0.987,107,1.201,111,2.661,112,2.846,116,2.899,127,0.948,144,1.371,165,0.592,187,0.718,204,1.721,216,1.656,217,1.676,221,2.721,227,0.945,234,1.611,247,4.42,329,1.478,369,1.975,371,1.383,380,1.049,432,1.855,444,1.924,500,5.119,549,3.493,784,2.649,798,3.137,905,3.109,1052,3.65,1053,4.404,1158,2.671,1159,4.384,1289,4.809,1545,1.603,2076,2.649,2186,3.179,2439,3.636,2444,3.921,2570,2.715,3331,5.568,3542,5.122,3544,3.719,6165,3.493,6166,6.235,6167,3.493,6168,3.493,6230,6.918,7772,6.918,7774,6.261,7777,8.676,7785,5.85,7787,4.636,7788,4.384,7793,3.179,7794,11.868,7795,5.019,7796,9.932,7797,6.542,7798,7.488,7799,7.488,7800,9.932,7801,5.019,7802,8.983,7803,9.654,7804,7.488,7805,7.488,7806,7.875,7807,5.019,7808,6.261,7809,9.282,7810,7.488,7811,9.02,7812,5.019,7813,7.488,7814,5.019,7815,7.488,7816,5.019,7817,5.019,7818,7.488,7819,4.196,7820,4.384,7821,4.046,7822,4.636,7823,5.019,7824,5.019,7825,8.958,7826,9.932,7827,9.932,7828,5.019,7829,8.958,7830,5.019,7831,5.019,7832,5.019,7833,8.958,7834,5.019,7835,5.019,7836,5.019,7837,7.488,7838,5.019,7839,5.019,7840,3.72,7841,5.019,7842,5.019,7843,5.019,7844,5.019,7845,5.019,7846,5.019,7847,5.019,7848,4.196,7849,5.019,7850,4.636,7851,5.019,7852,4.636,7853,3.72,7854,4.636,7855,4.636,7856,5.019,7857,5.019,7858,5.019,7859,7.488,7860,5.019,7861,6.542,7862,5.019,7863,5.019,7864,5.019,7865,5.019,7866,5.019]],["title/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.229,7867,5.269]],["body/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.375,2,1.41,3,0.019,4,0.019,5,0.01,7,0.113,27,0.509,29,0.581,30,0.001,31,0.411,32,0.177,33,0.613,47,0.801,95,0.125,99,1.241,101,0.021,102,5.933,103,0.001,104,0.001,127,0.926,138,3.178,150,2.684,165,0.773,234,1.907,347,2.245,404,1.995,460,6.296,564,4.088,574,5.331,596,3.345,701,3.848,843,5.504,1016,4.199,1289,4.7,2078,4.268,2090,5.599,2477,7.259,6090,4.065,7867,9.574,7868,8.607,7869,7.267,7870,6.393,7871,7.985,7872,10.221,7873,9.187,7874,7.319,7875,5.561,7876,7.319,7877,6.761,7878,8.881,7879,6.761,7880,6.761,7881,6.119,7882,5.424,7883,6.119,7884,5.9,7885,6.393,7886,7.885,7887,8.545,7888,6.119,7889,5.194,7890,5.003,7891,5.003,7892,5.303,7893,6.119]],["title/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.229,7886,5.437]],["body/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.375,2,1.41,3,0.019,4,0.019,5,0.01,7,0.113,27,0.51,29,0.582,30,0.001,31,0.412,32,0.172,33,0.614,47,0.856,95,0.126,99,1.244,101,0.021,102,5.938,103,0.001,104,0.001,127,0.928,150,4.044,165,0.774,234,1.909,347,2.247,404,1.997,460,6.302,564,4.092,574,5.335,596,3.348,701,2.561,843,5.506,1016,4.202,1289,4.708,2078,4.276,2090,5.604,2477,7.264,6090,4.073,7867,7.651,7868,8.614,7869,7.27,7870,6.405,7871,7.99,7872,10.225,7873,9.194,7875,5.571,7877,6.773,7878,8.889,7879,6.773,7880,6.773,7881,6.13,7882,5.434,7883,6.13,7884,5.911,7885,6.405,7886,9.886,7887,8.555,7888,6.13,7889,5.203,7890,5.012,7891,5.012,7892,5.313,7893,6.13,7894,9.794]],["title/classes/DoBaseFactory.html",[0,0.229,4335,4.786]],["body/classes/DoBaseFactory.html",[0,0.172,2,0.582,3,0.013,4,0.013,5,0.007,7,0.078,8,0.909,27,0.534,29,1.03,30,0.001,31,0.695,32,0.185,33,0.619,34,1.828,35,1.467,47,0.654,49,1.971,55,2.545,59,3.308,95,0.115,96,1.366,97,2.151,101,0.01,103,0,104,0,127,0.64,138,3.269,144,3.321,148,1.564,165,0.595,185,4.844,216,1.392,217,0.668,227,0.534,234,0.82,329,3.503,359,2.611,366,2.784,369,1.115,379,2.073,380,2.229,381,2.478,404,1.364,538,3.376,596,3.901,627,2.344,660,7.248,661,4.708,662,5.589,665,4.222,666,5.589,667,5.584,668,4.222,669,4.222,670,4.222,671,4.145,672,4.572,673,5.044,674,6.098,675,5.868,676,6.957,677,2.862,682,2.835,683,4.222,684,2.862,685,5.221,686,5.44,687,4.624,688,5.262,689,4.183,690,2.835,691,2.648,692,4.431,693,2.759,694,2.713,695,2.835,696,5.141,697,2.862,698,4.953,699,2.835,700,7.127,701,4.321,702,6.936,703,2.862,704,3.721,705,2.835,706,2.862,707,2.835,708,2.862,709,4.222,712,2.835,713,6.152,714,2.862,715,2.835,716,4.222,717,4.145,718,4.222,719,2.862,720,2.736,721,2.713,722,2.23,723,2.835,724,2.835,725,2.835,726,2.862,727,2.862,728,1.98,729,2.835,730,2.862,731,3.538,732,2.835,733,2.862,735,2.919,736,3.013,1298,2.388,1299,2.36,1300,2.36,1301,2.499,1302,2.736,2086,3.588,2180,3.203,2549,4.671,4150,3.345,4335,5.344,4337,3.664,7895,5.057,7896,5.057,7897,5.057,7898,5.057]],["title/classes/DomainObject.html",[0,0.229,1857,2.884]],["body/classes/DomainObject.html",[0,0.293,2,0.991,3,0.023,4,0.023,5,0.012,7,0.133,8,1.313,9,4.122,26,2.487,27,0.52,29,0.685,30,0.001,31,0.484,32,0.153,33,0.431,34,2.148,35,1.04,95,0.111,101,0.021,103,0.001,104,0.001,116,4.051,127,1.091,165,0.86,208,3.199,214,3.592,217,1.138,227,1.148,334,0.949,405,2.94,595,4.459,661,5.022,692,4.986,884,5.138,1854,6.952,1855,11.925,1856,7.53,1857,4.652,1858,9.095,1859,7.963,1860,8.281,1861,10.05,7259,7.207,7899,10.879,7900,8.62,7901,8.62]],["title/classes/DomainObjectFactory.html",[0,0.229,7902,6.23]],["body/classes/DomainObjectFactory.html",[0,0.166,2,0.562,3,0.013,4,0.013,5,0.007,7,0.075,8,0.885,27,0.53,29,1.023,30,0.001,31,0.689,32,0.184,33,0.614,34,1.892,35,1.453,47,0.641,55,2.516,59,3.259,95,0.126,101,0.009,103,0,104,0,127,0.618,138,3.186,144,3.217,148,1.511,165,0.58,185,4.803,187,0.699,216,1.356,234,0.792,305,1.405,329,3.468,359,3.056,366,2.689,379,2.031,380,1.843,381,2.415,404,1.775,538,3.29,573,3.712,574,2.214,596,3.875,627,2.284,660,7.207,661,4.648,662,5.493,665,4.114,666,5.493,667,5.653,668,4.114,669,4.114,670,4.114,671,4.04,672,4.479,673,4.941,674,6.02,675,5.782,676,6.913,677,2.765,682,2.738,683,4.114,684,2.765,685,5.132,686,5.347,687,4.545,688,5.172,689,4.076,690,2.738,691,2.558,692,4.386,693,2.666,694,2.621,695,2.738,696,5.054,697,2.765,698,4.852,699,2.738,700,7.075,701,4.205,702,6.877,703,2.765,704,3.626,705,2.738,706,2.765,707,2.738,708,2.765,709,4.114,712,2.738,713,6.073,714,2.765,715,2.738,716,4.114,717,4.04,718,4.114,719,2.765,720,4.768,721,3.937,722,2.154,723,2.738,724,2.738,725,2.738,726,2.765,727,2.765,728,2.873,729,2.738,730,2.765,731,3.853,732,2.738,733,2.765,735,2.82,736,2.911,1298,3.466,1299,3.424,1300,3.424,1301,3.626,1302,3.97,1382,3.015,1854,4.279,1857,3.138,1940,3.094,2086,3.466,2180,3.094,2485,2.11,2657,3.466,2658,3.4,3852,3.339,6145,3.182,7902,6.779,7903,4.885,7904,4.885,7905,4.885,7906,7.338,7907,3.4]],["title/classes/DownloadFileParams.html",[0,0.229,6130,4.331]],["body/classes/DownloadFileParams.html",[0,0.453,2,0.744,3,0.017,4,0.024,5,0.013,7,0.1,26,2.6,27,0.374,30,0.001,32,0.171,39,1.734,47,0.976,95,0.156,99,1.098,101,0.025,103,0.001,104,0.001,150,2.373,165,0.711,204,2.22,334,0.712,347,1.832,364,1.666,369,1.427,373,4.748,374,2.067,375,4.532,376,1.517,377,5.86,379,1.491,380,1.353,467,3.699,469,2.854,470,5.12,471,4.753,565,3.416,1000,5.197,1001,6.658,1031,3.313,1044,3.176,1291,2.753,1381,3.774,2744,4.609,2915,5.457,3574,3.155,4227,2.228,5725,5.217,5740,6.777,6064,4.74,6077,6.735,6083,6.15,6111,3.22,6114,4.424,6115,4.504,6116,4.504,6117,5.978,6119,7.649,6122,8.039,6123,7.638,6124,7.777,6125,4.504,6126,4.424,6127,7.766,6128,4.424,6129,4.504,6130,5.776,6131,7.39,6132,4.281,6133,4.504,6134,4.504,6135,4.35,6136,4.424,6137,4.35,6138,4.35,6139,4.156,6140,4.504,6141,4.424,6142,4.504,6143,4.35,6144,4.424,6145,4.216,6146,4.216,6147,4.504,7908,6.472,7909,6.472]],["title/classes/DtoCreator.html",[0,0.229,7910,5.892]],["body/classes/DtoCreator.html",[0,0.204,2,0.433,3,0.01,4,0.01,5,0.005,7,0.058,8,0.723,27,0.518,29,0.858,30,0.001,31,0.625,32,0.181,33,0.54,34,1.028,35,1.377,95,0.133,99,0.638,100,2.853,101,0.007,103,0.001,104,0,105,0.79,111,2.678,127,0.946,138,2.602,165,0.474,187,0.538,188,3.524,216,1.108,217,1.719,227,1.271,234,0.972,347,1.736,369,1.321,371,1.652,461,2.811,564,3.68,591,2.563,592,2.644,806,1.585,843,1.642,966,1.926,1041,5.17,1344,2.571,1474,2.034,1828,4.638,1865,3.139,1866,2.129,1881,2.383,1952,4.994,1984,5.761,2171,1.617,2172,1.799,2173,1.735,2344,4.098,2594,3.759,2689,3.883,2691,4.739,2693,9.034,2696,4.682,2698,5.414,2701,1.735,2709,7.782,2777,2.939,2778,2.451,3022,2.858,3050,8.131,3051,5.011,3055,5.011,3408,3.145,3418,2.618,3419,2.322,3422,3.145,3715,2.351,3733,5.637,3803,3.032,3804,2.939,3898,2.053,4533,4.503,4927,3.286,4988,3.032,6260,4.942,6789,7.125,7276,8.25,7430,2.669,7570,3.286,7910,6.527,7911,11.623,7912,3.475,7913,9.436,7914,9.405,7915,5.994,7916,5.994,7917,5.994,7918,7.873,7919,7.873,7920,5.994,7921,5.994,7922,5.994,7923,5.994,7924,5.994,7925,3.762,7926,3.762,7927,3.762,7928,3.762,7929,5.537,7930,10.763,7931,3.762,7932,8.292,7933,5.537,7934,3.762,7935,5.537,7936,3.762,7937,3.762,7938,3.762,7939,3.762,7940,5.537,7941,3.762,7942,5.537,7943,3.762,7944,5.537,7945,3.762,7946,5.537,7947,3.762,7948,2.726,7949,5.236,7950,5.236,7951,3.475,7952,3.475,7953,3.286,7954,5.537,7955,3.475,7956,5.537,7957,5.537,7958,3.475,7959,3.475,7960,3.475,7961,3.475,7962,3.475,7963,3.475,7964,3.475,7965,3.475,7966,3.475,7967,3.475,7968,5.537,7969,3.286,7970,3.475,7971,3.475,7972,3.475,7973,3.475,7974,6.902,7975,3.475,7976,3.475,7977,3.475,7978,3.286,7979,3.286,7980,5.537,7981,3.475,7982,3.475,7983,3.286,7984,3.286,7985,3.145,7986,3.286,7987,3.286,7988,3.475,7989,3.475,7990,3.475,7991,3.475,7992,3.475,7993,3.475,7994,3.286,7995,3.475,7996,3.475,7997,3.475,7998,3.475,7999,3.475,8000,3.475,8001,3.475,8002,3.475,8003,3.475,8004,3.145,8005,3.475,8006,3.032,8007,3.475,8008,3.475,8009,3.475]],["title/injectables/DurationLoggingInterceptor.html",[105,0.889,8010,6.23]],["body/injectables/DurationLoggingInterceptor.html",[0,0.289,3,0.023,4,0.023,5,0.012,7,0.131,8,1.3,27,0.448,29,0.856,30,0.001,31,0.605,32,0.151,33,0.539,35,1.025,95,0.16,101,0.016,103,0.001,104,0.001,105,1.42,107,2.032,127,1.075,187,1.216,199,3.242,214,2.804,215,2.748,217,1.122,227,0.896,379,1.957,691,5.644,731,4.655,1052,4.392,1053,5.521,1268,5.454,1270,6.453,1545,2.712,2200,9.414,2333,8.774,2993,5.617,4474,8.189,6332,7.987,6339,8.687,6793,5.911,8010,9.955,8011,11.838,8012,7.845,8013,9.414,8014,9.414,8015,8.493,8016,9.414,8017,10.877,8018,10.877,8019,8.493,8020,9.414,8021,7.845,8022,8.493,8023,8.493,8024,8.493,8025,8.493,8026,8.493]],["title/classes/ElementContentBody.html",[0,0.229,8027,4.887]],["body/classes/ElementContentBody.html",[0,0.449,2,0.787,3,0.018,4,0.018,5,0.01,7,0.105,9,3.274,27,0.284,30,0.001,31,0.598,32,0.193,47,0.68,83,2.059,95,0.147,99,1.161,101,0.025,103,0.001,104,0.001,144,2.91,163,2.158,165,0.739,240,2.145,364,1.268,369,1.509,374,2.186,376,1.605,379,2.154,404,1.928,467,3.639,470,4.486,524,5.511,999,6.284,1031,2.194,1044,3.36,2344,4.4,2594,5.047,2880,3.274,2914,4.396,2915,4.935,3239,4.279,3242,5.666,3245,3.613,3774,7.137,4040,4.68,4071,4.68,4072,7.043,5504,7.279,5506,7.279,5508,7.279,5541,7.279,5542,6.392,5543,6.392,5739,4.528,5740,6.914,6850,4.858,8027,8.959,8028,6.93,8029,5.074,8030,6.846,8031,6.846,8032,7.556,8033,5.074,8034,8.12,8035,7.556,8036,5.074,8037,4.858,8038,4.858,8039,4.858,8040,4.858,8041,5.074,8042,5.074,8043,5.074]],["title/controllers/ElementController.html",[481,2.629,2765,5.892]],["body/controllers/ElementController.html",[0,0.157,3,0.012,4,0.012,5,0.007,7,0.071,8,0.848,10,3.439,27,0.396,29,0.756,30,0.001,31,0.534,32,0.194,33,0.476,35,1.149,36,2.514,95,0.155,100,1.545,101,0.009,103,0,104,0,111,0.923,112,2.795,187,0.661,206,3.599,215,1.494,216,1.3,217,1.125,221,2.244,227,0.487,234,1.14,264,4.338,364,1.764,368,1.823,369,1.55,376,1.082,447,1.935,481,1.799,483,2.221,491,6.191,502,7.232,506,7.538,509,8.383,513,6.684,543,4.77,552,2.964,553,6.405,554,8.27,555,2.436,556,2.497,557,2.519,558,2.194,559,2.519,561,2.519,563,5.877,564,4.811,883,2.947,1016,2.51,1041,2.564,1469,6.778,2037,5.914,2344,4.461,2594,4.761,2686,5.452,2758,6.652,2759,6.864,2765,6.142,2769,2.281,2770,4.032,2873,2.885,2881,4.34,2882,4.189,2926,7.234,2928,5.667,2930,7.234,2931,7.234,2934,7.538,2936,6.864,2949,9.555,2951,4.189,2954,3.344,2955,2.612,2962,3.721,2972,6.864,2973,6.864,3187,4.237,3262,6.748,3305,3.474,3372,4.806,3566,5.492,3699,5.667,3700,3.859,3705,4.264,3710,4.237,3712,4.264,4038,2.849,4039,3.721,4061,4.032,4176,7.866,4179,7.119,4858,4.264,4871,6.495,5593,11.019,6921,8.951,8032,3.276,8034,6.043,8035,4.989,8037,6.756,8044,4.616,8045,7.866,8046,8.515,8047,4.616,8048,4.616,8049,4.616,8050,4.616,8051,4.616,8052,4.616,8053,7.031,8054,4.616,8055,4.616,8056,4.616,8057,8.317,8058,4.616,8059,4.616,8060,4.616,8061,4.616,8062,4.616,8063,4.616,8064,4.616,8065,4.616,8066,4.616,8067,4.616,8068,4.616,8069,4.616,8070,9.521,8071,4.616,8072,4.616,8073,4.616,8074,4.616,8075,4.616,8076,4.616,8077,4.616,8078,4.616,8079,4.616,8080,4.616,8081,4.616]],["title/injectables/ElementUc.html",[105,0.889,2759,5.437]],["body/injectables/ElementUc.html",[0,0.185,3,0.014,4,0.014,5,0.008,7,0.084,8,0.961,26,2.779,27,0.43,29,0.821,30,0.001,31,0.58,32,0.154,33,0.517,35,1.135,36,2.246,39,3.178,59,1.692,95,0.156,99,0.925,101,0.01,103,0,104,0,105,1.049,107,1.305,111,2.43,112,2.78,127,1.008,187,0.781,199,3.04,216,2.033,217,1.566,221,2.864,227,0.84,234,1.525,305,2.705,347,1.916,461,1.835,766,2.344,806,3.354,839,2.56,883,2.287,982,2.732,1019,3.181,1052,4.832,1487,3.117,1545,1.742,1865,6.365,1866,3.087,1880,3.553,1881,3.455,1952,6.361,1977,3.796,2014,6.97,2187,3.666,2344,4.273,2594,4.85,2598,5.255,2759,6.419,2767,2.459,2799,3.666,2811,3.409,2870,5.878,2873,6.464,2881,5.235,2882,5.604,3089,5.65,3092,8.865,3098,8.078,3115,8.592,3126,7.346,3129,4.397,3153,4.765,3187,6.232,3247,6.232,3364,4.765,3538,7.857,3539,9.559,3672,7.664,3678,6.419,3767,4.261,3769,4.261,3804,4.261,3810,6.22,3830,3.455,3831,4.56,3832,3.666,4000,3.409,4180,8.215,4186,7.581,4202,5.038,5541,7.069,5542,7.069,5543,7.069,5596,8.687,8045,8.687,8082,5.454,8083,9.404,8084,5.454,8085,5.454,8086,5.454,8087,5.454,8088,5.454,8089,5.454,8090,5.454,8091,5.454,8092,5.454,8093,5.454,8094,9.033,8095,5.454,8096,4.397,8097,5.454,8098,7.963,8099,5.454,8100,5.454,8101,4.56,8102,5.454,8103,5.454]],["title/modules/EncryptionModule.html",[425,1.808,8104,4.887]],["body/modules/EncryptionModule.html",[0,0.285,3,0.022,4,0.022,5,0.012,30,0.001,47,0.61,95,0.164,101,0.016,103,0.001,104,0.001,187,1.2,217,1.108,227,0.885,234,1.36,425,3.154,427,3.1,428,3.269,429,3.371,430,3.356,431,3.327,432,3.951,433,4.031,438,6.182,442,4.298,443,3.298,444,3.215,449,4.298,687,3.89,789,8.648,801,4.891,836,6.171,837,7.924,839,5.019,1052,5.217,1053,5.804,1545,2.679,2076,5.643,8104,9.484,8105,8.386,8106,8.386,8107,7.747,8108,8.723,8109,10.281,8110,7.747,8111,7.326,8112,7.747,8113,10.872,8114,7.747,8115,8.386,8116,8.386,8117,7.747,8118,8.386]],["title/classes/EntityNotFoundError.html",[0,0.229,510,4.887]],["body/classes/EntityNotFoundError.html",[0,0.261,2,0.882,3,0.02,4,0.02,5,0.011,7,0.118,8,1.217,27,0.541,29,0.609,30,0.001,31,0.43,32,0.189,33,0.564,35,0.925,47,0.929,55,1.686,59,2.379,95,0.129,101,0.015,103,0.001,104,0.001,127,0.97,165,0.797,187,1.098,204,4.109,216,2.495,364,2.306,380,2.109,404,1.827,406,2.457,510,7.309,511,5.164,564,2.845,596,3.879,885,5.609,1013,5.492,1016,2.738,1253,5.199,1291,5.097,1327,4.453,1472,8.253,1473,7.444,1474,4.066,1475,7.24,1479,4.995,1480,4.298,1481,4.995,1482,4.995,1483,4.995,1484,4.995,1485,4.995,1486,4.675,1487,4.382,1488,5.99,1489,6.41,1493,4.856,3840,7.083,8119,10.088,8120,7.667,8121,7.667,8122,7.667,8123,7.667]],["title/classes/ErrorLoggable.html",[0,0.229,8124,5.437]],["body/classes/ErrorLoggable.html",[0,0.332,2,0.671,3,0.015,4,0.015,5,0.008,7,0.09,8,1.009,27,0.488,29,0.847,30,0.001,31,0.599,32,0.17,33,0.534,35,1.179,47,0.776,95,0.151,101,0.011,103,0.001,104,0.001,111,2.615,127,0.738,144,3.086,165,0.66,187,0.835,204,4.486,214,2.76,215,1.888,216,1.972,217,1.491,227,1.24,240,3.538,329,1.718,347,1.703,369,1.843,374,2.67,468,4.557,503,6.43,535,3.156,558,2.772,661,2.458,704,2.882,722,2.573,731,3.287,806,2.458,953,3.801,1062,3.648,1126,4.227,1291,4.156,1298,3.948,1299,3.901,1300,3.901,1301,4.131,1302,3.156,1303,3.988,1304,3.859,1327,3.301,1378,3.859,1379,3.516,1440,3.988,1469,7.47,1478,7.302,1491,3.334,1492,3.516,1542,4.559,1543,5.077,1547,5.308,1987,3.746,2263,4.14,2400,3.334,2744,3.727,3870,4.703,4631,4.877,7629,4.324,8124,6.739,8125,5.834,8126,9.769,8127,8.359,8128,8.359,8129,8.359,8130,5.834,8131,5.834,8132,9.769,8133,5.834,8134,8.359,8135,5.834,8136,5.834,8137,5.544,8138,5.772,8139,8.359,8140,5.834,8141,8.359,8142,5.834,8143,5.834,8144,5.834,8145,5.834,8146,8.359,8147,5.834,8148,5.834,8149,10.669,8150,5.834,8151,5.834,8152,4.433,8153,5.834,8154,8.359,8155,5.834,8156,5.834,8157,8.359,8158,5.834,8159,4.14,8160,5.096,8161,4.877,8162,5.834,8163,5.834,8164,5.834,8165,5.834,8166,5.834,8167,5.834,8168,8.359,8169,5.834,8170,5.834,8171,5.834,8172,5.834]],["title/injectables/ErrorLogger.html",[105,0.889,8173,5.639]],["body/injectables/ErrorLogger.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.198,27,0.513,29,0.981,30,0.001,31,0.693,32,0.173,33,0.618,35,1.432,72,3.512,95,0.158,101,0.014,103,0.001,104,0.001,105,1.308,107,1.79,111,1.496,127,0.947,148,4.067,187,1.071,204,3.405,216,1.383,217,1.567,336,1.822,427,2.765,574,3.392,839,3.512,1052,4.54,1327,4.686,1542,6.508,2993,4.949,6321,6.031,7661,5.208,8173,9.313,8174,12.69,8175,7.482,8176,9.926,8177,9.926,8178,9.926,8179,10.364,8180,7.482,8181,9.926,8182,7.482,8183,9.926,8184,7.482,8185,9.926,8186,7.482,8187,9.926,8188,7.482,8189,6.536,8190,7.754,8191,6.031,8192,6.912,8193,6.536,8194,10.96,8195,7.482,8196,7.482,8197,7.482,8198,7.482]],["title/classes/ErrorMapper.html",[0,0.229,8199,5.892]],["body/classes/ErrorMapper.html",[0,0.29,2,0.981,3,0.023,4,0.023,5,0.012,7,0.131,8,1.304,27,0.354,29,0.677,30,0.001,31,0.479,32,0.12,33,0.427,35,1.029,95,0.152,101,0.016,103,0.001,104,0.001,187,1.221,204,4.509,227,0.9,234,2.023,502,5.331,506,5.556,627,3.692,1439,5.964,1440,5.83,1441,6.321,1460,7.13,2037,7.198,2685,7.127,3543,5.304,6064,4.954,8199,9.44,8200,8.529,8201,10.958,8202,8.529,8203,10.053,8204,8.529,8205,10.806,8206,5.936,8207,11.862,8208,8.529,8209,8.529,8210,6.662,8211,8.529,8212,8.529]],["title/modules/ErrorModule.html",[425,1.808,6321,5.437]],["body/modules/ErrorModule.html",[0,0.305,3,0.024,4,0.024,5,0.013,30,0.001,95,0.163,101,0.017,103,0.001,104,0.001,187,1.286,329,3.289,379,2.07,425,3.256,427,3.321,428,3.503,429,3.612,430,3.596,431,3.564,432,4.127,433,3.388,438,6.291,442,4.489,443,3.533,444,3.444,449,4.489,836,5.187,1052,3.662,1110,7.17,1819,7.17,3459,6.653,6321,10.738,6334,7.772,6338,10.624,7668,6.729,8213,8.986,8214,8.986,8215,8.986,8216,10.315,8217,6.828,8218,9.335,8219,8.986,8220,8.986,8221,6.828]],["title/classes/ErrorResponse.html",[0,0.229,1486,4.113]],["body/classes/ErrorResponse.html",[0,0.237,2,0.802,3,0.019,4,0.019,5,0.01,7,0.107,27,0.517,29,0.554,30,0.001,31,0.392,32,0.193,33,0.538,47,0.998,55,2.652,59,2.165,95,0.089,101,0.013,103,0.001,104,0.001,127,1.198,165,0.748,187,0.999,204,4.439,216,2.537,309,5.36,379,2.477,394,5.412,565,6.087,577,5.309,1016,3.382,1253,6.05,1291,5.13,1327,5.023,1473,7.497,1474,4.317,1486,5.775,1487,3.987,1498,8.356,1499,7.019,1500,6.366,1507,6.726,1508,6.527,1510,5.92,1512,8.273,1514,8.749,1515,6.082,1516,8.749,1617,6.094,2621,3.295,2789,3.682,3887,6.445,3888,5.45,3889,6.445,8222,6.976,8223,6.976,8224,9.471,8225,6.976,8226,6.976,8227,6.976,8228,6.976]],["title/classes/ErrorUtils.html",[0,0.229,1440,4.611]],["body/classes/ErrorUtils.html",[0,0.253,2,0.856,3,0.02,4,0.02,5,0.011,7,0.114,8,1.193,27,0.492,29,0.94,30,0.001,31,0.665,32,0.139,33,0.592,35,1.428,47,0.808,59,2.309,95,0.143,101,0.014,103,0.001,104,0.001,145,2.552,187,1.065,204,4.795,227,1.249,234,1.207,334,0.819,371,2.05,379,2.728,558,3.536,627,4.242,806,4.987,1062,5.166,1440,6.761,1472,7.307,3672,8.774,3876,5.813,8229,7.441,8230,9.89,8231,9.89,8232,12.324,8233,9.89,8234,9.89,8235,7.441,8236,8.955,8237,9.89,8238,7.441,8239,9.89,8240,7.441,8241,9.897,8242,9.89,8243,7.441,8244,7.441,8245,11.838,8246,7.441]],["title/injectables/EtherpadService.html",[105,0.889,8247,5.639]],["body/injectables/EtherpadService.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.122,8,1.244,26,2.531,27,0.428,29,0.819,30,0.001,31,0.579,32,0.161,33,0.516,35,0.956,36,2.239,39,2.762,47,0.955,94,3.766,95,0.156,101,0.02,103,0.001,104,0.001,105,1.358,107,1.896,111,1.584,112,2.569,127,1.003,163,3.25,187,1.134,204,3.536,215,2.564,216,1.465,217,1.513,221,1.867,227,1.088,234,1.285,371,2.184,766,3.405,784,4.183,883,3.322,1052,4.669,1053,5.38,1158,4.216,1474,4.118,1545,2.531,2586,4.183,2675,5.955,8247,8.618,8248,7.924,8249,10.308,8250,6.922,8251,9.342,8252,7.924,8253,10.308,8254,7.924,8255,7.32,8256,6.922,8257,10.308,8258,7.924,8259,7.924,8260,7.924,8261,7.924,8262,7.32,8263,7.924,8264,7.32,8265,5.623]],["title/classes/ExternalGroupDto.html",[0,0.229,8266,5.125]],["body/classes/ExternalGroupDto.html",[0,0.276,2,0.935,3,0.022,4,0.022,5,0.011,7,0.125,27,0.556,29,0.646,30,0.001,31,0.688,32,0.193,33,0.58,47,0.944,83,3.686,95,0.134,101,0.016,103,0.001,104,0.001,127,1.029,165,0.828,200,2.649,405,2.833,595,2.809,854,5.852,1277,4.194,2136,3.254,2621,3.841,3091,5.288,4303,3.568,5236,5.083,6744,4.846,6745,5.02,8266,9.635,8267,11.305,8268,8.132,8269,10.133,8270,8.597,8271,10.482,8272,8.132,8273,8.132,8274,8.132,8275,9.351,8276,8.132,8277,8.132,8278,9.061,8279,8.132,8280,6.799,8281,7.512,8282,7.104,8283,7.104,8284,7.104,8285,7.104,8286,7.104,8287,7.104,8288,8.132,8289,8.132]],["title/classes/ExternalGroupUserDto.html",[0,0.229,8278,5.269]],["body/classes/ExternalGroupUserDto.html",[0,0.32,2,1.082,3,0.025,4,0.025,5,0.013,7,0.145,27,0.515,29,0.747,30,0.001,31,0.528,32,0.174,33,0.471,47,0.835,95,0.121,99,1.595,101,0.018,103,0.001,104,0.001,127,1.19,165,0.907,405,3.103,595,3.249,1277,6.659,4538,7.622,8267,10.794,8278,10.343,8290,8.689,8291,8.333,8292,10.609,8293,8.689,8294,8.216,8295,9.406,8296,8.689,8297,8.689]],["title/classes/ExternalSchoolDto.html",[0,0.229,8298,4.999]],["body/classes/ExternalSchoolDto.html",[0,0.315,2,1.067,3,0.025,4,0.025,5,0.013,7,0.143,27,0.534,29,0.737,30,0.001,31,0.721,32,0.18,33,0.616,47,0.976,101,0.018,103,0.001,104,0.001,127,1.174,165,0.9,405,3.077,595,3.204,854,6.217,2136,3.712,4303,4.069,6744,5.527,6745,5.725,8267,11.026,8298,9.774,8299,9.276,8300,7.702,8301,11.387,8302,9.276,8303,9.276,8304,6.875,8305,7.477]],["title/classes/ExternalSource.html",[0,0.229,8306,4.887]],["body/classes/ExternalSource.html",[0,0.327,2,1.105,3,0.025,4,0.025,5,0.014,7,0.148,27,0.52,29,0.763,30,0.001,31,0.539,32,0.176,33,0.481,47,0.946,48,5.874,101,0.018,103,0.001,104,0.001,127,1.216,165,0.919,405,3.144,417,7.121,418,7.745,595,3.319,854,6.313,6744,5.725,6745,5.93,8306,9.65,8307,13.005,8308,9.608,8309,11.634,8310,9.608]],["title/classes/ExternalSourceEntity.html",[0,0.229,8311,5.269]],["body/classes/ExternalSourceEntity.html",[0,0.303,2,1.024,3,0.024,4,0.024,5,0.013,7,0.137,27,0.503,29,0.707,30,0.001,31,0.5,32,0.17,33,0.446,47,0.88,95,0.142,96,2.407,101,0.021,103,0.001,104,0.001,127,1.127,165,0.877,240,3.79,334,0.98,364,2.057,398,2.608,405,3.001,595,3.077,854,6.391,1114,5.574,2618,5.684,4926,5.121,6627,5.986,6744,5.307,6745,5.497,8311,8.674,8312,11.702,8313,8.227,8314,11.066,8315,11.104,8316,8.906,8317,6.601,8318,6.957,8319,7.446]],["title/interfaces/ExternalSourceEntityProps.html",[334,0.742,8314,5.892]],["body/interfaces/ExternalSourceEntityProps.html",[0,0.318,3,0.025,4,0.025,5,0.013,7,0.144,30,0.001,32,0.16,47,0.936,95,0.147,96,2.524,101,0.022,103,0.001,104,0.001,165,0.903,240,3.582,334,1.028,336,2.275,398,2.735,405,2.524,854,6.667,1114,5.682,2618,5.854,4926,5.273,6744,5.566,6745,5.765,8311,7.296,8312,8.628,8313,8.628,8314,10.797,8317,6.922,8318,7.296,8319,7.809]],["title/classes/ExternalTool.html",[0,0.229,158,3.379]],["body/classes/ExternalTool.html",[0,0.197,2,0.667,3,0.015,4,0.015,5,0.008,7,0.089,8,1.004,27,0.552,29,0.96,30,0.001,31,0.678,32,0.185,33,0.659,34,1.67,35,1.175,47,0.966,55,2.478,95,0.145,101,0.016,103,0.001,104,0.001,127,0.734,136,6.652,150,3.902,154,5.738,158,4.171,165,0.658,194,3.779,198,2.774,214,2.749,227,1.028,236,6.206,334,0.638,347,2.389,404,1.508,405,2.25,595,2.004,596,1.761,627,3.651,1939,6.142,2084,4.675,2085,4.849,2136,2.321,2599,7.71,2600,5.796,2603,8.954,2606,3.193,4303,2.545,4945,5.709,5292,5.679,5600,4.531,5604,8.085,5606,5.358,5612,4.202,5614,4.531,5615,4.116,5616,4.407,5623,3.836,5624,4.202,5640,6.022,5656,3.779,5659,6.503,6090,3.222,6362,4.531,6991,6.341,6992,3.725,7024,4.037,7025,4.299,7028,4.299,7029,4.675,7124,8.313,7125,8.498,7126,8.018,7145,3.898,7149,3.965,7172,6.933,8320,11.601,8321,8.325,8322,8.325,8323,8.325,8324,5.8,8325,5.8,8326,5.8,8327,5.8,8328,5.8,8329,5.8,8330,5.8,8331,5.8,8332,7.69,8333,5.8,8334,7.69,8335,5.8,8336,5.067,8337,5.358,8338,5.067,8339,7.272]],["title/classes/ExternalToolConfig.html",[0,0.229,2603,4.999]],["body/classes/ExternalToolConfig.html",[0,0.316,2,1.069,3,0.025,4,0.025,5,0.013,7,0.143,9,4.446,27,0.512,29,0.738,30,0.001,31,0.522,32,0.188,33,0.465,47,0.829,95,0.119,101,0.018,103,0.001,104,0.001,127,1.176,165,0.901,198,4.446,209,4.427,238,6.673,405,3.081,595,3.212,2600,5.612,2602,7.773,2603,9.781,2604,8.588,2606,6.79,2610,6.597,2621,4.391,2622,6.597,5236,5.811,8340,12.859,8341,11.403]],["title/classes/ExternalToolConfigCreateParams.html",[0,0.229,2626,4.887]],["body/classes/ExternalToolConfigCreateParams.html",[0,0.331,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,9,6.566,27,0.487,30,0.001,32,0.188,47,0.852,95,0.125,101,0.019,103,0.001,104,0.001,165,0.926,198,4.65,209,4.33,238,6.805,2600,5.49,2606,6.924,2625,8.983,2626,8.491,8342,12.578,8343,9.724,8344,9.724]],["title/classes/ExternalToolConfigEntity.html",[0,0.229,2614,5.437]],["body/classes/ExternalToolConfigEntity.html",[0,0.301,2,1.017,3,0.023,4,0.023,5,0.013,7,0.136,9,5.288,27,0.501,29,0.703,30,0.001,31,0.497,32,0.189,33,0.443,47,0.804,95,0.142,96,2.391,101,0.017,103,0.001,104,0.001,127,1.12,165,0.874,198,4.231,209,4.35,238,6.526,240,3.779,364,2.049,369,1.95,398,2.59,405,2.988,595,3.056,1031,3.865,2600,5.515,2606,6.641,2610,6.278,2613,7.397,2614,10.487,2618,5.661,2621,4.179,2622,6.278,3399,6.278,5236,5.53,8345,12.637,8346,11.058,8347,8.847]],["title/classes/ExternalToolConfigResponse.html",[0,0.229,2636,5.437]],["body/classes/ExternalToolConfigResponse.html",[0,0.331,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,9,6.566,27,0.487,30,0.001,32,0.188,47,0.852,95,0.125,101,0.019,103,0.001,104,0.001,165,0.926,198,4.65,209,4.33,238,6.805,2600,5.49,2606,6.924,2635,7.838,2636,9.446,8348,12.578,8349,9.724,8350,9.724]],["title/injectables/ExternalToolConfigurationService.html",[105,0.889,8351,5.437]],["body/injectables/ExternalToolConfigurationService.html",[0,0.19,3,0.015,4,0.015,5,0.008,7,0.086,8,0.979,26,2.184,27,0.462,29,0.883,30,0.001,31,0.624,32,0.156,33,0.556,35,1.263,95,0.16,99,0.95,101,0.011,103,0,104,0,105,1.069,107,1.339,111,1.119,116,4.199,127,0.708,136,5.073,139,7.598,140,6.558,145,1.444,148,1.732,154,2.552,158,6.801,167,3.098,187,0.801,192,1.669,194,3.647,195,7.036,198,2.677,199,2.137,200,2.644,201,4.25,209,4.295,216,1.035,217,1.617,227,1.261,276,6.542,277,4.189,290,3.231,291,5.172,347,2.133,369,1.234,839,2.628,1014,5.138,1822,3.973,2485,2.418,2600,5.057,5857,4.513,8351,6.542,8352,8.805,8353,5.172,8354,9.545,8355,9.545,8356,8.115,8357,8.115,8358,5.172,8359,7.954,8360,5.598,8361,7.253,8362,5.598,8363,10.265,8364,5.598,8365,7.695,8366,10.236,8367,5.598,8368,8.818,8369,5.598,8370,6.542,8371,8.115,8372,8.818,8373,5.598,8374,8.115,8375,5.598,8376,5.598,8377,5.598,8378,5.598,8379,5.598,8380,9.144,8381,5.598,8382,6.785,8383,5.598,8384,5.598,8385,5.598,8386,8.115,8387,5.598,8388,4.681,8389,5.598,8390,5.598,8391,5.598,8392,4.681,8393,5.598,8394,5.598,8395,11.112,8396,5.598,8397,5.598,8398,5.598]],["title/injectables/ExternalToolConfigurationUc.html",[105,0.889,8399,5.639]],["body/injectables/ExternalToolConfigurationUc.html",[0,0.134,3,0.01,4,0.01,5,0.006,7,0.061,8,0.75,26,2.857,27,0.44,29,0.841,30,0.001,31,0.595,32,0.154,33,0.53,34,0.676,35,1.221,36,2.607,39,3.162,95,0.158,99,0.668,100,1.318,101,0.008,103,0,104,0,105,0.819,107,0.942,111,2.399,112,2.869,116,3.883,127,0.787,139,7.192,140,6.394,158,5.66,187,0.564,192,1.853,195,2.647,197,5.878,198,1.883,199,4.918,200,2.849,201,3.255,209,4.243,216,1.87,217,1.662,221,2.905,227,0.923,234,1.008,279,4.504,281,4.607,284,4.641,305,1.788,766,1.692,839,1.849,843,2.713,1014,3.779,1379,3.746,1862,6.496,1868,2.494,1977,2.741,2485,1.701,2600,4.791,2686,2.096,2767,1.775,3027,2.251,3129,3.175,4227,3.779,4630,3.23,4714,5.211,5275,8.136,5641,6.336,5664,5.398,5707,6.481,5720,7.674,5857,3.175,5944,6.408,5954,3.175,5957,5.43,5965,3.44,5971,5.742,5976,6.591,5977,7.85,5985,4.178,5990,5.197,5995,3.638,8351,8.538,8363,5.742,8365,6.208,8366,5.197,8368,7.114,8370,5.011,8372,5.742,8380,5.43,8392,3.293,8399,5.197,8400,10.141,8401,3.638,8402,7.114,8403,6.727,8404,7.114,8405,5.742,8406,7.701,8407,7.701,8408,3.077,8409,7.85,8410,3.938,8411,3.638,8412,3.938,8413,3.44,8414,3.938,8415,3.938,8416,3.938,8417,6.216,8418,3.638,8419,3.938,8420,3.938,8421,3.938,8422,3.938,8423,3.638,8424,3.638,8425,3.44,8426,6.216,8427,6.216,8428,5.742,8429,5.742,8430,3.638,8431,3.938,8432,3.938,8433,6.216,8434,7.701,8435,3.175,8436,6.216,8437,5.742,8438,5.742,8439,3.938,8440,3.938,8441,6.216,8442,3.938,8443,3.938,8444,6.216,8445,3.938,8446,6.216,8447,3.938,8448,5.742,8449,5.43,8450,5.742,8451,5.742,8452,5.43]],["title/classes/ExternalToolCreateParams.html",[0,0.229,8453,5.639]],["body/classes/ExternalToolCreateParams.html",[0,0.347,2,0.728,3,0.017,4,0.017,5,0.009,7,0.097,27,0.515,29,0.811,30,0.001,31,0.678,32,0.186,33,0.604,47,0.877,95,0.155,101,0.012,103,0.001,104,0.001,144,2.791,145,1.633,150,3.746,154,5.044,165,0.7,198,3.027,209,4.352,236,5.958,240,1.983,347,2.254,364,2.295,369,2.252,373,5.392,374,2.021,375,4.489,376,1.484,467,3.13,470,4.661,471,4.708,731,3.482,1508,3.582,2422,5.4,2489,3.617,2600,5.517,2606,3.484,2609,4.405,2623,9.388,2626,6.417,2627,4.491,3058,6.564,4039,5.102,4040,4.327,4071,4.327,4072,6.757,5418,5.609,5640,5.781,5729,6.417,5732,5.291,5733,5.291,5734,5.291,5739,4.186,5740,5.897,6991,6.087,7145,4.254,7149,4.327,7178,9.388,7186,6.729,8038,6.284,8039,4.491,8040,6.284,8453,7.404,8454,10.191,8455,5.102,8456,9.251,8457,9.737,8458,5.529,8459,5.847,8460,6.329,8461,6.329,8462,5.847,8463,5.529,8464,6.329,8465,6.329,8466,6.329,8467,5.847,8468,6.329,8469,5.847,8470,6.329,8471,6.329]],["title/entities/ExternalToolEntity.html",[380,1.41,8472,4.786]],["body/entities/ExternalToolEntity.html",[0,0.218,3,0.017,4,0.017,5,0.009,7,0.099,27,0.535,29,0.818,30,0.001,31,0.578,32,0.183,33,0.635,47,0.922,55,1.967,95,0.143,96,1.735,101,0.017,103,0.001,104,0.001,150,3.775,154,5.076,165,0.707,216,1.187,236,6.003,240,4.132,290,3.706,347,2.268,364,2.388,369,2.877,370,3.905,380,1.87,381,2.113,386,5.883,394,5.112,398,1.88,399,3.502,402,2.641,404,1.163,405,1.735,406,2.057,1508,3.633,1925,4.648,2084,5.175,2085,5.367,2136,2.569,2600,5.696,2611,8.975,4287,6.347,4293,5.569,4294,3.869,4303,2.817,4945,5.523,5623,4.246,5624,4.652,5640,5.826,5656,4.183,5659,5.015,5674,5.175,6090,3.566,6362,5.015,6991,6.134,6992,4.123,7024,4.469,7025,4.758,7028,4.758,7029,5.175,7086,8.975,8338,5.608,8472,6.347,8473,13.051,8474,8.606,8475,8.975,8476,8.975,8477,6.42,8478,6.42,8479,6.42,8480,6.42,8481,6.42,8482,6.42,8483,6.42,8484,6.42,8485,6.42,8486,6.42,8487,7.478,8488,6.42,8489,6.42,8490,6.42]],["title/classes/ExternalToolEntityFactory.html",[0,0.229,8491,6.23]],["body/classes/ExternalToolEntityFactory.html",[0,0.135,2,0.458,3,0.011,4,0.011,5,0.006,7,0.061,8,0.756,27,0.533,29,1.01,30,0.001,31,0.714,32,0.185,33,0.602,34,1.33,35,1.368,47,0.801,55,2.339,59,2.969,95,0.113,101,0.015,103,0,104,0,127,0.504,138,2.722,144,3.011,146,2.676,148,1.232,150,1.46,154,4.01,165,0.495,185,4.891,195,2.676,196,2.825,200,1.297,209,3.661,216,1.159,217,1.405,227,1.122,234,1.427,236,2.322,238,4.76,277,1.593,279,2.885,290,2.298,325,2.951,329,3.418,331,2.489,359,2.174,366,2.192,369,0.878,371,2.137,379,2.027,380,2.001,381,2.063,404,1.135,461,0.917,471,1.694,538,2.81,596,3.706,627,1.952,660,6.943,661,4.282,662,4.932,665,3.515,666,4.932,667,5.322,668,3.515,669,3.515,670,3.515,671,3.451,672,3.941,673,4.348,674,6.333,675,5.268,676,6.702,677,2.253,682,2.232,683,3.515,684,2.253,685,4.607,686,4.801,687,4.081,688,4.644,689,3.482,690,2.232,691,2.085,692,3.786,693,2.172,694,2.136,695,2.232,696,4.537,697,2.253,698,4.269,699,2.232,700,7.07,701,3.848,702,6.178,703,2.253,704,3.832,705,2.232,706,2.253,707,2.232,708,2.253,709,2.232,710,2.522,711,2.372,712,2.232,713,5.595,714,2.253,715,2.232,716,3.515,717,3.451,718,3.515,719,2.253,720,2.154,721,2.136,722,1.756,723,2.232,724,2.232,725,2.232,726,2.253,727,2.253,728,1.559,729,2.232,730,2.253,731,2.465,732,2.232,733,2.253,735,2.298,736,2.372,737,5.702,905,1.653,1696,3.583,2076,3.309,2088,3.678,2606,2.192,2609,5.398,2611,6.251,4945,2.136,5369,4.026,5472,3.098,5602,1.994,5640,2.253,5686,2.594,5703,2.951,6968,2.557,6974,2.522,6976,3.971,6977,3.329,6978,2.557,6989,2.522,6991,2.372,7063,2.951,7086,5.054,7122,2.885,7127,2.633,7145,2.676,7152,3.329,7154,2.771,7155,4.764,7161,3.329,7171,7.355,7173,3.329,8472,4.449,8474,3.329,8475,5.054,8476,5.054,8487,5.242,8491,7.164,8492,10.164,8493,3.981,8494,8.798,8495,8.127,8496,5.791,8497,5.791,8498,3.981,8499,3.981,8500,3.981,8501,5.791,8502,3.981,8503,6.269,8504,3.981,8505,8.798,8506,3.981,8507,3.981,8508,3.209,8509,3.329,8510,3.981,8511,3.981,8512,3.981,8513,3.981]],["title/classes/ExternalToolFactory.html",[0,0.229,7163,5.639]],["body/classes/ExternalToolFactory.html",[0,0.251,2,0.426,3,0.01,4,0.01,5,0.005,7,0.057,8,0.714,27,0.521,29,1.005,30,0.001,31,0.698,32,0.183,33,0.6,34,1.015,35,1.336,47,0.43,55,2.551,59,3.333,95,0.118,101,0.018,103,0,104,0,127,0.469,136,3.7,138,2.57,144,2.935,146,2.489,148,1.145,150,1.358,154,3.371,158,1.855,165,0.468,185,4.989,195,2.489,196,2.628,200,1.206,201,1.939,209,1.275,216,1.094,217,1.584,227,1.224,236,2.159,238,4,277,3.696,278,2.814,279,4.289,281,2.744,290,2.137,325,2.744,329,3.163,331,2.315,359,2.052,366,2.038,371,2.328,379,1.704,380,1.546,381,1.948,404,1.53,461,0.853,471,1.575,538,2.653,596,3.641,627,1.843,660,6.602,661,4.149,662,4.735,665,3.318,666,4.735,667,5.042,668,3.318,669,3.318,670,3.318,671,3.258,672,3.757,673,4.145,674,6.197,675,5.084,676,6.521,677,2.096,682,2.076,683,3.318,684,2.096,685,4.423,686,4.609,687,3.918,688,4.458,689,3.288,690,2.076,691,1.939,692,3.669,693,2.021,694,1.987,695,2.076,696,4.356,697,2.096,698,4.07,699,2.076,700,7.443,701,3.751,702,6.021,703,2.096,704,2.925,705,2.076,706,2.096,707,2.076,708,2.096,709,2.076,712,2.076,713,5.422,714,2.096,715,2.076,716,3.318,717,3.258,718,3.318,719,2.096,720,2.003,721,1.987,722,1.633,723,2.076,724,2.076,725,2.076,726,2.096,727,2.096,728,1.45,729,2.076,730,2.096,731,2.327,732,2.076,733,2.096,735,2.137,736,2.206,737,5.033,905,1.538,1508,2.096,1696,3.382,2076,3.124,2599,2.683,2606,2.038,2609,2.577,4335,6.554,4337,2.683,4945,1.987,5472,2.925,5602,1.855,5640,2.096,5697,2.985,5702,2.893,5703,2.744,6968,2.378,6974,2.345,6976,2.345,6978,2.378,6989,2.345,6991,2.206,7117,4.949,7118,8.068,7120,3.235,7122,2.683,7123,4.387,7124,2.893,7125,2.683,7126,2.531,7127,2.449,7128,3.235,7129,3.235,7130,3.235,7131,6.459,7132,4.949,7133,3.235,7134,3.567,7135,2.985,7136,2.744,7137,2.814,7138,3.235,7139,2.744,7140,3.235,7141,3.235,7142,3.096,7143,3.235,7144,3.235,7145,2.489,7146,3.235,7147,3.235,7148,3.235,7149,2.531,7150,3.235,7151,3.096,7152,3.096,7153,3.235,7154,2.577,7155,4.497,7156,5.171,7157,6.459,7158,5.171,7159,5.171,7160,3.235,7161,3.096,7162,2.893,7163,6.182,7164,5.171,7165,3.235,7166,5.171,7167,3.235,7168,5.171,7169,8.603,7170,3.235,7171,7.062,7172,2.412,7173,3.096,7174,3.235,7175,3.235,7176,3.235,7177,3.235,8495,5.468,8497,5.468,8514,5.919,8515,3.703,8516,3.703,8517,3.703,8518,3.703]],["title/classes/ExternalToolIdParams.html",[0,0.229,8519,5.892]],["body/classes/ExternalToolIdParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,209,4.034,364,1.802,368,4.628,369,2.583,370,3.243,371,3.229,374,3.106,376,2.28,467,3.149,478,6.9,1000,5.011,2600,5.114,5639,9.826,5708,8.494,5709,8.494,8454,9.446,8519,10.237]],["title/classes/ExternalToolLogo.html",[0,0.229,8520,5.639]],["body/classes/ExternalToolLogo.html",[0,0.321,2,1.084,3,0.025,4,0.025,5,0.013,7,0.145,27,0.516,29,0.749,30,0.001,31,0.529,32,0.174,33,0.472,47,0.836,101,0.018,103,0.001,104,0.001,127,1.193,165,0.909,209,4.448,2600,5.639,5562,8.638,6866,9.615,7172,8.085,8320,11.288,8336,8.236,8520,11.267,8521,9.428,8522,11.501,8523,11.501,8524,9.428,8525,9.428,8526,9.428,8527,8.709]],["title/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.229,8528,5.892]],["body/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.228,2,0.77,3,0.018,4,0.018,5,0.009,7,0.103,8,1.111,27,0.533,29,0.532,30,0.001,31,0.376,32,0.187,33,0.527,35,1.111,47,0.893,55,1.473,59,2.078,95,0.135,101,0.013,103,0.001,104,0.001,111,1.339,127,0.848,163,2.112,165,0.728,187,0.959,200,3.429,204,3.889,209,4.228,214,3.041,215,2.167,216,2.477,227,0.707,364,2.202,404,1.668,406,2.146,558,3.183,564,2.485,596,3.729,798,7.087,1013,5.198,1016,2.391,1253,4.855,1291,2.85,1327,4.478,1472,8.028,1473,6.016,1474,3.848,1475,6.76,1479,4.364,1480,3.755,1481,4.364,1482,4.364,1483,4.364,1484,4.364,1485,4.364,1486,4.084,1487,7.325,1493,4.242,1542,5.732,1543,5.471,1545,2.139,1547,5.641,2600,4.594,2723,9.14,5640,5.958,5656,4.364,7172,8.003,8137,5.471,8138,5.695,8528,8.046,8529,8.486,8530,4.301,8531,6.187,8532,4.853,8533,5.851,8534,9.211,8535,7.701,8536,5.6,8537,3.948,8538,4.134,8539,6.698]],["title/classes/ExternalToolLogoFetchedLoggable.html",[0,0.229,8540,5.892]],["body/classes/ExternalToolLogoFetchedLoggable.html",[0,0.301,2,1.02,3,0.024,4,0.024,5,0.013,7,0.136,8,1.336,27,0.46,29,0.704,30,0.001,31,0.498,32,0.155,33,0.444,35,1.07,47,0.878,95,0.114,101,0.017,103,0.001,104,0.001,127,1.122,163,2.796,200,2.888,209,4.354,214,3.656,215,2.869,216,1.639,227,0.936,1327,3.502,1537,7.746,1542,5.635,1543,6.275,1545,2.832,1547,6.292,2600,5.27,5640,6.834,5656,5.777,7172,8.24,8137,6.275,8138,6.533,8529,9.734,8531,8.191,8535,10.574,8540,9.673,8541,8.867,8542,8.867,8543,8.867]],["title/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.229,8544,5.892]],["body/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.291,2,0.985,3,0.023,4,0.023,5,0.012,7,0.132,8,1.307,27,0.45,29,0.68,30,0.001,31,0.481,32,0.152,33,0.428,35,1.033,47,0.864,95,0.139,101,0.016,103,0.001,104,0.001,127,1.084,163,2.7,187,1.226,200,2.79,209,4.299,214,3.577,215,2.772,216,1.583,227,0.904,404,1.962,406,2.744,511,6.394,1327,3.383,1542,6.141,1543,6.176,1545,2.736,1547,6.214,2600,5.187,2686,6.324,5639,9.284,5651,7.161,7172,8.137,8137,6.176,8138,6.43,8529,9.581,8530,5.5,8537,5.048,8538,5.287,8544,9.465,8545,7.912,8546,7.161,8547,7.161,8548,8.565]],["title/classes/ExternalToolLogoService.html",[0,0.229,8409,4.999]],["body/classes/ExternalToolLogoService.html",[0,0.161,2,0.545,3,0.013,4,0.013,5,0.007,7,0.073,8,0.866,26,2.013,27,0.471,29,0.9,30,0.001,31,0.636,32,0.159,33,0.567,34,1.231,35,1.316,36,2.37,47,0.931,95,0.159,99,0.804,101,0.009,103,0,104,0,111,2.434,112,2.678,127,0.908,145,2.49,148,2.219,154,2.161,158,6.197,187,0.679,200,1.544,204,2.969,209,4.258,216,1.784,217,1.692,221,2.04,227,1.231,234,1.892,247,1.881,305,3.138,696,5.625,784,2.502,806,3.646,839,2.226,1016,1.693,1052,4.617,1158,2.523,1265,7.744,1266,2.709,1267,5.452,1268,3.044,1291,2.017,1379,2.857,1542,2.212,1545,1.514,2063,4.994,2074,3.241,2485,2.048,2600,5.091,3672,5.318,5562,6.718,5640,2.683,5976,7.38,5986,3.964,6866,9.754,7172,6.288,7309,3.514,8352,8.864,8358,4.38,8359,7.334,8361,6.577,8409,5.318,8435,3.822,8474,5.998,8520,8.668,8528,4.142,8540,4.142,8544,4.142,8549,4.741,8550,7.175,8551,7.175,8552,7.175,8553,7.175,8554,7.175,8555,7.175,8556,4.741,8557,7.175,8558,4.741,8559,7.175,8560,4.741,8561,4.741,8562,7.175,8563,4.741,8564,7.175,8565,4.741,8566,7.175,8567,4.741,8568,2.794,8569,7.175,8570,4.741,8571,6.268,8572,9.896,8573,4.38,8574,4.741,8575,4.741,8576,7.175,8577,4.741,8578,4.741,8579,4.741,8580,4.741,8581,4.741,8582,4.142,8583,4.142,8584,4.741,8585,4.741,8586,4.741,8587,4.741,8588,4.38,8589,4.741,8590,6.628,8591,4.741,8592,7.175,8593,3.822,8594,8.656,8595,4.741,8596,4.741,8597,3.186,8598,4.741,8599,3.704,8600,4.741,8601,4.741,8602,4.741,8603,4.741,8604,7.175,8605,4.741,8606,4.142,8607,4.741,8608,4.741,8609,7.175,8610,4.741,8611,4.741,8612,4.741,8613,4.741,8614,4.741]],["title/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.229,8571,5.892]],["body/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.224,2,0.759,3,0.018,4,0.018,5,0.009,7,0.102,8,1.1,27,0.531,29,0.524,30,0.001,31,0.37,32,0.186,33,0.523,35,1.1,47,0.889,55,2.478,95,0.134,101,0.013,103,0.001,104,0.001,111,1.823,127,1.154,145,2.695,163,2.081,165,0.72,187,0.945,200,3.403,204,3.864,209,4.209,214,3.01,216,2.471,227,0.696,364,2.191,404,1.651,406,2.114,558,3.136,564,2.449,596,3.712,1013,5.166,1015,6.792,1016,2.356,1253,4.817,1291,2.807,1327,4.449,1472,8.002,1473,5.969,1474,3.824,1475,6.708,1479,4.299,1480,3.699,1481,4.299,1482,4.299,1483,4.299,1484,4.299,1485,4.299,1486,4.024,1487,3.771,1493,4.18,1494,5.319,1542,5.706,1543,5.428,1545,2.108,1547,5.605,2600,4.559,5639,8.16,5651,5.517,7172,7.966,8137,5.428,8138,5.651,8529,8.42,8530,4.238,8532,4.781,8537,3.889,8538,4.073,8545,6.096,8571,7.964,8615,11.295,8616,9.842,8617,6.599,8618,9.117,8619,6.599]],["title/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.229,8572,5.892]],["body/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.232,2,0.785,3,0.018,4,0.018,5,0.018,7,0.105,8,1.126,27,0.535,30,0.001,32,0.193,33,0.467,35,1.126,47,0.773,55,1.5,95,0.136,101,0.013,103,0.001,104,0.001,127,1.345,165,0.737,187,0.977,200,3.463,204,3.919,209,4.252,214,3.08,216,2.442,227,0.72,364,2.217,404,1.689,406,2.186,558,3.242,564,2.532,596,3.75,1013,5.239,1016,2.436,1253,4.902,1291,2.903,1327,4.513,1472,8.06,1473,6.074,1474,3.878,1475,6.826,1479,4.445,1480,3.825,1481,4.445,1482,4.445,1483,4.445,1484,4.445,1485,4.445,1486,4.16,1487,3.899,1493,4.321,1494,5.5,1542,5.764,1543,5.524,1545,2.179,1547,5.685,1720,7.088,2600,4.639,3542,4.811,7172,8.048,7629,9.155,8137,5.524,8138,5.751,8529,8.569,8530,4.381,8532,4.943,8533,5.96,8537,4.021,8538,4.211,8572,8.149,8620,9.328,8621,9.328,8622,9.328]],["title/modules/ExternalToolModule.html",[425,1.808,5718,5.125]],["body/modules/ExternalToolModule.html",[0,0.231,3,0.018,4,0.018,5,0.01,30,0.001,95,0.167,101,0.013,103,0.001,104,0.001,187,0.972,209,2.337,425,2.841,427,2.509,428,2.646,429,2.729,430,2.717,431,2.693,432,3.918,433,3.997,438,5.825,442,3.737,443,2.669,444,2.602,449,3.737,450,2.792,766,2.917,1266,3.879,1545,2.168,2600,2.962,3956,6.248,4556,3.475,4969,3.842,5267,8.936,5277,5.472,5718,10.818,5976,8.75,8104,8.936,8351,10.827,8409,9.53,8623,6.788,8624,6.788,8625,6.788,8626,6.788,8627,9.635,8628,9.371,8629,11.229,8630,11.229,8631,10.312,8632,10.312,8633,10.312,8634,6.788,8635,4.49,8636,4.725,8637,5.675]],["title/injectables/ExternalToolParameterValidationService.html",[105,0.889,8631,5.639]],["body/injectables/ExternalToolParameterValidationService.html",[0,0.135,3,0.011,4,0.011,5,0.006,7,0.061,8,0.755,27,0.491,29,0.955,30,0.001,31,0.685,32,0.171,33,0.592,35,1.4,36,1.909,72,1.865,95,0.136,101,0.008,103,0,104,0,105,0.825,107,0.951,111,2.696,112,2.277,127,0.792,136,8.452,144,2.116,158,5.811,167,2.389,187,0.569,194,2.589,195,2.671,198,1.9,200,1.294,209,4.252,216,1.157,217,1.161,221,1.475,227,1.342,234,1.95,264,3.72,276,3.203,277,1.59,278,4.756,290,7.537,298,8.302,305,3.259,326,5.782,327,3.67,329,2.281,347,2.628,369,2.427,371,2.134,503,6.636,504,2.879,558,1.888,577,2.227,696,5.237,731,1.562,784,2.097,795,2.342,1158,2.114,1238,4.02,1298,1.877,1299,1.854,1300,1.854,1508,6.232,2187,2.671,2298,2.395,2400,2.271,2485,1.716,2600,5.249,3264,7.347,5273,8.302,5302,3.104,5344,3.67,5346,2.517,5361,3.67,5363,5.233,5364,5.233,5369,4.974,5976,6.616,5984,3.104,5986,3.322,5994,5.233,6334,4.357,8352,9.138,8408,3.104,8593,3.203,8631,5.233,8638,6.26,8639,6.26,8640,6.26,8641,6.26,8642,6.26,8643,6.26,8644,6.26,8645,6.26,8646,6.26,8647,6.26,8648,3.471,8649,6.26,8650,3.67,8651,6.26,8652,3.973,8653,6.26,8654,3.973,8655,6.26,8656,3.973,8657,6.26,8658,3.973,8659,6.26,8660,3.973,8661,6.26,8662,3.67,8663,6.26,8664,3.973,8665,6.26,8666,3.973,8667,6.26,8668,3.67,8669,3.973,8670,3.973,8671,3.973,8672,5.885,8673,3.973,8674,3.973,8675,3.973,8676,3.973,8677,3.973,8678,3.973,8679,2.945,8680,3.973,8681,3.973,8682,3.019,8683,3.973,8684,3.973,8685,3.973,8686,3.019,8687,3.973,8688,3.973,8689,3.973,8690,3.973,8691,3.973,8692,3.471,8693,3.973,8694,3.67,8695,3.973,8696,6.26,8697,3.973,8698,6.26,8699,3.973,8700,3.973,8701,3.973,8702,7.155,8703,3.973,8704,3.973,8705,3.973,8706,3.973,8707,6.26,8708,6.26]],["title/interfaces/ExternalToolProps.html",[334,0.742,7124,5.269]],["body/interfaces/ExternalToolProps.html",[0,0.225,3,0.018,4,0.018,5,0.009,7,0.102,29,0.94,30,0.001,31,0.665,32,0.184,33,0.657,34,1.935,47,1.007,55,2.603,95,0.152,101,0.017,103,0.001,104,0.001,136,7.4,150,4.341,154,5.827,158,3.317,165,0.722,194,4.313,198,3.166,214,2.186,227,1.104,236,6.904,334,0.729,336,1.613,347,2.604,404,1.199,405,1.789,627,2.844,1939,5.274,2084,5.337,2085,5.535,2136,2.65,2599,8.577,2600,2.889,2603,7.755,2606,3.645,4303,2.905,4945,6.351,5292,5.329,5600,5.172,5604,5.03,5614,5.172,5615,4.698,5616,5.03,5623,4.379,5624,4.797,5640,6.7,5656,4.313,5659,7.138,6090,3.677,6362,5.172,6991,7.054,6992,4.252,7024,4.608,7025,4.907,7028,4.907,7029,5.337,7124,8.174,7125,8.868,7126,8.367,7145,4.45,7149,4.526,7172,7.712,8320,5.783,8332,6.116,8334,6.116,8336,5.783,8337,6.116,8338,5.783,8339,7.982]],["title/entities/ExternalToolPseudonymEntity.html",[380,1.41,8709,5.639]],["body/entities/ExternalToolPseudonymEntity.html",[0,0.276,3,0.022,4,0.022,5,0.011,7,0.125,26,2.187,27,0.482,30,0.001,32,0.163,34,1.395,39,3.398,47,0.843,49,5.149,95,0.157,96,2.833,97,3.46,99,1.379,101,0.02,103,0.001,104,0.001,165,0.916,167,3.104,200,2.649,209,4.365,240,4.067,334,0.895,364,2.149,380,2.192,381,2.676,394,6.629,398,2.381,399,4.104,402,3.345,404,1.473,405,2.198,406,2.606,415,4.438,416,5.222,618,3.46,619,5.99,4294,4.901,8568,7.474,8709,8.764,8710,11.319,8711,7.512,8712,7.983,8713,7.104,8714,8.132,8715,8.132,8716,8.132,8717,8.764,8718,6.179,8719,6.799,8720,6.799,8721,6.027,8722,6.353]],["title/injectables/ExternalToolPseudonymRepo.html",[105,0.889,8723,5.639]],["body/injectables/ExternalToolPseudonymRepo.html",[0,0.18,3,0.014,4,0.014,5,0.007,7,0.081,8,0.938,13,5.519,26,2.81,27,0.501,29,0.957,30,0.001,31,0.676,32,0.169,33,0.603,34,0.906,35,1.416,36,2.815,39,3.351,42,5.519,49,2.059,95,0.131,96,1.427,97,2.247,99,0.896,101,0.01,103,0,104,0,105,1.025,107,1.264,112,2.953,127,0.668,145,1.363,167,2.969,187,0.756,209,4.233,215,1.709,216,0.976,217,1.651,221,2.4,227,1.271,234,2.028,380,2.519,381,1.738,591,2.259,592,2.33,661,4.783,921,7.737,1857,4.641,2395,5.819,2417,3.55,2441,4.126,2446,3.748,2459,4.416,2835,4.635,3280,3.677,3285,4.743,3348,4.258,4355,3.392,4369,4.416,4370,4.416,8568,7.369,8709,10.28,8712,8.638,8717,8.514,8718,5.91,8723,6.503,8724,12.296,8725,5.282,8726,7.185,8727,6.794,8728,7.185,8729,7.185,8730,6.794,8731,7.185,8732,5.282,8733,7.185,8734,5.282,8735,6.794,8736,5.282,8737,5.282,8738,7.185,8739,5.282,8740,7.185,8741,5.282,8742,7.185,8743,5.282,8744,7.185,8745,5.282,8746,5.282,8747,7.185,8748,9.407,8749,5.282,8750,5.282,8751,4.614,8752,4.88,8753,5.282,8754,4.88,8755,5.282,8756,4.614,8757,4.88,8758,6.794,8759,5.282,8760,4.88,8761,4.88,8762,4.88,8763,4.88,8764,4.88,8765,4.88]],["title/injectables/ExternalToolRepo.html",[105,0.889,8632,5.639]],["body/injectables/ExternalToolRepo.html",[0,0.131,3,0.01,4,0.01,5,0.005,7,0.059,8,0.739,10,2.472,12,2.823,18,3.025,26,2.274,27,0.533,29,1.012,30,0.001,31,0.725,32,0.181,33,0.638,34,1.304,35,1.526,36,2.697,40,1.859,47,0.729,55,0.849,56,1.859,58,2.447,59,1.199,95,0.151,96,1.654,97,1.643,99,0.655,101,0.007,103,0,104,0,105,0.807,107,0.924,111,2.18,112,2.959,127,0.489,148,1.195,154,2.791,158,5.982,165,0.305,167,4.013,200,1.258,201,2.023,216,1.132,217,1.639,221,2.039,227,1.239,234,1.233,277,3.043,359,2.122,380,2.405,381,2.014,398,1.131,404,1.109,450,1.589,529,1.704,595,1.334,596,3.679,661,3.203,701,2.655,878,4.261,884,2.891,885,4.692,915,2.126,935,3.229,944,3.568,964,2.641,1008,3.34,1014,4.246,1052,3.525,1053,3.836,1545,1.234,1857,5.019,2092,2.186,2185,3.464,2383,8.569,2385,4.344,2386,4.344,2387,4.344,2388,4.344,2389,4.261,2390,4.261,2391,4.344,2392,4.261,2393,4.344,2394,2.799,2395,4.944,2397,4.435,2398,2.741,2400,4.944,2401,2.741,2403,2.741,2405,5.029,2406,4.344,2407,2.741,2409,2.741,2411,4.344,2415,4.344,2417,4.114,2418,4.261,2420,2.741,2422,2.355,2423,2.355,2424,2.741,2426,2.741,2428,4.344,2429,2.741,2435,2.596,2446,4.344,2447,6.412,2606,4.762,4458,2.863,4630,3.181,5472,3.025,5686,2.517,5703,2.863,5743,3.374,5757,5.118,5758,3.568,5766,2.799,5767,2.799,5768,2.799,5769,2.799,5770,2.799,5771,2.799,5772,2.799,5773,2.799,5774,2.799,5780,3.114,5781,3.374,5782,2.935,5786,2.741,6487,2.355,6775,5.34,6785,4.537,6805,2.863,6806,2.863,6844,2.517,7127,4.049,7633,2.689,8472,8.599,8487,8.388,8632,5.118,8766,8.789,8767,6.122,8768,5.118,8769,6.122,8770,3.863,8771,3.863,8772,6.573,8773,3.863,8774,6.122,8775,3.863,8776,5.118,8777,3.863,8778,6.122,8779,3.568,8780,3.568,8781,2.935,8782,3.568,8783,4.782,8784,3.374,8785,3.863,8786,5.348,8787,3.863,8788,6.122,8789,3.374,8790,3.863,8791,3.568,8792,3.863,8793,3.863,8794,3.863,8795,3.568,8796,5.348,8797,3.568,8798,3.863,8799,3.863]],["title/classes/ExternalToolRepoMapper.html",[0,0.229,5780,5.437]],["body/classes/ExternalToolRepoMapper.html",[0,0.133,2,0.451,3,0.01,4,0.01,5,0.006,7,0.06,8,0.748,27,0.498,29,0.978,30,0.001,31,0.718,32,0.184,33,0.6,34,0.673,35,1.446,95,0.13,101,0.007,103,0,104,0,136,6.853,144,1.693,150,2.273,154,5.465,158,5.298,181,7.147,187,0.562,192,1.169,200,2.019,201,2.054,209,2.133,227,1.265,234,1.972,236,3.614,238,5.464,264,2.623,275,5.413,277,2.48,298,4.841,305,1.783,307,3.874,309,5.716,329,2.57,331,3.874,379,1.428,380,0.82,471,2.636,627,4.263,731,2.437,1696,3.541,1919,1.629,2076,3.271,2389,4.313,2390,4.313,2415,4.397,2417,2.637,2418,4.313,2422,3.779,2570,3.353,2599,8.373,2606,2.16,2609,4.313,2611,8.837,3058,4.593,4355,2.519,4356,3.065,4945,3.325,5147,7.318,5351,5.413,5357,5.413,5363,5.181,5364,5.181,5367,4.995,5369,3.979,5472,3.062,5602,3.105,5640,3.507,5680,8.574,5686,2.556,5702,3.065,5703,2.908,5780,4.995,6974,3.925,6976,3.925,6978,3.979,6989,3.925,6991,3.693,7063,4.593,7086,8.837,7125,8.373,7126,7.899,7127,4.099,7145,4.165,7149,4.236,7154,4.313,7172,2.556,8472,6.192,8474,3.28,8475,8.837,8476,8.837,8487,6.422,8692,5.413,8702,5.725,8766,10.168,8800,3.923,8801,6.197,8802,6.197,8803,6.197,8804,6.197,8805,6.197,8806,6.197,8807,6.197,8808,6.197,8809,6.197,8810,6.197,8811,6.197,8812,3.923,8813,8.726,8814,6.197,8815,3.923,8816,6.197,8817,3.923,8818,6.197,8819,3.923,8820,5.725,8821,6.197,8822,3.923,8823,6.197,8824,3.923,8825,3.923,8826,3.923,8827,6.197,8828,3.923,8829,6.197,8830,3.923,8831,6.197,8832,3.923,8833,5.413,8834,6.197,8835,3.923,8836,2.519,8837,3.923,8838,3.923,8839,3.923,8840,3.427,8841,3.923,8842,3.923,8843,3.923,8844,3.923,8845,6.197,8846,3.427,8847,3.923,8848,3.923,8849,3.923,8850,3.624,8851,3.624,8852,3.923,8853,8.726,8854,8.726,8855,6.197,8856,6.197,8857,5.725,8858,6.197,8859,6.197,8860,6.197,8861,6.197,8862,6.197,8863,6.197,8864,6.197,8865,3.923,8866,3.923,8867,3.923,8868,3.923,8869,3.427,8870,3.624,8871,3.923,8872,3.923,8873,3.923,8874,3.624,8875,3.624,8876,3.923,8877,6.197,8878,6.197,8879,6.197,8880,6.197,8881,5.725,8882,5.725,8883,5.725]],["title/injectables/ExternalToolRequestMapper.html",[105,0.889,8884,5.639]],["body/injectables/ExternalToolRequestMapper.html",[0,0.141,3,0.011,4,0.011,5,0.006,7,0.064,8,0.782,27,0.488,29,0.966,30,0.001,31,0.7,32,0.168,33,0.588,34,0.713,35,1.418,55,1.98,95,0.139,99,0.705,101,0.008,103,0,104,0,105,0.854,107,0.994,111,2.582,116,3.348,144,1.771,145,2.056,146,2.792,150,2.377,154,2.955,158,2.081,167,1.586,185,1.626,187,0.595,195,2.792,196,2.948,198,1.986,209,4.12,217,1.477,227,1.283,236,3.78,277,1.662,278,3.156,279,3.01,281,3.079,310,3.473,312,3.473,314,3.473,320,3.473,323,3.473,324,3.473,325,3.079,329,2.348,331,2.597,379,0.957,471,1.767,806,3.793,905,3.739,982,2.081,1291,3.391,1828,2.89,2485,1.794,2600,5.224,2623,8.341,2769,2.052,3032,6.226,4945,5.998,5369,2.667,5472,2.052,5602,2.081,5615,2.948,5640,3.668,5812,3.348,5820,3.473,5828,3.629,5829,3.473,6021,3.629,6991,3.862,7063,3.079,7162,3.245,7178,7.871,7188,3.473,7194,3.473,7197,3.473,8453,8.164,8456,8.164,8457,7.528,8509,3.473,8772,6.842,8884,5.419,8885,11.056,8886,6.481,8887,6.481,8888,6.481,8889,6.481,8890,7.97,8891,7.97,8892,7.97,8893,7.97,8894,5.987,8895,6.481,8896,6.481,8897,4.154,8898,6.962,8899,6.481,8900,7.528,8901,4.154,8902,6.481,8903,4.154,8904,12.472,8905,9.764,8906,6.481,8907,4.154,8908,9.764,8909,4.154,8910,4.154,8911,9.004,8912,4.154,8913,8.164,8914,4.154,8915,9.004,8916,4.154,8917,4.154,8918,9.004,8919,4.154,8920,7.528,8921,4.154,8922,9.004,8923,5.987,8924,7.528,8925,4.154,8926,5.419,8927,7.034,8928,6.481,8929,8.164,8930,4.154,8931,6.962,8932,3.837,8933,3.837,8934,3.837,8935,3.837,8936,3.837,8937,3.837,8938,3.837,8939,3.629,8940,3.837,8941,3.837,8942,3.837,8943,3.837,8944,3.837,8945,3.837,8946,3.837,8947,3.837,8948,10.852,8949,6.481,8950,4.154,8951,4.154,8952,4.154,8953,8.318,8954,6.481,8955,4.154,8956,4.154,8957,4.154,8958,4.154,8959,4.154,8960,4.154,8961,4.154,8962,6.481,8963,4.154,8964,4.154,8965,4.154,8966,4.154,8967,4.154,8968,4.154,8969,4.154,8970,4.154,8971,4.154,8972,4.154,8973,4.154,8974,4.154,8975,4.154,8976,4.154,8977,4.154,8978,4.154,8979,4.154,8980,4.154,8981,3.837,8982,6.481,8983,3.629,8984,4.154]],["title/classes/ExternalToolResponse.html",[0,0.229,8985,5.437]],["body/classes/ExternalToolResponse.html",[0,0.233,2,0.787,3,0.018,4,0.018,5,0.01,7,0.105,27,0.549,29,0.909,30,0.001,31,0.642,32,0.185,33,0.599,34,1.827,47,0.937,55,2.056,95,0.137,101,0.013,103,0.001,104,0.001,127,0.866,150,3.905,154,5.216,165,0.739,236,6.21,347,2.331,364,2.421,375,4.859,376,1.605,467,3.679,618,2.913,1016,2.444,1508,3.874,2084,5.518,2136,2.74,2600,5.823,2633,8.903,4945,5.713,5623,4.528,5640,6.026,5647,8.318,5650,5.98,5656,4.46,5659,5.348,5832,5.98,5833,7.817,5834,5.98,5835,5.98,5836,5.98,5837,5.98,5838,5.98,5840,5.98,5841,5.98,5842,5.98,5843,5.348,5849,5.98,5851,5.98,6090,3.803,6991,6.345,7024,4.765,7028,5.074,8985,9.656,8986,12.326,8987,9.35,8988,8.903,8989,8.903,8990,5.98,8991,6.846,8992,6.846,8993,6.846,8994,6.846,8995,6.846]],["title/injectables/ExternalToolResponseMapper.html",[105,0.889,8996,5.437]],["body/injectables/ExternalToolResponseMapper.html",[0,0.17,3,0.013,4,0.013,5,0.007,7,0.077,8,0.903,27,0.48,29,0.942,30,0.001,31,0.681,32,0.166,33,0.577,34,0.86,35,1.393,95,0.143,101,0.01,103,0,104,0,105,0.986,107,1.199,111,2.537,136,6.638,146,3.369,150,1.838,154,2.285,158,5.32,187,0.718,192,1.494,194,3.266,195,3.369,196,3.557,198,2.397,200,1.633,209,4.084,217,1.471,227,1.252,234,1.722,236,2.923,274,4.379,275,4.379,276,4.041,277,2.006,278,3.809,279,3.632,281,3.715,310,4.191,312,4.191,314,4.191,320,4.191,323,4.191,324,4.191,325,3.715,331,3.133,379,1.155,471,2.133,564,1.86,627,4.201,806,3.152,974,3.094,982,2.511,1016,2.671,1291,3.808,2485,2.165,2599,7.695,2600,5.178,2633,8.879,4945,2.689,5369,3.219,5602,3.748,5640,4.234,5647,7.754,5947,4.041,6021,4.379,6991,2.987,7063,3.715,7125,7.695,7126,6.785,7162,3.916,7181,3.916,7188,4.191,7194,4.191,7197,4.191,8435,4.041,8450,4.63,8509,4.191,8593,4.041,8672,3.809,8885,10.96,8932,4.63,8933,4.63,8934,4.63,8935,4.63,8936,4.63,8937,4.63,8938,4.63,8939,4.379,8940,4.63,8941,4.63,8942,4.63,8943,4.63,8944,4.63,8945,4.63,8946,4.63,8947,4.63,8948,9.81,8953,6.911,8985,8.001,8988,8.879,8989,8.879,8996,6.031,8997,7.481,8998,7.481,8999,7.481,9000,7.481,9001,7.481,9002,7.481,9003,7.481,9004,7.481,9005,4.63,9006,11.139,9007,7.481,9008,5.013,9009,7.481,9010,5.013,9011,7.481,9012,5.013,9013,7.481,9014,5.013,9015,7.481,9016,9.473,9017,4.63,9018,9.304,9019,7.481,9020,5.013,9021,4.63,9022,4.63,9023,4.63,9024,6.255,9025,5.013,9026,5.013,9027,5.013,9028,5.013,9029,5.013,9030,4.379,9031,5.013,9032,5.013,9033,5.013,9034,5.013,9035,5.013,9036,5.013,9037,5.013,9038,5.013,9039,5.013,9040,5.013,9041,5.013,9042,6.911,9043,5.013,9044,5.013,9045,4.63,9046,4.63,9047,4.379,9048,4.191,9049,4.63,9050,5.013]],["title/classes/ExternalToolScope.html",[0,0.229,8786,5.892]],["body/classes/ExternalToolScope.html",[0,0.239,2,0.809,3,0.019,4,0.019,5,0.01,7,0.108,8,1.15,27,0.539,29,0.961,30,0.001,31,0.738,32,0.182,33,0.605,35,1.15,47,0.906,95,0.122,101,0.013,103,0.001,104,0.001,111,2.493,144,1.923,145,3.428,148,2.177,154,3.208,165,0.753,227,1.14,277,5.26,329,2.073,347,2.54,404,1.725,529,3.104,596,3.672,958,5.884,2432,6.436,5472,5.337,5686,4.585,5871,6.148,5872,6.513,5873,6.513,5874,6.513,5879,6.513,5880,6.513,5881,4.898,5882,4.811,5883,4.898,5884,4.898,5893,4.811,5894,6.513,5895,4.898,5896,4.811,5897,4.898,5898,4.811,5899,7.383,6991,6.436,7127,4.655,8472,4.994,8766,9.677,8786,8.322,9051,9.527,9052,8.801,9053,9.527,9054,9.527,9055,7.037,9056,8.801,9057,7.037,9058,9.527,9059,7.037,9060,6.501]],["title/classes/ExternalToolSearchListResponse.html",[0,0.229,9061,5.639]],["body/classes/ExternalToolSearchListResponse.html",[0,0.263,2,0.89,3,0.021,4,0.021,5,0.011,7,0.119,27,0.519,29,0.615,30,0.001,31,0.435,32,0.188,33,0.625,55,3.058,56,6.166,59,3.15,70,6.418,95,0.145,101,0.015,103,0.001,104,0.001,127,0.98,145,1.997,163,3.936,165,0.802,200,2.522,209,3.494,364,2.228,376,1.815,404,1.838,467,2.728,469,3.414,596,3.651,1005,7.524,1006,5.493,1007,8.058,1008,6.991,1009,5.801,1011,4.119,1013,5.194,1014,3.799,1015,4.3,1016,2.764,1017,5.493,1018,6.614,1019,5.92,1020,5.12,1021,4.119,1022,5.493,1023,5.493,1025,4.903,1026,4.3,2600,4.431,5901,6.762,8985,10.524,8986,9.378,9061,8.487,9062,7.151,9063,7.151]],["title/classes/ExternalToolSearchParams.html",[0,0.229,8900,5.639]],["body/classes/ExternalToolSearchParams.html",[0,0.379,2,1.029,3,0.024,4,0.024,5,0.013,7,0.138,27,0.463,30,0.001,31,0.733,32,0.156,33,0.635,34,1.91,47,0.922,95,0.143,101,0.017,103,0.001,104,0.001,165,0.88,200,4.133,209,4.492,364,2.063,374,2.857,375,4.918,376,2.098,379,2.566,470,5.107,471,5.158,1480,6.242,2600,5.291,3544,4.623,5378,7.484,5472,5.991,8454,9.773,8900,9.309,9064,7.815,9065,11.135,9066,8.946,9067,7.815]],["title/interfaces/ExternalToolSearchQuery.html",[334,0.742,8772,5.125]],["body/interfaces/ExternalToolSearchQuery.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,31,0.735,32,0.177,33,0.68,47,0.989,101,0.019,103,0.001,104,0.001,165,0.93,209,3.372,334,1.078,336,2.386,347,2.571,1005,7.259,5472,6.468,6991,7.8,8772,8.943,9068,9.795,9069,9.048]],["title/injectables/ExternalToolService.html",[105,0.889,5976,4.394]],["body/injectables/ExternalToolService.html",[0,0.129,3,0.01,4,0.01,5,0.005,7,0.058,8,0.728,26,2.177,27,0.485,29,0.928,30,0.001,31,0.667,32,0.164,33,0.584,34,1.035,35,1.409,36,2.738,47,0.812,59,1.177,95,0.155,99,0.643,101,0.007,103,0,104,0,105,0.795,107,0.908,111,2.52,112,2.951,127,0.764,139,4.894,145,1.939,154,1.729,158,6.717,187,0.543,192,1.131,198,1.814,200,2.448,201,1.987,206,3.846,209,4.02,216,2.003,217,1.593,221,2.914,227,1.143,234,0.979,284,3.637,305,1.736,444,2.313,450,1.56,529,2.661,701,2.991,784,3.185,839,1.781,1014,2.962,1053,4.629,1158,3.211,1545,1.212,1661,2.471,1966,7.737,2400,3.448,2450,3.822,2485,1.639,2570,2.052,2600,5.187,4556,1.942,5274,8.154,5285,3.058,5402,6.057,5472,4.231,5615,2.692,5755,3.504,5944,3.822,5976,3.931,6260,3.991,6775,5.286,7123,4.472,7126,5.854,8108,2.812,8352,9.03,8370,3.058,8388,3.172,8568,2.236,8630,8.727,8632,8.322,8633,7.16,8635,3.991,8636,2.64,8672,2.882,8772,6.507,8833,6.564,8836,2.436,9024,3.172,9070,6.034,9071,5.271,9072,5.271,9073,6.034,9074,6.034,9075,6.034,9076,7.514,9077,5.271,9078,6.034,9079,7.514,9080,3.794,9081,7.407,9082,7.514,9083,6.205,9084,3.794,9085,6.034,9086,3.794,9087,6.034,9088,3.794,9089,6.034,9090,3.794,9091,6.034,9092,3.794,9093,6.034,9094,3.794,9095,6.034,9096,3.794,9097,3.794,9098,3.794,9099,6.034,9100,6.941,9101,3.794,9102,9.643,9103,6.034,9104,3.794,9105,3.794,9106,8.462,9107,9.954,9108,3.794,9109,8.564,9110,2.692,9111,3.794,9112,3.794,9113,3.058,9114,3.504,9115,5.574,9116,3.794,9117,3.504,9118,5.574,9119,6.034,9120,3.794,9121,3.794,9122,3.794,9123,3.794,9124,3.794,9125,3.794,9126,3.794,9127,3.794,9128,6.034,9129,6.034,9130,6.034,9131,6.034,9132,3.794,9133,3.794,9134,3.794,9135,3.794,9136,3.314,9137,3.794,9138,3.794,9139,3.794,9140,3.794,9141,2.963,9142,3.794,9143,3.794,9144,3.794,9145,3.794,9146,6.034,9147,3.794,9148,3.794,9149,3.794,9150,3.794,9151,3.794,9152,3.794,9153,3.794,9154,3.794,9155,3.794,9156,3.794,9157,3.794,9158,3.794,9159,3.794,9160,3.794,9161,3.794,9162,3.794,9163,3.794]],["title/injectables/ExternalToolServiceMapper.html",[105,0.889,8633,5.639]],["body/injectables/ExternalToolServiceMapper.html",[0,0.308,3,0.024,4,0.024,5,0.013,7,0.139,8,1.355,27,0.377,29,0.72,30,0.001,31,0.685,32,0.127,33,0.454,35,1.094,47,0.887,95,0.156,101,0.017,103,0.001,104,0.001,105,1.48,107,2.169,187,1.298,209,3.865,227,0.957,277,3.628,1596,6.434,1597,7.309,2485,3.916,2600,4.9,5468,6.889,6990,6.72,7126,8.714,8352,8.531,8633,9.387,8635,5.997,8833,10.655,8857,8.375,9106,8.838,9110,6.434,9164,9.067,9165,11.228,9166,11.228,9167,9.067,9168,9.067,9169,9.067,9170,8.375,9171,9.067,9172,7.92,9173,9.067,9174,9.067,9175,8.375,9176,8.375]],["title/classes/ExternalToolSortingMapper.html",[0,0.229,8784,5.892]],["body/classes/ExternalToolSortingMapper.html",[0,0.305,2,1.033,3,0.024,4,0.024,5,0.013,7,0.138,8,1.347,10,3.629,27,0.373,29,0.714,30,0.001,31,0.627,32,0.126,33,0.45,35,1.084,95,0.163,96,2.428,99,1.524,101,0.017,103,0.001,104,0.001,145,2.318,158,4.502,201,4.706,209,3.844,217,1.187,227,0.948,398,2.631,627,3.782,1278,4.861,5686,5.854,6785,9.872,7127,7.386,8472,6.376,8766,9.335,8784,9.754,8927,9.927,9177,8.986,9178,11.166,9179,11.166,9180,8.986,9181,7.513,9182,8.301,9183,8.986,9184,8.301,9185,8.301,9186,10.315,9187,8.301]],["title/injectables/ExternalToolUc.html",[105,0.889,9188,5.639]],["body/injectables/ExternalToolUc.html",[0,0.175,3,0.014,4,0.014,5,0.007,7,0.079,8,0.919,26,2.861,27,0.483,29,0.924,30,0.001,31,0.653,32,0.163,33,0.582,35,1.356,36,2.8,39,3.117,47,0.66,95,0.149,99,0.871,100,1.718,101,0.01,103,0,104,0,105,1.004,107,1.228,111,2.326,112,2.994,127,0.964,154,2.34,158,6.515,187,0.735,209,3.457,216,1.857,217,1.64,221,3.089,227,1.132,234,1.235,461,2.092,529,4.004,701,3.507,766,2.206,843,5.214,1014,3.738,1952,6.241,2485,2.218,2600,5.214,2603,5.645,2767,2.314,3830,3.252,4083,5.351,4945,2.754,5615,3.643,5931,4.485,5944,4.824,5950,4.743,5963,6.653,5976,7.321,6775,6.199,8400,11.037,8408,4.011,8409,8.621,8568,7.193,8588,7.035,8606,6.653,8629,8.397,8772,7.631,8898,10.437,8931,8.774,9024,4.292,9071,6.653,9072,6.653,9077,6.653,9102,4.743,9188,6.367,9189,7.616,9190,8.387,9191,7.035,9192,9.079,9193,5.134,9194,7.616,9195,5.134,9196,7.616,9197,5.134,9198,7.616,9199,5.134,9200,5.134,9201,7.616,9202,5.134,9203,7.616,9204,5.134,9205,10.727,9206,10.727,9207,7.616,9208,5.134,9209,5.134,9210,5.134,9211,7.616,9212,5.134,9213,5.134,9214,5.134,9215,5.134,9216,5.134,9217,4.292]],["title/classes/ExternalToolUpdateParams.html",[0,0.229,8929,5.639]],["body/classes/ExternalToolUpdateParams.html",[0,0.342,2,0.709,3,0.016,4,0.016,5,0.009,7,0.095,27,0.522,29,0.8,30,0.001,31,0.672,32,0.187,33,0.599,34,1.728,47,0.913,95,0.154,101,0.012,103,0.001,104,0.001,144,2.752,145,1.59,150,3.693,154,4.986,165,0.687,198,2.948,209,4.395,236,5.873,240,1.931,347,2.228,364,2.327,369,2.22,373,5.316,374,1.969,375,4.437,376,1.445,467,3.216,470,4.858,471,4.653,731,3.418,1508,3.489,2422,5.301,2489,3.523,2600,5.572,2606,3.393,2609,4.291,2623,9.297,2626,6.299,2627,6.169,3058,6.443,4039,4.969,4040,4.214,4071,4.214,4072,6.661,5418,5.506,5640,5.699,5729,6.299,5732,5.154,5733,5.154,5734,5.154,5739,4.077,5740,5.813,6991,6.001,7145,4.143,7149,4.214,7178,9.297,7186,6.606,8038,6.169,8039,4.374,8040,6.169,8454,10.293,8458,5.385,8459,5.694,8467,5.694,8469,5.694,8913,9.144,8920,9.642,8929,7.268,9218,5.154,9219,6.164,9220,5.385,9221,6.164,9222,5.385,9223,6.164,9224,6.164,9225,6.164,9226,5.694,9227,6.164,9228,6.164,9229,6.164]],["title/injectables/ExternalToolValidationService.html",[105,0.889,8629,5.639]],["body/injectables/ExternalToolValidationService.html",[0,0.178,3,0.014,4,0.014,5,0.007,7,0.081,8,0.934,27,0.471,29,0.9,30,0.001,31,0.636,32,0.164,33,0.567,34,1.577,35,1.306,36,2.612,47,0.669,72,2.464,95,0.15,101,0.01,103,0,104,0,105,1.02,107,1.256,111,2.588,112,2.873,127,0.979,148,2.394,154,3.529,158,6.824,167,3.511,187,0.751,200,2.996,209,4.559,216,1.876,217,0.693,221,2.669,227,0.554,234,1.837,290,4.468,305,3.258,503,6.826,558,2.494,576,3.093,577,2.942,696,4.743,795,3.093,839,2.464,1238,4.971,1696,4.423,2485,2.267,2600,5.113,3544,3.819,5102,4.23,5302,4.1,5976,7.38,5986,4.388,5994,7.689,8352,8.901,8359,7.713,8361,7.713,8408,4.1,8409,8.682,8568,4.562,8582,4.584,8593,6.24,8606,4.584,8629,6.471,8631,9.794,8648,4.584,8650,4.848,8662,4.848,8672,8.225,8694,4.848,9024,6.471,9100,4.848,9114,4.848,9115,4.848,9117,8.495,9230,7.74,9231,7.74,9232,7.74,9233,7.74,9234,7.74,9235,7.74,9236,7.74,9237,5.248,9238,7.74,9239,7.74,9240,5.248,9241,7.74,9242,5.248,9243,5.248,9244,5.248,9245,7.74,9246,5.248,9247,5.248,9248,7.74,9249,5.248,9250,7.74,9251,5.248,9252,5.248,9253,5.248,9254,7.74,9255,5.248,9256,5.248,9257,5.248,9258,5.248,9259,5.248,9260,5.248,9261,5.248,9262,5.248,9263,5.248]],["title/injectables/ExternalToolVersionService.html",[105,0.889,8630,5.639]],["body/injectables/ExternalToolVersionService.html",[0,0.162,3,0.013,4,0.013,5,0.007,7,0.073,8,0.868,27,0.485,29,0.928,30,0.001,31,0.656,32,0.164,33,0.584,35,1.409,95,0.111,101,0.009,103,0,104,0,105,0.948,107,1.138,111,2.68,136,8.796,148,2.225,158,5.682,187,0.681,194,3.1,209,4.115,217,1.721,227,1.324,288,6.646,298,7.554,302,6.646,347,2.612,905,1.976,2485,2.055,2600,5.217,5351,4.156,5357,4.156,5363,3.978,5364,3.978,8352,9.084,8630,6.015,9264,4.758,9265,7.194,9266,7.194,9267,7.194,9268,7.194,9269,7.194,9270,7.194,9271,7.194,9272,7.194,9273,7.194,9274,13.033,9275,4.758,9276,8.674,9277,7.194,9278,4.758,9279,7.194,9280,13.033,9281,4.758,9282,7.194,9283,4.758,9284,7.194,9285,4.758,9286,7.194,9287,4.758,9288,7.194,9289,4.758,9290,7.194,9291,8.674,9292,4.758,9293,4.758,9294,4.758,9295,7.194,9296,4.758,9297,4.758,9298,4.758,9299,4.758,9300,7.194,9301,7.194,9302,7.194,9303,4.758,9304,4.758,9305,4.758,9306,4.758,9307,4.758,9308,4.758,9309,10.961,9310,4.758,9311,11.955,9312,7.194,9313,4.758,9314,4.758,9315,4.758,9316,4.758,9317,4.758,9318,4.758,9319,4.758,9320,4.758,9321,4.758,9322,4.758,9323,4.758,9324,4.758,9325,4.758,9326,9.669,9327,9.669,9328,9.669,9329,4.758,9330,4.758,9331,4.758]],["title/classes/ExternalUserDto.html",[0,0.229,9332,4.887]],["body/classes/ExternalUserDto.html",[0,0.291,2,0.983,3,0.023,4,0.023,5,0.012,7,0.131,27,0.547,29,0.679,30,0.001,31,0.48,32,0.185,33,0.683,47,0.983,95,0.11,99,1.45,101,0.016,103,0.001,104,0.001,127,1.082,165,0.855,405,2.924,595,2.953,851,5.827,852,5.827,853,6.034,854,5.99,3110,5.751,4538,6.72,6744,5.093,6745,5.275,7005,6.677,7006,6.89,8267,11.169,8290,7.895,8292,7.895,8293,7.895,9332,9.329,9333,10.82,9334,8.547,9335,8.547,9336,5.744,9337,6.193,9338,5.744,9339,6.193,9340,6.494,9341,6.89]],["title/injectables/FeathersAuthProvider.html",[105,0.889,1960,5.437]],["body/injectables/FeathersAuthProvider.html",[0,0.197,3,0.015,4,0.015,5,0.008,7,0.089,8,1.004,26,2.882,27,0.487,29,0.932,30,0.001,31,0.658,32,0.165,33,0.587,35,1.36,36,2.775,39,3.238,47,0.819,49,3.796,95,0.137,96,1.567,97,2.468,99,0.984,101,0.011,103,0.001,104,0.001,105,1.097,107,1.388,111,1.947,112,2.998,127,0.734,167,2.214,187,0.83,192,1.729,215,1.877,217,1.687,221,2.655,227,1.238,234,0.941,305,1.668,334,0.638,371,1.598,461,2.848,529,2.558,766,4.185,1236,3.495,1278,3.138,1304,3.836,1916,5.458,1960,6.711,1980,5.067,2433,5.424,2686,4.43,4227,3.879,6723,7.758,6730,6.84,6902,7.407,7907,5.794,8250,5.067,8251,8.498,9342,11.161,9343,5.358,9344,8.325,9345,8.996,9346,7.272,9347,8.325,9348,8.996,9349,5.8,9350,8.325,9351,5.8,9352,5.358,9353,5.8,9354,8.325,9355,5.8,9356,8.325,9357,5.8,9358,5.8,9359,5.8,9360,8.325,9361,8.325,9362,8.325,9363,5.8,9364,5.8,9365,5.8,9366,8.325,9367,8.325,9368,6.503,9369,6.503,9370,5.8,9371,4.849,9372,5.8,9373,5.8,9374,5.8,9375,7.272,9376,5.358,9377,5.8,9378,5.8]],["title/injectables/FeathersAuthorizationService.html",[105,0.889,1953,5.639]],["body/injectables/FeathersAuthorizationService.html",[0,0.197,3,0.015,4,0.015,5,0.008,7,0.089,8,1.003,26,2.804,27,0.442,29,0.845,30,0.001,31,0.597,32,0.149,33,0.532,35,1.359,36,2.547,39,3.311,47,0.852,95,0.125,99,0.982,101,0.011,103,0.001,104,0.001,105,1.096,107,1.386,112,2.821,127,0.733,187,0.829,215,1.874,217,1.404,221,2.654,227,0.878,234,1.349,247,2.297,264,5.406,305,2.392,380,2.451,381,3.499,461,2.942,538,4.767,770,4.902,843,2.528,1110,5.34,1295,6.767,1664,5.059,1916,6.691,1953,6.953,1960,9.45,1987,3.719,2038,5.685,2340,4.669,6723,8.2,6730,7.881,6754,6.319,6902,8.997,9342,10.403,9379,5.792,9380,9.73,9381,8.316,9382,9.73,9383,5.792,9384,5.792,9385,5.792,9386,5.792,9387,6.164,9388,7.682,9389,8.316,9390,5.792,9391,5.792,9392,5.792,9393,7.682,9394,5.792,9395,5.792,9396,5.792,9397,5.792,9398,5.792,9399,5.792,9400,5.792,9401,3.62,9402,5.792,9403,5.792,9404,7.265,9405,5.792,9406,5.792,9407,5.792,9408,8.316,9409,5.792,9410,5.792]],["title/interfaces/FeathersError.html",[334,0.742,8241,5.639]],["body/interfaces/FeathersError.html",[3,0.026,4,0.026,5,0.014,7,0.152,30,0.001,32,0.193,47,0.991,55,2.786,101,0.019,103,0.001,104,0.001,165,0.935,204,4.061,334,1.089,336,2.409,404,2.144,1253,6.056,8241,9.898,9411,9.891,9412,9.891,9413,12.131]],["title/modules/FeathersModule.html",[425,1.808,1950,5.437]],["body/modules/FeathersModule.html",[0,0.299,3,0.023,4,0.023,5,0.012,30,0.001,95,0.141,101,0.017,103,0.001,104,0.001,187,1.261,367,5.307,379,2.03,425,3.482,427,4.45,428,3.434,429,3.541,430,3.525,431,3.494,432,4.45,433,4.54,442,4.433,443,3.464,444,3.376,535,5.966,704,5.449,766,4.739,1252,6.571,1950,10.841,1987,7.731,2526,6.985,8251,10.114,8256,7.695,9414,8.809,9415,8.809,9416,8.809,9417,8.809,9418,8.615,9419,7.412,9420,8.89,9421,8.89,9422,9.22,9423,9.22,9424,9.634]],["title/interfaces/FeathersService.html",[334,0.742,9425,5.892]],["body/interfaces/FeathersService.html",[0,0.219,3,0.017,4,0.017,5,0.009,7,0.099,8,1.08,27,0.463,29,0.818,30,0.001,31,0.578,32,0.164,33,0.515,34,1.536,35,1.243,36,2.635,47,0.81,59,3.457,95,0.143,101,0.021,102,5.198,103,0.001,104,0.001,105,1.18,111,1.286,163,2.027,167,2.455,185,5.047,187,0.92,217,1.183,227,0.679,234,1.043,235,6.306,264,4.362,277,3.584,305,1.85,334,0.708,336,1.566,367,5.638,425,1.723,427,2.377,535,6.337,569,4.322,704,3.177,722,2.836,731,3.521,766,5.454,839,3.019,883,3.754,960,4.396,1238,4.129,1252,6.98,1291,3.81,1298,4.229,1299,4.178,1300,4.178,1301,4.425,1302,4.845,1499,4.766,1865,3.367,1987,6.616,2086,6.354,2500,3.969,2526,4.073,3874,5.672,4630,5.79,5121,5.75,6491,3.832,8217,4.886,8251,4.659,8679,4.766,9418,5.023,9419,4.322,9420,5.183,9421,5.183,9422,5.376,9423,5.376,9424,5.617,9425,9.733,9426,10.292,9427,5.617,9428,8.272,9429,12.387,9430,6.43,9431,10.292,9432,8.272,9433,6.43,9434,8.272,9435,6.43,9436,5.617,9437,5.94,9438,5.94,9439,5.94,9440,5.94,9441,5.94,9442,8.272,9443,5.94,9444,5.376,9445,5.023,9446,5.94,9447,5.94,9448,5.94,9449,5.94]],["title/injectables/FeathersServiceProvider.html",[105,0.889,8251,4.887]],["body/injectables/FeathersServiceProvider.html",[0,0.227,3,0.018,4,0.018,5,0.009,7,0.103,8,1.11,27,0.437,29,0.731,30,0.001,31,0.516,32,0.159,33,0.46,34,1.147,35,0.807,36,2.285,47,0.824,95,0.145,101,0.022,102,5.307,103,0.001,104,0.001,105,1.212,107,1.6,111,1.337,127,0.846,167,2.552,185,4.436,187,0.957,217,1.215,227,0.706,234,1.084,235,5.207,264,4.453,277,3.682,305,1.923,334,0.736,367,6.257,379,1.541,425,1.792,427,3.4,535,6.13,569,6.184,576,3.941,704,4.546,722,2.949,731,3.618,766,5.506,839,3.139,960,4.571,1238,4.294,1252,6.751,1291,3.914,1298,4.345,1299,4.293,1300,4.293,1301,4.546,1302,4.977,1499,4.956,1865,3.502,1987,7.276,2086,6.529,2500,4.127,2526,5.827,3874,5.827,4630,3.475,5121,5.908,6491,3.984,8217,5.081,8251,6.666,8679,4.956,9418,7.187,9419,6.184,9420,7.416,9421,7.416,9422,7.692,9423,7.692,9424,8.037,9425,9.897,9426,9.717,9427,5.841,9428,6.177,9429,10.974,9431,8.499,9432,6.177,9434,6.177,9436,5.841,9437,6.177,9438,6.177,9439,6.177,9440,6.177,9441,8.499,9442,8.499,9443,6.177,9444,5.59,9445,5.223,9446,6.177,9447,6.177,9448,6.177,9449,6.177,9450,9.2,9451,6.687,9452,6.687,9453,6.687]],["title/entities/FederalState.html",[380,1.41,6359,4.113]],["body/entities/FederalState.html",[0,0.338,3,0.02,4,0.02,5,0.011,7,0.116,27,0.494,30,0.001,31,0.694,32,0.167,33,0.498,47,0.986,55,1.651,83,2.994,95,0.128,96,2.029,101,0.021,103,0.001,104,0.001,165,0.786,240,3.873,334,0.827,364,2.201,369,2.619,370,3.963,371,3.274,380,2.081,381,2.471,386,5.687,398,2.199,399,3.896,400,3.295,402,3.089,404,1.36,405,2.029,406,2.406,591,3.211,592,3.312,620,4.823,621,5.706,622,4.823,623,5.706,1925,5.171,2136,3.982,2618,5.094,4287,5.329,4293,5.384,4303,3.295,5640,6.724,5656,4.893,6340,10.621,6341,10.799,6342,6.561,6343,6.561,6344,6.561,6345,6.561,6350,8.32,6351,10.38,6352,10.38,6353,6.561,6354,6.561,6355,6.561,6356,6.561,6357,6.561,6358,6.561,6359,6.068,6360,6.561,6361,6.561,6362,5.867,9454,7.51,9455,7.51,9456,7.51,9457,7.51]],["title/injectables/FederalStateRepo.html",[105,0.889,9458,5.639]],["body/injectables/FederalStateRepo.html",[0,0.257,3,0.02,4,0.02,5,0.011,7,0.116,8,1.205,10,4.033,12,4.606,18,4.935,26,2.083,27,0.529,29,0.984,30,0.001,31,0.729,32,0.174,33,0.62,34,1.295,35,1.494,36,2.691,40,3.635,47,0.814,49,3.894,95,0.153,96,2.041,99,1.281,101,0.014,103,0.001,104,0.001,105,1.316,107,1.807,112,2.853,187,1.081,227,1.054,380,1.579,381,3.287,398,2.211,404,1.809,596,3.616,692,5.055,877,7.568,883,4.187,884,4.717,885,6.161,908,4.605,909,4.662,910,4.605,911,4.662,912,5.359,913,4.605,914,4.662,915,4.157,3639,5.163,6359,6.09,8768,8.351,8776,8.351,9458,8.351,9459,11.191,9460,7.552,9461,7.552,9462,7.552,9463,7.552]],["title/injectables/FederalStateService.html",[105,0.889,9464,5.639]],["body/injectables/FederalStateService.html",[0,0.3,3,0.023,4,0.023,5,0.012,7,0.136,8,1.332,27,0.459,29,0.877,30,0.001,31,0.677,32,0.155,33,0.552,35,1.065,36,2.399,47,0.876,95,0.155,99,1.497,101,0.017,103,0.001,104,0.001,105,1.455,107,2.112,112,2.702,127,1.117,187,1.264,215,2.857,216,1.632,217,1.166,221,2.08,227,0.932,450,3.631,883,3.701,1919,3.666,1993,6.035,2485,3.813,3852,6.035,6359,7.927,9458,11.088,9464,9.233,9465,7.851,9466,12.051,9467,8.828,9468,11.043,9469,8.828,9470,8.828,9471,11.043,9472,8.828,9473,7.381,9474,6.708,9475,5.518,9476,8.828]],["title/interfaces/File.html",[5,0.01,334,0.742]],["body/interfaces/File.html",[3,0.024,4,0.024,5,0.017,7,0.138,30,0.001,31,0.713,32,0.17,47,1.033,55,1.972,95,0.115,101,0.024,103,0.001,104,0.001,163,4.118,165,0.881,334,1.398,336,2.184,1565,7.053,2186,5.679,5410,8.386,5562,6.24,6157,6.812,6158,7.004,6159,7.496,6160,7.227,6161,7.227,6162,6.026,6163,5.93,6164,7.004,6165,6.24,6166,6.24,6167,6.24,6168,6.24,6169,6.645,6170,6.645,6171,6.645,6172,6.645]],["title/classes/FileContentBody.html",[0,0.229,5541,4.611]],["body/classes/FileContentBody.html",[0,0.45,2,0.797,3,0.018,4,0.018,5,0.01,7,0.107,9,3.313,27,0.288,30,0.001,31,0.601,32,0.19,47,0.779,83,2.084,95,0.148,99,1.175,101,0.025,103,0.001,104,0.001,144,2.928,163,2.184,165,0.745,240,2.17,364,1.284,369,1.527,374,2.213,376,1.625,379,1.596,404,1.94,467,3.646,470,4.514,524,4.083,999,6.336,1031,2.22,1044,3.4,2344,4.428,2594,4.726,2627,4.916,2880,3.313,2915,3.657,3239,6.697,3242,5.701,3245,3.657,3774,6.638,4040,4.736,4071,4.736,4072,7.087,5504,7.324,5506,7.324,5508,7.324,5541,7.861,5542,6.444,5543,6.444,5739,4.583,5740,6.943,6850,4.916,8027,8.716,8028,6.986,8029,5.135,8032,7.603,8033,5.135,8034,8.161,8035,7.603,8036,5.135,8037,4.916,8038,4.916,8039,4.916,8040,4.916,8041,5.135,8042,5.135,8043,5.135,9477,6.928]],["title/classes/FileDto.html",[0,0.229,6219,4.887]],["body/classes/FileDto.html",[0,0.313,2,1.059,3,0.024,4,0.024,5,0.016,7,0.142,27,0.533,29,0.732,30,0.001,31,0.72,32,0.18,33,0.461,47,0.932,95,0.118,101,0.018,103,0.001,104,0.001,127,1.166,163,3.873,165,0.896,1026,5.117,1565,6.823,2136,3.687,5410,7.888,6064,6.035,6100,6.537,6162,6.191,6219,9.537,9478,9.212,9479,11.339,9480,9.212,9481,9.212,9482,9.212,9483,9.212,9484,9.212,9485,8.047,9486,8.51]],["title/classes/FileDto-1.html",[0,0.191,905,2.329,6219,4.063]],["body/classes/FileDto-1.html",[0,0.294,2,0.993,3,0.023,4,0.023,5,0.012,7,0.133,26,2.694,27,0.537,29,0.686,30,0.001,31,0.703,32,0.181,33,0.432,34,2.047,47,0.792,95,0.153,99,1.465,101,0.016,103,0.001,104,0.001,127,1.093,165,0.861,336,2.104,405,2.944,595,2.984,618,3.675,619,4.937,2136,3.457,3543,6.473,3574,5.818,4303,3.79,6064,6.047,6083,6.568,6096,6.748,6102,5.714,6111,5.936,6219,7.893,8206,6.013,9487,8.638,9488,10.475,9489,10.894,9490,8.638,9491,8.638,9492,8.638,9493,6.402,9494,7.546]],["title/classes/FileDtoBuilder.html",[0,0.229,9495,5.892]],["body/classes/FileDtoBuilder.html",[0,0.255,2,0.862,3,0.02,4,0.02,5,0.018,7,0.115,8,1.199,27,0.463,29,0.886,30,0.001,31,0.713,32,0.156,33,0.558,35,1.345,47,0.968,95,0.152,101,0.014,103,0.001,104,0.001,116,3.608,163,4.147,217,1.568,227,1.177,234,1.216,627,4.144,667,4.666,1016,3.981,1565,7.053,2063,8.264,2074,5.124,5410,8.318,6064,5.444,6162,6.68,6219,9.53,9495,8.682,9496,10.372,9497,7.496,9498,9.939,9499,9.939,9500,9.939,9501,7.496,9502,9.939,9503,7.496,9504,9.939,9505,12.354,9506,7.496,9507,6.925,9508,7.496,9509,7.496,9510,7.496,9511,7.496,9512,7.496,9513,6.925,9514,7.496,9515,6.267]],["title/classes/FileElement.html",[0,0.229,2864,4.394]],["body/classes/FileElement.html",[0,0.231,2,0.782,3,0.018,4,0.018,5,0.01,7,0.105,8,1.123,27,0.548,29,0.98,30,0.001,31,0.693,32,0.181,33,0.617,35,1.552,36,2.022,47,0.869,55,2.047,59,2.11,95,0.119,101,0.018,103,0.001,104,0.001,112,2.379,116,3.012,144,2.543,148,3.697,165,0.735,208,2.523,221,1.602,227,0.982,334,0.748,347,2.162,363,5.976,371,1.874,404,1.922,595,3.215,596,3.906,661,3.921,692,3.467,728,2.662,884,4.396,1857,3.979,1860,7.018,1984,2.907,2598,6.271,2791,8.265,2794,6.898,2795,6.898,2796,6.898,2797,8.097,2798,6.898,2800,4.648,2801,5.976,2802,6.877,2804,6.898,2805,5.976,2806,6.958,2808,4.927,2809,4.912,2811,6.633,2812,4.927,2816,4.927,2818,4.648,2844,5.895,2864,6.063,3239,7.132,3984,5.166,3985,5.166,3986,5.166,3995,4.498,9516,9.802,9517,5.312,9518,6.8,9519,6.8,9520,6.8,9521,6.8,9522,6.8,9523,6.8,9524,6.8,9525,8.597,9526,6.281,9527,6.281,9528,6.281,9529,5.94]],["title/classes/FileElementContent.html",[0,0.229,9530,5.639]],["body/classes/FileElementContent.html",[0,0.367,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,27,0.448,29,0.676,30,0.001,31,0.478,32,0.18,33,0.426,34,2.033,47,0.862,95,0.152,99,1.444,101,0.021,103,0.001,104,0.001,127,1.5,165,0.853,364,1.577,376,1.996,467,3.587,475,4.264,618,3.621,966,4.357,1031,2.727,2344,4.897,2621,4.02,2910,4.644,2911,4.644,2915,4.492,3239,8.038,3403,6.467,3415,5.465,3658,7.506,3662,6.661,3666,6.039,3668,6.039,3774,6.84,4011,8.699,5504,5.818,9530,10.985,9531,10.947,9532,7.435,9533,7.862,9534,7.115]],["title/classes/FileElementContentBody.html",[0,0.229,8032,4.786]],["body/classes/FileElementContentBody.html",[0,0.448,2,0.777,3,0.018,4,0.018,5,0.01,7,0.104,9,3.23,27,0.385,30,0.001,31,0.594,32,0.193,47,0.674,83,2.032,95,0.146,99,1.146,101,0.025,103,0.001,104,0.001,144,2.889,145,1.743,163,2.129,165,0.732,240,2.116,364,1.716,369,1.489,374,2.157,376,1.584,379,1.556,404,2.061,467,3.631,470,4.454,524,3.981,596,2.051,999,6.226,1011,3.594,1031,2.164,1044,3.315,2344,4.927,2594,4.664,2880,3.23,2915,3.565,3239,4.222,3242,5.626,3245,3.565,3774,6.567,4040,4.617,4071,4.617,4072,6.994,5504,7.778,5506,7.228,5508,7.228,5541,7.778,5542,6.333,5543,6.333,5739,4.467,5740,6.882,6850,4.793,8027,9.138,8028,6.866,8029,5.006,8032,8.074,8033,5.006,8034,8.074,8035,7.503,8036,5.006,8037,4.793,8038,4.793,8039,4.793,8040,4.793,8041,5.006,8042,5.006,8043,5.006,9535,5.647,9536,6.754,9537,6.754]],["title/entities/FileElementNode.html",[380,1.41,3174,5.269]],["body/entities/FileElementNode.html",[0,0.302,3,0.024,4,0.024,5,0.013,7,0.137,27,0.369,30,0.001,32,0.125,47,0.879,95,0.162,96,2.401,101,0.021,103,0.001,104,0.001,165,0.876,208,3.297,217,1.174,227,0.938,240,3.787,334,0.978,364,1.646,380,2.319,381,2.924,398,2.602,404,2.008,405,2.401,617,5.129,1857,5.168,2594,4.891,2598,5.635,2620,5.182,2621,4.197,3144,5.949,3154,6.932,3174,8.662,3212,5.707,3233,9.687,3239,7.912,3562,7.121,3583,5.789,4090,5.973,4093,5.973,9534,7.43,9538,10.244,9539,8.209,9540,9.687,9541,8.209,9542,8.209]],["title/interfaces/FileElementNodeProps.html",[334,0.742,9540,5.892]],["body/interfaces/FileElementNodeProps.html",[0,0.304,3,0.024,4,0.024,5,0.013,7,0.138,30,0.001,32,0.126,47,0.922,95,0.163,96,2.417,101,0.021,103,0.001,104,0.001,165,0.88,208,3.319,217,1.181,227,0.944,240,3.488,334,0.985,336,2.179,380,2.328,398,2.619,404,2.196,405,2.417,617,5.164,1857,5.184,2594,3.946,2598,5.658,2620,5.217,2621,4.225,3144,5.974,3154,6.96,3174,6.988,3212,5.745,3233,9.727,3239,8.158,3562,7.785,3583,5.828,4090,6.013,4093,6.013,9534,7.479,9538,8.264,9540,10.591,9541,8.264,9542,8.264]],["title/interfaces/FileElementProps.html",[334,0.742,9529,5.892]],["body/interfaces/FileElementProps.html",[0,0.308,3,0.024,4,0.024,5,0.013,7,0.139,30,0.001,32,0.158,36,1.97,47,0.953,95,0.144,101,0.021,103,0.001,104,0.001,112,2.033,144,2.477,148,2.805,165,0.887,208,3.364,221,2.137,227,1.185,334,0.998,336,2.208,347,1.847,371,2.498,404,2.209,728,3.55,1984,3.877,2791,7.112,2797,6.434,2801,5.822,2802,6.767,2805,5.822,2806,6.847,2844,7.726,2864,5.907,3239,8.19,3995,5.997,9516,8.375,9517,7.083,9525,10.372,9526,8.375,9527,8.375,9528,8.375,9529,9.808]],["title/classes/FileElementResponse.html",[0,0.229,4011,5.437]],["body/classes/FileElementResponse.html",[0,0.349,2,0.906,3,0.021,4,0.021,5,0.011,7,0.121,27,0.522,29,0.626,30,0.001,31,0.442,32,0.19,33,0.394,34,2.154,47,0.831,95,0.147,99,1.336,101,0.02,103,0.001,104,0.001,127,1.446,165,0.811,364,2.243,376,1.847,467,3.573,475,3.946,618,3.352,966,4.033,1031,2.524,2344,5.188,2621,3.721,2909,5.295,2910,5.603,2911,5.603,2914,5.059,2915,5.42,3239,7.141,3403,5.986,3415,5.059,3658,7.952,3662,7.051,3666,5.59,3668,5.59,3774,7.246,4011,10.12,5504,7.019,9530,10.121,9531,11.892,9534,6.586,9543,7.277,9544,7.277,9545,7.277,9546,7.277,9547,7.277]],["title/classes/FileElementResponseMapper.html",[0,0.229,5521,5.892]],["body/classes/FileElementResponseMapper.html",[0,0.262,2,0.887,3,0.02,4,0.02,5,0.011,7,0.119,8,1.222,27,0.499,29,0.804,30,0.001,31,0.568,32,0.168,33,0.507,34,1.323,35,1.364,95,0.145,99,1.308,100,2.581,101,0.015,103,0.001,104,0.001,111,2.261,116,2.496,165,0.8,214,3.343,217,1.018,227,1.193,234,1.947,347,2.063,591,3.297,627,3.984,806,3.249,974,4.76,975,5.787,978,6.736,980,6.024,1828,4.515,2092,4.364,2344,3.187,2588,8.832,2591,8.466,2592,8.466,2594,5.837,2595,8.163,2864,8.622,3239,4.82,3658,4.884,3662,6.25,3679,5.715,3774,4.451,4011,9.678,5121,7.261,5504,5.272,5520,6.447,5521,11.394,9530,8.466,9548,12.469,9549,9.678,9550,6.447,9551,6.736,9552,11.306,9553,6.447,9554,6.736,9555,6.736,9556,7.712]],["title/entities/FileEntity.html",[380,1.41,7811,5.269]],["body/entities/FileEntity.html",[0,0.119,3,0.009,4,0.009,5,0.012,7,0.156,26,2.33,27,0.528,30,0.001,31,0.505,32,0.181,33,0.644,47,0.93,49,4.241,55,2.115,83,2.893,95,0.135,96,1.533,97,1.494,99,0.596,101,0.011,103,0,104,0,111,0.702,116,2.309,144,2.457,145,3.053,148,1.755,165,0.448,204,1.205,217,0.464,227,1.015,234,1.764,240,3.982,305,1.01,329,2.649,334,0.387,347,1.454,359,1.967,364,2.355,369,2.906,370,4.317,371,3.147,380,1.186,381,1.156,386,6.019,398,1.028,399,2.221,404,0.636,405,0.949,406,1.125,500,5.601,573,2.669,591,1.502,592,1.549,620,2.255,621,4.31,622,2.255,623,4.31,701,1.227,775,4.996,905,1.458,957,1.988,1015,4.995,1031,1.818,1910,1.659,1916,3.969,1925,2.948,2076,1.854,2136,1.406,2485,1.517,2621,1.659,2674,4.64,3305,2.803,3542,2.926,3543,2.784,3574,2.766,4284,4.743,4287,4.026,4293,3.861,4294,2.117,4297,2.936,4302,2.936,4303,1.541,4556,1.798,4712,6.832,4926,2.616,4945,1.884,5236,2.195,6092,2.445,6110,3.151,6166,6.259,6382,2.936,6627,2.361,6727,1.884,6914,2.545,7806,6.664,7808,6.85,7811,4.432,7861,7.157,9494,3.068,9557,3.244,9558,5.422,9559,6.592,9560,6.592,9561,5.064,9562,6.225,9563,7.569,9564,7.157,9565,5.936,9566,6.85,9567,7.569,9568,7.569,9569,7.569,9570,3.512,9571,3.512,9572,7.569,9573,3.512,9574,4.026,9575,3.512,9576,3.512,9577,3.512,9578,3.512,9579,3.512,9580,3.512,9581,3.512,9582,3.512,9583,7.249,9584,3.512,9585,7.157,9586,3.512,9587,8.158,9588,3.512,9589,3.512,9590,3.512,9591,3.512,9592,5.24,9593,3.512,9594,3.512,9595,3.512,9596,3.512,9597,5.24,9598,3.512,9599,2.445,9600,2.603,9601,3.244,9602,3.244,9603,6.234,9604,5.24,9605,3.244,9606,8.307,9607,3.244,9608,3.244,9609,2.669,9610,3.244,9611,2.492,9612,6.592,9613,4.31,9614,5.24,9615,5.24,9616,5.24,9617,3.244,9618,3.244,9619,3.244,9620,4.204,9621,3.244,9622,3.244,9623,3.244,9624,5.753,9625,6.592,9626,3.244,9627,3.244,9628,2.936,9629,5.24,9630,3.244,9631,3.244,9632,3.244,9633,3.244,9634,3.244,9635,3.244,9636,5.24,9637,3.244,9638,5.24,9639,2.669,9640,5.24,9641,3.244,9642,2.545,9643,2.545,9644,3.244,9645,3.244,9646,3.244,9647,3.244,9648,2.669,9649,2.669,9650,2.744,9651,3.244,9652,3.244,9653,3.244,9654,5.24,9655,3.244]],["title/interfaces/FileEntityProps.html",[334,0.742,9603,5.892]],["body/interfaces/FileEntityProps.html",[0,0.129,3,0.01,4,0.01,5,0.012,7,0.16,26,2.649,30,0.001,31,0.558,32,0.187,33,0.68,47,0.971,49,3.64,55,2.381,83,3.511,95,0.139,96,1.628,97,1.611,99,0.642,101,0.011,103,0,104,0,111,0.757,116,2.428,145,3.111,148,1.864,165,0.476,204,1.299,217,0.5,227,1.05,234,1.756,240,3.947,305,1.089,334,0.417,336,0.922,347,2.125,359,1.313,369,2.724,370,4.164,371,2.741,380,1.26,398,1.109,399,2.359,404,0.686,405,1.023,406,1.213,500,6.384,573,2.877,591,3.658,592,3.773,620,2.432,621,4.578,622,2.432,623,4.578,701,1.322,775,4.576,905,1.572,957,2.143,1015,5.525,1031,1.931,1910,1.788,1916,4.523,1925,1.968,2076,1.999,2136,1.515,2485,1.636,2621,1.788,2674,4.56,3305,1.871,3542,3.107,3543,2.957,3574,4.553,4293,4.06,4294,2.282,4297,3.166,4302,3.166,4303,1.661,4556,1.938,4926,2.779,4945,2.031,5236,2.367,6092,2.636,6110,5.187,6166,6.923,6727,2.031,6914,2.743,7806,7.371,7808,7.807,7811,2.958,7861,8.158,9494,3.308,9557,3.498,9558,2.877,9559,3.498,9560,3.498,9561,2.687,9562,7.096,9563,8.627,9564,8.158,9565,6.766,9566,7.807,9567,8.627,9568,8.627,9569,8.627,9572,9.188,9574,2.687,9583,8.018,9585,8.158,9587,8.408,9592,3.498,9597,3.498,9599,2.636,9600,2.806,9601,3.498,9602,3.498,9603,7.473,9604,8.627,9605,3.498,9606,8.627,9607,3.498,9608,3.498,9609,2.877,9610,3.498,9611,2.687,9612,6.932,9613,4.578,9614,5.566,9615,5.566,9616,5.566,9617,3.498,9618,3.498,9619,3.498,9620,4.466,9621,3.498,9622,3.498,9623,3.498,9624,6.049,9625,6.932,9626,3.498,9627,3.498,9628,3.166,9629,5.566,9630,3.498,9631,3.498,9632,3.498,9633,3.498,9634,3.498,9635,3.498,9636,5.566,9637,3.498,9638,5.566,9639,2.877,9640,5.566,9641,3.498,9642,2.743,9643,2.743,9644,3.498,9645,3.498,9646,3.498,9647,3.498,9648,2.877,9649,2.877,9650,2.958,9651,3.498,9652,3.498,9653,3.498,9654,5.566,9655,3.498]],["title/classes/FileParamBuilder.html",[0,0.229,6204,5.892]],["body/classes/FileParamBuilder.html",[0,0.307,2,1.038,3,0.024,4,0.024,5,0.013,7,0.139,8,1.351,26,2.655,27,0.375,29,0.717,30,0.001,31,0.507,32,0.127,33,0.452,35,1.089,95,0.156,99,1.531,101,0.017,103,0.001,104,0.001,217,1.479,227,0.953,336,2.199,627,3.789,667,5.256,3305,6.015,3542,4.655,3543,6.422,3574,4.401,4227,3.854,6064,5.134,6111,5.57,6175,8.338,6177,9.509,6178,8.338,6181,10.343,6204,9.781,9656,10.343,9657,11.197,9658,11.757,9659,7.546,9660,9.026,9661,9.026,9662,9.026]],["title/classes/FileParams.html",[0,0.229,6128,4.611]],["body/classes/FileParams.html",[0,0.454,2,0.755,3,0.017,4,0.024,5,0.016,7,0.101,26,2.547,27,0.273,30,0.001,32,0.166,39,1.76,47,0.984,95,0.157,99,1.114,101,0.025,103,0.001,104,0.001,150,2.408,165,0.718,204,2.252,334,0.723,347,1.851,364,1.217,369,1.448,373,4.796,374,2.097,375,4.561,376,1.54,377,5.92,379,1.513,380,1.373,467,3.705,469,2.896,470,5.143,471,4.783,565,4.796,1000,5.22,1001,6.699,1011,3.494,1031,3.338,1044,3.223,1291,2.794,1381,3.829,2744,4.645,2915,5.499,3574,3.202,4227,2.26,5740,6.813,6064,4.166,6077,5.92,6083,6.189,6111,3.267,6114,4.489,6115,4.571,6116,4.571,6119,7.69,6122,8.076,6123,7.686,6124,7.826,6125,4.571,6126,4.489,6127,6.891,6128,6.211,6129,4.571,6130,4.217,6131,6.01,6132,4.343,6133,4.571,6134,4.571,6135,4.413,6136,4.489,6137,4.413,6138,4.413,6139,4.217,6140,4.571,6141,4.489,6142,4.571,6143,4.413,6144,4.489,6145,4.278,6146,4.278,6147,4.571,9663,6.567,9664,6.567]],["title/classes/FilePermissionEntity.html",[0,0.229,9583,5.437]],["body/classes/FilePermissionEntity.html",[0,0.238,2,0.807,3,0.019,4,0.019,5,0.01,7,0.108,10,4.667,26,1.983,27,0.529,29,0.557,30,0.001,31,0.394,32,0.151,33,0.351,49,4.203,95,0.148,96,2.568,97,2.984,99,1.189,101,0.018,103,0.001,104,0.001,127,0.887,144,3.158,145,2.982,165,0.751,234,1.137,240,4.16,329,3.404,334,0.772,347,2.355,364,2.308,369,2.856,370,3.17,371,3.185,386,4.008,398,2.053,405,2.568,595,2.423,883,4.845,1031,3.046,1871,7.134,1872,7.645,2485,3.029,2618,4.865,6382,5.863,9583,7.662,9665,10.833,9666,6.478,9667,10.096,9668,10.677,9669,10.096,9670,9.504,9671,7.013,9672,7.013,9673,7.013,9674,10.677,9675,7.013,9676,7.013,9677,6.478,9678,6.478,9679,6.478,9680,6.478,9681,8.303,9682,6.126,9683,8.303,9684,6.126,9685,8.303,9686,6.126,9687,8.303,9688,6.126]],["title/interfaces/FilePermissionEntityProps.html",[334,0.742,9669,5.892]],["body/interfaces/FilePermissionEntityProps.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,10,4.983,26,2.473,30,0.001,32,0.178,33,0.657,49,3.865,95,0.152,96,2.679,97,3.177,99,1.267,101,0.019,103,0.001,104,0.001,145,3.059,165,0.783,234,1.211,240,3.973,334,0.822,336,1.819,347,2.778,369,2.613,370,3.307,371,2.732,398,2.187,405,2.018,883,5.173,1031,3.177,1871,7.616,1872,8.162,2485,3.226,2618,5.075,9583,6.02,9665,6.244,9666,6.899,9667,10.779,9668,11.398,9669,9.722,9674,11.398,9677,6.899,9678,6.899,9679,6.899,9680,6.899,9681,8.661,9682,6.524,9683,8.661,9684,6.524,9685,8.661,9686,6.524,9687,8.661,9688,6.524]],["title/entities/FileRecord.html",[380,1.41,6082,4.019]],["body/entities/FileRecord.html",[0,0.272,3,0.009,4,0.009,5,0.01,7,0.153,26,2.441,27,0.458,30,0.001,31,0.582,32,0.158,33,0.4,34,0.941,39,0.903,47,0.864,49,4.179,55,1.525,83,2.992,95,0.128,96,1.482,97,1.433,99,0.571,101,0.019,103,0,104,0,116,3.939,145,2.566,148,2.473,165,0.548,187,0.482,188,1.275,192,2.067,204,2.379,217,1.49,227,1.34,234,1.829,240,3.814,247,1.336,305,0.969,334,0.763,347,1.922,359,2.771,364,2.042,369,2.192,370,2.935,371,1.511,379,0.776,380,2.168,381,1.108,398,0.986,399,2.147,402,1.385,404,0.61,405,1.482,406,1.079,461,0.776,564,2.573,574,2.486,591,1.44,592,1.486,701,2.422,770,3.232,775,4.229,905,1.399,938,3.973,946,3.572,1015,5.24,1031,3.187,1291,2.333,1296,2.39,1366,3.686,1436,3.817,1565,5.24,1828,2.445,1919,2.277,2078,1.964,2079,3.817,2136,3.199,2309,1.888,2478,3.134,2618,2.807,2674,3.665,2685,1.925,2691,1.478,2701,1.553,2881,1.535,3091,1.535,3144,1.807,3305,2.709,3320,2.302,3331,3.074,3574,4.849,3684,1.888,3853,3.973,4227,3.423,4237,2.631,4239,2.105,4287,2.39,4293,2.967,4303,1.478,4304,1.985,4712,5.27,4982,1.888,4994,1.925,5999,3.817,6064,5.172,6082,4.763,6083,4.844,6084,3.891,6085,5.208,6092,2.344,6100,2.39,6102,2.228,6104,5.025,6110,3.852,6111,5.333,6112,5.208,6400,2.054,6424,1.964,6616,2.631,6617,4.064,6727,2.942,9493,2.496,9558,5.27,9561,5.672,9565,5.025,9599,2.344,9609,2.559,9613,2.559,9639,4.167,9642,2.44,9643,2.44,9648,2.559,9649,2.559,9689,2.715,9690,4.284,9691,6.245,9692,5.591,9693,6.245,9694,3.368,9695,7.093,9696,3.368,9697,3.368,9698,3.368,9699,3.368,9700,3.111,9701,3.111,9702,3.368,9703,3.368,9704,3.368,9705,3.368,9706,3.368,9707,6.522,9708,3.368,9709,3.368,9710,2.715,9711,2.631,9712,4.167,9713,2.44,9714,3.973,9715,3.973,9716,3.973,9717,2.105,9718,4.42,9719,4.42,9720,4.42,9721,4.42,9722,4.42,9723,4.42,9724,4.284,9725,5.373,9726,4.42,9727,2.559,9728,4.064,9729,2.496,9730,4.167,9731,2.559,9732,4.167,9733,5.418,9734,2.344,9735,2.631,9736,2.44,9737,2.44,9738,2.715,9739,2.715,9740,2.559,9741,2.559,9742,2.559,9743,2.715,9744,2.715,9745,2.715,9746,2.715,9747,2.715,9748,2.715,9749,2.715,9750,2.715,9751,2.715,9752,2.715,9753,7.604,9754,2.715,9755,2.715,9756,4.42,9757,2.715,9758,2.715,9759,4.42,9760,4.42,9761,4.42,9762,2.715,9763,2.631,9764,2.631,9765,2.715,9766,2.715,9767,2.715,9768,2.715,9769,4.42,9770,5.591,9771,2.631,9772,2.715,9773,4.42,9774,2.631,9775,2.715,9776,4.42,9777,2.715,9778,5.591,9779,5.591,9780,2.631,9781,2.715,9782,2.715,9783,2.715,9784,2.715,9785,2.715,9786,2.715,9787,2.631,9788,2.715,9789,2.715,9790,2.715,9791,2.715,9792,2.715]],["title/classes/FileRecordFactory.html",[0,0.229,9793,6.23]],["body/classes/FileRecordFactory.html",[0,0.164,2,0.554,3,0.013,4,0.013,5,0.01,7,0.074,8,0.876,27,0.534,29,1.021,30,0.001,31,0.697,32,0.183,33,0.611,34,1.499,35,1.447,47,0.528,49,1.877,55,2.504,59,3.239,95,0.134,101,0.009,103,0,104,0,127,0.609,138,3.152,144,3.203,148,1.489,165,0.573,185,4.861,216,1.342,217,1.154,227,0.766,234,1.693,329,3.452,359,2.517,366,2.65,379,2.013,380,2.182,381,2.389,404,1.315,538,3.254,596,3.863,627,2.26,660,7.189,661,4.622,662,5.454,665,4.069,666,5.454,667,5.631,668,4.069,669,4.069,670,4.069,671,3.996,672,4.44,673,4.898,674,6.396,675,5.746,676,6.953,677,2.725,682,2.699,683,4.069,684,2.725,685,5.094,686,5.308,687,4.512,688,5.135,689,4.032,690,2.699,691,2.521,692,4.087,693,2.627,694,2.583,695,2.699,696,5.017,697,2.725,698,4.81,699,2.699,700,7.053,701,4.093,702,6.571,703,2.725,704,4.317,705,2.699,706,2.725,707,2.699,708,2.725,709,2.699,710,3.05,711,2.869,712,2.699,713,6.04,714,2.725,715,2.699,716,4.069,717,3.996,718,4.069,719,2.725,720,2.605,721,2.583,722,2.124,723,2.699,724,2.699,725,2.699,726,2.725,727,2.725,728,1.885,729,2.699,730,2.725,731,2.854,732,2.699,733,2.725,734,2.779,735,2.779,736,2.869,737,2.869,1015,2.674,1291,2.048,1444,3.137,1565,2.674,3574,2.347,4150,5.779,4227,1.657,5512,3.658,5513,4.206,6082,2.869,6083,2.65,6110,2.674,6111,2.395,6112,3.137,6162,3.236,6888,4.206,8206,3.351,9513,4.448,9565,3.489,9707,5.38,9732,3.658,9793,8.071,9794,4.815,9795,9.728,9796,4.815,9797,4.448,9798,6.705,9799,4.815,9800,4.815,9801,4.815]],["title/classes/FileRecordListResponse.html",[0,0.229,6113,4.999]],["body/classes/FileRecordListResponse.html",[0,0.367,2,0.687,3,0.016,4,0.016,5,0.008,7,0.092,27,0.473,29,0.474,30,0.001,31,0.556,32,0.18,33,0.57,34,1.458,47,0.921,55,3.009,56,5.995,59,2.638,70,6.24,83,1.797,95,0.138,101,0.021,103,0.001,104,0.001,127,0.756,145,1.541,150,2.19,163,3.842,165,0.672,364,1.998,375,4.015,376,1.4,380,1.249,404,1.792,467,3.609,469,2.634,596,3.274,618,3.617,1007,7.688,1008,6.65,1009,6.162,1011,3.178,1013,4.538,1014,2.931,1015,4.722,1016,2.132,1017,4.238,1018,5.538,1019,4.957,1020,3.95,1021,3.178,1022,4.238,1023,4.238,1025,5.384,1026,4.722,1031,3.171,1442,4.665,1446,4.538,1565,3.317,2136,3.402,2787,6.187,2915,5.224,3542,3.08,3574,2.912,6064,3.897,6067,3.95,6072,4.814,6073,4.814,6074,4.814,6075,4.814,6076,4.665,6077,5.538,6078,4.993,6079,8.902,6082,5.065,6083,5.936,6084,8.086,6085,6.448,6086,9.032,6087,4.993,6088,4.814,6089,4.814,6090,3.317,6091,4.993,6092,4.157,6093,4.993,6094,4.993,6095,4.993,6096,4.665,6097,4.814,6098,4.993,6099,4.993,6100,4.238,6101,4.814,6102,3.95,6103,4.814,6104,4.327,6105,4.993,6106,4.993,6107,4.814,6108,4.993,6109,4.426,6110,3.317,6111,2.971,6112,3.891,6113,6.3,9802,5.972,9803,5.972]],["title/classes/FileRecordMapper.html",[0,0.229,9804,6.23]],["body/classes/FileRecordMapper.html",[0,0.243,2,0.822,3,0.019,4,0.019,5,0.01,7,0.11,8,1.162,27,0.452,29,0.865,30,0.001,31,0.611,32,0.153,33,0.545,35,1.314,55,2.9,56,5.607,59,2.988,70,5.836,95,0.124,101,0.014,103,0.001,104,0.001,145,1.845,217,1.539,227,1.149,234,1.766,380,1.495,564,2.653,627,4.105,982,3.582,1008,6.357,1016,3.438,1828,3.188,6064,5.341,6082,7.755,6085,4.658,6086,9.012,6113,8.07,6132,8.043,9496,10.177,9725,4.805,9734,6.703,9771,5.585,9774,7.522,9780,5.585,9804,8.895,9805,7.15,9806,9.63,9807,10.058,9808,8.895,9809,9.63,9810,7.15,9811,9.74,9812,6.605,9813,7.15,9814,8.895,9815,7.15,9816,6.605,9817,6.605,9818,6.246,9819,7.15,9820,6.605,9821,9.63,9822,5.074,9823,9.63,9824,10.888,9825,10.888,9826,7.15,9827,7.15,9828,7.15,9829,10.888,9830,7.15]],["title/classes/FileRecordParams.html",[0,0.229,6119,4.394]],["body/classes/FileRecordParams.html",[0,0.451,2,0.727,3,0.017,4,0.023,5,0.013,7,0.097,26,2.636,27,0.424,30,0.001,32,0.174,39,1.693,47,0.965,95,0.155,99,1.072,101,0.025,103,0.001,104,0.001,150,2.317,165,0.699,204,2.167,334,0.696,347,1.802,364,1.891,369,1.393,373,4.669,374,2.018,375,4.486,376,1.482,377,5.763,379,1.456,380,1.321,467,3.689,469,2.787,470,5.082,471,4.704,565,3.335,1000,5.158,1001,6.589,1031,3.271,1044,3.101,1291,2.688,1381,3.685,2744,4.551,2914,4.058,2915,5.837,3574,4.977,4227,3.514,5725,7.131,5740,6.718,6064,5.07,6077,7.204,6083,6.64,6111,5.078,6114,4.32,6115,4.398,6116,4.398,6119,7.859,6122,7.979,6123,7.559,6124,7.696,6125,4.398,6126,4.32,6127,6.751,6128,4.32,6129,4.398,6130,4.058,6131,5.851,6132,4.18,6133,4.398,6134,4.398,6135,4.247,6136,4.32,6137,4.247,6138,4.247,6139,4.058,6140,4.398,6141,4.32,6142,4.398,6143,4.247,6144,4.32,6145,4.117,6146,4.117,6147,4.398,9831,6.319,9832,6.319,9833,6.319,9834,6.319]],["title/injectables/FileRecordRepo.html",[105,0.889,9835,5.892]],["body/injectables/FileRecordRepo.html",[0,0.154,3,0.012,4,0.012,5,0.006,7,0.07,8,0.835,10,2.795,12,3.192,18,3.42,26,2.811,27,0.522,29,0.985,30,0.001,31,0.696,32,0.174,33,0.621,34,1.616,35,1.497,36,2.862,40,2.177,47,0.611,49,2.698,56,2.177,58,2.865,59,2.923,95,0.13,98,2.695,99,0.767,101,0.009,103,0,104,0,105,0.912,107,1.082,111,2.141,112,3.074,187,0.647,217,1.706,221,2.709,227,1.244,234,1.737,277,4.812,351,2.235,380,1.447,381,2.278,404,1.254,450,1.86,591,1.934,596,2.86,692,4.556,701,4.511,877,6.499,883,2.902,884,3.269,885,4.183,908,2.758,909,2.791,910,2.758,911,2.791,912,3.209,913,2.758,914,2.791,915,2.49,964,3.092,1724,2.535,1828,4.774,2185,3.917,2477,2.791,2572,2.904,3574,5.434,4227,3.243,4630,2.35,5784,4.037,5786,4.912,6064,5.513,6082,7.288,6487,2.758,6775,7.752,6805,3.352,6806,3.352,6844,2.946,6845,3.646,7633,3.148,9734,4.818,9835,6.047,9836,4.523,9837,8.409,9838,6.922,9839,8.409,9840,8.409,9841,6.922,9842,6.394,9843,6.922,9844,6.922,9845,4.523,9846,9.736,9847,4.523,9848,6.922,9849,4.523,9850,4.523,9851,4.523,9852,4.523,9853,4.523,9854,6.922,9855,4.523,9856,6.394,9857,4.523,9858,6.922,9859,4.523,9860,6.922,9861,4.523,9862,4.523,9863,4.523,9864,8.409,9865,4.523,9866,4.523,9867,8.409,9868,4.523,9869,4.523,9870,4.178,9871,4.523,9872,4.523,9873,4.523,9874,4.523]],["title/classes/FileRecordResponse.html",[0,0.229,6086,4.999]],["body/classes/FileRecordResponse.html",[0,0.353,2,0.632,3,0.015,4,0.015,5,0.008,7,0.085,27,0.537,29,0.437,30,0.001,31,0.619,32,0.185,33,0.473,34,1.781,47,0.964,55,2.679,56,4.996,70,5.2,83,2.41,95,0.133,101,0.02,103,0,104,0,127,0.696,150,3.465,163,3.273,165,0.633,364,2.369,375,4.211,376,1.289,380,1.15,404,1.451,467,3.668,469,2.425,618,3.408,1007,5.832,1008,4.371,1009,5.399,1015,5.248,1025,5.073,1026,4.449,1031,3.028,1442,4.296,1446,4.178,1565,5.248,2136,3.206,2784,3.984,2787,5.906,2914,6.067,2915,6.079,3542,2.836,3574,4.607,6064,5.985,6067,3.637,6072,4.433,6073,4.433,6074,4.433,6075,4.433,6076,4.296,6077,8.505,6078,4.597,6079,8.619,6082,6.574,6083,6.544,6084,8.956,6085,7.188,6086,8.177,6087,6.697,6088,4.433,6089,4.433,6090,3.054,6091,4.597,6092,3.827,6093,4.597,6094,4.597,6095,4.597,6096,4.296,6097,4.433,6098,4.597,6099,4.597,6100,3.902,6101,4.433,6102,3.637,6103,4.433,6104,3.984,6105,4.597,6106,4.597,6107,4.433,6108,6.697,6109,7.003,6110,5.248,6111,4.701,6112,6.156,6113,4.075,9875,5.499,9876,5.499,9877,5.499,9878,5.499,9879,5.499,9880,5.499,9881,5.499,9882,5.499,9883,5.499,9884,5.499,9885,5.499,9886,5.499]],["title/classes/FileRecordScope.html",[0,0.229,9846,5.892]],["body/classes/FileRecordScope.html",[0,0.213,2,0.722,3,0.017,4,0.017,5,0.009,7,0.097,8,1.063,26,2.71,27,0.54,29,0.982,30,0.001,31,0.694,32,0.18,33,0.618,34,1.077,35,1.492,47,0.74,49,2.448,95,0.141,96,1.697,97,2.672,99,1.065,101,0.012,103,0.001,104,0.001,111,2.407,144,2.407,148,1.943,165,0.696,167,3.362,217,0.829,227,1.225,234,1.428,277,5.131,329,2.594,347,2.072,351,4.352,369,1.942,380,1.313,404,1.595,450,2.583,529,3.885,596,3.526,1436,4.371,2432,6.062,3574,3.062,4227,2.162,5872,6.021,5873,6.021,5874,6.021,5879,6.021,5880,6.021,5881,4.371,5882,4.293,5883,4.371,5884,4.371,5893,4.293,5894,6.021,5895,4.371,5896,4.293,5897,4.371,5898,4.293,5899,7.538,6064,5.519,6082,3.742,6112,5.738,6131,5.826,9561,4.456,9565,4.55,9693,4.906,9846,11.578,9887,12.039,9888,5.062,9889,8.808,9890,8.808,9891,8.808,9892,7.694,9893,8.808,9894,8.808,9895,6.28,9896,8.808,9897,5.486,9898,8.808,9899,8.808,9900,5.801,9901,7.694,9902,6.28,9903,8.808,9904,5.486,9905,6.28,9906,6.28,9907,5.486,9908,5.801]],["title/classes/FileRecordSecurityCheck.html",[0,0.229,9707,4.999]],["body/classes/FileRecordSecurityCheck.html",[0,0.244,2,0.407,3,0.009,4,0.009,5,0.008,7,0.156,26,2.474,27,0.401,29,0.281,30,0.001,31,0.57,32,0.127,33,0.359,34,0.98,39,0.95,47,0.874,49,3.521,55,1.256,83,3.179,95,0.13,96,1.544,97,1.507,99,0.601,101,0.019,103,0,104,0,116,3.984,127,0.448,144,2.468,145,2.621,148,2.547,165,0.567,187,0.507,188,1.341,192,1.703,204,2.462,217,1.512,227,1.352,234,1.923,240,3.894,247,1.405,305,1.019,329,2.66,334,0.79,347,1.967,359,1.981,364,1.673,369,1.815,370,2.395,371,0.976,380,1.889,398,1.037,399,2.237,402,1.457,404,0.642,405,1.94,406,1.135,461,0.816,564,3.352,574,1.606,591,3.069,592,3.166,595,1.224,701,2.507,770,2.088,775,5.021,905,1.471,938,2.567,946,2.308,1015,4.574,1031,3.386,1291,1.507,1296,2.514,1366,3.84,1436,5.732,1565,4.574,1828,2.547,1919,2.372,2078,2.066,2079,3.977,2136,3.296,2309,1.986,2478,2.025,2618,2.925,2674,3.776,2685,2.025,2691,1.554,2701,1.634,2881,1.615,3091,1.615,3144,1.901,3305,1.751,3320,2.422,3331,1.986,3574,4.952,3684,1.986,3853,2.567,4227,3.496,4237,2.768,4239,2.215,4293,3.091,4303,1.554,4304,2.088,4982,1.986,4994,2.025,5999,2.466,6064,4.657,6082,4.278,6083,4.533,6084,4.054,6085,5.885,6092,2.466,6100,2.514,6102,2.344,6104,5.201,6110,3.987,6111,5.053,6112,3.722,6400,2.16,6424,2.066,6616,2.768,6617,4.234,6727,1.901,9493,2.626,9558,2.692,9561,4.054,9565,2.567,9599,2.466,9609,2.692,9613,2.692,9639,4.341,9642,2.567,9643,2.567,9648,2.692,9649,2.692,9689,2.856,9690,2.768,9691,4.463,9692,2.856,9693,4.463,9695,6.638,9707,6.694,9710,2.856,9711,2.768,9712,4.341,9713,2.567,9714,4.139,9715,4.139,9716,4.139,9717,2.215,9718,4.605,9719,4.605,9720,4.605,9721,4.605,9722,4.605,9723,4.605,9724,6.433,9725,6.49,9726,5.787,9727,4.341,9728,4.234,9729,2.626,9730,4.341,9731,2.692,9732,4.341,9733,5.608,9734,2.466,9735,2.768,9736,2.567,9737,2.567,9738,2.856,9739,2.856,9740,2.692,9741,2.692,9742,2.692,9743,2.856,9744,2.856,9745,2.856,9746,2.856,9747,2.856,9748,2.856,9749,2.856,9750,2.856,9751,2.856,9752,2.856,9753,7.784,9754,2.856,9755,2.856,9756,4.605,9757,2.856,9758,2.856,9759,4.605,9760,4.605,9761,4.605,9762,2.856,9763,2.768,9764,2.768,9765,2.856,9766,2.856,9767,2.856,9768,2.856,9769,4.605,9770,5.787,9771,2.768,9772,2.856,9773,4.605,9774,2.768,9775,2.856,9776,4.605,9777,2.856,9778,5.787,9779,5.787,9780,2.768,9781,2.856,9782,2.856,9783,2.856,9784,2.856,9785,2.856,9786,2.856,9787,2.768,9788,2.856,9789,2.856,9790,2.856,9791,2.856,9792,2.856,9909,5.713,9910,3.543,9911,3.543,9912,3.543,9913,3.543]],["title/classes/FileResponseBuilder.html",[0,0.229,9914,5.892]],["body/classes/FileResponseBuilder.html",[0,0.317,2,1.072,3,0.025,4,0.025,5,0.017,7,0.143,8,1.378,27,0.387,29,0.74,30,0.001,31,0.741,32,0.131,33,0.466,35,1.124,47,0.898,95,0.146,101,0.018,103,0.001,104,0.001,116,3.016,163,2.938,217,1.231,227,0.983,334,1.026,627,3.844,667,5.361,3544,3.869,6064,5.236,6154,8.608,6169,9.538,9485,8.14,9496,9.975,9914,9.975,9915,11.419,9916,9.319,9917,9.382,9918,6.906,9919,9.975]],["title/classes/FileSecurityCheckEntity.html",[0,0.229,9587,5.437]],["body/classes/FileSecurityCheckEntity.html",[0,0.248,2,0.839,3,0.019,4,0.019,5,0.01,7,0.112,27,0.523,29,0.579,30,0.001,31,0.409,32,0.165,33,0.55,47,0.89,83,3.533,95,0.141,96,1.971,101,0.019,103,0.001,104,0.001,127,0.923,144,3.345,145,2.838,165,0.771,234,1.905,240,4.148,329,3.606,334,0.803,364,2.268,398,2.135,405,2.637,564,4.357,591,4.702,592,4.85,595,2.519,775,7.161,1031,3.524,1436,8.174,2078,4.253,2079,6.792,2485,3.15,2618,4.995,9587,7.866,9599,5.076,9600,9.535,9665,10.756,9725,7.893,9727,7.414,9728,7.232,9729,5.405,9730,7.414,9731,5.541,9920,6.736,9921,10.258,9922,9.758,9923,7.292,9924,7.292,9925,7.292,9926,10.848,9927,9.014,9928,7.292]],["title/interfaces/FileSecurityCheckEntityProps.html",[334,0.742,9921,5.892]],["body/interfaces/FileSecurityCheckEntityProps.html",[0,0.281,3,0.022,4,0.022,5,0.012,7,0.127,30,0.001,32,0.164,33,0.652,47,0.964,83,3.187,95,0.15,96,2.234,101,0.02,103,0.001,104,0.001,145,3.016,165,0.837,234,1.718,240,3.993,334,0.91,336,2.013,398,2.42,405,2.234,564,4.729,591,3.534,592,3.646,775,7.128,1031,3.394,1436,8.871,2078,4.82,2079,7.373,2485,3.57,2618,5.422,9587,6.663,9599,5.753,9600,6.126,9665,6.911,9725,8.566,9727,6.281,9728,7.851,9729,6.126,9730,8.049,9731,6.281,9920,7.636,9921,10.211,9926,11.774,9927,7.636]],["title/controllers/FileSecurityController.html",[481,2.629,9929,5.892]],["body/controllers/FileSecurityController.html",[0,0.263,3,0.021,4,0.021,5,0.011,7,0.119,8,1.225,27,0.422,29,0.806,30,0.001,31,0.57,32,0.159,33,0.508,35,1.225,47,0.931,95,0.164,100,2.591,101,0.015,103,0.001,104,0.001,112,2.873,187,1.108,215,2.505,216,1.431,217,1.022,221,2.392,227,0.817,234,1.255,264,3.277,351,6.169,364,1.881,367,5.787,376,1.815,447,3.245,481,3.958,543,3.878,555,4.086,1062,3.378,1443,6.762,1446,5.882,1569,5.609,2769,3.825,3542,3.992,4038,4.778,6064,5.194,6132,7.953,6489,5.203,6490,6.472,6491,4.613,6513,6.472,9600,5.737,9811,9.47,9929,8.868,9930,11.328,9931,7.741,9932,10.152,9933,10.152,9934,7.741,9935,9.253,9936,7.741,9937,7.741,9938,7.741,9939,7.741,9940,7.741,9941,11.328,9942,10.464,9943,7.741,9944,7.741,9945,7.741,9946,7.741,9947,7.151,9948,7.741,9949,7.741,9950,7.741,9951,7.741,9952,7.741,9953,7.741,9954,7.741]],["title/injectables/FileSystemAdapter.html",[105,0.889,9955,5.639]],["body/injectables/FileSystemAdapter.html",[0,0.152,3,0.012,4,0.012,5,0.018,7,0.069,8,0.826,27,0.498,29,0.881,30,0.001,31,0.622,32,0.161,33,0.555,35,1.445,36,2.686,47,0.998,95,0.129,101,0.009,103,0,104,0,105,0.902,107,1.066,111,1.666,112,2.93,127,1.055,165,0.541,187,0.638,217,1.406,221,2.377,227,1.124,264,4.694,379,2.154,494,6.896,565,6.04,574,2.021,576,7.594,795,4.035,884,3.233,1035,4.765,1121,6.508,1661,4.46,1871,4.225,1872,4.528,1924,5.201,1925,3.557,2180,4.336,2296,6.634,2307,5.98,2344,3.864,2439,3.23,2450,4.336,2478,2.547,2659,3.727,2835,6.818,2880,5.828,3261,3.047,3477,6.323,3542,3.53,3851,5.347,7654,5.723,7679,8.453,9955,5.723,9956,11.257,9957,11.257,9958,4.457,9959,9.301,9960,6.845,9961,6.845,9962,6.845,9963,8.333,9964,8.333,9965,6.845,9966,8.333,9967,8.333,9968,6.845,9969,6.845,9970,4.457,9971,5.723,9972,10.57,9973,6.845,9974,4.457,9975,3.802,9976,9.349,9977,10.087,9978,6.845,9979,5.98,9980,5.201,9981,8.637,9982,11.442,9983,6.845,9984,4.457,9985,3.387,9986,8.333,9987,4.457,9988,6.323,9989,9.836,9990,8.333,9991,4.457,9992,7.698,9993,7.698,9994,7.537,9995,9.349,9996,6.845,9997,4.457,9998,6.323,9999,6.323,10000,5.518,10001,8.333,10002,4.457,10003,6.845,10004,4.457,10005,4.457,10006,6.845,10007,4.457,10008,4.118,10009,6.323,10010,4.457,10011,4.457,10012,4.457,10013,8.333,10014,4.457,10015,4.457,10016,4.457,10017,4.457,10018,4.457,10019,6.845,10020,4.457,10021,4.457,10022,3.482,10023,4.457,10024,4.457,10025,4.457]],["title/modules/FileSystemModule.html",[425,1.808,10026,5.639]],["body/modules/FileSystemModule.html",[0,0.324,3,0.025,4,0.025,5,0.016,30,0.001,95,0.149,101,0.018,103,0.001,104,0.001,187,1.365,425,3.343,427,3.526,428,3.719,429,3.835,430,3.818,431,3.784,432,4.611,433,4.704,442,4.656,443,3.751,444,3.657,9955,11.79,9956,8.812,9957,8.812,10026,11.435,10027,9.539,10028,9.539,10029,9.539,10030,9.539,10031,9.539]],["title/classes/FileUrlParams.html",[0,0.229,6126,4.611]],["body/classes/FileUrlParams.html",[0,0.451,2,0.724,3,0.017,4,0.023,5,0.012,7,0.097,26,2.514,27,0.423,30,0.001,32,0.174,33,0.442,39,1.688,47,0.978,95,0.155,99,1.068,101,0.025,103,0.001,104,0.001,150,3.737,165,0.697,204,2.161,334,0.693,347,1.798,364,1.888,369,1.389,373,4.659,374,2.012,375,4.479,376,1.477,377,5.751,379,1.451,380,1.317,467,3.687,469,2.778,470,5.077,471,4.698,565,3.325,1000,5.153,1001,6.58,1011,5.422,1031,3.265,1044,3.092,1291,3.755,1381,5.942,2744,4.543,2915,5.379,3574,3.071,4227,2.168,5740,6.711,6064,5.063,6077,7.194,6083,6.079,6111,3.134,6114,4.306,6115,4.385,6116,4.385,6119,7.574,6122,7.971,6123,7.549,6124,7.686,6125,4.385,6126,6.034,6127,7.69,6128,4.306,6129,4.385,6130,4.045,6131,5.839,6132,4.167,6133,4.385,6134,4.385,6135,4.234,6136,4.306,6137,4.234,6138,4.234,6139,4.045,6140,4.385,6141,4.306,6142,4.385,6143,4.234,6144,4.306,6145,4.104,6146,4.104,6147,4.385,10032,8.827,10033,6.299,10034,6.299,10035,6.299,10036,6.299]],["title/modules/FilesModule.html",[425,1.808,10037,5.639]],["body/modules/FilesModule.html",[0,0.3,3,0.023,4,0.023,5,0.012,30,0.001,95,0.17,101,0.017,103,0.001,104,0.001,187,1.264,425,3.23,427,3.263,428,3.441,429,3.549,430,3.533,431,3.502,432,4.454,433,3.329,438,6.264,442,4.439,443,3.471,444,3.384,449,4.439,1545,2.82,2570,4.776,2769,4.362,7769,9.647,7774,11.088,7778,7.712,7802,10.69,7803,11.088,7822,8.155,10037,11.674,10038,8.828,10039,8.828,10040,8.828,10041,8.828]],["title/injectables/FilesRepo.html",[105,0.889,7802,5.437]],["body/injectables/FilesRepo.html",[0,0.189,3,0.015,4,0.015,5,0.008,7,0.086,8,0.975,10,3.264,12,3.727,18,3.994,26,2.599,27,0.518,29,0.971,30,0.001,31,0.686,32,0.172,33,0.612,34,1.386,35,1.44,36,2.707,40,2.679,49,3.709,55,2.543,56,2.679,58,6.613,83,2.863,95,0.153,96,2.184,97,2.369,99,0.944,101,0.011,103,0,104,0,105,1.065,107,1.332,112,2.979,116,4.032,127,0.705,187,0.797,216,1.029,217,1.614,221,2.242,227,1.102,234,1.311,380,1.69,381,2.66,398,1.63,404,1.464,577,3.121,596,3.17,692,4.777,701,2.823,877,6.959,883,3.388,884,3.817,885,4.734,908,3.395,909,3.436,910,3.395,911,3.436,912,3.951,913,3.395,914,3.436,915,3.065,919,4.23,964,3.806,1916,2.697,2394,4.034,2395,5.967,2397,5.856,2435,3.742,2485,2.405,3542,5.965,3601,4.488,4628,3.683,5782,4.23,7668,6.292,7777,9.121,7788,7.06,7802,6.515,7808,4.655,7811,8.156,7907,3.875,9562,4.23,9564,4.863,9574,3.951,9585,4.863,9667,4.863,10042,5.567,10043,8.082,10044,8.082,10045,8.082,10046,5.567,10047,8.082,10048,5.567,10049,5.567,10050,8.082,10051,5.567,10052,5.567,10053,8.082,10054,5.567,10055,5.567,10056,7.466,10057,4.488,10058,8.082,10059,5.567,10060,5.567,10061,7.06,10062,5.143,10063,5.567,10064,5.567,10065,5.567,10066,5.567,10067,5.567,10068,5.567]],["title/injectables/FilesService.html",[105,0.889,10069,6.23]],["body/injectables/FilesService.html",[0,0.277,3,0.022,4,0.022,5,0.012,7,0.125,8,1.266,26,2.757,27,0.482,29,0.922,30,0.001,31,0.652,32,0.163,33,0.581,35,1.266,36,2.664,39,2.813,95,0.149,99,1.382,101,0.016,103,0.001,104,0.001,105,1.383,107,1.95,112,2.913,127,1.031,187,1.166,215,2.637,216,1.506,217,1.386,221,2.89,227,1.294,247,4.864,381,3.454,2570,6.282,6673,7.118,7802,9.885,10069,9.696,10070,8.149,10071,10.496,10072,10.496,10073,8.149,10074,10.496,10075,8.149,10076,10.496,10077,8.149,10078,8.149,10079,11.327,10080,10.496,10081,8.149,10082,10.496,10083,8.149,10084,8.149]],["title/modules/FilesStorageAMQPModule.html",[425,1.808,10085,5.892]],["body/modules/FilesStorageAMQPModule.html",[0,0.301,3,0.024,4,0.024,5,0.013,30,0.001,95,0.167,101,0.017,103,0.001,104,0.001,187,1.269,425,3.236,427,3.277,428,3.457,429,3.564,430,3.548,431,3.517,432,4.463,433,3.343,438,6.271,442,4.451,443,3.487,444,3.399,449,4.451,481,3.457,1445,6.737,1545,2.832,3542,4.573,3543,4.352,6064,4.065,6317,8.782,10085,12.205,10086,8.867,10087,8.867,10088,8.867,10089,10.702,10090,11.598,10091,8.867,10092,6.172,10093,8.191]],["title/modules/FilesStorageApiModule.html",[425,1.808,10094,5.269]],["body/modules/FilesStorageApiModule.html",[0,0.282,3,0.022,4,0.022,5,0.012,30,0.001,95,0.172,101,0.016,103,0.001,104,0.001,187,1.188,425,3.139,427,3.068,428,3.236,429,3.337,430,3.322,431,3.292,432,4.329,433,3.13,442,4.269,443,3.264,444,3.182,446,5.257,447,4.452,449,4.269,481,3.236,1266,4.743,1445,6.307,1585,8.634,1945,7.062,2767,3.741,2769,4.101,3542,4.281,3543,4.074,3956,7.138,6064,3.805,6317,8.634,9929,10.231,9942,12.059,10089,10.523,10092,5.777,10093,7.667,10094,10.912,10095,8.3,10096,8.3,10097,8.3,10098,11.712,10099,6.484]],["title/injectables/FilesStorageClientAdapterService.html",[105,0.889,6193,4.999]],["body/injectables/FilesStorageClientAdapterService.html",[0,0.239,3,0.025,4,0.019,5,0.013,7,0.108,8,1.15,26,2.414,27,0.481,29,0.919,30,0.001,31,0.65,32,0.162,33,0.579,35,1.303,36,2.709,95,0.166,99,1.194,100,2.355,101,0.013,103,0.001,104,0.001,105,1.255,107,1.684,111,1.407,112,2.947,127,0.891,187,1.007,206,3.602,215,2.277,216,1.301,217,1.647,221,2.545,227,1.14,264,4.033,336,1.714,367,3.387,1016,3.856,1052,3.882,1053,5.132,1545,2.248,2993,4.655,3542,3.629,3543,6.522,3574,3.431,6063,5.673,6064,5.545,6177,9.042,6179,9.677,6180,6.501,6193,7.061,6219,5.099,9659,5.884,10100,11.172,10101,7.037,10102,8.322,10103,8.322,10104,8.801,10105,10.801,10106,9.677,10107,7.037,10108,9.527,10109,7.037,10110,9.527,10111,7.037,10112,9.527,10113,7.037,10114,6.501,10115,7.037,10116,7.037,10117,12.467,10118,7.037,10119,7.037,10120,9.527,10121,7.037]],["title/classes/FilesStorageClientMapper.html",[0,0.229,9659,5.639]],["body/classes/FilesStorageClientMapper.html",[0,0.202,2,0.685,3,0.016,4,0.016,5,0.008,7,0.092,8,1.024,27,0.492,29,0.94,30,0.001,31,0.699,32,0.175,33,0.592,34,1.455,35,1.428,47,0.718,95,0.138,99,1.01,100,3.307,101,0.011,103,0.001,104,0.001,217,1.644,227,1.356,234,1.747,305,2.44,336,1.45,380,2.252,627,4.241,806,4.163,1016,3.845,1720,6.445,2309,5.54,2689,4.408,2691,3.722,2881,3.867,3543,6.546,3574,2.903,5843,4.652,6063,8.681,6064,5.582,6067,3.939,6068,10.179,6076,4.652,6083,6.852,6086,4.413,6111,4.22,6113,4.413,6219,9.308,8206,4.145,8990,5.202,9488,10.406,9656,11.247,9658,9.948,9659,7.092,10122,5.954,10123,8.483,10124,8.483,10125,8.483,10126,8.483,10127,8.483,10128,8.483,10129,8.483,10130,5.954,10131,8.483,10132,5.954,10133,8.483,10134,5.954,10135,8.483,10136,5.954,10137,8.483,10138,5.954,10139,8.483,10140,5.954,10141,10.769,10142,5.954,10143,5.954,10144,5.954,10145,5.954,10146,5.954,10147,5.954,10148,5.954,10149,5.954,10150,5.954,10151,5.954,10152,5.954,10153,5.954,10154,8.483,10155,5.954,10156,5.954,10157,5.954]],["title/modules/FilesStorageClientModule.html",[425,1.808,3534,4.999]],["body/modules/FilesStorageClientModule.html",[0,0.279,3,0.022,4,0.022,5,0.012,30,0.001,95,0.167,101,0.016,103,0.001,104,0.001,187,1.174,425,3.121,427,3.03,428,3.196,429,3.296,430,3.281,431,3.252,432,4.304,433,4.391,438,6.146,442,4.236,443,3.224,444,3.143,449,4.236,1545,2.619,3026,5.06,3027,4.685,3534,10.407,3543,5.715,6064,3.759,6186,11.143,6193,10.245,6205,7.574,6234,9.428,6240,7.574,10106,10.878,10114,7.574,10158,8.199,10159,8.199,10160,8.199,10161,8.199,10162,8.199,10163,7.574,10164,7.162,10165,9.205]],["title/injectables/FilesStorageConsumer.html",[105,0.889,10090,5.892]],["body/injectables/FilesStorageConsumer.html",[0,0.195,3,0.015,4,0.026,5,0.008,7,0.088,8,0.996,26,2.208,27,0.44,29,0.841,30,0.001,31,0.594,32,0.149,33,0.53,35,1.167,36,2.538,39,1.537,95,0.163,96,1.549,99,0.973,100,1.919,101,0.011,103,0.001,104,0.001,105,1.088,107,1.372,111,1.935,112,2.814,116,4.062,127,1.045,145,2.496,187,0.821,206,2.935,216,1.526,217,1.543,221,2.28,227,1.021,231,7.354,364,1.793,398,1.679,731,2.255,957,3.245,1008,5.776,1016,3.779,1052,3.943,1053,4.694,1298,2.708,1299,2.676,1300,2.676,1301,2.833,1302,3.102,1327,4.18,1417,6.213,1418,7.852,1437,4.155,1438,3.854,1545,1.831,1865,5.067,1991,3.102,2514,3.793,2657,4.069,2658,3.991,2744,3.681,3808,7.171,4614,4.622,6064,5.143,6119,6.896,6138,7.114,6758,6.304,7662,8.043,9515,6.903,9734,5.747,10090,7.213,10102,9.247,10103,8.452,10165,5.009,10166,11.218,10167,5.734,10168,9.675,10169,5.734,10170,9.418,10171,5.734,10172,5.297,10173,9.675,10174,8.924,10175,10.793,10176,9.675,10177,5.734,10178,5.297,10179,5.734,10180,5.734,10181,5.734,10182,8.257,10183,10.585,10184,11.218,10185,4.479,10186,5.009,10187,4.479,10188,4.357,10189,4.357,10190,5.297,10191,5.009,10192,5.734,10193,8.257,10194,5.734,10195,8.257,10196,5.734,10197,5.734,10198,8.257,10199,8.257,10200,5.734,10201,5.734]],["title/classes/FilesStorageMapper.html",[0,0.229,10191,5.892]],["body/classes/FilesStorageMapper.html",[0,0.287,2,0.679,3,0.016,4,0.016,5,0.008,7,0.091,8,1.017,27,0.49,29,0.937,30,0.001,31,0.662,32,0.174,33,0.59,35,1.424,55,2.779,56,5.162,59,2.616,70,5.373,95,0.151,101,0.011,103,0.001,104,0.001,185,2.311,187,0.845,208,2.19,217,1.604,227,1.245,234,1.84,305,1.698,334,0.65,380,1.234,627,4.237,982,2.957,1008,5.853,1016,3.01,1567,4.276,2027,6.406,2767,2.66,3218,5.576,3331,4.726,3491,5.156,3574,2.878,4227,2.032,5739,3.904,6022,4.374,6064,5.568,6082,7.81,6083,5.905,6086,7.288,6097,4.758,6103,4.758,6111,2.936,6113,7.288,6119,7.391,6130,6.888,6131,3.904,6135,7.625,6489,6.609,6490,9.484,6513,4.934,9734,5.867,9807,9.083,9808,7.787,9812,5.452,9814,7.787,9816,5.452,9817,5.452,9818,5.156,9820,5.452,9917,8.15,9919,5.156,10191,7.364,10202,12.144,10203,5.902,10204,8.429,10205,7.364,10206,8.429,10207,8.429,10208,8.429,10209,5.902,10210,7.364,10211,5.902,10212,5.902,10213,5.902,10214,8.429,10215,5.902,10216,8.429,10217,5.902,10218,5.902,10219,5.902,10220,5.452,10221,5.902,10222,5.902,10223,5.902,10224,5.902,10225,5.156,10226,5.902,10227,5.452,10228,5.902,10229,5.902,10230,5.902,10231,5.902,10232,4.934,10233,5.902,10234,5.902,10235,5.902,10236,5.902,10237,5.902,10238,5.902,10239,5.902,10240,5.902]],["title/modules/FilesStorageModule.html",[425,1.808,10089,5.437]],["body/modules/FilesStorageModule.html",[0,0.204,3,0.016,4,0.016,5,0.008,30,0.001,32,0.084,47,0.786,87,2.969,95,0.173,96,2.307,99,1.019,101,0.011,103,0.001,104,0.001,154,2.739,187,0.86,217,1.311,234,0.974,347,1.224,369,1.324,380,1.256,381,1.977,398,1.759,425,2.661,427,2.22,428,2.342,429,2.415,430,2.404,431,2.383,432,3.996,433,3.744,438,5.605,442,3.432,443,2.362,444,2.303,449,4.347,461,1.384,511,3.075,574,2.723,701,2.981,722,2.65,731,2.362,778,5.738,801,3.504,885,4.247,953,3.914,1298,2.838,1299,2.803,1300,2.803,1301,2.969,1378,3.974,1379,3.621,1406,4.843,1415,3.621,1416,4.843,1417,3.858,1418,4.038,1445,4.565,1545,1.919,1585,7.152,1724,3.368,1919,2.495,1945,5.85,2171,2.582,2172,2.873,2173,2.77,2174,3.805,2570,3.25,2686,3.197,3542,3.098,3544,2.495,4608,5.55,4614,4.843,4808,4.107,5400,3.974,5453,4.038,6064,2.754,6082,5.087,6163,3.974,6317,7.152,9611,4.263,9707,6.327,9835,10.366,9918,4.453,10089,11.255,10094,8.446,10165,5.248,10170,10.6,10241,6.008,10242,6.008,10243,6.008,10244,6.008,10245,8.795,10246,7.526,10247,11.487,10248,6.327,10249,6.327,10250,4.353,10251,6.486,10252,4.263,10253,4.453,10254,6.327,10255,6.008,10256,5.55,10257,4.565,10258,6.185,10259,6.185,10260,6.185,10261,4.453,10262,4.263,10263,5.55,10264,6.008,10265,5.023,10266,6.008,10267,6.008,10268,6.008,10269,5.248,10270,6.008,10271,5.023,10272,6.486,10273,4.453,10274,4.453,10275,4.353,10276,4.843,10277,4.353,10278,4.565,10279,5.248]],["title/injectables/FilesStorageProducer.html",[105,0.889,10106,5.639]],["body/injectables/FilesStorageProducer.html",[0,0.18,3,0.014,4,0.014,5,0.007,7,0.081,8,0.94,26,2.451,27,0.488,29,0.903,30,0.001,31,0.638,32,0.165,33,0.569,35,1.311,36,2.469,55,1.714,80,4.428,95,0.158,99,0.898,101,0.01,103,0,104,0,105,1.027,107,1.267,111,2.566,112,2.759,127,0.986,144,1.447,148,1.638,165,0.616,187,0.758,204,2.673,216,2.101,217,1.435,221,2.179,227,1.076,231,7.701,247,3.091,305,1.524,329,1.56,336,1.29,789,7.545,801,3.089,957,2.997,1016,3.88,1052,3.176,1053,4.521,1327,2.092,1417,5.004,1418,5.238,1429,8.927,1437,3.837,1438,3.56,1545,1.692,1865,5.951,2049,4.269,2050,4.893,2993,3.503,3543,5.917,3808,8.423,3940,6.515,3976,8.489,6064,5.527,6760,3.837,8199,4.627,8201,4.893,10100,11.136,10102,6.808,10103,6.808,10104,7.199,10106,6.515,10172,7.199,10174,5.776,10178,7.199,10185,7.965,10186,4.627,10187,8.489,10188,4.024,10189,4.024,10190,4.893,10280,5.296,10281,7.793,10282,7.793,10283,7.793,10284,7.793,10285,5.296,10286,9.178,10287,5.296,10288,7.793,10289,9.178,10290,5.296,10291,5.296,10292,7.793,10293,5.296,10294,4.428,10295,5.296,10296,5.296,10297,7.199,10298,5.296,10299,5.296,10300,9.246,10301,5.296,10302,5.296,10303,9.246,10304,9.246,10305,5.296,10306,5.296,10307,5.296,10308,5.296,10309,5.296,10310,5.296,10311,5.296,10312,7.793,10313,5.296]],["title/modules/FilesStorageTestModule.html",[425,1.808,10314,5.892]],["body/modules/FilesStorageTestModule.html",[0,0.241,3,0.019,4,0.019,5,0.01,8,0.855,27,0.294,29,0.563,30,0.001,31,0.398,32,0.099,33,0.355,35,0.855,59,2.199,95,0.172,99,1.202,101,0.014,103,0.001,104,0.001,187,1.014,217,1.432,227,0.748,380,1.482,381,2.332,425,3.111,427,2.619,428,2.763,429,2.849,430,2.836,431,2.811,432,4.29,433,2.672,438,5.901,442,3.848,443,2.787,444,2.717,447,4.544,449,4.873,627,2.98,701,3.343,1408,5.135,1409,6.434,1412,7.17,1445,7.273,1545,2.263,1585,8.264,1945,6.759,2767,3.195,3542,3.655,3543,5.32,6064,4.389,6082,5.704,6317,8.264,10092,4.933,10094,9.759,10099,5.536,10246,8.696,10254,7.094,10256,6.547,10314,12.186,10315,7.087,10316,7.087,10317,8.438,10318,6.191,10319,8.603,10320,7.087,10321,5.135,10322,5.713,10323,5.135,10324,5.713,10325,5.925,10326,7.094]],["title/classes/FilterImportUserParams.html",[0,0.229,10327,5.639]],["body/classes/FilterImportUserParams.html",[0,0.311,2,1.409,3,0.018,4,0.018,5,0.009,7,0.102,27,0.522,30,0.001,32,0.18,33,0.678,47,0.955,95,0.17,101,0.02,103,0.001,104,0.001,165,0.724,347,1.866,364,2.326,369,2.019,373,4.834,374,2.122,375,5.189,376,1.557,469,2.93,470,4.993,471,5.443,496,4.416,577,5.876,851,5.144,852,5.144,1001,7.062,1031,3.62,1044,3.26,1680,6.261,2489,5.234,2500,5.653,3105,5.801,3106,5.134,4442,5.642,5346,5.801,5418,7.156,7668,5.519,10327,7.657,10328,11.817,10329,5.553,10330,7.296,10331,7.165,10332,6.642,10333,6.642,10334,9.683,10335,6.642,10336,6.642,10337,6.642,10338,6.642,10339,6.642,10340,10.948,10341,6.136,10342,6.642,10343,6.642,10344,6.642,10345,10.948,10346,6.642,10347,6.642,10348,8.46,10349,6.375,10350,4.714,10351,6.317,10352,6.642,10353,6.642]],["title/classes/FilterNewsParams.html",[0,0.229,10354,5.437]],["body/classes/FilterNewsParams.html",[0,0.352,2,0.917,3,0.021,4,0.021,5,0.011,7,0.123,27,0.477,30,0.001,32,0.161,33,0.646,34,1.775,47,0.884,95,0.156,99,1.352,101,0.015,103,0.001,104,0.001,165,0.818,347,2.108,364,2.129,373,5.462,374,2.546,375,4.933,376,1.869,377,6.741,379,2.904,470,4.359,471,5.174,475,3.993,1000,4.424,1031,2.554,1044,3.912,1295,5.973,2744,5.421,2778,6.741,2910,5.646,2911,5.646,6723,7.378,6730,7.349,6731,7.309,6774,7.343,6900,6.963,6902,7.997,6904,7.364,6909,7.364,6911,7.922,6914,7.497,6920,7.364,10354,8.341,10355,12.16,10356,9.262,10357,6.963,10358,8.083,10359,8.651,10360,7.971,10361,7.971,10362,7.364,10363,7.669,10364,7.971]],["title/classes/FilterUserParams.html",[0,0.229,10365,5.639]],["body/classes/FilterUserParams.html",[0,0.393,2,1.094,3,0.025,4,0.025,5,0.013,7,0.146,27,0.395,30,0.001,31,0.7,32,0.134,33,0.579,47,0.841,95,0.148,101,0.018,103,0.001,104,0.001,144,3.161,165,0.914,364,1.763,374,3.04,375,4.692,376,2.231,470,4.873,471,4.921,494,6.971,851,5.677,852,5.677,1001,6.892,4442,5.102,7668,6.971,10328,10.685,10329,7.957,10334,8.791,10365,9.671,10366,9.517]],["title/classes/ForbiddenLoggableException.html",[0,0.229,2039,5.892]],["body/classes/ForbiddenLoggableException.html",[0,0.283,2,0.958,3,0.022,4,0.022,5,0.012,7,0.128,8,1.285,26,2.579,27,0.442,29,0.662,30,0.001,31,0.468,32,0.149,33,0.417,35,1.006,39,3.145,47,0.853,95,0.164,99,1.414,101,0.016,103,0.001,104,0.001,111,2.346,127,1.348,163,2.628,187,1.193,199,4.48,208,3.093,214,3.516,216,2.169,217,1.101,227,0.88,404,1.928,406,2.671,415,4.548,885,6.152,945,7.281,1327,4.205,1542,5.476,1547,6.152,1862,6.807,1865,4.365,1866,4.717,2037,6.773,2039,9.302,8137,6.426,8530,5.352,8537,4.912,8538,5.144,10367,11.735,10368,6.718,10369,7.699,10370,8.334,10371,7.281,10372,7.281,10373,8.334,10374,8.334,10375,8.334]],["title/classes/ForbiddenOperationError.html",[0,0.229,507,5.639]],["body/classes/ForbiddenOperationError.html",[0,0.259,2,0.875,3,0.02,4,0.02,5,0.011,7,0.117,8,1.211,27,0.54,29,0.604,30,0.001,31,0.427,32,0.189,33,0.562,35,0.918,47,0.927,55,1.673,59,3.115,95,0.129,101,0.015,103,0.001,104,0.001,127,0.963,165,0.793,187,1.089,204,4.373,216,2.492,364,2.3,404,1.818,406,2.438,507,8.392,564,2.824,596,3.871,1013,5.476,1016,2.717,1253,5.18,1291,5.081,1327,4.903,1472,8.241,1473,7.43,1474,4.054,1475,7.213,1479,4.958,1480,4.266,1481,4.958,1482,4.958,1483,4.958,1484,4.958,1485,4.958,1486,4.64,1487,4.349,1488,5.944,1493,4.82,1884,8.092,4579,6.134,10376,10.038,10377,7.609,10378,7.609,10379,7.609,10380,8.392,10381,7.627,10382,7.029]],["title/controllers/FwuLearningContentsController.html",[481,2.629,10383,5.639]],["body/controllers/FwuLearningContentsController.html",[0,0.253,3,0.02,4,0.02,5,0.011,7,0.115,8,1.195,27,0.31,29,0.592,30,0.001,31,0.418,32,0.139,33,0.373,35,0.899,36,2.151,95,0.166,101,0.014,103,0.001,104,0.001,112,2.493,185,4.353,187,1.067,215,2.412,216,1.378,217,1.468,221,1.757,227,0.787,234,1.606,264,4.192,305,2.144,363,4.787,364,1.381,367,5.702,369,1.643,376,1.748,447,3.125,481,2.906,483,3.588,555,3.935,556,4.033,557,4.068,561,4.068,576,4.394,1016,4.403,1415,4.493,1439,3.565,1487,4.26,1567,5.401,2171,3.203,2172,3.565,2173,3.438,2344,4.092,3491,6.512,3898,4.068,6489,8.288,6490,6.232,6491,4.442,6507,6.512,6513,6.232,9935,8.78,9947,6.886,10383,8.279,10384,7.735,10385,9.632,10386,9.902,10387,7.454,10388,8.279,10389,7.454,10390,10.349,10391,9.902,10392,7.454,10393,8.963,10394,6.512,10395,6.512,10396,7.454,10397,7.454,10398,7.454,10399,7.454,10400,7.454,10401,7.454,10402,8.686,10403,7.454,10404,7.454,10405,7.454,10406,7.454,10407,7.454,10408,7.454,10409,6.886,10410,7.454,10411,7.454,10412,7.454,10413,7.454,10414,7.454,10415,7.454,10416,7.454,10417,7.454]],["title/modules/FwuLearningContentsModule.html",[425,1.808,10418,5.892]],["body/modules/FwuLearningContentsModule.html",[0,0.219,3,0.017,4,0.017,5,0.009,30,0.001,32,0.091,47,0.469,87,3.187,94,4.265,95,0.175,96,2.425,99,1.094,101,0.012,103,0.001,104,0.001,154,2.941,187,0.923,217,0.852,234,1.046,369,1.422,381,2.123,398,1.889,425,2.766,427,2.384,428,2.515,429,2.593,430,2.582,431,2.559,432,3.814,433,2.432,438,5.735,442,3.608,443,2.537,444,2.473,447,3.762,449,3.608,461,2.378,496,3.781,511,3.302,574,2.924,701,3.134,722,2.845,731,2.537,778,6.032,801,3.762,844,4.068,885,4.465,953,4.203,1114,3.641,1266,3.686,1298,3.047,1299,3.01,1300,3.01,1301,3.187,1378,4.267,1379,3.888,1545,2.06,1585,8.031,1724,3.616,1919,2.679,1945,6.569,2686,3.432,2767,2.908,3544,2.679,3956,6.032,4808,4.41,5400,4.267,5453,4.336,6163,4.267,6317,8.031,8206,4.49,9475,5.61,9611,4.578,9918,4.781,10092,4.49,10245,8.999,10248,6.652,10249,6.652,10250,4.674,10251,6.819,10252,4.578,10253,4.781,10257,8.911,10258,6.503,10259,6.503,10260,6.503,10261,4.781,10262,4.578,10265,5.393,10271,5.393,10272,6.819,10273,4.781,10274,4.781,10275,4.674,10276,5.2,10277,4.674,10278,4.901,10279,5.635,10383,8.629,10384,5.039,10385,8.911,10388,5.393,10393,9.787,10394,5.635,10395,5.635,10418,12.02,10419,6.451,10420,6.451,10421,6.451,10422,5.959,10423,6.451,10424,5.959,10425,5.959,10426,5.959,10427,5.635]],["title/modules/FwuLearningContentsTestModule.html",[425,1.808,10428,5.892]],["body/modules/FwuLearningContentsTestModule.html",[0,0.219,3,0.017,4,0.017,5,0.009,8,0.777,27,0.268,29,0.512,30,0.001,31,0.362,32,0.09,33,0.322,35,0.777,59,1.999,94,4.26,95,0.175,99,1.092,101,0.012,103,0.001,104,0.001,154,2.936,187,0.922,217,1.362,227,0.68,381,2.119,425,2.988,427,2.38,428,2.511,429,2.589,430,2.577,431,2.555,432,4.332,433,2.428,438,5.732,442,3.604,443,2.532,444,2.469,447,4.674,449,4.712,461,2.066,496,3.777,627,2.791,701,3.131,801,3.756,844,4.064,1114,3.637,1266,3.68,1408,4.666,1409,6.025,1412,6.821,1545,2.057,1585,8.027,1945,6.565,2767,2.903,3544,2.674,3956,6.025,6163,4.26,6317,8.027,8206,4.483,9475,5.604,9918,4.773,10092,4.483,10099,5.031,10246,8.447,10253,4.773,10257,8.906,10261,4.773,10262,4.57,10265,5.385,10271,5.385,10317,8.158,10318,5.626,10319,8.263,10321,4.666,10322,5.192,10323,4.666,10324,5.192,10326,6.644,10383,8.621,10384,7.003,10385,9.46,10388,5.385,10393,9.782,10394,5.626,10395,5.626,10422,8.281,10425,5.95,10426,5.95,10427,5.626,10428,12.134,10429,6.44,10430,6.44,10431,6.44,10432,5.93,10433,6.44]],["title/injectables/FwuLearningContentsUc.html",[105,0.889,10393,5.437]],["body/injectables/FwuLearningContentsUc.html",[0,0.287,3,0.022,4,0.022,5,0.012,7,0.13,8,1.295,27,0.446,29,0.853,30,0.001,31,0.603,32,0.151,33,0.537,35,1.018,47,0.953,59,2.619,95,0.159,101,0.016,103,0.001,104,0.001,105,1.414,107,2.019,111,2.146,112,2.647,127,1.358,187,1.208,216,1.56,217,1.115,221,1.989,227,0.891,576,4.974,839,3.962,1016,3.832,1052,4.374,1053,5.509,1062,3.683,1376,8.156,1545,2.695,2993,5.582,3544,3.504,9918,6.255,10384,9.221,10385,10.122,10388,7.056,10393,8.653,10402,9.704,10427,7.372,10434,11.804,10435,8.439,10436,10.311,10437,9.704,10438,8.439,10439,8.439,10440,8.439,10441,8.439,10442,8.439,10443,8.439]],["title/interfaces/GetFile.html",[334,0.742,6169,4.999]],["body/interfaces/GetFile.html",[3,0.023,4,0.023,5,0.015,7,0.131,30,0.001,31,0.48,32,0.181,33,0.676,47,1.032,55,2.611,95,0.11,101,0.024,103,0.001,104,0.001,163,4.06,165,0.855,334,1.374,336,2.082,1565,4.747,2186,5.413,5410,8.268,5562,8.687,6157,6.494,6158,6.677,6159,7.146,6160,6.89,6161,6.89,6162,5.744,6163,5.653,6164,6.677,6165,5.949,6166,5.949,6167,5.949,6168,5.949,6169,8.02,6170,9.25,6171,9.25,6172,9.25]],["title/interfaces/GetFileResponse.html",[334,0.742,9917,5.125]],["body/interfaces/GetFileResponse.html",[3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,31,0.7,32,0.187,33,0.676,47,1.022,55,2.608,95,0.152,101,0.021,103,0.001,104,0.001,163,3.932,165,0.854,334,1.189,336,2.077,380,1.783,982,4.273,5410,8.008,5562,8.68,6064,3.91,6082,7.068,6130,6.939,6139,7.617,6162,5.732,6170,9.243,6171,9.243,6172,9.243,9917,8.211,9994,6.875,10402,6.662,10444,7.879,10445,7.13,10446,7.45,10447,7.13]],["title/classes/GetFwuLearningContentParams.html",[0,0.229,10390,5.892]],["body/classes/GetFwuLearningContentParams.html",[0,0.396,2,1.105,3,0.025,4,0.025,5,0.014,7,0.148,27,0.399,30,0.001,32,0.135,47,0.846,95,0.149,101,0.018,103,0.001,104,0.001,165,0.919,364,1.78,374,3.069,376,2.253,467,3.126,470,4.901,472,7.819,1001,6.932,10384,9.088,10385,9.881,10390,10.163,10448,11.634,10449,9.608,10450,12.513,10451,9.608,10452,10.747,10453,11.634,10454,9.608,10455,9.608,10456,9.608]],["title/interfaces/GlobalConstants.html",[334,0.742,10457,6.23]],["body/interfaces/GlobalConstants.html",[3,0.025,4,0.025,5,0.013,7,0.145,30,0.001,32,0.174,33,0.646,47,1.009,95,0.121,101,0.018,103,0.001,104,0.001,150,3.457,165,0.909,217,1.519,334,1.038,336,2.296,7652,5.749,10258,9.599,10259,9.599,10260,9.599,10457,11.464,10458,9.428,10459,11.501,10460,9.428,10461,11.501]],["title/classes/GlobalErrorFilter.html",[0,0.229,8218,5.639]],["body/classes/GlobalErrorFilter.html",[0,0.162,2,0.547,3,0.013,4,0.013,5,0.007,7,0.073,8,0.867,27,0.497,29,0.927,30,0.001,31,0.671,32,0.164,33,0.584,35,1.409,95,0.161,100,1.591,101,0.009,103,0,104,0,111,2.679,127,0.601,145,1.226,148,2.989,187,0.68,204,4.397,214,2.373,215,1.538,216,0.878,217,1.721,227,1.232,234,1.839,334,0.523,558,2.258,692,4.067,731,1.869,806,3.028,845,3.372,846,3.372,1016,4.576,1052,2.929,1062,3.137,1158,5.142,1253,4.456,1298,2.245,1299,2.217,1300,2.217,1327,3.816,1439,3.437,1440,3.249,1469,4.754,1472,5.965,1474,3.28,1486,7.649,1495,4.151,1498,3.443,1542,5.684,1545,1.518,1819,3.052,2184,4.151,2993,3.143,3307,3.831,3672,7.162,3923,6.279,4579,3.831,4714,5.165,6491,2.832,8124,3.831,8173,8.079,8191,3.831,8203,3.831,8218,6.009,8241,8.079,9413,4.39,10185,6.771,10186,4.151,10462,12.182,10463,4.39,10464,8.668,10465,7.187,10466,7.187,10467,7.187,10468,7.187,10469,7.187,10470,9.664,10471,7.187,10472,4.752,10473,6.64,10474,8.857,10475,11.338,10476,4.752,10477,7.187,10478,4.752,10479,7.187,10480,4.752,10481,7.187,10482,4.752,10483,7.187,10484,4.752,10485,7.187,10486,4.752,10487,4.752,10488,7.187,10489,4.752,10490,4.752,10491,6.009,10492,4.752,10493,4.752,10494,4.752,10495,4.752,10496,4.752,10497,4.752,10498,4.752,10499,4.752,10500,4.752,10501,4.752,10502,4.752,10503,4.752,10504,4.752,10505,4.752,10506,4.752,10507,4.752,10508,4.752,10509,4.752,10510,4.752,10511,4.752,10512,4.752,10513,7.187,10514,4.752,10515,4.752,10516,4.752,10517,7.187,10518,4.752,10519,4.752,10520,4.752,10521,4.752,10522,4.752,10523,4.752,10524,4.752,10525,4.752,10526,4.752]],["title/classes/GlobalValidationPipe.html",[0,0.229,10527,5.892]],["body/classes/GlobalValidationPipe.html",[0,0.385,2,0.892,3,0.021,4,0.021,5,0.011,27,0.322,30,0.001,32,0.159,95,0.13,100,4.181,101,0.015,103,0.001,104,0.001,127,1.435,144,2.777,163,2.445,165,0.613,185,3.037,187,1.11,204,2.66,234,1.258,329,2.994,364,1.883,368,3.063,369,2.826,371,2.137,374,3.246,379,1.787,404,1.841,406,2.485,467,2.084,503,6.833,529,3.421,558,3.686,574,4.608,685,5.323,722,3.421,728,3.037,783,4.674,951,5.893,957,4.389,1020,5.13,1384,7.94,1415,6.126,1469,5.13,1492,7.529,1500,5.213,1507,4.523,1921,5.13,1991,4.196,2092,5.753,2187,5.213,2263,5.504,2507,4.981,2744,4.532,3262,4.848,3462,6.622,3469,5.748,4531,8.194,5097,4.913,5121,4.981,6334,7.075,8124,6.252,8679,5.748,9141,6.059,10527,8.879,10528,10.165,10529,7.756,10530,10.474,10531,11.338,10532,7.756,10533,7.94,10534,7.165,10535,7.756,10536,7.756,10537,7.756,10538,7.756,10539,6.775,10540,7.756,10541,6.775,10542,7.756,10543,7.165,10544,7.756,10545,7.756,10546,7.756,10547,7.165,10548,5.893]],["title/classes/GridElement.html",[0,0.229,7321,5.269]],["body/classes/GridElement.html",[0,0.173,2,0.353,3,0.008,4,0.008,5,0.004,7,0.129,8,0.612,26,2.512,27,0.506,29,0.823,30,0.001,31,0.581,32,0.172,33,0.57,34,1.831,35,1.376,39,1.36,47,0.9,55,2.619,83,0.922,95,0.083,101,0.019,103,0,104,0,111,2.351,127,0.388,138,2.204,144,1.775,145,2.463,148,3.585,165,0.401,187,0.439,214,1.676,217,1.706,227,1.363,234,1.62,247,2.995,305,1.868,329,0.903,334,0.337,347,1.837,405,1.372,415,2.77,416,1.969,595,1.753,618,3.56,619,2.9,627,3.483,905,2.697,1041,1.703,1277,4.924,1382,4.661,1474,3.798,1758,4.935,1773,3.259,1828,3.367,1932,4.887,2381,2.395,2586,1.618,2594,4.709,2672,7.244,2685,1.752,2686,1.631,2728,2.329,2789,3.986,2809,4.417,3224,2.272,3331,2.845,3400,2.134,3573,3.307,3667,6.996,3715,3.173,4821,1.892,6258,2.563,6365,2.096,6401,9.606,6402,3.762,6471,3.533,6701,5.162,7228,5.256,7251,2.221,7252,2.678,7254,2.678,7257,2.678,7258,2.563,7259,7.539,7261,2.471,7268,4.434,7274,2.678,7278,2.678,7281,2.678,7282,7.539,7284,8.926,7287,5.738,7289,2.678,7290,6.996,7293,2.678,7295,2.678,7297,2.678,7299,2.678,7301,2.678,7303,2.678,7306,2.678,7308,4.434,7309,2.272,7310,7.31,7311,6.596,7312,5.674,7313,7.31,7314,5.674,7315,4.434,7316,7.31,7317,4.434,7318,5.674,7319,2.678,7320,3.856,7321,9.408,7322,5.674,7323,4.434,7324,2.678,7325,4.434,7326,2.678,7327,4.434,7328,2.678,7329,4.434,7330,4.434,7331,4.434,7332,4.434,7333,4.434,7334,2.678,7335,4.434,7336,2.563,7337,4.434,7338,2.678,7339,2.134,7340,4.434,7341,2.678,7342,2.678,7343,2.678,7344,4.434,7345,2.471,7346,2.678,7347,4.434,7348,2.678,7349,2.329,7350,2.678,7351,2.678,7352,2.678,7353,2.678,7354,2.678,7355,2.678,7356,2.678,7357,2.678,7358,2.678,7359,4.434,7360,4.434,7361,2.563,7362,5.674,7363,2.678,7364,4.434,7365,2.678,7366,2.678,7367,2.678,7368,2.678,7369,2.678,7370,2.678,7371,2.678,7372,2.678,7373,2.678,7374,2.678,7375,2.678,7376,2.678,7377,2.678,7378,2.678,7379,2.678,7380,2.678,7381,2.678,7382,2.678,7383,2.678,7384,2.678,7385,2.678,7386,2.678,7387,2.678,7388,4.434,7389,2.678,7390,2.678,7391,2.678,7392,4.434,7393,4.434,7394,2.678,7395,2.678,7396,2.678,7397,2.678,7398,2.678,7399,2.678,7400,2.678,7401,5.674,7402,2.678,7403,2.678,10549,4.689,10550,5.075,10551,5.075,10552,5.075,10553,5.075,10554,4.689,10555,4.689,10556,4.689,10557,3.065,10558,3.065,10559,3.065,10560,3.065,10561,3.065,10562,3.065,10563,2.832,10564,3.065,10565,3.065,10566,3.065,10567,3.065,10568,3.065,10569,3.065,10570,3.065,10571,3.065,10572,3.065,10573,3.065,10574,3.065,10575,3.065]],["title/classes/Group.html",[0,0.229,1277,3.478]],["body/classes/Group.html",[0,0.303,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,8,1.342,26,2.319,27,0.462,30,0.001,31,0.501,32,0.156,34,1.531,35,1.077,47,0.808,83,3.345,95,0.163,99,1.514,101,0.021,103,0.001,104,0.001,116,3.598,165,0.879,208,3.312,334,0.982,359,3.095,404,2.193,461,2.057,595,3.841,596,3.376,661,4.684,692,4.142,1277,6.538,1854,6.485,1857,5.577,1860,8.011,1940,5.654,2800,6.102,2818,6.102,3091,4.069,8275,8.964,8306,8.775,10576,8.245,10577,8.449,10578,7.195,10579,7.463,10580,7.463,10581,7.463]],["title/modules/GroupApiModule.html",[425,1.808,10582,5.437]],["body/modules/GroupApiModule.html",[0,0.335,3,0.026,4,0.026,5,0.014,30,0.001,95,0.151,101,0.019,103,0.001,104,0.001,187,1.409,425,3.389,427,3.638,428,3.837,429,3.957,430,3.939,431,3.904,432,3.638,433,3.711,442,4.745,443,3.87,444,3.773,446,6.234,449,4.745,10582,10.974,10583,9.843,10584,9.843,10585,10.974,10586,9.843,10587,9.843]],["title/classes/GroupDomainMapper.html",[0,0.229,10588,5.892]],["body/classes/GroupDomainMapper.html",[0,0.184,2,0.622,3,0.014,4,0.014,5,0.008,7,0.083,8,0.955,27,0.476,29,0.909,30,0.001,31,0.681,32,0.17,33,0.573,34,1.358,35,1.382,39,1.45,48,2.54,95,0.132,96,1.462,97,2.302,99,0.918,101,0.01,103,0,104,0,145,2.954,217,1.634,227,1.208,234,1.778,380,2.154,461,1.824,496,3.335,595,1.869,619,3.092,627,4.188,844,2.452,854,3.994,1114,3.211,1277,5.653,1291,3.368,2395,7.185,2485,2.337,3091,3.608,3285,7.771,4303,2.374,4355,3.474,4356,4.226,4533,7.768,4635,4.01,4998,3.698,8270,4.01,8275,4.361,8306,9.234,8311,9.24,8730,6.915,10577,9.554,10578,8.836,10579,4.523,10580,4.523,10581,4.523,10588,6.915,10589,11.828,10590,5.41,10591,7.916,10592,7.916,10593,9.36,10594,7.916,10595,7.916,10596,7.916,10597,5.41,10598,8.303,10599,7.916,10600,8.303,10601,5.41,10602,7.916,10603,5.41,10604,5.41,10605,5.41,10606,7.916,10607,9.474,10608,5.41,10609,7.916,10610,5.41,10611,4.726,10612,7.312,10613,5.41,10614,7.916,10615,7.312,10616,5.41,10617,5.41,10618,8.177,10619,7.916,10620,7.916,10621,5.41,10622,4.726,10623,5.41,10624,5.41,10625,5.41,10626,7.916,10627,5.41,10628,5.41,10629,5.41,10630,7.916,10631,5.41,10632,5.41,10633,5.41,10634,5.41,10635,5.41,10636,5.41,10637,5.41,10638,5.41,10639,5.41,10640,4.523,10641,5.41,10642,5.41,10643,5.41,10644,5.41,10645,5.41,10646,5.41,10647,5.41]],["title/entities/GroupEntity.html",[380,1.41,10600,5.437]],["body/entities/GroupEntity.html",[0,0.359,3,0.018,4,0.018,5,0.01,7,0.104,26,1.93,27,0.511,30,0.001,31,0.638,32,0.185,33,0.616,34,1.157,47,0.768,95,0.162,96,1.822,101,0.02,103,0.001,104,0.001,165,0.731,240,3.31,334,0.742,364,2.28,369,2.83,370,4.106,380,1.935,381,2.219,398,1.974,399,3.623,402,2.773,404,1.221,405,1.822,406,2.161,618,2.869,619,5.288,783,4.064,844,5.401,1031,3.643,1277,4.772,1925,4.808,2136,2.698,2586,3.559,2621,3.185,3091,5.183,4287,7.497,4293,6.151,4294,4.064,4303,2.958,4926,4.267,4998,7.772,5236,4.215,6409,3.78,6461,4.271,6627,4.532,8282,5.89,8283,5.89,8306,8.238,8311,9.308,10598,7.459,10600,7.459,10607,9.308,10611,9.932,10612,9.308,10618,9.932,10622,5.89,10648,6.229,10649,6.743,10650,6.743,10651,6.743,10652,6.743,10653,6.743,10654,6.743,10655,6.229,10656,6.229,10657,4.693,10658,6.229,10659,6.229,10660,6.229,10661,6.229,10662,6.229,10663,6.229]],["title/interfaces/GroupEntityProps.html",[334,0.742,10598,5.437]],["body/interfaces/GroupEntityProps.html",[0,0.365,3,0.018,4,0.018,5,0.01,7,0.107,26,2.401,30,0.001,31,0.676,32,0.189,33,0.647,34,1.974,47,0.837,95,0.163,96,1.875,101,0.02,103,0.001,104,0.001,165,0.746,240,2.957,334,0.764,336,1.69,369,2.537,370,3.577,380,1.973,398,2.032,399,3.695,402,2.855,404,1.257,405,1.875,406,2.224,618,2.953,619,5.393,783,4.183,844,5.628,1031,3.436,1277,4.867,1925,3.607,2136,2.777,2586,3.663,2621,3.278,3091,5.487,4293,6.226,4294,4.183,4303,3.045,4926,4.352,4998,8.228,5236,4.338,6409,3.891,6461,4.396,8282,6.063,8283,6.063,8306,8.721,8311,9.699,10598,8.645,10600,5.595,10607,9.699,10611,10.514,10612,9.699,10618,10.514,10622,6.063,10648,6.411,10655,6.411,10656,6.411,10657,4.831,10658,6.411,10659,6.411,10660,6.411,10661,6.411,10662,6.411,10663,6.411]],["title/modules/GroupModule.html",[425,1.808,10585,5.437]],["body/modules/GroupModule.html",[0,0.317,3,0.025,4,0.025,5,0.013,30,0.001,95,0.158,101,0.018,103,0.001,104,0.001,187,1.334,425,3.309,427,3.444,428,3.633,429,3.746,430,3.729,431,3.696,432,4.563,433,4.656,442,4.59,443,3.664,444,3.572,766,4.005,2570,5.041,10585,11.162,10664,9.319,10665,9.319,10666,9.319,10667,11.755,10668,11.236,10669,9.319]],["title/interfaces/GroupNameIdTuple.html",[334,0.742,10670,5.639]],["body/interfaces/GroupNameIdTuple.html",[3,0.026,4,0.026,5,0.014,7,0.15,30,0.001,31,0.549,32,0.165,39,2.619,47,1.024,101,0.022,103,0.001,104,0.001,165,0.929,334,1.294,336,2.38,348,6.567,350,8.169,361,5.379,853,4.965,4227,3.363,5602,6.552,6461,6.189,10670,10.538,10671,9.026,10672,11.425,10673,8.536]],["title/interfaces/GroupProps.html",[334,0.742,10578,5.437]],["body/interfaces/GroupProps.html",[0,0.279,3,0.022,4,0.022,5,0.012,7,0.126,26,2.566,30,0.001,31,0.69,32,0.194,33,0.671,34,2.11,47,0.947,83,3.916,95,0.158,99,1.393,101,0.02,103,0.001,104,0.001,165,0.834,208,3.048,334,0.904,336,2.001,359,2.848,404,2.111,461,1.893,1277,6.011,1854,6.797,1857,4.511,1940,5.203,3091,5.607,8275,9.915,8306,9.717,10576,7.589,10577,9.345,10578,8.505,10579,10.283,10580,10.283,10581,10.283]],["title/injectables/GroupRepo.html",[105,0.889,10668,5.639]],["body/injectables/GroupRepo.html",[0,0.205,3,0.016,4,0.016,5,0.009,7,0.093,8,1.033,10,3.458,12,3.949,18,4.232,26,2.55,27,0.475,29,0.909,30,0.001,31,0.642,32,0.161,33,0.572,34,1.858,35,1.307,36,2.714,40,4.122,47,0.724,48,5.086,95,0.152,96,1.631,97,2.568,101,0.012,103,0.001,104,0.001,105,1.129,107,1.444,112,2.951,127,0.764,167,4.537,187,0.864,215,1.953,216,1.116,217,1.738,221,2.801,227,1.29,234,1.757,369,1.33,371,1.663,380,2.556,595,2.958,854,4.321,1114,2.448,1277,6.721,1857,5.082,2395,6.191,2441,6.69,2448,9.196,2459,5.045,2476,7.481,2485,2.607,2586,3.185,3280,4.2,3285,5.222,3304,7.481,3348,4.865,8306,4.373,8751,5.272,8758,7.481,10578,8.734,10588,5.272,10598,6.904,10600,9.853,10668,7.16,10674,6.035,10675,7.911,10676,6.035,10677,6.035,10678,7.911,10679,6.035,10680,6.035,10681,6.035,10682,6.035,10683,10.834,10684,8.564,10685,8.564,10686,6.035,10687,6.035,10688,8.564,10689,9.955,10690,6.035,10691,6.035,10692,6.035,10693,6.035,10694,6.035,10695,6.035]],["title/classes/GroupRoleUnknownLoggable.html",[0,0.229,10696,5.892]],["body/classes/GroupRoleUnknownLoggable.html",[0,0.302,2,1.022,3,0.024,4,0.024,5,0.013,7,0.137,8,1.338,27,0.461,29,0.706,30,0.001,31,0.499,32,0.125,33,0.445,35,1.072,95,0.142,101,0.017,103,0.001,104,0.001,127,1.125,163,2.802,214,3.661,215,2.876,216,1.643,227,0.938,461,2.048,496,5.092,1062,3.878,1277,4.583,1327,3.509,1542,5.64,1543,6.281,1545,2.838,1547,6.297,1724,4.982,3060,6.306,6896,5.707,8137,6.281,8138,6.539,8291,5.973,10696,9.687,10697,12.087,10698,8.886,10699,8.886,10700,10.203,10701,8.886,10702,10.244,10703,8.886,10704,8.886,10705,6.439,10706,8.886,10707,8.886,10708,8.886]],["title/injectables/GroupService.html",[105,0.889,10667,5.639]],["body/injectables/GroupService.html",[0,0.228,3,0.018,4,0.018,5,0.009,7,0.103,8,1.111,10,3.719,12,4.248,18,4.551,26,2.745,27,0.51,29,0.976,30,0.001,31,0.69,32,0.172,33,0.615,34,1.945,35,1.434,36,2.859,40,4.433,47,0.765,48,5.322,95,0.158,99,1.136,101,0.013,103,0.001,104,0.001,105,1.214,107,1.602,112,3.061,127,0.848,167,4.019,187,0.959,214,2.211,215,2.167,216,1.238,217,1.497,221,2.801,227,1.197,234,1.086,305,1.927,854,3.379,1277,7.172,1819,4.301,1943,7.701,2485,2.893,2570,3.624,2767,3.019,10667,7.701,10668,10.27,10675,8.509,10678,8.509,10709,6.698,10710,9.211,10711,6.698,10712,6.698,10713,9.211,10714,6.698,10715,6.698,10716,6.698,10717,9.211,10718,6.698,10719,9.211,10720,6.698,10721,5.6,10722,6.187,10723,9.211,10724,6.698,10725,6.698,10726,9.211,10727,6.698,10728,6.698]],["title/classes/GroupUser.html",[0,0.229,10577,5.125]],["body/classes/GroupUser.html",[0,0.323,2,1.092,3,0.025,4,0.025,5,0.013,7,0.146,26,2.769,27,0.517,29,0.754,30,0.001,31,0.533,32,0.175,33,0.475,39,3.336,95,0.122,99,1.61,101,0.018,103,0.001,104,0.001,127,1.201,165,0.913,405,3.121,415,5.181,416,6.097,595,3.28,4635,9.226,10577,10.087,10729,12.953,10730,9.494,10731,11.55,10732,9.494,10733,8.294,10734,8.294]],["title/classes/GroupUserEntity.html",[0,0.229,10607,5.269]],["body/classes/GroupUserEntity.html",[0,0.301,2,1.02,3,0.024,4,0.024,5,0.013,7,0.136,27,0.502,29,0.704,30,0.001,31,0.498,32,0.169,33,0.444,95,0.142,96,2.396,101,0.021,103,0.001,104,0.001,127,1.122,165,0.875,334,0.976,364,2.052,398,2.596,405,2.992,461,3.164,496,5.785,595,3.063,1911,5.473,2222,6.737,2618,5.669,4926,5.569,6627,7.443,7430,6.292,10607,8.65,10735,10.574,10736,7.413,10737,11.048,10738,11.074,10739,8.867,10740,6.572,10741,6.927]],["title/interfaces/GroupUserEntityProps.html",[334,0.742,10737,5.892]],["body/interfaces/GroupUserEntityProps.html",[0,0.316,3,0.025,4,0.025,5,0.013,7,0.143,30,0.001,32,0.16,95,0.146,96,2.512,101,0.022,103,0.001,104,0.001,165,0.901,334,1.023,336,2.265,398,2.722,405,2.512,461,3.225,496,5.897,1911,5.738,2222,7.064,2618,5.837,4926,5.688,7430,6.597,10607,7.263,10735,7.773,10736,7.773,10737,10.775,10740,6.89,10741,7.263]],["title/interfaces/GroupUsers.html",[334,0.742,10742,4.999]],["body/interfaces/GroupUsers.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.128,34,1.559,47,0.994,55,2.685,101,0.026,103,0.001,104,0.001,163,2.865,165,0.888,334,1.49,336,2.213,347,1.851,564,3.372,692,3.385,1289,5.835,1293,6.108,1327,3.589,3091,5.816,4477,6.108,6461,5.756,10742,8.333,10743,6.905,10744,6.735,10745,6.735,10746,6.905,10747,9.049,10748,6.905,10749,6.905,10750,6.735,10751,6.905,10752,6.448,10753,6.735,10754,6.905,10755,6.735]],["title/classes/GroupValidPeriodEntity.html",[0,0.229,10612,5.269]],["body/classes/GroupValidPeriodEntity.html",[0,0.308,2,1.043,3,0.024,4,0.024,5,0.013,7,0.139,27,0.507,29,0.72,30,0.001,31,0.509,32,0.171,33,0.454,83,4.016,95,0.116,96,2.45,101,0.021,103,0.001,104,0.001,127,1.147,165,0.887,240,4.105,334,0.998,364,2.08,398,2.655,405,3.034,595,3.132,783,7.682,2618,5.748,8270,9.448,8284,7.92,8285,7.92,8286,7.92,8287,7.92,10612,8.771,10735,10.658,10756,8.375,10757,11.136,10758,11.228,10759,9.067]],["title/interfaces/GroupValidPeriodEntityProps.html",[334,0.742,10757,5.892]],["body/interfaces/GroupValidPeriodEntityProps.html",[0,0.327,3,0.025,4,0.025,5,0.014,7,0.148,30,0.001,32,0.163,83,4.157,95,0.123,96,2.596,101,0.022,103,0.001,104,0.001,165,0.919,240,3.92,334,1.057,336,2.34,398,2.813,405,2.596,783,5.79,2618,5.955,8270,9.871,8284,8.393,8285,8.393,8286,8.393,8287,8.393,10612,7.505,10735,8.033,10756,8.875,10757,10.931]],["title/interfaces/GroupfoldersCreated.html",[334,0.742,10755,4.999]],["body/interfaces/GroupfoldersCreated.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.128,34,2.188,47,0.971,55,2.883,101,0.026,103,0.001,104,0.001,163,2.865,165,0.888,334,1.49,336,2.213,347,1.851,564,3.372,692,3.385,1289,5.835,1293,6.108,1327,3.589,3091,4.142,4477,6.108,6461,5.756,10742,6.735,10743,6.905,10744,6.735,10745,6.735,10746,6.905,10747,9.049,10748,6.905,10749,6.905,10750,6.735,10751,6.905,10752,6.448,10753,6.735,10754,6.905,10755,8.333]],["title/interfaces/GroupfoldersFolder.html",[334,0.742,10753,4.999]],["body/interfaces/GroupfoldersFolder.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.128,34,1.559,47,0.971,55,2.883,101,0.026,103,0.001,104,0.001,163,2.865,165,0.888,334,1.49,336,2.213,347,1.851,564,3.372,692,3.385,1289,5.835,1293,6.108,1327,3.589,3091,4.142,4477,6.108,6461,5.756,10742,6.735,10743,6.905,10744,6.735,10745,6.735,10746,6.905,10747,9.049,10748,6.905,10749,6.905,10750,6.735,10751,6.905,10752,6.448,10753,8.333,10754,9.694,10755,6.735]],["title/classes/GuardAgainst.html",[0,0.229,10760,5.892]],["body/classes/GuardAgainst.html",[0,0.285,2,0.964,3,0.022,4,0.022,5,0.012,7,0.129,8,1.29,27,0.348,29,0.849,30,0.001,31,0.471,32,0.15,33,0.42,35,1.29,101,0.016,103,0.001,104,0.001,144,3.715,145,3.377,167,4.996,227,0.885,264,4.526,305,2.412,379,1.932,627,3.664,692,4.876,1062,3.66,1240,6.171,1819,7.959,2340,9.991,4639,8.938,7907,7.441,10760,9.339,10761,10.691,10762,8.386,10763,10.691,10764,10.691,10765,12.802,10766,8.386,10767,9.876,10768,8.123,10769,8.618,10770,9.339,10771,10.691]],["title/controllers/H5PEditorController.html",[481,2.629,10772,5.892]],["body/controllers/H5PEditorController.html",[0,0.222,3,0.017,4,0.017,5,0.009,7,0.101,8,1.093,27,0.376,30,0.001,32,0.192,35,1.093,47,0.475,72,3.068,95,0.144,101,0.012,103,0.001,104,0.001,112,2.734,187,0.935,217,0.863,227,1.286,364,1.678,376,1.532,447,2.739,481,2.547,483,3.145,502,7.965,506,7.309,538,2.929,553,6.496,554,8.194,555,3.449,556,3.535,557,3.566,558,3.105,561,3.566,563,5.589,564,4.728,627,2.819,1016,4.006,1062,3.952,1236,3.938,1439,4.969,1469,6.874,1474,3.527,2037,5.998,2186,4.139,2507,7.828,2685,5.938,2926,6.881,2930,6.881,2931,6.881,3101,9.827,3542,4.67,5011,8.361,6325,7.074,8210,8.764,9985,4.965,10772,7.91,10773,9.078,10774,10.392,10775,6.535,10776,9.078,10777,11.219,10778,11.219,10779,12.937,10780,9.055,10781,9.055,10782,6.535,10783,6.535,10784,6.535,10785,6.535,10786,6.535,10787,6.036,10788,6.535,10789,7.374,10790,6.535,10791,6.535,10792,6.535,10793,9.055,10794,6.535,10795,6.535,10796,6.036,10797,6.535,10798,6.535,10799,6.535,10800,6.535,10801,6.535,10802,6.535,10803,6.535,10804,6.535,10805,9.055,10806,6.535]],["title/modules/H5PEditorModule.html",[425,1.808,10807,5.639]],["body/modules/H5PEditorModule.html",[0,0.236,3,0.018,4,0.018,5,0.01,30,0.001,32,0.097,47,0.505,87,3.429,94,4.485,95,0.173,96,2.55,99,1.177,101,0.013,103,0.001,104,0.001,154,3.164,187,0.993,217,1.52,234,1.126,369,1.53,381,2.284,398,2.032,425,2.874,427,2.565,428,2.706,429,2.79,430,2.777,431,2.753,432,4.253,433,2.617,442,3.794,443,2.729,444,2.66,447,4.496,449,4.311,461,2.471,496,3.976,511,3.553,574,3.146,701,3.296,722,3.061,731,2.729,778,6.343,801,4.047,844,4.278,885,4.695,953,4.522,1052,5.06,1114,3.828,1298,3.278,1299,3.238,1300,3.238,1301,3.429,1378,4.591,1379,4.183,1545,2.217,1585,8.213,1724,3.891,1919,2.882,1945,6.717,2686,3.693,2767,3.128,4808,4.744,5400,4.591,5453,4.665,6317,8.213,9475,5.899,9611,4.925,10092,4.831,10248,6.995,10249,6.995,10250,5.029,10251,7.171,10252,4.925,10253,5.144,10258,6.838,10259,6.838,10260,6.838,10261,5.144,10262,4.925,10265,5.802,10272,7.171,10273,5.144,10274,5.144,10275,5.029,10276,5.595,10277,5.029,10278,5.273,10279,6.063,10424,6.411,10772,9.368,10773,6.063,10776,6.063,10807,11.27,10808,6.94,10809,6.94,10810,6.94,10811,6.411,10812,6.94,10813,6.94,10814,6.94,10815,6.94]],["title/modules/H5PEditorTestModule.html",[425,1.808,10816,5.892]],["body/modules/H5PEditorTestModule.html",[0,0.235,3,0.018,4,0.018,5,0.01,8,0.833,27,0.287,29,0.548,30,0.001,31,0.388,32,0.097,33,0.345,35,0.833,59,2.143,94,4.469,95,0.171,99,1.171,101,0.013,103,0.001,104,0.001,187,0.988,217,1.413,227,0.729,381,2.272,425,3.078,427,2.552,428,2.692,429,2.776,430,2.763,431,2.739,432,4.244,433,2.603,438,5.855,442,3.781,443,2.715,444,2.647,447,4.484,449,4.83,461,2.167,496,3.962,627,2.928,701,3.284,844,4.263,1408,5.003,1409,6.321,1412,7.074,1545,2.205,1581,9.684,1585,8.2,1945,6.707,2767,3.112,3101,7.581,6317,8.2,8206,4.806,9475,5.879,10092,4.806,10099,5.394,10246,8.629,10317,8.363,10318,6.032,10319,8.511,10321,5.003,10322,5.566,10323,5.003,10324,5.566,10325,5.773,10326,6.97,10773,8.215,10776,6.032,10807,10.365,10811,8.688,10816,12.218,10817,6.905,10818,6.905,10819,6.905,10820,6.905,10821,6.905]],["title/interfaces/HtmlMailContent.html",[334,0.742,1575,4.999]],["body/interfaces/HtmlMailContent.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,31,0.487,32,0.153,33,0.546,47,1.032,77,5.495,101,0.017,103,0.001,104,0.001,165,0.863,334,1.475,336,2.113,404,2.342,1560,8.096,1561,6.592,1562,8.861,1563,8.3,1564,6.592,1565,4.819,1566,8.096,1567,6.286,1568,6.592,1569,6.286,1570,9.3,1571,6.592,1572,8.096,1573,9.827,1574,9.827,1575,8.861,1576,6.583,1577,6.43,1578,6.43,1579,6.592,1580,6.592]],["title/injectables/HydraAdapter.html",[105,0.889,10822,5.892]],["body/injectables/HydraAdapter.html",[0,0.109,3,0.009,4,0.009,5,0.005,7,0.049,8,0.637,10,1.297,27,0.523,29,1.007,30,0.001,31,0.696,32,0.18,33,0.62,34,1.151,35,1.496,36,2.984,47,1.021,55,2.028,56,3.23,58,4.921,59,2.663,95,0.139,100,1.075,101,0.006,103,0,104,0,105,0.695,107,0.769,111,1.342,112,2.545,127,0.406,144,0.878,150,3.978,163,3.42,165,0.417,187,0.46,215,1.04,216,1.436,217,1.571,221,0.757,227,1.309,234,0.521,235,5.515,254,2.686,256,2.686,277,2.686,329,0.946,335,7.856,337,6.306,351,1.587,354,7.613,363,3.387,367,3.23,404,0.955,406,1.029,461,1.215,543,6.262,596,3.656,661,4.44,692,2.5,1016,4.553,1062,1.402,1265,6.306,1266,1.836,1268,2.063,1381,1.873,1382,1.983,1865,3.515,2063,3.672,2074,2.196,2171,1.38,2172,1.536,2173,1.481,2333,4.974,2334,2.589,2344,1.327,2348,2.967,2367,2.686,2955,2.985,3544,2.787,3898,1.753,3962,2.806,4038,5.297,4216,8.631,5382,1.836,5468,5.904,9081,8.799,9106,7.061,9515,2.686,9574,5.514,10822,4.608,10823,3.212,10824,6.2,10825,4.608,10826,4.608,10827,4.608,10828,4.41,10829,4.41,10830,4.41,10831,4.41,10832,4.41,10833,4.873,10834,7.178,10835,4.41,10836,5.611,10837,4.608,10838,4.608,10839,4.41,10840,4.41,10841,5.275,10842,4.608,10843,3.212,10844,4.873,10845,3.212,10846,4.873,10847,3.212,10848,4.873,10849,3.212,10850,4.873,10851,3.212,10852,5.275,10853,3.212,10854,5.611,10855,4.608,10856,3.212,10857,4.608,10858,3.212,10859,4.873,10860,3.212,10861,4.873,10862,3.212,10863,3.212,10864,4.873,10865,3.212,10866,2.967,10867,3.212,10868,3.212,10869,8.475,10870,3.212,10871,4.608,10872,3.212,10873,4.608,10874,3.212,10875,3.212,10876,7.77,10877,7.77,10878,3.212,10879,4.873,10880,3.212,10881,4.873,10882,3.212,10883,2.589,10884,2.686,10885,2.381,10886,2.441,10887,2.327,10888,2.441,10889,3.212,10890,2.967,10891,2.967,10892,3.212,10893,3.212,10894,5.275,10895,5.275,10896,3.212,10897,3.212,10898,3.212,10899,3.212,10900,9.745,10901,3.212,10902,3.212,10903,2.806,10904,2.806,10905,2.686,10906,2.806,10907,6.712,10908,3.212,10909,3.212,10910,4.608,10911,3.212,10912,3.212,10913,2.967,10914,6.712,10915,3.212,10916,3.212,10917,3.212,10918,3.212,10919,2.967,10920,3.212,10921,3.212,10922,3.212]],["title/injectables/HydraOauthUc.html",[105,0.889,10923,5.639]],["body/injectables/HydraOauthUc.html",[0,0.173,3,0.014,4,0.014,5,0.007,7,0.078,8,0.913,27,0.482,29,0.794,30,0.001,31,0.561,32,0.157,33,0.5,35,1.09,36,2.433,39,1.364,47,0.996,55,1.986,56,2.449,59,2.348,95,0.161,99,0.863,100,2.532,101,0.01,103,0,104,0,105,0.997,107,1.218,111,2.545,112,2.73,127,0.957,144,2.468,165,0.598,187,0.728,204,3.842,216,2.203,217,1.532,221,2.808,227,0.953,234,1.465,247,3.001,305,2.176,329,2.66,334,0.56,347,1.037,359,1.764,369,1.122,498,3.479,529,2.244,564,3.351,661,3.805,731,2.001,907,5.266,982,2.549,1016,2.701,1052,3.68,1053,4.434,1253,5.165,1298,2.403,1299,2.374,1300,2.374,1381,2.968,1439,2.434,1545,1.625,1683,6.836,1887,4.67,1995,7.055,2063,7.439,2074,3.479,2171,2.187,2172,2.434,2173,2.347,3898,2.777,3967,6.099,6034,4.445,6035,4.445,6987,7.096,8615,4.701,9515,4.254,10923,6.325,10924,11.917,10925,5.089,10926,9.031,10927,9.031,10928,10,10929,7.566,10930,9.031,10931,7.566,10932,4.445,10933,8.511,10934,9.697,10935,5.089,10936,7.566,10937,5.089,10938,5.089,10939,5.089,10940,10,10941,7.566,10942,5.089,10943,6.989,10944,5.089,10945,5.089,10946,5.089,10947,5.8,10948,6.325,10949,4.701,10950,5.369,10951,4.445,10952,3.866,10953,5.482,10954,4.701,10955,4.445,10956,5.089,10957,4.445,10958,9.238,10959,7.566,10960,6.989,10961,5.089,10962,5.089,10963,5.089,10964,7.566,10965,7.551,10966,5.089,10967,5.089,10968,5.089,10969,5.089,10970,5.089,10971,7.566,10972,4.701,10973,4.445,10974,4.254,10975,5.089,10976,5.089,10977,4.254,10978,5.089,10979,5.089,10980,5.089,10981,7.566,10982,5.089,10983,5.089]],["title/classes/HydraRedirectDto.html",[0,0.229,10948,5.639]],["body/classes/HydraRedirectDto.html",[0,0.296,2,1.002,3,0.023,4,0.023,5,0.012,7,0.134,27,0.549,29,0.692,30,0.001,31,0.489,32,0.185,33,0.436,47,0.796,55,2.409,95,0.141,101,0.017,103,0.001,104,0.001,127,1.103,165,0.865,405,2.96,595,3.01,1016,4.277,1316,7.024,2063,8.338,2074,5.956,3967,9.657,6032,10.015,10948,10.827,10965,10.015,10972,11.066,10973,10.465,10974,10.015,10984,8.713,10985,8.713,10986,8.713,10987,8.713,10988,8.713,10989,8.713,10990,8.713,10991,8.049,10992,8.713,10993,8.713,10994,8.713,10995,8.713,10996,8.713,10997,8.713,10998,8.713,10999,8.713,11000,8.713]],["title/injectables/HydraSsoService.html",[105,0.889,10934,5.639]],["body/injectables/HydraSsoService.html",[0,0.153,3,0.012,4,0.012,5,0.006,7,0.069,8,0.831,27,0.462,29,0.848,30,0.001,31,0.6,32,0.156,33,0.534,35,1.221,36,2.608,47,0.967,95,0.166,99,0.762,100,1.504,101,0.009,103,0,104,0,105,0.907,107,1.075,111,2.4,112,2.637,127,0.871,144,1.227,145,1.159,148,1.39,150,1.647,165,0.544,187,0.643,209,2.37,216,2.055,217,1.69,221,1.623,227,1.068,234,1.522,277,2.756,305,1.292,329,1.323,331,5.868,450,1.848,460,2.567,511,2.3,529,1.981,576,2.648,661,3.528,774,3.071,839,2.109,905,1.865,1052,3.412,1053,4.163,1253,2.072,1265,7.6,1266,2.567,1268,2.885,1439,2.148,1545,1.435,1596,3.188,1599,3.924,1664,3.924,1691,2.773,1720,3.413,1773,2.885,1995,3.509,2063,3.127,2074,3.071,2171,1.931,2172,2.148,2173,2.072,2183,3.329,2333,5.104,2334,3.621,2362,4.15,2367,3.756,3898,2.451,3967,8.963,4458,3.329,4552,6.802,4556,2.3,4641,3.019,4809,6.363,5472,2.22,6032,9.833,6034,6.015,6035,6.015,6489,6.309,6981,5.104,6987,3.188,7038,4.793,7134,2.707,8108,3.329,8597,3.019,8636,3.127,9083,6.802,9113,3.621,10474,6.541,10824,6.361,10883,3.621,10913,4.15,10934,5.757,10943,4.15,10947,6.859,10948,8.463,10949,4.15,10958,6.361,10965,9.59,10973,3.924,10974,8.93,10991,4.15,11001,4.492,11002,6.886,11003,6.886,11004,6.886,11005,6.886,11006,4.492,11007,7.315,11008,4.492,11009,6.886,11010,6.886,11011,4.492,11012,6.886,11013,4.492,11014,6.886,11015,4.492,11016,6.886,11017,4.492,11018,4.492,11019,6.886,11020,4.492,11021,4.492,11022,3.413,11023,4.492,11024,5.757,11025,4.492,11026,3.329,11027,3.329,11028,3.329,11029,3.413,11030,4.492,11031,4.492,11032,4.492,11033,4.492,11034,6.886,11035,4.492,11036,4.492,11037,4.492,11038,4.492,11039,6.886,11040,4.492,11041,4.492,11042,3.756,11043,4.15,11044,4.492,11045,4.492,11046,7.848,11047,4.492,11048,4.492,11049,4.492,11050,6.886,11051,4.492,11052,4.492,11053,4.492,11054,6.886,11055,4.492,11056,4.492,11057,4.492,11058,4.492,11059,4.492,11060,4.492,11061,4.492,11062,4.492,11063,4.492,11064,4.492,11065,4.492,11066,4.492,11067,4.492,11068,6.886,11069,4.492,11070,4.492,11071,4.492,11072,3.071,11073,4.492,11074,4.492,11075,2.971,11076,3.756,11077,3.071,11078,4.492,11079,4.492,11080,3.071,11081,4.492,11082,4.492,11083,2.739,11084,4.492,11085,4.492,11086,3.509,11087,3.019,11088,4.492,11089,4.492,11090,4.492]],["title/interfaces/IAccountConfig.html",[334,0.742,11091,5.892]],["body/interfaces/IAccountConfig.html",[3,0.027,4,0.027,5,0.014,7,0.157,30,0.001,32,0.169,55,2.825,101,0.019,103,0.001,104,0.001,165,0.954,334,1.125,336,2.489,347,2.617,445,9.439,1842,11.595,11091,10.544,11092,7.112,11093,12.261]],["title/interfaces/IBbbSettings.html",[334,0.742,2290,5.437]],["body/interfaces/IBbbSettings.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.177,47,1.016,101,0.023,103,0.001,104,0.001,165,0.933,217,1.3,334,1.083,336,2.397,2090,5.002,2287,10.569,2288,11.453,2290,9.516,2293,8.598,10474,10.242,11094,9.843,11095,8.598,11096,9.843]],["title/interfaces/ICalendarEvent.html",[334,0.742,3938,5.639]],["body/interfaces/ICalendarEvent.html",[3,0.027,4,0.027,5,0.014,7,0.156,30,0.001,32,0.18,47,0.874,101,0.019,103,0.001,104,0.001,138,5.217,163,4.174,165,0.949,334,1.116,336,2.47,563,6.259,1382,6.259,3928,6.932,3938,10.046,3945,8.174,3948,7.705,11097,10.14,11098,10.14]],["title/interfaces/IClassEntityProps.html",[334,0.742,4296,5.639]],["body/interfaces/IClassEntityProps.html",[0,0.275,2,0.641,3,0.015,4,0.032,5,0.008,7,0.184,26,2.179,30,0.001,31,0.623,32,0.182,33,0.676,34,1.792,47,0.972,49,5.33,55,2.297,62,6.47,95,0.142,96,2.186,97,2.372,99,0.946,101,0.015,103,0,104,0,111,1.115,144,1.523,145,3.267,165,0.752,234,0.904,240,4.018,305,1.604,334,0.614,336,1.358,359,1.933,369,2.748,370,4.079,380,1.692,398,1.632,399,3.168,402,2.293,404,1.01,405,1.506,406,1.786,618,2.372,619,4.623,905,2.315,2136,2.231,4227,3.819,4228,8.038,4229,8.429,4230,8.576,4231,8.429,4232,7.233,4233,8.429,4234,8.429,4277,4.355,4278,5.15,4286,9.039,4293,4.377,4294,3.36,4295,5.15,4296,8.735,4297,4.661,4298,9.651,4299,7.068,4300,5.15,4301,5.15,4302,4.661,4303,2.446,4304,3.286,4305,4.132,4306,7.474,4307,4.355,4308,5.15,4309,5.15,4310,7.474,4311,5.15,4312,7.474,4313,5.15,4314,5.15,4315,6.32,4316,4.132,4317,7.474,4318,5.15,4319,6.147,4320,4.039,4321,7.474,4322,5.15]],["title/interfaces/ICollaborativeStorageStrategy.html",[334,0.742,4493,5.437]],["body/interfaces/ICollaborativeStorageStrategy.html",[3,0.021,4,0.021,5,0.011,7,0.123,8,1.25,27,0.506,29,0.967,30,0.001,31,0.683,32,0.171,33,0.609,35,1.468,36,2.897,47,0.836,95,0.133,100,4.073,101,0.015,103,0.001,104,0.001,264,3.381,334,1.266,336,1.945,379,2.387,494,7.334,496,4.845,520,6.964,1916,5.019,2092,5.864,3928,5.46,4477,8.475,4487,8.352,4488,8.352,4490,8.352,4491,8.352,4493,8.352,4496,8.352,4497,9.334,4499,7.421,4500,8.352,4504,8.352,4510,5.92,4512,6.239,4513,6.678,4532,9.81,4534,6.438,11099,7.987,11100,10.361,11101,9.051,11102,7.987,11103,7.987,11104,7.987,11105,9.571,11106,7.987,11107,10.361]],["title/interfaces/ICollectionFilePath.html",[334,0.742,11108,6.23]],["body/interfaces/ICollectionFilePath.html",[0,0.089,3,0.007,4,0.024,5,0.012,7,0.04,10,1.063,27,0.109,30,0.001,31,0.431,32,0.063,33,0.291,35,1.007,36,1.933,47,0.905,55,0.982,83,1.344,95,0.142,96,0.711,97,1.12,99,0.446,101,0.015,103,0,104,0,105,0.589,111,2.474,112,2.188,127,0.333,144,0.719,145,0.679,163,2.805,165,0.353,187,0.377,204,0.903,216,1.267,217,1.726,221,2.968,227,1.306,234,0.944,247,1.772,264,3.25,284,2.692,305,0.757,331,1.645,334,0.29,336,0.641,347,0.91,369,0.985,381,0.866,433,0.993,449,1.058,494,1.586,504,1.907,520,1.769,535,1.424,538,2.002,565,2.358,576,2.633,577,2.504,674,1.436,731,1.035,734,4.432,767,2.432,774,1.799,778,1.769,789,3.737,801,1.535,839,1.236,846,1.868,851,2.192,852,2.192,853,2.27,883,2.44,905,2.847,964,1.799,1052,1.073,1053,1.981,1062,2.54,1114,3.797,1121,3.109,1240,1.519,1298,1.243,1299,1.228,1300,1.228,1301,1.301,1302,1.424,1303,1.799,1304,1.741,1539,2.3,1545,0.841,1680,1.799,1696,1.504,1708,6.782,1910,5.408,1932,1.347,2092,1.49,2171,1.131,2172,1.259,2173,1.214,2174,1.667,2180,1.667,2282,1.769,2344,1.088,2395,2.553,2439,1.907,2444,2.056,2475,4.865,2478,1.504,2500,2.757,2526,5.285,2835,4.972,2880,4.665,2951,1.569,3018,2.3,3285,1.605,3462,2.91,3471,2.432,3508,3.49,3542,4.303,3843,4.865,3845,2.432,3846,2.432,3850,7.545,3852,1.799,3854,4.127,3861,7.771,4227,0.906,4483,3.902,4586,1.832,4960,5.285,5412,2,6127,1.741,6209,2.201,6260,2.955,6329,3.109,6774,1.868,6793,1.832,6911,2.91,6984,2.122,7155,2,7339,1.832,7648,2.122,7649,2.056,7652,5.949,7653,8.668,7654,5.732,7657,5.448,7660,3.311,7668,3.507,7679,4.687,7680,5.083,7694,10.257,7718,4.691,7724,6.334,7806,4.313,7854,2.432,7855,2.432,8108,3.311,8109,3.902,8636,1.832,9083,4.216,9113,2.122,9181,2.201,9401,1.645,9955,4.865,9972,4.127,9975,3.232,9985,4.421,9989,2.432,9994,7.545,9998,2.432,10057,3.601,10321,1.907,10350,1.868,11043,2.432,11108,7.708,11109,2.632,11110,2.432,11111,2.432,11112,2.432,11113,2.632,11114,7.678,11115,5.819,11116,3.902,11117,8.344,11118,5.819,11119,6.857,11120,2.632,11121,2.632,11122,2.432,11123,2.632,11124,2.632,11125,2.632,11126,2.3,11127,2.632,11128,4.467,11129,2.632,11130,8.344,11131,4.467,11132,4.467,11133,2.632,11134,2.632,11135,2.632,11136,2.432,11137,2.632,11138,2.632,11139,6.857,11140,2.632,11141,2.632,11142,2.632,11143,2.632,11144,2.632,11145,2.632,11146,2.632,11147,2.632,11148,2.632,11149,2.632,11150,5.819,11151,2.632,11152,6.857,11153,4.691,11154,2.632,11155,2.632,11156,1.625,11157,2.632,11158,4.467,11159,4.467,11160,2.632,11161,2.632,11162,2.632,11163,4.467,11164,2.632,11165,2.632,11166,2.632,11167,4.467,11168,3.902,11169,4.467,11170,4.467,11171,2.632,11172,2.632,11173,2.632,11174,2.632,11175,2.632,11176,2.632,11177,2.632,11178,2.632,11179,2.632,11180,2.632,11181,2.632,11182,6.857,11183,2.632,11184,3.735,11185,4.865,11186,2.632,11187,4.127,11188,4.467,11189,2.632,11190,4.467,11191,2.632,11192,4.467,11193,2.632,11194,2.632,11195,2.632,11196,5.819,11197,2.632,11198,2.632,11199,2.056,11200,2.432,11201,2.632,11202,2.632,11203,2.632,11204,3.237,11205,2.201,11206,2.632,11207,2.632,11208,2.632,11209,2.632,11210,2.632,11211,4.467,11212,2.632,11213,2.632,11214,2.632,11215,2.632,11216,1.69,11217,2.632,11218,2.632,11219,2.632,11220,2.632,11221,3.601,11222,2.632,11223,2.632,11224,2.632,11225,2.632,11226,1.951,11227,2.632,11228,2.632,11229,2.632,11230,2.632,11231,2.632,11232,4.467,11233,2.632,11234,2.632,11235,5.819,11236,2.632,11237,2.632,11238,2.632,11239,2.632,11240,2.3,11241,2.632,11242,2.632,11243,3.601,11244,3.601,11245,3.601,11246,2.632,11247,5.375,11248,2.632,11249,2.432,11250,2.3,11251,2.632,11252,2.632,11253,2.632,11254,3.902,11255,2.632,11256,2.632,11257,2.632,11258,2.432,11259,2.632,11260,2.632,11261,2.632,11262,2.632,11263,5.819,11264,2.632,11265,2.632,11266,2.632,11267,2.632,11268,2.632,11269,4.467,11270,3.311,11271,4.467,11272,2.632,11273,4.127,11274,4.467,11275,2.632,11276,4.467,11277,5.819,11278,2.632,11279,2.201,11280,2.432,11281,2.432,11282,2.632,11283,2.632,11284,2.432,11285,1.951,11286,2.432,11287,2.632,11288,2.632,11289,2.632,11290,2.632,11291,2.632,11292,2.632]],["title/interfaces/ICommonCartridgeConfig.html",[334,0.742,11293,5.892]],["body/interfaces/ICommonCartridgeConfig.html",[3,0.028,4,0.028,5,0.015,7,0.16,30,0.001,32,0.146,101,0.02,103,0.001,104,0.001,165,0.965,334,1.148,336,2.54,347,2.64,5035,6.606,5036,6.697,11293,10.672,11294,10.429,11295,12.343]],["title/interfaces/ICommonCartridgeElement.html",[334,0.742,5062,4.394]],["body/interfaces/ICommonCartridgeElement.html",[3,0.027,4,0.027,5,0.015,7,0.158,8,1.463,27,0.428,30,0.001,35,1.242,101,0.02,103,0.001,104,0.001,334,1.133,336,2.508,1291,5.158,4931,7.484,5035,7.679,5036,7.786,5062,7.899,5097,8.428,11296,10.296,11297,10.296]],["title/interfaces/ICommonCartridgeFile.html",[334,0.742,5104,5.269]],["body/interfaces/ICommonCartridgeFile.html",[3,0.026,4,0.026,5,0.014,7,0.153,8,1.435,27,0.494,30,0.001,35,1.435,47,0.865,101,0.019,103,0.001,104,0.001,334,1.097,336,2.427,347,2.423,2344,5.44,4931,7.846,5035,8.051,5036,8.163,5104,9.289,5105,10.612,11298,9.965,11299,9.965,11300,9.965]],["title/interfaces/ICommonCartridgeFileBuilder.html",[334,0.742,5038,5.437]],["body/interfaces/ICommonCartridgeFileBuilder.html",[0,0.285,3,0.016,4,0.016,5,0.016,7,0.09,8,1.013,27,0.407,29,0.667,30,0.001,31,0.471,32,0.138,33,0.42,35,1.183,36,2.129,47,0.778,95,0.156,101,0.02,103,0.001,104,0.001,111,2.424,112,1.316,127,0.743,214,2.772,215,1.899,216,2.292,217,1.555,227,1.243,234,2.077,334,0.924,336,1.429,595,3.386,667,5.313,701,2.049,1474,2.849,1515,5.391,1925,4.362,2155,6.587,2594,4.323,3187,5.059,4931,7.79,4944,4.584,4945,4.503,4946,5.738,4956,9.211,4969,6.406,4975,6.557,4977,6.557,4985,6.767,4989,6.603,4991,4.73,4998,5.738,5035,6.776,5036,6.87,5037,4.906,5038,9.491,5039,7.656,5040,6.378,5041,7.018,5042,7.754,5043,7.754,5045,7.018,5049,8.194,5051,8.194,5052,9.491,5054,9.773,5055,8.194,5058,4.73,5059,4.73,5060,4.458,5061,4.164,5062,6.385,5063,3.944,5064,6.557,5065,6.767,5066,4.584,5067,6.082,5068,4.584,5069,7.018,5070,4.73,5071,4.906,5072,4.906,5073,4.906,5074,8.944,5075,4.906,5076,7.018,5077,4.906,5078,4.906,5079,7.018,5080,4.906,5081,4.906,5082,4.906,5083,4.906,5084,4.906,5085,4.906,5086,4.906,5087,4.906,5088,4.906,5089,4.906,5090,4.906,5091,4.73,5092,4.906,5093,4.906,5094,4.906,5095,4.906,5096,4.906,5097,3.716,5098,4.906,5099,4.906,5100,4.906,11301,5.868,11302,5.868,11303,5.868]],["title/interfaces/ICommonCartridgeOrganizationBuilder.html",[334,0.742,5054,5.437]],["body/interfaces/ICommonCartridgeOrganizationBuilder.html",[0,0.295,3,0.016,4,0.016,5,0.014,7,0.095,8,1.048,27,0.256,29,0.489,30,0.001,31,0.346,32,0.122,33,0.308,35,0.743,36,1.887,47,0.795,95,0.158,101,0.021,103,0.001,104,0.001,111,2.458,112,1.38,127,0.779,214,2.867,215,1.992,216,2.32,217,1.58,227,1.262,234,2.098,334,0.956,336,1.499,595,3,667,4.077,701,2.149,1474,2.947,1515,5.577,1925,4.513,2155,6.763,2594,4.438,3187,5.234,4931,7.587,4944,4.808,4945,4.659,4946,5.936,4956,9.34,4969,6.523,4975,6.784,4977,6.784,4985,7,4989,6.746,4991,4.961,4998,5.936,5035,5.5,5036,5.577,5037,5.146,5038,8.811,5039,7.861,5040,6.598,5041,7.26,5045,7.26,5049,8.413,5051,7.26,5052,8.811,5054,10.119,5055,7.26,5058,4.961,5059,4.961,5060,4.677,5061,4.368,5062,6.556,5063,4.137,5064,6.784,5065,7,5066,4.808,5067,6.292,5068,4.808,5069,8.413,5070,4.961,5071,5.146,5072,5.146,5073,5.146,5074,9.138,5075,5.146,5076,7.26,5077,5.146,5078,5.146,5079,7.26,5080,5.146,5081,5.146,5082,5.146,5083,5.146,5084,5.146,5085,5.146,5086,5.146,5087,5.146,5088,5.146,5089,5.146,5090,5.146,5091,4.961,5092,5.146,5093,5.146,5094,5.146,5095,5.146,5096,5.146,5097,3.898,5098,5.146,5099,5.146,5100,5.146,5205,8.022,11304,6.155]],["title/interfaces/IComponentEtherpadProperties.html",[334,0.742,11305,4.694]],["body/interfaces/IComponentEtherpadProperties.html",[0,0.154,3,0.012,4,0.012,5,0.006,7,0.145,26,2.118,30,0.001,31,0.389,32,0.15,47,0.983,55,2.233,95,0.154,96,1.222,101,0.024,103,0,104,0,111,1.384,116,1.464,145,1.786,150,4.087,165,0.547,187,0.647,188,3.844,208,1.678,214,1.493,217,1.638,227,1.309,234,1.528,240,3.181,247,1.794,305,1.991,334,1.265,336,1.102,347,1.41,369,1.854,370,1.509,371,1.907,379,2.467,380,1.447,398,1.324,399,2.71,400,1.984,402,1.86,404,0.819,405,1.222,406,1.449,461,1.042,535,3.745,687,2.098,769,4.125,806,1.905,1031,1.449,1062,1.974,1278,2.447,1439,2.163,1474,3.782,1910,2.136,1932,3.543,1984,1.934,2136,1.81,2344,4.426,2674,3.855,2675,2.22,2678,3.777,2682,2.468,2687,4.384,2688,2.637,2689,4.37,2691,3.689,2692,4.327,2701,2.086,2705,4.509,2809,3.654,2880,4.021,3305,4.155,3419,5.19,3438,5.967,3544,1.878,3571,3.148,3572,3.148,4083,4.08,4239,2.827,4303,1.984,4821,2.791,4825,2.827,4826,2.904,4926,2.086,4953,6.332,4965,3.148,4982,2.535,4989,4.272,4994,6.734,5007,3.209,5013,3.209,5018,3.209,5566,7.198,6260,5.562,6263,5.967,6377,2.946,6397,2.827,6404,6.05,6405,3.04,6406,4.578,6408,4.384,6444,4.445,6445,4.652,6460,4.732,6633,2.791,6634,2.991,8265,4.912,10432,4.578,11305,5.853,11306,3.209,11307,5.256,11308,3.277,11309,4.818,11310,6.52,11311,4.912,11312,3.148,11313,4.818,11314,4.818,11315,4.818,11316,3.209,11317,4.818,11318,2.946,11319,4.818,11320,4.912,11321,3.209,11322,3.209,11323,3.277,11324,3.148,11325,3.148,11326,3.277,11327,3.277,11328,3.277,11329,5.015,11330,5.853,11331,3.148,11332,5.015,11333,3.277,11334,3.277,11335,3.277,11336,3.092,11337,3.277,11338,3.277,11339,5.015,11340,3.277,11341,3.277,11342,6.826,11343,6.092,11344,3.209,11345,3.277,11346,3.277,11347,3.277,11348,3.277,11349,3.277,11350,3.277,11351,3.277,11352,3.277,11353,3.277,11354,3.277,11355,3.277,11356,3.092,11357,3.277,11358,3.209]],["title/interfaces/IComponentGeogebraProperties.html",[334,0.742,11315,4.694]],["body/interfaces/IComponentGeogebraProperties.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,26,2.133,30,0.001,31,0.393,32,0.133,47,0.97,55,2.249,95,0.155,96,1.242,101,0.024,103,0,104,0,111,1.401,116,1.487,145,1.808,150,3.483,165,0.554,187,0.658,188,3.871,208,1.705,214,1.517,217,1.644,227,1.314,234,1.54,240,3.203,247,1.823,305,2.015,334,1.272,336,1.119,347,1.427,369,1.872,370,1.533,371,1.931,379,1.956,380,1.465,398,1.345,399,2.743,400,2.016,402,1.89,404,0.832,405,1.242,406,1.472,461,1.059,535,3.79,687,2.131,769,4.175,806,1.936,1031,1.472,1062,2.005,1278,2.486,1439,2.197,1474,3.224,1910,2.17,1932,3.586,1984,1.965,2136,1.839,2344,4.453,2674,3.893,2675,2.255,2678,3.823,2682,2.507,2687,4.438,2688,2.68,2689,4.413,2691,3.725,2692,4.379,2701,2.119,2705,4.564,2809,3.698,2880,4.061,3305,4.196,3419,5.241,3438,6.026,3544,1.908,3571,3.198,3572,3.198,4083,4.129,4239,2.872,4303,2.016,4821,2.836,4825,2.872,4826,2.951,4926,2.119,4953,6.384,4965,3.198,4982,2.576,4989,4.324,4994,6.765,5007,3.261,5013,3.261,5018,3.261,5566,7.243,6260,5.617,6263,6.026,6377,2.994,6397,2.872,6404,6.093,6405,3.088,6406,4.634,6408,4.438,6444,4.499,6445,4.709,6460,4.789,6633,2.836,6634,3.039,8265,4.972,10432,4.634,11305,4.877,11306,3.261,11307,5.308,11308,3.329,11309,4.877,11310,6.567,11311,4.972,11312,3.198,11313,4.877,11314,4.877,11315,5.91,11316,6.74,11317,4.877,11318,2.994,11319,4.877,11320,4.972,11321,3.261,11322,3.261,11323,3.329,11324,3.198,11325,3.198,11326,3.329,11327,3.329,11328,3.329,11329,5.076,11330,5.91,11331,3.198,11332,5.076,11333,3.329,11334,3.329,11335,3.329,11336,3.141,11337,3.329,11338,3.329,11339,5.076,11340,3.329,11341,3.329,11342,6.882,11343,6.152,11344,3.261,11345,3.329,11346,3.329,11347,3.329,11348,3.329,11349,3.329,11350,3.329,11351,3.329,11352,3.329,11353,3.329,11354,3.329,11355,3.329,11356,3.141,11357,3.329,11358,3.261]],["title/interfaces/IComponentInternalProperties.html",[334,0.742,11320,4.786]],["body/interfaces/IComponentInternalProperties.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,26,2.133,30,0.001,31,0.393,32,0.133,47,0.97,55,2.249,95,0.155,96,1.242,101,0.024,103,0,104,0,111,1.401,116,1.487,145,1.808,150,4.11,165,0.554,187,0.658,188,3.871,208,1.705,214,1.517,217,1.644,227,1.314,234,1.54,240,3.203,247,1.823,305,2.015,334,1.272,336,1.119,347,1.427,369,1.872,370,1.533,371,1.931,379,1.956,380,1.465,398,1.345,399,2.743,400,2.016,402,1.89,404,0.832,405,1.242,406,1.472,461,1.059,535,3.79,687,2.131,769,4.175,806,1.936,1031,1.472,1062,2.005,1278,2.486,1439,2.197,1474,3.224,1910,2.17,1932,3.586,1984,1.965,2136,1.839,2344,4.453,2674,3.893,2675,2.255,2678,3.823,2682,2.507,2687,4.438,2688,2.68,2689,4.413,2691,3.725,2692,4.379,2701,2.119,2705,4.564,2809,3.698,2880,4.061,3305,4.196,3419,5.241,3438,6.026,3544,1.908,3571,3.198,3572,3.198,4083,4.129,4239,2.872,4303,2.016,4821,2.836,4825,2.872,4826,2.951,4926,2.119,4953,6.384,4965,3.198,4982,2.576,4989,4.324,4994,6.765,5007,3.261,5013,3.261,5018,3.261,5566,7.243,6260,5.617,6263,6.026,6377,2.994,6397,2.872,6404,6.093,6405,3.088,6406,4.634,6408,4.438,6444,4.499,6445,4.709,6460,4.789,6633,2.836,6634,3.039,8265,4.972,10432,4.634,11305,4.877,11306,3.261,11307,5.308,11308,3.329,11309,4.877,11310,6.567,11311,4.972,11312,3.198,11313,4.877,11314,4.877,11315,4.877,11316,3.261,11317,4.877,11318,2.994,11319,4.877,11320,6.026,11321,3.261,11322,3.261,11323,3.329,11324,3.198,11325,3.198,11326,3.329,11327,3.329,11328,3.329,11329,5.076,11330,5.91,11331,3.198,11332,5.076,11333,3.329,11334,3.329,11335,3.329,11336,3.141,11337,3.329,11338,3.329,11339,5.076,11340,3.329,11341,3.329,11342,6.882,11343,6.152,11344,3.261,11345,3.329,11346,3.329,11347,3.329,11348,3.329,11349,3.329,11350,3.329,11351,3.329,11352,3.329,11353,3.329,11354,3.329,11355,3.329,11356,3.141,11357,3.329,11358,3.261]],["title/interfaces/IComponentLernstoreProperties.html",[334,0.742,11317,4.694]],["body/interfaces/IComponentLernstoreProperties.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,26,2.131,30,0.001,31,0.393,32,0.151,47,0.96,55,2.246,95,0.155,96,1.239,101,0.024,103,0,104,0,111,1.398,116,1.484,138,3.037,145,1.805,150,3.479,165,0.553,187,0.656,188,3.868,208,1.701,214,1.514,217,1.644,227,1.313,234,1.539,240,3.2,247,1.818,305,2.012,334,1.271,336,1.117,347,1.425,369,1.869,370,1.529,371,1.927,379,1.954,380,1.462,398,1.342,399,2.738,400,2.011,402,1.886,404,0.83,405,1.239,406,1.469,461,1.056,535,3.784,687,2.127,769,4.168,806,1.931,1031,1.469,1062,2.001,1278,2.48,1439,2.192,1474,3.22,1910,2.165,1932,3.58,1984,1.96,2136,1.835,2344,4.449,2674,3.888,2675,2.25,2678,3.816,2682,2.502,2687,4.43,2688,2.673,2689,4.406,2691,3.72,2692,4.372,2701,2.114,2705,4.556,2809,3.692,2880,4.055,3305,4.19,3419,5.234,3438,6.017,3544,1.904,3571,3.191,3572,3.191,4083,4.122,4239,2.866,4303,2.011,4821,2.83,4825,2.866,4826,2.944,4926,2.114,4953,6.376,4965,3.191,4982,2.57,4989,6.305,4994,6.76,5007,3.253,5013,3.253,5018,3.253,5566,7.236,6260,5.609,6263,6.017,6377,2.987,6397,2.866,6404,6.087,6405,3.081,6406,4.626,6408,4.43,6444,4.491,6445,4.701,6460,4.781,6633,2.83,6634,3.032,8265,4.963,10432,4.626,11305,4.868,11306,3.253,11307,5.3,11308,3.322,11309,4.868,11310,6.56,11311,4.963,11312,3.191,11313,4.868,11314,4.868,11315,4.868,11316,3.253,11317,5.902,11318,2.987,11319,4.868,11320,4.963,11321,3.253,11322,3.253,11323,3.322,11324,3.191,11325,3.191,11326,3.322,11327,3.322,11328,3.322,11329,5.067,11330,5.902,11331,3.191,11332,5.067,11333,3.322,11334,3.322,11335,3.322,11336,3.134,11337,3.322,11338,3.322,11339,5.067,11340,3.322,11341,3.322,11342,6.874,11343,6.144,11344,3.253,11345,3.322,11346,3.322,11347,3.322,11348,3.322,11349,3.322,11350,3.322,11351,3.322,11352,3.322,11353,3.322,11354,3.322,11355,3.322,11356,3.134,11357,3.322,11358,3.253]],["title/interfaces/IComponentNexboardProperties.html",[334,0.742,11319,4.694]],["body/interfaces/IComponentNexboardProperties.html",[0,0.153,3,0.012,4,0.012,5,0.006,7,0.144,26,2.111,30,0.001,31,0.386,32,0.156,47,0.988,55,2.225,95,0.154,96,1.213,101,0.024,103,0,104,0,111,1.376,116,1.452,145,1.775,150,4.076,165,0.544,187,0.642,188,3.831,208,1.665,214,1.482,217,1.636,227,1.307,234,1.522,240,3.17,247,1.78,305,1.979,334,1.262,336,1.093,347,1.402,369,1.845,370,1.497,371,1.896,379,2.46,380,1.439,398,1.314,399,2.694,400,1.969,402,1.846,404,0.813,405,1.213,406,1.438,461,1.034,535,3.722,687,2.081,769,4.1,806,1.89,1031,1.438,1062,1.958,1278,2.428,1439,2.146,1474,3.772,1910,2.119,1932,3.522,1984,4.012,2136,1.796,2344,4.412,2674,3.837,2675,2.202,2678,3.754,2682,2.449,2687,4.358,2688,2.617,2689,4.348,2691,3.671,2692,4.301,2701,2.069,2705,4.482,2809,3.632,2880,4.002,3305,4.135,3419,5.165,3438,5.938,3544,1.863,3571,3.123,3572,3.123,4083,4.055,4239,2.805,4303,1.969,4821,2.77,4825,2.805,4826,2.882,4926,2.069,4953,6.306,4965,3.123,4982,2.516,4989,4.247,4994,6.719,5007,3.184,5013,3.184,5018,3.184,5566,7.175,6260,5.535,6263,5.938,6377,2.923,6397,2.805,6404,6.029,6405,3.016,6406,4.551,6408,4.358,6444,4.418,6445,4.624,6460,4.703,6633,2.77,6634,2.968,8265,4.882,10432,4.551,11305,4.789,11306,3.184,11307,5.231,11308,3.251,11309,4.789,11310,6.497,11311,4.882,11312,3.123,11313,4.789,11314,4.789,11315,4.789,11316,3.184,11317,4.789,11318,2.923,11319,5.824,11320,4.882,11321,3.184,11322,3.184,11323,3.251,11324,3.123,11325,3.123,11326,3.251,11327,3.251,11328,3.251,11329,4.985,11330,5.824,11331,3.123,11332,4.985,11333,3.251,11334,3.251,11335,3.251,11336,3.067,11337,3.251,11338,3.251,11339,4.985,11340,3.251,11341,3.251,11342,6.798,11343,6.063,11344,3.184,11345,3.251,11346,3.251,11347,3.251,11348,3.251,11349,3.251,11350,3.251,11351,3.251,11352,3.251,11353,3.251,11354,3.251,11355,3.251,11356,3.067,11357,3.251,11358,3.184]],["title/interfaces/IComponentTextProperties.html",[334,0.742,11314,4.694]],["body/interfaces/IComponentTextProperties.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,26,2.133,30,0.001,31,0.393,32,0.133,47,0.97,55,2.249,95,0.155,96,1.242,101,0.024,103,0,104,0,111,1.401,116,1.487,145,1.808,150,3.483,165,0.554,187,0.658,188,3.871,208,1.705,214,1.517,217,1.644,227,1.314,234,1.54,240,3.203,247,1.823,305,2.015,334,1.272,336,1.119,347,1.427,369,1.872,370,1.533,371,1.931,379,1.956,380,1.465,398,1.345,399,2.743,400,2.016,402,1.89,404,0.832,405,1.242,406,1.472,461,1.059,535,3.79,687,2.131,769,4.175,806,1.936,1031,1.472,1062,2.005,1278,2.486,1439,2.197,1474,3.224,1910,2.17,1932,3.586,1984,1.965,2136,1.839,2344,4.453,2674,3.893,2675,2.255,2678,3.823,2682,2.507,2687,4.438,2688,2.68,2689,4.413,2691,3.725,2692,4.379,2701,2.119,2705,4.564,2809,3.698,2880,5.153,3305,4.196,3419,5.241,3438,6.026,3544,1.908,3571,3.198,3572,3.198,4083,4.129,4239,2.872,4303,2.016,4821,2.836,4825,2.872,4826,2.951,4926,2.119,4953,6.384,4965,3.198,4982,2.576,4989,4.324,4994,6.765,5007,3.261,5013,3.261,5018,3.261,5566,7.243,6260,5.617,6263,6.026,6377,2.994,6397,2.872,6404,6.093,6405,3.088,6406,4.634,6408,4.438,6444,4.499,6445,4.709,6460,4.789,6633,2.836,6634,3.039,8265,4.972,10432,4.634,11305,4.877,11306,3.261,11307,5.308,11308,3.329,11309,4.877,11310,6.567,11311,4.972,11312,3.198,11313,4.877,11314,5.91,11315,4.877,11316,3.261,11317,4.877,11318,2.994,11319,4.877,11320,4.972,11321,3.261,11322,3.261,11323,3.329,11324,3.198,11325,3.198,11326,3.329,11327,3.329,11328,3.329,11329,5.076,11330,5.91,11331,3.198,11332,5.076,11333,3.329,11334,3.329,11335,3.329,11336,3.141,11337,3.329,11338,3.329,11339,5.076,11340,3.329,11341,3.329,11342,6.882,11343,6.152,11344,3.261,11345,3.329,11346,3.329,11347,3.329,11348,3.329,11349,3.329,11350,3.329,11351,3.329,11352,3.329,11353,3.329,11354,3.329,11355,3.329,11356,3.141,11357,3.329,11358,3.261]],["title/interfaces/IContextExternalToolProperties.html",[334,0.742,5687,5.639]],["body/interfaces/IContextExternalToolProperties.html",[0,0.256,3,0.02,4,0.02,5,0.011,7,0.116,29,0.983,30,0.001,32,0.178,33,0.595,47,0.957,55,2.617,95,0.159,96,2.037,101,0.019,103,0.001,104,0.001,165,0.788,192,2.247,199,2.878,200,3.876,209,2.595,240,3.877,334,0.83,336,1.836,369,2.199,370,2.514,380,2.086,398,2.207,399,3.906,402,3.101,404,1.365,405,2.037,406,2.415,1608,5.587,1925,3.917,4293,5.397,4294,4.543,4714,7.375,4926,4.6,5292,7.218,5598,4.712,5602,6.2,5621,4.775,5622,5.153,5623,4.986,5624,5.462,5625,5.349,5626,5.587,5664,7.639,5672,5.889,5673,6.964,5674,6.077,5675,10.348,5677,10.812,5680,9.663,5682,8.968,5685,6.302,5686,4.911,5687,9.348,5688,6.964,5689,6.964,5690,6.964,5691,6.585,5692,6.302,5693,6.077,5694,6.302]],["title/interfaces/ICopyFileDO.html",[334,0.742,10188,5.125]],["body/interfaces/ICopyFileDO.html",[3,0.02,4,0.026,5,0.011,7,0.116,10,3.044,26,2.807,30,0.001,31,0.695,32,0.157,33,0.499,34,2.123,39,2.02,47,0.969,55,1.658,83,2.268,95,0.128,99,1.279,101,0.025,103,0.001,104,0.001,165,0.788,188,2.854,192,2.247,204,3.422,217,0.996,334,1.31,336,1.836,461,1.737,538,3.379,1015,4.187,1031,3.583,1366,6.705,1565,4.187,2171,3.24,2172,3.605,2173,3.476,2563,4.712,2691,3.307,2701,3.476,2744,3.361,2881,3.436,3091,3.436,3144,4.044,3305,5.525,3320,5.153,3542,5.766,3574,4.864,3684,4.226,3898,4.113,4227,2.595,4982,4.226,4994,4.308,6067,7.871,6083,6.155,6085,6.499,6109,5.587,6110,4.187,6111,4.963,6112,4.911,6424,4.396,9714,7.228,9715,7.228,9716,7.228,9717,4.712,10174,5.587,10187,5.889,10188,7.58,10189,5.728,10286,5.889,10289,8.734,11359,6.302,11360,6.302,11361,6.302,11362,6.302,11363,6.302,11364,6.302]],["title/interfaces/ICopyFileDomainObjectProps.html",[334,0.742,6068,5.639]],["body/interfaces/ICopyFileDomainObjectProps.html",[3,0.025,4,0.025,5,0.016,7,0.147,26,2.854,30,0.001,31,0.729,32,0.175,33,0.58,34,2.227,47,0.908,95,0.123,99,1.622,101,0.018,103,0.001,104,0.001,145,3.222,165,0.917,334,1.052,336,2.329,359,3.315,2485,4.13,3543,4.693,6064,4.384,6067,8.588,6068,9.698,11365,8.833,11366,8.833]],["title/interfaces/ICopyFilesOfParentParams.html",[334,0.742,10286,5.269]],["body/interfaces/ICopyFilesOfParentParams.html",[3,0.02,4,0.033,5,0.011,7,0.116,10,3.055,26,2.749,30,0.001,31,0.561,32,0.157,34,1.715,39,3.194,47,0.944,55,1.664,83,2.276,95,0.128,99,1.283,101,0.025,103,0.001,104,0.001,165,0.79,188,2.865,192,2.256,204,3.43,217,0.999,334,1.312,336,1.843,461,1.743,538,3.392,1015,4.203,1031,3.589,1366,6.721,1565,4.203,2171,3.252,2172,3.618,2173,3.489,2563,4.73,2691,3.32,2701,3.489,2744,5.313,2881,3.449,3091,3.449,3144,4.059,3305,5.535,3320,5.172,3542,5.777,3574,4.876,3684,4.242,3898,4.129,4227,2.605,4982,4.242,4994,4.324,6067,5.005,6083,6.166,6085,6.515,6109,5.608,6110,4.203,6111,4.975,6112,4.93,6424,4.413,9714,7.246,9715,7.246,9716,7.246,9717,4.73,10174,5.608,10187,5.911,10188,5.749,10189,5.749,10286,7.812,10289,10.142,11359,6.326,11360,6.326,11361,6.326,11362,6.326,11363,6.326,11364,6.326]],["title/interfaces/ICopyFilesRequestInfo.html",[334,0.742,6179,5.639]],["body/interfaces/ICopyFilesRequestInfo.html",[3,0.031,4,0.035,5,0.018,7,0.148,26,2.713,30,0.001,32,0.176,39,3.485,95,0.149,99,1.63,101,0.018,103,0.001,104,0.001,165,0.919,334,1.057,336,2.34,367,5.599,2744,5.798,3543,4.715,6064,4.405,6177,10.7,6179,9.726,11365,8.875,11367,8.393]],["title/interfaces/ICoreModuleConfig.html",[334,0.742,11368,5.639]],["body/interfaces/ICoreModuleConfig.html",[3,0.028,4,0.028,5,0.015,30,0.001,95,0.156,101,0.02,103,0.001,104,0.001,334,1.142,336,2.527,404,2.206,425,2.781,558,4.931,1052,4.228,11092,7.222,11368,10.183,11369,10.376,11370,10.809,11371,10.183]],["title/interfaces/ICourseGroupProperties.html",[334,0.742,6632,5.639]],["body/interfaces/ICourseGroupProperties.html",[0,0.237,3,0.019,4,0.019,5,0.01,7,0.191,26,2.406,30,0.001,31,0.677,32,0.179,33,0.474,39,1.87,47,0.877,62,4.068,95,0.168,96,1.885,101,0.018,103,0.001,104,0.001,116,3.065,145,1.8,148,2.158,165,0.85,188,5.108,192,2.823,204,2.393,208,2.589,214,2.303,217,0.921,227,0.736,234,1.131,240,2.967,309,3.948,334,1.042,336,1.699,380,1.98,398,2.043,399,3.708,400,3.061,402,2.87,404,1.263,405,1.885,406,2.235,461,2.657,844,4.874,957,3.948,1218,4.951,1277,3.598,1910,3.295,2136,2.792,2478,3.987,2510,4.419,2674,4.93,2675,3.424,2678,3.807,2682,3.807,2688,4.068,2690,4.951,2692,4.361,2705,4.545,2835,4.157,2881,3.18,3061,5.301,3394,4.769,4227,2.401,4303,3.061,4926,4.368,6045,5.45,6366,5.055,6370,8.243,6400,5.775,6404,4.157,6406,6.265,6407,4.306,6408,5.999,6409,3.911,6425,5.055,6429,4.361,6431,5.833,6444,4.48,6445,7.227,6473,5.833,6623,6.445,6632,8.99,6633,4.306,6634,4.614,6635,6.445,6636,6.445,6637,5.055,6638,6.445,6639,6.445,6640,6.445,6641,6.445,6642,6.445,6643,6.445]],["title/interfaces/ICourseProperties.html",[334,0.742,6410,5.639]],["body/interfaces/ICourseProperties.html",[0,0.141,3,0.011,4,0.011,5,0.006,7,0.166,26,2.253,30,0.001,31,0.58,32,0.177,33,0.654,34,0.711,39,2.133,47,0.924,62,2.417,83,3.656,95,0.151,96,1.12,101,0.012,103,0,104,0,111,1.591,116,3.495,127,0.525,145,2.321,148,2.002,165,0.511,188,3.405,192,2.908,208,1.538,214,1.369,217,1.605,227,1.262,234,1.677,240,3.5,305,1.861,329,2.344,334,0.456,336,1.01,347,1.318,369,2.463,370,3.254,371,1.142,379,2.382,380,1.353,394,3.698,398,1.214,399,2.533,400,1.819,402,1.705,404,0.751,405,1.12,406,1.328,461,2.756,475,2.077,535,2.243,565,3.416,618,1.764,686,2.262,701,1.448,770,3.814,844,4.686,905,1.721,922,3.621,1031,2.551,1218,2.942,1439,3.095,1474,1.407,1910,3.056,1919,2.687,1925,2.154,2116,2.243,2136,3.599,2674,4.124,2678,4.908,2682,2.262,2690,2.942,2692,2.591,3091,1.89,3285,2.528,3396,2.662,3715,2.591,3739,4.28,3740,4.28,4013,3.15,4083,2.443,4227,1.427,4228,5.767,4243,3.621,4303,2.839,4641,2.786,4821,2.559,4926,2.984,4961,7.662,6270,3.15,6331,3.003,6363,3.829,6364,7.509,6365,7.067,6366,5.767,6367,6.556,6368,2.885,6369,7.49,6370,7.067,6371,7.863,6372,7.662,6373,3.829,6376,3.829,6377,2.701,6379,3.829,6381,9.011,6384,3.829,6393,3.829,6397,2.591,6398,3.829,6399,3.829,6400,3.946,6401,4.689,6402,4.796,6403,3.466,6404,3.856,6405,2.786,6406,4.28,6407,2.559,6408,4.099,6409,2.324,6410,6.655,6411,5.653,6412,3.829,6413,3.466,6414,3.003,6415,3.829,6416,3.829,6417,3.621,6418,3.238,6419,3.829,6420,3.829,6421,3.342,6422,3.829,6423,3.946,6424,2.417,6425,5.767,6426,3.466,6427,4.424,6428,2.834,6429,2.591,6430,2.498,6431,3.466,6432,3.829,6433,3.829,6434,5.978,6435,5.978,6436,5.978,6437,7.52,6438,5.41,6439,5.055,6440,5.978,6441,4.917,6442,5.055,6443,3.15,6444,2.662,6445,4.349,6446,3.829,6447,3.829,6448,3.829,6449,5.978,6450,3.829,6451,3.829,6452,3.829,6453,3.829,6454,3.829,6455,3.829,6456,3.829,6457,3.829,6458,3.829,6459,3.829,6460,2.834,6461,2.626,6462,3.829,6463,3.621,6464,3.829,6465,7.353,6466,5.978,6467,3.829,6468,3.829,6469,3.466,6470,3.466,6471,2.885,6472,3.829,6473,6.655,6474,3.829,6475,3.829,6476,3.829,6477,3.829]],["title/interfaces/ICreateNews.html",[334,0.742,11372,5.437]],["body/interfaces/ICreateNews.html",[3,0.021,4,0.021,5,0.011,7,0.121,26,2.385,30,0.001,32,0.192,33,0.572,34,1.354,47,0.936,83,3.44,95,0.155,101,0.024,103,0.001,104,0.001,138,4.464,165,0.812,188,4.329,192,2.353,334,1.418,336,1.923,347,1.608,379,1.819,380,1.65,696,4.071,844,4.661,1031,2.529,1474,4.111,2344,5.006,2423,4.813,2744,5.601,3606,6.895,4499,4.813,6424,4.603,6720,6.346,6722,5.85,6723,7.343,6726,8.013,6730,5.996,6731,7.423,6902,7.959,9717,4.934,10356,6.363,11372,8.288,11373,7.291,11374,9.498,11375,7.291,11376,7.291,11377,7.291,11378,5.142,11379,6.599,11380,6.363]],["title/interfaces/ICurrentUser.html",[334,0.742,491,3.31]],["body/interfaces/ICurrentUser.html",[3,0.02,4,0.02,5,0.011,7,0.116,26,2.946,30,0.001,31,0.422,32,0.178,33,0.594,34,2.179,39,3.184,47,0.942,48,5.578,83,2.994,85,7.427,94,4.729,95,0.096,99,1.274,101,0.021,103,0.001,104,0.001,165,0.786,200,3.242,334,1.228,336,1.829,347,2.274,355,3.913,369,2.619,461,2.738,491,4.884,496,4.192,522,7.561,575,5.93,591,3.211,592,3.312,770,5.865,851,3.686,852,3.686,1110,6.39,1114,4.037,1304,6.582,1916,3.638,2488,6.802,3091,5.791,3110,5.988,4227,4.461,4997,6.483,6895,8.022,6955,9.934,11381,6.561,11382,8.693,11383,8.022,11384,6.054]],["title/interfaces/IDashboardModelProperties.html",[334,0.742,7427,5.437]],["body/interfaces/IDashboardModelProperties.html",[0,0.321,3,0.018,4,0.018,5,0.01,7,0.185,30,0.001,32,0.15,33,0.472,34,2.217,39,2.529,47,0.903,49,2.706,55,2.531,95,0.154,96,2.55,97,2.953,101,0.022,103,0.001,104,0.001,127,0.878,145,1.791,165,0.746,188,3.573,234,1.531,240,3.605,334,1.039,336,1.69,369,2.364,370,2.315,380,2.242,398,2.032,399,4.199,402,3.882,404,1.709,405,1.875,406,3.024,461,3.02,618,4.015,619,3.966,1474,3.906,1910,4.457,2501,7.77,2672,6.703,2674,4.327,2676,7.171,2678,5.15,2680,5.595,2682,3.787,2684,5.029,2688,4.047,2789,3.663,4294,4.183,4926,3.2,6397,4.338,6409,3.891,6737,4.457,7219,7.524,7404,8.99,7405,5.802,7406,9.277,7407,9.277,7415,7.608,7416,6.995,7417,5.802,7418,7.89,7419,5.802,7420,5.802,7421,5.802,7422,5.802,7423,5.802,7424,5.595,7425,5.802,7426,5.802,7427,8.645,7428,8.721,7429,5.802,7430,4.925,7431,5.802,7432,5.802,7433,5.802,7434,5.802,7435,5.802]],["title/interfaces/IDashboardRepo.html",[334,0.742,7600,5.639]],["body/interfaces/IDashboardRepo.html",[0,0.32,3,0.018,4,0.018,5,0.01,7,0.106,8,1.135,9,3.302,26,2.762,27,0.444,29,0.849,30,0.001,31,0.6,32,0.15,33,0.535,34,1.613,35,1.291,36,2.876,39,3.078,49,2.692,95,0.147,96,1.866,97,2.938,99,1.171,101,0.018,103,0.001,104,0.001,105,1.239,112,2.575,187,0.988,206,3.534,214,2.28,216,1.738,217,1.729,221,2.989,227,1.308,234,1.12,334,0.76,336,1.682,380,1.444,461,1.591,661,2.909,722,3.045,877,4.027,1919,2.867,2395,5.374,2435,4.641,3285,4.21,6701,4.72,7219,7.749,7251,8.982,7287,7.146,7416,5.117,7496,7.347,7518,8.215,7577,6.032,7581,5.394,7582,6.378,7583,8.688,7584,8.215,7585,8.688,7587,9.88,7589,9.343,7591,6.378,7593,9.88,7595,6.378,7596,6.378,7597,8.688,7598,6.378,7599,6.032,7600,8.942,7601,5.246,7602,8.688,7603,6.378,7604,8.688,7605,6.378,7606,9.88,7607,6.378,7608,8.688,7609,6.378,7610,6.378,11385,6.905,11386,6.905,11387,6.905]],["title/interfaces/IEncryptionService.html",[334,0.742,9083,4.887]],["body/interfaces/IEncryptionService.html",[3,0.025,4,0.025,5,0.013,7,0.146,8,1.396,27,0.481,29,0.919,30,0.001,31,0.649,32,0.162,33,0.579,35,1.396,47,1.016,101,0.024,103,0.001,104,0.001,163,3.647,217,1.528,334,1.047,336,2.318,8108,7.053,8109,8.314,9083,8.381,11388,9.517,11389,10.104,11390,9.671,11391,10.685,11392,9.517,11393,10.685,11394,9.517,11395,9.517,11396,9.517]],["title/interfaces/IEntity.html",[334,0.742,2494,5.269]],["body/interfaces/IEntity.html",[3,0.025,4,0.025,5,0.013,7,0.146,30,0.001,32,0.162,34,2.222,47,0.905,49,5.049,83,3.475,95,0.148,96,2.566,97,4.039,101,0.024,103,0.001,104,0.001,165,0.913,192,2.83,334,1.37,336,2.313,404,2.092,591,4.06,592,4.188,844,5.236,1278,7.007,2494,10.118,6400,5.789,10657,6.608,11397,8.294,11398,7.938]],["title/interfaces/IEntityWithSchool.html",[334,0.742,6400,4.113]],["body/interfaces/IEntityWithSchool.html",[3,0.025,4,0.025,5,0.014,7,0.148,30,0.001,32,0.135,34,1.648,47,0.699,49,4.535,83,3.5,95,0.149,96,2.596,97,4.088,101,0.024,103,0.001,104,0.001,165,0.919,192,3.877,334,1.377,336,2.34,404,2.266,591,4.108,592,4.238,844,5.895,1278,5.198,2494,10.159,6400,7.094,10657,6.687,11397,8.393,11398,8.033]],["title/interfaces/IEntityWithTimestamps.html",[334,0.742,11398,5.639]],["body/interfaces/IEntityWithTimestamps.html",[3,0.025,4,0.025,5,0.013,7,0.145,30,0.001,32,0.162,34,1.621,47,0.687,49,4.49,83,4.056,95,0.148,96,2.554,97,4.02,101,0.024,103,0.001,104,0.001,165,0.91,192,2.817,334,1.367,336,2.302,404,2.25,591,5.529,592,5.704,844,5.221,1278,5.112,2494,10.102,6400,5.762,10657,6.577,11397,8.255,11398,9.629]],["title/interfaces/IError.html",[334,0.742,8203,5.437]],["body/interfaces/IError.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.166,33,0.591,55,2.781,101,0.023,103,0.001,104,0.001,165,0.933,204,4.337,334,1.299,336,2.397,404,2.138,564,4.865,692,3.667,1327,5.295,7907,8.801,8203,10.193,10185,7.689,11399,9.092,11400,9.092]],["title/interfaces/IErrorType.html",[334,0.742,3875,5.892]],["body/interfaces/IErrorType.html",[3,0.026,4,0.026,5,0.014,7,0.153,30,0.001,32,0.193,47,1.017,101,0.019,103,0.001,104,0.001,165,0.937,216,2.345,334,1.091,336,2.415,1474,4.461,1493,8.325,3875,10.357,11401,9.915,11402,9.915]],["title/interfaces/IExternalToolPseudonymEntityProps.html",[334,0.742,8717,5.639]],["body/interfaces/IExternalToolPseudonymEntityProps.html",[0,0.28,3,0.022,4,0.022,5,0.012,7,0.127,26,2.568,30,0.001,32,0.173,33,0.529,34,2.111,39,3.491,47,0.895,49,5.283,95,0.158,96,2.855,97,3.502,99,1.396,101,0.02,103,0.001,104,0.001,165,0.922,167,3.142,200,2.682,209,3.637,240,3.856,334,0.906,336,2.005,380,2.209,394,6.667,398,2.41,399,4.136,402,3.386,404,1.491,405,2.224,406,2.638,415,4.492,416,5.286,618,3.502,619,6.037,4294,4.961,8568,7.677,8709,6.882,8710,7.605,8711,7.605,8712,8.293,8717,9.754,8718,6.255,8719,6.882,8720,6.882,8721,6.101,8722,6.431]],["title/interfaces/IFederalStateProperties.html",[334,0.742,6350,5.639]],["body/interfaces/IFederalStateProperties.html",[0,0.342,3,0.02,4,0.02,5,0.011,7,0.117,30,0.001,31,0.716,32,0.179,33,0.503,47,1.005,55,1.677,83,3.838,95,0.129,96,2.06,101,0.021,103,0.001,104,0.001,165,0.794,240,3.744,334,0.839,336,1.857,369,2.215,370,3.75,371,2.769,380,2.101,398,2.232,399,3.935,400,3.345,402,3.136,404,1.381,405,2.06,406,2.443,591,5.111,592,5.272,620,4.896,621,5.793,622,4.896,623,5.793,1925,3.962,2136,4.022,2618,5.145,4293,5.437,4303,3.345,5640,7.03,5656,4.967,6340,10.875,6341,6.66,6342,6.66,6343,6.66,6344,6.66,6345,6.66,6350,9.4,6351,10.852,6352,10.852,6353,6.66,6354,6.66,6355,6.66,6356,6.66,6357,6.66,6358,6.66,6359,4.649,6360,6.66,6361,6.66,6362,5.956]],["title/interfaces/IFileDO.html",[334,0.742,10189,5.125]],["body/interfaces/IFileDO.html",[3,0.019,4,0.025,5,0.01,7,0.108,10,2.822,26,2.595,30,0.001,31,0.677,32,0.184,33,0.474,34,2.07,39,1.873,47,1.006,55,2.367,83,3.238,95,0.122,99,1.185,101,0.025,103,0.001,104,0.001,165,0.749,188,2.646,192,2.083,204,3.252,217,0.923,334,1.27,336,1.702,461,1.61,538,3.133,1015,6.411,1031,3.449,1366,6.373,1565,6.411,2171,3.003,2172,3.342,2173,3.223,2563,4.368,2691,3.066,2701,3.223,2744,3.116,2881,3.186,3091,3.186,3144,3.749,3305,5.318,3320,4.777,3542,5.55,3574,5.882,3684,3.918,3898,3.813,4227,2.406,4982,3.918,4994,3.994,6067,4.622,6083,6.642,6085,7.519,6109,8.554,6110,6.411,6111,6.002,6112,7.519,6424,4.075,9714,6.87,9715,6.87,9716,6.87,9717,4.368,10174,5.179,10187,5.459,10188,5.31,10189,7.205,10286,5.459,10289,8.407,11359,5.843,11360,5.843,11361,5.843,11362,5.843,11363,5.843,11364,5.843]],["title/interfaces/IFileDomainObjectProps.html",[334,0.742,9488,5.639]],["body/interfaces/IFileDomainObjectProps.html",[3,0.025,4,0.025,5,0.013,7,0.145,26,2.847,30,0.001,31,0.726,32,0.181,34,2.218,47,0.903,95,0.148,99,1.603,101,0.018,103,0.001,104,0.001,165,0.91,334,1.04,336,2.302,359,3.276,2485,4.082,3543,4.638,3574,6.305,6064,4.333,6083,7.119,6111,6.434,8206,6.577,9488,9.629,11366,8.729,11403,8.729]],["title/interfaces/IFileRecordParams.html",[334,0.742,10289,5.269]],["body/interfaces/IFileRecordParams.html",[3,0.02,4,0.027,5,0.011,7,0.116,10,3.055,26,2.809,30,0.001,31,0.561,32,0.157,34,1.715,39,2.028,47,0.944,55,1.664,83,2.276,95,0.128,99,1.283,101,0.025,103,0.001,104,0.001,165,0.79,188,2.865,192,2.256,204,3.43,217,0.999,334,1.312,336,1.843,461,1.743,538,3.392,1015,4.203,1031,3.589,1366,6.721,1565,4.203,2171,3.252,2172,3.618,2173,3.489,2563,4.73,2691,3.32,2701,3.489,2744,3.373,2881,3.449,3091,3.449,3144,4.059,3305,5.535,3320,5.172,3542,5.777,3574,6.042,3684,4.242,3898,4.129,4227,4.102,4982,4.242,4994,4.324,6067,5.005,6083,6.822,6085,6.515,6109,5.608,6110,4.203,6111,6.165,6112,4.93,6424,4.413,9714,7.246,9715,7.246,9716,7.246,9717,4.73,10174,5.608,10187,5.911,10188,5.749,10189,5.749,10286,5.911,10289,9.309,11359,6.326,11360,6.326,11361,6.326,11362,6.326,11363,6.326,11364,6.326]],["title/interfaces/IFileRecordProperties.html",[334,0.742,9732,5.125]],["body/interfaces/IFileRecordProperties.html",[0,0.247,3,0.01,4,0.01,5,0.008,7,0.157,26,2.681,30,0.001,31,0.616,32,0.158,33,0.416,34,0.993,39,0.966,47,0.898,49,3.551,55,1.829,83,3.199,95,0.131,96,1.565,97,1.533,99,0.611,101,0.02,103,0,104,0,116,3.998,145,2.639,148,2.572,165,0.574,187,0.516,188,1.364,192,1.726,204,2.49,217,1.52,227,1.356,234,1.866,240,3.731,247,1.429,305,1.037,334,0.799,336,0.878,347,1.982,359,2.008,369,1.833,370,2.422,371,0.993,380,1.905,398,1.055,399,2.267,402,1.482,404,0.653,405,1.565,406,1.155,461,0.83,564,2.694,574,1.633,591,1.541,592,1.589,701,2.536,770,2.124,775,4.427,905,1.496,938,2.611,946,2.348,1015,5.68,1031,3.277,1291,1.533,1296,2.557,1366,3.892,1436,4.031,1565,5.68,1828,2.582,1919,2.405,2078,2.101,2079,4.031,2136,3.328,2309,2.02,2478,2.059,2618,2.965,2674,3.813,2685,2.059,2691,1.581,2701,1.662,2881,1.643,3091,1.643,3144,1.933,3305,1.78,3320,2.463,3331,2.02,3574,5.49,3684,2.02,3853,2.611,4227,3.876,4237,2.815,4239,2.252,4293,3.133,4303,1.581,4304,2.124,4982,2.02,4994,2.059,5999,2.508,6064,1.652,6082,4.327,6083,5.356,6084,4.11,6085,5.418,6092,2.508,6100,2.557,6102,2.383,6104,5.261,6110,5.404,6111,5.603,6112,5.935,6400,2.197,6424,2.101,6616,2.815,6617,4.292,6727,1.933,9493,2.671,9558,2.738,9561,4.11,9565,2.611,9599,2.508,9609,2.738,9613,2.738,9639,4.4,9642,2.611,9643,2.611,9648,2.738,9649,2.738,9689,2.905,9690,2.815,9691,4.524,9692,2.905,9693,4.524,9695,8.244,9707,6.163,9710,2.905,9711,2.815,9712,4.4,9713,2.611,9714,4.196,9715,4.196,9716,4.196,9717,2.252,9718,4.668,9719,4.668,9720,4.668,9721,4.668,9722,4.668,9723,4.668,9724,4.524,9725,5.589,9726,4.668,9727,2.738,9728,4.292,9729,2.671,9730,4.4,9731,2.738,9732,5.517,9733,5.672,9734,2.508,9735,2.815,9736,2.611,9737,2.611,9738,2.905,9739,2.905,9740,2.738,9741,2.738,9742,2.738,9743,2.905,9744,2.905,9745,2.905,9746,2.905,9747,2.905,9748,2.905,9749,2.905,9750,2.905,9751,2.905,9752,2.905,9753,7.843,9754,2.905,9755,2.905,9756,4.668,9757,2.905,9758,2.905,9759,4.668,9760,4.668,9761,4.668,9762,2.905,9763,2.815,9764,2.815,9765,2.905,9766,2.905,9767,2.905,9768,2.905,9769,4.668,9770,5.853,9771,2.815,9772,2.905,9773,4.668,9774,2.815,9775,2.905,9776,4.668,9777,2.905,9778,5.853,9779,5.853,9780,2.815,9781,2.905,9782,2.905,9783,2.905,9784,2.905,9785,2.905,9786,2.905,9787,2.815,9788,2.905,9789,2.905,9790,2.905,9791,2.905,9792,2.905]],["title/interfaces/IFileRecordSecurityCheckProperties.html",[334,0.742,9724,5.269]],["body/interfaces/IFileRecordSecurityCheckProperties.html",[0,0.253,3,0.01,4,0.01,5,0.008,7,0.16,26,2.507,30,0.001,31,0.555,32,0.119,33,0.495,34,1.023,39,1.002,47,0.905,49,3.617,55,1.311,83,2.975,95,0.133,96,1.611,97,1.59,99,0.634,101,0.02,103,0,104,0,116,4.029,145,2.677,148,2.627,165,0.588,187,0.535,188,1.415,192,1.778,204,2.552,217,1.536,227,1.364,234,1.886,240,3.766,247,1.482,305,1.075,334,0.819,336,0.91,347,2.015,359,2.067,369,1.872,370,2.482,371,1.03,380,1.94,398,1.094,399,2.335,402,1.537,404,0.677,405,1.611,406,1.198,461,0.861,564,3.669,574,1.694,591,1.598,592,1.648,701,2.598,770,2.203,775,4.537,905,1.552,938,2.708,946,2.435,1015,4.717,1031,3.325,1291,1.59,1296,2.652,1366,4.008,1436,6.458,1565,4.717,1828,2.658,1919,2.476,2078,2.179,2079,4.15,2136,3.398,2309,2.095,2478,2.136,2618,3.052,2674,3.893,2685,2.136,2691,1.64,2701,1.723,2881,1.704,3091,1.704,3144,2.005,3305,1.847,3320,2.555,3331,2.095,3574,5.059,3684,2.095,3853,2.708,4227,3.572,4237,2.919,4239,2.336,4293,3.226,4303,1.64,4304,2.203,4982,2.095,4994,2.136,5999,2.601,6064,1.713,6082,4.433,6083,4.674,6084,4.231,6085,6.443,6092,2.601,6100,2.652,6102,2.472,6104,5.39,6110,4.132,6111,5.163,6112,3.885,6400,2.279,6424,2.179,6616,2.919,6617,4.419,6727,2.005,9493,2.77,9558,2.84,9561,4.231,9565,2.708,9599,2.601,9609,2.84,9613,2.84,9639,4.531,9642,2.708,9643,2.708,9648,2.84,9649,2.84,9689,3.013,9690,2.919,9691,4.658,9692,3.013,9693,4.658,9695,6.845,9707,6.293,9710,3.013,9711,2.919,9712,4.531,9713,2.708,9714,4.32,9715,4.32,9716,4.32,9717,2.336,9718,4.807,9719,4.807,9720,4.807,9721,4.807,9722,4.807,9723,4.807,9724,5.812,9725,6.975,9726,4.807,9727,2.84,9728,4.419,9729,2.77,9730,4.531,9731,2.84,9732,4.531,9733,5.812,9734,2.601,9735,2.919,9736,2.708,9737,2.708,9738,3.013,9739,3.013,9740,2.84,9741,2.84,9742,2.84,9743,3.013,9744,3.013,9745,3.013,9746,3.013,9747,3.013,9748,3.013,9749,3.013,9750,3.013,9751,3.013,9752,3.013,9753,7.972,9754,3.013,9755,3.013,9756,4.807,9757,3.013,9758,3.013,9759,4.807,9760,4.807,9761,4.807,9762,3.013,9763,2.919,9764,2.919,9765,3.013,9766,3.013,9767,3.013,9768,3.013,9769,4.807,9770,5.997,9771,2.919,9772,3.013,9773,4.807,9774,2.919,9775,3.013,9776,4.807,9777,3.013,9778,5.997,9779,5.997,9780,2.919,9781,3.013,9782,3.013,9783,3.013,9784,3.013,9785,3.013,9786,3.013,9787,2.919,9788,3.013,9789,3.013,9790,3.013,9791,3.013,9792,3.013]],["title/interfaces/IFileRequestInfo.html",[334,0.742,6177,5.269]],["body/interfaces/IFileRequestInfo.html",[3,0.026,4,0.026,5,0.014,7,0.149,26,2.861,30,0.001,32,0.176,95,0.15,99,1.641,101,0.018,103,0.001,104,0.001,165,0.923,334,1.065,336,2.357,367,4.657,3543,4.749,3574,6.356,4227,4.487,6064,4.437,6083,7.176,6111,6.486,6177,9.128,8206,6.736,11367,8.453,11403,8.939]],["title/interfaces/IFileStorageConfig.html",[334,0.742,11404,6.23]],["body/interfaces/IFileStorageConfig.html",[3,0.022,4,0.022,5,0.012,7,0.128,30,0.001,32,0.149,47,0.95,55,3.01,95,0.151,101,0.024,103,0.001,104,0.001,154,3.799,165,0.841,217,1.633,334,0.917,336,2.03,404,1.928,1445,6.333,2171,3.582,2172,3.986,2173,3.843,2174,5.279,2186,5.279,2508,5.352,3544,3.461,6064,3.821,6163,7.762,6164,6.511,6165,5.801,6166,5.801,6167,5.801,6168,5.801,9918,6.177,10092,5.801,11368,9.811,11404,10.84,11405,8.334,11406,12.778,11407,12.778,11408,10.84,11409,10.649,11410,7.281,11411,8.334,11412,6.968,11413,7.699,11414,8.334,11415,8.334,11416,7.281,11417,7.699,11418,7.281,11419,7.699,11420,8.334,11421,5.697,11422,8.334,11423,8.334,11424,8.334,11425,8.334,11426,8.334,11427,8.334]],["title/interfaces/IFilesStorageClientConfig.html",[334,0.742,10294,5.639]],["body/interfaces/IFilesStorageClientConfig.html",[3,0.027,4,0.027,5,0.015,7,0.159,30,0.001,32,0.145,55,2.84,101,0.02,103,0.001,104,0.001,165,0.961,334,1.139,336,2.521,3543,5.969,3544,4.297,6064,4.745,10294,10.167,11092,7.203,11412,11.143,11428,10.349]],["title/interfaces/IFindOptions.html",[334,0.742,6775,4.163]],["body/interfaces/IFindOptions.html",[3,0.025,4,0.025,5,0.013,7,0.146,30,0.001,32,0.175,33,0.649,55,2.544,56,4.58,70,4.768,101,0.025,103,0.001,104,0.001,165,0.914,334,1.273,336,2.318,696,4.908,1031,3.05,2185,7.336,3618,9.671,6487,7.905,6775,7.139,6844,6.2,8783,10.126,8927,10.126,10057,9.324,11429,8.791,11430,8.791]],["title/interfaces/IGridElement.html",[334,0.742,7284,5.639]],["body/interfaces/IGridElement.html",[0,0.191,3,0.009,4,0.009,5,0.005,7,0.137,8,0.676,26,2.372,27,0.418,29,0.645,30,0.001,31,0.456,32,0.16,33,0.406,34,1.639,35,1.214,39,1.502,47,0.88,55,2.693,83,1.041,95,0.091,101,0.02,103,0,104,0,111,2.318,144,1.532,145,2.096,148,3.699,165,0.443,187,0.495,214,1.143,217,1.737,227,1.388,234,1.699,247,3.222,305,2.032,334,0.381,336,0.843,347,1.946,405,0.935,415,3.059,416,2.222,595,1.196,618,3.797,619,3.203,627,2.529,687,3.768,905,2.934,1041,1.922,1277,4.602,1382,5.014,1474,3.414,1758,5.368,1773,3.6,1828,3.621,1932,4.158,2381,2.704,2586,1.827,2594,4.904,2672,6.95,2685,1.978,2686,1.841,2728,2.63,2789,4.287,2809,4.71,3224,2.565,3331,3.143,3400,2.409,3573,3.652,3667,7.461,3715,3.504,4821,2.136,6258,2.893,6365,2.366,6401,9.45,6402,4.155,6471,3.902,6701,5.553,7228,5.654,7251,2.508,7252,3.023,7254,3.023,7257,3.023,7258,2.893,7259,7.986,7261,2.79,7268,4.897,7274,3.023,7278,3.023,7281,3.023,7282,7.986,7284,9.295,7287,6.172,7289,3.023,7290,7.461,7293,3.023,7295,3.023,7297,3.023,7299,3.023,7301,3.023,7303,3.023,7306,3.023,7308,4.897,7309,2.565,7310,7.796,7311,7.096,7312,4.897,7313,7.796,7314,6.172,7315,4.897,7316,7.796,7317,4.897,7318,6.172,7319,3.023,7320,4.259,7321,9.056,7322,3.023,7323,4.897,7324,3.023,7325,4.897,7326,3.023,7327,4.897,7328,3.023,7329,3.023,7330,3.023,7331,3.023,7332,3.023,7333,4.897,7334,3.023,7335,4.897,7336,2.893,7337,4.897,7338,3.023,7339,2.409,7340,4.897,7341,3.023,7342,3.023,7343,3.023,7344,4.897,7345,2.79,7346,3.023,7347,4.897,7348,3.023,7349,2.63,7350,3.023,7351,3.023,7352,3.023,7353,3.023,7354,3.023,7355,3.023,7356,3.023,7357,3.023,7358,3.023,7359,4.897,7360,4.897,7361,2.893,7362,6.172,7363,3.023,7364,4.897,7365,3.023,7366,3.023,7367,3.023,7368,3.023,7369,3.023,7370,3.023,7371,3.023,7372,3.023,7373,3.023,7374,3.023,7375,3.023,7376,3.023,7377,3.023,7378,3.023,7379,3.023,7380,3.023,7381,3.023,7382,3.023,7383,3.023,7384,3.023,7385,3.023,7386,3.023,7387,3.023,7388,4.897,7389,3.023,7390,3.023,7391,3.023,7392,4.897,7393,4.897,7394,3.023,7395,3.023,7396,3.023,7397,3.023,7398,3.023,7399,3.023,7400,3.023,7401,6.172,7402,3.023,7403,3.023,10549,5.178,10554,5.178,10555,5.178,10556,5.178,10563,3.197,11431,3.461,11432,3.461,11433,3.461,11434,3.461,11435,3.461,11436,3.461,11437,3.461]],["title/interfaces/IIdentityManagementConfig.html",[334,0.742,11438,5.639]],["body/interfaces/IIdentityManagementConfig.html",[3,0.026,4,0.026,5,0.014,7,0.153,30,0.001,32,0.178,101,0.019,103,0.001,104,0.001,165,0.94,334,1.097,336,2.427,347,2.852,11438,9.942,11439,5.694,11440,7.784,11441,9.965,11442,12.161,11443,12.161,11444,12.161]],["title/interfaces/IImportUserProperties.html",[334,0.742,11445,5.639]],["body/interfaces/IImportUserProperties.html",[0,0.161,3,0.013,4,0.013,5,0.007,7,0.073,30,0.001,31,0.402,32,0.183,33,0.609,47,0.991,49,1.846,95,0.14,96,1.28,101,0.018,103,0,104,0,111,0.947,145,1.85,165,0.861,167,2.736,192,3.559,200,1.543,214,1.563,217,1.142,227,0.756,234,0.768,240,3.653,247,3.431,305,1.362,334,0.789,336,1.153,347,1.965,355,2.819,369,2.571,370,2.391,371,1.305,380,1.499,394,5.922,398,1.386,399,2.807,400,2.078,402,1.948,404,0.858,405,1.28,406,1.517,444,1.815,461,2.951,472,3.183,575,2.822,577,4.849,701,1.654,728,1.854,844,4.697,851,5.086,852,5.086,853,5.754,854,5.501,905,1.966,1031,3.091,1114,4.937,1277,2.442,1871,5.339,1919,1.966,2298,2.854,2324,4.137,2501,6.267,2502,3.959,2672,4.481,2674,4.751,2676,5.447,2684,3.431,2752,4.137,2951,2.822,3110,2.294,4227,1.63,4232,6.815,4315,3.699,4316,3.51,4331,5.087,4538,2.68,4926,3.989,5868,3.431,6400,4.371,6407,2.923,6409,2.655,6429,2.96,6737,3.041,6744,2.822,6745,2.923,7339,3.296,7430,5.087,8317,3.51,8318,3.699,9336,3.183,9337,3.431,9338,3.183,9339,3.431,9340,3.598,9341,3.817,9980,3.598,10330,7.213,10331,5.913,10349,4.989,10350,3.36,10351,2.854,10359,3.959,10736,3.959,10740,3.51,11445,7.232,11446,4.374,11447,7.874,11448,8.861,11449,6.751,11450,8.789,11451,8.095,11452,3.699,11453,3.598,11454,3.598,11455,4.137,11456,4.137,11457,4.374,11458,3.959,11459,3.36,11460,4.374,11461,4.374,11462,4.374,11463,4.374,11464,4.374,11465,4.374,11466,4.374,11467,4.374,11468,5.993,11469,4.374,11470,5.993,11471,3.959,11472,5.778,11473,4.374,11474,4.374,11475,4.374,11476,3.959,11477,3.598,11478,4.374,11479,4.374,11480,4.374,11481,4.374,11482,3.959,11483,3.959,11484,5.447,11485,5.313,11486,6.262,11487,4.374,11488,4.374,11489,4.374,11490,3.817,11491,5.993,11492,4.374]],["title/interfaces/IImportUserScope.html",[334,0.742,11493,5.437]],["body/interfaces/IImportUserScope.html",[2,1.418,3,0.022,4,0.022,5,0.012,7,0.127,30,0.001,31,0.464,32,0.188,33,0.698,47,1.011,95,0.106,101,0.022,103,0.001,104,0.001,165,0.837,334,1.166,336,2.013,347,2.381,472,8.286,496,5.193,577,4.634,851,6.255,852,6.255,1031,2.649,1680,7.241,6409,4.634,7668,4.982,10330,8.581,10331,8.427,10349,7.373,10350,5.866,10351,4.982,11451,9.63,11493,8.539,11494,7.636,11495,10.307,11496,7.636,11497,6.663]],["title/interfaces/IInterceptorConfig.html",[334,0.742,11370,5.639]],["body/interfaces/IInterceptorConfig.html",[3,0.027,4,0.027,5,0.014,7,0.157,30,0.001,32,0.169,55,3.019,101,0.019,103,0.001,104,0.001,165,0.954,334,1.125,336,2.489,11092,7.112,11370,10.091,11410,11.595,11412,11.097,11498,10.218]],["title/interfaces/IJsonAccount.html",[334,0.742,11499,5.892]],["body/interfaces/IJsonAccount.html",[3,0.025,4,0.025,5,0.013,7,0.142,30,0.001,32,0.194,33,0.569,39,3.441,47,1.017,48,6.027,51,6.344,87,6.344,101,0.018,103,0.001,104,0.001,138,5.574,165,0.898,334,1.019,336,2.254,1278,6.946,11439,5.288,11499,9.933,11500,5.712,11501,8.549,11502,9.254,11503,10.504]],["title/interfaces/IJsonUser.html",[334,0.742,11504,5.892]],["body/interfaces/IJsonUser.html",[3,0.025,4,0.025,5,0.014,7,0.148,30,0.001,32,0.19,47,1.017,101,0.018,103,0.001,104,0.001,138,5.051,165,0.919,334,1.057,336,2.34,851,6.383,852,6.383,853,6.609,1278,7.036,11439,5.49,11500,5.93,11501,8.875,11503,8.875,11504,10.163,11505,9.608]],["title/interfaces/IKeycloakConfigurationInputFiles.html",[334,0.742,11506,5.639]],["body/interfaces/IKeycloakConfigurationInputFiles.html",[3,0.027,4,0.027,5,0.014,7,0.154,30,0.001,32,0.167,47,0.993,101,0.023,103,0.001,104,0.001,165,0.941,217,1.319,334,1.099,336,2.433,2171,4.293,2309,5.6,11439,5.709,11500,6.166,11506,9.957,11507,9.989,11508,9.989,11509,12.171,11510,12.171,11511,8.726,11512,9.989]],["title/interfaces/IKeycloakSettings.html",[334,0.742,11513,5.639]],["body/interfaces/IKeycloakSettings.html",[3,0.025,4,0.025,5,0.013,7,0.144,30,0.001,32,0.189,47,1.023,51,4.626,87,5.658,101,0.022,103,0.001,104,0.001,138,4.972,165,0.905,217,1.236,238,6.974,334,1.03,336,2.28,5472,6.533,7853,9.554,11075,6.192,11095,8.178,11439,5.35,11500,5.779,11513,9.574,11514,9.362,11515,10.777,11516,7.827,11517,9.362]],["title/interfaces/ILearnroom.html",[334,0.742,6401,4.887]],["body/interfaces/ILearnroom.html",[3,0.026,4,0.026,5,0.014,7,0.153,30,0.001,32,0.14,95,0.128,101,0.023,103,0.001,104,0.001,148,3.678,165,0.94,334,1.309,336,2.427,687,5.516,2586,5.26,2687,6.311,4825,6.229,4826,6.399,6401,8.616,6402,8.813,6469,11.006,11518,9.205]],["title/interfaces/ILearnroomElement.html",[334,0.742,2687,4.272]],["body/interfaces/ILearnroomElement.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.165,95,0.126,101,0.022,103,0.001,104,0.001,148,3.641,165,0.93,334,1.295,336,2.386,687,6.072,2586,5.17,2687,7.455,4825,8.182,4826,8.406,6401,7.097,6402,8.723,6469,8.189,11518,9.048]],["title/interfaces/ILegacyLogger.html",[334,0.742,11519,5.892]],["body/interfaces/ILegacyLogger.html",[3,0.02,4,0.02,5,0.01,7,0.113,8,1.186,27,0.51,29,0.976,30,0.001,31,0.69,32,0.177,33,0.615,35,1.482,39,1.976,47,1.023,59,3.921,72,4.614,101,0.019,102,4.959,103,0.001,104,0.001,145,1.902,148,4.146,150,2.704,185,2.886,199,5.276,204,3.793,234,1.594,235,4.172,334,0.811,336,1.796,367,3.548,529,3.252,1052,4.006,1062,5.63,1327,4.852,1498,7.122,5400,6.502,8159,6.975,11519,8.587,11520,12.637,11521,7.373,11522,8.587,11523,8.587,11524,9.08,11525,7.373,11526,9.08,11527,10.215,11528,7.373,11529,9.08,11530,10.303,11531,7.373,11532,9.08,11533,7.373,11534,9.08,11535,7.373]],["title/interfaces/ILessonParent.html",[334,0.742,6406,4.461]],["body/interfaces/ILessonParent.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,8,0.845,26,2.247,27,0.191,30,0.001,31,0.393,32,0.119,35,0.554,47,0.96,55,2.248,95,0.155,96,1.24,101,0.024,103,0,104,0,111,1.4,116,1.485,145,1.806,150,3.481,187,0.657,188,3.87,208,1.703,214,1.515,217,1.644,227,1.314,234,1.54,240,3.202,247,1.821,305,2.014,334,1.271,336,1.118,347,1.426,369,1.871,370,1.531,371,1.929,379,1.955,380,1.464,398,1.344,399,2.741,400,2.014,402,1.888,404,0.831,405,1.24,406,1.471,461,1.057,535,3.787,687,2.129,769,4.171,806,1.933,1031,1.471,1062,2.003,1278,2.483,1439,2.195,1474,3.222,1910,2.168,1932,3.583,1984,1.962,2136,1.837,2344,4.451,2674,3.89,2675,2.253,2678,3.82,2682,2.504,2687,4.434,2688,2.677,2689,4.409,2691,3.723,2692,4.376,2701,2.116,2705,4.56,2809,3.695,2880,4.058,3305,4.193,3419,5.238,3438,6.021,3544,1.906,3571,3.195,3572,3.195,4083,4.126,4239,2.869,4303,2.014,4821,2.833,4825,2.869,4826,2.947,4926,2.116,4953,6.38,4965,3.195,4982,2.573,4989,4.321,4994,6.763,5007,3.257,5013,3.257,5018,3.257,5566,7.239,6260,5.613,6263,6.021,6377,2.99,6397,2.869,6404,6.09,6405,3.085,6406,5.613,6408,4.434,6444,6.563,6445,4.705,6460,4.785,6633,2.833,6634,3.036,8265,4.967,10432,4.63,11305,4.872,11306,3.257,11307,5.304,11308,3.325,11309,4.872,11310,6.563,11311,4.967,11312,3.195,11313,4.872,11314,4.872,11315,4.872,11316,3.257,11317,4.872,11318,2.99,11319,4.872,11320,4.967,11321,3.257,11322,3.257,11323,3.325,11324,3.195,11325,3.195,11326,3.325,11327,3.325,11328,3.325,11329,5.072,11330,5.906,11331,3.195,11332,5.072,11333,3.325,11334,3.325,11335,3.325,11336,3.137,11337,3.325,11338,3.325,11339,5.072,11340,3.325,11341,3.325,11342,6.878,11343,6.148,11344,3.257,11345,3.325,11346,3.325,11347,3.325,11348,3.325,11349,3.325,11350,3.325,11351,3.325,11352,3.325,11353,3.325,11354,3.325,11355,3.325,11356,3.137,11357,3.325,11358,3.257,11536,4.59]],["title/interfaces/ILessonProperties.html",[334,0.742,11309,4.694]],["body/interfaces/ILessonProperties.html",[0,0.148,3,0.012,4,0.012,5,0.006,7,0.142,26,2.08,30,0.001,31,0.56,32,0.167,33,0.527,47,0.962,55,2.416,95,0.153,96,1.175,101,0.023,103,0,104,0,111,1.342,116,1.407,145,1.732,150,3.383,165,0.53,187,0.622,188,4.504,208,1.613,214,1.435,217,1.623,227,1.297,234,1.496,240,3.124,247,1.724,305,1.931,334,1.249,336,1.059,347,1.88,369,1.808,370,1.45,371,1.85,379,1.89,380,1.404,398,1.273,399,2.629,400,1.907,402,1.788,404,0.787,405,1.175,406,1.393,461,1.002,535,3.632,687,2.016,769,4.001,806,1.831,1031,1.393,1062,1.897,1278,2.352,1439,2.079,1474,3.131,1910,2.053,1932,3.437,1984,1.859,2136,1.74,2344,4.356,2674,3.761,2675,2.133,2678,3.664,2682,2.372,2687,4.252,2688,2.535,2689,4.263,2691,3.599,2692,4.197,2701,2.004,2705,4.374,2809,5.264,2880,3.923,3305,4.053,3419,6.506,3438,5.821,3544,1.805,3571,3.025,3572,3.025,4083,3.957,4239,2.717,4303,1.907,4821,2.683,4825,2.717,4826,2.791,4926,2.004,4953,7.085,4965,3.025,4982,2.437,4989,4.144,4994,6.656,5007,3.084,5013,3.084,5018,3.084,5566,7.085,6260,5.426,6263,5.821,6377,2.832,6397,2.717,6404,7.089,6405,2.921,6406,4.441,6408,4.252,6444,4.311,6445,4.512,6460,4.59,6633,2.683,6634,2.875,8265,4.764,10432,6.596,11305,4.673,11306,3.084,11307,6.234,11308,3.149,11309,5.71,11310,7.288,11311,4.764,11312,3.025,11313,4.673,11314,4.673,11315,4.673,11316,3.084,11317,4.673,11318,2.832,11319,4.673,11320,4.764,11321,3.084,11322,3.084,11323,3.149,11324,3.025,11325,3.025,11326,3.149,11327,3.149,11328,3.149,11329,4.865,11330,5.71,11331,3.025,11332,4.865,11333,3.149,11334,3.149,11335,3.149,11336,2.971,11337,3.149,11338,3.149,11339,4.865,11340,3.149,11341,3.149,11342,6.685,11343,5.943,11344,3.084,11345,3.149,11346,3.149,11347,3.149,11348,3.149,11349,3.149,11350,3.149,11351,3.149,11352,3.149,11353,3.149,11354,3.149,11355,3.149,11356,2.971,11357,3.149,11358,3.084]],["title/interfaces/ILoggerConfig.html",[334,0.742,11371,5.639]],["body/interfaces/ILoggerConfig.html",[3,0.028,4,0.028,5,0.015,7,0.161,30,0.001,32,0.147,47,0.943,101,0.02,103,0.001,104,0.001,165,0.967,334,1.151,336,2.547,11092,7.278,11371,10.229,11416,11.681,11537,10.456]],["title/interfaces/IMaterialProperties.html",[334,0.742,11538,5.269]],["body/interfaces/IMaterialProperties.html",[0,0.232,3,0.018,4,0.018,5,0.01,7,0.105,30,0.001,32,0.185,33,0.572,47,1.039,95,0.12,96,1.847,101,0.022,103,0.001,104,0.001,150,4.39,165,0.738,240,4.179,334,1.171,336,1.665,379,2.758,380,1.953,398,2.001,399,3.656,400,2.998,404,1.238,405,1.847,406,2.19,460,3.905,1474,4.063,1910,3.228,2789,3.607,3544,4.971,3573,4.452,6090,3.796,6427,4.672,6428,4.672,6992,4.389,11307,4.272,11310,4.389,11318,7.8,11538,8.311,11539,5.714,11540,8.873,11541,9.651,11542,9.651,11543,9.651,11544,9.651,11545,9.651,11546,9.651,11547,5.714,11548,4.952,11549,5.714,11550,5.714,11551,5.509,11552,5.714,11553,5.714,11554,5.714,11555,5.714,11556,5.714,11557,5.714,11558,5.714,11559,5.714,11560,5.714,11561,5.714,11562,5.714,11563,5.714,11564,5.714]],["title/interfaces/IMigrationOptions.html",[334,0.742,11565,5.639]],["body/interfaces/IMigrationOptions.html",[0,0.162,3,0.013,4,0.013,5,0.007,7,0.073,30,0.001,32,0.122,33,0.547,36,2.467,47,0.704,52,3.346,53,3.388,55,2.405,70,5.479,72,3.386,78,8.77,95,0.124,101,0.009,103,0,104,0,111,1.937,112,2.735,127,0.604,145,1.861,165,0.57,204,1.638,216,1.607,217,1.374,221,2.82,227,0.917,234,1.17,247,2.861,264,3.68,305,1.373,329,2.853,334,0.794,336,1.163,347,1.771,368,3.826,371,3.129,379,2.81,403,4.771,432,1.765,461,1.662,529,4.272,575,2.845,627,1.486,701,3.966,768,3.388,773,4.632,798,2.985,803,2.985,905,2.995,907,6.051,1052,1.946,1053,3.199,1236,2.878,1240,4.164,1545,1.525,1717,6.221,1724,4.044,1850,5.815,1991,2.583,2008,3.066,2171,2.052,2188,3.849,2489,2.729,2841,5.843,3091,4.986,3448,4.848,3456,3.388,3457,8.93,3458,6.587,3459,2.845,5391,3.628,5784,7.482,6326,3.849,6896,3.066,6911,3.111,7181,7.567,7652,4.398,7657,6.169,7667,7.567,8159,3.388,9822,5.119,10769,3.849,11421,6.622,11439,2.729,11500,2.947,11565,7.268,11566,4.171,11567,4.171,11568,8.124,11569,6.301,11570,6.605,11571,3.849,11572,3.849,11573,6.301,11574,4.171,11575,4.171,11576,8.695,11577,4.171,11578,4.171,11579,4.171,11580,3.73,11581,3.849,11582,4.171,11583,4.171,11584,4.171,11585,9.085,11586,3.539,11587,4.171,11588,4.171,11589,7.594,11590,3.158,11591,3.46,11592,5.021,11593,3.628,11594,4.171,11595,4.171,11596,4.171,11597,8.462,11598,4.171,11599,8.462,11600,4.171,11601,4.171,11602,8.462,11603,8.462,11604,3.849,11605,4.171,11606,4.171,11607,4.171,11608,3.539,11609,3.992,11610,5.346,11611,4.171,11612,4.171,11613,4.171,11614,4.171,11615,4.171,11616,5.226,11617,3.849,11618,3.849,11619,4.171,11620,4.171,11621,4.171,11622,4.171,11623,4.171,11624,4.171,11625,4.171,11626,4.171,11627,4.171,11628,4.171,11629,4.171,11630,3.849]],["title/interfaces/INameMatch.html",[334,0.742,11497,5.437]],["body/interfaces/INameMatch.html",[2,1.059,3,0.024,4,0.024,5,0.013,7,0.142,30,0.001,31,0.72,32,0.159,33,0.567,47,0.987,95,0.118,101,0.023,103,0.001,104,0.001,165,0.896,334,1.248,336,2.244,347,1.877,472,6.191,496,3.881,577,6.357,851,6.029,852,6.029,1031,2.952,1680,7.751,6409,5.164,7668,6.833,10330,6.412,10331,6.297,10349,7.892,10350,6.537,10351,5.552,11451,8.858,11493,7.426,11494,8.51,11495,9.48,11496,8.51,11497,9.14]],["title/interfaces/INewsProperties.html",[334,0.742,6725,5.269]],["body/interfaces/INewsProperties.html",[0,0.325,3,0.012,4,0.029,5,0.007,7,0.167,9,3.38,26,2.527,30,0.001,31,0.397,32,0.177,33,0.58,34,0.797,47,0.95,83,2.874,95,0.149,96,2.311,101,0.02,103,0,104,0,165,0.812,188,2.676,192,3.456,208,1.725,227,0.49,234,1.387,240,3.525,334,0.512,336,1.132,369,2.386,370,3.611,380,2.149,398,1.361,399,2.767,400,2.039,404,1.73,405,2.582,406,1.489,461,2.736,571,5.346,574,3.876,595,1.606,617,4.936,627,1.447,672,4.346,731,3.363,769,5.693,843,2.028,844,5.256,854,5.186,1031,2.265,1298,4.039,1299,4.458,1300,3.99,1301,4.225,1302,4.626,1474,3.674,1492,4.259,1910,3.338,1916,2.251,1932,3.618,1991,2.515,2344,4.473,2572,2.985,2620,4.987,2674,3.921,2688,2.711,2744,5.632,2789,2.453,3394,3.177,3396,2.985,3397,3.074,3399,3.298,3400,3.235,3401,3.445,3415,2.985,3547,3.124,3573,3.028,4227,1.6,4319,3.532,4320,3.368,4926,3.944,4996,3.445,5011,3.298,5554,7.843,6110,2.582,6329,3.235,6407,2.869,6409,2.606,6430,2.801,6633,2.869,6717,3.445,6718,3.747,6720,4.362,6721,3.747,6722,7.618,6723,5.492,6724,3.747,6725,8.789,6726,6.798,6727,5.807,6728,7.081,6729,7.618,6730,6.312,6731,7.288,6732,3.747,6733,5.015,6734,3.747,6735,3.532,6736,3.532,6737,4.539,6738,3.747,6739,3.747,6740,3.532,6741,3.747,6742,3.445,6743,3.747,6744,2.77,6745,2.869,6746,3.532,6747,3.747,6748,3.747,6749,6.68,6750,3.747,6751,6.894,6752,3.747,6753,3.747,6754,5.37,6755,3.532,6756,5.952,6757,3.631,6758,4.605,6759,3.532,6760,3.368,6761,3.532,6762,3.747]],["title/interfaces/INewsScope.html",[334,0.742,11380,5.437]],["body/interfaces/INewsScope.html",[3,0.021,4,0.021,5,0.011,7,0.124,26,2.41,30,0.001,32,0.189,33,0.648,34,1.384,47,0.758,83,2.427,95,0.157,101,0.024,103,0.001,104,0.001,138,4.527,165,0.824,188,4.375,192,2.405,334,1.426,336,1.965,347,2.354,379,1.859,380,1.687,696,4.16,844,4.727,1031,2.585,1474,2.738,2344,3.334,2423,4.919,2744,5.639,3606,9.109,4499,4.919,6424,4.705,6720,6.437,6722,5.979,6723,7.42,6726,5.336,6730,6.081,6731,7.332,6902,8.502,9717,5.043,10356,9.847,11372,6.503,11373,7.452,11374,7.452,11375,7.452,11376,7.452,11377,7.452,11378,5.256,11379,6.745,11380,8.406]],["title/interfaces/IPagination.html",[334,0.742,8783,5.269]],["body/interfaces/IPagination.html",[3,0.025,4,0.025,5,0.013,7,0.146,30,0.001,32,0.175,33,0.649,55,2.97,56,6.239,70,6.494,101,0.025,103,0.001,104,0.001,165,0.914,334,1.273,336,2.318,696,4.908,1031,3.05,2185,5.386,3618,9.671,6487,5.803,6775,5.874,6844,6.2,8783,9.735,8927,9.036,10057,9.324,11429,8.791,11430,8.791]],["title/interfaces/IParentInfo.html",[334,0.742,9733,5.269]],["body/interfaces/IParentInfo.html",[0,0.254,3,0.01,4,0.01,5,0.008,7,0.16,26,2.624,30,0.001,31,0.557,32,0.12,34,1.027,39,1.007,47,0.862,49,3.627,55,1.317,83,2.982,95,0.133,96,1.618,97,1.599,99,0.637,101,0.02,103,0,104,0,116,4.034,145,2.683,148,2.635,165,0.59,187,0.538,188,1.423,192,1.785,204,2.561,217,1.538,227,1.366,234,1.889,240,3.771,247,1.491,305,1.081,334,0.822,336,0.915,347,2.02,359,2.077,369,1.878,370,2.491,371,1.036,380,1.945,398,1.1,399,2.345,402,1.546,404,0.681,405,1.618,406,1.204,461,0.866,564,2.771,574,1.704,591,1.607,592,1.658,701,2.608,770,2.215,775,4.553,905,1.56,938,2.723,946,2.448,1015,4.732,1031,3.333,1291,1.599,1296,2.667,1366,4.026,1436,4.169,1565,4.732,1828,2.67,1919,2.487,2078,2.192,2079,4.169,2136,3.409,2309,2.107,2478,2.148,2618,3.066,2674,3.905,2685,2.148,2691,1.649,2701,1.733,2881,1.713,3091,1.713,3144,2.016,3305,1.857,3320,2.569,3331,2.107,3574,5.562,3684,2.107,3853,2.723,4227,3.927,4237,2.936,4239,2.349,4293,3.24,4303,1.649,4304,2.215,4982,2.107,4994,2.148,5999,2.616,6064,1.723,6082,4.45,6083,5.457,6084,4.25,6085,5.55,6092,2.616,6100,2.667,6102,2.486,6104,5.41,6110,4.148,6111,5.676,6112,3.902,6400,2.292,6424,2.192,6616,2.936,6617,4.439,6727,2.016,9493,2.785,9558,2.856,9561,4.25,9565,2.723,9599,2.616,9609,2.856,9613,2.856,9639,4.551,9642,2.723,9643,2.723,9648,2.856,9649,2.856,9689,3.029,9690,2.936,9691,4.679,9692,3.029,9693,4.679,9695,6.867,9707,6.313,9710,3.029,9711,2.936,9712,4.551,9713,2.723,9714,4.34,9715,4.34,9716,4.34,9717,2.349,9718,4.828,9719,4.828,9720,4.828,9721,4.828,9722,4.828,9723,4.828,9724,4.679,9725,5.725,9726,4.828,9727,2.856,9728,4.439,9729,2.785,9730,4.551,9731,2.856,9732,4.551,9733,6.654,9734,2.616,9735,2.936,9736,2.723,9737,2.723,9738,3.029,9739,3.029,9740,2.856,9741,2.856,9742,2.856,9743,3.029,9744,3.029,9745,3.029,9746,3.029,9747,3.029,9748,3.029,9749,3.029,9750,3.029,9751,3.029,9752,3.029,9753,7.991,9754,3.029,9755,3.029,9756,4.828,9757,3.029,9758,3.029,9759,4.828,9760,4.828,9761,4.828,9762,3.029,9763,2.936,9764,2.936,9765,3.029,9766,3.029,9767,3.029,9768,3.029,9769,4.828,9770,6.019,9771,2.936,9772,3.029,9773,4.828,9774,2.936,9775,3.029,9776,4.828,9777,3.029,9778,6.019,9779,6.019,9780,2.936,9781,3.029,9782,3.029,9783,3.029,9784,3.029,9785,3.029,9786,3.029,9787,2.936,9788,3.029,9789,3.029,9790,3.029,9791,3.029,9792,3.029]],["title/interfaces/IRelatedResourceProperties.html",[334,0.742,11545,5.437]],["body/interfaces/IRelatedResourceProperties.html",[0,0.257,3,0.02,4,0.02,5,0.011,7,0.116,30,0.001,32,0.14,33,0.596,47,1.033,95,0.128,96,2.041,101,0.023,103,0.001,104,0.001,150,3.663,165,0.789,240,4.251,334,1.232,336,1.84,379,2.301,380,2.088,398,2.211,399,3.91,400,3.313,404,1.368,405,2.041,406,2.42,460,4.316,1474,3.39,1910,3.567,2789,3.986,3544,4.147,3573,4.92,6090,4.195,6427,5.163,6428,5.163,6992,4.85,11307,4.721,11310,4.85,11318,6.507,11538,7.802,11539,6.314,11540,7.403,11541,8.051,11542,8.051,11543,8.051,11544,8.051,11545,9.599,11546,9.021,11547,6.314,11548,5.472,11549,9.956,11550,9.956,11551,6.088,11552,6.314,11553,6.314,11554,6.314,11555,6.314,11556,6.314,11557,6.314,11558,6.314,11559,6.314,11560,6.314,11561,6.314,11562,6.314,11563,6.314,11564,6.314]],["title/interfaces/IRepoLoader.html",[334,0.742,11631,5.892]],["body/interfaces/IRepoLoader.html",[0,0.207,3,0.016,4,0.016,5,0.009,7,0.094,26,2.089,30,0.001,32,0.141,33,0.432,36,1.875,49,2.378,95,0.157,99,1.034,101,0.012,103,0.001,104,0.001,105,1.137,111,2.658,112,1.935,127,0.772,165,0.682,187,0.873,200,1.987,208,2.263,216,2.414,217,1.322,221,2.359,227,1.057,234,1.399,305,1.754,334,0.671,336,1.486,347,2.04,359,3.982,369,2.4,441,6.638,450,2.509,461,2.307,1632,6.969,1854,5.032,1939,4.98,1940,3.863,1956,8.504,1958,6.638,1962,6.99,1964,4.916,1966,8.068,1968,8.271,1970,7.577,1973,7.316,2027,6.523,2029,5.328,2092,3.452,2475,5.099,2570,7.422,3115,7.255,3218,4.034,3331,4.837,3397,4.034,4628,7.888,5283,5.099,5627,8.775,5704,4.764,5985,4.099,6539,4.634,11631,9.509,11632,5.634,11633,10.056,11634,5.634,11635,4.634,11636,4.916,11637,5.634,11638,5.634,11639,5.634,11640,5.634,11641,5.634,11642,5.634,11643,5.634,11644,5.634,11645,5.634,11646,5.634,11647,5.634,11648,5.634,11649,5.634,11650,5.634,11651,5.634,11652,5.634,11653,5.634,11654,5.634,11655,5.634,11656,5.634,11657,5.634,11658,5.634,11659,5.634,11660,5.634,11661,5.634,11662,5.634,11663,5.634,11664,5.634,11665,5.634,11666,5.634,11667,5.634,11668,7.971]],["title/interfaces/IResolvedUser.html",[334,0.742,11384,5.437]],["body/interfaces/IResolvedUser.html",[3,0.021,4,0.021,5,0.011,7,0.12,26,2.796,30,0.001,31,0.436,32,0.186,34,2.242,39,2.083,47,1.018,48,3.648,83,3.858,85,4.858,94,3.693,95,0.1,99,1.318,101,0.022,103,0.001,104,0.001,165,0.804,200,2.532,334,1.249,336,1.893,347,1.583,355,3.056,369,2.244,461,2.345,491,3.814,496,3.274,522,5.905,575,4.631,591,5.149,592,5.311,770,4.58,851,5.91,852,5.91,1110,4.99,1114,3.152,1304,5.14,1916,5.833,2488,5.312,3091,5.174,3110,6.055,4227,4.415,4997,5.063,6895,6.264,6955,6.497,11381,6.789,11382,6.789,11383,9.707,11384,8.204]],["title/interfaces/IRetryOptions.html",[334,0.742,11576,5.639]],["body/interfaces/IRetryOptions.html",[0,0.164,3,0.013,4,0.013,5,0.007,7,0.074,30,0.001,32,0.102,33,0.487,36,2.476,47,0.529,52,3.373,53,3.425,55,2.579,70,4.383,72,3.414,78,8.788,95,0.125,101,0.009,103,0,104,0,111,1.947,112,2.742,127,0.611,145,1.876,165,0.575,204,1.655,216,1.617,217,1.38,221,2.828,227,0.923,234,1.179,247,2.884,264,3.704,305,1.388,329,2.869,334,0.8,336,1.176,347,0.983,368,3.846,371,3.141,379,2.818,403,4.81,432,1.784,461,1.676,529,2.129,575,2.876,627,1.502,701,3.98,768,3.425,773,4.67,798,3.017,803,3.017,905,3.019,907,6.09,1052,1.967,1053,3.225,1236,2.909,1240,4.197,1545,1.541,1717,6.254,1724,4.077,1850,5.862,1991,2.611,2008,3.099,2171,2.074,2188,3.89,2489,2.758,2841,5.881,3091,5.006,3448,4.888,3456,3.425,3457,8.948,3458,6.618,3459,2.876,5391,3.667,5784,7.497,6326,3.89,6896,3.099,6911,3.144,7181,7.608,7652,4.434,7657,6.209,7667,7.608,8159,3.425,9822,5.16,10769,3.89,11421,6.658,11439,2.758,11500,2.979,11565,6.08,11566,4.216,11567,4.216,11568,5.681,11569,6.352,11570,6.648,11571,3.89,11572,3.89,11573,6.352,11574,4.216,11575,4.216,11576,9.181,11577,8.508,11578,8.508,11579,4.216,11580,3.77,11581,3.89,11582,4.216,11583,4.216,11584,4.216,11585,9.128,11586,3.577,11587,4.216,11588,4.216,11589,7.644,11590,3.192,11591,3.497,11592,5.062,11593,3.667,11594,4.216,11595,4.216,11596,4.216,11597,8.508,11598,4.216,11599,8.508,11600,4.216,11601,4.216,11602,8.508,11603,8.508,11604,3.89,11605,4.216,11606,4.216,11607,4.216,11608,3.577,11609,4.035,11610,5.39,11611,4.216,11612,4.216,11613,4.216,11614,4.216,11615,4.216,11616,5.269,11617,3.89,11618,3.89,11619,4.216,11620,4.216,11621,4.216,11622,4.216,11623,4.216,11624,4.216,11625,4.216,11626,4.216,11627,4.216,11628,4.216,11629,4.216,11630,3.89]],["title/interfaces/IRole.html",[334,0.742,11383,5.437]],["body/interfaces/IRole.html",[3,0.022,4,0.022,5,0.012,7,0.13,26,2.841,30,0.001,31,0.698,32,0.151,34,2.286,39,2.266,47,1.004,48,3.97,83,3.233,85,5.286,94,4.019,95,0.108,99,1.434,101,0.023,103,0.001,104,0.001,165,0.849,200,2.755,334,1.3,336,2.06,347,1.723,355,3.325,369,2.369,461,2.476,491,4.151,496,3.563,522,6.426,575,5.039,591,3.616,592,3.73,770,4.984,851,4.151,852,4.151,1110,5.431,1114,3.431,1304,5.594,1916,4.096,2488,5.781,3091,5.386,3110,5.206,4227,4.067,4997,5.51,6895,6.817,6955,7.07,11381,7.388,11382,7.388,11383,9.524,11384,6.817]],["title/interfaces/IRoleProperties.html",[334,0.742,11669,5.892]],["body/interfaces/IRoleProperties.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.122,30,0.001,31,0.706,32,0.161,33,0.607,47,0.748,95,0.147,96,2.137,101,0.02,103,0.001,104,0.001,116,2.559,165,0.813,217,1.512,227,0.835,234,1.856,240,3.586,305,2.275,334,1.133,336,1.926,380,2.393,394,5.883,398,2.316,399,4.031,400,3.47,402,3.253,404,1.432,405,2.137,406,2.534,496,5.295,843,5.486,1019,4.612,1910,3.735,1916,6.445,2136,3.165,2678,4.315,2682,5.617,3110,6.242,4083,4.661,4303,3.47,4538,7.114,7006,6.375,9620,7.63,9650,8.042,11669,9.998,11670,7.306,11671,6.612,11672,6.375,11673,6.612,11674,6.375,11675,7.306,11676,6.612,11677,7.306,11678,9.51,11679,7.306,11680,8.607,11681,6.375]],["title/interfaces/ISchoolExternalToolProperties.html",[334,0.742,11682,5.639]],["body/interfaces/ISchoolExternalToolProperties.html",[0,0.273,3,0.021,4,0.021,5,0.011,7,0.124,30,0.001,32,0.171,33,0.52,55,2.682,95,0.162,96,2.171,101,0.02,103,0.001,104,0.001,165,0.822,192,3.766,200,3.757,209,4.349,240,3.258,334,0.884,336,1.957,369,2.293,380,2.175,398,2.353,399,4.072,402,3.305,404,1.455,405,2.171,406,2.575,844,5.866,1925,4.175,4293,5.627,4294,4.842,4926,5.318,5292,7.367,5625,5.702,5626,5.955,5674,6.477,5680,9.834,5682,5.822,5685,6.718,5686,5.235,6429,5.023,6430,4.842,7108,4.959,8472,8.965,10657,5.593,11472,6.477,11682,9.642,11683,7.422,11684,11.036,11685,7.422,11686,7.422,11687,7.422,11688,7.422,11689,7.422]],["title/interfaces/ISchoolProperties.html",[334,0.742,11690,5.269]],["body/interfaces/ISchoolProperties.html",[0,0.306,3,0.013,4,0.013,5,0.007,7,0.139,30,0.001,31,0.599,32,0.178,33,0.673,47,0.974,83,3.001,95,0.143,96,1.368,101,0.02,102,2.554,103,0,104,0,145,1.306,165,0.711,167,1.933,234,0.821,240,3.984,334,0.557,336,1.233,347,2.278,355,1.991,359,1.755,369,2.882,370,4.327,371,2.077,380,1.576,398,1.482,400,2.221,402,2.083,404,0.917,405,1.368,406,1.622,483,2.437,844,2.295,854,5.641,1031,1.622,1114,4.046,1278,5.397,1294,3.524,1910,2.391,1916,2.452,2136,2.026,2433,4.911,2618,4.609,2674,5.309,2678,2.763,2682,2.763,2683,5.888,3105,4.774,3106,4.226,4293,4.078,4303,2.221,4457,7.746,4926,3.476,6359,7.754,6367,7.168,6377,3.299,6423,4.596,6442,5.888,6443,3.847,6744,3.017,6745,4.652,8300,6.666,8304,3.752,8305,6.076,8317,3.752,9475,7.736,9717,3.165,9975,6.432,11086,5.888,11690,7.034,11691,4.233,11692,8.103,11693,7.727,11694,7.29,11695,7.423,11696,4.081,11697,4.081,11698,4.233,11699,4.081,11700,4.233,11701,4.233,11702,6.302,11703,4.233,11704,4.233,11705,4.233,11706,4.233,11707,4.233,11708,4.233,11709,4.233,11710,4.233,11711,7.259,11712,4.233,11713,4.233,11714,7.259,11715,4.233,11716,4.233,11717,4.233,11718,4.233,11719,4.233,11720,3.524,11721,5.888,11722,3.752,11723,4.081,11724,4.233,11725,6.302,11726,3.847,11727,4.233,11728,4.233,11729,6.302,11730,4.081,11731,6.076,11732,4.081,11733,3.593,11734,4.233]],["title/interfaces/ISchoolYearProperties.html",[334,0.742,11735,5.892]],["body/interfaces/ISchoolYearProperties.html",[0,0.304,3,0.024,4,0.024,5,0.013,7,0.138,30,0.001,31,0.733,32,0.17,47,0.922,83,4.103,95,0.143,96,2.417,101,0.021,103,0.001,104,0.001,165,0.88,214,2.954,240,3.975,334,0.985,336,2.179,380,2.328,398,2.619,400,3.925,402,3.68,404,1.62,405,2.417,406,2.866,2136,3.58,2433,7.254,4303,3.925,6369,9.456,6438,7.479,6439,6.988,9475,5.592,11735,11.083,11736,8.264,11737,10.911,11738,7.815,11739,8.264,11740,8.264]],["title/interfaces/IScopeInfo.html",[334,0.742,11741,5.269]],["body/interfaces/IScopeInfo.html",[3,0.026,4,0.026,5,0.014,7,0.148,26,2.715,30,0.001,32,0.183,47,1.012,95,0.124,99,1.634,101,0.018,103,0.001,104,0.001,165,0.92,334,1.06,336,2.346,1474,4.417,2090,4.894,2113,8.244,9369,10.167,11741,9.101,11742,8.897,11743,9.631,11744,12.023]],["title/interfaces/IServerConfig.html",[334,0.742,804,5.125]],["body/interfaces/IServerConfig.html",[3,0.021,4,0.021,5,0.011,7,0.123,30,0.001,32,0.181,47,0.969,52,4.8,55,2.527,95,0.162,101,0.022,103,0.001,104,0.001,154,4.717,165,0.818,217,1.367,334,0.877,336,1.942,347,2.567,404,1.874,802,5.776,803,4.983,804,8.73,1031,2.554,1236,6.236,1842,6.963,2171,3.426,2172,3.812,2173,3.676,2174,5.049,2182,7.364,4931,4.92,10092,5.548,10294,8.651,11091,9.039,11093,9.559,11293,9.039,11295,7.364,11368,9.606,11410,6.963,11412,6.664,11413,7.364,11416,6.963,11417,7.364,11421,7.074,11438,8.651,11442,7.364,11443,7.364,11444,7.364,11608,7.669,11745,7.971,11746,12.602,11747,12.602,11748,8.341,11749,7.364,11750,7.971,11751,10.348,11752,7.971,11753,7.364,11754,7.971,11755,7.971,11756,7.971,11757,7.971,11758,7.971,11759,7.971,11760,6.664,11761,7.971,11762,7.971,11763,5.908]],["title/interfaces/IShareTokenProperties.html",[334,0.742,11764,5.639]],["body/interfaces/IShareTokenProperties.html",[0,0.238,3,0.019,4,0.019,5,0.01,7,0.166,26,2.738,30,0.001,32,0.175,33,0.622,34,1.199,49,5.116,83,3.472,95,0.155,96,2.562,97,2.973,101,0.018,103,0.001,104,0.001,145,2.447,165,0.749,199,2.668,227,1.001,234,1.538,240,3.78,247,2.772,334,0.769,336,1.702,351,5.962,369,2.372,370,3.59,380,1.983,385,8.109,398,2.046,399,3.712,402,2.875,404,1.266,405,1.888,406,2.239,411,5.31,412,5.843,421,5.459,422,5.843,701,2.441,1031,3.449,2674,4.347,3305,3.453,3333,5.633,3574,5.882,4294,4.212,4714,7.189,4720,5.843,5664,7.447,5692,5.843,5693,5.633,5694,5.843,6102,4.622,6111,6.002,6368,4.864,9493,5.179,9561,4.959,9566,5.843,9642,5.063,9643,5.063,9740,5.31,9742,5.31,11764,8.998,11765,6.456,11766,6.456,11767,9.726,11768,8.248,11769,9.425,11770,6.456,11771,4.622,11772,4.553,11773,6.456,11774,6.456]],["title/interfaces/IStorageProviderProperties.html",[334,0.742,11775,5.892]],["body/interfaces/IStorageProviderProperties.html",[0,0.286,3,0.022,4,0.022,5,0.012,7,0.13,30,0.001,32,0.18,33,0.536,47,1.024,95,0.151,96,2.276,101,0.02,103,0.001,104,0.001,165,0.847,240,4.016,334,0.927,336,2.051,369,1.856,370,2.809,380,2.241,398,2.466,399,4.197,400,3.695,402,3.464,404,1.525,405,2.276,406,2.699,2674,3.861,6165,8.922,6167,8.922,6168,9.12,7806,6.242,11116,7.357,11775,10.301,11776,7.78,11777,11.841,11778,8.962,11779,7.78,11780,7.78,11781,7.78,11782,7.78,11783,7.78,11784,7.78,11785,7.78,11786,7.78,11787,7.78]],["title/interfaces/ISubmissionProperties.html",[334,0.742,11788,5.639]],["body/interfaces/ISubmissionProperties.html",[0,0.165,3,0.013,4,0.013,5,0.007,7,0.161,26,2.185,30,0.001,32,0.179,33,0.631,34,0.833,47,0.874,55,2.148,62,2.832,72,2.279,95,0.151,96,1.312,101,0.014,103,0,104,0,111,1.461,116,3.562,145,2.266,165,0.772,187,0.695,192,3.123,208,1.802,217,1.714,227,1.24,234,1.424,240,3.448,305,1.397,334,0.534,336,1.183,347,2.597,369,2.154,370,3.259,371,2.013,380,1.527,394,4.174,398,1.422,399,2.86,400,2.13,402,1.997,404,0.879,405,1.312,406,1.556,461,2.866,738,2.803,844,4.989,957,2.748,1218,3.445,1240,2.803,1253,2.239,1439,3.493,1910,2.293,1991,2.627,2571,3.38,2674,4.803,2678,2.649,2682,2.649,2691,5.53,2692,3.035,2881,3.33,3106,6.402,3396,3.118,3397,3.212,3684,2.722,3737,7.041,3742,7.041,3750,6.107,3752,6.107,4227,1.671,4926,3.369,6110,4.058,6404,7.299,6405,3.263,6407,2.997,6409,2.722,6425,3.518,6429,3.035,6430,2.926,6737,3.118,6793,3.38,6911,3.163,8686,7.96,11324,3.38,11325,3.38,11330,5.085,11331,3.38,11548,7.59,11788,7.342,11789,4.485,11790,9.677,11791,9.548,11792,4.241,11793,4.485,11794,4.485,11795,4.485,11796,4.485,11797,4.485,11798,4.485,11799,3.914,11800,4.485,11801,4.485,11802,4.485,11803,4.059,11804,4.485,11805,4.485,11806,4.485,11807,4.485,11808,4.485,11809,4.485,11810,9.677,11811,4.485,11812,4.485,11813,4.485,11814,4.485,11815,4.485,11816,4.485,11817,9.024,11818,4.485,11819,6.509,11820,3.914,11821,10.168,11822,6.748,11823,4.059,11824,6.748,11825,4.241,11826,3.518,11827,3.518,11828,3.914,11829,4.485,11830,4.485,11831,4.485,11832,4.485,11833,6.748,11834,6.748,11835,4.485,11836,4.485,11837,4.485,11838,4.485,11839,6.509,11840,3.914,11841,4.059,11842,6.748]],["title/interfaces/ISystemProperties.html",[334,0.742,11843,5.125]],["body/interfaces/ISystemProperties.html",[0,0.315,3,0.012,4,0.012,5,0.006,7,0.068,26,1.412,30,0.001,32,0.177,33,0.643,47,1.034,83,2.485,95,0.119,96,1.187,101,0.019,103,0,104,0,150,3.882,165,0.535,208,1.631,216,0.812,240,4.373,277,1.759,334,0.484,336,1.07,347,0.895,359,1.523,369,2.922,370,4.422,371,1.211,379,1.012,380,1.727,398,1.287,399,2.651,400,1.928,402,1.807,404,0.796,405,1.187,406,1.408,496,1.851,722,1.938,775,2.679,783,2.648,1031,2.646,1114,1.783,1252,2.618,1576,2.648,1659,3.118,1691,2.712,2113,2.783,2138,3.257,2618,3.466,2621,2.075,4293,3.663,4331,4.804,4556,3.466,5236,2.747,5472,3.345,5602,5.021,5621,2.783,5622,3.004,6090,3.761,6359,2.679,6992,2.822,7078,2.953,7134,4.08,8597,2.953,9975,2.441,10947,7.798,11026,3.257,11027,3.257,11028,3.257,11029,3.339,11072,3.004,11075,2.907,11077,3.004,11080,3.004,11083,2.679,11087,2.953,11477,3.339,11590,2.907,11733,3.118,11843,6.275,11844,3.542,11845,6.629,11846,8.798,11847,8.452,11848,6.265,11849,6.976,11850,6.529,11851,2.907,11852,2.907,11853,3.542,11854,4.628,11855,5.018,11856,3.433,11857,5.018,11858,3.339,11859,3.339,11860,3.339,11861,3.339,11862,3.433,11863,3.339,11864,3.339,11865,3.339,11866,3.433,11867,5.018,11868,3.433,11869,3.339,11870,3.433,11871,3.339,11872,3.339,11873,3.339,11874,3.433,11875,4.628,11876,3.542,11877,3.542,11878,3.542,11879,3.542,11880,3.542,11881,3.542,11882,3.542,11883,3.542,11884,3.542,11885,3.542,11886,3.542,11887,3.542,11888,3.433,11889,3.542,11890,3.542,11891,3.542,11892,3.542,11893,3.542,11894,3.542,11895,3.542,11896,3.542,11897,3.542,11898,3.542,11899,3.542,11900,3.542,11901,3.542,11902,3.542,11903,3.542,11904,3.542,11905,3.542,11906,3.257,11907,3.542,11908,3.542,11909,3.542,11910,3.542,11911,3.542,11912,3.542,11913,3.542,11914,3.542,11915,3.542,11916,3.542,11917,3.542,11918,3.542,11919,3.542,11920,3.542,11921,3.339,11922,3.542,11923,3.257,11924,3.433,11925,3.339,11926,3.433,11927,3.339,11928,3.339,11929,3.433,11930,3.339,11931,3.433,11932,3.339,11933,3.184,11934,3.184,11935,3.184,11936,3.257,11937,3.339,11938,3.542,11939,3.339,11940,3.542,11941,3.542,11942,3.542,11943,3.542,11944,3.542,11945,3.339,11946,3.433,11947,3.339,11948,3.433]],["title/interfaces/ITargetGroupProperties.html",[334,0.742,11546,5.437]],["body/interfaces/ITargetGroupProperties.html",[0,0.253,3,0.02,4,0.02,5,0.01,7,0.114,30,0.001,32,0.156,33,0.634,47,1.034,95,0.127,96,2.007,101,0.023,103,0.001,104,0.001,150,3.622,165,0.78,240,4.239,334,1.222,336,1.809,379,2.276,380,2.065,398,2.175,399,3.867,400,3.258,404,1.345,405,2.007,406,2.38,460,6.76,1474,3.352,1910,3.508,2789,3.92,3544,4.101,3573,4.839,6090,4.125,6427,5.077,6428,5.077,6992,4.769,11307,4.643,11310,4.769,11318,6.435,11538,7.716,11539,6.209,11540,7.321,11541,7.963,11542,7.963,11543,7.963,11544,7.963,11545,8.947,11546,9.536,11547,9.89,11548,8.571,11549,6.209,11550,6.209,11551,5.987,11552,6.209,11553,6.209,11554,6.209,11555,6.209,11556,6.209,11557,6.209,11558,6.209,11559,6.209,11560,6.209,11561,6.209,11562,6.209,11563,6.209,11564,6.209]],["title/interfaces/ITask.html",[334,0.742,11949,5.269]],["body/interfaces/ITask.html",[3,0.021,4,0.021,5,0.011,7,0.123,30,0.001,31,0.684,32,0.182,33,0.668,47,0.989,55,2.534,83,3.891,95,0.103,99,1.36,101,0.023,103,0.001,104,0.001,111,1.603,165,0.821,188,4.362,192,2.39,334,1.39,336,1.953,347,2.635,379,2.808,404,2.087,461,2.655,844,4.709,2675,5.098,2689,5.398,2701,3.698,2881,4.735,3242,6.485,3245,6.433,3684,4.495,3714,7.827,3733,5.304,3737,5.39,3738,5.581,3739,5.304,3740,5.304,3741,5.69,3742,5.39,4955,6.26,6727,4.302,7793,5.079,11949,9.863,11950,6.464,11951,8.831,11952,5.943,11953,5.943,11954,5.69,11955,5.943,11956,5.81]],["title/interfaces/ITaskCreate.html",[334,0.742,11953,4.999]],["body/interfaces/ITaskCreate.html",[3,0.022,4,0.022,5,0.012,7,0.129,30,0.001,31,0.472,32,0.165,33,0.621,47,0.997,55,2.591,83,3.221,95,0.108,99,1.425,101,0.024,103,0.001,104,0.001,111,1.68,165,0.846,188,4.46,192,2.505,334,1.41,336,2.047,347,2.668,379,1.936,404,2.246,461,2.714,844,4.853,2675,6.287,2689,5.563,2701,3.875,2881,4.88,3242,5.696,3245,4.436,3684,4.711,3714,5.397,3733,5.559,3737,5.648,3738,5.85,3739,5.559,3740,5.559,3741,5.964,3742,5.648,4955,7.72,6727,4.509,7793,5.323,11949,10.007,11950,6.775,11951,6.089,11952,6.229,11953,7.934,11954,5.964,11955,6.229,11956,6.089]],["title/interfaces/ITaskParent.html",[334,0.742,6408,4.272]],["body/interfaces/ITaskParent.html",[0,0.183,3,0.009,4,0.009,5,0.005,7,0.176,8,0.648,26,1.944,27,0.136,30,0.001,31,0.184,32,0.144,34,0.921,35,0.396,47,0.715,55,1.181,83,2.612,95,0.149,96,0.887,101,0.017,103,0,104,0,111,2.391,116,3.696,145,2.031,148,2.435,165,0.622,167,1.253,187,0.47,188,3.287,192,0.979,214,1.084,217,1.787,227,1.358,234,1.665,240,3.328,247,2.13,305,1.545,334,0.591,336,0.8,347,2.28,369,2.409,370,3.109,371,3.147,379,0.756,380,1.123,398,0.961,399,2.102,400,1.44,402,1.35,404,0.595,405,0.887,406,1.052,461,2.719,564,3.65,687,1.523,728,1.285,738,1.895,783,1.979,806,2.262,844,3.089,905,3.269,957,1.858,1019,1.915,1062,1.433,1218,2.33,1439,1.57,1661,2.139,1828,1.464,1910,1.551,1919,1.363,1932,2.749,2078,1.915,2136,1.314,2526,2.079,2674,3.98,2675,3.864,2678,2.93,2682,1.791,2687,3.401,2688,1.915,2689,2.791,2690,2.33,2691,4.66,2701,1.514,2705,5.656,2881,3.958,3106,1.84,3242,2.857,3245,2.835,3305,4.605,3396,2.108,3418,4.743,3684,5.515,3685,2.745,3714,2.108,3733,5.742,3737,3.609,3738,6.043,3739,5.207,3740,6.165,3741,6.614,3742,3.609,3753,6.346,4083,1.935,4227,1.13,4239,2.052,4303,1.44,4825,2.052,4826,2.108,4926,2.476,4955,1.979,6364,4.58,6397,2.052,6400,3.275,6408,4.316,6409,1.84,6421,2.646,6425,2.379,6427,2.244,6428,2.244,6429,2.052,6430,1.979,6444,5.055,6633,2.026,6634,2.172,6704,2.565,6727,1.761,6737,2.108,6742,2.433,7652,3.275,7793,4.986,7948,2.379,9401,2.052,10657,2.285,11336,2.244,11356,2.244,11490,2.646,11799,2.646,11819,5.835,11820,2.646,11839,5.835,11840,2.646,11951,2.379,11954,3.811,11955,2.433,11956,2.379,11957,2.745,11958,3.283,11959,2.868,11960,2.745,11961,2.868,11962,2.868,11963,2.868,11964,2.868,11965,2.868,11966,5.953,11967,5.493,11968,5.323,11969,2.868,11970,2.868,11971,2.745,11972,2.868,11973,2.868,11974,2.868,11975,2.745,11976,8.142,11977,2.868,11978,2.494,11979,2.646,11980,4.691,11981,6.877,11982,4.329,11983,6.877,11984,2.868,11985,2.868,11986,2.868,11987,4.691,11988,2.868,11989,2.868,11990,2.868,11991,2.868,11992,2.868,11993,2.868,11994,2.868,11995,2.868,11996,2.868,11997,2.868,11998,2.868,11999,2.868,12000,4.691,12001,2.868,12002,2.868,12003,2.494,12004,2.868,12005,2.868,12006,2.868,12007,2.868,12008,2.868,12009,2.868,12010,4.691,12011,2.868,12012,2.868,12013,4.691,12014,2.868,12015,4.691,12016,2.565,12017,2.745,12018,2.868,12019,6.877,12020,5.953,12021,4.49,12022,2.646,12023,5.953,12024,2.868,12025,5.953,12026,2.745,12027,4.691,12028,2.868,12029,2.868,12030,2.868,12031,5.953,12032,2.868,12033,4.691,12034,2.745,12035,2.868,12036,2.868,12037,6.877,12038,2.868,12039,2.868,12040,2.868,12041,2.868,12042,2.868,12043,2.868,12044,2.868,12045,4.691,12046,2.868,12047,2.868,12048,4.691,12049,2.868,12050,2.868,12051,2.868,12052,2.868,12053,2.745,12054,2.868,12055,6.877,12056,2.868,12057,2.868,12058,2.868,12059,2.868,12060,2.868,12061,2.868,12062,2.868,12063,2.868,12064,2.868,12065,2.745]],["title/interfaces/ITaskProperties.html",[334,0.742,11954,4.786]],["body/interfaces/ITaskProperties.html",[3,0.02,4,0.02,5,0.011,7,0.115,30,0.001,31,0.42,32,0.189,33,0.69,47,0.923,55,2.45,83,2.986,95,0.096,99,1.269,101,0.023,103,0.001,104,0.001,111,2.372,165,0.784,188,4.978,192,3.537,334,1.359,336,1.822,347,2.779,379,1.724,404,2.149,461,2.983,844,5.378,2675,4.872,2689,6.165,2701,5.471,2881,5.409,3242,5.282,3245,3.949,3684,6.651,3714,4.805,3733,4.949,3737,5.029,3738,5.208,3739,4.949,3740,4.949,3741,5.309,3742,5.029,4955,5.982,6727,6.365,7793,7.515,11949,9.645,11950,6.031,11951,5.421,11952,5.545,11953,5.545,11954,7.044,11955,8.793,11956,8.596]],["title/interfaces/ITaskStatus.html",[334,0.742,3733,4.461]],["body/interfaces/ITaskStatus.html",[3,0.021,4,0.021,5,0.011,7,0.124,30,0.001,31,0.451,32,0.185,47,0.941,55,2.967,83,3.129,95,0.103,99,1.363,101,0.023,103,0.001,104,0.001,111,1.607,165,0.822,188,4.366,192,2.395,334,1.39,336,1.957,347,2.808,379,1.851,404,2.089,461,2.657,844,4.715,2675,5.105,2689,5.405,2701,3.705,2881,4.741,3242,5.534,3245,4.241,3684,4.504,3714,5.16,3733,6.88,3737,8.198,3738,8.49,3739,8.068,3740,8.068,3741,8.655,3742,8.198,4955,6.268,6727,4.311,7793,5.089,11949,9.528,11950,6.477,11951,5.822,11952,5.955,11953,5.955,11954,5.702,11955,5.955,11956,5.822]],["title/interfaces/ITaskUpdate.html",[334,0.742,11952,4.999]],["body/interfaces/ITaskUpdate.html",[3,0.022,4,0.022,5,0.012,7,0.129,30,0.001,31,0.472,32,0.165,33,0.621,47,0.997,55,2.591,83,3.221,95,0.108,99,1.425,101,0.024,103,0.001,104,0.001,111,1.68,165,0.846,188,4.46,192,2.505,334,1.41,336,2.047,347,2.668,379,1.936,404,2.246,461,2.714,844,4.853,2675,6.287,2689,5.563,2701,3.875,2881,4.88,3242,5.696,3245,4.436,3684,4.711,3714,5.397,3733,5.559,3737,5.648,3738,5.85,3739,5.559,3740,5.559,3741,5.964,3742,5.648,4955,7.72,6727,4.509,7793,5.323,11949,10.007,11950,6.775,11951,6.089,11952,7.934,11953,6.229,11954,5.964,11955,6.229,11956,6.089]],["title/interfaces/ITeamProperties.html",[334,0.742,12066,5.269]],["body/interfaces/ITeamProperties.html",[0,0.326,3,0.019,4,0.019,5,0.01,7,0.109,30,0.001,31,0.681,32,0.135,33,0.48,39,1.906,47,0.845,62,4.148,72,3.339,95,0.156,96,2.593,101,0.022,103,0.001,104,0.001,111,1.422,144,2.967,165,0.758,192,2.86,227,1.146,234,1.153,240,3.006,334,1.056,336,1.732,369,1.568,380,2.006,398,2.082,399,3.757,400,3.12,402,2.925,404,1.288,405,2.593,406,2.279,415,5.925,461,2.995,496,5.269,728,4.251,844,5.669,1925,3.696,2136,2.846,2222,5.404,2618,5.559,2674,3.261,3547,4.78,4227,2.448,4293,5.191,4303,3.12,4304,6.4,4307,8.483,4926,5.597,6407,4.39,6409,3.987,6430,4.286,6720,4.39,6758,4.633,9736,5.153,9737,5.153,10740,5.271,10741,5.556,11378,4.633,12066,8.483,12067,5.946,12068,8.795,12069,9.048,12070,5.556,12071,7.735,12072,5.946,12073,5.946,12074,5.946,12075,5.946,12076,5.946,12077,5.556,12078,5.946,12079,5.946]],["title/interfaces/ITeamUserProperties.html",[334,0.742,12071,5.437]],["body/interfaces/ITeamUserProperties.html",[0,0.324,3,0.019,4,0.019,5,0.01,7,0.108,30,0.001,31,0.535,32,0.152,39,1.889,47,0.693,62,4.111,72,3.309,95,0.155,96,2.577,101,0.022,103,0.001,104,0.001,111,1.41,144,2.954,165,0.754,192,3.607,227,1.141,234,1.143,240,2.988,334,1.05,336,1.717,369,1.554,380,1.994,398,2.064,399,3.734,400,3.093,402,2.9,404,1.277,405,2.577,406,2.259,415,5.899,461,3.134,496,5.65,728,4.232,844,5.881,1925,3.663,2136,2.821,2222,5.357,2618,5.534,2674,3.232,3547,4.738,4227,2.427,4293,5.16,4303,3.093,4304,6.372,4307,8.445,4926,5.581,6407,4.351,6409,3.952,6430,4.249,6720,4.351,6758,4.593,9736,5.108,9737,5.108,10740,5.225,10741,5.507,11378,4.593,12066,7.451,12067,5.894,12068,6.911,12069,8.682,12070,5.507,12071,8.714,12072,5.894,12073,5.894,12074,5.894,12075,5.894,12076,5.894,12077,5.507,12078,5.894,12079,5.894]],["title/interfaces/IToolFeatures.html",[334,0.742,8359,5.125]],["body/interfaces/IToolFeatures.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.135,30,0.001,32,0.182,47,0.915,55,2.768,95,0.112,101,0.023,103,0.001,104,0.001,108,5.051,165,0.868,217,1.156,329,2.578,334,0.963,336,2.132,347,2.841,627,2.724,2171,3.761,2172,4.185,2173,4.036,3898,4.775,8359,9.12,8361,8.345,8583,11.327,8616,11.327,11092,6.091,12080,11.979,12081,11.979,12082,11.979,12083,8.084,12084,7.316,12085,8.084,12086,8.084,12087,8.084,12088,8.084,12089,7.316]],["title/interfaces/IToolLaunchParams.html",[155,5.125,334,0.742]],["body/interfaces/IToolLaunchParams.html",[3,0.025,4,0.025,5,0.013,7,0.146,30,0.001,32,0.175,95,0.16,101,0.018,103,0.001,104,0.001,108,5.467,139,7.877,140,7.801,155,8.764,158,6.905,165,0.911,192,2.824,199,3.616,200,4.051,201,6.513,210,6.083,334,1.043,336,2.307,12090,8.75,12091,9.472]],["title/interfaces/IToolLaunchStrategy.html",[212,5.639,334,0.742]],["body/interfaces/IToolLaunchStrategy.html",[3,0.024,4,0.024,5,0.013,7,0.139,8,1.351,26,2.655,27,0.465,29,0.889,30,0.001,31,0.629,32,0.157,33,0.56,35,1.351,36,2.433,39,2.419,95,0.156,99,1.531,101,0.017,103,0.001,104,0.001,108,7.026,122,9.026,123,9.026,155,9.671,160,9.222,170,7.276,171,9.026,175,8.473,185,4.766,208,3.349,209,3.107,210,8.173,211,7.276,212,9.361,334,0.993,336,2.199,12090,11.245,12092,9.026,12093,9.026,12094,11.197,12095,9.026]],["title/interfaces/IUserConfig.html",[334,0.742,11748,5.437]],["body/interfaces/IUserConfig.html",[3,0.028,4,0.028,5,0.015,7,0.161,30,0.001,32,0.147,47,0.943,101,0.02,103,0.001,104,0.001,165,0.967,334,1.151,336,2.547,11092,7.278,11748,9.863,11753,12.353,12096,10.456]],["title/interfaces/IUserProperties.html",[334,0.742,12097,5.437]],["body/interfaces/IUserProperties.html",[0,0.169,3,0.013,4,0.013,5,0.007,7,0.197,30,0.001,32,0.181,33,0.665,34,0.852,47,1.006,83,3.811,95,0.136,96,1.343,101,0.017,103,0,104,0,116,1.608,165,0.909,192,3.528,214,1.641,217,1.176,227,0.524,234,1.444,240,4.14,305,1.429,334,0.818,336,1.21,347,2.013,369,2.823,370,4.271,380,1.862,394,2.84,398,1.455,399,2.91,400,2.18,402,2.044,404,0.9,405,1.343,406,1.592,461,1.145,496,4.457,844,5.033,851,5.449,852,5.449,853,5.642,854,5.602,1019,2.898,1031,1.592,1291,4.205,1910,2.347,1916,4.313,1917,4.341,2674,4.083,2678,2.712,2682,4.056,3091,2.265,3110,5.732,4083,2.929,4220,7.365,4221,8.039,4227,1.711,4232,6.94,4315,3.882,4316,3.683,4926,3.428,6400,4.532,6407,3.067,6429,3.106,6430,2.995,6744,2.961,6745,3.067,7155,5.648,9336,3.34,9337,3.6,9338,3.34,9339,3.6,9340,3.776,9341,4.006,9562,8.039,9624,4.006,9628,4.155,11243,4.006,11244,4.006,11245,4.006,11482,4.155,11671,4.155,11672,4.006,11673,4.155,11674,4.006,11676,4.155,11680,6.214,11681,4.006,11694,7.233,11721,3.882,11722,3.683,12070,3.882,12097,7.178,12098,4.59,12099,8.265,12100,8.039,12101,7.842,12102,8.265,12103,6.866,12104,6.866,12105,6.866,12106,4.155,12107,4.155,12108,4.59,12109,4.155,12110,4.59,12111,4.155,12112,4.59,12113,4.155,12114,4.59,12115,4.155,12116,4.59,12117,4.59,12118,6.866]],["title/interfaces/IVideoConferenceSettings.html",[334,0.742,12119,5.639]],["body/interfaces/IVideoConferenceSettings.html",[3,0.026,4,0.026,5,0.014,7,0.149,30,0.001,32,0.176,47,0.914,95,0.124,101,0.022,103,0.001,104,0.001,165,0.924,217,1.281,334,1.068,336,2.363,347,2.56,1415,7.863,2090,4.929,2106,7.871,2290,10.517,7869,5.388,11095,8.474,12119,9.783,12120,9.7,12121,10.908,12122,8.474,12123,9.7]],["title/classes/IdParams.html",[0,0.229,12124,5.892]],["body/classes/IdParams.html",[0,0.396,2,1.108,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,34,2.286,47,0.847,95,0.149,101,0.018,103,0.001,104,0.001,165,0.92,361,6.413,364,1.784,368,4.601,369,2.568,370,3.886,371,3.21,374,3.076,376,2.258,379,2.219,467,3.131,470,4.908,479,7.138,3544,4.838,5382,6.658,12124,10.177,12125,9.631,12126,9.631]],["title/interfaces/IdToken.html",[334,0.742,348,4.533]],["body/interfaces/IdToken.html",[3,0.024,4,0.024,5,0.013,7,0.138,30,0.001,31,0.712,32,0.187,33,0.693,39,3.4,47,1.032,101,0.021,103,0.001,104,0.001,165,0.88,334,1.226,336,2.179,348,7.484,350,7.479,361,4.924,853,6.447,4227,4.367,5602,4.482,6461,8.036,10670,10.607,10671,8.264,10672,7.815,10673,11.083]],["title/classes/IdTokenCreationLoggableException.html",[0,0.229,12127,5.892]],["body/classes/IdTokenCreationLoggableException.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,8,1.302,27,0.448,29,0.676,30,0.001,31,0.478,32,0.151,33,0.426,34,1.46,35,1.027,39,3.34,47,0.955,59,2.641,95,0.138,101,0.016,103,0.001,104,0.001,111,1.702,127,1.077,163,2.683,187,1.218,209,2.93,214,3.563,215,2.754,216,1.995,217,1.124,227,0.898,351,6.157,361,6.523,404,1.954,406,2.727,415,4.644,511,4.357,1327,4.68,1439,5.667,1542,5.53,1545,2.718,1547,6.2,3469,9.236,5469,7.862,5472,5.855,7629,6.308,8137,6.158,8537,5.016,8538,5.253,11854,5.818,12127,9.427,12128,11.85,12129,8.511,12130,8.511,12131,8.511,12132,8.511,12133,7.115,12134,7.862]],["title/injectables/IdTokenService.html",[105,0.889,12135,5.639]],["body/injectables/IdTokenService.html",[0,0.184,3,0.014,4,0.014,5,0.008,7,0.083,8,0.954,27,0.476,29,0.818,30,0.001,31,0.664,32,0.161,33,0.515,34,0.927,35,1.129,36,2.236,39,2.119,47,0.982,95,0.161,99,0.916,101,0.01,103,0,104,0,105,1.042,107,1.293,111,2.602,112,2.566,127,1.001,137,6.777,145,2.827,158,3.962,165,0.625,187,0.773,201,2.829,209,2.722,216,2.185,217,1.512,221,2.697,227,1.086,234,0.876,305,1.554,334,0.595,348,3.631,351,3.907,361,6.508,450,2.222,461,1.822,661,3.94,738,4.564,853,2.746,1680,3.693,1919,2.243,1973,7.946,1993,3.693,2171,2.322,2172,2.584,2173,2.492,3469,4.004,3898,2.948,4227,1.86,4535,4.72,4537,4.72,4560,4.105,4561,2.875,4809,4.105,5382,3.088,5472,5.842,5602,2.707,6143,3.631,6461,5.924,6720,7.064,6938,6.2,6949,4.517,7038,5.504,7127,3.574,7601,4.105,8382,4.517,8712,6.094,10474,7.307,10670,9.159,10672,4.72,10673,8.171,11378,6.094,12127,4.72,12135,6.611,12136,10.922,12137,4.991,12138,9.353,12139,7.908,12140,7.908,12141,7.908,12142,5.403,12143,9.226,12144,8.983,12145,7.209,12146,7.305,12147,7.908,12148,5.403,12149,7.908,12150,5.403,12151,7.908,12152,5.403,12153,5.403,12154,5.403,12155,4.355,12156,4.72,12157,5.403,12158,5.403,12159,5.403,12160,5.403,12161,5.403,12162,5.403,12163,5.403,12164,5.403,12165,5.403,12166,7.908,12167,4.991,12168,4.517,12169,4.991,12170,5.403,12171,5.403,12172,5.403,12173,4.105,12174,7.908,12175,5.403,12176,5.403,12177,5.403,12178,5.403,12179,5.403]],["title/modules/IdentityManagementModule.html",[425,1.808,817,5.269]],["body/modules/IdentityManagementModule.html",[0,0.27,3,0.021,4,0.021,5,0.011,30,0.001,95,0.173,101,0.015,103,0.001,104,0.001,187,1.139,425,3.076,427,2.94,428,3.101,429,3.198,430,3.184,431,3.156,432,3.82,433,4.328,442,4.154,443,3.128,444,3.049,449,4.154,773,5.109,788,10.739,803,6.46,817,10.752,836,5.965,1266,4.546,2841,8.167,3956,6.946,7720,7.349,7721,8.64,8104,9.352,8221,7.852,11439,4.546,11440,6.215,12180,7.955,12181,7.955,12182,7.955,12183,10.083,12184,10.405,12185,10.407,12186,7.349,12187,8.64,12188,6.413,12189,6.95,12190,7.955,12191,8.64,12192,10.334,12193,8.64]],["title/classes/IdentityManagementOauthService.html",[0,0.229,12185,5.269]],["body/classes/IdentityManagementOauthService.html",[0,0.25,2,0.845,3,0.019,4,0.019,5,0.01,7,0.113,8,1.183,9,6.405,27,0.459,29,0.583,30,0.001,31,0.412,32,0.103,33,0.367,35,1.616,36,2.743,47,0.952,51,5.819,78,9.233,87,6.238,94,5.597,95,0.094,101,0.014,103,0.001,104,0.001,145,2.53,154,6.044,204,2.52,264,4.151,369,2.162,371,2.702,379,1.692,494,5.909,803,7.362,1240,6.798,1289,6.297,1666,6.825,1683,6.942,2340,5.921,2500,7.574,5382,7.577,7853,7.267,10770,8.566,11439,6.73,11440,9.2,11591,8.533,12185,7.66,12194,6.786,12195,10.88,12196,10.88,12197,9.058,12198,7.346,12199,7.346,12200,9.058,12201,7.346,12202,5.581,12203,7.346]],["title/classes/IdentityManagementService.html",[0,0.229,788,5.437]],["body/classes/IdentityManagementService.html",[0,0.126,2,0.425,3,0.01,4,0.01,5,0.005,7,0.057,8,0.713,9,6.481,27,0.482,29,0.937,30,0.001,31,0.682,32,0.168,33,0.59,34,2.169,35,1.557,36,2.82,39,2.637,47,0.996,51,4.169,55,1.3,56,1.779,59,1.834,70,1.852,85,6.709,87,6.003,94,6.596,95,0.047,98,2.202,99,0.627,101,0.011,103,0,104,0,144,3.225,145,1.905,163,1.863,167,2.256,234,1.368,264,5.308,347,0.753,379,2.615,403,7.099,461,2.615,484,5.163,485,5.163,493,4.491,500,5.768,511,3.025,524,6.326,549,7.47,693,3.225,701,3.437,728,3.853,750,2.887,788,4.764,803,5.274,883,2.478,1005,4.38,1121,7.47,1295,6.813,1473,4.822,1666,4.114,1924,6.411,1925,3.071,2450,3.744,2835,5.028,2841,5.671,2951,5.028,4083,6.326,4483,5.163,4638,4.617,7722,3.229,11153,8.652,11168,5.163,11184,7.055,11439,6.745,11440,9.22,12204,5.46,12205,5.46,12206,5.46,12207,5.46,12208,7.795,12209,6.822,12210,6.822,12211,5.46,12212,5.46,12213,5.46,12214,9.544,12215,3.696,12216,10.733,12217,5.91,12218,3.696,12219,5.46,12220,3.696,12221,8.438,12222,5.46,12223,5.46,12224,3.696,12225,5.46,12226,5.91,12227,3.696,12228,5.46,12229,7.795,12230,3.696,12231,3.696,12232,3.414,12233,9.915,12234,3.696,12235,8.524,12236,10.851,12237,3.414,12238,7.795,12239,3.696,12240,5.91,12241,3.696,12242,5.91,12243,3.696,12244,2.887]],["title/entities/ImportUser.html",[380,1.41,11459,4.786]],["body/entities/ImportUser.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,27,0.509,30,0.001,31,0.374,32,0.178,33,0.459,47,0.956,49,1.676,95,0.135,96,1.162,101,0.018,103,0,104,0,111,0.86,144,2.226,145,2.102,165,0.829,167,2.542,192,3.371,200,1.401,214,1.42,217,1.076,227,0.703,234,0.697,240,3.892,247,3.232,305,1.237,329,2.4,334,0.733,347,1.66,355,2.618,364,2.272,369,2.738,370,3.06,371,1.835,380,1.392,381,1.415,394,5.671,398,1.259,399,2.607,400,1.887,402,1.769,404,0.779,405,1.162,406,1.378,444,1.648,461,2.895,472,2.89,575,2.562,577,5.143,701,1.502,728,2.607,844,3.693,851,4.502,852,4.502,853,5.333,854,5.007,905,1.786,1031,2.939,1114,4.44,1277,2.218,1871,6.125,1919,1.786,2298,2.592,2324,3.757,2501,7.19,2502,3.595,2672,5.093,2674,5.018,2676,6.97,2684,3.116,2752,3.757,2951,3.968,3110,3.225,4227,2.292,4232,6.203,4315,3.359,4316,3.187,4331,4.725,4538,2.434,4712,3.267,4926,3.757,5868,3.116,6388,3.757,6400,4.06,6407,2.654,6409,2.411,6429,2.688,6627,4.475,6737,4.276,6744,2.562,6745,2.654,7339,2.993,7430,4.725,8317,3.187,8318,3.359,9336,2.89,9337,3.116,9338,2.89,9339,3.116,9340,3.267,9341,3.466,9980,3.267,10330,6.385,10331,5.57,10349,4.634,10350,3.052,10351,2.592,10359,5.567,10736,3.595,10740,3.187,11445,5.567,11446,11.475,11447,6.97,11448,8.593,11449,5.977,11450,7.999,11451,7.166,11452,3.359,11453,3.267,11454,3.267,11455,3.757,11456,3.757,11457,3.972,11458,3.595,11459,4.725,11460,3.972,11461,3.972,11462,3.972,11463,3.972,11464,3.972,11465,3.972,11466,3.972,11467,3.972,11468,5.567,11469,3.972,11470,5.567,11471,3.595,11472,7.395,11473,3.972,11474,3.972,11475,3.972,11476,3.595,11477,3.267,11478,3.972,11479,3.972,11480,3.972,11481,3.972,11482,5.567,11483,3.595,11484,6.97,11485,6.799,11486,7.117,11487,3.972,11488,6.151,11489,3.972,11490,3.466,11491,5.567,11492,3.972,12245,4.3,12246,4.3,12247,4.3,12248,4.3,12249,4.3,12250,4.3,12251,4.3,12252,4.3,12253,6.658,12254,4.3,12255,4.3,12256,4.3,12257,4.3,12258,4.3]],["title/controllers/ImportUserController.html",[481,2.629,12259,5.892]],["body/controllers/ImportUserController.html",[0,0.147,3,0.011,4,0.011,5,0.006,7,0.067,8,0.807,10,1.746,27,0.471,29,0.9,30,0.001,31,0.636,32,0.159,33,0.567,35,1.367,36,2.784,56,4.428,59,1.342,70,4.609,95,0.152,99,0.733,100,1.447,101,0.008,103,0,104,0,111,0.864,112,3.004,185,4.118,187,0.619,215,1.399,216,1.236,217,1.717,221,2.67,227,1.05,234,1.084,264,3.895,277,4.209,347,1.666,364,2.099,376,1.014,447,1.812,461,0.996,469,1.907,481,1.685,483,2.081,491,6.599,513,6.907,529,5.24,543,4.096,552,2.776,555,2.282,556,2.339,557,2.359,559,2.359,561,2.359,701,3.213,1008,3.648,1016,4.241,1028,7.782,1062,1.887,1828,3.645,2934,6.852,2955,2.447,4442,5.129,5784,3.899,6487,7.244,6775,5.046,8926,6.835,10327,7.691,10365,7.691,11459,3.068,12259,5.841,12260,11.629,12261,4.323,12262,4.323,12263,6.686,12264,8.175,12265,8.175,12266,8.175,12267,6.686,12268,8.175,12269,8.175,12270,8.175,12271,4.323,12272,6.686,12273,4.323,12274,4.323,12275,7.691,12276,4.323,12277,4.323,12278,6.686,12279,4.323,12280,4.323,12281,10.378,12282,6.686,12283,4.323,12284,4.323,12285,6.176,12286,4.323,12287,4.323,12288,8.037,12289,6.686,12290,4.323,12291,4.323,12292,8.498,12293,6.686,12294,4.323,12295,4.323,12296,8.037,12297,6.686,12298,4.323,12299,3.777,12300,4.323,12301,4.323,12302,3.615,12303,3.994,12304,3.777,12305,8.498,12306,3.777,12307,3.994,12308,3.615,12309,3.485,12310,5.59,12311,4.323,12312,4.323,12313,3.485,12314,3.777,12315,4.323,12316,4.323,12317,4.323,12318,4.323,12319,5.59,12320,4.323,12321,4.323,12322,4.323,12323,4.323,12324,8.175,12325,4.323,12326,8.175,12327,4.323,12328,4.323,12329,4.323,12330,4.323,12331,4.323,12332,4.323,12333,4.323,12334,3.994,12335,4.323,12336,4.323,12337,4.323,12338,4.323,12339,4.323,12340,4.323,12341,4.323]],["title/classes/ImportUserFactory.html",[0,0.229,12342,6.23]],["body/classes/ImportUserFactory.html",[0,0.159,2,0.536,3,0.012,4,0.012,5,0.007,7,0.072,8,0.855,27,0.531,29,1.023,30,0.001,31,0.692,32,0.184,33,0.616,34,1.47,35,1.434,47,0.623,55,2.477,59,3.194,95,0.139,99,0.791,101,0.009,103,0,104,0,127,0.59,138,3.077,144,3.172,148,1.443,165,0.56,185,4.824,192,1.39,216,1.31,217,0.936,227,0.748,329,3.419,359,2.457,366,2.567,371,1.285,379,1.975,380,2.152,381,2.332,404,1.283,461,2.739,538,3.177,596,3.838,627,2.206,660,7.15,661,4.566,662,5.366,665,3.973,666,5.366,667,5.581,668,3.973,669,3.973,670,3.973,671,3.901,672,4.355,673,4.804,674,6.147,675,5.667,676,6.913,677,2.64,682,2.615,683,3.973,684,2.64,685,5.013,686,5.223,687,4.44,688,5.052,689,3.936,690,2.615,691,3.711,692,4.038,693,2.545,694,2.502,695,2.615,696,4.936,697,2.64,698,4.718,699,2.615,700,7.004,701,4.053,702,6.507,703,2.64,704,4.234,705,2.615,706,2.64,707,2.615,708,2.64,709,2.615,710,2.954,711,2.779,712,2.615,713,5.967,714,2.64,715,2.615,716,3.973,717,3.901,718,3.973,719,2.64,720,2.523,721,2.502,722,2.057,723,2.615,724,2.615,725,2.615,726,2.64,727,2.64,728,1.826,729,2.615,730,2.64,731,3.37,732,2.615,733,2.64,735,2.692,736,2.779,737,2.779,775,2.844,851,2.289,852,2.289,853,2.37,854,2.353,1062,2.036,1114,1.892,1298,2.203,1299,2.176,1300,2.176,1301,2.305,1302,2.523,1303,3.188,3885,6.19,4232,2.915,4538,2.64,6613,3.643,6614,3.76,6622,3.643,9599,3.246,10330,3.246,11445,3.899,11447,3.544,11448,5.384,11449,3.039,11450,7.716,11451,5.536,11454,3.544,11459,3.31,12342,7.917,12343,7.086,12344,4.664,12345,7.086,12346,4.664,12347,6.546,12348,4.074,12349,4.664,12350,4.664,12351,4.664,12352,4.664,12353,4.664,12354,4.664,12355,4.074,12356,4.664]],["title/classes/ImportUserListResponse.html",[0,0.229,12308,5.639]],["body/classes/ImportUserListResponse.html",[0,0.335,2,0.971,3,0.016,4,0.016,5,0.008,7,0.091,27,0.472,29,0.47,30,0.001,31,0.474,32,0.182,33,0.568,34,1.015,47,0.826,55,2.949,56,5.683,59,2.621,70,5.916,94,2.813,95,0.151,101,0.016,103,0.001,104,0.001,127,0.749,145,1.527,163,3.581,165,0.667,167,2.26,192,1.765,200,3.7,208,2.196,347,1.206,355,2.328,364,1.99,369,2.171,371,1.631,374,1.891,375,3.427,376,1.388,379,2.863,404,1.53,405,1.6,461,2.863,467,3.399,469,2.611,470,4.525,475,2.965,496,2.494,538,2.654,577,3.318,596,3.261,717,3.259,731,2.328,851,4.146,852,4.146,1000,3.612,1007,7.502,1008,6.444,1009,4.827,1011,3.15,1013,4.516,1014,2.905,1015,3.288,1016,2.113,1017,4.201,1018,5.503,1019,4.926,1020,3.915,1021,3.15,1022,4.201,1023,4.201,1025,3.749,1026,3.288,1031,1.897,1114,4.357,1298,2.796,1299,2.762,1300,2.762,1301,2.925,1302,3.202,1717,3.801,1932,3.03,2086,4.201,2910,3.23,2911,3.23,3105,3.749,3106,3.318,3110,2.867,4442,3.726,4960,3.749,5418,3.749,7668,3.567,9336,3.979,9337,4.289,9338,3.979,9339,4.289,9975,4.692,10330,4.12,10331,4.047,10350,4.201,10351,3.567,10363,4.387,11156,3.654,11447,4.498,11449,3.856,11470,4.949,11471,4.949,11827,4.289,12308,7.062,12309,10.018,12357,7.379,12358,4.949,12359,5.919,12360,5.919,12361,7.694,12362,5.468,12363,7.484,12364,5.468,12365,5.468,12366,4.949,12367,4.949,12368,4.949,12369,4.949,12370,5.468,12371,5.468,12372,7.803,12373,5.468,12374,4.772,12375,5.468,12376,5.468,12377,4.624,12378,5.468]],["title/classes/ImportUserMapper.html",[0,0.229,12299,5.892]],["body/classes/ImportUserMapper.html",[0,0.22,2,0.743,3,0.017,4,0.017,5,0.009,7,0.099,8,1.084,27,0.429,29,0.82,30,0.001,31,0.58,32,0.145,33,0.517,35,1.246,95,0.16,99,1.096,100,3.737,101,0.012,103,0.001,104,0.001,145,2.665,167,3.943,187,0.925,217,1.55,227,1.178,234,1.457,305,1.859,307,4.039,309,5.085,329,1.903,369,1.981,461,2.07,496,2.722,529,2.85,558,3.071,627,4.017,851,3.171,852,3.171,975,5.134,982,3.237,1828,4.006,2685,5.134,3032,8.069,4442,4.924,5147,4.681,6931,5.644,8894,8.3,8923,8.3,8926,7.512,8927,8.722,8981,5.969,10327,9.335,10330,4.497,10331,4.417,11447,4.909,11449,4.209,11459,8.62,11493,9,12275,9.335,12299,7.849,12302,5.402,12304,7.849,12309,9,12334,5.969,12374,5.208,12379,11.165,12380,8.985,12381,8.985,12382,6.461,12383,6.461,12384,8.985,12385,6.461,12386,5.047,12387,5.969,12388,5.402,12389,5.644,12390,6.461,12391,6.461,12392,6.461,12393,6.461,12394,6.461,12395,6.461,12396,6.461,12397,6.461,12398,6.461,12399,6.461,12400,6.461,12401,6.461,12402,5.969,12403,8.985,12404,6.461,12405,6.461,12406,5.969,12407,6.461,12408,6.461,12409,5.969,12410,6.461,12411,6.461,12412,6.461,12413,6.461,12414,6.461,12415,6.461,12416,6.461,12417,6.461,12418,6.461,12419,6.461,12420,6.461,12421,6.461,12422,6.461,12423,6.461,12424,6.461,12425,6.461]],["title/classes/ImportUserMatchMapper.html",[0,0.229,12388,5.639]],["body/classes/ImportUserMatchMapper.html",[0,0.291,2,0.983,3,0.023,4,0.023,5,0.012,7,0.131,8,1.306,27,0.45,29,0.859,30,0.001,31,0.607,32,0.152,33,0.541,35,1.306,95,0.139,99,1.45,101,0.016,103,0.001,104,0.001,227,1.359,305,2.459,307,5.343,309,6.124,329,2.517,529,3.77,577,7.218,627,4.095,982,4.282,4442,5.237,7668,5.151,10340,11.529,11450,10.603,11495,9.927,12388,9.047,12426,8.547,12427,10.82,12428,10.82,12429,10.82,12430,8.547,12431,10.82,12432,8.547,12433,10.372,12434,8.547,12435,7.895,12436,8.547,12437,7.895,12438,8.547,12439,7.895,12440,6.677,12441,8.547,12442,8.547,12443,8.547,12444,8.547]],["title/modules/ImportUserModule.html",[425,1.808,12445,5.437]],["body/modules/ImportUserModule.html",[0,0.255,3,0.02,4,0.02,5,0.011,30,0.001,52,3.477,94,3.562,95,0.169,101,0.014,103,0.001,104,0.001,187,1.073,191,4.164,192,2.235,200,2.442,425,3.182,427,2.771,428,2.922,429,3.013,430,3,431,2.973,432,4.121,433,3.748,437,9.01,438,5.997,441,7.742,442,3.995,443,2.948,444,2.873,447,4.167,449,3.995,450,3.083,461,1.727,823,9.2,836,4.327,1134,5.038,1545,2.394,1632,8.838,1887,4.627,1945,6.869,1951,8.153,2008,4.814,2321,4.958,2672,4.686,2835,4.467,3091,3.417,4442,3.306,7659,5.856,10533,5.856,12259,9.74,12305,11.729,12306,6.548,12307,6.925,12445,11.384,12446,7.496,12447,7.496,12448,7.496,12449,11.091,12450,7.496,12451,7.496,12452,7.496,12453,7.496]],["title/injectables/ImportUserRepo.html",[105,0.889,12449,5.892]],["body/injectables/ImportUserRepo.html",[0,0.171,3,0.013,4,0.013,5,0.007,7,0.077,8,0.904,10,3.024,12,3.453,18,3.7,26,2.072,27,0.504,29,0.943,30,0.001,31,0.666,32,0.167,33,0.594,34,1.537,35,1.432,36,2.758,40,3.604,49,1.957,56,2.415,58,3.179,59,2.324,94,3.559,95,0.143,96,2.024,97,2.135,98,2.991,99,0.851,101,0.01,103,0,104,0,105,0.987,107,1.201,111,1.791,112,3,144,1.371,167,4.53,187,0.718,192,2.961,217,1.602,221,2.721,227,1.121,234,1.453,277,2.997,305,1.444,329,1.478,369,1.106,380,1.049,381,2.464,398,1.469,404,1.356,461,2.795,496,2.114,529,3.951,596,3.015,692,4.67,701,4.145,807,4.636,844,5.234,877,6.734,883,3.139,884,3.537,885,4.456,908,3.06,909,3.098,910,3.06,911,3.098,913,3.06,914,3.098,915,2.763,919,3.813,964,3.431,1717,4.809,2185,4.238,2432,5.918,3091,2.288,3110,3.627,3394,3.431,3885,6.542,4960,3.179,5784,4.367,5786,3.561,6487,3.06,6774,6.356,6775,7.127,6785,5.55,6804,6.542,6805,3.72,6806,3.72,11153,4.046,11458,6.261,11459,7.908,11493,8.006,12402,4.636,12440,3.921,12449,6.542,12454,5.019,12455,7.488,12456,8.958,12457,8.958,12458,7.488,12459,7.488,12460,5.019,12461,5.019,12462,5.019,12463,5.019,12464,5.019,12465,5.019,12466,7.488,12467,5.019,12468,6.542,12469,5.019,12470,7.825,12471,5.019,12472,5.019,12473,5.019,12474,5.019,12475,5.019,12476,5.019,12477,5.019,12478,5.019,12479,5.019,12480,5.019,12481,5.019,12482,5.019,12483,5.019,12484,5.019,12485,5.019,12486,5.019,12487,5.019,12488,5.019,12489,5.019,12490,5.019,12491,7.488,12492,5.019,12493,7.488,12494,5.019,12495,5.019,12496,5.019,12497,5.019,12498,5.019,12499,5.019]],["title/classes/ImportUserResponse.html",[0,0.229,12309,5.437]],["body/classes/ImportUserResponse.html",[0,0.318,2,1.076,3,0.014,4,0.014,5,0.008,7,0.083,27,0.514,29,0.43,30,0.001,31,0.525,32,0.183,33,0.468,34,1.358,47,0.914,55,2.058,56,3.809,70,3.965,94,3.762,95,0.152,101,0.015,103,0,104,0,127,0.685,144,1.478,163,2.496,165,0.625,167,2.065,192,1.613,200,4.096,208,2.008,329,1.594,347,1.613,355,3.112,364,2.247,369,2.271,371,2.181,374,1.728,375,3.211,376,1.269,379,2.85,404,0.98,405,2.139,461,3.024,467,3.325,469,2.386,470,4.339,475,2.71,479,6.937,496,2.279,538,3.548,577,5.247,595,1.869,717,2.978,731,2.127,851,5.38,852,5.38,1000,3.385,1007,4.886,1008,2.952,1009,3.092,1013,4.292,1025,3.427,1026,3.005,1031,2.536,1114,4.798,1298,2.555,1299,2.525,1300,2.525,1301,2.673,1302,2.927,1480,3.033,1717,5.083,1932,4.052,2086,3.839,2910,4.319,2911,4.319,3105,5.014,3106,4.437,3110,3.834,4442,5.546,4960,5.014,5418,5.014,6910,4.998,7668,4.77,9336,3.636,9337,3.92,9338,3.636,9339,3.92,9975,5.722,10330,6.515,10331,6.399,10350,5.617,10351,4.77,10363,5.867,11156,4.886,11447,7.112,11449,6.098,11470,4.523,11471,4.523,11827,3.92,12308,4.523,12309,9.776,12357,10.984,12358,4.523,12361,8.563,12362,4.998,12363,8.328,12364,4.998,12365,4.998,12366,4.523,12367,4.523,12368,4.523,12369,4.523,12370,4.998,12371,4.998,12372,7.312,12373,4.998,12374,7.546,12375,7.312,12376,7.312,12377,4.226,12378,4.998,12500,5.41,12501,5.41,12502,5.41,12503,5.41,12504,5.41,12505,5.41,12506,5.41,12507,5.41,12508,5.41]],["title/classes/ImportUserScope.html",[0,0.229,12470,5.892]],["body/classes/ImportUserScope.html",[0,0.147,2,0.77,3,0.011,4,0.011,5,0.006,7,0.067,8,0.807,27,0.523,29,0.961,30,0.001,31,0.706,32,0.175,33,0.605,34,1.148,35,1.46,39,1.16,47,0.893,49,1.687,95,0.135,96,1.808,97,1.841,99,0.734,101,0.008,103,0,104,0,111,2.104,144,1.828,148,1.339,165,0.529,167,3.123,192,2.439,217,1.449,227,1.313,234,1.327,247,1.717,277,4.756,305,2.353,307,2.705,309,5.633,329,2.41,347,1.667,355,2.631,369,2.498,398,1.267,404,1.212,461,2.528,472,4.497,496,1.823,529,1.909,558,2.057,577,5.58,596,3.022,701,3.215,779,6.822,844,4.173,851,3.284,852,3.284,1285,6.669,1919,4.369,1921,6.089,2422,5.613,2432,5.931,4227,1.49,4232,2.705,4331,4.748,4538,5.955,4630,3.477,5147,5.927,5346,4.238,5369,5.911,5872,4.574,5873,4.574,5874,4.574,5879,4.574,5880,4.574,5881,3.012,5882,2.959,5883,3.012,5884,3.012,5893,2.959,5894,4.574,5895,3.012,5896,2.959,5897,3.012,5898,2.959,5899,8.269,6774,4.748,7668,4.033,10330,5.694,10331,2.959,10349,3.012,10351,2.608,11447,3.289,11448,6.216,11449,5.33,11452,5.227,11453,5.084,11454,5.084,11459,3.071,11495,7.696,12386,3.381,12435,3.998,12437,3.998,12439,3.998,12440,5.227,12470,11.195,12509,4.328,12510,6.692,12511,6.692,12512,6.692,12513,6.692,12514,6.692,12515,6.692,12516,6.692,12517,6.692,12518,6.692,12519,6.692,12520,4.328,12521,6.692,12522,4.328,12523,6.692,12524,4.328,12525,6.692,12526,4.328,12527,6.181,12528,4.848,12529,6.692,12530,4.328,12531,6.692,12532,4.328,12533,6.692,12534,4.328,12535,6.692,12536,4.328,12537,6.692,12538,4.328,12539,3.618,12540,3.998,12541,4.328,12542,3.998,12543,4.328,12544,4.328,12545,6.692,12546,4.328,12547,8.041,12548,8.503,12549,4.328,12550,6.692,12551,6.692,12552,6.692,12553,6.692,12554,4.328,12555,4.328,12556,4.328,12557,4.328,12558,4.328,12559,4.328,12560,4.328,12561,6.692,12562,4.328,12563,4.328,12564,5.394,12565,4.328,12566,4.328,12567,3.998]],["title/classes/ImportUserUrlParams.html",[0,0.229,12281,5.892]],["body/classes/ImportUserUrlParams.html",[0,0.389,2,1.077,3,0.025,4,0.025,5,0.013,7,0.144,27,0.389,30,0.001,32,0.131,34,1.964,47,0.833,95,0.147,101,0.018,103,0.001,104,0.001,165,0.905,200,3.731,359,3.97,364,1.735,368,4.523,369,2.524,370,3.82,371,3.156,374,2.99,376,2.195,379,2.157,461,2.97,467,3.077,472,7.697,769,6.824,1000,4.897,3834,5.46,4442,5.051,11459,8.126,12281,10.004,12357,10.004,12374,9.973,12568,9.362,12569,9.362]],["title/interfaces/InlineAttachment.html",[334,0.742,1566,4.999]],["body/interfaces/InlineAttachment.html",[3,0.023,4,0.023,5,0.012,7,0.135,30,0.001,31,0.493,32,0.123,47,1.028,77,5.567,101,0.017,103,0.001,104,0.001,165,0.87,334,1.479,336,2.141,404,2.351,1560,8.162,1561,6.678,1562,9.344,1563,9.865,1564,6.678,1565,4.882,1566,8.914,1567,6.368,1568,9.58,1569,6.368,1570,8.914,1571,6.678,1572,8.162,1573,8.368,1574,8.368,1575,8.162,1576,6.637,1577,6.514,1578,6.514,1579,6.678,1580,6.678]],["title/modules/InterceptorModule.html",[425,1.808,6322,5.639]],["body/modules/InterceptorModule.html",[0,0.292,3,0.023,4,0.023,5,0.012,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,163,3.421,187,1.229,217,1.134,227,0.906,234,1.392,379,1.978,425,2.908,427,3.172,432,3.172,558,4.079,704,6.176,728,4.248,789,8.027,801,5.006,836,6.262,837,6.361,839,4.029,1919,3.564,1991,4.644,2309,6.082,2510,6.872,3462,7.069,3976,9.294,5974,7.069,6322,9.071,6334,7.552,6335,10.393,6339,8.746,8217,6.522,8221,6.522,10789,6.091,11156,6.697,11370,7.176,12570,8.583,12571,8.746,12572,12.5,12573,9.071,12574,10.393,12575,8.583,12576,8.583]],["title/interfaces/IntrospectResponse.html",[334,0.742,10884,5.639]],["body/interfaces/IntrospectResponse.html",[3,0.02,4,0.02,5,0.011,7,0.117,30,0.001,32,0.194,33,0.712,47,1.036,51,5.906,55,2.937,101,0.015,103,0.001,104,0.001,165,0.794,277,4.783,334,0.839,336,1.857,337,5.212,347,2.291,359,3.898,1596,8.482,6054,8.482,6862,9.337,6864,9.337,6886,9.337,6887,9.337,10884,8.403,11590,7.906,12577,7.624,12578,11.952,12579,11.952,12580,11.952,12581,11.952,12582,11.952]],["title/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.229,12583,5.892]],["body/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.28,2,0.949,3,0.022,4,0.022,5,0.012,7,0.127,8,1.276,27,0.44,29,0.655,30,0.001,31,0.463,32,0.148,33,0.413,35,0.995,47,0.948,72,3.872,95,0.136,101,0.016,103,0.001,104,0.001,111,1.649,127,1.044,145,3.013,163,2.601,187,1.181,214,3.493,215,2.669,216,1.956,227,0.871,234,1.338,367,3.97,404,1.916,406,2.643,1110,5.297,1327,3.258,1542,5.449,1543,6.069,1545,2.635,1547,6.128,2090,5.934,2113,7.397,2115,10.683,2485,3.563,2685,6.674,3145,6.268,7629,6.114,8137,6.069,8138,6.318,8530,5.297,8537,4.862,8538,5.092,8546,6.897,8547,6.897,12583,9.241,12584,11.678,12585,9.414,12586,11.678,12587,8.249,12588,8.249,12589,6.444,12590,7.206,12591,8.249,12592,8.249]],["title/classes/IservMapper.html",[0,0.229,12593,5.892]],["body/classes/IservMapper.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,8,1.302,27,0.448,29,0.857,30,0.001,31,0.665,32,0.151,33,0.54,35,1.302,95,0.138,99,1.444,100,2.849,101,0.016,103,0.001,104,0.001,189,6.986,227,1.139,234,1.75,627,4.09,851,4.177,852,4.177,853,4.325,854,5.445,3110,4.122,4538,7.052,6938,7.278,8298,9.236,8300,5.32,9332,9.029,11449,8.118,12593,9.427,12594,11.85,12595,8.511,12596,9.969,12597,9.969,12598,10.791,12599,8.511,12600,6.86,12601,10.791,12602,8.511,12603,8.511,12604,7.862,12605,7.862,12606,8.511,12607,8.511,12608,8.511,12609,7.862]],["title/injectables/IservProvisioningStrategy.html",[105,0.889,12610,5.639]],["body/injectables/IservProvisioningStrategy.html",[0,0.196,3,0.015,4,0.015,5,0.008,7,0.089,8,1,27,0.467,29,0.843,30,0.001,31,0.596,32,0.149,33,0.531,34,0.989,35,1.281,36,2.543,47,0.851,95,0.164,99,0.978,100,1.93,101,0.011,103,0.001,104,0.001,105,1.092,107,1.38,111,1.153,112,2.625,127,0.73,128,4.649,129,6.551,132,5.324,145,2.738,163,1.818,167,3.165,187,0.825,189,4.648,191,3.203,192,1.719,215,1.866,216,1.533,217,1.685,221,2.501,227,1.186,234,1.574,247,2.287,305,2.385,348,5.572,369,1.271,404,1.501,406,1.848,461,2.59,596,2.947,775,3.516,798,3.605,853,4.213,1114,2.339,1136,5.038,1648,4.274,1683,3.399,1708,4.178,1813,6.007,2180,5.251,2309,3.233,4227,1.985,4538,5.493,4561,3.068,4630,2.997,5868,4.178,6938,4.692,6942,5.883,8291,3.876,8298,6.145,9332,6.007,10950,5.883,10952,4.382,11156,5.117,11449,5.401,11476,4.821,11848,7.317,11850,6.324,11851,3.814,11852,3.814,12145,7.354,12593,5.038,12610,6.931,12611,5.767,12612,8.291,12613,6.476,12614,8.555,12615,5.767,12616,6.683,12617,8.148,12618,5.767,12619,8.291,12620,5.767,12621,6.683,12622,7.866,12623,5.767,12624,5.767,12625,5.038,12626,6.299,12627,5.038,12628,5.767,12629,5.767,12630,5.327,12631,9.707,12632,5.038,12633,5.327,12634,8.291,12635,5.767,12636,5.327,12637,5.767,12638,5.767,12639,5.767,12640,5.767,12641,5.767,12642,5.767,12643,5.767,12644,5.327,12645,6.683,12646,5.767,12647,6.931,12648,5.767,12649,6.683,12650,5.038,12651,5.327,12652,5.767,12653,5.767,12654,5.767,12655,5.767,12656,5.767,12657,5.767,12658,5.038]],["title/injectables/JwtAuthGuard.html",[105,0.889,12659,5.892]],["body/injectables/JwtAuthGuard.html",[0,0.356,3,0.028,4,0.028,5,0.015,30,0.001,95,0.157,101,0.02,103,0.001,104,0.001,105,1.612,107,2.502,187,1.497,404,1.894,1640,7.75,12659,10.688,12660,10.456,12661,10.456,12662,9.659,12663,10.456]],["title/interfaces/JwtConstants.html",[334,0.742,1649,5.639]],["body/interfaces/JwtConstants.html",[3,0.023,4,0.023,5,0.013,7,0.136,30,0.001,32,0.177,39,2.371,47,0.998,85,6.912,95,0.114,101,0.021,103,0.001,104,0.001,138,4.801,165,0.874,217,1.46,334,0.974,336,2.155,369,1.95,772,9.66,1132,7.132,1646,6.911,1649,10.566,1687,6.722,1689,8.173,1691,5.461,1693,7.397,1696,7.434,1827,6.557,1919,3.674,1987,5.681,2488,6.048,2835,5.272,6054,6.278,6862,6.911,6864,6.911,6886,6.911,6887,6.911,12664,8.847,12665,13.009,12666,11.058,12667,8.847,12668,8.847,12669,7.397,12670,7.397,12671,8.847,12672,8.847,12673,8.847,12674,7.729,12675,8.847,12676,8.847]],["title/classes/JwtExtractor.html",[0,0.229,12677,5.892]],["body/classes/JwtExtractor.html",[0,0.293,2,0.991,3,0.023,4,0.023,5,0.012,7,0.133,8,1.313,27,0.358,29,0.685,30,0.001,31,0.611,32,0.121,33,0.431,35,1.04,47,0.91,95,0.153,101,0.016,103,0.001,104,0.001,167,4.153,217,1.138,227,1.148,351,5.89,367,5.737,535,5.886,627,3.711,731,4.278,1298,5.138,1299,5.076,1300,5.076,1301,5.89,1302,6.449,1303,8.149,1304,7.196,1315,6.734,1683,5.081,6491,5.136,10974,9.095,11046,9.095,12677,9.503,12678,10.05,12679,8.62,12680,10.879,12681,10.879,12682,8.62,12683,11.92,12684,6.734,12685,8.62,12686,10.879]],["title/interfaces/JwtPayload.html",[334,0.742,1813,4.887]],["body/interfaces/JwtPayload.html",[3,0.022,4,0.022,5,0.012,7,0.128,30,0.001,32,0.183,39,2.229,47,1.025,48,3.904,55,2.872,85,5.199,101,0.02,103,0.001,104,0.001,165,0.84,334,1.171,336,2.026,347,1.694,355,3.27,404,1.926,461,1.916,575,4.956,956,5.419,1687,8.08,1691,6.564,1794,9.45,1813,7.705,1827,9.158,1919,5.131,2488,5.686,3110,4.029,4227,2.863,4641,5.59,4997,5.419,6054,8.768,6862,9.652,6864,9.652,6886,9.652,6887,9.652,6893,7.683,6894,7.683,6895,6.705,6896,5.341,6897,9.29]],["title/injectables/JwtStrategy.html",[105,0.889,1628,5.892]],["body/injectables/JwtStrategy.html",[0,0.257,3,0.02,4,0.02,5,0.011,7,0.116,8,1.207,27,0.416,29,0.794,30,0.001,31,0.561,32,0.14,33,0.5,35,0.913,36,2.173,85,4.73,95,0.171,101,0.014,103,0.001,104,0.001,105,1.318,107,1.81,112,2.512,127,0.957,187,1.083,204,2.595,206,3.873,215,2.449,216,1.399,217,1.321,221,1.783,227,0.799,231,6.466,234,1.227,305,2.177,334,0.833,371,2.085,404,1.37,406,2.425,461,1.743,491,3.714,496,3.188,513,5.119,685,3.963,784,3.994,1121,5.267,1158,4.026,1240,6.466,1459,6.615,1628,8.736,1629,10.262,1640,5.608,1649,6.326,1650,6.61,1654,6.61,1683,7.024,1697,6.99,1813,8.635,1820,6.326,1827,7.412,1919,3.142,2038,5.172,3876,5.911,4485,5.172,5367,6.099,5974,6.515,6929,5.749,9401,4.73,10539,6.61,11590,5.005,12677,6.61,12684,5.911,12687,7.567,12688,7.567,12689,7.567,12690,10,12691,7.567,12692,6.326,12693,7.567,12694,7.567,12695,6.326,12696,7.567,12697,7.567,12698,7.567,12699,7.567,12700,7.567,12701,7.567,12702,7.567,12703,7.567,12704,7.567,12705,7.567,12706,7.567,12707,7.567]],["title/classes/JwtTestFactory.html",[0,0.229,6877,5.892]],["body/classes/JwtTestFactory.html",[0,0.26,2,0.878,3,0.02,4,0.02,5,0.011,7,0.118,8,1.214,27,0.418,29,0.607,30,0.001,31,0.429,32,0.158,33,0.382,35,1.214,47,0.995,59,2.37,85,7.035,95,0.129,101,0.015,103,0.001,104,0.001,116,3.256,185,2.991,217,1.58,227,1.062,334,0.841,565,5.312,627,3.973,1646,5.967,1648,5.661,1671,6.386,1683,4.502,1687,5.804,1691,4.715,1812,7.141,1827,7.458,4474,7.646,6054,7.141,6860,10.449,6861,7.056,6862,7.861,6863,8.413,6864,7.861,6865,10.396,6866,10.392,6867,9.296,6868,7.056,6869,7.056,6870,7.056,6871,7.056,6872,8.791,6873,7.056,6874,9.296,6875,9.296,6876,7.056,6877,8.791,6878,10.449,6879,9.296,6880,9.296,6881,7.056,6882,7.056,6883,7.056,6884,7.056,6885,7.056,6886,5.967,6887,5.967,6888,6.673,6889,7.056,6890,7.056,6891,7.056,6892,7.056,12708,10.063,12709,7.638,12710,7.638]],["title/injectables/JwtValidationAdapter.html",[105,0.889,1629,5.437]],["body/injectables/JwtValidationAdapter.html",[0,0.213,3,0.017,4,0.017,5,0.009,7,0.097,8,1.063,27,0.458,29,0.876,30,0.001,31,0.619,32,0.155,33,0.552,34,1.892,35,1.227,36,2.615,47,1.001,85,7.259,94,4.186,95,0.154,101,0.012,103,0.001,104,0.001,105,1.161,107,1.502,111,1.761,112,2.875,127,1.115,187,0.899,216,1.628,217,1.163,221,2.397,264,3.729,368,3.478,371,1.73,379,1.447,691,5.775,731,3.463,839,2.948,1240,5.084,1298,4.16,1299,4.11,1300,4.11,1301,4.352,1302,4.765,1303,6.021,1608,4.654,1629,7.1,1641,5.486,1683,7.436,1827,9.9,1848,5.92,1921,5.826,1987,4.033,1990,6.88,2510,6.985,3091,4.015,3851,6.88,3893,10.336,3897,5.486,3900,4.771,3902,5.486,3910,5.486,3911,9.072,3912,6.88,6897,7.694,10539,7.694,11216,5.656,11455,7.694,12678,10.727,12711,6.28,12712,8.808,12713,8.808,12714,8.808,12715,6.28,12716,6.28,12717,8.808,12718,8.808,12719,6.28,12720,8.808,12721,6.28,12722,8.808,12723,8.136,12724,8.808,12725,8.808,12726,6.28,12727,6.28,12728,6.28,12729,6.28,12730,6.28,12731,8.808,12732,6.28,12733,6.28,12734,6.28,12735,8.808,12736,8.808,12737,6.28,12738,6.28,12739,6.28]],["title/classes/KeycloakAdministration.html",[0,0.229,12740,6.23]],["body/classes/KeycloakAdministration.html",[0,0.291,2,0.983,3,0.023,4,0.023,5,0.012,7,0.131,27,0.355,30,0.001,47,1.011,51,5.347,87,6.167,95,0.139,101,0.016,103,0.001,104,0.001,144,2.335,165,0.855,238,5.854,329,3.187,347,2.204,627,3.696,2171,3.673,2172,4.087,2173,3.941,2335,7.146,3898,4.664,5472,6.167,7853,8.02,11075,7.157,11092,5.949,11439,6.184,11500,6.679,11513,10.765,11515,9.047,11516,9.927,11760,9.047,12188,8.723,12740,9.996,12741,10.82,12742,10.82,12743,10.82,12744,10.82,12745,10.82,12746,10.82,12747,8.547,12748,6.677]],["title/modules/KeycloakAdministrationModule.html",[425,1.808,12183,5.269]],["body/modules/KeycloakAdministrationModule.html",[0,0.301,3,0.024,4,0.024,5,0.013,7,0.136,30,0.001,95,0.167,101,0.017,103,0.001,104,0.001,154,4.042,187,1.269,425,3.236,427,3.277,428,3.457,429,3.564,430,3.548,431,3.517,432,4.463,433,4.553,442,4.451,443,3.487,444,3.399,447,3.717,773,5.694,836,5.118,1420,6.172,2335,7.413,3544,4.598,10351,6.674,11439,5.067,11500,5.473,11516,9.258,12183,10.521,12188,7.148,12748,6.927,12749,8.867,12750,8.867,12751,8.867,12752,10.123,12753,8.867,12754,10.229,12755,6.572,12756,8.191,12757,8.191,12758,7.413,12759,7.413,12760,6.737,12761,8.867]],["title/injectables/KeycloakAdministrationService.html",[105,0.889,12752,4.887]],["body/injectables/KeycloakAdministrationService.html",[0,0.182,3,0.014,4,0.014,5,0.008,7,0.121,8,0.95,27,0.535,29,0.426,30,0.001,31,0.301,32,0.11,33,0.268,34,0.921,35,1.49,36,2.481,47,0.83,55,1.18,95,0.12,101,0.01,103,0,104,0,105,1.037,107,1.284,111,2.544,112,2.961,116,4.47,127,0.996,144,2.15,148,2.434,165,0.622,187,0.768,216,1.455,217,1.443,221,2.851,227,1.277,234,1.276,238,2.904,247,3.696,329,2.318,369,1.183,371,1.479,627,2.9,784,2.833,839,2.519,1158,2.856,1459,3.55,1839,7.269,1841,5.702,2171,2.306,2335,4.487,3544,3.267,5472,2.652,7134,3.234,10351,4.742,11439,7.427,11500,8.022,11513,8.579,11515,4.487,11516,4.487,12748,4.193,12752,5.702,12754,9.479,12755,3.978,12756,4.958,12757,4.958,12762,9.875,12763,5.367,12764,9.317,12765,9.317,12766,10.261,12767,10.261,12768,10.261,12769,10.261,12770,10.261,12771,10.261,12772,10.261,12773,10.261,12774,10.261,12775,4.958,12776,9.317,12777,7.869,12778,7.269,12779,5.367,12780,5.367,12781,5.367,12782,5.367,12783,5.367,12784,5.367,12785,5.367,12786,5.367,12787,5.367,12788,7.869,12789,5.367,12790,5.367,12791,5.367,12792,5.367,12793,5.367,12794,5.367,12795,5.367,12796,7.869,12797,5.367,12798,5.367,12799,5.367,12800,7.869,12801,6.343,12802,7.869,12803,9.317,12804,4.958,12805,4.958,12806,5.367,12807,5.367,12808,4.958,12809,4.688,12810,5.367,12811,5.367,12812,5.367,12813,9.317,12814,7.869,12815,5.367]],["title/classes/KeycloakConfiguration.html",[0,0.229,12758,5.639]],["body/classes/KeycloakConfiguration.html",[0,0.327,2,1.108,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,95,0.124,101,0.018,103,0.001,104,0.001,144,2.632,165,0.92,329,3.432,627,3.899,2171,4.139,2309,5.399,11092,6.703,11439,6.658,11500,7.191,11506,10.473,11509,10.762,11510,10.762,12748,7.523,12758,9.741,12816,10.177,12817,12.526,12818,11.651,12819,11.651,12820,9.631,12821,8.413]],["title/modules/KeycloakConfigurationModule.html",[425,1.808,12822,5.639]],["body/modules/KeycloakConfigurationModule.html",[0,0.228,3,0.018,4,0.018,5,0.009,30,0.001,95,0.175,101,0.013,103,0.001,104,0.001,154,3.063,187,0.962,425,2.826,427,2.484,428,2.62,429,2.701,430,2.689,431,2.666,432,3.898,433,3.976,437,8.725,438,5.808,442,3.711,443,2.642,444,2.576,447,3.87,449,3.711,773,5.928,836,3.879,1420,4.677,1545,2.146,1626,8.725,2171,2.888,2309,3.767,3456,4.769,3533,9.605,8104,8.909,8636,4.677,11439,3.84,11500,4.148,11511,8.065,11570,9.343,11571,5.417,11572,5.417,11581,10.341,11749,6.208,12183,9.605,12188,5.417,12189,5.87,12748,5.25,12758,5.618,12759,8.817,12816,5.87,12821,5.87,12822,11.764,12823,6.72,12824,6.72,12825,6.72,12826,6.72,12827,11.21,12828,10.725,12829,10.28,12830,6.72,12831,9.212,12832,6.72,12833,6.72,12834,7.718,12835,6.208,12836,6.208,12837,6.208,12838,6.208,12839,6.72,12840,6.72,12841,5.618,12842,6.72]],["title/injectables/KeycloakConfigurationService.html",[105,0.889,12827,5.639]],["body/injectables/KeycloakConfigurationService.html",[0,0.09,3,0.007,4,0.007,5,0.004,7,0.041,8,0.541,10,1.811,27,0.462,29,0.776,30,0.001,31,0.585,32,0.137,33,0.489,34,1.831,35,1.341,36,2.414,47,0.872,59,0.821,74,2.132,95,0.14,101,0.005,103,0,104,0,105,0.591,107,0.633,111,2.569,112,2.868,116,3.163,127,0.567,154,3.813,187,0.379,200,0.861,206,3.52,216,1.271,217,1.728,221,3.133,227,0.812,235,4.357,247,1.049,264,1.898,355,1.04,369,1.844,371,2.121,379,0.609,394,1.511,403,1.749,461,1.345,500,3.066,524,2.643,575,1.576,576,4.537,731,3.688,773,3.749,789,5.725,801,1.542,804,2.009,805,2.132,883,2.448,905,2.424,1031,0.847,1114,1.819,1298,4.43,1299,4.376,1300,4.376,1415,1.594,1828,1.999,1865,4.38,2296,1.877,2321,1.749,2423,1.613,2489,2.563,2951,2.672,2955,2.538,4038,1.632,4530,2.132,4556,1.354,4641,3.014,5472,2.216,5784,4.49,6054,3.182,6863,4.881,6901,2.066,7136,3.324,7139,1.96,7786,2.443,8353,2.443,8682,2.009,10349,1.841,10351,5.041,10854,5.75,10977,6.436,11083,2.735,11216,2.88,11439,6.456,11500,6.973,11515,8.457,11845,6.465,11847,4.787,11923,1.96,12236,5.1,12752,4.983,12755,6.199,12760,2.009,12762,2.009,12801,8.154,12804,2.443,12805,2.443,12808,2.443,12809,2.31,12827,3.749,12834,7.454,12835,2.443,12836,2.443,12843,9.869,12844,4.484,12845,6.877,12846,6.877,12847,6.877,12848,6.877,12849,4.484,12850,4.484,12851,4.484,12852,6.877,12853,4.484,12854,4.484,12855,4.484,12856,4.484,12857,2.211,12858,7.454,12859,2.644,12860,3.749,12861,4.484,12862,2.644,12863,9.379,12864,2.644,12865,2.644,12866,2.644,12867,2.644,12868,4.484,12869,8.338,12870,2.644,12871,4.484,12872,2.644,12873,8.916,12874,4.484,12875,2.644,12876,2.644,12877,5.839,12878,4.484,12879,2.644,12880,5.839,12881,4.484,12882,8.365,12883,6.353,12884,2.644,12885,4.484,12886,5.839,12887,4.484,12888,2.644,12889,4.484,12890,2.644,12891,2.644,12892,2.644,12893,2.644,12894,2.644,12895,4.484,12896,2.644,12897,2.644,12898,2.443,12899,2.644,12900,2.132,12901,2.644,12902,2.443,12903,4.484,12904,9.618,12905,2.31,12906,3.917,12907,5.839,12908,4.707,12909,5.839,12910,8.836,12911,4.484,12912,5.1,12913,4.484,12914,7.699,12915,4.484,12916,7.699,12917,2.644,12918,8.365,12919,2.644,12920,2.644,12921,2.644,12922,4.484,12923,4.484,12924,4.484,12925,4.484,12926,2.644,12927,4.484,12928,2.443,12929,2.31,12930,2.644,12931,2.644,12932,5.1,12933,5.1,12934,4.484,12935,4.484,12936,2.31,12937,2.644,12938,2.31,12939,2.443,12940,4.143,12941,2.443,12942,2.443,12943,2.644,12944,2.644,12945,4.484,12946,4.484,12947,4.484,12948,3.407,12949,2.644,12950,2.644,12951,2.644,12952,2.644,12953,2.644,12954,2.644,12955,4.484,12956,2.644,12957,5.839,12958,5.839,12959,2.644,12960,5.839,12961,2.644,12962,5.839,12963,2.644,12964,2.644,12965,4.484,12966,2.644,12967,4.484,12968,4.484,12969,4.484,12970,6.877,12971,2.644,12972,2.644,12973,4.484,12974,2.644,12975,4.143,12976,2.644,12977,2.644,12978,5.839,12979,4.484,12980,5.839,12981,4.484,12982,2.644,12983,2.644,12984,4.484,12985,2.644,12986,4.484,12987,2.644,12988,2.644,12989,2.644,12990,2.644,12991,2.644,12992,2.644,12993,4.484,12994,4.484,12995,2.644,12996,2.644,12997,4.484,12998,2.644,12999,2.443,13000,2.644,13001,2.443,13002,4.484,13003,2.644,13004,2.644,13005,2.644,13006,2.644,13007,2.644,13008,2.644,13009,2.644,13010,2.644]],["title/injectables/KeycloakConfigurationUc.html",[105,0.889,11570,5.125]],["body/injectables/KeycloakConfigurationUc.html",[0,0.231,3,0.018,4,0.018,5,0.01,7,0.104,8,1.122,27,0.512,29,0.738,30,0.001,31,0.522,32,0.13,33,0.465,35,1.441,36,2.867,55,2.331,59,2.885,70,3.401,95,0.153,101,0.013,103,0.001,104,0.001,105,1.225,107,1.624,111,2.28,112,3.066,116,4.346,127,1.176,187,0.972,216,2.108,221,2.687,227,1.26,347,2.16,773,4.359,1240,6.581,7657,8.091,8401,6.271,8418,6.271,9822,8.091,11439,7.217,11500,7.795,11568,8.907,11570,7.063,11610,8.451,11616,6.735,12752,8.261,12759,8.863,12760,5.158,12762,5.158,12827,9.533,12828,10.558,12829,10.558,12837,6.271,12838,6.271,12841,5.675,12857,5.675,12860,7.772,13011,12.628,13012,10.601,13013,6.788,13014,6.788,13015,6.788,13016,6.788,13017,9.296,13018,6.788,13019,6.788,13020,6.788,13021,6.788,13022,6.788,13023,6.788,13024,6.788,13025,6.788,13026,6.788,13027,6.788]],["title/classes/KeycloakConsole.html",[0,0.229,11581,5.437]],["body/classes/KeycloakConsole.html",[0,0.12,2,0.406,3,0.009,4,0.009,5,0.005,7,0.054,8,0.687,27,0.453,29,0.838,30,0.001,31,0.569,32,0.148,33,0.507,35,1.224,36,2.574,47,0.597,52,3.322,53,4.043,55,2.516,70,3.588,72,3.858,78,8.807,95,0.105,101,0.007,103,0,104,0,111,2.11,112,2.889,127,0.721,144,1.557,145,2.487,148,1.092,165,0.45,204,1.211,216,1.324,217,1.191,221,2.568,227,0.756,234,0.924,247,2.26,264,3.032,305,1.016,329,3.108,334,0.627,347,0.719,364,1.67,368,3.807,371,3.003,379,2.862,403,4.737,432,2.106,461,1.894,529,1.557,575,2.104,627,2.229,687,1.638,692,1.315,701,4.249,768,4.043,773,5.277,798,2.207,803,2.207,905,3.412,907,6.71,1052,2.919,1053,3.644,1236,3.433,1240,5.564,1545,1.128,1717,6.777,1724,4.607,1850,4.592,1991,3.082,2008,2.267,2171,2.448,2188,4.592,2489,3.256,2841,5.524,3091,4.968,3448,5.524,3453,7.268,3456,2.505,3457,8.646,3458,6.106,3459,2.104,5391,4.329,5784,7.244,6326,4.592,6896,2.267,6911,2.3,7181,7.531,7652,5.011,7657,7.197,7667,7.531,8159,2.505,9822,6.398,10769,2.846,11421,7.214,11439,6.394,11500,6.906,11565,4.763,11566,9.774,11567,3.084,11568,4.45,11569,6.256,11570,7.706,11571,2.846,11572,2.846,11573,4.977,11574,3.084,11575,3.084,11576,9.564,11577,3.084,11578,3.084,11579,3.084,11580,2.758,11581,4.592,11582,3.084,11583,6.256,11584,4.977,11585,9.774,11586,4.222,11587,4.977,11588,4.977,11589,9.52,11590,3.768,11591,4.128,11592,5.72,11593,4.329,11594,3.084,11595,3.084,11596,4.977,11597,7.179,11598,4.977,11599,7.179,11600,3.084,11601,3.084,11602,7.179,11603,7.179,11604,4.592,11605,4.977,11606,3.084,11607,3.084,11608,4.222,11609,4.763,11610,6.682,11611,4.977,11612,3.084,11613,3.084,11614,3.084,11615,4.977,11616,6.533,11617,2.846,11618,2.846,11619,4.977,11620,3.084,11621,3.084,11622,3.084,11623,3.084,11624,3.084,11625,3.084,11626,4.977,11627,3.084,11628,3.084,11629,3.084,11630,4.592,13028,5.697,13029,3.531,13030,3.531,13031,3.531,13032,3.531,13033,3.531,13034,3.531,13035,3.531,13036,3.531,13037,3.531,13038,3.531,13039,3.531,13040,3.531]],["title/injectables/KeycloakIdentityManagementOauthService.html",[105,0.889,12191,5.639]],["body/injectables/KeycloakIdentityManagementOauthService.html",[0,0.19,3,0.015,4,0.015,5,0.008,7,0.086,8,0.977,27,0.481,29,0.643,30,0.001,31,0.455,32,0.147,33,0.405,35,1.261,36,2.515,47,0.933,51,4.002,87,5.485,95,0.16,101,0.011,103,0,104,0,105,1.067,107,1.336,111,2.388,112,2.796,127,1.025,145,2.697,148,2.505,150,2.047,163,2.553,165,0.64,187,0.799,216,1.933,217,1.577,221,2.246,227,1.222,234,0.905,235,3.16,277,2.234,369,1.231,404,1.467,406,1.789,596,2.894,773,3.585,784,2.947,789,7.67,801,3.256,803,6.939,839,2.621,853,2.837,1016,2.892,1158,2.971,1253,2.574,1265,8.164,1266,3.19,1267,6.154,1268,3.585,1381,3.256,1459,3.693,1596,3.962,1597,4.5,1598,4.877,1691,3.446,2344,2.307,2841,7.461,2955,3.16,4556,2.858,5382,3.19,5472,4.709,7134,4.881,7136,4.138,8108,4.138,8597,3.752,8636,3.886,9083,7.575,9113,4.5,10883,6.528,10903,4.877,10904,4.877,10905,4.668,10906,4.877,10919,5.157,11007,8.325,11072,3.816,11075,3.693,11076,4.668,11077,3.816,11080,3.816,11083,4.938,11087,6.405,11439,5.974,12185,9.044,12187,4.668,12191,6.771,12194,5.157,12195,9.657,12196,9.657,12197,7.481,12200,7.481,12202,7.944,12752,7.575,12760,4.242,12762,4.242,12900,4.5,12940,7.481,12941,5.157,12942,5.157,13041,9.133,13042,9.53,13043,10.454,13044,5.583,13045,8.099,13046,8.099,13047,5.583,13048,5.583,13049,5.583,13050,5.583,13051,11.577,13052,5.583,13053,5.583,13054,5.583,13055,5.583,13056,5.583,13057,5.583,13058,5.583,13059,5.583,13060,5.583,13061,5.583,13062,5.583,13063,5.583,13064,5.583,13065,5.583,13066,5.583,13067,5.583,13068,5.583,13069,5.583,13070,5.583]],["title/injectables/KeycloakIdentityManagementService.html",[105,0.889,12193,5.639]],["body/injectables/KeycloakIdentityManagementService.html",[0,0.115,3,0.009,4,0.009,5,0.005,7,0.052,8,0.662,27,0.494,29,0.956,30,0.001,31,0.657,32,0.171,33,0.585,34,2.179,35,1.412,36,2.777,39,2.873,47,0.994,51,4.661,59,1.702,87,5.573,94,3.799,95,0.121,98,2.007,99,0.571,101,0.006,103,0,104,0,105,0.723,107,0.806,111,1.886,112,2.999,116,1.775,127,0.426,144,2.578,145,0.869,167,2.093,187,0.482,215,1.09,216,0.623,217,1.608,221,3.075,227,1.253,234,1.681,247,2.175,305,2.982,369,1.209,371,1.511,403,5.287,404,0.993,406,1.079,461,2.173,484,4.79,485,4.79,510,2.44,511,4.504,521,4.42,558,1.601,575,2.007,596,3.425,643,3.891,701,2.422,738,1.944,750,7.769,756,2.942,758,3.111,759,2.942,760,2.942,773,2.163,784,1.778,788,9.575,851,3.404,852,3.404,853,3.524,905,2.277,1008,2.992,1062,1.47,1092,4.585,1158,1.792,1415,3.305,1459,3.627,2298,3.305,2841,5.914,3493,2.816,3945,2.715,7721,2.816,7722,2.942,10351,2.03,11439,4.568,12173,2.559,12193,4.585,12204,5.065,12205,5.065,12206,5.065,12207,5.065,12208,7.384,12209,6.407,12210,6.407,12211,5.065,12212,5.065,12213,5.065,12214,7.384,12219,5.065,12222,5.065,12223,5.065,12225,5.065,12228,5.065,12229,7.384,12232,3.111,12233,9.187,12235,8.714,12237,3.111,12238,8.129,12244,2.631,12752,5.792,12755,2.496,12760,2.559,12762,2.559,12775,3.111,12778,5.065,12801,6.444,13041,6.983,13071,5.484,13072,5.484,13073,3.368,13074,3.368,13075,5.484,13076,3.368,13077,5.484,13078,7.687,13079,3.368,13080,5.484,13081,3.368,13082,3.368,13083,3.368,13084,5.484,13085,3.368,13086,3.368,13087,3.368,13088,3.368,13089,3.368,13090,5.484,13091,3.368,13092,5.484,13093,3.368,13094,2.942,13095,10.367,13096,3.368,13097,5.484,13098,5.484,13099,5.484,13100,2.942,13101,2.942,13102,2.942,13103,3.368,13104,5.484,13105,5.484,13106,3.368,13107,3.368,13108,3.368,13109,5.484,13110,3.368,13111,6.935,13112,3.368,13113,6.935,13114,5.484,13115,5.484,13116,3.368,13117,7.994,13118,5.484,13119,5.484,13120,3.368,13121,3.368,13122,2.942,13123,3.368,13124,3.368,13125,3.368,13126,3.368,13127,3.368,13128,3.368,13129,3.368,13130,3.368,13131,3.368,13132,5.484,13133,5.484,13134,6.935,13135,6.935,13136,3.368,13137,2.942,13138,3.111,13139,2.496,13140,2.44,13141,3.368,13142,3.368,13143,3.368,13144,3.368,13145,3.368,13146,3.368,13147,3.368,13148,3.368,13149,3.368,13150,3.368]],["title/controllers/KeycloakManagementController.html",[481,2.629,12831,5.892]],["body/controllers/KeycloakManagementController.html",[0,0.272,3,0.021,4,0.021,5,0.011,7,0.123,8,1.25,27,0.332,30,0.001,35,1.25,36,2.251,55,2.278,72,4.864,78,7.861,95,0.148,101,0.015,103,0.001,104,0.001,111,1.597,112,2.579,187,1.143,215,2.585,216,1.915,221,2.71,227,1.093,234,1.295,305,2.298,364,1.48,432,3.829,447,3.348,481,3.114,483,3.844,784,4.216,905,3.316,1052,3.255,1053,4.594,1158,4.25,1236,6.244,1459,5.283,1545,2.551,2340,6.438,2841,6.964,2955,4.52,3091,5.548,6047,6.75,10349,7.212,11439,5.921,11500,6.395,11570,7.872,11571,6.438,11572,6.438,11604,9.81,12831,9.051,13151,10.361,13152,7.378,13153,7.987,13154,12.169,13155,10.361,13156,7.987,13157,10.361,13158,10.361,13159,8.352,13160,8.352,13161,10.361,13162,9.571,13163,10.361,13164,11.5,13165,7.987,13166,7.987,13167,7.987,13168,7.987,13169,7.987,13170,7.987,13171,7.987,13172,7.987]],["title/injectables/KeycloakMigrationService.html",[105,0.889,12829,5.639]],["body/injectables/KeycloakMigrationService.html",[0,0.194,3,0.015,4,0.015,5,0.008,7,0.088,8,0.994,27,0.401,29,0.767,30,0.001,31,0.542,32,0.148,33,0.483,34,1.413,35,0.994,36,2.297,51,4.773,55,1.812,66,7.097,70,4.839,87,2.825,94,5.024,95,0.15,101,0.011,103,0.001,104,0.001,105,1.086,107,1.368,111,2.334,112,2.617,127,1.043,144,2.251,187,0.818,216,1.786,217,1.626,221,2.902,227,1.019,234,0.927,247,4.445,305,1.645,329,1.684,369,1.816,371,2.27,403,6.992,639,7.159,643,6.855,648,4.78,651,9.765,731,3.24,773,3.672,784,3.018,798,3.574,818,8.716,894,4.609,905,4.011,907,3.98,983,4.78,1018,5.368,1021,4.384,1052,3.937,1053,4.687,1126,4.143,1158,3.042,1182,4.78,1195,4.609,1298,3.892,1299,3.845,1300,3.845,1415,3.446,1459,5.45,1545,1.826,1646,4.466,1807,4.466,1808,4.238,2287,4.609,2951,3.407,3945,4.609,7853,4.238,10351,3.446,10381,4.344,10977,6.889,11439,6.041,11500,6.525,11568,8.753,11616,5.97,12244,4.466,12752,7.659,12755,4.238,12760,4.344,12762,4.344,12801,4.609,12829,6.889,12843,9.234,12857,4.78,12860,6.889,12910,4.995,13078,7.198,13094,4.995,13100,4.995,13101,4.995,13102,4.995,13122,4.995,13137,4.995,13173,4.78,13174,7.612,13175,5.718,13176,7.612,13177,5.718,13178,8.24,13179,5.718,13180,5.718,13181,9.66,13182,5.718,13183,5.718,13184,8.24,13185,5.282,13186,5.718,13187,5.718,13188,5.718,13189,7.612,13190,5.282,13191,7.612,13192,5.282,13193,5.282,13194,5.282,13195,7.612,13196,7.612,13197,9.66,13198,5.718,13199,5.282,13200,5.718,13201,5.718,13202,5.718]],["title/modules/KeycloakModule.html",[425,1.808,12184,5.437]],["body/modules/KeycloakModule.html",[0,0.276,3,0.022,4,0.022,5,0.011,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,187,1.162,425,3.106,427,3,428,3.164,429,3.263,430,3.248,431,3.219,432,4.283,433,4.37,438,6.129,442,4.208,443,3.191,444,3.111,449,4.208,773,5.212,803,5.073,1266,4.638,1545,2.592,2841,7.036,3956,7.036,7721,6.785,8104,9.402,8636,5.649,11439,4.638,12183,10.137,12184,11.307,12187,6.785,12188,6.542,12189,7.09,12191,11.54,12193,11.54,12759,8.752,13203,8.116,13204,8.116,13205,8.116,13206,8.116,13207,8.116]],["title/classes/KeycloakSeedService.html",[0,0.229,12828,5.639]],["body/classes/KeycloakSeedService.html",[0,0.167,2,0.566,3,0.013,4,0.013,5,0.007,7,0.076,8,0.89,18,2.431,27,0.46,29,0.586,30,0.001,31,0.414,32,0.124,33,0.369,34,1.266,35,1.271,36,2.67,51,4.374,72,2.31,87,2.431,94,4.207,95,0.147,101,0.009,103,0,104,0,111,2.495,112,2.918,116,2.865,127,0.934,144,1.345,145,1.27,163,2.326,187,0.704,216,1.364,217,1.669,221,3.089,227,1.211,247,3.511,369,2.168,371,1.356,394,2.812,403,4.881,461,2.549,643,5.236,648,4.114,688,2.597,691,2.577,722,2.17,731,4.143,738,2.84,773,3.16,839,2.31,851,2.415,852,2.415,853,2.501,874,5.236,905,3.064,907,3.425,1182,4.114,1195,3.967,1241,4.546,1298,4.976,1299,4.917,1300,4.917,1415,2.966,1646,3.844,2171,2.115,2187,3.307,2287,3.967,2298,2.966,2309,2.759,3091,4.483,3945,3.967,4641,3.307,7657,6.979,7668,2.966,7853,3.647,8101,4.114,9822,6.979,9959,6.446,9992,6.816,9993,6.816,10008,4.546,10277,3.565,10351,2.966,10977,8.222,11439,6.556,11499,9.204,11500,7.081,11504,9.204,11506,8.222,11511,4.298,12173,3.739,12244,3.844,12748,3.844,12752,7.126,12755,3.647,12760,3.739,12762,3.739,12801,7.136,12821,4.298,12828,6.169,12843,10.021,12857,4.114,12860,6.169,12910,7.733,12932,6.446,12933,6.446,13078,6.446,13094,4.298,13100,4.298,13101,4.298,13102,4.298,13122,4.298,13137,4.298,13138,4.546,13139,3.647,13140,3.565,13174,6.816,13176,6.816,13185,4.546,13189,6.816,13190,4.546,13191,6.816,13192,4.546,13193,4.546,13194,4.546,13195,6.816,13196,6.816,13199,4.546,13208,4.921,13209,9.835,13210,9.835,13211,8.853,13212,4.921,13213,4.921,13214,4.921,13215,4.921,13216,4.921,13217,4.921,13218,4.921,13219,7.379,13220,4.921,13221,4.921,13222,4.921,13223,8.853,13224,4.921,13225,4.921,13226,4.921,13227,4.921,13228,4.921,13229,4.921,13230,4.921,13231,3.967,13232,4.921,13233,4.921,13234,4.546,13235,4.546,13236,4.546,13237,4.921,13238,3.844,13239,4.921,13240,4.921,13241,4.921,13242,4.921,13243,7.379,13244,4.921]],["title/classes/LdapAlreadyPersistedException.html",[0,0.229,13245,5.437]],["body/classes/LdapAlreadyPersistedException.html",[0,0.404,2,0.865,3,0.02,4,0.02,5,0.011,7,0.116,8,1.202,27,0.414,29,0.598,30,0.001,31,0.422,32,0.106,33,0.376,35,0.908,47,0.899,52,5.182,55,1.655,59,2.335,95,0.128,101,0.023,103,0.001,104,0.001,127,0.952,187,1.077,192,3.33,214,3.926,227,1.179,383,4.902,404,2.24,461,2.574,795,5.872,1134,5.057,1238,4.832,1327,4.411,1542,5.772,1543,6.428,1545,2.403,1547,6.323,1819,6.398,2685,5.694,4442,4.927,8137,6.428,8138,6.692,8236,10.246,13245,8.032,13246,9.339,13247,5.576,13248,9.971,13249,9.941,13250,7.524,13251,9.941,13252,7.524,13253,6.291,13254,6.291,13255,6.065,13256,8.33,13257,5.452,13258,6.065]],["title/classes/LdapAuthorizationBodyParams.html",[0,0.229,13259,5.639]],["body/classes/LdapAuthorizationBodyParams.html",[0,0.378,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,27,0.527,30,0.001,32,0.178,47,0.991,48,5.686,51,5.985,87,5.985,95,0.143,101,0.017,103,0.001,104,0.001,165,0.879,364,2.349,374,2.851,376,2.093,467,3.505,470,5.102,1000,5.179,1001,7.217,4227,4.169,5711,8.057,7184,8.964,13259,9.296,13260,13.043,13261,7.797,13262,8.245,13263,8.926,13264,8.926,13265,8.926]],["title/classes/LdapConfig.html",[0,0.229,11846,4.887]],["body/classes/LdapConfig.html",[0,0.3,2,0.462,3,0.011,4,0.011,5,0.006,7,0.062,26,1.626,27,0.508,29,0.319,30,0.001,31,0.225,32,0.177,33,0.661,47,1.027,83,3.068,95,0.113,96,1.084,101,0.018,103,0,104,0,127,0.508,138,1.742,150,3.523,165,0.498,208,1.489,216,1.441,240,4.348,277,1.606,334,0.442,347,1.285,359,1.391,364,2.234,369,2.999,370,4.362,371,1.106,379,0.925,380,1.63,386,6.777,398,1.175,399,2.47,400,1.761,402,1.651,404,0.727,405,1.084,406,1.286,496,1.691,722,1.77,775,2.447,783,2.418,1031,2.498,1114,1.628,1252,2.391,1576,2.418,1659,2.848,1691,2.477,2113,2.542,2138,2.974,2618,3.229,2621,1.895,4293,3.413,4331,4.477,4556,4.523,5236,2.508,5472,3.117,5602,3.16,5621,2.542,5622,2.743,6090,3.504,6359,4.753,6992,2.577,7078,2.697,7134,3.802,8597,2.697,9975,2.229,10947,6.549,11026,2.974,11027,2.974,11028,2.974,11029,3.049,11072,2.743,11075,2.654,11077,2.743,11080,2.743,11083,2.447,11087,2.697,11477,3.049,11590,5.156,11733,2.848,11843,4.794,11844,3.235,11845,4.173,11846,8.006,11847,7.098,11848,3.944,11849,4.391,11850,5.079,11851,2.654,11852,2.654,11853,3.235,11854,4.313,11855,4.676,11856,3.135,11857,4.676,11858,3.049,11859,3.049,11860,3.049,11861,3.049,11862,3.135,11863,3.049,11864,3.049,11865,3.049,11866,3.135,11867,4.676,11868,3.135,11869,3.049,11870,3.135,11871,3.049,11872,3.049,11873,3.049,11874,3.135,11875,4.313,11876,5.085,11877,3.235,11878,3.235,11879,3.235,11880,3.235,11881,3.235,11882,3.235,11883,3.235,11884,3.235,11885,3.235,11886,3.235,11887,3.235,11888,3.135,11889,3.235,11890,3.235,11891,3.235,11892,3.235,11893,3.235,11894,3.235,11895,3.235,11896,3.235,11897,3.235,11898,6.284,11899,6.284,11900,6.284,11901,6.284,11902,6.284,11903,6.284,11904,6.284,11905,6.284,11906,2.974,11907,3.235,11908,3.235,11909,3.235,11910,3.235,11911,3.235,11912,3.235,11913,3.235,11914,3.235,11915,3.235,11916,3.235,11917,3.235,11918,3.235,11919,3.235,11920,3.235,11921,3.049,11922,3.235,11923,2.974,11924,3.135,11925,3.049,11926,3.135,11927,3.049,11928,3.049,11929,3.135,11930,3.049,11931,3.135,11932,3.049,11933,2.908,11934,2.908,11935,2.908,11936,2.974,11937,3.049,11938,3.235,11939,3.049,11940,3.235,11941,3.235,11942,3.235,11943,3.235,11944,3.235,11945,3.049,11946,3.135,11947,3.049,11948,3.135,13266,4.013,13267,4.013,13268,4.013,13269,4.013,13270,4.013,13271,4.013,13272,4.013,13273,4.013,13274,4.013,13275,4.013,13276,4.013,13277,4.013,13278,4.013]],["title/classes/LdapConnectionError.html",[0,0.229,13279,5.892]],["body/classes/LdapConnectionError.html",[0,0.264,2,0.892,3,0.021,4,0.021,5,0.011,7,0.119,8,1.226,27,0.543,29,0.616,30,0.001,31,0.435,32,0.19,33,0.567,35,0.936,47,0.824,55,1.706,59,2.407,95,0.13,101,0.015,103,0.001,104,0.001,127,0.981,165,0.803,187,1.11,204,4.127,216,2.5,364,2.314,404,1.841,406,2.485,558,3.686,564,2.878,596,3.892,798,6.354,1013,5.517,1016,2.769,1134,6.832,1253,5.229,1291,5.119,1327,4.478,1472,8.272,1473,7.139,1474,4.084,1475,7.281,1479,5.053,1480,4.348,1481,5.053,1482,5.053,1483,5.053,1484,5.053,1485,5.053,1486,4.729,1487,4.432,1493,4.913,11592,7.075,13279,8.879,13280,10.165,13281,7.756,13282,8.498,13283,7.756,13284,7.756,13285,7.756]],["title/injectables/LdapService.html",[105,0.889,1630,5.639]],["body/injectables/LdapService.html",[0,0.23,3,0.018,4,0.018,5,0.01,7,0.104,8,1.118,27,0.439,29,0.84,30,0.001,31,0.594,32,0.148,33,0.529,35,1.118,36,2.472,47,0.976,51,6.231,87,6.346,95,0.158,99,1.146,101,0.013,103,0.001,104,0.001,105,1.221,107,1.616,111,2.114,112,2.371,127,0.855,150,2.477,154,3.079,187,0.967,204,2.317,215,2.186,216,1.248,217,1.396,221,1.592,227,0.978,234,1.715,305,2.665,461,1.556,511,3.457,556,5.012,894,5.444,1052,3.775,1053,5.045,1114,5.4,1134,4.539,1440,4.617,1441,5.006,1459,7.526,1461,5.647,1545,2.157,1630,7.745,2038,6.333,2993,4.467,3508,5.276,3544,4.39,3920,5.9,3922,5.9,7797,8.092,10910,8.092,11592,4.701,11846,6.712,11888,5.276,12948,7.039,13279,8.092,13286,6.754,13287,9.264,13288,6.754,13289,9.264,13290,6.754,13291,9.264,13292,6.754,13293,6.239,13294,6.754,13295,6.754,13296,6.754,13297,6.754,13298,6.754,13299,6.754,13300,6.754,13301,6.754,13302,4.793,13303,6.754,13304,6.754,13305,6.754,13306,6.754,13307,6.754,13308,6.754,13309,6.754,13310,6.754,13311,6.754,13312,6.754,13313,6.239,13314,5.647,13315,6.754,13316,6.754]],["title/injectables/LdapStrategy.html",[105,0.889,1631,5.892]],["body/injectables/LdapStrategy.html",[0,0.147,3,0.011,4,0.011,5,0.006,7,0.067,8,0.808,27,0.437,29,0.872,30,0.001,31,0.653,32,0.17,33,0.527,34,0.743,35,1.202,36,2.287,39,1.161,47,0.915,48,5.58,51,5.202,66,6.668,72,2.034,87,5.75,94,5.388,95,0.16,99,0.735,101,0.008,103,0,104,0,105,0.883,107,1.037,111,2.601,112,2.609,127,0.847,138,3.999,144,2.517,145,2.376,167,3.516,187,0.62,189,5.582,192,3.138,204,3.159,206,2.218,216,1.946,217,1.57,221,2.742,227,0.972,234,1.494,305,2.649,334,0.477,355,2.633,367,3.223,368,2.645,403,4.43,404,0.785,406,1.388,441,6.693,450,1.782,461,2.294,475,2.171,491,3.287,511,2.218,513,3.428,543,3.355,574,1.964,692,3.922,731,1.704,784,3.535,806,1.825,823,7.627,1052,4.473,1062,1.891,1114,5.047,1134,5.502,1158,3.564,1240,2.501,1459,4.43,1508,2.452,1515,5.257,1545,1.384,1627,8.134,1630,9.176,1631,5.85,1632,6.411,1640,3.211,1651,3.622,1652,4.002,1659,3.075,1784,6.187,1796,6.187,1808,3.211,1919,1.799,2038,5.596,2185,2.452,2543,3.292,3566,3.385,3613,3.211,4171,4.002,4227,3.17,4232,6.58,4485,2.962,4630,3.48,5974,4.363,6460,2.962,6539,3.292,6929,3.292,7907,4.661,8124,5.399,8152,3.292,10022,3.385,11485,3.211,11636,6.599,11694,2.962,12684,3.385,12692,3.622,12695,3.622,13259,6.844,13302,3.075,13317,4.333,13318,6.187,13319,6.697,13320,6.697,13321,3.785,13322,4.333,13323,6.697,13324,4.333,13325,6.697,13326,4.333,13327,6.697,13328,4.333,13329,4.333,13330,6.187,13331,4.333,13332,4.333,13333,4.002,13334,4.333,13335,4.333,13336,4.002,13337,3.622,13338,4.002,13339,4.333,13340,3.785,13341,4.333,13342,4.333,13343,4.002,13344,4.333,13345,4.333,13346,3.785,13347,6.187,13348,4.002,13349,4.002,13350,4.333,13351,4.002,13352,7.562,13353,4.333,13354,3.785,13355,4.333,13356,4.333,13357,4.002,13358,6.697,13359,3.622,13360,4.333,13361,3.211,13362,4.333,13363,6.697,13364,4.333,13365,4.333,13366,4.333]],["title/classes/LdapUserMigrationException.html",[0,0.229,13248,5.437]],["body/classes/LdapUserMigrationException.html",[0,0.417,2,0.935,3,0.022,4,0.022,5,0.011,30,0.001,47,0.843,52,5.381,55,1.788,95,0.134,101,0.023,103,0.001,104,0.001,187,1.164,192,3.458,214,3.83,227,1.224,383,5.298,404,2.297,461,1.874,795,6.178,1134,5.466,1238,5.222,1327,4.581,1542,5.717,1543,6.367,1545,2.597,1547,5.771,1819,6.731,2685,6.629,4442,3.587,8137,6.367,8138,6.629,8236,9.877,13245,6.556,13246,6.799,13247,6.027,13248,10.222,13249,9.698,13251,9.698,13253,6.799,13254,6.799,13255,6.556,13256,8.764,13257,5.892,13258,6.556]],["title/modules/LearnroomApiModule.html",[425,1.808,13367,5.437]],["body/modules/LearnroomApiModule.html",[0,0.217,3,0.017,4,0.017,5,0.009,30,0.001,95,0.169,101,0.012,103,0.001,104,0.001,187,0.912,425,2.747,427,2.354,428,2.483,429,2.56,430,2.549,431,2.526,432,3.789,433,2.402,441,7.374,442,3.576,443,2.504,444,2.441,446,4.034,447,3.729,449,4.121,450,2.62,574,2.887,836,3.676,1945,6.542,1958,7.374,1962,7.766,1984,2.723,1991,3.446,2767,2.871,2769,3.147,2994,8.963,3026,3.931,3027,3.64,3673,4.354,4996,4.72,6234,8.762,6478,8.954,6492,10.11,6494,10.11,6574,10.11,7217,8.954,7234,10.11,7496,9.447,7581,6.949,7601,4.839,7914,9.447,8006,9.748,8221,4.839,9419,4.281,13367,11.506,13368,6.369,13369,6.369,13370,6.369,13371,8.963,13372,8.963,13373,10.11,13374,10.11,13375,10.11,13376,6.369,13377,8.954,13378,5.564,13379,6.369,13380,6.369,13381,6.369,13382,6.369,13383,5.884,13384,6.369,13385,5.884]],["title/modules/LearnroomModule.html",[425,1.808,13371,4.999]],["body/modules/LearnroomModule.html",[0,0.223,3,0.017,4,0.017,5,0.009,30,0.001,95,0.164,101,0.012,103,0.001,104,0.001,130,9.672,187,0.937,425,2.787,427,2.419,428,2.552,429,2.631,430,2.619,431,2.596,432,3.844,433,3.922,438,5.761,441,7.437,442,3.644,443,2.574,444,2.509,449,3.644,450,2.692,766,2.813,836,3.778,1545,2.09,1958,7.437,1962,7.832,1983,9.528,2983,10.197,2994,9.04,3026,4.04,3027,3.74,4828,10.197,4840,5.718,4929,11.161,6234,8.837,6515,10.761,6522,10.761,7496,9.528,7581,7.082,8221,4.973,13371,10.595,13372,9.04,13378,5.718,13385,6.046,13386,6.545,13387,6.545,13388,6.545,13389,6.545,13390,9.04,13391,6.545,13392,6.046]],["title/injectables/LegacyLogger.html",[105,0.889,1053,2.991]],["body/injectables/LegacyLogger.html",[0,0.306,3,0.013,4,0.013,5,0.007,7,0.078,8,1.204,27,0.514,29,0.966,30,0.001,31,0.705,32,0.171,33,0.608,35,1.436,47,0.99,59,3.593,72,2.377,95,0.143,101,0.01,102,2.554,103,0,104,0,105,0.993,107,1.211,111,2.475,127,0.641,144,1.383,145,2.323,148,3.885,163,3.145,165,0.596,187,0.725,199,5.29,204,2.585,214,2.973,216,0.936,217,0.995,227,0.795,234,0.821,277,3.016,329,2.22,336,1.233,574,3.417,675,2.787,685,2.651,766,3.239,777,5.727,839,2.377,1052,4.955,1053,3.342,1062,5.054,1110,3.251,1327,4.888,1498,5.461,1508,2.865,1828,2.257,2116,2.739,2450,3.207,2993,3.349,3874,3.207,4480,5.461,5121,3.251,5400,4.986,7661,3.524,8159,8.444,8179,8.714,8189,4.423,8190,5.888,8193,4.423,9420,7.259,10022,3.955,10491,6.302,11216,4.84,11519,9.316,11522,4.423,11523,6.584,11524,6.963,11526,6.963,11527,9.215,11529,6.963,11530,8.714,11532,6.963,11534,6.963,13393,12.56,13394,5.063,13395,7.537,13396,9.215,13397,9.215,13398,7.537,13399,7.537,13400,5.063,13401,5.063,13402,5.063,13403,5.063,13404,5.063,13405,6.963,13406,5.063,13407,7.537,13408,5.063,13409,5.063,13410,7.537,13411,7.537,13412,6.584,13413,5.888,13414,7.537,13415,5.063,13416,5.063,13417,4.677,13418,4.081,13419,5.063,13420,4.081,13421,4.423,13422,4.081,13423,5.063,13424,5.063,13425,5.063,13426,5.063,13427,5.063,13428,6.584,13429,5.063,13430,4.677,13431,4.677]],["title/modules/LegacySchoolApiModule.html",[425,1.808,13432,5.437]],["body/modules/LegacySchoolApiModule.html",[0,0.272,3,0.021,4,0.021,5,0.011,30,0.001,52,3.712,95,0.171,101,0.015,102,6.144,103,0.001,104,0.001,187,1.146,189,5.816,192,2.386,355,3.147,425,3.085,427,2.958,428,3.12,429,3.217,430,3.203,431,3.174,432,4.255,433,3.018,438,6.106,442,4.17,443,3.147,444,3.068,446,5.069,447,4.349,449,4.17,1252,4.769,1545,2.556,1945,6.994,1951,8.302,2767,3.607,2769,3.954,4561,4.258,9465,5.214,13432,11.29,13433,8.003,13434,8.003,13435,8.003,13436,9.823,13437,10.809,13438,10.809,13439,6.691,13440,7.362,13441,10.056,13442,8.003,13443,8.003,13444,8.003,13445,7.393]],["title/controllers/LegacySchoolController.html",[481,2.629,13441,5.892]],["body/controllers/LegacySchoolController.html",[0,0.224,3,0.017,4,0.017,5,0.009,7,0.101,8,1.098,27,0.378,29,0.722,30,0.001,31,0.511,32,0.171,33,0.455,35,1.098,36,2.444,95,0.164,100,2.201,101,0.013,102,5.676,103,0.001,104,0.001,111,1.315,112,2.739,187,0.941,189,5.099,192,3.108,215,2.128,216,1.681,217,1.486,221,2.144,227,0.96,234,1.475,264,4.414,364,1.685,376,1.542,379,2.403,447,2.757,481,2.564,483,3.165,491,6.146,494,5.482,511,5.759,513,6.632,543,4.557,555,3.472,556,3.558,557,3.589,559,3.589,561,5.69,728,3.561,1828,5.016,2769,3.25,3710,5.482,4038,4.06,9465,6.793,13437,7.605,13438,8.718,13440,6.455,13441,7.946,13445,6.076,13446,10.428,13447,6.076,13448,9.633,13449,9.109,13450,6.577,13451,11.572,13452,6.577,13453,11.251,13454,6.577,13455,9.096,13456,6.577,13457,6.577,13458,10.939,13459,6.577,13460,6.577,13461,6.577,13462,7.605,13463,7.946,13464,6.742,13465,7.923,13466,8.406,13467,5.499,13468,5.746,13469,9.52,13470,6.577,13471,6.577,13472,6.577,13473,6.577,13474,6.455,13475,6.577,13476,6.577,13477,6.577,13478,6.577,13479,6.577,13480,9.096,13481,6.577,13482,6.577]],["title/classes/LegacySchoolDo.html",[0,0.229,189,3.781]],["body/classes/LegacySchoolDo.html",[0,0.22,2,0.745,3,0.017,4,0.017,5,0.009,7,0.1,26,2.451,27,0.558,29,0.515,30,0.001,31,0.628,32,0.188,33,0.695,34,1.545,47,0.939,83,2.709,95,0.133,101,0.012,102,5.641,103,0.001,104,0.001,127,0.82,165,0.711,185,2.538,189,6.586,347,1.835,404,2.025,406,2.077,596,1.968,618,2.758,854,5.22,883,3.775,1911,4.001,1919,3.739,1939,7.019,1993,6.156,2136,2.594,2485,3.889,2586,3.421,3852,6.156,5612,4.696,6359,7.754,6367,6.954,6443,4.925,6744,3.862,7036,4.925,8300,6.468,8304,4.804,8983,5.662,9473,7.528,9474,6.842,9475,7.949,9975,5.747,11692,7.862,11693,7.497,11694,7.073,11695,7.202,11720,7.202,11722,4.804,11723,5.225,11726,4.925,11730,5.225,11733,4.6,13483,13.426,13484,6.482,13485,7.866,13486,9.005,13487,6.482,13488,6.482,13489,6.482,13490,6.482,13491,6.482,13492,6.482,13493,6.482,13494,6.482,13495,6.482,13496,6.482,13497,5.988,13498,6.482,13499,6.482,13500,6.482,13501,6.482,13502,6.482,13503,6.482,13504,6.482,13505,6.482,13506,6.482,13507,5.064,13508,6.482,13509,6.482]],["title/classes/LegacySchoolFactory.html",[0,0.229,13510,6.23]],["body/classes/LegacySchoolFactory.html",[0,0.169,2,0.573,3,0.013,4,0.013,5,0.007,7,0.077,8,0.899,27,0.532,29,1.027,30,0.001,31,0.702,32,0.184,33,0.617,34,1.277,35,1.461,47,0.541,55,2.533,59,3.287,95,0.127,99,0.845,101,0.01,103,0,104,0,127,0.63,138,3.233,144,3.236,148,1.541,165,0.588,185,4.826,189,2.793,216,1.377,217,0.658,227,0.526,234,1.605,329,3.488,359,2.582,366,2.742,369,1.098,379,2.055,380,1.865,381,2.45,404,1.349,538,3.338,596,3.89,627,2.318,660,7.053,661,4.682,662,5.547,665,4.175,666,5.547,667,5.559,668,4.175,669,4.175,670,4.175,671,4.099,672,4.532,673,4.999,674,6.462,675,5.831,676,6.938,677,2.819,682,2.793,683,4.175,684,2.819,685,5.182,686,5.4,687,4.59,688,5.223,689,4.136,690,2.793,691,2.609,692,4.14,693,2.718,694,2.673,695,2.793,696,5.103,697,2.819,698,4.909,699,2.793,700,6.911,701,4.135,702,6.639,703,2.819,704,3.68,705,2.793,706,2.819,707,2.793,708,2.819,709,2.793,712,2.793,713,6.118,714,2.819,715,2.793,716,4.175,717,4.099,718,4.175,719,2.819,720,2.695,721,2.673,722,2.197,723,2.793,724,2.793,725,2.793,726,2.819,727,2.819,728,1.95,729,2.793,730,2.819,731,2.928,732,2.793,733,2.819,736,2.968,854,2.513,905,4.109,4335,6.328,4337,3.609,6359,3.038,6367,3.348,8300,3.114,9475,3.114,9975,2.767,11692,3.785,11693,3.609,11694,3.405,11699,4.016,11906,3.692,13510,6.879,13511,4.982,13512,4.982,13513,4.982,13514,4.982,13515,4.982,13516,4.982,13517,4.982,13518,4.982,13519,4.982,13520,9.895,13521,3.785,13522,3.785,13523,3.785,13524,4.982,13525,4.982,13526,4.982,13527,4.982]],["title/modules/LegacySchoolModule.html",[425,1.808,1951,4.331]],["body/modules/LegacySchoolModule.html",[0,0.259,3,0.02,4,0.02,5,0.011,30,0.001,95,0.159,101,0.015,102,6.03,103,0.001,104,0.001,129,8.443,187,1.091,189,5.634,425,3.013,427,2.818,428,2.972,429,3.065,430,3.051,431,3.024,432,4.155,433,4.239,438,6.025,442,4.04,443,2.998,444,2.922,449,4.04,450,3.136,766,3.276,1545,2.435,1632,8.88,1951,9.098,2570,4.125,9458,10.666,9464,11.436,9465,4.967,13439,6.374,13440,7.132,13528,7.624,13529,7.624,13530,7.624,13531,7.624,13532,11.436,13533,10.666,13534,10.666,13535,7.624]],["title/injectables/LegacySchoolRepo.html",[105,0.889,1632,4.694]],["body/injectables/LegacySchoolRepo.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,8,0.801,10,2.68,12,3.06,18,3.279,26,2.471,27,0.536,29,1.016,30,0.001,31,0.729,32,0.179,33,0.64,34,1.57,35,1.53,36,2.621,40,2.061,47,0.843,48,4.649,95,0.134,96,1.793,97,1.822,99,0.726,101,0.008,102,4.618,103,0,104,0,105,0.875,107,1.024,111,2.258,112,2.911,127,0.542,145,1.105,148,1.325,165,0.338,167,3.781,187,0.613,189,6.763,192,1.978,216,1.227,217,1.209,221,1.564,227,1.106,234,1.318,305,1.232,359,2.301,380,1.914,398,1.254,404,1.202,511,2.192,595,1.479,596,3.768,661,3.423,844,5.119,854,4.618,878,4.619,884,3.134,885,4.927,905,1.778,915,2.357,1052,3.73,1053,4.059,1114,2.692,1439,2.048,1545,1.368,1632,4.619,1857,3.474,2092,2.423,2383,8.743,2385,4.709,2386,4.709,2387,4.709,2388,4.709,2389,4.619,2390,4.619,2391,4.709,2392,4.619,2393,4.709,2394,3.102,2395,5.23,2397,4.808,2398,3.039,2400,5.23,2401,3.039,2403,3.039,2405,2.832,2406,4.709,2407,3.039,2409,3.039,2411,4.709,2415,4.709,2417,4.46,2418,4.619,2420,3.039,2422,2.611,2423,2.611,2424,3.039,2426,3.039,2428,3.039,2429,3.039,2435,2.878,4355,2.75,4356,3.345,4457,4,5766,4.808,5767,3.102,5768,3.102,5769,3.102,5770,3.102,5771,3.102,5772,3.102,5773,3.102,5774,3.102,5782,3.254,5784,3.87,6359,4.047,6367,4.46,8300,6.549,8781,3.254,8869,3.741,9475,4.148,9717,4.148,9975,4.513,10640,3.58,11690,8.184,11692,5.042,11693,4.808,11694,4.537,11720,2.98,12600,7.378,13302,3.039,13440,4.709,13536,9.904,13537,4.282,13538,5.797,13539,6.636,13540,4.282,13541,4.282,13542,5.797,13543,4.282,13544,6.636,13545,4.282,13546,4.282,13547,4.282,13548,3.956,13549,4.282,13550,4.282,13551,4.282,13552,4.282,13553,4.282,13554,4.282,13555,4.282,13556,3.956,13557,4.282,13558,4.282,13559,3.956,13560,4.282,13561,4.282,13562,4.282,13563,4.282,13564,4.282,13565,4.282,13566,3.956,13567,4.282,13568,4.282,13569,4.282,13570,3.956,13571,4.282,13572,4.282,13573,4.282,13574,4.282,13575,3.956,13576,6.636,13577,4.282,13578,4.282]],["title/injectables/LegacySchoolRule.html",[105,0.889,1961,5.639]],["body/injectables/LegacySchoolRule.html",[0,0.256,3,0.02,4,0.02,5,0.011,7,0.116,8,1.204,27,0.465,29,0.888,30,0.001,31,0.628,32,0.157,33,0.559,35,1.204,95,0.163,99,1.279,101,0.014,102,6.004,103,0.001,104,0.001,105,1.315,107,1.804,116,4.115,127,0.954,187,1.079,189,7.272,199,4.268,214,2.489,215,2.439,216,1.393,217,1.317,227,1.053,347,2.424,359,4.291,380,2.338,461,3.071,806,3.176,1854,6.939,1862,6.55,1890,8.055,1911,4.653,1928,7.345,1939,6.868,1961,8.34,1989,6.157,2033,6.499,2056,5.067,2485,3.256,3352,6.705,3353,5.153,3356,6.598,3358,5.153,3359,5.067,3360,6.819,3361,5.728,4355,4.841,5868,5.462,13440,7.079,13579,11.899,13580,7.538,13581,7.538,13582,7.538,13583,7.538]],["title/injectables/LegacySchoolService.html",[105,0.889,129,4.163]],["body/injectables/LegacySchoolService.html",[0,0.196,3,0.015,4,0.015,5,0.008,7,0.089,8,1.001,18,4.101,26,2.517,27,0.501,29,0.958,30,0.001,31,0.677,32,0.169,33,0.604,34,0.991,35,1.413,36,2.836,47,0.949,48,4.985,95,0.136,99,0.98,101,0.011,102,5.358,103,0.001,104,0.001,105,1.094,107,1.382,111,1.659,112,3.043,127,1.05,129,5.123,144,1.578,167,3.168,187,0.827,189,7.318,192,2.474,216,1.534,217,1.547,221,2.909,227,1.187,329,1.701,371,2.677,380,1.208,450,2.375,713,3.179,854,2.914,1092,6.939,1492,3.48,1632,7.392,4227,2.857,5974,6.919,6589,7.642,9465,8.043,11636,6.69,11695,8.593,12600,9.441,13336,7.666,13440,5.889,13533,10.088,13556,5.335,13584,12.346,13585,5.775,13586,8.299,13587,8.299,13588,8.299,13589,8.299,13590,8.299,13591,5.335,13592,5.775,13593,8.299,13594,5.775,13595,8.299,13596,5.775,13597,8.299,13598,5.775,13599,5.775,13600,8.299,13601,5.775,13602,8.299,13603,5.775,13604,8.299,13605,5.775,13606,5.775,13607,8.299,13608,5.775,13609,5.775,13610,8.299,13611,5.775,13612,5.775,13613,5.775,13614,5.775]],["title/injectables/LegacySchoolUc.html",[105,0.889,13437,5.639]],["body/injectables/LegacySchoolUc.html",[0,0.189,3,0.015,4,0.015,5,0.008,7,0.086,8,0.975,27,0.395,29,0.756,30,0.001,31,0.534,32,0.134,33,0.476,35,0.975,36,2.268,39,3.1,47,0.942,52,2.582,95,0.148,99,0.944,101,0.011,102,5.268,103,0,104,0,105,1.065,107,1.332,111,2.217,112,2.593,127,1.023,128,4.488,129,6.444,132,5.19,145,2.861,167,3.085,187,0.797,189,6.216,192,2.409,216,2.05,217,1.614,221,3.021,227,0.853,234,1.311,322,6.515,347,2.539,355,2.189,766,2.393,843,2.43,1865,4.983,1866,4.574,1881,5.119,1919,2.312,1952,5.601,2027,3.627,2767,2.51,4227,4.108,4448,8.468,4449,8.844,4450,9.619,4455,6.705,4457,6.682,4461,4.349,4464,4.349,4467,5.99,4468,4.863,4470,7.06,4471,5.143,4472,5.143,4473,5.143,4561,2.962,4623,8.312,7601,4.23,9465,6.802,10225,7.06,13437,6.757,13440,5.735,13448,7.466,13449,8.312,13466,8.938,13468,4.863,13474,7.409,13521,8.788,13522,8.788,13523,8.788,13615,10.441,13616,5.567,13617,5.567,13618,8.082,13619,5.567,13620,5.143,13621,5.567,13622,5.143,13623,4.863,13624,5.567,13625,5.143,13626,4.126,13627,8.082,13628,8.082,13629,7.466,13630,5.567,13631,5.567,13632,5.567,13633,8.082,13634,10.441,13635,5.143,13636,6.515,13637,5.567,13638,5.567,13639,6.757,13640,5.567,13641,6.757,13642,4.655,13643,5.143]],["title/modules/LessonApiModule.html",[425,1.808,13644,5.437]],["body/modules/LessonApiModule.html",[0,0.306,3,0.024,4,0.024,5,0.013,30,0.001,95,0.168,101,0.017,103,0.001,104,0.001,187,1.289,425,3.259,427,3.329,428,3.511,429,3.62,430,3.604,431,3.572,432,4.494,433,3.396,442,4.495,443,3.541,444,3.452,446,5.704,447,4.688,449,4.495,481,3.511,1945,7.21,2767,4.059,2769,4.45,13372,9.878,13644,11.172,13645,9.006,13646,9.006,13647,9.006,13648,11.143,13649,9.006,13650,10.623,13651,9.006]],["title/entities/LessonBoardElement.html",[380,1.41,2700,5.437]],["body/entities/LessonBoardElement.html",[0,0.321,3,0.025,4,0.025,5,0.013,7,0.145,27,0.392,30,0.001,32,0.132,95,0.159,96,2.548,101,0.018,103,0.001,104,0.001,165,0.909,364,1.747,380,2.405,381,3.102,398,2.76,404,1.707,405,2.548,617,5.442,2620,5.498,2670,8.984,2689,6.715,2690,6.69,2693,8.333,2695,7.882,2700,9.271,2744,5.761,3022,7.163,3055,9.615,4926,4.348,4928,8.236,11971,9.615,13652,11.501,13653,8.709,13654,9.428]],["title/controllers/LessonController.html",[481,2.629,13650,5.892]],["body/controllers/LessonController.html",[0,0.296,3,0.023,4,0.023,5,0.012,7,0.134,8,1.322,10,4.837,27,0.362,29,0.692,30,0.001,31,0.489,32,0.122,33,0.436,35,1.051,36,2.38,95,0.17,100,2.916,101,0.017,103,0.001,104,0.001,112,2.686,187,1.247,215,2.82,216,1.611,217,1.151,221,2.053,227,0.92,264,3.689,364,1.614,376,2.043,447,3.653,481,3.397,483,4.193,491,6.168,513,6.629,555,4.599,556,4.714,557,4.755,559,4.755,561,4.755,1828,4.883,2769,4.305,2934,7.136,4982,4.885,13648,10.015,13650,9.568,13655,8.713,13656,7.285,13657,9.818,13658,10.953,13659,8.713,13660,8.713,13661,8.713,13662,7.285,13663,8.713,13664,8.049]],["title/classes/LessonCopyApiParams.html",[0,0.229,6287,5.639]],["body/classes/LessonCopyApiParams.html",[0,0.385,2,1.057,3,0.024,4,0.024,5,0.013,7,0.141,27,0.382,30,0.001,32,0.129,33,0.566,34,1.942,47,0.823,95,0.145,100,3.79,101,0.018,103,0.001,104,0.001,165,0.895,188,4.287,364,1.703,374,2.935,375,4.593,376,2.155,379,2.827,471,4.817,475,4.604,1000,4.841,1660,9.127,2563,7.078,2675,6.023,2691,4.968,2701,5.221,2910,6.179,2911,6.179,3305,5.595,6050,9.891,6287,9.466,6901,8.845,10357,8.029,13665,11.323,13666,8.49,13667,8.49]],["title/injectables/LessonCopyService.html",[105,0.889,2996,5.269]],["body/injectables/LessonCopyService.html",[0,0.086,3,0.007,4,0.007,5,0.004,7,0.039,8,0.52,10,2.694,26,0.527,27,0.477,29,0.885,30,0.001,31,0.635,32,0.17,33,0.558,35,1.345,36,1.996,47,0.313,95,0.135,99,0.428,101,0.005,103,0,104,0,105,0.568,107,0.604,111,2.667,112,2.5,127,0.546,138,1.096,144,2.23,145,1.721,150,2.993,165,0.341,185,4.364,187,0.361,188,0.956,208,0.937,216,1.509,217,1.762,221,2.341,227,1.295,234,0.915,240,0.791,247,2.646,284,1.522,329,0.744,347,0.878,369,0.95,371,1.188,379,0.582,450,1.039,461,0.993,564,3.799,627,2.54,1041,5.326,1062,1.102,1444,2.809,1474,2.264,1812,1.792,1828,1.922,1919,1.048,1962,5.598,1984,1.08,2116,1.366,2171,1.085,2172,1.208,2173,1.164,2174,1.599,2344,3.962,2433,1.645,2563,5.742,2594,1.902,2689,6.106,2701,4.02,2809,1.333,2880,3.583,2985,2.111,2988,3.476,2995,6.623,2996,3.368,2997,5.791,3003,1.919,3008,6.545,3013,8.471,3025,1.972,3026,1.559,3027,1.443,3039,4.717,3040,3.368,3041,2.035,3069,2.111,3070,3.476,3077,8.053,3083,2.333,3187,1.522,3331,3.74,3419,3.483,3543,2.116,3544,1.79,4953,8.839,4965,1.757,4988,2.035,4989,1.559,5005,4.929,5369,1.621,5566,1.697,6057,1.919,6186,7.027,6187,2.206,6191,4.929,6192,2.333,6200,5.828,6209,3.605,6214,6.545,6216,2.206,6227,3.368,6535,2.333,6563,2.206,8247,7.288,9553,2.111,10164,2.206,10432,4.956,11305,3.001,11307,4.683,11310,1.621,11312,3.001,11313,3.001,11314,1.757,11315,3.001,11316,1.792,11317,1.757,11318,1.645,11319,3.001,11321,1.792,11322,1.792,13668,11.619,13669,5.642,13670,4.312,13671,5.642,13672,4.312,13673,4.312,13674,5.642,13675,4.312,13676,4.312,13677,5.642,13678,4.312,13679,4.312,13680,6.672,13681,5.642,13682,4.312,13683,7.288,13684,2.525,13685,4.312,13686,2.525,13687,9.588,13688,2.525,13689,11.319,13690,2.525,13691,4.312,13692,2.525,13693,2.525,13694,2.525,13695,4.312,13696,2.525,13697,2.525,13698,2.525,13699,4.312,13700,2.525,13701,4.312,13702,2.525,13703,3.766,13704,2.525,13705,2.525,13706,2.525,13707,2.525,13708,2.525,13709,9.588,13710,9.186,13711,8.717,13712,2.525,13713,7.492,13714,4.312,13715,2.525,13716,2.525,13717,2.525,13718,2.525,13719,4.312,13720,2.525,13721,5.642,13722,2.525,13723,2.525,13724,2.525,13725,2.525,13726,2.525,13727,2.525,13728,5.642,13729,2.525,13730,7.492,13731,2.525,13732,4.312,13733,2.333,13734,2.525,13735,2.525,13736,2.525,13737,2.525,13738,4.312,13739,2.525,13740,4.312,13741,2.525,13742,2.333,13743,4.312,13744,2.525,13745,2.525,13746,2.525,13747,2.525,13748,2.525,13749,2.525,13750,4.312,13751,4.312,13752,2.525,13753,2.525,13754,2.525,13755,2.525,13756,2.525,13757,2.525,13758,2.525,13759,2.525,13760,2.525,13761,2.525,13762,2.525,13763,3.276,13764,2.525,13765,2.525,13766,4.312,13767,2.525,13768,2.525,13769,2.525,13770,4.312,13771,2.525,13772,2.525,13773,5.642,13774,4.312,13775,2.333,13776,2.525,13777,2.525,13778,2.525,13779,2.525,13780,2.525,13781,2.525,13782,4.312,13783,2.525,13784,2.525,13785,4.312,13786,2.206,13787,2.525,13788,2.333,13789,8.161,13790,6.672,13791,2.525,13792,4.312,13793,2.525,13794,2.525,13795,2.525,13796,2.525,13797,4.312,13798,2.525,13799,2.525,13800,2.525,13801,2.525,13802,2.525,13803,2.525,13804,2.525,13805,2.525,13806,2.525,13807,2.525,13808,4.312,13809,2.525,13810,2.525,13811,2.525,13812,2.525,13813,2.525,13814,4.312,13815,2.525,13816,2.525,13817,2.525,13818,2.525,13819,2.525,13820,2.525,13821,2.525,13822,2.525,13823,2.525,13824,2.525,13825,2.525,13826,4.312,13827,2.525]],["title/injectables/LessonCopyUC.html",[105,0.889,13373,5.639]],["body/injectables/LessonCopyUC.html",[0,0.219,3,0.017,4,0.017,5,0.009,7,0.099,8,1.082,26,2.597,27,0.428,29,0.712,30,0.001,31,0.503,32,0.126,33,0.448,35,1.082,36,1.948,39,2.402,95,0.165,99,1.092,101,0.012,103,0.001,104,0.001,105,1.181,107,1.541,111,2.539,112,2.312,127,1.134,148,1.992,187,0.922,199,3.422,216,2.167,217,1.703,221,2.86,227,0.68,234,1.454,305,2.579,347,1.312,450,2.649,461,2.066,843,2.811,1415,6.215,1439,3.08,1865,4.695,1866,3.645,1868,4.079,1880,4.196,1952,5.982,1958,7.592,1962,7.995,2027,4.196,2037,3.717,2171,2.768,2172,3.08,2173,2.97,2174,4.079,2563,4.026,2701,2.97,2767,2.903,2988,7.226,2996,9.726,2997,8.835,3003,6.812,3008,7.831,3013,6.821,3026,3.975,3027,3.68,3030,5.192,3066,5.626,3067,5.626,3068,5.95,3550,7.003,4630,3.347,4955,6.215,6022,4.773,6250,7.495,6289,10.3,6537,7.226,6576,5.626,6587,5.626,6588,5.626,6589,4.079,13373,7.495,13378,5.626,13828,11.149,13829,10.3,13830,6.44,13831,6.44,13832,8.281,13833,9.526,13834,5.95,13835,6.44,13836,6.44,13837,5.95,13838,5.95,13839,5.626,13840,6.44,13841,5.95,13842,6.44,13843,5.95,13844,6.44,13845,6.44,13846,5.95,13847,6.44,13848,6.44,13849,6.44,13850,6.44,13851,6.44,13852,6.44]],["title/entities/LessonEntity.html",[380,1.41,2689,3.505]],["body/entities/LessonEntity.html",[0,0.141,3,0.011,4,0.011,5,0.006,7,0.139,26,2.037,27,0.465,30,0.001,31,0.505,32,0.157,33,0.324,47,0.951,55,2.275,95,0.151,96,1.122,101,0.023,103,0,104,0,111,1.296,116,1.344,144,2.178,145,2.056,150,3.302,165,0.512,187,0.595,188,4.233,208,1.541,214,1.371,217,1.606,227,1.283,234,1.678,240,3.502,247,1.648,305,1.864,329,2.348,334,1.231,347,1.32,364,2.071,369,2.152,370,2.162,371,2.196,379,1.836,380,1.355,381,1.367,398,1.216,399,2.538,400,1.822,402,1.709,404,0.752,405,1.122,406,1.331,461,0.957,535,3.506,687,1.927,769,3.862,806,1.75,1031,1.331,1062,1.813,1278,2.247,1439,1.986,1474,3.056,1910,1.962,1932,3.318,1984,1.776,2136,1.662,2344,4.276,2674,4.744,2675,3.181,2678,4.913,2682,2.267,2687,4.105,2688,2.422,2689,4.679,2691,3.497,2692,4.051,2701,2.989,2705,4.223,2809,4.753,2880,3.811,3305,3.938,3419,6.027,3438,5.656,3544,1.725,3571,2.891,3572,2.891,4083,3.82,4239,2.597,4303,1.822,4821,2.564,4825,2.597,4826,2.667,4926,1.916,4953,6.563,4965,2.891,4982,2.329,4989,4.001,4994,6.84,5007,2.948,5013,2.948,5018,2.948,5566,6.954,6260,5.272,6263,5.656,6377,4.223,6397,2.597,6404,6.662,6405,2.792,6406,4.287,6408,4.105,6444,4.162,6445,4.356,6460,4.431,6624,3.629,6633,2.564,6634,2.748,8265,4.599,10432,5.956,11305,4.511,11306,2.948,11307,4.982,11308,3.01,11309,4.511,11310,6.94,11311,4.599,11312,2.891,11313,4.511,11314,4.511,11315,4.511,11316,2.948,11317,4.511,11318,2.706,11319,4.511,11320,4.599,11321,2.948,11322,2.948,11323,3.01,11324,4.511,11325,4.511,11326,4.696,11327,4.696,11328,4.696,11329,4.696,11330,5.548,11331,2.891,11332,4.696,11333,3.01,11334,3.01,11335,3.01,11336,2.84,11337,3.01,11338,3.01,11339,4.696,11340,3.01,11341,3.01,11342,6.524,11343,5.775,11344,2.948,11345,3.01,11346,3.01,11347,3.01,11348,3.01,11349,3.01,11350,3.01,11351,3.01,11352,3.01,11353,3.01,11354,3.01,11355,3.01,11356,2.84,11357,3.01,11358,2.948,13853,4.154,13854,4.154,13855,4.154,13856,4.154,13857,4.154,13858,4.154,13859,4.154,13860,4.154,13861,4.154]],["title/classes/LessonFactory.html",[0,0.229,13862,6.23]],["body/classes/LessonFactory.html",[0,0.167,2,0.565,3,0.013,4,0.013,5,0.007,7,0.076,8,0.889,27,0.531,29,1.024,30,0.001,31,0.7,32,0.184,33,0.614,34,1.516,35,1.455,47,0.535,55,2.521,59,3.266,95,0.113,99,0.833,101,0.009,103,0,104,0,127,0.621,138,3.198,144,3.222,148,1.518,165,0.582,185,4.883,188,4.34,216,1.361,217,1.167,227,0.518,329,3.473,359,2.553,366,2.702,371,1.353,379,2.037,380,2.201,381,2.424,404,1.334,538,3.302,596,3.878,627,2.293,660,7.212,661,4.656,662,5.507,665,4.129,666,5.507,667,5.661,668,4.129,669,4.129,670,4.129,671,4.054,672,4.492,673,4.956,674,6.433,675,5.794,676,6.977,677,2.778,682,2.752,683,4.129,684,2.778,685,5.144,686,5.36,687,4.556,688,5.185,689,4.091,690,2.752,691,2.571,692,4.117,693,2.679,694,2.633,695,2.752,696,5.066,697,2.778,698,4.866,699,2.752,700,6.885,701,4.117,702,6.61,703,2.778,704,4.368,705,2.752,706,2.778,707,2.752,708,2.778,709,2.752,710,3.109,711,2.925,712,2.752,713,6.084,714,2.778,715,2.752,716,4.129,717,4.054,718,4.129,719,2.778,720,2.656,721,2.633,722,2.165,723,2.752,724,2.752,725,2.752,726,2.778,727,2.778,728,1.922,729,2.752,730,2.778,731,2.896,732,2.752,733,2.778,736,2.925,2689,3.827,2701,2.264,3419,4.546,4953,4.95,6600,4.104,6647,4.534,6649,4.534,10432,4.872,11309,3.417,11310,3.152,13862,8.166,13863,4.909,13864,4.909,13865,7.365,13866,4.909,13867,4.909,13868,4.909,13869,4.909]],["title/modules/LessonModule.html",[425,1.808,13372,4.999]],["body/modules/LessonModule.html",[0,0.254,3,0.02,4,0.02,5,0.011,30,0.001,95,0.169,101,0.014,103,0.001,104,0.001,187,1.071,425,2.985,427,2.765,428,2.917,429,3.008,430,2.994,431,2.968,432,4.117,433,4.2,438,5.994,442,3.99,443,2.942,444,2.868,449,3.99,450,3.078,766,3.215,1444,4.875,1545,2.39,1962,8.149,1980,6.536,2996,10.655,3026,4.618,3027,4.276,3534,9.405,3543,3.672,3544,3.107,4940,10.655,6234,9.195,8247,10.61,8251,9.195,13372,10.533,13390,9.405,13392,6.912,13683,10.61,13870,7.482,13871,7.482,13872,7.482,13873,7.482,13874,7.482]],["title/injectables/LessonRepo.html",[105,0.889,1962,4.331]],["body/injectables/LessonRepo.html",[0,0.199,3,0.016,4,0.016,5,0.008,7,0.09,8,1.01,10,3.379,12,3.859,13,5.938,18,4.135,26,2.669,27,0.515,29,0.962,30,0.001,31,0.68,32,0.177,33,0.606,34,1.002,35,1.461,36,2.779,39,2.243,40,4.027,42,5.938,59,1.813,95,0.145,96,1.579,98,3.481,99,0.991,101,0.011,103,0.001,104,0.001,105,1.103,107,1.398,112,3.018,116,3.164,138,3.633,145,1.507,187,0.836,188,3.168,217,1.599,221,2.663,227,1.192,234,0.947,277,3.349,347,1.19,380,1.222,381,2.754,398,1.711,404,1.515,461,1.346,577,3.275,596,3.241,692,4.824,877,7.061,883,3.508,884,3.952,885,4.864,908,3.562,909,3.606,910,3.562,911,3.606,913,3.562,914,3.606,915,3.216,964,3.994,1962,5.374,2185,4.736,2689,5.872,2701,4.923,2809,3.084,3419,3.606,3639,3.994,4982,5.985,4994,4.782,5784,4.88,5786,4.146,6654,4.439,6658,4.439,6774,6.938,6844,3.806,7633,4.066,10056,7.73,10061,7.31,10062,5.397,10432,3.864,11310,5.374,13875,5.842,13876,8.368,13877,8.368,13878,8.368,13879,5.842,13880,8.368,13881,5.842,13882,5.842,13883,5.842,13884,5.842,13885,7.31,13886,5.842,13887,5.842,13888,5.842,13889,5.842,13890,5.842,13891,5.842,13892,5.842,13893,5.842,13894,5.842,13895,5.842,13896,5.842,13897,5.842,13898,5.842]],["title/injectables/LessonRule.html",[105,0.889,1963,5.437]],["body/injectables/LessonRule.html",[0,0.167,3,0.013,4,0.013,5,0.007,7,0.075,8,0.888,27,0.49,29,0.936,30,0.001,31,0.662,32,0.165,33,0.59,35,1.382,95,0.142,101,0.009,103,0,104,0,105,0.97,107,1.173,111,2.652,116,3.575,127,0.931,187,0.702,188,4.182,199,3.747,214,1.619,216,1.633,217,1.557,227,1.209,347,2.627,371,2.434,380,2.883,461,3.177,806,2.065,1828,5.474,1862,5.404,1865,7.167,1866,5.556,1871,3.026,1872,3.243,1880,5.755,1881,4.661,1890,6.997,1911,3.026,1928,4.542,1957,9.236,1959,8.492,1963,5.932,1989,4.542,2033,4.794,2056,3.295,2689,6.852,3105,4.661,3106,2.748,3352,4.946,3353,3.351,3356,4.867,3358,3.351,3359,3.295,3360,5.03,6054,3.479,6404,5.85,6666,4.283,6668,4.099,6669,6.428,13899,4.903,13900,7.358,13901,7.358,13902,7.358,13903,7.358,13904,7.358,13905,4.903,13906,7.358,13907,4.903,13908,7.358,13909,4.903,13910,4.903,13911,4.903,13912,7.358,13913,4.903,13914,7.358,13915,4.903,13916,6.797,13917,4.903,13918,4.903,13919,9.069,13920,4.903,13921,4.903,13922,7.358,13923,7.358,13924,4.903,13925,9.817,13926,8.16,13927,7.358,13928,7.358,13929,4.903,13930,4.903,13931,4.529,13932,4.903]],["title/classes/LessonScope.html",[0,0.229,13885,5.892]],["body/classes/LessonScope.html",[0,0.259,2,0.875,3,0.02,4,0.02,5,0.011,7,0.117,8,1.211,26,2.491,27,0.54,29,0.949,30,0.001,31,0.67,32,0.182,33,0.598,35,1.441,95,0.129,99,1.291,101,0.015,103,0.001,104,0.001,111,2.549,144,2.079,148,2.354,165,0.793,188,2.881,227,1.059,277,5.394,329,2.241,347,2.598,404,1.818,529,3.356,596,3.769,2432,6.693,2689,3.954,3419,4.697,5872,6.862,5873,6.862,5874,6.862,5879,6.862,5880,6.862,5881,5.297,5882,5.202,5883,5.297,5884,5.297,5893,5.202,5894,6.862,5895,5.297,5896,5.202,5897,5.297,5898,5.202,5899,6.862,6654,7.627,6991,5.981,9052,9.273,9056,9.273,9888,6.134,13885,11.138,13933,11.233,13934,9.273,13935,9.273,13936,7.029,13937,7.029,13938,6.647]],["title/injectables/LessonService.html",[105,0.889,4940,5.269]],["body/injectables/LessonService.html",[0,0.242,3,0.019,4,0.019,5,0.01,7,0.109,8,1.158,12,4.425,26,2.777,27,0.504,29,0.964,30,0.001,31,0.681,32,0.17,33,0.607,35,1.403,36,2.824,39,2.571,95,0.149,98,4.238,99,1.206,101,0.014,103,0.001,104,0.001,105,1.264,107,1.702,111,1.918,112,3.035,127,1.214,187,1.018,216,1.774,217,1.267,221,2.739,227,1.281,450,2.925,721,3.815,1444,4.633,1962,8.031,2689,6.307,2701,4.425,3543,3.491,3544,2.953,4940,7.496,4953,6.449,4955,4.286,4982,3.987,6193,9.474,6651,8.864,6652,8.864,6654,5.404,13839,6.213,13939,7.112,13940,9.595,13941,9.595,13942,7.112,13943,7.112,13944,9.595,13945,7.112,13946,9.595,13947,7.112,13948,7.112,13949,9.595,13950,7.112,13951,7.112,13952,7.112,13953,7.112,13954,7.112,13955,7.112,13956,7.112,13957,7.112,13958,9.595,13959,7.112,13960,7.112]],["title/injectables/LessonUC.html",[105,0.889,13648,5.639]],["body/injectables/LessonUC.html",[0,0.285,3,0.022,4,0.022,5,0.012,7,0.129,8,1.29,10,4.317,26,2.775,27,0.444,29,0.849,30,0.001,31,0.6,32,0.15,33,0.535,35,1.012,39,2.248,95,0.159,99,1.422,101,0.016,103,0.001,104,0.001,105,1.409,107,2.007,111,2.138,112,2.639,127,1.353,187,1.2,216,1.976,217,1.108,221,2.519,227,0.885,284,5.054,368,3.312,369,1.849,461,1.932,766,3.604,843,3.66,1062,3.66,1240,4.841,1868,5.312,1952,7.022,2701,4.93,2767,3.78,3106,4.702,3767,6.551,3830,5.312,3832,5.637,4940,10.391,4955,7.093,4982,4.702,6404,4.997,13648,8.938,13961,8.386,13962,8.386,13963,9.339,13964,8.386,13965,8.386,13966,8.386,13967,6.76,13968,8.386,13969,8.386,13970,8.386]],["title/classes/LessonUrlParams.html",[0,0.229,13657,5.269]],["body/classes/LessonUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,2701,5.404,3834,5.671,4955,7.581,13657,9.154,13971,9.724,13972,9.724]],["title/classes/LessonUrlParams-1.html",[0,0.191,905,2.329,13657,4.381]],["body/classes/LessonUrlParams-1.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,2701,5.404,3834,5.671,4955,7.581,13657,9.154,13973,9.724,13974,9.724]],["title/classes/ListOauthClientsParams.html",[0,0.229,13975,5.892]],["body/classes/ListOauthClientsParams.html",[0,0.328,2,0.824,3,0.019,4,0.019,5,0.01,7,0.11,27,0.484,30,0.001,31,0.541,32,0.164,33,0.651,47,0.848,55,2.564,56,5.245,58,7.707,95,0.124,101,0.014,103,0.001,104,0.001,165,0.762,247,4.624,361,6.698,364,2.16,368,5.142,370,4.343,371,3.81,374,2.288,376,1.679,379,2.686,467,3.27,470,4.591,471,5.177,694,5.172,1018,6.281,1021,5.13,1036,9.747,1037,10.184,3436,7.733,3437,5.083,3442,6.985,3493,5.988,5382,6.953,5394,7.531,5468,8.281,7668,7.026,7848,10.886,8210,9.107,9574,8.634,13975,8.422,13976,12.167,13977,7.163,13978,7.163,13979,7.163,13980,9.641,13981,9.641,13982,7.163,13983,7.163,13984,9.641,13985,7.163,13986,7.163,13987,7.163]],["title/classes/LocalAuthorizationBodyParams.html",[0,0.229,13988,5.892]],["body/classes/LocalAuthorizationBodyParams.html",[0,0.395,2,1.102,3,0.025,4,0.025,5,0.014,7,0.147,27,0.483,30,0.001,32,0.163,47,0.945,51,6.177,87,6.177,95,0.149,101,0.018,103,0.001,104,0.001,165,0.918,364,2.152,374,3.061,376,2.247,467,3.359,470,5.266,1001,7.449,7184,9.365,13261,8.373,13988,10.148,13989,12.5,13990,8.854,13991,8.854]],["title/injectables/LocalStrategy.html",[105,0.889,1633,5.892]],["body/injectables/LocalStrategy.html",[0,0.198,3,0.015,4,0.015,5,0.008,7,0.09,8,1.009,27,0.443,29,0.847,30,0.001,31,0.599,32,0.158,33,0.534,35,1.179,36,2.318,39,1.563,47,0.996,51,5.98,59,3.311,66,6.758,87,6.519,94,5.585,95,0.168,101,0.011,103,0.001,104,0.001,105,1.102,107,1.396,111,2.557,112,2.635,127,1.058,138,2.533,187,0.835,206,2.986,216,1.972,217,1.552,221,2.769,227,0.882,234,1.906,305,1.678,334,0.642,369,1.286,404,1.056,406,1.869,441,7.38,450,2.4,461,1.926,491,2.863,513,4.279,639,4.324,789,7.772,801,3.402,802,4.227,803,3.647,983,4.877,1083,5.389,1182,4.877,1183,5.096,1627,8.71,1633,7.302,1640,4.324,1651,4.877,1683,3.438,1717,3.746,1808,4.324,2038,8.033,4485,3.988,5974,5.446,6929,4.433,10760,5.096,10768,4.433,11438,4.877,12185,8.335,12684,4.557,12692,4.877,12695,4.877,13318,9.025,13343,5.389,13346,5.096,13348,5.389,13349,5.389,13351,5.389,13992,5.834,13993,8.359,13994,5.834,13995,9.025,13996,5.834,13997,5.834,13998,10.669,13999,5.834,14000,8.359,14001,8.359,14002,5.834,14003,8.359,14004,5.834,14005,5.834,14006,5.834,14007,5.834,14008,5.834,14009,5.834,14010,8.359,14011,5.834,14012,5.834,14013,5.834,14014,5.834,14015,5.834,14016,5.096,14017,5.834,14018,5.834,14019,5.834,14020,5.834]],["title/interfaces/Loggable.html",[334,0.742,1542,3.147]],["body/interfaces/Loggable.html",[3,0.027,4,0.027,5,0.014,7,0.155,8,1.443,27,0.418,30,0.001,35,1.214,95,0.129,101,0.019,103,0.001,104,0.001,208,3.734,334,1.108,336,2.451,1542,5.582,1543,6.633,1547,6.571,8137,6.633,8138,6.906,14021,10.064,14022,10.064]],["title/injectables/Logger.html",[105,0.889,1052,2.749]],["body/injectables/Logger.html",[0,0.232,3,0.028,4,0.018,5,0.01,7,0.105,8,1.124,27,0.525,29,0.981,30,0.001,31,0.722,32,0.177,33,0.618,35,1.443,47,0.83,95,0.153,101,0.013,103,0.001,104,0.001,105,1.228,107,1.63,111,2.283,116,4.427,127,0.862,144,1.861,148,4.038,165,0.736,187,0.975,199,4.054,216,1.259,217,1.508,277,3.729,329,2.006,336,1.659,839,3.197,1052,4.873,1327,4.509,1542,6.438,2993,4.505,5400,6.163,7661,4.741,8179,9.975,8189,5.95,8190,7.279,8191,5.49,8192,6.292,8193,5.95,8194,10.548,13396,8.607,13405,8.607,13417,6.292,13428,10.446,14023,6.811,14024,8.139,14025,9.317,14026,9.317,14027,9.317,14028,6.811,14029,9.317,14030,6.811,14031,9.317,14032,6.811,14033,6.811,14034,9.317,14035,6.811,14036,6.811,14037,6.811,14038,6.811,14039,6.292]],["title/modules/LoggerModule.html",[425,1.808,438,3.186]],["body/modules/LoggerModule.html",[0,0.26,3,0.02,4,0.02,5,0.011,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,187,1.093,204,2.62,227,0.806,234,1.239,336,1.861,369,2.218,371,2.105,425,3.016,427,2.823,428,2.978,429,3.071,430,3.057,431,3.03,432,4.159,433,4.243,438,6.498,442,4.045,443,3.003,444,2.928,449,3.071,565,5.312,789,7.681,801,4.454,837,5.661,839,3.586,1052,5.634,1053,6.067,1252,4.552,3552,5.661,7661,5.317,8173,11.439,8190,8.791,11371,6.386,14040,7.638,14041,7.638,14042,7.638,14043,7.638,14044,7.056,14045,7.638,14046,7.638,14047,7.638,14048,6.386,14049,7.638,14050,7.638,14051,7.638,14052,7.638,14053,7.638,14054,7.638,14055,7.638,14056,7.638,14057,7.638,14058,7.638,14059,7.638,14060,7.638,14061,7.638,14062,7.638,14063,7.638]],["title/classes/LoggingUtils.html",[0,0.229,8191,5.437]],["body/classes/LoggingUtils.html",[0,0.274,2,0.926,3,0.021,4,0.021,5,0.011,7,0.124,8,1.257,27,0.48,29,0.917,30,0.001,31,0.648,32,0.146,33,0.578,35,1.393,47,0.919,59,2.498,95,0.148,101,0.015,103,0.001,104,0.001,111,2.308,145,2.979,199,4.659,208,2.987,217,1.612,227,1.218,336,1.961,359,4.002,627,4.201,1062,3.514,1327,4.559,1542,6.149,1547,4.005,8191,8.395,10491,8.707,13397,11.276,13430,7.437,13431,7.437,14064,8.051,14065,10.414,14066,10.414,14067,10.414,14068,10.414,14069,8.051,14070,11.544,14071,10.414,14072,8.051,14073,10.414,14074,8.051,14075,8.051,14076,8.051,14077,10.414]],["title/controllers/LoginController.html",[481,2.629,1588,5.892]],["body/controllers/LoginController.html",[0,0.164,3,0.013,4,0.013,5,0.007,7,0.074,8,0.878,27,0.364,29,0.695,30,0.001,31,0.492,32,0.189,33,0.438,35,1.057,36,2.387,95,0.157,100,1.617,101,0.009,103,0,104,0,112,2.692,163,3.464,187,0.692,215,1.564,216,0.893,217,1.451,221,2.063,227,0.924,334,0.532,355,4.951,364,1.622,367,5.288,376,1.133,379,3.049,447,2.026,461,2.901,481,1.884,483,2.326,491,6.004,498,7.511,502,6.868,503,6.871,504,9.123,505,8.089,506,7.158,507,9.533,513,3.726,522,7.405,543,4.882,553,6.092,554,7.748,555,2.551,558,2.296,563,5.405,564,4.455,565,4.622,731,3.443,845,8.52,1134,3.248,1298,4.136,1299,4.086,1300,4.086,1301,4.327,1302,4.737,1487,2.761,1586,7.321,1588,6.358,1591,4.464,1640,3.581,1821,8.907,1822,3.429,2008,3.103,2657,6.214,2658,6.095,2954,3.501,2955,2.735,3091,5.009,3673,3.303,4533,6.621,5382,4.159,6047,6.349,6706,6.868,7339,3.363,7853,8.143,10277,5.274,12662,4.464,13259,8.148,13314,7.321,13988,8.513,14078,4.832,14079,7.278,14080,7.278,14081,8.756,14082,4.832,14083,4.832,14084,10.149,14085,4.832,14086,8.864,14087,8.756,14088,4.832,14089,4.832,14090,4.832,14091,4.832,14092,4.832,14093,4.832,14094,8.148,14095,4.832,14096,4.832,14097,4.832,14098,4.832,14099,4.832,14100,4.221,14101,4.832,14102,4.832,14103,4.832,14104,4.832,14105,8.756,14106,4.832,14107,4.832,14108,8.756,14109,8.756,14110,4.832,14111,4.832,14112,4.832,14113,4.832,14114,4.832,14115,4.832]],["title/classes/LoginDto.html",[0,0.229,1821,5.269]],["body/classes/LoginDto.html",[0,0.34,2,1.149,3,0.027,4,0.027,5,0.014,7,0.154,27,0.495,29,0.793,30,0.001,31,0.561,32,0.167,33,0.5,47,0.866,101,0.019,103,0.001,104,0.001,127,1.264,165,0.941,405,3.218,595,3.451,1703,8.552,1821,10.516,14116,9.989,14117,11.909,14118,8.352,14119,8.352]],["title/classes/LoginRequestBody.html",[0,0.229,14120,5.437]],["body/classes/LoginRequestBody.html",[0,0.297,2,0.713,3,0.016,4,0.016,5,0.009,7,0.095,27,0.512,30,0.001,32,0.173,33,0.671,47,0.797,55,2.222,95,0.13,101,0.012,103,0.001,104,0.001,116,2.007,165,0.69,204,4.225,247,3.463,277,3.494,339,8.128,340,5,344,9.624,345,7.894,347,1.779,361,5.562,364,2.282,368,5.05,369,1.925,370,4.265,371,3.774,373,4.609,374,1.981,376,1.454,379,2.328,404,1.581,461,2.012,467,2.715,471,4.299,502,3.877,506,4.041,564,2.301,565,4.609,596,3.51,728,4.294,1035,6.077,1253,2.86,1498,4.494,1510,3.877,1887,7.401,1997,6.821,2116,3.355,2298,7.226,2507,5.607,3544,3.625,4556,4.47,4638,6.821,5346,3.928,5372,10.139,5373,7.3,5374,7.3,5375,6.821,5378,4.169,5380,5.185,5381,7.627,5382,5.774,5383,7.627,5384,8.066,5385,7.627,5387,5.729,5388,8.066,5389,6.326,5390,10.131,5391,6.634,5392,8.066,5394,8.567,5395,4.713,5396,5.418,5397,5.418,5398,5.418,5399,5.729,5400,4.102,5401,6.634,5402,7.038,5403,4.845,5404,5,5405,4.713,5406,5.185,5407,4.845,5408,5.729,5409,5.185,5410,3.983,5411,5.729,5412,4.713,5413,5.729,5414,5.418,5415,5.185,5416,5.418,5417,5.729,5419,7.038,5420,5.729,14120,7.038,14121,10.105,14122,6.202,14123,6.202]],["title/classes/LoginResponse.html",[0,0.229,14086,4.887]],["body/classes/LoginResponse.html",[0,0.332,2,1.124,3,0.026,4,0.026,5,0.014,7,0.15,27,0.488,29,0.776,30,0.001,31,0.549,32,0.165,33,0.489,47,0.854,95,0.125,101,0.019,103,0.001,104,0.001,127,1.236,165,0.929,364,1.81,376,2.291,405,3.176,467,3.387,595,3.375,1703,8.472,14086,9.695,14118,8.169,14119,8.169,14124,9.771,14125,11.753]],["title/classes/LoginResponse-1.html",[0,0.191,905,2.329,14086,4.063]],["body/classes/LoginResponse-1.html",[0,0.279,2,0.654,3,0.015,4,0.015,5,0.008,7,0.087,27,0.535,29,0.452,30,0.001,31,0.319,32,0.181,33,0.657,34,1.998,47,0.962,70,5.601,72,3.852,77,6.099,95,0.135,101,0.011,103,0.001,104,0.001,127,0.719,137,7.639,145,3.172,150,3.009,165,0.648,290,4.737,339,6.082,346,5.515,347,1.672,349,5.428,355,4.581,361,7.164,364,2.356,367,5.917,368,3.241,369,2.123,370,2.737,371,2.905,374,1.816,376,1.333,379,2.767,461,2.684,467,3.497,470,3.457,471,5.109,522,6.235,1013,4.415,1596,6.833,1887,5.065,2282,5.515,2298,6.354,2489,3.249,3400,3.957,3544,5.201,4082,4.583,4216,6.702,5418,5.198,5425,8.051,5426,8.051,5427,8.051,5428,7.762,5431,8.412,5433,4.966,5439,8.051,5440,7.58,5448,8.051,5451,6.235,5453,5.515,5457,7.58,5458,7.58,5461,4.966,5462,5.252,5463,5.252,5464,5.252,5473,7.58,12585,6.615,12908,6.615,14086,8.701,14126,5.685,14127,8.895,14128,8.206,14129,5.685,14130,5.685,14131,5.685,14132,7.168,14133,5.685,14134,5.685,14135,8.206,14136,5.685,14137,5.685,14138,5.685,14139,8.206,14140,8.206,14141,8.206,14142,5.685,14143,5.685,14144,5.685]],["title/classes/LoginResponseMapper.html",[0,0.229,14100,5.892]],["body/classes/LoginResponseMapper.html",[0,0.324,2,1.097,3,0.025,4,0.025,5,0.013,7,0.147,8,1.398,27,0.396,29,0.758,30,0.001,31,0.536,32,0.134,33,0.477,35,1.151,95,0.149,100,3.193,101,0.018,103,0.001,104,0.001,217,1.26,227,1.007,234,1.547,627,3.883,974,5.888,1016,4.136,1703,6.412,1821,10.384,1822,6.769,14086,9.631,14100,10.119,14145,11.584,14146,11.584,14147,11.584,14148,7.975,14149,9.539]],["title/injectables/LoginUc.html",[105,0.889,1586,5.639]],["body/injectables/LoginUc.html",[0,0.301,3,0.023,4,0.023,5,0.013,7,0.136,8,1.334,27,0.459,29,0.878,30,0.001,31,0.621,32,0.155,33,0.553,35,1.068,36,2.403,95,0.162,100,2.961,101,0.017,103,0.001,104,0.001,105,1.457,107,2.117,112,2.705,127,1.12,187,1.266,215,2.863,216,1.635,217,1.46,221,2.085,227,0.934,231,5.107,234,1.435,1586,9.245,1627,9.366,1651,7.397,1703,5.946,1794,10.187,1820,7.397,1821,10.365,4623,9.66,14150,8.847,14151,11.058,14152,8.847,14153,8.847,14154,11.058,14155,8.847,14156,8.173,14157,8.847,14158,8.847,14159,8.847]],["title/injectables/Lti11EncryptionService.html",[105,0.889,14160,5.639]],["body/injectables/Lti11EncryptionService.html",[0,0.285,3,0.022,4,0.022,5,0.012,7,0.129,8,1.29,27,0.348,29,0.666,30,0.001,31,0.471,32,0.118,33,0.42,35,1.012,47,1.003,95,0.151,101,0.016,103,0.001,104,0.001,105,1.409,107,2.007,108,6.171,116,3.809,150,4.545,163,2.644,187,1.2,217,1.554,227,0.885,231,7.154,234,1.36,235,4.746,1291,5.007,1696,7.083,1812,5.951,1887,8.079,2076,5.643,2306,7.747,2955,4.746,5382,7.083,6414,6.076,14160,8.938,14161,10.691,14162,8.386,14163,9.876,14164,10.691,14165,8.386,14166,7.012,14167,10.691,14168,7.326,14169,8.386,14170,8.618,14171,8.386,14172,8.386,14173,8.386,14174,8.386,14175,8.386,14176,8.386,14177,8.386,14178,8.386]],["title/classes/Lti11ToolConfig.html",[0,0.229,7125,4.887]],["body/classes/Lti11ToolConfig.html",[0,0.258,2,0.872,3,0.02,4,0.02,5,0.011,7,0.117,27,0.554,29,0.602,30,0.001,31,0.426,32,0.192,33,0.561,47,0.97,95,0.128,101,0.014,103,0.001,104,0.001,127,0.959,165,0.791,198,3.625,200,2.47,209,4.593,238,6.066,404,1.813,405,2.706,406,2.429,595,2.619,596,3.04,1696,6.407,2076,5.918,2600,5.754,2602,6.338,2603,9.19,2605,6.622,2606,5.512,2607,6.622,2608,6.622,2610,5.379,6968,7.2,6974,7.101,6976,7.101,6978,7.2,6993,5.493,6994,6.111,6995,5.922,6996,6.338,6999,5.76,7000,6.111,7003,5.76,7004,6.111,7007,5.76,7008,6.111,7122,8.124,7125,8.984,7149,5.182,7154,7.804,14179,13.185,14180,9.25,14181,7.003,14182,7.003,14183,7.003,14184,7.003,14185,7.003,14186,6.622,14187,6.622]],["title/classes/Lti11ToolConfigCreateParams.html",[0,0.229,8456,5.639]],["body/classes/Lti11ToolConfigCreateParams.html",[0,0.331,2,0.834,3,0.019,4,0.019,5,0.01,7,0.112,27,0.543,30,0.001,32,0.189,33,0.486,47,0.972,95,0.15,101,0.014,103,0.001,104,0.001,154,5.857,165,0.768,198,3.469,200,2.363,209,4.495,238,5.933,364,2.419,374,2.317,375,3.944,376,1.701,404,1.761,467,3.509,470,5.148,471,4.136,596,2.952,1044,3.56,1696,6.267,2076,5.789,2600,5.607,2606,6.037,2626,8.853,2627,7.783,2628,5.847,2629,5.847,2630,5.847,2631,5.847,2632,5.847,5729,5.255,6968,7.043,6974,6.947,6976,6.947,6978,7.043,7122,7.946,7154,7.634,8455,5.847,8456,8.129,8463,6.336,14188,11.868,14189,6.7,14190,7.253,14191,6.7,14192,6.7,14193,6.7,14194,7.253,14195,7.253,14196,6.7,14197,8.981,14198,6.7,14199,6.7]],["title/classes/Lti11ToolConfigEntity.html",[0,0.229,8476,5.437]],["body/classes/Lti11ToolConfigEntity.html",[0,0.236,2,0.8,3,0.018,4,0.018,5,0.01,7,0.107,27,0.545,29,0.552,30,0.001,31,0.39,32,0.188,33,0.537,47,0.953,95,0.148,96,1.879,101,0.013,103,0.001,104,0.001,127,0.88,165,0.747,198,3.325,200,2.265,209,4.513,238,5.112,240,4.107,364,2.396,369,2.083,370,2.319,386,3.973,398,2.036,404,1.711,405,2.553,595,2.402,596,2.869,617,4.013,1031,3.981,1696,6.134,2076,5.665,2600,5.644,2606,5.201,2613,5.812,2614,9.708,2616,6.073,2617,6.073,2618,4.837,2619,6.073,2620,4.054,2621,3.284,6968,6.893,6974,6.798,6976,6.798,6978,6.893,6993,5.037,6994,5.604,6995,5.431,6996,5.812,6999,5.282,7000,5.604,7003,5.282,7004,5.604,7007,5.282,7008,5.604,7035,6.073,7122,7.777,7149,6.459,7154,7.471,8476,9.708,14186,6.073,14187,6.073,14200,12.931,14201,9.449,14202,6.952,14203,6.952,14204,6.952,14205,6.952,14206,6.952]],["title/classes/Lti11ToolConfigResponse.html",[0,0.229,8989,5.639]],["body/classes/Lti11ToolConfigResponse.html",[0,0.247,2,0.834,3,0.019,4,0.019,5,0.01,7,0.112,27,0.543,29,0.576,30,0.001,31,0.407,32,0.189,33,0.549,47,0.949,95,0.141,101,0.014,103,0.001,104,0.001,127,0.918,165,0.768,198,3.469,200,2.363,209,4.495,238,5.933,364,2.38,375,4.449,376,1.701,404,1.761,405,2.627,406,2.324,467,3.67,595,2.506,596,2.952,2076,5.789,2600,5.607,2606,6.037,2610,5.147,2621,3.426,2622,5.147,2635,5.847,2636,9.85,2638,6.336,2639,6.336,2640,5.847,6968,7.043,6974,6.947,6976,6.947,6978,7.043,6993,5.255,6994,5.847,6999,5.511,7000,5.847,7003,5.511,7004,5.847,7007,5.511,7008,5.847,7122,7.946,7149,4.958,7154,7.634,8989,10.216,14186,6.336,14187,6.336,14207,12.847,14208,8.981,14209,6.7,14210,6.7,14211,6.7,14212,6.336]],["title/classes/Lti11ToolConfigUpdateParams.html",[0,0.229,8913,5.639]],["body/classes/Lti11ToolConfigUpdateParams.html",[0,0.329,2,0.83,3,0.019,4,0.019,5,0.01,7,0.111,27,0.542,30,0.001,32,0.189,33,0.585,47,0.971,95,0.15,101,0.014,103,0.001,104,0.001,154,5.849,165,0.765,198,3.45,200,2.35,209,4.489,238,5.917,364,2.416,374,2.304,375,4.437,376,1.691,404,1.754,467,3.448,470,5.138,471,4.653,596,2.941,1044,3.541,1696,6.25,2076,5.773,2600,5.599,2606,6.021,2626,8.837,2627,6.874,2628,5.815,2629,5.815,2630,5.815,2631,5.815,2632,5.815,5729,7.019,6968,7.024,6974,6.928,6976,6.928,6978,7.024,7122,7.925,7154,7.613,8913,8.099,9218,6.031,9220,6.302,9222,6.302,14188,11.852,14189,6.664,14191,6.664,14193,6.664,14197,8.949,14198,6.664,14199,6.664,14213,7.214,14214,7.214,14215,7.214,14216,6.664]],["title/injectables/Lti11ToolLaunchStrategy.html",[105,0.889,14217,5.639]],["body/injectables/Lti11ToolLaunchStrategy.html",[0,0.112,3,0.009,4,0.009,5,0.005,7,0.051,8,0.65,9,1.576,26,2.056,27,0.491,29,0.938,30,0.001,31,0.73,32,0.172,33,0.591,35,1.404,36,2.141,39,2.115,47,0.815,95,0.154,99,0.559,101,0.006,103,0,104,0,105,0.71,106,9.765,107,0.789,108,3.11,110,2.756,111,2.492,112,2.609,113,4.505,114,4.505,115,4.505,116,3.765,117,5.713,118,4.505,119,4.505,120,4.505,121,4.505,122,4.343,123,4.343,124,4.505,125,4.505,126,4.505,127,0.682,129,4.871,130,7.449,132,4.388,133,2.756,134,10.264,135,4.505,136,6.16,137,3.904,138,2.339,139,6.534,140,6.471,142,2.756,143,4.505,144,3.228,145,2.543,146,5.304,148,1.667,149,2.756,150,3.191,151,4.505,153,2.756,154,1.503,155,7.811,157,2.756,158,3.954,160,6.766,161,2.756,163,3.107,164,4.505,165,0.624,167,2.057,168,2.756,170,2.657,171,2.657,173,2.756,175,2.294,176,4.505,178,5.338,179,2.756,180,4.505,181,4.999,183,2.756,184,4.505,185,2.11,187,0.472,190,2.657,191,1.831,192,0.983,198,1.576,200,1.074,201,1.726,206,1.687,207,2.657,208,1.223,209,2.717,210,4.388,211,2.657,216,1.263,217,1.56,221,1.86,227,0.721,231,3.944,234,1.916,240,1.688,241,2.88,253,2.88,268,4.977,305,1.55,331,6.84,404,0.976,461,0.76,596,3.533,667,2.529,731,2.687,1291,1.402,1298,3.227,1299,3.189,1300,3.189,1301,3.376,1302,2.915,1439,2.577,1696,4.972,1887,3.326,2076,4.592,2171,1.417,2180,4.328,2251,4.977,2646,2.88,2647,2.88,2648,2.88,2649,2.88,2650,2.88,2651,2.88,2652,2.88,2653,2.88,2654,2.88,2655,2.88,2656,2.88,2657,3.823,2658,3.75,2660,4.977,2662,9.789,2663,3.045,2668,3.045,3060,3.823,3110,1.597,3145,2.505,4092,2.253,4538,3.867,4560,2.505,4561,1.754,5102,5.508,5382,1.884,5602,2.699,5664,3.326,6938,3.049,6942,3.823,6947,3.045,6968,2.117,6974,2.088,6975,2.505,6976,2.088,7151,2.756,7154,2.294,8112,3.045,8339,2.88,8712,4.452,8836,3.46,11449,2.148,12144,7.488,12145,5.694,12168,2.756,12169,3.045,12173,2.505,12644,3.045,14160,8.239,14168,2.88,14217,4.505,14218,5.388,14219,2.657,14220,3.296,14221,3.296,14222,3.296,14223,3.296,14224,4.977,14225,2.88,14226,5.388,14227,3.296,14228,5.388,14229,3.296,14230,3.296,14231,4.977,14232,3.045,14233,3.296,14234,5.388,14235,3.296,14236,3.296,14237,3.296,14238,3.296,14239,3.296,14240,3.296,14241,2.88,14242,3.296,14243,3.296,14244,6.833,14245,3.045,14246,7.892,14247,3.296,14248,3.296,14249,3.296,14250,3.045,14251,3.045,14252,3.296,14253,3.296,14254,5.388,14255,3.296,14256,3.296,14257,3.296,14258,3.296]],["title/classes/LtiRoleMapper.html",[0,0.229,14225,5.892]],["body/classes/LtiRoleMapper.html",[0,0.299,2,1.011,3,0.023,4,0.023,5,0.012,7,0.135,8,1.329,27,0.365,29,0.698,30,0.001,31,0.493,32,0.123,33,0.44,35,1.061,95,0.141,99,1.491,101,0.017,103,0.001,104,0.001,108,6.357,116,2.844,145,3.103,198,4.203,217,1.588,227,0.928,627,3.744,696,4.533,4538,7.348,11449,5.726,11452,6.866,11453,6.678,11454,6.678,14224,12.755,14225,9.62,14232,8.119,14259,11.013,14260,8.789,14261,11.013,14262,11.013,14263,8.789,14264,8.119,14265,8.789,14266,11.013,14267,8.789,14268,11.013,14269,8.789,14270,8.789,14271,8.789,14272,11.013,14273,8.789]],["title/entities/LtiTool.html",[380,1.41,6972,4.999]],["body/entities/LtiTool.html",[0,0.14,3,0.011,4,0.011,5,0.006,7,0.063,26,1.34,27,0.542,30,0.001,31,0.545,32,0.184,33,0.66,47,0.967,49,3.085,95,0.115,96,1.736,97,1.747,101,0.019,103,0,104,0,116,2.079,144,1.122,145,2.309,150,2.902,165,0.508,216,0.759,227,0.433,234,0.666,236,4.614,240,4.112,329,3.449,334,0.452,347,2.386,364,2.418,369,2.965,370,4.378,371,3.694,380,1.343,381,1.351,386,7.365,394,3.671,398,1.203,399,2.515,400,1.802,402,1.689,404,0.744,405,1.11,406,1.316,540,4.655,701,1.434,853,2.087,1019,4.614,1031,3.112,1576,2.475,1680,6.118,1696,4.522,1925,2.134,2076,4.724,2136,1.644,2400,2.347,2586,2.168,2674,2.946,3110,3.833,4303,1.802,6090,2.281,6388,3.588,6413,3.434,6426,3.434,6957,6.912,6958,3.794,6959,5.371,6960,7.214,6961,5.935,6962,5.935,6963,3.794,6964,3.794,6965,5.935,6966,3.794,6967,3.794,6968,6.237,6969,5.935,6970,5.935,6971,3.794,6972,4.762,6973,6.181,6974,5.012,6975,6.012,6976,5.012,6977,5.371,6978,5.081,6979,6.181,6980,6.181,6981,5.864,6982,5.935,6983,7.309,6984,3.311,6985,3.208,6986,3.794,6987,5.615,6988,6.181,6989,5.012,6990,5.864,6991,4.715,6992,2.637,6993,2.976,6994,3.311,6995,3.208,6996,3.434,6997,3.434,6998,3.794,6999,3.121,7000,3.311,7001,3.434,7002,3.794,7003,3.121,7004,3.311,7005,3.208,7006,3.311,7007,3.121,7008,3.311,7009,3.434,7010,3.794,7011,3.434,7012,3.794,7013,3.434,7014,3.794,7015,3.794,7016,3.794,7017,3.794,7018,3.434,7019,3.794,7020,3.434,7021,3.794,7022,3.121,7023,3.311,7024,2.859,7025,3.044,7026,3.434,7027,3.794,7028,3.044,7029,3.311,14274,4.107,14275,4.107,14276,4.107,14277,4.107,14278,4.107,14279,4.107,14280,4.107,14281,4.107,14282,4.107,14283,4.107,14284,4.107,14285,4.107,14286,4.107,14287,4.107,14288,4.107,14289,4.107,14290,4.107,14291,4.107,14292,4.107,14293,4.107,14294,4.107,14295,4.107,14296,4.107]],["title/classes/LtiToolDO.html",[0,0.229,7038,4.694]],["body/classes/LtiToolDO.html",[0,0.28,2,0.658,3,0.015,4,0.015,5,0.008,7,0.088,26,2.015,27,0.572,29,0.454,30,0.001,31,0.593,32,0.193,33,0.69,34,1.413,47,1.013,95,0.124,101,0.016,103,0.001,104,0.001,127,0.724,144,2.64,150,3.542,165,0.651,236,5.633,347,2.594,404,1.492,596,1.736,1696,5.52,1857,2.445,1939,6.102,2076,5.914,2136,2.288,2586,3.018,3110,4.679,4371,4.995,5612,4.143,6090,3.176,6960,7.787,6968,6.203,6973,7.546,6974,6.118,6975,7.34,6976,6.118,6978,6.203,6979,7.546,6980,7.546,6981,7.159,6985,7.546,6987,6.855,6988,7.546,6989,6.118,6990,7.159,6991,5.756,6993,5.97,6995,4.466,6997,4.78,6999,4.344,7001,4.78,7003,4.344,7005,4.466,7007,4.344,7009,4.78,7011,4.78,7013,4.78,7018,4.78,7020,4.78,7022,4.344,7024,3.98,7026,4.78,7028,4.238,7030,8.076,7031,5.282,7032,5.282,7035,4.995,7036,4.344,7037,4.466,7038,7.799,7039,6.437,7040,4.466,7041,5.282,7042,5.282,7043,5.282,7044,5.282,7045,5.282,7046,5.282,7047,5.282,7048,4.995,7049,5.282,7050,5.282,7051,5.282,7052,5.282,7053,5.282,7054,5.282,7055,5.282,7056,5.282,7057,5.282,7058,5.282,7059,5.282,7060,5.282,14297,8.24,14298,5.718,14299,5.718,14300,5.718,14301,5.718,14302,5.718,14303,5.718,14304,5.718,14305,5.718,14306,5.718,14307,5.718,14308,5.718,14309,5.718,14310,5.718,14311,5.718,14312,5.718,14313,5.718,14314,5.718,14315,5.718,14316,5.718]],["title/classes/LtiToolFactory.html",[0,0.229,14317,6.23]],["body/classes/LtiToolFactory.html",[0,0.156,2,0.527,3,0.012,4,0.012,5,0.006,7,0.071,8,0.844,27,0.534,29,1.028,30,0.001,31,0.721,32,0.184,33,0.623,34,1.455,35,1.427,47,0.839,55,2.462,59,3.17,95,0.122,99,0.778,101,0.009,103,0,104,0,127,0.58,138,3.037,144,3.232,148,1.418,150,2.565,165,0.553,185,4.872,216,1.293,217,1.12,227,0.895,234,0.743,236,2.673,329,3.4,359,2.425,366,2.524,369,1.542,371,2.337,379,1.954,380,2.136,381,2.301,404,1.267,538,3.135,596,3.824,627,2.177,660,7.128,661,4.536,662,5.319,665,3.921,666,5.319,667,5.553,668,3.921,669,3.921,670,3.921,671,3.85,672,4.309,673,4.754,674,6.3,675,5.623,676,6.891,677,2.594,682,2.57,683,3.921,684,2.594,685,4.968,686,5.177,687,4.401,688,5.008,689,3.885,690,2.57,691,2.401,692,4.011,693,2.502,694,2.459,695,2.57,696,4.893,697,2.594,698,4.668,699,2.57,700,7.061,701,4.032,702,6.472,703,2.594,704,4.19,705,2.57,706,2.594,707,2.57,708,2.594,709,2.57,710,2.904,711,2.732,712,2.57,713,5.927,714,2.594,715,2.57,716,3.921,717,3.85,718,3.921,719,2.594,720,2.48,721,2.459,722,2.022,723,2.57,724,2.57,725,2.57,726,2.594,727,2.594,728,1.795,729,2.57,730,2.594,731,2.75,732,2.57,733,2.594,735,2.646,737,4.168,1696,3.997,2076,3.692,3110,2.221,4328,3.833,5472,2.265,6959,3.833,6960,3.696,6968,2.944,6972,5.184,6973,5.463,6974,4.43,6975,5.314,6976,4.43,6978,2.944,6979,3.581,6980,3.581,6981,3.398,6985,5.463,6987,6.017,6988,5.463,6989,2.904,6990,5.184,6991,2.732,7030,3.833,8496,6.461,8501,6.461,11022,3.483,14245,4.235,14317,7.833,14318,4.584,14319,6.994,14320,4.584,14321,6.994,14322,4.584,14323,4.584,14324,4.584,14325,4.584,14326,4.584]],["title/modules/LtiToolModule.html",[425,1.808,14327,5.639]],["body/modules/LtiToolModule.html",[0,0.306,3,0.024,4,0.024,5,0.013,30,0.001,95,0.163,101,0.017,103,0.001,104,0.001,187,1.289,425,3.259,427,3.329,428,3.511,429,3.62,430,3.604,431,3.572,432,4.494,433,4.585,442,4.495,443,3.541,444,3.452,450,3.704,766,3.87,1053,5.91,1545,2.876,4552,9.656,5277,7.26,14327,11.651,14328,9.006,14329,9.006,14330,9.006,14331,11.704,14332,8.319,14333,9.006]],["title/injectables/LtiToolRepo.html",[105,0.889,4552,4.887]],["body/injectables/LtiToolRepo.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,8,0.801,10,2.682,12,3.063,18,3.282,26,2.357,27,0.536,29,1.016,30,0.001,31,0.741,32,0.18,33,0.64,34,1.571,35,1.544,36,2.697,40,2.063,47,0.843,95,0.127,96,1.158,99,0.727,101,0.008,103,0,104,0,105,0.875,107,1.026,111,2.259,112,2.962,148,1.326,150,2.436,165,0.339,167,2.535,187,0.614,217,1.309,221,1.916,227,1.192,234,1.319,236,3.873,247,1.7,305,1.233,347,1.657,359,2.303,380,2.286,381,1.41,398,1.255,404,1.203,511,2.194,595,1.481,596,3.769,661,4.759,878,4.623,884,3.137,885,4.93,915,2.36,1696,3.796,1857,4.237,2076,3.506,2092,2.426,2383,8.745,2385,4.713,2386,4.713,2387,4.713,2388,4.713,2389,4.623,2390,4.623,2391,4.713,2392,4.623,2393,4.713,2398,3.042,2400,5.233,2401,3.042,2403,3.042,2405,2.835,2406,4.713,2407,3.042,2409,3.042,2411,4.713,2415,4.713,2417,4.464,2418,4.623,2420,3.042,2422,2.614,2423,2.614,2424,3.042,2426,3.042,2428,3.042,2429,3.042,2446,3.042,2447,6.026,2468,5.553,3110,3.217,4355,2.753,4356,3.349,4552,4.812,5766,3.106,5767,3.106,5768,3.106,5769,3.106,5770,3.106,5771,3.106,5772,3.106,5773,3.106,5774,3.106,6959,8.763,6968,2.753,6972,8.596,6973,5.188,6974,4.207,6975,5.047,6976,4.207,6977,3.584,6978,4.265,6979,5.188,6980,5.188,6981,7.768,6985,5.188,6987,7.438,6988,5.188,6989,4.207,6990,4.923,6991,3.958,7038,8.073,8768,5.553,8776,5.553,8781,3.257,8846,3.745,8850,3.96,8851,3.96,8869,3.745,8870,3.96,8874,3.96,8875,3.96,10079,3.96,11022,3.257,14334,4.287,14335,6.136,14336,6.642,14337,3.96,14338,6.642,14339,4.287,14340,4.287,14341,6.642,14342,4.287,14343,4.287,14344,4.287,14345,4.287,14346,4.287,14347,3.584,14348,4.287,14349,4.287,14350,4.287,14351,4.287,14352,4.287,14353,4.287,14354,4.287,14355,4.287,14356,4.287,14357,4.287,14358,4.287,14359,3.96,14360,4.287,14361,4.287,14362,4.287,14363,4.287,14364,4.287,14365,4.287,14366,4.287,14367,4.287,14368,4.287,14369,4.287,14370,4.287,14371,4.287,14372,4.287,14373,4.287,14374,4.287,14375,4.287,14376,4.287,14377,4.287,14378,4.287,14379,4.287,14380,4.287,14381,4.287,14382,4.287,14383,4.287,14384,4.287]],["title/injectables/LtiToolService.html",[105,0.889,14331,5.639]],["body/injectables/LtiToolService.html",[0,0.301,3,0.023,4,0.023,5,0.013,7,0.136,8,1.334,27,0.459,29,0.878,30,0.001,31,0.621,32,0.155,33,0.553,35,1.068,36,2.621,47,0.877,95,0.155,101,0.017,103,0.001,104,0.001,105,1.457,107,2.117,112,2.705,116,3.904,127,1.12,187,1.266,215,2.863,216,1.635,217,1.168,227,0.934,347,2.458,450,3.639,4552,9.614,5285,7.132,5472,4.372,6972,8.196,6981,9.366,7038,6.158,11022,6.722,14331,9.245,14332,11.144,14335,10.215,14385,12.063,14386,8.847,14387,8.847,14388,11.058,14389,8.847,14390,8.847]],["title/interfaces/Mail.html",[334,0.742,1576,4.065]],["body/interfaces/Mail.html",[3,0.021,4,0.021,5,0.011,7,0.125,30,0.001,31,0.455,32,0.182,33,0.669,47,1.036,77,5.13,101,0.015,103,0.001,104,0.001,165,0.826,334,1.452,336,1.973,404,2.216,1560,7.749,1561,6.154,1562,8.581,1563,7.944,1564,6.154,1565,4.499,1566,7.749,1567,5.869,1568,6.154,1569,5.869,1570,8.581,1571,6.154,1572,9.067,1573,7.944,1574,7.944,1575,9.067,1576,7.816,1577,9.067,1578,9.067,1579,9.296,1580,9.296]],["title/interfaces/MailAttachment.html",[334,0.742,1562,4.999]],["body/interfaces/MailAttachment.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,31,0.703,32,0.167,47,1.035,77,5.46,101,0.016,103,0.001,104,0.001,165,0.86,334,1.473,336,2.1,404,2.267,1560,8.063,1561,6.55,1562,9.279,1563,8.266,1564,9.513,1565,6.954,1566,8.063,1567,6.246,1568,6.55,1569,6.246,1570,8.835,1571,6.55,1572,8.063,1573,8.266,1574,8.266,1575,8.063,1576,6.556,1577,6.389,1578,6.389,1579,6.55,1580,6.55]],["title/interfaces/MailContent.html",[334,0.742,1570,4.999]],["body/interfaces/MailContent.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,31,0.485,32,0.153,33,0.545,47,1.027,77,7.936,101,0.016,103,0.001,104,0.001,165,0.861,334,1.474,336,2.104,404,2.269,1560,9.286,1561,6.564,1562,8.843,1563,8.277,1564,6.564,1565,4.798,1566,9.286,1567,6.259,1568,6.564,1569,6.259,1570,9.286,1571,9.52,1572,8.074,1573,8.277,1574,8.277,1575,8.074,1576,6.565,1577,6.402,1578,6.402,1579,6.564,1580,6.564]],["title/modules/MailModule.html",[425,1.808,14391,5.269]],["body/modules/MailModule.html",[0,0.313,3,0.024,4,0.024,5,0.013,8,1.112,27,0.383,29,0.732,30,0.001,31,0.517,32,0.129,33,0.461,35,1.112,47,0.824,95,0.145,101,0.018,103,0.001,104,0.001,187,1.319,227,0.972,334,1.014,425,3.292,427,3.405,432,3.405,433,3.473,627,3.53,701,3.217,836,5.317,1408,6.674,1409,7.621,1412,8.125,1417,7.281,1418,7.621,1420,6.412,1423,7.702,1424,7.702,14391,9.596,14392,8.51,14393,11.198,14394,9.212,14395,9.902,14396,8.51,14397,8.51]],["title/interfaces/MailModuleOptions.html",[334,0.742,14393,5.892]],["body/interfaces/MailModuleOptions.html",[0,0.313,3,0.024,4,0.024,5,0.013,7,0.142,30,0.001,32,0.159,47,0.974,95,0.145,101,0.018,103,0.001,104,0.001,165,0.896,187,1.319,227,0.972,334,1.014,336,2.244,425,3.292,432,3.405,433,3.473,627,2.868,836,5.317,1409,6.191,1412,7.5,1417,8.452,1418,8.846,1420,6.412,1423,7.702,1424,7.702,14391,8.858,14392,8.51,14393,10.731,14395,9.902,14396,8.51,14397,8.51]],["title/injectables/MailService.html",[105,0.889,14395,5.437]],["body/injectables/MailService.html",[0,0.295,3,0.023,4,0.023,5,0.012,7,0.133,8,1.318,27,0.454,29,0.868,30,0.001,31,0.613,32,0.153,33,0.546,35,1.047,36,2.373,47,0.794,95,0.153,101,0.017,103,0.001,104,0.001,105,1.439,107,2.076,111,2.184,112,2.681,116,3.869,127,1.382,163,3.444,187,1.242,216,2.019,221,2.044,334,0.955,369,1.912,701,4.175,839,4.073,1417,5.571,1418,5.831,1427,9.542,1428,8.014,1429,10.032,1437,6.286,1438,5.831,1455,7.253,1458,7.253,1576,7.563,1745,9.132,14395,8.805,14398,8.014,14399,10.962,14400,8.676,14401,8.676,14402,8.014,14403,8.014,14404,8.014]],["title/interfaces/MailServiceOptions.html",[334,0.742,14399,5.892]],["body/interfaces/MailServiceOptions.html",[0,0.31,3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.158,36,1.979,47,0.972,95,0.157,101,0.017,103,0.001,104,0.001,105,1.484,111,2.251,112,2.042,116,2.947,127,1.153,163,2.872,165,0.89,187,1.304,216,2.081,221,2.146,334,1.002,336,2.218,369,2.008,701,3.181,839,4.276,1417,8.199,1418,8.581,1429,9.287,1437,6.599,1438,6.121,1455,7.615,1458,7.615,1576,6.786,1745,7.615,14395,7.342,14398,8.413,14399,10.677,14402,8.413,14403,8.413,14404,8.413]],["title/modules/ManagementModule.html",[425,1.808,14405,5.269]],["body/modules/ManagementModule.html",[0,0.223,3,0.017,4,0.017,5,0.009,30,0.001,95,0.176,101,0.013,103,0.001,104,0.001,187,0.94,217,1.485,347,1.338,425,2.792,427,2.427,428,2.56,429,2.64,430,2.628,431,2.605,432,4.362,433,2.476,438,5.766,442,3.653,443,2.582,444,2.517,447,4.368,449,4.52,801,3.829,802,4.758,1114,2.664,1545,2.097,1585,7.437,1810,5.736,1945,6.082,2171,2.822,2172,3.14,2173,3.028,3443,7.937,3448,8.206,3449,10.207,3456,4.66,3458,4.159,3460,6.066,3461,7.098,3843,10.207,3898,3.583,6317,7.437,7644,7.596,7649,9.537,7665,5.49,7684,9.101,7714,7.596,7718,9.842,8104,6.583,8636,4.571,9419,4.413,10026,7.596,10094,8.783,10246,7.826,10253,4.867,10261,4.867,10262,4.66,10321,4.758,11110,6.066,11111,6.066,11500,4.053,11760,5.49,11763,4.867,12816,5.736,12822,7.596,14405,10.99,14406,6.567,14407,6.567,14408,6.567,14409,6.567,14410,6.567,14411,6.567,14412,9.086,14413,6.567,14414,6.567,14415,6.567,14416,10.419,14417,5.49,14418,6.567]],["title/modules/ManagementServerModule.html",[425,1.808,14419,5.639]],["body/modules/ManagementServerModule.html",[0,0.343,3,0.02,4,0.02,5,0.011,30,0.001,32,0.107,47,0.556,87,3.781,95,0.17,96,2.723,99,1.298,101,0.021,103,0.001,104,0.001,187,1.095,217,1.011,227,0.808,234,1.241,381,2.518,398,2.241,425,3.422,427,2.829,428,2.983,429,3.076,430,3.063,431,3.036,432,2.829,433,2.886,442,4.05,443,3.009,444,2.933,449,4.812,461,1.763,511,3.918,627,2.382,701,2.673,731,3.009,778,5.144,885,5.013,953,4.986,1298,3.615,1299,3.571,1300,3.571,1301,3.781,1378,5.062,1379,4.612,1409,5.144,1412,6.664,1919,3.178,2116,4.14,2686,4.072,4808,5.231,5453,5.144,10248,7.467,10249,7.467,10250,5.545,10251,7.656,10252,5.431,10254,7.467,10258,7.3,10259,7.3,10260,7.3,10262,5.431,10272,9.095,10273,5.672,10274,5.672,10275,5.545,10317,5.327,10319,7.467,10321,5.545,10322,6.169,10323,5.545,10324,6.169,10326,7.467,11226,5.672,14405,10.321,14419,10.677,14420,7.653,14421,7.653,14422,7.07,14423,7.07,14424,6.685,14425,6.685,14426,6.398]],["title/modules/ManagementServerTestModule.html",[425,1.808,14426,5.639]],["body/modules/ManagementServerTestModule.html",[0,0.332,3,0.019,4,0.019,5,0.01,8,0.88,27,0.303,29,0.579,30,0.001,31,0.409,32,0.137,33,0.365,35,0.88,47,0.53,59,2.263,87,3.603,95,0.168,96,2.637,99,1.237,101,0.021,103,0.001,104,0.001,187,1.044,217,0.963,227,0.77,234,1.183,381,2.4,398,2.135,425,3.376,427,2.695,428,2.843,429,2.931,430,2.918,431,2.893,432,2.695,433,2.75,442,3.923,443,2.867,444,2.795,449,4.721,461,1.68,511,3.733,627,3.038,701,3.408,731,2.867,778,4.901,885,4.855,953,4.751,1298,3.444,1299,3.403,1300,3.403,1301,3.603,1378,4.824,1379,4.395,1408,5.284,1409,6.558,1412,7.274,1919,3.028,2116,3.945,2686,3.88,4808,4.985,5453,4.901,10248,7.232,10249,7.232,10250,5.284,10251,7.414,10252,5.175,10254,7.232,10258,7.07,10259,7.07,10260,7.07,10262,5.175,10272,8.923,10273,5.405,10274,5.405,10275,5.284,10317,8.52,10319,8.703,10321,5.284,10322,5.878,10323,5.284,10324,5.878,10326,7.232,11226,5.405,14405,10.212,14419,6.097,14422,9.014,14423,6.736,14424,6.37,14425,6.37,14426,10.93,14427,7.292,14428,7.292,14429,7.292]],["title/entities/Material.html",[380,1.41,11307,4.216]],["body/entities/Material.html",[0,0.22,3,0.017,4,0.017,5,0.009,7,0.099,27,0.543,30,0.001,32,0.183,33,0.559,47,1.026,95,0.115,96,1.746,101,0.021,103,0.001,104,0.001,150,4.094,165,0.71,240,4.353,334,1.137,364,2.421,379,2.572,380,1.879,381,2.126,398,1.892,399,3.518,400,2.835,404,1.17,405,1.746,406,2.07,460,3.692,1474,3.789,1910,3.052,2789,3.41,3544,4.636,3573,4.209,6090,3.589,6427,4.417,6428,4.417,6992,4.149,11307,5.616,11310,4.149,11318,7.274,11538,7.019,11539,5.402,11540,8.275,11541,9,11542,9,11543,9,11544,9,11545,9,11546,9,11547,5.402,11548,4.681,11549,5.402,11550,5.402,11551,5.208,11552,5.402,11553,5.402,11554,5.402,11555,5.402,11556,5.402,11557,5.402,11558,5.402,11559,5.402,11560,5.402,11561,5.402,11562,5.402,11563,5.402,11564,5.402,14430,6.461,14431,6.461,14432,6.461,14433,6.461,14434,6.461,14435,6.461,14436,6.461,14437,6.461,14438,6.461,14439,6.461]],["title/classes/MaterialFactory.html",[0,0.229,14440,6.23]],["body/classes/MaterialFactory.html",[0,0.172,2,0.582,3,0.013,4,0.013,5,0.007,7,0.078,8,0.909,27,0.534,29,1.03,30,0.001,31,0.695,32,0.185,33,0.619,34,1.543,35,1.467,47,0.547,55,2.545,59,3.308,95,0.097,101,0.01,103,0,104,0,127,0.64,138,3.269,144,3.25,148,1.564,150,2.762,165,0.595,185,4.844,216,1.392,217,0.668,227,0.534,329,3.503,359,2.611,366,2.784,379,2.456,380,2.229,381,2.478,404,1.364,538,3.376,596,3.901,627,2.344,660,7.248,661,4.708,662,5.589,665,4.222,666,5.589,667,5.706,668,4.222,669,4.222,670,4.222,671,4.145,672,4.572,673,5.044,674,6.491,675,5.868,676,7.014,677,2.862,682,2.835,683,4.222,684,2.862,685,5.221,686,5.44,687,4.624,688,5.262,689,4.183,690,2.835,691,2.648,692,4.163,693,2.759,694,2.713,695,2.835,696,5.141,697,2.862,698,4.953,699,2.835,700,6.936,701,4.154,702,6.668,703,2.862,704,4.446,705,2.835,706,2.862,707,2.835,708,2.862,709,2.835,710,3.203,711,3.013,712,2.835,713,6.152,714,2.862,715,2.835,716,4.222,717,4.145,718,4.222,719,2.862,720,2.736,721,2.713,722,2.23,723,2.835,724,2.835,725,2.835,726,2.862,727,2.862,728,1.98,729,2.835,730,2.862,731,2.961,732,2.835,733,2.862,736,3.013,1236,5.423,1474,1.716,3544,3.127,11307,6.663,11318,3.294,11538,3.95,11540,3.748,11541,4.076,11542,4.076,11543,4.076,11544,4.076,14440,8.312,14441,5.057,14442,4.671,14443,5.057]],["title/injectables/MaterialsRepo.html",[105,0.889,14444,6.23]],["body/injectables/MaterialsRepo.html",[0,0.275,3,0.021,4,0.021,5,0.011,7,0.125,8,1.262,10,4.222,12,4.821,18,5.166,26,2.181,27,0.526,29,0.972,30,0.001,31,0.687,32,0.172,33,0.612,34,1.389,35,1.476,36,2.515,40,3.898,49,4.076,95,0.149,101,0.015,103,0.001,104,0.001,105,1.378,107,1.938,112,2.908,187,1.159,227,0.855,380,1.694,381,3.44,404,1.893,596,3.714,692,5.111,877,7.696,883,4.383,884,4.938,885,5.76,908,4.939,909,4.999,910,4.939,911,4.999,912,5.748,913,4.939,914,4.999,915,4.459,3639,5.537,11307,6.535,14442,7.482,14444,9.658,14445,8.1,14446,8.1]],["title/interfaces/Meta.html",[334,0.742,10747,4.999]],["body/interfaces/Meta.html",[3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,32,0.181,34,1.466,47,1.019,55,2.831,101,0.025,103,0.001,104,0.001,163,2.695,165,0.855,334,1.47,336,2.082,347,1.741,564,4.631,692,3.184,1289,5.488,1293,8.388,1327,4.929,3091,3.896,4477,5.744,6461,5.413,10742,6.334,10743,6.494,10744,6.334,10745,6.334,10746,6.494,10747,9.25,10748,9.483,10749,9.483,10750,6.334,10751,6.494,10752,6.065,10753,6.334,10754,6.494,10755,6.334]],["title/classes/MetadataTypeMapper.html",[0,0.229,14447,6.23]],["body/classes/MetadataTypeMapper.html",[0,0.313,2,1.059,3,0.024,4,0.024,5,0.013,7,0.142,8,1.368,27,0.383,29,0.732,30,0.001,31,0.517,32,0.159,33,0.461,35,1.112,95,0.158,99,1.562,101,0.018,103,0.001,104,0.001,187,1.319,208,3.418,217,1.498,227,0.972,234,1.839,305,2.65,627,3.824,3218,7.5,3331,6.357,6017,7.702,6403,10.27,6470,7.702,6489,8.256,10232,7.702,11768,8.763,11771,6.093,11772,6.002,14447,10.474,14448,11.339,14449,11.339,14450,11.339,14451,8.047,14452,8.51]],["title/classes/MigrationAlreadyActivatedException.html",[0,0.229,13258,5.437]],["body/classes/MigrationAlreadyActivatedException.html",[0,0.404,2,0.865,3,0.02,4,0.02,5,0.011,7,0.116,8,1.202,27,0.414,29,0.598,30,0.001,31,0.422,32,0.106,33,0.376,35,0.908,47,0.899,52,5.182,55,1.655,59,2.335,95,0.128,101,0.023,103,0.001,104,0.001,127,0.952,187,1.077,192,3.33,214,3.926,227,1.179,383,4.902,404,2.24,461,2.574,795,5.872,1134,5.057,1238,4.832,1327,4.411,1542,5.772,1543,6.428,1545,2.403,1547,6.323,1819,6.398,2685,5.694,4442,4.927,8137,6.428,8138,6.692,8236,10.246,13245,6.065,13246,9.339,13247,5.576,13248,9.971,13249,9.941,13251,9.941,13253,6.291,13254,6.291,13255,6.065,13256,8.33,13257,5.452,13258,8.032,14453,7.524,14454,7.524]],["title/classes/MigrationBody.html",[0,0.229,13458,5.892]],["body/classes/MigrationBody.html",[0,0.356,2,0.933,3,0.022,4,0.022,5,0.011,7,0.125,27,0.482,30,0.001,32,0.163,33,0.649,52,6.019,95,0.134,101,0.015,103,0.001,104,0.001,165,0.827,192,3.868,347,2.644,364,2.147,368,5.125,369,2.861,370,4.328,371,3.576,373,6.462,374,2.592,376,1.903,379,2.67,467,3.29,471,5.209,728,5.081,2578,6.82,5380,9.689,7793,6.631,9465,7.976,11285,7.759,13458,9.145,13521,8.805,13522,8.805,13523,8.805,14455,8.116,14456,8.116,14457,8.116,14458,8.116]],["title/injectables/MigrationCheckService.html",[105,0.889,14459,5.639]],["body/injectables/MigrationCheckService.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.196,26,2.473,27,0.412,29,0.787,30,0.001,31,0.557,32,0.139,33,0.496,35,0.901,36,2.154,47,0.922,48,5.566,95,0.158,99,1.267,101,0.014,103,0.001,104,0.001,105,1.306,107,1.787,111,2.225,112,2.496,127,1.255,129,7.318,132,7.147,167,4.248,187,1.069,189,5.558,191,4.148,192,3.318,216,2.057,217,1.566,221,2.623,227,1.174,347,1.521,355,4.376,371,2.058,450,3.072,461,1.721,4442,4.909,4455,6.367,4457,6.707,4467,7.348,4561,3.974,6938,5.611,8291,5.02,8300,6.957,12145,7.734,13642,6.244,14219,6.02,14459,8.289,14460,11.129,14461,7.468,14462,9.158,14463,10.11,14464,7.468,14465,9.914,14466,7.468,14467,6.524,14468,7.992,14469,6.899,14470,6.899,14471,7.468,14472,9.914,14473,6.899]],["title/classes/MigrationDto.html",[0,0.229,13474,4.786]],["body/classes/MigrationDto.html",[0,0.335,2,1.132,3,0.026,4,0.026,5,0.014,7,0.151,27,0.49,29,0.782,30,0.001,31,0.553,32,0.166,33,0.492,47,0.858,101,0.019,103,0.001,104,0.001,127,1.246,165,0.933,355,4.972,2211,8.238,2227,8.229,4442,5.577,13474,9.514,14474,9.843,14475,11.804,14476,11.804,14477,9.092,14478,9.843]],["title/injectables/MigrationMapper.html",[105,0.889,13438,5.639]],["body/injectables/MigrationMapper.html",[0,0.313,3,0.024,4,0.024,5,0.013,7,0.142,8,1.368,27,0.383,29,0.732,30,0.001,31,0.517,32,0.129,33,0.461,35,1.112,95,0.158,100,3.083,101,0.018,103,0.001,104,0.001,105,1.494,107,2.204,116,3.975,187,1.319,217,1.217,227,0.972,234,1.494,982,4.615,1016,4.048,9465,7.387,13438,9.48,13466,10.333,13467,7.702,13468,8.047,13469,10.61,13521,6.999,13522,6.999,13523,6.999,13639,7.702,13641,7.702,14479,9.212,14480,9.905,14481,9.905,14482,9.212,14483,9.212,14484,9.212,14485,9.212,14486,9.212,14487,9.212]],["title/classes/MigrationMayBeCompleted.html",[0,0.229,14488,6.23]],["body/classes/MigrationMayBeCompleted.html",[0,0.307,2,1.038,3,0.024,4,0.024,5,0.013,7,0.139,8,1.351,27,0.465,29,0.717,30,0.001,31,0.507,32,0.127,33,0.452,35,1.089,52,4.187,59,2.801,95,0.116,101,0.017,103,0.001,104,0.001,127,1.142,163,2.846,192,2.691,214,3.697,215,2.921,216,1.668,227,0.953,347,2.48,795,5.32,1327,3.565,1542,5.68,1543,6.326,1545,2.883,1547,6.332,3247,5.44,4442,5.369,8137,6.326,8138,6.586,11693,8.82,11726,6.858,14488,10.343,14489,11.245,14490,8.338,14491,8.338,14492,8.338,14493,8.338,14494,8.338,14495,7.276]],["title/classes/MigrationMayNotBeCompleted.html",[0,0.229,14496,6.23]],["body/classes/MigrationMayNotBeCompleted.html",[0,0.308,2,1.04,3,0.024,4,0.024,5,0.013,7,0.139,8,1.353,27,0.466,29,0.718,30,0.001,31,0.508,32,0.127,33,0.453,35,1.092,52,4.196,59,2.807,95,0.116,101,0.017,103,0.001,104,0.001,127,1.145,163,2.852,192,2.697,214,3.702,215,2.927,216,1.672,227,0.955,347,2.482,1327,3.573,1542,5.686,1543,6.332,1545,2.889,1547,6.337,4442,5.374,8137,6.332,8138,6.592,11693,8.829,11726,6.874,14489,11.256,14490,8.357,14491,8.357,14492,8.357,14493,8.357,14494,8.357,14495,7.292,14496,10.358,14497,7.292]],["title/classes/MigrationResponse.html",[0,0.229,13469,5.437]],["body/classes/MigrationResponse.html",[0,0.248,2,0.839,3,0.019,4,0.019,5,0.01,7,0.112,27,0.523,29,0.579,30,0.001,31,0.409,32,0.193,33,0.662,52,6.205,83,4.254,95,0.094,101,0.014,103,0.001,104,0.001,127,0.923,165,0.771,185,2.855,347,1.988,364,2.268,375,4.966,376,1.71,379,2.821,467,2.622,1013,3.343,1480,6.583,2578,6.357,6146,6.357,7793,7.438,9465,8.381,10533,7.623,11285,7.232,13469,9.868,13485,8.524,13521,8.356,13522,8.356,13523,8.356,13639,9.194,13641,9.194,14498,7.292,14499,9.758,14500,9.014,14501,8.524,14502,7.292,14503,7.292,14504,7.292,14505,7.292,14506,6.736,14507,6.736,14508,6.736,14509,6.736,14510,6.736,14511,6.736,14512,6.736,14513,6.736,14514,6.736,14515,6.736]],["title/classes/MissingSchoolNumberException.html",[0,0.229,13255,5.437]],["body/classes/MissingSchoolNumberException.html",[0,0.404,2,0.865,3,0.02,4,0.02,5,0.011,7,0.116,8,1.202,27,0.414,29,0.598,30,0.001,31,0.422,32,0.106,33,0.376,35,0.908,47,0.899,52,5.182,55,1.655,59,2.335,95,0.128,101,0.023,103,0.001,104,0.001,127,0.952,187,1.077,192,3.33,214,3.926,227,1.179,383,4.902,404,2.24,461,2.574,795,5.872,1134,5.057,1238,4.832,1327,4.411,1542,5.772,1543,6.428,1545,2.403,1547,6.323,1819,6.398,2685,5.694,4442,4.927,8137,6.428,8138,6.692,8236,10.246,13245,6.065,13246,9.339,13247,5.576,13248,9.971,13249,9.941,13251,9.941,13253,6.291,13254,6.291,13255,8.032,13256,8.33,13257,5.452,13258,6.065,14516,7.524,14517,7.524]],["title/classes/MissingToolParameterValueLoggableException.html",[0,0.229,202,5.892]],["body/classes/MissingToolParameterValueLoggableException.html",[0,0.218,2,0.738,3,0.017,4,0.017,5,0.009,7,0.099,8,1.079,27,0.527,29,0.884,30,0.001,31,0.36,32,0.185,33,0.515,35,1.079,47,0.904,55,1.412,95,0.15,101,0.012,103,0.001,104,0.001,108,5.942,111,1.788,127,1.132,136,6.96,140,6.861,144,1.754,163,2.024,165,0.707,187,0.919,194,4.183,199,2.451,200,2.914,201,3.362,202,7.814,204,3.819,209,4.03,210,4.123,214,2.953,216,2.459,217,0.848,227,0.678,286,9.509,290,6.757,298,6.987,364,2.169,404,1.62,406,2.057,558,3.051,564,2.382,596,3.681,1013,5.105,1016,2.292,1238,4.123,1253,4.747,1291,2.731,1327,4.397,1472,7.954,1473,5.883,1474,3.779,1475,6.611,1479,4.183,1480,3.599,1481,4.183,1482,4.183,1483,4.183,1484,4.183,1485,4.183,1486,3.915,1487,3.669,1493,4.066,1542,4.804,1543,5.349,1545,2.05,1547,5.539,2621,3.032,3678,5.175,3888,5.015,5707,4.758,8137,5.349,8138,5.569,8530,4.123,8537,3.784,8538,3.963,8692,5.608,10369,5.931,14518,10.294,14519,10.294,14520,6.42,14521,6.42,14522,6.42,14523,6.42,14524,5.367,14525,6.42,14526,8.945,14527,6.42,14528,6.42,14529,6.42]],["title/modules/MongoMemoryDatabaseModule.html",[425,1.808,10317,4.694]],["body/modules/MongoMemoryDatabaseModule.html",[0,0.253,3,0.02,4,0.02,5,0.011,8,0.898,27,0.411,29,0.591,30,0.001,31,0.418,32,0.139,33,0.372,35,1.193,36,2.149,59,2.309,95,0.163,96,2.672,99,1.262,101,0.014,103,0.001,104,0.001,111,1.488,112,2.218,187,1.065,208,2.761,214,2.457,217,1.628,221,1.753,227,1.172,369,1.64,381,2.448,398,2.179,425,2.977,427,2.75,433,2.806,449,2.991,627,3.079,701,4.304,731,2.926,778,5.001,837,5.515,839,3.493,845,5.28,846,5.28,953,4.848,1298,3.514,1299,3.472,1300,3.472,1301,3.677,1378,4.922,1379,4.484,1408,5.391,1409,6.647,1412,7.83,4808,6.761,6706,4.651,6758,4.848,7662,7.515,10250,8.577,10252,5.28,10254,7.33,10317,7.732,10319,8.774,10323,9.18,14530,11.109,14531,11.109,14532,7.441,14533,7.441,14534,10.766,14535,7.441,14536,9.89,14537,7.441,14538,7.441,14539,7.441,14540,9.89,14541,7.441,14542,5.998,14543,7.441,14544,6.873,14545,7.441,14546,7.441,14547,9.89,14548,7.441]],["title/classes/MongoPatterns.html",[0,0.229,12539,5.639]],["body/classes/MongoPatterns.html",[0,0.318,2,1.074,3,0.025,4,0.025,5,0.013,7,0.144,27,0.388,30,0.001,72,5.368,101,0.018,103,0.001,104,0.001,144,2.552,165,0.903,329,2.751,571,7.148,574,5.184,627,3.847,777,8.689,1991,6.187,4220,7.959,5369,8.271,7652,6.973,8096,9.218,9979,9.989,10768,8.689,12539,9.561,14549,9.34,14550,12.36,14551,11.435,14552,11.435,14553,9.34,14554,11.435,14555,9.561,14556,11.435,14557,11.435,14558,10.564]],["title/classes/MoveCardBodyParams.html",[0,0.229,4028,5.892]],["body/classes/MoveCardBodyParams.html",[0,0.386,2,1.062,3,0.024,4,0.024,5,0.013,7,0.142,27,0.472,30,0.001,32,0.159,47,0.826,55,2.497,95,0.146,101,0.018,103,0.001,104,0.001,165,0.897,364,2.104,368,4.484,369,2.828,370,4.279,371,3.535,374,2.949,376,2.165,467,3.305,1000,4.855,3436,8.057,3437,6.552,3442,6.69,3822,9.343,4028,9.919,6849,8.529,14559,11.359,14560,12.297,14561,8.529,14562,9.233,14563,8.066,14564,9.233]],["title/classes/MoveColumnBodyParams.html",[0,0.229,4865,5.892]],["body/classes/MoveColumnBodyParams.html",[0,0.382,2,1.043,3,0.024,4,0.024,5,0.013,7,0.139,27,0.467,30,0.001,32,0.158,34,1.926,47,0.816,55,2.469,95,0.144,101,0.017,103,0.001,104,0.001,165,0.887,364,2.08,368,4.817,369,2.81,370,4.252,371,3.513,374,2.896,376,2.126,379,2.089,467,3.278,1000,4.801,1984,4.801,2744,5.006,3436,7.968,3437,6.434,3442,6.569,3822,9.268,3834,5.287,4865,9.808,14559,11.267,14563,7.92,14565,9.067,14566,12.197,14567,9.067,14568,9.067]],["title/classes/MoveContentElementBody.html",[0,0.229,8057,5.892]],["body/classes/MoveContentElementBody.html",[0,0.384,2,1.055,3,0.024,4,0.024,5,0.013,7,0.141,27,0.47,30,0.001,32,0.159,47,0.822,55,2.486,95,0.145,101,0.017,103,0.001,104,0.001,165,0.893,364,2.095,368,4.465,369,2.821,370,4.269,371,3.527,374,2.929,376,2.15,467,3.294,1000,4.835,2344,5.066,3436,8.024,3437,6.507,3442,6.644,3822,9.315,6854,7.667,8057,9.877,14561,8.471,14563,8.01,14569,12.259,14570,12.259,14571,9.17,14572,9.17]],["title/classes/MoveElementParams.html",[0,0.229,7224,5.639]],["body/classes/MoveElementParams.html",[0,0.412,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,27,0.462,30,0.001,32,0.156,55,2.663,72,4.19,95,0.143,100,2.988,101,0.021,103,0.001,104,0.001,165,0.879,364,2.06,374,2.851,375,4.511,376,2.093,379,2.057,467,3.505,471,4.731,1277,4.603,1382,5.509,2423,5.443,2594,3.937,2809,5.869,3436,8.996,3437,6.334,3442,8.775,3872,6.102,5437,7.463,5740,6.991,6854,7.463,7219,5.579,7224,9.296,7228,6.213,7345,7.195,9535,9.296,14573,11.188,14574,11.394,14575,8.926,14576,8.926]],["title/classes/MoveElementPositionParams.html",[0,0.229,14574,5.892]],["body/classes/MoveElementPositionParams.html",[0,0.401,2,0.967,3,0.022,4,0.022,5,0.012,7,0.129,27,0.489,30,0.001,32,0.165,33,0.536,55,2.88,72,5.026,95,0.137,100,3.583,101,0.02,103,0.001,104,0.001,165,0.846,364,2.183,374,2.684,375,4.343,376,1.971,379,2.467,467,3.443,471,4.555,1277,5.521,1382,7.271,2423,6.528,2594,4.722,2809,6.547,3433,9.889,3436,8.802,3437,5.964,3442,8.536,3872,7.318,5437,8.95,5740,6.8,6854,7.026,7219,6.692,7224,7.026,7228,8.2,7345,9.497,14573,11.458,14574,10.835,14577,8.404,14578,8.404,14579,8.404,14580,8.404]],["title/entities/News.html",[380,1.41,6731,3.817]],["body/entities/News.html",[0,0.312,3,0.011,4,0.026,5,0.006,7,0.161,9,3.184,26,1.914,27,0.509,30,0.001,31,0.515,32,0.178,33,0.566,34,1.142,47,0.913,83,2.451,95,0.145,96,2.202,101,0.019,103,0,104,0,144,1.175,165,0.784,188,2.521,192,3.263,208,1.596,227,0.454,234,1.321,240,3.637,329,1.267,334,0.473,364,2.198,369,2.615,370,3.651,380,2.075,381,1.415,386,4.656,396,3.359,398,1.259,399,2.607,400,1.887,404,1.661,405,2.479,406,1.378,461,2.522,571,5.093,574,3.693,595,1.486,617,4.703,627,1.339,672,4.14,731,3.204,769,4.855,843,2.906,844,4.962,854,4.628,1031,2.611,1298,3.848,1299,4.281,1300,3.802,1301,4.026,1302,4.408,1474,3.562,1492,4.013,1910,4.333,1916,3.947,1932,4.171,1991,2.326,2344,4.337,2572,4.276,2620,4.751,2674,4.812,2688,2.508,2744,5.538,2789,2.27,3394,4.552,3396,4.276,3397,4.404,3399,3.052,3400,2.993,3401,3.187,3415,2.761,3547,2.89,3573,2.802,4227,2.292,4319,3.267,4320,3.116,4926,3.757,4996,3.187,5011,4.725,5554,7.19,6110,3.698,6329,2.993,6407,2.654,6409,2.411,6430,2.592,6627,2.89,6633,2.654,6717,3.187,6718,3.466,6720,4.11,6721,3.466,6722,6.799,6723,5.891,6724,3.466,6725,8.199,6726,6.068,6727,5.324,6728,6.039,6729,6.799,6730,6.595,6731,7.44,6732,5.367,6733,6.51,6734,5.367,6735,5.059,6736,5.059,6737,5.891,6738,5.367,6739,3.466,6740,3.267,6741,3.466,6742,3.187,6743,3.466,6744,2.562,6745,2.654,6746,3.267,6747,3.466,6748,3.466,6749,6.365,6750,3.466,6751,6.568,6752,3.466,6753,3.466,6754,5.059,6755,3.267,6756,5.671,6757,3.359,6758,4.338,6759,3.267,6760,3.116,6761,3.267,6762,3.466,14581,4.3,14582,4.3,14583,4.3,14584,4.3,14585,4.3,14586,4.3,14587,4.3,14588,4.3,14589,4.3,14590,4.3,14591,4.3,14592,4.3]],["title/controllers/NewsController.html",[481,2.629,14593,5.892]],["body/controllers/NewsController.html",[0,0.173,3,0.014,4,0.014,5,0.007,7,0.078,8,0.914,10,4.318,27,0.444,29,0.849,30,0.001,31,0.6,32,0.15,33,0.535,34,1.299,35,1.29,36,2.693,95,0.153,100,3.884,101,0.01,103,0,104,0,112,2.935,137,5.487,165,0.598,185,4.387,187,0.729,192,2.983,215,1.649,216,0.942,217,1.637,221,2.52,227,1.128,234,0.826,264,3.206,277,4.279,364,1.981,376,1.195,380,1.583,447,2.136,461,2.747,469,2.247,481,1.986,483,2.452,491,6.47,494,4.564,513,6.828,529,3.986,543,4.528,552,3.272,555,2.689,556,2.756,557,2.78,559,2.78,561,2.78,843,3.305,883,4.195,1016,2.704,1028,7.1,1295,4.371,1871,6.176,2934,7.301,2951,6.372,2955,5.115,3396,4.863,3710,6.444,4499,4.618,4960,4.797,5367,6.105,5784,4.416,6487,6.101,6731,7.549,6771,6.996,6898,8.066,10354,8.066,12319,4.26,13656,4.26,13662,4.26,14593,6.615,14594,5.095,14595,7.06,14596,5.095,14597,5.095,14598,10.828,14599,7.573,14600,5.095,14601,4.707,14602,5.095,14603,6.996,14604,5.095,14605,7.573,14606,5.095,14607,7.573,14608,5.095,14609,8.366,14610,7.573,14611,5.095,14612,4.107,14613,4.451,14614,7.286,14615,4.707,14616,4.107,14617,4.107,14618,4.707,14619,5.095,14620,4.707,14621,4.707,14622,4.26,14623,4.707,14624,8.741,14625,4.451,14626,4.707,14627,4.707,14628,4.707,14629,4.707,14630,5.095,14631,5.095,14632,5.095,14633,5.095,14634,5.095,14635,7.573,14636,5.095]],["title/classes/NewsCrudOperationLoggable.html",[0,0.229,14637,5.892]],["body/classes/NewsCrudOperationLoggable.html",[0,0.291,2,0.983,3,0.023,4,0.023,5,0.012,7,0.131,8,1.306,26,2.603,27,0.45,29,0.679,30,0.001,31,0.48,32,0.12,33,0.428,35,1.031,39,3.345,95,0.16,99,1.45,101,0.016,103,0.001,104,0.001,111,2.374,127,1.369,163,2.695,214,3.573,216,2.195,227,0.902,415,4.664,1327,3.375,1542,5.54,1543,6.17,1545,2.73,1547,6.209,2490,10.061,6731,7.721,10381,9.483,14612,6.89,14613,7.466,14637,9.452,14638,11.873,14639,8.547,14640,8.547,14641,11.529,14642,8.547,14643,8.547,14644,7.895,14645,7.895,14646,8.547,14647,8.547]],["title/classes/NewsListResponse.html",[0,0.229,14616,5.437]],["body/classes/NewsListResponse.html",[0,0.263,2,0.603,3,0.014,4,0.03,5,0.007,7,0.081,27,0.45,29,0.416,30,0.001,31,0.516,32,0.18,33,0.541,34,1.942,47,0.874,55,2.892,56,5.449,59,2.4,70,5.672,83,2.764,95,0.145,99,0.889,101,0.015,103,0,104,0,127,0.979,145,1.352,163,3.411,165,0.611,188,1.984,192,3.375,217,1.214,359,1.817,364,1.88,375,4.115,376,1.229,379,3.051,380,2.646,404,1.4,461,2.337,467,3.508,469,2.312,475,3.874,524,3.089,538,2.349,591,3.929,592,4.053,596,3.08,618,2.23,620,3.366,622,3.366,769,3.123,1007,7.228,1008,6.178,1009,4.419,1011,2.789,1013,4.213,1014,2.572,1015,2.911,1016,1.871,1017,3.719,1018,5.038,1019,4.51,1020,3.467,1021,2.789,1022,3.719,1023,3.719,1025,3.32,1026,2.911,1031,2.478,1295,3.025,1474,3.443,1773,3.366,1848,3.523,1916,4.914,1932,3.959,2344,4.192,2450,3.32,2744,5.221,2789,2.766,2910,4.22,2911,4.22,2915,2.766,2951,3.123,3415,3.366,3469,3.884,4320,3.797,4499,3.196,4586,3.648,5554,6.658,6429,3.276,6723,4.966,6726,6.078,6727,4.93,6728,3.884,6729,6.811,6730,5.359,6731,7.163,6740,3.982,6746,3.982,6756,3.648,6902,6.396,6906,4.225,6907,4.382,6908,3.982,6911,5.038,6914,3.797,9620,3.884,11982,4.225,14616,6.234,14617,9.689,14648,4.842,14649,5.241,14650,5.241,14651,6.234,14652,8.027,14653,6.234,14654,7.408,14655,7.144,14656,7.144,14657,4.578,14658,7.144,14659,4.842,14660,4.842,14661,4.094,14662,4.842,14663,4.578,14664,6.755]],["title/classes/NewsMapper.html",[0,0.229,14612,5.437]],["body/classes/NewsMapper.html",[0,0.207,2,0.7,3,0.016,4,0.023,5,0.009,7,0.094,8,1.04,27,0.477,29,0.912,30,0.001,31,0.644,32,0.161,33,0.574,34,1.478,35,1.385,95,0.153,99,1.033,100,4.19,101,0.012,103,0.001,104,0.001,163,2.717,185,3.374,192,2.982,217,1.653,227,1.212,234,0.988,461,1.403,529,3.801,591,2.604,592,2.686,627,4.192,975,4.925,982,3.051,1474,3.395,1544,8.739,1545,1.945,1916,2.95,2344,4.134,2744,4.85,6723,6.424,6726,6.617,6727,4.624,6729,4.513,6730,6.344,6731,7.305,6898,8.769,6902,7.572,7250,7.962,10354,8.769,10356,4.909,11372,8.064,11379,8.364,11380,8.769,14609,9.095,14612,6.948,14617,8.769,14665,6.09,14666,8.619,14667,8.619,14668,8.619,14669,8.619,14670,8.619,14671,6.09,14672,8.619,14673,6.09,14674,8.619,14675,6.09,14676,8.619,14677,6.09,14678,8.619,14679,6.09,14680,5.32,14681,10.004,14682,5.32,14683,5.32,14684,6.09,14685,6.09,14686,6.09,14687,8.619,14688,6.09,14689,6.09,14690,5.625,14691,6.09,14692,6.09,14693,7.962,14694,7.962,14695,6.09,14696,6.09,14697,5.625,14698,6.09,14699,6.09,14700,6.09,14701,8.619,14702,6.09,14703,6.09,14704,6.09,14705,6.09,14706,8.619,14707,8.619,14708,6.09,14709,6.09,14710,6.09]],["title/modules/NewsModule.html",[425,1.808,14711,5.437]],["body/modules/NewsModule.html",[0,0.286,3,0.022,4,0.022,5,0.012,30,0.001,95,0.171,101,0.016,103,0.001,104,0.001,187,1.205,425,3.16,427,3.113,428,3.283,429,3.385,430,3.37,431,3.341,432,4.358,433,4.446,438,6.189,442,4.309,443,3.311,444,3.228,447,4.494,449,4.309,450,3.464,1545,2.69,1945,7.089,2767,3.796,14593,10.301,14614,11.185,14615,7.78,14711,11.235,14712,8.422,14713,8.422,14714,8.422,14715,8.422,14716,10.563,14717,8.422,14718,10.301,14719,8.422,14720,8.422,14721,8.422]],["title/injectables/NewsRepo.html",[105,0.889,14716,5.437]],["body/injectables/NewsRepo.html",[0,0.158,3,0.012,4,0.012,5,0.007,7,0.072,8,0.853,10,2.854,12,3.259,18,3.492,26,2.477,27,0.503,29,0.921,30,0.001,31,0.651,32,0.167,33,0.58,34,1.467,35,1.399,36,2.675,40,2.237,49,2.755,59,2.654,95,0.139,96,1.256,98,2.77,99,0.788,101,0.009,103,0,104,0,105,0.931,107,1.112,111,1.71,112,2.95,144,1.27,165,0.558,187,0.665,192,3.227,208,1.725,217,1.626,221,2.799,227,1.085,234,1.146,264,4.351,277,3.422,329,1.369,379,1.071,380,0.972,381,2.326,398,1.361,404,1.28,529,3.117,538,3.833,596,2.901,692,4.587,701,4.457,795,5.631,806,3.603,877,6.562,883,2.963,884,3.338,885,4.254,908,2.834,909,2.869,910,2.834,911,2.869,912,3.298,913,2.834,914,2.869,915,2.559,919,3.532,964,3.177,1041,5.307,2185,4,2432,5.693,2744,5.295,3396,6.136,3399,6.78,3850,5.697,4169,3.074,4628,3.074,4630,4.965,5346,2.944,5554,5.121,5784,4.122,6046,4.831,6110,6.012,6487,4.31,6717,6.338,6727,3.792,6731,7.346,6755,6.498,6761,6.498,6775,7.476,6785,5.238,7668,2.801,7907,4.919,9371,8.593,9842,6.529,9856,6.529,10358,3.631,12468,8.347,14716,5.697,14722,4.648,14723,8.552,14724,7.068,14725,8.552,14726,7.068,14727,7.068,14728,9.07,14729,4.648,14730,4.648,14731,4.648,14732,7.068,14733,4.648,14734,9.555,14735,4.648,14736,4.648,14737,4.648,14738,7.47,14739,7.068,14740,4.648,14741,9.555,14742,7.068,14743,4.648,14744,4.648,14745,7.068,14746,4.648,14747,4.648,14748,7.068,14749,7.068,14750,4.648,14751,4.648,14752,4.648,14753,8.552,14754,4.648,14755,4.648,14756,4.648]],["title/classes/NewsResponse.html",[0,0.229,14617,5.437]],["body/classes/NewsResponse.html",[0,0.23,2,0.505,3,0.012,4,0.032,5,0.006,7,0.068,27,0.534,29,0.349,30,0.001,31,0.563,32,0.186,33,0.552,34,2.083,47,0.934,55,1.816,56,3.258,70,3.392,83,3.185,95,0.136,99,0.745,101,0.013,103,0,104,0,127,0.857,163,2.135,165,0.535,188,2.563,192,3.557,217,1.091,359,2.347,364,2.361,375,3.764,376,1.03,379,3.039,380,2.784,404,0.796,461,2.542,467,3.391,469,1.938,475,4.138,524,3.99,538,3.035,591,4.285,592,4.42,618,1.869,620,2.822,622,2.822,769,2.618,966,2.249,1007,4.179,1008,2.398,1009,2.511,1013,5.471,1025,2.783,1026,2.441,1031,2.646,1295,3.908,1474,3.744,1480,3.796,1773,2.822,1848,4.55,1916,5.343,1932,4.75,2344,4.559,2450,4.288,2744,5.494,2789,2.319,2909,2.953,2910,5.063,2911,5.063,2914,2.822,2915,3.574,2951,4.034,3415,2.822,3469,5.018,4320,3.184,4499,4.128,4586,4.712,5554,7.261,6052,4.059,6429,2.747,6723,5.304,6726,6.629,6727,5.377,6728,3.257,6729,7.428,6730,5.845,6731,7.537,6740,3.339,6746,3.339,6756,3.059,6902,6.976,6906,5.458,6907,5.66,6908,5.144,6911,6.045,6914,4.905,9620,3.257,11982,3.542,14616,3.542,14617,9.181,14648,4.059,14651,6.658,14652,7.215,14653,6.658,14654,8.079,14655,7.629,14656,7.629,14657,3.839,14658,7.629,14659,4.059,14660,4.059,14661,3.433,14662,4.059,14663,5.914,14664,8.106,14757,4.394,14758,4.394,14759,4.394,14760,4.394,14761,4.394,14762,4.394,14763,4.394,14764,4.394,14765,4.394,14766,4.394,14767,4.394,14768,4.394,14769,4.394,14770,4.394,14771,4.394,14772,4.394]],["title/classes/NewsScope.html",[0,0.229,14738,5.892]],["body/classes/NewsScope.html",[0,0.214,2,0.724,3,0.017,4,0.017,5,0.009,7,0.097,8,1.065,26,2.303,27,0.533,29,0.877,30,0.001,31,0.62,32,0.174,33,0.552,35,1.454,83,2.655,95,0.149,96,1.702,99,1.068,101,0.012,103,0.001,104,0.001,111,2.409,144,1.721,145,1.625,148,1.949,165,0.697,217,1.346,227,1.227,234,1.432,247,2.499,277,5.203,329,1.855,347,2.076,398,1.844,404,1.599,529,4.87,596,3.53,905,2.616,1828,2.808,1924,4.786,2432,6.928,2744,2.808,3599,5.819,3601,5.078,5872,6.034,5873,6.034,5874,6.034,5879,6.034,5880,6.034,5881,4.385,5882,4.306,5883,4.385,5884,4.385,5893,4.306,5894,6.034,5895,4.385,5896,4.306,5897,4.385,5898,4.306,5899,7.549,6110,5.66,6726,5.839,6727,3.379,6730,3.674,6731,4.996,6793,7.686,7668,3.796,9371,5.267,9376,5.819,9387,4.669,9888,5.078,9897,5.503,9904,5.503,12564,7.116,12567,8.154,14728,8.901,14738,11.356,14773,10.74,14774,8.827,14775,11.042,14776,8.827,14777,11.042,14778,8.827,14779,6.299,14780,8.827,14781,6.299,14782,5.819,14783,6.299,14784,6.299,14785,6.299,14786,6.299,14787,6.299,14788,6.299,14789,6.299]],["title/interfaces/NewsTargetFilter.html",[334,0.742,14728,5.437]],["body/interfaces/NewsTargetFilter.html",[3,0.027,4,0.027,5,0.014,7,0.154,26,2.753,30,0.001,32,0.168,95,0.129,99,1.703,101,0.019,103,0.001,104,0.001,165,0.944,334,1.105,336,2.445,2744,4.476,6723,8.475,6730,7.696,9375,11.528,14728,9.629,14773,9.274,14790,10.039]],["title/injectables/NewsUc.html",[105,0.889,14614,5.437]],["body/injectables/NewsUc.html",[0,0.112,3,0.009,4,0.009,5,0.005,7,0.051,8,0.649,10,2.171,25,4.697,26,2.811,27,0.454,29,0.868,30,0.001,31,0.614,32,0.157,33,0.547,34,1.689,35,1.424,36,2.565,39,3.499,47,0.496,59,1.669,83,2.371,95,0.126,98,1.959,99,0.558,101,0.006,103,0,104,0,105,0.709,107,0.787,111,2.392,112,2.887,116,3.872,127,0.68,144,1.864,145,1.76,167,2.604,185,4.161,187,0.471,192,0.98,217,1.631,221,2.999,227,1.154,234,0.872,247,1.304,264,4.998,277,4.11,284,3.241,329,2.559,347,1.39,379,0.758,450,1.353,461,1.239,575,4.065,595,1.858,627,2.124,701,3.438,728,2.671,731,1.293,843,2.977,883,2.254,1052,4.012,1062,1.435,1295,1.898,1298,1.553,1299,1.534,1300,1.534,1545,1.05,1866,3.043,1916,5.632,1952,3.66,1953,6.588,2076,1.736,2490,2.651,2572,3.453,2744,3.874,2767,1.482,2778,5.134,2951,3.204,3091,2.451,3262,2.056,4227,2.991,4480,3.896,6487,2.005,6723,5.06,6726,6.793,6727,1.764,6730,6.376,6731,7.501,6775,4.864,6844,2.142,6845,2.651,6902,6.852,6914,2.383,8599,5.329,9345,4.967,9352,4.967,9371,8.23,9375,4.697,10356,7.004,11372,6.352,11379,6.588,11380,7.935,12016,2.569,12314,4.697,12932,2.873,12933,2.873,14614,4.335,14625,4.697,14637,2.873,14641,3.038,14644,3.038,14657,2.873,14690,3.038,14693,7.28,14694,7.28,14697,4.967,14716,7.519,14728,4.335,14791,3.288,14792,6.822,14793,5.377,14794,5.377,14795,5.377,14796,6.822,14797,3.288,14798,3.288,14799,4.967,14800,3.288,14801,3.288,14802,3.288,14803,3.288,14804,5.377,14805,5.959,14806,5.959,14807,5.377,14808,3.288,14809,5.377,14810,3.288,14811,9.327,14812,3.288,14813,5.377,14814,3.288,14815,4.967,14816,3.288,14817,5.499,14818,3.288,14819,5.377,14820,3.288,14821,3.288,14822,3.288,14823,5.377,14824,6.822,14825,3.288,14826,3.288,14827,7.88,14828,3.288,14829,5.377,14830,3.288,14831,5.377,14832,3.288,14833,3.288,14834,3.288,14835,3.288,14836,5.377,14837,3.288,14838,3.288,14839,3.288,14840,5.377,14841,6.822,14842,3.288,14843,3.288,14844,3.288,14845,3.288,14846,3.288,14847,3.288,14848,3.288,14849,3.288,14850,3.288,14851,3.288,14852,5.377,14853,3.288,14854,3.288,14855,3.288,14856,5.377,14857,3.288,14858,3.288,14859,3.288,14860,3.288,14861,3.288]],["title/classes/NewsUrlParams.html",[0,0.229,14598,5.892]],["body/classes/NewsUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,3834,5.671,6731,6.632,14598,10.237,14862,9.724,14863,12.578,14864,9.724]],["title/injectables/NexboardService.html",[105,0.889,13683,5.639]],["body/injectables/NexboardService.html",[0,0.267,3,0.021,4,0.021,5,0.011,7,0.121,8,1.236,26,2.521,27,0.426,29,0.813,30,0.001,31,0.575,32,0.16,33,0.512,34,1.346,35,0.947,36,2.225,39,3.056,47,0.966,94,3.729,95,0.155,101,0.02,103,0.001,104,0.001,105,1.35,107,1.877,111,1.569,112,2.557,127,0.993,150,2.878,163,2.474,187,1.123,204,3.513,215,2.539,216,1.451,217,1.506,221,1.849,227,1.081,234,1.273,371,2.162,379,2.785,766,3.372,784,4.142,883,3.29,1052,4.647,1053,5.36,1158,4.175,1474,4.102,1545,2.506,1984,3.355,2586,4.142,8250,6.855,8251,9.317,8255,7.249,8256,6.855,8262,7.249,8264,7.249,11313,7.129,13683,8.563,14865,7.847,14866,11.402,14867,7.847,14868,7.847,14869,7.847,14870,10.242,14871,7.847,14872,7.847,14873,7.847,14874,7.847]],["title/interfaces/NextcloudGroups.html",[334,0.742,10744,4.999]],["body/interfaces/NextcloudGroups.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.128,34,1.559,47,0.994,55,2.685,101,0.026,103,0.001,104,0.001,163,2.865,165,0.888,334,1.49,336,2.213,347,1.851,564,3.372,692,3.385,1289,5.835,1293,6.108,1327,3.589,3091,4.142,4477,6.108,6461,8.08,10742,6.735,10743,6.905,10744,8.333,10745,6.735,10746,6.905,10747,9.049,10748,6.905,10749,6.905,10750,6.735,10751,6.905,10752,6.448,10753,6.735,10754,6.905,10755,6.735]],["title/injectables/NextcloudStrategy.html",[105,0.889,4554,5.892]],["body/injectables/NextcloudStrategy.html",[0,0.103,3,0.008,4,0.008,5,0.004,7,0.047,8,0.608,27,0.442,29,0.79,30,0.001,31,0.638,32,0.14,33,0.498,34,1.771,35,1.246,36,2.581,39,1.35,47,0.933,55,1.831,62,2.938,72,1.426,95,0.146,99,0.515,100,2.513,101,0.006,103,0,104,0,105,0.664,107,0.727,111,2.231,112,2.793,127,0.637,158,3.233,165,0.398,167,1.16,187,0.435,192,1.502,200,0.99,201,1.591,209,2.585,214,1.663,216,1.659,217,1.619,221,2.976,227,1.003,234,0.493,247,1.205,264,4.37,284,3.036,305,0.874,379,2.068,461,1.918,493,3.828,496,1.28,500,3.444,520,3.386,524,1.79,627,2.795,661,4.701,686,2.749,728,1.189,768,5.329,784,1.603,905,1.261,956,1.979,1052,2.053,1053,3.33,1158,2.68,1238,1.951,1240,1.753,1277,5.865,1359,3.828,1515,1.951,1545,0.97,1666,2.114,1725,3.65,1916,1.471,1919,1.261,1993,2.077,2008,1.951,2296,3.575,2321,5.938,2400,1.736,2423,3.072,2450,3.191,2477,1.875,2510,3.191,2579,3.575,2657,3.575,2835,1.81,2951,1.81,2993,2.009,3091,3.423,3372,2.077,3469,4.783,3543,3.167,3544,2.68,3547,2.042,3928,6.802,3934,4.653,4477,7.338,4482,4.212,4485,3.444,4487,4.061,4488,4.061,4490,4.061,4491,4.061,4493,5.202,4496,4.061,4497,7.325,4499,7.789,4500,4.061,4504,4.061,4510,2.251,4512,2.373,4532,8.321,4534,2.449,4535,2.654,4536,8.306,4537,7.273,4552,6.889,4553,6.937,4554,4.4,4559,2.806,4560,2.308,4561,1.616,4641,2.042,5102,2.449,5382,1.736,5602,2.524,5944,1.924,5976,6.195,5985,2.042,6727,2.702,6901,2.373,6911,4.892,6938,2.851,7038,4.492,7127,3.332,7320,8.912,7659,3.935,7679,2.077,7785,2.373,8712,5.424,8836,1.951,9401,3.149,9975,1.687,11022,2.308,11042,8.897,11086,9.8,11105,4.653,11216,3.235,11378,3.282,12068,6.504,12144,7.225,12145,5.798,14524,2.54,14875,3.038,14876,7.509,14877,7.509,14878,5.037,14879,5.037,14880,5.037,14881,3.038,14882,3.038,14883,7.505,14884,8.977,14885,3.038,14886,3.828,14887,3.038,14888,3.038,14889,5.037,14890,3.038,14891,8.326,14892,7.509,14893,5.037,14894,3.038,14895,3.038,14896,5.202,14897,3.038,14898,4.4,14899,5.037,14900,7.665,14901,3.038,14902,4.212,14903,4.653,14904,4.653,14905,5.037,14906,3.038,14907,3.038,14908,3.038,14909,3.038,14910,9.95,14911,7.509,14912,3.038,14913,2.806,14914,3.038,14915,3.038,14916,3.038,14917,5.037,14918,3.038,14919,5.037,14920,6.454,14921,7.509,14922,5.037,14923,3.038,14924,2.654,14925,2.449,14926,3.038,14927,5.037,14928,3.038,14929,3.038,14930,3.038,14931,3.038,14932,3.038,14933,3.038,14934,3.038,14935,5.037,14936,3.038,14937,5.037,14938,3.038,14939,3.038,14940,3.038,14941,2.806,14942,3.038,14943,3.038,14944,3.038,14945,3.038,14946,3.038,14947,3.038,14948,3.038,14949,3.038,14950,3.038,14951,3.038,14952,3.038,14953,3.038,14954,3.038,14955,3.038,14956,3.038,14957,3.038,14958,3.038,14959,3.038,14960,5.037,14961,5.037,14962,3.038,14963,3.038,14964,3.038,14965,3.038,14966,3.038,14967,3.038,14968,3.038,14969,3.038,14970,3.038]],["title/classes/NotFoundLoggableException.html",[0,0.229,10721,5.639]],["body/classes/NotFoundLoggableException.html",[0,0.285,2,0.964,3,0.022,4,0.022,5,0.012,7,0.129,8,1.29,26,2.585,27,0.444,29,0.666,30,0.001,31,0.471,32,0.15,33,0.42,35,1.012,47,0.952,95,0.159,99,1.422,101,0.016,103,0.001,104,0.001,111,2.353,127,1.353,163,2.644,187,1.2,214,3.53,216,2.176,217,1.108,227,0.885,404,1.936,406,2.687,1327,4.222,1542,5.492,1547,6.166,2686,6.262,8137,6.441,8530,5.386,8537,4.943,8538,5.176,10371,7.326,10372,7.326,10721,8.938,14971,11.769,14972,11.769,14973,10.872,14974,8.386,14975,11.769,14976,11.769,14977,8.386,14978,11.769,14979,8.386,14980,8.386,14981,8.386,14982,8.386,14983,8.386]],["title/injectables/OAuth2ToolLaunchStrategy.html",[105,0.889,14984,5.639]],["body/injectables/OAuth2ToolLaunchStrategy.html",[0,0.163,3,0.013,4,0.013,5,0.007,7,0.074,8,0.875,9,2.3,26,2.288,27,0.529,29,1.01,30,0.001,31,0.714,32,0.182,33,0.636,35,1.535,36,2.473,39,2.34,47,0.888,95,0.134,99,0.816,101,0.009,103,0,104,0,105,0.956,106,10.525,107,1.151,108,2.776,110,4.021,111,2.611,112,2.74,113,6.063,114,6.063,115,6.063,116,4.117,117,7.3,118,6.063,119,6.063,120,6.063,121,6.063,122,5.846,123,5.846,124,6.063,125,6.063,126,6.063,133,4.021,134,10.049,135,6.063,136,7.116,137,5.255,138,3.149,139,7.188,140,7.118,142,4.021,143,6.063,144,1.982,145,2.508,146,6.534,148,2.243,149,4.021,150,3.565,151,6.063,153,4.021,155,8.903,157,4.021,158,4.374,160,7.946,161,4.021,163,3.458,164,6.063,165,0.768,167,3.333,168,4.021,170,3.877,171,3.877,173,4.021,175,3.347,176,6.063,178,6.82,179,4.021,180,6.063,181,6.158,183,4.021,184,6.063,185,2.839,187,0.688,208,1.784,209,2.496,210,3.088,211,3.877,227,0.921,404,1.313,596,3.862,731,3.823,1298,4.592,1299,4.537,1300,4.537,1301,4.804,1302,5.26,2180,5.53,2643,4.442,2646,4.201,2647,4.201,2648,4.201,2649,4.201,2650,4.201,2651,4.201,2652,4.201,2653,4.201,2654,4.201,2655,4.201,2656,4.201,2657,6.899,2658,6.767,2659,4.021,2669,4.201,14984,6.063,14985,4.809,14986,4.809,14987,4.809]],["title/classes/OAuthMigrationError.html",[0,0.229,14988,5.437]],["body/classes/OAuthMigrationError.html",[0,0.246,2,0.833,3,0.019,4,0.019,5,0.01,7,0.111,27,0.534,29,0.575,30,0.001,31,0.406,32,0.18,33,0.611,47,1.027,52,4.505,59,3.633,95,0.093,101,0.014,103,0.001,104,0.001,127,1.229,144,2.653,165,0.767,204,3.331,216,2.577,329,2.86,355,4.604,404,1.759,596,3.555,1327,4.965,1884,5.836,3888,5.656,4442,5.164,5382,5.549,6706,6.07,10950,9.112,10952,5.501,12625,6.324,13247,5.366,14988,7.828,14989,10.816,14990,9.572,14991,9.572,14992,10.736,14993,12.841,14994,12.841,14995,9.711,14996,9.711,14997,7.24,14998,7.24,14999,7.24,15000,7.24,15001,7.24,15002,6.688,15003,6.688,15004,6.688,15005,6.688,15006,7.24,15007,7.24]],["title/classes/OAuthProcessDto.html",[0,0.229,15008,5.639]],["body/classes/OAuthProcessDto.html",[0,0.325,2,1.1,3,0.025,4,0.025,5,0.014,7,0.147,27,0.519,29,0.759,30,0.001,31,0.537,32,0.175,33,0.625,47,0.944,101,0.018,103,0.001,104,0.001,127,1.21,165,0.917,1016,3.414,1683,7.36,2211,8.136,2227,7.994,5833,9.698,15008,11.121,15009,11.994,15010,9.562,15011,11.6,15012,9.562,15013,9.562,15014,9.562,15015,9.562]],["title/classes/OAuthRejectableBody.html",[0,0.229,5372,5.437]],["body/classes/OAuthRejectableBody.html",[0,0.308,2,0.75,3,0.017,4,0.017,5,0.009,7,0.1,27,0.489,30,0.001,32,0.165,33,0.655,47,0.926,55,1.989,95,0.116,101,0.012,103,0.001,104,0.001,116,2.927,165,0.715,204,4.61,361,6.707,364,2.182,368,5.171,370,4.367,371,3.822,374,2.084,376,1.53,379,2.879,467,3.274,470,4.961,471,5.184,502,5.654,506,5.893,564,3.356,565,5.918,1035,7.804,1253,4.171,1498,6.554,1510,5.654,1997,8.111,2116,4.894,2507,7.2,3436,6.419,5346,5.729,5372,7.291,5373,8.68,5374,8.68,5375,8.111,5378,6.079,5394,8.758,5395,6.873,5396,7.902,5397,7.902,5398,7.902,5400,5.983,5401,8.519,5402,9.038,5403,7.066,5404,7.291,5405,6.873,5406,7.562,5407,7.066,5409,7.562,5410,5.809,5412,6.873,5414,5.699,5415,7.562,5416,7.902,15016,11.256,15017,6.524,15018,6.524,15019,6.524,15020,6.524,15021,6.524,15022,6.524]],["title/classes/OAuthSSOError.html",[0,0.229,10950,4.786]],["body/classes/OAuthSSOError.html",[0,0.275,2,0.93,3,0.021,4,0.021,5,0.011,7,0.124,27,0.526,29,0.642,30,0.001,31,0.454,32,0.178,33,0.404,47,1.012,59,3.24,95,0.134,101,0.015,103,0.001,104,0.001,127,1.023,144,2.853,165,0.825,187,1.157,204,3.967,216,2.55,329,3.075,404,1.891,1327,4.999,1439,5.531,1884,8.417,3888,6.314,5382,5.967,6706,6.527,10950,7.409,14990,10.104,14991,10.104,14992,11.028,15002,7.467,15003,7.467,15004,7.467,15005,7.467,15023,12.963,15024,8.083,15025,10.442,15026,9.646,15027,9.67,15028,8.083,15029,8.083,15030,8.083,15031,7.467,15032,8.083]],["title/injectables/OAuthService.html",[105,0.889,10933,5.125]],["body/injectables/OAuthService.html",[0,0.103,3,0.008,4,0.008,5,0.004,7,0.047,8,0.606,26,1.563,27,0.453,29,0.866,30,0.001,31,0.612,32,0.153,33,0.546,35,1.282,36,2.509,47,1.021,48,5.696,52,4.156,59,2.578,95,0.157,99,0.513,100,1.013,101,0.006,103,0,104,0,105,0.662,107,0.724,111,2.343,112,2.791,127,0.635,129,4.624,132,4.133,145,1.661,150,2.747,163,0.954,167,2.457,187,0.433,189,2.815,191,1.681,192,2.233,204,1.722,216,1.905,217,1.711,221,2.797,227,1.176,231,2.899,234,1.611,305,2.155,334,0.333,347,1.934,348,6.928,355,1.19,359,1.049,369,1.107,460,4.281,461,2.065,529,1.335,576,1.784,839,1.421,1052,2.623,1053,3.322,1114,3.039,1136,2.644,1253,3.832,1436,3.495,1545,0.967,1592,6.698,1645,2.243,1648,2.243,1667,2.796,1671,2.53,1683,1.784,1687,2.299,1691,1.868,1703,5.035,1773,1.943,1813,3.638,1833,5.946,1887,3.1,1919,2.085,2171,1.301,2172,1.447,2173,1.396,2174,1.917,2211,6.924,2514,2.002,3372,3.433,3544,2.085,4458,2.243,4561,2.672,4808,3.433,4809,2.299,5378,3.375,5382,2.87,5974,1.972,6589,1.917,6872,4.387,6938,4.24,8108,2.243,8291,5.035,8300,6.643,8636,2.106,9083,5.428,9113,2.439,9717,1.892,10705,6.02,10933,3.816,10947,8.28,10950,3.563,10953,4.663,10957,2.644,10960,4.639,11007,5.623,11026,2.243,11027,2.243,11028,4.77,11083,7.145,11270,2.243,11695,2.106,11826,3.638,11858,3.816,11860,2.299,11872,2.299,12089,2.53,12145,5.464,12589,3.923,12617,3.495,12632,2.644,12900,2.439,13623,4.387,13967,2.439,14219,2.439,14459,7.936,14462,4.639,14467,2.644,14470,4.639,14524,2.53,14925,2.439,14992,6.947,15031,2.796,15033,3.026,15034,6.436,15035,6.436,15036,6.436,15037,4.639,15038,5.022,15039,5.022,15040,5.022,15041,6.436,15042,5.022,15043,7.936,15044,7.415,15045,6.878,15046,7.415,15047,3.026,15048,3.026,15049,7.492,15050,3.026,15051,3.026,15052,3.026,15053,3.026,15054,3.026,15055,5.022,15056,3.026,15057,5.022,15058,8.567,15059,3.026,15060,5.022,15061,3.026,15062,5.022,15063,3.026,15064,3.026,15065,3.026,15066,5.022,15067,3.026,15068,5.022,15069,3.026,15070,2.364,15071,2.644,15072,4.326,15073,2.644,15074,2.644,15075,3.026,15076,2.796,15077,4.048,15078,2.796,15079,3.026,15080,4.387,15081,3.026,15082,3.026,15083,3.026,15084,3.026,15085,2.796,15086,2.439,15087,3.026,15088,7.492,15089,3.026,15090,3.026,15091,4.639,15092,3.026,15093,4.639,15094,3.026,15095,3.026,15096,3.026,15097,2.796,15098,4.198,15099,3.026,15100,3.026,15101,3.026,15102,2.796,15103,3.026,15104,4.198,15105,3.026,15106,3.026,15107,3.026,15108,3.026,15109,2.796,15110,3.026,15111,3.026,15112,3.026,15113,3.026,15114,3.026,15115,3.026,15116,5.022,15117,3.026,15118,3.026,15119,2.796,15120,3.026,15121,3.026,15122,3.026,15123,3.026,15124,3.026,15125,3.026,15126,3.026,15127,3.026,15128,4.639,15129,2.796,15130,3.026,15131,3.026,15132,3.026,15133,4.639,15134,3.026,15135,5.022,15136,3.026]],["title/classes/OAuthTokenDto.html",[0,0.229,10953,4.887]],["body/classes/OAuthTokenDto.html",[0,0.317,2,1.072,3,0.025,4,0.025,5,0.013,7,0.143,27,0.535,29,0.74,30,0.001,31,0.523,32,0.181,33,0.466,47,0.977,101,0.018,103,0.001,104,0.001,127,1.179,165,0.902,348,8.299,405,3.086,595,3.219,1703,8.299,10953,9.568,14118,7.791,14119,7.791,15137,13.205,15138,9.319,15139,11.406,15140,11.419,15141,9.319,15142,9.319,15143,8.608,15144,8.608,15145,9.319,15146,9.319]],["title/classes/Oauth2AuthorizationBodyParams.html",[0,0.229,14094,5.639]],["body/classes/Oauth2AuthorizationBodyParams.html",[0,0.386,2,1.062,3,0.024,4,0.024,5,0.013,7,0.142,27,0.511,30,0.001,32,0.173,47,0.975,48,5.773,95,0.146,101,0.018,103,0.001,104,0.001,165,0.897,364,2.278,374,2.949,376,2.165,467,3.448,470,5.18,1000,4.855,1001,7.327,1253,5.671,5711,6.69,7184,9.153,11083,7.498,13261,8.066,13262,8.529,13990,8.529,13991,8.529,14094,9.493,15147,12.829]],["title/classes/Oauth2MigrationParams.html",[0,0.229,15148,5.892]],["body/classes/Oauth2MigrationParams.html",[0,0.382,2,1.043,3,0.024,4,0.024,5,0.013,7,0.139,27,0.507,30,0.001,32,0.171,47,0.971,48,5.726,95,0.144,101,0.017,103,0.001,104,0.001,165,0.887,355,5.012,364,2.26,374,2.896,376,2.126,467,3.426,470,5.138,1000,4.801,1001,7.268,1253,5.625,4442,5.622,5711,6.569,7184,9.051,11083,7.438,15148,9.808,15149,12.747,15150,9.067,15151,9.067,15152,9.067,15153,9.067]],["title/injectables/Oauth2Strategy.html",[105,0.889,1634,5.892]],["body/injectables/Oauth2Strategy.html",[0,0.243,3,0.019,4,0.019,5,0.01,7,0.11,8,1.161,27,0.4,29,0.764,30,0.001,31,0.54,32,0.163,33,0.481,35,0.861,36,2.09,47,0.519,48,5.107,66,6.092,94,5.17,95,0.174,101,0.014,103,0.001,104,0.001,105,1.267,107,1.708,111,1.427,112,2.439,127,0.903,138,4.176,167,2.724,187,1.022,206,3.654,215,2.31,216,1.778,217,1.605,221,2.564,227,0.753,234,1.56,305,2.767,334,0.786,349,4.721,367,3.435,404,1.293,406,2.287,461,2.682,491,4.72,511,3.654,513,4.923,543,3.576,738,4.12,818,9.27,1253,4.435,1508,4.039,1634,8.402,1640,5.29,1807,5.575,1808,5.29,2038,4.879,2211,4.65,4485,4.879,5378,4.797,5974,6.266,6929,5.423,6938,5.443,6943,5.575,10932,6.235,10933,9.512,10953,6.969,11083,5.865,12684,5.575,12692,5.967,12695,5.967,13330,8.885,13333,6.593,13347,6.593,14094,8.041,15104,5.967,15154,7.137,15155,7.137,15156,7.137,15157,6.593,15158,8.402,15159,7.137,15160,6.593,15161,6.593,15162,6.593,15163,6.235,15164,6.235,15165,7.137,15166,7.137,15167,7.137]],["title/classes/Oauth2ToolConfig.html",[0,0.229,7126,4.611]],["body/classes/Oauth2ToolConfig.html",[0,0.247,2,0.837,3,0.019,4,0.019,5,0.01,7,0.112,27,0.556,29,0.578,30,0.001,31,0.409,32,0.192,33,0.675,47,0.98,95,0.125,101,0.014,103,0.001,104,0.001,127,0.921,165,0.77,198,3.481,200,2.371,209,4.603,238,5.944,277,4.397,347,1.986,404,1.765,405,2.634,406,2.332,595,2.515,596,2.959,2600,5.776,2602,6.086,2603,9.067,2605,6.359,2606,5.365,2607,6.359,2608,6.359,2610,5.165,5472,5.429,6989,6.959,7022,5.531,7023,5.868,7078,4.892,7079,5.868,7123,9.332,7126,8.363,7134,6.622,7137,8.349,7139,8.143,7145,4.892,11854,4.976,11855,5.395,14180,6.724,14181,6.724,14182,6.724,14183,6.724,14184,6.724,14185,6.724,15168,13.235,15169,9.746,15170,6.359,15171,7.279,15172,6.724,15173,6.724,15174,6.724,15175,6.724,15176,6.724,15177,6.724]],["title/classes/Oauth2ToolConfigCreateParams.html",[0,0.229,8457,5.639]],["body/classes/Oauth2ToolConfigCreateParams.html",[0,0.322,2,0.804,3,0.019,4,0.019,5,0.01,7,0.108,27,0.545,30,0.001,32,0.189,33,0.577,47,0.981,95,0.148,101,0.013,103,0.001,104,0.001,154,5.902,165,0.749,198,3.342,200,2.277,209,4.518,238,5.822,277,4.307,347,1.932,364,2.432,373,5.005,374,2.232,375,4.366,376,1.639,404,1.717,467,3.479,470,5.241,471,4.579,596,2.879,1044,3.43,2600,5.65,2606,5.924,2626,8.742,2627,7.637,2628,5.633,2629,5.633,2630,5.633,2631,5.633,2632,5.633,5418,6.006,5472,5.318,5729,6.87,6989,6.817,7123,9.221,7134,6.486,7137,8.177,7139,7.976,7186,5.31,8455,5.633,8457,7.928,8463,6.105,14192,6.456,14196,6.456,15178,11.96,15179,6.456,15180,6.988,15181,6.988,15182,6.456,15183,6.456,15184,6.988,15185,6.456]],["title/classes/Oauth2ToolConfigEntity.html",[0,0.229,8475,5.437]],["body/classes/Oauth2ToolConfigEntity.html",[0,0.279,2,0.945,3,0.022,4,0.022,5,0.012,7,0.126,27,0.529,29,0.652,30,0.001,31,0.461,32,0.186,33,0.411,47,0.847,95,0.15,96,2.22,101,0.016,103,0.001,104,0.001,127,1.04,165,0.834,198,3.929,200,2.676,209,4.379,238,5.708,240,4.078,347,2.15,364,2.279,398,2.405,404,1.911,405,2.851,595,2.838,596,3.203,617,4.742,1031,2.632,2600,5.368,2606,5.808,2613,6.868,2614,10.255,2616,7.177,2617,7.177,2618,5.401,2619,7.177,2620,4.791,2621,3.88,5472,5.759,6989,7.383,7022,6.242,7023,6.622,7145,7.091,8475,10.255,11854,5.616,15170,7.177,15186,12.299,15187,10.551,15188,8.215]],["title/classes/Oauth2ToolConfigFactory.html",[0,0.229,7132,5.639]],["body/classes/Oauth2ToolConfigFactory.html",[0,0.258,2,0.442,3,0.01,4,0.01,5,0.005,7,0.059,8,0.736,27,0.509,29,0.995,30,0.001,31,0.688,32,0.182,33,0.586,34,1.046,35,1.353,47,0.443,55,2.394,59,3.107,95,0.121,101,0.018,103,0,104,0,127,0.486,136,3.812,138,2.648,144,2.974,146,2.584,148,1.189,150,1.41,154,3.455,158,1.926,165,0.482,185,5.023,195,2.584,196,2.728,200,1.252,201,2.013,209,1.323,216,1.127,217,1.598,227,1.237,236,2.242,238,4.101,277,3.765,278,2.921,279,4.419,281,2.849,290,2.219,325,2.849,329,3.206,331,2.403,359,2.114,366,2.116,371,2.377,379,1.746,380,1.585,381,2.007,404,1.562,461,0.886,471,1.636,538,2.734,596,3.675,627,1.898,660,6.663,661,4.218,662,4.837,665,3.419,666,4.837,667,5.11,668,3.419,669,3.419,670,3.419,671,3.357,672,3.852,673,4.249,674,6.268,675,5.179,676,6.577,677,2.176,682,2.155,683,3.419,684,2.176,685,4.518,686,4.708,687,4.002,688,4.554,689,3.387,690,2.155,691,2.013,692,3.73,693,2.098,694,2.062,695,2.155,696,4.45,697,2.176,698,4.173,699,2.155,700,7.358,701,3.801,702,6.102,703,2.176,704,3.013,705,2.155,706,2.176,707,2.155,708,2.176,709,2.155,712,2.155,713,5.511,714,2.176,715,2.155,716,3.419,717,3.357,718,3.419,719,2.176,720,2.08,721,2.062,722,1.696,723,2.155,724,2.155,725,2.155,726,2.176,727,2.176,728,1.505,729,2.155,730,2.176,731,2.398,732,2.155,733,2.176,735,2.219,736,2.291,737,5.141,905,1.596,1508,2.176,1696,3.485,2076,3.219,2599,2.785,2606,2.116,2609,2.676,4335,6.676,4337,2.785,4945,2.062,5472,3.013,5602,1.926,5640,2.176,5697,3.099,5702,3.003,5703,2.849,6968,2.469,6974,2.435,6976,2.435,6978,2.469,6989,2.435,6991,2.291,7117,5.099,7118,5.327,7120,3.358,7122,2.785,7123,4.52,7124,3.003,7125,2.785,7126,2.628,7127,2.543,7128,3.358,7129,3.358,7130,3.358,7131,6.621,7132,6.337,7133,5.327,7134,3.675,7135,3.099,7136,2.849,7137,2.921,7138,3.358,7139,2.849,7140,3.358,7141,3.358,7142,3.214,7143,5.327,7144,3.358,7145,2.584,7146,3.358,7147,3.358,7148,3.358,7149,2.628,7150,3.358,7151,3.214,7152,3.214,7153,3.358,7154,2.676,7155,4.634,7156,5.327,7157,6.621,7158,5.327,7159,5.327,7160,3.358,7161,3.214,7162,3.003,7163,5.099,7164,3.358,7165,3.358,7166,3.358,7167,3.358,7168,3.358,7169,5.327,7170,3.358,7171,3.214,7172,2.505,7173,3.214,7174,3.358,7175,3.358,7176,3.358,7177,3.358,15189,6.098,15190,3.844]],["title/classes/Oauth2ToolConfigResponse.html",[0,0.229,8988,5.639]],["body/classes/Oauth2ToolConfigResponse.html",[0,0.236,2,0.8,3,0.018,4,0.018,5,0.01,7,0.107,27,0.545,29,0.552,30,0.001,31,0.39,32,0.189,33,0.656,47,0.964,95,0.138,101,0.013,103,0.001,104,0.001,127,0.88,165,0.747,198,3.325,200,2.265,209,4.513,238,5.807,277,4.295,347,1.925,364,2.396,375,5.318,376,1.63,404,1.711,405,2.553,406,2.228,467,3.523,595,2.402,596,2.869,2600,5.644,2606,5.909,2610,4.933,2621,3.284,2622,4.933,2635,5.604,2636,9.708,2638,6.073,2639,6.073,2640,5.604,5472,5.304,6989,6.798,7022,5.282,7023,5.604,7078,4.673,7079,5.604,7123,9.207,7137,8.156,7139,7.955,7145,4.673,8988,10.069,11854,4.753,14208,6.422,14209,6.422,14210,6.422,14211,6.422,14212,6.073,15170,6.073,15172,6.422,15173,6.422,15174,6.422,15175,6.422,15176,6.422,15177,6.422,15191,12.931,15192,9.449]],["title/classes/Oauth2ToolConfigUpdateParams.html",[0,0.229,8920,5.639]],["body/classes/Oauth2ToolConfigUpdateParams.html",[0,0.321,2,0.8,3,0.018,4,0.018,5,0.01,7,0.107,27,0.545,30,0.001,32,0.189,33,0.621,47,0.98,95,0.148,101,0.013,103,0.001,104,0.001,154,5.895,165,0.747,198,3.325,200,2.265,209,4.513,238,5.807,277,4.295,347,1.925,364,2.429,373,4.987,374,2.22,375,4.672,376,1.63,404,1.711,467,3.415,470,5.233,471,4.9,596,2.869,1044,3.412,2600,5.644,2606,5.909,2626,8.726,2627,6.705,2628,5.604,2629,5.604,2630,5.604,2631,5.604,2632,5.604,5418,5.985,5472,5.304,5729,7.777,6989,6.798,7123,9.207,7134,6.469,7137,8.156,7139,7.955,7186,5.282,8920,7.9,9218,5.812,9220,6.073,9222,6.073,9226,6.422,14216,6.422,15178,11.946,15179,6.422,15183,6.422,15185,6.422,15193,6.952,15194,6.952,15195,6.952]],["title/injectables/OauthAdapterService.html",[105,0.889,15043,5.639]],["body/injectables/OauthAdapterService.html",[0,0.227,3,0.018,4,0.018,5,0.009,7,0.103,8,1.108,27,0.47,29,0.899,30,0.001,31,0.635,32,0.167,33,0.566,35,1.267,36,2.73,47,0.914,95,0.167,100,2.231,101,0.013,103,0.001,104,0.001,105,1.21,107,1.595,111,2.262,112,2.75,116,3.398,127,0.843,204,2.286,215,2.157,216,1.697,217,1.567,221,2.163,227,1.108,231,6.061,234,1.081,305,1.917,351,3.293,369,1.469,784,3.518,798,4.166,1052,4.279,1053,5.017,1158,3.546,1265,8.384,1266,3.808,1267,5.064,1268,4.28,1381,3.887,1545,2.129,1592,9.12,2063,6.389,2074,4.556,2076,3.518,2333,9.09,2344,2.754,2367,5.572,3544,2.767,3911,5.206,3962,5.822,6878,8.019,10883,5.372,10903,5.822,10904,5.822,10905,5.572,10906,5.822,10950,4.729,10951,5.822,10952,5.064,10957,5.822,11087,6.17,15043,7.674,15077,5.372,15102,8.48,15196,11.866,15197,6.664,15198,10.5,15199,10.5,15200,6.664,15201,9.179,15202,6.664,15203,9.179,15204,6.664,15205,6.664,15206,6.664,15207,6.664,15208,6.664,15209,9.179,15210,5.822,15211,6.156,15212,6.664,15213,6.664,15214,6.664,15215,6.664,15216,6.664,15217,9.179,15218,6.664,15219,6.664,15220,6.664,15221,9.179,15222,6.664,15223,6.664,15224,6.664,15225,6.664]],["title/modules/OauthApiModule.html",[425,1.808,15226,5.437]],["body/modules/OauthApiModule.html",[0,0.247,3,0.019,4,0.019,5,0.01,30,0.001,52,3.377,95,0.174,101,0.014,103,0.001,104,0.001,187,1.042,191,4.043,192,2.17,355,2.862,425,2.945,427,2.69,428,2.838,429,2.926,430,2.913,431,2.887,432,4.061,433,2.745,438,5.947,442,3.918,443,2.862,444,2.79,446,4.611,447,4.086,449,3.918,1545,2.325,1585,8.328,1624,9.836,1626,8.935,1645,5.395,1945,6.812,1951,8.085,2767,3.281,2769,3.597,4551,8.203,4561,5.186,10099,5.686,10923,10.527,13436,9.567,15070,5.686,15226,11.433,15227,7.279,15228,7.279,15229,7.279,15230,9.836,15231,10.527,15232,7.279,15233,9.598,15234,6.724,15235,7.279,15236,7.279]],["title/classes/OauthClientBody.html",[0,0.229,15237,5.892]],["body/classes/OauthClientBody.html",[0,0.242,2,0.539,3,0.012,4,0.012,5,0.007,7,0.072,27,0.504,30,0.001,31,0.399,32,0.17,33,0.666,34,1.22,47,0.958,95,0.123,101,0.009,103,0,104,0,116,2.301,165,0.562,208,4.029,235,4.025,277,4.515,290,4.105,349,4.704,351,3.514,361,6.791,364,2.249,368,5.258,369,1.894,370,4.441,371,3.855,374,1.497,376,1.099,379,2.797,467,3.315,470,5.015,471,5.248,535,3.847,538,4.301,574,3.223,701,2.483,745,6.569,783,4.286,1016,2.539,1044,2.3,1272,4.861,1383,3.56,1594,5.732,1596,6.099,1597,6.928,1608,3.473,1659,6.808,1680,4.861,1696,4.064,1720,5.403,2008,4.567,2116,3.847,2186,4.504,2211,4.633,2489,4.911,2503,5.732,2504,5.945,3544,5.469,4000,4.445,4082,6.928,5346,4.504,5378,8.405,5382,4.064,5394,8.058,5418,6.077,5433,7.508,5452,6.212,5453,6.449,5468,6.53,6990,6.37,9170,7.939,9172,7.508,9175,9.529,9176,6.569,10752,5.046,12585,5.732,12589,5.555,15016,11.395,15237,6.212,15238,4.686,15239,7.939,15240,7.939,15241,4.686,15242,4.686,15243,4.686,15244,7.111,15245,7.111,15246,4.686,15247,4.686,15248,4.686,15249,4.686,15250,5.945,15251,5.732,15252,6.569,15253,5.945,15254,7.111,15255,7.111,15256,7.111,15257,7.111,15258,4.686,15259,8.594,15260,4.686,15261,7.111,15262,7.111,15263,4.686,15264,8.594,15265,4.686,15266,6.569,15267,7.111,15268,7.111,15269,4.686,15270,4.686,15271,4.686,15272,4.686,15273,4.686,15274,4.686]],["title/classes/OauthConfig.html",[0,0.229,10947,4.331]],["body/classes/OauthConfig.html",[0,0.304,2,0.471,3,0.011,4,0.011,5,0.006,7,0.063,26,1.338,27,0.517,29,0.326,30,0.001,31,0.23,32,0.178,33,0.395,47,1.032,83,2.377,95,0.115,96,1.108,101,0.019,103,0,104,0,127,0.519,150,2.898,165,0.507,208,1.521,216,0.758,240,4.407,277,3.162,334,0.451,347,0.835,359,1.421,364,2.277,369,2.907,370,4.376,371,1.129,379,0.944,380,1.652,386,2.342,398,1.2,399,2.511,400,1.798,402,1.686,404,0.742,405,1.108,406,1.313,496,1.727,722,1.808,775,2.499,783,2.47,1031,2.532,1114,1.663,1252,2.442,1576,2.47,1659,2.909,1691,4.878,2113,2.596,2138,3.038,2618,3.283,2621,1.936,4293,3.47,4331,4.552,4556,4.576,5236,2.562,5472,4.417,5602,3.213,5621,2.596,5622,2.802,6090,3.563,6359,2.499,6992,2.632,7078,2.755,7134,5.387,8597,5.311,9975,2.277,10947,7.516,11026,3.038,11027,3.038,11028,3.038,11029,3.114,11072,5.402,11075,5.227,11077,5.402,11080,5.402,11083,4.819,11087,5.311,11477,3.114,11590,2.711,11733,2.909,11843,4.874,11844,3.304,11845,4.243,11846,7.455,11847,7.162,11848,4.01,11849,4.465,11850,5.148,11851,2.711,11852,2.711,11853,5.171,11854,4.385,11855,4.754,11856,3.202,11857,4.754,11858,3.114,11859,3.114,11860,3.114,11861,3.114,11862,3.202,11863,3.114,11864,3.114,11865,3.114,11866,3.202,11867,4.754,11868,3.202,11869,3.114,11870,3.202,11871,3.114,11872,3.114,11873,3.114,11874,3.202,11875,6.111,11876,3.304,11877,3.304,11878,3.304,11879,3.304,11880,3.304,11881,3.304,11882,3.304,11883,3.304,11884,3.304,11885,3.304,11886,3.304,11887,3.304,11888,3.202,11889,3.304,11890,3.304,11891,3.304,11892,3.304,11893,3.304,11894,3.304,11895,3.304,11896,3.304,11897,3.304,11898,3.304,11899,3.304,11900,3.304,11901,3.304,11902,3.304,11903,3.304,11904,3.304,11905,3.304,11906,3.038,11907,3.304,11908,3.304,11909,3.304,11910,3.304,11911,3.304,11912,3.304,11913,3.304,11914,3.304,11915,3.304,11916,3.304,11917,3.304,11918,3.304,11919,3.304,11920,3.304,11921,3.114,11922,3.304,11923,3.038,11924,3.202,11925,3.114,11926,3.202,11927,3.114,11928,3.114,11929,3.202,11930,3.114,11931,3.202,11932,3.114,11933,2.97,11934,2.97,11935,2.97,11936,3.038,11937,3.114,11938,3.304,11939,3.114,11940,3.304,11941,3.304,11942,3.304,11943,3.304,11944,3.304,11945,3.114,11946,3.202,11947,3.114,11948,3.202,15275,4.099,15276,4.099,15277,4.099,15278,4.099,15279,4.099,15280,4.099,15281,4.099,15282,4.099,15283,4.099,15284,4.099,15285,4.099,15286,4.099,15287,4.099,15288,4.099]],["title/classes/OauthConfigDto.html",[0,0.229,12202,5.125]],["body/classes/OauthConfigDto.html",[0,0.243,2,0.821,3,0.019,4,0.019,5,0.01,7,0.11,27,0.569,29,0.567,30,0.001,31,0.401,32,0.192,33,0.544,47,1.03,101,0.014,103,0.001,104,0.001,127,0.903,165,0.76,277,4.354,1691,6.715,4556,5.569,5472,5.375,7078,4.797,7134,6.556,8597,7.312,11072,7.436,11075,7.196,11077,7.436,11080,7.436,11083,6.633,11087,7.312,11854,4.879,11855,5.29,11857,5.29,11859,5.423,11861,5.423,11863,5.423,11864,5.423,11865,5.423,11867,5.29,11869,5.423,11871,5.423,11873,5.423,11875,7.436,12202,9.512,15289,13.765,15290,6.593,15291,9.618,15292,8.885,15293,6.593,15294,7.137,15295,7.137,15296,7.137,15297,7.137,15298,6.593,15299,6.593,15300,6.593,15301,7.137,15302,6.593,15303,6.593,15304,7.137,15305,6.593,15306,7.137,15307,6.593,15308,6.593,15309,6.593,15310,6.593,15311,6.593,15312,6.593,15313,6.593,15314,6.593,15315,6.593,15316,6.593,15317,6.593]],["title/classes/OauthConfigResponse.html",[0,0.229,15318,5.639]],["body/classes/OauthConfigResponse.html",[0,0.172,2,0.581,3,0.013,4,0.013,5,0.007,7,0.078,27,0.534,29,0.401,30,0.001,31,0.284,32,0.188,33,0.533,34,1.291,47,1.018,95,0.065,101,0.01,103,0,104,0,127,0.639,138,3.266,165,0.594,277,4.47,351,3.717,364,2.355,368,5.391,369,3.009,370,4.553,371,3.762,376,1.184,379,2.928,467,3.452,1013,5.827,1016,2.686,1272,5.143,1383,5.716,1594,6.065,1691,6.894,2186,7.531,2211,4.901,2635,4.071,3544,3.124,4556,5.718,5412,5.716,5472,4.923,7078,3.394,8597,6.696,11072,6.81,11075,6.59,11077,6.81,11080,6.81,11083,6.075,11087,6.696,11854,3.452,11857,3.743,11859,3.837,11861,3.837,11863,3.837,11864,3.837,11865,3.837,11867,3.743,11869,3.837,11871,3.837,11873,3.837,11875,6.81,12585,6.065,12912,6.572,14212,4.412,15210,6.572,15318,7.517,15319,12.965,15320,7.523,15321,7.523,15322,5.05,15323,5.05,15324,5.05,15325,6.95,15326,5.05,15327,5.05,15328,5.05,15329,5.05,15330,5.05,15331,5.05,15332,5.05,15333,5.05,15334,5.05,15335,5.05,15336,5.05,15337,5.05,15338,5.05,15339,5.05,15340,5.05,15341,5.05,15342,5.05,15343,5.05,15344,5.05]],["title/classes/OauthDataDto.html",[0,0.229,12617,4.694]],["body/classes/OauthDataDto.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,27,0.534,29,0.676,30,0.001,31,0.478,32,0.18,33,0.643,95,0.16,101,0.016,103,0.001,104,0.001,127,1.077,165,0.853,200,3.86,405,2.916,595,2.94,1114,4.807,8266,9.004,8281,7.862,8298,8.783,8318,6.648,8319,7.115,9332,8.586,10705,6.166,12617,8.951,12645,9.552,12647,9.907,15345,12.137,15346,8.511,15347,10.947,15348,10.791,15349,8.511,15350,8.511,15351,9.257,15352,8.511,15353,8.511,15354,7.862,15355,8.511,15356,8.511,15357,8.511,15358,8.511,15359,8.511,15360,8.511,15361,8.511]],["title/classes/OauthDataStrategyInputDto.html",[0,0.229,12622,4.999]],["body/classes/OauthDataStrategyInputDto.html",[0,0.305,2,1.033,3,0.024,4,0.024,5,0.013,7,0.138,27,0.528,29,0.714,30,0.001,31,0.504,32,0.178,33,0.45,47,0.924,95,0.115,101,0.017,103,0.001,104,0.001,127,1.137,163,4.12,165,0.882,348,8.165,405,3.017,595,3.104,1114,4.928,1703,8.165,4485,8.933,8318,7.019,8319,7.513,10705,6.511,12622,9.685,14118,7.513,14119,7.513,15143,8.301,15144,8.301,15345,12.072,15351,9.49,15354,8.301,15362,8.986,15363,11.166,15364,8.986,15365,8.986]],["title/classes/OauthLoginStateDto.html",[0,0.229,15366,5.437]],["body/classes/OauthLoginStateDto.html",[0,0.29,2,0.981,3,0.023,4,0.023,5,0.012,7,0.131,26,2.474,27,0.546,29,0.677,30,0.001,31,0.479,32,0.184,33,0.593,47,0.956,48,5.568,95,0.109,99,1.447,101,0.016,103,0.001,104,0.001,127,1.079,165,0.854,347,2.201,355,5.25,405,2.92,417,6.321,418,6.875,460,6.779,595,2.946,4457,7.149,4556,6.072,7882,6.321,11731,6.875,11732,6.875,11867,6.321,15058,9.562,15366,10.373,15367,13.353,15368,8.529,15369,10.806,15370,8.529,15371,8.529,15372,8.529,15373,8.529,15374,8.529,15375,8.529,15376,8.529,15377,8.529]],["title/classes/OauthLoginStateMapper.html",[0,0.229,15378,5.892]],["body/classes/OauthLoginStateMapper.html",[0,0.324,2,1.094,3,0.025,4,0.025,5,0.013,7,0.146,8,1.396,27,0.395,29,0.756,30,0.001,31,0.534,32,0.134,33,0.476,35,1.148,95,0.148,100,3.872,101,0.018,103,0.001,104,0.001,217,1.257,227,1.004,234,1.543,346,6.396,355,4.9,627,3.879,13467,7.957,15366,10.45,15378,10.104,15379,11.567,15380,9.517,15381,11.567,15382,11.567,15383,11.324,15384,9.517,15385,8.314,15386,8.314,15387,9.517]],["title/classes/OauthMigrationDto.html",[0,0.229,13466,5.437]],["body/classes/OauthMigrationDto.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,27,0.546,29,0.676,30,0.001,31,0.478,32,0.184,33,0.682,83,4.063,101,0.016,103,0.001,104,0.001,127,1.077,165,0.853,185,3.332,347,2.199,9465,8.695,13466,10.366,13485,9.427,13521,9.004,13522,9.004,13523,9.004,13639,9.907,13641,9.907,14506,7.862,14507,7.862,14508,7.862,14509,7.862,14510,7.862,14511,7.862,14512,7.862,14513,7.862,14514,7.862,14515,7.862,15388,13.346,15389,8.511,15390,10.791,15391,8.511,15392,8.511,15393,8.511,15394,8.511]],["title/modules/OauthModule.html",[425,1.808,1624,5.269]],["body/modules/OauthModule.html",[0,0.229,3,0.018,4,0.018,5,0.01,30,0.001,52,3.122,95,0.175,101,0.013,103,0.001,104,0.001,187,0.964,191,3.739,192,2.007,355,2.647,425,2.829,427,2.488,428,2.624,429,2.706,430,2.694,431,2.67,432,3.901,433,3.98,438,5.81,442,3.715,443,2.647,444,2.58,449,3.715,450,2.769,1266,3.847,1545,2.15,1623,9.917,1624,11.104,1626,8.73,1641,5.88,1645,4.989,1945,6.656,1951,7.9,2767,3.034,3956,6.212,4551,8.015,4552,8.914,4561,4.918,8104,8.914,8636,4.685,10933,10.191,10934,11.213,10954,6.218,10955,5.88,13436,9.348,15043,10.285,15070,5.258,15078,6.218,15230,9.61,15395,6.731,15396,6.731,15397,6.731,15398,6.731,15399,6.731,15400,5.88]],["title/modules/OauthProviderApiModule.html",[425,1.808,15401,5.437]],["body/modules/OauthProviderApiModule.html",[0,0.245,3,0.019,4,0.019,5,0.01,30,0.001,95,0.171,101,0.014,103,0.001,104,0.001,187,1.031,361,3.964,425,2.929,427,2.661,428,2.807,429,2.895,430,2.882,431,2.856,432,4.039,433,2.715,438,5.928,442,3.89,443,2.832,444,2.76,446,4.561,447,4.056,449,3.89,1545,2.3,1945,6.791,2767,3.246,2769,3.558,3673,4.923,4550,9.537,4551,8.177,4556,5.594,4560,5.472,4561,3.832,5382,4.115,8627,9.805,8635,4.763,15234,6.652,15401,11.456,15402,7.201,15403,7.201,15404,7.201,15405,10.494,15406,10.494,15407,10.494,15408,10.494,15409,10.494,15410,10.494,15411,10.494,15412,6.02,15413,9.546,15414,7.201,15415,6.652,15416,7.201]],["title/injectables/OauthProviderClientCrudUc.html",[105,0.889,15406,5.639]],["body/injectables/OauthProviderClientCrudUc.html",[0,0.174,3,0.014,4,0.014,5,0.007,7,0.079,8,0.916,27,0.483,29,0.891,30,0.001,31,0.63,32,0.163,33,0.561,34,2.091,35,1.292,36,2.695,47,0.952,55,2.468,56,4.825,58,6.349,59,3.111,95,0.144,101,0.01,103,0,104,0,105,1.001,107,1.224,111,2.141,112,2.937,127,0.961,144,1.398,163,3.763,165,0.6,187,0.732,216,1.98,217,1.663,221,2.873,227,1.13,277,3.039,329,1.506,351,3.752,353,6.122,361,6.57,461,2.9,491,6.474,513,5.947,559,2.791,843,2.232,1253,3.502,1952,6.233,3544,4.955,3803,4.123,5468,7.617,7135,6.122,7136,5.629,8635,5.023,9081,7.963,9106,9.491,9110,3.629,9172,6.634,9217,8.954,9574,7.114,10828,6.349,10829,6.349,10832,6.349,10836,7.573,10840,7.573,11076,6.349,15239,7.015,15240,7.015,15406,6.349,15417,9.323,15418,11.025,15419,5.115,15420,9.058,15421,4.123,15422,5.115,15423,7.015,15424,5.115,15425,7.015,15426,5.115,15427,7.015,15428,5.115,15429,4.725,15430,5.115,15431,4.725,15432,5.115,15433,7.015,15434,5.115,15435,5.115,15436,5.115,15437,10.71,15438,7.594,15439,5.115,15440,5.115,15441,9.058,15442,9.058,15443,7.594,15444,5.115,15445,5.115,15446,5.115]],["title/injectables/OauthProviderConsentFlowUc.html",[105,0.889,15407,5.639]],["body/injectables/OauthProviderConsentFlowUc.html",[0,0.181,3,0.014,4,0.014,5,0.008,7,0.082,8,0.944,27,0.473,29,0.904,30,0.001,31,0.639,32,0.16,33,0.57,35,1.314,36,2.722,39,2.485,47,0.989,95,0.151,101,0.01,103,0,104,0,105,1.031,107,1.274,111,2.539,112,2.763,127,0.99,145,2.938,148,2.42,187,0.762,216,1.446,217,1.438,221,2.409,227,1.079,234,0.863,305,1.532,335,8.24,339,3.946,348,7.319,349,6.134,350,4.451,351,2.631,353,4.292,360,8.24,361,6.478,491,5.776,513,5.233,529,4.09,543,6.501,552,3.419,559,2.905,1016,4.202,1596,7.254,2037,3.073,3710,4.715,4216,8.576,4556,2.725,4632,3.64,5370,8.546,5421,8.24,5428,8.24,8635,5.175,9081,8.08,9110,3.778,10825,8.101,10830,6.541,10837,6.834,10842,4.651,10855,6.834,10869,7.985,10871,6.834,10885,8.071,10887,5.668,12135,9.839,12136,4.918,15407,6.541,15417,9.193,15421,4.292,15447,10.871,15448,4.651,15449,8.567,15450,7.823,15451,5.324,15452,5.324,15453,5.324,15454,5.324,15455,5.324,15456,5.324,15457,7.823,15458,5.324,15459,4.451,15460,4.918,15461,7.823,15462,5.324,15463,4.918,15464,5.324,15465,5.324,15466,5.324,15467,5.324,15468,7.985,15469,5.324,15470,5.324,15471,5.324,15472,5.324,15473,5.324,15474,5.324,15475,4.159,15476,5.324]],["title/controllers/OauthProviderController.html",[481,2.629,15413,5.892]],["body/controllers/OauthProviderController.html",[0,0.113,3,0.009,4,0.009,5,0.005,7,0.051,8,0.654,10,1.34,27,0.484,29,0.91,30,0.001,31,0.643,32,0.161,33,0.573,35,1.406,36,2.892,47,0.241,95,0.156,100,1.111,101,0.006,103,0,104,0,111,1.873,112,2.965,127,0.42,185,5.073,187,0.475,216,1.732,217,1.684,221,2.584,227,1.23,264,4.363,346,2.23,349,6.536,360,7.966,361,6.514,364,2.159,376,0.778,447,1.391,481,1.294,483,1.597,491,6.443,513,6.746,529,4.952,543,6.345,552,2.131,555,1.751,556,1.795,557,1.811,559,1.811,561,6.127,1016,1.934,1426,6.921,2171,1.426,2172,1.587,2173,1.53,2211,2.162,2955,1.878,3544,3.29,3673,2.268,3710,3.265,3898,1.811,4038,2.048,4214,10.598,4533,7.458,4556,1.699,5370,6.624,5378,2.23,5421,4.367,5439,7.832,5465,5.739,7848,2.774,8635,3.583,9106,6.787,9110,2.355,10827,4.732,10828,5.739,10829,4.529,10830,4.529,10831,4.529,10832,5.739,10835,4.529,10836,5.739,10839,4.529,10840,5.739,10885,4.015,10886,4.116,10887,5.741,10888,5.216,10890,3.065,12124,9.58,12155,2.675,13497,6.341,13975,6.921,14086,4.974,14120,6.387,15237,8.633,15406,4.529,15407,4.529,15408,5.739,15409,4.529,15410,5.739,15411,5.739,15413,4.732,15417,6.189,15418,3.065,15423,3.065,15425,3.065,15427,3.065,15429,3.065,15431,3.065,15447,3.065,15449,6.341,15468,7.318,15477,11.833,15478,3.318,15479,6.341,15480,3.318,15481,3.318,15482,3.318,15483,3.318,15484,3.318,15485,3.318,15486,3.318,15487,3.318,15488,3.318,15489,3.318,15490,3.318,15491,5.417,15492,3.318,15493,3.318,15494,3.318,15495,5.417,15496,3.318,15497,3.318,15498,3.318,15499,3.318,15500,3.318,15501,3.318,15502,3.318,15503,3.318,15504,3.318,15505,3.318,15506,3.318,15507,3.318,15508,3.318,15509,6.921,15510,3.318,15511,3.318,15512,3.318,15513,3.318,15514,3.065,15515,6.864,15516,2.774,15517,3.318,15518,3.318,15519,3.318,15520,3.065,15521,3.318,15522,3.318,15523,3.318,15524,3.318,15525,3.318,15526,3.318,15527,3.318,15528,3.318,15529,3.318,15530,7.923,15531,3.318,15532,3.318,15533,3.318,15534,3.318,15535,3.318,15536,3.318,15537,3.318,15538,3.318,15539,3.318,15540,3.318,15541,3.318,15542,3.318,15543,3.318,15544,3.318,15545,3.318,15546,3.318,15547,3.318,15548,3.318,15549,3.318,15550,5.417,15551,5.417,15552,3.318,15553,3.318,15554,3.318,15555,3.318,15556,3.318,15557,3.318,15558,3.318,15559,3.318,15560,3.318,15561,3.318,15562,3.318,15563,3.318,15564,3.318,15565,2.774,15566,3.318,15567,3.318,15568,3.318,15569,3.318,15570,3.318,15571,3.318,15572,3.318,15573,3.318]],["title/injectables/OauthProviderLoginFlowService.html",[105,0.889,12143,5.437]],["body/injectables/OauthProviderLoginFlowService.html",[0,0.235,3,0.018,4,0.018,5,0.01,7,0.106,8,1.135,27,0.444,29,0.849,30,0.001,31,0.6,32,0.15,33,0.535,35,1.135,36,2.043,47,0.778,95,0.166,101,0.013,103,0.001,104,0.001,105,1.239,107,1.652,111,2.138,112,2.398,116,4.012,127,1.19,154,3.148,158,6.558,167,3.59,187,0.988,201,3.616,209,2.377,216,1.977,217,1.413,221,2.216,227,1.129,234,1.12,305,1.986,347,2.179,361,6.321,369,1.522,777,5.246,839,3.241,1919,2.867,1993,4.72,2686,3.674,4458,5.117,4630,3.588,5472,5.674,5976,8.264,5985,6.321,6972,8.511,7038,8.363,7127,6.221,8359,8.725,8361,8.725,8423,6.378,8424,6.378,8582,6.032,9136,6.032,11022,5.246,12143,7.581,12155,9.257,14331,10.365,15574,11.484,15575,6.905,15576,9.405,15577,9.405,15578,6.905,15579,6.905,15580,9.405,15581,6.905,15582,9.405,15583,6.905,15584,6.378,15585,5.773,15586,6.905,15587,6.905,15588,6.905,15589,6.905,15590,6.905,15591,6.905,15592,6.905,15593,9.405,15594,6.905]],["title/injectables/OauthProviderLoginFlowUc.html",[105,0.889,15408,5.639]],["body/injectables/OauthProviderLoginFlowUc.html",[0,0.161,3,0.013,4,0.013,5,0.007,7,0.073,8,0.864,27,0.453,29,0.866,30,0.001,31,0.612,32,0.153,33,0.545,34,0.811,35,1.25,36,2.643,47,0.959,95,0.161,99,0.802,101,0.009,103,0,104,0,105,0.944,107,1.132,111,2.56,112,2.81,127,0.906,158,5.459,187,0.677,201,2.477,209,3.565,216,1.915,217,1.607,221,2.747,227,1.15,234,1.402,305,2.486,347,1.761,349,4.737,354,7.531,355,2.816,360,7.771,361,6.231,461,2.221,529,3.812,543,5.189,574,2.144,806,3.017,843,2.064,1016,1.689,1439,2.262,1952,6.073,2767,2.132,4216,8.824,4556,3.666,4561,2.517,4630,2.458,4640,6.961,5372,7.771,5378,4.814,6938,4.053,6972,3.506,6987,3.356,6989,4.536,7038,7.585,7126,4.896,7127,3.129,8382,3.954,8635,4.737,8712,5.631,8836,4.599,9081,7.733,9110,3.356,9136,4.132,9217,3.954,10826,7.551,10831,5.988,10838,7.551,10857,6.256,10869,7.531,10873,4.132,10886,5.442,10887,6.263,11022,3.594,12143,9.125,12144,8.601,12145,6.902,12155,9.397,12156,4.132,14086,6.263,14120,9.966,14250,4.369,14251,4.369,15076,4.369,15400,4.132,15408,5.988,15417,8.842,15421,3.813,15448,4.132,15459,3.954,15463,4.369,15468,9.107,15479,7.985,15516,3.954,15595,7.162,15596,4.73,15597,4.73,15598,4.73,15599,4.73,15600,4.73,15601,4.73,15602,4.73,15603,7.162,15604,4.73,15605,4.132,15606,4.73,15607,7.162,15608,4.73,15609,4.73,15610,7.162,15611,4.73,15612,4.73,15613,4.73,15614,4.73,15615,4.73,15616,4.73,15617,3.594,15618,4.73,15619,4.73,15620,4.73,15621,4.73,15622,4.73,15623,4.73,15624,4.73,15625,4.73]],["title/injectables/OauthProviderLogoutFlowUc.html",[105,0.889,15409,5.639]],["body/injectables/OauthProviderLogoutFlowUc.html",[0,0.306,3,0.024,4,0.024,5,0.013,7,0.139,8,1.349,27,0.465,29,0.888,30,0.001,31,0.628,32,0.157,33,0.559,35,1.087,36,2.642,47,0.884,95,0.156,101,0.017,103,0.001,104,0.001,105,1.473,107,2.155,127,1.14,187,1.289,215,2.914,216,1.665,217,1.189,227,0.95,361,6.694,4216,6.268,4556,4.61,8635,7.396,9081,9.457,9110,6.391,10887,6.525,15409,9.348,15417,9.499,15421,7.26,15448,7.867,15514,11.233,15626,11.181,15627,9.006,15628,11.181,15629,9.006,15630,11.181,15631,9.006]],["title/modules/OauthProviderModule.html",[425,1.808,15405,5.639]],["body/modules/OauthProviderModule.html",[0,0.246,3,0.019,4,0.019,5,0.01,30,0.001,95,0.173,101,0.014,103,0.001,104,0.001,187,1.034,209,2.488,361,3.978,425,2.934,427,2.671,428,2.817,429,2.905,430,2.892,431,2.867,432,4.046,433,4.128,438,5.934,442,3.899,443,2.842,444,2.77,449,3.899,450,2.973,1545,2.308,1973,8.445,1981,9.547,1982,6.313,4550,9.547,4551,8.186,4556,3.699,4560,5.491,4561,3.845,8627,9.815,8628,9.547,8635,4.78,8637,6.042,12135,11.343,12143,10.936,12155,5.826,12156,6.313,14327,10.505,15400,6.313,15405,11.852,15412,6.042,15460,6.676,15584,6.676,15585,6.042,15632,7.227,15633,7.227,15634,7.227,15635,7.227,15636,7.227,15637,7.227]],["title/classes/OauthProviderRequestMapper.html",[0,0.229,15605,5.892]],["body/classes/OauthProviderRequestMapper.html",[0,0.304,2,1.029,3,0.024,4,0.024,5,0.013,7,0.138,8,1.344,27,0.372,29,0.71,30,0.001,31,0.502,32,0.126,33,0.448,35,1.079,47,0.967,59,2.776,77,5.666,95,0.143,101,0.017,103,0.001,104,0.001,199,4.843,227,0.944,344,6.988,345,6.988,349,5.917,354,9.471,358,8.264,359,4.203,361,6.13,627,3.774,4556,5.7,4640,8.527,5812,7.211,8635,5.917,8712,8.266,9110,6.348,14120,10.726,15459,7.479,15516,9.309,15605,9.727,15638,12.124,15639,8.946,15640,8.946,15641,8.946,15642,8.946]],["title/injectables/OauthProviderResponseMapper.html",[105,0.889,15410,5.639]],["body/injectables/OauthProviderResponseMapper.html",[0,0.247,3,0.019,4,0.019,5,0.01,7,0.112,8,1.176,10,2.939,27,0.508,29,0.972,30,0.001,31,0.687,32,0.172,33,0.612,35,1.476,95,0.141,101,0.014,103,0.001,104,0.001,105,1.284,107,1.742,187,1.042,227,1.291,234,1.984,339,7.223,346,4.892,349,4.815,361,6.931,974,4.493,2211,6.35,4556,6.445,5421,9.459,5439,9.811,5465,9.811,8635,4.815,9106,8.502,9110,5.165,9118,9.003,9550,6.086,10885,8.697,10886,9.567,10887,8.502,10888,8.916,14086,8.502,15410,8.148,15459,6.086,15468,9.167,15516,10.527,15643,9.746,15644,9.746,15645,9.746,15646,9.746,15647,9.746,15648,9.746,15649,7.279,15650,9.746,15651,6.724,15652,9.746,15653,7.279,15654,9.746,15655,9.746,15656,7.279,15657,7.279,15658,7.279,15659,7.279,15660,7.279]],["title/classes/OauthProviderService.html",[0,0.229,9081,4.786]],["body/classes/OauthProviderService.html",[0,0.164,2,0.556,3,0.013,4,0.013,5,0.007,7,0.074,8,0.878,9,6.767,27,0.543,29,1.03,30,0.001,31,0.728,32,0.182,33,0.649,34,1.502,35,1.577,36,3.01,47,1.03,55,2.416,56,3.503,58,5.546,59,3.244,95,0.062,100,1.617,101,0.009,103,0,104,0,163,3.073,277,3.504,335,7.856,337,8.993,351,2.388,354,7.613,461,1.677,543,6.308,3544,3.636,4216,7.936,5468,6.653,9081,5.165,9106,8.261,9574,6.214,10825,6.358,10826,6.358,10827,6.358,10828,6.085,10829,6.085,10830,6.085,10831,6.085,10832,6.085,10833,6.724,10834,9.003,10835,6.085,10836,7.321,10837,6.358,10838,6.358,10839,6.085,10840,6.085,10842,6.358,10844,6.724,10846,6.724,10848,6.724,10850,6.724,10855,6.358,10857,6.358,10859,6.724,10861,6.724,10864,6.724,10866,4.464,10869,8.907,10871,6.358,10873,6.358,10879,6.724,10881,6.724,10884,4.04,10885,3.581,10886,3.672,10887,3.501,10888,3.672,15412,10.999,15661,4.832,15662,4.832,15663,4.832,15664,4.832,15665,4.832,15666,4.832,15667,4.832,15668,4.832,15669,4.832,15670,4.832,15671,4.832,15672,4.832,15673,4.832,15674,4.832,15675,4.832,15676,4.832,15677,4.832]],["title/modules/OauthProviderServiceModule.html",[425,1.808,8627,5.269]],["body/modules/OauthProviderServiceModule.html",[0,0.316,3,0.025,4,0.025,5,0.013,30,0.001,95,0.165,101,0.018,103,0.001,104,0.001,187,1.331,337,6.355,425,3.306,427,3.436,428,3.624,429,3.737,430,3.721,431,3.688,432,4.215,433,4.651,442,4.584,443,3.656,444,3.564,449,3.737,836,5.366,1266,5.313,3956,7.664,4556,4.759,8221,7.064,8627,10.309,8635,7.542,9081,9.748,10822,9.961,10891,8.588,15412,9.534,15678,9.297,15679,9.297,15680,9.297,15681,9.297]],["title/injectables/OauthProviderUc.html",[105,0.889,15411,5.639]],["body/injectables/OauthProviderUc.html",[0,0.282,3,0.022,4,0.022,5,0.012,7,0.127,8,1.28,26,2.767,27,0.486,29,0.929,30,0.001,31,0.657,32,0.164,33,0.585,35,1.28,36,2.918,39,2.843,47,0.851,95,0.158,99,1.405,101,0.016,103,0.001,104,0.001,105,1.398,107,1.982,127,1.048,187,1.186,215,2.68,216,1.531,217,1.401,227,1.119,361,6.791,4556,4.24,5472,6.096,8635,7.016,9081,9.258,9110,5.878,10835,8.868,10839,8.868,10888,6.294,15411,8.868,15417,9.638,15421,6.677,15565,8.868,15682,8.283,15683,8.283,15684,10.607,15685,8.283,15686,10.607,15687,8.283,15688,8.283,15689,8.283]],["title/controllers/OauthSSOController.html",[481,2.629,15233,5.892]],["body/controllers/OauthSSOController.html",[0,0.116,3,0.009,4,0.009,5,0.005,7,0.052,8,0.667,27,0.432,29,0.827,30,0.001,31,0.584,32,0.151,33,0.521,35,1.256,36,2.402,47,0.896,52,3.239,55,0.748,59,1.056,95,0.163,100,1.139,101,0.006,103,0,104,0,111,2.346,112,2.705,127,0.431,145,0.878,148,1.71,150,2.027,185,2.734,187,0.487,204,3.69,216,1.487,217,1.573,221,1.646,227,0.737,234,1.745,264,2.341,305,2.313,334,0.374,346,8.654,347,1.126,351,1.681,355,3.162,364,1.639,367,3.87,371,0.938,376,0.798,379,1.609,447,1.426,460,1.944,461,2.184,481,1.326,483,1.637,491,4.902,511,1.742,513,5.327,529,5.647,554,3.502,555,1.796,556,1.841,557,1.857,559,1.857,561,3.811,784,3.686,806,2.329,1016,4.401,1052,1.387,1053,2.452,1062,2.413,1114,2.243,1158,3.716,1159,2.972,1439,3.34,1545,1.087,1680,2.326,1683,5.886,1693,2.845,1711,2.845,1887,2.1,1995,8.638,2038,3.779,2171,1.462,2172,1.627,2173,1.569,2211,2.217,2578,3.602,2769,1.681,3145,2.585,3710,3.332,3898,1.857,4556,4.528,4561,2.942,4808,2.326,4809,2.585,5382,1.944,5512,2.585,6489,8.605,6491,2.027,6706,2.127,6987,7.385,8836,2.185,9870,3.143,9935,6.556,10923,4.622,10950,5.706,10951,2.972,10952,2.585,10953,2.465,12303,3.143,13464,4.098,13467,2.845,13474,3.923,14925,2.743,14988,6.482,14989,3.143,15008,5.839,15027,2.845,15037,6.451,15160,3.143,15231,5.839,15233,4.83,15366,7.64,15378,2.972,15383,10.956,15385,2.972,15386,2.972,15415,3.143,15690,10.758,15691,3.402,15692,5.529,15693,6.984,15694,6.451,15695,5.529,15696,6.984,15697,5.529,15698,6.984,15699,5.529,15700,3.402,15701,3.402,15702,6.282,15703,7.025,15704,5.529,15705,3.402,15706,3.402,15707,7.025,15708,3.402,15709,3.402,15710,3.402,15711,3.402,15712,5.529,15713,3.402,15714,3.402,15715,5.529,15716,3.402,15717,3.402,15718,3.402,15719,3.402,15720,5.529,15721,3.402,15722,3.402,15723,5.529,15724,3.402,15725,4.622,15726,3.402,15727,3.143,15728,3.402,15729,3.402,15730,2.972,15731,5.529,15732,3.402,15733,2.972,15734,3.402,15735,2.743,15736,3.402,15737,3.402,15738,3.402,15739,3.402,15740,3.402,15741,3.402,15742,6.984,15743,3.402,15744,5.529,15745,5.529,15746,5.529,15747,3.402,15748,3.402,15749,3.402,15750,3.402,15751,5.529,15752,3.402,15753,3.402,15754,5.529,15755,5.529,15756,3.402,15757,3.402,15758,3.143,15759,3.402,15760,9.478,15761,3.402,15762,5.529,15763,5.107,15764,3.143,15765,3.402,15766,3.402,15767,3.402,15768,3.402,15769,3.402,15770,5.529,15771,5.529,15772,3.402,15773,5.107,15774,5.107,15775,5.529,15776,5.529,15777,2.972,15778,3.402,15779,2.972,15780,3.402,15781,2.972,15782,2.972,15783,2.972,15784,3.402,15785,3.402,15786,3.402,15787,3.402,15788,3.402,15789,3.402,15790,5.529,15791,5.529,15792,3.402,15793,3.402,15794,5.529,15795,3.402,15796,3.402,15797,3.402,15798,3.402,15799,3.402,15800,3.402,15801,3.402,15802,3.402,15803,3.402,15804,3.402,15805,3.402]],["title/interfaces/OauthTokenResponse.html",[334,0.742,15077,5.437]],["body/interfaces/OauthTokenResponse.html",[3,0.027,4,0.027,5,0.014,7,0.154,30,0.001,32,0.179,47,1.018,101,0.019,103,0.001,104,0.001,165,0.941,334,1.099,336,2.433,352,11.509,353,10.621,15009,9.228,15077,9.6,15433,12.171,15806,9.228]],["title/injectables/OauthUc.html",[105,0.889,15231,5.639]],["body/injectables/OauthUc.html",[0,0.143,3,0.011,4,0.011,5,0.006,7,0.065,8,0.792,26,2.267,27,0.409,29,0.781,30,0.001,31,0.552,32,0.138,33,0.492,35,1.096,36,2.442,39,1.131,47,0.953,48,5.807,52,4.83,59,2.498,95,0.168,99,0.716,101,0.008,102,3.31,103,0,104,0,105,0.865,107,1.009,111,2.403,112,2.737,127,0.83,145,1.089,163,1.33,167,1.611,187,0.604,189,3.678,204,3.115,216,2.077,217,1.684,221,2.876,227,0.958,234,1.473,305,1.887,334,0.464,346,4.409,347,1.64,355,4.274,425,1.758,460,6.975,461,2.092,491,3.22,513,2.16,529,3.55,559,2.302,738,2.435,982,2.114,1016,2.342,1052,3.28,1053,4.026,1114,3.684,1253,4.187,1545,1.348,1555,2.637,1627,8.056,1645,3.127,1683,5.352,1703,4.409,1991,3.549,1995,7.093,2008,4.213,2038,2.884,2211,5.244,3145,3.206,4449,8.056,4457,4.851,4556,2.16,4561,4.832,4640,6.611,5382,4.6,6047,4.274,6706,2.637,6938,3.713,8836,2.709,10932,3.686,10933,7.912,10953,5.833,10955,3.686,11024,5.485,11083,5.537,11270,3.127,11616,5.833,12145,6.628,12617,4.566,13474,6.444,13622,3.897,14524,3.527,15008,5.485,15044,8.491,15045,7.876,15046,8.491,15058,8.394,15070,3.296,15071,3.686,15072,4.409,15080,3.686,15085,3.897,15086,3.401,15104,5.485,15119,6.061,15161,3.897,15162,3.897,15163,5.731,15164,5.731,15231,5.485,15366,9.06,15383,7.932,15385,3.686,15386,3.686,15730,3.686,15735,3.401,15758,3.897,15763,6.061,15764,3.897,15773,3.897,15774,3.897,15807,4.219,15808,5.731,15809,6.561,15810,6.561,15811,8.05,15812,4.219,15813,6.561,15814,4.219,15815,3.897,15816,10.414,15817,4.219,15818,6.061,15819,6.561,15820,4.219,15821,4.219,15822,4.219,15823,3.897,15824,3.206,15825,4.219,15826,4.219,15827,4.219,15828,4.219,15829,4.219,15830,4.219,15831,4.219,15832,6.561,15833,4.219,15834,4.219,15835,4.219,15836,3.686,15837,7.032,15838,3.897,15839,3.897,15840,3.897,15841,4.219,15842,3.897,15843,3.897,15844,4.219,15845,4.219]],["title/interfaces/OcsResponse.html",[334,0.742,10745,4.999]],["body/interfaces/OcsResponse.html",[3,0.024,4,0.024,5,0.013,7,0.139,30,0.001,32,0.171,34,1.552,47,0.97,55,2.68,101,0.026,103,0.001,104,0.001,138,4.868,163,2.852,165,0.886,334,1.489,336,2.203,347,1.843,564,3.357,692,3.37,1289,5.809,1293,6.08,1327,3.573,3091,4.124,4477,6.08,6461,5.73,10742,6.705,10743,6.874,10744,6.705,10745,8.31,10746,9.678,10747,9.031,10748,6.874,10749,6.874,10750,6.705,10751,6.874,10752,6.419,10753,6.705,10754,6.874,10755,6.705]],["title/classes/OidcConfig.html",[0,0.229,11847,4.694]],["body/classes/OidcConfig.html",[0,0.313,2,0.498,3,0.011,4,0.011,5,0.006,7,0.067,26,1.397,27,0.483,29,0.344,30,0.001,31,0.243,32,0.17,33,0.217,47,1.032,83,2.463,95,0.118,96,1.171,101,0.019,103,0,104,0,127,0.548,150,3.002,165,0.529,208,1.608,216,0.801,240,4.407,277,1.734,334,0.477,347,0.883,359,1.502,364,2.101,369,2.916,370,4.413,371,1.194,379,0.998,380,1.712,398,1.269,399,2.622,400,1.901,402,1.782,404,0.785,405,1.171,406,1.388,496,1.825,722,1.911,775,2.642,783,2.611,1031,2.623,1114,1.758,1252,2.582,1576,2.611,1659,3.075,1691,2.674,2113,5.185,2138,3.211,2618,3.428,2621,2.046,4293,3.623,4331,4.752,4556,3.428,5236,2.708,5472,4.551,5602,3.355,5621,2.744,5622,2.962,6090,3.72,6359,2.642,6992,2.782,7078,2.912,7134,5.551,8597,2.912,9975,2.407,10947,6.76,11026,3.211,11027,3.211,11028,3.211,11029,3.292,11072,2.962,11075,2.866,11077,2.962,11080,2.962,11083,2.642,11087,2.912,11477,3.292,11590,2.866,11733,3.075,11843,5.089,11844,3.493,11845,4.43,11846,7.627,11847,8.274,11848,4.186,11849,4.661,11850,5.333,11851,2.866,11852,2.866,11853,3.493,11854,4.578,11855,4.964,11856,3.385,11857,4.964,11858,3.292,11859,3.292,11860,3.292,11861,3.292,11862,3.385,11863,3.292,11864,3.292,11865,3.292,11866,3.385,11867,4.964,11868,3.385,11869,3.292,11870,3.385,11871,3.292,11872,3.292,11873,3.292,11874,3.385,11875,6.296,11876,3.493,11877,3.493,11878,3.493,11879,3.493,11880,3.493,11881,3.493,11882,3.493,11883,3.493,11884,3.493,11885,3.493,11886,3.493,11887,3.493,11888,3.385,11889,3.493,11890,3.493,11891,3.493,11892,3.493,11893,3.493,11894,3.493,11895,3.493,11896,3.493,11897,3.493,11898,3.493,11899,3.493,11900,3.493,11901,3.493,11902,3.493,11903,3.493,11904,3.493,11905,3.493,11906,3.211,11907,3.493,11908,3.493,11909,3.493,11910,3.493,11911,3.493,11912,3.493,11913,3.493,11914,3.493,11915,3.493,11916,3.493,11917,3.493,11918,3.493,11919,3.493,11920,5.399,11921,3.292,11922,3.493,11923,3.211,11924,3.385,11925,3.292,11926,3.385,11927,3.292,11928,3.292,11929,3.385,11930,3.292,11931,3.385,11932,3.292,11933,5.931,11934,5.931,11935,5.931,11936,6.067,11937,3.292,11938,3.493,11939,3.292,11940,3.493,11941,3.493,11942,3.493,11943,3.493,11944,3.493,11945,3.292,11946,3.385,11947,3.292,11948,3.385,15846,4.333,15847,4.333,15848,4.333,15849,4.333,15850,4.333,15851,4.333,15852,4.333,15853,4.333,15854,4.333]],["title/classes/OidcConfigDto.html",[0,0.229,12869,5.269]],["body/classes/OidcConfigDto.html",[0,0.268,2,0.908,3,0.021,4,0.021,5,0.011,7,0.121,27,0.564,29,0.627,30,0.001,31,0.443,32,0.19,33,0.395,47,1.023,101,0.015,103,0.001,104,0.001,127,0.999,165,0.812,2113,7.243,2138,5.85,5472,5.65,7134,6.891,11854,5.396,11855,5.85,11857,5.85,11875,7.817,11924,6.166,11926,6.166,11929,6.166,11931,6.166,11933,8.285,11934,8.285,11935,8.285,11936,8.475,12869,10.061,15290,7.291,15292,7.291,15293,7.291,15298,7.291,15299,7.291,15300,7.291,15302,7.291,15303,7.291,15855,13.665,15856,10.563,15857,10.281,15858,7.893,15859,7.893,15860,7.893,15861,7.893,15862,7.893,15863,7.893,15864,7.893,15865,7.893,15866,7.893,15867,7.893,15868,7.893,15869,7.893,15870,7.893]],["title/classes/OidcContextResponse.html",[0,0.229,5448,5.639]],["body/classes/OidcContextResponse.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,27,0.534,30,0.001,32,0.18,33,0.695,47,0.982,95,0.138,101,0.016,103,0.001,104,0.001,165,0.853,187,1.218,359,3.741,361,7.233,364,2.383,376,1.996,467,3.691,5448,9.022,5461,11.478,15871,8.511,15872,10.947,15873,9.552,15874,10.947,15875,10.947,15876,10.947,15877,8.511,15878,8.511,15879,8.511,15880,8.511,15881,8.511,15882,8.511]],["title/classes/OidcIdentityProviderMapper.html",[0,0.229,12834,5.639]],["body/classes/OidcIdentityProviderMapper.html",[0,0.278,2,0.939,3,0.022,4,0.022,5,0.012,7,0.126,8,1.268,27,0.437,29,0.835,30,0.001,31,0.59,32,0.147,33,0.526,35,0.985,47,0.845,95,0.167,101,0.016,103,0.001,104,0.001,111,1.633,116,3.761,127,1.033,154,3.722,187,1.169,216,1.509,227,0.862,355,3.211,369,2.317,839,3.833,1415,4.921,2113,5.172,5472,4.035,5602,4.091,7134,4.921,8108,8.614,8636,5.683,9083,8.891,10351,4.921,11439,6.642,11500,7.174,11845,5.401,11847,5.683,11921,6.204,11923,7.789,11925,6.204,11927,6.204,11928,6.204,11930,6.204,11932,6.204,11933,5.916,11934,5.916,11935,5.916,12755,6.052,12834,8.787,12869,9.586,12883,10.736,12898,7.543,12900,6.582,12904,11.336,12908,6.582,12928,7.543,12999,7.543,15266,7.543,15883,11.622,15884,8.165,15885,10.51,15886,8.165,15887,8.165,15888,10.51,15889,8.165,15890,8.165,15891,8.165,15892,8.165,15893,8.165,15894,8.165,15895,8.165,15896,8.165,15897,8.165]],["title/injectables/OidcMockProvisioningStrategy.html",[105,0.889,15898,5.639]],["body/injectables/OidcMockProvisioningStrategy.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.196,27,0.462,29,0.787,30,0.001,31,0.557,32,0.139,33,0.496,35,1.343,36,2.576,47,0.543,95,0.163,100,2.5,101,0.014,103,0.001,104,0.001,105,1.306,107,1.787,112,2.496,163,2.355,167,2.851,187,1.069,217,1.47,227,1.174,234,1.805,305,2.148,348,6.663,369,1.646,404,1.795,596,3.379,854,3.768,1114,3.03,1648,5.535,1683,4.402,1708,5.411,1813,7.183,2180,6.28,2309,4.187,6863,8.289,8291,5.02,9332,8.064,10950,5.3,10952,5.675,11156,6.119,11476,6.244,11848,7.928,11850,7.251,11851,4.94,11852,4.94,12613,7.745,12614,9.557,12616,7.992,12617,8.828,12621,7.992,12622,8.787,12625,6.524,12626,7.533,12627,6.524,12630,6.899,12632,6.524,12633,6.899,12645,7.992,12649,6.02,12650,6.524,12651,6.899,15086,6.02,15898,8.289,15899,7.468,15900,7.468,15901,7.468,15902,7.468,15903,6.524,15904,7.468,15905,6.899,15906,9.914,15907,7.468]],["title/injectables/OidcProvisioningService.html",[105,0.889,15908,5.437]],["body/injectables/OidcProvisioningService.html",[0,0.128,3,0.01,4,0.01,5,0.005,7,0.058,8,0.722,26,2.379,27,0.386,29,0.739,30,0.001,31,0.606,32,0.139,33,0.465,34,1.027,35,1.027,36,2.417,39,1.604,47,0.756,48,6.108,49,1.464,51,1.855,59,1.165,64,4.548,95,0.16,99,0.637,100,1.257,101,0.007,103,0,104,0,105,0.789,107,0.898,111,2.328,112,2.658,127,0.757,129,5.255,132,4.792,145,1.544,167,4.12,187,0.537,189,5.555,191,3.324,192,2.772,200,1.223,216,1.995,217,1.646,221,2.907,227,1.097,234,1.85,247,1.489,284,2.263,305,1.08,322,3.027,369,1.645,371,1.035,383,2.446,461,2.283,734,2.167,738,3.455,818,7.533,851,1.843,852,1.843,853,1.908,854,3.765,883,2.509,905,1.559,956,2.446,1052,4.237,1277,4.796,1542,1.752,1545,1.199,1644,3.28,1807,2.933,1808,2.783,1812,2.664,1919,1.559,1993,2.567,2485,1.622,3060,2.664,3091,3.402,3110,3.615,3852,2.567,4092,2.567,4150,2.484,4227,3.411,4507,6.169,4518,2.933,4539,2.933,4561,1.998,4621,7.899,4635,2.783,6359,5.671,6367,2.524,6414,2.72,6938,5.608,6942,6.041,6945,3.027,6949,3.139,8266,7.899,8278,4.675,8280,3.139,8298,6.31,8300,2.347,8306,5.407,8599,4.675,8836,3.843,9332,6.169,9464,8.692,9473,3.139,9474,2.853,9475,5.813,9975,2.086,10577,8.848,10579,3.139,10580,3.139,10581,6.239,10667,8.692,11695,2.613,12145,6.042,12173,2.853,12645,3.027,12647,3.139,13139,2.783,13140,2.72,13337,5.004,13338,3.468,13532,8.692,14166,3.139,14219,3.027,15093,6.894,15908,4.825,15909,9.909,15910,3.755,15911,5.985,15912,5.985,15913,5.985,15914,5.985,15915,3.755,15916,5.985,15917,3.755,15918,5.985,15919,5.985,15920,3.755,15921,5.985,15922,3.755,15923,5.985,15924,3.755,15925,3.755,15926,3.755,15927,3.28,15928,3.28,15929,8.591,15930,5.985,15931,5.985,15932,3.468,15933,5.985,15934,5.985,15935,3.468,15936,3.755,15937,3.755,15938,3.755,15939,3.755,15940,3.28,15941,5.985,15942,3.468,15943,8.514,15944,3.468,15945,3.755,15946,3.28,15947,3.755,15948,7.463,15949,5.985,15950,3.755,15951,5.985,15952,3.755,15953,5.985,15954,3.755,15955,3.468,15956,3.755,15957,3.755,15958,5.985,15959,5.529,15960,3.755,15961,3.755,15962,3.755,15963,3.755,15964,3.755,15965,3.755,15966,5.985,15967,3.755,15968,5.985,15969,5.985,15970,5.985,15971,3.755,15972,3.755,15973,3.755,15974,3.755,15975,3.755,15976,3.755,15977,3.755,15978,3.755,15979,3.755,15980,3.755,15981,3.755,15982,3.755,15983,3.755,15984,5.985,15985,3.755,15986,5.985,15987,3.755]],["title/injectables/OidcProvisioningStrategy.html",[105,0.889,15988,5.892]],["body/injectables/OidcProvisioningStrategy.html",[0,0.252,3,0.02,4,0.02,5,0.01,7,0.114,8,1.189,9,5.883,27,0.491,29,0.88,30,0.001,31,0.622,32,0.155,33,0.554,35,1.337,36,2.407,95,0.162,99,1.255,100,2.477,101,0.014,103,0.001,104,0.001,105,1.298,107,1.77,112,2.484,127,0.936,145,1.909,163,2.333,187,1.059,189,5.524,192,2.937,216,1.368,217,0.977,221,2.611,227,0.781,234,1.2,284,4.46,404,1.784,406,2.371,461,2.27,596,3.363,1919,3.072,1991,4.003,1993,5.058,2171,3.18,2172,3.539,2173,3.412,2180,4.687,2309,4.148,2435,4.973,3898,4.038,6461,4.687,6938,5.576,8291,4.973,11156,6.082,11848,7.908,11850,4.821,12613,7.697,12614,8.93,12616,7.943,12617,8.222,12621,5.965,12622,7.303,12626,7.487,12627,6.464,12658,6.464,15086,5.965,15836,6.464,15903,6.464,15908,10.198,15988,8.608,15989,7.4,15990,7.4,15991,7.4,15992,7.4,15993,7.4,15994,7.4,15995,6.464,15996,7.4,15997,10.234,15998,7.4,15999,7.4,16000,7.4,16001,6.836,16002,7.4,16003,7.4,16004,7.4,16005,7.4]],["title/interfaces/Options.html",[334,0.742,701,2.355]],["body/interfaces/Options.html",[0,0.22,3,0.017,4,0.017,5,0.009,7,0.1,30,0.001,32,0.145,33,0.624,36,2.246,47,0.752,95,0.133,101,0.021,103,0.001,104,0.001,111,1.294,112,2.318,145,2.667,163,2.04,165,0.711,215,2.094,217,1.679,221,2.633,227,1.091,334,0.712,336,1.576,347,2.476,368,4.412,369,1.427,371,3.079,379,2.929,443,2.545,701,4.354,721,4.825,1910,5.74,2180,7.698,2835,3.856,3247,3.9,3262,5.622,3445,5.653,3448,6.045,3451,5.217,3457,8.848,3458,7.077,3459,3.856,3461,5.055,3462,5.86,3542,3.338,5483,5.217,5485,5.653,7644,5.411,7645,5.978,7648,5.217,7649,8.076,7651,5.978,7652,6.813,7653,9.739,7654,7.52,7656,5.978,7657,7.336,7659,8.076,7660,7.662,7661,4.504,7662,4.917,7664,5.653,7665,5.411,7666,10.846,7667,8.728,7668,6.733,7669,8.309,7670,5.653,7671,8.309,7672,8.309,7673,5.978,7674,5.978,7675,5.978,7676,9.341,7677,8.309,7678,9.55,7679,4.424,7680,7.857,7681,5.978,7682,5.978,7683,5.653]],["title/classes/Page.html",[0,0.229,1014,3.31]],["body/classes/Page.html",[0,0.325,2,1.1,3,0.025,4,0.025,5,0.014,7,0.147,27,0.519,29,0.759,30,0.001,31,0.537,32,0.175,33,0.478,55,2.925,101,0.018,103,0.001,104,0.001,127,1.21,163,4.194,165,0.917,692,4.955,1008,7.467,1009,6.629,1014,5.693,1026,5.311,16006,9.562,16007,11.6,16008,9.562,16009,8.833]],["title/classes/PageContentDto.html",[0,0.229,16010,5.269]],["body/classes/PageContentDto.html",[0,0.321,2,1.084,3,0.025,4,0.025,5,0.013,7,0.145,27,0.516,29,0.749,30,0.001,31,0.529,32,0.174,33,0.472,47,0.939,101,0.018,103,0.001,104,0.001,127,1.193,165,0.909,355,5.081,405,3.108,595,3.257,4442,5.699,16010,10.35,16011,12.921,16012,9.428,16013,10.376,16014,10.376,16015,11.501,16016,9.428,16017,8.709,16018,8.709,16019,8.709,16020,8.709]],["title/injectables/PageContentMapper.html",[105,0.889,16021,5.639]],["body/injectables/PageContentMapper.html",[0,0.317,3,0.025,4,0.025,5,0.013,7,0.143,8,1.378,27,0.387,29,0.74,30,0.001,31,0.523,32,0.131,33,0.466,35,1.124,95,0.158,100,3.119,101,0.018,103,0.001,104,0.001,105,1.505,107,2.23,187,1.334,217,1.231,227,0.983,234,1.511,355,4.49,982,4.668,1016,4.077,4442,5.036,14480,9.975,14481,9.975,16010,10.054,16013,7.791,16014,7.791,16021,9.547,16022,11.419,16023,9.319,16024,9.319,16025,11.04,16026,9.319,16027,8.608,16028,9.319,16029,9.319]],["title/classes/PageContentQueryParams.html",[0,0.229,16030,5.892]],["body/classes/PageContentQueryParams.html",[0,0.368,2,0.983,3,0.023,4,0.032,5,0.012,7,0.131,27,0.493,30,0.001,32,0.187,47,0.907,95,0.152,101,0.016,103,0.001,104,0.001,165,0.855,355,4.908,364,2.2,374,2.73,376,2.004,379,2.736,467,3.354,1000,5.077,1013,5.444,1014,5.311,1044,4.195,1114,4.389,2744,4.824,4442,5.505,6908,8.222,9713,6.193,16030,9.452,16031,12.481,16032,8.547,16033,10.372,16034,9.571,16035,9.571,16036,10.903,16037,8.547,16038,8.547,16039,10.82,16040,8.547,16041,8.547,16042,7.466,16043,8.547]],["title/classes/PageContentResponse.html",[0,0.229,16025,5.639]],["body/classes/PageContentResponse.html",[0,0.3,2,1.015,3,0.023,4,0.023,5,0.012,7,0.136,27,0.501,29,0.701,30,0.001,31,0.496,32,0.169,33,0.442,47,0.918,95,0.113,101,0.017,103,0.001,104,0.001,127,1.117,150,4.631,165,0.872,355,4.965,364,2.046,376,2.07,379,2.544,405,2.984,467,3.239,595,3.05,1013,5.063,4442,5.569,16013,10.075,16014,10.075,16017,8.155,16018,8.155,16019,8.155,16020,8.155,16025,10.869,16044,12.627,16045,8.828,16046,11.043,16047,11.043,16048,11.665,16049,11.043,16050,8.828]],["title/classes/PaginationParams.html",[0,0.229,1028,4.786]],["body/classes/PaginationParams.html",[0,0.372,2,1,3,0.023,4,0.023,5,0.012,7,0.134,27,0.454,30,0.001,32,0.154,33,0.628,55,2.905,56,6.229,70,5.995,95,0.14,101,0.017,103,0.001,104,0.001,144,2.989,165,0.864,247,4.339,329,3.222,364,2.027,374,2.777,375,4.855,376,2.039,379,2.52,905,4.542,907,8.741,1014,5.368,1020,7.235,1028,7.762,1034,8.032,1035,7.613,1036,9.145,1037,9.555,1038,10.104,1040,8.032,1041,6.076,1042,9.145,3437,6.17,3442,6.3,3493,7.269,5419,9.647,16051,8.694,16052,8.694,16053,8.694,16054,8.694,16055,8.694]],["title/classes/PaginationResponse.html",[0,0.229,1007,4.163]],["body/classes/PaginationResponse.html",[0,0.261,2,0.882,3,0.02,4,0.02,5,0.011,7,0.118,9,5.729,27,0.517,29,0.609,30,0.001,31,0.43,32,0.191,33,0.623,55,3.105,56,6.269,59,3.13,70,6.525,95,0.098,101,0.015,103,0.001,104,0.001,127,0.97,163,3.555,165,0.797,364,2.219,376,1.798,379,2.76,467,3.345,692,3.758,1007,6.227,1008,7.108,1013,5.492,1014,5.879,1015,5.604,1016,3.602,1018,7.804,1019,7.451,1020,6.673,1021,5.368,4586,7.022,16009,7.083,16056,7.667,16057,10.088,16058,7.667,16059,7.667,16060,7.667,16061,7.667,16062,7.667,16063,7.667,16064,7.667]],["title/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.229,203,5.892]],["body/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.294,2,0.993,3,0.023,4,0.023,5,0.012,7,0.133,8,1.314,27,0.453,29,0.686,30,0.001,31,0.485,32,0.185,33,0.432,35,1.042,47,0.868,95,0.14,101,0.016,103,0.001,104,0.001,108,6.887,127,1.093,163,2.724,187,1.237,200,2.814,203,9.516,209,2.974,214,3.597,215,2.795,216,1.597,227,0.912,290,4.986,404,1.973,406,2.768,1132,6.964,1327,3.412,1542,5.568,1543,6.201,1545,2.759,1547,6.233,3218,7.892,8137,6.201,8138,6.455,8530,5.547,8537,5.091,8538,5.332,8546,7.222,8547,7.222,16065,11.932,16066,11.932,16067,8.638,16068,11.932,16069,8.638,16070,8.638,16071,8.638]],["title/classes/PatchGroupParams.html",[0,0.229,7229,5.892]],["body/classes/PatchGroupParams.html",[0,0.387,2,1.067,3,0.025,4,0.025,5,0.013,7,0.143,27,0.385,30,0.001,31,0.639,32,0.13,47,0.828,95,0.158,100,3.811,101,0.018,103,0.001,104,0.001,165,0.9,364,1.719,374,2.963,376,2.175,379,2.624,467,3.06,469,4.091,470,4.797,1277,6.627,1474,4.476,2594,5.667,6701,8.784,6916,7.477,6918,8.439,7229,9.947,16072,9.947,16073,9.276,16074,9.947,16075,9.276]],["title/classes/PatchMyAccountParams.html",[0,0.229,547,5.892]],["body/classes/PatchMyAccountParams.html",[0,0.317,2,0.785,3,0.018,4,0.018,5,0.01,7,0.105,27,0.497,30,0.001,31,0.641,32,0.168,33,0.644,47,0.96,87,5.912,95,0.147,101,0.013,103,0.001,104,0.001,165,0.737,234,2.088,364,2.217,368,5.217,369,2.912,370,4.406,371,3.64,374,2.179,376,1.6,379,2.757,461,3.044,467,3.32,468,7.287,469,3.009,470,5.04,471,5.09,472,4.586,473,8.149,474,5.704,475,3.418,476,5.704,479,5.057,547,8.149,575,5.559,851,5.217,852,5.217,853,6.08,1113,7.52,1145,7.799,1865,4.885,2951,5.559,4586,9.194,5394,7.287,16076,11.411,16077,6.823,16078,10.629,16079,10.629,16080,6.823,16081,6.823,16082,6.823,16083,6.823,16084,6.823,16085,6.823,16086,8.149,16087,6.823]],["title/classes/PatchMyPasswordParams.html",[0,0.229,518,5.892]],["body/classes/PatchMyPasswordParams.html",[0,0.367,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,27,0.448,30,0.001,32,0.151,47,0.906,87,6.787,95,0.16,101,0.016,103,0.001,104,0.001,165,0.853,234,2.021,364,1.999,368,4.921,369,2.747,370,4.157,371,3.434,374,2.718,376,1.996,379,2.486,461,2.871,467,3.185,468,9.257,469,3.754,470,4.992,472,5.72,474,7.115,475,4.264,476,9.022,518,9.427,577,6.05,11485,7.998,16076,10.947,16088,8.511,16089,11.85,16090,10.791,16091,10.791,16092,8.511,16093,8.511]],["title/classes/PatchOrderParams.html",[0,0.229,16094,5.892]],["body/classes/PatchOrderParams.html",[0,0.386,2,1.062,3,0.024,4,0.024,5,0.013,7,0.142,27,0.384,30,0.001,32,0.13,47,0.826,95,0.146,100,3.801,101,0.018,103,0.001,104,0.001,165,0.897,234,1.842,364,1.711,369,2.035,374,2.949,376,2.165,379,2.616,467,3.051,770,6.692,1000,4.855,1041,7.316,1925,5.901,1984,4.855,2185,7.26,2489,5.276,3872,7.762,4082,7.443,5418,7.192,16072,9.919,16074,9.919,16094,9.919,16095,9.233,16096,9.233,16097,10.489,16098,9.233]],["title/classes/PatchVisibilityParams.html",[0,0.229,16099,5.892]],["body/classes/PatchVisibilityParams.html",[0,0.39,2,1.082,3,0.025,4,0.025,5,0.013,7,0.145,27,0.391,30,0.001,32,0.132,95,0.147,100,3.844,101,0.018,103,0.001,104,0.001,165,0.907,347,2.34,364,1.743,369,2.532,371,3.165,373,6.062,374,3.004,376,2.205,379,2.646,467,3.086,1984,4.91,2594,5.694,4109,11.566,4825,7.179,4826,7.375,6925,8.216,16072,10.032,16074,10.032,16099,10.032,16100,9.406,16101,9.406]],["title/injectables/PermissionService.html",[105,0.889,440,5.639]],["body/injectables/PermissionService.html",[0,0.232,3,0.018,4,0.018,5,0.01,7,0.105,8,1.283,27,0.442,29,0.844,30,0.001,31,0.597,32,0.149,33,0.532,35,1.379,47,0.936,95,0.136,101,0.013,102,4.706,103,0.001,104,0.001,105,1.229,107,1.632,111,2.125,187,0.977,217,1.509,227,1.206,234,1.513,235,5.279,247,4.216,264,2.888,305,1.963,347,1.9,371,1.88,440,8.887,461,3.137,496,5.204,569,6.27,571,5.831,574,4.228,766,2.932,1019,3.979,1866,6.016,1912,6.303,1914,6.303,1915,6.303,1916,6.125,1919,2.833,1921,6.17,1926,6.303,1927,6.303,1952,5.004,1991,3.691,2477,5.758,3110,5.535,4083,6.265,4628,6.17,5402,7.52,7653,7.287,9141,7.287,9404,8.149,9999,8.617,11672,7.52,11674,5.5,11681,5.5,16102,6.823,16103,9.328,16104,9.328,16105,9.328,16106,6.823,16107,9.328,16108,6.823,16109,9.328,16110,9.328,16111,8.617,16112,9.328,16113,6.823,16114,6.823,16115,6.823,16116,6.823,16117,6.823,16118,6.823,16119,9.328,16120,6.823,16121,9.328,16122,6.823,16123,6.823]],["title/interfaces/PlainTextMailContent.html",[334,0.742,1572,4.999]],["body/interfaces/PlainTextMailContent.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,31,0.487,32,0.153,33,0.546,47,1.032,77,5.495,101,0.017,103,0.001,104,0.001,165,0.863,334,1.475,336,2.113,404,2.342,1560,8.096,1561,6.592,1562,8.861,1563,8.3,1564,6.592,1565,4.819,1566,8.096,1567,6.286,1568,6.592,1569,6.286,1570,9.3,1571,6.592,1572,8.861,1573,9.827,1574,9.827,1575,8.096,1576,6.583,1577,6.43,1578,6.43,1579,6.592,1580,6.592]],["title/interfaces/PreviewFileParams.html",[334,0.742,10445,5.639]],["body/interfaces/PreviewFileParams.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,31,0.485,32,0.188,33,0.545,47,1.017,55,1.9,95,0.153,101,0.021,103,0.001,104,0.001,163,2.724,165,0.861,334,1.199,336,2.104,380,1.806,982,4.328,5410,6.996,5562,6.013,6064,3.961,6082,8.072,6130,8.046,6139,8.699,6162,5.806,6170,6.402,6171,6.402,6172,6.402,9917,6.564,9994,10.1,10402,9.788,10444,7.98,10445,9.108,10446,10.945,10447,10.475]],["title/classes/PreviewParams.html",[0,0.229,6139,4.331]],["body/classes/PreviewParams.html",[0,0.45,2,0.712,3,0.016,4,0.023,5,0.012,7,0.095,26,2.5,27,0.42,30,0.001,32,0.173,33,0.6,39,1.66,47,0.961,95,0.154,99,1.05,101,0.025,103,0.001,104,0.001,150,2.271,165,0.689,204,2.124,334,0.682,347,2.057,364,1.871,369,1.923,373,4.604,374,1.978,375,4.446,376,1.452,377,5.682,379,1.427,380,1.295,467,3.68,469,2.731,470,5.049,471,4.663,565,3.269,1000,5.124,1001,6.531,1031,3.235,1044,3.039,1291,2.635,1381,3.611,2744,4.501,2915,6.098,3574,3.019,4227,2.132,5740,6.668,6064,5.025,6077,7.14,6083,6.033,6111,3.081,6114,4.233,6115,4.31,6116,4.31,6119,7.526,6122,7.927,6123,8.193,6124,8.342,6125,4.31,6126,4.233,6127,6.678,6128,4.233,6129,4.31,6130,3.977,6131,5.769,6132,4.096,6133,4.31,6134,4.31,6135,4.162,6136,4.233,6137,4.162,6138,4.162,6139,5.601,6140,4.31,6141,6.902,6142,4.31,6143,6.786,6144,5.962,6145,5.682,6146,5.682,6147,7.027,10341,8.057,10362,5.721,16124,6.193,16125,6.193,16126,6.193,16127,6.193,16128,6.193]],["title/injectables/PreviewService.html",[105,0.889,10247,5.892]],["body/injectables/PreviewService.html",[0,0.133,3,0.01,4,0.01,5,0.014,7,0.06,8,0.747,27,0.48,29,0.917,30,0.001,31,0.691,32,0.162,33,0.578,35,1.361,36,2.509,47,0.84,59,1.92,95,0.158,101,0.007,103,0,104,0,105,0.815,107,0.937,111,2.643,112,2.791,116,3.266,127,0.783,145,1.01,148,1.914,185,3.716,187,0.56,204,3.256,206,2.004,216,1.144,217,1.753,221,2.658,227,1.156,234,0.635,305,1.78,334,0.431,369,0.863,380,0.819,565,5.327,711,2.333,784,3.266,806,1.649,839,1.838,982,1.961,1016,3.912,1052,3.126,1053,3.865,1158,3.292,1296,2.778,1545,1.251,1565,3.437,1828,2.759,2439,2.837,2444,3.059,2686,3.292,3027,2.237,3542,3.191,3544,1.626,4614,3.156,4790,3.617,5451,5.829,6064,5.401,6082,7.969,6084,2.778,6088,6.184,6089,4.988,6101,6.184,6107,3.156,6123,5.959,6130,5.597,6139,8.264,6141,5.959,6143,4.159,6144,5.959,6162,2.632,6219,4.483,6507,6.701,8836,4.926,9495,3.42,9711,3.059,9712,2.975,9713,2.837,9734,2.725,9787,3.059,9818,3.42,9914,3.42,9917,7.668,9918,2.902,9985,2.975,9994,7.027,10170,7.027,10247,5.405,10263,3.617,10402,8.558,10436,5.405,10437,6.809,10445,9.849,10446,8.816,10447,7.288,10548,2.975,11408,3.617,16129,3.915,16130,6.187,16131,6.187,16132,6.187,16133,6.187,16134,7.671,16135,6.187,16136,6.187,16137,7.671,16138,6.187,16139,3.915,16140,7.671,16141,3.915,16142,6.187,16143,3.915,16144,6.187,16145,3.915,16146,6.187,16147,3.915,16148,6.187,16149,3.915,16150,3.915,16151,3.915,16152,6.187,16153,3.915,16154,6.187,16155,3.915,16156,3.915,16157,3.915,16158,6.187,16159,3.915,16160,6.187,16161,3.617,16162,3.617,16163,3.617,16164,3.617,16165,3.915,16166,3.915,16167,3.915,16168,3.915,16169,3.915,16170,3.915,16171,3.915,16172,3.915,16173,3.915,16174,3.617,16175,3.915,16176,3.915,16177,3.915,16178,3.915,16179,6.187,16180,3.915,16181,3.915,16182,7.671,16183,3.915,16184,3.915,16185,3.915,16186,3.915,16187,3.915,16188,3.915,16189,3.915,16190,3.915,16191,3.915,16192,3.915,16193,3.915,16194,3.915,16195,3.915,16196,3.915,16197,3.915,16198,3.915]],["title/classes/PrometheusMetricsConfig.html",[0,0.229,16199,5.892]],["body/classes/PrometheusMetricsConfig.html",[0,0.229,2,0.774,3,0.018,4,0.018,5,0.01,7,0.104,8,1.115,27,0.565,30,0.001,32,0.173,35,0.812,47,0.826,55,2.499,95,0.086,101,0.013,103,0.001,104,0.001,111,2.782,116,2.991,127,1.336,145,1.737,148,2.082,165,0.73,216,2.525,227,1.298,234,1.499,347,2.732,627,3.922,884,4.365,1541,8.245,2171,2.893,2172,3.219,2173,3.104,2174,4.264,5121,6.778,9368,8.245,9549,5.426,16199,9.925,16200,6.731,16201,10.555,16202,10.555,16203,10.555,16204,10.555,16205,10.555,16206,10.555,16207,9.925,16208,10.555,16209,9.751,16210,9.751,16211,6.731,16212,6.731,16213,6.731,16214,6.731,16215,6.731,16216,6.731,16217,6.731,16218,6.731,16219,6.731,16220,6.731,16221,6.731,16222,6.731,16223,6.731,16224,6.731,16225,6.731,16226,6.731,16227,6.731,16228,6.731,16229,6.731,16230,9.243,16231,9.243,16232,9.243,16233,9.243,16234,9.243,16235,6.731,16236,6.731,16237,6.731,16238,6.731,16239,6.731,16240,11.362]],["title/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.229,16241,6.23]],["body/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.226,2,0.764,3,0.018,4,0.018,5,0.009,7,0.102,8,1.105,27,0.381,29,0.528,30,0.001,31,0.373,32,0.093,33,0.332,35,0.801,95,0.145,101,0.022,103,0.001,104,0.001,127,0.841,163,2.094,214,3.024,215,2.15,216,1.228,217,1.618,227,1.106,234,1.987,329,1.956,460,5.99,549,4.623,1016,2.372,1021,3.534,1031,2.128,1052,4.83,1327,2.623,1491,3.796,1508,3.759,1538,5.803,1540,5.803,1541,5.189,1542,5.272,1543,5.447,1545,2.122,1546,7.657,1547,5.621,1725,8.877,1848,4.464,2116,3.594,2450,4.207,6491,6.246,6589,5.801,6759,5.047,7882,4.923,9368,8.826,11216,6.731,13626,4.923,15098,9.446,16199,5.803,16209,9.683,16210,9.683,16241,10.437,16242,10.482,16243,6.642,16244,6.642,16245,11.298,16246,6.642,16247,6.642,16248,5.803,16249,6.642,16250,6.642,16251,6.642,16252,12.252,16253,13.478,16254,6.642,16255,6.642,16256,6.642,16257,5.189,16258,6.642,16259,6.642,16260,9.158,16261,6.642,16262,6.642,16263,5.355,16264,6.642,16265,9.158,16266,11.852,16267,6.642,16268,6.642,16269,6.642,16270,6.642,16271,6.642,16272,6.642,16273,6.642,16274,6.642,16275,9.158,16276,6.642,16277,6.642,16278,6.642,16279,6.642,16280,6.642]],["title/classes/PropertyData.html",[0,0.229,134,5.125]],["body/classes/PropertyData.html",[0,0.308,2,1.04,3,0.024,4,0.024,5,0.013,7,0.139,27,0.529,29,0.718,30,0.001,31,0.715,32,0.179,33,0.61,47,0.926,95,0.116,101,0.017,103,0.001,104,0.001,108,7.558,127,1.145,134,9.949,144,3.329,165,0.886,207,9.822,240,2.834,331,7.962,405,3.03,595,3.125,2136,3.62,4303,3.969,7037,7.067,7076,7.563,7077,7.563,7103,7.563,16281,13.094,16282,8.357,16283,11.212,16284,9.046,16285,9.046]],["title/interfaces/ProviderConsentResponse.html",[334,0.742,10885,4.999]],["body/interfaces/ProviderConsentResponse.html",[3,0.02,4,0.02,5,0.011,7,0.117,30,0.001,32,0.193,33,0.71,47,1.036,70,5.983,77,7.565,95,0.129,101,0.015,103,0.001,104,0.001,165,0.793,199,4.559,334,0.838,336,1.853,337,5.202,347,2.288,356,10.433,357,10.433,359,3.894,1607,6.362,3544,4.959,4216,8.313,5423,11.033,5424,11.033,5425,9.985,5426,9.985,5427,9.985,5428,9.628,9106,8.654,10885,7.44,16286,7.609,16287,9.985,16288,7.029,16289,7.029,16290,6.647]],["title/interfaces/ProviderConsentSessionResponse.html",[334,0.742,10888,5.125]],["body/interfaces/ProviderConsentSessionResponse.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,32,0.192,33,0.697,47,1.008,55,2.629,95,0.111,101,0.017,103,0.001,104,0.001,138,4.743,165,0.863,334,0.955,336,2.113,337,5.931,341,11.592,342,10.962,343,11.592,344,9.803,345,9.803,346,8.434,347,2.436,352,7.579,353,6.994,5467,8.014,10885,9.3,10888,8.3,15520,8.014,16291,12.549,16292,8.676]],["title/interfaces/ProviderLoginResponse.html",[334,0.742,10886,5.125]],["body/interfaces/ProviderLoginResponse.html",[3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,32,0.191,33,0.623,47,1.03,70,6.243,77,7.893,95,0.138,101,0.016,103,0.001,104,0.001,165,0.853,334,0.937,336,2.073,337,5.818,347,2.414,1607,7.115,3544,5.174,4216,8.674,5425,10.418,5426,10.418,5427,10.418,5428,10.045,9106,9.029,10886,8.2,14127,11.511,16287,10.418,16288,7.862,16289,7.862,16290,7.435,16293,8.511]],["title/interfaces/ProviderOidcContext.html",[334,0.742,16287,5.639]],["body/interfaces/ProviderOidcContext.html",[3,0.025,4,0.025,5,0.013,7,0.143,30,0.001,32,0.185,33,0.697,47,1.022,101,0.018,103,0.001,104,0.001,165,0.902,334,1.026,336,2.27,337,6.37,359,4.281,1864,8.608,15872,11.889,15873,10.374,15874,11.889,15875,11.889,15876,11.889,16287,9.547,16294,9.319]],["title/interfaces/ProviderRedirectResponse.html",[334,0.742,10887,4.887]],["body/interfaces/ProviderRedirectResponse.html",[3,0.028,4,0.028,5,0.015,7,0.161,30,0.001,32,0.147,47,0.943,101,0.02,103,0.001,104,0.001,165,0.967,334,1.151,336,2.547,337,7.148,10887,8.865,16295,10.456,16296,12.353]],["title/classes/ProvisioningDto.html",[0,0.229,12626,5.125]],["body/classes/ProvisioningDto.html",[0,0.34,2,1.149,3,0.027,4,0.027,5,0.014,7,0.154,27,0.495,29,0.793,30,0.001,31,0.561,32,0.167,33,0.5,47,0.866,101,0.019,103,0.001,104,0.001,127,1.264,165,0.941,8291,8.552,8294,8.726,12626,10.379,16297,9.989,16298,11.909,16299,11.909,16300,9.989]],["title/modules/ProvisioningModule.html",[425,1.808,15230,5.269]],["body/modules/ProvisioningModule.html",[0,0.235,3,0.018,4,0.018,5,0.01,30,0.001,95,0.174,101,0.013,103,0.001,104,0.001,187,0.988,191,3.835,192,2.058,425,2.866,427,2.552,428,2.692,429,2.776,430,2.763,431,2.739,432,3.953,433,4.033,437,8.797,438,5.855,442,3.781,443,2.715,444,2.647,449,3.781,1266,3.946,1545,2.205,1625,9.42,1626,8.797,1644,6.032,1951,7.961,3673,4.72,3956,6.321,4485,4.72,4551,8.077,4561,3.674,8280,5.773,10585,9.993,12610,10.365,15044,10.521,15230,11.11,15898,10.365,15908,9.993,15995,6.032,16301,6.905,16302,6.905,16303,6.905,16304,6.905,16305,10.365,16306,10.365,16307,6.905,16308,6.905,16309,6.905,16310,6.905,16311,6.905,16312,6.905]],["title/injectables/ProvisioningService.html",[105,0.889,15044,5.269]],["body/injectables/ProvisioningService.html",[0,0.197,3,0.015,4,0.015,5,0.008,7,0.089,8,1.004,27,0.514,29,0.932,30,0.001,31,0.658,32,0.17,33,0.587,35,1.36,36,2.625,47,0.95,48,3.908,95,0.155,100,1.941,101,0.011,103,0.001,104,0.001,105,1.097,107,1.388,111,2.554,112,2.822,127,1.053,144,1.585,145,1.497,148,1.794,163,2.625,165,0.658,187,0.83,216,1.967,217,1.662,221,2.295,227,1.123,234,1.726,305,1.668,329,1.708,348,7.152,661,4.102,1114,3.95,1439,2.774,1645,4.299,1703,7.152,2309,3.252,3331,5.965,4485,8.604,11101,8.507,11848,7.868,11850,6.933,11851,3.836,11852,3.836,12610,8.896,12613,6.503,12617,7.843,12622,7.217,12626,7.399,12649,4.675,15044,6.503,15045,8.498,15072,6.545,15080,5.067,15351,7.607,15824,4.407,15898,8.896,16305,8.896,16313,5.8,16314,8.325,16315,8.325,16316,8.325,16317,8.325,16318,5.358,16319,9.738,16320,9.738,16321,9.738,16322,5.8,16323,8.325,16324,5.8,16325,8.325,16326,5.8,16327,8.325,16328,5.8,16329,5.8,16330,8.325,16331,5.8,16332,8.325,16333,5.8,16334,5.8,16335,5.067,16336,5.8,16337,5.8,16338,5.8,16339,5.8,16340,5.8,16341,5.8,16342,5.8,16343,5.8,16344,5.8,16345,8.325,16346,5.8,16347,5.8,16348,5.8,16349,5.8,16350,5.8]],["title/classes/ProvisioningStrategy.html",[0,0.229,11848,4.216]],["body/classes/ProvisioningStrategy.html",[0,0.307,2,1.038,3,0.024,4,0.024,5,0.013,7,0.139,8,1.351,9,6.63,27,0.506,29,0.889,30,0.001,31,0.629,32,0.157,33,0.56,35,1.469,36,2.765,95,0.144,100,3.021,101,0.017,103,0.001,104,0.001,163,2.846,2309,5.06,11156,6.911,11848,6.999,11850,7.93,11851,5.97,11852,5.97,12613,8.747,12614,10.26,12616,9.026,12617,8.859,12621,9.026,12622,9.433,12626,6.858,16351,9.026,16352,9.026,16353,9.026,16354,9.026]],["title/classes/ProvisioningSystemDto.html",[0,0.229,15351,5.269]],["body/classes/ProvisioningSystemDto.html",[0,0.308,2,1.04,3,0.024,4,0.024,5,0.013,7,0.139,26,2.542,27,0.529,29,0.718,30,0.001,31,0.508,32,0.179,33,0.61,47,0.815,48,5.72,95,0.144,99,1.534,101,0.017,103,0.001,104,0.001,127,1.145,165,0.886,405,3.03,417,6.705,418,7.292,595,3.125,11848,7.617,11849,8.481,11850,7.938,11851,5.984,11852,5.984,11945,6.874,11946,7.067,11947,6.874,11948,7.067,15351,10.228,16355,13.094,16356,9.046,16357,11.212,16358,9.046,16359,9.046]],["title/classes/ProvisioningSystemInputMapper.html",[0,0.229,16335,5.892]],["body/classes/ProvisioningSystemInputMapper.html",[0,0.316,2,1.069,3,0.025,4,0.025,5,0.013,7,0.143,8,1.376,27,0.386,29,0.738,30,0.001,31,0.522,32,0.13,33,0.465,35,1.122,48,4.364,95,0.158,100,3.817,101,0.018,103,0.001,104,0.001,145,2.399,227,0.981,234,1.508,627,3.84,1114,4.626,1130,7.494,11848,5.811,11849,6.471,11850,6.057,11851,6.149,11852,6.149,15072,8.643,15351,8.908,15824,7.064,16335,9.961,16360,11.403,16361,9.297,16362,11.403,16363,11.403,16364,9.297,16365,9.297,16366,9.297,16367,9.297]],["title/classes/Pseudonym.html",[0,0.229,8712,4.394]],["body/classes/Pseudonym.html",[0,0.279,2,0.945,3,0.022,4,0.022,5,0.012,7,0.126,8,1.273,26,2.654,27,0.55,30,0.001,32,0.115,35,0.991,39,3.296,47,0.767,83,3.7,95,0.135,101,0.02,103,0.001,104,0.001,116,3.414,165,0.834,227,1.342,334,0.904,359,2.848,404,2.111,591,5.259,592,5.425,595,3.645,596,3.203,661,4.445,692,3.931,884,4.983,1854,6.153,1857,5.439,1860,7.71,2485,3.548,2586,4.336,2800,5.616,2818,5.616,2821,7.177,2823,7.177,2826,6.418,2827,6.418,7261,6.622,8568,7.249,8712,8.482,16368,7.589,16369,8.215,16370,8.215,16371,8.215,16372,8.215,16373,8.215,16374,8.215,16375,8.215,16376,7.177,16377,7.589,16378,7.589,16379,6.868]],["title/entities/PseudonymEntity.html",[380,1.41,16380,5.639]],["body/entities/PseudonymEntity.html",[0,0.282,3,0.022,4,0.022,5,0.012,7,0.128,26,2.215,27,0.487,30,0.001,32,0.164,34,1.424,39,3.42,47,0.852,49,5.174,95,0.158,96,2.87,97,3.531,99,1.408,101,0.02,103,0.001,104,0.001,165,0.925,167,3.168,240,4.089,334,0.914,364,2.17,380,2.221,381,2.731,394,6.693,398,2.43,399,4.158,402,3.414,404,1.503,405,2.243,406,2.66,415,4.529,416,5.33,618,3.531,619,6.069,4294,5.002,8568,7.521,8712,8.044,8713,7.251,8718,6.307,8719,6.939,8720,6.939,8721,6.152,8722,6.484,16380,8.879,16381,7.667,16382,8.3,16383,8.3,16384,8.3,16385,8.879]],["title/interfaces/PseudonymEntityProps.html",[334,0.742,16385,5.639]],["body/interfaces/PseudonymEntityProps.html",[0,0.282,3,0.022,4,0.022,5,0.012,7,0.128,26,2.575,30,0.001,32,0.173,33,0.531,34,2.118,39,3.498,47,0.898,49,5.291,95,0.158,96,2.87,97,3.531,99,1.408,101,0.02,103,0.001,104,0.001,165,0.925,167,3.168,240,3.868,334,0.914,336,2.022,380,2.221,394,6.693,398,2.43,399,4.158,402,3.414,404,1.503,405,2.243,406,2.66,415,4.529,416,5.33,618,3.531,619,6.069,4294,5.002,8568,7.694,8712,8.314,8718,6.307,8719,6.939,8720,6.939,8721,6.152,8722,6.484,16380,6.939,16381,7.667,16385,9.792]],["title/modules/PseudonymModule.html",[425,1.808,4550,5.125]],["body/modules/PseudonymModule.html",[0,0.301,3,0.024,4,0.024,5,0.013,30,0.001,95,0.162,101,0.017,103,0.001,104,0.001,187,1.269,425,3.236,427,3.277,428,3.457,429,3.564,430,3.548,431,3.517,432,4.463,433,4.553,442,4.451,443,3.487,444,3.399,766,3.81,1053,5.887,1545,2.832,2570,4.797,4550,10.658,8723,11.1,12144,10.616,16386,8.867,16387,8.867,16388,8.867,16389,11.1,16390,8.867]],["title/interfaces/PseudonymProps.html",[334,0.742,16376,5.892]],["body/interfaces/PseudonymProps.html",[0,0.289,3,0.023,4,0.023,5,0.012,7,0.131,26,2.844,30,0.001,32,0.18,39,3.446,47,0.906,83,4.063,95,0.138,101,0.021,103,0.001,104,0.001,165,0.853,227,1.357,334,0.937,336,2.073,359,2.951,404,2.146,591,5.498,592,5.672,1854,6.911,1857,4.614,2485,3.676,2586,4.492,2826,6.648,2827,6.648,8568,7.579,8712,8.56,16368,7.862,16376,9.427,16377,7.862,16378,7.862,16379,7.115]],["title/injectables/PseudonymService.html",[105,0.889,12144,5.125]],["body/injectables/PseudonymService.html",[0,0.155,3,0.012,4,0.012,5,0.006,7,0.07,8,0.839,11,5.604,13,4.933,27,0.5,29,0.957,30,0.001,31,0.676,32,0.169,33,0.602,34,1.746,35,1.424,36,2.894,37,5.604,39,3.163,42,4.933,47,0.953,49,1.773,83,2.091,95,0.138,96,1.229,97,1.935,99,0.771,101,0.009,103,0,104,0,105,0.916,107,1.088,111,2.604,112,3.023,116,4.02,127,0.88,145,1.794,158,6.135,167,1.736,187,0.651,201,2.382,209,4.146,216,1.285,217,1.521,221,2.227,227,1.271,234,1.868,284,4.19,305,2.718,461,1.602,591,1.945,592,2.006,738,4.87,775,2.773,806,1.916,1238,6.067,1439,2.175,2570,2.461,4150,3.008,4405,8.728,6938,6.32,7038,8.382,7127,3.008,8382,8.51,8568,2.681,8712,7.69,8718,7.179,8723,10.069,8727,6.073,8735,6.073,9599,3.166,12144,5.282,12347,6.422,14941,6.422,16389,9.336,16391,4.548,16392,6.952,16393,6.952,16394,6.952,16395,6.952,16396,6.952,16397,6.952,16398,4.548,16399,4.548,16400,6.952,16401,4.548,16402,6.952,16403,4.548,16404,4.548,16405,4.548,16406,4.548,16407,6.952,16408,4.548,16409,6.952,16410,4.548,16411,6.952,16412,4.548,16413,6.952,16414,4.548,16415,10.733,16416,4.548,16417,9.448,16418,4.548,16419,4.548,16420,6.952,16421,3.227,16422,4.548,16423,4.548,16424,4.548,16425,6.952,16426,6.952,16427,4.548,16428,4.548,16429,4.548,16430,9.448,16431,4.548,16432,4.548,16433,4.548,16434,4.548,16435,4.548]],["title/injectables/PseudonymsRepo.html",[105,0.889,16389,5.639]],["body/injectables/PseudonymsRepo.html",[0,0.183,3,0.014,4,0.014,5,0.008,7,0.083,8,0.953,13,5.606,26,2.818,27,0.504,29,0.962,30,0.001,31,0.68,32,0.17,33,0.606,34,1.355,35,1.426,36,2.826,39,3.368,42,5.606,49,2.103,95,0.132,96,1.458,97,2.296,99,0.915,101,0.01,103,0,104,0,105,1.041,107,1.291,112,2.964,127,0.683,145,1.392,167,3.016,187,0.772,215,1.746,216,0.997,217,1.66,221,2.424,227,1.279,234,2.038,380,2.534,381,1.775,591,2.307,592,2.38,661,4.819,921,7.817,1857,4.682,2395,5.879,2417,3.626,2441,4.215,2446,3.829,2459,4.511,2835,4.707,3280,3.756,3285,4.817,3348,4.349,4355,3.465,4369,4.511,4370,4.511,8568,7.406,8712,8.666,8718,6.003,8726,7.298,8727,6.901,8728,7.298,8729,7.298,8730,6.901,8731,7.298,8733,7.298,8735,6.901,8738,7.298,8740,7.298,8742,7.298,8744,7.298,8747,7.298,8748,9.503,8751,4.713,8752,4.984,8754,4.984,8756,4.713,8757,4.984,8758,6.901,8760,4.984,8761,4.984,8762,4.984,8763,4.984,8764,4.984,8765,4.984,16380,10.336,16385,8.601,16389,6.605,16436,5.396,16437,5.396,16438,5.396,16439,5.396,16440,5.396,16441,5.396,16442,5.396,16443,5.396,16444,5.396,16445,5.396,16446,5.396,16447,5.396,16448,5.396,16449,5.396,16450,5.396,16451,5.396]],["title/classes/PublicSystemListResponse.html",[0,0.229,16452,5.639]],["body/classes/PublicSystemListResponse.html",[0,0.319,2,1.079,3,0.025,4,0.025,5,0.013,7,0.144,27,0.476,29,0.745,30,0.001,31,0.527,32,0.174,33,0.469,95,0.147,101,0.018,103,0.001,104,0.001,116,3.037,127,1.187,145,2.421,163,3.905,165,0.906,364,1.739,376,2.2,467,3.082,1006,6.659,1011,4.993,1016,3.35,1026,5.212,1114,5.233,5636,8.959,16452,9.588,16453,11.441,16454,11.468,16455,10.988,16456,10.594]],["title/classes/PublicSystemResponse.html",[0,0.229,16455,5.437]],["body/classes/PublicSystemResponse.html",[0,0.234,2,0.79,3,0.018,4,0.018,5,0.01,7,0.106,27,0.514,29,0.546,30,0.001,31,0.599,32,0.187,33,0.634,34,2.057,47,0.938,95,0.12,101,0.013,103,0.001,104,0.001,127,0.869,154,5.224,165,0.74,364,2.222,367,4.51,368,5.224,369,2.916,370,4.412,371,3.645,376,1.611,379,2.763,467,3.326,618,2.922,1013,5.499,1114,5.581,2621,3.244,2640,5.537,5382,6.548,5602,5.344,5621,4.351,9975,5.206,10363,6.946,10947,6.85,11270,5.091,11845,7.933,11937,5.219,11939,5.219,13302,4.874,15318,10.027,15873,7.555,16453,11.703,16455,9.668,16457,4.874,16458,8.657,16459,9.372,16460,6.869,16461,6.869,16462,6.869,16463,6.869,16464,6.346,16465,5.743,16466,5.537,16467,5.743]],["title/modules/RabbitMQWrapperModule.html",[425,1.808,10245,4.999]],["body/modules/RabbitMQWrapperModule.html",[0,0.346,3,0.021,4,0.021,5,0.011,30,0.001,31,0.637,32,0.159,47,0.825,95,0.154,101,0.022,103,0.001,104,0.001,112,1.743,187,1.112,214,2.566,215,2.515,216,1.437,217,1.026,221,1.831,234,1.26,284,4.683,368,3.069,425,3.227,427,3.762,433,3.838,449,4.562,676,4.169,883,3.258,957,5.76,1272,5.312,1309,5.409,1417,4.99,1429,8.623,1437,5.631,1438,5.223,2171,3.34,2172,3.716,2173,3.584,2174,4.922,2477,4.797,2500,4.797,2508,4.99,2514,5.14,3552,5.76,4480,5.631,4632,5.312,4997,6.631,5784,4.532,6047,5.063,6334,8.7,6637,5.631,10174,7.543,10245,7.543,10246,5.409,10269,6.789,12571,6.264,12905,9.914,14534,9.914,16468,7.179,16469,10.484,16470,11.547,16471,7.179,16472,7.179,16473,6.789,16474,7.179,16475,7.179,16476,6.497,16477,7.179,16478,7.179,16479,7.179,16480,7.179,16481,7.179,16482,6.789,16483,7.179,16484,6.497,16485,7.179,16486,6.789,16487,6.789,16488,7.179,16489,7.179,16490,7.179]],["title/modules/RabbitMQWrapperTestModule.html",[425,1.808,10246,4.694]],["body/modules/RabbitMQWrapperTestModule.html",[0,0.343,3,0.02,4,0.02,5,0.011,8,0.923,27,0.318,30,0.001,31,0.632,32,0.158,35,0.923,47,0.819,95,0.154,101,0.021,103,0.001,104,0.001,112,2.259,187,1.095,214,2.527,215,2.477,216,1.415,217,1.011,221,1.803,234,1.241,284,4.612,368,3.022,425,3.208,427,3.724,433,3.799,449,4.528,676,4.106,883,3.208,957,5.702,1272,5.231,1309,5.327,1417,4.914,1429,8.559,1437,5.545,1438,5.144,2171,3.289,2172,3.66,2173,3.529,2174,4.847,2477,4.724,2500,4.724,2508,4.914,2514,5.062,3552,5.672,4480,5.545,4632,5.231,4997,6.564,5784,4.463,6047,4.986,6334,8.657,6637,5.545,10174,7.467,10245,5.672,10246,7.013,10269,6.685,12571,6.169,12905,9.84,14534,10.865,16468,7.07,16469,10.405,16470,11.49,16471,7.07,16472,7.07,16473,6.685,16474,7.07,16475,7.07,16476,6.398,16477,7.07,16478,7.07,16479,7.07,16480,7.07,16481,7.07,16482,6.685,16483,7.07,16484,6.398,16485,7.07,16486,6.685,16487,6.685,16488,7.07,16489,7.07,16490,7.07,16491,7.653]],["title/injectables/RecursiveDeleteVisitor.html",[105,0.889,3283,5.639]],["body/injectables/RecursiveDeleteVisitor.html",[0,0.198,3,0.015,4,0.015,5,0.008,7,0.09,8,1.008,27,0.531,29,1.015,30,0.001,31,0.718,32,0.179,33,0.64,35,1.52,36,2.923,95,0.137,96,1.574,97,2.478,99,0.988,101,0.011,103,0.001,104,0.001,105,1.1,107,1.394,111,1.67,112,3.108,127,1.057,148,2.583,187,0.834,214,1.923,216,1.544,221,2.969,1444,3.795,1857,3.571,2395,6.093,2441,4.551,2598,6.147,2697,5.958,2806,5.092,2811,3.641,2856,6.388,2861,6.967,2864,7.353,2867,7.248,2870,7.055,2873,6.665,2881,2.656,2884,7.295,2885,7.295,2886,7.295,2887,7.295,2888,7.295,2889,7.295,2891,7.714,2892,7.714,2893,7.714,2894,7.714,2895,7.714,2896,7.714,2897,7.714,3144,3.125,3280,4.055,3283,6.982,3285,5.092,3543,2.859,3544,2.419,6193,8.966,16492,11.955,16493,5.825,16494,8.351,16495,8.351,16496,5.825,16497,8.351,16498,5.825,16499,5.825,16500,8.351,16501,5.825,16502,5.825,16503,5.825,16504,5.825,16505,5.825,16506,5.825,16507,8.351,16508,5.825,16509,5.825,16510,5.825,16511,5.825,16512,5.825,16513,5.825,16514,5.825,16515,5.825,16516,5.825,16517,5.825,16518,5.825,16519,5.825,16520,5.825,16521,5.825,16522,5.825,16523,5.825,16524,5.825,16525,5.825,16526,5.825]],["title/classes/RecursiveSaveVisitor.html",[0,0.229,3312,5.892]],["body/classes/RecursiveSaveVisitor.html",[0,0.14,2,0.473,3,0.011,4,0.011,5,0.006,7,0.063,8,0.776,18,3.18,26,0.858,27,0.511,29,0.964,30,0.001,31,0.681,32,0.175,33,0.607,34,1.847,35,1.441,36,1.398,39,1.103,55,0.905,59,1.277,95,0.115,96,1.739,97,1.751,99,0.698,101,0.008,103,0,104,0,111,1.791,112,1.777,127,0.521,144,1.125,148,3.988,165,0.508,199,1.571,214,2.125,215,1.332,216,1.189,217,1.703,221,0.97,234,1.9,305,1.184,329,1.212,398,1.205,905,1.709,1474,2.689,1857,1.76,1984,1.76,2395,5.12,2405,2.722,2598,6.595,2697,5.132,2802,4.775,2809,6.404,2811,6.732,2835,3.834,2840,3.595,2843,3.595,2848,5.621,2849,5.621,2850,5.621,2851,5.621,2852,5.621,2853,5.621,2854,5.621,2855,5.38,2856,5.502,2858,5.38,2860,5.38,2861,6.001,2863,5.38,2864,6.334,2866,5.38,2867,6.243,2869,5.38,2870,6.077,2873,5.6,2880,1.968,2881,1.876,3144,7.262,3165,5.027,3168,5.187,3171,4.889,3174,5.027,3177,5.027,3180,5.027,3183,5.027,3226,3.802,3236,2.643,3239,2.573,3242,2.19,3245,2.172,3247,2.48,3280,2.865,3281,8.682,3285,3.924,3304,5.621,3305,6.15,3307,3.318,3309,3.802,3312,5.621,3331,5.023,3596,3.802,4116,3.595,4117,3.595,4118,3.441,4149,3.595,4897,3.802,4898,3.595,5573,5.944,5579,3.802,5582,3.802,5585,3.802,5587,3.802,5591,3.802,8756,3.595,16492,11.498,16527,4.116,16528,7.923,16529,6.435,16530,6.435,16531,6.435,16532,6.435,16533,6.435,16534,4.116,16535,6.435,16536,11.717,16537,4.116,16538,4.116,16539,4.116,16540,6.435,16541,4.116,16542,4.116,16543,4.116,16544,4.116,16545,4.116,16546,4.116,16547,4.116,16548,11.145,16549,4.116,16550,4.116,16551,6.435,16552,6.435,16553,6.435,16554,4.116,16555,4.116,16556,4.116,16557,10.77,16558,10.77,16559,4.116,16560,10.77,16561,4.116,16562,4.116,16563,4.116,16564,4.116,16565,4.116,16566,4.116,16567,4.116,16568,4.116,16569,4.116,16570,4.116,16571,4.116,16572,4.116,16573,4.116,16574,4.116,16575,4.116,16576,3.802,16577,4.116,16578,4.116,16579,4.116,16580,4.116,16581,4.116,16582,4.116,16583,4.116,16584,4.116]],["title/classes/RedirectResponse.html",[0,0.229,15468,5.269]],["body/classes/RedirectResponse.html",[0,0.316,2,1.069,3,0.025,4,0.025,5,0.013,7,0.143,27,0.474,29,0.738,30,0.001,31,0.522,32,0.16,33,0.465,47,0.829,95,0.119,101,0.018,103,0.001,104,0.001,127,1.176,150,4.182,165,0.901,361,6.79,364,1.723,376,2.18,379,2.142,461,2.627,467,3.064,1013,4.263,2008,7.323,2211,7.429,3247,6.872,6706,7.128,13231,9.192,15468,10.309,16296,11.394,16585,9.297,16586,11.403,16587,9.297,16588,9.297,16589,11.403,16590,9.297,16591,9.297,16592,9.297]],["title/modules/RedisModule.html",[425,1.808,16593,5.437]],["body/modules/RedisModule.html",[0,0.289,3,0.023,4,0.023,5,0.012,30,0.001,47,0.784,95,0.165,101,0.016,103,0.001,104,0.001,145,2.191,150,3.114,187,1.216,204,2.913,217,1.423,227,1.137,425,3.173,427,3.139,428,3.311,429,3.414,430,3.399,431,3.369,432,3.983,433,4.064,438,6.202,442,4.332,443,3.339,444,3.255,449,4.332,836,4.902,837,6.294,839,3.987,1052,3.461,1053,5.249,1545,2.712,2171,3.65,2172,4.061,2173,3.916,3544,4.475,3898,4.634,3901,7.845,3912,6.634,3913,9.01,3917,9.955,3918,7.845,3920,7.419,3921,7.845,3922,7.419,3923,7.419,3924,7.845,7797,9.414,16593,10.586,16594,8.493,16595,8.493,16596,8.493,16597,10.342,16598,8.493,16599,8.493]],["title/injectables/ReferenceLoader.html",[105,0.889,1964,5.437]],["body/injectables/ReferenceLoader.html",[0,0.178,3,0.014,4,0.014,5,0.007,7,0.08,8,0.931,26,2.441,27,0.449,29,0.805,30,0.001,31,0.569,32,0.164,33,0.507,35,1.107,36,2.201,39,1.401,49,3.577,95,0.15,99,0.887,101,0.01,103,0,104,0,105,1.017,107,1.251,111,2.663,112,2.536,127,0.977,144,1.428,165,0.61,187,0.748,200,1.703,208,1.94,216,2.338,217,1.212,221,2.162,227,0.968,234,1.488,305,1.504,329,1.54,334,0.575,347,1.065,359,3.747,369,2.233,441,7.134,450,2.15,461,2.114,1632,7.523,1854,4.501,1939,4.455,1940,3.311,1956,9.382,1958,7.323,1962,7.712,1964,6.222,1966,8.901,1968,9.125,1970,8.359,1973,8.072,2016,7.13,2027,7.623,2029,6.742,2092,2.958,2475,4.37,2570,7.161,3115,7.831,3218,3.458,3331,5.68,3397,3.458,4628,6.069,5283,7.671,5627,9.681,5704,4.084,5985,3.513,6539,3.972,11631,8.851,11632,4.829,11633,7.13,11634,4.829,11635,3.972,11636,7.396,11637,8.476,11638,4.829,11639,4.829,11640,4.829,11641,4.829,11642,4.829,11643,4.829,11644,4.829,11645,4.829,11646,4.829,11647,4.829,11648,4.829,11649,4.829,11650,4.829,11651,4.829,11652,4.829,11653,4.829,11654,4.829,11655,4.829,11656,4.829,11657,4.829,11658,4.829,11659,4.829,11660,7.13,11661,4.829,11662,4.829,11663,8.476,11664,7.13,11665,4.829,11666,4.829,11667,4.829,11668,7.13,16600,7.718,16601,4.566,16602,7.718,16603,5.227,16604,5.227,16605,5.227,16606,5.227]],["title/interfaces/RejectRequestBody.html",[334,0.742,10869,5.269]],["body/interfaces/RejectRequestBody.html",[3,0.025,4,0.025,5,0.013,7,0.143,30,0.001,32,0.185,33,0.697,47,1.022,55,2.715,101,0.018,103,0.001,104,0.001,165,0.902,204,4.414,334,1.026,336,2.27,337,6.37,340,7.512,1997,10.054,5373,10.76,5374,10.76,5375,10.054,10869,8.92,16607,9.319]],["title/classes/RenameBodyParams.html",[0,0.229,2950,5.437]],["body/classes/RenameBodyParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,47,0.852,95,0.161,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,3.84,369,2.583,370,3.909,371,2.679,374,3.106,376,2.28,467,3.149,469,4.289,470,4.937,1474,4.269,2950,9.446,6918,8.685,16608,9.724,16609,9.724,16610,9.724,16611,9.724]],["title/classes/RenameFileParams.html",[0,0.229,6136,4.611]],["body/classes/RenameFileParams.html",[0,0.454,2,0.759,3,0.018,4,0.024,5,0.013,7,0.102,26,2.551,27,0.274,30,0.001,32,0.166,39,1.768,47,0.979,95,0.157,99,1.119,101,0.025,103,0.001,104,0.001,150,2.42,165,0.72,204,2.263,334,0.726,347,1.857,364,1.223,369,1.455,373,4.812,374,2.108,375,4.57,376,1.547,377,5.94,379,1.52,380,1.38,467,3.708,469,2.91,470,5.151,471,4.793,565,3.483,1000,5.228,1001,6.714,1031,3.347,1044,3.239,1291,2.807,1381,3.848,2744,4.657,2915,5.513,3574,3.217,4227,2.271,5740,6.825,6064,4.18,6077,5.94,6083,6.202,6111,3.283,6114,4.511,6115,4.593,6116,4.593,6119,7.703,6122,8.088,6123,7.702,6124,7.842,6125,4.593,6126,4.511,6127,7.821,6128,4.511,6129,4.593,6130,4.238,6131,6.03,6132,4.365,6133,4.593,6134,4.593,6135,4.435,6136,6.232,6137,4.435,6138,4.435,6139,4.238,6140,4.593,6141,4.511,6142,4.593,6143,4.435,6144,4.511,6145,4.299,6146,4.299,6147,4.593,16612,6.599,16613,6.599]],["title/classes/RequestInfo.html",[0,0.229,16614,5.892]],["body/classes/RequestInfo.html",[0,0.311,2,0.763,3,0.018,4,0.018,5,0.009,7,0.102,8,1.104,27,0.509,29,0.727,30,0.001,31,0.588,32,0.172,33,0.458,35,0.8,47,0.93,55,2.012,95,0.134,101,0.02,103,0.001,104,0.001,111,2.094,127,0.839,138,2.879,144,1.812,145,1.711,165,0.723,167,2.531,217,1.657,227,0.965,234,1.698,235,6.703,238,5.666,329,1.953,359,2.299,367,5.894,576,5.392,1016,4.372,1062,2.894,1293,4.457,1313,5.18,1491,3.79,1773,4.259,1841,4.805,1848,7.588,2622,6.492,3544,3.798,3948,5.039,5375,7.146,5391,5.039,5401,5.039,6489,7.039,6491,3.952,9935,6.78,16248,5.793,16614,7.991,16615,6.126,16616,9.674,16617,9.674,16618,9.148,16619,8.451,16620,6.631,16621,6.631,16622,6.631,16623,6.631,16624,6.631,16625,8.451,16626,6.631,16627,10.942,16628,5.793,16629,6.126,16630,8.451,16631,5.544,16632,5.793,16633,8.451,16634,8.451,16635,6.126,16636,8.451,16637,6.126,16638,5.793,16639,6.126,16640,6.126,16641,8.451,16642,8.451,16643,8.451,16644,8.451,16645,6.126,16646,6.126,16647,6.126,16648,6.126,16649,6.126,16650,6.126,16651,6.126,16652,6.126,16653,6.126,16654,6.126,16655,6.126,16656,6.126,16657,6.126,16658,6.126,16659,6.126,16660,6.126,16661,6.126,16662,6.126]],["title/injectables/RequestLoggingInterceptor.html",[105,0.889,16663,6.23]],["body/injectables/RequestLoggingInterceptor.html",[0,0.267,3,0.021,4,0.021,5,0.011,7,0.121,8,1.236,27,0.426,29,0.813,30,0.001,31,0.575,32,0.144,33,0.512,35,0.947,39,2.103,95,0.165,101,0.015,103,0.001,104,0.001,105,1.35,107,1.877,127,0.993,145,2.025,150,2.878,185,3.072,187,1.123,199,2.995,204,2.691,214,2.591,215,2.539,217,1.506,227,1.081,235,4.441,367,5.488,491,5.027,513,4.017,529,3.461,731,4.484,1052,4.174,1053,5.36,1062,3.425,1268,5.039,1269,6.13,1270,5.962,1459,6.775,1545,2.506,2333,8.451,2993,5.19,3710,4.729,6332,5.816,6491,4.676,8012,7.249,8014,8.947,8016,8.947,8017,10.559,8018,10.559,8020,8.947,8021,9.461,9935,5.816,11530,8.947,16632,6.855,16663,9.461,16664,11.402,16665,7.847,16666,7.847,16667,9.461,16668,7.249,16669,7.847,16670,7.847,16671,7.847,16672,7.847,16673,7.847,16674,7.847,16675,7.249,16676,10.242,16677,7.249,16678,7.847]],["title/classes/ResolvedUserMapper.html",[0,0.229,16679,5.892]],["body/classes/ResolvedUserMapper.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,8,1.302,27,0.354,29,0.676,30,0.001,31,0.606,32,0.119,33,0.426,34,1.46,35,1.027,47,0.862,95,0.138,99,1.444,100,3.612,101,0.016,103,0.001,104,0.001,144,2.325,217,1.124,227,1.139,234,1.38,329,2.507,461,2.963,496,5.25,627,3.689,738,4.912,975,6.167,982,4.264,1130,6.86,1916,6.036,3110,5.74,4539,6.648,6931,7.435,6945,6.86,12406,7.862,12409,7.862,13139,6.308,13140,6.166,14913,7.862,15946,7.435,16679,9.427,16680,10.791,16681,9.427,16682,8.511,16683,10.418,16684,8.511,16685,8.511,16686,8.511,16687,8.511,16688,8.511,16689,8.511,16690,8.511]],["title/classes/ResolvedUserResponse.html",[0,0.229,16683,5.639]],["body/classes/ResolvedUserResponse.html",[0,0.269,2,0.911,3,0.021,4,0.021,5,0.011,7,0.122,27,0.553,30,0.001,32,0.189,34,1.965,47,0.987,83,3.65,95,0.132,101,0.02,103,0.001,104,0.001,165,0.814,214,3.403,364,2.466,376,1.858,467,3.771,496,4.826,591,4.899,592,5.053,851,5.623,852,5.623,1916,5.549,3110,5.549,4227,3.944,11383,8.309,11384,9.235,12358,6.625,16668,7.32,16683,8.618,16691,13.456,16692,7.924,16693,7.924,16694,7.924,16695,7.924,16696,7.924,16697,7.924,16698,7.924,16699,7.924]],["title/classes/ResponseInfo.html",[0,0.229,16638,5.892]],["body/classes/ResponseInfo.html",[0,0.327,2,0.821,3,0.019,4,0.019,5,0.01,7,0.11,27,0.4,29,0.567,30,0.001,31,0.54,32,0.135,33,0.357,47,0.846,55,2.392,95,0.14,101,0.021,103,0.001,104,0.001,111,1.427,127,0.903,145,1.842,165,0.76,167,2.724,217,1.69,227,1.015,234,1.764,235,6.157,238,3.861,359,2.474,367,5.603,576,5.669,1016,4.645,1062,3.115,1293,7.312,1313,5.575,1491,4.079,1773,4.583,1841,5.171,1848,7.824,2622,6.825,3544,3.994,3948,5.423,5375,7.513,5391,5.423,5401,5.423,6489,7.824,6491,4.253,9935,5.29,16248,6.235,16614,6.235,16615,6.593,16616,6.593,16617,6.593,16619,6.593,16625,6.593,16627,10.754,16628,6.235,16629,6.593,16630,8.885,16631,5.967,16632,6.235,16633,8.885,16634,8.885,16635,6.593,16636,8.885,16637,6.593,16638,8.402,16639,8.885,16640,6.593,16641,8.885,16642,8.885,16643,8.885,16644,8.885,16645,6.593,16646,6.593,16647,6.593,16648,6.593,16649,6.593,16650,6.593,16651,6.593,16652,6.593,16653,6.593,16654,6.593,16655,6.593,16656,6.593,16657,6.593,16658,6.593,16659,6.593,16660,6.593,16661,6.593,16662,6.593,16700,9.618]],["title/injectables/RestartUserLoginMigrationUc.html",[105,0.889,16701,5.639]],["body/injectables/RestartUserLoginMigrationUc.html",[0,0.221,3,0.017,4,0.017,5,0.009,7,0.1,8,1.088,27,0.43,29,0.823,30,0.001,31,0.581,32,0.145,33,0.518,35,1.088,36,2.431,39,2.416,47,0.976,52,3.012,95,0.163,99,1.101,101,0.012,103,0.001,104,0.001,105,1.188,107,1.553,111,2.237,112,2.728,127,1.141,129,6.906,132,6.65,167,2.478,189,5.054,191,3.606,192,3.087,199,3.441,204,2.227,216,2.068,217,1.368,221,2.77,227,0.685,234,1.462,305,2.593,355,5.002,461,2.875,766,2.79,795,3.827,843,2.833,1052,5.085,1542,3.03,1545,2.074,1555,4.058,1862,4.963,1868,4.112,1952,6.694,2014,6.681,2767,2.927,3769,7.042,3810,5.072,3830,4.112,3832,4.364,4227,4.447,4442,4.935,4444,5.234,4447,5.234,4448,8.633,4455,5.789,4457,6.743,4458,4.812,4459,7.042,4460,4.933,4461,5.072,4462,5.428,4464,7.042,4466,5.428,4467,4.812,4474,4.933,4475,5.428,8599,5.072,13636,5.234,16701,7.537,16702,11.188,16703,7.875,16704,6.492,16705,6.492,16706,9.015,16707,6.492,16708,5.428,16709,6.492,16710,6.492,16711,5.997,16712,5.671,16713,5.997,16714,5.671]],["title/classes/RevokeConsentParams.html",[0,0.229,15509,5.892]],["body/classes/RevokeConsentParams.html",[0,0.395,2,1.102,3,0.025,4,0.025,5,0.014,7,0.147,27,0.398,30,0.001,32,0.135,34,1.993,47,0.845,95,0.149,101,0.018,103,0.001,104,0.001,165,0.918,361,6.395,364,1.776,368,4.588,369,2.561,370,3.875,371,3.201,374,3.061,376,2.247,379,2.208,467,3.122,470,4.894,479,7.104,3544,5.527,5378,7.808,15509,10.148,16715,11.617,16716,9.585,16717,9.585]],["title/classes/RichText.html",[0,0.229,16718,5.437]],["body/classes/RichText.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,27,0.492,29,0.676,30,0.001,31,0.478,32,0.191,33,0.426,47,0.785,95,0.152,101,0.016,103,0.001,104,0.001,127,1.366,165,0.853,364,1.999,376,1.996,379,2.486,467,3.185,565,5.696,966,4.357,1013,4.948,1031,3.458,2309,6.643,2344,5.43,2594,5.496,2621,4.02,2879,9.236,2880,5.959,3242,6.842,3415,5.465,5575,7.862,11960,7.115,16718,10.366,16719,12.461,16720,8.511,16721,8.511,16722,8.511,16723,8.511,16724,8.511,16725,8.511,16726,8.511]],["title/classes/RichTextContentBody.html",[0,0.229,5542,4.611]],["body/classes/RichTextContentBody.html",[0,0.449,2,0.781,3,0.018,4,0.018,5,0.01,7,0.104,9,3.246,27,0.386,30,0.001,31,0.595,32,0.191,47,0.771,83,2.042,95,0.146,99,1.151,101,0.025,103,0.001,104,0.001,144,2.897,163,2.14,165,0.734,240,2.127,364,1.722,369,1.496,374,2.168,376,1.592,379,1.564,404,1.92,467,3.634,470,4.466,524,4.001,999,6.248,1031,2.175,1044,3.332,2344,4.381,2594,5.029,2627,4.817,2880,5.07,2915,3.583,3239,4.243,3242,6.563,3245,3.583,3774,6.581,4040,4.64,4071,4.64,4072,7.012,5504,7.247,5506,7.247,5508,7.247,5541,7.247,5542,7.247,5543,6.355,5739,4.49,5740,6.894,6850,4.817,8027,8.654,8028,7.857,8029,5.031,8032,7.523,8033,5.031,8034,8.091,8035,7.523,8036,5.031,8037,4.817,8038,4.817,8039,4.817,8040,4.817,8041,5.031,8042,5.031,8043,5.031,16727,6.788,16728,6.788,16729,6.788]],["title/classes/RichTextElement.html",[0,0.229,2867,4.331]],["body/classes/RichTextElement.html",[0,0.214,2,0.724,3,0.017,4,0.017,5,0.009,7,0.097,8,1.065,27,0.551,29,0.983,30,0.001,31,0.695,32,0.18,33,0.619,35,1.548,36,1.918,47,0.845,55,1.941,59,1.955,95,0.131,101,0.017,103,0.001,104,0.001,112,2.285,116,2.856,144,3.017,148,3.728,165,0.697,208,2.337,221,1.484,227,1.075,334,0.693,347,2.076,363,5.668,371,1.736,404,1.845,595,3.049,596,3.834,661,3.719,692,3.288,728,3.456,884,4.169,1857,3.774,1860,6.74,1984,2.693,2586,3.325,2598,6.124,2791,8.127,2794,6.542,2795,6.542,2796,6.542,2797,7.836,2798,6.542,2800,4.306,2801,5.668,2802,6.655,2804,6.542,2805,5.668,2806,6.733,2808,4.564,2809,4.659,2811,6.37,2812,4.564,2816,4.564,2818,4.306,2844,5.591,2867,5.668,2880,6.136,3242,6.917,3984,4.786,3985,4.786,3986,4.786,3995,4.167,4692,5.819,9517,4.921,16730,10.74,16731,6.299,16732,6.299,16733,6.299,16734,5.819,16735,6.299,16736,5.819,16737,6.299,16738,6.299,16739,6.299,16740,6.299,16741,8.154,16742,5.819,16743,8.154,16744,5.819,16745,5.819,16746,5.819,16747,5.503]],["title/classes/RichTextElementContent.html",[0,0.229,16748,5.639]],["body/classes/RichTextElementContent.html",[0,0.356,2,0.933,3,0.022,4,0.022,5,0.011,7,0.125,27,0.482,29,0.645,30,0.001,31,0.456,32,0.182,33,0.406,34,1.988,47,0.843,95,0.149,99,1.377,101,0.02,103,0.001,104,0.001,127,1.466,165,0.827,364,1.94,376,1.903,467,3.632,475,4.066,618,3.453,966,4.155,1031,2.601,2344,4.789,2621,3.833,2880,6.464,2910,4.429,2911,4.429,2915,4.284,3242,7.118,3403,6.167,3415,5.212,3658,7.34,3662,6.462,3666,5.759,3668,5.759,3774,6.689,4045,8.178,5506,5.548,9532,7.09,16748,10.849,16749,11.31,16750,8.116,16751,8.116,16752,6.785,16753,6.785]],["title/classes/RichTextElementContentBody.html",[0,0.229,8034,4.786]],["body/classes/RichTextElementContentBody.html",[0,0.448,2,0.777,3,0.018,4,0.018,5,0.01,7,0.104,9,3.23,27,0.385,30,0.001,31,0.594,32,0.193,47,0.674,83,2.032,95,0.146,99,1.146,101,0.025,103,0.001,104,0.001,144,2.889,145,1.743,163,2.129,165,0.732,240,2.116,364,1.716,369,1.489,374,2.157,376,1.584,379,1.556,404,2.061,467,3.631,470,4.454,524,3.981,596,2.051,999,6.226,1011,3.594,1031,2.164,1044,3.315,2344,4.927,2594,4.664,2880,3.23,2915,3.565,3239,4.222,3242,5.626,3245,3.565,3774,6.567,4040,4.617,4071,4.617,4072,6.994,5504,7.228,5506,7.778,5508,7.228,5541,7.228,5542,7.228,5543,6.333,5739,4.467,5740,6.882,6850,4.793,8027,9.138,8028,6.866,8029,5.006,8032,7.503,8033,5.006,8034,8.46,8035,7.503,8036,5.006,8037,4.793,8038,4.793,8039,4.793,8040,4.793,8041,5.006,8042,5.006,8043,5.006,9535,5.647,16754,6.754,16755,6.754]],["title/entities/RichTextElementNode.html",[380,1.41,3177,5.269]],["body/entities/RichTextElementNode.html",[0,0.285,3,0.022,4,0.022,5,0.012,7,0.129,27,0.444,30,0.001,32,0.15,47,0.855,95,0.164,96,2.261,101,0.02,103,0.001,104,0.001,165,0.844,208,3.105,217,1.105,227,0.883,240,4.008,334,0.921,364,1.978,380,2.232,381,2.754,398,2.45,404,1.934,405,2.261,617,4.831,1857,4.565,2586,4.417,2594,5.186,2598,5.426,2620,4.881,2621,3.953,2880,6.358,3144,5.728,3154,6.674,3177,8.341,3212,5.374,3234,9.327,3242,7.163,3562,6.856,3583,5.452,4090,5.625,4092,5.721,4093,5.625,16752,6.997,16753,6.997,16756,10.861,16757,8.369,16758,7.731,16759,9.327,16760,7.731,16761,7.731,16762,7.731]],["title/interfaces/RichTextElementNodeProps.html",[334,0.742,16759,5.892]],["body/interfaces/RichTextElementNodeProps.html",[0,0.291,3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,32,0.152,47,0.907,95,0.165,96,2.31,101,0.021,103,0.001,104,0.001,165,0.855,208,3.171,217,1.129,227,0.902,240,3.72,334,0.941,336,2.082,380,2.262,398,2.502,404,2.15,405,2.31,617,4.933,1857,4.627,2586,4.511,2594,3.77,2598,5.499,2620,4.984,2621,4.037,2880,6.29,3144,5.805,3154,6.764,3177,6.677,3212,5.488,3234,9.452,3242,7.314,3562,7.625,3583,5.568,4090,5.744,4092,5.843,4093,5.744,16752,7.146,16753,7.146,16756,7.895,16759,10.372,16760,7.895,16761,7.895,16762,7.895]],["title/interfaces/RichTextElementProps.html",[334,0.742,16747,5.892]],["body/interfaces/RichTextElementProps.html",[0,0.289,3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,32,0.166,36,1.849,47,0.935,95,0.152,101,0.021,103,0.001,104,0.001,112,1.908,144,2.949,148,2.633,165,0.853,208,3.158,221,2.006,227,1.251,334,0.937,336,2.073,347,1.734,371,2.345,404,2.146,728,4.225,1984,3.639,2586,4.492,2791,6.835,2797,6.039,2801,5.465,2802,6.504,2805,5.465,2806,6.58,2844,7.506,2867,5.465,2880,6.283,3242,7.355,3995,5.629,9517,6.648,16730,7.862,16741,9.969,16742,7.862,16743,9.969,16744,7.862,16745,7.862,16746,7.862,16747,9.427]],["title/classes/RichTextElementResponse.html",[0,0.229,4045,5.269]],["body/classes/RichTextElementResponse.html",[0,0.343,2,0.882,3,0.02,4,0.02,5,0.011,7,0.118,27,0.517,29,0.609,30,0.001,31,0.43,32,0.189,33,0.384,34,2.135,47,0.82,95,0.145,99,1.301,101,0.019,103,0.001,104,0.001,127,1.427,165,0.797,364,2.219,376,1.798,467,3.593,475,3.841,618,3.262,966,3.925,1031,2.457,2344,5.143,2621,3.621,2880,6.395,2909,5.153,2910,5.505,2911,5.505,2914,4.924,2915,5.325,3242,6.622,3403,5.826,3415,4.924,3658,7.883,3662,6.959,3666,5.441,3668,5.441,3774,7.184,4045,9.722,5506,6.896,16748,10.015,16749,11.803,16752,6.41,16753,6.41,16763,7.667,16764,7.667,16765,7.667,16766,7.667,16767,7.667]],["title/classes/RichTextElementResponseMapper.html",[0,0.229,5522,5.892]],["body/classes/RichTextElementResponseMapper.html",[0,0.256,2,0.865,3,0.02,4,0.02,5,0.011,7,0.116,8,1.202,27,0.494,29,0.791,30,0.001,31,0.559,32,0.167,33,0.498,34,1.291,35,1.348,95,0.153,99,1.276,100,2.518,101,0.014,103,0.001,104,0.001,111,2.233,116,2.435,165,0.787,214,3.29,217,0.994,227,1.179,234,1.928,347,2.03,591,3.217,627,3.957,806,3.17,974,4.644,975,5.694,1828,4.442,2092,4.258,2344,3.109,2588,8.726,2591,8.33,2592,8.33,2594,5.806,2595,8.032,2867,8.453,2880,6.2,3242,4.004,3658,4.766,3662,6.15,3671,6.573,3679,5.576,3774,4.343,4045,9.289,4046,6.951,4047,6.291,4814,6.951,5121,7.173,5506,5.143,5520,6.291,5522,11.326,9549,9.585,9553,6.291,9554,6.573,9555,6.573,16748,8.33,16768,12.369,16769,7.524,16770,7.524,16771,7.524,16772,11.17,16773,7.524]],["title/classes/RocketChatError.html",[0,0.229,1292,5.437]],["body/classes/RocketChatError.html",[0,0.19,2,0.397,3,0.009,4,0.009,5,0.005,7,0.053,27,0.337,29,0.274,30,0.001,31,0.5,32,0.141,33,0.173,34,1.529,36,2.804,39,3.371,47,1.012,51,4.008,55,1.784,72,2.626,83,1.683,87,3.485,95,0.104,101,0.015,103,0,104,0,105,0.737,111,2.515,112,2.894,116,4.001,127,0.708,148,1.068,165,0.442,187,0.494,204,2.419,216,1.034,217,1.382,221,2.248,227,1.376,234,1.445,305,2.564,334,0.776,347,1.944,351,4.404,359,1.197,369,0.761,404,1.013,461,1.625,535,3.816,543,4.063,564,2.076,692,1.286,701,1.205,720,1.868,728,2.761,731,4.368,839,1.62,853,1.754,874,3.97,953,4.595,1016,3.407,1035,2.403,1262,8.1,1263,7.184,1264,2.886,1265,4.821,1266,1.973,1267,6.163,1268,2.217,1269,2.697,1270,2.623,1271,4.37,1272,3.824,1273,4.37,1274,4.37,1275,4.37,1276,4.509,1277,1.78,1278,3.026,1279,2.886,1280,2.886,1281,2.886,1282,2.886,1283,2.886,1284,2.886,1285,2.501,1286,2.886,1287,2.886,1288,2.886,1289,2.217,1290,7.977,1291,1.469,1292,4.509,1293,4.74,1294,2.403,1295,1.992,1296,5.005,1297,4.677,1298,5.247,1299,5.184,1300,5.184,1301,5.489,1302,6.148,1303,7.768,1304,6.311,1305,5.897,1306,2.623,1307,2.886,1308,2.886,1309,2.403,1310,2.886,1311,2.886,1312,2.886,1313,2.697,1314,2.886,1315,5.51,1316,2.783,1317,2.886,1318,2.886,1319,2.886,1320,2.783,1321,2.886,1322,2.886,1323,2.886,1324,8.4,1325,2.886,1326,2.886,1327,1.363,1328,2.886,1329,2.886,1330,2.886,1331,2.886,1332,2.886,1333,2.886,1334,2.886,1335,2.886,1336,7.977,1337,7.977,1338,2.886,1339,2.886,1340,2.886,1341,2.886,1342,2.886,1343,2.886,1344,2.36,1345,2.886,1346,2.886,1347,2.886,1348,2.886,1349,2.886,1350,2.886,1351,2.886,1352,2.886,1353,2.886,1354,2.886,1355,2.886,1356,2.886,1357,2.886,1358,2.886,1359,4.25,1360,4.677,1361,2.886,1362,2.886,1363,2.886,1364,2.886,1365,2.886,1366,2.32,1367,2.886,1368,2.886,1369,2.886,1370,4.677,1371,2.886,1372,4.677,1373,4.677,1374,2.886,1375,2.886,1376,2.623,1377,5.897,1378,4.665,1379,4.251,1380,2.886,1381,3.262,1382,5.006,1383,4.25,1384,5.51,1385,5.897,1386,5.897,1387,5.897,1388,2.697,1389,2.886,1390,2.886,1391,2.886,1392,7.451,1393,5.897,1394,5.897,1395,5.897,1396,2.886,1397,4.677,1398,4.677,1399,2.886,1400,2.886,1401,2.886,1402,2.886,1403,2.886,1404,4.677,1405,4.37,2400,1.973,16774,5.594,16775,3.452,16776,3.452]],["title/interfaces/RocketChatGroupModel.html",[334,0.742,1276,5.437]],["body/interfaces/RocketChatGroupModel.html",[0,0.194,3,0.009,4,0.009,5,0.005,7,0.054,30,0.001,31,0.462,32,0.142,34,1.547,36,2.815,39,3.386,47,1.012,51,4.063,55,1.576,72,2.676,83,1.715,87,3.541,95,0.105,101,0.016,103,0,104,0,105,0.751,111,2.37,112,2.905,116,4.021,127,0.447,138,2.475,148,1.093,165,0.45,187,0.506,204,1.955,216,1.054,217,1.394,221,2.273,227,1.381,234,1.463,305,2.595,334,0.789,336,0.861,347,2.151,351,4.457,359,1.225,369,0.779,404,0.64,461,1.651,535,3.877,543,4.119,564,2.115,692,1.316,701,1.234,720,1.912,728,2.806,731,4.401,839,1.659,853,1.796,874,4.046,953,4.669,1016,2.936,1035,2.46,1262,8.178,1263,2.849,1264,2.954,1265,4.899,1266,2.019,1267,6.248,1268,2.269,1269,2.761,1270,2.685,1271,4.454,1272,3.897,1273,4.454,1274,4.454,1275,4.454,1276,5.777,1277,4.24,1278,3.084,1279,2.954,1280,2.954,1281,2.954,1282,2.954,1283,2.954,1284,2.954,1285,2.56,1286,2.954,1287,2.954,1288,2.954,1289,5.28,1290,7.541,1291,1.503,1292,2.849,1293,2.375,1294,2.46,1295,2.04,1296,2.508,1297,2.954,1298,5.286,1299,5.223,1300,5.223,1301,5.53,1302,6.191,1303,7.822,1304,6.379,1305,5.991,1306,2.685,1307,2.954,1308,2.954,1309,2.46,1310,2.954,1311,2.954,1312,2.954,1313,2.761,1314,2.954,1315,5.598,1316,2.849,1317,2.954,1318,2.954,1319,2.954,1320,2.849,1321,2.954,1322,2.954,1323,2.954,1324,8.482,1325,2.954,1326,2.954,1327,1.396,1328,2.954,1329,2.954,1330,2.954,1331,2.954,1332,2.954,1333,2.954,1334,2.954,1335,2.954,1336,8.063,1337,8.063,1338,2.954,1339,2.954,1340,2.954,1341,2.954,1342,2.954,1343,2.954,1344,2.416,1345,2.954,1346,2.954,1347,2.954,1348,2.954,1349,2.954,1350,2.954,1351,2.954,1352,2.954,1353,2.954,1354,2.954,1355,2.954,1356,2.954,1357,2.954,1358,2.954,1359,4.332,1360,4.766,1361,2.954,1362,2.954,1363,2.954,1364,2.954,1365,2.954,1366,2.375,1367,2.954,1368,2.954,1369,2.954,1370,4.766,1371,2.954,1372,4.766,1373,4.766,1374,2.954,1375,2.954,1376,2.685,1377,5.991,1378,4.74,1379,4.319,1380,2.954,1381,3.325,1382,5.075,1383,4.332,1384,5.598,1385,5.991,1386,5.991,1387,5.991,1388,2.761,1389,2.954,1390,2.954,1391,2.954,1392,7.541,1393,5.991,1394,5.991,1395,5.991,1396,2.954,1397,4.766,1398,4.766,1399,2.954,1400,2.954,1401,2.954,1402,2.954,1403,2.954,1404,4.766,1405,4.454]],["title/modules/RocketChatModule.html",[425,1.808,16777,5.437]],["body/modules/RocketChatModule.html",[0,0.315,3,0.025,4,0.025,5,0.013,8,1.117,27,0.385,29,0.735,30,0.001,31,0.52,32,0.13,33,0.463,35,1.117,95,0.158,101,0.018,103,0.001,104,0.001,187,1.325,227,0.977,425,3.299,427,3.42,432,3.42,433,3.489,449,3.72,627,3.54,701,3.971,836,5.342,1263,9.166,1266,5.288,1271,10.03,1320,9.923,1408,6.705,1409,7.642,1412,8.142,1420,6.441,3956,7.642,16777,9.923,16778,9.254,16779,9.254,16780,8.084,16781,9.254,16782,9.254]],["title/interfaces/RocketChatOptions.html",[334,0.742,1271,5.269]],["body/interfaces/RocketChatOptions.html",[0,0.19,3,0.009,4,0.009,5,0.005,7,0.053,30,0.001,31,0.455,32,0.147,33,0.555,34,1.527,36,2.803,39,3.37,47,1.02,51,4.003,55,1.549,72,2.622,83,1.681,87,3.481,95,0.104,101,0.015,103,0,104,0,105,0.736,111,2.354,112,2.893,116,4,127,0.436,148,1.066,165,0.441,187,0.493,204,1.916,216,1.033,217,1.381,221,2.247,227,1.375,234,1.444,305,2.561,334,0.775,336,0.839,347,1.942,351,4.4,359,1.195,369,0.76,404,0.624,461,1.623,535,3.811,543,4.059,564,2.073,692,1.284,701,1.203,720,1.864,728,2.758,731,4.366,839,1.618,853,1.751,874,6.319,953,4.59,1016,2.893,1035,2.399,1262,8.094,1263,2.778,1264,2.881,1265,4.816,1266,1.969,1267,6.156,1268,2.213,1269,2.692,1270,2.618,1271,5.503,1272,6.087,1273,6.956,1274,6.956,1275,6.956,1276,4.503,1277,1.777,1278,3.022,1279,2.881,1280,2.881,1281,2.881,1282,2.881,1283,2.881,1284,2.881,1285,2.497,1286,2.881,1287,2.881,1288,2.881,1289,2.213,1290,7.445,1291,1.466,1292,2.778,1293,2.316,1294,2.399,1295,1.989,1296,2.445,1297,2.881,1298,5.244,1299,5.181,1300,5.181,1301,5.486,1302,6.145,1303,7.764,1304,6.306,1305,5.89,1306,2.618,1307,2.881,1308,2.881,1309,2.399,1310,2.881,1311,2.881,1312,2.881,1313,2.692,1314,2.881,1315,5.503,1316,2.778,1317,2.881,1318,2.881,1319,2.881,1320,2.778,1321,2.881,1322,2.881,1323,2.881,1324,8.394,1325,2.881,1326,2.881,1327,1.361,1328,2.881,1329,2.881,1330,2.881,1331,2.881,1332,2.881,1333,2.881,1334,2.881,1335,2.881,1336,7.971,1337,7.971,1338,2.881,1339,2.881,1340,2.881,1341,2.881,1342,2.881,1343,2.881,1344,2.356,1345,2.881,1346,2.881,1347,2.881,1348,2.881,1349,2.881,1350,2.881,1351,2.881,1352,2.881,1353,2.881,1354,2.881,1355,2.881,1356,2.881,1357,2.881,1358,2.881,1359,4.245,1360,4.67,1361,2.881,1362,2.881,1363,2.881,1364,2.881,1365,2.881,1366,2.316,1367,2.881,1368,2.881,1369,2.881,1370,4.67,1371,2.881,1372,4.67,1373,4.67,1374,2.881,1375,2.881,1376,2.618,1377,5.89,1378,4.66,1379,4.246,1380,2.881,1381,3.258,1382,5.001,1383,4.245,1384,5.503,1385,5.89,1386,5.89,1387,5.89,1388,2.692,1389,2.881,1390,2.881,1391,2.881,1392,7.445,1393,5.89,1394,5.89,1395,5.89,1396,2.881,1397,4.67,1398,4.67,1399,2.881,1400,2.881,1401,2.881,1402,2.881,1403,2.881,1404,4.67,1405,4.364]],["title/entities/Role.html",[380,1.41,496,2.841]],["body/entities/Role.html",[0,0.263,3,0.021,4,0.021,5,0.011,7,0.119,27,0.47,30,0.001,31,0.674,32,0.142,47,0.737,95,0.145,96,2.088,101,0.019,103,0.001,104,0.001,116,2.5,144,2.77,165,0.801,217,1.495,227,0.815,234,1.949,240,3.764,305,2.223,329,2.986,334,1.116,364,2.097,380,2.366,381,2.542,394,5.794,398,2.262,399,3.97,400,3.39,402,3.178,404,1.399,405,2.088,406,2.476,496,5.256,843,5.244,1019,4.506,1910,3.649,1916,6.321,2136,3.092,2678,5.533,2682,5.533,3110,6.043,4083,4.554,4303,3.39,4538,6.8,7006,6.228,8713,6.749,9620,7.514,9650,7.92,11669,8.857,11670,7.137,11671,6.46,11672,6.228,11673,6.46,11674,6.228,11675,7.137,11676,6.46,11677,7.137,11678,9.366,11679,7.137,11680,8.477,11681,6.228,16783,7.726,16784,7.726,16785,7.726,16786,7.726]],["title/classes/RoleDto.html",[0,0.229,4507,4.887]],["body/classes/RoleDto.html",[0,0.312,2,1.057,3,0.024,4,0.024,5,0.013,7,0.141,26,2.56,27,0.532,29,0.73,30,0.001,31,0.719,32,0.18,33,0.658,34,2.105,95,0.118,99,1.559,101,0.018,103,0.001,104,0.001,127,1.163,165,0.895,405,3.06,595,3.175,618,3.91,619,5.252,843,5.356,1916,5.944,2136,3.678,4303,4.032,4507,9.53,4538,6.945,9620,6.812,9650,7.18,16787,9.191,16788,11.323,16789,9.191,16790,9.191]],["title/classes/RoleMapper.html",[0,0.229,16791,5.892]],["body/classes/RoleMapper.html",[0,0.306,2,1.036,3,0.024,4,0.024,5,0.013,7,0.139,8,1.349,27,0.465,29,0.888,30,0.001,31,0.683,32,0.157,33,0.559,34,1.545,35,1.349,95,0.143,99,1.528,101,0.017,103,0.001,104,0.001,227,1.18,234,1.461,380,1.883,496,5.693,627,4.149,1916,4.362,4355,5.783,4356,7.035,4507,9.656,4518,7.035,16791,9.767,16792,9.006,16793,9.767,16794,9.348,16795,11.181,16796,9.006,16797,9.006,16798,9.348,16799,9.006,16800,9.006,16801,9.006,16802,7.867]],["title/modules/RoleModule.html",[425,1.808,1625,5.125]],["body/modules/RoleModule.html",[0,0.297,3,0.023,4,0.023,5,0.012,30,0.001,95,0.161,101,0.017,103,0.001,104,0.001,187,1.25,425,3.214,427,3.227,428,3.404,429,3.51,430,3.495,431,3.464,432,4.432,433,4.521,442,4.409,443,3.434,444,3.347,450,3.592,1625,10.638,4621,10.594,4644,7.301,16803,8.732,16804,8.732,16805,8.732,16806,11.657,16807,12.18,16808,8.732,16809,8.732]],["title/classes/RoleNameMapper.html",[0,0.229,12389,5.892]],["body/classes/RoleNameMapper.html",[0,0.285,2,0.962,3,0.022,4,0.022,5,0.012,7,0.129,8,1.288,27,0.444,29,0.848,30,0.001,31,0.695,32,0.15,33,0.534,35,1.288,95,0.137,99,1.42,101,0.016,103,0.001,104,0.001,227,1.381,305,3.071,496,4.498,529,3.691,627,4.072,975,6.101,982,4.193,2485,3.615,4442,5.186,4538,7.692,10345,11.441,11451,10.219,11452,8.341,11453,8.113,11454,8.113,12363,8.934,12389,9.327,12440,8.341,16810,11.758,16811,8.369,16812,9.863,16813,10.677,16814,8.369,16815,10.677,16816,8.369,16817,7.731,16818,7.731,16819,7.731,16820,8.369,16821,8.369,16822,8.369]],["title/classes/RoleReference.html",[0,0.229,6942,4.786]],["body/classes/RoleReference.html",[0,0.319,2,1.079,3,0.025,4,0.025,5,0.013,7,0.144,26,2.583,27,0.515,29,0.745,30,0.001,31,0.724,32,0.174,33,0.469,34,2.124,95,0.147,101,0.018,103,0.001,104,0.001,127,1.187,165,0.906,208,3.482,334,1.033,405,3.099,595,3.242,618,3.992,619,5.362,2136,3.755,3416,8.197,4303,4.117,4538,7.009,6942,9.389,16823,12.901,16824,11.468,16825,9.384]],["title/injectables/RoleRepo.html",[105,0.889,16806,5.639]],["body/injectables/RoleRepo.html",[0,0.21,3,0.016,4,0.016,5,0.009,7,0.095,8,1.051,10,3.518,12,4.018,18,4.305,26,2.285,27,0.531,29,0.978,30,0.001,31,0.727,32,0.176,33,0.616,34,1.73,35,1.485,36,3.013,40,4.193,47,0.733,55,1.36,95,0.129,99,1.049,101,0.012,103,0.001,104,0.001,105,1.148,107,1.479,112,3.043,144,1.69,165,0.688,187,0.885,217,1.446,227,1.218,329,1.821,380,1.293,381,2.867,404,1.578,496,3.67,596,3.325,692,4.878,770,5.135,877,7.178,883,3.652,884,4.115,885,5.019,908,3.77,909,5.378,910,3.77,911,3.816,913,3.77,914,3.816,915,3.404,3275,7.284,3292,7.611,3639,4.227,3911,8.556,4538,6.966,4960,5.518,8768,7.284,8776,7.284,16806,7.284,16826,6.183,16827,9.319,16828,7.611,16829,6.183,16830,6.183,16831,7.611,16832,6.183,16833,8.048,16834,6.183,16835,6.183,16836,8.712,16837,10.117,16838,8.712]],["title/injectables/RoleService.html",[105,0.889,4621,5.125]],["body/injectables/RoleService.html",[0,0.247,3,0.019,4,0.019,5,0.01,7,0.112,8,1.173,12,4.484,26,2.68,27,0.508,29,0.931,30,0.001,31,0.658,32,0.164,33,0.586,34,1.244,35,1.414,36,2.837,40,4.679,95,0.157,99,1.23,101,0.014,103,0.001,104,0.001,105,1.281,107,1.735,112,3.044,127,0.918,187,1.038,215,2.347,216,1.341,217,1.697,221,2.761,227,1.237,380,1.517,381,2.387,450,2.983,496,4.936,770,4.275,3110,3.513,3275,8.129,3292,8.493,4507,9.309,4538,6.631,4621,7.387,4960,4.594,11453,5.511,16791,6.336,16806,10.516,16828,8.493,16831,8.493,16839,7.253,16840,11.718,16841,7.253,16842,7.253,16843,7.253,16844,7.253,16845,7.253,16846,7.253,16847,7.253,16848,7.253,16849,12.578,16850,7.253,16851,7.253,16852,7.253,16853,7.253,16854,7.253,16855,7.253,16856,7.253]],["title/injectables/RoleUc.html",[105,0.889,16807,5.892]],["body/injectables/RoleUc.html",[0,0.308,3,0.024,4,0.024,5,0.013,7,0.139,8,1.355,27,0.467,29,0.892,30,0.001,31,0.63,32,0.158,33,0.562,35,1.094,36,2.847,95,0.164,99,1.538,101,0.017,103,0.001,104,0.001,105,1.48,107,2.169,112,2.735,127,1.147,187,1.298,215,2.934,216,1.676,217,1.197,227,0.957,4507,6.569,4518,7.083,4538,7.214,4621,10.143,4644,7.58,4960,5.743,16807,9.808,16828,9.808,16831,9.808,16857,9.067,16858,9.067,16859,9.067,16860,9.067,16861,9.067]],["title/injectables/RoomBoardDTOFactory.html",[105,0.889,8006,5.437]],["body/injectables/RoomBoardDTOFactory.html",[0,0.239,3,0.012,4,0.012,5,0.007,7,0.071,8,0.848,27,0.292,29,0.558,30,0.001,31,0.478,32,0.166,33,0.352,34,1.206,35,0.557,95,0.144,99,0.783,100,3.187,101,0.009,103,0.001,104,0,105,0.926,107,1.104,111,2.458,127,1.078,138,3.052,187,0.661,188,3.605,216,1.3,217,1.77,227,1.331,234,1.14,347,1.432,369,1.55,371,1.937,461,2.832,564,4.006,591,3.006,592,3.101,806,1.945,843,2.015,1041,3.905,1344,3.155,1474,2.386,1828,5.004,1865,3.682,1866,2.612,1881,2.924,1952,5.792,1984,5.45,2171,1.984,2172,2.207,2173,2.129,2344,4.461,2594,2.036,2689,4.425,2691,4.495,2693,7.822,2696,5.492,2698,6.17,2701,2.129,2709,8.567,2777,3.606,2778,3.007,3022,3.507,3050,8.951,3051,5.878,3055,5.878,3408,3.859,3418,3.213,3419,2.849,3422,3.859,3715,2.885,3733,5.632,3803,3.721,3804,3.606,3898,2.519,4533,5.132,4927,4.032,4988,3.721,6260,5.632,6789,3.859,7276,8.319,7430,3.276,7570,4.032,7910,6.142,7911,7.866,7912,4.264,7913,9.805,7914,9.956,7918,4.264,7919,4.264,7929,4.264,7930,9.972,7932,8.567,7933,4.264,7935,4.264,7940,4.264,7942,4.264,7944,4.264,7946,4.264,7948,3.344,7949,6.142,7950,6.142,7951,4.264,7952,4.264,7953,4.032,7954,6.495,7955,4.264,7956,6.495,7957,6.495,7958,4.264,7959,4.264,7960,4.264,7961,4.264,7962,4.264,7963,4.264,7964,4.264,7965,4.264,7966,4.264,7967,4.264,7968,6.495,7969,4.032,7970,4.264,7971,4.264,7972,4.264,7973,4.264,7974,7.866,7975,4.264,7976,4.264,7977,4.264,7978,4.032,7979,4.032,7980,6.495,7981,4.264,7982,4.264,7983,4.032,7984,4.032,7985,3.859,7986,4.032,7987,4.032,7988,4.264,7989,4.264,7990,4.264,7991,4.264,7992,4.264,7993,4.264,7994,4.032,7995,4.264,7996,4.264,7997,4.264,7998,4.264,7999,4.264,8000,4.264,8001,4.264,8002,4.264,8003,4.264,8004,3.859,8005,4.264,8006,5.667,8007,7.866,8008,4.264,8009,4.264,16862,4.616,16863,4.616,16864,4.616,16865,4.616]],["title/injectables/RoomBoardResponseMapper.html",[105,0.889,13374,5.639]],["body/injectables/RoomBoardResponseMapper.html",[0,0.19,3,0.015,4,0.015,5,0.008,7,0.086,8,0.978,27,0.461,29,0.444,30,0.001,31,0.535,32,0.147,33,0.28,34,1.636,35,0.675,95,0.149,99,0.948,101,0.011,103,0,104,0,105,1.068,107,1.338,111,2.594,144,2.858,165,0.641,187,0.8,188,3.069,208,2.074,217,1.729,227,1.172,234,1.938,329,3.081,564,3.008,591,4.078,592,4.207,974,3.451,975,4.633,982,2.801,1041,5.811,1344,3.822,1474,2.751,1984,5.333,2344,3.942,2691,2.453,2697,4.279,2701,2.578,2773,6.778,2775,4.367,2777,4.367,2778,3.642,3402,11.113,3405,6.778,3406,6.778,3408,4.674,3412,5.164,3418,3.891,3419,3.451,3420,5.164,3421,5.164,3422,4.674,3670,7.489,3674,4.884,3715,3.495,3729,4.884,4533,4.886,4988,4.507,7932,9.285,7948,6.911,7949,8.332,7950,8.332,7979,7.082,7983,7.082,7984,4.884,7985,4.674,7986,4.884,7987,4.884,7994,7.082,8004,4.674,9005,5.164,13374,6.778,16866,11.582,16867,9.538,16868,9.538,16869,9.538,16870,9.538,16871,5.164,16872,8.746,16873,5.164,16874,5.591,16875,5.591,16876,5.591,16877,5.591,16878,5.591,16879,5.591,16880,5.591,16881,5.591,16882,5.591,16883,9.538,16884,5.591,16885,5.591,16886,5.591,16887,7.489,16888,5.591,16889,5.591,16890,5.591,16891,8.107,16892,5.591,16893,8.107,16894,5.591,16895,5.591,16896,5.591,16897,5.591,16898,5.591,16899,5.591,16900,5.591,16901,5.591,16902,5.591,16903,5.591,16904,5.591,16905,5.591,16906,5.591,16907,5.591,16908,5.591,16909,5.591,16910,8.107,16911,5.591,16912,5.591,16913,5.591,16914,5.591,16915,5.591,16916,8.107,16917,5.591,16918,5.591,16919,5.591,16920,5.591,16921,5.591,16922,5.591]],["title/classes/RoomElementUrlParams.html",[0,0.229,16923,5.892]],["body/classes/RoomElementUrlParams.html",[0,0.379,2,1.031,3,0.024,4,0.024,5,0.013,7,0.138,27,0.463,30,0.001,32,0.156,34,2.178,47,0.923,95,0.143,101,0.017,103,0.001,104,0.001,165,0.881,364,2.066,368,5.014,369,2.799,370,4.235,371,3.499,374,2.864,376,2.102,379,2.569,467,3.261,1000,5.189,1344,8.296,2594,4.918,3834,6.503,3872,7.622,4186,9.783,5595,8.282,5597,8.282,7276,9.411,16923,9.74,16924,12.136,16925,8.966]],["title/classes/RoomUrlParams.html",[0,0.229,16926,5.892]],["body/classes/RoomUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,1344,8.599,3834,5.671,7276,8.685,16926,10.237,16927,9.724,16928,9.724]],["title/injectables/RoomsAuthorisationService.html",[105,0.889,7914,5.269]],["body/injectables/RoomsAuthorisationService.html",[0,0.236,3,0.018,4,0.018,5,0.01,7,0.107,8,1.139,27,0.478,29,0.914,30,0.001,31,0.646,32,0.161,33,0.576,35,1.389,95,0.121,99,1.177,101,0.018,103,0.001,104,0.001,105,1.244,107,1.661,187,0.993,188,5.137,217,1.52,227,1.214,234,1.126,305,1.996,347,2.633,371,2.601,461,3.197,1031,2.224,1871,4.284,1872,4.591,1928,7.664,2488,4.744,2689,5.98,2691,5.573,2701,4.945,3218,4.591,4982,3.891,4994,3.966,7914,7.372,7985,5.802,11344,4.925,16929,6.94,16930,9.438,16931,9.438,16932,9.438,16933,9.438,16934,9.438,16935,6.94,16936,9.438,16937,6.94,16938,9.438,16939,6.94,16940,9.438,16941,6.94,16942,6.94,16943,9.438,16944,9.438,16945,6.94,16946,8.244,16947,6.94,16948,11.941,16949,6.94,16950,6.94,16951,6.94,16952,9.906,16953,9.438,16954,9.438,16955,8.718]],["title/controllers/RoomsController.html",[481,2.629,13377,5.892]],["body/controllers/RoomsController.html",[0,0.185,3,0.014,4,0.014,5,0.008,7,0.084,8,0.959,27,0.456,29,0.872,30,0.001,31,0.617,32,0.154,33,0.55,35,1.325,36,2.735,95,0.166,100,3.677,101,0.01,103,0,104,0,111,2.065,112,2.967,127,0.688,185,4.85,187,0.779,206,2.784,216,1.909,217,1.515,221,2.589,227,0.991,264,4.857,364,2.035,376,1.275,447,2.28,481,2.12,483,2.618,491,6.537,513,6.923,543,5.174,552,3.493,555,2.871,556,2.943,557,2.968,558,2.585,559,2.968,561,2.968,805,4.385,1984,3.398,2934,8.407,2955,3.078,2988,7.569,3013,5.256,3026,3.357,3027,3.108,3673,3.718,3710,6.62,4533,4.789,6042,4.249,6282,4.385,6287,8.634,6495,5.025,6517,7.85,6574,7.85,7280,5.025,11763,4.031,13373,7.85,13374,6.644,13375,7.85,13377,6.942,13383,5.025,13657,8.067,13664,5.025,16094,9.021,16099,9.021,16872,4.548,16923,9.021,16926,10.998,16956,5.439,16957,9.39,16958,9.39,16959,9.39,16960,5.439,16961,5.439,16962,5.439,16963,5.439,16964,5.439,16965,5.439,16966,5.439,16967,7.947,16968,5.439,16969,5.439,16970,7.947,16971,5.439,16972,5.439,16973,7.947,16974,5.439,16975,4.385,16976,7.341,16977,5.439,16978,5.439,16979,5.439,16980,5.439,16981,5.439,16982,5.439,16983,5.439,16984,7.947,16985,5.439,16986,5.439,16987,5.439,16988,5.439,16989,5.439,16990,6.942,16991,5.439,16992,6.942,16993,5.439,16994,5.439,16995,5.439]],["title/injectables/RoomsService.html",[105,0.889,6522,5.437]],["body/injectables/RoomsService.html",[0,0.228,3,0.018,4,0.018,5,0.009,7,0.103,8,1.111,26,2.745,27,0.437,29,0.836,30,0.001,31,0.591,32,0.159,33,0.527,34,1.149,35,1.111,36,2.463,39,2.821,95,0.161,99,1.136,101,0.013,103,0.001,104,0.001,105,1.214,107,1.602,111,2.563,112,2.754,127,1.166,187,0.959,216,2.197,217,1.662,221,2.965,227,0.972,247,2.657,347,1.365,369,1.476,450,2.755,1344,8.397,1962,8.081,1984,5.38,2171,2.878,2172,3.203,2173,3.089,2697,3.535,2698,6.674,2861,4.134,2913,4.964,2994,9.326,3031,5.399,3140,5.6,3536,9.83,3898,3.655,4736,6.187,4828,10.52,4837,6.187,4840,5.851,4941,9.333,4995,6.187,6522,7.425,7969,5.851,16996,6.698,16997,9.211,16998,9.211,16999,6.698,17000,6.698,17001,9.211,17002,6.698,17003,9.211,17004,6.698,17005,6.698,17006,9.211,17007,6.698,17008,9.211,17009,11.887,17010,6.698,17011,6.698,17012,6.698,17013,6.187,17014,6.698,17015,6.698,17016,6.698,17017,6.698,17018,6.698]],["title/injectables/RoomsUc.html",[105,0.889,13375,5.639]],["body/injectables/RoomsUc.html",[0,0.2,3,0.016,4,0.016,5,0.008,7,0.091,8,1.016,26,2.901,27,0.445,29,0.851,30,0.001,31,0.602,32,0.15,33,0.536,35,1.186,36,2.562,39,3.542,95,0.156,99,1,101,0.011,103,0.001,104,0.001,105,1.11,107,1.41,111,2.358,112,2.833,127,1.066,187,0.844,188,4.464,208,2.187,216,2.18,217,1.713,221,3.088,227,0.622,234,1.366,305,2.422,347,2.002,369,1.299,441,7.402,450,2.424,461,2.47,676,5.271,1344,7.75,1958,7.19,1984,4.848,2037,3.402,2594,2.599,2994,8.997,4000,5.264,4109,9.364,4186,7.92,6521,4.927,6522,9.785,6539,7.465,6735,6.398,7276,6.241,7913,8.583,7914,8.373,7932,8.214,7953,5.148,8006,8.641,13375,7.04,17013,7.779,17019,5.893,17020,8.421,17021,8.421,17022,9.825,17023,5.893,17024,8.421,17025,5.893,17026,8.421,17027,9.825,17028,5.893,17029,5.893,17030,5.893,17031,5.893,17032,5.893,17033,9.825,17034,5.893,17035,5.893,17036,5.893,17037,8.421,17038,7.779,17039,8.421,17040,5.893,17041,5.893,17042,5.893,17043,5.893]],["title/interfaces/RpcMessage.html",[334,0.742,10185,5.269]],["body/interfaces/RpcMessage.html",[3,0.026,4,0.026,5,0.014,7,0.152,30,0.001,32,0.166,33,0.592,55,2.175,101,0.023,103,0.001,104,0.001,165,0.935,204,4.605,334,1.303,336,2.409,404,1.791,564,3.67,692,4.72,1327,5.302,7907,6.885,8203,10.586,10185,9.248,11399,9.137,11400,9.137]],["title/interfaces/Rule.html",[334,0.742,1989,4.163]],["body/interfaces/Rule.html",[3,0.023,4,0.023,5,0.012,7,0.135,8,1.325,27,0.456,29,0.872,30,0.001,31,0.617,32,0.154,33,0.549,35,1.325,59,2.716,95,0.161,99,1.484,101,0.017,103,0.001,104,0.001,199,5.051,334,0.963,336,2.132,347,2.565,359,4.656,461,3.157,692,4.93,1854,5.103,1862,7.393,1887,5.402,1928,6.779,1939,5.051,1940,5.543,1941,6.21,1942,6.649,1989,6.779,2033,7.155,3352,7.382,3356,7.265,16290,7.645,17044,8.751,17045,8.751,17046,8.751]],["title/injectables/RuleManager.html",[105,0.889,1965,5.639]],["body/injectables/RuleManager.html",[0,0.203,3,0.016,4,0.016,5,0.008,7,0.092,8,1.025,27,0.448,29,0.785,30,0.001,31,0.555,32,0.151,33,0.495,35,1.025,95,0.16,99,1.011,101,0.011,103,0.001,104,0.001,105,1.119,107,1.427,111,2.725,116,3.2,127,1.075,165,0.671,187,0.854,199,4.114,200,1.943,208,2.213,216,2.482,217,1.122,227,0.896,234,1.377,247,2.365,305,2.443,355,2.345,359,3.949,461,2.624,905,2.476,1439,2.852,1854,6.284,1862,5.932,1939,6.22,1940,3.777,1941,4.232,1942,4.531,1954,10.184,1955,10.184,1957,9.819,1959,8.774,1961,9.01,1963,9.819,1965,7.1,1967,10.184,1969,10.184,1971,9.819,1972,10.184,1974,10.184,1975,10.184,1979,5.509,1989,7.932,3218,5.617,17047,11.389,17048,5.963,17049,8.687,17050,8.492,17051,8.492,17052,5.963,17053,9.889,17054,8.492,17055,8.492,17056,5.963,17057,8.492,17058,5.963,17059,5.963,17060,5.963,17061,5.963,17062,5.963,17063,5.963,17064,5.963,17065,5.963,17066,5.963,17067,5.963,17068,5.963,17069,5.963,17070,5.963,17071,5.963,17072,5.963,17073,5.963,17074,5.963,17075,5.963,17076,5.963,17077,5.963,17078,5.963,17079,5.963,17080,8.492,17081,5.963,17082,5.963]],["title/injectables/S3ClientAdapter.html",[105,0.889,10437,5.269]],["body/injectables/S3ClientAdapter.html",[0,0.105,3,0.008,4,0.008,5,0.015,7,0.047,8,0.615,10,3.059,27,0.456,29,0.824,30,0.001,31,0.583,32,0.15,33,0.519,34,0.529,35,1.252,36,2.174,47,0.936,59,0.956,72,1.447,95,0.128,101,0.006,103,0,104,0,105,0.672,107,0.737,111,1.913,112,2.856,116,4.144,127,0.645,144,0.842,148,0.953,154,2.972,163,2.646,165,0.403,185,3.919,187,0.441,199,2.892,204,1.057,216,0.942,217,1.682,221,2.735,227,1.183,234,1.909,247,1.222,305,2.986,329,0.908,334,0.339,359,1.068,483,1.483,535,3.527,543,1.544,576,6.84,731,3.3,770,1.816,784,5.916,806,1.298,839,1.447,883,3.176,1052,2.657,1053,3.359,1062,2.225,1158,5.691,1298,3.578,1299,3.535,1300,3.535,1301,3.743,1302,4.099,1303,5.179,1304,4.312,1306,2.342,1376,3.874,1439,3.118,1440,2.107,1441,2.284,1459,6.865,1461,8.368,1545,0.984,1650,2.692,1828,4.462,1841,2.233,1865,5.012,2076,4.43,2180,3.229,2412,5.093,2422,1.879,2563,4.075,2686,1.64,2726,4.709,2835,3.038,3058,2.284,3542,3.907,3543,1.513,3544,2.707,3852,2.107,4630,2.649,5279,4.453,5410,5.389,5562,3.548,6157,5.757,6158,8.756,6160,4.11,6161,4.11,6162,5.092,6163,5.011,6166,8.078,6169,2.284,6170,2.284,6171,2.284,6172,2.284,6617,2.284,7679,3.485,7785,7.476,7809,6.618,7819,4.262,7820,2.692,7821,4.11,9401,3.187,9485,2.692,9486,2.847,9935,7.093,9985,7.271,10402,5.918,10409,2.847,10437,3.982,11551,2.484,11827,3.694,16174,4.709,17083,10.354,17084,3.082,17085,6.52,17086,5.098,17087,7.576,17088,6.52,17089,5.098,17090,5.695,17091,3.082,17092,5.098,17093,5.098,17094,3.082,17095,5.098,17096,3.082,17097,5.098,17098,3.082,17099,3.082,17100,5.098,17101,3.082,17102,5.098,17103,3.082,17104,3.082,17105,5.098,17106,3.082,17107,5.098,17108,3.082,17109,7.576,17110,5.098,17111,3.082,17112,5.098,17113,5.098,17114,5.098,17115,5.098,17116,3.082,17117,6.023,17118,2.847,17119,3.082,17120,3.082,17121,3.082,17122,3.082,17123,3.082,17124,2.692,17125,11.606,17126,8.392,17127,3.082,17128,3.082,17129,3.082,17130,3.082,17131,3.082,17132,3.082,17133,3.082,17134,3.082,17135,5.098,17136,5.098,17137,5.098,17138,3.082,17139,3.082,17140,5.098,17141,3.082,17142,3.082,17143,3.082,17144,3.082,17145,3.082,17146,5.098,17147,5.098,17148,5.098,17149,5.098,17150,5.098,17151,3.082,17152,3.082,17153,3.082,17154,5.098,17155,3.082,17156,3.082,17157,3.082,17158,3.082,17159,3.082,17160,3.082,17161,3.082,17162,3.082,17163,3.082,17164,3.082,17165,3.082,17166,3.082,17167,6.52,17168,3.082,17169,5.098,17170,3.082,17171,3.082,17172,3.082,17173,3.082,17174,3.082,17175,3.082,17176,6.52,17177,3.082,17178,5.098,17179,3.082,17180,3.082,17181,3.082,17182,3.082,17183,3.082,17184,3.082]],["title/modules/S3ClientModule.html",[425,1.808,10257,5.125]],["body/modules/S3ClientModule.html",[0,0.274,3,0.021,4,0.021,5,0.011,8,0.971,27,0.335,29,0.639,30,0.001,31,0.452,32,0.113,33,0.403,35,0.971,95,0.162,101,0.015,103,0.001,104,0.001,154,5.263,187,1.152,217,1.612,227,1.099,234,1.689,334,0.886,369,2.296,425,3.094,427,2.976,432,4.267,433,3.036,438,4.919,449,3.236,627,3.242,836,4.647,837,5.967,839,3.779,1052,4.244,1053,5.742,1412,7.636,1545,2.571,2186,6.596,6158,8.136,6163,8.361,6165,7.249,6167,7.249,6168,7.249,7809,10.085,7819,6.731,7820,7.033,7821,8.395,7850,7.437,7852,7.437,7853,5.967,10163,7.437,10257,8.772,10437,6.289,12975,7.437,17083,9.621,17185,7.437,17186,10.414,17187,8.051,17188,8.051,17189,8.051,17190,8.051,17191,8.051,17192,8.051,17193,8.051]],["title/interfaces/S3Config.html",[334,0.742,6163,4.461]],["body/interfaces/S3Config.html",[3,0.025,4,0.025,5,0.013,7,0.147,30,0.001,32,0.187,47,1.034,101,0.018,103,0.001,104,0.001,165,0.915,334,1.05,336,2.324,2186,8.217,6163,7.662,6165,9.03,6166,9.03,6167,9.03,6168,9.03,10384,7.452,10385,7.248,17194,9.539]],["title/interfaces/S3Config-1.html",[334,0.617,905,2.329,6163,3.71]],["body/interfaces/S3Config-1.html",[3,0.023,4,0.023,5,0.015,7,0.132,30,0.001,31,0.481,32,0.185,47,1.042,55,1.883,95,0.11,101,0.024,103,0.001,104,0.001,163,3.416,165,0.856,334,1.375,336,2.086,1565,4.757,2186,7.911,5410,7.632,5562,5.962,6157,6.508,6158,6.691,6159,7.161,6160,6.904,6161,6.904,6162,5.757,6163,7.167,6164,9.757,6165,8.694,6166,8.694,6167,8.694,6168,8.694,6169,6.348,6170,6.348,6171,6.348,6172,6.348]],["title/classes/SSOLoginQuery.html",[0,0.229,15703,5.892]],["body/classes/SSOLoginQuery.html",[0,0.392,2,1.089,3,0.025,4,0.025,5,0.013,7,0.146,27,0.479,30,0.001,32,0.162,33,0.647,47,0.839,52,5.769,95,0.148,101,0.018,103,0.001,104,0.001,165,0.911,347,2.35,364,2.137,373,6.088,374,3.025,376,2.221,467,3.342,470,4.859,471,5.291,15058,10.025,15703,10.075,17195,12.436,17196,9.472,17197,9.472,17198,9.472,17199,9.472,17200,9.472]],["title/interfaces/SanisGruppeResponse.html",[334,0.742,17201,5.892]],["body/interfaces/SanisGruppeResponse.html",[3,0.024,4,0.024,5,0.013,7,0.142,30,0.001,32,0.188,34,2.201,47,1.005,95,0.146,101,0.018,103,0.001,104,0.001,165,0.897,334,1.016,336,2.249,1016,3.297,1277,4.762,12674,11.207,16457,6.552,17201,9.919,17202,6.69,17203,8.529,17204,12.829,17205,12.167,17206,12.829,17207,11.207,17208,11.851,17209,8.057]],["title/interfaces/SanisGruppenResponse.html",[334,0.742,17210,5.639]],["body/interfaces/SanisGruppenResponse.html",[3,0.025,4,0.025,5,0.013,7,0.145,30,0.001,32,0.174,33,0.575,95,0.159,101,0.018,103,0.001,104,0.001,165,0.907,334,1.035,336,2.291,1016,4.426,10700,10.408,16457,6.674,17201,11.279,17202,6.815,17203,12.231,17209,8.798,17210,9.602,17211,8.689,17212,12.231,17213,12.911,17214,11.279,17215,8.689,17216,8.689]],["title/interfaces/SanisGruppenzugehoerigkeitResponse.html",[334,0.742,17214,5.892]],["body/interfaces/SanisGruppenzugehoerigkeitResponse.html",[3,0.027,4,0.027,5,0.014,7,0.158,30,0.001,32,0.144,95,0.131,101,0.02,103,0.001,104,0.001,165,0.955,334,1.127,336,2.495,496,4.315,1277,5.283,16457,7.269,17202,7.422,17209,7.269,17212,9.463,17214,10.56,17217,11.604,17218,11.604]],["title/interfaces/SanisLaufzeitResponse.html",[334,0.742,17207,5.892]],["body/interfaces/SanisLaufzeitResponse.html",[3,0.027,4,0.027,5,0.014,7,0.157,30,0.001,32,0.169,83,4.128,101,0.019,103,0.001,104,0.001,165,0.952,334,1.122,336,2.482,16457,7.232,17202,7.384,17205,9.415,17207,10.528,17219,13.262,17220,13.262]],["title/interfaces/SanisNameResponse.html",[334,0.742,17221,5.892]],["body/interfaces/SanisNameResponse.html",[3,0.027,4,0.027,5,0.014,7,0.157,30,0.001,31,0.572,32,0.169,47,0.998,101,0.019,103,0.001,104,0.001,165,0.952,334,1.122,336,2.482,16457,7.232,17202,7.384,17221,10.528,17222,13.262,17223,13.262]],["title/interfaces/SanisOrganisationResponse.html",[334,0.742,17224,5.892]],["body/interfaces/SanisOrganisationResponse.html",[3,0.026,4,0.026,5,0.014,7,0.15,30,0.001,31,0.734,32,0.183,34,2.242,47,1.028,101,0.019,103,0.001,104,0.001,165,0.927,334,1.073,336,2.374,12674,11.416,16457,6.917,17202,7.062,17224,10.252,17225,9.004,17226,13.068]],["title/interfaces/SanisPersonResponse.html",[334,0.742,17227,5.892]],["body/interfaces/SanisPersonResponse.html",[3,0.025,4,0.025,5,0.014,7,0.147,30,0.001,31,0.747,32,0.182,47,1.011,95,0.123,101,0.018,103,0.001,104,0.001,165,0.918,334,1.055,336,2.335,1016,3.422,16457,6.802,17202,6.945,17209,6.802,17221,11.351,17227,10.148,17228,8.373,17229,12.994,17230,12.994,17231,12.994]],["title/interfaces/SanisPersonenkontextResponse.html",[334,0.742,17232,5.892]],["body/interfaces/SanisPersonenkontextResponse.html",[3,0.024,4,0.024,5,0.013,7,0.139,30,0.001,32,0.184,33,0.562,34,2.187,47,0.971,95,0.156,101,0.017,103,0.001,104,0.001,165,0.887,334,0.998,336,2.208,496,3.82,1016,4.009,16457,6.434,17202,6.569,17209,8.655,17210,10.658,17211,12.103,17224,11.136,17225,12.103,17232,9.808,17233,8.375,17234,12.747,17235,12.747,17236,11.776]],["title/injectables/SanisProvisioningStrategy.html",[105,0.889,16305,5.639]],["body/injectables/SanisProvisioningStrategy.html",[0,0.21,3,0.016,4,0.016,5,0.009,7,0.095,8,1.051,27,0.48,29,0.87,30,0.001,31,0.615,32,0.154,33,0.548,34,1.061,35,1.322,36,2.192,95,0.17,99,1.049,100,2.07,101,0.012,103,0.001,104,0.001,105,1.148,107,1.479,111,2.309,112,2.589,127,1.102,145,1.595,148,2.695,150,2.267,163,1.949,187,0.885,216,1.865,217,1.525,221,1.457,227,0.919,234,1.413,305,1.779,404,1.578,596,3.063,661,2.605,1016,2.208,1114,3.534,1238,3.971,1265,8.414,1266,3.533,1268,3.971,1381,3.606,1439,4.166,1711,5.169,1887,3.816,2063,7.021,2074,4.227,2171,2.657,2172,2.957,2173,2.851,2180,3.916,2309,3.466,2334,7.023,3673,4.227,3898,3.374,3967,7.023,4538,3.499,8266,6.62,8298,6.457,9332,8.366,10705,4.48,10965,7.284,11156,5.378,11848,6.306,11850,6.572,11851,4.09,11852,4.09,12613,6.806,12614,8.829,12616,4.984,12617,8.036,12621,7.023,12622,8.117,12636,5.712,12645,8.132,12647,7.284,12649,7.023,12650,5.401,15347,9.319,15903,5.401,15908,9.922,15944,5.712,15988,8.812,15995,5.401,16001,5.712,16305,7.284,16306,9.157,17209,6.182,17237,6.183,17238,8.712,17239,6.183,17240,6.183,17241,8.048,17242,8.712,17243,6.183,17244,6.183,17245,6.183,17246,6.183,17247,6.183,17248,5.169,17249,6.183,17250,6.183,17251,6.183,17252,6.183,17253,6.183,17254,6.183,17255,6.183,17256,6.183,17257,6.183,17258,6.183,17259,6.183]],["title/interfaces/SanisResponse.html",[334,0.742,17248,5.639]],["body/interfaces/SanisResponse.html",[3,0.026,4,0.026,5,0.014,7,0.149,30,0.001,32,0.176,47,0.913,95,0.15,101,0.018,103,0.001,104,0.001,165,0.923,334,1.065,336,2.357,1016,4.172,17209,8.291,17227,11.388,17228,11.658,17232,11.388,17233,8.939,17248,9.769,17260,9.677,17261,13.037,17262,13.037]],["title/injectables/SanisResponseMapper.html",[105,0.889,16306,5.639]],["body/injectables/SanisResponseMapper.html",[0,0.178,3,0.014,4,0.029,5,0.007,7,0.081,8,0.934,27,0.487,29,0.9,30,0.001,31,0.675,32,0.164,33,0.567,35,1.306,47,0.382,95,0.15,99,0.89,100,1.757,101,0.01,103,0,104,0,105,1.02,107,1.256,111,2.265,127,0.664,144,1.434,145,2.793,165,0.612,167,4.59,187,0.751,215,1.698,216,0.97,217,1.709,227,1.295,234,1.491,329,1.546,461,1.783,696,3.992,851,2.576,852,2.576,854,4.64,974,3.239,1016,1.874,1052,4.616,1277,3.992,1291,2.233,1542,2.449,1545,1.676,2728,3.988,2993,3.471,3091,2.392,3110,2.542,4533,7.246,4538,5.745,6461,5.825,8266,8.225,8269,4.584,8270,3.889,8275,6.24,8278,9.151,8280,4.388,8291,3.527,8298,7.523,8300,4.838,8599,4.1,9017,4.848,9332,7.355,10615,4.848,10696,4.584,10700,8.726,10702,4.848,11452,6.047,11453,5.881,11454,5.881,12363,6.988,12596,7.15,12597,7.15,14264,4.848,16306,6.471,17208,4.848,17210,6.471,17217,4.584,17218,4.584,17236,4.848,17248,10.82,17263,12.023,17264,9.196,17265,7.74,17266,7.74,17267,7.74,17268,7.74,17269,7.74,17270,5.248,17271,7.74,17272,5.248,17273,7.74,17274,7.74,17275,5.248,17276,7.74,17277,5.248,17278,7.74,17279,5.248,17280,5.248,17281,5.248,17282,5.248,17283,5.248,17284,5.248,17285,5.248,17286,5.248,17287,5.248,17288,5.248,17289,5.248,17290,5.248,17291,5.248,17292,5.248,17293,5.248,17294,5.248,17295,5.248,17296,5.248,17297,5.248,17298,5.248,17299,9.196,17300,5.248,17301,7.74,17302,5.248,17303,4.848,17304,5.248,17305,5.248,17306,5.248,17307,5.248,17308,7.74,17309,5.248,17310,5.248,17311,5.248,17312,5.248,17313,5.248,17314,5.248,17315,5.248,17316,5.248,17317,5.248,17318,5.248,17319,5.248,17320,5.248]],["title/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[334,0.742,10700,5.437]],["body/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[3,0.027,4,0.027,5,0.014,7,0.154,30,0.001,32,0.167,47,0.925,95,0.128,101,0.019,103,0.001,104,0.001,165,0.941,334,1.099,336,2.433,496,4.208,1277,5.152,10700,9.6,16457,7.089,17202,7.238,17209,7.089,17215,9.228,17216,9.228,17217,11.509,17218,11.509,17303,12.171]],["title/classes/ScanResultDto.html",[0,0.229,9811,5.639]],["body/classes/ScanResultDto.html",[0,0.32,2,1.082,3,0.025,4,0.025,5,0.013,7,0.145,27,0.515,29,0.747,30,0.001,31,0.528,32,0.174,33,0.471,47,0.835,95,0.121,101,0.018,103,0.001,104,0.001,127,1.19,165,0.907,380,1.967,405,3.103,564,4.6,595,3.249,2078,5.485,2079,6.547,6064,5.92,6085,8.077,9725,8.333,9728,6.971,9729,6.971,9811,11.069,17321,12.911,17322,9.406,17323,11.484,17324,9.406]],["title/classes/ScanResultParams.html",[0,0.229,6132,4.461]],["body/classes/ScanResultParams.html",[0,0.451,2,0.723,3,0.017,4,0.023,5,0.012,7,0.097,26,2.512,27,0.423,30,0.001,32,0.174,33,0.603,39,1.686,47,0.978,95,0.155,99,1.067,101,0.025,103,0.001,104,0.001,150,2.306,165,0.697,204,3.492,334,0.692,347,2.074,364,1.886,369,1.386,373,4.654,374,2.009,375,4.476,376,1.475,377,5.744,379,1.449,380,1.315,467,3.687,469,2.774,470,5.074,471,4.695,565,3.32,1000,5.15,1001,6.575,1031,3.262,1044,3.087,1291,2.676,1381,3.668,2744,4.539,2915,5.374,3574,3.066,4227,2.165,5740,6.707,6064,5.059,6077,7.189,6083,6.075,6111,3.129,6114,4.299,6115,4.378,6116,4.378,6119,7.57,6122,7.967,6123,7.543,6124,7.681,6125,4.378,6126,4.299,6127,6.734,6128,4.299,6129,4.378,6130,4.039,6131,5.832,6132,5.832,6133,7.087,6134,7.087,6135,4.227,6136,4.299,6137,4.227,6138,4.227,6139,4.039,6140,4.378,6141,4.299,6142,4.378,6143,4.227,6144,4.299,6145,4.098,6146,4.098,6147,4.378,17325,10.181,17326,6.289,17327,6.289,17328,6.289]],["title/entities/SchoolEntity.html",[380,1.41,844,3.057]],["body/entities/SchoolEntity.html",[0,0.291,3,0.012,4,0.012,5,0.007,7,0.132,27,0.519,30,0.001,31,0.537,32,0.173,33,0.658,47,0.919,83,2.574,95,0.139,96,1.257,101,0.02,102,2.348,103,0,104,0,144,1.271,145,1.825,165,0.676,167,1.776,234,1.147,240,3.958,329,1.371,334,0.512,347,2.095,355,1.83,359,2.452,364,2.313,369,3,370,4.389,371,2.634,380,1.479,381,1.531,386,6.188,398,1.362,400,2.041,402,1.914,404,0.843,405,1.257,406,1.491,483,3.404,844,3.207,854,5.188,1031,1.491,1114,2.87,1278,2.517,1294,3.239,1910,2.198,1916,4.145,2136,1.862,2433,4.609,2618,4.381,2674,5.725,2678,3.86,2682,2.539,2683,5.526,3105,4.48,3106,3.966,4287,3.302,4293,3.827,4303,2.041,4457,7.525,4926,3.262,6359,7.509,6367,6.426,6377,4.609,6423,4.313,6442,5.526,6443,3.536,6627,3.128,6744,2.773,6745,4.366,8300,5.976,8304,3.449,8305,5.702,8317,3.449,9475,7.25,9717,2.909,9975,6.252,11086,5.526,11690,5.526,11691,3.89,11692,7.264,11693,6.927,11694,6.535,11695,6.654,11696,3.751,11697,3.751,11698,3.89,11699,3.751,11700,3.89,11701,3.89,11702,5.914,11703,3.89,11704,3.89,11705,3.89,11706,3.89,11707,3.89,11708,3.89,11709,3.89,11710,3.89,11711,6.898,11712,3.89,11713,3.89,11714,7.707,11715,5.914,11716,5.914,11717,5.914,11718,5.914,11719,5.914,11720,4.924,11721,5.526,11722,3.449,11723,3.751,11724,3.89,11725,5.914,11726,3.536,11727,3.89,11728,3.89,11729,5.914,11730,3.751,11731,5.702,11732,3.751,11733,3.302,11734,3.89,17329,4.653,17330,4.653,17331,4.653,17332,4.653,17333,4.653,17334,4.653,17335,4.653,17336,4.653,17337,4.653,17338,4.653,17339,4.653,17340,4.299,17341,4.653]],["title/classes/SchoolExternalTool.html",[0,0.229,139,3.854]],["body/classes/SchoolExternalTool.html",[0,0.237,2,0.801,3,0.018,4,0.018,5,0.01,7,0.107,8,1.141,27,0.545,29,0.957,30,0.001,31,0.676,32,0.182,33,0.636,34,1.843,35,0.84,47,0.973,55,2.65,95,0.148,101,0.018,103,0.001,104,0.001,127,0.881,139,5.406,165,0.747,181,7.3,194,4.537,198,3.33,200,4.522,214,3.123,227,0.735,334,0.767,404,1.713,405,2.556,564,4.276,595,2.406,596,2.114,1939,6.652,2078,4.061,2079,4.847,2136,2.787,4227,3.967,4303,3.055,4304,4.105,4305,5.162,5290,8.178,5292,7.414,5600,5.44,5604,8.757,5612,5.046,5614,5.44,5615,4.942,5616,5.292,5623,4.606,5624,5.046,5625,6.713,5626,5.162,7108,8.095,8568,6.793,8721,5.162,8722,5.44,17342,11.457,17343,9.635,17344,9.46,17345,6.964,17346,6.964,17347,6.964,17348,6.964,17349,6.964,17350,6.964]],["title/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.229,17351,5.639]],["body/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.309,2,1.045,3,0.024,4,0.024,5,0.013,7,0.14,27,0.467,29,0.722,30,0.001,31,0.51,32,0.171,33,0.455,95,0.144,101,0.017,103,0.001,104,0.001,127,1.15,145,2.345,163,4.134,165,0.888,192,2.709,200,4.156,209,4.391,364,1.684,376,2.131,467,3.022,1006,6.448,1009,6.425,1011,4.835,1026,5.048,1379,7.358,2171,5.482,2600,5.329,5636,8.783,5637,8.394,17351,9.4,17352,11.279,17353,10.914]],["title/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.229,17353,5.437]],["body/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.259,2,0.875,3,0.02,4,0.02,5,0.011,7,0.117,26,2.343,27,0.53,29,0.949,30,0.001,31,0.67,32,0.182,33,0.562,47,0.868,55,2.207,95,0.144,99,1.291,101,0.015,103,0.001,104,0.001,127,0.963,145,1.963,165,0.793,200,4.235,209,4.475,364,2.3,375,4.557,376,1.784,467,3.546,1011,4.049,1508,4.306,2136,3.045,2171,5.671,2600,5.674,4945,6.026,5623,5.033,5638,7.029,5639,8.775,5640,6.357,5642,9.273,5644,7.029,5645,7.029,5646,7.029,5647,9.33,5648,9.273,5649,7.029,5650,6.647,5651,6.362,5652,7.029,5655,7.029,5656,4.958,5657,7.029,5658,7.029,5659,5.944,5660,7.029,17352,12.01,17353,10.008]],["title/entities/SchoolExternalToolEntity.html",[380,1.41,5682,4.887]],["body/entities/SchoolExternalToolEntity.html",[0,0.258,3,0.02,4,0.02,5,0.011,7,0.117,27,0.496,30,0.001,32,0.167,55,2.466,95,0.159,96,2.048,101,0.019,103,0.001,104,0.001,165,0.791,192,3.555,200,4.423,209,4.105,240,3.512,334,0.834,364,2.21,369,2.629,380,2.094,381,2.495,398,2.22,399,3.92,402,3.118,404,1.373,405,2.048,406,2.429,844,5.621,1925,5.203,4287,5.379,4293,5.417,4294,4.569,4926,5.5,5292,6.955,5625,5.379,5626,5.619,5674,6.111,5680,9.422,5682,7.255,5685,6.338,5686,4.939,6429,4.739,6430,4.569,6627,5.095,7108,7.654,8472,8.463,10657,5.277,11472,8.071,11682,8.371,11683,11.454,11684,10.418,11685,7.003,11686,7.003,11687,7.003,11688,7.003,11689,7.003,17354,7.581,17355,7.581,17356,7.581,17357,7.581]],["title/classes/SchoolExternalToolFactory.html",[0,0.229,17358,6.23]],["body/classes/SchoolExternalToolFactory.html",[0,0.165,2,0.559,3,0.013,4,0.013,5,0.007,7,0.075,8,0.882,27,0.535,29,1.039,30,0.001,31,0.723,32,0.185,33,0.623,34,1.254,35,1.451,47,0.762,55,2.512,59,3.253,95,0.125,101,0.009,103,0,104,0,127,0.615,138,3.174,139,2.778,144,3.348,148,1.504,165,0.578,181,4.631,185,4.872,200,2.863,201,2.546,216,1.352,217,0.966,227,0.772,234,0.788,329,3.462,359,2.535,366,2.676,379,2.025,380,1.838,381,2.406,404,1.324,538,3.278,564,1.804,596,3.871,627,2.276,660,7.018,661,4.639,662,5.48,665,4.099,666,5.48,667,5.519,668,4.099,669,4.099,670,4.099,671,4.025,672,4.466,673,4.927,674,6.562,675,5.77,676,6.906,677,2.751,682,2.725,683,4.099,684,2.751,685,5.119,686,5.334,687,4.534,688,5.16,689,4.061,690,2.725,691,2.546,692,4.102,693,2.653,694,2.608,695,2.725,696,5.041,697,2.751,698,4.838,699,2.725,700,7.068,701,4.105,702,6.59,703,2.751,704,3.613,705,2.725,706,2.751,707,2.725,708,2.751,709,2.725,712,2.725,713,6.062,714,2.751,715,2.725,716,4.099,717,4.025,718,4.099,719,2.751,720,2.63,721,2.608,722,2.144,723,2.725,724,2.725,725,2.725,726,2.751,727,2.751,728,1.903,729,2.725,730,2.751,731,2.875,732,2.725,733,2.751,735,2.806,736,2.897,737,2.897,905,2.019,4227,3.365,4335,6.236,4337,3.522,5290,3.45,5292,2.835,5298,4.064,5697,3.919,5702,3.798,5779,3.919,8568,4.309,17343,4.064,17358,8.118,17359,7.312,17360,7.312,17361,7.312,17362,4.861,17363,4.861,17364,4.861]],["title/classes/SchoolExternalToolIdParams.html",[0,0.229,17365,5.269]],["body/classes/SchoolExternalToolIdParams.html",[0,0.396,2,1.108,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,47,0.847,95,0.149,101,0.018,103,0.001,104,0.001,165,0.92,200,4.24,209,4.01,364,1.784,368,4.601,369,2.568,370,3.212,371,3.21,374,3.076,376,2.258,467,3.131,478,6.834,1000,4.982,5641,9.076,5708,8.413,5709,8.413,7108,7.191,17365,9.101,17366,9.392]],["title/classes/SchoolExternalToolIdParams-1.html",[0,0.191,905,2.329,17365,4.381]],["body/classes/SchoolExternalToolIdParams-1.html",[0,0.399,2,1.121,3,0.026,4,0.026,5,0.014,7,0.15,26,2.627,27,0.405,30,0.001,32,0.137,95,0.162,99,1.653,101,0.019,103,0.001,104,0.001,165,0.927,200,3.823,209,4.04,364,1.806,374,3.113,376,2.286,467,3.154,478,6.917,1000,5.018,2600,5.122,5641,9.123,5711,7.062,5712,7.857,17365,9.168,17367,10.841]],["title/modules/SchoolExternalToolModule.html",[425,1.808,5719,5.269]],["body/modules/SchoolExternalToolModule.html",[0,0.291,3,0.023,4,0.023,5,0.012,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,187,1.226,200,3.872,209,2.948,425,3.185,427,3.166,428,3.339,429,3.443,430,3.428,431,3.397,432,4.393,433,4.481,442,4.356,443,3.368,444,3.283,449,4.356,766,3.681,4969,4.847,5267,9.535,5277,6.904,5718,10,5719,10.952,5977,10.307,7108,5.287,17368,8.565,17369,8.565,17370,8.565,17371,8.565,17372,11.627,17373,8.565]],["title/classes/SchoolExternalToolPostParams.html",[0,0.229,17374,5.639]],["body/classes/SchoolExternalToolPostParams.html",[0,0.391,2,0.92,3,0.021,4,0.021,5,0.011,7,0.123,27,0.506,29,0.914,30,0.001,32,0.185,33,0.519,47,0.885,55,2.281,95,0.156,101,0.015,103,0.001,104,0.001,165,0.82,200,4.43,209,4.343,290,4.619,364,2.256,369,1.764,374,2.556,375,4.208,376,1.876,467,3.273,470,4.849,471,4.414,1000,4.922,1508,4.529,2489,4.573,3436,7.362,4227,3.962,4945,6.176,5418,6.571,5724,7.393,5731,9.587,5732,6.691,5733,6.691,5734,6.691,5736,7.393,5737,7.393,5739,5.294,5740,5.988,7108,7.788,8568,6.785,17366,10.171,17374,8.673,17375,8.003,17376,9.583,17377,8.003,17378,8.003,17379,8.003]],["title/interfaces/SchoolExternalToolProps.html",[334,0.742,17343,5.639]],["body/interfaces/SchoolExternalToolProps.html",[0,0.264,3,0.021,4,0.021,5,0.011,7,0.12,29,0.993,30,0.001,31,0.702,32,0.183,33,0.642,34,2.066,47,1.011,55,2.749,95,0.154,101,0.019,103,0.001,104,0.001,139,4.441,165,0.804,181,7.917,194,5.063,198,3.716,200,3.315,214,2.566,227,0.82,334,0.855,336,1.893,404,1.407,405,2.1,564,4.638,1939,5.874,2078,4.532,2079,5.409,2136,3.11,4227,4.303,4303,3.409,4304,4.58,4305,5.76,5290,8.87,5292,7.621,5600,6.071,5604,5.905,5614,6.071,5615,5.514,5616,5.905,5623,5.14,5624,5.631,5625,7.222,5626,5.76,7108,4.797,8568,7.367,8721,5.76,8722,6.071,17342,6.789,17343,9.488]],["title/classes/SchoolExternalToolRefDO.html",[0,0.229,5610,5.437]],["body/classes/SchoolExternalToolRefDO.html",[0,0.313,2,1.059,3,0.024,4,0.024,5,0.013,7,0.142,27,0.51,29,0.732,30,0.001,31,0.517,32,0.172,33,0.615,47,0.932,101,0.018,103,0.001,104,0.001,127,1.166,165,0.896,200,4.467,209,4.412,405,3.064,595,3.182,4227,4.228,4304,5.429,4305,6.827,5610,10.61,5701,8.9,5844,8.51,7108,7.912,17342,11.198,17380,9.212,17381,11.339,17382,9.212,17383,9.212]],["title/injectables/SchoolExternalToolRepo.html",[105,0.889,1966,4.999]],["body/injectables/SchoolExternalToolRepo.html",[0,0.132,3,0.01,4,0.01,5,0.005,7,0.06,8,0.741,10,2.48,12,2.832,18,3.034,26,2.278,27,0.537,29,1.027,30,0.001,31,0.721,32,0.18,33,0.643,34,1.487,35,1.539,36,2.726,40,1.866,47,0.817,95,0.153,96,1.659,97,1.65,99,0.658,101,0.007,103,0,104,0,105,0.809,107,0.928,111,2.349,112,2.96,127,0.491,139,7.02,148,1.199,158,1.943,165,0.306,192,2.272,200,3.951,201,2.031,209,2.624,216,1.135,217,1.552,221,1.796,227,1.24,234,1.236,277,3.051,359,2.129,380,1.813,381,2.508,398,1.135,404,1.112,529,2.708,595,1.34,596,3.682,661,3.211,844,1.758,878,4.274,884,2.9,885,4.7,915,2.135,935,6.373,1052,3.533,1053,3.844,1545,1.238,1857,4.502,1966,4.551,2092,2.194,2383,8.576,2385,4.357,2386,4.357,2387,4.357,2388,4.357,2389,4.274,2390,4.274,2391,4.357,2392,4.274,2393,4.357,2394,2.81,2395,4.954,2397,4.449,2398,2.752,2400,4.954,2401,2.752,2403,2.752,2405,6.249,2406,4.357,2407,2.752,2409,2.752,2411,4.357,2415,4.357,2417,4.127,2418,4.274,2420,2.752,2422,2.364,2423,2.364,2424,2.752,2426,2.752,2428,2.752,2429,2.752,2435,2.606,2446,5.409,2447,5.65,2468,5.134,2482,3.387,4227,2.624,4355,2.49,4458,2.874,4630,3.191,5292,3.581,5682,8.788,5686,4,5743,3.387,5744,5.672,5749,5.672,5757,5.134,5766,2.81,5767,2.81,5768,2.81,5769,2.81,5770,2.81,5771,2.81,5772,2.81,5773,2.81,5774,2.81,5778,2.699,5779,6.145,5780,3.126,5781,3.387,5782,2.946,5784,3.581,5785,3.582,5786,2.752,5793,3.582,5799,3.582,5806,3.582,5807,3.582,7127,2.565,8472,2.752,8568,5.569,8780,3.582,8781,2.946,8782,3.582,11682,8.402,11684,3.387,14347,3.242,17384,10.086,17385,6.14,17386,6.14,17387,5.672,17388,9.726,17389,3.878,17390,8.779,17391,6.14,17392,3.878,17393,3.878,17394,3.878,17395,6.14,17396,3.878,17397,5.672,17398,3.878,17399,3.878,17400,3.878,17401,3.878,17402,3.878,17403,3.878,17404,3.878,17405,3.878,17406,3.126,17407,3.878,17408,3.387,17409,3.387,17410,3.878,17411,3.878]],["title/injectables/SchoolExternalToolRequestMapper.html",[105,0.889,17412,5.639]],["body/injectables/SchoolExternalToolRequestMapper.html",[0,0.281,3,0.022,4,0.022,5,0.012,7,0.127,8,1.278,27,0.44,29,0.928,30,0.001,31,0.656,32,0.149,33,0.53,35,1.278,95,0.158,101,0.016,103,0.001,104,0.001,105,1.396,107,1.978,111,2.337,144,2.259,181,7.404,187,1.183,194,5.385,200,4.319,209,4.024,227,1.234,367,3.978,982,4.141,4227,2.845,5292,4.82,5731,9.684,5778,5.753,5812,6.663,5814,10.211,5818,7.221,5820,8.856,5827,7.636,5828,7.221,5829,6.911,5830,7.221,7108,7.215,8568,4.872,17374,10.307,17412,8.856,17413,10.798,17414,10.593,17415,8.266,17416,10.593,17417,8.266,17418,10.211,17419,7.221,17420,8.266,17421,8.266,17422,8.266]],["title/classes/SchoolExternalToolResponse.html",[0,0.229,17423,5.437]],["body/classes/SchoolExternalToolResponse.html",[0,0.233,2,0.787,3,0.018,4,0.018,5,0.01,7,0.105,27,0.543,29,0.909,30,0.001,31,0.642,32,0.185,33,0.533,34,1.827,47,0.961,55,2.056,95,0.137,101,0.013,103,0.001,104,0.001,127,0.866,145,1.766,165,0.739,200,4.552,290,3.951,364,2.387,375,4.32,376,1.605,467,3.639,564,3.951,618,2.913,1011,3.643,1016,2.444,1031,2.194,1508,3.874,2078,3.992,2136,2.74,2914,4.396,4227,3.665,4304,4.035,5292,6.21,5623,4.528,5625,4.858,5640,6.026,5656,4.46,5741,5.074,5832,5.98,5833,7.817,5834,8.168,5835,5.98,5836,5.98,5837,5.98,5838,5.98,5839,8.939,5840,5.98,5841,5.98,5842,5.98,5843,5.348,5849,5.98,5850,6.324,5851,5.98,7108,8.159,8568,6.276,8721,5.074,8990,5.98,17366,10.655,17423,9.656,17424,10.464,17425,6.846,17426,6.846,17427,6.846,17428,6.846]],["title/injectables/SchoolExternalToolResponseMapper.html",[105,0.889,17429,5.639]],["body/injectables/SchoolExternalToolResponseMapper.html",[0,0.245,3,0.019,4,0.019,5,0.01,7,0.111,8,1.168,27,0.454,29,0.928,30,0.001,31,0.684,32,0.153,33,0.547,34,1.235,35,1.319,95,0.161,101,0.018,103,0.001,104,0.001,105,1.275,107,1.723,111,2.185,139,7.547,144,1.968,181,7.95,187,1.031,194,4.691,198,3.444,200,4.302,209,4.022,217,1.278,227,1.153,234,1.569,311,6.652,564,2.672,974,4.445,982,3.608,1291,3.064,2485,3.11,4227,2.479,5290,5.11,5292,4.199,5298,6.02,5299,6.652,5367,5.805,5741,5.337,5839,9.127,5855,6.652,7108,7.212,8365,5.805,8388,6.02,8392,6.02,8568,4.244,8820,6.652,8881,6.652,8882,6.652,8883,6.652,9022,6.652,9550,6.02,10752,5.11,17413,10.793,17423,9.418,17424,6.291,17429,8.09,17430,9.676,17431,9.676,17432,9.676,17433,9.676,17434,7.201,17435,9.676,17436,9.676,17437,9.136,17438,7.201,17439,7.201,17440,7.201,17441,9.676,17442,7.201,17443,7.201,17444,7.201,17445,7.201,17446,7.201,17447,7.201,17448,7.201,17449,7.201]],["title/injectables/SchoolExternalToolRule.html",[105,0.889,1967,5.639]],["body/injectables/SchoolExternalToolRule.html",[0,0.245,3,0.019,4,0.019,5,0.01,7,0.111,8,1.169,27,0.454,29,0.869,30,0.001,31,0.614,32,0.153,33,0.547,35,1.169,95,0.161,101,0.014,103,0.001,104,0.001,105,1.277,107,1.726,116,4.064,127,0.913,139,7.453,187,1.033,199,4.175,200,4.091,201,3.778,214,2.382,215,2.334,216,1.334,217,0.953,227,1.022,347,2.558,380,2.791,461,3.076,806,4.608,1862,6.436,1890,7.954,1928,7.919,1967,8.099,1989,5.979,2033,4.7,2056,6.511,3352,6.511,3353,4.931,3356,6.408,3358,4.931,3359,4.849,3360,6.622,3361,7.361,5682,9.572,5686,4.7,5779,7.809,5864,6.664,5865,6.664,5866,6.664,5867,6.664,5868,7.019,17406,5.815,17450,11.692,17451,6.664]],["title/classes/SchoolExternalToolScope.html",[0,0.229,17390,5.892]],["body/classes/SchoolExternalToolScope.html",[0,0.25,2,0.846,3,0.02,4,0.02,5,0.01,7,0.113,8,1.185,26,2.69,27,0.536,29,0.936,30,0.001,31,0.662,32,0.181,33,0.59,35,1.185,95,0.142,99,1.248,101,0.014,103,0.001,104,0.001,111,2.525,144,2.011,145,3.38,148,2.276,165,0.776,192,2.194,200,3.839,209,2.533,227,1.036,277,5.308,329,2.168,347,2.251,404,1.778,529,3.246,596,3.728,2432,6.583,4227,3.803,5682,5.332,5686,4.794,5779,5.932,5871,6.429,5872,6.711,5873,6.711,5874,6.711,5879,6.711,5880,6.711,5881,5.122,5882,5.031,5883,5.122,5884,5.122,5893,5.031,5894,6.711,5895,5.122,5896,5.031,5897,5.122,5898,5.031,5899,6.711,8568,6.511,9060,6.798,9892,8.576,9901,8.576,17384,10.206,17390,8.576,17452,9.817,17453,7.359,17454,9.817,17455,7.359]],["title/classes/SchoolExternalToolSearchListResponse.html",[0,0.229,17437,5.639]],["body/classes/SchoolExternalToolSearchListResponse.html",[0,0.31,2,1.05,3,0.024,4,0.024,5,0.013,7,0.14,27,0.468,29,0.725,30,0.001,31,0.512,32,0.172,33,0.457,95,0.145,101,0.017,103,0.001,104,0.001,127,1.155,145,2.355,163,4.139,165,0.891,192,2.721,200,4.415,209,4.211,364,1.691,376,2.14,467,3.03,1005,9.067,1006,6.478,1009,6.443,1011,4.857,1026,5.07,5636,8.808,5901,7.974,7108,7.551,17366,9.862,17423,10.924,17437,9.427]],["title/classes/SchoolExternalToolSearchParams.html",[0,0.229,17456,5.892]],["body/classes/SchoolExternalToolSearchParams.html",[0,0.4,2,1.124,3,0.026,4,0.026,5,0.014,7,0.15,27,0.406,30,0.001,32,0.137,47,0.854,95,0.151,101,0.019,103,0.001,104,0.001,165,0.929,200,4.261,209,4.046,364,1.81,374,3.121,376,2.291,467,3.158,470,4.951,1000,5.025,4227,4.339,7108,7.254,9064,8.536,9067,8.536,17366,9.474,17376,9.026,17456,10.267]],["title/injectables/SchoolExternalToolService.html",[105,0.889,5977,4.999]],["body/injectables/SchoolExternalToolService.html",[0,0.186,3,0.015,4,0.015,5,0.008,7,0.084,8,0.965,26,2.4,27,0.506,29,0.967,30,0.001,31,0.697,32,0.171,33,0.609,35,1.433,36,2.808,95,0.156,99,0.93,101,0.01,103,0,104,0,105,1.053,107,1.312,111,2.555,112,3.007,127,1.012,139,7.892,158,6.319,187,0.785,198,2.623,200,4.445,201,2.872,209,3.569,216,1.478,217,1.456,221,2.869,227,1.163,234,0.889,284,3.305,450,2.256,529,2.419,564,2.966,1966,8.527,2485,2.369,4227,1.888,5285,4.421,5290,7.356,5641,5.792,5778,3.817,5916,5.066,5918,5.066,5944,3.473,5976,7.738,5977,5.925,5985,3.686,7108,7.662,8370,7.604,8452,4.791,8672,4.167,9030,4.791,17388,9.577,17419,4.791,17457,11.467,17458,7.994,17459,7.994,17460,7.994,17461,7.994,17462,7.385,17463,7.994,17464,7.994,17465,5.484,17466,5.484,17467,5.484,17468,7.994,17469,5.484,17470,7.994,17471,5.484,17472,7.994,17473,5.484,17474,7.994,17475,5.484,17476,7.994,17477,7.994,17478,5.484,17479,5.484,17480,5.484,17481,5.066,17482,5.484,17483,7.994,17484,5.484,17485,5.484,17486,5.484,17487,5.484,17488,8.714,17489,5.484,17490,5.484]],["title/injectables/SchoolExternalToolUc.html",[105,0.889,17491,5.639]],["body/injectables/SchoolExternalToolUc.html",[0,0.163,3,0.013,4,0.013,5,0.007,7,0.074,8,0.871,26,2.839,27,0.472,29,0.902,30,0.001,31,0.638,32,0.159,33,0.568,34,0.82,35,1.32,36,2.729,39,3.208,47,0.632,95,0.15,99,0.811,101,0.009,103,0,104,0,105,0.951,107,1.144,111,2.271,112,2.963,127,0.914,139,7.725,187,0.684,199,4.941,200,4.304,209,2.485,216,1.792,217,1.659,221,3.024,227,1.023,234,1.411,284,4.351,524,2.818,529,3.837,766,2.054,843,3.151,1862,6.59,1868,3.028,2485,2.065,2767,2.155,3027,2.732,4227,1.646,5275,8.42,5641,9.101,5720,8.231,5778,3.327,5931,4.176,5944,7.196,5954,3.854,5963,6.307,5977,8.11,5985,3.213,5990,6.036,7108,7.219,8403,7.599,8413,4.176,8428,4.416,8429,9.612,8430,4.416,8448,9.612,8452,4.176,17372,9.498,17418,11.394,17462,6.669,17481,6.669,17488,6.669,17491,6.036,17492,11.696,17493,8.036,17494,6.669,17495,6.669,17496,8.036,17497,4.416,17498,4.78,17499,4.78,17500,4.78,17501,7.22,17502,4.78,17503,4.78,17504,7.22,17505,9.693,17506,4.78,17507,7.22,17508,4.78,17509,4.78,17510,4.78,17511,4.78,17512,7.22,17513,4.78,17514,4.78,17515,4.78,17516,4.78]],["title/injectables/SchoolExternalToolValidationService.html",[105,0.889,17372,5.639]],["body/injectables/SchoolExternalToolValidationService.html",[0,0.253,3,0.02,4,0.02,5,0.011,7,0.115,8,1.195,27,0.462,29,0.883,30,0.001,31,0.624,32,0.156,33,0.556,35,1.195,36,2.151,55,2.788,95,0.163,101,0.014,103,0.001,104,0.001,105,1.305,107,1.784,111,2.466,112,2.493,127,1.253,139,7.392,148,3.063,158,5.57,187,1.067,200,4.375,201,3.904,209,4.078,216,1.83,217,0.985,221,1.757,234,1.209,305,2.144,494,4.493,503,5.968,558,3.543,577,4.179,2485,3.22,4945,5.312,5273,10.105,5302,5.823,5315,6.512,5974,6.451,5976,8.259,5984,5.823,5985,5.01,5991,6.886,5993,6.886,7108,7.312,8392,6.232,8408,5.823,17372,8.279,17457,10.944,17517,9.902,17518,7.454,17519,9.902,17520,12.331,17521,7.454,17522,11.119,17523,9.902,17524,7.454,17525,7.454,17526,7.454,17527,7.454,17528,7.454]],["title/classes/SchoolForGroupNotFoundLoggable.html",[0,0.229,15927,5.892]],["body/classes/SchoolForGroupNotFoundLoggable.html",[0,0.303,2,1.024,3,0.024,4,0.024,5,0.013,7,0.137,8,1.34,27,0.461,29,0.707,30,0.001,31,0.5,32,0.125,33,0.446,35,1.075,95,0.142,100,2.981,101,0.017,103,0.001,104,0.001,127,1.127,163,2.808,192,2.655,214,3.666,215,2.882,216,1.646,227,0.94,511,4.559,1277,6.854,1327,3.517,1542,5.646,1543,6.288,1545,2.845,1547,6.302,3060,6.32,8137,6.288,8138,6.546,8266,9.625,8269,7.78,15927,9.7,17529,12.099,17530,8.227,17531,8.906,17532,8.227,17533,8.227,17534,8.227,17535,7.78,17536,8.906,17537,8.906,17538,8.906]],["title/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.229,17539,6.23]],["body/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.28,2,0.947,3,0.022,4,0.022,5,0.012,7,0.127,8,1.275,26,2.568,27,0.439,29,0.654,30,0.001,31,0.462,32,0.116,33,0.412,34,2.234,35,0.993,47,0.947,59,2.555,95,0.136,99,1.396,101,0.016,103,0.001,104,0.001,111,2.333,127,1.337,163,2.595,192,3.883,214,3.488,216,2.157,227,0.869,461,2.933,577,6.9,1327,3.251,1542,5.444,1543,6.063,1545,2.629,1547,6.124,4227,4.237,4304,4.852,4442,5.146,8137,6.063,8138,6.312,11205,6.882,12374,6.636,17539,9.759,17540,10.192,17541,8.232,17542,8.232,17543,11.667,17544,8.232,17545,11.667,17546,8.232,17547,8.232,17548,8.232]],["title/classes/SchoolIdParams.html",[0,0.229,17549,5.269]],["body/classes/SchoolIdParams.html",[0,0.4,2,1.126,3,0.026,4,0.026,5,0.014,7,0.151,26,2.632,27,0.407,30,0.001,32,0.137,95,0.162,99,1.661,101,0.019,103,0.001,104,0.001,165,0.93,355,4.628,364,1.815,374,3.128,376,2.297,467,3.163,478,6.951,1000,5.033,4227,4.343,4442,5.191,5712,7.896,5725,7.896,17549,9.194,17550,11.77]],["title/classes/SchoolIdParams-1.html",[0,0.191,905,2.329,17549,4.381]],["body/classes/SchoolIdParams-1.html",[0,0.401,2,1.132,3,0.026,4,0.026,5,0.014,7,0.151,26,2.638,27,0.409,30,0.001,32,0.138,95,0.162,99,1.669,101,0.019,103,0.001,104,0.001,165,0.933,364,1.824,374,3.144,376,2.308,467,3.172,478,6.985,1000,5.047,2600,5.152,4227,4.352,5711,7.132,5712,7.934,17367,10.905,17549,9.221]],["title/classes/SchoolInMigrationError.html",[0,0.229,15158,5.892]],["body/classes/SchoolInMigrationError.html",[0,0.261,2,0.883,3,0.02,4,0.02,5,0.011,7,0.118,8,1.219,27,0.541,29,0.61,30,0.001,31,0.431,32,0.189,33,0.565,35,0.927,47,0.82,52,4.685,55,1.689,59,2.384,95,0.13,101,0.015,103,0.001,104,0.001,127,0.972,165,0.798,187,1.1,192,2.29,204,4.112,216,2.496,355,3.972,364,2.307,404,1.829,406,2.462,461,1.77,558,3.651,564,2.851,596,3.881,798,6.314,1013,5.496,1016,2.743,1253,5.204,1291,5.1,1327,4.457,1472,8.256,1473,7.117,1474,4.069,1475,7.247,1479,5.005,1480,4.307,1481,5.005,1482,5.005,1483,5.005,1484,5.005,1485,5.005,1486,4.684,1487,4.39,1493,4.866,1889,7.097,2578,5.005,3469,5.694,6896,4.933,13247,5.694,13282,8.445,15158,8.824,17551,10.101,17552,6.711,17553,7.682]],["title/classes/SchoolInUserMigrationEndLoggable.html",[0,0.229,17554,6.23]],["body/classes/SchoolInUserMigrationEndLoggable.html",[0,0.305,2,1.033,3,0.024,4,0.024,5,0.013,7,0.138,8,1.347,27,0.464,29,0.714,30,0.001,31,0.504,32,0.126,33,0.45,35,1.084,47,0.883,52,5.894,95,0.115,101,0.017,103,0.001,104,0.001,127,1.137,163,2.833,192,2.679,214,3.687,215,2.908,216,1.661,227,0.948,461,2.799,1327,3.549,1542,5.669,1543,6.313,1545,2.87,1547,6.322,3247,5.415,4442,5.358,8137,6.313,8138,6.572,11906,9.004,17540,10.612,17554,10.315,17555,8.986,17556,8.986,17557,8.986,17558,8.986,17559,8.301]],["title/classes/SchoolInUserMigrationStartLoggable.html",[0,0.229,17560,6.23]],["body/classes/SchoolInUserMigrationStartLoggable.html",[0,0.287,2,0.971,3,0.022,4,0.022,5,0.012,7,0.13,8,1.295,26,2.591,27,0.446,29,0.67,30,0.001,31,0.474,32,0.118,33,0.422,35,1.018,39,2.877,47,0.858,52,5.762,95,0.138,99,1.431,101,0.016,103,0.001,104,0.001,111,2.36,127,1.358,163,2.661,192,3.2,214,3.544,216,2.182,227,0.891,347,2.405,415,4.605,461,2.72,540,6.115,1327,3.333,1542,5.508,1543,6.134,1545,2.695,1547,6.18,1555,5.275,4442,5.206,4640,5.672,8137,6.134,8138,6.386,10368,6.803,11906,9.207,12292,10.904,17540,10.311,17559,7.796,17560,9.916,17561,7.796,17562,7.796,17563,8.439,17564,8.439,17565,8.439]],["title/classes/SchoolInfoMapper.html",[0,0.229,14680,5.892]],["body/classes/SchoolInfoMapper.html",[0,0.324,2,1.094,3,0.025,4,0.025,5,0.013,7,0.146,8,1.396,27,0.395,29,0.756,30,0.001,31,0.649,32,0.134,33,0.476,34,1.632,35,1.148,95,0.148,99,1.614,100,3.872,101,0.018,103,0.001,104,0.001,217,1.257,227,1.004,234,1.543,627,3.879,844,5.876,975,6.61,982,4.768,14651,10.45,14680,10.104,17566,11.567,17567,8.314,17568,11.567,17569,8.314,17570,9.517,17571,9.517,17572,9.517]],["title/classes/SchoolInfoResponse.html",[0,0.229,14651,5.437]],["body/classes/SchoolInfoResponse.html",[0,0.3,2,1.015,3,0.023,4,0.023,5,0.012,7,0.136,27,0.501,29,0.701,30,0.001,31,0.764,32,0.169,33,0.442,34,2.308,47,0.918,95,0.113,101,0.017,103,0.001,104,0.001,127,1.397,165,0.872,192,3.764,364,2.046,376,2.07,379,2.777,380,2.64,467,3.239,475,4.423,618,3.756,966,4.519,1013,4.047,2136,3.533,2254,7.116,2909,5.933,2910,6.026,2911,6.026,14651,10.48,17573,12.627,17574,7.712,17575,8.155,17576,8.155]],["title/classes/SchoolMigrationError.html",[0,0.229,17577,5.892]],["body/classes/SchoolMigrationError.html",[0,0.257,2,0.87,3,0.02,4,0.02,5,0.011,7,0.116,8,1.207,27,0.539,29,0.601,30,0.001,31,0.425,32,0.189,33,0.56,35,0.913,47,0.814,52,4.639,55,1.664,59,3.103,95,0.128,101,0.014,103,0.001,104,0.001,127,0.957,165,0.79,187,1.083,192,2.981,204,4.088,216,2.489,355,3.932,364,2.296,404,1.811,406,2.425,461,1.743,558,3.596,564,2.808,596,3.865,798,4.73,1013,5.464,1016,2.702,1062,3.302,1253,5.166,1291,5.07,1327,4.424,1472,8.232,1473,7.082,1474,4.045,1475,7.193,1479,4.93,1480,4.242,1481,4.93,1482,4.93,1483,4.93,1484,4.93,1485,4.93,1486,4.614,1487,4.324,1493,4.793,3876,9.309,4442,4.411,6706,4.73,6896,4.859,8536,6.326,11616,5.482,13247,5.608,13282,8.361,17552,6.61,17577,8.736,17578,9.238,17579,7.567]],["title/interfaces/SchoolMigrationFlags.html",[334,0.742,17580,6.23]],["body/interfaces/SchoolMigrationFlags.html",[3,0.027,4,0.027,5,0.014,7,0.156,30,0.001,32,0.169,52,4.704,101,0.019,103,0.001,104,0.001,165,0.949,334,1.116,336,2.47,347,2.792,355,3.987,4442,4.472,17580,11.1,17581,10.14,17582,10.14,17583,13.24,17584,13.24]],["title/injectables/SchoolMigrationService.html",[105,0.889,4449,4.999]],["body/injectables/SchoolMigrationService.html",[0,0.121,3,0.009,4,0.009,5,0.005,7,0.055,8,0.694,27,0.477,29,0.912,30,0.001,31,0.644,32,0.161,33,0.574,35,1.355,36,2.541,47,0.992,52,4.207,55,2.331,59,1.108,95,0.14,99,0.606,101,0.007,103,0,104,0,105,0.758,107,0.854,111,2.466,112,2.877,127,0.728,128,2.879,129,5.106,132,3.692,145,2.135,148,2.233,167,3.699,187,0.511,189,6.98,191,1.984,192,3.261,204,2.476,216,1.529,217,1.611,221,2.875,227,1.075,234,1.653,247,1.417,305,2.788,347,1.47,355,4.598,369,1.267,371,2.28,450,1.469,503,2.152,511,1.828,558,1.697,784,1.885,854,4.889,1014,4.06,1052,2.941,1053,3.668,1062,1.559,1114,2.928,1158,1.9,1238,2.293,1327,1.41,1545,1.141,2258,7.642,2268,7.642,2298,2.152,2400,3.286,2744,3.218,3091,2.621,4227,3.951,4442,5.158,4449,4.262,4455,6.543,4457,6.593,4464,5.638,4467,4.262,4470,5.023,4474,2.714,4475,2.986,4561,1.9,4579,2.879,4586,2.486,4630,1.856,4640,3.865,6896,2.293,6938,5.484,7785,2.79,8300,6.369,8836,2.293,12101,2.647,12145,6.213,12600,7.311,12604,5.312,12605,5.312,13173,2.986,13257,5.994,13642,4.807,14463,7.96,14988,6.669,15617,2.714,15837,6.305,15929,9.791,15935,3.299,17585,11.694,17586,5.75,17587,5.312,17588,5.75,17589,5.75,17590,5.75,17591,5.312,17592,5.75,17593,5.75,17594,3.299,17595,5.75,17596,9.069,17597,3.571,17598,5.75,17599,7.855,17600,3.571,17601,5.75,17602,8.273,17603,3.571,17604,5.75,17605,5.75,17606,3.571,17607,5.75,17608,3.571,17609,5.75,17610,3.571,17611,5.75,17612,3.571,17613,5.75,17614,3.571,17615,3.571,17616,5.75,17617,3.571,17618,5.75,17619,3.571,17620,3.12,17621,3.571,17622,3.571,17623,2.986,17624,2.986,17625,3.299,17626,3.12,17627,2.714,17628,3.571,17629,3.571,17630,3.571,17631,3.571,17632,3.571,17633,3.571,17634,3.571,17635,3.571,17636,5.75,17637,3.571,17638,3.571,17639,8.273,17640,6.667,17641,5.312,17642,3.571,17643,7.217,17644,3.299,17645,3.571,17646,3.571,17647,5.312,17648,3.571,17649,3.571,17650,5.75,17651,5.75,17652,3.571,17653,3.571,17654,3.571,17655,3.571,17656,5.75,17657,3.571,17658,3.571,17659,3.299,17660,3.571,17661,3.571,17662,3.571,17663,3.571,17664,3.571]],["title/entities/SchoolNews.html",[380,1.41,6755,5.125]],["body/entities/SchoolNews.html",[0,0.342,3,0.014,4,0.024,5,0.007,7,0.173,9,3.649,26,2.098,27,0.214,30,0.001,31,0.428,32,0.141,34,0.883,47,0.888,83,2.295,95,0.153,96,2.457,101,0.02,103,0,104,0,165,0.848,188,2.889,192,3.201,208,1.91,227,0.543,234,1.475,240,3.647,334,0.567,364,0.954,369,2.479,370,3.752,380,2.245,381,1.694,398,1.507,399,2.987,400,2.258,404,1.821,405,2.717,406,1.649,461,2.474,571,5.684,574,4.122,595,1.778,617,5.248,627,1.602,672,4.621,731,3.575,769,4.547,843,2.246,844,5.277,854,3.85,1031,2.445,1298,4.295,1299,4.692,1300,4.243,1301,4.493,1302,4.919,1474,3.086,1492,4.599,1910,3.604,1916,2.493,1932,3.906,1991,2.785,2344,3.758,2572,3.305,2620,5.303,2674,4.169,2688,3.002,2744,5.689,2789,2.717,3394,3.519,3396,3.305,3397,3.405,3399,3.653,3400,3.583,3401,3.815,3415,3.305,3547,3.46,3573,3.353,4227,1.772,4319,3.911,4320,3.729,4926,4.193,4996,3.815,5011,3.653,5554,6.588,6110,2.859,6329,3.583,6407,3.177,6409,2.886,6430,3.102,6627,3.46,6633,3.177,6717,3.815,6718,4.149,6720,4.71,6721,4.149,6722,6.739,6723,5.839,6724,4.149,6725,8.787,6726,5.047,6727,4.878,6728,5.655,6729,5.655,6730,6.559,6731,7.421,6732,4.149,6733,5.415,6734,4.149,6735,3.911,6736,3.911,6737,4.9,6738,4.149,6739,4.149,6740,3.911,6741,4.149,6742,3.815,6743,4.149,6744,3.067,6745,3.177,6746,3.911,6747,4.149,6748,4.149,6749,7.103,6750,4.149,6751,7.33,6752,4.149,6753,4.149,6754,5.798,6755,5.798,6756,6.329,6757,4.021,6758,4.971,6759,3.911,6760,3.729,6761,3.911,6762,4.149,17665,5.147]],["title/classes/SchoolNumberDuplicateLoggableException.html",[0,0.229,17666,5.892]],["body/classes/SchoolNumberDuplicateLoggableException.html",[0,0.292,2,0.987,3,0.023,4,0.023,5,0.012,7,0.132,8,1.309,18,4.241,27,0.451,29,0.682,30,0.001,31,0.482,32,0.152,33,0.429,35,1.036,47,0.865,55,2.749,95,0.139,101,0.016,103,0.001,104,0.001,127,1.086,163,2.706,187,1.229,192,3.546,214,3.582,215,2.778,216,1.587,227,0.906,404,1.965,406,2.75,795,5.059,1327,3.39,1542,5.551,1543,6.182,1545,2.741,1547,6.219,1661,5.592,3060,6.091,8137,6.182,8138,6.436,8300,7.437,8304,6.361,8530,5.512,8537,5.059,8538,5.298,8546,7.176,8547,7.176,8836,7.64,9465,7.751,13257,6.219,17666,9.478,17667,11.897,17668,11.897,17669,8.583,17670,8.583]],["title/classes/SchoolNumberMissingLoggableException.html",[0,0.229,17671,5.639]],["body/classes/SchoolNumberMissingLoggableException.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,8,1.302,26,2.599,27,0.448,29,0.676,30,0.001,31,0.478,32,0.151,33,0.426,35,1.027,55,2.74,95,0.152,99,1.444,101,0.016,103,0.001,104,0.001,127,1.077,163,2.683,187,1.218,192,3.217,214,3.563,215,2.754,216,1.573,227,0.898,355,4.66,404,1.954,406,2.727,1238,5.465,1327,3.361,1542,5.53,1543,6.158,1545,2.718,1547,6.2,4227,4.079,4304,5.016,4442,5.227,8137,6.158,8138,6.411,8530,5.465,8532,6.166,8537,5.016,8538,5.253,8836,7.61,13257,6.166,17578,10.947,17671,9.022,17672,11.85,17673,7.862,17674,6.86,17675,8.511]],["title/classes/SchoolParams.html",[0,0.229,13451,5.892]],["body/classes/SchoolParams.html",[0,0.397,2,1.113,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.004,47,0.85,95,0.15,101,0.018,103,0.001,104,0.001,165,0.923,192,3.483,364,1.793,368,4.614,369,2.576,370,3.897,371,3.22,374,3.091,376,2.269,379,2.23,467,3.14,1000,4.996,3834,5.643,4227,4.321,9465,7.612,13451,10.207,17676,9.677,17677,9.677]],["title/classes/SchoolRolePermission.html",[0,0.229,11711,5.437]],["body/classes/SchoolRolePermission.html",[0,0.325,2,0.646,3,0.015,4,0.015,5,0.008,7,0.147,27,0.338,30,0.001,31,0.456,32,0.114,33,0.524,47,0.908,83,2.446,95,0.149,96,1.517,101,0.021,102,2.832,103,0,104,0,145,1.448,165,0.755,167,2.143,234,0.91,240,4.067,334,0.618,347,2.363,355,2.207,359,1.946,364,1.507,369,2.966,370,4.406,371,2.241,380,1.7,386,4.647,398,1.644,400,2.463,402,2.309,404,1.017,405,1.517,406,1.799,483,2.702,844,2.545,854,4.824,1031,1.799,1114,3.299,1278,3.037,1294,3.908,1910,2.652,1916,2.719,2136,2.247,2433,5.298,2618,4.894,2674,5.485,2678,3.063,2682,3.063,2683,6.352,3105,5.15,3106,4.559,4293,4.399,4303,2.463,4457,7.384,4926,3.75,6359,7.295,6367,5.465,6377,3.657,6423,4.958,6442,6.352,6443,4.266,6744,3.345,6745,5.019,8300,5.083,8304,4.161,8305,6.555,8317,4.161,9475,6.954,9717,3.509,9975,5.822,11086,6.352,11690,6.352,11691,4.694,11692,6.178,11693,5.892,11694,5.559,11695,6.655,11696,4.525,11697,4.525,11698,4.694,11699,4.525,11700,4.694,11701,4.694,11702,6.798,11703,4.694,11704,4.694,11705,4.694,11706,4.694,11707,4.694,11708,4.694,11709,4.694,11710,4.694,11711,8.449,11712,7.993,11713,7.993,11714,7.707,11715,4.694,11716,4.694,11717,4.694,11718,4.694,11719,4.694,11720,3.908,11721,6.352,11722,4.161,11723,4.525,11724,4.694,11725,6.798,11726,4.266,11727,4.694,11728,4.694,11729,6.798,11730,4.525,11731,6.555,11732,4.525,11733,3.984,11734,4.694,17678,5.614,17679,5.614]],["title/classes/SchoolRoles.html",[0,0.229,11714,5.437]],["body/classes/SchoolRoles.html",[0,0.324,2,0.642,3,0.015,4,0.015,5,0.008,7,0.147,27,0.337,30,0.001,31,0.455,32,0.114,33,0.523,47,0.907,83,2.436,95,0.149,96,1.509,101,0.021,102,2.817,103,0,104,0,145,1.44,165,0.753,167,2.131,234,0.905,240,4.063,334,0.614,347,2.13,355,2.195,359,1.936,364,1.5,369,2.964,370,4.402,371,2.232,380,1.693,386,4.628,398,1.635,400,2.449,402,2.296,404,1.011,405,1.509,406,1.789,483,2.687,844,2.531,854,4.808,1031,1.789,1114,3.285,1278,3.02,1294,3.886,1910,2.637,1916,2.704,2136,2.234,2433,5.276,2618,4.879,2674,5.717,2678,3.046,2682,3.046,2683,6.327,3105,7.031,3106,6.223,4293,4.381,4303,2.449,4457,7.373,4926,3.735,6359,7.283,6367,5.443,6377,3.637,6423,4.938,6442,6.327,6443,4.242,6744,3.327,6745,4.999,8300,5.062,8304,4.138,8305,6.528,8317,4.138,9475,6.939,9717,3.49,9975,5.807,11086,6.327,11690,6.327,11691,4.668,11692,6.154,11693,5.868,11694,5.536,11695,6.633,11696,4.5,11697,4.5,11698,4.668,11699,4.5,11700,4.668,11701,4.668,11702,6.771,11703,4.668,11704,4.668,11705,4.668,11706,4.668,11707,4.668,11708,4.668,11709,4.668,11710,4.668,11711,8.948,11712,4.668,11713,4.668,11714,8.427,11715,4.668,11716,4.668,11717,4.668,11718,4.668,11719,4.668,11720,3.886,11721,6.327,11722,4.138,11723,4.5,11724,4.668,11725,6.771,11726,4.242,11727,4.668,11728,4.668,11729,6.771,11730,4.5,11731,6.528,11732,4.5,11733,3.962,11734,4.668,17680,5.583,17681,5.583]],["title/injectables/SchoolValidationService.html",[105,0.889,13533,5.639]],["body/injectables/SchoolValidationService.html",[0,0.272,3,0.021,4,0.021,5,0.011,7,0.123,8,1.25,27,0.478,29,0.913,30,0.001,31,0.646,32,0.161,33,0.575,35,1.25,36,2.644,47,0.581,95,0.156,99,1.355,101,0.015,103,0.001,104,0.001,105,1.365,107,1.911,111,2.299,112,2.897,116,3.722,127,1.011,167,3.955,187,1.143,189,7.474,192,3.089,204,2.74,215,2.585,216,1.476,217,1.055,221,2.442,227,1.093,234,1.295,305,2.298,322,6.438,369,1.761,450,3.285,1632,8.47,5302,6.239,5974,6.75,8648,6.977,8668,7.378,9465,7.928,11636,8.352,13533,8.662,13591,7.378,14468,6.438,17666,6.977,17682,12.169,17683,10.361,17684,7.987,17685,10.361,17686,10.361,17687,7.987,17688,7.987,17689,10.361,17690,7.987,17691,7.987]],["title/entities/SchoolYear.html",[380,1.41,9475,4.216]],["body/entities/SchoolYear.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.135,27,0.499,30,0.001,31,0.707,32,0.169,47,0.874,83,3.983,95,0.141,96,2.37,101,0.021,103,0.001,104,0.001,165,0.869,214,2.896,240,4.209,334,0.965,364,2.226,380,2.3,381,2.886,398,2.568,400,3.848,402,3.607,404,1.588,405,2.37,406,2.81,2136,3.51,2433,7.165,4303,3.848,6369,9.128,6438,7.332,6439,6.851,9475,6.875,11735,10.496,11736,8.102,11737,10.532,11738,7.661,11739,8.102,11740,8.102,17692,8.77,17693,8.77,17694,8.77]],["title/injectables/SchoolYearRepo.html",[105,0.889,13534,5.639]],["body/injectables/SchoolYearRepo.html",[0,0.251,3,0.02,4,0.02,5,0.01,7,0.113,8,1.186,10,3.969,12,4.533,18,4.857,26,2.05,27,0.525,29,0.937,30,0.001,31,0.662,32,0.166,33,0.59,34,1.265,35,1.482,36,2.669,40,3.548,49,3.832,83,2.218,95,0.142,99,1.25,101,0.014,103,0.001,104,0.001,105,1.295,107,1.764,112,2.975,167,2.814,187,1.055,217,1.298,221,1.737,227,1.037,234,1.196,380,1.542,381,3.234,404,1.78,596,3.581,692,5.035,877,7.523,883,4.121,884,4.643,885,5.501,908,4.496,909,4.551,910,4.496,911,4.551,912,5.232,913,4.496,914,4.551,915,4.058,919,5.602,3601,5.943,4230,7.285,6369,5.342,6796,5.943,9465,7.204,9475,6.912,11737,6.164,13534,8.218,17695,7.373,17696,11.795,17697,7.373,17698,7.373,17699,11.058,17700,7.373]],["title/injectables/SchoolYearService.html",[105,0.889,13532,5.639]],["body/injectables/SchoolYearService.html",[0,0.306,3,0.024,4,0.024,5,0.013,7,0.139,8,1.349,27,0.465,29,0.715,30,0.001,31,0.506,32,0.126,33,0.451,35,1.087,36,2.429,95,0.156,99,1.528,101,0.017,103,0.001,104,0.001,105,1.473,107,2.155,112,2.727,127,1.14,187,1.289,215,2.914,216,1.665,217,1.189,221,2.122,227,0.95,883,3.775,1919,3.739,1993,6.156,2485,3.89,2570,4.872,3852,6.156,4586,7.783,6359,5.491,9465,7.922,9473,7.529,9474,6.843,9475,7.601,13532,9.348,13534,11.143,17701,12.16,17702,9.006,17703,12.717,17704,9.006,17705,9.006,17706,9.006,17707,9.006]],["title/classes/Scope.html",[0,0.229,277,2.699]],["body/classes/Scope.html",[0,0.246,2,0.831,3,0.019,4,0.019,5,0.01,7,0.111,8,1.17,27,0.533,29,0.869,30,0.001,31,0.615,32,0.183,33,0.548,35,1.17,95,0.124,96,1.953,101,0.014,103,0.001,104,0.001,111,2.642,127,0.915,144,1.975,148,3,165,0.766,217,0.954,227,1.235,247,2.867,277,4.682,329,2.129,347,2.486,371,1.991,398,2.116,529,5.542,884,4.581,905,3.001,959,8.473,1773,4.641,2432,7.957,5872,7.484,5873,7.484,5874,7.484,5879,6.63,5880,6.63,5882,8.589,5893,6.63,5894,7.998,5896,6.63,5898,6.63,14782,10.113,17708,7.227,17709,9.699,17710,9.699,17711,7.227,17712,7.227,17713,7.227,17714,7.227,17715,7.227,17716,7.227,17717,7.227,17718,7.227,17719,9.699,17720,10.948,17721,9.699,17722,7.227,17723,7.227,17724,7.227]],["title/classes/ScopeRef.html",[0,0.229,17725,5.125]],["body/classes/ScopeRef.html",[0,0.315,2,1.064,3,0.025,4,0.025,5,0.013,7,0.142,26,2.799,27,0.511,29,0.735,30,0.001,31,0.52,32,0.173,33,0.463,34,2.261,95,0.119,99,1.57,101,0.018,103,0.001,104,0.001,127,1.171,165,0.898,277,5.439,618,3.937,2090,6.524,2381,8.883,6007,8.549,6008,10.504,6009,8.549,7078,6.22,11742,11.86,17725,8.64,17726,9.944]],["title/classes/ServerConsole.html",[0,0.229,17727,5.892]],["body/classes/ServerConsole.html",[0,0.272,2,0.92,3,0.021,4,0.021,5,0.011,7,0.123,8,1.252,27,0.478,29,0.824,30,0.001,31,0.582,32,0.146,33,0.519,35,1.252,47,0.837,95,0.133,101,0.015,103,0.001,104,0.001,127,1.013,148,3.767,215,2.59,227,1.095,235,6.892,364,1.922,379,2.907,444,3.977,1236,8.039,1491,4.573,2116,6.228,2309,6.827,3447,6.691,3448,8.185,3451,8.363,3453,8.363,3456,5.679,3457,8.998,3458,8.448,3459,4.769,9445,8.992,10548,9.254,17727,9.062,17728,8.003,17729,11.25,17730,10.374,17731,8.003,17732,8.003,17733,10.374,17734,9.062,17735,8.003,17736,9.583,17737,8.003,17738,8.003]],["title/modules/ServerConsoleModule.html",[425,1.808,17739,5.892]],["body/modules/ServerConsoleModule.html",[0,0.243,3,0.019,4,0.019,5,0.01,30,0.001,32,0.1,47,0.52,87,3.533,95,0.177,96,2.602,99,1.213,101,0.014,103,0.001,104,0.001,187,1.023,234,1.16,347,1.457,369,1.576,381,2.353,398,2.093,425,3.122,427,2.643,428,2.787,429,2.874,430,2.861,431,2.836,432,4.024,433,2.696,442,3.871,443,2.811,444,2.741,449,3.871,461,1.647,511,3.66,778,4.805,801,4.17,802,5.18,885,4.791,1444,6.274,1724,4.008,1810,6.246,1919,2.969,2116,3.868,2171,3.073,2172,3.419,2173,3.297,2686,3.804,3458,6.099,3459,4.26,3533,9.785,3898,3.901,4808,4.888,5453,4.805,5483,5.764,6082,5.738,7664,6.246,7811,7.522,9419,4.805,9797,6.605,10037,10.472,10248,7.137,10249,7.137,10250,5.18,10252,5.074,10253,5.299,10254,7.137,10258,6.977,10259,6.977,10260,6.977,10261,5.299,10262,5.074,10273,5.299,10274,5.299,10275,5.18,11226,5.299,11760,5.978,11763,5.299,12184,7.762,14405,9.785,14417,5.978,14425,6.246,14544,6.605,17727,8.412,17739,11.642,17740,7.15,17741,7.15,17742,7.15,17743,7.15,17744,7.15,17745,7.15,17746,7.15,17747,9.63,17748,7.15,17749,7.15]],["title/controllers/ServerController.html",[481,2.629,17750,5.639]],["body/controllers/ServerController.html",[0,0.333,3,0.026,4,0.026,5,0.014,7,0.151,8,1.42,27,0.407,30,0.001,35,1.182,47,0.856,95,0.126,101,0.019,103,0.001,104,0.001,116,3.809,187,1.402,227,1.034,329,3.467,364,1.815,447,4.106,481,4.588,535,6.368,1236,7.093,1491,5.597,2116,5.299,9368,9.194,11042,8.189,17729,12.092,17750,9.84,17751,9.795,17752,9.795]],["title/modules/ServerModule.html",[425,1.808,17753,5.639]],["body/modules/ServerModule.html",[0,0.186,3,0.009,4,0.009,5,0.005,8,0.406,27,0.228,29,0.267,30,0.001,31,0.308,32,0.077,33,0.168,35,0.406,47,0.801,52,1.561,55,1.205,72,3.751,87,1.663,95,0.175,96,1.481,99,0.571,101,0.013,103,0,104,0,111,1.597,127,0.693,145,2.565,148,1.041,187,0.482,191,1.869,192,1.003,200,1.096,214,1.809,216,1.477,217,1.162,227,0.355,234,0.889,346,4.659,347,1.628,349,2.226,355,2.155,369,0.742,371,1.51,379,0.775,381,1.107,398,0.985,425,2.777,426,7.601,427,2.953,428,1.312,429,1.353,430,1.347,431,1.335,432,1.244,433,1.269,438,4.695,442,2.203,443,1.323,444,1.29,447,3.35,449,3.212,461,0.775,511,1.723,574,2.484,627,1.048,667,1.58,701,2.421,704,1.663,722,1.484,731,1.323,778,3.683,801,1.963,839,1.58,874,2.388,885,2.726,953,2.192,1052,2.825,1053,3.543,1272,2.301,1273,2.629,1274,2.629,1275,2.629,1294,2.342,1298,1.589,1299,1.57,1300,1.57,1301,1.663,1378,2.226,1379,2.028,1409,2.262,1412,3.625,1417,2.161,1418,2.262,1438,2.262,1444,2.192,1508,1.905,1545,1.075,1576,2.028,1581,7.366,1680,2.301,1696,1.923,1724,3.072,1841,2.438,1919,2.878,2116,3.75,2171,1.446,2172,1.609,2173,1.552,2174,2.132,2298,2.028,2478,3.131,2686,1.791,2753,7.601,3462,2.192,3534,6.989,3543,2.689,3544,2.275,3900,5.267,3912,4.281,3913,8.96,4169,2.226,4510,2.494,4556,1.723,4561,2.916,4600,7.601,4808,2.301,5400,2.226,5453,2.262,6317,6.237,6491,2.005,7652,2.052,7869,1.869,8206,2.342,9611,2.388,10092,2.342,10245,6.989,10246,4.825,10248,4.061,10249,4.061,10250,2.438,10251,4.164,10252,2.388,10253,2.494,10254,4.061,10258,3.97,10259,3.97,10260,3.97,10261,2.494,10262,2.388,10272,6.071,10273,2.494,10274,2.494,10275,2.438,10276,2.713,10277,2.438,10278,2.557,10317,2.342,10319,4.061,10321,2.438,10323,2.438,10325,10.059,10326,4.061,10582,7.601,10789,2.388,11046,2.814,11156,2.077,11592,2.342,11608,5.137,11610,2.494,11763,2.494,12445,7.601,12564,2.713,12948,2.557,13160,2.713,13367,7.601,13432,7.601,13439,2.814,13644,7.601,14170,5.588,14391,2.629,14417,2.814,14711,7.601,15226,7.601,15401,7.601,15565,4.581,15585,2.814,15777,2.94,15779,2.94,15781,2.94,15782,2.94,15783,2.94,16484,2.814,16593,8.014,16597,2.94,16777,2.713,17750,7.354,17753,11.624,17754,3.365,17755,3.365,17756,7.366,17757,7.601,17758,7.601,17759,7.601,17760,7.601,17761,7.601,17762,7.601,17763,7.601,17764,3.109,17765,6.403,17766,8.711,17767,3.365,17768,6.403,17769,3.109,17770,3.109,17771,3.109,17772,3.109,17773,3.109,17774,3.109,17775,3.109,17776,3.109,17777,3.109,17778,3.109,17779,3.109,17780,3.109,17781,3.109,17782,3.109,17783,2.814,17784,3.109,17785,2.713,17786,2.713,17787,3.109,17788,3.109,17789,3.109,17790,3.109,17791,7.381,17792,3.109,17793,3.109,17794,3.109,17795,3.109,17796,3.109,17797,3.109,17798,3.109,17799,3.109,17800,3.109,17801,6.403,17802,3.109,17803,5.062,17804,6.403,17805,3.109,17806,3.109,17807,3.109,17808,3.109,17809,3.109,17810,3.109,17811,3.109,17812,3.109,17813,3.109,17814,3.109,17815,3.109,17816,2.94,17817,3.109,17818,3.109,17819,3.109,17820,3.109,17821,3.109,17822,3.109,17823,3.109,17824,5.062,17825,3.109,17826,5.062,17827,3.109,17828,5.062,17829,3.109,17830,3.109,17831,3.109,17832,4.581,17833,3.109]],["title/modules/ServerTestModule.html",[425,1.808,17832,5.639]],["body/modules/ServerTestModule.html",[0,0.18,3,0.009,4,0.009,5,0.005,8,0.39,27,0.28,29,0.421,30,0.001,31,0.378,32,0.095,33,0.265,35,0.639,47,0.79,52,1.498,55,1.165,59,1.002,72,3.66,87,1.596,95,0.174,96,1.432,99,0.548,101,0.013,103,0,104,0,111,1.559,127,0.671,145,2.521,148,0.999,187,0.462,191,1.794,192,0.963,200,1.726,214,1.75,216,1.441,217,1.137,227,0.341,234,0.859,346,4.529,347,1.588,349,2.137,355,2.084,369,0.712,371,1.46,379,0.744,381,1.063,398,0.946,425,2.733,426,7.456,427,3.611,428,1.259,429,1.299,430,1.293,431,1.281,432,1.194,433,1.218,438,4.614,442,2.13,443,1.27,444,1.238,447,3.268,449,3.134,461,0.744,511,1.654,574,3.054,627,1.65,667,1.516,701,2.723,704,1.596,722,1.425,731,1.27,778,3.562,801,1.884,839,1.516,874,2.292,885,2.636,953,2.105,1052,2.746,1053,3.457,1272,2.208,1273,2.523,1274,2.523,1275,2.523,1294,3.689,1298,1.526,1299,1.507,1300,1.507,1301,1.596,1378,2.137,1379,1.947,1408,2.34,1409,3.562,1412,4.457,1417,2.074,1418,2.171,1438,3.562,1444,2.105,1508,2.999,1545,1.032,1576,3.194,1581,7.225,1680,2.208,1696,1.846,1724,3.777,1841,2.34,1919,3.574,2116,3.645,2171,1.388,2172,1.545,2173,1.49,2174,2.046,2298,3.194,2478,4.455,2686,1.719,2753,7.456,3462,2.105,3534,6.855,3543,2.601,3544,2.2,3900,5.12,3912,4.14,3913,8.829,4169,3.505,4510,2.394,4556,1.654,4561,2.82,4600,7.456,4808,2.208,5400,2.137,5453,2.171,6317,6.118,6491,1.925,7652,3.231,7869,1.794,8206,2.248,9611,2.292,10092,2.248,10245,3.928,10246,6.8,10248,3.928,10249,3.928,10250,2.34,10251,4.027,10252,2.292,10253,2.394,10254,3.928,10258,3.84,10259,3.84,10260,3.84,10261,2.394,10262,2.292,10272,5.924,10273,2.394,10274,2.394,10275,2.34,10276,2.604,10277,2.34,10278,2.454,10317,5.991,10319,5.778,10321,2.34,10323,3.84,10325,9.959,10326,3.928,10582,7.456,10789,3.761,11046,2.701,11156,1.994,11592,3.689,11608,3.928,11610,2.394,11763,2.394,12445,7.456,12564,2.604,12948,2.454,13160,2.604,13367,7.456,13432,7.456,13439,2.701,13644,7.456,14170,5.432,14391,2.523,14417,2.701,14711,7.456,15226,7.456,15401,7.456,15565,4.431,15585,2.701,15777,2.822,15779,2.822,15781,2.822,15782,2.822,15783,2.822,16484,2.701,16593,7.875,16597,2.822,16777,2.604,17750,7.196,17753,7.196,17756,7.225,17757,7.456,17758,7.456,17759,7.456,17760,7.456,17761,7.456,17762,7.456,17763,7.456,17764,2.984,17765,6.224,17766,8.544,17768,6.224,17769,2.984,17770,2.984,17771,2.984,17772,2.984,17773,2.984,17774,2.984,17775,2.984,17776,2.984,17777,2.984,17778,2.984,17779,2.984,17780,2.984,17781,2.984,17782,2.984,17783,2.701,17784,2.984,17785,2.604,17786,2.604,17787,2.984,17788,2.984,17789,2.984,17790,2.984,17791,7.202,17792,2.984,17793,2.984,17794,2.984,17795,2.984,17796,2.984,17797,2.984,17798,2.984,17799,2.984,17800,2.984,17801,6.224,17802,2.984,17803,4.895,17804,6.224,17805,2.984,17806,2.984,17807,2.984,17808,2.984,17809,2.984,17810,2.984,17811,2.984,17812,2.984,17813,2.984,17814,2.984,17815,2.984,17816,2.822,17817,2.984,17818,2.984,17819,2.984,17820,2.984,17821,2.984,17822,2.984,17823,2.984,17824,4.895,17825,2.984,17826,4.895,17827,2.984,17828,4.895,17829,4.895,17830,4.895,17831,4.895,17832,11.6,17833,2.984,17834,3.23,17835,3.23,17836,3.23,17837,3.23]],["title/classes/SetHeightBodyParams.html",[0,0.229,4032,5.892]],["body/classes/SetHeightBodyParams.html",[0,0.401,2,1.129,3,0.026,4,0.026,5,0.014,7,0.151,27,0.408,30,0.001,32,0.138,55,2.592,95,0.151,101,0.019,103,0.001,104,0.001,165,0.931,364,1.819,368,3.878,369,2.598,370,3.932,371,3.248,374,3.136,376,2.302,467,3.168,3236,8.111,4032,10.297,17838,11.787,17839,9.819,17840,9.819,17841,9.819,17842,10.889]],["title/entities/ShareToken.html",[380,1.41,6368,4.694]],["body/entities/ShareToken.html",[0,0.228,3,0.018,4,0.018,5,0.009,7,0.162,26,2.483,27,0.511,30,0.001,32,0.173,33,0.615,34,1.153,49,4.91,83,3.173,95,0.153,96,2.495,97,2.859,101,0.018,103,0.001,104,0.001,145,2.382,165,0.729,199,3.524,227,0.974,234,1.497,240,3.852,247,2.666,334,0.74,351,5.61,364,2.278,369,2.711,370,3.787,380,1.93,381,2.211,385,7.631,398,1.968,399,3.614,402,2.764,404,1.217,405,1.816,406,2.153,411,5.106,412,5.618,421,5.25,422,5.618,701,2.347,1031,3.638,2674,4.233,3305,4.562,3333,8.501,3574,4.501,4294,4.05,4712,7.015,4714,6.766,4720,5.618,5664,5.698,5692,5.618,5693,5.417,5694,5.618,6102,4.445,6111,5.649,6368,6.426,6382,5.618,9493,4.981,9561,7.484,9566,5.618,9642,4.869,9643,4.869,9700,6.208,9701,6.208,9740,5.106,9742,5.106,11764,7.718,11765,11.635,11766,6.208,11767,9.153,11768,7.761,11769,8.869,11770,6.208,11771,4.445,11772,4.378,11773,6.208,11774,6.208,17843,6.72,17844,6.72,17845,6.72,17846,6.72,17847,6.72,17848,6.72]],["title/classes/ShareTokenBodyParams.html",[0,0.229,17849,5.892]],["body/classes/ShareTokenBodyParams.html",[0,0.331,2,0.834,3,0.019,4,0.019,5,0.01,7,0.112,27,0.543,30,0.001,32,0.177,33,0.586,34,1.668,47,0.707,55,2.577,95,0.141,101,0.014,103,0.001,104,0.001,165,0.768,192,2.898,347,1.981,359,4.062,364,2.171,368,5.157,369,2.878,370,4.355,371,3.598,373,5.132,374,2.317,376,1.701,379,2.7,467,3.284,471,4.666,494,5.859,905,4.037,1000,4.157,1031,3.115,1036,8.129,1044,3.56,1359,7.387,2543,8.903,3091,4.432,3574,5.347,3834,4.23,5380,6.064,5419,7.837,6111,5.456,6368,8.156,7780,8.129,11768,8.353,11771,4.797,11772,4.725,17842,8.981,17849,8.493,17850,9.545,17851,7.253,17852,9.581,17853,9.581,17854,7.253,17855,9.723,17856,7.253,17857,9.154,17858,7.253,17859,7.253,17860,7.253,17861,9.723,17862,8.129,17863,7.253,17864,7.253]],["title/classes/ShareTokenContextTypeMapper.html",[0,0.229,17865,5.892]],["body/classes/ShareTokenContextTypeMapper.html",[0,0.313,2,1.059,3,0.024,4,0.024,5,0.013,7,0.142,8,1.368,27,0.383,29,0.732,30,0.001,31,0.517,32,0.159,33,0.461,35,1.112,95,0.158,101,0.018,103,0.001,104,0.001,187,1.319,208,3.418,217,1.498,227,0.972,234,1.839,305,2.65,627,3.824,2027,8.003,2767,4.152,3218,7.5,3331,6.357,6017,7.702,6489,8.256,10205,9.905,10210,9.905,10225,8.047,10232,7.702,11767,10.333,11771,6.093,11772,6.002,14451,8.047,17865,9.905,17866,11.339,17867,9.212]],["title/controllers/ShareTokenController.html",[481,2.629,17868,5.639]],["body/controllers/ShareTokenController.html",[0,0.175,3,0.014,4,0.014,5,0.007,7,0.079,8,0.922,27,0.378,29,0.723,30,0.001,31,0.511,32,0.194,33,0.456,35,1.099,36,2.446,95,0.164,100,1.727,101,0.01,103,0,104,0,112,2.74,187,0.739,206,2.642,215,1.67,216,0.954,217,1.487,221,2.146,227,0.961,231,2.979,264,3.855,351,4.975,364,1.687,376,1.21,447,2.163,481,2.012,483,2.484,491,6.102,498,5.226,502,4.779,506,7.335,509,7.295,513,6.365,543,6.122,553,6.294,554,8.244,555,2.724,556,2.792,557,2.816,558,2.452,559,2.816,561,2.816,563,5.621,564,4.787,805,4.16,883,3.205,1016,3.838,1439,4.815,1469,5.057,2037,5.812,2686,4.845,2769,2.55,2926,6.919,2928,8.116,2930,3.921,2931,6.919,2934,7.335,2955,4.327,3013,3.413,3026,3.185,3027,2.949,3218,5.057,3574,2.516,3710,4.607,6042,5.972,6111,2.567,6282,4.16,6368,5.321,8210,8.795,11763,3.825,12669,6.392,13626,5.666,16975,4.16,16990,4.508,16992,4.508,17849,8.796,17852,4.508,17853,4.508,17868,6.392,17869,10.069,17870,5.16,17871,8.412,17872,8.412,17873,8.412,17874,5.16,17875,8.554,17876,7.645,17877,5.16,17878,5.16,17879,5.16,17880,5.16,17881,10.178,17882,8.796,17883,5.16,17884,5.16,17885,7.645,17886,5.16,17887,7.645,17888,5.16,17889,5.16,17890,5.16,17891,5.16,17892,5.16,17893,5.16,17894,4.508,17895,4.508,17896,7.341,17897,6.392,17898,6.392,17899,5.16,17900,5.16,17901,5.16,17902,5.16,17903,5.16,17904,5.16,17905,5.16,17906,5.16,17907,5.16,17908,5.16,17909,4.508,17910,5.16,17911,7.645,17912,5.16,17913,5.16,17914,5.16,17915,5.16,17916,5.16]],["title/classes/ShareTokenDO.html",[0,0.229,17917,5.125]],["body/classes/ShareTokenDO.html",[0,0.262,2,0.887,3,0.02,4,0.02,5,0.011,7,0.119,26,2.358,27,0.532,29,0.612,30,0.001,31,0.433,32,0.188,33,0.653,34,1.737,47,0.736,83,3.046,95,0.13,101,0.024,103,0.001,104,0.001,127,0.976,165,0.8,188,2.92,192,2.299,199,4.316,231,6.526,351,5.587,385,7.599,404,1.834,411,5.859,421,6.024,596,2.341,1031,3.245,1857,3.297,1939,6.93,2586,4.07,2691,3.383,2701,3.556,3574,3.76,4092,5.272,4714,4.595,4982,4.323,4994,4.407,5612,5.587,5664,4.76,6111,3.837,6424,4.497,7039,7.91,7040,6.024,9717,4.82,11767,8.163,11768,6.922,11769,8.832,13428,6.736,17917,9.474,17918,12.798,17919,7.712,17920,10.126,17921,9.453,17922,7.712,17923,9.114,17924,7.712,17925,7.712,17926,7.124,17927,6.447,17928,7.712,17929,7.712,17930,7.124]],["title/classes/ShareTokenFactory.html",[0,0.229,17931,6.23]],["body/classes/ShareTokenFactory.html",[0,0.299,2,1.011,3,0.023,4,0.023,5,0.012,7,0.135,8,1.329,26,2.63,27,0.365,29,0.698,30,0.001,31,0.493,32,0.123,33,0.44,34,1.889,35,1.061,49,3.426,59,2.727,95,0.162,99,1.491,101,0.017,103,0.001,104,0.001,217,1.161,227,1.162,231,5.073,234,1.786,351,5.442,404,1.994,674,6.009,676,6.452,731,3.456,734,5.073,735,5.073,2422,5.36,3058,6.514,3574,4.285,4150,5.814,6111,4.373,7142,7.348,11768,6.008,11772,5.726,17875,6.678,17917,6.678,17931,11.11,17932,11.013,17933,8.789,17934,11.013,17935,11.013,17936,8.789,17937,8.789,17938,8.789,17939,8.789,17940,7.678]],["title/classes/ShareTokenImportBodyParams.html",[0,0.229,17882,5.892]],["body/classes/ShareTokenImportBodyParams.html",[0,0.37,2,0.993,3,0.023,4,0.023,5,0.012,7,0.133,27,0.453,30,0.001,31,0.612,32,0.153,33,0.545,34,1.869,47,0.911,95,0.153,101,0.016,103,0.001,104,0.001,165,0.861,188,4.124,234,1.767,351,5.896,359,3.777,364,2.018,368,4.948,369,2.762,370,4.179,371,3.452,374,2.759,376,2.025,379,2.51,467,3.207,469,3.81,470,5.027,471,4.635,6048,10.423,6538,10.423,6916,6.964,6918,8.074,11205,9.108,11216,6.996,17850,9.321,17882,9.516,17941,8.638,17942,8.638,17943,10.894,17944,8.638,17945,8.638]],["title/interfaces/ShareTokenInfoDto.html",[334,0.742,17946,5.639]],["body/interfaces/ShareTokenInfoDto.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.177,47,0.989,95,0.126,101,0.019,103,0.001,104,0.001,165,0.931,334,1.081,336,2.392,351,6.62,6111,6.517,11768,8.955,11771,6.495,11772,6.397,17946,9.855,17947,9.819,17948,9.819,17949,10.56]],["title/classes/ShareTokenInfoResponse.html",[0,0.229,17897,5.639]],["body/classes/ShareTokenInfoResponse.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,27,0.518,29,0.676,30,0.001,31,0.478,32,0.175,33,0.426,47,0.906,95,0.152,101,0.016,103,0.001,104,0.001,127,1.366,165,0.853,351,6.787,364,2.196,376,1.996,411,6.467,467,3.456,469,3.754,966,4.357,1031,2.727,2784,6.166,2787,6.746,2914,5.465,6102,5.629,6111,6.398,11768,8.791,11771,5.629,11772,5.545,17850,10.045,17897,10.751,17949,10.366,17950,8.511,17951,8.511,17952,8.511,17953,8.511,17954,8.511,17955,8.511]],["title/classes/ShareTokenInfoResponseMapper.html",[0,0.229,17894,5.892]],["body/classes/ShareTokenInfoResponseMapper.html",[0,0.319,2,1.079,3,0.033,4,0.025,5,0.013,7,0.144,8,1.384,27,0.39,29,0.745,30,0.001,31,0.527,32,0.132,33,0.469,35,1.132,95,0.147,100,3.838,101,0.018,103,0.001,104,0.001,217,1.239,227,0.99,234,1.522,351,6.12,627,3.855,974,5.792,975,6.554,982,4.701,1822,6.659,6111,4.668,14148,7.845,17894,10.018,17897,10.786,17909,8.197,17946,10.786,17949,7.564,17956,10.594,17957,11.468,17958,9.384,17959,9.384,17960,9.384]],["title/classes/ShareTokenParentTypeMapper.html",[0,0.229,17961,5.892]],["body/classes/ShareTokenParentTypeMapper.html",[0,0.31,2,1.05,3,0.024,4,0.024,5,0.013,7,0.14,8,1.36,27,0.379,29,0.725,30,0.001,31,0.512,32,0.158,33,0.457,35,1.101,95,0.157,101,0.017,103,0.001,104,0.001,187,1.307,208,3.387,217,1.489,227,0.963,234,1.829,305,2.626,627,3.808,2027,7.971,2767,4.115,3218,7.458,3331,6.321,6017,7.632,6022,6.765,6489,8.223,10205,9.85,10210,9.85,10220,8.432,10227,8.432,10232,7.632,11768,8.735,11771,6.038,11772,5.947,14451,7.974,14452,8.432,17961,9.85,17962,11.275,17963,9.128,17964,9.128]],["title/classes/ShareTokenPayloadResponse.html",[0,0.229,17965,5.892]],["body/classes/ShareTokenPayloadResponse.html",[0,0.306,2,1.036,3,0.024,4,0.024,5,0.013,7,0.139,27,0.505,29,0.715,30,0.001,31,0.506,32,0.171,33,0.451,47,0.813,95,0.143,101,0.017,103,0.001,104,0.001,127,1.14,165,0.883,231,5.198,351,6.284,364,2.072,376,2.112,467,3.418,1031,2.886,2914,5.783,3574,5.929,6096,7.035,6102,5.957,6111,6.05,11768,8.939,11771,5.957,11772,5.867,17850,9.934,17923,10.252,17965,9.767,17966,9.006,17967,11.181,17968,9.006,17969,9.006,17970,9.006,17971,8.319,17972,8.319]],["title/injectables/ShareTokenRepo.html",[105,0.889,17973,5.437]],["body/injectables/ShareTokenRepo.html",[0,0.169,3,0.013,4,0.013,5,0.007,7,0.076,8,0.895,10,2.996,12,3.421,18,3.666,26,2.467,27,0.541,29,1.026,30,0.001,31,0.725,32,0.181,33,0.646,34,1.525,35,1.559,36,2.627,40,2.386,95,0.136,96,1.339,101,0.009,103,0,104,0,105,0.978,107,1.186,111,2.364,112,2.921,145,1.914,148,1.533,165,0.703,187,0.71,199,2.832,217,1.465,221,1.168,227,1.115,231,4.282,234,1.203,351,4.877,359,2.572,380,2.21,385,4.987,398,1.451,404,1.344,595,1.712,596,3.886,661,4.981,878,5.164,884,3.504,885,5.258,915,2.729,1857,4.743,2092,2.805,2383,8.971,2385,5.265,2386,5.265,2387,5.265,2388,5.265,2389,5.164,2390,5.164,2391,5.265,2392,5.164,2393,5.265,2398,3.518,2400,5.641,2401,3.518,2403,3.518,2405,3.279,2406,5.265,2407,3.518,2409,3.518,2411,5.265,2417,3.332,2418,5.164,2420,3.518,2422,3.023,2423,3.023,2424,3.518,2426,3.518,2428,3.518,2429,3.518,2447,3.674,3574,3.617,4714,4.421,5664,4.58,5766,3.592,5767,3.592,5768,3.592,5769,3.592,5770,3.592,5771,3.592,5772,3.592,5773,3.592,5774,3.592,5796,6.854,6111,3.691,6368,8.416,8781,3.766,11764,9.614,11769,7.711,11771,3.279,11772,3.229,14337,4.579,14347,4.144,17917,8.738,17921,6.203,17923,5.981,17926,4.579,17930,4.579,17973,5.981,17974,8.892,17975,4.957,17976,7.419,17977,7.419,17978,4.957,17979,7.419,17980,4.957,17981,4.957,17982,4.957,17983,4.957,17984,4.957,17985,4.957,17986,4.957,17987,4.957,17988,4.957,17989,7.419,17990,4.957,17991,4.957,17992,4.957,17993,4.957,17994,4.957,17995,4.957]],["title/classes/ShareTokenResponse.html",[0,0.229,17898,5.639]],["body/classes/ShareTokenResponse.html",[0,0.296,2,1,3,0.023,4,0.023,5,0.012,7,0.134,27,0.522,29,0.691,30,0.001,31,0.488,32,0.176,33,0.599,47,0.795,83,3.291,95,0.14,101,0.017,103,0.001,104,0.001,127,1.384,165,0.864,231,7.249,234,1.41,351,6.528,364,2.217,375,4.855,376,2.039,385,8.698,411,6.606,421,6.792,467,3.478,966,4.451,15806,8.032,17850,10.11,17875,6.606,17898,10.82,17927,7.269,17965,10.454,17996,8.694,17997,8.694,17998,8.694,17999,8.694,18000,8.694,18001,8.694]],["title/classes/ShareTokenResponseMapper.html",[0,0.229,17895,5.892]],["body/classes/ShareTokenResponseMapper.html",[0,0.32,2,1.082,3,0.025,4,0.025,5,0.013,7,0.145,8,1.386,27,0.391,29,0.747,30,0.001,31,0.528,32,0.132,33,0.471,35,1.135,95,0.147,100,3.844,101,0.018,103,0.001,104,0.001,217,1.242,227,0.993,231,5.429,234,1.525,351,6.126,385,6.322,627,3.859,974,5.806,975,6.563,982,4.712,6368,6.547,11771,6.221,11772,6.128,14148,7.864,17895,10.032,17898,10.794,17917,9.81,17956,10.609,18002,11.484,18003,9.406,18004,9.406,18005,8.689]],["title/injectables/ShareTokenService.html",[105,0.889,18006,5.437]],["body/injectables/ShareTokenService.html",[0,0.209,3,0.016,4,0.016,5,0.009,7,0.094,8,1.046,27,0.478,29,0.914,30,0.001,31,0.646,32,0.172,33,0.576,35,1.317,36,2.596,59,1.904,83,1.846,95,0.158,101,0.012,103,0.001,104,0.001,105,1.142,107,1.468,111,2.508,112,2.86,127,1.097,130,8.899,138,3.762,148,1.898,167,2.342,187,0.878,190,4.946,199,3.308,216,2.128,217,1.442,221,2.816,227,1.06,231,5.798,234,0.995,307,3.836,309,5.685,329,1.807,351,5.689,385,5.824,701,3.508,3030,4.946,3031,4.946,4940,9.594,4941,9.332,5147,7.279,6368,8.548,11768,4.195,11769,9.594,11771,4.059,11772,3.998,12137,5.668,12146,5.668,17917,8.748,17921,7.245,17923,8.799,17940,5.36,17949,9.281,17973,9.9,18005,8.005,18006,6.985,18007,11.949,18008,8.665,18009,10.046,18010,8.665,18011,8.665,18012,6.136,18013,9.632,18014,8.665,18015,6.136,18016,6.136,18017,6.136,18018,8.665,18019,6.136,18020,8.665,18021,6.136,18022,5.36,18023,5.36,18024,6.136,18025,6.136,18026,6.136,18027,6.136,18028,6.136,18029,6.136,18030,6.136,18031,6.136,18032,5.668,18033,6.136,18034,5.668,18035,6.136,18036,5.668,18037,6.136]],["title/injectables/ShareTokenUC.html",[105,0.889,17896,5.437]],["body/injectables/ShareTokenUC.html",[0,0.104,3,0.008,4,0.008,5,0.004,7,0.047,8,0.61,26,2.619,27,0.464,29,0.888,30,0.001,31,0.627,32,0.165,33,0.559,34,0.868,35,1.32,36,2.428,39,3.188,47,0.982,55,1.657,59,2.338,83,2.266,95,0.149,99,0.518,100,1.022,101,0.006,103,0,104,0,105,0.667,107,0.731,111,2.624,112,2.895,127,0.64,130,6.906,138,2.197,145,1.305,148,0.945,187,0.437,188,2.452,190,2.462,199,2.876,206,1.563,216,1.762,217,1.529,221,2.916,227,1.006,231,5.756,234,1.617,305,2.742,307,4.709,309,6.552,329,2.219,347,1.535,351,5.111,368,1.998,385,2.052,461,2.074,701,2.631,731,1.989,766,1.312,843,2.827,1052,2.64,1053,3.341,1132,4.079,1298,2.39,1299,2.361,1300,2.361,1415,3.904,1439,1.46,1545,0.975,1720,2.32,1828,3.723,1865,4.714,1866,6.19,1880,1.99,1881,1.934,1952,5.113,2171,1.312,2172,1.46,2173,1.408,2563,3.163,2675,5.233,2685,1.745,2691,2.22,2701,2.333,2767,1.377,2988,4.079,2989,5.222,2995,7.242,2996,7.445,3003,5.724,3013,3.347,3026,1.885,3027,1.745,3030,2.462,3031,2.462,3066,2.668,3067,2.668,3069,2.553,3070,6.073,3218,2.02,3305,1.509,3808,4.801,3830,4.772,3898,1.666,4714,1.82,4955,4.54,4973,4.674,5147,7.725,5664,1.885,5868,2.213,6048,8.326,6111,4.742,6368,5.244,6515,7.683,6517,4.23,6537,8.038,6538,9.554,6577,4.674,6581,4.674,6585,4.42,6586,2.821,6589,4.772,6597,4.42,7780,4.23,9217,2.553,11591,2.213,11767,2.462,11768,6.515,11771,2.02,11772,1.99,13832,4.674,17852,2.668,17853,2.668,17865,2.668,17871,6.959,17872,6.959,17873,5.984,17896,4.079,17909,4.42,17917,2.32,17921,6.981,17923,7.683,17940,6.581,17946,4.23,17949,4.079,17961,2.668,17971,2.821,17972,2.821,18006,7.256,18032,6.959,18034,6.959,18036,6.959,18038,11.389,18039,3.054,18040,5.06,18041,5.06,18042,5.06,18043,5.06,18044,3.054,18045,3.054,18046,5.06,18047,3.054,18048,5.06,18049,3.054,18050,5.06,18051,3.054,18052,5.06,18053,3.054,18054,3.054,18055,3.054,18056,2.821,18057,3.054,18058,3.054,18059,3.054,18060,3.054,18061,3.054,18062,5.06,18063,3.054,18064,5.06,18065,3.054,18066,2.821,18067,3.054,18068,3.054,18069,3.054,18070,5.06,18071,3.054,18072,5.06,18073,3.054,18074,6.478,18075,3.054,18076,3.054,18077,3.054,18078,3.054,18079,3.054,18080,5.06,18081,5.06,18082,7.534,18083,3.054,18084,3.054,18085,6.478,18086,5.06,18087,3.054,18088,3.054,18089,3.054,18090,5.06,18091,3.054,18092,5.06,18093,5.06,18094,5.06,18095,3.054,18096,3.054,18097,3.054,18098,3.054,18099,3.054,18100,6.478,18101,3.054,18102,3.054,18103,3.054]],["title/classes/ShareTokenUrlParams.html",[0,0.229,17881,5.892]],["body/classes/ShareTokenUrlParams.html",[0,0.395,2,1.102,3,0.025,4,0.025,5,0.014,7,0.147,27,0.398,30,0.001,32,0.135,47,0.845,95,0.149,101,0.018,103,0.001,104,0.001,165,0.918,351,6.577,359,4.028,364,1.776,368,4.588,369,2.561,370,3.875,371,3.201,374,3.061,376,2.247,379,2.208,467,3.122,470,4.894,479,7.104,17850,9.075,17857,9.075,17881,10.148,18104,9.585,18105,11.617,18106,9.585]],["title/modules/SharingApiModule.html",[425,1.808,17756,5.269]],["body/modules/SharingApiModule.html",[0,0.343,3,0.02,4,0.02,5,0.011,30,0.001,95,0.173,101,0.019,103,0.001,104,0.001,187,1.095,425,3.208,427,2.829,428,2.983,429,3.076,430,3.063,431,3.036,432,4.424,433,3.799,438,6.149,442,4.05,443,3.009,444,2.933,447,4.722,449,4.528,766,3.289,1545,2.444,1945,7.044,2691,3.357,2701,3.529,2767,3.45,2769,3.781,3546,6.169,13371,9.649,13372,9.649,13390,9.649,17756,10.953,17868,9.417,17896,10.295,17973,8.122,18006,9.08,18013,8.122,18022,6.685,18023,6.685,18107,7.653,18108,7.653,18109,7.653,18110,10.677,18111,7.07,18112,7.07,18113,7.07]],["title/modules/SharingModule.html",[425,1.808,18110,5.639]],["body/modules/SharingModule.html",[0,0.337,3,0.02,4,0.02,5,0.011,30,0.001,95,0.172,101,0.019,103,0.001,104,0.001,187,1.067,425,3.175,427,2.755,428,2.906,429,2.997,430,2.983,431,2.957,432,4.379,433,4.193,438,6.11,442,3.981,443,2.931,444,2.857,447,4.151,449,4.47,766,3.203,1545,2.381,1945,6.998,2691,3.27,2701,3.438,2767,3.36,2769,3.683,3546,6.009,13371,9.587,13372,9.587,13390,9.587,17756,5.823,17868,8.279,17896,7.982,17973,10.219,18006,10.989,18013,10.219,18022,6.512,18023,6.512,18110,11.801,18111,6.886,18112,6.886,18113,6.886,18114,7.454,18115,7.454,18116,7.454,18117,7.454]],["title/classes/SingleColumnBoardResponse.html",[0,0.229,16872,5.639]],["body/classes/SingleColumnBoardResponse.html",[0,0.239,2,0.808,3,0.019,4,0.019,5,0.01,7,0.108,27,0.518,29,0.558,30,0.001,31,0.394,32,0.184,33,0.351,34,1.632,47,0.906,95,0.138,101,0.013,103,0.001,104,0.001,127,1.204,145,1.813,165,0.752,240,2.981,347,2.356,364,2.239,376,1.647,379,2.871,467,3.349,469,3.098,475,4.767,966,3.596,1011,3.738,1013,4.947,1041,6.714,1295,5.493,1344,8.263,1474,4.325,1919,2.917,1925,4.945,1984,5.731,2697,6.726,2774,9.954,2787,5.948,2789,3.708,2910,5.192,2911,5.192,3402,9.67,3715,7.555,4047,5.873,4111,6.49,4982,5.335,4994,5.438,5444,10.104,6364,6.396,6700,5.488,6704,7.433,7236,5.338,7276,8.572,7450,6.137,8004,10.105,16872,10.105,18118,7.025,18119,7.025,18120,7.025,18121,7.025,18122,7.025,18123,7.025,18124,7.025,18125,5.338,18126,7.025,18127,7.025]],["title/classes/SingleFileParams.html",[0,0.229,6135,4.533]],["body/classes/SingleFileParams.html",[0,0.454,2,0.759,3,0.018,4,0.024,5,0.013,7,0.102,26,2.614,27,0.274,30,0.001,32,0.166,39,1.768,47,0.972,95,0.157,99,1.119,101,0.025,103,0.001,104,0.001,150,2.42,165,0.72,204,2.263,334,0.726,347,1.857,364,1.223,369,1.455,373,4.812,374,2.108,375,4.57,376,1.547,377,5.94,379,1.52,380,1.38,467,3.708,469,2.91,470,5.151,471,4.793,565,3.483,1000,5.228,1001,6.714,1031,3.347,1044,3.239,1291,2.807,1381,3.848,2744,4.657,2915,5.513,3574,3.217,4227,2.271,5725,5.319,5740,6.825,6064,4.18,6077,5.94,6083,6.202,6111,3.283,6114,4.511,6115,4.593,6116,4.593,6119,7.703,6122,8.088,6123,7.702,6124,7.842,6125,4.593,6126,4.511,6127,6.909,6128,4.511,6129,4.593,6130,4.238,6131,7.452,6132,4.365,6133,4.593,6134,4.593,6135,6.128,6136,4.511,6137,4.435,6138,4.435,6139,4.238,6140,4.593,6141,4.511,6142,4.593,6143,4.435,6144,4.511,6145,4.299,6146,4.299,6147,4.593,18128,6.599]],["title/classes/SortExternalToolParams.html",[0,0.229,8924,5.639]],["body/classes/SortExternalToolParams.html",[0,0.379,2,1.029,3,0.024,4,0.024,5,0.013,7,0.138,27,0.463,30,0.001,31,0.625,32,0.156,33,0.557,34,1.91,95,0.156,101,0.021,103,0.001,104,0.001,144,2.444,165,0.88,209,3.079,329,2.635,364,2.063,374,2.857,375,4.517,376,2.098,404,2.017,469,3.946,471,4.737,596,3.381,1031,3.568,1044,4.391,2600,3.904,3032,9.471,6844,8.266,7633,6.227,8454,7.211,8924,9.309,18129,8.946,18130,10.911,18131,13.051,18132,8.946,18133,8.264,18134,7.815,18135,8.264,18136,8.946]],["title/classes/SortImportUserParams.html",[0,0.229,12275,5.639]],["body/classes/SortImportUserParams.html",[0,0.379,2,1.029,3,0.024,4,0.024,5,0.013,7,0.138,27,0.463,30,0.001,32,0.156,33,0.557,95,0.163,101,0.021,103,0.001,104,0.001,144,2.444,165,0.88,329,2.635,364,2.063,374,2.857,375,4.517,376,2.098,404,2.017,469,3.946,471,4.737,596,3.381,851,5.465,852,5.465,1031,3.568,1044,4.391,3032,9.471,4442,3.946,6844,8.266,7633,6.227,10329,7.479,12275,9.309,12387,12.056,18130,10.911,18133,8.264,18134,7.815,18135,8.264,18137,8.946,18138,8.946,18139,8.946]],["title/classes/SortingParams.html",[0,0.229,18130,5.639]],["body/classes/SortingParams.html",[0,0.379,2,1.394,3,0.024,4,0.024,5,0.013,7,0.138,9,6.067,27,0.463,30,0.001,32,0.178,33,0.557,95,0.143,101,0.017,103,0.001,104,0.001,144,2.444,165,0.88,329,2.635,364,2.246,374,2.857,375,4.517,376,2.098,471,4.737,692,4.148,728,4.359,1031,3.568,1044,4.391,3032,9.471,3618,9.309,6844,8.885,7633,7.75,10057,8.976,18130,9.309,18134,7.815,18140,8.946,18141,8.946,18142,11.135,18143,8.946,18144,8.946]],["title/injectables/StartUserLoginMigrationUc.html",[105,0.889,18145,5.639]],["body/injectables/StartUserLoginMigrationUc.html",[0,0.222,3,0.017,4,0.017,5,0.009,7,0.1,8,1.091,27,0.431,29,0.825,30,0.001,31,0.583,32,0.146,33,0.519,35,1.091,36,2.436,39,2.424,47,0.983,52,3.026,95,0.163,99,1.107,101,0.012,103,0.001,104,0.001,105,1.192,107,1.561,111,2.242,112,2.732,127,1.145,129,6.92,132,6.667,167,2.49,189,5.071,191,3.624,192,3.095,199,3.453,204,2.238,216,2.072,217,1.371,221,2.775,227,0.688,234,1.467,305,2.602,322,5.259,355,5.008,461,2.879,766,2.804,795,3.845,843,2.847,1052,5.092,1542,3.044,1545,2.084,1555,4.078,1862,4.979,1868,4.132,1952,6.703,2767,2.941,3830,4.132,3832,4.385,4227,4.384,4442,4.945,4444,5.259,4447,5.259,4448,8.646,4451,6.027,4455,5.809,4457,6.757,4458,4.835,4461,5.096,4466,7.562,4467,6.704,8599,5.096,13636,5.259,16708,5.454,16711,6.027,16712,5.699,16713,6.027,16714,5.699,17671,5.454,18145,7.562,18146,11.212,18147,9.045,18148,7.902,18149,9.045,18150,6.524,18151,9.045,18152,6.524,18153,7.291,18154,6.524,18155,6.524,18156,6.524,18157,6.524]],["title/classes/StatelessAuthorizationParams.html",[0,0.229,15707,5.892]],["body/classes/StatelessAuthorizationParams.html",[0,0.373,2,1.004,3,0.023,4,0.023,5,0.012,7,0.134,27,0.523,30,0.001,32,0.177,33,0.679,47,0.962,95,0.141,101,0.017,103,0.001,104,0.001,165,0.867,204,4.113,364,2.33,374,2.789,470,5.299,471,5.513,602,9.17,1001,6.536,1044,4.286,1253,5.53,1997,9.367,1998,11.077,1999,8.067,2001,11.077,2002,8.067,2007,8.067,2008,5.608,2009,8.067,2010,8.067,15707,9.581,18158,12.959,18159,8.732,18160,8.732,18161,8.732,18162,8.732,18163,8.732]],["title/classes/StorageProviderEncryptedStringType.html",[0,0.229,11778,5.639]],["body/classes/StorageProviderEncryptedStringType.html",[0,0.234,2,0.79,3,0.018,4,0.018,5,0.01,7,0.106,8,1.131,27,0.476,29,0.847,30,0.001,31,0.599,32,0.184,33,0.534,35,1.131,47,1.016,59,2.132,95,0.137,96,1.856,101,0.013,103,0.001,104,0.001,111,2.133,127,0.869,144,3.382,145,3.194,165,0.74,167,3.577,217,1.238,227,1.306,247,3.717,379,1.583,398,2.011,404,1.697,406,2.201,766,2.952,777,8.105,1062,4.09,1659,8.131,1812,4.874,1919,2.852,1924,8.105,2076,5.63,2171,2.952,2172,3.285,2173,3.168,2174,4.351,6414,4.977,6993,6.79,7652,5.715,8096,8.599,11204,6.79,11389,8.187,11390,8.918,11778,7.835,14166,5.743,18164,6.869,18165,8.657,18166,9.372,18167,9.372,18168,9.372,18169,9.372,18170,9.372,18171,10.667,18172,9.372,18173,6.869,18174,9.372,18175,6.869,18176,6.869,18177,6.869,18178,9.372,18179,8.657,18180,9.372,18181,6.869,18182,6.346,18183,9.372,18184,6.869,18185,6.346]],["title/entities/StorageProviderEntity.html",[380,1.41,7806,4.999]],["body/entities/StorageProviderEntity.html",[0,0.277,3,0.022,4,0.022,5,0.012,7,0.125,27,0.509,30,0.001,32,0.182,33,0.525,47,1.004,95,0.149,96,2.202,101,0.02,103,0.001,104,0.001,165,0.829,240,4.14,334,0.897,364,2.272,369,2.314,370,2.718,380,2.195,381,2.681,386,4.657,398,2.386,399,4.109,400,3.575,402,3.352,404,1.476,405,2.202,406,2.611,2674,3.736,4712,6.192,6165,8.535,6167,8.535,6168,9.042,7806,7.779,11116,7.118,11775,9.169,11776,7.528,11777,11.327,11778,9.707,11779,7.528,11780,7.528,11781,7.528,11782,7.528,11783,7.528,11784,7.528,11785,7.528,11786,7.528,11787,7.528,18186,8.149,18187,8.149,18188,8.149,18189,8.149]],["title/injectables/StorageProviderRepo.html",[105,0.889,7803,5.639]],["body/injectables/StorageProviderRepo.html",[0,0.252,3,0.02,4,0.02,5,0.01,7,0.114,8,1.189,10,3.979,12,4.544,18,4.869,26,2.055,27,0.537,29,0.977,30,0.001,31,0.691,32,0.173,33,0.615,34,1.269,35,1.484,36,2.673,40,3.561,49,3.841,95,0.152,96,2,97,3.148,99,1.255,101,0.014,103,0.001,104,0.001,105,1.298,107,1.77,112,2.978,127,0.936,187,1.059,216,1.368,217,0.977,227,1.04,380,1.547,381,3.242,404,1.784,432,3.642,596,3.586,692,5.038,877,7.53,883,4.131,884,4.654,885,5.511,908,4.512,909,4.567,910,4.512,911,4.567,912,5.251,913,4.512,914,4.567,915,4.073,2394,5.361,2395,6.75,2397,7.139,2435,4.973,3639,5.058,5782,5.622,7803,8.238,7806,7.303,14595,9.227,18190,7.4,18191,7.4,18192,7.4,18193,7.4,18194,7.4]],["title/classes/StringValidator.html",[0,0.229,12386,5.269]],["body/classes/StringValidator.html",[0,0.289,2,0.979,3,0.023,4,0.023,5,0.012,7,0.131,8,1.302,27,0.448,29,0.857,30,0.001,31,0.606,32,0.151,33,0.54,35,1.302,47,0.991,59,3.349,101,0.016,103,0.001,104,0.001,144,3.59,167,3.249,217,1.425,227,1.315,247,4.281,329,2.507,347,2.199,369,2.379,371,3.434,470,4.546,627,4.09,1773,5.465,1828,5.556,12386,8.43,12547,10.886,18179,7.862,18195,8.511,18196,10.791,18197,10.791,18198,8.511,18199,10.791,18200,8.511,18201,8.511,18202,8.511]],["title/entities/Submission.html",[380,1.41,2881,3.075]],["body/entities/Submission.html",[0,0.157,3,0.012,4,0.012,5,0.007,7,0.158,26,2.136,27,0.502,30,0.001,32,0.175,33,0.579,34,0.791,47,0.816,55,1.871,62,2.689,72,2.164,95,0.148,96,1.246,101,0.013,103,0,104,0,111,1.404,116,3.492,144,1.26,145,2.455,165,0.752,187,0.66,192,2.836,208,1.711,217,1.698,227,1.221,234,1.543,240,3.623,305,1.326,329,1.358,334,0.507,347,2.503,364,2.239,369,2.549,370,3.416,371,1.936,380,1.469,381,1.517,386,4.863,394,4.014,398,1.35,399,2.75,400,2.023,402,1.896,404,0.835,405,1.246,406,1.477,461,2.665,738,2.661,844,4.642,957,2.609,1218,3.272,1240,2.661,1253,2.126,1439,3.359,1910,2.178,1991,2.494,2571,3.209,2674,5.541,2678,3.833,2682,2.516,2691,5.303,2692,2.882,2881,3.879,3106,6.049,3396,2.961,3397,3.05,3684,2.585,3737,6.395,3742,6.395,3750,5.873,3752,5.873,4227,1.587,4926,3.239,6110,3.902,6404,6.892,6405,3.099,6407,2.846,6409,2.585,6425,5.09,6429,2.882,6430,2.779,6627,3.099,6628,4.259,6737,4.511,6793,3.209,6911,3.004,8686,7.23,11324,4.889,11325,4.889,11330,4.889,11331,3.209,11548,6.894,11788,5.873,11789,4.259,11790,8.79,11791,9.381,11792,6.136,11793,4.259,11794,6.489,11795,4.259,11796,4.259,11797,4.259,11798,4.259,11799,3.717,11800,4.259,11801,4.259,11802,4.259,11803,3.855,11804,4.259,11805,4.259,11806,4.259,11807,4.259,11808,4.259,11809,4.259,11810,9.461,11811,4.259,11812,4.259,11813,4.259,11814,4.259,11815,4.259,11816,4.259,11817,8.79,11818,4.259,11819,6.307,11820,3.717,11821,9.968,11822,6.489,11823,3.855,11824,6.489,11825,4.028,11826,3.341,11827,3.341,11828,3.717,11829,4.259,11830,4.259,11831,4.259,11832,4.259,11833,6.489,11834,6.489,11835,4.259,11836,4.259,11837,4.259,11838,4.259,11839,6.307,11840,3.717,11841,3.855,11842,6.489,18203,4.611,18204,4.611,18205,4.611,18206,4.611,18207,4.611,18208,4.611,18209,4.611,18210,4.611,18211,4.611,18212,4.611,18213,4.611]],["title/classes/SubmissionContainerContentBody.html",[0,0.229,5543,4.611]],["body/classes/SubmissionContainerContentBody.html",[0,0.45,2,0.797,3,0.018,4,0.018,5,0.01,7,0.107,9,3.313,27,0.288,30,0.001,31,0.601,32,0.19,47,0.685,83,2.836,95,0.148,99,1.175,101,0.025,103,0.001,104,0.001,144,2.928,163,2.184,165,0.745,240,2.17,364,1.284,369,1.527,374,2.213,376,1.625,379,1.596,404,1.94,467,3.646,470,4.514,524,4.083,999,6.336,1031,2.22,1044,3.4,2344,4.428,2594,4.726,2880,3.313,2915,3.657,3239,4.331,3242,5.701,3245,5.655,3774,6.638,4040,4.736,4071,4.736,4072,7.087,5504,7.324,5506,7.324,5508,7.324,5541,7.324,5542,6.444,5543,7.324,5739,4.583,5740,6.943,6850,4.916,8027,8.716,8028,6.986,8029,5.135,8032,7.603,8033,5.135,8034,8.161,8035,7.603,8036,5.135,8037,4.916,8038,4.916,8039,4.916,8040,4.916,8041,5.135,8042,5.135,8043,5.135,18214,6.928,18215,6.928]],["title/classes/SubmissionContainerElement.html",[0,0.229,2870,4.216]],["body/classes/SubmissionContainerElement.html",[0,0.222,2,0.75,3,0.017,4,0.017,5,0.009,7,0.1,8,1.091,27,0.544,29,0.992,30,0.001,31,0.701,32,0.181,33,0.625,35,1.537,36,1.965,55,1.989,59,2.024,83,3.543,95,0.133,101,0.017,103,0.001,104,0.001,112,2.328,116,2.927,144,2.472,148,3.643,165,0.715,208,2.421,217,0.862,221,1.537,227,0.955,334,0.718,347,2.115,363,5.809,404,1.88,595,3.125,596,3.867,661,3.811,692,3.37,728,2.554,806,2.748,884,4.272,1857,4.794,1860,6.868,1984,2.79,2598,6.653,2791,8.191,2794,6.704,2795,6.704,2796,6.704,2797,6.419,2798,6.704,2800,4.46,2801,5.809,2802,6.757,2804,6.704,2805,5.809,2806,6.837,2808,4.727,2809,4.774,2811,6.49,2812,4.727,2814,6.419,2816,4.727,2818,4.46,2844,5.729,2870,5.654,2873,5.654,2881,2.974,2882,6.187,2883,5.096,3245,5.918,3984,6.873,3985,4.957,3986,4.957,3995,4.315,4000,5.654,4681,5.699,4682,6.027,9517,5.096,16734,6.027,16736,6.027,18216,8.37,18217,6.524,18218,6.524,18219,8.356,18220,6.027,18221,6.027,18222,6.027,18223,5.699]],["title/classes/SubmissionContainerElementContent.html",[0,0.229,18224,5.639]],["body/classes/SubmissionContainerElementContent.html",[0,0.365,2,0.973,3,0.022,4,0.022,5,0.012,7,0.13,27,0.447,29,0.672,30,0.001,31,0.475,32,0.18,33,0.423,34,2.027,47,0.615,83,3.233,95,0.152,99,1.434,101,0.021,103,0.001,104,0.001,127,1.495,165,0.849,364,1.567,376,1.983,467,3.582,475,4.237,618,3.598,966,4.329,1031,2.71,2344,4.883,2621,3.994,2882,7.041,2910,4.615,2911,4.615,2915,4.464,3245,6.775,3403,6.426,3415,5.431,3658,7.484,3662,6.634,3666,6.001,3668,6.001,3774,6.82,4042,8.664,5508,5.781,9532,7.388,9533,7.812,11978,6.426,18224,10.967,18225,10.915]],["title/classes/SubmissionContainerElementContentBody.html",[0,0.229,8035,4.786]],["body/classes/SubmissionContainerElementContentBody.html",[0,0.448,2,0.777,3,0.018,4,0.018,5,0.01,7,0.104,9,3.23,27,0.385,30,0.001,31,0.594,32,0.193,47,0.674,83,2.032,95,0.146,99,1.146,101,0.025,103,0.001,104,0.001,144,2.889,145,1.743,163,2.129,165,0.732,240,2.116,364,1.716,369,1.489,374,2.157,376,1.584,379,1.556,404,2.061,467,3.631,470,4.454,524,3.981,596,2.051,999,6.226,1011,3.594,1031,2.164,1044,3.315,2344,4.927,2594,4.664,2880,3.23,2915,3.565,3239,4.222,3242,5.626,3245,3.565,3774,6.567,4040,4.617,4071,4.617,4072,6.994,5504,7.228,5506,7.228,5508,7.778,5541,7.228,5542,6.333,5543,7.228,5739,4.467,5740,6.882,6850,4.793,8027,9.138,8028,6.866,8029,5.006,8032,7.503,8033,5.006,8034,8.074,8035,8.074,8036,5.006,8037,4.793,8038,4.793,8039,4.793,8040,4.793,8041,5.006,8042,5.006,8043,5.006,9535,5.647,18226,6.754,18227,6.754]],["title/entities/SubmissionContainerElementNode.html",[380,1.41,3180,5.269]],["body/entities/SubmissionContainerElementNode.html",[0,0.301,3,0.023,4,0.023,5,0.013,7,0.136,27,0.368,30,0.001,32,0.124,83,3.629,95,0.162,96,2.391,101,0.021,103,0.001,104,0.001,165,0.874,208,3.283,217,1.168,227,0.934,240,3.779,334,0.974,364,1.639,380,2.312,381,2.911,398,2.59,404,2.003,405,2.391,617,5.107,1857,5.158,2594,4.877,2598,5.619,2620,5.16,2621,4.179,2882,6.589,3144,5.933,3154,6.912,3180,8.639,3212,5.681,3235,9.66,3245,6.67,3562,7.101,3583,5.764,4090,5.946,4093,5.946,9539,8.173,11978,6.722,11979,7.132,18228,9.245,18229,9.66,18230,8.173]],["title/interfaces/SubmissionContainerElementProps.html",[334,0.742,18223,5.892]],["body/interfaces/SubmissionContainerElementProps.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.135,30,0.001,32,0.154,36,1.905,83,3.903,95,0.154,101,0.021,103,0.001,104,0.001,112,1.967,144,2.396,148,2.713,165,0.869,208,3.254,217,1.158,221,2.067,227,1.161,334,0.965,336,2.136,347,1.787,404,2.176,728,3.434,806,3.695,1857,3.75,1984,3.75,2598,5.589,2791,6.966,2801,5.632,2802,6.628,2805,5.632,2806,6.706,2814,6.224,2844,7.61,2870,5.482,2873,6.875,2881,3.998,2882,5.226,2883,6.851,3245,6.849,3995,5.801,4000,6.875,9517,6.851,18216,7.07,18219,10.16,18220,8.102,18221,8.102,18222,8.102,18223,9.607]],["title/classes/SubmissionContainerElementResponse.html",[0,0.229,4042,5.437]],["body/classes/SubmissionContainerElementResponse.html",[0,0.346,2,0.895,3,0.021,4,0.021,5,0.011,7,0.12,27,0.52,29,0.618,30,0.001,31,0.437,32,0.19,33,0.39,34,2.145,47,0.741,83,2.342,95,0.146,99,1.321,101,0.019,103,0.001,104,0.001,127,1.437,165,0.805,364,2.233,376,1.826,467,3.564,475,3.901,618,3.313,966,3.986,1031,2.495,2344,5.169,2621,3.677,2882,7.646,2909,5.233,2910,5.561,2911,5.561,2914,5,2915,5.379,3245,5.996,3403,5.916,3415,5,3658,7.922,3662,7.012,3666,5.525,3668,5.525,3774,7.219,4042,10.082,5508,6.966,9543,7.193,9544,7.193,9545,7.193,9546,7.193,9547,7.193,11978,5.916,18224,10.075,18225,11.854]],["title/classes/SubmissionContainerElementResponseMapper.html",[0,0.229,5523,5.892]],["body/classes/SubmissionContainerElementResponseMapper.html",[0,0.26,2,0.878,3,0.02,4,0.02,5,0.011,7,0.118,8,1.214,27,0.497,29,0.799,30,0.001,31,0.565,32,0.168,33,0.503,34,1.31,35,1.358,95,0.144,99,1.296,100,2.557,101,0.015,103,0.001,104,0.001,111,2.25,116,2.472,165,0.795,214,3.322,217,1.009,227,1.188,234,1.94,347,2.05,591,3.266,627,3.973,806,3.218,974,4.715,975,5.751,978,6.673,980,5.967,1828,4.486,2092,4.323,2344,3.157,2588,8.791,2591,8.413,2592,8.413,2594,5.825,2595,8.112,2870,8.256,2882,7.407,3245,4.032,3658,4.838,3662,6.211,3679,5.661,3774,4.409,4042,9.642,5121,7.227,5508,5.222,5520,6.386,5523,11.368,9549,9.642,9550,6.386,9551,6.673,9553,6.386,9554,6.673,9555,6.673,18224,8.413,18231,11.483,18232,11.254,18233,7.638]],["title/interfaces/SubmissionContainerNodeProps.html",[334,0.742,18229,5.892]],["body/interfaces/SubmissionContainerNodeProps.html",[0,0.303,3,0.024,4,0.024,5,0.013,7,0.137,30,0.001,32,0.125,83,3.814,95,0.163,96,2.412,101,0.021,103,0.001,104,0.001,165,0.879,208,3.312,217,1.179,227,0.942,240,3.483,334,0.982,336,2.174,380,2.325,398,2.613,404,2.193,405,2.412,617,5.152,1857,5.179,2594,3.937,2598,5.651,2620,5.205,2621,4.216,2882,5.319,3144,5.965,3154,6.951,3180,6.973,3212,5.732,3235,9.713,3245,6.884,3562,7.778,3583,5.815,4090,5.999,4093,5.999,11978,6.782,11979,7.195,18228,7.463,18229,10.58,18230,8.245]],["title/classes/SubmissionContainerUrlParams.html",[0,0.229,3688,5.892]],["body/classes/SubmissionContainerUrlParams.html",[0,0.395,2,1.102,3,0.025,4,0.025,5,0.014,7,0.147,27,0.398,30,0.001,32,0.135,34,1.993,47,0.845,95,0.149,101,0.018,103,0.001,104,0.001,165,0.918,364,1.776,368,4.588,369,2.561,370,3.875,371,3.201,374,3.061,376,2.247,379,2.208,467,3.122,1000,4.967,2881,5.296,2882,6.922,3688,10.148,3834,5.59,6922,9.365,18234,10.148,18235,9.585,18236,11.547,18237,9.585]],["title/controllers/SubmissionController.html",[481,2.629,18238,5.892]],["body/controllers/SubmissionController.html",[0,0.26,3,0.02,4,0.02,5,0.011,7,0.118,8,1.216,10,4.549,27,0.419,29,0.8,30,0.001,31,0.566,32,0.141,33,0.504,35,1.216,36,2.601,95,0.167,100,2.561,101,0.015,103,0.001,104,0.001,112,2.864,185,4.41,187,1.095,206,3.918,215,2.477,216,1.415,217,1.581,221,2.374,227,1.063,234,1.241,264,4.265,364,1.867,376,1.794,447,3.208,481,2.983,483,3.683,491,6.39,513,6.763,555,4.039,556,4.14,557,4.176,559,4.176,561,4.176,1828,4.492,2769,3.781,2934,6.564,3684,5.648,13656,6.398,13662,6.398,18238,8.802,18239,7.653,18240,11.264,18241,10.457,18242,10.076,18243,7.653,18244,7.653,18245,10.008,18246,10.076,18247,7.653,18248,6.685,18249,9.417,18250,6.398,18251,7.653,18252,7.653,18253,7.653,18254,7.653,18255,7.653,18256,7.07,18257,7.653,18258,10.076,18259,7.653,18260,7.653,18261,7.653]],["title/classes/SubmissionFactory.html",[0,0.229,18262,6.23]],["body/classes/SubmissionFactory.html",[0,0.155,2,0.524,3,0.012,4,0.012,5,0.006,7,0.07,8,0.84,27,0.541,29,1.019,30,0.001,31,0.688,32,0.183,33,0.613,34,1.448,35,1.425,47,0.506,55,2.649,59,3.16,95,0.138,99,0.772,101,0.009,103,0,104,0,127,0.576,138,3.021,144,3.148,148,1.408,165,0.55,185,4.976,192,1.357,216,1.286,217,1.418,227,1.075,329,3.393,359,2.412,366,2.506,369,1.534,379,1.946,380,2.129,381,2.289,404,1.26,538,3.119,596,3.819,627,2.166,660,7.12,661,4.524,662,5.3,665,3.9,666,5.3,667,5.543,668,3.9,669,3.9,670,3.9,671,3.83,672,4.291,673,4.734,674,6.286,675,5.606,676,6.882,677,2.577,682,2.553,683,3.9,684,2.577,685,4.951,686,5.159,687,4.385,688,4.99,689,3.865,690,2.553,691,2.384,692,4,693,2.485,694,2.443,695,2.553,696,4.875,697,2.577,698,4.648,699,2.553,700,7.192,701,4.023,702,6.458,703,2.577,704,4.172,705,2.553,706,2.577,707,2.553,708,2.577,709,2.553,710,2.884,711,2.713,712,2.553,713,5.911,714,2.577,715,2.553,716,3.9,717,3.83,718,3.9,719,2.577,720,2.463,721,2.443,722,2.008,723,2.553,724,2.553,725,2.553,726,2.577,727,2.577,728,1.783,729,2.553,730,2.577,731,2.736,732,2.553,733,2.577,735,2.628,736,2.713,737,5.633,848,3.231,849,3.46,2691,1.998,2881,3.172,3106,3.9,3737,6.845,3742,6.845,6613,3.557,6614,3.67,6622,3.557,8686,5.287,11788,3.807,11791,5.817,18262,7.8,18263,4.553,18264,9.454,18265,6.958,18266,4.553,18267,4.553,18268,4.553,18269,6.958,18270,4.553,18271,4.553,18272,3.978,18273,4.553,18274,3.978,18275,4.553,18276,4.553,18277,4.553,18278,4.206]],["title/classes/SubmissionItem.html",[0,0.229,2873,4.216]],["body/classes/SubmissionItem.html",[0,0.207,2,0.7,3,0.016,4,0.016,5,0.009,7,0.094,8,1.04,26,2.486,27,0.548,29,0.994,30,0.001,31,0.703,32,0.181,33,0.626,35,1.536,36,1.873,39,2.915,55,1.895,59,1.89,95,0.128,99,1.033,101,0.016,103,0.001,104,0.001,112,2.243,116,2.789,144,2.972,148,3.687,165,0.681,208,2.26,221,1.435,227,1.056,334,0.67,347,2.55,363,5.535,371,1.678,404,1.812,595,2.978,596,3.801,661,3.631,692,3.211,728,3.374,731,2.395,774,4.163,884,4.071,1298,2.876,1299,2.842,1300,2.842,1301,3.009,1302,3.295,1857,3.685,1860,6.617,1984,2.604,2572,3.911,2598,6.56,2657,4.321,2658,4.239,2791,8.064,2794,6.388,2795,6.388,2796,6.388,2797,6.116,2798,6.388,2799,4.093,2800,4.163,2801,5.535,2802,6.556,2804,6.388,2805,5.535,2806,6.633,2808,4.412,2809,4.549,2811,6.8,2812,4.412,2816,4.412,2818,4.163,2844,5.459,2873,5.388,2881,2.776,3187,3.67,3247,6.556,3981,5.625,3984,4.627,3985,4.627,3986,4.627,3995,4.028,4681,5.32,7261,4.909,16379,7.206,18216,9.254,18279,5.625,18280,6.09,18281,7.962,18282,6.09,18283,6.09,18284,6.09,18285,6.09,18286,6.09,18287,6.09,18288,6.09,18289,7.962,18290,5.625,18291,5.625,18292,5.625,18293,5.091,18294,5.625,18295,5.625,18296,5.32]],["title/injectables/SubmissionItemFactory.html",[105,0.889,18297,6.23]],["body/injectables/SubmissionItemFactory.html",[0,0.323,3,0.025,4,0.025,5,0.013,7,0.146,8,1.394,27,0.394,30,0.001,34,1.629,35,1.146,39,2.544,49,3.701,83,3.475,95,0.16,101,0.018,103,0.001,104,0.001,105,1.522,107,2.272,187,1.359,227,1.002,234,2.153,371,2.616,591,4.06,592,4.188,667,6.08,734,5.48,2873,8.097,2881,4.328,2883,7.417,3247,5.722,4150,7.64,18216,9.311,18297,10.67,18298,9.494,18299,9.494]],["title/entities/SubmissionItemNode.html",[380,1.41,3183,5.269]],["body/entities/SubmissionItemNode.html",[0,0.27,3,0.021,4,0.021,5,0.011,7,0.159,26,2.533,27,0.429,30,0.001,32,0.145,39,3.254,95,0.161,96,2.145,99,1.347,101,0.02,103,0.001,104,0.001,165,0.815,204,2.723,208,2.946,217,1.049,227,0.838,240,3.804,334,0.874,347,2.336,364,1.912,380,2.158,381,2.613,398,2.325,404,1.869,405,2.145,415,4.332,416,5.099,461,2.378,617,4.583,798,4.963,803,4.963,883,3.329,960,7.055,1415,4.785,1857,4.903,1919,3.297,2508,5.099,2598,5.245,2620,4.63,2621,3.75,2881,4.705,3106,5.786,3144,5.537,3154,6.452,3183,8.063,3187,6.911,3212,5.099,3244,9.016,3247,7.317,3562,6.628,3583,5.173,4090,5.336,4091,7.335,4093,5.336,5405,7.842,7660,5.885,8686,6.033,11586,5.885,16758,7.335,18228,9.587,18300,7.94,18301,9.534,18302,9.534,18303,7.335,18304,9.016,18305,6.936,18306,7.335,18307,7.335]],["title/interfaces/SubmissionItemNodeProps.html",[334,0.742,18304,5.892]],["body/interfaces/SubmissionItemNodeProps.html",[0,0.278,3,0.022,4,0.022,5,0.012,7,0.162,26,2.65,30,0.001,32,0.148,39,3.405,95,0.163,96,2.211,99,1.388,101,0.02,103,0.001,104,0.001,165,0.831,204,2.806,208,3.036,217,1.081,227,0.863,240,3.644,334,0.901,336,1.993,347,2.502,380,2.2,398,2.396,404,2.107,405,2.211,415,4.465,416,5.254,461,1.885,617,4.723,798,5.114,803,5.114,883,3.43,960,5.593,1415,4.931,1857,4.974,1919,3.397,2508,5.254,2598,5.348,2620,4.771,2621,3.864,2881,3.73,3106,4.587,3144,5.646,3154,6.578,3183,6.392,3187,4.931,3212,5.254,3244,9.193,3247,7.657,3562,7.47,3583,5.33,4090,5.499,4093,5.499,5405,6.217,7660,6.064,8686,6.217,11586,6.064,18228,6.841,18301,7.558,18302,7.558,18303,7.558,18304,10.162,18305,7.147,18306,7.558,18307,7.558]],["title/interfaces/SubmissionItemProps.html",[334,0.742,18296,5.892]],["body/interfaces/SubmissionItemProps.html",[0,0.279,3,0.022,4,0.022,5,0.012,7,0.126,26,2.714,30,0.001,32,0.163,36,1.781,39,3.407,95,0.149,99,1.391,101,0.02,103,0.001,104,0.001,112,1.838,144,2.879,148,2.536,165,0.833,208,3.042,221,1.932,227,1.229,334,0.902,336,1.997,347,2.651,371,2.259,404,2.109,728,4.125,731,3.224,774,5.604,1298,3.872,1299,3.826,1300,3.826,1301,4.051,1302,4.435,1984,3.506,2572,5.265,2598,5.355,2657,5.818,2658,5.707,2791,6.674,2799,5.51,2801,5.265,2802,6.35,2805,5.265,2806,6.425,2844,7.375,2873,5.125,2881,3.737,3187,4.941,3247,7.662,3995,5.423,16379,8.81,18216,6.609,18279,7.574,18281,7.574,18289,9.734,18290,7.574,18291,7.574,18292,7.574,18293,6.854,18294,7.574,18295,7.574,18296,9.205]],["title/classes/SubmissionItemResponse.html",[0,0.229,3699,5.437]],["body/classes/SubmissionItemResponse.html",[0,0.278,2,0.939,3,0.022,4,0.022,5,0.012,7,0.126,27,0.528,29,0.649,30,0.001,31,0.458,32,0.178,33,0.408,34,2.178,47,0.764,95,0.149,101,0.016,103,0.001,104,0.001,127,1.33,165,0.83,347,2.141,364,2.274,376,1.915,461,1.881,467,3.599,475,4.091,618,3.474,966,4.18,2909,5.488,2910,5.735,2911,5.735,3247,7.652,3658,8.042,3662,7.174,3666,5.794,3668,5.794,3699,10.235,6922,10.477,18234,11.354,18305,7.133,18308,8.165,18309,11.729,18310,8.165,18311,8.165,18312,8.165,18313,8.165,18314,9.717,18315,8.165,18316,8.165,18317,8.165]],["title/classes/SubmissionItemResponseMapper.html",[0,0.229,3700,5.639]],["body/classes/SubmissionItemResponseMapper.html",[0,0.273,2,0.922,3,0.028,4,0.021,5,0.011,7,0.123,8,1.253,27,0.479,29,0.637,30,0.001,31,0.45,32,0.146,33,0.401,34,1.376,35,1.253,39,2.149,95,0.133,99,1.36,100,2.684,101,0.015,103,0.001,104,0.001,111,2.304,116,3.944,165,0.821,217,1.059,227,1.096,234,1.977,461,1.848,591,3.429,627,4.027,783,4.833,851,3.936,852,3.936,974,4.95,975,5.936,1828,4.631,1919,3.33,2510,5.079,2873,7.892,2881,3.656,3187,7.345,3247,4.833,3658,5.079,3662,6.412,3671,7.005,3679,5.943,3699,9.825,3700,11.007,4038,4.95,5121,7.399,9549,9.825,9574,5.69,14148,6.704,16871,7.408,18231,11.259,18309,7.408,18314,8.685,18318,10.388,18319,11.522,18320,8.019,18321,8.019,18322,8.019,18323,8.019,18324,7.408,18325,7.005,18326,8.019,18327,7.005,18328,7.408]],["title/injectables/SubmissionItemService.html",[105,0.889,3539,5.437]],["body/injectables/SubmissionItemService.html",[0,0.232,3,0.018,4,0.018,5,0.01,7,0.105,8,1.126,12,4.302,26,2.638,27,0.475,29,0.908,30,0.001,31,0.641,32,0.173,33,0.572,34,1.823,35,1.283,36,2.684,39,2.849,40,4.489,49,2.66,83,3.198,95,0.158,99,1.157,101,0.013,103,0.001,104,0.001,105,1.229,107,1.632,111,1.364,112,2.928,127,0.863,138,4.05,187,0.977,215,2.208,216,1.724,217,1.509,221,2.505,227,0.984,231,6.135,234,2.003,305,1.963,347,2.328,503,4.112,558,3.242,591,2.917,592,3.009,734,3.938,806,2.874,883,4.456,1984,2.917,2570,3.691,2594,4.688,2686,3.63,2870,7.479,2873,8.163,2951,5.559,3120,5.184,3121,8.766,3130,6.303,3247,7.211,3305,3.371,3318,5.96,3369,9.372,3539,7.52,4143,5.5,4150,4.513,5528,5.96,6793,4.749,8094,9.982,14799,6.303,18329,11.965,18330,6.823,18331,6.823,18332,6.823,18333,6.823,18334,9.328,18335,6.823,18336,6.823,18337,6.823,18338,6.823,18339,6.823,18340,9.328]],["title/injectables/SubmissionItemUc.html",[105,0.889,2760,5.639]],["body/injectables/SubmissionItemUc.html",[0,0.168,3,0.013,4,0.013,5,0.007,7,0.076,8,0.891,26,2.82,27,0.46,29,0.879,30,0.001,31,0.621,32,0.161,33,0.554,35,1.272,36,2.671,39,3.163,59,1.529,95,0.142,99,0.836,101,0.009,103,0,104,0,105,0.973,107,1.179,111,2.58,112,2.918,127,0.935,187,0.705,199,2.819,216,1.949,217,1.594,221,2.897,227,1.168,234,1.596,305,2.831,347,1.805,369,1.086,371,1.358,461,1.135,496,2.075,704,2.434,766,2.117,806,3.111,839,2.313,843,2.15,1052,4.677,1487,2.815,1545,1.574,1865,6.181,1866,2.788,1881,4.678,1919,2.046,1952,6.157,1977,3.429,1984,2.107,2014,6.566,2037,4.263,2478,2.815,2594,2.173,2598,5.832,2760,6.175,2767,2.221,2799,3.311,2811,3.08,2870,5.538,2873,6.918,2881,4.039,2882,4.401,3089,6.286,3092,8.498,3098,8.965,3115,8.315,3126,8.646,3129,3.971,3153,6.452,3187,2.969,3247,5.931,3364,4.304,3538,7.477,3539,9.251,3672,5.474,3678,5.953,3686,8.184,3767,3.849,3769,3.849,3804,3.849,3810,5.769,3830,3.12,3831,6.175,3832,3.311,4149,4.304,4180,7.739,8094,9.668,12528,3.57,17049,3.971,18236,9.738,18328,4.551,18341,11.476,18342,4.927,18343,7.385,18344,7.385,18345,9.841,18346,4.927,18347,4.927,18348,7.385,18349,4.927,18350,7.385,18351,4.927,18352,7.385,18353,4.927,18354,4.927,18355,8.184,18356,4.927,18357,4.927,18358,4.927,18359,8.859,18360,4.927,18361,4.927,18362,4.927,18363,4.927,18364,4.927,18365,4.927,18366,4.927,18367,4.927,18368,4.927,18369,4.927,18370,4.927,18371,4.927,18372,4.927,18373,4.927]],["title/classes/SubmissionItemUrlParams.html",[0,0.229,3694,5.892]],["body/classes/SubmissionItemUrlParams.html",[0,0.395,2,1.102,3,0.025,4,0.025,5,0.014,7,0.147,27,0.398,30,0.001,32,0.135,34,1.993,47,0.845,95,0.149,101,0.018,103,0.001,104,0.001,165,0.918,364,1.776,368,4.588,369,2.561,370,3.875,371,3.201,374,3.061,376,2.247,379,2.208,467,3.122,1000,4.967,2881,5.296,3187,7.001,3694,10.148,3834,5.59,6922,9.365,18234,10.148,18355,11.547,18374,9.585,18375,9.585]],["title/classes/SubmissionMapper.html",[0,0.229,18248,5.892]],["body/classes/SubmissionMapper.html",[0,0.319,2,1.079,3,0.025,4,0.025,5,0.013,7,0.144,8,1.384,27,0.39,29,0.745,30,0.001,31,0.527,32,0.132,33,0.469,34,1.61,35,1.132,95,0.147,99,1.592,100,3.838,101,0.018,103,0.001,104,0.001,217,1.239,227,0.99,234,1.522,627,3.855,982,4.701,2881,6.032,11548,6.799,11819,6.955,11839,6.955,12022,7.564,12026,7.845,12034,7.845,16576,8.668,18248,10.018,18376,9.384,18377,11.468,18378,11.468,18379,9.384,18380,10.786,18381,8.197,18382,9.384,18383,8.197,18384,9.384]],["title/injectables/SubmissionRepo.html",[105,0.889,1968,5.125]],["body/injectables/SubmissionRepo.html",[0,0.199,3,0.016,4,0.016,5,0.008,7,0.09,8,1.011,10,3.383,12,3.863,18,4.139,26,2.67,27,0.524,29,0.984,30,0.001,31,0.695,32,0.174,33,0.62,34,1.004,35,1.495,36,2.843,39,3.03,40,4.032,47,0.711,95,0.137,96,1.581,98,3.486,99,0.992,101,0.011,103,0.001,104,0.001,105,1.104,107,1.4,111,2.352,112,3.061,187,0.837,217,1.493,221,2.92,227,1.193,277,2.341,380,1.223,381,2.756,398,1.713,404,1.517,529,3.695,596,3.244,692,4.825,877,7.064,883,3.512,884,3.956,885,4.868,908,3.568,909,3.611,910,3.568,911,3.611,913,3.568,914,3.611,915,3.221,1724,3.28,1828,3.735,1919,2.429,1968,6.365,2432,3.486,2691,2.567,2881,5.522,3027,3.343,3106,3.28,3639,3.999,3684,5.486,4425,7.004,4428,7.318,5784,4.885,6370,3.999,6404,5.831,6658,4.445,11791,4.891,16952,5.405,18385,5.851,18386,8.377,18387,8.377,18388,8.377,18389,8.377,18390,5.851,18391,8.377,18392,5.851,18393,8.377,18394,5.851,18395,5.405,18396,8.377,18397,5.851,18398,5.851,18399,5.851,18400,8.377,18401,5.851,18402,5.851,18403,8.377,18404,5.851,18405,5.851,18406,5.851,18407,5.851]],["title/injectables/SubmissionRule.html",[105,0.889,1969,5.639]],["body/injectables/SubmissionRule.html",[0,0.182,3,0.014,4,0.014,5,0.008,7,0.082,8,0.948,27,0.502,29,0.96,30,0.001,31,0.679,32,0.17,33,0.605,35,1.422,95,0.14,101,0.01,103,0,104,0,105,1.035,107,1.281,111,2.656,116,3.691,127,0.677,187,0.766,199,3.912,214,1.767,215,1.732,216,1.452,217,1.507,227,1.244,347,2.402,371,2.164,380,2.143,461,3.203,806,2.255,1828,3.501,1862,5.641,1865,6.802,1866,5.8,1880,5.117,1881,4.974,1890,7.225,1911,3.304,1928,4.848,1969,6.566,1971,9.503,1989,4.848,2033,5.117,2056,3.598,2881,6.479,3352,5.279,3353,3.659,3356,5.195,3358,3.659,3359,3.598,3360,5.369,12022,4.315,18408,5.353,18409,11.407,18410,10.248,18411,10.248,18412,11.407,18413,10.248,18414,5.353,18415,7.854,18416,5.353,18417,7.854,18418,5.353,18419,7.854,18420,5.353,18421,5.353,18422,7.854,18423,5.353,18424,7.854,18425,5.353,18426,5.353,18427,5.353,18428,5.353,18429,7.854,18430,5.353,18431,7.854,18432,5.353,18433,5.353,18434,5.353,18435,7.854,18436,7.854]],["title/injectables/SubmissionService.html",[105,0.889,18437,5.437]],["body/injectables/SubmissionService.html",[0,0.268,3,0.021,4,0.021,5,0.011,7,0.121,8,1.239,10,4.146,12,4.735,26,2.735,27,0.503,29,0.961,30,0.001,31,0.68,32,0.17,33,0.606,35,1.378,36,2.797,95,0.155,98,4.694,99,1.336,101,0.015,103,0.001,104,0.001,105,1.353,107,1.885,111,2.053,112,3.014,127,1.299,187,1.128,216,1.898,217,1.04,221,2.42,227,1.084,450,3.24,1444,5.132,1968,9.781,2881,5.723,3543,3.866,3544,3.271,3684,5.756,6193,9.717,13763,5.986,18437,8.277,18438,7.878,18439,9.486,18440,7.878,18441,7.878,18442,10.268,18443,7.878,18444,10.268,18445,7.878,18446,10.268,18447,7.878,18448,6.882,18449,7.878,18450,7.878,18451,7.878,18452,7.878]],["title/classes/SubmissionStatusListResponse.html",[0,0.229,18250,5.639]],["body/classes/SubmissionStatusListResponse.html",[0,0.369,2,0.987,3,0.023,4,0.023,5,0.012,7,0.132,27,0.451,29,0.682,30,0.001,31,0.482,32,0.167,33,0.429,34,2.041,47,0.865,55,1.887,95,0.11,101,0.021,103,0.001,104,0.001,127,1.373,145,2.215,163,4.065,165,0.857,347,2.21,364,1.59,375,4.826,376,2.013,467,3.539,618,3.652,1009,6.2,1011,4.567,1026,4.768,11548,8.62,11803,7.176,11819,8.817,11823,7.176,11839,8.817,11841,7.176,18250,9.071,18380,11.311,18381,10.393,18383,10.393,18453,7.929,18454,8.583,18455,8.583,18456,7.929,18457,7.929]],["title/classes/SubmissionStatusResponse.html",[0,0.229,18380,5.639]],["body/classes/SubmissionStatusResponse.html",[0,0.345,2,0.889,3,0.021,4,0.021,5,0.011,7,0.119,27,0.542,29,0.614,30,0.001,31,0.434,32,0.186,33,0.624,34,2.14,47,0.931,55,2.23,95,0.099,101,0.019,103,0.001,104,0.001,127,1.283,163,3.197,165,0.801,347,2.448,364,2.372,375,5.061,376,1.812,467,3.632,618,3.287,966,3.955,1009,4.415,1026,4.292,11548,9.04,11803,6.46,11819,9.247,11823,6.46,11839,9.247,11841,6.46,18250,6.46,18380,11.069,18381,10.899,18383,10.899,18453,7.137,18456,7.137,18457,7.137,18458,7.726,18459,7.726,18460,7.726,18461,7.726,18462,7.726,18463,7.726,18464,7.726]],["title/injectables/SubmissionUc.html",[105,0.889,18249,5.639]],["body/injectables/SubmissionUc.html",[0,0.239,3,0.019,4,0.019,5,0.01,7,0.108,8,1.15,10,3.847,26,2.836,27,0.481,29,0.919,30,0.001,31,0.65,32,0.162,33,0.579,35,1.303,36,2.07,39,2.553,95,0.148,99,1.194,101,0.013,103,0.001,104,0.001,105,1.255,107,1.684,111,2.418,112,2.796,127,1.206,187,1.007,216,1.761,217,1.684,221,2.728,227,1.221,284,4.241,369,1.551,461,3.089,766,3.024,843,3.071,1062,3.071,1868,4.457,1928,5.88,1952,6.839,2767,3.172,2881,5.992,3684,5.341,3830,6.034,4209,5.673,12021,5.884,13763,8.207,13963,8.322,18249,7.965,18437,10.05,18439,8.801,18448,9.435,18465,7.037,18466,9.527,18467,7.037,18468,7.037,18469,7.037,18470,9.527,18471,7.037,18472,9.527,18473,7.037,18474,7.037,18475,11.574,18476,7.037,18477,7.037,18478,7.037,18479,7.037,18480,6.501,18481,9.527,18482,7.037]],["title/classes/SubmissionUrlParams.html",[0,0.229,18241,5.892]],["body/classes/SubmissionUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,2881,5.342,3834,5.671,18241,10.237,18448,10.988,18483,9.724,18484,9.724]],["title/interfaces/SuccessfulRes.html",[334,0.742,10750,4.999]],["body/interfaces/SuccessfulRes.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.128,34,1.559,47,0.971,55,2.685,101,0.026,103,0.001,104,0.001,163,2.865,165,0.888,334,1.49,336,2.213,347,2.487,564,3.372,692,3.385,1289,8.192,1293,6.108,1327,3.589,3091,4.142,4477,6.108,6461,5.756,10742,6.735,10743,6.905,10744,6.735,10745,6.735,10746,6.905,10747,9.049,10748,6.905,10749,6.905,10750,8.333,10751,6.905,10752,6.448,10753,6.735,10754,6.905,10755,6.735]],["title/classes/SuccessfulResponse.html",[0,0.229,18485,5.892]],["body/classes/SuccessfulResponse.html",[0,0.332,2,1.124,3,0.026,4,0.026,5,0.014,7,0.15,27,0.488,29,0.776,30,0.001,31,0.549,32,0.165,33,0.489,95,0.125,101,0.019,103,0.001,104,0.001,127,1.236,165,0.929,347,2.726,364,1.81,376,2.291,467,3.387,13314,11.187,18485,10.267,18486,9.771,18487,11.753,18488,9.771,18489,9.771,18490,9.771]],["title/injectables/SymetricKeyEncryptionService.html",[105,0.889,8111,5.892]],["body/injectables/SymetricKeyEncryptionService.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.122,8,1.242,27,0.535,29,0.909,30,0.001,31,0.643,32,0.161,33,0.573,35,1.242,47,1.005,59,2.454,95,0.156,101,0.015,103,0.001,104,0.001,105,1.357,107,1.892,111,1.581,116,4.17,127,1.001,163,3.822,187,1.132,214,2.611,215,2.559,227,1.36,960,5.406,1052,4.195,1053,5.376,1545,2.526,1812,5.612,2076,6.802,2880,4.923,2993,5.231,3853,7.459,6414,5.73,6993,8.293,8110,7.306,8111,8.993,9083,7.459,11389,8.993,11390,8.607,11391,9.51,11393,9.51,12186,7.306,14166,6.612,18182,7.306,18185,7.306,18491,7.909,18492,7.909,18493,7.909,18494,7.909,18495,11.446,18496,11.446,18497,7.909,18498,7.909]],["title/entities/System.html",[380,1.41,1114,2.736]],["body/entities/System.html",[0,0.308,3,0.011,4,0.011,5,0.006,7,0.065,26,1.364,27,0.479,30,0.001,32,0.173,33,0.638,47,1.029,83,2.415,95,0.116,96,1.135,101,0.019,103,0,104,0,150,3.6,165,0.517,208,1.559,216,0.777,240,4.358,277,1.681,334,0.462,347,0.856,359,2.267,364,2.136,369,2.991,370,4.414,371,1.802,379,0.968,380,1.679,381,1.383,386,6.413,398,1.23,399,2.56,400,1.843,402,1.728,404,0.761,405,1.135,406,1.346,496,1.77,722,1.853,775,2.562,783,2.532,1031,2.573,1114,2.653,1252,2.504,1576,2.532,1659,2.981,1691,2.593,2113,2.661,2138,3.114,2618,3.347,2621,1.984,4293,3.538,4331,4.64,4556,3.347,5236,2.626,5472,3.231,5602,4.539,5621,2.661,5622,2.872,6090,3.632,6359,2.562,6992,2.698,7078,2.824,7134,3.941,8597,2.824,9975,2.334,10947,7.403,11026,3.114,11027,3.114,11028,3.114,11029,3.192,11072,2.872,11075,2.779,11077,2.872,11080,2.872,11083,2.562,11087,2.824,11477,3.192,11590,2.779,11733,2.981,11843,4.969,11844,3.387,11845,5.993,11846,8.539,11847,8.024,11848,5.663,11849,6.306,11850,5.903,11851,2.779,11852,2.779,11853,3.387,11854,4.47,11855,4.847,11856,3.282,11857,4.847,11858,3.192,11859,3.192,11860,3.192,11861,3.192,11862,3.282,11863,3.192,11864,3.192,11865,3.192,11866,3.282,11867,4.847,11868,3.282,11869,3.192,11870,3.282,11871,3.192,11872,3.192,11873,3.192,11874,3.282,11875,4.47,11876,3.387,11877,3.387,11878,3.387,11879,3.387,11880,3.387,11881,3.387,11882,3.387,11883,3.387,11884,3.387,11885,3.387,11886,3.387,11887,3.387,11888,3.282,11889,3.387,11890,3.387,11891,3.387,11892,3.387,11893,3.387,11894,3.387,11895,3.387,11896,3.387,11897,3.387,11898,3.387,11899,3.387,11900,3.387,11901,3.387,11902,3.387,11903,3.387,11904,3.387,11905,3.387,11906,3.114,11907,3.387,11908,3.387,11909,3.387,11910,3.387,11911,3.387,11912,3.387,11913,3.387,11914,3.387,11915,3.387,11916,3.387,11917,3.387,11918,3.387,11919,3.387,11920,3.387,11921,3.192,11922,3.387,11923,3.114,11924,3.282,11925,3.192,11926,3.282,11927,3.192,11928,3.192,11929,3.282,11930,3.192,11931,3.282,11932,3.192,11933,3.044,11934,3.044,11935,3.044,11936,3.114,11937,3.192,11938,3.387,11939,3.192,11940,3.387,11941,3.387,11942,3.387,11943,3.387,11944,3.387,11945,3.192,11946,3.282,11947,3.192,11948,3.282,18499,4.201,18500,4.201,18501,4.201,18502,4.201,18503,4.201,18504,4.201,18505,4.201,18506,4.201,18507,4.201,18508,4.201,18509,4.201]],["title/modules/SystemApiModule.html",[425,1.808,17757,5.437]],["body/modules/SystemApiModule.html",[0,0.315,3,0.025,4,0.025,5,0.013,30,0.001,95,0.165,101,0.018,103,0.001,104,0.001,187,1.328,425,3.302,427,3.428,428,3.616,429,3.729,430,3.712,431,3.679,432,4.554,433,3.497,442,4.577,443,3.647,444,3.555,446,5.875,447,4.774,449,4.577,1626,9.526,17757,11.069,18510,9.276,18511,9.276,18512,9.276,18513,11.223,18514,9.276,18515,10.764,18516,9.276,18517,9.276,18518,9.276]],["title/controllers/SystemController.html",[481,2.629,18515,5.892]],["body/controllers/SystemController.html",[0,0.219,3,0.017,4,0.017,5,0.009,7,0.099,8,1.08,27,0.372,29,0.711,30,0.001,31,0.503,32,0.17,33,0.448,35,1.464,36,2.421,72,5.23,95,0.165,101,0.012,103,0.001,104,0.001,112,2.72,163,3.513,185,3.506,187,0.92,215,2.081,216,1.189,217,1.471,221,2.11,227,0.945,264,2.722,355,4.381,364,1.659,376,1.508,379,2.567,447,2.696,481,2.507,483,3.095,498,7.616,529,2.836,538,4.014,553,6.44,554,6.526,555,3.394,563,5.527,564,3.323,694,5.977,766,2.763,890,9.733,1016,2.296,1114,4.752,1510,5.597,1661,5.834,2186,7.057,2500,6.877,2578,7.259,3091,4.082,3673,4.396,4533,6.715,4630,4.653,9975,7.05,14805,7.822,15072,7.488,15702,8.704,16452,9.315,16455,8.981,18513,8.614,18515,7.822,18519,6.43,18520,8.955,18521,6.43,18522,9.733,18523,6.43,18524,10.292,18525,6.43,18526,6.43,18527,11.142,18528,8.955,18529,6.43,18530,6.43,18531,6.43,18532,6.43,18533,6.43,18534,6.43,18535,8.272,18536,5.94,18537,6.43,18538,5.94,18539,5.617,18540,6.43,18541,6.43,18542,6.43,18543,6.43,18544,6.43,18545,6.43,18546,6.43,18547,6.43,18548,6.43,18549,6.43,18550,6.43,18551,6.43,18552,6.43]],["title/classes/SystemDto.html",[0,0.229,15072,4.533]],["body/classes/SystemDto.html",[0,0.257,2,0.87,3,0.02,4,0.02,5,0.011,7,0.116,26,2.337,27,0.559,29,0.601,30,0.001,31,0.425,32,0.193,33,0.699,34,1.921,47,0.979,95,0.144,99,1.283,101,0.014,103,0.001,104,0.001,127,0.957,150,4.108,165,0.79,347,2.037,618,3.219,1114,3.069,2621,3.574,5602,5.612,5621,4.793,6090,4.203,10947,7.193,11270,5.608,11845,7.409,11848,7.002,11849,7.797,11850,7.298,11851,5.005,11852,5.005,11937,5.749,11939,5.749,11945,5.749,11947,5.749,12202,8.511,13302,5.369,15072,8.329,16458,9.238,16465,6.326,16466,6.099,16467,6.326,18553,7.567,18554,10.348,18555,10,18556,7.567,18557,7.567,18558,7.567,18559,7.567,18560,7.567,18561,7.567,18562,7.567,18563,7.567,18564,6.61,18565,6.326,18566,6.99,18567,6.99,18568,6.99,18569,7.567,18570,6.99]],["title/classes/SystemFactory.html",[0,0.229,12348,5.892]],["body/classes/SystemFactory.html",[0,0.148,2,0.5,3,0.012,4,0.012,5,0.006,7,0.067,8,0.81,27,0.533,29,1.01,30,0.001,31,0.68,32,0.183,33,0.606,34,1.583,35,1.405,47,0.488,55,2.416,59,3.271,95,0.118,99,0.737,101,0.013,103,0,104,0,127,0.55,138,2.915,144,3.101,148,1.345,150,2.462,165,0.53,185,4.875,216,1.241,217,1.218,227,0.974,234,1.33,277,1.74,329,3.343,359,2.328,366,2.393,369,0.958,379,1.89,380,2.085,381,2.209,404,1.216,538,3.01,596,3.781,627,2.09,660,7.06,661,4.441,662,5.172,665,3.764,666,5.172,667,5.468,668,3.764,669,3.764,670,3.764,671,3.696,672,4.168,673,4.599,674,6.193,675,5.49,676,6.821,677,2.46,682,2.437,683,3.764,684,2.46,685,4.832,686,5.034,687,4.28,688,4.87,689,3.729,690,2.437,691,2.276,692,3.927,693,2.372,694,2.332,695,2.437,696,4.758,697,2.46,698,4.516,699,2.437,700,7.19,701,3.963,702,6.363,703,2.46,704,4.053,705,2.437,706,2.46,707,2.437,708,2.46,709,2.437,710,2.753,711,2.59,712,2.437,713,5.803,714,2.46,715,2.437,716,3.764,717,3.696,718,3.764,719,2.46,720,2.352,721,2.332,722,1.917,723,2.437,724,2.437,725,2.437,726,2.46,727,2.46,728,1.702,729,2.437,730,2.46,731,2.64,732,2.437,733,2.46,735,2.509,736,2.59,737,4.888,775,2.651,853,2.209,1114,3.328,1253,2.004,1691,2.683,1696,2.484,2113,2.753,3544,2.788,4556,2.225,5382,3.837,5472,3.317,5602,2.178,7134,4.046,7136,4.976,8508,7.437,8597,2.921,10947,5.268,11072,2.971,11075,2.875,11076,3.634,11077,2.971,11080,2.971,11083,2.651,11087,2.921,11590,2.875,11843,3.303,11845,2.875,11846,5.943,11847,5.71,11848,2.717,11849,3.025,11850,2.832,11851,2.875,11852,2.875,11875,6.307,11933,3.149,11934,3.149,11935,3.149,11936,3.222,12348,7.166,12908,3.504,14156,4.015,15905,4.015,18571,4.347,18572,6.202,18573,8.523,18574,8.523,18575,6.714,18576,4.347,18577,6.714,18578,4.347,18579,4.347,18580,4.347,18581,4.347,18582,4.347,18583,4.347,18584,4.347,18585,4.347,18586,4.347,18587,4.347,18588,4.347,18589,4.347,18590,4.347,18591,4.347,18592,4.347,18593,4.347,18594,4.347,18595,4.347,18596,4.347,18597,4.347]],["title/classes/SystemFilterParams.html",[0,0.229,18522,5.892]],["body/classes/SystemFilterParams.html",[0,0.378,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,27,0.462,30,0.001,32,0.189,33,0.634,95,0.163,99,1.514,101,0.017,103,0.001,104,0.001,154,4.069,165,0.879,347,2.265,364,2.06,367,5.351,373,5.869,374,2.851,375,4.913,376,2.093,377,7.244,379,2.562,469,3.937,471,5.153,1044,4.381,1114,3.621,1480,6.234,5382,6.354,9975,6.176,10363,8.241,18522,9.713,18598,8.926,18599,11.188,18600,8.926,18601,8.926,18602,9.461,18603,8.926,18604,8.926,18605,8.926]],["title/classes/SystemIdParams.html",[0,0.229,15702,5.269]],["body/classes/SystemIdParams.html",[0,0.397,2,1.113,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.004,47,0.85,48,5.893,95,0.15,101,0.018,103,0.001,104,0.001,165,0.923,364,1.793,368,4.614,369,2.576,370,3.897,371,3.22,374,3.091,376,2.269,379,2.23,467,3.14,478,6.867,480,8.939,1000,4.996,1114,4.74,3834,5.643,15702,9.128,18606,11.684]],["title/classes/SystemIdParams-1.html",[0,0.191,905,2.329,15702,4.381]],["body/classes/SystemIdParams-1.html",[0,0.403,2,1.138,3,0.026,4,0.026,5,0.014,7,0.152,26,2.643,27,0.411,30,0.001,32,0.139,48,5.948,95,0.163,99,1.678,101,0.019,103,0.001,104,0.001,165,0.935,364,1.833,374,3.159,376,2.319,467,3.182,478,7.019,1000,5.062,5711,7.167,5712,7.973,15702,9.248,18607,11.839]],["title/classes/SystemMapper.html",[0,0.229,18608,5.892]],["body/classes/SystemMapper.html",[0,0.256,2,0.865,3,0.02,4,0.02,5,0.011,7,0.116,8,1.202,27,0.464,29,0.887,30,0.001,31,0.627,32,0.167,33,0.559,34,1.291,35,1.348,95,0.143,99,1.276,101,0.014,103,0.001,104,0.001,145,3.279,150,2.759,227,1.255,234,1.616,277,3.011,380,1.573,381,2.476,627,4.147,1114,5.26,1691,4.644,2446,5.339,4355,4.832,4556,3.852,5472,3.718,5602,3.769,5798,6.951,7134,4.535,8597,5.057,8846,6.573,10947,8.326,11026,5.576,11027,5.576,11028,5.576,11029,5.717,11072,5.143,11075,4.977,11077,5.143,11080,5.143,11083,4.588,11087,5.057,11845,4.977,11848,4.703,11849,5.237,11856,5.878,11858,5.717,11860,5.717,11862,5.878,11866,5.878,11868,5.878,11870,5.878,11872,5.717,11874,5.878,11875,5.143,12202,9.035,15072,8.543,15824,5.717,16793,8.704,16794,8.33,16798,8.33,16802,6.573,18554,6.951,18564,6.573,18565,6.291,18608,8.704,18609,7.524,18610,9.963,18611,9.204,18612,7.524,18613,7.524,18614,9.963,18615,7.524,18616,7.524,18617,9.963,18618,7.524,18619,7.524,18620,7.524,18621,7.524]],["title/modules/SystemModule.html",[425,1.808,1626,4.786]],["body/modules/SystemModule.html",[0,0.29,3,0.023,4,0.023,5,0.012,30,0.001,95,0.165,101,0.016,103,0.001,104,0.001,187,1.221,425,3.179,427,3.152,428,3.325,429,3.428,430,3.413,431,3.383,432,4.384,433,4.473,442,4.344,443,3.354,444,3.269,449,4.344,450,3.508,802,6.179,817,10.27,823,9.525,1626,9.944,11440,6.662,12858,11.62,12902,7.879,14424,7.45,15045,10.07,18622,8.529,18623,8.529,18624,8.529,18625,8.529,18626,8.529,18627,7.879,18628,8.529]],["title/classes/SystemOidcMapper.html",[0,0.229,18629,5.892]],["body/classes/SystemOidcMapper.html",[0,0.266,2,0.899,3,0.021,4,0.021,5,0.011,7,0.12,8,1.233,27,0.473,29,0.904,30,0.001,31,0.639,32,0.16,33,0.569,35,1.373,47,0.827,48,4.796,95,0.131,99,1.326,101,0.015,103,0.001,104,0.001,145,3.114,227,1.274,234,1.268,380,2.38,381,3.362,627,4.178,1114,5.308,2113,4.951,5472,3.862,7134,4.711,11847,9.108,11875,5.343,11921,5.939,11923,5.793,11925,5.939,11927,5.939,11928,5.939,11930,5.939,11932,5.939,11933,5.663,11934,5.663,11935,5.663,11936,5.793,12869,10.484,15856,7.221,16793,8.924,16794,8.541,16798,8.541,16802,6.828,18565,6.535,18611,9.437,18629,8.924,18630,12.069,18631,7.816,18632,10.216,18633,7.816,18634,7.816,18635,10.216,18636,7.816,18637,7.816,18638,10.216,18639,7.816,18640,7.816,18641,7.816,18642,7.816]],["title/injectables/SystemOidcService.html",[105,0.889,12858,5.639]],["body/injectables/SystemOidcService.html",[0,0.276,3,0.022,4,0.022,5,0.011,7,0.125,8,1.263,12,4.828,26,2.554,27,0.482,29,0.831,30,0.001,31,0.588,32,0.147,33,0.524,34,1.796,35,1.263,36,2.66,40,5.038,95,0.166,99,1.377,100,2.716,101,0.015,103,0.001,104,0.001,105,1.38,107,1.942,112,2.91,127,1.027,187,1.162,215,2.626,216,1.5,217,1.53,221,2.467,227,1.105,234,1.316,305,2.335,450,3.338,510,5.88,558,3.857,823,9.402,1114,4.701,12858,8.752,12869,6.34,13321,7.09,14595,9.564,18602,6.34,18629,7.09,18643,12.243,18644,8.116,18645,8.116,18646,8.116,18647,8.116,18648,8.116,18649,8.116,18650,7.497,18651,11.588,18652,8.116,18653,7.09,18654,7.497,18655,8.116]],["title/injectables/SystemRepo.html",[105,0.889,823,4.887]],["body/injectables/SystemRepo.html",[0,0.234,3,0.018,4,0.018,5,0.01,7,0.106,8,1.131,10,3.784,12,4.322,18,4.631,26,1.955,27,0.526,29,0.953,30,0.001,31,0.673,32,0.184,33,0.6,34,1.178,35,1.494,36,2.752,40,3.306,49,3.653,95,0.147,99,1.165,101,0.013,103,0.001,104,0.001,105,1.235,107,1.644,112,3.018,187,0.983,217,0.907,227,1.126,234,1.52,277,3.75,305,1.976,307,4.294,309,6.037,329,2.023,380,1.436,381,3.084,404,1.697,596,3.479,692,4.974,731,2.701,823,6.79,877,7.388,883,3.929,884,4.426,885,5.307,908,4.189,909,4.24,910,4.189,911,4.24,912,4.874,913,4.189,914,4.24,915,3.781,919,5.219,953,4.475,1062,2.998,1114,3.802,1298,3.244,1299,3.205,1300,3.205,1301,3.394,1378,4.544,1379,4.14,5147,7.729,5786,4.874,14595,8.952,18602,8.952,18656,6.869,18657,8.657,18658,6.869,18659,8.657,18660,6.869,18661,6.869,18662,8.187,18663,6.869,18664,6.869,18665,6.869,18666,6.346,18667,6.869,18668,6.869,18669,6.869,18670,6.869,18671,9.372]],["title/classes/SystemResponseMapper.html",[0,0.229,18539,5.892]],["body/classes/SystemResponseMapper.html",[0,0.243,2,0.821,3,0.019,4,0.019,5,0.01,7,0.11,8,1.161,27,0.452,29,0.864,30,0.001,31,0.611,32,0.163,33,0.544,34,1.224,35,1.313,95,0.156,101,0.014,103,0.001,104,0.001,145,1.842,217,1.537,227,1.148,234,1.764,277,2.856,627,4.103,974,4.405,1016,2.548,1114,4.722,1691,4.405,2640,5.753,4533,4.301,4556,3.654,5472,3.527,5602,3.576,7134,4.301,8597,4.797,9551,6.235,9600,5.29,9975,3.964,10947,4.583,11072,4.879,11075,4.721,11077,4.879,11080,4.879,11083,4.352,11087,4.797,11270,5.29,11845,4.721,11875,4.879,12202,9.234,13302,5.065,15072,8.744,15305,6.593,15307,6.593,15308,6.593,15309,6.593,15310,6.593,15311,6.593,15312,6.593,15313,6.593,15314,6.593,15315,6.593,15316,6.593,15317,6.593,15318,10.697,15651,6.593,15824,5.423,16452,9.733,16455,10.314,16456,6.593,16464,6.593,16465,5.967,16466,5.753,16467,5.967,18535,8.885,18536,6.593,18539,8.402,18564,6.235,18565,5.967,18672,11.641,18673,9.618,18674,9.618,18675,9.618,18676,9.618,18677,9.618,18678,7.137,18679,9.618,18680,7.137,18681,7.137,18682,9.618,18683,7.137,18684,9.618,18685,7.137,18686,6.593]],["title/classes/SystemScope.html",[0,0.229,18662,5.892]],["body/classes/SystemScope.html",[0,0.257,2,0.87,3,0.02,4,0.02,5,0.011,7,0.116,8,1.207,27,0.548,29,0.794,30,0.001,31,0.561,32,0.174,33,0.5,35,1.495,95,0.128,99,1.283,101,0.014,103,0.001,104,0.001,111,2.545,144,2.068,148,2.341,165,0.79,167,4.276,227,1.182,277,5.389,329,2.229,347,2.282,404,1.811,529,3.337,596,3.762,1114,3.069,2432,6.675,5872,6.836,5873,6.836,5874,6.836,5879,6.836,5880,6.836,5881,5.267,5882,5.172,5883,5.267,5884,5.267,5893,5.172,5894,6.836,5895,5.267,5896,5.172,5897,5.267,5898,5.172,5899,7.657,9888,6.099,9907,9.785,10947,4.859,11846,5.482,11847,5.267,13936,6.99,13937,6.99,18572,11.009,18573,11.009,18574,11.009,18662,11.514,18687,11.917,18688,7.567]],["title/injectables/SystemService.html",[105,0.889,15045,4.887]],["body/injectables/SystemService.html",[0,0.189,3,0.015,4,0.015,5,0.008,7,0.085,8,0.973,12,3.72,18,3.986,26,2.175,27,0.46,29,0.88,30,0.001,31,0.622,32,0.18,33,0.554,34,1.384,35,1.258,36,2.654,40,3.882,59,1.723,95,0.153,99,0.942,101,0.011,103,0,104,0,105,1.063,107,1.328,111,2.215,112,2.905,127,1.021,150,2.958,187,0.795,216,1.491,217,1.255,221,3.02,227,1.258,234,1.541,305,1.597,450,2.284,510,4.023,558,2.639,802,4.023,803,3.471,823,8.372,1114,5.42,5602,4.041,9975,6.418,10947,3.565,11270,7.041,11273,7.451,11440,4.337,11845,5.335,11848,5.042,11849,5.614,12185,8.146,12187,4.642,13302,5.724,13321,4.85,13995,8.776,15045,5.844,15072,7.444,15824,4.219,16465,4.642,16466,7.658,16467,7.943,18566,7.451,18567,7.451,18568,7.451,18602,8.146,18608,4.85,18650,5.129,18653,4.85,18654,5.129,18666,7.451,18689,5.552,18690,8.066,18691,8.066,18692,5.552,18693,5.552,18694,8.066,18695,5.552,18696,8.066,18697,5.552,18698,8.066,18699,5.552,18700,5.552,18701,5.552,18702,8.066,18703,7.451,18704,5.552,18705,8.066,18706,5.552,18707,5.552,18708,5.552,18709,5.552,18710,5.552,18711,5.552,18712,8.066,18713,8.066,18714,8.066,18715,8.066,18716,8.066,18717,8.066,18718,8.066,18719,5.552,18720,5.552,18721,5.129,18722,8.066,18723,5.552,18724,9.5,18725,5.552,18726,5.552,18727,5.552,18728,5.552,18729,5.552,18730,5.552]],["title/injectables/SystemUc.html",[105,0.889,18513,5.639]],["body/injectables/SystemUc.html",[0,0.262,3,0.02,4,0.02,5,0.011,7,0.119,8,1.222,12,4.67,26,2.504,27,0.47,29,0.898,30,0.001,31,0.635,32,0.168,33,0.566,34,1.737,35,1.222,36,2.608,40,4.873,59,2.393,95,0.16,99,1.308,101,0.015,103,0.001,104,0.001,105,1.334,107,1.845,112,2.87,127,0.976,144,2.107,187,1.104,215,2.496,216,1.425,217,1.018,221,2.664,227,1.069,234,1.251,305,2.218,329,2.271,371,3.308,510,5.587,558,3.665,1114,4.586,9975,6.926,15045,9.273,15072,8.069,15824,5.859,16318,7.124,18513,8.466,18570,9.354,18599,11.091,18602,6.024,18627,7.124,18653,6.736,18657,9.354,18659,9.354,18721,7.124,18731,7.712,18732,7.712,18733,12.006,18734,7.712,18735,7.712,18736,7.124,18737,7.712,18738,7.712]],["title/classes/TargetInfoMapper.html",[0,0.229,14682,5.892]],["body/classes/TargetInfoMapper.html",[0,0.323,2,1.092,3,0.025,4,0.025,5,0.013,7,0.146,8,1.394,27,0.394,29,0.754,30,0.001,31,0.648,32,0.133,33,0.475,34,1.629,35,1.146,95,0.148,99,1.61,100,3.866,101,0.018,103,0.001,104,0.001,217,1.254,227,1.002,234,1.54,627,3.875,975,6.601,2744,4.233,6722,9.6,14652,8.294,14653,10.441,14682,10.09,17567,8.294,17569,8.294,18739,11.55,18740,11.55,18741,9.494,18742,9.494,18743,9.494]],["title/classes/TargetInfoResponse.html",[0,0.229,14653,5.437]],["body/classes/TargetInfoResponse.html",[0,0.3,2,1.015,3,0.023,4,0.023,5,0.012,7,0.136,27,0.501,29,0.701,30,0.001,31,0.764,32,0.169,33,0.442,34,2.308,47,0.918,95,0.113,101,0.017,103,0.001,104,0.001,127,1.397,165,0.872,364,2.046,376,2.07,379,2.777,380,2.64,467,3.239,475,4.423,618,3.756,966,4.519,1013,4.047,2136,3.533,2254,7.116,2744,5.63,2909,5.933,2910,6.026,2911,6.026,14653,10.48,17574,7.712,17575,8.155,17576,8.155,18744,12.627]],["title/entities/Task.html",[380,1.41,2691,2.959]],["body/entities/Task.html",[0,0.164,3,0.008,4,0.008,5,0.004,7,0.169,26,1.688,27,0.474,30,0.001,31,0.349,32,0.17,33,0.549,34,0.828,47,0.736,55,1.061,83,2.794,95,0.144,96,0.78,101,0.015,103,0,104,0,111,2.374,116,3.554,144,1.7,145,2.088,148,2.249,165,0.691,167,1.101,187,0.413,188,3.687,192,1.854,214,0.953,217,1.761,227,1.328,234,1.695,240,3.509,247,1.914,305,1.388,329,1.832,334,0.531,347,2.282,364,2.112,369,2.586,370,3.249,371,3.026,379,1.433,380,1.009,381,0.949,386,4.155,398,0.845,399,1.889,400,1.266,402,1.187,404,0.523,405,0.78,406,0.925,461,2.666,564,3.447,687,1.338,728,1.13,738,1.665,783,1.739,806,2.033,844,3.296,905,3.019,957,1.633,1019,1.683,1062,1.259,1218,2.047,1439,1.38,1661,1.88,1828,1.286,1910,1.363,1919,1.198,1932,2.47,2078,1.683,2136,1.155,2526,1.827,2674,4.79,2675,3.971,2678,3.968,2682,1.574,2687,3.057,2688,1.683,2689,3.233,2690,2.047,2691,4.709,2701,2.869,2705,5.272,2881,3.689,3106,1.617,3242,3.31,3245,3.838,3305,4.323,3396,1.853,3418,4.33,3684,5.674,3685,2.412,3714,3.995,3733,5.352,3737,3.244,3738,5.632,3739,4.81,3740,5.787,3741,6.209,3742,3.244,3753,5.862,4083,1.701,4227,1.661,4239,1.804,4284,2.412,4303,1.266,4825,1.804,4826,1.853,4926,2.225,4955,2.908,6364,4.181,6386,2.52,6391,2.665,6397,1.804,6400,2.943,6408,3.057,6409,1.617,6421,2.326,6425,2.09,6427,1.972,6428,1.972,6429,1.804,6430,1.739,6444,1.853,6624,2.52,6633,1.781,6634,1.908,6704,3.77,6727,3.337,6737,1.853,6742,2.138,7494,2.665,7652,2.943,7793,5.542,7948,2.09,9401,1.804,10657,2.008,11336,1.972,11356,1.972,11490,2.326,11799,2.326,11819,5.389,11820,2.326,11839,5.389,11840,2.326,11951,4.507,11954,3.425,11955,4.611,11956,4.507,11957,2.412,11959,2.52,11960,2.412,11961,2.52,11962,2.52,11963,2.52,11964,2.52,11965,2.52,11966,5.434,11967,5.015,11968,4.86,11969,2.52,11970,4.216,11971,2.412,11972,4.216,11973,2.52,11974,2.52,11975,2.412,11976,7.643,11977,2.52,11978,2.192,11979,2.326,11980,4.216,11981,6.352,11982,3.89,11983,6.352,11984,2.52,11985,2.52,11986,2.52,11987,4.216,11988,2.52,11989,2.52,11990,2.52,11991,2.52,11992,2.52,11993,2.52,11994,2.52,11995,2.52,11996,2.52,11997,2.52,11998,2.52,11999,2.52,12000,4.216,12001,2.52,12002,2.52,12003,2.192,12004,2.52,12005,2.52,12006,2.52,12007,2.52,12008,2.52,12009,2.52,12010,4.216,12011,2.52,12012,2.52,12013,4.216,12014,2.52,12015,4.216,12016,2.254,12017,2.412,12018,2.52,12019,6.352,12020,5.434,12021,4.035,12022,2.326,12023,5.434,12024,2.52,12025,5.434,12026,2.412,12027,4.216,12028,2.52,12029,2.52,12030,2.52,12031,5.434,12032,2.52,12033,4.216,12034,2.412,12035,2.52,12036,2.52,12037,6.352,12038,2.52,12039,2.52,12040,2.52,12041,2.52,12042,2.52,12043,2.52,12044,2.52,12045,4.216,12046,2.52,12047,2.52,12048,4.216,12049,2.52,12050,2.52,12051,2.52,12052,2.52,12053,2.412,12054,2.52,12055,6.352,12056,2.52,12057,2.52,12058,2.52,12059,2.52,12060,2.52,12061,2.52,12062,2.52,12063,2.52,12064,2.52,12065,2.412,18745,2.885,18746,2.885,18747,2.885,18748,2.885,18749,2.885,18750,2.885,18751,2.885,18752,2.885,18753,2.885,18754,2.885,18755,2.885,18756,2.885,18757,2.885,18758,2.885,18759,2.885]],["title/modules/TaskApiModule.html",[425,1.808,17758,5.437]],["body/modules/TaskApiModule.html",[0,0.266,3,0.021,4,0.021,5,0.011,30,0.001,95,0.168,101,0.015,103,0.001,104,0.001,187,1.121,425,3.053,427,2.895,428,3.053,429,3.148,430,3.134,431,3.106,432,4.21,433,2.953,442,4.112,443,3.079,444,3.002,446,4.96,447,4.288,449,4.112,450,3.221,481,3.053,1945,6.953,1958,7.837,1962,8.253,1970,8.946,2767,3.53,2769,3.87,3026,4.834,6234,9.312,6238,7.235,13390,9.525,17758,11.426,18238,9.951,18249,10.745,18760,7.832,18761,7.832,18762,7.832,18763,10.745,18764,10.745,18765,7.832,18766,9.951,18767,7.832,18768,7.832]],["title/entities/TaskBoardElement.html",[380,1.41,2702,5.437]],["body/entities/TaskBoardElement.html",[0,0.303,3,0.024,4,0.024,5,0.013,7,0.137,27,0.37,30,0.001,32,0.125,95,0.155,96,3.27,101,0.017,103,0.001,104,0.001,165,0.877,364,1.65,369,2.448,370,4.036,380,2.322,381,2.931,398,2.608,404,1.613,405,2.407,617,5.141,1299,4.156,1492,6.692,1932,4.559,1991,4.818,2620,5.194,2670,8.674,2691,5.557,2692,5.567,2693,8.045,2695,7.446,2702,8.951,2744,5.647,3022,6.767,3051,9.284,3547,5.986,4926,4.107,4928,7.78,4996,6.601,6329,6.199,6757,6.957,6758,7.234,6759,6.767,6760,6.453,11792,9.7,13653,8.227,18769,11.104,18770,8.906]],["title/controllers/TaskController.html",[481,2.629,18766,5.892]],["body/controllers/TaskController.html",[0,0.155,3,0.012,4,0.012,5,0.006,7,0.07,8,0.84,10,3.412,27,0.479,29,0.915,30,0.001,31,0.647,32,0.162,33,0.577,35,1.391,36,2.81,56,3.351,70,3.489,95,0.161,100,2.828,101,0.009,103,0,104,0,111,1.891,112,3.024,144,1.246,185,3.308,187,0.652,206,2.333,215,1.475,216,1.287,217,1.662,221,2.634,227,1.216,234,0.739,264,3.577,329,1.343,364,2.071,369,1.535,371,2.328,376,1.069,447,1.911,469,2.011,481,1.777,483,2.194,491,6.642,513,7.007,529,4.172,543,3.489,552,2.927,555,2.406,556,2.466,557,2.487,558,2.166,559,2.487,561,2.487,805,3.675,1008,3.8,1016,3.836,1028,8.551,1828,4.217,2691,3.707,2934,7.983,2955,2.58,2989,6.811,3013,3.015,3026,2.814,3027,2.605,3710,4.197,4994,2.605,6042,3.561,6282,3.675,6291,7.908,6297,4.211,6487,7.752,7793,5.991,11763,3.378,13656,3.811,13662,3.811,14595,6.601,14601,4.211,16975,3.675,16976,4.211,16990,3.982,16992,3.982,17090,6.083,18245,10.815,18763,7.065,18764,7.065,18766,6.083,18771,4.558,18772,7.806,18773,8.45,18774,6.964,18775,7.806,18776,4.558,18777,4.558,18778,4.558,18779,6.964,18780,4.558,18781,4.558,18782,4.558,18783,6.964,18784,4.558,18785,4.558,18786,4.558,18787,4.558,18788,6.964,18789,4.558,18790,4.558,18791,6.964,18792,4.558,18793,4.558,18794,6.964,18795,4.558,18796,3.982,18797,4.558,18798,4.558,18799,3.811,18800,3.675,18801,4.558,18802,4.558,18803,4.558,18804,6.964,18805,4.558,18806,4.558,18807,4.558,18808,4.558,18809,4.558,18810,9.459,18811,4.558,18812,4.558,18813,6.964,18814,10.19,18815,4.558,18816,4.558,18817,4.558,18818,4.558,18819,4.558,18820,4.558]],["title/classes/TaskCopyApiParams.html",[0,0.229,6291,5.639]],["body/classes/TaskCopyApiParams.html",[0,0.365,2,0.973,3,0.022,4,0.022,5,0.012,7,0.13,27,0.447,30,0.001,32,0.151,33,0.622,34,2.133,47,0.904,95,0.138,100,3.598,101,0.016,103,0.001,104,0.001,165,0.849,188,4.069,364,1.991,374,2.701,375,4.793,376,1.983,379,2.957,471,5.027,475,5.385,1000,5.052,1660,10.022,2563,6.719,2675,5.799,2691,5.755,2701,4.957,2910,6.784,2911,6.784,3305,6.143,4955,7.121,6050,10.86,6291,8.986,6901,8.396,10357,9.389,13666,7.812,13667,7.812,18821,9.878,18822,8.457]],["title/injectables/TaskCopyService.html",[105,0.889,2995,5.125]],["body/injectables/TaskCopyService.html",[0,0.181,3,0.014,4,0.014,5,0.008,7,0.082,8,0.942,26,1.629,27,0.452,29,0.864,30,0.001,31,0.639,32,0.176,33,0.544,35,1.232,36,1.696,47,0.386,95,0.151,99,0.901,101,0.01,103,0,104,0,105,1.029,107,1.271,111,2.568,112,2.761,127,0.988,145,2.935,185,3.997,187,0.76,188,4.307,192,1.583,216,1.712,217,1.553,221,2.681,227,0.977,234,0.861,379,1.224,450,2.184,461,2.959,564,4.221,738,3.065,1041,4.337,1062,2.318,1444,5.087,1474,1.802,1911,3.278,1970,7.917,2689,5.653,2691,5.783,2701,2.449,2985,4.44,2989,6.294,2995,5.933,2997,8.344,3003,8.935,3011,11.088,3013,7.524,3025,4.148,3026,3.278,3027,3.035,3039,4.44,3040,4.148,3041,4.281,3070,4.281,3543,3.832,3544,2.205,5369,3.41,6057,4.035,6186,9.479,6187,4.639,6191,6.821,6200,8.918,6209,6.528,6214,9.503,6216,8.089,6227,6.099,6262,4.639,6525,4.905,6537,4.281,6556,4.44,6563,4.639,6727,2.849,10164,4.639,11951,3.848,11956,3.848,13703,10.272,13733,4.905,13742,4.905,13775,4.905,18823,11.375,18824,9.26,18825,7.808,18826,4.639,18827,5.31,18828,7.808,18829,11.759,18830,5.31,18831,5.31,18832,7.808,18833,12.313,18834,5.31,18835,7.808,18836,5.31,18837,5.31,18838,5.31,18839,5.31,18840,5.31,18841,5.31,18842,5.31,18843,5.31,18844,5.31,18845,5.31,18846,4.905,18847,5.31,18848,4.905,18849,5.31,18850,5.31,18851,5.31,18852,5.31]],["title/injectables/TaskCopyUC.html",[105,0.889,18763,5.639]],["body/injectables/TaskCopyUC.html",[0,0.171,3,0.013,4,0.013,5,0.007,7,0.077,8,0.906,26,2.579,27,0.464,29,0.845,30,0.001,31,0.597,32,0.149,33,0.532,35,1.284,36,2.424,39,2.012,47,0.899,95,0.152,99,0.854,101,0.01,103,0,104,0,105,0.99,107,1.205,111,2.663,112,2.849,127,0.95,145,3.313,148,1.558,187,0.721,188,1.907,208,1.869,216,2.063,217,1.633,221,2.913,227,1.178,234,1.456,305,2.582,347,1.026,450,2.072,461,2.848,564,2.786,766,2.165,843,2.199,1062,2.199,1415,5.41,1439,2.409,1724,2.824,1865,3.933,1866,2.851,1868,3.191,1880,3.282,1952,5.338,1958,6.805,1962,7.424,1970,8.047,2027,3.282,2037,2.908,2171,2.165,2172,2.409,2173,2.323,2174,3.191,2563,3.149,2675,3.686,2686,2.681,2689,2.618,2691,2.21,2701,2.323,2767,2.271,2989,6.053,2995,8.784,2997,8.204,3003,7.561,3011,6.56,3013,3.332,3026,3.109,3027,2.879,3069,4.212,3070,4.061,3071,4.654,3550,7.013,4630,2.618,4955,4.526,6022,3.734,6250,7.506,6293,9.192,6521,4.212,6537,6.053,6540,4.654,6576,4.401,6587,4.401,6588,4.401,6589,3.191,8451,4.654,13703,9.297,13763,6.821,13829,9.192,13833,8.293,13834,4.654,13837,4.654,13838,4.654,13839,4.401,13841,6.937,13843,8.293,13846,4.654,17038,4.654,18056,6.937,18763,6.278,18853,11.561,18854,7.509,18855,7.509,18856,7.509,18857,5.038,18858,5.038,18859,7.509,18860,10.642,18861,5.038,18862,5.038,18863,7.509,18864,5.038,18865,7.509,18866,5.038,18867,4.401,18868,4.401,18869,5.038,18870,5.038,18871,5.038,18872,5.038,18873,5.038,18874,5.038,18875,5.038,18876,5.038,18877,4.401,18878,4.654]],["title/classes/TaskCreateParams.html",[0,0.229,18879,5.892]],["body/classes/TaskCreateParams.html",[0,0.315,2,0.778,3,0.018,4,0.018,5,0.01,7,0.104,27,0.512,30,0.001,31,0.594,32,0.185,33,0.66,34,1.953,47,0.934,83,4.038,95,0.146,99,1.147,101,0.013,103,0.001,104,0.001,165,0.733,188,3.511,214,3.062,359,3.948,364,2.283,368,4.497,369,2.51,370,3.094,371,2.556,374,2.161,375,4.998,376,1.586,379,3.068,467,2.492,469,2.984,470,5.025,471,5.242,475,5.704,999,7.113,1000,4.525,1474,3.148,2675,5.194,2691,5.637,2701,4.277,2778,6.042,2910,6.213,2911,6.213,3242,3.6,3245,5.586,3684,5.199,3714,6.796,4955,6.378,6905,8.102,6916,5.454,6918,6.874,8270,6.874,8455,5.454,11953,7.843,15182,6.25,18821,10.549,18879,8.102,18880,6.765,18881,8.567,18882,6.765,18883,6.25,18884,6.765,18885,8.567,18886,6.765,18887,6.765,18888,6.25]],["title/classes/TaskFactory.html",[0,0.229,18272,5.892]],["body/classes/TaskFactory.html",[0,0.15,2,0.506,3,0.012,4,0.012,5,0.006,7,0.068,8,0.818,27,0.538,29,1.012,30,0.001,31,0.692,32,0.182,33,0.608,34,1.418,35,1.41,47,0.493,55,2.427,59,3.112,95,0.136,99,0.746,101,0.008,103,0,104,0,111,2.118,127,0.857,138,2.942,144,3.113,148,1.361,165,0.535,185,4.942,192,2.464,216,1.253,217,1.505,227,1.058,234,1.34,329,3.443,359,2.349,366,2.422,369,1.494,371,2.558,379,1.904,380,2.097,381,2.23,404,1.227,461,2.44,538,3.038,596,3.79,627,2.109,660,7.076,661,4.462,662,5.205,665,3.799,666,5.205,667,5.487,668,3.799,669,3.799,670,3.799,671,3.73,672,4.2,673,4.633,674,6.217,675,5.52,676,6.837,677,2.49,682,2.466,683,3.799,684,2.49,685,4.862,686,5.066,687,4.307,688,4.901,689,3.764,690,2.466,691,2.304,692,3.946,693,2.4,694,2.36,695,2.466,696,4.788,697,2.49,698,4.55,699,2.466,700,7.145,701,3.979,702,6.387,703,2.49,704,4.084,705,2.466,706,2.49,707,2.466,708,2.49,709,2.466,710,2.786,711,2.621,712,2.466,713,5.831,714,2.49,715,2.466,716,3.799,717,3.73,718,3.799,719,2.49,720,2.38,721,2.36,722,1.94,723,2.466,724,2.466,725,2.466,726,2.49,727,2.49,728,1.722,729,2.466,730,2.49,731,2.664,732,2.466,733,2.49,735,2.539,736,2.621,737,5.533,848,3.122,849,3.342,957,2.49,1236,2.651,1911,2.715,2691,2.973,3714,5.307,5512,6.28,5513,3.843,6613,3.436,6614,3.546,6622,3.436,6727,3.635,7793,5.235,9798,6.26,11954,3.122,12003,7.055,12016,7.253,12017,7.762,18272,7.22,18278,4.064,18889,4.399,18890,4.399,18891,6.776,18892,4.399,18893,4.399,18894,4.399,18895,6.776,18896,4.399,18897,3.678]],["title/classes/TaskListResponse.html",[0,0.229,18799,5.639]],["body/classes/TaskListResponse.html",[0,0.303,2,0.734,3,0.017,4,0.017,5,0.009,7,0.098,27,0.485,29,0.507,30,0.001,31,0.623,32,0.185,33,0.584,34,1.76,47,0.936,55,2.981,56,5.823,59,2.763,70,6.061,83,3.34,95,0.142,99,1.082,100,2.135,101,0.017,103,0.001,104,0.001,127,1.127,145,1.646,163,3.683,165,0.704,208,2.367,347,1.3,359,2.212,364,2.057,371,1.758,375,4.908,376,1.496,379,2.364,404,1.613,467,3.503,469,2.814,564,3.807,565,3.367,591,4.387,592,4.525,595,2.204,596,3.371,618,2.714,620,4.097,622,4.097,1007,7.664,1008,6.602,1009,5.089,1011,3.394,1013,4.704,1014,3.131,1015,3.543,1016,2.278,1017,4.527,1018,5.802,1019,5.193,1020,4.22,1021,3.394,1022,4.527,1023,4.527,1025,4.04,1026,3.543,1491,3.645,2078,3.72,2136,2.553,2309,3.576,2344,2.636,2675,5.035,2691,4.501,2787,6.941,3245,3.367,3418,7.141,3714,4.097,3715,3.988,3728,5.142,6045,4.983,6046,4.361,6047,4.156,11967,5.142,11968,4.983,16718,8.27,18799,7.445,18800,10.211,18898,5.893,18899,6.379,18900,6.379,18901,7.178,18902,5.893,18903,5.893,18904,5.893]],["title/classes/TaskMapper.html",[0,0.229,18796,5.892]],["body/classes/TaskMapper.html",[0,0.23,2,0.779,3,0.018,4,0.018,5,0.01,7,0.104,8,1.12,27,0.44,29,0.841,30,0.001,31,0.692,32,0.16,33,0.53,34,1.162,35,1.278,95,0.136,99,1.149,100,4.126,101,0.013,103,0.001,104,0.001,185,3.635,217,1.628,227,1.118,234,1.506,371,1.867,379,2.139,564,3.445,591,2.898,592,2.989,627,4.059,975,5.306,982,3.395,2344,2.801,2675,5.199,2691,4.074,3242,3.606,3245,4.901,3418,4.717,3523,8.111,3714,5.963,4955,5.596,5031,6.26,6315,8.577,6316,8.577,7948,8.256,8983,8.111,11952,8.445,11953,8.445,11968,5.294,11975,5.666,12003,5.149,16718,7.485,16887,8.577,18796,8.111,18800,9.185,18846,8.577,18879,9.953,18905,6.777,18906,9.285,18907,9.285,18908,9.285,18909,6.777,18910,9.285,18911,9.953,18912,6.777,18913,9.285,18914,6.777,18915,5.92,18916,6.777,18917,6.777,18918,6.777,18919,9.285,18920,6.777,18921,6.777,18922,6.777,18923,6.777,18924,6.777,18925,6.777,18926,6.777,18927,6.777,18928,6.777,18929,6.777,18930,6.777,18931,6.777,18932,6.777,18933,6.777,18934,9.285,18935,6.777,18936,6.777,18937,6.777,18938,10.526,18939,9.285,18940,9.285,18941,9.285]],["title/modules/TaskModule.html",[425,1.808,13390,4.999]],["body/modules/TaskModule.html",[0,0.256,3,0.02,4,0.02,5,0.011,30,0.001,95,0.163,101,0.014,103,0.001,104,0.001,187,1.079,425,2.996,427,2.786,428,2.939,429,3.03,430,3.017,431,2.99,432,4.132,433,4.216,442,4.01,443,2.964,444,2.89,449,4.01,450,3.101,766,3.24,1444,4.911,1945,5.397,1958,7.754,1962,8.166,1968,9.663,1970,8.851,1977,6.943,2767,3.398,2995,10.375,3026,4.653,3027,4.308,3534,9.425,3543,3.7,3544,3.13,4941,10.375,6234,9.214,13390,10.524,18437,11.007,18942,7.538,18943,7.538,18944,7.538,18945,7.538,18946,7.538]],["title/injectables/TaskRepo.html",[105,0.889,1970,4.694]],["body/injectables/TaskRepo.html",[0,0.124,3,0.01,4,0.01,5,0.005,7,0.112,8,0.703,10,2.354,12,2.688,18,2.88,26,2.649,27,0.479,29,0.897,30,0.001,31,0.634,32,0.177,33,0.565,34,0.623,35,1.392,36,2.689,39,0.974,40,2.805,53,2.578,56,1.748,58,2.301,59,3.03,72,1.705,83,1.754,95,0.132,96,0.982,98,2.165,101,0.007,103,0,104,0,105,0.768,107,0.869,111,1.952,112,2.945,138,4.63,144,0.993,145,2.156,167,2.225,187,0.52,188,2.207,217,1.677,221,2.513,227,1.083,234,1.905,264,3.091,277,3.343,329,1.07,347,1.487,369,1.842,379,0.837,380,0.76,381,1.918,398,1.064,404,1.056,529,2.571,538,3.745,596,2.537,692,4.297,701,4.322,877,5.983,883,2.444,884,2.753,885,3.632,908,2.215,909,2.242,910,2.215,911,2.242,912,2.578,913,2.215,914,2.242,915,2,946,2.367,956,2.367,964,2.483,1014,1.783,1278,3.154,1661,2.367,1911,2.242,1970,4.057,2183,2.692,2185,4.728,2432,4.978,2510,2.301,2586,1.917,2675,3.583,2691,5.308,2701,3.853,3105,5.292,3245,3.077,3305,1.795,3577,8.963,3639,2.483,3684,2.036,4628,3.856,4630,3.794,4821,2.242,4982,3.268,4994,5.227,5784,3.399,6110,4.641,6424,4.872,6487,5.578,6654,2.76,6658,2.76,6774,7.808,6775,7.367,6805,2.692,6806,2.692,6844,2.367,7633,2.528,7660,2.692,7793,2.301,8789,3.173,8791,3.356,8796,5.092,11156,2.242,12003,2.76,16955,3.356,18125,4.429,18947,3.633,18948,5.829,18949,7.3,18950,7.3,18951,6.744,18952,5.829,18953,5.829,18954,3.633,18955,3.633,18956,3.633,18957,5.829,18958,5.385,18959,7.3,18960,3.633,18961,3.633,18962,3.356,18963,3.633,18964,5.829,18965,3.633,18966,5.829,18967,3.633,18968,3.633,18969,9.317,18970,3.633,18971,3.633,18972,3.633,18973,3.633,18974,3.633,18975,3.356,18976,3.356,18977,3.356,18978,3.356,18979,9.147,18980,3.633,18981,3.633,18982,3.633,18983,3.633,18984,3.633,18985,3.633,18986,3.633,18987,3.633,18988,3.633,18989,3.633,18990,3.633,18991,3.633,18992,3.633,18993,2.928,18994,3.633,18995,3.633,18996,3.633,18997,3.633,18998,3.633,18999,3.633,19000,3.633,19001,3.633,19002,3.633,19003,3.633,19004,3.633,19005,3.633,19006,3.633,19007,3.633,19008,3.633,19009,3.633,19010,3.633,19011,9.765,19012,7.3,19013,3.173,19014,3.173,19015,3.173,19016,3.633,19017,7.3,19018,3.633,19019,3.633,19020,3.633,19021,3.633,19022,3.633,19023,3.633,19024,3.633,19025,3.633,19026,3.633,19027,3.633,19028,5.829,19029,3.633,19030,3.633,19031,3.633,19032,3.633,19033,3.633,19034,3.633,19035,3.173,19036,3.633,19037,5.829,19038,3.633,19039,3.633,19040,3.633,19041,3.173,19042,3.633,19043,3.173,19044,3.633,19045,3.356,19046,3.037,19047,3.633,19048,3.037,19049,3.356,19050,3.633,19051,3.356,19052,3.633,19053,3.356,19054,3.633,19055,3.633]],["title/classes/TaskResponse.html",[0,0.229,18800,5.437]],["body/classes/TaskResponse.html",[0,0.277,2,0.648,3,0.015,4,0.015,5,0.008,7,0.087,27,0.549,29,0.448,30,0.001,31,0.652,32,0.191,33,0.643,34,1.911,47,0.984,55,2.107,56,3.925,70,4.086,83,3.69,95,0.135,99,0.956,100,2.73,101,0.016,103,0,104,0,127,1.032,144,2.229,163,2.572,165,0.644,208,3.026,329,2.402,347,1.662,359,2.828,364,2.43,371,1.553,375,5.149,376,1.322,379,2.76,404,1.021,467,3.599,469,2.486,564,4.135,565,4.305,591,4.765,592,4.915,595,2.818,618,2.398,620,3.62,622,3.62,966,2.886,1007,5.034,1008,3.076,1009,3.222,1025,3.571,1026,3.131,1480,3.16,1491,4.661,2078,3.288,2136,2.256,2309,4.572,2344,3.371,2675,5.469,2691,4.889,2784,5.91,2787,6.565,3245,5.058,3418,7.756,3714,6.154,3715,5.99,3728,4.544,6045,6.371,6046,5.576,6047,5.314,11967,7.725,11968,7.486,16718,8.466,18799,4.713,18800,9.888,18898,5.208,18901,7.725,18902,5.208,18903,5.208,18904,5.208,19056,5.638,19057,5.638,19058,5.638,19059,5.638,19060,5.638,19061,5.638,19062,5.638,19063,5.638,19064,5.638,19065,5.638,19066,5.638,19067,5.638,19068,5.638,19069,5.638,19070,5.638]],["title/injectables/TaskRule.html",[105,0.889,1971,5.437]],["body/injectables/TaskRule.html",[0,0.214,3,0.017,4,0.017,5,0.009,7,0.097,8,1.064,27,0.459,29,0.876,30,0.001,31,0.619,32,0.155,33,0.552,35,1.229,95,0.155,101,0.012,103,0.001,104,0.001,105,1.162,107,1.505,111,2.408,116,3.898,127,1.116,187,0.9,199,4.435,214,2.077,216,1.882,217,1.667,227,1.271,347,2.454,369,1.386,371,1.733,380,2.772,461,3.079,806,2.65,843,2.745,1828,3.931,1862,6.075,1865,6.943,1866,6.245,1880,4.098,1890,7.629,1911,3.882,1919,2.612,1928,5.442,1959,9.166,1963,9.97,1971,7.108,1989,5.442,2033,5.744,2056,4.227,2691,5.764,3305,3.108,3352,5.926,3353,4.299,3356,5.832,3358,4.299,3359,4.227,3360,6.027,6666,5.494,6667,5.494,6668,5.258,6669,7.702,6727,3.374,13919,8.145,16946,7.702,16948,8.145,19071,6.289,19072,10.194,19073,6.289,19074,8.817,19075,6.289,19076,6.289,19077,6.289,19078,6.289,19079,8.817,19080,6.289,19081,6.289,19082,6.289,19083,8.817,19084,6.289]],["title/classes/TaskScope.html",[0,0.229,18969,5.892]],["body/classes/TaskScope.html",[0,0.146,2,0.493,3,0.011,4,0.011,5,0.006,7,0.066,8,0.801,26,2.802,27,0.539,29,0.997,30,0.001,31,0.705,32,0.181,33,0.628,35,1.53,39,2.179,83,3.489,95,0.117,96,1.158,101,0.008,103,0,104,0,111,2.51,144,2.707,148,1.326,165,0.525,167,3.496,188,2.515,217,1.209,227,1.31,234,0.695,277,4.743,329,1.263,347,2.496,369,1.792,398,1.255,404,1.203,529,4.822,596,3.008,1911,2.646,2432,6.732,2586,2.263,2691,1.881,2701,3.75,3245,4.834,3601,6.555,3714,6.363,3738,5.66,5512,3.257,5872,4.54,5873,4.54,5874,4.54,5879,4.54,5880,4.54,5881,2.984,5882,2.93,5883,2.984,5884,2.984,5893,2.93,5894,4.54,5895,2.984,5896,2.93,5897,2.984,5898,2.93,5899,8.102,6110,6.583,6654,5.047,6727,5.316,6796,3.455,7793,4.207,9888,3.455,9897,3.745,9900,3.96,9904,3.745,9907,7.103,9908,6.136,13934,6.136,13935,6.136,13938,3.745,18969,11.69,19013,5.802,19014,5.802,19015,8,19035,8,19085,12.555,19086,6.642,19087,6.642,19088,6.642,19089,6.642,19090,6.642,19091,6.642,19092,6.642,19093,6.642,19094,6.642,19095,6.642,19096,6.642,19097,4.287,19098,6.642,19099,4.287,19100,6.642,19101,6.642,19102,4.287,19103,6.642,19104,6.642,19105,4.287,19106,6.642,19107,4.287,19108,6.642,19109,4.287,19110,6.642,19111,4.287,19112,6.642,19113,4.287,19114,6.642,19115,4.287,19116,4.287,19117,4.287,19118,4.287,19119,4.287,19120,4.287]],["title/injectables/TaskService.html",[105,0.889,4941,5.125]],["body/injectables/TaskService.html",[0,0.23,3,0.018,4,0.018,5,0.01,7,0.104,8,1.12,10,3.749,12,4.282,26,2.752,27,0.496,29,0.948,30,0.001,31,0.67,32,0.177,33,0.597,35,1.375,36,2.793,59,2.881,95,0.153,98,4.038,99,1.149,101,0.013,103,0.001,104,0.001,105,1.224,107,1.621,111,2.465,112,3.011,127,1.175,138,4.031,187,0.97,216,1.958,217,1.226,221,2.685,227,0.98,347,1.892,450,2.787,701,3.979,1444,4.415,1970,8.58,2439,4.91,2444,5.294,2675,5.592,2691,5.721,3543,3.326,3544,2.814,3684,3.799,4941,7.055,6110,5.158,6193,9.355,6774,8.085,6775,7.033,12003,5.149,13763,5.149,18256,6.26,18437,10.175,18480,6.26,18826,5.92,18867,5.92,18951,9.785,18962,6.26,19035,5.92,19121,6.777,19122,9.285,19123,6.777,19124,9.285,19125,6.777,19126,9.285,19127,6.777,19128,9.285,19129,6.777,19130,6.777,19131,6.777,19132,6.777,19133,6.777,19134,6.777,19135,6.777,19136,6.777]],["title/classes/TaskStatusMapper.html",[0,0.229,18915,5.892]],["body/classes/TaskStatusMapper.html",[0,0.327,2,1.105,3,0.025,4,0.025,5,0.014,7,0.148,8,1.404,27,0.399,29,0.763,30,0.001,31,0.539,32,0.135,33,0.481,35,1.159,95,0.149,99,1.63,100,3.894,101,0.018,103,0.001,104,0.001,217,1.269,227,1.014,234,1.558,564,3.565,627,3.895,975,6.648,3728,7.745,3732,10.747,3733,8.602,18901,10.087,18915,10.163,19137,11.634,19138,9.608,19139,9.608,19140,9.608,19141,9.608]],["title/classes/TaskStatusResponse.html",[0,0.229,18901,5.437]],["body/classes/TaskStatusResponse.html",[0,0.27,2,0.915,3,0.021,4,0.021,5,0.011,7,0.122,27,0.546,29,0.632,30,0.001,31,0.447,32,0.184,33,0.398,55,2.838,95,0.102,101,0.015,103,0.001,104,0.001,127,1.308,165,0.816,347,2.63,364,2.391,376,1.865,467,3.718,966,4.072,3736,7.349,3737,8.464,3738,8.766,3739,8.33,3740,8.33,3741,8.937,3742,8.464,3743,7.349,3750,6.651,3751,7.349,3752,6.651,3753,6.413,3754,7.349,3755,7.349,18821,11.138,18901,10.152,19142,7.955,19143,7.955,19144,7.955,19145,7.955,19146,7.955,19147,7.955]],["title/injectables/TaskUC.html",[105,0.889,18764,5.639]],["body/injectables/TaskUC.html",[0,0.106,3,0.008,4,0.008,5,0.004,7,0.048,8,0.621,10,2.078,26,2.676,27,0.457,29,0.853,30,0.001,31,0.603,32,0.151,33,0.537,35,1.296,36,2.653,39,2.794,59,0.967,83,2.54,95,0.108,98,3.067,99,0.529,101,0.006,103,0,104,0,105,0.678,107,0.746,111,2.484,112,2.905,127,0.651,144,1.406,187,0.446,188,3.197,216,1.561,217,1.788,221,3.023,227,1.229,234,1.691,284,1.879,305,0.897,309,1.764,347,1.72,369,0.687,371,2.102,380,0.652,450,1.282,461,2.923,529,1.375,564,4.251,574,1.413,721,1.673,738,4.404,766,1.34,843,2.246,951,2.369,1008,4.961,1016,2.724,1724,1.748,1828,3.402,1865,3.996,1868,1.975,1871,3.177,1872,3.404,1880,3.353,1881,4.163,1919,1.295,1941,2.212,1952,5.16,1958,5.865,1962,6.177,1970,6.329,2038,3.518,2185,3.72,2478,1.782,2487,2.88,2526,1.975,2689,1.62,2691,4.22,2767,1.405,3106,2.885,3245,4.457,3419,3.177,3733,3.404,3739,5.047,3830,5.349,3832,4.418,4209,4.149,4941,7.309,4982,3.685,4994,3.756,5974,2.031,6110,3.651,6122,2.062,6424,5.864,6487,7.373,6654,5.797,6769,4.496,6844,2.031,6845,4.149,7633,2.17,7668,1.879,7793,3.26,7948,2.259,7978,7.377,8783,8.95,9741,2.369,11216,2.002,13763,7.92,13963,4.496,14595,4.021,18125,2.369,18764,4.303,18772,4.755,18775,4.755,18826,2.723,18848,4.755,18867,5.742,18868,2.723,18877,6.665,18975,4.755,18976,4.755,18977,4.755,18978,4.755,19013,4.496,19014,2.723,19015,4.496,19148,3.118,19149,5.147,19150,5.147,19151,7.63,19152,5.147,19153,5.147,19154,3.118,19155,5.147,19156,3.118,19157,3.118,19158,5.147,19159,3.118,19160,5.147,19161,3.118,19162,5.147,19163,3.118,19164,5.147,19165,3.118,19166,3.118,19167,5.147,19168,8.445,19169,3.118,19170,5.147,19171,3.118,19172,5.147,19173,3.118,19174,3.118,19175,6.573,19176,5.147,19177,6.573,19178,6.573,19179,9.092,19180,5.147,19181,9.092,19182,5.147,19183,5.147,19184,7.63,19185,3.118,19186,9.092,19187,6.573,19188,7.63,19189,6.573,19190,4.755,19191,3.118,19192,3.118,19193,3.118,19194,3.118,19195,3.118,19196,3.118,19197,3.118,19198,3.118,19199,7.63,19200,5.147,19201,3.118,19202,7.63,19203,5.147,19204,5.147,19205,5.147,19206,3.118,19207,5.147,19208,3.118,19209,3.118,19210,7.63,19211,3.118,19212,3.118,19213,3.118,19214,3.118,19215,3.118,19216,3.118,19217,3.118,19218,3.118,19219,3.118,19220,3.118,19221,3.118,19222,5.147,19223,5.147,19224,3.118,19225,3.118,19226,5.147,19227,5.147,19228,3.118,19229,3.118]],["title/classes/TaskUpdateParams.html",[0,0.229,18911,5.892]],["body/classes/TaskUpdateParams.html",[0,0.315,2,0.778,3,0.018,4,0.018,5,0.01,7,0.104,27,0.512,30,0.001,31,0.594,32,0.185,33,0.66,34,1.953,47,0.934,83,4.038,95,0.146,99,1.147,101,0.013,103,0.001,104,0.001,165,0.733,188,3.511,214,3.062,359,3.948,364,2.283,368,4.497,369,2.51,370,3.094,371,2.556,374,2.161,375,4.998,376,1.586,379,3.068,467,2.492,469,2.984,470,5.025,471,5.242,475,5.704,999,7.113,1000,4.525,1474,3.148,2675,5.194,2691,5.637,2701,4.277,2778,6.042,2910,6.213,2911,6.213,3242,3.6,3245,5.586,3684,5.199,3714,6.796,4955,6.378,6905,8.102,6916,5.454,6918,6.874,8270,6.874,9218,5.656,11952,7.843,18821,10.549,18881,8.567,18883,6.25,18885,8.567,18888,6.25,18911,8.102,19230,6.765,19231,6.765,19232,6.765,19233,6.765,19234,6.765,19235,6.765]],["title/classes/TaskUrlParams.html",[0,0.229,18245,5.639]],["body/classes/TaskUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,2691,5.141,3834,5.671,13763,9.557,18245,9.797,19236,9.724,19237,9.724]],["title/classes/TaskWithStatusVo.html",[0,0.229,7948,4.887]],["body/classes/TaskWithStatusVo.html",[0,0.18,2,0.371,3,0.009,4,0.009,5,0.005,7,0.175,26,1.794,27,0.28,29,0.256,30,0.001,31,0.297,32,0.156,33,0.161,34,0.908,47,0.71,55,1.164,83,2.587,95,0.148,96,0.871,101,0.016,103,0,104,0,111,2.381,116,3.677,127,0.408,145,2.01,148,2.409,165,0.73,167,1.231,187,0.462,188,3.256,192,0.961,214,1.065,217,1.784,227,1.354,234,1.653,240,3.306,247,2.099,305,1.522,334,0.583,347,2.267,369,2.395,370,3.083,371,3.131,379,0.743,380,1.107,398,0.944,399,2.072,400,1.415,402,1.327,404,0.584,405,0.871,406,1.033,461,2.706,564,4.13,687,1.496,728,1.263,738,1.862,783,1.944,806,2.23,844,3.051,905,3.234,957,1.825,1019,1.881,1062,1.408,1218,2.289,1439,1.542,1661,2.101,1828,1.438,1910,1.523,1919,1.339,1932,2.709,2078,1.881,2136,1.291,2526,2.043,2674,3.943,2675,3.823,2678,2.888,2682,1.76,2687,3.352,2688,1.881,2689,2.75,2690,2.289,2691,5.224,2701,1.487,2705,5.603,2881,3.92,3106,1.808,3242,2.816,3245,2.794,3305,4.566,3396,2.071,3418,4.685,3684,5.473,3685,2.696,3714,2.071,3733,6.742,3737,3.557,3738,5.986,3739,5.152,3740,6.113,3741,6.558,3742,3.557,3753,6.279,4083,1.901,4227,1.11,4239,2.016,4303,1.415,4825,2.016,4826,2.071,4926,2.441,4955,1.944,6364,4.524,6397,2.016,6400,3.227,6408,3.352,6409,1.808,6421,2.6,6425,2.337,6427,2.205,6428,2.205,6429,2.016,6430,1.944,6444,2.071,6633,1.991,6634,2.133,6704,2.519,6727,1.73,6737,2.071,6742,2.39,7652,3.227,7793,4.933,7948,3.835,9401,2.016,10657,2.245,11336,2.205,11356,2.205,11490,2.6,11799,2.6,11819,5.773,11820,2.6,11839,5.773,11840,2.6,11951,2.337,11954,3.756,11955,2.39,11956,2.337,11957,2.696,11959,2.817,11960,2.696,11961,2.817,11962,2.817,11963,2.817,11964,2.817,11965,4.623,11966,5.88,11967,5.426,11968,5.258,11969,2.817,11970,2.817,11971,2.696,11972,2.817,11973,2.817,11974,2.817,11975,2.696,11976,8.073,11977,2.817,11978,2.451,11979,2.6,11980,4.623,11981,6.804,11982,4.266,11983,6.804,11984,2.817,11985,2.817,11986,2.817,11987,4.623,11988,2.817,11989,2.817,11990,2.817,11991,2.817,11992,2.817,11993,2.817,11994,2.817,11995,2.817,11996,2.817,11997,2.817,11998,2.817,11999,2.817,12000,4.623,12001,2.817,12002,2.817,12003,2.451,12004,2.817,12005,2.817,12006,2.817,12007,2.817,12008,2.817,12009,2.817,12010,4.623,12011,2.817,12012,2.817,12013,4.623,12014,2.817,12015,4.623,12016,2.519,12017,2.696,12018,2.817,12019,6.804,12020,5.88,12021,4.425,12022,2.6,12023,5.88,12024,2.817,12025,5.88,12026,2.696,12027,4.623,12028,2.817,12029,2.817,12030,2.817,12031,5.88,12032,2.817,12033,4.623,12034,2.696,12035,2.817,12036,2.817,12037,6.804,12038,2.817,12039,2.817,12040,2.817,12041,2.817,12042,2.817,12043,2.817,12044,2.817,12045,4.623,12046,2.817,12047,2.817,12048,4.623,12049,2.817,12050,2.817,12051,2.817,12052,2.817,12053,2.696,12054,2.817,12055,6.804,12056,2.817,12057,2.817,12058,2.817,12059,2.817,12060,2.817,12061,2.817,12062,2.817,12063,2.817,12064,2.817,12065,2.696,19238,5.292,19239,3.225]],["title/classes/TeamDto.html",[0,0.229,4497,4.786]],["body/classes/TeamDto.html",[0,0.361,2,0.953,3,0.022,4,0.022,5,0.012,7,0.127,26,2.441,27,0.513,29,0.658,30,0.001,31,0.693,32,0.173,33,0.414,34,2.007,39,2.22,47,0.927,95,0.106,99,1.405,100,3.55,101,0.02,103,0.001,104,0.001,127,1.048,165,0.838,379,1.908,405,3.162,415,4.52,416,5.319,425,2.843,595,2.861,618,3.524,619,4.733,1919,4.404,2136,3.315,2450,6.718,4227,2.851,4303,3.634,4304,4.882,4305,6.139,4497,9.05,4568,8.877,4635,6.139,10733,7.236,10734,7.236,11378,6.91,11635,8.059,12068,8.478,12077,6.47,13231,8.55,14900,9.945,15808,9.266,19240,7.652,19241,9.266,19242,8.868,19243,10.607,19244,8.283,19245,8.283,19246,7.652]],["title/entities/TeamEntity.html",[380,1.41,6720,4.163]],["body/entities/TeamEntity.html",[0,0.324,3,0.019,4,0.019,5,0.01,7,0.108,27,0.396,30,0.001,31,0.65,32,0.134,39,1.886,47,0.785,62,6.299,72,3.304,95,0.155,96,2.574,101,0.022,103,0.001,104,0.001,111,1.407,144,2.951,165,0.753,192,2.84,227,1.14,234,1.141,240,3.384,334,1.049,364,1.765,369,2.1,380,1.992,381,2.316,398,2.06,399,3.73,400,3.087,402,2.895,404,1.274,405,2.574,406,2.255,415,5.894,461,2.988,496,5.252,728,4.229,844,5.651,1925,4.951,2136,2.816,2222,5.347,2618,5.529,2674,3.227,3547,4.73,4227,2.422,4287,4.994,4293,5.154,4303,3.087,4304,6.366,4307,8.437,4926,5.577,6407,4.344,6409,3.945,6430,4.241,6720,5.88,6758,4.585,9736,5.099,9737,5.099,10740,5.216,10741,5.497,11378,4.585,12066,7.442,12067,5.884,12068,6.903,12069,8.873,12070,5.497,12071,7.68,12072,5.884,12073,5.884,12074,5.884,12075,5.884,12076,5.884,12077,5.497,12078,5.884,12079,5.884,19247,7.037,19248,7.037]],["title/classes/TeamFactory.html",[0,0.229,19249,6.23]],["body/classes/TeamFactory.html",[0,0.161,2,0.546,3,0.013,4,0.013,5,0.007,7,0.073,8,0.866,27,0.537,29,1.035,30,0.001,31,0.712,32,0.185,33,0.627,34,1.486,35,1.442,39,2.321,47,0.754,55,2.492,59,3.219,95,0.124,99,0.805,101,0.009,103,0,104,0,127,0.601,138,3.118,144,3.189,148,1.468,165,0.567,185,4.91,216,1.327,217,1.144,227,0.914,329,3.437,359,2.49,366,2.613,379,1.996,380,2.169,381,2.363,404,1.3,496,4.37,538,3.219,596,3.852,627,2.235,660,7.172,661,4.597,662,5.414,665,4.026,666,5.414,667,5.608,668,4.026,669,4.026,670,4.026,671,3.953,672,4.402,673,4.856,674,6.368,675,5.71,676,6.935,677,2.686,682,2.661,683,4.026,684,2.686,685,5.058,686,5.27,687,4.48,688,5.098,689,3.989,690,2.661,691,2.486,692,4.065,693,2.59,694,2.546,695,2.661,696,4.981,697,2.686,698,4.768,699,2.661,700,7.113,701,4.076,702,6.542,703,2.686,704,4.28,705,2.661,706,2.686,707,2.661,708,2.686,709,2.661,710,3.006,711,2.828,712,2.661,713,6.007,714,2.686,715,2.661,716,4.026,717,3.953,718,4.026,719,2.686,720,2.568,721,2.546,722,2.093,723,2.661,724,2.661,725,2.661,726,2.686,727,2.686,728,1.858,729,2.661,730,2.686,731,2.824,732,2.661,733,2.686,735,2.74,737,4.279,4328,3.968,4499,2.894,6720,2.93,12066,3.708,12068,6.276,12069,6.722,14896,5.789,19249,8.002,19250,4.747,19251,6.634,19252,7.181,19253,6.634,19254,4.747,19255,7.181,19256,4.747,19257,4.146,19258,4.747,19259,4.747,19260,4.747,19261,4.747,19262,4.747]],["title/injectables/TeamMapper.html",[105,0.889,4606,5.639]],["body/injectables/TeamMapper.html",[0,0.293,3,0.023,4,0.023,5,0.012,7,0.133,8,1.313,27,0.358,29,0.685,30,0.001,31,0.611,32,0.121,33,0.431,34,1.479,35,1.04,39,2.31,95,0.153,99,1.462,100,3.641,101,0.016,103,0.001,104,0.001,105,1.434,107,2.062,116,3.858,187,1.234,217,1.138,227,1.148,234,1.764,264,3.649,379,1.986,380,2.618,4227,2.967,4497,8.884,4499,6.634,4530,8.77,4568,7.572,4606,9.095,4635,6.389,6720,8.136,12068,7.882,12069,7.572,14896,6.949,14900,9.609,19263,8.62,19264,10.879,19265,10.879,19266,8.62,19267,10.05,19268,8.62,19269,8.62,19270,7.963,19271,8.62,19272,8.62,19273,8.62,19274,8.62]],["title/entities/TeamNews.html",[380,1.41,6761,5.125]],["body/entities/TeamNews.html",[0,0.342,3,0.014,4,0.024,5,0.007,7,0.173,9,3.649,26,2.098,27,0.214,30,0.001,31,0.428,32,0.141,34,0.883,47,0.888,83,2.295,95,0.153,96,2.457,101,0.02,103,0,104,0,165,0.848,188,2.889,192,3.201,208,1.91,227,0.543,234,1.475,240,3.647,334,0.567,364,0.954,369,2.479,370,3.752,380,2.245,381,1.694,398,1.507,399,2.987,400,2.258,404,1.821,405,2.717,406,1.649,461,2.474,571,5.684,574,4.122,595,1.778,617,5.248,627,1.602,672,4.621,731,3.575,769,4.547,843,2.246,844,5.099,854,3.85,1031,2.445,1298,4.295,1299,4.692,1300,4.243,1301,4.493,1302,4.919,1474,3.086,1492,4.599,1910,3.604,1916,2.493,1932,3.906,1991,2.785,2344,3.758,2572,3.305,2620,5.303,2674,4.169,2688,3.002,2744,5.689,2789,2.717,3394,3.519,3396,3.305,3397,3.405,3399,3.653,3400,3.583,3401,3.815,3415,3.305,3547,3.46,3573,3.353,4227,1.772,4319,3.911,4320,3.729,4926,4.193,4996,3.815,5011,3.653,5554,6.588,6110,2.859,6329,3.583,6407,3.177,6409,2.886,6430,3.102,6633,3.177,6717,3.815,6718,4.149,6720,5.612,6721,4.149,6722,6.739,6723,5.839,6724,4.149,6725,8.787,6726,5.047,6727,4.878,6728,5.655,6729,5.655,6730,6.559,6731,7.421,6732,4.149,6733,5.415,6734,4.149,6735,3.911,6736,3.911,6737,4.9,6738,4.149,6739,4.149,6740,3.911,6741,4.149,6742,3.815,6743,4.149,6744,3.067,6745,3.177,6746,3.911,6747,4.149,6748,4.149,6749,7.103,6750,4.149,6751,7.33,6752,4.149,6753,4.149,6754,5.798,6755,3.911,6756,6.329,6757,4.021,6758,4.971,6759,3.911,6760,3.729,6761,5.798,6762,6.151,19275,5.147]],["title/controllers/TeamNewsController.html",[481,2.629,14718,5.892]],["body/controllers/TeamNewsController.html",[0,0.255,3,0.02,4,0.02,5,0.011,7,0.115,8,1.199,27,0.311,29,0.595,30,0.001,31,0.421,32,0.105,33,0.375,35,0.904,36,2.159,72,3.519,95,0.169,100,2.509,101,0.014,103,0.001,104,0.001,112,2.5,187,1.073,215,2.426,216,1.386,217,1.473,221,1.766,227,0.791,234,1.216,264,4.208,277,4.462,364,1.389,376,1.758,447,3.143,461,2.29,469,3.306,481,2.922,483,3.608,491,5.827,494,6.72,513,6.324,529,4.918,555,3.957,556,4.055,557,4.09,559,4.09,561,4.09,1016,3.549,1028,8.425,2769,3.704,2934,6.475,3710,4.518,4499,7.533,5784,5.796,6487,7.24,6731,5.625,7668,4.518,10354,9.571,11221,6.043,11378,4.884,12319,6.267,14603,9.181,14612,6.043,14613,6.548,14614,8.988,14616,6.043,14618,6.925,14624,6.548,14625,6.548,14626,6.925,14627,6.925,14628,6.925,14629,6.925,14718,8.682,19276,9.939,19277,7.496,19278,11.15,19279,7.496,19280,10.372,19281,9.939,19282,7.496,19283,7.496,19284,6.925,19285,7.496,19286,7.496,19287,7.496]],["title/classes/TeamPermissionsBody.html",[0,0.229,4576,5.437]],["body/classes/TeamPermissionsBody.html",[0,0.369,2,0.989,3,0.023,4,0.023,5,0.012,7,0.132,10,4.809,27,0.536,30,0.001,32,0.181,95,0.139,101,0.016,103,0.001,104,0.001,165,0.858,347,2.803,364,2.39,373,6.954,374,2.747,376,2.017,467,3.541,883,4.992,1871,7.35,1872,7.877,4568,9.17,4576,8.758,7186,9.802,17875,9.048,19288,12.171,19289,8.602,19290,8.602,19291,8.602,19292,8.602,19293,8.602,19294,8.602]],["title/classes/TeamPermissionsDto.html",[0,0.229,4508,5.269]],["body/classes/TeamPermissionsDto.html",[0,0.288,2,0.975,3,0.022,4,0.022,5,0.012,7,0.13,10,4.776,27,0.545,29,0.673,30,0.001,31,0.476,32,0.184,33,0.691,101,0.016,103,0.001,104,0.001,127,1.072,165,0.85,347,2.797,405,2.908,595,2.928,883,4.958,1871,7.3,1872,7.823,4508,10.033,4511,11.648,4568,9.281,9681,7.403,9682,7.403,9683,7.403,9684,7.403,9685,7.403,9686,7.403,9687,7.403,9688,7.403,17875,8.986,19295,7.829,19296,10.763,19297,7.829,19298,7.829,19299,7.829,19300,7.829,19301,8.475,19302,8.475]],["title/injectables/TeamPermissionsMapper.html",[105,0.889,4607,5.639]],["body/injectables/TeamPermissionsMapper.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.135,8,1.325,10,3.534,27,0.364,29,0.695,30,0.001,31,0.491,32,0.123,33,0.438,35,1.056,95,0.154,100,3.676,101,0.017,103,0.001,104,0.001,105,1.447,107,2.094,116,3.884,187,1.253,227,1.159,234,1.419,264,3.705,379,2.016,543,6.629,883,3.669,1871,5.402,1872,5.788,4508,9.833,4512,6.836,4530,8.853,4533,6.619,4568,7.645,4576,10.147,4592,7.645,4607,9.182,4610,9.594,4636,11.628,4672,8.084,17875,6.649,19267,10.146,19303,8.751,19304,10.983,19305,10.983,19306,8.751,19307,8.751,19308,8.751,19309,8.751,19310,8.751,19311,8.751,19312,8.751]],["title/classes/TeamRoleDto.html",[0,0.229,4574,5.639]],["body/classes/TeamRoleDto.html",[0,0.395,2,1.102,3,0.025,4,0.025,5,0.014,7,0.147,27,0.483,30,0.001,32,0.163,47,0.945,95,0.149,101,0.018,103,0.001,104,0.001,165,0.918,364,2.152,374,3.061,376,2.247,467,3.359,1000,5.345,3928,8.545,4568,8.701,4574,9.712,4635,9.265,5711,8.417,19288,11.547,19313,9.585,19314,9.585,19315,9.585]],["title/classes/TeamRolePermissionsDto.html",[0,0.229,4532,5.437]],["body/classes/TeamRolePermissionsDto.html",[0,0.299,2,1.013,3,0.023,4,0.023,5,0.012,7,0.136,27,0.54,29,0.7,30,0.001,31,0.494,32,0.182,33,0.441,47,0.964,101,0.017,103,0.001,104,0.001,127,1.115,165,0.871,347,2.247,405,2.98,496,5.584,595,3.043,1916,5.831,3928,8.23,3933,8.137,4477,8.908,4532,10.473,4536,10.517,4538,6.813,8296,8.137,8297,8.137,9620,6.529,9650,6.881,19295,8.137,19297,8.137,19298,10.187,19299,8.137,19300,8.137,19316,13.254,19317,8.809,19318,8.809,19319,8.809]],["title/injectables/TeamRule.html",[105,0.889,1972,5.639]],["body/injectables/TeamRule.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.122,8,1.242,27,0.476,29,0.909,30,0.001,31,0.643,32,0.161,33,0.573,35,1.242,95,0.156,101,0.015,103,0.001,104,0.001,105,1.357,107,1.892,116,4.17,127,1.001,187,1.132,199,4.369,214,2.611,215,2.559,216,1.462,217,1.044,227,1.086,347,2.47,371,2.179,380,2.744,461,3.099,738,4.565,806,3.332,1862,6.674,1890,8.162,1911,4.881,1928,7.759,1972,8.607,1989,6.354,2033,6.707,3352,6.919,3353,5.406,3356,6.809,3358,5.406,3359,5.315,3361,6.009,6720,8.213,12069,7.165,19270,7.306,19320,7.909,19321,7.909,19322,7.909,19323,7.909,19324,10.295,19325,7.909,19326,7.909]],["title/injectables/TeamService.html",[105,0.889,19327,5.892]],["body/injectables/TeamService.html",[0,0.279,3,0.022,4,0.022,5,0.012,7,0.126,8,1.273,26,2.762,27,0.484,29,0.926,30,0.001,31,0.654,32,0.164,33,0.583,35,1.273,36,2.672,39,3.124,95,0.15,99,1.393,101,0.016,103,0.001,104,0.001,105,1.39,107,1.966,112,2.919,116,4.213,127,1.04,187,1.176,215,2.659,216,1.519,217,1.393,221,2.747,227,1.113,450,3.379,1973,8.75,6720,5.071,11378,7.594,12167,9.747,19327,9.217,19328,8.215,19329,10.551,19330,10.551,19331,8.215,19332,8.215,19333,10.551,19334,8.215,19335,10.551,19336,8.215,19337,8.215,19338,8.215,19339,8.215,19340,8.215,19341,8.215,19342,8.215]],["title/classes/TeamUrlParams.html",[0,0.229,19280,5.892]],["body/classes/TeamUrlParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,34,2.01,47,0.852,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,364,1.802,368,4.628,369,2.583,370,3.909,371,3.229,374,3.106,376,2.28,379,2.24,467,3.149,1000,5.011,3834,5.671,3928,8.599,4499,7.146,19280,10.237,19343,9.724,19344,9.724]],["title/classes/TeamUserDto.html",[0,0.229,14900,5.437]],["body/classes/TeamUserDto.html",[0,0.366,2,0.975,3,0.022,4,0.022,5,0.012,7,0.13,26,2.245,27,0.517,29,0.673,30,0.001,31,0.604,32,0.175,33,0.424,34,1.454,39,3.17,47,0.969,95,0.109,99,1.437,100,2.837,101,0.021,103,0.001,104,0.001,127,1.072,165,0.85,405,3.196,415,4.624,416,5.442,425,2.271,595,2.928,618,3.606,619,4.843,1919,3.519,2136,3.392,2450,5.368,4227,4.071,4303,3.718,4304,4.995,4305,6.281,4497,7.637,4568,8.939,4635,8.765,10733,7.403,10734,7.403,11378,5.521,11635,6.439,12068,6.14,12077,6.62,13231,6.832,14900,10.58,15808,7.403,19240,7.829,19241,7.403,19242,7.085,19246,7.829,19345,10.763,19346,8.475,19347,8.475]],["title/classes/TeamUserEntity.html",[0,0.229,12069,4.694]],["body/classes/TeamUserEntity.html",[0,0.302,2,0.73,3,0.017,4,0.017,5,0.009,7,0.098,27,0.526,29,0.813,30,0.001,31,0.655,32,0.17,33,0.512,35,1.071,39,2.742,47,0.645,62,3.703,72,2.98,95,0.15,96,2.398,101,0.021,103,0.001,104,0.001,111,2.046,127,0.803,144,3.186,148,2.746,165,0.701,192,3.303,227,1.08,234,1.03,240,2.781,334,0.977,364,1.896,369,1.4,380,1.856,398,1.859,399,3.475,400,2.785,402,2.611,404,1.15,405,2.765,406,2.034,415,5.584,461,3.083,496,5.415,595,2.193,728,4.006,844,5.827,884,4.192,1925,3.299,2136,2.541,2222,4.824,2618,5.238,2674,2.911,3547,4.267,4227,3.522,4293,4.802,4303,2.785,4304,6.031,4307,7.994,4926,5.377,6407,3.919,6409,3.559,6430,3.826,6627,6.878,6720,3.919,6758,4.136,9346,5.546,9736,4.6,9737,4.6,10740,4.706,10741,4.96,11378,4.136,12066,6.933,12067,5.308,12068,6.431,12069,8.631,12070,4.96,12071,8.932,12072,5.308,12073,5.308,12074,5.308,12075,5.308,12076,5.308,12077,4.96,12078,5.308,12079,5.308,19348,6.349,19349,6.349,19350,6.349,19351,6.349,19352,6.349,19353,6.349,19354,6.349,19355,6.349,19356,6.349,19357,6.349,19358,6.349]],["title/classes/TeamUserFactory.html",[0,0.229,19257,5.892]],["body/classes/TeamUserFactory.html",[0,0.154,2,0.521,3,0.012,4,0.012,5,0.006,7,0.07,8,0.836,27,0.532,29,1.026,30,0.001,31,0.697,32,0.184,33,0.621,34,1.443,35,1.422,39,2.871,47,0.836,55,2.452,59,3.152,95,0.137,99,0.768,101,0.009,103,0,104,0,127,0.573,138,3.008,144,3.142,148,1.401,165,0.547,185,4.858,192,3.428,216,1.281,217,1.519,227,0.888,234,0.734,329,3.387,359,2.402,366,2.492,379,1.939,380,2.124,381,2.28,404,1.255,461,2.172,496,5.067,538,3.106,596,3.814,627,2.157,660,7.113,661,4.513,662,5.284,665,3.884,666,5.284,667,5.534,668,3.884,669,3.884,670,3.884,671,3.814,672,4.276,673,4.717,674,5.846,675,5.592,676,6.875,677,2.562,682,2.538,683,3.884,684,2.562,685,4.936,686,5.143,687,4.372,688,4.975,689,3.848,690,2.538,691,2.371,692,3.991,693,2.471,694,2.429,695,2.538,696,4.861,697,2.562,698,4.632,699,2.538,700,7.043,701,4.016,702,6.447,703,2.562,704,4.158,705,2.538,706,2.562,707,2.538,708,2.562,709,2.538,710,2.868,711,2.698,712,2.538,713,5.898,714,2.562,715,2.538,716,3.884,717,3.814,718,3.884,719,2.562,720,2.449,721,2.429,722,1.997,723,2.538,724,2.538,725,2.538,726,2.562,727,2.562,728,1.773,729,2.538,730,2.562,731,2.724,732,2.538,733,2.562,735,2.613,737,4.128,848,3.213,2233,6.4,3110,4.076,4328,3.785,6613,3.537,6622,5.412,12069,4.822,18274,7.351,19251,6.4,19253,6.4,19257,7.351,19359,4.528,19360,4.528,19361,6.928,19362,4.528,19363,4.528,19364,4.528,19365,4.182,19366,4.528,19367,4.528,19368,4.528,19369,4.182,19370,4.528]],["title/modules/TeamsApiModule.html",[425,1.808,17759,5.437]],["body/modules/TeamsApiModule.html",[0,0.33,3,0.026,4,0.026,5,0.014,30,0.001,95,0.15,101,0.019,103,0.001,104,0.001,187,1.389,425,3.367,427,3.585,428,3.782,429,3.899,430,3.882,431,3.848,432,4.325,433,4.412,442,4.704,443,3.814,444,3.718,446,6.144,447,4.067,449,4.704,17759,10.937,19371,9.7,19372,9.7,19373,11.343,19374,9.7,19375,9.7]],["title/modules/TeamsModule.html",[425,1.808,19373,5.639]],["body/modules/TeamsModule.html",[0,0.317,3,0.025,4,0.025,5,0.013,30,0.001,95,0.158,101,0.018,103,0.001,104,0.001,187,1.334,425,3.309,427,3.444,428,3.633,429,3.746,430,3.729,431,3.696,432,4.563,433,4.656,442,4.59,443,3.664,444,3.572,450,3.833,766,4.005,1973,9.032,19327,12.283,19373,11.577,19376,9.319,19377,9.319,19378,9.319,19379,9.319]],["title/injectables/TeamsRepo.html",[105,0.889,1973,4.533]],["body/injectables/TeamsRepo.html",[0,0.204,3,0.016,4,0.016,5,0.008,7,0.092,8,1.03,10,3.447,12,3.937,13,6.058,18,4.218,26,2.546,27,0.518,29,0.943,30,0.001,31,0.666,32,0.171,33,0.594,34,1.464,35,1.432,36,2.796,39,2.661,40,4.108,42,6.058,49,2.342,55,1.321,62,3.504,95,0.139,96,1.623,97,2.556,99,1.019,101,0.011,103,0.001,104,0.001,105,1.125,107,1.437,111,1.985,112,2.973,144,2.333,165,0.674,187,0.86,217,1.127,221,2.877,227,1.205,234,0.974,264,2.543,284,5.145,329,2.514,371,2.352,380,1.256,381,2.809,404,1.546,461,1.967,496,5.143,596,3.283,692,4.851,877,7.119,883,3.579,884,4.032,885,4.94,890,7.457,908,3.663,909,3.708,910,3.663,911,3.708,913,3.663,914,3.708,915,3.307,921,4.565,1304,5.647,1925,4.436,1973,5.738,3110,4.135,3639,4.107,3911,4.693,4499,5.205,4628,7.152,6720,6.129,11378,7.731,12069,5.942,14896,4.843,16827,9.173,16833,7.886,16837,5.55,18395,5.55,19380,6.008,19381,7.457,19382,6.008,19383,7.457,19384,6.008,19385,6.008,19386,6.008,19387,6.008,19388,6.008,19389,6.008,19390,6.008,19391,6.008,19392,6.008,19393,6.008,19394,6.008,19395,6.008]],["title/classes/TestApiClient.html",[0,0.229,1715,5.892]],["body/classes/TestApiClient.html",[0,0.124,2,0.42,3,0.01,4,0.01,5,0.005,7,0.056,8,0.706,10,2.362,27,0.515,29,0.949,30,0.001,31,0.671,32,0.172,33,0.598,35,1.419,36,1.271,47,1.008,51,2.891,55,1.61,59,3.036,87,2.891,94,4.357,95,0.107,99,0.619,101,0.007,103,0,104,0,111,2.649,112,1.642,116,4.081,127,0.462,144,2.505,163,3.474,165,0.462,167,1.393,185,1.429,187,0.522,216,2.037,217,1.72,221,0.86,227,1.241,234,1.188,247,2.321,305,1.05,329,2.7,334,0.402,347,1.192,355,2.3,359,3.564,363,3.757,379,0.841,483,1.756,543,5.149,552,3.757,576,7.225,643,2.589,740,5.11,905,1.515,946,3.811,1016,3.494,1062,1.593,1388,4.57,1491,7.147,1683,6.058,1700,7.317,1701,11.553,1702,3.371,1703,4.921,1704,9.495,1705,5.11,1706,3.371,1707,3.371,1708,2.644,1709,3.188,1710,3.371,1711,3.051,1712,3.371,1713,3.371,1714,3.188,1715,6.397,1716,3.371,1717,2.343,1718,3.371,1719,5.404,1720,4.445,1721,5.11,1722,4.891,1723,4.716,1724,3.28,1725,7.09,1726,9.495,1727,6.764,1728,5.404,1729,5.404,1730,5.404,1731,3.371,1732,9.039,1733,3.371,1734,5.404,1735,10.444,1736,8.469,1737,10.444,1738,3.371,1739,5.404,1740,8.469,1741,3.371,1742,7.738,1743,5.404,1744,3.371,1745,6.122,1746,5.404,1747,3.371,1748,5.404,1749,5.404,1750,3.371,1751,3.371,1752,3.371,1753,3.371,1754,5.404,1755,3.371,1756,3.188,1757,5.404,1758,5.564,1759,7.738,1760,3.371,1761,5.404,1762,3.371,1763,8.469,1764,5.404,1765,5.404,1766,3.371,1767,5.404,1768,5.404,1769,3.371,1770,3.371,1771,5.404,1772,7.738,1773,2.343,1774,3.371,1775,5.404,1776,3.371,1777,3.371,1778,3.371,1779,3.371,1780,3.371,2955,3.311,4038,3.611,19396,5.85,19397,5.85,19398,5.85,19399,5.85,19400,5.85,19401,3.649,19402,3.649,19403,3.649,19404,3.649,19405,3.649,19406,9.168,19407,3.649,19408,3.649,19409,3.649,19410,3.649,19411,3.649,19412,3.649,19413,3.649,19414,3.649,19415,3.649,19416,3.649]],["title/classes/TestBootstrapConsole.html",[0,0.229,19417,6.23]],["body/classes/TestBootstrapConsole.html",[0,0.294,2,0.993,3,0.023,4,0.023,5,0.012,7,0.133,8,1.314,27,0.359,30,0.001,35,1.042,36,2.592,47,0.628,95,0.166,101,0.021,103,0.001,104,0.001,112,1.937,217,1.439,221,2.036,227,1.15,404,1.973,431,3.427,449,3.473,731,3.397,883,5.253,1236,5.206,1298,4.08,1299,4.031,1300,4.031,1301,4.268,1302,4.673,2657,6.13,2658,6.013,2659,7.222,3448,5.806,3456,6.13,3458,6.9,3459,5.148,3461,6.748,7649,6.748,17734,9.516,19417,10.063,19418,10.894,19419,10.894,19420,8.638,19421,11.932,19422,8.638,19423,7.98,19424,8.638,19425,6.564,19426,7.98,19427,8.638,19428,8.638,19429,10.894,19430,7.98,19431,8.638,19432,8.638,19433,10.894,19434,8.638,19435,7.546,19436,6.402,19437,8.638,19438,8.638]],["title/classes/TestHelper.html",[0,0.229,19439,6.23]],["body/classes/TestHelper.html",[0,0.284,2,0.96,3,0.022,4,0.022,5,0.017,7,0.128,27,0.443,30,0.001,31,0.599,47,0.775,95,0.151,101,0.016,103,0.001,104,0.001,116,3.451,144,2.914,163,2.633,165,0.842,217,1.727,227,1.125,329,3.141,334,0.919,627,4.07,2880,3.994,3544,3.468,5410,7.543,5562,5.813,6064,5.386,6162,5.613,6169,7.903,6170,6.19,6171,6.19,6172,8.706,9917,8.102,9918,6.19,9919,10.81,19439,9.85,19440,11.746,19441,7.715,19442,11.746,19443,11.746,19444,8.352,19445,8.352,19446,8.352,19447,8.352,19448,8.352,19449,8.352,19450,8.352,19451,8.352,19452,8.352]],["title/injectables/TimeoutInterceptor.html",[105,0.889,12574,5.892]],["body/injectables/TimeoutInterceptor.html",[0,0.265,3,0.021,4,0.021,5,0.011,7,0.12,8,1.231,27,0.424,29,0.81,30,0.001,31,0.573,32,0.143,33,0.51,35,0.941,55,2.5,95,0.155,101,0.015,103,0.001,104,0.001,105,1.345,107,1.867,127,0.987,187,1.117,199,2.978,204,2.676,214,2.576,215,2.525,216,1.442,217,1.348,227,1.2,234,1.655,367,4.91,379,1.797,481,3.978,494,6.149,731,4.471,806,3.286,1268,5.01,1269,6.094,1270,5.928,1459,6.749,2267,7.393,2333,8.427,3976,8.882,6339,8.225,8014,8.913,8016,8.913,8017,10.535,8018,10.535,8020,8.913,8217,5.928,9419,6.858,11249,9.425,11630,8.225,12574,8.913,12936,8.913,16667,10.503,16675,7.207,16677,7.207,16975,8.225,19453,7.801,19454,10.203,19455,9.425,19456,7.801,19457,7.801,19458,7.801,19459,10.203,19460,11.37,19461,10.203,19462,7.801,19463,10.203,19464,7.801,19465,7.801,19466,7.801,19467,7.801]],["title/classes/TimestampsResponse.html",[0,0.229,3662,4.163]],["body/classes/TimestampsResponse.html",[0,0.304,2,1.029,3,0.024,4,0.024,5,0.013,7,0.138,27,0.527,29,0.71,30,0.001,31,0.502,32,0.178,33,0.607,83,4.003,95,0.115,101,0.017,103,0.001,104,0.001,127,1.409,165,0.88,364,2.246,375,4.918,376,2.098,467,3.507,591,5.58,620,5.745,966,4.579,3662,8.056,3679,9.673,9562,9.917,9624,7.211,19468,8.946,19469,8.946,19470,8.946,19471,8.946,19472,8.946,19473,8.946]],["title/injectables/ToggleUserLoginMigrationUc.html",[105,0.889,19474,5.639]],["body/injectables/ToggleUserLoginMigrationUc.html",[0,0.218,3,0.017,4,0.017,5,0.009,7,0.098,8,1.077,27,0.427,29,0.816,30,0.001,31,0.577,32,0.144,33,0.514,35,1.077,36,2.416,39,2.392,47,0.986,95,0.163,99,1.085,101,0.012,103,0.001,104,0.001,105,1.176,107,1.531,111,2.223,112,2.716,127,1.129,129,6.863,132,6.599,167,2.443,187,0.916,189,5.003,191,3.555,192,3.064,199,3.407,204,2.195,216,2.055,217,1.357,221,2.756,227,0.675,234,1.667,305,2.956,347,2.094,355,4.985,461,2.864,766,2.75,843,2.793,1052,5.065,1542,2.986,1545,2.044,1862,4.913,1868,4.053,1952,6.667,2014,6.615,2767,2.885,3769,6.972,3810,4.999,3830,4.053,3832,4.301,4227,4.364,4442,4.904,4444,5.159,4447,5.159,4448,8.594,4455,5.731,4457,6.701,4459,6.972,4460,4.863,4461,4.999,4462,5.35,4464,6.972,4466,8.592,4467,6.615,4474,4.863,4475,5.35,11285,8.667,13636,5.159,16714,5.59,18153,7.194,19474,7.462,19475,11.119,19476,7.796,19477,6.399,19478,6.399,19479,8.925,19480,6.399,19481,5.59,19482,6.399,19483,6.399,19484,6.399]],["title/injectables/TokenGenerator.html",[105,0.889,18013,5.437]],["body/injectables/TokenGenerator.html",[0,0.332,3,0.026,4,0.026,5,0.014,7,0.15,8,1.418,27,0.406,30,0.001,35,1.179,95,0.162,101,0.019,103,0.001,104,0.001,105,1.549,107,2.338,187,1.399,217,1.29,227,1.031,351,5.807,11024,9.826,11769,9.847,11771,6.463,11772,6.366,18013,9.474,19485,11.753,19486,9.771,19487,13.079,19488,9.771,19489,9.771]],["title/classes/TokenRequestMapper.html",[0,0.229,15074,5.892]],["body/classes/TokenRequestMapper.html",[0,0.281,2,0.951,3,0.022,4,0.022,5,0.012,7,0.127,8,1.278,27,0.44,29,0.841,30,0.001,31,0.595,32,0.149,33,0.53,35,1.278,47,1.006,95,0.15,101,0.016,103,0.001,104,0.001,227,1.118,234,1.718,334,0.91,348,5.556,627,4.059,1016,2.951,1253,5.685,1592,9.937,1594,6.663,1596,5.866,1597,6.663,1598,7.221,1599,7.221,1603,7.636,1606,7.636,1607,6.911,1608,6.126,1703,5.556,5472,5.776,5812,6.663,10953,8.932,11083,7.517,15074,9.253,15077,9.937,15133,11.388,15139,7.636,15735,6.663,19490,11.689,19491,11.689,19492,10.593,19493,8.266,19494,8.266,19495,10.593,19496,8.266,19497,8.266,19498,8.266,19499,8.266]],["title/modules/ToolApiModule.html",[425,1.808,17760,5.437]],["body/modules/ToolApiModule.html",[0,0.199,3,0.016,4,0.016,5,0.008,30,0.001,95,0.176,101,0.011,103,0.001,104,0.001,108,3.377,187,0.837,191,3.25,192,3.185,199,3.198,200,4.109,209,3.368,425,2.622,427,2.162,428,2.281,429,2.352,430,2.341,431,2.321,432,3.617,433,2.206,438,5.556,442,3.367,443,2.301,444,2.243,446,3.706,447,3.512,449,3.367,450,2.406,1545,1.869,1945,6.364,1951,7.554,1981,8.938,2767,2.637,4551,7.663,4552,8.523,4561,3.113,4969,3.311,5267,8.523,5929,9.834,5985,3.932,8351,9.482,8399,9.834,8628,8.938,8637,4.891,8884,9.834,8996,9.482,9023,7.738,9188,9.834,17412,9.834,17429,9.834,17491,9.834,17760,11.469,19500,5.851,19501,5.851,19502,5.851,19503,9.834,19504,9.834,19505,8.548,19506,8.548,19507,8.548,19508,8.548,19509,8.548,19510,9.785,19511,9.785,19512,5.405,19513,5.851,19514,5.851,19515,5.851]],["title/modules/ToolConfigModule.html",[425,1.808,8628,5.125]],["body/modules/ToolConfigModule.html",[0,0.345,3,0.027,4,0.027,5,0.014,30,0.001,95,0.154,101,0.019,103,0.001,104,0.001,108,5.853,154,4.623,187,1.451,209,3.491,425,3.22,427,3.748,432,3.748,433,3.824,836,5.853,1420,7.058,8361,9.73,8628,9.13,12084,8.478,19516,10.14,19517,10.14]],["title/classes/ToolConfiguration.html",[0,0.229,12084,5.639]],["body/classes/ToolConfiguration.html",[0,0.301,2,1.017,3,0.023,4,0.023,5,0.013,7,0.136,27,0.368,30,0.001,32,0.124,47,0.877,55,2.653,95,0.114,101,0.023,103,0.001,104,0.001,108,6.383,144,2.417,165,0.874,217,1.168,329,3.257,334,0.974,347,2.796,627,3.755,2171,3.802,2172,4.231,2173,4.08,3898,4.828,8359,9.166,8361,9.602,8583,10.538,8616,10.538,11092,6.158,12080,11.144,12081,11.144,12082,11.144,12083,8.173,12084,9.245,12085,10.215,12086,10.215,12087,10.215,12088,10.215,12089,9.245,19518,8.847]],["title/controllers/ToolConfigurationController.html",[481,2.629,19506,5.892]],["body/controllers/ToolConfigurationController.html",[0,0.165,3,0.013,4,0.013,5,0.007,7,0.075,8,0.883,27,0.406,29,0.777,30,0.001,31,0.549,32,0.177,33,0.489,35,1.18,36,2.555,95,0.151,100,1.629,101,0.009,103,0,104,0,112,2.828,116,4.081,158,4.406,185,4.937,187,0.697,192,3.407,199,4.363,200,4.108,209,4.048,215,1.575,216,0.9,217,1.553,221,2.305,227,1.032,264,4.44,364,1.812,376,1.141,379,2.254,447,2.04,481,1.897,483,2.342,491,6.259,494,5.895,513,6.528,538,4.385,553,6.555,555,2.569,556,2.633,557,2.656,559,2.656,561,2.656,563,6.037,1379,7.386,2171,5.054,2485,2.102,2500,7.259,2600,4.577,2769,2.405,3710,5.895,4533,7.087,5633,8.178,5635,7.885,5706,7.641,5944,7.884,6010,8.544,8366,7.353,8380,6.393,8399,7.353,8404,8.124,8405,8.124,9988,9.035,11216,6.281,13152,4.496,13462,7.353,13464,6.518,13465,6.682,14622,4.069,14806,8.544,17351,8.178,17353,7.885,17365,7.641,17549,7.641,19506,6.393,19519,9.161,19520,8.794,19521,8.794,19522,4.867,19523,7.318,19524,7.318,19525,4.496,19526,4.867,19527,4.867,19528,7.318,19529,4.867,19530,4.867,19531,4.867,19532,7.318,19533,7.318,19534,7.318,19535,7.318,19536,4.867,19537,4.867,19538,7.318,19539,7.318,19540,4.867,19541,8.192,19542,4.252,19543,4.496,19544,4.867,19545,3.923,19546,4.496,19547,4.867,19548,4.496,19549,4.867,19550,4.867,19551,4.252,19552,4.252,19553,4.867,19554,4.867,19555,4.496,19556,4.867,19557,4.867,19558,4.252,19559,4.867]],["title/classes/ToolConfigurationMapper.html",[0,0.229,19542,5.892]],["body/classes/ToolConfigurationMapper.html",[0,0.226,2,0.765,3,0.018,4,0.018,5,0.009,7,0.102,8,1.106,27,0.47,29,0.974,30,0.001,31,0.688,32,0.159,33,0.566,35,1.364,95,0.145,101,0.013,103,0.001,104,0.001,139,3.802,158,6.585,200,2.167,209,3.611,217,1.659,227,1.193,234,1.834,276,7.391,627,4.167,982,3.333,2485,2.874,2600,5.176,2769,3.288,3673,4.548,4533,7.713,4945,4.919,5633,8.771,5635,9.56,5639,7.163,5640,5.189,5641,4.821,8365,7.391,8366,10.502,8388,5.563,8435,7.391,8593,7.391,8672,6.967,8996,5.363,9030,8.01,17351,8.771,17353,9.56,19542,8.01,19560,10.955,19561,6.653,19562,10.491,19563,10.491,19564,10.491,19565,10.491,19566,6.653,19567,6.653,19568,9.169,19569,6.653,19570,6.653,19571,10.491,19572,6.653,19573,6.653,19574,6.653,19575,6.653,19576,9.169,19577,8.47,19578,6.653,19579,6.653,19580,6.653,19581,6.653,19582,6.653,19583,6.653]],["title/controllers/ToolContextController.html",[481,2.629,19508,5.892]],["body/controllers/ToolContextController.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,8,0.801,10,1.729,27,0.412,29,0.787,30,0.001,31,0.556,32,0.178,33,0.495,34,1.989,35,1.456,36,2.574,95,0.155,100,1.433,101,0.008,103,0,104,0,111,0.856,112,2.843,140,7.601,163,2.092,185,4.796,187,0.613,199,3.494,200,3.777,206,2.192,209,1.474,215,1.386,216,1.227,217,1.593,221,2.334,227,0.966,234,0.694,264,4.193,364,1.835,367,3.194,376,1.004,379,2.414,447,1.795,461,1.872,481,1.669,483,2.061,491,6.277,493,5.042,494,6.806,500,2.927,502,4.148,503,4.897,504,4.808,513,6.547,520,4.46,524,3.911,538,4.103,543,5.809,549,6.371,553,6.549,554,4.203,555,2.26,556,2.317,557,2.337,558,2.035,559,2.337,561,2.337,563,6.113,564,1.589,565,2.26,1016,4.032,1052,1.745,1053,2.943,1487,2.447,1545,1.368,2296,4.709,2450,5.147,2485,1.85,2769,2.116,2954,3.102,2955,3.756,3710,6.586,3808,4.919,4038,2.643,4714,2.552,5598,6.549,5661,7.652,5664,2.643,5706,9.256,5723,9.137,5778,2.98,5810,3.741,5817,6.794,5821,3.58,5831,9.347,5843,3.345,5852,3.741,5900,7.098,5903,7.098,5921,9.152,5929,6.794,5932,7.506,5934,7.506,5935,7.506,5936,7.506,5944,4.203,5959,3.956,8535,3.58,13463,5.797,13464,6.783,13465,7.961,19508,5.797,19519,9.152,19541,8.184,19545,3.452,19551,5.797,19552,5.797,19558,7.995,19577,3.956,19584,4.282,19585,4.282,19586,4.282,19587,3.741,19588,4.282,19589,3.741,19590,4.282,19591,4.282,19592,4.282,19593,4.282,19594,4.282,19595,4.282,19596,4.282,19597,4.282,19598,6.636,19599,4.282,19600,4.282,19601,4.282,19602,4.282,19603,4.282,19604,4.282,19605,4.282,19606,4.282,19607,4.282,19608,5.797,19609,6.794,19610,4.282,19611,6.636,19612,4.282,19613,4.282,19614,4.282,19615,4.282,19616,3.741,19617,4.282,19618,4.282,19619,4.282,19620,3.956,19621,4.282,19622,4.282,19623,4.282,19624,4.282,19625,4.282,19626,4.282,19627,4.282,19628,4.282,19629,4.282]],["title/controllers/ToolController.html",[481,2.629,19509,5.892]],["body/controllers/ToolController.html",[0,0.113,3,0.009,4,0.009,5,0.005,7,0.051,8,0.655,10,1.344,27,0.411,29,0.786,30,0.001,31,0.556,32,0.177,33,0.495,34,1.77,35,1.356,36,2.665,95,0.157,99,0.565,100,1.114,101,0.006,103,0,104,0,111,1.749,112,2.842,127,0.421,158,6.305,163,2.503,185,4.637,187,0.477,199,2.073,200,2.849,206,1.704,209,3.869,216,1.617,217,1.636,221,2.211,227,0.99,234,0.881,264,3.703,364,1.833,367,3.821,376,0.781,379,2.729,447,1.396,461,2.688,469,1.468,481,1.298,483,1.602,491,6.13,493,4.127,494,4.784,500,2.276,502,4.962,503,5.271,504,5.752,511,2.78,513,6.393,520,3.651,524,4.679,529,4.138,535,4.295,538,2.435,543,3.447,549,6.888,553,6.451,554,4.358,555,1.757,556,1.801,557,1.817,558,1.582,559,1.817,561,1.817,563,6.108,564,2.016,565,2.867,693,2.964,701,1.897,766,1.431,1014,2.666,1016,3.35,1028,5.633,1052,1.357,1053,2.409,1487,1.902,1545,1.063,2296,3.854,2432,4.1,2450,5.028,2485,1.438,2600,4.504,2672,4.962,2769,1.645,2954,2.412,2955,3.074,3710,5.654,3808,2.467,4000,4.962,4533,5.654,5067,3.936,5615,2.362,5661,6.637,5741,2.467,5944,5.539,6487,4.841,6489,5.878,6491,1.984,6775,3.353,7172,5.698,8365,4.379,8409,5.099,8437,3.075,8438,3.075,8453,6.637,8519,10.191,8520,5.752,8527,3.075,8535,6.637,8573,3.075,8772,4.127,8884,4.541,8898,4.745,8900,6.637,8924,6.637,8926,5.752,8929,6.637,8931,4.745,8985,8.319,8996,2.684,9016,4.243,9018,4.379,9021,3.075,9042,3.075,9061,6.637,9071,6.01,9072,6.01,9077,6.01,9188,5.752,9190,6.356,9191,6.356,12314,2.908,12319,4.541,13462,4.541,13464,5.884,13465,7.519,19504,5.752,19509,4.745,19525,3.075,19541,7.329,19545,2.684,19551,2.908,19552,2.908,19587,2.908,19589,4.745,19608,4.745,19609,4.541,19616,2.908,19630,3.329,19631,3.329,19632,5.432,19633,6.356,19634,3.329,19635,9.382,19636,3.329,19637,3.329,19638,3.329,19639,3.329,19640,5.432,19641,7.563,19642,3.329,19643,3.329,19644,3.329,19645,3.329,19646,3.075,19647,3.329,19648,3.329,19649,3.329,19650,3.329,19651,3.329,19652,3.329,19653,3.329,19654,3.329,19655,3.329,19656,3.329,19657,3.329,19658,3.329,19659,3.329,19660,3.329,19661,3.329,19662,3.329,19663,3.329,19664,3.329,19665,6.935,19666,3.329,19667,3.329,19668,3.329,19669,3.329,19670,3.329,19671,5.432,19672,5.018,19673,3.329,19674,3.329,19675,3.329,19676,3.329,19677,3.329,19678,3.329,19679,3.075,19680,3.075,19681,3.329,19682,3.329,19683,8.746,19684,3.329,19685,3.329,19686,3.329,19687,3.329,19688,3.329,19689,3.329,19690,3.329,19691,3.329,19692,3.329,19693,3.329,19694,3.329,19695,3.329,19696,3.329,19697,3.329,19698,3.329,19699,3.329,19700,2.908,19701,3.329,19702,3.329]],["title/controllers/ToolLaunchController.html",[481,2.629,19505,5.892]],["body/controllers/ToolLaunchController.html",[0,0.253,3,0.02,4,0.02,5,0.011,7,0.115,8,1.195,27,0.31,29,0.592,30,0.001,31,0.418,32,0.156,33,0.373,34,1.279,35,0.899,36,2.151,95,0.169,100,2.495,101,0.014,103,0.001,104,0.001,108,5.715,112,2.493,175,7.739,185,4.353,187,1.067,199,3.78,200,3.226,205,6.009,206,3.816,208,2.766,209,4.364,210,7.608,215,2.412,216,1.378,217,1.308,221,1.757,227,0.787,264,4.192,364,1.381,367,5.702,376,1.748,379,2.73,447,3.125,481,2.906,483,3.588,491,5.814,513,6.064,553,6.19,555,3.935,556,4.033,557,4.068,559,4.068,561,4.068,563,4.601,1016,3.535,2769,3.683,3710,4.493,5944,7.043,10380,6.232,13464,7.339,13465,7.524,19503,9.296,19505,8.65,19512,9.147,19541,7.735,19545,6.009,19546,6.886,19558,6.512,19703,7.454,19704,10.271,19705,7.454,19706,10.349,19707,7.454,19708,7.454,19709,7.454,19710,7.454,19711,7.454,19712,8.65,19713,8.65,19714,7.454,19715,9.147,19716,9.296,19717,7.454,19718,7.454,19719,7.454,19720,7.454]],["title/classes/ToolLaunchData.html",[0,0.229,160,4.887]],["body/classes/ToolLaunchData.html",[0,0.291,2,0.983,3,0.023,4,0.023,5,0.012,7,0.131,27,0.535,29,0.679,30,0.001,31,0.48,32,0.191,33,0.428,47,0.787,95,0.139,101,0.016,103,0.001,104,0.001,108,7.592,127,1.082,134,9.022,160,9.329,163,3.412,165,1.017,209,2.942,210,8.579,236,6.924,238,6.424,240,2.677,347,2.204,405,2.924,595,2.953,2610,6.065,2621,4.037,2622,6.065,5236,5.343,7024,5.949,7025,6.334,16282,7.895,19721,12.151,19722,10.82,19723,8.547,19724,8.547,19725,10.968,19726,8.547,19727,8.547,19728,8.547]],["title/classes/ToolLaunchMapper.html",[0,0.229,205,5.437]],["body/classes/ToolLaunchMapper.html",[0,0.234,2,0.793,3,0.018,4,0.018,5,0.01,7,0.106,8,1.133,27,0.477,29,0.911,30,0.001,31,0.644,32,0.161,33,0.574,35,1.385,95,0.137,101,0.013,103,0.001,104,0.001,108,6.931,144,2.567,146,7.713,150,3.445,175,8.624,198,3.296,205,7.572,207,8.614,208,2.558,217,1.704,227,1.267,231,5.422,234,1.118,235,5.316,236,5.478,242,6.367,244,6.367,331,4.309,627,4.191,982,3.453,1016,3.354,1291,5.109,2076,4.958,2606,6.98,2609,4.798,2662,6.021,7145,4.633,7149,4.712,7162,5.384,8509,5.763,8939,6.021,19716,9.594,19725,11.446,19729,12.008,19730,6.893,19731,9.394,19732,9.394,19733,9.394,19734,9.394,19735,9.394,19736,6.893,19737,9.394,19738,6.893,19739,6.893,19740,9.394,19741,6.893,19742,6.893,19743,9.394,19744,6.893,19745,6.893,19746,9.394,19747,6.893,19748,6.893,19749,6.893,19750,6.893,19751,6.893,19752,6.893,19753,6.893,19754,9.394,19755,6.893,19756,11.475,19757,6.893,19758,6.893]],["title/modules/ToolLaunchModule.html",[425,1.808,19759,5.639]],["body/modules/ToolLaunchModule.html",[0,0.237,3,0.018,4,0.018,5,0.01,30,0.001,95,0.172,101,0.013,103,0.001,104,0.001,108,4.02,187,0.997,191,3.868,192,2.82,199,2.658,200,3.5,209,3.698,425,2.879,427,2.574,428,2.715,429,2.8,430,2.787,431,2.762,432,3.971,433,4.051,442,3.803,443,2.738,444,2.67,449,3.803,766,2.993,1951,7.981,2641,10.391,4550,9.444,4551,8.097,4560,5.292,4561,3.706,4969,3.941,5267,9.005,5713,10.019,5718,9.444,5719,9.709,13371,9.212,14160,10.391,14217,10.391,14984,10.391,18066,6.433,19759,11.897,19760,6.964,19761,6.964,19762,6.964,19763,6.964,19764,11.276,19765,6.964,19766,6.964,19767,6.964]],["title/classes/ToolLaunchParams.html",[0,0.229,19706,5.892]],["body/classes/ToolLaunchParams.html",[0,0.394,2,1.097,3,0.025,4,0.025,5,0.013,7,0.147,27,0.396,30,0.001,32,0.134,34,1.987,47,0.842,95,0.149,101,0.018,103,0.001,104,0.001,108,6.686,165,0.915,199,4.422,200,3.773,209,3.987,364,1.767,368,4.575,369,2.553,370,3.864,371,3.192,374,3.047,376,2.237,379,2.198,467,3.113,1000,4.953,3834,5.563,5707,9.245,19706,10.119,19768,10.701,19769,9.539,19770,9.539]],["title/classes/ToolLaunchRequest.html",[0,0.229,175,4.694]],["body/classes/ToolLaunchRequest.html",[0,0.294,2,0.993,3,0.023,4,0.023,5,0.012,7,0.133,27,0.537,29,0.686,30,0.001,31,0.485,32,0.181,33,0.597,47,0.911,95,0.111,101,0.016,103,0.001,104,0.001,108,7.613,127,1.093,150,4.376,165,0.861,175,8.991,178,9.321,210,8.599,231,6.887,235,7.091,236,6.958,347,2.219,367,4.157,405,2.944,595,2.984,6090,4.798,6992,5.547,7024,6.013,7025,6.402,16631,7.222,17927,7.222,19721,12.184,19771,8.638,19772,10.894,19773,8.638,19774,8.638,19775,8.638,19776,7.98,19777,7.98]],["title/classes/ToolLaunchRequestResponse.html",[0,0.229,19716,5.639]],["body/classes/ToolLaunchRequestResponse.html",[0,0.241,2,0.814,3,0.019,4,0.019,5,0.01,7,0.109,27,0.503,29,0.562,30,0.001,31,0.397,32,0.17,33,0.639,47,0.843,95,0.123,101,0.013,103,0.001,104,0.001,108,7.207,127,0.895,144,2.612,145,1.825,150,4.443,165,0.755,178,9.465,208,2.625,209,4.298,210,8.787,231,6.993,234,1.551,235,6.857,236,6.316,347,1.948,364,2.149,367,6.009,368,4.581,369,2.108,371,3.196,376,1.659,379,2.673,405,2.584,467,3.256,595,2.444,1013,5.318,1031,3.064,2076,5.047,2577,8.875,2669,6.18,2955,5.411,6090,3.93,6927,7.707,6992,4.543,7024,4.924,7025,5.243,11221,7.707,16631,5.915,17927,5.915,19713,8.352,19716,10.13,19768,11.535,19776,6.535,19777,6.535,19778,7.074,19779,9.561,19780,7.074,19781,8.832,19782,7.074,19783,9.561,19784,7.074]],["title/injectables/ToolLaunchService.html",[105,0.889,19764,5.639]],["body/injectables/ToolLaunchService.html",[0,0.173,3,0.014,4,0.014,5,0.007,7,0.078,8,0.913,26,2.486,27,0.465,29,0.849,30,0.001,31,0.6,32,0.167,33,0.535,35,1.207,36,2.173,39,2.42,47,0.657,95,0.165,99,0.863,101,0.01,103,0,104,0,105,0.997,107,1.218,108,6.695,111,2.617,112,2.512,127,0.957,139,7.419,140,7.459,145,1.952,148,2.34,154,2.32,158,6.504,160,8.116,163,1.604,165,0.598,175,6.96,187,0.728,192,2.255,198,2.434,199,1.942,200,3.482,201,4.73,204,1.745,205,4.102,206,2.605,208,1.888,209,2.604,210,3.268,212,7.551,216,2.071,217,1.637,218,6.989,221,2.357,227,0.953,234,1.622,305,2.598,564,2.807,1439,2.434,2606,4.972,2641,9.963,3331,5.063,4485,7.306,5272,9.061,5290,5.369,5298,4.254,5641,7.245,5856,4.102,5857,4.102,5976,7.557,5977,8.302,5984,3.975,5985,5.085,5990,4.254,7549,6.989,8449,4.445,11101,7.889,14217,9.963,14984,9.963,17497,4.701,19764,6.325,19785,11.599,19786,5.089,19787,7.566,19788,7.566,19789,9.031,19790,9.031,19791,7.566,19792,7.566,19793,5.089,19794,7.566,19795,5.089,19796,5.089,19797,5.089,19798,5.089,19799,5.089,19800,4.445,19801,5.089,19802,5.089,19803,5.089,19804,5.089,19805,5.089,19806,5.089,19807,6.989,19808,5.089,19809,5.089,19810,5.089,19811,5.089,19812,5.089,19813,4.701,19814,5.089]],["title/injectables/ToolLaunchUc.html",[105,0.889,19503,5.639]],["body/injectables/ToolLaunchUc.html",[0,0.26,3,0.02,4,0.02,5,0.011,7,0.118,8,1.214,26,2.715,27,0.418,29,0.799,30,0.001,31,0.565,32,0.141,33,0.503,35,0.922,36,2.186,39,2.047,95,0.169,99,1.296,101,0.015,103,0.001,104,0.001,105,1.326,107,1.828,108,6.496,111,2.25,112,2.523,127,1.273,140,7.035,160,8.154,175,7.004,187,1.093,199,4.566,200,3.278,201,4,208,2.834,216,2.08,217,1.58,221,2.652,227,0.806,766,3.283,843,4.392,1862,5.54,1868,4.838,2767,3.443,3027,4.365,5275,9.645,5707,8.865,5720,9.429,5954,6.157,5957,6.673,5965,6.673,5985,5.134,19503,8.413,19704,9.296,19764,10.671,19807,9.296,19815,11.254,19816,7.638,19817,7.638,19818,7.638,19819,10.063,19820,7.638,19821,7.056,19822,7.638,19823,7.638]],["title/modules/ToolModule.html",[425,1.808,1981,5.125]],["body/modules/ToolModule.html",[0,0.25,3,0.019,4,0.019,5,0.01,30,0.001,95,0.168,101,0.014,103,0.001,104,0.001,187,1.051,192,2.19,199,2.804,200,3.596,209,4.224,210,4.717,425,2.958,427,2.715,428,2.864,429,2.953,430,2.94,431,2.914,432,4.08,433,4.162,442,3.942,443,2.888,444,2.816,449,3.942,704,3.63,766,3.157,1919,3.05,1932,3.76,1936,5.738,1977,6.825,1981,10.689,1991,3.974,2478,4.198,2570,3.974,4969,4.157,5267,7.105,5272,10.625,5713,10.964,5718,10.335,5719,10.625,5984,5.738,8628,9.592,8637,6.141,19759,11.371,19824,7.346,19825,7.346,19826,7.346,19827,7.346,19828,7.346]],["title/injectables/ToolPermissionHelper.html",[105,0.889,5275,4.999]],["body/injectables/ToolPermissionHelper.html",[0,0.236,3,0.018,4,0.018,5,0.01,7,0.107,8,1.14,26,2.651,27,0.446,29,0.852,30,0.001,31,0.603,32,0.151,33,0.537,35,1.14,36,2.502,39,3.329,95,0.163,99,1.179,101,0.013,103,0.001,104,0.001,105,1.245,107,1.663,111,1.889,112,2.786,116,4.02,127,1.196,129,7.108,132,6.893,139,7.262,140,7.192,187,0.995,189,5.297,191,3.862,192,3.433,199,5.061,200,3.078,201,4.948,206,3.559,216,1.285,217,1.248,221,2.714,313,6.073,321,6.422,334,0.765,461,2.473,667,3.264,839,3.264,843,5.026,1862,6.996,1919,2.887,1952,6.818,1977,4.839,2027,4.529,2767,3.134,3129,5.604,3767,5.431,3830,4.403,3832,4.673,4714,4.143,5275,7.003,5856,7.617,6015,6.073,8402,9.915,8403,9.376,8411,6.422,8413,6.073,19441,6.422,19829,11.516,19830,6.952,19831,6.952,19832,6.952,19833,6.952,19834,9.449,19835,6.952,19836,6.952]],["title/classes/ToolReference.html",[0,0.229,9016,5.269]],["body/classes/ToolReference.html",[0,0.29,2,0.981,3,0.023,4,0.023,5,0.012,7,0.131,27,0.546,29,0.677,30,0.001,31,0.479,32,0.184,33,0.593,47,0.956,95,0.109,101,0.016,103,0.001,104,0.001,127,1.079,165,0.854,198,4.079,347,2.201,564,4.401,2078,4.974,2600,5.827,3416,7.45,5290,8.417,5602,5.942,5621,5.402,5640,6.713,5656,5.556,5947,9.562,9016,10.27,9045,7.879,9046,7.879,9047,7.45,9048,9.917,9049,7.879,19837,13.353,19838,10.806,19839,10.806,19840,8.529,19841,8.529,19842,8.529,19843,8.529,19844,7.879,19845,7.879,19846,8.529]],["title/classes/ToolReferenceListResponse.html",[0,0.229,19665,5.892]],["body/classes/ToolReferenceListResponse.html",[0,0.318,2,1.074,3,0.025,4,0.025,5,0.013,7,0.144,27,0.475,29,0.742,30,0.001,31,0.524,32,0.173,33,0.467,95,0.147,101,0.018,103,0.001,104,0.001,127,1.182,145,2.41,163,4.166,165,0.903,209,3.215,364,1.731,376,2.19,467,3.073,1006,6.628,1009,6.535,1011,4.97,1026,5.188,1932,6.327,2600,5.394,5636,8.933,9018,10.977,19665,9.989,19847,11.417,19848,9.34]],["title/classes/ToolReferenceMapper.html",[0,0.229,19849,5.892]],["body/classes/ToolReferenceMapper.html",[0,0.3,2,1.015,3,0.023,4,0.023,5,0.012,7,0.136,8,1.332,27,0.367,29,0.701,30,0.001,31,0.496,32,0.124,33,0.442,35,1.065,95,0.155,101,0.017,103,0.001,104,0.001,140,7.615,158,6.644,198,4.222,199,3.37,200,2.876,201,4.623,217,1.166,227,0.932,234,1.432,274,7.712,564,4.686,627,3.751,2485,3.813,2600,4.82,5290,8.961,5602,4.423,5640,4.996,5856,7.116,5858,7.712,5947,7.116,8435,7.116,8672,6.708,9016,10.36,9048,7.381,19560,10.201,19849,9.647,19850,8.828,19851,12.051,19852,8.828,19853,8.828]],["title/classes/ToolReferenceResponse.html",[0,0.229,9018,5.437]],["body/classes/ToolReferenceResponse.html",[0,0.233,2,0.787,3,0.018,4,0.018,5,0.01,7,0.105,27,0.514,29,0.544,30,0.001,31,0.598,32,0.174,33,0.533,34,1.604,47,0.899,95,0.12,101,0.013,103,0.001,104,0.001,127,0.866,150,3.429,165,0.739,199,3.569,209,4.498,234,1.516,347,1.905,364,2.219,368,5.22,369,2.84,370,4.125,371,3.706,375,3.793,376,1.605,379,3.046,467,3.219,564,4.445,779,6.93,1031,2.194,2078,3.992,2171,2.942,2600,5.524,2914,4.396,3728,5.518,5602,5.334,5621,4.336,5640,6.026,5656,4.46,5665,9.302,5947,8.584,6927,7.537,7172,6.091,9018,9.968,9048,8.903,11221,7.537,15873,7.537,17424,10.464,19844,6.324,19845,6.324,19847,11.692,19854,6.846,19855,9.35,19856,9.35,19857,6.846,19858,6.846,19859,6.846,19860,9.35,19861,6.846,19862,8.637,19863,6.846,19864,6.846,19865,6.846,19866,6.846,19867,6.846,19868,6.846]],["title/injectables/ToolReferenceUc.html",[105,0.889,19504,5.639]],["body/injectables/ToolReferenceUc.html",[0,0.164,3,0.013,4,0.013,5,0.007,7,0.074,8,0.877,26,2.551,27,0.456,29,0.872,30,0.001,31,0.616,32,0.16,33,0.549,34,0.828,35,1.261,36,2.793,39,2.943,47,0.873,95,0.163,99,0.819,101,0.009,103,0,104,0,105,0.958,107,1.155,111,2.646,112,2.908,127,0.92,139,6.703,140,7.71,158,5.502,167,3.718,187,0.691,192,2.168,197,6.546,198,2.308,199,3.718,200,3.173,201,3.808,216,2.03,217,1.641,221,2.462,227,1.159,234,0.783,564,2.698,766,2.074,784,2.547,806,2.033,843,3.174,1062,2.106,1158,2.568,1862,4.003,1868,3.057,2037,4.197,2400,4.156,2485,2.085,2600,4.974,2767,2.176,3027,2.758,4714,5.804,5272,8.903,5275,8.447,5290,5.16,5601,6.911,5664,6.012,5720,8.258,5921,4.216,5954,3.89,5961,4.458,5967,4.458,5976,7.155,5977,8.447,5984,3.77,5985,4.888,8408,3.77,8409,8.447,8449,4.216,9016,9.704,9047,4.216,19504,6.08,19543,4.458,19620,4.458,19633,8.083,19813,4.458,19821,4.458,19849,4.216,19869,11.397,19870,4.826,19871,8.75,19872,7.272,19873,7.272,19874,7.272,19875,4.826,19876,4.826,19877,11.397,19878,4.826,19879,7.272,19880,4.826,19881,7.272,19882,4.826,19883,7.272,19884,4.826,19885,4.826,19886,4.826,19887,4.826,19888,4.826,19889,4.826,19890,4.826,19891,4.826,19892,7.272,19893,4.826,19894,4.826,19895,4.826,19896,4.826,19897,4.826,19898,4.826,19899,4.826]],["title/controllers/ToolSchoolController.html",[481,2.629,19507,5.892]],["body/controllers/ToolSchoolController.html",[0,0.147,3,0.011,4,0.011,5,0.006,7,0.066,8,0.805,10,1.742,27,0.413,29,0.789,30,0.001,31,0.558,32,0.176,33,0.497,34,1.942,35,1.402,36,2.579,95,0.157,100,1.444,101,0.008,103,0,104,0,111,1.837,112,2.847,127,0.546,139,7.319,163,2.897,185,4.55,187,0.618,192,1.99,200,3.868,206,2.208,209,2.298,216,1.699,217,1.568,221,2.342,227,0.97,264,3.89,364,1.841,367,4.422,376,1.012,379,2.525,447,1.809,461,1.881,481,1.682,483,2.076,491,6.286,493,5.072,494,5.538,500,2.949,502,4.172,503,5.989,504,6.658,511,4.179,513,6.556,520,4.486,524,5.416,529,2.944,538,2.992,543,5.822,549,6.396,553,6.569,554,4.228,555,2.277,556,2.334,557,2.354,558,2.05,559,2.354,561,2.354,563,6.134,564,1.601,565,3.523,1016,3.281,1052,1.758,1053,2.96,1487,2.465,1545,1.378,2296,4.737,2450,5.171,2485,1.863,2769,2.132,2954,3.126,2955,3.778,3710,6.333,3808,3.197,4038,2.663,4227,1.485,4533,5.538,5741,3.197,5778,3.003,5843,3.37,5944,4.228,7108,6.486,8370,7.408,9061,5.581,13447,3.985,13462,5.581,13464,4.947,13465,7.985,17241,3.985,17365,9.275,17374,9.162,17412,5.581,17418,9.573,17419,3.769,17423,8.471,17429,5.581,17437,5.581,17456,8.027,17491,6.826,17493,7.542,17494,7.542,17495,7.542,17496,7.542,19507,5.831,19519,9.18,19541,8.209,19545,3.478,19555,8.489,19587,3.769,19589,5.831,19608,5.831,19609,5.581,19616,3.769,19646,3.985,19672,3.985,19715,6.166,19900,4.314,19901,8.164,19902,4.314,19903,4.314,19904,4.314,19905,4.314,19906,4.314,19907,4.314,19908,4.314,19909,4.314,19910,4.314,19911,4.314,19912,4.314,19913,8.164,19914,4.314,19915,4.314,19916,4.314,19917,4.314,19918,4.314,19919,4.314,19920,4.314,19921,4.314,19922,4.314,19923,4.314,19924,4.314,19925,4.314,19926,4.314,19927,4.314,19928,4.314,19929,6.675,19930,4.314,19931,4.314,19932,6.675,19933,4.314,19934,4.314,19935,4.314,19936,4.314,19937,4.314]],["title/classes/ToolStatusOutdatedLoggableException.html",[0,0.229,19800,5.892]],["body/classes/ToolStatusOutdatedLoggableException.html",[0,0.285,2,0.964,3,0.022,4,0.022,5,0.012,7,0.129,8,1.29,26,2.775,27,0.444,29,0.666,30,0.001,31,0.471,32,0.15,33,0.42,35,1.012,39,3.154,95,0.151,99,1.422,101,0.016,103,0.001,104,0.001,108,6.793,111,1.677,127,1.061,163,2.644,187,1.2,209,2.887,214,3.53,215,2.714,216,1.976,227,0.885,404,1.936,406,2.687,415,4.576,461,1.932,564,4.599,1327,3.312,1542,5.492,1543,6.116,1545,2.679,1547,6.166,2685,6.726,8137,6.116,8138,6.367,8530,5.386,8532,6.076,8537,4.943,8538,5.176,8568,7.305,8721,6.216,10368,6.76,17674,6.76,19712,7.326,19713,7.326,19800,9.339,19938,11.769,19939,11.769,19940,8.386]],["title/interfaces/ToolVersion.html",[334,0.742,5292,3.933]],["body/interfaces/ToolVersion.html",[3,0.028,4,0.028,5,0.015,7,0.16,8,1.472,27,0.432,30,0.001,35,1.255,55,2.682,101,0.02,103,0.001,104,0.001,334,1.145,336,2.534,5292,7.114,5604,10.144,19941,12.198,19942,10.402,19943,10.402]],["title/classes/UnauthorizedLoggableException.html",[0,0.229,1817,5.639]],["body/classes/UnauthorizedLoggableException.html",[0,0.298,2,1.006,3,0.023,4,0.023,5,0.012,7,0.135,8,1.325,27,0.456,29,0.695,30,0.001,31,0.491,32,0.154,33,0.438,35,1.056,47,0.962,48,5.909,51,5.931,59,2.716,95,0.154,101,0.017,103,0.001,104,0.001,111,1.75,127,1.107,163,2.759,187,1.253,214,3.626,215,2.832,216,2.03,217,1.156,227,0.924,404,1.989,406,2.804,407,7.054,417,6.486,1327,4.337,1542,5.601,1547,6.263,1817,9.182,2038,8.205,8137,6.541,8530,5.62,8532,6.341,8537,5.158,8538,5.402,10371,7.645,10372,7.645,17674,7.054,19944,12.003,19945,8.751,19946,8.084]],["title/classes/UpdateElementContentBodyParams.html",[0,0.229,8037,4.786]],["body/classes/UpdateElementContentBodyParams.html",[0,0.449,2,0.785,3,0.018,4,0.018,5,0.01,7,0.105,9,3.263,27,0.283,30,0.001,31,0.597,32,0.19,47,0.678,83,2.052,95,0.147,99,1.157,101,0.025,103,0.001,104,0.001,144,2.904,145,2.407,163,3.351,165,0.737,240,2.137,364,1.264,369,1.504,374,2.179,376,1.6,379,1.572,404,1.925,467,3.637,470,4.478,524,4.021,999,6.27,1031,2.186,1044,3.348,2344,4.393,2594,4.688,2880,3.263,2915,3.601,3239,4.265,3242,5.656,3245,3.601,3774,6.595,4040,4.664,4071,4.664,4072,7.031,5504,7.266,5506,7.266,5508,7.266,5541,7.266,5542,6.377,5543,6.377,5739,4.513,5740,6.906,6850,4.841,8027,8.669,8028,6.914,8029,5.057,8032,8.108,8033,5.057,8034,8.49,8035,8.108,8036,5.057,8037,6.619,8038,6.619,8039,4.841,8040,6.619,8041,5.057,8042,5.057,8043,5.057,8458,5.96,19947,6.823,19948,6.823]],["title/classes/UpdateFlagParams.html",[0,0.229,12296,5.892]],["body/classes/UpdateFlagParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,95,0.168,101,0.019,103,0.001,104,0.001,165,0.926,347,2.387,364,1.802,373,6.185,374,3.106,376,2.28,379,2.24,461,2.24,467,3.149,520,7.876,1013,4.458,4442,5.168,10330,8.755,10363,8.685,12296,10.237,19949,10.825,19950,9.724,19951,9.724,19952,9.724]],["title/classes/UpdateMatchParams.html",[0,0.229,12288,5.892]],["body/classes/UpdateMatchParams.html",[0,0.396,2,1.108,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,39,3.357,47,0.847,95,0.167,101,0.018,103,0.001,104,0.001,165,0.92,364,1.784,374,3.076,376,2.258,379,2.219,461,2.886,467,3.131,520,7.83,1000,4.982,1013,4.416,1717,7.482,1932,5.964,4442,5.139,12288,10.177,19949,10.762,19953,9.631,19954,9.631,19955,9.631]],["title/classes/UpdateNewsParams.html",[0,0.229,14609,5.639]],["body/classes/UpdateNewsParams.html",[0,0.412,2,0.908,3,0.021,4,0.021,5,0.011,7,0.121,27,0.475,30,0.001,32,0.16,33,0.514,47,0.881,83,3.093,95,0.155,99,1.339,100,3.441,101,0.015,103,0.001,104,0.001,165,0.957,364,2.119,374,2.521,375,4.914,376,1.851,379,2.791,380,2.693,469,3.481,470,4.817,471,5.154,685,5.384,950,8.032,999,6.91,1474,4.263,1848,6.91,2344,5.191,2423,6.269,2835,6.127,3242,4.2,6046,7.028,6726,7.564,6731,7.527,6900,6.895,6906,8.288,6907,8.596,6908,7.812,6918,7.62,6919,7.291,14609,8.596,19956,12.114,19957,10.281,19958,10.281,19959,8.981,19960,7.893,19961,7.893,19962,7.893,19963,7.893,19964,7.893,19965,7.893]],["title/classes/UpdateSubmissionItemBodyParams.html",[0,0.229,3695,5.892]],["body/classes/UpdateSubmissionItemBodyParams.html",[0,0.394,2,1.097,3,0.025,4,0.025,5,0.013,7,0.147,27,0.396,30,0.001,32,0.134,95,0.149,101,0.018,103,0.001,104,0.001,165,0.915,347,2.643,364,1.767,368,4.575,369,2.553,373,6.114,374,3.047,376,2.237,379,2.198,467,3.113,2881,5.914,3247,8.011,3695,10.119,6922,9.338,6924,8.812,6925,8.333,6926,10.119,6927,9.338,6928,8.812,19966,11.584]],["title/entities/User.html",[380,1.41,461,1.554]],["body/entities/User.html",[0,0.148,3,0.012,4,0.012,5,0.006,7,0.192,27,0.541,30,0.001,32,0.181,33,0.676,34,0.747,47,0.988,83,3.506,95,0.128,96,1.177,101,0.016,103,0,104,0,116,1.41,144,1.19,165,0.869,192,3.278,214,1.438,217,1.085,227,0.46,234,1.498,240,4.104,305,1.253,329,1.283,334,0.74,347,1.673,364,2.412,369,2.945,370,4.155,380,1.931,381,1.433,386,7.119,394,2.489,396,3.403,398,1.275,399,2.633,400,1.911,402,1.792,404,0.789,405,1.177,406,1.396,461,1.55,496,3.891,844,4.525,851,4.899,852,4.899,853,5.073,854,5.036,1019,2.54,1031,1.396,1291,3.495,1910,2.057,1916,3.979,1917,3.805,2674,4.577,2678,3.67,2682,3.67,3091,1.986,3110,5.501,4083,2.567,4220,6.429,4221,7.018,4227,2.315,4232,6.24,4284,6.867,4315,3.403,4316,3.229,4926,3.101,6386,3.805,6400,4.101,6407,2.689,6429,2.723,6430,2.625,6744,2.596,6745,2.689,7155,5.11,9336,2.928,9337,3.156,9338,2.928,9339,3.156,9340,3.31,9341,3.512,9562,7.018,9624,3.512,9628,3.642,11243,6.621,11244,6.621,11245,6.621,11482,5.623,11671,3.642,11672,3.512,11673,3.642,11674,3.512,11676,3.642,11680,5.623,11681,3.512,11694,6.314,11721,3.403,11722,3.229,12070,3.403,12097,5.421,12098,4.024,12099,7.216,12100,7.018,12101,6.846,12102,7.216,12103,6.212,12104,6.212,12105,6.212,12106,6.867,12107,3.642,12108,4.024,12109,3.642,12110,4.024,12111,3.642,12112,4.024,12113,3.642,12114,4.024,12115,3.642,12116,4.024,12117,4.024,12118,6.212,19967,4.356,19968,4.356,19969,4.356,19970,4.356,19971,4.356,19972,4.356,19973,4.356,19974,4.356,19975,4.356,19976,4.356,19977,4.356,19978,4.356,19979,4.356,19980,4.356,19981,4.356,19982,4.356,19983,4.356,19984,4.356,19985,4.356]],["title/classes/UserAlreadyAssignedToImportUserError.html",[0,0.229,19986,6.23]],["body/classes/UserAlreadyAssignedToImportUserError.html",[0,0.267,2,0.902,3,0.021,4,0.021,5,0.011,7,0.121,8,1.236,27,0.544,30,0.001,32,0.188,33,0.512,35,0.947,47,0.829,55,1.726,95,0.155,101,0.015,103,0.001,104,0.001,127,1.443,165,0.809,204,4.146,216,2.505,364,2.323,404,1.855,406,2.514,461,2.36,564,2.912,596,3.904,795,6.721,1013,5.542,1016,2.802,1253,5.258,1291,3.338,1327,4.503,1472,8.29,1473,6.516,1474,4.102,1475,7.322,1479,5.112,1480,4.399,1481,5.112,1482,5.112,1483,5.112,1484,5.112,1485,5.112,1486,4.785,1488,6.13,1493,4.97,1932,4.017,3394,5.364,3465,8.563,4000,4.905,4169,5.19,9401,4.905,13340,6.855,19986,9.461,19987,10.242,19988,10.242,19989,7.847,19990,7.847,19991,10.242]],["title/interfaces/UserAndAccountParams.html",[334,0.742,855,5.639]],["body/interfaces/UserAndAccountParams.html",[0,0.233,3,0.018,4,0.018,5,0.01,26,1.95,30,0.001,47,0.871,48,4.389,49,3.645,51,4.62,94,6.435,95,0.154,99,1.161,101,0.018,103,0.001,104,0.001,111,1.869,116,3.446,185,4.955,192,2.787,217,1.726,227,1.264,334,1.172,336,1.667,404,1.693,461,3.074,627,3.729,658,5.518,734,3.951,840,8.903,841,5.98,842,5.98,843,4.994,844,4.238,845,4.858,846,4.858,847,5.98,848,8.12,849,5.202,850,9.968,851,4.589,852,4.589,853,4.751,854,4.717,855,10.582,856,5.723,857,5.98,858,8.168,859,5.98,860,5.98,861,5.98,862,8.903,863,8.168,864,8.168,865,5.723,866,9.302,867,9.302,868,5.98,869,8.168,870,8.168,871,5.723,872,5.98,873,8.168,874,6.635,875,5.723]],["title/classes/UserAndAccountTestFactory.html",[0,0.229,856,5.639]],["body/classes/UserAndAccountTestFactory.html",[0,0.19,2,0.641,3,0.015,4,0.015,5,0.008,7,0.086,8,0.976,26,1.688,27,0.461,29,0.881,30,0.001,31,0.623,32,0.172,33,0.555,35,1.339,47,0.807,48,3.798,49,3.154,51,3.998,94,6.27,95,0.142,99,0.946,101,0.015,103,0,104,0,111,2.314,116,3.082,138,4.134,144,2.855,185,5.124,192,2.412,217,1.646,227,1.171,329,3.077,334,1.048,404,1.01,461,3.04,627,4.136,658,4.494,734,3.218,840,7.962,841,10.108,842,4.87,843,5.525,844,3.667,845,3.956,846,3.956,847,4.87,848,7.414,849,4.236,850,9.328,851,3.971,852,3.971,853,4.111,854,4.082,855,11.177,856,6.764,857,7.068,858,7.068,859,7.068,860,4.87,861,8.319,862,10.421,863,7.068,864,7.068,865,4.661,866,8.319,867,8.319,868,8.319,869,7.068,870,7.068,871,4.661,872,8.319,873,7.068,874,5.741,875,4.661,19992,8.091,19993,8.091,19994,5.575,19995,5.575,19996,5.575,19997,5.575,19998,5.575,19999,5.575,20000,5.575,20001,5.575]],["title/modules/UserApiModule.html",[425,1.808,17761,5.437]],["body/modules/UserApiModule.html",[0,0.315,3,0.025,4,0.025,5,0.013,30,0.001,95,0.165,101,0.018,103,0.001,104,0.001,187,1.328,425,3.302,427,3.428,428,3.616,429,3.729,430,3.712,431,3.679,432,4.554,433,3.497,442,4.577,443,3.647,444,3.555,446,5.875,447,4.774,449,4.577,481,3.616,2769,4.583,4551,8.746,12313,10.821,17761,11.069,20002,9.276,20003,9.276,20004,9.276,20005,9.276,20006,10.764,20007,9.276]],["title/interfaces/UserBoardRoles.html",[334,0.742,3109,5.437]],["body/interfaces/UserBoardRoles.html",[0,0.276,3,0.022,4,0.022,5,0.011,7,0.125,26,2.645,30,0.001,32,0.163,34,1.395,39,3.284,95,0.134,101,0.024,102,4.103,103,0.001,104,0.001,145,2.705,165,0.828,227,1.106,334,1.154,336,1.981,359,2.819,404,1.898,521,6.556,728,3.184,843,3.549,1031,3.359,1114,3.299,1854,6.113,1857,4.482,1922,5.151,1940,5.151,2571,5.66,2586,4.292,2845,6.353,3089,5.771,3090,7.104,3091,4.779,3092,8.45,3098,10.786,3100,9.877,3101,8.45,3102,9.157,3103,6.799,3104,7.104,3105,7.347,3106,5.876,3107,7.104,3108,7.104,3109,9.877,3110,5.935,3111,6.799,3112,7.104,3113,9.157,3114,7.104]],["title/controllers/UserController.html",[481,2.629,20006,5.892]],["body/controllers/UserController.html",[0,0.262,3,0.02,4,0.02,5,0.011,7,0.119,8,1.222,27,0.421,29,0.804,30,0.001,31,0.568,32,0.142,33,0.507,35,1.222,36,2.608,95,0.167,100,2.581,101,0.015,103,0.001,104,0.001,112,2.87,185,4.427,187,1.104,206,3.948,215,2.496,216,1.425,217,1.586,221,2.386,227,1.069,234,1.251,364,1.876,376,1.808,447,3.233,461,2.605,481,3.006,483,3.711,491,6.402,513,6.677,543,5.073,552,4.952,555,4.07,556,4.172,557,4.208,559,4.208,561,4.208,1828,3.438,1916,4.905,2509,5.715,2769,3.81,2778,5.024,3110,3.735,4218,10.038,12313,9.114,16679,6.736,16683,6.447,18485,9.877,20006,8.846,20008,7.712,20009,11.306,20010,7.712,20011,10.126,20012,7.712,20013,7.712,20014,10.126,20015,7.712,20016,7.712,20017,6.736,20018,7.712,20019,7.712,20020,9.354,20021,7.712,20022,7.712,20023,7.712,20024,7.712]],["title/classes/UserDO.html",[0,0.229,6938,3.817]],["body/classes/UserDO.html",[0,0.2,2,0.677,3,0.016,4,0.016,5,0.008,7,0.091,26,2.048,27,0.572,29,0.467,30,0.001,31,0.33,32,0.193,33,0.703,34,1.443,47,1,83,3.733,95,0.137,101,0.011,103,0.001,104,0.001,127,0.745,165,0.665,347,1.714,404,1.523,496,2.479,591,4.198,592,4.33,596,1.787,620,3.779,622,3.779,851,4.818,852,4.818,853,4.989,854,4.953,1291,3.579,1857,2.516,1911,3.632,1932,3.012,1939,6.183,2586,3.106,3110,4.755,4220,6.833,4221,7.459,4227,3.379,4232,6.137,4304,3.468,4316,4.362,4380,5.436,5612,4.264,6744,3.507,6938,6.413,6942,6.966,7005,4.597,7036,4.471,7039,6.571,7040,4.597,7048,5.141,9336,3.955,9338,3.955,9340,4.471,11243,7.914,11244,7.914,11245,7.914,11694,6.711,11722,4.362,12099,7.669,12100,7.459,12101,7.276,12102,7.669,12106,8.208,12107,4.92,12109,4.92,12111,4.92,12113,4.92,12115,4.92,20025,5.885,20026,8.412,20027,5.885,20028,5.885,20029,5.885,20030,5.885,20031,5.885,20032,5.885,20033,5.885,20034,5.885,20035,5.885,20036,5.885,20037,5.885,20038,5.885,20039,5.885,20040,5.885,20041,5.885,20042,5.885,20043,5.885,20044,5.885,20045,5.885,20046,5.885,20047,5.885,20048,5.885,20049,5.885,20050,5.885,20051,5.885,20052,5.885,20053,5.885,20054,5.885,20055,5.885,20056,5.885,20057,5.885,20058,5.885,20059,5.885,20060,5.885,20061,5.885,20062,5.885,20063,5.885,20064,5.885,20065,5.885]],["title/injectables/UserDORepo.html",[105,0.889,20066,5.639]],["body/injectables/UserDORepo.html",[0,0.116,3,0.009,4,0.009,5,0.005,7,0.053,8,0.67,10,2.832,12,2.562,18,2.745,26,2.311,27,0.522,29,0.989,30,0.001,31,0.705,32,0.175,33,0.623,34,1.63,35,1.503,36,2.591,40,2.674,47,0.84,48,4.896,55,0.753,56,1.647,58,2.168,59,1.062,95,0.142,96,0.925,99,0.581,101,0.007,103,0,104,0,105,0.732,107,0.819,111,2.384,112,2.92,144,0.935,145,1.433,148,1.059,165,0.27,167,2.677,187,0.49,192,1.02,217,1.575,221,2.24,227,1.169,234,1.541,247,1.358,277,2.806,305,0.985,329,1.008,347,1.132,359,1.926,371,1.531,380,1.687,381,1.126,398,1.002,404,1.006,450,1.408,461,2.748,496,3.738,510,2.48,529,1.51,558,1.627,591,1.463,592,1.51,595,1.182,596,3.568,661,2.34,701,2.449,844,1.551,851,2.727,852,2.727,853,2.823,854,4.477,878,3.867,884,2.624,885,4.414,915,1.884,964,2.34,1008,3.031,1014,3.961,1062,1.494,1114,2.254,1278,1.852,1857,2.998,2092,1.937,2185,3.144,2383,8.352,2385,3.942,2386,3.942,2387,3.942,2388,3.942,2389,3.867,2390,3.867,2391,3.942,2392,3.867,2393,3.942,2398,2.429,2400,4.612,2401,2.429,2403,2.429,2405,2.264,2406,3.942,2407,2.429,2409,2.429,2411,3.942,2415,3.942,2417,3.734,2418,3.867,2420,2.429,2422,2.087,2423,2.087,2424,2.429,2426,2.429,2428,3.942,2429,2.429,2432,3.31,2446,2.429,2447,2.537,2456,2.99,3110,3.909,3273,3.162,4092,2.34,4220,3.867,4227,1.178,4232,3.473,4355,2.198,4365,2.99,4369,2.861,4370,2.861,4539,2.674,4628,5.869,4630,2.887,5757,4.645,5766,2.48,5767,2.48,5768,2.48,5769,2.48,5770,2.48,5771,2.48,5772,2.48,5773,2.48,5774,2.48,5786,2.429,6487,2.087,6556,2.861,6775,4.981,6785,7.42,6805,2.537,6806,2.537,6844,2.23,6938,6.914,6942,5.726,6943,2.674,6945,2.759,6948,2.99,7633,2.382,8425,2.99,8779,3.162,8783,4.34,8789,2.99,8795,3.162,8796,4.853,8797,3.162,8927,6.304,9181,2.861,9182,3.162,9184,3.162,9185,3.162,9186,5.132,9187,3.162,9975,3.086,10640,2.861,11243,2.759,11244,2.759,11245,2.759,11694,3.798,12097,7.661,12099,4.34,12100,4.221,12101,4.117,12102,4.34,12106,2.861,13302,2.429,13337,4.645,13538,4.853,13542,4.853,13559,3.162,13566,3.162,13570,3.162,14359,3.162,15955,3.162,17406,2.759,17408,2.99,17409,2.99,19381,4.853,19383,4.853,20066,4.645,20067,10.012,20068,5.555,20069,5.132,20070,5.555,20071,3.423,20072,3.423,20073,7.455,20074,3.423,20075,3.423,20076,5.132,20077,3.423,20078,3.423,20079,3.423,20080,3.423,20081,3.423,20082,3.423,20083,3.162,20084,4.853,20085,3.423,20086,3.423,20087,3.423,20088,3.423,20089,3.423,20090,3.423,20091,3.162,20092,3.423,20093,3.423,20094,3.423,20095,3.162,20096,6.477,20097,3.423,20098,3.162,20099,3.423,20100,5.555,20101,3.423,20102,3.423,20103,3.423,20104,3.162,20105,3.423,20106,3.162,20107,3.162,20108,3.162,20109,3.162,20110,3.423,20111,3.423,20112,3.423,20113,3.423,20114,3.162,20115,3.162,20116,3.162,20117,3.162,20118,3.162,20119,3.423,20120,3.423,20121,3.423,20122,3.423,20123,3.423,20124,3.423,20125,3.423,20126,3.423,20127,3.423,20128,3.423,20129,3.423,20130,3.423,20131,3.423,20132,3.423]],["title/classes/UserDataResponse.html",[0,0.229,18314,5.639]],["body/classes/UserDataResponse.html",[0,0.303,2,1.024,3,0.024,4,0.024,5,0.013,7,0.137,27,0.526,29,0.707,30,0.001,31,0.5,32,0.178,33,0.446,39,3.493,47,0.966,95,0.114,101,0.017,103,0.001,104,0.001,127,1.405,165,0.877,364,2.242,376,2.088,415,4.86,467,3.623,851,6.397,852,6.397,966,4.559,9336,5.986,9338,5.986,18314,10.897,20133,13.034,20134,8.906,20135,8.906,20136,8.906,20137,8.906,20138,8.906]],["title/classes/UserDoFactory.html",[0,0.229,20139,6.23]],["body/classes/UserDoFactory.html",[0,0.166,2,0.56,3,0.013,4,0.013,5,0.007,7,0.075,8,0.884,26,1.528,27,0.535,29,1.032,30,0.001,31,0.708,32,0.187,33,0.623,34,1.51,35,1.479,47,0.533,49,1.9,55,2.514,59,3.256,95,0.135,99,0.827,101,0.009,103,0,104,0,127,0.617,138,4.249,144,3.214,148,1.507,165,0.579,185,4.874,216,1.354,217,0.967,227,0.773,234,0.79,329,3.465,359,2.54,366,2.683,379,2.028,380,1.84,381,2.41,404,1.327,461,1.123,538,3.284,596,3.873,627,2.28,660,7.022,661,4.643,662,5.487,665,4.106,666,5.487,667,5.523,668,4.106,669,4.106,670,4.106,671,4.032,672,4.472,673,4.934,674,6.419,675,5.776,676,6.91,677,2.758,682,2.732,683,4.106,684,2.758,685,5.125,686,5.34,687,4.54,688,5.166,689,4.069,690,2.732,691,2.552,692,4.106,693,2.659,694,2.614,695,2.732,696,5.047,697,2.758,698,4.845,699,2.732,700,7.071,701,4.108,702,6.595,703,2.758,704,3.619,705,2.732,706,2.758,707,2.732,708,2.758,709,2.732,712,2.732,713,6.067,714,2.758,715,2.732,716,4.106,717,4.032,718,4.106,719,2.758,720,2.636,721,2.614,722,2.149,723,2.732,724,2.732,725,2.732,726,2.758,727,2.758,728,1.908,729,2.732,730,2.758,731,2.88,732,2.732,733,2.758,734,2.813,735,2.813,737,2.904,851,2.392,852,2.392,853,2.476,1857,2.084,3110,4.263,4227,1.677,4335,6.245,4337,3.531,4538,4.145,6938,2.758,6943,3.807,7599,4.257,12355,4.257,18325,4.257,18327,4.257,20139,8.13,20140,4.873,20141,7.325,20142,7.325,20143,4.873,20144,4.873]],["title/classes/UserDto.html",[0,0.229,20145,5.639]],["body/classes/UserDto.html",[0,0.234,2,0.791,3,0.018,4,0.018,5,0.01,7,0.106,26,2.503,27,0.566,29,0.547,30,0.001,31,0.386,32,0.191,33,0.691,34,1.831,47,0.979,83,3.45,95,0.088,99,1.167,101,0.013,103,0.001,104,0.001,127,0.871,144,2.564,165,0.741,329,2.764,347,1.911,380,1.439,461,2.162,618,2.927,722,3.035,738,3.972,851,5.24,852,5.24,853,5.425,854,5.387,1291,3.992,4220,7.431,4221,8.112,4227,3.675,4232,6.674,4304,4.056,4316,5.1,6744,4.1,6949,5.753,9336,4.625,9338,4.625,9340,5.228,12099,8.34,12100,8.112,12101,7.913,12102,8.34,12107,5.753,12109,5.753,12111,5.753,12113,5.753,12115,5.753,12173,5.228,12658,6.011,13139,5.1,13140,4.986,14473,6.356,17647,6.356,20145,10.033,20146,6.881,20147,9.863,20148,9.383,20149,6.881,20150,6.881,20151,6.881,20152,6.881,20153,6.881,20154,6.881,20155,6.881,20156,6.881,20157,6.881,20158,6.881,20159,6.881,20160,6.881,20161,6.881,20162,6.881,20163,6.881,20164,6.881,20165,6.881,20166,6.011,20167,6.881,20168,6.881]],["title/classes/UserFactory.html",[0,0.229,848,4.786]],["body/classes/UserFactory.html",[0,0.137,2,0.462,3,0.011,4,0.011,5,0.006,7,0.062,8,0.762,27,0.534,29,1.027,30,0.001,31,0.715,32,0.184,33,0.626,34,1.339,35,1.372,47,0.459,55,2.348,59,2.984,95,0.137,99,0.682,101,0.008,103,0,104,0,127,0.509,138,2.743,144,3.242,148,1.244,165,0.499,185,4.901,192,1.199,216,1.168,217,1.593,227,1.077,329,3.495,359,2.191,366,2.213,379,1.798,380,2.01,381,2.079,404,1.144,461,1.798,496,5.154,538,2.832,596,3.714,627,1.967,660,6.956,661,4.3,662,4.959,665,3.542,666,4.959,667,5.339,668,3.542,669,3.542,670,3.542,671,3.478,672,3.966,673,4.376,674,6.034,675,5.293,676,6.715,677,2.276,682,2.254,683,3.542,684,2.276,685,4.632,686,4.827,687,4.103,688,4.669,689,3.51,690,2.254,691,2.106,692,3.802,693,2.194,694,2.157,695,2.254,696,4.562,697,2.276,698,4.297,699,2.254,700,7.084,701,3.861,702,6.199,703,2.276,704,3.857,705,2.254,706,2.276,707,2.254,708,2.276,709,2.254,710,2.547,711,2.396,712,2.254,713,5.619,714,2.276,715,2.254,716,3.542,717,3.478,718,3.542,719,2.276,720,2.175,721,2.157,722,1.773,723,2.254,724,2.254,725,2.254,726,2.276,727,2.276,728,1.574,729,2.254,730,2.276,731,2.485,732,2.254,733,2.276,735,2.321,736,2.396,737,5.729,843,5.08,845,2.853,846,2.853,848,5.539,851,1.973,852,1.973,853,2.043,862,8.533,865,5.283,871,5.283,875,5.283,1916,5.171,2232,5.837,3110,4.944,4538,5.006,6613,3.141,6614,3.241,6622,3.141,12097,3.241,12355,3.513,18325,3.513,18327,3.513,19365,3.714,19369,8.172,20169,4.021,20170,6.319,20171,6.319,20172,6.319,20173,6.319,20174,4.021,20175,4.021,20176,4.021,20177,6.319,20178,4.021,20179,6.319,20180,4.021,20181,6.319,20182,6.319,20183,6.319,20184,4.021,20185,4.021,20186,7.805,20187,4.021]],["title/classes/UserForGroupNotFoundLoggable.html",[0,0.229,15928,5.892]],["body/classes/UserForGroupNotFoundLoggable.html",[0,0.302,2,1.022,3,0.024,4,0.024,5,0.013,7,0.137,8,1.338,27,0.461,29,0.706,30,0.001,31,0.499,32,0.125,33,0.445,35,1.072,95,0.142,100,2.974,101,0.017,103,0.001,104,0.001,127,1.125,163,2.802,214,3.661,215,2.876,216,1.643,227,0.938,461,2.048,1062,3.878,1277,6.528,1327,3.509,1542,5.64,1543,6.281,1545,2.838,1547,6.297,1724,4.982,3060,6.306,4538,5.029,6896,5.707,8137,6.281,8138,6.539,8278,9.888,8291,5.973,10577,8.426,10705,6.439,15928,9.687,17530,8.209,17532,8.209,17533,8.209,20188,12.087,20189,8.886,20190,8.886,20191,8.886]],["title/classes/UserInfoMapper.html",[0,0.229,14683,5.892]],["body/classes/UserInfoMapper.html",[0,0.322,2,1.089,3,0.025,4,0.025,5,0.013,7,0.146,8,1.392,27,0.394,29,0.752,30,0.001,31,0.532,32,0.133,33,0.474,34,1.625,35,1.143,95,0.148,99,1.607,100,3.86,101,0.018,103,0.001,104,0.001,217,1.251,227,1,234,1.536,461,3.057,627,3.871,738,5.467,851,4.649,852,4.649,975,6.591,982,4.745,13139,7.02,13140,6.863,14654,10.433,14683,10.075,16681,10.075,17567,8.274,17569,8.274,20192,11.534]],["title/classes/UserInfoResponse.html",[0,0.229,14654,5.437]],["body/classes/UserInfoResponse.html",[0,0.281,2,0.951,3,0.022,4,0.022,5,0.012,7,0.127,27,0.512,29,0.657,30,0.001,31,0.715,32,0.173,33,0.638,34,2.274,47,0.948,95,0.106,101,0.016,103,0.001,104,0.001,127,1.34,165,0.837,364,2.166,375,4.742,376,1.938,379,2.84,380,2.215,461,3.004,467,2.847,475,4.141,575,6.312,618,3.517,851,6.255,852,6.255,966,4.231,1145,8.856,1480,5.938,2254,6.663,2909,5.556,2910,5.78,2911,5.78,9336,5.556,9338,5.556,14654,10.274,17574,7.221,20193,12.745,20194,8.266,20195,7.636,20196,8.266]],["title/entities/UserLoginMigration.html",[380,1.41,4457,4.065]],["body/entities/UserLoginMigration.html",[0,0.233,3,0.018,4,0.018,5,0.01,7,0.105,27,0.526,30,0.001,32,0.181,33,0.645,83,3.878,95,0.147,96,1.853,101,0.018,103,0.001,104,0.001,145,2.75,165,0.74,192,3.177,216,1.268,240,3.876,355,5.068,364,2.346,369,2.841,370,4.224,371,2.579,380,1.957,381,2.256,386,6.09,398,2.008,399,3.665,400,3.009,402,2.821,404,1.242,405,1.853,406,2.197,844,5.191,1114,5.137,1717,4.404,2683,7.312,4457,5.641,4926,4.915,6429,4.287,6430,4.133,6627,6.291,10657,4.773,16034,8.591,16035,8.591,17340,6.335,17627,8.098,20197,12.89,20198,6.857,20199,8.326,20200,8.591,20201,8.326,20202,6.857,20203,6.857,20204,6.857,20205,6.857,20206,6.857,20207,6.857,20208,6.857,20209,6.857,20210,8.647,20211,6.857,20212,6.857,20213,6.857,20214,6.857,20215,6.857,20216,6.857,20217,5.99,20218,5.99,20219,5.99,20220,5.99,20221,5.99,20222,5.99,20223,5.99,20224,5.99]],["title/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.229,18153,5.437]],["body/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.279,2,0.945,3,0.022,4,0.022,5,0.012,7,0.126,8,1.273,26,2.566,27,0.438,29,0.652,30,0.001,31,0.461,32,0.148,33,0.411,35,0.991,52,5.705,83,3.506,95,0.15,99,1.393,101,0.016,103,0.001,104,0.001,111,1.643,127,1.04,163,2.59,187,1.176,192,2.449,214,3.484,215,2.659,216,1.95,227,0.867,355,5.119,404,1.911,406,2.632,795,7.249,1327,3.244,1542,5.439,1543,6.057,1545,2.624,1547,6.119,1555,5.135,4442,5.141,8137,6.057,8138,6.306,8530,5.276,8532,5.952,8537,4.842,8538,5.071,8836,7.485,10022,6.418,11720,8.113,13507,6.418,17674,6.622,18153,8.505,18993,6.622,20199,9.608,20225,9.745,20226,11.656,20227,7.589,20228,8.215,20229,8.215]],["title/modules/UserLoginMigrationApiModule.html",[425,1.808,17762,5.437]],["body/modules/UserLoginMigrationApiModule.html",[0,0.235,3,0.018,4,0.018,5,0.01,30,0.001,52,3.208,95,0.173,101,0.013,103,0.001,104,0.001,187,0.99,191,3.842,192,2.062,206,3.54,349,4.575,355,4.519,425,2.869,427,2.556,428,2.696,429,2.78,430,2.768,431,2.743,432,3.957,433,2.608,438,5.858,442,3.785,443,2.72,444,2.651,446,4.381,447,3.947,449,3.785,461,1.594,1545,2.209,1585,8.204,1624,9.689,1945,6.71,1951,7.965,2767,3.118,2769,3.417,4441,10.37,4442,3.051,10099,5.403,13436,9.424,15070,5.403,15230,9.689,16021,10.37,16701,10.37,17762,11.452,17783,5.782,18145,10.37,19474,10.37,20230,6.916,20231,6.916,20232,6.916,20233,9.998,20234,9.351,20235,9.351,20236,9.416,20237,9.416,20238,6.916]],["title/controllers/UserLoginMigrationController.html",[481,2.629,20235,5.892]],["body/controllers/UserLoginMigrationController.html",[0,0.11,3,0.009,4,0.009,5,0.005,7,0.05,8,0.642,27,0.407,29,0.777,30,0.001,31,0.55,32,0.19,33,0.49,35,1.181,36,2.556,47,0.492,52,6.176,55,1.17,95,0.146,99,0.551,100,1.086,101,0.006,103,0,104,0,111,1.725,112,2.829,127,0.411,145,1.373,185,3.629,187,0.465,192,2.331,204,1.113,206,1.662,216,1.595,217,1.554,221,2.307,227,0.978,234,0.526,264,2.252,355,5.374,364,1.814,376,0.761,379,2.926,447,1.361,461,3.1,481,1.265,483,1.562,491,6.232,498,2.219,511,5.231,513,6.179,529,2.347,543,5.3,549,3.703,553,3.326,555,1.713,556,1.756,557,1.771,559,1.771,561,1.771,563,2.003,564,1.974,694,1.741,728,2.083,774,3.637,795,6.023,1014,2.611,1016,2.792,1114,2.158,1510,3.326,1555,4.888,1661,3.466,1683,4.608,2578,5.094,2744,2.372,2769,1.604,2955,1.837,3710,5.201,4038,2.003,4441,5.652,4442,4.507,4445,4.648,4455,6.286,4457,5.201,4459,6.108,4460,5.941,4630,4.063,5378,2.182,6637,3.855,9401,4.888,12285,4.915,13257,3.855,13463,7.538,13464,7.573,13465,5.941,13469,8.237,13474,4.797,14501,4.648,14622,6.537,14925,4.289,15148,6.83,16701,5.652,16703,4.648,17549,6.108,17623,6.537,17624,6.537,17626,6.83,17671,4.448,18145,5.652,18148,4.648,18153,6.303,18538,2.998,18993,8.776,19474,5.652,19476,5.906,19541,7.647,19548,2.998,19609,8.543,20017,2.835,20233,5.45,20235,4.648,20239,9.439,20240,2.998,20241,5.32,20242,6.245,20243,6.245,20244,6.761,20245,3.246,20246,3.246,20247,9.439,20248,5.32,20249,5.32,20250,3.246,20251,3.246,20252,6.761,20253,3.246,20254,3.246,20255,3.246,20256,9.27,20257,3.246,20258,3.246,20259,3.246,20260,6.537,20261,3.246,20262,3.246,20263,3.246,20264,3.246,20265,3.246,20266,3.246,20267,3.246,20268,3.246,20269,3.246,20270,3.246,20271,5.32,20272,6.537,20273,3.246,20274,3.246,20275,3.246,20276,6.83,20277,3.246,20278,3.246,20279,3.246,20280,4.915,20281,3.246,20282,3.246,20283,3.246,20284,3.246,20285,3.246,20286,3.246,20287,6.761,20288,2.835,20289,6.303,20290,9.176,20291,6.83,20292,3.246,20293,3.246,20294,3.246,20295,3.246,20296,3.246,20297,3.246,20298,3.246,20299,3.246,20300,3.246,20301,5.32,20302,5.32,20303,3.246,20304,6.761,20305,3.246,20306,3.246,20307,3.246,20308,3.246,20309,3.246,20310,3.246,20311,6.761,20312,3.246,20313,3.246,20314,3.246,20315,3.246,20316,3.246,20317,3.246,20318,3.246,20319,3.246,20320,3.246,20321,3.246,20322,3.246,20323,3.246,20324,3.246]],["title/classes/UserLoginMigrationDO.html",[0,0.229,4455,4.331]],["body/classes/UserLoginMigrationDO.html",[0,0.26,2,0.878,3,0.02,4,0.02,5,0.011,7,0.118,26,2.715,27,0.555,29,0.607,30,0.001,31,0.429,32,0.188,33,0.68,34,1.726,47,0.555,83,3.973,95,0.129,101,0.015,103,0.001,104,0.001,127,0.967,165,0.795,208,2.834,355,5.254,404,1.822,405,2.719,595,2.639,596,2.319,1939,6.904,4227,3.874,4304,4.502,4305,5.661,4455,7.982,5612,5.534,5616,5.804,7036,5.804,17599,8.341,17627,8.551,20199,8.791,20200,9.072,20201,8.791,20217,6.673,20218,6.673,20219,6.673,20220,6.673,20221,6.673,20222,6.673,20223,6.673,20224,6.673,20325,13.362,20326,7.638,20327,8.791,20328,10.063,20329,7.638,20330,7.638,20331,7.638,20332,7.638,20333,7.638,20334,7.638,20335,7.056,20336,7.056,20337,7.056,20338,7.056]],["title/classes/UserLoginMigrationError.html",[0,0.229,20339,5.892]],["body/classes/UserLoginMigrationError.html",[0,0.26,2,0.878,3,0.02,4,0.02,5,0.011,7,0.118,8,1.214,27,0.541,29,0.607,30,0.001,31,0.429,32,0.189,33,0.563,35,0.922,47,0.818,52,5.22,55,1.68,59,2.37,95,0.129,101,0.015,103,0.001,104,0.001,127,0.967,165,0.795,187,1.093,204,4.103,216,2.493,355,4.703,364,2.303,404,1.822,406,2.448,461,1.76,558,3.63,564,2.834,596,3.875,798,6.29,1013,5.484,1016,2.727,1253,5.19,1291,5.089,1327,4.444,1472,8.247,1473,7.103,1474,4.06,1475,7.227,1479,4.976,1480,4.282,1481,4.976,1482,4.976,1483,4.976,1484,4.976,1485,4.976,1486,4.658,1487,4.365,1493,4.838,4442,4.438,6706,4.775,6896,4.905,8536,6.386,13247,5.661,13282,8.413,17552,6.673,20225,8.413,20339,8.791,20340,7.638]],["title/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.229,4459,5.269]],["body/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.276,2,0.935,3,0.022,4,0.022,5,0.011,7,0.125,8,1.265,26,2.556,27,0.436,29,0.646,30,0.001,31,0.457,32,0.147,33,0.407,35,0.981,52,5.684,83,3.49,95,0.149,99,1.379,101,0.016,103,0.001,104,0.001,111,1.626,127,1.029,163,2.564,187,1.164,214,3.461,215,2.632,216,1.938,227,0.858,355,5.194,404,1.898,406,2.606,461,1.874,1327,3.212,1542,5.413,1543,6.028,1545,2.597,1547,6.096,4442,5.116,4459,8.189,8137,6.028,8138,6.275,8537,4.793,8538,5.02,8836,7.449,11720,8.074,13507,6.353,14501,7.104,17623,10.244,17624,10.244,17625,7.512,17626,10.703,17627,9.31,20225,9.698,20227,7.512,20341,8.132,20342,8.132,20343,8.132,20344,8.132,20345,8.132]],["title/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.229,19481,5.892]],["body/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.283,2,0.957,3,0.022,4,0.022,5,0.012,7,0.128,8,1.283,26,2.77,27,0.442,29,0.661,30,0.001,31,0.467,32,0.117,33,0.416,35,1.004,39,3.142,52,5.732,95,0.136,99,1.411,101,0.016,103,0.001,104,0.001,111,2.344,127,1.346,163,2.622,192,3.17,214,3.511,216,2.167,227,0.878,347,2.388,355,5.221,415,4.538,461,1.916,540,6.026,564,3.086,1327,3.285,1542,5.47,1543,6.092,1545,2.656,1547,6.147,4442,5.171,8137,6.092,8138,6.343,10022,6.497,10368,6.705,11285,9.158,11720,8.6,12938,7.266,13507,6.497,19481,9.29,20346,10.83,20347,8.317,20348,8.317,20349,8.317,20350,8.317]],["title/classes/UserLoginMigrationMandatoryParams.html",[0,0.229,20276,5.892]],["body/classes/UserLoginMigrationMandatoryParams.html",[0,0.401,2,1.129,3,0.026,4,0.026,5,0.014,7,0.151,27,0.408,30,0.001,32,0.138,52,5.468,95,0.151,101,0.019,103,0.001,104,0.001,165,0.931,347,2.401,355,5.151,364,1.819,373,6.222,374,3.136,376,2.302,467,3.168,4442,5.199,7186,7.461,11285,9.362,20276,10.297,20351,10.889,20352,9.819,20353,9.819]],["title/classes/UserLoginMigrationMapper.html",[0,0.229,20288,5.892]],["body/classes/UserLoginMigrationMapper.html",[0,0.282,2,0.955,3,0.022,4,0.022,5,0.012,7,0.128,8,1.282,27,0.441,29,0.844,30,0.001,31,0.596,32,0.149,33,0.531,35,1.282,39,2.224,52,3.85,95,0.15,99,1.408,101,0.016,103,0.001,104,0.001,217,1.403,227,1.121,234,1.346,355,5.218,529,5.166,627,4.064,982,4.158,1016,3.792,1857,3.549,4442,5.166,4455,7.929,17599,6.152,17627,6.307,20199,6.484,20200,6.691,20201,6.484,20260,10.322,20288,9.278,20289,9.953,20290,10.287,20327,6.484,20354,11.712,20355,7.667,20356,10.621,20357,10.621,20358,10.621,20359,8.3,20360,8.3,20361,10.621,20362,8.3,20363,8.3,20364,8.3,20365,8.3,20366,8.3,20367,8.3,20368,8.3,20369,8.3,20370,8.3]],["title/modules/UserLoginMigrationModule.html",[425,1.808,13436,5.125]],["body/modules/UserLoginMigrationModule.html",[0,0.237,3,0.019,4,0.019,5,0.01,30,0.001,95,0.166,101,0.013,103,0.001,104,0.001,187,0.999,191,3.875,192,2.08,355,3.724,425,2.882,427,2.578,428,2.72,429,2.804,430,2.792,431,2.767,432,3.974,433,4.054,437,8.824,438,5.873,442,3.807,443,2.743,444,2.674,449,3.807,450,2.87,766,2.998,1545,2.228,1626,8.824,1642,6.094,1645,5.17,1951,7.986,4442,3.077,4448,9.573,4449,9.999,4450,10.875,4551,8.102,4561,3.712,13436,10.813,14459,11.279,14463,9.714,15046,10.539,17783,5.833,20371,6.976,20372,6.976,20373,6.976,20374,6.976,20375,6.976]],["title/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.229,4460,5.125]],["body/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.28,2,0.949,3,0.022,4,0.022,5,0.012,7,0.127,8,1.276,26,2.764,27,0.44,29,0.655,30,0.001,31,0.463,32,0.148,33,0.413,35,0.995,52,5.714,59,2.56,95,0.15,99,1.399,101,0.016,103,0.001,104,0.001,111,1.649,127,1.044,163,2.601,187,1.181,192,2.459,214,3.493,215,2.669,216,1.956,227,0.871,355,5.211,404,1.916,406,2.643,461,1.901,1327,3.258,1542,5.449,1543,6.069,1545,2.635,1547,6.128,2686,6.214,4227,4.02,4304,4.862,4442,5.151,4460,8.038,4630,4.287,5453,5.544,8137,6.069,8138,6.318,8530,5.297,8532,5.977,8537,4.862,8538,5.092,11720,8.574,13507,6.444,14973,10.788,17673,7.62,17674,6.65,20225,9.764,20376,8.249]],["title/interfaces/UserLoginMigrationQuery.html",[334,0.742,20289,5.437]],["body/interfaces/UserLoginMigrationQuery.html",[3,0.027,4,0.027,5,0.015,7,0.158,30,0.001,32,0.144,33,0.607,39,3.566,47,0.937,52,4.776,101,0.02,103,0.001,104,0.001,165,0.958,334,1.133,336,2.508,355,4.767,4442,4.541,9069,9.511,20289,9.774,20377,10.296]],["title/injectables/UserLoginMigrationRepo.html",[105,0.889,14463,5.269]],["body/injectables/UserLoginMigrationRepo.html",[0,0.161,3,0.013,4,0.013,5,0.007,7,0.073,8,0.864,10,2.892,12,3.303,18,3.539,26,2.614,27,0.541,29,1.026,30,0.001,31,0.725,32,0.181,33,0.646,34,1.654,35,1.545,36,2.593,40,2.276,95,0.145,96,1.935,97,2.012,99,0.802,101,0.009,103,0,104,0,105,0.944,107,1.132,111,2.331,112,2.897,127,0.599,145,1.22,148,1.463,165,0.374,167,2.734,187,0.677,192,2.135,216,1.324,217,1.273,221,1.115,227,1.15,234,1.162,355,4.073,359,2.483,380,2.016,398,1.385,404,1.297,595,1.634,596,3.849,661,3.641,844,2.144,878,4.985,884,3.383,885,5.153,915,2.604,1052,3.929,1053,4.275,1114,1.919,1545,1.511,1857,3.696,2092,2.677,2383,8.9,2385,5.082,2386,5.082,2387,5.082,2388,5.082,2389,4.985,2390,4.985,2391,5.082,2392,4.985,2393,5.082,2394,3.427,2395,5.509,2397,5.189,2398,3.356,2400,5.509,2401,3.356,2403,3.356,2405,3.129,2406,5.082,2407,3.356,2409,3.356,2411,5.082,2415,5.082,2417,4.814,2418,4.985,2420,3.356,2422,2.884,2423,2.884,2424,3.356,2426,3.356,2428,3.356,2429,3.356,2435,3.179,4227,2.975,4355,3.037,4455,8.047,4457,7.333,5766,3.427,5767,3.427,5768,3.427,5769,3.427,5770,3.427,5771,3.427,5772,5.189,5773,3.427,5774,3.427,5782,3.594,8781,3.594,11696,3.813,11697,3.813,13548,4.369,13575,6.616,14463,5.595,16034,3.813,16035,3.813,17387,6.616,17397,6.616,17406,3.813,17408,4.132,17409,4.132,17599,3.506,17627,5.442,20199,5.595,20200,5.773,20201,5.595,20210,10.456,20327,3.695,20378,9.64,20379,4.73,20380,4.73,20381,4.73,20382,4.73,20383,4.73,20384,4.73,20385,4.73,20386,4.73,20387,4.73,20388,4.73,20389,4.73,20390,4.73,20391,4.73,20392,4.73,20393,4.73,20394,7.162,20395,7.162,20396,4.73,20397,4.73,20398,4.73,20399,4.73,20400,4.73]],["title/classes/UserLoginMigrationResponse.html",[0,0.229,20290,5.437]],["body/classes/UserLoginMigrationResponse.html",[0,0.231,2,0.781,3,0.018,4,0.018,5,0.01,7,0.104,27,0.525,29,0.539,30,0.001,31,0.381,32,0.177,33,0.653,34,1.956,47,0.829,52,6.23,83,4.132,95,0.087,101,0.013,103,0.001,104,0.001,127,0.859,165,0.734,355,5.401,364,2.285,368,3.671,375,4.845,376,1.592,379,2.842,405,2.512,467,2.849,595,2.345,1013,4.262,1114,4.625,1480,6.392,1555,5.811,2115,7.494,2744,4.144,3247,6.872,4442,5.671,7779,8.121,10000,7.494,17599,7.857,17623,7.772,17624,7.772,17627,8.055,20199,8.282,20200,8.546,20201,8.282,20217,5.93,20218,5.93,20219,5.93,20220,5.93,20221,5.93,20222,5.93,20223,5.93,20224,5.93,20290,9.628,20327,8.282,20335,6.271,20336,6.271,20337,6.271,20338,6.271,20401,11.879,20402,6.271,20403,9.296,20404,6.788,20405,6.788,20406,6.788,20407,6.788,20408,6.788]],["title/injectables/UserLoginMigrationRevertService.html",[105,0.889,4450,5.437]],["body/injectables/UserLoginMigrationRevertService.html",[0,0.291,3,0.023,4,0.023,5,0.012,7,0.131,8,1.306,27,0.45,29,0.859,30,0.001,31,0.607,32,0.152,33,0.541,35,1.031,36,2.351,52,5.508,95,0.16,99,1.45,101,0.016,103,0.001,104,0.001,105,1.426,107,2.045,111,2.163,112,2.662,127,1.369,129,7.704,132,7.625,187,1.223,191,4.747,192,2.548,216,2,221,2.55,355,5.253,461,1.969,4442,5.237,4447,6.89,4448,9.334,4450,8.723,4455,8.015,4457,5.151,11695,5.949,12841,7.146,15940,7.466,20409,10.372,20410,8.547,20411,10.82,20412,8.547,20413,10.82,20414,8.547,20415,8.547,20416,8.547]],["title/injectables/UserLoginMigrationRule.html",[105,0.889,1974,5.639]],["body/injectables/UserLoginMigrationRule.html",[0,0.265,3,0.021,4,0.021,5,0.011,7,0.12,8,1.231,27,0.472,29,0.903,30,0.001,31,0.638,32,0.16,33,0.569,35,1.231,95,0.161,101,0.015,103,0.001,104,0.001,105,1.345,107,1.867,116,4.155,127,0.987,187,1.117,199,4.34,214,2.576,215,2.525,216,1.442,217,1.348,227,1.077,347,2.616,355,4.742,380,2.774,461,3.091,806,3.286,1857,3.336,1862,6.639,1890,8.132,1928,7.444,1974,8.53,1989,6.298,2033,6.647,2056,5.243,3352,6.858,3353,5.333,3356,6.749,3358,5.333,3359,5.243,3360,6.975,3361,5.928,4455,8.52,5868,5.652,17451,7.207,20417,12.06,20418,7.801,20419,7.801,20420,7.801,20421,7.801]],["title/classes/UserLoginMigrationSearchListResponse.html",[0,0.229,20291,5.892]],["body/classes/UserLoginMigrationSearchListResponse.html",[0,0.261,2,0.882,3,0.02,4,0.02,5,0.011,7,0.118,27,0.517,29,0.609,30,0.001,31,0.43,32,0.188,33,0.623,52,4.68,55,3.054,56,6.149,59,3.13,70,6.401,95,0.145,101,0.015,103,0.001,104,0.001,127,0.97,145,1.978,163,3.924,165,0.797,355,4.894,364,2.219,376,1.798,404,1.827,461,1.767,467,2.711,469,3.382,596,3.637,1005,7.477,1006,5.441,1007,8.04,1008,6.972,1009,5.765,1011,4.08,1013,5.169,1014,3.763,1015,4.259,1016,2.738,1017,5.441,1018,6.572,1019,5.883,1020,5.072,1021,4.08,1022,5.441,1023,5.441,1025,4.856,1026,4.259,4442,4.449,9062,7.083,9063,7.083,15727,7.083,20290,10.5,20291,8.813,20401,9.319]],["title/classes/UserLoginMigrationSearchParams.html",[0,0.229,20260,5.639]],["body/classes/UserLoginMigrationSearchParams.html",[0,0.398,2,1.118,3,0.026,4,0.026,5,0.014,7,0.15,27,0.404,30,0.001,32,0.136,33,0.586,39,3.371,47,0.852,52,5.436,95,0.15,101,0.019,103,0.001,104,0.001,165,0.926,355,5.134,364,1.802,374,3.106,375,4.754,376,2.28,470,4.937,471,4.986,4442,5.168,9064,8.494,9067,8.494,20260,9.797,20351,10.825,20422,9.724]],["title/injectables/UserLoginMigrationService.html",[105,0.889,4448,4.786]],["body/injectables/UserLoginMigrationService.html",[0,0.23,3,0.009,4,0.009,5,0.005,7,0.05,8,0.642,26,2.207,27,0.473,29,0.904,30,0.001,31,0.639,32,0.16,33,0.57,35,1.346,36,2.677,39,0.871,47,0.896,48,1.525,55,1.488,59,2.099,83,2.946,95,0.136,99,0.551,101,0.006,102,1.639,103,0,104,0,105,0.702,107,0.777,111,2.353,112,2.957,127,0.674,129,4.829,132,4.344,145,2.938,148,1.005,167,3.902,187,0.465,189,5.932,191,1.804,192,2.017,204,1.826,216,1.596,217,1.666,221,3.028,227,1.177,234,1.909,235,1.838,264,3.312,305,2.668,347,2.361,355,5.103,369,0.716,450,1.336,571,2.031,574,2.413,1062,1.418,1114,1.318,1439,1.554,1645,2.408,2171,1.396,2172,1.554,2173,1.498,2478,3.042,3565,2.838,3898,1.773,4227,3.989,4442,5.111,4445,4.651,4448,3.778,4449,7.258,4455,8.251,4457,7.654,4460,2.468,4462,5.655,4464,5.284,4467,5.013,4468,4.651,4561,1.729,4630,1.688,5512,2.468,6793,3.706,6938,4.427,8836,2.086,11285,5.798,11695,2.261,12145,5.655,12168,2.716,12600,5.453,12841,2.716,13173,2.716,13449,5.909,13521,7.046,13522,7.046,13523,7.767,13620,3.001,13629,7.975,13635,3.001,13636,4.292,13642,2.716,13643,7.226,14219,2.619,14463,7.65,14468,2.619,14469,4.918,15045,7.095,15072,5.258,15940,2.838,16466,2.619,16703,4.651,17209,3.778,17594,3.001,17599,2.408,17640,6.249,17641,3.001,17659,4.918,18148,4.651,18602,2.538,18703,3.001,18736,3.001,19476,4.651,20201,2.538,20327,4.159,20409,10.123,20423,5.324,20424,5.324,20425,5.324,20426,5.324,20427,5.324,20428,5.324,20429,5.324,20430,3.249,20431,5.324,20432,3.249,20433,5.324,20434,3.249,20435,5.324,20436,3.249,20437,5.324,20438,3.249,20439,5.324,20440,3.249,20441,5.324,20442,3.249,20443,4.451,20444,3.001,20445,5.324,20446,3.249,20447,5.324,20448,3.249,20449,5.324,20450,3.249,20451,5.324,20452,5.324,20453,5.324,20454,5.324,20455,6.764,20456,2.619,20457,3.249,20458,5.324,20459,5.324,20460,5.324,20461,3.249,20462,5.324,20463,3.249,20464,5.324,20465,3.249,20466,3.249,20467,3.249,20468,5.324,20469,3.249,20470,3.249,20471,3.249,20472,3.249,20473,5.324,20474,3.249,20475,3.249,20476,3.249,20477,5.324,20478,4.918,20479,3.249]],["title/classes/UserLoginMigrationStartLoggable.html",[0,0.229,16708,5.639]],["body/classes/UserLoginMigrationStartLoggable.html",[0,0.292,2,0.989,3,0.023,4,0.023,5,0.012,7,0.132,8,1.311,26,2.791,27,0.451,29,0.683,30,0.001,31,0.483,32,0.121,33,0.43,35,1.038,39,3.191,52,5.803,95,0.139,99,1.459,101,0.016,103,0.001,104,0.001,111,1.72,127,1.088,163,2.712,192,3.239,214,3.587,215,2.784,216,2.008,227,0.908,355,5.181,415,4.694,540,6.232,1327,3.397,1542,5.557,1543,6.188,1545,2.747,1547,6.224,1555,5.377,4442,5.252,8137,6.188,8138,6.443,10368,6.934,11720,8.707,13507,6.719,16708,9.083,17561,7.946,17562,7.946,20346,11.001,20480,8.602]],["title/injectables/UserLoginMigrationUc.html",[105,0.889,20233,5.437]],["body/injectables/UserLoginMigrationUc.html",[0,0.128,3,0.01,4,0.01,5,0.005,7,0.058,8,0.722,26,2.51,27,0.412,29,0.787,30,0.001,31,0.556,32,0.139,33,0.496,34,0.644,35,1.122,36,2.345,39,2.893,47,0.967,52,2.776,59,2.642,95,0.158,99,0.637,100,1.257,101,0.007,103,0,104,0,105,0.789,107,0.898,111,2.328,112,2.658,127,0.757,145,1.926,148,1.161,163,2.932,167,2.849,187,0.537,189,5.213,192,3.099,204,2.92,216,1.995,217,1.373,221,2.688,227,0.788,234,1.751,247,1.489,305,2.85,349,2.484,355,4.901,461,2.143,511,1.922,529,3.291,549,4.166,564,1.393,766,1.614,784,1.982,806,1.582,843,1.639,905,1.559,954,2.783,1014,4.564,1052,3.041,1053,3.775,1062,1.639,1158,1.998,1253,3.926,1291,1.597,1327,2.947,1473,3.42,1500,4.023,1545,1.199,1627,7.705,1819,2.411,1865,3.134,1866,2.125,1881,2.378,1919,2.485,1952,5.577,1993,4.091,2037,2.167,2344,2.473,2579,2.664,2767,1.692,2880,4.071,3544,2.485,3830,2.378,3832,2.524,4227,3.411,4442,4.585,4444,3.027,4448,7.377,4449,7.705,4455,4.792,4457,5.972,4461,2.933,4463,3.468,4582,3.027,4640,6.987,8291,2.524,8300,3.741,9713,2.72,10380,3.139,10705,2.72,10721,3.139,10722,3.468,10854,5.004,10933,7.899,10953,4.336,11083,5.191,11616,6.169,12590,3.28,12617,6.473,12649,7.496,13352,5.529,13474,5.296,14039,3.468,14468,3.027,14925,4.825,14988,4.825,15044,8.121,15046,7.741,15070,2.933,15071,3.28,15086,3.027,15104,3.139,15157,3.468,15163,3.28,15164,3.28,15325,5.529,15475,2.933,15735,3.027,15815,3.468,15818,5.529,15823,3.468,15836,3.28,15837,8.656,15838,3.468,15839,5.529,15840,5.529,15842,3.468,15843,3.468,15932,3.468,15997,3.468,16010,4.675,16033,5.228,16034,6.863,16035,8.38,16036,7.437,16042,3.28,17577,3.28,17599,8.919,20233,4.825,20242,5.529,20243,5.529,20289,6.863,20339,5.228,20481,10.396,20482,5.529,20483,7.463,20484,3.755,20485,3.755,20486,5.985,20487,3.755,20488,5.985,20489,3.755,20490,5.529,20491,3.755,20492,3.755,20493,3.755,20494,3.755,20495,3.755,20496,7.463,20497,3.755,20498,3.755,20499,3.755,20500,3.755,20501,3.755,20502,8.514,20503,3.755,20504,3.755,20505,5.985,20506,3.468,20507,3.468,20508,3.755,20509,5.985,20510,5.985,20511,5.985,20512,3.755,20513,3.755,20514,3.755,20515,3.755,20516,3.755,20517,3.755,20518,3.755,20519,9.3,20520,3.755,20521,5.985,20522,3.755]],["title/classes/UserMapper.html",[0,0.229,20523,5.892]],["body/classes/UserMapper.html",[0,0.309,2,1.045,3,0.024,4,0.024,5,0.013,7,0.14,8,1.357,27,0.378,29,0.722,30,0.001,31,0.51,32,0.128,33,0.455,34,1.559,35,1.096,95,0.144,99,1.541,101,0.017,103,0.001,104,0.001,227,0.959,234,1.474,380,1.9,461,2.939,496,4.737,627,3.801,851,4.46,852,4.46,853,4.618,854,4.585,4220,6.325,4227,3.128,4232,5.68,4355,5.835,4365,7.938,6945,7.325,10640,7.597,12099,7.099,12100,6.905,12101,6.735,12102,7.099,16794,9.4,16798,9.4,17406,7.325,20107,8.394,20108,8.394,20109,8.394,20114,8.394,20115,8.394,20116,8.394,20117,8.394,20118,8.394,20145,10.666,20147,8.394,20523,9.822,20524,9.087,20525,9.087,20526,9.087,20527,9.087]],["title/classes/UserMatchListResponse.html",[0,0.229,12310,5.639]],["body/classes/UserMatchListResponse.html",[0,0.35,2,0.737,3,0.017,4,0.017,5,0.009,7,0.099,27,0.486,29,0.509,30,0.001,31,0.502,32,0.185,33,0.585,34,1.099,39,1.718,47,0.809,55,2.983,56,5.832,59,2.773,70,6.07,95,0.15,101,0.017,103,0.001,104,0.001,127,0.811,145,1.654,163,3.689,165,0.706,167,2.447,200,2.088,355,2.52,364,2.061,369,1.413,374,2.047,375,3.624,376,1.503,379,2.792,404,1.618,405,1.732,415,3.498,416,4.116,461,2.865,467,3.341,469,2.827,496,2.7,538,2.873,577,5.766,596,3.378,728,2.509,851,4.385,852,4.385,1000,3.82,1007,7.674,1008,6.612,1009,5.106,1011,3.411,1013,4.716,1014,3.146,1015,3.56,1016,2.289,1017,4.548,1018,5.821,1019,5.211,1020,4.24,1021,3.411,1022,4.548,1023,4.548,1025,4.06,1026,3.56,1031,2.863,1114,2.6,1717,7.145,3105,4.06,3106,3.593,3110,3.105,3262,4.007,4442,3.941,4960,4.06,5418,4.06,9336,4.308,9337,4.644,9338,4.308,9339,4.644,10331,4.382,10349,4.461,10350,4.548,10351,5.385,11448,4.87,11449,4.176,11468,7.47,11491,5.359,12310,7.47,12361,9.907,12363,7.815,12366,5.359,12367,5.359,12368,5.359,12369,5.359,12433,8.985,20528,8.254,20529,5.921,20530,6.41,20531,6.41,20532,5.599]],["title/classes/UserMatchMapper.html",[0,0.229,12302,5.639]],["body/classes/UserMatchMapper.html",[0,0.244,2,0.825,3,0.019,4,0.019,5,0.01,7,0.11,8,1.165,27,0.401,29,0.767,30,0.001,31,0.612,32,0.135,33,0.483,35,1.165,39,1.923,59,2.227,95,0.156,99,1.217,100,3.231,101,0.014,103,0.001,104,0.001,167,4.164,217,1.656,227,1.323,234,1.164,277,3.863,305,2.064,307,4.485,309,6.173,329,2.113,369,1.582,461,2.805,529,4.257,540,5.199,558,3.41,627,3.903,738,4.142,851,3.522,852,3.522,975,5.516,982,3.595,3105,4.545,3106,4.023,4442,4.811,4538,5.463,4539,5.605,10331,4.905,10365,9.754,11448,7.334,11449,6.289,11450,10.5,11497,9.405,12173,5.452,12302,8.07,12304,6.268,12361,9.114,12363,8.288,12386,5.605,12388,5.999,12440,5.605,13139,5.318,13140,5.199,16681,8.432,16812,8.917,16817,6.628,16818,6.628,16819,6.628,20533,10.908,20534,7.175,20535,9.653,20536,7.175,20537,7.175,20538,7.175,20539,7.175,20540,9.653,20541,7.175,20542,7.175,20543,7.175,20544,7.175,20545,9.653,20546,7.175,20547,7.175,20548,7.175,20549,7.175,20550,7.175]],["title/classes/UserMatchResponse.html",[0,0.229,12361,5.269]],["body/classes/UserMatchResponse.html",[0,0.342,2,0.707,3,0.016,4,0.016,5,0.009,7,0.095,27,0.511,29,0.488,30,0.001,31,0.564,32,0.184,33,0.503,34,1.488,39,2.694,47,0.912,55,2.211,56,4.175,70,4.346,95,0.148,101,0.017,103,0.001,104,0.001,127,0.778,163,2.735,165,0.685,167,2.346,200,2.826,355,3.411,364,2.215,369,1.912,374,1.963,375,3.519,376,1.441,379,2.755,404,1.113,405,2.344,415,3.353,416,3.946,461,3.067,467,3.302,469,2.71,496,2.589,538,3.889,577,6.458,595,2.123,728,3.396,851,5.654,852,5.654,1000,3.709,1007,5.354,1008,3.353,1009,3.512,1013,5.008,1025,3.892,1026,3.414,1031,3.5,1114,3.519,1480,3.445,1717,8.058,3105,5.494,3106,4.863,3110,4.202,3262,5.423,3834,3.584,4442,5.534,4960,5.494,5418,5.494,9336,4.13,9337,4.453,9338,4.13,9339,4.453,10331,6.873,10349,6.038,10350,6.156,10351,6.583,11448,7.639,11449,6.55,11468,7.253,11491,5.138,12310,5.138,12361,9.802,12363,8.753,12366,5.138,12367,5.138,12368,5.138,12369,5.138,12433,10.063,20528,11.592,20529,5.677,20532,7.578,20551,6.145,20552,6.145,20553,6.145,20554,6.145,20555,6.145,20556,6.145,20557,6.145]],["title/controllers/UserMigrationController.html",[481,2.629,20234,5.892]],["body/controllers/UserMigrationController.html",[0,0.284,3,0.022,4,0.022,5,0.012,7,0.128,8,1.287,27,0.347,29,0.663,30,0.001,31,0.469,32,0.117,33,0.418,35,1.008,36,2.317,52,4.946,95,0.168,100,2.795,101,0.016,102,4.214,103,0.001,104,0.001,111,1.67,112,2.634,187,1.195,206,4.275,215,2.703,216,1.971,217,1.408,221,1.968,227,0.881,355,4.619,364,1.547,376,1.958,447,3.501,461,1.924,481,3.256,483,4.019,529,3.684,555,4.408,1016,3.807,2344,4.854,2769,4.127,4442,4.703,12306,7.296,15735,6.732,16010,8.33,16021,9.821,16025,8.915,16030,10.81,20017,7.296,20233,8.595,20234,9.315,20239,9.85,20240,7.715,20558,10.663,20559,8.352,20560,10.663,20561,8.352,20562,10.663,20563,8.352,20564,8.352,20565,8.352,20566,8.352,20567,8.352,20568,8.352,20569,8.352,20570,8.352]],["title/classes/UserMigrationIsNotEnabled.html",[0,0.229,20571,6.23]],["body/classes/UserMigrationIsNotEnabled.html",[0,0.322,2,1.089,3,0.025,4,0.025,5,0.013,7,0.146,8,1.392,27,0.394,30,0.001,35,1.143,52,5.769,95,0.122,101,0.018,103,0.001,104,0.001,192,2.824,214,3.808,227,1,461,2.182,1134,6.366,1299,4.42,1327,3.741,1542,5.803,1543,6.462,1545,3.025,1547,6.439,4442,5.087,6589,5.999,8137,6.462,8138,6.728,10363,7.02,20571,10.655,20572,11.534,20573,9.472,20574,9.472,20575,9.472]],["title/classes/UserMigrationMapper.html",[0,0.229,15733,5.892]],["body/classes/UserMigrationMapper.html",[0,0.323,2,1.092,3,0.025,4,0.025,5,0.013,7,0.146,8,1.394,27,0.394,29,0.754,30,0.001,31,0.533,32,0.133,33,0.475,35,1.146,95,0.148,100,3.178,101,0.018,103,0.001,104,0.001,217,1.254,227,1.002,234,1.54,355,3.733,627,3.875,982,4.756,1016,4.124,2211,6.186,4561,5.052,13474,9.191,14480,10.09,14481,10.09,15725,11.099,15730,8.294,15733,10.09,20355,8.771,20576,11.55,20577,9.494,20578,9.494]],["title/classes/UserMigrationResponse.html",[0,0.229,15725,5.639]],["body/classes/UserMigrationResponse.html",[0,0.337,2,1.14,3,0.026,4,0.026,5,0.014,7,0.153,27,0.493,29,0.788,30,0.001,31,0.557,32,0.166,33,0.496,47,0.862,101,0.019,103,0.001,104,0.001,127,1.255,165,0.937,405,3.204,595,3.425,2211,8.264,2227,8.29,15725,11.232,20402,9.16,20579,12.684,20580,9.915,20581,9.915,20582,9.915]],["title/injectables/UserMigrationService.html",[105,0.889,15046,5.269]],["body/injectables/UserMigrationService.html",[0,0.11,3,0.009,4,0.009,5,0.005,7,0.05,8,0.64,26,1.627,27,0.488,29,0.81,30,0.001,31,0.573,32,0.162,33,0.51,35,1.231,36,2.362,47,1.012,52,1.5,55,0.711,59,1.646,66,6.886,83,0.973,85,4.876,94,4.397,95,0.151,99,0.548,101,0.006,102,1.631,103,0,104,0,105,0.699,107,0.773,111,2.653,112,2.672,127,0.671,128,2.606,129,4.814,132,3.405,144,1.842,150,2.472,154,1.474,165,0.419,167,1.234,187,0.463,189,2.973,191,1.796,192,2.325,204,1.819,216,2.313,217,1.64,221,2.625,227,1.147,234,1.906,256,2.703,305,1.939,307,2.021,309,3.815,329,2.297,355,4.793,369,0.713,461,0.745,784,1.706,818,7.081,1052,2.747,1053,3.459,1062,2.314,1114,1.311,1158,1.72,1195,2.606,1327,1.277,1545,1.033,1661,2.106,1807,2.525,1808,2.396,1919,2.202,2113,4.27,2138,2.396,2171,1.389,2172,1.546,2173,1.491,2211,4.392,2344,3.824,2400,3.03,2685,1.847,2686,1.72,3372,3.625,3544,2.202,3898,1.764,4442,5.255,4561,1.72,4579,2.606,4640,3.564,4809,2.456,5382,1.847,5453,2.173,6067,4.459,6896,2.076,6902,4.693,6938,6.652,6943,2.525,7219,3.315,7785,2.525,8291,6.857,8300,3.315,8836,2.076,9713,2.342,11270,2.396,11826,3.842,12089,2.703,12121,5.637,12145,5.959,12585,4.275,12589,4.143,12609,4.899,12900,2.606,13173,2.703,13302,2.294,13474,7.904,13623,4.632,14467,2.824,14468,2.606,14477,8.547,15045,7.081,15046,4.143,15058,6.941,15072,6.219,15091,4.899,15109,6.228,15128,6.228,15129,2.986,15617,2.456,15694,4.899,16010,7.634,16013,5.637,16014,5.637,16027,2.986,16033,5.889,16034,2.606,16035,2.606,16036,6.814,16042,2.824,17587,6.228,17591,6.228,17599,9.122,20327,6.093,20409,10.408,20444,4.899,20478,2.986,20482,4.899,20490,4.899,20583,7.8,20584,5.303,20585,5.303,20586,5.303,20587,7.8,20588,5.303,20589,3.233,20590,3.233,20591,3.233,20592,3.233,20593,5.303,20594,3.233,20595,5.303,20596,7.8,20597,3.233,20598,3.233,20599,3.233,20600,5.303,20601,3.233,20602,3.233,20603,8.611,20604,3.233,20605,6.742,20606,3.233,20607,3.233,20608,3.233,20609,3.233,20610,3.233,20611,3.233,20612,3.233,20613,6.742,20614,5.303,20615,3.233,20616,3.233,20617,3.233,20618,3.233,20619,3.233,20620,3.233,20621,3.233,20622,3.233,20623,3.233,20624,3.233,20625,3.233,20626,6.742,20627,3.233,20628,3.233,20629,3.233,20630,3.233,20631,3.233,20632,2.986,20633,3.233,20634,3.233,20635,3.233,20636,3.233,20637,3.233,20638,3.233,20639,5.303,20640,3.233,20641,3.233,20642,3.233,20643,3.233,20644,5.303,20645,3.233,20646,3.233,20647,3.233,20648,3.233,20649,3.233,20650,3.233,20651,3.233,20652,3.233,20653,3.233,20654,3.233,20655,3.233,20656,3.233,20657,3.233,20658,3.233,20659,3.233,20660,3.233]],["title/modules/UserModule.html",[425,1.808,4551,4.394]],["body/modules/UserModule.html",[0,0.268,3,0.021,4,0.021,5,0.011,30,0.001,95,0.171,101,0.015,103,0.001,104,0.001,187,1.13,191,4.384,192,2.353,425,3.064,427,2.917,428,3.077,429,3.173,430,3.159,431,3.131,432,4.226,433,4.312,437,9.14,438,6.083,441,8.383,442,4.133,443,3.104,444,3.026,449,4.133,450,3.247,1545,2.521,1625,9.786,1642,6.895,1951,8.271,4551,9.205,4615,7.291,12145,8.383,20066,10.768,20661,7.893,20662,7.893,20663,7.893,20664,7.893,20665,7.893,20666,7.291,20667,7.291,20668,7.893]],["title/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.229,15073,5.892]],["body/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.247,2,0.837,3,0.019,4,0.019,5,0.01,7,0.112,8,1.176,26,2.448,27,0.523,29,0.578,30,0.001,31,0.409,32,0.172,33,0.364,35,0.878,47,0.972,48,5.509,59,2.259,95,0.141,99,1.235,101,0.014,103,0.001,104,0.001,111,2.197,127,1.233,144,2.663,163,2.295,165,0.77,192,2.17,204,2.497,214,3.218,216,2.493,227,0.768,329,2.871,404,1.765,406,2.332,417,5.395,461,1.677,511,5.624,596,3.563,1327,4.339,1542,5.127,1543,5.71,1545,2.325,1547,5.838,3060,5.165,3888,5.686,4630,3.783,5378,4.892,5382,5.57,6589,4.611,6706,4.55,8137,5.71,8138,5.944,8291,7.385,8294,6.359,8300,7.335,8304,5.395,8530,4.674,8532,5.274,8533,6.359,8537,4.29,8538,4.493,10705,7.062,10950,9.125,10952,5.531,14990,8.514,14991,8.514,14992,8.148,15026,6.724,15027,6.086,15073,8.514,15098,6.086,20669,10.987,20670,10.987,20671,7.279,20672,7.279,20673,7.279,20674,7.279,20675,7.279,20676,7.279]],["title/classes/UserParams.html",[0,0.229,850,5.437]],["body/classes/UserParams.html",[0,0.397,2,1.113,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.004,39,3.364,47,0.85,95,0.15,101,0.018,103,0.001,104,0.001,165,0.923,361,6.432,364,1.793,368,4.614,369,2.576,370,3.897,371,3.22,374,3.091,376,2.269,379,2.23,461,2.692,467,3.14,850,9.419,1000,4.996,3834,5.643,20677,9.677,20678,9.677]],["title/injectables/UserRepo.html",[105,0.889,441,4.113]],["body/injectables/UserRepo.html",[0,0.129,3,0.01,4,0.01,5,0.005,7,0.058,8,0.728,10,2.435,12,2.781,18,2.979,26,1.785,27,0.485,29,0.886,30,0.001,31,0.626,32,0.157,33,0.558,34,1.034,35,1.38,36,2.713,40,2.902,47,0.811,48,4.018,49,1.477,55,0.833,56,1.824,59,1.871,70,1.899,72,2.831,95,0.134,96,1.629,97,1.612,98,2.258,99,0.643,101,0.007,103,0,104,0,105,0.795,107,0.907,111,1.501,112,2.906,144,1.036,148,1.172,167,2.302,187,0.543,192,2.551,217,1.678,221,2.552,227,1.05,234,0.978,247,3.706,305,1.09,307,3.769,309,5.287,329,2.212,367,2.902,369,1.329,371,1.662,380,0.792,381,1.984,398,1.11,404,1.092,425,1.616,441,3.677,461,2.404,496,3.606,558,1.801,577,4.798,596,2.599,692,4.35,701,3.475,731,2.953,779,2.809,844,3.88,851,1.86,852,1.86,853,3.064,854,3.042,877,6.085,879,6.937,881,5.57,883,2.528,884,2.848,885,3.736,905,1.574,908,2.311,909,2.339,910,2.311,911,2.339,913,2.311,914,2.339,915,2.086,919,2.88,929,3.311,1008,2.068,1015,2.105,1062,2.632,1277,1.955,1278,4.062,1285,6.201,1298,3.547,1299,3.504,1300,3.504,1301,3.71,1302,2.05,1303,2.591,1306,2.88,1576,2.284,1919,1.574,1921,2.507,2185,3.413,2422,3.677,3091,4.259,3110,3.637,3394,4.122,4227,2.076,4628,6.18,4630,1.969,5147,6.201,5369,4.822,5784,4.991,6487,2.311,6556,3.169,6658,2.88,6774,5.329,6775,5.283,6785,4.469,6805,2.809,6806,2.809,6844,2.469,6845,4.861,7633,4.197,8686,4.582,9181,3.169,9562,2.88,9975,3.349,10061,6.56,11419,3.501,11458,9.055,11459,2.689,11486,3.311,11497,6.899,12386,2.961,12440,2.961,12527,3.501,12539,3.169,12540,3.501,12542,3.501,12547,3.311,12548,3.501,13302,2.689,13337,5.041,19381,5.267,19383,5.267,19679,3.501,19680,3.501,20069,5.57,20076,5.57,20095,3.501,20098,3.501,20104,3.501,20106,3.501,20679,3.79,20680,5.57,20681,7.509,20682,5.57,20683,3.79,20684,3.79,20685,3.79,20686,3.79,20687,3.79,20688,3.79,20689,3.79,20690,3.79,20691,3.79,20692,3.79,20693,3.79,20694,3.79,20695,3.79,20696,5.57,20697,3.79,20698,3.79,20699,6.03,20700,6.03,20701,6.03,20702,3.79,20703,3.79,20704,7.509,20705,3.79,20706,3.79,20707,3.79,20708,6.03,20709,3.79,20710,3.79,20711,3.169,20712,6.03,20713,3.79,20714,3.79,20715,6.03,20716,3.79,20717,3.79,20718,6.03,20719,6.03,20720,6.03,20721,6.03,20722,6.03,20723,6.03,20724,6.03,20725,7.509,20726,3.79,20727,3.79,20728,3.79,20729,3.79,20730,3.79,20731,3.79]],["title/injectables/UserRule.html",[105,0.889,1975,5.639]],["body/injectables/UserRule.html",[0,0.271,3,0.021,4,0.021,5,0.011,7,0.123,8,1.249,27,0.477,29,0.913,30,0.001,31,0.645,32,0.161,33,0.575,35,1.249,95,0.156,101,0.015,103,0.001,104,0.001,105,1.364,107,1.907,116,4.179,127,1.009,187,1.141,199,4.386,214,2.632,215,2.58,216,1.473,217,1.517,227,1.092,347,2.477,380,2.787,461,3.235,806,3.358,1862,6.694,1890,8.18,1911,4.92,1928,7.506,1975,8.651,1989,6.387,2033,6.741,2056,5.358,3352,6.955,3353,5.449,3356,6.844,3358,5.449,3359,5.358,3360,7.074,3361,6.057,20732,7.971,20733,7.971,20734,7.971,20735,7.971,20736,10.348]],["title/classes/UserScope.html",[0,0.229,20084,5.892]],["body/classes/UserScope.html",[0,0.207,2,0.701,3,0.016,4,0.016,5,0.009,7,0.094,8,1.041,26,2.271,27,0.537,29,0.974,30,0.001,31,0.688,32,0.181,33,0.613,35,1.479,59,3.564,83,4.111,95,0.111,99,1.034,101,0.012,103,0.001,104,0.001,111,2.384,144,1.666,145,2.964,148,1.887,165,0.682,192,1.818,227,1.212,277,5.097,329,1.796,347,2.43,371,1.681,404,1.563,450,2.509,461,1.405,529,2.69,596,3.487,1121,6.006,2432,5.966,4227,3.447,5872,5.898,5873,5.898,5874,5.898,5879,5.898,5880,5.898,5881,4.245,5882,4.169,5883,4.245,5884,4.245,5893,4.169,5894,5.898,5895,4.245,5896,4.169,5897,4.245,5898,4.169,5899,7.852,6369,7.255,6796,4.916,9892,7.537,9901,7.537,11737,9.603,12100,7.608,12101,6.395,13938,5.328,17644,10.611,20084,11.518,20091,7.971,20737,6.099,20738,8.628,20739,8.628,20740,6.099,20741,8.628,20742,6.099,20743,8.628,20744,6.099,20745,8.628,20746,6.099,20747,8.628,20748,6.099,20749,8.628]],["title/injectables/UserService.html",[105,0.889,12145,4.113]],["body/injectables/UserService.html",[0,0.139,3,0.011,4,0.011,5,0.006,7,0.063,8,0.773,12,2.953,18,3.164,26,2.562,27,0.51,29,0.975,30,0.001,31,0.689,32,0.172,33,0.614,34,1.099,35,1.462,36,2.911,39,2.115,40,3.082,47,0.893,48,4.192,59,1.269,66,4.056,94,1.944,95,0.165,99,0.694,101,0.008,102,2.064,103,0,104,0,105,0.844,107,0.979,111,2.224,112,3.064,127,0.81,148,1.981,187,0.586,216,1.792,217,1.688,221,2.695,227,1.258,234,0.663,305,1.177,336,0.996,347,1.608,369,2.137,383,2.665,441,6.269,450,1.682,461,2.864,491,3.143,529,1.804,559,2.232,701,3.118,789,6.9,801,2.385,818,7.785,853,2.079,854,2.064,1014,3.143,1195,3.297,1242,3.779,1807,3.195,1808,3.032,1913,3.573,1916,3.102,2392,4.457,2685,4.51,3091,3.598,4092,2.796,4220,2.847,4221,8.164,4507,5.718,4518,3.195,4621,8.164,4644,3.42,5602,3.208,6539,5.997,6775,5.511,6929,3.108,6938,6.856,6942,4.544,6943,3.195,6948,3.573,8425,3.573,9346,5.594,11748,3.297,12145,3.905,13139,3.032,13140,4.64,13346,3.573,13538,5.594,13542,5.594,15959,5.916,16601,3.573,20020,5.916,20066,8.984,20073,8.249,20083,3.779,20096,3.779,20145,6.598,20166,3.573,20523,3.573,20666,3.779,20667,3.779,20680,5.916,20682,5.916,20750,4.09,20751,6.404,20752,6.404,20753,6.404,20754,6.404,20755,5.916,20756,4.09,20757,6.404,20758,4.09,20759,4.09,20760,4.09,20761,4.09,20762,6.404,20763,4.09,20764,6.404,20765,4.09,20766,6.404,20767,4.09,20768,6.404,20769,4.09,20770,5.916,20771,4.09,20772,5.916,20773,8.929,20774,4.09,20775,6.404,20776,4.09,20777,6.404,20778,4.09,20779,4.09,20780,4.09,20781,4.09,20782,4.09,20783,4.09,20784,4.09,20785,4.09,20786,4.09,20787,6.404,20788,4.09,20789,4.09,20790,4.09,20791,4.09,20792,4.09,20793,6.404,20794,4.09,20795,4.09,20796,4.09,20797,4.09,20798,4.09,20799,3.779,20800,4.09,20801,3.779]],["title/injectables/UserUc.html",[105,0.889,12313,5.437]],["body/injectables/UserUc.html",[0,0.25,3,0.02,4,0.02,5,0.01,7,0.113,8,1.185,26,2.69,27,0.49,29,0.936,30,0.001,31,0.662,32,0.165,33,0.59,35,1.333,36,2.561,39,2.631,95,0.162,99,1.248,101,0.014,103,0.001,104,0.001,105,1.294,107,1.761,111,2.357,112,2.832,127,0.931,148,3.037,185,4.325,187,1.053,204,3.367,215,2.381,216,1.815,217,1.459,221,2.603,227,1.036,234,1.193,305,2.117,336,1.792,369,2.164,383,4.794,441,7.702,450,3.027,461,2.716,789,8.28,801,4.292,982,3.687,1913,6.429,1916,4.755,2685,4.205,4218,9.854,4221,8.955,6539,7.46,11748,5.932,12313,7.914,16601,6.429,20166,6.429,20755,9.069,20770,9.069,20772,9.069,20799,6.798,20801,6.798,20802,7.359,20803,9.817,20804,7.359,20805,9.817,20806,7.359,20807,7.359,20808,7.359,20809,7.359,20810,7.359,20811,7.359,20812,7.359]],["title/classes/ValidationError.html",[0,0.229,503,4.065]],["body/classes/ValidationError.html",[0,0.263,2,0.889,3,0.021,4,0.021,5,0.011,7,0.119,8,1.223,27,0.542,29,0.614,30,0.001,31,0.434,32,0.19,33,0.566,35,0.932,47,0.931,55,1.699,59,2.398,95,0.13,101,0.015,103,0.001,104,0.001,127,0.978,165,0.801,187,1.106,204,4.279,216,2.498,364,2.312,404,1.836,406,2.476,503,6.11,564,2.867,596,3.888,1013,5.509,1016,2.759,1253,5.219,1291,5.112,1327,5.057,1472,8.266,1473,7.457,1474,4.078,1475,7.267,1479,5.034,1480,4.331,1481,5.034,1482,5.034,1483,5.034,1484,5.034,1485,5.034,1486,4.711,1487,4.415,1488,6.036,1489,6.46,1492,4.656,1493,4.894,1494,6.228,1884,6.228,20813,7.726,20814,7.726,20815,7.726]],["title/classes/ValidationErrorDetailResponse.html",[0,0.229,1504,5.892]],["body/classes/ValidationErrorDetailResponse.html",[0,0.343,2,1.16,3,0.027,4,0.027,5,0.014,27,0.419,29,0.801,30,0.001,31,0.566,32,0.142,33,0.505,47,0.995,101,0.019,103,0.001,104,0.001,127,1.277,204,4.109,216,1.865,1489,8.435,1500,8.588,1504,10.465,11485,8.879,20816,11.98,20817,10.089,20818,10.089,20819,10.089]],["title/modules/ValidationModule.html",[425,1.808,6323,5.639]],["body/modules/ValidationModule.html",[0,0.344,3,0.027,4,0.027,5,0.014,30,0.001,95,0.164,101,0.019,103,0.001,104,0.001,187,1.448,425,3.215,427,3.738,432,3.738,836,5.838,6323,10.031,6336,11.083,8217,7.686,8221,7.686,10527,10.481,20820,10.115,20821,10.115,20822,10.115]],["title/entities/VideoConference.html",[380,1.41,6423,4.113]],["body/entities/VideoConference.html",[0,0.353,3,0.021,4,0.021,5,0.011,7,0.187,27,0.478,30,0.001,32,0.171,47,0.754,95,0.133,96,2.163,101,0.023,103,0.001,104,0.001,165,0.909,216,1.479,240,4.05,347,2.345,364,2.133,380,2.169,381,2.633,396,6.252,398,2.343,399,4.062,400,3.511,402,3.292,404,1.449,405,2.163,406,2.564,701,4.253,1031,2.564,2744,5.43,3401,5.931,5044,6.451,6423,6.326,6424,6.05,6730,7.102,6756,5.57,7869,4.445,7871,5.214,7890,5.471,7891,5.471,7892,5.799,11618,8.363,14661,6.252,14817,9.279,20823,11.25,20824,7.393,20825,8.824,20826,8.003,20827,8.003,20828,8.003,20829,6.991,20830,7.393,20831,7.393,20832,6.451,20833,6.691,20834,6.451,20835,6.252,20836,9.062,20837,7.393,20838,7.393,20839,7.393,20840,7.393,20841,7.393]],["title/classes/VideoConference-1.html",[0,0.191,905,2.329,6423,3.42]],["body/classes/VideoConference-1.html",[0,0.299,2,1.013,3,0.023,4,0.023,5,0.012,7,0.136,27,0.524,29,0.7,30,0.001,31,0.494,32,0.177,33,0.602,95,0.154,99,1.494,100,2.948,101,0.017,103,0.001,104,0.001,127,1.115,165,0.871,460,6.88,843,5.785,2090,6.602,2100,6.131,2106,5.192,2278,10.071,3929,9.22,6423,7.922,7869,4.893,7871,5.739,7882,6.529,7884,7.101,20842,11.349,20843,8.809,20844,11.028,20845,8.809,20846,8.923,20847,8.809,20848,8.137,20849,8.137,20850,8.809,20851,8.809,20852,8.137]],["title/modules/VideoConferenceApiModule.html",[425,1.808,17763,5.437]],["body/modules/VideoConferenceApiModule.html",[0,0.279,3,0.022,4,0.022,5,0.012,30,0.001,95,0.167,101,0.016,103,0.001,104,0.001,187,1.176,425,3.124,427,3.036,428,3.203,429,3.302,430,3.288,431,3.259,432,4.308,433,3.098,442,4.241,443,3.23,444,3.149,446,5.203,447,4.423,449,4.241,481,3.203,1945,7.043,2090,4.175,2767,3.703,2769,4.059,4551,8.482,4561,4.371,7869,4.563,7871,5.352,17763,11.382,17786,6.622,20853,8.215,20854,8.215,20855,8.215,20856,10.884,20857,10.884,20858,10.884,20859,10.884,20860,10.884,20861,9.745,20862,8.215]],["title/classes/VideoConferenceBaseResponse.html",[0,0.229,7872,5.269]],["body/classes/VideoConferenceBaseResponse.html",[0,0.379,2,1.42,3,0.02,4,0.02,5,0.011,7,0.115,27,0.493,29,0.594,30,0.001,31,0.42,32,0.166,33,0.557,47,0.81,95,0.127,99,1.269,101,0.021,102,5.986,103,0.001,104,0.001,127,0.947,150,2.744,165,0.784,234,1.924,347,2.269,404,1.798,460,6.366,564,4.133,574,5.378,701,2.613,843,5.538,1016,4.236,1289,4.805,2078,4.363,2090,6.274,2477,7.323,6090,4.156,7867,7.754,7868,9.645,7869,7.465,7870,6.536,7871,8.044,7872,10.114,7873,9.268,7875,5.685,7878,8.98,7881,6.256,7882,5.545,7883,6.256,7884,6.031,7885,6.536,7886,8.002,7887,8.671,7888,6.256,7889,5.309,7890,5.115,7891,5.115,7892,5.421,7893,6.256,20863,9.926,20864,7.482,20865,7.482]],["title/classes/VideoConferenceConfiguration.html",[0,0.229,20866,5.892]],["body/classes/VideoConferenceConfiguration.html",[0,0.288,2,0.973,3,0.022,4,0.022,5,0.012,7,0.13,27,0.447,30,0.001,32,0.151,47,0.981,95,0.152,101,0.016,103,0.001,104,0.001,144,2.937,165,0.849,329,3.48,334,0.931,347,2.19,627,4.083,1415,6.478,2090,6.004,2106,7.731,2171,3.634,2172,4.044,2173,3.9,2287,8.664,2288,9.389,2290,9.524,3898,4.615,4809,8.167,6423,7.205,7869,6.563,10474,8.396,11092,5.886,12119,9.878,12121,8.986,17786,9.524,20866,9.389,20867,10.748,20868,10.748,20869,10.748,20870,8.457,20871,10.748,20872,9.929,20873,8.457]],["title/controllers/VideoConferenceController.html",[481,2.629,20861,5.639]],["body/controllers/VideoConferenceController.html",[0,0.128,3,0.023,4,0.01,5,0.005,7,0.058,8,0.725,27,0.355,29,0.859,30,0.001,31,0.479,32,0.152,33,0.427,35,1.432,36,2.349,95,0.15,100,2.506,101,0.007,103,0,104,0,111,1.707,112,2.661,127,0.477,145,3.219,163,3.409,185,2.931,187,0.54,204,1.294,216,1.578,217,1.472,221,2.012,227,0.634,234,1.61,264,3.946,305,1.085,334,0.415,364,1.582,367,4.108,368,4.27,376,0.884,379,3.167,447,1.581,461,2.491,481,1.471,483,1.815,491,5.913,504,7.834,513,6.167,538,2.693,543,3.01,553,5.827,554,7.974,555,1.991,556,2.041,557,2.058,559,2.058,561,2.058,563,5.269,564,4.71,574,4.901,843,4.719,883,2.518,1021,4.96,1487,2.156,1494,6.881,1510,7.139,1555,5.336,1822,2.677,2090,4.737,2186,6.848,2230,8.466,2267,8.448,2282,6.674,2296,6.057,2303,5.248,2321,5.646,2450,3.805,2723,8.716,2769,1.864,2835,3.58,3060,7.672,4038,2.328,6491,2.248,7869,7.418,7871,8.385,7875,6.486,8536,7.137,9935,6.327,10381,2.866,10382,7.886,12583,3.295,17725,8.466,20825,6.185,20857,6.259,20858,6.259,20859,6.259,20860,6.259,20861,5.022,20874,8.611,20875,3.772,20876,3.772,20877,3.485,20878,11.867,20879,10.524,20880,3.772,20881,9.173,20882,3.772,20883,7.886,20884,3.772,20885,3.485,20886,3.772,20887,3.772,20888,3.772,20889,3.772,20890,3.772,20891,3.772,20892,6.007,20893,3.772,20894,3.772,20895,3.772,20896,6.881,20897,3.772,20898,6.007,20899,3.772,20900,3.154,20901,3.041,20902,2.947,20903,4.565,20904,4.565,20905,6.259,20906,6.259,20907,3.485,20908,3.772,20909,3.772,20910,8.536,20911,3.485,20912,3.772,20913,6.007,20914,3.772,20915,8.536,20916,8.536,20917,3.772,20918,3.772,20919,3.772,20920,3.772,20921,3.772,20922,3.772,20923,3.772,20924,3.772,20925,3.772,20926,3.772,20927,3.772]],["title/classes/VideoConferenceCreateParams.html",[0,0.229,20896,5.437]],["body/classes/VideoConferenceCreateParams.html",[0,0.34,2,0.872,3,0.02,4,0.02,5,0.011,7,0.117,27,0.496,30,0.001,32,0.167,33,0.66,47,0.728,95,0.144,101,0.014,103,0.001,104,0.001,150,4.373,165,0.791,329,3.302,334,0.834,346,6.73,347,2.595,364,2.21,371,2.089,373,6.295,374,2.421,375,5.03,376,1.778,379,1.747,444,3.838,471,5.275,1327,3.954,1480,4.25,1555,6.259,2090,6.301,2113,7.101,2298,6.034,2485,4.325,3091,4.565,3544,4.158,7869,7.215,7889,7.956,7890,7.664,7891,7.664,8455,6.111,8462,7.003,13234,9.25,16048,9.25,19641,8.071,20896,8.071,20928,11.454,20929,11.212,20930,11.212,20931,7.581,20932,7.581,20933,10.013,20934,8.747,20935,10.013,20936,10.013,20937,7.581,20938,7.581,20939,7.581,20940,10.013,20941,6.338,20942,6.622,20943,6.622,20944,6.622,20945,7.581]],["title/injectables/VideoConferenceCreateUc.html",[105,0.889,20857,5.639]],["body/injectables/VideoConferenceCreateUc.html",[0,0.178,3,0.014,4,0.014,5,0.007,7,0.081,8,0.934,26,2.444,27,0.471,29,0.9,30,0.001,31,0.658,32,0.159,33,0.567,35,1.306,36,2.461,47,0.824,95,0.154,99,0.89,100,1.757,101,0.01,103,0,104,0,105,1.02,107,1.256,111,2.63,112,2.752,127,0.979,145,2.373,148,1.623,187,0.751,216,1.7,217,1.43,221,2.893,227,0.554,234,1.255,277,4.912,305,1.51,334,0.578,461,1.209,496,3.261,701,4.474,766,2.255,784,4.086,883,3.245,947,4.584,1021,2.792,1158,4.119,1252,3.127,1714,8.868,2037,3.029,2089,5.737,2090,5.953,2094,5.493,2106,3.093,2107,4.1,2112,4.584,2152,9.895,2175,8.207,2190,4.1,2218,4.584,2252,8.457,2278,5.881,2280,8.607,2400,2.999,2526,3.324,4000,3.28,4227,1.806,4561,2.792,4640,6.181,6423,3.2,6938,4.381,7869,6.507,11741,8.457,12145,7.143,13931,4.848,15617,3.988,17725,9.486,20825,9.045,20835,4.1,20857,6.471,20946,9.794,20947,5.248,20948,7.74,20949,9.196,20950,7.74,20951,7.74,20952,4.388,20953,8.901,20954,5.248,20955,7.74,20956,5.248,20957,7.74,20958,5.248,20959,5.248,20960,9.051,20961,5.248,20962,7.74,20963,5.248,20964,7.74,20965,5.248,20966,4.23,20967,4.848,20968,5.248,20969,7.689,20970,5.248,20971,5.248,20972,4.848,20973,7.689,20974,4.848,20975,4.388,20976,5.248,20977,5.248,20978,9.196,20979,5.248,20980,5.248,20981,5.248,20982,5.248,20983,5.248,20984,5.248,20985,4.584,20986,5.248,20987,5.248,20988,4.584]],["title/classes/VideoConferenceDO.html",[0,0.229,20989,5.125]],["body/classes/VideoConferenceDO.html",[0,0.362,2,0.957,3,0.022,4,0.022,5,0.012,7,0.128,27,0.531,29,0.661,30,0.001,31,0.467,32,0.179,33,0.587,34,1.824,47,0.852,95,0.136,101,0.02,103,0.001,104,0.001,127,1.052,165,0.84,347,2.388,404,1.926,596,2.525,701,4.094,1857,3.556,1939,7.132,2744,5.227,5044,6.705,5612,6.026,6730,6.837,6756,5.789,7036,6.32,7039,8.308,7040,6.497,7869,4.62,7889,5.902,7890,5.686,7891,5.686,7892,6.026,14661,6.497,17726,8.689,20832,6.705,20833,6.954,20834,6.705,20835,6.497,20985,7.266,20989,9.703,20990,11.796,20991,7.683,20992,10.635,20993,9.96,20994,8.317,20995,8.317,20996,7.683,20997,7.683,20998,7.266,20999,7.683,21000,7.683,21001,7.683]],["title/controllers/VideoConferenceDeprecatedController.html",[481,2.629,21002,5.892]],["body/controllers/VideoConferenceDeprecatedController.html",[0,0.149,3,0.025,4,0.012,5,0.006,7,0.067,8,0.814,10,1.765,27,0.342,29,0.839,30,0.001,31,0.462,32,0.188,33,0.412,35,1.328,36,2.295,47,0.848,95,0.158,100,3.097,101,0.008,102,4.153,103,0,104,0,112,2.616,163,3.331,185,3.223,187,0.626,215,1.414,216,0.808,217,1.222,221,2.356,227,0.869,264,1.85,277,5.045,334,0.481,364,1.525,368,4.172,376,1.025,379,3.052,447,1.832,461,2.434,481,3.209,483,2.103,491,5.848,498,4.609,502,6.603,504,7.654,506,6.882,513,6.099,538,3.022,543,3.378,553,5.784,554,7.681,555,2.307,556,2.364,557,2.385,561,2.385,563,5.08,564,4.421,574,3.056,843,4.61,883,2.826,1439,5.265,1510,7.107,1555,4.214,1822,3.101,2037,6.355,2090,4.702,2100,3.042,2106,2.576,2230,5.123,2267,6.704,2282,5.532,2296,6.566,2303,5.89,2321,5.444,2477,4.161,2478,3.853,2685,6.292,2723,8.516,2769,2.159,2955,2.473,3060,7.496,3673,2.988,4821,2.698,6423,5.019,7867,6.43,7869,7.07,7871,7.762,7872,3.414,7889,3.101,7890,2.988,7891,2.988,8210,8.252,9369,9.847,17726,8.831,20846,3.239,20861,5.637,20874,8.547,20877,4.037,20881,9.759,20883,7.603,20885,4.037,20896,7.459,20903,6.254,20904,5.123,20907,4.037,20941,3.654,20942,3.818,20943,3.818,20944,3.818,21002,5.89,21003,4.37,21004,8.231,21005,4.37,21006,4.37,21007,4.37,21008,4.37,21009,4.37,21010,4.37,21011,4.37,21012,4.37,21013,4.37,21014,3.818,21015,4.37,21016,6.228,21017,4.37,21018,4.037,21019,4.37,21020,4.37,21021,4.37,21022,8.231,21023,8.231,21024,4.37,21025,6.742,21026,4.37,21027,3.654,21028,4.37,21029,4.037,21030,4.037,21031,4.037,21032,4.37,21033,4.37,21034,4.37,21035,4.37,21036,4.37,21037,4.37,21038,4.37]],["title/injectables/VideoConferenceEndUc.html",[105,0.889,20858,5.639]],["body/injectables/VideoConferenceEndUc.html",[0,0.241,3,0.019,4,0.019,5,0.01,7,0.109,8,1.155,26,2.421,27,0.398,29,0.76,30,0.001,31,0.537,32,0.134,33,0.479,35,0.855,36,2.08,39,1.899,47,0.696,95,0.167,99,1.202,100,2.372,101,0.014,103,0.001,104,0.001,105,1.261,107,1.696,111,2.167,112,2.431,127,1.211,154,3.231,187,1.014,216,2.004,217,1.687,221,2.857,227,0.748,234,1.758,277,4.338,305,2.039,460,4.05,461,1.633,738,4.091,766,3.046,843,3.093,2037,4.091,2089,8.034,2090,5.508,2094,5.029,2100,4.933,2106,4.177,2107,5.536,2175,8.41,2190,5.536,2278,8.82,2280,9.493,2282,6.434,4561,3.771,4640,4.763,6423,7.078,6938,5.417,7869,6.021,11741,7.478,12145,7.788,15617,5.385,17725,8.82,17785,5.713,20846,5.252,20858,8.003,20901,5.713,20902,5.536,20946,9.062,20952,5.925,20953,9.704,20960,5.925,20966,5.713,20969,8.003,20973,8.003,20975,5.925,20988,6.191,21039,7.087,21040,7.087,21041,9.572,21042,7.087,21043,6.191,21044,5.925,21045,6.191,21046,7.087,21047,7.087,21048,7.087,21049,6.547,21050,6.547]],["title/classes/VideoConferenceInfo.html",[0,0.229,20903,5.125]],["body/classes/VideoConferenceInfo.html",[0,0.268,2,0.906,3,0.021,4,0.021,5,0.011,7,0.121,27,0.552,29,0.626,30,0.001,31,0.442,32,0.181,33,0.394,34,1.761,47,0.747,49,3.071,83,3.089,95,0.147,100,2.637,101,0.015,103,0.001,104,0.001,127,0.997,144,2.806,165,0.811,234,1.665,240,3.217,329,3.024,334,0.867,364,2.385,396,6.154,399,4.739,404,1.86,591,4.391,592,4.529,596,3.98,701,3.989,1278,5.555,2090,5.218,2106,4.643,2252,6.154,2495,6.882,2497,6.882,2523,7.277,2744,4.578,3929,8.585,6423,7.85,6730,5.988,7869,6.346,7871,5.132,7892,5.708,11367,6.882,14817,6.35,20825,8.277,20842,8.97,20903,9.539,21051,7.878,21052,7.878,21053,7.878,21054,7.878,21055,7.878,21056,7.878,21057,7.878,21058,7.878,21059,7.878,21060,7.878]],["title/classes/VideoConferenceInfoResponse.html",[0,0.229,20905,5.639]],["body/classes/VideoConferenceInfoResponse.html",[0,0.286,2,0.969,3,0.022,4,0.022,5,0.012,7,0.13,27,0.49,29,0.669,30,0.001,31,0.473,32,0.165,33,0.421,95,0.151,101,0.016,103,0.001,104,0.001,127,1.066,165,0.847,364,1.986,376,1.975,379,2.717,460,7.325,467,3.169,701,4.476,1013,3.861,1031,2.699,2090,6.308,2254,6.789,2914,5.408,2915,5.658,7868,9.697,7869,7.617,7871,8.537,7873,8.374,7875,6.399,7878,10.733,7881,7.041,7882,6.242,7883,7.041,7892,6.102,7893,7.041,20195,9.902,20905,10.717,21061,9.859,21062,8.422,21063,7.78]],["title/injectables/VideoConferenceInfoUc.html",[105,0.889,20859,5.639]],["body/injectables/VideoConferenceInfoUc.html",[0,0.202,3,0.016,4,0.016,5,0.008,7,0.091,8,1.022,26,2.245,27,0.41,29,0.784,30,0.001,31,0.554,32,0.139,33,0.494,35,1.022,36,2.338,95,0.162,99,1.008,100,1.99,101,0.011,103,0.001,104,0.001,105,1.117,107,1.423,111,2.365,112,2.652,127,1.072,154,2.71,187,0.851,216,1.825,217,1.643,221,2.932,227,0.894,234,1.745,277,4.307,305,1.71,334,0.654,347,1.211,460,4.842,461,1.37,701,4.422,766,2.555,784,4.473,843,3.698,1016,3.842,1158,4.509,2037,3.432,2089,7.318,2090,5.469,2094,4.219,2106,3.504,2107,4.645,2175,8.243,2190,6.62,2252,4.645,2278,8.177,2280,8.986,2285,7.828,4561,3.164,4640,6.636,6938,4.796,7869,5.978,11741,6.62,12145,7.421,15617,4.518,17725,9.247,17785,4.793,20825,7.154,20835,4.645,20846,4.407,20859,7.085,20901,4.793,20902,4.645,20903,8.177,20941,7.085,20946,8.998,20952,4.971,20953,9.247,20960,4.971,20966,4.793,20969,8.255,20972,5.492,20973,8.998,20974,5.492,20975,7.085,20989,6.439,20993,7.959,21027,4.971,21043,5.194,21044,4.971,21045,5.194,21050,7.828,21064,5.946,21065,8.474,21066,5.946,21067,8.474,21068,5.946,21069,8.474,21070,5.946,21071,5.946,21072,5.946,21073,5.194,21074,5.194,21075,5.946,21076,5.946,21077,5.946,21078,5.946,21079,5.492,21080,5.492,21081,5.492]],["title/classes/VideoConferenceJoin.html",[0,0.229,20904,5.125]],["body/classes/VideoConferenceJoin.html",[0,0.301,2,1.02,3,0.024,4,0.024,5,0.013,7,0.136,27,0.526,29,0.704,30,0.001,31,0.498,32,0.177,33,0.444,47,0.805,95,0.142,99,1.504,100,2.968,101,0.017,103,0.001,104,0.001,127,1.122,150,4.428,165,0.875,460,6.901,843,5.794,2090,6.615,3929,9.258,6090,4.925,7869,7.374,7871,5.777,7882,6.572,7884,7.148,20842,11.371,20846,8.95,20848,8.191,20849,8.191,20852,8.191,20904,9.891,21082,8.867,21083,11.074,21084,8.867,21085,8.867,21086,8.867]],["title/classes/VideoConferenceJoinResponse.html",[0,0.229,20906,5.639]],["body/classes/VideoConferenceJoinResponse.html",[0,0.318,2,1.074,3,0.025,4,0.025,5,0.013,7,0.144,27,0.475,29,0.742,30,0.001,31,0.524,32,0.16,33,0.467,47,0.831,95,0.12,101,0.018,103,0.001,104,0.001,127,1.182,150,4.846,165,0.903,364,1.731,376,2.19,379,2.152,467,3.073,1013,4.282,2090,6.281,2230,8.689,2247,8.628,6090,5.188,7868,9.655,7869,7.34,7871,7.45,7873,8.933,7875,7.097,7888,7.809,20906,11.048,21087,11.435]],["title/injectables/VideoConferenceJoinUc.html",[105,0.889,20860,5.639]],["body/injectables/VideoConferenceJoinUc.html",[0,0.23,3,0.018,4,0.018,5,0.01,7,0.104,8,1.12,26,2.377,27,0.386,29,0.737,30,0.001,31,0.521,32,0.13,33,0.465,35,0.818,36,2.017,47,0.493,95,0.165,99,1.149,100,2.268,101,0.013,103,0.001,104,0.001,105,1.224,107,1.621,111,2.118,112,2.375,127,1.175,150,3.405,187,0.97,216,1.958,217,1.628,221,2.813,227,0.715,234,1.718,277,4.239,305,1.949,460,3.873,461,1.561,496,3.912,766,2.912,843,2.958,1415,4.084,2037,5.359,2090,5.383,2094,4.809,2106,3.994,2107,5.294,2175,4.91,2209,5.92,2229,9.253,2230,8.048,2280,9.367,4561,3.606,4640,6.241,6423,4.132,6938,5.255,7276,5.022,7869,6.329,12145,7.697,13140,4.91,15617,5.149,17725,8.658,17785,5.463,20846,5.022,20860,7.763,20901,5.463,20902,5.294,20904,9.07,20946,8.856,20952,5.666,20953,9.591,20966,5.463,20969,8.856,20973,7.763,20989,7.055,21027,5.666,21043,5.92,21044,5.666,21045,5.92,21074,9.253,21080,6.26,21088,6.777,21089,6.777,21090,9.285,21091,6.777,21092,6.777,21093,6.777,21094,6.777,21095,6.777,21096,6.777,21097,9.285,21098,6.777,21099,9.285,21100,6.777,21101,6.777,21102,6.777,21103,6.777,21104,6.777,21105,6.777]],["title/classes/VideoConferenceMapper.html",[0,0.229,20900,5.639]],["body/classes/VideoConferenceMapper.html",[0,0.232,2,0.785,3,0.018,4,0.018,5,0.01,7,0.105,8,1.126,27,0.475,29,0.908,30,0.001,31,0.641,32,0.16,33,0.572,35,1.379,95,0.162,99,1.157,101,0.02,103,0.001,104,0.001,150,2.502,185,2.671,217,1.404,227,1.206,234,1.724,334,0.751,460,5.331,627,4.184,701,2.383,843,2.978,982,3.418,1822,4.841,2027,4.445,2090,6.08,2106,4.021,2113,4.321,2175,4.943,2190,5.33,2192,5.96,2767,3.075,6022,5.057,7869,3.79,7878,8.569,7889,4.841,7890,4.664,7891,4.664,17726,5.057,20825,7.702,20846,8.469,20896,9.211,20900,7.799,20903,9.091,20904,9.091,20905,9.553,20906,9.553,20911,6.303,20941,5.704,20942,5.96,20943,5.96,20944,5.96,21027,5.704,21029,6.303,21030,6.303,21031,6.303,21044,5.704,21049,6.303,21061,5.704,21063,6.303,21073,5.96,21106,11.965,21107,6.823,21108,9.328,21109,9.328,21110,9.328,21111,9.328,21112,9.328,21113,6.823,21114,9.328,21115,6.823,21116,9.328,21117,6.823,21118,9.328,21119,6.823,21120,6.303,21121,6.303,21122,6.303,21123,6.303,21124,5.96,21125,5.96,21126,6.823,21127,6.823,21128,6.823,21129,6.823,21130,6.823,21131,6.823,21132,6.823,21133,6.823,21134,6.823]],["title/modules/VideoConferenceModule.html",[425,1.808,20856,5.639]],["body/modules/VideoConferenceModule.html",[0,0.211,3,0.016,4,0.016,5,0.009,30,0.001,95,0.175,101,0.012,103,0.001,104,0.001,154,2.827,187,0.888,191,3.445,192,1.849,334,0.683,425,2.708,427,2.292,428,2.418,429,2.493,430,2.482,431,2.46,432,4.053,433,4.135,438,5.663,442,3.51,443,2.439,444,2.377,447,3.66,449,3.51,450,2.551,481,2.418,558,2.948,766,2.665,836,5.04,1266,3.544,1420,6.077,1545,1.981,1919,4.196,1945,6.487,1951,7.7,1973,8.059,1991,5.467,1993,6.907,2090,3.152,2106,3.656,2280,10.049,2291,10.025,2293,7.627,2767,2.796,2769,3.065,3546,5,3950,10.025,3956,5.868,4551,8.33,4561,3.3,5283,5.185,7869,3.445,7871,5.688,9822,4.401,12122,7.627,13371,8.887,13626,4.597,17786,5,20856,11.817,20866,5.418,20872,5.729,20953,10.049,21002,9.58,21016,11.38,21135,6.202,21136,6.202,21137,6.202,21138,6.202,21139,10.025,21140,6.202,21141,5.729,21142,6.202,21143,6.202,21144,6.202,21145,6.202,21146,6.202,21147,8.731]],["title/classes/VideoConferenceOptions.html",[0,0.229,20825,4.887]],["body/classes/VideoConferenceOptions.html",[0,0.351,2,0.913,3,0.021,4,0.021,5,0.011,7,0.187,27,0.504,29,0.631,30,0.001,31,0.446,32,0.177,33,0.397,47,0.577,95,0.132,96,2.145,101,0.023,103,0.001,104,0.001,127,1.005,165,0.906,216,1.468,240,3.804,347,2.628,380,2.158,398,2.325,399,4.041,400,3.483,402,3.266,404,1.438,405,2.145,406,2.544,701,4.005,1031,2.544,2744,4.601,3401,5.885,5044,8.32,6423,4.841,6424,6.019,6730,6.019,6756,5.526,7869,4.41,7871,5.173,7890,7.839,7891,7.839,7892,5.753,11618,8.32,14661,6.202,14817,8.32,20823,11.626,20824,7.335,20825,9.347,20829,10.017,20830,7.335,20831,7.335,20832,6.4,20833,6.638,20834,6.4,20835,6.202,20836,9.016,20837,7.335,20838,7.335,20839,7.335,20840,7.335,20841,7.335,21148,10.321,21149,7.94,21150,7.94]],["title/classes/VideoConferenceOptionsDO.html",[0,0.229,20993,5.437]],["body/classes/VideoConferenceOptionsDO.html",[0,0.368,2,0.983,3,0.023,4,0.023,5,0.012,7,0.131,27,0.519,29,0.679,30,0.001,31,0.48,32,0.175,33,0.428,47,0.621,95,0.139,101,0.021,103,0.001,104,0.001,127,1.082,165,0.855,347,2.68,404,1.548,701,3.779,1939,6.246,2744,3.81,5044,8.723,6730,4.984,6756,5.949,7036,6.494,7039,6.677,7040,6.677,7869,4.747,7889,8.426,7890,8.117,7891,8.117,7892,6.193,14661,6.677,17726,8.02,20832,6.89,20833,7.146,20834,6.89,20835,6.677,20985,7.466,20989,8.222,20990,11.894,20991,7.895,20993,10.603,20996,7.895,20997,7.895,20998,7.466,20999,7.895,21000,7.895,21001,7.895,21151,10.82,21152,8.547,21153,8.547]],["title/classes/VideoConferenceOptionsResponse.html",[0,0.229,21061,5.639]],["body/classes/VideoConferenceOptionsResponse.html",[0,0.275,2,0.931,3,0.021,4,0.021,5,0.011,7,0.125,27,0.508,29,0.643,30,0.001,31,0.455,32,0.172,33,0.405,95,0.104,101,0.015,103,0.001,104,0.001,127,1.025,165,0.826,347,2.642,364,2.145,369,2.305,371,3.371,376,1.899,379,2.668,467,3.288,1013,5.308,2090,6.436,2218,10.687,2230,7.944,2271,11.301,2577,8.866,7868,9.894,7869,7.035,7873,8.167,7875,6.154,7889,8.215,7890,7.914,7891,7.914,12573,8.741,20832,6.529,20834,6.529,20998,7.075,21061,10.589,21154,8.1,21155,10.455,21156,12.234,21157,10.455,21158,8.1,21159,8.1,21160,10.455,21161,8.1,21162,8.1,21163,8.1]],["title/injectables/VideoConferenceRepo.html",[105,0.889,21139,5.639]],["body/injectables/VideoConferenceRepo.html",[0,0.169,3,0.013,4,0.013,5,0.007,7,0.076,8,0.895,10,2.996,12,3.421,18,3.666,26,2.467,27,0.541,29,1.026,30,0.001,31,0.725,32,0.181,33,0.646,34,1.693,35,1.559,36,2.627,40,2.386,47,0.646,95,0.142,96,1.339,99,0.841,101,0.009,103,0,104,0,105,0.978,107,1.186,111,2.364,112,2.921,148,1.533,165,0.392,187,0.71,217,1.174,221,1.168,227,1.115,234,1.203,359,2.572,380,2.21,398,1.451,404,1.344,595,1.712,596,3.886,661,4.981,701,2.591,878,5.164,884,3.504,885,5.258,915,2.729,1857,3.802,2092,2.805,2383,8.971,2385,5.265,2386,5.265,2387,5.265,2388,5.265,2389,5.164,2390,5.164,2391,5.265,2392,5.164,2393,5.265,2398,3.518,2400,5.641,2401,3.518,2403,3.518,2405,3.279,2406,5.265,2407,3.518,2409,3.518,2411,5.265,2415,5.265,2417,4.987,2418,5.164,2420,3.518,2422,3.023,2423,3.023,2424,3.518,2426,3.518,2428,3.518,2429,3.518,2447,3.674,2744,3.964,4083,4.373,4355,3.183,4821,3.06,5766,3.592,5767,3.592,5768,3.592,5769,3.592,5770,3.592,5771,3.592,5772,3.592,5773,5.376,5774,5.376,6423,7.012,6730,5.185,7889,3.518,7890,5.072,7891,5.072,8781,3.766,9369,5.796,14347,4.144,14817,3.996,17726,8.523,20829,4.33,20836,9.69,20989,8.738,21124,6.481,21125,6.481,21139,6.203,21164,8.892,21165,4.957,21166,7.419,21167,7.419,21168,4.957,21169,4.957,21170,4.957,21171,4.957,21172,4.957,21173,4.957,21174,7.419,21175,7.419,21176,4.957,21177,4.957,21178,4.957,21179,4.957,21180,4.579,21181,4.957,21182,4.957,21183,4.957,21184,4.957,21185,4.957,21186,4.957,21187,4.957,21188,4.957,21189,4.957]],["title/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.229,21014,5.892]],["body/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.261,2,0.883,3,0.02,4,0.02,5,0.011,7,0.118,8,1.219,27,0.469,29,0.896,30,0.001,31,0.634,32,0.158,33,0.565,35,1.362,95,0.154,101,0.015,102,6.45,103,0.001,104,0.001,150,2.817,227,1.191,234,1.83,460,6.449,574,4.579,627,4.164,701,2.683,843,4.925,974,4.742,1822,5.451,2090,6.092,2100,5.347,2106,4.528,2477,6.235,2478,5.772,6423,7.31,7867,9.365,7869,4.267,7871,5.005,7872,9.365,7886,9.664,16873,7.097,20900,6.423,20902,6.001,20903,9.109,20904,9.109,21014,8.824,21018,7.097,21120,7.097,21190,11.988,21191,10.101,21192,10.101,21193,10.101,21194,10.101,21195,10.101,21196,7.682,21197,10.101,21198,10.101,21199,7.682,21200,11.285,21201,11.285,21202,7.682,21203,7.682]],["title/classes/VideoConferenceScopeParams.html",[0,0.229,20879,5.892]],["body/classes/VideoConferenceScopeParams.html",[0,0.377,2,1.022,3,0.024,4,0.024,5,0.013,7,0.137,27,0.461,30,0.001,32,0.156,47,0.806,95,0.155,99,1.507,101,0.017,103,0.001,104,0.001,165,0.876,277,4.837,364,2.054,368,4.999,369,2.665,370,3.699,371,3.488,374,2.838,376,2.084,467,3.248,1000,4.741,1031,3.553,1044,4.361,2090,6.142,2915,5.853,5665,9.687,7869,6.714,9369,9.442,17726,9.845,20879,9.687,20928,11.166,21204,8.886,21205,8.886,21206,8.886,21207,8.886,21208,8.886,21209,8.886]],["title/injectables/VideoConferenceService.html",[105,0.889,20953,5.125]],["body/injectables/VideoConferenceService.html",[0,0.104,3,0.008,4,0.008,5,0.004,7,0.047,8,0.609,26,2.771,27,0.488,29,0.904,30,0.001,31,0.659,32,0.16,33,0.569,35,1.347,36,2.583,39,2.769,47,0.827,95,0.146,99,0.516,101,0.006,103,0,104,0,105,0.665,107,0.728,111,2.404,112,2.85,127,0.639,129,4.641,130,6.896,132,4.151,145,1.302,187,0.436,188,2.447,190,2.454,191,1.691,192,1.504,199,1.927,204,1.044,216,1.841,217,1.57,221,2.682,227,1.269,234,1.727,277,5.086,305,2.585,307,3.155,309,4.256,318,2.545,329,1.486,334,0.335,347,2.357,369,0.671,371,1.391,450,1.252,460,4.297,461,1.163,496,2.126,701,2.626,784,2.664,839,1.429,843,3.282,845,2.16,884,2.384,885,3.741,947,2.66,1092,4.219,1158,2.685,1252,1.814,1474,1.713,1822,2.16,1865,5.216,1868,1.928,1881,3.197,1916,3.131,1952,5.106,1973,6.397,2027,4.899,2037,2.913,2090,6.041,2106,1.794,2107,2.378,2113,3.197,2175,3.657,2190,2.378,2192,2.66,2526,1.928,2685,1.74,2744,1.357,2767,1.372,2880,1.456,3110,1.475,3331,4.673,3925,4.068,3940,2.545,3954,7.958,4227,1.048,4499,3.077,4538,2.856,4539,2.378,4561,1.62,4630,1.582,6222,2.66,6423,4.585,6424,1.776,6589,3.197,6720,3.115,6730,1.776,6938,2.856,6942,5.916,9369,9.804,9404,5.647,10452,2.812,11378,1.984,11449,1.984,11695,2.119,11741,3.943,11744,4.662,12069,4.499,12119,6.287,12121,5.404,12122,2.66,12145,5.804,12168,2.545,14896,4.068,15098,4.219,15946,2.66,17726,9.088,20632,4.662,20825,5.448,20846,5.573,20901,2.454,20902,2.378,20953,3.835,20960,2.545,20966,2.454,20967,2.812,20975,4.219,20988,2.66,20989,7.232,20993,2.454,21073,2.66,21074,6.569,21079,7.701,21081,2.812,21121,2.812,21122,2.812,21123,2.812,21124,4.409,21125,4.409,21139,7.958,21141,2.812,21210,11.888,21211,3.045,21212,5.047,21213,6.464,21214,5.047,21215,5.047,21216,6.464,21217,5.047,21218,6.464,21219,5.047,21220,5.047,21221,5.047,21222,5.047,21223,6.464,21224,3.045,21225,3.045,21226,5.047,21227,5.047,21228,7.52,21229,3.045,21230,3.045,21231,3.045,21232,5.047,21233,3.045,21234,5.047,21235,3.045,21236,3.045,21237,3.045,21238,5.047,21239,3.045,21240,3.045,21241,3.045,21242,5.047,21243,7.52,21244,3.045,21245,3.045,21246,3.045,21247,5.047,21248,3.045,21249,5.047,21250,3.045,21251,5.047,21252,3.045,21253,3.045,21254,3.045,21255,3.045,21256,3.045,21257,3.045,21258,3.045,21259,3.045,21260,9.518,21261,3.045,21262,3.045,21263,3.045,21264,3.045,21265,3.045,21266,3.045,21267,3.045,21268,3.045,21269,3.045,21270,3.045,21271,3.045,21272,3.045,21273,3.045,21274,3.045,21275,5.047,21276,3.045,21277,3.045,21278,3.045,21279,2.812,21280,3.045,21281,3.045,21282,3.045,21283,3.045,21284,5.047,21285,3.045,21286,3.045,21287,3.045,21288,3.045,21289,3.045,21290,3.045,21291,3.045,21292,3.045,21293,3.045,21294,3.045,21295,3.045,21296,3.045,21297,3.045,21298,5.047,21299,3.045,21300,3.045,21301,3.045,21302,5.047,21303,3.045,21304,3.045]],["title/classes/VisibilitySettingsResponse.html",[0,0.229,4106,5.639]],["body/classes/VisibilitySettingsResponse.html",[0,0.327,2,1.108,3,0.026,4,0.026,5,0.014,7,0.148,27,0.484,29,0.765,30,0.001,31,0.541,32,0.163,33,0.627,47,0.847,95,0.124,101,0.018,103,0.001,104,0.001,127,1.474,165,0.92,364,1.784,375,5.081,376,2.258,966,4.93,4106,11.143,21305,12.526,21306,9.631,21307,13.328,21308,9.631,21309,9.631,21310,9.631]],["title/dependencies.html",[428,3.168,21311,4.899]],["body/dependencies.html",[0,0.25,4,0.013,5,0.007,10,1.977,30,0.001,32,0.069,34,0.84,36,1.918,56,2.357,96,2.385,97,2.083,103,0,104,0,112,1.979,187,0.701,346,3.291,367,3.538,374,2.819,376,1.148,381,1.611,398,1.434,428,1.909,543,2.453,734,2.826,766,2.104,775,2.986,801,2.856,846,3.475,853,2.488,948,3.721,1016,1.748,1135,4.523,1183,4.278,1266,2.798,1268,3.145,1272,3.347,1437,3.548,1438,3.291,1508,2.771,1638,4.278,1640,3.629,1648,3.629,1683,2.886,1717,4.721,1812,3.475,1848,3.291,1871,3.022,1987,5.668,1990,8.214,2074,5.026,2106,2.886,2116,2.649,2172,2.342,2173,3.39,2174,3.102,2263,3.475,2412,3.825,2488,3.347,3331,2.745,3458,3.102,3459,2.918,3543,2.403,3544,4.074,3900,5.586,3910,4.278,3911,5.743,3912,8.214,4481,3.947,4969,2.771,5011,5.217,5058,3.947,5059,3.947,5378,3.291,5382,2.798,5739,3.239,6030,4.523,6162,3.291,6325,3.825,6327,4.094,6414,3.548,6491,6.265,6728,3.629,7628,4.523,7661,3.408,7819,6.146,8190,5.743,8217,3.721,8508,3.947,8590,4.523,9436,4.278,9507,4.523,9611,8.127,9712,3.721,10009,4.523,10252,3.475,10351,2.951,10883,3.947,11024,4.094,11592,3.408,11616,3.548,12377,3.825,12684,7.664,12755,3.629,12948,3.721,13293,4.523,14168,4.278,14542,3.947,14898,4.278,15210,4.278,15211,4.523,16161,4.523,16628,4.278,17117,4.523,17118,4.523,17734,4.278,21312,4.897,21313,7.352,21314,4.897,21315,10.514,21316,4.897,21317,4.897,21318,9.811,21319,7.352,21320,4.897,21321,4.897,21322,4.897,21323,4.897,21324,7.352,21325,4.897,21326,9.811,21327,7.352,21328,9.811,21329,4.897,21330,4.897,21331,4.897,21332,4.897,21333,4.897,21334,4.897,21335,4.897,21336,4.897,21337,4.897,21338,4.897,21339,4.897,21340,4.897,21341,4.897,21342,4.897,21343,4.897,21344,4.897,21345,4.897,21346,4.897,21347,4.897,21348,4.897,21349,4.897,21350,4.897,21351,7.352,21352,4.897,21353,4.897,21354,4.897,21355,7.352,21356,4.897,21357,4.897,21358,7.352,21359,4.897,21360,4.897,21361,4.897,21362,4.897,21363,7.352,21364,7.352,21365,4.897,21366,4.897,21367,4.897,21368,4.897,21369,7.352,21370,4.897,21371,4.897,21372,4.897,21373,4.897,21374,4.897,21375,4.897,21376,4.897,21377,4.897,21378,4.897,21379,4.897,21380,4.897,21381,4.897,21382,7.352,21383,4.897,21384,4.897,21385,4.897,21386,4.897,21387,4.897,21388,4.897,21389,4.897,21390,4.897,21391,4.278,21392,4.897,21393,4.897,21394,8.154,21395,4.897,21396,4.897,21397,4.897,21398,8.827,21399,4.897,21400,4.897,21401,7.352,21402,4.897,21403,4.897,21404,4.897,21405,4.897,21406,4.897,21407,4.897,21408,4.897,21409,4.897,21410,4.897,21411,4.897,21412,4.897,21413,7.352,21414,4.523,21415,4.897,21416,4.897,21417,7.352,21418,4.897,21419,4.897,21420,4.897,21421,4.897,21422,4.897,21423,4.897,21424,4.897,21425,4.897,21426,4.897,21427,4.897,21428,4.897,21429,4.897,21430,7.352,21431,4.897,21432,4.897,21433,4.897,21434,4.523,21435,4.897,21436,4.897,21437,4.897,21438,4.897,21439,4.897,21440,4.897,21441,4.523,21442,4.523,21443,4.897,21444,4.897,21445,4.897,21446,4.897,21447,4.897,21448,4.897,21449,4.897,21450,6.791,21451,4.523,21452,4.897,21453,4.897,21454,4.897,21455,4.897,21456,4.897,21457,4.897,21458,4.897,21459,4.897,21460,4.897,21461,4.897]],["title/miscellaneous/functions.html",[20443,6.793,21462,5.181]],["body/miscellaneous/functions.html",[7,0.06,26,2.564,29,1.053,30,0.001,31,0.753,32,0.174,33,0.663,34,0.667,35,1.57,39,1.649,47,0.968,53,2.76,55,1.91,59,2.695,72,2.889,80,3.251,100,1.302,103,0,104,0,144,2.986,145,1.588,167,1.484,185,2.41,199,1.484,204,1.334,227,0.41,240,1.218,247,1.543,290,2.245,329,1.145,347,0.792,366,2.141,369,0.857,371,1.072,373,2.053,377,4.976,380,0.813,381,2.857,431,5.063,468,4.808,470,1.638,494,3.709,569,2.614,574,1.763,692,1.449,701,1.358,722,1.715,728,2.41,748,3.038,777,2.955,789,6.462,824,3.592,834,3.592,838,5.685,905,1.615,957,2.201,1015,3.418,1016,1.388,1052,2.508,1053,2.729,1252,3.667,1379,4.603,1382,5.36,1469,2.572,1491,2.222,1492,2.344,1565,3.418,1828,1.734,1925,3.969,1932,3.15,2116,3.33,2307,3.397,2309,3.45,2507,3.952,2514,2.572,2689,2.021,2691,1.706,2787,4.774,2880,4.812,3023,5.685,3024,5.376,3028,5.685,3242,4.064,3397,2.572,3543,3.021,3853,2.818,4227,2.629,4959,3.592,4969,2.201,4971,5.376,5011,7.756,5035,2.463,5097,4.837,5407,3.038,6047,2.534,6064,3.981,6082,6.281,6119,4.01,6127,2.572,6131,5.052,6139,5.576,6146,2.534,6157,2.955,6918,4.561,7228,6.044,7629,4.561,8013,3.397,8107,3.592,8113,3.592,8114,5.685,8160,3.397,8161,9.138,9387,2.882,9401,2.431,9734,7.004,9763,4.808,9764,4.808,9959,5.376,9975,2.16,9979,3.397,10348,7.055,10358,3.038,10385,4.676,10447,5.145,10547,3.592,10548,5.803,10752,2.76,11112,5.685,11187,3.592,11258,3.592,11306,2.76,11358,2.76,11630,3.135,11957,3.251,12065,3.251,12236,3.397,13235,3.592,13359,3.251,13421,3.397,16162,5.685,16163,5.685,16164,5.685,16975,4.961,19046,5.145,19048,3.251,19049,3.592,20443,3.251,21441,3.592,21462,3.592,21463,3.889,21464,6.154,21465,6.154,21466,6.154,21467,3.889,21468,6.154,21469,3.889,21470,6.154,21471,3.889,21472,3.889,21473,6.154,21474,9.461,21475,6.154,21476,10.062,21477,8.684,21478,3.889,21479,6.154,21480,8.684,21481,3.889,21482,6.154,21483,6.154,21484,3.889,21485,7.637,21486,3.889,21487,6.154,21488,3.889,21489,6.154,21490,3.889,21491,7.637,21492,3.889,21493,3.889,21494,6.154,21495,3.889,21496,6.154,21497,6.154,21498,6.154,21499,6.154,21500,3.889,21501,3.889,21502,3.889,21503,6.154,21504,3.889,21505,6.154,21506,3.889,21507,6.154,21508,3.889,21509,6.154,21510,3.889,21511,6.154,21512,6.154,21513,3.889,21514,3.889,21515,3.889,21516,3.889,21517,3.889,21518,3.889,21519,6.154,21520,3.889,21521,3.889,21522,3.889,21523,8.684,21524,3.889,21525,3.889,21526,6.154,21527,3.889,21528,3.889,21529,3.889,21530,3.889,21531,3.889,21532,3.889,21533,3.889,21534,3.889,21535,3.889,21536,6.154,21537,3.889,21538,3.397,21539,3.251,21540,6.154,21541,6.154,21542,6.154,21543,3.251,21544,7.055,21545,3.592,21546,3.889,21547,3.397,21548,3.889,21549,3.889,21550,3.592,21551,9.461,21552,10.062,21553,3.889,21554,3.889,21555,3.889,21556,3.889,21557,3.889,21558,3.889,21559,3.889,21560,3.889,21561,3.889,21562,6.154,21563,3.889,21564,3.889,21565,3.889,21566,3.889,21567,3.889,21568,6.154,21569,3.889,21570,3.889,21571,3.889,21572,7.637,21573,3.397,21574,3.889,21575,3.889,21576,3.889,21577,3.889,21578,3.889,21579,3.889,21580,3.135,21581,3.889,21582,3.889]],["title/index.html",[7,0.086,1555,3.506,21583,4.899]],["body/index.html",[30,0.001,31,0.48,34,1.034,55,2.187,102,3.04,103,0.001,104,0.001,199,2.3,200,2.787,204,2.934,234,0.977,329,1.775,367,4.117,379,1.388,428,2.349,483,4.787,511,3.085,571,5.348,574,2.731,575,3.591,576,7.359,577,3.378,671,3.317,688,3.181,722,3.773,728,2.359,769,3.591,883,4.17,946,3.926,951,4.579,956,3.926,1021,3.206,1042,5.038,1110,3.87,1114,2.444,1236,3.632,1237,4.707,1239,10.215,1252,3.591,1253,4.587,1327,2.38,1473,3.444,1474,2.045,1491,4.889,1510,5.348,1725,6.198,1848,4.05,1871,3.719,1922,3.817,1987,7.343,1991,3.26,2008,3.87,2049,8.728,2116,4.628,2171,2.59,2173,2.779,2185,3.41,2489,6.187,2507,6.953,2508,5.494,2509,6.34,2514,3.986,2526,5.419,2578,3.926,2811,6.217,3459,6.814,3462,7.054,3873,6.683,3874,8.403,3948,4.579,4013,4.579,4169,3.986,4484,4.857,4630,3.131,4969,3.41,5121,5.494,5227,5.038,5346,5.419,5389,4.366,5403,4.707,5944,3.817,6046,4.119,6145,5.573,6229,5.038,6331,4.366,6332,4.466,6491,6.452,6589,5.419,6731,4.842,6736,4.579,7309,4.466,7679,4.119,8537,3.552,8682,6.5,9309,5.264,9368,4.707,9985,8.227,10358,4.707,10789,4.276,11199,4.707,11204,6.198,11216,5.494,11250,5.264,11421,4.119,11484,6.5,12528,4.366,12589,7.77,13159,8.018,13238,6.683,13361,4.466,13626,4.466,13967,4.857,14497,4.857,14886,4.579,14902,5.038,15250,5.038,15251,4.857,16257,4.707,16263,6.896,16421,4.276,17535,5.264,19641,4.857,20711,5.038,20934,5.264,21580,4.857,21584,7.152,21585,4.579,21586,5.264,21587,5.038,21588,5.264,21589,4.857,21590,7.152,21591,6.896,21592,5.264,21593,5.264,21594,6.896,21595,5.264,21596,5.038,21597,7.903,21598,7.152,21599,5.566,21600,5.566,21601,5.566,21602,5.038,21603,7.558,21604,5.264,21605,7.903,21606,5.038,21607,5.038,21608,7.903,21609,5.264,21610,4.579,21611,5.038,21612,5.264,21613,5.264,21614,4.857,21615,5.566,21616,5.264,21617,5.566,21618,5.038,21619,4.707,21620,5.264,21621,7.903,21622,7.903,21623,8.689,21624,9.989,21625,5.264,21626,5.566,21627,7.903,21628,5.264,21629,5.566,21630,5.566,21631,5.566,21632,7.903,21633,7.903,21634,5.566,21635,5.566,21636,5.566,21637,5.038,21638,5.566,21639,4.857,21640,5.566,21641,7.152,21642,5.566,21643,5.566,21644,5.264,21645,5.566,21646,5.038]],["title/license.html",[1555,3.506,11540,4.157,21583,4.899]],["body/license.html",[0,0.041,4,0.032,5,0.003,8,0.147,27,0.051,30,0,53,2.771,55,0.495,56,1.083,72,3.595,74,0.982,76,1.125,77,0.772,79,1.966,83,0.366,87,0.602,95,0.016,103,0,104,0,111,0.244,116,3.482,148,0.377,163,0.989,192,0.363,199,0.465,227,0.129,234,1.001,240,0.382,277,0.487,309,2.21,334,0.627,336,0.764,359,3.344,363,1.445,368,1.542,380,0.471,444,0.467,460,0.696,461,1.952,494,1.89,511,0.624,520,0.819,534,1.125,535,3.34,538,1.009,543,0.61,564,0.452,565,0.643,574,4.371,575,0.726,578,1.125,685,0.638,688,2.061,701,0.425,704,1.929,711,0.726,713,0.671,721,2.456,722,1.722,731,0.479,744,0.883,766,0.967,768,0.864,772,1.064,782,1.064,783,2.353,795,0.718,836,2.985,843,3.049,905,1.901,907,2.183,954,1.668,956,4.022,957,2.21,959,1.064,960,9.033,1021,0.648,1110,5.106,1113,0.982,1114,1.857,1237,1.758,1253,5.261,1295,2.254,1300,0.568,1309,1.566,1473,0.696,1499,1.668,1507,4.795,1510,3.859,1576,0.734,1577,3.833,1594,3.69,1666,3.6,1717,1.445,1723,7.016,1724,2.189,1828,1.003,1848,2.624,1887,0.752,1888,1.064,1916,3.384,1921,5.065,1922,3.276,1991,1.217,2076,0.643,2115,0.982,2116,3.969,2156,8.063,2184,1.966,2185,1.274,2267,2.829,2282,0.819,2298,2.353,2321,1.488,2344,0.503,2400,1.286,2488,2.144,2489,3.992,2500,4.529,2503,4.595,2526,3.276,2542,2.079,2543,1.71,2563,6.381,2572,0.782,2577,3.129,2578,0.794,2579,1.597,2728,3.93,2730,7.78,2778,2.544,3018,1.064,3091,3.345,3145,0.926,3187,0.734,3262,1.407,3397,3.028,3508,4.453,3542,2.014,3543,0.598,3566,1.758,3613,4.225,3851,0.952,3870,0.982,3872,1.538,3874,0.772,3876,1.758,3940,1.018,4000,1.96,4166,1.064,4168,2.74,4169,3.421,4172,1.125,4220,1.566,4299,1.064,4480,0.883,4484,4.595,4486,1.064,4571,1.018,4630,1.169,4631,1.018,4632,1.538,4639,1.881,4825,1.407,4945,6.004,4960,1.425,4969,0.689,4997,2.544,4998,1.538,5039,1.758,5233,0.982,5346,1.425,5381,1.064,5389,2.272,5395,2.383,5410,0.782,5451,1.71,5566,3.077,5944,0.772,5999,0.848,6046,2.144,6053,2.897,6270,2.383,6327,1.018,6417,1.064,6491,1.341,6589,0.772,6617,0.903,6637,2.272,6705,3.576,6733,0.864,6760,1.63,6908,0.926,6914,0.883,6926,1.064,6927,3.148,7309,2.324,7339,3.186,7349,0.926,7779,1.064,7780,1.881,7840,2.894,8096,4.977,8270,0.903,8679,0.903,8682,2.967,9141,2.45,9387,2.894,9393,2.897,9401,3.233,9418,2.45,9725,0.819,9741,2.383,9980,0.926,10000,4.977,10358,5.982,10381,1.71,10432,0.806,10533,0.952,10541,1.966,10548,1.71,10768,1.71,10770,1.064,10854,1.018,10905,6.134,11122,1.125,11156,4.727,11168,1.064,11204,2.272,11216,2.014,11226,0.903,11240,3.999,11247,2.079,11286,1.125,11307,4.97,11484,0.926,11540,9.872,11580,0.952,11586,0.903,11592,2.718,11593,0.926,11609,1.018,11635,7.555,11738,1.064,11827,1.63,12053,1.018,12244,0.952,12528,5.062,12590,4.98,12929,1.064,12938,3.999,12939,1.125,13001,2.079,13159,0.982,13238,2.45,13257,0.883,13354,1.064,13418,0.982,13422,0.982,13440,2.225,13786,2.74,13788,2.079,14024,4.98,14132,9.126,14163,1.125,14170,3.148,14241,1.064,14495,0.982,14500,1.125,14555,3.264,14645,2.079,14815,1.125,14883,3.264,14886,2.383,15250,1.018,15253,7.083,15873,2.528,16097,1.125,16473,4.518,16482,1.064,16712,1.966,17049,0.982,17534,2.897,17620,1.064,17736,1.125,17816,1.064,17857,0.952,17862,1.881,17875,1.71,18125,2.383,18324,1.125,18524,2.897,18897,2.622,19043,1.966,19046,3.827,19048,1.018,19053,6.454,19241,1.064,19284,2.079,19436,0.903,19700,4.518,19781,2.079,19959,5.766,20247,8.238,20272,1.018,21538,1.064,21543,1.018,21544,1.125,21547,1.064,21573,1.064,21580,1.814,21595,1.064,21598,9.842,21603,4.332,21610,7.07,21611,9.075,21612,2.74,21647,8.918,21648,8.703,21649,1.218,21650,1.218,21651,3.136,21652,10.661,21653,8.427,21654,4.578,21655,1.218,21656,1.218,21657,2.25,21658,4.578,21659,3.136,21660,3.136,21661,7.658,21662,1.218,21663,1.218,21664,2.25,21665,4.229,21666,5.266,21667,2.25,21668,2.25,21669,7.595,21670,6.174,21671,1.218,21672,1.125,21673,5.172,21674,1.125,21675,7.337,21676,11.717,21677,3.136,21678,1.218,21679,1.218,21680,3.905,21681,6.6,21682,1.218,21683,6.6,21684,1.218,21685,4.578,21686,0.982,21687,1.018,21688,3.607,21689,8.472,21690,0.982,21691,1.125,21692,6.986,21693,7.337,21694,4.578,21695,7.658,21696,1.218,21697,2.25,21698,1.218,21699,1.218,21700,1.218,21701,1.218,21702,1.218,21703,1.881,21704,1.218,21705,1.218,21706,3.607,21707,1.125,21708,1.064,21709,3.136,21710,1.218,21711,1.218,21712,1.218,21713,2.25,21714,1.218,21715,1.218,21716,2.622,21717,1.125,21718,2.25,21719,2.25,21720,3.136,21721,6.648,21722,4.578,21723,4.778,21724,3.136,21725,2.25,21726,1.218,21727,1.218,21728,1.218,21729,3.136,21730,1.218,21731,1.218,21732,2.25,21733,1.218,21734,1.218,21735,1.218,21736,3.905,21737,2.25,21738,10.186,21739,3.136,21740,6.6,21741,3.411,21742,1.218,21743,2.25,21744,3.136,21745,6.6,21746,6.986,21747,1.125,21748,3.905,21749,2.25,21750,3.905,21751,1.218,21752,3.136,21753,0.982,21754,10.331,21755,2.25,21756,1.125,21757,6.174,21758,1.218,21759,3.136,21760,4.324,21761,8.472,21762,3.136,21763,2.25,21764,7.337,21765,5.172,21766,1.218,21767,2.25,21768,7.952,21769,2.25,21770,1.218,21771,1.218,21772,2.897,21773,1.218,21774,1.218,21775,1.064,21776,3.136,21777,3.905,21778,1.125,21779,1.218,21780,1.218,21781,1.064,21782,2.897,21783,3.136,21784,1.218,21785,1.218,21786,4.578,21787,1.125,21788,2.897,21789,1.218,21790,1.218,21791,1.218,21792,2.079,21793,1.218,21794,2.897,21795,1.018,21796,6.409,21797,2.25,21798,1.218,21799,1.218,21800,2.25,21801,1.218,21802,1.966,21803,3.999,21804,1.218,21805,5.701,21806,3.607,21807,1.218,21808,4.578,21809,1.218,21810,1.218,21811,1.218,21812,1.218,21813,1.218,21814,3.136,21815,1.218,21816,2.25,21817,1.218,21818,1.218,21819,1.218,21820,1.125,21821,1.218,21822,1.218,21823,3.136,21824,0.952,21825,1.218,21826,0.982,21827,1.218,21828,1.218,21829,1.218,21830,4.578,21831,1.218,21832,1.218,21833,3.136,21834,1.218,21835,1.218,21836,3.905,21837,1.218,21838,2.25,21839,1.218,21840,1.218,21841,1.218,21842,1.218,21843,1.218,21844,1.218,21845,2.25,21846,1.218,21847,1.218,21848,1.218,21849,2.25,21850,1.218,21851,1.218,21852,1.218,21853,1.218,21854,1.218,21855,2.079,21856,6.097,21857,1.218,21858,5.172,21859,1.218,21860,1.218,21861,3.136,21862,3.905,21863,3.905,21864,3.905,21865,1.218,21866,4.578,21867,3.999,21868,1.125,21869,3.136,21870,1.218,21871,2.25,21872,1.218,21873,1.966,21874,2.25,21875,3.607,21876,3.905,21877,3.136,21878,4.578,21879,1.218,21880,1.218,21881,2.897,21882,2.25,21883,1.125,21884,1.218,21885,1.125,21886,1.218,21887,1.218,21888,2.897,21889,1.218,21890,1.218,21891,2.25,21892,1.218,21893,1.218,21894,1.218,21895,3.136,21896,1.218,21897,3.136,21898,2.25,21899,5.172,21900,3.136,21901,2.25,21902,2.25,21903,2.25,21904,3.411,21905,1.966,21906,1.218,21907,1.218,21908,1.218,21909,5.172,21910,2.25,21911,1.218,21912,1.218,21913,1.218,21914,2.25,21915,1.218,21916,2.25,21917,1.218,21918,1.218,21919,4.977,21920,1.218,21921,6.778,21922,1.218,21923,1.218,21924,1.218,21925,1.218,21926,2.25,21927,1.218,21928,3.999,21929,3.905,21930,2.25,21931,1.218,21932,1.218,21933,1.218,21934,1.218,21935,1.218,21936,2.25,21937,1.218,21938,1.218,21939,1.064,21940,1.218,21941,2.25,21942,1.218,21943,1.218,21944,1.218,21945,1.218,21946,1.218,21947,1.218,21948,1.218,21949,1.218,21950,1.125,21951,1.218,21952,1.218,21953,1.218,21954,1.218,21955,4.578,21956,1.218,21957,1.218,21958,3.905,21959,1.218,21960,1.218,21961,1.218,21962,1.218,21963,1.218,21964,1.218,21965,1.218,21966,5.701,21967,2.897,21968,1.218,21969,3.905,21970,1.218,21971,1.218,21972,3.136,21973,1.218,21974,1.218,21975,3.136,21976,1.218,21977,2.25,21978,1.218,21979,1.218,21980,1.218,21981,1.218,21982,1.218,21983,1.064,21984,2.079,21985,1.218,21986,1.064,21987,2.25,21988,2.079,21989,1.218,21990,3.905,21991,1.218,21992,2.897,21993,1.218,21994,2.079,21995,3.136,21996,2.25,21997,1.218,21998,3.136,21999,5.701,22000,1.218,22001,2.25,22002,1.218,22003,2.079,22004,1.218,22005,1.218,22006,1.218,22007,3.905,22008,3.136,22009,1.218,22010,1.218,22011,1.218,22012,1.218,22013,1.218,22014,1.218,22015,2.25,22016,2.25,22017,2.25,22018,3.136,22019,1.218,22020,2.25,22021,1.125,22022,3.136,22023,1.218,22024,2.079,22025,2.25,22026,1.218,22027,1.218,22028,2.25,22029,9.943,22030,3.136,22031,1.218,22032,4.578,22033,6.986,22034,3.136,22035,1.218,22036,1.218,22037,3.905,22038,1.218,22039,3.136,22040,1.218,22041,1.218,22042,1.218,22043,1.218,22044,1.218,22045,1.218,22046,1.218,22047,1.218,22048,3.905,22049,1.218,22050,1.218,22051,3.136,22052,1.218,22053,3.136,22054,1.064,22055,2.25,22056,1.218,22057,1.218,22058,1.218,22059,1.218,22060,2.25,22061,3.136,22062,1.125,22063,1.218,22064,1.218,22065,1.218,22066,1.125,22067,1.218,22068,1.218,22069,1.218,22070,3.136,22071,2.25,22072,1.125,22073,1.218,22074,1.218,22075,3.905,22076,1.218,22077,3.136,22078,1.218,22079,1.218,22080,1.218,22081,1.218,22082,1.218,22083,3.136,22084,2.25,22085,2.25,22086,1.218,22087,2.25,22088,5.701,22089,2.25,22090,3.136,22091,3.905,22092,1.125,22093,1.125,22094,2.25,22095,1.218,22096,3.136,22097,1.218,22098,1.218,22099,1.218,22100,1.218,22101,1.218,22102,3.136,22103,2.25,22104,1.218,22105,1.218,22106,1.218,22107,1.218,22108,2.25,22109,2.25,22110,1.218,22111,2.079,22112,1.218,22113,1.125,22114,1.125,22115,1.218,22116,3.136,22117,1.218,22118,1.218,22119,1.218,22120,2.25,22121,3.136,22122,1.218,22123,1.218,22124,1.218,22125,1.218,22126,2.25,22127,1.218,22128,1.218,22129,1.218,22130,1.218,22131,1.218,22132,1.218,22133,1.218,22134,1.218,22135,1.218,22136,1.218,22137,1.218,22138,1.218,22139,1.218,22140,3.905,22141,1.218,22142,1.218,22143,2.25,22144,1.218,22145,1.125,22146,1.218,22147,1.218,22148,1.218,22149,1.218,22150,1.218,22151,1.218,22152,1.218,22153,1.218,22154,1.218,22155,1.218,22156,2.25,22157,1.218,22158,1.218,22159,1.218,22160,1.218,22161,1.064,22162,2.25,22163,1.218,22164,1.218,22165,1.218,22166,1.125,22167,1.125,22168,1.018,22169,1.218,22170,2.25,22171,1.125,22172,2.079,22173,1.218,22174,1.218,22175,3.136,22176,2.079,22177,1.218,22178,2.079,22179,2.25,22180,2.25,22181,1.125,22182,1.064,22183,1.218,22184,1.218,22185,1.125,22186,1.218,22187,1.218,22188,1.218,22189,2.25,22190,1.218,22191,3.136,22192,1.218,22193,1.218,22194,1.218,22195,1.218,22196,1.218,22197,1.218,22198,1.218,22199,1.218,22200,1.218,22201,1.218,22202,1.018,22203,1.218,22204,1.218,22205,1.218,22206,1.218,22207,1.218,22208,1.218,22209,1.218,22210,1.218,22211,1.218,22212,1.218,22213,1.218,22214,1.218,22215,1.064,22216,1.125,22217,2.25,22218,2.079,22219,1.218,22220,1.218,22221,1.218,22222,1.218,22223,1.218,22224,1.218,22225,1.218,22226,1.218,22227,1.218,22228,1.018,22229,1.218,22230,1.125,22231,0.982,22232,1.218,22233,1.218,22234,1.125,22235,1.218]],["title/modules.html",[427,3.421]],["body/modules.html",[30,0,103,0,104,0,426,3.996,427,1.832,437,3.518,438,2.341,817,3.872,1406,3.996,1581,3.872,1585,3.279,1623,3.996,1624,3.872,1625,3.766,1626,3.518,1945,2.682,1950,3.996,1951,3.183,1981,3.766,1983,3.872,2488,9.841,2500,7.599,2753,3.996,3533,3.872,3534,3.674,3950,4.144,4388,4.33,4545,4.144,4550,3.766,4551,3.229,4600,3.996,5267,3.592,5713,3.996,5718,3.766,5719,3.872,6234,3.592,6317,3.279,6321,3.996,6322,4.144,6323,4.144,7714,4.144,8104,3.592,8627,3.872,8628,3.766,10026,4.144,10037,4.144,10085,4.33,10089,3.996,10094,3.872,10245,3.674,10246,3.45,10257,3.766,10314,4.33,10317,3.45,10418,4.33,10428,4.33,10582,3.996,10585,3.996,10807,4.144,10816,4.33,12183,3.872,12184,3.996,12445,3.996,12822,4.144,13367,3.996,13371,3.674,13372,3.674,13390,3.674,13432,3.996,13436,3.766,13644,3.996,14327,4.144,14391,3.872,14405,3.872,14419,4.144,14426,4.144,14711,3.996,15226,3.996,15230,3.872,15401,3.996,15405,4.144,16593,3.996,16777,3.996,17739,4.33,17753,4.144,17756,3.872,17757,3.996,17758,3.996,17759,3.996,17760,3.996,17761,3.996,17762,3.996,17763,3.996,17832,4.144,18110,4.144,19373,4.144,19759,4.144,20856,4.144,22236,14.396,22237,14.396,22238,13.333,22239,11.374]],["title/properties.html",[165,0.642,21311,4.899]],["body/properties.html",[30,0.001,103,0.001,104,0.001,165,0.818,379,2.384,1987,6.646,2116,5.599,2485,4.47,2573,9.56,4499,6.31,7661,7.203,11540,7.67,16421,7.344,19425,7.863,22003,9.56,22234,9.56,22240,10.623,22241,9.56,22242,8.652,22243,10.349,22244,10.349,22245,10.349,22246,10.349]],["title/todo.html",[1555,3.506,1919,2.329,21583,4.899]],["body/todo.html",[0,0.19,5,0.008,30,0.001,31,0.455,32,0.114,34,1.391,36,1.215,47,0.406,72,2.624,99,0.948,100,2.713,103,0,104,0,112,2.139,127,0.707,150,2.05,165,0.442,199,3.095,204,2.781,329,3.081,336,1.362,359,1.938,367,3.902,368,2.208,380,2.559,381,1.84,425,2.976,433,2.108,444,3.107,449,2.247,461,1.868,481,2.179,483,2.691,509,4.051,524,3.295,571,3.495,574,4.742,576,5.622,667,2.624,685,2.928,701,3.331,704,2.762,722,4.898,778,3.757,779,7.069,798,3.495,839,2.624,1021,2.975,1052,2.278,1126,4.051,1134,3.757,1236,7.201,1240,5.505,1252,5.683,1285,4.051,1295,3.227,1299,3.783,1383,4.248,1491,5.978,1492,3.369,1500,3.757,1508,4.588,1683,3.295,1708,5.874,1725,5.874,1819,3.59,1828,2.492,1919,2.321,1941,7.881,1987,5.206,1991,6.854,2092,4.588,2116,3.025,2171,2.402,2173,3.738,2183,4.143,2187,3.757,2263,3.967,2478,3.195,2485,4.519,2488,3.822,2504,7.974,2507,5.206,2508,7.859,2570,3.025,2571,3.891,2769,2.762,3261,3.822,3262,3.495,3285,4.943,3462,3.642,3542,5.728,3613,4.143,3976,4.367,4038,5.004,4169,3.698,4485,3.822,4531,8.953,4556,2.862,4630,4.956,4631,6.778,4632,3.822,4825,3.495,4960,3.541,4997,3.642,5407,4.367,5998,4.884,6046,5.542,6325,6.333,6331,5.874,6334,3.891,6335,4.884,6338,4.674,6418,7.451,6727,2.999,6731,3.164,6758,3.642,6896,3.59,7652,3.409,7659,4.367,7660,4.143,7661,7.73,7662,7.247,7668,3.369,8096,4.507,8152,4.248,8159,5.753,9401,3.495,9444,6.778,9611,6.768,9971,4.674,10297,5.164,10463,5.164,10533,4.367,11156,3.451,11204,5.874,11421,3.822,11586,4.143,11592,3.891,11593,4.248,11608,4.143,11828,6.535,12670,4.674,13340,4.884,13418,4.507,14241,4.884,14555,4.674,15251,4.507,16207,4.884,16257,4.367,16421,3.967,17857,7.451,18165,5.164,19425,4.248,19436,4.143,19712,4.884,20280,5.164,21311,4.884,21434,5.164,21585,6.16,21604,4.884,21607,4.674,21646,4.674,21686,4.507,21795,4.674,21820,5.164,21939,4.884,22215,7.082,22231,4.507,22247,5.591,22248,5.591,22249,5.164,22250,4.674,22251,4.884,22252,5.164,22253,5.591,22254,5.591,22255,5.591,22256,4.674,22257,5.591,22258,5.591,22259,5.591,22260,4.674,22261,5.591,22262,5.591,22263,5.164,22264,5.591,22265,5.591,22266,5.591,22267,5.591,22268,5.591,22269,4.674,22270,4.884,22271,5.591,22272,5.591,22273,5.591,22274,5.591,22275,5.164,22276,5.591,22277,5.164,22278,5.591,22279,5.591,22280,5.591,22281,5.591,22282,5.591,22283,5.591,22284,4.884,22285,5.591,22286,5.591,22287,5.591,22288,5.591,22289,5.164,22290,5.591,22291,5.591,22292,5.591,22293,5.591,22294,5.591,22295,5.591,22296,5.591,22297,5.591,22298,9.538,22299,5.591,22300,5.591,22301,5.591,22302,5.591,22303,5.591,22304,5.591,22305,4.674,22306,8.107,22307,5.591,22308,5.591]],["title/additional-documentation/nestjs-application.html",[1014,2.356,1507,2.799,3459,2.86,3874,3.04]],["body/additional-documentation/nestjs-application.html",[5,0.014,18,1.847,30,0.001,31,0.418,33,0.298,72,1.754,78,6.342,87,1.847,95,0.048,103,0,104,0,163,3.272,185,1.463,210,2.4,240,1.171,329,1.101,336,0.91,355,1.47,359,2.067,367,1.799,368,1.476,404,0.677,425,2.276,427,2.204,443,2.345,475,1.872,511,3.808,524,2.203,574,5.035,577,2.095,627,2.316,667,4.356,704,2.946,722,4.092,744,2.708,766,1.606,774,4.076,779,5.514,781,3.265,784,1.973,803,3.727,845,2.652,948,4.531,951,4.531,956,3.885,957,3.375,1014,2.927,1021,4.937,1110,2.4,1113,3.013,1114,1.516,1236,5.592,1237,7.248,1240,3.442,1252,3.553,1253,4.56,1295,3.442,1298,4.011,1301,2.946,1427,3.265,1438,5.707,1473,3.408,1491,4.852,1507,2.179,1508,2.115,1510,4.651,1541,8.106,1555,5.308,1661,2.435,1696,3.408,1708,5.39,1722,3.125,1723,3.013,1724,5.544,1922,2.367,1941,2.652,1987,3.829,1991,2.022,2116,5.35,2171,1.606,2172,1.787,2173,3.916,2267,4.32,2317,5.209,2344,1.544,2400,3.408,2412,7.725,2478,2.136,2500,2.307,2507,3.829,2508,7.822,2509,2.77,2510,2.367,2526,2.367,2571,4.15,2572,2.4,2579,2.652,2658,2.601,2778,3.885,2835,5.06,2841,2.512,2882,2.227,3262,3.727,3457,5.178,3458,6.264,3459,6.786,3462,4.847,3542,1.927,3543,5.452,3544,1.552,3548,3.125,3550,2.919,3871,3.013,3872,2.555,3874,7.366,3900,2.84,4630,3.099,4945,2.005,4997,2.435,5233,3.013,5385,3.265,5400,3.944,5472,1.847,6047,2.435,6127,2.472,6145,2.435,6146,2.435,6222,5.209,6270,2.84,6328,3.452,6367,4.008,6414,2.708,6491,2.227,6589,2.367,6911,2.435,7652,3.636,7657,6.584,7661,6.458,7676,4.985,7679,5.805,7821,4.807,7840,6.293,8117,3.452,8537,2.203,8679,4.419,9387,4.419,9691,4.658,9971,3.125,9975,4.717,9980,2.84,10022,2.919,10277,4.32,10278,4.531,10349,2.601,10351,2.252,10768,2.84,10789,4.231,11042,3.125,11126,3.265,11156,5.241,11216,2.4,11254,3.265,11280,9.135,11284,3.452,11285,2.77,11390,3.125,11418,3.265,11421,2.555,11580,2.919,11591,4.32,11608,5.514,11610,2.77,11617,3.013,11827,2.708,11845,2.472,12377,2.919,12528,2.708,12571,3.013,12669,3.125,12906,3.265,13159,3.013,13361,2.77,13420,3.013,13422,3.013,14084,6.873,14495,7.972,14542,5.997,14886,2.84,14902,3.125,15251,3.013,15253,3.125,16207,8.105,17209,2.652,19425,6.452,19435,3.265,19436,6.876,19862,5.508,20272,3.125,20456,4.807,21394,3.452,21442,3.452,21450,3.452,21451,3.452,21584,3.125,21585,9.255,21586,5.209,21587,3.125,21589,3.013,21592,3.265,21602,6.22,21603,9.978,21623,3.265,21708,3.265,21753,3.013,21787,5.508,21794,3.452,21795,6.22,21796,5.209,21904,3.265,21919,3.013,21928,5.209,21986,3.265,22024,3.452,22066,3.452,22072,3.452,22182,5.209,22202,3.125,22238,3.452,22256,9.287,22269,4.985,22270,5.209,22284,5.209,22289,8.571,22309,3.737,22310,3.737,22311,7.757,22312,3.737,22313,3.737,22314,3.737,22315,3.737,22316,3.737,22317,5.963,22318,3.737,22319,6.499,22320,3.737,22321,3.737,22322,3.737,22323,3.737,22324,3.737,22325,3.737,22326,3.737,22327,3.737,22328,3.737,22329,3.737,22330,3.737,22331,3.737,22332,3.737,22333,3.737,22334,8.571,22335,3.452,22336,3.452,22337,3.452,22338,3.452,22339,3.452,22340,3.452,22341,3.452,22342,3.452,22343,3.737,22344,3.452,22345,3.737,22346,3.737,22347,3.737,22348,5.963,22349,3.265,22350,3.452,22351,3.265,22352,3.265,22353,3.737,22354,9.278,22355,3.737,22356,3.452,22357,3.737,22358,3.737,22359,9.889,22360,3.737,22361,3.737,22362,3.737,22363,3.737,22364,5.963,22365,8.491,22366,3.737,22367,5.963,22368,3.737,22369,5.963,22370,5.963,22371,3.737,22372,3.737,22373,8.491,22374,3.737,22375,3.737,22376,3.737,22377,3.737,22378,5.963,22379,3.737,22380,3.737,22381,3.737,22382,3.737,22383,5.963,22384,3.737,22385,3.737,22386,3.737,22387,3.452,22388,3.737,22389,3.737,22390,3.737,22391,5.963,22392,3.737,22393,3.737,22394,3.737,22395,3.737,22396,3.737,22397,3.737,22398,3.737,22399,5.963,22400,7.44,22401,3.737,22402,3.737,22403,7.44,22404,5.963,22405,3.737,22406,3.737,22407,3.737,22408,3.737,22409,3.737,22410,3.737,22411,3.737,22412,3.737,22413,5.963,22414,3.737,22415,5.963,22416,5.963,22417,3.452,22418,3.737,22419,6.873,22420,3.737,22421,3.737,22422,3.737,22423,3.452,22424,3.452,22425,3.737,22426,3.737,22427,3.737,22428,3.737,22429,3.737,22430,3.737,22431,3.737,22432,3.737]],["title/additional-documentation/nestjs-application/software-architecture.html",[1014,2.356,1507,2.799,21591,3.869,21653,4.013]],["body/additional-documentation/nestjs-application/software-architecture.html",[0,0.323,2,0.714,5,0.006,7,0.061,8,0.475,27,0.395,30,0.001,72,4.747,95,0.05,101,0.017,103,0,104,0,105,0.518,107,0.941,116,2.49,200,3.1,208,2.856,234,0.638,334,1.208,336,2.751,381,2.044,425,3.428,427,4.65,428,1.534,432,2.844,433,1.484,447,3.226,449,2.497,461,0.907,481,1.534,535,3.36,565,2.077,569,2.644,571,2.459,573,2.99,574,2.816,667,2.916,672,4.441,687,1.825,694,2.111,711,2.345,744,2.851,766,1.691,768,5.461,784,3.279,883,1.649,946,2.563,950,3.074,956,5.014,957,4.355,960,2.69,1110,2.527,1114,4.295,1126,4.5,1253,5.061,1295,3.585,1309,4.323,1417,2.527,1491,6.609,1492,2.371,1510,2.459,1724,2.206,1919,1.634,1921,2.602,1922,5.536,2086,2.792,2116,4.163,2185,3.515,2187,4.175,2282,4.175,2298,5.267,2309,3.482,2478,3.55,2485,5.563,2489,6.05,2499,3.289,2500,2.429,2503,3.172,2508,2.527,2509,2.916,2526,3.934,2543,2.99,2572,2.527,2576,3.635,2577,5.975,2578,4.047,2579,2.792,2672,2.459,2769,1.944,2778,2.563,3262,4.811,3331,3.482,3459,2.345,3542,2.029,3548,7.955,3552,4.604,3566,3.074,3613,4.604,3852,4.246,3870,3.172,3872,5.975,3874,3.934,4000,2.459,4038,2.429,4169,6.689,4220,2.739,4480,2.851,4531,5.007,4533,2.371,4571,3.289,4641,6.395,4997,5.694,5223,3.635,5346,4.874,5389,2.851,5395,2.99,5406,3.289,5410,2.527,5515,5.738,5999,4.323,6045,3.074,6047,4.047,6058,3.635,6329,2.739,6706,2.459,6707,4.5,6896,2.527,6984,3.172,7349,4.72,7652,2.399,7662,2.99,7840,2.916,8152,2.99,8682,2.99,9387,2.916,9401,4.811,9419,7.376,9474,2.99,9600,2.916,9725,2.644,9822,2.792,9975,3.45,10000,3.172,10381,2.99,10534,5.738,10548,2.99,11153,3.172,11156,3.834,11185,7.955,11204,4.5,11205,5.193,11226,4.604,11421,4.246,11590,2.602,11826,6.333,11827,2.851,11828,3.172,12133,3.289,12244,4.852,12377,3.074,12528,6.333,12573,6.434,12669,3.289,13238,4.852,13361,4.604,13413,3.074,13418,5.007,13420,3.172,13625,5.738,14024,3.437,14132,3.437,14904,3.635,15475,3.074,16086,3.437,16421,6.752,17124,5.426,17857,4.852,17862,3.289,18125,2.99,18293,6.434,18686,3.635,18993,3.172,19041,3.437,19242,3.289,19959,3.437,20272,3.289,20532,3.437,21539,3.289,21543,3.289,21547,3.437,21580,3.172,21585,2.99,21591,8.152,21593,5.426,21594,6.204,21606,3.289,21607,3.289,21610,2.99,21619,4.852,21653,5.193,21686,3.172,21687,7.955,21703,3.289,21716,3.289,21717,7.109,21723,3.635,21738,3.437,21741,5.426,21753,3.172,21760,3.289,21772,3.635,21775,3.437,21803,6.723,21824,3.074,21855,3.635,21867,3.437,21875,3.635,21904,3.437,21905,3.437,21928,5.426,22062,7.109,22113,3.635,22166,3.635,22168,6.434,22216,5.738,22228,3.289,22239,3.635,22242,3.289,22250,6.434,22260,7.955,22352,3.437,22433,3.935,22434,3.935,22435,9.515,22436,3.935,22437,3.935,22438,3.935,22439,3.935,22440,3.935,22441,8.74,22442,3.935,22443,3.635,22444,3.935,22445,3.935,22446,7.696,22447,10.383,22448,3.935,22449,3.935,22450,7.109,22451,3.935,22452,3.935,22453,3.935,22454,3.635,22455,3.935,22456,3.289,22457,3.289,22458,3.935,22459,7.696,22460,8.312,22461,5.193,22462,3.935,22463,3.935,22464,7.635,22465,3.935,22466,6.211,22467,3.437,22468,3.935,22469,6.211,22470,3.935,22471,3.935,22472,3.935,22473,3.935,22474,3.935,22475,3.935,22476,3.935,22477,3.635,22478,3.935,22479,3.935,22480,3.635,22481,3.935,22482,6.211,22483,3.635,22484,3.935,22485,3.935,22486,3.935,22487,8.074,22488,3.935,22489,3.635,22490,3.935,22491,3.935,22492,3.935,22493,3.635,22494,3.935,22495,3.935,22496,6.211,22497,3.935,22498,3.935,22499,3.935,22500,3.437,22501,3.935,22502,3.635,22503,3.935,22504,3.935,22505,3.935,22506,3.935,22507,3.635,22508,3.935,22509,3.935,22510,3.935,22511,3.935,22512,3.935,22513,5.738,22514,3.935,22515,3.935,22516,6.211,22517,6.211,22518,7.696,22519,7.696,22520,6.211,22521,6.211,22522,3.635,22523,3.935,22524,3.935,22525,3.289,22526,6.211,22527,3.935,22528,3.935,22529,3.935,22530,3.935,22531,3.437,22532,3.935,22533,3.935,22534,3.935,22535,3.935,22536,3.935,22537,6.211,22538,3.935,22539,3.635,22540,3.935]],["title/additional-documentation/nestjs-application/file-structure.html",[5,0.007,1014,2.356,1507,2.799,5221,3.749]],["body/additional-documentation/nestjs-application/file-structure.html",[0,0.373,2,0.383,3,0.009,5,0.016,9,2.599,27,0.39,30,0.001,31,0.556,32,0.076,34,0.572,36,1.181,72,4.107,95,0.07,100,3.313,101,0.018,103,0,104,0,105,0.716,112,1.544,127,0.422,154,1.519,163,2.504,165,0.544,185,1.304,192,2.052,206,4.479,208,2.554,215,1.078,217,1.049,221,1.281,227,0.726,234,1.116,235,1.886,240,1.044,309,4.952,329,0.981,331,2.083,334,0.367,336,1.324,355,1.31,359,1.884,364,1.472,368,1.316,374,2.199,380,2.07,381,3.088,425,3.348,427,4.155,428,1.299,431,1.322,432,2.009,433,3.539,441,2.032,447,2.886,449,2.185,461,1.586,481,4.024,491,2.668,494,2.008,513,2.782,535,5.585,543,1.669,569,2.239,571,2.083,574,5.614,575,1.985,577,1.868,667,1.564,672,4.446,687,1.546,696,1.718,704,3.924,722,1.47,744,3.938,766,5.158,768,4.885,769,3.239,782,2.911,839,2.552,845,2.364,883,3.33,940,5.021,951,2.532,954,2.469,956,3.541,957,1.886,1016,1.19,1021,1.773,1236,3.276,1252,5.593,1253,2.507,1285,4.988,1295,3.137,1301,1.646,1384,5.378,1405,4.246,1491,5.657,1492,4.149,1499,5.887,1500,2.239,1507,4.015,1508,1.886,1661,2.171,1683,1.964,1724,1.868,1725,4.988,1819,2.14,1828,3.069,1910,1.574,1921,2.204,1922,3.443,1923,2.786,1937,4.748,1945,1.803,1950,5.549,1952,2.916,1960,6.402,1987,7.365,2008,3.49,2092,1.886,2116,1.803,2187,3.653,2282,3.653,2298,2.008,2309,3.047,2344,2.246,2485,2.973,2489,1.904,2508,4.421,2510,5.031,2515,2.786,2516,2.911,2570,3.724,2571,2.319,2579,2.364,2672,2.083,2769,1.646,2778,4.485,2880,1.593,2955,1.886,3061,2.532,3262,3.398,3307,2.686,3331,1.868,3372,2.278,3419,2.057,3459,6.363,3542,3.55,3613,2.469,3710,2.008,3851,4.246,3852,2.278,3853,2.414,3872,3.716,3873,4.246,3874,2.11,4000,2.083,4013,4.13,4038,2.057,4166,2.911,4169,2.204,4531,4.382,4533,3.276,4556,1.706,4582,2.686,4630,1.731,4632,2.278,4960,5.031,5097,2.11,5221,2.603,5346,4.36,5389,2.414,5401,2.532,5944,2.11,5974,2.171,6000,3.078,6046,2.278,6047,2.171,6054,2.364,6325,5.378,6334,3.783,6339,2.686,6367,4.627,6731,3.896,6898,4.382,6911,3.541,7349,2.532,7601,2.532,7679,4.706,7907,2.319,8013,6.014,8101,2.786,8152,2.532,8161,2.786,8251,6.8,8682,2.532,8840,2.911,9343,3.078,9348,3.078,9387,2.469,9401,3.398,9418,2.603,9419,6.938,9420,5.549,9421,2.686,9422,2.786,9423,2.786,9427,2.911,9444,4.544,9445,2.603,9600,2.469,9611,2.364,10329,2.786,10380,2.786,10491,2.786,10767,5.021,10768,2.532,11184,2.786,11185,5.755,11216,4.421,11226,5.102,11240,2.911,11279,5.755,11483,4.544,11484,2.532,11826,4.988,12358,2.786,12377,6.835,12528,2.414,12659,2.911,12723,3.078,13238,6.204,13413,4.246,14497,2.686,14558,3.078,14620,3.078,14621,3.078,14622,2.786,14623,3.078,14624,2.911,14663,2.911,14886,2.532,14924,6.014,15475,2.603,16257,2.603,16421,2.364,16780,4.748,17049,2.686,17857,7.332,18958,3.078,21539,2.786,21573,2.911,21591,4.382,21602,2.786,21618,2.786,21619,5.378,21628,2.911,21637,5.755,21639,2.686,21644,2.911,21646,2.786,21690,2.686,21760,2.786,21775,2.911,21781,2.911,21782,3.078,21802,2.911,21806,3.078,21826,2.686,21881,3.078,21919,2.686,21986,2.911,22092,6.359,22161,2.911,22168,2.786,22185,3.078,22202,2.786,22230,3.078,22231,4.382,22242,2.786,22250,6.64,22251,6.014,22260,2.786,22305,5.755,22311,4.544,22350,3.078,22351,6.014,22352,2.911,22356,3.078,22447,7.566,22460,2.911,22461,2.786,22464,2.911,22522,3.078,22541,7.337,22542,4.748,22543,6.359,22544,3.078,22545,3.332,22546,5.435,22547,3.332,22548,9.385,22549,4.748,22550,7.942,22551,3.332,22552,3.332,22553,3.332,22554,5.435,22555,7.942,22556,3.332,22557,3.332,22558,3.332,22559,3.332,22560,5.435,22561,2.911,22562,3.332,22563,3.332,22564,3.332,22565,3.332,22566,3.332,22567,3.332,22568,3.332,22569,3.332,22570,3.332,22571,3.332,22572,3.332,22573,3.332,22574,3.332,22575,3.078,22576,3.332,22577,3.332,22578,3.332,22579,3.332,22580,3.332,22581,3.332,22582,3.332,22583,3.332,22584,3.332,22585,3.332,22586,3.332,22587,3.332,22588,3.078,22589,3.332,22590,3.332,22591,3.078,22592,5.021,22593,3.332,22594,3.332,22595,3.332,22596,3.332,22597,3.332,22598,3.332,22599,3.332,22600,3.332,22601,3.332,22602,3.332,22603,3.332,22604,3.332,22605,3.332,22606,3.332,22607,3.332,22608,3.332,22609,3.332,22610,3.332,22611,3.332,22612,3.078,22613,3.332,22614,3.332,22615,3.332,22616,3.332,22617,3.332,22618,3.078,22619,3.332,22620,3.332,22621,3.332,22622,3.332,22623,3.332,22624,3.332,22625,6.359,22626,2.911,22627,5.435,22628,3.332,22629,3.332,22630,3.332,22631,3.332,22632,3.332,22633,3.332]],["title/additional-documentation/nestjs-application/api-design.html",[1014,2.356,1491,2.743,1507,2.799,22242,4.013]],["body/additional-documentation/nestjs-application/api-design.html",[30,0.001,103,0.001,104,0.001,21983,9.715]],["title/additional-documentation/nestjs-application/logging.html",[1014,2.752,1507,3.271,6332,4.157]],["body/additional-documentation/nestjs-application/logging.html",[0,0.348,3,0.021,8,0.947,26,1.637,30,0.001,39,3.056,95,0.101,101,0.02,103,0.001,104,0.001,116,2.539,163,3.811,199,2.995,204,3.513,214,3.382,215,3.314,216,1.451,227,0.828,234,1.273,235,4.441,277,3.14,334,0.864,415,4.282,425,2.103,574,4.643,675,4.32,688,4.142,728,3.072,738,4.529,777,7.782,839,3.684,883,3.29,1052,5.563,1053,3.479,1252,4.676,1327,4.952,1500,6.884,1542,5.64,1543,5.322,1545,2.506,1547,3.904,1819,5.039,2489,4.484,2500,4.843,2514,5.19,2577,5.364,4038,4.843,4587,6.855,4632,7.795,5400,5.19,5407,6.13,6229,6.56,6332,8.958,6707,5.685,6760,5.685,7668,4.729,8159,9.295,8160,6.855,8190,6.13,10548,5.962,11185,6.56,11485,5.816,11522,8.947,11523,6.855,11568,6.13,11828,6.325,12133,6.56,13420,6.325,14048,6.56,19641,8.256,21824,6.13,21868,7.249,21919,6.325,22231,6.325,22634,7.847,22635,7.847,22636,7.847,22637,10.242,22638,7.847,22639,7.847,22640,7.847,22641,7.847,22642,7.847,22643,7.847,22644,7.847,22645,7.847,22646,7.847,22647,7.847,22648,7.847,22649,7.249,22650,7.249,22651,7.847]],["title/additional-documentation/nestjs-application/exception-handling.html",[1014,2.356,1507,2.799,1819,3.082,6331,3.477]],["body/additional-documentation/nestjs-application/exception-handling.html",[0,0.308,9,3.13,30,0.001,31,0.367,32,0.165,47,0.816,48,5.271,51,4.479,72,4.256,101,0.017,103,0.001,104,0.001,111,1.309,116,2.118,163,3.279,204,4.54,214,2.993,215,2.118,216,1.676,217,0.864,227,0.691,234,1.821,240,2.84,305,2.992,329,3.063,334,0.72,367,3.15,404,1.185,406,2.097,407,5.276,417,4.851,425,1.754,503,5.464,565,4.785,571,4.091,574,4.715,672,4.607,676,3.511,685,3.428,689,3.636,722,3.998,744,4.742,784,3.455,883,2.744,954,4.851,1016,3.237,1110,4.203,1158,3.483,1253,4.796,1327,4.817,1473,3.74,1474,2.221,1490,6.046,1491,5.181,1492,6.268,1498,6.568,1500,8.198,1507,5.287,1508,5.886,1510,4.091,1515,4.203,1542,5.691,1547,3.256,1817,5.472,1819,8.413,1826,6.046,1922,4.146,2038,4.474,2309,3.669,2505,5.472,2507,4.203,2514,4.329,2577,6.197,3061,4.973,3459,6.198,3544,2.718,3851,5.113,3870,9.504,3871,5.276,3876,8.125,4038,6.42,4582,5.276,4632,4.474,5409,5.472,5410,4.203,5451,4.973,6331,4.742,6332,6.719,6338,5.472,7848,5.472,8137,3.401,8152,7.903,8159,4.645,8210,5.113,8216,6.046,8218,5.472,8537,3.858,8538,4.04,9401,5.667,9445,5.113,10473,6.046,11485,4.851,13422,5.276,14555,5.472,19946,6.046,21584,5.472,21665,6.046,21792,6.046,21824,5.113,21988,11.955,22461,5.472,22525,5.472,22575,6.046,22652,6.046,22653,6.545,22654,9.066,22655,6.545,22656,6.545,22657,6.545,22658,6.545,22659,6.545,22660,6.545,22661,6.545,22662,6.545,22663,6.545,22664,6.545,22665,6.545,22666,6.545,22667,6.545,22668,6.046,22669,6.545,22670,6.545,22671,6.545,22672,6.545,22673,6.046,22674,6.545]],["title/additional-documentation/nestjs-application/domain-object-validation.html",[359,1.454,1014,2.059,1492,2.528,1507,2.446,2485,1.812]],["body/additional-documentation/nestjs-application/domain-object-validation.html",[0,0.304,30,0.001,103,0.001,104,0.001,116,2.895,188,3.387,334,1.226,347,1.822,359,4.525,475,5.578,574,4.055,667,4.199,685,4.685,692,3.333,704,4.42,783,5.391,957,6.302,1492,5.391,1872,5.917,1922,5.666,2187,6.013,2477,6.873,2485,5.637,2499,7.479,2507,7.15,2514,7.365,2570,4.84,2691,4.885,2881,4.078,3106,5.015,3465,7.479,5383,7.815,5389,6.482,5974,5.828,5999,6.227,7840,6.63,9419,6.013,9574,6.348,9980,8.461,11591,6.482,11826,6.482,13413,6.988,18125,6.797,21614,7.211,21721,9.309,21753,7.211,21883,8.264,22161,7.815,22171,10.286,22454,8.264,22625,12.704,22675,8.946,22676,8.946,22677,8.946,22678,8.946,22679,11.135,22680,8.946,22681,8.946,22682,8.946,22683,8.946,22684,8.946,22685,11.135,22686,8.946]],["title/additional-documentation/nestjs-application/testing.html",[1014,2.752,1507,3.271,10789,3.98]],["body/additional-documentation/nestjs-application/testing.html",[0,0.181,27,0.167,29,0.422,30,0.001,31,0.298,32,0.11,35,0.486,36,1.697,51,1.152,72,4.516,79,3.516,94,1.108,95,0.03,96,0.63,100,0.78,103,0,104,0,112,2.44,144,1.728,150,1.476,163,3.132,188,1.524,199,0.89,200,1.73,204,3.502,209,0.802,217,1.41,221,2.341,227,0.824,234,0.378,235,3.579,290,1.345,309,4.42,329,1.185,379,0.927,380,0.842,381,1.748,394,2.3,425,2.372,428,2.465,432,1.963,443,0.916,444,0.893,447,1.687,449,0.937,460,3.036,461,0.927,475,1.168,481,0.909,500,1.593,511,1.193,535,3.421,569,1.566,571,2.516,573,1.771,574,4.841,575,1.389,672,1.184,687,4.736,688,3.338,691,4.09,698,1.283,704,4.373,711,1.389,728,2.795,744,1.689,766,2.717,768,2.856,774,1.593,779,4.687,784,1.23,795,1.374,836,2.323,839,1.094,883,3.274,905,0.968,948,3.058,954,1.727,1018,1.518,1110,1.497,1114,0.945,1126,6.413,1158,2.142,1236,7.682,1237,1.821,1240,2.323,1253,4.081,1285,1.689,1295,3.65,1300,1.087,1301,1.152,1306,1.771,1420,1.622,1491,5.058,1499,1.727,1500,1.566,1508,1.319,1510,1.457,1512,3.516,1555,1.457,1659,4.487,1662,2.153,1705,2.036,1724,1.307,1725,1.689,1828,3.482,1871,1.438,1872,2.662,1921,1.542,1922,1.476,1924,1.771,1936,1.821,2048,2.036,2092,1.319,2116,2.177,2183,1.727,2185,1.319,2186,2.549,2263,1.654,2267,1.689,2317,2.036,2395,3.036,2439,4.582,2450,2.549,2477,1.438,2478,3.614,2489,4.785,2500,3.279,2507,2.585,2508,8.152,2510,1.476,2515,1.948,2518,2.036,2543,1.771,2563,1.457,2570,4.53,2571,2.801,2578,5.088,2579,4.487,2672,1.457,2684,1.689,2730,3.365,2955,1.319,3027,2.3,3091,1.062,3106,1.307,3110,1.129,3145,4.805,3285,2.454,3331,1.307,3397,1.542,3459,2.398,3462,6.813,3548,3.365,3550,1.821,3613,1.727,3852,2.751,3872,1.593,3873,1.821,3874,1.476,3976,3.144,4168,2.036,4169,2.662,4480,4.582,4556,2.06,4582,3.244,4630,1.211,4632,3.631,4638,1.821,4641,1.566,4960,1.476,4989,1.438,4997,1.518,5121,3.411,5221,5.577,5227,1.948,5346,2.549,5389,2.916,5400,1.542,5401,1.771,5403,1.821,5404,1.879,5405,1.771,5412,1.771,5437,1.948,5451,1.771,5566,2.705,5974,1.518,5994,1.948,5999,1.622,6047,2.622,6122,1.542,6329,1.622,6331,2.916,6367,1.566,6414,1.689,6418,1.821,6637,4.582,6706,1.457,6707,1.689,6717,1.727,6731,1.319,6758,3.461,6809,6.236,6896,1.497,6901,1.821,7339,1.622,7349,3.058,7629,2.983,7652,5.866,7659,1.821,7661,3.697,7670,3.516,7676,3.365,7679,2.751,7778,2.036,7907,2.801,8101,1.948,8508,7.466,9141,1.821,9387,5.291,9388,2.153,9401,4.462,9418,3.144,9419,1.566,9445,6.914,9474,1.771,9690,1.821,9980,1.771,9981,2.153,10000,3.244,10275,1.689,10278,3.058,10317,2.801,10323,5.659,10326,1.727,10359,1.948,10533,1.821,10543,2.153,10768,1.771,10769,1.879,10787,7.215,10789,7.72,10910,2.036,11199,1.821,11200,2.153,11204,1.689,11216,2.585,11279,1.948,11421,2.751,11484,3.058,11586,1.727,11591,1.689,11635,1.771,11826,2.916,12134,2.153,12528,3.849,12564,4.282,12571,1.879,12670,1.948,12929,2.036,12936,5.524,13160,1.879,13231,1.879,13354,2.036,13359,1.948,13412,3.516,13413,1.821,13420,1.879,13421,2.036,13422,1.879,13440,1.654,13626,3.937,14044,3.718,14048,3.365,14231,3.718,14664,2.036,14716,3.244,14883,3.365,15097,2.153,15475,1.821,16263,1.879,16421,3.77,16476,1.948,16486,2.036,17090,2.036,17124,2.036,17228,3.516,17862,1.948,18125,1.771,18274,2.036,18293,1.948,18897,4.441,18993,3.244,19043,3.516,19045,2.153,19051,2.153,19242,1.948,19423,3.718,19425,4.805,19426,5.841,19430,5.841,19435,5.524,19436,2.983,19700,3.516,20443,7,20456,3.244,20696,4.907,21391,2.036,21414,2.153,21543,1.948,21550,2.153,21585,3.058,21587,3.365,21594,1.879,21596,1.948,21598,3.365,21603,1.771,21610,1.771,21614,1.879,21616,2.036,21619,4.94,21639,1.879,21653,1.948,21666,2.153,21669,2.153,21672,2.153,21674,2.153,21686,1.879,21687,1.948,21690,1.879,21691,2.153,21706,2.153,21707,2.153,21721,3.365,21738,3.516,21753,4.282,21760,1.948,21778,2.153,21781,2.036,21788,2.153,21796,2.036,21803,2.036,21826,1.879,21867,2.036,21873,2.036,21905,2.036,21919,1.879,21939,2.036,21983,2.036,22093,2.153,22111,2.153,22145,2.153,22172,2.153,22176,2.153,22182,2.036,22215,2.036,22228,1.948,22250,1.948,22251,2.036,22260,4.441,22275,4.907,22277,3.718,22305,1.948,22311,7.4,22349,2.036,22417,2.153,22447,3.244,22450,2.153,22457,1.948,22460,2.036,22461,1.948,22464,3.516,22467,2.036,22480,2.153,22487,2.153,22489,2.153,22500,3.516,22502,2.153,22507,8.886,22525,3.365,22531,3.516,22539,3.718,22541,4.907,22542,2.036,22543,3.718,22544,2.153,22549,2.036,22561,3.516,22591,2.153,22592,2.153,22618,2.153,22650,2.153,22652,2.153,22668,2.153,22687,2.331,22688,2.331,22689,2.331,22690,6.323,22691,2.036,22692,2.331,22693,3.718,22694,5.312,22695,2.331,22696,4.025,22697,2.331,22698,2.331,22699,4.025,22700,2.331,22701,2.331,22702,2.331,22703,2.036,22704,2.331,22705,2.331,22706,2.331,22707,2.331,22708,2.331,22709,2.331,22710,2.331,22711,2.331,22712,2.331,22713,2.331,22714,2.331,22715,2.331,22716,6.323,22717,2.331,22718,2.153,22719,2.331,22720,2.331,22721,2.153,22722,2.331,22723,2.331,22724,7.81,22725,2.331,22726,2.331,22727,2.331,22728,2.331,22729,2.331,22730,3.718,22731,4.025,22732,7.139,22733,4.025,22734,2.331,22735,2.331,22736,2.036,22737,2.331,22738,5.312,22739,4.025,22740,4.025,22741,7.81,22742,4.025,22743,2.331,22744,2.331,22745,2.153,22746,2.036,22747,5.312,22748,2.331,22749,5.312,22750,4.025,22751,7.139,22752,4.025,22753,5.312,22754,2.331,22755,2.331,22756,2.331,22757,4.025,22758,8.372,22759,2.331,22760,2.331,22761,2.331,22762,2.331,22763,2.331,22764,2.331,22765,2.331,22766,2.331,22767,2.331,22768,2.331,22769,2.331,22770,2.331,22771,2.331,22772,2.331,22773,2.331,22774,2.331,22775,2.331,22776,4.025,22777,2.331,22778,2.153,22779,5.312,22780,2.331,22781,2.331,22782,2.331,22783,2.331,22784,5.312,22785,2.331,22786,4.025,22787,4.025,22788,2.331,22789,2.331,22790,2.331,22791,2.331,22792,2.331,22793,4.025,22794,4.025,22795,4.025,22796,5.312,22797,2.331,22798,2.331,22799,4.025,22800,4.025,22801,4.025,22802,5.312,22803,2.331,22804,2.331,22805,2.331,22806,4.025,22807,2.331,22808,4.025,22809,2.331,22810,2.331,22811,2.331,22812,4.025,22813,4.025,22814,2.331,22815,2.331,22816,2.331,22817,2.331,22818,7.139,22819,2.331,22820,5.312,22821,2.153,22822,2.036,22823,2.331,22824,2.331,22825,2.331,22826,2.331,22827,2.331,22828,2.331,22829,2.331,22830,2.331,22831,6.323,22832,2.331,22833,2.331,22834,4.025,22835,2.331,22836,4.025,22837,2.331,22838,2.331,22839,2.331,22840,2.331,22841,2.331,22842,2.331,22843,2.331,22844,2.153,22845,2.331,22846,2.331,22847,2.331,22848,2.331,22849,2.331,22850,2.331,22851,4.025,22852,2.331,22853,2.331,22854,2.331,22855,2.331,22856,2.331,22857,2.331,22858,2.331,22859,2.331,22860,2.331,22861,2.331,22862,2.331]],["title/additional-documentation/nestjs-application/vscode.html",[1014,2.752,1507,3.271,21589,4.521]],["body/additional-documentation/nestjs-application/vscode.html",[5,0.016,30,0.001,72,4.489,103,0.001,104,0.001,210,6.14,722,5.116,795,5.636,950,7.47,1021,5.088,1236,5.763,2267,6.928,2508,7.449,3459,6.912,3542,5.983,3873,7.47,3874,7.347,4630,6.028,6047,6.23,6122,6.325,6327,7.994,7840,7.087,11221,7.708,11226,7.087,14016,8.353,19425,8.814,21589,9.351,21620,10.133,21795,7.994,21885,8.833,22054,8.353,22167,8.833,22218,11.536,22249,8.833,22256,7.994,22311,7.994,22351,8.353,22387,8.833,22423,8.833,22456,7.994,22561,8.353,22626,10.133,22863,9.562,22864,9.562,22865,9.562,22866,9.562,22867,9.562,22868,9.562,22869,9.562]],["title/additional-documentation/nestjs-application/git.html",[1014,2.752,1507,3.271,21590,4.689]],["body/additional-documentation/nestjs-application/git.html",[30,0.001,31,0.419,55,2.447,72,3.506,77,4.73,103,0.001,104,0.001,154,3.405,309,4.227,329,2.2,379,1.721,444,2.863,543,3.741,569,5.02,574,3.385,722,3.294,728,2.924,957,6.298,1021,3.974,1126,5.411,1239,6.244,1253,5.132,1300,3.485,1327,2.949,1474,2.535,1722,6.244,1723,6.02,1724,5.558,1872,6.558,1921,7.361,1941,7.035,1991,4.04,2049,9.946,2185,4.227,2282,5.02,2309,4.187,2477,4.61,2489,4.268,2508,6.367,2510,4.73,2563,4.668,2572,4.796,2577,5.105,2701,3.444,2835,4.45,2880,4.741,3397,4.94,4630,3.881,4641,5.02,4997,7.251,5346,4.73,5405,5.675,5998,8.661,6334,5.198,6589,4.73,6702,5.834,6911,4.866,7601,5.675,7679,5.105,9141,5.834,9822,5.3,11199,5.834,11311,5.3,11312,5.198,11456,6.524,11483,6.244,11590,4.94,11593,5.675,11825,6.524,13359,6.244,13361,8.787,13626,5.535,13786,8.661,14805,6.524,18878,6.899,21590,9.912,21609,6.524,21614,6.02,21624,6.524,21625,6.524,21637,9.305,21641,8.289,21687,9.912,21688,6.899,21824,7.745,21826,6.02,21873,9.722,21950,6.899,22114,6.899,22231,8.971,22263,6.899,22284,8.661,22443,6.899,22456,8.289,22477,6.899,22542,8.661,22588,6.899,22821,6.899,22822,6.524,22870,7.468,22871,7.468,22872,7.468,22873,7.468,22874,7.468,22875,7.468,22876,7.468,22877,11.129,22878,7.468,22879,7.468,22880,7.468,22881,7.468,22882,7.468,22883,7.468,22884,7.468,22885,9.914,22886,7.468,22887,7.468,22888,9.914,22889,7.468,22890,7.468,22891,7.468,22892,7.468,22893,7.468,22894,7.468,22895,7.468,22896,7.468,22897,7.468,22898,7.468,22899,7.468,22900,7.468]],["title/additional-documentation/nestjs-application/keycloak.html",[773,3.601,1014,2.752,1507,3.271]],["body/additional-documentation/nestjs-application/keycloak.html",[5,0.006,18,2.232,30,0.001,31,0.601,51,3.417,53,5.963,78,8.053,87,3.417,95,0.121,101,0.018,103,0,104,0,163,3.375,235,2.557,355,1.776,363,4.441,379,1.593,432,1.67,443,1.776,444,1.732,461,1.593,538,2.025,540,5.011,569,3.036,573,3.432,574,4.268,722,3.05,728,2.708,773,8.584,774,3.088,803,2.824,883,1.894,938,3.273,954,3.348,958,5.782,960,3.088,1021,5.4,1114,1.833,1126,3.273,1134,6.328,1236,4.168,1272,3.088,1295,2.608,1381,2.634,1382,5.187,1473,3.952,1491,3.952,1500,3.036,1541,3.529,1693,5.782,1717,5.396,1724,3.877,1916,3.35,1921,4.574,2008,2.901,2048,3.946,2076,3.65,2116,6.217,2173,4.342,2185,2.557,2267,3.273,2298,2.723,2400,6.567,2412,8.977,2423,2.755,2500,2.788,2509,6.228,2510,2.861,2514,2.988,2572,2.901,2577,3.088,2658,3.144,2841,8.08,2882,6.847,2955,3.914,3091,3.831,3262,5.253,3457,5.849,3462,4.506,3544,1.876,3547,3.036,3874,2.861,3948,6.385,4480,3.273,4556,4.301,4632,3.088,5346,2.861,5395,3.432,5452,3.946,6047,2.943,6270,3.432,6326,3.642,6461,2.861,6589,4.38,6637,3.273,6706,4.323,6896,4.441,6911,2.943,7136,6.978,7657,5.963,7840,5.126,8159,4.908,8508,8.629,9419,3.036,9735,3.529,9971,3.777,10277,3.273,10351,2.723,10705,6.088,10789,5.963,11126,8.225,11156,4.269,11184,3.777,11254,3.946,11421,5.744,11439,2.582,11580,7.928,11590,2.988,11604,3.642,11617,7.589,12809,7.34,12906,7.34,12908,7.589,12912,3.946,12948,7.154,13041,3.946,13160,3.642,13162,4.173,13236,6.389,13361,6.228,14016,3.946,14495,3.642,14542,6.774,14903,4.173,15027,3.777,15253,3.777,16421,5.963,19048,3.777,19425,3.432,19436,5.126,20456,3.642,21585,3.432,21588,3.946,21603,9.424,21613,3.946,21641,3.777,21690,3.642,21708,3.946,21747,4.173,21824,5.402,21856,4.173,21888,4.173,21921,4.173,21992,4.173,22240,8.865,22256,7.871,22319,10.501,22334,9.375,22335,7.762,22336,6.389,22337,6.389,22338,6.389,22339,8.697,22340,6.389,22341,6.389,22342,8.697,22344,4.173,22419,6.389,22721,4.173,22736,3.946,22778,4.173,22901,4.517,22902,4.517,22903,4.517,22904,4.517,22905,9.415,22906,4.517,22907,4.517,22908,4.517,22909,4.517,22910,4.517,22911,6.916,22912,4.517,22913,4.517,22914,4.517,22915,4.517,22916,6.916,22917,4.517,22918,6.916,22919,6.916,22920,6.916,22921,6.916,22922,11.14,22923,6.916,22924,6.916,22925,6.916,22926,6.916,22927,4.517,22928,4.517,22929,4.517,22930,10.148,22931,6.916,22932,6.916,22933,4.517,22934,4.517,22935,6.916,22936,4.517,22937,4.517,22938,4.517,22939,4.517,22940,4.517,22941,4.517,22942,6.916,22943,4.517,22944,4.517,22945,4.517,22946,6.916,22947,6.916,22948,4.517,22949,4.517,22950,4.517,22951,4.517,22952,4.517,22953,4.517,22954,4.517,22955,4.517,22956,4.517,22957,4.517]],["title/additional-documentation/nestjs-application/rocket.chat.html",[1014,2.752,1507,3.271,22958,5.181]],["body/additional-documentation/nestjs-application/rocket.chat.html",[5,0.011,30,0.001,31,0.418,103,0.001,104,0.001,210,4.787,247,2.957,574,3.379,948,9.829,1021,3.966,1113,6.009,1114,3.024,1240,4.303,1252,5.9,1278,4.033,1294,5.189,1359,5.664,1405,7.735,1923,6.232,2116,5.357,2173,3.438,2400,8.13,2412,5.823,2477,4.601,2882,4.442,3457,5.189,3458,4.722,3462,4.857,3544,4.112,3874,4.722,6270,5.664,6908,5.664,8679,5.525,9725,5.01,10474,5.823,11610,5.525,14542,6.009,14806,6.512,14924,6.512,16780,8.65,19436,5.525,20711,6.232,21603,7.524,21826,6.009,22240,6.512,22269,6.232,22319,10.772,22457,6.232,22626,6.512,22958,10.271,22959,7.454,22960,7.454,22961,7.454,22962,7.454,22963,7.454,22964,9.902,22965,7.454,22966,7.454,22967,7.454,22968,7.454,22969,7.454,22970,7.454,22971,9.902,22972,7.454,22973,7.454,22974,7.454,22975,7.454,22976,7.454,22977,7.454,22978,7.454,22979,7.454,22980,7.454,22981,7.454,22982,7.454,22983,7.454,22984,7.454,22985,7.454,22986,7.454,22987,7.454,22988,7.454,22989,7.454,22990,7.454,22991,7.454,22992,7.454,22993,7.454,22994,7.454,22995,7.454,22996,7.454,22997,7.454,22998,7.454,22999,7.454,23000,7.454,23001,7.454,23002,7.454,23003,7.454,23004,7.454,23005,7.454,23006,7.454,23007,9.902,23008,9.902,23009,7.454,23010,7.454]],["title/additional-documentation/nestjs-application/configuration.html",[1014,2.752,1507,3.271,2171,2.41]],["body/additional-documentation/nestjs-application/configuration.html",[30,0.001,31,0.48,34,1.034,55,2.187,102,3.04,103,0.001,104,0.001,199,2.3,200,2.787,204,2.934,234,0.977,329,1.775,367,4.117,379,1.388,428,2.349,483,4.787,511,3.085,571,5.348,574,2.731,575,3.591,576,7.359,577,3.378,671,3.317,688,3.181,722,3.773,728,2.359,769,3.591,883,4.17,946,3.926,951,4.579,956,3.926,1021,3.206,1042,5.038,1110,3.87,1114,2.444,1236,3.632,1237,4.707,1239,10.215,1252,3.591,1253,4.587,1327,2.38,1473,3.444,1474,2.045,1491,4.889,1510,5.348,1725,6.198,1848,4.05,1871,3.719,1922,3.817,1987,7.343,1991,3.26,2008,3.87,2049,8.728,2116,4.628,2171,2.59,2173,2.779,2185,3.41,2489,6.187,2507,6.953,2508,5.494,2509,6.34,2514,3.986,2526,5.419,2578,3.926,2811,6.217,3459,6.814,3462,7.054,3873,6.683,3874,8.403,3948,4.579,4013,4.579,4169,3.986,4484,4.857,4630,3.131,4969,3.41,5121,5.494,5227,5.038,5346,5.419,5389,4.366,5403,4.707,5944,3.817,6046,4.119,6145,5.573,6229,5.038,6331,4.366,6332,4.466,6491,6.452,6589,5.419,6731,4.842,6736,4.579,7309,4.466,7679,4.119,8537,3.552,8682,6.5,9309,5.264,9368,4.707,9985,8.227,10358,4.707,10789,4.276,11199,4.707,11204,6.198,11216,5.494,11250,5.264,11421,4.119,11484,6.5,12528,4.366,12589,7.77,13159,8.018,13238,6.683,13361,4.466,13626,4.466,13967,4.857,14497,4.857,14886,4.579,14902,5.038,15250,5.038,15251,4.857,16257,4.707,16263,6.896,16421,4.276,17535,5.264,19641,4.857,20711,5.038,20934,5.264,21580,4.857,21584,7.152,21585,4.579,21586,5.264,21587,5.038,21588,5.264,21589,4.857,21590,7.152,21591,6.896,21592,5.264,21593,5.264,21594,6.896,21595,5.264,21596,5.038,21597,7.903,21598,7.152,21599,5.566,21600,5.566,21601,5.566,21602,5.038,21603,7.558,21604,5.264,21605,7.903,21606,5.038,21607,5.038,21608,7.903,21609,5.264,21610,4.579,21611,5.038,21612,5.264,21613,5.264,21614,4.857,21615,5.566,21616,5.264,21617,5.566,21618,5.038,21619,4.707,21620,5.264,21621,7.903,21622,7.903,21623,8.689,21624,9.989,21625,5.264,21626,5.566,21627,7.903,21628,5.264,21629,5.566,21630,5.566,21631,5.566,21632,7.903,21633,7.903,21634,5.566,21635,5.566,21636,5.566,21637,5.038,21638,5.566,21639,4.857,21640,5.566,21641,7.152,21642,5.566,21643,5.566,21644,5.264,21645,5.566,21646,5.038]],["title/additional-documentation/nestjs-application/authorisation.html",[1014,2.752,1507,3.271,3550,4.381]],["body/additional-documentation/nestjs-application/authorisation.html",[0,0.075,5,0.007,8,0.612,9,1.049,10,1.543,26,1.881,27,0.091,30,0.001,31,0.285,32,0.085,33,0.11,34,1.041,47,0.655,72,4.403,74,1.769,94,1.043,101,0.01,103,0,104,0,105,0.289,111,1.213,112,1.542,116,1.236,137,5.879,185,2.693,188,4.29,192,3.238,199,3.097,208,1.418,214,0.725,215,0.71,216,0.938,217,1.514,221,2.124,227,0.907,234,1.115,235,2.162,240,0.688,277,4.955,290,1.267,307,2.388,309,2.871,334,0.242,347,1.034,359,2.813,367,1.056,368,2.397,369,1.338,371,1.053,379,0.506,380,2.028,381,1.669,404,0.397,406,0.703,425,2.416,427,1.412,433,1.441,461,2.908,475,1.914,483,1.056,495,5.606,496,4.206,535,2.067,540,3.676,571,3.793,574,4.526,575,1.308,672,1.941,687,1.018,688,2.678,691,3.602,698,1.208,722,0.968,728,1.496,731,2.704,744,1.59,766,4.927,768,4.88,769,3.616,781,1.917,795,3.577,806,0.925,843,3.294,851,1.077,852,1.077,853,1.115,883,3.604,905,0.911,950,1.714,954,4.497,956,3.305,957,5.102,960,1.5,1021,1.168,1031,1.626,1114,3.292,1121,5.648,1123,2.027,1126,3.676,1132,4.09,1158,1.168,1240,5.204,1252,1.308,1253,1.012,1295,3.97,1304,2.527,1309,1.527,1438,4.079,1491,2.183,1500,1.475,1507,3.539,1510,1.372,1661,3.305,1665,2.027,1666,1.527,1683,1.293,1721,1.917,1724,3.856,1828,1.703,1862,1.208,1865,5.482,1866,4.272,1871,3.131,1872,3.356,1887,7.909,1888,6.008,1890,2.42,1910,2.396,1916,5.998,1921,2.527,1922,4.356,1923,1.835,1924,1.667,1925,1.985,1928,3.131,1932,2.597,1936,1.714,1942,2.903,1959,3.76,1987,1.409,1988,1.917,1989,5.789,1990,1.714,1991,3.721,2033,1.43,2056,1.475,2086,2.711,2092,2.871,2116,2.745,2155,1.475,2173,1.012,2185,1.242,2187,2.568,2298,1.323,2299,2.027,2477,3.746,2478,1.254,2485,4.765,2489,4.314,2490,4.09,2491,2.027,2500,1.355,2505,3.194,2507,1.409,2510,1.39,2514,1.452,2526,6.324,2563,3.171,2571,1.527,2572,4.848,2577,6.412,2578,3.305,2579,4.88,2594,0.968,2675,3.375,2691,0.963,2701,2.34,2744,2.262,2769,3.73,2835,1.308,2951,1.308,3061,3.855,3091,1.742,3103,1.835,3105,2.42,3106,3.402,3110,4.543,3187,1.323,3262,5.374,3331,1.23,3356,1.452,3360,2.612,3372,3.468,3396,1.409,3458,1.39,3459,2.277,3508,1.714,3542,3.547,3543,2.978,3544,0.911,3552,1.626,3613,5.097,3830,4.356,3832,3.41,3850,1.769,3852,4.701,3871,1.769,3874,4.356,4169,5.963,4209,1.769,4227,1.746,4481,1.769,4485,2.612,4486,1.917,4499,4.948,4586,1.527,4628,1.452,4630,1.14,4632,6.631,4821,1.355,4960,2.42,4989,1.355,4997,2.489,5121,4.848,5221,2.984,5395,1.667,5404,1.769,5974,2.489,5999,2.659,6046,1.5,6146,1.43,6325,1.714,6329,1.527,6334,1.527,6366,1.59,6411,1.917,6418,2.984,6491,1.308,6585,1.917,6589,3.844,6597,3.337,6598,3.529,6637,1.59,6667,1.917,6668,1.835,6707,1.59,6727,2.05,6731,4.866,6733,1.557,6735,3.855,6749,1.714,6754,1.667,6793,3.531,6856,2.027,6906,1.769,6914,2.768,7135,1.769,7219,1.372,7309,1.626,7339,1.527,7629,1.626,7652,1.338,7653,1.714,7667,3.963,7907,1.527,8152,1.667,8161,1.835,8537,1.293,8679,1.626,8840,1.917,9401,3.793,9419,4.623,9421,4.09,9474,1.667,9574,1.557,9725,1.475,9822,1.557,10170,1.769,10175,2.027,10351,3.057,10363,1.626,10381,6.166,10541,1.917,10796,4.687,11136,2.027,11153,1.769,11156,1.355,11204,4.983,11216,1.409,11279,1.835,11281,2.027,11378,2.489,11472,1.769,11485,1.626,11591,1.59,11593,1.667,11635,1.667,11826,5.469,11827,4.397,12133,4.242,12468,1.917,12573,1.835,12670,1.835,13313,3.529,13314,1.835,13357,2.027,13361,1.626,13412,1.917,13413,2.984,13418,1.769,13440,1.557,13916,2.027,13926,2.027,13967,1.769,14048,1.835,14170,3.08,14497,3.08,14883,3.194,14886,1.667,14898,1.917,15475,1.714,15942,2.027,16086,1.917,16111,2.027,16257,1.714,16263,1.769,16421,2.711,16476,1.835,16946,3.337,17049,6.085,17185,2.027,17620,1.917,18868,3.337,18877,3.337,18897,4.242,18938,2.027,19041,6.008,19046,4.242,19072,5.606,19190,2.027,19436,3.76,19455,2.027,20456,4.892,20506,2.027,20507,2.027,21180,3.529,21279,2.027,21391,7.875,21538,1.917,21539,1.835,21545,2.027,21594,3.08,21596,1.835,21606,1.835,21610,3.855,21611,1.835,21618,1.835,21619,1.714,21639,1.769,21686,3.08,21690,5.544,21703,3.194,21716,1.835,21721,3.194,21741,1.917,21756,2.027,21802,3.337,21967,2.027,21984,2.027,22054,5.301,22168,1.835,22178,2.027,22181,2.027,22202,1.835,22228,1.835,22252,2.027,22269,1.835,22270,1.917,22349,4.432,22424,2.027,22447,3.08,22456,3.194,22457,3.194,22467,1.917,22483,4.687,22493,2.027,22500,1.917,22513,3.529,22531,5.301,22549,1.917,22612,3.529,22649,2.027,22691,1.917,22693,5.606,22703,1.917,22718,2.027,22730,2.027,22736,1.917,22745,2.027,22822,1.917,22844,3.529,23011,2.195,23012,2.195,23013,3.82,23014,2.195,23015,6.068,23016,2.195,23017,2.027,23018,6.068,23019,3.82,23020,2.195,23021,2.195,23022,3.82,23023,3.82,23024,3.82,23025,2.195,23026,2.195,23027,3.82,23028,8.598,23029,2.195,23030,2.195,23031,2.195,23032,3.82,23033,2.195,23034,2.195,23035,2.195,23036,2.195,23037,2.195,23038,2.195,23039,3.82,23040,2.195,23041,2.195,23042,2.195,23043,2.195,23044,5.073,23045,2.195,23046,3.82,23047,5.073,23048,3.82,23049,3.82,23050,2.195,23051,3.82,23052,2.195,23053,2.195,23054,2.195,23055,2.195,23056,2.195,23057,2.195,23058,2.195,23059,2.195,23060,2.195,23061,2.195,23062,2.195,23063,2.195,23064,2.195,23065,2.195,23066,2.195,23067,2.195,23068,2.195,23069,2.195,23070,2.195,23071,3.82,23072,2.195,23073,2.195,23074,2.195,23075,2.195,23076,2.195,23077,2.195,23078,2.195,23079,5.073,23080,2.195,23081,2.195,23082,2.195,23083,2.195,23084,2.195,23085,2.195,23086,2.195,23087,5.073,23088,2.195,23089,6.068,23090,2.195,23091,2.195,23092,3.82,23093,2.195,23094,2.195,23095,6.068,23096,2.195,23097,2.195,23098,2.195,23099,2.195,23100,2.195,23101,2.195,23102,2.195,23103,2.195,23104,2.195,23105,3.82,23106,2.195,23107,2.195,23108,3.82,23109,2.195,23110,2.195,23111,2.195,23112,2.027,23113,2.195,23114,2.195,23115,2.195,23116,3.82,23117,2.195,23118,2.195,23119,2.195,23120,2.195,23121,2.195,23122,2.195,23123,2.195,23124,2.195,23125,2.195,23126,2.195,23127,2.195,23128,2.195,23129,2.195,23130,2.195]],["title/additional-documentation/nestjs-application/code-style.html",[1014,2.356,1253,2.213,1507,2.799,22746,4.193]],["body/additional-documentation/nestjs-application/code-style.html",[0,0.291,2,1.246,8,1.434,30,0.001,31,0.701,35,1.033,47,0.864,101,0.016,103,0.001,104,0.001,127,1.371,165,0.939,188,3.243,204,3.716,227,0.904,305,2.464,347,2.207,405,2.314,430,3.428,483,5.72,533,7.482,574,3.882,687,6.2,905,3.556,957,4.847,1240,6.254,1253,3.95,1295,6.254,1871,5.287,1922,6.863,1928,5.287,2014,6.348,2185,6.132,2309,4.802,2577,5.855,2579,6.078,3024,7.482,3264,7.161,3508,6.691,3886,7.912,5444,7.482,6463,7.482,7339,5.962,7840,6.348,10530,10.979,11156,5.287,12016,6.691,15252,7.912,21610,6.508,21716,7.161,21994,7.912,22021,7.912,22241,7.912,22305,7.161,22525,7.161,22691,7.482,22703,9.465,22746,7.482,23112,7.912,23131,8.565,23132,8.565,23133,8.565,23134,8.565,23135,8.565,23136,8.565,23137,8.565,23138,8.565]],["title/additional-documentation/nestjs-application/s3clientmodule.html",[1014,2.752,1507,3.271,10257,4.261]],["body/additional-documentation/nestjs-application/s3clientmodule.html",[0,0.37,30,0.001,31,0.485,101,0.023,103,0.001,104,0.001,105,1.138,111,1.727,127,1.093,216,1.597,217,1.439,235,4.889,351,5.383,394,4.937,425,3.198,427,3.193,432,4.026,449,3.473,569,8.02,574,5.409,728,3.382,766,3.712,883,4.567,950,6.748,957,4.889,1925,4.489,2171,3.712,2186,5.471,2187,5.806,3543,4.24,3544,4.954,4169,7.206,6163,7.206,6164,6.748,6165,6.013,6166,6.013,6167,6.013,6168,6.013,7821,10.794,10170,6.964,10271,7.222,10436,7.546,10437,6.748,11199,6.748,11418,9.516,11592,7.582,12948,6.564,16487,7.546,21703,7.222,22447,6.964,22673,7.98,23017,7.98,23139,8.638,23140,8.638,23141,8.638,23142,8.638,23143,8.638,23144,8.638,23145,11.932,23146,8.638,23147,8.638,23148,8.638,23149,8.638]]],"invertedIndex":[["",{"_index":30,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"modules.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["0",{"_index":247,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"classes/ConsentRequestBody.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"classes/DashboardEntity.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageProducer.html":{},"classes/GridElement.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"injectables/LtiToolRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/PaginationParams.html":{},"injectables/PermissionService.html":{},"injectables/RoomsService.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolMigrationService.html":{},"classes/Scope.html":{},"entities/ShareToken.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["0.0.19",{"_index":21338,"title":{},"body":{"dependencies.html":{}}}],["0.1.1",{"_index":21408,"title":{},"body":{"dependencies.html":{}}}],["0.1.13",{"_index":21435,"title":{},"body":{"dependencies.html":{}}}],["0.1.4",{"_index":21444,"title":{},"body":{"dependencies.html":{}}}],["0.14.0",{"_index":21371,"title":{},"body":{"dependencies.html":{}}}],["0.4.0",{"_index":21358,"title":{},"body":{"dependencies.html":{}}}],["0.4.11",{"_index":21346,"title":{},"body":{"dependencies.html":{}}}],["0.5.1",{"_index":21458,"title":{},"body":{"dependencies.html":{}}}],["0.5.19",{"_index":21447,"title":{},"body":{"dependencies.html":{}}}],["0.5.2",{"_index":21421,"title":{},"body":{"dependencies.html":{}}}],["0.5.4",{"_index":21412,"title":{},"body":{"dependencies.html":{}}}],["0.5.9",{"_index":21347,"title":{},"body":{"dependencies.html":{}}}],["0.6.0",{"_index":21413,"title":{},"body":{"dependencies.html":{}}}],["0.7.0",{"_index":21446,"title":{},"body":{"dependencies.html":{}}}],["0.8.0",{"_index":21353,"title":{},"body":{"dependencies.html":{}}}],["0.8.1",{"_index":21416,"title":{},"body":{"dependencies.html":{}}}],["0.9.7",{"_index":21410,"title":{},"body":{"dependencies.html":{}}}],["0000d231816abba584714c9e",{"_index":22648,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["0000dcfbfb5c7a3f00bf21ab",{"_index":5670,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["0000dcfbfb5c7a3f00bf21ab'})@ismongoid",{"_index":5666,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["05",{"_index":22645,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["0]?.id",{"_index":12805,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["1",{"_index":905,"title":{"classes/ContextExternalToolIdParams-1.html":{},"classes/FileDto-1.html":{},"classes/LessonUrlParams-1.html":{},"classes/LoginResponse-1.html":{},"interfaces/S3Config-1.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{},"classes/SystemIdParams-1.html":{},"classes/VideoConference-1.html":{}},"body":{"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/CopyHelperService.html":{},"entities/Course.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolVersionService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GridElement.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/NewsScope.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OidcProvisioningService.html":{},"classes/PaginationParams.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RuleManager.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/Scope.html":{},"classes/ShareTokenBodyParams.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["1.0.0",{"_index":21430,"title":{},"body":{"dependencies.html":{}}}],["1.0.3",{"_index":21319,"title":{},"body":{"dependencies.html":{}}}],["1.0.5",{"_index":21396,"title":{},"body":{"dependencies.html":{}}}],["1.0.56",{"_index":21385,"title":{},"body":{"dependencies.html":{}}}],["1.0a",{"_index":14168,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"dependencies.html":{}}}],["1.1",{"_index":14231,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["1.1.1",{"_index":21428,"title":{},"body":{"dependencies.html":{}}}],["1.1.4",{"_index":21436,"title":{},"body":{"dependencies.html":{}}}],["1.15.2",{"_index":21365,"title":{},"body":{"dependencies.html":{}}}],["1.17.3",{"_index":21390,"title":{},"body":{"dependencies.html":{}}}],["1.2",{"_index":22834,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.2.0",{"_index":21363,"title":{},"body":{"dependencies.html":{}}}],["1.21.2",{"_index":21362,"title":{},"body":{"dependencies.html":{}}}],["1.25.0",{"_index":21397,"title":{},"body":{"dependencies.html":{}}}],["1.25.1",{"_index":21340,"title":{},"body":{"dependencies.html":{}}}],["1.28.1",{"_index":21400,"title":{},"body":{"dependencies.html":{}}}],["1.3.4",{"_index":21320,"title":{},"body":{"dependencies.html":{}}}],["1.5.0",{"_index":21361,"title":{},"body":{"dependencies.html":{}}}],["1.6.0",{"_index":21367,"title":{},"body":{"dependencies.html":{}}}],["1.6.2",{"_index":21376,"title":{},"body":{"dependencies.html":{}}}],["1.9.4",{"_index":21423,"title":{},"body":{"dependencies.html":{}}}],["10",{"_index":907,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/PaginationParams.html":{},"license.html":{}}}],["10.0.1",{"_index":21332,"title":{},"body":{"dependencies.html":{}}}],["10.1.1",{"_index":21330,"title":{},"body":{"dependencies.html":{}}}],["10.2.4",{"_index":21328,"title":{},"body":{"dependencies.html":{}}}],["100",{"_index":894,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{}}}],["1000",{"_index":1841,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CourseFactory.html":{},"classes/DeleteFilesConsole.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["10000",{"_index":18895,"title":{},"body":{"classes/TaskFactory.html":{}}}],["100000",{"_index":6888,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/FileRecordFactory.html":{},"classes/JwtTestFactory.html":{}}}],["1010",{"_index":21145,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["1055",{"_index":1994,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/ContextExternalToolModule.html":{}}}],["10start",{"_index":22966,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["11",{"_index":21838,"title":{},"body":{"license.html":{}}}],["1212",{"_index":16003,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["123",{"_index":13519,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["1234",{"_index":22878,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["12345",{"_index":18580,"title":{},"body":{"classes/SystemFactory.html":{}}}],["124",{"_index":14923,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["13",{"_index":4299,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"license.html":{}}}],["13.1.0",{"_index":21431,"title":{},"body":{"dependencies.html":{}}}],["14.14",{"_index":10023,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["15",{"_index":11247,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["150",{"_index":4151,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{}}}],["15672:15672",{"_index":22321,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["15:20:30.888",{"_index":22647,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["16",{"_index":22001,"title":{},"body":{"license.html":{}}}],["172.29.173.128",{"_index":22970,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["173",{"_index":2474,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["180px",{"_index":12164,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["19",{"_index":21649,"title":{},"body":{"license.html":{}}}],["1993",{"_index":22891,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["1996",{"_index":21844,"title":{},"body":{"license.html":{}}}],["1p0",{"_index":14238,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["2",{"_index":7339,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"controllers/LoginController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["2.'})@apiresponse({status",{"_index":14096,"title":{},"body":{"controllers/LoginController.html":{}}}],["2.0",{"_index":5452,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["2.0.0",{"_index":21369,"title":{},"body":{"dependencies.html":{}}}],["2.0.1",{"_index":21336,"title":{},"body":{"dependencies.html":{}}}],["2.0.5",{"_index":21402,"title":{},"body":{"dependencies.html":{}}}],["2.1.0",{"_index":21327,"title":{},"body":{"dependencies.html":{}}}],["2.1375.0",{"_index":21360,"title":{},"body":{"dependencies.html":{}}}],["2.19.2",{"_index":21409,"title":{},"body":{"dependencies.html":{}}}],["2.2.5",{"_index":21342,"title":{},"body":{"dependencies.html":{}}}],["2.2.6",{"_index":21424,"title":{},"body":{"dependencies.html":{}}}],["2.3.2",{"_index":21398,"title":{},"body":{"dependencies.html":{}}}],["2.8.1",{"_index":21381,"title":{},"body":{"dependencies.html":{}}}],["2.8.32",{"_index":21344,"title":{},"body":{"dependencies.html":{}}}],["2.9.0",{"_index":21368,"title":{},"body":{"dependencies.html":{}}}],["20",{"_index":21842,"title":{},"body":{"license.html":{}}}],["200",{"_index":498,"title":{},"body":{"controllers/AccountController.html":{},"classes/AxiosResponseImp.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/HydraOauthUc.html":{},"controllers/LoginController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["2007",{"_index":21651,"title":{},"body":{"license.html":{}}}],["200})@apiinternalservererrorresponse({description",{"_index":20267,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["201",{"_index":2928,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/ShareTokenController.html":{}}}],["2023",{"_index":22644,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["204",{"_index":2972,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["204})@apiresponse({status",{"_index":2936,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["21.1.2",{"_index":21321,"title":{},"body":{"dependencies.html":{}}}],["24",{"_index":6616,"title":{},"body":{"classes/CourseFactory.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["250",{"_index":3521,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["26px",{"_index":12163,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["28",{"_index":22136,"title":{},"body":{"license.html":{}}}],["2984",{"_index":10311,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["2a$10$/dsztv5o6p5piw2ewjsxw.4nhovmjgba.qnwitmuz/uvuc40b.uhu",{"_index":743,"title":{},"body":{"classes/AccountFactory.html":{}}}],["2auth",{"_index":22279,"title":{},"body":{"todo.html":{}}}],["3",{"_index":3508,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LdapService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["3.0",{"_index":22246,"title":{},"body":{"properties.html":{}}}],["3.0.0",{"_index":21326,"title":{},"body":{"dependencies.html":{}}}],["3.0.1",{"_index":21329,"title":{},"body":{"dependencies.html":{}}}],["3.0.2",{"_index":21438,"title":{},"body":{"dependencies.html":{}}}],["3.1.0",{"_index":21425,"title":{},"body":{"dependencies.html":{}}}],["3.100.0",{"_index":21312,"title":{},"body":{"dependencies.html":{}}}],["3.13.0",{"_index":21439,"title":{},"body":{"dependencies.html":{}}}],["3.2.2",{"_index":21351,"title":{},"body":{"dependencies.html":{}}}],["3.3",{"_index":15254,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["3.3.4",{"_index":21422,"title":{},"body":{"dependencies.html":{}}}],["3.8.2",{"_index":21461,"title":{},"body":{"dependencies.html":{}}}],["30",{"_index":22044,"title":{},"body":{"license.html":{}}}],["300",{"_index":13306,"title":{},"body":{"injectables/LdapService.html":{}}}],["3000:3000",{"_index":23003,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["302",{"_index":10964,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["3030/api/v3/docs",{"_index":22409,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["3030/docs",{"_index":22414,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["31",{"_index":22646,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["335",{"_index":12176,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["3532",{"_index":22892,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["389:389",{"_index":22931,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["4",{"_index":7309,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/ExternalToolLogoService.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["4.0.0",{"_index":21318,"title":{},"body":{"dependencies.html":{}}}],["4.0.1",{"_index":21429,"title":{},"body":{"dependencies.html":{}}}],["4.1.6",{"_index":21453,"title":{},"body":{"dependencies.html":{}}}],["4.13.2",{"_index":21389,"title":{},"body":{"dependencies.html":{}}}],["4.14.0",{"_index":21388,"title":{},"body":{"dependencies.html":{}}}],["4.17.19",{"_index":21406,"title":{},"body":{"dependencies.html":{}}}],["4.18.2",{"_index":21452,"title":{},"body":{"dependencies.html":{}}}],["4.2.5",{"_index":21372,"title":{},"body":{"dependencies.html":{}}}],["4.5.11",{"_index":21315,"title":{},"body":{"dependencies.html":{}}}],["4.5.16",{"_index":21314,"title":{},"body":{"dependencies.html":{}}}],["4.6.0",{"_index":21366,"title":{},"body":{"dependencies.html":{}}}],["4.x",{"_index":22314,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["400",{"_index":502,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"classes/ConsentRequestBody.html":{},"controllers/ElementController.html":{},"classes/ErrorMapper.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"controllers/ShareTokenController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["400/bad",{"_index":22663,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["401",{"_index":5416,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["4011:80",{"_index":22919,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["4023",{"_index":2051,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["403",{"_index":506,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"classes/ConsentRequestBody.html":{},"controllers/ElementController.html":{},"classes/ErrorMapper.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"controllers/ShareTokenController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["404",{"_index":509,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/ShareTokenController.html":{},"todo.html":{}}}],["409/conflict",{"_index":22661,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["4096",{"_index":6871,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["4444",{"_index":22372,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["456",{"_index":13524,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["47494638",{"_index":8580,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["5",{"_index":16482,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["5.0.0",{"_index":21355,"title":{},"body":{"dependencies.html":{}}}],["5.0.1",{"_index":21356,"title":{},"body":{"dependencies.html":{}}}],["5.0.3",{"_index":21392,"title":{},"body":{"dependencies.html":{}}}],["5.1.1",{"_index":21427,"title":{},"body":{"dependencies.html":{}}}],["5.13.20",{"_index":21411,"title":{},"body":{"dependencies.html":{}}}],["5.2.1",{"_index":21325,"title":{},"body":{"dependencies.html":{}}}],["5.4.2",{"_index":21324,"title":{},"body":{"dependencies.html":{}}}],["500",{"_index":8210,"title":{},"body":{"classes/ErrorMapper.html":{},"controllers/H5PEditorController.html":{},"classes/ListOauthClientsParams.html":{},"controllers/ShareTokenController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["501",{"_index":17887,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["5672",{"_index":22323,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["5672:5672",{"_index":22320,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["59",{"_index":12788,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["6.0.0",{"_index":21378,"title":{},"body":{"dependencies.html":{}}}],["6.1.3",{"_index":21379,"title":{},"body":{"dependencies.html":{}}}],["6.3.0",{"_index":21393,"title":{},"body":{"dependencies.html":{}}}],["6.9.7",{"_index":21432,"title":{},"body":{"dependencies.html":{}}}],["60",{"_index":6617,"title":{},"body":{"classes/CourseFactory.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/S3ClientAdapter.html":{},"license.html":{}}}],["60000",{"_index":16833,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["632",{"_index":15091,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["64",{"_index":22874,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["673",{"_index":13624,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["699615164",{"_index":22272,"title":{},"body":{"todo.html":{}}}],["6b",{"_index":21915,"title":{},"body":{"license.html":{}}}],["6d",{"_index":21934,"title":{},"body":{"license.html":{}}}],["7",{"_index":9741,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/TaskUC.html":{},"license.html":{}}}],["7.0.0",{"_index":21382,"title":{},"body":{"dependencies.html":{}}}],["7.1.10",{"_index":21334,"title":{},"body":{"dependencies.html":{}}}],["7.3.1",{"_index":21440,"title":{},"body":{"dependencies.html":{}}}],["789",{"_index":13525,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["8",{"_index":9993,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["8.1.0",{"_index":21374,"title":{},"body":{"dependencies.html":{}}}],["8.3.0",{"_index":21460,"title":{},"body":{"dependencies.html":{}}}],["8.8.2",{"_index":21349,"title":{},"body":{"dependencies.html":{}}}],["80",{"_index":22407,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080",{"_index":22379,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080:8080",{"_index":22336,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["820",{"_index":20505,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["8443:8443",{"_index":22337,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["86400000",{"_index":5513,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["885",{"_index":21147,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["89504e47",{"_index":8578,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["9.0.0",{"_index":21401,"title":{},"body":{"dependencies.html":{}}}],["9.2.0",{"_index":21323,"title":{},"body":{"dependencies.html":{}}}],["9000:9000",{"_index":22328,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001",{"_index":22333,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001:9001",{"_index":22329,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["91",{"_index":15590,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["9229",{"_index":22367,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["99",{"_index":1038,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["990",{"_index":9473,"title":{},"body":{"injectables/FederalStateService.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["999",{"_index":21627,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["9])+(.html|.css|.mp4|.pdf|.doc|.png|.jpg|.gif|.min.js|.js|.ico|.txt|.min.css|.ttf|.svg|.woff|.ui.l|.mf.l",{"_index":10456,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["9])+(.html|.css|.mp4|.pdf|.doc|.png|.jpg|.gif|.min.js|.js|.ico|.txt|.min.css|.ttf|.svg|.woff|.ui.l|.mf.l)')@isstring()@isnotempty",{"_index":10454,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["9]{24",{"_index":2911,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UserInfoResponse.html":{}}}],["_",{"_index":845,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/GlobalErrorFilter.html":{},"controllers/LoginController.html":{},"modules/MongoMemoryDatabaseModule.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["_${now.getdate()}_${now.gethours()}_${now.getminutes()}_${now.getseconds",{"_index":11135,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_.pick(params",{"_index":858,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["_.random(35).tostring(36)).join",{"_index":14539,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.snakecase(classname).touppercase",{"_index":10515,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.snakecase(exceptionname).touppercase",{"_index":10525,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.spec.ts",{"_index":22545,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["_.startcase(exceptionname",{"_index":10526,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.startcase(name",{"_index":10516,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.test.[ts|js",{"_index":22386,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["_.times(20",{"_index":14538,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.union(userpermissions",{"_index":20186,"title":{},"body":{"classes/UserFactory.html":{}}}],["_\\w\\d",{"_index":14551,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["__v",{"_index":9597,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_allowemptyquery",{"_index":5872,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_collectdefaultmetrics",{"_index":16201,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_collectmetricsroutemetrics",{"_index":16202,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_columnboardid",{"_index":4817,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["_contextid",{"_index":3333,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["_contexttype",{"_index":3335,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["_creatorid",{"_index":9558,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_em",{"_index":2397,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["_id",{"_index":1278,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/LessonEntity.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"classes/VideoConferenceInfo.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["_id.$oid",{"_index":11219,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_instance",{"_index":16203,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_iscopyfrom",{"_index":9692,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_isenabled",{"_index":16204,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_lockid",{"_index":9559,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_oauthconfigcache",{"_index":13042,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["_operator",{"_index":5873,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_origintoolid",{"_index":6983,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["_ownerid",{"_index":9560,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_parentid",{"_index":9561,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["_port",{"_index":16205,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_queries",{"_index":5874,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_route",{"_index":16206,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_schoolid",{"_index":9693,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_self",{"_index":5258,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["_updatedat",{"_index":1288,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["a.getmetadata().title",{"_index":7324,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["a.ktid.localecompare(b.ktid",{"_index":17307,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["a.m",{"_index":21643,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["a.position",{"_index":3255,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["a.userid.$oid",{"_index":13227,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["aaa",{"_index":22722,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["abbreviation",{"_index":6351,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ability",{"_index":21974,"title":{},"body":{"license.html":{}}}],["aborted",{"_index":13202,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["above",{"_index":13238,"title":{},"body":{"classes/KeycloakSeedService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["absence",{"_index":21865,"title":{},"body":{"license.html":{}}}],["absolute",{"_index":11122,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["abstract",{"_index":9,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"interfaces/AuthorizableObject.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BusinessError.html":{},"entities/CourseNews.html":{},"injectables/DashboardRepo.html":{},"classes/DomainObject.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/INewsProperties.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/News.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OauthProviderService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PaginationResponse.html":{},"classes/ProvisioningStrategy.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"entities/SchoolNews.html":{},"classes/SortingParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/TeamNews.html":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["abstractaccountservice",{"_index":1,"title":{"classes/AbstractAccountService.html":{}},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:108",{"_index":1165,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:113",{"_index":1166,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:114",{"_index":1076,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:117",{"_index":1177,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:122",{"_index":1176,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:125",{"_index":1074,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:127",{"_index":1181,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:136",{"_index":1075,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:146",{"_index":1173,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:147",{"_index":1077,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:151",{"_index":1057,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:160",{"_index":1058,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:172",{"_index":1067,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:18",{"_index":1169,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:24",{"_index":1174,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:29",{"_index":1170,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:34",{"_index":1171,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:35",{"_index":1063,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:39",{"_index":1068,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:42",{"_index":1172,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:43",{"_index":1064,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:47",{"_index":1065,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:51",{"_index":1066,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:55",{"_index":1073,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:59",{"_index":1072,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:63",{"_index":1069,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:83",{"_index":1180,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:91",{"_index":1178,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:99",{"_index":1179,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractbootstrapconsole",{"_index":19421,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["abstraction",{"_index":23017,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["abstraction/detail",{"_index":22448,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractions",{"_index":22485,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractlaunchstrategy",{"_index":106,"title":{"injectables/AbstractLaunchStrategy.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:114",{"_index":2649,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:122",{"_index":14222,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:125",{"_index":2650,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:141",{"_index":2646,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:147",{"_index":14223,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:167",{"_index":2655,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:18",{"_index":2644,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:19",{"_index":14986,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:204",{"_index":2654,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:24",{"_index":14987,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:246",{"_index":2647,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:26",{"_index":2652,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:30",{"_index":14221,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:33",{"_index":2645,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:50",{"_index":2653,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:65",{"_index":2651,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:9",{"_index":2643,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:91",{"_index":2648,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["acacac",{"_index":6421,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["acc",{"_index":19753,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["accept",{"_index":363,"title":{},"body":{"classes/AcceptQuery.html":{},"interfaces/AuthenticationResponse.html":{},"classes/BoardComposite.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["accept(visitor",{"_index":2801,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["acceptance",{"_index":22048,"title":{},"body":{"license.html":{}}}],["acceptasync",{"_index":2794,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["acceptasync(visitor",{"_index":2805,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["acceptconsentrequest",{"_index":10825,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequest(challenge",{"_index":10842,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequestbody",{"_index":335,"title":{"interfaces/AcceptConsentRequestBody.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["accepted",{"_index":22259,"title":{},"body":{"todo.html":{}}}],["acceptloginrequest",{"_index":10826,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptloginrequest(challenge",{"_index":10844,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["acceptloginrequest(currentuserid",{"_index":15597,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["acceptloginrequestbody",{"_index":354,"title":{"interfaces/AcceptLoginRequestBody.html":{}},"body":{"interfaces/AcceptLoginRequestBody.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest",{"_index":10827,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(@param",{"_index":15553,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptlogoutrequest(challenge",{"_index":10846,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(params",{"_index":15480,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptquery",{"_index":360,"title":{"classes/AcceptQuery.html":{}},"body":{"classes/AcceptQuery.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["accepts",{"_index":366,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"miscellaneous/functions.html":{}}}],["access",{"_index":535,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AdminIdAndToken.html":{},"controllers/CollaborativeStorageController.html":{},"entities/Course.html":{},"classes/ErrorLoggable.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"classes/JwtExtractor.html":{},"entities/LessonEntity.html":{},"classes/OauthClientBody.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"controllers/ServerController.html":{},"controllers/ToolController.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["access,@typescript",{"_index":1305,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["access.token.claim",{"_index":13009,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["access_token",{"_index":352,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["accessed",{"_index":6736,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["accessible",{"_index":21713,"title":{},"body":{"license.html":{}}}],["accessing",{"_index":22502,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["accesskeyid",{"_index":6167,"title":{},"body":{"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IStorageProviderProperties.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"entities/StorageProviderEntity.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["accessors",{"_index":884,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardRepo.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/ClassSourceOptions.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/DatabaseManagementService.html":{},"classes/DomainObject.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"classes/Scope.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["accesstoken",{"_index":1703,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/TestApiClient.html":{},"classes/TokenRequestMapper.html":{}}}],["accesstokendto",{"_index":14157,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accesstokendto.accesstoken",{"_index":14159,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accompanied",{"_index":21900,"title":{},"body":{"license.html":{}}}],["accompanies",{"_index":22213,"title":{},"body":{"license.html":{}}}],["accomplish",{"_index":21715,"title":{},"body":{"license.html":{}}}],["accord",{"_index":21864,"title":{},"body":{"license.html":{}}}],["according",{"_index":22205,"title":{},"body":{"license.html":{}}}],["account",{"_index":94,"title":{"entities/Account.html":{}},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/EtherpadService.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserListResponse.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/NexboardService.html":{},"injectables/Oauth2Strategy.html":{},"classes/TestApiClient.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["account${sequence",{"_index":747,"title":{},"body":{"classes/AccountFactory.html":{}}}],["account's",{"_index":12216,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["account.'})@apiresponse({status",{"_index":501,"title":{},"body":{"controllers/AccountController.html":{}}}],["account._id.$oid",{"_index":13240,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.activated",{"_index":644,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.attdbcaccountid",{"_index":758,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.attdbcsystemid",{"_index":760,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.attdbcuserid",{"_index":759,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.createdat",{"_index":640,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["account.createddate",{"_index":757,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["account.credentialhash",{"_index":645,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.email",{"_index":13097,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.expiresat",{"_index":646,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.factory",{"_index":847,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["account.firstname",{"_index":13098,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.id",{"_index":639,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountValidationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LocalStrategy.html":{}}}],["account.interface",{"_index":13220,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.interface.ts",{"_index":11502,"title":{},"body":{"interfaces/IJsonAccount.html":{}}}],["account.lastname",{"_index":13099,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.lasttriedfailedlogin",{"_index":647,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["account.lasttriedfailedlogin.gettime",{"_index":1840,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["account.module",{"_index":451,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["account.params.ts",{"_index":16077,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:13",{"_index":16087,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:24",{"_index":16085,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:33",{"_index":16081,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:42",{"_index":16082,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:51",{"_index":16083,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.password",{"_index":648,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["account.response",{"_index":1024,"title":{},"body":{"classes/AccountSearchListResponse.html":{}}}],["account.service.abstract",{"_index":1080,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["account.systemid",{"_index":1195,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["account.systemid?.tostring",{"_index":649,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["account.test.factory.ts",{"_index":842,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:23",{"_index":20001,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:28",{"_index":19994,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:34",{"_index":19998,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:49",{"_index":20000,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:61",{"_index":19996,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.token",{"_index":650,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.updatedat",{"_index":641,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{}}}],["account.userid",{"_index":983,"title":{},"body":{"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LocalStrategy.html":{}}}],["account.userid.$oid",{"_index":13241,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.userid?.tostring",{"_index":642,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountValidationService.html":{}}}],["account.username",{"_index":643,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/TestApiClient.html":{}}}],["account.validation.service",{"_index":1081,"title":{},"body":{"injectables/AccountService.html":{}}}],["account?.id",{"_index":1259,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["account?.systemid?.tostring",{"_index":1260,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountapimodule",{"_index":426,"title":{"modules/AccountApiModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["accountbyidbodyparams",{"_index":455,"title":{"classes/AccountByIdBodyParams.html":{}},"body":{"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{}}}],["accountbyidparams",{"_index":477,"title":{"classes/AccountByIdParams.html":{}},"body":{"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{}}}],["accountcontroller",{"_index":448,"title":{"controllers/AccountController.html":{}},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountcopy",{"_index":20603,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountcopy.systemid",{"_index":20639,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountdb",{"_index":1055,"title":{},"body":{"injectables/AccountService.html":{}}}],["accountdbcaccountid",{"_index":12222,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["accountdbcuserid",{"_index":12225,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["accountdto",{"_index":66,"title":{"classes/AccountDto.html":{}},"body":{"classes/AbstractAccountService.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["accountdto.activated",{"_index":1199,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.credentialhash",{"_index":1203,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.expiresat",{"_index":1200,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.id",{"_index":1095,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["accountdto.lasttriedfailedlogin",{"_index":1201,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.password",{"_index":1097,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["accountdto.systemid",{"_index":1196,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.token",{"_index":1204,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.username",{"_index":1198,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdtos",{"_index":653,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentities",{"_index":635,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["accountentities[0",{"_index":652,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentities[1",{"_index":655,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentity",{"_index":1186,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper",{"_index":624,"title":{"classes/AccountEntityToDtoMapper.html":{}},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.mapaccountstodto(accountentities",{"_index":1189,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(await",{"_index":1220,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(foundaccounts",{"_index":654,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentitytodtomapper.mapsearchresult(accountentities",{"_index":1212,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapsearchresult(await",{"_index":1243,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.maptodto(account",{"_index":1206,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.maptodto(accountentity",{"_index":657,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["accountfactory",{"_index":658,"title":{"classes/AccountFactory.html":{}},"body":{"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountfactory.define(account",{"_index":746,"title":{},"body":{"classes/AccountFactory.html":{}}}],["accountfactory.withuser(user).build(accountparams",{"_index":860,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountid",{"_index":85,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/IdentityManagementService.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/UserMigrationService.html":{}}}],["accountid?.tostring",{"_index":1257,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountidm",{"_index":1051,"title":{},"body":{"injectables/AccountService.html":{}}}],["accountidmtodtomapper",{"_index":748,"title":{"injectables/AccountIdmToDtoMapper.html":{}},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.html":{},"miscellaneous/functions.html":{}}}],["accountidmtodtomapper:6",{"_index":754,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["accountidmtodtomapperdb",{"_index":752,"title":{"classes/AccountIdmToDtoMapperDb.html":{}},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"modules/AccountModule.html":{}}}],["accountidmtodtomapperfactory",{"_index":838,"title":{},"body":{"modules/AccountModule.html":{},"miscellaneous/functions.html":{}}}],["accountidmtodtomapperfactory(configservice",{"_index":834,"title":{},"body":{"modules/AccountModule.html":{},"miscellaneous/functions.html":{}}}],["accountidmtodtomapperidm",{"_index":761,"title":{"classes/AccountIdmToDtoMapperIdm.html":{}},"body":{"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.html":{}}}],["accountimpl",{"_index":1047,"title":{},"body":{"injectables/AccountService.html":{}}}],["accountlookupservice",{"_index":763,"title":{"injectables/AccountLookupService.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["accountmodule",{"_index":437,"title":{"modules/AccountModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ProvisioningModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules.html":{}}}],["accountparams",{"_index":840,"title":{"interfaces/AccountParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountpassword",{"_index":14010,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountrepo",{"_index":820,"title":{"injectables/AccountRepo.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["accountresponse",{"_index":499,"title":{"classes/AccountResponse.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSearchListResponse.html":{}}}],["accountresponsemapper",{"_index":973,"title":{"classes/AccountResponseMapper.html":{}},"body":{"classes/AccountResponseMapper.html":{}}}],["accounts",{"_index":403,"title":{},"body":{"entities/Account.html":{},"controllers/AccountController.html":{},"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{}}}],["accounts.'})@apiresponse({status",{"_index":539,"title":{},"body":{"controllers/AccountController.html":{}}}],["accounts.filter((foundaccount",{"_index":1246,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accounts.find((a",{"_index":13226,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["accounts.find((foundaccount",{"_index":1825,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["accounts.length",{"_index":13183,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["accounts.map((accountentity",{"_index":656,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accounts_allowanonymousread=false",{"_index":22986,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowemailchange=false",{"_index":22985,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowrealnamechange=false",{"_index":22983,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowusernamechange=false",{"_index":22984,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_method=get",{"_index":23001,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_url=http://localhost:4000/rocketchat/authget",{"_index":22982,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_enabled=true",{"_index":22980,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_url=http://localhost:4000/rocketchat/iframe",{"_index":22981,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_activating=false",{"_index":22987,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_deactivating=false",{"_index":22988,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_setdefaultavatar=false",{"_index":22999,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_usedefaultblockeddomainslist=false",{"_index":22989,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accountsavedto",{"_index":64,"title":{"classes/AccountSaveDto.html":{}},"body":{"classes/AbstractAccountService.html":{},"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/OidcProvisioningService.html":{}}}],["accountsavedto:21",{"_index":615,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:26",{"_index":609,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:30",{"_index":612,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:34",{"_index":603,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:38",{"_index":613,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:42",{"_index":611,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:46",{"_index":607,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:5",{"_index":598,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:50",{"_index":605,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:54",{"_index":601,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:57",{"_index":606,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:7",{"_index":597,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:9",{"_index":599,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsearchlistresponse",{"_index":536,"title":{"classes/AccountSearchListResponse.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountSearchListResponse.html":{}}}],["accountsearchqueryparams",{"_index":530,"title":{"classes/AccountSearchQueryParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{}}}],["accountsearchtype",{"_index":1029,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["accountservice",{"_index":818,"title":{"injectables/AccountService.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AuthenticationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["accountservicedb",{"_index":821,"title":{"injectables/AccountServiceDb.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["accountserviceidm",{"_index":822,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{}}}],["accountsfile",{"_index":11509,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["accountuc",{"_index":439,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountuserid",{"_index":14013,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountvalidationservice",{"_index":819,"title":{"injectables/AccountValidationService.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AccountValidationService.html":{}}}],["achieve",{"_index":22216,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["achieved",{"_index":22819,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["acknowledges",{"_index":21812,"title":{},"body":{"license.html":{}}}],["acquired",{"_index":22094,"title":{},"body":{"license.html":{}}}],["acr",{"_index":356,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["acr_values",{"_index":15872,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["act",{"_index":22721,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["action",{"_index":1865,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/BaseDomainObject.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/HydraAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRule.html":{},"classes/PatchMyAccountParams.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["action.enum",{"_index":1867,"title":{},"body":{"interfaces/AuthorizationContext.html":{}}}],["action.read",{"_index":1881,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonRule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskUC.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceService.html":{}}}],["action.write",{"_index":1880,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseGroupRule.html":{},"injectables/ElementUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRule.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{}}}],["actions",{"_index":22054,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.read",{"_index":2491,"title":{},"body":{"classes/BaseDomainObject.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.write",{"_index":23079,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["activated",{"_index":383,"title":{},"body":{"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["activation",{"_index":459,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["active",{"_index":11590,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IntrospectResponse.html":{},"injectables/JwtStrategy.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["activities",{"_index":21752,"title":{},"body":{"license.html":{}}}],["activity",{"_index":22131,"title":{},"body":{"license.html":{}}}],["actor",{"_index":22488,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["actual",{"_index":22114,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["actually",{"_index":21950,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["adapt",{"_index":21734,"title":{},"body":{"license.html":{}}}],["adapter",{"_index":4481,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["adapter.mapper",{"_index":4517,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.mapper.ts",{"_index":4526,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.mapper.ts:16",{"_index":4529,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.module",{"_index":4609,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["adapter.module.ts",{"_index":4555,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.service",{"_index":15078,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthModule.html":{}}}],["adapter.service.ts",{"_index":15197,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:12",{"_index":15200,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:17",{"_index":15202,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:26",{"_index":15207,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:40",{"_index":15205,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapters",{"_index":22858,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["add",{"_index":1724,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/CardController.html":{},"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GroupRoleUnknownLoggable.html":{},"modules/H5PEditorModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionRepo.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"classes/TestApiClient.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addchild",{"_index":2795,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["addchild(child",{"_index":2808,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["addclientprotocolmappers",{"_index":12844,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addclientprotocolmappers(defaultclientinternalid",{"_index":12861,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["added",{"_index":11216,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacyLogger.html":{},"injectables/NextcloudStrategy.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/TaskUC.html":{},"controllers/ToolConfigurationController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addexecutionrequest",{"_index":12925,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addexternaloauth2datatoconfig",{"_index":9070,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addexternaloauth2datatoconfig(config",{"_index":9085,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addgroupmoderator(groupname",{"_index":1348,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adding",{"_index":686,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/ICourseProperties.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["additional",{"_index":1507,"title":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{},"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["additionalheaders",{"_index":10876,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["additionalinfo",{"_index":12637,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["additionallaunchdataproperties",{"_index":223,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["additionally",{"_index":21618,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["additionalparameters",{"_index":13191,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["additionalpermissions",{"_index":862,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["additionalproperties",{"_index":14234,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["additionalproperties.push",{"_index":14246,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["additionaly",{"_index":22360,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["addlessons",{"_index":4933,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addlessons(builder",{"_index":4943,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addorganization",{"_index":5042,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addorganization(props",{"_index":5051,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addparameters",{"_index":113,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addparameters(propertydata",{"_index":133,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addprometheusmetricsmiddlewaresifenabled",{"_index":16264,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["addproperty",{"_index":114,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addproperty(propertydata",{"_index":142,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addquery",{"_index":5879,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["addquery(query",{"_index":5893,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["addreferences",{"_index":10549,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addreferences(anotherreference",{"_index":7317,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addresourcetofile",{"_index":5043,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addresourcetofile(props",{"_index":5055,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization",{"_index":5205,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization(props",{"_index":5069,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["address",{"_index":1113,"title":{},"body":{"injectables/AccountService.html":{},"classes/PatchMyAccountParams.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["addressed",{"_index":21731,"title":{},"body":{"license.html":{}}}],["addroom",{"_index":7253,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["addroom(room",{"_index":7274,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["adds",{"_index":11136,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addtasks",{"_index":4934,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addtasks(builder",{"_index":4948,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addteacherroleifadmin",{"_index":17238,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addteacherroleifadmin(externaluser",{"_index":17242,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addtokentowhitelist",{"_index":12729,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtokentowhitelist(redisidentifier",{"_index":12737,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist",{"_index":12712,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist(accountid",{"_index":12718,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["adduserids",{"_index":14950,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adduserids.tostring",{"_index":14954,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adjust",{"_index":5281,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["adm",{"_index":5058,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["admin",{"_index":10351,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["admin_pass=huhu",{"_index":22978,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["adminaccount",{"_index":873,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["adminid",{"_index":1274,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminidandtoken",{"_index":1262,"title":{"interfaces/AdminIdAndToken.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.id",{"_index":1373,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.token",{"_index":1372,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["administration.module",{"_index":12189,"title":{},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration.module.ts",{"_index":12753,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["administration.service",{"_index":12760,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["administration.service.ts",{"_index":12763,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:21",{"_index":12780,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:26",{"_index":12787,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:35",{"_index":12784,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:39",{"_index":12781,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:43",{"_index":12782,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:47",{"_index":12783,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:57",{"_index":12786,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:62",{"_index":12785,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:66",{"_index":12779,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:7",{"_index":12789,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:9",{"_index":12777,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration/interface/keycloak",{"_index":11514,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["administration/keycloak",{"_index":12188,"title":{},"body":{"modules/IdentityManagementModule.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration/service/keycloak",{"_index":12762,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["administrator",{"_index":540,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMatchMapper.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["adminpassword",{"_index":1273,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminpermissions",{"_index":20181,"title":{},"body":{"classes/UserFactory.html":{}}}],["adminstrator",{"_index":23042,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["admintoken",{"_index":1275,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminuser",{"_index":874,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"classes/KeycloakSeedService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["admzip",{"_index":5049,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["adopted",{"_index":21841,"title":{},"body":{"license.html":{}}}],["adversely",{"_index":21980,"title":{},"body":{"license.html":{}}}],["advised",{"_index":22201,"title":{},"body":{"license.html":{}}}],["aes",{"_index":18496,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["aes_key",{"_index":8117,"title":{},"body":{"modules/EncryptionModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["aeskey",{"_index":8114,"title":{},"body":{"modules/EncryptionModule.html":{},"miscellaneous/functions.html":{}}}],["affected",{"_index":22672,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["affecteduserid",{"_index":20640,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["affects",{"_index":11286,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["affero",{"_index":21648,"title":{},"body":{"license.html":{}}}],["affirmed",{"_index":22076,"title":{},"body":{"license.html":{}}}],["affirms",{"_index":21810,"title":{},"body":{"license.html":{}}}],["afterall",{"_index":22808,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterall(async",{"_index":22799,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterbuild",{"_index":665,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["afterbuild(afterbuildfn",{"_index":682,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["afterbuildfn",{"_index":690,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["afterduedateornone",{"_index":19014,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["afterduedateornone(duedate",{"_index":19096,"title":{},"body":{"classes/TaskScope.html":{}}}],["aftereach",{"_index":22716,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterwards",{"_index":22618,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["again",{"_index":6146,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/MigrationResponse.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["against",{"_index":10768,"title":{},"body":{"classes/GuardAgainst.html":{},"injectables/LocalStrategy.html":{},"classes/MongoPatterns.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["against.ts",{"_index":10762,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["against.ts:8",{"_index":10766,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["age",{"_index":23034,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["aggregate",{"_index":21888,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["aggregate.attrs",{"_index":13005,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["agility",{"_index":22437,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["agnostic",{"_index":12548,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["ago",{"_index":7781,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["agpl",{"_index":22234,"title":{},"body":{"license.html":{},"properties.html":{}}}],["agree",{"_index":22149,"title":{},"body":{"license.html":{}}}],["agreed",{"_index":22190,"title":{},"body":{"license.html":{}}}],["agreement",{"_index":22102,"title":{},"body":{"license.html":{}}}],["aims",{"_index":22433,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["aint",{"_index":22473,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ajax",{"_index":10805,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["ajv",{"_index":21348,"title":{},"body":{"dependencies.html":{}}}],["aktuelle",{"_index":4771,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["alert",{"_index":8176,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alert(loggable",{"_index":8181,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alg",{"_index":1695,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["algorithm",{"_index":1646,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/JwtConstants.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["algorithms",{"_index":1667,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OAuthService.html":{}}}],["algorithms.includes(jwtconstants.jwtoptions.algorithm",{"_index":1681,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["alias",{"_index":11845,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"additional-documentation/nestjs-application.html":{}}}],["all('seed",{"_index":7701,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["all_entities",{"_index":10254,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["all_rules",{"_index":1978,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["allcollectionswithfilepaths",{"_index":11152,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.filter",{"_index":11160,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.map((file",{"_index":11164,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["alleging",{"_index":22082,"title":{},"body":{"license.html":{}}}],["allforcreator",{"_index":19004,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(allforfinishedcoursesandlessonsforcreator.query",{"_index":19007,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closeddraftsforcreator.query",{"_index":19006,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closedwithoutparentforcreator.query",{"_index":19005,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons",{"_index":18990,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.addquery(parentsfinished.query",{"_index":18991,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.bydraft(false",{"_index":18992,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator",{"_index":19001,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.addquery(parentsfinished.query",{"_index":19002,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.bycreatorid(parentids.creatorid",{"_index":19003,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allmappers",{"_index":12965,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allmappers.find((mapper",{"_index":12968,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allow",{"_index":6122,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["allowed",{"_index":4000,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"injectables/ElementUc.html":{},"classes/OauthClientBody.html":{},"injectables/RoomsUc.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"controllers/ToolController.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"injectables/VideoConferenceCreateUc.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["allowedcards",{"_index":4198,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedcontexttype",{"_index":18094,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["alloweddos",{"_index":4211,"title":{},"body":{"injectables/CardUc.html":{}}}],["alloweddos.push(boarddo",{"_index":4210,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedentity.course",{"_index":23049,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["allowedentity.school",{"_index":23064,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["allowedparenttype",{"_index":18090,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["allowedstrings",{"_index":10151,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowedstrings.includes(input",{"_index":10153,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowemptyquery",{"_index":5880,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["allowemptyquery(isemptyqueryallowed",{"_index":5896,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["allowemptyquery(true",{"_index":8795,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["allowglobalcontext",{"_index":14544,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{}}}],["allowmodstounmuteusers",{"_index":2110,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["allows",{"_index":950,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/UpdateNewsParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["allpseudonyms",{"_index":16420,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["allrooms",{"_index":7254,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["alone",{"_index":22713,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["along",{"_index":21867,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["already",{"_index":795,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"classes/BusinessError.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FileSystemAdapter.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/NewsRepo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["altered",{"_index":4671,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["alternate",{"_index":21700,"title":{},"body":{"license.html":{}}}],["alternative",{"_index":12939,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["although",{"_index":22615,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["always",{"_index":573,"title":{},"body":{"controllers/AccountController.html":{},"classes/DomainObjectFactory.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["always_accept",{"_index":2132,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["always_deny",{"_index":2133,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["ambiguous",{"_index":19047,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["amount",{"_index":1018,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"injectables/BoardManagementUc.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"injectables/KeycloakMigrationService.html":{},"classes/ListOauthClientsParams.html":{},"classes/NewsListResponse.html":{},"classes/PaginationResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["amp",{"_index":21546,"title":{},"body":{"miscellaneous/functions.html":{}}}],["amqp",{"_index":21350,"title":{},"body":{"dependencies.html":{}}}],["amqp.module.ts",{"_index":10091,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["amqpconnection",{"_index":1429,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["amqpconnectionmanager",{"_index":16469,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["amqplib",{"_index":21352,"title":{},"body":{"dependencies.html":{}}}],["amr",{"_index":357,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["analysis",{"_index":22404,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["analytics",{"_index":21457,"title":{},"body":{"dependencies.html":{}}}],["analytics_features_messages=false",{"_index":22990,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_rooms=false",{"_index":22991,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_users=false",{"_index":22992,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ancestor",{"_index":3610,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestorids",{"_index":3132,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["ancestornodes",{"_index":3619,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestornodes.foreach((node",{"_index":3621,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestors",{"_index":3608,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancillary",{"_index":22049,"title":{},"body":{"license.html":{}}}],["and/opr",{"_index":22756,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["and/or",{"_index":21694,"title":{},"body":{"license.html":{}}}],["annotations",{"_index":22557,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["anonymous",{"_index":6969,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["another",{"_index":15475,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anotherreference",{"_index":10563,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["antareskey",{"_index":6343,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["anti",{"_index":21829,"title":{},"body":{"license.html":{}}}],["antivirus.service",{"_index":1414,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["antivirus_service_options",{"_index":1419,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["antivirusmodule",{"_index":1406,"title":{"modules/AntivirusModule.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["antivirusmodule.forroot",{"_index":10266,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["antivirusmoduleoptions",{"_index":1410,"title":{"interfaces/AntivirusModuleOptions.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["antivirusservice",{"_index":1413,"title":{"injectables/AntivirusService.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["antivirusservice:send",{"_index":1462,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["antivirusserviceoptions",{"_index":1430,"title":{"interfaces/AntivirusServiceOptions.html":{}},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["anyboarddo",{"_index":2598,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ElementUc.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["anycontentelementdo",{"_index":5497,"title":{},"body":{"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["anycontentelementresponse",{"_index":2597,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{}}}],["anyelementcontentbody",{"_index":8036,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["anyentity",{"_index":917,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["anymore",{"_index":1665,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anyone",{"_index":21876,"title":{},"body":{"license.html":{}}}],["anything",{"_index":21741,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anywhere",{"_index":22522,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["api",{"_index":1491,"title":{"additional-documentation/nestjs-application/api-design.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/BBBService.html":{},"classes/CopyApiResponse.html":{},"classes/ErrorLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TestApiClient.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["api.module",{"_index":10325,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["api.module.ts",{"_index":446,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/BoardApiModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/GroupApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LessonApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/SystemApiModule.html":{},"modules/TaskApiModule.html":{},"modules/TeamsApiModule.html":{},"modules/ToolApiModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/VideoConferenceApiModule.html":{}}}],["api.spec.ts",{"_index":22388,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v1",{"_index":21599,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3",{"_index":21600,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/docs",{"_index":22410,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v3/news",{"_index":21608,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/sso/oauth",{"_index":15130,"title":{},"body":{"injectables/OAuthService.html":{}}}],["api/v3/sso/oauth/migration",{"_index":15129,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["api_enable_cors=true",{"_index":22994,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_enable_rate_limiter_limit_calls_default=255",{"_index":22979,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_keys",{"_index":23037,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["api_response_time_metric_middleware_successfully_added",{"_index":16255,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["api_validation_error",{"_index":1490,"title":{},"body":{"classes/ApiValidationError.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["api_version_path",{"_index":1442,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["api_version_path}/file/download/${filerecord.id}/${encodeuricomponent(filerecord.name",{"_index":6091,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["apibadrequestresponse",{"_index":19715,"title":{},"body":{"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{}}}],["apibody",{"_index":4871,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apicreatedresponse",{"_index":19608,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiexcludeendpoint",{"_index":9941,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":9936,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@put(filesstorageinternalactions.updatesecuritystatus",{"_index":9939,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiextramodels",{"_index":4039,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(fileelementcontentbody",{"_index":8072,"title":{},"body":{"controllers/ElementController.html":{}}}],["apiextramodels(lti11toolconfigcreateparams",{"_index":8468,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["apiextramodels(lti11toolconfigupdateparams",{"_index":9227,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(richtextelementresponse",{"_index":4070,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{}}}],["apiextramodels(submissionitemresponse",{"_index":8078,"title":{},"body":{"controllers/ElementController.html":{}}}],["apiforbiddenresponse",{"_index":19541,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apifoundresponse",{"_index":13462,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiinternalservererrorresponse",{"_index":20287,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinotfoundresponse",{"_index":13463,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolContextController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiokresponse",{"_index":13464,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/OauthSSOController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apioperation",{"_index":553,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apioperation({summary",{"_index":2926,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/ShareTokenController.html":{}}}],["apiproperty",{"_index":467,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountResponse.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BusinessError.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ColumnResponse.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRefParams.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/IdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcContextResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolParams.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/TimestampsResponse.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserDataResponse.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["apiproperty()@allow",{"_index":17325,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["apiproperty()@apipropertyoptional",{"_index":7116,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["apiproperty()@decodehtmlentities",{"_index":2784,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/ColumnResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/TaskResponse.html":{}}}],["apiproperty()@ismongoid",{"_index":5725,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/FileRecordParams.html":{},"classes/SchoolIdParams.html":{},"classes/SingleFileParams.html":{}}}],["apiproperty()@isnumber",{"_index":5737,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["apiproperty()@isstring",{"_index":6117,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/DownloadFileParams.html":{}}}],["apiproperty()@isstring()@ismongoid",{"_index":17376,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["apiproperty()@isstring()@isnotempty",{"_index":16612,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["apiproperty()@matches('([a",{"_index":10451,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["apiproperty()@validatenested",{"_index":6120,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{}}}],["apiproperty({description",{"_index":1013,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BoardElementResponse.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CardSkeletonResponse.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ForbiddenOperationError.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConnectionError.html":{},"classes/LoginResponse-1.html":{},"classes/MigrationResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/OauthConfigResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RichText.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskListResponse.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["apiproperty({enum",{"_index":2914,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ChangeLanguageParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["apiproperty({nullable",{"_index":5665,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["apiproperty({pattern",{"_index":2909,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/FileElementResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["apiproperty({type",{"_index":1011,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/BoardResponse.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileUrlParams.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/PublicSystemListResponse.html":{},"classes/RichTextElementContentBody.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/TaskListResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["apipropertyoptional",{"_index":375,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BusinessError.html":{},"classes/CardResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationResponse.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/PaginationParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SystemFilterParams.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TimestampsResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateNewsParams.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["apipropertyoptional()@decodehtmlentities",{"_index":3424,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{}}}],["apipropertyoptional()@isoptional()@isboolean",{"_index":10336,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["apipropertyoptional()@isoptional()@isstring()@isnotempty",{"_index":10334,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["apipropertyoptional()@isstring()@isoptional",{"_index":20422,"title":{},"body":{"classes/UserLoginMigrationSearchParams.html":{}}}],["apipropertyoptional({default",{"_index":20929,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["apipropertyoptional({description",{"_index":1480,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CopyApiResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ForbiddenOperationError.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConnectionError.html":{},"classes/MigrationResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsResponse.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/SystemFilterParams.html":{},"classes/TaskResponse.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchResponse.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["apipropertyoptional({enum",{"_index":10341,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/PreviewParams.html":{}}}],["apipropertyoptional({nullable",{"_index":19859,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["apipropertyoptional({type",{"_index":6052,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/NewsResponse.html":{}}}],["apiresponse",{"_index":554,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"controllers/OauthSSOController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apiresponsetimemetrichistogram",{"_index":16655,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetrichistogram.observe(labels",{"_index":16662,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetriclabelnames",{"_index":16641,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apitags",{"_index":555,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apitags('account",{"_index":560,"title":{},"body":{"controllers/AccountController.html":{}}}],["apitags('authentication",{"_index":14102,"title":{},"body":{"controllers/LoginController.html":{}}}],["apitags('board",{"_index":2962,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apitags('collaborative",{"_index":4594,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["apitags('courses",{"_index":6500,"title":{},"body":{"controllers/CourseController.html":{}}}],["apitags('dashboard",{"_index":7237,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apitags('file",{"_index":9943,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apitags('fwu",{"_index":10398,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["apitags('h5p",{"_index":10790,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["apitags('lesson",{"_index":13660,"title":{},"body":{"controllers/LessonController.html":{}}}],["apitags('news",{"_index":14618,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["apitags('oauth2",{"_index":15524,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["apitags('rooms",{"_index":16979,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apitags('school",{"_index":13470,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["apitags('sharetoken",{"_index":17899,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apitags('sso",{"_index":15738,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apitags('submission",{"_index":18251,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apitags('systems",{"_index":18541,"title":{},"body":{"controllers/SystemController.html":{}}}],["apitags('task",{"_index":18802,"title":{},"body":{"controllers/TaskController.html":{}}}],["apitags('tool",{"_index":19545,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{}}}],["apitags('user",{"_index":20016,"title":{},"body":{"controllers/UserController.html":{}}}],["apitags('userimport",{"_index":12311,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["apitags('userloginmigration",{"_index":20297,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apitags('usermigration",{"_index":20564,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["apitags('videoconference",{"_index":20907,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apiunauthorizedresponse",{"_index":13465,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiunprocessableentityresponse",{"_index":19609,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apivalidationerror",{"_index":1469,"title":{"classes/ApiValidationError.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"classes/ErrorLoggable.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"controllers/H5PEditorController.html":{},"controllers/ShareTokenController.html":{},"miscellaneous/functions.html":{}}}],["apivalidationerror(errors",{"_index":10546,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apivalidationerror.validationerrors.foreach((validationerror",{"_index":1523,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apivalidationerrorresponse",{"_index":1495,"title":{"classes/ApiValidationErrorResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/GlobalErrorFilter.html":{}}}],["apivalidationerrorresponse(error",{"_index":10518,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apivalidationerror})@apiresponse({status",{"_index":2930,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/ShareTokenController.html":{}}}],["app",{"_index":1725,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/TestApiClient.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["app.service('/nest",{"_index":22619,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["app.use(createapiresponsetimemetricmiddleware",{"_index":16268,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["app_filter",{"_index":6338,"title":{},"body":{"modules/CoreModule.html":{},"modules/ErrorModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["app_guard",{"_index":6337,"title":{},"body":{"modules/CoreModule.html":{}}}],["app_interceptor",{"_index":6335,"title":{},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"todo.html":{}}}],["app_pipe",{"_index":6336,"title":{},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{}}}],["append",{"_index":22308,"title":{},"body":{"todo.html":{}}}],["appendedattachment",{"_index":1560,"title":{"interfaces/AppendedAttachment.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["appendnotcontainedboardelements(boardelementtargets",{"_index":2739,"title":{},"body":{"entities/Board.html":{}}}],["applicable",{"_index":21745,"title":{},"body":{"license.html":{}}}],["applicaiton",{"_index":22369,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["application",{"_index":3874,"title":{"additional-documentation/nestjs-application.html":{}},"body":{"classes/BusinessError.html":{},"modules/CoreModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/LegacyLogger.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["application/json",{"_index":1709,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/CalendarService.html":{},"classes/TestApiClient.html":{}}}],["application/octet",{"_index":9513,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{}}}],["application/x",{"_index":10903,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["application/xml",{"_index":2345,"title":{},"body":{"injectables/BBBService.html":{}}}],["application/zip",{"_index":6512,"title":{},"body":{"controllers/CourseController.html":{}}}],["applications",{"_index":21584,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["applied",{"_index":11184,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["applies",{"_index":4486,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["apply",{"_index":11156,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"modules/InterceptorModule.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/TaskRepo.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["apply(data",{"_index":12616,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["applypropertiestopathparams",{"_index":115,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["applypropertiestopathparams(url",{"_index":149,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["appname",{"_index":1538,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["approach",{"_index":22817,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appropriate",{"_index":4484,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["appropriately",{"_index":21860,"title":{},"body":{"license.html":{}}}],["approve",{"_index":21160,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["approximate",{"_index":4165,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["approximates",{"_index":22209,"title":{},"body":{"license.html":{}}}],["apps/.../account.module.ts",{"_index":21463,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../decode",{"_index":21481,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../encryption.module.ts",{"_index":21484,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../federalstates.ts",{"_index":21486,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../file",{"_index":21476,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../files",{"_index":21464,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../fwu",{"_index":21467,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../generateseeddata.ts",{"_index":21493,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../h5p",{"_index":21469,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../lesson.entity.ts",{"_index":21500,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../management.app.ts",{"_index":21471,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../path.ts",{"_index":21474,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../privacy",{"_index":21502,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../promise.ts",{"_index":21497,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../roles.ts",{"_index":21488,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../sanitize",{"_index":21506,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../schools.ts",{"_index":21490,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../schoolyears.ts",{"_index":21492,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../server.app.ts",{"_index":21472,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../single",{"_index":21508,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../string",{"_index":21510,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../systems.ts",{"_index":21495,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../task.entity.ts",{"_index":21501,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../timeout.decorator.ts",{"_index":21504,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../utils.ts",{"_index":21478,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server",{"_index":22356,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["apps/server/doc",{"_index":22418,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src",{"_index":22422,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src/apps/files",{"_index":21512,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/apps/fwu",{"_index":21513,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/apps/h5p",{"_index":21514,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/apps/helpers/app",{"_index":1536,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["apps/server/src/apps/helpers/prometheus",{"_index":16242,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["apps/server/src/apps/management.app.ts",{"_index":21515,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/apps/server.app.ts",{"_index":21516,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/config/database.config.ts",{"_index":10458,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["apps/server/src/console/api",{"_index":19418,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["apps/server/src/console/console.module.ts",{"_index":17742,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["apps/server/src/console/server.console.ts",{"_index":17728,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:11",{"_index":17732,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:17",{"_index":17735,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:6",{"_index":17731,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/core/core.module.ts",{"_index":6324,"title":{},"body":{"modules/CoreModule.html":{}}}],["apps/server/src/core/error/dto/api",{"_index":1496,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts",{"_index":8222,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:10",{"_index":8228,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:15",{"_index":8227,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:20",{"_index":8226,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:25",{"_index":8225,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:30",{"_index":8224,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/validation",{"_index":20816,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["apps/server/src/core/error/error.module.ts",{"_index":8215,"title":{},"body":{"modules/ErrorModule.html":{}}}],["apps/server/src/core/error/filter/global",{"_index":10462,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apps/server/src/core/error/interface/error",{"_index":11401,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["apps/server/src/core/error/interface/feathers",{"_index":9411,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts",{"_index":8125,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:11",{"_index":8133,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:13",{"_index":8136,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:34",{"_index":8135,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:47",{"_index":8140,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:56",{"_index":8142,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:8",{"_index":8131,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts",{"_index":8229,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:16",{"_index":8238,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:20",{"_index":8243,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:24",{"_index":8235,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:6",{"_index":8240,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/interceptor/interceptor.module.ts",{"_index":12570,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["apps/server/src/core/interfaces/core",{"_index":11369,"title":{},"body":{"interfaces/ICoreModuleConfig.html":{}}}],["apps/server/src/core/logger/error",{"_index":8174,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["apps/server/src/core/logger/interfaces/legacy",{"_index":11520,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts",{"_index":14021,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts:4",{"_index":14022,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/logger",{"_index":11537,"title":{},"body":{"interfaces/ILoggerConfig.html":{}}}],["apps/server/src/core/logger/legacy",{"_index":13393,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["apps/server/src/core/logger/logger.module.ts",{"_index":14043,"title":{},"body":{"modules/LoggerModule.html":{}}}],["apps/server/src/core/logger/logger.ts",{"_index":14023,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:13",{"_index":14035,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:18",{"_index":14032,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:23",{"_index":14030,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:28",{"_index":14028,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:33",{"_index":14033,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:9",{"_index":14026,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logging.utils.ts",{"_index":14064,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:13",{"_index":14074,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:18",{"_index":14072,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:6",{"_index":14069,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/validation/pipe/global",{"_index":10528,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apps/server/src/core/validation/validation.module.ts",{"_index":20820,"title":{},"body":{"modules/ValidationModule.html":{}}}],["apps/server/src/modules/account/account",{"_index":445,"title":{},"body":{"modules/AccountApiModule.html":{},"interfaces/IAccountConfig.html":{}}}],["apps/server/src/modules/account/account.module.ts",{"_index":824,"title":{},"body":{"modules/AccountModule.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts",{"_index":482,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:31",{"_index":541,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:44",{"_index":516,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:60",{"_index":551,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:70",{"_index":545,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:84",{"_index":512,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:97",{"_index":527,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/dto/account",{"_index":456,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts",{"_index":965,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:13",{"_index":969,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:16",{"_index":972,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:19",{"_index":971,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:22",{"_index":968,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:25",{"_index":970,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:3",{"_index":967,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/patch",{"_index":16076,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["apps/server/src/modules/account/mapper/account",{"_index":625,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponseMapper.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts",{"_index":876,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:10",{"_index":916,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:18",{"_index":889,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:22",{"_index":895,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:27",{"_index":891,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:31",{"_index":892,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:35",{"_index":898,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:42",{"_index":900,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:46",{"_index":896,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:50",{"_index":904,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:54",{"_index":906,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:58",{"_index":887,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:63",{"_index":888,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:73",{"_index":893,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:77",{"_index":903,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/services/account",{"_index":764,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts",{"_index":6,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:10",{"_index":43,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:12",{"_index":45,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:14",{"_index":50,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:16",{"_index":65,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:18",{"_index":90,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:23",{"_index":84,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:25",{"_index":88,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:27",{"_index":28,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:29",{"_index":38,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:31",{"_index":71,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:33",{"_index":68,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:35",{"_index":93,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:39",{"_index":57,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:6",{"_index":41,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:8",{"_index":61,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.ts",{"_index":1046,"title":{},"body":{"injectables/AccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.ts:17",{"_index":1054,"title":{},"body":{"injectables/AccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.ts:176",{"_index":1060,"title":{},"body":{"injectables/AccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.ts:80",{"_index":1071,"title":{},"body":{"injectables/AccountService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts",{"_index":1222,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:11",{"_index":1228,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:29",{"_index":1232,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:34",{"_index":1230,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:8",{"_index":1226,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/dto/account",{"_index":984,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["apps/server/src/modules/account/services/dto/account.dto.ts",{"_index":590,"title":{},"body":{"classes/AccountDto.html":{}}}],["apps/server/src/modules/account/services/dto/account.dto.ts:9",{"_index":594,"title":{},"body":{"classes/AccountDto.html":{}}}],["apps/server/src/modules/authentication/authentication",{"_index":1587,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["apps/server/src/modules/authentication/authentication.module.ts",{"_index":1635,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["apps/server/src/modules/authentication/constants.ts",{"_index":12664,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/ldap",{"_index":13260,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/local",{"_index":13989,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts",{"_index":14124,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts:5",{"_index":14125,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth2",{"_index":15147,"title":{},"body":{"classes/Oauth2AuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts",{"_index":14078,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:30",{"_index":14088,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:46",{"_index":14092,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:61",{"_index":14097,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/mapper/login",{"_index":14145,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["apps/server/src/modules/authentication/errors/brute",{"_index":3836,"title":{},"body":{"classes/BruteForceError.html":{}}}],["apps/server/src/modules/authentication/errors/ldap",{"_index":13280,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["apps/server/src/modules/authentication/errors/school",{"_index":17551,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["apps/server/src/modules/authentication/errors/unauthorized.loggable",{"_index":19944,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["apps/server/src/modules/authentication/guard/jwt",{"_index":12660,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["apps/server/src/modules/authentication/interface/jwt",{"_index":6893,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["apps/server/src/modules/authentication/interface/user.ts",{"_index":11381,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{}}}],["apps/server/src/modules/authentication/mapper/current",{"_index":6930,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts",{"_index":1781,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:16",{"_index":1790,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:24",{"_index":1797,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:41",{"_index":1795,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:56",{"_index":1803,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:64",{"_index":1792,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:75",{"_index":1806,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:79",{"_index":1801,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:83",{"_index":1799,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts",{"_index":13286,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:14",{"_index":13290,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:23",{"_index":13292,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:9",{"_index":13288,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt",{"_index":12678,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts",{"_index":12687,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:12",{"_index":12689,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:25",{"_index":12691,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts",{"_index":13317,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:16",{"_index":13322,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:28",{"_index":13331,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:56",{"_index":13328,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:68",{"_index":13326,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:75",{"_index":13324,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:86",{"_index":13329,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts",{"_index":13992,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:15",{"_index":13996,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:25",{"_index":14004,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:46",{"_index":14002,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:54",{"_index":13999,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts",{"_index":15154,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:15",{"_index":15155,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:20",{"_index":15156,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts",{"_index":14116,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts:2",{"_index":14117,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts",{"_index":14150,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:10",{"_index":14155,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:7",{"_index":14153,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authorization/authorization",{"_index":1869,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts",{"_index":1891,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:14",{"_index":1904,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:21",{"_index":1906,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:32",{"_index":1900,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:38",{"_index":1909,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:7",{"_index":1902,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.module.ts",{"_index":1976,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts",{"_index":2011,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:12",{"_index":2019,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:19",{"_index":2025,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:25",{"_index":2034,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:35",{"_index":2028,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:49",{"_index":2036,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:73",{"_index":2021,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:80",{"_index":2031,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:84",{"_index":2023,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:91",{"_index":2032,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:95",{"_index":2030,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/errors/forbidden.loggable",{"_index":10367,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["apps/server/src/modules/authorization/feathers/feathers",{"_index":9342,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts",{"_index":11632,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts:40",{"_index":16602,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts:70",{"_index":16606,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts:78",{"_index":16605,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts:94",{"_index":16603,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/rule",{"_index":17047,"title":{},"body":{"injectables/RuleManager.html":{}}}],["apps/server/src/modules/authorization/types/authorization",{"_index":1863,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["apps/server/src/modules/authorization/types/rule.interface.ts",{"_index":17044,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/types/rule.interface.ts:6",{"_index":17046,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/types/rule.interface.ts:7",{"_index":17045,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/board/board",{"_index":2761,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["apps/server/src/modules/board/board.module.ts",{"_index":3541,"title":{},"body":{"modules/BoardModule.html":{}}}],["apps/server/src/modules/board/controller/board",{"_index":3682,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts",{"_index":2917,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:34",{"_index":2947,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:51",{"_index":2942,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:69",{"_index":2953,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:84",{"_index":2938,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:94",{"_index":2933,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts",{"_index":4004,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:112",{"_index":4019,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:132",{"_index":4015,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:46",{"_index":4026,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:67",{"_index":4030,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:82",{"_index":4034,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:97",{"_index":4037,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts",{"_index":4852,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:35",{"_index":4867,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:50",{"_index":4870,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:65",{"_index":4863,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:76",{"_index":4860,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board",{"_index":2906,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts",{"_index":3657,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:17",{"_index":3661,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:21",{"_index":3664,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:26",{"_index":3660,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:29",{"_index":3663,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:6",{"_index":3659,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts",{"_index":3833,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts:11",{"_index":3835,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/card",{"_index":4161,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts",{"_index":4887,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:17",{"_index":4890,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:21",{"_index":4892,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:26",{"_index":4889,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:29",{"_index":4891,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:6",{"_index":4888,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts",{"_index":4921,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts:11",{"_index":4922,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/content",{"_index":5594,"title":{},"body":{"classes/ContentElementUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/move",{"_index":14559,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts",{"_index":16608,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts:12",{"_index":16611,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/set",{"_index":17838,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts",{"_index":4212,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts:11",{"_index":4213,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card",{"_index":4079,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts",{"_index":4098,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:22",{"_index":4103,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:26",{"_index":4105,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:29",{"_index":4102,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:37",{"_index":4101,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:40",{"_index":4107,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:43",{"_index":4104,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:9",{"_index":4100,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/create",{"_index":6848,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/move",{"_index":14569,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["apps/server/src/modules/board/controller/dto/card/visibility",{"_index":21305,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/create",{"_index":6853,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/element/file",{"_index":9531,"title":{},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/rich",{"_index":16749,"title":{},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/submission",{"_index":18225,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/update",{"_index":8028,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/submission",{"_index":6922,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts",{"_index":19468,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:11",{"_index":19472,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:14",{"_index":19470,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:17",{"_index":19471,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:3",{"_index":19469,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/user",{"_index":20133,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts",{"_index":8044,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:46",{"_index":8059,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:67",{"_index":8064,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:82",{"_index":8055,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:97",{"_index":8051,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/mapper/base",{"_index":2589,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/board",{"_index":3669,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/card",{"_index":4113,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/column",{"_index":4895,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/content",{"_index":5514,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["apps/server/src/modules/board/controller/mapper/file",{"_index":9548,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/rich",{"_index":16768,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/submission",{"_index":18231,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["apps/server/src/modules/board/repo/board",{"_index":3189,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["apps/server/src/modules/board/repo/recursive",{"_index":16492,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["apps/server/src/modules/board/service/board",{"_index":3116,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts",{"_index":4122,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:16",{"_index":4134,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:21",{"_index":4136,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:29",{"_index":4128,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:50",{"_index":4132,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:54",{"_index":4138,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:58",{"_index":4140,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:64",{"_index":4142,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:70",{"_index":4130,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:9",{"_index":4126,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/column",{"_index":4724,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts",{"_index":4904,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:11",{"_index":4910,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:16",{"_index":4906,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:32",{"_index":4908,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:36",{"_index":4912,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:40",{"_index":4914,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:8",{"_index":4905,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/content",{"_index":5530,"title":{},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{}}}],["apps/server/src/modules/board/service/submission",{"_index":18329,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts",{"_index":3756,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:102",{"_index":3802,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:111",{"_index":3775,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:122",{"_index":3791,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:134",{"_index":3798,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:143",{"_index":3800,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:152",{"_index":3782,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:161",{"_index":3770,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:18",{"_index":3768,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:30",{"_index":3786,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:39",{"_index":3788,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:48",{"_index":3779,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:57",{"_index":3796,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:66",{"_index":3777,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:76",{"_index":3784,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:85",{"_index":3794,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts",{"_index":4175,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:17",{"_index":4181,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:28",{"_index":4192,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:39",{"_index":4184,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:58",{"_index":4187,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:67",{"_index":4195,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:84",{"_index":4182,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:92",{"_index":4190,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts",{"_index":8082,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:11",{"_index":8084,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:23",{"_index":8089,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:35",{"_index":8087,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:71",{"_index":8085,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/submission",{"_index":18341,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["apps/server/src/modules/class/class.module.ts",{"_index":4394,"title":{},"body":{"modules/ClassModule.html":{}}}],["apps/server/src/modules/class/domain/class",{"_index":4411,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts",{"_index":4225,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:22",{"_index":4238,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:26",{"_index":4240,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:30",{"_index":4242,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:34",{"_index":4244,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:38",{"_index":4246,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:42",{"_index":4248,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:46",{"_index":4250,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:50",{"_index":4252,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:54",{"_index":4254,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:58",{"_index":4256,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:62",{"_index":4258,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:66",{"_index":4259,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:70",{"_index":4260,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:74",{"_index":4236,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts",{"_index":4334,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts:8",{"_index":4336,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/entity/class",{"_index":4418,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts",{"_index":4278,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:26",{"_index":4282,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:30",{"_index":4283,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:34",{"_index":4291,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:38",{"_index":4290,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:41",{"_index":4280,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:44",{"_index":4292,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:47",{"_index":4279,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:50",{"_index":4281,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:53",{"_index":4289,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:57",{"_index":4285,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:60",{"_index":4288,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts",{"_index":4324,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts:7",{"_index":4327,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts",{"_index":4424,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:10",{"_index":4427,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:13",{"_index":4429,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:18",{"_index":4431,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts",{"_index":4341,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:26",{"_index":4353,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:43",{"_index":4349,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:47",{"_index":4351,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:7",{"_index":4347,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/service/class.service.ts",{"_index":4395,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:10",{"_index":4403,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:16",{"_index":4401,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:7",{"_index":4399,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/collaborative",{"_index":4568,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUserDto.html":{}}}],["apps/server/src/modules/copy",{"_index":6043,"title":{},"body":{"classes/CopyApiResponse.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["apps/server/src/modules/files",{"_index":6064,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/DownloadFileParams.html":{},"classes/ErrorMapper.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"classes/FileUrlParams.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/GetFileResponse.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IParentInfo.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/TestHelper.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/modules/files/entity/file",{"_index":9665,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts",{"_index":9557,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:106",{"_index":9584,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:109",{"_index":9573,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:116",{"_index":9598,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:39",{"_index":9580,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:42",{"_index":9579,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:45",{"_index":9581,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:48",{"_index":9582,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:51",{"_index":9590,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:54",{"_index":9596,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:57",{"_index":9591,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:60",{"_index":9578,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:63",{"_index":9593,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:66",{"_index":9594,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:69",{"_index":9595,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:72",{"_index":9588,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:76",{"_index":9589,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:80",{"_index":9577,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:88",{"_index":9576,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:95",{"_index":9586,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:99",{"_index":9571,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/files.module.ts",{"_index":10041,"title":{},"body":{"modules/FilesModule.html":{}}}],["apps/server/src/modules/files/job/delete",{"_index":7770,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts",{"_index":10042,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:10",{"_index":10046,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:15",{"_index":10055,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:19",{"_index":10054,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:33",{"_index":10048,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:44",{"_index":10051,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/service/files.service.ts",{"_index":10070,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:23",{"_index":10075,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:6",{"_index":10073,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:9",{"_index":10077,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/uc/delete",{"_index":7794,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["apps/server/src/modules/fwu",{"_index":10384,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/S3Config.html":{}}}],["apps/server/src/modules/group/domain/group",{"_index":10729,"title":{},"body":{"classes/GroupUser.html":{}}}],["apps/server/src/modules/group/domain/group.ts",{"_index":10576,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["apps/server/src/modules/group/entity/group",{"_index":10735,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts",{"_index":10648,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:32",{"_index":10650,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:35",{"_index":10652,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:38",{"_index":10649,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:41",{"_index":10654,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:44",{"_index":10653,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:47",{"_index":10651,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/group",{"_index":10586,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["apps/server/src/modules/group/group.module.ts",{"_index":10669,"title":{},"body":{"modules/GroupModule.html":{}}}],["apps/server/src/modules/group/repo/group",{"_index":10589,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts",{"_index":10674,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:12",{"_index":10680,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:26",{"_index":10679,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:45",{"_index":10681,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:70",{"_index":10677,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:9",{"_index":10676,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/service/group.service.ts",{"_index":10709,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:12",{"_index":10716,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:22",{"_index":10715,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:28",{"_index":10720,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:34",{"_index":10718,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:40",{"_index":10714,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:9",{"_index":10712,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/h5p",{"_index":10773,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["apps/server/src/modules/learnroom/common",{"_index":5035,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts",{"_index":6479,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:24",{"_index":6488,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:37",{"_index":6485,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts",{"_index":7218,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:16",{"_index":7221,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:23",{"_index":7226,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:39",{"_index":7231,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course",{"_index":6695,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts",{"_index":6763,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts:14",{"_index":6765,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts",{"_index":6846,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts:11",{"_index":6847,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts",{"_index":7437,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:100",{"_index":7446,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:105",{"_index":7442,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:108",{"_index":7611,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:118",{"_index":7613,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:124",{"_index":7612,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:16",{"_index":7461,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:22",{"_index":7463,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:27",{"_index":7462,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:32",{"_index":7460,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:35",{"_index":7441,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:4",{"_index":7459,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:62",{"_index":7448,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:68",{"_index":7451,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:73",{"_index":7449,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:78",{"_index":7443,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:83",{"_index":7452,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:88",{"_index":7453,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:94",{"_index":7447,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts",{"_index":7642,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts:11",{"_index":7643,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson",{"_index":13665,"title":{},"body":{"classes/LessonCopyApiParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts",{"_index":13973,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts:11",{"_index":13974,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/move",{"_index":14573,"title":{},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/patch",{"_index":16072,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room",{"_index":16924,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts",{"_index":16927,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts:11",{"_index":16928,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/single",{"_index":2774,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts",{"_index":16956,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:34",{"_index":16968,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:44",{"_index":16971,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:58",{"_index":16974,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:68",{"_index":16962,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:79",{"_index":16965,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/learnroom",{"_index":13376,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["apps/server/src/modules/learnroom/learnroom.module.ts",{"_index":13391,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["apps/server/src/modules/learnroom/mapper/board",{"_index":3730,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts",{"_index":6681,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts:5",{"_index":6684,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts",{"_index":7464,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:15",{"_index":7468,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:36",{"_index":7470,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:5",{"_index":7472,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/room",{"_index":16866,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["apps/server/src/modules/learnroom/service/board",{"_index":2984,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/column",{"_index":4829,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["apps/server/src/modules/learnroom/service/common",{"_index":4930,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["apps/server/src/modules/learnroom/service/course",{"_index":6516,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts",{"_index":6827,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:13",{"_index":6831,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:6",{"_index":6829,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:9",{"_index":6833,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts",{"_index":6671,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:6",{"_index":6674,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:9",{"_index":6676,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts",{"_index":16996,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:10",{"_index":17000,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:19",{"_index":17004,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:33",{"_index":17002,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/uc/course",{"_index":6575,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts",{"_index":6839,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:10",{"_index":6843,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:7",{"_index":6841,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts",{"_index":7614,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:13",{"_index":7620,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:26",{"_index":7622,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:41",{"_index":7624,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:57",{"_index":7626,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:7",{"_index":7619,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/lesson",{"_index":13828,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["apps/server/src/modules/learnroom/uc/room",{"_index":7911,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts",{"_index":16929,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:11",{"_index":16937,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:17",{"_index":16935,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:24",{"_index":16941,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:45",{"_index":16939,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts",{"_index":17019,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:10",{"_index":17023,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:20",{"_index":17025,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:31",{"_index":17030,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:52",{"_index":17028,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/legacy",{"_index":9465,"title":{},"body":{"injectables/FederalStateService.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationBody.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolParams.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts",{"_index":13971,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts:11",{"_index":13972,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts",{"_index":13655,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts:15",{"_index":13659,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/lesson",{"_index":13649,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["apps/server/src/modules/lesson/lesson.module.ts",{"_index":13874,"title":{},"body":{"modules/LessonModule.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts",{"_index":8248,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:12",{"_index":8254,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:9",{"_index":8252,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/lesson",{"_index":13668,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts",{"_index":13939,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:13",{"_index":13945,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:19",{"_index":13950,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:23",{"_index":13948,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:27",{"_index":13947,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:7",{"_index":13943,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts",{"_index":14865,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:12",{"_index":14869,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:9",{"_index":14867,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts",{"_index":13961,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:13",{"_index":13964,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:7",{"_index":13962,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lti",{"_index":14332,"title":{},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{}}}],["apps/server/src/modules/management/console/board",{"_index":3444,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["apps/server/src/modules/management/console/database",{"_index":7645,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["apps/server/src/modules/management/controller/database",{"_index":7685,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts",{"_index":3844,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:11",{"_index":3857,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:21",{"_index":3848,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/management",{"_index":14422,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["apps/server/src/modules/management/management.module.ts",{"_index":14409,"title":{},"body":{"modules/ManagementModule.html":{}}}],["apps/server/src/modules/management/seed",{"_index":21552,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/modules/management/uc/board",{"_index":3470,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["apps/server/src/modules/management/uc/database",{"_index":11109,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["apps/server/src/modules/news/controller/dto/create",{"_index":6899,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/filter",{"_index":10355,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts",{"_index":14648,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:101",{"_index":14764,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:106",{"_index":14760,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:111",{"_index":14772,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:116",{"_index":14759,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:12",{"_index":14757,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:121",{"_index":14771,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:126",{"_index":14763,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:129",{"_index":14649,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:51",{"_index":14762,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:56",{"_index":14770,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:61",{"_index":14758,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:66",{"_index":14761,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:73",{"_index":14765,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:78",{"_index":14766,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:85",{"_index":14769,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:91",{"_index":14768,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:96",{"_index":14767,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts",{"_index":14862,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts:11",{"_index":14864,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/school",{"_index":17573,"title":{},"body":{"classes/SchoolInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/target",{"_index":18744,"title":{},"body":{"classes/TargetInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts",{"_index":19343,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts:11",{"_index":19344,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/update",{"_index":19956,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/user",{"_index":20193,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts",{"_index":14594,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:27",{"_index":14597,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:41",{"_index":14602,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:62",{"_index":14606,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:72",{"_index":14611,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:90",{"_index":14600,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/team",{"_index":19276,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["apps/server/src/modules/news/loggable/news",{"_index":14638,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts",{"_index":14665,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:38",{"_index":14673,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:52",{"_index":14671,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:65",{"_index":14679,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:74",{"_index":14675,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:9",{"_index":14677,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/school",{"_index":17566,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/target",{"_index":18739,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/user",{"_index":20192,"title":{},"body":{"classes/UserInfoMapper.html":{}}}],["apps/server/src/modules/news/news.module.ts",{"_index":14717,"title":{},"body":{"modules/NewsModule.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts",{"_index":14791,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:100",{"_index":14808,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:122",{"_index":14820,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:148",{"_index":14801,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:159",{"_index":14812,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:179",{"_index":14818,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:197",{"_index":14810,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:207",{"_index":14814,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:23",{"_index":14798,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:39",{"_index":14800,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:67",{"_index":14803,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/oauth",{"_index":361,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/ChallengeParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"interfaces/GroupNameIdTuple.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"classes/OidcContextResponse.html":{},"classes/RedirectResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/UserParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts",{"_index":1996,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:11",{"_index":2000,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:15",{"_index":2003,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:19",{"_index":2004,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:23",{"_index":2005,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:27",{"_index":2006,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/sso",{"_index":17195,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["apps/server/src/modules/oauth/controller/dto/stateless",{"_index":18158,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/system",{"_index":18606,"title":{},"body":{"classes/SystemIdParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/user",{"_index":20579,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["apps/server/src/modules/oauth/controller/oauth",{"_index":15690,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apps/server/src/modules/oauth/error/oauth",{"_index":15023,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["apps/server/src/modules/oauth/error/user",{"_index":20669,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["apps/server/src/modules/oauth/interface/oauth",{"_index":15137,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["apps/server/src/modules/oauth/mapper/oauth",{"_index":15379,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/token",{"_index":19490,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/user",{"_index":20576,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["apps/server/src/modules/oauth/oauth",{"_index":15232,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["apps/server/src/modules/oauth/oauth.module.ts",{"_index":15399,"title":{},"body":{"modules/OauthModule.html":{}}}],["apps/server/src/modules/oauth/service/dto/authentication",{"_index":1593,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts",{"_index":6033,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:2",{"_index":6037,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4",{"_index":6036,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts",{"_index":10984,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:13",{"_index":10988,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:15",{"_index":10989,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:17",{"_index":10987,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:19",{"_index":10990,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:21",{"_index":10986,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:4",{"_index":10985,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/oauth",{"_index":15009,"title":{},"body":{"classes/OAuthProcessDto.html":{},"interfaces/OauthTokenResponse.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts",{"_index":11001,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:126",{"_index":11013,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:19",{"_index":11008,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:27",{"_index":11021,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:29",{"_index":11015,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:43",{"_index":11020,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:79",{"_index":11017,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:99",{"_index":11011,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/oauth",{"_index":15196,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts",{"_index":15033,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:116",{"_index":15054,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:132",{"_index":15063,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:142",{"_index":15067,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:154",{"_index":15069,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:169",{"_index":15059,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:189",{"_index":15056,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:205",{"_index":15061,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:214",{"_index":15052,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:22",{"_index":15047,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:37",{"_index":15050,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:63",{"_index":15065,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/uc/dto/oauth",{"_index":15367,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["apps/server/src/modules/oauth/uc/hydra",{"_index":10924,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts",{"_index":15807,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:142",{"_index":15814,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:26",{"_index":15812,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:40",{"_index":15822,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:66",{"_index":15820,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:97",{"_index":15817,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/provisioning/dto/external",{"_index":8267,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalUserDto.html":{}}}],["apps/server/src/modules/provisioning/dto/oauth",{"_index":15345,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning",{"_index":16355,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts",{"_index":16297,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2",{"_index":16299,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/loggable/group",{"_index":10697,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/school",{"_index":17529,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/user",{"_index":20188,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/mapper/provisioning",{"_index":16360,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["apps/server/src/modules/provisioning/provisioning.module.ts",{"_index":16307,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts",{"_index":16313,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:16",{"_index":16334,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:19",{"_index":16322,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:32",{"_index":16333,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:36",{"_index":16326,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:50",{"_index":16324,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:56",{"_index":16331,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:62",{"_index":16328,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts",{"_index":16351,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:5",{"_index":16354,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:7",{"_index":16353,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:9",{"_index":16352,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv",{"_index":12594,"title":{},"body":{"classes/IservMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts",{"_index":12611,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:19",{"_index":12615,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:65",{"_index":12620,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc",{"_index":15899,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts",{"_index":15989,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts:9",{"_index":15991,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/service/oidc",{"_index":15909,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/response/sanis",{"_index":17202,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/response/sanis.response.ts",{"_index":17260,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis",{"_index":17263,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts",{"_index":17237,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:21",{"_index":17240,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:69",{"_index":17243,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/pseudonym/entity/external",{"_index":8710,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts",{"_index":16381,"title":{},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:18",{"_index":16382,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:21",{"_index":16383,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:24",{"_index":16384,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym.module.ts",{"_index":16390,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["apps/server/src/modules/pseudonym/repo/external",{"_index":8724,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts",{"_index":16436,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:10",{"_index":16442,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:21",{"_index":16441,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:36",{"_index":16440,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:44",{"_index":16438,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:65",{"_index":16439,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:7",{"_index":16437,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:71",{"_index":16444,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:82",{"_index":16443,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts",{"_index":16391,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:103",{"_index":16403,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:110",{"_index":16414,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:15",{"_index":16405,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:25",{"_index":16406,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:48",{"_index":16410,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:72",{"_index":16401,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:85",{"_index":16412,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:9",{"_index":16399,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:91",{"_index":16408,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:97",{"_index":16404,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/rocketchat/rocket",{"_index":1263,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts",{"_index":16792,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:13",{"_index":16796,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:5",{"_index":16799,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/role.module.ts",{"_index":16808,"title":{},"body":{"modules/RoleModule.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts",{"_index":16787,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:4",{"_index":16789,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:6",{"_index":16790,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:8",{"_index":16788,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/role.service.ts",{"_index":16839,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:11",{"_index":16846,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:16",{"_index":16843,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:22",{"_index":16844,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:28",{"_index":16845,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:8",{"_index":16842,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts",{"_index":16857,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:10",{"_index":16860,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:7",{"_index":16859,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts",{"_index":17751,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts:7",{"_index":17752,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/server.config.ts",{"_index":11745,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["apps/server/src/modules/server/server.module.ts",{"_index":17764,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:152",{"_index":17767,"title":{},"body":{"modules/ServerModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:183",{"_index":17836,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:187",{"_index":17837,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/sharing/controller/dto/share",{"_index":17850,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{}}}],["apps/server/src/modules/sharing/controller/share",{"_index":17869,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apps/server/src/modules/sharing/domainobject/share",{"_index":17918,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["apps/server/src/modules/sharing/entity/share",{"_index":11765,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["apps/server/src/modules/sharing/mapper/context",{"_index":17866,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/metadata",{"_index":14448,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/parent",{"_index":17962,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/share",{"_index":17956,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["apps/server/src/modules/sharing/repo/share",{"_index":17974,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["apps/server/src/modules/sharing/service/share",{"_index":18007,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["apps/server/src/modules/sharing/service/token",{"_index":19485,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["apps/server/src/modules/sharing/sharing.module.ts",{"_index":18111,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["apps/server/src/modules/sharing/uc/dto/share",{"_index":17947,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{}}}],["apps/server/src/modules/sharing/uc/share",{"_index":18038,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["apps/server/src/modules/system/controller/dto/oauth",{"_index":15319,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/public",{"_index":16453,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/system",{"_index":18607,"title":{},"body":{"classes/SystemIdParams-1.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts",{"_index":18598,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:10",{"_index":18604,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:16",{"_index":18601,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/mapper/system",{"_index":18672,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts",{"_index":18519,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:23",{"_index":18526,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:38",{"_index":18532,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/mapper/system",{"_index":18630,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts",{"_index":18609,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:20",{"_index":18615,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:39",{"_index":18612,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:6",{"_index":18613,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/service/dto/oauth",{"_index":15289,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/oidc",{"_index":15855,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts",{"_index":18553,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:10",{"_index":18563,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:12",{"_index":18556,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:14",{"_index":18557,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:16",{"_index":18560,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:18",{"_index":18561,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:20",{"_index":18559,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:22",{"_index":18555,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:6",{"_index":18558,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:8",{"_index":18562,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/system",{"_index":18643,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts",{"_index":18689,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:10",{"_index":18692,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:16",{"_index":18693,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:25",{"_index":18695,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:40",{"_index":18699,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:66",{"_index":18697,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/system",{"_index":18514,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["apps/server/src/modules/system/system.module.ts",{"_index":18626,"title":{},"body":{"modules/SystemModule.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts",{"_index":18731,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:11",{"_index":18734,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:25",{"_index":18735,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:8",{"_index":18732,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts",{"_index":18453,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:14",{"_index":18460,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:17",{"_index":18463,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:20",{"_index":18462,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:23",{"_index":18459,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:26",{"_index":18461,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:29",{"_index":18464,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:3",{"_index":18458,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:32",{"_index":18454,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:38",{"_index":18455,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts",{"_index":18483,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts:11",{"_index":18484,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task",{"_index":18821,"title":{},"body":{"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts",{"_index":18898,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:22",{"_index":19065,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:26",{"_index":19068,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:29",{"_index":19057,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:32",{"_index":19064,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:36",{"_index":19059,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:39",{"_index":19067,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:42",{"_index":19058,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:49",{"_index":19062,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:52",{"_index":19066,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:55",{"_index":19063,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:58",{"_index":19060,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:61",{"_index":19070,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:64",{"_index":19069,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:67",{"_index":18899,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:9",{"_index":19056,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts",{"_index":19236,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts:11",{"_index":19237,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts",{"_index":18239,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:16",{"_index":18247,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:30",{"_index":18243,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts",{"_index":18771,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:100",{"_index":18780,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:22",{"_index":18781,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:30",{"_index":18784,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:37",{"_index":18786,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:54",{"_index":18789,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:63",{"_index":18792,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:72",{"_index":18795,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:85",{"_index":18778,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts",{"_index":18376,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts:5",{"_index":18379,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/task",{"_index":19137,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts",{"_index":18905,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:39",{"_index":18912,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:54",{"_index":18909,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:6",{"_index":18914,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts",{"_index":18438,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:13",{"_index":18447,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:17",{"_index":18445,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:23",{"_index":18443,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:7",{"_index":18441,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/task",{"_index":18823,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts",{"_index":19121,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:15",{"_index":19130,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:24",{"_index":19125,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:32",{"_index":19127,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:39",{"_index":19129,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:8",{"_index":19123,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/task",{"_index":18765,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["apps/server/src/modules/task/task.module.ts",{"_index":18946,"title":{},"body":{"modules/TaskModule.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts",{"_index":18465,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:13",{"_index":18473,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:22",{"_index":18469,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:39",{"_index":18471,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:7",{"_index":18468,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/task",{"_index":18853,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts",{"_index":19148,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:110",{"_index":19173,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:126",{"_index":19163,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:155",{"_index":19165,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:185",{"_index":19169,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:19",{"_index":19154,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:197",{"_index":19171,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:218",{"_index":19166,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:225",{"_index":19157,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:28",{"_index":19161,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:69",{"_index":19159,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:85",{"_index":19156,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts",{"_index":19328,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:15",{"_index":19334,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:6",{"_index":19332,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:9",{"_index":19336,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/teams",{"_index":19374,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["apps/server/src/modules/teams/teams.module.ts",{"_index":19379,"title":{},"body":{"modules/TeamsModule.html":{}}}],["apps/server/src/modules/tool/common/common",{"_index":5276,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["apps/server/src/modules/tool/common/domain/custom",{"_index":7061,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntry.html":{}}}],["apps/server/src/modules/tool/common/entity/custom",{"_index":7104,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["apps/server/src/modules/tool/common/interface/external",{"_index":9068,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{}}}],["apps/server/src/modules/tool/common/interface/tool",{"_index":19941,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["apps/server/src/modules/tool/common/mapper/context",{"_index":6016,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["apps/server/src/modules/tool/common/service/common",{"_index":5284,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{}}}],["apps/server/src/modules/tool/common/uc/tool",{"_index":19829,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["apps/server/src/modules/tool/context",{"_index":5598,"title":{},"body":{"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolIdParams.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"interfaces/IContextExternalToolProperties.html":{},"controllers/ToolContextController.html":{}}}],["apps/server/src/modules/tool/external",{"_index":2600,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{},"classes/SortExternalToolParams.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{}}}],["apps/server/src/modules/tool/school",{"_index":7108,"title":{},"body":{"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"controllers/ToolSchoolController.html":{}}}],["apps/server/src/modules/tool/tool",{"_index":108,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PropertyData.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["apps/server/src/modules/tool/tool.module.ts",{"_index":19828,"title":{},"body":{"modules/ToolModule.html":{}}}],["apps/server/src/modules/user",{"_index":4442,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/OAuthMigrationError.html":{},"classes/Oauth2MigrationParams.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RoleNameMapper.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SortImportUserParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{}}}],["apps/server/src/modules/user/controller/dto/resolved",{"_index":16691,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts",{"_index":4219,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts:8",{"_index":4223,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts",{"_index":18486,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:3",{"_index":18488,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:9",{"_index":18489,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts",{"_index":20008,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:16",{"_index":20015,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:26",{"_index":20012,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/interfaces/user",{"_index":12096,"title":{},"body":{"interfaces/IUserConfig.html":{}}}],["apps/server/src/modules/user/mapper/resolved",{"_index":16680,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts",{"_index":20524,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts:5",{"_index":20525,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/service/user.service.ts",{"_index":20750,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:105",{"_index":20758,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:21",{"_index":20756,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:30",{"_index":20771,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:40",{"_index":20769,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:46",{"_index":20767,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:54",{"_index":20761,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:59",{"_index":20776,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:64",{"_index":20778,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:69",{"_index":20763,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:74",{"_index":20760,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:79",{"_index":20759,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:84",{"_index":20765,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:96",{"_index":20774,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts",{"_index":20146,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:20",{"_index":20154,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:22",{"_index":20150,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:24",{"_index":20152,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:26",{"_index":20157,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:28",{"_index":20161,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:3",{"_index":20149,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:30",{"_index":20162,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:32",{"_index":20158,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:34",{"_index":20151,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:36",{"_index":20155,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:38",{"_index":20153,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:41",{"_index":20160,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:43",{"_index":20156,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:45",{"_index":20159,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts",{"_index":20802,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:12",{"_index":20808,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:19",{"_index":20806,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:25",{"_index":20809,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:9",{"_index":20804,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/user",{"_index":20005,"title":{},"body":{"modules/UserApiModule.html":{}}}],["apps/server/src/modules/user/user.module.ts",{"_index":20665,"title":{},"body":{"modules/UserModule.html":{}}}],["apps/server/src/modules/video",{"_index":2090,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/Builder.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"interfaces/IBbbSettings.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ScopeRef.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{}}}],["apps/server/src/shared/common/decorators/timeout.decorator.ts",{"_index":21574,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/common/error/api",{"_index":1470,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts",{"_index":1883,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts:4",{"_index":1885,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts",{"_index":3869,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:12",{"_index":3878,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:15",{"_index":3881,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:18",{"_index":3880,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:21",{"_index":3879,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:25",{"_index":3877,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:47",{"_index":3882,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/entity",{"_index":8119,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["apps/server/src/shared/common/error/forbidden",{"_index":10376,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["apps/server/src/shared/common/error/user",{"_index":19987,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts",{"_index":20813,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts:4",{"_index":20814,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/interceptor/duration",{"_index":8011,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/interfaces/interceptor",{"_index":11498,"title":{},"body":{"interfaces/IInterceptorConfig.html":{}}}],["apps/server/src/shared/common/interceptor/request",{"_index":16664,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts",{"_index":19453,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:11",{"_index":19457,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:14",{"_index":19458,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/loggable",{"_index":14971,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts",{"_index":6024,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts:9",{"_index":6027,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/guard",{"_index":10761,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts",{"_index":18195,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:10",{"_index":18198,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:2",{"_index":18200,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts",{"_index":16051,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:14",{"_index":16052,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:8",{"_index":16053,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts",{"_index":16056,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:11",{"_index":16059,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:14",{"_index":16062,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:17",{"_index":16061,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:20",{"_index":16060,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:3",{"_index":16058,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts",{"_index":18140,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:13",{"_index":18141,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:18",{"_index":18143,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/transformer/decode",{"_index":21535,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/controller/transformer/sanitize",{"_index":21576,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/controller/transformer/single",{"_index":21579,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/controller/transformer/string",{"_index":21581,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/controller/validator/privacy",{"_index":21570,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/domain/domain",{"_index":1855,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts",{"_index":2380,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts:5",{"_index":2382,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/board/board",{"_index":2792,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts",{"_index":3980,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:12",{"_index":3990,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:16",{"_index":3992,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:20",{"_index":3994,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:8",{"_index":3988,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column",{"_index":4688,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts",{"_index":4680,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:10",{"_index":4684,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:6",{"_index":4683,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/content",{"_index":5490,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["apps/server/src/shared/domain/domainobject/board/file",{"_index":9516,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/rich",{"_index":16730,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/submission",{"_index":18216,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"interfaces/SubmissionItemProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/types/board",{"_index":2845,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardExternalReference.html":{},"interfaces/UserBoardRoles.html":{}}}],["apps/server/src/shared/domain/domainobject/external",{"_index":8307,"title":{},"body":{"classes/ExternalSource.html":{}}}],["apps/server/src/shared/domain/domainobject/legacy",{"_index":13483,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts",{"_index":7031,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:17",{"_index":14307,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:19",{"_index":14316,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:21",{"_index":14303,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:23",{"_index":14314,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:25",{"_index":14304,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:27",{"_index":14305,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:29",{"_index":14306,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:31",{"_index":14312,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:33",{"_index":14313,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:35",{"_index":14311,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:37",{"_index":14298,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:39",{"_index":14302,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:41",{"_index":14301,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:43",{"_index":14310,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:45",{"_index":14308,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:47",{"_index":14299,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:49",{"_index":14315,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:51",{"_index":14309,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:53",{"_index":14300,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:55",{"_index":14297,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:6",{"_index":7034,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:8",{"_index":7033,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts",{"_index":16006,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:2",{"_index":16008,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:4",{"_index":16007,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts",{"_index":16368,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:13",{"_index":16370,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:17",{"_index":16372,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:21",{"_index":16373,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:25",{"_index":16374,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:29",{"_index":16375,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/role",{"_index":16823,"title":{},"body":{"classes/RoleReference.html":{}}}],["apps/server/src/shared/domain/domainobject/user",{"_index":20325,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts",{"_index":20025,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:11",{"_index":20028,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:13",{"_index":20031,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:15",{"_index":20037,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:17",{"_index":20042,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:19",{"_index":20043,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:21",{"_index":20039,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:23",{"_index":20030,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:25",{"_index":20034,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:27",{"_index":20032,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:29",{"_index":20038,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:31",{"_index":20029,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:33",{"_index":20035,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:35",{"_index":20033,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:37",{"_index":20041,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:39",{"_index":20036,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:41",{"_index":20040,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:43",{"_index":20026,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:7",{"_index":20027,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:9",{"_index":20044,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/video",{"_index":20990,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts",{"_index":382,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:12",{"_index":397,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:15",{"_index":391,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:18",{"_index":393,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:21",{"_index":388,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:24",{"_index":395,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:27",{"_index":392,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:30",{"_index":390,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:33",{"_index":389,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:36",{"_index":387,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts",{"_index":2493,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:11",{"_index":2498,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:25",{"_index":2520,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:28",{"_index":2522,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:31",{"_index":2521,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:34",{"_index":2524,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:8",{"_index":2496,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts",{"_index":3551,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:29",{"_index":3555,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:32",{"_index":3553,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:35",{"_index":3556,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:39",{"_index":3559,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:42",{"_index":3557,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/card",{"_index":4089,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/column",{"_index":4711,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/file",{"_index":9538,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/rich",{"_index":16756,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/submission",{"_index":18228,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/types/board",{"_index":3155,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts",{"_index":6363,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:45",{"_index":6385,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:48",{"_index":6380,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:52",{"_index":6387,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:56",{"_index":6392,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:60",{"_index":6395,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:64",{"_index":6394,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:67",{"_index":6378,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:71",{"_index":6374,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:74",{"_index":6390,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:78",{"_index":6396,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:81",{"_index":6375,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:85",{"_index":6389,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:88",{"_index":6383,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts",{"_index":6623,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:21",{"_index":6626,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:25",{"_index":6631,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:29",{"_index":6625,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:33",{"_index":6629,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts",{"_index":7252,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:100",{"_index":10573,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:108",{"_index":10562,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:117",{"_index":10568,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:138",{"_index":10572,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:14",{"_index":11434,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:142",{"_index":10575,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:16",{"_index":11436,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:161",{"_index":7272,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:163",{"_index":7270,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:165",{"_index":7271,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:167",{"_index":7273,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:169",{"_index":7294,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:176",{"_index":7300,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:18",{"_index":11435,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:180",{"_index":7269,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:193",{"_index":7288,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:197",{"_index":7292,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:20",{"_index":11432,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:201",{"_index":7286,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:213",{"_index":7283,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:22",{"_index":11431,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:221",{"_index":7298,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:231",{"_index":7307,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:24",{"_index":11437,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:240",{"_index":7304,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:255",{"_index":7279,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:266",{"_index":7277,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:272",{"_index":7275,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:278",{"_index":7285,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:286",{"_index":7291,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:298",{"_index":7302,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:307",{"_index":7296,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:38",{"_index":10558,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:40",{"_index":10561,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:42",{"_index":10560,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:52",{"_index":10557,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:60",{"_index":10566,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:64",{"_index":10565,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:68",{"_index":10567,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:72",{"_index":10564,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:76",{"_index":10559,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:78",{"_index":10571,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:8",{"_index":11433,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:82",{"_index":10569,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:86",{"_index":10570,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:90",{"_index":10574,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts",{"_index":7405,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:42",{"_index":7412,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:45",{"_index":7413,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:48",{"_index":7414,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:52",{"_index":7411,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:56",{"_index":7409,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:76",{"_index":7493,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:81",{"_index":7495,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/external",{"_index":8312,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/federal",{"_index":6341,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["apps/server/src/shared/domain/entity/import",{"_index":11446,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["apps/server/src/shared/domain/entity/legacy",{"_index":2670,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts",{"_index":11306,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:101",{"_index":13860,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:104",{"_index":13853,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:107",{"_index":13858,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:110",{"_index":13861,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:81",{"_index":11536,"title":{},"body":{"interfaces/ILessonParent.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:87",{"_index":13859,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:91",{"_index":13857,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:95",{"_index":13854,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:98",{"_index":13855,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts",{"_index":6958,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:101",{"_index":14278,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:33",{"_index":14285,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:36",{"_index":14296,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:39",{"_index":14281,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:42",{"_index":14294,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:45",{"_index":14282,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:48",{"_index":14283,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:51",{"_index":14284,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:54",{"_index":14290,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:58",{"_index":14293,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:65",{"_index":14289,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:68",{"_index":14275,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:71",{"_index":14280,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:74",{"_index":14279,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:77",{"_index":14274,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:85",{"_index":14286,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:89",{"_index":14276,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:92",{"_index":14295,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:95",{"_index":14287,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:98",{"_index":14277,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts",{"_index":11539,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:31",{"_index":14430,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:34",{"_index":14431,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:37",{"_index":14432,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:40",{"_index":14433,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:43",{"_index":14434,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:46",{"_index":14435,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:49",{"_index":14436,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:52",{"_index":14437,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:55",{"_index":14438,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:58",{"_index":14439,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts",{"_index":6718,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:102",{"_index":17665,"title":{},"body":{"entities/SchoolNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:116",{"_index":6719,"title":{},"body":{"entities/CourseNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:127",{"_index":19275,"title":{},"body":{"entities/TeamNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:34",{"_index":14591,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:38",{"_index":14581,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:43",{"_index":14583,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:46",{"_index":14584,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:49",{"_index":14587,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:52",{"_index":14588,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:55",{"_index":14589,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:59",{"_index":14590,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:62",{"_index":14586,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:65",{"_index":14582,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:68",{"_index":14592,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:70",{"_index":14585,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts",{"_index":11670,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:15",{"_index":16783,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:18",{"_index":16784,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:21",{"_index":16786,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts",{"_index":11691,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:100",{"_index":17341,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:103",{"_index":17331,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:47",{"_index":17679,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:50",{"_index":17678,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:56",{"_index":17680,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:59",{"_index":17681,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:66",{"_index":17330,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:69",{"_index":17332,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:72",{"_index":17333,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:75",{"_index":17329,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:78",{"_index":17337,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:81",{"_index":17334,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:84",{"_index":17335,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:87",{"_index":17339,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:90",{"_index":17336,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:93",{"_index":17338,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts",{"_index":11736,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:13",{"_index":17693,"title":{},"body":{"entities/SchoolYear.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:16",{"_index":17694,"title":{},"body":{"entities/SchoolYear.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:19",{"_index":17692,"title":{},"body":{"entities/SchoolYear.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts",{"_index":11776,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:15",{"_index":18187,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:18",{"_index":18186,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:21",{"_index":18189,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:24",{"_index":18188,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts",{"_index":11789,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:30",{"_index":18208,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:34",{"_index":18212,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:37",{"_index":18209,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:40",{"_index":18204,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:43",{"_index":18213,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:46",{"_index":18203,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:49",{"_index":18210,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:52",{"_index":18207,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:55",{"_index":18205,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:58",{"_index":18206,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts",{"_index":11844,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:102",{"_index":13270,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:105",{"_index":13271,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:108",{"_index":13269,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:111",{"_index":13278,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:114",{"_index":13275,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:117",{"_index":13276,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:120",{"_index":13277,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:123",{"_index":13273,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:126",{"_index":13274,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:153",{"_index":15846,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:166",{"_index":15848,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:169",{"_index":15849,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:172",{"_index":15851,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:175",{"_index":15847,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:178",{"_index":15853,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:18",{"_index":15275,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:181",{"_index":15852,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:184",{"_index":15854,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:187",{"_index":15850,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:206",{"_index":18508,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:209",{"_index":18509,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:212",{"_index":18499,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:215",{"_index":18500,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:218",{"_index":18503,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:222",{"_index":18506,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:225",{"_index":18504,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:228",{"_index":18502,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:231",{"_index":18507,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:36",{"_index":15277,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:39",{"_index":15278,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:42",{"_index":15280,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:45",{"_index":15285,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:48",{"_index":15279,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:51",{"_index":15288,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:54",{"_index":15276,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:57",{"_index":15286,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:60",{"_index":15287,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:63",{"_index":15284,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:66",{"_index":15283,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:69",{"_index":15281,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:72",{"_index":15282,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:76",{"_index":13266,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:93",{"_index":13267,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:96",{"_index":13268,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:99",{"_index":13272,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts",{"_index":11957,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:16",{"_index":19239,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:18",{"_index":19238,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:35",{"_index":11958,"title":{},"body":{"interfaces/ITaskParent.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:45",{"_index":18754,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:48",{"_index":18748,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:51",{"_index":18749,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:54",{"_index":18745,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:58",{"_index":18750,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:61",{"_index":18755,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:64",{"_index":18756,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:67",{"_index":18759,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:71",{"_index":18747,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:75",{"_index":18746,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:79",{"_index":18757,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:83",{"_index":18753,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:86",{"_index":18758,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:90",{"_index":18751,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts",{"_index":12067,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:19",{"_index":19348,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:27",{"_index":19351,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:30",{"_index":19349,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:33",{"_index":19350,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:36",{"_index":19352,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:40",{"_index":19354,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:44",{"_index":19356,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:48",{"_index":19358,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:56",{"_index":19247,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:59",{"_index":19248,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/user",{"_index":20197,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts",{"_index":12098,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:41",{"_index":19968,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:44",{"_index":19971,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:47",{"_index":19977,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:51",{"_index":19984,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:55",{"_index":19985,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:59",{"_index":19979,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:62",{"_index":19970,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:65",{"_index":19982,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:69",{"_index":19974,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:72",{"_index":19972,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:75",{"_index":19978,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:78",{"_index":19969,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:81",{"_index":19975,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:84",{"_index":19973,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:87",{"_index":19981,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:91",{"_index":19967,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:94",{"_index":19976,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:97",{"_index":19980,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/video",{"_index":20823,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["apps/server/src/shared/domain/interface/base",{"_index":2484,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["apps/server/src/shared/domain/interface/entity.ts",{"_index":11397,"title":{},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/interface/find",{"_index":11429,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["apps/server/src/shared/domain/interface/learnroom.ts",{"_index":11518,"title":{},"body":{"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["apps/server/src/shared/domain/rules/board",{"_index":3350,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["apps/server/src/shared/domain/rules/context",{"_index":5863,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["apps/server/src/shared/domain/rules/course",{"_index":6661,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["apps/server/src/shared/domain/rules/course.rule.ts",{"_index":6813,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/shared/domain/rules/course.rule.ts:10",{"_index":6816,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/shared/domain/rules/course.rule.ts:16",{"_index":6815,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/shared/domain/rules/course.rule.ts:7",{"_index":6814,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/shared/domain/rules/legacy",{"_index":13579,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts",{"_index":13899,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:16",{"_index":13911,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:22",{"_index":13910,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:38",{"_index":13913,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:51",{"_index":13915,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:57",{"_index":13917,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:69",{"_index":13909,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:75",{"_index":13907,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:9",{"_index":13905,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/school",{"_index":17450,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts",{"_index":18408,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:11",{"_index":18426,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:17",{"_index":18421,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:27",{"_index":18416,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:39",{"_index":18425,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:45",{"_index":18423,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:59",{"_index":18420,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:68",{"_index":18418,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:8",{"_index":18414,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts",{"_index":19071,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts:16",{"_index":19077,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts:22",{"_index":19076,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts:43",{"_index":19075,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts:9",{"_index":19073,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/team.rule.ts",{"_index":19320,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/shared/domain/rules/team.rule.ts:10",{"_index":19323,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/shared/domain/rules/team.rule.ts:14",{"_index":19322,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/shared/domain/rules/team.rule.ts:7",{"_index":19321,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/shared/domain/rules/user",{"_index":20417,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["apps/server/src/shared/domain/rules/user.rule.ts",{"_index":20732,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/shared/domain/rules/user.rule.ts:10",{"_index":20735,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/shared/domain/rules/user.rule.ts:16",{"_index":20734,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/shared/domain/rules/user.rule.ts:7",{"_index":20733,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts",{"_index":16102,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:17",{"_index":16108,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:26",{"_index":16113,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:51",{"_index":16106,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/types/importuser.types.ts",{"_index":11494,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["apps/server/src/shared/domain/types/news.types.ts",{"_index":11373,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["apps/server/src/shared/domain/types/rich",{"_index":16719,"title":{},"body":{"classes/RichText.html":{}}}],["apps/server/src/shared/domain/types/task.types.ts",{"_index":11950,"title":{},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.module.ts",{"_index":1407,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.module.ts:13",{"_index":1411,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts",{"_index":1425,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:14",{"_index":1431,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:20",{"_index":1435,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:38",{"_index":1433,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/cache/cache.module.ts",{"_index":3907,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts",{"_index":3894,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts:7",{"_index":3896,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/calendar/calendar.module.ts",{"_index":3955,"title":{},"body":{"modules/CalendarModule.html":{}}}],["apps/server/src/shared/infra/calendar/dto/calendar",{"_index":3926,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["apps/server/src/shared/infra/calendar/interface/calendar",{"_index":11097,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts",{"_index":3936,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts:7",{"_index":3939,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts",{"_index":3959,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:15",{"_index":3969,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:17",{"_index":3963,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:24",{"_index":3966,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:46",{"_index":3968,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/collaborative",{"_index":4477,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["apps/server/src/shared/infra/console/console",{"_index":5482,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{}}}],["apps/server/src/shared/infra/database/management/database",{"_index":7719,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{}}}],["apps/server/src/shared/infra/database/mongo",{"_index":14530,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts",{"_index":11388,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:5",{"_index":11394,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:6",{"_index":11392,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.module.ts",{"_index":8107,"title":{},"body":{"modules/EncryptionModule.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts",{"_index":18491,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:15",{"_index":18494,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:23",{"_index":18493,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:8",{"_index":18492,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/feathers/feathers",{"_index":9426,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["apps/server/src/shared/infra/feathers/feathers.module.ts",{"_index":9417,"title":{},"body":{"modules/FeathersModule.html":{}}}],["apps/server/src/shared/infra/file",{"_index":9956,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["apps/server/src/shared/infra/identity",{"_index":11439,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/OidcIdentityProviderMapper.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["apps/server/src/shared/infra/mail/mail.interface.ts",{"_index":1561,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["apps/server/src/shared/infra/mail/mail.module.ts",{"_index":14392,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.module.ts:11",{"_index":14394,"title":{},"body":{"modules/MailModule.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts",{"_index":14398,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:12",{"_index":14400,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:18",{"_index":14401,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts",{"_index":16200,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:12",{"_index":16217,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:14",{"_index":16222,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:18",{"_index":16216,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:20",{"_index":16224,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:24",{"_index":16212,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:26",{"_index":16226,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:30",{"_index":16213,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:32",{"_index":16228,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:34",{"_index":16211,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:4",{"_index":16214,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:44",{"_index":16229,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:52",{"_index":16218,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:6",{"_index":16215,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:8",{"_index":16220,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts",{"_index":16615,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:10",{"_index":16622,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:12",{"_index":16624,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:14",{"_index":16626,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:16",{"_index":16620,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32",{"_index":16700,"title":{},"body":{"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:6",{"_index":16623,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:8",{"_index":16621,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/oauth",{"_index":337,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"injectables/HydraAdapter.html":{},"interfaces/IntrospectResponse.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/RejectRequestBody.html":{}}}],["apps/server/src/shared/infra/rabbitmq/exchange/files",{"_index":11359,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts",{"_index":16468,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts:51",{"_index":16491,"title":{},"body":{"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rpc",{"_index":11399,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["apps/server/src/shared/infra/redis/redis.module.ts",{"_index":16596,"title":{},"body":{"modules/RedisModule.html":{}}}],["apps/server/src/shared/infra/s3",{"_index":6158,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config-1.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts",{"_index":2384,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:11",{"_index":2431,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:111",{"_index":2410,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:116",{"_index":2414,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:13",{"_index":2413,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:15",{"_index":2419,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:17",{"_index":2416,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:19",{"_index":2425,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:24",{"_index":2427,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:42",{"_index":2399,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:50",{"_index":2430,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:63",{"_index":2402,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:77",{"_index":2421,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:8",{"_index":2396,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:85",{"_index":2404,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:98",{"_index":2408,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts",{"_index":2569,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:13",{"_index":2580,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:16",{"_index":2585,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:18",{"_index":2581,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:22",{"_index":2584,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:26",{"_index":2582,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:30",{"_index":2583,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts",{"_index":3624,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:11",{"_index":3632,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:17",{"_index":3635,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:25",{"_index":3630,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:38",{"_index":3637,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:7",{"_index":3638,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/contextexternaltool/context",{"_index":5742,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts",{"_index":6767,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:120",{"_index":6780,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:129",{"_index":6783,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:21",{"_index":6826,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:32",{"_index":6825,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:37",{"_index":6822,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:47",{"_index":6824,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:55",{"_index":6784,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:59",{"_index":6773,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:71",{"_index":6776,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:9",{"_index":6823,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:95",{"_index":6778,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts",{"_index":6650,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:19",{"_index":6653,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:26",{"_index":6656,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:9",{"_index":6657,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts",{"_index":7497,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:112",{"_index":7520,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:128",{"_index":7515,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:16",{"_index":7508,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:19",{"_index":7526,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:24",{"_index":7522,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:34",{"_index":7517,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:42",{"_index":7528,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:51",{"_index":7524,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:64",{"_index":7513,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:75",{"_index":7530,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:95",{"_index":7510,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts",{"_index":7582,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:14",{"_index":11386,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:15",{"_index":11385,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:16",{"_index":11387,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:20",{"_index":7586,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:24",{"_index":7592,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:30",{"_index":7594,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:36",{"_index":7588,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:42",{"_index":7590,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/externaltool/external",{"_index":8766,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["apps/server/src/shared/repo/federalstate/federal",{"_index":9459,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts",{"_index":12454,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:11",{"_index":12469,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:27",{"_index":12467,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:34",{"_index":12463,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:52",{"_index":12465,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:69",{"_index":12460,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts",{"_index":12509,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:10",{"_index":12534,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:100",{"_index":12530,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:113",{"_index":12538,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:17",{"_index":12536,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:24",{"_index":12522,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:38",{"_index":12524,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:54",{"_index":12526,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:69",{"_index":12532,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:86",{"_index":12520,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson",{"_index":13933,"title":{},"body":{"classes/LessonScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts",{"_index":13875,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:13",{"_index":13879,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:23",{"_index":13881,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:41",{"_index":13883,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:9",{"_index":13884,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts",{"_index":14334,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:17",{"_index":14340,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:26",{"_index":14342,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:31",{"_index":14339,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:9",{"_index":14345,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts",{"_index":14445,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts:7",{"_index":14446,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts",{"_index":14549,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts:6",{"_index":14553,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/news/news",{"_index":14773,"title":{},"body":{"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts",{"_index":14722,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:10",{"_index":14736,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:12",{"_index":14737,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:21",{"_index":14729,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:36",{"_index":14731,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:51",{"_index":14735,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:58",{"_index":14733,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts",{"_index":16826,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:11",{"_index":16834,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:13",{"_index":16830,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:23",{"_index":16832,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:28",{"_index":16829,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:7",{"_index":16835,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/school/legacy",{"_index":13536,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["apps/server/src/shared/repo/schoolexternaltool/school",{"_index":17384,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["apps/server/src/shared/repo/scope.ts",{"_index":17708,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:11",{"_index":17711,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:13",{"_index":17710,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:20",{"_index":17716,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:31",{"_index":17713,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:35",{"_index":17714,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:9",{"_index":17712,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts",{"_index":18190,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:12",{"_index":18193,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:16",{"_index":18192,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:7",{"_index":18191,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts",{"_index":18385,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:10",{"_index":18398,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:21",{"_index":18392,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:30",{"_index":18394,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:35",{"_index":18390,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:41",{"_index":18397,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/system/system",{"_index":18687,"title":{},"body":{"classes/SystemScope.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts",{"_index":18656,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:12",{"_index":18660,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:31",{"_index":18658,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:8",{"_index":18661,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/task/task",{"_index":19085,"title":{},"body":{"classes/TaskScope.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts",{"_index":18947,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:106",{"_index":18956,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:11",{"_index":18968,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:15",{"_index":18967,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:164",{"_index":18963,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:190",{"_index":18965,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:26",{"_index":18954,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:38",{"_index":18961,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts",{"_index":19380,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:12",{"_index":19385,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:35",{"_index":19382,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:42",{"_index":19384,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:8",{"_index":19386,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts",{"_index":18164,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:10",{"_index":18170,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:21",{"_index":18173,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:36",{"_index":18175,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/user/user",{"_index":20067,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts",{"_index":20679,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:158",{"_index":20683,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:166",{"_index":20689,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:178",{"_index":20691,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:182",{"_index":20688,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:21",{"_index":20692,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:36",{"_index":20684,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:48",{"_index":20687,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts",{"_index":20737,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:12",{"_index":20746,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:19",{"_index":20744,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:28",{"_index":20748,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:35",{"_index":20740,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:5",{"_index":20742,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/userloginmigration/user",{"_index":20378,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["apps/server/src/shared/repo/videoconference/video",{"_index":21164,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts",{"_index":659,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts:15",{"_index":681,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts:9",{"_index":679,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/axios",{"_index":2061,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts",{"_index":2525,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:110",{"_index":2531,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:122",{"_index":2538,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:134",{"_index":2541,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:144",{"_index":2539,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:148",{"_index":2536,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:15",{"_index":2529,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:160",{"_index":2540,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:32",{"_index":2537,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:47",{"_index":2532,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:60",{"_index":2535,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:75",{"_index":2533,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:84",{"_index":2534,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:98",{"_index":2530,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts",{"_index":6601,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:12",{"_index":6605,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:19",{"_index":6606,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:26",{"_index":6608,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:33",{"_index":6611,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts",{"_index":6645,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts:8",{"_index":6646,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/board/column",{"_index":4705,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/do",{"_index":7895,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/domain",{"_index":7903,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/legacy",{"_index":13511,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/context",{"_index":5696,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/external",{"_index":7118,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/school",{"_index":17359,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/external",{"_index":8492,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts",{"_index":9794,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts:10",{"_index":9796,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/import",{"_index":12343,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts",{"_index":6861,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:18",{"_index":12710,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:22",{"_index":12709,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/lesson.factory.ts",{"_index":13863,"title":{},"body":{"classes/LessonFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts",{"_index":14318,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:14",{"_index":14322,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:7",{"_index":14320,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/material.factory.ts",{"_index":14441,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["apps/server/src/shared/testing/factory/share",{"_index":17932,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts",{"_index":18263,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:15",{"_index":18268,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:21",{"_index":18267,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:27",{"_index":18270,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:9",{"_index":18266,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts",{"_index":18571,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:28",{"_index":18576,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:40",{"_index":18579,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:7",{"_index":18578,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts",{"_index":18889,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:11",{"_index":18890,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:17",{"_index":18893,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:23",{"_index":18894,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:29",{"_index":18892,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts",{"_index":19250,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:14",{"_index":19256,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:7",{"_index":19254,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts",{"_index":19359,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:19",{"_index":19362,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:9",{"_index":19360,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user",{"_index":841,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts",{"_index":20140,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts:8",{"_index":20143,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts",{"_index":20169,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:11",{"_index":20180,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:17",{"_index":20178,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:23",{"_index":20175,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:32",{"_index":20176,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:41",{"_index":20174,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/test",{"_index":1701,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["apps\\server\\src\\shared\\testing\\factory",{"_index":22846,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appstartinfo",{"_index":1535,"title":{"interfaces/AppStartInfo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["appstartloggable",{"_index":1546,"title":{"classes/AppStartLoggable.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["appthis",{"_index":21601,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["arbitrary",{"_index":22635,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["arc",{"_index":2575,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["architectural",{"_index":22444,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["architecture",{"_index":21591,"title":{"additional-documentation/nestjs-application/software-architecture.html":{}},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["architecture/organizing",{"_index":22623,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["archive",{"_index":22229,"title":{},"body":{"license.html":{}}}],["archived",{"_index":6704,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ITaskParent.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["archivegroup(groupname",{"_index":1338,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["are.claim.values.regex",{"_index":13000,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["area",{"_index":23026,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["areas",{"_index":22718,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["aresubmissionspublic",{"_index":12023,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["arg",{"_index":21354,"title":{},"body":{"dependencies.html":{}}}],["args",{"_index":17734,"title":{},"body":{"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{}}}],["argument",{"_index":1306,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["argumentshost",{"_index":10475,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["arising",{"_index":22194,"title":{},"body":{"license.html":{}}}],["around",{"_index":22247,"title":{},"body":{"todo.html":{}}}],["arrange",{"_index":22111,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["arrangement",{"_index":22121,"title":{},"body":{"license.html":{}}}],["array",{"_index":1925,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BoardCopyService.html":{},"classes/CardIdsParams.html":{},"classes/CardResponse.html":{},"classes/ClassEntityFactory.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FileSystemAdapter.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/LtiTool.html":{},"classes/PatchOrderParams.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["array(length).keys()].map((_",{"_index":3524,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["array.from(modelentity.gridelements).foreach((el",{"_index":7573,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["array.isarray(boardnode",{"_index":3269,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(cardidparams.ids",{"_index":4052,"title":{},"body":{"controllers/CardController.html":{}}}],["array.isarray(collectionnamefilter",{"_index":11157,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["array.isarray(domainobjects",{"_index":2469,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(id",{"_index":2479,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(matches",{"_index":11479,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(permissions",{"_index":9398,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["array.isarray(props.classnames",{"_index":11465,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(props.rolenames",{"_index":11462,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(requiredpermissions",{"_index":1926,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["array.isarray(t",{"_index":3265,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(user.attributes[attributename",{"_index":13136,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["array.isarray(user.permissions",{"_index":9363,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["array.isarray(value",{"_index":13149,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["array.transformer.ts",{"_index":21509,"title":{},"body":{"miscellaneous/functions.html":{}}}],["arraybuffer",{"_index":8598,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["article",{"_index":21837,"title":{},"body":{"license.html":{}}}],["asadmin",{"_index":20170,"title":{},"body":{"classes/UserFactory.html":{}}}],["asadmin(additionalpermissions",{"_index":875,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["asc",{"_index":10057,"title":{},"body":{"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["asguest",{"_index":2231,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["asguest(isguest",{"_index":21096,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["asguest(value",{"_index":2234,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["ask",{"_index":13931,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["ask_moderator",{"_index":2134,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["asks",{"_index":5384,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["aspnetcore_environment='development",{"_index":22920,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["assert",{"_index":21691,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assets",{"_index":22066,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["assigned",{"_index":3465,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["assignemnt",{"_index":12376,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["assigning",{"_index":22591,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assignment",{"_index":1315,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/JwtExtractor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["assignment,@typescript",{"_index":1312,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["associated",{"_index":19241,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{}}}],["associations",{"_index":666,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["associations(associations",{"_index":695,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["asstudent",{"_index":20171,"title":{},"body":{"classes/UserFactory.html":{}}}],["asstudent(additionalpermissions",{"_index":865,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["assume",{"_index":22185,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["assumption",{"_index":22212,"title":{},"body":{"license.html":{}}}],["assumptions",{"_index":22017,"title":{},"body":{"license.html":{}}}],["asteacher",{"_index":20172,"title":{},"body":{"classes/UserFactory.html":{}}}],["asteacher(additionalpermissions",{"_index":871,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["async",{"_index":112,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"injectables/FileRecordRepo.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"injectables/IdTokenService.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["asynchronous",{"_index":22755,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["atm",{"_index":1721,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["attach",{"_index":22218,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["attachment",{"_index":1569,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["attachments",{"_index":1571,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["attempt",{"_index":22027,"title":{},"body":{"license.html":{}}}],["attempted",{"_index":14523,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["attendee",{"_index":2271,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["attendeepw",{"_index":2111,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["attendees",{"_index":2255,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["attends",{"_index":12375,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["attention",{"_index":23084,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["attribute",{"_index":12236,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"miscellaneous/functions.html":{}}}],["attributename",{"_index":12233,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributes",{"_index":3945,"title":{},"body":{"injectables/CalendarMapper.html":{},"interfaces/ICalendarEvent.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["attributes.summary",{"_index":3949,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributes['x",{"_index":3947,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributevalue",{"_index":12238,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributions",{"_index":22004,"title":{},"body":{"license.html":{}}}],["aud",{"_index":6862,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["audience",{"_index":1687,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["auf",{"_index":4756,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["autenticationresponse",{"_index":1718,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["auth",{"_index":1383,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"todo.html":{}}}],["auth.guard.ts",{"_index":12661,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["auth.provider",{"_index":9394,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["auth.provider.ts",{"_index":9343,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["auth.provider.ts:13",{"_index":9349,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:16",{"_index":9357,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:26",{"_index":9359,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:38",{"_index":9353,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:55",{"_index":9351,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:60",{"_index":9355,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth_token",{"_index":2248,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["authcode",{"_index":15049,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authconfig",{"_index":12668,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.jwtoptions",{"_index":12676,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.secret",{"_index":12675,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authendpoint",{"_index":11072,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["authenticate",{"_index":556,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"injectables/LdapService.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["authenticate('jwt",{"_index":561,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["authenticate('jwt')@delete('auth/sessions/consent",{"_index":15510,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@delete('clients/:id",{"_index":15485,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('auth/sessions/consent",{"_index":15498,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients",{"_index":15500,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients/:id",{"_index":15493,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('consentrequest/:challenge",{"_index":15488,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('consentrequest/:challenge",{"_index":15503,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('loginrequest/:challenge",{"_index":15506,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('logoutrequest/:challenge",{"_index":15481,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@post('clients",{"_index":15483,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@put('clients/:id",{"_index":15512,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticated",{"_index":522,"title":{},"body":{"controllers/AccountController.html":{},"classes/ConsentResponse.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{}}}],["authenticateuser",{"_index":15034,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticateuser(systemid",{"_index":15048,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticating",{"_index":22499,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["authentication",{"_index":2008,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentResponse.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/ImportUserModule.html":{},"classes/KeycloakConsole.html":{},"controllers/LoginController.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthClientBody.html":{},"injectables/OauthUc.html":{},"classes/RedirectResponse.html":{},"classes/StatelessAuthorizationParams.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["authentication.module",{"_index":1589,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["authentication/authentication",{"_index":10820,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["authentication/authentication.module",{"_index":10424,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["authentication/interface/user",{"_index":4588,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["authentication/local",{"_index":1713,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationapimodule",{"_index":1581,"title":{"modules/AuthenticationApiModule.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["authenticationcodegranttokenrequest",{"_index":1592,"title":{"classes/AuthenticationCodeGrantTokenRequest.html":{}},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/TokenRequestMapper.html":{}}}],["authenticationexecutioninforepresentation",{"_index":12891,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationflowrepresentation",{"_index":12893,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationmodule",{"_index":1585,"title":{"modules/AuthenticationModule.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementModule.html":{},"modules/OauthApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["authenticationresponse",{"_index":1700,"title":{"interfaces/AuthenticationResponse.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationresponse.accesstoken",{"_index":1780,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationservice",{"_index":1627,"title":{"injectables/AuthenticationService.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["authenticationurl",{"_index":15119,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["authenticationurl.searchparams.append('client_id",{"_index":15121,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('kc_idp_hint",{"_index":15126,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('redirect_uri",{"_index":15122,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('response_type",{"_index":15123,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('scope",{"_index":15124,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('state",{"_index":15125,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.tostring",{"_index":15127,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authguard",{"_index":12662,"title":{},"body":{"injectables/JwtAuthGuard.html":{},"controllers/LoginController.html":{}}}],["authguard('jwt",{"_index":12663,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["authheader",{"_index":15794,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.split",{"_index":15797,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.tolowercase().startswith('bearer",{"_index":15796,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["author",{"_index":22003,"title":{},"body":{"license.html":{},"properties.html":{}}}],["authoriation",{"_index":23099,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorisation",{"_index":3550,"title":{"additional-documentation/nestjs-application/authorisation.html":{}},"body":{"modules/BoardModule.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["authorisationservice",{"_index":7913,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["authorizable",{"_index":18371,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["authorizable.service",{"_index":3806,"title":{},"body":{"injectables/BoardUc.html":{}}}],["authorizable.service.ts",{"_index":3117,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:11",{"_index":5631,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:18",{"_index":3122,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:24",{"_index":3123,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:32",{"_index":3125,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:50",{"_index":3128,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:8",{"_index":5630,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.ts",{"_index":3090,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["authorizable.ts:30",{"_index":3094,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:34",{"_index":3096,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:38",{"_index":3099,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizableobject",{"_index":1854,"title":{"interfaces/AuthorizableObject.html":{}},"body":{"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/IRepoLoader.html":{},"injectables/LegacySchoolRule.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/ReferenceLoader.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"interfaces/UserBoardRoles.html":{}}}],["authorizablereferencetype",{"_index":2027,"title":{},"body":{"injectables/AuthorizationService.html":{},"classes/ContextTypeMapper.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IRepoLoader.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/ReferenceLoader.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/TaskCopyUC.html":{},"injectables/ToolPermissionHelper.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["authorizablereferencetype.boardnode",{"_index":10231,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.contextexternaltoolentity",{"_index":19835,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["authorizablereferencetype.course",{"_index":6022,"title":{},"body":{"classes/ContextTypeMapper.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"injectables/LessonCopyUC.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/TaskCopyUC.html":{},"classes/VideoConferenceMapper.html":{}}}],["authorizablereferencetype.lesson",{"_index":10227,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.school",{"_index":10225,"title":{},"body":{"classes/FilesStorageMapper.html":{},"injectables/LegacySchoolUc.html":{},"classes/ShareTokenContextTypeMapper.html":{}}}],["authorizablereferencetype.submission",{"_index":10229,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.task",{"_index":10220,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.team",{"_index":21126,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["authorizablereferencetype.user",{"_index":10223,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorization",{"_index":1887,"title":{},"body":{"classes/AuthorizationError.html":{},"injectables/CalendarService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ContextExternalToolModule.html":{},"injectables/CourseCopyUC.html":{},"injectables/HydraOauthUc.html":{},"modules/ImportUserModule.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"interfaces/Rule.html":{},"injectables/SanisProvisioningStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorization.body.params.ts",{"_index":13261,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:12",{"_index":13265,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:13",{"_index":13990,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:17",{"_index":13262,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:21",{"_index":13263,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:7",{"_index":13264,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:8",{"_index":13991,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.helper",{"_index":1985,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{}}}],["authorization.params",{"_index":15737,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authorization.params.ts",{"_index":18159,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:12",{"_index":18161,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:16",{"_index":18162,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:20",{"_index":18163,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:8",{"_index":18160,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.service",{"_index":1986,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["authorization.service.ts",{"_index":9379,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:16",{"_index":9390,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:32",{"_index":9386,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:54",{"_index":9392,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:6",{"_index":9384,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization_code",{"_index":11076,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{}}}],["authorization_operation",{"_index":1886,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["authorization_timebox_ms",{"_index":12764,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorizationcontext",{"_index":1862,"title":{"interfaces/AuthorizationContext.html":{}},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"classes/ConsentResponse.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder",{"_index":1868,"title":{"classes/AuthorizationContextBuilder.html":{}},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{},"injectables/VideoConferenceService.html":{}}}],["authorizationcontextbuilder.read",{"_index":18868,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.read([perm",{"_index":21277,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_admin",{"_index":5971,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_user",{"_index":19821,"title":{},"body":{"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["authorizationcontextbuilder.read([permission.filestorage_view",{"_index":23055,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.read([permission.school_tool_admin",{"_index":8429,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["authorizationcontextbuilder.read([permission.submissions_view",{"_index":18482,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.read([permission.topic_create",{"_index":13840,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorizationcontextbuilder.read([permissions.course_view",{"_index":23052,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write",{"_index":18877,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([perm",{"_index":21278,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["authorizationcontextbuilder.write([permission.change_team_roles",{"_index":4652,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["authorizationcontextbuilder.write([permission.context_tool_admin",{"_index":5956,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_create",{"_index":23054,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_edit",{"_index":23056,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_remove",{"_index":23057,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.instance",{"_index":23065,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.submissions_edit",{"_index":18479,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.write([permission.topic_view",{"_index":13969,"title":{},"body":{"injectables/LessonUC.html":{}}}],["authorizationcontextbuilder.write([permission.user_login_migration_admin",{"_index":16714,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["authorizationerror",{"_index":1882,"title":{"classes/AuthorizationError.html":{}},"body":{"classes/AuthorizationError.html":{}}}],["authorizationhelper",{"_index":1890,"title":{"injectables/AuthorizationHelper.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationloaderservice",{"_index":1935,"title":{"interfaces/AuthorizationLoaderService.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizationloaderservicegeneric",{"_index":1943,"title":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/GroupService.html":{}}}],["authorizationmodule",{"_index":1945,"title":{"modules/AuthorizationModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ImportUserModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LessonApiModule.html":{},"modules/ManagementModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/ToolApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["authorizationparams",{"_index":1995,"title":{"classes/AuthorizationParams.html":{}},"body":{"classes/AuthorizationParams.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["authorizations",{"_index":23096,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationservice",{"_index":1952,"title":{"injectables/AuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/NewsUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PermissionService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["authorizationservice:haspermissionbyreferences",{"_index":2055,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["authorizationurl",{"_index":11933,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["authorize",{"_index":16086,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizeaccess",{"_index":12766,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorized",{"_index":1888,"title":{},"body":{"classes/AuthorizationError.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizes",{"_index":22089,"title":{},"body":{"license.html":{}}}],["authorizing",{"_index":22125,"title":{},"body":{"license.html":{}}}],["authors",{"_index":22008,"title":{},"body":{"license.html":{}}}],["authparams",{"_index":10971,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["authservice",{"_index":4623,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LoginUc.html":{}}}],["authtoken",{"_index":1324,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["auto",{"_index":10349,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/KeycloakManagementController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application.html":{}}}],["automated",{"_index":22687,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["automatic",{"_index":22058,"title":{},"body":{"license.html":{}}}],["automatically",{"_index":8682,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/KeycloakConfigurationService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["autoparameters",{"_index":8669,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["autoparameters.includes(customparameter.type",{"_index":8707,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["avaible",{"_index":1942,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["available",{"_index":2500,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementOauthService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"license.html":{},"modules.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["available_languages",{"_index":11753,"title":{},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{}}}],["availabledate",{"_index":3714,"title":{},"body":{"classes/BoardTaskResponse.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{}}}],["availableon",{"_index":19015,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["availableschoolexternaltools",{"_index":8363,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["availableschoolexternaltools.map",{"_index":8390,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["availabletools",{"_index":8380,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["availabletools.foreach((externaltool",{"_index":8433,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext",{"_index":8441,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext.foreach((tooltemplateinfo",{"_index":8444,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["avoid",{"_index":22693,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["await",{"_index":221,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"injectables/FileRecordRepo.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"injectables/IdTokenService.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["awaited",{"_index":22757,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["awaiting_scan_status",{"_index":9719,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["awaits",{"_index":23142,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["away",{"_index":21672,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["aws",{"_index":7819,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"dependencies.html":{}}}],["axios",{"_index":2074,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"classes/FileDtoBuilder.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/SanisProvisioningStrategy.html":{},"dependencies.html":{}}}],["axiosconfig",{"_index":10965,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosheaders",{"_index":2069,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaders(props.headers",{"_index":2083,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaderskeyvalue",{"_index":2075,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheadervalue",{"_index":2073,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosrequestconfig",{"_index":3967,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponse",{"_index":2063,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"classes/FileDtoBuilder.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponsefactory",{"_index":2087,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseimp",{"_index":2060,"title":{"classes/AxiosResponseImp.html":{}},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseprops",{"_index":2065,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["b",{"_index":2728,"title":{},"body":{"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"injectables/SanisResponseMapper.html":{},"license.html":{}}}],["b.getmetadata().title",{"_index":7326,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["b.position",{"_index":3256,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["back",{"_index":729,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["backchannel",{"_index":14141,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["backchannelsupported",{"_index":15896,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["backend",{"_index":23006,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["backendurl",{"_index":8583,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["backendurl}${filledtemplate",{"_index":8587,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["background",{"_index":9735,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["backup",{"_index":11119,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["backup/idm/keycloak",{"_index":22954,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["backup/setup/accounts.json",{"_index":12818,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["backup/setup/users.json",{"_index":12819,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["bad",{"_index":11825,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["badrequestexception",{"_index":2685,"title":{},"body":{"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/DashboardEntity.html":{},"classes/ErrorMapper.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GridElement.html":{},"controllers/H5PEditorController.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"classes/ImportUserMapper.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/ShareTokenUC.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceService.html":{}}}],["badrequestexception('dashboard",{"_index":7348,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('destination",{"_index":18086,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["badrequestexception('elements",{"_index":2722,"title":{},"body":{"entities/Board.html":{}}}],["badrequestexception('language",{"_index":20801,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["badrequestexception('this",{"_index":7334,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('unknown",{"_index":20632,"title":{},"body":{"injectables/UserMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["badrequestexception(`cannot",{"_index":2834,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(`invalid",{"_index":2832,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(errorobj.message",{"_index":8208,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["badrequestexception(errortype.file_name_empty",{"_index":9767,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["badrequestexception})@apiresponse({status",{"_index":10781,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["badrequestloggableexception",{"_index":22670,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["base",{"_index":2092,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BaseDORepo.html":{},"classes/BusinessError.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElementResponseMapper.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IRepoLoader.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/ReferenceLoader.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["base.do",{"_index":7036,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LegacySchoolDo.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{},"classes/UserLoginMigrationDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["base.do.repo",{"_index":13548,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["base.do.repo.ts",{"_index":2519,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["base.entity",{"_index":400,"title":{},"body":{"entities/Account.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"entities/FederalState.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["base.factory",{"_index":736,"title":{},"body":{"classes/AccountFactory.html":{},"classes/AxiosResponseImp.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/UserFactory.html":{}}}],["base.factory.ts",{"_index":7896,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["base.interface.strategy",{"_index":14906,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["base.repo",{"_index":3639,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/FederalStateRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{}}}],["base.response",{"_index":2206,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{}}}],["base.response.ts",{"_index":2102,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["base.strategy",{"_index":12627,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{}}}],["base64",{"_index":8590,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"dependencies.html":{}}}],["base64content",{"_index":1564,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["base64logo",{"_index":8594,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["base_string",{"_index":14174,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["base_url",{"_index":16642,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["based",{"_index":2526,"title":{},"body":{"classes/BaseFactory.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["basedir",{"_index":11123,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["basedo",{"_index":1939,"title":{"classes/BaseDO.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/IRepoLoader.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"classes/LtiToolDO.html":{},"injectables/ReferenceLoader.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/UserLoginMigrationDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["basedo:5",{"_index":5612,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ExternalTool.html":{},"classes/LegacySchoolDo.html":{},"classes/LtiToolDO.html":{},"classes/SchoolExternalTool.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/UserLoginMigrationDO.html":{},"classes/VideoConferenceDO.html":{}}}],["basedomainobject",{"_index":2483,"title":{"classes/BaseDomainObject.html":{}},"body":{"classes/BaseDomainObject.html":{}}}],["basedorepo",{"_index":2383,"title":{"injectables/BaseDORepo.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:103",{"_index":5764,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:111",{"_index":5770,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:116",{"_index":8781,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:123",{"_index":20079,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:13",{"_index":14337,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["basedorepo:19",{"_index":5772,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:23",{"_index":8771,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["basedorepo:24",{"_index":5773,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:25",{"_index":17981,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:28",{"_index":17393,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:29",{"_index":20072,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:34",{"_index":5756,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:36",{"_index":20383,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:37",{"_index":21169,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:38",{"_index":13541,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:42",{"_index":5766,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:43",{"_index":14344,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:46",{"_index":17980,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:50",{"_index":5774,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:51",{"_index":20382,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:56",{"_index":5759,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:59",{"_index":13546,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:60",{"_index":20078,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:63",{"_index":5767,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:69",{"_index":14343,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:74",{"_index":17399,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:77",{"_index":5771,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:82",{"_index":5765,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:84",{"_index":8780,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:85",{"_index":5768,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:90",{"_index":8779,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["basedorepo:98",{"_index":5769,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["baseentity",{"_index":2433,"title":{"classes/BaseEntity.html":{}},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"injectables/CopyHelperService.html":{},"injectables/DatabaseManagementService.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"injectables/LessonCopyService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{}}}],["baseentityproperties",{"_index":2434,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["baseentityproperties.includes(key",{"_index":2466,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["baseentityreference",{"_index":2502,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["baseentitywithtimestamps",{"_index":399,"title":{"classes/BaseEntityWithTimestamps.html":{}},"body":{"entities/Account.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ClassEntity.html":{},"entities/ColumnBoardTarget.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/Role.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{}}}],["baseentitywithtimestamps:25",{"_index":21055,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["baseentitywithtimestamps:28",{"_index":21057,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["baseentitywithtimestamps:31",{"_index":21056,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["baseentitywithtimestamps:34",{"_index":21058,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["basefactory",{"_index":660,"title":{"classes/BaseFactory.html":{}},"body":{"classes/AccountFactory.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory.define",{"_index":2088,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalToolEntityFactory.html":{}}}],["basefactory:110",{"_index":697,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:122",{"_index":726,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:134",{"_index":733,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:14",{"_index":7905,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["basefactory:144",{"_index":727,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:148",{"_index":714,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:15",{"_index":677,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:160",{"_index":730,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:32",{"_index":719,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:47",{"_index":703,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:60",{"_index":710,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:7",{"_index":4337,"title":{},"body":{"classes/ClassFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/UserDoFactory.html":{}}}],["basefactory:75",{"_index":706,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:84",{"_index":708,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:98",{"_index":684,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["baseimports",{"_index":14416,"title":{},"body":{"modules/ManagementModule.html":{}}}],["basepath",{"_index":1539,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/ICollectionFilePath.html":{}}}],["basepermission",{"_index":23086,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["baserepo",{"_index":877,"title":{"injectables/BaseRepo.html":{}},"body":{"injectables/AccountRepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DashboardRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"interfaces/IDashboardRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["baserepo:13",{"_index":6655,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["baserepo:14",{"_index":18395,"title":{},"body":{"injectables/SubmissionRepo.html":{},"injectables/TeamsRepo.html":{}}}],["baserepo:15",{"_index":12461,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["baserepo:17",{"_index":13882,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["baserepo:18",{"_index":909,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["baserepo:22",{"_index":914,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["baserepo:25",{"_index":20685,"title":{},"body":{"injectables/UserRepo.html":{}}}],["baserepo:26",{"_index":911,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["baserepo:30",{"_index":912,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{}}}],["baserepo:32",{"_index":3633,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["baserepo:63",{"_index":6781,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["baseresponsemapper",{"_index":2588,"title":{"interfaces/BaseResponseMapper.html":{}},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["baseroute",{"_index":1726,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["baseurl",{"_index":238,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/CalendarService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchData.html":{}}}],["baseurl.com",{"_index":7131,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["bash",{"_index":22905,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["basic",{"_index":12929,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["basictoolconfig",{"_index":2599,"title":{"classes/BasicToolConfig.html":{}},"body":{"classes/BasicToolConfig.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigdto",{"_index":8905,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["basictoolconfigentity",{"_index":2611,"title":{"classes/BasicToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["basictoolconfigfactory",{"_index":7128,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigfactory.build",{"_index":7176,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigparams",{"_index":2623,"title":{"classes/BasicToolConfigParams.html":{}},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["basictoolconfigresponse",{"_index":2633,"title":{"classes/BasicToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["basictoollaunchstrategy",{"_index":2641,"title":{"injectables/BasicToolLaunchStrategy.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["batch",{"_index":7787,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["batchcounter",{"_index":7825,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["batchsize",{"_index":7777,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["bbb",{"_index":2106,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{}}}],["bbbbasemeetingconfig",{"_index":2089,"title":{"classes/BBBBaseMeetingConfig.html":{}},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbbasemeetingconfig:6",{"_index":2130,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["bbbbaseresponse",{"_index":2100,"title":{"interfaces/BBBBaseResponse.html":{}},"body":{"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/VideoConference-1.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["bbbcreateconfig",{"_index":2108,"title":{"classes/BBBCreateConfig.html":{}},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbcreateconfigbuilder",{"_index":2152,"title":{"classes/BBBCreateConfigBuilder.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["bbbcreateresponse",{"_index":2195,"title":{"interfaces/BBBCreateResponse.html":{}},"body":{"interfaces/BBBCreateResponse.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfig",{"_index":2207,"title":{"classes/BBBJoinConfig.html":{}},"body":{"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfigbuilder",{"_index":2229,"title":{"classes/BBBJoinConfigBuilder.html":{}},"body":{"classes/BBBJoinConfigBuilder.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["bbbjoinresponse",{"_index":2246,"title":{"interfaces/BBBJoinResponse.html":{}},"body":{"interfaces/BBBJoinResponse.html":{}}}],["bbbmeetinginforesponse",{"_index":2252,"title":{"interfaces/BBBMeetingInfoResponse.html":{}},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbresp",{"_index":2350,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.message",{"_index":2356,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.returncode",{"_index":2353,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresponse",{"_index":2278,"title":{"interfaces/BBBResponse.html":{}},"body":{"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/VideoConference-1.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbrole",{"_index":2175,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["bbbrole.moderator",{"_index":2190,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["bbbrole.viewer",{"_index":2192,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["bbbservice",{"_index":2280,"title":{"injectables/BBBService.html":{}},"body":{"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{}}}],["bbbservice:create",{"_index":2358,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:end",{"_index":2364,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:getmeetinginfo",{"_index":2366,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbsettings",{"_index":2293,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["bbbstatus",{"_index":2105,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/BBBService.html":{}}}],["bbbstatus.success",{"_index":2354,"title":{},"body":{"injectables/BBBService.html":{}}}],["bc",{"_index":22877,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["bcc",{"_index":1579,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["bcrypt",{"_index":1182,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LocalStrategy.html":{}}}],["bcrypt.compare(comparepassword",{"_index":1215,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcrypt.compare(enteredpassword",{"_index":14020,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["bcrypt.hash(password",{"_index":1219,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcryptjs",{"_index":1183,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/LocalStrategy.html":{},"dependencies.html":{}}}],["bearer",{"_index":1711,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"controllers/OauthSSOController.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/TestApiClient.html":{}}}],["become",{"_index":76,"title":{},"body":{"classes/AbstractAccountService.html":{},"license.html":{}}}],["becomes",{"_index":21712,"title":{},"body":{"license.html":{}}}],["becoming",{"_index":23020,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["beetween",{"_index":4301,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["before",{"_index":571,"title":{},"body":{"controllers/AccountController.html":{},"entities/Board.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/PermissionService.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"injectables/UserLoginMigrationService.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["beforeall",{"_index":22806,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeall(async",{"_index":22784,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeeach",{"_index":22807,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforehand",{"_index":22370,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["beginning",{"_index":21628,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["behalf",{"_index":21818,"title":{},"body":{"license.html":{}}}],["behaves",{"_index":22671,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["behavior",{"_index":947,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{}}}],["behaviour",{"_index":6329,"title":{},"body":{"modules/CoreModule.html":{},"entities/CourseNews.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["behind",{"_index":19455,"title":{},"body":{"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["being",{"_index":2543,"title":{},"body":{"classes/BaseFactory.html":{},"classes/CardSkeletonResponse.html":{},"injectables/LdapStrategy.html":{},"classes/ShareTokenBodyParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["believe",{"_index":22119,"title":{},"body":{"license.html":{}}}],["belong",{"_index":4149,"title":{},"body":{"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/SubmissionItemUc.html":{}}}],["belongs",{"_index":5444,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["below",{"_index":21824,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["benefit",{"_index":21697,"title":{},"body":{"license.html":{}}}],["ber",{"_index":4801,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["berechtigungen",{"_index":4784,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["beside",{"_index":22351,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["best",{"_index":22215,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["better",{"_index":22231,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["between",{"_index":768,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["beware",{"_index":22469,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["beyond",{"_index":21890,"title":{},"body":{"license.html":{}}}],["bezeichnung",{"_index":17204,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["big",{"_index":22458,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bigbluebutton",{"_index":20933,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["bigbluebutton/api/${callname",{"_index":2379,"title":{},"body":{"injectables/BBBService.html":{}}}],["binary",{"_index":6129,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["binary'})@allow",{"_index":9663,"title":{},"body":{"classes/FileParams.html":{}}}],["bind",{"_index":13313,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["binding",{"_index":13360,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["bis",{"_index":17219,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["blackbox",{"_index":22696,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["block",{"_index":2048,"title":{},"body":{"injectables/AuthorizationService.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["blocked",{"_index":9715,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["blocks",{"_index":22699,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["blti",{"_index":5123,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_bundle",{"_index":5130,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_icon",{"_index":5132,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["bn",{"_index":3263,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["bn.type",{"_index":3267,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["board",{"_index":1984,"title":{"entities/Board.html":{}},"body":{"modules/AuthorizationModule.html":{},"entities/Board.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"interfaces/BoardDoBuilder.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/ContentElementService.html":{},"injectables/CourseCopyService.html":{},"classes/DtoCreator.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"modules/LearnroomApiModule.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/MoveColumnBodyParams.html":{},"injectables/NexboardService.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["board.'})@apiresponse({status",{"_index":2927,"title":{},"body":{"controllers/BoardController.html":{}}}],["board.children.map((column",{"_index":3675,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.context",{"_index":3811,"title":{},"body":{"injectables/BoardUc.html":{}}}],["board.createdat",{"_index":3681,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.displaycolor",{"_index":16880,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.do",{"_index":2876,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["board.do.factory.ts",{"_index":4706,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.factory.ts:9",{"_index":4708,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.ts",{"_index":4689,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["board.do.ts:10",{"_index":4694,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:14",{"_index":4696,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:18",{"_index":4698,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:6",{"_index":4693,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.elements.foreach((element",{"_index":16882,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.getbytargetid(elementid",{"_index":17040,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.id",{"_index":3516,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{}}}],["board.isarchived",{"_index":16881,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.module",{"_index":2768,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["board.references.getitems",{"_index":3648,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.references.init",{"_index":3647,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.reorderelements(orderedlist",{"_index":17043,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.response",{"_index":3412,"title":{},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.response.ts",{"_index":2776,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:15",{"_index":2782,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:19",{"_index":2785,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:22",{"_index":2783,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:25",{"_index":2781,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:28",{"_index":2786,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:31",{"_index":2780,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:4",{"_index":2779,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.roomid",{"_index":16879,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.service.ts",{"_index":4725,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:130",{"_index":4733,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:18",{"_index":4729,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:25",{"_index":4740,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:31",{"_index":4741,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:37",{"_index":4743,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:42",{"_index":4731,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:57",{"_index":4738,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:61",{"_index":4746,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:66",{"_index":4735,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.syncboardelementreferences(boardelementtargets",{"_index":17012,"title":{},"body":{"injectables/RoomsService.html":{}}}],["board.title",{"_index":3674,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardService.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.types",{"_index":7952,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["board.updatedat",{"_index":3680,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board/board",{"_index":2775,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board/board.entity.ts",{"_index":2671,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:29",{"_index":2677,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:32",{"_index":2681,"title":{},"body":{"entities/Board.html":{}}}],["board/board.response.ts",{"_index":18118,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:19",{"_index":18123,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:25",{"_index":18124,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:30",{"_index":18120,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:36",{"_index":18121,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:41",{"_index":18122,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:6",{"_index":18119,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/boardelement.entity.ts",{"_index":3392,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:26",{"_index":3395,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:30",{"_index":3393,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/column",{"_index":4815,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"entities/ColumnboardBoardElement.html":{}}}],["board/lesson",{"_index":13652,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["board/task",{"_index":18769,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardapimodule",{"_index":2753,"title":{"modules/BoardApiModule.html":{}},"body":{"modules/BoardApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["boardcolumnboardresponse",{"_index":2773,"title":{"classes/BoardColumnBoardResponse.html":{}},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardcomposite",{"_index":2791,"title":{"classes/BoardComposite.html":{}},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcomposite:13",{"_index":9520,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:14",{"_index":4682,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{}}}],["boardcomposite:17",{"_index":9518,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:19",{"_index":3984,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:21",{"_index":9519,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:22",{"_index":4692,"title":{},"body":{"classes/ColumnBoard.html":{},"classes/RichTextElement.html":{}}}],["boardcomposite:23",{"_index":4681,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:24",{"_index":3983,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:26",{"_index":16731,"title":{},"body":{"classes/RichTextElement.html":{}}}],["boardcomposite:27",{"_index":4690,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:28",{"_index":18280,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:30",{"_index":16732,"title":{},"body":{"classes/RichTextElement.html":{}}}],["boardcomposite:31",{"_index":4691,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:32",{"_index":3981,"title":{},"body":{"classes/Card.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:35",{"_index":3986,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:36",{"_index":3982,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:39",{"_index":3985,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcompositeprops",{"_index":2844,"title":{"interfaces/BoardCompositeProps.html":{}},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcompositevisitor",{"_index":2802,"title":{"interfaces/BoardCompositeVisitor.html":{}},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcompositevisitorasync",{"_index":2806,"title":{"interfaces/BoardCompositeVisitorAsync.html":{}},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcontext",{"_index":2969,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse",{"_index":2905,"title":{"classes/BoardContextResponse.html":{}},"body":{"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{}}}],["boardcontextresponse(boardcontext",{"_index":2971,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse})@apiresponse({status",{"_index":2940,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontroller",{"_index":2762,"title":{"controllers/BoardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{}}}],["boardcopy",{"_index":3037,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyparams",{"_index":3000,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyservice",{"_index":2983,"title":{"injectables/BoardCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{}}}],["boarddo",{"_index":3126,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddo.id",{"_index":3134,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boarddoauthorizable",{"_index":3089,"title":{"classes/BoardDoAuthorizable.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizable.requireduserrole",{"_index":3364,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddoauthorizable.users.find",{"_index":3363,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["boarddoauthorizable.users.find((u",{"_index":18367,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boarddoauthorizableprops",{"_index":3111,"title":{"interfaces/BoardDoAuthorizableProps.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizableservice",{"_index":3115,"title":{"injectables/BoardDoAuthorizableService.html":{}},"body":{"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddobuilder",{"_index":3154,"title":{"interfaces/BoardDoBuilder.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boarddobuilderimpl",{"_index":3188,"title":{"classes/BoardDoBuilderImpl.html":{}},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(children).builddomainobject(boardnode",{"_index":3325,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(descendants).builddomainobject(boardnode",{"_index":3316,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddorepo",{"_index":3121,"title":{"injectables/BoardDoRepo.html":{}},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["boarddorule",{"_index":1954,"title":{"injectables/BoardDoRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/BoardDoRule.html":{},"injectables/RuleManager.html":{}}}],["boarddos",{"_index":4189,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddos.map((boarddo",{"_index":4206,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddoservice",{"_index":3369,"title":{"injectables/BoardDoService.html":{}},"body":{"injectables/BoardDoService.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["boardelement",{"_index":2693,"title":{"entities/BoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity",{"_index":2695,"title":{},"body":{"entities/Board.html":{},"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts",{"_index":13653,"title":{},"body":{"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts:13",{"_index":13654,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["boardelement.entity.ts:16",{"_index":18770,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardelement.ts",{"_index":4923,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelement.ts:13",{"_index":4925,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelementprops",{"_index":3398,"title":{},"body":{"entities/BoardElement.html":{}}}],["boardelementreference",{"_index":2694,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{}}}],["boardelementresponse",{"_index":3402,"title":{"classes/BoardElementResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["boardelements",{"_index":3005,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelements.map((element",{"_index":3046,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelementtarget",{"_index":2751,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets",{"_index":17011,"title":{},"body":{"injectables/RoomsService.html":{}}}],["boardelementtargets.filter(isnotcontained).map(maptoboardelement",{"_index":2747,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets.includes(ref.target",{"_index":2737,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtype",{"_index":3022,"title":{},"body":{"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardelementtype.columnboard",{"_index":4927,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.lesson",{"_index":3055,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.task",{"_index":3051,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardexternalreference",{"_index":3295,"title":{"interfaces/BoardExternalReference.html":{}},"body":{"injectables/BoardDoRepo.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardUc.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{}}}],["boardexternalreferencetype",{"_index":2913,"title":{},"body":{"classes/BoardContextResponse.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/RoomsService.html":{}}}],["boardexternalreferencetype.course",{"_index":3140,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardManagementUc.html":{},"classes/ColumnBoardFactory.html":{},"injectables/RoomsService.html":{}}}],["boardid",{"_index":3466,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"injectables/ColumnBoardService.html":{}}}],["boardids",{"_index":4744,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["boardlessonresponse",{"_index":3406,"title":{"classes/BoardLessonResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardmanagementconsole",{"_index":3443,"title":{"classes/BoardManagementConsole.html":{}},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["boardmanagementuc",{"_index":3449,"title":{"injectables/BoardManagementUc.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ManagementModule.html":{}}}],["boardmodule",{"_index":1983,"title":{"modules/BoardModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/LearnroomModule.html":{},"modules.html":{}}}],["boardnode",{"_index":3144,"title":{"entities/BoardNode.html":{}},"body":{"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnode.ancestorids",{"_index":3343,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.caption",{"_index":3240,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.completed",{"_index":3248,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.context",{"_index":3230,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.createdat",{"_index":3228,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.duedate",{"_index":3246,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.entity",{"_index":4093,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnode.foreach((bn",{"_index":3270,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.height",{"_index":3237,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.id",{"_index":3226,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnode.inputformat",{"_index":3243,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.joinpath(props.parent.path",{"_index":3568,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.joinpath(this.path",{"_index":3580,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.parentid",{"_index":3340,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.text",{"_index":3241,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.title",{"_index":3227,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.updatedat",{"_index":3229,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.usedobuilder(this",{"_index":3221,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.userid",{"_index":3249,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnodeauthorizableservice",{"_index":11637,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["boardnodeprops",{"_index":3562,"title":{"interfaces/BoardNodeProps.html":{}},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnoderepo",{"_index":3281,"title":{"injectables/BoardNodeRepo.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnodes",{"_index":3320,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["boardnodes.map((boardnode",{"_index":3323,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.map((o",{"_index":3337,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.reduce((map",{"_index":3328,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodetype",{"_index":3212,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnodetype.card",{"_index":3231,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["boardnodetype.column",{"_index":3223,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{}}}],["boardnodetype.column_board",{"_index":4716,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["boardnodetype.file_element",{"_index":3233,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["boardnodetype.rich_text_element",{"_index":3234,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["boardnodetype.submission_container_element",{"_index":3235,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["boardnodetype.submission_item",{"_index":3244,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardprops",{"_index":2703,"title":{},"body":{"entities/Board.html":{}}}],["boardrepo",{"_index":2994,"title":{"injectables/BoardRepo.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"injectables/CourseCopyService.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["boardresponse",{"_index":2956,"title":{"classes/BoardResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper",{"_index":2960,"title":{"classes/BoardResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper.maptoresponse(board",{"_index":2967,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardresponse})@apiresponse({status",{"_index":2945,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardroles",{"_index":3100,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"interfaces/UserBoardRoles.html":{}}}],["boardroles.editor",{"_index":3147,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boardroles.reader",{"_index":3152,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boards",{"_index":2918,"title":{},"body":{"controllers/BoardController.html":{},"injectables/ColumnBoardService.html":{}}}],["boardstatus",{"_index":3021,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["boardstatus.elements",{"_index":3079,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardsubmissioncontroller",{"_index":2766,"title":{"controllers/BoardSubmissionController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["boardtask",{"_index":16888,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.availabledate",{"_index":16903,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.course",{"_index":16899,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.createdat",{"_index":16896,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.description",{"_index":16909,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.duedate",{"_index":16905,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.getparentdata",{"_index":16890,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.id",{"_index":16894,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.name",{"_index":16895,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.updatedat",{"_index":16897,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc",{"_index":16889,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc.color",{"_index":16907,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskresponse",{"_index":3405,"title":{"classes/BoardTaskResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatus",{"_index":16891,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper",{"_index":3729,"title":{"classes/BoardTaskStatusMapper.html":{}},"body":{"classes/BoardTaskStatusMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper.maptoresponse(status",{"_index":16892,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusresponse",{"_index":3725,"title":{"classes/BoardTaskStatusResponse.html":{}},"body":{"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{}}}],["boardtaskstatusresponse(status",{"_index":3735,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["boarduc",{"_index":2757,"title":{"injectables/BoardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"injectables/BoardUc.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["boardurlparams",{"_index":2925,"title":{"classes/BoardUrlParams.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardUrlParams.html":{}}}],["body",{"_index":543,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"injectables/HydraAdapter.html":{},"controllers/ImportUserController.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"controllers/RoomsController.html":{},"injectables/S3ClientAdapter.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TestApiClient.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["body.code",{"_index":20323,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.create",{"_index":19308,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.delete",{"_index":19309,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.destinationcourseid",{"_index":17916,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.expiresindays",{"_index":17905,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.mandatory",{"_index":20317,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.newname",{"_index":17915,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parentid",{"_index":17903,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parenttype",{"_index":17902,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.read",{"_index":19310,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.redirecturi",{"_index":20324,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.schoolexclusive",{"_index":17904,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.session",{"_index":15471,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["body.share",{"_index":19311,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.systemid",{"_index":20322,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.write",{"_index":19312,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["bodyparams",{"_index":2949,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.completed",{"_index":3712,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.data.content",{"_index":8075,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.height",{"_index":4064,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.title",{"_index":2976,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["bodyparams.toboardid",{"_index":4878,"title":{},"body":{"controllers/ColumnController.html":{}}}],["bodyparams.tocardid",{"_index":8071,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.tocolumnid",{"_index":4060,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.toposition",{"_index":4061,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyproperties",{"_index":2660,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["bom",{"_index":21449,"title":{},"body":{"dependencies.html":{}}}],["boolean",{"_index":347,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BaseResponseMapper.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoRule.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolVersionService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"modules/FilesStorageModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/GridElement.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IAccountConfig.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtPayload.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/ManagementModule.html":{},"interfaces/Meta.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"interfaces/NextcloudGroups.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthConfig.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"interfaces/Options.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsConfig.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/Scope.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFilterParams.html":{},"classes/SystemScope.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/ToolConfiguration.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["boolean(options.verbose",{"_index":11624,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["boolean.transformer.ts",{"_index":21511,"title":{},"body":{"miscellaneous/functions.html":{}}}],["boolish",{"_index":21582,"title":{},"body":{"miscellaneous/functions.html":{}}}],["bootstrap",{"_index":431,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"classes/TestBootstrapConsole.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bootstrap.boot([process.argv0",{"_index":19438,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts",{"_index":19420,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts:8",{"_index":19422,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrapconsole",{"_index":19429,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstraps",{"_index":22782,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["border",{"_index":12165,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["both",{"_index":21547,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bound",{"_index":13981,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["box",{"_index":22778,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["branch",{"_index":1239,"title":{},"body":{"injectables/AccountValidationService.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["break",{"_index":5147,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"injectables/ContentElementFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"injectables/UserRepo.html":{}}}],["breaking",{"_index":23012,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["breakout",{"_index":2256,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["breakoutrooms",{"_index":2257,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["bring",{"_index":6856,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["broadcast",{"_index":1283,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["broken",{"_index":22466,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["broker",{"_index":12906,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["brokerconfig",{"_index":18722,"title":{},"body":{"injectables/SystemService.html":{}}}],["brokering",{"_index":22911,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["browse",{"_index":22238,"title":{},"body":{"modules.html":{},"additional-documentation/nestjs-application.html":{}}}],["browser",{"_index":22236,"title":{},"body":{"modules.html":{}}}],["brute",{"_index":73,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthenticationService.html":{}}}],["bruteforceerror",{"_index":1814,"title":{"classes/BruteForceError.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["bruteforceerror(timetowait",{"_index":1846,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["bson",{"_index":734,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/BaseRepo.html":{},"classes/BoardManagementConsole.html":{},"injectables/BsonConverter.html":{},"injectables/CardService.html":{},"classes/ClassEntityFactory.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/OidcProvisioningService.html":{},"classes/ShareTokenFactory.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"dependencies.html":{}}}],["bson/ejson",{"_index":3855,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["bsonconverter",{"_index":3843,"title":{"injectables/BsonConverter.html":{}},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["bsondocuments",{"_index":3854,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["btw",{"_index":2516,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bucket",{"_index":6166,"title":{},"body":{"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["buckets",{"_index":23143,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["buffer",{"_index":6866,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"classes/JwtTestFactory.html":{}}}],["buffer.from(externaltool.logo",{"_index":8589,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(manifest",{"_index":5099,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(newresource.content",{"_index":5080,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(resource.content",{"_index":5085,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(response.data",{"_index":8601,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(tool.logo",{"_index":8610,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.length",{"_index":8591,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.tostring('base64",{"_index":8603,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["bufferencoding",{"_index":10003,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["bug",{"_index":12072,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["bugs",{"_index":22245,"title":{},"body":{"properties.html":{}}}],["build",{"_index":667,"title":{},"body":{"classes/AccountFactory.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BaseFactory.html":{},"classes/Builder.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/ContentElementFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileDtoBuilder.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordFactory.html":{},"classes/FileResponseBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/ToolPermissionHelper.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["build(file",{"_index":9915,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["build(id",{"_index":6155,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["build(name",{"_index":9500,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["build(params",{"_index":699,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["build(requiredpermissions",{"_index":1873,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["build(schoolid",{"_index":9657,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["build(type",{"_index":5495,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["build(userid",{"_index":6176,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["buildaccount",{"_index":19992,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildaccount(user",{"_index":859,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildadmin",{"_index":872,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildadmin(params",{"_index":19995,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildcard",{"_index":3157,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcard(boardnode",{"_index":3164,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren",{"_index":3193,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren(boardnode",{"_index":3201,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn",{"_index":3158,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn(boardnode",{"_index":3167,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard",{"_index":3159,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard(boardnode",{"_index":3170,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcopyentitydict",{"_index":6244,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["buildcopyentitydict(status",{"_index":6247,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["builddomainobject",{"_index":3194,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddomainobject(boardnode",{"_index":3205,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddtowithelements",{"_index":7915,"title":{},"body":{"classes/DtoCreator.html":{}}}],["builddtowithelements(elements",{"_index":7929,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["builder",{"_index":2155,"title":{"classes/Builder.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/Builder.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["builder.addorganization",{"_index":4986,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.build",{"_index":4981,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.buildcard(this",{"_index":4097,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["builder.buildcolumn(this",{"_index":4886,"title":{},"body":{"entities/ColumnNode.html":{}}}],["builder.buildcolumnboard(this",{"_index":4723,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["builder.buildfileelement(this",{"_index":9542,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["builder.buildrichtextelement(this",{"_index":16762,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["builder.buildsubmissioncontainerelement(this",{"_index":18230,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["builder.buildsubmissionitem(this",{"_index":18307,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["builder.ts",{"_index":5037,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:24",{"_index":11304,"title":{},"body":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:28",{"_index":11301,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:30",{"_index":11302,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:32",{"_index":11303,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:35",{"_index":5206,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:42",{"_index":5209,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:46",{"_index":5211,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:52",{"_index":5207,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:63",{"_index":5048,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:65",{"_index":5050,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:67",{"_index":5047,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:69",{"_index":5046,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:73",{"_index":5053,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:79",{"_index":5056,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:88",{"_index":5057,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder:2",{"_index":2161,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["builder:26",{"_index":2162,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["builder:8",{"_index":2240,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["buildfile",{"_index":5492,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildfileelement",{"_index":3160,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfileelement(boardnode",{"_index":3173,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfromaxiosresponse",{"_index":9498,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromaxiosresponse(name",{"_index":9502,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest",{"_index":9499,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest(fileinfo",{"_index":9504,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildgroupsclaim",{"_index":12139,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildgroupsclaim(teams",{"_index":12147,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildlist",{"_index":668,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildlist(number",{"_index":705,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildlistwitheachtype",{"_index":7119,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["buildlistwitheachtype(params",{"_index":7120,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["buildlistwithid",{"_index":669,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildlistwithid(number",{"_index":707,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildlogourl",{"_index":8550,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildlogourl(template",{"_index":8557,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildoptions",{"_index":702,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildrichtext",{"_index":5493,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildrichtextelement",{"_index":3161,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildrichtextelement(boardnode",{"_index":3176,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["builds",{"_index":2317,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["buildscope",{"_index":5744,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildscope(query",{"_index":5749,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildstudent",{"_index":861,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildstudent(params",{"_index":19997,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildsubmissioncontainer",{"_index":5494,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildsubmissioncontainerelement",{"_index":3162,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissioncontainerelement(boardnode",{"_index":3179,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem",{"_index":3163,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem(boardnode",{"_index":3182,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildteacher",{"_index":868,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildteacher(params",{"_index":19999,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildtokenrequestpayload",{"_index":15035,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtokenrequestpayload(code",{"_index":15051,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtoollaunchdatafromconcreteconfig",{"_index":117,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromconcreteconfig(userid",{"_index":153,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool",{"_index":118,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool(externaltool",{"_index":157,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools",{"_index":119,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools(data",{"_index":161,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload",{"_index":120,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload(url",{"_index":164,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoolreference",{"_index":19871,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["buildtoolreference(userid",{"_index":19876,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["buildurl",{"_index":121,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl(toollaunchdatado",{"_index":168,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildwithid",{"_index":670,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildwithid(params",{"_index":709,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildwithid(userandaccounttestfactory.getuserparams(params",{"_index":866,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["built",{"_index":689,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["builtin",{"_index":12931,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["bundle",{"_index":22252,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["busboy",{"_index":9507,"title":{},"body":{"classes/FileDtoBuilder.html":{},"dependencies.html":{}}}],["business",{"_index":3870,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorLoggable.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["business.error",{"_index":1488,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ForbiddenOperationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/ValidationError.html":{}}}],["businesserror",{"_index":1472,"title":{"classes/BusinessError.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:12",{"_index":1479,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:15",{"_index":1484,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:18",{"_index":1483,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:21",{"_index":1482,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:25",{"_index":1481,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:47",{"_index":1485,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businessexception",{"_index":22654,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["businesslogic",{"_index":22512,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["button",{"_index":16048,"title":{},"body":{"classes/PageContentResponse.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["byavailable",{"_index":19086,"title":{},"body":{"classes/TaskScope.html":{}}}],["byavailable(availabledate",{"_index":19098,"title":{},"body":{"classes/TaskScope.html":{}}}],["byclasses",{"_index":12510,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclasses(classes",{"_index":12519,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclientid",{"_index":9051,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(clientid",{"_index":9054,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(query.clientid",{"_index":8793,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["bycontextid",{"_index":5875,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontextid(contextid",{"_index":5885,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype",{"_index":5876,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype(contexttype",{"_index":5887,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycourseids",{"_index":13934,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycourseids(courseids",{"_index":13935,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycreator",{"_index":14774,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreator(creatorid",{"_index":14778,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreatorid",{"_index":19087,"title":{},"body":{"classes/TaskScope.html":{}}}],["bycreatorid(creatorid",{"_index":19100,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft",{"_index":19088,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft(isdraft",{"_index":19101,"title":{},"body":{"classes/TaskScope.html":{}}}],["byexpires",{"_index":9871,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["byfilerecordid",{"_index":9889,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfilerecordid(filerecordid",{"_index":9894,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfinished",{"_index":19089,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfinished(userid",{"_index":19103,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfirstname",{"_index":12511,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byfirstname(firstname",{"_index":12521,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byhidden",{"_index":9052,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(ishidden",{"_index":9056,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(query.ishidden",{"_index":8794,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byid",{"_index":5877,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byid(id",{"_index":5889,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bylastname",{"_index":12512,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylastname(lastname",{"_index":12523,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylessonids",{"_index":19090,"title":{},"body":{"classes/TaskScope.html":{}}}],["bylessonids(lessonids",{"_index":19104,"title":{},"body":{"classes/TaskScope.html":{}}}],["byloginname",{"_index":12513,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byloginname(loginname",{"_index":12525,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymarkedfordelete",{"_index":9890,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymarkedfordelete(ismarked",{"_index":9896,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymatches",{"_index":12514,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymatches(matches",{"_index":12529,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byname",{"_index":9053,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(name",{"_index":9058,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(query.name",{"_index":8792,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byonlycreatorid",{"_index":19091,"title":{},"body":{"classes/TaskScope.html":{}}}],["byonlycreatorid(creatorid",{"_index":19106,"title":{},"body":{"classes/TaskScope.html":{}}}],["byparentid",{"_index":9891,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byparentid(parentid",{"_index":9899,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bypassdocumentvalidation",{"_index":7755,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["bypublished",{"_index":14775,"title":{},"body":{"classes/NewsScope.html":{}}}],["byreferences",{"_index":23101,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["byrole",{"_index":12515,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byrole(rolename",{"_index":12531,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool",{"_index":12516,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool(school",{"_index":12533,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschoolid",{"_index":9892,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschoolid(query.schoolid",{"_index":20088,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["byschoolid(schoolid",{"_index":9901,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschooltoolid",{"_index":5878,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byschooltoolid(schooltoolid",{"_index":5891,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bysecuritycheckrequesttoken",{"_index":9893,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bysecuritycheckrequesttoken(token",{"_index":9903,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bytargets",{"_index":14776,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytargets(targets",{"_index":14780,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytes",{"_index":10408,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["bytesrange",{"_index":10402,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["bytoolid",{"_index":17452,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["bytoolid(toolid",{"_index":17454,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["byunpublished",{"_index":14777,"title":{},"body":{"classes/NewsScope.html":{}}}],["byuseridquery",{"_index":18386,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byuseridquery(userid",{"_index":18389,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byusermatch",{"_index":12517,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byusermatch(user",{"_index":12535,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["c",{"_index":721,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"injectables/LessonService.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"interfaces/Options.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"license.html":{}}}],["c.id",{"_index":19181,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished",{"_index":19200,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished()).map((c",{"_index":19180,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.user",{"_index":13958,"title":{},"body":{"injectables/LessonService.html":{}}}],["cache",{"_index":3911,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/OauthAdapterService.html":{},"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{},"dependencies.html":{}}}],["cache_manager",{"_index":12727,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachedstate",{"_index":15816,"title":{},"body":{"injectables/OauthUc.html":{}}}],["cacheexpiration",{"_index":16827,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["cachemanager",{"_index":12717,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachemodule",{"_index":3908,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemodule.registerasync",{"_index":3915,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemoduleoptions",{"_index":3909,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cacheservice",{"_index":3893,"title":{"injectables/CacheService.html":{}},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cacheservice.getstoretype",{"_index":3916,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachestoretype",{"_index":3897,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachestoretype.memory",{"_index":3903,"title":{},"body":{"injectables/CacheService.html":{}}}],["cachestoretype.redis",{"_index":3902,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachewrappermodule",{"_index":1623,"title":{"modules/CacheWrapperModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CacheWrapperModule.html":{},"modules/OauthModule.html":{},"modules.html":{}}}],["caf",{"_index":12550,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["cafe",{"_index":12552,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["calculatenumberofsubmitters(submissions",{"_index":12030,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["calculations",{"_index":22492,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["calendareventdto",{"_index":3925,"title":{"classes/CalendarEventDto.html":{}},"body":{"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/VideoConferenceService.html":{}}}],["calendarmapper",{"_index":3935,"title":{"injectables/CalendarMapper.html":{}},"body":{"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarmodule",{"_index":3950,"title":{"modules/CalendarModule.html":{}},"body":{"modules/CalendarModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["calendarservice",{"_index":3954,"title":{"injectables/CalendarService.html":{}},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"injectables/VideoConferenceService.html":{}}}],["calendarservice:findevent",{"_index":3978,"title":{},"body":{"injectables/CalendarService.html":{}}}],["call",{"_index":691,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountValidationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakSeedService.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callable",{"_index":2318,"title":{},"body":{"injectables/BBBService.html":{}}}],["callback",{"_index":22760,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["callback_uri",{"_index":1457,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["callbackuri",{"_index":1451,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["calld",{"_index":22805,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["called",{"_index":688,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/KeycloakSeedService.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callhandler",{"_index":8018,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["calling",{"_index":16111,"title":{},"body":{"injectables/PermissionService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callkcadminclient",{"_index":12767,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["callname",{"_index":2310,"title":{},"body":{"injectables/BBBService.html":{}}}],["calls",{"_index":16263,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["camelcase",{"_index":22590,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["can't",{"_index":1663,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cancel",{"_index":16047,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["cancelbuttonurl",{"_index":16013,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["canguestjoin",{"_index":21212,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["canguestjoin(isguest",{"_index":21227,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["caninline",{"_index":5105,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["canmap",{"_index":2591,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["canmap(element",{"_index":2592,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["cant",{"_index":22524,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["capabilities",{"_index":22381,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["caption",{"_index":3239,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["caption(value",{"_index":9526,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["card",{"_index":2856,"title":{"classes/Card.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/Column.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.'})@apiextramodels(richtextelementresponse",{"_index":4010,"title":{},"body":{"controllers/CardController.html":{}}}],["card.'})@apiresponse({status",{"_index":4017,"title":{},"body":{"controllers/CardController.html":{}}}],["card.addchild(text1",{"_index":4777,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text2",{"_index":4793,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text3",{"_index":4805,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text4",{"_index":4812,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.body.params",{"_index":4873,"title":{},"body":{"controllers/ColumnController.html":{}}}],["card.body.params.ts",{"_index":6849,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:10",{"_index":14562,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:13",{"_index":6852,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["card.body.params.ts:18",{"_index":14564,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.children.map((element",{"_index":4119,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.constructor.name",{"_index":4901,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["card.createdat",{"_index":4121,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.do",{"_index":2875,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["card.height",{"_index":4118,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.id",{"_index":4116,"title":{},"body":{"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.response",{"_index":4088,"title":{},"body":{"classes/CardListResponse.html":{}}}],["card.title",{"_index":4117,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.updatedat",{"_index":4120,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["cardcontroller",{"_index":2764,"title":{"controllers/CardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/CardController.html":{}}}],["cardid",{"_index":3781,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardidparams",{"_index":4021,"title":{},"body":{"controllers/CardController.html":{}}}],["cardidparams.ids",{"_index":4053,"title":{},"body":{"controllers/CardController.html":{}}}],["cardids",{"_index":4051,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardidsparams",{"_index":4022,"title":{"classes/CardIdsParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardIdsParams.html":{}}}],["cardlistresponse",{"_index":4041,"title":{"classes/CardListResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardListResponse.html":{}}}],["cardlistresponse})@apiresponse({status",{"_index":4024,"title":{},"body":{"controllers/CardController.html":{}}}],["cardnode",{"_index":3165,"title":{"entities/CardNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["cardnodefactory",{"_index":3495,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodefactory.build",{"_index":3519,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodeprops",{"_index":4094,"title":{"interfaces/CardNodeProps.html":{}},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["cardprops",{"_index":4003,"title":{"interfaces/CardProps.html":{}},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["cardresponse",{"_index":4086,"title":{"classes/CardResponse.html":{}},"body":{"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper",{"_index":4048,"title":{"classes/CardResponseMapper.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper.maptoresponse(card",{"_index":4056,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["cardresponses",{"_index":4055,"title":{},"body":{"controllers/CardController.html":{}}}],["cardresponse})@apiresponse({status",{"_index":4857,"title":{},"body":{"controllers/ColumnController.html":{}}}],["cards",{"_index":3232,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cards.every((card",{"_index":4147,"title":{},"body":{"injectables/CardService.html":{}}}],["cards.map((card",{"_index":3512,"title":{},"body":{"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{}}}],["cardservice",{"_index":3535,"title":{"injectables/CardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardskeletonresponse",{"_index":4160,"title":{"classes/CardSkeletonResponse.html":{}},"body":{"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardspercolumn",{"_index":3505,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardspercolumn.flat",{"_index":3509,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["carduc",{"_index":2758,"title":{"injectables/CardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["cardurlparams",{"_index":4008,"title":{"classes/CardUrlParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardUrlParams.html":{}}}],["care",{"_index":22561,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["careful",{"_index":22879,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["carefully",{"_index":22827,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cares",{"_index":22657,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["carry",{"_index":21871,"title":{},"body":{"license.html":{}}}],["cartridge",{"_index":4931,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CourseExportUc.html":{},"classes/CourseQueryParams.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IServerConfig.html":{}}}],["cartridge.config.ts",{"_index":11294,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{}}}],["cartridge/common",{"_index":5036,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["cartridge/utils",{"_index":4972,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["cartridge/utils.ts",{"_index":21530,"title":{},"body":{"miscellaneous/functions.html":{}}}],["cartridge_basiclti_link",{"_index":5114,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_bundle",{"_index":5128,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_icon",{"_index":5131,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cascading",{"_index":5280,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["case",{"_index":309,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"entities/CourseGroup.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolRepoMapper.html":{},"interfaces/ICourseGroupProperties.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"injectables/TaskUC.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["caseinsensitivenames",{"_index":5337,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["cases",{"_index":18897,"title":{},"body":{"classes/TaskFactory.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cast",{"_index":1716,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["catch",{"_index":1158,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardManagementUc.html":{},"injectables/DeleteFilesUc.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolService.html":{},"classes/GlobalErrorFilter.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapStrategy.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["catch((error",{"_index":2357,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["catch(error",{"_index":10473,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["catcherror",{"_index":1269,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/TimeoutInterceptor.html":{}}}],["catcherror((e",{"_index":1385,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["catcherror((err",{"_index":16677,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["cause",{"_index":3876,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorUtils.html":{},"injectables/JwtStrategy.html":{},"classes/SchoolMigrationError.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["causeerror",{"_index":8245,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["caution",{"_index":13411,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["cc",{"_index":1578,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"classes/CourseQueryParams.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["cease",{"_index":22031,"title":{},"body":{"license.html":{}}}],["ceating",{"_index":11374,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["centralldap",{"_index":17564,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["certain",{"_index":21994,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["cessation",{"_index":22040,"title":{},"body":{"license.html":{}}}],["ch.id",{"_index":2839,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["chaining",{"_index":22665,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["chains",{"_index":22275,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["chalk",{"_index":21370,"title":{},"body":{"dependencies.html":{}}}],["challenge",{"_index":4216,"title":{},"body":{"classes/ChallengeParams.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/HydraAdapter.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["challengeparams",{"_index":4214,"title":{"classes/ChallengeParams.html":{}},"body":{"classes/ChallengeParams.html":{},"controllers/OauthProviderController.html":{}}}],["change",{"_index":4997,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/JwtPayload.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["changed",{"_index":10022,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"additional-documentation/nestjs-application.html":{}}}],["changefinishedforuser",{"_index":19149,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changefinishedforuser(userid",{"_index":19155,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changelanguage",{"_index":20009,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguage(params",{"_index":20010,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguageparams",{"_index":4218,"title":{"classes/ChangeLanguageParams.html":{}},"body":{"classes/ChangeLanguageParams.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["changes",{"_index":13361,"title":{},"body":{"injectables/LdapStrategy.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["changing",{"_index":20272,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["channel",{"_index":16480,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["chapter",{"_index":2576,"title":{},"body":{"injectables/BaseRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["character",{"_index":937,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["characterized",{"_index":21971,"title":{},"body":{"license.html":{}}}],["characters",{"_index":9979,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/MongoPatterns.html":{},"miscellaneous/functions.html":{}}}],["charge",{"_index":21681,"title":{},"body":{"license.html":{}}}],["chat",{"_index":1405,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["chat.module.ts",{"_index":16778,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.module.ts:7",{"_index":16779,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service",{"_index":16781,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service.ts",{"_index":1264,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["chat.service.ts:42",{"_index":16776,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:44",{"_index":16775,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:47",{"_index":16774,"title":{},"body":{"classes/RocketChatError.html":{}}}],["check",{"_index":1240,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/GuardAgainst.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/LdapStrategy.html":{},"injectables/LessonUC.html":{},"injectables/NextcloudStrategy.html":{},"entities/Submission.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["check.entity",{"_index":9601,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["check.entity.ts",{"_index":9920,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["check.entity.ts:14",{"_index":9928,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:17",{"_index":9924,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:20",{"_index":9925,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:23",{"_index":9923,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:26",{"_index":9922,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.service.ts",{"_index":14461,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:15",{"_index":14466,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:8",{"_index":14464,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["checkallpermissions",{"_index":2012,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkallpermissions(user",{"_index":2020,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkandaddprefix",{"_index":19396,"title":{},"body":{"classes/TestApiClient.html":{}}}],["checkandaddprefix(inputpath",{"_index":1761,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["checkavaiblelanguages",{"_index":20803,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavaiblelanguages(settedlanguage",{"_index":20805,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavailablelanguages",{"_index":20751,"title":{},"body":{"injectables/UserService.html":{}}}],["checkavailablelanguages(language",{"_index":20757,"title":{},"body":{"injectables/UserService.html":{}}}],["checkbrutforce",{"_index":1782,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkbrutforce(account",{"_index":1791,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkcontextreadpermission",{"_index":18040,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcontextreadpermission(userid",{"_index":18046,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission",{"_index":18041,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission(userid",{"_index":18048,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcredentials",{"_index":13318,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["checkcredentials(account",{"_index":13323,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkcredentials(enteredpassword",{"_index":13997,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["checkcustomparameterentries",{"_index":5304,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkcustomparameterentries(loadedexternaltool",{"_index":5312,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkduplicateincontext",{"_index":5973,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checkduplicateincontext(contextexternaltool",{"_index":5979,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checked",{"_index":1664,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/HydraSsoService.html":{}}}],["checkentitypermissions",{"_index":9380,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkentitypermissions(userid",{"_index":9385,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkerror",{"_index":10281,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["checkerror(response",{"_index":10284,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["checkexistence",{"_index":1117,"title":{},"body":{"injectables/AccountService.html":{}}}],["checkexpired",{"_index":18008,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkexpired(sharetoken",{"_index":18014,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkfeatureenabled",{"_index":6577,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["checkfeatureenabled(parenttype",{"_index":18050,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkforduplicateparameters",{"_index":5305,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkforduplicateparameters(validatabletool",{"_index":5316,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkifpreviewpossible",{"_index":16130,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checkifpreviewpossible(filerecord",{"_index":16142,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checking",{"_index":10530,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkinputisvalid",{"_index":23137,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["checkldapcredentials",{"_index":13287,"title":{},"body":{"injectables/LdapService.html":{}}}],["checkldapcredentials(system",{"_index":13289,"title":{},"body":{"injectables/LdapService.html":{}}}],["checklist",{"_index":21634,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checklistscontainingequalentities(first",{"_index":2725,"title":{},"body":{"entities/Board.html":{}}}],["checkofficialschoolnumbersmatch",{"_index":17586,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkofficialschoolnumbersmatch(schooldo",{"_index":17595,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkoneofpermissions",{"_index":2013,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoneofpermissions(user",{"_index":2022,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoptionalparameter",{"_index":5306,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoptionalparameter(param",{"_index":5318,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkout",{"_index":21638,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checkparameterregex",{"_index":5307,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparameterregex(foundentry",{"_index":5321,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype",{"_index":5308,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype(foundentry",{"_index":5323,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparentwritepermission",{"_index":18042,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkparentwritepermission(userid",{"_index":18052,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkpermission",{"_index":2014,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkpermission(user",{"_index":2024,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpermission(userid",{"_index":3769,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["checkpermissionbyreferences",{"_index":2015,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpermissionbyreferences(userid",{"_index":2026,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpreconditions",{"_index":18147,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checkpreconditions(userid",{"_index":18149,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checks",{"_index":11591,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementOauthService.html":{},"classes/KeycloakConsole.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["checkscopeandvalidateparameter",{"_index":5309,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkscopeandvalidateparameter(validatabletool",{"_index":5325,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkshorttitle",{"_index":7337,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["checkstreamresponsive",{"_index":17086,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checkstreamresponsive(stream",{"_index":17093,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checksum",{"_index":2308,"title":{},"body":{"injectables/BBBService.html":{}}}],["checkunique",{"_index":1128,"title":{},"body":{"injectables/AccountService.html":{}}}],["checkvalue",{"_index":13319,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkvalue(value",{"_index":13325,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkversionmatch",{"_index":17517,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["checkversionmatch(schoolexternaltoolversion",{"_index":17519,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["child",{"_index":2811,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoService.html":{},"classes/BoardResponseMapper.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/FileElement.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemUc.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["child.accept(this",{"_index":16553,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["child.acceptasync(this",{"_index":16526,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["child.constructor.name",{"_index":2830,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["child.id",{"_index":2840,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["childid",{"_index":3299,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["children",{"_index":2799,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/CardService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ElementUc.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["children.length",{"_index":3258,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["children.sort((a",{"_index":3254,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["childrenmap",{"_index":3192,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["childrenmap[boardnode.pathofchildren",{"_index":3324,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["choose",{"_index":22172,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["choosing",{"_index":22174,"title":{},"body":{"license.html":{}}}],["chunk",{"_index":21433,"title":{},"body":{"dependencies.html":{}}}],["circumstances",{"_index":21822,"title":{},"body":{"license.html":{}}}],["circumvention",{"_index":21830,"title":{},"body":{"license.html":{}}}],["civil",{"_index":22211,"title":{},"body":{"license.html":{}}}],["cjs",{"_index":12757,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["cjs/keycloak",{"_index":12756,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["claim",{"_index":13001,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["claim.name",{"_index":13010,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["claims",{"_index":22091,"title":{},"body":{"license.html":{}}}],["class",{"_index":0,"title":{"classes/AbstractAccountService.html":{},"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BaseDO.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/ColumnUrlParams.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolSortingMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/ExternalUserDto.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"classes/HydraRedirectDto.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"classes/JwtExtractor.html":{},"classes/JwtTestFactory.html":{},"classes/KeycloakAdministration.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoggingUtils.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"classes/MigrationDto.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"classes/NewsUrlParams.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolRefDO.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"classes/TimestampsResponse.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{}},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserProperties.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"classes/SSOLoginQuery.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["class.do",{"_index":4338,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classattributenamemapping",{"_index":11918,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["classentity",{"_index":4277,"title":{"entities/ClassEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"interfaces/IClassEntityProps.html":{}}}],["classentity.id",{"_index":4439,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classentityfactory",{"_index":4323,"title":{"classes/ClassEntityFactory.html":{}},"body":{"classes/ClassEntityFactory.html":{}}}],["classentityfactory.define(classentity",{"_index":4330,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["classes",{"_index":2,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BaseDO.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/ColumnUrlParams.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolSortingMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/ExternalUserDto.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"classes/JwtExtractor.html":{},"classes/JwtTestFactory.html":{},"classes/KeycloakAdministration.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoggingUtils.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"classes/MigrationDto.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"classes/NewsUrlParams.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolRefDO.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"classes/TimestampsResponse.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["classes.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":12562,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["classesentities",{"_index":4434,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classesentities.map((classentity",{"_index":4437,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classesrepo",{"_index":4393,"title":{"injectables/ClassesRepo.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{}}}],["classfactory",{"_index":4333,"title":{"classes/ClassFactory.html":{}},"body":{"classes/ClassFactory.html":{}}}],["classfactory.define(class",{"_index":4339,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classmapper",{"_index":4340,"title":{"classes/ClassMapper.html":{}},"body":{"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{}}}],["classmapper.maptodos(classes",{"_index":4433,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmapper.maptoentities(classes",{"_index":4435,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmodule",{"_index":4388,"title":{"modules/ClassModule.html":{}},"body":{"modules/ClassModule.html":{},"modules.html":{}}}],["classname",{"_index":9413,"title":{},"body":{"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["classnames",{"_index":11447,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{}}}],["classpathadditions",{"_index":11908,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["classprops",{"_index":4263,"title":{"interfaces/ClassProps.html":{}},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{}}}],["classserializerinterceptor",{"_index":12572,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["classservice",{"_index":4392,"title":{"injectables/ClassService.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{}}}],["classsourceoptions",{"_index":4261,"title":{"classes/ClassSourceOptions.html":{}},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["classsourceoptionsentity",{"_index":4286,"title":{"classes/ClassSourceOptionsEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["classsourceoptionsentityprops",{"_index":4420,"title":{"interfaces/ClassSourceOptionsEntityProps.html":{}},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["classsourceoptionsprops",{"_index":4413,"title":{"interfaces/ClassSourceOptionsProps.html":{}},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["classvalidatormetadatastorage",{"_index":8126,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["clause",{"_index":955,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["clean",{"_index":9822,"title":{},"body":{"classes/FileRecordMapper.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["clean(options",{"_index":11598,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["cleans",{"_index":11596,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["cleanup",{"_index":6418,"title":{},"body":{"entities/Course.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/ICourseProperties.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cleanupinput",{"_index":13993,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanupinput(username",{"_index":14001,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanuppath",{"_index":19397,"title":{},"body":{"classes/TestApiClient.html":{}}}],["cleanuppath(inputpath",{"_index":1764,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["clear",{"_index":11168,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"license.html":{}}}],["clearcollection",{"_index":7723,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearcollection(collectionname",{"_index":7731,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearly",{"_index":22525,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["cleartimeout(timer",{"_index":17179,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["cli",{"_index":22419,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["click",{"_index":20935,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["client",{"_index":3544,"title":{},"body":{"modules/BoardModule.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolValidationService.html":{},"classes/FileResponseBuilder.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraAdapter.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/IdParams.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/LdapService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/PreviewService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"injectables/RecursiveDeleteVisitor.html":{},"modules/RedisModule.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RevokeConsentParams.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"classes/SystemFactory.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"classes/TestHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceCreateParams.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["client.adapter",{"_index":17188,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.adapter.ts",{"_index":17084,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:111",{"_index":17106,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:134",{"_index":17108,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:155",{"_index":17096,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:179",{"_index":17101,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:199",{"_index":17103,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:21",{"_index":17092,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:226",{"_index":17094,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:32",{"_index":17099,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:49",{"_index":17104,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:82",{"_index":17098,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.bind(username",{"_index":13309,"title":{},"body":{"injectables/LdapService.html":{}}}],["client.body.ts",{"_index":15238,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:10",{"_index":15241,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:15",{"_index":15242,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:20",{"_index":15243,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:26",{"_index":15248,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:36",{"_index":15269,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:46",{"_index":15263,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:56",{"_index":15258,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:65",{"_index":15246,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:71",{"_index":15247,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:77",{"_index":15249,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.getsigningkey",{"_index":15215,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["client.histogram",{"_index":16656,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["client.interface",{"_index":16288,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["client.mapper",{"_index":9660,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["client.mapper.ts",{"_index":10122,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:17",{"_index":10130,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:27",{"_index":10138,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:39",{"_index":10132,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:49",{"_index":10140,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:62",{"_index":10134,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:7",{"_index":10136,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.module.ts",{"_index":10163,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"modules/S3ClientModule.html":{}}}],["client.module.ts:25",{"_index":17187,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.on('connect",{"_index":3922,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.on('error",{"_index":3920,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.response",{"_index":5464,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["client.send(deletioncommand",{"_index":7866,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["client.service",{"_index":6205,"title":{},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{}}}],["client.service.ts",{"_index":10101,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:11",{"_index":10107,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:16",{"_index":10109,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:23",{"_index":10113,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:31",{"_index":10111,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.ts",{"_index":1702,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["client.ts:104",{"_index":19412,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:110",{"_index":19403,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:120",{"_index":19404,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:129",{"_index":19409,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:136",{"_index":19411,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:142",{"_index":19408,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:26",{"_index":19401,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:28",{"_index":19402,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:30",{"_index":19400,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:38",{"_index":19407,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:45",{"_index":19405,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:54",{"_index":19416,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:64",{"_index":19414,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:74",{"_index":19415,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:84",{"_index":19413,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client/dto/copy",{"_index":6065,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["client/dto/file.dto.ts",{"_index":9487,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:10",{"_index":9492,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:12",{"_index":9489,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:6",{"_index":9490,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:8",{"_index":9491,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/files",{"_index":10162,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["client/interface/index.ts",{"_index":6159,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/S3Config-1.html":{}}}],["client/interfaces/copy",{"_index":11365,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["client/interfaces/file",{"_index":11403,"title":{},"body":{"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{}}}],["client/interfaces/files",{"_index":11428,"title":{},"body":{"interfaces/IFilesStorageClientConfig.html":{}}}],["client/lib/defs/authenticationexecutioninforepresentation",{"_index":12892,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/authenticationflowrepresentation",{"_index":12894,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/clientrepresentation",{"_index":12896,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityprovidermapperrepresentation",{"_index":12897,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityproviderrepresentation",{"_index":12898,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["client/lib/defs/protocolmapperrepresentation",{"_index":12899,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/userrepresentation",{"_index":13094,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["client/mapper/copy",{"_index":6174,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["client/mapper/error.mapper.ts",{"_index":8200,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["client/mapper/error.mapper.ts:6",{"_index":8204,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["client/mapper/files",{"_index":9656,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["client/s3",{"_index":17083,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["client/service/copy",{"_index":6187,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["client/service/files",{"_index":10100,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["client_id",{"_index":1596,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/HydraSsoService.html":{},"interfaces/IntrospectResponse.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/TokenRequestMapper.html":{}}}],["client_name",{"_index":5468,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/HydraAdapter.html":{},"classes/ListOauthClientsParams.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{}}}],["client_secret",{"_index":1597,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/OauthClientBody.html":{},"classes/TokenRequestMapper.html":{}}}],["client_secret_basic",{"_index":15267,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client_secret_post",{"_index":15266,"title":{},"body":{"classes/OauthClientBody.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["clientauthmethod",{"_index":15895,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["clientid",{"_index":5472,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ISystemProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolService.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TokenRequestMapper.html":{},"additional-documentation/nestjs-application.html":{}}}],["clientinternalid",{"_index":12803,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clientname",{"_index":5470,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["clientrepresentation",{"_index":12895,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["clients",{"_index":7848,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["clients.map",{"_index":15537,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["clients.params.ts",{"_index":13977,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:16",{"_index":13982,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:27",{"_index":13985,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:36",{"_index":13978,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:45",{"_index":13986,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients_configuration_path='/tmp/config/clients",{"_index":22924,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["clientsecret",{"_index":7134,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["clientsecret.value",{"_index":12807,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clienttype",{"_index":2276,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["clienturl",{"_index":4808,"title":{},"body":{"injectables/ColumnBoardService.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["clone",{"_index":671,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["clone(this",{"_index":712,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["clone>(this",{"_index":2562,"title":{},"body":{"classes/BaseFactory.html":{}}}],["close",{"_index":16486,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["closed",{"_index":18993,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["closed.loggable",{"_index":20226,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["closedat",{"_index":20199,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["closeddraftsforcreator",{"_index":18997,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.addquery(parentsopen.query",{"_index":18998,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.bycreatorid(parentids.creatorid",{"_index":19000,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.byfinished(parentids.creatorid",{"_index":18999,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons",{"_index":18986,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.addquery(parentsopen.query",{"_index":18987,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.bydraft(false",{"_index":18988,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.byfinished(parentids.creatorid",{"_index":18989,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator",{"_index":18994,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byfinished(parentids.creatorid",{"_index":18995,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byonlycreatorid(parentids.creatorid",{"_index":18996,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closely",{"_index":22208,"title":{},"body":{"license.html":{}}}],["closemigration",{"_index":4445,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["closemigration(@currentuser",{"_index":20319,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(currentuser",{"_index":20245,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(schoolid",{"_index":20429,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["closemigration(userid",{"_index":4452,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["closeuserloginmigrationuc",{"_index":4441,"title":{"injectables/CloseUserLoginMigrationUc.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["closing",{"_index":22841,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cloud",{"_index":14902,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["cloud.github.io/schulcloud",{"_index":22293,"title":{},"body":{"todo.html":{}}}],["cloud/commons",{"_index":2174,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/OAuthService.html":{},"classes/PrometheusMetricsConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/TaskCopyUC.html":{},"dependencies.html":{}}}],["cloud/commons/lib",{"_index":3898,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"classes/DtoCreator.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IToolFeatures.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/RedisModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/ServerConsoleModule.html":{},"injectables/ShareTokenUC.html":{},"classes/ToolConfiguration.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["cloud/dof_app_deploy/blob/main/ansible/roles/rocketchat/templates/configmap.yml.j2#l9",{"_index":22969,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["cloud/erwin",{"_index":22340,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/node",{"_index":21404,"title":{},"body":{"dependencies.html":{}}}],["cloud/sc",{"_index":22932,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/schulcloud",{"_index":22270,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cluster_accountapimodule",{"_index":434,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountapimodule_imports",{"_index":436,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountapimodule_providers",{"_index":435,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountmodule",{"_index":813,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_exports",{"_index":816,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_imports",{"_index":815,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_providers",{"_index":814,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_authenticationapimodule",{"_index":1582,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_imports",{"_index":1583,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_providers",{"_index":1584,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationmodule",{"_index":1619,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_exports",{"_index":1621,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_imports",{"_index":1620,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_providers",{"_index":1622,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authorizationmodule",{"_index":1946,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_exports",{"_index":1947,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_imports",{"_index":1949,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_providers",{"_index":1948,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_boardapimodule",{"_index":2754,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_imports",{"_index":2755,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_providers",{"_index":2756,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardmodule",{"_index":3529,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_exports",{"_index":3532,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_imports",{"_index":3531,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_providers",{"_index":3530,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_cachewrappermodule",{"_index":3904,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_exports",{"_index":3906,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_providers",{"_index":3905,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_calendarmodule",{"_index":3951,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_exports",{"_index":3952,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_providers",{"_index":3953,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_classmodule",{"_index":4389,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_exports",{"_index":4391,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_providers",{"_index":4390,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_collaborativestorageadaptermodule",{"_index":4546,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_exports",{"_index":4547,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_imports",{"_index":4548,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_providers",{"_index":4549,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestoragemodule",{"_index":4601,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_exports",{"_index":4604,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_imports",{"_index":4602,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_providers",{"_index":4603,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_commontoolmodule",{"_index":5268,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_exports",{"_index":5270,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_imports",{"_index":5269,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_providers",{"_index":5271,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_consolewritermodule",{"_index":5479,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_exports",{"_index":5481,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_providers",{"_index":5480,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_contextexternaltoolmodule",{"_index":5714,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_exports",{"_index":5716,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_imports",{"_index":5715,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_providers",{"_index":5717,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_copyhelpermodule",{"_index":6235,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_exports",{"_index":6237,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_providers",{"_index":6236,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_coremodule",{"_index":6318,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_exports",{"_index":6319,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_imports",{"_index":6320,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_databasemanagementmodule",{"_index":7715,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_exports",{"_index":7716,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_providers",{"_index":7717,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_encryptionmodule",{"_index":8105,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_encryptionmodule_imports",{"_index":8106,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_errormodule",{"_index":8213,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_errormodule_imports",{"_index":8214,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_externaltoolmodule",{"_index":8623,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_exports",{"_index":8626,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_imports",{"_index":8625,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_providers",{"_index":8624,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_feathersmodule",{"_index":9414,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_exports",{"_index":9415,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_providers",{"_index":9416,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_filesmodule",{"_index":10038,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_imports",{"_index":10039,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_providers",{"_index":10040,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesstorageamqpmodule",{"_index":10086,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_imports",{"_index":10088,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_providers",{"_index":10087,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageapimodule",{"_index":10095,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_imports",{"_index":10097,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_providers",{"_index":10096,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageclientmodule",{"_index":10158,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_exports",{"_index":10160,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_imports",{"_index":10161,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_providers",{"_index":10159,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstoragemodule",{"_index":10241,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_exports",{"_index":10242,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_imports",{"_index":10243,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_providers",{"_index":10244,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragetestmodule",{"_index":10315,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesstoragetestmodule_imports",{"_index":10316,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesystemmodule",{"_index":10027,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_exports",{"_index":10029,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_providers",{"_index":10028,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_fwulearningcontentsmodule",{"_index":10419,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_imports",{"_index":10421,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_providers",{"_index":10420,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentstestmodule",{"_index":10429,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_imports",{"_index":10431,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_providers",{"_index":10430,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_groupapimodule",{"_index":10583,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_imports",{"_index":10584,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupmodule",{"_index":10664,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_exports",{"_index":10665,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_providers",{"_index":10666,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_h5peditormodule",{"_index":10808,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_imports",{"_index":10810,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_providers",{"_index":10809,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditortestmodule",{"_index":10817,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_h5peditortestmodule_imports",{"_index":10818,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_identitymanagementmodule",{"_index":12180,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_exports",{"_index":12181,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_imports",{"_index":12182,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_importusermodule",{"_index":12446,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_imports",{"_index":12448,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_providers",{"_index":12447,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_keycloakadministrationmodule",{"_index":12749,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_exports",{"_index":12750,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_providers",{"_index":12751,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakconfigurationmodule",{"_index":12823,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_exports",{"_index":12826,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_imports",{"_index":12825,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_providers",{"_index":12824,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakmodule",{"_index":13203,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_exports",{"_index":13205,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_imports",{"_index":13204,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_providers",{"_index":13206,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_learnroomapimodule",{"_index":13368,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_imports",{"_index":13370,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_providers",{"_index":13369,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroommodule",{"_index":13386,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_exports",{"_index":13389,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_imports",{"_index":13388,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_providers",{"_index":13387,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_legacyschoolapimodule",{"_index":13433,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_imports",{"_index":13434,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_providers",{"_index":13435,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolmodule",{"_index":13528,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_exports",{"_index":13531,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_imports",{"_index":13529,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_providers",{"_index":13530,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_lessonapimodule",{"_index":13645,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_imports",{"_index":13647,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_providers",{"_index":13646,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonmodule",{"_index":13870,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_exports",{"_index":13873,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_imports",{"_index":13872,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_providers",{"_index":13871,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_loggermodule",{"_index":14040,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_exports",{"_index":14041,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_providers",{"_index":14042,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_ltitoolmodule",{"_index":14328,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_exports",{"_index":14330,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_providers",{"_index":14329,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_managementmodule",{"_index":14406,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_imports",{"_index":14408,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_providers",{"_index":14407,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementservermodule",{"_index":14420,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservermodule_imports",{"_index":14421,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservertestmodule",{"_index":14427,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_managementservertestmodule_imports",{"_index":14428,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_newsmodule",{"_index":14712,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_exports",{"_index":14715,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_imports",{"_index":14714,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_providers",{"_index":14713,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_oauthapimodule",{"_index":15227,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_imports",{"_index":15229,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_providers",{"_index":15228,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthmodule",{"_index":15395,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_exports",{"_index":15396,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_imports",{"_index":15398,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_providers",{"_index":15397,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthproviderapimodule",{"_index":15402,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_imports",{"_index":15403,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_providers",{"_index":15404,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthprovidermodule",{"_index":15632,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_exports",{"_index":15634,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_imports",{"_index":15633,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_providers",{"_index":15635,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthproviderservicemodule",{"_index":15678,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_oauthproviderservicemodule_exports",{"_index":15679,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_provisioningmodule",{"_index":16301,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_exports",{"_index":16303,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_imports",{"_index":16302,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_providers",{"_index":16304,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_pseudonymmodule",{"_index":16386,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_exports",{"_index":16388,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_providers",{"_index":16387,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_redismodule",{"_index":16594,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_redismodule_imports",{"_index":16595,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_rolemodule",{"_index":16803,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_exports",{"_index":16805,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_providers",{"_index":16804,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_schoolexternaltoolmodule",{"_index":17368,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_exports",{"_index":17371,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_imports",{"_index":17369,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_providers",{"_index":17370,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_serverconsolemodule",{"_index":17740,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_serverconsolemodule_imports",{"_index":17741,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_servermodule",{"_index":17754,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servermodule_imports",{"_index":17755,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servertestmodule",{"_index":17834,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_servertestmodule_imports",{"_index":17835,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_sharingapimodule",{"_index":18107,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_imports",{"_index":18109,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_providers",{"_index":18108,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingmodule",{"_index":18114,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_exports",{"_index":18115,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_imports",{"_index":18117,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_providers",{"_index":18116,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_systemapimodule",{"_index":18510,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_imports",{"_index":18512,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_providers",{"_index":18511,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemmodule",{"_index":18622,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_exports",{"_index":18623,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_imports",{"_index":18625,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_providers",{"_index":18624,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_taskapimodule",{"_index":18760,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_imports",{"_index":18761,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_providers",{"_index":18762,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskmodule",{"_index":18942,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_exports",{"_index":18945,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_imports",{"_index":18944,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_providers",{"_index":18943,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_teamsapimodule",{"_index":19371,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsapimodule_imports",{"_index":19372,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsmodule",{"_index":19376,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_exports",{"_index":19378,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_providers",{"_index":19377,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_toolapimodule",{"_index":19500,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_imports",{"_index":19501,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_providers",{"_index":19502,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toollaunchmodule",{"_index":19760,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_exports",{"_index":19763,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_imports",{"_index":19761,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_providers",{"_index":19762,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toolmodule",{"_index":19824,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_exports",{"_index":19825,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_imports",{"_index":19827,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_providers",{"_index":19826,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_userapimodule",{"_index":20002,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_imports",{"_index":20004,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_providers",{"_index":20003,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userloginmigrationapimodule",{"_index":20230,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_imports",{"_index":20231,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_providers",{"_index":20232,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationmodule",{"_index":20371,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_exports",{"_index":20374,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_imports",{"_index":20373,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_providers",{"_index":20372,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_usermodule",{"_index":20661,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_exports",{"_index":20663,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_imports",{"_index":20662,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_providers",{"_index":20664,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_videoconferenceapimodule",{"_index":20853,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_imports",{"_index":20854,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_providers",{"_index":20855,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferencemodule",{"_index":21135,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_exports",{"_index":21137,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_imports",{"_index":21138,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_providers",{"_index":21136,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["code",{"_index":1253,"title":{"additional-documentation/nestjs-application/code-style.html":{}},"body":{"injectables/AccountValidationService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/ConsentRequestBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/FeathersError.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISubmissionProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConnectionError.html":{},"classes/LoginRequestBody.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OAuthService.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthUc.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/StatelessAuthorizationParams.html":{},"entities/Submission.html":{},"classes/SystemFactory.html":{},"classes/TokenRequestMapper.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationError.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["code.enum",{"_index":15032,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["codebase",{"_index":22510,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["coded",{"_index":11282,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["coersion",{"_index":10536,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["cohesion",{"_index":22536,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["collaborative",{"_index":4482,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/NextcloudStrategy.html":{}}}],["collaborativestorage",{"_index":11100,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["collaborativestorageadapter",{"_index":4476,"title":{"injectables/CollaborativeStorageAdapter.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["collaborativestorageadaptermapper",{"_index":4494,"title":{"injectables/CollaborativeStorageAdapterMapper.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["collaborativestorageadaptermodule",{"_index":4545,"title":{"modules/CollaborativeStorageAdapterModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules.html":{}}}],["collaborativestoragecontroller",{"_index":4567,"title":{"controllers/CollaborativeStorageController.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["collaborativestoragemodule",{"_index":4600,"title":{"modules/CollaborativeStorageModule.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["collaborativestorageservice",{"_index":4605,"title":{"injectables/CollaborativeStorageService.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collaborativestorageuc",{"_index":4589,"title":{"injectables/CollaborativeStorageUc.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collect",{"_index":22151,"title":{},"body":{"license.html":{}}}],["collectdefaultmetrics",{"_index":16209,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collected",{"_index":16261,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting",{"_index":16260,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_default_metrics_disabled",{"_index":16259,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_metrics_route_metrics_disabled",{"_index":16262,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collection",{"_index":1910,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"entities/News.html":{},"interfaces/Options.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["collection(this",{"_index":2678,"title":{},"body":{"entities/Board.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/LessonEntity.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{}}}],["collection.deletemany",{"_index":7758,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.find({}).toarray",{"_index":7756,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.insertmany(jsondocuments",{"_index":7753,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.name",{"_index":7763,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionexists",{"_index":7724,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionexists(collectionname",{"_index":7733,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname",{"_index":7694,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter",{"_index":11150,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter.length",{"_index":11158,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter?.includes(collectionname",{"_index":11161,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnames",{"_index":7761,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname}.json",{"_index":11142,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionname}:${data.length",{"_index":11181,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections",{"_index":7653,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{},"injectables/PermissionService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["collections.includes(collectionname",{"_index":7765,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.includes(data.collectionname",{"_index":11176,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.length",{"_index":11175,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.map((collection",{"_index":7762,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.map((collectionname",{"_index":11140,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport",{"_index":11210,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport.map(async",{"_index":11212,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed",{"_index":11189,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed.map(async",{"_index":11191,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionswithfilepaths",{"_index":11139,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectmetricsroutemetrics",{"_index":16210,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collects",{"_index":23098,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["color",{"_index":6364,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["column",{"_index":2697,"title":{"classes/Column.html":{}},"body":{"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsService.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["column.'})@apiresponse({status",{"_index":4856,"title":{},"body":{"controllers/ColumnController.html":{}}}],["column.addchild(card",{"_index":4760,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["column.body.params.ts",{"_index":14565,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:11",{"_index":14567,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:19",{"_index":14568,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.children.map((card",{"_index":4899,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.constructor.name",{"_index":3677,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["column.createdat",{"_index":4903,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.do",{"_index":2877,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["column.id",{"_index":4897,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.response",{"_index":3665,"title":{},"body":{"classes/BoardResponse.html":{}}}],["column.title",{"_index":4898,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.updatedat",{"_index":4902,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["columnboard",{"_index":2861,"title":{"classes/ColumnBoard.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardResponseMapper.html":{},"injectables/BoardUc.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoomsService.html":{}}}],["columnboard.addchild(column",{"_index":4754,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["columnboard.context",{"_index":16559,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.id",{"_index":16555,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.title",{"_index":16556,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboardboardelement",{"_index":2696,"title":{"entities/ColumnboardBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardRepo.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardelements",{"_index":3655,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["columnboardfactory",{"_index":4704,"title":{"classes/ColumnBoardFactory.html":{}},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardfactory.define(columnboard",{"_index":4710,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardid",{"_index":2777,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardids",{"_index":4837,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardids.length",{"_index":17015,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardids.map((id",{"_index":4845,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardids.push(columnboard.id",{"_index":17017,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardinfo",{"_index":16915,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.columnboardid",{"_index":16918,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.createdat",{"_index":16921,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.id",{"_index":16917,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.published",{"_index":16920,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.title",{"_index":16919,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.updatedat",{"_index":16922,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardmetadata",{"_index":7949,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardnode",{"_index":3171,"title":{"entities/ColumnBoardNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["columnboardnodefactory",{"_index":3496,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodefactory.build",{"_index":3501,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodeprops",{"_index":4717,"title":{"interfaces/ColumnBoardNodeProps.html":{}},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["columnboardprops",{"_index":4703,"title":{"interfaces/ColumnBoardProps.html":{}},"body":{"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{}}}],["columnboardservice",{"_index":3536,"title":{"injectables/ColumnBoardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardtarget",{"_index":2698,"title":{"entities/ColumnBoardTarget.html":{}},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{}}}],["columnboardtarget.columnboardid",{"_index":7996,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.createdat",{"_index":7998,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.id",{"_index":7995,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.published",{"_index":8000,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.title",{"_index":7997,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.updatedat",{"_index":7999,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtargetprops",{"_index":4822,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["columnboardtargets",{"_index":4844,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardtargetservice",{"_index":4828,"title":{"injectables/ColumnBoardTargetService.html":{}},"body":{"injectables/ColumnBoardTargetService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{}}}],["columncontroller",{"_index":2763,"title":{"controllers/ColumnController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ColumnController.html":{}}}],["columnid",{"_index":3772,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{}}}],["columnnode",{"_index":3168,"title":{"entities/ColumnNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["columnnodefactory",{"_index":3497,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnnodefactory.build",{"_index":3518,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnprops",{"_index":4687,"title":{"interfaces/ColumnProps.html":{}},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["columnresponse",{"_index":2957,"title":{"classes/ColumnResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper",{"_index":2961,"title":{"classes/ColumnResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper.maptoresponse(column",{"_index":2982,"title":{},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["columnresponse})@apiresponse({status",{"_index":2929,"title":{},"body":{"controllers/BoardController.html":{}}}],["columns",{"_index":3224,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/ColumnController.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["columns.map((column",{"_index":3506,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnservice",{"_index":3537,"title":{"injectables/ColumnService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/ColumnService.html":{}}}],["columnurlparams",{"_index":4854,"title":{"classes/ColumnUrlParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{}}}],["colums",{"_index":7346,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["combination",{"_index":16476,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["combinations",{"_index":22944,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["combine",{"_index":22161,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["combined",{"_index":18125,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["combineduri",{"_index":20633,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.pathname",{"_index":20635,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.tostring",{"_index":20636,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combines",{"_index":23128,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["come",{"_index":21538,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["comes",{"_index":18324,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"license.html":{}}}],["coming",{"_index":23045,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["command",{"_index":3457,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["command({command",{"_index":3453,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/KeycloakConsole.html":{},"classes/ServerConsole.html":{}}}],["commander",{"_index":21373,"title":{},"body":{"dependencies.html":{}}}],["commandname",{"_index":13039,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["commandoption",{"_index":11569,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["commandoutput",{"_index":17140,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["commandresponse",{"_index":19437,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["commands",{"_index":11580,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["comment",{"_index":8686,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/UserRepo.html":{}}}],["comments",{"_index":22888,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["commercial",{"_index":21953,"title":{},"body":{"license.html":{}}}],["commit",{"_index":21641,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["commitment",{"_index":22103,"title":{},"body":{"license.html":{}}}],["commits",{"_index":22885,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["committing",{"_index":21636,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["common",{"_index":4969,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/ContextExternalToolModule.html":{},"injectables/CourseExportUc.html":{},"classes/CourseQueryParams.html":{},"modules/ExternalToolModule.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["common/domain",{"_index":194,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolVersionService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["common/entity",{"_index":5685,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["common/enum",{"_index":198,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["common/interface",{"_index":5615,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"controllers/ToolController.html":{}}}],["common/service",{"_index":5984,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceUc.html":{}}}],["common/uc/tool",{"_index":5954,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["commoncartridgeexportservice",{"_index":4929,"title":{"injectables/CommonCartridgeExportService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomModule.html":{}}}],["commoncartridgefilebuilder",{"_index":4944,"title":{"classes/CommonCartridgeFileBuilder.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeintendedusetype",{"_index":4967,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeintendedusetype.assignment",{"_index":5034,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeintendedusetype.unspecified",{"_index":5010,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeltiresource",{"_index":5101,"title":{"classes/CommonCartridgeLtiResource.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeltiresource(props",{"_index":5238,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgemanifestelement",{"_index":5064,"title":{"classes/CommonCartridgeManifestElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgemetadataelement",{"_index":5166,"title":{"classes/CommonCartridgeMetadataElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["commoncartridgemetadataelement(this.metadataprops).transform",{"_index":5183,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeorganizationbuilder",{"_index":5070,"title":{"classes/CommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationbuilder(props",{"_index":5081,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement",{"_index":5068,"title":{"classes/CommonCartridgeOrganizationItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement(this.props",{"_index":5071,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationwrapperelement",{"_index":5167,"title":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["commoncartridgeorganizationwrapperelement(this.organizations).transform",{"_index":5184,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeresourceitemelement",{"_index":5066,"title":{"classes/CommonCartridgeResourceItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(props",{"_index":5076,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(resourceprops",{"_index":5073,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourcetype",{"_index":4968,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.lti",{"_index":5112,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeresourcetype.web_content",{"_index":5008,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeresourcetype.web_link_v1",{"_index":5017,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.web_link_v3",{"_index":5016,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcewrapperelement",{"_index":5169,"title":{"classes/CommonCartridgeResourceWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["commoncartridgeresourcewrapperelement(this.resources).transform",{"_index":5185,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeversion",{"_index":4946,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CourseExportUc.html":{},"classes/CourseQueryParams.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeversion.v_1_1_0",{"_index":5033,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeversion.v_1_3_0",{"_index":5015,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgewebcontentresource",{"_index":5232,"title":{"classes/CommonCartridgeWebContentResource.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgewebcontentresource(props",{"_index":5239,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeweblinkresourceelement",{"_index":5234,"title":{"classes/CommonCartridgeWebLinkResourceElement.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeweblinkresourceelement(props",{"_index":5240,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commonobject",{"_index":5113,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$.xmlns",{"_index":5134,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:blti",{"_index":5136,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticm",{"_index":5138,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticp",{"_index":5140,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xsi:schemalocation",{"_index":5142,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonprops",{"_index":5001,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commontags",{"_index":5257,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commontoolmodule",{"_index":5267,"title":{"modules/CommonToolModule.html":{}},"body":{"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["commontoolservice",{"_index":5272,"title":{"injectables/CommonToolService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceUc.html":{}}}],["commontoolvalidationservice",{"_index":5273,"title":{"injectables/CommonToolValidationService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["commontoolvalidationservice.typecheckers[type",{"_index":5335,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["communicate",{"_index":23112,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["communication",{"_index":21802,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["community",{"_index":21668,"title":{},"body":{"license.html":{}}}],["comparator",{"_index":22594,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["comparealphabetic",{"_index":2727,"title":{},"body":{"entities/Board.html":{}}}],["compared",{"_index":22897,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["compareparameters",{"_index":9265,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["compareparameters(oldparams",{"_index":9273,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["comparepassword",{"_index":92,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["compass",{"_index":22849,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["compatible",{"_index":22326,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["compilation",{"_index":21882,"title":{},"body":{"license.html":{}}}],["compilation's",{"_index":21889,"title":{},"body":{"license.html":{}}}],["compilations",{"_index":22134,"title":{},"body":{"license.html":{}}}],["compile",{"_index":19435,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["compiler",{"_index":21791,"title":{},"body":{"license.html":{}}}],["complete",{"_index":14497,"title":{},"body":{"classes/MigrationMayNotBeCompleted.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["completed",{"_index":3247,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/BoardManagementConsole.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/ElementUc.html":{},"classes/MigrationMayBeCompleted.html":{},"interfaces/Options.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["completed(value",{"_index":18290,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["completed.loggable.ts",{"_index":14490,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:3",{"_index":14492,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:6",{"_index":14493,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completion",{"_index":22803,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["completly",{"_index":23097,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["complex",{"_index":13413,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["complexity",{"_index":23013,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["compliance",{"_index":22063,"title":{},"body":{"license.html":{}}}],["comply",{"_index":21817,"title":{},"body":{"license.html":{}}}],["compodoc",{"_index":22416,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["component",{"_index":5566,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["component.constructor.name",{"_index":5592,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["components",{"_index":21619,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["componentstatus",{"_index":13826,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["componenttype",{"_index":4965,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["componenttype.etherpad",{"_index":5018,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["componenttype.geogebra",{"_index":5013,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["componenttype.internal",{"_index":11321,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["componenttype.lernstore",{"_index":11322,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["componenttype.nexboard",{"_index":11323,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["componenttype.text",{"_index":5007,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["composedname",{"_index":6274,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["composite",{"_index":2846,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["composite.do",{"_index":3995,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["composite.do.ts",{"_index":2793,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["composite.do.ts:11",{"_index":2822,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:15",{"_index":2824,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:19",{"_index":2810,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:33",{"_index":2815,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:35",{"_index":2817,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:39",{"_index":2813,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:45",{"_index":2803,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:47",{"_index":2807,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:7",{"_index":2820,"title":{},"body":{"classes/BoardComposite.html":{}}}],["compression",{"_index":21375,"title":{},"body":{"dependencies.html":{}}}],["computer",{"_index":21748,"title":{},"body":{"license.html":{}}}],["concatenating",{"_index":14892,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["concept",{"_index":22550,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concepts",{"_index":22548,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concern",{"_index":22482,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["concerns",{"_index":22168,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["concrete",{"_index":22614,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concurrently",{"_index":21377,"title":{},"body":{"dependencies.html":{}}}],["cond",{"_index":19082,"title":{},"body":{"injectables/TaskRule.html":{}}}],["condition",{"_index":22703,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["conditioned",{"_index":22128,"title":{},"body":{"license.html":{}}}],["conditions",{"_index":21721,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["conf",{"_index":2343,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference",{"_index":7869,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"interfaces/IVideoConferenceSettings.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["conference.'})@apiresponse({status",{"_index":20881,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference.controller.ts",{"_index":20875,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:106",{"_index":20888,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:133",{"_index":20884,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:45",{"_index":20899,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:78",{"_index":20894,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.do.ts",{"_index":20991,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:19",{"_index":20994,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:21",{"_index":20995,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:23",{"_index":20992,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:5",{"_index":21152,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:7",{"_index":21153,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:9",{"_index":21151,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.entity",{"_index":21172,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.entity.ts",{"_index":20824,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:10",{"_index":21149,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:12",{"_index":21150,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:14",{"_index":21148,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:31",{"_index":20827,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:34",{"_index":20828,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:37",{"_index":20826,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.mapper",{"_index":20902,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["conference.mapper.ts",{"_index":21107,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:31",{"_index":21113,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:38",{"_index":21115,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:44",{"_index":21119,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:48",{"_index":21117,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.module",{"_index":20862,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["conference.module.ts",{"_index":21140,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo",{"_index":21143,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo.ts",{"_index":21165,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:20",{"_index":21170,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:28",{"_index":21168,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.service.ts",{"_index":21211,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:113",{"_index":21246,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:130",{"_index":21252,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:144",{"_index":21248,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:148",{"_index":21239,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:175",{"_index":21241,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:189",{"_index":21237,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:198",{"_index":21231,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:223",{"_index":21250,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:34",{"_index":21225,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:46",{"_index":21254,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:50",{"_index":21256,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:54",{"_index":21229,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:61",{"_index":21244,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:87",{"_index":21235,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:95",{"_index":21233,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.ts",{"_index":20843,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:10",{"_index":20844,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:6",{"_index":20847,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:8",{"_index":20845,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference/bbb/bbb",{"_index":11094,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["conference/bbb/bbb.service.ts",{"_index":2281,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:107",{"_index":2314,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:136",{"_index":2305,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:14",{"_index":2292,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:150",{"_index":2323,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:167",{"_index":2316,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:21",{"_index":2327,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:25",{"_index":2329,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:29",{"_index":2331,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:39",{"_index":2295,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:61",{"_index":2312,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:72",{"_index":2320,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:84",{"_index":2302,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/builder/bbb",{"_index":2153,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["conference/bbb/builder/builder.ts",{"_index":3863,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:2",{"_index":3865,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:8",{"_index":3867,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/request/bbb",{"_index":2091,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["conference/bbb/response/bbb",{"_index":2101,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["conference/bbb/response/bbb.response.ts",{"_index":2279,"title":{},"body":{"interfaces/BBBResponse.html":{}}}],["conference/controller/dto/request/video",{"_index":20928,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["conference/controller/dto/response/video",{"_index":7868,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["conference/controller/video",{"_index":20874,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference/error/error",{"_index":21043,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/error/invalid",{"_index":12584,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["conference/interface/video",{"_index":12120,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["conference/mapper/vc",{"_index":21190,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference/mapper/video",{"_index":21106,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference/service/video",{"_index":21210,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference/uc/dto/scope",{"_index":11742,"title":{},"body":{"interfaces/IScopeInfo.html":{},"classes/ScopeRef.html":{}}}],["conference/uc/dto/video",{"_index":20842,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["conference/uc/video",{"_index":20946,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/video",{"_index":17786,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["conferences",{"_index":21146,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conferencescope",{"_index":21243,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["config",{"_index":154,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"classes/IdentityManagementOauthService.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapService.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"classes/SystemFilterParams.html":{},"modules/ToolConfigModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["config.'})@isoptional()@isboolean()@stringtoboolean",{"_index":18600,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["config.allowmodstounmuteusers",{"_index":2149,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.attendeepw",{"_index":2147,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.builder.ts",{"_index":2154,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:10",{"_index":2237,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:11",{"_index":2170,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:15",{"_index":2239,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:16",{"_index":2164,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:21",{"_index":2168,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:5",{"_index":2235,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:6",{"_index":2166,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.connectionname",{"_index":17192,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["config.do",{"_index":2608,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts",{"_index":2602,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:11",{"_index":14182,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:13",{"_index":14183,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:15",{"_index":14180,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:17",{"_index":15169,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:4",{"_index":2604,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{}}}],["config.do.ts:5",{"_index":14181,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:6",{"_index":8341,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["config.do.ts:7",{"_index":14185,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:9",{"_index":14184,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.dto",{"_index":18565,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["config.dto.ts",{"_index":15290,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:1",{"_index":15858,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:10",{"_index":15296,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:12",{"_index":15304,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:14",{"_index":15293,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:16",{"_index":15302,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:18",{"_index":15303,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:2",{"_index":15294,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:20",{"_index":15300,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:22",{"_index":15299,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:24",{"_index":15298,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:26",{"_index":15292,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:28",{"_index":15860,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:30",{"_index":15859,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:4",{"_index":15295,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:6",{"_index":15297,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:8",{"_index":15301,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.entity",{"_index":2619,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts",{"_index":2613,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:10",{"_index":8346,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:11",{"_index":15187,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:12",{"_index":14206,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:15",{"_index":14205,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:18",{"_index":14203,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:21",{"_index":14204,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:24",{"_index":14201,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:6",{"_index":2615,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["config.entity.ts:7",{"_index":8347,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:8",{"_index":15188,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:9",{"_index":14202,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.frontchannellogouturi",{"_index":9162,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.fullname",{"_index":2221,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guest",{"_index":2226,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guestpolicy",{"_index":2143,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.json",{"_index":22922,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["config.key",{"_index":14235,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.launch_presentation_locale",{"_index":14242,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.logouturl",{"_index":2139,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.lti_message_type",{"_index":14237,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.meetingid",{"_index":2099,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"injectables/BBBService.html":{}}}],["config.moderatorpw",{"_index":2145,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.module",{"_index":8637,"title":{},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{}}}],["config.module.ts",{"_index":19516,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["config.name",{"_index":2137,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.params",{"_index":2631,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["config.params.ts",{"_index":2625,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:4",{"_index":8344,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:6",{"_index":8343,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.privacy_permission",{"_index":14244,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.redirect",{"_index":2228,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.redirecturis",{"_index":9160,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.resource_link_id",{"_index":14239,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.response",{"_index":2640,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["config.response.ts",{"_index":2635,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:10",{"_index":2637,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["config.response.ts:13",{"_index":14209,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:16",{"_index":14212,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:19",{"_index":14210,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:22",{"_index":14211,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:23",{"_index":15329,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:25",{"_index":14208,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:28",{"_index":15192,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:30",{"_index":15324,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:37",{"_index":15332,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:4",{"_index":8350,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:44",{"_index":15322,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:51",{"_index":15330,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:58",{"_index":15331,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:6",{"_index":8349,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:65",{"_index":15328,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:72",{"_index":15327,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:79",{"_index":15326,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:86",{"_index":15321,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:9",{"_index":15323,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.role",{"_index":2223,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.scope",{"_index":9156,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.secret",{"_index":14236,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.tokenendpointauthmethod",{"_index":9158,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.ts",{"_index":11092,"title":{},"body":{"interfaces/IAccountConfig.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserConfig.html":{},"classes/KeycloakAdministration.html":{},"classes/KeycloakConfiguration.html":{},"classes/ToolConfiguration.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:12",{"_index":20873,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:14",{"_index":19518,"title":{},"body":{"classes/ToolConfiguration.html":{}}}],["config.ts:4",{"_index":12820,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["config.ts:5",{"_index":12747,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["config.ts:6",{"_index":20870,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.type",{"_index":8339,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.userid",{"_index":2224,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.welcome",{"_index":2141,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config/development.json",{"_index":11420,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config/test.json",{"_index":11422,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config['meta_bbb",{"_index":2151,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["configbuilder",{"_index":20978,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withguestpolicy(guestpolicy.ask_moderator",{"_index":20984,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withmuteonstart(true",{"_index":20986,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configmodule",{"_index":10253,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(config",{"_index":10265,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(serverconfig",{"_index":14417,"title":{},"body":{"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configs",{"_index":12975,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/S3ClientModule.html":{}}}],["configs.flatmap((config",{"_index":17191,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["configservice",{"_index":789,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AuthenticationService.html":{},"controllers/CourseController.html":{},"modules/EncryptionModule.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICollectionFilePath.html":{},"modules/InterceptorModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"miscellaneous/functions.html":{}}}],["configservice.get('feature_identity_management_login_enabled",{"_index":835,"title":{},"body":{"modules/AccountModule.html":{}}}],["configservice.get('incoming_request_timeout",{"_index":12575,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["configservice.get('nest_log_level",{"_index":14050,"title":{},"body":{"modules/LoggerModule.html":{}}}],["configservice.get(aeskey",{"_index":8115,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["configtoupdate",{"_index":9211,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["configtype",{"_index":19742,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["configuration",{"_index":2171,"title":{"additional-documentation/nestjs-application/configuration.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"injectables/CourseCopyUC.html":{},"classes/DtoCreator.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"interfaces/IToolFeatures.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/TaskCopyUC.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["configuration.console",{"_index":12833,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.console.ts",{"_index":11567,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:109",{"_index":13034,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:144",{"_index":13037,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:160",{"_index":13038,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:189",{"_index":13036,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:19",{"_index":13030,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:28",{"_index":13031,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:47",{"_index":13032,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:65",{"_index":13033,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:87",{"_index":13040,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.controller",{"_index":12840,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.controller.ts",{"_index":13152,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:110",{"_index":19536,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:19",{"_index":13156,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration.controller.ts:39",{"_index":19530,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:61",{"_index":19526,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:87",{"_index":19540,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.externaltoolid",{"_index":5652,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.get",{"_index":11758,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('antivirus_exchange",{"_index":10269,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('antivirus_routing_key",{"_index":10270,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('calendar_uri",{"_index":3971,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('column_board_feedback_link",{"_index":4796,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('column_board_help_link",{"_index":4780,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('cookie__expires_seconds",{"_index":15785,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__http_only",{"_index":15778,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__same_site",{"_index":15780,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__secure",{"_index":15784,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('ctl_tools__external_tool_max_logo_size_in_bytes",{"_index":12088,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('enable_file_security_check",{"_index":10267,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('etherpad__pad_uri",{"_index":13796,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["configuration.get('feature_column_board_enabled",{"_index":7969,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{}}}],["configuration.get('feature_copy_service_enabled",{"_index":6587,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["configuration.get('feature_course_share_new",{"_index":18099,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_ctl_context_configuration_enabled",{"_index":12087,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_ctl_tools_tab_enabled",{"_index":12085,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_etherpad_enabled",{"_index":13778,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["configuration.get('feature_fwu_content_enabled",{"_index":10400,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["configuration.get('feature_identity_management_enabled",{"_index":11760,"title":{},"body":{"interfaces/IServerConfig.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["configuration.get('feature_identity_management_login_enabled",{"_index":11762,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_identity_management_store_enabled",{"_index":11761,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_imscc_course_export_enabled",{"_index":11759,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_lesson_share",{"_index":18101,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_lti_tools_tab_enabled",{"_index":12086,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_nexboard_enabled",{"_index":13780,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["configuration.get('feature_prometheus_metrics_enabled",{"_index":16235,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('feature_sanis_group_provisioning_enabled",{"_index":16001,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["configuration.get('feature_task_share",{"_index":18102,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_videoconference_enabled",{"_index":20871,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('file_security_check_max_file_size",{"_index":11415,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__exchange",{"_index":11361,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["configuration.get('files_storage__incoming_request_timeout",{"_index":11411,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__max_file_size",{"_index":11414,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_access_key_id",{"_index":11426,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_bucket",{"_index":11425,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_endpoint",{"_index":11423,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_region",{"_index":11424,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_secret_access_key",{"_index":11427,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__service_base_url",{"_index":10268,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('host",{"_index":4809,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/HydraSsoService.html":{},"injectables/IdTokenService.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('hydra_public_uri",{"_index":10943,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["configuration.get('hydra_uri",{"_index":10893,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["configuration.get('i18n__available_languages",{"_index":11754,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('identity_management__admin_clientid",{"_index":12746,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_password",{"_index":12745,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_user",{"_index":12744,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__clientid",{"_index":12743,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__tenant",{"_index":12742,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__uri",{"_index":12741,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('incoming_request_timeout_api",{"_index":11752,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('incoming_request_timeout_copy_api",{"_index":11413,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('login_block_time",{"_index":11757,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('mail_send_exchange",{"_index":16484,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('mail_send_routing_key",{"_index":17793,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('migration_end_grace_period_ms",{"_index":20453,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["configuration.get('nest_log_level",{"_index":11417,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('nextcloud_scopes",{"_index":11085,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["configuration.get('nextcloud_sociallogin_oidc_internal_name",{"_index":4566,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["configuration.get('node_env",{"_index":11756,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_default_metrics",{"_index":16238,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_metrics_route_metrics",{"_index":16239,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_port",{"_index":16237,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_route",{"_index":16236,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('public_backend_url",{"_index":12089,"title":{},"body":{"interfaces/IToolFeatures.html":{},"injectables/OAuthService.html":{},"classes/ToolConfiguration.html":{},"injectables/UserMigrationService.html":{}}}],["configuration.get('rabbitmq_uri",{"_index":16485,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('redis_uri",{"_index":3918,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["configuration.get('request_option__timeout_ms",{"_index":3973,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('rocket_chat_admin_id",{"_index":17796,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_password",{"_index":17799,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_token",{"_index":17797,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_user",{"_index":17798,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_uri",{"_index":17795,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('s3_key",{"_index":18177,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["configuration.get('sc_domain",{"_index":2182,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('sc_theme",{"_index":4807,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('session__expires_seconds",{"_index":17802,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__http_only",{"_index":17821,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__name",{"_index":17815,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__proxy",{"_index":17818,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__same_site",{"_index":17820,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secret",{"_index":17811,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secure",{"_index":17819,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('videoconference_default_presentation",{"_index":20869,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_host",{"_index":20867,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_salt",{"_index":20868,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get(placeholder",{"_index":11262,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.has('column_board_feedback_link",{"_index":4794,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('column_board_help_link",{"_index":4778,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('redis_uri",{"_index":3901,"title":{},"body":{"injectables/CacheService.html":{},"modules/RedisModule.html":{}}}],["configuration.has('session__name",{"_index":17814,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has('session__proxy",{"_index":17817,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has(placeholder",{"_index":11261,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.logourl",{"_index":5657,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.mapper",{"_index":19544,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.mapper.ts",{"_index":19561,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:12",{"_index":19575,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:28",{"_index":19573,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:41",{"_index":19570,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:60",{"_index":19567,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.module",{"_index":14410,"title":{},"body":{"modules/ManagementModule.html":{}}}],["configuration.module.ts",{"_index":12830,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.name",{"_index":5655,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.parameters",{"_index":5658,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.schoolexternaltoolid",{"_index":5654,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.service",{"_index":12837,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.service.ts",{"_index":8353,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:108",{"_index":12865,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:12",{"_index":8360,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:128",{"_index":12866,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:15",{"_index":8373,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:155",{"_index":12867,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:167",{"_index":12862,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:191",{"_index":12884,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:214",{"_index":12870,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:224",{"_index":12888,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:235",{"_index":12875,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:24",{"_index":8369,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:240",{"_index":12890,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:254",{"_index":12872,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:26",{"_index":12859,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:262",{"_index":12879,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:277",{"_index":12876,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:34",{"_index":12864,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:46",{"_index":8364,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:77",{"_index":8375,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.uc",{"_index":11572,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["configuration.uc.ts",{"_index":8401,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:116",{"_index":8422,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:138",{"_index":8420,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:16",{"_index":13014,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:167",{"_index":8414,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:17",{"_index":8410,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:179",{"_index":8412,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:20",{"_index":13015,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:24",{"_index":13018,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:28",{"_index":8418,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:32",{"_index":13016,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:64",{"_index":8416,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:8",{"_index":13013,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.version",{"_index":5660,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration/console/keycloak",{"_index":11566,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration/controller/keycloak",{"_index":13151,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration/interface/json",{"_index":11501,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["configuration/interface/keycloak",{"_index":11507,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["configuration/keycloak",{"_index":12816,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{}}}],["configuration/mapper/identity",{"_index":15883,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["configuration/service/keycloak",{"_index":12843,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["configuration/uc/keycloak",{"_index":13011,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configurations",{"_index":11418,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["configure",{"_index":11610,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["configure(consumer",{"_index":17765,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configure(options",{"_index":11611,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configureaction",{"_index":12903,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.action",{"_index":12957,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.create",{"_index":12958,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.delete",{"_index":12962,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.update",{"_index":12960,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureactions",{"_index":12955,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurebrokerflows",{"_index":12845,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureclient",{"_index":12846,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configured",{"_index":14524,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["configureidentityproviders",{"_index":12847,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurerealm",{"_index":12848,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configures",{"_index":6326,"title":{},"body":{"modules/CoreModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["confirmed",{"_index":16091,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["confirmpassword",{"_index":16089,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["conflict",{"_index":6544,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["conflicts",{"_index":22547,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["conjunction",{"_index":22929,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["connect",{"_index":12948,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/LdapService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connect(system",{"_index":13291,"title":{},"body":{"injectables/LdapService.html":{}}}],["connected",{"_index":17535,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["connecting",{"_index":22346,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["connection",{"_index":11592,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connection.connected",{"_index":13298,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error",{"_index":13295,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error.ts",{"_index":13281,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.error.ts:4",{"_index":13283,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.managedconnection.close",{"_index":16490,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["connection.unbind",{"_index":13299,"title":{},"body":{"injectables/LdapService.html":{}}}],["connectionname",{"_index":6164,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/S3Config-1.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connections",{"_index":16487,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connectredis",{"_index":17787,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis(session",{"_index":17805,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis.redisstore",{"_index":17803,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connects",{"_index":13157,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["consent",{"_index":339,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consent.params.ts",{"_index":16716,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.params.ts:7",{"_index":16717,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.response",{"_index":16292,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consent_request",{"_index":16291,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consentflowuc",{"_index":15525,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequest",{"_index":15558,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequestbody",{"_index":5370,"title":{"classes/ConsentRequestBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["consentresponse",{"_index":5421,"title":{"classes/ConsentResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consentresponse.client?.client_id",{"_index":15466,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentresponse.requested_scope",{"_index":15465,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentsessionresponse",{"_index":5465,"title":{"classes/ConsentSessionResponse.html":{}},"body":{"classes/ConsentSessionResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consequence",{"_index":22051,"title":{},"body":{"license.html":{}}}],["consequential",{"_index":22193,"title":{},"body":{"license.html":{}}}],["considerations",{"_index":22534,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["considered",{"_index":22019,"title":{},"body":{"license.html":{}}}],["consistent",{"_index":2184,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/GlobalErrorFilter.html":{},"license.html":{}}}],["console",{"_index":3458,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["console.info('info",{"_index":5489,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["console/board",{"_index":14411,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/database",{"_index":14413,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/keycloak",{"_index":12832,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["consolelogger",{"_index":13419,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["consolemodule",{"_index":17747,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["consolewriter",{"_index":3451,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{}}}],["consolewritermodule",{"_index":3533,"title":{"modules/ConsoleWriterModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["consolewriterservice",{"_index":3448,"title":{"injectables/ConsoleWriterService.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{}}}],["conspicuously",{"_index":21859,"title":{},"body":{"license.html":{}}}],["const",{"_index":217,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextTypeMapper.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"interfaces/CreateJwtParams.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateService.html":{},"classes/FileDtoBuilder.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveSaveVisitor.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInfoMapper.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["constants",{"_index":1650,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{},"injectables/S3ClientAdapter.html":{}}}],["constitutes",{"_index":21811,"title":{},"body":{"license.html":{}}}],["constraint",{"_index":16479,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["constructor",{"_index":127,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ColumnResponse.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"injectables/CopyFilesService.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorResponse.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateService.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/LoginUc.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/MaterialFactory.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichText.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemResponse.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoResponse.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["constructor(@inject(defaultencryptionservice",{"_index":15890,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(@inject(mikroorm",{"_index":14546,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["constructor(@inject(request",{"_index":9440,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["constructor(@inject(toolfeatures",{"_index":8376,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["constructor(@inject(winston_module_provider",{"_index":8193,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["constructor(_em",{"_index":2394,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["constructor(accountdb",{"_index":1050,"title":{},"body":{"injectables/AccountService.html":{}}}],["constructor(accountrepo",{"_index":1163,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["constructor(adapter",{"_index":4620,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["constructor(amqpconnection",{"_index":1428,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{}}}],["constructor(apivalidationerror",{"_index":1502,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["constructor(app",{"_index":1728,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["constructor(authenticationservice",{"_index":13994,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["constructor(authorisation",{"_index":13830,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["constructor(authorisationservice",{"_index":16862,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["constructor(authorization",{"_index":6578,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["constructor(authorizationhelper",{"_index":3353,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["constructor(authorizationservice",{"_index":3767,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["constructor(authservice",{"_index":14152,"title":{},"body":{"injectables/LoginUc.html":{}}}],["constructor(bbbservice",{"_index":20952,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["constructor(bbbsettings",{"_index":2289,"title":{},"body":{"injectables/BBBService.html":{}}}],["constructor(boarddorepo",{"_index":3120,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["constructor(cachemanager",{"_index":12715,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["constructor(classesrepo",{"_index":4398,"title":{},"body":{"injectables/ClassService.html":{}}}],["constructor(client",{"_index":17091,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["constructor(clientid",{"_index":5469,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/IdTokenCreationLoggableException.html":{}}}],["constructor(columnboardservice",{"_index":4833,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["constructor(config",{"_index":2095,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["constructor(configuration",{"_index":5642,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["constructor(consentresponse",{"_index":5429,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["constructor(console",{"_index":13029,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["constructor(consolewriter",{"_index":3447,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ServerConsole.html":{}}}],["constructor(content",{"_index":5561,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["constructor(contextexternaltool",{"_index":14520,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["constructor(contextexternaltoolrepo",{"_index":5629,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{}}}],["constructor(contextexternaltoolservice",{"_index":5975,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["constructor(copyhelperservice",{"_index":6192,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{}}}],["constructor(county",{"_index":6345,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["constructor(courseexportservice",{"_index":6591,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["constructor(courserepo",{"_index":6521,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{},"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["constructor(courserule",{"_index":17052,"title":{},"body":{"injectables/RuleManager.html":{}}}],["constructor(courseservice",{"_index":4939,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["constructor(customkey",{"_index":18169,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["constructor(dashboardrepo",{"_index":7618,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["constructor(data",{"_index":1009,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Page.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["constructor(defaultencryptionservice",{"_index":15886,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(deletefilesuc",{"_index":7773,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["constructor(descendants",{"_index":3197,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["constructor(descriptionoroptions",{"_index":13249,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["constructor(details",{"_index":13282,"title":{},"body":{"classes/LdapConnectionError.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["constructor(domainobject",{"_index":7039,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(dto",{"_index":3929,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["constructor(e",{"_index":1297,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["constructor(em",{"_index":3280,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/ClassesRepo.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["constructor(entityclass",{"_index":2528,"title":{},"body":{"classes/BaseFactory.html":{}}}],["constructor(entityname",{"_index":8121,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["constructor(error",{"_index":8130,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["constructor(externaltoolid",{"_index":8545,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["constructor(externaltoollogo",{"_index":8522,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["constructor(externaltoolrepo",{"_index":9080,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["constructor(externaltoolservice",{"_index":8408,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolReferenceUc.html":{}}}],["constructor(externaluserid",{"_index":20671,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["constructor(feathersauthprovider",{"_index":9383,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["constructor(feathersserviceprovider",{"_index":8250,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/NexboardService.html":{}}}],["constructor(federalstaterepo",{"_index":9469,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["constructor(field",{"_index":20818,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(file",{"_index":9479,"title":{},"body":{"classes/FileDto.html":{}}}],["constructor(filerecord",{"_index":6087,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["constructor(filesrepo",{"_index":7801,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["constructor(filesstorageservice",{"_index":10169,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["constructor(group",{"_index":17531,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["constructor(grouprepo",{"_index":10711,"title":{},"body":{"injectables/GroupService.html":{}}}],["constructor(groupuser",{"_index":20189,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["constructor(httpservice",{"_index":3962,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthAdapterService.html":{}}}],["constructor(id",{"_index":2381,"title":{},"body":{"classes/BaseDO.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/ScopeRef.html":{}}}],["constructor(idmservice",{"_index":787,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["constructor(info",{"_index":1557,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["constructor(init",{"_index":3864,"title":{},"body":{"classes/Builder.html":{}}}],["constructor(inusermigration",{"_index":14491,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["constructor(jwtservice",{"_index":1788,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["constructor(jwtvalidationadapter",{"_index":12688,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["constructor(kcadmin",{"_index":12857,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["constructor(kcadminclient",{"_index":12775,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["constructor(kcadminservice",{"_index":13044,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["constructor(key",{"_index":7032,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["constructor(ldapconfig",{"_index":11876,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["constructor(lessonrepo",{"_index":13942,"title":{},"body":{"injectables/LessonService.html":{}}}],["constructor(logger",{"_index":2993,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ErrorLogger.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"injectables/LdapService.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"injectables/NextcloudStrategy.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["constructor(loginresponse",{"_index":14128,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["constructor(logourl",{"_index":8531,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["constructor(logouturl",{"_index":12587,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["constructor(ltirepo",{"_index":11006,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["constructor(ltitoolrepo",{"_index":14386,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["constructor(ltitoolservice",{"_index":15578,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["constructor(message",{"_index":1884,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/ForbiddenOperationError.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/ValidationError.html":{}}}],["constructor(newsrepo",{"_index":14797,"title":{},"body":{"injectables/NewsUc.html":{}}}],["constructor(oauthconfig",{"_index":11853,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["constructor(oauthconfigdto",{"_index":15291,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["constructor(oauthconfigresponse",{"_index":15320,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["constructor(oauthproviderloginflowservice",{"_index":12142,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["constructor(oauthproviderservice",{"_index":15421,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["constructor(oauthservice",{"_index":10932,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["constructor(officialschoolnumber",{"_index":17669,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["constructor(oidcconfig",{"_index":11920,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["constructor(oidcconfigdto",{"_index":15857,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["constructor(oidcprovisioningservice",{"_index":15990,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["constructor(operation",{"_index":14640,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["constructor(operator",{"_index":17709,"title":{},"body":{"classes/Scope.html":{}}}],["constructor(options",{"_index":5044,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(organizationelements",{"_index":5216,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["constructor(parametertype",{"_index":16067,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["constructor(params",{"_index":13485,"title":{},"body":{"classes/LegacySchoolDo.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["constructor(payload",{"_index":17967,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["constructor(private",{"_index":215,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/BaseFactory.html":{},"controllers/BoardController.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"controllers/DashboardController.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"classes/ErrorLoggable.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateService.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"classes/IdTokenCreationLoggableException.html":{},"controllers/ImportUserController.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/LdapService.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRule.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/LtiToolService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"controllers/NewsController.html":{},"injectables/NexboardService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"interfaces/Options.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearService.html":{},"classes/ServerConsole.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRule.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"controllers/UserController.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"controllers/UserMigrationController.html":{},"injectables/UserRule.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["constructor(props",{"_index":405,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthorizableObject.html":{},"classes/AxiosResponseImp.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextRef.html":{},"classes/CookiesDto.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DomainObject.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalUserDto.html":{},"entities/FederalState.html":{},"classes/FileDto-1.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/GridElement.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OidcConfig.html":{},"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{},"classes/PropertyData.html":{},"classes/ProvisioningSystemDto.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"classes/ScanResultDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["constructor(protected",{"_index":2435,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"interfaces/IDashboardRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["constructor(provisioningdto",{"_index":16298,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["constructor(pseudonymrepo",{"_index":16398,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["constructor(readonly",{"_index":1489,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(redirectreponse",{"_index":16586,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["constructor(relation",{"_index":10699,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["constructor(repo",{"_index":6673,"title":{},"body":{"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/FilesService.html":{}}}],["constructor(req",{"_index":16619,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(request",{"_index":9451,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["constructor(requesttimeout",{"_index":19456,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["constructor(res",{"_index":16639,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(resourceelements",{"_index":5245,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["constructor(resourcename",{"_index":14974,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["constructor(resp",{"_index":7873,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["constructor(response",{"_index":5833,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/OAuthProcessDto.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["constructor(responsemapper",{"_index":17239,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["constructor(rolerepo",{"_index":16841,"title":{},"body":{"injectables/RoleService.html":{}}}],["constructor(roleservice",{"_index":16858,"title":{},"body":{"injectables/RoleUc.html":{}}}],["constructor(rulemanager",{"_index":2018,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["constructor(schoolexternaltoolrepo",{"_index":17465,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["constructor(schoolexternaltoolservice",{"_index":17497,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["constructor(schoolid",{"_index":17673,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["constructor(schoolname",{"_index":17556,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["constructor(schoolrepo",{"_index":13591,"title":{},"body":{"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["constructor(schoolservice",{"_index":128,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["constructor(schoolyearrepo",{"_index":17704,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["constructor(service",{"_index":4662,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["constructor(sharetokenservice",{"_index":18044,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["constructor(state",{"_index":16244,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["constructor(storageclient",{"_index":16139,"title":{},"body":{"injectables/PreviewService.html":{}}}],["constructor(strategy",{"_index":4492,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["constructor(submissionrepo",{"_index":18440,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["constructor(submissionservice",{"_index":18467,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["constructor(successful",{"_index":18487,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["constructor(system",{"_index":16458,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{}}}],["constructor(systemrepo",{"_index":13321,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["constructor(systemresponses",{"_index":16454,"title":{},"body":{"classes/PublicSystemListResponse.html":{}}}],["constructor(systemservice",{"_index":16318,"title":{},"body":{"injectables/ProvisioningService.html":{},"injectables/SystemUc.html":{}}}],["constructor(task",{"_index":11965,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["constructor(taskrepo",{"_index":18826,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["constructor(taskservice",{"_index":16999,"title":{},"body":{"injectables/RoomsService.html":{}}}],["constructor(teamsrepo",{"_index":19331,"title":{},"body":{"injectables/TeamService.html":{}}}],["constructor(timetowait",{"_index":3838,"title":{},"body":{"classes/BruteForceError.html":{}}}],["constructor(tokengenerator",{"_index":18012,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["constructor(toolfeatures",{"_index":8358,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{}}}],["constructor(toollaunchservice",{"_index":19817,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["constructor(toolpermissionhelper",{"_index":5937,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["constructor(toolreference",{"_index":19838,"title":{},"body":{"classes/ToolReference.html":{}}}],["constructor(toolreferenceresponse",{"_index":19855,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["constructor(total",{"_index":16057,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["constructor(type",{"_index":8223,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["constructor(undefined",{"_index":966,"title":{},"body":{"classes/AccountResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BusinessError.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/CopyApiResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/NewsResponse.html":{},"classes/RichText.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TimestampsResponse.html":{},"classes/UserDataResponse.html":{},"classes/UserInfoResponse.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["constructor(user",{"_index":20148,"title":{},"body":{"classes/UserDto.html":{}}}],["constructor(userid",{"_index":10368,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["constructor(userloginmigrationid",{"_index":20227,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["constructor(userloginmigrationservice",{"_index":4447,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["constructor(usermatchschoolid",{"_index":17542,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["constructor(usermigrationdto",{"_index":14475,"title":{},"body":{"classes/MigrationDto.html":{}}}],["constructor(usermigrationservice",{"_index":20484,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["constructor(username",{"_index":19945,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["constructor(userrepo",{"_index":16601,"title":{},"body":{"injectables/ReferenceLoader.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["constructor(userservice",{"_index":14219,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["constructor(validationerrors",{"_index":1476,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["constructor(vcsettings",{"_index":21224,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["construed",{"_index":22138,"title":{},"body":{"license.html":{}}}],["consumer",{"_index":14170,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["consumer.app.ts",{"_index":21465,"title":{},"body":{"miscellaneous/functions.html":{}}}],["consumer.authorize(requestdata",{"_index":14178,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["contact",{"_index":22225,"title":{},"body":{"license.html":{}}}],["contain",{"_index":744,"title":{},"body":{"classes/AccountFactory.html":{},"entities/Board.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["contained",{"_index":4959,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"miscellaneous/functions.html":{}}}],["container",{"_index":2882,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"controllers/BoardSubmissionController.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"injectables/SubmissionItemUc.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["container.'})@apiresponse({status",{"_index":3689,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["container.url.params.ts",{"_index":18235,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["container.url.params.ts:11",{"_index":18237,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["containing",{"_index":15250,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["contains",{"_index":5346,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/FilterImportUserParams.html":{},"classes/ImportUserScope.html":{},"classes/LoginRequestBody.html":{},"injectables/NewsRepo.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["content",{"_index":2344,"title":{},"body":{"injectables/BBBService.html":{},"classes/BoardElementResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"controllers/CourseController.html":{},"entities/CourseNews.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"injectables/FileSystemAdapter.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/MoveContentElementBody.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/OauthAdapterService.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"entities/SchoolNews.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"entities/TeamNews.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["content.board",{"_index":13802,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["content.body.params",{"_index":8066,"title":{},"body":{"controllers/ElementController.html":{}}}],["content.body.params.ts",{"_index":8029,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["content.body.params.ts:13",{"_index":8031,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["content.body.params.ts:19",{"_index":9477,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:28",{"_index":9536,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["content.body.params.ts:34",{"_index":16729,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:38",{"_index":16728,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:47",{"_index":16754,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["content.body.params.ts:53",{"_index":18215,"title":{},"body":{"classes/SubmissionContainerContentBody.html":{}}}],["content.body.params.ts:62",{"_index":18226,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["content.body.params.ts:87",{"_index":19948,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["content.component",{"_index":5006,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.url",{"_index":5019,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.description",{"_index":13800,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["content.dto",{"_index":16027,"title":{},"body":{"injectables/PageContentMapper.html":{},"injectables/UserMigrationService.html":{}}}],["content.dto.ts",{"_index":16012,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:2",{"_index":16016,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:4",{"_index":16015,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.identifier",{"_index":5215,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.mapper.ts",{"_index":16023,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.mapper.ts:7",{"_index":16024,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.numberofdrafttasks",{"_index":7990,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.numberofplannedtasks",{"_index":7992,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.response.ts",{"_index":16045,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:12",{"_index":16046,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:7",{"_index":16050,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.title",{"_index":5005,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"injectables/LessonCopyService.html":{}}}],["content.title}${content.content.text",{"_index":5012,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.url",{"_index":13797,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["content.url.replace(originaltaskid",{"_index":13768,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["content/:contentid/:file",{"_index":10802,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["content_developer",{"_index":6963,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdeveloper",{"_index":6964,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdisposition",{"_index":1563,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["contentelementfactory",{"_index":3540,"title":{"injectables/ContentElementFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["contentelementid",{"_index":5596,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"injectables/ElementUc.html":{}}}],["contentelementresponsefactory",{"_index":4049,"title":{"classes/ContentElementResponseFactory.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{}}}],["contentelementresponsefactory.maptoresponse(element",{"_index":4078,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{}}}],["contentelementservice",{"_index":3538,"title":{"injectables/ContentElementService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["contentelementtype",{"_index":3774,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype'})@isenum(contentelementtype",{"_index":8030,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["contentelementtype.file",{"_index":5504,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.rich_text",{"_index":5506,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.submission_container",{"_index":5508,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementupdatevisitor",{"_index":5546,"title":{"classes/ContentElementUpdateVisitor.html":{}},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{}}}],["contentelementupdatevisitor(content",{"_index":5555,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["contentelementurlparams",{"_index":5593,"title":{"classes/ContentElementUrlParams.html":{}},"body":{"classes/ContentElementUrlParams.html":{},"controllers/ElementController.html":{}}}],["contentid",{"_index":1568,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["contentlength",{"_index":6171,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["contentrange",{"_index":6172,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["contents",{"_index":10432,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"license.html":{}}}],["contents.app.ts",{"_index":21468,"title":{},"body":{"miscellaneous/functions.html":{}}}],["contents.config",{"_index":10427,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["contents.controller",{"_index":10426,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.controller.ts",{"_index":10387,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.controller.ts:25",{"_index":10392,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.map((item",{"_index":13771,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["contents.module.ts",{"_index":10423,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["contents.params",{"_index":10397,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.params.ts",{"_index":10449,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.params.ts:11",{"_index":10455,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.push(element",{"_index":13868,"title":{},"body":{"classes/LessonFactory.html":{}}}],["contents.uc",{"_index":10395,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.uc.ts",{"_index":10435,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:15",{"_index":10439,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:7",{"_index":10438,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents/controller/dto/fwu",{"_index":10448,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents/controller/fwu",{"_index":10386,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents/fwu",{"_index":10422,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents/interface/config.ts",{"_index":17194,"title":{},"body":{"interfaces/S3Config.html":{}}}],["contents/uc/fwu",{"_index":10434,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contentstatus",{"_index":13713,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["contenttype",{"_index":5562,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"interfaces/CopyFiles.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["contenttypedetector",{"_index":8574,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["contenttypedetector[imagesignature",{"_index":8614,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["context",{"_index":199,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationService.html":{},"controllers/BoardController.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ForbiddenLoggableException.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRule.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentResponse.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolUc.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["context'})@apiokresponse({description",{"_index":19525,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolController.html":{}}}],["context(context",{"_index":4700,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["context.action",{"_index":3366,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["context.builder",{"_index":23105,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["context.builder.ts",{"_index":1870,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:11",{"_index":1878,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:17",{"_index":1876,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:5",{"_index":1874,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.contextid",{"_index":18096,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["context.controller.ts",{"_index":19584,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:121",{"_index":19599,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:145",{"_index":19607,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:45",{"_index":19590,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:69",{"_index":19594,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:88",{"_index":19603,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.getclass",{"_index":19465,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.gethandler",{"_index":19464,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.interface",{"_index":16290,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/Rule.html":{}}}],["context.interface.ts",{"_index":1864,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/ProviderOidcContext.html":{}}}],["context.params.ts",{"_index":5663,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:12",{"_index":5669,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:8",{"_index":5667,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.reponse",{"_index":2959,"title":{},"body":{"controllers/BoardController.html":{}}}],["context.reponse.ts",{"_index":2907,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:13",{"_index":2912,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:16",{"_index":2916,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:4",{"_index":2908,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.requiredpermissions",{"_index":3361,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["context.response",{"_index":5462,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["context.response.ts",{"_index":15871,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:12",{"_index":15879,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:15",{"_index":15880,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:19",{"_index":15882,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:6",{"_index":15877,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:9",{"_index":15878,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.switchtohttp().getrequest",{"_index":16670,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["context_external_tools",{"_index":5688,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextconfigurationenabled",{"_index":12080,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["contextdo",{"_index":19833,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool",{"_index":140,"title":{"classes/ContextExternalTool.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"controllers/ToolContextController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltool'})@httpcode(httpstatus.no_content",{"_index":19593,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltool(contextexternaltooldto",{"_index":5955,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool(tovalidate",{"_index":5987,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.contextref",{"_index":5997,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.contextref.id",{"_index":313,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool.contextref.type",{"_index":315,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltool.displayname",{"_index":5858,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ToolReferenceMapper.html":{}}}],["contextexternaltool.id",{"_index":5856,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{}}}],["contextexternaltool.parameters",{"_index":282,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["contextexternaltool.schooltoolref",{"_index":5996,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.schooltoolref.schooltoolid",{"_index":5857,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchService.html":{}}}],["contextexternaltool.toolversion",{"_index":5859,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltoolauthorizableservice",{"_index":5627,"title":{"injectables/ContextExternalToolAuthorizableService.html":{}},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse",{"_index":5633,"title":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":19583,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplateresponse",{"_index":5635,"title":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolcontextparams",{"_index":5661,"title":{"classes/ContextExternalToolContextParams.html":{}},"body":{"classes/ContextExternalToolContextParams.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{}}}],["contextexternaltooldto",{"_index":5817,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolentity",{"_index":5672,"title":{"entities/ContextExternalToolEntity.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextexternaltoolentity(props",{"_index":5783,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltoolfactory",{"_index":5695,"title":{"classes/ContextExternalToolFactory.html":{}},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolfactory.define(contextexternaltool",{"_index":5705,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolid",{"_index":5707,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchUc.html":{}}}],["contextexternaltoolidparams",{"_index":5706,"title":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{}},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolmodule",{"_index":5713,"title":{"modules/ContextExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["contextexternaltoolpostparams",{"_index":5723,"title":{"classes/ContextExternalToolPostParams.html":{}},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolprops",{"_index":5605,"title":{"interfaces/ContextExternalToolProps.html":{}},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["contextexternaltoolquery",{"_index":5750,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{}}}],["contextexternaltoolrepo",{"_index":5274,"title":{"injectables/ContextExternalToolRepo.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{}}}],["contextexternaltoolrequestmapper",{"_index":5810,"title":{"classes/ContextExternalToolRequestMapper.html":{}},"body":{"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolrequestmapper.mapcontextexternaltoolrequest(body",{"_index":19611,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse",{"_index":5831,"title":{"classes/ContextExternalToolResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper",{"_index":5852,"title":{"classes/ContextExternalToolResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(contextexternaltool",{"_index":19625,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(createdtool",{"_index":19613,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(tool",{"_index":19621,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(updatedtool",{"_index":19629,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiunprocessableentityresponse()@apioperation({summary",{"_index":19606,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":19588,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apioperation({summary",{"_index":19597,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolrule",{"_index":1955,"title":{"injectables/ContextExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/RuleManager.html":{}}}],["contextexternaltools",{"_index":5921,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltools.map",{"_index":19620,"title":{},"body":{"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltoolscope",{"_index":5752,"title":{"classes/ContextExternalToolScope.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["contextexternaltoolsearchlistresponse",{"_index":5900,"title":{"classes/ContextExternalToolSearchListResponse.html":{}},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse(mappedtools",{"_index":19622,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse})@apioperation({summary",{"_index":19602,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolservice",{"_index":5720,"title":{"injectables/ContextExternalToolService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltoolsinuse",{"_index":8368,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["contextexternaltoolsinuse.some",{"_index":8387,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["contextexternaltooltemplateinfo",{"_index":8366,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltooltype",{"_index":5677,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextexternaltooltype.course",{"_index":5808,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooluc",{"_index":5929,"title":{"injectables/ContextExternalToolUc.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolvalidationservice",{"_index":5721,"title":{"injectables/ContextExternalToolValidationService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["contextid",{"_index":5664,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRefParams.html":{},"injectables/ExternalToolConfigurationUc.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextparameter",{"_index":7159,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["contextref",{"_index":5601,"title":{"classes/ContextRef.html":{}},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextrefparams",{"_index":6010,"title":{"classes/ContextRefParams.html":{}},"body":{"classes/ContextRefParams.html":{},"controllers/ToolConfigurationController.html":{}}}],["contexttoolid",{"_index":5947,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["contexttype",{"_index":4714,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRefParams.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{}}}],["contexttypemapper",{"_index":6015,"title":{"classes/ContextTypeMapper.html":{}},"body":{"classes/ContextTypeMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contexttypemapper.mapcontexttypetoallowedauthorizationentitytype(contextexternaltool.contextref.type",{"_index":19836,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["continue",{"_index":21977,"title":{},"body":{"license.html":{}}}],["continued",{"_index":21961,"title":{},"body":{"license.html":{}}}],["contractual",{"_index":22016,"title":{},"body":{"license.html":{}}}],["contradict",{"_index":22145,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contrast",{"_index":21674,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contributor",{"_index":22088,"title":{},"body":{"license.html":{}}}],["contributor's",{"_index":22090,"title":{},"body":{"license.html":{}}}],["control",{"_index":19700,"title":{},"body":{"controllers/ToolController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controlled",{"_index":22093,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controller",{"_index":481,"title":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ServerController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}},"body":{"controllers/AccountController.html":{},"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LegacySchoolController.html":{},"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ServerController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controller('account",{"_index":562,"title":{},"body":{"controllers/AccountController.html":{}}}],["controller('authentication",{"_index":14103,"title":{},"body":{"controllers/LoginController.html":{}}}],["controller('board",{"_index":3701,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["controller('boards",{"_index":2963,"title":{},"body":{"controllers/BoardController.html":{}}}],["controller('cards",{"_index":4050,"title":{},"body":{"controllers/CardController.html":{}}}],["controller('collaborative",{"_index":4595,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["controller('columns",{"_index":4874,"title":{},"body":{"controllers/ColumnController.html":{}}}],["controller('courses",{"_index":6501,"title":{},"body":{"controllers/CourseController.html":{}}}],["controller('dashboard",{"_index":7238,"title":{},"body":{"controllers/DashboardController.html":{}}}],["controller('elements",{"_index":8067,"title":{},"body":{"controllers/ElementController.html":{}}}],["controller('fwu",{"_index":10399,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["controller('h5p",{"_index":10791,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["controller('lessons",{"_index":13661,"title":{},"body":{"controllers/LessonController.html":{}}}],["controller('management/database",{"_index":7706,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["controller('management/idm",{"_index":13165,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["controller('news",{"_index":14619,"title":{},"body":{"controllers/NewsController.html":{}}}],["controller('oauth2",{"_index":15523,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["controller('rooms",{"_index":16980,"title":{},"body":{"controllers/RoomsController.html":{}}}],["controller('school",{"_index":13471,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["controller('sharetoken",{"_index":17900,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["controller('sso",{"_index":15739,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["controller('submissions",{"_index":18252,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["controller('systems",{"_index":18542,"title":{},"body":{"controllers/SystemController.html":{}}}],["controller('tasks",{"_index":18803,"title":{},"body":{"controllers/TaskController.html":{}}}],["controller('team",{"_index":19283,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["controller('tools",{"_index":19546,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolLaunchController.html":{}}}],["controller('tools/context",{"_index":19610,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["controller('tools/external",{"_index":19666,"title":{},"body":{"controllers/ToolController.html":{}}}],["controller('tools/school",{"_index":19920,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["controller('user",{"_index":20017,"title":{},"body":{"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["controller('user/import",{"_index":12312,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["controller('videoconference",{"_index":21019,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["controller('videoconference2",{"_index":20908,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["controller.ts",{"_index":22560,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["controller/account.controller",{"_index":452,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["controller/api",{"_index":22856,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["controller/collaborative",{"_index":4616,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["controller/course.controller",{"_index":13379,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/dashboard.controller",{"_index":13380,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/database",{"_index":14414,"title":{},"body":{"modules/ManagementModule.html":{}}}],["controller/dto",{"_index":982,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CourseMapper.html":{},"classes/DashboardMapper.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GetFileResponse.html":{},"injectables/HydraOauthUc.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/MigrationMapper.html":{},"classes/NewsMapper.html":{},"injectables/OauthUc.html":{},"injectables/PageContentMapper.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"classes/ResolvedUserMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolInfoMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionMapper.html":{},"classes/TaskMapper.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolLaunchMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserMatchMapper.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["controller/dto/filter",{"_index":20538,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["controller/dto/password",{"_index":1002,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["controller/dto/response/video",{"_index":21120,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["controller/dto/single",{"_index":16876,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["controller/dto/target",{"_index":18741,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["controller/dto/task",{"_index":19140,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["controller/dto/team",{"_index":4672,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["controller/fwu",{"_index":10425,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["controller/h5p",{"_index":10813,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["controller/import",{"_index":12452,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["controller/keycloak",{"_index":12839,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["controller/legacy",{"_index":13443,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["controller/news.controller",{"_index":14719,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/oauth",{"_index":15234,"title":{},"body":{"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{}}}],["controller/rooms.controller",{"_index":13381,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/server.controller",{"_index":17789,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["controller/share",{"_index":18112,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["controller/team",{"_index":14720,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/transformer/sanitize",{"_index":16724,"title":{},"body":{"classes/RichText.html":{}}}],["controller/user",{"_index":20236,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["controllers",{"_index":447,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{},"modules/AuthenticationApiModule.html":{},"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageTestModule.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"controllers/KeycloakManagementController.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"modules/ManagementModule.html":{},"controllers/NewsController.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"controllers/SubmissionController.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"modules/TeamsApiModule.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controllers/dto",{"_index":13333,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["controllers/login.controller",{"_index":1590,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["convenient",{"_index":21766,"title":{},"body":{"license.html":{}}}],["convention",{"_index":22698,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["conventions",{"_index":22542,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["conversion",{"_index":797,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["convert",{"_index":767,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["converted",{"_index":796,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["convertedteamuserids",{"_index":14937,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter((userid",{"_index":14951,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter(boolean",{"_index":14944,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.includes(userid",{"_index":14947,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["converter/bson.converter",{"_index":11111,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["converterutil",{"_index":2291,"title":{"injectables/ConverterUtil.html":{}},"body":{"injectables/BBBService.html":{},"injectables/ConverterUtil.html":{},"modules/VideoConferenceModule.html":{}}}],["converts",{"_index":794,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["converttodatabasevalue",{"_index":18167,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttodatabasevalue(value",{"_index":18172,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue",{"_index":18168,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue(value",{"_index":18174,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["convey",{"_index":21754,"title":{},"body":{"license.html":{}}}],["conveyance",{"_index":22123,"title":{},"body":{"license.html":{}}}],["conveyed",{"_index":21972,"title":{},"body":{"license.html":{}}}],["conveying",{"_index":21761,"title":{},"body":{"license.html":{}}}],["conveys",{"_index":22015,"title":{},"body":{"license.html":{}}}],["cookie",{"_index":11046,"title":{},"body":{"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["cookie.parse(request.headers.cookie",{"_index":12685,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookie.startswith('oauth2",{"_index":11062,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["cookiedefaultoptions",{"_index":15776,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookieoptions",{"_index":15731,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookies",{"_index":10974,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{}}}],["cookies[name",{"_index":12686,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookiesdto",{"_index":6032,"title":{"classes/CookiesDto.html":{}},"body":{"classes/CookiesDto.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["cooperation",{"_index":21667,"title":{},"body":{"license.html":{}}}],["copied",{"_index":1660,"title":{},"body":{"modules/AuthenticationModule.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copiedcontent",{"_index":13728,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedcontentstatus",{"_index":13781,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedlesson",{"_index":13750,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedlesson.contents",{"_index":13753,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedlesson.contents.map((value",{"_index":13754,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedlesson?.contents",{"_index":13752,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedmaterials",{"_index":13730,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedmaterials.push(material",{"_index":13817,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedtask",{"_index":13766,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedtask.id",{"_index":13769,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedtasksstatus",{"_index":13710,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copies",{"_index":21661,"title":{},"body":{"license.html":{}}}],["copy",{"_index":2563,"title":{},"body":{"classes/BaseFactory.html":{},"classes/CopyApiResponse.html":{},"injectables/CourseCopyService.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/S3ClientAdapter.html":{},"injectables/ShareTokenUC.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyUC.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["copy(paths",{"_index":17095,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copy(userid",{"_index":9758,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["copy._id",{"_index":13790,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.content",{"_index":13789,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.params",{"_index":6297,"title":{},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{}}}],["copy.params.ts",{"_index":13666,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:14",{"_index":13667,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:22",{"_index":18822,"title":{},"body":{"classes/TaskCopyApiParams.html":{}}}],["copy.service",{"_index":6535,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{}}}],["copy.service.ts",{"_index":2985,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:103",{"_index":3010,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:107",{"_index":13720,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:111",{"_index":3014,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:123",{"_index":13722,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:126",{"_index":3020,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:139",{"_index":3017,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:149",{"_index":13718,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:15",{"_index":6523,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:167",{"_index":13698,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:18",{"_index":18827,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:25",{"_index":6525,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:252",{"_index":13707,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:264",{"_index":13694,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:27",{"_index":13684,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:290",{"_index":13692,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:297",{"_index":13690,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:30",{"_index":2998,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:320",{"_index":13705,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:338",{"_index":13702,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:361",{"_index":13700,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:37",{"_index":13696,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:39",{"_index":3001,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:391",{"_index":13686,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:397",{"_index":13716,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:406",{"_index":13715,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:42",{"_index":18831,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:56",{"_index":6528,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:63",{"_index":18836,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:65",{"_index":3004,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:70",{"_index":18834,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:72",{"_index":6534,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:78",{"_index":6531,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:82",{"_index":13712,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:95",{"_index":3007,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.uc",{"_index":16976,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/TaskController.html":{}}}],["copy.uc.ts",{"_index":6576,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:15",{"_index":6582,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:16",{"_index":18857,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:17",{"_index":13831,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:26",{"_index":13834,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:28",{"_index":6580,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:61",{"_index":18861,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:62",{"_index":13835,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:70",{"_index":18864,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:80",{"_index":18866,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:9",{"_index":6579,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:92",{"_index":18858,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy_files_of_parent",{"_index":11362,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["copyapiresponse",{"_index":6042,"title":{"classes/CopyApiResponse.html":{}},"body":{"classes/CopyApiResponse.html":{},"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copyapiresponse})@apiresponse({status",{"_index":17884,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["copyboard",{"_index":2986,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboard(params",{"_index":2999,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements",{"_index":2987,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements(boardelements",{"_index":3002,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycourse",{"_index":6517,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourse(currentuser",{"_index":16960,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copycourse(undefined",{"_index":6524,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourse(userid",{"_index":6581,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourseentity",{"_index":6518,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourseentity(params",{"_index":6526,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copydict",{"_index":3077,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{}}}],["copydict.get(originaltaskid",{"_index":13767,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype",{"_index":3025,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.board",{"_index":3038,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.content",{"_index":18849,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.course",{"_index":6573,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.coursegroup_group",{"_index":6570,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.file",{"_index":6226,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyelementtype.file_group",{"_index":6232,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyelementtype.lernstore_material",{"_index":13818,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype.lernstore_material_group",{"_index":13821,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype.lesson",{"_index":3083,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{}}}],["copyelementtype.lesson_content_group",{"_index":13827,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype.ltitool_group",{"_index":6565,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.metadata",{"_index":6563,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.submission_group",{"_index":18850,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.task",{"_index":18852,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.task_group",{"_index":13809,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype.time_group",{"_index":6566,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.user_group",{"_index":6564,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyembeddedtasklink",{"_index":13670,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyembeddedtasklink(originalelement",{"_index":13685,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyentity",{"_index":3040,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyentity.course?.id",{"_index":6308,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyentity.id",{"_index":6306,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyetherpad",{"_index":13671,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyetherpad(originalelement",{"_index":13688,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyfiledto",{"_index":6063,"title":{"classes/CopyFileDto.html":{}},"body":{"classes/CopyFileDto.html":{},"injectables/CopyFilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{}}}],["copyfilelistresponse",{"_index":6076,"title":{"classes/CopyFileListResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{}}}],["copyfilelistresponse.map((response",{"_index":10144,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["copyfileparams",{"_index":6114,"title":{"classes/CopyFileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["copyfileresponse",{"_index":6079,"title":{"classes/CopyFileResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["copyfileresponsebuilder",{"_index":6152,"title":{"classes/CopyFileResponseBuilder.html":{}},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["copyfiles",{"_index":6157,"title":{"interfaces/CopyFiles.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"miscellaneous/functions.html":{}}}],["copyfilesofentity",{"_index":6189,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofentity(originalentity",{"_index":6195,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparent",{"_index":10102,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent(param",{"_index":10108,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["copyfilesofparent(payload",{"_index":10172,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:finished",{"_index":10302,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:started",{"_index":10299,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparentparambuilder",{"_index":6173,"title":{"classes/CopyFilesOfParentParamBuilder.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparambuilder.build(userid",{"_index":6212,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparams",{"_index":6137,"title":{"classes/CopyFilesOfParentParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["copyfilesofparentpayload",{"_index":6138,"title":{"classes/CopyFilesOfParentPayload.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageConsumer.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["copyfilesservice",{"_index":6186,"title":{"injectables/CopyFilesService.html":{}},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copygeogebra",{"_index":13672,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copygeogebra(originalelement",{"_index":13691,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyhelpermodule",{"_index":6234,"title":{"modules/CopyHelperModule.html":{}},"body":{"modules/CopyHelperModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LessonModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules.html":{}}}],["copyhelperservice",{"_index":2997,"title":{"injectables/CopyHelperService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copying",{"_index":6705,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"license.html":{}}}],["copyingsince",{"_index":6365,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{}}}],["copyleft",{"_index":21663,"title":{},"body":{"license.html":{}}}],["copylernstore",{"_index":13673,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylernstore(element",{"_index":13693,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylesson",{"_index":2988,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copylesson(currentuser",{"_index":16963,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copylesson(originallesson",{"_index":3006,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copylesson(params",{"_index":13695,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylesson(userid",{"_index":13832,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copylessoncontent",{"_index":13674,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylessoncontent(content",{"_index":13697,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylinkedmaterials",{"_index":13675,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylinkedmaterials(originallesson",{"_index":13699,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylinkedtasks",{"_index":13676,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylinkedtasks(destinationlesson",{"_index":13701,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copymapper",{"_index":6282,"title":{"classes/CopyMapper.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maplessoncopytodomain(params",{"_index":16995,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copymapper.maptaskcopytodomain(params",{"_index":18819,"title":{},"body":{"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(copystatus",{"_index":16992,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(element",{"_index":6312,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyname",{"_index":6537,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copynexboard",{"_index":13677,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copynexboard(originalelement",{"_index":13704,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyobjectcommand",{"_index":17110,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyobjectcommandoutput",{"_index":17111,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths",{"_index":17146,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths.map((p",{"_index":17156,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyprops",{"_index":1861,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["copyrequest",{"_index":17150,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyrequests",{"_index":17160,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyright",{"_index":21652,"title":{},"body":{"license.html":{}}}],["copyrightable",{"_index":21728,"title":{},"body":{"license.html":{}}}],["copyrighted",{"_index":21821,"title":{},"body":{"license.html":{}}}],["copyrightowners",{"_index":4975,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["copysource",{"_index":17162,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copystatus",{"_index":3013,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copystatus.copyentity",{"_index":6305,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.elements",{"_index":6309,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.status",{"_index":6304,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.title",{"_index":6302,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.type",{"_index":6303,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatusenum",{"_index":6057,"title":{},"body":{"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.fail",{"_index":6228,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{}}}],["copystatusenum.not_doing",{"_index":6262,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.not_implemented",{"_index":6571,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copystatusenum.partial",{"_index":6256,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copystatusenum.success",{"_index":6227,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copytask",{"_index":2989,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copytask(currentuser",{"_index":18776,"title":{},"body":{"controllers/TaskController.html":{}}}],["copytask(originaltask",{"_index":3009,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copytask(params",{"_index":18828,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytask(userid",{"_index":18056,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copytaskentity",{"_index":18824,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytaskentity(params",{"_index":18830,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytextcontent",{"_index":13678,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copytextcontent(element",{"_index":13706,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["core",{"_index":6325,"title":{},"body":{"modules/CoreModule.html":{},"controllers/H5PEditorController.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["core.autocrlf",{"_index":22900,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["core/error",{"_index":22658,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["core/logger",{"_index":1079,"title":{},"body":{"injectables/AccountService.html":{}}}],["core/logger/logger.module",{"_index":454,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["coremodule",{"_index":6317,"title":{"modules/CoreModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["correct",{"_index":4582,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["correction",{"_index":22188,"title":{},"body":{"license.html":{}}}],["correctly",{"_index":22690,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["correctness",{"_index":22440,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["corresponding",{"_index":14132,"title":{},"body":{"classes/LoginResponse-1.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["cors",{"_index":21380,"title":{},"body":{"dependencies.html":{}}}],["cost",{"_index":21910,"title":{},"body":{"license.html":{}}}],["count",{"_index":5784,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/TaskRepo.html":{},"controllers/TeamNewsController.html":{},"injectables/UserRepo.html":{}}}],["counted",{"_index":98,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"injectables/FileRecordRepo.html":{},"classes/IdentityManagementService.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/UserRepo.html":{}}}],["countedimportusers",{"_index":12491,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["countednewslist",{"_index":14741,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["countedtasklist",{"_index":19011,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["counterclaim",{"_index":22080,"title":{},"body":{"license.html":{}}}],["counties",{"_index":6352,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countpipeline",{"_index":20712,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countpipeline.push",{"_index":20713,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countries",{"_index":21751,"title":{},"body":{"license.html":{}}}],["country",{"_index":22116,"title":{},"body":{"license.html":{}}}],["counts",{"_index":6703,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["county",{"_index":6340,"title":{"classes/County.html":{}},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.antareskey",{"_index":6357,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.countyid",{"_index":6355,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.name",{"_index":6353,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countyid",{"_index":6344,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["coupling",{"_index":22537,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["course",{"_index":188,"title":{"entities/Course.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CopyApiResponse.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/DtoCreator.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{},"entities/SchoolNews.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["course.createdat.getfullyear().tostring",{"_index":4978,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.description",{"_index":23075,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.entity",{"_index":2688,"title":{},"body":{"entities/Board.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{}}}],["course.factory",{"_index":6647,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["course.getmetadata",{"_index":6687,"title":{},"body":{"classes/CourseMapper.html":{}}}],["course.getstudentids().map((userid",{"_index":3151,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getsubstitutionteacherids().map((userid",{"_index":3149,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getteacherids().map((userid",{"_index":3146,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.name",{"_index":318,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CourseCopyService.html":{},"injectables/VideoConferenceService.html":{}}}],["course.removeuser(userid",{"_index":6837,"title":{},"body":{"injectables/CourseService.html":{}}}],["course.rule",{"_index":6666,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["course.school",{"_index":23072,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.service",{"_index":4970,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.students.contains(user",{"_index":16945,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.substitutionteachers.contains(user",{"_index":16943,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.teachers",{"_index":5020,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.teachers.contains(user",{"_index":16944,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["coursecolumnboardtargets",{"_index":17009,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursecontroller",{"_index":6478,"title":{"controllers/CourseController.html":{}},"body":{"controllers/CourseController.html":{},"modules/LearnroomApiModule.html":{}}}],["coursecopy",{"_index":6530,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.copyingsince",{"_index":6561,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.name",{"_index":6572,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyparams",{"_index":6527,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyservice",{"_index":6515,"title":{"injectables/CourseCopyService.html":{}},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/LearnroomModule.html":{},"injectables/ShareTokenUC.html":{}}}],["coursecopyuc",{"_index":6574,"title":{"injectables/CourseCopyUC.html":{}},"body":{"injectables/CourseCopyUC.html":{},"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["courseexportservice",{"_index":6593,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["courseexportuc",{"_index":6494,"title":{"injectables/CourseExportUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomApiModule.html":{}}}],["coursefactory",{"_index":6600,"title":{"classes/CourseFactory.html":{}},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.build",{"_index":6649,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.define(course",{"_index":6620,"title":{},"body":{"classes/CourseFactory.html":{}}}],["coursefeatures",{"_index":6381,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["coursegroup",{"_index":6404,"title":{"entities/CourseGroup.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"injectables/LessonUC.html":{},"entities/Submission.html":{},"injectables/SubmissionRepo.html":{}}}],["coursegroup.course",{"_index":13888,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["coursegroup.entity",{"_index":6405,"title":{},"body":{"entities/Course.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["coursegroup.removestudent(userid",{"_index":6679,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupfactory",{"_index":6644,"title":{"classes/CourseGroupFactory.html":{}},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupfactory.define(coursegroup",{"_index":6648,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupid",{"_index":11325,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["coursegroupmemberids",{"_index":11810,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["coursegrouppermission",{"_index":13900,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouppermission(user",{"_index":13906,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouprepo",{"_index":1956,"title":{"injectables/CourseGroupRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["coursegrouprule",{"_index":1957,"title":{"injectables/CourseGroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{}}}],["coursegroups",{"_index":6366,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["coursegroups.foreach((coursegroup",{"_index":6678,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupservice",{"_index":6670,"title":{"injectables/CourseGroupService.html":{}},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupsexist",{"_index":6567,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursegroupsofuser",{"_index":18403,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["courseid",{"_index":2675,"title":{},"body":{"entities/Board.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseGroup.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"classes/CourseUrlParams.html":{},"injectables/EtherpadService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/LessonCopyApiParams.html":{},"entities/LessonEntity.html":{},"injectables/ShareTokenUC.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskService.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["courseids",{"_index":6654,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["courselessons",{"_index":17006,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursemapper",{"_index":6498,"title":{"classes/CourseMapper.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMapper.html":{}}}],["coursemapper.maptometadataresponse(course",{"_index":6505,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadata",{"_index":6686,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.copyingsince",{"_index":6694,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.displaycolor",{"_index":6691,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.id",{"_index":6688,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.shorttitle",{"_index":6690,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.startdate",{"_index":6692,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.title",{"_index":6689,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.untildate",{"_index":6693,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadatalistresponse",{"_index":6497,"title":{"classes/CourseMetadataListResponse.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursemetadatalistresponse(courseresponses",{"_index":6506,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadataresponse",{"_index":6685,"title":{"classes/CourseMetadataResponse.html":{}},"body":{"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursename",{"_index":3418,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/DtoCreator.html":{},"interfaces/ITaskParent.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["coursenews",{"_index":6717,"title":{"entities/CourseNews.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["coursenews(props",{"_index":6750,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["coursepermission",{"_index":13901,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursepermission(user",{"_index":13908,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursequeryparams",{"_index":6483,"title":{"classes/CourseQueryParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseQueryParams.html":{}}}],["coursereference",{"_index":4736,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/RoomsService.html":{}}}],["courserepo",{"_index":1958,"title":{"injectables/CourseRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsUc.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskUC.html":{}}}],["courseresponses",{"_index":6503,"title":{},"body":{"controllers/CourseController.html":{}}}],["courserule",{"_index":1959,"title":{"injectables/CourseRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["courses",{"_index":6424,"title":{},"body":{"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/DashboardUc.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"classes/ShareTokenDO.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceService.html":{}}}],["courses.filter((c",{"_index":19179,"title":{},"body":{"injectables/TaskUC.html":{}}}],["courses.foreach((course",{"_index":6836,"title":{},"body":{"injectables/CourseService.html":{}}}],["courses.map((course",{"_index":6504,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursescope",{"_index":6786,"title":{"classes/CourseScope.html":{}},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["courseservice",{"_index":130,"title":{"injectables/CourseService.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CourseService.html":{},"modules/LearnroomModule.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/VideoConferenceService.html":{}}}],["coursestatus",{"_index":6554,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursetasks",{"_index":17008,"title":{},"body":{"injectables/RoomsService.html":{}}}],["courseuc",{"_index":6492,"title":{"injectables/CourseUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseUc.html":{},"modules/LearnroomApiModule.html":{}}}],["courseurlparams",{"_index":6482,"title":{"classes/CourseUrlParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseUrlParams.html":{}}}],["court",{"_index":22144,"title":{},"body":{"license.html":{}}}],["courts",{"_index":22207,"title":{},"body":{"license.html":{}}}],["covenant",{"_index":22106,"title":{},"body":{"license.html":{}}}],["cover",{"_index":22694,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["coverage",{"_index":1237,"title":{},"body":{"injectables/AccountValidationService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["covered",{"_index":21738,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["cp",{"_index":22953,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cr",{"_index":12945,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["crash",{"_index":13787,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["create",{"_index":883,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"modules/CacheWrapperModule.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"interfaces/FeathersService.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LegacySchoolDo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/OidcProvisioningService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RoleRepo.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"controllers/ShareTokenController.html":{},"injectables/StorageProviderRepo.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamsRepo.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["create(@currentuser",{"_index":14620,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["create(config",{"_index":2294,"title":{},"body":{"injectables/BBBService.html":{}}}],["create(context",{"_index":4730,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["create(currentuser",{"_index":14596,"title":{},"body":{"controllers/NewsController.html":{}}}],["create(currentuserid",{"_index":20955,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create(data",{"_index":9428,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["create(entity",{"_index":908,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["create(parent",{"_index":4127,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["create(path",{"_index":17097,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["create(userid",{"_index":14799,"title":{},"body":{"injectables/NewsUc.html":{},"injectables/SubmissionItemService.html":{}}}],["create.config.ts",{"_index":2109,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:23",{"_index":2128,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:25",{"_index":2122,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:27",{"_index":2126,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:29",{"_index":2124,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:31",{"_index":2129,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:33",{"_index":2123,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:35",{"_index":2127,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:37",{"_index":2121,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:39",{"_index":2125,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:9",{"_index":2120,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.params.ts",{"_index":8455,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:14",{"_index":20932,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:16",{"_index":18882,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:17",{"_index":8463,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:19",{"_index":20939,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:21",{"_index":14196,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:22",{"_index":8466,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:25",{"_index":15182,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{}}}],["create.params.ts:26",{"_index":14195,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:27",{"_index":8462,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:30",{"_index":14192,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:33",{"_index":18887,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:34",{"_index":14194,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:35",{"_index":15181,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:38",{"_index":14190,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:39",{"_index":15180,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:41",{"_index":18884,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:43",{"_index":15184,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:48",{"_index":8460,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:49",{"_index":18880,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:55",{"_index":8465,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:57",{"_index":18886,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:59",{"_index":8461,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:63",{"_index":8464,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:9",{"_index":20931,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.response.ts",{"_index":2196,"title":{},"body":{"interfaces/BBBCreateResponse.html":{}}}],["create.uc.ts",{"_index":20947,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:19",{"_index":20954,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:26",{"_index":20958,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:40",{"_index":20956,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:61",{"_index":20961,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:82",{"_index":20965,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:86",{"_index":20963,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create_tokens_for_users=true",{"_index":22976,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["createaccount",{"_index":12204,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createaccount(account",{"_index":12213,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createandjoin",{"_index":21004,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandjoin(currentuser",{"_index":21005,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandstartprometheusmetricsappifenabled",{"_index":16270,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createapiresponsetimemetricmiddleware",{"_index":16248,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["createauthenticationcodegranttokenrequestpayload",{"_index":19491,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createauthenticationcodegranttokenrequestpayload(clientid",{"_index":19493,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createboard",{"_index":3446,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboard(courseid",{"_index":3452,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboardelementfor(boardelementtarget",{"_index":2750,"title":{},"body":{"entities/Board.html":{}}}],["createboardforcourse",{"_index":3625,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createboardforcourse(courseid",{"_index":3629,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createbucket",{"_index":17087,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createbucketcommand",{"_index":17112,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createcard",{"_index":3757,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["createcard(urlparams",{"_index":4853,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcard(userid",{"_index":3771,"title":{},"body":{"injectables/BoardUc.html":{}}}],["createcardbodyparams",{"_index":4855,"title":{"classes/CreateCardBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["createcardbodyparams})@post(':columnid/cards",{"_index":4859,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcards",{"_index":3472,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcards(amount",{"_index":3480,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createclient",{"_index":7797,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["createclient(storageprovider",{"_index":7805,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["createcollection",{"_index":7725,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcollection(collectionname",{"_index":7735,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcolumn",{"_index":2919,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["createcolumn(urlparams",{"_index":2924,"title":{},"body":{"controllers/BoardController.html":{}}}],["createcolumn(userid",{"_index":3776,"title":{},"body":{"injectables/BoardUc.html":{}}}],["createcolumns",{"_index":3473,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcolumns(amount",{"_index":3482,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createconfigmoduleoptions",{"_index":10261,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["createcontentelementbodyparams",{"_index":4009,"title":{"classes/CreateContentElementBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CreateContentElementBodyParams.html":{}}}],["createcontextexternaltool",{"_index":5932,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(currentuser",{"_index":19586,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(userid",{"_index":5939,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["createcopyfiles",{"_index":21473,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createcopyfiles(sourcefile",{"_index":21518,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createcourse",{"_index":6768,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["createcourse(course",{"_index":6772,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["createcourse(userid",{"_index":23077,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["created",{"_index":2450,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/ExternalToolService.html":{},"injectables/FileSystemAdapter.html":{},"classes/IdentityManagementService.html":{},"injectables/LegacyLogger.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["created.'})@apiresponse({status",{"_index":20898,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["created.id",{"_index":2453,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["createdaccountid",{"_index":13198,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdaccountid.id",{"_index":13200,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdat",{"_index":591,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSaveDto.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/County.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"entities/FederalState.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/ResolvedUserResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TimestampsResponse.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/VideoConferenceInfo.html":{}}}],["createdat.$date",{"_index":11220,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createdate",{"_index":2197,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createddate",{"_index":756,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createdir",{"_index":9960,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdir(folderpath",{"_index":9969,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdmodel",{"_index":7553,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["createdschoolexternaltool",{"_index":17488,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["createdschoolexternaltooldo",{"_index":19935,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createdto",{"_index":8007,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createdto(undefined",{"_index":16864,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["createdtool",{"_index":5959,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createelement",{"_index":4005,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["createelement(urlparams",{"_index":4007,"title":{},"body":{"controllers/CardController.html":{}}}],["createelement(userid",{"_index":4183,"title":{},"body":{"injectables/CardUc.html":{}}}],["createelements",{"_index":3474,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createelements(amount",{"_index":3484,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createemptyelements",{"_index":4123,"title":{},"body":{"injectables/CardService.html":{}}}],["createemptyelements(card",{"_index":4129,"title":{},"body":{"injectables/CardService.html":{}}}],["createentity",{"_index":2385,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["createentity(domainobject",{"_index":2398,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["createerrorloggable",{"_index":10465,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorloggable(error",{"_index":10477,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse",{"_index":10466,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse(error",{"_index":10479,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror",{"_index":10467,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror(error",{"_index":10481,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror",{"_index":10468,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror(error",{"_index":10483,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception",{"_index":10469,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception(exception",{"_index":10485,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforunknownerror",{"_index":10470,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createetherpad",{"_index":8249,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createetherpad(userid",{"_index":8253,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createexternaltool",{"_index":9071,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["createexternaltool(currentuser",{"_index":19634,"title":{},"body":{"controllers/ToolController.html":{}}}],["createexternaltool(externaltool",{"_index":9087,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["createexternaltool(userid",{"_index":9194,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["createfile",{"_index":19442,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfilerecord",{"_index":21475,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createfilerecord(name",{"_index":21527,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createfileresponse",{"_index":19443,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileurlreplacements",{"_index":6190,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createfileurlreplacements(filedtos",{"_index":6197,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createflowrequest",{"_index":12922,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["creategridelement",{"_index":7498,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategridelement(elementwithposition",{"_index":7509,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategroup(name",{"_index":1358,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createhttpexceptionoptions",{"_index":8230,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createhttpexceptionoptions(error",{"_index":8234,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createidentifier",{"_index":4971,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"miscellaneous/functions.html":{}}}],["createidentifier(content._id",{"_index":5002,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(courseid",{"_index":4974,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(id",{"_index":21531,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createidentifier(lesson.id",{"_index":4987,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lessonid)}/${createidentifier(content._id)}.html",{"_index":5004,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(task.id",{"_index":5029,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentityprovider",{"_index":12849,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidentityprovider(oidcconfig",{"_index":12868,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper",{"_index":12850,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper(idpalias",{"_index":12871,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidtoken",{"_index":12140,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createidtoken(userid",{"_index":12149,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createifnotrunning",{"_index":20948,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createifnotrunning(currentuserid",{"_index":20957,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createiframesubject",{"_index":12141,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createiframesubject(user",{"_index":12151,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createinstance(targetmodel",{"_index":6748,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["createjwt",{"_index":12708,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["createjwt(params",{"_index":6879,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtparams",{"_index":6860,"title":{"interfaces/CreateJwtParams.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtpayload",{"_index":1794,"title":{"interfaces/CreateJwtPayload.html":{}},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/LoginUc.html":{}}}],["createlaunchdata",{"_index":122,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchdata(userid",{"_index":171,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest",{"_index":123,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdata",{"_index":173,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdatado",{"_index":12094,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["createlesson",{"_index":13876,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(lesson",{"_index":13878,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(userid",{"_index":23081,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createlogmessageforvalidationerrors",{"_index":8127,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createlogmessageforvalidationerrors(error",{"_index":8134,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createmessage",{"_index":13395,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessage(message",{"_index":13399,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessagewithcontext",{"_index":14065,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmessagewithcontext(loggable",{"_index":14068,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmikroormmodule",{"_index":14540,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["createmock",{"_index":19423,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["createnewaccount",{"_index":15948,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["createnewentityfromdo",{"_index":2386,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["createnewentityfromdo(domainobject",{"_index":2401,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["createnewmigration",{"_index":20423,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewmigration(school",{"_index":20431,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewsparams",{"_index":6898,"title":{"classes/CreateNewsParams.html":{}},"body":{"classes/CreateNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["createnexboard",{"_index":14866,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createnexboard(userid",{"_index":14868,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createoauth2client",{"_index":10828,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["createoauth2client(currentuser",{"_index":15423,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["createoauth2client(data",{"_index":10848,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["createorupdate",{"_index":8726,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdate(domainobject",{"_index":8733,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdateboardnode",{"_index":16529,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateboardnode(boardnode",{"_index":16533,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateidmaccount",{"_index":13174,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createorupdateidmaccount(account",{"_index":13176,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createorupdatevideoconferenceforscopewithoptions",{"_index":21213,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["createorupdatevideoconferenceforscopewithoptions(scopeid",{"_index":21230,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["createpath",{"_index":21479,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createpath(schoolid",{"_index":21521,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createpreviewdirectorypath",{"_index":16162,"title":{},"body":{"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["createpreviewdirectorypath(filerecord.getschoolid",{"_index":16173,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewdirectorypath(schoolid",{"_index":21522,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createpreviewfilepath",{"_index":16163,"title":{},"body":{"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["createpreviewfilepath(filerecord.getschoolid",{"_index":16169,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewfilepath(schoolid",{"_index":21524,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createpreviewnamehash",{"_index":16164,"title":{},"body":{"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["createpreviewnamehash(filerecord.id",{"_index":16168,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewnamehash(filerecordid",{"_index":21532,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createprometheusmetricsapp",{"_index":16249,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createprometheusmetricsapp(route",{"_index":16278,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createqueryordermap",{"_index":20068,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createqueryordermap(sort",{"_index":20070,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createredisidentifierfromjwtdata",{"_index":12730,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createredisidentifierfromjwtdata(accountid",{"_index":12736,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createrequest",{"_index":10282,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["createrequest(event",{"_index":10288,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["createrichtextelement",{"_index":4726,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createrichtextelement(text",{"_index":4732,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creates",{"_index":2296,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/FileSystemAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["creates3clientadapter",{"_index":17189,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["creates3clientadapter(config",{"_index":17193,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["createschoolbysuperhero(userid",{"_index":23060,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createschoolexternaltool",{"_index":17493,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(currentuser",{"_index":19902,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(userid",{"_index":17499,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["createsharetoken",{"_index":17871,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["createsharetoken(currentuser",{"_index":17874,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["createsharetoken(userid",{"_index":18058,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["createstudentstatusforuser(user",{"_index":12050,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createsubmissionitem",{"_index":8045,"title":{},"body":{"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["createsubmissionitem(urlparams",{"_index":8047,"title":{},"body":{"controllers/ElementController.html":{}}}],["createsubmissionitem(userid",{"_index":8086,"title":{},"body":{"injectables/ElementUc.html":{}}}],["createsubmissionitembodyparams",{"_index":6921,"title":{"classes/CreateSubmissionItemBodyParams.html":{}},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"controllers/ElementController.html":{}}}],["createsubmissionitembodyparams})@post(':contentelementid/submissions",{"_index":8050,"title":{},"body":{"controllers/ElementController.html":{}}}],["createtask",{"_index":18948,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtask(task",{"_index":18953,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtaskstatus",{"_index":7916,"title":{},"body":{"classes/DtoCreator.html":{}}}],["createtaskstatus(task",{"_index":7933,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createteacherstatusforuser(user",{"_index":12041,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createteam",{"_index":4487,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createteam(team",{"_index":4496,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createtestingmodule",{"_index":22804,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["createtime",{"_index":2198,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createtmpdir",{"_index":9961,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtmpdir(dirnameprefix",{"_index":9973,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtoken",{"_index":18009,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createtoken(payload",{"_index":18016,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createuser(email",{"_index":1364,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createuserbyadmin(userid",{"_index":23063,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createusermigrationdto",{"_index":20584,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusermigrationdto(urlpath",{"_index":20588,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusersearchindex",{"_index":11229,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createusertoken(userid",{"_index":1328,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createwelcomecolumnboard",{"_index":4727,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createwelcomecolumnboard(coursereference",{"_index":4734,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creating",{"_index":6901,"title":{},"body":{"classes/CreateNewsParams.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LessonCopyApiParams.html":{},"injectables/NextcloudStrategy.html":{},"classes/TaskCopyApiParams.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["creation",{"_index":3469,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/GlobalValidationPipe.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/SchoolInMigrationError.html":{}}}],["creationyear",{"_index":4977,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["creator",{"_index":6727,"title":{},"body":{"entities/CourseNews.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"classes/TaskFactory.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["creator'})@index",{"_index":9570,"title":{},"body":{"entities/FileEntity.html":{}}}],["creatorid",{"_index":6110,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/CourseNews.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISubmissionProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"entities/TeamNews.html":{}}}],["credential",{"_index":13105,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["credentialdata",{"_index":13192,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["credentialhash",{"_index":384,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{}}}],["credentials",{"_index":7853,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/IKeycloakSettings.html":{},"classes/IdentityManagementOauthService.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"modules/S3ClientModule.html":{}}}],["crit",{"_index":8177,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["crit(loggable",{"_index":8183,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["criteria",{"_index":533,"title":{},"body":{"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["criterion",{"_index":21774,"title":{},"body":{"license.html":{}}}],["cross",{"_index":6327,"title":{},"body":{"modules/CoreModule.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["crossing",{"_index":22621,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["crud",{"_index":2490,"title":{},"body":{"classes/BaseDomainObject.html":{},"controllers/CollaborativeStorageController.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["crud.uc",{"_index":15518,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crud.uc.ts",{"_index":15419,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:15",{"_index":15434,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:22",{"_index":15430,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:41",{"_index":15428,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:50",{"_index":15424,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:59",{"_index":15432,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:72",{"_index":15426,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:9",{"_index":15422,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crudoperation",{"_index":14641,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["cruduc",{"_index":15527,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crypto",{"_index":1812,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BBBService.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/LessonCopyService.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"dependencies.html":{}}}],["crypto.createhash('sha1",{"_index":2369,"title":{},"body":{"injectables/BBBService.html":{}}}],["crypto.generatekeypairsync('rsa",{"_index":6869,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["cryptojs",{"_index":14166,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(data",{"_index":18498,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(value",{"_index":18184,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.aes.encrypt(data",{"_index":18497,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.encrypt(value",{"_index":18181,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.hmacsha1(base_string",{"_index":14176,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["cryptojs.sha256(saveduser.id",{"_index":15963,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["ctltoolstabenabled",{"_index":12081,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["cumbersome",{"_index":2506,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["cure",{"_index":22043,"title":{},"body":{"license.html":{}}}],["curl",{"_index":13162,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currenlty",{"_index":16951,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["current",{"_index":4586,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollectionFilePath.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PaginationResponse.html":{},"classes/PatchMyAccountParams.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolYearService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["currentdate",{"_index":17699,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["currentdatetime",{"_index":11132,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["currentldapid",{"_index":12657,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["currently",{"_index":774,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/BaseRepo.html":{},"modules/BoardModule.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currentredirect",{"_index":10972,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{}}}],["currentrooms",{"_index":7373,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentrooms.foreach((room",{"_index":7375,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentteacher",{"_index":5026,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["currentuser",{"_index":513,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/ImportUserController.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuser.schoolid",{"_index":14622,"title":{},"body":{"controllers/NewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuser.systemid",{"_index":15800,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["currentuser.userid",{"_index":3710,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/LegacySchoolController.html":{},"controllers/NewsController.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuserid",{"_index":4640,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthUc.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["currentusermapper",{"_index":6929,"title":{"classes/CurrentUserMapper.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserService.html":{}}}],["currentusermapper.jwttoicurrentuser(payload",{"_index":12706,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["currentusermapper.userdotoicurrentuser(account.id",{"_index":15167,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["currentusermapper.usertoicurrentuser(account.id",{"_index":13346,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/UserService.html":{}}}],["currentyear",{"_index":11718,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["custom",{"_index":1508,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["custom_error_type",{"_index":22655,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["customarily",{"_index":21902,"title":{},"body":{"license.html":{}}}],["customary",{"_index":22158,"title":{},"body":{"license.html":{}}}],["customer",{"_index":21907,"title":{},"body":{"license.html":{}}}],["customfields",{"_index":1282,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["customizations",{"_index":17830,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["customizing",{"_index":6330,"title":{},"body":{"modules/CoreModule.html":{}}}],["customkey",{"_index":18171,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["customltiproperty",{"_index":6957,"title":{"interfaces/CustomLtiProperty.html":{}},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["customltipropertydo",{"_index":7030,"title":{"classes/CustomLtiPropertyDO.html":{}},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["customltipropertydo('key",{"_index":14324,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["customparam",{"_index":7169,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameter",{"_index":136,"title":{"classes/CustomParameter.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameter.default",{"_index":327,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regex",{"_index":8705,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regexcomment",{"_index":8706,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.scope",{"_index":326,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some",{"_index":8697,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some((item",{"_index":8695,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.type",{"_index":308,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameter.type}/${contextexternaltool.contextref.type",{"_index":319,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameterdo.default",{"_index":9035,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.description",{"_index":9034,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.displayname",{"_index":9033,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.isoptional",{"_index":9041,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.name",{"_index":9032,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regex",{"_index":9036,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regexcomment",{"_index":9037,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdos",{"_index":135,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["customparameterdos.filter",{"_index":289,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameterdto",{"_index":8908,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterentity",{"_index":7086,"title":{"classes/CustomParameterEntity.html":{}},"body":{"classes/CustomParameterEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["customparameterentityfactory",{"_index":8506,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentityfactory.build",{"_index":8513,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentry",{"_index":181,"title":{"classes/CustomParameterEntry.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/CustomParameterEntry.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterentryentity",{"_index":5680,"title":{"classes/CustomParameterEntryEntity.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/ExternalToolRepoMapper.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["customparameterentryparam",{"_index":5731,"title":{"classes/CustomParameterEntryParam.html":{}},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameterEntryParam.html":{},"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterentryresponse",{"_index":5839,"title":{"classes/CustomParameterEntryResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterfactory",{"_index":7117,"title":{"classes/CustomParameterFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.buildlist(number",{"_index":7170,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.define(customparameter",{"_index":7160,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterlocation",{"_index":146,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.body",{"_index":7162,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.path",{"_index":8509,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.query",{"_index":8939,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocationparams",{"_index":7188,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.body",{"_index":8940,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.path",{"_index":8937,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.query",{"_index":8938,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterparam",{"_index":5862,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparam.defaultvalue",{"_index":8974,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.description",{"_index":8973,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.displayname",{"_index":8972,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.isoptional",{"_index":8980,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.name",{"_index":5829,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparam.regex",{"_index":8975,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.regexcomment",{"_index":8976,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.value",{"_index":5830,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams",{"_index":5820,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams.map",{"_index":5861,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparams.map((customparameterparam",{"_index":5828,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterpostparams",{"_index":7178,"title":{"classes/CustomParameterPostParams.html":{}},"body":{"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["customparameterresponse",{"_index":5647,"title":{"classes/CustomParameterResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["customparameters",{"_index":275,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameters.map",{"_index":8877,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["customparameters.map((customparameterdo",{"_index":9031,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscope",{"_index":195,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.context",{"_index":281,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.global",{"_index":278,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.school",{"_index":279,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscopetypeparams",{"_index":7194,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.context",{"_index":8935,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.global",{"_index":8933,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.school",{"_index":8934,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype",{"_index":196,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparametertype.auto_contextid",{"_index":312,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_contextname",{"_index":314,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_schoolid",{"_index":310,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_schoolnumber",{"_index":320,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.boolean",{"_index":323,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.number",{"_index":324,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.string",{"_index":325,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparametertypeparams",{"_index":7197,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextid",{"_index":8944,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextname",{"_index":8945,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolid",{"_index":8946,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolnumber",{"_index":8947,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.boolean",{"_index":8942,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.number",{"_index":8943,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.string",{"_index":8941,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customproviderclass.name",{"_index":13410,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["customs",{"_index":6979,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["customtoparameterlocationmapping",{"_index":19745,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["customtoparameterlocationmapping[location",{"_index":19755,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["cycle",{"_index":3549,"title":{},"body":{"modules/BoardModule.html":{}}}],["d",{"_index":6270,"title":{},"body":{"injectables/CopyHelperService.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["damages",{"_index":22191,"title":{},"body":{"license.html":{}}}],["das",{"_index":4765,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["dash",{"_index":21629,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["dashboard",{"_index":7219,"title":{},"body":{"controllers/DashboardController.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["dashboard.getelement(position",{"_index":7639,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.getid",{"_index":7473,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboard.getuserid",{"_index":7641,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.model.mapper",{"_index":7595,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboard.moveelement(from",{"_index":7638,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.setlearnrooms(courses",{"_index":7634,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard_repo",{"_index":13385,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardcontroller",{"_index":7217,"title":{"controllers/DashboardController.html":{}},"body":{"controllers/DashboardController.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardelement",{"_index":7417,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardentity",{"_index":7251,"title":{"classes/DashboardEntity.html":{}},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IGridElement.html":{}}}],["dashboardentity(modelentity.id",{"_index":7546,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["dashboardentity(new",{"_index":7598,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardgridelementmodel",{"_index":7404,"title":{"entities/DashboardGridElementModel.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementmodelproperties",{"_index":7415,"title":{"interfaces/DashboardGridElementModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementresponse",{"_index":7436,"title":{"classes/DashboardGridElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse",{"_index":7444,"title":{"classes/DashboardGridSubElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse(metadata",{"_index":7492,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardid",{"_index":7242,"title":{},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{}}}],["dashboardmapper",{"_index":7232,"title":{"classes/DashboardMapper.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardMapper.html":{}}}],["dashboardmapper.mapgridelement(elementwithposition",{"_index":7475,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maplearnroom(groupmetadata",{"_index":7491,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maptoresponse(dashboard",{"_index":7241,"title":{},"body":{"controllers/DashboardController.html":{}}}],["dashboardmodel",{"_index":7606,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardmodelentity",{"_index":7416,"title":{"entities/DashboardModelEntity.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardmodelmapper",{"_index":7496,"title":{"injectables/DashboardModelMapper.html":{}},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardprops",{"_index":7268,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["dashboardrepo",{"_index":7581,"title":{"injectables/DashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardresponse",{"_index":7236,"title":{"classes/DashboardResponse.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["dashboarduc",{"_index":7234,"title":{"injectables/DashboardUc.html":{}},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardurl",{"_index":15109,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["dashboardurl.tostring",{"_index":15116,"title":{},"body":{"injectables/OAuthService.html":{}}}],["dashboardurlparams",{"_index":7223,"title":{"classes/DashboardUrlParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardUrlParams.html":{}}}],["data",{"_index":163,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountSearchListResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"interfaces/CopyFiles.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardMapper.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ElementContentBody.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/FeathersService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElementContentBody.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileResponseBuilder.html":{},"classes/ForbiddenLoggableException.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GlobalValidationPipe.html":{},"classes/GroupRoleUnknownLoggable.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacyLogger.html":{},"controllers/LoginController.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"interfaces/Meta.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"interfaces/PreviewFileParams.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/PublicSystemListResponse.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"interfaces/SuccessfulRes.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"classes/ToolLaunchData.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceListResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["data.basepath",{"_index":1552,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.body",{"_index":17129,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentlength",{"_index":17132,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentrange",{"_index":17133,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents.map((p",{"_index":17170,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents?.length",{"_index":17169,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contenttype",{"_index":17131,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contextexternaltool.contextref.id",{"_index":14229,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["data.dto.ts",{"_index":15346,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:11",{"_index":15349,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:13",{"_index":15348,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:7",{"_index":15352,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:9",{"_index":15350,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.etag",{"_index":17134,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.externalgroups",{"_index":16002,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalgroups.map((externalgroup",{"_index":16004,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalschool",{"_index":15836,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.externalid",{"_index":15839,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.officialschoolnumber",{"_index":15840,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool?.officialschoolnumber",{"_index":15087,"title":{},"body":{"injectables/OAuthService.html":{}}}],["data.externaltool",{"_index":14228,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["data.externaluser",{"_index":15999,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externaluser.externalid",{"_index":15086,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externaluser?.externalid",{"_index":12652,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["data.gridelement.getcontent",{"_index":7477,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.id",{"_index":6072,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.mountsdescription",{"_index":1554,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.name",{"_index":6075,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.port",{"_index":1550,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.pos",{"_index":7478,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.response",{"_index":18316,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["data.response.ts",{"_index":20134,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:11",{"_index":20136,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:14",{"_index":20137,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:17",{"_index":20138,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:3",{"_index":20135,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.sourceid",{"_index":6074,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.system.systemid",{"_index":15997,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.ts",{"_index":16282,"title":{},"body":{"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["data.ts:11",{"_index":19722,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:4",{"_index":16284,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:5",{"_index":19723,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:6",{"_index":16285,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:7",{"_index":19726,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:8",{"_index":16283,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:9",{"_index":19724,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data/federalstates.ts",{"_index":21553,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/generateseeddata",{"_index":11113,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["data/generateseeddata.ts",{"_index":21560,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/roles.ts",{"_index":21554,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/schools.ts",{"_index":21557,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/schoolyears.ts",{"_index":21559,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/systems.ts",{"_index":21563,"title":{},"body":{"miscellaneous/functions.html":{}}}],["database",{"_index":7652,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"modules/DatabaseManagementModule.html":{},"interfaces/GlobalConstants.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ITaskParent.html":{},"classes/KeycloakConsole.html":{},"classes/MongoPatterns.html":{},"interfaces/Options.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["database.js",{"_index":10276,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["database.module.ts",{"_index":14532,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:31",{"_index":14533,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:42",{"_index":14535,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/mongo",{"_index":14531,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/types",{"_index":10324,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["databasemanagementconsole",{"_index":7644,"title":{"classes/DatabaseManagementConsole.html":{}},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["databasemanagementcontroller",{"_index":7684,"title":{"controllers/DatabaseManagementController.html":{}},"body":{"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementmodule",{"_index":7714,"title":{"modules/DatabaseManagementModule.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["databasemanagementservice",{"_index":7718,"title":{"injectables/DatabaseManagementService.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementuc",{"_index":7649,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["dataformats",{"_index":22852,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["datamodel",{"_index":22509,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["datawithdefaults",{"_index":15442,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["date",{"_index":83,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthenticationService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/CardService.html":{},"classes/Class.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/County.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/ElementContentBody.html":{},"classes/ExternalGroupDto.html":{},"entities/FederalState.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesRepo.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/IUserProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/MigrationResponse.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/OauthConfig.html":{},"classes/OauthMigrationDto.html":{},"classes/OidcConfig.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"classes/ResolvedUserResponse.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SanisLaufzeitResponse.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"classes/TimestampsResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/UserScope.html":{},"classes/VideoConferenceInfo.html":{},"license.html":{}}}],["date().gettime",{"_index":1839,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["date(2020",{"_index":13520,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["date(date.now",{"_index":5512,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/CourseFactory.html":{},"classes/FileRecordFactory.html":{},"controllers/OauthSSOController.html":{},"classes/TaskFactory.html":{},"classes/TaskScope.html":{},"injectables/UserLoginMigrationService.html":{}}}],["date(now.gettime",{"_index":20463,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["date(user.createdtimestamp",{"_index":13142,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["date.now",{"_index":4474,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"interfaces/CreateJwtParams.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/JwtTestFactory.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["date.setdate(date.getdate",{"_index":18098,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["days",{"_index":7780,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"license.html":{}}}],["dayssincedeletion",{"_index":7783,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["db",{"_index":779,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/DatabaseManagementService.html":{},"classes/ImportUserScope.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserRepo.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["db.service",{"_index":830,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{}}}],["db.service.ts",{"_index":1161,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:13",{"_index":1164,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:134",{"_index":1175,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:142",{"_index":1168,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db_password",{"_index":10258,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"interfaces/GlobalConstants.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["db_url",{"_index":10259,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"interfaces/GlobalConstants.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["db_username",{"_index":10260,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"interfaces/GlobalConstants.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["dbc",{"_index":12221,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["dbcaccountid",{"_index":13100,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcaccountid:${accountdbcaccountid",{"_index":13116,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbcsystemid",{"_index":13102,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid",{"_index":13101,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid:${accountdbcuserid",{"_index":13120,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbildungscloud",{"_index":22240,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["dbname",{"_index":14537,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["dd",{"_index":14060,"title":{},"body":{"modules/LoggerModule.html":{}}}],["de",{"_index":7155,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"classes/Oauth2ToolConfigFactory.html":{},"entities/User.html":{}}}],["dealing",{"_index":22511,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["debug",{"_index":5400,"title":{},"body":{"classes/ConsentRequestBody.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["debug(loggable",{"_index":14027,"title":{},"body":{"injectables/Logger.html":{}}}],["debug(message",{"_index":11524,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["debugger",{"_index":21620,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["debugging",{"_index":10278,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["december",{"_index":21843,"title":{},"body":{"license.html":{}}}],["decide",{"_index":4631,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"classes/ErrorLoggable.html":{},"license.html":{},"todo.html":{}}}],["decides",{"_index":12885,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["decisions",{"_index":22476,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["declarations",{"_index":430,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["declare",{"_index":16474,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["declared",{"_index":3886,"title":{},"body":{"classes/BusinessError.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["declining",{"_index":22009,"title":{},"body":{"license.html":{}}}],["decoded",{"_index":21536,"title":{},"body":{"miscellaneous/functions.html":{}}}],["decodedjwt",{"_index":1833,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/OAuthService.html":{}}}],["decodedjwt.accountid",{"_index":1836,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodedjwt.jti",{"_index":1835,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodehtmlentities",{"_index":2787,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"miscellaneous/functions.html":{}}}],["decodehtmlentities()@apiproperty({description",{"_index":7450,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["decorated",{"_index":10540,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["decorator",{"_index":8161,"title":{},"body":{"classes/ErrorLoggable.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["decorator/auth.decorator",{"_index":14099,"title":{},"body":{"controllers/LoginController.html":{}}}],["decorators",{"_index":364,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"classes/BoardResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"controllers/CollaborativeStorageController.html":{},"entities/ColumnBoardNode.html":{},"entities/ColumnBoardTarget.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRefParams.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"entities/CourseGroup.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"entities/DashboardGridElementModel.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"classes/DeleteFilesConsole.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalState.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"classes/FileElementResponse.html":{},"entities/FileEntity.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"controllers/FileSecurityController.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalValidationPipe.html":{},"entities/GroupEntity.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"controllers/H5PEditorController.html":{},"classes/IdParams.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"controllers/LegacySchoolController.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"entities/LessonEntity.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"classes/OidcContextResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"entities/PseudonymEntity.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"classes/RichTextElementResponse.html":{},"entities/Role.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"entities/SubmissionItemNode.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserEntity.html":{},"classes/TimestampsResponse.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserController.html":{},"classes/UserDataResponse.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserParams.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["decoupled",{"_index":22850,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["decrypt",{"_index":11389,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decrypt(data",{"_index":11391,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decryptedclientsecret",{"_index":15133,"title":{},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["decryptedstring",{"_index":18183,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["deemed",{"_index":21831,"title":{},"body":{"license.html":{}}}],["deepmocked",{"_index":22793,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["deeppartial",{"_index":700,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["default",{"_index":329,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolScope.html":{},"injectables/CopyHelperService.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"entities/DashboardModelEntity.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"modules/ErrorModule.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolScope.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IToolFeatures.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"injectables/Logger.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/PaginationParams.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"controllers/ServerController.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/ToolConfiguration.html":{},"entities/User.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["default...what",{"_index":6415,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["default.color",{"_index":6373,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["default.description",{"_index":6379,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["default.name",{"_index":6384,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["default.schema.json",{"_index":22316,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["default_errorcode",{"_index":14990,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["default_language",{"_index":11248,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["default_message",{"_index":14991,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["defaultclientinternalid",{"_index":12863,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultcolumns",{"_index":7308,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["defaultencryptionservice",{"_index":8108,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["defaulterror",{"_index":11573,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultmapper",{"_index":12967,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper.id",{"_index":12993,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper?.id",{"_index":12970,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmessage",{"_index":1493,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/IErrorType.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["defaultmikroormoptions",{"_index":10272,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["defaultoauthclientbody",{"_index":15420,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["defaultoptions",{"_index":14547,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["defaults",{"_index":1035,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ConsentRequestBody.html":{},"classes/CreateNewsParams.html":{},"injectables/FileSystemAdapter.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/PaginationParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["defaultscope",{"_index":15893,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["defaultscopes",{"_index":11936,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["defaultsecretreplacementhinttext",{"_index":11117,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["defaulttestpassword",{"_index":740,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["defaulttestpasswordhash",{"_index":742,"title":{},"body":{"classes/AccountFactory.html":{}}}],["defaultvalue",{"_index":7181,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultvideoconferenceoptions",{"_index":20941,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everyattendeejoinsmuted",{"_index":20942,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everybodyjoinsasmoderator",{"_index":20943,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.moderatormustapprovejoinrequests",{"_index":20944,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defective",{"_index":22184,"title":{},"body":{"license.html":{}}}],["defending",{"_index":21698,"title":{},"body":{"license.html":{}}}],["defenses",{"_index":22141,"title":{},"body":{"license.html":{}}}],["define",{"_index":672,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"entities/CourseNews.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"entities/SchoolNews.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["define(this",{"_index":715,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["defined",{"_index":27,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IGridElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"modules/RocketChatModule.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"classes/SSOLoginQuery.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["defines",{"_index":22352,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["defining",{"_index":2515,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["definition",{"_index":1499,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"modules/AuthenticationModule.html":{},"classes/ErrorResponse.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["definitions",{"_index":11226,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["delay",{"_index":11589,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["delay(ms",{"_index":13035,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["delete",{"_index":10,"title":{},"body":{"classes/AbstractAccountService.html":{},"controllers/AccountController.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardRepo.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FederalStateRepo.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacySchoolRepo.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonRepo.html":{},"injectables/LessonUC.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/RoleRepo.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SystemRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["delete(':boardid",{"_index":2977,"title":{},"body":{"controllers/BoardController.html":{}}}],["delete(':cardid",{"_index":4067,"title":{},"body":{"controllers/CardController.html":{}}}],["delete(':columnid",{"_index":4881,"title":{},"body":{"controllers/ColumnController.html":{}}}],["delete(':contentelementid",{"_index":8076,"title":{},"body":{"controllers/ElementController.html":{}}}],["delete(':contextexternaltoolid",{"_index":19615,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":19592,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':externaltoolid",{"_index":19689,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':externaltoolid')@apiforbiddenresponse({description",{"_index":19639,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':id",{"_index":584,"title":{},"body":{"controllers/AccountController.html":{}}}],["delete(':id')@apioperation({summary",{"_index":492,"title":{},"body":{"controllers/AccountController.html":{}}}],["delete(':importuserid/match",{"_index":12282,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["delete(':lessonid",{"_index":13658,"title":{},"body":{"controllers/LessonController.html":{}}}],["delete(':newsid",{"_index":14599,"title":{},"body":{"controllers/NewsController.html":{}}}],["delete(':schoolexternaltoolid",{"_index":19933,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":19906,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':scope/:scopeid",{"_index":21036,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':scope/:scopeid')@apioperation({summary",{"_index":21009,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':submissionid",{"_index":18242,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["delete(':taskid",{"_index":18779,"title":{},"body":{"controllers/TaskController.html":{}}}],["delete('auth/sessions/consent",{"_index":15569,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete('clients/:id",{"_index":15542,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete(@param",{"_index":13662,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(accountid",{"_index":1056,"title":{},"body":{"injectables/AccountService.html":{}}}],["delete(board",{"_index":4737,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["delete(card",{"_index":4131,"title":{},"body":{"injectables/CardService.html":{}}}],["delete(column",{"_index":4907,"title":{},"body":{"injectables/ColumnService.html":{}}}],["delete(domainobject",{"_index":2476,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{}}}],["delete(domainobjects",{"_index":2403,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["delete(element",{"_index":5534,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["delete(entities",{"_index":910,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["delete(group",{"_index":10713,"title":{},"body":{"injectables/GroupService.html":{}}}],["delete(id",{"_index":25,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/NewsUc.html":{}}}],["delete(path",{"_index":1741,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(paths",{"_index":17100,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["delete(submission",{"_index":18442,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["delete(subpath",{"_index":1739,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(task",{"_index":19124,"title":{},"body":{"injectables/TaskService.html":{}}}],["delete(urlparams",{"_index":13656,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(userid",{"_index":13963,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{}}}],["delete.vistor",{"_index":3311,"title":{},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{}}}],["delete.vistor.ts",{"_index":16493,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:18",{"_index":16496,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:24",{"_index":16503,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:29",{"_index":16502,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:34",{"_index":16499,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:39",{"_index":16504,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:46",{"_index":16505,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:51",{"_index":16506,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:56",{"_index":16508,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:61",{"_index":16498,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:65",{"_index":16501,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete_files_of_parent",{"_index":11364,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["deleteaccountbyid",{"_index":484,"title":{},"body":{"controllers/AccountController.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteaccountbyid(accountid",{"_index":12217,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["deleteaccountbyid(currentuser",{"_index":490,"title":{},"body":{"controllers/AccountController.html":{}}}],["deleteaccountbyid(id",{"_index":13075,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteboard",{"_index":2920,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["deleteboard(@param",{"_index":2978,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(urlparams",{"_index":2935,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(userid",{"_index":3778,"title":{},"body":{"injectables/BoardUc.html":{}}}],["deletebyexternaltoolid",{"_index":17385,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyexternaltoolid(toolid",{"_index":17391,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyid",{"_index":878,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["deletebyid(accountid",{"_index":886,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["deletebyid(id",{"_index":2407,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["deletebyschoolexternaltoolid",{"_index":5902,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":5909,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolids",{"_index":5745,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":5753,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyuserid",{"_index":11,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/PseudonymService.html":{}}}],["deletebyuserid(userid",{"_index":37,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/PseudonymService.html":{}}}],["deletecard",{"_index":3758,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{}}}],["deletecard(@param",{"_index":4068,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(urlparams",{"_index":4016,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(userid",{"_index":3780,"title":{},"body":{"injectables/BoardUc.html":{}}}],["deletecolumn",{"_index":3759,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["deletecolumn(@param",{"_index":4882,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(urlparams",{"_index":4861,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(userid",{"_index":3783,"title":{},"body":{"injectables/BoardUc.html":{}}}],["deletecontextexternaltool",{"_index":5903,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(contextexternaltool",{"_index":5911,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletecontextexternaltool(currentuser",{"_index":19591,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(userid",{"_index":5941,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["deleted",{"_index":500,"title":{},"body":{"controllers/AccountController.html":{},"injectables/BaseDORepo.html":{},"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["deletedat",{"_index":9562,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"interfaces/IUserProperties.html":{},"classes/TimestampsResponse.html":{},"entities/User.html":{},"injectables/UserRepo.html":{}}}],["deletedcount",{"_index":7757,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["deletedexternaltoolpseudonyms",{"_index":16426,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedfoldername",{"_index":17085,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedid",{"_index":14635,"title":{},"body":{"controllers/NewsController.html":{}}}],["deletedirectory",{"_index":17088,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedirectory(path",{"_index":17102,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedpseudonyms",{"_index":16425,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedsince",{"_index":6112,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["deleteelement",{"_index":4176,"title":{},"body":{"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["deleteelement(urlparams",{"_index":8052,"title":{},"body":{"controllers/ElementController.html":{}}}],["deleteelement(userid",{"_index":4185,"title":{},"body":{"injectables/CardUc.html":{}}}],["deleteentitybyid",{"_index":2387,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["deleteentitybyid(id",{"_index":2409,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["deleteexternaltool",{"_index":9072,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["deleteexternaltool(currentuser",{"_index":19638,"title":{},"body":{"controllers/ToolController.html":{}}}],["deleteexternaltool(toolid",{"_index":9089,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["deleteexternaltool(userid",{"_index":9196,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["deleteexternaltoolpseudonymsbyuserid",{"_index":16392,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deleteexternaltoolpseudonymsbyuserid(userid",{"_index":16402,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletefile",{"_index":7798,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefile(file",{"_index":7810,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage",{"_index":7799,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage(file",{"_index":7813,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefilesconsole",{"_index":7769,"title":{"classes/DeleteFilesConsole.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{}}}],["deletefilesofparent",{"_index":10103,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent(@rabbitpayload",{"_index":10200,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["deletefilesofparent(parentid",{"_index":10110,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["deletefilesofparent(payload",{"_index":10178,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:finished",{"_index":10310,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:started",{"_index":10308,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesuc",{"_index":7774,"title":{"injectables/DeleteFilesUc.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["deletegroup(groupname",{"_index":1362,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteidentityprovider",{"_index":12851,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteidentityprovider(alias",{"_index":12874,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteimportusersbyschool",{"_index":12455,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deleteimportusersbyschool(school",{"_index":12459,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deletelesson",{"_index":13940,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletelesson(lesson",{"_index":13944,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletemarkedfiles",{"_index":7772,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["deletemarkedfiles(dayssincedeletion",{"_index":7776,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["deletemarkedfiles(thresholddate",{"_index":7815,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletenode",{"_index":16494,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deletenode(domainobject",{"_index":16497,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deleteoauth2client",{"_index":10829,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["deleteoauth2client(@currentuser",{"_index":15543,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(currentuser",{"_index":15425,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(id",{"_index":10850,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["deleteobjectcommand",{"_index":7818,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deleteobjects",{"_index":17155,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deleteobjectscommand",{"_index":17113,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletepreviews",{"_index":16131,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepreviews(filerecords",{"_index":16144,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepseudonymsbyuserid",{"_index":8727,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletepseudonymsbyuserid(userid",{"_index":8735,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletes",{"_index":493,"title":{},"body":{"controllers/AccountController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/IdentityManagementService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool",{"_index":17494,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(currentuser",{"_index":19905,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(userid",{"_index":17501,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["deleteschoolexternaltoolbyid",{"_index":17458,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":17466,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deletesubmissions",{"_index":19122,"title":{},"body":{"injectables/TaskService.html":{}}}],["deletesubmissions(task",{"_index":19126,"title":{},"body":{"injectables/TaskService.html":{}}}],["deleteteam",{"_index":4488,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteteam(teamid",{"_index":4500,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteuser(username",{"_index":1367,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteuserdatafromclasses",{"_index":4396,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromclasses(userid",{"_index":4400,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromcourse",{"_index":6828,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcourse(userid",{"_index":6830,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcoursegroup",{"_index":6672,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromcoursegroup(userid",{"_index":6675,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromlessons",{"_index":13941,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromlessons(userid",{"_index":13946,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromteams",{"_index":19329,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserdatafromteams(userid",{"_index":19333,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserloginmigration",{"_index":20424,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deleteuserloginmigration(userloginmigration",{"_index":20433,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deletevisitor",{"_index":3282,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["deletewithdescendants",{"_index":3371,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deletewithdescendants(domainobject",{"_index":3374,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deleting",{"_index":7786,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["deletion",{"_index":5279,"title":{},"body":{"modules/CommonToolModule.html":{},"classes/DeleteFilesConsole.html":{},"injectables/S3ClientAdapter.html":{}}}],["deletioncommand",{"_index":7863,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletions",{"_index":7838,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["dem",{"_index":4757,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["demand",{"_index":14967,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["denied",{"_index":21978,"title":{},"body":{"license.html":{}}}],["denominated",{"_index":22104,"title":{},"body":{"license.html":{}}}],["depend",{"_index":22460,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dependencies",{"_index":428,"title":{"dependencies.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"dependencies.html":{},"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["dependency",{"_index":3548,"title":{},"body":{"modules/BoardModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dependent",{"_index":22975,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["depending",{"_index":9995,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["depends",{"_index":9981,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["deployment",{"_index":13158,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["deployments",{"_index":22530,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["deprecated",{"_index":102,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ISchoolProperties.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{},"injectables/PermissionService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["deprecated.controller.ts",{"_index":21003,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:107",{"_index":21010,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:47",{"_index":21008,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:87",{"_index":21012,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.response",{"_index":21018,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecated.response.ts",{"_index":7870,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:10",{"_index":20864,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:12",{"_index":20863,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:25",{"_index":7894,"title":{},"body":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["deprecated.response.ts:37",{"_index":7876,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:43",{"_index":7874,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:8",{"_index":20865,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecatedvideoconferenceinforesponse",{"_index":7867,"title":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecatedvideoconferencejoinresponse",{"_index":7886,"title":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprive",{"_index":22112,"title":{},"body":{"license.html":{}}}],["depth",{"_index":3288,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["der",{"_index":4770,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["derivecopyname",{"_index":6245,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopyname(name",{"_index":6249,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopystatus",{"_index":6191,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["derivecopystatus(contentstatus",{"_index":13708,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["derivecopystatus(filecopystatus",{"_index":18832,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filedtos",{"_index":6201,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["derivecoursestatus",{"_index":6519,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivecoursestatus(originalcourse",{"_index":6529,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivestatusfromelements",{"_index":6246,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivestatusfromelements(elements",{"_index":6252,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["des",{"_index":4788,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["desc",{"_index":3618,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["descendant",{"_index":3609,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendant.path.match(`^${n.pathofchildren",{"_index":3617,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendants",{"_index":3199,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["describe",{"_index":22507,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"course",{"_index":22707,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"when",{"_index":22709,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('[method",{"_index":22737,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('createcourse",{"_index":22708,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('somefunction",{"_index":22810,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('when",{"_index":22738,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["described",{"_index":15252,"title":{},"body":{"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["describes",{"_index":2499,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["description",{"_index":379,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ApiValidationErrorResponse.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardUrlParams.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"classes/CardIdsParams.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnUrlParams.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ConverterUtil.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"modules/CoreModule.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchParams.html":{},"modules/FeathersModule.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordParams.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"classes/FilterNewsParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/GuardAgainst.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsScope.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/IdParams.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"modules/InterceptorModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConfig.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/LtiToolFactory.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"interfaces/Options.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RenameFileParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolParams.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserInfoResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"index.html":{},"properties.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["description.a",{"_index":22681,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["descriptioncommit",{"_index":22883,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["descriptioninputformat",{"_index":11951,"title":{},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"classes/TaskWithStatusVo.html":{}}}],["descriptionoroptions",{"_index":13251,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["descriptions",{"_index":12055,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["descriptive",{"_index":11456,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["deserialize",{"_index":3845,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["deserialize(bsondocuments",{"_index":3847,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["deserializes",{"_index":3849,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["design",{"_index":22242,"title":{"additional-documentation/nestjs-application/api-design.html":{}},"body":{"properties.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["designated",{"_index":21917,"title":{},"body":{"license.html":{}}}],["designed",{"_index":21666,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["desireable",{"_index":15592,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["desired",{"_index":22736,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["destination",{"_index":6050,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["destinationcourse",{"_index":3003,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destinationcourse).then((status",{"_index":3054,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourse.id",{"_index":13847,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["destinationcourseid",{"_index":6048,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["destinationlesson",{"_index":13703,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destroyed",{"_index":16488,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["detail",{"_index":22166,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["detail.response",{"_index":1521,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["detail.response.ts",{"_index":20817,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detail.response.ts:1",{"_index":20819,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detailed",{"_index":22442,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["details",{"_index":1473,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/IdentityManagementService.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationError.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["detect",{"_index":11187,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"miscellaneous/functions.html":{}}}],["detectcontenttypeorthrow",{"_index":8551,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detectcontenttypeorthrow(imagebuffer",{"_index":8559,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detected",{"_index":9828,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["detection",{"_index":75,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["determine",{"_index":22439,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["determinebbbrole",{"_index":21214,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["determinebbbrole(userid",{"_index":21232,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["determineinput",{"_index":16314,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determineinput(systemid",{"_index":16323,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determinelaunchrequestmethod",{"_index":124,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinelaunchrequestmethod(properties",{"_index":176,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinenewroomsin",{"_index":7255,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["determinenewroomsin(rooms",{"_index":7278,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["determinestatus",{"_index":17459,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinestatus(tool",{"_index":17468,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinetoolconfigurationstatus",{"_index":5286,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determinetoolconfigurationstatus(externaltool",{"_index":5288,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determining",{"_index":16097,"title":{},"body":{"classes/PatchOrderParams.html":{},"license.html":{}}}],["deubg",{"_index":22863,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["dev",{"_index":22365,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["develop",{"_index":13159,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["developer",{"_index":5404,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["developers",{"_index":21688,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["development",{"_index":11421,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"classes/KeycloakConsole.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["devices",{"_index":4170,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["dfsdfsf",{"_index":21645,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["di",{"_index":22572,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dialnumber",{"_index":2199,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["dictionary",{"_index":10248,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["didnt",{"_index":22895,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["diffenrent",{"_index":22300,"title":{},"body":{"todo.html":{}}}],["differ",{"_index":22165,"title":{},"body":{"license.html":{}}}],["different",{"_index":4169,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/NewsRepo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["differentiation",{"_index":23030,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["differently",{"_index":22000,"title":{},"body":{"license.html":{}}}],["differs",{"_index":22727,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dir",{"_index":11126,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["direct",{"_index":12905,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["direction",{"_index":21819,"title":{},"body":{"license.html":{}}}],["directions",{"_index":21923,"title":{},"body":{"license.html":{}}}],["directly",{"_index":954,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["directories",{"_index":9606,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["directory",{"_index":9971,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["dirnameprefix",{"_index":9977,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["dirpath",{"_index":10017,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["disable",{"_index":1299,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/ConsoleWriterService.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SystemRepo.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserRepo.html":{},"todo.html":{}}}],["disabled",{"_index":15098,"title":{},"body":{"injectables/OAuthService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/VideoConferenceService.html":{}}}],["disallow",{"_index":23033,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["disclaim",{"_index":21853,"title":{},"body":{"license.html":{}}}],["disclaimer",{"_index":22175,"title":{},"body":{"license.html":{}}}],["disclaiming",{"_index":21997,"title":{},"body":{"license.html":{}}}],["discovery",{"_index":2504,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"todo.html":{}}}],["discriminator",{"_index":8038,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["discriminatorcolumn",{"_index":3399,"title":{},"body":{"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CourseNews.html":{},"classes/ExternalToolConfigEntity.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["discriminatorvalue",{"_index":2620,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/CourseNews.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/INewsProperties.html":{},"entities/LessonBoardElement.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigEntity.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SchoolNews.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["discriminatory",{"_index":22126,"title":{},"body":{"license.html":{}}}],["discussed",{"_index":2574,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["discussion",{"_index":22494,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["discussion_enabled=false",{"_index":22995,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["display",{"_index":15873,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{},"classes/PublicSystemResponse.html":{},"classes/ToolReferenceResponse.html":{},"license.html":{}}}],["displayat",{"_index":6726,"title":{},"body":{"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"classes/UpdateNewsParams.html":{}}}],["displaycolor",{"_index":3715,"title":{},"body":{"classes/BoardTaskResponse.html":{},"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["displayed",{"_index":6908,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/UpdateNewsParams.html":{},"license.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["displayname",{"_index":5602,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"classes/LdapConfig.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserService.html":{}}}],["displays",{"_index":21763,"title":{},"body":{"license.html":{}}}],["disposable",{"_index":21383,"title":{},"body":{"dependencies.html":{}}}],["disposition",{"_index":6513,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["dist",{"_index":21451,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["distinguish",{"_index":14904,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["distinguished",{"_index":22719,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["distinguishing",{"_index":22169,"title":{},"body":{"license.html":{}}}],["distingush",{"_index":23035,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["distribute",{"_index":21659,"title":{},"body":{"license.html":{}}}],["distributed",{"_index":22223,"title":{},"body":{"license.html":{}}}],["distributing",{"_index":22129,"title":{},"body":{"license.html":{}}}],["distribution",{"_index":21722,"title":{},"body":{"license.html":{}}}],["dn",{"_index":4331,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["do.builder",{"_index":3190,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["do.builder.ts",{"_index":3156,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:19",{"_index":3172,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:20",{"_index":3169,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:21",{"_index":3166,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:22",{"_index":3175,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:23",{"_index":3178,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:24",{"_index":3181,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:25",{"_index":3184,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.mapper",{"_index":12628,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["do.mapper.ts",{"_index":12595,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:13",{"_index":12602,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:5",{"_index":12599,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.repo",{"_index":20667,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["do.repo.ts",{"_index":3273,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/UserDORepo.html":{}}}],["do.repo.ts:11",{"_index":3284,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:141",{"_index":20071,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:151",{"_index":20080,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:18",{"_index":3291,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:25",{"_index":20081,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:26",{"_index":3289,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:33",{"_index":20074,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:39",{"_index":3293,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:53",{"_index":3303,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:65",{"_index":3296,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:71",{"_index":20077,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:75",{"_index":3298,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:79",{"_index":20075,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:82",{"_index":3301,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:87",{"_index":3306,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:93",{"_index":3286,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.rule.ts",{"_index":3351,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:11",{"_index":3357,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:17",{"_index":3355,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:8",{"_index":3354,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.service",{"_index":4143,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["do.service.ts",{"_index":3370,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:20",{"_index":3379,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:6",{"_index":3373,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:9",{"_index":3375,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["dobasefactory",{"_index":4335,"title":{"classes/DoBaseFactory.html":{}},"body":{"classes/ClassFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/UserDoFactory.html":{}}}],["dobasefactory.define(basictoolconfig",{"_index":7129,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["dobasefactory.define(lti11toolconfig",{"_index":7148,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["docker",{"_index":22319,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/mongo",{"_index":22962,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/rocketchat/rocket.chat:4.7.2envs",{"_index":23004,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["doclass",{"_index":3290,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["doclass.name",{"_index":3319,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["docs",{"_index":22288,"title":{},"body":{"todo.html":{}}}],["document",{"_index":6046,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/CreateNewsParams.html":{},"injectables/NewsRepo.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UpdateNewsParams.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["documentation",{"_index":21585,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["documented",{"_index":21983,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["documents",{"_index":3850,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doe",{"_index":18327,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["doe${sequence",{"_index":12354,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["doescourseexist",{"_index":3475,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doescourseexist(courseid",{"_index":3486,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doesn't",{"_index":13967,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/OAuthService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doesnt",{"_index":16582,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["doing",{"_index":22491,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["domain",{"_index":2485,"title":{"additional-documentation/nestjs-application/domain-object-validation.html":{}},"body":{"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/DomainObjectFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FederalStateService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/OidcProvisioningService.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/RoleNameMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolYearService.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/VideoConferenceCreateParams.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["domain)scopes",{"_index":23041,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["domain.mapper",{"_index":10682,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["domain.mapper.ts",{"_index":10590,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:15",{"_index":10597,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:43",{"_index":10601,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:60",{"_index":10605,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:72",{"_index":10603,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:81",{"_index":10610,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:90",{"_index":10608,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain/class",{"_index":4354,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domain/external",{"_index":8573,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["domainentity",{"_index":7532,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["domainerror",{"_index":10312,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["domainobject",{"_index":1857,"title":{"classes/DomainObject.html":{}},"body":{"interfaces/AuthorizableObject.html":{},"injectables/BaseDORepo.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardDoBuilder.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/Class.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LtiToolDO.html":{},"injectables/LtiToolRepo.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceRepo.html":{}}}],["domainobject.acceptasync(this.deletevisitor",{"_index":3349,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["domainobject.closedat",{"_index":20368,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.context",{"_index":17929,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.context?.contextid",{"_index":17995,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.context?.contexttype",{"_index":17994,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.createdat",{"_index":20045,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.customs",{"_index":7050,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.email",{"_index":20047,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.emailsearchvalues",{"_index":20059,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.expiresat",{"_index":17930,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.externalid",{"_index":20051,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.finishedat",{"_index":20369,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.firstname",{"_index":20048,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.firstnamesearchvalues",{"_index":20055,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.forcepasswordchange",{"_index":20061,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.friendlyurl",{"_index":7056,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.frontchannel_logout_uri",{"_index":7059,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.gradelevel",{"_index":4379,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.id",{"_index":2441,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["domainobject.importhash",{"_index":20053,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.invitationlink",{"_index":4376,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.ishidden",{"_index":7060,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.islocal",{"_index":7052,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.istemplate",{"_index":7051,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.key",{"_index":7042,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.language",{"_index":20060,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastloginsystemchange",{"_index":20063,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastname",{"_index":20049,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastnamesearchvalues",{"_index":20057,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.ldapdn",{"_index":4380,"title":{},"body":{"classes/ClassMapper.html":{},"classes/UserDO.html":{}}}],["domainobject.logo_url",{"_index":7044,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_message_type",{"_index":7045,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_version",{"_index":7046,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.mandatorysince",{"_index":20370,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.name",{"_index":4371,"title":{},"body":{"classes/ClassMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.oauthclientid",{"_index":7055,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.opennewtab",{"_index":7058,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.options",{"_index":21001,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.origintoolid",{"_index":7054,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.outdatedsince",{"_index":20064,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.payload",{"_index":17928,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.payload.parentid",{"_index":17993,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.payload.parenttype",{"_index":17992,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.preferences",{"_index":20062,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.previousexternalid",{"_index":20065,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.privacy_permission",{"_index":7049,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.removeuser(userid",{"_index":4408,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.resource_link_id",{"_index":7047,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.roles",{"_index":7048,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["domainobject.schoolid",{"_index":20050,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.secret",{"_index":7043,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.skipconsent",{"_index":7057,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.source",{"_index":4383,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourceoptions",{"_index":4384,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourcesystemid",{"_index":20365,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.startedat",{"_index":20367,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.successor",{"_index":4381,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.target",{"_index":20999,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetmodel",{"_index":21000,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetsystemid",{"_index":20366,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.teacherids.map((teacherid",{"_index":4373,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.token",{"_index":17926,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.updatedat",{"_index":20046,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.url",{"_index":7041,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.userids",{"_index":4407,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.userids?.map((userid",{"_index":4375,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.year",{"_index":4377,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject/share",{"_index":11771,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"classes/MetadataTypeMapper.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TokenGenerator.html":{}}}],["domainobject:18",{"_index":2818,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["domainobject:8",{"_index":2800,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["domainobjectfactory",{"_index":7902,"title":{"classes/DomainObjectFactory.html":{}},"body":{"classes/DomainObjectFactory.html":{}}}],["domainobjects",{"_index":2405,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["domainobjects.foreach((child",{"_index":16551,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["domainobjects.map((domainobject",{"_index":4386,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ClassService.html":{}}}],["domainrolenames",{"_index":20545,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles",{"_index":20543,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles.map((role",{"_index":20546,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domains",{"_index":21384,"title":{},"body":{"dependencies.html":{}}}],["domigration",{"_index":17587,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["domigration(externalid",{"_index":17598,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["domigration(userdo",{"_index":20591,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["don't",{"_index":2514,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/OAuthService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"miscellaneous/functions.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["done",{"_index":1126,"title":{},"body":{"injectables/AccountService.html":{},"classes/ErrorLoggable.html":{},"injectables/KeycloakMigrationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["dont",{"_index":18878,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["dos",{"_index":2468,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["dos.map((domainobj",{"_index":2470,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["dosomethingcrazy",{"_index":22747,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z",{"_index":22752,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).catch(err",{"_index":22767,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).then(result",{"_index":22762,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazysync(wrong",{"_index":22770,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["doubtful",{"_index":21947,"title":{},"body":{"license.html":{}}}],["down",{"_index":22467,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["download_uri",{"_index":1456,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["downloadbysecuritytoken",{"_index":9932,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(@param('token",{"_index":9945,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(token",{"_index":9934,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadfileparams",{"_index":6130,"title":{"classes/DownloadFileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["downloadparams",{"_index":10446,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["downloaduri",{"_index":1449,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["downstream",{"_index":22060,"title":{},"body":{"license.html":{}}}],["draft",{"_index":12003,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"classes/TaskWithStatusVo.html":{}}}],["driven",{"_index":2573,"title":{},"body":{"injectables/BaseRepo.html":{},"properties.html":{}}}],["driver",{"_index":949,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["drivers",{"_index":962,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["drop/create",{"_index":11198,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dropcollection",{"_index":7726,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollection(collectionname",{"_index":7737,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollectionifexists(collectionname",{"_index":11166,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dry",{"_index":22480,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dto",{"_index":100,"title":{},"body":{"classes/AbstractAccountService.html":{},"controllers/AccountController.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/BaseResponseMapper.html":{},"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/CalendarEventDto.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"controllers/CourseController.html":{},"classes/CourseMapper.html":{},"classes/CreateNewsParams.html":{},"controllers/DashboardController.html":{},"classes/DashboardMapper.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{},"classes/FileElementResponseMapper.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/MigrationMapper.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"controllers/RoomsController.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolInfoMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionMapper.html":{},"injectables/SystemOidcService.html":{},"classes/TargetInfoMapper.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamUserDto.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateNewsParams.html":{},"controllers/UserController.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/VideoConference-1.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dto's",{"_index":22555,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dto.availabledate",{"_index":18928,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.bbbresponse",{"_index":20851,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["dto.builder.ts",{"_index":9497,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:13",{"_index":9506,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:19",{"_index":9503,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:7",{"_index":9501,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.cancelbuttonurl",{"_index":16029,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.classes",{"_index":12418,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.cookies",{"_index":11049,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["dto.createdat",{"_index":16684,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.currentredirect",{"_index":10980,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.description",{"_index":18926,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.descriptioninputformat",{"_index":18941,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.destinationcourseid",{"_index":6307,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.displaycolor",{"_index":18932,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.duedate",{"_index":18930,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.elements",{"_index":6310,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.enablemigrationstart",{"_index":14487,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.factory",{"_index":17032,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["dto.factory.ts",{"_index":7912,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:103",{"_index":7947,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:122",{"_index":7945,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:130",{"_index":7934,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:140",{"_index":7943,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:159",{"_index":7941,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:174",{"_index":7931,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:187",{"_index":16863,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:193",{"_index":16865,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:29",{"_index":7927,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:31",{"_index":7926,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:33",{"_index":7928,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:35",{"_index":7925,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:37",{"_index":7924,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:59",{"_index":7939,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:68",{"_index":7936,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:90",{"_index":7937,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:96",{"_index":7938,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.firstname",{"_index":12406,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.flagged",{"_index":12425,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.groupelements",{"_index":7489,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.groupid",{"_index":7488,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.id",{"_index":1130,"title":{},"body":{"injectables/AccountService.html":{},"classes/CopyMapper.html":{},"classes/DashboardMapper.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lastname",{"_index":12409,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lessonhidden",{"_index":18936,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.lessonname",{"_index":18935,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.loginname",{"_index":12412,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.mapper",{"_index":1234,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["dto.mapper.abstract",{"_index":755,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["dto.mapper.abstract.ts",{"_index":749,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{}}}],["dto.mapper.abstract.ts:7",{"_index":751,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{}}}],["dto.mapper.db.ts",{"_index":753,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{}}}],["dto.mapper.idm.ts",{"_index":762,"title":{},"body":{"classes/AccountIdmToDtoMapperIdm.html":{}}}],["dto.mapper.ts",{"_index":626,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:22",{"_index":634,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:28",{"_index":632,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:5",{"_index":637,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.match",{"_index":12404,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.matchedby",{"_index":20550,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["dto.matches",{"_index":12421,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.oauthmigrationfinalfinish",{"_index":14486,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationfinished",{"_index":14485,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationmandatory",{"_index":14484,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationpossible",{"_index":14483,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.options",{"_index":21060,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["dto.password",{"_index":1108,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.passwordstrategy",{"_index":1137,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.permission",{"_index":20852,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.permissions",{"_index":14913,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.proceedbuttonurl",{"_index":16028,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.provisioningstrategy",{"_index":16365,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.provisioningurl",{"_index":16367,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.redirect",{"_index":20578,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["dto.response",{"_index":10983,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.response.status",{"_index":10979,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.role",{"_index":12415,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.rolename",{"_index":14970,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.roles",{"_index":16690,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.schoolid",{"_index":16688,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.state",{"_index":20849,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.systemid",{"_index":1105,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.target",{"_index":14702,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.teamid",{"_index":3934,"title":{},"body":{"classes/CalendarEventDto.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto.teamname",{"_index":14969,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.title",{"_index":3932,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["dto.unpublished",{"_index":14704,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.updatedat",{"_index":16686,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.updater",{"_index":14699,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.url",{"_index":21086,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["dto.userid",{"_index":1118,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.username",{"_index":1106,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.username.trim().tolowercase",{"_index":1107,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto/board/board",{"_index":2958,"title":{},"body":{"controllers/BoardController.html":{}}}],["dto/board/set",{"_index":4043,"title":{},"body":{"controllers/CardController.html":{}}}],["dto/card/create",{"_index":4872,"title":{},"body":{"controllers/ColumnController.html":{}}}],["dto/context",{"_index":5953,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["dto/copy.response",{"_index":6301,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto/element/rich",{"_index":4046,"title":{},"body":{"controllers/CardController.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["dto/element/update",{"_index":8065,"title":{},"body":{"controllers/ElementController.html":{}}}],["dto/file.dto",{"_index":9508,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto/fwu",{"_index":10396,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["dto/migration.dto",{"_index":20611,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/oauth",{"_index":13622,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{}}}],["dto/oauth2",{"_index":20292,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/page",{"_index":20612,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/public",{"_index":18535,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["dto/request/school",{"_index":20294,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/request/user",{"_index":20295,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/response/consent",{"_index":10889,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["dto/response/video",{"_index":21017,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["dto/role.dto",{"_index":16848,"title":{},"body":{"injectables/RoleService.html":{}}}],["dto/school",{"_index":17511,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["dto/stateless",{"_index":15736,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dto/system",{"_index":18537,"title":{},"body":{"controllers/SystemController.html":{}}}],["dto/task",{"_index":18801,"title":{},"body":{"controllers/TaskController.html":{}}}],["dto/team",{"_index":4534,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto/team.dto",{"_index":4646,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["dtocreator",{"_index":7910,"title":{"classes/DtoCreator.html":{}},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dtolist",{"_index":12319,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{}}}],["dtos",{"_index":4531,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/GlobalValidationPipe.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["due",{"_index":3547,"title":{},"body":{"modules/BoardModule.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/News.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["duedate",{"_index":3245,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/BoardTaskResponse.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["duedate(value",{"_index":18220,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["dummy",{"_index":10779,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["dummypasswd!1",{"_index":741,"title":{},"body":{"classes/AccountFactory.html":{}}}],["dummyresponse",{"_index":10788,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["duplicate",{"_index":5994,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["duplicate.filter",{"_index":6001,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.id",{"_index":8694,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["duplicate.length",{"_index":6005,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.loggable",{"_index":17668,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["duplicates",{"_index":16117,"title":{},"body":{"injectables/PermissionService.html":{}}}],["duplicatetool",{"_index":6002,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.displayname",{"_index":6004,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.id",{"_index":6003,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplication",{"_index":2513,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["durable",{"_index":21901,"title":{},"body":{"license.html":{}}}],["duration",{"_index":2200,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/DurationLoggingInterceptor.html":{}}}],["durationlogginginterceptor",{"_index":8010,"title":{"injectables/DurationLoggingInterceptor.html":{}},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["during",{"_index":6896,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"classes/GroupRoleUnknownLoggable.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/JwtPayload.html":{},"classes/KeycloakConsole.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserMigrationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["dwelling",{"_index":21946,"title":{},"body":{"license.html":{}}}],["dynamically",{"_index":21798,"title":{},"body":{"license.html":{}}}],["dynamicmodule",{"_index":1412,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/RocketChatModule.html":{},"modules/S3ClientModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["e",{"_index":2400,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/CustomLtiProperty.html":{},"injectables/DashboardModelMapper.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{},"injectables/NextcloudStrategy.html":{},"classes/RocketChatError.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceRepo.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["e.g",{"_index":2507,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/ConsentRequestBody.html":{},"classes/GlobalValidationPipe.html":{},"controllers/H5PEditorController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["e.property",{"_index":8157,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.response.data",{"_index":1317,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.data.errortype",{"_index":1319,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.statuscode",{"_index":1314,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.target",{"_index":8162,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.value",{"_index":8164,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["each",{"_index":2489,"title":{},"body":{"classes/BaseDomainObject.html":{},"classes/CardIdsParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FilterImportUserParams.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["eager",{"_index":11472,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/ImportUser.html":{},"entities/SchoolExternalToolEntity.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["earlier",{"_index":21737,"title":{},"body":{"license.html":{}}}],["ease",{"_index":23104,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["easier",{"_index":22826,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["easily",{"_index":22730,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["easy",{"_index":22435,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["eathers",{"_index":9431,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["edit",{"_index":6735,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/RoomsUc.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["editcoursebyadmin(userid",{"_index":23070,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["editor",{"_index":3101,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/UserBoardRoles.html":{}}}],["editor.app.ts",{"_index":21470,"title":{},"body":{"miscellaneous/functions.html":{}}}],["editor.config",{"_index":10815,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller",{"_index":10814,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller.ts",{"_index":10775,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:33",{"_index":10785,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:44",{"_index":10783,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.module",{"_index":10821,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["editor.module.ts",{"_index":10812,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor/controller/h5p",{"_index":10774,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor/h5p",{"_index":10811,"title":{},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["editusernameallowed",{"_index":12964,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["effect",{"_index":22204,"title":{},"body":{"license.html":{}}}],["effected",{"_index":21850,"title":{},"body":{"license.html":{}}}],["effective",{"_index":21832,"title":{},"body":{"license.html":{}}}],["effectively",{"_index":22220,"title":{},"body":{"license.html":{}}}],["effects",{"_index":2300,"title":{},"body":{"injectables/BBBService.html":{}}}],["efficient",{"_index":3612,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["effortless",{"_index":22692,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["efforts",{"_index":22074,"title":{},"body":{"license.html":{}}}],["einsatz",{"_index":4787,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ejson",{"_index":3859,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.deserialize(bsondocuments",{"_index":3862,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.serialize(documents",{"_index":3860,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["el",{"_index":3651,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CopyHelperService.html":{}}}],["el.getreferences()).flat",{"_index":7386,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["el.status",{"_index":6259,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["el.target.id",{"_index":2719,"title":{},"body":{"entities/Board.html":{}}}],["elapsedtimemilliseconds",{"_index":12814,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["electronic",{"_index":22226,"title":{},"body":{"license.html":{}}}],["element",{"_index":2594,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"entities/Board.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardElementResponse.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/CopyApiResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/GridElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IGridElement.html":{},"injectables/LessonCopyService.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PatchGroupParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/RoomElementUrlParams.html":{},"injectables/RoomsUc.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["element.'})@apiextramodels(fileelementcontentbody",{"_index":8061,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiextramodels(submissionitemresponse)@apiresponse({status",{"_index":8048,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiresponse({status",{"_index":8053,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.accept(updater",{"_index":5556,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.boardelementtype",{"_index":3050,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.body.params.ts",{"_index":6854,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:10",{"_index":14571,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:12",{"_index":14579,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:14",{"_index":6859,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:17",{"_index":14580,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:18",{"_index":14572,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:23",{"_index":14578,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:25",{"_index":6857,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:29",{"_index":14575,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.body.params.ts:33",{"_index":14576,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.caption",{"_index":9556,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.constructor.name",{"_index":5528,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["element.createdat",{"_index":9555,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.do",{"_index":2878,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{}}}],["element.do.ts",{"_index":9517,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["element.do.ts:10",{"_index":16736,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:14",{"_index":16738,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:18",{"_index":16740,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:5",{"_index":9522,"title":{},"body":{"classes/FileElement.html":{}}}],["element.do.ts:6",{"_index":16734,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:9",{"_index":9524,"title":{},"body":{"classes/FileElement.html":{}}}],["element.duedate",{"_index":18233,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.factory.ts",{"_index":5491,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:12",{"_index":5496,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:36",{"_index":5498,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:48",{"_index":5499,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:61",{"_index":5500,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.getreferences",{"_index":7374,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.getreferences().length",{"_index":7378,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.gridelement",{"_index":7356,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.hidden",{"_index":13783,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["element.id",{"_index":9553,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"injectables/LessonCopyService.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.inputformat",{"_index":16773,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["element.interface",{"_index":5063,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["element.interface.ts",{"_index":11296,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.interface.ts:2",{"_index":11297,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.publish",{"_index":17041,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.removereference(room",{"_index":7377,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.removereferencebyindex(position.groupindex",{"_index":7399,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.response",{"_index":4047,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["element.response.ts",{"_index":3403,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:11",{"_index":9533,"title":{},"body":{"classes/FileElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:12",{"_index":16751,"title":{},"body":{"classes/RichTextElementContent.html":{}}}],["element.response.ts:14",{"_index":9543,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:15",{"_index":16750,"title":{},"body":{"classes/RichTextElementContent.html":{}}}],["element.response.ts:17",{"_index":3410,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.response.ts:18",{"_index":16763,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:22",{"_index":3407,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.response.ts:23",{"_index":9545,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:26",{"_index":9547,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:27",{"_index":16765,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:29",{"_index":9544,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:30",{"_index":16767,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:32",{"_index":9546,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:33",{"_index":16764,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:36",{"_index":16766,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:5",{"_index":9532,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:7",{"_index":3404,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.service",{"_index":4144,"title":{},"body":{"injectables/CardService.html":{}}}],["element.service.ts",{"_index":5531,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:16",{"_index":5532,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:23",{"_index":5537,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:33",{"_index":5533,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:40",{"_index":5535,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:44",{"_index":5539,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:48",{"_index":5544,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.status",{"_index":6314,"title":{},"body":{"classes/CopyMapper.html":{}}}],["element.target",{"_index":2709,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.text",{"_index":4814,"title":{},"body":{"injectables/ColumnBoardService.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["element.title",{"_index":13782,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["element.ts",{"_index":5160,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:11",{"_index":5164,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:12",{"_index":5212,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:14",{"_index":5192,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:15",{"_index":5213,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:19",{"_index":5165,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["element.ts:21",{"_index":5228,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:3",{"_index":5217,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:38",{"_index":5229,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:42",{"_index":5230,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:46",{"_index":5231,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:6",{"_index":5219,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.type",{"_index":16883,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["element.unpublish",{"_index":17042,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.updatedat",{"_index":9554,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.url.params.ts",{"_index":5595,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:11",{"_index":5597,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:19",{"_index":16925,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["element.user",{"_index":13784,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["element/rich",{"_index":4108,"title":{},"body":{"classes/CardResponse.html":{}}}],["elementcontentbody",{"_index":8027,"title":{"classes/ElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["elementcontentbody:24",{"_index":9537,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["elementcontentbody:43",{"_index":16755,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["elementcontentbody:58",{"_index":18227,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["elementcontroller",{"_index":2765,"title":{"controllers/ElementController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ElementController.html":{}}}],["elementcopystatus",{"_index":3085,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementcopystatus.type",{"_index":3082,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementdata",{"_index":7476,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.copyingsince",{"_index":7484,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.displaycolor",{"_index":7481,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group",{"_index":7486,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group.map((groupmetadata",{"_index":7490,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.groupid",{"_index":7487,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.referencedid",{"_index":7485,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.shorttitle",{"_index":7480,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.title",{"_index":7479,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementid",{"_index":4186,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"classes/RoomElementUrlParams.html":{},"injectables/RoomsUc.html":{}}}],["elementmapper",{"_index":5524,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmapper.maptoresponse(element",{"_index":5529,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmodel",{"_index":7531,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.dashboard",{"_index":7568,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.references.set(references",{"_index":7567,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.title",{"_index":7563,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.xpos",{"_index":7558,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.ypos",{"_index":7560,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elements",{"_index":1041,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardUc.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"injectables/LessonCopyService.html":{},"injectables/NewsRepo.html":{},"classes/PaginationParams.html":{},"classes/PatchOrderParams.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/TaskCopyService.html":{}}}],["elements.enum",{"_index":5503,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["elements.filter((el",{"_index":3650,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["elements.filter((element",{"_index":7962,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.foreach((element",{"_index":7972,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.length",{"_index":13825,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["elements.map((el",{"_index":6258,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elements.map((elementcopystatus",{"_index":3081,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elements.push",{"_index":6569,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["elements.push(filecopystatus",{"_index":13744,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["elements.push(this.mapcolumnboard(element.content",{"_index":16886,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maplesson(element.content",{"_index":16885,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maptask(element.content",{"_index":16884,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elementservice",{"_index":4180,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["elementspercard",{"_index":3511,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementspercard.flat",{"_index":3514,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementsstatus",{"_index":13814,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["elementsstatus.push(status",{"_index":13819,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["elementsstatuses",{"_index":6257,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementsstatuses.filter((status",{"_index":6261,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementstoadd",{"_index":2746,"title":{},"body":{"entities/Board.html":{}}}],["elementtomove",{"_index":7362,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.getreferences",{"_index":7395,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.isgroup",{"_index":7394,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementuc",{"_index":2759,"title":{"injectables/ElementUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["elementwithposition",{"_index":7511,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.x",{"_index":7559,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.y",{"_index":7561,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elemmatch",{"_index":10062,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["em",{"_index":3285,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/ClassesRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["em.config.options.clienturl",{"_index":22847,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["em.getreference(role",{"_index":10644,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(schoolentity",{"_index":10627,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(system",{"_index":10638,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(user",{"_index":10642,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["email",{"_index":853,"title":{},"body":{"interfaces/AccountParams.html":{},"injectables/AccountService.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/CustomLtiProperty.html":{},"classes/ExternalUserDto.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IJsonUser.html":{},"interfaces/IUserProperties.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"entities/LtiTool.html":{},"injectables/OidcProvisioningService.html":{},"classes/PatchMyAccountParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SystemFactory.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["emails",{"_index":22504,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["emailsearchvalues",{"_index":11245,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["embeddable",{"_index":2618,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"classes/County.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/FederalState.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/LdapConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["embedded",{"_index":4293,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["embedded(undefined",{"_index":4287,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/GroupEntity.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/TeamEntity.html":{}}}],["embedded({entity",{"_index":18501,"title":{},"body":{"entities/System.html":{}}}],["embodied",{"_index":21898,"title":{},"body":{"license.html":{}}}],["emerg",{"_index":8178,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["emerg(loggable",{"_index":8185,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["employer",{"_index":22232,"title":{},"body":{"license.html":{}}}],["empty",{"_index":1924,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/FileSystemAdapter.html":{},"classes/IdentityManagementService.html":{},"classes/NewsScope.html":{},"classes/StorageProviderEncryptedStringType.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["emptyresultquery",{"_index":14782,"title":{},"body":{"classes/NewsScope.html":{},"classes/Scope.html":{}}}],["emptyresultquerytype",{"_index":5894,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["en",{"_index":12103,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["enable",{"_index":10533,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"modules/ImportUserModule.html":{},"classes/MigrationResponse.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["enable.loggable.ts",{"_index":20573,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable.loggable.ts:4",{"_index":20574,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable_ldap_sync_during_migration",{"_index":11709,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enabled",{"_index":1415,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/IVideoConferenceSettings.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LessonCopyUC.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/ShareTokenUC.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/TaskCopyUC.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["enableimplicitconversion",{"_index":10538,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["enableldapsyncduringmigration",{"_index":11710,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enablemigrationstart",{"_index":13641,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["enableoauthmigrationfeature",{"_index":20425,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enableoauthmigrationfeature(schooldo",{"_index":20435,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enables",{"_index":21756,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["encapsulates",{"_index":4587,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/ConverterUtil.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["encoded",{"_index":2307,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FileSystemAdapter.html":{},"miscellaneous/functions.html":{}}}],["encodeuricomponent(token",{"_index":1465,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["encoding",{"_index":9959,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{},"miscellaneous/functions.html":{}}}],["encodings",{"_index":21537,"title":{},"body":{"miscellaneous/functions.html":{}}}],["encouraged",{"_index":21705,"title":{},"body":{"license.html":{}}}],["encrypt",{"_index":11390,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"additional-documentation/nestjs-application.html":{}}}],["encrypt(data",{"_index":11393,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encrypted",{"_index":1284,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["encryptedstring",{"_index":18180,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["encryption",{"_index":12186,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.interface",{"_index":8110,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.service",{"_index":8112,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["encryption.service.ts",{"_index":14162,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryption.service.ts:7",{"_index":14165,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryptionmodule",{"_index":8104,"title":{"modules/EncryptionModule.html":{}},"body":{"modules/EncryptionModule.html":{},"modules/ExternalToolModule.html":{},"modules/IdentityManagementModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/ManagementModule.html":{},"modules/OauthModule.html":{},"modules.html":{}}}],["encryptionproviderfactory",{"_index":21483,"title":{},"body":{"miscellaneous/functions.html":{}}}],["encryptionproviderfactory(configservice",{"_index":8113,"title":{},"body":{"modules/EncryptionModule.html":{},"miscellaneous/functions.html":{}}}],["encryptionservice",{"_index":9082,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["encryptpassword",{"_index":1162,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptpassword(password",{"_index":1167,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptsecrets(collectionname",{"_index":11266,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["encryptsecretsinsystems(systems",{"_index":11268,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["end",{"_index":2282,"title":{},"body":{"injectables/BBBService.html":{},"classes/ConsentResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICollectionFilePath.html":{},"classes/LoginResponse-1.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["end(@currentuser",{"_index":20926,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["end(config",{"_index":2301,"title":{},"body":{"injectables/BBBService.html":{}}}],["end(currentuser",{"_index":20877,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["end(currentuserid",{"_index":21041,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.loggable.ts",{"_index":17555,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:3",{"_index":17557,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:6",{"_index":17558,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.uc.ts",{"_index":21039,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:11",{"_index":21040,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:18",{"_index":21042,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end2end",{"_index":22868,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["enddate",{"_index":11737,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{}}}],["ended",{"_index":20936,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["endings",{"_index":22899,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["endpoint",{"_index":2186,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"controllers/H5PEditorController.html":{},"interfaces/IFileStorageConfig.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"controllers/SystemController.html":{},"controllers/VideoConferenceController.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["endpoints",{"_index":10796,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["endpointurl",{"_index":11777,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["ends",{"_index":2303,"title":{},"body":{"injectables/BBBService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["endschoolinmaintenance",{"_index":12263,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(@currentuser",{"_index":12340,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(currentuser",{"_index":12271,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endtime",{"_index":2258,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["enforce",{"_index":19284,"title":{},"body":{"controllers/TeamNewsController.html":{},"license.html":{}}}],["enforces",{"_index":22728,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["enforcing",{"_index":21855,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["enities",{"_index":16797,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enities.map((entity",{"_index":16801,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enrichdatafromexternaltool",{"_index":17460,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichdatafromexternaltool(tool",{"_index":17470,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichedtools",{"_index":17483,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools",{"_index":17461,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools(tools",{"_index":17472,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["ensure",{"_index":9387,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"classes/NewsScope.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ensureboardnodetype",{"_index":3195,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureboardnodetype(boardnode",{"_index":3211,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurecontextpermissions",{"_index":8402,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensurecontextpermissions(userid",{"_index":8411,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureleafnode",{"_index":3196,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureleafnode(boardnode",{"_index":3214,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurepermission",{"_index":9189,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensurepermission(userid",{"_index":9198,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensures",{"_index":21602,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ensureschoolpermissions",{"_index":8403,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureschoolpermissions(userid",{"_index":8413,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensuretokeniswhitelisted",{"_index":12731,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["ensuretoolpermissions",{"_index":19872,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["ensuretoolpermissions(userid",{"_index":19879,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["entered",{"_index":22135,"title":{},"body":{"license.html":{}}}],["enteredpassword",{"_index":14000,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["entire",{"_index":21875,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["entirely",{"_index":22153,"title":{},"body":{"license.html":{}}}],["entities",{"_index":381,"title":{},"body":{"entities/Account.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"injectables/BoardRepo.html":{},"entities/CardNode.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"modules/CommonToolModule.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"entities/DashboardModelEntity.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"entities/FileElementNode.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"entities/GroupEntity.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollectionFilePath.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/LegacySchoolFactory.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{},"entities/PseudonymEntity.html":{},"injectables/PseudonymsRepo.html":{},"entities/RichTextElementNode.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/SchoolNews.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemRepo.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"entities/UserLoginMigration.html":{},"injectables/UserRepo.html":{},"entities/VideoConference.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entities.foreach((entity",{"_index":10080,"title":{},"body":{"injectables/FilesService.html":{}}}],["entities.length",{"_index":10079,"title":{},"body":{"injectables/FilesService.html":{},"injectables/LtiToolRepo.html":{}}}],["entities.map((entity",{"_index":2446,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SystemMapper.html":{},"injectables/UserDORepo.html":{}}}],["entities.transformer.ts",{"_index":21482,"title":{},"body":{"miscellaneous/functions.html":{}}}],["entitieswithfiles",{"_index":9658,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["entitiyids",{"_index":9408,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entity",{"_index":380,"title":{"entities/Account.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"entities/CardNode.html":{},"entities/ClassEntity.html":{},"entities/ColumnBoardNode.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalState.html":{},"entities/FileElementNode.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/GroupEntity.html":{},"entities/ImportUser.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"entities/PseudonymEntity.html":{},"entities/RichTextElementNode.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"entities/SubmissionItemNode.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{}},"body":{"entities/Account.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRule.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BruteForceError.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/County.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CreateNewsParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/EntityNotFoundError.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/GetFileResponse.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{},"classes/RenameFileParams.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"classes/RoleMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolInfoResponse.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{},"classes/SingleFileParams.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemRepo.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"injectables/TeamRule.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/UpdateNewsParams.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.alias",{"_index":18617,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.closedat",{"_index":20392,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.config.type",{"_index":8841,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.contextid",{"_index":5796,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["entity.contexttype",{"_index":17989,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.course",{"_index":6669,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["entity.coursegroup",{"_index":13928,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.createdat",{"_index":4369,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.customs",{"_index":14361,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.displayname",{"_index":5798,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.email",{"_index":20107,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.emailsearchvalues",{"_index":20113,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.expiresat",{"_index":17991,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.externalid",{"_index":10640,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.externalsource",{"_index":10633,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.factory.ts",{"_index":8493,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:21",{"_index":8502,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:28",{"_index":8499,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:38",{"_index":8504,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:50",{"_index":8500,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:66",{"_index":8498,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.features",{"_index":13556,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{}}}],["entity.features.includes(feature",{"_index":13606,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["entity.federalstate",{"_index":13565,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.finishedat",{"_index":20393,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.firstname",{"_index":20108,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.firstnamesearchvalues",{"_index":20111,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.forcepasswordchange",{"_index":20115,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.friendlyurl",{"_index":14366,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.frontchannel_logout_uri",{"_index":14368,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.getgrid().map((elementwithposition",{"_index":7571,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getid",{"_index":7578,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getuserid",{"_index":7580,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.gradelevel",{"_index":4364,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.hidden",{"_index":13924,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.id",{"_index":4355,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LtiToolRepo.html":{},"injectables/PseudonymsRepo.html":{},"classes/RoleMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SystemMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserMapper.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entity.importhash",{"_index":20110,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.inmaintenancesince",{"_index":13557,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.inusermigration",{"_index":13558,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.invitationlink",{"_index":4362,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.isdraft",{"_index":19080,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.ishidden",{"_index":8850,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.islocal",{"_index":14363,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.istemplate",{"_index":14362,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.key",{"_index":14353,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.language",{"_index":20114,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastloginsystemchange",{"_index":20117,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastname",{"_index":20109,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastnamesearchvalues",{"_index":20112,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.ldapconfig?.active",{"_index":18621,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.ldapdn",{"_index":4365,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lesson",{"_index":19083,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.logo_url",{"_index":14355,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.logobase64",{"_index":8848,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.logourl",{"_index":8847,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.lti_message_type",{"_index":14356,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.lti_version",{"_index":14357,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.mandatorysince",{"_index":20390,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.markfordeletion",{"_index":10084,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.name",{"_index":4356,"title":{},"body":{"classes/ClassMapper.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/RoleMapper.html":{}}}],["entity.oauthclientid",{"_index":14365,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.officialschoolnumber",{"_index":13560,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.oidcconfig",{"_index":18638,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["entity.opennewtab",{"_index":8851,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.options.everyattendejoinsmuted",{"_index":21183,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.everybodyjoinsasmoderator",{"_index":21182,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.moderatormustapprovejoinrequests",{"_index":21184,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.organization?.id",{"_index":10636,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.origintoolid",{"_index":14364,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.outdatedsince",{"_index":20118,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.parentid",{"_index":17988,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.parenttype",{"_index":17987,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.permissions",{"_index":16800,"title":{},"body":{"classes/RoleMapper.html":{}}}],["entity.preferences",{"_index":20116,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.previousexternalid",{"_index":13559,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.privacy_permission",{"_index":14360,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.provisioningstrategy",{"_index":18618,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.provisioningurl",{"_index":18619,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.pseudonym",{"_index":8760,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.removepermissionsbyrefid(userid",{"_index":10081,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.resource_link_id",{"_index":14358,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.role.id",{"_index":10647,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.roles",{"_index":14359,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.roles.getitems().map((role",{"_index":20527,"title":{},"body":{"classes/UserMapper.html":{}}}],["entity.roles.isinitialized",{"_index":20119,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.school.id",{"_index":17406,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserMapper.html":{}}}],["entity.schoolid",{"_index":17451,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["entity.schoolid.tohexstring",{"_index":4357,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.schooltool.id",{"_index":5795,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltool.school.id",{"_index":5869,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schooltool.school?.id",{"_index":5794,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltoolref.schoolid",{"_index":5870,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schoolyear",{"_index":13561,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.secret",{"_index":14354,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.skipconsent",{"_index":14367,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.source",{"_index":4367,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourceoptions?.tspuid",{"_index":4368,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourcesystem?.id",{"_index":20388,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.startedat",{"_index":20391,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.successor?.tohexstring",{"_index":4366,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.system.id",{"_index":10641,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.systems.getitems().map((system",{"_index":13563,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.systems.isinitialized",{"_index":13562,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.target",{"_index":21180,"title":{},"body":{"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetmodel",{"_index":23092,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetsystem.id",{"_index":20389,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.teacherids.map((teacherid",{"_index":4360,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.teamusers.find((teamuser",{"_index":19325,"title":{},"body":{"injectables/TeamRule.html":{}}}],["entity.token",{"_index":17990,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.tool.id",{"_index":17405,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entity.toolid.tohexstring",{"_index":8761,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.toolversion",{"_index":5799,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entity.ts",{"_index":22554,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["entity.type",{"_index":18616,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.updatedat",{"_index":4370,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.url",{"_index":8846,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.user.id",{"_index":10646,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.userid.tohexstring",{"_index":8762,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.userids?.map((userid",{"_index":4358,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.userloginmigration?.id",{"_index":13564,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.users.map((groupuser",{"_index":10628,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod",{"_index":10630,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.from",{"_index":10631,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.until",{"_index":10632,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.version",{"_index":8852,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.year?.tohexstring",{"_index":4363,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity/course.entity",{"_index":11375,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/import",{"_index":11496,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["entity/role.entity",{"_index":16115,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity/school.entity",{"_index":11376,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/share",{"_index":17983,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity/team.entity",{"_index":11377,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/user.entity",{"_index":16116,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity[key",{"_index":2467,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entity[prop",{"_index":1933,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["entity_not_found",{"_index":3840,"title":{},"body":{"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{}}}],["entityclass",{"_index":716,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["entitydictionary",{"_index":10056,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["entitydo",{"_index":2417,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entitydo.closedat",{"_index":20399,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.config.type",{"_index":8865,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.contextref.id",{"_index":5801,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.customs",{"_index":14377,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.displayname",{"_index":5803,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.email",{"_index":20122,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.externalid",{"_index":13566,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.features",{"_index":13567,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.federalstate",{"_index":13578,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.finishedat",{"_index":20400,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.firstname",{"_index":20123,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.forcepasswordchange",{"_index":20129,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.friendlyurl",{"_index":14382,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.frontchannel_logout_uri",{"_index":14384,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.id",{"_index":16451,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["entitydo.inmaintenancesince",{"_index":13568,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.inusermigration",{"_index":13569,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.ishidden",{"_index":8874,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.islocal",{"_index":14379,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.istemplate",{"_index":14378,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.key",{"_index":14369,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.language",{"_index":20128,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastloginsystemchange",{"_index":20131,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastname",{"_index":20124,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.ldapdn",{"_index":20127,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.logo",{"_index":8872,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.logo_url",{"_index":14371,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.logourl",{"_index":8871,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.lti_message_type",{"_index":14372,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.lti_version",{"_index":14373,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.mandatorysince",{"_index":20397,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.name",{"_index":8869,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.oauthclientid",{"_index":14381,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.officialschoolnumber",{"_index":13571,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.opennewtab",{"_index":8875,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.options.everyattendeejoinsmuted",{"_index":21188,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.everybodyjoinsasmoderator",{"_index":21187,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.moderatormustapprovejoinrequests",{"_index":21189,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.origintoolid",{"_index":14380,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.outdatedsince",{"_index":20132,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.preferences",{"_index":20130,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.previousexternalid",{"_index":13570,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.privacy_permission",{"_index":14376,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.pseudonym",{"_index":8763,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entitydo.resource_link_id",{"_index":14374,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles",{"_index":14375,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles.map((roleref",{"_index":20125,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.schoolid",{"_index":17409,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.schooltoolref.schooltoolid",{"_index":5805,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.schoolyear",{"_index":13572,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.secret",{"_index":14370,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.skipconsent",{"_index":14383,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.sourcesystemid",{"_index":20395,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.startedat",{"_index":20398,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.systems",{"_index":13573,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.systems.map((systemid",{"_index":13574,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.target",{"_index":21185,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.targetsystemid",{"_index":20396,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.toolid",{"_index":17411,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.toolversion",{"_index":5806,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.url",{"_index":8870,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.userloginmigrationid",{"_index":13576,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.version",{"_index":8876,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydos",{"_index":2428,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entitydos.map(async",{"_index":2440,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entityfactory",{"_index":2388,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entityfactory(props",{"_index":2411,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entityid",{"_index":26,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolIdParams-1.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DomainObject.html":{},"classes/DownloadFileParams.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateRepo.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/ImportUserRepo.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"entities/News.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewParams.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolYearRepo.html":{},"classes/ScopeRef.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleFileParams.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemIdParams-1.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamNews.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"injectables/TeamsRepo.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entitymanager",{"_index":2395,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/ClassesRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IDashboardRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["entityname",{"_index":885,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/EntityNotFoundError.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"modules/FilesStorageModule.html":{},"classes/ForbiddenLoggableException.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["entitynotfounderror",{"_index":510,"title":{"classes/EntityNotFoundError.html":{}},"body":{"controllers/AccountController.html":{},"injectables/AccountServiceDb.html":{},"classes/EntityNotFoundError.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserDORepo.html":{}}}],["entitynotfounderror('account",{"_index":1191,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror('user",{"_index":20102,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitynotfounderror(`account",{"_index":1217,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror(`user",{"_index":13133,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["entitynotfounderror(system.name",{"_index":18653,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["entitypermissions",{"_index":9402,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entitypermissions.includes(p",{"_index":9406,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entityprops",{"_index":2459,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entityschema",{"_index":2511,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["entitytype",{"_index":14710,"title":{},"body":{"classes/NewsMapper.html":{}}}],["entitywithembeddedfiles",{"_index":6203,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["entitywithid",{"_index":2551,"title":{},"body":{"classes/BaseFactory.html":{}}}],["entries",{"_index":8820,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entries.map",{"_index":8881,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry",{"_index":5367,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/JwtStrategy.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.do.ts",{"_index":7100,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:2",{"_index":7102,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:4",{"_index":7101,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.entity.ts",{"_index":7105,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:6",{"_index":7107,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:9",{"_index":7106,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.name",{"_index":8882,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.params",{"_index":17379,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["entry.params.ts",{"_index":7110,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:12",{"_index":7112,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:7",{"_index":7111,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.response",{"_index":17425,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["entry.response.ts",{"_index":7113,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:5",{"_index":7115,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:9",{"_index":7114,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.value",{"_index":8883,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["enum",{"_index":1031,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/ChangeLanguageParams.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextTypeMapper.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFindOptions.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RenameFileParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolResponse.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"entities/System.html":{},"entities/TeamNews.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceScopeParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["enum({array",{"_index":14291,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({fieldname",{"_index":12253,"title":{},"body":{"entities/ImportUser.html":{}}}],["enum({items",{"_index":14288,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({nullable",{"_index":6382,"title":{},"body":{"entities/Course.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"entities/ShareToken.html":{}}}],["enumname",{"_index":2915,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["enums",{"_index":5061,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["env",{"_index":14542,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["env/config",{"_index":22262,"title":{},"body":{"todo.html":{}}}],["environment",{"_index":13160,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["eol",{"_index":9967,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["eq",{"_index":13938,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["equal",{"_index":19044,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["equivalent",{"_index":21814,"title":{},"body":{"license.html":{}}}],["eric",{"_index":22675,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["err",{"_index":1459,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BoardManagementUc.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/S3ClientAdapter.html":{},"injectables/TimeoutInterceptor.html":{}}}],["err.code",{"_index":22768,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["err?.cause?.name",{"_index":17152,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["err?.code",{"_index":17135,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["error",{"_index":204,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"classes/ConsentRequestBody.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"modules/CoreModule.html":{},"entities/CourseGroup.html":{},"injectables/DeleteFilesUc.html":{},"classes/DownloadFileParams.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/FeathersError.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IError.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/JwtStrategy.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"modules/LoggerModule.html":{},"classes/LoginRequestBody.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NexboardService.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"modules/RedisModule.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"injectables/S3ClientAdapter.html":{},"classes/ScanResultParams.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchService.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["error('boardnode",{"_index":3259,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["error('broken",{"_index":3048,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error('error",{"_index":11628,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('gradelevel",{"_index":4300,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["error('idm",{"_index":11574,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('invalid",{"_index":12440,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["error('multiple",{"_index":13118,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error('not",{"_index":2752,"title":{},"body":{"entities/Board.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["error('resource",{"_index":5241,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["error('rocket",{"_index":1404,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["error('roles",{"_index":11674,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["error('root",{"_index":3143,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["error('unexpected",{"_index":12560,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["error('unknown",{"_index":5809,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["error('user",{"_index":739,"title":{},"body":{"classes/AccountFactory.html":{}}}],["error(`${jwtconstants.jwtoptions.algorithm",{"_index":1682,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["error(`${testreqestconst.errormessage",{"_index":1778,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(`account",{"_index":13111,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error(`boardcopyservice",{"_index":3062,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error(`cannot",{"_index":5591,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["error(`duplicate",{"_index":13201,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["error(`login",{"_index":14015,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["error(`mapping",{"_index":10154,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["error(`no",{"_index":13301,"title":{},"body":{"injectables/LdapService.html":{}}}],["error(`system",{"_index":18670,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["error(json.stringify(cause",{"_index":3891,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(json.stringify(error",{"_index":8246,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["error(loggable",{"_index":8187,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["error(message",{"_index":11526,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["error(string(cause",{"_index":3892,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(util.inspect(error",{"_index":10501,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.enum",{"_index":2009,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error.exception",{"_index":6399,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["error.filter",{"_index":8220,"title":{},"body":{"modules/ErrorModule.html":{}}}],["error.filter.ts",{"_index":10463,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"todo.html":{}}}],["error.filter.ts:100",{"_index":10487,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:15",{"_index":10472,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:19",{"_index":10476,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:32",{"_index":10478,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:47",{"_index":10489,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:54",{"_index":10480,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:70",{"_index":10484,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:78",{"_index":10482,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:90",{"_index":10486,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getresponse",{"_index":10519,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getstatus",{"_index":8605,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["error.interface.ts",{"_index":9412,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["error.officialschoolnumberfromsource",{"_index":20510,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.officialschoolnumberfromtarget",{"_index":20511,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.response",{"_index":1520,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts",{"_index":1497,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:10",{"_index":1503,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:21",{"_index":1519,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.stack",{"_index":1160,"title":{},"body":{"injectables/AccountService.html":{}}}],["error.ts",{"_index":19989,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.ts:3",{"_index":19990,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.validationerrors.map((e",{"_index":8155,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["error/error",{"_index":20967,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{}}}],["error/id",{"_index":12157,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["error/oauth",{"_index":10951,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{}}}],["error_debug",{"_index":5373,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_description",{"_index":1997,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error_hint",{"_index":5374,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_uri",{"_index":1998,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["errorcode",{"_index":14992,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["errorhandler",{"_index":15692,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorhandler(error",{"_index":15699,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorloggable",{"_index":8124,"title":{"classes/ErrorLoggable.html":{}},"body":{"classes/ErrorLoggable.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LdapStrategy.html":{}}}],["errorloggable(error",{"_index":10499,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorloggable(unknownerror",{"_index":10502,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorlogger",{"_index":8173,"title":{"injectables/ErrorLogger.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"modules/LoggerModule.html":{}}}],["errorlogmessage",{"_index":8137,"title":{},"body":{"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["errormapper",{"_index":8199,"title":{"classes/ErrorMapper.html":{}},"body":{"classes/ErrorMapper.html":{},"injectables/FilesStorageProducer.html":{}}}],["errormapper.maprpcerrorresponsetodomainerror(error",{"_index":10313,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["errormessage",{"_index":1714,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["errormessages",{"_index":8154,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errormodule",{"_index":6321,"title":{"modules/ErrorModule.html":{}},"body":{"modules/CoreModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"modules.html":{}}}],["errorobj",{"_index":8205,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorobj.status",{"_index":8207,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorredirect",{"_index":15746,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('error",{"_index":15748,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('provider",{"_index":15750,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('sourceschoolnumber",{"_index":15756,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('targetschoolnumber",{"_index":15757,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorresponse",{"_index":1486,"title":{"classes/ErrorResponse.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["errorresponse(type",{"_index":10517,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorresponse:10",{"_index":1513,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:15",{"_index":1511,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:20",{"_index":1509,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:25",{"_index":1505,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:30",{"_index":1506,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errors",{"_index":1500,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{},"classes/GlobalValidationPipe.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationErrorDetailResponse.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["errors/brute",{"_index":1815,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["errors/forbidden.loggable",{"_index":2040,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["errors/ldap",{"_index":13294,"title":{},"body":{"injectables/LdapService.html":{}}}],["errors/school",{"_index":15159,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["errors/unauthorized.loggable",{"_index":1818,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["errorstatus",{"_index":20966,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["errorstatus.guests_cannot_join_conference",{"_index":21101,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["errorstatus.school_feature_disabled",{"_index":21282,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["errortype",{"_index":1296,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["errorurl",{"_index":20650,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('sourcesystem",{"_index":20652,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('targetsystem",{"_index":20653,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.tostring",{"_index":20654,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorutils",{"_index":1440,"title":{"classes/ErrorUtils.html":{}},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"classes/GlobalErrorFilter.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["errorutils.createhttpexceptionoptions(err",{"_index":1461,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["errorutils.createhttpexceptionoptions(error",{"_index":2054,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["errorutils.createhttpexceptionoptions(errorobj",{"_index":8212,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorutils.isbusinesserror(error",{"_index":10510,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isbusinesserror(this.error",{"_index":8150,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isfeatherserror(error",{"_index":10508,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isfeatherserror(this.error",{"_index":8148,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isnesthttpexception(error",{"_index":10512,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isnesthttpexception(this.error",{"_index":8151,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["erweitern",{"_index":4764,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["erwin",{"_index":22334,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["erwinidm",{"_index":22335,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["es",{"_index":12104,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["es256",{"_index":1674,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es384",{"_index":1675,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es512",{"_index":1676,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es6",{"_index":21386,"title":{},"body":{"dependencies.html":{}}}],["escape",{"_index":14554,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["escaped",{"_index":11258,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"miscellaneous/functions.html":{}}}],["escapedclasses",{"_index":12561,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedfirstname",{"_index":12545,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedlastname",{"_index":12553,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedloginname",{"_index":12556,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedname",{"_index":20704,"title":{},"body":{"injectables/UserRepo.html":{}}}],["escapedusername",{"_index":941,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["escapes",{"_index":936,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["eslint",{"_index":1298,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/ConsoleWriterService.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SystemRepo.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application.html":{}}}],["eslint/ban",{"_index":20708,"title":{},"body":{"injectables/UserRepo.html":{}}}],["eslint/dot",{"_index":2566,"title":{},"body":{"classes/BaseFactory.html":{}}}],["eslint/no",{"_index":1302,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/News.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{}}}],["eslint/require",{"_index":14252,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["eslint/restrict",{"_index":1378,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ErrorLoggable.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SystemRepo.html":{}}}],["eslintrc.js",{"_index":22406,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["especially",{"_index":22539,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["essential",{"_index":21788,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["etag",{"_index":6170,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["etc",{"_index":21604,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["etherpad",{"_index":8265,"title":{},"body":{"injectables/EtherpadService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["etherpad.service",{"_index":13725,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["etherpadenabled",{"_index":13777,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["etherpadpadid",{"_index":13792,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["etherpadservice",{"_index":8247,"title":{"injectables/EtherpadService.html":{}},"body":{"injectables/EtherpadService.html":{},"injectables/LessonCopyService.html":{},"modules/LessonModule.html":{}}}],["etherpaduri",{"_index":13795,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["etherpaduri}/${etherpadpadid",{"_index":13798,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["evaluate",{"_index":22659,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evaluated",{"_index":22660,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evans",{"_index":22676,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["even",{"_index":21580,"title":{},"body":{"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["event",{"_index":3940,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/FilesStorageProducer.html":{},"injectables/VideoConferenceService.html":{},"license.html":{}}}],["event.data[0",{"_index":3946,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["event.dto",{"_index":3944,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.dto.ts",{"_index":3927,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:2",{"_index":3931,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:4",{"_index":3930,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.interface",{"_index":3942,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.interface.ts",{"_index":11098,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["event.teamid",{"_index":21293,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["event.title",{"_index":21295,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["eventid",{"_index":3965,"title":{},"body":{"injectables/CalendarService.html":{}}}],["events",{"_index":11618,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["everyattendeejoinsmuted",{"_index":7889,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everyattendejoinsmuted",{"_index":20829,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everybodyjoinsasmoderator",{"_index":7890,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everyone",{"_index":21657,"title":{},"body":{"license.html":{}}}],["everything",{"_index":23025,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exact",{"_index":12244,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exactly",{"_index":20532,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exactmatch",{"_index":902,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["example",{"_index":2577,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["example'invoke",{"_index":22936,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["exampleapimodule",{"_index":22529,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplecolor",{"_index":7342,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["examplecontroller",{"_index":22528,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplemodule",{"_index":22519,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examples",{"_index":21545,"title":{},"body":{"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["exampleuc",{"_index":22527,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exceeded",{"_index":8615,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/HydraOauthUc.html":{}}}],["except",{"_index":14555,"title":{},"body":{"classes/MongoPatterns.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exception",{"_index":1819,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"modules/ErrorModule.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/UserLoginMigrationUc.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exception.constructor.name.replace('loggable",{"_index":10523,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.getstatus",{"_index":10520,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.loggable",{"_index":12158,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["exception.loggable.ts",{"_index":12129,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:4",{"_index":12130,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:9",{"_index":12131,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.message",{"_index":10521,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.ts",{"_index":8530,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:10",{"_index":17674,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["exception.ts:15",{"_index":14979,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exception.ts:16",{"_index":10370,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["exception.ts:17",{"_index":8533,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:20",{"_index":8617,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["exception.ts:26",{"_index":14521,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:4",{"_index":8546,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["exception.ts:5",{"_index":8532,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:6",{"_index":14977,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exception.ts:7",{"_index":10369,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:9",{"_index":8547,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["exception/not",{"_index":14972,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exceptionfactory",{"_index":10545,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["exceptionfilter",{"_index":10464,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptionname",{"_index":10522,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptions",{"_index":21988,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exceptionshandler",{"_index":18303,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["exchange",{"_index":1417,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exchanges",{"_index":16483,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["excluded",{"_index":21938,"title":{},"body":{"license.html":{}}}],["excludedraftsofothers",{"_index":19092,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludedraftsofothers(creatorid",{"_index":19108,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers",{"_index":19093,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers(creatorid",{"_index":19110,"title":{},"body":{"classes/TaskScope.html":{}}}],["excluding",{"_index":22139,"title":{},"body":{"license.html":{}}}],["exclusion",{"_index":22221,"title":{},"body":{"license.html":{}}}],["exclusive",{"_index":22098,"title":{},"body":{"license.html":{}}}],["exclusively",{"_index":17862,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["excuse",{"_index":22146,"title":{},"body":{"license.html":{}}}],["exec",{"_index":22946,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["executable",{"_index":21783,"title":{},"body":{"license.html":{}}}],["execute",{"_index":19436,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["executed",{"_index":20456,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["executeidmmethod",{"_index":1048,"title":{},"body":{"injectables/AccountService.html":{}}}],["executeidmmethod(idmcallback",{"_index":1059,"title":{},"body":{"injectables/AccountService.html":{}}}],["executes",{"_index":22359,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["executing",{"_index":21747,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["execution",{"_index":12936,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["execution.id",{"_index":12937,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executioncontext",{"_index":8017,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["executionprovider",{"_index":12934,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executionproviders",{"_index":12911,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executions",{"_index":12935,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["exercise",{"_index":22075,"title":{},"body":{"license.html":{}}}],["exercising",{"_index":21851,"title":{},"body":{"license.html":{}}}],["exist",{"_index":1661,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/BoardManagementUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ITaskParent.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"controllers/SystemController.html":{},"entities/Task.html":{},"injectables/TaskRepo.html":{},"classes/TaskWithStatusVo.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["existing",{"_index":2835,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"entities/CourseGroup.html":{},"injectables/DashboardModelMapper.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseGroupProperties.html":{},"classes/IdentityManagementService.html":{},"modules/ImportUserModule.html":{},"interfaces/JwtConstants.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/Options.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/S3ClientAdapter.html":{},"classes/UpdateNewsParams.html":{},"controllers/VideoConferenceController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["existingaccountid",{"_index":13197,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["existingaccounts",{"_index":13194,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts.length",{"_index":13195,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts[0].id",{"_index":13196,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingcourses",{"_index":6545,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingcourses.map((course",{"_index":6547,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingelements",{"_index":2717,"title":{},"body":{"entities/Board.html":{}}}],["existingentity",{"_index":10688,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["existinggroup",{"_index":15966,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.id",{"_index":15973,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinglessons",{"_index":13848,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existinglessons.map((l",{"_index":13850,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existingmatch",{"_index":20699,"title":{},"body":{"injectables/UserRepo.html":{}}}],["existingnames",{"_index":6250,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["existingnames.includes(composedname",{"_index":6275,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingnames.includes(name",{"_index":6267,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingrooms",{"_index":7380,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingrooms.includes(room",{"_index":7383,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingschool",{"_index":15929,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingschool.externalid",{"_index":17638,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["existingschool.id",{"_index":15970,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existingschool.officialschoolnumber",{"_index":15935,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingtargets",{"_index":4841,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtargets.find((item",{"_index":4847,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtasks",{"_index":18872,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existingtasks.map((t",{"_index":18874,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existinguser",{"_index":15093,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["existinguser.email",{"_index":15954,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.firstname",{"_index":15950,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.lastname",{"_index":15952,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.roles",{"_index":15956,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.schoolid",{"_index":15957,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguserloginmigration",{"_index":13629,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["existinguserloginmigration?.closedat",{"_index":13633,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["exists",{"_index":1121,"title":{},"body":{"injectables/AccountService.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"injectables/JwtStrategy.html":{},"classes/UserScope.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["existsexpertrole",{"_index":21215,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["existsexpertrole(roles",{"_index":21234,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["existssync",{"_index":10007,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["existssync(folderpath",{"_index":10015,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["exitonerror",{"_index":14051,"title":{},"body":{"modules/LoggerModule.html":{}}}],["exp",{"_index":6887,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["expect",{"_index":22500,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["expect(code).to",{"_index":22769,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazy(x,y,z)).to",{"_index":22750,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazysync(wrong",{"_index":22772,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(mockservice.getuser).tohavebeencalled",{"_index":22814,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).to",{"_index":22753,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).toequal(resultuser",{"_index":22815,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expectation",{"_index":22742,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expected",{"_index":3145,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["expecting",{"_index":22758,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expects",{"_index":21951,"title":{},"body":{"license.html":{}}}],["expensive",{"_index":19052,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["expert",{"_index":23023,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["expiration",{"_index":6897,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtValidationAdapter.html":{}}}],["expire",{"_index":17855,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["expireafterseconds",{"_index":9740,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["expired",{"_index":17626,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["expires",{"_index":9870,"title":{},"body":{"injectables/FileRecordRepo.html":{},"controllers/OauthSSOController.html":{}}}],["expiresat",{"_index":385,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["expiresin",{"_index":1689,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{}}}],["expiresindays",{"_index":17852,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["explains",{"_index":22893,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["explanation",{"_index":23016,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["explicit",{"_index":2086,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["explicitly",{"_index":1309,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["export",{"_index":101,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["export.service",{"_index":6596,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.service.ts",{"_index":4932,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:130",{"_index":4958,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:138",{"_index":4963,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:18",{"_index":4942,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:25",{"_index":4951,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:41",{"_index":4947,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:65",{"_index":4949,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:85",{"_index":4954,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.uc",{"_index":6496,"title":{},"body":{"controllers/CourseController.html":{}}}],["export.uc.ts",{"_index":6590,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:14",{"_index":6594,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:8",{"_index":6592,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["exportcollection",{"_index":7688,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(@param('collectionname",{"_index":7712,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(collectionname",{"_index":7691,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollections",{"_index":7646,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{}}}],["exportcollections(options",{"_index":7651,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["exportcollectionstofilesystem(collections",{"_index":11207,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportcourse",{"_index":4935,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(courseid",{"_index":4950,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(currentuser",{"_index":6481,"title":{},"body":{"controllers/CourseController.html":{}}}],["exported",{"_index":11185,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["exportedcollections",{"_index":11211,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportedcollections.push(`${collectionname}:${sortedbsondocuments.length",{"_index":11225,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exporting",{"_index":22350,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["exports",{"_index":433,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["expose",{"_index":11828,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["exposed",{"_index":5406,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exposes",{"_index":22649,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["express",{"_index":6491,"title":{},"body":{"controllers/CourseController.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalErrorFilter.html":{},"classes/JwtExtractor.html":{},"controllers/OauthSSOController.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ToolController.html":{},"controllers/VideoConferenceController.html":{},"dependencies.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["expressed",{"_index":22177,"title":{},"body":{"license.html":{}}}],["expressions",{"_index":953,"title":{},"body":{"injectables/AccountRepo.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ErrorLoggable.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SystemRepo.html":{}}}],["expressly",{"_index":22026,"title":{},"body":{"license.html":{}}}],["ext",{"_index":12578,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["ext_official_school_missing",{"_index":17635,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_mismatch",{"_index":17661,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_missing",{"_index":17631,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["extend",{"_index":685,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/GlobalValidationPipe.html":{},"classes/ImportUserFactory.html":{},"injectables/JwtStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UpdateNewsParams.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["extendability",{"_index":22436,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extended",{"_index":3851,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/FileSystemAdapter.html":{},"injectables/JwtValidationAdapter.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["extending",{"_index":18142,"title":{},"body":{"classes/SortingParams.html":{}}}],["extends",{"_index":404,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthorizationError.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"entities/ColumnboardBoardElement.html":{},"classes/ConsentRequestBody.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/County.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/FeathersError.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"classes/FileContentBody.html":{},"classes/FileElement.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalValidationPipe.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/InlineAttachment.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LocalStrategy.html":{},"classes/LoginRequestBody.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"interfaces/PlainTextMailContent.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"interfaces/RpcMessage.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenRepo.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestBootstrapConsole.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["extension",{"_index":22451,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extensions",{"_index":21885,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["extent",{"_index":21765,"title":{},"body":{"license.html":{}}}],["external",{"_index":200,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"interfaces/BoardExternalReference.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalGroupDto.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IToolLaunchParams.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"modules/ImportUserModule.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ReferenceLoader.html":{},"injectables/RuleManager.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["external_sub",{"_index":6863,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["external_tool_logo_fetch_failed",{"_index":8534,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["external_tool_logo_fetched",{"_index":8543,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["external_tool_logo_not_found",{"_index":8548,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}}}],["external_tool_logo_size_exceeded",{"_index":8618,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["external_tool_logo_wrong_file_type",{"_index":8620,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["external_tools",{"_index":8488,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["externalauthconfig",{"_index":12666,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["externalgroup",{"_index":15918,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalid",{"_index":15968,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalorganizationid",{"_index":15969,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.from",{"_index":15976,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.name",{"_index":15974,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.type",{"_index":15975,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.until",{"_index":15977,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.users.length",{"_index":15965,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.users.map(async",{"_index":15979,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupdto",{"_index":8266,"title":{"classes/ExternalGroupDto.html":{}},"body":{"classes/ExternalGroupDto.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalgroupid",{"_index":17536,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalgroups",{"_index":15347,"title":{},"body":{"classes/OauthDataDto.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalgroupuser",{"_index":15980,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuserdto",{"_index":8278,"title":{"classes/ExternalGroupUserDto.html":{}},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["externalid",{"_index":854,"title":{},"body":{"interfaces/AccountParams.html":{},"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalUserDto.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/IservMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"entities/News.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["externalorganizationid",{"_index":8269,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalrolename",{"_index":10707,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["externalschool",{"_index":12647,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalschool.externalid",{"_index":15931,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.name",{"_index":15933,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.officialschoolnumber",{"_index":15934,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschooldto",{"_index":8298,"title":{"classes/ExternalSchoolDto.html":{}},"body":{"classes/ExternalSchoolDto.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["externalschoolid",{"_index":13352,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["externalsource",{"_index":8306,"title":{"classes/ExternalSource.html":{}},"body":{"classes/ExternalSource.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/OidcProvisioningService.html":{}}}],["externalsource.externalid",{"_index":10637,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsource.systemid",{"_index":10639,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsourceentity",{"_index":8311,"title":{"classes/ExternalSourceEntity.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["externalsourceentityprops",{"_index":8314,"title":{"interfaces/ExternalSourceEntityProps.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["externalsub",{"_index":6891,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["externaltool",{"_index":158,"title":{"classes/ExternalTool.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["externaltool'})@httpcode(httpstatus.no_content",{"_index":19643,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltool.config",{"_index":9024,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.baseurl",{"_index":272,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["externaltool.config.clientid",{"_index":9255,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.clientsecret",{"_index":9258,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.secret",{"_index":9115,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.type",{"_index":9251,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.id",{"_index":8593,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolValidationService.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltool.ishidden",{"_index":8450,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.islti11config(config",{"_index":14230,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["externaltool.islti11config(externaltool.config",{"_index":9114,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(externaltool.config",{"_index":9117,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(loadedtool.config",{"_index":9250,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(tool.config",{"_index":9128,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.isoauth2config(toupdate.config",{"_index":9145,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.logo",{"_index":8588,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{}}}],["externaltool.logourl",{"_index":8435,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.name",{"_index":8672,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.opennewtab",{"_index":274,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.parameters",{"_index":276,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltool.parameters.filter",{"_index":8398,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltool.parameters.foreach((param",{"_index":8674,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["externaltool.url",{"_index":9029,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.version",{"_index":9030,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltoolconfig",{"_index":2603,"title":{"classes/ExternalToolConfig.html":{}},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolUc.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfig:4",{"_index":2607,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfig:6",{"_index":2605,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfigcreateparams",{"_index":2626,"title":{"classes/ExternalToolConfigCreateParams.html":{}},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigcreateparams:13",{"_index":2628,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigcreateparams:9",{"_index":2630,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigdo",{"_index":9006,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltoolconfigentity",{"_index":2614,"title":{"classes/ExternalToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigentity:10",{"_index":2616,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigentity:7",{"_index":2617,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigparams",{"_index":8904,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolconfigresponse",{"_index":2636,"title":{"classes/ExternalToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:10",{"_index":2638,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:7",{"_index":2639,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigurationservice",{"_index":8351,"title":{"injectables/ExternalToolConfigurationService.html":{}},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/ExternalToolModule.html":{},"modules/ToolApiModule.html":{}}}],["externaltoolconfigurationuc",{"_index":8399,"title":{"injectables/ExternalToolConfigurationUc.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["externaltoolcreate",{"_index":8898,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams",{"_index":8453,"title":{"classes/ExternalToolCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams.config",{"_index":8962,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.ishidden",{"_index":8970,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.logourl",{"_index":8969,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.name",{"_index":8967,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.opennewtab",{"_index":8971,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.parameters",{"_index":8966,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.url",{"_index":8968,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltooldomapper",{"_index":19667,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolentity",{"_index":8472,"title":{"entities/ExternalToolEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolentity(props",{"_index":8787,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolentityfactory",{"_index":8491,"title":{"classes/ExternalToolEntityFactory.html":{}},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolentityfactory.define",{"_index":8511,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolfactory",{"_index":7163,"title":{"classes/ExternalToolFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolfactory.define(externaltool",{"_index":7174,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolid",{"_index":5639,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltoolidparams",{"_index":8519,"title":{"classes/ExternalToolIdParams.html":{}},"body":{"classes/ExternalToolIdParams.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo",{"_index":8520,"title":{"classes/ExternalToolLogo.html":{}},"body":{"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.contenttype",{"_index":8527,"title":{},"body":{"classes/ExternalToolLogo.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.logo",{"_index":8525,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["externaltoollogofetchedloggable",{"_index":8540,"title":{"classes/ExternalToolLogoFetchedLoggable.html":{}},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchedloggable(logourl",{"_index":8600,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception",{"_index":8528,"title":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception(logourl",{"_index":8604,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception",{"_index":8544,"title":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception(toolid",{"_index":8608,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogoservice",{"_index":8409,"title":{"classes/ExternalToolLogoService.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"controllers/ToolController.html":{},"injectables/ToolReferenceUc.html":{}}}],["externaltoollogosizeexceededloggableexception",{"_index":8571,"title":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["externaltoollogowrongfiletypeloggableexception",{"_index":8572,"title":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["externaltoolmodule",{"_index":5718,"title":{"modules/ExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["externaltoolparametervalidationservice",{"_index":8631,"title":{"injectables/ExternalToolParameterValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolparams",{"_index":19635,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolprops",{"_index":7124,"title":{"interfaces/ExternalToolProps.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolpseudonymentity",{"_index":8709,"title":{"entities/ExternalToolPseudonymEntity.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["externaltoolpseudonymentity(entityprops",{"_index":8755,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["externaltoolpseudonympromise",{"_index":16430,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolpseudonymrepo",{"_index":8723,"title":{"injectables/ExternalToolPseudonymRepo.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{}}}],["externaltoolpseudonyms",{"_index":16417,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolrepo",{"_index":8632,"title":{"injectables/ExternalToolRepo.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["externaltoolrepomapper",{"_index":5780,"title":{"classes/ExternalToolRepoMapper.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentrydostoentities(entitydo.parameters",{"_index":5807,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.parameters",{"_index":5800,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.schoolparameters",{"_index":17407,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapdotoentityproperties(entitydo",{"_index":8799,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapentitytodo(entity",{"_index":8798,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrequestmapper",{"_index":8884,"title":{"injectables/ExternalToolRequestMapper.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponse",{"_index":8985,"title":{"classes/ExternalToolResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper",{"_index":8996,"title":{"injectables/ExternalToolResponseMapper.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.mapcustomparametertoresponse(externaltool.parameters",{"_index":19576,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(created",{"_index":19670,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(externaltool",{"_index":19684,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(tool",{"_index":19677,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(updated",{"_index":19688,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptotoolreferenceresponses(toolreferences",{"_index":19693,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":19663,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":19636,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltools",{"_index":8365,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltools.data",{"_index":8443,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["externaltools.data.filter((tool",{"_index":8378,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.find",{"_index":8391,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.map",{"_index":19578,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltools.map((tooldo",{"_index":17442,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["externaltoolscope",{"_index":8786,"title":{"classes/ExternalToolScope.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{}}}],["externaltoolsearchlistresponse",{"_index":9061,"title":{"classes/ExternalToolSearchListResponse.html":{}},"body":{"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":19914,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":19647,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolsearchparams",{"_index":8900,"title":{"classes/ExternalToolSearchParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSearchParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolsearchquery",{"_index":8772,"title":{"interfaces/ExternalToolSearchQuery.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolservice",{"_index":5976,"title":{"injectables/ExternalToolService.html":{}},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceUc.html":{}}}],["externaltoolservice.deleteexternaltool",{"_index":5282,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["externaltoolservicemapper",{"_index":8633,"title":{"injectables/ExternalToolServiceMapper.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["externaltoolsortby",{"_index":18131,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["externaltoolsortingmapper",{"_index":8784,"title":{"classes/ExternalToolSortingMapper.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["externaltoolsortingmapper.mapdosortordertoqueryorder",{"_index":8790,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltooluc",{"_index":9188,"title":{"injectables/ExternalToolUc.html":{}},"body":{"injectables/ExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdate",{"_index":8931,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams",{"_index":8929,"title":{"classes/ExternalToolUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams.config",{"_index":8949,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.id",{"_index":8956,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.ishidden",{"_index":8960,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.logourl",{"_index":8959,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.name",{"_index":8957,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.opennewtab",{"_index":8961,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.parameters",{"_index":8955,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.url",{"_index":8958,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolvalidationservice",{"_index":8629,"title":{"injectables/ExternalToolValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolversion",{"_index":17520,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["externaltoolversionservice",{"_index":8630,"title":{"injectables/ExternalToolVersionService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolVersionService.html":{}}}],["externaluser",{"_index":12645,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.email",{"_index":15953,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.externalid",{"_index":15958,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.firstname",{"_index":15949,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.lastname",{"_index":15951,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.roles",{"_index":15944,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.includes(rolename.administrator",{"_index":17258,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.push(rolename.teacher",{"_index":17259,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluserdto",{"_index":9332,"title":{"classes/ExternalUserDto.html":{}},"body":{"classes/ExternalUserDto.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["externaluserid",{"_index":8291,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["extra",{"_index":23091,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["extract",{"_index":11476,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["extractaccount",{"_index":13071,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractaccount(user",{"_index":13077,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue",{"_index":13072,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue(value",{"_index":13080,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractids(users",{"_index":6451,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["extracting",{"_index":10543,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["extractjwt",{"_index":12693,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromauthheaderasbearertoken",{"_index":12698,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromextractors",{"_index":12697,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor",{"_index":12694,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor.ts",{"_index":12679,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractor.ts:6",{"_index":12682,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractparamsfromrequest",{"_index":13320,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractparamsfromrequest(request",{"_index":13327,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractreferences",{"_index":2990,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extractreferences(statuses",{"_index":3012,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extracts",{"_index":2324,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["extracttaskid",{"_index":13759,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["extracttaskid(content.url",{"_index":13765,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["extractvalidationerrordetails",{"_index":1501,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["extractvalidationerrordetails(validationerror",{"_index":1517,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["f",{"_index":713,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolService.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"license.html":{}}}],["f0",{"_index":2910,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UserInfoResponse.html":{}}}],["facilitate",{"_index":22705,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["facilitating",{"_index":22159,"title":{},"body":{"license.html":{}}}],["facilities",{"_index":21816,"title":{},"body":{"license.html":{}}}],["factories",{"_index":7670,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["factory",{"_index":676,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RoomsUc.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/ShareTokenFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["factory.define",{"_index":723,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["factory.define(generator",{"_index":2545,"title":{},"body":{"classes/BaseFactory.html":{}}}],["factory/account.factory",{"_index":1706,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["fail",{"_index":21708,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failafter",{"_index":13307,"title":{},"body":{"injectables/LdapService.html":{}}}],["failed",{"_index":798,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"classes/ApiValidationError.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"classes/LdapConnectionError.html":{},"injectables/OauthAdapterService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/UserLoginMigrationError.html":{},"todo.html":{}}}],["failing",{"_index":14016,"title":{},"body":{"injectables/LocalStrategy.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failingfileids",{"_index":7828,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.length",{"_index":7829,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.push(result.fileid",{"_index":7836,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.tostring",{"_index":7841,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["fails",{"_index":11586,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["failure",{"_index":10770,"title":{},"body":{"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"license.html":{}}}],["fair",{"_index":21813,"title":{},"body":{"license.html":{}}}],["fallback",{"_index":19195,"title":{},"body":{"injectables/TaskUC.html":{}}}],["false",{"_index":371,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardUrlParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"injectables/CollaborativeStorageService.html":{},"entities/ColumnBoardTarget.html":{},"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/County.html":{},"entities/Course.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DtoCreator.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FederalState.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GlobalValidationPipe.html":{},"injectables/GroupRepo.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"classes/IdParams.html":{},"classes/IdentityManagementOauthService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapConfig.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"modules/LoggerModule.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"classes/PublicSystemResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/Scope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"injectables/SubmissionRule.html":{},"classes/SubmissionUrlParams.html":{},"entities/System.html":{},"classes/SystemIdParams.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"classes/TeamUrlParams.html":{},"injectables/TeamsRepo.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["false})@index",{"_index":9575,"title":{},"body":{"entities/FileEntity.html":{}}}],["false})@isoptional",{"_index":20938,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["false})@sanitizehtml",{"_index":16610,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["familiar",{"_index":23021,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["familienname",{"_index":17222,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["family",{"_index":21942,"title":{},"body":{"license.html":{}}}],["fantasy",{"_index":21631,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["fashion",{"_index":21735,"title":{},"body":{"license.html":{}}}],["fast",{"_index":22702,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["favicon",{"_index":21443,"title":{},"body":{"dependencies.html":{}}}],["favor",{"_index":21948,"title":{},"body":{"license.html":{}}}],["featherjs",{"_index":23095,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["feathers",{"_index":1987,"title":{},"body":{"modules/AuthorizationModule.html":{},"classes/ErrorLoggable.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{},"index.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["feathersapp",{"_index":9442,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersapp.service(path",{"_index":9449,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersauthorizationservice",{"_index":1953,"title":{"injectables/FeathersAuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/NewsUc.html":{}}}],["feathersauthprovider",{"_index":1960,"title":{"injectables/FeathersAuthProvider.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["featherserror",{"_index":8241,"title":{"interfaces/FeathersError.html":{}},"body":{"classes/ErrorUtils.html":{},"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["featherserror)?.type",{"_index":8244,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["feathersexpress",{"_index":9447,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersexpress.services['nest",{"_index":22616,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersjs/authentication",{"_index":21313,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/configuration",{"_index":21316,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/errors",{"_index":7628,"title":{},"body":{"injectables/DashboardUc.html":{},"dependencies.html":{}}}],["feathersjs/express",{"_index":9436,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"dependencies.html":{}}}],["feathersjs/feathers",{"_index":21317,"title":{},"body":{"dependencies.html":{}}}],["feathersmodule",{"_index":1950,"title":{"modules/FeathersModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/FeathersModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersservice",{"_index":9425,"title":{"interfaces/FeathersService.html":{}},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceparams",{"_index":9429,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceprovider",{"_index":8251,"title":{"injectables/FeathersServiceProvider.html":{}},"body":{"injectables/EtherpadService.html":{},"injectables/FeathersAuthProvider.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/LessonModule.html":{},"injectables/NexboardService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersserviceresponse",{"_index":9438,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feature",{"_index":6589,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyUC.html":{},"injectables/OAuthService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["feature/bc",{"_index":21640,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature/sc",{"_index":21630,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature_disabled_app_will_not_be_created",{"_index":16258,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_disabled_middlewares_will_not_be_created",{"_index":16251,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_identity_management_enabled",{"_index":11442,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_login_enabled",{"_index":11443,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_store_enabled",{"_index":11444,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_imscc_course_export_enabled",{"_index":11295,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_videoconference_enabled",{"_index":21283,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["featureenabled",{"_index":13829,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["features",{"_index":6367,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["featureundertest",{"_index":22795,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["federal",{"_index":11699,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolFactory.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["federalstate",{"_index":6359,"title":{"entities/FederalState.html":{}},"body":{"classes/County.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolYearService.html":{},"entities/System.html":{}}}],["federalstatefactory",{"_index":13513,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatefactory.build",{"_index":13526,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatenames",{"_index":15925,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstatenames.niedersachen",{"_index":15939,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstaterepo",{"_index":9458,"title":{"injectables/FederalStateRepo.html":{}},"body":{"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{}}}],["federalstates",{"_index":6358,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["federalstateservice",{"_index":9464,"title":{"injectables/FederalStateService.html":{}},"body":{"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{}}}],["fee",{"_index":21869,"title":{},"body":{"license.html":{}}}],["feedback",{"_index":4802,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feedbacklink",{"_index":4795,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feel",{"_index":1722,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["fetch",{"_index":2723,"title":{},"body":{"entities/Board.html":{},"injectables/CourseCopyService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["fetchbase64logo",{"_index":8552,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchbase64logo(logourl",{"_index":8562,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetched",{"_index":8535,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{}}}],["fetchedentity",{"_index":2455,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["fetchexternaltool",{"_index":19873,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["fetchexternaltool(schoolexternaltool",{"_index":19881,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["fetchlogo",{"_index":8553,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchlogo(externaltool",{"_index":8564,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchschoolexternaltool",{"_index":19874,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["fetchschoolexternaltool(contextexternaltool",{"_index":19883,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["few",{"_index":23131,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["ffd8ffe0",{"_index":8575,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffd8ffe1",{"_index":8577,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffffff",{"_index":6621,"title":{},"body":{"classes/CourseFactory.html":{}}}],["field",{"_index":11485,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/LdapStrategy.html":{},"classes/PatchMyPasswordParams.html":{},"classes/ValidationErrorDetailResponse.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["fieldname",{"_index":2674,"title":{},"body":{"entities/Board.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["fields",{"_index":2183,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/HydraSsoService.html":{},"injectables/TaskRepo.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["file",{"_index":5,"title":{"interfaces/File.html":{},"additional-documentation/nestjs-application/file-structure.html":{}},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["file.bucket",{"_index":7860,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.collectionname",{"_index":11165,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["file.data",{"_index":9485,"title":{},"body":{"classes/FileDto.html":{},"classes/FileResponseBuilder.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.dto.ts",{"_index":6066,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:5",{"_index":6070,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:7",{"_index":6071,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:9",{"_index":6069,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.id",{"_index":7859,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.interface",{"_index":5111,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["file.interface.ts",{"_index":11298,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:2",{"_index":11299,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:3",{"_index":11300,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.isdirectory",{"_index":7856,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.mimetype",{"_index":9486,"title":{},"body":{"classes/FileDto.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.name",{"_index":9484,"title":{},"body":{"classes/FileDto.html":{}}}],["file.storagefilename",{"_index":7862,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.storageprovider",{"_index":7864,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file_could_not_be_copied_hint",{"_index":6206,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filecontent",{"_index":11192,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filecontentbody",{"_index":5541,"title":{"classes/FileContentBody.html":{}},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["filecopystatus",{"_index":6216,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["filecouldnotbecopied",{"_index":6207,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedto",{"_index":6219,"title":{"classes/FileDto.html":{},"classes/FileDto-1.html":{}},"body":{"injectables/CopyFilesService.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/PreviewService.html":{}}}],["filedtobuilder",{"_index":9495,"title":{"classes/FileDtoBuilder.html":{}},"body":{"classes/FileDtoBuilder.html":{},"injectables/PreviewService.html":{}}}],["filedtobuilder.build(fileinfo.filename",{"_index":9509,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(hash",{"_index":16187,"title":{},"body":{"injectables/PreviewService.html":{}}}],["filedtobuilder.build(name",{"_index":9514,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtos",{"_index":6199,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map",{"_index":6225,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map((filedto",{"_index":6218,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileelement",{"_index":2864,"title":{"classes/FileElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.caption",{"_index":5579,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.id",{"_index":16567,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["fileelementcontent",{"_index":9530,"title":{"classes/FileElementContent.html":{}},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementcontentbody",{"_index":8032,"title":{"classes/FileElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["fileelementnode",{"_index":3174,"title":{"entities/FileElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelementnodeprops",{"_index":9540,"title":{"interfaces/FileElementNodeProps.html":{}},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["fileelementprops",{"_index":9529,"title":{"interfaces/FileElementProps.html":{}},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["fileelementresponse",{"_index":4011,"title":{"classes/FileElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper",{"_index":5521,"title":{"classes/FileElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper.getinstance",{"_index":5516,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["fileelementresponsemapper.instance",{"_index":9552,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["fileentity",{"_index":7811,"title":{"entities/FileEntity.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"modules/ServerConsoleModule.html":{}}}],["fileentityprops",{"_index":9603,"title":{"interfaces/FileEntityProps.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["filegroupstatus",{"_index":6231,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileid",{"_index":6230,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/DeleteFilesUc.html":{}}}],["fileinfo",{"_index":9505,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfo.mimetype",{"_index":9510,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfos",{"_index":10117,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filename",{"_index":6127,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"interfaces/ICollectionFilePath.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{}}}],["filename.split('.')[0",{"_index":11147,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filename=\"${encodeuri(fileresponse.name",{"_index":10239,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filename=\"${encodeuri(params.fwulearningcontent",{"_index":10416,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["filenameprefix",{"_index":6116,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["filenames",{"_index":9989,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filenames.map((filename",{"_index":11145,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filenamewithoutextension",{"_index":16195,"title":{},"body":{"injectables/PreviewService.html":{}}}],["filenamewithoutextension}.${format",{"_index":16198,"title":{},"body":{"injectables/PreviewService.html":{}}}],["fileownermodel",{"_index":9585,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["fileownermodel.user",{"_index":10060,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["fileparambuilder",{"_index":6204,"title":{"classes/FileParamBuilder.html":{}},"body":{"injectables/CopyFilesService.html":{},"classes/FileParamBuilder.html":{}}}],["fileparambuilder.build(copyentity.getschoolid",{"_index":6211,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparambuilder.build(originalentity.getschoolid",{"_index":6210,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparams",{"_index":6128,"title":{"classes/FileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["filepath",{"_index":9994,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/GetFileResponse.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["filepermissionentity",{"_index":9583,"title":{"classes/FilePermissionEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionentityprops",{"_index":9669,"title":{"interfaces/FilePermissionEntityProps.html":{}},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionreferencemodel",{"_index":9674,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filerecord",{"_index":6082,"title":{"entities/FileRecord.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/GetFileResponse.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"modules/ServerConsoleModule.html":{},"miscellaneous/functions.html":{}}}],["filerecord.creatorid",{"_index":6099,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.deletedsince",{"_index":6105,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.getpreviewstatus",{"_index":6107,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.id",{"_index":6088,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.mimetype",{"_index":6101,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.name",{"_index":6089,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.name.split('.')[0",{"_index":16196,"title":{},"body":{"injectables/PreviewService.html":{}}}],["filerecord.parentid",{"_index":6097,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.parenttype",{"_index":6103,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.schoolid",{"_index":10235,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filerecord.securitycheck.status",{"_index":6095,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.size",{"_index":6093,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordcopy",{"_index":9760,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordcopy.securitycheck",{"_index":9762,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordfactory",{"_index":9793,"title":{"classes/FileRecordFactory.html":{}},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordfactory.define(filerecord",{"_index":9799,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordid",{"_index":6131,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordScope.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{}}}],["filerecordlistresponse",{"_index":6113,"title":{"classes/FileRecordListResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordlistresponse(responsefilerecords",{"_index":9820,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordlistresponse.map((record",{"_index":10142,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordmapper",{"_index":9804,"title":{"classes/FileRecordMapper.html":{}},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordmapper.maptofilerecordresponse(filerecord",{"_index":9819,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordparams",{"_index":6119,"title":{"classes/FileRecordParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{}}}],["filerecordparenttype",{"_index":6083,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileDto-1.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IParentInfo.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["filerecordparenttype'})@isenum(filerecordparenttype",{"_index":9832,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["filerecordparenttype.course",{"_index":9801,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordparenttype.lesson",{"_index":10155,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.submission",{"_index":10157,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.task",{"_index":10156,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordrepo",{"_index":9835,"title":{"injectables/FileRecordRepo.html":{}},"body":{"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{}}}],["filerecordresponse",{"_index":6086,"title":{"classes/FileRecordResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordresponse(filerecord",{"_index":9816,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordresponse.id",{"_index":10147,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.name",{"_index":10148,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.parentid",{"_index":10149,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecords",{"_index":9734,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["filerecords.map((filerecord",{"_index":9818,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{},"injectables/PreviewService.html":{}}}],["filerecordscanstatus",{"_index":6108,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordscope",{"_index":9846,"title":{"classes/FileRecordScope.html":{}},"body":{"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(false",{"_index":9863,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(true",{"_index":9865,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byparentid(parentid).bymarkedfordelete(false",{"_index":9866,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(false",{"_index":9868,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(true",{"_index":9869,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().bysecuritycheckrequesttoken(token",{"_index":9872,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordsecuritycheck",{"_index":9707,"title":{"classes/FileRecordSecurityCheck.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordSecurityCheck.html":{},"modules/FilesStorageModule.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerequestinfo",{"_index":6181,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["fileresponse",{"_index":9919,"title":{},"body":{"classes/FileResponseBuilder.html":{},"classes/FilesStorageMapper.html":{},"classes/TestHelper.html":{}}}],["fileresponse.contentlength",{"_index":10240,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponse.contenttype",{"_index":10238,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponsebuilder",{"_index":9914,"title":{"classes/FileResponseBuilder.html":{}},"body":{"classes/FileResponseBuilder.html":{},"injectables/PreviewService.html":{}}}],["fileresponsebuilder.build(file",{"_index":16184,"title":{},"body":{"injectables/PreviewService.html":{}}}],["files",{"_index":3542,"title":{},"body":{"modules/BoardModule.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["files.console.ts",{"_index":7771,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:15",{"_index":7782,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:6",{"_index":7775,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.interface",{"_index":12821,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["files.interface.ts",{"_index":11508,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["files.length",{"_index":7837,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.map((file",{"_index":7831,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.service",{"_index":10164,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["files.service.ts",{"_index":6188,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:17",{"_index":6194,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:23",{"_index":6196,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:42",{"_index":6198,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:58",{"_index":6202,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.uc.ts",{"_index":7795,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:106",{"_index":7814,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:12",{"_index":7804,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:22",{"_index":7816,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:66",{"_index":7817,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:76",{"_index":7807,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:91",{"_index":7812,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files_storage_s3_connection",{"_index":11408,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/PreviewService.html":{}}}],["filesdto",{"_index":10141,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesecuritycheckentity",{"_index":9587,"title":{"classes/FileSecurityCheckEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckentityprops",{"_index":9921,"title":{"interfaces/FileSecurityCheckEntityProps.html":{}},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus",{"_index":9926,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus.pending",{"_index":9927,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycontroller",{"_index":9929,"title":{"controllers/FileSecurityController.html":{}},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filesmodule",{"_index":10037,"title":{"modules/FilesModule.html":{}},"body":{"modules/FilesModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["filesrepo",{"_index":7802,"title":{"injectables/FilesRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{}}}],["filesservice",{"_index":10069,"title":{"injectables/FilesService.html":{}},"body":{"injectables/FilesService.html":{}}}],["filesservicebaseurl",{"_index":1416,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{}}}],["filesstorageamqpmodule",{"_index":10085,"title":{"modules/FilesStorageAMQPModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules.html":{}}}],["filesstorageapimodule",{"_index":10094,"title":{"modules/FilesStorageApiModule.html":{}},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filesstorageclientadapterservice",{"_index":6193,"title":{"injectables/FilesStorageClientAdapterService.html":{}},"body":{"injectables/CopyFilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/LessonService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/SubmissionService.html":{},"injectables/TaskService.html":{}}}],["filesstorageclientmapper",{"_index":9659,"title":{"classes/FilesStorageClientMapper.html":{}},"body":{"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapcopyfilelistresponsetocopyfilesdto(response",{"_index":10118,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapcopyfileresponsetocopyfiledto(response",{"_index":10145,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapentitytoparenttype(parent",{"_index":9661,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["filesstorageclientmapper.mapfilerecordlistresponsetodomainfilesdto(response",{"_index":10120,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapfilerecordresponsetofiledto(record",{"_index":10143,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapstringtoparenttype(filerecordresponse.parenttype",{"_index":10146,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmodule",{"_index":3534,"title":{"modules/FilesStorageClientModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/LessonModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TaskModule.html":{},"modules.html":{}}}],["filesstorageconsumer",{"_index":10090,"title":{"injectables/FilesStorageConsumer.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"injectables/FilesStorageConsumer.html":{}}}],["filesstoragecontroller",{"_index":10098,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["filesstorageevents",{"_index":10187,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["filesstorageevents.copy_files_of_parent",{"_index":10193,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.delete_files_of_parent",{"_index":10199,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.list_files_of_parent",{"_index":10195,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageexchange",{"_index":10174,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["filesstorageinternalactions",{"_index":1443,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"controllers/FileSecurityController.html":{}}}],["filesstoragemapper",{"_index":10191,"title":{"classes/FilesStorageMapper.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{}}}],["filesstoragemapper.maptofilerecordlistresponse(filerecords",{"_index":10198,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstoragemapper.maptofilerecordresponse(filerecord",{"_index":10236,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filesstoragemodule",{"_index":10089,"title":{"modules/FilesStorageModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["filesstorageproducer",{"_index":10106,"title":{"injectables/FilesStorageProducer.html":{}},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageProducer.html":{}}}],["filesstorageservice",{"_index":10170,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["filesstoragetestmodule",{"_index":10314,"title":{"modules/FilesStorageTestModule.html":{}},"body":{"modules/FilesStorageTestModule.html":{},"modules.html":{}}}],["filesstorageuc",{"_index":9942,"title":{},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filestatuses",{"_index":6224,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filestorageauthorizationcontext",{"_index":23053,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["filestorageconfig",{"_index":11409,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["filestoragemqproducer",{"_index":10105,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filestorageservice",{"_index":16140,"title":{},"body":{"injectables/PreviewService.html":{}}}],["filesystem",{"_index":7654,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["filesystemadapter",{"_index":9955,"title":{"injectables/FileSystemAdapter.html":{}},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filesystemmodule",{"_index":10026,"title":{"modules/FileSystemModule.html":{}},"body":{"modules/FileSystemModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["fileupload_enabled=false",{"_index":22996,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["fileurlparams",{"_index":6126,"title":{"classes/FileUrlParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["fileurlreplacement",{"_index":6200,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements",{"_index":6214,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements.foreach",{"_index":13775,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["fill",{"_index":22845,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["filled",{"_index":8683,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["filledpathparams",{"_index":261,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["filledpathparams.join",{"_index":271,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["filledtemplate",{"_index":8585,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["filter",{"_index":7668,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ErrorModule.html":{},"injectables/FilesRepo.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakSeedService.html":{},"classes/ListOauthClientsParams.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/Options.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["filter((data",{"_index":11174,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filter((element",{"_index":6313,"title":{},"body":{"classes/CopyMapper.html":{}}}],["filter((entity",{"_index":18642,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["filter((group",{"_index":17317,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((key",{"_index":9185,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["filter((match",{"_index":12566,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["filter((rolename",{"_index":20548,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["filter((user",{"_index":17311,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter.ts",{"_index":14790,"title":{},"body":{"interfaces/NewsTargetFilter.html":{}}}],["filter/global",{"_index":8219,"title":{},"body":{"modules/ErrorModule.html":{}}}],["filterallowed",{"_index":4177,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterallowed(userid",{"_index":4188,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterbypermission",{"_index":7917,"title":{},"body":{"classes/DtoCreator.html":{}}}],["filterbypermission(elements",{"_index":7935,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["filtered",{"_index":6260,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["filtered.every((status",{"_index":6264,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filtered.length",{"_index":6263,"title":{},"body":{"injectables/CopyHelperService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["filtered.some((status",{"_index":6266,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filteredaccounts",{"_index":1245,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts.length",{"_index":1249,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts[0].id.tostring",{"_index":1256,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredcollectionswithfilepaths",{"_index":11159,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredcollectionswithfilepaths.length",{"_index":11162,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredpathobjects",{"_index":17172,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["filteredtoolreferences",{"_index":19892,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["filteredusers",{"_index":15986,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["filterforavailableexternaltools",{"_index":8354,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableexternaltools(externaltools",{"_index":8362,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools",{"_index":8355,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools(schoolexternaltools",{"_index":8367,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools",{"_index":8356,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools(externaltools",{"_index":8371,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterimportuserparams",{"_index":10327,"title":{"classes/FilterImportUserParams.html":{}},"body":{"classes/FilterImportUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["filtermatchtype",{"_index":10340,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.auto",{"_index":12434,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.manual",{"_index":12436,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.none",{"_index":12438,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filternewsparams",{"_index":10354,"title":{"classes/FilterNewsParams.html":{}},"body":{"classes/FilterNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["filterparametersforscope",{"_index":8357,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparametersforscope(externaltool",{"_index":8374,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparams",{"_index":18528,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterparams.onlyoauth",{"_index":18547,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterquery",{"_index":2432,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ContextExternalToolScope.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"injectables/SubmissionRepo.html":{},"classes/SystemScope.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["filterroletype",{"_index":10345,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/RoleNameMapper.html":{}}}],["filterroletype.admin",{"_index":16820,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.student",{"_index":16822,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.teacher",{"_index":16821,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filters",{"_index":6774,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/LessonRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/UserRepo.html":{}}}],["filters.availableon",{"_index":19033,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.classes",{"_index":12485,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.finished.value",{"_index":19026,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.firstname",{"_index":12477,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.flagged",{"_index":12489,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.lastname",{"_index":12479,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.loginname",{"_index":12481,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.matches",{"_index":12487,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.name.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":20705,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters.role",{"_index":12483,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters?.afterduedateornone",{"_index":19029,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.availableon",{"_index":19031,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.draft",{"_index":19037,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.finished",{"_index":19024,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.hidden",{"_index":13890,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["filters?.name",{"_index":20702,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters?.nofutureavailabledate",{"_index":19039,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.onlyactivecourses",{"_index":6802,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["filtersubmissionsbypermission",{"_index":18466,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtersubmissionsbypermission(submissions",{"_index":18470,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtertoolswithpermissions",{"_index":5933,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filtertoolswithpermissions(userid",{"_index":5943,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filterundefined",{"_index":14272,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["filteruserparams",{"_index":10365,"title":{"classes/FilterUserParams.html":{}},"body":{"classes/FilterUserParams.html":{},"controllers/ImportUserController.html":{},"classes/UserMatchMapper.html":{}}}],["final",{"_index":10798,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["finally",{"_index":14500,"title":{},"body":{"classes/MigrationResponse.html":{},"license.html":{}}}],["find",{"_index":4630,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolRepo.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FileRecordRepo.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LessonCopyUC.html":{},"injectables/NewsRepo.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolMigrationService.html":{},"controllers/SystemController.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["find(@query",{"_index":18544,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(filterparams",{"_index":18521,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(params",{"_index":9432,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["find(query",{"_index":5757,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["findaccountbydbcaccountid",{"_index":12205,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcaccountid(accountdbcaccountid",{"_index":12219,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid",{"_index":12206,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid(accountdbcuserid",{"_index":12223,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbyid",{"_index":485,"title":{},"body":{"controllers/AccountController.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbyid(accountid",{"_index":12226,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["findaccountbyid(currentuser",{"_index":514,"title":{},"body":{"controllers/AccountController.html":{}}}],["findaccountbyid(id",{"_index":13084,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername",{"_index":12207,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername(username",{"_index":12228,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findall",{"_index":14595,"title":{},"body":{"controllers/NewsController.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findall(currentuser",{"_index":14601,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TaskController.html":{}}}],["findall(userid",{"_index":19158,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallbyconfigtype",{"_index":8767,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbyconfigtype(type",{"_index":8774,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbycontext",{"_index":5904,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycontext(contextref",{"_index":5913,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycourseids",{"_index":13877,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbycourseids(courseids",{"_index":13880,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbyparentids",{"_index":18949,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyparentids(parentids",{"_index":18955,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbytask",{"_index":18439,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{}}}],["findallbytask(taskid",{"_index":18444,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findallbytask(userid",{"_index":18472,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["findallbytaskids",{"_index":18387,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbytaskids(taskids",{"_index":18391,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbyuser",{"_index":6840,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuser(userid",{"_index":6842,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuserid",{"_index":4425,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/SubmissionRepo.html":{}}}],["findallbyuserid(userid",{"_index":4428,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"injectables/SubmissionRepo.html":{}}}],["findallfinished",{"_index":18772,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findallfinished(currentuser",{"_index":18782,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallfinished(userid",{"_index":19160,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallfinishedbyparentids",{"_index":18950,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallfinishedbyparentids(parentids",{"_index":18960,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallforstudent",{"_index":19150,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforstudent(user",{"_index":19162,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher",{"_index":6769,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/TaskUC.html":{}}}],["findallforteacher(user",{"_index":19164,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher(userid",{"_index":6777,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher",{"_index":6770,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher(userid",{"_index":6779,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findallforteam",{"_index":19278,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforteam(urlparams",{"_index":19279,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforuser",{"_index":14792,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallforuser(userid",{"_index":14802,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallimportusers",{"_index":12264,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallimportusers(currentuser",{"_index":12274,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallpublished",{"_index":14724,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallpublished(targets",{"_index":14727,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findalltasks",{"_index":18773,"title":{},"body":{"controllers/TaskController.html":{}}}],["findalltasks(currentuser",{"_index":18785,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallunmatchedusers",{"_index":12265,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunmatchedusers(currentuser",{"_index":12277,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunpublishedbyuser",{"_index":14725,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallunpublishedbyuser(targets",{"_index":14730,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findandcount",{"_index":9837,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findandcount(scope",{"_index":9845,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findboard",{"_index":3760,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboard(userid",{"_index":3785,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboardcontext",{"_index":3761,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboardcontext(userid",{"_index":3787,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findbyclassandid",{"_index":3274,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclassandid(doclass",{"_index":3287,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclientidandislocal",{"_index":14335,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(clientid",{"_index":14388,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(oauthclientid",{"_index":14338,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbycourseid",{"_index":3626,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseid(courseid",{"_index":3631,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseids",{"_index":6651,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbycourseids(courseids",{"_index":6652,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbyemail",{"_index":20680,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyemail(email",{"_index":20682,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid",{"_index":13538,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid(externalid",{"_index":13542,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalidorfail",{"_index":20069,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalidorfail(externalid",{"_index":20076,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalsource",{"_index":10675,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternalsource(externalid",{"_index":10678,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternaltoolid",{"_index":17386,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyexternaltoolid(toolid",{"_index":17395,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyfilter",{"_index":18657,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyfilter(type",{"_index":18659,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyid",{"_index":12,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/CourseService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceRepo.html":{}}}],["findbyid(boardid",{"_index":4739,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbyid(cardid",{"_index":4133,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyid(columnid",{"_index":4909,"title":{},"body":{"injectables/ColumnService.html":{}}}],["findbyid(courseid",{"_index":6832,"title":{},"body":{"injectables/CourseService.html":{}}}],["findbyid(elementid",{"_index":5536,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["findbyid(id",{"_index":40,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceRepo.html":{}}}],["findbyid(lessonid",{"_index":13949,"title":{},"body":{"injectables/LessonService.html":{}}}],["findbyid(submissionid",{"_index":18446,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findbyid(taskid",{"_index":19128,"title":{},"body":{"injectables/TaskService.html":{}}}],["findbyids",{"_index":3275,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/CardService.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyids(cardids",{"_index":4135,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyids(ids",{"_index":3292,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyname",{"_index":8768,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbyname(name",{"_index":8776,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbynames",{"_index":16828,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbynames(names",{"_index":16831,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbyoauth2configclientid",{"_index":8769,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauth2configclientid(clientid",{"_index":8778,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauthclientid",{"_index":14336,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyoauthclientid(oauthclientid",{"_index":14341,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyowneruserid",{"_index":10043,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyowneruserid(owneruserid",{"_index":10047,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyparentid",{"_index":9838,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyparentid(parentid",{"_index":9848,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbypermissionrefid",{"_index":10044,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbypermissionrefid(permissionrefid",{"_index":10050,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyschoolid",{"_index":17387,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolid(schoolid",{"_index":17397,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolidandparentid",{"_index":9839,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentid(schoolid",{"_index":9850,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete",{"_index":9840,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete(schoolid",{"_index":9852,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolnumber",{"_index":13539,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyschoolnumber(officialschoolnumber",{"_index":13544,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyscopeandscopeid",{"_index":21166,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbyscopeandscopeid(scopeid",{"_index":21167,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbysecuritycheckrequesttoken",{"_index":9841,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysecuritycheckrequesttoken(token",{"_index":9854,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysingleparent",{"_index":18951,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbysingleparent(creatorid",{"_index":18962,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbytype",{"_index":18690,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbytype(type",{"_index":18694,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbyuserandtool",{"_index":16393,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findbyuserandtool(user",{"_index":14941,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/PseudonymService.html":{}}}],["findbyuserid",{"_index":13,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/LessonRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["findbyuserid(userid",{"_index":42,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/LessonRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["findbyuseridandtoolid",{"_index":8728,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolid(userid",{"_index":8738,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail",{"_index":8729,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail(userid",{"_index":8740,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridorfail",{"_index":14,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyuseridorfail(userid",{"_index":44,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyusernameandsystemid",{"_index":15,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyusernameandsystemid(username",{"_index":46,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findcards",{"_index":4178,"title":{},"body":{"injectables/CardUc.html":{}}}],["findcards(userid",{"_index":4191,"title":{},"body":{"injectables/CardUc.html":{}}}],["findcontextexternaltools",{"_index":5905,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcontextexternaltools(query",{"_index":5915,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcurrentyear",{"_index":17696,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["finddescendants",{"_index":3587,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendants(node",{"_index":3591,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany",{"_index":3588,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany(nodes",{"_index":3593,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddocumentsofcollection",{"_index":7727,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["finddocumentsofcollection(collectionname",{"_index":7739,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["findevent",{"_index":3961,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findevent(userid",{"_index":3964,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findexistinggridelement",{"_index":7499,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistinggridelement(elementwithposition",{"_index":7512,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistingtargets",{"_index":4831,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexistingtargets(columnboardids",{"_index":4835,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexternaltool",{"_index":9190,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["findexternaltool(currentuser",{"_index":19645,"title":{},"body":{"controllers/ToolController.html":{}}}],["findexternaltool(userid",{"_index":9199,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["findexternaltoolbyid",{"_index":9073,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyid(id",{"_index":9091,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyname",{"_index":9074,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyname(name",{"_index":9093,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid",{"_index":9075,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid(clientid",{"_index":9095,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolpseudonymsbyuserid",{"_index":16394,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltoolpseudonymsbyuserid(userid",{"_index":16407,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltools",{"_index":9076,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltools(query",{"_index":9097,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findfederalstatebyname",{"_index":9468,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfederalstatebyname(name",{"_index":9471,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findforcleanup",{"_index":10045,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforcleanup(thresholddate",{"_index":10053,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforuser",{"_index":6480,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findforuser(@currentuser",{"_index":7239,"title":{},"body":{"controllers/DashboardController.html":{}}}],["findforuser(currentuser",{"_index":6486,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findidsbyexternalreference",{"_index":3276,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findidsbyexternalreference(reference",{"_index":3294,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findimportusers",{"_index":12456,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusers(school",{"_index":12462,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount",{"_index":12457,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount(query",{"_index":12464,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["finding",{"_index":3606,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["findlegacyltitool",{"_index":14876,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findmany",{"_index":16,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findmany(offset",{"_index":54,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findmigrationbyschool",{"_index":20426,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyschool(schoolid",{"_index":20437,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser",{"_index":20427,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser(userid",{"_index":20439,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmultiplebyuserid",{"_index":17,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findmultiplebyuserid(userids",{"_index":60,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findnewsandcount",{"_index":14726,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnewsandcount(query",{"_index":14732,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnextcloudtool",{"_index":14877,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findone",{"_index":6771,"title":{},"body":{"injectables/CourseRepo.html":{},"controllers/NewsController.html":{}}}],["findone(@param",{"_index":14630,"title":{},"body":{"controllers/NewsController.html":{}}}],["findone(courseid",{"_index":6782,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findone(urlparams",{"_index":14604,"title":{},"body":{"controllers/NewsController.html":{}}}],["findonebyid",{"_index":9842,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyid(id",{"_index":9856,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyidforuser",{"_index":14793,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidforuser(id",{"_index":14807,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidmarkedfordelete",{"_index":9843,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebyidmarkedfordelete(id",{"_index":9858,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebytoken",{"_index":17976,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findonebytoken(token",{"_index":17977,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findoneorfail",{"_index":9844,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfail(scope",{"_index":9860,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfailhandler",{"_index":10273,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["findorcreatepseudonym",{"_index":16395,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatepseudonym(user",{"_index":16409,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatetargets",{"_index":4832,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findorcreatetargets(columnboardids",{"_index":4838,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findparentofid",{"_index":3277,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findparentofid(childid",{"_index":3297,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findpseudonymsbyuserid",{"_index":16396,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findpseudonymsbyuserid(userid",{"_index":16411,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["finds",{"_index":890,"title":{},"body":{"injectables/AccountRepo.html":{},"controllers/SystemController.html":{},"injectables/TeamsRepo.html":{}}}],["findschoolexternaltools",{"_index":17462,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["findschoolexternaltools(query",{"_index":17474,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findschoolexternaltools(userid",{"_index":17504,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["findstatusesbytask",{"_index":18240,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findstatusesbytask(currentuser",{"_index":18244,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findsubmissionitems",{"_index":18343,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findsubmissionitems(userid",{"_index":18348,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findtasksandcount",{"_index":18952,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findtasksandcount(query",{"_index":18964,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findteambyid",{"_index":4619,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findteambyid(teamid",{"_index":4627,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findtoolbyclientid",{"_index":15576,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["findtoolbyclientid(clientid",{"_index":15580,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["finduserafterprovisioningorthrow",{"_index":15036,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserafterprovisioningorthrow(externaluserid",{"_index":15053,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserdatafromclasses",{"_index":4397,"title":{},"body":{"injectables/ClassService.html":{}}}],["finduserdatafromclasses(userid",{"_index":4402,"title":{},"body":{"injectables/ClassService.html":{}}}],["finduserdatafromteams",{"_index":19330,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserdatafromteams(userid",{"_index":19335,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserloginmigrationbyschool",{"_index":20242,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["finduserloginmigrationbyschool(user",{"_index":20254,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["finduserloginmigrationbyschool(userid",{"_index":20486,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["findusers",{"_index":20752,"title":{},"body":{"injectables/UserService.html":{}}}],["findusers(query",{"_index":20762,"title":{},"body":{"injectables/UserService.html":{}}}],["findvideoconferencebyscopeidandscope",{"_index":21216,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["findvideoconferencebyscopeidandscope(scopeid",{"_index":21236,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["findwithoutimportuser",{"_index":20681,"title":{},"body":{"injectables/UserRepo.html":{}}}],["findwithoutimportuser(school",{"_index":20686,"title":{},"body":{"injectables/UserRepo.html":{}}}],["fine",{"_index":22735,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["finish",{"_index":18774,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(@param",{"_index":18812,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(urlparams",{"_index":18787,"title":{},"body":{"controllers/TaskController.html":{}}}],["finishcoursecopying",{"_index":6520,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishcoursecopying(coursecopy",{"_index":6533,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finished",{"_index":7793,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{}}}],["finished(user",{"_index":18891,"title":{},"body":{"classes/TaskFactory.html":{}}}],["finishedat",{"_index":17627,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["finishedcoursecopy",{"_index":6552,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishedcourseids",{"_index":18977,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["finishedids",{"_index":12000,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids",{"_index":11998,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids.map((id",{"_index":12001,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserid",{"_index":12012,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids",{"_index":12008,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids.some((finisheduserid",{"_index":12011,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishforuser(user",{"_index":12061,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishing",{"_index":17625,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["first",{"_index":575,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"entities/ImportUser.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/NewsUc.html":{},"classes/PatchMyAccountParams.html":{},"classes/UserInfoResponse.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["firstbrokerloginflowalias",{"_index":15891,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["firstchar",{"_index":6465,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["firstclass",{"_index":12356,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["firstname",{"_index":851,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/ExternalUserDto.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonUser.html":{},"interfaces/INameMatch.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/PatchMyAccountParams.html":{},"classes/ResolvedUserResponse.html":{},"injectables/SanisResponseMapper.html":{},"classes/SortImportUserParams.html":{},"classes/SubmissionItemResponseMapper.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["firstname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":12546,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["firstnamesearchvalues",{"_index":11243,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["firstvaluefrom",{"_index":2334,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["firstvaluefrom(observable",{"_index":2348,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraAdapter.html":{}}}],["firstvaluefrom(respobservable",{"_index":11090,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["fishery",{"_index":735,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LtiToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/ShareTokenFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["fit",{"_index":5368,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["fitness",{"_index":22180,"title":{},"body":{"license.html":{}}}],["fix",{"_index":1941,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/TaskUC.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["fixable",{"_index":22402,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["fixed",{"_index":6760,"title":{},"body":{"entities/CourseNews.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["fixes",{"_index":22273,"title":{},"body":{"todo.html":{}}}],["fixing",{"_index":23123,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["fixme",{"_index":4996,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"modules/LearnroomApiModule.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["fixtures",{"_index":22829,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fixups",{"_index":22896,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["flag",{"_index":10363,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemFilterParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UserMigrationIsNotEnabled.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["flag.params.ts",{"_index":19950,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flag.params.ts:7",{"_index":19952,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flagged",{"_index":10330,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/UpdateFlagParams.html":{}}}],["flags",{"_index":7667,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["flags.ts",{"_index":17582,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["flexible",{"_index":22478,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["flow",{"_index":10854,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["flow.id",{"_index":12921,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flow.service",{"_index":12156,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["flow.service.ts",{"_index":15575,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:11",{"_index":15579,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:18",{"_index":15581,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:39",{"_index":15583,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.uc",{"_index":15515,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["flow.uc.ts",{"_index":15448,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:106",{"_index":15602,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:15",{"_index":15451,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:19",{"_index":15596,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:21",{"_index":15453,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:26",{"_index":15455,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:28",{"_index":15599,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:33",{"_index":15601,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:48",{"_index":15598,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:50",{"_index":15456,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:58",{"_index":15452,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:6",{"_index":15627,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:80",{"_index":15458,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:9",{"_index":15629,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:94",{"_index":15604,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flowalias",{"_index":12904,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["flows",{"_index":12917,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flows.find((tempflow",{"_index":12919,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flush",{"_index":879,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["fn",{"_index":3489,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fn(i",{"_index":3525,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fname",{"_index":1279,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["folder",{"_index":7679,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/Options.html":{},"injectables/S3ClientAdapter.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["folder_id",{"_index":10754,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["folderid",{"_index":14910,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foldername",{"_index":14921,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["folderpath",{"_index":9972,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["folders",{"_index":14924,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["folgendem",{"_index":4804,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["follow",{"_index":5395,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["following",{"_index":7840,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["follows",{"_index":22918,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["foo",{"_index":22421,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["foractivecourses",{"_index":6792,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forallgrouptypes",{"_index":6818,"title":{},"body":{"classes/CourseScope.html":{}}}],["forallgrouptypes(userid",{"_index":6787,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forbid",{"_index":21849,"title":{},"body":{"license.html":{}}}],["forbidden",{"_index":10380,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/ToolLaunchController.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["forbidden'})@apibadrequestresponse({description",{"_index":19711,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["forbidden_exception",{"_index":10373,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["forbidden_operation",{"_index":10379,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["forbiddenexception",{"_index":2037,"title":{},"body":{"injectables/AuthorizationService.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"classes/ErrorMapper.html":{},"classes/ForbiddenLoggableException.html":{},"controllers/H5PEditorController.html":{},"injectables/LessonCopyUC.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/RoomsUc.html":{},"controllers/ShareTokenController.html":{},"injectables/SubmissionItemUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["forbiddenexception(\"you",{"_index":15474,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["forbiddenexception('accessing",{"_index":20497,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["forbiddenexception('could",{"_index":13842,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["forbiddenexception('some",{"_index":22667,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["forbiddenexception('user",{"_index":18370,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["forbiddenexception('you",{"_index":17038,"title":{},"body":{"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["forbiddenexception(`cannot",{"_index":2829,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["forbiddenexception(errorobj.message",{"_index":8209,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["forbiddenexception(errorstatus.guests_cannot_join_conference",{"_index":21078,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["forbiddenexception(errorstatus.insufficient_permission",{"_index":20988,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceService.html":{}}}],["forbiddenexception(errorstatus.school_feature_disabled",{"_index":21287,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["forbiddenexception(errorstatus.unknown_user",{"_index":21266,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["forbiddenexception})@apiresponse({status",{"_index":2931,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/ShareTokenController.html":{}}}],["forbiddenexception})@get",{"_index":4025,"title":{},"body":{"controllers/CardController.html":{}}}],["forbiddenexception})@get(':submissioncontainerid",{"_index":3691,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["forbiddenloggableexception",{"_index":2039,"title":{"classes/ForbiddenLoggableException.html":{}},"body":{"injectables/AuthorizationService.html":{},"classes/ForbiddenLoggableException.html":{}}}],["forbiddenloggableexception(user.id",{"_index":2042,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["forbiddenloggableexception(userid",{"_index":2047,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["forbiddenoperationerror",{"_index":507,"title":{"classes/ForbiddenOperationError.html":{}},"body":{"controllers/AccountController.html":{},"classes/ForbiddenOperationError.html":{},"controllers/LoginController.html":{}}}],["forbidnonwhitelisted",{"_index":10542,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["forbidunknownvalues",{"_index":10544,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["force",{"_index":74,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthenticationService.html":{},"injectables/KeycloakConfigurationService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["force.error",{"_index":1816,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["force.error.ts",{"_index":3837,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force.error.ts:5",{"_index":3839,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force_subject_identifier",{"_index":358,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["forcepasswordchange",{"_index":12099,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["forcepathstyle",{"_index":7850,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["forceserverobjectid",{"_index":7754,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["forceupdate",{"_index":6147,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["forcourseid",{"_index":6819,"title":{},"body":{"classes/CourseScope.html":{}}}],["forcourseid(courseid",{"_index":6797,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["foreach((key",{"_index":9187,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["foreign",{"_index":13358,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["foreignfield",{"_index":20710,"title":{},"body":{"injectables/UserRepo.html":{}}}],["form",{"_index":10905,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"license.html":{}}}],["format",{"_index":565,"title":{},"body":{"controllers/AccountController.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/ConsentRequestBody.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"interfaces/CreateJwtParams.html":{},"classes/DownloadFileParams.html":{},"classes/ErrorResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"classes/JwtTestFactory.html":{},"modules/LoggerModule.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/RichText.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["format.'})@apioperation({summary",{"_index":19589,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["format.'})@apiresponse({status",{"_index":505,"title":{},"body":{"controllers/AccountController.html":{},"controllers/LoginController.html":{}}}],["format.types",{"_index":11960,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/RichText.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["formatted",{"_index":776,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["formattedjwt",{"_index":1727,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["formatting",{"_index":22400,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["forms",{"_index":21894,"title":{},"body":{"license.html":{}}}],["forroot",{"_index":1408,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/MailModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/RocketChatModule.html":{},"modules/ServerTestModule.html":{}}}],["forroot(options",{"_index":1409,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/RocketChatModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["forroutes",{"_index":17823,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["forteacher",{"_index":6820,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacher(userid",{"_index":6791,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher",{"_index":6821,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher(userid",{"_index":6790,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forwarded",{"_index":10920,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["forwardref",{"_index":1977,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SubmissionItemUc.html":{},"modules/TaskModule.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["found",{"_index":511,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AccountServiceDb.html":{},"classes/BruteForceError.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CommonToolValidationService.html":{},"injectables/DashboardUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraSsoService.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["found.error.ts",{"_index":8120,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.error.ts:4",{"_index":8122,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.exception",{"_index":8424,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["found.loggable",{"_index":14973,"title":{},"body":{"classes/NotFoundLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["found.loggable.ts",{"_index":17530,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:4",{"_index":17532,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:7",{"_index":17533,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["foundaccount.systemid",{"_index":1247,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{}}}],["foundaccounts",{"_index":651,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/KeycloakMigrationService.html":{}}}],["foundation",{"_index":21654,"title":{},"body":{"license.html":{}}}],["foundentry",{"_index":5319,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.name",{"_index":5362,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.value",{"_index":5359,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry?.value",{"_index":5356,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundproperty",{"_index":266,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["foundproperty.value",{"_index":269,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["foundschool",{"_index":17689,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundschool.id",{"_index":17691,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundtools",{"_index":14963,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools.length",{"_index":14965,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools[0",{"_index":14968,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundusers",{"_index":1235,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["foundusers.length",{"_index":1248,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["foundusers[0].id.tostring",{"_index":1254,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["frame",{"_index":10786,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["free",{"_index":1723,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["freedom",{"_index":21673,"title":{},"body":{"license.html":{}}}],["freejoin",{"_index":2277,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["freeport",{"_index":21395,"title":{},"body":{"dependencies.html":{}}}],["freuen",{"_index":4798,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["friendly",{"_index":7161,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["friendlyurl",{"_index":6988,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["from.'})@isurl({require_tld",{"_index":20937,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["from.options",{"_index":21203,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.permission",{"_index":21201,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.url",{"_index":21202,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["fromcookie",{"_index":12680,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromcookie(name",{"_index":12681,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromgroup",{"_index":10550,"title":{},"body":{"classes/GridElement.html":{}}}],["fromgroup(title",{"_index":7332,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedgroup",{"_index":10551,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedgroup(id",{"_index":7330,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedreference",{"_index":10552,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedreference(id",{"_index":7329,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["fromsinglereference",{"_index":10553,"title":{},"body":{"classes/GridElement.html":{}}}],["fromsinglereference(reference",{"_index":7331,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["front",{"_index":14140,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["frontchannel",{"_index":15245,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["frontchannel_logout_uri",{"_index":6990,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"injectables/ExternalToolServiceMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/OauthClientBody.html":{}}}],["frontchannellogouturi",{"_index":7137,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["fs",{"_index":10008,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.accountsfile",{"_index":13242,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.usersfile",{"_index":13244,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.rm",{"_index":10021,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fsp",{"_index":10006,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fulfil",{"_index":22855,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fulfill",{"_index":22489,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["fulfilling",{"_index":21835,"title":{},"body":{"license.html":{}}}],["fulfills",{"_index":22679,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["fulfils",{"_index":23135,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["full",{"_index":9980,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["full_path",{"_index":16643,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fullname",{"_index":2209,"title":{},"body":{"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["fullpath",{"_index":16616,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fully",{"_index":20506,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["function",{"_index":687,"title":{},"body":{"classes/AccountFactory.html":{},"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"injectables/BoardManagementUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"modules/EncryptionModule.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"classes/ImportUserFactory.html":{},"classes/KeycloakConsole.html":{},"classes/LegacySchoolFactory.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["functional",{"_index":6328,"title":{},"body":{"modules/CoreModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["functionalities",{"_index":22903,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["functionality",{"_index":19242,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["functioning",{"_index":21962,"title":{},"body":{"license.html":{}}}],["functions",{"_index":20443,"title":{"miscellaneous/functions.html":{}},"body":{"injectables/UserLoginMigrationService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["funktionen",{"_index":4769,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["further",{"_index":21919,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["fut",{"_index":22794,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fut.somefunction",{"_index":22813,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["future",{"_index":2572,"title":{},"body":{"injectables/BaseRepo.html":{},"entities/CourseNews.html":{},"injectables/FileRecordRepo.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"entities/SchoolNews.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["fwu",{"_index":10388,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["fwu_content_s3_connection",{"_index":10440,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["fwulearningcontent",{"_index":10450,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["fwulearningcontentscontroller",{"_index":10383,"title":{"controllers/FwuLearningContentsController.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["fwulearningcontentsmodule",{"_index":10418,"title":{"modules/FwuLearningContentsModule.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules.html":{}}}],["fwulearningcontentstestmodule",{"_index":10428,"title":{"modules/FwuLearningContentsTestModule.html":{}},"body":{"modules/FwuLearningContentsTestModule.html":{},"modules.html":{}}}],["fwulearningcontentsuc",{"_index":10393,"title":{"injectables/FwuLearningContentsUc.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["g",{"_index":6222,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application.html":{}}}],["gates",{"_index":22403,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["general",{"_index":11635,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["generall",{"_index":2492,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["generally",{"_index":21543,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["generate",{"_index":711,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"injectables/PreviewService.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["generatearray",{"_index":3476,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatearray(length",{"_index":3488,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatebrokersystems",{"_index":18691,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatebrokersystems(systems",{"_index":18696,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatechecksum",{"_index":2283,"title":{},"body":{"injectables/BBBService.html":{}}}],["generatechecksum(callname",{"_index":2304,"title":{},"body":{"injectables/BBBService.html":{}}}],["generateconfig",{"_index":11002,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generateconfig(oauthclientid",{"_index":11010,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generated",{"_index":6145,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["generatedid",{"_index":2550,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedid.tohexstring",{"_index":2553,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedsystem",{"_index":18724,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.id",{"_index":18726,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig",{"_index":18727,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.idphint",{"_index":18728,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.redirecturi",{"_index":18730,"title":{},"body":{"injectables/SystemService.html":{}}}],["generateemptydashboard",{"_index":7596,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generateemptydashboard(userid",{"_index":7609,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generatefederalstates",{"_index":21485,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generategroupfoldername",{"_index":14878,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupfoldername(teamid",{"_index":14889,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid",{"_index":14879,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid(dto",{"_index":14893,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generatejwt",{"_index":1783,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatejwt(user",{"_index":1793,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatelaunchrequest",{"_index":19787,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatelaunchrequest(toollaunchdata",{"_index":19792,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatepreview",{"_index":16132,"title":{},"body":{"injectables/PreviewService.html":{}}}],["generatepreview(params",{"_index":16146,"title":{},"body":{"injectables/PreviewService.html":{}}}],["generaterole",{"_index":21487,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generaterole(localroleseeddata",{"_index":21555,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generates",{"_index":14891,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generateschools",{"_index":21489,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generateschools(entities",{"_index":21558,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generateschoolyears",{"_index":21491,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generateseeddata",{"_index":11112,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"miscellaneous/functions.html":{}}}],["generateseeddata((s",{"_index":11172,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generateseeddata(injectenvvars",{"_index":21561,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generatesharetoken",{"_index":19487,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generatesystems",{"_index":21494,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generatesystems(injectenvvars",{"_index":21564,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generating",{"_index":22411,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["generator",{"_index":717,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["generator.service",{"_index":18024,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["generator.service.ts",{"_index":19486,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generator.service.ts:7",{"_index":19488,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generatorfn",{"_index":718,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["generell",{"_index":23119,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["generic",{"_index":21539,"title":{},"body":{"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["genericdata",{"_index":1290,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["geogebra",{"_index":11311,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["geschlecht",{"_index":17229,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["get('*/:fwulearningcontent",{"_index":10391,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get('/:contentid/edit",{"_index":10795,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contentid/play",{"_index":10792,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contexttype/:contextid/references",{"_index":19691,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:contexttype/:contextid/references')@apioperation({summary",{"_index":19658,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:externaltoolid/logo",{"_index":19695,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:externaltoolid/logo')@apioperation({summary",{"_index":19653,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':boardid",{"_index":2964,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':boardid/context",{"_index":2968,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':contextexternaltoolid",{"_index":19623,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apinotfoundresponse()@apiokresponse({description",{"_index":19596,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid",{"_index":19618,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid')@apiforbiddenresponse()@apiunauthorizedresponse()@apiokresponse({description",{"_index":19601,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid/available",{"_index":19523,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get(':courseid/export",{"_index":6484,"title":{},"body":{"controllers/CourseController.html":{}}}],["get(':externaltoolid",{"_index":19681,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':externaltoolid')@apioperation({summary",{"_index":19650,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':id",{"_index":567,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(':id')@apioperation({summary",{"_index":515,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(':newsid",{"_index":14605,"title":{},"body":{"controllers/NewsController.html":{}}}],["get(':roomid/board",{"_index":16967,"title":{},"body":{"controllers/RoomsController.html":{}}}],["get(':schoolexternaltoolid",{"_index":19925,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":19910,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolid/migration",{"_index":13481,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':schoolid/migration')@authenticate('jwt')@apifoundresponse({description",{"_index":13452,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':scope/:scopeid",{"_index":21034,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid')@apioperation({summary",{"_index":21011,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid/end",{"_index":20925,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/end')@apioperation({summary",{"_index":20880,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info",{"_index":20922,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info')@apioperation({summary",{"_index":20886,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join",{"_index":20919,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join')@apioperation({summary",{"_index":20890,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':submissioncontainerid",{"_index":3702,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["get(':teamid/news",{"_index":19281,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["get(':token",{"_index":17908,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["get('auth/:oauthclientid",{"_index":15793,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/:oauthclientid')@authenticate('jwt",{"_index":15718,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/sessions/consent",{"_index":15563,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('baseurl",{"_index":15495,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients",{"_index":15531,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients/:id",{"_index":15528,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('consentrequest/:challenge",{"_index":15556,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('context",{"_index":19532,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('context/:contextexternaltoolid/launch",{"_index":19717,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('context/:contextexternaltoolid/launch')@apioperation({summary",{"_index":19707,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('finished",{"_index":18783,"title":{},"body":{"controllers/TaskController.html":{}}}],["get('hydra/:oauthclientid",{"_index":15789,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('hydra/:oauthclientid')@authenticate('jwt",{"_index":15708,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('login/:systemid",{"_index":15704,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('loginrequest/:challenge",{"_index":15491,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('me",{"_index":20014,"title":{},"body":{"controllers/UserController.html":{}}}],["get('oauth",{"_index":15723,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration",{"_index":15799,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration')@authenticate('jwt')@apiokresponse({description",{"_index":15711,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('page",{"_index":20560,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["get('public",{"_index":18543,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public')@apioperation({summary",{"_index":18523,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid",{"_index":18549,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid')@apioperation({summary",{"_index":18530,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('school",{"_index":19538,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('school/:schoolid/available",{"_index":19528,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('schools/:schoolid",{"_index":20306,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('schools/:schoolid')@apiforbiddenresponse()@apiokresponse({description",{"_index":20255,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('status/task/:taskid",{"_index":18246,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["get('unassigned",{"_index":12278,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["get()@apiforbiddenresponse()@apioperation({summary",{"_index":20261,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get()@apifoundresponse({description",{"_index":19646,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["get()@apioperation({summary",{"_index":531,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(`${this.options.uri}${path",{"_index":1380,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":9944,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["get(flow",{"_index":10852,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["get(id",{"_index":9434,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["get(path",{"_index":1376,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/CalendarService.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{}}}],["get(req",{"_index":10389,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get(subpath",{"_index":1734,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["get(url",{"_index":11012,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["get/post",{"_index":10806,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getadditionalerrorinfo",{"_index":12612,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadditionalerrorinfo(email",{"_index":12619,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadminidandtoken",{"_index":1390,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getadminuser",{"_index":12768,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getallaccounts",{"_index":12208,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getancestorids",{"_index":3278,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getancestorids(boarddo",{"_index":3300,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getapiresponsetimemetriclabels",{"_index":16645,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getapiresponsetimemetriclabels(req",{"_index":16661,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getasadmin(path",{"_index":1374,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getauthenticationurl",{"_index":15037,"title":{},"body":{"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{}}}],["getauthenticationurl(oauthconfig",{"_index":15055,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getauthenticationurl(session",{"_index":15701,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getavailabletoolsforcontext",{"_index":8404,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(currentuser",{"_index":19522,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(userid",{"_index":8415,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getavailabletoolsforschool",{"_index":8405,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(currentuser",{"_index":19527,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(userid",{"_index":8417,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getbaseurl",{"_index":2326,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig",{"_index":2284,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig(presentationurl",{"_index":2311,"title":{},"body":{"injectables/BBBService.html":{}}}],["getboard",{"_index":17020,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboard(roomid",{"_index":17024,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboardauthorizable",{"_index":3118,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardauthorizable(boarddo",{"_index":3124,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardcontext",{"_index":2921,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardcontext(urlparams",{"_index":2939,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardobjecttitlesbyid",{"_index":4728,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardobjecttitlesbyid(boardids",{"_index":4742,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardskeleton",{"_index":2922,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardskeleton(urlparams",{"_index":2943,"title":{},"body":{"controllers/BoardController.html":{}}}],["getbydraftforcreatorquery",{"_index":19094,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftforcreatorquery(creatorid",{"_index":19112,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery",{"_index":19095,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery(isdraft",{"_index":19114,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbyid(externaltoolpseudonymentity.name",{"_index":8753,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["getbyid(pseudonymentity.name",{"_index":16448,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["getbytargetid(id",{"_index":2707,"title":{},"body":{"entities/Board.html":{}}}],["getcaption",{"_index":9521,"title":{},"body":{"classes/FileElement.html":{}}}],["getcards",{"_index":4006,"title":{},"body":{"controllers/CardController.html":{}}}],["getcards(currentuser",{"_index":4020,"title":{},"body":{"controllers/CardController.html":{}}}],["getchildren",{"_index":2819,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["getchildren(boardnode",{"_index":3216,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["getclientid",{"_index":12769,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getclientsecret",{"_index":12770,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getcollectdefaultmetrics",{"_index":16225,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcollectionnames",{"_index":7728,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getcollectmetricsroutemetrics",{"_index":16227,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcompleted",{"_index":18282,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["getconfigurationtemplateforcontext",{"_index":19520,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforcontext(currentuser",{"_index":19531,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool",{"_index":19521,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool(currentuser",{"_index":19537,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconsentrequest",{"_index":10830,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(@param",{"_index":15557,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getconsentrequest(challenge",{"_index":10855,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(params",{"_index":15487,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getcontent",{"_index":7311,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getcontentfile",{"_index":10801,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getcontext",{"_index":4695,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["getcontextexternaltool",{"_index":5934,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(currentuser",{"_index":19595,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(userid",{"_index":5946,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcontextexternaltoolbyid",{"_index":5906,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["getcontextexternaltoolbyid(contextexternaltoolid",{"_index":5917,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["getcontextexternaltoolsforcontext",{"_index":5935,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(currentuser",{"_index":19600,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(userid",{"_index":5949,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcopyname",{"_index":18854,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopyname(originaltaskname",{"_index":18859,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcoursegroupitems",{"_index":6457,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["getcoursegroupstudentids",{"_index":11809,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getcreatedat",{"_index":2821,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["getcurrentschoolyear",{"_index":17703,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["getdashboardbyid",{"_index":7583,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdashboardbyid(id",{"_index":7587,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdata",{"_index":12613,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(input",{"_index":12621,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(systemid",{"_index":16325,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getdatabasecollection",{"_index":7729,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdatabasecollection(collectionname",{"_index":7742,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdb",{"_index":7746,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdefaultmaxduedate",{"_index":19151,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getdestinationcourse",{"_index":18855,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationcourse(courseid",{"_index":18863,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson",{"_index":18856,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson(lessonid",{"_index":18865,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdisplayname",{"_index":20753,"title":{},"body":{"injectables/UserService.html":{}}}],["getdisplayname(user",{"_index":20764,"title":{},"body":{"injectables/UserService.html":{}}}],["getduedate",{"_index":18217,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["geteditor",{"_index":10777,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getelement",{"_index":7256,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getelement(position",{"_index":7281,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getelements",{"_index":2710,"title":{},"body":{"entities/Board.html":{}}}],["getentityname",{"_index":915,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["getentitypermissions",{"_index":9381,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getentitypermissions(userid",{"_index":9389,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["geteol",{"_index":10004,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["getestet",{"_index":4775,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getexternalid",{"_index":785,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalid(id",{"_index":792,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalsubclientmapperconfiguration",{"_index":12852,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getexternaltool",{"_index":9191,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["getexternaltool(currentuser",{"_index":19649,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltool(userid",{"_index":9201,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["getexternaltoolbinarylogo",{"_index":8554,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoolbinarylogo(toolid",{"_index":8566,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoollogo",{"_index":19632,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(@param",{"_index":19696,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(params",{"_index":19652,"title":{},"body":{"controllers/ToolController.html":{}}}],["getfile",{"_index":6169,"title":{"interfaces/GetFile.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileResponseBuilder.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["getfileresponse",{"_index":9917,"title":{"interfaces/GetFileResponse.html":{}},"body":{"classes/FileResponseBuilder.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"classes/TestHelper.html":{}}}],["getfilesofparent",{"_index":10168,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(@rabbitpayload",{"_index":10196,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(payload",{"_index":10180,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilteredgroupusers",{"_index":15911,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfilteredgroupusers(externalgroup",{"_index":15916,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfinisheduserids",{"_index":11995,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getfirstopenindex",{"_index":7257,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getflowexecutionsrequest",{"_index":12923,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getflowsrequest",{"_index":12913,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getformat",{"_index":16133,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getformat(mimetype",{"_index":16148,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getfwulearningcontentparams",{"_index":10390,"title":{"classes/GetFwuLearningContentParams.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{}}}],["getgradedsubmissions",{"_index":12024,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getgradelevel",{"_index":4249,"title":{},"body":{"classes/Class.html":{}}}],["getgrid",{"_index":7258,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getgroupdata(groupname",{"_index":1356,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmembers(groupname",{"_index":1354,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmoderators(groupname",{"_index":1352,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getheight",{"_index":3991,"title":{},"body":{"classes/Card.html":{}}}],["gethello",{"_index":17729,"title":{},"body":{"classes/ServerConsole.html":{},"controllers/ServerController.html":{}}}],["gethosturl",{"_index":21253,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["gethydraoauthtoken",{"_index":15693,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["gethydraoauthtoken(query",{"_index":15706,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getid",{"_index":7259,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DomainObject.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getidpmapperconfiguration",{"_index":12853,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getidpmapperconfiguration(idpalias",{"_index":12878,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getinout",{"_index":17730,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinout(whatever",{"_index":17733,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinputformat",{"_index":16737,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getinstance",{"_index":9549,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["getinternalid",{"_index":786,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["getinternalid(id",{"_index":799,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["getinvitationlink",{"_index":4245,"title":{},"body":{"classes/Class.html":{}}}],["getisenabled",{"_index":16219,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getisvideoconferencefeatureenabled",{"_index":21255,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getitems",{"_index":20120,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["getjwtforuser",{"_index":15809,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtforuser(userid",{"_index":15813,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtfromresponse",{"_index":19398,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getjwtfromresponse(response",{"_index":1775,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getlaunchdata",{"_index":19788,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getlaunchdata(userid",{"_index":19794,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getldapdn",{"_index":4251,"title":{},"body":{"classes/Class.html":{}}}],["getlessoncomponents",{"_index":11349,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getlessonlinkedtasks",{"_index":11350,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getlessonmaterials",{"_index":11351,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getlibrary",{"_index":10799,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getlogindata",{"_index":14151,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getlogindata(userinfo",{"_index":14154,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getloginrequest",{"_index":10831,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(@param",{"_index":15545,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginrequest(challenge",{"_index":10857,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(params",{"_index":15490,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginurl",{"_index":20585,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getloginurl(system",{"_index":20593,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getlogmessage",{"_index":1547,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"classes/LoggingUtils.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["getmaxsubmissions",{"_index":12002,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getmeetinginfo",{"_index":2285,"title":{},"body":{"injectables/BBBService.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["getmeetinginfo(config",{"_index":2313,"title":{},"body":{"injectables/BBBService.html":{}}}],["getmeetinginfo(currentuserid",{"_index":21067,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getmetadata",{"_index":6469,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["getmetadatastorage",{"_index":8132,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getmigration",{"_index":13448,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolid",{"_index":13618,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolparams",{"_index":13450,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["getmigrationconsentpageredirect",{"_index":20586,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationconsentpageredirect(officialschoolnumber",{"_index":20595,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationpagedetails",{"_index":20558,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(@query",{"_index":20565,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(pagetypequery",{"_index":20559,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationredirecturi",{"_index":20587,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrations",{"_index":20243,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["getmigrations(user",{"_index":20259,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["getmigrations(userid",{"_index":20488,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["getname",{"_index":4237,"title":{},"body":{"classes/Class.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getnewspermissions",{"_index":14794,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnewspermissions(userid",{"_index":14809,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnumberofdrafttasks",{"_index":11345,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getnumberofplannedtasks",{"_index":11347,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getnumberofpublishedtasks",{"_index":11341,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getoauth2client",{"_index":10832,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getoauth2client(currentuser",{"_index":15427,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["getoauth2client(id",{"_index":10859,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["getoauthconfig",{"_index":12195,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["getoauthtoken",{"_index":10929,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getoauthtoken(oauthclientid",{"_index":10936,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getobjectcommand",{"_index":17114,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["getobjectreference",{"_index":880,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getobjectreference(entityname",{"_index":897,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getorconstructdashboardmodelentity",{"_index":7500,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorconstructdashboardmodelentity(entity",{"_index":7514,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorcreatecourseboard",{"_index":3627,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorcreatecourseboard(courseid",{"_index":3634,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorganization",{"_index":5208,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getpagecontent",{"_index":20482,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getpagecontent(pagetype",{"_index":20490,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getparametervalue",{"_index":125,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparametervalue(customparameter",{"_index":179,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparent",{"_index":11336,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentdata",{"_index":12054,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentinfo",{"_index":9781,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpath",{"_index":19399,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getpath(routenameinput",{"_index":1767,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getpaths",{"_index":21496,"title":{},"body":{"miscellaneous/functions.html":{}}}],["getpaths(filerecords",{"_index":21525,"title":{},"body":{"miscellaneous/functions.html":{}}}],["getpermittedcourses",{"_index":19152,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedcourses(user",{"_index":19167,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedentities",{"_index":9382,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedentities(userid",{"_index":9391,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedlessonids",{"_index":19209,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons",{"_index":19153,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons(user",{"_index":19170,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedschools",{"_index":9344,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedschools(userid",{"_index":9350,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedtargets",{"_index":9345,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getpermittedtargets(userid",{"_index":9352,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getplayer",{"_index":10778,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getport",{"_index":16223,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getpostloginredirecturl",{"_index":15038,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpostloginredirecturl(idtoken",{"_index":15057,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpresentationurl",{"_index":2330,"title":{},"body":{"injectables/BBBService.html":{}}}],["getpreview",{"_index":16134,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreview(filerecord",{"_index":16150,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewfile",{"_index":16135,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewfile(params",{"_index":16152,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname",{"_index":16136,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname(filerecord",{"_index":16154,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewstatus",{"_index":9782,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpropertyvalue",{"_index":8128,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getpropertyvalue(e",{"_index":8139,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getprops",{"_index":1860,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/DomainObject.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["getprotectedroles",{"_index":16840,"title":{},"body":{"injectables/RoleService.html":{}}}],["getprovisioningstrategy",{"_index":16315,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getprovisioningstrategy(systemstrategy",{"_index":16327,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getpseudonym",{"_index":16369,"title":{},"body":{"classes/Pseudonym.html":{}}}],["getpublickey",{"_index":6878,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OauthAdapterService.html":{}}}],["getpublickey(jwksuri",{"_index":15201,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["getquery",{"_index":17715,"title":{},"body":{"classes/Scope.html":{}}}],["getredirecturi",{"_index":15039,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getredirecturi(migration",{"_index":15060,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getreferences",{"_index":7316,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getreferencesfromposition",{"_index":7260,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getreferencesfromposition(position",{"_index":7289,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getrepository",{"_index":16397,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrepository(tool",{"_index":16413,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrequiredpermissions",{"_index":14795,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequiredpermissions(unpublished",{"_index":14813,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequireduserrole",{"_index":3095,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["getresolveduser",{"_index":20754,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolveduser(userid",{"_index":20766,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolvedvalues",{"_index":3028,"title":{},"body":{"injectables/BoardCopyService.html":{},"miscellaneous/functions.html":{}}}],["getresolvedvalues(result",{"_index":21566,"title":{},"body":{"miscellaneous/functions.html":{}}}],["getresolvedvalues(results",{"_index":3064,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresources",{"_index":5210,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getresponse",{"_index":1475,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["getroomboard",{"_index":16957,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroomboard(urlparams",{"_index":16966,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroute",{"_index":16221,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["gets",{"_index":693,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"controllers/ToolController.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["getsalt",{"_index":2328,"title":{},"body":{"injectables/BBBService.html":{}}}],["getschemapath",{"_index":4040,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(basictoolconfigparams",{"_index":8469,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(fileelementcontentbody",{"_index":8041,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(fileelementresponse",{"_index":4074,"title":{},"body":{"controllers/CardController.html":{}}}],["getschemapath(lti11toolconfigcreateparams",{"_index":8470,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(lti11toolconfigupdateparams",{"_index":9228,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(oauth2toolconfigcreateparams",{"_index":8471,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(oauth2toolconfigupdateparams",{"_index":9229,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(richtextelementcontentbody",{"_index":8042,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(richtextelementresponse",{"_index":4073,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{}}}],["getschemapath(submissioncontainerelementcontentbody",{"_index":8043,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(submissioncontainerelementresponse",{"_index":4075,"title":{},"body":{"controllers/CardController.html":{}}}],["getschool",{"_index":19355,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["getschoolbyexternalid",{"_index":13586,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyexternalid(externalid",{"_index":13593,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid",{"_index":13587,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid(id",{"_index":13595,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber",{"_index":13588,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber(schoolnumber",{"_index":13597,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolexternaltool",{"_index":17495,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(currentuser",{"_index":19909,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(userid",{"_index":17507,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["getschoolexternaltoolbyid",{"_index":17463,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["getschoolexternaltoolbyid(schoolexternaltoolid",{"_index":17476,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["getschoolexternaltools",{"_index":19901,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltools(currentuser",{"_index":19912,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolid",{"_index":4239,"title":{},"body":{"classes/Class.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getscopeinfo",{"_index":21217,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getscopeinfo(userid",{"_index":21238,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getsecuritytoken",{"_index":9757,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getseedfolder",{"_index":11127,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["getservice",{"_index":9450,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["getservice(path",{"_index":9441,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["getshorttitle",{"_index":6463,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["getsource",{"_index":4255,"title":{},"body":{"classes/Class.html":{}}}],["getsourceoptions",{"_index":4257,"title":{},"body":{"classes/Class.html":{}}}],["getstoretype",{"_index":3895,"title":{},"body":{"injectables/CacheService.html":{}}}],["getstudentids",{"_index":6444,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmissioncontainer",{"_index":18344,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["getsubmissioncontainer(submissioncontainerid",{"_index":18350,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["getsubmissionitems",{"_index":3685,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmissionitems(currentuser",{"_index":3687,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["getsubmittedsubmissions",{"_index":12018,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmitterids",{"_index":11829,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getsubstitutionteacherids",{"_index":6448,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["getsuccessor",{"_index":4253,"title":{},"body":{"classes/Class.html":{}}}],["getsystem",{"_index":18520,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(@param",{"_index":18550,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(params",{"_index":18529,"title":{},"body":{"controllers/SystemController.html":{}}}],["gettargetfilters",{"_index":14796,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfilters(userid",{"_index":14816,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfolder(toseedfolder",{"_index":11129,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["gettasksitems",{"_index":11337,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getteacherids",{"_index":4243,"title":{},"body":{"classes/Class.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["getteammemberids",{"_index":11812,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["gettempfile",{"_index":10803,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["gettemplateforcontextexternaltool",{"_index":8406,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforcontextexternaltool(userid",{"_index":8419,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool",{"_index":8407,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool(userid",{"_index":8421,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getter",{"_index":6413,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{}}}],["gettext",{"_index":16733,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getting",{"_index":21583,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{}}],["gettitle",{"_index":3987,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{}}}],["gettitlesbyids",{"_index":3279,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettitlesbyids(id",{"_index":3302,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettoolid",{"_index":16371,"title":{},"body":{"classes/Pseudonym.html":{}}}],["gettoollaunchrequest",{"_index":19704,"title":{},"body":{"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["gettoollaunchrequest(currentuser",{"_index":19705,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["gettoollaunchrequest(userid",{"_index":19819,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["gettoolreferences",{"_index":19633,"title":{},"body":{"controllers/ToolController.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreferences(currentuser",{"_index":19657,"title":{},"body":{"controllers/ToolController.html":{}}}],["gettoolreferences(userid",{"_index":19885,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettspuid",{"_index":4415,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["gettype",{"_index":12614,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getunitofwork",{"_index":8752,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["getupdatedat",{"_index":2823,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["geturl",{"_index":1426,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"controllers/OauthProviderController.html":{}}}],["geturl(callname",{"_index":2315,"title":{},"body":{"injectables/BBBService.html":{}}}],["geturl(path",{"_index":1432,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["getuser",{"_index":9346,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/TeamUserEntity.html":{},"injectables/UserService.html":{}}}],["getuser(id",{"_index":20768,"title":{},"body":{"injectables/UserService.html":{}}}],["getuser(userid",{"_index":9354,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserattribute",{"_index":12209,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getuserattribute(userid",{"_index":12232,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getuserid",{"_index":7261,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/Pseudonym.html":{},"classes/SubmissionItem.html":{}}}],["getuserids",{"_index":4241,"title":{},"body":{"classes/Class.html":{}}}],["getuserlist(querystring",{"_index":1332,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getuserparams",{"_index":19993,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["getuserparams(params",{"_index":857,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["getuserroleandgueststatusbyuseridforbbb",{"_index":21218,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getuserroleandgueststatusbyuseridforbbb(userid",{"_index":21240,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getusers",{"_index":3093,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["getuserschoolpermissions",{"_index":9347,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserschoolpermissions(userid",{"_index":9356,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getusersdashboard",{"_index":7584,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersdashboard(userid",{"_index":7589,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusertargetpermissions",{"_index":9348,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["getusertargetpermissions(userid",{"_index":9358,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserwithpermissions",{"_index":2016,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/ReferenceLoader.html":{}}}],["getuserwithpermissions(userid",{"_index":2029,"title":{},"body":{"injectables/AuthorizationService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["getversion",{"_index":5604,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/ToolVersion.html":{}}}],["getvideoconferenceoptions",{"_index":21065,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getvideoconferenceoptions(scope",{"_index":21069,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getwellknownurl",{"_index":12771,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getyear",{"_index":4247,"title":{},"body":{"classes/Class.html":{}}}],["ghcr.io/hpi",{"_index":22339,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ghcr.io/soluto/oidc",{"_index":22926,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["gi",{"_index":14552,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["gid",{"_index":10672,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["git",{"_index":21590,"title":{"additional-documentation/nestjs-application/git.html":{}},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["git://github.com/hpi",{"_index":21403,"title":{},"body":{"dependencies.html":{}}}],["git://github.com/leeroybrun/mongoose",{"_index":21419,"title":{},"body":{"dependencies.html":{}}}],["github",{"_index":21586,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["give",{"_index":21866,"title":{},"body":{"license.html":{}}}],["given",{"_index":494,"title":{},"body":{"controllers/AccountController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CommonToolValidationService.html":{},"injectables/FileSystemAdapter.html":{},"classes/FilterUserParams.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementOauthService.html":{},"controllers/LegacySchoolController.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/TeamNewsController.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["givenname",{"_index":11911,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["gives",{"_index":9418,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["giving",{"_index":21872,"title":{},"body":{"license.html":{}}}],["global",{"_index":6334,"title":{},"body":{"modules/CoreModule.html":{},"modules/ErrorModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/GlobalValidationPipe.html":{},"modules/InterceptorModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["globalconstants",{"_index":10457,"title":{"interfaces/GlobalConstants.html":{}},"body":{"interfaces/GlobalConstants.html":{}}}],["globalerrorfilter",{"_index":8218,"title":{"classes/GlobalErrorFilter.html":{}},"body":{"modules/ErrorModule.html":{},"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["globally",{"_index":12571,"title":{},"body":{"modules/InterceptorModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["globalparameter",{"_index":7156,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["globals",{"_index":10459,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["globalsetup",{"_index":22577,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalteardown",{"_index":22578,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalvalidationpipe",{"_index":10527,"title":{"classes/GlobalValidationPipe.html":{}},"body":{"classes/GlobalValidationPipe.html":{},"modules/ValidationModule.html":{}}}],["gm",{"_index":16161,"title":{},"body":{"injectables/PreviewService.html":{},"dependencies.html":{}}}],["gnu",{"_index":21647,"title":{},"body":{"license.html":{}}}],["go",{"_index":20934,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["goal",{"_index":22296,"title":{},"body":{"todo.html":{}}}],["goals",{"_index":21717,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["golevelup",{"_index":22791,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["golevelup/nestjs",{"_index":1437,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"dependencies.html":{}}}],["golevelup/ts",{"_index":19424,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["gonna",{"_index":22474,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["good",{"_index":13359,"title":{},"body":{"injectables/LdapStrategy.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["governed",{"_index":21990,"title":{},"body":{"license.html":{}}}],["gpl",{"_index":21718,"title":{},"body":{"license.html":{}}}],["grace",{"_index":17623,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["graceperiodduration",{"_index":20462,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["grade",{"_index":11548,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"entities/Submission.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["gradecomment",{"_index":11790,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["graded",{"_index":3737,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["gradedsubmissions",{"_index":12025,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["gradelevel",{"_index":4231,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["grant",{"_index":1594,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/TokenRequestMapper.html":{},"license.html":{}}}],["grant_access_token_audience",{"_index":341,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["grant_scope",{"_index":342,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["grant_type",{"_index":1598,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/TokenRequestMapper.html":{}}}],["grant_types",{"_index":15239,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["granted",{"_index":21805,"title":{},"body":{"license.html":{}}}],["grants",{"_index":22053,"title":{},"body":{"license.html":{}}}],["granttype",{"_index":11075,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ISystemProperties.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["graph",{"_index":22239,"title":{},"body":{"modules.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["gratis",{"_index":21918,"title":{},"body":{"license.html":{}}}],["greatest",{"_index":22214,"title":{},"body":{"license.html":{}}}],["grep",{"_index":22973,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["grid",{"_index":6701,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IGridElement.html":{},"classes/PatchGroupParams.html":{}}}],["gridarray",{"_index":7597,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["gridelement",{"_index":7321,"title":{"classes/GridElement.html":{}},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.frompersistedgroup(modelentity.id",{"_index":7540,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.fromsinglereference(referenceforindex",{"_index":7398,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.fromsinglereference(room",{"_index":7389,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.getcontent().title",{"_index":7564,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.getid",{"_index":7557,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.hasid",{"_index":7555,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.isgroup",{"_index":7562,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.setgroupname(params",{"_index":7640,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["gridelementcontent",{"_index":7312,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelements",{"_index":7428,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["gridelementwithposition",{"_index":7287,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/GridElement.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IGridElement.html":{}}}],["gridindexfromposition",{"_index":7262,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["gridindexfromposition(pos",{"_index":7293,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridposition",{"_index":7282,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridpositionwithgroupindex",{"_index":7290,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["group",{"_index":1277,"title":{"classes/Group.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BoardNodeRepo.html":{},"entities/CourseGroup.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/PatchGroupParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserRepo.html":{}}}],["group(props",{"_index":10685,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group(savedprops",{"_index":10694,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group.dto",{"_index":15355,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["group.dto.ts",{"_index":8268,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:11",{"_index":8273,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:13",{"_index":8277,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:15",{"_index":8276,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:17",{"_index":8271,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:5",{"_index":8272,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:7",{"_index":8274,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:9",{"_index":8279,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.getprops",{"_index":10617,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["group.gruppe.bezeichnung",{"_index":17312,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.id",{"_index":17316,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.bis",{"_index":17315,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.von",{"_index":17314,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.orgid",{"_index":17313,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppenzugehoerigkeit.rollen",{"_index":17305,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.module",{"_index":10587,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["group.name",{"_index":1360,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["group.params.ts",{"_index":16073,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.params.ts:14",{"_index":16075,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.rule",{"_index":13918,"title":{},"body":{"injectables/LessonRule.html":{}}}],["group.rule.ts",{"_index":6662,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:11",{"_index":6665,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:17",{"_index":6664,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:8",{"_index":6663,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.sonstige_gruppenzugehoerige",{"_index":17302,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["groupapimodule",{"_index":10582,"title":{"modules/GroupApiModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["groupdata",{"_index":7343,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupdomainmapper",{"_index":10588,"title":{"classes/GroupDomainMapper.html":{}},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapdomainobjecttoentityproperties(domainobject",{"_index":10686,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(entity",{"_index":10684,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(savedentity",{"_index":10693,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapgroupusertogroupuserentity(groupuser",{"_index":10625,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupelements",{"_index":7438,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["groupentity",{"_index":10600,"title":{"entities/GroupEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentity(entityprops",{"_index":10687,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupentityprops",{"_index":10598,"title":{"interfaces/GroupEntityProps.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes",{"_index":10611,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["groupentitytypes.class",{"_index":10614,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupentitytypestogrouptypesmapping",{"_index":10613,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupentitytypestogrouptypesmapping[entity.type",{"_index":10635,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupfolder",{"_index":14884,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupfolders",{"_index":10751,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["groupfolderscreated",{"_index":10755,"title":{"interfaces/GroupfoldersCreated.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["groupfoldersfolder",{"_index":10753,"title":{"interfaces/GroupfoldersFolder.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["groupid",{"_index":7320,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"injectables/NextcloudStrategy.html":{}}}],["groupindex",{"_index":7345,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["groupinfo",{"_index":1341,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupinfo.group._id",{"_index":1345,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["grouping",{"_index":3614,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["groupmetadata",{"_index":7340,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupmodule",{"_index":10585,"title":{"modules/GroupModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/ProvisioningModule.html":{},"modules.html":{}}}],["groupname",{"_index":1337,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupnameidtuple",{"_index":10670,"title":{"interfaces/GroupNameIdTuple.html":{}},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["groupprops",{"_index":10578,"title":{"interfaces/GroupProps.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{}}}],["grouprepo",{"_index":10668,"title":{"injectables/GroupRepo.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["grouprolemapping",{"_index":17283,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprolemapping[relation.rollen[0",{"_index":17318,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable",{"_index":10696,"title":{"classes/GroupRoleUnknownLoggable.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable(relation",{"_index":17319,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["groups",{"_index":6461,"title":{},"body":{"entities/Course.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SuccessfulRes.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["groupservice",{"_index":10667,"title":{"injectables/GroupService.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupService.html":{},"injectables/OidcProvisioningService.html":{}}}],["grouptype",{"_index":17299,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping",{"_index":17286,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping[group.gruppe.typ",{"_index":17300,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypes",{"_index":8275,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypes.class",{"_index":10615,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypestogroupentitytypesmapping",{"_index":10616,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["grouptypestogroupentitytypesmapping[props.type",{"_index":10621,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuser",{"_index":10577,"title":{"classes/GroupUser.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["groupuser.roleid",{"_index":10645,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuser.userid",{"_index":10643,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuserentity",{"_index":10607,"title":{"classes/GroupUserEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserentityprops",{"_index":10737,"title":{"interfaces/GroupUserEntityProps.html":{}},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserids",{"_index":14933,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.filter((userid",{"_index":14946,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.includes(userid",{"_index":14952,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupusers",{"_index":10742,"title":{"interfaces/GroupUsers.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["groupvalidperiodentity",{"_index":10612,"title":{"classes/GroupValidPeriodEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["groupvalidperiodentityprops",{"_index":10757,"title":{"interfaces/GroupValidPeriodEntityProps.html":{}},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["gruppe",{"_index":17203,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["gruppen",{"_index":17211,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["gruppenzugehoerige",{"_index":17216,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["gruppenzugehoerigkeit",{"_index":17212,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["gruppenzugehoerigkeiten",{"_index":17308,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["gt",{"_index":3599,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/NewsScope.html":{}}}],["gte",{"_index":6796,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["guarantee",{"_index":782,"title":{},"body":{"injectables/AccountLookupService.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guard",{"_index":22593,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["guardagainst",{"_index":10760,"title":{"classes/GuardAgainst.html":{}},"body":{"classes/GuardAgainst.html":{},"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined",{"_index":14014,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(account.password",{"_index":14011,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(jwt",{"_index":14009,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(password",{"_index":14019,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(username",{"_index":14018,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guards",{"_index":10767,"title":{},"body":{"classes/GuardAgainst.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guest",{"_index":2210,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["guest:guest",{"_index":22325,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["guestpolicy",{"_index":2112,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["guests",{"_index":21102,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["guide",{"_index":22859,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["h5p",{"_index":10776,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["h5peditorcontroller",{"_index":10772,"title":{"controllers/H5PEditorController.html":{}},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{}}}],["h5peditormodule",{"_index":10807,"title":{"modules/H5PEditorModule.html":{}},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["h5peditortestmodule",{"_index":10816,"title":{"modules/H5PEditorTestModule.html":{}},"body":{"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["halper",{"_index":19958,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["handed",{"_index":22683,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["handle",{"_index":3061,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handlebars",{"_index":21541,"title":{},"body":{"miscellaneous/functions.html":{}}}],["handlecolumnboardintegration",{"_index":16997,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handlecolumnboardintegration(roomid",{"_index":17001,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handled",{"_index":3871,"title":{},"body":{"classes/BusinessError.html":{},"injectables/ContextExternalToolValidationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handled_at",{"_index":343,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["handleexceptions",{"_index":14054,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handleparameterstoinclude",{"_index":126,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handleparameterstoinclude(propertydata",{"_index":183,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handler",{"_index":22285,"title":{},"body":{"todo.html":{}}}],["handlerejections",{"_index":14055,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handles",{"_index":22844,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handling",{"_index":6331,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"modules/CoreModule.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["happen",{"_index":15097,"title":{},"body":{"injectables/OAuthService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["happened",{"_index":22613,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["hard",{"_index":11281,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasaccesstoentity",{"_index":1892,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstoentity(user",{"_index":1897,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstosubmission",{"_index":18409,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasaccesstosubmission(user",{"_index":18415,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasallpermissions",{"_index":1893,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/CourseGroupRule.html":{}}}],["hasallpermissions(user",{"_index":1901,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasallpermissionsbyrole",{"_index":1894,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasallpermissionsbyrole(role",{"_index":1903,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasbeenforciblyended",{"_index":2201,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasbodyproperty",{"_index":2666,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["haschangedparameternames",{"_index":9266,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameternames(oldparams",{"_index":9277,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex",{"_index":9267,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex(newparams",{"_index":9279,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope",{"_index":9268,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope(newparams",{"_index":9282,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes",{"_index":9269,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes(newparams",{"_index":9284,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters",{"_index":9270,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters(newparams",{"_index":9286,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschild",{"_index":2796,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["haschild(child",{"_index":2812,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["hascontextexternaltool",{"_index":8386,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["hascoursepermission",{"_index":16948,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{}}}],["hascoursereadpermission",{"_index":16930,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursereadpermission(user",{"_index":16934,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission",{"_index":16931,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission(user",{"_index":16936,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasduplicateattributes",{"_index":8638,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["hasduplicateattributes(customparameter",{"_index":8649,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["hasduplicatename",{"_index":21498,"title":{},"body":{"miscellaneous/functions.html":{}}}],["hasduplicatename(filerecords",{"_index":21533,"title":{},"body":{"miscellaneous/functions.html":{}}}],["haserror",{"_index":9773,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasexpertrole",{"_index":21219,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["hasexpertrole(userid",{"_index":21242,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["hasfeature",{"_index":13589,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hasfeature(schoolid",{"_index":13600,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hash",{"_index":10447,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["hash_function",{"_index":14173,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashiterations",{"_index":13193,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["hashiterations(310000",{"_index":12812,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["hashkey",{"_index":14175,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashkey).tostring(cryptojs.enc.base64",{"_index":14177,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hasid",{"_index":7310,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["hasjoinedvoice",{"_index":2274,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haslessonpermission",{"_index":13919,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["haslessonreadpermission",{"_index":16932,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["haslessonreadpermission(user",{"_index":16938,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasmatch",{"_index":12458,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmatch(user",{"_index":12466,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmigrated",{"_index":14472,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["hasname",{"_index":9769,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasname(name",{"_index":9768,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasnewrequiredparameter",{"_index":9271,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewrequiredparameter(oldparams",{"_index":9288,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewspermission",{"_index":23089,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasoneofpermissions",{"_index":1895,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasoneofpermissions(user",{"_index":1905,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasparent",{"_index":3581,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["hasparentpermission",{"_index":19072,"title":{},"body":{"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasparentpermission(user",{"_index":19074,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasparentreadpermission",{"_index":13925,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasparenttaskreadaccess",{"_index":18410,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskreadaccess(user",{"_index":18417,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess",{"_index":18411,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess(user",{"_index":18419,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparentwritepermission",{"_index":13927,"title":{},"body":{"injectables/LessonRule.html":{}}}],["haspath",{"_index":16618,"title":{},"body":{"classes/RequestInfo.html":{}}}],["haspath(reqroute",{"_index":16625,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["haspermission",{"_index":1928,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/RoomsAuthorisationService.html":{},"interfaces/Rule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["haspermission(user",{"_index":2033,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"interfaces/Rule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["haspermissionbyreferences",{"_index":2017,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["haspermissionbyreferences(userid",{"_index":2035,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["haspermissions",{"_index":9404,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"injectables/PermissionService.html":{},"injectables/VideoConferenceService.html":{}}}],["haspermissions(userid",{"_index":21245,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["hasreadaccess",{"_index":18412,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasreadaccess(user",{"_index":18422,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasrequiredpermission",{"_index":19079,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasscanstatuserror",{"_index":9772,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasscanstatuswontcheck",{"_index":9775,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasschoolmigrated",{"_index":17588,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrated(sourceexternalid",{"_index":17601,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser",{"_index":4470,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser(schoolid",{"_index":17605,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hastaskreadpermission",{"_index":16933,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hastaskreadpermission(user",{"_index":16940,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasuserallschoolpermissions",{"_index":16103,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserallschoolpermissions(user",{"_index":16105,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserjoined",{"_index":2202,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasusermigrated",{"_index":20477,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["hasuserpermission",{"_index":13922,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasvideo",{"_index":2275,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haswontcheckstatus",{"_index":9776,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["haswriteaccess",{"_index":18413,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["haswriteaccess(user",{"_index":18424,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["having",{"_index":3566,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"controllers/ElementController.html":{},"injectables/LdapStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["header",{"_index":1693,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"controllers/OauthSSOController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["headerconst",{"_index":1707,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headerconst.json",{"_index":1752,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headercookies",{"_index":11050,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["headers",{"_index":1381,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["heartened",{"_index":21704,"title":{},"body":{"license.html":{}}}],["height",{"_index":3236,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/ColumnBoardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SetHeightBodyParams.html":{}}}],["height(height",{"_index":3999,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["height.body.params",{"_index":4044,"title":{},"body":{"controllers/CardController.html":{}}}],["height.body.params.ts",{"_index":17839,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height.body.params.ts:10",{"_index":17841,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height=100",{"_index":5261,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hell",{"_index":6416,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["help",{"_index":5401,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["helper",{"_index":3027,"title":{},"body":{"injectables/BoardCopyService.html":{},"modules/CommonToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/FilesStorageClientModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/PreviewService.html":{},"controllers/RoomsController.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["helper.module",{"_index":18767,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["helper.module.ts",{"_index":6239,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service",{"_index":6241,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service.ts",{"_index":6243,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:10",{"_index":6253,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:28",{"_index":6251,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:45",{"_index":6248,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.ts",{"_index":19441,"title":{},"body":{"classes/TestHelper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:10",{"_index":19830,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:17",{"_index":19831,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:21",{"_index":19445,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper.ts:39",{"_index":19832,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:6",{"_index":19444,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper/copy",{"_index":6238,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/TaskApiModule.html":{}}}],["helper/dto/copy.response.ts",{"_index":6044,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:17",{"_index":6056,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:22",{"_index":6060,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:29",{"_index":6061,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:34",{"_index":6051,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:41",{"_index":6059,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:47",{"_index":6055,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:7",{"_index":6049,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/mapper/copy.mapper.ts",{"_index":6283,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:10",{"_index":6295,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:30",{"_index":6288,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:39",{"_index":6292,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/service/copy",{"_index":6242,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper/types/copy.types",{"_index":6062,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helpers",{"_index":22576,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["helpful",{"_index":22759,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helplink",{"_index":4779,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["helps",{"_index":22744,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helpto",{"_index":22384,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["hendt/xml2json",{"_index":6030,"title":{},"body":{"injectables/ConverterUtil.html":{},"dependencies.html":{}}}],["here",{"_index":2510,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"modules/InterceptorModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/NextcloudStrategy.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hereafter",{"_index":22095,"title":{},"body":{"license.html":{}}}],["hex",{"_index":780,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["hh:mm:ss.sss",{"_index":14061,"title":{},"body":{"modules/LoggerModule.html":{}}}],["hidden",{"_index":3419,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/DtoCreator.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["hier",{"_index":4774,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hierarchy",{"_index":5223,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["high",{"_index":22535,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["higher",{"_index":22462,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["highly",{"_index":23027,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hilfebereich",{"_index":4791,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hint",{"_index":5412,"title":{},"body":{"classes/ConsentRequestBody.html":{},"injectables/CopyFilesService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthConfigResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["history",{"_index":22255,"title":{},"body":{"todo.html":{}}}],["historywindows",{"_index":22898,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["hmac",{"_index":14172,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["holder",{"_index":22033,"title":{},"body":{"license.html":{}}}],["holders",{"_index":21996,"title":{},"body":{"license.html":{}}}],["holds",{"_index":23108,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["homepage",{"_index":22243,"title":{},"body":{"properties.html":{}}}],["homework",{"_index":22553,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["homeworkid",{"_index":11793,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["homeworkid'})@index",{"_index":18211,"title":{},"body":{"entities/Submission.html":{}}}],["homeworks",{"_index":11969,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["hook",{"_index":1123,"title":{},"body":{"injectables/AccountService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hookfn",{"_index":683,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["hooks",{"_index":21391,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hope",{"_index":6417,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"license.html":{}}}],["horizontal",{"_index":22532,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["host",{"_index":10474,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"injectables/IdTokenService.html":{},"classes/VideoConferenceConfiguration.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["host.gettype",{"_index":10495,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host.switchtohttp",{"_index":10505,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host=http://localhost:4000",{"_index":22915,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["hosts",{"_index":21925,"title":{},"body":{"license.html":{}}}],["hosturl",{"_index":12121,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceService.html":{}}}],["hot",{"_index":22289,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["household",{"_index":21943,"title":{},"body":{"license.html":{}}}],["hpi",{"_index":2172,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/CourseCopyUC.html":{},"classes/DtoCreator.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/IToolFeatures.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/TaskCopyUC.html":{},"classes/ToolConfiguration.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["href",{"_index":5003,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hs256",{"_index":1668,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs384",{"_index":1669,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs512",{"_index":1670,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["html",{"_index":5011,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{},"entities/CourseNews.html":{},"controllers/H5PEditorController.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"dependencies.html":{},"miscellaneous/functions.html":{}}}],["html.transformer",{"_index":16725,"title":{},"body":{"classes/RichText.html":{}}}],["html.transformer.ts",{"_index":21507,"title":{},"body":{"miscellaneous/functions.html":{}}}],["htmlcontent",{"_index":1573,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["htmlmailcontent",{"_index":1575,"title":{"interfaces/HtmlMailContent.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["http",{"_index":1498,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ConsentRequestBody.html":{},"classes/ErrorResponse.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["http(message",{"_index":11529,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["http(s",{"_index":23116,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["http://:4011",{"_index":22913,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://fsf.org",{"_index":21656,"title":{},"body":{"license.html":{}}}],["http://localhost:3030",{"_index":12943,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["http://localhost:3030/api/v1/sync?target=ldap",{"_index":22935,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://localhost:3030/api/v3/sso/oauth",{"_index":13055,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["http://localhost:8080",{"_index":22907,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/manifest",{"_index":5187,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/resource",{"_index":5188,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/manifest",{"_index":5174,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/resource",{"_index":5176,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://mock.de",{"_index":18595,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/auth",{"_index":18584,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/jwks",{"_index":18588,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/logout",{"_index":18586,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/mock/auth/public/mocktoken",{"_index":18582,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mockhost:3030/api/v3/sso/oauth",{"_index":18583,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://www.gnu.org/licenses",{"_index":22235,"title":{},"body":{"license.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd",{"_index":5190,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lommanifest_v1p0.xsd",{"_index":5191,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lomresource_v1p0.xsd",{"_index":5189,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_cpextensionv1p2_v1p0.xsd",{"_index":5182,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd",{"_index":5180,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imswl_v1p3.xsd",{"_index":5264,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lommanifest_v1p0.xsd",{"_index":5181,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lomresource_v1p0.xsd",{"_index":5179,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsbasiclti_v1p0",{"_index":5137,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1",{"_index":5186,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1",{"_index":5265,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2",{"_index":5178,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1",{"_index":5172,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3",{"_index":5263,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3",{"_index":5135,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3.xsd",{"_index":5143,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticm_v1p0",{"_index":5139,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticp_v1p0",{"_index":5141,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.w3.org/2001/xmlschema",{"_index":5120,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["httpargumenthost",{"_index":10504,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpargumenthost.getresponse",{"_index":10506,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpcode",{"_index":2954,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/LoginController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["httpcode(204",{"_index":2973,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["httpcode(httpstatus.no_content",{"_index":19616,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["httpcode(httpstatus.ok",{"_index":14105,"title":{},"body":{"controllers/LoginController.html":{}}}],["httpexception",{"_index":3672,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/BusinessError.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoService.html":{},"classes/GlobalErrorFilter.html":{},"injectables/SubmissionItemUc.html":{}}}],["httpexception('id",{"_index":18373,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["httpexception(`unsupported",{"_index":4900,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["httpexceptionoptions",{"_index":8236,"title":{},"body":{"classes/ErrorUtils.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["httpexceptions",{"_index":22653,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["httpmodule",{"_index":3956,"title":{},"body":{"modules/CalendarModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/ExternalToolModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/KeycloakModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/RocketChatModule.html":{},"modules/VideoConferenceModule.html":{}}}],["httponly",{"_index":15777,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["https",{"_index":10922,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["https://${scdomain",{"_index":12944,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["https://${scdomain}/api/v3/sso/oauth",{"_index":13056,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["https://dbildungscloud.de",{"_index":22244,"title":{},"body":{"properties.html":{}}}],["https://docs.nestjs.com/first",{"_index":22580,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://example.com/tool",{"_index":19783,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["https://github.com/goldbergyoni/javascript",{"_index":22861,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["https://github.com/hpi",{"_index":22269,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["https://github.com/mikro",{"_index":9736,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["https://github.com/thoughtbot/fishery",{"_index":2527,"title":{},"body":{"classes/BaseFactory.html":{}}}],["https://hpi",{"_index":22292,"title":{},"body":{"todo.html":{}}}],["https://jestjs.io",{"_index":22426,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://khalilstemmler.com/articles/software",{"_index":22622,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://logo.com",{"_index":7177,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://logourl.com",{"_index":8512,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["https://mikro",{"_index":22427,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://min.io",{"_index":22429,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://mock.tld/auth",{"_index":18590,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/logout",{"_index":18593,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/token",{"_index":18591,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/userinfo",{"_index":18592,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://nestjs.com",{"_index":22425,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://provisioningurl.de",{"_index":18597,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://stackoverflow.com/a/61909588",{"_index":22254,"title":{},"body":{"todo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/arc",{"_index":2473,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/bc",{"_index":2050,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/FilesStorageProducer.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/n21",{"_index":13623,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["https://url.com",{"_index":7175,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.basic",{"_index":7130,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.example.com",{"_index":13762,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["https://www.frontchannel.com",{"_index":7138,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.geogebra.org/m/${content.content.materialid",{"_index":5014,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["https://www.imsglobal.org/sites/default/files/profile/cc/ccv1p1/ccv1p1_imswl_v1p1.xsd",{"_index":5266,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["https://www.lti11",{"_index":7150,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.npmjs.com/package/@golevelup/nestjs",{"_index":16471,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["https://www.oauth2",{"_index":7146,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.rabbitmq.com",{"_index":22430,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://www.redirect.com",{"_index":7140,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["httpservice",{"_index":1265,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["httpstatus",{"_index":1487,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BoardResponseMapper.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"classes/LdapConnectionError.html":{},"controllers/LoginController.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SubmissionItemUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.bad_gateway",{"_index":13285,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["httpstatus.bad_request",{"_index":1494,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.conflict",{"_index":3887,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["httpstatus.forbidden",{"_index":10382,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.internal_server_error",{"_index":8536,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.not_acceptable",{"_index":8102,"title":{},"body":{"injectables/ElementUc.html":{}}}],["httpstatus.not_found",{"_index":8123,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["httpstatus.ok",{"_index":20910,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["httpstatus.too_many_requests",{"_index":3841,"title":{},"body":{"classes/BruteForceError.html":{}}}],["httpstatus.unauthorized",{"_index":1889,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/SchoolInMigrationError.html":{}}}],["httpstatus.unprocessable_entity",{"_index":3678,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/SubmissionItemUc.html":{}}}],["human",{"_index":5409,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["hydra",{"_index":11082,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydra_public_uri",{"_index":10926,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraadapter",{"_index":10822,"title":{"injectables/HydraAdapter.html":{}},"body":{"injectables/HydraAdapter.html":{},"modules/OauthProviderServiceModule.html":{}}}],["hydracookies",{"_index":6034,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydracookies.includes(cookie",{"_index":11063,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydracookies.push(cookie",{"_index":11064,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig",{"_index":10958,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig.redirecturi",{"_index":10962,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraoauthuc",{"_index":10923,"title":{"injectables/HydraOauthUc.html":{}},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["hydraredirectdto",{"_index":10948,"title":{"classes/HydraRedirectDto.html":{}},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["hydraredirectdto(dto",{"_index":11035,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrassoservice",{"_index":10934,"title":{"injectables/HydraSsoService.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"modules/OauthModule.html":{}}}],["hydrauc",{"_index":15740,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["hydrauri",{"_index":10824,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{}}}],["hydrauri}/.well",{"_index":11078,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/auth",{"_index":11073,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/sessions/logout",{"_index":11081,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/token",{"_index":11088,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["i...properties",{"_index":6420,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["i.name",{"_index":11237,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["iaccountconfig",{"_index":11091,"title":{"interfaces/IAccountConfig.html":{}},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["iat",{"_index":6886,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["ibbbsettings",{"_index":2290,"title":{"interfaces/IBbbSettings.html":{}},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["icalendarevent",{"_index":3938,"title":{"interfaces/ICalendarEvent.html":{}},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"interfaces/ICalendarEvent.html":{}}}],["iclassentityprops",{"_index":4296,"title":{"interfaces/IClassEntityProps.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"interfaces/IClassEntityProps.html":{}}}],["icollaborativestoragestrategy",{"_index":4493,"title":{"interfaces/ICollaborativeStorageStrategy.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["icollectionfilepath",{"_index":11108,"title":{"interfaces/ICollectionFilePath.html":{}},"body":{"interfaces/ICollectionFilePath.html":{}}}],["icolumnboardproperties",{"_index":4709,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["icommoncartridgeconfig",{"_index":11293,"title":{"interfaces/ICommonCartridgeConfig.html":{}},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icommoncartridgeelement",{"_index":5062,"title":{"interfaces/ICommonCartridgeElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgefile",{"_index":5104,"title":{"interfaces/ICommonCartridgeFile.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["icommoncartridgefilebuilder",{"_index":5038,"title":{"interfaces/ICommonCartridgeFileBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgefilebuilderoptions",{"_index":5045,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeltiresourceprops",{"_index":5106,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["icommoncartridgemanifestprops",{"_index":5161,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["icommoncartridgemetadataprops",{"_index":5163,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["icommoncartridgeorganizationbuilder",{"_index":5054,"title":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeorganizationprops",{"_index":5052,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeresourceprops",{"_index":4956,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgewebcontentresourceprops",{"_index":4964,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["icommoncartridgeweblinkresourceprops",{"_index":5235,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["icomponentetherpadproperties",{"_index":11305,"title":{"interfaces/IComponentEtherpadProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icomponentgeogebraproperties",{"_index":11315,"title":{"interfaces/IComponentGeogebraProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icomponentinternalproperties",{"_index":11320,"title":{"interfaces/IComponentInternalProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["icomponentlernstoreproperties",{"_index":11317,"title":{"interfaces/IComponentLernstoreProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icomponentnexboardproperties",{"_index":11319,"title":{"interfaces/IComponentNexboardProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icomponentproperties",{"_index":4953,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonService.html":{}}}],["icomponenttextproperties",{"_index":11314,"title":{"interfaces/IComponentTextProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icons",{"_index":22869,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["icontextexternaltoolproperties",{"_index":5687,"title":{"interfaces/IContextExternalToolProperties.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["icopyfiledo",{"_index":10188,"title":{"interfaces/ICopyFileDO.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["icopyfiledomainobjectprops",{"_index":6068,"title":{"interfaces/ICopyFileDomainObjectProps.html":{}},"body":{"classes/CopyFileDto.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDomainObjectProps.html":{}}}],["icopyfilesofparentparams",{"_index":10286,"title":{"interfaces/ICopyFilesOfParentParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["icopyfilesrequestinfo",{"_index":6179,"title":{"interfaces/ICopyFilesRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["icoremoduleconfig",{"_index":11368,"title":{"interfaces/ICoreModuleConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icoursegroupproperties",{"_index":6632,"title":{"interfaces/ICourseGroupProperties.html":{}},"body":{"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["icourseproperties",{"_index":6410,"title":{"interfaces/ICourseProperties.html":{}},"body":{"entities/Course.html":{},"classes/CourseFactory.html":{},"interfaces/ICourseProperties.html":{}}}],["icreatenews",{"_index":11372,"title":{"interfaces/ICreateNews.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["icurrentuser",{"_index":491,"title":{"interfaces/ICurrentUser.html":{}},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"classes/CurrentUserMapper.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"controllers/ImportUserController.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["id",{"_index":34,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardUrlParams.html":{},"injectables/CalendarService.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardUrlParams.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"injectables/CopyFilesService.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateNewsParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"classes/FileDto-1.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilterNewsParams.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraAdapter.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LoginResponse-1.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MoveColumnBodyParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningService.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemResponse.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsService.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"injectables/SchoolYearRepo.html":{},"classes/ScopeRef.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SortExternalToolParams.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemIdParams.html":{},"classes/SystemMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationDO.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["id'})@apiokresponse({description",{"_index":19708,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["id.body.params.ts",{"_index":457,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:15",{"_index":466,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:26",{"_index":464,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:35",{"_index":462,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.id",{"_index":13104,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["id.loggable.ts",{"_index":17541,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:11",{"_index":17546,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:4",{"_index":17544,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.params",{"_index":18538,"title":{},"body":{"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["id.params.ts",{"_index":478,"title":{},"body":{"classes/AccountByIdParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}}}],["id.params.ts:11",{"_index":480,"title":{},"body":{"classes/AccountByIdParams.html":{},"classes/SystemIdParams.html":{}}}],["id.params.ts:7",{"_index":5709,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["id.params.ts:8",{"_index":5712,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SystemIdParams-1.html":{}}}],["id.pipe.ts",{"_index":22604,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["id.token.claim",{"_index":13008,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["id.tostring",{"_index":1218,"title":{},"body":{"injectables/AccountServiceDb.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["id/authorization",{"_index":5436,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["id/challenge",{"_index":5473,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["id='${child.id",{"_index":2836,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["id_token",{"_index":353,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["id_token_hint_claims",{"_index":15874,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["idashboardmodelproperties",{"_index":7427,"title":{"interfaces/IDashboardModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["idashboardrepo",{"_index":7600,"title":{"interfaces/IDashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["idea",{"_index":2487,"title":{},"body":{"classes/BaseDomainObject.html":{},"injectables/TaskUC.html":{}}}],["idempotent",{"_index":2297,"title":{},"body":{"injectables/BBBService.html":{}}}],["identical",{"_index":12724,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["identifiable",{"_index":22118,"title":{},"body":{"license.html":{}}}],["identified",{"_index":22662,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["identifiedreference",{"_index":2501,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["identifier",{"_index":1515,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ErrorResponse.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"injectables/LdapStrategy.html":{},"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["identifiername",{"_index":14975,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["identifierref",{"_index":5129,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["identifiers",{"_index":11455,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/JwtValidationAdapter.html":{}}}],["identifies",{"_index":18105,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["identify",{"_index":5437,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["identities",{"_index":22904,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["identity",{"_index":2841,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"modules/KeycloakModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["identitymanagementmodule",{"_index":817,"title":{"modules/IdentityManagementModule.html":{}},"body":{"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/IdentityManagementModule.html":{},"modules/SystemModule.html":{},"modules.html":{}}}],["identitymanagementoauthservice",{"_index":12185,"title":{"classes/IdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["identitymanagementoauthservice:24",{"_index":13047,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:54",{"_index":13048,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:61",{"_index":13050,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementservice",{"_index":788,"title":{"classes/IdentityManagementService.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:113",{"_index":13086,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:126",{"_index":13087,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:131",{"_index":13076,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:136",{"_index":13088,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:14",{"_index":13074,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:152",{"_index":13089,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:46",{"_index":13091,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:62",{"_index":13093,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:76",{"_index":13085,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:84",{"_index":13082,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:98",{"_index":13083,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identityprovideralias",{"_index":12998,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapper",{"_index":12997,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapperrepresentation",{"_index":12880,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityproviderrepresentation",{"_index":12883,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["idm",{"_index":78,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementOauthService.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idm.service",{"_index":831,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{}}}],["idm/dev:latest",{"_index":22341,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idmaccount",{"_index":750,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountService.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmaccount?.idmreferenceid",{"_index":1102,"title":{},"body":{"injectables/AccountService.html":{}}}],["idmaccountproperties",{"_index":401,"title":{},"body":{"entities/Account.html":{},"classes/AccountFactory.html":{}}}],["idmaccountupdate",{"_index":12214,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmcallback",{"_index":1061,"title":{},"body":{"injectables/AccountService.html":{}}}],["idmoauthservice",{"_index":13995,"title":{},"body":{"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["idmreferenceid",{"_index":593,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{}}}],["idmservice",{"_index":791,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["idmuserrepresentation",{"_index":13189,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["idp",{"_index":12912,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OauthConfigResponse.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idpalias",{"_index":12873,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["idparams",{"_index":12124,"title":{"classes/IdParams.html":{}},"body":{"classes/IdParams.html":{},"controllers/OauthProviderController.html":{}}}],["idphint",{"_index":11875,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["ids",{"_index":770,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/BaseDORepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"entities/Course.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/PatchOrderParams.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/S3ClientAdapter.html":{}}}],["ids.'})@apiresponse({status",{"_index":4023,"title":{},"body":{"controllers/CardController.html":{}}}],["ids.map((id",{"_index":2714,"title":{},"body":{"entities/Board.html":{}}}],["ids.map(async",{"_index":2480,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["ids.params.ts",{"_index":4080,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids.params.ts:10",{"_index":4084,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids[0",{"_index":3136,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["idtoken",{"_index":348,"title":{"interfaces/IdToken.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/TokenRequestMapper.html":{}}}],["idtoken.external_sub",{"_index":15906,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["idtoken.uuid",{"_index":12631,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["idtokencreationloggableexception",{"_index":12127,"title":{"classes/IdTokenCreationLoggableException.html":{}},"body":{"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{}}}],["idtokencreationloggableexception(clientid",{"_index":12178,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["idtokenservice",{"_index":12135,"title":{"injectables/IdTokenService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["iencryptionservice",{"_index":9083,"title":{"interfaces/IEncryptionService.html":{}},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["ientity",{"_index":2494,"title":{"interfaces/IEntity.html":{}},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ientitywithschool",{"_index":6400,"title":{"interfaces/IEntityWithSchool.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{}}}],["ientitywithtimestamps",{"_index":11398,"title":{"interfaces/IEntityWithTimestamps.html":{}},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ierror",{"_index":8203,"title":{"interfaces/IError.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["ierrortype",{"_index":3875,"title":{"interfaces/IErrorType.html":{}},"body":{"classes/BusinessError.html":{},"interfaces/IErrorType.html":{}}}],["iexternaltoolproperties",{"_index":8487,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["iexternaltoolpseudonymentityprops",{"_index":8717,"title":{"interfaces/IExternalToolPseudonymEntityProps.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["if/else",{"_index":22729,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ifederalstateproperties",{"_index":6350,"title":{"interfaces/IFederalStateProperties.html":{}},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ifiledo",{"_index":10189,"title":{"interfaces/IFileDO.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["ifiledomainobjectprops",{"_index":9488,"title":{"interfaces/IFileDomainObjectProps.html":{}},"body":{"classes/FileDto-1.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["ifilerecordparams",{"_index":10289,"title":{"interfaces/IFileRecordParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["ifilerecordproperties",{"_index":9732,"title":{"interfaces/IFileRecordProperties.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ifilerecordsecuritycheckproperties",{"_index":9724,"title":{"interfaces/IFileRecordSecurityCheckProperties.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ifilerequestinfo",{"_index":6177,"title":{"interfaces/IFileRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{}}}],["ifilesstorageclientconfig",{"_index":10294,"title":{"interfaces/IFilesStorageClientConfig.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IServerConfig.html":{}}}],["ifilestorageconfig",{"_index":11404,"title":{"interfaces/IFileStorageConfig.html":{}},"body":{"interfaces/IFileStorageConfig.html":{}}}],["ifindoptions",{"_index":6775,"title":{"interfaces/IFindOptions.html":{}},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["iframe",{"_index":10673,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["iframe_restrict_access=false",{"_index":23000,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["iframeproperties",{"_index":12138,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["ignore",{"_index":2422,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/ImportUserScope.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["ignored",{"_index":2518,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ignoreexpiration",{"_index":12700,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["igridelement",{"_index":7284,"title":{"interfaces/IGridElement.html":{}},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["iidentitymanagementconfig",{"_index":11438,"title":{"interfaces/IIdentityManagementConfig.html":{}},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LocalStrategy.html":{}}}],["iimportuserproperties",{"_index":11445,"title":{"interfaces/IImportUserProperties.html":{}},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{}}}],["iimportuserrolename",{"_index":11451,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/RoleNameMapper.html":{}}}],["iimportuserscope",{"_index":11493,"title":{"interfaces/IImportUserScope.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["iinterceptorconfig",{"_index":11370,"title":{"interfaces/IInterceptorConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IInterceptorConfig.html":{},"modules/InterceptorModule.html":{}}}],["ijsonaccount",{"_index":11499,"title":{"interfaces/IJsonAccount.html":{}},"body":{"interfaces/IJsonAccount.html":{},"classes/KeycloakSeedService.html":{}}}],["ijsonuser",{"_index":11504,"title":{"interfaces/IJsonUser.html":{}},"body":{"interfaces/IJsonUser.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloakconfigurationinputfiles",{"_index":11506,"title":{"interfaces/IKeycloakConfigurationInputFiles.html":{}},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloaksettings",{"_index":11513,"title":{"interfaces/IKeycloakSettings.html":{}},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["ilearnroom",{"_index":6401,"title":{"interfaces/ILearnroom.html":{}},"body":{"entities/Course.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["ilearnroomelement",{"_index":2687,"title":{"interfaces/ILearnroomElement.html":{}},"body":{"entities/Board.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["ilegacylogger",{"_index":11519,"title":{"interfaces/ILegacyLogger.html":{}},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["ilessonparent",{"_index":6406,"title":{"interfaces/ILessonParent.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["ilessonproperties",{"_index":11309,"title":{"interfaces/ILessonProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{}}}],["iloggerconfig",{"_index":11371,"title":{"interfaces/ILoggerConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/ILoggerConfig.html":{},"modules/LoggerModule.html":{}}}],["iltitoolproperties",{"_index":6959,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["im",{"_index":4790,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/PreviewService.html":{}}}],["im(original.data",{"_index":16191,"title":{},"body":{"injectables/PreviewService.html":{}}}],["image/gif",{"_index":8581,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/jpeg",{"_index":8576,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/png",{"_index":8579,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/webp",{"_index":19448,"title":{},"body":{"classes/TestHelper.html":{}}}],["imagebuffer",{"_index":8561,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagebuffer.tostring('hex",{"_index":8613,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagemagick",{"_index":16190,"title":{},"body":{"injectables/PreviewService.html":{}}}],["imagesignature",{"_index":8612,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imateapotexception",{"_index":9437,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imateapotexception('this",{"_index":9448,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imaterialproperties",{"_index":11538,"title":{"interfaces/IMaterialProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["imigrationoptions",{"_index":11565,"title":{"interfaces/IMigrationOptions.html":{}},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["immediately",{"_index":9424,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["immutable",{"_index":9254,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["impact",{"_index":21606,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["imperative",{"_index":22890,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["impersonated",{"_index":6955,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{}}}],["impersonates",{"_index":11382,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{}}}],["impl",{"_index":3308,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["impl.ts",{"_index":3191,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:104",{"_index":3208,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:118",{"_index":3209,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:132",{"_index":3210,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:146",{"_index":3202,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:151",{"_index":3217,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:157",{"_index":3215,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:162",{"_index":3213,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:26",{"_index":3198,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:35",{"_index":3206,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:39",{"_index":3204,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:56",{"_index":3203,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:71",{"_index":3200,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:91",{"_index":3207,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["implemenation",{"_index":23124,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implement",{"_index":13418,"title":{},"body":{"injectables/LegacyLogger.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implementation",{"_index":2579,"title":{},"body":{"injectables/BaseRepo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["implementations",{"_index":22461,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["implemented",{"_index":1132,"title":{},"body":{"injectables/AccountService.html":{},"interfaces/JwtConstants.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implemented.loggable",{"_index":16066,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["implementing",{"_index":22493,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implements",{"_index":214,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthorizableObject.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"entities/ColumnBoardTarget.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRule.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardRepo.html":{},"classes/DomainObject.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"entities/ImportUser.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRule.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"entities/SchoolYear.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionRule.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"injectables/TaskRule.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implications",{"_index":22633,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["implicit",{"_index":23018,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implicitly",{"_index":23039,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implied",{"_index":22140,"title":{},"body":{"license.html":{}}}],["implies",{"_index":5457,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["import",{"_index":95,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["import.body.params.ts",{"_index":17941,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:13",{"_index":17945,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:22",{"_index":17944,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.module.ts",{"_index":12451,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["import.uc",{"_index":12307,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["import/controller/dto/filter",{"_index":10328,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["import/controller/dto/import",{"_index":12357,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{}}}],["import/controller/dto/sort",{"_index":18137,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["import/controller/dto/update",{"_index":19949,"title":{},"body":{"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{}}}],["import/controller/dto/user",{"_index":20528,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["import/controller/import",{"_index":12260,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["import/export",{"_index":22948,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["import/loggable/migration",{"_index":14489,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["import/loggable/school",{"_index":17540,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["import/loggable/user",{"_index":20572,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["import/mapper/import",{"_index":12379,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["import/mapper/match.mapper.ts",{"_index":12426,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:12",{"_index":12432,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:5",{"_index":12430,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/role",{"_index":16810,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["import/mapper/user",{"_index":20533,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["import/uc/ldap",{"_index":13246,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["import/user",{"_index":12450,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["important",{"_index":569,"title":{},"body":{"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/PermissionService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["importcollection",{"_index":7689,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollection(@param('collectionname",{"_index":7709,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollection(collectionname",{"_index":7697,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollections",{"_index":7690,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(@query('with",{"_index":7707,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(withindexes",{"_index":7700,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["imported",{"_index":11205,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/ShareTokenImportBodyParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["importeddocumentsamount",{"_index":11202,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["importhash",{"_index":12106,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["importing",{"_index":22086,"title":{},"body":{"license.html":{}}}],["imports",{"_index":449,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CoreModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"classes/TestBootstrapConsole.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["importseeddata",{"_index":13154,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["importsharetoken",{"_index":17872,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["importsharetoken(currentuser",{"_index":17880,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["importsharetoken(userid",{"_index":18060,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["importuser",{"_index":11459,"title":{"entities/ImportUser.html":{}},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"injectables/UserRepo.html":{}}}],["importuser.classnames",{"_index":12400,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.firstname",{"_index":12396,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.flagged",{"_index":12401,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.id",{"_index":12394,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.lastname",{"_index":12397,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.loginname",{"_index":12395,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.matchedby",{"_index":12403,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.rolenames.map((role",{"_index":12398,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.scope",{"_index":12471,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuser.user",{"_index":12402,"title":{},"body":{"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["importuser.user).filter((user",{"_index":12497,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importusercontroller",{"_index":12259,"title":{"controllers/ImportUserController.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["importuserentities",{"_index":12493,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserentities.map((importuser",{"_index":12496,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserfactory",{"_index":12342,"title":{"classes/ImportUserFactory.html":{}},"body":{"classes/ImportUserFactory.html":{}}}],["importuserfactory.define(importuser",{"_index":12350,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["importuserid",{"_index":12374,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserlist",{"_index":12317,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlist.map((importuser",{"_index":12320,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlistresponse",{"_index":12308,"title":{"classes/ImportUserListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["importuserlistresponse(dtolist",{"_index":12322,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper",{"_index":12299,"title":{"classes/ImportUserMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["importusermapper.mapimportuserfilterquerytodomain(scope",{"_index":12316,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.mapsortingquerytodomain(sortingquery",{"_index":12315,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(importuser",{"_index":12321,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(result",{"_index":12326,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermatchmapper",{"_index":12388,"title":{"classes/ImportUserMatchMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["importusermatchmapper.mapimportusermatchscopetodomain(match",{"_index":12423,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusermatchmapper.mapmatchcreatortoresponse(matchcreator",{"_index":20549,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["importusermodule",{"_index":12445,"title":{"modules/ImportUserModule.html":{}},"body":{"modules/ImportUserModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["importuserrepo",{"_index":12449,"title":{"injectables/ImportUserRepo.html":{}},"body":{"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{}}}],["importuserresponse",{"_index":12309,"title":{"classes/ImportUserResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{}}}],["importusers",{"_index":11458,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"injectables/UserRepo.html":{}}}],["importuserschoolid",{"_index":17543,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserscope",{"_index":12470,"title":{"classes/ImportUserScope.html":{}},"body":{"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{}}}],["importusersortorder",{"_index":12387,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["importusersortorder.firstname",{"_index":12391,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusersortorder.lastname",{"_index":12392,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuserurlparams",{"_index":12281,"title":{"classes/ImportUserUrlParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserUrlParams.html":{}}}],["impose",{"_index":22018,"title":{},"body":{"license.html":{}}}],["imposed",{"_index":22143,"title":{},"body":{"license.html":{}}}],["impossile",{"_index":14787,"title":{},"body":{"classes/NewsScope.html":{}}}],["improvements",{"_index":21699,"title":{},"body":{"license.html":{}}}],["improves",{"_index":22688,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ims",{"_index":5193,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["imsbasiclti_v1p0p1.xsd",{"_index":5146,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticm_v1p0.xsd",{"_index":5145,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticp_v1p0.xsd",{"_index":5144,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["in.'})@apioperation({summary",{"_index":19642,"title":{},"body":{"controllers/ToolController.html":{}}}],["in/out",{"_index":22556,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["inability",{"_index":22195,"title":{},"body":{"license.html":{}}}],["inaccurate",{"_index":22197,"title":{},"body":{"license.html":{}}}],["inamematch",{"_index":11497,"title":{"interfaces/INameMatch.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["inc",{"_index":21655,"title":{},"body":{"license.html":{}}}],["incidental",{"_index":22192,"title":{},"body":{"license.html":{}}}],["include",{"_index":2503,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["included",{"_index":6053,"title":{},"body":{"classes/CopyApiResponse.html":{},"license.html":{}}}],["includes",{"_index":14883,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["including",{"_index":10000,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["inclusion",{"_index":21893,"title":{},"body":{"license.html":{}}}],["incoming",{"_index":10534,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["incoming_request_timeout",{"_index":11410,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{}}}],["incoming_request_timeout_copy_api",{"_index":11412,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{}}}],["incomplete",{"_index":10797,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["incorporate",{"_index":21702,"title":{},"body":{"license.html":{}}}],["incorporated",{"_index":22160,"title":{},"body":{"license.html":{}}}],["incorporation",{"_index":21945,"title":{},"body":{"license.html":{}}}],["increase",{"_index":9309,"title":{},"body":{"injectables/ExternalToolVersionService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["increaseversionofnewtoolifnecessary",{"_index":9272,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["increaseversionofnewtoolifnecessary(oldtool",{"_index":9290,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["indefinitely",{"_index":5392,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["indemnification",{"_index":22014,"title":{},"body":{"license.html":{}}}],["independent",{"_index":21883,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["index",{"_index":7,"title":{"index.html":{}},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["index()@enum",{"_index":9705,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@enum(undefined",{"_index":3558,"title":{},"body":{"entities/BoardNode.html":{}}}],["index()@manytomany('course",{"_index":7410,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytomany('user",{"_index":6391,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{}}}],["index()@manytomany({fieldname",{"_index":19983,"title":{},"body":{"entities/User.html":{}}}],["index()@manytoone('course",{"_index":6624,"title":{},"body":{"entities/CourseGroup.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone('dashboardmodelentity",{"_index":7408,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytoone('lessonentity",{"_index":18752,"title":{},"body":{"entities/Task.html":{}}}],["index()@manytoone('user",{"_index":7494,"title":{},"body":{"entities/DashboardModelEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone(undefined",{"_index":6386,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["index()@property",{"_index":13856,"title":{},"body":{"entities/LessonEntity.html":{}}}],["index()@property({fieldname",{"_index":9697,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@property({nullable",{"_index":3554,"title":{},"body":{"entities/BoardNode.html":{},"entities/Course.html":{}}}],["index({options",{"_index":9700,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["index.ts",{"_index":22251,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["indexes",{"_index":7660,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/TaskRepo.html":{},"todo.html":{}}}],["indexes.filter((i",{"_index":11236,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["indicate",{"_index":22057,"title":{},"body":{"license.html":{}}}],["indicating",{"_index":6926,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["individual",{"_index":21891,"title":{},"body":{"license.html":{}}}],["individuals",{"_index":21733,"title":{},"body":{"license.html":{}}}],["industrial",{"_index":21954,"title":{},"body":{"license.html":{}}}],["ineffcient",{"_index":13233,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inestapplication",{"_index":1704,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inewsproperties",{"_index":6725,"title":{"interfaces/INewsProperties.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["inewsscope",{"_index":11380,"title":{"interfaces/INewsScope.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["inferrable",{"_index":12378,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["info",{"_index":3,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["info(currentuser",{"_index":20885,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["info(loggable",{"_index":14029,"title":{},"body":{"injectables/Logger.html":{}}}],["info(text",{"_index":5487,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["info.dto.ts",{"_index":17948,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{}}}],["info.interface.ts",{"_index":11743,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["info.mapper",{"_index":14681,"title":{},"body":{"classes/NewsMapper.html":{}}}],["info.mapper.ts",{"_index":17567,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.mapper.ts:5",{"_index":17569,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.reponse.ts",{"_index":17950,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:13",{"_index":17954,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:16",{"_index":17953,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:20",{"_index":17952,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:5",{"_index":17951,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.response",{"_index":14652,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{}}}],["info.response.ts",{"_index":2254,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:11",{"_index":21062,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:13",{"_index":17575,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:14",{"_index":20195,"title":{},"body":{"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:18",{"_index":17576,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:19",{"_index":20194,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["info.response.ts:24",{"_index":20196,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["info.response.ts:3",{"_index":17574,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.ts",{"_index":11367,"title":{},"body":{"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{},"classes/VideoConferenceInfo.html":{}}}],["info.ts:6",{"_index":21051,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["info.uc.ts",{"_index":21064,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:12",{"_index":21066,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:19",{"_index":21068,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:68",{"_index":21070,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["infodto",{"_index":21024,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["infodto.state",{"_index":21026,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["inform",{"_index":21931,"title":{},"body":{"license.html":{}}}],["information",{"_index":1510,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/BBBService.html":{},"classes/ConsentRequestBody.html":{},"classes/ErrorResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["informationen",{"_index":4782,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["infra",{"_index":14418,"title":{},"body":{"modules/ManagementModule.html":{}}}],["infrastructure",{"_index":22566,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["infrastucture",{"_index":17829,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["infringe",{"_index":22055,"title":{},"body":{"license.html":{}}}],["infringed",{"_index":22083,"title":{},"body":{"license.html":{}}}],["infringement",{"_index":21744,"title":{},"body":{"license.html":{}}}],["inherit",{"_index":2505,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritance",{"_index":23022,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritances",{"_index":14752,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["inherited",{"_index":596,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardRepo.html":{},"classes/BruteForceError.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ConsentRequestBody.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMetadataListResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CustomParameterFactory.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"classes/FileElementContentBody.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"injectables/FilesRepo.html":{},"classes/ForbiddenOperationError.html":{},"classes/Group.html":{},"injectables/HydraAdapter.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapConnectionError.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"classes/LoginRequestBody.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContentBody.html":{},"injectables/RoleRepo.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolYearRepo.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionRepo.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["init",{"_index":3866,"title":{},"body":{"classes/Builder.html":{}}}],["initauth",{"_index":11003,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initauth(oauthconfig",{"_index":11014,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initialdelay",{"_index":13304,"title":{},"body":{"injectables/LdapService.html":{}}}],["initialized",{"_index":16475,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["initializes3clientmap",{"_index":7800,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["initiate",{"_index":22078,"title":{},"body":{"license.html":{}}}],["initresponse",{"_index":10940,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["initresponse.config",{"_index":10976,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["inject",{"_index":839,"title":{},"body":{"modules/AccountModule.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BBBService.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/DashboardUc.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"injectables/ErrorLogger.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/InterceptorModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/MongoMemoryDatabaseModule.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/PreviewService.html":{},"modules/RedisModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/VideoConferenceService.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["inject('antivirus_service_options",{"_index":1447,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["inject('dashboard_repo",{"_index":7630,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["inject('icollaborativestoragestrategy",{"_index":4519,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["inject('mail_service_options",{"_index":14403,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["inject('rocket_chat_options",{"_index":1321,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["inject(bbbsettings",{"_index":2336,"title":{},"body":{"injectables/BBBService.html":{}}}],["inject(cache_manager",{"_index":12733,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["inject(defaultencryptionservice",{"_index":9113,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["inject(files_storage_s3_connection",{"_index":16165,"title":{},"body":{"injectables/PreviewService.html":{}}}],["inject(forwardref",{"_index":3129,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["inject(fwu_content_s3_connection",{"_index":10441,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["inject(keycloakconfigurationinputfiles",{"_index":13222,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inject(keycloaksettings",{"_index":12790,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["inject(ldapencryptionservice",{"_index":11120,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["inject(redis_client",{"_index":17824,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["inject(s3_client",{"_index":17121,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(s3_config",{"_index":17122,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(toolfeatures",{"_index":8582,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["inject(videoconferencesettings",{"_index":21257,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["inject(your_s3_uniq_connection_token",{"_index":23147,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injectable",{"_index":105,"title":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"injectables/IdTokenService.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IRepoLoader.html":{},"injectables/IdTokenService.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injectables",{"_index":107,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"injectables/IdTokenService.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["injected",{"_index":9420,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["injectenvvars",{"_index":21562,"title":{},"body":{"miscellaneous/functions.html":{}}}],["injectenvvars(json",{"_index":11253,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["injecting",{"_index":23139,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injection",{"_index":13420,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["injections",{"_index":23100,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inline",{"_index":1567,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["inlineattachment",{"_index":1566,"title":{"interfaces/InlineAttachment.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["inmaintenancesince",{"_index":11692,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["inner",{"_index":5227,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["innerpermissions",{"_index":11678,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerrole.resolvepermissions",{"_index":11679,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles",{"_index":11675,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles.foreach((innerrole",{"_index":11677,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["input",{"_index":2309,"title":{},"body":{"injectables/BBBService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IParentInfo.html":{},"modules/InterceptorModule.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/RichText.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/ServerConsole.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["input.accesstoken",{"_index":17252,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.dto.ts",{"_index":15362,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:4",{"_index":15364,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:6",{"_index":15365,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:8",{"_index":15363,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.mapper",{"_index":16337,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["input.mapper.ts",{"_index":16361,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.mapper.ts:6",{"_index":16364,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.system",{"_index":12650,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.provisioningurl",{"_index":17251,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.systemid",{"_index":12636,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["inputdto",{"_index":16345,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["inputfiles",{"_index":13211,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inputformat",{"_index":3242,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"miscellaneous/functions.html":{}}}],["inputformat(value",{"_index":16744,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["inputformat.rich_text_ck4",{"_index":11975,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskMapper.html":{},"classes/TaskWithStatusVo.html":{}}}],["inputformat.rich_text_ck5",{"_index":3523,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"classes/TaskMapper.html":{}}}],["inputpath",{"_index":1763,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputpath.charat(pos",{"_index":1760,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputroles",{"_index":16114,"title":{},"body":{"injectables/PermissionService.html":{}}}],["insensitive",{"_index":12527,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["insertedcount",{"_index":7752,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["inside",{"_index":3873,"title":{},"body":{"classes/BusinessError.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["inspect",{"_index":22972,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["inspired",{"_index":22860,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["install",{"_index":21794,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["installation",{"_index":21958,"title":{},"body":{"license.html":{}}}],["installed",{"_index":21975,"title":{},"body":{"license.html":{}}}],["instance",{"_index":5121,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileElementResponseMapper.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LegacyLogger.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instanceof",{"_index":806,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"injectables/AuthorizationHelper.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/FilesStorageClientMapper.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRule.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"injectables/NewsRepo.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/PseudonymService.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instances",{"_index":21596,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instant",{"_index":6419,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["instead",{"_index":2478,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"modules/BoardModule.html":{},"entities/CourseGroup.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionItemUc.html":{},"injectables/TaskUC.html":{},"modules/ToolModule.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instructions",{"_index":22573,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["instructor",{"_index":6962,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["intact",{"_index":21861,"title":{},"body":{"license.html":{}}}],["integration",{"_index":10787,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["intend",{"_index":11283,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["intended",{"_index":4166,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["intendeduse",{"_index":5009,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["intention",{"_index":21854,"title":{},"body":{"license.html":{}}}],["interact",{"_index":22228,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["interacting",{"_index":22155,"title":{},"body":{"license.html":{}}}],["interaction",{"_index":21759,"title":{},"body":{"license.html":{}}}],["interactions",{"_index":22505,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interactive",{"_index":21762,"title":{},"body":{"license.html":{}}}],["intercept",{"_index":8014,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["intercept(context",{"_index":8016,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["interceptor",{"_index":6339,"title":{},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["interceptormodule",{"_index":6322,"title":{"modules/InterceptorModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"modules.html":{}}}],["interchange",{"_index":21903,"title":{},"body":{"license.html":{}}}],["interest",{"_index":22071,"title":{},"body":{"license.html":{}}}],["interface",{"_index":334,"title":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"interfaces/AppendedAttachment.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"interfaces/BaseResponseMapper.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardDoBuilder.html":{},"interfaces/BoardExternalReference.html":{},"interfaces/BoardNodeProps.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"interfaces/ClassProps.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"interfaces/ContextExternalToolProps.html":{},"interfaces/CopyFiles.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/ExternalToolSearchQuery.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"interfaces/File.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"interfaces/FileEntityProps.html":{},"interfaces/FilePermissionEntityProps.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/GlobalConstants.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"interfaces/IdToken.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"interfaces/Loggable.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/MailModuleOptions.html":{},"interfaces/MailServiceOptions.html":{},"interfaces/Meta.html":{},"interfaces/NewsTargetFilter.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"interfaces/RejectRequestBody.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"interfaces/ShareTokenInfoDto.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"interfaces/SuccessfulRes.html":{},"interfaces/ToolVersion.html":{},"interfaces/UserAndAccountParams.html":{},"interfaces/UserBoardRoles.html":{},"interfaces/UserLoginMigrationQuery.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"interfaces/BaseResponseMapper.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardDoBuilder.html":{},"interfaces/BoardExternalReference.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"modules/CacheWrapperModule.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"interfaces/ClassProps.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/CommonToolService.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/CopyFileParams.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardRepo.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DomainObject.html":{},"classes/DownloadFileParams.html":{},"classes/ErrorUtils.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"interfaces/File.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConfig.html":{},"injectables/LdapStrategy.html":{},"entities/LessonEntity.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"controllers/LoginController.html":{},"entities/LtiTool.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"entities/Material.html":{},"interfaces/Meta.html":{},"entities/News.html":{},"interfaces/NewsTargetFilter.html":{},"interfaces/NextcloudGroups.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthConfig.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameFileParams.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleReference.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/SingleFileParams.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"interfaces/SuccessfulRes.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/ToolVersion.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["interface/cache",{"_index":3899,"title":{},"body":{"injectables/CacheService.html":{}}}],["interface/calendar",{"_index":3970,"title":{},"body":{"injectables/CalendarService.html":{}}}],["interface/json",{"_index":13219,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["interface/jwt",{"_index":1820,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LoginUc.html":{}}}],["interface/keycloak",{"_index":12748,"title":{},"body":{"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["interface/learnroom",{"_index":11961,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["interface/oauth",{"_index":1607,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["interface/oidc",{"_index":16289,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["interface/page",{"_index":16042,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["interface/preview",{"_index":9711,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["interface/redis.constants",{"_index":16598,"title":{},"body":{"modules/RedisModule.html":{}}}],["interface/sso",{"_index":2007,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["interfaces",{"_index":336,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"interfaces/AppendedAttachment.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"interfaces/BaseResponseMapper.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardDoBuilder.html":{},"interfaces/BoardExternalReference.html":{},"interfaces/BoardNodeProps.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"interfaces/ClassProps.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/CopyFileDto.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"injectables/ErrorLogger.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/ExternalToolSearchQuery.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"interfaces/File.html":{},"classes/FileDto-1.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"interfaces/FilePermissionEntityProps.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/GlobalConstants.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"interfaces/IdToken.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/LegacyLogger.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/MailModuleOptions.html":{},"interfaces/MailServiceOptions.html":{},"interfaces/Meta.html":{},"interfaces/NewsTargetFilter.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"interfaces/RejectRequestBody.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"interfaces/ShareTokenInfoDto.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"interfaces/SuccessfulRes.html":{},"interfaces/ToolVersion.html":{},"interfaces/UserAndAccountParams.html":{},"interfaces/UserBoardRoles.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["interfaces/copy",{"_index":6180,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{}}}],["interfaces/legacy",{"_index":13415,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["interfered",{"_index":21964,"title":{},"body":{"license.html":{}}}],["internal",{"_index":769,"title":{},"body":{"injectables/AccountLookupService.html":{},"entities/CourseNews.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserUrlParams.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["internal_server_error_exception",{"_index":12132,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["internalaxiosrequestconfig",{"_index":2067,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["internalid",{"_index":1184,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["internally",{"_index":17124,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["internalmeetingid",{"_index":2203,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["internalrepo",{"_index":22516,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["internalservererrorexception",{"_index":1439,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BBBService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/CalendarService.html":{},"injectables/ClassService.html":{},"entities/Course.html":{},"injectables/CourseCopyUC.html":{},"injectables/DashboardModelMapper.html":{},"classes/ErrorMapper.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalErrorFilter.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/OAuthSSOError.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"entities/Submission.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskWithStatusVo.html":{},"injectables/ToolLaunchService.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["internalservererrorexception('cannot",{"_index":3565,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/UserLoginMigrationService.html":{}}}],["internalservererrorexception('copy",{"_index":6588,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["internalservererrorexception('courses",{"_index":6459,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["internalservererrorexception('feature",{"_index":10401,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["internalservererrorexception('import",{"_index":18100,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["internalservererrorexception('lessons",{"_index":11339,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["internalservererrorexception('multiple_matches_are_not_allowed",{"_index":17081,"title":{},"body":{"injectables/RuleManager.html":{}}}],["internalservererrorexception('provisioning",{"_index":16350,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["internalservererrorexception('s3clientadapter:copy",{"_index":17166,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:create",{"_index":17145,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:delete",{"_index":17154,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:get",{"_index":17139,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:restore",{"_index":17159,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('submissions",{"_index":11993,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('task.finished",{"_index":11997,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('tool",{"_index":15613,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception('unknown",{"_index":7549,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["internalservererrorexception('user",{"_index":4405,"title":{},"body":{"injectables/ClassService.html":{},"injectables/PseudonymService.html":{}}}],["internalservererrorexception(`${bbbresp.response.messagekey",{"_index":2355,"title":{},"body":{"injectables/BBBService.html":{}}}],["internalservererrorexception(`cannot",{"_index":15611,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception(`multiple",{"_index":13552,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["internalservererrorexception(`redirect",{"_index":10982,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["internalservererrorexception(errorobj.message",{"_index":8211,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["internalservererrorexception(null",{"_index":1460,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BBBService.html":{},"classes/ErrorMapper.html":{}}}],["internalservererrorexception(oauthclientid",{"_index":11070,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["internalservererrorexception})@apiresponse({status",{"_index":17886,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@get('/:contentid/edit",{"_index":10782,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get('/:contentid/play",{"_index":10784,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get(':token",{"_index":17892,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@post",{"_index":17878,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservice",{"_index":22517,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interpretation",{"_index":22203,"title":{},"body":{"license.html":{}}}],["interpreter",{"_index":21793,"title":{},"body":{"license.html":{}}}],["intimate",{"_index":21801,"title":{},"body":{"license.html":{}}}],["introduce",{"_index":9421,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["introduced",{"_index":22612,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["introducing",{"_index":22309,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["introduction",{"_index":22248,"title":{},"body":{"todo.html":{}}}],["introspectoauth2token",{"_index":10833,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["introspectoauth2token(token",{"_index":10861,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["introspectresponse",{"_index":10884,"title":{"interfaces/IntrospectResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"interfaces/IntrospectResponse.html":{},"classes/OauthProviderService.html":{}}}],["inusermigration",{"_index":11693,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["invalid",{"_index":504,"title":{},"body":{"controllers/AccountController.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ICollectionFilePath.html":{},"controllers/LoginController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["invalid_origin_for_logout_url",{"_index":12588,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["invalid_request",{"_index":5396,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["invalidate",{"_index":21880,"title":{},"body":{"license.html":{}}}],["invalidoriginforlogouturlloggableexception",{"_index":12583,"title":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/VideoConferenceController.html":{}}}],["invalidoriginforlogouturlloggableexception(params.logouturl",{"_index":20914,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["inversion",{"_index":22459,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["invitationlink",{"_index":4229,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["inviteusertogroup(groupname",{"_index":1346,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["ip",{"_index":22971,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipaddress",{"_index":22974,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipagination",{"_index":8783,"title":{"interfaces/IPagination.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{}}}],["iparentinfo",{"_index":9733,"title":{"interfaces/IParentInfo.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iprimarykey",{"_index":10249,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["irelatedresourceproperties",{"_index":11545,"title":{"interfaces/IRelatedResourceProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["irepoloader",{"_index":11631,"title":{"interfaces/IRepoLoader.html":{}},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["iresolveduser",{"_index":11384,"title":{"interfaces/IResolvedUser.html":{}},"body":{"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/ResolvedUserResponse.html":{}}}],["iretryoptions",{"_index":11576,"title":{"interfaces/IRetryOptions.html":{}},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["irole",{"_index":11383,"title":{"interfaces/IRole.html":{}},"body":{"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/ResolvedUserResponse.html":{}}}],["iroleproperties",{"_index":11669,"title":{"interfaces/IRoleProperties.html":{}},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["irrevocable",{"_index":21807,"title":{},"body":{"license.html":{}}}],["isactive",{"_index":7968,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isallowedaschild",{"_index":2797,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["isallowedaschild(child",{"_index":18281,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isallowedaschild(domainobject",{"_index":2814,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["isanycontentelement",{"_index":5545,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isanycontentelement(element",{"_index":5549,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isapplicable",{"_index":3352,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"interfaces/Rule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["isapplicable(user",{"_index":3356,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"interfaces/Rule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["isarchived",{"_index":8004,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["isarray",{"_index":5418,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FilterImportUserParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["isarray()@apiproperty",{"_index":15179,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isarray()@ismongoid({each",{"_index":16096,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["isarray()@isoptional()@isstring({each",{"_index":5433,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{}}}],["isarray()@isstring({each",{"_index":5376,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["isatleastpartialsuccessfull",{"_index":6255,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isatleastpartialsuccessfull(status",{"_index":6265,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isauthenticated",{"_index":23132,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["isauthenticationresponse",{"_index":1772,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthenticationresponse(body",{"_index":1771,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthorizedstudent",{"_index":18345,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["isauthorizedstudent(userid",{"_index":18352,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["isautoparameterglobal",{"_index":8639,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isautoparameterglobal(customparameter",{"_index":8651,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isbbbguest",{"_index":21298,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["isblocked",{"_index":9770,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isboolean",{"_index":373,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/ConsentRequestBody.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/LoginRequestBody.html":{},"classes/MigrationBody.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SingleFileParams.html":{},"classes/SystemFilterParams.html":{},"classes/TeamPermissionsBody.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/VideoConferenceCreateParams.html":{},"miscellaneous/functions.html":{}}}],["isboolean()@apiproperty",{"_index":7186,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/TeamPermissionsBody.html":{},"classes/UserLoginMigrationMandatoryParams.html":{}}}],["isboolean()@apiproperty({description",{"_index":6925,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["isboolean()@isoptional()@apiproperty({description",{"_index":5380,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/MigrationBody.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":365,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["isbreakout",{"_index":2259,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["isbusinesserror",{"_index":8231,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isbusinesserror(error",{"_index":8237,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["ischoolexternaltoolproperties",{"_index":11682,"title":{"interfaces/ISchoolExternalToolProperties.html":{}},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["ischoolproperties",{"_index":11690,"title":{"interfaces/ISchoolProperties.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ischoolyearproperties",{"_index":11735,"title":{"interfaces/ISchoolYearProperties.html":{}},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["isclientidunique",{"_index":9230,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["isclientidunique(externaltool",{"_index":9235,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["iscolumnboardfeatureflagactive",{"_index":7918,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["iscopeinfo",{"_index":11741,"title":{"interfaces/IScopeInfo.html":{}},"body":{"interfaces/IScopeInfo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["iscopyfrom",{"_index":9695,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iscoursefinished",{"_index":12013,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["iscreator",{"_index":16946,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["iscustomparameternameempty",{"_index":8640,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["iscustomparameternameempty(param",{"_index":8653,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdate",{"_index":999,"title":{},"body":{"classes/AccountSaveDto.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{}}}],["isdate()@apiproperty",{"_index":18214,"title":{},"body":{"classes/SubmissionContainerContentBody.html":{}}}],["isdate()@isoptional()@apipropertyoptional({description",{"_index":6905,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isdefaultvalueofvalidregex",{"_index":8641,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidregex(param",{"_index":8655,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype",{"_index":8642,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype(param",{"_index":8657,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdirectory",{"_index":9563,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["isdraft",{"_index":3738,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskScope.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["isemail",{"_index":473,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"injectables/AccountService.html":{},"classes/PatchMyAccountParams.html":{}}}],["isemail()@isoptional()@apiproperty({description",{"_index":16080,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["isemail(dto.username",{"_index":1115,"title":{},"body":{"injectables/AccountService.html":{}}}],["isemptyqueryallowed",{"_index":5898,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["isenabled",{"_index":16208,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["isenum",{"_index":1044,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CustomParameterPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PageContentQueryParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/ScanResultParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SystemFilterParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["isenum(accountsearchtype",{"_index":1045,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["isenum(accountsearchtype)@apiproperty({description",{"_index":1030,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["isenum(contentelementtype",{"_index":6850,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["isenum(contentelementtype)@apiproperty({description",{"_index":6858,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isenum(customparameterlocationparams",{"_index":7201,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterlocationparams)@apiproperty",{"_index":7189,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams",{"_index":7200,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams)@apiproperty",{"_index":7195,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams",{"_index":7202,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams)@apiproperty",{"_index":7198,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(externaltoolsortby",{"_index":18136,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isenum(filerecordparenttype",{"_index":6125,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["isenum(filtermatchtype",{"_index":10352,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(filterroletype",{"_index":10353,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(importusersortorder",{"_index":18139,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isenum(inputformat",{"_index":8033,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["isenum(inputformat)@apiproperty",{"_index":16727,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["isenum(languagetype",{"_index":4224,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["isenum(ltimessagetype",{"_index":14198,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltimessagetype)@apiproperty",{"_index":14191,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission",{"_index":14199,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission)@apiproperty",{"_index":14193,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(newstargetmodel",{"_index":6920,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["isenum(newstargetmodel)@apiproperty({enum",{"_index":6913,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isenum(pagetypes",{"_index":16043,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["isenum(previewoutputmimetypes",{"_index":6140,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["isenum(previewwidth",{"_index":6142,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["isenum(sharetokenparenttype",{"_index":17864,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sharetokenparenttype)@apiproperty({description",{"_index":17859,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sortorder",{"_index":18144,"title":{},"body":{"classes/SortingParams.html":{}}}],["isenum(ssoauthenticationerror",{"_index":2010,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isenum(subjecttypeenum",{"_index":15274,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(subjecttypeenum)@isoptional()@apiproperty({description",{"_index":15260,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(systemtypeenum",{"_index":18605,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["isenum(tokenauthmethod",{"_index":15273,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenauthmethod)@isoptional()@apiproperty({description",{"_index":15265,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenendpointauthmethod",{"_index":15185,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(tokenendpointauthmethod)@apiproperty",{"_index":15183,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype",{"_index":2632,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype)@apiproperty",{"_index":2629,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolcontexttype",{"_index":5671,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{}}}],["isenum(toolcontexttype)@apiproperty",{"_index":5727,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({nullable",{"_index":5668,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({type",{"_index":6013,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["isenum(videoconferencescope",{"_index":21209,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["iserv",{"_index":1136,"title":{},"body":{"injectables/AccountService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{}}}],["iserverconfig",{"_index":804,"title":{"interfaces/IServerConfig.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AuthenticationService.html":{},"interfaces/IServerConfig.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["iservlogouturl",{"_index":15112,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('id_token_hint",{"_index":15114,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('post_logout_redirect_uri",{"_index":15115,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.tostring",{"_index":15117,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservmapper",{"_index":12593,"title":{"classes/IservMapper.html":{}},"body":{"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternalschooldto(ldapschool",{"_index":12648,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternaluserdto(ldapuser",{"_index":12646,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservprovisioningstrategy",{"_index":12610,"title":{"injectables/IservProvisioningStrategy.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["iservstrategy",{"_index":16320,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["isession",{"_index":15383,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["isexpert",{"_index":21260,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["isfeatherserror",{"_index":8232,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfeatherserror(error",{"_index":8239,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfinished",{"_index":3739,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{}}}],["isfinishedforuser",{"_index":12015,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isfinishedforuser(user",{"_index":12007,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isflagged",{"_index":12518,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isflagged(flagged",{"_index":12537,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isfulfilled",{"_index":21499,"title":{},"body":{"miscellaneous/functions.html":{}}}],["isfulfilled(input",{"_index":21567,"title":{},"body":{"miscellaneous/functions.html":{}}}],["isglobal",{"_index":8708,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid",{"_index":8643,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid(customparameter",{"_index":8659,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isgraceperiodexpired",{"_index":4446,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraceperiodexpired(userloginmigration",{"_index":4454,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraded",{"_index":11839,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isgradedforuser",{"_index":11842,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isgradedforuser(user",{"_index":11840,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isgroup",{"_index":7313,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["isguest",{"_index":21074,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["isharetokenproperties",{"_index":11764,"title":{"interfaces/IShareTokenProperties.html":{}},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{}}}],["ishidden",{"_index":6991,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/LessonScope.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ishydra",{"_index":11039,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["isinstancealive",{"_index":10834,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["isinstanceofloggable",{"_index":14066,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isinstanceofloggable(object",{"_index":14071,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isint",{"_index":5419,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isint()@isoptional()@apiproperty({description",{"_index":5387,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["isint()@isoptional()@ispositive()@apiproperty({description",{"_index":17854,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isint()@min(0)@apipropertyoptional({description",{"_index":1040,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["isint()@min(1)@max(100)@apipropertyoptional({description",{"_index":1034,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["islatest",{"_index":5287,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islatest(tool1",{"_index":5291,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islesson",{"_index":3023,"title":{},"body":{"injectables/BoardCopyService.html":{},"miscellaneous/functions.html":{}}}],["islesson(element.target",{"_index":3056,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(reference",{"_index":11358,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"miscellaneous/functions.html":{}}}],["islisteningonly",{"_index":2273,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["islocal",{"_index":6981,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"injectables/HydraSsoService.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{}}}],["islocale",{"_index":14197,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocale()@apiproperty",{"_index":14189,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islti11config",{"_index":8321,"title":{},"body":{"classes/ExternalTool.html":{}}}],["islti11config(config",{"_index":8332,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["ismandatory",{"_index":17583,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ismarked",{"_index":9898,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["ismarkedfordeletion",{"_index":9626,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ismatched",{"_index":3360,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ismember",{"_index":11821,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["ismongoid",{"_index":1000,"title":{},"body":{"classes/AccountSaveDto.html":{},"classes/BoardUrlParams.html":{},"classes/CardIdsParams.html":{},"classes/CardUrlParams.html":{},"classes/ColumnUrlParams.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseUrlParams.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardUrlParams.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/NewsUrlParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/PageContentQueryParams.html":{},"classes/PatchOrderParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["ismongoid()@apiproperty",{"_index":5711,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{},"classes/SystemIdParams-1.html":{},"classes/TeamRoleDto.html":{}}}],["ismongoid()@apiproperty({description",{"_index":3834,"title":{},"body":{"classes/BoardUrlParams.html":{},"classes/CardUrlParams.html":{},"classes/ColumnUrlParams.html":{},"classes/ContentElementUrlParams.html":{},"classes/CourseUrlParams.html":{},"classes/DashboardUrlParams.html":{},"classes/ImportUserUrlParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/MoveColumnBodyParams.html":{},"classes/NewsUrlParams.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SchoolParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"classes/SystemIdParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{}}}],["ismongoid()@apiproperty({nullable",{"_index":5708,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["ismongoid()@apiproperty({pattern",{"_index":6910,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/ImportUserResponse.html":{}}}],["ismongoid()@apiproperty({required",{"_index":14561,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["ismongoid({each",{"_index":4081,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["isnameunique",{"_index":8644,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnameunique(externaltool",{"_index":8661,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnan",{"_index":5334,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnan(number(val",{"_index":5332,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnesthttpexception",{"_index":8233,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnesthttpexception(error",{"_index":8242,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnextcloud",{"_index":15593,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool",{"_index":15577,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool(tool",{"_index":15582,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnotcontained",{"_index":2740,"title":{},"body":{"entities/Board.html":{}}}],["isnotempty",{"_index":1001,"title":{},"body":{"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CustomParameterPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isnotemptystring",{"_index":18196,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnotemptystring(value",{"_index":18197,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnumber",{"_index":3436,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["isnumber()@isoptional()@apiproperty({description",{"_index":5414,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["isnumber()@min(0)@apiproperty",{"_index":3433,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@apiproperty({required",{"_index":14563,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty",{"_index":3430,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty({description",{"_index":13983,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isnumber()@min(0)@isoptional()@apipropertyoptional({description",{"_index":14577,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@max(500)@isoptional()@apiproperty({description",{"_index":13979,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isoauth2config",{"_index":8322,"title":{},"body":{"classes/ExternalTool.html":{}}}],["isoauth2config(config",{"_index":8334,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["isoauthconfigavailable",{"_index":12196,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["isoauthprovisioningenabledforschool",{"_index":15040,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15062,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isolate",{"_index":23014,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["isolated",{"_index":22776,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isolation",{"_index":22712,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isopen",{"_index":6602,"title":{},"body":{"classes/CourseFactory.html":{}}}],["isoptional",{"_index":471,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/BoardLessonResponse.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PatchMyAccountParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/SystemFilterParams.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["isoptional()@apiproperty",{"_index":5440,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@apiproperty({description",{"_index":5431,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@isboolean",{"_index":600,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@isboolean()@apiproperty",{"_index":17197,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isboolean()@apiproperty({description",{"_index":458,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":10362,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/PreviewParams.html":{}}}],["isoptional()@isdate",{"_index":604,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@isdate()@apipropertyoptional({description",{"_index":19962,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isenum(externaltoolsortby)@apipropertyoptional({enum",{"_index":18132,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isoptional()@isenum(filterroletype)@apipropertyoptional({enum",{"_index":10346,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isenum(importusersortorder)@apipropertyoptional({enum",{"_index":18138,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isoptional()@isenum(sortorder)@apipropertyoptional({enum",{"_index":18134,"title":{},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["isoptional()@isenum(ssoauthenticationerror",{"_index":2002,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isint()@min(0)@apipropertyoptional({description",{"_index":6855,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isoptional()@ismongoid",{"_index":610,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@ismongoid()@apipropertyoptional({pattern",{"_index":10357,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["isoptional()@isstring",{"_index":602,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@apiproperty",{"_index":17199,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isstring()@apiproperty({description",{"_index":17942,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["isoptional()@isstring()@isemail()@apiproperty({description",{"_index":465,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isstring()@isenum(newstargetmodel)@apipropertyoptional({enum",{"_index":10360,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["isoptional()@isstring()@isnotempty",{"_index":1999,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@isnotempty()@apipropertyoptional({type",{"_index":10332,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isstring()@sanitizehtml()@apipropertyoptional({description",{"_index":19964,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isstring()@sanitizehtml(inputformat.rich_text)@apipropertyoptional({description",{"_index":19960,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoutdated",{"_index":17644,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserScope.html":{}}}],["isoutdated(isoutdated",{"_index":20741,"title":{},"body":{"classes/UserScope.html":{}}}],["isoutdated(query.isoutdated",{"_index":20089,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["isowner",{"_index":20736,"title":{},"body":{"injectables/UserRule.html":{}}}],["ispending",{"_index":9778,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isplanned",{"_index":12017,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{}}}],["ispositive",{"_index":17842,"title":{},"body":{"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["ispositive()@apiproperty({required",{"_index":17840,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["ispossible",{"_index":17584,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ispresenter",{"_index":2272,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["ispropertyprivacyprotected",{"_index":8129,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["ispropertyprivacyprotected(target",{"_index":8141,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["isprotecteduser",{"_index":20793,"title":{},"body":{"injectables/UserService.html":{}}}],["ispublished",{"_index":12016,"title":{},"body":{"interfaces/ITaskParent.html":{},"injectables/NewsUc.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["isregexcommentmandatoryandfilled",{"_index":8645,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexcommentmandatoryandfilled(customparameter",{"_index":8663,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid",{"_index":8646,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid(param",{"_index":8665,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["iss",{"_index":6864,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["issatisfiedby(t",{"_index":22680,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["isschoolnumberunique",{"_index":17683,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isschoolnumberunique(school",{"_index":17685,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isslash",{"_index":1759,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isslash(inputpath",{"_index":1757,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isstring",{"_index":470,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchQueryParams.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/ChallengeParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseQueryParams.html":{},"classes/CreateNewsParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/IdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PreviewParams.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleFileParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UserLoginMigrationSearchParams.html":{},"miscellaneous/functions.html":{}}}],["isstring()@apiproperty",{"_index":2627,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/RichTextContentBody.html":{}}}],["isstring()@apiproperty({description",{"_index":479,"title":{},"body":{"classes/AccountByIdParams.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ChallengeParams.html":{},"classes/IdParams.html":{},"classes/ImportUserResponse.html":{},"classes/PatchMyAccountParams.html":{},"classes/RevokeConsentParams.html":{},"classes/ShareTokenUrlParams.html":{}}}],["isstring()@apiproperty({required",{"_index":16609,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["isstring()@ismongoid()@isoptional()@apipropertyoptional({description",{"_index":18881,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@isnotempty",{"_index":614,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{}}}],["isstring()@isnotempty()@apiproperty",{"_index":7184,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{}}}],["isstring()@isoptional()@apiproperty({description",{"_index":5394,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/PatchMyAccountParams.html":{}}}],["isstring()@isoptional()@apipropertyoptional",{"_index":5729,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isstring()@isoptional()@sanitizehtml(inputformat.rich_text_ck5)@apipropertyoptional({description",{"_index":18883,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@matches(undefined)@apiproperty({description",{"_index":6764,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["isstring()@sanitizehtml()@apiproperty({description",{"_index":6916,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/PatchGroupParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@sanitizehtml(inputformat.rich_text)@apiproperty({description",{"_index":6903,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isstring(value",{"_index":18199,"title":{},"body":{"classes/StringValidator.html":{}}}],["isstudent",{"_index":6788,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["issubmitted",{"_index":11819,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["issubmittedforuser",{"_index":11824,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["issubmittedforuser(user",{"_index":11820,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["issubstitutionteacher",{"_index":3740,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"entities/Course.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["issuer",{"_index":1691,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["issues",{"_index":22399,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["istanbul",{"_index":3058,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/S3ClientAdapter.html":{},"classes/ShareTokenFactory.html":{}}}],["istask",{"_index":3024,"title":{},"body":{"injectables/BoardCopyService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["istask(element.target",{"_index":3052,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["istask(reference",{"_index":12065,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{}}}],["isteacher",{"_index":6789,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isteamuser",{"_index":19324,"title":{},"body":{"injectables/TeamRule.html":{}}}],["istemplate",{"_index":6980,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["istoolstatuslatestorthrow",{"_index":19789,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istoolstatuslatestorthrow(userid",{"_index":19796,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istorageproviderproperties",{"_index":11775,"title":{"interfaces/IStorageProviderProperties.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["isubmissionproperties",{"_index":11788,"title":{"interfaces/ISubmissionProperties.html":{}},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{}}}],["isuniqueemail",{"_index":1223,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemail(email",{"_index":1227,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount",{"_index":1224,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount(email",{"_index":1229,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser",{"_index":1225,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser(email",{"_index":1231,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isurl",{"_index":20940,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["isuserinfinisheduser",{"_index":12010,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isuserreferenced",{"_index":1896,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isuserreferenced(user",{"_index":1907,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isusersubmitter(user",{"_index":11836,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isusersubstitutionteacher(user",{"_index":6455,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["isusersubstitutionteacherincourse(user",{"_index":12039,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isvalid",{"_index":3264,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["isvaluevalidfortype",{"_index":5310,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isvaluevalidfortype(type",{"_index":5327,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isverified",{"_index":9779,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isvideoconferencefeatureenabled",{"_index":21223,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["isvisible",{"_index":13923,"title":{},"body":{"injectables/LessonRule.html":{}}}],["iswhitelisted",{"_index":12713,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["iswhitelisted(accountid",{"_index":12720,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["isystemproperties",{"_index":11843,"title":{"interfaces/ISystemProperties.html":{}},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{}}}],["it's",{"_index":22745,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["it(\"should",{"_index":22711,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('bad",{"_index":22749,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('good",{"_index":22751,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('should",{"_index":22812,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["itargetgroupproperties",{"_index":11546,"title":{"interfaces/ITargetGroupProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["itask",{"_index":11949,"title":{"interfaces/ITask.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{}}}],["itaskcreate",{"_index":11953,"title":{"interfaces/ITaskCreate.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{}}}],["itaskparent",{"_index":6408,"title":{"interfaces/ITaskParent.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["itaskproperties",{"_index":11954,"title":{"interfaces/ITaskProperties.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{}}}],["itaskstatus",{"_index":3733,"title":{"interfaces/ITaskStatus.html":{}},"body":{"classes/BoardTaskStatusMapper.html":{},"classes/DtoCreator.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/Task.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{}}}],["itaskupdate",{"_index":11952,"title":{"interfaces/ITaskUpdate.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{}}}],["iteamproperties",{"_index":12066,"title":{"interfaces/ITeamProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{}}}],["iteamuserproperties",{"_index":12071,"title":{"interfaces/ITeamUserProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["item",{"_index":3187,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"controllers/BoardSubmissionController.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"injectables/LessonCopyService.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["item.'})@apiresponse({status",{"_index":3696,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item.body.params.ts",{"_index":6924,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.body.params.ts:10",{"_index":6928,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.columnboardid",{"_index":4848,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["item.component",{"_index":13772,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["item.content",{"_index":13773,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["item.content.text",{"_index":13774,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["item.do",{"_index":2883,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"injectables/SubmissionItemFactory.html":{}}}],["item.do.ts",{"_index":18279,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["item.do.ts:10",{"_index":18285,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:14",{"_index":18286,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:18",{"_index":18288,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:6",{"_index":18283,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.factory.ts",{"_index":18298,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.factory.ts:7",{"_index":18299,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.name.tolocalelowercase",{"_index":8699,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["item.response.ts",{"_index":18308,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:14",{"_index":18312,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:17",{"_index":18313,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:20",{"_index":18311,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:23",{"_index":18315,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:5",{"_index":18310,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.service",{"_index":8091,"title":{},"body":{"injectables/ElementUc.html":{}}}],["item.service.ts",{"_index":18330,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:11",{"_index":18331,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:14",{"_index":18333,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:24",{"_index":18332,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:44",{"_index":18335,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.split(';')[0",{"_index":11061,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["item.uc",{"_index":2772,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["item.uc.ts",{"_index":18342,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:21",{"_index":18349,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:42",{"_index":18356,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:59",{"_index":18353,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:75",{"_index":18351,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:87",{"_index":18347,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:9",{"_index":18346,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.url.params.ts",{"_index":18374,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.url.params.ts:11",{"_index":18375,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.userid",{"_index":18364,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item/create",{"_index":6923,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{}}}],["item/submission",{"_index":18234,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["item/update",{"_index":19966,"title":{},"body":{"classes/UpdateSubmissionItemBodyParams.html":{}}}],["itemindex",{"_index":8696,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["items",{"_index":1019,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/CardResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"interfaces/CustomLtiProperty.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/ImportUserListResponse.html":{},"entities/LtiTool.html":{},"classes/NewsListResponse.html":{},"classes/PaginationResponse.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["items.map((item",{"_index":3706,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["itemsperpage",{"_index":10749,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["itoolfeatures",{"_index":8359,"title":{"interfaces/IToolFeatures.html":{}},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/IToolFeatures.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/ToolConfiguration.html":{}}}],["itoollaunchparams",{"_index":155,"title":{"interfaces/IToolLaunchParams.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["itoollaunchstrategy",{"_index":212,"title":{"interfaces/IToolLaunchStrategy.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/ToolLaunchService.html":{}}}],["itself",{"_index":5999,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["iupdatenews",{"_index":11379,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["iuserconfig",{"_index":11748,"title":{"interfaces/IUserConfig.html":{}},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["iuserloginmigration",{"_index":20210,"title":{},"body":{"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["iuserproperties",{"_index":12097,"title":{"interfaces/IUserProperties.html":{}},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"classes/UserFactory.html":{}}}],["ivborw0kggoaaaansuheugaaafqaaadicayaaaaegrpoaaaagxrfwhrtb2z0d2fyzqbbzg9izsbjbwfnzvjlywr5ccllpaaaaynpvfh0we1momnvbs5hzg9izs54bxaaaaaaadw/ehbhy2tldcbizwdpbj0i77u/iibpzd0ivzvnme1wq2voauh6cmvtek5uy3pryzlkij8+idx4onhtcg1ldgegeg1sbnm6ed0iywrvymu6bnm6bwv0ys8iihg6eg1wdgs9ikfkb2jlifhnucbdb3jliduuni1jmtqwidc5lje2mdq1mswgmjaxny8wns8wni0wmtowodoymsagicagicagij4gphjkzjpsreygeg1sbnm6cmrmpsjodhrwoi8vd3d3lnczlm9yzy8xotk5lzaylziylxjkzi1zew50yxgtbnmjij4gphjkzjpezxnjcmlwdglvbibyzgy6ywjvdxq9iiigeg1sbnm6eg1wpsjodhrwoi8vbnmuywrvymuuy29tl3hhcc8xljaviib4bwxuczp4bxbntt0iahr0cdovl25zlmfkb2jllmnvbs94yxavms4wl21tlyigeg1sbnm6c3rszwy9imh0dha6ly9ucy5hzg9izs5jb20vegfwlzeumc9zvhlwzs9szxnvdxjjzvjlzimiihhtcdpdcmvhdg9yvg9vbd0iqwrvymugughvdg9zag9wiendichnywnpbnrvc2gpiib4bxbnttpjbnn0yw5jzulepsj4bxauawlkojq2muq2q0y5rtqxmtexrtdbmtg3qkq2mdvgmufemuiwiib4bxbnttpeb2n1bwvudelepsj4bxauzglkojq2muq2q0zbrtqxmtexrtdbmtg3qkq2mdvgmufemuiwij4gphhtce1nokrlcml2zwrgcm9tihn0umvmomluc3rhbmnlsuq9inhtcc5pawq6ndyxrdzdrjdfndexmtffn0exoddcrdywnuyxquqxqjaiihn0umvmomrvy3vtzw50suq9inhtcc5kawq6ndyxrdzdrjhfndexmtffn0exoddcrdywnuyxquqxqjailz4gpc9yzgy6rgvzy3jpchrpb24+idwvcmrmoljerj4gpc94onhtcg1ldge+idw/ehbhy2tldcblbmq9iniipz45ejsraaalfuleqvr42uzdgxwjoaigyhlvgsiv4cnbu4jtgqeepis4hksepis4blseu4rjcemscmhgzpplkycmago+7z3ezs3tysus+beicfx29lyaaop2hz8baah0aecgawachqaq6aag0aeagq4achqaqkadgeahaaq6acdqaqcbdgachqaq6acaqacabdoachqaqkadaaidabdoacdqaqcbdgaidabaoaoaqacabdoainabaieoaaidabdoaibabwaeogaidabaoamaah0aeogainabaieoaah0aecga4babwaeogag0aeagq4achqaeogageahaaq6acdqaucgawachqaq6acaqacagq4achqaqkadaaidaaq6acdqaqcbdgaidaaq6acaqacabdoainabqkadaaidabdoaibabwcbdgaidabaoamaah0abdoainabgn79109abldxv9flpxblnov/doblfv7+ug77+hfvn39vb29vb78emdpg1faup2idwwvcgm3883ambbas6/yorpp414ujf+w4z+2r/12wdasol6zdl4ufa4fdvgu0gyp/x6styjd0jx8a/03gogn1cvtuyxn3eq4267cv3+t16u2jhz701lfb6dealngbt2ydz+ccddheq7lottznizy11pvahv6aeohj3erhgp12ltujzrj6e28y1cw8g/p4cgeqkbephvpq522jp3lmynvjwwe/2rbbjsq66kht/wwn4+pw3jt76lq9o76nb5jco+gw35/l/p/ijxx43/auy+2+cqpmu7+o+9zfzzihsj511nf+bmr5gt/jltz1oeicnbzh/lt8c0+rc1wwl/3ivlvkvcu3h44/krtth/lzdvfy8bblxxquej8f+6b8zieut6snviccnxm/oc5jmpchdmixqzxlk3qiustov3d8inkc6c0hkoum45pmj9zhyj+pq4hozr9qr08i8zbrzru3u4rjcs9+fwhe44nkryewu/gd+ijr04blrrzu4xh4bi1t3camgmkb4lh4m4n2/0gnrh5jqwbr1u3vzmntwrxhefszuep7ez1+tcu2v9lr+2syagv3mvcfteumzb0vml1ifz0q6/74kzf3za3km/lb/cjd56zuh4oyyuy/1nnpzhknfe9fnd/9jqr0g/1vk1d+frk/hym2d+3vx7o7g83ybtggm86ydn1g1lfzlw3lumy4/9df7mv68vwdjrbpc3sbnrlt7lru//2bztekuwv0y2t/myb+jr6kh9q0lzjk2yv+1q6jx7dsy3qf4xe9/2c/t+rqy2tmq91lrcewv4zcf/8txmzzqz2ish+sirsvvzv2ei/bhgv1uuzrzduyqjls1upyenu+doj7+f78s+lay/l3z+pwnaq6wqm9x4pt8udzi3tki7vhrdn7rovee753uyiotr+7xec4zzutpd45kvim+e3old1ih/sew3yldgu609hb4zpnvty0vugzpd11maqmgbbp6a+5rngpiwxdd1dwqxdhpse6fohc1ijkqm7khnnvjvjxhv0iroqrrxwxf2/btvty1tnazvwhap2jqesyvnqjl5s2toryc8thv1luvbd9rvk2od+t1ofz16faz3tqll89xpjktpq2srtociphtm/lswyeeaz1n7psukzpfzrvhqp0pqwuu4rovlnulzjotfue7c9drsfvu/dz8xytq5yzpl8ddluhap1rspmo9ntp2pjmpnv31tlb3vwefc8j1nwg7/yz2zmvvr0kdkygph+aelyddlrh5u6vmtq3mdxdjidhgkx7bvchepyj7x30zvwhap38fmx4vxwwbtj8t3a/quncd4sy7uhfcchgx2laz1q1n7sxl0d3a3ynbcvvpkayqsmr8niwtjrtlym4zew99y1j1wszsivjdnwljdywkihrejegd2mqa3inezhpenlzl2/uoudnckp9utxgfewe1ycguxpy2cgm2eogp4/tevvysbktm9a95bqtzcujzv10wnb5ucpokdxhoxhjnvahxqqt2td0ifrnqpnm+zszrkkoeegmeorhunl4mcoqc7chuxu4z/5kljyaqkefud8cvsutbhvos2nhefanugcevbvqhqp0livyyy0e+++3nxv5zrkgy/avfuhjtkpatq4gevyx9nnxcyqrohtozlqto8vvb9tntx16h99rhil9f8wfe+1tan5xse8tpvmdcxeuj1rwdsjq4dor+/oo4mmiprzwsonceladm9ajbc3/p8tobthyo5/6381o7hc3qsf6rtcvsjlshqp0jhvwr2ggfln9ikp31al1ks974dkc1ys04onkouv3hkvz1afahzaj92pcxcqz55aonybajtp7vgebej7bjso61pegtkkobtq8c/a7hfc3vow0pnyo6fonfnwfty3votjf9szkqg4fomrrdy9v4seaxgleqidc9jfyja8c7uxfi4kvdbkd2yh9snuo0ohzg8dwl0hiafapyy8q77vwpv1xknqhqd2vqfa9htthwdehqgecqiejz73q1cldomdwtvlq+nhgekj1i8jhtpdq4zlkdftyjq3ptakobtpjfl7d+htf6jtbv4+mervbtkq8tvxqrdcfzyel+vuuhyjtmmekx8syztxh2dahqgd0o/pqsaqdsng2fjprpljcz1chrfc1mllresotmkeco7zeimg6sotpe9s173cyu+ngxuvzdsjqmv6y337qscjetv2mzlh3p80ifxruirr1csio76xn4kphhdkcocygwtagco6y1gnle8nr38jop5z3qq4fotmk88uxgxsdo2n47elt0w4z78m/fpwz2ndqynkj9dbqtv3jlartaionvhwmiracclekpukrwulhb2uni9nugpnb307py3eem1pedtigy3t5q08tldzfvxzcbrgv7zl4j59a3njfblm0wwv5oy6ow7ru+y/2u4xn03x73na9fv05ty9lbn+n/i7xyn10zsa6aooxhr6qe8jiz2xmamsyqg37upmstweqm5ctvlnv1tfjl6mclbw6nbuogq7nkkvdt6kobbpap+dav46b3uze26h455l5rgi+smz3rjugqd/fqi/fofw+afd6cyjm/s2xci95lbfsk6jdibjktuob+bbfrnlmflo1lnljeujpdykdkmbtmnylxq308b0fqryfhqtrq86+/n1jomeyt6kobtpjokcu4ogmz9nmz5c0cyxwbfaxtse+zyahs9jf+gyco+wqhwi/dszvwh0kdc77gbo6xvci/s1pbaziqq3et8huf/q0hdhdxverhgyqaxv+fqtraxzb/ui6vfoqq4hour9qj9+stupgxl6pbxyjc+pgsddf/uwcd7fdf4urua1+ahnved0v3vwdc79fcpfvxxpq1og4mbt37wzmutzp5vng3zb889tnsmmlvnvxl/rg1d4uuf118tvgryluy/ubtwh/29ggd2dcdzn62j6w9tk+vnyo5zpmhqp0xhqw1amk1+8csvrz69fiyxv/vj1ab6ttykgmx87ftb3j9lc9etha9hf7wlxw2qdl3cdyjqqsu6pdgq4a/oueogaidabaoamaah0aeogainabaieoaah0aecga4babwaeogag0aeagq4aah0aeogageahaaq6aah0aecgawachqaq6aag0aeagq4achqaqkadgeahaaq6acdqaqcbdgachqaq6acaqacabdoachqaqkadaaidabdoacdqaqcbdgaidabaoaoaqacabdoainabaieoaah0abdoaibabwaeogag0afaoamaah0aeogageahaieoaah0aecgawachqaeogag0aeagq4achqaeogageahaaq6acdqaucgawachqaq6acaqacagq4achqaqkadaaidaaq6acdqayd+/v+aaqadxuxs75wqpqaaaabjru5erkjggg",{"_index":7173,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ivideoconferenceproperties",{"_index":20836,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["ivideoconferencesettings",{"_index":12119,"title":{"interfaces/IVideoConferenceSettings.html":{}},"body":{"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceService.html":{}}}],["javascript",{"_index":2325,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BsonConverter.html":{}}}],["jest",{"_index":19425,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["jest.config.ts",{"_index":22408,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["jest.fn",{"_index":22823,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.resetallmocks",{"_index":22801,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.restoreallmocks",{"_index":22809,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.spyon",{"_index":22820,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jira",{"_index":21625,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["job",{"_index":7778,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["job_init_idm.yml.j2",{"_index":13161,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["john",{"_index":18325,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["john${sequence",{"_index":12353,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["join",{"_index":2230,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["join(config",{"_index":2319,"title":{},"body":{"injectables/BBBService.html":{}}}],["join(currentuser",{"_index":20889,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["join(currentuserid",{"_index":21090,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.config",{"_index":2242,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["join.config.ts",{"_index":2208,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:18",{"_index":2213,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:20",{"_index":2216,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:22",{"_index":2217,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:24",{"_index":2214,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:26",{"_index":2215,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:8",{"_index":2212,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.response.ts",{"_index":2247,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["join.response.ts:5",{"_index":21087,"title":{},"body":{"classes/VideoConferenceJoinResponse.html":{}}}],["join.ts",{"_index":21082,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:5",{"_index":21085,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:7",{"_index":21084,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:9",{"_index":21083,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.uc.ts",{"_index":21088,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:11",{"_index":21089,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:18",{"_index":21091,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder",{"_index":21093,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.asguest(true",{"_index":21100,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.withrole(bbbrole.moderator",{"_index":21098,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joining",{"_index":20892,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["joinpath",{"_index":9962,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(...paths",{"_index":9983,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(path",{"_index":3584,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["joins",{"_index":21156,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["jose",{"_index":21399,"title":{},"body":{"dependencies.html":{}}}],["jpeg",{"_index":8621,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["js",{"_index":6414,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["json",{"_index":1708,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/TestApiClient.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["json.parse(data",{"_index":13243,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["json.parse(filecontent",{"_index":11195,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.parse(json.stringify(originalelement",{"_index":13824,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["json.replace",{"_index":11255,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace(/\\\\\\$/g",{"_index":11259,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify",{"_index":11163,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(collections",{"_index":7677,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["json.stringify(e.constraints",{"_index":8158,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["json.stringify(payload",{"_index":2665,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["json.stringify(response.body",{"_index":1777,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(signedpayload",{"_index":14258,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["json.stringify(sortedbsondocuments",{"_index":11222,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(where",{"_index":17749,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["jsondocuments",{"_index":3861,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["jsondocuments.length",{"_index":7750,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["jsonwebtoken",{"_index":1648,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"interfaces/CreateJwtParams.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"dependencies.html":{}}}],["jti",{"_index":1827,"title":{},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{}}}],["jwks",{"_index":15210,"title":{},"body":{"injectables/OauthAdapterService.html":{},"classes/OauthConfigResponse.html":{},"dependencies.html":{}}}],["jwksendpoint",{"_index":11077,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["jwksrsa",{"_index":15209,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.jwksclient",{"_index":15213,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.signingkey",{"_index":15214,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksuri",{"_index":15203,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwt",{"_index":1683,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/CreateJwtParams.html":{},"injectables/HydraOauthUc.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/LocalStrategy.html":{},"classes/OAuthProcessDto.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/TestApiClient.html":{},"controllers/UserLoginMigrationController.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["jwt.decode(input.idtoken",{"_index":12630,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["jwt.decode(jwttoken",{"_index":1834,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwt.sign",{"_index":6881,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwt.verify(idtoken",{"_index":15107,"title":{},"body":{"injectables/OAuthService.html":{}}}],["jwt=${jwt",{"_index":10975,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["jwtauthguard",{"_index":12659,"title":{"injectables/JwtAuthGuard.html":{}},"body":{"injectables/JwtAuthGuard.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["jwtconstants",{"_index":1649,"title":{"interfaces/JwtConstants.html":{}},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions",{"_index":12702,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions.algorithm",{"_index":1686,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.audience",{"_index":1688,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.expiresin",{"_index":1690,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.header",{"_index":1694,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.issuer",{"_index":1692,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.secret",{"_index":1697,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor",{"_index":12677,"title":{"classes/JwtExtractor.html":{}},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor.fromcookie('jwt",{"_index":12699,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequest",{"_index":12696,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequestfunction",{"_index":12683,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["jwtfromresponse",{"_index":1754,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["jwtid",{"_index":1831,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtmodule",{"_index":1636,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmodule.register(jwtmoduleoptions",{"_index":1699,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmoduleoptions",{"_index":1637,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtoptions",{"_index":12665,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["jwtpayload",{"_index":1813,"title":{"interfaces/JwtPayload.html":{}},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["jwtpayload.accountid",{"_index":6950,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.roles",{"_index":6952,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.schoolid",{"_index":6953,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.support",{"_index":6956,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.systemid",{"_index":6951,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.userid",{"_index":6954,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtservice",{"_index":1789,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtstrategy",{"_index":1628,"title":{"injectables/JwtStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwttestfactory",{"_index":6877,"title":{"classes/JwtTestFactory.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwttoicurrentuser",{"_index":6932,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoicurrentuser(jwtpayload",{"_index":6935,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoken",{"_index":1804,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtvalidationadapter",{"_index":1629,"title":{"injectables/JwtValidationAdapter.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["k",{"_index":1899,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["kann",{"_index":4773,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["kc",{"_index":12801,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.clients.addprotocolmapper",{"_index":12974,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.create(cr",{"_index":12950,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.find",{"_index":12804,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.getclientsecret",{"_index":12806,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kc.clients.listprotocolmappers",{"_index":12966,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.update",{"_index":12951,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.updateprotocolmapper",{"_index":12971,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.create",{"_index":12985,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.createmapper",{"_index":12996,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.del",{"_index":12990,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.find",{"_index":12953,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.findmappers",{"_index":12991,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.update",{"_index":12988,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.updatemapper",{"_index":12992,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realmname",{"_index":12918,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.makerequest",{"_index":12914,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.update",{"_index":12808,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.users.count",{"_index":13121,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create",{"_index":13096,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create(idmuserrepresentation",{"_index":13199,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.del",{"_index":13237,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["kc.users.del(id",{"_index":13106,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.find",{"_index":13122,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.find()).filter((user",{"_index":13230,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["kc.users.findone",{"_index":13132,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.resetpassword",{"_index":13103,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.update",{"_index":13137,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadmin",{"_index":12860,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadminclient",{"_index":12778,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["kcadminservice",{"_index":13046,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["kcsettings",{"_index":12776,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.baseurl",{"_index":12792,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.realmname",{"_index":12793,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kebab",{"_index":22882,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["keep",{"_index":11204,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/StorageProviderEncryptedStringType.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["keepdiscriminatorproperty",{"_index":8040,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["keeps",{"_index":22357,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["kennung",{"_index":17226,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{}}}],["kernel",{"_index":21789,"title":{},"body":{"license.html":{}}}],["key",{"_index":2076,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/CopyHelperService.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"injectables/DeleteFilesUc.html":{},"modules/EncryptionModule.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/NewsUc.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"injectables/S3ClientAdapter.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["key.getpublickey",{"_index":15216,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["keycloak",{"_index":773,"title":{"additional-documentation/nestjs-application/keycloak.html":{}},"body":{"injectables/AccountLookupService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/IdentityManagementModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["keycloak/keycloak",{"_index":12755,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/OidcIdentityProviderMapper.html":{},"dependencies.html":{}}}],["keycloak/keycloak.module",{"_index":12190,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak/service/keycloak",{"_index":12192,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak:/tmp/realms",{"_index":22955,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["keycloakadminclient",{"_index":12754,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakadministration",{"_index":12740,"title":{"classes/KeycloakAdministration.html":{}},"body":{"classes/KeycloakAdministration.html":{}}}],["keycloakadministrationmodule",{"_index":12183,"title":{"modules/KeycloakAdministrationModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules.html":{}}}],["keycloakadministrationservice",{"_index":12752,"title":{"injectables/KeycloakAdministrationService.html":{}},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloakadministrationservice.authorization_timebox_ms",{"_index":12815,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["keycloakconfigservice",{"_index":13012,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfiguration",{"_index":12758,"title":{"classes/KeycloakConfiguration.html":{}},"body":{"modules/KeycloakAdministrationModule.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloakinputfiles",{"_index":12842,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloaksettings",{"_index":12761,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["keycloakconfigurationinputfiles",{"_index":11511,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloakconfigurationmodule",{"_index":12822,"title":{"modules/KeycloakConfigurationModule.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["keycloakconfigurationservice",{"_index":12827,"title":{"injectables/KeycloakConfigurationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfigurationuc",{"_index":11570,"title":{"injectables/KeycloakConfigurationUc.html":{}},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakconsole",{"_index":11581,"title":{"classes/KeycloakConsole.html":{}},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakconsole.retryflags",{"_index":11597,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakidentitymanagementoauthservice",{"_index":12191,"title":{"injectables/KeycloakIdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakidentitymanagementservice",{"_index":12193,"title":{"injectables/KeycloakIdentityManagementService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakinputfiles",{"_index":12817,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["keycloakmanagementcontroller",{"_index":12831,"title":{"controllers/KeycloakManagementController.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakmanagementuc",{"_index":13166,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["keycloakmigrationservice",{"_index":12829,"title":{"injectables/KeycloakMigrationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{}}}],["keycloakmodule",{"_index":12184,"title":{"modules/KeycloakModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["keycloakseedservice",{"_index":12828,"title":{"classes/KeycloakSeedService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloaksettings",{"_index":11516,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakuser",{"_index":13109,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers",{"_index":13113,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.length",{"_index":13117,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.map((user",{"_index":13129,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keypair",{"_index":6868,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.privatekey.export",{"_index":6876,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.publickey.export",{"_index":6873,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypairkeyobjectresult",{"_index":6867,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keys",{"_index":772,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/JwtConstants.html":{},"license.html":{}}}],["keywords",{"_index":22241,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["kickuserfromgroup(groupname",{"_index":1340,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["kind",{"_index":21755,"title":{},"body":{"license.html":{}}}],["kinds",{"_index":21664,"title":{},"body":{"license.html":{}}}],["kiss",{"_index":22465,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["know",{"_index":21686,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["knowing",{"_index":22506,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["knowingly",{"_index":22108,"title":{},"body":{"license.html":{}}}],["knowledge",{"_index":22115,"title":{},"body":{"license.html":{}}}],["known",{"_index":11279,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["known/jwks.json",{"_index":11079,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["known/openid",{"_index":12798,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kontinuierlich",{"_index":4766,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ktid",{"_index":17303,"title":{},"body":{"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["kurse",{"_index":6422,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["l.course.isfinished()).map((l",{"_index":19183,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.id",{"_index":19184,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.name",{"_index":13851,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["label",{"_index":21633,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["labelnames",{"_index":16658,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["labels",{"_index":16660,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["language",{"_index":4220,"title":{},"body":{"classes/ChangeLanguageParams.html":{},"interfaces/IUserProperties.html":{},"classes/MongoPatterns.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["language_override",{"_index":11252,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["languagetype",{"_index":4221,"title":{},"body":{"classes/ChangeLanguageParams.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["languagetype})@isenum(languagetype",{"_index":4222,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["largely",{"_index":22726,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["larger",{"_index":21886,"title":{},"body":{"license.html":{}}}],["last",{"_index":1145,"title":{},"body":{"injectables/AccountService.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/UserInfoResponse.html":{}}}],["lastauthorizationtime",{"_index":12765,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["lastloginsystemchange",{"_index":12100,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{},"classes/UserScope.html":{}}}],["lastloginsystemchangebetweenend",{"_index":17663,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangebetweenstart",{"_index":17662,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangesmallerthan",{"_index":17645,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastmodifytimestamp",{"_index":11901,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["lastname",{"_index":852,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/ExternalUserDto.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonUser.html":{},"interfaces/INameMatch.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/PatchMyAccountParams.html":{},"classes/ResolvedUserResponse.html":{},"injectables/SanisResponseMapper.html":{},"classes/SortImportUserParams.html":{},"classes/SubmissionItemResponseMapper.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["lastname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":12554,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["lastnamesearchvalues",{"_index":11244,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["lastsuccessfulfullsync",{"_index":11899,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["lastsuccessfulpartialsync",{"_index":11900,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["lastsyncattempt",{"_index":11898,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["lasttriedfailedlogin",{"_index":82,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["lastupdatedat",{"_index":3679,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TimestampsResponse.html":{}}}],["lastvaluefrom",{"_index":1267,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ExternalToolLogoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["lastvaluefrom(observable",{"_index":15223,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["lastvaluefrom(this.httpservice.get>(wellknownurl))).data",{"_index":13054,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["later",{"_index":3397,"title":{},"body":{"entities/BoardElement.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/ISubmissionProperties.html":{},"entities/News.html":{},"injectables/ReferenceLoader.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/TeamNews.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["latest",{"_index":14806,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/ToolConfigurationController.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["laufzeit",{"_index":17205,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["launch",{"_index":210,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["launch.controller",{"_index":19513,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch.controller.ts",{"_index":19703,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.controller.ts:29",{"_index":19714,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.mapper.ts",{"_index":19730,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:24",{"_index":19736,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:29",{"_index":19741,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:34",{"_index":19738,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:39",{"_index":19744,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.module.ts",{"_index":19766,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch.params.ts",{"_index":19769,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.params.ts:7",{"_index":19770,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.service.ts",{"_index":19786,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:22",{"_index":19791,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:38",{"_index":19793,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:51",{"_index":19795,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:73",{"_index":19799,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:88",{"_index":19797,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.strategy",{"_index":2656,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.strategy.ts",{"_index":110,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.strategy.ts:114",{"_index":159,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:125",{"_index":162,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:141",{"_index":141,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:167",{"_index":186,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:18",{"_index":14220,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["launch.strategy.ts:204",{"_index":182,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:23",{"_index":131,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:246",{"_index":147,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:26",{"_index":172,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:41",{"_index":156,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:46",{"_index":166,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:48",{"_index":177,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:50",{"_index":174,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:65",{"_index":169,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:91",{"_index":152,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.uc.ts",{"_index":19816,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:11",{"_index":19818,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:18",{"_index":19820,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch/controller/dto/tool",{"_index":19768,"title":{},"body":{"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launch/controller/tool",{"_index":19512,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["launch/error/missing",{"_index":14518,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["launch/error/parameter",{"_index":16065,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launch/error/tool",{"_index":19938,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launch/mapper/lti",{"_index":14259,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["launch/mapper/tool",{"_index":19729,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch/service/lti11",{"_index":14161,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["launch/service/strategy/abstract",{"_index":109,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch/service/strategy/basic",{"_index":2642,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["launch/service/strategy/lti11",{"_index":14218,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["launch/service/strategy/oauth2",{"_index":14985,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch/service/strategy/tool",{"_index":12090,"title":{},"body":{"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{}}}],["launch/service/tool",{"_index":19785,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch/settings",{"_index":22268,"title":{},"body":{"todo.html":{}}}],["launch/tool",{"_index":19765,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch/types/property",{"_index":16281,"title":{},"body":{"classes/PropertyData.html":{}}}],["launch/types/tool",{"_index":19721,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{}}}],["launch/uc",{"_index":19514,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch/uc/tool",{"_index":19815,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch_presentation_document_target",{"_index":14240,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["launch_presentation_locale",{"_index":7154,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["launch_url",{"_index":5125,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["launchdata",{"_index":218,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ToolLaunchService.html":{}}}],["launchdata.properties.push(...additionallaunchdataproperties",{"_index":226,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launchdata.properties.push(...launchdataproperties",{"_index":225,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launchdataproperties",{"_index":220,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launchdatatype",{"_index":19739,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launched",{"_index":19713,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launching",{"_index":16070,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launchrequest",{"_index":19807,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["launchrequestmethod",{"_index":178,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.get",{"_index":2669,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.post",{"_index":2668,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["law",{"_index":21746,"title":{},"body":{"license.html":{}}}],["laws",{"_index":21725,"title":{},"body":{"license.html":{}}}],["lawsuit",{"_index":22081,"title":{},"body":{"license.html":{}}}],["lax",{"_index":15781,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["layer",{"_index":22447,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["layered",{"_index":22620,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["layers",{"_index":22250,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["lazily",{"_index":16110,"title":{},"body":{"injectables/PermissionService.html":{}}}],["ldap",{"_index":1134,"title":{},"body":{"injectables/AccountService.html":{},"modules/ImportUserModule.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"controllers/LoginController.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/UserMigrationIsNotEnabled.html":{},"todo.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ldap'})@apiresponse({status",{"_index":14085,"title":{},"body":{"controllers/LoginController.html":{}}}],["ldap_connection_failed",{"_index":13284,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["ldap_password_encryption_key",{"_index":8118,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["ldap_univention_migration",{"_index":11703,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapactive",{"_index":18554,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{}}}],["ldapalreadypersistedexception",{"_index":13245,"title":{"classes/LdapAlreadyPersistedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["ldapauthorizationbodyparams",{"_index":13259,"title":{"classes/LdapAuthorizationBodyParams.html":{}},"body":{"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"controllers/LoginController.html":{}}}],["ldapconfig",{"_index":11846,"title":{"classes/LdapConfig.html":{}},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["ldapconfig.active",{"_index":11878,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.federalstate",{"_index":11879,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.lastmodifytimestamp",{"_index":11887,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.lastsuccessfulfullsync",{"_index":11883,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.lastsuccessfulpartialsync",{"_index":11885,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.lastsyncattempt",{"_index":11881,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.provider",{"_index":11895,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.provideroptions",{"_index":11897,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.rootpath",{"_index":11890,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.searchuser",{"_index":11892,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.searchuserpassword",{"_index":11894,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.url",{"_index":11888,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconnectionerror",{"_index":13279,"title":{"classes/LdapConnectionError.html":{}},"body":{"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{}}}],["ldapdn",{"_index":4232,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"injectables/LdapStrategy.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["ldapencryptionservice",{"_index":8109,"title":{},"body":{"modules/EncryptionModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{}}}],["ldapid",{"_index":11482,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["ldapjs",{"_index":13293,"title":{},"body":{"injectables/LdapService.html":{},"dependencies.html":{}}}],["ldapjs.git",{"_index":21405,"title":{},"body":{"dependencies.html":{}}}],["ldaps:mock.de:389",{"_index":18589,"title":{},"body":{"classes/SystemFactory.html":{}}}],["ldapschool",{"_index":12641,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapschoolidentifier",{"_index":11715,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapservice",{"_index":1630,"title":{"injectables/LdapService.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{}}}],["ldapservice:connect",{"_index":13311,"title":{},"body":{"injectables/LdapService.html":{}}}],["ldapstrategy",{"_index":1631,"title":{"injectables/LdapStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["ldapuniventionmigrationschool",{"_index":11704,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapuser",{"_index":12634,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapuser.roles.map((roleref",{"_index":12643,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapusermigrationexception",{"_index":13248,"title":{"classes/LdapUserMigrationException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["lead",{"_index":4171,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/LdapStrategy.html":{}}}],["leads",{"_index":19048,"title":{},"body":{"injectables/TaskRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["leaf",{"_index":3260,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["lean",{"_index":21414,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["learn",{"_index":22345,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["learner",{"_index":6961,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["learning",{"_index":10385,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/S3Config.html":{},"miscellaneous/functions.html":{}}}],["learningmodules",{"_index":5224,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["learnroom",{"_index":3546,"title":{},"body":{"modules/BoardModule.html":{},"injectables/DashboardModelMapper.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["learnroom.module",{"_index":13382,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["learnroomapimodule",{"_index":13367,"title":{"modules/LearnroomApiModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["learnroommetadata",{"_index":6402,"title":{},"body":{"entities/Course.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["learnroommodule",{"_index":13371,"title":{"modules/LearnroomModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolLaunchModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["learnroomtypes",{"_index":6403,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{}}}],["learnroomtypes.course",{"_index":6470,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{}}}],["leave",{"_index":5998,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["leaves",{"_index":19454,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["left",{"_index":22533,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["legacy",{"_index":1252,"title":{},"body":{"injectables/AccountValidationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LoggerModule.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["legacy/deprecated",{"_index":23094,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["legacy/feathers",{"_index":22412,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/feathers/mocha",{"_index":22389,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/nest",{"_index":22297,"title":{},"body":{"todo.html":{}}}],["legacylogger",{"_index":1053,"title":{"injectables/LegacyLogger.html":{}},"body":{"injectables/AccountService.html":{},"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"modules/EncryptionModule.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/PreviewService.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["legacyschoolapimodule",{"_index":13432,"title":{"modules/LegacySchoolApiModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["legacyschoolcontroller",{"_index":13441,"title":{"controllers/LegacySchoolController.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["legacyschooldo",{"_index":189,"title":{"classes/LegacySchoolDo.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LdapStrategy.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["legacyschooldofactory",{"_index":13517,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory",{"_index":13510,"title":{"classes/LegacySchoolFactory.html":{}},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory.define(legacyschooldo",{"_index":13518,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolmodule",{"_index":1951,"title":{"modules/LegacySchoolModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"modules/ImportUserModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["legacyschoolrepo",{"_index":1632,"title":{"injectables/LegacySchoolRepo.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"interfaces/IRepoLoader.html":{},"modules/ImportUserModule.html":{},"injectables/LdapStrategy.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolValidationService.html":{}}}],["legacyschoolrule",{"_index":1961,"title":{"injectables/LegacySchoolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/RuleManager.html":{}}}],["legacyschoolservice",{"_index":129,"title":{"injectables/LegacySchoolService.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/IservProvisioningStrategy.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["legacyschooluc",{"_index":13437,"title":{"injectables/LegacySchoolUc.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["legal",{"_index":21693,"title":{},"body":{"license.html":{}}}],["legayschoolrule",{"_index":17053,"title":{},"body":{"injectables/RuleManager.html":{}}}],["legend",{"_index":429,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{}}}],["length",{"_index":3491,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["lernstore",{"_index":11312,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lernstore_view",{"_index":11713,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["lesson",{"_index":2701,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/DtoCreator.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["lesson({course",{"_index":23082,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["lesson.contents.foreach((content",{"_index":4990,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lesson.contents.map((c",{"_index":13957,"title":{},"body":{"injectables/LessonService.html":{}}}],["lesson.course",{"_index":16955,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRepo.html":{}}}],["lesson.course.name",{"_index":7988,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.coursegroup",{"_index":18971,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["lesson.coursename",{"_index":16914,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.createdat",{"_index":7986,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.entity",{"_index":2690,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonBoardElement.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["lesson.getlessonlinkedtasks",{"_index":13805,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lesson.getnumberofdrafttasks",{"_index":7991,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofplannedtasks",{"_index":7993,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofpublishedtasks",{"_index":7989,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.hidden",{"_index":7985,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{}}}],["lesson.id",{"_index":7984,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.module",{"_index":13651,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["lesson.name",{"_index":4988,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/DtoCreator.html":{},"injectables/LessonCopyService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofdrafttasks",{"_index":16912,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofplannedtasks",{"_index":16913,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofpublishedtasks",{"_index":16911,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.position",{"_index":13734,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lesson.response",{"_index":3413,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["lesson.response.ts",{"_index":3417,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:27",{"_index":3428,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:31",{"_index":3429,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:35",{"_index":3425,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:40",{"_index":3434,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:46",{"_index":3431,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:5",{"_index":3423,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:52",{"_index":3432,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:55",{"_index":3426,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:58",{"_index":3435,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:61",{"_index":3427,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.rule",{"_index":19078,"title":{},"body":{"injectables/TaskRule.html":{}}}],["lesson.updatedat",{"_index":7987,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson/task",{"_index":17943,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["lessonapimodule",{"_index":13644,"title":{"modules/LessonApiModule.html":{}},"body":{"modules/LessonApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["lessonboardelement",{"_index":2700,"title":{"entities/LessonBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/LessonBoardElement.html":{}}}],["lessoncontroller",{"_index":13650,"title":{"controllers/LessonController.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{}}}],["lessoncopy",{"_index":13711,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopy.contents",{"_index":13745,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopy.name",{"_index":13749,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopyapiparams",{"_index":6287,"title":{"classes/LessonCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"classes/LessonCopyApiParams.html":{},"controllers/RoomsController.html":{}}}],["lessoncopyparams",{"_index":13689,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopyparentparams",{"_index":6289,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/LessonCopyUC.html":{}}}],["lessoncopyservice",{"_index":2996,"title":{"injectables/LessonCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/ShareTokenUC.html":{}}}],["lessoncopyservice.lessonstatusmetadata",{"_index":13748,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopyuc",{"_index":13373,"title":{"injectables/LessonCopyUC.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{}}}],["lessonelement",{"_index":3075,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["lessonelements",{"_index":3653,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["lessonentity",{"_index":2689,"title":{"entities/LessonEntity.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"classes/CopyMapper.html":{},"classes/DtoCreator.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/LessonBoardElement.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{}}}],["lessonfactory",{"_index":13862,"title":{"classes/LessonFactory.html":{}},"body":{"classes/LessonFactory.html":{}}}],["lessonfactory.define",{"_index":13864,"title":{},"body":{"classes/LessonFactory.html":{}}}],["lessonhidden",{"_index":11968,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonid",{"_index":4955,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CopyMapper.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"injectables/ShareTokenUC.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonids",{"_index":19013,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["lessonidsoffinishedcourses",{"_index":18978,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonidsofopencourses",{"_index":18976,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonmetadata",{"_index":7950,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lessonmodule",{"_index":13372,"title":{"modules/LessonModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["lessonname",{"_index":11967,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonreadpermission",{"_index":13902,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonreadpermission(user",{"_index":13912,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonrepo",{"_index":1962,"title":{"injectables/LessonRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsService.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskUC.html":{}}}],["lessonrule",{"_index":1963,"title":{"injectables/LessonRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{},"injectables/TaskRule.html":{}}}],["lessons",{"_index":4982,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"controllers/LessonController.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ShareTokenDO.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessons.filter((l",{"_index":19182,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.foreach((lesson",{"_index":4984,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lessons.map((l",{"_index":19205,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.map((lesson",{"_index":13956,"title":{},"body":{"injectables/LessonService.html":{}}}],["lessonscope",{"_index":13885,"title":{"classes/LessonScope.html":{}},"body":{"injectables/LessonRepo.html":{},"classes/LessonScope.html":{}}}],["lessonservice",{"_index":4940,"title":{"injectables/LessonService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/ShareTokenService.html":{}}}],["lessonstatus",{"_index":13721,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonstatus.copyentity",{"_index":13751,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonstatuscontent",{"_index":13679,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonstatuscontent(elements",{"_index":13714,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonstatusmetadata",{"_index":13680,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonuc",{"_index":13648,"title":{"injectables/LessonUC.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"injectables/LessonUC.html":{}}}],["lessonurlparams",{"_index":13657,"title":{"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{}},"body":{"controllers/LessonController.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"controllers/RoomsController.html":{}}}],["lessonwritepermission",{"_index":13903,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonwritepermission(user",{"_index":13914,"title":{},"body":{"injectables/LessonRule.html":{}}}],["letter",{"_index":940,"title":{},"body":{"injectables/AccountRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["letters",{"_index":22875,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["letting",{"_index":21710,"title":{},"body":{"license.html":{}}}],["level",{"_index":3552,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"modules/LoggerModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["levelquery",{"_index":3598,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["levels",{"_index":14048,"title":{},"body":{"modules/LoggerModule.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["liability",{"_index":21999,"title":{},"body":{"license.html":{}}}],["liable",{"_index":21743,"title":{},"body":{"license.html":{}}}],["libraries",{"_index":21782,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["libraries/:ubername/:file",{"_index":10800,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["library",{"_index":21939,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["license",{"_index":11540,"title":{"license.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"license.html":{},"properties.html":{}}}],["licensed",{"_index":21729,"title":{},"body":{"license.html":{}}}],["licensee",{"_index":21730,"title":{},"body":{"license.html":{}}}],["licensees",{"_index":21732,"title":{},"body":{"license.html":{}}}],["licenses",{"_index":21670,"title":{},"body":{"license.html":{}}}],["licensing",{"_index":22059,"title":{},"body":{"license.html":{}}}],["licensors",{"_index":22007,"title":{},"body":{"license.html":{}}}],["likes",{"_index":22886,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["likewise",{"_index":22052,"title":{},"body":{"license.html":{}}}],["limit",{"_index":56,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageMapper.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ListOauthClientsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"dependencies.html":{},"license.html":{}}}],["limitation",{"_index":22189,"title":{},"body":{"license.html":{}}}],["limited",{"_index":22178,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["limiting",{"_index":21998,"title":{},"body":{"license.html":{}}}],["line",{"_index":1300,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/ConsoleWriterService.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SystemRepo.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lines",{"_index":22443,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["link",{"_index":2321,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ColumnBoardService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/ImportUserModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{}}}],["linked",{"_index":21799,"title":{},"body":{"license.html":{}}}],["linkeditems",{"_index":13811,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkeditems.foreach((element",{"_index":13815,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkeditems.length",{"_index":13813,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkedtasks",{"_index":13804,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkedtasks.length",{"_index":13806,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkedtasks.map((element",{"_index":13807,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkid",{"_index":7153,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["linter",{"_index":22284,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lis_person_contact_email_primary",{"_index":14249,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["lis_person_name_full",{"_index":14247,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["liskov",{"_index":22452,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["list",{"_index":538,"title":{},"body":{"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CopyApiResponse.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FileRecordFactory.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["list.response",{"_index":18536,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["list.response.ts",{"_index":1006,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CardListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/PublicSystemListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["list.response.ts:10",{"_index":4087,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:4",{"_index":4085,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:5",{"_index":1010,"title":{},"body":{"classes/AccountSearchListResponse.html":{}}}],["list.response.ts:6",{"_index":5636,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/PublicSystemListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/ToolReferenceListResponse.html":{}}}],["list.response.ts:7",{"_index":9062,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["list_files_of_parent",{"_index":11363,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["listconsentsessions",{"_index":10835,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["listconsentsessions(@currentuser",{"_index":15564,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(currentuser",{"_index":15497,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(user",{"_index":10864,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["listconsentsessions(userid",{"_index":15684,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["listenercount",{"_index":2260,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["listening",{"_index":1556,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["listfilesofparent",{"_index":10104,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent(param",{"_index":10112,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["listfilesofparent(payload",{"_index":10292,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:finished",{"_index":10307,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:started",{"_index":10305,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listoauth2clients",{"_index":10836,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["listoauth2clients(currentuser",{"_index":15429,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["listoauth2clients(limit",{"_index":10866,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["listoauthclientsparams",{"_index":13975,"title":{"classes/ListOauthClientsParams.html":{}},"body":{"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{}}}],["listobjectscommand",{"_index":17115,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["listresponse",{"_index":18258,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["lists",{"_index":9988,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"controllers/ToolConfigurationController.html":{}}}],["listsequal",{"_index":2720,"title":{},"body":{"entities/Board.html":{}}}],["literal",{"_index":138,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"classes/AccountFactory.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardDoRepo.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseRepo.html":{},"classes/CustomParameterFactory.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/GridElement.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/INewsScope.html":{},"classes/ImportUserFactory.html":{},"interfaces/JwtConstants.html":{},"classes/LdapConfig.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LessonCopyService.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LocalStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfigResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"classes/RequestInfo.html":{},"interfaces/RocketChatGroupModel.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemService.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["litigation",{"_index":22079,"title":{},"body":{"license.html":{}}}],["load",{"_index":11153,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"injectables/ImportUserRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["load/perf",{"_index":22261,"title":{},"body":{"todo.html":{}}}],["load/persist",{"_index":22562,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["loadaccount",{"_index":1784,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccount(username",{"_index":1796,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccounts",{"_index":13209,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["loadallcollectionsfromdatabase(targetfolder",{"_index":11137,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadallcollectionsfromfilesystem(basedir",{"_index":11143,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadauthorizableobject",{"_index":11663,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["loadauthorizableobject(objectname",{"_index":16604,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11151,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loaded",{"_index":4083,"title":{},"body":{"classes/CardIdsParams.html":{},"entities/Course.html":{},"injectables/ExternalToolUc.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/LessonEntity.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{},"injectables/VideoConferenceRepo.html":{}}}],["loaded.config",{"_index":9212,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loaded.version",{"_index":9213,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loadedexternaltool",{"_index":5315,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedexternaltool.parameters",{"_index":5347,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["loadedexternaltool.version",{"_index":17527,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedoauthclient",{"_index":9109,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedoauthclient.client_id",{"_index":9151,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedschoolexternaltool",{"_index":5989,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["loadedschoolexternaltool.toolid",{"_index":5992,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["loadedtool",{"_index":9100,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.clientid",{"_index":9256,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.type",{"_index":9252,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loader",{"_index":1936,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"modules/ToolModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["loading",{"_index":23048,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["loads",{"_index":4483,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{}}}],["loadtoolhierarchy",{"_index":19790,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadtoolhierarchy(schoolexternaltoolid",{"_index":19798,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadusers",{"_index":13210,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["local",{"_index":1717,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/KeycloakConsole.html":{},"injectables/LocalStrategy.html":{},"classes/TestApiClient.html":{},"classes/UpdateMatchParams.html":{},"entities/UserLoginMigration.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["local.hooks.hashpassword('password",{"_index":1127,"title":{},"body":{"injectables/AccountService.html":{}}}],["localauthorizationbodyparams",{"_index":13988,"title":{"classes/LocalAuthorizationBodyParams.html":{}},"body":{"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{}}}],["localcookies",{"_index":6035,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["localcookies.includes(cookie",{"_index":11065,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localcookies.push(cookie",{"_index":11066,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto",{"_index":11034,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig",{"_index":11058,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig.headers",{"_index":11053,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies",{"_index":11047,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.hydracookies.join",{"_index":11051,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.localcookies.join",{"_index":11052,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.currentredirect",{"_index":11059,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.referer",{"_index":11054,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response",{"_index":11056,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers",{"_index":11037,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers.location",{"_index":11036,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers['set",{"_index":11045,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localfield",{"_index":20709,"title":{},"body":{"injectables/UserRepo.html":{}}}],["localhost",{"_index":12942,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["localhost:15672",{"_index":22324,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["localhost:27017\"}]})start",{"_index":22968,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["localhost:3030",{"_index":22362,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["locally",{"_index":10277,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["localroleseeddata",{"_index":21556,"title":{},"body":{"miscellaneous/functions.html":{}}}],["localstrategy",{"_index":1633,"title":{"injectables/LocalStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LocalStrategy.html":{}}}],["locate",{"_index":22631,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["located",{"_index":22543,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["location",{"_index":331,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["location.startswith('http",{"_index":11038,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["location.startswith(configuration.get('hydra_public_uri",{"_index":11040,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["locationmapping",{"_index":8936,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterdo.location",{"_index":9039,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterparam.location",{"_index":8978,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["locations",{"_index":11041,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["lockid",{"_index":9572,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["lodash",{"_index":846,"title":{},"body":{"interfaces/AccountParams.html":{},"injectables/BoardCopyService.html":{},"injectables/CommonToolValidationService.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/ICollectionFilePath.html":{},"modules/MongoMemoryDatabaseModule.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{},"dependencies.html":{}}}],["log",{"_index":8159,"title":{},"body":{"classes/ErrorLoggable.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/LegacyLogger.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["log(message",{"_index":11532,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["log/response",{"_index":22286,"title":{},"body":{"todo.html":{}}}],["loggable",{"_index":1542,"title":{"interfaces/Loggable.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["loggable.exception.ts",{"_index":20341,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:13",{"_index":20343,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:8",{"_index":20342,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.getlogmessage",{"_index":14075,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["loggable.ts",{"_index":1537,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:10",{"_index":1558,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:13",{"_index":1559,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:3",{"_index":8541,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:6",{"_index":8542,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable/error.loggable",{"_index":10492,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["loggable/news",{"_index":14821,"title":{},"body":{"injectables/NewsUc.html":{}}}],["loggables",{"_index":11522,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logged",{"_index":19641,"title":{},"body":{"controllers/ToolController.html":{},"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["logger",{"_index":1052,"title":{"injectables/Logger.html":{}},"body":{"injectables/AccountService.html":{},"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.html":{},"modules/CoreModule.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"modules/RedisModule.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logger.debug",{"_index":16266,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.error(error",{"_index":3921,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.info",{"_index":16280,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.info(`could",{"_index":22763,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["logger.interface",{"_index":13416,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.interface.ts",{"_index":11521,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:11",{"_index":11531,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:12",{"_index":11533,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:13",{"_index":11528,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:14",{"_index":11535,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:15",{"_index":11525,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.log(msg",{"_index":3924,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.service",{"_index":14046,"title":{},"body":{"modules/LoggerModule.html":{}}}],["logger.service.ts",{"_index":13394,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:22",{"_index":13398,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:26",{"_index":13404,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:30",{"_index":13409,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:34",{"_index":13401,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:38",{"_index":13403,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:42",{"_index":13402,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:50",{"_index":13406,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:54",{"_index":13400,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:58",{"_index":13408,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.setcontext(durationlogginginterceptor.name",{"_index":8022,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logger.setcontext(redismodule.name",{"_index":16599,"title":{},"body":{"modules/RedisModule.html":{}}}],["logger.setcontext(servermodule.name",{"_index":17825,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.setcontext(servertestmodule.name",{"_index":17833,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.ts",{"_index":8175,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:12",{"_index":8186,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:17",{"_index":8182,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:22",{"_index":8184,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:27",{"_index":8188,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:9",{"_index":8180,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.warn",{"_index":17807,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger/interfaces",{"_index":8143,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logger/types",{"_index":8144,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["loggermodule",{"_index":438,"title":{"modules/LoggerModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CoreModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/ManagementModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ProvisioningModule.html":{},"modules/RedisModule.html":{},"modules/S3ClientModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["logging",{"_index":6332,"title":{"additional-documentation/nestjs-application/logging.html":{}},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["logging.error",{"_index":16678,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts",{"_index":8012,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:10",{"_index":8015,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:12",{"_index":16666,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:15",{"_index":8019,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:9",{"_index":16665,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.utils",{"_index":8192,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils",{"_index":8191,"title":{"classes/LoggingUtils.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{}}}],["loggingutils.createmessagewithcontext(loggable",{"_index":8194,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils.isinstanceofloggable(error",{"_index":10498,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["logic",{"_index":11826,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"injectables/OAuthService.html":{},"entities/Submission.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["login",{"_index":355,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"injectables/AccountService.html":{},"classes/ChallengeParams.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ConsentResponse.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapStrategy.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"classes/OAuthMigrationError.html":{},"injectables/OAuthService.html":{},"classes/Oauth2MigrationParams.html":{},"modules/OauthApiModule.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"modules/OauthModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RuleManager.html":{},"entities/SchoolEntity.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"controllers/SystemController.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["login(account",{"_index":1749,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["login.query.ts",{"_index":17196,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:13",{"_index":17198,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:8",{"_index":17200,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login_block_time",{"_index":1842,"title":{},"body":{"injectables/AuthenticationService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["login_challenge",{"_index":5423,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["login_hint",{"_index":15875,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["login_required",{"_index":5397,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["login_session_id",{"_index":5424,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["loginchallenge",{"_index":5443,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["logincontroller",{"_index":1588,"title":{"controllers/LoginController.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["logindto",{"_index":1821,"title":{"classes/LoginDto.html":{}},"body":{"injectables/AuthenticationService.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{}}}],["logindto.accesstoken",{"_index":14149,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["loginldap",{"_index":14079,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(@currentuser",{"_index":14107,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(user",{"_index":14082,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal",{"_index":14080,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(@currentuser",{"_index":14113,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(user",{"_index":14089,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginname",{"_index":10331,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["loginname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":12557,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["loginoauth2",{"_index":14081,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginoauth2(user",{"_index":14093,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginpath",{"_index":1712,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["loginrequestbody",{"_index":14120,"title":{"classes/LoginRequestBody.html":{}},"body":{"classes/LoginRequestBody.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember",{"_index":15641,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember_for",{"_index":15642,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginresponse",{"_index":14086,"title":{"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["loginresponse.challenge",{"_index":15621,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse.client.client_id",{"_index":15610,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponsemapper",{"_index":14100,"title":{"classes/LoginResponseMapper.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{}}}],["loginresponsemapper.maplogindtotoresponse(logindto",{"_index":14109,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginsessionid",{"_index":5446,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["loginuc",{"_index":1586,"title":{"injectables/LoginUc.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{}}}],["loginurl",{"_index":20583,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('migration",{"_index":20659,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('postloginredirect",{"_index":20658,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.tostring",{"_index":20660,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginuseruc",{"_index":22596,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["logmessage",{"_index":1543,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logmessage.type",{"_index":8149,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logmessagedata",{"_index":1544,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/NewsMapper.html":{}}}],["logmessagewithcontext",{"_index":14070,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["logmigrationinformation",{"_index":20483,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logmigrationinformation(userid",{"_index":20492,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logo",{"_index":7172,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"controllers/ToolController.html":{},"classes/ToolReferenceResponse.html":{}}}],["logo.service",{"_index":9244,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["logo.service.ts",{"_index":8549,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:114",{"_index":8560,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:26",{"_index":8556,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:34",{"_index":8558,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:46",{"_index":8570,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:61",{"_index":8565,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:73",{"_index":8563,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:97",{"_index":8567,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.ts",{"_index":8521,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:2",{"_index":8524,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:4",{"_index":8523,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo_url",{"_index":6973,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["logobase64",{"_index":8474,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["logobinarydata",{"_index":8609,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logourl",{"_index":5640,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/County.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoService.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["logourltemplate",{"_index":19877,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["logout",{"_index":12585,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/UserMigrationService.html":{}}}],["logoutendpoint",{"_index":11080,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["logoutflow",{"_index":15626,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflow(challenge",{"_index":15628,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflowuc",{"_index":15526,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["logoutresponse",{"_index":15630,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logouturl",{"_index":2113,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/IScopeInfo.html":{},"interfaces/ISystemProperties.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["logoutuser(authtoken",{"_index":1330,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["logs",{"_index":5407,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["lokalisierung",{"_index":17230,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["long",{"_index":5389,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["longer",{"_index":22873,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["look",{"_index":12669,"title":{},"body":{"interfaces/JwtConstants.html":{},"controllers/ShareTokenController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["looking",{"_index":13984,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["looks",{"_index":22484,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lookup",{"_index":11419,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/UserRepo.html":{}}}],["lookup.service",{"_index":833,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["lookup.service.ts",{"_index":765,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:15",{"_index":790,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:27",{"_index":800,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:44",{"_index":793,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookupsharetoken",{"_index":17873,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["lookupsharetoken(currentuser",{"_index":17890,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["lookupsharetoken(userid",{"_index":18062,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["lookuptoken",{"_index":18010,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptoken(token",{"_index":18018,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname",{"_index":18011,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname(token",{"_index":18020,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["loop",{"_index":10977,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["loss",{"_index":22196,"title":{},"body":{"license.html":{}}}],["losses",{"_index":22198,"title":{},"body":{"license.html":{}}}],["lot",{"_index":22825,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["low",{"_index":22538,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lower",{"_index":22463,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lowercase",{"_index":11483,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lt",{"_index":20749,"title":{},"body":{"classes/UserScope.html":{}}}],["lte",{"_index":3601,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/FilesRepo.html":{},"classes/NewsScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{}}}],["lti",{"_index":5102,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["lti11",{"_index":14226,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["lti11config",{"_index":8813,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.baseurl",{"_index":8854,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.key",{"_index":8859,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.launch_presentation_locale",{"_index":8864,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.lti_message_type",{"_index":8861,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.privacy_permission",{"_index":8863,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.resource_link_id",{"_index":8862,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.secret",{"_index":8860,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.type",{"_index":8853,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11encryptionservice",{"_index":14160,"title":{"injectables/Lti11EncryptionService.html":{}},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["lti11toolconfig",{"_index":7125,"title":{"classes/Lti11ToolConfig.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigcreate",{"_index":8911,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigcreateparams",{"_index":8456,"title":{"classes/Lti11ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Lti11ToolConfigCreateParams.html":{}}}],["lti11toolconfigentity",{"_index":8476,"title":{"classes/Lti11ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfigEntity.html":{}}}],["lti11toolconfigfactory",{"_index":7147,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigfactory.build(customparam",{"_index":7167,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigresponse",{"_index":8989,"title":{"classes/Lti11ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["lti11toolconfigupdate",{"_index":8915,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigupdateparams",{"_index":8913,"title":{"classes/Lti11ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["lti11toollaunchstrategy",{"_index":14217,"title":{"injectables/Lti11ToolLaunchStrategy.html":{}},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["lti_message_type",{"_index":6974,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti_version",{"_index":6975,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["ltimessagetype",{"_index":7122,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltimessagetype.basic_lti_launch_request",{"_index":7152,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission",{"_index":6968,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission.anonymous",{"_index":6977,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalToolEntityFactory.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{}}}],["ltiprivacypermission.email",{"_index":14248,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["ltiprivacypermission.name",{"_index":14245,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{}}}],["ltiprivacypermission.pseudonymous",{"_index":7151,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltirepo",{"_index":11009,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["ltirole",{"_index":14224,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{}}}],["ltirole.administrator",{"_index":14268,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.instructor",{"_index":14267,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.learner",{"_index":14266,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirolemapper",{"_index":14225,"title":{"classes/LtiRoleMapper.html":{}},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{}}}],["ltirolemapper.maprolestoltiroles(rolenames",{"_index":14233,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["ltiroles",{"_index":14232,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{}}}],["ltiroles.filter",{"_index":14273,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles.join",{"_index":14243,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["ltiroletype",{"_index":6960,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["ltiroletype.instructor",{"_index":14325,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype.learner",{"_index":14326,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype})@property({nullable",{"_index":14292,"title":{},"body":{"entities/LtiTool.html":{}}}],["ltitool",{"_index":6972,"title":{"entities/LtiTool.html":{}},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["ltitool(props",{"_index":14348,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["ltitooldo",{"_index":7038,"title":{"classes/LtiToolDO.html":{}},"body":{"classes/CustomLtiPropertyDO.html":{},"injectables/HydraSsoService.html":{},"injectables/IdTokenService.html":{},"classes/LtiToolDO.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{}}}],["ltitoolfactory",{"_index":14317,"title":{"classes/LtiToolFactory.html":{}},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolfactory.define(ltitool",{"_index":14323,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolmodule",{"_index":14327,"title":{"modules/LtiToolModule.html":{}},"body":{"modules/LtiToolModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["ltitoolpromise",{"_index":14961,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ltitoolrepo",{"_index":4552,"title":{"injectables/LtiToolRepo.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/HydraSsoService.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/NextcloudStrategy.html":{},"modules/OauthModule.html":{},"modules/ToolApiModule.html":{}}}],["ltitools",{"_index":6971,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["ltitoolservice",{"_index":14331,"title":{"injectables/LtiToolService.html":{}},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["ltitoolstabenabled",{"_index":12082,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["lumieducation/h5p",{"_index":21322,"title":{},"body":{"dependencies.html":{}}}],["m=256m",{"_index":22960,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["machine",{"_index":21896,"title":{},"body":{"license.html":{}}}],["made",{"_index":13786,"title":{},"body":{"injectables/LessonCopyService.html":{},"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["magic",{"_index":15591,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["mail",{"_index":1576,"title":{"interfaces/Mail.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/ISystemProperties.html":{},"interfaces/InlineAttachment.html":{},"classes/LdapConfig.html":{},"entities/LtiTool.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"interfaces/PlainTextMailContent.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/System.html":{},"injectables/UserRepo.html":{},"license.html":{}}}],["mail.interface",{"_index":14402,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mail.service",{"_index":14396,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mail_service_options",{"_index":14397,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailattachment",{"_index":1562,"title":{"interfaces/MailAttachment.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["mailcontent",{"_index":1570,"title":{"interfaces/MailContent.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["mailmodule",{"_index":14391,"title":{"modules/MailModule.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["mailmodule.forroot",{"_index":17792,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mailmoduleoptions",{"_index":14393,"title":{"interfaces/MailModuleOptions.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailservice",{"_index":14395,"title":{"injectables/MailService.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mailserviceoptions",{"_index":14399,"title":{"interfaces/MailServiceOptions.html":{}},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["main",{"_index":21637,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["main.ts",{"_index":9444,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["maintain",{"_index":21922,"title":{},"body":{"license.html":{}}}],["maintainability",{"_index":22434,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["maintenance",{"_index":14494,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["major",{"_index":21786,"title":{},"body":{"license.html":{}}}],["make",{"_index":1921,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"modules/CommonToolModule.html":{},"classes/GlobalValidationPipe.html":{},"classes/ImportUserScope.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/PermissionService.html":{},"injectables/UserRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["makes",{"_index":21826,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["making",{"_index":19959,"title":{},"body":{"classes/UpdateNewsParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["manage",{"_index":9690,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["managed",{"_index":14112,"title":{},"body":{"controllers/LoginController.html":{}}}],["managed.'})@apiresponse({status",{"_index":14091,"title":{},"body":{"controllers/LoginController.html":{}}}],["management",{"_index":803,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/LocalStrategy.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SystemService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.config.ts",{"_index":11441,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{}}}],["management.console",{"_index":14412,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.console.ts",{"_index":3445,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["management.console.ts:12",{"_index":7650,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:14",{"_index":3455,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:31",{"_index":7658,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:58",{"_index":7655,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:7",{"_index":3450,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:72",{"_index":7663,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.controller",{"_index":14415,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.controller.ts",{"_index":7686,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:18",{"_index":7699,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:23",{"_index":7696,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:28",{"_index":7693,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:33",{"_index":7705,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:9",{"_index":7702,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.integration.spec.ts",{"_index":22939,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.module",{"_index":14424,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/SystemModule.html":{}}}],["management.module.ts",{"_index":7720,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{}}}],["management.service",{"_index":7721,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["management.service.integration.spec.tsseeding",{"_index":22941,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.service.ts",{"_index":7722,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:100",{"_index":12239,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:11",{"_index":7747,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:15",{"_index":7743,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:17",{"_index":12215,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:170",{"_index":13079,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:186",{"_index":13081,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:20",{"_index":7744,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:26",{"_index":12241,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:32",{"_index":7740,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:35",{"_index":12243,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:38",{"_index":7732,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:43",{"_index":12227,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:44",{"_index":7741,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:51",{"_index":12220,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:52",{"_index":7734,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:58",{"_index":7736,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:59",{"_index":12224,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:62",{"_index":7738,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:66",{"_index":7745,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:67",{"_index":12230,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:74",{"_index":12231,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:8",{"_index":7730,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:81",{"_index":12218,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:89",{"_index":12234,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:9",{"_index":13073,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.uc",{"_index":3461,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["management.uc.ts",{"_index":3471,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["management.uc.ts:13",{"_index":3478,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:16",{"_index":3479,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:39",{"_index":3483,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:49",{"_index":3481,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:60",{"_index":3485,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:71",{"_index":3490,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:75",{"_index":3494,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:79",{"_index":3487,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management/database",{"_index":7687,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management/identity",{"_index":11440,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{}}}],["management/idm",{"_index":13153,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["management/keycloak",{"_index":11500,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"modules/ManagementModule.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["management/keycloak/keycloak.module",{"_index":17744,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["management/keycloak/keycloak.module.ts",{"_index":13207,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["management/keycloak/service/keycloak",{"_index":13041,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["managementmodule",{"_index":14405,"title":{"modules/ManagementModule.html":{}},"body":{"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["managementservermodule",{"_index":14419,"title":{"modules/ManagementServerModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["managementservertestmodule",{"_index":14426,"title":{"modules/ManagementServerTestModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["manager",{"_index":1990,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["manager.ts",{"_index":17048,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:22",{"_index":17054,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:54",{"_index":17058,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:61",{"_index":17056,"title":{},"body":{"injectables/RuleManager.html":{}}}],["mandatory",{"_index":11285,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application.html":{}}}],["mandatory.loggable.ts",{"_index":20347,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:11",{"_index":20349,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:4",{"_index":20348,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.params",{"_index":20296,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["mandatory.params.ts",{"_index":20352,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory.params.ts:7",{"_index":20353,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory/optional",{"_index":20280,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"todo.html":{}}}],["mandatorysince",{"_index":20200,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["manifest",{"_index":5065,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["manner",{"_index":22096,"title":{},"body":{"license.html":{}}}],["manual",{"_index":10350,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["manually",{"_index":22650,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["manufacture",{"_index":7919,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["many",{"_index":21703,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["manytomany",{"_index":2682,"title":{},"body":{"entities/Board.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/LessonEntity.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{}}}],["manytomany('boardelement",{"_index":2679,"title":{},"body":{"entities/Board.html":{}}}],["manytomany('course",{"_index":7425,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytomany('material",{"_index":11326,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["manytomany('system",{"_index":11716,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["manytomany('user",{"_index":6425,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["manytomany({entity",{"_index":16785,"title":{},"body":{"entities/Role.html":{}}}],["manytoone",{"_index":4926,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{}}}],["manytoone('columnboardtarget",{"_index":4924,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["manytoone('course",{"_index":6633,"title":{},"body":{"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{}}}],["manytoone('coursegroup",{"_index":11324,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["manytoone('dashboardmodelentity",{"_index":7426,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytoone('lessonentity",{"_index":11971,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/LessonBoardElement.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["manytoone('schoolyear",{"_index":11717,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["manytoone('task",{"_index":11792,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{}}}],["manytoone('teamentity",{"_index":6762,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["manytoone('user",{"_index":6737,"title":{},"body":{"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{}}}],["manytoone(undefined",{"_index":6627,"title":{},"body":{"entities/CourseGroup.html":{},"classes/ExternalSourceEntity.html":{},"entities/FileEntity.html":{},"entities/GroupEntity.html":{},"classes/GroupUserEntity.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"classes/TeamUserEntity.html":{},"entities/UserLoginMigration.html":{}}}],["map",{"_index":3331,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"injectables/DeleteFilesUc.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageMapper.html":{},"classes/GridElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"injectables/LessonCopyService.html":{},"classes/MetadataTypeMapper.html":{},"injectables/ProvisioningService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["map((element",{"_index":6311,"title":{},"body":{"classes/CopyMapper.html":{}}}],["map((elementwithposition",{"_index":7474,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["map((entity",{"_index":18641,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["map((group",{"_index":17298,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((match",{"_index":12565,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["map((relation",{"_index":17309,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((role",{"_index":20121,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["map((rolename",{"_index":20547,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["map((teacher",{"_index":5022,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["map(async",{"_index":11177,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["map.set(key",{"_index":6279,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map.set(status.originalentity.id",{"_index":6281,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map[node.id",{"_index":3329,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["map[node.pathofchildren",{"_index":3622,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["map[node.pathofchildren].push(desc",{"_index":3623,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["mapaccountstodto",{"_index":628,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapaccountstodto(accounts",{"_index":631,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapbasictoolconfigdotoentity",{"_index":8801,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoentity(lti11config",{"_index":8811,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoresponse",{"_index":8997,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigdotoresponse(externaltoolconfigdo",{"_index":9004,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigtodo",{"_index":8802,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigtodo(lti11config",{"_index":8814,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapboardelements",{"_index":16867,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapbodytodto",{"_index":19304,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapbodytodto(body",{"_index":19305,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapcolumnboard",{"_index":16868,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapcolumnboardelement",{"_index":7920,"title":{},"body":{"classes/DtoCreator.html":{}}}],["mapcolumnboardelement(element",{"_index":7940,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mapconsentresponse",{"_index":15643,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentresponse(consent",{"_index":15648,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse",{"_index":15644,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse(session",{"_index":15650,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapcontenttoresource",{"_index":4936,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontenttoresource(lessonid",{"_index":4952,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontextexternaltoolrequest",{"_index":5813,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolrequest(request",{"_index":5815,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolresponse",{"_index":5853,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontextexternaltoolresponse(contextexternaltool",{"_index":5854,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontexttypetoallowedauthorizationentitytype",{"_index":6018,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["mapcontexttypetoallowedauthorizationentitytype(type",{"_index":6019,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["mapcontexttypetodotype",{"_index":5746,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetodotype(type",{"_index":5760,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype",{"_index":5747,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype(type",{"_index":5762,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto",{"_index":10123,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto(copyfilelistresponse",{"_index":10129,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto",{"_index":10124,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto(response",{"_index":10131,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcourseteacherstocopyrightowners",{"_index":4937,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseteacherstocopyrightowners(course",{"_index":4957,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseuserstousergroup",{"_index":3119,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcourseuserstousergroup(course",{"_index":3127,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcreateacceptloginrequestbody",{"_index":15638,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreateacceptloginrequestbody(loginrequestbody",{"_index":15639,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreatenewstodomain",{"_index":14666,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreatenewstodomain(params",{"_index":14670,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreaterequest",{"_index":8886,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcreaterequest(externaltoolcreateparams",{"_index":8896,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcustomparameterdostoentities",{"_index":8803,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterdostoentities(customparameters",{"_index":8816,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities",{"_index":8804,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities(entries",{"_index":8818,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos",{"_index":8805,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos(entries",{"_index":8821,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos",{"_index":8806,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos(customparameters",{"_index":8823,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparametertoresponse",{"_index":8998,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapcustomparametertoresponse(customparameters",{"_index":9007,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapdashboardtoentity",{"_index":7501,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtoentity(modelentity",{"_index":7516,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel",{"_index":7502,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel(entity",{"_index":7519,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdomainobjecttoentityproperties",{"_index":8730,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(entitydo",{"_index":8742,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(group",{"_index":10596,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapdomaintoadapter",{"_index":4527,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoadapter(team",{"_index":4528,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoresponse",{"_index":22568,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapdosortordertoqueryorder",{"_index":9178,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdosortordertoqueryorder(sort",{"_index":9179,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdotoentityproperties",{"_index":2389,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["mapdotoentityproperties(domainobject",{"_index":17979,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["mapdotoentityproperties(entitydo",{"_index":2415,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["mapdotoprovideroauthclient",{"_index":9165,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdotoprovideroauthclient(name",{"_index":9166,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdtotoresponse",{"_index":14480,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapdtotoresponse(dto",{"_index":14481,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapelementtoentity",{"_index":7503,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapelementtoentity(modelentity",{"_index":7521,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapentitytodo",{"_index":2390,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["mapentitytodo(entity",{"_index":2418,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["mapentitytodomainobject",{"_index":8731,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobject(entity",{"_index":8744,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobjectproperties",{"_index":10591,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodomainobjectproperties(entity",{"_index":10599,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodto",{"_index":19264,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytodto(teamentity",{"_index":19265,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytoparenttype",{"_index":10125,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapentitytoparenttype(entity",{"_index":10133,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapexternalsourceentitytoexternalsource",{"_index":10592,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourceentitytoexternalsource(entity",{"_index":10602,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity",{"_index":10593,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity(externalsource",{"_index":10604,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery",{"_index":8887,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery(params",{"_index":8899,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto",{"_index":10126,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto(filerecordlistresponse",{"_index":10135,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto",{"_index":10127,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto(filerecordresponse",{"_index":10137,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordtofilerecordparams",{"_index":10204,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfilerecordtofilerecordparams(filerecord",{"_index":10208,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfootodomain",{"_index":22569,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapfromdtotolistresponse",{"_index":18673,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotolistresponse(systems",{"_index":18676,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse",{"_index":18674,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse(system",{"_index":18677,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromentitiestodtos",{"_index":16793,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitiestodtos(enities",{"_index":16795,"title":{},"body":{"classes/RoleMapper.html":{}}}],["mapfromentitiestodtos(entities",{"_index":18611,"title":{},"body":{"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitytodto",{"_index":16794,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromentitytodto(entity",{"_index":16798,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromoauthconfigdtotoresponse",{"_index":18675,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigdtotoresponse(oauthconfigdto",{"_index":18679,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigentitytodto",{"_index":18610,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoauthconfigentitytodto(oauthconfig",{"_index":18614,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoidcconfigentitytodto",{"_index":18632,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapfromoidcconfigentitytodto(systemid",{"_index":18635,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapgridelement",{"_index":7465,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelement(data",{"_index":7467,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelementtomodel",{"_index":7504,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgridelementtomodel(elementwithposition",{"_index":7523,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgroupuserentitytogroupuser",{"_index":10594,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupuserentitytogroupuser(entity",{"_index":10606,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity",{"_index":10595,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity(groupuser",{"_index":10609,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapimportuserfilterquerytodomain",{"_index":12380,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportuserfilterquerytodomain(query",{"_index":12381,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportusermatchscopetodomain",{"_index":12427,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapimportusermatchscopetodomain(match",{"_index":12429,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["maplearnroom",{"_index":7466,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplearnroom(metadata",{"_index":7469,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplesson",{"_index":16869,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maplessoncopytodomain",{"_index":6284,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessoncopytodomain(params",{"_index":6286,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessonelement",{"_index":7921,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maplessonelement(element",{"_index":7942,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maplogindtotoresponse",{"_index":14146,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maplogindtotoresponse(logindto",{"_index":14147,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maploginresponse",{"_index":15645,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maploginresponse(providerloginresponse",{"_index":15652,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maplti11toolconfigdotoentity",{"_index":8807,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoentity(lti11config",{"_index":8827,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoresponse",{"_index":8999,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigdotoresponse(externaltoolconfigdo",{"_index":9009,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigtodo",{"_index":8808,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigtodo(lti11config",{"_index":8829,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapmatchcreatortoresponse",{"_index":12428,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapmatchcreatortoresponse(matchcreator",{"_index":12431,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapnewsscopetodomain",{"_index":14667,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapnewsscopetodomain(query",{"_index":14672,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapoauth2configdotoentity",{"_index":8809,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configdotoentity(oauth2config",{"_index":8831,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo",{"_index":8810,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo(oauth2config",{"_index":8834,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2toolconfigdotoresponse",{"_index":9000,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauth2toolconfigdotoresponse(externaltoolconfigdo",{"_index":9011,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauthclientresponse",{"_index":15646,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapoauthclientresponse(oauthclient",{"_index":15654,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapped",{"_index":4533,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/DtoCreator.html":{},"classes/GroupDomainMapper.html":{},"controllers/LoginController.html":{},"controllers/OauthProviderController.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"injectables/SanisResponseMapper.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapped.id",{"_index":19672,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["mappedcolumnboard",{"_index":16916,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedconfig",{"_index":8948,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappedcustomparameter",{"_index":8953,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappedelements",{"_index":7570,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mappedelements.includes(el",{"_index":7574,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mappedentity",{"_index":18651,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["mappedlesson",{"_index":16910,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedlocation",{"_index":19754,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mappedtask",{"_index":16893,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.availabledate",{"_index":16902,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.coursename",{"_index":16900,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.description",{"_index":16908,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.displaycolor",{"_index":16906,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.duedate",{"_index":16904,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtools",{"_index":19577,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{}}}],["mappedtype",{"_index":19756,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mapper",{"_index":206,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/ColumnController.html":{},"injectables/CopyFilesService.html":{},"injectables/DashboardRepo.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"interfaces/IDashboardRepo.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/Oauth2Strategy.html":{},"injectables/PreviewService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapper.canmap(element",{"_index":5526,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapper.interface",{"_index":5520,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["mapper.interface.ts",{"_index":2590,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:5",{"_index":2596,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:7",{"_index":2593,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.maptoresponse(item",{"_index":3707,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["mapper.maptoresponse(submissionitem",{"_index":8081,"title":{},"body":{"controllers/ElementController.html":{}}}],["mapper.name",{"_index":12969,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mapper.ts",{"_index":22567,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapper/account",{"_index":1233,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["mapper/course.mapper",{"_index":6499,"title":{},"body":{"controllers/CourseController.html":{}}}],["mapper/dashboard.mapper",{"_index":7233,"title":{},"body":{"controllers/DashboardController.html":{}}}],["mapper/error.mapper",{"_index":10295,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["mapper/identity",{"_index":12835,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["mapper/import",{"_index":12300,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["mapper/login",{"_index":14101,"title":{},"body":{"controllers/LoginController.html":{}}}],["mapper/migration.mapper",{"_index":13445,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["mapper/news.mapper",{"_index":14613,"title":{},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"controllers/TeamNewsController.html":{}}}],["mapper/oauth",{"_index":15415,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/provisioning",{"_index":16336,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["mapper/role.mapper",{"_index":16847,"title":{},"body":{"injectables/RoleService.html":{}}}],["mapper/room",{"_index":13383,"title":{},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["mapper/system",{"_index":18540,"title":{},"body":{"controllers/SystemController.html":{}}}],["mapper/team.mapper",{"_index":4645,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["mapper/token",{"_index":15075,"title":{},"body":{"injectables/OAuthService.html":{}}}],["mapper/tool",{"_index":19543,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"injectables/ToolReferenceUc.html":{}}}],["mapper/user",{"_index":12303,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/user.mapper",{"_index":20780,"title":{},"body":{"injectables/UserService.html":{}}}],["mapper/vc",{"_index":21015,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["mapper/video",{"_index":20901,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["mapperid",{"_index":12972,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mappers",{"_index":5515,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mapping",{"_index":22541,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mapredirectresponse",{"_index":15647,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapredirectresponse(redirect",{"_index":15655,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapreferencetoentity",{"_index":7505,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetoentity(modelentity",{"_index":7525,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel",{"_index":7506,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel(reference",{"_index":7527,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["maprequesttobasictoolconfig",{"_index":8888,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttobasictoolconfig(externaltoolconfigparams",{"_index":8902,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo",{"_index":8889,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo(customparameterparams",{"_index":8906,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo",{"_index":5814,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo(customparameterparams",{"_index":5818,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate",{"_index":8890,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate(externaltoolconfigparams",{"_index":8909,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate",{"_index":8891,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate(externaltoolconfigparams",{"_index":8912,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate",{"_index":8892,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate(externaltoolconfigparams",{"_index":8916,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate",{"_index":8893,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate(externaltoolconfigparams",{"_index":8919,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprolestoltiroles",{"_index":14261,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprolestoltiroles(rolenames",{"_index":14262,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprpcerrorresponsetodomainerror",{"_index":8201,"title":{},"body":{"classes/ErrorMapper.html":{},"injectables/FilesStorageProducer.html":{}}}],["maprpcerrorresponsetodomainerror(errorobj",{"_index":8202,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["maps",{"_index":4530,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["mapsanisroletorolename",{"_index":17265,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapsanisroletorolename(source",{"_index":17269,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapscanresultparamstodto",{"_index":9806,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapscanresultparamstodto(scanresultparams",{"_index":9809,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapschoolexternaltoolrequest",{"_index":17414,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapschoolexternaltoolrequest(request",{"_index":17416,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapsearchparamstoquery",{"_index":20356,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchparamstoquery(searchparams",{"_index":20358,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchresult",{"_index":629,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsearchresult(accountentities",{"_index":633,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsessiontodto",{"_index":15381,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsessiontodto(session",{"_index":15382,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsortingquerytodomain",{"_index":8894,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapsortingquerytodomain(sortingquery",{"_index":8923,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapstringtoparenttype",{"_index":10128,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapstringtoparenttype(input",{"_index":10139,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["maptask",{"_index":16870,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maptaskcopytodomain",{"_index":6285,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcopytodomain(params",{"_index":6290,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcreatetodomain",{"_index":18906,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskcreatetodomain(params",{"_index":18908,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskelement",{"_index":7922,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptaskelement(element",{"_index":7944,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptasktowebcontentresource",{"_index":4938,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptasktowebcontentresource(task",{"_index":4962,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptaskupdatetodomain",{"_index":18907,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskupdatetodomain(params",{"_index":18910,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoallowedauthorizationentitytype",{"_index":10205,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowedauthorizationentitytype(type",{"_index":10210,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowemetadatatype",{"_index":14449,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptoallowemetadatatype(type",{"_index":14450,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptobaseresponse",{"_index":21192,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptobaseresponse(from",{"_index":21195,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoboardelement",{"_index":2743,"title":{},"body":{"entities/Board.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse",{"_index":19562,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse(toolinfos",{"_index":19566,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse",{"_index":19563,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse(toolinfo",{"_index":19569,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocustomparameterentryresponse",{"_index":17430,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptocustomparameterentryresponse(entries",{"_index":17433,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptodo",{"_index":4342,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodo(entity",{"_index":4346,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodomain",{"_index":16812,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptodomain(query",{"_index":20535,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["maptodomain(rolename",{"_index":16813,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptodos",{"_index":4343,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodos(entities",{"_index":4348,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodto",{"_index":630,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/CalendarMapper.html":{}}}],["maptodto(account",{"_index":636,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["maptodto(event",{"_index":3937,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["maptoelementdtos",{"_index":7923,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptoelementdtos(elements",{"_index":7946,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptoentities",{"_index":4344,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentities(domainobjects",{"_index":4350,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity",{"_index":4345,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity(domainobject",{"_index":4352,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoexternalgroupdtos",{"_index":17266,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupdtos(source",{"_index":17271,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser",{"_index":17267,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser(relation",{"_index":17273,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto",{"_index":12596,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto(schooldo",{"_index":12598,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptoexternalschooldto(source",{"_index":17274,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaltoolresponse",{"_index":9001,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaltoolresponse(externaltool",{"_index":9013,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaluserdto",{"_index":12597,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(source",{"_index":17276,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(userdo",{"_index":12601,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptofilerecordlistresponse",{"_index":9807,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordlistresponse(filerecords",{"_index":9812,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse",{"_index":9808,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse(filerecord",{"_index":9814,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptoinforesponse",{"_index":21193,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoinforesponse(from",{"_index":21197,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptointernal",{"_index":16362,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptointernal(dto",{"_index":16363,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptojoinresponse",{"_index":21194,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptojoinresponse(from",{"_index":21198,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptokenresponsetodto",{"_index":19492,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokenresponsetodto(response",{"_index":19495,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokeycloakidentityprovider",{"_index":15885,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptokeycloakidentityprovider(oidcconfig",{"_index":15888,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptologmessagedata",{"_index":14668,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptologmessagedata(news",{"_index":14674,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptometadataresponse",{"_index":6682,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptometadataresponse(course",{"_index":6683,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptoparameterlocation",{"_index":19731,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoparameterlocation(location",{"_index":19735,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoresponse",{"_index":975,"title":{},"body":{"classes/AccountResponseMapper.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/CopyMapper.html":{},"classes/DashboardMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/ImportUserMapper.html":{},"classes/NewsMapper.html":{},"classes/ResolvedUserMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SchoolInfoMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptoresponse(account",{"_index":977,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponse(board",{"_index":3670,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["maptoresponse(card",{"_index":4114,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["maptoresponse(column",{"_index":4896,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["maptoresponse(copystatus",{"_index":6294,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptoresponse(dashboard",{"_index":7471,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maptoresponse(element",{"_index":2595,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["maptoresponse(importuser",{"_index":12384,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["maptoresponse(news",{"_index":14676,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptoresponse(rolename",{"_index":16815,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptoresponse(schoolinfo",{"_index":17568,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["maptoresponse(sharetoken",{"_index":18002,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["maptoresponse(sharetokeninfo",{"_index":17957,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["maptoresponse(status",{"_index":3732,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{},"classes/TaskStatusMapper.html":{}}}],["maptoresponse(submissionitem",{"_index":18318,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptoresponse(target",{"_index":18740,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["maptoresponse(taskwithstatus",{"_index":18913,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoresponse(user",{"_index":16681,"title":{},"body":{"classes/ResolvedUserMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptoresponsefromentity",{"_index":976,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponsefromentity(account",{"_index":979,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse",{"_index":19564,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse(externaltools",{"_index":19572,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse",{"_index":19565,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse(externaltool",{"_index":19574,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolresponse",{"_index":17431,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":17435,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse",{"_index":17432,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse(externaltools",{"_index":17436,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosinglefileparams",{"_index":10206,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptosinglefileparams(params",{"_index":10214,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostatusresponse",{"_index":18377,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostatusresponse(submission",{"_index":18378,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostreamablefile",{"_index":10207,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostreamablefile(fileresponse",{"_index":10216,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptotoolconfigtype",{"_index":19732,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolconfigtype(launchdatatype",{"_index":19737,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype",{"_index":19733,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype(configtype",{"_index":19740,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse",{"_index":19734,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse(toollaunchrequest",{"_index":19743,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolreference",{"_index":19851,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreference(externaltool",{"_index":19852,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreferenceresponse",{"_index":9002,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponse(toolreference",{"_index":9015,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses",{"_index":9003,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses(toolreferences",{"_index":9019,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapupdatenewstodomain",{"_index":14669,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdatenewstodomain(params",{"_index":14678,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdaterequest",{"_index":8895,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapupdaterequest(externaltoolupdateparams",{"_index":8928,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapuserloginmigrationdotoresponse",{"_index":20357,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserloginmigrationdotoresponse(domainobject",{"_index":20361,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["march",{"_index":22137,"title":{},"body":{"license.html":{}}}],["marked",{"_index":7779,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["markedfordelete",{"_index":9795,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["markfilesownedbyuserfordeletion",{"_index":10071,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfilesownedbyuserfordeletion(userid",{"_index":10074,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfordelete",{"_index":9763,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"miscellaneous/functions.html":{}}}],["markfordelete(filerecords",{"_index":21528,"title":{},"body":{"miscellaneous/functions.html":{}}}],["markfordeletion",{"_index":9623,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["marks",{"_index":22013,"title":{},"body":{"license.html":{}}}],["markunmigratedusersasoutdated",{"_index":17589,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["markunmigratedusersasoutdated(schoolid",{"_index":17607,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["masks",{"_index":21727,"title":{},"body":{"license.html":{}}}],["master",{"_index":22943,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["match",{"_index":577,"title":{},"body":{"controllers/AccountController.html":{},"classes/ApiValidationErrorResponse.html":{},"entities/Board.html":{},"classes/ErrorResponse.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FilesRepo.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"injectables/LessonRepo.html":{},"classes/PatchMyPasswordParams.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["match.mapper",{"_index":12304,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["match.mapper.ts",{"_index":20534,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:20",{"_index":20537,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:8",{"_index":20536,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.params.ts",{"_index":19953,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.params.ts:7",{"_index":19955,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.response",{"_index":12362,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["match.response.ts",{"_index":20529,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["match.response.ts:19",{"_index":20557,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:22",{"_index":20554,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:25",{"_index":20552,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:28",{"_index":20553,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:35",{"_index":20556,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:41",{"_index":20555,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:44",{"_index":20530,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["match.response.ts:7",{"_index":20551,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match_matchedby",{"_index":11488,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["match_userid",{"_index":11486,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/UserRepo.html":{}}}],["matchancestors",{"_index":3615,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchancestors(desc",{"_index":3620,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchcreator",{"_index":11450,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["matchcreator.auto",{"_index":12443,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreator.manual",{"_index":12441,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreatorscope",{"_index":11495,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.auto",{"_index":12435,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.manual",{"_index":12437,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.none",{"_index":12439,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matched",{"_index":3885,"title":{},"body":{"classes/BusinessError.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{}}}],["matched(matchedby",{"_index":12345,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["matchedby",{"_index":11448,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["matches",{"_index":472,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"injectables/CopyHelperService.html":{},"classes/CourseQueryParams.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["matches(object.values(commoncartridgeversion).join",{"_index":6766,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["matches(passwordpattern",{"_index":476,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["matches.groups",{"_index":6271,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["matches.groups.name",{"_index":6272,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["matches.length",{"_index":11480,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matches[1",{"_index":11481,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matching",{"_index":104,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"modules.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["matchingparameter",{"_index":296,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["matchingparameterentry",{"_index":180,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["matchingparameterentry?.value",{"_index":328,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["matchingparams",{"_index":9280,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchingparams.some((param",{"_index":9326,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchsinglerule",{"_index":17050,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchsinglerule(rules",{"_index":17055,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchtype",{"_index":12433,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["matchtype.auto",{"_index":12444,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchtype.manual",{"_index":12442,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["material",{"_index":11307,"title":{"entities/Material.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"license.html":{}}}],["material(element",{"_index":13816,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["materialfactory",{"_index":14440,"title":{"classes/MaterialFactory.html":{}},"body":{"classes/MaterialFactory.html":{}}}],["materialfactory.define(material",{"_index":14443,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["materialgroupstatus",{"_index":13820,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["materialid",{"_index":11316,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["materialids",{"_index":11327,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["materially",{"_index":21979,"title":{},"body":{"license.html":{}}}],["materials",{"_index":11310,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"entities/Material.html":{}}}],["materials.entity",{"_index":11308,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["materialsrepo",{"_index":14444,"title":{"injectables/MaterialsRepo.html":{}},"body":{"injectables/MaterialsRepo.html":{}}}],["materialsstatus",{"_index":13709,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["materialsstatus.push(materialgroupstatus",{"_index":13823,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["math.ceil(timedifference",{"_index":1845,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["math.floor(index",{"_index":7351,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["math.floor(math.random",{"_index":3526,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["math.round(math.random",{"_index":9800,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["matter",{"_index":22870,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["max",{"_index":3493,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["max(100",{"_index":16055,"title":{},"body":{"classes/PaginationParams.html":{}}}],["max(500",{"_index":13987,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["max_file_size",{"_index":11406,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["max_redirects",{"_index":10927,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["max_security_check_file_size",{"_index":11407,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["maxage",{"_index":17822,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["maxdelay",{"_index":13305,"title":{},"body":{"injectables/LdapService.html":{}}}],["maxexternaltoollogosizeinbytes",{"_index":8616,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["maximum",{"_index":1037,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["maxredirects",{"_index":10967,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["maxsubmission",{"_index":12005,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["maxsubmissions",{"_index":3741,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["maxusers",{"_index":2261,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["maybe",{"_index":8838,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["md",{"_index":22290,"title":{},"body":{"todo.html":{}}}],["me(@currentuser",{"_index":20018,"title":{},"body":{"controllers/UserController.html":{}}}],["me(authtoken",{"_index":1322,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["me(currentuser",{"_index":20013,"title":{},"body":{"controllers/UserController.html":{}}}],["me(userid",{"_index":20770,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["meaning",{"_index":22021,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["meaningful",{"_index":21642,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["means",{"_index":21610,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["measure",{"_index":21834,"title":{},"body":{"license.html":{}}}],["measures",{"_index":21612,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mechanism",{"_index":22515,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["medium",{"_index":21858,"title":{},"body":{"license.html":{}}}],["meet",{"_index":21870,"title":{},"body":{"license.html":{}}}],["meeting",{"_index":2253,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{}}}],["meeting.config",{"_index":2131,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["meeting.config.ts",{"_index":2093,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:1",{"_index":2096,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:6",{"_index":2097,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting_id",{"_index":2249,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["meetingid",{"_index":2094,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["meetingname",{"_index":2262,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["meets",{"_index":21773,"title":{},"body":{"license.html":{}}}],["member",{"_index":1304,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ErrorLoggable.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/JwtExtractor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/TeamsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["memberids",{"_index":11833,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["memberids.some((id",{"_index":11838,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["members",{"_index":1359,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/NextcloudStrategy.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/ShareTokenBodyParams.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["memory",{"_index":10323,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["memorystore",{"_index":17810,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mention",{"_index":22894,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["mentioned",{"_index":22486,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mentor",{"_index":6965,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["menu",{"_index":21771,"title":{},"body":{"license.html":{}}}],["merchantability",{"_index":22179,"title":{},"body":{"license.html":{}}}],["mere",{"_index":21758,"title":{},"body":{"license.html":{}}}],["merge",{"_index":21646,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mergeelementintoposition",{"_index":7263,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["mergeelementintoposition(element",{"_index":7295,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["merging",{"_index":22068,"title":{},"body":{"license.html":{}}}],["merlinreference",{"_index":11318,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["message",{"_index":1327,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/AuthorizationError.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/IError.html":{},"interfaces/ILegacyLogger.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"interfaces/Meta.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"interfaces/NextcloudGroups.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"interfaces/OcsResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"interfaces/SuccessfulRes.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["message.ts",{"_index":11400,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["messagekey",{"_index":2103,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["messages",{"_index":22889,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["messagewithcontext",{"_index":14077,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["met",{"_index":21809,"title":{},"body":{"license.html":{}}}],["meta",{"_index":10747,"title":{"interfaces/Meta.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["meta_bbb",{"_index":2114,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["metadata",{"_index":2263,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"classes/ErrorLoggable.html":{},"classes/GlobalValidationPipe.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["metadata.response.ts",{"_index":6696,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:28",{"_index":6712,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:33",{"_index":6715,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:38",{"_index":6713,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:43",{"_index":6711,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:48",{"_index":6714,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:5",{"_index":6709,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:53",{"_index":6716,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:58",{"_index":6710,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:61",{"_index":6697,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["metadata.type",{"_index":7548,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["metadataprops",{"_index":5162,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["metadatas",{"_index":8165,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatas.some",{"_index":8169,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatatypemapper",{"_index":14447,"title":{"classes/MetadataTypeMapper.html":{}},"body":{"classes/MetadataTypeMapper.html":{}}}],["method",{"_index":235,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/BBBService.html":{},"injectables/CommonCartridgeExportService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/HydraAdapter.html":{},"interfaces/ILegacyLogger.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/Lti11EncryptionService.html":{},"classes/OauthClientBody.html":{},"injectables/PermissionService.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"classes/ServerConsole.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["method.enum",{"_index":15272,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["methodes",{"_index":23117,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["methodnotallowedexception",{"_index":7906,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["methods",{"_index":8,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IGridElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementResponseMapper.html":{},"modules/RocketChatModule.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["metric",{"_index":16256,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics",{"_index":16253,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts",{"_index":16243,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:19",{"_index":16246,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:22",{"_index":16247,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["micro",{"_index":23044,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["microservice",{"_index":22371,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["microservices",{"_index":23110,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["middleware",{"_index":16257,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["middlewareconsumer",{"_index":17766,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["middlewares",{"_index":16254,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["migrate",{"_index":11616,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/OauthUc.html":{},"classes/SchoolMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{},"dependencies.html":{}}}],["migrate(options",{"_index":11619,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["migrate(skip",{"_index":13017,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["migrate(start",{"_index":13178,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migrate(userjwt",{"_index":15815,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated",{"_index":14925,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated.'})@apiresponse({type",{"_index":15713,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migratedaccounts",{"_index":13181,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migratedusers",{"_index":17652,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migratedusers.data.foreach((user",{"_index":17653,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrates",{"_index":20503,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrateschool",{"_index":17590,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateschool(externalid",{"_index":17609,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateuser",{"_index":15694,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{}}}],["migrateuser(currentuserid",{"_index":20600,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migrateuser(jwt",{"_index":15710,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrateuserlogin",{"_index":20244,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrateuserlogin(jwt",{"_index":20265,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrating",{"_index":20212,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration",{"_index":52,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"modules/ImportUserModule.html":{},"classes/KeycloakConsole.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/OAuthMigrationError.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/SSOLoginQuery.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{}}}],["migration.controller",{"_index":20237,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.controller.ts",{"_index":20240,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:115",{"_index":20286,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:139",{"_index":20274,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:167",{"_index":20281,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:17",{"_index":20561,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:199",{"_index":20253,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:214",{"_index":20268,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:59",{"_index":20264,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:89",{"_index":20258,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.do.ts",{"_index":20326,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:11",{"_index":20330,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:13",{"_index":20333,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:15",{"_index":20329,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:17",{"_index":20328,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:5",{"_index":20331,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:7",{"_index":20332,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:9",{"_index":20334,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.dto",{"_index":13468,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{}}}],["migration.dto.ts",{"_index":15389,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:10",{"_index":15390,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:2",{"_index":15394,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:4",{"_index":15393,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:6",{"_index":15392,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:8",{"_index":15391,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.entity",{"_index":11697,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["migration.entity.ts",{"_index":20198,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:11",{"_index":20205,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:15",{"_index":20206,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:18",{"_index":20208,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:21",{"_index":20204,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:24",{"_index":20207,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:27",{"_index":20202,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:30",{"_index":20203,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.error",{"_index":15160,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{}}}],["migration.error.ts",{"_index":13247,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/OAuthMigrationError.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["migration.error.ts:11",{"_index":13252,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.error.ts:12",{"_index":15001,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:14",{"_index":14995,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:17",{"_index":14516,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:22",{"_index":14517,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:28",{"_index":14453,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:33",{"_index":14454,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:4",{"_index":17552,"title":{},"body":{"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["migration.error.ts:6",{"_index":13250,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.mapper",{"_index":15734,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migration.mapper.ts",{"_index":20355,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:13",{"_index":20362,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.mapper.ts:5",{"_index":20577,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:6",{"_index":20359,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.module",{"_index":20238,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.module.ts",{"_index":20375,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["migration.params",{"_index":20293,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.params.ts",{"_index":15150,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:13",{"_index":15151,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:17",{"_index":15153,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:8",{"_index":15152,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.repo.ts",{"_index":20379,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:10",{"_index":20380,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:15",{"_index":20384,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:23",{"_index":20381,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.response",{"_index":15727,"title":{},"body":{"controllers/OauthSSOController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration.response.ts",{"_index":20402,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:1",{"_index":20580,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:12",{"_index":20408,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:17",{"_index":20405,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:22",{"_index":20407,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:27",{"_index":20404,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:32",{"_index":20403,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:6",{"_index":20581,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:7",{"_index":20406,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.rule",{"_index":17062,"title":{},"body":{"injectables/RuleManager.html":{}}}],["migration.rule.ts",{"_index":20418,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:11",{"_index":20421,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:17",{"_index":20420,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:8",{"_index":20419,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.service",{"_index":12841,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts",{"_index":13173,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:106",{"_index":17617,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:111",{"_index":20446,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:119",{"_index":20604,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:12",{"_index":17594,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:129",{"_index":20430,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:130",{"_index":17600,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:135",{"_index":20592,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:141",{"_index":17612,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:147",{"_index":17597,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:149",{"_index":20432,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:158",{"_index":17603,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:159",{"_index":20589,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:165",{"_index":17606,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:169",{"_index":20594,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:171",{"_index":20450,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:18",{"_index":13179,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:181",{"_index":20436,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:189",{"_index":20438,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:195",{"_index":20440,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:20",{"_index":17619,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:21",{"_index":20607,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:215",{"_index":20434,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:23",{"_index":20609,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:25",{"_index":20606,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:27",{"_index":20608,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:28",{"_index":17610,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:29",{"_index":20444,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:42",{"_index":20597,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:43",{"_index":17615,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:48",{"_index":13177,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:54",{"_index":20599,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:81",{"_index":17608,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:82",{"_index":20448,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:9",{"_index":13175,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:91",{"_index":20598,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:95",{"_index":20442,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:97",{"_index":20601,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.uc",{"_index":20563,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.uc.ts",{"_index":4444,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:11",{"_index":4451,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:14",{"_index":16704,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:15",{"_index":19477,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:155",{"_index":20493,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:18",{"_index":20485,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:19",{"_index":4453,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:21",{"_index":18152,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:23",{"_index":19480,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:24",{"_index":16707,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:30",{"_index":20491,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:40",{"_index":20489,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:44",{"_index":18150,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:49",{"_index":16705,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:51",{"_index":19478,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:58",{"_index":4456,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:60",{"_index":20487,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:78",{"_index":20494,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/controller/dto/oauth2",{"_index":15149,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration/controller/dto/request/page",{"_index":16031,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["migration/controller/dto/request/school",{"_index":17550,"title":{},"body":{"classes/SchoolIdParams.html":{}}}],["migration/controller/dto/request/user",{"_index":20351,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["migration/controller/dto/response/page",{"_index":16044,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["migration/controller/dto/response/user",{"_index":20401,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration/controller/user",{"_index":20239,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration/error",{"_index":20645,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/error/oauth",{"_index":14989,"title":{},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{}}}],["migration/error/school",{"_index":17578,"title":{},"body":{"classes/SchoolMigrationError.html":{},"classes/SchoolNumberMissingLoggableException.html":{}}}],["migration/error/user",{"_index":20225,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["migration/loggable/user",{"_index":20346,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["migration/mapper/page",{"_index":16022,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["migration/mapper/user",{"_index":20354,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration/service",{"_index":15825,"title":{},"body":{"injectables/OauthUc.html":{}}}],["migration/service/dto",{"_index":15730,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/UserMigrationMapper.html":{}}}],["migration/service/dto/migration.dto.ts",{"_index":14474,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/migration.dto.ts:2",{"_index":14476,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/page",{"_index":16011,"title":{},"body":{"classes/PageContentDto.html":{}}}],["migration/service/dto/school",{"_index":17581,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["migration/service/migration",{"_index":14460,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["migration/service/school",{"_index":17585,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration/service/user",{"_index":20409,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration/success",{"_index":20649,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/uc/close",{"_index":4443,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration/uc/dto/user",{"_index":20377,"title":{},"body":{"interfaces/UserLoginMigrationQuery.html":{}}}],["migration/uc/restart",{"_index":16702,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration/uc/start",{"_index":18146,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration/uc/toggle",{"_index":19475,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration/uc/user",{"_index":20481,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/user",{"_index":17783,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationalreadyactivatedexception",{"_index":13258,"title":{"classes/MigrationAlreadyActivatedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["migrationbody",{"_index":13458,"title":{"classes/MigrationBody.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/MigrationBody.html":{}}}],["migrationbody.oauthmigrationfinished",{"_index":13479,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationmandatory",{"_index":13478,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationpossible",{"_index":13477,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationcheckservice",{"_index":14459,"title":{"injectables/MigrationCheckService.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationconsentredirect",{"_index":15088,"title":{},"body":{"injectables/OAuthService.html":{}}}],["migrationdto",{"_index":13474,"title":{"classes/MigrationDto.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{}}}],["migrationdto.redirect",{"_index":20518,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationdto.redirect.includes('migration/error",{"_index":20517,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationerror",{"_index":15752,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromsource",{"_index":15754,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromtarget",{"_index":15755,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler",{"_index":15695,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler(error",{"_index":15715,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationflags",{"_index":13453,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationmapper",{"_index":13438,"title":{"injectables/MigrationMapper.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{}}}],["migrationmaybecompleted",{"_index":14488,"title":{"classes/MigrationMayBeCompleted.html":{}},"body":{"classes/MigrationMayBeCompleted.html":{}}}],["migrationmaynotbecompleted",{"_index":14496,"title":{"classes/MigrationMayNotBeCompleted.html":{}},"body":{"classes/MigrationMayNotBeCompleted.html":{}}}],["migrationpage",{"_index":20299,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.data.map",{"_index":20303,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.total",{"_index":20305,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse",{"_index":13469,"title":{"classes/MigrationResponse.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{}}}],["migrationresponses",{"_index":20302,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse})@apiunauthorizedresponse",{"_index":13460,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationresponse})@apiunauthorizedresponse()@apinotfoundresponse({description",{"_index":13454,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrations",{"_index":20241,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationsflags",{"_index":13455,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["mikro",{"_index":96,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"classes/BasicToolConfigEntity.html":{},"entities/Board.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"injectables/ClassesRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"classes/DoBaseFactory.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesRepo.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"modules/H5PEditorModule.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/LdapConfig.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/Scope.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mikroorm",{"_index":7662,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"injectables/FilesStorageConsumer.html":{},"modules/MongoMemoryDatabaseModule.html":{},"interfaces/Options.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mikroorm/asynclocalstorage",{"_index":22282,"title":{},"body":{"todo.html":{}}}],["mikroormmodule",{"_index":10250,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mikroormmodule.forroot",{"_index":10275,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mikroormmodule.forrootasync",{"_index":14541,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmoduleasyncoptions",{"_index":14536,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmodulesyncoptions",{"_index":10251,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mikroservice",{"_index":22540,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["milliseconds",{"_index":17651,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["mime",{"_index":9712,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{},"dependencies.html":{}}}],["mimetype",{"_index":1565,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/GetFile.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{},"injectables/PreviewService.html":{},"interfaces/S3Config-1.html":{},"miscellaneous/functions.html":{}}}],["mimetype.split('/')[1",{"_index":16194,"title":{},"body":{"injectables/PreviewService.html":{}}}],["min",{"_index":3437,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/BoardManagementUc.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PaginationParams.html":{}}}],["min(0",{"_index":3442,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PaginationParams.html":{}}}],["min(1",{"_index":16054,"title":{},"body":{"classes/PaginationParams.html":{}}}],["mind",{"_index":23019,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["minimum",{"_index":1036,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["minio",{"_index":22317,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_password=miniouser",{"_index":22331,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_user=`miniouser",{"_index":22330,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minios3storage",{"_index":22327,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minus",{"_index":14558,"title":{},"body":{"classes/MongoPatterns.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["minute",{"_index":13232,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["miscellaneous",{"_index":21462,"title":{"miscellaneous/functions.html":{}},"body":{"miscellaneous/functions.html":{}}}],["misrepresentation",{"_index":22005,"title":{},"body":{"license.html":{}}}],["missing",{"_index":1238,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/ClassService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/PseudonymService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberMissingLoggableException.html":{}}}],["missing.loggable",{"_index":17672,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["missing_tool_parameter_value",{"_index":14522,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["missingparameters",{"_index":294,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["missingparameters.length",{"_index":304,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["missingparameters.push(parameter",{"_index":303,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["missingschoolnumberexception",{"_index":13255,"title":{"classes/MissingSchoolNumberException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["missingtoolparametervalueloggableexception",{"_index":202,"title":{"classes/MissingToolParameterValueLoggableException.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["missingtoolparametervalueloggableexception(contextexternaltool",{"_index":306,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["mission",{"_index":14786,"title":{},"body":{"classes/NewsScope.html":{}}}],["missmatches",{"_index":19042,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["mixing",{"_index":13357,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mixwith",{"_index":21407,"title":{},"body":{"dependencies.html":{}}}],["mkdir",{"_index":10011,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdir(folderpath",{"_index":10016,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp",{"_index":10012,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp(dirpath",{"_index":10020,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mm",{"_index":14059,"title":{},"body":{"modules/LoggerModule.html":{}}}],["mnf:copyrightandotherrestrictions",{"_index":5200,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:description",{"_index":5202,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:general",{"_index":5196,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:lom",{"_index":5195,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:rights",{"_index":5199,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:string",{"_index":5198,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:title",{"_index":5197,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:value",{"_index":5201,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mocha",{"_index":22415,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mocha's",{"_index":22715,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mock",{"_index":8508,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/SystemFactory.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock.strategy.ts",{"_index":15901,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock/oidc",{"_index":15900,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock:0.6.0powershell",{"_index":22927,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock:0.6.0setup",{"_index":22928,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock_issuer",{"_index":18587,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mock_type",{"_index":18585,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockbaseurl",{"_index":8505,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mockcomment",{"_index":8510,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mocked",{"_index":22818,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocking",{"_index":22779,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockreturnvalueonce",{"_index":22816,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocks",{"_index":22741,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocksecret",{"_index":18581,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockservice",{"_index":22796,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockservice.getuser.mockreturnvalueonce(resultuser",{"_index":22811,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mode",{"_index":14495,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["model",{"_index":6914,"title":{},"body":{"classes/CreateNewsParams.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilterNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["modelentity",{"_index":7518,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["modelentity.gridelements.init",{"_index":7543,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.isinitialized",{"_index":7542,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.remove(el",{"_index":7575,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.references.loaditems",{"_index":7535,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.title",{"_index":7541,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.user.id",{"_index":7547,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.xpos",{"_index":7538,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.ypos",{"_index":7539,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["models",{"_index":14851,"title":{},"body":{"injectables/NewsUc.html":{}}}],["moderator",{"_index":2218,"title":{},"body":{"classes/BBBJoinConfig.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["moderatorcount",{"_index":2264,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["moderatormustapprovejoinrequests",{"_index":7891,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{}}}],["moderatorpw",{"_index":2117,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["modification",{"_index":21723,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["modifications",{"_index":21776,"title":{},"body":{"license.html":{}}}],["modified",{"_index":20247,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{}}}],["modifies",{"_index":21874,"title":{},"body":{"license.html":{}}}],["modify",{"_index":21695,"title":{},"body":{"license.html":{}}}],["modifying",{"_index":21749,"title":{},"body":{"license.html":{}}}],["modularization",{"_index":22312,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["modularize",{"_index":18176,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["module",{"_index":425,"title":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICoreModuleConfig.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthUc.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"injectables/UserRepo.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["module.close",{"_index":22800,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(featureundertest",{"_index":22797,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(mockservice",{"_index":22798,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.ts",{"_index":22571,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/application",{"_index":22777,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module/repo",{"_index":22602,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/uc",{"_index":22597,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["moduleref",{"_index":22785,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(catscontroller",{"_index":22789,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(sampleservice",{"_index":22788,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["modules",{"_index":427,"title":{"modules.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["modules/authorization/authorization.module.ts",{"_index":22609,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/feathers/feathers",{"_index":22607,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/feathers/feathers.module.ts",{"_index":22608,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["moduluslength",{"_index":6870,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["moment",{"_index":14898,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mongo",{"_index":778,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/BsonConverter.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"todo.html":{}}}],["mongo.patterns",{"_index":12540,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["mongo_url=mongodb://172.29.173.128:27030/rocketchat",{"_index":22977,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["mongod",{"_index":22318,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mongodatabasemoduleoptions",{"_index":10319,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mongodb",{"_index":948,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BaseFactory.html":{},"injectables/DatabaseManagementService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["mongoexport",{"_index":11196,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongoimport",{"_index":11183,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongomemorydatabasemodule",{"_index":10317,"title":{"modules/MongoMemoryDatabaseModule.html":{}},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mongomemorydatabasemodule.forroot",{"_index":10326,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mongomemoryserver",{"_index":22579,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mongoose",{"_index":9611,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["mongopatterns",{"_index":12539,"title":{"classes/MongoPatterns.html":{}},"body":{"classes/ImportUserScope.html":{},"classes/MongoPatterns.html":{},"injectables/UserRepo.html":{}}}],["moodle",{"_index":1135,"title":{},"body":{"injectables/AccountService.html":{},"dependencies.html":{}}}],["more",{"_index":1922,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BaseRepo.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardNodeRepo.html":{},"interfaces/UserBoardRoles.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["moreover",{"_index":22041,"title":{},"body":{"license.html":{}}}],["mostly",{"_index":23113,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mount",{"_index":21605,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounted",{"_index":21597,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounts",{"_index":22264,"title":{},"body":{"todo.html":{}}}],["mountsdescription",{"_index":1540,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["move",{"_index":3372,"title":{},"body":{"injectables/BoardDoService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"controllers/ElementController.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["move(card",{"_index":4137,"title":{},"body":{"injectables/CardService.html":{}}}],["move(child",{"_index":3376,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["move(column",{"_index":4911,"title":{},"body":{"injectables/ColumnService.html":{}}}],["move(element",{"_index":5538,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["moveable",{"_index":23038,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["movecard",{"_index":3762,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["movecard(urlparams",{"_index":4027,"title":{},"body":{"controllers/CardController.html":{}}}],["movecard(userid",{"_index":3789,"title":{},"body":{"injectables/BoardUc.html":{}}}],["movecardbodyparams",{"_index":4028,"title":{"classes/MoveCardBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/MoveCardBodyParams.html":{}}}],["movecolumn",{"_index":3763,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["movecolumn(urlparams",{"_index":4864,"title":{},"body":{"controllers/ColumnController.html":{}}}],["movecolumn(userid",{"_index":3792,"title":{},"body":{"injectables/BoardUc.html":{}}}],["movecolumnbodyparams",{"_index":4865,"title":{"classes/MoveColumnBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/MoveColumnBodyParams.html":{}}}],["movecontentelementbody",{"_index":8057,"title":{"classes/MoveContentElementBody.html":{}},"body":{"controllers/ElementController.html":{},"classes/MoveContentElementBody.html":{}}}],["moved",{"_index":15808,"title":{},"body":{"injectables/OauthUc.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["moveelement",{"_index":4179,"title":{},"body":{"injectables/CardUc.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"controllers/ElementController.html":{}}}],["moveelement(from",{"_index":7297,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["moveelement(undefined",{"_index":7222,"title":{},"body":{"controllers/DashboardController.html":{}}}],["moveelement(urlparams",{"_index":8056,"title":{},"body":{"controllers/ElementController.html":{}}}],["moveelement(userid",{"_index":4193,"title":{},"body":{"injectables/CardUc.html":{}}}],["moveelementondashboard",{"_index":7615,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementondashboard(dashboardid",{"_index":7621,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementparams",{"_index":7224,"title":{"classes/MoveElementParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moveelementpositionparams",{"_index":14574,"title":{"classes/MoveElementPositionParams.html":{}},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moves",{"_index":11615,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["movetotrash",{"_index":17089,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["movetotrash(paths",{"_index":17105,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["moving",{"_index":23122,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mr",{"_index":18326,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["ms",{"_index":11630,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TimeoutInterceptor.html":{},"miscellaneous/functions.html":{}}}],["msg",{"_index":3923,"title":{},"body":{"modules/CacheWrapperModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/RedisModule.html":{}}}],["msgs",{"_index":1280,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["much",{"_index":22723,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["multi",{"_index":3454,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["multiple",{"_index":2187,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/GlobalValidationPipe.html":{},"classes/KeycloakSeedService.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["multivalued",{"_index":13007,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["muted",{"_index":21157,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["muteonstart",{"_index":2118,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["mutex",{"_index":21357,"title":{},"body":{"dependencies.html":{}}}],["n/a",{"_index":20519,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["n21",{"_index":1993,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/ContextExternalToolModule.html":{},"injectables/FederalStateService.html":{},"injectables/IdTokenService.html":{},"classes/LegacySchoolDo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SchoolYearService.html":{},"injectables/UserLoginMigrationUc.html":{},"modules/VideoConferenceModule.html":{}}}],["name",{"_index":31,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FilePermissionEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/InlineAttachment.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/ListOauthClientsParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config-1.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SortExternalToolParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["name${sequence",{"_index":8507,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["name.length",{"_index":9766,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["name.mapper",{"_index":12390,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["name.mapper.ts",{"_index":16811,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:12",{"_index":16814,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:5",{"_index":16816,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.match",{"_index":6269,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["name.tolowercase",{"_index":5339,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["name.ts",{"_index":21480,"title":{},"body":{"miscellaneous/functions.html":{}}}],["named",{"_index":21639,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["namely",{"_index":22901,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nameonly",{"_index":7760,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["names",{"_index":4960,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/ContextExternalToolValidationService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"controllers/NewsController.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["namespace",{"_index":22880,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["naming",{"_index":22305,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["nanoid",{"_index":11024,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/OauthUc.html":{},"injectables/TokenGenerator.html":{},"dependencies.html":{}}}],["nanoid(12",{"_index":19489,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["nanoid(15",{"_index":11030,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["nanoid(16",{"_index":15827,"title":{},"body":{"injectables/OauthUc.html":{}}}],["narrowed",{"_index":10771,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["native",{"_index":21437,"title":{},"body":{"dependencies.html":{}}}],["nature",{"_index":21884,"title":{},"body":{"license.html":{}}}],["nbf",{"_index":12579,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["ne",{"_index":9907,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["necessary",{"_index":19043,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["need",{"_index":957,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardNodeRepo.html":{},"entities/CourseGroup.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["needed",{"_index":11827,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/S3ClientAdapter.html":{},"entities/Submission.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["neededpermission",{"_index":19168,"title":{},"body":{"injectables/TaskUC.html":{}}}],["needs",{"_index":4641,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"entities/Course.html":{},"interfaces/CreateJwtPayload.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICourseProperties.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["nest",{"_index":7661,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"interfaces/Options.html":{},"dependencies.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["nest.js",{"_index":572,"title":{},"body":{"controllers/AccountController.html":{}}}],["nest/legacy",{"_index":22295,"title":{},"body":{"todo.html":{}}}],["nest:build",{"_index":22354,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:build:all",{"_index":22358,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console",{"_index":22382,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console:dev",{"_index":22383,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:build",{"_index":22377,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:serve",{"_index":22378,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint",{"_index":22398,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint:fix",{"_index":22401,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:prebuild",{"_index":22353,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start",{"_index":22361,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:debug",{"_index":22366,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:dev",{"_index":22363,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:files",{"_index":22373,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:prod",{"_index":22368,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test",{"_index":22391,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:all",{"_index":22392,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:api",{"_index":22393,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:cov",{"_index":22395,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:debug",{"_index":22397,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:unit",{"_index":22394,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:watch",{"_index":22396,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest_log_level",{"_index":11416,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IServerConfig.html":{}}}],["nestapp.get(rocketchatservice",{"_index":22617,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["nested",{"_index":16109,"title":{},"body":{"injectables/PermissionService.html":{}}}],["nestexpress.set('feathersapp",{"_index":9446,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["nestinterceptor",{"_index":8020,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["nestjs",{"_index":3459,"title":{"additional-documentation/nestjs-application.html":{}},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"modules/ErrorModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["nestjs/axios",{"_index":1266,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"classes/ExternalToolLogoService.html":{},"modules/ExternalToolModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/VideoConferenceModule.html":{},"dependencies.html":{}}}],["nestjs/cache",{"_index":3910,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{}}}],["nestjs/clithen",{"_index":22420,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nestjs/common",{"_index":187,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"modules/AccountApiModule.html":{},"controllers/AccountController.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"modules/CoreModule.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"entities/FileRecord.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"modules/RoleModule.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{}}}],["nestjs/common/decorators",{"_index":15208,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["nestjs/common/decorators/core/injectable.decorator",{"_index":4458,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/HydraSsoService.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["nestjs/common/exceptions/internal",{"_index":6398,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["nestjs/common/exceptions/not",{"_index":8423,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["nestjs/config",{"_index":801,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AuthenticationService.html":{},"controllers/CourseController.html":{},"modules/EncryptionModule.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/InterceptorModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"dependencies.html":{}}}],["nestjs/core",{"_index":8217,"title":{},"body":{"modules/ErrorModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"modules/ValidationModule.html":{},"dependencies.html":{}}}],["nestjs/jwt",{"_index":1638,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"dependencies.html":{}}}],["nestjs/microservices",{"_index":21331,"title":{},"body":{"dependencies.html":{}}}],["nestjs/passport",{"_index":1640,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/Oauth2Strategy.html":{},"dependencies.html":{}}}],["nestjs/platform",{"_index":21333,"title":{},"body":{"dependencies.html":{}}}],["nestjs/swagger",{"_index":376,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountResponse.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRefParams.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{},"controllers/H5PEditorController.html":{},"classes/IdParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"classes/OidcContextResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolParams.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"controllers/SystemController.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TargetInfoResponse.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/TimestampsResponse.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"controllers/UserController.html":{},"classes/UserDataResponse.html":{},"classes/UserInfoResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserParams.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{}}}],["nestjs/testing",{"_index":19427,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["nestjs/testing.test",{"_index":22780,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nestmodule",{"_index":17768,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nestwinston",{"_index":22643,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["net",{"_index":21617,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["network",{"_index":21669,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["neuen",{"_index":4758,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["never",{"_index":7907,"title":{},"body":{"classes/DomainObjectFactory.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FilesRepo.html":{},"classes/GuardAgainst.html":{},"interfaces/IError.html":{},"injectables/LdapStrategy.html":{},"injectables/NewsRepo.html":{},"interfaces/RpcMessage.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["new",{"_index":234,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BusinessError.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CopyFileResponseBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMapper.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationMapper.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInfoMapper.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"entities/User.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserInfoMapper.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["newaccount",{"_index":1094,"title":{},"body":{"injectables/AccountService.html":{}}}],["newconfig",{"_index":12981,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfig.idphint",{"_index":12979,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs",{"_index":12886,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.foreach((newconfig",{"_index":12976,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.some((newconfig",{"_index":12983,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newelement",{"_index":7388,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newentity",{"_index":2448,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/GroupRepo.html":{}}}],["newentity._id",{"_index":2463,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newentity.id",{"_index":2462,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newfactory",{"_index":2556,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newgroupname",{"_index":7344,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newid",{"_index":6220,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newid}/${name",{"_index":6223,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newlanguage",{"_index":20773,"title":{},"body":{"injectables/UserService.html":{}}}],["newlist",{"_index":2748,"title":{},"body":{"entities/Board.html":{}}}],["newname",{"_index":6538,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["newnonoptionalparamnames",{"_index":9320,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.includes(name",{"_index":9323,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.some((name",{"_index":9324,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams",{"_index":9318,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams.map((parameter",{"_index":9321,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam",{"_index":9311,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.isoptional",{"_index":9312,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.name",{"_index":9301,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.regex",{"_index":9329,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.scope",{"_index":9331,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.type",{"_index":9330,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams",{"_index":9274,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.filter((parameter",{"_index":9319,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.find((p",{"_index":9327,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some",{"_index":9310,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some((newparam",{"_index":9299,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newpath",{"_index":1463,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["newpropsfactory",{"_index":2554,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newresource",{"_index":5075,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newresource.caninline",{"_index":5078,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newrooms",{"_index":7368,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newrooms.foreach((room",{"_index":7370,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["news",{"_index":6731,"title":{"entities/News.html":{}},"body":{"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/UpdateNewsParams.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["news.content",{"_index":14689,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.controller",{"_index":14721,"title":{},"body":{"modules/NewsModule.html":{}}}],["news.controller.ts",{"_index":19277,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.controller.ts:22",{"_index":19282,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.createdat",{"_index":14695,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.createinstance(targetmodel",{"_index":14830,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news.displayat",{"_index":14690,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.id",{"_index":14687,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.params.ts",{"_index":6900,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["news.params.ts:14",{"_index":10361,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["news.params.ts:15",{"_index":6917,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:17",{"_index":19965,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:22",{"_index":6904,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:25",{"_index":19961,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:30",{"_index":6909,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:32",{"_index":19963,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:37",{"_index":6915,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:44",{"_index":6912,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.permissions",{"_index":14697,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.source",{"_index":14691,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.sourcedescription",{"_index":14692,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.target.id",{"_index":14693,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.targetmodel",{"_index":14694,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.title",{"_index":14688,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updatedat",{"_index":14696,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updater",{"_index":14698,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news[key",{"_index":14845,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news].params.ts",{"_index":22630,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news].response.dto",{"_index":22632,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news_edit",{"_index":14847,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news_sources",{"_index":14655,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["news_sources[number",{"_index":14659,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["newscontroller",{"_index":14593,"title":{"controllers/NewsController.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["newscount",{"_index":14836,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable",{"_index":14637,"title":{"classes/NewsCrudOperationLoggable.html":{}},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.create",{"_index":14832,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.delete",{"_index":14849,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.update",{"_index":14846,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsentities",{"_index":14749,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentities.filter((news",{"_index":14753,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentity",{"_index":14745,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsid",{"_index":14863,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["newslist",{"_index":14625,"title":{},"body":{"controllers/NewsController.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map((news",{"_index":14628,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map(async",{"_index":14839,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newslistresponse",{"_index":14616,"title":{"classes/NewsListResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"controllers/TeamNewsController.html":{}}}],["newslistresponse(dtolist",{"_index":14629,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper",{"_index":14612,"title":{"classes/NewsMapper.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.mapcreatenewstodomain(params",{"_index":14623,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapnewsscopetodomain(scope",{"_index":14627,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.maptologmessagedata(this.news",{"_index":14647,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["newsmapper.maptoresponse(news",{"_index":14624,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapupdatenewstodomain(params",{"_index":14634,"title":{},"body":{"controllers/NewsController.html":{}}}],["newsmodule",{"_index":14711,"title":{"modules/NewsModule.html":{}},"body":{"modules/NewsModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["newspermission",{"_index":14811,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsrepo",{"_index":14716,"title":{"injectables/NewsRepo.html":{}},"body":{"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["newsresponse",{"_index":14617,"title":{"classes/NewsResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{}}}],["newsrule",{"_index":23085,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newsscope",{"_index":14738,"title":{"classes/NewsScope.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{}}}],["newstarget",{"_index":6722,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"classes/TargetInfoMapper.html":{},"entities/TeamNews.html":{}}}],["newstargetfilter",{"_index":14728,"title":{"interfaces/NewsTargetFilter.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["newstargetmodel",{"_index":6723,"title":{},"body":{"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["newstargetmodel.course",{"_index":6749,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["newstargetmodel.school",{"_index":6754,"title":{},"body":{"entities/CourseNews.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["newstargetmodel.team",{"_index":6751,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["newsuc",{"_index":14614,"title":{"injectables/NewsUc.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newsuc.getrequiredpermissions(ispublished",{"_index":14842,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsuc.getrequiredpermissions(unpublished",{"_index":14834,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsurlparams",{"_index":14598,"title":{"classes/NewsUrlParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsUrlParams.html":{}}}],["newtool",{"_index":9291,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.parameters",{"_index":9295,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.version",{"_index":9297,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newuser",{"_index":23067,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newvar",{"_index":1395,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["nexboard",{"_index":11313,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/NexboardService.html":{}}}],["nexboard.board",{"_index":13803,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["nexboard.id",{"_index":14873,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboard.publiclink",{"_index":14874,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboard.service",{"_index":13726,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["nexboard.url",{"_index":13801,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["nexboardenabled",{"_index":13779,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["nexboardresponse",{"_index":14870,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardservice",{"_index":13683,"title":{"injectables/NexboardService.html":{}},"body":{"injectables/LessonCopyService.html":{},"modules/LessonModule.html":{},"injectables/NexboardService.html":{}}}],["next",{"_index":731,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ConsoleWriterService.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"entities/CourseNews.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordFactory.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolFactory.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserFactory.html":{},"classes/TestBootstrapConsole.html":{},"injectables/TimeoutInterceptor.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["next.handle().pipe",{"_index":16675,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["next.handle().pipe(tap",{"_index":8024,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["nextcloud",{"_index":11086,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISchoolProperties.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["nextcloud.client",{"_index":14907,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudclient",{"_index":4553,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudgroups",{"_index":10744,"title":{"interfaces/NextcloudGroups.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["nextclouds",{"_index":14905,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy",{"_index":4554,"title":{"injectables/NextcloudStrategy.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy.generategroupfoldername(team.id",{"_index":14922,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudtool",{"_index":14935,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ni_",{"_index":17278,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["node",{"_index":3261,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"injectables/FileSystemAdapter.html":{},"todo.html":{}}}],["node.entity",{"_index":3186,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["node.entity.ts",{"_index":4090,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["node.entity.ts:10",{"_index":16758,"title":{},"body":{"entities/RichTextElementNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:13",{"_index":16757,"title":{},"body":{"entities/RichTextElementNode.html":{}}}],["node.entity.ts:16",{"_index":4091,"title":{},"body":{"entities/CardNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:19",{"_index":4715,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:22",{"_index":4713,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:9",{"_index":9539,"title":{},"body":{"entities/FileElementNode.html":{},"entities/SubmissionContainerElementNode.html":{}}}],["node.js",{"_index":21592,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["node.level",{"_index":3600,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.pathofchildren",{"_index":3602,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo",{"_index":3309,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.repo.ts",{"_index":3586,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:19",{"_index":3592,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:30",{"_index":3594,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:6",{"_index":3589,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:9",{"_index":3590,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.title",{"_index":3330,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["node.usedobuilder(this",{"_index":3251,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["node:fs/promises",{"_index":13218,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["node_env",{"_index":11746,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["node_env=test",{"_index":17831,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nodeenvtype",{"_index":11751,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["nodejs.timeout",{"_index":17177,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nodeps",{"_index":21418,"title":{},"body":{"dependencies.html":{}}}],["nodeps.git",{"_index":21420,"title":{},"body":{"dependencies.html":{}}}],["nodes",{"_index":3595,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.filter((n",{"_index":3616,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.map((node",{"_index":3604,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nofutureavailabledate",{"_index":19035,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{}}}],["non",{"_index":8096,"title":{},"body":{"injectables/ElementUc.html":{},"classes/MongoPatterns.html":{},"classes/StorageProviderEncryptedStringType.html":{},"license.html":{},"todo.html":{}}}],["noncommercially",{"_index":21913,"title":{},"body":{"license.html":{}}}],["none",{"_index":1680,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CustomLtiProperty.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"injectables/IdTokenService.html":{},"entities/LtiTool.html":{},"classes/OauthClientBody.html":{},"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nonemptytargets",{"_index":14856,"title":{},"body":{"injectables/NewsUc.html":{}}}],["nonoptionalparamnames",{"_index":9316,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.includes(name",{"_index":9325,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.some((name",{"_index":9322,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams",{"_index":9314,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams.map((parameter",{"_index":9317,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nopasswordstrategies",{"_index":1133,"title":{},"body":{"injectables/AccountService.html":{}}}],["nopasswordstrategies.includes(dto.passwordstrategy",{"_index":1138,"title":{},"body":{"injectables/AccountService.html":{}}}],["normal",{"_index":21784,"title":{},"body":{"license.html":{}}}],["normalizepassword",{"_index":1785,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizepassword(password",{"_index":1798,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername",{"_index":1786,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername(username",{"_index":1800,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normally",{"_index":13788,"title":{},"body":{"injectables/LessonCopyService.html":{},"license.html":{}}}],["nosuchbucket",{"_index":17142,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nosuchkey",{"_index":17136,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["not_found",{"_index":14980,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["notation",{"_index":2567,"title":{},"body":{"classes/BaseFactory.html":{}}}],["note",{"_index":946,"title":{},"body":{"injectables/AccountRepo.html":{},"interfaces/AuthenticationResponse.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/CardSkeletonResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/TaskRepo.html":{},"classes/TestApiClient.html":{},"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["notfinished",{"_index":19202,"title":{},"body":{"injectables/TaskUC.html":{}}}],["notfound",{"_index":7627,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["notfounderror",{"_index":14346,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfounderror(`ltitool",{"_index":14350,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfoundexception",{"_index":2686,"title":{},"body":{"entities/Board.html":{},"controllers/BoardController.html":{},"injectables/BoardDoRepo.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"controllers/ColumnController.html":{},"injectables/ContentElementService.html":{},"controllers/CourseController.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"injectables/FeathersAuthProvider.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GridElement.html":{},"modules/H5PEditorModule.html":{},"interfaces/IGridElement.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"injectables/SubmissionItemService.html":{},"injectables/TaskCopyUC.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserMigrationService.html":{}}}],["notfoundexception('board",{"_index":2729,"title":{},"body":{"entities/Board.html":{}}}],["notfoundexception('could",{"_index":8451,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/TaskCopyUC.html":{}}}],["notfoundexception('no",{"_index":7361,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["notfoundexception('nosuchkey",{"_index":17138,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["notfoundexception('some",{"_index":4148,"title":{},"body":{"injectables/CardService.html":{}}}],["notfoundexception(`school",{"_index":20615,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["notfoundexception(`the",{"_index":10274,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["notfoundexception(`there",{"_index":3318,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["notfoundexception(`unable",{"_index":15589,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["notfoundexception})@apibody({required",{"_index":4858,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["notfoundexception})@apiresponse({status",{"_index":17885,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notfoundexception})@get(':boardid",{"_index":2946,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@get(':boardid/context",{"_index":2941,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':boardid",{"_index":2937,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':cardid",{"_index":4018,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':columnid",{"_index":4862,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':contentelementid",{"_index":8054,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':boardid/title",{"_index":2952,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/height",{"_index":4033,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/title",{"_index":4036,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':columnid/title",{"_index":4869,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':contentelementid/content",{"_index":8063,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':submissionitemid",{"_index":3697,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["notfoundexception})@httpcode(204)@put(':cardid/position",{"_index":4029,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@put(':columnid/position",{"_index":4866,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@put(':contentelementid/position",{"_index":8058,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@post(':boardid/columns",{"_index":2932,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@post(':cardid/elements",{"_index":4014,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundloggableexception",{"_index":10721,"title":{"classes/NotFoundLoggableException.html":{}},"body":{"injectables/GroupService.html":{},"classes/NotFoundLoggableException.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["notfoundloggableexception('userloginmigration",{"_index":20500,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["notfoundloggableexception(group.name",{"_index":10724,"title":{},"body":{"injectables/GroupService.html":{}}}],["nothing",{"_index":16712,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"license.html":{}}}],["notice",{"_index":14024,"title":{},"body":{"injectables/Logger.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["notice(loggable",{"_index":14031,"title":{},"body":{"injectables/Logger.html":{}}}],["notices",{"_index":21764,"title":{},"body":{"license.html":{}}}],["notifies",{"_index":22042,"title":{},"body":{"license.html":{}}}],["notify",{"_index":22038,"title":{},"body":{"license.html":{}}}],["notimplementedexception",{"_index":3218,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IRepoLoader.html":{},"classes/MetadataTypeMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RuleManager.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('copy",{"_index":18089,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('import",{"_index":18103,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('repo_or_service_not_implement",{"_index":11662,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["notimplementedexception('rooms",{"_index":16950,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["notimplementedexception(`invalid",{"_index":3268,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["notimplementedexception(`unknown",{"_index":5510,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["notimplementedexception(`unsupported",{"_index":5527,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["notimplementedexception})@post(':token/import')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17888,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notmigratedusers",{"_index":17642,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notmigratedusers.data.foreach((user",{"_index":17646,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notwithstanding",{"_index":21995,"title":{},"body":{"license.html":{}}}],["nountildate",{"_index":6794,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["november",{"_index":21650,"title":{},"body":{"license.html":{}}}],["now",{"_index":6793,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CreateNewsParams.html":{},"injectables/DurationLoggingInterceptor.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ISubmissionProperties.html":{},"classes/NewsScope.html":{},"entities/Submission.html":{},"injectables/SubmissionItemService.html":{},"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["now.getfullyear()}_",{"_index":11133,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["now.getmonth",{"_index":11134,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["nowplusdays",{"_index":18043,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["nowplusdays(days",{"_index":18064,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["now}ms",{"_index":8026,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["npm",{"_index":22256,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["npx",{"_index":22940,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["null",{"_index":167,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/CalendarService.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordScope.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ITaskParent.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"classes/SystemScope.html":{},"entities/Task.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{}}}],["nullable",{"_index":370,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountSearchQueryParams.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardUrlParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardUrlParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolIdParams.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/IdParams.html":{},"entities/ImportUser.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/MigrationBody.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"entities/News.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PublicSystemResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"entities/System.html":{},"classes/SystemIdParams.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolReferenceResponse.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"classes/UserParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["nullish",{"_index":18178,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["nullorundefined",{"_index":10763,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["nullorundefined(value",{"_index":10764,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["num",{"_index":6268,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["number",{"_index":55,"title":{},"body":{"classes/AbstractAccountService.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"classes/AuthorizationError.html":{},"classes/AxiosResponseImp.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardLessonResponse.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnService.html":{},"classes/ConsentRequestBody.html":{},"injectables/ContentElementService.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"interfaces/CopyFiles.html":{},"classes/County.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/FeathersError.html":{},"entities/FederalState.html":{},"interfaces/File.html":{},"classes/FileElement.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GridElement.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IError.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/IToolFeatures.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolFactory.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"interfaces/Meta.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"interfaces/OcsResponse.html":{},"classes/Page.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"interfaces/PreviewFileParams.html":{},"classes/PrometheusMetricsConfig.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"classes/RecursiveSaveVisitor.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RichTextElement.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"interfaces/RpcMessage.html":{},"interfaces/S3Config-1.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SystemFactory.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/ToolConfiguration.html":{},"interfaces/ToolVersion.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"classes/ValidationError.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["number(batchsize",{"_index":7791,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["number(matches.groups.number",{"_index":6273,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["number(options.skip",{"_index":11622,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number.isnan(this.deletedat.gettime",{"_index":9627,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["numbered",{"_index":22170,"title":{},"body":{"license.html":{}}}],["numberofdrafttasks",{"_index":3420,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberoffailingfilesinbatch",{"_index":7833,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberoffilesinbatch",{"_index":7826,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofplannedtasks",{"_index":3421,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofprocessedfiles",{"_index":7827,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofpublishedtasks",{"_index":3422,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofstudents",{"_index":6609,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["numberofsubmitters",{"_index":12037,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofsubmitterswithgrade",{"_index":12045,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofteachers",{"_index":6612,"title":{},"body":{"classes/CourseFactory.html":{}}}],["numberofteammembers",{"_index":18271,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["numbers",{"_index":14556,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["numerous",{"_index":22725,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nuxt",{"_index":22914,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nvmrc",{"_index":22313,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["o",{"_index":7669,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["o.id",{"_index":3338,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["oauth",{"_index":5382,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"injectables/HydraAdapter.html":{},"classes/IdParams.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/ListOauthClientsParams.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"dependencies.html":{}}}],["oauth.module",{"_index":15236,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["oauth.service",{"_index":12187,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/SystemService.html":{}}}],["oauth.service.ts",{"_index":12194,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:13",{"_index":13045,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:15",{"_index":12199,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:23",{"_index":12201,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:50",{"_index":13049,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:9",{"_index":12198,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.uc",{"_index":15729,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauth.uc.ts",{"_index":10925,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:14",{"_index":10935,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:23",{"_index":10945,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:25",{"_index":10944,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:27",{"_index":10937,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:47",{"_index":10946,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:49",{"_index":10942,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:66",{"_index":10939,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth2",{"_index":5378,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ExternalToolSearchParams.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/RevokeConsentParams.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"dependencies.html":{}}}],["oauth2')@apiokresponse({description",{"_index":20266,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["oauth2.0",{"_index":14135,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["oauth2authorizationbodyparams",{"_index":14094,"title":{"classes/Oauth2AuthorizationBodyParams.html":{}},"body":{"controllers/LoginController.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2config",{"_index":8833,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.baseurl",{"_index":8856,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.clientid",{"_index":8857,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.clientsecret",{"_index":9168,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.frontchannellogouturi",{"_index":9174,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.redirecturis",{"_index":9173,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.scope",{"_index":9169,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.skipconsent",{"_index":8858,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.tokenendpointauthmethod",{"_index":9171,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.type",{"_index":8855,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2migrationparams",{"_index":15148,"title":{"classes/Oauth2MigrationParams.html":{}},"body":{"classes/Oauth2MigrationParams.html":{},"controllers/UserLoginMigrationController.html":{}}}],["oauth2params",{"_index":7143,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2strategy",{"_index":1634,"title":{"injectables/Oauth2Strategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2toolconfig",{"_index":7126,"title":{"classes/Oauth2ToolConfig.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauth2toolconfigcreate",{"_index":8918,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigcreateparams",{"_index":8457,"title":{"classes/Oauth2ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["oauth2toolconfigentity",{"_index":8475,"title":{"classes/Oauth2ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["oauth2toolconfigfactory",{"_index":7132,"title":{"classes/Oauth2ToolConfigFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.build(customparam",{"_index":7165,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.define(oauth2toolconfig",{"_index":7144,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigresponse",{"_index":8988,"title":{"classes/Oauth2ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["oauth2toolconfigupdate",{"_index":8922,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigupdateparams",{"_index":8920,"title":{"classes/Oauth2ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["oauth2toollaunchstrategy",{"_index":14984,"title":{"injectables/OAuth2ToolLaunchStrategy.html":{}},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["oauth_provisioning_enabled",{"_index":11705,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthadapterservice",{"_index":15043,"title":{"injectables/OauthAdapterService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthModule.html":{}}}],["oauthapimodule",{"_index":15226,"title":{"modules/OauthApiModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthclient",{"_index":9118,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.client_secret",{"_index":15657,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.frontchannel_logout_uri",{"_index":9163,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.redirect_uris",{"_index":9161,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.scope",{"_index":9157,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.token_endpoint_auth_method",{"_index":9159,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclientbody",{"_index":15237,"title":{"classes/OauthClientBody.html":{}},"body":{"classes/OauthClientBody.html":{},"controllers/OauthProviderController.html":{}}}],["oauthclientid",{"_index":6987,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{}}}],["oauthclientresponse",{"_index":5439,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthconfig",{"_index":10947,"title":{"classes/OauthConfig.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{}}}],["oauthconfig.authendpoint",{"_index":11866,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientid",{"_index":11028,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientsecret",{"_index":11856,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.granttype",{"_index":11862,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.idphint",{"_index":11858,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.issuer",{"_index":11872,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.jwksendpoint",{"_index":11874,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.logoutendpoint",{"_index":11870,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.provider",{"_index":11868,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.redirecturi",{"_index":11029,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.responsetype",{"_index":11026,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.scope",{"_index":11027,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.tokenendpoint",{"_index":11860,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfigdto",{"_index":12202,"title":{"classes/OauthConfigDto.html":{}},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/OauthConfigDto.html":{},"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.authendpoint",{"_index":15311,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientid",{"_index":15305,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientsecret",{"_index":15306,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["oauthconfigdto.granttype",{"_index":15309,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.idphint",{"_index":15307,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.issuer",{"_index":15316,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.jwksendpoint",{"_index":15317,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.logoutendpoint",{"_index":15315,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.provider",{"_index":15314,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.redirecturi",{"_index":15308,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.responsetype",{"_index":15312,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.scope",{"_index":15313,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.tokenendpoint",{"_index":15310,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse",{"_index":15318,"title":{"classes/OauthConfigResponse.html":{}},"body":{"classes/OauthConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse.authendpoint",{"_index":15338,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.clientid",{"_index":15333,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.granttype",{"_index":15336,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.idphint",{"_index":15334,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.issuer",{"_index":15343,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.jwksendpoint",{"_index":15344,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.logoutendpoint",{"_index":15342,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.provider",{"_index":15341,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.redirecturi",{"_index":15335,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.responsetype",{"_index":15339,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.scope",{"_index":15340,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.tokenendpoint",{"_index":15337,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigs",{"_index":9154,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthdata",{"_index":12649,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.externalid",{"_index":20521,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.officialschoolnumber",{"_index":20520,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externaluser.externalid",{"_index":20522,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdatadto",{"_index":12617,"title":{"classes/OauthDataDto.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthDataDto.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthdatastrategyinputdto",{"_index":12622,"title":{"classes/OauthDataStrategyInputDto.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oauthencryptionservice",{"_index":11007,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["oauthgranttype",{"_index":1606,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthgranttype.authorization_code_grant",{"_index":1603,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthloginstate",{"_index":15760,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.provider",{"_index":15788,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.state",{"_index":15762,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstatedto",{"_index":15366,"title":{"classes/OauthLoginStateDto.html":{}},"body":{"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthloginstatedto(session.oauthloginstate",{"_index":15387,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["oauthloginstatemapper",{"_index":15378,"title":{"classes/OauthLoginStateMapper.html":{}},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["oauthloginstatemapper.mapsessiontodto(session",{"_index":15761,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthmigrationdto",{"_index":13466,"title":{"classes/OauthMigrationDto.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationerror",{"_index":14988,"title":{"classes/OAuthMigrationError.html":{}},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthmigrationfailed",{"_index":14996,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthmigrationfinalfinish",{"_index":13639,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationfinished",{"_index":13523,"title":{},"body":{"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationBody.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthmigrationmandatory",{"_index":13521,"title":{},"body":{"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationBody.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthmigrationpossible",{"_index":13522,"title":{},"body":{"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationBody.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthmodule",{"_index":1624,"title":{"modules/OauthModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["oauthprocessdto",{"_index":15008,"title":{"classes/OAuthProcessDto.html":{}},"body":{"classes/OAuthProcessDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthprocessdto.jwt",{"_index":15775,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthproviderapimodule",{"_index":15401,"title":{"modules/OauthProviderApiModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthproviderclientcruduc",{"_index":15406,"title":{"injectables/OauthProviderClientCrudUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderconsentflowuc",{"_index":15407,"title":{"injectables/OauthProviderConsentFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthprovidercontroller",{"_index":15413,"title":{"controllers/OauthProviderController.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderloginflowservice",{"_index":12143,"title":{"injectables/OauthProviderLoginFlowService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["oauthproviderloginflowuc",{"_index":15408,"title":{"injectables/OauthProviderLoginFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderlogoutflowuc",{"_index":15409,"title":{"injectables/OauthProviderLogoutFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["oauthprovidermodule",{"_index":15405,"title":{"modules/OauthProviderModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["oauthproviderrequestmapper",{"_index":15605,"title":{"classes/OauthProviderRequestMapper.html":{}},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["oauthproviderrequestmapper.mapcreateacceptloginrequestbody",{"_index":15619,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderresponsemapper",{"_index":15410,"title":{"injectables/OauthProviderResponseMapper.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthproviderservice",{"_index":9081,"title":{"classes/OauthProviderService.html":{}},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthproviderservice:109",{"_index":10860,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:117",{"_index":10849,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:126",{"_index":10882,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:135",{"_index":10851,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:30",{"_index":10843,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:34",{"_index":10845,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:38",{"_index":10847,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:44",{"_index":10856,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:49",{"_index":10858,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:53",{"_index":10862,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:63",{"_index":10863,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:68",{"_index":10865,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:76",{"_index":10872,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:80",{"_index":10874,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:84",{"_index":10880,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:92",{"_index":10867,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservicemodule",{"_index":8627,"title":{"modules/OauthProviderServiceModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules.html":{}}}],["oauthprovideruc",{"_index":15411,"title":{"injectables/OauthProviderUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthprovisioningenabled",{"_index":11706,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthrejectablebody",{"_index":5372,"title":{"classes/OAuthRejectableBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthrejectablebody:13",{"_index":5399,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:23",{"_index":5408,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:32",{"_index":5411,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:41",{"_index":5413,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:50",{"_index":5417,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthscope",{"_index":12154,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["oauthservice",{"_index":10933,"title":{"injectables/OAuthService.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthssocontroller",{"_index":15233,"title":{"controllers/OauthSSOController.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["oauthssoerror",{"_index":10950,"title":{"classes/OAuthSSOError.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror('failed",{"_index":12632,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["oauthssoerror('requesting",{"_index":15224,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["oauthssoerror(`requested",{"_index":15081,"title":{},"body":{"injectables/OAuthService.html":{}}}],["oauthssoerror:10",{"_index":14997,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:11",{"_index":20672,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:4",{"_index":15000,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:5",{"_index":20675,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:6",{"_index":14999,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:7",{"_index":20674,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:8",{"_index":14998,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:9",{"_index":20673,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthsystems",{"_index":18703,"title":{},"body":{"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthsystems.find((system",{"_index":20465,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["oauthtoken",{"_index":15791,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthtokendto",{"_index":10953,"title":{"classes/OAuthTokenDto.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthtokenresponse",{"_index":15077,"title":{"interfaces/OauthTokenResponse.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"interfaces/OauthTokenResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthtokens",{"_index":10960,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{}}}],["oauthuc",{"_index":15231,"title":{"injectables/OauthUc.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["obfuscated",{"_index":10547,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"miscellaneous/functions.html":{}}}],["obfuscated_subject",{"_index":12580,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["obj.id",{"_index":2843,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["object",{"_index":359,"title":{"additional-documentation/nestjs-application/domain-object-validation.html":{}},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/BusinessError.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/ColumnBoardFactory.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/IntrospectResponse.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"classes/LessonFactory.html":{},"classes/LoggingUtils.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OidcConfig.html":{},"classes/OidcContextResponse.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderOidcContext.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SubmissionFactory.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["object.assign(entity",{"_index":2552,"title":{},"body":{"classes/BaseFactory.html":{}}}],["object.assign(this",{"_index":3400,"title":{},"body":{"entities/BoardElement.html":{},"classes/ConsentResponse.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"interfaces/INewsProperties.html":{},"classes/LoginResponse-1.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["object.constructor.name",{"_index":2043,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["object.defineproperty(entity",{"_index":7897,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["object.entries",{"_index":19751,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["object.entries(params",{"_index":14844,"title":{},"body":{"injectables/NewsUc.html":{}}}],["object.factory.ts",{"_index":7904,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["object.keys(entity).foreach((key",{"_index":2465,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["object.keys(object).foreach((key",{"_index":2373,"title":{},"body":{"injectables/BBBService.html":{}}}],["object.keys(payload).length",{"_index":2664,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["object.keys(queryordermap",{"_index":9184,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["object.setprototypeof(this",{"_index":1310,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["object.ts",{"_index":1856,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/BaseDomainObject.html":{},"classes/DomainObject.html":{}}}],["object.ts:14",{"_index":7901,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:18",{"_index":7900,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:8",{"_index":7899,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:9",{"_index":2486,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["object.values(filerecordparenttype",{"_index":10152,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["object.values(newstargetmodel",{"_index":14657,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{}}}],["object.values(previewinputmimetypes).includes(this.mimetype",{"_index":9785,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["object.values(validationerror.constraints",{"_index":1529,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["object],[object",{"_index":2406,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["objectid",{"_index":49,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRepo.html":{},"classes/BoardManagementConsole.html":{},"injectables/CardService.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/CourseGroupRepo.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardRepo.html":{},"classes/DoBaseFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FederalStateRepo.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"entities/LtiTool.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/OidcProvisioningService.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolYearRepo.html":{},"entities/ShareToken.html":{},"classes/ShareTokenFactory.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SystemRepo.html":{},"injectables/TeamsRepo.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"injectables/UserRepo.html":{},"classes/VideoConferenceInfo.html":{}}}],["objectid().tohexstring",{"_index":4150,"title":{},"body":{"injectables/CardService.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/DoBaseFactory.html":{},"classes/FileRecordFactory.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymService.html":{},"classes/ShareTokenFactory.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{}}}],["objectid().tostring",{"_index":7599,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"classes/UserDoFactory.html":{}}}],["objectid(account.attdbcaccountid",{"_index":811,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["objectid(accountdto.systemid",{"_index":1197,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(accountdto.userid",{"_index":1194,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(domainobject.id",{"_index":2464,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["objectid(domainobject.schoolid",{"_index":4372,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.successor",{"_index":4382,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.year",{"_index":4378,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(entitydo.toolid",{"_index":8764,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(entitydo.userid",{"_index":8765,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(id",{"_index":808,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/BaseFactory.html":{}}}],["objectid(id).tohexstring",{"_index":17938,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["objectid(owneruserid",{"_index":10059,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(parentid",{"_index":9905,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["objectid(permissionrefid",{"_index":10063,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(props.columnboardid",{"_index":4824,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["objectid(props.context.id",{"_index":4721,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["objectid(props.contextid",{"_index":11774,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["objectid(props.creatorid",{"_index":9649,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(props.iscopyfrom",{"_index":9750,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(props.lockid",{"_index":9653,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.origintoolid",{"_index":7017,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["objectid(props.ownerid",{"_index":9645,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.parentid",{"_index":9643,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["objectid(props.refid",{"_index":9678,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["objectid(props.schoolid",{"_index":9747,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(reference.id",{"_index":3334,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["objectid(refid",{"_index":9619,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(schoolid",{"_index":9906,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["objectid(systemid",{"_index":926,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["objectid(teacherid",{"_index":4374,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(toolid",{"_index":8747,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(userid",{"_index":921,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["objectid.createfromhexstring(id",{"_index":7419,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.createfromhexstring(props.id",{"_index":7429,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.isvalid(courseid",{"_index":3463,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["objectid.isvalid(id",{"_index":807,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/ImportUserRepo.html":{}}}],["objectid.isvalid(schoolid",{"_index":12542,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["objectid.isvalid(userid",{"_index":12544,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["objectids",{"_index":922,"title":{},"body":{"injectables/AccountRepo.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["objectids.map((id",{"_index":6454,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["objectives",{"_index":23011,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["objectname",{"_index":11664,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["objects",{"_index":3852,"title":{},"body":{"injectables/BsonConverter.html":{},"classes/DomainObjectFactory.html":{},"injectables/FederalStateService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolYearService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["obligate",{"_index":22150,"title":{},"body":{"license.html":{}}}],["obligated",{"_index":21927,"title":{},"body":{"license.html":{}}}],["obligations",{"_index":21836,"title":{},"body":{"license.html":{}}}],["observable",{"_index":2333,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["obsolete",{"_index":20509,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["occasionally",{"_index":21912,"title":{},"body":{"license.html":{}}}],["occur",{"_index":570,"title":{},"body":{"controllers/AccountController.html":{}}}],["occurred",{"_index":4579,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["occurring",{"_index":22050,"title":{},"body":{"license.html":{}}}],["occurs",{"_index":21965,"title":{},"body":{"license.html":{}}}],["ocs",{"_index":10746,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["ocsresponse",{"_index":10745,"title":{"interfaces/OcsResponse.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["odered",{"_index":14804,"title":{},"body":{"injectables/NewsUc.html":{}}}],["offer",{"_index":21692,"title":{},"body":{"license.html":{}}}],["offered",{"_index":21933,"title":{},"body":{"license.html":{}}}],["offering",{"_index":21916,"title":{},"body":{"license.html":{}}}],["offers",{"_index":22380,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["offical",{"_index":20616,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["official",{"_index":13257,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"license.html":{}}}],["officialexternalschoolnumber",{"_index":17596,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["officialschoolnumber",{"_index":8300,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"classes/IservMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["officialschoolnumberfromsource",{"_index":14993,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["officialschoolnumberfromtarget",{"_index":14994,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["offline",{"_index":7135,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["offset",{"_index":58,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DeleteFilesUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/HydraAdapter.html":{},"injectables/ImportUserRepo.html":{},"classes/ListOauthClientsParams.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["oid",{"_index":11503,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["oidc",{"_index":12908,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/LoginResponse-1.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidc.mapper",{"_index":18649,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.mapper.ts",{"_index":18631,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:12",{"_index":18636,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:26",{"_index":18633,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:5",{"_index":18634,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.service",{"_index":12902,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{}}}],["oidc.service.ts",{"_index":18644,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:12",{"_index":18647,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:21",{"_index":18646,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:9",{"_index":18645,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc/oidc.strategy",{"_index":17246,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc/service/oidc",{"_index":17247,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc_context",{"_index":5425,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["oidcconfig",{"_index":11847,"title":{"classes/OidcConfig.html":{}},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemScope.html":{}}}],["oidcconfig.authorizationurl",{"_index":11925,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.clientid",{"_index":11921,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.clientsecret",{"_index":11922,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["oidcconfig.defaultscopes",{"_index":11932,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.idphint",{"_index":11923,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.logouturl",{"_index":11928,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.tokenurl",{"_index":11927,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.userinfourl",{"_index":11930,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.clientsecret",{"_index":18640,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.idphint",{"_index":12984,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcconfigdto",{"_index":12869,"title":{"classes/OidcConfigDto.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["oidcconfigdto.authorizationurl",{"_index":15866,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientid",{"_index":15863,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientsecret",{"_index":15864,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.defaultscopes",{"_index":15870,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.idphint",{"_index":15865,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.logouturl",{"_index":15869,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.parentsystemid",{"_index":15862,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.tokenurl",{"_index":15867,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.userinfourl",{"_index":15868,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidccontextresponse",{"_index":5448,"title":{"classes/OidcContextResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["oidcexternalsubmappername",{"_index":12909,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcidentityprovidermapper",{"_index":12834,"title":{"classes/OidcIdentityProviderMapper.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["oidcinternalname",{"_index":4565,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["oidcmock__base_url",{"_index":22912,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidcmockprovisioningstrategy",{"_index":15898,"title":{"injectables/OidcMockProvisioningStrategy.html":{}},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["oidcmockstrategy",{"_index":16321,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["oidcprovisioningservice",{"_index":15908,"title":{"injectables/OidcProvisioningService.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcprovisioningstrategy",{"_index":15988,"title":{"injectables/OidcProvisioningStrategy.html":{}},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcsystems",{"_index":18705,"title":{},"body":{"injectables/SystemService.html":{}}}],["oidcuserattributemappername",{"_index":12907,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["ok",{"_index":13234,"title":{},"body":{"classes/KeycloakSeedService.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["okay",{"_index":19051,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["old",{"_index":6229,"title":{},"body":{"injectables/CopyFilesService.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["oldconfig.alias",{"_index":12978,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs",{"_index":12882,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.foreach((oldconfig",{"_index":12982,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.some((oldconfig",{"_index":12977,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["older",{"_index":21714,"title":{},"body":{"license.html":{}}}],["oldparam.name",{"_index":9300,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams",{"_index":9276,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.every((oldparam",{"_index":9313,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((oldparam",{"_index":9298,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((parameter",{"_index":9315,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool",{"_index":9293,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool.parameters",{"_index":9294,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["once",{"_index":13231,"title":{},"body":{"classes/KeycloakSeedService.html":{},"classes/RedirectResponse.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["one",{"_index":9401,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ITaskParent.html":{},"injectables/JwtStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/S3ClientAdapter.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserLoginMigrationController.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["oneday",{"_index":6615,"title":{},"body":{"classes/CourseFactory.html":{}}}],["oneof",{"_index":4071,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ones",{"_index":6000,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["onetomany",{"_index":6397,"title":{},"body":{"entities/Course.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["onetomany('coursegroup",{"_index":6376,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["onetomany('dashboardgridelementmodel",{"_index":7434,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["onetomany('submission",{"_index":11972,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["onetomany('task",{"_index":11328,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["onetoone",{"_index":2683,"title":{},"body":{"entities/Board.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/UserLoginMigration.html":{}}}],["onetoone(undefined",{"_index":17340,"title":{},"body":{"entities/SchoolEntity.html":{},"entities/UserLoginMigration.html":{}}}],["onetoone({type",{"_index":2673,"title":{},"body":{"entities/Board.html":{}}}],["oneweekago",{"_index":19227,"title":{},"body":{"injectables/TaskUC.html":{}}}],["oneweekago.setdate(oneweekago.getdate",{"_index":19228,"title":{},"body":{"injectables/TaskUC.html":{}}}],["ongoing",{"_index":6708,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["onlyactivecourses",{"_index":6800,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DashboardUc.html":{}}}],["onlyexistingreferences",{"_index":2735,"title":{},"body":{"entities/Board.html":{}}}],["onlyfactories",{"_index":7666,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["onlyoauth",{"_index":18599,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemUc.html":{}}}],["onlyreadcourses",{"_index":19221,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onlywritecoursesids",{"_index":19220,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onmoduledestroy",{"_index":14534,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["onupdate",{"_index":2517,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["open",{"_index":18293,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["open/closed",{"_index":22449,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["openapi",{"_index":12377,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["opencourseids",{"_index":18975,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["opencourses",{"_index":19199,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opencourses.map((c",{"_index":19204,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opened",{"_index":19862,"title":{},"body":{"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application.html":{}}}],["openid",{"_index":7136,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["opening",{"_index":20838,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["openinnewtab",{"_index":9048,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["openldap",{"_index":22930,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["opennewtab",{"_index":236,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["operate",{"_index":22200,"title":{},"body":{"license.html":{}}}],["operated",{"_index":21920,"title":{},"body":{"license.html":{}}}],["operates",{"_index":22689,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["operating",{"_index":21790,"title":{},"body":{"license.html":{}}}],["operation",{"_index":10381,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"injectables/KeycloakMigrationService.html":{},"classes/NewsCrudOperationLoggable.html":{},"controllers/VideoConferenceController.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["operation.'})@apiresponse({status",{"_index":20882,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["operation.error.ts",{"_index":10377,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.error.ts:4",{"_index":10378,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.loggable",{"_index":14822,"title":{},"body":{"injectables/NewsUc.html":{}}}],["operation.loggable.ts",{"_index":14639,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:13",{"_index":14643,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:6",{"_index":14642,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operations",{"_index":23028,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["operator",{"_index":959,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/Scope.html":{},"license.html":{}}}],["operators",{"_index":22684,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["oplogsize",{"_index":22965,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["opportunity",{"_index":22157,"title":{},"body":{"license.html":{}}}],["ops",{"_index":22283,"title":{},"body":{"todo.html":{}}}],["opt/keycloak/bin/kc.sh",{"_index":22342,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optimal",{"_index":13355,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["optimisation",{"_index":22472,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["option",{"_index":21992,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optional",{"_index":33,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IError.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonAccount.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserProperties.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/ListOauthClientsParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchMyAccountParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichText.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateNewsParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["optional()@apiproperty",{"_index":15881,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["optionaldatathere",{"_index":22656,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["optionally",{"_index":11149,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["options",{"_index":701,"title":{"interfaces/Options.html":{}},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/ContextExternalToolFactory.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IShareTokenProperties.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"modules/MongoMemoryDatabaseModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"interfaces/Options.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"classes/SchoolExternalToolFactory.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{}}}],["options.collection",{"_index":7672,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.do",{"_index":4262,"title":{},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{}}}],["options.do.ts",{"_index":4412,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["options.do.ts:12",{"_index":4416,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.do.ts:6",{"_index":4414,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.enabled",{"_index":1421,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["options.entity",{"_index":4295,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["options.entity.ts",{"_index":4419,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["options.entity.ts:10",{"_index":4421,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{}}}],["options.everyattendeejoinsmuted",{"_index":20985,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.everyattendejoinsmuted",{"_index":20831,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["options.everybodyjoinsasmoderator",{"_index":20833,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.exchange",{"_index":1423,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.filesservicebaseurl",{"_index":1422,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["options.moderatormustapprovejoinrequests",{"_index":20835,"title":{},"body":{"entities/VideoConference.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.onlyfactories",{"_index":7673,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.order",{"_index":12314,"title":{},"body":{"controllers/ImportUserController.html":{},"injectables/NewsUc.html":{},"controllers/ToolController.html":{}}}],["options.response",{"_index":21063,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["options.response.ts",{"_index":21154,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:14",{"_index":21159,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:20",{"_index":21155,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:8",{"_index":21158,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.retrycount",{"_index":11602,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.retrydelay",{"_index":11603,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.routingkey",{"_index":1424,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.skip",{"_index":11621,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.ts",{"_index":11430,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["options.verbose",{"_index":11623,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options?.collection",{"_index":7671,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.context",{"_index":18026,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.exact",{"_index":13123,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.expiresat",{"_index":18027,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.expiresindays",{"_index":18075,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.limit",{"_index":13125,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.order",{"_index":8791,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{}}}],["options?.override",{"_index":7681,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.pagination",{"_index":8789,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["options?.schoolexclusive",{"_index":18071,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.skip",{"_index":13124,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["orchestrate",{"_index":23043,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["orchestrates",{"_index":22490,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["orchestration",{"_index":22531,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["order",{"_index":2185,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/ImportUserRepo.html":{},"injectables/LdapStrategy.html":{},"injectables/LessonRepo.html":{},"injectables/NewsRepo.html":{},"classes/PatchOrderParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["order._id",{"_index":8796,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["order.firstname",{"_index":20719,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.lastname",{"_index":20723,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.params.ts",{"_index":16095,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["order.params.ts:13",{"_index":16098,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["orderby",{"_index":964,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/NewsRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["orderby(bsondocuments",{"_index":11218,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["orderedlist",{"_index":17027,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["orderquery",{"_index":20718,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.firstname",{"_index":20720,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.lastname",{"_index":20724,"title":{},"body":{"injectables/UserRepo.html":{}}}],["org",{"_index":5220,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organisation",{"_index":17225,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["organization",{"_index":4998,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["organization.organization",{"_index":5088,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organization.resources).concat(this.resources",{"_index":5090,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder",{"_index":4985,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder.addresourcetoorganization(resourceprops",{"_index":4993,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationbuilder.addresourcetoorganization(this.maptasktowebcontentresource(task",{"_index":5000,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationelement.transform",{"_index":5226,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationelements",{"_index":5218,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationid",{"_index":10581,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["organizations",{"_index":5039,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["orgid",{"_index":17206,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["origin",{"_index":2115,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["original",{"_index":5451,"title":{},"body":{"classes/ConsentResponse.html":{},"injectables/CourseCopyService.html":{},"classes/LoginResponse-1.html":{},"injectables/PreviewService.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["originalboard",{"_index":3033,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["originalboard.getelements",{"_index":3034,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["originalcourse",{"_index":6532,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.color",{"_index":6557,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.getcoursegroupitems().length",{"_index":6568,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.name",{"_index":6549,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalelement",{"_index":13687,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["originalentity",{"_index":3041,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["originallesson",{"_index":3008,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallesson.course",{"_index":13845,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["originallesson.getlessonmaterials",{"_index":13812,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["originallesson.id",{"_index":3068,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallessonid",{"_index":3067,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["originalschooldo",{"_index":17613,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["originaltask",{"_index":3011,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.description",{"_index":18842,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.descriptioninputformat",{"_index":18843,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.id",{"_index":3071,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.name",{"_index":18841,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.teamsubmissions",{"_index":18844,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltaskid",{"_index":3070,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltaskname",{"_index":18862,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["originid",{"_index":11549,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["originsystemid",{"_index":20596,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["origintool",{"_index":6982,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["origintoolid",{"_index":6985,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["orm",{"_index":6758,"title":{},"body":{"entities/CourseNews.html":{},"injectables/DatabaseManagementService.html":{},"injectables/FilesStorageConsumer.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["orm.io",{"_index":22428,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["orm/core",{"_index":398,"title":{},"body":{"entities/Account.html":{},"injectables/AccountRepo.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"classes/BasicToolConfigEntity.html":{},"entities/Board.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DatabaseManagementService.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesRepo.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"modules/H5PEditorModule.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/LdapConfig.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/Scope.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{}}}],["orm/entitymanager",{"_index":22830,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["orm/issues/1230",{"_index":9738,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["orm/issues/2165",{"_index":12073,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["orm/mikro",{"_index":9737,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["orm/mongodb",{"_index":97,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"entities/ClassEntity.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"classes/DoBaseFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LtiTool.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/ShareToken.html":{},"injectables/StorageProviderRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"dependencies.html":{}}}],["orm/nestjs",{"_index":10252,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{}}}],["orphanremoval",{"_index":6377,"title":{},"body":{"entities/Course.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/LessonEntity.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["os",{"_index":9982,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["os.eol",{"_index":10014,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["other.name.tolocalelowercase",{"_index":8700,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["otherindex",{"_index":8698,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["othermodule",{"_index":22521,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["otherparams",{"_index":18577,"title":{},"body":{"classes/SystemFactory.html":{}}}],["others",{"_index":10541,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["otherwise",{"_index":1666,"title":{},"body":{"modules/AuthenticationModule.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ours",{"_index":22586,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["out",{"_index":444,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DeleteFilesUc.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IImportUserProperties.html":{},"modules/IdentityManagementModule.html":{},"entities/ImportUser.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceCreateParams.html":{},"modules/VideoConferenceModule.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["outcome",{"_index":22704,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outdated",{"_index":19712,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"todo.html":{}}}],["outdated.loggable",{"_index":19939,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["outdatedsince",{"_index":12101,"title":{},"body":{"interfaces/IUserProperties.html":{},"injectables/SchoolMigrationService.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{},"classes/UserScope.html":{}}}],["outer",{"_index":22731,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outgoing",{"_index":22501,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["output",{"_index":10548,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"injectables/PreviewService.html":{},"classes/ServerConsole.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["outputformat",{"_index":6141,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["outside",{"_index":7349,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["over",{"_index":22457,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["overall",{"_index":22945,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["overenginiering",{"_index":22470,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["overridden",{"_index":14545,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["override",{"_index":2180,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BusinessError.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["overrideprovider(consolewriterservice",{"_index":19434,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrideprovider(databasemanagementuc",{"_index":19432,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrides",{"_index":8216,"title":{},"body":{"modules/ErrorModule.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["overrides/configures",{"_index":6333,"title":{},"body":{"modules/CoreModule.html":{}}}],["overriding",{"_index":22781,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["overview",{"_index":22385,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["overwrite_setting_show_setup_wizard='completed",{"_index":23002,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["overwritten",{"_index":22783,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["owned",{"_index":22092,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owner",{"_index":9574,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"injectables/HydraAdapter.html":{},"classes/ListOauthClientsParams.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"classes/SubmissionItemResponseMapper.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ownerid",{"_index":9604,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ownership",{"_index":14663,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owneruserid",{"_index":10049,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["owns",{"_index":18958,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["p",{"_index":2412,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/S3ClientAdapter.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["p.key",{"_index":17171,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p.name",{"_index":9328,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["p.sourcepath",{"_index":17157,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p27030:27017",{"_index":22961,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["package",{"_index":21311,"title":{"dependencies.html":{},"properties.html":{}},"body":{"todo.html":{}}}],["packaged",{"_index":21879,"title":{},"body":{"license.html":{}}}],["packages",{"_index":22257,"title":{},"body":{"todo.html":{}}}],["packaging",{"_index":21785,"title":{},"body":{"license.html":{}}}],["pad",{"_index":8261,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["pad.data.padid",{"_index":8263,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padid",{"_index":8258,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padname",{"_index":8259,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padresponse",{"_index":8257,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["page",{"_index":1014,"title":{"classes/Page.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}},"body":{"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/Page.html":{},"classes/PageContentQueryParams.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"injectables/SchoolMigrationService.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"injectables/UserService.html":{},"additional-documentation/nestjs-application.html":{}}}],["page([userloginmigration",{"_index":20499,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["page(entitydos",{"_index":8797,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["pagecontentdto",{"_index":16010,"title":{"classes/PageContentDto.html":{}},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{}}}],["pagecontentmapper",{"_index":16021,"title":{"injectables/PageContentMapper.html":{}},"body":{"injectables/PageContentMapper.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentqueryparams",{"_index":16030,"title":{"classes/PageContentQueryParams.html":{}},"body":{"classes/PageContentQueryParams.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentresponse",{"_index":16025,"title":{"classes/PageContentResponse.html":{}},"body":{"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"controllers/UserMigrationController.html":{}}}],["paged",{"_index":537,"title":{},"body":{"controllers/AccountController.html":{}}}],["pages",{"_index":1042,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["pagetype",{"_index":16033,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypequery",{"_index":20562,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.pagetype",{"_index":20567,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.sourcesystem",{"_index":20568,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.targetsystem",{"_index":20569,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypes",{"_index":16036,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system",{"_index":20629,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system_mandatory",{"_index":20631,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_target_system",{"_index":20623,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes})@isenum(pagetypes",{"_index":16037,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["paginate",{"_index":9374,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["pagination",{"_index":6487,"title":{},"body":{"controllers/CourseController.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["pagination.limit",{"_index":19680,"title":{},"body":{"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination.skip",{"_index":19679,"title":{},"body":{"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination?.limit",{"_index":6806,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["pagination?.skip",{"_index":6805,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["paginationparams",{"_index":1028,"title":{"classes/PaginationParams.html":{}},"body":{"classes/AccountSearchQueryParams.html":{},"controllers/CourseController.html":{},"injectables/CourseUc.html":{},"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"classes/PaginationParams.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{}}}],["paginationparams:14",{"_index":1039,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["paginationparams:8",{"_index":1043,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["paginationresponse",{"_index":1007,"title":{"classes/PaginationResponse.html":{}},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PaginationResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["paginationresponse:12",{"_index":1012,"title":{},"body":{"classes/AccountSearchListResponse.html":{}}}],["paginationresponse:136",{"_index":14650,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["paginationresponse:14",{"_index":1023,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["paginationresponse:17",{"_index":1022,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["paginationresponse:20",{"_index":1017,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["paginationresponse:51",{"_index":20531,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["paginationresponse:63",{"_index":9803,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["paginationresponse:68",{"_index":6698,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["paginationresponse:7",{"_index":9063,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["paginationresponse:71",{"_index":12360,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["paginationresponse:74",{"_index":18900,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["paginationresponse:91",{"_index":6081,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["pairwise",{"_index":9176,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["papaparse",{"_index":21426,"title":{},"body":{"dependencies.html":{}}}],["paper",{"_index":22227,"title":{},"body":{"license.html":{}}}],["paragraph",{"_index":22030,"title":{},"body":{"license.html":{}}}],["paragraphs",{"_index":22101,"title":{},"body":{"license.html":{}}}],["parallel",{"_index":22828,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param",{"_index":264,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BsonConverter.html":{},"controllers/CardController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"controllers/ColumnController.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalToolFactory.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesStorageClientAdapterService.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GuardAgainst.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/PermissionService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamsRepo.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('oauthclientid",{"_index":15790,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["param('scope",{"_index":21022,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('scopeid",{"_index":21023,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('token",{"_index":9953,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["param)).rejects.tothrow(badrequestexception",{"_index":22773,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param)).tothrow(badrequestexception",{"_index":22771,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param.builder.ts",{"_index":6175,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.builder.ts:6",{"_index":6178,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.default",{"_index":8702,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["param.description",{"_index":8878,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.displayname",{"_index":8692,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.isoptional",{"_index":5357,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.location",{"_index":8880,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.name",{"_index":298,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.name.tolowercase",{"_index":5350,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["param.regex",{"_index":5364,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.regexcomment",{"_index":8879,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.scope",{"_index":5351,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.startswith",{"_index":265,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["param.type",{"_index":5363,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["paramdisplayat",{"_index":14829,"title":{},"body":{"injectables/NewsUc.html":{}}}],["parameter",{"_index":290,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"classes/LoginResponse-1.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parameter.do.ts",{"_index":7062,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:10",{"_index":7065,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:12",{"_index":7070,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:14",{"_index":7071,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:16",{"_index":7072,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:18",{"_index":7068,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:20",{"_index":7073,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:22",{"_index":7064,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:4",{"_index":7069,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:6",{"_index":7067,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:8",{"_index":7066,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.entity.ts",{"_index":7089,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:10",{"_index":7093,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:13",{"_index":7092,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:16",{"_index":7091,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:19",{"_index":7096,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:22",{"_index":7097,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:25",{"_index":7098,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:28",{"_index":7094,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:31",{"_index":7099,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:34",{"_index":7090,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:7",{"_index":7095,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.isoptional",{"_index":302,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolVersionService.html":{}}}],["parameter.location",{"_index":301,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["parameter.name",{"_index":288,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolVersionService.html":{}}}],["parameter.params",{"_index":8467,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["parameter.params.ts",{"_index":7180,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:13",{"_index":7191,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:18",{"_index":7185,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:23",{"_index":7183,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:28",{"_index":7182,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:33",{"_index":7192,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:38",{"_index":7193,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:42",{"_index":7196,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:46",{"_index":7190,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:50",{"_index":7199,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:54",{"_index":7187,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.response",{"_index":5650,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["parameter.response.ts",{"_index":7204,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:10",{"_index":7210,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:13",{"_index":7208,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:16",{"_index":7207,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:19",{"_index":7206,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:22",{"_index":7211,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:25",{"_index":7212,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:28",{"_index":7213,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:31",{"_index":7209,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:34",{"_index":7214,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:37",{"_index":7205,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.scope",{"_index":291,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolConfigurationService.html":{}}}],["parameter/custom",{"_index":7088,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter_type_not_implemented",{"_index":16069,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parameterkeys",{"_index":14525,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameternames",{"_index":286,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameternames.includes(parameter.name",{"_index":292,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["parameternames.join",{"_index":14529,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameters",{"_index":29,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IGridElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichText.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"modules/RocketChatModule.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["parameters.'})@apiresponse({status",{"_index":20883,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["parameters.map((param",{"_index":14526,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameterstoinclude",{"_index":184,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["parameterstoinclude.map(async",{"_index":295,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["parametertype",{"_index":16068,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parametertypenotimplementedloggableexception",{"_index":203,"title":{"classes/ParameterTypeNotImplementedLoggableException.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parametertypenotimplementedloggableexception(customparameter.type",{"_index":330,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params",{"_index":185,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/CalendarService.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordFactory.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IToolLaunchStrategy.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/JwtTestFactory.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LessonCopyService.html":{},"classes/LessonFactory.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MigrationResponse.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthMigrationDto.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolFactory.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["params(params",{"_index":725,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["params.append('event",{"_index":3974,"title":{},"body":{"injectables/CalendarService.html":{}}}],["params.append(key",{"_index":2374,"title":{},"body":{"injectables/BBBService.html":{}}}],["params.availabledate",{"_index":18939,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.challenge",{"_index":15550,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client",{"_index":15572,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client_name",{"_index":15535,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.clientid",{"_index":8984,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["params.confirmpassword",{"_index":589,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.content",{"_index":14706,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.contents",{"_index":13866,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contents.foreach((element",{"_index":13867,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contextexternaltoolid",{"_index":19558,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{}}}],["params.contextid",{"_index":19551,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{}}}],["params.contexttype",{"_index":19552,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{}}}],["params.copyname",{"_index":13733,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["params.course",{"_index":13865,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.courseid",{"_index":6315,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.description",{"_index":18938,"title":{},"body":{"classes/TaskMapper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["params.destinationcourse",{"_index":13732,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["params.destinationcourse.id",{"_index":13794,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["params.displayat",{"_index":14707,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.dto",{"_index":22496,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["params.duedate",{"_index":18940,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.elements",{"_index":16988,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params.enablemigrationstart",{"_index":14515,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.everyattendeejoinsmuted",{"_index":21029,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.everybodyjoinsasmoderator",{"_index":21030,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.externalid",{"_index":13498,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.externaltoolid",{"_index":19683,"title":{},"body":{"controllers/ToolController.html":{}}}],["params.features",{"_index":13499,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.federalstate",{"_index":13509,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.filerecordid",{"_index":10233,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["params.find",{"_index":297,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params.flagged",{"_index":12329,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.from",{"_index":7244,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.hidden",{"_index":13869,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.id",{"_index":13497,"title":{},"body":{"classes/LegacySchoolDo.html":{},"controllers/OauthProviderController.html":{}}}],["params.inmaintenancesince",{"_index":13500,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.interface",{"_index":211,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["params.interface.ts",{"_index":12091,"title":{},"body":{"interfaces/IToolLaunchParams.html":{}}}],["params.inusermigration",{"_index":13501,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.language",{"_index":20812,"title":{},"body":{"injectables/UserUc.html":{}}}],["params.lessonid",{"_index":6316,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.limit",{"_index":15533,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.logouturl",{"_index":20911,"title":{},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.map((parameter",{"_index":287,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params.moderatormustapprovejoinrequests",{"_index":21031,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.name",{"_index":8983,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/TaskMapper.html":{}}}],["params.oauthmigrationfinalfinish",{"_index":14513,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationfinished",{"_index":14511,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationmandatory",{"_index":14509,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationpossible",{"_index":14507,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.officialschoolnumber",{"_index":13503,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.offset",{"_index":15534,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.originalboard",{"_index":3042,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["params.owner",{"_index":15536,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.password",{"_index":588,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.previousexternalid",{"_index":13502,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.schoolexternaltoolid",{"_index":19555,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["params.schoolid",{"_index":19548,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["params.schoolyear",{"_index":13504,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.systemid",{"_index":15766,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["params.systems",{"_index":13506,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.target",{"_index":14826,"title":{},"body":{"injectables/NewsUc.html":{}}}],["params.targetid",{"_index":14709,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetmodel",{"_index":14708,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.taskid",{"_index":18254,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["params.title",{"_index":7250,"title":{},"body":{"controllers/DashboardController.html":{},"classes/NewsMapper.html":{}}}],["params.to",{"_index":7245,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.user",{"_index":13785,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["params.user.id",{"_index":13743,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["params.userid",{"_index":12325,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.userloginmigrationid",{"_index":13508,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.visibility",{"_index":16986,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params?.accountid",{"_index":6889,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.aud",{"_index":6885,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.external_sub",{"_index":6890,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.iss",{"_index":6884,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.privatekey",{"_index":6892,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.sub",{"_index":6882,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params].ts",{"_index":22558,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["paranoid",{"_index":1250,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["parent",{"_index":3305,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"controllers/BoardSubmissionController.html":{},"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"controllers/ElementController.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ITaskParent.html":{},"classes/LessonCopyApiParams.html":{},"entities/LessonEntity.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemService.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.addchild(card",{"_index":4152,"title":{},"body":{"injectables/CardService.html":{}}}],["parent.addchild(column",{"_index":4916,"title":{},"body":{"injectables/ColumnService.html":{}}}],["parent.addchild(element",{"_index":5551,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["parent.children.findindex((obj",{"_index":16581,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.children.foreach((child",{"_index":16580,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.duedate",{"_index":18340,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["parent.getstudentids",{"_index":11357,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["parent.getstudentids().length",{"_index":12006,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.id",{"_index":9662,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["parent.removechild(domainobject",{"_index":3381,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["parentcourseid",{"_index":18860,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["parentdata",{"_index":16548,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.boardnode",{"_index":16557,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.position",{"_index":16558,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentid",{"_index":3574,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/SingleFileParams.html":{}}}],["parentids",{"_index":3577,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/TaskRepo.html":{}}}],["parentids.courseids",{"_index":19019,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.creatorid",{"_index":19017,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.lessonids",{"_index":19021,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope",{"_index":19016,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bycourseids(parentids.courseids",{"_index":19020,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bylessonids(parentids.lessonids",{"_index":19022,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.byonlycreatorid(parentids.creatorid",{"_index":19018,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentmeetingid",{"_index":2204,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["parentname",{"_index":17949,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["parentnode",{"_index":16536,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentparams",{"_index":13833,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentparams.courseid",{"_index":13843,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentpermission",{"_index":13904,"title":{},"body":{"injectables/LessonRule.html":{}}}],["parentpermission(user",{"_index":13916,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parentpropertypath",{"_index":1518,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["parentrule",{"_index":23090,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["parents",{"_index":18957,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished",{"_index":18983,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bycourseids(parentids.finishedcourseids",{"_index":18984,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bylessonids(parentids.lessonidsoffinishedcourses",{"_index":18985,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsmap",{"_index":16528,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentsopen",{"_index":18980,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bycourseids(parentids.opencourseids",{"_index":18981,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bylessonids(parentids.lessonidsofopencourses",{"_index":18982,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsystemid",{"_index":15856,"title":{},"body":{"classes/OidcConfigDto.html":{},"classes/SystemOidcMapper.html":{}}}],["parenttype",{"_index":6111,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileDto-1.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleFileParams.html":{}}}],["parse",{"_index":22603,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parsed",{"_index":22629,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parseobjectidpipe",{"_index":22605,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parser",{"_index":21364,"title":{},"body":{"dependencies.html":{}}}],["part",{"_index":12528,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/SubmissionItemUc.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["partial",{"_index":696,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"classes/FileRecordFactory.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFindOptions.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["partialfilterexpression",{"_index":11487,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["partialtype",{"_index":19957,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["participantcount",{"_index":2265,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["particular",{"_index":19053,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{}}}],["parties",{"_index":21757,"title":{},"body":{"license.html":{}}}],["parts",{"_index":21803,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["party",{"_index":21921,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["party's",{"_index":22069,"title":{},"body":{"license.html":{}}}],["pascalcase",{"_index":22587,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["pass",{"_index":951,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/GlobalValidationPipe.html":{},"injectables/TaskUC.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["passed",{"_index":698,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["passing",{"_index":23046,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["passport",{"_index":12684,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"dependencies.html":{}}}],["passportmodule",{"_index":1639,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["passportstrategy",{"_index":12692,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passportstrategy(strategy",{"_index":12695,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passthrough",{"_index":6507,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/PreviewService.html":{}}}],["password",{"_index":87,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IKeycloakSettings.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["password.'})@apiresponse({status",{"_index":526,"title":{},"body":{"controllers/AccountController.html":{}}}],["password.params.ts",{"_index":16088,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:15",{"_index":16093,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:25",{"_index":16092,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.trim",{"_index":1853,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["passwordnew",{"_index":16078,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordold",{"_index":16079,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordpattern",{"_index":474,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["passwordpolicy",{"_index":12811,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["past",{"_index":6732,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["paste",{"_index":22848,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["patch",{"_index":552,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/RoomsController.html":{},"controllers/TaskController.html":{},"classes/TestApiClient.html":{},"controllers/UserController.html":{}}}],["patch('/language",{"_index":20011,"title":{},"body":{"controllers/UserController.html":{}}}],["patch(':boardid/title",{"_index":2974,"title":{},"body":{"controllers/BoardController.html":{}}}],["patch(':cardid/height",{"_index":4062,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':cardid/title",{"_index":4065,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':columnid/title",{"_index":4879,"title":{},"body":{"controllers/ColumnController.html":{}}}],["patch(':contentelementid/content",{"_index":8073,"title":{},"body":{"controllers/ElementController.html":{}}}],["patch(':dashboardid/element",{"_index":7230,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':dashboardid/moveelement",{"_index":7225,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':id",{"_index":582,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch(':id')@apioperation({summary",{"_index":544,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch(':importuserid/flag",{"_index":12297,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':importuserid/match",{"_index":12289,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':newsid",{"_index":14610,"title":{},"body":{"controllers/NewsController.html":{}}}],["patch(':roomid/board/order",{"_index":16973,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':roomid/elements/:elementid/visibility",{"_index":16970,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':submissionitemid",{"_index":3708,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["patch(':taskid/finish",{"_index":18788,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/restore",{"_index":18791,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/revertpublished",{"_index":18794,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch('consentrequest/:challenge",{"_index":15561,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('loginrequest/:challenge",{"_index":15548,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('logoutrequest/:challenge",{"_index":15552,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('me",{"_index":579,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me')@apioperation({summary",{"_index":548,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me/password",{"_index":586,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me/password')@apioperation({summary",{"_index":519,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions",{"_index":4598,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions')@apiresponse({status",{"_index":4577,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch(path",{"_index":1747,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patch(subpath",{"_index":1746,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patchconsentrequest",{"_index":15449,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["patchconsentrequest(challenge",{"_index":15454,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["patchconsentrequest(params",{"_index":15502,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchelementvisibility",{"_index":16958,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchelementvisibility(urlparams",{"_index":16969,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchgroup",{"_index":7220,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroup(urlparams",{"_index":7227,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroupparams",{"_index":7229,"title":{"classes/PatchGroupParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/PatchGroupParams.html":{}}}],["patching",{"_index":16074,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["patchlanguage",{"_index":20755,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchlanguage(userid",{"_index":20772,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchloginrequest",{"_index":15479,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(currentuserid",{"_index":15600,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(params",{"_index":15505,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchmyaccountparams",{"_index":547,"title":{"classes/PatchMyAccountParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/PatchMyAccountParams.html":{}}}],["patchmypasswordparams",{"_index":518,"title":{"classes/PatchMyPasswordParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/PatchMyPasswordParams.html":{}}}],["patchorderingofelements",{"_index":16959,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderingofelements(urlparams",{"_index":16972,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderparams",{"_index":16094,"title":{"classes/PatchOrderParams.html":{}},"body":{"classes/PatchOrderParams.html":{},"controllers/RoomsController.html":{}}}],["patchvisibilityparams",{"_index":16099,"title":{"classes/PatchVisibilityParams.html":{}},"body":{"classes/PatchVisibilityParams.html":{},"controllers/RoomsController.html":{}}}],["patent",{"_index":22029,"title":{},"body":{"license.html":{}}}],["patents",{"_index":22087,"title":{},"body":{"license.html":{}}}],["path",{"_index":576,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/CalendarService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FileSystemAdapter.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/OAuthService.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"injectables/S3ClientAdapter.html":{},"classes/TestApiClient.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["path.join(...paths",{"_index":10025,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["path.replace(':token",{"_index":1464,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["path.slice(1",{"_index":1766,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["path.targetpath",{"_index":17164,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["path_separator",{"_index":3561,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathobjects",{"_index":17167,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathobjects.filter((p",{"_index":17173,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathofchildren",{"_index":3579,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathparam",{"_index":263,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathparams",{"_index":259,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathparams.map((param",{"_index":262,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathproperties",{"_index":151,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["pathproperties.find",{"_index":267,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathproperties.length",{"_index":246,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathqueries",{"_index":3603,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["pathqueries.length",{"_index":3605,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["paths",{"_index":9985,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["paths.join",{"_index":17153,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((p",{"_index":17168,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((path",{"_index":16174,"title":{},"body":{"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["paths.map(async",{"_index":17161,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["path}${id}${path_separator",{"_index":3585,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pattern",{"_index":475,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICourseProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/LdapStrategy.html":{},"classes/LessonCopyApiParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UserInfoResponse.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["pattern.a",{"_index":22678,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["pattern.test(firstchar",{"_index":6468,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["pattern_login_from_dn",{"_index":11474,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["payload",{"_index":231,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AuthenticationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/CurrentUserMapper.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/JwtStrategy.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemService.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["payload.'})@apiresponse({status",{"_index":17883,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["payload.completed",{"_index":18336,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["payload.parentid",{"_index":17972,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.parenttype",{"_index":17971,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.response",{"_index":18000,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["payload.response.ts",{"_index":17966,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:11",{"_index":17970,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:14",{"_index":17969,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:4",{"_index":17968,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.ts",{"_index":6894,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["payload[property.name",{"_index":2663,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["payment",{"_index":22130,"title":{},"body":{"license.html":{}}}],["peer",{"_index":21929,"title":{},"body":{"license.html":{}}}],["peers",{"_index":21932,"title":{},"body":{"license.html":{}}}],["pem",{"_index":6875,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["pending",{"_index":9714,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["per",{"_index":8101,"title":{},"body":{"injectables/ElementUc.html":{},"classes/KeycloakSeedService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["perf_hooks",{"_index":17621,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["perfectly",{"_index":22734,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["performance",{"_index":17620,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["performance.now",{"_index":17639,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["performing",{"_index":14645,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"license.html":{}}}],["period",{"_index":17624,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["period.entity",{"_index":10658,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["period.entity.ts",{"_index":10756,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["period.entity.ts:12",{"_index":10759,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["period.entity.ts:15",{"_index":10758,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["permanently",{"_index":22037,"title":{},"body":{"license.html":{}}}],["permission",{"_index":843,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"modules/CommonToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseNews.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRoleProperties.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"injectables/NewsUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/SchoolExternalToolUc.html":{},"entities/SchoolNews.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"entities/TeamNews.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserFactory.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission'})@apiresponse({status",{"_index":4583,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permission(s",{"_index":23050,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_create",{"_index":6585,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_edit",{"_index":6598,"title":{},"body":{"injectables/CourseExportUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_view",{"_index":7967,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["permission.create_user",{"_index":23066,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.entity",{"_index":9602,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.entity.ts",{"_index":9666,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["permission.entity.ts:18",{"_index":9673,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:21",{"_index":9675,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:24",{"_index":9676,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:27",{"_index":9672,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:30",{"_index":9671,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:33",{"_index":9670,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.enum",{"_index":23109,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.homework_create",{"_index":18093,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.includes('news",{"_index":14861,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.instance",{"_index":23074,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.join_meeting",{"_index":21122,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["permission.news_create",{"_index":14828,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_edit",{"_index":14824,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_view",{"_index":14823,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.nextcloud_user",{"_index":15616,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["permission.oauth_client_edit",{"_index":15441,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.oauth_client_view",{"_index":15438,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.refid.equals(refobjectid",{"_index":9622,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.school_create",{"_index":23061,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.school_edit",{"_index":13628,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["permission.start_meeting",{"_index":21121,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["permission.task_dashboard_teacher_view_v3",{"_index":19175,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.task_dashboard_view_v3",{"_index":19176,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.tool_admin",{"_index":9206,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["permission.topic_create",{"_index":18092,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.topic_edit",{"_index":13968,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.topic_view",{"_index":13966,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.user_login_migration_admin",{"_index":4463,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["permissioncontext",{"_index":18481,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["permissioncontexts.create",{"_index":23058,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissionmap",{"_index":21270,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissionmap.get(permission.join_meeting",{"_index":21274,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissionmap.get(permission.start_meeting",{"_index":21273,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissionmapper",{"_index":4663,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionmapping",{"_index":21044,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["permissionmapping[bbbrole",{"_index":21050,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["permissionmapping[role",{"_index":21105,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["permissionrefid",{"_index":10052,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["permissions",{"_index":1916,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"entities/CourseNews.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICurrentUser.html":{},"interfaces/INewsProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/PermissionService.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/TeamNews.html":{},"classes/TeamRolePermissionsDto.html":{},"entities/User.html":{},"controllers/UserController.html":{},"classes/UserFactory.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissions(+share",{"_index":4585,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissions.body.params",{"_index":4592,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.body.params.ts",{"_index":19289,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:11",{"_index":19294,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:15",{"_index":19290,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:19",{"_index":19291,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:23",{"_index":19293,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:7",{"_index":19292,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.create",{"_index":4542,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.delete",{"_index":4543,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.dto",{"_index":4512,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.dto.ts",{"_index":19295,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:10",{"_index":19296,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["permissions.dto.ts:2",{"_index":19299,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:4",{"_index":19300,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:6",{"_index":19297,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:8",{"_index":19298,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.every((p",{"_index":9405,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.filter((permission",{"_index":14860,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permissions.foreach((perm",{"_index":21276,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissions.includes(p",{"_index":1918,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["permissions.length",{"_index":9399,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.mapper",{"_index":4611,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["permissions.mapper.ts",{"_index":19303,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.mapper.ts:12",{"_index":19306,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.read",{"_index":4540,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.refid",{"_index":9605,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permissions.share",{"_index":4544,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.write",{"_index":4541,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissionsbody",{"_index":4575,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissionscopemapping",{"_index":21123,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["permissionscopemapping[scope",{"_index":21272,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissionsdto",{"_index":4669,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionservice",{"_index":440,"title":{"injectables/PermissionService.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/PermissionService.html":{}}}],["permissive",{"_index":21863,"title":{},"body":{"license.html":{}}}],["permit",{"_index":21892,"title":{},"body":{"license.html":{}}}],["permits",{"_index":21709,"title":{},"body":{"license.html":{}}}],["permitted",{"_index":21658,"title":{},"body":{"license.html":{}}}],["permittedcourses",{"_index":19210,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedlessons",{"_index":19226,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedmatch",{"_index":20700,"title":{},"body":{"injectables/UserRepo.html":{}}}],["permittedsubmissions",{"_index":18475,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["perpetuity",{"_index":21970,"title":{},"body":{"license.html":{}}}],["persist",{"_index":6984,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"injectables/DashboardRepo.html":{},"interfaces/ICollectionFilePath.html":{},"entities/LtiTool.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["persist(entity",{"_index":7591,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush",{"_index":7585,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush(entity",{"_index":7593,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persisted",{"_index":13254,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["persistent",{"_index":1458,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["person",{"_index":17228,"title":{},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["personal",{"_index":21941,"title":{},"body":{"license.html":{}}}],["personenkontext",{"_index":17233,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["personenkontexte",{"_index":17261,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["personenstatus",{"_index":17234,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["perspective",{"_index":23029,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pertinent",{"_index":22148,"title":{},"body":{"license.html":{}}}],["physical",{"_index":21899,"title":{},"body":{"license.html":{}}}],["physically",{"_index":21911,"title":{},"body":{"license.html":{}}}],["pid",{"_index":17262,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["piece",{"_index":22446,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["pieces",{"_index":21684,"title":{},"body":{"license.html":{}}}],["pilot",{"_index":20575,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["pipe",{"_index":1384,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/GlobalValidationPipe.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["pipe/global",{"_index":20821,"title":{},"body":{"modules/ValidationModule.html":{}}}],["pipeline",{"_index":10061,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{},"injectables/UserRepo.html":{}}}],["pipeline.push",{"_index":20725,"title":{},"body":{"injectables/UserRepo.html":{}}}],["pipes",{"_index":22575,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["pkcs1",{"_index":6874,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["place",{"_index":19046,"title":{},"body":{"injectables/TaskRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["placeholder",{"_index":11118,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholder.length",{"_index":11257,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholders",{"_index":11284,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["placeholdervalue",{"_index":11263,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["places",{"_index":22483,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["plain",{"_index":3853,"title":{},"body":{"injectables/BsonConverter.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/SymetricKeyEncryptionService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["plaintextcontent",{"_index":1574,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["plaintextmailcontent",{"_index":1572,"title":{"interfaces/PlainTextMailContent.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["plaintoclass",{"_index":10218,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["plaintoclass(filerecordparams",{"_index":10234,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["player",{"_index":10794,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["please",{"_index":2477,"title":{},"body":{"injectables/BaseDORepo.html":{},"entities/Board.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"injectables/FileRecordRepo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/PermissionService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["plumbing",{"_index":22853,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["plus",{"_index":22073,"title":{},"body":{"license.html":{}}}],["png",{"_index":8622,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["point",{"_index":6906,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UpdateNewsParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["pointer",{"_index":22222,"title":{},"body":{"license.html":{}}}],["pointing",{"_index":3049,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["policy",{"_index":23127,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pool",{"_index":21455,"title":{},"body":{"dependencies.html":{}}}],["populate",{"_index":4628,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/FilesRepo.html":{},"interfaces/IRepoLoader.html":{},"injectables/NewsRepo.html":{},"injectables/PermissionService.html":{},"injectables/ReferenceLoader.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["populate(tasks",{"_index":18966,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["populateboard",{"_index":3628,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populateboard(board",{"_index":3636,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populated",{"_index":3396,"title":{},"body":{"entities/BoardElement.html":{},"entities/Course.html":{},"entities/CourseNews.html":{},"interfaces/ICourseProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["populatereferences",{"_index":18388,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populatereferences(submissions",{"_index":18396,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populateroles",{"_index":19381,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["populateroles(roles",{"_index":19383,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["port",{"_index":1541,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ported",{"_index":1124,"title":{},"body":{"injectables/AccountService.html":{}}}],["portion",{"_index":21936,"title":{},"body":{"license.html":{}}}],["pos",{"_index":1758,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/BoardCopyService.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/TestApiClient.html":{}}}],["pos.x",{"_index":7347,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["pos.y",{"_index":7350,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position",{"_index":2809,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/FileElement.html":{},"classes/GridElement.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["position.groupindex",{"_index":7393,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position.x",{"_index":7482,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["position.y",{"_index":7483,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["positionfromgridindex",{"_index":7264,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["positionfromgridindex(index",{"_index":7299,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["possesses",{"_index":21908,"title":{},"body":{"license.html":{}}}],["possession",{"_index":21877,"title":{},"body":{"license.html":{}}}],["possibility",{"_index":22202,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["possible",{"_index":2578,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/BoardElementResponse.html":{},"modules/BoardModule.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"controllers/OauthSSOController.html":{},"classes/SchoolInMigrationError.html":{},"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["post",{"_index":2955,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"injectables/HydraAdapter.html":{},"controllers/ImportUserController.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LoginController.html":{},"injectables/Lti11EncryptionService.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"classes/TestApiClient.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"classes/ToolLaunchRequestResponse.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["post('/:externaltoolid",{"_index":19685,"title":{},"body":{"controllers/ToolController.html":{}}}],["post('/:externaltoolid')@apiokresponse({description",{"_index":19662,"title":{},"body":{"controllers/ToolController.html":{}}}],["post(':boardid/columns",{"_index":2980,"title":{},"body":{"controllers/BoardController.html":{}}}],["post(':cardid/elements",{"_index":4076,"title":{},"body":{"controllers/CardController.html":{}}}],["post(':columnid/cards",{"_index":4884,"title":{},"body":{"controllers/ColumnController.html":{}}}],["post(':contentelementid/submissions",{"_index":8079,"title":{},"body":{"controllers/ElementController.html":{}}}],["post(':roomid/copy",{"_index":16989,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':roomid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":16961,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':scope/:scopeid",{"_index":21021,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':scope/:scopeid')@apioperation({summary",{"_index":21006,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':taskid/copy",{"_index":18817,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':taskid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":18777,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':token/import",{"_index":17913,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["post('clients",{"_index":15538,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["post('close",{"_index":20318,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('close')@apiunprocessableentityresponse({description",{"_index":20246,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('export",{"_index":7695,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('export/:collectionname",{"_index":7692,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('ldap",{"_index":14106,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('lessons/:lessonid/copy",{"_index":16993,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('lessons/:lessonid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":16964,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('local",{"_index":14111,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('migrate",{"_index":12285,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["post('oauth2",{"_index":14115,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('seed",{"_index":13155,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["post('seed/:collectionname",{"_index":7698,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('start",{"_index":20308,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('start')@apiunprocessableentityresponse({description",{"_index":20283,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('startsync",{"_index":12272,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('startusermigration",{"_index":12293,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('sync",{"_index":7704,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post()@apicreatedresponse({description",{"_index":19587,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["post(`${this.options.uri}${path",{"_index":1389,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(`${this.options.uri}/api/v1/login",{"_index":1396,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(path",{"_index":1388,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/TestApiClient.html":{}}}],["post(subpath",{"_index":1748,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["post.params.ts",{"_index":5724,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:10",{"_index":5736,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:14",{"_index":5726,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:15",{"_index":17377,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:18",{"_index":5728,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:22",{"_index":17375,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:23",{"_index":5730,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:26",{"_index":17378,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:30",{"_index":5735,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:34",{"_index":5738,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["postasadmin(path",{"_index":1369,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["postloginredirect",{"_index":15058,"title":{},"body":{"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"classes/SSOLoginQuery.html":{},"injectables/UserMigrationService.html":{}}}],["potential",{"_index":6543,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["potentially",{"_index":23140,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["povider",{"_index":22276,"title":{},"body":{"todo.html":{}}}],["power",{"_index":21848,"title":{},"body":{"license.html":{}}}],["powershell",{"_index":22906,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["pr",{"_index":21624,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["practical",{"_index":21671,"title":{},"body":{"license.html":{}}}],["practice",{"_index":22105,"title":{},"body":{"license.html":{}}}],["practices",{"_index":22862,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["practices/layers/orm",{"_index":22281,"title":{},"body":{"todo.html":{}}}],["preamble",{"_index":21662,"title":{},"body":{"license.html":{}}}],["precise",{"_index":4172,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{}}}],["preconditions",{"_index":21587,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["predecessor",{"_index":22070,"title":{},"body":{"license.html":{}}}],["predefined",{"_index":22652,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["preexisting",{"_index":22714,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["preferences",{"_index":12102,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["preferred",{"_index":21775,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["prefetch",{"_index":16478,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefetchcount",{"_index":16481,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefix",{"_index":483,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AuthenticationResponse.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"interfaces/ISchoolProperties.html":{},"controllers/ImportUserController.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"classes/TestApiClient.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["prefixes",{"_index":11579,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["premature",{"_index":22471,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["preparation",{"_index":22733,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepare",{"_index":13412,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["preparebbbcreateconfigbuilder",{"_index":20949,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["preparebbbcreateconfigbuilder(scope",{"_index":20959,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["prepared",{"_index":22740,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepended",{"_index":21615,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prerendering",{"_index":4167,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["present",{"_index":22164,"title":{},"body":{"license.html":{}}}],["presentationurl",{"_index":2288,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["presents",{"_index":21770,"title":{},"body":{"license.html":{}}}],["preservation",{"_index":22002,"title":{},"body":{"license.html":{}}}],["preset",{"_index":20837,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["prettier",{"_index":22405,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["prevent",{"_index":2512,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["prevented",{"_index":21963,"title":{},"body":{"license.html":{}}}],["prevention",{"_index":1847,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["preview",{"_index":6144,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["preview.resize(width",{"_index":16192,"title":{},"body":{"injectables/PreviewService.html":{}}}],["preview.stream(format",{"_index":16193,"title":{},"body":{"injectables/PreviewService.html":{}}}],["preview_not_possible_scan_status_blocked",{"_index":9722,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_scan_status_error",{"_index":9720,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_scan_status_wont_check",{"_index":9721,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_wrong_mime_type",{"_index":9723,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_possible",{"_index":9718,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewfileparams",{"_index":10445,"title":{"interfaces/PreviewFileParams.html":{}},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["previewinputmimetypes",{"_index":9710,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewoutputmimetypes",{"_index":6123,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["previewoutputmimetypes'})@isoptional()@isenum(previewoutputmimetypes",{"_index":16125,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previewparams",{"_index":6139,"title":{"classes/PreviewParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{}}}],["previewparams.forceupdate",{"_index":16170,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewparams.outputformat",{"_index":16182,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewservice",{"_index":10247,"title":{"injectables/PreviewService.html":{}},"body":{"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["previewstatus",{"_index":6084,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["previewstatus.awaiting_scan_status",{"_index":9789,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_not_possible_scan_status_blocked",{"_index":9784,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_not_possible_scan_status_error",{"_index":9792,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_not_possible_scan_status_wont_check",{"_index":9791,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_not_possible_wrong_mime_type",{"_index":9786,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_possible",{"_index":9787,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["previewwidth",{"_index":6124,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["previewwidth'})@isoptional()@isenum(previewwidth",{"_index":16127,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previous",{"_index":22072,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["previousexternalid",{"_index":11694,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["previously",{"_index":5458,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["previousteachers",{"_index":5027,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["price",{"_index":21680,"title":{},"body":{"license.html":{}}}],["primarily",{"_index":22132,"title":{},"body":{"license.html":{}}}],["primary",{"_index":771,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{}}}],["primarykey",{"_index":2495,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/VideoConferenceInfo.html":{}}}],["principle",{"_index":22450,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["principles",{"_index":22441,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prior",{"_index":22039,"title":{},"body":{"license.html":{}}}],["privacy",{"_index":8160,"title":{},"body":{"classes/ErrorLoggable.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["privacy_permission",{"_index":6978,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["privacyprotect",{"_index":468,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/ErrorLoggable.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"miscellaneous/functions.html":{}}}],["privacyprotect()@isoptional()@isstring()@matches(passwordpattern)@apiproperty({description",{"_index":463,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["privacyprotect()@isoptional()@matches(passwordpattern",{"_index":608,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["privacyprotect()@isstring()@isoptional()@matches(passwordpattern)@apiproperty({description",{"_index":16084,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["privacyprotect()@isstring()@matches(passwordpattern)@apiproperty({description",{"_index":16090,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["privacyprotect(validationoptions",{"_index":21571,"title":{},"body":{"miscellaneous/functions.html":{}}}],["privacyprotected",{"_index":8168,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["private",{"_index":111,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"entities/ClassEntity.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRule.html":{},"classes/CourseScope.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MigrationCheckService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"classes/Scope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["private_key_jwt",{"_index":15268,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["privatedevice",{"_index":12734,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["privatekey",{"_index":6865,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["probably",{"_index":3611,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["problem",{"_index":5403,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["problems",{"_index":22167,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["procedures",{"_index":21959,"title":{},"body":{"license.html":{}}}],["proceed",{"_index":16049,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["proceedbuttonurl",{"_index":16014,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["process",{"_index":6706,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"controllers/LoginController.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/RedirectResponse.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["process.dto.ts",{"_index":15010,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:2",{"_index":15012,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:4",{"_index":15011,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.env.mongo_test_uri}/${dbname",{"_index":14543,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["processcookies",{"_index":11004,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processcookies(setcookies",{"_index":11016,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processed",{"_index":11107,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["processing",{"_index":4580,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["processoauthlogin",{"_index":15810,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processoauthlogin(cachedstate",{"_index":15819,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processredirect",{"_index":11005,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirect(dto",{"_index":11019,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirectcascade",{"_index":10930,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["processredirectcascade(initresponse",{"_index":10938,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["procuring",{"_index":22122,"title":{},"body":{"license.html":{}}}],["produce",{"_index":21792,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["produces",{"_index":22642,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["product",{"_index":2156,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/Builder.html":{},"license.html":{}}}],["production",{"_index":11608,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"classes/KeycloakConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["products",{"_index":22133,"title":{},"body":{"license.html":{}}}],["profile",{"_index":13060,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["program",{"_index":21676,"title":{},"body":{"license.html":{}}}],["program's",{"_index":21857,"title":{},"body":{"license.html":{}}}],["programmer",{"_index":22233,"title":{},"body":{"license.html":{}}}],["programming",{"_index":21780,"title":{},"body":{"license.html":{}}}],["programs",{"_index":21685,"title":{},"body":{"license.html":{}}}],["progress",{"_index":6058,"title":{},"body":{"classes/CopyApiResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prohibit",{"_index":21820,"title":{},"body":{"license.html":{},"todo.html":{}}}],["prohibiting",{"_index":21845,"title":{},"body":{"license.html":{}}}],["prohibits",{"_index":22127,"title":{},"body":{"license.html":{}}}],["project",{"_index":20711,"title":{},"body":{"injectables/UserRepo.html":{},"index.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prom",{"_index":16628,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"dependencies.html":{}}}],["prometheus",{"_index":16252,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp",{"_index":16277,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp.listen(prometheusmetricsappport",{"_index":16279,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsappport",{"_index":16275,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig",{"_index":16199,"title":{"classes/PrometheusMetricsConfig.html":{}},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance",{"_index":16272,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.isenabled",{"_index":16265,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.port",{"_index":16276,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate",{"_index":16245,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.api_response_time_metric_middleware_successfully_added",{"_index":16269,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.feature_disabled_middlewares_will_not_be_created",{"_index":16267,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable",{"_index":16241,"title":{"classes/PrometheusMetricsSetupStateLoggable.html":{}},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_default_metrics_disabled",{"_index":16273,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_metrics_route_metrics_disabled",{"_index":16274,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.feature_disabled_app_will_not_be_created",{"_index":16271,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prominent",{"_index":21772,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prominently",{"_index":21767,"title":{},"body":{"license.html":{}}}],["promise",{"_index":36,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["promise((resolve",{"_index":13308,"title":{},"body":{"injectables/LdapService.html":{}}}],["promise.all",{"_index":284,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthorizationService.html":{},"injectables/DashboardModelMapper.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonUC.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PseudonymService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{},"injectables/TeamsRepo.html":{}}}],["promise.all(adduserids.map((nextclouduserid",{"_index":14957,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(array.from(modelentity.gridelements).map(async",{"_index":7544,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(copyrequests",{"_index":17165,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["promise.all(domainobject.children.map(async",{"_index":16525,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["promise.all(gridelement.getreferences().map((ref",{"_index":7565,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(promises",{"_index":2444,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/CardUc.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/PreviewService.html":{},"injectables/TaskService.html":{}}}],["promise.all(referencemodels.map((ref",{"_index":7536,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(removeuserids.map((nextclouduserid",{"_index":14955,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(toolreferencespromises",{"_index":19891,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["promise.allsettled(promises",{"_index":3063,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["promise.reject",{"_index":20698,"title":{},"body":{"injectables/UserRepo.html":{}}}],["promise.reject(new",{"_index":3047,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["promise.resolve",{"_index":2659,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/FileSystemAdapter.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/TestBootstrapConsole.html":{}}}],["promise.resolve(configuration.get('hydra_uri",{"_index":15573,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["promise.resolve(dummyresponse('h5p",{"_index":10793,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["promise.resolve(false",{"_index":1214,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["promise.resolve(new",{"_index":12651,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(oauthdata",{"_index":15907,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(response",{"_index":17907,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["promisefulfilledresult",{"_index":21569,"title":{},"body":{"miscellaneous/functions.html":{}}}],["promises",{"_index":2439,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/CardUc.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/PreviewService.html":{},"injectables/TaskService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["promisesettledresult",{"_index":21568,"title":{},"body":{"miscellaneous/functions.html":{}}}],["promisify",{"_index":21387,"title":{},"body":{"dependencies.html":{}}}],["prompt",{"_index":15897,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["prop",{"_index":1908,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["propagate",{"_index":21740,"title":{},"body":{"license.html":{}}}],["propagating",{"_index":22056,"title":{},"body":{"license.html":{}}}],["propagation",{"_index":21750,"title":{},"body":{"license.html":{}}}],["propaly",{"_index":12004,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["proper",{"_index":3104,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["properly",{"_index":21550,"title":{},"body":{"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["properties",{"_index":165,"title":{"properties.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/County.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/ExternalUserDto.html":{},"interfaces/FeathersError.html":{},"entities/FederalState.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageProducer.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LessonBoardElement.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/Logger.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/MailModuleOptions.html":{},"interfaces/MailServiceOptions.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"interfaces/Meta.html":{},"classes/MigrationBody.html":{},"classes/MigrationDto.html":{},"classes/MigrationResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"classes/NewsUrlParams.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"interfaces/RpcMessage.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemScope.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/TimestampsResponse.html":{},"classes/ToolConfiguration.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["properties.filter",{"_index":14253,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["properties.filter((property",{"_index":2661,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["properties.find((property",{"_index":14254,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["properties.some",{"_index":2667,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["propertiestopopulate",{"_index":14723,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["property",{"_index":240,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"entities/Account.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BasicToolConfigEntity.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/ElementContentBody.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalState.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PropertyData.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/ToolLaunchData.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["property()@index",{"_index":396,"title":{},"body":{"entities/Account.html":{},"entities/ClassEntity.html":{},"entities/News.html":{},"entities/User.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{}}}],["property()@unique",{"_index":8713,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"entities/PseudonymEntity.html":{},"entities/Role.html":{}}}],["property({comment",{"_index":18300,"title":{},"body":{"entities/SubmissionItemNode.html":{}}}],["property({fieldname",{"_index":4712,"title":{},"body":{"entities/ColumnBoardNode.html":{},"entities/ColumnBoardTarget.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/ImportUser.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{}}}],["property({nullable",{"_index":386,"title":{},"body":{"entities/Account.html":{},"entities/BoardNode.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"entities/ContextExternalToolEntity.html":{},"entities/Course.html":{},"classes/CustomParameterEntity.html":{},"entities/DashboardGridElementModel.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"classes/LdapConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"entities/News.html":{},"classes/OauthConfig.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{}}}],["property({onupdate",{"_index":2523,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{},"classes/VideoConferenceInfo.html":{}}}],["property({type",{"_index":12249,"title":{},"body":{"entities/ImportUser.html":{}}}],["property.location",{"_index":241,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["property.name",{"_index":268,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["property.value",{"_index":253,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["propertydata",{"_index":134,"title":{"classes/PropertyData.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["propertydata.push",{"_index":333,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["propertydecorator",{"_index":21551,"title":{},"body":{"miscellaneous/functions.html":{}}}],["propertylocation",{"_index":207,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.body",{"_index":2662,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.path",{"_index":242,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.query",{"_index":244,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertyname",{"_index":143,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["propertypath",{"_index":1525,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["propertypath.push(validationerror.property",{"_index":1527,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["props",{"_index":595,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthorizableObject.html":{},"classes/AxiosResponseImp.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoRepo.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextRef.html":{},"classes/CookiesDto.html":{},"entities/CourseNews.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"classes/DomainObject.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalUserDto.html":{},"classes/FileDto-1.html":{},"classes/FileElement.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/HydraRedirectDto.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IGridElement.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserResponse.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"injectables/LtiToolRepo.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{},"classes/PropertyData.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/SchoolNews.html":{},"injectables/ShareTokenRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TeamDto.html":{},"entities/TeamNews.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationDO.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"injectables/VideoConferenceRepo.html":{}}}],["props.abbreviation",{"_index":6361,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.accesskeyid",{"_index":11783,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.accesstoken",{"_index":14119,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.activated",{"_index":424,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.alias",{"_index":11938,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.availabledate",{"_index":11977,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.axiosconfig",{"_index":11000,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.baseurl",{"_index":2610,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/ToolLaunchData.html":{}}}],["props.bucket",{"_index":9615,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.cancelbuttonurl",{"_index":16020,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.caption",{"_index":9541,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.classnames",{"_index":12371,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.classnames.length",{"_index":11466,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.client",{"_index":11552,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.client_id",{"_index":1610,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.client_secret",{"_index":1612,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.clientid",{"_index":15170,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.clientsecret",{"_index":15171,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["props.closedat",{"_index":20222,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.code",{"_index":1618,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.color",{"_index":6434,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["props.colums",{"_index":7352,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.comment",{"_index":11798,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.completed",{"_index":18306,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["props.config",{"_index":2085,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.content",{"_index":6739,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.contents",{"_index":11333,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["props.context.type",{"_index":4719,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["props.contextid",{"_index":5692,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.contextref",{"_index":5620,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.contexttype",{"_index":5694,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.cookies",{"_index":10997,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.copyingsince",{"_index":6440,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["props.course",{"_index":6634,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.course.school",{"_index":6635,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.coursegroup",{"_index":11331,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["props.create",{"_index":9685,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.createdat",{"_index":621,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/County.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.creator",{"_index":6742,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITaskParent.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{}}}],["props.credentialhash",{"_index":414,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.currentredirect",{"_index":10993,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.customs",{"_index":7010,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.data",{"_index":2077,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.default",{"_index":7075,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["props.defaultvalue",{"_index":7216,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["props.delete",{"_index":9687,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.deleted",{"_index":9629,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.deletedat",{"_index":9628,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.deletedsince",{"_index":9751,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.description",{"_index":6427,"title":{},"body":{"entities/Course.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Material.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.descriptioninputformat",{"_index":11974,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.displayat",{"_index":6741,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.displayname",{"_index":5622,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.duedate",{"_index":11979,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.email",{"_index":9341,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.enddate",{"_index":11740,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["props.endpointurl",{"_index":11781,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.expiresat",{"_index":422,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.externalgroups",{"_index":15361,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalid",{"_index":6745,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/TeamNews.html":{},"entities/User.html":{}}}],["props.externalorganizationid",{"_index":8289,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["props.externalschool",{"_index":15359,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalsource",{"_index":10622,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.externaluser",{"_index":15357,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externaluserid",{"_index":8295,"title":{},"body":{"classes/ExternalGroupUserDto.html":{}}}],["props.features",{"_index":6442,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.federalstate",{"_index":11734,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.finishedat",{"_index":20224,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.firstname",{"_index":9337,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/User.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.flagged",{"_index":11470,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.forcepasswordchange",{"_index":12108,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.friendlyurl",{"_index":7021,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.from",{"_index":8285,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.frontchannel_logout_uri",{"_index":7027,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.frontchannellogouturi",{"_index":15177,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.grade",{"_index":11804,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradecomment",{"_index":11806,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.graded",{"_index":11802,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradelevel",{"_index":4298,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.grant_type",{"_index":1616,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.grid.foreach((element",{"_index":7354,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.gridelements",{"_index":7432,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["props.height",{"_index":4096,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["props.hidden",{"_index":11329,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["props.hydracookies",{"_index":6041,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.id",{"_index":619,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ContextRef.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/FileDto-1.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["props.idmreferenceid",{"_index":1004,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["props.idtoken",{"_index":15144,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.importuserid",{"_index":12365,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.inmaintenancesince",{"_index":11724,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.inputformat",{"_index":16761,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.inusermigration",{"_index":11725,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.invitationlink",{"_index":4310,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.iscopyfrom",{"_index":9748,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.isdirectory",{"_index":9612,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.ishidden",{"_index":7029,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/LtiTool.html":{}}}],["props.islocal",{"_index":7014,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isoptional",{"_index":7085,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.istemplate",{"_index":7012,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.key",{"_index":6994,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.language",{"_index":12110,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastloginsystemchange",{"_index":12114,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastname",{"_index":9339,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/User.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.lasttriedfailedlogin",{"_index":420,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.launch_presentation_locale",{"_index":14187,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["props.ldapconfig",{"_index":11944,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.ldapdn",{"_index":4315,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.lesson",{"_index":11984,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.license",{"_index":11554,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.localcookies",{"_index":6039,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.location",{"_index":7077,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["props.lockid",{"_index":9651,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.loginname",{"_index":12367,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.logo",{"_index":8337,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.logo_url",{"_index":6998,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.logobase64",{"_index":8490,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["props.logourl",{"_index":6362,"title":{},"body":{"classes/County.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.lti_message_type",{"_index":7000,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.lti_version",{"_index":7002,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.mandatorysince",{"_index":20218,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.match",{"_index":12372,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.matchedby",{"_index":11468,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.materials",{"_index":11334,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["props.merlinreference",{"_index":11556,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.method",{"_index":19776,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.mimetype",{"_index":9745,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.name",{"_index":4303,"title":{},"body":{"entities/ClassEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/FederalState.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"classes/PropertyData.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{}}}],["props.oauthclientid",{"_index":7019,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.oauthconfig",{"_index":11940,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.officialschoolnumber",{"_index":8305,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.oidcconfig",{"_index":11942,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.opennewtab",{"_index":7025,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/LtiTool.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.options",{"_index":20841,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.organization",{"_index":10663,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.organizationid",{"_index":10626,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.origintoolid",{"_index":7015,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.outdatedsince",{"_index":12116,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.parameters",{"_index":5624,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.parent",{"_index":3563,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.id",{"_index":3564,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.level",{"_index":3570,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parentid",{"_index":9494,"title":{},"body":{"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.parenttype",{"_index":9493,"title":{},"body":{"classes/FileDto-1.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.password",{"_index":410,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.payload",{"_index":19777,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.permissions",{"_index":9650,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IRoleProperties.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.position",{"_index":3572,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["props.postloginredirect",{"_index":15376,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.preferences",{"_index":12112,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.previousexternalid",{"_index":11721,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{}}}],["props.privacy_permission",{"_index":7008,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.private",{"_index":11980,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.proceedbuttonurl",{"_index":16018,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.properties",{"_index":19728,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["props.provider",{"_index":15377,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.provisioningstrategy",{"_index":11946,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/System.html":{}}}],["props.provisioningurl",{"_index":11948,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/System.html":{}}}],["props.pseudonym",{"_index":8720,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["props.publicsubmissions",{"_index":11988,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.read",{"_index":9683,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.reason",{"_index":9728,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{}}}],["props.redirect",{"_index":20582,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["props.redirect_uri",{"_index":1614,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.redirecturis",{"_index":15173,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.references.sort(this.sortreferences",{"_index":7328,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.referer",{"_index":10995,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.refownermodel",{"_index":9647,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.refpermmodel",{"_index":9680,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["props.refreshtoken",{"_index":15146,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["props.regex",{"_index":7081,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.regexcomment",{"_index":7083,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.region",{"_index":11787,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.relatedresources",{"_index":11558,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.requesttoken",{"_index":9730,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.resource_link_id",{"_index":7004,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.response",{"_index":10998,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.role",{"_index":10741,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.roleid",{"_index":10734,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["props.rolename",{"_index":8297,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.rolenames",{"_index":12369,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.rolenames.length",{"_index":11463,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.roles",{"_index":7006,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalUserDto.html":{},"interfaces/IRoleProperties.html":{},"entities/LtiTool.html":{},"entities/Role.html":{}}}],["props.school",{"_index":6430,"title":{},"body":{"entities/Course.html":{},"entities/CourseNews.html":{},"interfaces/ICourseProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/News.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{}}}],["props.schoolid",{"_index":4305,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"classes/UserLoginMigrationDO.html":{}}}],["props.schoolparameters",{"_index":11689,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.schooltool",{"_index":5690,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["props.schooltoolid",{"_index":17383,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["props.schooltoolref",{"_index":5618,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.schoolyear",{"_index":11729,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.scope",{"_index":7079,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.secret",{"_index":6996,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{}}}],["props.secretaccesskey",{"_index":11785,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.securitycheck",{"_index":9638,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.share",{"_index":19302,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["props.sharetokens",{"_index":9640,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.size",{"_index":9613,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.skipconsent",{"_index":7023,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.source",{"_index":4319,"title":{},"body":{"entities/ClassEntity.html":{},"entities/CourseNews.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.sourcedescription",{"_index":6747,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.sourceoptions",{"_index":4321,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.sourcesystem",{"_index":20214,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["props.sourcesystemid",{"_index":20336,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.startdate",{"_index":6438,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["props.startedat",{"_index":20220,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.state",{"_index":15374,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.status",{"_index":2079,"title":{},"body":{"classes/AxiosResponseImp.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.statustext",{"_index":2081,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.storagefilename",{"_index":9614,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.storageprovider",{"_index":9616,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.student",{"_index":11796,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.students",{"_index":6636,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.subjects",{"_index":11560,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.submitted",{"_index":11801,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.successor",{"_index":4317,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.system",{"_index":8319,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.systemid",{"_index":418,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"classes/ExternalSource.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{}}}],["props.systems",{"_index":11727,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.tags",{"_index":11562,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.target",{"_index":3401,"title":{},"body":{"entities/BoardElement.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.targetgroups",{"_index":11564,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.targetmodel",{"_index":20840,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.targetsystem",{"_index":20216,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["props.targetsystemid",{"_index":20338,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.task",{"_index":11800,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teacherids",{"_index":4309,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.teamid",{"_index":19317,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teammembers",{"_index":11807,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teamname",{"_index":19319,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teamsubmissions",{"_index":11990,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.teamusers",{"_index":12077,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{}}}],["props.teamusers.map((teamuser",{"_index":12078,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.text",{"_index":16760,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.thumbnail",{"_index":9635,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.thumbnailrequesttoken",{"_index":9636,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.title",{"_index":3573,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.token",{"_index":412,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.tokenendpointauthmethod",{"_index":15175,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.tool",{"_index":11687,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.toolid",{"_index":8722,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.toolversion",{"_index":5626,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.ts",{"_index":11366,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["props.tspuid",{"_index":4422,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["props.type",{"_index":5236,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/ContextRef.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/ToolLaunchData.html":{}}}],["props.until",{"_index":8287,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.untildate",{"_index":6436,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["props.updatedat",{"_index":623,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/County.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.updater",{"_index":6743,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.url",{"_index":6992,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/LdapConfig.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.user",{"_index":10740,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/ImportUser.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.userid",{"_index":416,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"classes/DashboardEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/GridElement.html":{},"classes/GroupUser.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.userids",{"_index":4306,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.userloginmigration",{"_index":11731,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.username",{"_index":408,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.users",{"_index":8283,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.users.map",{"_index":10624,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validfrom",{"_index":10619,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validperiod",{"_index":10661,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.validuntil",{"_index":10620,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.value",{"_index":7103,"title":{},"body":{"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/PropertyData.html":{}}}],["props.version",{"_index":8338,"title":{},"body":{"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.versionkey",{"_index":9654,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.write",{"_index":9681,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.year",{"_index":4312,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["propsfactory",{"_index":662,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["propsoffactory",{"_index":2564,"title":{},"body":{"classes/BaseFactory.html":{}}}],["protect",{"_index":21573,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["protect.validator.ts",{"_index":21503,"title":{},"body":{"miscellaneous/functions.html":{}}}],["protected",{"_index":661,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AuthorizableObject.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"injectables/DashboardRepo.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"classes/Group.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IDashboardRepo.html":{},"injectables/IdTokenService.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/ProvisioningService.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymsRepo.html":{},"classes/RichTextElement.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["protectedrole.id",{"_index":20797,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles",{"_index":20791,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles.find((protectedrole",{"_index":20796,"title":{},"body":{"injectables/UserService.html":{}}}],["protecting",{"_index":21828,"title":{},"body":{"license.html":{}}}],["protection",{"_index":21868,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["proto",{"_index":10921,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["protocol",{"_index":12947,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapper",{"_index":13003,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapperrepresentation",{"_index":12877,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocols",{"_index":21982,"title":{},"body":{"license.html":{}}}],["prototype",{"_index":1308,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["prove",{"_index":22183,"title":{},"body":{"license.html":{}}}],["provide",{"_index":836,"title":{},"body":{"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"classes/BoardManagementConsole.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/OauthProviderServiceModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/S3ClientModule.html":{},"modules/ToolConfigModule.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceModule.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["provided",{"_index":1110,"title":{},"body":{"injectables/AccountService.html":{},"classes/BoardDoBuilderImpl.html":{},"modules/ErrorModule.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/LegacyLogger.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["provider",{"_index":4556,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"classes/ConsentRequestBody.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/LoginRequestBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthLoginStateDto.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["provider(s",{"_index":11614,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["provider.client",{"_index":15418,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.consent",{"_index":15447,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.controller",{"_index":15414,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.controller.ts",{"_index":15478,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:103",{"_index":15486,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:109",{"_index":15492,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:117",{"_index":15507,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:135",{"_index":15482,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:143",{"_index":15489,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:151",{"_index":15504,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:169",{"_index":15499,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:182",{"_index":15511,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:188",{"_index":15496,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:49",{"_index":15494,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:60",{"_index":15501,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:80",{"_index":15484,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:91",{"_index":15513,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.login",{"_index":12155,"title":{},"body":{"injectables/IdTokenService.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["provider.logout",{"_index":15514,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["provider.mapper",{"_index":12836,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["provider.mapper.ts",{"_index":15884,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:6",{"_index":15887,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:9",{"_index":15889,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.module",{"_index":15416,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.module.ts",{"_index":15636,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["provider.service",{"_index":10891,"title":{},"body":{"injectables/HydraAdapter.html":{},"modules/OauthProviderServiceModule.html":{}}}],["provider.service.ts",{"_index":15661,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:14",{"_index":15668,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:16",{"_index":15663,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:18",{"_index":15675,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:20",{"_index":15667,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:22",{"_index":15662,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:24",{"_index":15674,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:26",{"_index":15664,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:28",{"_index":15670,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:30",{"_index":15671,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:32",{"_index":15673,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:39",{"_index":15665,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:41",{"_index":15669,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:43",{"_index":15677,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:45",{"_index":15666,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:47",{"_index":15672,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:49",{"_index":15676,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.uc",{"_index":15522,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.uc.ts",{"_index":15682,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:10",{"_index":15685,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:15",{"_index":15687,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:7",{"_index":15683,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider/controller/dto",{"_index":15459,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/controller/dto/request/accept.query.ts",{"_index":362,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["provider/controller/dto/request/accept.query.ts:9",{"_index":372,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["provider/controller/dto/request/challenge.params.ts",{"_index":4215,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/challenge.params.ts:11",{"_index":4217,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/consent",{"_index":5371,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["provider/controller/dto/request/id.params.ts",{"_index":12125,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/id.params.ts:11",{"_index":12126,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/list",{"_index":13976,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["provider/controller/dto/request/login",{"_index":14121,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["provider/controller/dto/request/oauth",{"_index":15016,"title":{},"body":{"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{}}}],["provider/controller/dto/request/revoke",{"_index":16715,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["provider/controller/dto/request/user.params.ts",{"_index":20677,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/request/user.params.ts:7",{"_index":20678,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/response/consent",{"_index":5466,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["provider/controller/dto/response/consent.response",{"_index":15517,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/controller/dto/response/consent.response.ts",{"_index":5422,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:16",{"_index":5432,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:22",{"_index":5435,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:28",{"_index":5438,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:32",{"_index":5441,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:36",{"_index":5442,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:40",{"_index":5445,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:44",{"_index":5447,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:48",{"_index":5449,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:54",{"_index":5454,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:6",{"_index":5430,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:60",{"_index":5455,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:66",{"_index":5456,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:72",{"_index":5459,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:76",{"_index":5460,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/login.response.ts",{"_index":14126,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:13",{"_index":14133,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:16",{"_index":14130,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:19",{"_index":14131,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:23",{"_index":14134,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:27",{"_index":14136,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:31",{"_index":14137,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:37",{"_index":14138,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:43",{"_index":14142,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:48",{"_index":14143,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:51",{"_index":14144,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:6",{"_index":14129,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oauth",{"_index":5463,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oidc",{"_index":5461,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["provider/controller/dto/response/redirect.response",{"_index":15519,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/controller/dto/response/redirect.response.ts",{"_index":16585,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:12",{"_index":16590,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:3",{"_index":16587,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/oauth",{"_index":15477,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/dto",{"_index":9110,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{}}}],["provider/dto/interface/oidc",{"_index":16294,"title":{},"body":{"interfaces/ProviderOidcContext.html":{}}}],["provider/dto/request/accept",{"_index":338,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{}}}],["provider/dto/request/reject",{"_index":16607,"title":{},"body":{"interfaces/RejectRequestBody.html":{}}}],["provider/dto/response/consent",{"_index":15520,"title":{},"body":{"controllers/OauthProviderController.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["provider/dto/response/consent.response.ts",{"_index":16286,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{}}}],["provider/dto/response/introspect.response.ts",{"_index":12577,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["provider/dto/response/login.response.ts",{"_index":16293,"title":{},"body":{"interfaces/ProviderLoginResponse.html":{}}}],["provider/dto/response/redirect.response.ts",{"_index":16295,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{}}}],["provider/error/id",{"_index":12128,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["provider/hydra/hydra.adapter",{"_index":15681,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider/hydra/hydra.adapter.ts",{"_index":10823,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/hydra/hydra.adapter.ts:140",{"_index":10870,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/hydra/hydra.adapter.ts:153",{"_index":10853,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/hydra/hydra.adapter.ts:157",{"_index":10878,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/hydra/hydra.adapter.ts:23",{"_index":10841,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/index",{"_index":15435,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["provider/interface/id",{"_index":350,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/interface/subject",{"_index":15270,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/interface/token",{"_index":15271,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/mapper/oauth",{"_index":15516,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/oauth",{"_index":15412,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{}}}],["provider/service/id",{"_index":12136,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/service/oauth",{"_index":15574,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["provider/uc/oauth",{"_index":15417,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["providerconsentresponse",{"_index":10885,"title":{"interfaces/ProviderConsentResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerconsentsessionresponse",{"_index":10888,"title":{"interfaces/ProviderConsentSessionResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerid",{"_index":12928,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["providerloginresponse",{"_index":10886,"title":{"interfaces/ProviderLoginResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroauthclient",{"_index":9106,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroidccontext",{"_index":16287,"title":{"interfaces/ProviderOidcContext.html":{}},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["provideroptions",{"_index":11905,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["providerredirectresponse",{"_index":10887,"title":{"interfaces/ProviderRedirectResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderRedirectResponse.html":{}}}],["providers",{"_index":432,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DeleteFilesUc.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StorageProviderRepo.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["providers.foreach((provider",{"_index":7843,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["provides",{"_index":4480,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/LegacyLogger.html":{},"injectables/NewsUc.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["providing",{"_index":4571,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CoreModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["provision",{"_index":17534,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"license.html":{}}}],["provisionally",{"_index":22035,"title":{},"body":{"license.html":{}}}],["provisiondata",{"_index":16316,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisiondata(oauthdata",{"_index":16330,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisionexternalgroup",{"_index":15912,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalgroup(externalgroup",{"_index":15919,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool",{"_index":15913,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool(externalschool",{"_index":15921,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser",{"_index":15914,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser(externaluser",{"_index":15923,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning",{"_index":10705,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/OAuthService.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["provisioning.loggable",{"_index":20670,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["provisioning.service",{"_index":15995,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioning.service.ts",{"_index":15910,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:120",{"_index":15920,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:164",{"_index":15917,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:19",{"_index":15915,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:31",{"_index":15922,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:68",{"_index":15924,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.strategy",{"_index":11852,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{}}}],["provisioningdto",{"_index":12626,"title":{"classes/ProvisioningDto.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{}}}],["provisioningdto.externaluserid",{"_index":16300,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["provisioningmodule",{"_index":15230,"title":{"modules/ProvisioningModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["provisioningservice",{"_index":15044,"title":{"injectables/ProvisioningService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["provisioningstrategy",{"_index":11848,"title":{"classes/ProvisioningStrategy.html":{}},"body":{"interfaces/ISystemProperties.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["provisioningstrategy:10",{"_index":15904,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:14",{"_index":15903,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:24",{"_index":12624,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:28",{"_index":12623,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:30",{"_index":17245,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:31",{"_index":15902,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:34",{"_index":17244,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:5",{"_index":15993,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningstrategy:61",{"_index":12618,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:7",{"_index":15992,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningsystemdto",{"_index":15351,"title":{"classes/ProvisioningSystemDto.html":{}},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper",{"_index":16335,"title":{"classes/ProvisioningSystemInputMapper.html":{}},"body":{"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper.maptointernal(systemdto",{"_index":16346,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisioningurl",{"_index":11849,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["provisionuser",{"_index":15041,"title":{},"body":{"injectables/OAuthService.html":{}}}],["provisionuser(systemid",{"_index":15064,"title":{},"body":{"injectables/OAuthService.html":{}}}],["proxy",{"_index":17816,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{}}}],["proxy's",{"_index":22173,"title":{},"body":{"license.html":{}}}],["ps256",{"_index":1677,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps384",{"_index":1678,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps512",{"_index":1679,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["pseudonym",{"_index":8712,"title":{"classes/Pseudonym.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonym.entity.ts",{"_index":8711,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["pseudonym.entity.ts:18",{"_index":8714,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:21",{"_index":8715,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:24",{"_index":8716,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.pseudonym",{"_index":14251,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["pseudonym.repo.ts",{"_index":8725,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:10",{"_index":8741,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:21",{"_index":8739,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:36",{"_index":8737,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:45",{"_index":8734,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:66",{"_index":8736,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:7",{"_index":8732,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:74",{"_index":8745,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:85",{"_index":8743,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonymentity",{"_index":16380,"title":{"entities/PseudonymEntity.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymentity(entityprops",{"_index":16449,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["pseudonymentityprops",{"_index":16385,"title":{"interfaces/PseudonymEntityProps.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymmodule",{"_index":4550,"title":{"modules/PseudonymModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymModule.html":{},"modules/ToolLaunchModule.html":{},"modules.html":{}}}],["pseudonymous",{"_index":6970,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["pseudonympromise",{"_index":16415,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymprops",{"_index":16376,"title":{"interfaces/PseudonymProps.html":{}},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["pseudonymrepo",{"_index":16400,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonyms",{"_index":8718,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymservice",{"_index":12144,"title":{"injectables/PseudonymService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{}}}],["pseudonymsrepo",{"_index":16389,"title":{"injectables/PseudonymsRepo.html":{}},"body":{"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["public",{"_index":116,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"classes/Card.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/CopyFileResponseBuilder.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CustomLtiProperty.html":{},"injectables/DeleteFilesUc.html":{},"classes/DomainObject.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"injectables/FilesRepo.html":{},"injectables/FilesStorageConsumer.html":{},"classes/Group.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacySchoolRule.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymService.html":{},"classes/PublicSystemListResponse.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolValidationService.html":{},"controllers/ServerController.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionRule.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/Task.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"controllers/ToolConfigurationController.html":{},"injectables/ToolPermissionHelper.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["publicbackendurl",{"_index":15128,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["publicclient",{"_index":12949,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["publicity",{"_index":22006,"title":{},"body":{"license.html":{}}}],["publickey",{"_index":6872,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["publiclink",{"_index":14871,"title":{},"body":{"injectables/NexboardService.html":{}}}],["publicly",{"_index":18524,"title":{},"body":{"controllers/SystemController.html":{},"license.html":{}}}],["publicservice",{"_index":22518,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["publicsubmissions",{"_index":11955,"title":{},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["publicsystemlistresponse",{"_index":16452,"title":{"classes/PublicSystemListResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publicsystemlistresponse(systemresponses",{"_index":18683,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["publicsystemresponse",{"_index":16455,"title":{"classes/PublicSystemResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publish",{"_index":4825,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"classes/PatchVisibilityParams.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{},"todo.html":{}}}],["published",{"_index":2778,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{},"classes/CreateNewsParams.html":{},"classes/DtoCreator.html":{},"classes/FilterNewsParams.html":{},"injectables/NewsUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"controllers/UserController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["publishedat",{"_index":21307,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["pull",{"_index":21623,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["purpose",{"_index":53,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TaskRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["purposes",{"_index":4168,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["pursuant",{"_index":22120,"title":{},"body":{"license.html":{}}}],["put",{"_index":4038,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"injectables/HydraAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/LegacySchoolController.html":{},"controllers/OauthProviderController.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TestApiClient.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["put('/:schoolexternaltoolid",{"_index":19928,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put('/:schoolexternaltoolid')@apiokresponse({description",{"_index":19917,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put(':cardid/position",{"_index":4057,"title":{},"body":{"controllers/CardController.html":{}}}],["put(':columnid/position",{"_index":4875,"title":{},"body":{"controllers/ColumnController.html":{}}}],["put(':contentelementid/position",{"_index":8068,"title":{},"body":{"controllers/ElementController.html":{}}}],["put(':contextexternaltoolid",{"_index":19626,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':contextexternaltoolid')@apiokresponse({description",{"_index":19605,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':schoolid/migration",{"_index":13473,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':schoolid/migration')@authenticate('jwt')@apiokresponse({description",{"_index":13459,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':scope/:scopeid/start",{"_index":20909,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put(':scope/:scopeid/start')@apioperation({summary",{"_index":20897,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put('clients/:id",{"_index":15540,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["put('mandatory",{"_index":20315,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('mandatory')@apinotfoundresponse({description",{"_index":20277,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart",{"_index":20312,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart')@apinotfoundresponse({description",{"_index":20270,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put(filesstorageinternalactions.updatesecuritystatus",{"_index":9951,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["put(flow",{"_index":10868,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["put(path",{"_index":1744,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["put(subpath",{"_index":1743,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["putting",{"_index":22347,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["pw",{"_index":6895,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/JwtPayload.html":{}}}],["pwd/backup/idm/keycloak:/tmp/realms",{"_index":22338,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["pwd/backup/idm/oidcmock:/tmp/config",{"_index":22925,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["p{extended_pictographic}/u",{"_index":6467,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["q",{"_index":13115,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["qs",{"_index":10883,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["qs.stringify(data",{"_index":13069,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["qualify",{"_index":22047,"title":{},"body":{"license.html":{}}}],["quality",{"_index":22182,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["quarkus",{"_index":22951,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["quay.io/minio/minio",{"_index":22332,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["queries",{"_index":12564,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["queries.length",{"_index":12567,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{}}}],["query",{"_index":529,"title":{},"body":{"controllers/AccountController.html":{},"controllers/CardController.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"controllers/CourseController.html":{},"classes/CourseScope.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"classes/FileRecordScope.html":{},"classes/GlobalValidationPipe.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakConsole.html":{},"classes/LessonScope.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RoleNameMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/Scope.html":{},"injectables/SubmissionRepo.html":{},"controllers/SystemController.html":{},"classes/SystemScope.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{}}}],["query('usecentralldap",{"_index":12338,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["query('x",{"_index":7246,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query('y",{"_index":7247,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query.accept",{"_index":15463,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["query.classes",{"_index":12419,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.code",{"_index":15773,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.error",{"_index":15774,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.firstname",{"_index":12407,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.flagged",{"_index":12424,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.lastloginsystemchangebetweenend",{"_index":20093,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastloginsystemchangebetweenstart",{"_index":20092,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastname",{"_index":12410,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.loginname",{"_index":12413,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match",{"_index":12420,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match.map((match",{"_index":12422,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.migration",{"_index":15767,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.name",{"_index":20540,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["query.postloginredirect",{"_index":15768,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.role",{"_index":12414,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.schoolid",{"_index":17481,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["query.state",{"_index":15763,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.targetid",{"_index":14703,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.targetmodel",{"_index":14701,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.ts",{"_index":9069,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{},"interfaces/UserLoginMigrationQuery.html":{}}}],["query.type",{"_index":20083,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["query.unpublished",{"_index":14705,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.userid",{"_index":20496,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["query/body",{"_index":22628,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["query/empty",{"_index":17717,"title":{},"body":{"classes/Scope.html":{}}}],["queryfiltermatch",{"_index":20701,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryfiltermatch.$or",{"_index":20707,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryoptions",{"_index":6804,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ImportUserRepo.html":{}}}],["queryordermap",{"_index":6785,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["queryordermap[key",{"_index":9186,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["queryordernumeric",{"_index":20693,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.asc",{"_index":20722,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.desc",{"_index":20721,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryparams",{"_index":250,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"controllers/CourseController.html":{}}}],["queryparams.append('checksum",{"_index":2377,"title":{},"body":{"injectables/BBBService.html":{}}}],["queryparams.append(property.name",{"_index":252,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["queryparams.tostring",{"_index":255,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["queryparams.version",{"_index":6510,"title":{},"body":{"controllers/CourseController.html":{}}}],["queryproperties",{"_index":243,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["queryproperties.foreach((property",{"_index":251,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["queryproperties.length",{"_index":249,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["querys",{"_index":10279,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["querystring",{"_index":2367,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{}}}],["querystring.stringify",{"_index":10913,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{}}}],["querystring.stringify(payload",{"_index":15218,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["queue",{"_index":10175,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq",{"_index":1438,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq#usage",{"_index":16472,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmq:3.8.9",{"_index":22322,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmq_url",{"_index":22315,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmqmodule",{"_index":16470,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqmodule.forroot(rabbitmqmodule",{"_index":16477,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqwrappermodule",{"_index":10245,"title":{"modules/RabbitMQWrapperModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rabbitmqwrappertestmodule",{"_index":10246,"title":{"modules/RabbitMQWrapperTestModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rabbitpayload",{"_index":10182,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["rabbitrpc",{"_index":10183,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["rabbitrpc({exchange",{"_index":10173,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["random",{"_index":3477,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/FileSystemAdapter.html":{}}}],["random(min",{"_index":3492,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["randombytes",{"_index":13724,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["randombytes(12).tostring('hex",{"_index":13791,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["randomuuid",{"_index":1811,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["range",{"_index":10409,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/S3ClientAdapter.html":{}}}],["ranges",{"_index":10407,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["rawaxiosrequestheaders",{"_index":10877,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["rawfiledocument",{"_index":10068,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments",{"_index":10064,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments.map((rawfiledocument",{"_index":10066,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawlessondocument",{"_index":13898,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments",{"_index":13894,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments.map((rawlessondocument",{"_index":13896,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rc",{"_index":11584,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["rd",{"_index":11588,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["re",{"_index":958,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardNodeRepo.html":{},"classes/ExternalToolScope.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["reachable",{"_index":11575,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["react",{"_index":22438,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["read",{"_index":1871,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/LessonRule.html":{},"controllers/NewsController.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/TaskUC.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"dependencies.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["read(requiredpermissions",{"_index":1875,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["readable",{"_index":5410,"title":{},"body":{"classes/ConsentRequestBody.html":{},"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/PreviewFileParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["readable.from(text",{"_index":19447,"title":{},"body":{"classes/TestHelper.html":{}}}],["readcourseids",{"_index":19218,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses",{"_index":19214,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses.map((c",{"_index":19219,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readdir",{"_index":9963,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readdir(folderpath",{"_index":9986,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["reader",{"_index":3102,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["readfile",{"_index":9964,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readfile(filepath",{"_index":9990,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readily",{"_index":22110,"title":{},"body":{"license.html":{}}}],["reading",{"_index":21986,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["readlessons",{"_index":19223,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readonly",{"_index":216,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"entities/Account.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardNodeRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorResponse.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FederalStateService.html":{},"classes/FileRecordFactory.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IErrorType.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISystemProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/MaterialFactory.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthConfig.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserController.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"entities/VideoConference.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["ready",{"_index":13168,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["real",{"_index":22349,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["really",{"_index":6411,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["realm",{"_index":12809,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["realmname",{"_index":11515,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows",{"_index":12915,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions",{"_index":12924,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions/execution",{"_index":12926,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["reason",{"_index":9725,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reasonable",{"_index":21909,"title":{},"body":{"license.html":{}}}],["reasons",{"_index":18686,"title":{},"body":{"classes/SystemResponseMapper.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["receipt",{"_index":22045,"title":{},"body":{"license.html":{}}}],["receive",{"_index":21683,"title":{},"body":{"license.html":{}}}],["received",{"_index":12590,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["receives",{"_index":22061,"title":{},"body":{"license.html":{}}}],["receiving",{"_index":22124,"title":{},"body":{"license.html":{}}}],["recieved",{"_index":22792,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["recieving",{"_index":22508,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["recipient",{"_index":21969,"title":{},"body":{"license.html":{}}}],["recipient's",{"_index":22117,"title":{},"body":{"license.html":{}}}],["recipients",{"_index":1577,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{},"license.html":{}}}],["recognized",{"_index":21778,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["recommend",{"_index":22822,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["recommendations",{"_index":22867,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["recommended",{"_index":22865,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["reconnect",{"_index":13303,"title":{},"body":{"injectables/LdapService.html":{}}}],["reconsidered",{"_index":13356,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["record",{"_index":1291,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardNodeRepo.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContextTypeMapper.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"classes/ForbiddenOperationError.html":{},"classes/GroupDomainMapper.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IUserProperties.html":{},"classes/LdapConnectionError.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultParams.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/SingleFileParams.html":{},"classes/ToolLaunchMapper.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationError.html":{}}}],["record.mapper.ts",{"_index":9805,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:11",{"_index":9813,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:23",{"_index":9810,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:5",{"_index":9815,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.ts",{"_index":21477,"title":{},"body":{"miscellaneous/functions.html":{}}}],["recording",{"_index":2266,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["recursive",{"_index":3310,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/CopyApiResponse.html":{}}}],["recursivedeletevisitor",{"_index":3283,"title":{"injectables/RecursiveDeleteVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["recursively",{"_index":9999,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/PermissionService.html":{}}}],["recursivesavevisitor",{"_index":3312,"title":{"classes/RecursiveSaveVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["recursivesavevisitor(this.em",{"_index":3345,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["red",{"_index":22274,"title":{},"body":{"todo.html":{}}}],["redirect",{"_index":2211,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/RedirectResponse.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{}}}],["redirect_to",{"_index":16296,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{},"classes/RedirectResponse.html":{}}}],["redirect_uri",{"_index":1599,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/HydraSsoService.html":{},"classes/TokenRequestMapper.html":{}}}],["redirect_uris",{"_index":9172,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["redirectreponse",{"_index":16588,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectreponse.redirect_to",{"_index":16592,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectresponse",{"_index":15468,"title":{"classes/RedirectResponse.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/RedirectResponse.html":{}}}],["redirects",{"_index":15325,"title":{},"body":{"classes/OauthConfigResponse.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi",{"_index":11083,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi.tostring",{"_index":15132,"title":{},"body":{"injectables/OAuthService.html":{}}}],["redirecturis",{"_index":7139,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["redirecturl",{"_index":16589,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redis",{"_index":3912,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{}}}],["redis_client",{"_index":16597,"title":{},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redis_uri",{"_index":17809,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisclient",{"_index":3913,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisidentifier",{"_index":12735,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["redismodule",{"_index":16593,"title":{"modules/RedisModule.html":{}},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["redisstore",{"_index":17804,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redistribute",{"_index":22217,"title":{},"body":{"license.html":{}}}],["redisurl",{"_index":3917,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["reduce",{"_index":23129,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["reduce((acc",{"_index":19752,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["reduce((previousteachers",{"_index":5025,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["redundant",{"_index":21548,"title":{},"body":{"miscellaneous/functions.html":{}}}],["ref",{"_index":4072,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ref.do.ts",{"_index":17380,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:2",{"_index":17382,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:4",{"_index":17381,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.params.ts",{"_index":6011,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:13",{"_index":6012,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:9",{"_index":6014,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.target",{"_index":2742,"title":{},"body":{"entities/Board.html":{}}}],["ref.ts",{"_index":6007,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:4",{"_index":6009,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:6",{"_index":6008,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["refactor",{"_index":7601,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"injectables/IdTokenService.html":{},"modules/LearnroomApiModule.html":{},"injectables/LegacySchoolUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["refactoring",{"_index":9474,"title":{},"body":{"injectables/FederalStateService.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["refer",{"_index":3409,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["reference",{"_index":1932,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"injectables/ColumnBoardService.html":{},"classes/ConsentResponse.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITaskParent.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"modules/ToolModule.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UpdateMatchParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.contains(user",{"_index":1934,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["reference.getmetadata",{"_index":7336,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["reference.loader",{"_index":1988,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.mapper",{"_index":19887,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.mapper.ts",{"_index":19850,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.mapper.ts:6",{"_index":19853,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.response",{"_index":19848,"title":{},"body":{"classes/ToolReferenceListResponse.html":{}}}],["reference.response.ts",{"_index":19854,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:13",{"_index":19861,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:16",{"_index":19858,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:19",{"_index":19863,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:27",{"_index":19856,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:6",{"_index":19857,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.ts",{"_index":3416,"title":{},"body":{"interfaces/BoardExternalReference.html":{},"classes/RoleReference.html":{},"classes/ToolReference.html":{}}}],["reference.ts:10",{"_index":19843,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:12",{"_index":19839,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:4",{"_index":19840,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:5",{"_index":16825,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:6",{"_index":19842,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:7",{"_index":16824,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:8",{"_index":19841,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.type",{"_index":3336,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["reference.uc.ts",{"_index":19870,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:16",{"_index":19875,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:26",{"_index":19886,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:51",{"_index":19878,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:83",{"_index":19880,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:95",{"_index":19884,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:99",{"_index":19882,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["referenced",{"_index":3394,"title":{},"body":{"entities/BoardElement.html":{},"classes/CardSkeletonResponse.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/INewsProperties.html":{},"injectables/ImportUserRepo.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"injectables/UserRepo.html":{}}}],["referencedentities",{"_index":4436,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["referencedid",{"_index":7319,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceforindex",{"_index":7396,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceids",{"_index":2680,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["referenceloader",{"_index":1964,"title":{"injectables/ReferenceLoader.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["referencemodels",{"_index":7534,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["references",{"_index":2672,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"modules/ImportUserModule.html":{},"controllers/ToolController.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["references.filter((ref",{"_index":2736,"title":{},"body":{"entities/Board.html":{}}}],["references.push(lessonelement",{"_index":3076,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(taskelement",{"_index":3074,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.some((ref",{"_index":2741,"title":{},"body":{"entities/Board.html":{}}}],["references[position.groupindex",{"_index":7397,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referer",{"_index":10973,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["referring",{"_index":21679,"title":{},"body":{"license.html":{}}}],["refers",{"_index":21724,"title":{},"body":{"license.html":{}}}],["refid",{"_index":9667,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refined",{"_index":22871,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reflect",{"_index":21434,"title":{},"body":{"dependencies.html":{},"todo.html":{}}}],["reflector",{"_index":19460,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["reflector.get('timeout",{"_index":19463,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["refobjectid",{"_index":9618,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["refownermodel",{"_index":9564,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refpermmodel",{"_index":9668,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["refrain",{"_index":22152,"title":{},"body":{"license.html":{}}}],["refresh_token",{"_index":15433,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"interfaces/OauthTokenResponse.html":{}}}],["refreshtimeout",{"_index":17178,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["refreshtoken",{"_index":15139,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/TokenRequestMapper.html":{}}}],["regard",{"_index":21991,"title":{},"body":{"license.html":{}}}],["regarding",{"_index":21613,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["regardless",{"_index":21878,"title":{},"body":{"license.html":{}}}],["regenerate",{"_index":21804,"title":{},"body":{"license.html":{}}}],["regex",{"_index":5369,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/CopyFilesService.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ImportUserScope.html":{},"injectables/LessonCopyService.html":{},"classes/MongoPatterns.html":{},"injectables/TaskCopyService.html":{},"injectables/UserRepo.html":{}}}],["regex_mongo_language_pattern_whitelist",{"_index":14550,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["regexcomment",{"_index":7063,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["regexp",{"_index":6208,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`${sourceid",{"_index":6221,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`^${email.replace(/\\w/g",{"_index":20731,"title":{},"body":{"injectables/UserRepo.html":{}}}],["regexp(param.regex",{"_index":8701,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(param.regex).test(foundentry.value",{"_index":5365,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["regexp(param.regex).test(param.default",{"_index":8703,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(searchusername",{"_index":963,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["region",{"_index":6165,"title":{},"body":{"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IStorageProviderProperties.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"entities/StorageProviderEntity.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["register",{"_index":17185,"title":{},"body":{"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["register(configs",{"_index":17186,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["registerparentdata",{"_index":16530,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerparentdata(parent",{"_index":16535,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerstrategy",{"_index":16317,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registerstrategy(strategy",{"_index":16332,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["regular",{"_index":952,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["reinstated",{"_index":22034,"title":{},"body":{"license.html":{}}}],["reject",{"_index":10910,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/LdapService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reject(new",{"_index":13316,"title":{},"body":{"injectables/LdapService.html":{}}}],["rejectable.body",{"_index":5420,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rejectable.body.ts",{"_index":15017,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:13",{"_index":15018,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:23",{"_index":15019,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:32",{"_index":15020,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:41",{"_index":15021,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:50",{"_index":15022,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectconsentrequest",{"_index":10837,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectconsentrequest(challenge",{"_index":10871,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest",{"_index":10838,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest(challenge",{"_index":10873,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectrequestbody",{"_index":10869,"title":{"interfaces/RejectRequestBody.html":{}},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/RejectRequestBody.html":{}}}],["rejects",{"_index":18292,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["related",{"_index":6911,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"classes/KeycloakConsole.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"entities/Submission.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["relatedresources",{"_index":11541,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["relation",{"_index":10702,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["relation.ktid",{"_index":17320,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["relations",{"_index":9691,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relationship",{"_index":12053,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{}}}],["relationtype",{"_index":11550,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["relative",{"_index":11043,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["release",{"_index":22840,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["released",{"_index":21719,"title":{},"body":{"license.html":{}}}],["releasing",{"_index":21711,"title":{},"body":{"license.html":{}}}],["relevant",{"_index":21873,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["relicensing",{"_index":21720,"title":{},"body":{"license.html":{}}}],["reload",{"_index":16207,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relying",{"_index":22109,"title":{},"body":{"license.html":{}}}],["remain",{"_index":21926,"title":{},"body":{"license.html":{}}}],["remains",{"_index":21677,"title":{},"body":{"license.html":{}}}],["remember",{"_index":344,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["remember_for",{"_index":345,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["remembered",{"_index":5390,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rememberfor",{"_index":5388,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["remote",{"_index":22154,"title":{},"body":{"license.html":{}}}],["remotely",{"_index":22156,"title":{},"body":{"license.html":{}}}],["removal",{"_index":21993,"title":{},"body":{"license.html":{}}}],["remove",{"_index":1991,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"entities/CourseNews.html":{},"classes/DeleteFilesConsole.html":{},"injectables/FilesStorageConsumer.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"modules/InterceptorModule.html":{},"classes/KeycloakConsole.html":{},"modules/LearnroomApiModule.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PermissionService.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"modules/ToolModule.html":{},"modules/VideoConferenceModule.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["removechild",{"_index":2798,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["removechild(child",{"_index":2816,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["removed",{"_index":80,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthorizationService.html":{},"injectables/FilesStorageProducer.html":{},"miscellaneous/functions.html":{}}}],["removedeletedreferences(boardelementtargets",{"_index":2734,"title":{},"body":{"entities/Board.html":{}}}],["removedirrecursive",{"_index":9965,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removedirrecursive(folderpath",{"_index":9996,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removefeature",{"_index":13590,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefeature(schoolid",{"_index":13602,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefromposition",{"_index":7265,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removefromposition(position",{"_index":7301,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removefromwhitelist",{"_index":12714,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removefromwhitelist(accountid",{"_index":12725,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removegroupmoderator(groupname",{"_index":1350,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["removejwtfromwhitelist",{"_index":1787,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removejwtfromwhitelist(jwttoken",{"_index":1802,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removematch",{"_index":12266,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removematch(urlparams",{"_index":12280,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removepassword",{"_index":1131,"title":{},"body":{"injectables/AccountService.html":{}}}],["removepermissionsbyrefid(refid",{"_index":9617,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["removeprotectedentityfields",{"_index":2391,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["removeprotectedentityfields(entity",{"_index":2420,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["removereference",{"_index":10554,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereference(reference",{"_index":7315,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex",{"_index":10555,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex(index",{"_index":7314,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removeroomsnotinlist",{"_index":7266,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removeroomsnotinlist(roomlist",{"_index":7303,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removes",{"_index":9998,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["removesecrets(collectionname",{"_index":11287,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromstorageproviders(storageproviders",{"_index":11290,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromsystems(systems",{"_index":11292,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removestudent(userid",{"_index":6642,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["removesubstitutionteacher(userid",{"_index":6476,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["removeteacher(userid",{"_index":6474,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["removeuser",{"_index":4226,"title":{},"body":{"classes/Class.html":{}}}],["removeuser(userid",{"_index":4235,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["removeuserids",{"_index":14945,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserids.tostring",{"_index":14949,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserpermissionstoanyfiles",{"_index":10072,"title":{},"body":{"injectables/FilesService.html":{}}}],["removeuserpermissionstoanyfiles(userid",{"_index":10076,"title":{},"body":{"injectables/FilesService.html":{}}}],["removing",{"_index":21578,"title":{},"body":{"miscellaneous/functions.html":{}}}],["rename",{"_index":8839,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["renamebodyparams",{"_index":2950,"title":{"classes/RenameBodyParams.html":{}},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/RenameBodyParams.html":{}}}],["renamed",{"_index":14926,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["renamefileparams",{"_index":6136,"title":{"classes/RenameFileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["renamegroupondashboard",{"_index":7616,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["renamegroupondashboard(dashboardid",{"_index":7623,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["rendered",{"_index":21544,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{}}}],["reorderboardelements",{"_index":17021,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderboardelements(roomid",{"_index":17026,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderelements(ids",{"_index":2712,"title":{},"body":{"entities/Board.html":{}}}],["reordering",{"_index":2724,"title":{},"body":{"entities/Board.html":{}}}],["repair",{"_index":22187,"title":{},"body":{"license.html":{}}}],["repeat",{"_index":22479,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["repeatcommand",{"_index":13028,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["repeatcommand(commandname",{"_index":11626,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["repeats",{"_index":14425,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{}}}],["repetitions",{"_index":11627,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["replace",{"_index":2475,"title":{},"body":{"injectables/BaseDORepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["replace('exception",{"_index":10524,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["replace(/\\\\n/g",{"_index":13431,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["replaced",{"_index":2571,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"interfaces/UserBoardRoles.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["replacement",{"_index":6209,"title":{},"body":{"injectables/CopyFilesService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["replacemypassword",{"_index":486,"title":{},"body":{"controllers/AccountController.html":{}}}],["replacemypassword(currentuser",{"_index":517,"title":{},"body":{"controllers/AccountController.html":{}}}],["replaceurlsincontents",{"_index":13681,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["replaceurlsincontents(contents",{"_index":13717,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["replicaset",{"_index":22959,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replikaset",{"_index":22278,"title":{},"body":{"todo.html":{}}}],["replset",{"_index":22963,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replyto",{"_index":1580,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["repo",{"_index":2570,"title":{},"body":{"injectables/BaseRepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"modules/FilesModule.html":{},"injectables/FilesService.html":{},"modules/FilesStorageModule.html":{},"modules/GroupModule.html":{},"injectables/GroupService.html":{},"interfaces/IRepoLoader.html":{},"modules/LegacySchoolModule.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolYearService.html":{},"injectables/SubmissionItemService.html":{},"modules/ToolModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["repo.integration.spec",{"_index":6810,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["repo.integration.spec.js",{"_index":22833,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repo.ts",{"_index":22565,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["repo/account.repo",{"_index":826,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["repo/recursive",{"_index":3545,"title":{},"body":{"modules/BoardModule.html":{}}}],["repo/share",{"_index":18022,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["repoloader",{"_index":11665,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.populate",{"_index":11667,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.repo.findbyid(objectid",{"_index":11668,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["report",{"_index":7676,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reported",{"_index":22664,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["reporting",{"_index":22872,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reports",{"_index":22843,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repos",{"_index":5283,"title":{},"body":{"modules/CommonToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"modules/VideoConferenceModule.html":{}}}],["repositories",{"_index":22260,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["repository",{"_index":16421,"title":{},"body":{"injectables/PseudonymService.html":{},"index.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["repository.createorupdate(pseudonym",{"_index":16424,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repository.findbyuseridandtoolid(user.id",{"_index":16423,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repotype",{"_index":11633,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["represent",{"_index":21956,"title":{},"body":{"license.html":{}}}],["representation",{"_index":781,"title":{},"body":{"injectables/AccountLookupService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["represents",{"_index":5415,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["req",{"_index":9935,"title":{},"body":{"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/OauthSSOController.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"injectables/S3ClientAdapter.html":{},"controllers/VideoConferenceController.html":{}}}],["req.baseurl",{"_index":16633,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.header('range",{"_index":10403,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.headers.authorization",{"_index":15795,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["req.headers.origin",{"_index":20913,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["req.method",{"_index":16632,"title":{},"body":{"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{}}}],["req.on('close",{"_index":9947,"title":{},"body":{"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{}}}],["req.params",{"_index":16673,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.params[0]}/${params.fwulearningcontent",{"_index":10404,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.query",{"_index":16674,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.route.path",{"_index":16637,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.url",{"_index":16672,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.user",{"_index":16671,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["reqinfo",{"_index":16646,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.baseurl",{"_index":16651,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.fullpath",{"_index":16652,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.method",{"_index":16650,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.routepath",{"_index":16653,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqroute",{"_index":16627,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["request",{"_index":367,"title":{},"body":{"classes/AcceptQuery.html":{},"controllers/AccountController.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"controllers/CollaborativeStorageController.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesStorageClientAdapterService.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/ILegacyLogger.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/JwtExtractor.html":{},"injectables/LdapStrategy.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{},"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{},"classes/PublicSystemResponse.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SystemFilterParams.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserRepo.html":{},"controllers/VideoConferenceController.html":{},"dependencies.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["request'})@apiresponse({status",{"_index":4581,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["request(method",{"_index":10875,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["request.body",{"_index":13347,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["request.body.ts",{"_index":340,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["request.body.ts:10",{"_index":5379,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:14",{"_index":14122,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:20",{"_index":5386,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:24",{"_index":14123,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:30",{"_index":5393,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.contextid",{"_index":5823,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.contexttype",{"_index":5824,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.displayname",{"_index":5825,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper",{"_index":15076,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["request.mapper.ts",{"_index":5812,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:113",{"_index":8903,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:117",{"_index":8910,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:123",{"_index":8914,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:129",{"_index":8917,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:135",{"_index":8921,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:141",{"_index":8907,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:158",{"_index":8925,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:17",{"_index":17415,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:170",{"_index":8901,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:21",{"_index":19496,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:23",{"_index":5819,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:5",{"_index":15640,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["request.mapper.ts:6",{"_index":19494,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:60",{"_index":8930,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:7",{"_index":5816,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:8",{"_index":17417,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:87",{"_index":8897,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.response.ts",{"_index":19778,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:10",{"_index":19780,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:16",{"_index":19784,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:23",{"_index":19782,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:30",{"_index":19779,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.schoolid",{"_index":17421,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.schooltoolid",{"_index":5822,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.toolid",{"_index":17420,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.toolversion",{"_index":5826,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.ts",{"_index":19771,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:10",{"_index":19772,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:4",{"_index":19773,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:6",{"_index":19775,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:8",{"_index":19774,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.user.user",{"_index":22266,"title":{},"body":{"todo.html":{}}}],["request.version",{"_index":17422,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request/bbb",{"_index":2241,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["request/response",{"_index":22627,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["request_denied",{"_index":5398,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["request_url",{"_index":5426,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requestauthcode",{"_index":10931,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthcode(userid",{"_index":10941,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthtoken",{"_index":15696,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestauthtoken(currentuser",{"_index":15717,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestdata",{"_index":14169,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requested",{"_index":5453,"title":{},"body":{"classes/ConsentResponse.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"classes/LoginResponse-1.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/OauthClientBody.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserMigrationService.html":{}}}],["requested_access_token_audience",{"_index":5427,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requested_scope",{"_index":5428,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requesthandler",{"_index":16630,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo",{"_index":16614,"title":{"classes/RequestInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo(req",{"_index":16647,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requesting",{"_index":15256,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["requestloggingbody",{"_index":11530,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["requestlogginginterceptor",{"_index":16663,"title":{"injectables/RequestLoggingInterceptor.html":{}},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["requestmapper",{"_index":19921,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["requestmethod",{"_index":228,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["requestoptions",{"_index":14167,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requests",{"_index":12573,"title":{},"body":{"modules/InterceptorModule.html":{},"classes/VideoConferenceOptionsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requesttimeout",{"_index":16975,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TimeoutInterceptor.html":{},"miscellaneous/functions.html":{}}}],["requesttimeout(ms",{"_index":21575,"title":{},"body":{"miscellaneous/functions.html":{}}}],["requesttimeout(serverconfig().incoming_request_timeout_copy_api",{"_index":16990,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["requesttimeoutexception",{"_index":19459,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["requesttoken",{"_index":1436,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/OAuthService.html":{}}}],["requesttoken(code",{"_index":15066,"title":{},"body":{"injectables/OAuthService.html":{}}}],["requesturl",{"_index":5450,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["require",{"_index":11240,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["require('../../../../../src/services/authentication/configuration",{"_index":12667,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["require('../../../../config/globals",{"_index":10460,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["require('rimraf",{"_index":10010,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["require_tld",{"_index":20945,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["required",{"_index":368,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{},"classes/BoardUrlParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/ElementController.html":{},"classes/ExternalToolIdParams.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdParams.html":{},"classes/ImportUserUrlParams.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakConsole.html":{},"injectables/LdapStrategy.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/MigrationBody.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"interfaces/Options.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RenameBodyParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolParams.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"classes/SystemIdParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserParams.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceScopeParams.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["required.'})@apiresponse({status",{"_index":497,"title":{},"body":{"controllers/AccountController.html":{}}}],["requiredemptyelement",{"_index":4158,"title":{},"body":{"injectables/CardService.html":{}}}],["requiredemptyelements",{"_index":3773,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardService.html":{},"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["requiredpermissions",{"_index":1866,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRule.html":{},"injectables/NewsUc.html":{},"injectables/PermissionService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiredpermissions.every((p",{"_index":1914,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.length",{"_index":1927,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.some((p",{"_index":1929,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["requireduserrole",{"_index":3092,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["requireduserrole(userroleenum",{"_index":3114,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["requirement",{"_index":12938,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"license.html":{}}}],["requirements",{"_index":21928,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["requires",{"_index":8679,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiring",{"_index":21736,"title":{},"body":{"license.html":{}}}],["res",{"_index":6489,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraSsoService.html":{},"classes/MetadataTypeMapper.html":{},"controllers/OauthSSOController.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"controllers/ToolController.html":{}}}],["res.contenttype",{"_index":9950,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.cookie",{"_index":1719,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["res.cookie('jwt",{"_index":15786,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.data.destroy",{"_index":9948,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.redirect(errorredirect.tostring",{"_index":15751,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(oauthprocessdto.redirect",{"_index":15787,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(redirect",{"_index":15769,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(response.redirect",{"_index":15804,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.send(externaltoollogo.logo",{"_index":19702,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.set",{"_index":10406,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.setheader('cache",{"_index":19699,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.setheader('content",{"_index":19698,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.status(httpstatus.ok",{"_index":10412,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.status(httpstatus.partial_content",{"_index":10411,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.statuscode",{"_index":16640,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resave",{"_index":17812,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["reset",{"_index":443,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"classes/DatabaseManagementConsole.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"interfaces/Options.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["resetlastauthorizationtime",{"_index":12772,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["resetoauthconfigcache",{"_index":13043,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resinfo",{"_index":16648,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resinfo.statuscode",{"_index":16654,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resizeandconvert",{"_index":16137,"title":{},"body":{"injectables/PreviewService.html":{}}}],["resizeandconvert(original",{"_index":16156,"title":{},"body":{"injectables/PreviewService.html":{}}}],["resolve",{"_index":5402,"title":{},"body":{"classes/ConsentRequestBody.html":{},"injectables/ExternalToolService.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/PermissionService.html":{}}}],["resolve(client",{"_index":13315,"title":{},"body":{"injectables/LdapService.html":{}}}],["resolved",{"_index":3018,"title":{},"body":{"injectables/BoardCopyService.html":{},"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["resolvedtools",{"_index":9126,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolvedtools.filter((tool",{"_index":9133,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolveduser",{"_index":20020,"title":{},"body":{"controllers/UserController.html":{},"injectables/UserService.html":{}}}],["resolvedusermapper",{"_index":16679,"title":{"classes/ResolvedUserMapper.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"controllers/UserController.html":{}}}],["resolvedusermapper.maptoresponse(user",{"_index":20021,"title":{},"body":{"controllers/UserController.html":{}}}],["resolveduserresponse",{"_index":16683,"title":{"classes/ResolvedUserResponse.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"controllers/UserController.html":{}}}],["resolvefilenameduplicates",{"_index":21505,"title":{},"body":{"miscellaneous/functions.html":{}}}],["resolvefilenameduplicates(filename",{"_index":21534,"title":{},"body":{"miscellaneous/functions.html":{}}}],["resolvepermissions",{"_index":11672,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["resolvepermissions(user",{"_index":16107,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles",{"_index":16104,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles(inputroles",{"_index":16112,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolveplaceholder(placeholder",{"_index":11260,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["resolverepo",{"_index":16600,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["resolverepo(type",{"_index":11660,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["resolves",{"_index":12468,"title":{},"body":{"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["resolvetokenrequest",{"_index":15198,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resolvetokenrequest(observable",{"_index":15204,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resource",{"_index":5067,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"controllers/ToolController.html":{}}}],["resource.'})@apiunauthorizedresponse({description",{"_index":19640,"title":{},"body":{"controllers/ToolController.html":{}}}],["resource.caninline",{"_index":5084,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resource.ts",{"_index":5103,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:15",{"_index":5254,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:16",{"_index":5107,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:18",{"_index":5255,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:19",{"_index":5108,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:22",{"_index":5249,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:23",{"_index":5109,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:26",{"_index":5250,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:30",{"_index":5251,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:61",{"_index":5256,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:81",{"_index":5110,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource_link_id",{"_index":6976,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["resourceelement.transform",{"_index":5248,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceelements",{"_index":5246,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceid",{"_index":14976,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourcename",{"_index":14978,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourceownerpasswordgrant",{"_index":12197,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceownerpasswordgrant(username",{"_index":12200,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceprops",{"_index":4991,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resources",{"_index":4989,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["resp",{"_index":7875,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.data",{"_index":2352,"title":{},"body":{"injectables/BBBService.html":{}}}],["resp.everyattendeejoinsmuted",{"_index":21161,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.everybodyjoinsasmoderator",{"_index":21162,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.moderatormustapprovejoinrequests",{"_index":21163,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.options",{"_index":7893,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.permission",{"_index":7885,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["resp.state",{"_index":7883,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.url",{"_index":7888,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["respect",{"_index":21852,"title":{},"body":{"license.html":{}}}],["respective",{"_index":22668,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["respobservable",{"_index":11089,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["respond",{"_index":22301,"title":{},"body":{"todo.html":{}}}],["responds",{"_index":14603,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["responsability",{"_index":22481,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response",{"_index":1016,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"classes/AuthorizationError.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"controllers/BoardController.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CopyFileListResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"controllers/ElementController.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileDtoBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConnectionError.html":{},"classes/LoginResponseMapper.html":{},"injectables/MigrationMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/OAuthProcessDto.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/PageContentMapper.html":{},"classes/PaginationResponse.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PublicSystemListResponse.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{},"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"classes/TestApiClient.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"controllers/ToolSchoolController.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceBaseResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["response.access_token",{"_index":19499,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.authorization_endpoint",{"_index":13063,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.body",{"_index":1779,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.builder.ts",{"_index":6154,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{},"classes/FileResponseBuilder.html":{}}}],["response.builder.ts:4",{"_index":6156,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["response.builder.ts:5",{"_index":9916,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["response.config",{"_index":8992,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.contentlength",{"_index":10417,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contentrange",{"_index":10410,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contenttype",{"_index":10415,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contextid",{"_index":5846,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.contexttype",{"_index":5847,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.data",{"_index":9515,"title":{},"body":{"classes/FileDtoBuilder.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{}}}],["response.data.access_token",{"_index":13070,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.data.destroy",{"_index":10413,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.displayname",{"_index":5848,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.dto",{"_index":22497,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response.end_session_endpoint",{"_index":13064,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.factory",{"_index":4115,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["response.factory.ts",{"_index":2062,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:10",{"_index":5519,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:14",{"_index":2068,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:16",{"_index":2071,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:18",{"_index":2072,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:20",{"_index":2070,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:22",{"_index":2066,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.headers['content",{"_index":9511,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["response.id",{"_index":5843,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["response.id_token",{"_index":19497,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.ishidden",{"_index":8993,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.issuer",{"_index":13061,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwks_uri",{"_index":13065,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwt",{"_index":15014,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.logourl",{"_index":5851,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.mapper",{"_index":3673,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"modules/LearnroomApiModule.html":{},"controllers/LoginController.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"modules/ProvisioningModule.html":{},"controllers/RoomsController.html":{},"injectables/SanisProvisioningStrategy.html":{},"controllers/SystemController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["response.mapper.ts",{"_index":974,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LoginResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:102",{"_index":9020,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:110",{"_index":9017,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:14",{"_index":21196,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:15",{"_index":16871,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:16",{"_index":978,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:17",{"_index":16771,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:18",{"_index":18678,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:19",{"_index":15656,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:20",{"_index":5855,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["response.mapper.ts:21",{"_index":21199,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:23",{"_index":15649,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:27",{"_index":9550,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:28",{"_index":16769,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:29",{"_index":16873,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:32",{"_index":15651,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:34",{"_index":17268,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:38",{"_index":17275,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:40",{"_index":15653,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:41",{"_index":17434,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["response.mapper.ts:46",{"_index":9014,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:47",{"_index":16875,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:5",{"_index":14148,"title":{},"body":{"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:53",{"_index":17277,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:6",{"_index":980,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:64",{"_index":17270,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:68",{"_index":17272,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:7",{"_index":3671,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:73",{"_index":9005,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:77",{"_index":9010,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:8",{"_index":9551,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:81",{"_index":9012,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:85",{"_index":9008,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:9",{"_index":16770,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:93",{"_index":16874,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.message",{"_index":10304,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["response.name",{"_index":8990,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.opennewtab",{"_index":8994,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.parameters",{"_index":5849,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.redirect",{"_index":15015,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.refresh_token",{"_index":19498,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.schoolid",{"_index":17427,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.schooltoolid",{"_index":5845,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.set",{"_index":6511,"title":{},"body":{"controllers/CourseController.html":{}}}],["response.sourceid",{"_index":10150,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["response.state",{"_index":21077,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["response.status",{"_index":17428,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.status(errorresponse.code).json(errorresponse",{"_index":10507,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["response.subject",{"_index":15473,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["response.token_endpoint",{"_index":13062,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.toolid",{"_index":17426,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.toolversion",{"_index":5850,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.ts",{"_index":16457,"title":{},"body":{"classes/PublicSystemResponse.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["response.ts:10",{"_index":16462,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:17",{"_index":16463,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:24",{"_index":16460,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:31",{"_index":16461,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:39",{"_index":16459,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.url",{"_index":8991,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.version",{"_index":8995,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response?.data",{"_index":1387,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["response].ts",{"_index":22559,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["response_type",{"_index":11025,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["response_types",{"_index":15240,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["responsedata",{"_index":15221,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsefilerecords",{"_index":9817,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["responseinfo",{"_index":16638,"title":{"classes/ResponseInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responseinfo(res",{"_index":16649,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsejson",{"_index":1399,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.authtoken",{"_index":1401,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.userid",{"_index":1400,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsemapper",{"_index":17241,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{},"controllers/ToolSchoolController.html":{}}}],["responses",{"_index":10752,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"classes/OauthClientBody.html":{},"interfaces/OcsResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"interfaces/SuccessfulRes.html":{},"miscellaneous/functions.html":{}}}],["responsetime",{"_index":16629,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetime((req",{"_index":16659,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetoken",{"_index":15102,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["responsetoken.data",{"_index":15225,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetokenobservable",{"_index":15219,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetype",{"_index":8597,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["responsibilities",{"_index":22624,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["responsibility",{"_index":22445,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["responsible",{"_index":22062,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ressources",{"_index":22355,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["resssource",{"_index":22302,"title":{},"body":{"todo.html":{}}}],["rest",{"_index":8013,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["restart",{"_index":20248,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restarted",{"_index":14501,"title":{},"body":{"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["restartmigration",{"_index":16703,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(@currentuser",{"_index":20313,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(currentuser",{"_index":20269,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(schoolid",{"_index":20441,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(userid",{"_index":16706,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["restartuserloginmigrationuc",{"_index":16701,"title":{"injectables/RestartUserLoginMigrationUc.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["restmethod",{"_index":22937,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["restore",{"_index":17090,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"controllers/TaskController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["restore(@param",{"_index":18815,"title":{},"body":{"controllers/TaskController.html":{}}}],["restore(paths",{"_index":17107,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["restore(urlparams",{"_index":18790,"title":{},"body":{"controllers/TaskController.html":{}}}],["restored",{"_index":22824,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["restoreforuser(user",{"_index":12063,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["restricted",{"_index":12932,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["restricting",{"_index":21846,"title":{},"body":{"license.html":{}}}],["restriction",{"_index":22022,"title":{},"body":{"license.html":{}}}],["restrictions",{"_index":22020,"title":{},"body":{"license.html":{}}}],["result",{"_index":1828,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardUc.html":{},"classes/ColumnResponseMapper.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyUC.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DatabaseManagementService.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GridElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonRule.html":{},"classes/NewsScope.html":{},"injectables/PreviewService.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/ShareTokenUC.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"controllers/UserController.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["result.dto.ts",{"_index":17322,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:4",{"_index":17324,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:6",{"_index":17323,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.push",{"_index":12980,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["result.push(room",{"_index":7384,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["result.query",{"_index":17718,"title":{},"body":{"classes/Scope.html":{}}}],["result.reduce((alloweddos",{"_index":4208,"title":{},"body":{"injectables/CardUc.html":{}}}],["result.success",{"_index":7835,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["result[sortby",{"_index":12393,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["resultelement",{"_index":7364,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["resulting",{"_index":21706,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["results",{"_index":103,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"modules.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["results.foreach((result",{"_index":7834,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["results.map((account",{"_index":13126,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["results.push(mapped",{"_index":7974,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["resultuser",{"_index":20696,"title":{},"body":{"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ret",{"_index":1092,"title":{},"body":{"injectables/AccountService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LegacySchoolService.html":{},"injectables/VideoConferenceService.html":{}}}],["ret.attdbcaccountid",{"_index":13147,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcsystemid",{"_index":13143,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcuserid",{"_index":13145,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.id",{"_index":1096,"title":{},"body":{"injectables/AccountService.html":{}}}],["retaccountid",{"_index":13184,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["retains",{"_index":21973,"title":{},"body":{"license.html":{}}}],["retried",{"_index":11587,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrieve",{"_index":14607,"title":{},"body":{"controllers/NewsController.html":{}}}],["retry",{"_index":11585,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrycount",{"_index":11577,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrydelay",{"_index":11578,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retryflags",{"_index":11583,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["return",{"_index":227,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CreateJwtParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["returncode",{"_index":2104,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["returned",{"_index":694,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/ListOauthClientsParams.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["returned.'})@apiokresponse({description",{"_index":20262,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["returning",{"_index":6045,"title":{},"body":{"classes/CopyApiResponse.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["returnmap",{"_index":21275,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["returnmap.set(perm",{"_index":21280,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["returns",{"_index":35,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IGridElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementResponseMapper.html":{},"modules/RocketChatModule.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["retvalue",{"_index":22748,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["reuse",{"_index":5383,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["reused",{"_index":22574,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["revalidate",{"_index":19701,"title":{},"body":{"controllers/ToolController.html":{}}}],["revert",{"_index":13235,"title":{},"body":{"classes/KeycloakSeedService.html":{},"miscellaneous/functions.html":{}}}],["revert.service.ts",{"_index":20410,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:13",{"_index":20414,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:7",{"_index":20412,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["reverted",{"_index":21549,"title":{},"body":{"miscellaneous/functions.html":{}}}],["revertpublished",{"_index":18775,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["revertpublished(urlparams",{"_index":18793,"title":{},"body":{"controllers/TaskController.html":{}}}],["revertpublished(userid",{"_index":19172,"title":{},"body":{"injectables/TaskUC.html":{}}}],["revertuserloginmigration",{"_index":20411,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revertuserloginmigration(userloginmigration",{"_index":20413,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["review",{"_index":22887,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reviewers",{"_index":21635,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["reviewing",{"_index":22206,"title":{},"body":{"license.html":{}}}],["revised",{"_index":22162,"title":{},"body":{"license.html":{}}}],["revokeconsentparams",{"_index":15509,"title":{"classes/RevokeConsentParams.html":{}},"body":{"controllers/OauthProviderController.html":{},"classes/RevokeConsentParams.html":{}}}],["revokeconsentsession",{"_index":10839,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["revokeconsentsession(@currentuser",{"_index":15570,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(currentuser",{"_index":15508,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(user",{"_index":10879,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["revokeconsentsession(userid",{"_index":15686,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["revokematch",{"_index":11492,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["rewindsequence",{"_index":673,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["rfc6749",{"_index":15255,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["rich",{"_index":2879,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/RichText.html":{}}}],["richtext",{"_index":16718,"title":{"classes/RichText.html":{}},"body":{"classes/RichText.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["richtextcontentbody",{"_index":5542,"title":{"classes/RichTextContentBody.html":{}},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["richtextelement",{"_index":2867,"title":{"classes/RichTextElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelement.id",{"_index":16570,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.inputformat",{"_index":5585,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.text",{"_index":5582,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelementcontent",{"_index":16748,"title":{"classes/RichTextElementContent.html":{}},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementcontentbody",{"_index":8034,"title":{"classes/RichTextElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["richtextelementnode",{"_index":3177,"title":{"entities/RichTextElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementnodefactory",{"_index":3498,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodefactory.build",{"_index":3522,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodeprops",{"_index":16759,"title":{"interfaces/RichTextElementNodeProps.html":{}},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementprops",{"_index":16747,"title":{"interfaces/RichTextElementProps.html":{}},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["richtextelementresponse",{"_index":4045,"title":{"classes/RichTextElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper",{"_index":5522,"title":{"classes/RichTextElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper.getinstance",{"_index":5517,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["richtextelementresponsemapper.instance",{"_index":16772,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["richtext})@decodehtmlentities",{"_index":19061,"title":{},"body":{"classes/TaskResponse.html":{}}}],["right",{"_index":21967,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rights",{"_index":21689,"title":{},"body":{"license.html":{}}}],["rimraf",{"_index":10009,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"dependencies.html":{}}}],["rimraf.sync(folderpath",{"_index":10024,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["risk",{"_index":22181,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rmq",{"_index":10497,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["ro",{"_index":1286,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocket",{"_index":16780,"title":{},"body":{"modules/RocketChatModule.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket.chat",{"_index":22958,"title":{"additional-documentation/nestjs-application/rocket.chat.html":{}},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat",{"_index":11701,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["rocket_chat_admin_password=huhudbildungscloud",{"_index":23010,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_admin_user=admin",{"_index":23009,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_options",{"_index":16782,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["rocket_chat_uri=\"http://localhost:3000",{"_index":23008,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchat",{"_index":1294,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/ISchoolProperties.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchat_service_enabled=true",{"_index":23007,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchaterror",{"_index":1292,"title":{"classes/RocketChatError.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror(e",{"_index":1386,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror.prototype",{"_index":1311,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatgroupmodel",{"_index":1276,"title":{"interfaces/RocketChatGroupModel.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatmodule",{"_index":16777,"title":{"modules/RocketChatModule.html":{}},"body":{"modules/RocketChatModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rocketchatmodule.forroot",{"_index":17794,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["rocketchatoptions",{"_index":1271,"title":{"interfaces/RocketChatOptions.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatservice",{"_index":1320,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["role",{"_index":496,"title":{"entities/Role.html":{}},"body":{"controllers/AccountController.html":{},"injectables/AuthorizationHelper.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/CurrentUserMapper.html":{},"classes/FilterImportUserParams.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"injectables/JwtStrategy.html":{},"classes/LdapConfig.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/PermissionService.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"entities/Role.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"injectables/SubmissionItemUc.html":{},"entities/System.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserFactory.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["role.entity",{"_index":12070,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["role.factory",{"_index":20185,"title":{},"body":{"classes/UserFactory.html":{}}}],["role.id",{"_index":6945,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["role.mapper.ts",{"_index":14260,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.mapper.ts:13",{"_index":14263,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.name",{"_index":4539,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMatchMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["role.params",{"_index":4593,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["role.params.ts",{"_index":19313,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:11",{"_index":19314,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:7",{"_index":19315,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.resolvepermissions",{"_index":1917,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["role.roles.isinitialized(true",{"_index":19393,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roleadmin",{"_index":11916,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roleattributenamemapping",{"_index":11913,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roledto",{"_index":4507,"title":{"classes/RoleDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["roledtos",{"_index":16849,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolefactory",{"_index":19365,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["rolefactory.build",{"_index":19367,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["rolefactory.buildwithid",{"_index":19369,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["roleid",{"_index":4635,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUserDto.html":{}}}],["roleids",{"_index":20147,"title":{},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["rolemapper",{"_index":16791,"title":{"classes/RoleMapper.html":{}},"body":{"classes/RoleMapper.html":{},"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(entities",{"_index":16856,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(roles",{"_index":16854,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitytodto(entity",{"_index":16852,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapping",{"_index":14264,"title":{},"body":{"classes/LtiRoleMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolemapping[rolename",{"_index":14271,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolemapping[source.personenkontexte[0].rolle",{"_index":17296,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["rolemodule",{"_index":1625,"title":{"modules/RoleModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/ProvisioningModule.html":{},"modules/RoleModule.html":{},"modules/UserModule.html":{},"modules.html":{}}}],["rolename",{"_index":4538,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRoleProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserMatchMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["rolename.administrator",{"_index":11452,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolename.enum",{"_index":23107,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["rolename.student",{"_index":11454,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolename.superhero",{"_index":14269,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolename.teacher",{"_index":11453,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleService.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolename.teamexpert",{"_index":21268,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["rolename.user",{"_index":14265,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenamemapper",{"_index":12389,"title":{"classes/RoleNameMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/RoleNameMapper.html":{}}}],["rolenamemapper.maptodomain(query.role",{"_index":12416,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenamemapper.maptoresponse(role",{"_index":12399,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenames",{"_index":11449,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/VideoConferenceService.html":{}}}],["rolenames.includes(rolename.expert",{"_index":21269,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["rolenames.map((rolename",{"_index":14270,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenosc",{"_index":11917,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["rolepermissions",{"_index":12118,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roleref",{"_index":20795,"title":{},"body":{"injectables/UserService.html":{}}}],["roleref.id",{"_index":6948,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["roleref.name",{"_index":12644,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["rolereference",{"_index":6942,"title":{"classes/RoleReference.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/RoleReference.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceService.html":{}}}],["rolerefs",{"_index":15943,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolerepo",{"_index":16806,"title":{"injectables/RoleRepo.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["roles",{"_index":3110,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalUserDto.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/IservMapper.html":{},"interfaces/JwtPayload.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PermissionService.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"entities/Role.html":{},"injectables/RoleService.html":{},"injectables/SanisResponseMapper.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["roles.foreach((role",{"_index":12117,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roles.length",{"_index":15983,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["roles.map((role",{"_index":15946,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["roles.map(async",{"_index":19392,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roles[0].id",{"_index":15984,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolesandpermissions",{"_index":16119,"title":{},"body":{"injectables/PermissionService.html":{}}}],["roleservice",{"_index":4621,"title":{"injectables/RoleService.html":{}},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/OidcProvisioningService.html":{},"modules/RoleModule.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["rolestudent",{"_index":11914,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roleteacher",{"_index":11915,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roletype",{"_index":11909,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roleuc",{"_index":16807,"title":{"injectables/RoleUc.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleUc.html":{}}}],["rollback",{"_index":17149,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["rollbackmigration",{"_index":17591,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["rollbackmigration(originalschooldo",{"_index":17611,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["rollbackmigration(userdocopy",{"_index":20602,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["rolle",{"_index":17235,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["rollen",{"_index":17217,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["rom",{"_index":21976,"title":{},"body":{"license.html":{}}}],["room",{"_index":7276,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsUc.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["roomboarddto",{"_index":7932,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.html":{}}}],["roomboarddtofactory",{"_index":8006,"title":{"injectables/RoomBoardDTOFactory.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["roomboardelementdto",{"_index":7930,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["roomboardelementtypes",{"_index":3408,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.column_board",{"_index":7994,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.lesson",{"_index":7983,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.task",{"_index":7979,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardresponsemapper",{"_index":13374,"title":{"injectables/RoomBoardResponseMapper.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{}}}],["roomelementurlparams",{"_index":16923,"title":{"classes/RoomElementUrlParams.html":{}},"body":{"classes/RoomElementUrlParams.html":{},"controllers/RoomsController.html":{}}}],["roomid",{"_index":1344,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/DtoCreator.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["roomlist",{"_index":7305,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["roomlist.includes(room",{"_index":7376,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["roomname",{"_index":1336,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rooms",{"_index":7280,"title":{},"body":{"classes/DashboardEntity.html":{},"controllers/RoomsController.html":{}}}],["rooms.authorisation.service",{"_index":7953,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["rooms.foreach((room",{"_index":7382,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["rooms.service",{"_index":6536,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["roomsauthorisationservice",{"_index":7914,"title":{"injectables/RoomsAuthorisationService.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{}}}],["roomscontroller",{"_index":13377,"title":{"controllers/RoomsController.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["roomsservice",{"_index":6522,"title":{"injectables/RoomsService.html":{}},"body":{"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["roomsuc",{"_index":13375,"title":{"injectables/RoomsUc.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{},"injectables/RoomsUc.html":{}}}],["roomurlparams",{"_index":16926,"title":{"classes/RoomUrlParams.html":{}},"body":{"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{}}}],["root",{"_index":2509,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"controllers/UserController.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["rootboarddo",{"_index":3137,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rootboarddo.context?.type",{"_index":3139,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rooted",{"_index":5222,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["rootid",{"_index":3135,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rootpath",{"_index":11902,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["route",{"_index":9368,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"controllers/ServerController.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["route_path",{"_index":16644,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routename",{"_index":1768,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["routenameinput",{"_index":19410,"title":{},"body":{"classes/TestApiClient.html":{}}}],["routepath",{"_index":16617,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routes",{"_index":21607,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["routingkey",{"_index":1418,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["royalty",{"_index":22077,"title":{},"body":{"license.html":{}}}],["rpcmessage",{"_index":10185,"title":{"interfaces/RpcMessage.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["rs.initiate({\"_id",{"_index":22967,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs0",{"_index":22964,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs256",{"_index":1671,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["rs384",{"_index":1672,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rs512",{"_index":1673,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rsa",{"_index":15211,"title":{},"body":{"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["rss",{"_index":6728,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"dependencies.html":{}}}],["rule",{"_index":1989,"title":{"interfaces/Rule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rule(val",{"_index":5336,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["rule.haspermission(user",{"_index":2045,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["rule.isapplicable(user",{"_index":17078,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rulemanager",{"_index":1965,"title":{"injectables/RuleManager.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/RuleManager.html":{}}}],["rules",{"_index":17049,"title":{},"body":{"injectables/RuleManager.html":{},"injectables/SubmissionItemUc.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rules.length",{"_index":17080,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rules[0",{"_index":17082,"title":{},"body":{"injectables/RuleManager.html":{}}}],["run",{"_index":21603,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["runner",{"_index":22775,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["running",{"_index":2267,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["running.'})@apiresponse({status",{"_index":20891,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["runs",{"_index":21595,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["runtime",{"_index":1662,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["rxjs",{"_index":1268,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ExternalToolLogoService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/TimeoutInterceptor.html":{},"dependencies.html":{}}}],["rxjs/operators",{"_index":1270,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/TimeoutInterceptor.html":{}}}],["s",{"_index":1850,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BoardDoRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["s3",{"_index":7821,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3_client",{"_index":17119,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3_config",{"_index":17120,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3client",{"_index":7809,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["s3clientadapter",{"_index":10437,"title":{"injectables/S3ClientAdapter.html":{}},"body":{"injectables/FwuLearningContentsUc.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientadapter(s3client",{"_index":17190,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["s3clientadapter:createbucket",{"_index":17128,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientadapter:deletedirectory",{"_index":17175,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientmap",{"_index":7796,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["s3clientmodule",{"_index":10257,"title":{"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/S3ClientModule.html":{},"modules.html":{}}}],["s3clientmodule.register",{"_index":23141,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([s3config",{"_index":10271,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3config",{"_index":6163,"title":{"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["safest",{"_index":22219,"title":{},"body":{"license.html":{}}}],["safety",{"_index":21616,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sale",{"_index":22085,"title":{},"body":{"license.html":{}}}],["salt",{"_index":2287,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["same",{"_index":2298,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/VideoConferenceCreateParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sameschool",{"_index":9361,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["samesite",{"_index":15779,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["saml",{"_index":22902,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["sample",{"_index":9445,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/ServerConsole.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["samplecontroller",{"_index":22786,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["samples",{"_index":22592,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservice",{"_index":22787,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservicemethod(username",{"_index":22674,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["sampleucmethod(user",{"_index":22639,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["sanatizeusername",{"_index":1104,"title":{},"body":{"injectables/AccountService.html":{}}}],["sanis",{"_index":17209,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application.html":{}}}],["sanis_client_id",{"_index":22348,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sanisgrouprole",{"_index":17218,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisgrouprole.student",{"_index":17285,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouprole.teacher",{"_index":17284,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype",{"_index":17208,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype.class",{"_index":17287,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupusers",{"_index":17301,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenresponse",{"_index":17210,"title":{"interfaces/SanisGruppenResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenzugehoerigkeitresponse",{"_index":17214,"title":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["sanisgrupperesponse",{"_index":17201,"title":{"interfaces/SanisGruppeResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["sanislaufzeitresponse",{"_index":17207,"title":{"interfaces/SanisLaufzeitResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["sanisnameresponse",{"_index":17221,"title":{"interfaces/SanisNameResponse.html":{}},"body":{"interfaces/SanisNameResponse.html":{},"interfaces/SanisPersonResponse.html":{}}}],["sanisorganisationresponse",{"_index":17224,"title":{"interfaces/SanisOrganisationResponse.html":{}},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["sanispersonenkontextresponse",{"_index":17232,"title":{"interfaces/SanisPersonenkontextResponse.html":{}},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanispersonresponse",{"_index":17227,"title":{"interfaces/SanisPersonResponse.html":{}},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanisprovisioningstrategy",{"_index":16305,"title":{"injectables/SanisProvisioningStrategy.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["sanisresponse",{"_index":17248,"title":{"interfaces/SanisResponse.html":{}},"body":{"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisresponsemapper",{"_index":16306,"title":{"injectables/SanisResponseMapper.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole",{"_index":17236,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lehr",{"_index":17279,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.leit",{"_index":17281,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lern",{"_index":17280,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.orgadmin",{"_index":17282,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanissonstigegruppenzugehoerigeresponse",{"_index":10700,"title":{"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"interfaces/SanisGruppenResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisstrategy",{"_index":16319,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["sanissystem",{"_index":20464,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanissystem.id",{"_index":20468,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanitization",{"_index":21540,"title":{},"body":{"miscellaneous/functions.html":{}}}],["sanitize",{"_index":21441,"title":{},"body":{"dependencies.html":{},"miscellaneous/functions.html":{}}}],["sanitizehtml",{"_index":6918,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/PatchGroupParams.html":{},"classes/RenameBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateNewsParams.html":{},"miscellaneous/functions.html":{}}}],["sanitizehtml(inputformat",{"_index":21577,"title":{},"body":{"miscellaneous/functions.html":{}}}],["sanitizehtml(inputformat.rich_text",{"_index":6919,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["sanitizehtml(inputformat.rich_text_ck5",{"_index":18888,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sanitizer",{"_index":22253,"title":{},"body":{"todo.html":{}}}],["sanitizerichtext",{"_index":5575,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RichText.html":{}}}],["sanitizerichtext(content",{"_index":16726,"title":{},"body":{"classes/RichText.html":{}}}],["sanitizerichtext(this.content.text",{"_index":5583,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["sanitizestring",{"_index":21220,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["sanitizestring(text",{"_index":21247,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["sanitizing",{"_index":22498,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["satisfied",{"_index":9397,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["satisfies",{"_index":532,"title":{},"body":{"controllers/AccountController.html":{}}}],["satisfy",{"_index":9393,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"license.html":{}}}],["save",{"_index":18,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/ImportUserRepo.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["save(accountdto",{"_index":63,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["save(domainobject",{"_index":3304,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["save(entities",{"_index":913,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["save(entitydo",{"_index":2424,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["save(group",{"_index":10717,"title":{},"body":{"injectables/GroupService.html":{}}}],["save(school",{"_index":13604,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["save(systemdto",{"_index":18698,"title":{},"body":{"injectables/SystemService.html":{}}}],["save(user",{"_index":20775,"title":{},"body":{"injectables/UserService.html":{}}}],["save.dto",{"_index":616,"title":{},"body":{"classes/AccountDto.html":{}}}],["save.dto.ts",{"_index":985,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:13",{"_index":988,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:17",{"_index":996,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:21",{"_index":998,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:26",{"_index":993,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:30",{"_index":995,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:34",{"_index":989,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:38",{"_index":997,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:42",{"_index":994,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:46",{"_index":992,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:50",{"_index":990,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:54",{"_index":987,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:57",{"_index":986,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:9",{"_index":991,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.visitor",{"_index":3313,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["save.visitor.ts",{"_index":16527,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:107",{"_index":16545,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:122",{"_index":16546,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:136",{"_index":16547,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:150",{"_index":16541,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:157",{"_index":16537,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:165",{"_index":16534,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:31",{"_index":16532,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:35",{"_index":16538,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:49",{"_index":16543,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:64",{"_index":16542,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:78",{"_index":16539,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:93",{"_index":16544,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saveall",{"_index":2392,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceRepo.html":{}}}],["saveall(entitydos",{"_index":2426,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["saveall(users",{"_index":20777,"title":{},"body":{"injectables/UserService.html":{}}}],["saveallusersmatches",{"_index":12267,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(@currentuser",{"_index":12336,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(currentuser",{"_index":12284,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["savecontextexternaltool",{"_index":5907,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["savecontextexternaltool(contextexternaltool",{"_index":5919,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saved",{"_index":5963,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["savedcontextexternaltool",{"_index":5924,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saveddomainobject",{"_index":8758,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["saveddos",{"_index":2436,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["saveddos[0",{"_index":2438,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["savedentity",{"_index":10689,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedgroup",{"_index":10726,"title":{},"body":{"injectables/GroupService.html":{}}}],["savedmigration",{"_index":20454,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["savedpassword",{"_index":13998,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["savedprops",{"_index":10692,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedschool",{"_index":15941,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["saveduser",{"_index":15959,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserService.html":{}}}],["saveduser.id",{"_index":15962,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["savedusers",{"_index":20787,"title":{},"body":{"injectables/UserService.html":{}}}],["saveschoolexternaltool",{"_index":17464,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveschoolexternaltool(schoolexternaltool",{"_index":17477,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveuninitialized",{"_index":17813,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["savevideoconference",{"_index":21221,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["savevideoconference(videoconference",{"_index":21249,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["savevisitor",{"_index":3344,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savevisitor.save(domainobject",{"_index":3347,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savewithoutflush",{"_index":881,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["savewithoutflush(account",{"_index":899,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["savewithoutflush(user",{"_index":20690,"title":{},"body":{"injectables/UserRepo.html":{}}}],["savewithvalidation",{"_index":1049,"title":{},"body":{"injectables/AccountService.html":{}}}],["savewithvalidation(dto",{"_index":1070,"title":{},"body":{"injectables/AccountService.html":{}}}],["saying",{"_index":21924,"title":{},"body":{"license.html":{}}}],["sc",{"_index":3948,"title":{},"body":{"injectables/CalendarMapper.html":{},"interfaces/ICalendarEvent.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sc_api_response_time_in_seconds",{"_index":16657,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["sc_domain",{"_index":11747,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["sc_theme",{"_index":4806,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["scan",{"_index":9830,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanned",{"_index":9727,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanresult",{"_index":9821,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.reason",{"_index":9825,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.status",{"_index":9824,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultdto",{"_index":9811,"title":{"classes/ScanResultDto.html":{}},"body":{"classes/FileRecordMapper.html":{},"controllers/FileSecurityController.html":{},"classes/ScanResultDto.html":{}}}],["scanresultparams",{"_index":6132,"title":{"classes/ScanResultParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"controllers/FileSecurityController.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["scanresultparams.error",{"_index":9829,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_detected",{"_index":9823,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_signature",{"_index":9826,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scans",{"_index":11148,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["scanstatus",{"_index":6085,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{}}}],["scanstatus.blocked",{"_index":9771,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.error",{"_index":9774,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.pending",{"_index":9726,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.verified",{"_index":9780,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.wont_check",{"_index":9777,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scdomain",{"_index":12940,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["scenario",{"_index":22732,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["scenarios",{"_index":22724,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["schema",{"_index":4013,"title":{},"body":{"controllers/CardController.html":{},"classes/CommonCartridgeMetadataElement.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["schema.ts",{"_index":22563,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemas",{"_index":22564,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemaversion",{"_index":5194,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["school",{"_index":192,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AccountParams.html":{},"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapAlreadyPersistedException.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"injectables/SchoolValidationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserFactory.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["school'})@apiokresponse({description",{"_index":19529,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["school(params",{"_index":23062,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["school(value",{"_index":12075,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["school._id",{"_index":12541,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["school.controller",{"_index":13444,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.controller.ts",{"_index":13447,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:102",{"_index":19908,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:122",{"_index":19904,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:29",{"_index":13461,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:47",{"_index":19915,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:52",{"_index":13456,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:62",{"_index":19911,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:80",{"_index":19919,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.do.ts",{"_index":13484,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:11",{"_index":13489,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:13",{"_index":13490,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:15",{"_index":13493,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:17",{"_index":13491,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:19",{"_index":13492,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:21",{"_index":13495,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:23",{"_index":13488,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:26",{"_index":13494,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:28",{"_index":13496,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:31",{"_index":13486,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:9",{"_index":13487,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.dto",{"_index":15353,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["school.dto.ts",{"_index":8299,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:2",{"_index":8302,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:4",{"_index":8303,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:6",{"_index":8301,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.entity",{"_index":6407,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["school.factory",{"_index":6614,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/UserFactory.html":{}}}],["school.factory.ts",{"_index":13512,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["school.features",{"_index":13607,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.filter((f",{"_index":13609,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.includes(feature",{"_index":13608,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features?.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":15100,"title":{},"body":{"injectables/OAuthService.html":{}}}],["school.id",{"_index":14468,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolValidationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["school.module",{"_index":13442,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.module.ts",{"_index":13535,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["school.name",{"_index":15932,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["school.officialschoolnumber",{"_index":322,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolValidationService.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["school.previousexternalid",{"_index":13363,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.previousexternalid}/${username}`.tolowercase",{"_index":13366,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.repo.ts",{"_index":13537,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:12",{"_index":13540,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:17",{"_index":13547,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:21",{"_index":13543,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:28",{"_index":13545,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.rule.ts",{"_index":13580,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:12",{"_index":13581,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:15",{"_index":13583,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:21",{"_index":13582,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.schoolyear",{"_index":20098,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.service.ts",{"_index":13585,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:10",{"_index":13592,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:16",{"_index":13601,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:21",{"_index":13603,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:29",{"_index":13596,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:35",{"_index":13594,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:41",{"_index":13598,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:47",{"_index":13605,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.systems",{"_index":13337,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.systems.includes(systemid",{"_index":13338,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{}}}],["school.systems.push(systemid",{"_index":15936,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school.systems?.filter((systemid",{"_index":20467,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["school.uc.ts",{"_index":13616,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:16",{"_index":13617,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:26",{"_index":13621,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:77",{"_index":13619,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school/controller/dto/migration.body.ts",{"_index":14455,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:12",{"_index":14458,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:21",{"_index":14457,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:30",{"_index":14456,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.response.ts",{"_index":14498,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:14",{"_index":14504,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:20",{"_index":14503,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:26",{"_index":14502,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:31",{"_index":14499,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:8",{"_index":14505,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/school.params.ts",{"_index":17676,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/dto/school.params.ts:11",{"_index":17677,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/legacy",{"_index":13446,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school/error/school",{"_index":17667,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school/legacy",{"_index":13439,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["school/mapper/migration.mapper.ts",{"_index":14479,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/mapper/migration.mapper.ts:7",{"_index":14482,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/repo/schoolyear.repo.ts",{"_index":17695,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:11",{"_index":17697,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:7",{"_index":17698,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/service/federal",{"_index":9466,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["school/service/legacy",{"_index":13584,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school/service/school",{"_index":17701,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["school/service/validation/school",{"_index":17682,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["school/types",{"_index":15926,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school/uc/dto/oauth",{"_index":15388,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["school/uc/legacy",{"_index":13615,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school?.id",{"_index":16000,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["school_external_tools",{"_index":11685,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["school_in_migration",{"_index":17553,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["school_migration_failed",{"_index":17579,"title":{},"body":{"classes/SchoolMigrationError.html":{}}}],["school_number_duplicate",{"_index":17670,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school_number_missing",{"_index":17675,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["schooldo",{"_index":12600,"title":{},"body":{"classes/IservMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schooldo.externalid",{"_index":12604,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.features",{"_index":20473,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":20474,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.push(schoolfeatures.oauth_provisioning_enabled",{"_index":20475,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.name",{"_index":12603,"title":{},"body":{"classes/IservMapper.html":{}}}],["schooldo.officialschoolnumber",{"_index":12605,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.previousexternalid",{"_index":17658,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems",{"_index":17656,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems.push(targetsystemid",{"_index":17657,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldocopy",{"_index":17628,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolentity",{"_index":844,"title":{"entities/SchoolEntity.html":{}},"body":{"interfaces/AccountParams.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/LegacySchoolRepo.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolInfoMapper.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{}}}],["schoolentity(props",{"_index":13555,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolexclusive",{"_index":17853,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["schoolexternal",{"_index":17364,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltool",{"_index":139,"title":{"classes/SchoolExternalTool.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ToolConfigurationMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltool'})@httpcode(httpstatus.no_content",{"_index":19907,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltool.id",{"_index":8388,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolService.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltool.name",{"_index":17445,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.parameters",{"_index":280,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["schoolexternaltool.schoolid",{"_index":311,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.status",{"_index":17448,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolid",{"_index":8392,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolexternaltool.toolversion",{"_index":17447,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse",{"_index":17351,"title":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":19580,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplateresponse",{"_index":17353,"title":{"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltooldto",{"_index":17418,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolentity",{"_index":5682,"title":{"entities/SchoolExternalToolEntity.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{}}}],["schoolexternaltoolentity(props",{"_index":17402,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["schoolexternaltoolfactory",{"_index":17358,"title":{"classes/SchoolExternalToolFactory.html":{}},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolfactory.define(schoolexternaltool",{"_index":17363,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolid",{"_index":5641,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/ToolConfigurationMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["schoolexternaltoolidparams",{"_index":17365,"title":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{}},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolids",{"_index":5755,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolmodule",{"_index":5719,"title":{"modules/SchoolExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["schoolexternaltoolparams",{"_index":19913,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolparams.schoolid",{"_index":19923,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolpostparams",{"_index":17374,"title":{"classes/SchoolExternalToolPostParams.html":{}},"body":{"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolprops",{"_index":17343,"title":{"interfaces/SchoolExternalToolProps.html":{}},"body":{"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["schoolexternaltoolquery",{"_index":17388,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolqueryinput",{"_index":17505,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["schoolexternaltoolrefdo",{"_index":5610,"title":{"classes/SchoolExternalToolRefDO.html":{}},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["schoolexternaltoolrepo",{"_index":1966,"title":{"injectables/SchoolExternalToolRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"injectables/ExternalToolService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolrequestmapper",{"_index":17412,"title":{"injectables/SchoolExternalToolRequestMapper.html":{}},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse",{"_index":17423,"title":{"classes/SchoolExternalToolResponse.html":{}},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponsemapper",{"_index":17429,"title":{"injectables/SchoolExternalToolResponseMapper.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apibadrequestresponse({type",{"_index":19918,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":19903,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolrule",{"_index":1967,"title":{"injectables/SchoolExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["schoolexternaltools",{"_index":8370,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltools.filter",{"_index":8384,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["schoolexternaltools.map",{"_index":9140,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolscope",{"_index":17390,"title":{"classes/SchoolExternalToolScope.html":{}},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["schoolexternaltoolsearchlistresponse",{"_index":17437,"title":{"classes/SchoolExternalToolSearchListResponse.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolsearchlistresponse(responses",{"_index":17444,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolsearchparams",{"_index":17456,"title":{"classes/SchoolExternalToolSearchParams.html":{}},"body":{"classes/SchoolExternalToolSearchParams.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolservice",{"_index":5977,"title":{"injectables/SchoolExternalToolService.html":{}},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceUc.html":{}}}],["schoolexternaltoolsinuse",{"_index":8427,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltoolsinuse.map",{"_index":8431,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltooluc",{"_index":17491,"title":{"injectables/SchoolExternalToolUc.html":{}},"body":{"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolvalidationservice",{"_index":17372,"title":{"injectables/SchoolExternalToolValidationService.html":{}},"body":{"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolexternaltoolversion",{"_index":17522,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolfactory",{"_index":6613,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.build",{"_index":6622,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.buildwithid",{"_index":19370,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["schoolfeatureenabled",{"_index":21284,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["schoolfeatures",{"_index":11695,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["schoolfeatures.enable_ldap_sync_during_migration",{"_index":20459,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schoolfeatures.oauth_provisioning_enabled",{"_index":15940,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schoolfeatures.videoconference",{"_index":21286,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["schoolforgroupnotfoundloggable",{"_index":15927,"title":{"classes/SchoolForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["schoolforgroupnotfoundloggable(externalgroup",{"_index":15971,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["schoolid",{"_index":4227,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/DownloadFileParams.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersAuthProvider.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtPayload.html":{},"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserResponse.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolSchoolController.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["schoolid'})@index",{"_index":6628,"title":{},"body":{"entities/CourseGroup.html":{},"entities/Submission.html":{}}}],["schooliddoesnotmatchwithuserschoolid",{"_index":17539,"title":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["schoolidparams",{"_index":17549,"title":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{}},"body":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolinfo",{"_index":17570,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.id",{"_index":17571,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.name",{"_index":17572,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper",{"_index":14680,"title":{"classes/SchoolInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper.maptoresponse(news.school",{"_index":14685,"title":{},"body":{"classes/NewsMapper.html":{}}}],["schoolinforesponse",{"_index":14651,"title":{"classes/SchoolInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{}}}],["schoolinmigrationerror",{"_index":15158,"title":{"classes/SchoolInMigrationError.html":{}},"body":{"injectables/Oauth2Strategy.html":{},"classes/SchoolInMigrationError.html":{}}}],["schoolinusermigrationendloggable",{"_index":17554,"title":{"classes/SchoolInUserMigrationEndLoggable.html":{}},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["schoolinusermigrationstartloggable",{"_index":17560,"title":{"classes/SchoolInUserMigrationStartLoggable.html":{}},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["schoolmigrated",{"_index":17636,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolmigrationerror",{"_index":17577,"title":{"classes/SchoolMigrationError.html":{}},"body":{"classes/SchoolMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationerror(details",{"_index":20514,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationflags",{"_index":17580,"title":{"interfaces/SchoolMigrationFlags.html":{}},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["schoolmigrationservice",{"_index":4449,"title":{"injectables/SchoolMigrationService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{},"injectables/SchoolMigrationService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schoolname",{"_index":11906,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/System.html":{}}}],["schoolnews",{"_index":6755,"title":{"entities/SchoolNews.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["schoolnews(props",{"_index":6753,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["schoolnumber",{"_index":13599,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["schoolnumber_prefix_regex",{"_index":17264,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["schoolnumberduplicateloggableexception",{"_index":17666,"title":{"classes/SchoolNumberDuplicateLoggableException.html":{}},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolnumberduplicateloggableexception(school.officialschoolnumber",{"_index":17688,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["schoolnumbermissingloggableexception",{"_index":17671,"title":{"classes/SchoolNumberMissingLoggableException.html":{}},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolnumbermissingloggableexception(schoolid",{"_index":18157,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["schoolnumbermissingloggableexception})@apiokresponse({description",{"_index":20284,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["schoolparameter",{"_index":7158,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["schoolparameters",{"_index":11684,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["schoolparams",{"_index":13451,"title":{"classes/SchoolParams.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/SchoolParams.html":{}}}],["schoolparams.schoolid",{"_index":13476,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolrepo",{"_index":11636,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolrolepermission",{"_index":11711,"title":{"classes/SchoolRolePermission.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolroles",{"_index":11714,"title":{"classes/SchoolRoles.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolrule",{"_index":23087,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["schools",{"_index":9717,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/OAuthService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/ShareTokenDO.html":{}}}],["schools[0",{"_index":13553,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolservice",{"_index":132,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["schooltomigrate",{"_index":15837,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schooltomigrate(currentuserid",{"_index":17614,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooltool",{"_index":5675,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["schooltool.school",{"_index":5787,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["schooltoolid",{"_index":5701,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["schooltoolref",{"_index":5603,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["schooltype",{"_index":11547,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["schooluc",{"_index":13472,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolvalidationservice",{"_index":13533,"title":{"injectables/SchoolValidationService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolyear",{"_index":9475,"title":{"entities/SchoolYear.html":{}},"body":{"injectables/FederalStateService.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyear.entity",{"_index":11698,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolyear.factory",{"_index":13516,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearfactory",{"_index":13515,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearfactory.build",{"_index":13527,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearrepo",{"_index":13534,"title":{"injectables/SchoolYearRepo.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyearservice",{"_index":13532,"title":{"injectables/SchoolYearService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["schould",{"_index":6907,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UpdateNewsParams.html":{}}}],["schul",{"_index":2173,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/CourseCopyUC.html":{},"classes/DtoCreator.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/IToolFeatures.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/TaskCopyUC.html":{},"classes/ToolConfiguration.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{},"dependencies.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["schulcloud",{"_index":11042,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ServerController.html":{},"additional-documentation/nestjs-application.html":{}}}],["schulcloudnextcloud",{"_index":15594,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["scope",{"_index":277,"title":{"classes/Scope.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ConsentRequestBody.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolServiceMapper.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"interfaces/IntrospectResponse.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/LegacyLogger.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"classes/OidcConfig.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"controllers/TeamNewsController.html":{},"injectables/UserDORepo.html":{},"classes/UserMatchMapper.html":{},"classes/UserScope.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope)roles",{"_index":23040,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope.addquery(allforcreator.query",{"_index":19010,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(allforfinishedcoursesandlessons.query",{"_index":19009,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(closedforopencoursesandlessons.query",{"_index":19008,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(parentidscope.query",{"_index":19023,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.afterduedateornone(filters.afterduedateornone",{"_index":19030,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.allowemptyquery(true",{"_index":5793,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byavailable(filters?.availableon",{"_index":19034,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byclasses(filters.classes",{"_index":12486,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bycontextid(query.context?.id",{"_index":5791,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycontexttype(query.context?.type",{"_index":5792,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycourseids([courseid",{"_index":19036,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.bycourseids(courseids",{"_index":13889,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.bycreator(creatorid",{"_index":14744,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bydraft(false",{"_index":19028,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfinished(filters.finished.userid",{"_index":19025,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfirstname(filters.firstname",{"_index":12478,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byhidden(filters.hidden",{"_index":13891,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.byid(query.id",{"_index":5789,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bylastname(filters.lastname",{"_index":12480,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byloginname(filters.loginname",{"_index":12482,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bymatches(filters.matches",{"_index":12488,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bypublished",{"_index":14740,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byrole(filters.role",{"_index":12484,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschool(school",{"_index":12476,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschoolid(query.schoolid",{"_index":17403,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byschooltoolid(query.schooltoolref?.schooltoolid",{"_index":5790,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bytargets(targets",{"_index":14739,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bytoolid(query.toolid",{"_index":17404,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byunpublished",{"_index":14743,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byusermatch(user",{"_index":12474,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.enum",{"_index":20997,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["scope.excludedraftsofothers(creatorid",{"_index":19038,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludedraftsofothers(parentids.creatorid",{"_index":19027,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludeunavailableofothers(parentids.creatorid",{"_index":19032,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.foractivecourses",{"_index":6803,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forallgrouptypes(userid",{"_index":6801,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forcourseid(courseid",{"_index":6812,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacher(userid",{"_index":6808,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacherorsubstituteteacher(userid",{"_index":6811,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.id",{"_index":20969,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.isflagged(true",{"_index":12490,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.name",{"_index":20542,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["scope.nofutureavailabledate",{"_index":19040,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.params.ts",{"_index":21204,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:12",{"_index":21208,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:8",{"_index":21206,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.query",{"_index":5786,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SystemRepo.html":{},"injectables/UserDORepo.html":{}}}],["scope.request",{"_index":9439,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["scope.scope",{"_index":20973,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.target",{"_index":14853,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope.targetid",{"_index":19285,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.targetmodel",{"_index":19287,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.transient",{"_index":13417,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["scope.ts",{"_index":9888,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:10",{"_index":13937,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:13",{"_index":9895,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:15",{"_index":18688,"title":{},"body":{"classes/SystemScope.html":{}}}],["scope.ts:17",{"_index":19107,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:19",{"_index":9902,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:25",{"_index":9904,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:31",{"_index":9897,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:37",{"_index":14779,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:39",{"_index":19105,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:45",{"_index":19102,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:5",{"_index":13936,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:52",{"_index":19109,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:60",{"_index":19099,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:66",{"_index":19116,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:7",{"_index":9900,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:73",{"_index":19111,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:8",{"_index":14781,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:83",{"_index":19097,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:89",{"_index":19115,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:95",{"_index":19113,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.withldapconfig",{"_index":18665,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoauthconfig",{"_index":18667,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoidcconfig",{"_index":18669,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope:11",{"_index":5883,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:13",{"_index":5881,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:31",{"_index":5895,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:35",{"_index":5897,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:9",{"_index":5884,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope?.target",{"_index":14850,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope?.unpublished",{"_index":14833,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scoped",{"_index":19208,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopeid",{"_index":9369,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/IScopeInfo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{}}}],["scopeinfo",{"_index":20960,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["scopeinfo.logouturl",{"_index":20983,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["scopeinfo.scopeid",{"_index":20975,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["scopemapping",{"_index":8932,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterdo.scope",{"_index":9038,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterparam.scope",{"_index":8977,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["scopename",{"_index":11744,"title":{},"body":{"interfaces/IScopeInfo.html":{},"injectables/VideoConferenceService.html":{}}}],["scopeoperator",{"_index":5882,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scopeparams",{"_index":20878,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopeparams.scope",{"_index":20916,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopepermission",{"_index":19207,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopepermissions",{"_index":19206,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scoperef",{"_index":17725,"title":{"classes/ScopeRef.html":{}},"body":{"classes/ScopeRef.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scoperef(scopeparams.scopeid",{"_index":20915,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopes",{"_index":137,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/ConsentResponse.html":{},"injectables/IdTokenService.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"controllers/NewsController.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["scopes.includes(oauthscope.email",{"_index":12172,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.groups",{"_index":12166,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.profile",{"_index":12174,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.map(async",{"_index":285,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["scopes/rules/permissions/user",{"_index":23125,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scripts",{"_index":21795,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["sdk",{"_index":21359,"title":{},"body":{"dependencies.html":{}}}],["sdk/client",{"_index":7820,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["sdk/lib",{"_index":17118,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["search",{"_index":1005,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/IdentityManagementService.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["search.params.ts",{"_index":9064,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.params.ts:13",{"_index":9066,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["search.params.ts:8",{"_index":9067,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.query.params.ts",{"_index":1027,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["search.query.params.ts:14",{"_index":1032,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["search.query.params.ts:22",{"_index":1033,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["searchability",{"_index":22634,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["searchaccounts",{"_index":487,"title":{},"body":{"controllers/AccountController.html":{}}}],["searchaccounts(currentuser",{"_index":528,"title":{},"body":{"controllers/AccountController.html":{}}}],["searchbyusername",{"_index":882,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchbyusername(username",{"_index":901,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchbyusernameexactmatch",{"_index":19,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernameexactmatch(username",{"_index":67,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernamepartialmatch",{"_index":20,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernamepartialmatch(username",{"_index":69,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["searches",{"_index":19598,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["searching",{"_index":12551,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["searchoptions",{"_index":12229,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["searchparams",{"_index":20360,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchparams.userid",{"_index":20364,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchquery",{"_index":8982,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["searchuser",{"_index":11903,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["searchusername",{"_index":943,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchuserpassword",{"_index":11904,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["second",{"_index":2726,"title":{},"body":{"entities/Board.html":{},"injectables/S3ClientAdapter.html":{}}}],["secondarily",{"_index":21742,"title":{},"body":{"license.html":{}}}],["secondary",{"_index":21696,"title":{},"body":{"license.html":{}}}],["secondchar",{"_index":6466,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["seconds",{"_index":5391,"title":{},"body":{"classes/ConsentRequestBody.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"classes/LoginRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["secret",{"_index":1696,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/JwtConstants.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application.html":{}}}],["secret.value",{"_index":14257,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["secretaccesskey",{"_index":6168,"title":{},"body":{"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IStorageProviderProperties.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"entities/StorageProviderEntity.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["secretdata",{"_index":13190,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["secretorkey",{"_index":12701,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["secrets",{"_index":11280,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["section",{"_index":15253,"title":{},"body":{"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sections",{"_index":21895,"title":{},"body":{"license.html":{}}}],["secure",{"_index":15783,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["secure_launch_url",{"_index":5127,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["security",{"_index":9600,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"classes/SystemResponseMapper.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["security.controller.ts",{"_index":9931,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:15",{"_index":9937,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:29",{"_index":9940,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["securitycheck",{"_index":9565,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["securitycheck.requesttoken",{"_index":9739,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["securitycheckstatus",{"_index":6109,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["see",{"_index":722,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ApiValidationError.html":{},"injectables/AuthorizationService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordFactory.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalValidationPipe.html":{},"modules/H5PEditorModule.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserFactory.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SchoolExternalToolFactory.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionFactory.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seed",{"_index":7657,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["seed(options",{"_index":11605,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["seed.service",{"_index":12838,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["seed.service.ts",{"_index":13208,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:12",{"_index":13212,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:18",{"_index":13217,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:33",{"_index":13213,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:52",{"_index":13214,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:86",{"_index":13215,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:91",{"_index":13216,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seedcollections",{"_index":7647,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["seedcollections(options",{"_index":7656,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["seeddata",{"_index":22717,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["seeddatabasecollectionsfromfactories(collections",{"_index":11171,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeddatabasecollectionsfromfilesystem(collections",{"_index":11186,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeded",{"_index":13163,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["seededcollectionswithamount",{"_index":11182,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seededcollectionswithamount.push(`${collectionname}:${importeddocumentsamount",{"_index":11206,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeding",{"_index":13236,"title":{},"body":{"classes/KeycloakSeedService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["seeds",{"_index":11604,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["seems",{"_index":22291,"title":{},"body":{"todo.html":{}}}],["segregation",{"_index":22455,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sehr",{"_index":4800,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["select",{"_index":23088,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["selectconfigureaction",{"_index":12854,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selectconfigureaction(newconfigs",{"_index":12881,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selected",{"_index":13340,"title":{},"body":{"injectables/LdapStrategy.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"todo.html":{}}}],["selectedrules",{"_index":17076,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule",{"_index":17051,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule(user",{"_index":17057,"title":{},"body":{"injectables/RuleManager.html":{}}}],["self",{"_index":23032,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sell",{"_index":22100,"title":{},"body":{"license.html":{}}}],["selling",{"_index":22084,"title":{},"body":{"license.html":{}}}],["semiconductor",{"_index":21726,"title":{},"body":{"license.html":{}}}],["senario",{"_index":22739,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["send",{"_index":1427,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"additional-documentation/nestjs-application.html":{}}}],["send(data",{"_index":1745,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/TestApiClient.html":{}}}],["send(params",{"_index":1753,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["send(requesttoken",{"_index":1434,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["sendauthenticationcodetokenrequest",{"_index":15199,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendauthenticationcodetokenrequest(tokenendpoint",{"_index":15206,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendhttpresponse",{"_index":10471,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sendhttpresponse(error",{"_index":10488,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sending",{"_index":22503,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sense",{"_index":1923,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sensible",{"_index":18527,"title":{},"body":{"controllers/SystemController.html":{}}}],["sent",{"_index":18885,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sentence",{"_index":1512,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["separable",{"_index":21935,"title":{},"body":{"license.html":{}}}],["separate",{"_index":13422,"title":{},"body":{"injectables/LegacyLogger.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["separated",{"_index":15251,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["separately",{"_index":21881,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["seperate",{"_index":21594,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seperated",{"_index":22513,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seperation",{"_index":21593,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sequence",{"_index":674,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/ShareTokenFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["sequence}@example.com",{"_index":12355,"title":{},"body":{"classes/ImportUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["sequence}displayname",{"_index":18596,"title":{},"body":{"classes/SystemFactory.html":{}}}],["serialization",{"_index":18165,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"todo.html":{}}}],["serialize",{"_index":3846,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["serialize(documents",{"_index":3856,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serializedprimarykey",{"_index":2497,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/VideoConferenceInfo.html":{}}}],["serializes",{"_index":3858,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serve",{"_index":21442,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["served",{"_index":22413,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server",{"_index":2116,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/ConsentRequestBody.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/LegacyLogger.html":{},"injectables/LessonCopyService.html":{},"classes/LoginRequestBody.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["server.config",{"_index":17790,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["server.console",{"_index":17748,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["server.module.ts",{"_index":14423,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["server.module.ts:36",{"_index":14429,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["server/blob/main/apps/server/src/modules/authorization/readme.md",{"_index":22432,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/config/readme.md",{"_index":22431,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/src/services/lesson/hooks/index.js#l232",{"_index":23118,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["server/overview.html",{"_index":22294,"title":{},"body":{"todo.html":{}}}],["server/pull/2729#pullrequestreview",{"_index":22271,"title":{},"body":{"todo.html":{}}}],["server/server.config",{"_index":832,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{}}}],["server_options_path='/tmp/config/server",{"_index":22921,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["serverconfig",{"_index":11763,"title":{},"body":{"interfaces/IServerConfig.html":{},"modules/ManagementModule.html":{},"controllers/RoomsController.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["serverconsole",{"_index":17727,"title":{"classes/ServerConsole.html":{}},"body":{"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{}}}],["serverconsolemodule",{"_index":17739,"title":{"modules/ServerConsoleModule.html":{}},"body":{"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["servercontroller",{"_index":17750,"title":{"controllers/ServerController.html":{}},"body":{"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servermodule",{"_index":17753,"title":{"modules/ServerModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["servermodules",{"_index":17791,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servers",{"_index":21707,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["servertestmodule",{"_index":17832,"title":{"modules/ServerTestModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["serves",{"_index":21787,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["service",{"_index":766,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageUc.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/GroupModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonModule.html":{},"injectables/LessonUC.html":{},"modules/LtiToolModule.html":{},"injectables/NexboardService.html":{},"injectables/PermissionService.html":{},"modules/PseudonymModule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskUC.html":{},"modules/TeamsModule.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolController.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["service(logic",{"_index":23121,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["service.create(data",{"_index":8262,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["service.find",{"_index":9372,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.get",{"_index":22611,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.get(userid",{"_index":9367,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.mapper",{"_index":9111,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["service.mapper.ts",{"_index":9164,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.mapper.ts:7",{"_index":9167,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.module.ts",{"_index":15680,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["service.provider",{"_index":8256,"title":{},"body":{"injectables/EtherpadService.html":{},"modules/FeathersModule.html":{},"injectables/NexboardService.html":{}}}],["service.provider.ts",{"_index":9427,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.provider.ts:13",{"_index":9435,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:19",{"_index":9433,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:24",{"_index":9430,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:38",{"_index":9452,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.provider.ts:41",{"_index":9453,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.ts",{"_index":1937,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.ts:10",{"_index":1944,"title":{},"body":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["service.ts:5",{"_index":1938,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{}}}],["service/board",{"_index":3805,"title":{},"body":{"injectables/BoardUc.html":{}}}],["service/cache.service",{"_index":3914,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["service/common",{"_index":6595,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["service/copy",{"_index":6240,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/FilesStorageClientModule.html":{}}}],["service/dto",{"_index":15735,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["service/dto/page",{"_index":16026,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["service/files",{"_index":10165,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/hydra.service",{"_index":10954,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{}}}],["service/id",{"_index":15637,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["service/keycloak",{"_index":12759,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"modules/KeycloakModule.html":{}}}],["service/oauth",{"_index":15400,"title":{},"body":{"modules/OauthModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["service/oauth.service",{"_index":10955,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{}}}],["service/oidc",{"_index":15994,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["service/preview.service",{"_index":10264,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["service/provisioning.service",{"_index":16310,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["service/rooms.service",{"_index":17031,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["service/strategy",{"_index":19767,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["service/submission",{"_index":8090,"title":{},"body":{"injectables/ElementUc.html":{}}}],["service/system",{"_index":18628,"title":{},"body":{"modules/SystemModule.html":{}}}],["service/user.service",{"_index":20668,"title":{},"body":{"modules/UserModule.html":{}}}],["servicedto",{"_index":19267,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["serviceoptions",{"_index":18070,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.context",{"_index":18072,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.expiresat",{"_index":18076,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoutputtypes",{"_index":17116,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["services",{"_index":9419,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/LearnroomApiModule.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["services/account",{"_index":829,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/account.service",{"_index":827,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/account.validation.service",{"_index":828,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/authentication.service",{"_index":1651,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.html":{}}}],["services/dto/account.dto",{"_index":638,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["services/dto/team",{"_index":19307,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["services/dto/team.dto",{"_index":19268,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["services/ldap.service",{"_index":1652,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["serviceunavailableexception",{"_index":13164,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["servicing",{"_index":22186,"title":{},"body":{"license.html":{}}}],["session",{"_index":346,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/VideoConferenceCreateParams.html":{},"dependencies.html":{}}}],["session.consent_request.challenge",{"_index":15660,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_id",{"_index":15658,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_name",{"_index":15659,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.destroy((err",{"_index":15744,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["session.oauthloginstate",{"_index":15758,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["session.response",{"_index":10890,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{}}}],["session.response.ts",{"_index":5467,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["session.response.ts:13",{"_index":5475,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:16",{"_index":5476,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:19",{"_index":5474,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:4",{"_index":5471,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session_id",{"_index":14127,"title":{},"body":{"classes/LoginResponse-1.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["session_token",{"_index":2250,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["sessionduration",{"_index":17801,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessionhandler",{"_index":15697,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessionhandler(session",{"_index":15720,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessions",{"_index":15565,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessions.map",{"_index":15567,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["set",{"_index":728,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BaseFactory.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileRecordFactory.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"modules/InterceptorModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LoginRequestBody.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MigrationBody.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SortingParams.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SystemFactory.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"miscellaneous/functions.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["set('authorization",{"_index":1742,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(caseinsensitivenames",{"_index":5341,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["set(headerconst.accept",{"_index":1751,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(memberids",{"_index":11835,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["set(permissions",{"_index":11681,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["set(tasksubmitterids",{"_index":12036,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["setcaption(value",{"_index":9523,"title":{},"body":{"classes/FileElement.html":{}}}],["setcompleted(value",{"_index":18284,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setcontext",{"_index":13396,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontext(context",{"_index":4697,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["setcontext(name",{"_index":13405,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcookies",{"_index":11018,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setcookies.foreach((item",{"_index":11060,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setduedate(value",{"_index":18218,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["setgroupname",{"_index":10556,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setgroupname(newgroupname",{"_index":7318,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setheight(height",{"_index":3993,"title":{},"body":{"classes/Card.html":{}}}],["setheightbodyparams",{"_index":4032,"title":{"classes/SetHeightBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/SetHeightBodyParams.html":{}}}],["setinputformat(value",{"_index":16739,"title":{},"body":{"classes/RichTextElement.html":{}}}],["setlearnrooms",{"_index":7267,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["setlearnrooms(rooms",{"_index":7306,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setmatch",{"_index":12268,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(urlparams",{"_index":12287,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(user",{"_index":11489,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["setmigration",{"_index":13449,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolid",{"_index":13620,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolparams",{"_index":13457,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["setmigrationmandatory",{"_index":19476,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(currentuser",{"_index":20275,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["setmigrationmandatory(schoolid",{"_index":20445,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(userid",{"_index":19479,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["setname(name",{"_index":9765,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["setpasswordpolicy",{"_index":12773,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["setrequireduserrole(userroleenum",{"_index":3097,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["sets",{"_index":4638,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ConsentRequestBody.html":{},"classes/IdentityManagementService.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["setschool(value",{"_index":19357,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setstrategy",{"_index":4489,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["setstrategy(strategy",{"_index":4502,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["settedlanguage",{"_index":20807,"title":{},"body":{"injectables/UserUc.html":{}}}],["settext(value",{"_index":16735,"title":{},"body":{"classes/RichTextElement.html":{}}}],["settimeout",{"_index":17180,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["settimeout(resolve",{"_index":11629,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["setting",{"_index":6759,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["settings",{"_index":22626,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["settings.interface",{"_index":2335,"title":{},"body":{"injectables/BBBService.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["settings.interface.ts",{"_index":11095,"title":{},"body":{"interfaces/IBbbSettings.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IVideoConferenceSettings.html":{}}}],["settings.response",{"_index":4110,"title":{},"body":{"classes/CardResponse.html":{}}}],["settings.response.ts",{"_index":21306,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:3",{"_index":21308,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:9",{"_index":21309,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settitle(title",{"_index":3989,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{}}}],["setup",{"_index":3462,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICollectionFilePath.html":{},"modules/InterceptorModule.html":{},"interfaces/Options.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["setup:db",{"_index":22917,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm",{"_index":22344,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:configure",{"_index":22957,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:seed",{"_index":22956,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setuppath",{"_index":11188,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["setupsessions",{"_index":17800,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["setupsessions(consumer",{"_index":17826,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["setuser(value",{"_index":19353,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setuserattribute",{"_index":12210,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserattribute(userid",{"_index":12237,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserid(value",{"_index":18287,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setuserstatus(authtoken",{"_index":1325,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["sha",{"_index":2368,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.digest('hex",{"_index":2372,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.update(callname",{"_index":2370,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha1",{"_index":2306,"title":{},"body":{"injectables/BBBService.html":{},"injectables/Lti11EncryptionService.html":{}}}],["shall",{"_index":16473,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["share",{"_index":17875,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenResponse.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"license.html":{}}}],["shared",{"_index":17857,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/common",{"_index":558,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationErrorResponse.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"classes/BruteForceError.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CurrentUserMapper.html":{},"controllers/ElementController.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICoreModuleConfig.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapConnectionError.html":{},"controllers/LoginController.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"controllers/RoomsController.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"controllers/ShareTokenController.html":{},"injectables/SubmissionItemService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{},"modules/VideoConferenceModule.html":{}}}],["shared/common/loggable",{"_index":10722,"title":{},"body":{"injectables/GroupService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["shared/common/utils",{"_index":2332,"title":{},"body":{"injectables/BBBService.html":{}}}],["shared/common/utils/guard",{"_index":14005,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["shared/controller",{"_index":469,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseUc.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PreviewParams.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SystemFilterParams.html":{},"controllers/TaskController.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{},"classes/UpdateNewsParams.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["shared/controller/index",{"_index":378,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["shared/controller/transformer",{"_index":10364,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["shared/core",{"_index":22581,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/domain",{"_index":99,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"modules/AccountApiModule.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"interfaces/BaseResponseMapper.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardContextResponse.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ChangeLanguageParams.html":{},"entities/ClassEntity.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CurrentUserMapper.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/ExternalGroupUserDto.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileContentBody.html":{},"classes/FileDto-1.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterNewsParams.html":{},"classes/ForbiddenLoggableException.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IScopeInfo.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PreviewParams.html":{},"classes/ProvisioningSystemDto.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserMapper.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/ScopeRef.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"todo.html":{}}}],["shared/domain/domain",{"_index":1940,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/DomainObjectFactory.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"interfaces/UserBoardRoles.html":{}}}],["shared/domain/domainobject",{"_index":4092,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"classes/CurrentUserMapper.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OidcProvisioningService.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/ShareTokenDO.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["shared/domain/domainobject/base.do",{"_index":5614,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["shared/domain/domainobject/board/submission",{"_index":3185,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["shared/domain/domainobject/ltitool.do",{"_index":11022,"title":{},"body":{"injectables/HydraSsoService.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["shared/domain/domainobject/page",{"_index":8425,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["shared/domain/domainobject/user.do",{"_index":6943,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["shared/domain/entity",{"_index":1911,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BaseRepo.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskCopyService.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TeamRule.html":{},"classes/UserDO.html":{},"injectables/UserRule.html":{}}}],["shared/domain/entity/account.entity",{"_index":918,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["shared/domain/entity/base.entity",{"_index":4294,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/ShareToken.html":{}}}],["shared/domain/entity/external",{"_index":10655,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["shared/domain/entity/ltitool.entity",{"_index":7035,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/LtiToolDO.html":{}}}],["shared/domain/entity/materials.entity",{"_index":14442,"title":{},"body":{"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{}}}],["shared/domain/entity/school.entity",{"_index":10657,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ITaskParent.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/UserLoginMigration.html":{}}}],["shared/domain/entity/system.entity",{"_index":20209,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["shared/domain/entity/user",{"_index":11696,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["shared/domain/entity/video",{"_index":21171,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["shared/domain/index",{"_index":15436,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["shared/domain/interface",{"_index":4821,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"entities/Course.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"injectables/TaskRepo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["shared/domain/interface/permission.enum",{"_index":13836,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["shared/domain/interface/system",{"_index":11851,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{}}}],["shared/domain/interface/video",{"_index":20996,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["shared/domain/rules",{"_index":1979,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{}}}],["shared/domain/rules/context",{"_index":17059,"title":{},"body":{"injectables/RuleManager.html":{}}}],["shared/domain/rules/user",{"_index":17061,"title":{},"body":{"injectables/RuleManager.html":{}}}],["shared/domain/types",{"_index":2586,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardExternalReference.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ContentElementFactory.html":{},"injectables/CopyHelperService.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/DashboardEntity.html":{},"injectables/EtherpadService.html":{},"classes/GridElement.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"classes/LegacySchoolDo.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"injectables/NexboardService.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/ShareTokenDO.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{}}}],["shared/domain/types/entity",{"_index":11770,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["shared/domain/types/input",{"_index":11959,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["shared/domain/types/session",{"_index":15385,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["shared/infra/antivirus/antivirus.module",{"_index":10255,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["shared/infra/cache",{"_index":1641,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/OauthModule.html":{}}}],["shared/infra/cache/interface/cache",{"_index":12728,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["shared/infra/calendar",{"_index":21141,"title":{},"body":{"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["shared/infra/calendar/dto/calendar",{"_index":3943,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/interface/calendar",{"_index":3941,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["shared/infra/calendar/mapper/calendar.mapper",{"_index":3958,"title":{},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/service/calendar.service",{"_index":3957,"title":{},"body":{"modules/CalendarModule.html":{}}}],["shared/infra/collaborative",{"_index":4514,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["shared/infra/console",{"_index":3456,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"modules/ManagementModule.html":{},"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{}}}],["shared/infra/console/console",{"_index":7664,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["shared/infra/database",{"_index":10321,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/database/mongo",{"_index":10322,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["shared/infra/encryption",{"_index":8636,"title":{},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"modules/OauthModule.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["shared/infra/feathers",{"_index":1980,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"modules/LessonModule.html":{}}}],["shared/infra/feathers/feathers",{"_index":8255,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["shared/infra/file",{"_index":11110,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["shared/infra/identity",{"_index":802,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"interfaces/IServerConfig.html":{},"injectables/LocalStrategy.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{}}}],["shared/infra/mail",{"_index":17769,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/metrics",{"_index":16250,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["shared/infra/oauth",{"_index":8635,"title":{},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{}}}],["shared/infra/rabbitmq",{"_index":8206,"title":{},"body":{"classes/ErrorMapper.html":{},"classes/FileDto-1.html":{},"classes/FileRecordFactory.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/rabbitmq/rabbitmq.module",{"_index":10256,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{}}}],["shared/infra/rabbitmq/rpc",{"_index":10186,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{}}}],["shared/infra/redis",{"_index":17770,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/s3",{"_index":9918,"title":{},"body":{"classes/FileResponseBuilder.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/IFileStorageConfig.html":{},"injectables/PreviewService.html":{},"classes/TestHelper.html":{}}}],["shared/pipes",{"_index":22606,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/repo",{"_index":450,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/AccountValidationService.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/FederalStateService.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"injectables/HydraSsoService.html":{},"interfaces/IRepoLoader.html":{},"injectables/IdTokenService.html":{},"modules/ImportUserModule.html":{},"injectables/LdapStrategy.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/LocalStrategy.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{},"injectables/MigrationCheckService.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"modules/OauthModule.html":{},"modules/OauthProviderModule.html":{},"injectables/ReferenceLoader.html":{},"modules/RoleModule.html":{},"injectables/RoleService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SubmissionService.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/TeamService.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"injectables/UserDORepo.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{},"modules/UserModule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["shared/repo/base.do.repo",{"_index":14347,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["shared/repo/base.repo",{"_index":919,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SystemRepo.html":{},"injectables/UserRepo.html":{}}}],["shared/repo/ltitool",{"_index":4559,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["shared/repo/scope",{"_index":9060,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["shared/repo/storageprovider",{"_index":7822,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["shared/repo/system/system",{"_index":18663,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["shared/repo/types/storageproviderencryptedstring.type",{"_index":11779,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["shared/repo/user/user",{"_index":20666,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["shared/repo/videoconference/video",{"_index":21142,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/testing",{"_index":3499,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/ClassFactory.html":{}}}],["shared/testing/factory/base.factory",{"_index":4328,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/LtiToolFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/role.factory",{"_index":19366,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/school.factory",{"_index":19363,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/teamuser.factory",{"_index":19258,"title":{},"body":{"classes/TeamFactory.html":{}}}],["shared/testing/factory/user.factory",{"_index":19364,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/types",{"_index":14644,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["shared/utils",{"_index":22582,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators",{"_index":22600,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators/text.validator.ts",{"_index":22585,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sharetoken",{"_index":6368,"title":{"entities/ShareToken.html":{}},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetoken(props",{"_index":17985,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["sharetoken.context",{"_index":18082,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.expiresat",{"_index":18005,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{}}}],["sharetoken.payload",{"_index":18004,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetoken.payload.parentid",{"_index":18085,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.payload.parenttype",{"_index":18032,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetoken.token",{"_index":18003,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenbodyparams",{"_index":17849,"title":{"classes/ShareTokenBodyParams.html":{}},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{}}}],["sharetokencontext",{"_index":17921,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype",{"_index":11767,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype.school",{"_index":18073,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper",{"_index":17865,"title":{"classes/ShareTokenContextTypeMapper.html":{}},"body":{"classes/ShareTokenContextTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper.maptoallowedauthorizationentitytype(context.contexttype",{"_index":18095,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontroller",{"_index":17868,"title":{"controllers/ShareTokenController.html":{}},"body":{"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokendo",{"_index":17917,"title":{"classes/ShareTokenDO.html":{}},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenfactory",{"_index":17931,"title":{"classes/ShareTokenFactory.html":{}},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenfactory.define",{"_index":17939,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenimportbodyparams",{"_index":17882,"title":{"classes/ShareTokenImportBodyParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{}}}],["sharetokeninfo",{"_index":17909,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninfo.parentname",{"_index":17960,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.parenttype",{"_index":17959,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.token",{"_index":17958,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfodto",{"_index":17946,"title":{"interfaces/ShareTokenInfoDto.html":{}},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninforesponse",{"_index":17897,"title":{"classes/ShareTokenInfoResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper",{"_index":17894,"title":{"classes/ShareTokenInfoResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper.maptoresponse(sharetokeninfo",{"_index":17912,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokeninforesponse})@apiresponse({status",{"_index":17891,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenparenttype",{"_index":11768,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"classes/MetadataTypeMapper.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.course",{"_index":17940,"title":{},"body":{"classes/ShareTokenFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.lesson",{"_index":18034,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.task",{"_index":18036,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper",{"_index":17961,"title":{"classes/ShareTokenParentTypeMapper.html":{}},"body":{"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(parenttype",{"_index":18097,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(payload.parenttype",{"_index":18091,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenpayload",{"_index":17923,"title":{},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenpayloadresponse",{"_index":17965,"title":{"classes/ShareTokenPayloadResponse.html":{}},"body":{"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["sharetokenpayloadresponse(payload",{"_index":18001,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["sharetokenrepo",{"_index":17973,"title":{"injectables/ShareTokenRepo.html":{}},"body":{"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenresponse",{"_index":17898,"title":{"classes/ShareTokenResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper",{"_index":17895,"title":{"classes/ShareTokenResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper.maptoresponse(sharetoken",{"_index":17906,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenresponse})@apiresponse({status",{"_index":17877,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokens",{"_index":9566,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["sharetokenservice",{"_index":18006,"title":{"injectables/ShareTokenService.html":{}},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenstring",{"_index":11769,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/TokenGenerator.html":{}}}],["sharetokenuc",{"_index":17896,"title":{"injectables/ShareTokenUC.html":{}},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenurlparams",{"_index":17881,"title":{"classes/ShareTokenUrlParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenUrlParams.html":{}}}],["sharingapimodule",{"_index":17756,"title":{"modules/SharingApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["sharingmodule",{"_index":18110,"title":{"modules/SharingModule.html":{}},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["shit",{"_index":6412,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["short",{"_index":6702,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["shorter",{"_index":22876,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["shortid",{"_index":21417,"title":{},"body":{"dependencies.html":{}}}],["shorttitle",{"_index":6471,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{}}}],["shouldincrementversion",{"_index":9302,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["shouldskipconsent",{"_index":15595,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldskipconsent(tool",{"_index":15603,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldusermigrate",{"_index":14462,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{}}}],["shouldusermigrate(externaluserid",{"_index":14465,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["show",{"_index":14805,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/SystemController.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["show_outdated_users",{"_index":11707,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["showoutdatedusers",{"_index":11708,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["sid",{"_index":14139,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["side",{"_index":2299,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sideeffects",{"_index":23136,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["sign",{"_index":14163,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"license.html":{}}}],["sign(key",{"_index":14164,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["signalgorithm",{"_index":1685,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signature_method",{"_index":14171,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["signedpayload",{"_index":14255,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["significant",{"_index":21957,"title":{},"body":{"license.html":{}}}],["signing",{"_index":1684,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signoptions",{"_index":1647,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["similar",{"_index":21716,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["simple",{"_index":22464,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["simplicity",{"_index":22307,"title":{},"body":{"todo.html":{}}}],["simplification",{"_index":22546,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["simplify",{"_index":22743,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["simply",{"_index":21614,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["simultaneously",{"_index":22147,"title":{},"body":{"license.html":{}}}],["sind",{"_index":4789,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["single",{"_index":3262,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/ElementController.html":{},"classes/GlobalValidationPipe.html":{},"injectables/NewsUc.html":{},"interfaces/Options.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["single(bn",{"_index":3271,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single(boardnode",{"_index":3272,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single:latestdocker",{"_index":22933,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["single:latestthe",{"_index":22934,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["singlecolumnboardresponse",{"_index":16872,"title":{"classes/SingleColumnBoardResponse.html":{}},"body":{"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["singlefileparams",{"_index":6135,"title":{"classes/SingleFileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["singlevaluetoarraytransformer",{"_index":10348,"title":{},"body":{"classes/FilterImportUserParams.html":{},"miscellaneous/functions.html":{}}}],["situations",{"_index":23015,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["six",{"_index":9978,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["size",{"_index":1015,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/DeleteFilesConsole.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolSearchListResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/PaginationResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{}}}],["sizetype",{"_index":7435,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["skeleton",{"_index":2944,"title":{},"body":{"controllers/BoardController.html":{}}}],["skeleton.response",{"_index":4893,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["skeleton.response.ts",{"_index":4162,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:12",{"_index":4164,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:18",{"_index":4173,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:3",{"_index":4163,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skip",{"_index":70,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ConsentResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IFindOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IPagination.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"classes/LoginResponse-1.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{}}}],["skipconsent",{"_index":6989,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["skipped",{"_index":1020,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/GlobalValidationPipe.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["slash",{"_index":22299,"title":{},"body":{"todo.html":{}}}],["slow",{"_index":11200,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["small",{"_index":22456,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sn",{"_index":11912,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["socketio",{"_index":21445,"title":{},"body":{"dependencies.html":{}}}],["software",{"_index":21653,"title":{"additional-documentation/nestjs-application/software-architecture.html":{}},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sold",{"_index":21944,"title":{},"body":{"license.html":{}}}],["sole",{"_index":21815,"title":{},"body":{"license.html":{}}}],["solely",{"_index":21823,"title":{},"body":{"license.html":{}}}],["solution",{"_index":3103,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["solutions",{"_index":22230,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["solve",{"_index":19041,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["somemethod",{"_index":22666,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["someotherservice",{"_index":22520,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["something",{"_index":12133,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sometimes",{"_index":23114,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sonstige",{"_index":17215,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sonstige_gruppenzugehoerige",{"_index":17213,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{}}}],["soon",{"_index":23024,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sort",{"_index":9181,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sort((a",{"_index":17306,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sort.id",{"_index":9182,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["sort.name",{"_index":9183,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sort.params.ts",{"_index":18129,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["sortby",{"_index":3032,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortby(resolved",{"_index":3087,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder",{"_index":2991,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder(resolved",{"_index":3016,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos",{"_index":3086,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos.map",{"_index":3088,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortedbsondocuments",{"_index":11217,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["sortedchildren",{"_index":3253,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["sortexternaltoolparams",{"_index":8924,"title":{"classes/SortExternalToolParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/SortExternalToolParams.html":{},"controllers/ToolController.html":{}}}],["sortimportuserparams",{"_index":12275,"title":{"classes/SortImportUserParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["sorting",{"_index":18959,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["sorting.mapper.ts",{"_index":9177,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.mapper.ts:7",{"_index":9180,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.ts",{"_index":22267,"title":{},"body":{"todo.html":{}}}],["sortingparams",{"_index":18130,"title":{"classes/SortingParams.html":{}},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortingparams:14",{"_index":18133,"title":{},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingparams:18",{"_index":18135,"title":{},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingquery",{"_index":8926,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"controllers/ToolController.html":{}}}],["sortingquery.sortorder",{"_index":8981,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["sortorder",{"_index":6844,"title":{},"body":{"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/LessonRepo.html":{},"injectables/NewsUc.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.asc",{"_index":7633,"title":{},"body":{"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/LessonRepo.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.desc",{"_index":6845,"title":{},"body":{"injectables/CourseUc.html":{},"injectables/FileRecordRepo.html":{},"injectables/NewsUc.html":{},"injectables/TaskUC.html":{},"injectables/UserRepo.html":{}}}],["sortordermap",{"_index":8927,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/ImportUserMapper.html":{},"injectables/UserDORepo.html":{}}}],["sortreferences",{"_index":7322,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["source",{"_index":4,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"license.html":{}}}],["source.entity",{"_index":10656,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["source.entity.ts",{"_index":8313,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["source.entity.ts:13",{"_index":8316,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.entity.ts:16",{"_index":8315,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.person.name.familienname",{"_index":17293,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.person.name.vorname",{"_index":17292,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].gruppen",{"_index":17297,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].id",{"_index":17304,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.id.tostring",{"_index":17291,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.kennung.replace",{"_index":17288,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.name",{"_index":17290,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.pid",{"_index":17295,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.ts",{"_index":8308,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:2",{"_index":8310,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:4",{"_index":8309,"title":{},"body":{"classes/ExternalSource.html":{}}}],["sourcecode",{"_index":22552,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sourcedescription",{"_index":6729,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["sourceexternalid",{"_index":17604,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["sourcefile",{"_index":21520,"title":{},"body":{"miscellaneous/functions.html":{}}}],["sourcefilerecordid",{"_index":21523,"title":{},"body":{"miscellaneous/functions.html":{}}}],["sourceid",{"_index":6067,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"injectables/CopyFilesService.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"injectables/UserMigrationService.html":{}}}],["sourceoptions",{"_index":4234,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["sourceparent",{"_index":3386,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparent.removechild(child",{"_index":3388,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourcepath",{"_index":6160,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["sources",{"_index":22364,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sourceschoolnumber",{"_index":20512,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["sourcesystem",{"_index":16034,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemid",{"_index":20327,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl",{"_index":20624,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl.tostring",{"_index":20627,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcetype",{"_index":14658,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["space",{"_index":745,"title":{},"body":{"classes/AccountFactory.html":{},"classes/OauthClientBody.html":{}}}],["spalten",{"_index":4759,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["spare",{"_index":21906,"title":{},"body":{"license.html":{}}}],["sparse",{"_index":6426,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{}}}],["speak",{"_index":21678,"title":{},"body":{"license.html":{}}}],["spec.ts",{"_index":22387,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["special",{"_index":21984,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["specialized",{"_index":22454,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specific",{"_index":1295,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BoardElementResponse.html":{},"controllers/CollaborativeStorageController.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FilterNewsParams.html":{},"classes/IdentityManagementService.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SingleColumnBoardResponse.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["specifically",{"_index":21665,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["specification",{"_index":22625,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specifications",{"_index":22685,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specified",{"_index":4639,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/GuardAgainst.html":{},"license.html":{}}}],["specifies",{"_index":19781,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{},"license.html":{}}}],["specify",{"_index":22171,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["spies",{"_index":22802,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["spirit",{"_index":22163,"title":{},"body":{"license.html":{}}}],["split",{"_index":13625,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["splitting",{"_index":23120,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sql",{"_index":961,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["squashed",{"_index":22884,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["src",{"_index":22551,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["src/config",{"_index":10262,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/core",{"_index":10092,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/core/error/dto/error.response",{"_index":3883,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/interface",{"_index":3884,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/loggable/error.loggable",{"_index":13332,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["src/core/error/utils",{"_index":1441,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ErrorMapper.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["src/core/logger",{"_index":1545,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"injectables/BaseDORepo.html":{},"modules/BoardApiModule.html":{},"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdTokenCreationLoggableException.html":{},"modules/ImportUserModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/LdapAlreadyPersistedException.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"modules/LessonModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["src/core/logger/interfaces",{"_index":10371,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/core/logger/logger.module",{"_index":825,"title":{},"body":{"modules/AccountModule.html":{}}}],["src/core/logger/logging.utils",{"_index":10490,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["src/core/logger/types",{"_index":10372,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/imports",{"_index":12732,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["src/modules",{"_index":11749,"title":{},"body":{"interfaces/IServerConfig.html":{},"modules/KeycloakConfigurationModule.html":{}}}],["src/modules/account",{"_index":1642,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{}}}],["src/modules/account/account",{"_index":17771,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/account/account.module",{"_index":16308,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["src/modules/account/services/account.service",{"_index":1807,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["src/modules/account/services/dto",{"_index":1808,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["src/modules/account/services/dto/account.dto",{"_index":981,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["src/modules/authentication",{"_index":559,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserService.html":{},"controllers/VideoConferenceController.html":{}}}],["src/modules/authentication/authentication",{"_index":17772,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/authentication/authentication.module",{"_index":10099,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/OauthApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{}}}],["src/modules/authentication/decorator/auth.decorator",{"_index":557,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["src/modules/authentication/interface",{"_index":21013,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["src/modules/authentication/interface/user",{"_index":16668,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserResponse.html":{}}}],["src/modules/authentication/mapper",{"_index":20779,"title":{},"body":{"injectables/UserService.html":{}}}],["src/modules/authentication/services/authentication.service",{"_index":15823,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/authentication/strategy/jwt",{"_index":1809,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["src/modules/authorization",{"_index":2767,"title":{},"body":{"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{},"modules/FilesStorageApiModule.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/GroupService.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["src/modules/authorization/authorization.helper",{"_index":3358,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["src/modules/authorization/authorization.service",{"_index":3803,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"classes/DtoCreator.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["src/modules/authorization/types",{"_index":3359,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextTypeMapper.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["src/modules/authorization/types/action.enum",{"_index":3804,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/SubmissionItemUc.html":{}}}],["src/modules/board",{"_index":4840,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{}}}],["src/modules/board/board",{"_index":17773,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/board/service",{"_index":11634,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["src/modules/class/entity",{"_index":4329,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["src/modules/collaborative",{"_index":4510,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/copy",{"_index":3026,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageClientModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{}}}],["src/modules/database",{"_index":22835,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["src/modules/files",{"_index":1444,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BoardCopyService.html":{},"classes/FileRecordFactory.html":{},"injectables/LessonCopyService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["src/modules/files/entity",{"_index":17745,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["src/modules/group",{"_index":8280,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisResponseMapper.html":{}}}],["src/modules/group/group",{"_index":17774,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/learnroom",{"_index":18066,"title":{},"body":{"injectables/ShareTokenUC.html":{},"modules/ToolLaunchModule.html":{}}}],["src/modules/learnroom/common",{"_index":11750,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["src/modules/learnroom/controller/dto/lesson/lesson",{"_index":6296,"title":{},"body":{"classes/CopyMapper.html":{}}}],["src/modules/learnroom/learnroom",{"_index":17775,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/learnroom/service",{"_index":190,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/VideoConferenceService.html":{}}}],["src/modules/learnroom/types",{"_index":3411,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["src/modules/legacy",{"_index":191,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"modules/ImportUserModule.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["src/modules/lesson",{"_index":13378,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{}}}],["src/modules/lesson/lesson",{"_index":17776,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/lesson/service",{"_index":3030,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["src/modules/lesson/types",{"_index":6298,"title":{},"body":{"classes/CopyMapper.html":{}}}],["src/modules/lti",{"_index":15584,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{}}}],["src/modules/management/management.module",{"_index":17746,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["src/modules/management/uc/database",{"_index":19428,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["src/modules/news",{"_index":17777,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/oauth",{"_index":349,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/oauth/controller/dto/authorization.params",{"_index":11023,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["src/modules/oauth/controller/dto/user",{"_index":15726,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["src/modules/oauth/error/oauth",{"_index":12625,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["src/modules/oauth/oauth",{"_index":17778,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/oauth/oauth.module",{"_index":1643,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["src/modules/oauth/service/dto/cookies.dto",{"_index":10991,"title":{},"body":{"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["src/modules/oauth/service/dto/hydra.redirect.dto",{"_index":10949,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["src/modules/oauth/service/oauth.service",{"_index":15157,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/oauth/uc/hydra",{"_index":15728,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["src/modules/provisioning",{"_index":15070,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/provisioning/dto",{"_index":15071,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/pseudonym",{"_index":4560,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolLaunchModule.html":{}}}],["src/modules/pseudonym/service",{"_index":15606,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["src/modules/rocketchat",{"_index":17779,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/role",{"_index":1644,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{}}}],["src/modules/role/role.module",{"_index":4615,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/UserModule.html":{}}}],["src/modules/role/service/dto/role.dto",{"_index":4518,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/RoleMapper.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["src/modules/role/service/role.service",{"_index":4644,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"modules/RoleModule.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["src/modules/role/uc/role.uc",{"_index":16809,"title":{},"body":{"modules/RoleModule.html":{}}}],["src/modules/server",{"_index":1810,"title":{},"body":{"injectables/AuthenticationService.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["src/modules/server/server.config",{"_index":805,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["src/modules/sharing/domainobject/share",{"_index":17937,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["src/modules/sharing/sharing.module",{"_index":17780,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/system",{"_index":1645,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{}}}],["src/modules/system/controller/dto/oauth",{"_index":16464,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["src/modules/system/controller/dto/system.filter.params",{"_index":18533,"title":{},"body":{"controllers/SystemController.html":{}}}],["src/modules/system/controller/system.controller",{"_index":18516,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["src/modules/system/mapper/system",{"_index":18648,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["src/modules/system/mapper/system.mapper",{"_index":18700,"title":{},"body":{"injectables/SystemService.html":{}}}],["src/modules/system/service",{"_index":12900,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/UserMigrationService.html":{}}}],["src/modules/system/service/dto",{"_index":12203,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["src/modules/system/service/dto/oauth",{"_index":18564,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["src/modules/system/service/dto/oidc",{"_index":18637,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["src/modules/system/service/dto/system.dto",{"_index":15824,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["src/modules/system/service/system",{"_index":12901,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["src/modules/system/service/system.service",{"_index":18627,"title":{},"body":{"modules/SystemModule.html":{},"injectables/SystemUc.html":{}}}],["src/modules/system/system",{"_index":17781,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/system/system.module",{"_index":16309,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["src/modules/system/uc/system.uc",{"_index":18517,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["src/modules/task",{"_index":13392,"title":{},"body":{"modules/LearnroomModule.html":{},"modules/LessonModule.html":{}}}],["src/modules/task/controller/dto/task",{"_index":6299,"title":{},"body":{"classes/CopyMapper.html":{}}}],["src/modules/task/service",{"_index":3031,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["src/modules/task/service/task",{"_index":13723,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["src/modules/task/task",{"_index":17782,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/task/types",{"_index":6300,"title":{},"body":{"classes/CopyMapper.html":{}}}],["src/modules/teams/teams",{"_index":17788,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/teams/teams.module",{"_index":19375,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["src/modules/tool",{"_index":1982,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{}}}],["src/modules/tool/common/domain",{"_index":5702,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["src/modules/tool/common/entity",{"_index":8837,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["src/modules/tool/common/enum",{"_index":5703,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolScope.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["src/modules/tool/common/enum/tool",{"_index":5776,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["src/modules/tool/common/interface",{"_index":8785,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["src/modules/tool/context",{"_index":5704,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["src/modules/tool/external",{"_index":7127,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["src/modules/tool/school",{"_index":5779,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{}}}],["src/modules/tool/tool",{"_index":15585,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/user",{"_index":4561,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"modules/VideoConferenceApiModule.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["src/modules/user/service/user",{"_index":20082,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["src/modules/user/uc/dto/user.dto",{"_index":20526,"title":{},"body":{"classes/UserMapper.html":{}}}],["src/modules/user/user",{"_index":17784,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/video",{"_index":17785,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["src/shared/domain/entity/lesson.entity",{"_index":4966,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["src/shared/domain/types",{"_index":20610,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["src/shared/infra/rabbitmq",{"_index":10190,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["sso",{"_index":15027,"title":{},"body":{"classes/OAuthSSOError.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sso.controller",{"_index":15235,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["sso.controller.ts",{"_index":15691,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:120",{"_index":15724,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:153",{"_index":15709,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:163",{"_index":15719,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:184",{"_index":15714,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:48",{"_index":15700,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:66",{"_index":15716,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:84",{"_index":15721,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:99",{"_index":15705,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.error",{"_index":10952,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso.error.ts",{"_index":15024,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:11",{"_index":15025,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:5",{"_index":15030,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:7",{"_index":15029,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:9",{"_index":15028,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso_auth_code_step",{"_index":10957,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["sso_internal_error",{"_index":15082,"title":{},"body":{"injectables/OAuthService.html":{}}}],["sso_jwt_problem",{"_index":12633,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["sso_user_not_found_after_provisioning",{"_index":20676,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso_user_notfound",{"_index":12640,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ssoauthenticationerror",{"_index":2001,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["ssoerror",{"_index":15743,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerror.errorcode",{"_index":15749,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerrorcode",{"_index":15031,"title":{},"body":{"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_jwt_problem",{"_index":15108,"title":{},"body":{"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_oauth_login_failed",{"_index":15026,"title":{},"body":{"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["ssologinquery",{"_index":15703,"title":{"classes/SSOLoginQuery.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/SSOLoginQuery.html":{}}}],["stack",{"_index":8537,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["stand",{"_index":4772,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["standard",{"_index":21777,"title":{},"body":{"license.html":{}}}],["standards",{"_index":21779,"title":{},"body":{"license.html":{}}}],["start",{"_index":1021,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DeleteFilesConsole.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"injectables/KeycloakMigrationService.html":{},"classes/ListOauthClientsParams.html":{},"classes/NewsListResponse.html":{},"classes/PaginationResponse.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["start(req",{"_index":20895,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["start.loggable.ts",{"_index":17561,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:11",{"_index":17563,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["start.loggable.ts:4",{"_index":17562,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:7",{"_index":20480,"title":{},"body":{"classes/UserLoginMigrationStartLoggable.html":{}}}],["startdate",{"_index":6369,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{}}}],["started",{"_index":1555,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/OauthUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["startedat",{"_index":20201,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startet",{"_index":23111,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["starting",{"_index":21588,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["startmigration",{"_index":18148,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startmigration(@currentuser",{"_index":20309,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(currentuser",{"_index":20282,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(schoolid",{"_index":20447,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["startmigration(userid",{"_index":18151,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["startoauthauthorizationcodeflow",{"_index":15698,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthauthorizationcodeflow(session",{"_index":15722,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthlogin",{"_index":15811,"title":{},"body":{"injectables/OauthUc.html":{}}}],["startoauthlogin(session",{"_index":15821,"title":{},"body":{"injectables/OauthUc.html":{}}}],["starts",{"_index":14084,"title":{},"body":{"controllers/LoginController.html":{},"additional-documentation/nestjs-application.html":{}}}],["startschoolinusermigration",{"_index":12269,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["startschoolinusermigration(currentuser",{"_index":12291,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["starttime",{"_index":2268,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["startup",{"_index":22942,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["startuserloginmigrationuc",{"_index":18145,"title":{"injectables/StartUserLoginMigrationUc.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["state",{"_index":460,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AuthorizationParams.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"injectables/HydraSsoService.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["state.dto",{"_index":15386,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["state.dto.ts",{"_index":15368,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:10",{"_index":15370,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:12",{"_index":15369,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:4",{"_index":15372,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:6",{"_index":15373,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:8",{"_index":15371,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.entity",{"_index":11700,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["state.entity.ts",{"_index":6342,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["state.entity.ts:14",{"_index":6346,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:21",{"_index":6349,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:23",{"_index":6348,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:25",{"_index":6347,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:31",{"_index":9457,"title":{},"body":{"entities/FederalState.html":{}}}],["state.entity.ts:34",{"_index":9454,"title":{},"body":{"entities/FederalState.html":{}}}],["state.entity.ts:37",{"_index":9456,"title":{},"body":{"entities/FederalState.html":{}}}],["state.entity.ts:40",{"_index":9455,"title":{},"body":{"entities/FederalState.html":{}}}],["state.enum",{"_index":20848,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["state.factory",{"_index":13514,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["state.mapper",{"_index":15732,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["state.mapper.ts",{"_index":15380,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.mapper.ts:5",{"_index":15384,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.repo.ts",{"_index":9460,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:12",{"_index":9461,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:8",{"_index":9462,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.response",{"_index":7881,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["state.service.ts",{"_index":9467,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:10",{"_index":9472,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:6",{"_index":9470,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["stated",{"_index":21808,"title":{},"body":{"license.html":{}}}],["statelessauthorizationparams",{"_index":15707,"title":{"classes/StatelessAuthorizationParams.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["statemapping",{"_index":21127,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statemapping[state",{"_index":21134,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statement",{"_index":22024,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["static",{"_index":627,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"classes/AccountResponseMapper.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/BaseFactory.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponseMapper.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextTypeMapper.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyMapper.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMapper.html":{},"entities/CourseNews.html":{},"interfaces/CreateJwtParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"classes/FileResponseBuilder.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IGridElement.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IToolFeatures.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/IservMapper.html":{},"classes/JwtExtractor.html":{},"classes/JwtTestFactory.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LessonCopyService.html":{},"classes/LessonFactory.html":{},"classes/LoggingUtils.html":{},"classes/LoginResponseMapper.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"classes/MetadataTypeMapper.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"modules/RocketChatModule.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"modules/S3ClientModule.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolInfoMapper.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionMapper.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserFactory.html":{},"classes/TestHelper.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolReferenceMapper.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"classes/UserMigrationMapper.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"additional-documentation/nestjs-application.html":{}}}],["stating",{"_index":21862,"title":{},"body":{"license.html":{}}}],["statistics_reporting=false",{"_index":22993,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["status",{"_index":564,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/AxiosResponseImp.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"classes/ConsentRequestBody.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolResponseMapper.html":{},"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IError.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"classes/LdapConnectionError.html":{},"injectables/LessonCopyService.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"interfaces/Meta.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"interfaces/NextcloudGroups.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/OcsResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"interfaces/RpcMessage.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"controllers/ShareTokenController.html":{},"interfaces/SuccessfulRes.html":{},"controllers/SystemController.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{}}}],["status.copyentity",{"_index":3044,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyHelperService.html":{}}}],["status.elements?.foreach((elementstatus",{"_index":6277,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.enum",{"_index":2107,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["status.mapper",{"_index":18916,"title":{},"body":{"classes/TaskMapper.html":{}}}],["status.mapper.ts",{"_index":19138,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.mapper.ts:5",{"_index":19139,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.originalentity",{"_index":6280,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.response",{"_index":3728,"title":{},"body":{"classes/BoardTaskResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["status.response.ts",{"_index":3736,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:14",{"_index":19147,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:17",{"_index":19146,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:20",{"_index":19142,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:21",{"_index":3749,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:23",{"_index":19143,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:24",{"_index":3748,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:26",{"_index":19145,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:27",{"_index":3744,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:29",{"_index":19144,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:3",{"_index":3743,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:30",{"_index":3745,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:33",{"_index":3747,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:36",{"_index":3746,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status_code",{"_index":5375,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["statuscode",{"_index":1293,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SuccessfulRes.html":{}}}],["statusdto",{"_index":18919,"title":{},"body":{"classes/TaskMapper.html":{}}}],["statuses",{"_index":3015,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statuses.foreach((status",{"_index":3072,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statusmapping",{"_index":9022,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["statusmapping[schoolexternaltool.status",{"_index":17449,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["statusmapping[toolreference.status",{"_index":9050,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["statustext",{"_index":2064,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["stay",{"_index":22477,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["stemming",{"_index":11251,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["steps",{"_index":21690,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["stepsexample",{"_index":23047,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stepshow",{"_index":23059,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stick",{"_index":22695,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["still",{"_index":6707,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["stop",{"_index":11249,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/TimeoutInterceptor.html":{}}}],["stopped",{"_index":16713,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["storage",{"_index":3543,"title":{},"body":{"modules/BoardModule.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"classes/CopyFileDto.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"classes/ErrorMapper.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFilesStorageClientConfig.html":{},"injectables/LessonCopyService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storage'})@apiresponse({status",{"_index":4578,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.adapter",{"_index":4562,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage.adapter.ts",{"_index":4479,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:15",{"_index":4495,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:30",{"_index":4503,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:40",{"_index":4509,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:49",{"_index":4501,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:58",{"_index":4498,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:67",{"_index":4505,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.app.ts",{"_index":21466,"title":{},"body":{"miscellaneous/functions.html":{}}}],["storage.config",{"_index":10263,"title":{},"body":{"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["storage.config.ts",{"_index":11405,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["storage.const",{"_index":1446,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{}}}],["storage.consumer.ts",{"_index":10167,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:13",{"_index":10171,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:29",{"_index":10177,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:46",{"_index":10181,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:61",{"_index":10179,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.controller",{"_index":4617,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage.controller.ts",{"_index":4570,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.controller.ts:33",{"_index":4584,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.mapper.ts",{"_index":10203,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:15",{"_index":10211,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:33",{"_index":10215,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:39",{"_index":10209,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:49",{"_index":10213,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:53",{"_index":10212,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:65",{"_index":10217,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.module",{"_index":10093,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{}}}],["storage.module.ts",{"_index":4608,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/FilesStorageModule.html":{}}}],["storage.params.ts",{"_index":6115,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["storage.params.ts:102",{"_index":6183,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:105",{"_index":6184,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:11",{"_index":9834,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:112",{"_index":16126,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:117",{"_index":16128,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:125",{"_index":16124,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:15",{"_index":9831,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:19",{"_index":9833,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:26",{"_index":10036,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:31",{"_index":10033,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:35",{"_index":10035,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:41",{"_index":9664,"title":{},"body":{"classes/FileParams.html":{}}}],["storage.params.ts:47",{"_index":7909,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:51",{"_index":7908,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:57",{"_index":17327,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:61",{"_index":17328,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:65",{"_index":17326,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:71",{"_index":18128,"title":{},"body":{"classes/SingleFileParams.html":{}}}],["storage.params.ts:78",{"_index":16613,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["storage.params.ts:84",{"_index":6182,"title":{},"body":{"classes/CopyFilesOfParentParams.html":{}}}],["storage.params.ts:90",{"_index":6121,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.params.ts:94",{"_index":6118,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.params.ts:99",{"_index":6185,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.producer",{"_index":10114,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{}}}],["storage.producer.ts",{"_index":10280,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:20",{"_index":10283,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:31",{"_index":10287,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:43",{"_index":10293,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:55",{"_index":10291,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:69",{"_index":10285,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:77",{"_index":10290,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.response.ts",{"_index":6078,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["storage.response.ts:22",{"_index":9878,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:26",{"_index":9880,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:29",{"_index":9881,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:32",{"_index":9886,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:35",{"_index":9884,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:38",{"_index":9885,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:41",{"_index":9876,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:44",{"_index":9879,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:47",{"_index":9882,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:50",{"_index":9883,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:53",{"_index":9877,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:56",{"_index":9802,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["storage.response.ts:6",{"_index":9875,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:66",{"_index":6148,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:74",{"_index":6149,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:77",{"_index":6151,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:81",{"_index":6150,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:84",{"_index":6080,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["storage.service",{"_index":4614,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["storage.service.ts",{"_index":4618,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:13",{"_index":4624,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:31",{"_index":4629,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:42",{"_index":4637,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:60",{"_index":4626,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:64",{"_index":4625,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:68",{"_index":4633,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.ts",{"_index":11360,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["storage.uc",{"_index":4591,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage.uc.ts",{"_index":4660,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:21",{"_index":4670,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:34",{"_index":4666,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:38",{"_index":4665,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:42",{"_index":4667,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:9",{"_index":4664,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage/collaborative",{"_index":4478,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage/controller/collaborative",{"_index":4569,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage/controller/dto/file",{"_index":6077,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["storage/controller/dto/scan",{"_index":17321,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["storage/controller/dto/team",{"_index":19288,"title":{},"body":{"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{}}}],["storage/controller/file",{"_index":9930,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["storage/controller/files",{"_index":10166,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage/dto/file.dto.ts",{"_index":9478,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:10",{"_index":9483,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:12",{"_index":9481,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:14",{"_index":9482,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:3",{"_index":9480,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/team",{"_index":19316,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["storage/entity",{"_index":9797,"title":{},"body":{"classes/FileRecordFactory.html":{},"modules/ServerConsoleModule.html":{}}}],["storage/entity/filerecord.entity.ts",{"_index":9689,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["storage/entity/filerecord.entity.ts:103",{"_index":9702,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:106",{"_index":9709,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:109",{"_index":9704,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:112",{"_index":9703,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:115",{"_index":9708,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:119",{"_index":9706,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:123",{"_index":9698,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:130",{"_index":9694,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:137",{"_index":9699,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:144",{"_index":9696,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:44",{"_index":9913,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:47",{"_index":9911,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:50",{"_index":9912,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:53",{"_index":9910,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:56",{"_index":9909,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/files",{"_index":1445,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/IFileStorageConfig.html":{}}}],["storage/helper",{"_index":3029,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["storage/helper/file",{"_index":21526,"title":{},"body":{"miscellaneous/functions.html":{}}}],["storage/helper/path.ts",{"_index":21517,"title":{},"body":{"miscellaneous/functions.html":{}}}],["storage/helper/promise.ts",{"_index":21565,"title":{},"body":{"miscellaneous/functions.html":{}}}],["storage/helper/test",{"_index":19440,"title":{},"body":{"classes/TestHelper.html":{}}}],["storage/interface/interfaces.ts",{"_index":10444,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{}}}],["storage/mapper/collaborative",{"_index":4516,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/mapper/copy",{"_index":6153,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["storage/mapper/file",{"_index":9496,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordMapper.html":{},"classes/FileResponseBuilder.html":{}}}],["storage/mapper/files",{"_index":10202,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage/mapper/team",{"_index":4610,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["storage/mapper/team.mapper",{"_index":4612,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage/mapper/team.mapper.ts",{"_index":19263,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/mapper/team.mapper.ts:12",{"_index":19266,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/repo/filerecord",{"_index":9887,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["storage/repo/filerecord.repo.ts",{"_index":9836,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:13",{"_index":9857,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:20",{"_index":9859,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:27",{"_index":9849,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:34",{"_index":9851,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:45",{"_index":9853,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:56",{"_index":9855,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:65",{"_index":9847,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:81",{"_index":9861,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:9",{"_index":9862,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/service/preview.service.ts",{"_index":16129,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:112",{"_index":16157,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:133",{"_index":16149,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:139",{"_index":16155,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:17",{"_index":16141,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:26",{"_index":16151,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:50",{"_index":16145,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:64",{"_index":16143,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:71",{"_index":16159,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:87",{"_index":16153,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:97",{"_index":16147,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/services/collaborative",{"_index":4613,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["storage/services/dto/team",{"_index":4511,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/TeamPermissionsDto.html":{}}}],["storage/services/dto/team.dto",{"_index":4513,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/services/dto/team.dto.ts",{"_index":19240,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:11",{"_index":19245,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:13",{"_index":19243,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:23",{"_index":19347,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:25",{"_index":19346,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:27",{"_index":19345,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:9",{"_index":19244,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/strategy/base.interface.strategy",{"_index":4515,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage/strategy/base.interface.strategy.ts",{"_index":11099,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:12",{"_index":11106,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:14",{"_index":11103,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:16",{"_index":11102,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:18",{"_index":11104,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.client",{"_index":4557,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.interface.ts",{"_index":10743,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy",{"_index":4558,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts",{"_index":14875,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:129",{"_index":14901,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:158",{"_index":14888,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:172",{"_index":14887,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:192",{"_index":14890,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:202",{"_index":14894,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:21",{"_index":14881,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:38",{"_index":14897,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:59",{"_index":14885,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:75",{"_index":14882,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:98",{"_index":14895,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/uc/collaborative",{"_index":4659,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage:debug",{"_index":22375,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:dev",{"_index":22374,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:prod",{"_index":22376,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storageclient",{"_index":10436,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{},"injectables/PreviewService.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storagefilename",{"_index":7861,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageprovider",{"_index":7808,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["storageprovider.accesskeyid",{"_index":7854,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageprovider.endpointurl",{"_index":7849,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.region",{"_index":7851,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.secretaccesskey",{"_index":7855,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageproviderencryptedstringtype",{"_index":11778,"title":{"classes/StorageProviderEncryptedStringType.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviderentity",{"_index":7806,"title":{"entities/StorageProviderEntity.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{}}}],["storageproviderid",{"_index":9592,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageproviderrepo",{"_index":7803,"title":{"injectables/StorageProviderRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/StorageProviderRepo.html":{}}}],["storageproviders",{"_index":11116,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviders.foreach((storageprovider",{"_index":11291,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storageproviderscollectionname",{"_index":11115,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storagestrategy",{"_index":4563,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["store",{"_index":3900,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["store.getclient",{"_index":3919,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["stored",{"_index":19860,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["strategies",{"_index":11101,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/ToolLaunchService.html":{}}}],["strategy",{"_index":4485,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthDataStrategyInputDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/ToolLaunchService.html":{},"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["strategy.apply(oauthdata",{"_index":16348,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.createlaunchdata(userid",{"_index":19812,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.createlaunchrequest(toollaunchdata",{"_index":19808,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.getdata(input",{"_index":16344,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.interface",{"_index":213,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["strategy.interface.ts",{"_index":12092,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:6",{"_index":12093,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:8",{"_index":12095,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy/jwt",{"_index":1653,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/jwt.strategy",{"_index":1655,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/ldap.strategy",{"_index":1656,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/local.strategy",{"_index":1657,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oauth2.strategy",{"_index":1658,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oidc/service/oidc",{"_index":16311,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["strategy/sanis/response",{"_index":10704,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["strategy/sanis/sanis",{"_index":16312,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["stream",{"_index":6162,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{},"dependencies.html":{}}}],["stream.destroy",{"_index":17183,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["stream.on('data",{"_index":17184,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["streamablefile",{"_index":6490,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(fileresponse.data",{"_index":10237,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["streamablefile(res.data",{"_index":9949,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["streamablefile(response.data",{"_index":10414,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(result",{"_index":6514,"title":{},"body":{"controllers/CourseController.html":{}}}],["strict",{"_index":15782,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["string",{"_index":47,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/County.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseUrlParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"modules/FwuLearningContentsModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"interfaces/Meta.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"classes/PageContentDto.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"injectables/SubmissionRepo.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemIdParams.html":{},"classes/SystemOidcMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["string'})@allow",{"_index":10034,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string'})@isstring()@isnotempty",{"_index":10032,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string(object[key",{"_index":2375,"title":{},"body":{"injectables/BBBService.html":{}}}],["string).split",{"_index":11755,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["string).tostring(cryptojs.enc.base64",{"_index":15964,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["stringifiedmessage",{"_index":13397,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["stringifiedmessage(message",{"_index":13407,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stringifymessage",{"_index":14067,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["stringifymessage(message",{"_index":14073,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["strings",{"_index":777,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/LegacyLogger.html":{},"classes/MongoPatterns.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["stringtoboolean",{"_index":377,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterNewsParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/SystemFilterParams.html":{},"miscellaneous/functions.html":{}}}],["stringvalidator",{"_index":12386,"title":{"classes/StringValidator.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(escapedclasses",{"_index":12563,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedfirstname",{"_index":12549,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedlastname",{"_index":12555,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedloginname",{"_index":12558,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedname",{"_index":20706,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(filters.name",{"_index":20703,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(query.classes",{"_index":12417,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.firstname",{"_index":12405,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.lastname",{"_index":12408,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.loginname",{"_index":12411,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.name",{"_index":20541,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["stringvalidator.isstring(value",{"_index":18201,"title":{},"body":{"classes/StringValidator.html":{}}}],["string}${additionalinfo",{"_index":12639,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["string}/api/v3/sso/hydra/${oauthclientid",{"_index":11084,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["strip",{"_index":21448,"title":{},"body":{"dependencies.html":{}}}],["strong",{"_index":9422,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["strongly",{"_index":22821,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["structure",{"_index":5221,"title":{"additional-documentation/nestjs-application/file-structure.html":{}},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CopyApiResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["structured",{"_index":22544,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["structures",{"_index":13414,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stubstitution",{"_index":6452,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["stucture",{"_index":22265,"title":{},"body":{"todo.html":{}}}],["student",{"_index":3106,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/LessonRule.html":{},"injectables/LessonUC.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionRepo.html":{},"entities/Task.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["student_list",{"_index":11712,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentaccount",{"_index":863,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentid",{"_index":11794,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["studentids",{"_index":6445,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["studentobjectids",{"_index":6639,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentobjectids.map((id",{"_index":6641,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentpermissions",{"_index":20182,"title":{},"body":{"classes/UserFactory.html":{}}}],["students",{"_index":6370,"title":{},"body":{"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"injectables/SubmissionRepo.html":{}}}],["studentswithid",{"_index":6603,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentswithid(numberofstudents",{"_index":6607,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentuser",{"_index":864,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentvisibility",{"_index":11702,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentwithid",{"_index":18264,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["studio",{"_index":21622,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["stuff",{"_index":21644,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["style",{"_index":22746,"title":{"additional-documentation/nestjs-application/code-style.html":{}},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["style=\"height",{"_index":12162,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["sub",{"_index":6054,"title":{},"body":{"classes/CopyApiResponse.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["sub)class",{"_index":23134,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["subclass",{"_index":16160,"title":{},"body":{"injectables/PreviewService.html":{}}}],["subdividing",{"_index":22067,"title":{},"body":{"license.html":{}}}],["subelements",{"_index":7445,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["subject",{"_index":77,"title":{},"body":{"classes/AbstractAccountService.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AppendedAttachment.html":{},"injectables/AuthenticationService.html":{},"classes/ConsentResponse.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"classes/LoginResponse-1.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["subject_type",{"_index":9175,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["subject_types_supported",{"_index":15262,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjects",{"_index":11542,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["subjecttype",{"_index":15261,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjecttypeenum",{"_index":15259,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["sublicenses",{"_index":22097,"title":{},"body":{"license.html":{}}}],["sublicensing",{"_index":21825,"title":{},"body":{"license.html":{}}}],["submission",{"_index":2881,"title":{"entities/Submission.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"controllers/BoardSubmissionController.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"entities/CourseGroup.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["submission.completed",{"_index":16577,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submission.controller.ts",{"_index":3683,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:32",{"_index":3692,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:48",{"_index":3698,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.coursegroup?.name",{"_index":18384,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.entity",{"_index":11964,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.getsubmitterids",{"_index":12034,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.grade",{"_index":18382,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.id",{"_index":16576,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionMapper.html":{}}}],["submission.isgraded",{"_index":12026,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isgradedforuser(user",{"_index":12029,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmitted",{"_index":12022,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmittedforuser(user",{"_index":12028,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isusersubmitter(user",{"_index":18431,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.service",{"_index":19131,"title":{},"body":{"injectables/TaskService.html":{}}}],["submission.task",{"_index":18436,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.task.aresubmissionspublic",{"_index":18434,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.teammembers",{"_index":11814,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["submission.userid",{"_index":16578,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainer",{"_index":8094,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainer.addchild(submissionitem",{"_index":18337,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainer.children",{"_index":18360,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissioncontainer.children.every((child",{"_index":8097,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainer.children.find",{"_index":8099,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainercontentbody",{"_index":5543,"title":{"classes/SubmissionContainerContentBody.html":{}},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["submissioncontainerelement",{"_index":2870,"title":{"classes/SubmissionContainerElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ElementUc.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainerelement.duedate",{"_index":5587,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelement.id",{"_index":16573,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelementcontent",{"_index":18224,"title":{"classes/SubmissionContainerElementContent.html":{}},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementcontentbody",{"_index":8035,"title":{"classes/SubmissionContainerElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["submissioncontainerelementcontentbody)@apiresponse({status",{"_index":8062,"title":{},"body":{"controllers/ElementController.html":{}}}],["submissioncontainerelementnode",{"_index":3180,"title":{"entities/SubmissionContainerElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerelementprops",{"_index":18223,"title":{"interfaces/SubmissionContainerElementProps.html":{}},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["submissioncontainerelementresponse",{"_index":4042,"title":{"classes/SubmissionContainerElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponse)@apiresponse({status",{"_index":4012,"title":{},"body":{"controllers/CardController.html":{}}}],["submissioncontainerelementresponsemapper",{"_index":5523,"title":{"classes/SubmissionContainerElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponsemapper.getinstance",{"_index":5518,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["submissioncontainerelementresponsemapper.instance",{"_index":18232,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerid",{"_index":18236,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainernodeprops",{"_index":18229,"title":{"interfaces/SubmissionContainerNodeProps.html":{}},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerurlparams",{"_index":3688,"title":{"classes/SubmissionContainerUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionContainerUrlParams.html":{}}}],["submissioncontroller",{"_index":18238,"title":{"controllers/SubmissionController.html":{}},"body":{"controllers/SubmissionController.html":{},"modules/TaskApiModule.html":{}}}],["submissionfactory",{"_index":18262,"title":{"classes/SubmissionFactory.html":{}},"body":{"classes/SubmissionFactory.html":{}}}],["submissionfactory.define(submission",{"_index":18276,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["submissionid",{"_index":18448,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{}}}],["submissionitem",{"_index":2873,"title":{"classes/SubmissionItem.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/ContentElementUpdateVisitor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitem).userid",{"_index":8100,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissionitem.completed",{"_index":18320,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.createdat",{"_index":18323,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.id",{"_index":18321,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.updatedat",{"_index":18322,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.userid",{"_index":18328,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemfactory",{"_index":18297,"title":{"injectables/SubmissionItemFactory.html":{}},"body":{"injectables/SubmissionItemFactory.html":{}}}],["submissionitemid",{"_index":18355,"title":{},"body":{"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionitemnode",{"_index":3183,"title":{"entities/SubmissionItemNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemnodeprops",{"_index":18304,"title":{"interfaces/SubmissionItemNodeProps.html":{}},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemprops",{"_index":18296,"title":{"interfaces/SubmissionItemProps.html":{}},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["submissionitemresponse",{"_index":3699,"title":{"classes/SubmissionItemResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponsemapper",{"_index":3700,"title":{"classes/SubmissionItemResponseMapper.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponsemapper.getinstance",{"_index":3705,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["submissionitemresponsemapper.instance",{"_index":18319,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponse})@apiresponse({status",{"_index":8049,"title":{},"body":{"controllers/ElementController.html":{}}}],["submissionitems",{"_index":18359,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitems.every((child",{"_index":18361,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitems.filter((item",{"_index":18363,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitemservice",{"_index":3539,"title":{"injectables/SubmissionItemService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemuc",{"_index":2760,"title":{"injectables/SubmissionItemUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemurlparams",{"_index":3694,"title":{"classes/SubmissionItemUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionmapper",{"_index":18248,"title":{"classes/SubmissionMapper.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionMapper.html":{}}}],["submissionmapper.maptostatusresponse(submission",{"_index":18257,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrepo",{"_index":1968,"title":{"injectables/SubmissionRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"modules/TaskModule.html":{}}}],["submissionresponses",{"_index":18255,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrule",{"_index":1969,"title":{"injectables/SubmissionRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{}}}],["submissions",{"_index":3684,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Submission.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.coursegroup",{"_index":18972,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["submissions.filter((submission",{"_index":12021,"title":{},"body":{"interfaces/ITaskParent.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.foreach((submission",{"_index":12032,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.map((submission",{"_index":18256,"title":{},"body":{"controllers/SubmissionController.html":{},"injectables/TaskService.html":{}}}],["submissions.some((submission",{"_index":12027,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissionservice",{"_index":18437,"title":{"injectables/SubmissionService.html":{}},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["submissionstatuslistresponse",{"_index":18250,"title":{"classes/SubmissionStatusListResponse.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionstatuslistresponse(submissionresponses",{"_index":18259,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionstatusresponse",{"_index":18380,"title":{"classes/SubmissionStatusResponse.html":{}},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionuc",{"_index":18249,"title":{"injectables/SubmissionUc.html":{}},"body":{"controllers/SubmissionController.html":{},"injectables/SubmissionUc.html":{},"modules/TaskApiModule.html":{}}}],["submissionurlparams",{"_index":18241,"title":{"classes/SubmissionUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionUrlParams.html":{}}}],["submitted",{"_index":3742,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["submittedsubmissions",{"_index":12020,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitterids",{"_index":12033,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitters",{"_index":18381,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submitting",{"_index":18302,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submittingcoursegroupname",{"_index":18383,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["subpath",{"_index":19406,"title":{},"body":{"classes/TestApiClient.html":{}}}],["subpermissions",{"_index":16121,"title":{},"body":{"injectables/PermissionService.html":{}}}],["subprograms",{"_index":21800,"title":{},"body":{"license.html":{}}}],["subsection",{"_index":21914,"title":{},"body":{"license.html":{}}}],["subset",{"_index":5385,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application.html":{}}}],["subsitution",{"_index":3108,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["substantial",{"_index":21952,"title":{},"body":{"license.html":{}}}],["substantially",{"_index":22065,"title":{},"body":{"license.html":{}}}],["substitution",{"_index":22453,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["substitution_teacher",{"_index":3107,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["substitutionids",{"_index":6393,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["substitutionteacherids",{"_index":6449,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["substitutionteachers",{"_index":6371,"title":{},"body":{"entities/Course.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"interfaces/ICourseProperties.html":{}}}],["subtypes",{"_index":8039,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["succeed",{"_index":22765,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["succesfully",{"_index":15712,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["success",{"_index":1289,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/IdentityManagementOauthService.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SuccessfulRes.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["successful",{"_index":13314,"title":{},"body":{"injectables/LdapService.html":{},"controllers/LoginController.html":{},"classes/SuccessfulResponse.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["successful.'})@apiresponse({status",{"_index":14087,"title":{},"body":{"controllers/LoginController.html":{}}}],["successfully",{"_index":549,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/DeleteFilesUc.html":{},"classes/IdentityManagementService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["successfully.'})@apiresponse({status",{"_index":525,"title":{},"body":{"controllers/AccountController.html":{}}}],["successfully.'})@apiunauthorizedresponse({description",{"_index":19655,"title":{},"body":{"controllers/ToolController.html":{}}}],["successfulres",{"_index":10750,"title":{"interfaces/SuccessfulRes.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["successfulresponse",{"_index":18485,"title":{"classes/SuccessfulResponse.html":{}},"body":{"classes/SuccessfulResponse.html":{},"controllers/UserController.html":{}}}],["successfulresponse(result",{"_index":20024,"title":{},"body":{"controllers/UserController.html":{}}}],["successor",{"_index":4233,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["such",{"_index":2730,"title":{},"body":{"entities/Board.html":{},"injectables/DashboardUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sue",{"_index":22107,"title":{},"body":{"license.html":{}}}],["suffice",{"_index":21960,"title":{},"body":{"license.html":{}}}],["sufficient",{"_index":9388,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["suffix",{"_index":22306,"title":{},"body":{"todo.html":{}}}],["suggested",{"_index":22249,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["suggests",{"_index":22677,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["suitable",{"_index":11071,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["suites",{"_index":22390,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sum",{"_index":20714,"title":{},"body":{"injectables/UserRepo.html":{}}}],["summary",{"_index":563,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICalendarEvent.html":{},"controllers/LoginController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["super",{"_index":406,"title":{},"body":{"entities/Account.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigResponse.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"entities/ClassEntity.html":{},"entities/ColumnBoardTarget.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/EntityNotFoundError.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalValidationPipe.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/HydraAdapter.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"entities/ImportUser.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolDo.html":{},"entities/LessonEntity.html":{},"injectables/LocalStrategy.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"entities/News.html":{},"classes/NotFoundLoggableException.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["super('ldap",{"_index":13256,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super('ldapalreadypersisted",{"_index":13253,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super(_em",{"_index":5782,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["super(config",{"_index":2135,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["super(domainobject.id",{"_index":7040,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["super(dto",{"_index":21059,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["super(e.response.statustext",{"_index":1307,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["super(message",{"_index":15002,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["super(oidcprovisioningservice",{"_index":17249,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["super(props",{"_index":617,"title":{},"body":{"classes/AccountDto.html":{},"classes/BasicToolConfigEntity.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/CourseNews.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/INewsProperties.html":{},"entities/LessonBoardElement.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigEntity.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SchoolNews.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["super(props.id",{"_index":5616,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/UserLoginMigrationDO.html":{}}}],["super(resp",{"_index":7887,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["super(schoolservice",{"_index":14227,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["super(total",{"_index":1025,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["super(type",{"_index":1522,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["super.build",{"_index":2194,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["super.findbyid(id",{"_index":6658,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/LessonRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserRepo.html":{}}}],["superhero",{"_index":495,"title":{},"body":{"controllers/AccountController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["superhero.'})@apiresponse({status",{"_index":508,"title":{},"body":{"controllers/AccountController.html":{}}}],["supertest",{"_index":1705,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["supertest(this.app.gethttpserver",{"_index":1740,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest(this.app.gethttpserver()).get(path).set('authorization",{"_index":1738,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest.test",{"_index":1735,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supplement",{"_index":21987,"title":{},"body":{"license.html":{}}}],["support",{"_index":2488,"title":{},"body":{"classes/BaseDomainObject.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/RoomsAuthorisationService.html":{},"dependencies.html":{},"license.html":{},"modules.html":{},"todo.html":{}}}],["support_${objectid",{"_index":12673,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["supported",{"_index":1720,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/HydraSsoService.html":{},"classes/OauthClientBody.html":{},"injectables/ShareTokenUC.html":{},"classes/TestApiClient.html":{}}}],["supporting",{"_index":22310,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["supports",{"_index":2542,"title":{},"body":{"classes/BaseFactory.html":{},"license.html":{}}}],["supportuserid",{"_index":12671,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["sure",{"_index":9141,"title":{},"body":{"injectables/ExternalToolService.html":{},"classes/GlobalValidationPipe.html":{},"injectables/PermissionService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["surrender",{"_index":22142,"title":{},"body":{"license.html":{}}}],["survive",{"_index":22023,"title":{},"body":{"license.html":{}}}],["sustained",{"_index":22199,"title":{},"body":{"license.html":{}}}],["svg",{"_index":22237,"title":{},"body":{"modules.html":{}}}],["swagger",{"_index":21394,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["switch",{"_index":307,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["switching",{"_index":20507,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["symbol('bbbsettings",{"_index":11096,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["symbol('defaultencryptionservice",{"_index":11395,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('keycloakconfigurationinputfiles",{"_index":11512,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["symbol('keycloaksettings",{"_index":11517,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["symbol('ldapencryptionservice",{"_index":11396,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('toolfeatures",{"_index":12083,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["symbol('videoconferencesettings",{"_index":12123,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["symetrickeyencryptionservice",{"_index":8111,"title":{"injectables/SymetricKeyEncryptionService.html":{}},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["symetrickeyencryptionservice(logger",{"_index":8116,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["sync",{"_index":7659,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ImportUserModule.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/Options.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sync_mode",{"_index":15894,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["syncboardelementreferences(boardelementtargets",{"_index":2731,"title":{},"body":{"entities/Board.html":{}}}],["syncindexes",{"_index":7648,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["syncmode",{"_index":12999,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["syntax",{"_index":12933,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["sysmes",{"_index":1287,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["system",{"_index":1114,"title":{"entities/System.html":{}},"body":{"injectables/AccountService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/PageContentQueryParams.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserMigrationService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["system'})@ismongoid",{"_index":16039,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["system.'})@apiresponse({status",{"_index":18531,"title":{},"body":{"controllers/SystemController.html":{}}}],["system.'})@isoptional()@isenum(systemtypeenum",{"_index":18603,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["system.adapter",{"_index":10031,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.adapter.ts",{"_index":9958,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:12",{"_index":9968,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:18",{"_index":10005,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:26",{"_index":9970,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:36",{"_index":9987,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:48",{"_index":10002,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:57",{"_index":9991,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:68",{"_index":9974,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:78",{"_index":9997,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:84",{"_index":9984,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.alias",{"_index":16466,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["system.displayname",{"_index":16467,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.dto",{"_index":15354,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["system.dto.ts",{"_index":16356,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:5",{"_index":16359,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:7",{"_index":16358,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:9",{"_index":16357,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.entity",{"_index":8317,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/ImportUser.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["system.factory",{"_index":12349,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["system.id",{"_index":13302,"title":{},"body":{"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserDORepo.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{}}}],["system.ldapactive",{"_index":18570,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemUc.html":{}}}],["system.ldapconfig",{"_index":11276,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.ldapconfig.searchuserpassword",{"_index":11277,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.module",{"_index":18518,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["system.module.ts",{"_index":10030,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.oauthconfig",{"_index":11270,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserMigrationService.html":{}}}],["system.oauthconfig.clientsecret",{"_index":11271,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oauthconfig.provider",{"_index":15830,"title":{},"body":{"injectables/OauthUc.html":{}}}],["system.oauthconfig?.provider",{"_index":15111,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oidcconfig",{"_index":11273,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/SystemService.html":{}}}],["system.oidcconfig.clientsecret",{"_index":11274,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oidcconfig.idphint",{"_index":18729,"title":{},"body":{"injectables/SystemService.html":{}}}],["system.provisioningstrategy",{"_index":18567,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.provisioningurl",{"_index":18568,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.type",{"_index":16465,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.url",{"_index":18566,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system/file",{"_index":9957,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["system?.id",{"_index":20656,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["systemapimodule",{"_index":17757,"title":{"modules/SystemApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SystemApiModule.html":{},"modules.html":{}}}],["systemcontroller",{"_index":18515,"title":{"controllers/SystemController.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{}}}],["systemdto",{"_index":15072,"title":{"classes/SystemDto.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["systemdto.alias",{"_index":18713,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.displayname",{"_index":18714,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.id",{"_index":18710,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.oauthconfig",{"_index":18715,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningstrategy",{"_index":18716,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningurl",{"_index":18717,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.type",{"_index":18712,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.url",{"_index":18718,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdtos",{"_index":18545,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemfactory",{"_index":12348,"title":{"classes/SystemFactory.html":{}},"body":{"classes/ImportUserFactory.html":{},"classes/SystemFactory.html":{}}}],["systemfactory.build",{"_index":12351,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["systemfactory.define(system",{"_index":18594,"title":{},"body":{"classes/SystemFactory.html":{}}}],["systemfilterparams",{"_index":18522,"title":{"classes/SystemFilterParams.html":{}},"body":{"controllers/SystemController.html":{},"classes/SystemFilterParams.html":{}}}],["systemid",{"_index":48,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/ExternalSource.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/JwtPayload.html":{},"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemOidcMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["systemidparams",{"_index":15702,"title":{"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}},"body":{"controllers/OauthSSOController.html":{},"controllers/SystemController.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}}}],["systemids",{"_index":20466,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemids[0",{"_index":20469,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemlistresponse",{"_index":18682,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemmapper",{"_index":18608,"title":{"classes/SystemMapper.html":{}},"body":{"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitiestodtos(systems",{"_index":18709,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitytodto(system",{"_index":18702,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromoauthconfigentitytodto(entity.oauthconfig",{"_index":18620,"title":{},"body":{"classes/SystemMapper.html":{}}}],["systemmodule",{"_index":1626,"title":{"modules/SystemModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules.html":{}}}],["systemoidcmapper",{"_index":18629,"title":{"classes/SystemOidcMapper.html":{}},"body":{"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitiestodtos(system",{"_index":18655,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitytodto(system",{"_index":18652,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromoidcconfigentitytodto(entity.id",{"_index":18639,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["systemoidcservice",{"_index":12858,"title":{"injectables/SystemOidcService.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{}}}],["systemprovisioningstrategy",{"_index":11850,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.iserv",{"_index":12629,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.oidc",{"_index":15905,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.sanis",{"_index":17250,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.undefined",{"_index":16366,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["systemrepo",{"_index":823,"title":{"injectables/SystemRepo.html":{}},"body":{"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/ImportUserModule.html":{},"injectables/LdapStrategy.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{}}}],["systemresponse",{"_index":18684,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper",{"_index":18539,"title":{"classes/SystemResponseMapper.html":{}},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper.mapfromdtotolistresponse(systemdtos",{"_index":18548,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromdtotoresponse(systemdto",{"_index":18552,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromoauthconfigdtotoresponse(system.oauthconfig",{"_index":18685,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponses",{"_index":16456,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["systems",{"_index":9975,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"classes/PublicSystemResponse.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemFilterParams.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["systems.'})@apiresponse({status",{"_index":18525,"title":{},"body":{"controllers/SystemController.html":{}}}],["systems.filter((system",{"_index":18721,"title":{},"body":{"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["systems.foreach((system",{"_index":11269,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systems.getitems().find((system",{"_index":20106,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["systems.map",{"_index":18680,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systems.map((system",{"_index":18725,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemscollectionname",{"_index":11114,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systemscope",{"_index":18662,"title":{"classes/SystemScope.html":{}},"body":{"injectables/SystemRepo.html":{},"classes/SystemScope.html":{}}}],["systemservice",{"_index":15045,"title":{"injectables/SystemService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["systemstrategy",{"_index":16329,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["systemtype",{"_index":18733,"title":{},"body":{"injectables/SystemUc.html":{}}}],["systemtypeenum",{"_index":18602,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["systemtypeenum.ldap",{"_index":18664,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemtypeenum.oauth",{"_index":18666,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemService.html":{}}}],["systemtypeenum.oidc",{"_index":18668,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemuc",{"_index":18513,"title":{"injectables/SystemUc.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"injectables/SystemUc.html":{}}}],["t",{"_index":692,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthorizableObject.html":{},"injectables/AuthorizationHelper.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBResponse.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"classes/Builder.html":{},"classes/Card.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"classes/GlobalErrorFilter.html":{},"classes/Group.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"injectables/HydraAdapter.html":{},"interfaces/IError.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/KeycloakConsole.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"injectables/NewsRepo.html":{},"interfaces/NextcloudGroups.html":{},"classes/Oauth2ToolConfigFactory.html":{},"interfaces/OcsResponse.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolYearRepo.html":{},"classes/SortingParams.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionRepo.html":{},"interfaces/SuccessfulRes.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["t.name",{"_index":18875,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["tab",{"_index":11221,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"controllers/TeamNewsController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["table",{"_index":14903,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["tablename",{"_index":402,"title":{},"body":{"entities/Account.html":{},"entities/Board.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalState.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["tags",{"_index":11543,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["take",{"_index":11484,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["takes",{"_index":19045,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tangible",{"_index":21940,"title":{},"body":{"license.html":{}}}],["tap",{"_index":8021,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["target",{"_index":2744,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"injectables/BoardRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/ColumnboardBoardElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"classes/DownloadFileParams.html":{},"classes/ErrorLoggable.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilterNewsParams.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/LessonBoardElement.html":{},"classes/MoveColumnBodyParams.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/PageContentQueryParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SingleFileParams.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["target._id.tostring",{"_index":9377,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["target.constructor",{"_index":8167,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["target.entity",{"_index":2699,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{}}}],["target.entity.ts",{"_index":4816,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:21",{"_index":4820,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:32",{"_index":4819,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:35",{"_index":4818,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.id",{"_index":18742,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.name",{"_index":18743,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.service",{"_index":17005,"title":{},"body":{"injectables/RoomsService.html":{}}}],["target.service.ts",{"_index":4830,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:11",{"_index":4839,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:33",{"_index":4836,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:8",{"_index":4834,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.targetids",{"_index":14785,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.targetids.length",{"_index":14858,"title":{},"body":{"injectables/NewsUc.html":{}}}],["target.targetmodel",{"_index":14783,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.title",{"_index":4849,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target:in",{"_index":14784,"title":{},"body":{"classes/NewsScope.html":{}}}],["target_model_values",{"_index":14656,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["targetboard",{"_index":3817,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnService.html":{}}}],["targetboardid",{"_index":3793,"title":{},"body":{"injectables/BoardUc.html":{}}}],["targetcard",{"_index":4204,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{}}}],["targetcardid",{"_index":4194,"title":{},"body":{"injectables/CardUc.html":{}}}],["targetcolumn",{"_index":3824,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardService.html":{}}}],["targetcolumnid",{"_index":3790,"title":{},"body":{"injectables/BoardUc.html":{}}}],["targetelement",{"_index":7401,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetelement.addreferences(element.getreferences",{"_index":7402,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetexternalid",{"_index":17602,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["targetfile",{"_index":21519,"title":{},"body":{"miscellaneous/functions.html":{}}}],["targetfolder",{"_index":11130,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["targetgroups",{"_index":11544,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["targetid",{"_index":6902,"title":{},"body":{"classes/CreateNewsParams.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetids",{"_index":9375,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["targetinfomapper",{"_index":14682,"title":{"classes/TargetInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/TargetInfoMapper.html":{}}}],["targetinfomapper.maptoresponse(news.target",{"_index":14684,"title":{},"body":{"classes/NewsMapper.html":{}}}],["targetinforesponse",{"_index":14653,"title":{"classes/TargetInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{}}}],["targetmodel",{"_index":6730,"title":{},"body":{"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["targetmodels",{"_index":14817,"title":{},"body":{"injectables/NewsUc.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.courses",{"_index":21175,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.events",{"_index":21174,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.map(async",{"_index":14854,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targetmodelsmapping",{"_index":21173,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[entitydo.targetmodel",{"_index":21186,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[videoconferencescope",{"_index":21179,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetparent",{"_index":3377,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.addchild(child",{"_index":3390,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.haschild(child",{"_index":3384,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.removechild(child",{"_index":3385,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparentinfo",{"_index":9759,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["targetpath",{"_index":6161,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["targetpermissions",{"_index":9366,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["targetposition",{"_index":3378,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["targets",{"_index":9371,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{}}}],["targets.filter((target",{"_index":14857,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targets.map((target",{"_index":9376,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/NewsScope.html":{}}}],["targetschoolnumber",{"_index":20513,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["targetsystem",{"_index":16035,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetsystemid",{"_index":17599,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetsystemloginurl",{"_index":20621,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["targetsystemloginurl.tostring",{"_index":20626,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["task",{"_index":2691,"title":{"entities/Task.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CopyMapper.html":{},"classes/DtoCreator.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"classes/LessonCopyApiParams.html":{},"entities/LessonEntity.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionRepo.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["task's",{"_index":22682,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["task.availabledate",{"_index":18929,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.course",{"_index":16952,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/SubmissionRepo.html":{}}}],["task.createdat",{"_index":18924,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.createstudentstatusforuser(this.user",{"_index":7982,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createstudentstatusforuser(user",{"_index":19189,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.createteacherstatusforuser(this.user",{"_index":7981,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createteacherstatusforuser(user",{"_index":19188,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.creator",{"_index":16947,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.description",{"_index":18846,"title":{},"body":{"injectables/TaskCopyService.html":{},"classes/TaskMapper.html":{}}}],["task.description.replace(regex",{"_index":18847,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["task.descriptioninputformat",{"_index":18927,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.duedate",{"_index":18931,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.entity",{"_index":2692,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{}}}],["task.factory",{"_index":18273,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["task.finishforuser(user",{"_index":19193,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.getparentdata",{"_index":18918,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.id",{"_index":18921,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.isdraft",{"_index":11346,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["task.isplanned",{"_index":11348,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["task.ispublished",{"_index":11344,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson",{"_index":16949,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson.course",{"_index":18406,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.lesson.coursegroup.course",{"_index":18407,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.module",{"_index":18768,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["task.name",{"_index":5031,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/TaskMapper.html":{}}}],["task.name}${task.description",{"_index":5032,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["task.response",{"_index":3414,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["task.response.ts",{"_index":3713,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:15",{"_index":3723,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:19",{"_index":3724,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:22",{"_index":3717,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:25",{"_index":3722,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:29",{"_index":3718,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:33",{"_index":3720,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:36",{"_index":3721,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:39",{"_index":3719,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:42",{"_index":3727,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:45",{"_index":3726,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:5",{"_index":3716,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.restoreforuser(user",{"_index":19194,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.rule",{"_index":18427,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["task.submissions.getitems",{"_index":19136,"title":{},"body":{"injectables/TaskService.html":{}}}],["task.unpublish",{"_index":19198,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.updatedat",{"_index":18925,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskapimodule",{"_index":17758,"title":{"modules/TaskApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TaskApiModule.html":{},"modules.html":{}}}],["taskboardelement",{"_index":2702,"title":{"entities/TaskBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/TaskBoardElement.html":{}}}],["taskcontroller",{"_index":18766,"title":{"controllers/TaskController.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{}}}],["taskcopy",{"_index":18833,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopy.name",{"_index":18851,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyapiparams",{"_index":6291,"title":{"classes/TaskCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{}}}],["taskcopyparams",{"_index":18829,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyparentparams",{"_index":6293,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcopyservice",{"_index":2995,"title":{"injectables/TaskCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{}}}],["taskcopyuc",{"_index":18763,"title":{"injectables/TaskCopyUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcourse",{"_index":16898,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcourse.name",{"_index":16901,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcreateparams",{"_index":18879,"title":{"classes/TaskCreateParams.html":{}},"body":{"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{}}}],["taskdesc",{"_index":18917,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.color",{"_index":18933,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.courseid",{"_index":18923,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.coursename",{"_index":18922,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonhidden",{"_index":18937,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonname",{"_index":18934,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskelement",{"_index":3073,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["taskelements",{"_index":3649,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["taskfactory",{"_index":18272,"title":{"classes/TaskFactory.html":{}},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["taskfactory.build",{"_index":18277,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["taskfactory.define(task",{"_index":18896,"title":{},"body":{"classes/TaskFactory.html":{}}}],["taskgroupstatus",{"_index":13808,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["taskid",{"_index":13763,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskUrlParams.html":{}}}],["taskidentifier",{"_index":5028,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskidentifier}/${taskidentifier}.html",{"_index":5030,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskids",{"_index":18393,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["tasklistresponse",{"_index":18799,"title":{"classes/TaskListResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["tasklistresponse(taskresponses",{"_index":18811,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmapper",{"_index":18796,"title":{"classes/TaskMapper.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskMapper.html":{}}}],["taskmapper.maptoresponse(task",{"_index":18810,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmodule",{"_index":13390,"title":{"modules/TaskModule.html":{}},"body":{"modules/LearnroomModule.html":{},"modules/LessonModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules.html":{}}}],["taskparentdescriptions",{"_index":11966,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskparentpermission",{"_index":16942,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["taskrepo",{"_index":1970,"title":{"injectables/TaskRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["taskresponse",{"_index":18800,"title":{"classes/TaskResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["taskresponses",{"_index":18808,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskrule",{"_index":1971,"title":{"injectables/TaskRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{}}}],["tasks",{"_index":4994,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ShareTokenDO.html":{},"classes/SingleColumnBoardResponse.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["tasks.filter((task",{"_index":11343,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["tasks.foreach((task",{"_index":4999,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["tasks.map((task",{"_index":19187,"title":{},"body":{"injectables/TaskUC.html":{}}}],["taskscope",{"_index":18969,"title":{"classes/TaskScope.html":{}},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{}}}],["taskscope('$or",{"_index":18979,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["taskservice",{"_index":4941,"title":{"injectables/TaskService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{},"injectables/ShareTokenService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["taskstatus.mapper",{"_index":16877,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskstatus.mapper.ts",{"_index":3731,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatus.mapper.ts:5",{"_index":3734,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatusmapper",{"_index":18915,"title":{"classes/TaskStatusMapper.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{}}}],["taskstatusmapper.maptoresponse(status",{"_index":18920,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskstatusresponse",{"_index":18901,"title":{"classes/TaskStatusResponse.html":{}},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{}}}],["taskstatusresponse(status",{"_index":19141,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["tasksubmitterids",{"_index":12031,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskswithstatus",{"_index":18805,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskswithstatus.map((task",{"_index":18809,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskuc",{"_index":18764,"title":{"injectables/TaskUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["taskupdateparams",{"_index":18911,"title":{"classes/TaskUpdateParams.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{}}}],["taskurlparams",{"_index":18245,"title":{"classes/TaskUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"classes/TaskUrlParams.html":{}}}],["taskwithstatus",{"_index":16887,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/TaskMapper.html":{}}}],["taskwithstatusvo",{"_index":7948,"title":{"classes/TaskWithStatusVo.html":{}},"body":{"classes/DtoCreator.html":{},"interfaces/ITaskParent.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"entities/Task.html":{},"classes/TaskMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskwithstatusvo(task",{"_index":7978,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/TaskUC.html":{}}}],["taskwithstatusvos",{"_index":19186,"title":{},"body":{"injectables/TaskUC.html":{}}}],["teacher",{"_index":3105,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ISchoolProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/LessonRule.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/TaskRepo.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["teacher.firstname",{"_index":5023,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher.lastname",{"_index":5024,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher_student_visibility__is_configurable",{"_index":11093,"title":{},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["teacheraccount",{"_index":869,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teacherid",{"_index":11970,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["teacherid.tohexstring",{"_index":4361,"title":{},"body":{"classes/ClassMapper.html":{}}}],["teacherids",{"_index":4228,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"entities/Course.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{}}}],["teacherpermissions",{"_index":20183,"title":{},"body":{"classes/UserFactory.html":{}}}],["teachers",{"_index":4961,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"interfaces/ICourseProperties.html":{}}}],["teacherswithid",{"_index":6604,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacherswithid(numberofteachers",{"_index":6610,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacheruser",{"_index":870,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teaching_assistant",{"_index":6966,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["teachingassistant",{"_index":6967,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["team",{"_index":4499,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"classes/TeamUrlParams.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{},"properties.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["team.entity",{"_index":6721,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["team.id",{"_index":4535,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.name",{"_index":4537,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.teamusers",{"_index":14920,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.find",{"_index":21263,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["team.teamusers.length",{"_index":14931,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.map(async",{"_index":19388,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["team.userids",{"_index":19338,"title":{},"body":{"injectables/TeamService.html":{}}}],["team.userids.filter((u",{"_index":19339,"title":{},"body":{"injectables/TeamService.html":{}}}],["teamadmin",{"_index":4643,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamdto",{"_index":4497,"title":{"classes/TeamDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{}}}],["teamentity",{"_index":6720,"title":{"entities/TeamEntity.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"injectables/IdTokenService.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["teamentity.id",{"_index":19273,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.name",{"_index":19274,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.teamusers.map",{"_index":19269,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamfactory",{"_index":19249,"title":{"classes/TeamFactory.html":{}},"body":{"classes/TeamFactory.html":{}}}],["teamfactory.define(teamentity",{"_index":19261,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamid",{"_index":3928,"title":{},"body":{"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{}}}],["teammapper",{"_index":4606,"title":{"injectables/TeamMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/TeamMapper.html":{}}}],["teammemberids",{"_index":11817,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids",{"_index":11815,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids.map((id",{"_index":11818,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammembers",{"_index":11791,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionRepo.html":{}}}],["teammemberswithid",{"_index":18265,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teammemberswithid(numberofteammembers",{"_index":18269,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teamname",{"_index":4536,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamnews",{"_index":6761,"title":{"entities/TeamNews.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["teamnews(props",{"_index":6752,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["teamnewscontroller",{"_index":14718,"title":{"controllers/TeamNewsController.html":{}},"body":{"modules/NewsModule.html":{},"controllers/TeamNewsController.html":{}}}],["teamowner",{"_index":4642,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teampermissions",{"_index":4636,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsbody",{"_index":4576,"title":{"classes/TeamPermissionsBody.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamPermissionsBody.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsdto",{"_index":4508,"title":{"classes/TeamPermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsmapper",{"_index":4607,"title":{"injectables/TeamPermissionsMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teamrole",{"_index":4573,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.roleid",{"_index":4675,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.teamid",{"_index":4674,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamroledto",{"_index":4574,"title":{"classes/TeamRoleDto.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamRoleDto.html":{}}}],["teamrolepermissionsdto",{"_index":4532,"title":{"classes/TeamRolePermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamrule",{"_index":1972,"title":{"injectables/TeamRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/TeamRule.html":{}}}],["teams",{"_index":11378,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["teams.foreach((team",{"_index":19337,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.length",{"_index":19342,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.map((team",{"_index":12175,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["teamsapimodule",{"_index":17759,"title":{"modules/TeamsApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TeamsApiModule.html":{},"modules.html":{}}}],["teamservice",{"_index":19327,"title":{"injectables/TeamService.html":{}},"body":{"injectables/TeamService.html":{},"modules/TeamsModule.html":{}}}],["teamsmapper",{"_index":4622,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["teamsmodule",{"_index":19373,"title":{"modules/TeamsModule.html":{}},"body":{"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules.html":{}}}],["teamsrepo",{"_index":1973,"title":{"injectables/TeamsRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/IRepoLoader.html":{},"injectables/IdTokenService.html":{},"modules/OauthProviderModule.html":{},"injectables/ReferenceLoader.html":{},"injectables/TeamService.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["teamstorageuc",{"_index":4596,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["teamsubmissions",{"_index":11956,"title":{},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"classes/TaskWithStatusVo.html":{}}}],["teamurlparams",{"_index":19280,"title":{"classes/TeamUrlParams.html":{}},"body":{"controllers/TeamNewsController.html":{},"classes/TeamUrlParams.html":{}}}],["teamuser",{"_index":14896,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["teamuser.role.id",{"_index":19271,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.role.name",{"_index":21267,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["teamuser.school.id",{"_index":19272,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.user.id",{"_index":19270,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamRule.html":{}}}],["teamuserdto",{"_index":14900,"title":{"classes/TeamUserDto.html":{}},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{}}}],["teamuserentity",{"_index":12069,"title":{"classes/TeamUserEntity.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamRule.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["teamuserentity(teamuser",{"_index":12079,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamuserfactory",{"_index":19257,"title":{"classes/TeamUserFactory.html":{}},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["teamuserfactory.buildwithid",{"_index":19262,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamuserfactory.define(teamuserentity",{"_index":19368,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["teamuserfactory.withroleanduserid(role",{"_index":19259,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamusers",{"_index":12068,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{}}}],["teamusers(value",{"_index":12076,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamusers.map(async",{"_index":14938,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["teardown",{"_index":22277,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tech",{"_index":22424,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["technical",{"_index":8152,"title":{},"body":{"classes/ErrorLoggable.html":{},"injectables/LdapStrategy.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["technological",{"_index":21833,"title":{},"body":{"license.html":{}}}],["tell",{"_index":22417,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tells",{"_index":5381,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"license.html":{}}}],["temp",{"_index":9976,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["temp/:file",{"_index":10804,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["tempflow.alias",{"_index":12920,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["template",{"_index":1379,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SystemRepo.html":{},"controllers/ToolConfigurationController.html":{},"miscellaneous/functions.html":{}}}],["template')@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":19534,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["template.replace(/\\{id\\}/g",{"_index":8586,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["template.response",{"_index":5637,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}}}],["template.response.ts",{"_index":5638,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:10",{"_index":5649,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:13",{"_index":5646,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:16",{"_index":5645,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:19",{"_index":5648,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:22",{"_index":5643,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:7",{"_index":5644,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["temporary",{"_index":521,"title":{},"body":{"controllers/AccountController.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/KeycloakIdentityManagementService.html":{},"interfaces/UserBoardRoles.html":{}}}],["tempted",{"_index":23103,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["term",{"_index":21806,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["terminal",{"_index":22908,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["terminate",{"_index":22028,"title":{},"body":{"license.html":{}}}],["terminated",{"_index":22046,"title":{},"body":{"license.html":{}}}],["terminates",{"_index":22036,"title":{},"body":{"license.html":{}}}],["termination",{"_index":22025,"title":{},"body":{"license.html":{}}}],["terms",{"_index":21611,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["test",{"_index":1236,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"controllers/H5PEditorController.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"classes/MaterialFactory.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"classes/TaskFactory.html":{},"classes/TestBootstrapConsole.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["test.createtestingmodule",{"_index":19430,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["test.module.ts",{"_index":10318,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:30",{"_index":10320,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["test.module.ts:31",{"_index":10819,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:37",{"_index":10433,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["test/test",{"_index":19419,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["testapiclient",{"_index":1715,"title":{"classes/TestApiClient.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testbootstrapconsole",{"_index":19417,"title":{"classes/TestBootstrapConsole.html":{}},"body":{"classes/TestBootstrapConsole.html":{}}}],["testcase",{"_index":22700,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testdata",{"_index":22720,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tested",{"_index":6809,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testhelper",{"_index":19439,"title":{"classes/TestHelper.html":{}},"body":{"classes/TestHelper.html":{}}}],["testing",{"_index":10789,"title":{"additional-documentation/nestjs-application/testing.html":{}},"body":{"controllers/H5PEditorController.html":{},"modules/InterceptorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["testing'})@apiresponse({status",{"_index":10780,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["testingmodule",{"_index":19426,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testkcconnection",{"_index":12774,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["testmodule",{"_index":22836,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.close",{"_index":22842,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(entitymanager",{"_index":22839,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(mikroorm",{"_index":22838,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(newsrepo",{"_index":22837,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testname",{"_index":19451,"title":{},"body":{"classes/TestHelper.html":{}}}],["testreqestconst",{"_index":1710,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.accesstoken",{"_index":1774,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.loginpath",{"_index":1750,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.prefix",{"_index":1733,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testrequestinstance",{"_index":1737,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["tests",{"_index":2508,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IFileStorageConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["testtag",{"_index":19450,"title":{},"body":{"classes/TestHelper.html":{}}}],["testtext",{"_index":19446,"title":{},"body":{"classes/TestHelper.html":{}}}],["testuser",{"_index":6883,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["text",{"_index":2880,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/ColumnBoardService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/TestHelper.html":{},"classes/UpdateElementContentBodyParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["text(value",{"_index":16742,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["text.length",{"_index":19449,"title":{},"body":{"classes/TestHelper.html":{}}}],["text.replace(/[^\\da",{"_index":21288,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["text.replace(regex",{"_index":13776,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["text.types.ts",{"_index":16720,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:14",{"_index":16722,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:20",{"_index":16723,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:5",{"_index":16721,"title":{},"body":{"classes/RichText.html":{}}}],["text.validator.ts",{"_index":22598,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["text1",{"_index":4761,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text2",{"_index":4781,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text3",{"_index":4797,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text4",{"_index":4810,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["textutils",{"_index":22583,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["textvalidator",{"_index":22599,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["tha",{"_index":3607,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["that's",{"_index":938,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["themself",{"_index":23130,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["themselves",{"_index":22790,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["then((pseudonymdo",{"_index":14942,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["then((resp",{"_index":2349,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["there's",{"_index":19050,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["therefore",{"_index":6637,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["things",{"_index":21687,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["think",{"_index":22549,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["third",{"_index":21856,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["this(entityclass",{"_index":2546,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this._allowemptyquery",{"_index":17720,"title":{},"body":{"classes/Scope.html":{}}}],["this._collectdefaultmetrics",{"_index":16233,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._collectmetricsroutemetrics",{"_index":16234,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._columnboardid",{"_index":4823,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._columnboardid.tohexstring",{"_index":4827,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._contextid",{"_index":4720,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contextid.tohexstring",{"_index":4722,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._contextid?.tohexstring",{"_index":11773,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contexttype",{"_index":4718,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._creatorid",{"_index":9648,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._creatorid.tohexstring",{"_index":9609,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._em.aggregate(fileentity",{"_index":10065,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.aggregate(lessonentity",{"_index":13895,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.aggregate(user",{"_index":20715,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.assign(fetchedentity",{"_index":2457,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.create(this.entityname",{"_index":2451,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.find(account",{"_index":924,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.find(coursegroup",{"_index":18404,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.find(fileentity",{"_index":10058,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.find(ltitool",{"_index":14349,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.find(role",{"_index":16838,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.find(storageproviderentity",{"_index":18194,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["this._em.find(system",{"_index":18671,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["this._em.find(teamentity",{"_index":19391,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.find(this.entityname",{"_index":935,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.find(user",{"_index":20104,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findandcount",{"_index":944,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["this._em.findandcount(course",{"_index":6807,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findandcount(coursegroup",{"_index":6660,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.findandcount(filerecord",{"_index":9873,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findandcount(importuser",{"_index":12494,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findandcount(lessonentity",{"_index":13892,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.findandcount(news",{"_index":14750,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findandcount(schoolentity",{"_index":13551,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findandcount(task",{"_index":19054,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.findandcount(this.entityname",{"_index":18400,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.findandcount(user",{"_index":20095,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findone(account",{"_index":920,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findone(board",{"_index":3642,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findone(importuser",{"_index":12475,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findone(ltitool",{"_index":14352,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findone(schoolentity",{"_index":13549,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findone(this.entityname",{"_index":8788,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["this._em.findone(userloginmigration",{"_index":20386,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.findoneorfail",{"_index":5788,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.findoneorfail(account",{"_index":925,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findoneorfail(board",{"_index":3646,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findoneorfail(course",{"_index":3644,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findoneorfail(federalstate",{"_index":9463,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["this._em.findoneorfail(filerecord",{"_index":9874,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findoneorfail(importuser",{"_index":12472,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findoneorfail(ltitool",{"_index":14351,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findoneorfail(news",{"_index":14746,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findoneorfail(role",{"_index":16836,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.findoneorfail(schoolyear",{"_index":17700,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["this._em.findoneorfail(sharetoken",{"_index":17986,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["this._em.findoneorfail(teamentity",{"_index":19387,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.findoneorfail(this.entityname",{"_index":2456,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/UserDORepo.html":{}}}],["this._em.findoneorfail(videoconference",{"_index":21178,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["this._em.flush",{"_index":929,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.getreference(entityname",{"_index":927,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.getreference(externaltoolentity",{"_index":17410,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.getreference(role",{"_index":20126,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.getreference(schoolentity",{"_index":17408,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(schoolexternaltoolentity",{"_index":5804,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.getreference(system",{"_index":13575,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(userloginmigration",{"_index":13577,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.map(fileentity",{"_index":10067,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.map(lessonentity",{"_index":13897,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.map(user",{"_index":20728,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.nativedelete(importuser",{"_index":12499,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.nativedelete(this.entityname",{"_index":2482,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.persist(account",{"_index":928,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.persistandflush(board",{"_index":3645,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.persistandflush(entities",{"_index":2445,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.populate(columnboardelements",{"_index":3656,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(course",{"_index":6799,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.populate(coursegroup",{"_index":6659,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.populate(coursenews",{"_index":14756,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(importuser.user",{"_index":12473,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(lesson",{"_index":13887,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(lessonelements",{"_index":3654,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(lessons",{"_index":13893,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(newsentities",{"_index":14751,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(newsentity",{"_index":14747,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(role",{"_index":19394,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(schoolnews",{"_index":14754,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(submissions",{"_index":18405,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.populate(taskelements",{"_index":3652,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(tasks",{"_index":18970,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.populate(teamnews",{"_index":14755,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(teamuser",{"_index":19389,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(user",{"_index":20694,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.populate(userentity",{"_index":20097,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.populate(usermatches",{"_index":12498,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(users",{"_index":20730,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.remove(entities",{"_index":2472,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.removeandflush(account",{"_index":934,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.removeandflush(entities",{"_index":2587,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["this._id",{"_index":7418,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this._instance",{"_index":16240,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._iscopyfrom",{"_index":9749,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._iscopyfrom?.tohexstring",{"_index":9744,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._isenabled",{"_index":16230,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._lockid",{"_index":9652,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._lockid?.tohexstring",{"_index":9610,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._oauthconfigcache",{"_index":13051,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this._operator",{"_index":17719,"title":{},"body":{"classes/Scope.html":{}}}],["this._origintoolid",{"_index":7016,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._origintoolid?.tohexstring",{"_index":6986,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._ownerid",{"_index":9644,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._ownerid.tohexstring",{"_index":9608,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._parentid",{"_index":9642,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._parentid.tohexstring",{"_index":9742,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._parentid?.tohexstring",{"_index":9607,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._port",{"_index":16232,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._queries",{"_index":17722,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.length",{"_index":17721,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.push(query",{"_index":17724,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries[0",{"_index":17723,"title":{},"body":{"classes/Scope.html":{}}}],["this._route",{"_index":16231,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._schoolid",{"_index":9746,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._schoolid.tohexstring",{"_index":9743,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.abbreviation",{"_index":6360,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.acceptconsentrequest",{"_index":15464,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.acceptloginrequest(currentuserid",{"_index":15608,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.accesskeyid",{"_index":11782,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.accesstoken",{"_index":14118,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.accountdb.delete(accountid",{"_index":1151,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.deletebyuserid(userid",{"_index":1155,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.findmany(offset",{"_index":1157,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.save(accountdto",{"_index":1093,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.updatelasttriedfailedlogin(accountid",{"_index":1144,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.updatepassword(accountid",{"_index":1148,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.updateusername(accountid",{"_index":1140,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.delete(accountid",{"_index":1153,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.deletebyuserid(userid",{"_index":1156,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.save(newaccount",{"_index":1100,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.updatelasttriedfailedlogin(accountid",{"_index":1147,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.updatepassword(accountid",{"_index":1149,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.updateusername(accountid",{"_index":1142,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl",{"_index":1084,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findbyid(id",{"_index":1085,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findbyuserid(userid",{"_index":1087,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findbyuseridorfail(userid",{"_index":1088,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findbyusernameandsystemid(username",{"_index":1089,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findmultiplebyuserid(userids",{"_index":1086,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.searchbyusernameexactmatch(username",{"_index":1091,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.searchbyusernamepartialmatch(username",{"_index":1090,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.validatepassword(account",{"_index":1150,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountlookupservice.getinternalid(id",{"_index":1216,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyid(internalid",{"_index":1209,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyuserid(userid",{"_index":1210,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyid(accountid",{"_index":1261,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyid(internalid",{"_index":1187,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyuserid(userid",{"_index":1190,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyusernameandsystemid(username",{"_index":1192,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmany(offset",{"_index":1221,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmultiplebyuserid(userids",{"_index":1188,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.save(account",{"_index":1205,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(email",{"_index":1244,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(username",{"_index":1213,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernamepartialmatch(username",{"_index":1211,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountservice.findbyuserid(user.id",{"_index":15165,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["this.accountservice.findbyuseridorfail(currentuserid",{"_index":20637,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.findbyuseridorfail(userid",{"_index":20784,"title":{},"body":{"injectables/UserService.html":{}}}],["this.accountservice.findbyusernameandsystemid(username",{"_index":1823,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.findmany(skip",{"_index":13182,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.accountservice.save(account",{"_index":20648,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.save(accountcopy",{"_index":20643,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.savewithvalidation",{"_index":15961,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.accountservice.searchbyusernameexactmatch(username",{"_index":1824,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.updatelasttriedfailedlogin(id",{"_index":1851,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountuc.deleteaccountbyid(currentuser",{"_index":585,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.findaccountbyid(currentuser",{"_index":568,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.replacemytemporarypassword(currentuser.userid",{"_index":587,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.searchaccounts(currentuser",{"_index":566,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.updateaccountbyid(currentuser",{"_index":583,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.updatemyaccount(currentuser.userid",{"_index":581,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountvalidationservice.isuniqueemail(dto.username",{"_index":1129,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.activated",{"_index":423,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{}}}],["this.active",{"_index":11877,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.adapter.createteam(team",{"_index":4657,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.deleteteam(teamid",{"_index":4656,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteam(team",{"_index":4658,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteampermissionsforrole",{"_index":4653,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.addclientprotocolmappers(defaultclientinternalid",{"_index":12952,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.addexternaloauth2datatoconfig(tool.config",{"_index":9129,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.addlessons(builder",{"_index":4979,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addparameters(propertydata",{"_index":283,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.addproperty(propertydata",{"_index":300,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.addquery",{"_index":5899,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["this.addquery(emptyresultquery",{"_index":14788,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(queries[0",{"_index":14789,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(query",{"_index":9908,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["this.addroom(room",{"_index":7371,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.addtasks(builder",{"_index":4980,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addteacherroleifadmin(externaluser",{"_index":17255,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.adminidandtoken",{"_index":1392,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.alias",{"_index":11937,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{}}}],["this.allowmodstounmuteusers",{"_index":2148,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.allrooms",{"_index":7381,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.amqpconnection.publish",{"_index":1453,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.amqpconnection.publish(this.options.exchange",{"_index":14404,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.amqpconnection.request",{"_index":10300,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.amqpconnectionmanager.getconnections().map((connection",{"_index":16489,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["this.ancestorids.length",{"_index":3582,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.ancestorids[this.ancestorids.length",{"_index":3576,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.antareskey",{"_index":6356,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.app",{"_index":1729,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.appendnotcontainedboardelements(boardelementtargets",{"_index":2733,"title":{},"body":{"entities/Board.html":{}}}],["this.applypropertiestopathparams(url",{"_index":248,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.attendeepw",{"_index":2146,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.aud",{"_index":12672,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["this.authendpoint",{"_index":11865,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.authenticationservice.checkbrutforce(account",{"_index":13343,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.generatejwt(currentuser",{"_index":15845,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.authenticationservice.loadaccount",{"_index":13365,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(`${externalschoolid}/${username}`.tolowercase",{"_index":13362,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(username",{"_index":14007,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizepassword(password",{"_index":13349,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizeusername(username",{"_index":13348,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.removejwtfromwhitelist(userjwt",{"_index":15843,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.authenticationservice.updatelasttriedfailedlogin(account.id",{"_index":13351,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authorisation.checkpermissionbyreferences",{"_index":13846,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisation.getuserwithpermissions(userid",{"_index":13838,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(user",{"_index":13841,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisationservice",{"_index":7956,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorisationservice.hascoursewritepermission(user",{"_index":17037,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.authorisationservice.haspermission(this.user",{"_index":7966,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorization.checkpermissionbyreferences(userid",{"_index":6584,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["this.authorizationhelper.hasaccesstoentity",{"_index":6817,"title":{},"body":{"injectables/CourseRule.html":{}}}],["this.authorizationhelper.hasaccesstoentity(user",{"_index":6667,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationhelper.hasallpermissions(user",{"_index":2056,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationhelper.hasallpermissionsbyrole(isteamuser.role",{"_index":19326,"title":{},"body":{"injectables/TeamRule.html":{}}}],["this.authorizationhelper.hasoneofpermissions(user",{"_index":2057,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.authorizationservice.checkallpermissions(user",{"_index":9217,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkentitypermissions",{"_index":14843,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkentitypermissions(userid",{"_index":14827,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkoneofpermissions(user",{"_index":19174,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.checkpermission",{"_index":18478,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.authorizationservice.checkpermission(user",{"_index":3832,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.checkpermissionbyreferences",{"_index":19834,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.authorizationservice.checkpermissionbyreferences(userid",{"_index":6597,"title":{},"body":{"injectables/CourseExportUc.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.getentitypermissions(userid",{"_index":14859,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getpermittedentities(userid",{"_index":14855,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuser.userid",{"_index":15437,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuserid",{"_index":15615,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(userid",{"_index":3830,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/LessonUC.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasallpermissions(user",{"_index":19190,"title":{},"body":{"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasoneofpermissions(user",{"_index":19197,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.haspermission(user",{"_index":4209,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.haspermission(userid",{"_index":23051,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.haspermissionbyreferences(userid",{"_index":21279,"title":{},"body":{"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.haspermissions(user",{"_index":23073,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationurl",{"_index":11924,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.authorizeaccess",{"_index":12794,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.authservice.checkpermission",{"_index":4650,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.checkpermissionbyreferences(userid",{"_index":13627,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.authservice.generatejwt(userinfo",{"_index":14158,"title":{},"body":{"injectables/LoginUc.html":{}}}],["this.authservice.getuserwithpermissions(currentuserid",{"_index":4651,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.availabledate",{"_index":11976,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.axiosconfig",{"_index":10999,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.basepath",{"_index":11125,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.baseroute",{"_index":1730,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.baseurl",{"_index":2622,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchData.html":{}}}],["this.bbbresponse",{"_index":20850,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["this.bbbservice.create(configbuilder.build",{"_index":20980,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.end(config",{"_index":21048,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.bbbservice.getmeetinginfo(config",{"_index":21072,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.bbbservice.getmeetinginfo(new",{"_index":20968,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.join(joinbuilder.build",{"_index":21104,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.bbbsettings.host",{"_index":2337,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.presentationurl",{"_index":2339,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.salt",{"_index":2338,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.board",{"_index":7955,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.board.getelements",{"_index":7958,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.boardcopyservice.copyboard",{"_index":6551,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo",{"_index":3831,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo).then((boarddoauthorizable",{"_index":4207,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.boarddorepo.delete(domainobject",{"_index":3383,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findbyclassandid(card",{"_index":4145,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findbyclassandid(column",{"_index":4915,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findbyclassandid(columnboard",{"_index":4747,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findbyid(elementid",{"_index":5548,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findbyid(id",{"_index":3130,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.findbyid(rootid",{"_index":3138,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.boarddorepo.findbyids(cardids",{"_index":4146,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findidsbyexternalreference(reference",{"_index":4748,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findparentofid(card.id",{"_index":4156,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findparentofid(child.id",{"_index":3387,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(column.id",{"_index":4919,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findparentofid(domainobject.id",{"_index":3380,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(element.id",{"_index":5557,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findparentofid(submissionitem.id",{"_index":18339,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.getancestorids(boarddo",{"_index":3133,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.boarddorepo.gettitlesbyids(boardids",{"_index":4750,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(board",{"_index":4753,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(card",{"_index":4157,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.save(column",{"_index":4920,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.save(columnboard",{"_index":4751,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(element",{"_index":5558,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(parent.children",{"_index":3382,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(sourceparent.children",{"_index":3389,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.save(submissioncontainer.children",{"_index":18338,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.save(targetparent.children",{"_index":3391,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorule",{"_index":17073,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.boarddoservice.deletewithdescendants(board",{"_index":4752,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddoservice.deletewithdescendants(card",{"_index":4154,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.deletewithdescendants(column",{"_index":4917,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.deletewithdescendants(element",{"_index":5552,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddoservice.move(card",{"_index":4155,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.move(column",{"_index":4918,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.move(element",{"_index":5553,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boardelementtype",{"_index":4928,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["this.boardmanagementuc.createboard(courseid",{"_index":3467,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.boardnodeauthorizableservice",{"_index":11657,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.boardnoderepo",{"_index":3346,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(boarddo.id",{"_index":3342,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(childid",{"_index":3339,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(id",{"_index":3314,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(parent.id",{"_index":16550,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.boardnoderepo.finddescendants(boardnode",{"_index":3315,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.finddescendantsofmany(boardnodes",{"_index":3322,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardrepo.findbycourseid(course.id",{"_index":17039,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.findbycourseid(courseid",{"_index":6541,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boardrepo.findbycourseid(roomid",{"_index":17034,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(board",{"_index":17013,"title":{},"body":{"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(boardcopy",{"_index":3045,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.boarduc.createcard(currentuser.userid",{"_index":4885,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.createcolumn(currentuser.userid",{"_index":2981,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deleteboard(currentuser.userid",{"_index":2979,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deletecard(currentuser.userid",{"_index":4069,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.deletecolumn(currentuser.userid",{"_index":4883,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.findboard(currentuser.userid",{"_index":2965,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.findboardcontext(currentuser.userid",{"_index":2970,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.movecard(currentuser.userid",{"_index":4058,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.movecolumn(currentuser.userid",{"_index":4876,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.updateboardtitle(currentuser.userid",{"_index":2975,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.updatecardheight(currentuser.userid",{"_index":4063,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.updatecardtitle(currentuser.userid",{"_index":4066,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.updatecolumntitle(currentuser.userid",{"_index":4880,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.bsonconverter.deserialize(bsondocuments",{"_index":11197,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bsonconverter.serialize(jsondocuments",{"_index":11215,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bucket",{"_index":9632,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.build",{"_index":7157,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["this.build(params",{"_index":2549,"title":{},"body":{"classes/BaseFactory.html":{},"classes/DoBaseFactory.html":{}}}],["this.build(requiredpermissions",{"_index":1879,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["this.buildchildren(boardnode",{"_index":3225,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.buildcopyentitydict(elementstatus).foreach((el",{"_index":6278,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.builddtowithelements(mappedelements",{"_index":7961,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.buildfile",{"_index":5505,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildgroupsclaim(teams",{"_index":12171,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.buildrichtext",{"_index":5507,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildscope(query",{"_index":5785,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this.buildsubmissioncontainer",{"_index":5509,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildtokenrequestpayload(code",{"_index":15101,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.buildtoollaunchdatafromconcreteconfig",{"_index":224,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.buildtoollaunchdatafromexternaltool(data.externaltool",{"_index":219,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.buildtoollaunchdatafromtools(data",{"_index":222,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.buildtoollaunchrequestpayload(url",{"_index":232,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.buildtoolreference(userid",{"_index":19889,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.buildurl(toollaunchdata",{"_index":230,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.byuseridquery(userid",{"_index":18402,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.cacheexpiration",{"_index":16837,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["this.cachemanager.del(redisidentifier",{"_index":12739,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.cacheservice.getstoretype",{"_index":12738,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.calculatenumberofsubmitters(gradedsubmissions",{"_index":12046,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calculatenumberofsubmitters(submittedsubmissions",{"_index":12044,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calendarmapper.maptodto(resp.data",{"_index":3977,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.calendarservice.findevent(userid",{"_index":21292,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.callkcadminclient",{"_index":12802,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.cancelbuttonurl",{"_index":16019,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.caption",{"_index":9534,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.cardid",{"_index":4174,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["this.cards",{"_index":4894,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["this.cardservice.create(column",{"_index":3821,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.cardservice.delete(card",{"_index":3829,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.cardservice.findbyid(cardid",{"_index":3823,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{}}}],["this.cardservice.findbyid(targetcardid",{"_index":4205,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyids(cardids",{"_index":4197,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.move(card",{"_index":3826,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.cardservice.updateheight(card",{"_index":3827,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.cardservice.updatetitle(card",{"_index":3828,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.carduc.createelement(currentuser.userid",{"_index":4077,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.deleteelement(currentuser.userid",{"_index":8077,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.carduc.findcards(currentuser.userid",{"_index":4054,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.moveelement",{"_index":8069,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.cause",{"_index":3890,"title":{},"body":{"classes/BusinessError.html":{}}}],["this.challenge",{"_index":5478,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.checkandaddprefix(baseroute",{"_index":1731,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkandaddprefix(routenameinput",{"_index":1769,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkavaiblelanguages(params.language",{"_index":20811,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.checkavailablelanguages(newlanguage",{"_index":20798,"title":{},"body":{"injectables/UserService.html":{}}}],["this.checkcontextreadpermission(userid",{"_index":18074,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcreatepermission(userid",{"_index":18081,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcredentials(account",{"_index":13345,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkcredentials(password",{"_index":14012,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.checkduplicateincontext(contextexternaltool",{"_index":5988,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.checkerror(response",{"_index":10303,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.checkexpired(sharetoken",{"_index":18030,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.checkfeatureenabled",{"_index":6583,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["this.checkfeatureenabled(payload.parenttype",{"_index":18068,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkfeatureenabled(sharetoken.payload.parenttype",{"_index":18080,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkifpreviewpossible(filerecord",{"_index":16167,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.checklistscontainingequalentities(reorderedids",{"_index":2721,"title":{},"body":{"entities/Board.html":{}}}],["this.checkofficialschoolnumbersmatch(schooldo",{"_index":17633,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.checkoptionalparameter(param",{"_index":5353,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparameterregex(foundentry",{"_index":5355,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparametertype(foundentry",{"_index":5354,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparentwritepermission(userid",{"_index":18069,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkpermission(userid",{"_index":3810,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.checkpreconditions(userid",{"_index":18155,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.checkscopeandvalidateparameter(validatabletool",{"_index":5348,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkstreamresponsive(stream",{"_index":17130,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.checkvalue(account.userid",{"_index":13342,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(school.externalid",{"_index":13353,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(user.ldapdn",{"_index":13344,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkversionmatch(schoolexternaltool.toolversion",{"_index":17526,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.children.filter((ch",{"_index":2838,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.length",{"_index":2831,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.some((obj",{"_index":2842,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.splice(position",{"_index":2837,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.childrenmap[boardnode.path",{"_index":3219,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.path].push(boardnode",{"_index":3220,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.pathofchildren",{"_index":3252,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.classesrepo.findallbyuserid(userid",{"_index":4404,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.updatemany(updatedclasses",{"_index":4409,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classnames",{"_index":12370,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.classnames.push(...props.classnames",{"_index":11467,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.classvalidatormetadatastorage.gettargetvalidationmetadatas",{"_index":8166,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.cleanupinput(username",{"_index":14006,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.cleanuppath(this.baseroute",{"_index":1770,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.client",{"_index":11551,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"injectables/S3ClientAdapter.html":{}}}],["this.client.addaccesstogroupfolder(folderid",{"_index":14929,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.addusertogroup(nextclouduserid",{"_index":14958,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.changegroupfoldername(folderid",{"_index":14927,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroup(groupid",{"_index":14918,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroupfolder(foldername",{"_index":14928,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroup(groupid",{"_index":14915,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroupfolder(folderid",{"_index":14916,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupfolderidforgroupid(groupid",{"_index":14911,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupid(nextcloudstrategy.generategroupid(dto",{"_index":14909,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getgroupusers(groupid",{"_index":14934,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(pseudonymdo.pseudonym",{"_index":14943,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(team.id",{"_index":14917,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(teamid",{"_index":14914,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.oidcinternalname",{"_index":14960,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.removeuserfromgroup(nextclouduserid",{"_index":14956,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.renamegroup(groupid",{"_index":14932,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.send(req",{"_index":17126,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.client.setgrouppermissions(groupid",{"_index":14912,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client_id",{"_index":1609,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/ConsentSessionResponse.html":{}}}],["this.client_name",{"_index":5477,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.client_secret",{"_index":1611,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.clientid",{"_index":11854,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.clientsecret",{"_index":11855,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.clienturl",{"_index":15742,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.clone(newpropsfactory",{"_index":2557,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.closedat",{"_index":20221,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.closedat.toisostring",{"_index":20229,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["this.closeuserloginmigrationuc.closemigration",{"_index":20320,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.code",{"_index":1617,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.color",{"_index":6435,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.columnboardid",{"_index":2788,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["this.columnboardservice.createwelcomecolumnboard(coursereference",{"_index":17016,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.delete(board",{"_index":3812,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findbyid(boardid",{"_index":3809,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findbyid(targetboardid",{"_index":3818,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findidsbyexternalreference(coursereference",{"_index":17014,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.getboardobjecttitlesbyid(columnboardids",{"_index":4843,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.columnboardservice.updatetitle(board",{"_index":3813,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardtargetservice.findorcreatetargets(columnboardids",{"_index":17018,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columns",{"_index":3667,"title":{},"body":{"classes/BoardResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.columnservice.create(board",{"_index":3814,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.delete(column",{"_index":3816,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.findbyid(columnid",{"_index":3815,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.findbyid(targetcolumnid",{"_index":3825,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.move(column",{"_index":3819,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.updatetitle(column",{"_index":3820,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.comment",{"_index":11797,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.commontoolservice.determinetoolconfigurationstatus",{"_index":19813,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.commontoolvalidationservice.checkcustomparameterentries(loadedexternaltool",{"_index":5993,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.checkforduplicateparameters(schoolexternaltool",{"_index":17525,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.isvaluevalidfortype(param.type",{"_index":8704,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.compareparameters(oldtool.parameters",{"_index":9296,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.completed",{"_index":18305,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.config",{"_index":2084,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{}}}],["this.config.bucket",{"_index":17125,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.config.bucket}/${path.sourcepath",{"_index":17163,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.configservice.get('available_languages').includes(language",{"_index":20800,"title":{},"body":{"injectables/UserService.html":{}}}],["this.configservice.get('available_languages').includes(settedlanguage",{"_index":20810,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.configservice.get('feature_identity_management_login_enabled",{"_index":1083,"title":{},"body":{"injectables/AccountService.html":{},"injectables/LocalStrategy.html":{}}}],["this.configservice.get('feature_identity_management_store_enabled",{"_index":809,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{}}}],["this.configservice.get('feature_imscc_course_export_enabled",{"_index":6508,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.configservice.get('incoming_request_timeout_copy_api",{"_index":10298,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.configservice.get('login_block_time",{"_index":1844,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.configservice.get('sc_domain",{"_index":12941,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.configservice.get(placeholder",{"_index":11264,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.connect(system",{"_index":13297,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.consentflowuc.getconsentrequest(params.challenge",{"_index":15559,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.consentflowuc.patchconsentrequest",{"_index":15562,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.console.info('connected",{"_index":11595,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`cleaned",{"_index":11601,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`configured",{"_index":11613,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`migrated",{"_index":11625,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`seeded",{"_index":11607,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.consolewriter.info('error",{"_index":3464,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info('schulcloud",{"_index":17737,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`error",{"_index":3528,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.consolewriter.info(`input",{"_index":17738,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`success",{"_index":3468,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info(report",{"_index":7678,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.constructor",{"_index":1756,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BaseFactory.html":{},"classes/TestApiClient.html":{}}}],["this.content",{"_index":3415,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/ContentElementUpdateVisitor.html":{},"entities/CourseNews.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichText.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"entities/SchoolNews.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"entities/TeamNews.html":{}}}],["this.content.caption",{"_index":5580,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.content.duedate",{"_index":5588,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.content.inputformat",{"_index":5584,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.contentelementfactory.build(contentelementtype.rich_text",{"_index":4813,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.contentelementfactory.build(type",{"_index":5550,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.contentelementservice.create(card",{"_index":4159,"title":{},"body":{"injectables/CardService.html":{}}}],["this.contents",{"_index":11332,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.contenttype",{"_index":8526,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["this.context",{"_index":13428,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/ShareTokenDO.html":{}}}],["this.context.action",{"_index":10374,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.context.requiredpermissions.join",{"_index":10375,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.contextexternaltool.id",{"_index":14528,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.contextexternaltoolauthorizableservice",{"_index":11659,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltool",{"_index":5928,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltools",{"_index":5927,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":9142,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find",{"_index":5926,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find(query",{"_index":5922,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(contextexternaltoolid",{"_index":5923,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(id",{"_index":5632,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["this.contextexternaltoolrepo.save(contextexternaltool",{"_index":5925,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrule",{"_index":17074,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.contextexternaltoolservice.deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":17514,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.contextexternaltoolservice.deletecontextexternaltool(tool",{"_index":5966,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findallbycontext",{"_index":5967,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.contextexternaltoolservice.findcontextexternaltools",{"_index":5995,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["this.contextexternaltoolservice.getcontextexternaltoolbyid",{"_index":5965,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{}}}],["this.contextexternaltoolservice.getcontextexternaltoolbyid(contexttoolid",{"_index":5970,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.savecontextexternaltool",{"_index":5960,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.savecontextexternaltool(updated",{"_index":5964,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltooluc.createcontextexternaltool",{"_index":19612,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.deletecontextexternaltool(currentuser.userid",{"_index":19617,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltool",{"_index":19624,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltoolsforcontext",{"_index":19619,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.updatecontextexternaltool",{"_index":19628,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltoolvalidationservice.validate(contextexternaltooldto",{"_index":5958,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolvalidationservice.validate(updated",{"_index":5962,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextid",{"_index":5691,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.contextref",{"_index":5619,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.contexttoolid",{"_index":19844,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.contexttype",{"_index":5693,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this.converterutil.xml2object",{"_index":2351,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.converterutil.xml2object>(resp.data",{"_index":2363,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.cookies",{"_index":10996,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.copy(copypaths",{"_index":17148,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.copyboardelements(boardelements",{"_index":3035,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycourse(userid",{"_index":18084,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copycourseentity",{"_index":6550,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyfilesservice.copyfilesofentity",{"_index":13742,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.buildcopyentitydict(boardstatus",{"_index":3078,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copyhelperservice.buildcopyentitydict(status",{"_index":13739,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(newname",{"_index":6548,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(originallesson.name",{"_index":13852,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.copyhelperservice.derivecopyname(originaltaskname",{"_index":18876,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.copyhelperservice.derivestatusfromelements(copiedtasksstatus",{"_index":13810,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(elements",{"_index":3039,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(elementsstatus",{"_index":13822,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(filestatuses",{"_index":6233,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.copyingsince",{"_index":6441,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"interfaces/ICourseProperties.html":{}}}],["this.copylesson(element.target",{"_index":3057,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copylesson(userid",{"_index":18087,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copylessoncontent(lesson.contents",{"_index":13729,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copylinkedmaterials(lesson",{"_index":13731,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copylinkedtasks(lessoncopy",{"_index":13736,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copytask(element.target",{"_index":3053,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copytask(userid",{"_index":18088,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copytaskentity(params",{"_index":18838,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.countyid",{"_index":6354,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.course",{"_index":2705,"title":{},"body":{"entities/Board.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.color",{"_index":12060,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.id",{"_index":12057,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isfinished",{"_index":12014,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isusersubstitutionteacher(user",{"_index":12040,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.name",{"_index":12056,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.school.id",{"_index":11354,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.coursecopyservice.copycourse",{"_index":6586,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.coursecopyuc.copycourse(currentuser.userid",{"_index":16991,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.courseexportservice.exportcourse(courseid",{"_index":6599,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.courseexportuc.exportcourse(urlparams.courseid",{"_index":6509,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.coursegroup",{"_index":11330,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["this.coursegroup.getstudentids",{"_index":11811,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.coursegroup.school.id",{"_index":11355,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.coursegrouppermission(user",{"_index":13929,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegrouprepo",{"_index":11643,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.coursegrouprule",{"_index":17065,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.coursegrouprule.haspermission(user",{"_index":13932,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegroups.getitems",{"_index":6462,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.coursegroups.isinitialized(true",{"_index":6458,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.courseid",{"_index":18903,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursename",{"_index":18902,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursepermission(user",{"_index":13930,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.courserepo",{"_index":11641,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.courserepo.createcourse(coursecopy",{"_index":6560,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserepo.findallbyuserid",{"_index":7632,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.courserepo.findallbyuserid(user.id",{"_index":19212,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findallbyuserid(userid",{"_index":6546,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{}}}],["this.courserepo.findallforteacherorsubstituteteacher(user.id",{"_index":19211,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findbyid(courseid",{"_index":6540,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.courserepo.findbyid(parentparams.courseid",{"_index":13844,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.courserepo.findbyid(rootboarddo.context.id",{"_index":3141,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.courserepo.findone(roomid",{"_index":17033,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.courserepo.save(coursecopy",{"_index":6562,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserule",{"_index":17064,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.courserule.haspermission(user",{"_index":6668,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.findbyid(contextexternaltool.contextref.id",{"_index":317,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.courseservice.findbyid(courseid",{"_index":4973,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/ShareTokenUC.html":{}}}],["this.courseservice.findbyid(scopeid",{"_index":21290,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.courseservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18033,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.courseservice.getcourse(params.courseid",{"_index":23071,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.save(course",{"_index":23076,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.savecourse(course",{"_index":23080,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseuc.findallbyuser(currentuser.userid",{"_index":6502,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.create",{"_index":9686,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.create(currentuserid",{"_index":20970,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.create(path",{"_index":17144,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createboardelementfor(target",{"_index":2745,"title":{},"body":{"entities/Board.html":{}}}],["this.createboardforcourse(courseid",{"_index":3643,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.createbucket",{"_index":17143,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createcards(this.random(1",{"_index":3507,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createclient(provider",{"_index":7845,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.createcolumns(3",{"_index":3503,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createdat",{"_index":620,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/County.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TimestampsResponse.html":{},"classes/UserDO.html":{}}}],["this.createelements(1",{"_index":3513,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createemptyelements(card",{"_index":4153,"title":{},"body":{"injectables/CardService.html":{}}}],["this.createentity(domainobject",{"_index":2442,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createerrorloggable(error",{"_index":10493,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponse(error",{"_index":10503,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforbusinesserror(error",{"_index":10511,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforfeatherserror(error",{"_index":10509,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponsefornesthttpexception(error",{"_index":10513,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforunknownerror",{"_index":10514,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createfile(contentrange",{"_index":19452,"title":{},"body":{"classes/TestHelper.html":{}}}],["this.createfileurlreplacements(filedtos",{"_index":6215,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.creategridelement(elementwithposition",{"_index":7554,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.createidentityprovider(configureaction.config",{"_index":12959,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(idpalias",{"_index":12995,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(oidcconfig.idphint",{"_index":12987,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createiframesubject(user",{"_index":12170,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.createlogmessageforvalidationerrors(this.error",{"_index":8147,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.createnewentityfromdo(domainobj",{"_index":2471,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewentityfromdo(domainobject",{"_index":2449,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewmigration(schooldo",{"_index":20451,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.createorupdateboardnode(boardnode",{"_index":16560,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.createorupdateidmaccount(account",{"_index":13185,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.createqueryordermap(options?.order",{"_index":20087,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.createrequest(filesstorageevents.copy_files_of_parent",{"_index":10301,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.createrequest(filesstorageevents.delete_files_of_parent",{"_index":10309,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.createrequest(filesstorageevents.list_files_of_parent",{"_index":10306,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.createrichtextelement",{"_index":4762,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.createstatus",{"_index":19196,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.createtaskstatus(task",{"_index":7977,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.createusermigrationdto",{"_index":20644,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.createusersearchindex",{"_index":11227,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.creator",{"_index":11982,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.creatorid",{"_index":6098,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.credentialhash",{"_index":413,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.cruduc.createoauth2client(currentuser",{"_index":15539,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.deleteoauth2client(currentuser",{"_index":15544,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.getoauth2client(currentuser",{"_index":15529,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.listoauth2clients",{"_index":15532,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.updateoauth2client(currentuser",{"_index":15541,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.currentredirect",{"_index":10992,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.customs",{"_index":7009,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.dashboard",{"_index":7423,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.dashboardrepo.getdashboardbyid(dashboardid",{"_index":7636,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.getusersdashboard(userid",{"_index":7631,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.persistandflush(dashboard",{"_index":7635,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboarduc.getusersdashboard(currentuser.userid",{"_index":7240,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.moveelementondashboard",{"_index":7243,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.renamegroupondashboard",{"_index":7248,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboardurl",{"_index":20630,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.data",{"_index":1026,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AxiosResponseImp.html":{},"classes/CardListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileDto.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Page.html":{},"classes/PublicSystemListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.databasemanagementservice.clearcollection(collectionname",{"_index":11169,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.collectionexists(collectionname",{"_index":11167,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.createcollection(collectionname",{"_index":11170,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.finddocumentsofcollection(collectionname",{"_index":11213,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getcollectionnames",{"_index":11138,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getdatabasecollection('users",{"_index":11231,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.importcollection",{"_index":11203,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.syncindexes",{"_index":11228,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem",{"_index":7711,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem([collectionname",{"_index":7713,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem(filter",{"_index":7682,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfactories(filter",{"_index":7674,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem",{"_index":7708,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem([collectionname",{"_index":7710,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem(filter",{"_index":7675,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.syncindexes",{"_index":7683,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/Options.html":{}}}],["this.db.collection(collectionname",{"_index":7749,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.createcollection(collectionname",{"_index":7766,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.dropcollection(collectionname",{"_index":7767,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.listcollections(undefined",{"_index":7759,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.default",{"_index":7074,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["this.default_errorcode",{"_index":15005,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.default_message",{"_index":15003,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.defaultencryptionservice.decrypt(oidcconfig.clientsecret",{"_index":15892,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["this.defaultencryptionservice.encrypt(system.oauthconfig.clientsecret",{"_index":11272,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultencryptionservice.encrypt(system.oidcconfig.clientsecret",{"_index":11275,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultoauthclientbody",{"_index":15443,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.defaultscopes",{"_index":11931,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.defaultvalue",{"_index":7215,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["this.delete",{"_index":9688,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.delete(account",{"_index":932,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.delete(deleteobjects",{"_index":17158,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(filteredpathobjects",{"_index":17174,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(paths",{"_index":17151,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deleted",{"_index":9625,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.deletedat",{"_index":9624,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"classes/TimestampsResponse.html":{},"entities/User.html":{}}}],["this.deletedfoldername}/${path",{"_index":17147,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deletedsince",{"_index":6104,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.deleteentitybyid(entityid",{"_index":2481,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.deleteexternaltoolpseudonymsbyuserid(userid",{"_index":16428,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletefile(file",{"_index":7832,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefileinstorage(file",{"_index":7857,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefilesuc.deletemarkedfiles(thresholddate",{"_index":7790,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.deleteidentityprovider(configureaction.alias",{"_index":12963,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.deletenode(card",{"_index":16513,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(column",{"_index":16511,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(columnboard",{"_index":16509,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(fileelement",{"_index":16516,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(richtextelement",{"_index":16518,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submission",{"_index":16522,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submissioncontainerelement",{"_index":16520,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletepseudonymsbyuserid(userid",{"_index":16427,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletesubmissions(task",{"_index":19134,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.derivecopyname(composedname",{"_index":6276,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.derivecopystatus",{"_index":13737,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.derivecopystatus(filecopystatus",{"_index":18840,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.derivecopystatus(filedtos",{"_index":6217,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.derivecoursestatus(originalcourse",{"_index":6555,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.description",{"_index":6428,"title":{},"body":{"entities/Course.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Material.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.descriptioninputformat",{"_index":11973,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.details",{"_index":3889,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.detectcontenttypeorthrow(buffer",{"_index":8602,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.detectcontenttypeorthrow(logobinarydata",{"_index":8611,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.determinebbbrole(userid",{"_index":21297,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.determineinput(systemid",{"_index":16342,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.determinelaunchrequestmethod(toollaunchdata.properties",{"_index":229,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.determinenewroomsin(rooms",{"_index":7369,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.determinestatus(tool",{"_index":17486,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.displayat",{"_index":6740,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["this.displaycolor",{"_index":6700,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.displayname",{"_index":5621,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.doescourseexist(courseid",{"_index":3500,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.domigration(externalid",{"_index":17629,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.domigration(userdo",{"_index":20638,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.dropcollectionifexists(collectionname",{"_index":11179,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.duedate",{"_index":11978,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionContainerElementContent.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponse.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.elements",{"_index":4111,"title":{},"body":{"classes/CardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.elementservice.create(card",{"_index":4200,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.delete(element",{"_index":4203,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.findbyid",{"_index":18372,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.elementservice.findbyid(contentelementid",{"_index":8095,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(elementid",{"_index":4202,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{}}}],["this.elementservice.move(element",{"_index":4201,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.update(element",{"_index":8093,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementuc.createsubmissionitem",{"_index":8080,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.elementuc.updateelementcontent(currentuser.userid",{"_index":8074,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.em",{"_index":8751,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.assign(existing",{"_index":8756,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.assign(existingentity",{"_index":10690,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(boardnode",{"_index":3321,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["this.em.find(classentity",{"_index":4432,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.find(columnboardnode",{"_index":3332,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.em.find(columnboardtarget",{"_index":4851,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.find(externaltoolpseudonymentity",{"_index":8750,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.find(pseudonymentity",{"_index":16447,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findone(dashboardgridelementmodel",{"_index":7556,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.findone(dashboardmodelentity",{"_index":7577,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findone(externaltoolpseudonymentity",{"_index":8749,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(groupentity",{"_index":10683,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.findone(pseudonymentity",{"_index":16446,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(boardnode",{"_index":3597,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["this.em.findoneorfail(course",{"_index":3527,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.findoneorfail(dashboardmodelentity",{"_index":7607,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findoneorfail(externaltoolpseudonymentity",{"_index":8746,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findoneorfail(pseudonymentity",{"_index":16445,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(user",{"_index":7579,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.flush",{"_index":3348,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.getconnection('write').getdb",{"_index":7748,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.em.getreference(classentity",{"_index":4438,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.getunitofwork().getbyid(boardnode.name",{"_index":3596,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.nativedelete(externaltoolpseudonymentity",{"_index":8759,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.nativedelete(pseudonymentity",{"_index":16450,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(boardnode",{"_index":16584,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.persist(entity",{"_index":8757,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(modelentity",{"_index":7603,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persist(newentity",{"_index":10691,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.persist(target",{"_index":4850,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.persistandflush(board",{"_index":3502,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(cards",{"_index":3510,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(columns",{"_index":3504,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(data",{"_index":11180,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.em.persistandflush(elements",{"_index":3515,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(modelentity",{"_index":7605,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persistandflush(referencedentities",{"_index":4440,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.remove(el",{"_index":7576,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.remove(this.em.getreference(boardnode",{"_index":16524,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.em.removeandflush(entity",{"_index":10695,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.email",{"_index":9340,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.emailsearchvalues",{"_index":20058,"title":{},"body":{"classes/UserDO.html":{}}}],["this.enablemigrationstart",{"_index":14514,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.enableoauthmigrationfeature(schooldo",{"_index":20452,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.encoding",{"_index":10013,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.encryptionservice.encrypt(externaltool.config.secret",{"_index":9116,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.encryptpassword(accountdto.password",{"_index":1202,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptpassword(password",{"_index":1208,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptsecrets(collectionname",{"_index":11201,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(data",{"_index":11178,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(jsondocuments",{"_index":11267,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.enddate",{"_index":11739,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["this.endpointurl",{"_index":11780,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.enrichdatafromexternaltool(createdschoolexternaltool",{"_index":17490,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichdatafromexternaltool(tool",{"_index":17484,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichwithdatafromexternaltools(schoolexternaltools",{"_index":17482,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.ensureboardnodetype(this.getchildren(boardnode",{"_index":3222,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurecontextpermissions(userid",{"_index":8439,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.ensureleafnode(boardnode",{"_index":3238,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurepermission(userid",{"_index":9205,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.ensureschoolpermissions(userid",{"_index":8430,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.ensuretoolpermissions(userid",{"_index":19894,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.entityclass",{"_index":2565,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityclass(props",{"_index":2548,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityfactory(entityprops",{"_index":2461,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.entityname",{"_index":945,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ForbiddenLoggableException.html":{}}}],["this.error",{"_index":8146,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.errorcode",{"_index":15004,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.errorhandler(error",{"_index":15770,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.errortype",{"_index":1318,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.etherpadservice.createetherpad",{"_index":13793,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.everyattendeejoinsmuted",{"_index":20998,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.everyattendejoinsmuted",{"_index":20830,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["this.everybodyjoinsasmoderator",{"_index":20832,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.executeidmmethod(async",{"_index":1098,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.existsexpertrole(user.roles",{"_index":21261,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.expiresat",{"_index":421,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{}}}],["this.externalgroups",{"_index":15360,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalid",{"_index":6744,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LegacySchoolDo.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.externalorganizationid",{"_index":8288,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["this.externalschool",{"_index":15358,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalsource",{"_index":10659,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableexternaltools",{"_index":8442,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableschoolexternaltools",{"_index":8440,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailabletools",{"_index":8432,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope",{"_index":8445,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope(externaltool",{"_index":8434,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforcontext",{"_index":19550,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforschool",{"_index":19547,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforcontextexternaltool",{"_index":19557,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforschoolexternaltool",{"_index":19554,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltooldomapper.mapcreaterequest(externaltoolparams",{"_index":19668,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapexternaltoolfilterquerytoexternaltoolsearchquery(filterquery",{"_index":19674,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapsortingquerytodomain(sortingquery",{"_index":19673,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapupdaterequest(externaltoolparams",{"_index":19686,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolid",{"_index":5651,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.externaltoollogoservice.buildlogourl",{"_index":8436,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoollogoservice.buildlogourl(logourltemplate",{"_index":19898,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.externaltoollogoservice.fetchlogo(externaltool",{"_index":9207,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoollogoservice.getexternaltoolbinarylogo",{"_index":19697,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoollogoservice.validatelogosize(externaltool",{"_index":9248,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolparametervalidationservice.validatecommon(externaltool",{"_index":9245,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolpseudonymrepo",{"_index":16434,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":16433,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findbyuserid(userid",{"_index":16431,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolrepo.deletebyid(toolid",{"_index":9144,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.find(query",{"_index":9125,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyid(id",{"_index":9134,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyname(name",{"_index":9137,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyoauth2configclientid(clientid",{"_index":9138,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(externaltool",{"_index":9121,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(toupdate",{"_index":9124,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolservice.createexternaltool(externaltool",{"_index":9209,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.deleteexternaltool(toolid",{"_index":9216,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.findexternaltoolbyid",{"_index":5991,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyid(schoolexternaltool.toolid",{"_index":8449,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.externaltoolservice.findexternaltoolbyid(tool.toolid",{"_index":17485,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.externaltoolservice.findexternaltoolbyid(toolid",{"_index":8606,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyname",{"_index":14959,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.externaltoolservice.findexternaltoolbyname(externaltool.name",{"_index":8693,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid",{"_index":15587,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid(externaltool.config.clientid",{"_index":9263,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltools",{"_index":8426,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolservice.findexternaltools(query",{"_index":9215,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.updateexternaltool(toupdate",{"_index":9214,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltooluc.createexternaltool(currentuser.userid",{"_index":19669,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.deleteexternaltool(currentuser.userid",{"_index":19690,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.findexternaltool(currentuser.userid",{"_index":19675,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.getexternaltool",{"_index":19682,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.updateexternaltool",{"_index":19687,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolversionservice.increaseversionofnewtoolifnecessary(loadedtool",{"_index":9123,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaluser",{"_index":15356,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externaluserid",{"_index":8294,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ProvisioningDto.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.extractaccount(account",{"_index":13127,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakuser",{"_index":13112,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakusers[0",{"_index":13119,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(user",{"_index":13130,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcaccountid",{"_index":13148,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcsystemid",{"_index":13144,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcuserid",{"_index":13146,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractids(this.students",{"_index":6446,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.extractids(this.substitutionteachers",{"_index":6450,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.extractids(this.teachers",{"_index":6447,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.extractparamsfromrequest(request",{"_index":13334,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.extractreferences(elements",{"_index":3036,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.extractvalidationerrordetails(childerror",{"_index":1534,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.extractvalidationerrordetails(validationerror",{"_index":1524,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.factory.createdto",{"_index":17036,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.feathersauthprovider.getpermittedschools(userid",{"_index":9409,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getpermittedtargets(userid",{"_index":9410,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getuserschoolpermissions(userid",{"_index":9395,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getusertargetpermissions(userid",{"_index":9396,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersserviceprovider.getservice('/etherpad/pads",{"_index":8260,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["this.feathersserviceprovider.getservice('/nexboard/boards",{"_index":14872,"title":{},"body":{"injectables/NexboardService.html":{}}}],["this.feathersserviceprovider.getservice('users",{"_index":9378,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`${targetmodel}/:scopeid/userpermissions",{"_index":9365,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`/users/:scopeid/${targetmodel",{"_index":9370,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`path",{"_index":22610,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.featureenabled",{"_index":13837,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.features",{"_index":6443,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.federalstate",{"_index":11733,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{}}}],["this.federalstaterepo.findbyname(name",{"_index":9476,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["this.federalstateservice.findfederalstatebyname",{"_index":15938,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.fetchbase64logo(externaltool.logourl",{"_index":8595,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.fetchexternaltool(schoolexternaltool",{"_index":19896,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.fetchschoolexternaltool(contextexternaltool",{"_index":19895,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.filesrepo.delete(file",{"_index":7858,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesrepo.findforcleanup(thresholddate",{"_index":7830,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent(copyfilesofparentparams",{"_index":6213,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(fileelement.id",{"_index":16515,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(lesson.id",{"_index":13951,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(submission.id",{"_index":18451,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(task.id",{"_index":19133,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.filesstorageservice.copyfilesofparent(userid",{"_index":10194,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.deletefilesofparent(payload",{"_index":10201,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload.parentid",{"_index":10197,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageuc.downloadbysecuritytoken(token",{"_index":9946,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filesstorageuc.updatesecuritystatus(token",{"_index":9954,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filestoragemqproducer.copyfilesofparent(param",{"_index":10116,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.deletefilesofparent(parentid",{"_index":10121,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.listfilesofparent(param",{"_index":10119,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestorageservice.download(filerecord",{"_index":16185,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.filesystemadapter.createdir(targetfolder",{"_index":11209,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.eol",{"_index":11224,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(__dirname",{"_index":11124,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(basedir",{"_index":11146,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(targetfolder",{"_index":11141,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(this.basedir",{"_index":11128,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readdir(basedir",{"_index":11144,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readfile(filepath",{"_index":11193,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.writefile(filepath",{"_index":11223,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filterallowed(userid",{"_index":4199,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.filterbypermission(elements",{"_index":7959,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.filtersubmissionsbypermission(submissions",{"_index":18476,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.filtertoolswithpermissions(userid",{"_index":5969,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.findallforstudent(user",{"_index":19191,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findallforteacher(user",{"_index":19192,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findalltasks(currentuser",{"_index":18804,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.findandcount(scope",{"_index":9867,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findbyexternalid(externalid",{"_index":20101,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.findbyid(accountid",{"_index":931,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findbyid(boardnode.parentid",{"_index":3341,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(id",{"_index":3317,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbynames([rolename.administrator",{"_index":16850,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.findbyuserid(dto.userid",{"_index":1119,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.findbyuserid(userid",{"_index":933,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findexistinggridelement(elementwithposition",{"_index":7550,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.findexistingtargets(columnboardids",{"_index":4842,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.findexternaltoolpseudonymsbyuserid(userid",{"_index":16419,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findimportusersandcount(scope.query",{"_index":12492,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this.findlegacyltitool",{"_index":14962,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findmigrationbyschool(schoolid",{"_index":20476,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.findnewsandcount(scope.query",{"_index":14742,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.findnextcloudtool",{"_index":14936,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findoneorfail(scope",{"_index":9864,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findpseudonymsbyuserid(userid",{"_index":16418,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findtasksandcount(scope.query",{"_index":19012,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.findteambyid(teamid",{"_index":4654,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.finduserafterprovisioningorthrow(externaluserid",{"_index":15095,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.findvideoconferencebyscopeidandscope(scopeid",{"_index":21301,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.finishcoursecopying(coursecopy",{"_index":6553,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.finished",{"_index":11996,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.add(user",{"_index":12062,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.getidentifiers('_id",{"_index":11999,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.remove(user",{"_index":12064,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.set(props.finished",{"_index":11986,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finishedat",{"_index":20223,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.finishedat.toisostring",{"_index":20345,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["this.firstname",{"_index":9336,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDto.html":{},"classes/UserInfoResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.firstnamesearchvalues",{"_index":20054,"title":{},"body":{"classes/UserDO.html":{}}}],["this.flagged",{"_index":11471,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.forcepasswordchange",{"_index":12107,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.formattedjwt",{"_index":1732,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.friendlyurl",{"_index":7020,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.from",{"_index":8284,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.frontchannel_logout_uri",{"_index":7026,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.frontchannellogouturi",{"_index":15176,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.fullname",{"_index":2220,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.fullpath",{"_index":16634,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.fwulearningcontentsuc.get(path",{"_index":10405,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["this.generatearray(amount",{"_index":3517,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.generatebrokersystems([system",{"_index":18701,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatebrokersystems(systems",{"_index":18708,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatechecksum(callname",{"_index":2376,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.generatepreview(params",{"_index":16180,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.generatepreview(previewfileparams",{"_index":16171,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.get('/api/v1/me",{"_index":1323,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.get('/events",{"_index":3975,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.get('consent",{"_index":10898,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.get('login",{"_index":10899,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.get(`${oauthconfig.authendpoint}?${query",{"_index":11033,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(location",{"_index":11057,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(path",{"_index":1375,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getadditionalerrorinfo(idtoken.email",{"_index":12638,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.getadminidandtoken",{"_index":1370,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.info?roomname=${groupname",{"_index":1357,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.members?roomname=${groupname",{"_index":1355,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.moderators?roomname=${groupname",{"_index":1353,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/users.list?${querystring",{"_index":1333,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getbbbrequestconfig(this.presentationurl",{"_index":2346,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getboardauthorizable(boarddo",{"_index":3131,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.getbydraftforcreatorquery(creatorid",{"_index":19118,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(false",{"_index":19119,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(isdraft",{"_index":19117,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(true",{"_index":19120,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getchildren(boardnode",{"_index":3257,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getchildren(boardnode).map((node",{"_index":3250,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getcollectionnames",{"_index":7764,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getcopyname(originaltask.name",{"_index":18871,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getcoursegroupstudentids",{"_index":11832,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.getdatabasecollection(collectionname",{"_index":7751,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getdefaultmaxduedate",{"_index":19201,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getdestinationcourse(parentparams.courseid",{"_index":18869,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getdestinationlesson(parentparams.lessonid",{"_index":18870,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getelement(position",{"_index":7392,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getelementbytargetid(id",{"_index":2708,"title":{},"body":{"entities/Board.html":{}}}],["this.getelements().map((el",{"_index":2718,"title":{},"body":{"entities/Board.html":{}}}],["this.getentitypermissions(userid",{"_index":9403,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.getexternalsubclientmapperconfiguration",{"_index":12973,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getfilteredgroupusers(externalgroup",{"_index":15972,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.getfinisheduserids",{"_index":12009,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getfirstopenindex",{"_index":7387,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getformat(mimetype",{"_index":16189,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getformat(outputformat",{"_index":16197,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getgradedsubmissions",{"_index":12043,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getgroupdata(groupname",{"_index":1342,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getid",{"_index":7341,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getidpmapperconfiguration(idpalias",{"_index":12994,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getinternalid(accountdto.id",{"_index":1193,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(accountid",{"_index":1207,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(id",{"_index":1185,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getjwtforuser(user.id",{"_index":15834,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.getjwtfromresponse(response",{"_index":1755,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getloginurl(sourcesystem",{"_index":20625,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getloginurl(targetsystem",{"_index":20622,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getmaxsubmissions",{"_index":12047,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getmeetinginfo(new",{"_index":2359,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getnewspermissions(userid",{"_index":14840,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getoauthconfig",{"_index":13067,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.getorconstructdashboardmodelentity(entity",{"_index":7569,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.getorcreatecourseboard(courseid",{"_index":3640,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.getparametervalue",{"_index":299,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.getparent",{"_index":11356,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getpath(subpath",{"_index":1736,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getpermittedcourses(user",{"_index":19177,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedlessons(user",{"_index":19178,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedtargets(userid",{"_index":14835,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getpostloginredirecturl",{"_index":15096,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getpreviewfile(params",{"_index":16179,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getpreviewname(filerecord",{"_index":16181,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getpropertyvalue(e",{"_index":8156,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.getprovisioningstrategy(oauthdata.system.provisioningstrategy",{"_index":16347,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getprovisioningstrategy(system.provisioningstrategy",{"_index":16343,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getredirecturi(migration",{"_index":15118,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getreferencesfromposition(from",{"_index":7363,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getrepository(tool",{"_index":16422,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getrepository(tool).findbyuseridandtoolidorfail(user.id",{"_index":16416,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getscopeinfo(userid",{"_index":21296,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.getseedfolder",{"_index":11131,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.getshorttitle",{"_index":6472,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.getsubmissioncontainer(submissioncontainerid",{"_index":18358,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.getsubmissionitems",{"_index":12019,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmittedsubmissions",{"_index":12042,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmitterids",{"_index":11837,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.gettargetfilters(userid",{"_index":14852,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.gettargetfolder(toseedfolder",{"_index":11208,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.gettasksitems",{"_index":11342,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.getteammemberids",{"_index":11831,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.geturl('create",{"_index":2341,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('end",{"_index":2361,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('getmeetinginfo",{"_index":2365,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('join",{"_index":2360,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl(filesstorageinternalactions.downloadbysecuritytoken",{"_index":1450,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.geturl(filesstorageinternalactions.updatesecuritystatus",{"_index":1452,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.getuser(userid",{"_index":9360,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.getuserwithpermissions(userid",{"_index":2052,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.getvideoconferenceoptions(scope",{"_index":21071,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.grade",{"_index":11803,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.gradecomment",{"_index":11805,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.graded",{"_index":3752,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.gradelevel",{"_index":4314,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.grant_type",{"_index":1615,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.granttype",{"_index":11861,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.grid",{"_index":7353,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(key",{"_index":7379,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(this.gridindexfromposition(position",{"_index":7400,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(i",{"_index":7391,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(key",{"_index":7359,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(this.gridindexfromposition(position",{"_index":7360,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].foreach((key",{"_index":7372,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].map((key",{"_index":7357,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(index",{"_index":7390,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(element.pos",{"_index":7355,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(position",{"_index":7403,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.values",{"_index":7385,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.gridelements",{"_index":7458,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.gridelements.set(props.gridelements",{"_index":7433,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.group.externalid",{"_index":17537,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.group.externalorganizationid",{"_index":17538,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.groupelements",{"_index":7457,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.groupid",{"_index":7456,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.grouprepo.delete(group",{"_index":10728,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyexternalsource(externalid",{"_index":10725,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyid(id",{"_index":10723,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.save(group",{"_index":10727,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.groupservice.findbyexternalsource",{"_index":15967,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.save(group",{"_index":15978,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupuser.externaluserid",{"_index":20190,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.groupuser.rolename",{"_index":20191,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.guest",{"_index":2225,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.guestpolicy",{"_index":2142,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.handlecolumnboardintegration(roomid",{"_index":17010,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.handleparameterstoinclude",{"_index":293,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.hasaccesstosubmission(user",{"_index":18428,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haschangedparameternames(oldparams",{"_index":9305,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterregex(newparams",{"_index":9306,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterscope(newparams",{"_index":9308,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparametertypes(newparams",{"_index":9307,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedrequiredparameters(oldparams",{"_index":9304,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschild(child",{"_index":2833,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.hascoursereadpermission(user",{"_index":16953,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hascoursewritepermission(user",{"_index":16954,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hasduplicateattributes(externaltool.parameters",{"_index":8673,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.hasexpertrole(userid",{"_index":21299,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.hasnewrequiredparameter(oldparams",{"_index":9303,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.hasparent",{"_index":3575,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.hasparentpermission(user",{"_index":19081,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.hasparenttaskreadaccess(user",{"_index":18433,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasparenttaskwriteaccess(user",{"_index":18432,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haspath(req.route",{"_index":16635,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.haspermission(user",{"_index":2041,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.haspermissionbyreferences(userid",{"_index":2046,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.haspermissions",{"_index":21271,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.hasreadaccess(user",{"_index":18430,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasscanstatuswontcheck",{"_index":9790,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.hasschoolmigrated(externalid",{"_index":17637,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.haswriteaccess(user",{"_index":18429,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.headers",{"_index":2082,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.height",{"_index":4095,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{}}}],["this.hidden",{"_index":3438,"title":{},"body":{"classes/BoardLessonResponse.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.host",{"_index":12159,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.hosturl",{"_index":20613,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.hosturl}/courses/${scopeid}?activetab=tools",{"_index":21291,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.hosturl}/teams/${event.teamid}?activetab=events",{"_index":21294,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.host}${location",{"_index":11044,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.httpservice",{"_index":1377,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.httpservice.get(input.system.provisioningurl",{"_index":17253,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.httpservice.get(logourl",{"_index":8596,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.httpservice.get(url",{"_index":2362,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{}}}],["this.httpservice.get(url.tostring",{"_index":3979,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.httpservice.post(tokenendpoint",{"_index":15220,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.httpservice.post(url",{"_index":2347,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.httpservice.request",{"_index":10919,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.httpstatus",{"_index":8539,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["this.hydracookies",{"_index":6040,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.hydrassoservice.generateconfig(oauthclientid",{"_index":10959,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.initauth(hydraoauthconfig",{"_index":10969,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.processredirect(dto",{"_index":10978,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrauc.getoauthtoken(oauthclientid",{"_index":15792,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.hydrauc.requestauthcode(currentuser.userid",{"_index":15798,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.hydrauri",{"_index":10892,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/clients",{"_index":10915,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/clients/${id",{"_index":10914,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/health/alive",{"_index":10908,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/requests/${flow}/${action}?${flow}_challenge=${challenge",{"_index":10917,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/requests/${flow}?${flow}_challenge=${challenge",{"_index":10918,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/requests/logout/accept?logout_challenge=${challenge",{"_index":10896,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/sessions/consent?subject=${user",{"_index":10909,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/sessions/consent?subject=${user}&client=${client",{"_index":10911,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/introspect",{"_index":10901,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.id",{"_index":618,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/BaseDO.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardLessonResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{},"entities/ClassEntity.html":{},"classes/ColumnResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextRef.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalToolResponse.html":{},"classes/FileDto-1.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/GridElement.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"classes/LegacySchoolDo.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PublicSystemResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/ScopeRef.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SystemDto.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"classes/UserDto.html":{},"classes/UserInfoResponse.html":{}}}],["this.identifiername",{"_index":14982,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.idmoauthservice.getoauthconfig",{"_index":18723,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.isoauthconfigavailable",{"_index":18720,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.resourceownerpasswordgrant(username",{"_index":14008,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.idmreferenceid",{"_index":1003,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["this.idmservice.findaccountbydbcaccountid(id.tostring",{"_index":812,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.idmservice.findaccountbyid(id",{"_index":810,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.idphint",{"_index":11857,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.idtoken",{"_index":15143,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.idtokenservice.createidtoken(userid",{"_index":15470,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.iframeproperties",{"_index":12160,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.importhash",{"_index":20052,"title":{},"body":{"classes/UserDO.html":{}}}],["this.importuserid",{"_index":12364,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.importuserschoolid",{"_index":17548,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.info.appname",{"_index":1548,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.basepath",{"_index":1551,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.mountsdescription",{"_index":1553,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.port",{"_index":1549,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.initializes3clientmap",{"_index":7824,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.injectenvvars(filecontent",{"_index":11194,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.injectenvvars(s",{"_index":11173,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.inmaintenancesince",{"_index":11723,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.inner",{"_index":5237,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.caninline",{"_index":5242,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.content",{"_index":5243,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.transform",{"_index":5244,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inputformat",{"_index":16753,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.inusermigration",{"_index":11726,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.invitationlink",{"_index":4311,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.isallowedaschild(child",{"_index":2828,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.isarchived",{"_index":18127,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.isauthenticationresponse(response.body",{"_index":1776,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isauthorizedstudent(userid",{"_index":18362,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.isautoparameterglobal(param",{"_index":8680,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isblocked",{"_index":9783,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.isclientidunique(externaltool",{"_index":9260,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.iscolumnboardfeatureflagactive",{"_index":7965,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.iscustomparameternameempty(param",{"_index":8675,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidregex(param",{"_index":8690,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidtype(param",{"_index":8689,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdirectory",{"_index":9630,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.isdraft",{"_index":3753,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isfinished",{"_index":3755,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.isfinishedforuser(user",{"_index":12048,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isglobalparametervalid(param",{"_index":8677,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isgraceperiodexpired(userloginmigration",{"_index":4465,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.isgraded",{"_index":11841,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.isgradedforuser(user",{"_index":12052,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isgroup",{"_index":7333,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.ishidden",{"_index":7028,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.islatest(contextexternaltool",{"_index":5297,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islatest(schoolexternaltool",{"_index":5296,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islocal",{"_index":7013,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.isnameunique(externaltool",{"_index":8670,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15089,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.isoptional",{"_index":7084,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.ispending",{"_index":9788,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispropertyprivacyprotected(e.target",{"_index":8163,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.isregexcommentmandatoryandfilled(param",{"_index":8684,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isregexvalid(param",{"_index":8687,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isschoolnumberunique(school",{"_index":17687,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.isslash(inputpath",{"_index":1762,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isslash(path",{"_index":1765,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.issubmitted",{"_index":11823,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.issubmittedforuser(user",{"_index":12051,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.issubstitutionteacher",{"_index":3754,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.issuer",{"_index":11871,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.isteacher",{"_index":7980,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.istemplate",{"_index":7011,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.istoolstatuslatestorthrow(userid",{"_index":19810,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.isuniqueemail(email",{"_index":1258,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.isuserreferenced(user",{"_index":1931,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["this.isusersubmitter(user",{"_index":11822,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.isusersubstitutionteacherincourse(user",{"_index":12049,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isvaluevalidfortype(param.type",{"_index":5360,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.isverified",{"_index":9761,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.isvideoconferencefeatureenabled",{"_index":21281,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.joinpath(os.tmpdir",{"_index":10018,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.jwksendpoint",{"_index":11873,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.jwt",{"_index":15013,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["this.jwtservice.sign(user",{"_index":1829,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.addtowhitelist(user.accountid",{"_index":1832,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.iswhitelisted(accountid",{"_index":12705,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["this.jwtvalidationadapter.removefromwhitelist(decodedjwt.accountid",{"_index":1837,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.kcadmin.callkcadminclient",{"_index":12910,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getadminuser",{"_index":13229,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getclientid",{"_index":12946,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.kcadmin.setpasswordpolicy",{"_index":13023,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadmin.testkcconnection",{"_index":13019,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadminclient",{"_index":12795,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.auth(this.kcsettings.credentials",{"_index":12796,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.callkcadminclient",{"_index":13095,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.del",{"_index":13131,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.find",{"_index":13128,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.findone",{"_index":13110,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.setconfig",{"_index":12791,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminservice.getclientid",{"_index":13057,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getclientsecret",{"_index":13059,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getwellknownurl",{"_index":13053,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.testkcconnection",{"_index":13066,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcsettings.baseurl}/realms/${this.kcsettings.realmname}/.well",{"_index":12797,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.clientid",{"_index":12800,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.credentials.username",{"_index":12799,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.realmname",{"_index":12810,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.key",{"_index":6993,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.key).tostring",{"_index":18182,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.key).tostring(cryptojs.enc.utf8",{"_index":18185,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.keycloakconfigservice.configurebrokerflows",{"_index":13025,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureclient",{"_index":13024,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureidentityproviders",{"_index":13027,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configurerealm",{"_index":13026,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigurationuc.check",{"_index":11594,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.clean",{"_index":11600,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.configure",{"_index":11612,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.migrate",{"_index":11620,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.seed",{"_index":11606,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakmanagementuc.check",{"_index":13169,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.configure",{"_index":13170,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.seed",{"_index":13171,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmigrationservice.migrate(skip",{"_index":13022,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.clean",{"_index":13020,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.seed",{"_index":13021,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.language",{"_index":12109,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastauthorizationtime",{"_index":12813,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.lastloginsystemchange",{"_index":12113,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastmodifytimestamp",{"_index":11886,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.lastname",{"_index":9338,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDto.html":{},"classes/UserInfoResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.lastnamesearchvalues",{"_index":20056,"title":{},"body":{"classes/UserDO.html":{}}}],["this.lastsuccessfulfullsync",{"_index":11882,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.lastsuccessfulpartialsync",{"_index":11884,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.lastsyncattempt",{"_index":11880,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.lasttriedfailedlogin",{"_index":419,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.lastupdatedat",{"_index":19473,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["this.launch_presentation_locale",{"_index":14186,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["this.ldapactive",{"_index":18569,"title":{},"body":{"classes/SystemDto.html":{}}}],["this.ldapconfig",{"_index":11943,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.ldapdn",{"_index":4316,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.ldapdn?.match(pattern_login_from_dn",{"_index":11478,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.ldapencryptionservice.encrypt",{"_index":11278,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.ldapservice.checkldapcredentials(system",{"_index":13350,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.legacylogger.debug",{"_index":9130,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.legayschoolrule",{"_index":17070,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lesson",{"_index":11983,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.hidden",{"_index":12059,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.name",{"_index":12058,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lessoncopyservice.copylesson",{"_index":3066,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.lessoncopyservice.updatecopiedembeddedtasks(elementcopystatus",{"_index":3084,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.lessoncopyuc.copylesson",{"_index":16994,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.lessonhidden",{"_index":18904,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.lessonreadpermission(user",{"_index":13920,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.lessonrepo",{"_index":11649,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.lessonrepo.createlesson(lessoncopy",{"_index":13735,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.lessonrepo.delete(lesson",{"_index":13952,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids([originallesson.course.id",{"_index":13849,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.lessonrepo.findallbycourseids([roomid",{"_index":17007,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.lessonrepo.findallbycourseids(courseids",{"_index":13953,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids(readcourseids",{"_index":19225,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findallbycourseids(writecourseids",{"_index":19224,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findbyid(lessonid",{"_index":13839,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/LessonService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.lessonrepo.findbyid(params.originallessonid",{"_index":13727,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.lessonrepo.findbyuserid(userid",{"_index":13954,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.save(lessoncopy",{"_index":13738,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.lessonrepo.save(updatedlessons",{"_index":13959,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrule",{"_index":17066,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lessonrule.haspermission(user",{"_index":19084,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.lessonservice.deletelesson(lesson",{"_index":13970,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbycourseids([courseid",{"_index":4983,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.lessonservice.findbyid(lessonid",{"_index":13965,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18035,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lessonservice.savelesson(lesson",{"_index":23083,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.lessonuc.delete(currentuser.userid",{"_index":13663,"title":{},"body":{"controllers/LessonController.html":{}}}],["this.lessonwritepermission(user",{"_index":13921,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.level",{"_index":3569,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.license",{"_index":11553,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.limit",{"_index":16064,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.loadaccount(username",{"_index":13341,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.loadaccounts",{"_index":13225,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.loadallcollectionsfromdatabase(folder",{"_index":11155,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadallcollectionsfromfilesystem(folder",{"_index":11154,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11190,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loader.getuserwithpermissions(userid",{"_index":2059,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.loader.loadauthorizableobject(entityname",{"_index":2053,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.loadtoolhierarchy(schoolexternaltoolid",{"_index":19809,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.loadusers",{"_index":13224,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.localcookies",{"_index":6038,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.location",{"_index":7076,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["this.logger",{"_index":17828,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.logger.alert(message",{"_index":8196,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.crit(message",{"_index":8197,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.debug",{"_index":3808,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["this.logger.debug('[ldap",{"_index":13312,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug('usersearcindex",{"_index":11239,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.debug(`adding",{"_index":14953,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`contextexternaltool",{"_index":19614,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.logger.debug(`created",{"_index":2452,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(`deleted",{"_index":1154,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(`deleting",{"_index":1152,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(`externaltool",{"_index":19671,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.logger.debug(`generating",{"_index":15833,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`oauth",{"_index":15831,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`removing",{"_index":14948,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`saved",{"_index":1101,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(`saving",{"_index":1099,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(`schoolexternaltool",{"_index":19932,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.logger.debug(`updated",{"_index":1143,"title":{},"body":{"injectables/AccountService.html":{},"injectables/BaseDORepo.html":{}}}],["this.logger.debug(`updating",{"_index":1141,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(err",{"_index":13310,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug(message",{"_index":14039,"title":{},"body":{"injectables/Logger.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.logger.debug(new",{"_index":19483,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.logger.debug(this.createmessage(message",{"_index":13425,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.emerg(message",{"_index":8195,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error('could",{"_index":8264,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["this.logger.error(`${err.message",{"_index":17127,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.error(`migration",{"_index":13187,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.error(`the",{"_index":7839,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.error(err",{"_index":13172,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.error(error",{"_index":1159,"title":{},"body":{"injectables/AccountService.html":{},"injectables/DeleteFilesUc.html":{},"controllers/OauthSSOController.html":{}}}],["this.logger.error(loggable",{"_index":10494,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.logger.error(message",{"_index":8198,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error(this.createmessage(result",{"_index":13427,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.http(logging",{"_index":16676,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.info",{"_index":13364,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.logger.info(message",{"_index":14038,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.info(new",{"_index":8599,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/NewsUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SanisResponseMapper.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["this.logger.info(this.createmessage(message",{"_index":13423,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.log",{"_index":7785,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["this.logger.log('before",{"_index":8023,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log('cleanup",{"_index":7792,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.log(`${oauthconfig.authendpoint}?${query",{"_index":11031,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(`...migrated",{"_index":13188,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`after",{"_index":8025,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log(`could",{"_index":17137,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(`initialized",{"_index":7846,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.log(`migration",{"_index":13186,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`stream",{"_index":17181,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(axiosconfig",{"_index":11032,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(err",{"_index":15745,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.log(localdto",{"_index":11055,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(new",{"_index":22640,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.notice(message",{"_index":14037,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.notice(this.createmessage(message",{"_index":13426,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.setcontext(`${context.getclass().name}::${context.gethandler().name",{"_index":16669,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.setcontext(accountservice.name",{"_index":1082,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.setcontext(boarduc.name",{"_index":3807,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.logger.setcontext(carduc.name",{"_index":4196,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.logger.setcontext(collaborativestorageadapter.name",{"_index":4520,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.logger.setcontext(collaborativestoragecontroller.name",{"_index":4597,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.logger.setcontext(collaborativestorageservice.name",{"_index":4647,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.logger.setcontext(databasemanagementuc.name",{"_index":11121,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.setcontext(deletefilesconsole.name",{"_index":7784,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.setcontext(deletefilesuc.name",{"_index":7823,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.setcontext(elementuc.name",{"_index":8092,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.logger.setcontext(filesstorageclientadapterservice.name",{"_index":10115,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.logger.setcontext(filesstorageconsumer.name",{"_index":10192,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.logger.setcontext(filesstorageproducer.name",{"_index":10296,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.logger.setcontext(fwulearningcontentsuc.name",{"_index":10442,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.logger.setcontext(hydraoauthuc.name",{"_index":10956,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.logger.setcontext(keycloakconsole.name",{"_index":11582,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.logger.setcontext(keycloakmanagementcontroller.name",{"_index":13167,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.setcontext(keycloakmigrationservice.name",{"_index":13180,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.setcontext(ldapservice.name",{"_index":13296,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.setcontext(newsuc.name",{"_index":14825,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.logger.setcontext(nextcloudstrategy.name",{"_index":14908,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.setcontext(oauthadapterservice.name",{"_index":15212,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.logger.setcontext(oauthservice.name",{"_index":15079,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.logger.setcontext(oauthssocontroller.name",{"_index":15741,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.setcontext(oauthuc.name",{"_index":15826,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.setcontext(previewservice.name",{"_index":16166,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.setcontext(restartuserloginmigrationuc.name",{"_index":16709,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(s3clientadapter.name",{"_index":17123,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.setcontext(sharetokenuc.name",{"_index":18067,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.logger.setcontext(startuserloginmigrationuc.name",{"_index":18154,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(submissionitemuc.name",{"_index":18357,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.logger.setcontext(youruc.name",{"_index":22638,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.warn",{"_index":14966,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.warn('no",{"_index":18495,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["this.logger.warn(`boardcopyservice",{"_index":3059,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warn(`completemigration",{"_index":17649,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(`could",{"_index":16177,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.warn(`placeholder",{"_index":11265,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.warn(`restartmigration",{"_index":17655,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(error",{"_index":16176,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.warning(message",{"_index":14036,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.warning(this.createmessage(message",{"_index":13424,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.loginname",{"_index":12366,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.loginuc.getlogindata(user",{"_index":14108,"title":{},"body":{"controllers/LoginController.html":{}}}],["this.loginurl",{"_index":20628,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.logmigrationinformation",{"_index":20515,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logmigrationinformation(currentuserid",{"_index":20502,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logo",{"_index":8336,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["this.logo_url",{"_index":6997,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.logobase64",{"_index":8489,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["this.logourl",{"_index":5656,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/County.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.logoutendpoint",{"_index":11869,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.logoutflowuc.logoutflow(params.challenge",{"_index":15554,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.logouturl",{"_index":2138,"title":{},"body":{"classes/BBBCreateConfig.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{},"injectables/UserMigrationService.html":{}}}],["this.lookuptoken(token",{"_index":18031,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lti11encryptionservice.sign(key.value",{"_index":14256,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["this.lti_message_type",{"_index":6999,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.lti_version",{"_index":7001,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.ltirepo.findbyoauthclientid(oauthclientid",{"_index":11067,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.ltitoolrepo.findbyclientidandislocal(clientid",{"_index":14390,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["this.ltitoolrepo.findbyname(this.client.oidcinternalname",{"_index":14964,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.ltitoolservice.findbyclientidandislocal(clientid",{"_index":15588,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.mandatory",{"_index":20350,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["this.mandatorysince",{"_index":20217,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.mapbasictoolconfigdotoentity(entitydo.config",{"_index":8866,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapbasictoolconfigdotoresponse(externaltool.config",{"_index":9025,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapbasictoolconfigtodo(entity.config",{"_index":8842,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapboardelements(board",{"_index":16878,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["this.mapcolumnboardelement(element",{"_index":7976,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.mapcontenttoresource(lesson.id",{"_index":4992,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcontexttypetodotype(entity.contexttype",{"_index":5797,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcontexttypetoentitytype(entitydo.contextref.type",{"_index":5802,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcourseteacherstocopyrightowners(course",{"_index":4976,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcourseuserstousergroup(course",{"_index":3142,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.mapcustomparameterdostoentities(entitydo.parameters",{"_index":8873,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparameterstodos(entity.parameters",{"_index":8849,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparametertoresponse",{"_index":9028,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapdomainobjecttoentityproperties(domainobject",{"_index":8754,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapdotoentityproperties(domainobject",{"_index":2460,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.mapelementtoentity(e",{"_index":7545,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapentitytodo(entity",{"_index":2447,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["this.mapentitytodo(school",{"_index":13550,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(schools[0",{"_index":13554,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(userentity",{"_index":20100,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.mapentitytodo(userloginmigration",{"_index":20387,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this.mapentitytodomainobject(entity",{"_index":8748,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapexternalsourceentitytoexternalsource(entity.externalsource",{"_index":10634,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapexternalsourcetoexternalsourceentity(props.externalsource",{"_index":10623,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapfromdtotoresponse(system",{"_index":18681,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["this.mapfromentitytodto(entity",{"_index":16802,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["this.mapgridelementtomodel(elementwithposition",{"_index":7572,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapgroupuserentitytogroupuser(groupuser",{"_index":10629,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.maplessonelement(element",{"_index":7975,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maplti11toolconfigdotoentity(entitydo.config",{"_index":8868,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.maplti11toolconfigdotoresponse(externaltool.config",{"_index":9026,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.maplti11toolconfigtodo(entity.config",{"_index":8844,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configdotoentity(entitydo.config",{"_index":8867,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configtodo(entity.config",{"_index":8843,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2toolconfigdotoresponse(externaltool.config",{"_index":9027,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapper.mapdashboardtoentity(dashboardmodel",{"_index":7608,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtoentity(modelentity",{"_index":7604,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtomodel(entity",{"_index":7602,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdotoprovideroauthclient",{"_index":9119,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.mapper.maptoresponse(board",{"_index":16982,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.mappers.find((mapper",{"_index":5525,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["this.mapreferencetoentity(ref",{"_index":7537,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapreferencetomodel(ref",{"_index":7566,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolcreateparams.config",{"_index":8963,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolupdateparams.config",{"_index":8950,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterdo",{"_index":8954,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(contextexternaltool.parameters",{"_index":5860,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(request.parameters",{"_index":5827,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigcreate(externaltoolcreateparams.config",{"_index":8964,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigupdate(externaltoolupdateparams.config",{"_index":8951,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigcreate(externaltoolcreateparams.config",{"_index":8965,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigupdate(externaltoolupdateparams.config",{"_index":8952,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.mapsanisroletorolename(source",{"_index":17294,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.maptaskelement(element",{"_index":7973,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":19582,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptocustomparameterentryresponse(schoolexternaltool.parameters",{"_index":17446,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptodo(entity",{"_index":4385,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoelementdtos(filtered",{"_index":7960,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoentity(domainobject",{"_index":4387,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoexternalgroupuser(relation",{"_index":17310,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":19579,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptoschoolexternaltoolresponse(tooldo",{"_index":17443,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptotoolreferenceresponse(toolreference",{"_index":9044,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.match",{"_index":12373,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.matchedby",{"_index":11491,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.matchsinglerule(selectedrules",{"_index":17079,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.materials.getitems",{"_index":11353,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.materials.isinitialized(true",{"_index":11352,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.materials.set(props.materials",{"_index":11335,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.max_redirects",{"_index":10981,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.maxexternaltoollogosizeinbytes",{"_index":8619,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["this.maxsubmissions",{"_index":3751,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.meetingid",{"_index":2098,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{}}}],["this.mergeelementintoposition(elementtomove",{"_index":7365,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.merlinreference",{"_index":11555,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.message",{"_index":3888,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.metadataprops.version",{"_index":5171,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["this.method",{"_index":16631,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.migrationcheckservice.shouldusermigrate",{"_index":15090,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.migrationerrorhandler(error",{"_index":15805,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.migrationmapper.mapdtotoresponse(migrationdto",{"_index":13480,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.mimetype",{"_index":6100,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.moderatormustapprovejoinrequests",{"_index":20834,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.moderatorpw",{"_index":2144,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.name",{"_index":2136,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"entities/ClassEntity.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"entities/FederalState.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/PropertyData.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{}}}],["this.name.length",{"_index":6464,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.newsrepo.delete(news",{"_index":14848,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallpublished(targets",{"_index":14838,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallunpublishedbyuser(targets",{"_index":14837,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findonebyid(id",{"_index":14841,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.save(news",{"_index":14831,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsuc.create",{"_index":14621,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.newsuc.delete(urlparams.newsid",{"_index":14636,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.findallforuser",{"_index":14626,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["this.newsuc.findonebyidforuser(urlparams.newsid",{"_index":14631,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.update",{"_index":14632,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.nexboardservice.createnexboard(params.user.id",{"_index":13799,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.nowplusdays(options.expiresindays",{"_index":18077,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.numberofdrafttasks",{"_index":3440,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofplannedtasks",{"_index":3441,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofpublishedtasks",{"_index":3439,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.oauthadapterservice.getpublickey(oauthconfig.jwksendpoint",{"_index":15106,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthadapterservice.sendauthenticationcodetokenrequest",{"_index":15103,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthclientid",{"_index":7018,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.oauthconfig",{"_index":11939,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{}}}],["this.oauthencryptionservice.decrypt(clientsecret",{"_index":13068,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.decrypt(oauthconfig.clientsecret",{"_index":15134,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthencryptionservice.encrypt(await",{"_index":13058,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.encrypt(tool.secret",{"_index":11074,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.oauthmigrationfinalfinish",{"_index":14512,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationfinished",{"_index":14510,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationmandatory",{"_index":14508,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationpossible",{"_index":14506,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid",{"_index":15612,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid(clientid",{"_index":12177,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.oauthproviderloginflowservice.isnextcloudtool(tool",{"_index":15614,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowuc.getloginrequest(params.challenge",{"_index":15546,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderloginflowuc.patchloginrequest",{"_index":15549,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentresponse(consentrequest",{"_index":15560,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentsessionstoresponse(session",{"_index":15568,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.maploginresponse(loginresponse",{"_index":15547,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapoauthclientresponse(client",{"_index":15530,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirect",{"_index":15555,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirectresponse",{"_index":15551,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderservice.acceptconsentrequest",{"_index":15472,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.acceptloginrequest",{"_index":15620,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.acceptlogoutrequest(challenge",{"_index":15631,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["this.oauthproviderservice.createoauth2client(datawithdefaults",{"_index":15444,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.createoauth2client(oauthclient",{"_index":9120,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.deleteoauth2client(id",{"_index":15446,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.getconsentrequest(challenge",{"_index":15461,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.getloginrequest(challenge",{"_index":15607,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.getoauth2client",{"_index":9148,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(config.clientid",{"_index":9155,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(id",{"_index":15440,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.listconsentsessions(userid",{"_index":15688,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.listoauth2clients",{"_index":15439,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.rejectconsentrequest",{"_index":15469,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.rejectloginrequest",{"_index":15625,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.revokeconsentsession(userid",{"_index":15689,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(id",{"_index":15445,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(loadedoauthclient.client_id",{"_index":9152,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthprovideruc.listconsentsessions",{"_index":15566,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthprovideruc.revokeconsentsession(currentuser.userid",{"_index":15571,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthservice.authenticateuser",{"_index":15835,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(systemid",{"_index":15161,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(targetsystemid",{"_index":20501,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.oauthservice.getauthenticationurl(system.oauthconfig",{"_index":15829,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.getredirecturi(userloginmigration",{"_index":15832,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.provisionuser",{"_index":15162,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.requesttoken",{"_index":10961,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthservice.validatetoken(oauthtokens.idtoken",{"_index":10963,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthuc.migrate(jwt",{"_index":15802,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.processoauthlogin",{"_index":15772,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.startoauthlogin",{"_index":15765,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.officialschoolnumber",{"_index":8304,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.officialschoolnumberfromsource",{"_index":15006,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.officialschoolnumberfromtarget",{"_index":15007,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.oidcconfig",{"_index":11941,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.oidcidentityprovidermapper.maptokeycloakidentityprovider(oidcconfig",{"_index":12986,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.oidcprovisioningservice.provisionexternalgroup(externalgroup",{"_index":16005,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternalschool(data.externalschool",{"_index":15996,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternaluser",{"_index":15998,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.openinnewtab",{"_index":19845,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.opennewtab",{"_index":7024,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.operation",{"_index":14646,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["this.options",{"_index":7892,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.options.adminid",{"_index":1393,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminpassword",{"_index":1398,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.admintoken",{"_index":1394,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminuser",{"_index":1397,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.copyrightowners",{"_index":5094,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.creationyear",{"_index":5095,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.enabled",{"_index":1448,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.options.exchange",{"_index":1454,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.options.filesservicebaseurl",{"_index":1467,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.options.identifier",{"_index":5092,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.module",{"_index":19431,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["this.options.routingkey",{"_index":1455,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.options.title",{"_index":5093,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.uri",{"_index":1403,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.version",{"_index":5096,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organization",{"_index":10662,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.organizationelements.map((organizationelement",{"_index":5225,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["this.organizations.flatmap((organization",{"_index":5089,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.map((organization",{"_index":5087,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.push(organizationbuilder",{"_index":5083,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.origin",{"_index":12592,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["this.origintoolid",{"_index":7053,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["this.orm.close",{"_index":14548,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["this.orm.getschemagenerator().ensureindexes",{"_index":7768,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.outdatedsince",{"_index":12115,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.pagecontentmapper.mapdtotoresponse(content",{"_index":20570,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.parameters",{"_index":5623,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["this.parameters.map((param",{"_index":14527,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.parametertype",{"_index":16071,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["this.params",{"_index":7142,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ShareTokenFactory.html":{}}}],["this.params(params",{"_index":737,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LtiToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["this.parentid",{"_index":6096,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto-1.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenPayloadResponse.html":{}}}],["this.parentname",{"_index":17955,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["this.parentpermission(user",{"_index":13926,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.parentsmap.get(card.id",{"_index":16564,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(column.id",{"_index":16562,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(columnboard.id",{"_index":16554,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(fileelement.id",{"_index":16566,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(richtextelement.id",{"_index":16569,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submission.id",{"_index":16575,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submissioncontainerelement.id",{"_index":16572,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.set(child.id",{"_index":16583,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsystemid",{"_index":15861,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["this.parenttype",{"_index":6102,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto-1.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{}}}],["this.password",{"_index":409,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.path",{"_index":3567,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.path.split(path_separator).filter((id",{"_index":3578,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.payload",{"_index":17927,"title":{},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.permission",{"_index":7884,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{}}}],["this.permissionmapper.mapbodytodto(permissionsdto",{"_index":4676,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.permissions",{"_index":9620,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IRoleProperties.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.permissions.filter((permission",{"_index":9621,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.persistandflush(dashboard",{"_index":7610,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.populate([task",{"_index":18974,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populate(tasks",{"_index":19055,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populateboard(board",{"_index":3641,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.populatereferences([submission",{"_index":18399,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populatereferences(submissions",{"_index":18401,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populateroles([teamuser.role",{"_index":19390,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(role.roles.getitems",{"_index":19395,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(user.roles.getitems",{"_index":20695,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this.populateroles(userentity.roles.getitems",{"_index":20099,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.position",{"_index":3571,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.positionfromgridindex(key",{"_index":7358,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.post('/api/v1/logout",{"_index":1331,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post('/api/v1/users.setstatus",{"_index":1326,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post(path",{"_index":1371,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.addmoderator",{"_index":1349,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.archive",{"_index":1339,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.create",{"_index":1361,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.delete",{"_index":1363,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.invite",{"_index":1347,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.kick",{"_index":1343,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.removemoderator",{"_index":1351,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.unarchive",{"_index":1335,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.create",{"_index":1365,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.createtoken",{"_index":1329,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.delete",{"_index":1368,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postloginredirect",{"_index":15375,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["this.preferences",{"_index":12111,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.preparebbbcreateconfigbuilder(scope",{"_index":20979,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.previewstatus",{"_index":6106,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.previousexternalid",{"_index":11722,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{},"classes/UserDO.html":{}}}],["this.privacy_permission",{"_index":7007,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.private",{"_index":11981,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.proceedbuttonurl",{"_index":16017,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.processcookies(localdto.response.headers['set",{"_index":11048,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.processredirectcascade(initresponse",{"_index":10970,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.product",{"_index":3868,"title":{},"body":{"classes/Builder.html":{}}}],["this.product.allowmodstounmuteusers",{"_index":2193,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.attendeepw",{"_index":2191,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.guest",{"_index":2243,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.guestpolicy",{"_index":2178,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.logouturl",{"_index":2176,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.moderatorpw",{"_index":2189,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.muteonstart",{"_index":2179,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.role",{"_index":2244,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.userid",{"_index":2245,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.welcome",{"_index":2177,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product['meta_bbb",{"_index":2181,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.properties",{"_index":19727,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["this.propertiestopopulate",{"_index":14748,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.props",{"_index":1858,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/DomainObject.html":{}}}],["this.props.caption",{"_index":9525,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.children",{"_index":2825,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.props.completed",{"_index":18289,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.context",{"_index":4699,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["this.props.copyrightowners",{"_index":5204,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.createdat",{"_index":2826,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.creationyear",{"_index":5203,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.description",{"_index":5124,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["this.props.duedate",{"_index":18219,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["this.props.gradelevel",{"_index":4270,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.height",{"_index":3998,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["this.props.href",{"_index":5159,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.html",{"_index":5252,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.id",{"_index":1859,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["this.props.identifier",{"_index":5157,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.inputformat",{"_index":16743,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.intendeduse",{"_index":5253,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.invitationlink",{"_index":4268,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.ldapdn",{"_index":4271,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.name",{"_index":4264,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.pseudonym",{"_index":16377,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.requireduserrole",{"_index":3113,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.resources.map",{"_index":5072,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.resources.map((content",{"_index":5214,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["this.props.resources.push(props",{"_index":5077,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.schoolid",{"_index":4265,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.source",{"_index":4273,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceoptions",{"_index":4274,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.successor",{"_index":4272,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.teacherids",{"_index":4267,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.text",{"_index":16741,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.title",{"_index":3996,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.toolid",{"_index":16378,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.tspuid",{"_index":4417,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["this.props.type",{"_index":5158,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.updatedat",{"_index":2827,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.url",{"_index":5126,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.userid",{"_index":16379,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.userids",{"_index":4266,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.userids?.filter((userid1",{"_index":4275,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.users",{"_index":3112,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.version",{"_index":5133,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.year",{"_index":4269,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.propsfactory",{"_index":2544,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.afterbuild(afterbuildfn",{"_index":2555,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.associations(associations",{"_index":2558,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.build(params",{"_index":2547,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.params(params",{"_index":2559,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.rewindsequence",{"_index":2561,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.transient(transient",{"_index":2560,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory['sequence",{"_index":2568,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.provider",{"_index":11867,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.provideroptions",{"_index":11896,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.provisioningservice.getdata",{"_index":20504,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.provisioningservice.getdata(systemid",{"_index":15085,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["this.provisioningservice.provisiondata(data",{"_index":15094,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.provisioningstrategy",{"_index":11945,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/System.html":{},"classes/SystemDto.html":{}}}],["this.provisioningurl",{"_index":11947,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/System.html":{},"classes/SystemDto.html":{}}}],["this.pseudonym",{"_index":8719,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["this.pseudonymrepo",{"_index":16435,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":16432,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.findbyuserid(userid",{"_index":16429,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymservice",{"_index":14940,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.pseudonymservice.findbyuserandtool(user",{"_index":12179,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.pseudonymservice.findorcreatepseudonym(user",{"_index":14250,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.publicbackendurl",{"_index":20614,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.publicsubmissions",{"_index":11987,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.published",{"_index":2790,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{}}}],["this.publishedat",{"_index":21310,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["this.put('consent",{"_index":10894,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.put('login",{"_index":10895,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.random(50",{"_index":3520,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.read",{"_index":9684,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.reason",{"_index":9729,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{}}}],["this.redirect",{"_index":2227,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"classes/UserMigrationResponse.html":{}}}],["this.redirect_to",{"_index":16591,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["this.redirect_uri",{"_index":1613,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.redirecturi",{"_index":11863,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.redirecturis",{"_index":15172,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.redisclient",{"_index":17827,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.references",{"_index":7327,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.getitems",{"_index":2711,"title":{},"body":{"entities/Board.html":{}}}],["this.references.length",{"_index":7335,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.set(elements",{"_index":2715,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(newlist",{"_index":2749,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(onlyexistingreferences",{"_index":2738,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(props.references",{"_index":2704,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(references",{"_index":7422,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.referer",{"_index":10994,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.refid",{"_index":9677,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refownermodel",{"_index":9646,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.refpermmodel",{"_index":9679,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refreshtoken",{"_index":15145,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["this.regex",{"_index":7080,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.regexcomment",{"_index":7082,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.region",{"_index":11786,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.registerparentdata(parent",{"_index":16552,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.registerstrategy(iservstrategy",{"_index":16339,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(oidcmockstrategy",{"_index":16340,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(sanisstrategy",{"_index":16338,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.rejectconsentrequest(challenge",{"_index":15467,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.rejectloginrequest(challenge",{"_index":15609,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.relatedresources",{"_index":11557,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.relation.ktid",{"_index":10706,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.relation.rollen[0",{"_index":10708,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.removedeletedreferences(boardelementtargets",{"_index":2732,"title":{},"body":{"entities/Board.html":{}}}],["this.removefromposition(from",{"_index":7366,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removeprotectedentityfields(newentity",{"_index":2454,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.removeroomsnotinlist(rooms",{"_index":7367,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removesecrets(collectionname",{"_index":11214,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromstorageproviders(jsondocuments",{"_index":11289,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromsystems(jsondocuments",{"_index":11288,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.repeatcommand",{"_index":11599,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.replaceurlsincontents(lessoncopy.contents",{"_index":13746,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.repo.findallbyuserid(userid",{"_index":6835,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyid(courseid",{"_index":6834,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyowneruserid(userid",{"_index":10083,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbypermissionrefid(userid",{"_index":10078,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbyuserid(userid",{"_index":6677,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(coursegroups",{"_index":6680,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(courses",{"_index":6838,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.save(entities",{"_index":10082,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repos.get(type",{"_index":11661,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.boardnode",{"_index":11656,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.contextexternaltoolentity",{"_index":11658,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.course",{"_index":11640,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.coursegroup",{"_index":11642,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.lesson",{"_index":11648,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.school",{"_index":11646,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.schoolexternaltoolentity",{"_index":11654,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.submission",{"_index":11652,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.task",{"_index":11638,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.team",{"_index":11650,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.user",{"_index":11644,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.request",{"_index":10900,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.request('delete",{"_index":10916,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.request('get",{"_index":10907,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.request('put",{"_index":10897,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.request.app.get('feathersapp",{"_index":9443,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["this.requestmapper.mapschoolexternaltoolrequest(body",{"_index":19929,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.requesttimeout",{"_index":19467,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["this.requesttoken",{"_index":9731,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.requesttoken(authcode",{"_index":15083,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.resizeandconvert(original",{"_index":16186,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.resolvepermissions(user",{"_index":16123,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(innerroles",{"_index":16122,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(user.roles.getitems",{"_index":16120,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolveplaceholder(placeholder.substring(2",{"_index":11256,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.resolverepo(objectname",{"_index":11666,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.resolvetokenrequest(responsetokenobservable",{"_index":15222,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.resource_link_id",{"_index":7003,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.resourceelements.map((resourceelement",{"_index":5247,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["this.resourceid",{"_index":14983,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resourcename",{"_index":14981,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resources.push(resource",{"_index":5086,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.response",{"_index":1316,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/HydraRedirectDto.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.responsemapper.maptoexternalgroupdtos(axiosresponse.data",{"_index":17257,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternalschooldto(axiosresponse.data",{"_index":17256,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternaluserdto(axiosresponse.data",{"_index":17254,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(createdschoolexternaltooldo",{"_index":19937,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":19927,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(updated",{"_index":19931,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptosearchlistresponse(found",{"_index":19924,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsetype",{"_index":11864,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.restartuserloginmigrationuc.restartmigration",{"_index":20314,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.role",{"_index":2222,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["this.roleid",{"_index":10733,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.roleids",{"_index":20163,"title":{},"body":{"classes/UserDto.html":{}}}],["this.rolename",{"_index":8296,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.rolenames",{"_index":12368,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.rolenames.push(...props.rolenames",{"_index":11464,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.rolerepo.findbyid(id",{"_index":16851,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbyids(ids",{"_index":16853,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbynames(names",{"_index":16855,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.roles",{"_index":7005,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalUserDto.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["this.roles.getitems",{"_index":11676,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.isinitialized(true",{"_index":11673,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.set(props.roles",{"_index":11671,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roleservice.findbyid(roleid",{"_index":4655,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.roleservice.findbynames([externalgroupuser.rolename",{"_index":15982,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(externaluser.roles",{"_index":15945,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(names",{"_index":16861,"title":{},"body":{"injectables/RoleUc.html":{}}}],["this.roleservice.getprotectedroles",{"_index":20792,"title":{},"body":{"injectables/UserService.html":{}}}],["this.rollbackmigration(schooldocopy",{"_index":17630,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.rollbackmigration(userdocopy",{"_index":20641,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.room",{"_index":7954,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.color",{"_index":8002,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.id",{"_index":8001,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.isfinished",{"_index":8005,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.name",{"_index":8003,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.substitutionteachers.contains(this.user",{"_index":7971,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.teachers.contains(this.user",{"_index":7970,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomid",{"_index":18126,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.roomsauthorisationservice",{"_index":7957,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.haslessonreadpermission(this.user",{"_index":7964,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.hastaskreadpermission(this.user",{"_index":7963,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsservice.updateboard(board",{"_index":17035,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.roomsservice.updateboard(originalboard",{"_index":6542,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.roomsuc.getboard(urlparams.roomid",{"_index":16981,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.reorderboardelements(urlparams.roomid",{"_index":16987,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.updatevisibilityofboardelement",{"_index":16983,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.rootpath",{"_index":11889,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.routepath",{"_index":16636,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.rulemanager.selectrule(user",{"_index":2044,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.rules",{"_index":17063,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.rules.filter((rule",{"_index":17077,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.s3clientmap.get(storageprovider.id",{"_index":7865,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.set(provider.id",{"_index":7844,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.size",{"_index":7847,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.salt",{"_index":2371,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.save(dto",{"_index":1139,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.save(this.create(course",{"_index":6798,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this.save(this.create(lesson",{"_index":13886,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this.save(this.create(task",{"_index":18973,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.saveall([entitydo",{"_index":2437,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.savevideoconference(vcdo",{"_index":21303,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.school",{"_index":6429,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{}}}],["this.school.id",{"_index":11490,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.schoolexternaltoolid",{"_index":5653,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["this.schoolexternaltoolrepo",{"_index":11655,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolexternaltoolrepo.deletebyexternaltoolid(toolid",{"_index":9143,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.deletebyid(schoolexternaltoolid",{"_index":17487,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.find",{"_index":17480,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyexternaltoolid(toolid",{"_index":9139,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyid(schoolexternaltoolid",{"_index":17479,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.save(schoolexternaltool",{"_index":17489,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrule",{"_index":17072,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.schoolexternaltoolservice.deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":17515,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.findschoolexternaltools",{"_index":8428,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.getschoolexternaltoolbyid",{"_index":5990,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["this.schoolexternaltoolservice.getschoolexternaltoolbyid(contextexternaltool.schooltoolref.schooltoolid",{"_index":19899,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool",{"_index":17513,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool(updated",{"_index":17516,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltooluc.createschoolexternaltool",{"_index":19936,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.deleteschoolexternaltool(currentuser.userid",{"_index":19934,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.findschoolexternaltools(currentuser.userid",{"_index":19922,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.getschoolexternaltool",{"_index":19926,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.updateschoolexternaltool",{"_index":19930,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltoolvalidationservice.validate(schoolexternaltool",{"_index":17512,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolid",{"_index":4304,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["this.schoolmigrationservice.hasschoolmigrateduser(schoolid",{"_index":4471,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.markunmigratedusersasoutdated(schoolid",{"_index":4473,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.migrateschool",{"_index":20516,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.migrateschool(data.externalschool.externalid",{"_index":15841,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.schoolmigrationservice.schooltomigrate",{"_index":15838,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.unmarkoutdatedusers(schoolid",{"_index":13635,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolmigrationservice.validategraceperiod(existinguserloginmigration",{"_index":13631,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.schoolname",{"_index":17559,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.schoolnumber_prefix_regex",{"_index":17289,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.schoolparameters",{"_index":11688,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.schoolrepo",{"_index":11647,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolrepo.findbyexternalid(externalid",{"_index":13612,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(id",{"_index":13611,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(schoolid",{"_index":13336,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyschoolnumber(school.officialschoolnumber",{"_index":17690,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.schoolrepo.findbyschoolnumber(schoolnumber",{"_index":13613,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.save(school",{"_index":13610,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrule.haspermission(user",{"_index":23093,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschool(params.schoolid",{"_index":23078,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschoolbyexternalid",{"_index":15930,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.schoolservice.getschoolbyid(ldapuser.schoolid",{"_index":12642,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.schoolservice.getschoolbyid(schoolexternaltool.schoolid",{"_index":321,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ToolPermissionHelper.html":{}}}],["this.schoolservice.getschoolbyid(schoolid",{"_index":13636,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.getschoolbyid(userdo.schoolid",{"_index":17632,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber",{"_index":17634,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber(officialschoolnumber",{"_index":14467,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["this.schoolservice.hasfeature(schoolid",{"_index":21285,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.schoolservice.removefeature(schoolid",{"_index":20458,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.removefeature(userloginmigration.schoolid",{"_index":20415,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.schoolservice.save(originalschooldo",{"_index":17660,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.save(school",{"_index":15942,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.save(schooldo",{"_index":17659,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schooltool",{"_index":5689,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.schooltoolid",{"_index":5844,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["this.schooltoolref",{"_index":5617,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.schooluc.getmigration(schoolparams.schoolid",{"_index":13482,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schooluc.setmigration",{"_index":13475,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schoolvalidationservice.validate(school",{"_index":13614,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolyear",{"_index":11730,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.schoolyearrepo.findcurrentyear",{"_index":17707,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearservice.getcurrentschoolyear",{"_index":15937,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.scope",{"_index":7078,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/ScopeRef.html":{},"entities/System.html":{}}}],["this.searchbyusername(username",{"_index":930,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.searchuser",{"_index":11891,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.searchuserpassword",{"_index":11893,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.secret",{"_index":6995,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.secretaccesskey",{"_index":11784,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.securitycheck",{"_index":9639,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.reason",{"_index":9754,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.requesttoken",{"_index":9756,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.status",{"_index":9753,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.updatedat",{"_index":9755,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheckstatus",{"_index":6094,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.selectconfigureaction(newconfigs",{"_index":12956,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.sendhttpresponse(error",{"_index":10496,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.service.createteam(team",{"_index":4678,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.deleteteam(teamid",{"_index":4677,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteam(team",{"_index":4679,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteampermissionsforrole",{"_index":4673,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.sessionhandler(session",{"_index":15771,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.setmatch(props.user",{"_index":11469,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.share",{"_index":19301,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["this.sharetokenrepo.findonebytoken(token",{"_index":18029,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokenrepo.save(sharetoken",{"_index":18028,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokens",{"_index":9641,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.sharetokenservice.createtoken(payload",{"_index":18078,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptoken(token",{"_index":18083,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptokenwithparentname(token",{"_index":18079,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenuc.createsharetoken",{"_index":17901,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.importsharetoken",{"_index":17914,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.lookupsharetoken(currentuser.userid",{"_index":17910,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.shorttitle",{"_index":6699,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.shouldskipconsent(tool",{"_index":15618,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.size",{"_index":6092,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.skip",{"_index":16063,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.skipconsent",{"_index":7022,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.sortbyoriginalorder(resolved",{"_index":3065,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.source",{"_index":4320,"title":{},"body":{"entities/ClassEntity.html":{},"entities/CourseNews.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["this.sourcedescription",{"_index":6746,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["this.sourceid",{"_index":6073,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.sourceoptions",{"_index":4322,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.sourcesystem",{"_index":20213,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["this.sourcesystemid",{"_index":20335,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.stack",{"_index":8538,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.startdate",{"_index":6439,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["this.startedat",{"_index":20219,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.startuserloginmigrationuc.startmigration",{"_index":20310,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.state",{"_index":7882,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{}}}],["this.status",{"_index":2078,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/BoardTaskResponse.html":{},"classes/CopyApiResponse.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["this.statuscode",{"_index":1313,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.statustext",{"_index":2080,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.storageclient.create(filepath",{"_index":16188,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.deletedirectory(path",{"_index":16175,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.get(filepath",{"_index":16183,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.get(path",{"_index":10443,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.storagefilename",{"_index":9631,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageprovider",{"_index":9633,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageproviderrepo.findall",{"_index":7842,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.strategies",{"_index":19801,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(externaltool.config.type",{"_index":19811,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(systemstrategy",{"_index":16349,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.get(toolconfigtype",{"_index":19806,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(strategy.gettype",{"_index":16341,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.set(toolconfigtype.basic",{"_index":19802,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.lti11",{"_index":19803,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.oauth2",{"_index":19804,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategy",{"_index":4521,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.createteam(team",{"_index":4524,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.deleteteam(teamid",{"_index":4523,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteam(team",{"_index":4525,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteampermissionsforrole(this.mapper.mapdomaintoadapter(team",{"_index":4522,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.stringifiedmessage(message",{"_index":13429,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.stringifymessage(message",{"_index":14076,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["this.student",{"_index":11795,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.student.id",{"_index":11830,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.students",{"_index":6638,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getidentifiers('_id",{"_index":6640,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.remove((u",{"_index":6643,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.set(props.students",{"_index":6431,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{}}}],["this.subjects",{"_index":11559,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.submissionitemservice.create(userid",{"_index":8103,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.submissionitemservice.findbyid(submissionitemid",{"_index":18365,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemservice.update(submissionitem",{"_index":18366,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemuc.findsubmissionitems(currentuser.userid",{"_index":3703,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionitemuc.updatesubmissionitem",{"_index":3709,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionrepo",{"_index":11653,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.submissionrepo.delete(submission",{"_index":18452,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findallbytaskids([taskid",{"_index":18450,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findbyid(submissionid",{"_index":18449,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrule",{"_index":17071,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.submissions",{"_index":11991,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.getitems",{"_index":11994,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.isinitialized(true",{"_index":11992,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.set(props.submissions",{"_index":11985,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissionservice.delete(submission",{"_index":18480,"title":{},"body":{"injectables/SubmissionUc.html":{},"injectables/TaskService.html":{}}}],["this.submissionservice.findallbytask(taskid",{"_index":18474,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionservice.findbyid(submissionid",{"_index":18477,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionuc.delete(currentuser.userid",{"_index":18260,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submissionuc.findallbytask(currentuser.userid",{"_index":18253,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submitted",{"_index":3750,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.submitters",{"_index":18456,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.submittingcoursegroupname",{"_index":18457,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.substitutionteachers.contains(user",{"_index":6456,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.substitutionteachers.remove((u",{"_index":6477,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.substitutionteachers.set(props.substitutionteachers",{"_index":6433,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.successful",{"_index":18490,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["this.successor",{"_index":4318,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.system",{"_index":8318,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.systemid",{"_index":417,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"classes/ExternalSource.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.systemoidcservice.findall",{"_index":12954,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.systemrepo.findall",{"_index":18707,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oauth",{"_index":18704,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oidc",{"_index":18654,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(type",{"_index":18706,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(id",{"_index":18650,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemdto.id",{"_index":18711,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemid",{"_index":13335,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.systemrepo.save(system",{"_index":18719,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systems",{"_index":13505,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["this.systems.set(props.systems",{"_index":11728,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.systemservice.findbyid(id",{"_index":18738,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemservice.findbyid(sourceid",{"_index":20619,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbyid(systemid",{"_index":15080,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{}}}],["this.systemservice.findbyid(targetid",{"_index":20620,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbytype(systemtypeenum.oauth",{"_index":18736,"title":{},"body":{"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.systemservice.findbytype(type",{"_index":18737,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemuc.findbyfilter(filterparams.type",{"_index":18546,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.systemuc.findbyid(params.systemid",{"_index":18551,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.tags",{"_index":11561,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.target",{"_index":14661,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.targetgroups",{"_index":11563,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.targetid",{"_index":14660,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.targetmodel",{"_index":6756,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.targetsystem",{"_index":20215,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["this.targetsystemid",{"_index":20337,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.task",{"_index":11799,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.taskcopyservice.copytask",{"_index":3069,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.taskcopyuc.copytask",{"_index":18818,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskrepo",{"_index":11639,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.taskrepo.createtask(taskcopy",{"_index":18845,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.delete(task",{"_index":19135,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.findallbyparentids",{"_index":19203,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findallfinishedbyparentids",{"_index":19185,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findbyid(params.originaltaskid",{"_index":18837,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.findbyid(taskid",{"_index":18867,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrepo.findbysingleparent",{"_index":18873,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.taskrepo.findbysingleparent(creatorid",{"_index":19132,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.save(task",{"_index":18848,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrule",{"_index":17067,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.taskrule.haspermission(user",{"_index":18435,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.tasks.getitems",{"_index":11340,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.tasks.isinitialized(true",{"_index":11338,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.taskservice.delete(task",{"_index":19229,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18037,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.taskservice.findbysingleparent(userid",{"_index":4995,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{}}}],["this.taskuc.changefinishedforuser(currentuser.userid",{"_index":18813,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.delete(currentuser.userid",{"_index":18820,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findall(currentuser.userid",{"_index":18807,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findallfinished(currentuser.userid",{"_index":18806,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.revertpublished(currentuser.userid",{"_index":18816,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.teacherids",{"_index":4308,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.teachers.remove((u",{"_index":6475,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.teachers.set(props.teachers",{"_index":6432,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.teamid",{"_index":3933,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.teammembers",{"_index":11813,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.getidentifiers('_id",{"_index":11816,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.set(props.teammembers",{"_index":11808,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teamname",{"_index":19318,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["this.teamrule",{"_index":17068,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.teamsmapper.mapentitytodto(await",{"_index":4648,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo",{"_index":11651,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.teamsrepo.findbyid(scopeid",{"_index":21262,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.teamsrepo.findbyid(teamid",{"_index":4649,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo.findbyuserid(userid",{"_index":12167,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/TeamService.html":{}}}],["this.teamsrepo.save(teams",{"_index":19341,"title":{},"body":{"injectables/TeamService.html":{}}}],["this.teamstorageuc.updateuserpermissionsforrole(currentuser.userid",{"_index":4599,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.teamsubmissions",{"_index":11989,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.teamusers",{"_index":19246,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.text",{"_index":16752,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.throwifnotmoderator(bbbrole",{"_index":20976,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.thrownothandled(card",{"_index":5578,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(column",{"_index":5577,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(columnboard",{"_index":5576,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(fileelement",{"_index":5581,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(richtextelement",{"_index":5586,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(submission",{"_index":5590,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(submissioncontainerelement",{"_index":5589,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thumbnail",{"_index":9634,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.thumbnailrequesttoken",{"_index":9637,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.timeout",{"_index":10297,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"todo.html":{}}}],["this.timeout(10000",{"_index":22761,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["this.timeoutms",{"_index":3972,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.timestamps",{"_index":3668,"title":{},"body":{"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.timetowait",{"_index":3842,"title":{},"body":{"classes/BruteForceError.html":{}}}],["this.title",{"_index":2789,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"classes/CardResponse.html":{},"entities/ColumnBoardTarget.html":{},"classes/ColumnResponse.html":{},"classes/CopyApiResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/ErrorResponse.html":{},"classes/GridElement.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/TeamNews.html":{}}}],["this.title.substring(0",{"_index":7338,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.toggleuserloginmigrationuc.setmigrationmandatory",{"_index":20316,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.token",{"_index":411,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["this.tokenendpoint",{"_index":11859,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.tokenendpointauthmethod",{"_index":15174,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.tokengenerator.generatesharetoken",{"_index":18025,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.tokenurl",{"_index":11926,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.tool",{"_index":11686,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.toolfeatures.backendurl",{"_index":8584,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolfeatures.contextconfigurationenabled",{"_index":8385,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["this.toolfeatures.ctltoolstabenabled",{"_index":15586,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.toolfeatures.maxexternaltoollogosizeinbytes",{"_index":8592,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolid",{"_index":8721,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["this.toollaunchservice.generatelaunchrequest(toollaunchdata",{"_index":19823,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchservice.getlaunchdata(userid",{"_index":19822,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchuc.gettoollaunchrequest",{"_index":19719,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions",{"_index":5961,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions(userid",{"_index":5957,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{}}}],["this.toolpermissionhelper.ensureschoolpermissions(userid",{"_index":8448,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.toolreferenceuc.gettoolreferences",{"_index":19692,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.toolvalidationservice.validatecreate(externaltool",{"_index":9208,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolvalidationservice.validateupdate(toolid",{"_index":9210,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolversion",{"_index":5625,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["this.toparams(config",{"_index":2342,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.total",{"_index":16009,"title":{},"body":{"classes/Page.html":{},"classes/PaginationResponse.html":{}}}],["this.tovideoconferencestateresponse(videoconferenceinfo.state",{"_index":21131,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["this.trygetprevieworgenerate(previewfileparams",{"_index":16172,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.tspuid",{"_index":4423,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["this.type",{"_index":2621,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BusinessError.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"classes/ContextRef.html":{},"classes/CopyApiResponse.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/ErrorResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"classes/RichText.html":{},"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponse.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/ToolLaunchData.html":{}}}],["this.uc.getpagecontent",{"_index":20566,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.until",{"_index":8286,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.untildate",{"_index":6437,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{}}}],["this.updatecopiedembeddedtaskid(value",{"_index":13755,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.updatecopiedembeddedtasks(status",{"_index":13741,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.updatecopiedembeddedtasksoflessons(status",{"_index":3043,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.updatedat",{"_index":622,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/County.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UserDO.html":{}}}],["this.updateentity(domainobject",{"_index":2443,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.updateexistinggridelement(existing",{"_index":7552,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.updateexistingmigration(existinguserloginmigration",{"_index":20461,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.updatefileurls(taskcopy",{"_index":18839,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.updateidentityprovider(configureaction.config",{"_index":12961,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updateoauth2toolconfig(toupdate",{"_index":9122,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateoauthclientorthrow(loadedoauthclient",{"_index":9150,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateorcreateidpdefaultmapper(oidcconfig.idphint",{"_index":12989,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updater",{"_index":14662,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.updateteamusersingroup(groupid",{"_index":14919,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.url",{"_index":6090,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/LdapConfig.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"entities/Material.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["this.usecentralldap",{"_index":17565,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.user",{"_index":7430,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DtoCreator.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.userdata",{"_index":18317,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["this.userdorepo.find(query",{"_index":20789,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyexternalid(externalid",{"_index":20790,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyid(id",{"_index":20785,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.save(user",{"_index":20786,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.saveall(users",{"_index":20788,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userid",{"_index":415,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/BBBJoinConfig.html":{},"classes/DashboardEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GridElement.html":{},"classes/GroupUser.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserDataResponse.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["this.userids",{"_index":4307,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["this.userimportuc.endschoolinmaintenance(currentuser.userid",{"_index":12341,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.findallimportusers(currentuser.userid",{"_index":12318,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.removematch(currentuser.userid",{"_index":12327,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.saveallusersmatches(currentuser.userid",{"_index":12337,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.setmatch(currentuser.userid",{"_index":12323,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.startschoolinusermigration(currentuser.userid",{"_index":12339,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.updateflag(currentuser.userid",{"_index":12328,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userinfourl",{"_index":11929,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.userloginmigration",{"_index":11732,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.userloginmigrationid",{"_index":13507,"title":{},"body":{"classes/LegacySchoolDo.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["this.userloginmigrationrepo.delete(userloginmigration",{"_index":20479,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid",{"_index":14469,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid(schoolid",{"_index":17640,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigration",{"_index":20455,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigrationdo",{"_index":20460,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrevertservice.revertuserloginmigration(updateduserloginmigration",{"_index":4472,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationrule",{"_index":17075,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.userloginmigrationservice.closemigration",{"_index":4469,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.deleteuserloginmigration(userloginmigration",{"_index":20416,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.userloginmigrationservice.findmigrationbyschool",{"_index":4461,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.findmigrationbyschool(schoolid",{"_index":13630,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.findmigrationbyuser",{"_index":20498,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.restartmigration(schoolid",{"_index":16710,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.setmigration",{"_index":13632,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.setmigrationmandatory(schoolid",{"_index":19482,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.startmigration(schoolid",{"_index":18156,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationuc.finduserloginmigrationbyschool",{"_index":20307,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.getmigrations",{"_index":20300,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.migrate(jwt",{"_index":20321,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.usermatchschoolid",{"_index":17547,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.usermigrationservice.getmigrationconsentpageredirect",{"_index":15092,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.usermigrationservice.getpagecontent",{"_index":20495,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.usermigrationservice.migrateuser",{"_index":15842,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.username",{"_index":407,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.userrepo",{"_index":11645,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.userrepo.findbyemail(email",{"_index":1242,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/UserService.html":{}}}],["this.userrepo.findbyid(accountuserid",{"_index":14017,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.userrepo.findbyid(id",{"_index":20782,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyid(userid",{"_index":6539,"title":{},"body":{"injectables/CourseCopyService.html":{},"interfaces/IRepoLoader.html":{},"injectables/LdapStrategy.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsUc.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrepo.save(user",{"_index":20799,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrule",{"_index":17069,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.users",{"_index":8282,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.userservice.findbyemail(email",{"_index":12654,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid",{"_index":12635,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid(externalgroupuser.externaluserid",{"_index":15981,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluser.externalid",{"_index":15947,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluserid",{"_index":14470,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{}}}],["this.userservice.findbyid(currentuserid",{"_index":15617,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.userservice.findbyid(teamuser.userid",{"_index":14939,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.userservice.findbyid(userid",{"_index":12168,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["this.userservice.findusers",{"_index":17643,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.getdisplayname(user",{"_index":12169,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["this.userservice.getresolveduser(userid",{"_index":15844,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.userservice.save(newuser",{"_index":23069,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.userservice.save(user",{"_index":15960,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.save(userdo",{"_index":20647,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.save(userdocopy",{"_index":20642,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.saveall(migratedusers.data",{"_index":17654,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.saveall(notmigratedusers.data",{"_index":17648,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.useruc.findallunmatchedusers(currentuser.userid",{"_index":12332,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.useruc.me(currentuser.userid",{"_index":20019,"title":{},"body":{"controllers/UserController.html":{}}}],["this.useruc.patchlanguage(currentuser.userid",{"_index":20023,"title":{},"body":{"controllers/UserController.html":{}}}],["this.validate(props",{"_index":4302,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.validatelti11config(externaltool",{"_index":9247,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateoauth2config(externaltool",{"_index":9246,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateparameter(param",{"_index":5352,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.validatereordering(ids",{"_index":2713,"title":{},"body":{"entities/Board.html":{}}}],["this.validaterocketchatconfig",{"_index":1391,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.validatestatus",{"_index":10968,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.validatesubject(currentuser",{"_index":15462,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.validatetoken(oauthtokens.idtoken",{"_index":15084,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.validateusersmatch(dashboard",{"_index":7637,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.validationerrors.push(new",{"_index":1530,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.validperiod",{"_index":10660,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.value",{"_index":7037,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/LtiToolDO.html":{},"classes/PropertyData.html":{}}}],["this.vcsettings.enabled",{"_index":21259,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.vcsettings.hosturl",{"_index":21258,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.verifyfeaturesenabled(user.schoolid",{"_index":20971,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.version",{"_index":5659,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.versionkey",{"_index":9655,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.videoconferencecreateuc.createifnotrunning(currentuser.userid",{"_index":20918,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceenduc.end(currentuser.userid",{"_index":20927,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceinfouc.getmeetinginfo(currentuser.userid",{"_index":20923,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferencejoinuc.join(currentuser.userid",{"_index":20920,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferencerepo.findbyscopeandscopeid(scopeid",{"_index":21300,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.videoconferencerepo.save(videoconference",{"_index":21304,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.videoconferenceservice.canguestjoin(isguest",{"_index":21076,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.createorupdatevideoconferenceforscopewithoptions(scope.id",{"_index":20977,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.determinebbbrole",{"_index":20974,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.determinebbbrole(userid",{"_index":21047,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.findvideoconferencebyscopeidandscope",{"_index":21080,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(currentuserid",{"_index":20972,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(userid",{"_index":21046,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.getuserroleandgueststatusbyuseridforbbb",{"_index":21092,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.hasexpertrole",{"_index":21075,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.sanitizestring(`${user.firstname",{"_index":21094,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.sanitizestring(scopeinfo.title",{"_index":20981,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(schoolid",{"_index":20987,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(user.schoolid",{"_index":21045,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceuc.create(currentuser",{"_index":21028,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.end(currentuser",{"_index":21037,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.getmeetinginfo(currentuser",{"_index":21025,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.join(currentuser",{"_index":21032,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.visibilitysettings",{"_index":4112,"title":{},"body":{"classes/CardResponse.html":{}}}],["this.visitchildren(card",{"_index":16565,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(column",{"_index":16563,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(columnboard",{"_index":16561,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(fileelement",{"_index":16568,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(richtextelement",{"_index":16571,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(submission",{"_index":16579,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(submissioncontainerelement",{"_index":16574,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildrenasync(card",{"_index":16514,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(column",{"_index":16512,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(columnboard",{"_index":16510,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(fileelement",{"_index":16517,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(richtextelement",{"_index":16519,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submission",{"_index":16523,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submissioncontainerelement",{"_index":16521,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.welcome",{"_index":2140,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.write",{"_index":9682,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.xmlbuilder",{"_index":5074,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject",{"_index":5091,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject(commonobject",{"_index":5156,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["this.xpos",{"_index":7420,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.xposition",{"_index":7454,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.year",{"_index":4313,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.ypos",{"_index":7421,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.yposition",{"_index":7455,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.zipbuilder",{"_index":5082,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile('imsmanifest.xml",{"_index":5098,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile(props.href",{"_index":5079,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.tobufferpromise",{"_index":5100,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this['meta_bbb",{"_index":2150,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["those",{"_index":21796,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["though",{"_index":21989,"title":{},"body":{"license.html":{}}}],["thoughtbot/fishery",{"_index":724,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["thr",{"_index":15244,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["threads_enabled=false",{"_index":22998,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["three",{"_index":21905,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["thresholddate",{"_index":7788,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["thresholddate.setdate(thresholddate.getdate",{"_index":7789,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["through",{"_index":21760,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["throw",{"_index":305,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponseMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"entities/ClassEntity.html":{},"injectables/ClassService.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ColumnResponseMapper.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolValidationService.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyUC.html":{},"classes/CurrentUserMapper.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardUc.html":{},"classes/DomainObjectFactory.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GridElement.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LocalStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"classes/MetadataTypeMapper.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleNameMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchService.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["throwerror",{"_index":16667,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["throwifnotmoderator",{"_index":20950,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwifnotmoderator(role",{"_index":20962,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwing",{"_index":23138,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["thrown",{"_index":10769,"title":{},"body":{"classes/GuardAgainst.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["thrownothandled",{"_index":5560,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["thrownothandled(component",{"_index":5564,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["throwonfeaturesdisabled",{"_index":21222,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["throwonfeaturesdisabled(schoolid",{"_index":21251,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["throws",{"_index":2340,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"controllers/KeycloakManagementController.html":{}}}],["thumbnail",{"_index":9567,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["thumbnailrequesttoken",{"_index":9568,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["thus",{"_index":79,"title":{},"body":{"classes/AbstractAccountService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ticket",{"_index":2049,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/FilesStorageProducer.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ticketsystem.dbildungscloud.de",{"_index":21626,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["time",{"_index":1848,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CreateNewsParams.html":{},"injectables/JwtValidationAdapter.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/UpdateNewsParams.html":{},"dependencies.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["timedifference",{"_index":1838,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["timeout",{"_index":3976,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/FilesStorageProducer.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timeout(timeoutvalue",{"_index":19466,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeouterror",{"_index":19461,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor",{"_index":12574,"title":{"injectables/TimeoutInterceptor.html":{}},"body":{"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor(timeout",{"_index":12576,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["timeoutms",{"_index":3960,"title":{},"body":{"injectables/CalendarService.html":{}}}],["timeouts",{"_index":22766,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["timeoutvalue",{"_index":19462,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timer",{"_index":17176,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["times",{"_index":2188,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["timestamp",{"_index":14664,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timestamps",{"_index":3658,"title":{},"body":{"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["timestamps.response",{"_index":3666,"title":{},"body":{"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["timestampsresponse",{"_index":3662,"title":{"classes/TimestampsResponse.html":{}},"body":{"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TimestampsResponse.html":{}}}],["timetowait",{"_index":1843,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["timouts",{"_index":22754,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tiny",{"_index":21454,"title":{},"body":{"dependencies.html":{}}}],["title",{"_index":1474,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BoardColumnBoardResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IErrorType.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/LdapConnectionError.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NexboardService.html":{},"classes/PatchGroupParams.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RenameBodyParams.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/TaskCopyService.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"entities/TeamNews.html":{},"classes/UpdateNewsParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["title(title",{"_index":3997,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{}}}],["title=\"username",{"_index":12161,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["titlea",{"_index":7323,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titleb",{"_index":7325,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titlemap",{"_index":4749,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["titlesmap",{"_index":3327,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["titlesmap[id",{"_index":4846,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["tls",{"_index":7852,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["tmp/config/users",{"_index":22938,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms",{"_index":22947,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"powershell",{"_index":22909,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"setup",{"_index":22910,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"to",{"_index":22343,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["tmpdirpath",{"_index":10019,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["toarray",{"_index":5021,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/DatabaseManagementService.html":{}}}],["toboardid",{"_index":14566,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["tocardid",{"_index":14570,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["tocolumnid",{"_index":14560,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["todo",{"_index":1919,"title":{"todo.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"controllers/CardController.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"entities/Course.html":{},"interfaces/CreateJwtPayload.html":{},"injectables/DashboardRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FederalStateService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PermissionService.html":{},"injectables/SchoolYearService.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"entities/Task.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["todos",{"_index":23126,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["together",{"_index":10359,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["toggleuserloginmigrationuc",{"_index":19474,"title":{"injectables/ToggleUserLoginMigrationUc.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["token",{"_index":351,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"controllers/FileSecurityController.html":{},"injectables/HydraAdapter.html":{},"interfaces/IShareTokenProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/JwtExtractor.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/ShareToken.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"injectables/TokenGenerator.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["token.'})@apiresponse({status",{"_index":17876,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.body.params.ts",{"_index":17851,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:13",{"_index":17860,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:21",{"_index":17858,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:32",{"_index":17856,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:41",{"_index":17863,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.controller",{"_index":18113,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.controller.ts",{"_index":17870,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:40",{"_index":17879,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:67",{"_index":17893,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:86",{"_index":17889,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.do",{"_index":11772,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"classes/MetadataTypeMapper.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenFactory.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TokenGenerator.html":{}}}],["token.do.factory.ts",{"_index":17933,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.factory.ts:9",{"_index":17936,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.ts",{"_index":17919,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:27",{"_index":17925,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:29",{"_index":17924,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:31",{"_index":17922,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:33",{"_index":17920,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.dto.ts",{"_index":15138,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:2",{"_index":15141,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:4",{"_index":15142,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:6",{"_index":15140,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.entity",{"_index":17984,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.entity.ts",{"_index":11766,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["token.entity.ts:19",{"_index":17848,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:22",{"_index":17847,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:25",{"_index":17844,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:32",{"_index":17845,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:35",{"_index":17843,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:43",{"_index":17846,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.repo",{"_index":18023,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.repo.ts",{"_index":17975,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:17",{"_index":17978,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:9",{"_index":17982,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.request.ts",{"_index":1595,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:10",{"_index":1604,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:12",{"_index":1600,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:4",{"_index":1601,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:6",{"_index":1602,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:8",{"_index":1605,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.response.ts",{"_index":15806,"title":{},"body":{"interfaces/OauthTokenResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["token.response.ts:12",{"_index":17999,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:15",{"_index":17998,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:18",{"_index":17997,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:4",{"_index":17996,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.service",{"_index":15460,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["token.service.ts",{"_index":12137,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/ShareTokenService.html":{}}}],["token.service.ts:14",{"_index":12153,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:16",{"_index":12146,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/ShareTokenService.html":{}}}],["token.service.ts:25",{"_index":18017,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:28",{"_index":12150,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:42",{"_index":18019,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:49",{"_index":12148,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:50",{"_index":18021,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:59",{"_index":12152,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:70",{"_index":18015,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.ts",{"_index":10671,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{}}}],["token.uc.ts",{"_index":18039,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:129",{"_index":18054,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:137",{"_index":18055,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:148",{"_index":18057,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:164",{"_index":18053,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:186",{"_index":18047,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:194",{"_index":18049,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:215",{"_index":18065,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:221",{"_index":18051,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:23",{"_index":18045,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:37",{"_index":18059,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:65",{"_index":18063,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:87",{"_index":18061,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.url.params.ts",{"_index":18104,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token.url.params.ts:11",{"_index":18106,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token=${token}&scope=${scope",{"_index":10902,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["token_endpoint_auth_method",{"_index":9170,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["token_type",{"_index":12581,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["token_use",{"_index":12582,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["tokenauthmethod",{"_index":15264,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokendto",{"_index":15104,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.accesstoken",{"_index":15164,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.idtoken",{"_index":15163,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokenendpoint",{"_index":11087,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["tokenendpointauthmethod",{"_index":7123,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolService.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["tokenendpointauthmethod.client_secret_post",{"_index":7141,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["tokengenerator",{"_index":18013,"title":{"injectables/TokenGenerator.html":{}},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/TokenGenerator.html":{}}}],["tokenrequestmapper",{"_index":15074,"title":{"classes/TokenRequestMapper.html":{}},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["tokenrequestmapper.createauthenticationcodegranttokenrequestpayload",{"_index":15136,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestmapper.maptokenresponsetodto(responsetoken",{"_index":15105,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestpayload",{"_index":15135,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokens",{"_index":15257,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokenurl",{"_index":11934,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["tomorrow",{"_index":5511,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["took",{"_index":17650,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["tool",{"_index":209,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/HydraSsoService.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PseudonymService.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SortExternalToolParams.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tool'})@apifoundresponse({description",{"_index":19535,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tool'})@isstring()@isoptional",{"_index":9065,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["tool.'})@apiokresponse({description",{"_index":19654,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool.config",{"_index":15623,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.config.clientid",{"_index":9131,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.config.skipconsent",{"_index":15624,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.do.ts",{"_index":5600,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["tool.do.ts:22",{"_index":5611,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:23",{"_index":17345,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:24",{"_index":5607,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:25",{"_index":17348,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:26",{"_index":5608,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:27",{"_index":17347,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:28",{"_index":5609,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:29",{"_index":17346,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:30",{"_index":5606,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ExternalTool.html":{}}}],["tool.do.ts:31",{"_index":17349,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:32",{"_index":8330,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:33",{"_index":17344,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:34",{"_index":8327,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:36",{"_index":8326,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:38",{"_index":8324,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:40",{"_index":8329,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:41",{"_index":5613,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:42",{"_index":8325,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:44",{"_index":8328,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:45",{"_index":17350,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:46",{"_index":8323,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:62",{"_index":8331,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:66",{"_index":8335,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:70",{"_index":8333,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.entity.ts",{"_index":5674,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:13",{"_index":8482,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:16",{"_index":8485,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:17",{"_index":17356,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:19",{"_index":8480,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:20",{"_index":17354,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:22",{"_index":8479,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:23",{"_index":17355,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:24",{"_index":5683,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:25",{"_index":8477,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:26",{"_index":17357,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:27",{"_index":5676,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:28",{"_index":8484,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:30",{"_index":5678,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:31",{"_index":8478,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:33",{"_index":5679,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:34",{"_index":8483,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:36",{"_index":5681,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:37",{"_index":8486,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:39",{"_index":5684,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.factory.ts",{"_index":5697,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:100",{"_index":8516,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:107",{"_index":8515,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:29",{"_index":15190,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["tool.factory.ts:65",{"_index":7121,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["tool.factory.ts:7",{"_index":17362,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:86",{"_index":8518,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:9",{"_index":5700,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["tool.factory.ts:93",{"_index":8517,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.id",{"_index":8382,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{}}}],["tool.ishidden",{"_index":8379,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tool.logo",{"_index":8607,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["tool.module",{"_index":19515,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool.module.ts",{"_index":5277,"title":{},"body":{"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/LtiToolModule.html":{},"modules/SchoolExternalToolModule.html":{}}}],["tool.name",{"_index":9136,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.oauthclientid",{"_index":11068,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.repo.mapper.ts",{"_index":8800,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:112",{"_index":8812,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:119",{"_index":8832,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:128",{"_index":8828,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:141",{"_index":8824,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:159",{"_index":8817,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:177",{"_index":8822,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:187",{"_index":8819,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:22",{"_index":8826,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:53",{"_index":8815,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:60",{"_index":8835,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:69",{"_index":8830,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:82",{"_index":8825,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.ts",{"_index":5743,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:114",{"_index":5763,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:123",{"_index":5761,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:14",{"_index":8770,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:19",{"_index":8782,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:24",{"_index":17400,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:25",{"_index":5748,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:27",{"_index":8777,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:30",{"_index":5775,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:32",{"_index":17396,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:36",{"_index":8775,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:38",{"_index":5754,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:41",{"_index":17398,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:45",{"_index":5758,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:50",{"_index":17392,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:54",{"_index":8773,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:55",{"_index":17394,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:64",{"_index":17389,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:70",{"_index":5751,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.response",{"_index":5901,"title":{},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{}}}],["tool.response.ts",{"_index":5832,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:10",{"_index":5841,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:13",{"_index":5835,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:16",{"_index":5836,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:19",{"_index":5837,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:22",{"_index":5840,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:25",{"_index":5842,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:28",{"_index":5834,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:31",{"_index":8987,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["tool.response.ts:7",{"_index":5838,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.rule",{"_index":17060,"title":{},"body":{"injectables/RuleManager.html":{}}}],["tool.rule.ts",{"_index":5864,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:12",{"_index":5867,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:18",{"_index":5866,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:9",{"_index":5865,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.scope",{"_index":5781,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.scope.ts",{"_index":5871,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:12",{"_index":9055,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:13",{"_index":17455,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:15",{"_index":5892,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:19",{"_index":9057,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:22",{"_index":5886,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:30",{"_index":5888,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:5",{"_index":9059,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:6",{"_index":17453,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:7",{"_index":5890,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.secret",{"_index":11069,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.service",{"_index":5986,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["tool.service.ts",{"_index":5285,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{},"injectables/LtiToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:10",{"_index":5289,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:103",{"_index":9090,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:11",{"_index":5916,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:118",{"_index":9104,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:131",{"_index":9108,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:143",{"_index":9086,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:16",{"_index":9084,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:17",{"_index":5918,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:22",{"_index":17475,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:23",{"_index":5920,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:26",{"_index":5294,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:28",{"_index":9088,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:29",{"_index":5910,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:32",{"_index":17473,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:39",{"_index":5912,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:40",{"_index":17471,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:43",{"_index":5914,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:44",{"_index":9101,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:51",{"_index":9098,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:52",{"_index":17469,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:6",{"_index":14387,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:60",{"_index":17467,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:64",{"_index":17478,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:78",{"_index":9092,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:8",{"_index":5908,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:9",{"_index":14389,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:93",{"_index":9094,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:98",{"_index":9096,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.skipconsent",{"_index":15622,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.types",{"_index":5778,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool.uc.ts",{"_index":5931,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:10",{"_index":9193,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:11",{"_index":17498,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:12",{"_index":5938,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:18",{"_index":9195,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:19",{"_index":17506,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:21",{"_index":5940,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:30",{"_index":17500,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:31",{"_index":9204,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:39",{"_index":5952,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:47",{"_index":17503,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:52",{"_index":9200,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:59",{"_index":17502,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:63",{"_index":9202,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:64",{"_index":5942,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:70",{"_index":9197,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:73",{"_index":17508,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:77",{"_index":5950,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:83",{"_index":17510,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:87",{"_index":5948,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:96",{"_index":5945,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/context",{"_index":5722,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["tool/controller",{"_index":19510,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/controller/dto",{"_index":5741,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool/controller/dto/context",{"_index":5662,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/custom",{"_index":7109,"title":{},"body":{"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{}}}],["tool/controller/dto/request/config/basic",{"_index":2624,"title":{},"body":{"classes/BasicToolConfigParams.html":{}}}],["tool/controller/dto/request/config/external",{"_index":8342,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["tool/controller/dto/request/config/lti11",{"_index":14188,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/config/oauth2",{"_index":15178,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/context",{"_index":5710,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{}}}],["tool/controller/dto/request/custom",{"_index":7179,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["tool/controller/dto/request/external",{"_index":8454,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SortExternalToolParams.html":{}}}],["tool/controller/dto/request/school",{"_index":17367,"title":{},"body":{"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{}}}],["tool/controller/dto/response/config/basic",{"_index":2634,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/external",{"_index":8348,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/lti11",{"_index":14207,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/oauth2",{"_index":15191,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["tool/controller/dto/response/context",{"_index":5634,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/response/custom",{"_index":7203,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["tool/controller/dto/response/external",{"_index":8986,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/response/school",{"_index":17352,"title":{},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/response/tool",{"_index":19847,"title":{},"body":{"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["tool/controller/dto/school",{"_index":17366,"title":{},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["tool/controller/tool",{"_index":19519,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool/controller/tool.controller.ts",{"_index":19630,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:106",{"_index":19651,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:125",{"_index":19664,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:147",{"_index":19644,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:167",{"_index":19660,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:191",{"_index":19656,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:58",{"_index":19637,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:78",{"_index":19648,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/domain",{"_index":201,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["tool/domain/config/basic",{"_index":2601,"title":{},"body":{"classes/BasicToolConfig.html":{}}}],["tool/domain/config/external",{"_index":8340,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["tool/domain/config/lti11",{"_index":14179,"title":{},"body":{"classes/Lti11ToolConfig.html":{}}}],["tool/domain/config/oauth2",{"_index":15168,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["tool/domain/context",{"_index":5599,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextRef.html":{}}}],["tool/domain/external",{"_index":8320,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["tool/domain/school",{"_index":17342,"title":{},"body":{"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["tool/domain/tool",{"_index":19837,"title":{},"body":{"classes/ToolReference.html":{}}}],["tool/entity",{"_index":5686,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool/entity/config/basic",{"_index":2612,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["tool/entity/config/external",{"_index":8345,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["tool/entity/config/lti11",{"_index":14200,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["tool/entity/config/oauth2",{"_index":15186,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["tool/entity/context",{"_index":5673,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["tool/entity/custom",{"_index":7087,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["tool/entity/external",{"_index":8473,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool/entity/school",{"_index":11683,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool/external",{"_index":8634,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["tool/loggable/external",{"_index":8529,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["tool/lti",{"_index":14333,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["tool/mapper",{"_index":9023,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{}}}],["tool/mapper/context",{"_index":5811,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["tool/mapper/external",{"_index":8885,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["tool/mapper/school",{"_index":17413,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["tool/mapper/tool",{"_index":19560,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["tool/school",{"_index":17373,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["tool/service",{"_index":5985,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"interfaces/IRepoLoader.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["tool/service/context",{"_index":5628,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["tool/service/external",{"_index":8352,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{}}}],["tool/service/lti",{"_index":14385,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool/service/school",{"_index":17457,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["tool/uc",{"_index":19511,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/uc/context",{"_index":5930,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/uc/dto/context",{"_index":5777,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool/uc/dto/school",{"_index":17401,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool/uc/external",{"_index":8400,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{}}}],["tool/uc/school",{"_index":17492,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool/uc/tool",{"_index":19869,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tool1",{"_index":5295,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool1.getversion",{"_index":5300,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2",{"_index":5293,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2.getversion",{"_index":5301,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool_clientid_duplicate",{"_index":9261,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientid_immutable",{"_index":9257,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientsecret_missing",{"_index":9259,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_param_auto_requires_global",{"_index":8681,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_regex",{"_index":8691,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_required",{"_index":8678,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_duplicate",{"_index":5344,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regex_invalid",{"_index":8688,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regexcomment",{"_index":8685,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_required",{"_index":5358,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_param_type_mismatch",{"_index":5361,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_value_regex",{"_index":5366,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_secret_missing",{"_index":9262,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_status_outdated",{"_index":19940,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["tool_type_immutable",{"_index":9253,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_version_mismatch",{"_index":17528,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["tool_with_name_exists",{"_index":6006,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["toolapimodule",{"_index":17760,"title":{"modules/ToolApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules.html":{}}}],["toolconfigmodule",{"_index":8628,"title":{"modules/ToolConfigModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolconfigtype",{"_index":2606,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["toolconfigtype.basic",{"_index":2609,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["toolconfigtype.lti11",{"_index":7149,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["toolconfigtype.oauth2",{"_index":7145,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/ToolLaunchMapper.html":{}}}],["toolconfigtypetotoollaunchdatatypemapping",{"_index":19746,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfigtypetotoollaunchdatatypemapping[configtype",{"_index":19757,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfiguration",{"_index":12084,"title":{"classes/ToolConfiguration.html":{}},"body":{"interfaces/IToolFeatures.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{}}}],["toolconfiguration.toolfeatures",{"_index":19517,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["toolconfigurationcontroller",{"_index":19506,"title":{"controllers/ToolConfigurationController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper",{"_index":19542,"title":{"classes/ToolConfigurationMapper.html":{}},"body":{"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":19553,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":19559,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":19549,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":19556,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationstatus",{"_index":5290,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolconfigurationstatus.latest",{"_index":5298,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["toolconfigurationstatus.outdated",{"_index":5299,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolconfigurationstatus.unknown",{"_index":17440,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolconfigurationstatusresponse",{"_index":17424,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["toolconfigurationstatusresponse.latest",{"_index":17438,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolconfigurationstatusresponse.outdated",{"_index":17439,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolconfigurationstatusresponse.unknown",{"_index":17441,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolcontextcontroller",{"_index":19508,"title":{"controllers/ToolContextController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["toolcontexttype",{"_index":197,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolcontexttype.course",{"_index":316,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextTypeMapper.html":{}}}],["toolcontroller",{"_index":19509,"title":{"controllers/ToolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["toolfeatures",{"_index":8361,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/IToolFeatures.html":{},"injectables/OauthProviderLoginFlowService.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{}}}],["toolid",{"_index":8568,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["toolidsinuse",{"_index":8372,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["toolidsinuse.includes(tool.id",{"_index":8383,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolinfo",{"_index":19571,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos",{"_index":19568,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos.map",{"_index":19581,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["tooling",{"_index":22774,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["toollaunchcontroller",{"_index":19505,"title":{"controllers/ToolLaunchController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["toollaunchdata",{"_index":160,"title":{"classes/ToolLaunchData.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchData.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchdata.opennewtab",{"_index":237,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchdata.properties",{"_index":233,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchdatado",{"_index":170,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["toollaunchdatado.properties.filter",{"_index":239,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchdatatype",{"_index":19725,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.basic",{"_index":19747,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.lti11",{"_index":19748,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.oauth2",{"_index":19749,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping",{"_index":19750,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping[launchdatatype",{"_index":19758,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchmapper",{"_index":205,"title":{"classes/ToolLaunchMapper.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptoparameterlocation(customparameterlocation",{"_index":332,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchmapper.maptotoolconfigtype(toollaunchdata.type",{"_index":19805,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptotoollaunchdatatype(externaltool.config.type",{"_index":273,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchmapper.maptotoollaunchrequestresponse(toollaunchrequest",{"_index":19720,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchmodule",{"_index":19759,"title":{"modules/ToolLaunchModule.html":{}},"body":{"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toollaunchparams",{"_index":19706,"title":{"classes/ToolLaunchParams.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{}}}],["toollaunchrequest",{"_index":175,"title":{"classes/ToolLaunchRequest.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchrequestresponse",{"_index":19716,"title":{"classes/ToolLaunchRequestResponse.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["toollaunchrequestresponse})@apiunauthorizedresponse({description",{"_index":19709,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchservice",{"_index":19764,"title":{"injectables/ToolLaunchService.html":{}},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchuc",{"_index":19503,"title":{"injectables/ToolLaunchUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["toolmodule",{"_index":1981,"title":{"modules/ToolModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolpermissionhelper",{"_index":5275,"title":{"injectables/ToolPermissionHelper.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolref",{"_index":8395,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolref.externaltool.ishidden",{"_index":8397,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolreference",{"_index":9016,"title":{"classes/ToolReference.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"controllers/ToolController.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreference.contexttoolid",{"_index":9045,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.displayname",{"_index":9046,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.logourl",{"_index":9047,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreference.openinnewtab",{"_index":9049,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.status",{"_index":19846,"title":{},"body":{"classes/ToolReference.html":{}}}],["toolreferencelistresponse",{"_index":19665,"title":{"classes/ToolReferenceListResponse.html":{}},"body":{"controllers/ToolController.html":{},"classes/ToolReferenceListResponse.html":{}}}],["toolreferencelistresponse(toolreferenceresponses",{"_index":19694,"title":{},"body":{"controllers/ToolController.html":{}}}],["toolreferencelistresponse})@apiforbiddenresponse({description",{"_index":19659,"title":{},"body":{"controllers/ToolController.html":{}}}],["toolreferencemapper",{"_index":19849,"title":{"classes/ToolReferenceMapper.html":{}},"body":{"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreferencemapper.maptotoolreference",{"_index":19897,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceresponse",{"_index":9018,"title":{"classes/ToolReferenceResponse.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"controllers/ToolController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.contexttoolid",{"_index":19864,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.displayname",{"_index":19866,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.logourl",{"_index":19865,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.openinnewtab",{"_index":19867,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.status",{"_index":19868,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponses",{"_index":9042,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"controllers/ToolController.html":{}}}],["toolreferences",{"_index":9021,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"controllers/ToolController.html":{}}}],["toolreferences.map((toolreference",{"_index":9043,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["toolreferencespromises",{"_index":19888,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull",{"_index":19890,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull.filter",{"_index":19893,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceuc",{"_index":19504,"title":{"injectables/ToolReferenceUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolController.html":{},"injectables/ToolReferenceUc.html":{}}}],["tools",{"_index":5944,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["tools')@apiforbiddenresponse()@apioperation({summary",{"_index":19524,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools.data",{"_index":9132,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.data.map",{"_index":19676,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools.data.map(async",{"_index":9127,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.filter((tool",{"_index":5972,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tools.map(async",{"_index":8452,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tools.total",{"_index":19678,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/:contextexternaltoolid/configuration",{"_index":19533,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/:schoolexternaltoolid/configuration",{"_index":19539,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/context",{"_index":19585,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["tools/external",{"_index":19631,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/school",{"_index":19900,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["tools/{id}/logo",{"_index":8438,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolController.html":{}}}],["toolschoolcontroller",{"_index":19507,"title":{"controllers/ToolSchoolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["toolstatusoutdatedloggableexception",{"_index":19800,"title":{"classes/ToolStatusOutdatedLoggableException.html":{}},"body":{"injectables/ToolLaunchService.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["toolstatusoutdatedloggableexception(userid",{"_index":19814,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toolswithpermission",{"_index":5968,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["toolswithschooltool",{"_index":8389,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolswithschooltool.filter",{"_index":8394,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tooltemplateinfo.externaltool",{"_index":8446,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["tooltemplateinfo.externaltool.logourl",{"_index":8447,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["toolvalidationservice",{"_index":9192,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["toolversion",{"_index":5292,"title":{"interfaces/ToolVersion.html":{}},"body":{"injectables/CommonToolService.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"interfaces/ToolVersion.html":{}}}],["toomodule",{"_index":1992,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["top",{"_index":23005,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["toparams",{"_index":2286,"title":{},"body":{"injectables/BBBService.html":{}}}],["toparams(object",{"_index":2322,"title":{},"body":{"injectables/BBBService.html":{}}}],["topic",{"_index":22952,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["toplevel",{"_index":12930,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["toposition",{"_index":3822,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["toseedfolder",{"_index":7680,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["tostring",{"_index":1251,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["total",{"_index":1008,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"injectables/BaseDORepo.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{}}}],["total.length",{"_index":20716,"title":{},"body":{"injectables/UserRepo.html":{}}}],["total[0].count",{"_index":20717,"title":{},"body":{"injectables/UserRepo.html":{}}}],["totalitems",{"_index":10748,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["tothrow",{"_index":10765,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["touching",{"_index":23106,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["toupdate",{"_index":9102,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{}}}],["toupdate.config",{"_index":9147,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.config.clientid",{"_index":9149,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.name",{"_index":9146,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdateoauthclient",{"_index":9107,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tovalidate",{"_index":5983,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["tovideoconferenceinforesponse",{"_index":21108,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceinforesponse(videoconferenceinfo",{"_index":21112,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse",{"_index":21109,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse(videoconferencejoin",{"_index":21114,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions",{"_index":21110,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions(params",{"_index":21116,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse",{"_index":21111,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse(state",{"_index":21118,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["trace",{"_index":11527,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["trade",{"_index":22011,"title":{},"body":{"license.html":{}}}],["trademark",{"_index":22010,"title":{},"body":{"license.html":{}}}],["trademarks",{"_index":22012,"title":{},"body":{"license.html":{}}}],["transaction",{"_index":21966,"title":{},"body":{"license.html":{}}}],["transfer",{"_index":11609,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{}}}],["transferred",{"_index":21968,"title":{},"body":{"license.html":{}}}],["transferring",{"_index":22064,"title":{},"body":{"license.html":{}}}],["transform",{"_index":5097,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["transform:true",{"_index":10537,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transformer",{"_index":5739,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FilesStorageMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"dependencies.html":{}}}],["transformoptions",{"_index":10535,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transient",{"_index":675,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["transient(transient",{"_index":732,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["transition",{"_index":22949,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["transitioning",{"_index":22651,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["translate",{"_index":21609,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["transmission",{"_index":21930,"title":{},"body":{"license.html":{}}}],["transparent",{"_index":18166,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["transports",{"_index":14052,"title":{},"body":{"modules/LoggerModule.html":{}}}],["trash",{"_index":17109,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["treated",{"_index":578,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["treating",{"_index":22857,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["treaty",{"_index":21840,"title":{},"body":{"license.html":{}}}],["tried",{"_index":1146,"title":{},"body":{"injectables/AccountService.html":{}}}],["tries",{"_index":22710,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["trigger",{"_index":22916,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["trim",{"_index":12547,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"injectables/UserRepo.html":{}}}],["trimpassword",{"_index":1125,"title":{},"body":{"injectables/AccountService.html":{}}}],["trimslash",{"_index":257,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["trimslash.split",{"_index":260,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["trivial",{"_index":22468,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["true",{"_index":369,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"classes/BBBCreateConfigBuilder.html":{},"entities/Board.html":{},"injectables/BoardDoRule.html":{},"entities/BoardElement.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardUrlParams.html":{},"classes/CardIdsParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"injectables/CollaborativeStorageService.html":{},"entities/ColumnBoardTarget.html":{},"classes/ColumnUrlParams.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolIdParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalState.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"modules/FilesStorageModule.html":{},"classes/FilterImportUserParams.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalValidationPipe.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/IdParams.html":{},"classes/IdentityManagementOauthService.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/MigrationBody.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"entities/News.html":{},"classes/NewsUrlParams.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PublicSystemResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"modules/S3ClientModule.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleFileParams.html":{},"entities/StorageProviderEntity.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemIdParams.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserEntity.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["true})@apiproperty({description",{"_index":4082,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{}}}],["true})@apiproperty({oneof",{"_index":19947,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["true})@apiproperty({required",{"_index":5434,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["true})@enum",{"_index":18505,"title":{},"body":{"entities/System.html":{}}}],["true})@index",{"_index":4284,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["true})@isarray()@isoptional()@apipropertyoptional({type",{"_index":5733,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["true})@ismongoid",{"_index":21207,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["true})@isoptional()@apiproperty({description",{"_index":5377,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["true})@isoptional()@apipropertyoptional({required",{"_index":6851,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["true})@isoptional()@isenum(filtermatchtype",{"_index":10342,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@singlevaluetoarraytransformer()@isarray",{"_index":10343,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@unique({options",{"_index":6388,"title":{},"body":{"entities/Course.html":{},"entities/ImportUser.html":{},"entities/LtiTool.html":{}}}],["try",{"_index":784,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardManagementUc.html":{},"injectables/DeleteFilesUc.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolService.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapStrategy.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["try/catch",{"_index":20508,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["tryfindbyid",{"_index":10710,"title":{},"body":{"injectables/GroupService.html":{}}}],["tryfindbyid(id",{"_index":10719,"title":{},"body":{"injectables/GroupService.html":{}}}],["trygetprevieworgenerate",{"_index":16138,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trygetprevieworgenerate(params",{"_index":16158,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trying",{"_index":6460,"title":{},"body":{"entities/Course.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LdapStrategy.html":{},"entities/LessonEntity.html":{}}}],["ts",{"_index":1285,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ImportUserScope.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/UserRepo.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tspuid",{"_index":4332,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["ttl",{"_index":17806,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["tvalue",{"_index":12235,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["two",{"_index":13354,"title":{},"body":{"injectables/LdapStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["typ",{"_index":12674,"title":{},"body":{"interfaces/JwtConstants.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisOrganisationResponse.html":{}}}],["type",{"_index":32,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["type']?.tostring",{"_index":9512,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["type.enum",{"_index":1608,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/CacheService.html":{},"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{},"injectables/JwtValidationAdapter.html":{},"classes/OauthClientBody.html":{},"classes/TokenRequestMapper.html":{}}}],["type.includes(bn.type",{"_index":3266,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["type.interface.ts",{"_index":11402,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["type.mapper.ts",{"_index":6017,"title":{},"body":{"classes/ContextTypeMapper.html":{},"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.mapper.ts:6",{"_index":14451,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.mapper.ts:9",{"_index":6020,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["type.query.param.ts",{"_index":16032,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:12",{"_index":16040,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:16",{"_index":16041,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:8",{"_index":16038,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["typecheckers",{"_index":5303,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["typedefinitions",{"_index":22514,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["typemapping",{"_index":6021,"title":{},"body":{"classes/ContextTypeMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["typemapping[customparameterdo.type",{"_index":9040,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["typemapping[customparameterparam.type",{"_index":8979,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["typemapping[type",{"_index":6023,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["typeof",{"_index":1773,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/BusinessError.html":{},"injectables/CardUc.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"injectables/HydraSsoService.html":{},"interfaces/IGridElement.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/OAuthService.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/Scope.html":{},"classes/StringValidator.html":{},"classes/TestApiClient.html":{}}}],["types",{"_index":208,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"classes/DomainObject.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FilesStorageMapper.html":{},"classes/ForbiddenLoggableException.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"interfaces/Loggable.html":{},"classes/LoggingUtils.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MetadataTypeMapper.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/ReferenceLoader.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RoleReference.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"entities/SchoolNews.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"entities/System.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"entities/TeamNews.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"classes/UserLoginMigrationDO.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["types.enum",{"_index":9713,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/PageContentQueryParams.html":{},"injectables/PreviewService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["types.get(type",{"_index":10232,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(filerecordparenttype.boardnode",{"_index":10230,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.course",{"_index":10221,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.lesson",{"_index":10226,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.school",{"_index":10224,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.submission",{"_index":10228,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.task",{"_index":10219,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.user",{"_index":10222,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(sharetokencontexttype.school",{"_index":17867,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["types.set(sharetokenparenttype.course",{"_index":14452,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.lesson",{"_index":17963,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.task",{"_index":17964,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types/any",{"_index":5501,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["types/board",{"_index":3560,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{}}}],["types/cache",{"_index":21335,"title":{},"body":{"dependencies.html":{}}}],["types/connect",{"_index":21337,"title":{},"body":{"dependencies.html":{}}}],["types/content",{"_index":5502,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["types/copy.types",{"_index":6254,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["types/entity",{"_index":11962,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/gm",{"_index":21339,"title":{},"body":{"dependencies.html":{}}}],["types/ldapjs",{"_index":21341,"title":{},"body":{"dependencies.html":{}}}],["types/news.types",{"_index":6724,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["types/redis",{"_index":21343,"title":{},"body":{"dependencies.html":{}}}],["types/room",{"_index":7951,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["types/task.types",{"_index":11963,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/xml2js",{"_index":21345,"title":{},"body":{"dependencies.html":{}}}],["typescript",{"_index":1301,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SystemRepo.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["typical",{"_index":21949,"title":{},"body":{"license.html":{}}}],["typing",{"_index":9423,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["u",{"_index":720,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["u.id",{"_index":6473,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{}}}],["u.userid",{"_index":18368,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["u.userid.id",{"_index":19340,"title":{},"body":{"injectables/TeamService.html":{}}}],["uc",{"_index":2769,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/DeleteFilesConsole.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolRequestMapper.html":{},"controllers/FileSecurityController.html":{},"modules/FilesModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthSSOController.html":{},"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"controllers/SubmissionController.html":{},"modules/TaskApiModule.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["uc.ts",{"_index":22570,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["uc/account.uc",{"_index":453,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["uc/board",{"_index":3460,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["uc/collaborative",{"_index":4590,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["uc/course",{"_index":6495,"title":{},"body":{"controllers/CourseController.html":{},"controllers/RoomsController.html":{}}}],["uc/course.uc",{"_index":6493,"title":{},"body":{"controllers/CourseController.html":{}}}],["uc/dashboard.uc",{"_index":7235,"title":{},"body":{"controllers/DashboardController.html":{}}}],["uc/database",{"_index":7665,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["uc/dto",{"_index":1822,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["uc/dto/context",{"_index":5821,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{},"controllers/ToolContextController.html":{}}}],["uc/dto/oauth",{"_index":13467,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["uc/dto/school",{"_index":17419,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{}}}],["uc/dto/user",{"_index":20363,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["uc/dto/user.dto",{"_index":20781,"title":{},"body":{"injectables/UserService.html":{}}}],["uc/element.uc",{"_index":2770,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["uc/fwu",{"_index":10394,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["uc/keycloak",{"_index":11571,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["uc/lesson",{"_index":16977,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/login.uc",{"_index":1591,"title":{},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["uc/news.uc",{"_index":14615,"title":{},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["uc/oauth",{"_index":15521,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["uc/rooms.uc",{"_index":16978,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/submission",{"_index":2771,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["uc/system.uc",{"_index":18534,"title":{},"body":{"controllers/SystemController.html":{}}}],["uc/task",{"_index":18797,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/task.uc",{"_index":18798,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/tool",{"_index":5278,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["uc/user",{"_index":12306,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{},"controllers/UserMigrationController.html":{}}}],["ucs",{"_index":13384,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["ui",{"_index":21450,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["ui_locales",{"_index":15876,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["ui_use_real_name=true",{"_index":22997,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["uid",{"_index":11477,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["uid=(.+?),/i",{"_index":11475,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uid=[^,]*${escapedloginname",{"_index":12559,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["uid=john${sequence},cn=schueler,cn=users,ou=1,dc=training,dc=ucs",{"_index":12352,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["uid=loginname",{"_index":11473,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uk",{"_index":12105,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["um",{"_index":4767,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unable",{"_index":3060,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["unambiguous",{"_index":1514,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["unarchivegroup(groupname",{"_index":1334,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["unauthorized",{"_index":19718,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized'})@apiforbiddenresponse({description",{"_index":19710,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized_exception",{"_index":19946,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedexception",{"_index":2038,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/TaskUC.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedexception('insufficient",{"_index":9407,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('missing",{"_index":9400,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('no",{"_index":15166,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["unauthorizedexception('oauth",{"_index":15759,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unauthorizedexception('unauthorized",{"_index":12707,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["unauthorizedexception('user",{"_index":13300,"title":{},"body":{"injectables/LdapService.html":{}}}],["unauthorizedexception(`invalid",{"_index":15764,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["unauthorizedexception(`school",{"_index":13339,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["unauthorizedloggableexception",{"_index":1817,"title":{"classes/UnauthorizedLoggableException.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedloggableexception(username",{"_index":1826,"title":{},"body":{"injectables/AuthenticationService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["und",{"_index":4785,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["undefined",{"_index":145,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthenticationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardResponse.html":{},"classes/BusinessError.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"entities/CourseGroup.html":{},"classes/CourseMetadataListResponse.html":{},"interfaces/CustomLtiProperty.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ErrorUtils.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileElementContentBody.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesStorageConsumer.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"classes/GuardAgainst.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LoggingUtils.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/NewsListResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"modules/RedisModule.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"classes/RichTextElementContentBody.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskWithStatusVo.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserScope.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{}}}],["undefined})@apiproperty({oneof",{"_index":8459,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["undefined})@apiresponse({status",{"_index":3690,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{}}}],["undefined})@isboolean()@isoptional",{"_index":20930,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["undefined})@property({nullable",{"_index":9701,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["undefined})@type(undefined",{"_index":5734,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["undefined})@userequestcontext",{"_index":10176,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["under",{"_index":21598,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["understand",{"_index":22691,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["unexpected",{"_index":22764,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unfamiliar",{"_index":22701,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unhandled",{"_index":8153,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["unicode",{"_index":939,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["unique",{"_index":394,"title":{},"body":{"entities/Account.html":{},"classes/ApiValidationErrorResponse.html":{},"entities/Board.html":{},"injectables/ContextExternalToolValidationService.html":{},"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"classes/ErrorResponse.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"entities/LtiTool.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/Role.html":{},"entities/Submission.html":{},"entities/User.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["unique()@property",{"_index":8481,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["uniqueids",{"_index":12035,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniqueids.length",{"_index":12038,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniquemember",{"_index":11919,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["uniquememberids",{"_index":11834,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["uniquenames",{"_index":5340,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquenames.size",{"_index":5342,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquepermissions",{"_index":11680,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["unit",{"_index":22311,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["unittests",{"_index":22851,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["universal",{"_index":21456,"title":{},"body":{"dependencies.html":{}}}],["unknown",{"_index":1062,"title":{},"body":{"injectables/AccountService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BoardRepo.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyService.html":{},"injectables/DatabaseManagementService.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"controllers/FileSecurityController.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/LessonUC.html":{},"classes/LoggingUtils.html":{},"injectables/NewsUc.html":{},"controllers/OauthSSOController.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SubmissionUc.html":{},"injectables/SystemRepo.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{}}}],["unknown.loggable.ts",{"_index":10698,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:4",{"_index":10701,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:7",{"_index":10703,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknownerror",{"_index":10500,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["unless",{"_index":21955,"title":{},"body":{"license.html":{}}}],["unlimited",{"_index":534,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["unmarkfordelete",{"_index":9764,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"miscellaneous/functions.html":{}}}],["unmarkfordelete(filerecords",{"_index":21529,"title":{},"body":{"miscellaneous/functions.html":{}}}],["unmarkoutdatedusers",{"_index":17592,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmarkoutdatedusers(schoolid",{"_index":17616,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmodified",{"_index":21739,"title":{},"body":{"license.html":{}}}],["unnecessary",{"_index":21827,"title":{},"body":{"license.html":{}}}],["unpacking",{"_index":21985,"title":{},"body":{"license.html":{}}}],["unprocessableentityexception",{"_index":8836,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PreviewService.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception('cannot",{"_index":14930,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["unprocessableentityexception('current",{"_index":15801,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unprocessableentityexception(`could",{"_index":9135,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`requested",{"_index":15828,"title":{},"body":{"injectables/OauthUc.html":{}}}],["unprocessableentityexception(`school",{"_index":17641,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["unprocessableentityexception(`system",{"_index":20655,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception(`the",{"_index":9153,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`unknown",{"_index":8845,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["unprocessableentityexception(errortype.preview_not_possible",{"_index":16178,"title":{},"body":{"injectables/PreviewService.html":{}}}],["unpublish",{"_index":4826,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"classes/PatchVisibilityParams.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["unpublished",{"_index":10356,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["unreachable",{"_index":1241,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["unresponsive",{"_index":17182,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["uns",{"_index":4799,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unsafe",{"_index":1303,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/ErrorLoggable.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ImportUserFactory.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/UserRepo.html":{}}}],["unsupported",{"_index":3676,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["unter",{"_index":4803,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["until",{"_index":8270,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"injectables/SanisResponseMapper.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"license.html":{}}}],["untildate",{"_index":6372,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/ICourseProperties.html":{}}}],["untildateinfuture",{"_index":6795,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["unused",{"_index":2657,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/TestBootstrapConsole.html":{}}}],["unusedtools",{"_index":8393,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unusedtools.filter",{"_index":8396,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unwanted",{"_index":19049,"title":{},"body":{"injectables/TaskRepo.html":{},"miscellaneous/functions.html":{}}}],["up",{"_index":13626,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"controllers/ShareTokenController.html":{},"modules/VideoConferenceModule.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["update",{"_index":2951,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/ColumnController.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"controllers/ElementController.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/PatchMyAccountParams.html":{},"injectables/SubmissionItemService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["update(element",{"_index":5540,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update(id",{"_index":14819,"title":{},"body":{"injectables/NewsUc.html":{}}}],["update(submissionitem",{"_index":18334,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["update(urlparams",{"_index":14608,"title":{},"body":{"controllers/NewsController.html":{}}}],["update.params.ts",{"_index":9218,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["update.params.ts:16",{"_index":19231,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:17",{"_index":9220,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:21",{"_index":9223,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:22",{"_index":14216,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:25",{"_index":19234,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:26",{"_index":9226,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:27",{"_index":14215,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:31",{"_index":9222,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:33",{"_index":19235,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:35",{"_index":14214,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:36",{"_index":15194,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:39",{"_index":14213,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:40",{"_index":15193,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:41",{"_index":19232,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:44",{"_index":15195,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:49",{"_index":19230,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:52",{"_index":9219,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:57",{"_index":19233,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:59",{"_index":9225,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:63",{"_index":9221,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:67",{"_index":9224,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.visitor",{"_index":5547,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update.visitor.ts",{"_index":5559,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:18",{"_index":5563,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:24",{"_index":5569,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:28",{"_index":5568,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:32",{"_index":5567,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:36",{"_index":5570,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:44",{"_index":5571,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:53",{"_index":5572,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:61",{"_index":5574,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:65",{"_index":5565,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["updateaccount",{"_index":12211,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccount(accountid",{"_index":12240,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccount(id",{"_index":13090,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountbyid",{"_index":488,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountbyid(currentuser",{"_index":542,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountpassword",{"_index":12212,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountpassword(accountid",{"_index":12242,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccountpassword(id",{"_index":13092,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateboard",{"_index":16998,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboard(board",{"_index":17003,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboardtitle",{"_index":2923,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["updateboardtitle(urlparams",{"_index":2948,"title":{},"body":{"controllers/BoardController.html":{}}}],["updateboardtitle(userid",{"_index":3795,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecardheight",{"_index":3764,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{}}}],["updatecardheight(urlparams",{"_index":4031,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardheight(userid",{"_index":3797,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecardtitle",{"_index":3765,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{}}}],["updatecardtitle(urlparams",{"_index":4035,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardtitle(userid",{"_index":3799,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecolumntitle",{"_index":3766,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["updatecolumntitle(urlparams",{"_index":4868,"title":{},"body":{"controllers/ColumnController.html":{}}}],["updatecolumntitle(userid",{"_index":3801,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecontextexternaltool",{"_index":5936,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(currentuser",{"_index":19604,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(userid",{"_index":5951,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["updatecopiedembeddedtaskid",{"_index":13669,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatecopiedembeddedtasks",{"_index":13682,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatecopiedembeddedtasks(lessonstatus",{"_index":13719,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatecopiedembeddedtasksoflessons",{"_index":2992,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatecopiedembeddedtasksoflessons(boardstatus",{"_index":3019,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updated",{"_index":524,"title":{},"body":{"controllers/AccountController.html":{},"injectables/BaseDORepo.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateElementContentBodyParams.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["updated.'})@apiresponse({status",{"_index":550,"title":{},"body":{"controllers/AccountController.html":{}}}],["updated.id",{"_index":2458,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["updatedat",{"_index":592,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/CardService.html":{},"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/County.html":{},"injectables/CourseUc.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/ResolvedUserResponse.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/VideoConferenceInfo.html":{}}}],["updatedclasses",{"_index":4406,"title":{},"body":{"injectables/ClassService.html":{}}}],["updatedclasses.length",{"_index":4410,"title":{},"body":{"injectables/ClassService.html":{}}}],["updateded",{"_index":13770,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatedelements",{"_index":3080,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatedlessons",{"_index":13955,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedlessons.length",{"_index":13960,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedmodel",{"_index":7551,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updatedstatus",{"_index":13740,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatedstatus.status",{"_index":13747,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatedtool",{"_index":19627,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["updateduserloginmigration",{"_index":4468,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["updateduserloginmigration.closedat",{"_index":13634,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.finishedat",{"_index":13640,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.mandatorysince",{"_index":13638,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.startedat",{"_index":13637,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateelement",{"_index":8046,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelement(urlparams",{"_index":8060,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelementcontent",{"_index":8083,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontent(userid",{"_index":8088,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontentbodyparams",{"_index":8037,"title":{"classes/UpdateElementContentBodyParams.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["updateentity",{"_index":2393,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["updateentity(domainobject",{"_index":2429,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["updateexecutionrequest",{"_index":12927,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateexistinggridelement",{"_index":7507,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistinggridelement(elementmodel",{"_index":7529,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistingmigration",{"_index":20428,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexistingmigration(userloginmigrationdo",{"_index":20449,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexternaltool",{"_index":9077,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["updateexternaltool(currentuser",{"_index":19661,"title":{},"body":{"controllers/ToolController.html":{}}}],["updateexternaltool(toupdate",{"_index":9099,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateexternaltool(userid",{"_index":9203,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["updatefileurls",{"_index":18825,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updatefileurls(task",{"_index":18835,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updateflag",{"_index":12270,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflag(urlparams",{"_index":12295,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflagparams",{"_index":12296,"title":{"classes/UpdateFlagParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateFlagParams.html":{}}}],["updateheight",{"_index":4124,"title":{},"body":{"injectables/CardService.html":{}}}],["updateheight(card",{"_index":4139,"title":{},"body":{"injectables/CardService.html":{}}}],["updateidentityprovider",{"_index":12855,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateidentityprovider(oidcconfig",{"_index":12887,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updatelasttriedfailedlogin",{"_index":21,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["updatelasttriedfailedlogin(accountid",{"_index":81,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updatelasttriedfailedlogin(id",{"_index":1805,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["updatemany",{"_index":4426,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatemany(classes",{"_index":4430,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatematchparams",{"_index":12288,"title":{"classes/UpdateMatchParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateMatchParams.html":{}}}],["updatemyaccount",{"_index":489,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatemyaccount(@currentuser",{"_index":580,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatemyaccount(currentuser",{"_index":546,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatenewsparams",{"_index":14609,"title":{"classes/UpdateNewsParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"classes/UpdateNewsParams.html":{}}}],["updateoauth2client",{"_index":10840,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["updateoauth2client(currentuser",{"_index":15431,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["updateoauth2client(id",{"_index":10881,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["updateoauth2toolconfig",{"_index":9078,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauth2toolconfig(toupdate",{"_index":9103,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow",{"_index":9079,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow(loadedoauthclient",{"_index":9105,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateorcreateidpdefaultmapper",{"_index":12856,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateorcreateidpdefaultmapper(idpalias",{"_index":12889,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updatepassword",{"_index":22,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updatepassword(accountid",{"_index":86,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updater",{"_index":5554,"title":{},"body":{"injectables/ContentElementService.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["updaterid",{"_index":6738,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["updates",{"_index":520,"title":{},"body":{"controllers/AccountController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/ContextExternalToolValidationService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"license.html":{}}}],["updateschoolexternaltool",{"_index":17496,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(currentuser",{"_index":19916,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(userid",{"_index":17509,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["updatesecuritycheckstatus(status",{"_index":9752,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["updatesecuritystatus",{"_index":9933,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(@body",{"_index":9952,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(scanresultdto",{"_index":9938,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesubmissionitem",{"_index":3686,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitem(currentuser",{"_index":3693,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["updatesubmissionitem(userid",{"_index":18354,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitembodyparams",{"_index":3695,"title":{"classes/UpdateSubmissionItemBodyParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["updateteam",{"_index":4490,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteam(team",{"_index":4504,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole",{"_index":4491,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(currentuser",{"_index":4572,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["updateteampermissionsforrole(currentuserid",{"_index":4634,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["updateteampermissionsforrole(dto",{"_index":11105,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(team",{"_index":4506,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["updateteamusersingroup",{"_index":14880,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updateteamusersingroup(groupid",{"_index":14899,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updatetitle",{"_index":4125,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{}}}],["updatetitle(board",{"_index":4745,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["updatetitle(card",{"_index":4141,"title":{},"body":{"injectables/CardService.html":{}}}],["updatetitle(column",{"_index":4913,"title":{},"body":{"injectables/ColumnService.html":{}}}],["updateusername",{"_index":23,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updateusername(accountid",{"_index":89,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updateuserpermissionsforrole",{"_index":4661,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updateuserpermissionsforrole(currentuserid",{"_index":4668,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updatevisibilityofboardelement",{"_index":17022,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updatevisibilityofboardelement(roomid",{"_index":17029,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updating",{"_index":2423,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/NextcloudStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"classes/UpdateNewsParams.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["updator/creator",{"_index":14734,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["upload",{"_index":17117,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["upload.done",{"_index":17141,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["upper",{"_index":13980,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["uppercase",{"_index":22588,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["uppercase_snake_case",{"_index":1516,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["uri",{"_index":1272,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["url",{"_index":150,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/BBBJoinResponse.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"interfaces/GlobalConstants.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/NexboardService.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"classes/PageContentResponse.html":{},"classes/PreviewParams.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["url('/dashboard",{"_index":15110,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url('/login",{"_index":15747,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url('/migration",{"_index":20617,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url('/migration/error",{"_index":15753,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url(`${api_version_path}${newpath",{"_index":1466,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["url(`${this.hydrauri}/clients",{"_index":10912,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["url(`api/v3/sso/login/${system.id",{"_index":20657,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(baseurl",{"_index":245,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["url(oauthconfig.authendpoint",{"_index":15120,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(params.logouturl).origin",{"_index":20912,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["url(path",{"_index":15131,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(system.oauthconfig.logoutendpoint",{"_index":15113,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(this.baseurl",{"_index":2378,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url(this.logouturl).origin",{"_index":12591,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url(this.publicbackendurl",{"_index":20634,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(url",{"_index":13761,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["url(urlpath",{"_index":20651,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url.href",{"_index":1468,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["url.loggable",{"_index":12586,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url.pathname",{"_index":270,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url.pathname.replace(/(^\\/)|(\\/$)/g",{"_index":258,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["url.search",{"_index":254,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/HydraAdapter.html":{}}}],["url.searchparams.append('origin",{"_index":20618,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url.tostring",{"_index":256,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/HydraAdapter.html":{},"injectables/UserMigrationService.html":{}}}],["urlencoded",{"_index":10906,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["urlencodedpayload",{"_index":15217,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["urlobject",{"_index":13760,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["urlobject.pathname.split('/')[2",{"_index":13764,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["urlparamkeys",{"_index":12916,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["urlparams",{"_index":2934,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/ImportUserController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{}}}],["urlparams.boardid",{"_index":2966,"title":{},"body":{"controllers/BoardController.html":{}}}],["urlparams.cardid",{"_index":4059,"title":{},"body":{"controllers/CardController.html":{}}}],["urlparams.columnid",{"_index":4877,"title":{},"body":{"controllers/ColumnController.html":{}}}],["urlparams.contentelementid",{"_index":8070,"title":{},"body":{"controllers/ElementController.html":{}}}],["urlparams.dashboardid",{"_index":7249,"title":{},"body":{"controllers/DashboardController.html":{}}}],["urlparams.elementid",{"_index":16985,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.importuserid",{"_index":12324,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["urlparams.lessonid",{"_index":13664,"title":{},"body":{"controllers/LessonController.html":{},"controllers/RoomsController.html":{}}}],["urlparams.newsid",{"_index":14633,"title":{},"body":{"controllers/NewsController.html":{}}}],["urlparams.roomid",{"_index":16984,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.submissioncontainerid",{"_index":3704,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.submissionid",{"_index":18261,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["urlparams.submissionitemid",{"_index":3711,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.taskid",{"_index":18814,"title":{},"body":{"controllers/TaskController.html":{}}}],["urlparams.teamid",{"_index":19286,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["urlparams.token",{"_index":17911,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["urlpath",{"_index":20590,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["urls",{"_index":12589,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"injectables/UserMigrationService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["urlsafe",{"_index":21459,"title":{},"body":{"dependencies.html":{}}}],["urlsearchparams",{"_index":193,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["usable",{"_index":17861,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["usage",{"_index":8840,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["use",{"_index":574,"title":{},"body":{"controllers/AccountController.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/CopyFilesService.html":{},"entities/CourseNews.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DomainObjectFactory.html":{},"injectables/ErrorLogger.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FileSystemAdapter.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalValidationPipe.html":{},"modules/H5PEditorModule.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/LdapStrategy.html":{},"modules/LearnroomApiModule.html":{},"injectables/LegacyLogger.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PermissionService.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/TaskUC.html":{},"entities/TeamNews.html":{},"injectables/UserLoginMigrationService.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["usecase",{"_index":22487,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usecases",{"_index":22526,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["usecentralldap",{"_index":12292,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["useclass",{"_index":8221,"title":{},"body":{"modules/ErrorModule.html":{},"modules/IdentityManagementModule.html":{},"modules/InterceptorModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ValidationModule.html":{}}}],["used",{"_index":72,"title":{},"body":{"classes/AbstractAccountService.html":{},"interfaces/AdminIdAndToken.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/ConsentResponse.html":{},"injectables/ErrorLogger.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"controllers/H5PEditorController.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LoginResponse-1.html":{},"classes/MongoPatterns.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/NextcloudStrategy.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/Submission.html":{},"controllers/SystemController.html":{},"injectables/TaskRepo.html":{},"entities/TeamEntity.html":{},"controllers/TeamNewsController.html":{},"classes/TeamUserEntity.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["usedglobals",{"_index":10461,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["usedobuilder(builder",{"_index":3583,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["useexisting",{"_index":4564,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["usefactory",{"_index":837,"title":{},"body":{"modules/AccountModule.html":{},"modules/CacheWrapperModule.html":{},"modules/EncryptionModule.html":{},"modules/InterceptorModule.html":{},"modules/LoggerModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/RedisModule.html":{},"modules/S3ClientModule.html":{}}}],["useful",{"_index":22224,"title":{},"body":{"license.html":{}}}],["useguards",{"_index":14098,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('ldap",{"_index":14104,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('local",{"_index":14110,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('oauth2",{"_index":14114,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('ldap')@apioperation({summary",{"_index":14083,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('local')@apioperation({summary",{"_index":14090,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('oauth2')@apioperation({summary",{"_index":14095,"title":{},"body":{"controllers/LoginController.html":{}}}],["user",{"_index":461,"title":{"entities/User.html":{}},"body":{"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolUc.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRule.html":{},"entities/CourseNews.html":{},"injectables/CourseRule.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MissingSchoolNumberException.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"injectables/PermissionService.html":{},"injectables/PseudonymService.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/ResolvedUserMapper.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamRule.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["user's",{"_index":15476,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["user'})@isboolean",{"_index":19951,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["user'})@ismongoid",{"_index":19954,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["user(params",{"_index":23068,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(props",{"_index":20086,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user(s",{"_index":23036,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(value",{"_index":12074,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["user.'})@apiresponse({status",{"_index":523,"title":{},"body":{"controllers/AccountController.html":{}}}],["user._id",{"_index":12543,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["user._id.$oid",{"_index":13228,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.accountid",{"_index":1830,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["user.attribute",{"_index":13002,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["user.attributes",{"_index":13134,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.attributes[attributename",{"_index":13135,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.business",{"_index":19988,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user.controller",{"_index":12453,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["user.controller.ts",{"_index":12261,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:102",{"_index":12286,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:107",{"_index":12294,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:115",{"_index":12273,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:32",{"_index":12276,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:50",{"_index":12290,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:62",{"_index":12283,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:73",{"_index":12298,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:85",{"_index":12279,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.createdat",{"_index":16685,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.createdtimestamp",{"_index":13141,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.dto",{"_index":8281,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/OauthDataDto.html":{}}}],["user.dto.ts",{"_index":8290,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:10",{"_index":9334,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:12",{"_index":9333,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:4",{"_index":8293,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:6",{"_index":8292,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:8",{"_index":9335,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.email",{"_index":12173,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{},"classes/UserMatchMapper.html":{}}}],["user.entity",{"_index":6409,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{}}}],["user.entity.ts",{"_index":10736,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["user.entity.ts:102",{"_index":12258,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:109",{"_index":12254,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:112",{"_index":12250,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:13",{"_index":10739,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:16",{"_index":10738,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:54",{"_index":12256,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:57",{"_index":12257,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:60",{"_index":12252,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:76",{"_index":12247,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:79",{"_index":12248,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:82",{"_index":12251,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:88",{"_index":12246,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:91",{"_index":12255,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:94",{"_index":12245,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.externalid",{"_index":12658,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/UserDto.html":{}}}],["user.factory",{"_index":849,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["user.factory.ts",{"_index":12344,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.factory.ts:10",{"_index":12346,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.firstname",{"_index":13139,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserService.html":{}}}],["user.forcepasswordchange",{"_index":20167,"title":{},"body":{"classes/UserDto.html":{}}}],["user.id",{"_index":738,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardDoRule.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"injectables/IdTokenService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymService.html":{},"classes/ResolvedUserMapper.html":{},"entities/Submission.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/VideoConferenceEndUc.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["user.interface",{"_index":13221,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.interface.ts",{"_index":11505,"title":{},"body":{"interfaces/IJsonUser.html":{}}}],["user.language",{"_index":20166,"title":{},"body":{"classes/UserDto.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.lastloginsystemchange",{"_index":14473,"title":{},"body":{"injectables/MigrationCheckService.html":{},"classes/UserDto.html":{}}}],["user.lastname",{"_index":13140,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["user.ldapdn",{"_index":20165,"title":{},"body":{"classes/UserDto.html":{}}}],["user.mapper",{"_index":12301,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.mapper.ts",{"_index":6931,"title":{},"body":{"classes/CurrentUserMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:17",{"_index":12383,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:19",{"_index":6939,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:32",{"_index":12385,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:33",{"_index":6936,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:49",{"_index":12382,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:5",{"_index":16682,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:9",{"_index":6941,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.module",{"_index":20007,"title":{},"body":{"modules/UserApiModule.html":{}}}],["user.outdatedsince",{"_index":17647,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserDto.html":{}}}],["user.params",{"_index":20539,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.params.ts",{"_index":10329,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/SortImportUserParams.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.params.ts:12",{"_index":10366,"title":{},"body":{"classes/FilterUserParams.html":{}}}],["user.params.ts:21",{"_index":10335,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:27",{"_index":10338,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:33",{"_index":10339,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:40",{"_index":10344,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:45",{"_index":10337,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:54",{"_index":10333,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:59",{"_index":10347,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.permissions",{"_index":9364,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.preferences",{"_index":20168,"title":{},"body":{"classes/UserDto.html":{}}}],["user.repo.ts",{"_index":22601,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.resolvepermissions",{"_index":1913,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.response.ts",{"_index":12358,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ResolvedUserResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.response.ts:11",{"_index":16695,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:14",{"_index":16694,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:17",{"_index":16692,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:20",{"_index":16699,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:23",{"_index":16697,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:25",{"_index":12504,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:26",{"_index":16696,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:29",{"_index":16698,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:31",{"_index":12506,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:37",{"_index":12502,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:43",{"_index":12505,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:50",{"_index":12508,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:53",{"_index":12501,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:56",{"_index":12507,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:61",{"_index":12503,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:64",{"_index":12359,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["user.response.ts:7",{"_index":12500,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:8",{"_index":16693,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.roleids",{"_index":20164,"title":{},"body":{"classes/UserDto.html":{}}}],["user.roles",{"_index":15955,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{}}}],["user.roles.getitems",{"_index":20022,"title":{},"body":{"controllers/UserController.html":{}}}],["user.roles.getitems().map((role",{"_index":6944,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.getitems(true",{"_index":20544,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.roles.isinitialized(true",{"_index":16118,"title":{},"body":{"injectables/PermissionService.html":{}}}],["user.roles.map((roleref",{"_index":6947,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["user.roles.some",{"_index":20794,"title":{},"body":{"injectables/UserService.html":{}}}],["user.school",{"_index":6556,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["user.school.id",{"_index":5868,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"classes/CurrentUserMapper.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/ShareTokenUC.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["user.school.schoolyear?.enddate",{"_index":6559,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.schoolyear?.startdate",{"_index":6558,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.tostring",{"_index":16689,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.schoolid",{"_index":6949,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/IdTokenService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{}}}],["user.schoolid.tostring",{"_index":9362,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.scope",{"_index":20085,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user.ts",{"_index":10730,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:4",{"_index":10732,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:6",{"_index":10731,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.uc.ts",{"_index":22595,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.updatedat",{"_index":16687,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.url.params.ts",{"_index":12568,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.url.params.ts:11",{"_index":12569,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.userid",{"_index":20301,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["user.username",{"_index":13138,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{}}}],["user/account",{"_index":12703,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["user/import",{"_index":12262,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user?.lastloginsystemchange",{"_index":14471,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["user_already_assigned_to_import_user_error",{"_index":19991,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user_id",{"_index":2251,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["user_login_migration_already_closed",{"_index":20228,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["user_login_migration_grace_period_expired",{"_index":20344,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["user_login_migration_not_found",{"_index":20376,"title":{},"body":{"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["user_login_migrations",{"_index":20211,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["user_migration_failed",{"_index":20340,"title":{},"body":{"classes/UserLoginMigrationError.html":{}}}],["useralreadyassignedtoimportusererror",{"_index":19986,"title":{"classes/UserAlreadyAssignedToImportUserError.html":{}},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["userandaccountparams",{"_index":855,"title":{"interfaces/UserAndAccountParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userandaccounttestfactory",{"_index":856,"title":{"classes/UserAndAccountTestFactory.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userandaccounttestfactory.buildaccount(user",{"_index":867,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userapimodule",{"_index":17761,"title":{"modules/UserApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserApiModule.html":{},"modules.html":{}}}],["userattributenamemapping",{"_index":11910,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["userboardrole",{"_index":3362,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.editor",{"_index":3367,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.reader",{"_index":3368,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.userroleenum",{"_index":3365,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardroles",{"_index":3109,"title":{"interfaces/UserBoardRoles.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/UserBoardRoles.html":{}}}],["usercontroller",{"_index":20006,"title":{"controllers/UserController.html":{}},"body":{"modules/UserApiModule.html":{},"controllers/UserController.html":{}}}],["usercount",{"_index":13223,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["userdata",{"_index":18309,"title":{},"body":{"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["userdataresponse",{"_index":18314,"title":{"classes/UserDataResponse.html":{}},"body":{"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/UserDataResponse.html":{}}}],["userdo",{"_index":6938,"title":{"classes/UserDO.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/IdTokenService.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PseudonymService.html":{},"injectables/SchoolMigrationService.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["userdo.email",{"_index":12608,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.externalid",{"_index":12609,"title":{},"body":{"classes/IservMapper.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.firstname",{"_index":12606,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.lastloginsystemchange",{"_index":20478,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.lastname",{"_index":12607,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.previousexternalid",{"_index":20646,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocopy",{"_index":20605,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocument",{"_index":20729,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments",{"_index":20726,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments.map((userdocument",{"_index":20727,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdofactory",{"_index":20139,"title":{"classes/UserDoFactory.html":{}},"body":{"classes/UserDoFactory.html":{}}}],["userdofactory.define(userdo",{"_index":20144,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["userdorepo",{"_index":20066,"title":{"injectables/UserDORepo.html":{}},"body":{"injectables/UserDORepo.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["userdotoicurrentuser",{"_index":6933,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["userdotoicurrentuser(accountid",{"_index":6937,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["userdto",{"_index":20145,"title":{"classes/UserDto.html":{}},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["userentity",{"_index":20096,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userentitys",{"_index":20103,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userentitys.find((user",{"_index":20105,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userequestcontext",{"_index":10184,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["userfactory",{"_index":848,"title":{"classes/UserFactory.html":{}},"body":{"interfaces/AccountParams.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["userfactory.build",{"_index":18278,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["userfactory.buildlistwithid(numberofstudents",{"_index":6618,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["userfactory.buildlistwithid(numberofteachers",{"_index":6619,"title":{},"body":{"classes/CourseFactory.html":{}}}],["userfactory.buildlistwithid(numberofteammembers",{"_index":18275,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["userfactory.buildwithid",{"_index":18274,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TeamUserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["userfactory.define(user",{"_index":20187,"title":{},"body":{"classes/UserFactory.html":{}}}],["userforgroupnotfoundloggable",{"_index":15928,"title":{"classes/UserForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["userforgroupnotfoundloggable(externalgroupuser",{"_index":15985,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["userid",{"_index":39,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthorizationService.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DownloadFileParams.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageConsumer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupNameIdTuple.html":{},"classes/GroupUser.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IJsonAccount.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserScope.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewParams.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"classes/ScanResultParams.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UpdateMatchParams.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDataResponse.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["userid(value",{"_index":18291,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["userid).buildwithid",{"_index":19260,"title":{},"body":{"classes/TeamFactory.html":{}}}],["userid)?.userroleenum",{"_index":18369,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["userid.tohexstring",{"_index":4359,"title":{},"body":{"classes/ClassMapper.html":{}}}],["userid.tostring",{"_index":9373,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["userid1",{"_index":4276,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["userid?.tostring",{"_index":1255,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["userids",{"_index":62,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassesRepo.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"injectables/NextcloudStrategy.html":{},"entities/Submission.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{}}}],["userids'})@index",{"_index":6630,"title":{},"body":{"entities/CourseGroup.html":{}}}],["userids.map((id",{"_index":923,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["userimportuc",{"_index":12305,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["userinfo",{"_index":14156,"title":{},"body":{"injectables/LoginUc.html":{},"classes/SystemFactory.html":{}}}],["userinfo.token.claim",{"_index":13006,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["userinfomapper",{"_index":14683,"title":{"classes/UserInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/UserInfoMapper.html":{}}}],["userinfomapper.maptoresponse(news.creator",{"_index":14686,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinfomapper.maptoresponse(news.updater",{"_index":14700,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinforesponse",{"_index":14654,"title":{"classes/UserInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{}}}],["userinfourl",{"_index":11935,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["userinteam",{"_index":21264,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["userinteam.user.id",{"_index":21265,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["userjwt",{"_index":15818,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userlist",{"_index":12331,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userlist.map((user",{"_index":12333,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userloginmigration",{"_index":4457,"title":{"entities/UserLoginMigration.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"entities/UserLoginMigration.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigration(props",{"_index":20385,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigration.closedat",{"_index":4467,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.finishedat",{"_index":4464,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.finishedat.gettime",{"_index":4475,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.id",{"_index":4466,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.mandatorysince",{"_index":13643,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.school",{"_index":11719,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["userloginmigration.startedat",{"_index":13642,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationalreadyclosedloggableexception",{"_index":18153,"title":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiokresponse({description",{"_index":20279,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiunprocessableentityresponse({description",{"_index":20249,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationapimodule",{"_index":17762,"title":{"modules/UserLoginMigrationApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["userloginmigrationcontroller",{"_index":20235,"title":{"controllers/UserLoginMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationdo",{"_index":4455,"title":{"classes/UserLoginMigrationDO.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationdo.closedat",{"_index":20471,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationdo.finishedat",{"_index":20472,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationdo.startedat",{"_index":20470,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationerror",{"_index":20339,"title":{"classes/UserLoginMigrationError.html":{}},"body":{"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception",{"_index":4459,"title":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apinotfoundresponse({description",{"_index":20250,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiokresponse({description",{"_index":20273,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiunprocessableentityresponse({description",{"_index":20278,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationid",{"_index":11720,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["userloginmigrationmandatoryloggable",{"_index":19481,"title":{"classes/UserLoginMigrationMandatoryLoggable.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["userloginmigrationmandatoryloggable(userid",{"_index":19484,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigrationmandatoryparams",{"_index":20276,"title":{"classes/UserLoginMigrationMandatoryParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryParams.html":{}}}],["userloginmigrationmapper",{"_index":20288,"title":{"classes/UserLoginMigrationMapper.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{}}}],["userloginmigrationmapper.mapsearchparamstoquery(params",{"_index":20298,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(migrationdto",{"_index":20311,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(userloginmigration",{"_index":20304,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmodule",{"_index":13436,"title":{"modules/UserLoginMigrationModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules.html":{}}}],["userloginmigrationnotfoundloggableexception",{"_index":4460,"title":{"classes/UserLoginMigrationNotFoundLoggableException.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationnotfoundloggableexception(schoolid",{"_index":4462,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiokresponse({description",{"_index":20251,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiunprocessableentityresponse({description",{"_index":20271,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationprops",{"_index":20394,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationquery",{"_index":20289,"title":{"interfaces/UserLoginMigrationQuery.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationrepo",{"_index":14463,"title":{"injectables/UserLoginMigrationRepo.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationrepo.save",{"_index":20457,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationresponse",{"_index":20290,"title":{"classes/UserLoginMigrationResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationresponse})@apiforbiddenresponse",{"_index":20285,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apinotfoundresponse({description",{"_index":20257,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse",{"_index":20252,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationrevertservice",{"_index":4450,"title":{"injectables/UserLoginMigrationRevertService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["userloginmigrationrule",{"_index":1974,"title":{"injectables/UserLoginMigrationRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["userloginmigrations",{"_index":20256,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchlistresponse",{"_index":20291,"title":{"classes/UserLoginMigrationSearchListResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationsearchlistresponse})@apiinternalservererrorresponse({description",{"_index":20263,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchparams",{"_index":20260,"title":{"classes/UserLoginMigrationSearchParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["userloginmigrationservice",{"_index":4448,"title":{"injectables/UserLoginMigrationService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationstartloggable",{"_index":16708,"title":{"classes/UserLoginMigrationStartLoggable.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["userloginmigrationstartloggable(userid",{"_index":16711,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["userloginmigrationuc",{"_index":20233,"title":{"injectables/UserLoginMigrationUc.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["usermapper",{"_index":20523,"title":{"classes/UserMapper.html":{}},"body":{"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["usermapper.mapfromentitytodto(userentity",{"_index":20783,"title":{},"body":{"injectables/UserService.html":{}}}],["usermatches",{"_index":12495,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["usermatchlistresponse",{"_index":12310,"title":{"classes/UserMatchListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchlistresponse(dtolist",{"_index":12335,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper",{"_index":12302,"title":{"classes/UserMatchMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["usermatchmapper.maptodomain(scope",{"_index":12330,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper.maptoresponse(user",{"_index":12334,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["usermatchresponse",{"_index":12361,"title":{"classes/UserMatchResponse.html":{}},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchschoolid",{"_index":17545,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["usermigrationcontroller",{"_index":20234,"title":{"controllers/UserMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["usermigrationdto",{"_index":14477,"title":{},"body":{"classes/MigrationDto.html":{},"injectables/UserMigrationService.html":{}}}],["usermigrationdto.redirect",{"_index":14478,"title":{},"body":{"classes/MigrationDto.html":{}}}],["usermigrationisnotenabled",{"_index":20571,"title":{"classes/UserMigrationIsNotEnabled.html":{}},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["usermigrationmapper",{"_index":15733,"title":{"classes/UserMigrationMapper.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{}}}],["usermigrationmapper.mapdtotoresponse(migration",{"_index":15803,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["usermigrationresponse",{"_index":15725,"title":{"classes/UserMigrationResponse.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{}}}],["usermigrationservice",{"_index":15046,"title":{"injectables/UserMigrationService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["usermodel",{"_index":13004,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["usermodule",{"_index":4551,"title":{"modules/UserModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ProvisioningModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["username",{"_index":51,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IKeycloakSettings.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"interfaces/IntrospectResponse.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/TestApiClient.html":{},"classes/UnauthorizedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["username.replace(/[^(\\p{l}\\p{n})]/gu",{"_index":942,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["username.trim().tolowercase",{"_index":1852,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["usernames",{"_index":1112,"title":{},"body":{"injectables/AccountService.html":{}}}],["usernotfoundafterprovisioningloggableexception",{"_index":15073,"title":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}},"body":{"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["usernotfoundafterprovisioningloggableexception(externaluserid",{"_index":15099,"title":{},"body":{"injectables/OAuthService.html":{}}}],["userparams",{"_index":850,"title":{"classes/UserParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserParams.html":{}}}],["userpathadditions",{"_index":11907,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["userpermissions",{"_index":20184,"title":{},"body":{"classes/UserFactory.html":{}}}],["userquery",{"_index":20073,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userrefprops",{"_index":1898,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrefprops.some((prop",{"_index":1930,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrepo",{"_index":441,"title":{"injectables/UserRepo.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/AccountValidationService.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"injectables/CourseCopyService.html":{},"interfaces/IRepoLoader.html":{},"modules/ImportUserModule.html":{},"injectables/LdapStrategy.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LocalStrategy.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsUc.html":{},"modules/UserModule.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["userrepresentation",{"_index":13078,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["userrole",{"_index":12363,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["userrole.admin",{"_index":16817,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.student",{"_index":16819,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.teacher",{"_index":16818,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userroleenum",{"_index":3098,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["userroleenum.student",{"_index":3153,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["userroleenum.substitution_teacher",{"_index":3150,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userroleenum.teacher",{"_index":3148,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userrule",{"_index":1975,"title":{"injectables/UserRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserRule.html":{}}}],["users",{"_index":3091,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/CollaborativeStorageService.html":{},"entities/Course.html":{},"classes/ExternalGroupDto.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IUserProperties.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"interfaces/Meta.html":{},"injectables/NewsUc.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolMigrationService.html":{},"classes/ShareTokenBodyParams.html":{},"interfaces/SuccessfulRes.html":{},"controllers/SystemController.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/VideoConferenceCreateParams.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["users.filter((groupuser",{"_index":15987,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.find",{"_index":13114,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.find((user",{"_index":20697,"title":{},"body":{"injectables/UserRepo.html":{}}}],["users.getidentifiers('_id",{"_index":6453,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["users.length",{"_index":13239,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["users.resetpassword",{"_index":13108,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.total",{"_index":17664,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["users.update",{"_index":13107,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users_configuration_path='/tmp/config/users",{"_index":22923,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["userscollection",{"_index":11230,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.createindex",{"_index":11242,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.dropindex('usersearchindex",{"_index":11241,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexes",{"_index":11234,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexexists('usersearchindex",{"_index":11233,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscope",{"_index":20084,"title":{"classes/UserScope.html":{}},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["userscount",{"_index":1281,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["usersearchindex",{"_index":11235,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindex[0].key?.schoolid",{"_index":11238,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindexexists",{"_index":11232,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userservice",{"_index":12145,"title":{"injectables/UserService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["usersfile",{"_index":11510,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["userspermissions",{"_index":1912,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["userspermissions.includes(p",{"_index":1915,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["usersubmissionexists",{"_index":8098,"title":{},"body":{"injectables/ElementUc.html":{}}}],["userswithemail",{"_index":12653,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail.length",{"_index":12655,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail[0",{"_index":12656,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["usertoicurrentuser",{"_index":6934,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["usertoicurrentuser(accountid",{"_index":6940,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["useruc",{"_index":12313,"title":{"injectables/UserUc.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["userwithpermissions",{"_index":2058,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["uses",{"_index":13440,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["usevalue",{"_index":1420,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/RocketChatModule.html":{},"modules/ToolConfigModule.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usevalue(createmock",{"_index":19433,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["using",{"_index":704,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"modules/InterceptorModule.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemUc.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"modules/ToolModule.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usually",{"_index":5405,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["utf",{"_index":9992,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["util",{"_index":10491,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["util.inspect(message).replace(/\\n/g",{"_index":13430,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["utilities",{"_index":14044,"title":{},"body":{"modules/LoggerModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["utilities.format.nestlike",{"_index":14063,"title":{},"body":{"modules/LoggerModule.html":{}}}],["utils",{"_index":3307,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/GlobalErrorFilter.html":{},"classes/RecursiveSaveVisitor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["utils.asarray(domainobject",{"_index":16549,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["utils.asarray(id",{"_index":3326,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["utils/error.utils",{"_index":8145,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["uuid",{"_index":775,"title":{},"body":{"injectables/AccountLookupService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserFactory.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/PseudonymService.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"dependencies.html":{}}}],["uuidv4",{"_index":12347,"title":{},"body":{"classes/ImportUserFactory.html":{},"injectables/PseudonymService.html":{}}}],["v",{"_index":11617,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["v3",{"_index":22298,"title":{},"body":{"todo.html":{}}}],["v3/index",{"_index":22303,"title":{},"body":{"todo.html":{}}}],["v3/tools/external",{"_index":8437,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolController.html":{}}}],["v4",{"_index":9599,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ImportUserFactory.html":{},"injectables/PseudonymService.html":{}}}],["val",{"_index":5328,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["valid",{"_index":783,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AuthenticationModule.html":{},"entities/Board.html":{},"classes/BoardManagementConsole.html":{},"classes/GlobalValidationPipe.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"classes/LdapConfig.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SubmissionItemResponseMapper.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["validatabletool",{"_index":5313,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.id",{"_index":5345,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.find",{"_index":5349,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.length",{"_index":5343,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.map",{"_index":5338,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validate",{"_index":5974,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"modules/InterceptorModule.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/LocalStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["validate(payload",{"_index":12690,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["validate(props",{"_index":4297,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["validate(request",{"_index":13330,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["validate(school",{"_index":17686,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validate(schoolexternaltool",{"_index":17523,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validate(tovalidate",{"_index":5981,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validate(username",{"_index":14003,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["validatecommon",{"_index":8647,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecommon(externaltool",{"_index":8667,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecreate",{"_index":9231,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatecreate(externaltool",{"_index":9236,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatecredentials",{"_index":1122,"title":{},"body":{"injectables/AccountService.html":{}}}],["validated",{"_index":12723,"title":{},"body":{"injectables/JwtValidationAdapter.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["validategraceperiod",{"_index":17593,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validategraceperiod(userloginmigration",{"_index":17618,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validatelogosize",{"_index":8555,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelogosize(externaltool",{"_index":8569,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelti11config",{"_index":9232,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatelti11config(externaltool",{"_index":9238,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatenested",{"_index":5740,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["validatenested()@apiproperty",{"_index":9535,"title":{},"body":{"classes/FileElementContentBody.html":{},"classes/MoveElementParams.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{}}}],["validatenested()@type(undefined",{"_index":8458,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["validatenested({each",{"_index":5732,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["validateoauth2config",{"_index":9233,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateoauth2config(externaltool",{"_index":9239,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateorreject",{"_index":1078,"title":{},"body":{"injectables/AccountService.html":{}}}],["validateorreject(dto",{"_index":1103,"title":{},"body":{"injectables/AccountService.html":{}}}],["validateparameter",{"_index":5311,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validateparameter(param",{"_index":5330,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatepassword",{"_index":24,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["validatepassword(account",{"_index":91,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["validatereordering(reorderedids",{"_index":2716,"title":{},"body":{"entities/Board.html":{}}}],["validaterocketchatconfig",{"_index":1402,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["validatestatus",{"_index":10928,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["validatesubject",{"_index":15450,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatesubject(currentuser",{"_index":15457,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatetoken",{"_index":15042,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validatetoken(idtoken",{"_index":15068,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validateupdate",{"_index":9234,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateupdate(toolid",{"_index":9241,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateusername",{"_index":1111,"title":{},"body":{"injectables/AccountService.html":{}}}],["validateusersmatch",{"_index":7617,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validateusersmatch(dashboard",{"_index":7625,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validating",{"_index":12722,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation",{"_index":1492,"title":{"additional-documentation/nestjs-application/domain-object-validation.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/BusinessError.html":{},"modules/CoreModule.html":{},"entities/CourseNews.html":{},"classes/ErrorLoggable.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/INewsProperties.html":{},"injectables/LegacySchoolService.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"classes/ValidationError.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["validation.adapter",{"_index":1654,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{}}}],["validation.adapter.ts",{"_index":12711,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:13",{"_index":12716,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:25",{"_index":12721,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:30",{"_index":12719,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:36",{"_index":12726,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.error.ts",{"_index":1471,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.error.ts:4",{"_index":1477,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.pipe",{"_index":20822,"title":{},"body":{"modules/ValidationModule.html":{}}}],["validation.pipe.ts",{"_index":10529,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.pipe.ts:12",{"_index":10532,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.service",{"_index":9243,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts",{"_index":5302,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:10",{"_index":8648,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:108",{"_index":8656,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:118",{"_index":8658,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:128",{"_index":8664,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:13",{"_index":5978,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:136",{"_index":8660,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:14",{"_index":5333,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:148",{"_index":8652,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:15",{"_index":17524,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:16",{"_index":8668,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:18",{"_index":9237,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:21",{"_index":5982,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:24",{"_index":5329,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:27",{"_index":17521,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:28",{"_index":9242,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:32",{"_index":5317,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:37",{"_index":5980,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:45",{"_index":5314,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:53",{"_index":5326,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:60",{"_index":9240,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:65",{"_index":5331,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:7",{"_index":17684,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:72",{"_index":8654,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:73",{"_index":5320,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:76",{"_index":8662,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:81",{"_index":5324,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:86",{"_index":8650,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:89",{"_index":5322,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:9",{"_index":17518,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:95",{"_index":8666,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation_error",{"_index":20815,"title":{},"body":{"classes/ValidationError.html":{}}}],["validationerror",{"_index":503,"title":{"classes/ValidationError.html":{}},"body":{"controllers/AccountController.html":{},"injectables/AccountService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CurrentUserMapper.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"classes/GlobalValidationPipe.html":{},"controllers/LoginController.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SubmissionItemService.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/ValidationError.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["validationerror('account",{"_index":1120,"title":{},"body":{"injectables/AccountService.html":{}}}],["validationerror('grace_period_expired",{"_index":17622,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validationerror('no",{"_index":1109,"title":{},"body":{"injectables/AccountService.html":{}}}],["validationerror('user",{"_index":6946,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["validationerror('username",{"_index":1116,"title":{},"body":{"injectables/AccountService.html":{}}}],["validationerror(`tool_id_mismatch",{"_index":9249,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validationerror(`tool_name_duplicate",{"_index":8671,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror(`tool_param_name",{"_index":8676,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror.children",{"_index":1532,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.children.foreach((childerror",{"_index":1533,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.constraints",{"_index":1528,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.property",{"_index":1526,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrordetailresponse",{"_index":1504,"title":{"classes/ValidationErrorDetailResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["validationerrordetailresponse(propertypath",{"_index":1531,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrorlogmessage",{"_index":8138,"title":{},"body":{"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["validationerrors",{"_index":1478,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/ErrorLoggable.html":{}}}],["validationmetadata",{"_index":8170,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.context?.privacyprotected",{"_index":8172,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.propertyname",{"_index":8171,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmodule",{"_index":6323,"title":{"modules/ValidationModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{},"modules.html":{}}}],["validationoptions",{"_index":21572,"title":{},"body":{"miscellaneous/functions.html":{}}}],["validationpipe",{"_index":10531,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validator",{"_index":374,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardUrlParams.html":{},"classes/CardIdsParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterPostParams.html":{},"classes/DashboardUrlParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/IdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationBody.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PageContentQueryParams.html":{},"classes/PaginationParams.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolParams.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceScopeParams.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["validators",{"_index":22584,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["validfrom",{"_index":10579,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["validjwt",{"_index":6880,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["validperiod",{"_index":10618,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["validuntil",{"_index":10580,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["value",{"_index":144,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/CardSkeletonResponse.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"classes/CommonCartridgeFileBuilder.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/CopyHelperService.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"entities/DashboardModelEntity.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ElementContentBody.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElement.html":{},"classes/FileElementContentBody.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"injectables/FilesStorageProducer.html":{},"classes/FilterUserParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/GuardAgainst.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IGridElement.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"injectables/Logger.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/PaginationParams.html":{},"classes/PropertyData.html":{},"injectables/ProvisioningService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContentBody.html":{},"interfaces/RichTextElementProps.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContentBody.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SystemFactory.html":{},"classes/SystemScope.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceInfo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["value.component",{"_index":13756,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["value.content",{"_index":13757,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["value.content.url",{"_index":13758,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["value.length",{"_index":18179,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{}}}],["value.loggable",{"_index":14519,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["value.trim().length",{"_index":18202,"title":{},"body":{"classes/StringValidator.html":{}}}],["value[0",{"_index":13150,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["values",{"_index":1659,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapStrategy.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/System.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["var",{"_index":11254,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["variable",{"_index":17808,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["variables",{"_index":22589,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["various",{"_index":22495,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["vars",{"_index":2658,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["vcdo",{"_index":21079,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["vcdo.options",{"_index":21081,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["vcsettings",{"_index":21226,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["verbatim",{"_index":21660,"title":{},"body":{"license.html":{}}}],["verbose",{"_index":11568,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["verified",{"_index":1366,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["verify",{"_index":22831,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyfeaturesenabled",{"_index":20951,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifyfeaturesenabled(schoolid",{"_index":20964,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifying",{"_index":22832,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyoptions",{"_index":1698,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["version",{"_index":4945,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"injectables/CourseExportUc.html":{},"classes/CourseQueryParams.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ToolConfigurationMapper.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["version.interface.ts",{"_index":19942,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.interface.ts:2",{"_index":19943,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.service",{"_index":9112,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["version.service.ts",{"_index":9264,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:16",{"_index":9275,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:32",{"_index":9289,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:39",{"_index":9278,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:52",{"_index":9287,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:60",{"_index":9281,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:68",{"_index":9285,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:7",{"_index":9292,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:76",{"_index":9283,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["versionkey",{"_index":9569,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["versionnumber",{"_index":5170,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["versions",{"_index":21675,"title":{},"body":{"license.html":{}}}],["vertrauensstufe",{"_index":17231,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["very",{"_index":11199,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["via",{"_index":6047,"title":{},"body":{"classes/CopyApiResponse.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LoginController.html":{},"injectables/OauthUc.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["video",{"_index":7871,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconference",{"_index":6423,"title":{"entities/VideoConference.html":{},"classes/VideoConference-1.html":{}},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconference(props",{"_index":21177,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconference.options.everybodyjoinsasmoderator",{"_index":21097,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference.options.moderatormustapprovejoinrequests",{"_index":21099,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference2",{"_index":20876,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconference:31",{"_index":21053,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:34",{"_index":21054,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:6",{"_index":21052,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconferenceapimodule",{"_index":17763,"title":{"modules/VideoConferenceApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules.html":{}}}],["videoconferencebaseresponse",{"_index":7872,"title":{"classes/VideoConferenceBaseResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencebaseresponse:10",{"_index":7879,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:12",{"_index":7877,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:8",{"_index":7880,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferenceconfiguration",{"_index":20866,"title":{"classes/VideoConferenceConfiguration.html":{}},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.bbb",{"_index":20872,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.videoconference",{"_index":21144,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["videoconferencecontroller",{"_index":20861,"title":{"controllers/VideoConferenceController.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencecreateparams",{"_index":20896,"title":{"classes/VideoConferenceCreateParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencecreateuc",{"_index":20857,"title":{"injectables/VideoConferenceCreateUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["videoconferencedeprecatedcontroller",{"_index":21002,"title":{"controllers/VideoConferenceDeprecatedController.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedeprecateduc",{"_index":21016,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedo",{"_index":20989,"title":{"classes/VideoConferenceDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferenceenduc",{"_index":20858,"title":{"injectables/VideoConferenceEndUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["videoconferenceinfo",{"_index":20903,"title":{"classes/VideoConferenceInfo.html":{}},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferenceinforesponse",{"_index":20905,"title":{"classes/VideoConferenceInfoResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferenceinforesponse})@apiresponse({status",{"_index":20887,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferenceinfouc",{"_index":20859,"title":{"injectables/VideoConferenceInfoUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["videoconferencejoin",{"_index":20904,"title":{"classes/VideoConferenceJoin.html":{}},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencejoin.url",{"_index":21133,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse",{"_index":20906,"title":{"classes/VideoConferenceJoinResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse})@apiresponse({status",{"_index":20893,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencejoinuc",{"_index":20860,"title":{"injectables/VideoConferenceJoinUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["videoconferencemapper",{"_index":20900,"title":{"classes/VideoConferenceMapper.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemapper.tovideoconferenceinforesponse(dto",{"_index":20924,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencejoinresponse(dto",{"_index":20921,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferenceoptions(params",{"_index":20917,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencestateresponse(from.state",{"_index":21200,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemodule",{"_index":20856,"title":{"modules/VideoConferenceModule.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["videoconferenceoptions",{"_index":20825,"title":{"classes/VideoConferenceOptions.html":{}},"body":{"entities/VideoConference.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferenceoptionsdo",{"_index":20993,"title":{"classes/VideoConferenceOptionsDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferenceoptionsdo(options",{"_index":21302,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["videoconferenceoptionsresponse",{"_index":21061,"title":{"classes/VideoConferenceOptionsResponse.html":{}},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["videoconferenceoptionsresponse(videoconferenceinfo.options",{"_index":21132,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencerepo",{"_index":21139,"title":{"injectables/VideoConferenceRepo.html":{}},"body":{"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferenceresponsedeprecatedmapper",{"_index":21014,"title":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptobaseresponse(dto",{"_index":21038,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptoinforesponse(dto",{"_index":21035,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptojoinresponse(dto",{"_index":21033,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsemapper",{"_index":21191,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferences",{"_index":20839,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["videoconferencescope",{"_index":17726,"title":{},"body":{"classes/ScopeRef.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencescope'})@isenum(videoconferencescope",{"_index":21205,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope.course",{"_index":21124,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencescope.event",{"_index":21125,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencescopeparams",{"_index":20879,"title":{"classes/VideoConferenceScopeParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferenceservice",{"_index":20953,"title":{"injectables/VideoConferenceService.html":{}},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencesettings",{"_index":12122,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencestate",{"_index":20846,"title":{},"body":{"classes/VideoConference-1.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencestate.finished",{"_index":21049,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.not_started",{"_index":21073,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencestate.running",{"_index":21027,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse",{"_index":7878,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.finished",{"_index":21130,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.not_started",{"_index":21128,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.running",{"_index":21129,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferenceuc",{"_index":21020,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencingscopemapping",{"_index":21176,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencingscopemapping[entity.targetmodel",{"_index":21181,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videocount",{"_index":2269,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["view",{"_index":14815,"title":{},"body":{"injectables/NewsUc.html":{},"license.html":{}}}],["viewer",{"_index":2219,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["viewers",{"_index":6734,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["violates",{"_index":21981,"title":{},"body":{"license.html":{}}}],["violation",{"_index":22032,"title":{},"body":{"license.html":{}}}],["virtuals",{"_index":21415,"title":{},"body":{"dependencies.html":{}}}],["virus",{"_index":9827,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["virus_detected",{"_index":6133,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["virus_signature",{"_index":6134,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["visibilities",{"_index":22280,"title":{},"body":{"todo.html":{}}}],["visibility",{"_index":4109,"title":{},"body":{"classes/CardResponse.html":{},"classes/PatchVisibilityParams.html":{},"injectables/RoomsUc.html":{}}}],["visibility.params.ts",{"_index":16100,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibility.params.ts:12",{"_index":16101,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibilitysettings",{"_index":4099,"title":{},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{}}}],["visibilitysettingsresponse",{"_index":4106,"title":{"classes/VisibilitySettingsResponse.html":{}},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["visible",{"_index":6733,"title":{},"body":{"entities/CourseNews.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["visibletools",{"_index":8377,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visibletools.filter",{"_index":8381,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visitcard",{"_index":2848,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcard(card",{"_index":2855,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcardasync",{"_index":2891,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(card",{"_index":2886,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildren",{"_index":16531,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildren(parent",{"_index":16540,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildrenasync",{"_index":16495,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenasync(domainobject",{"_index":16500,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumn",{"_index":2849,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumn(column",{"_index":2858,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnasync",{"_index":2892,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(column",{"_index":2885,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboard",{"_index":2850,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboard(columnboard",{"_index":2860,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboardasync",{"_index":2893,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(columnboard",{"_index":2884,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelement",{"_index":2851,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelement(fileelement",{"_index":2863,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelementasync",{"_index":2894,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(fileelement",{"_index":2887,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitor",{"_index":2804,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["visitor.ts",{"_index":2847,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:10",{"_index":2862,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:11",{"_index":2859,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:12",{"_index":2857,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:13",{"_index":2865,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:14",{"_index":2868,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:15",{"_index":2871,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:16",{"_index":2874,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:20",{"_index":2900,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:21",{"_index":2899,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:22",{"_index":2898,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:23",{"_index":2901,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:24",{"_index":2902,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:25",{"_index":2903,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:26",{"_index":2904,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.visitcard(this",{"_index":4001,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcardasync(this",{"_index":4002,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcolumn(this",{"_index":4685,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnasync(this",{"_index":4686,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnboard(this",{"_index":4701,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitcolumnboardasync(this",{"_index":4702,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitfileelement(this",{"_index":9527,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitfileelementasync(this",{"_index":9528,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitrichtextelement(this",{"_index":16745,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitrichtextelementasync(this",{"_index":16746,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitsubmissioncontainerelement(this",{"_index":18221,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissioncontainerelementasync(this",{"_index":18222,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissionitem(this",{"_index":18294,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitor.visitsubmissionitemasync(this",{"_index":18295,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitrichtextelement",{"_index":2852,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelement(richtextelement",{"_index":2866,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelementasync",{"_index":2895,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitrichtextelementasync(richtextelement",{"_index":2888,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelement",{"_index":2853,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelement(submissioncontainerelement",{"_index":2869,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelementasync",{"_index":2896,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelementasync(submissioncontainerelement",{"_index":2889,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitem",{"_index":2854,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submission",{"_index":5573,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submissionitem",{"_index":2872,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitsubmissionitemasync",{"_index":2897,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(submission",{"_index":16507,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(submissionitem",{"_index":2890,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visual",{"_index":21621,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["vo",{"_index":11457,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["voicebridge",{"_index":2205,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["voiceparticipantcount",{"_index":2270,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["void",{"_index":148,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationErrorResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"entities/Course.html":{},"injectables/CourseCopyUC.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseScope.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/ErrorLogger.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"injectables/Logger.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"classes/NewsScope.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"classes/Scope.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SystemFactory.html":{},"classes/SystemScope.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/ToolLaunchService.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceRepo.html":{},"license.html":{}}}],["volume",{"_index":21887,"title":{},"body":{"license.html":{}}}],["von",{"_index":17220,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["vorname",{"_index":17223,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["vs",{"_index":12670,"title":{},"body":{"interfaces/JwtConstants.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["vscode",{"_index":21589,"title":{"additional-documentation/nestjs-application/vscode.html":{}},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["vscode/extensions.json",{"_index":22866,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/lauch",{"_index":22304,"title":{},"body":{"todo.html":{}}}],["vscode/launch.default.json",{"_index":22423,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/settings.default.json",{"_index":22864,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["vue.js",{"_index":21542,"title":{},"body":{"miscellaneous/functions.html":{}}}],["wait",{"_index":1849,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["waiting",{"_index":21103,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["waitingroomenabled",{"_index":21228,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["waive",{"_index":21847,"title":{},"body":{"license.html":{}}}],["waiver",{"_index":22210,"title":{},"body":{"license.html":{}}}],["want",{"_index":4632,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["warn",{"_index":11523,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["warn(message",{"_index":11534,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["warning",{"_index":14025,"title":{},"body":{"injectables/Logger.html":{}}}],["warning(loggable",{"_index":14034,"title":{},"body":{"injectables/Logger.html":{}}}],["warranties",{"_index":21769,"title":{},"body":{"license.html":{}}}],["warranty",{"_index":21768,"title":{},"body":{"license.html":{}}}],["watch",{"_index":22287,"title":{},"body":{"todo.html":{}}}],["way",{"_index":3613,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/LdapStrategy.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ways",{"_index":21897,"title":{},"body":{"license.html":{}}}],["web",{"_index":5233,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["weblink",{"_index":5262,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["weights",{"_index":11246,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["weird",{"_index":6757,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["welcome",{"_index":2119,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{}}}],["well",{"_index":21753,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["wellknownurl",{"_index":13052,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["went",{"_index":12134,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["werden",{"_index":4776,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wether",{"_index":23133,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["whatever",{"_index":17736,"title":{},"body":{"classes/ServerConsole.html":{},"license.html":{}}}],["whereas",{"_index":22523,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wherelastloginsystemchangeisbetween",{"_index":20091,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["wherelastloginsystemchangeisbetween(startdate",{"_index":20743,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan",{"_index":20738,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(date",{"_index":20745,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(query.lastloginsystemchangesmallerthan",{"_index":20090,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["wherever",{"_index":13421,"title":{},"body":{"injectables/LegacyLogger.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["whether",{"_index":6927,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["whitelist",{"_index":10539,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["whitelisted",{"_index":12704,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["whitespace",{"_index":14557,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["whole",{"_index":14886,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["whos",{"_index":18301,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["whose",{"_index":21937,"title":{},"body":{"license.html":{}}}],["wichtige",{"_index":4768,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["widely",{"_index":21781,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["widespread",{"_index":21701,"title":{},"body":{"license.html":{}}}],["width",{"_index":6143,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/IdTokenService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["width=100",{"_index":5260,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["wildfly",{"_index":22950,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["willkommen",{"_index":4755,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["window",{"_index":14241,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"license.html":{},"todo.html":{}}}],["windowfeatures",{"_index":5259,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["windows",{"_index":22263,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["winston",{"_index":8190,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["winston.config.syslog.levels",{"_index":14049,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.combine",{"_index":14056,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.ms",{"_index":14062,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.timestamp",{"_index":14057,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.transports.console",{"_index":14053,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston_module_provider",{"_index":8189,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonlogger",{"_index":8179,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonmodule",{"_index":14045,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winstonmodule.forrootasync",{"_index":14047,"title":{},"body":{"modules/LoggerModule.html":{}}}],["wip",{"_index":21632,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["wipo",{"_index":21839,"title":{},"body":{"license.html":{}}}],["wir",{"_index":4763,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wired",{"_index":22854,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wish",{"_index":21682,"title":{},"body":{"license.html":{}}}],["withbase64logo",{"_index":7171,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withbasicconfig",{"_index":8494,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withcredentials",{"_index":10966,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["withcustomparameters",{"_index":8514,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["withcustomparameters(number",{"_index":7168,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata",{"_index":15189,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata(oauth2params",{"_index":7133,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withguestpolicy",{"_index":2157,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withguestpolicy(guestpolicy",{"_index":2163,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withid",{"_index":17934,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["withid(id",{"_index":17935,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["within",{"_index":3872,"title":{},"body":{"classes/BusinessError.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PatchOrderParams.html":{},"classes/RoomElementUrlParams.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["withindexes",{"_index":7703,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["withldapconfig",{"_index":18572,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withldapconfig(otherparams",{"_index":18575,"title":{},"body":{"classes/SystemFactory.html":{}}}],["withlogouturl",{"_index":2158,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(logouturl",{"_index":2165,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(options.logouturl",{"_index":20982,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["withlti11config",{"_index":8495,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withlti11config(customparam",{"_index":7166,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withmuteonstart",{"_index":2159,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withmuteonstart(value",{"_index":2167,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withname",{"_index":8496,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withname(name",{"_index":8501,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withoauth2config",{"_index":8497,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withoauth2config(clientid",{"_index":8503,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withoauth2config(customparam",{"_index":7164,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withoauthclientid",{"_index":14319,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthclientid(oauthclientid",{"_index":14321,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthconfig",{"_index":18573,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withoidcconfig",{"_index":18574,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["without",{"_index":956,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/TaskRepo.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["without/succeeds",{"_index":22258,"title":{},"body":{"todo.html":{}}}],["withoutcontext",{"_index":4707,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["withoutdatedsince",{"_index":20739,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(date",{"_index":20747,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(query.outdatedsince",{"_index":20094,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["withrole",{"_index":2232,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/UserFactory.html":{}}}],["withrole(role",{"_index":20177,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrole(value",{"_index":2236,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withroleanduserid",{"_index":19251,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withroleanduserid(role",{"_index":19253,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withrolebyname",{"_index":20173,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrolebyname(name",{"_index":20179,"title":{},"body":{"classes/UserFactory.html":{}}}],["withroles",{"_index":20141,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withroles(roles",{"_index":20142,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withschoolexternaltoolref",{"_index":5698,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolexternaltoolref(schooltoolid",{"_index":5699,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolid",{"_index":17360,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withschoolid(schoolid",{"_index":17361,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withsystemid",{"_index":663,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withsystemid(id",{"_index":678,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withteamuser",{"_index":19252,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withteamuser(teamuser",{"_index":19255,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withuser",{"_index":664,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuser(user",{"_index":680,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuserid",{"_index":2233,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/TeamUserFactory.html":{}}}],["withuserid(currentuserid",{"_index":21095,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["withuserid(userid",{"_index":19361,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["withuserid(value",{"_index":2238,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withuserids",{"_index":4325,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withuserids(userids",{"_index":4326,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withwelcome",{"_index":2160,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withwelcome(welcome",{"_index":2169,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["wont_check",{"_index":9716,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["word",{"_index":22669,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["words",{"_index":11250,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["work",{"_index":960,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SymetricKeyEncryptionService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["work's",{"_index":21797,"title":{},"body":{"license.html":{}}}],["worker",{"_index":8008,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["worker.manufacture",{"_index":8009,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["working",{"_index":11593,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["workings",{"_index":22697,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["works",{"_index":10358,"title":{},"body":{"classes/FilterNewsParams.html":{},"injectables/NewsRepo.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["worldwide",{"_index":22099,"title":{},"body":{"license.html":{}}}],["wouldn't",{"_index":1920,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["wrap",{"_index":2684,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["wrap(dashboard).toreference",{"_index":7424,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrap(modelentity).init",{"_index":7533,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["wrap(props.course).toreference",{"_index":2706,"title":{},"body":{"entities/Board.html":{}}}],["wrap(props.school).toreference",{"_index":11460,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.system).toreference",{"_index":11461,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.user).toreference",{"_index":7431,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrapped",{"_index":22706,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wrappedreference",{"_index":2676,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrapper",{"_index":5168,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["writable",{"_index":7898,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["write",{"_index":1872,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FileSystemAdapter.html":{},"injectables/LessonRule.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/TaskUC.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["write(requiredpermissions",{"_index":1877,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["write/read",{"_index":23031,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writecourseids",{"_index":19216,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses",{"_index":19213,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.includes(c",{"_index":19215,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.map((c",{"_index":19217,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writefile",{"_index":9966,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writefile(filepath",{"_index":10001,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writelessons",{"_index":19222,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writen",{"_index":23115,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writer.module",{"_index":17743,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["writer.module.ts",{"_index":5484,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["writer.service",{"_index":5485,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["writer.service.ts",{"_index":5486,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer.service.ts:5",{"_index":5488,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer/console",{"_index":5483,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["writing",{"_index":22176,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["written",{"_index":21904,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wrong",{"_index":7629,"title":{},"body":{"injectables/DashboardUc.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["wrongly",{"_index":23102,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["www",{"_index":10904,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["wünsche",{"_index":4811,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["x",{"_index":1382,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"classes/DomainObjectFactory.html":{},"classes/GridElement.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["xml",{"_index":6028,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2js",{"_index":5060,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["xml2json",{"_index":6029,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2json(xml",{"_index":6031,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object",{"_index":6025,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object(xml",{"_index":6026,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xmlbuilder",{"_index":5040,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["xmlns",{"_index":5115,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xmlns:blti",{"_index":5116,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:ext",{"_index":5177,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:lticm",{"_index":5117,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:lticp",{"_index":5118,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:mnf",{"_index":5173,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:res",{"_index":5175,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:xsi",{"_index":5119,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xpos",{"_index":7406,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["xposition",{"_index":7439,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["xsd/imsbasiclti_v1p0",{"_index":5149,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticc_v1p0",{"_index":5148,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticm_v1p0",{"_index":5150,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticp_v1p0",{"_index":5151,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd",{"_index":5153,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticc_v1p0.xsd",{"_index":5152,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticm_v1p0.xsd",{"_index":5154,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticp_v1p0.xsd",{"_index":5155,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsi:schemalocation",{"_index":5122,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xxxx",{"_index":22881,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["y",{"_index":7228,"title":{},"body":{"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"miscellaneous/functions.html":{}}}],["yagni",{"_index":22475,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yagni.more",{"_index":22686,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["year",{"_index":4230,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{},"injectables/SchoolYearRepo.html":{}}}],["year.service.ts",{"_index":17702,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:10",{"_index":17706,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:6",{"_index":17705,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["years",{"_index":11738,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{},"license.html":{}}}],["yes",{"_index":59,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/AccountFactory.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"classes/BaseDO.html":{},"classes/BaseFactory.html":{},"classes/BoardComposite.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardUc.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"interfaces/FeathersService.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenOperationError.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ILegacyLogger.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LocalStrategy.html":{},"classes/LoggingUtils.html":{},"classes/LtiToolFactory.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/PaginationResponse.html":{},"injectables/PreviewService.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/Rule.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/SystemFactory.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"classes/UnauthorizedLoggableException.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"classes/ValidationError.html":{},"miscellaneous/functions.html":{}}}],["yesterday",{"_index":9798,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["yet.'})@apiresponse({status",{"_index":21007,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["your.config.ts",{"_index":23144,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.module.ts",{"_index":23148,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.service.ts",{"_index":23146,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your_s3_uniq_connection_token",{"_index":23145,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourloggable",{"_index":22636,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourloggable(userid",{"_index":22641,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourmodule",{"_index":23149,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourself",{"_index":22113,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yourservice",{"_index":22673,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["youruc",{"_index":22637,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["ypos",{"_index":7407,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["yposition",{"_index":7440,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["yyyy",{"_index":14058,"title":{},"body":{"modules/LoggerModule.html":{}}}],["z",{"_index":21289,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["z]|[0",{"_index":10453,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["za",{"_index":10452,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{},"injectables/VideoConferenceService.html":{}}}],["zip",{"_index":5059,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["zipbuilder",{"_index":5041,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["zoom",{"_index":442,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{}}}],["zu",{"_index":4783,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zum",{"_index":4786,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zusammengefasst",{"_index":4792,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}]],"pipeline":["stemmer"]}, - "store": {"classes/AbstractAccountService.html":{"url":"classes/AbstractAccountService.html","title":"class - AbstractAccountService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AbstractAccountService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account.service.abstract.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n delete\n \n \n Abstract\n deleteByUserId\n \n \n Abstract\n findById\n \n \n Abstract\n findByUserId\n \n \n Abstract\n findByUserIdOrFail\n \n \n Abstract\n findByUsernameAndSystemId\n \n \n Abstract\n findMany\n \n \n Abstract\n findMultipleByUserId\n \n \n Abstract\n save\n \n \n Abstract\n searchByUsernameExactMatch\n \n \n Abstract\n searchByUsernamePartialMatch\n \n \n Abstract\n updateLastTriedFailedLogin\n \n \n Abstract\n updatePassword\n \n \n Abstract\n updateUsername\n \n \n Abstract\n validatePassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n delete\n \n \n \n \n \n \n \n delete(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findByUserIdOrFail\n \n \n \n \n \n \n \n findByUserIdOrFail(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findByUsernameAndSystemId\n \n \n \n \n \n \n \n findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findMany\n \n \n \n \n \n \n For migration purpose only\n \n \n \n \n \n findMany(offset?: number, limit?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n offset\n \n number\n \n\n \n Yes\n \n\n\n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findMultipleByUserId\n \n \n \n \n \n \n \n findMultipleByUserId(userIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n save\n \n \n \n \n \n \n \n save(accountDto: AccountSaveDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDto\n \n AccountSaveDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n searchByUsernameExactMatch\n \n \n \n \n \n \n \n searchByUsernameExactMatch(userName: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n searchByUsernamePartialMatch\n \n \n \n \n \n \n \n searchByUsernamePartialMatch(userName: string, skip: number, limit: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateLastTriedFailedLogin\n \n \n \n \n \n \n Used for brute force detection, but will become subject to IDM thus be removed.\n \n \n \n \n \n updateLastTriedFailedLogin(accountId: EntityId, lastTriedFailedLogin: Date)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n lastTriedFailedLogin\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updatePassword\n \n \n \n \n \n \n \n updatePassword(accountId: EntityId, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateUsername\n \n \n \n \n \n \n \n updateUsername(accountId: EntityId, username: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n validatePassword\n \n \n \n \n \n \n \n validatePassword(account: AccountDto, comparePassword: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n comparePassword\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Counted, EntityId } from '@shared/domain';\nimport { AccountDto, AccountSaveDto } from './dto';\n\nexport abstract class AbstractAccountService {\n\tabstract findById(id: EntityId): Promise;\n\n\tabstract findMultipleByUserId(userIds: EntityId[]): Promise;\n\n\tabstract findByUserId(userId: EntityId): Promise;\n\n\tabstract findByUserIdOrFail(userId: EntityId): Promise;\n\n\tabstract findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId): Promise;\n\n\tabstract save(accountDto: AccountSaveDto): Promise;\n\n\tabstract updateUsername(accountId: EntityId, username: string): Promise;\n\n\t/**\n\t * @deprecated Used for brute force detection, but will become subject to IDM thus be removed.\n\t */\n\tabstract updateLastTriedFailedLogin(accountId: EntityId, lastTriedFailedLogin: Date): Promise;\n\n\tabstract updatePassword(accountId: EntityId, password: string): Promise;\n\n\tabstract delete(id: EntityId): Promise;\n\n\tabstract deleteByUserId(userId: EntityId): Promise;\n\n\tabstract searchByUsernamePartialMatch(userName: string, skip: number, limit: number): Promise>;\n\n\tabstract searchByUsernameExactMatch(userName: string): Promise>;\n\n\tabstract validatePassword(account: AccountDto, comparePassword: string): Promise;\n\t/**\n\t * @deprecated For migration purpose only\n\t */\n\tabstract findMany(offset?: number, limit?: number): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AbstractLaunchStrategy.html":{"url":"injectables/AbstractLaunchStrategy.html","title":"injectable - AbstractLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AbstractLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n Private\n addProperty\n \n \n Private\n applyPropertiesToPathParams\n \n \n Public\n Abstract\n buildToolLaunchDataFromConcreteConfig\n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n Public\n Abstract\n buildToolLaunchRequestPayload\n \n \n Private\n buildUrl\n \n \n Public\n Async\n createLaunchData\n \n \n Public\n createLaunchRequest\n \n \n Public\n Abstract\n determineLaunchRequestMethod\n \n \n Private\n Async\n getParameterValue\n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, courseService: CourseService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n \n \n \n \n \n addParameters(propertyData: PropertyData[], customParameterDOs: CustomParameter[], scopes: literal type[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n customParameterDOs\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n scopes\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n addProperty\n \n \n \n \n \n \n \n addProperty(propertyData: PropertyData[], propertyName: string, value: string | undefined, customParameterLocation: CustomParameterLocation)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:246\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n propertyName\n \n string\n \n\n \n No\n \n\n\n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n customParameterLocation\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n applyPropertiesToPathParams\n \n \n \n \n \n \n \n applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n URL\n \n\n \n No\n \n\n\n \n \n pathProperties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Abstract\n buildToolLaunchDataFromConcreteConfig\n \n \n \n \n \n \n \n buildToolLaunchDataFromConcreteConfig(userId: EntityId, config: IToolLaunchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n config\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n \n \n \n \n \n buildToolLaunchDataFromExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:114\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n \n \n \n \n \n buildToolLaunchDataFromTools(data: IToolLaunchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:125\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Abstract\n buildToolLaunchRequestPayload\n \n \n \n \n \n \n \n buildToolLaunchRequestPayload(url: string, properties: PropertyData[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildUrl\n \n \n \n \n \n \n \n buildUrl(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createLaunchData\n \n \n \n \n \n \n \n createLaunchData(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n createLaunchRequest\n \n \n \n \n \n \n \n createLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Abstract\n determineLaunchRequestMethod\n \n \n \n \n \n \n \n determineLaunchRequestMethod(properties: PropertyData[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LaunchRequestMethod\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getParameterValue\n \n \n \n \n \n \n \n getParameterValue(customParameter: CustomParameter, matchingParameterEntry: CustomParameterEntry | undefined, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:204\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n matchingParameterEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n \n \n \n handleParametersToInclude(propertyData: PropertyData[], parametersToInclude: CustomParameter[], params: CustomParameterEntry[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n parametersToInclude\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n params\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, EntityId, LegacySchoolDo } from '@shared/domain';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { URLSearchParams } from 'url';\nimport { CustomParameter, CustomParameterEntry } from '../../../common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tToolContextType,\n} from '../../../common/enum';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { ExternalTool } from '../../../external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { MissingToolParameterValueLoggableException, ParameterTypeNotImplementedLoggableException } from '../../error';\nimport { ToolLaunchMapper } from '../../mapper';\nimport { LaunchRequestMethod, PropertyData, PropertyLocation, ToolLaunchData, ToolLaunchRequest } from '../../types';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\nimport { IToolLaunchStrategy } from './tool-launch-strategy.interface';\n\n@Injectable()\nexport abstract class AbstractLaunchStrategy implements IToolLaunchStrategy {\n\tconstructor(private readonly schoolService: LegacySchoolService, private readonly courseService: CourseService) {}\n\n\tpublic async createLaunchData(userId: EntityId, data: IToolLaunchParams): Promise {\n\t\tconst launchData: ToolLaunchData = this.buildToolLaunchDataFromExternalTool(data.externalTool);\n\n\t\tconst launchDataProperties: PropertyData[] = await this.buildToolLaunchDataFromTools(data);\n\t\tconst additionalLaunchDataProperties: PropertyData[] = await this.buildToolLaunchDataFromConcreteConfig(\n\t\t\tuserId,\n\t\t\tdata\n\t\t);\n\n\t\tlaunchData.properties.push(...launchDataProperties);\n\t\tlaunchData.properties.push(...additionalLaunchDataProperties);\n\n\t\treturn launchData;\n\t}\n\n\tpublic abstract buildToolLaunchDataFromConcreteConfig(\n\t\tuserId: EntityId,\n\t\tconfig: IToolLaunchParams\n\t): Promise;\n\n\tpublic abstract buildToolLaunchRequestPayload(url: string, properties: PropertyData[]): string | null;\n\n\tpublic abstract determineLaunchRequestMethod(properties: PropertyData[]): LaunchRequestMethod;\n\n\tpublic createLaunchRequest(toolLaunchData: ToolLaunchData): ToolLaunchRequest {\n\t\tconst requestMethod: LaunchRequestMethod = this.determineLaunchRequestMethod(toolLaunchData.properties);\n\t\tconst url: string = this.buildUrl(toolLaunchData);\n\t\tconst payload: string | null = this.buildToolLaunchRequestPayload(url, toolLaunchData.properties);\n\n\t\tconst toolLaunchRequest: ToolLaunchRequest = new ToolLaunchRequest({\n\t\t\tmethod: requestMethod,\n\t\t\turl,\n\t\t\tpayload: payload ?? undefined,\n\t\t\topenNewTab: toolLaunchData.openNewTab,\n\t\t});\n\n\t\treturn toolLaunchRequest;\n\t}\n\n\tprivate buildUrl(toolLaunchDataDO: ToolLaunchData): string {\n\t\tconst { baseUrl } = toolLaunchDataDO;\n\n\t\tconst pathProperties: PropertyData[] = toolLaunchDataDO.properties.filter(\n\t\t\t(property: PropertyData) => property.location === PropertyLocation.PATH\n\t\t);\n\t\tconst queryProperties: PropertyData[] = toolLaunchDataDO.properties.filter(\n\t\t\t(property: PropertyData) => property.location === PropertyLocation.QUERY\n\t\t);\n\n\t\tconst url = new URL(baseUrl);\n\n\t\tif (pathProperties.length > 0) {\n\t\t\tthis.applyPropertiesToPathParams(url, pathProperties);\n\t\t}\n\n\t\tif (queryProperties.length > 0) {\n\t\t\tconst queryParams: URLSearchParams = new URLSearchParams();\n\t\t\tqueryProperties.forEach((property: PropertyData) => queryParams.append(property.name, property.value));\n\n\t\t\turl.search += queryParams.toString();\n\t\t}\n\n\t\treturn url.toString();\n\t}\n\n\tprivate applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[]): void {\n\t\tconst trimSlash: string = url.pathname.replace(/(^\\/)|(\\/$)/g, '');\n\t\tconst pathParams: string[] = trimSlash.split('/');\n\n\t\tconst filledPathParams: string[] = pathParams.map((param: string): string => {\n\t\t\tlet pathParam: string = param;\n\n\t\t\tif (param.startsWith(':')) {\n\t\t\t\tconst foundProperty: PropertyData | undefined = pathProperties.find(\n\t\t\t\t\t(property: PropertyData) => param === `:${property.name}`\n\t\t\t\t);\n\n\t\t\t\tif (foundProperty) {\n\t\t\t\t\tpathParam = foundProperty.value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn pathParam;\n\t\t});\n\n\t\turl.pathname = filledPathParams.join('/');\n\t}\n\n\tprivate buildToolLaunchDataFromExternalTool(externalTool: ExternalTool): ToolLaunchData {\n\t\tconst launchData = new ToolLaunchData({\n\t\t\tbaseUrl: externalTool.config.baseUrl,\n\t\t\ttype: ToolLaunchMapper.mapToToolLaunchDataType(externalTool.config.type),\n\t\t\tproperties: [],\n\t\t\topenNewTab: externalTool.openNewTab,\n\t\t});\n\n\t\treturn launchData;\n\t}\n\n\tprivate async buildToolLaunchDataFromTools(data: IToolLaunchParams): Promise {\n\t\tconst propertyData: PropertyData[] = [];\n\t\tconst { externalTool, schoolExternalTool, contextExternalTool } = data;\n\t\tconst customParameters = externalTool.parameters || [];\n\n\t\tconst scopes: { scope: CustomParameterScope; params: CustomParameterEntry[] }[] = [\n\t\t\t{ scope: CustomParameterScope.GLOBAL, params: customParameters },\n\t\t\t{ scope: CustomParameterScope.SCHOOL, params: schoolExternalTool.parameters || [] },\n\t\t\t{ scope: CustomParameterScope.CONTEXT, params: contextExternalTool.parameters || [] },\n\t\t];\n\n\t\tawait this.addParameters(propertyData, customParameters, scopes, schoolExternalTool, contextExternalTool);\n\n\t\treturn propertyData;\n\t}\n\n\tprivate async addParameters(\n\t\tpropertyData: PropertyData[],\n\t\tcustomParameterDOs: CustomParameter[],\n\t\tscopes: { scope: CustomParameterScope; params: CustomParameterEntry[] }[],\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tawait Promise.all(\n\t\t\tscopes.map(async ({ scope, params }): Promise => {\n\t\t\t\tconst parameterNames: string[] = params.map((parameter: CustomParameterEntry) => parameter.name);\n\n\t\t\t\tconst parametersToInclude: CustomParameter[] = customParameterDOs.filter(\n\t\t\t\t\t(parameter: CustomParameter) => parameter.scope === scope && parameterNames.includes(parameter.name)\n\t\t\t\t);\n\n\t\t\t\tawait this.handleParametersToInclude(\n\t\t\t\t\tpropertyData,\n\t\t\t\t\tparametersToInclude,\n\t\t\t\t\tparams,\n\t\t\t\t\tschoolExternalTool,\n\t\t\t\t\tcontextExternalTool\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate async handleParametersToInclude(\n\t\tpropertyData: PropertyData[],\n\t\tparametersToInclude: CustomParameter[],\n\t\tparams: CustomParameterEntry[],\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tconst missingParameters: CustomParameter[] = [];\n\n\t\tawait Promise.all(\n\t\t\tparametersToInclude.map(async (parameter): Promise => {\n\t\t\t\tconst matchingParameter: CustomParameterEntry | undefined = params.find(\n\t\t\t\t\t(param: CustomParameterEntry) => param.name === parameter.name\n\t\t\t\t);\n\n\t\t\t\tconst value: string | undefined = await this.getParameterValue(\n\t\t\t\t\tparameter,\n\t\t\t\t\tmatchingParameter,\n\t\t\t\t\tschoolExternalTool,\n\t\t\t\t\tcontextExternalTool\n\t\t\t\t);\n\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\tthis.addProperty(propertyData, parameter.name, value, parameter.location);\n\t\t\t\t}\n\n\t\t\t\tif (value === undefined && !parameter.isOptional) {\n\t\t\t\t\tmissingParameters.push(parameter);\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\tif (missingParameters.length > 0) {\n\t\t\tthrow new MissingToolParameterValueLoggableException(contextExternalTool, missingParameters);\n\t\t}\n\t}\n\n\tprivate async getParameterValue(\n\t\tcustomParameter: CustomParameter,\n\t\tmatchingParameterEntry: CustomParameterEntry | undefined,\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tswitch (customParameter.type) {\n\t\t\tcase CustomParameterType.AUTO_SCHOOLID: {\n\t\t\t\treturn schoolExternalTool.schoolId;\n\t\t\t}\n\t\t\tcase CustomParameterType.AUTO_CONTEXTID: {\n\t\t\t\treturn contextExternalTool.contextRef.id;\n\t\t\t}\n\t\t\tcase CustomParameterType.AUTO_CONTEXTNAME: {\n\t\t\t\tif (contextExternalTool.contextRef.type === ToolContextType.COURSE) {\n\t\t\t\t\tconst course: Course = await this.courseService.findById(contextExternalTool.contextRef.id);\n\n\t\t\t\t\treturn course.name;\n\t\t\t\t}\n\n\t\t\t\tthrow new ParameterTypeNotImplementedLoggableException(\n\t\t\t\t\t`${customParameter.type}/${contextExternalTool.contextRef.type as string}`\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase CustomParameterType.AUTO_SCHOOLNUMBER: {\n\t\t\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolExternalTool.schoolId);\n\n\t\t\t\treturn school.officialSchoolNumber;\n\t\t\t}\n\t\t\tcase CustomParameterType.BOOLEAN:\n\t\t\tcase CustomParameterType.NUMBER:\n\t\t\tcase CustomParameterType.STRING: {\n\t\t\t\treturn customParameter.scope === CustomParameterScope.GLOBAL\n\t\t\t\t\t? customParameter.default\n\t\t\t\t\t: matchingParameterEntry?.value;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow new ParameterTypeNotImplementedLoggableException(customParameter.type);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate addProperty(\n\t\tpropertyData: PropertyData[],\n\t\tpropertyName: string,\n\t\tvalue: string | undefined,\n\t\tcustomParameterLocation: CustomParameterLocation\n\t): void {\n\t\tconst location: PropertyLocation = ToolLaunchMapper.mapToParameterLocation(customParameterLocation);\n\n\t\tif (value) {\n\t\t\tpropertyData.push({\n\t\t\t\tname: propertyName,\n\t\t\t\tvalue,\n\t\t\t\tlocation,\n\t\t\t});\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AcceptConsentRequestBody.html":{"url":"interfaces/AcceptConsentRequestBody.html","title":"interface - AcceptConsentRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AcceptConsentRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/request/accept-consent-request.body.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n grant_access_token_audience\n \n \n \n Optional\n \n grant_scope\n \n \n \n Optional\n \n handled_at\n \n \n \n Optional\n \n remember\n \n \n \n Optional\n \n remember_for\n \n \n \n Optional\n \n session\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n grant_access_token_audience\n \n \n \n \n \n \n \n \n grant_access_token_audience: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n grant_scope\n \n \n \n \n \n \n \n \n grant_scope: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n handled_at\n \n \n \n \n \n \n \n \n handled_at: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember\n \n \n \n \n \n \n \n \n remember: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember_for\n \n \n \n \n \n \n \n \n remember_for: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n session\n \n \n \n \n \n \n \n \n session: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { IdToken } from '@src/modules/oauth-provider/interface/id-token';\n\nexport interface AcceptConsentRequestBody {\n\tgrant_access_token_audience?: string[];\n\n\tgrant_scope?: string[];\n\n\thandled_at?: string;\n\n\tremember?: boolean;\n\n\tremember_for?: number;\n\n\tsession?: {\n\t\taccess_token?: string;\n\n\t\tid_token?: IdToken;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AcceptLoginRequestBody.html":{"url":"interfaces/AcceptLoginRequestBody.html","title":"interface - AcceptLoginRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AcceptLoginRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/request/accept-login-request.body.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n acr\n \n \n \n Optional\n \n amr\n \n \n \n Optional\n \n context\n \n \n \n Optional\n \n force_subject_identifier\n \n \n \n Optional\n \n remember\n \n \n \n Optional\n \n remember_for\n \n \n \n Optional\n \n subject\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n acr\n \n \n \n \n \n \n \n \n acr: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n amr\n \n \n \n \n \n \n \n \n amr: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n context: object\n\n \n \n\n\n \n \n Type : object\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n force_subject_identifier\n \n \n \n \n \n \n \n \n force_subject_identifier: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember\n \n \n \n \n \n \n \n \n remember: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember_for\n \n \n \n \n \n \n \n \n remember_for: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n \n \n subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface AcceptLoginRequestBody {\n\tsubject?: string;\n\n\tacr?: string;\n\n\tamr?: string[];\n\n\tcontext?: object;\n\n\tforce_subject_identifier?: string;\n\n\tremember?: boolean;\n\n\tremember_for?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AcceptQuery.html":{"url":"classes/AcceptQuery.html","title":"class - AcceptQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AcceptQuery\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/accept.query.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n accept\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@StringToBoolean()@ApiPropertyOptional({description: 'Accepts the login request.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/accept.query.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsBoolean } from 'class-validator';\nimport { ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller/index';\n\nexport class AcceptQuery {\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({ description: 'Accepts the login request.', required: true, nullable: false })\n\taccept!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Account.html":{"url":"entities/Account.html","title":"entity - Account","body":"\n \n\n\n\n\n\n\n\n Entities\n Account\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/account.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n Optional\n credentialHash\n \n \n \n Optional\n expiresAt\n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n Optional\n password\n \n \n \n Optional\n systemId\n \n \n \n Optional\n token\n \n \n \n Optional\n userId\n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n credentialHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n systemId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, unique: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:12\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property, Index } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport type IdmAccountProperties = Readonly>;\n\n@Entity({ tableName: 'accounts' })\n@Index({ properties: ['userId', 'systemId'] })\nexport class Account extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Index()\n\tusername!: string;\n\n\t@Property({ nullable: true })\n\tpassword?: string;\n\n\t@Property({ nullable: true })\n\ttoken?: string;\n\n\t@Property({ nullable: true })\n\tcredentialHash?: string;\n\n\t@Property({ nullable: true, unique: false })\n\tuserId?: ObjectId;\n\n\t@Property({ nullable: true })\n\tsystemId?: ObjectId;\n\n\t@Property({ nullable: true })\n\tlasttriedFailedLogin?: Date;\n\n\t@Property({ nullable: true })\n\texpiresAt?: Date;\n\n\t@Property({ nullable: true })\n\tactivated?: boolean;\n\n\tconstructor(props: IdmAccountProperties) {\n\t\tsuper();\n\t\tthis.username = props.username;\n\t\tthis.password = props.password;\n\t\tthis.token = props.token;\n\t\tthis.credentialHash = props.credentialHash;\n\t\tthis.userId = props.userId;\n\t\tthis.systemId = props.systemId;\n\t\tthis.lasttriedFailedLogin = props.lasttriedFailedLogin;\n\t\tthis.expiresAt = props.expiresAt;\n\t\tthis.activated = props.activated;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AccountApiModule.html":{"url":"modules/AccountApiModule.html","title":"module - AccountApiModule","body":"\n \n\n\n\n\n Modules\n AccountApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AccountApiModule\n\n\n\ncluster_AccountApiModule_providers\n\n\n\ncluster_AccountApiModule_imports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nAccountApiModule\n\nAccountApiModule\n\nAccountApiModule -->\n\nAccountModule->AccountApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAccountApiModule -->\n\nLoggerModule->AccountApiModule\n\n\n\n\n\nAccountUc\n\nAccountUc\n\nAccountApiModule -->\n\nAccountUc->AccountApiModule\n\n\n\n\n\nPermissionService\n\nPermissionService\n\nAccountApiModule -->\n\nPermissionService->AccountApiModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAccountApiModule -->\n\nUserRepo->AccountApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/account/account-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n AccountUc\n \n \n PermissionService\n \n \n UserRepo\n \n \n \n \n Controllers\n \n \n AccountController\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { PermissionService } from '@shared/domain';\nimport { UserRepo } from '@shared/repo';\nimport { AccountModule } from './account.module';\nimport { AccountController } from './controller/account.controller';\nimport { AccountUc } from './uc/account.uc';\nimport { LoggerModule } from '../../core/logger/logger.module';\n\n@Module({\n\timports: [AccountModule, LoggerModule],\n\tproviders: [UserRepo, PermissionService, AccountUc],\n\tcontrollers: [AccountController],\n\texports: [],\n})\nexport class AccountApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountByIdBodyParams.html":{"url":"classes/AccountByIdBodyParams.html","title":"class - AccountByIdBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountByIdBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account-by-id.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Optional\n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()@ApiProperty({description: 'The new activation state of the user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-by-id.body.params.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsOptional()@IsString()@Matches(passwordPattern)@ApiProperty({description: 'The new password for the user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-by-id.body.params.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsEmail()@ApiProperty({description: 'The new user name for the user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-by-id.body.params.ts:15\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PrivacyProtect } from '@shared/controller';\nimport { IsBoolean, IsString, IsOptional, Matches, IsEmail } from 'class-validator';\nimport { passwordPattern } from './password-pattern';\n\nexport class AccountByIdBodyParams {\n\t@IsOptional()\n\t@IsString()\n\t@IsEmail()\n\t@ApiProperty({\n\t\tdescription: 'The new user name for the user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tusername?: string;\n\n\t@PrivacyProtect()\n\t@IsOptional()\n\t@IsString()\n\t@Matches(passwordPattern)\n\t@ApiProperty({\n\t\tdescription: 'The new password for the user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tpassword?: string;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@ApiProperty({\n\t\tdescription: 'The new activation state of the user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tactivated?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountByIdParams.html":{"url":"classes/AccountByIdParams.html","title":"class - AccountByIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountByIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account-by-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The id for the account.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-by-id.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class AccountByIdParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The id for the account.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tid!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/AccountController.html":{"url":"controllers/AccountController.html","title":"controller - AccountController","body":"\n \n\n\n\n\n\n\n Controllers\n AccountController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/account.controller.ts\n \n\n \n Prefix\n \n \n account\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteAccountById\n \n \n \n \n \n \n \n \n Async\n findAccountById\n \n \n \n \n \n \n \n \n Async\n replaceMyPassword\n \n \n \n \n \n \n \n Async\n searchAccounts\n \n \n \n \n \n \n \n \n Async\n updateAccountById\n \n \n \n \n \n \n \n \n Async\n updateMyAccount\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteAccountById\n \n \n \n \n \n \n \n deleteAccountById(currentUser: ICurrentUser, params: AccountByIdParams)\n \n \n\n \n \n Decorators : \n \n @Delete(':id')@ApiOperation({summary: 'Deletes an account with given id. Superhero role is REQUIRED.'})@ApiResponse({status: 200, type: AccountResponse, description: 'Returns deleted account.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n AccountByIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountById\n \n \n \n \n \n \n \n findAccountById(currentUser: ICurrentUser, params: AccountByIdParams)\n \n \n\n \n \n Decorators : \n \n @Get(':id')@ApiOperation({summary: 'Returns an account with given id. Superhero role is REQUIRED.'})@ApiResponse({status: 200, type: AccountResponse, description: 'Returns the account.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n AccountByIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n replaceMyPassword\n \n \n \n \n \n \n \n replaceMyPassword(currentUser: ICurrentUser, params: PatchMyPasswordParams)\n \n \n\n \n \n Decorators : \n \n @Patch('me/password')@ApiOperation({summary: 'Updates the the temporary account password for the authenticated user.'})@ApiResponse({status: 200, description: 'Updated the temporary password successfully.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid password.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account or user not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n PatchMyPasswordParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchAccounts\n \n \n \n \n \n \n \n searchAccounts(currentUser: ICurrentUser, query: AccountSearchQueryParams)\n \n \n\n \n \n Decorators : \n \n @Get()@ApiOperation({summary: 'Returns all accounts which satisfies the given criteria. For unlimited access Superhero role is REQUIRED.'})@ApiResponse({status: 200, type: AccountSearchListResponse, description: 'Returns a paged list of accounts.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'User is not a superhero or administrator.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n query\n \n AccountSearchQueryParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateAccountById\n \n \n \n \n \n \n \n updateAccountById(currentUser: ICurrentUser, params: AccountByIdParams, body: AccountByIdBodyParams)\n \n \n\n \n \n Decorators : \n \n @Patch(':id')@ApiOperation({summary: 'Updates an account with given id. Superhero role is REQUIRED.'})@ApiResponse({status: 200, type: AccountResponse, description: 'Returns updated account.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n AccountByIdParams\n \n\n \n No\n \n\n\n \n \n body\n \n AccountByIdBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateMyAccount\n \n \n \n \n \n \n \n updateMyAccount(currentUser: ICurrentUser, params: PatchMyAccountParams)\n \n \n\n \n \n Decorators : \n \n @Patch('me')@ApiOperation({summary: 'Updates an account for the authenticated user.'})@ApiResponse({status: 200, description: 'Account was successfully updated.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid password.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n PatchMyAccountParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, Param, Patch, Query } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { AccountUc } from '../uc/account.uc';\nimport {\n\tAccountByIdBodyParams,\n\tAccountByIdParams,\n\tAccountResponse,\n\tAccountSearchListResponse,\n\tAccountSearchQueryParams,\n\tPatchMyAccountParams,\n\tPatchMyPasswordParams,\n} from './dto';\n\n@ApiTags('Account')\n@Authenticate('jwt')\n@Controller('account')\nexport class AccountController {\n\tconstructor(private readonly accountUc: AccountUc) {}\n\n\t@Get()\n\t@ApiOperation({\n\t\tsummary:\n\t\t\t'Returns all accounts which satisfies the given criteria. For unlimited access Superhero role is REQUIRED.',\n\t})\n\t@ApiResponse({ status: 200, type: AccountSearchListResponse, description: 'Returns a paged list of accounts.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'User is not a superhero or administrator.' })\n\tasync searchAccounts(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() query: AccountSearchQueryParams\n\t): Promise {\n\t\treturn this.accountUc.searchAccounts(currentUser, query);\n\t}\n\n\t@Get(':id')\n\t@ApiOperation({ summary: 'Returns an account with given id. Superhero role is REQUIRED.' })\n\t@ApiResponse({ status: 200, type: AccountResponse, description: 'Returns the account.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account not found.' })\n\tasync findAccountById(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: AccountByIdParams\n\t): Promise {\n\t\treturn this.accountUc.findAccountById(currentUser, params);\n\t}\n\n\t// IMPORTANT!!!\n\t// updateMyAccount has to occur before updateAccountById, because Nest.js\n\t// will always use the first path match and me will be treated as a path parameter\n\t@Patch('me')\n\t@ApiOperation({ summary: 'Updates an account for the authenticated user.' })\n\t@ApiResponse({ status: 200, description: 'Account was successfully updated.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid password.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account not found.' })\n\tasync updateMyAccount(@CurrentUser() currentUser: ICurrentUser, @Body() params: PatchMyAccountParams): Promise {\n\t\treturn this.accountUc.updateMyAccount(currentUser.userId, params);\n\t}\n\n\t@Patch(':id')\n\t@ApiOperation({ summary: 'Updates an account with given id. Superhero role is REQUIRED.' })\n\t@ApiResponse({ status: 200, type: AccountResponse, description: 'Returns updated account.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account not found.' })\n\tasync updateAccountById(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: AccountByIdParams,\n\t\t@Body() body: AccountByIdBodyParams\n\t): Promise {\n\t\treturn this.accountUc.updateAccountById(currentUser, params, body);\n\t}\n\n\t@Delete(':id')\n\t@ApiOperation({ summary: 'Deletes an account with given id. Superhero role is REQUIRED.' })\n\t@ApiResponse({ status: 200, type: AccountResponse, description: 'Returns deleted account.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account not found.' })\n\tasync deleteAccountById(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: AccountByIdParams\n\t): Promise {\n\t\treturn this.accountUc.deleteAccountById(currentUser, params);\n\t}\n\n\t@Patch('me/password')\n\t@ApiOperation({ summary: 'Updates the the temporary account password for the authenticated user.' })\n\t@ApiResponse({ status: 200, description: 'Updated the temporary password successfully.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid password.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account or user not found.' })\n\tasync replaceMyPassword(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() params: PatchMyPasswordParams\n\t): Promise {\n\t\treturn this.accountUc.replaceMyTemporaryPassword(currentUser.userId, params.password, params.confirmPassword);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountDto.html":{"url":"classes/AccountDto.html","title":"class - AccountDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/dto/account.dto.ts\n \n\n\n\n \n Extends\n \n \n AccountSaveDto\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n createdAt\n \n \n Readonly\n id\n \n \n Readonly\n updatedAt\n \n \n \n \n Optional\n activated\n \n \n \n \n Optional\n credentialHash\n \n \n \n \n Optional\n expiresAt\n \n \n \n Optional\n idmReferenceId\n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n Optional\n password\n \n \n \n \n Optional\n systemId\n \n \n \n \n Optional\n token\n \n \n \n \n Optional\n userId\n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AccountDto)\n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account.dto.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n AccountDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:7\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:5\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:9\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:54\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n credentialHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:34\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:50\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n idmReferenceId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:57\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:46\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsOptional()@Matches(passwordPattern)\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:26\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:42\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:30\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:38\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:21\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { AccountSaveDto } from './account-save.dto';\n\nexport class AccountDto extends AccountSaveDto {\n\treadonly id: EntityId;\n\n\treadonly createdAt: Date;\n\n\treadonly updatedAt: Date;\n\n\tconstructor(props: AccountDto) {\n\t\tsuper(props);\n\t\tthis.id = props.id;\n\t\tthis.createdAt = props.createdAt;\n\t\tthis.updatedAt = props.updatedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountEntityToDtoMapper.html":{"url":"classes/AccountEntityToDtoMapper.html","title":"class - AccountEntityToDtoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountEntityToDtoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-entity-to-dto.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapAccountsToDto\n \n \n Static\n mapSearchResult\n \n \n Static\n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapAccountsToDto\n \n \n \n \n \n \n \n mapAccountsToDto(accounts: Account[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-entity-to-dto.mapper.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accounts\n \n Account[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapSearchResult\n \n \n \n \n \n \n \n mapSearchResult(accountEntities: [Account[], number])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-entity-to-dto.mapper.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountEntities\n \n [Account[], number]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Counted\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToDto\n \n \n \n \n \n \n \n mapToDto(account: Account)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-entity-to-dto.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n Account\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Account, Counted } from '@shared/domain';\nimport { AccountDto } from '../services/dto/account.dto';\n\nexport class AccountEntityToDtoMapper {\n\tstatic mapToDto(account: Account): AccountDto {\n\t\treturn new AccountDto({\n\t\t\tid: account.id,\n\t\t\tcreatedAt: account.createdAt,\n\t\t\tupdatedAt: account.updatedAt,\n\t\t\tuserId: account.userId?.toString(),\n\t\t\tusername: account.username,\n\t\t\tactivated: account.activated,\n\t\t\tcredentialHash: account.credentialHash,\n\t\t\texpiresAt: account.expiresAt,\n\t\t\tlasttriedFailedLogin: account.lasttriedFailedLogin,\n\t\t\tpassword: account.password,\n\t\t\tsystemId: account.systemId?.toString(),\n\t\t\ttoken: account.token,\n\t\t});\n\t}\n\n\tstatic mapSearchResult(accountEntities: [Account[], number]): Counted {\n\t\tconst foundAccounts = accountEntities[0];\n\t\tconst accountDtos: AccountDto[] = AccountEntityToDtoMapper.mapAccountsToDto(foundAccounts);\n\t\treturn [accountDtos, accountEntities[1]];\n\t}\n\n\tstatic mapAccountsToDto(accounts: Account[]): AccountDto[] {\n\t\treturn accounts.map((accountEntity) => AccountEntityToDtoMapper.mapToDto(accountEntity));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountFactory.html":{"url":"classes/AccountFactory.html","title":"class - AccountFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/account.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withSystemId\n \n \n withUser\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withSystemId\n \n \n \n \n \n \nwithSystemId(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/account.factory.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withUser\n \n \n \n \n \n \nwithUser(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/account.factory.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Account, EntityId, IdmAccountProperties, User } from '@shared/domain';\n\nimport { ObjectId } from 'bson';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\n\nclass AccountFactory extends BaseFactory {\n\twithSystemId(id: EntityId | ObjectId): this {\n\t\tconst params: DeepPartial = { systemId: id };\n\n\t\treturn this.params(params);\n\t}\n\n\twithUser(user: User): this {\n\t\tif (!user.id) {\n\t\t\tthrow new Error('User does not have an id.');\n\t\t}\n\n\t\tconst params: DeepPartial = { userId: user.id };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const defaultTestPassword = 'DummyPasswd!1';\nexport const defaultTestPasswordHash = '$2a$10$/DsztV5o6P5piW2eWJsxw.4nHovmJGBA.QNwiTmuZ/uvUc40b.Uhu';\n// !!! important username should not be contain a space !!!\nexport const accountFactory = AccountFactory.define(Account, ({ sequence }) => {\n\treturn {\n\t\tusername: `account${sequence}`,\n\t\tpassword: defaultTestPasswordHash,\n\t\tuserId: new ObjectId(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountIdmToDtoMapper.html":{"url":"injectables/AccountIdmToDtoMapper.html","title":"injectable - AccountIdmToDtoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountIdmToDtoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-idm-to-dto.mapper.abstract.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n mapToDto\n \n \n \n \n \n \n \n mapToDto(account: IdmAccount)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-idm-to-dto.mapper.abstract.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IdmAccount\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { IdmAccount } from '@shared/domain';\nimport { AccountDto } from '../services/dto/account.dto';\n\n@Injectable()\nexport abstract class AccountIdmToDtoMapper {\n\tabstract mapToDto(account: IdmAccount): AccountDto;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountIdmToDtoMapperDb.html":{"url":"classes/AccountIdmToDtoMapperDb.html","title":"class - AccountIdmToDtoMapperDb","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountIdmToDtoMapperDb\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-idm-to-dto.mapper.db.ts\n \n\n\n\n \n Extends\n \n \n AccountIdmToDtoMapper\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapToDto\n \n \n \n \n \n \nmapToDto(account: IdmAccount)\n \n \n\n\n \n \n Inherited from AccountIdmToDtoMapper\n\n \n \n \n \n Defined in AccountIdmToDtoMapper:6\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IdmAccount\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { IdmAccount } from '@shared/domain';\nimport { AccountDto } from '../services/dto/account.dto';\nimport { AccountIdmToDtoMapper } from './account-idm-to-dto.mapper.abstract';\n\nexport class AccountIdmToDtoMapperDb extends AccountIdmToDtoMapper {\n\tmapToDto(account: IdmAccount): AccountDto {\n\t\tconst createdDate = account.createdDate ? account.createdDate : new Date();\n\t\treturn new AccountDto({\n\t\t\tid: account.attDbcAccountId ?? '',\n\t\t\tidmReferenceId: account.id,\n\t\t\tuserId: account.attDbcUserId,\n\t\t\tsystemId: account.attDbcSystemId,\n\t\t\tusername: account.username ?? '',\n\t\t\tcreatedAt: createdDate,\n\t\t\tupdatedAt: createdDate,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountIdmToDtoMapperIdm.html":{"url":"classes/AccountIdmToDtoMapperIdm.html","title":"class - AccountIdmToDtoMapperIdm","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountIdmToDtoMapperIdm\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-idm-to-dto.mapper.idm.ts\n \n\n\n\n \n Extends\n \n \n AccountIdmToDtoMapper\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapToDto\n \n \n \n \n \n \nmapToDto(account: IdmAccount)\n \n \n\n\n \n \n Inherited from AccountIdmToDtoMapper\n\n \n \n \n \n Defined in AccountIdmToDtoMapper:6\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IdmAccount\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { IdmAccount } from '@shared/domain';\nimport { AccountDto } from '../services/dto/account.dto';\nimport { AccountIdmToDtoMapper } from './account-idm-to-dto.mapper.abstract';\n\nexport class AccountIdmToDtoMapperIdm extends AccountIdmToDtoMapper {\n\tmapToDto(account: IdmAccount): AccountDto {\n\t\tconst createdDate = account.createdDate ? account.createdDate : new Date();\n\t\treturn new AccountDto({\n\t\t\tid: account.id,\n\t\t\tidmReferenceId: undefined,\n\t\t\tuserId: account.attDbcUserId,\n\t\t\tsystemId: account.attDbcSystemId,\n\t\t\tusername: account.username ?? '',\n\t\t\tcreatedAt: createdDate,\n\t\t\tupdatedAt: createdDate,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountLookupService.html":{"url":"injectables/AccountLookupService.html","title":"injectable - AccountLookupService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountLookupService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account-lookup.service.ts\n \n\n\n \n Description\n \n \n Service to convert between internal and external ids.\nThe external ids are the primary keys from the IDM (Keycloak), currently they are UUID formatted strings.\nThe internal ids are the primary keys from the mongo db, currently they are BSON object ids or their hex string representation.\nIMPORTANT: This service will not guarantee that the id is valid, it will only try to convert it.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getExternalId\n \n \n Async\n getInternalId\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(idmService: IdentityManagementService, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/account/services/account-lookup.service.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n idmService\n \n \n IdentityManagementService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getExternalId\n \n \n \n \n \n \n \n getExternalId(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account-lookup.service.ts:44\n \n \n\n\n \n \n Converts an internal id to the external id, if the id is already an external id, it will be returned as is.\nIMPORTANT: This method will not guarantee that the id is valid, it will only try to convert it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n the id the should be converted to the external id.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the converted id or null if conversion failed.\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n getInternalId\n \n \n \n \n \n \n \n getInternalId(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account-lookup.service.ts:27\n \n \n\n\n \n \n Converts an external id to the internal id, if the id is already an internal id, it will be returned as is.\nIMPORTANT: This method will not guarantee that the id is valid, it will only try to convert it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n the id the should be converted to the internal id.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the converted id or null if conversion failed.\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId } from '@shared/domain';\nimport { IdentityManagementService } from '@shared/infra/identity-management';\nimport { IServerConfig } from '@src/modules/server/server.config';\nimport { ObjectId } from 'bson';\n\n/**\n * Service to convert between internal and external ids.\n * The external ids are the primary keys from the IDM (Keycloak), currently they are UUID formatted strings.\n * The internal ids are the primary keys from the mongo db, currently they are BSON object ids or their hex string representation.\n * IMPORTANT: This service will not guarantee that the id is valid, it will only try to convert it.\n */\n@Injectable()\nexport class AccountLookupService {\n\tconstructor(\n\t\tprivate readonly idmService: IdentityManagementService,\n\t\tprivate readonly configService: ConfigService\n\t) {}\n\n\t/**\n\t * Converts an external id to the internal id, if the id is already an internal id, it will be returned as is.\n\t * IMPORTANT: This method will not guarantee that the id is valid, it will only try to convert it.\n\t * @param id the id the should be converted to the internal id.\n\t * @returns the converted id or null if conversion failed.\n\t */\n\tasync getInternalId(id: EntityId | ObjectId): Promise {\n\t\tif (id instanceof ObjectId || ObjectId.isValid(id)) {\n\t\t\treturn new ObjectId(id);\n\t\t}\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED') === true) {\n\t\t\tconst account = await this.idmService.findAccountById(id);\n\t\t\treturn new ObjectId(account.attDbcAccountId);\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Converts an internal id to the external id, if the id is already an external id, it will be returned as is.\n\t * IMPORTANT: This method will not guarantee that the id is valid, it will only try to convert it.\n\t * @param id the id the should be converted to the external id.\n\t * @returns the converted id or null if conversion failed.\n\t */\n\tasync getExternalId(id: EntityId | ObjectId): Promise {\n\t\tif (!(id instanceof ObjectId) && !ObjectId.isValid(id)) {\n\t\t\treturn id;\n\t\t}\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED') === true) {\n\t\t\tconst account = await this.idmService.findAccountByDbcAccountId(id.toString());\n\t\t\treturn account.id;\n\t\t}\n\t\treturn null;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AccountModule.html":{"url":"modules/AccountModule.html","title":"module - AccountModule","body":"\n \n\n\n\n\n Modules\n AccountModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AccountModule\n\n\n\ncluster_AccountModule_providers\n\n\n\ncluster_AccountModule_imports\n\n\n\ncluster_AccountModule_exports\n\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\n\n\nAccountModule\n\nAccountModule\n\nAccountModule -->\n\nIdentityManagementModule->AccountModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAccountModule -->\n\nLoggerModule->AccountModule\n\n\n\n\n\nAccountService \n\nAccountService \n\nAccountService -->\n\nAccountModule->AccountService \n\n\n\n\n\nAccountValidationService \n\nAccountValidationService \n\nAccountValidationService -->\n\nAccountModule->AccountValidationService \n\n\n\n\n\nAccountLookupService\n\nAccountLookupService\n\nAccountModule -->\n\nAccountLookupService->AccountModule\n\n\n\n\n\nAccountRepo\n\nAccountRepo\n\nAccountModule -->\n\nAccountRepo->AccountModule\n\n\n\n\n\nAccountService\n\nAccountService\n\nAccountModule -->\n\nAccountService->AccountModule\n\n\n\n\n\nAccountServiceDb\n\nAccountServiceDb\n\nAccountModule -->\n\nAccountServiceDb->AccountModule\n\n\n\n\n\nAccountServiceIdm\n\nAccountServiceIdm\n\nAccountModule -->\n\nAccountServiceIdm->AccountModule\n\n\n\n\n\nAccountValidationService\n\nAccountValidationService\n\nAccountModule -->\n\nAccountValidationService->AccountModule\n\n\n\n\n\nPermissionService\n\nPermissionService\n\nAccountModule -->\n\nPermissionService->AccountModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nAccountModule -->\n\nSystemRepo->AccountModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAccountModule -->\n\nUserRepo->AccountModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/account/account.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n AccountLookupService\n \n \n AccountRepo\n \n \n AccountService\n \n \n AccountServiceDb\n \n \n AccountServiceIdm\n \n \n AccountValidationService\n \n \n PermissionService\n \n \n SystemRepo\n \n \n UserRepo\n \n \n \n \n Imports\n \n \n IdentityManagementModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n AccountService\n \n \n AccountValidationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { PermissionService } from '@shared/domain';\nimport { SystemRepo, UserRepo } from '@shared/repo';\nimport { IdentityManagementModule } from '@shared/infra/identity-management';\nimport { LoggerModule } from '@src/core/logger/logger.module';\nimport { AccountRepo } from './repo/account.repo';\nimport { AccountService } from './services/account.service';\nimport { AccountValidationService } from './services/account.validation.service';\nimport { AccountServiceDb } from './services/account-db.service';\nimport { AccountServiceIdm } from './services/account-idm.service';\nimport { AccountIdmToDtoMapper, AccountIdmToDtoMapperDb, AccountIdmToDtoMapperIdm } from './mapper';\nimport { IServerConfig } from '../server/server.config';\nimport { AccountLookupService } from './services/account-lookup.service';\n\nfunction accountIdmToDtoMapperFactory(configService: ConfigService): AccountIdmToDtoMapper {\n\tif (configService.get('FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED') === true) {\n\t\treturn new AccountIdmToDtoMapperIdm();\n\t}\n\treturn new AccountIdmToDtoMapperDb();\n}\n\n@Module({\n\timports: [IdentityManagementModule, LoggerModule],\n\tproviders: [\n\t\tUserRepo,\n\t\tSystemRepo,\n\t\tPermissionService,\n\t\tAccountRepo,\n\t\tAccountServiceDb,\n\t\tAccountServiceIdm,\n\t\tAccountService,\n\t\tAccountLookupService,\n\t\tAccountValidationService,\n\t\t{\n\t\t\tprovide: AccountIdmToDtoMapper,\n\t\t\tuseFactory: accountIdmToDtoMapperFactory,\n\t\t\tinject: [ConfigService],\n\t\t},\n\t],\n\texports: [AccountService, AccountValidationService],\n})\nexport class AccountModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AccountParams.html":{"url":"interfaces/AccountParams.html","title":"interface - AccountParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AccountParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user-and-account.test.factory.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n systemId\n \n \n \n Optional\n \n username\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n systemId\n \n \n \n \n \n \n \n \n systemId: EntityId | ObjectId\n\n \n \n\n\n \n \n Type : EntityId | ObjectId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n \n \n username: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Account, EntityId, Permission, SchoolEntity, User } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport _ from 'lodash';\nimport { accountFactory } from './account.factory';\nimport { userFactory } from './user.factory';\n\ninterface UserParams {\n\tfirstName?: string;\n\tlastName?: string;\n\temail?: string;\n\tschool?: SchoolEntity;\n\texternalId?: string;\n}\n\ninterface AccountParams {\n\tusername?: string;\n\tsystemId?: EntityId | ObjectId;\n}\n\nexport interface UserAndAccountParams extends UserParams, AccountParams {}\n\nexport class UserAndAccountTestFactory {\n\tprivate static getUserParams(params: UserAndAccountParams): UserParams {\n\t\tconst userParams = _.pick(params, 'firstName', 'lastName', 'email', 'school', 'externalId');\n\t\treturn userParams;\n\t}\n\n\tprivate static buildAccount(user: User, params: UserAndAccountParams = {}): Account {\n\t\tconst accountParams = _.pick(params, 'username', 'systemId');\n\t\tconst account = accountFactory.withUser(user).build(accountParams);\n\t\treturn account;\n\t}\n\n\tpublic static buildStudent(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): {\n\t\tstudentAccount: Account;\n\t\tstudentUser: User;\n\t} {\n\t\tconst user = userFactory\n\t\t\t.asStudent(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { studentAccount: account, studentUser: user };\n\t}\n\n\tpublic static buildTeacher(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { teacherAccount: Account; teacherUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asTeacher(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { teacherAccount: account, teacherUser: user };\n\t}\n\n\tpublic static buildAdmin(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { adminAccount: Account; adminUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asAdmin(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { adminAccount: account, adminUser: user };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountRepo.html":{"url":"injectables/AccountRepo.html","title":"injectable - AccountRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/repo/account.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteById\n \n \n Async\n deleteByUserId\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdOrFail\n \n \n Async\n findByUsernameAndSystemId\n \n \n Async\n findMany\n \n \n Async\n findMultipleByUserId\n \n \n Async\n flush\n \n \n getObjectReference\n \n \n saveWithoutFlush\n \n \n Private\n Async\n searchByUsername\n \n \n Async\n searchByUsernameExactMatch\n \n \n Async\n searchByUsernamePartialMatch\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n \n deleteById(accountId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:18\n \n \n\n\n \n \n Finds an account by user id.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n userId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n the user id\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdOrFail\n \n \n \n \n \n \n \n findByUserIdOrFail(userId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUsernameAndSystemId\n \n \n \n \n \n \n \n findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMany\n \n \n \n \n \n \n For migration purpose only\n \n \n \n \n \n findMany(offset: number, limit: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n offset\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 100\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMultipleByUserId\n \n \n \n \n \n \n \n findMultipleByUserId(userIds: EntityId[] | ObjectId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n EntityId[] | ObjectId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n flush\n \n \n \n \n \n \n \n flush()\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:46\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n getObjectReference\n \n \n \n \n \n \ngetObjectReference(entityName: EntityName, id: Primary | Primary[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:35\n \n \n\n \n \n Type parameters :\n \n Entity\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityName\n \n EntityName\n \n\n \n No\n \n\n\n \n \n id\n \n Primary | Primary[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Entity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n saveWithoutFlush\n \n \n \n \n \n \nsaveWithoutFlush(account: Account)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n Account\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n searchByUsername\n \n \n \n \n \n \n \n searchByUsername(username: string, offset: number, limit: number, exactMatch: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n offset\n \n number\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n No\n \n\n\n \n \n exactMatch\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernameExactMatch\n \n \n \n \n \n \n \n searchByUsernameExactMatch(username: string, skip: number, limit: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n skip\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 1\n \n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernamePartialMatch\n \n \n \n \n \n \n \n searchByUsernamePartialMatch(username: string, skip: number, limit: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n skip\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 10\n \n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:10\n \n \n\n \n \n\n \n\n\n \n import { AnyEntity, EntityName, Primary } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Account } from '@shared/domain/entity/account.entity';\nimport { BaseRepo } from '@shared/repo/base.repo';\n\n@Injectable()\nexport class AccountRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Account;\n\t}\n\n\t/**\n\t * Finds an account by user id.\n\t * @param userId the user id\n\t */\n\tasync findByUserId(userId: EntityId | ObjectId): Promise {\n\t\treturn this._em.findOne(Account, { userId: new ObjectId(userId) });\n\t}\n\n\tasync findMultipleByUserId(userIds: EntityId[] | ObjectId[]): Promise {\n\t\tconst objectIds = userIds.map((id: EntityId | ObjectId) => new ObjectId(id));\n\t\treturn this._em.find(Account, { userId: objectIds });\n\t}\n\n\tasync findByUserIdOrFail(userId: EntityId | ObjectId): Promise {\n\t\treturn this._em.findOneOrFail(Account, { userId: new ObjectId(userId) });\n\t}\n\n\tasync findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId): Promise {\n\t\treturn this._em.findOne(Account, { username, systemId: new ObjectId(systemId) });\n\t}\n\n\tgetObjectReference>(\n\t\tentityName: EntityName,\n\t\tid: Primary | Primary[]\n\t): Entity {\n\t\treturn this._em.getReference(entityName, id);\n\t}\n\n\tsaveWithoutFlush(account: Account): void {\n\t\tthis._em.persist(account);\n\t}\n\n\tasync flush(): Promise {\n\t\tawait this._em.flush();\n\t}\n\n\tasync searchByUsernameExactMatch(username: string, skip = 0, limit = 1): Promise {\n\t\treturn this.searchByUsername(username, skip, limit, true);\n\t}\n\n\tasync searchByUsernamePartialMatch(username: string, skip = 0, limit = 10): Promise {\n\t\treturn this.searchByUsername(username, skip, limit, false);\n\t}\n\n\tasync deleteById(accountId: EntityId | ObjectId): Promise {\n\t\tconst account = await this.findById(accountId);\n\t\treturn this.delete(account);\n\t}\n\n\tasync deleteByUserId(userId: EntityId): Promise {\n\t\tconst account = await this.findByUserId(userId);\n\t\tif (account) {\n\t\t\tawait this._em.removeAndFlush(account);\n\t\t}\n\t}\n\n\t/**\n\t * @deprecated For migration purpose only\n\t */\n\tasync findMany(offset = 0, limit = 100): Promise {\n\t\treturn this._em.find(this.entityName, {}, { offset, limit });\n\t}\n\n\tprivate async searchByUsername(\n\t\tusername: string,\n\t\toffset: number,\n\t\tlimit: number,\n\t\texactMatch: boolean\n\t): Promise {\n\t\t// escapes every character, that's not a unicode letter or number\n\t\tconst escapedUsername = username.replace(/[^(\\p{L}\\p{N})]/gu, '\\\\$&');\n\t\tconst searchUsername = exactMatch ? `^${escapedUsername}$` : escapedUsername;\n\t\treturn this._em.findAndCount(\n\t\t\tthis.entityName,\n\t\t\t{\n\t\t\t\t// NOTE: The default behavior of the MongoDB driver allows\n\t\t\t\t// to pass regular expressions directly into the where clause\n\t\t\t\t// without the need of using the $re operator, this will NOT\n\t\t\t\t// work with SQL drivers\n\t\t\t\tusername: new RegExp(searchUsername, 'i'),\n\t\t\t},\n\t\t\t{\n\t\t\t\toffset,\n\t\t\t\tlimit,\n\t\t\t\torderBy: { username: 1 },\n\t\t\t}\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountResponse.html":{"url":"classes/AccountResponse.html","title":"class - AccountResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n id\n \n \n \n Optional\n updatedAt\n \n \n \n Optional\n userId\n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: AccountResponse)\n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n AccountResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class AccountResponse {\n\tconstructor({ id, username, userId, activated, updatedAt }: AccountResponse) {\n\t\tthis.id = id;\n\t\tthis.username = username;\n\t\tthis.userId = userId;\n\t\tthis.activated = activated;\n\t\tthis.updatedAt = updatedAt;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tusername: string;\n\n\t@ApiProperty()\n\tuserId?: string;\n\n\t@ApiProperty()\n\tactivated?: boolean;\n\n\t@ApiProperty()\n\tupdatedAt?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountResponseMapper.html":{"url":"classes/AccountResponseMapper.html","title":"class - AccountResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n Static\n mapToResponseFromEntity\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(account: AccountDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-response.mapper.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponseFromEntity\n \n \n \n \n \n \n \n mapToResponseFromEntity(account: Account)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-response.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n Account\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Account } from '@shared/domain';\nimport { AccountDto } from '@src/modules/account/services/dto/account.dto';\nimport { AccountResponse } from '../controller/dto';\n\nexport class AccountResponseMapper {\n\tstatic mapToResponseFromEntity(account: Account): AccountResponse {\n\t\treturn new AccountResponse({\n\t\t\tid: account.id,\n\t\t\tuserId: account.userId?.toString(),\n\t\t\tactivated: account.activated,\n\t\t\tusername: account.username,\n\t\t\tupdatedAt: account.updatedAt,\n\t\t});\n\t}\n\n\tstatic mapToResponse(account: AccountDto): AccountResponse {\n\t\treturn new AccountResponse({\n\t\t\tid: account.id,\n\t\t\tuserId: account.userId,\n\t\t\tactivated: account.activated,\n\t\t\tusername: account.username,\n\t\t\tupdatedAt: account.updatedAt,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountSaveDto.html":{"url":"classes/AccountSaveDto.html","title":"class - AccountSaveDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountSaveDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/dto/account-save.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n Readonly\n Optional\n createdAt\n \n \n \n \n Optional\n credentialHash\n \n \n \n \n Optional\n expiresAt\n \n \n \n \n Readonly\n Optional\n id\n \n \n \n Optional\n idmReferenceId\n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n Optional\n password\n \n \n \n \n Optional\n systemId\n \n \n \n \n Optional\n token\n \n \n \n \n Readonly\n Optional\n updatedAt\n \n \n \n \n Optional\n userId\n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AccountSaveDto)\n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:57\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n AccountSaveDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n credentialHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n idmReferenceId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsOptional()@Matches(passwordPattern)\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PrivacyProtect } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { IsBoolean, IsDate, IsMongoId, IsNotEmpty, IsOptional, IsString, Matches } from 'class-validator';\nimport { passwordPattern } from '../../controller/dto/password-pattern';\n\nexport class AccountSaveDto {\n\t@IsOptional()\n\t@IsMongoId()\n\treadonly id?: EntityId;\n\n\t@IsOptional()\n\t@IsDate()\n\treadonly createdAt?: Date;\n\n\t@IsOptional()\n\t@IsDate()\n\treadonly updatedAt?: Date;\n\n\t@IsString()\n\t@IsNotEmpty()\n\tusername: string;\n\n\t@PrivacyProtect()\n\t@IsOptional()\n\t@Matches(passwordPattern)\n\tpassword?: string;\n\n\t@IsOptional()\n\t@IsString()\n\ttoken?: string;\n\n\t@IsOptional()\n\t@IsString()\n\tcredentialHash?: string;\n\n\t@IsOptional()\n\t@IsMongoId()\n\tuserId?: EntityId;\n\n\t@IsOptional()\n\t@IsMongoId()\n\tsystemId?: EntityId;\n\n\t@IsOptional()\n\t@IsDate()\n\tlasttriedFailedLogin?: Date;\n\n\t@IsOptional()\n\t@IsDate()\n\texpiresAt?: Date;\n\n\t@IsOptional()\n\t@IsBoolean()\n\tactivated?: boolean;\n\n\t@IsOptional()\n\tidmReferenceId?: string;\n\n\tconstructor(props: AccountSaveDto) {\n\t\tthis.id = props.id;\n\t\tthis.createdAt = props.createdAt;\n\t\tthis.updatedAt = props.updatedAt;\n\t\tthis.username = props.username;\n\t\tthis.password = props.password;\n\t\tthis.token = props.token;\n\t\tthis.credentialHash = props.credentialHash;\n\t\tthis.userId = props.userId;\n\t\tthis.systemId = props.systemId;\n\t\tthis.lasttriedFailedLogin = props.lasttriedFailedLogin;\n\t\tthis.expiresAt = props.expiresAt;\n\t\tthis.activated = props.activated;\n\t\tthis.idmReferenceId = props.idmReferenceId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountSearchListResponse.html":{"url":"classes/AccountSearchListResponse.html","title":"class - AccountSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account-search-list.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: AccountResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-search-list.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n AccountResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : AccountResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { AccountResponse } from './account.response';\n\nexport class AccountSearchListResponse extends PaginationResponse {\n\tconstructor(data: AccountResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [AccountResponse] })\n\tdata: AccountResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountSearchQueryParams.html":{"url":"classes/AccountSearchQueryParams.html","title":"class - AccountSearchQueryParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountSearchQueryParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account-search.query.params.ts\n \n\n\n\n \n Extends\n \n \n PaginationParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n type\n \n \n \n \n value\n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n Optional\n skip\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : AccountSearchType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(AccountSearchType)@ApiProperty({description: 'The search criteria.', enum: AccountSearchType, required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-search.query.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The search value.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-search.query.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 10\n \n \n \n \n Decorators : \n \n \n @IsInt()@Min(1)@Max(100)@ApiPropertyOptional({description: 'Page limit, defaults to 10.', minimum: 1, maximum: 99})\n \n \n \n \n \n Inherited from PaginationParams\n\n \n \n \n \n Defined in PaginationParams:14\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 0\n \n \n \n \n Decorators : \n \n \n @IsInt()@Min(0)@ApiPropertyOptional({description: 'Number of elements (not pages) to be skipped'})\n \n \n \n \n \n Inherited from PaginationParams\n\n \n \n \n \n Defined in PaginationParams:8\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsEnum, IsString } from 'class-validator';\nimport { PaginationParams } from '@shared/controller';\nimport { AccountSearchType } from './account-search-type';\n\nexport class AccountSearchQueryParams extends PaginationParams {\n\t@IsEnum(AccountSearchType)\n\t@ApiProperty({\n\t\tdescription: 'The search criteria.',\n\t\tenum: AccountSearchType,\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttype!: AccountSearchType;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The search value.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tvalue!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountService.html":{"url":"injectables/AccountService.html","title":"injectable - AccountService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account.service.ts\n \n\n\n\n \n Extends\n \n \n AbstractAccountService\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n accountImpl\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n deleteByUserId\n \n \n Private\n Async\n executeIdmMethod\n \n \n Async\n findById\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdOrFail\n \n \n Async\n findByUsernameAndSystemId\n \n \n Async\n findMany\n \n \n Async\n findMultipleByUserId\n \n \n Async\n save\n \n \n Async\n saveWithValidation\n \n \n Async\n searchByUsernameExactMatch\n \n \n Async\n searchByUsernamePartialMatch\n \n \n Async\n updateLastTriedFailedLogin\n \n \n Async\n updatePassword\n \n \n Async\n updateUsername\n \n \n Async\n validatePassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(accountDb: AccountServiceDb, accountIdm: AccountServiceIdm, configService: ConfigService, accountValidationService: AccountValidationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/account/services/account.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDb\n \n \n AccountServiceDb\n \n \n \n No\n \n \n \n \n accountIdm\n \n \n AccountServiceIdm\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n accountValidationService\n \n \n AccountValidationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(accountId: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:151\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:160\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n executeIdmMethod\n \n \n \n \n \n \n \n executeIdmMethod(idmCallback: () => void)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.ts:176\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idmCallback\n \n function\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:43\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdOrFail\n \n \n \n \n \n \n \n findByUserIdOrFail(userId: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:47\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUsernameAndSystemId\n \n \n \n \n \n \n \n findByUsernameAndSystemId(username: string, systemId: string | ObjectId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:51\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMany\n \n \n \n \n \n \n For migration purpose only\n \n \n \n \n \n findMany(offset: number, limit: number)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:172\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n offset\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 100\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMultipleByUserId\n \n \n \n \n \n \n \n findMultipleByUserId(userIds: string[])\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(accountDto: AccountSaveDto)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDto\n \n AccountSaveDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveWithValidation\n \n \n \n \n \n \n \n saveWithValidation(dto: AccountSaveDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n AccountSaveDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernameExactMatch\n \n \n \n \n \n \n \n searchByUsernameExactMatch(userName: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:59\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernamePartialMatch\n \n \n \n \n \n \n \n searchByUsernamePartialMatch(userName: string, skip: number, limit: number)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:55\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateLastTriedFailedLogin\n \n \n \n \n \n \n \n updateLastTriedFailedLogin(accountId: string, lastTriedFailedLogin: Date)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:125\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n lastTriedFailedLogin\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updatePassword\n \n \n \n \n \n \n \n updatePassword(accountId: string, password: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:136\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateUsername\n \n \n \n \n \n \n \n updateUsername(accountId: string, username: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:114\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validatePassword\n \n \n \n \n \n \n \n validatePassword(account: AccountDto, comparePassword: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:147\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n comparePassword\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n accountImpl\n \n \n \n \n \n \n Type : AbstractAccountService\n\n \n \n \n \n Defined in apps/server/src/modules/account/services/account.service.ts:17\n \n \n\n\n \n \n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { ValidationError } from '@shared/common';\nimport { Counted } from '@shared/domain';\nimport { isEmail, validateOrReject } from 'class-validator';\nimport { LegacyLogger } from '../../../core/logger';\nimport { IServerConfig } from '../../server/server.config';\nimport { AccountServiceDb } from './account-db.service';\nimport { AccountServiceIdm } from './account-idm.service';\nimport { AbstractAccountService } from './account.service.abstract';\nimport { AccountValidationService } from './account.validation.service';\nimport { AccountDto, AccountSaveDto } from './dto';\n\n@Injectable()\nexport class AccountService extends AbstractAccountService {\n\tprivate readonly accountImpl: AbstractAccountService;\n\n\tconstructor(\n\t\tprivate readonly accountDb: AccountServiceDb,\n\t\tprivate readonly accountIdm: AccountServiceIdm,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly accountValidationService: AccountValidationService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tsuper();\n\t\tthis.logger.setContext(AccountService.name);\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED') === true) {\n\t\t\tthis.accountImpl = accountIdm;\n\t\t} else {\n\t\t\tthis.accountImpl = accountDb;\n\t\t}\n\t}\n\n\tasync findById(id: string): Promise {\n\t\treturn this.accountImpl.findById(id);\n\t}\n\n\tasync findMultipleByUserId(userIds: string[]): Promise {\n\t\treturn this.accountImpl.findMultipleByUserId(userIds);\n\t}\n\n\tasync findByUserId(userId: string): Promise {\n\t\treturn this.accountImpl.findByUserId(userId);\n\t}\n\n\tasync findByUserIdOrFail(userId: string): Promise {\n\t\treturn this.accountImpl.findByUserIdOrFail(userId);\n\t}\n\n\tasync findByUsernameAndSystemId(username: string, systemId: string | ObjectId): Promise {\n\t\treturn this.accountImpl.findByUsernameAndSystemId(username, systemId);\n\t}\n\n\tasync searchByUsernamePartialMatch(userName: string, skip: number, limit: number): Promise> {\n\t\treturn this.accountImpl.searchByUsernamePartialMatch(userName, skip, limit);\n\t}\n\n\tasync searchByUsernameExactMatch(userName: string): Promise> {\n\t\treturn this.accountImpl.searchByUsernameExactMatch(userName);\n\t}\n\n\tasync save(accountDto: AccountSaveDto): Promise {\n\t\tconst ret = await this.accountDb.save(accountDto);\n\t\tconst newAccount: AccountSaveDto = {\n\t\t\t...accountDto,\n\t\t\tid: accountDto.id,\n\t\t\tidmReferenceId: ret.id,\n\t\t\tpassword: accountDto.password,\n\t\t};\n\t\tconst idmAccount = await this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Saving account with accountID ${ret.id} ...`);\n\t\t\tconst account = await this.accountIdm.save(newAccount);\n\t\t\tthis.logger.debug(`Saved account with accountID ${ret.id}`);\n\t\t\treturn account;\n\t\t});\n\t\treturn { ...ret, idmReferenceId: idmAccount?.idmReferenceId };\n\t}\n\n\tasync saveWithValidation(dto: AccountSaveDto): Promise {\n\t\tawait validateOrReject(dto);\n\t\t// sanatizeUsername ✔\n\t\tif (!dto.systemId) {\n\t\t\tdto.username = dto.username.trim().toLowerCase();\n\t\t}\n\t\tif (!dto.systemId && !dto.password) {\n\t\t\tthrow new ValidationError('No password provided');\n\t\t}\n\t\t// validateUserName ✔\n\t\t// usernames must be an email address, if they are not from an external system\n\t\tif (!dto.systemId && !isEmail(dto.username)) {\n\t\t\tthrow new ValidationError('Username is not an email');\n\t\t}\n\t\t// checkExistence ✔\n\t\tif (dto.userId && (await this.findByUserId(dto.userId))) {\n\t\t\tthrow new ValidationError('Account already exists');\n\t\t}\n\t\t// validateCredentials hook will not be ported ✔\n\t\t// trimPassword hook will be done by class-validator ✔\n\t\t// local.hooks.hashPassword('password'), will be done by account service ✔\n\t\t// checkUnique ✔\n\t\tif (!(await this.accountValidationService.isUniqueEmail(dto.username, dto.userId, dto.id, dto.systemId))) {\n\t\t\tthrow new ValidationError('Username already exists');\n\t\t}\n\t\t// removePassword hook is not implemented\n\t\t// const noPasswordStrategies = ['ldap', 'moodle', 'iserv'];\n\t\t// if (dto.passwordStrategy && noPasswordStrategies.includes(dto.passwordStrategy)) {\n\t\t// \tdto.password = undefined;\n\t\t// }\n\n\t\tawait this.save(dto);\n\t}\n\n\tasync updateUsername(accountId: string, username: string): Promise {\n\t\tconst ret = await this.accountDb.updateUsername(accountId, username);\n\t\tconst idmAccount = await this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Updating username for account with accountID ${accountId} ...`);\n\t\t\tconst account = await this.accountIdm.updateUsername(accountId, username);\n\t\t\tthis.logger.debug(`Updated username for account with accountID ${accountId}`);\n\t\t\treturn account;\n\t\t});\n\t\treturn { ...ret, idmReferenceId: idmAccount?.idmReferenceId };\n\t}\n\n\tasync updateLastTriedFailedLogin(accountId: string, lastTriedFailedLogin: Date): Promise {\n\t\tconst ret = await this.accountDb.updateLastTriedFailedLogin(accountId, lastTriedFailedLogin);\n\t\tconst idmAccount = await this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Updating last tried failed login for account with accountID ${accountId} ...`);\n\t\t\tconst account = await this.accountIdm.updateLastTriedFailedLogin(accountId, lastTriedFailedLogin);\n\t\t\tthis.logger.debug(`Updated last tried failed login for account with accountID ${accountId}`);\n\t\t\treturn account;\n\t\t});\n\t\treturn { ...ret, idmReferenceId: idmAccount?.idmReferenceId };\n\t}\n\n\tasync updatePassword(accountId: string, password: string): Promise {\n\t\tconst ret = await this.accountDb.updatePassword(accountId, password);\n\t\tconst idmAccount = await this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Updating password for account with accountID ${accountId} ...`);\n\t\t\tconst account = await this.accountIdm.updatePassword(accountId, password);\n\t\t\tthis.logger.debug(`Updated password for account with accountID ${accountId}`);\n\t\t\treturn account;\n\t\t});\n\t\treturn { ...ret, idmReferenceId: idmAccount?.idmReferenceId };\n\t}\n\n\tasync validatePassword(account: AccountDto, comparePassword: string): Promise {\n\t\treturn this.accountImpl.validatePassword(account, comparePassword);\n\t}\n\n\tasync delete(accountId: string): Promise {\n\t\tawait this.accountDb.delete(accountId);\n\t\tawait this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Deleting account with accountId ${accountId} ...`);\n\t\t\tawait this.accountIdm.delete(accountId);\n\t\t\tthis.logger.debug(`Deleted account with accountId ${accountId}`);\n\t\t});\n\t}\n\n\tasync deleteByUserId(userId: string): Promise {\n\t\tawait this.accountDb.deleteByUserId(userId);\n\t\tawait this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Deleting account with userId ${userId} ...`);\n\t\t\tawait this.accountIdm.deleteByUserId(userId);\n\t\t\tthis.logger.debug(`Deleted account with userId ${userId}`);\n\t\t});\n\t}\n\n\t/**\n\t * @deprecated For migration purpose only\n\t */\n\tasync findMany(offset = 0, limit = 100): Promise {\n\t\treturn this.accountDb.findMany(offset, limit);\n\t}\n\n\tprivate async executeIdmMethod(idmCallback: () => Promise) {\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED') === true) {\n\t\t\ttry {\n\t\t\t\treturn await idmCallback();\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\tthis.logger.error(error, error.stack);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.error(error);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountServiceDb.html":{"url":"injectables/AccountServiceDb.html","title":"injectable - AccountServiceDb","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountServiceDb\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account-db.service.ts\n \n\n\n\n \n Extends\n \n \n AbstractAccountService\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n deleteByUserId\n \n \n Private\n encryptPassword\n \n \n Async\n findById\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdOrFail\n \n \n Async\n findByUsernameAndSystemId\n \n \n Async\n findMany\n \n \n Async\n findMultipleByUserId\n \n \n Private\n Async\n getInternalId\n \n \n Async\n save\n \n \n Async\n searchByUsernameExactMatch\n \n \n Async\n searchByUsernamePartialMatch\n \n \n Async\n updateLastTriedFailedLogin\n \n \n Async\n updatePassword\n \n \n Async\n updateUsername\n \n \n validatePassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(accountRepo: AccountRepo, accountLookupService: AccountLookupService)\n \n \n \n \n Defined in apps/server/src/modules/account/services/account-db.service.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountRepo\n \n \n AccountRepo\n \n \n \n No\n \n \n \n \n accountLookupService\n \n \n AccountLookupService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(id: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:108\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:113\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n encryptPassword\n \n \n \n \n \n \n \n encryptPassword(password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account-db.service.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:29\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdOrFail\n \n \n \n \n \n \n \n findByUserIdOrFail(userId: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:34\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUsernameAndSystemId\n \n \n \n \n \n \n \n findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMany\n \n \n \n \n \n \n \n findMany(offset: number, limit: number)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:146\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n offset\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 100\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMultipleByUserId\n \n \n \n \n \n \n \n findMultipleByUserId(userIds: EntityId[])\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getInternalId\n \n \n \n \n \n \n \n getInternalId(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account-db.service.ts:134\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(accountDto: AccountSaveDto)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:47\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDto\n \n AccountSaveDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernameExactMatch\n \n \n \n \n \n \n \n searchByUsernameExactMatch(userName: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:122\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernamePartialMatch\n \n \n \n \n \n \n \n searchByUsernamePartialMatch(userName: string, skip: number, limit: number)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:117\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateLastTriedFailedLogin\n \n \n \n \n \n \n \n updateLastTriedFailedLogin(accountId: EntityId, lastTriedFailedLogin: Date)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:91\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n lastTriedFailedLogin\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updatePassword\n \n \n \n \n \n \n \n updatePassword(accountId: EntityId, password: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:99\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateUsername\n \n \n \n \n \n \n \n updateUsername(accountId: EntityId, username: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:83\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n validatePassword\n \n \n \n \n \n \nvalidatePassword(account: AccountDto, comparePassword: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:127\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n comparePassword\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport bcrypt from 'bcryptjs';\nimport { EntityNotFoundError } from '@shared/common';\nimport { Account, Counted, EntityId } from '@shared/domain';\nimport { AccountRepo } from '../repo/account.repo';\nimport { AccountEntityToDtoMapper } from '../mapper';\nimport { AccountDto, AccountSaveDto } from './dto';\nimport { AbstractAccountService } from './account.service.abstract';\nimport { AccountLookupService } from './account-lookup.service';\n\n@Injectable()\nexport class AccountServiceDb extends AbstractAccountService {\n\tconstructor(private readonly accountRepo: AccountRepo, private readonly accountLookupService: AccountLookupService) {\n\t\tsuper();\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst internalId = await this.getInternalId(id);\n\t\tconst accountEntity = await this.accountRepo.findById(internalId);\n\t\treturn AccountEntityToDtoMapper.mapToDto(accountEntity);\n\t}\n\n\tasync findMultipleByUserId(userIds: EntityId[]): Promise {\n\t\tconst accountEntities = await this.accountRepo.findMultipleByUserId(userIds);\n\t\treturn AccountEntityToDtoMapper.mapAccountsToDto(accountEntities);\n\t}\n\n\tasync findByUserId(userId: EntityId): Promise {\n\t\tconst accountEntity = await this.accountRepo.findByUserId(userId);\n\t\treturn accountEntity ? AccountEntityToDtoMapper.mapToDto(accountEntity) : null;\n\t}\n\n\tasync findByUserIdOrFail(userId: EntityId): Promise {\n\t\tconst accountEntity = await this.accountRepo.findByUserId(userId);\n\t\tif (!accountEntity) {\n\t\t\tthrow new EntityNotFoundError('Account');\n\t\t}\n\t\treturn AccountEntityToDtoMapper.mapToDto(accountEntity);\n\t}\n\n\tasync findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId): Promise {\n\t\tconst accountEntity = await this.accountRepo.findByUsernameAndSystemId(username, systemId);\n\t\treturn accountEntity ? AccountEntityToDtoMapper.mapToDto(accountEntity) : null;\n\t}\n\n\tasync save(accountDto: AccountSaveDto): Promise {\n\t\tlet account: Account;\n\t\tif (accountDto.id) {\n\t\t\tconst internalId = await this.getInternalId(accountDto.id);\n\t\t\taccount = await this.accountRepo.findById(internalId);\n\t\t\taccount.userId = new ObjectId(accountDto.userId);\n\t\t\taccount.systemId = accountDto.systemId ? new ObjectId(accountDto.systemId) : undefined;\n\t\t\taccount.username = accountDto.username;\n\t\t\taccount.activated = accountDto.activated;\n\t\t\taccount.expiresAt = accountDto.expiresAt;\n\t\t\taccount.lasttriedFailedLogin = accountDto.lasttriedFailedLogin;\n\t\t\tif (accountDto.password) {\n\t\t\t\taccount.password = await this.encryptPassword(accountDto.password);\n\t\t\t}\n\t\t\taccount.credentialHash = accountDto.credentialHash;\n\t\t\taccount.token = accountDto.token;\n\n\t\t\tawait this.accountRepo.save(account);\n\t\t} else {\n\t\t\taccount = new Account({\n\t\t\t\tuserId: new ObjectId(accountDto.userId),\n\t\t\t\tsystemId: accountDto.systemId ? new ObjectId(accountDto.systemId) : undefined,\n\t\t\t\tusername: accountDto.username,\n\t\t\t\tactivated: accountDto.activated,\n\t\t\t\texpiresAt: accountDto.expiresAt,\n\t\t\t\tlasttriedFailedLogin: accountDto.lasttriedFailedLogin,\n\t\t\t\tpassword: accountDto.password ? await this.encryptPassword(accountDto.password) : undefined,\n\t\t\t\ttoken: accountDto.token,\n\t\t\t\tcredentialHash: accountDto.credentialHash,\n\t\t\t});\n\n\t\t\tawait this.accountRepo.save(account);\n\t\t}\n\t\treturn AccountEntityToDtoMapper.mapToDto(account);\n\t}\n\n\tasync updateUsername(accountId: EntityId, username: string): Promise {\n\t\tconst internalId = await this.getInternalId(accountId);\n\t\tconst account = await this.accountRepo.findById(internalId);\n\t\taccount.username = username;\n\t\tawait this.accountRepo.save(account);\n\t\treturn AccountEntityToDtoMapper.mapToDto(account);\n\t}\n\n\tasync updateLastTriedFailedLogin(accountId: EntityId, lastTriedFailedLogin: Date): Promise {\n\t\tconst internalId = await this.getInternalId(accountId);\n\t\tconst account = await this.accountRepo.findById(internalId);\n\t\taccount.lasttriedFailedLogin = lastTriedFailedLogin;\n\t\tawait this.accountRepo.save(account);\n\t\treturn AccountEntityToDtoMapper.mapToDto(account);\n\t}\n\n\tasync updatePassword(accountId: EntityId, password: string): Promise {\n\t\tconst internalId = await this.getInternalId(accountId);\n\t\tconst account = await this.accountRepo.findById(internalId);\n\t\taccount.password = await this.encryptPassword(password);\n\n\t\tawait this.accountRepo.save(account);\n\t\treturn AccountEntityToDtoMapper.mapToDto(account);\n\t}\n\n\tasync delete(id: EntityId): Promise {\n\t\tconst internalId = await this.getInternalId(id);\n\t\treturn this.accountRepo.deleteById(internalId);\n\t}\n\n\tasync deleteByUserId(userId: EntityId): Promise {\n\t\treturn this.accountRepo.deleteByUserId(userId);\n\t}\n\n\tasync searchByUsernamePartialMatch(userName: string, skip: number, limit: number): Promise> {\n\t\tconst accountEntities = await this.accountRepo.searchByUsernamePartialMatch(userName, skip, limit);\n\t\treturn AccountEntityToDtoMapper.mapSearchResult(accountEntities);\n\t}\n\n\tasync searchByUsernameExactMatch(userName: string): Promise> {\n\t\tconst accountEntities = await this.accountRepo.searchByUsernameExactMatch(userName);\n\t\treturn AccountEntityToDtoMapper.mapSearchResult(accountEntities);\n\t}\n\n\tvalidatePassword(account: AccountDto, comparePassword: string): Promise {\n\t\tif (!account.password) {\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\t\treturn bcrypt.compare(comparePassword, account.password);\n\t}\n\n\tprivate async getInternalId(id: EntityId | ObjectId): Promise {\n\t\tconst internalId = await this.accountLookupService.getInternalId(id);\n\t\tif (!internalId) {\n\t\t\tthrow new EntityNotFoundError(`Account with id ${id.toString()} not found`);\n\t\t}\n\t\treturn internalId;\n\t}\n\n\tprivate encryptPassword(password: string): Promise {\n\t\treturn bcrypt.hash(password, 10);\n\t}\n\n\tasync findMany(offset = 0, limit = 100): Promise {\n\t\treturn AccountEntityToDtoMapper.mapAccountsToDto(await this.accountRepo.findMany(offset, limit));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountValidationService.html":{"url":"injectables/AccountValidationService.html","title":"injectable - AccountValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account.validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n isUniqueEmail\n \n \n Async\n isUniqueEmailForAccount\n \n \n Async\n isUniqueEmailForUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(accountRepo: AccountRepo, userRepo: UserRepo)\n \n \n \n \n Defined in apps/server/src/modules/account/services/account.validation.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountRepo\n \n \n AccountRepo\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n isUniqueEmail\n \n \n \n \n \n \n \n isUniqueEmail(email: string, userId?: EntityId, accountId?: EntityId, systemId?: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.validation.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n accountId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n isUniqueEmailForAccount\n \n \n \n \n \n \n \n isUniqueEmailForAccount(email: string, accountId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.validation.service.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n isUniqueEmailForUser\n \n \n \n \n \n \n \n isUniqueEmailForUser(email: string, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.validation.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { UserRepo } from '@shared/repo';\nimport { AccountEntityToDtoMapper } from '../mapper/account-entity-to-dto.mapper';\nimport { AccountRepo } from '../repo/account.repo';\n\n@Injectable()\nexport class AccountValidationService {\n\tconstructor(private accountRepo: AccountRepo, private userRepo: UserRepo) {}\n\n\tasync isUniqueEmail(email: string, userId?: EntityId, accountId?: EntityId, systemId?: EntityId): Promise {\n\t\tconst [foundUsers, [accounts]] = await Promise.all([\n\t\t\t// Test coverage: Missing branch null check; unreachable\n\t\t\tthis.userRepo.findByEmail(email),\n\t\t\tAccountEntityToDtoMapper.mapSearchResult(await this.accountRepo.searchByUsernameExactMatch(email)),\n\t\t]);\n\n\t\tconst filteredAccounts = accounts.filter((foundAccount) => foundAccount.systemId === systemId);\n\n\t\treturn !(\n\t\t\tfoundUsers.length > 1 ||\n\t\t\tfilteredAccounts.length > 1 ||\n\t\t\t// paranoid 'toString': legacy code may call userId or accountId as ObjectID\n\t\t\t(foundUsers.length === 1 && foundUsers[0].id.toString() !== userId?.toString()) ||\n\t\t\t(filteredAccounts.length === 1 && filteredAccounts[0].id.toString() !== accountId?.toString())\n\t\t);\n\t}\n\n\tasync isUniqueEmailForUser(email: string, userId: EntityId): Promise {\n\t\tconst account = await this.accountRepo.findByUserId(userId);\n\t\treturn this.isUniqueEmail(email, userId, account?.id, account?.systemId?.toString());\n\t}\n\n\tasync isUniqueEmailForAccount(email: string, accountId: EntityId): Promise {\n\t\tconst account = await this.accountRepo.findById(accountId);\n\t\treturn this.isUniqueEmail(email, account.userId?.toString(), account.id, account?.systemId?.toString());\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AdminIdAndToken.html":{"url":"interfaces/AdminIdAndToken.html","title":"interface - AdminIdAndToken","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AdminIdAndToken\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n token\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n \n \n token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { lastValueFrom } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport interface RocketChatOptions {\n\turi?: string;\n\tadminUser?: string;\n\tadminPassword?: string;\n\tadminId?: string;\n\tadminToken?: string;\n}\n\nexport interface RocketChatGroupModel {\n\tgroup: {\n\t\t_id: string;\n\t\tname: string;\n\t\tfname: string;\n\t\tt: string;\n\t\tmsgs: number;\n\t\tusersCount: number;\n\t\tu: {\n\t\t\t_id: string;\n\t\t\tusername: string;\n\t\t};\n\t\tcustomfields: object;\n\t\tbroadcast: boolean;\n\t\tencrypted: boolean;\n\t\tts: Date;\n\t\tro: boolean;\n\t\tdefaults: boolean;\n\t\tsysmes: boolean;\n\t\t_updatedAt: Date;\n\t};\n\tsuccess: boolean;\n}\n\ntype GenericData = Record;\n\nexport class RocketChatError extends Error {\n\tprivate statusCode: number;\n\n\tprivate response: GenericData;\n\n\t// rocketchat specific error type\n\tprivate errorType: string;\n\n\tconstructor(e: any) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument\n\t\tsuper(e.response.statusText);\n\n\t\t// Set the prototype explicitly.\n\t\tObject.setPrototypeOf(this, RocketChatError.prototype);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\tthis.statusCode = e.response.statusCode;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.response = e.response.data;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.errorType = e.response.data.errorType;\n\t}\n}\n\ninterface AdminIdAndToken {\n\tid: string;\n\ttoken: string;\n}\n\n@Injectable()\nexport class RocketChatService {\n\tprivate adminIdAndToken?: AdminIdAndToken;\n\n\tconstructor(\n\t\t@Inject('ROCKET_CHAT_OPTIONS') private readonly options: RocketChatOptions,\n\t\tprivate readonly httpService: HttpService\n\t) {}\n\n\tpublic async me(authToken: string, userId: string): Promise {\n\t\treturn this.get('/api/v1/me', authToken, userId);\n\t}\n\n\tpublic async setUserStatus(authToken: string, userId: string, status: string): Promise {\n\t\treturn this.post('/api/v1/users.setStatus', authToken, userId, {\n\t\t\tmessage: '',\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic async createUserToken(userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.createToken', {\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async logoutUser(authToken: string, userId: string): Promise {\n\t\treturn this.post('/api/v1/logout', authToken, userId, {});\n\t}\n\n\tpublic async getUserList(queryString: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/users.list?${queryString}`);\n\t}\n\n\tpublic async unarchiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.unarchive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async archiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.archive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async kickUserFromGroup(groupName: string, userId: string): Promise {\n\t\tconst groupInfo: RocketChatGroupModel = await this.getGroupData(groupName);\n\n\t\treturn this.postAsAdmin('/api/v1/groups.kick', {\n\t\t\troomId: groupInfo.group._id,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async inviteUserToGroup(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.invite', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async addGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.addModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async removeGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.removeModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async getGroupModerators(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.moderators?roomName=${groupName}`);\n\t}\n\n\tpublic async getGroupMembers(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.members?roomName=${groupName}`);\n\t}\n\n\tprivate async getGroupData(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.info?roomName=${groupName}`);\n\t}\n\n\tpublic async createGroup(name: string, members: string[]): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.create', {\n\t\t\tname,\n\t\t\tmembers,\n\t\t});\n\t}\n\n\tpublic async deleteGroup(groupName: string): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.delete', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async createUser(email: string, password: string, username: string, name: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.create', {\n\t\t\temail,\n\t\t\tpassword,\n\t\t\tusername,\n\t\t\tname,\n\t\t\tverified: true,\n\t\t});\n\t}\n\n\tpublic async deleteUser(username: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.delete', {\n\t\t\tusername,\n\t\t});\n\t}\n\n\tprivate async postAsAdmin(path: string, body: GenericData): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.post(path, adminIdAndToken.token, adminIdAndToken.id, body);\n\t}\n\n\tprivate async getAsAdmin(path: string): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.get(path, adminIdAndToken.token, adminIdAndToken.id);\n\t}\n\n\tprivate async get(path: string, authToken: string, userId: string): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.get(`${this.options.uri}${path}`, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as Type;\n\t}\n\n\tprivate async post(path: string, authToken: string, userId: string, body: GenericData): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}${path}`, body, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as GenericData;\n\t}\n\n\tprivate async getAdminIdAndToken(): Promise {\n\t\tthis.validateRocketChatConfig();\n\n\t\tif (this.adminIdAndToken) {\n\t\t\treturn this.adminIdAndToken;\n\t\t}\n\n\t\tif (this.options.adminId && this.options.adminToken) {\n\t\t\tconst newVar = { id: this.options.adminId, token: this.options.adminToken } as AdminIdAndToken;\n\t\t\tthis.adminIdAndToken = newVar;\n\t\t\treturn newVar;\n\t\t}\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}/api/v1/login`, {\n\t\t\t\t\tuser: this.options.adminUser,\n\t\t\t\t\tpassword: this.options.adminPassword,\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst responseJson = response?.data;\n\t\tthis.adminIdAndToken = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tid: responseJson.data.userId as string,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\ttoken: responseJson.data.authToken as string,\n\t\t} as AdminIdAndToken;\n\t\treturn this.adminIdAndToken;\n\t}\n\n\tprivate validateRocketChatConfig(): void {\n\t\tif (!this.options.uri) {\n\t\t\tthrow new Error('rocket chat uri not set');\n\t\t}\n\t\tif (!(this.options.adminId && this.options.adminToken) && !(this.options.adminUser && this.options.adminPassword)) {\n\t\t\tthrow new Error('rocket chat adminId and adminToken OR adminUser and adminPassword must be set');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AntivirusModule.html":{"url":"modules/AntivirusModule.html","title":"module - AntivirusModule","body":"\n \n\n\n\n\n Modules\n AntivirusModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/antivirus/antivirus.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options: AntivirusModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.module.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n AntivirusModuleOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Module, DynamicModule } from '@nestjs/common';\nimport { AntivirusService } from './antivirus.service';\n\ninterface AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\n@Module({})\nexport class AntivirusModule {\n\tstatic forRoot(options: AntivirusModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: AntivirusModule,\n\t\t\tproviders: [\n\t\t\t\tAntivirusService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'ANTIVIRUS_SERVICE_OPTIONS',\n\t\t\t\t\tuseValue: {\n\t\t\t\t\t\tenabled: options.enabled,\n\t\t\t\t\t\tfilesServiceBaseUrl: options.filesServiceBaseUrl,\n\t\t\t\t\t\texchange: options.exchange,\n\t\t\t\t\t\troutingKey: options.routingKey,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [AntivirusService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AntivirusModuleOptions.html":{"url":"interfaces/AntivirusModuleOptions.html","title":"interface - AntivirusModuleOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AntivirusModuleOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/antivirus/antivirus.module.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n enabled\n \n \n \n \n exchange\n \n \n \n \n filesServiceBaseUrl\n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n enabled\n \n \n \n \n \n \n \n \n enabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n exchange\n \n \n \n \n \n \n \n \n exchange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n filesServiceBaseUrl\n \n \n \n \n \n \n \n \n filesServiceBaseUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n routingKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Module, DynamicModule } from '@nestjs/common';\nimport { AntivirusService } from './antivirus.service';\n\ninterface AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\n@Module({})\nexport class AntivirusModule {\n\tstatic forRoot(options: AntivirusModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: AntivirusModule,\n\t\t\tproviders: [\n\t\t\t\tAntivirusService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'ANTIVIRUS_SERVICE_OPTIONS',\n\t\t\t\t\tuseValue: {\n\t\t\t\t\t\tenabled: options.enabled,\n\t\t\t\t\t\tfilesServiceBaseUrl: options.filesServiceBaseUrl,\n\t\t\t\t\t\texchange: options.exchange,\n\t\t\t\t\t\troutingKey: options.routingKey,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [AntivirusService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AntivirusService.html":{"url":"injectables/AntivirusService.html","title":"injectable - AntivirusService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AntivirusService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/antivirus/antivirus.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n getUrl\n \n \n Public\n Async\n send\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, options: AntivirusServiceOptions)\n \n \n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.service.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n amqpConnection\n \n \n AmqpConnection\n \n \n \n No\n \n \n \n \n options\n \n \n AntivirusServiceOptions\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n getUrl\n \n \n \n \n \n \n \n getUrl(path: string, token: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.service.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n send\n \n \n \n \n \n \n \n send(requestToken: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n requestToken\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { API_VERSION_PATH, FilesStorageInternalActions } from '@src/modules/files-storage/files-storage.const';\n\ninterface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\n@Injectable()\nexport class AntivirusService {\n\tconstructor(\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\t@Inject('ANTIVIRUS_SERVICE_OPTIONS') private readonly options: AntivirusServiceOptions\n\t) {}\n\n\tpublic async send(requestToken: string | undefined): Promise {\n\t\ttry {\n\t\t\tif (this.options.enabled && requestToken) {\n\t\t\t\tconst downloadUri = this.getUrl(FilesStorageInternalActions.downloadBySecurityToken, requestToken);\n\t\t\t\tconst callbackUri = this.getUrl(FilesStorageInternalActions.updateSecurityStatus, requestToken);\n\n\t\t\t\tawait this.amqpConnection.publish(\n\t\t\t\t\tthis.options.exchange,\n\t\t\t\t\tthis.options.routingKey,\n\t\t\t\t\t{ download_uri: downloadUri, callback_uri: callbackUri },\n\t\t\t\t\t{ persistent: true }\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(err, 'AntivirusService:send'));\n\t\t}\n\t}\n\n\tprivate getUrl(path: string, token: string): string {\n\t\tconst newPath = path.replace(':token', encodeURIComponent(token));\n\t\tconst url = new URL(`${API_VERSION_PATH}${newPath}`, this.options.filesServiceBaseUrl);\n\n\t\treturn url.href;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AntivirusServiceOptions.html":{"url":"interfaces/AntivirusServiceOptions.html","title":"interface - AntivirusServiceOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AntivirusServiceOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/antivirus/antivirus.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n enabled\n \n \n \n \n exchange\n \n \n \n \n filesServiceBaseUrl\n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n enabled\n \n \n \n \n \n \n \n \n enabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n exchange\n \n \n \n \n \n \n \n \n exchange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n filesServiceBaseUrl\n \n \n \n \n \n \n \n \n filesServiceBaseUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n routingKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { API_VERSION_PATH, FilesStorageInternalActions } from '@src/modules/files-storage/files-storage.const';\n\ninterface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\n@Injectable()\nexport class AntivirusService {\n\tconstructor(\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\t@Inject('ANTIVIRUS_SERVICE_OPTIONS') private readonly options: AntivirusServiceOptions\n\t) {}\n\n\tpublic async send(requestToken: string | undefined): Promise {\n\t\ttry {\n\t\t\tif (this.options.enabled && requestToken) {\n\t\t\t\tconst downloadUri = this.getUrl(FilesStorageInternalActions.downloadBySecurityToken, requestToken);\n\t\t\t\tconst callbackUri = this.getUrl(FilesStorageInternalActions.updateSecurityStatus, requestToken);\n\n\t\t\t\tawait this.amqpConnection.publish(\n\t\t\t\t\tthis.options.exchange,\n\t\t\t\t\tthis.options.routingKey,\n\t\t\t\t\t{ download_uri: downloadUri, callback_uri: callbackUri },\n\t\t\t\t\t{ persistent: true }\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(err, 'AntivirusService:send'));\n\t\t}\n\t}\n\n\tprivate getUrl(path: string, token: string): string {\n\t\tconst newPath = path.replace(':token', encodeURIComponent(token));\n\t\tconst url = new URL(`${API_VERSION_PATH}${newPath}`, this.options.filesServiceBaseUrl);\n\n\t\treturn url.href;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ApiValidationError.html":{"url":"classes/ApiValidationError.html","title":"class - ApiValidationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ApiValidationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/api-validation.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(validationErrors: ValidationError[])\n \n \n \n \n Defined in apps/server/src/shared/common/error/api-validation.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n validationErrors\n \n \n ValidationError[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus, ValidationError } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class ApiValidationError extends BusinessError {\n\tconstructor(readonly validationErrors: ValidationError[] = []) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'API_VALIDATION_ERROR',\n\t\t\t\ttitle: 'API Validation Error',\n\t\t\t\tdefaultMessage: 'API validation failed, see validationErrors for details',\n\t\t\t},\n\t\t\tHttpStatus.BAD_REQUEST\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ApiValidationErrorResponse.html":{"url":"classes/ApiValidationErrorResponse.html","title":"class - ApiValidationErrorResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ApiValidationErrorResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/dto/api-validation-error.response.ts\n \n\n\n \n Description\n \n \n HTTP response definition for api validation errors.\n\n \n\n \n Extends\n \n \n ErrorResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n validationErrors\n \n \n Readonly\n code\n \n \n Readonly\n Optional\n details\n \n \n Readonly\n message\n \n \n Readonly\n title\n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n extractValidationErrorDetails\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(apiValidationError: ApiValidationError)\n \n \n \n \n Defined in apps/server/src/core/error/dto/api-validation-error.response.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n apiValidationError\n \n \n ApiValidationError\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n validationErrors\n \n \n \n \n \n \n Type : ValidationErrorDetailResponse[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Defined in apps/server/src/core/error/dto/api-validation-error.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:25\n\n \n \n\n \n \n Must match HTTP error code\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:30\n\n \n \n\n \n \n Additional custom details about the error\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:20\n\n \n \n\n \n \n Additional custom information about the error\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:15\n\n \n \n\n \n \n Description about the type, unique by type, format: Sentence case\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:10\n\n \n \n\n \n \n Unambiguous error identifier, format: UPPERCASE_SNAKE_CASE\n\n \n \n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n extractValidationErrorDetails\n \n \n \n \n \n \n \n extractValidationErrorDetails(validationError: ValidationError, parentPropertyPath: string[])\n \n \n\n\n \n \n Defined in apps/server/src/core/error/dto/api-validation-error.response.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n validationError\n \n ValidationError\n \n\n \n No\n \n\n \n \n\n \n \n parentPropertyPath\n \n string[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ValidationError } from '@nestjs/common';\nimport { ApiValidationError } from '@shared/common';\nimport { ErrorResponse } from './error.response';\nimport { ValidationErrorDetailResponse } from './validation-error-detail.response';\n\n/**\n * HTTP response definition for api validation errors.\n */\nexport class ApiValidationErrorResponse extends ErrorResponse {\n\tvalidationErrors: ValidationErrorDetailResponse[] = [];\n\n\tconstructor(apiValidationError: ApiValidationError) {\n\t\tconst { type, title, message, code } = apiValidationError;\n\t\tsuper(type, title, message, code);\n\n\t\tapiValidationError.validationErrors.forEach((validationError: ValidationError) => {\n\t\t\tthis.extractValidationErrorDetails(validationError);\n\t\t});\n\t}\n\n\tprivate extractValidationErrorDetails(validationError: ValidationError, parentPropertyPath: string[] = []): void {\n\t\tconst propertyPath: string[] = [...parentPropertyPath];\n\t\tif (validationError.property) {\n\t\t\tpropertyPath.push(validationError.property);\n\t\t}\n\n\t\tif (validationError.constraints) {\n\t\t\tconst errors: string[] = Object.values(validationError.constraints);\n\t\t\tthis.validationErrors.push(new ValidationErrorDetailResponse(propertyPath, errors));\n\t\t}\n\n\t\tif (validationError.children) {\n\t\t\tvalidationError.children.forEach((childError: ValidationError) =>\n\t\t\t\tthis.extractValidationErrorDetails(childError, propertyPath)\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AppStartInfo.html":{"url":"interfaces/AppStartInfo.html","title":"interface - AppStartInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AppStartInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/apps/helpers/app-start-loggable.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n appName\n \n \n \n Optional\n \n basePath\n \n \n \n Optional\n \n mountsDescription\n \n \n \n Optional\n \n port\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n appName\n \n \n \n \n \n \n \n \n appName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n basePath\n \n \n \n \n \n \n \n \n basePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n mountsDescription\n \n \n \n \n \n \n \n \n mountsDescription: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n port\n \n \n \n \n \n \n \n \n port: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Loggable, LogMessage, LogMessageData } from '@src/core/logger';\n\ninterface AppStartInfo {\n\tappName: string;\n\tport?: number;\n\tbasePath?: string;\n\tmountsDescription?: string;\n}\n\nexport class AppStartLoggable implements Loggable {\n\tconstructor(private readonly info: AppStartInfo) {}\n\n\tgetLogMessage(): LogMessage {\n\t\tconst data: LogMessageData = { appName: this.info.appName };\n\n\t\tif (this.info.port !== undefined) {\n\t\t\tdata.port = this.info.port;\n\t\t}\n\n\t\tif (this.info.basePath !== undefined) {\n\t\t\tdata.basePath = this.info.basePath;\n\t\t}\n\n\t\tif (this.info.mountsDescription !== undefined) {\n\t\t\tdata.mountsDescription = this.info.mountsDescription;\n\t\t}\n\n\t\treturn {\n\t\t\tmessage: 'Successfully started listening...',\n\t\t\tdata,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AppStartLoggable.html":{"url":"classes/AppStartLoggable.html","title":"class - AppStartLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AppStartLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/apps/helpers/app-start-loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(info: AppStartInfo)\n \n \n \n \n Defined in apps/server/src/apps/helpers/app-start-loggable.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n info\n \n \n AppStartInfo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/apps/helpers/app-start-loggable.ts:13\n \n \n\n\n \n \n\n \n Returns : LogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Loggable, LogMessage, LogMessageData } from '@src/core/logger';\n\ninterface AppStartInfo {\n\tappName: string;\n\tport?: number;\n\tbasePath?: string;\n\tmountsDescription?: string;\n}\n\nexport class AppStartLoggable implements Loggable {\n\tconstructor(private readonly info: AppStartInfo) {}\n\n\tgetLogMessage(): LogMessage {\n\t\tconst data: LogMessageData = { appName: this.info.appName };\n\n\t\tif (this.info.port !== undefined) {\n\t\t\tdata.port = this.info.port;\n\t\t}\n\n\t\tif (this.info.basePath !== undefined) {\n\t\t\tdata.basePath = this.info.basePath;\n\t\t}\n\n\t\tif (this.info.mountsDescription !== undefined) {\n\t\t\tdata.mountsDescription = this.info.mountsDescription;\n\t\t}\n\n\t\treturn {\n\t\t\tmessage: 'Successfully started listening...',\n\t\t\tdata,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AppendedAttachment.html":{"url":"interfaces/AppendedAttachment.html","title":"interface - AppendedAttachment","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AppendedAttachment\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n \n Extends\n \n \n MailAttachment\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contentDisposition\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contentDisposition\n \n \n \n \n \n \n \n \n contentDisposition: \n\n \n \n\n\n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AuthenticationApiModule.html":{"url":"modules/AuthenticationApiModule.html","title":"module - AuthenticationApiModule","body":"\n \n\n\n\n\n Modules\n AuthenticationApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AuthenticationApiModule\n\n\n\ncluster_AuthenticationApiModule_imports\n\n\n\ncluster_AuthenticationApiModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nAuthenticationApiModule\n\nAuthenticationApiModule\n\nAuthenticationApiModule -->\n\nAuthenticationModule->AuthenticationApiModule\n\n\n\n\n\nLoginUc\n\nLoginUc\n\nAuthenticationApiModule -->\n\nLoginUc->AuthenticationApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/authentication/authentication-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n LoginUc\n \n \n \n \n Controllers\n \n \n LoginController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthenticationModule } from './authentication.module';\nimport { LoginController } from './controllers/login.controller';\nimport { LoginUc } from './uc/login.uc';\n\n@Module({\n\timports: [AuthenticationModule],\n\tproviders: [LoginUc],\n\tcontrollers: [LoginController],\n\texports: [],\n})\nexport class AuthenticationApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AuthenticationCodeGrantTokenRequest.html":{"url":"classes/AuthenticationCodeGrantTokenRequest.html","title":"class - AuthenticationCodeGrantTokenRequest","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthenticationCodeGrantTokenRequest\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n client_id\n \n \n client_secret\n \n \n code\n \n \n grant_type\n \n \n redirect_uri\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AuthenticationCodeGrantTokenRequest)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n AuthenticationCodeGrantTokenRequest\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n client_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n client_secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n grant_type\n \n \n \n \n \n \n Type : OAuthGrantType.AUTHORIZATION_CODE_GRANT\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n redirect_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { OAuthGrantType } from '../../interface/oauth-grant-type.enum';\n\nexport class AuthenticationCodeGrantTokenRequest {\n\tclient_id: string;\n\n\tclient_secret: string;\n\n\tredirect_uri: string;\n\n\tgrant_type: OAuthGrantType.AUTHORIZATION_CODE_GRANT;\n\n\tcode: string;\n\n\tconstructor(props: AuthenticationCodeGrantTokenRequest) {\n\t\tthis.client_id = props.client_id;\n\t\tthis.client_secret = props.client_secret;\n\t\tthis.redirect_uri = props.redirect_uri;\n\t\tthis.grant_type = props.grant_type;\n\t\tthis.code = props.code;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AuthenticationModule.html":{"url":"modules/AuthenticationModule.html","title":"module - AuthenticationModule","body":"\n \n\n\n\n\n Modules\n AuthenticationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AuthenticationModule\n\n\n\ncluster_AuthenticationModule_imports\n\n\n\ncluster_AuthenticationModule_exports\n\n\n\ncluster_AuthenticationModule_providers\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\nAuthenticationModule -->\n\nAccountModule->AuthenticationModule\n\n\n\n\n\nCacheWrapperModule\n\nCacheWrapperModule\n\nAuthenticationModule -->\n\nCacheWrapperModule->AuthenticationModule\n\n\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\nAuthenticationModule -->\n\nIdentityManagementModule->AuthenticationModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAuthenticationModule -->\n\nLoggerModule->AuthenticationModule\n\n\n\n\n\nOauthModule\n\nOauthModule\n\nAuthenticationModule -->\n\nOauthModule->AuthenticationModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nAuthenticationModule -->\n\nRoleModule->AuthenticationModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nAuthenticationModule -->\n\nSystemModule->AuthenticationModule\n\n\n\n\n\nAuthenticationService \n\nAuthenticationService \n\nAuthenticationService -->\n\nAuthenticationModule->AuthenticationService \n\n\n\n\n\nAuthenticationService\n\nAuthenticationService\n\nAuthenticationModule -->\n\nAuthenticationService->AuthenticationModule\n\n\n\n\n\nJwtStrategy\n\nJwtStrategy\n\nAuthenticationModule -->\n\nJwtStrategy->AuthenticationModule\n\n\n\n\n\nJwtValidationAdapter\n\nJwtValidationAdapter\n\nAuthenticationModule -->\n\nJwtValidationAdapter->AuthenticationModule\n\n\n\n\n\nLdapService\n\nLdapService\n\nAuthenticationModule -->\n\nLdapService->AuthenticationModule\n\n\n\n\n\nLdapStrategy\n\nLdapStrategy\n\nAuthenticationModule -->\n\nLdapStrategy->AuthenticationModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nAuthenticationModule -->\n\nLegacySchoolRepo->AuthenticationModule\n\n\n\n\n\nLocalStrategy\n\nLocalStrategy\n\nAuthenticationModule -->\n\nLocalStrategy->AuthenticationModule\n\n\n\n\n\nOauth2Strategy\n\nOauth2Strategy\n\nAuthenticationModule -->\n\nOauth2Strategy->AuthenticationModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nAuthenticationModule -->\n\nSystemRepo->AuthenticationModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAuthenticationModule -->\n\nUserRepo->AuthenticationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/authentication/authentication.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n AuthenticationService\n \n \n JwtStrategy\n \n \n JwtValidationAdapter\n \n \n LdapService\n \n \n LdapStrategy\n \n \n LegacySchoolRepo\n \n \n LocalStrategy\n \n \n Oauth2Strategy\n \n \n SystemRepo\n \n \n UserRepo\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n CacheWrapperModule\n \n \n IdentityManagementModule\n \n \n LoggerModule\n \n \n OauthModule\n \n \n RoleModule\n \n \n SystemModule\n \n \n \n \n Exports\n \n \n AuthenticationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { JwtModule, JwtModuleOptions } from '@nestjs/jwt';\nimport { PassportModule } from '@nestjs/passport';\nimport { CacheWrapperModule } from '@shared/infra/cache';\nimport { IdentityManagementModule } from '@shared/infra/identity-management';\nimport { LegacySchoolRepo, SystemRepo, UserRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@src/modules/account';\nimport { OauthModule } from '@src/modules/oauth/oauth.module';\nimport { RoleModule } from '@src/modules/role';\nimport { SystemModule } from '@src/modules/system';\nimport { Algorithm, SignOptions } from 'jsonwebtoken';\nimport { jwtConstants } from './constants';\nimport { AuthenticationService } from './services/authentication.service';\nimport { LdapService } from './services/ldap.service';\nimport { JwtValidationAdapter } from './strategy/jwt-validation.adapter';\nimport { JwtStrategy } from './strategy/jwt.strategy';\nimport { LdapStrategy } from './strategy/ldap.strategy';\nimport { LocalStrategy } from './strategy/local.strategy';\nimport { Oauth2Strategy } from './strategy/oauth2.strategy';\n\n// values copied from Algorithm definition. Type does not exist at runtime and can't be checked anymore otherwise\nconst algorithms = [\n\t'HS256',\n\t'HS384',\n\t'HS512',\n\t'RS256',\n\t'RS384',\n\t'RS512',\n\t'ES256',\n\t'ES384',\n\t'ES512',\n\t'PS256',\n\t'PS384',\n\t'PS512',\n\t'none',\n];\n\nif (!algorithms.includes(jwtConstants.jwtOptions.algorithm)) {\n\tthrow new Error(`${jwtConstants.jwtOptions.algorithm} is not a valid JWT signing algorithm`);\n}\nconst signAlgorithm = jwtConstants.jwtOptions.algorithm as Algorithm;\n\nconst signOptions: SignOptions = {\n\talgorithm: signAlgorithm,\n\taudience: jwtConstants.jwtOptions.audience,\n\texpiresIn: jwtConstants.jwtOptions.expiresIn,\n\tissuer: jwtConstants.jwtOptions.issuer,\n\theader: { ...jwtConstants.jwtOptions.header, alg: signAlgorithm },\n};\nconst jwtModuleOptions: JwtModuleOptions = {\n\tsecret: jwtConstants.secret,\n\tsignOptions,\n\tverifyOptions: signOptions,\n};\n@Module({\n\timports: [\n\t\tLoggerModule,\n\t\tPassportModule,\n\t\tJwtModule.register(jwtModuleOptions),\n\t\tAccountModule,\n\t\tSystemModule,\n\t\tOauthModule,\n\t\tRoleModule,\n\t\tIdentityManagementModule,\n\t\tCacheWrapperModule,\n\t],\n\tproviders: [\n\t\tJwtStrategy,\n\t\tJwtValidationAdapter,\n\t\tUserRepo,\n\t\tSystemRepo,\n\t\tLegacySchoolRepo,\n\t\tLocalStrategy,\n\t\tAuthenticationService,\n\t\tLdapService,\n\t\tLdapStrategy,\n\t\tOauth2Strategy,\n\t],\n\texports: [AuthenticationService],\n})\nexport class AuthenticationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthenticationResponse.html":{"url":"interfaces/AuthenticationResponse.html","title":"interface - AuthenticationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthenticationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/test-api-client.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accessToken\n \n \n \n \n \n \n \n \n accessToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { INestApplication } from '@nestjs/common';\nimport { Account } from '@shared/domain';\nimport supertest, { Response } from 'supertest';\nimport { defaultTestPassword } from './factory/account.factory';\n\ninterface AuthenticationResponse {\n\taccessToken: string;\n}\n\nconst headerConst = {\n\taccept: 'accept',\n\tjson: 'application/json',\n};\n\nconst testReqestConst = {\n\tprefix: 'Bearer',\n\tloginPath: '/authentication/local',\n\taccessToken: 'accessToken',\n\terrorMessage: 'TestApiClient: Can not cast to local AutenticationResponse:',\n};\n\n/**\n * Note res.cookie is not supported atm, feel free to add this\n */\nexport class TestApiClient {\n\tprivate readonly app: INestApplication;\n\n\tprivate readonly baseRoute: string;\n\n\tprivate readonly formattedJwt: string;\n\n\tconstructor(app: INestApplication, baseRoute: string, jwt?: string) {\n\t\tthis.app = app;\n\t\tthis.baseRoute = this.checkAndAddPrefix(baseRoute);\n\t\tthis.formattedJwt = `${testReqestConst.prefix} ${jwt || ''}`;\n\t}\n\n\tpublic get(subPath?: string): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer()).get(path).set('authorization', this.formattedJwt);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic delete(subPath?: string): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.delete(path)\n\t\t\t.set('authorization', this.formattedJwt);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic put(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.put(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic patch(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.patch(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic post(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.post(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic async login(account: Account): Promise {\n\t\tconst path = testReqestConst.loginPath;\n\t\tconst params: { username: string; password: string } = {\n\t\t\tusername: account.username,\n\t\t\tpassword: defaultTestPassword,\n\t\t};\n\t\tconst response = await supertest(this.app.getHttpServer())\n\t\t\t.post(path)\n\t\t\t.set(headerConst.accept, headerConst.json)\n\t\t\t.send(params);\n\n\t\tconst jwtFromResponse = this.getJwtFromResponse(response);\n\n\t\treturn new (this.constructor as new (app: INestApplication, baseRoute: string, jwt?: string) => this)(\n\t\t\tthis.app,\n\t\t\tthis.baseRoute,\n\t\t\tjwtFromResponse\n\t\t);\n\t}\n\n\tprivate isSlash(inputPath: string, pos: number): boolean {\n\t\tconst isSlash = inputPath.charAt(pos) === '/';\n\n\t\treturn isSlash;\n\t}\n\n\tprivate checkAndAddPrefix(inputPath = '/'): string {\n\t\tlet path = '';\n\t\tif (!this.isSlash(inputPath, 0)) {\n\t\t\tpath = '/';\n\t\t}\n\t\tpath += inputPath;\n\n\t\treturn path;\n\t}\n\n\tprivate cleanupPath(inputPath: string): string {\n\t\tlet path = inputPath;\n\t\tif (this.isSlash(path, 0) && this.isSlash(path, 1)) {\n\t\t\tpath = path.slice(1);\n\t\t}\n\n\t\treturn path;\n\t}\n\n\tprivate getPath(routeNameInput = ''): string {\n\t\tconst routeName = this.checkAndAddPrefix(routeNameInput);\n\t\tconst path = this.cleanupPath(this.baseRoute + routeName);\n\n\t\treturn path;\n\t}\n\n\tprivate isAuthenticationResponse(body: unknown): body is AuthenticationResponse {\n\t\tconst isAuthenticationResponse = typeof body === 'object' && body !== null && testReqestConst.accessToken in body;\n\n\t\treturn isAuthenticationResponse;\n\t}\n\n\tprivate getJwtFromResponse(response: Response): string {\n\t\tif (!this.isAuthenticationResponse(response.body)) {\n\t\t\tconst body = JSON.stringify(response.body);\n\t\t\tthrow new Error(`${testReqestConst.errorMessage} ${body}`);\n\t\t}\n\t\tconst authenticationResponse = response.body;\n\t\tconst jwt = authenticationResponse.accessToken;\n\n\t\treturn jwt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AuthenticationService.html":{"url":"injectables/AuthenticationService.html","title":"injectable - AuthenticationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AuthenticationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/services/authentication.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n checkBrutForce\n \n \n Async\n generateJwt\n \n \n Async\n loadAccount\n \n \n normalizePassword\n \n \n normalizeUsername\n \n \n Async\n removeJwtFromWhitelist\n \n \n Async\n updateLastTriedFailedLogin\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(jwtService: JwtService, jwtValidationAdapter: JwtValidationAdapter, accountService: AccountService, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwtService\n \n \n JwtService\n \n \n \n No\n \n \n \n \n jwtValidationAdapter\n \n \n JwtValidationAdapter\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n checkBrutForce\n \n \n \n \n \n \ncheckBrutForce(account: AccountDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n generateJwt\n \n \n \n \n \n \n \n generateJwt(user: CreateJwtPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n CreateJwtPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loadAccount\n \n \n \n \n \n \n \n loadAccount(username: string, systemId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n normalizePassword\n \n \n \n \n \n \nnormalizePassword(password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:83\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n normalizeUsername\n \n \n \n \n \n \nnormalizeUsername(username: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeJwtFromWhitelist\n \n \n \n \n \n \n \n removeJwtFromWhitelist(jwtToken: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwtToken\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateLastTriedFailedLogin\n \n \n \n \n \n \n \n updateLastTriedFailedLogin(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { JwtService } from '@nestjs/jwt';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { JwtValidationAdapter } from '@src/modules/authentication/strategy/jwt-validation.adapter';\nimport type { IServerConfig } from '@src/modules/server';\nimport { randomUUID } from 'crypto';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { BruteForceError } from '../errors/brute-force.error';\nimport { UnauthorizedLoggableException } from '../errors/unauthorized.loggable-exception';\nimport { CreateJwtPayload } from '../interface/jwt-payload';\nimport { LoginDto } from '../uc/dto';\n\n@Injectable()\nexport class AuthenticationService {\n\tconstructor(\n\t\tprivate readonly jwtService: JwtService,\n\t\tprivate readonly jwtValidationAdapter: JwtValidationAdapter,\n\t\tprivate readonly accountService: AccountService,\n\t\tprivate readonly configService: ConfigService\n\t) {}\n\n\tasync loadAccount(username: string, systemId?: string): Promise {\n\t\tlet account: AccountDto | undefined | null;\n\n\t\tif (systemId) {\n\t\t\taccount = await this.accountService.findByUsernameAndSystemId(username, systemId);\n\t\t} else {\n\t\t\tconst [accounts] = await this.accountService.searchByUsernameExactMatch(username);\n\t\t\taccount = accounts.find((foundAccount) => foundAccount.systemId == null);\n\t\t}\n\n\t\tif (!account) {\n\t\t\tthrow new UnauthorizedLoggableException(username, systemId);\n\t\t}\n\n\t\treturn account;\n\t}\n\n\tasync generateJwt(user: CreateJwtPayload): Promise {\n\t\tconst jti = randomUUID();\n\n\t\tconst result: LoginDto = new LoginDto({\n\t\t\taccessToken: this.jwtService.sign(user, {\n\t\t\t\tsubject: user.accountId,\n\t\t\t\tjwtid: jti,\n\t\t\t}),\n\t\t});\n\n\t\tawait this.jwtValidationAdapter.addToWhitelist(user.accountId, jti);\n\n\t\treturn result;\n\t}\n\n\tasync removeJwtFromWhitelist(jwtToken: string): Promise {\n\t\tconst decodedJwt: JwtPayload | null = jwt.decode(jwtToken, { json: true });\n\n\t\tif (decodedJwt && decodedJwt.jti && decodedJwt.accountId && typeof decodedJwt.accountId === 'string') {\n\t\t\tawait this.jwtValidationAdapter.removeFromWhitelist(decodedJwt.accountId, decodedJwt.jti);\n\t\t}\n\t}\n\n\tcheckBrutForce(account: AccountDto): void {\n\t\tif (account.lasttriedFailedLogin) {\n\t\t\tconst timeDifference = (new Date().getTime() - account.lasttriedFailedLogin.getTime()) / 1000;\n\n\t\t\tif (timeDifference ('LOGIN_BLOCK_TIME')) {\n\t\t\t\tconst timeToWait = this.configService.get('LOGIN_BLOCK_TIME') - Math.ceil(timeDifference);\n\t\t\t\tthrow new BruteForceError(timeToWait, `Brute Force Prevention! Time to wait: ${timeToWait} s`);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync updateLastTriedFailedLogin(id: string): Promise {\n\t\tawait this.accountService.updateLastTriedFailedLogin(id, new Date());\n\t}\n\n\tnormalizeUsername(username: string): string {\n\t\treturn username.trim().toLowerCase();\n\t}\n\n\tnormalizePassword(password: string): string {\n\t\treturn password.trim();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthorizableObject.html":{"url":"interfaces/AuthorizableObject.html","title":"interface - AuthorizableObject","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthorizableObject\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domain-object.ts\n \n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from './types';\n\nexport interface AuthorizableObject {\n\tget id(): EntityId;\n}\n\nexport abstract class DomainObject implements AuthorizableObject {\n\tprotected props: T;\n\n\tconstructor(props: T) {\n\t\tthis.props = props;\n\t}\n\n\tpublic get id(): EntityId {\n\t\treturn this.props.id;\n\t}\n\n\tpublic getProps(): T {\n\t\tconst copyProps = { ...this.props };\n\n\t\treturn copyProps;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthorizationContext.html":{"url":"interfaces/AuthorizationContext.html","title":"interface - AuthorizationContext","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthorizationContext\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/types/authorization-context.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n action\n \n \n \n \n requiredPermissions\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n action\n \n \n \n \n \n \n \n \n action: Action\n\n \n \n\n\n \n \n Type : Action\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n requiredPermissions\n \n \n \n \n \n \n \n \n requiredPermissions: Permission[]\n\n \n \n\n\n \n \n Type : Permission[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Permission } from '@shared/domain';\nimport { Action } from './action.enum';\n\nexport interface AuthorizationContext {\n\taction: Action;\n\trequiredPermissions: Permission[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AuthorizationContextBuilder.html":{"url":"classes/AuthorizationContextBuilder.html","title":"class - AuthorizationContextBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthorizationContextBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/authorization-context.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n build\n \n \n Static\n read\n \n \n Static\n write\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n build\n \n \n \n \n \n \n \n build(requiredPermissions: Permission[], action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization-context.builder.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n requiredPermissions\n \n Permission[]\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizationContext\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n read\n \n \n \n \n \n \n \n read(requiredPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization-context.builder.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n requiredPermissions\n \n Permission[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizationContext\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n write\n \n \n \n \n \n \n \n write(requiredPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization-context.builder.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n requiredPermissions\n \n Permission[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizationContext\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { AuthorizationContext, Action } from './types';\n\nexport class AuthorizationContextBuilder {\n\tprivate static build(requiredPermissions: Permission[], action: Action): AuthorizationContext {\n\t\tconst context = { requiredPermissions, action };\n\n\t\treturn context;\n\t}\n\n\tstatic write(requiredPermissions: Permission[]): AuthorizationContext {\n\t\tconst context = this.build(requiredPermissions, Action.write);\n\n\t\treturn context;\n\t}\n\n\tstatic read(requiredPermissions: Permission[]): AuthorizationContext {\n\t\tconst context = this.build(requiredPermissions, Action.read);\n\n\t\treturn context;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AuthorizationError.html":{"url":"classes/AuthorizationError.html","title":"class - AuthorizationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthorizationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/authorization.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message?: string, details?: Record)\n \n \n \n \n Defined in apps/server/src/shared/common/error/authorization.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n Yes\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class AuthorizationError extends BusinessError {\n\tconstructor(message?: string, details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'AUTHORIZATION_OPERATION',\n\t\t\t\ttitle: 'Authorization Error',\n\t\t\t\tdefaultMessage: message ?? 'The action could not be authorized.',\n\t\t\t},\n\t\t\tHttpStatus.UNAUTHORIZED,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AuthorizationHelper.html":{"url":"injectables/AuthorizationHelper.html","title":"injectable - AuthorizationHelper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AuthorizationHelper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/authorization.helper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasAccessToEntity\n \n \n Public\n hasAllPermissions\n \n \n Public\n hasAllPermissionsByRole\n \n \n Public\n hasOneOfPermissions\n \n \n Private\n isUserReferenced\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasAccessToEntity\n \n \n \n \n \n \n \n hasAccessToEntity(user: User, entity: T, userRefProps: K[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:32\n \n \n\n \n \n Type parameters :\n \n T\n K\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n userRefProps\n \n K[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasAllPermissions\n \n \n \n \n \n \n \n hasAllPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasAllPermissionsByRole\n \n \n \n \n \n \n \n hasAllPermissionsByRole(role: Role, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n Role\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasOneOfPermissions\n \n \n \n \n \n \n \n hasOneOfPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isUserReferenced\n \n \n \n \n \n \n \n isUserReferenced(user: User, entity: T, prop: K)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:38\n \n \n\n \n \n Type parameters :\n \n T\n K\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n prop\n \n K\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Collection } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { Role, User } from '@shared/domain/entity';\n\n@Injectable()\nexport class AuthorizationHelper {\n\tpublic hasAllPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\tconst usersPermissions = user.resolvePermissions();\n\t\tconst hasAllPermissions = requiredPermissions.every((p) => usersPermissions.includes(p));\n\n\t\treturn hasAllPermissions;\n\t}\n\n\tpublic hasAllPermissionsByRole(role: Role, requiredPermissions: string[]): boolean {\n\t\tconst permissions = role.resolvePermissions();\n\t\tconst hasAllPermissions = requiredPermissions.every((p) => permissions.includes(p));\n\n\t\treturn hasAllPermissions;\n\t}\n\n\tpublic hasOneOfPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\t// TODO: Wouldn't it make more sense to return true for an empty permissions-array?\n\t\tif (!Array.isArray(requiredPermissions) || requiredPermissions.length === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst permissions = user.resolvePermissions();\n\t\tconst hasPermission = requiredPermissions.some((p) => permissions.includes(p));\n\n\t\treturn hasPermission;\n\t}\n\n\tpublic hasAccessToEntity(user: User, entity: T, userRefProps: K[]): boolean {\n\t\tconst result = userRefProps.some((prop) => this.isUserReferenced(user, entity, prop));\n\n\t\treturn result;\n\t}\n\n\tprivate isUserReferenced(user: User, entity: T, prop: K) {\n\t\tlet result = false;\n\n\t\tconst reference = entity[prop];\n\n\t\tif (reference instanceof Collection) {\n\t\t\tresult = reference.contains(user);\n\t\t} else if (reference instanceof User) {\n\t\t\tresult = reference === user;\n\t\t} else {\n\t\t\tresult = (reference as unknown as string) === user.id;\n\t\t}\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthorizationLoaderService.html":{"url":"interfaces/AuthorizationLoaderService.html","title":"interface - AuthorizationLoaderService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthorizationLoaderService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/types/authorization-loader-service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n findById\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n findById\n \n \n \n \n \n \nfindById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/types/authorization-loader-service.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BaseDO, EntityId } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object'; // fix import when it is avaible\n\nexport interface AuthorizationLoaderService {\n\tfindById(id: EntityId): Promise;\n}\n\nexport interface AuthorizationLoaderServiceGeneric\n\textends AuthorizationLoaderService {\n\tfindById(id: EntityId): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthorizationLoaderServiceGeneric.html":{"url":"interfaces/AuthorizationLoaderServiceGeneric.html","title":"interface - AuthorizationLoaderServiceGeneric","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthorizationLoaderServiceGeneric\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/types/authorization-loader-service.ts\n \n\n\n\n \n Extends\n \n \n AuthorizationLoaderService\n \n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n findById\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n findById\n \n \n \n \n \n \nfindById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/types/authorization-loader-service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BaseDO, EntityId } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object'; // fix import when it is avaible\n\nexport interface AuthorizationLoaderService {\n\tfindById(id: EntityId): Promise;\n}\n\nexport interface AuthorizationLoaderServiceGeneric\n\textends AuthorizationLoaderService {\n\tfindById(id: EntityId): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AuthorizationModule.html":{"url":"modules/AuthorizationModule.html","title":"module - AuthorizationModule","body":"\n \n\n\n\n\n Modules\n AuthorizationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AuthorizationModule\n\n\n\ncluster_AuthorizationModule_exports\n\n\n\ncluster_AuthorizationModule_providers\n\n\n\ncluster_AuthorizationModule_imports\n\n\n\n\nFeathersModule\n\nFeathersModule\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nAuthorizationModule -->\n\nFeathersModule->AuthorizationModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nAuthorizationModule -->\n\nLegacySchoolModule->AuthorizationModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAuthorizationModule -->\n\nLoggerModule->AuthorizationModule\n\n\n\n\n\nAuthorizationService \n\nAuthorizationService \n\nAuthorizationService -->\n\nAuthorizationModule->AuthorizationService \n\n\n\n\n\nFeathersAuthorizationService \n\nFeathersAuthorizationService \n\nFeathersAuthorizationService -->\n\nAuthorizationModule->FeathersAuthorizationService \n\n\n\n\n\nAuthorizationHelper\n\nAuthorizationHelper\n\nAuthorizationModule -->\n\nAuthorizationHelper->AuthorizationModule\n\n\n\n\n\nAuthorizationService\n\nAuthorizationService\n\nAuthorizationModule -->\n\nAuthorizationService->AuthorizationModule\n\n\n\n\n\nBoardDoRule\n\nBoardDoRule\n\nAuthorizationModule -->\n\nBoardDoRule->AuthorizationModule\n\n\n\n\n\nContextExternalToolRule\n\nContextExternalToolRule\n\nAuthorizationModule -->\n\nContextExternalToolRule->AuthorizationModule\n\n\n\n\n\nCourseGroupRepo\n\nCourseGroupRepo\n\nAuthorizationModule -->\n\nCourseGroupRepo->AuthorizationModule\n\n\n\n\n\nCourseGroupRule\n\nCourseGroupRule\n\nAuthorizationModule -->\n\nCourseGroupRule->AuthorizationModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nAuthorizationModule -->\n\nCourseRepo->AuthorizationModule\n\n\n\n\n\nCourseRule\n\nCourseRule\n\nAuthorizationModule -->\n\nCourseRule->AuthorizationModule\n\n\n\n\n\nFeathersAuthProvider\n\nFeathersAuthProvider\n\nAuthorizationModule -->\n\nFeathersAuthProvider->AuthorizationModule\n\n\n\n\n\nFeathersAuthorizationService\n\nFeathersAuthorizationService\n\nAuthorizationModule -->\n\nFeathersAuthorizationService->AuthorizationModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nAuthorizationModule -->\n\nLegacySchoolRepo->AuthorizationModule\n\n\n\n\n\nLegacySchoolRule\n\nLegacySchoolRule\n\nAuthorizationModule -->\n\nLegacySchoolRule->AuthorizationModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nAuthorizationModule -->\n\nLessonRepo->AuthorizationModule\n\n\n\n\n\nLessonRule\n\nLessonRule\n\nAuthorizationModule -->\n\nLessonRule->AuthorizationModule\n\n\n\n\n\nReferenceLoader\n\nReferenceLoader\n\nAuthorizationModule -->\n\nReferenceLoader->AuthorizationModule\n\n\n\n\n\nRuleManager\n\nRuleManager\n\nAuthorizationModule -->\n\nRuleManager->AuthorizationModule\n\n\n\n\n\nSchoolExternalToolRepo\n\nSchoolExternalToolRepo\n\nAuthorizationModule -->\n\nSchoolExternalToolRepo->AuthorizationModule\n\n\n\n\n\nSchoolExternalToolRule\n\nSchoolExternalToolRule\n\nAuthorizationModule -->\n\nSchoolExternalToolRule->AuthorizationModule\n\n\n\n\n\nSubmissionRepo\n\nSubmissionRepo\n\nAuthorizationModule -->\n\nSubmissionRepo->AuthorizationModule\n\n\n\n\n\nSubmissionRule\n\nSubmissionRule\n\nAuthorizationModule -->\n\nSubmissionRule->AuthorizationModule\n\n\n\n\n\nTaskRepo\n\nTaskRepo\n\nAuthorizationModule -->\n\nTaskRepo->AuthorizationModule\n\n\n\n\n\nTaskRule\n\nTaskRule\n\nAuthorizationModule -->\n\nTaskRule->AuthorizationModule\n\n\n\n\n\nTeamRule\n\nTeamRule\n\nAuthorizationModule -->\n\nTeamRule->AuthorizationModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nAuthorizationModule -->\n\nTeamsRepo->AuthorizationModule\n\n\n\n\n\nUserLoginMigrationRule\n\nUserLoginMigrationRule\n\nAuthorizationModule -->\n\nUserLoginMigrationRule->AuthorizationModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAuthorizationModule -->\n\nUserRepo->AuthorizationModule\n\n\n\n\n\nUserRule\n\nUserRule\n\nAuthorizationModule -->\n\nUserRule->AuthorizationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/authorization/authorization.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n AuthorizationHelper\n \n \n AuthorizationService\n \n \n BoardDoRule\n \n \n ContextExternalToolRule\n \n \n CourseGroupRepo\n \n \n CourseGroupRule\n \n \n CourseRepo\n \n \n CourseRule\n \n \n FeathersAuthProvider\n \n \n FeathersAuthorizationService\n \n \n LegacySchoolRepo\n \n \n LegacySchoolRule\n \n \n LessonRepo\n \n \n LessonRule\n \n \n ReferenceLoader\n \n \n RuleManager\n \n \n SchoolExternalToolRepo\n \n \n SchoolExternalToolRule\n \n \n SubmissionRepo\n \n \n SubmissionRule\n \n \n TaskRepo\n \n \n TaskRule\n \n \n TeamRule\n \n \n TeamsRepo\n \n \n UserLoginMigrationRule\n \n \n UserRepo\n \n \n UserRule\n \n \n \n \n Imports\n \n \n FeathersModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n AuthorizationService\n \n \n FeathersAuthorizationService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { ALL_RULES } from '@shared/domain/rules';\nimport { FeathersModule } from '@shared/infra/feathers';\nimport {\n\tCourseGroupRepo,\n\tCourseRepo,\n\tLessonRepo,\n\tSchoolExternalToolRepo,\n\tLegacySchoolRepo,\n\tSubmissionRepo,\n\tTaskRepo,\n\tTeamsRepo,\n\tUserRepo,\n} from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { ToolModule } from '@src/modules/tool';\nimport { BoardModule } from '../board';\nimport { AuthorizationHelper } from './authorization.helper';\nimport { AuthorizationService } from './authorization.service';\nimport { FeathersAuthorizationService, FeathersAuthProvider } from './feathers';\nimport { ReferenceLoader } from './reference.loader';\nimport { RuleManager } from './rule-manager';\n\n@Module({\n\t// TODO: remove forwardRef to TooModule N21-1055\n\timports: [\n\t\tFeathersModule,\n\t\tLoggerModule,\n\t\tLegacySchoolModule,\n\t\tforwardRef(() => ToolModule),\n\t\tforwardRef(() => BoardModule),\n\t],\n\tproviders: [\n\t\tFeathersAuthorizationService,\n\t\tFeathersAuthProvider,\n\t\tAuthorizationService,\n\t\t...ALL_RULES,\n\t\tReferenceLoader,\n\t\tUserRepo,\n\t\tCourseRepo,\n\t\tCourseGroupRepo,\n\t\tTaskRepo,\n\t\tLegacySchoolRepo,\n\t\tLessonRepo,\n\t\tTeamsRepo,\n\t\tSubmissionRepo,\n\t\tSchoolExternalToolRepo,\n\t\tRuleManager,\n\t\tAuthorizationHelper,\n\t],\n\texports: [FeathersAuthorizationService, AuthorizationService],\n})\nexport class AuthorizationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AuthorizationParams.html":{"url":"classes/AuthorizationParams.html","title":"class - AuthorizationParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthorizationParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/authorization.params.ts\n \n\n \n Deprecated\n \n \n \n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n code\n \n \n \n \n Optional\n error\n \n \n \n \n Optional\n error_description\n \n \n \n \n Optional\n error_uri\n \n \n \n \n state\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : SSOAuthenticationError\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SSOAuthenticationError)\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:27\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';\nimport { SSOAuthenticationError } from '../../interface/sso-authentication-error.enum';\n\n/**\n * @deprecated\n */\nexport class AuthorizationParams {\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tcode?: string;\n\n\t@IsOptional()\n\t@IsEnum(SSOAuthenticationError)\n\terror?: SSOAuthenticationError;\n\n\t@IsOptional()\n\t@IsString()\n\terror_description?: string;\n\n\t@IsOptional()\n\t@IsString()\n\terror_uri?: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\tstate!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AuthorizationService.html":{"url":"injectables/AuthorizationService.html","title":"injectable - AuthorizationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AuthorizationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/authorization.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n checkAllPermissions\n \n \n Public\n checkOneOfPermissions\n \n \n Public\n checkPermission\n \n \n Public\n Async\n checkPermissionByReferences\n \n \n Public\n Async\n getUserWithPermissions\n \n \n Public\n hasAllPermissions\n \n \n Public\n hasOneOfPermissions\n \n \n Public\n hasPermission\n \n \n Public\n Async\n hasPermissionByReferences\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ruleManager: RuleManager, loader: ReferenceLoader, authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ruleManager\n \n \n RuleManager\n \n \n \n No\n \n \n \n \n loader\n \n \n ReferenceLoader\n \n \n \n No\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n checkAllPermissions\n \n \n \n \n \n \n \n checkAllPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n checkOneOfPermissions\n \n \n \n \n \n \n \n checkOneOfPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n checkPermission\n \n \n \n \n \n \n \n checkPermission(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n AuthorizableObject | BaseDO\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n checkPermissionByReferences\n \n \n \n \n \n \n \n \n \n \n \n \n checkPermissionByReferences(userId: EntityId, entityName: AuthorizableReferenceType, entityId: EntityId, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n entityName\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n entityId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getUserWithPermissions\n \n \n \n \n \n \n \n getUserWithPermissions(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasAllPermissions\n \n \n \n \n \n \n \n hasAllPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasOneOfPermissions\n \n \n \n \n \n \n \n hasOneOfPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n AuthorizableObject | BaseDO\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n hasPermissionByReferences\n \n \n \n \n \n \n \n \n \n \n \n \n hasPermissionByReferences(userId: EntityId, entityName: AuthorizableReferenceType, entityId: EntityId, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n entityName\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n entityId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable, UnauthorizedException } from '@nestjs/common';\nimport { BaseDO, EntityId, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { AuthorizationHelper } from './authorization.helper';\nimport { ForbiddenLoggableException } from './errors/forbidden.loggable-exception';\nimport { ReferenceLoader } from './reference.loader';\nimport { RuleManager } from './rule-manager';\nimport { AuthorizableReferenceType, AuthorizationContext } from './types';\n\n@Injectable()\nexport class AuthorizationService {\n\tconstructor(\n\t\tprivate readonly ruleManager: RuleManager,\n\t\tprivate readonly loader: ReferenceLoader,\n\t\tprivate readonly authorizationHelper: AuthorizationHelper\n\t) {}\n\n\tpublic checkPermission(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext): void {\n\t\tif (!this.hasPermission(user, object, context)) {\n\t\t\tthrow new ForbiddenLoggableException(user.id, object.constructor.name, context);\n\t\t}\n\t}\n\n\tpublic hasPermission(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext): boolean {\n\t\tconst rule = this.ruleManager.selectRule(user, object, context);\n\t\tconst hasPermission = rule.hasPermission(user, object, context);\n\n\t\treturn hasPermission;\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tpublic async checkPermissionByReferences(\n\t\tuserId: EntityId,\n\t\tentityName: AuthorizableReferenceType,\n\t\tentityId: EntityId,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tif (!(await this.hasPermissionByReferences(userId, entityName, entityId, context))) {\n\t\t\tthrow new ForbiddenLoggableException(userId, entityName, context);\n\t\t}\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tpublic async hasPermissionByReferences(\n\t\tuserId: EntityId,\n\t\tentityName: AuthorizableReferenceType,\n\t\tentityId: EntityId,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\t// TODO: This try-catch-block should be removed. See ticket: https://ticketsystem.dbildungscloud.de/browse/BC-4023\n\t\ttry {\n\t\t\tconst [user, object] = await Promise.all([\n\t\t\t\tthis.getUserWithPermissions(userId),\n\t\t\t\tthis.loader.loadAuthorizableObject(entityName, entityId),\n\t\t\t]);\n\t\t\tconst rule = this.ruleManager.selectRule(user, object, context);\n\t\t\tconst hasPermission = rule.hasPermission(user, object, context);\n\n\t\t\treturn hasPermission;\n\t\t} catch (error) {\n\t\t\tthrow new ForbiddenException(\n\t\t\t\tnull,\n\t\t\t\tErrorUtils.createHttpExceptionOptions(error, 'AuthorizationService:hasPermissionByReferences')\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic checkAllPermissions(user: User, requiredPermissions: string[]): void {\n\t\tif (!this.authorizationHelper.hasAllPermissions(user, requiredPermissions)) {\n\t\t\t// TODO: Should be ForbiddenException\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\t}\n\n\tpublic hasAllPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\treturn this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n\t}\n\n\tpublic checkOneOfPermissions(user: User, requiredPermissions: string[]): void {\n\t\tif (!this.authorizationHelper.hasOneOfPermissions(user, requiredPermissions)) {\n\t\t\t// TODO: Should be ForbiddenException\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\t}\n\n\tpublic hasOneOfPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\treturn this.authorizationHelper.hasOneOfPermissions(user, requiredPermissions);\n\t}\n\n\tpublic async getUserWithPermissions(userId: EntityId): Promise {\n\t\tconst userWithPermissions = await this.loader.getUserWithPermissions(userId);\n\n\t\treturn userWithPermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AxiosResponseImp.html":{"url":"classes/AxiosResponseImp.html","title":"class - AxiosResponseImp","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AxiosResponseImp\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/axios-response.factory.ts\n \n\n\n\n\n \n Implements\n \n \n AxiosResponse\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n config\n \n \n data\n \n \n headers\n \n \n status\n \n \n statusText\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AxiosResponseProps)\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n AxiosResponseProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : InternalAxiosRequestConfig<>\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n headers\n \n \n \n \n \n \n Type : AxiosHeaders\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n statusText\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { AxiosHeaderValue, AxiosHeaders, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { BaseFactory } from './base.factory';\n\nexport type AxiosHeadersKeyValue = { [key: string]: AxiosHeaderValue };\ntype AxiosResponseProps = {\n\tdata: T;\n\tstatus: number;\n\tstatusText: string;\n\theaders: AxiosHeadersKeyValue;\n\tconfig: InternalAxiosRequestConfig;\n};\n\nclass AxiosResponseImp implements AxiosResponse {\n\tdata: T;\n\n\tstatus: number;\n\n\tstatusText: string;\n\n\theaders: AxiosHeaders;\n\n\tconfig: InternalAxiosRequestConfig;\n\n\tconstructor(props: AxiosResponseProps) {\n\t\tthis.data = props.data;\n\t\tthis.status = props.status;\n\t\tthis.statusText = props.statusText;\n\t\tthis.headers = new AxiosHeaders(props.headers);\n\t\tthis.config = props.config;\n\t}\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const axiosResponseFactory = BaseFactory.define, AxiosResponseProps>(\n\tAxiosResponseImp,\n\t() => {\n\t\treturn {\n\t\t\tdata: '',\n\t\t\tstatus: 200,\n\t\t\tstatusText: '',\n\t\t\theaders: new AxiosHeaders(),\n\t\t\tconfig: { headers: new AxiosHeaders() },\n\t\t};\n\t}\n);\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBBaseMeetingConfig.html":{"url":"classes/BBBBaseMeetingConfig.html","title":"class - BBBBaseMeetingConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBBaseMeetingConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/request/bbb-base-meeting.config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n meetingID\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(config: BBBBaseMeetingConfig)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-base-meeting.config.ts:1\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n \n BBBBaseMeetingConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-base-meeting.config.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class BBBBaseMeetingConfig {\n\tconstructor(config: BBBBaseMeetingConfig) {\n\t\tthis.meetingID = config.meetingID;\n\t}\n\n\tmeetingID: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBBaseResponse.html":{"url":"interfaces/BBBBaseResponse.html","title":"interface - BBBBaseResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBBaseResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb-base.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n message\n \n \n \n \n messageKey\n \n \n \n \n returncode\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n message\n \n \n \n \n \n \n \n \n message: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n messageKey\n \n \n \n \n \n \n \n \n messageKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n returncode\n \n \n \n \n \n \n \n \n returncode: BBBStatus\n\n \n \n\n\n \n \n Type : BBBStatus\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBStatus } from './bbb-status.enum';\n\nexport interface BBBBaseResponse {\n\treturncode: BBBStatus;\n\tmessageKey: string;\n\tmessage: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBCreateConfig.html":{"url":"classes/BBBCreateConfig.html","title":"class - BBBCreateConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBCreateConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseMeetingConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n allowModsToUnmuteUsers\n \n \n Optional\n attendeePW\n \n \n Optional\n guestPolicy\n \n \n Optional\n logoutURL\n \n \n Optional\n meta_bbb-origin-server-name\n \n \n Optional\n moderatorPW\n \n \n Optional\n muteOnStart\n \n \n name\n \n \n Optional\n welcome\n \n \n meetingID\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(config: BBBCreateConfig)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n \n BBBCreateConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n allowModsToUnmuteUsers\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n attendeePW\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n guestPolicy\n \n \n \n \n \n \n Type : GuestPolicy\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logoutURL\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n meta_bbb-origin-server-name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n moderatorPW\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n muteOnStart\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n welcome\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BBBBaseMeetingConfig\n\n \n \n \n \n Defined in BBBBaseMeetingConfig:6\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { BBBBaseMeetingConfig } from './bbb-base-meeting.config';\n\nexport enum GuestPolicy {\n\tALWAYS_ACCEPT = 'ALWAYS_ACCEPT',\n\tALWAYS_DENY = 'ALWAYS_DENY',\n\tASK_MODERATOR = 'ASK_MODERATOR',\n}\n\nexport class BBBCreateConfig extends BBBBaseMeetingConfig {\n\tconstructor(config: BBBCreateConfig) {\n\t\tsuper(config);\n\t\tthis.name = config.name;\n\t\tthis.meetingID = config.meetingID;\n\t\tthis.logoutURL = config.logoutURL;\n\t\tthis.welcome = config.welcome;\n\t\tthis.guestPolicy = config.guestPolicy;\n\t\tthis.moderatorPW = config.moderatorPW;\n\t\tthis.attendeePW = config.attendeePW;\n\t\tthis.allowModsToUnmuteUsers = config.allowModsToUnmuteUsers;\n\t\tthis['meta_bbb-origin-server-name'] = config['meta_bbb-origin-server-name'];\n\t}\n\n\tname: string;\n\n\tattendeePW?: string;\n\n\tmoderatorPW?: string;\n\n\tlogoutURL?: string;\n\n\twelcome?: string;\n\n\tguestPolicy?: GuestPolicy;\n\n\tmuteOnStart?: boolean;\n\n\tallowModsToUnmuteUsers?: boolean;\n\n\t'meta_bbb-origin-server-name'?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBCreateConfigBuilder.html":{"url":"classes/BBBCreateConfigBuilder.html","title":"class - BBBCreateConfigBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBCreateConfigBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts\n \n\n\n\n \n Extends\n \n \n Builder\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n build\n \n \n withGuestPolicy\n \n \n withLogoutUrl\n \n \n withMuteOnStart\n \n \n withWelcome\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from Builder\n\n \n \n \n \n Defined in Builder:2\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \n \n build()\n \n \n\n\n \n \n Inherited from Builder\n\n \n \n \n \n Defined in Builder:26\n\n \n \n\n\n \n \n\n \n Returns : BBBCreateConfig\n\n \n \n \n \n \n \n \n \n \n \n \n withGuestPolicy\n \n \n \n \n \n \nwithGuestPolicy(guestPolicy: GuestPolicy)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n guestPolicy\n \n GuestPolicy\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withLogoutUrl\n \n \n \n \n \n \nwithLogoutUrl(logoutUrl: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoutUrl\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withMuteOnStart\n \n \n \n \n \n \nwithMuteOnStart(value: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withWelcome\n \n \n \n \n \n \nwithWelcome(welcome: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n welcome\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { BBBCreateConfig, BBBRole, GuestPolicy } from '../request';\nimport { Builder } from './builder';\n\nexport class BBBCreateConfigBuilder extends Builder {\n\twithLogoutUrl(logoutUrl: string): BBBCreateConfigBuilder {\n\t\tthis.product.logoutURL = logoutUrl;\n\t\treturn this;\n\t}\n\n\twithWelcome(welcome: string): BBBCreateConfigBuilder {\n\t\tthis.product.welcome = welcome;\n\t\treturn this;\n\t}\n\n\twithGuestPolicy(guestPolicy: GuestPolicy): BBBCreateConfigBuilder {\n\t\tthis.product.guestPolicy = guestPolicy;\n\t\treturn this;\n\t}\n\n\twithMuteOnStart(value: boolean): BBBCreateConfigBuilder {\n\t\tthis.product.muteOnStart = value;\n\t\treturn this;\n\t}\n\n\toverride build(): BBBCreateConfig {\n\t\tthis.product['meta_bbb-origin-server-name'] = Configuration.get('SC_DOMAIN') as string;\n\n\t\t// Deprecated fields from BBB that have to be set to a consistent value, in order to call the create endpoint multiple times without error\n\t\tthis.product.moderatorPW = BBBRole.MODERATOR;\n\t\tthis.product.attendeePW = BBBRole.VIEWER;\n\n\t\tthis.product.allowModsToUnmuteUsers = true;\n\n\t\treturn super.build();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBCreateResponse.html":{"url":"interfaces/BBBCreateResponse.html","title":"interface - BBBCreateResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBCreateResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb-create.response.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseResponse\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createDate\n \n \n \n \n createTime\n \n \n \n \n dialNumber\n \n \n \n \n duration\n \n \n \n \n hasBeenForciblyEnded\n \n \n \n \n hasUserJoined\n \n \n \n \n internalMeetingID\n \n \n \n \n meetingID\n \n \n \n \n parentMeetingID\n \n \n \n \n voiceBridge\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createDate\n \n \n \n \n \n \n \n \n createDate: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n createTime\n \n \n \n \n \n \n \n \n createTime: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n dialNumber\n \n \n \n \n \n \n \n \n dialNumber: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n duration\n \n \n \n \n \n \n \n \n duration: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hasBeenForciblyEnded\n \n \n \n \n \n \n \n \n hasBeenForciblyEnded: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hasUserJoined\n \n \n \n \n \n \n \n \n hasUserJoined: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n internalMeetingID\n \n \n \n \n \n \n \n \n internalMeetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n \n \n meetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentMeetingID\n \n \n \n \n \n \n \n \n parentMeetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n voiceBridge\n \n \n \n \n \n \n \n \n voiceBridge: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBBaseResponse } from './bbb-base.response';\n\nexport interface BBBCreateResponse extends BBBBaseResponse {\n\tmeetingID: string;\n\tinternalMeetingID: string;\n\tparentMeetingID: string;\n\tcreateTime: number;\n\tvoiceBridge: number;\n\tdialNumber: string;\n\tcreateDate: string;\n\thasUserJoined: boolean;\n\tduration: number;\n\thasBeenForciblyEnded: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBJoinConfig.html":{"url":"classes/BBBJoinConfig.html","title":"class - BBBJoinConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBJoinConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseMeetingConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n fullName\n \n \n Optional\n guest\n \n \n Optional\n redirect\n \n \n role\n \n \n Optional\n userID\n \n \n meetingID\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(config: BBBJoinConfig)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n \n BBBJoinConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n fullName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n guest\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n redirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : BBBRole\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n userID\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BBBBaseMeetingConfig\n\n \n \n \n \n Defined in BBBBaseMeetingConfig:6\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { BBBBaseMeetingConfig } from './bbb-base-meeting.config';\n\nexport enum BBBRole {\n\tMODERATOR = 'MODERATOR',\n\tVIEWER = 'VIEWER',\n}\n\nexport class BBBJoinConfig extends BBBBaseMeetingConfig {\n\tconstructor(config: BBBJoinConfig) {\n\t\tsuper(config);\n\t\tthis.fullName = config.fullName;\n\t\tthis.role = config.role;\n\t\tthis.userID = config.userID;\n\t\tthis.guest = config.guest;\n\t\tthis.redirect = config.redirect;\n\t}\n\n\tfullName: string;\n\n\trole: BBBRole;\n\n\tuserID?: string;\n\n\tguest?: boolean;\n\n\tredirect?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBJoinConfigBuilder.html":{"url":"classes/BBBJoinConfigBuilder.html","title":"class - BBBJoinConfigBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBJoinConfigBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/builder/bbb-join-config.builder.ts\n \n\n\n\n \n Extends\n \n \n Builder\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n asGuest\n \n \n withRole\n \n \n withUserId\n \n \n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from Builder\n\n \n \n \n \n Defined in Builder:2\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n asGuest\n \n \n \n \n \n \nasGuest(value: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-join-config.builder.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBJoinConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withRole\n \n \n \n \n \n \nwithRole(value: BBBRole)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-join-config.builder.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n BBBRole\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBJoinConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withUserId\n \n \n \n \n \n \nwithUserId(value: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-join-config.builder.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBJoinConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild()\n \n \n\n\n \n \n Inherited from Builder\n\n \n \n \n \n Defined in Builder:8\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BBBJoinConfig, BBBRole } from '../request/bbb-join.config';\nimport { Builder } from './builder';\n\nexport class BBBJoinConfigBuilder extends Builder {\n\tasGuest(value: boolean): BBBJoinConfigBuilder {\n\t\tthis.product.guest = value;\n\t\treturn this;\n\t}\n\n\twithRole(value: BBBRole): BBBJoinConfigBuilder {\n\t\tthis.product.role = value;\n\t\treturn this;\n\t}\n\n\twithUserId(value: string): BBBJoinConfigBuilder {\n\t\tthis.product.userID = value;\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBJoinResponse.html":{"url":"interfaces/BBBJoinResponse.html","title":"interface - BBBJoinResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBJoinResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb-join.response.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseResponse\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n auth_token\n \n \n \n \n meeting_id\n \n \n \n \n session_token\n \n \n \n \n url\n \n \n \n \n user_id\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n auth_token\n \n \n \n \n \n \n \n \n auth_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n meeting_id\n \n \n \n \n \n \n \n \n meeting_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n session_token\n \n \n \n \n \n \n \n \n session_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user_id\n \n \n \n \n \n \n \n \n user_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBBaseResponse } from './bbb-base.response';\n\nexport interface BBBJoinResponse extends BBBBaseResponse {\n\tmeeting_id: string;\n\tuser_id: string;\n\tauth_token: string;\n\tsession_token: string;\n\turl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBMeetingInfoResponse.html":{"url":"interfaces/BBBMeetingInfoResponse.html","title":"interface - BBBMeetingInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBMeetingInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb-meeting-info.response.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseResponse\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n attendees\n \n \n \n Optional\n \n breakout\n \n \n \n Optional\n \n breakoutRooms\n \n \n \n \n createDate\n \n \n \n \n createTime\n \n \n \n \n dialNumber\n \n \n \n \n duration\n \n \n \n \n endTime\n \n \n \n \n hasBeenForciblyEnded\n \n \n \n \n hasUserJoined\n \n \n \n \n internalMeetingID\n \n \n \n \n isBreakout\n \n \n \n \n listenerCount\n \n \n \n \n maxUsers\n \n \n \n \n meetingID\n \n \n \n \n meetingName\n \n \n \n \n metadata\n \n \n \n \n moderatorCount\n \n \n \n \n participantCount\n \n \n \n \n recording\n \n \n \n \n running\n \n \n \n \n startTime\n \n \n \n \n videoCount\n \n \n \n \n voiceBridge\n \n \n \n \n voiceParticipantCount\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n attendees\n \n \n \n \n \n \n \n \n attendees: literal type[]\n\n \n \n\n\n \n \n Type : literal type[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n breakout\n \n \n \n \n \n \n \n \n breakout: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n breakoutRooms\n \n \n \n \n \n \n \n \n breakoutRooms: literal type[]\n\n \n \n\n\n \n \n Type : literal type[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n createDate\n \n \n \n \n \n \n \n \n createDate: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n createTime\n \n \n \n \n \n \n \n \n createTime: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n dialNumber\n \n \n \n \n \n \n \n \n dialNumber: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n duration\n \n \n \n \n \n \n \n \n duration: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n endTime\n \n \n \n \n \n \n \n \n endTime: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hasBeenForciblyEnded\n \n \n \n \n \n \n \n \n hasBeenForciblyEnded: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hasUserJoined\n \n \n \n \n \n \n \n \n hasUserJoined: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n internalMeetingID\n \n \n \n \n \n \n \n \n internalMeetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isBreakout\n \n \n \n \n \n \n \n \n isBreakout: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n listenerCount\n \n \n \n \n \n \n \n \n listenerCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n maxUsers\n \n \n \n \n \n \n \n \n maxUsers: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n \n \n meetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n meetingName\n \n \n \n \n \n \n \n \n meetingName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n metadata\n \n \n \n \n \n \n \n \n metadata: \n\n \n \n\n\n\n\n\n\n\n \n \n \n \n \n \n \n moderatorCount\n \n \n \n \n \n \n \n \n moderatorCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n participantCount\n \n \n \n \n \n \n \n \n participantCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n recording\n \n \n \n \n \n \n \n \n recording: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n running\n \n \n \n \n \n \n \n \n running: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n startTime\n \n \n \n \n \n \n \n \n startTime: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n videoCount\n \n \n \n \n \n \n \n \n videoCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n voiceBridge\n \n \n \n \n \n \n \n \n voiceBridge: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n voiceParticipantCount\n \n \n \n \n \n \n \n \n voiceParticipantCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBBaseResponse } from './bbb-base.response';\n\nexport interface BBBMeetingInfoResponse extends BBBBaseResponse {\n\tmeetingName: string;\n\tmeetingID: string;\n\tinternalMeetingID: string;\n\tcreateTime: number;\n\tcreateDate: string;\n\tvoiceBridge: number;\n\tdialNumber: string;\n\trunning: boolean;\n\tduration: number;\n\thasUserJoined: boolean;\n\trecording: boolean;\n\thasBeenForciblyEnded: boolean;\n\tstartTime: number;\n\tendTime: number;\n\tparticipantCount: number;\n\tlistenerCount: number;\n\tvoiceParticipantCount: number;\n\tvideoCount: number;\n\tmaxUsers: number;\n\tmoderatorCount: number;\n\tattendees: {\n\t\tattendee: {\n\t\t\tuserID: string;\n\t\t\tfullName: string;\n\t\t\trole: string;\n\t\t\tisPresenter: boolean;\n\t\t\tisListeningOnly: boolean;\n\t\t\thasJoinedVoice: boolean;\n\t\t\thasVideo: boolean;\n\t\t\tclientType: string;\n\t\t};\n\t}[];\n\tmetadata: unknown;\n\tisBreakout: boolean;\n\tbreakoutRooms?: {\n\t\tbreakout: string;\n\t}[];\n\tbreakout?: {\n\t\tparentMeetingID: string;\n\t\tsequence: number;\n\t\tfreeJoin: boolean;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBResponse.html":{"url":"interfaces/BBBResponse.html","title":"interface - BBBResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n response\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n response\n \n \n \n \n \n \n \n \n response: T\n\n \n \n\n\n \n \n Type : T\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBBaseResponse } from './bbb-base.response';\n\nexport interface BBBResponse {\n\tresponse: T;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BBBService.html":{"url":"injectables/BBBService.html","title":"injectable - BBBService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BBBService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/bbb.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n create\n \n \n end\n \n \n Protected\n generateChecksum\n \n \n getBbbRequestConfig\n \n \n getMeetingInfo\n \n \n Protected\n getUrl\n \n \n Async\n join\n \n \n Protected\n toParams\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n baseUrl\n \n \n salt\n \n \n presentationUrl\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbSettings: IBbbSettings, httpService: HttpService, converterUtil: ConverterUtil)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbSettings\n \n \n IBbbSettings\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n converterUtil\n \n \n ConverterUtil\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(config: BBBCreateConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:39\n \n \n\n\n \n \n Creates a new BBB Meeting. The create call is idempotent: you can call it multiple times with the same parameters without side effects.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n BBBCreateConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n end\n \n \n \n \n \n \nend(config: BBBBaseMeetingConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:84\n \n \n\n\n \n \n Ends a BBB Meeting.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n BBBBaseMeetingConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n generateChecksum\n \n \n \n \n \n \n \n generateChecksum(callName: string, queryParams: URLSearchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:136\n \n \n\n\n \n \n Returns a SHA1 encoded checksum for the input parameters.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n callName\n \n string\n \n\n \n No\n \n\n\n \n \n queryParams\n \n URLSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getBbbRequestConfig\n \n \n \n \n \n \ngetBbbRequestConfig(presentationUrl: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n presentationUrl\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getMeetingInfo\n \n \n \n \n \n \ngetMeetingInfo(config: BBBBaseMeetingConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:107\n \n \n\n\n \n \n Returns information about a BBB Meeting.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n BBBBaseMeetingConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n getUrl\n \n \n \n \n \n \n \n getUrl(callName: string, queryParams: URLSearchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:167\n \n \n\n\n \n \n Builds the url for BBB.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n callName\n \n string\n \n\n \n No\n \n\n\n \n Name of the BBB api function.\n\n \n \n \n queryParams\n \n URLSearchParams\n \n\n \n No\n \n\n\n \n Parameters for the endpoint.\n\n \n \n \n \n \n \n \n \n Returns : string\n\n \n \n A callable url.\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n join\n \n \n \n \n \n \n \n join(config: BBBJoinConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:72\n \n \n\n\n \n \n Creates a join link to a BBB Meeting.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n BBBJoinConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n The join url\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n toParams\n \n \n \n \n \n \n \n toParams(object: BBBCreateConfig | BBBBaseMeetingConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:150\n \n \n\n\n \n \n Extracts fields from a javascript object and builds a URLSearchParams object from it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n object\n \n BBBCreateConfig | BBBBaseMeetingConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : URLSearchParams\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n baseUrl\n \n \n\n \n \n getbaseUrl()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:21\n \n \n\n \n \n \n \n \n \n \n salt\n \n \n\n \n \n getsalt()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:25\n \n \n\n \n \n \n \n \n \n \n presentationUrl\n \n \n\n \n \n getpresentationUrl()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:29\n \n \n\n \n \n\n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { ConverterUtil } from '@shared/common/utils';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { AxiosResponse } from 'axios';\nimport crypto from 'crypto';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { URL, URLSearchParams } from 'url';\nimport { BbbSettings, IBbbSettings } from './bbb-settings.interface';\nimport { BBBBaseMeetingConfig, BBBCreateConfig, BBBJoinConfig } from './request';\nimport { BBBBaseResponse, BBBCreateResponse, BBBMeetingInfoResponse, BBBResponse, BBBStatus } from './response';\n\n@Injectable()\nexport class BBBService {\n\tconstructor(\n\t\t@Inject(BbbSettings) private readonly bbbSettings: IBbbSettings,\n\t\tprivate readonly httpService: HttpService,\n\t\tprivate readonly converterUtil: ConverterUtil\n\t) {}\n\n\tprotected get baseUrl(): string {\n\t\treturn this.bbbSettings.host;\n\t}\n\n\tprotected get salt(): string {\n\t\treturn this.bbbSettings.salt;\n\t}\n\n\tprotected get presentationUrl(): string {\n\t\treturn this.bbbSettings.presentationUrl;\n\t}\n\n\t/**\n\t * Creates a new BBB Meeting. The create call is idempotent: you can call it multiple times with the same parameters without side effects.\n\t * @param {BBBCreateConfig} config\n\t * @returns {Promise>}\n\t * @throws {InternalServerErrorException}\n\t */\n\tcreate(config: BBBCreateConfig): Promise> {\n\t\tconst url: string = this.getUrl('create', this.toParams(config));\n\t\tconst conf = { headers: { 'Content-Type': 'application/xml' } };\n\t\tconst data = this.getBbbRequestConfig(this.presentationUrl);\n\t\tconst observable: Observable> = this.httpService.post(url, data, conf);\n\n\t\treturn firstValueFrom(observable)\n\t\t\t.then((resp: AxiosResponse) => {\n\t\t\t\tconst bbbResp = this.converterUtil.xml2object | BBBResponse>(\n\t\t\t\t\tresp.data\n\t\t\t\t);\n\t\t\t\tif (bbbResp.response.returncode !== BBBStatus.SUCCESS) {\n\t\t\t\t\tthrow new InternalServerErrorException(`${bbbResp.response.messageKey}: ${bbbResp.response.message}`);\n\t\t\t\t}\n\t\t\t\treturn bbbResp as BBBResponse;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthrow new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(error, 'BBBService:create'));\n\t\t\t});\n\t}\n\n\t// it should be a private method\n\tgetBbbRequestConfig(presentationUrl: string): string {\n\t\tif (presentationUrl === '') return '';\n\t\treturn ``;\n\t}\n\n\t/**\n\t * Creates a join link to a BBB Meeting.\n\t * @param {BBBJoinConfig} config\n\t * @returns {Promise} The join url\n\t * @throws {InternalServerErrorException}\n\t */\n\tasync join(config: BBBJoinConfig): Promise {\n\t\tawait this.getMeetingInfo(new BBBBaseMeetingConfig({ meetingID: config.meetingID }));\n\n\t\treturn this.getUrl('join', this.toParams(config));\n\t}\n\n\t/**\n\t * Ends a BBB Meeting.\n\t * @param {BBBBaseMeetingConfig} config\n\t * @returns {BBBResponse}\n\t * @throws {InternalServerErrorException}\n\t */\n\tend(config: BBBBaseMeetingConfig): Promise> {\n\t\tconst url: string = this.getUrl('end', this.toParams(config));\n\t\tconst observable: Observable> = this.httpService.get(url);\n\n\t\treturn firstValueFrom(observable)\n\t\t\t.then((resp: AxiosResponse) => {\n\t\t\t\tconst bbbResp = this.converterUtil.xml2object>(resp.data);\n\t\t\t\tif (bbbResp.response.returncode !== BBBStatus.SUCCESS) {\n\t\t\t\t\tthrow new InternalServerErrorException(`${bbbResp.response.messageKey}: ${bbbResp.response.message}`);\n\t\t\t\t}\n\t\t\t\treturn bbbResp;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthrow new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(error, 'BBBService:end'));\n\t\t\t});\n\t}\n\n\t/**\n\t * Returns information about a BBB Meeting.\n\t * @param {BBBBaseMeetingConfig} config\n\t * @returns {Promise}\n\t * @throws {InternalServerErrorException}\n\t */\n\tgetMeetingInfo(config: BBBBaseMeetingConfig): Promise> {\n\t\tconst url: string = this.getUrl('getMeetingInfo', this.toParams(config));\n\t\tconst observable: Observable> = this.httpService.get(url);\n\n\t\treturn firstValueFrom(observable)\n\t\t\t.then((resp: AxiosResponse) => {\n\t\t\t\tconst bbbResp = this.converterUtil.xml2object | BBBResponse\n\t\t\t\t>(resp.data);\n\t\t\t\tif (bbbResp.response.returncode !== BBBStatus.SUCCESS) {\n\t\t\t\t\tthrow new InternalServerErrorException(`${bbbResp.response.messageKey}: ${bbbResp.response.message}`);\n\t\t\t\t}\n\t\t\t\treturn bbbResp as BBBResponse;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t\tnull,\n\t\t\t\t\tErrorUtils.createHttpExceptionOptions(error, 'BBBService:getMeetingInfo')\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\t// should be private\n\t/**\n\t * Returns a SHA1 encoded checksum for the input parameters.\n\t * @param {string} callName\n\t * @param {URLSearchParams} queryParams\n\t * @returns {string}\n\t */\n\tprotected generateChecksum(callName: string, queryParams: URLSearchParams): string {\n\t\tconst queryString: string = queryParams.toString();\n\t\tconst sha = crypto.createHash('sha1');\n\t\tsha.update(callName + queryString + this.salt);\n\t\tconst checksum: string = sha.digest('hex');\n\t\treturn checksum;\n\t}\n\n\t// should be private\n\t/**\n\t * Extracts fields from a javascript object and builds a URLSearchParams object from it.\n\t * @param {object} object\n\t * @returns {URLSearchParams}\n\t */\n\tprotected toParams(object: BBBCreateConfig | BBBBaseMeetingConfig): URLSearchParams {\n\t\tconst params: URLSearchParams = new URLSearchParams();\n\t\tObject.keys(object).forEach((key) => {\n\t\t\tif (key) {\n\t\t\t\tparams.append(key, String(object[key]));\n\t\t\t}\n\t\t});\n\t\treturn params;\n\t}\n\n\t// should be private\n\t/**\n\t * Builds the url for BBB.\n\t * @param callName Name of the BBB api function.\n\t * @param queryParams Parameters for the endpoint.\n\t * @returns {string} A callable url.\n\t */\n\tprotected getUrl(callName: string, queryParams: URLSearchParams): string {\n\t\tconst checksum: string = this.generateChecksum(callName, queryParams);\n\t\tqueryParams.append('checksum', checksum);\n\n\t\tconst url: URL = new URL(this.baseUrl);\n\t\turl.pathname = `/bigbluebutton/api/${callName}`;\n\t\turl.search = queryParams.toString();\n\n\t\treturn url.toString();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseDO.html":{"url":"classes/BaseDO.html","title":"class - BaseDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/base.do.ts\n \n\n \n Deprecated\n \n \n \n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Protected\n constructor(id?: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/base.do.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/base.do.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export abstract class BaseDO {\n\tid?: string;\n\n\tprotected constructor(id?: string) {\n\t\tthis.id = id;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BaseDORepo.html":{"url":"injectables/BaseDORepo.html","title":"injectable - BaseDORepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BaseDORepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/base.do.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Abstract\n entityFactory\n \n \n Async\n findById\n \n \n Protected\n Abstract\n mapDOToEntityProperties\n \n \n Protected\n Abstract\n mapEntityToDO\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:98\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n entityFactory\n \n \n \n \n \n \n \n entityFactory(props: P)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n P\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:116\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Abstract\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(entityDO: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : P\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Abstract\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: E)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:77\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:11\n \n \n\n \n \n\n \n\n\n \n import { EntityName, FilterQuery } from '@mikro-orm/core';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BaseDO, BaseEntity, baseEntityProperties, EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\n\n@Injectable()\nexport abstract class BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {}\n\n\tabstract get entityName(): EntityName;\n\n\tabstract entityFactory(props: P): E;\n\n\tprotected abstract mapEntityToDO(entity: E): DO;\n\n\tprotected abstract mapDOToEntityProperties(entityDO: DO): P;\n\n\tasync save(entityDo: DO): Promise {\n\t\tconst savedDos: DO[] = await this.saveAll([entityDo]);\n\t\treturn savedDos[0];\n\t}\n\n\tasync saveAll(entityDos: DO[]): Promise {\n\t\tconst promises: Promise[] = entityDos.map(async (domainObject: DO): Promise => {\n\t\t\tlet entity: E;\n\t\t\tif (!domainObject.id) {\n\t\t\t\tentity = this.createEntity(domainObject);\n\t\t\t} else {\n\t\t\t\tentity = await this.updateEntity(domainObject);\n\t\t\t}\n\t\t\treturn entity;\n\t\t});\n\n\t\tconst entities: E[] = await Promise.all(promises);\n\t\tawait this._em.persistAndFlush(entities);\n\n\t\tconst savedDos: DO[] = entities.map((entity) => this.mapEntityToDO(entity));\n\t\treturn savedDos;\n\t}\n\n\tprivate createEntity(domainObject: DO): E {\n\t\tconst newEntity: E = this.createNewEntityFromDO(domainObject);\n\n\t\tconst created: E = this._em.create(this.entityName, newEntity);\n\t\tthis.logger.debug(`Created new entity with id ${created.id}`);\n\t\treturn created;\n\t}\n\n\tprivate async updateEntity(domainObject: DO): Promise {\n\t\tconst newEntity: E = this.createNewEntityFromDO(domainObject);\n\n\t\tthis.removeProtectedEntityFields(newEntity);\n\n\t\tconst fetchedEntity: E = await this._em.findOneOrFail(this.entityName, {\n\t\t\tid: domainObject.id,\n\t\t} as FilterQuery);\n\t\tconst updated: E = this._em.assign(fetchedEntity, newEntity);\n\t\tthis.logger.debug(`Updated entity with id ${updated.id}`);\n\t\treturn updated;\n\t}\n\n\tprotected createNewEntityFromDO(domainObject: DO) {\n\t\tconst entityProps: P = this.mapDOToEntityProperties(domainObject);\n\t\tconst newEntity: E = this.entityFactory(entityProps);\n\n\t\tif (domainObject.id) {\n\t\t\tnewEntity.id = domainObject.id;\n\t\t\tnewEntity._id = new ObjectId(domainObject.id);\n\t\t}\n\t\treturn newEntity;\n\t}\n\n\t/**\n\t * Ignore base entity properties when updating entity\n\t */\n\tprivate removeProtectedEntityFields(entity: E) {\n\t\tObject.keys(entity).forEach((key) => {\n\t\t\tif (baseEntityProperties.includes(key)) {\n\t\t\t\tdelete entity[key];\n\t\t\t}\n\t\t});\n\t}\n\n\tasync delete(domainObjects: DO[] | DO): Promise {\n\t\tconst dos: DO[] = Array.isArray(domainObjects) ? domainObjects : [domainObjects];\n\n\t\tconst entities: E[] = dos.map((domainObj: DO): E => this.createNewEntityFromDO(domainObj));\n\n\t\tthis._em.remove(entities);\n\t\tawait this._em.flush();\n\t}\n\n\t// TODO: https://ticketsystem.dbildungscloud.de/browse/ARC-173 replace with delete(domainObject: DO)\n\t/**\n\t * @deprecated Please use {@link delete} instead\n\t */\n\tasync deleteById(id: EntityId | EntityId[]): Promise {\n\t\tconst ids: string[] = Array.isArray(id) ? id : [id];\n\n\t\tlet total = 0;\n\t\tconst promises: Promise[] = ids.map(async (entityId: string): Promise => {\n\t\t\tconst deleted: number = await this.deleteEntityById(entityId);\n\t\t\ttotal += deleted;\n\t\t});\n\n\t\tawait Promise.all(promises);\n\t\treturn total;\n\t}\n\n\tprivate deleteEntityById(id: EntityId): Promise {\n\t\tconst promise: Promise = this._em.nativeDelete(this.entityName, { id } as FilterQuery);\n\t\treturn promise;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst entity: E = await this._em.findOneOrFail(this.entityName, { id } as FilterQuery);\n\t\treturn this.mapEntityToDO(entity);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseDomainObject.html":{"url":"classes/BaseDomainObject.html","title":"class - BaseDomainObject","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseDomainObject\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/base-domain-object.ts\n \n\n \n Deprecated\n \n \n \n \n\n\n\n \n Implements\n \n \n AuthorizableObject\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Abstract\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/interface/base-domain-object.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { AuthorizableObject } from '../domain-object';\n\n// idea support for each CRUD action like Actions.read as abstract class, to have a generall interface\n\n/**\n * @deprecated\n */\nexport abstract class BaseDomainObject implements AuthorizableObject {\n\tabstract id: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseEntity.html":{"url":"classes/BaseEntity.html","title":"class - BaseEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/base.entity.ts\n \n\n\n\n\n \n Implements\n \n \n IEntity\n AuthorizableObject\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _id\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @PrimaryKey()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @SerializedPrimaryKey()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PrimaryKey, Property, SerializedPrimaryKey } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport type { AuthorizableObject } from '../domain-object';\nimport type { IEntity } from '../interface';\n\nexport abstract class BaseEntity implements IEntity, AuthorizableObject {\n\t@PrimaryKey()\n\t_id!: ObjectId;\n\n\t@SerializedPrimaryKey()\n\tid!: string;\n}\n\n/**\n * Describes the properties available for entities when used as @IdentifiedReference\n */\nexport type BaseEntityReference = 'id' | '_id';\n\n// NOTE we have to include BaseEntityWithTimestamps in the entity discovery if we inherit from BaseEntity.\n// that can be cumbersome e.g. in tests. that's why we define it as a root class here.\n// TODO check if we can use EntitySchema to prevent code duplication (decorators don't work for defining properties btw.)\n\nexport abstract class BaseEntityWithTimestamps implements AuthorizableObject {\n\t@PrimaryKey()\n\t_id!: ObjectId;\n\n\t@SerializedPrimaryKey()\n\tid!: string;\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property({ onUpdate: () => new Date() })\n\tupdatedAt = new Date();\n}\n\n// These fields are explicitly ignored when updating an entity. See base.do.repo.ts.\nexport const baseEntityProperties = ['id', '_id', 'updatedAt', 'createdAt'];\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseEntityWithTimestamps.html":{"url":"classes/BaseEntityWithTimestamps.html","title":"class - BaseEntityWithTimestamps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseEntityWithTimestamps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/base.entity.ts\n \n\n\n\n\n \n Implements\n \n \n AuthorizableObject\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n createdAt\n \n \n \n id\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _id\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @PrimaryKey()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @SerializedPrimaryKey()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property({onUpdate: () => })\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:34\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PrimaryKey, Property, SerializedPrimaryKey } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport type { AuthorizableObject } from '../domain-object';\nimport type { IEntity } from '../interface';\n\nexport abstract class BaseEntity implements IEntity, AuthorizableObject {\n\t@PrimaryKey()\n\t_id!: ObjectId;\n\n\t@SerializedPrimaryKey()\n\tid!: string;\n}\n\n/**\n * Describes the properties available for entities when used as @IdentifiedReference\n */\nexport type BaseEntityReference = 'id' | '_id';\n\n// NOTE we have to include BaseEntityWithTimestamps in the entity discovery if we inherit from BaseEntity.\n// that can be cumbersome e.g. in tests. that's why we define it as a root class here.\n// TODO check if we can use EntitySchema to prevent code duplication (decorators don't work for defining properties btw.)\n\nexport abstract class BaseEntityWithTimestamps implements AuthorizableObject {\n\t@PrimaryKey()\n\t_id!: ObjectId;\n\n\t@SerializedPrimaryKey()\n\tid!: string;\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property({ onUpdate: () => new Date() })\n\tupdatedAt = new Date();\n}\n\n// These fields are explicitly ignored when updating an entity. See base.do.repo.ts.\nexport const baseEntityProperties = ['id', '_id', 'updatedAt', 'createdAt'];\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseFactory.html":{"url":"classes/BaseFactory.html","title":"class - BaseFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/base.factory.ts\n \n\n\n \n Description\n \n \n Entity factory based on thoughtbot/fishery\nhttps://github.com/thoughtbot/fishery\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(EntityClass: literal type, propsFactory: Factory)\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n EntityClass\n \n \n literal type\n \n \n \n No\n \n \n \n \n propsFactory\n \n \n Factory\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:15\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:98\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:110\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:47\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:75\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:60\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:148\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:32\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:122\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:144\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:160\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:134\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BuildOptions, DeepPartial, Factory, GeneratorFn, HookFn } from 'fishery';\nimport { ObjectId } from 'mongodb';\n\n/**\n * Entity factory based on thoughtbot/fishery\n * https://github.com/thoughtbot/fishery\n *\n * @template T The entity to be built\n * @template U The properties interface of the entity\n * @template I The transient parameters that your factory supports\n * @template C The class of the factory object being created.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class BaseFactory {\n\tprotected readonly propsFactory: Factory;\n\n\tconstructor(private readonly EntityClass: { new (props: U): T }, propsFactory: Factory) {\n\t\tthis.propsFactory = propsFactory;\n\t}\n\n\t/**\n\t * Define a factory\n\t * @template T The entity to be built\n\t * @template U The properties interface of the entity\n\t * @template I The transient parameters that your factory supports\n\t * @template C The class of the factory object being created.\n\t * @param EntityClass The constructor of the entity to be built.\n\t * @param generator Your factory function - see `Factory.define()` in thoughtbot/fishery\n\t * @returns\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic define>(\n\t\tthis: new (EntityClass: { new (props: U): T }, propsFactory: Factory) => F,\n\t\tEntityClass: { new (props: U): T },\n\t\tgenerator: GeneratorFn\n\t): F {\n\t\tconst propsFactory = Factory.define(generator);\n\t\tconst factory = new this(EntityClass, propsFactory);\n\t\treturn factory;\n\t}\n\n\t/**\n\t * Build an entity using your factory\n\t * @param params\n\t * @returns an entity\n\t */\n\tbuild(params?: DeepPartial, options: BuildOptions = {}): T {\n\t\tconst props = this.propsFactory.build(params, options);\n\t\tconst entity = new this.EntityClass(props);\n\n\t\treturn entity;\n\t}\n\n\t/**\n\t * Build an entity using your factory and generate a id for it.\n\t * @param params\n\t * @param id\n\t * @returns an entity\n\t */\n\tbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions = {}): T {\n\t\tconst entity = this.build(params, options);\n\t\tconst generatedId = new ObjectId(id);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst entityWithId = Object.assign(entity as any, { _id: generatedId, id: generatedId.toHexString() });\n\n\t\treturn entityWithId as T;\n\t}\n\n\t/**\n\t * Build a list of entities using your factory\n\t * @param number\n\t * @param params\n\t * @returns a list of entities\n\t */\n\tbuildList(number: number, params?: DeepPartial, options: BuildOptions = {}): T[] {\n\t\tconst list: T[] = [];\n\t\tfor (let i = 0; i , options: BuildOptions = {}): T[] {\n\t\tconst list: T[] = [];\n\t\tfor (let i = 0; i ): this {\n\t\tconst newPropsFactory = this.propsFactory.afterBuild(afterBuildFn);\n\t\tconst newFactory = this.clone(newPropsFactory);\n\n\t\treturn newFactory;\n\t}\n\n\t/**\n\t * Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\t * @param associations\n\t * @returns a new factory\n\t */\n\tassociations(associations: Partial): this {\n\t\tconst newPropsFactory = this.propsFactory.associations(associations);\n\t\tconst newFactory = this.clone(newPropsFactory);\n\n\t\treturn newFactory;\n\t}\n\n\t/**\n\t * Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\t * @param params\n\t * @returns a new factory\n\t */\n\tparams(params: DeepPartial): this {\n\t\tconst newPropsFactory = this.propsFactory.params(params);\n\t\tconst newFactory = this.clone(newPropsFactory);\n\n\t\treturn newFactory;\n\t}\n\n\t/**\n\t * Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\t * @param transient - transient params\n\t * @returns a new factory\n\t */\n\ttransient(transient: Partial): this {\n\t\tconst newPropsFactory = this.propsFactory.transient(transient);\n\t\tconst newFactory = this.clone(newPropsFactory);\n\n\t\treturn newFactory;\n\t}\n\n\t/**\n\t * Set sequence back to its default value\n\t */\n\trewindSequence(): void {\n\t\tthis.propsFactory.rewindSequence();\n\t}\n\n\tprotected clone>(this: F, propsFactory: Factory): F {\n\t\tconst copy = new (this.constructor as {\n\t\t\tnew (EntityClass: { new (props: U): T }, propsOfFactory: Factory): F;\n\t\t})(this.EntityClass, propsFactory);\n\n\t\treturn copy;\n\t}\n\n\t/**\n\t * Get the next sequence value\n\t * @returns the next sequence value\n\t */\n\tprotected sequence(): number {\n\t\t// eslint-disable-next-line @typescript-eslint/dot-notation\n\t\treturn this.propsFactory['sequence']();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BaseRepo.html":{"url":"injectables/BaseRepo.html","title":"injectable - BaseRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BaseRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/base.repo.ts\n \n\n\n \n Description\n \n \n This repo will be replaced in the future by a more domain driven repo, which is currently discussed in the arc chapter.\nAn example for a possible implementation is the BaseDORepo.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager)\n \n \n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:16\n \n \n\n \n \n\n \n\n\n \n import { EntityName, FilterQuery } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BaseEntity } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { ObjectId } from 'bson';\n\n/**\n * This repo will be replaced in the future by a more domain driven repo, which is currently discussed in the arc chapter.\n * An example for a possible implementation is the {@link BaseDORepo}.\n */\n@Injectable()\nexport abstract class BaseRepo {\n\tconstructor(protected readonly _em: EntityManager) {}\n\n\tabstract get entityName(): EntityName;\n\n\tcreate(entity: T): T {\n\t\treturn this._em.create(this.entityName, entity);\n\t}\n\n\tasync save(entities: T | T[]): Promise {\n\t\tawait this._em.persistAndFlush(entities);\n\t}\n\n\tasync delete(entities: T | T[]): Promise {\n\t\tawait this._em.removeAndFlush(entities);\n\t}\n\n\tasync findById(id: EntityId | ObjectId): Promise {\n\t\tconst promise: Promise = this._em.findOneOrFail(this.entityName, id as FilterQuery);\n\t\treturn promise;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BaseResponseMapper.html":{"url":"interfaces/BaseResponseMapper.html","title":"interface - BaseResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BaseResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/base-mapper.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n mapToResponse\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n \n \ncanMap(element: T)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/base-mapper.interface.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: T)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/base-mapper.interface.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AnyContentElementResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import type { AnyBoardDo } from '@shared/domain';\nimport type { AnyContentElementResponse } from '../dto';\n\nexport interface BaseResponseMapper {\n\tmapToResponse(element: T): AnyContentElementResponse;\n\n\tcanMap(element: T): boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BasicToolConfig.html":{"url":"classes/BasicToolConfig.html","title":"class - BasicToolConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BasicToolConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/config/basic-tool-config.do.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n baseUrl\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: BasicToolConfig)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/basic-tool-config.do.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n BasicToolConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:4\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigType } from '../../../common/enum';\nimport { ExternalToolConfig } from './external-tool-config.do';\n\nexport class BasicToolConfig extends ExternalToolConfig {\n\tconstructor(props: BasicToolConfig) {\n\t\tsuper({\n\t\t\ttype: ToolConfigType.BASIC,\n\t\t\tbaseUrl: props.baseUrl,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BasicToolConfigEntity.html":{"url":"classes/BasicToolConfigEntity.html","title":"class - BasicToolConfigEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BasicToolConfigEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/config/basic-tool-config.entity.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigEntity\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: BasicToolConfigEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/basic-tool-config.entity.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n BasicToolConfigEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable } from '@mikro-orm/core';\nimport { ToolConfigType } from '../../../common/enum';\nimport { ExternalToolConfigEntity } from './external-tool-config.entity';\n\n@Embeddable({ discriminatorValue: ToolConfigType.BASIC })\nexport class BasicToolConfigEntity extends ExternalToolConfigEntity {\n\tconstructor(props: BasicToolConfigEntity) {\n\t\tsuper(props);\n\t\tthis.type = ToolConfigType.BASIC;\n\t\tthis.baseUrl = props.baseUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BasicToolConfigParams.html":{"url":"classes/BasicToolConfigParams.html","title":"class - BasicToolConfigParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BasicToolConfigParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/basic-tool-config.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\nimport { ToolConfigType } from '../../../../../common/enum';\n\nexport class BasicToolConfigParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BasicToolConfigResponse.html":{"url":"classes/BasicToolConfigResponse.html","title":"class - BasicToolConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BasicToolConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/config/basic-tool-config.response.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: BasicToolConfigResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/basic-tool-config.response.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n BasicToolConfigResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigResponse } from './external-tool-config.response';\n\nexport class BasicToolConfigResponse extends ExternalToolConfigResponse {\n\t@ApiProperty()\n\ttype: ToolConfigType;\n\n\t@ApiProperty()\n\tbaseUrl: string;\n\n\tconstructor(props: BasicToolConfigResponse) {\n\t\tsuper();\n\t\tthis.type = ToolConfigType.BASIC;\n\t\tthis.baseUrl = props.baseUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BasicToolLaunchStrategy.html":{"url":"injectables/BasicToolLaunchStrategy.html","title":"injectable - BasicToolLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BasicToolLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/basic-tool-launch.strategy.ts\n \n\n\n\n \n Extends\n \n \n AbstractLaunchStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n \n buildToolLaunchDataFromConcreteConfig\n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n Public\n \n determineLaunchRequestMethod\n \n \n Private\n Async\n addParameters\n \n \n Private\n addProperty\n \n \n Private\n applyPropertiesToPathParams\n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n Private\n buildUrl\n \n \n Public\n Async\n createLaunchData\n \n \n Public\n createLaunchRequest\n \n \n Private\n Async\n getParameterValue\n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n \n buildToolLaunchDataFromConcreteConfig\n \n \n \n \n \n \n \n buildToolLaunchDataFromConcreteConfig(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:9\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n \n \n \n \n \n buildToolLaunchRequestPayload(url: string, properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n determineLaunchRequestMethod\n \n \n \n \n \n \n \n determineLaunchRequestMethod(properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:33\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LaunchRequestMethod\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n \n \n \n \n \n addParameters(propertyData: PropertyData[], customParameterDOs: CustomParameter[], scopes: literal type[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:141\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n customParameterDOs\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n scopes\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n addProperty\n \n \n \n \n \n \n \n addProperty(propertyData: PropertyData[], propertyName: string, value: string | undefined, customParameterLocation: CustomParameterLocation)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:246\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n propertyName\n \n string\n \n\n \n No\n \n\n\n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n customParameterLocation\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n applyPropertiesToPathParams\n \n \n \n \n \n \n \n applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:91\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n URL\n \n\n \n No\n \n\n\n \n \n pathProperties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n \n \n \n \n \n buildToolLaunchDataFromExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:114\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n \n \n \n \n \n buildToolLaunchDataFromTools(data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:125\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildUrl\n \n \n \n \n \n \n \n buildUrl(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:65\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createLaunchData\n \n \n \n \n \n \n \n createLaunchData(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n createLaunchRequest\n \n \n \n \n \n \n \n createLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getParameterValue\n \n \n \n \n \n \n \n getParameterValue(customParameter: CustomParameter, matchingParameterEntry: CustomParameterEntry | undefined, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:204\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n matchingParameterEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n \n \n \n handleParametersToInclude(propertyData: PropertyData[], parametersToInclude: CustomParameter[], params: CustomParameterEntry[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:167\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n parametersToInclude\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n params\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { LaunchRequestMethod, PropertyData, PropertyLocation } from '../../types';\nimport { AbstractLaunchStrategy } from './abstract-launch.strategy';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\n\n@Injectable()\nexport class BasicToolLaunchStrategy extends AbstractLaunchStrategy {\n\tpublic override buildToolLaunchDataFromConcreteConfig(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tuserId: EntityId,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tdata: IToolLaunchParams\n\t): Promise {\n\t\treturn Promise.resolve([]);\n\t}\n\n\tpublic override buildToolLaunchRequestPayload(url: string, properties: PropertyData[]): string | null {\n\t\tconst bodyProperties = properties.filter((property: PropertyData) => property.location === PropertyLocation.BODY);\n\t\tconst payload: Record = {};\n\n\t\tfor (const property of bodyProperties) {\n\t\t\tpayload[property.name] = property.value;\n\t\t}\n\n\t\tif (Object.keys(payload).length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn JSON.stringify(payload);\n\t}\n\n\tpublic override determineLaunchRequestMethod(properties: PropertyData[]): LaunchRequestMethod {\n\t\tconst hasBodyProperty: boolean = properties.some(\n\t\t\t(property: PropertyData) => property.location === PropertyLocation.BODY\n\t\t);\n\n\t\tconst launchRequestMethod: LaunchRequestMethod = hasBodyProperty\n\t\t\t? LaunchRequestMethod.POST\n\t\t\t: LaunchRequestMethod.GET;\n\n\t\treturn launchRequestMethod;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Board.html":{"url":"entities/Board.html","title":"entity - Board","body":"\n \n\n\n\n\n\n\n\n Entities\n Board\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/board.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n course\n \n \n \n references\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n course\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @OneToOne({type: 'Course', fieldName: 'courseId', wrappedReference: true, unique: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/board.entity.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n references\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('BoardElement', undefined, {fieldName: 'referenceIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/board.entity.ts:32\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, IdentifiedReference, ManyToMany, OneToOne, wrap } from '@mikro-orm/core';\nimport { BadRequestException, NotFoundException } from '@nestjs/common';\nimport { ILearnroomElement } from '../../interface';\nimport { EntityId } from '../../types';\nimport { BaseEntityWithTimestamps } from '../base.entity';\nimport type { Course } from '../course.entity';\nimport { LessonEntity } from '../lesson.entity';\nimport { Task } from '../task.entity';\nimport { BoardElement, BoardElementReference } from './boardelement.entity';\nimport { ColumnboardBoardElement } from './column-board-boardelement';\nimport { ColumnBoardTarget } from './column-board-target.entity';\nimport { LessonBoardElement } from './lesson-boardelement.entity';\nimport { TaskBoardElement } from './task-boardelement.entity';\n\nexport type BoardProps = {\n\treferences: BoardElement[];\n\tcourse: Course;\n};\n\n@Entity({ tableName: 'board' })\nexport class Board extends BaseEntityWithTimestamps {\n\tconstructor(props: BoardProps) {\n\t\tsuper();\n\t\tthis.references.set(props.references);\n\t\tthis.course = wrap(props.course).toReference();\n\t}\n\n\t@OneToOne({ type: 'Course', fieldName: 'courseId', wrappedReference: true, unique: true })\n\tcourse: IdentifiedReference;\n\n\t@ManyToMany('BoardElement', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\tgetByTargetId(id: EntityId): ILearnroomElement {\n\t\tconst element = this.getElementByTargetId(id);\n\t\treturn element.target;\n\t}\n\n\tgetElements() {\n\t\treturn this.references.getItems();\n\t}\n\n\treorderElements(ids: EntityId[]) {\n\t\tthis.validateReordering(ids);\n\n\t\tconst elements = ids.map((id) => this.getElementByTargetId(id));\n\n\t\tthis.references.set(elements);\n\t}\n\n\tprivate validateReordering(reorderedIds: EntityId[]) {\n\t\tconst existingElements = this.getElements().map((el) => el.target.id);\n\t\tconst listsEqual = this.checkListsContainingEqualEntities(reorderedIds, existingElements);\n\t\tif (!listsEqual) {\n\t\t\tthrow new BadRequestException('elements did not match. please fetch the elements of the board before reordering');\n\t\t}\n\t}\n\n\tprivate checkListsContainingEqualEntities(first: EntityId[], second: EntityId[]): boolean {\n\t\tconst compareAlphabetic = (a, b) => (a el.target.id === id);\n\t\tif (!element) throw new NotFoundException('board does not contain such element');\n\t\treturn element;\n\t}\n\n\tsyncBoardElementReferences(boardElementTargets: BoardElementReference[]) {\n\t\tthis.removeDeletedReferences(boardElementTargets);\n\t\tthis.appendNotContainedBoardElements(boardElementTargets);\n\t}\n\n\tprivate removeDeletedReferences(boardElementTargets: BoardElementReference[]) {\n\t\tconst references = this.references.getItems();\n\t\tconst onlyExistingReferences = references.filter((ref) => boardElementTargets.includes(ref.target));\n\t\tthis.references.set(onlyExistingReferences);\n\t}\n\n\tprivate appendNotContainedBoardElements(boardElementTargets: BoardElementReference[]): void {\n\t\tconst references = this.references.getItems();\n\t\tconst isNotContained = (element: BoardElementReference) => !references.some((ref) => ref.target === element);\n\t\tconst mapToBoardElement = (target: BoardElementReference) => this.createBoardElementFor(target);\n\n\t\tconst elementsToAdd = boardElementTargets.filter(isNotContained).map(mapToBoardElement);\n\t\tconst newList = [...elementsToAdd, ...references];\n\t\tthis.references.set(newList);\n\t}\n\n\tprivate createBoardElementFor(boardElementTarget: BoardElementReference): BoardElement {\n\t\tif (boardElementTarget instanceof Task) {\n\t\t\treturn new TaskBoardElement({ target: boardElementTarget });\n\t\t}\n\t\tif (boardElementTarget instanceof LessonEntity) {\n\t\t\treturn new LessonBoardElement({ target: boardElementTarget });\n\t\t}\n\t\tif (boardElementTarget instanceof ColumnBoardTarget) {\n\t\t\treturn new ColumnboardBoardElement({ target: boardElementTarget });\n\t\t}\n\t\tthrow new Error('not a valid boardElementReference');\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/BoardApiModule.html":{"url":"modules/BoardApiModule.html","title":"module - BoardApiModule","body":"\n \n\n\n\n\n Modules\n BoardApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_BoardApiModule\n\n\n\ncluster_BoardApiModule_imports\n\n\n\ncluster_BoardApiModule_providers\n\n\n\n\nBoardModule\n\nBoardModule\n\n\n\nBoardApiModule\n\nBoardApiModule\n\nBoardApiModule -->\n\nBoardModule->BoardApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nBoardApiModule -->\n\nLoggerModule->BoardApiModule\n\n\n\n\n\nBoardUc\n\nBoardUc\n\nBoardApiModule -->\n\nBoardUc->BoardApiModule\n\n\n\n\n\nCardUc\n\nCardUc\n\nBoardApiModule -->\n\nCardUc->BoardApiModule\n\n\n\n\n\nElementUc\n\nElementUc\n\nBoardApiModule -->\n\nElementUc->BoardApiModule\n\n\n\n\n\nSubmissionItemUc\n\nSubmissionItemUc\n\nBoardApiModule -->\n\nSubmissionItemUc->BoardApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/board/board-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardUc\n \n \n CardUc\n \n \n ElementUc\n \n \n SubmissionItemUc\n \n \n \n \n Controllers\n \n \n BoardController\n \n \n ColumnController\n \n \n CardController\n \n \n ElementController\n \n \n BoardSubmissionController\n \n \n \n \n Imports\n \n \n BoardModule\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { BoardModule } from './board.module';\nimport {\n\tBoardController,\n\tBoardSubmissionController,\n\tCardController,\n\tColumnController,\n\tElementController,\n} from './controller';\nimport { BoardUc, CardUc } from './uc';\nimport { ElementUc } from './uc/element.uc';\nimport { SubmissionItemUc } from './uc/submission-item.uc';\n\n@Module({\n\timports: [BoardModule, LoggerModule, forwardRef(() => AuthorizationModule)],\n\tcontrollers: [BoardController, ColumnController, CardController, ElementController, BoardSubmissionController],\n\tproviders: [BoardUc, CardUc, ElementUc, SubmissionItemUc],\n})\nexport class BoardApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardColumnBoardResponse.html":{"url":"classes/BoardColumnBoardResponse.html","title":"class - BoardColumnBoardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardColumnBoardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n columnBoardId\n \n \n \n createdAt\n \n \n \n id\n \n \n \n published\n \n \n \n \n title\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardColumnBoardResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardColumnBoardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n columnBoardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n published\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:28\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\n\nexport class BoardColumnBoardResponse {\n\tconstructor({ id, columnBoardId, title, published, createdAt, updatedAt }: BoardColumnBoardResponse) {\n\t\tthis.id = id;\n\t\tthis.columnBoardId = columnBoardId;\n\t\tthis.title = title;\n\t\tthis.published = published;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\ttitle: string;\n\n\t@ApiProperty()\n\tpublished: boolean;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\tcolumnBoardId: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardComposite.html":{"url":"classes/BoardComposite.html","title":"class - BoardComposite","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardComposite\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/board-composite.do.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n accept\n \n \n Abstract\n acceptAsync\n \n \n addChild\n \n \n hasChild\n \n \n Abstract\n isAllowedAsChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n children\n \n \n createdAt\n \n \n updatedAt\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n accept\n \n \n \n \n \n \n \n accept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n isAllowedAsChild\n \n \n \n \n \n \n \n isAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n children\n \n \n\n \n \n getchildren()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:7\n \n \n\n \n \n \n \n \n \n \n createdAt\n \n \n\n \n \n getcreatedAt()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:11\n \n \n\n \n \n \n \n \n \n \n updatedAt\n \n \n\n \n \n getupdatedAt()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:15\n \n \n\n \n \n\n \n\n\n \n import { BadRequestException, ForbiddenException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { DomainObject } from '@shared/domain/domain-object'; // fix import if it is avaible\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport abstract class BoardComposite extends DomainObject {\n\tget children(): AnyBoardDo[] {\n\t\treturn this.props.children ?? [];\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n\n\taddChild(child: AnyBoardDo, position?: number): void {\n\t\tif (!this.isAllowedAsChild(child)) {\n\t\t\tthrow new ForbiddenException(`Cannot add child of type '${child.constructor.name}'`);\n\t\t}\n\t\tposition = position ?? this.children.length;\n\t\tif (position this.children.length) {\n\t\t\tthrow new BadRequestException(`Invalid child position '${position}'`);\n\t\t}\n\t\tif (this.hasChild(child)) {\n\t\t\tthrow new BadRequestException(`Cannot add existing child id='${child.id}'`);\n\t\t}\n\t\tthis.children.splice(position, 0, child);\n\t}\n\n\tabstract isAllowedAsChild(domainObject: AnyBoardDo): boolean;\n\n\tremoveChild(child: AnyBoardDo): void {\n\t\tthis.props.children = this.children.filter((ch) => ch.id !== child.id);\n\t}\n\n\thasChild(child: AnyBoardDo): boolean {\n\t\t// TODO check by object identity instead of id\n\t\tconst exists = this.children.some((obj) => obj.id === child.id);\n\t\treturn exists;\n\t}\n\n\tabstract accept(visitor: BoardCompositeVisitor): void;\n\n\tabstract acceptAsync(visitor: BoardCompositeVisitorAsync): Promise;\n}\n\nexport interface BoardCompositeProps {\n\tid: EntityId;\n\tchildren?: AnyBoardDo[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardCompositeProps.html":{"url":"interfaces/BoardCompositeProps.html","title":"interface - BoardCompositeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardCompositeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/board-composite.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n children\n \n \n \n \n createdAt\n \n \n \n \n id\n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n children\n \n \n \n \n \n \n \n \n children: AnyBoardDo[]\n\n \n \n\n\n \n \n Type : AnyBoardDo[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BadRequestException, ForbiddenException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { DomainObject } from '@shared/domain/domain-object'; // fix import if it is avaible\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport abstract class BoardComposite extends DomainObject {\n\tget children(): AnyBoardDo[] {\n\t\treturn this.props.children ?? [];\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n\n\taddChild(child: AnyBoardDo, position?: number): void {\n\t\tif (!this.isAllowedAsChild(child)) {\n\t\t\tthrow new ForbiddenException(`Cannot add child of type '${child.constructor.name}'`);\n\t\t}\n\t\tposition = position ?? this.children.length;\n\t\tif (position this.children.length) {\n\t\t\tthrow new BadRequestException(`Invalid child position '${position}'`);\n\t\t}\n\t\tif (this.hasChild(child)) {\n\t\t\tthrow new BadRequestException(`Cannot add existing child id='${child.id}'`);\n\t\t}\n\t\tthis.children.splice(position, 0, child);\n\t}\n\n\tabstract isAllowedAsChild(domainObject: AnyBoardDo): boolean;\n\n\tremoveChild(child: AnyBoardDo): void {\n\t\tthis.props.children = this.children.filter((ch) => ch.id !== child.id);\n\t}\n\n\thasChild(child: AnyBoardDo): boolean {\n\t\t// TODO check by object identity instead of id\n\t\tconst exists = this.children.some((obj) => obj.id === child.id);\n\t\treturn exists;\n\t}\n\n\tabstract accept(visitor: BoardCompositeVisitor): void;\n\n\tabstract acceptAsync(visitor: BoardCompositeVisitorAsync): Promise;\n}\n\nexport interface BoardCompositeProps {\n\tid: EntityId;\n\tchildren?: AnyBoardDo[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardCompositeVisitor.html":{"url":"interfaces/BoardCompositeVisitor.html","title":"interface - BoardCompositeVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardCompositeVisitor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n visitCard\n \n \n \n \n visitColumn\n \n \n \n \n visitColumnBoard\n \n \n \n \n visitFileElement\n \n \n \n \n visitRichTextElement\n \n \n \n \n visitSubmissionContainerElement\n \n \n \n \n visitSubmissionItem\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n visitCard\n \n \n \n \n \n \nvisitCard(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumn\n \n \n \n \n \n \nvisitColumn(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnBoard\n \n \n \n \n \n \nvisitColumnBoard(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitFileElement\n \n \n \n \n \n \nvisitFileElement(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitRichTextElement\n \n \n \n \n \n \nvisitRichTextElement(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionContainerElement\n \n \n \n \n \n \nvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionItem\n \n \n \n \n \n \nvisitSubmissionItem(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import type { Card } from '../card.do';\nimport type { ColumnBoard } from '../column-board.do';\nimport type { Column } from '../column.do';\nimport type { FileElement } from '../file-element.do';\nimport { RichTextElement } from '../rich-text-element.do';\nimport { SubmissionContainerElement } from '../submission-container-element.do';\nimport { SubmissionItem } from '../submission-item.do';\n\nexport interface BoardCompositeVisitor {\n\tvisitColumnBoard(columnBoard: ColumnBoard): void;\n\tvisitColumn(column: Column): void;\n\tvisitCard(card: Card): void;\n\tvisitFileElement(fileElement: FileElement): void;\n\tvisitRichTextElement(richTextElement: RichTextElement): void;\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void;\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void;\n}\n\nexport interface BoardCompositeVisitorAsync {\n\tvisitColumnBoardAsync(columnBoard: ColumnBoard): Promise;\n\tvisitColumnAsync(column: Column): Promise;\n\tvisitCardAsync(card: Card): Promise;\n\tvisitFileElementAsync(fileElement: FileElement): Promise;\n\tvisitRichTextElementAsync(richTextElement: RichTextElement): Promise;\n\tvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise;\n\tvisitSubmissionItemAsync(submissionItem: SubmissionItem): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardCompositeVisitorAsync.html":{"url":"interfaces/BoardCompositeVisitorAsync.html","title":"interface - BoardCompositeVisitorAsync","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardCompositeVisitorAsync\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n visitCardAsync\n \n \n \n \n visitColumnAsync\n \n \n \n \n visitColumnBoardAsync\n \n \n \n \n visitFileElementAsync\n \n \n \n \n visitRichTextElementAsync\n \n \n \n \n visitSubmissionContainerElementAsync\n \n \n \n \n visitSubmissionItemAsync\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n visitCardAsync\n \n \n \n \n \n \nvisitCardAsync(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnAsync\n \n \n \n \n \n \nvisitColumnAsync(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnBoardAsync\n \n \n \n \n \n \nvisitColumnBoardAsync(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitFileElementAsync\n \n \n \n \n \n \nvisitFileElementAsync(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitRichTextElementAsync\n \n \n \n \n \n \nvisitRichTextElementAsync(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionContainerElementAsync\n \n \n \n \n \n \nvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionItemAsync\n \n \n \n \n \n \nvisitSubmissionItemAsync(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import type { Card } from '../card.do';\nimport type { ColumnBoard } from '../column-board.do';\nimport type { Column } from '../column.do';\nimport type { FileElement } from '../file-element.do';\nimport { RichTextElement } from '../rich-text-element.do';\nimport { SubmissionContainerElement } from '../submission-container-element.do';\nimport { SubmissionItem } from '../submission-item.do';\n\nexport interface BoardCompositeVisitor {\n\tvisitColumnBoard(columnBoard: ColumnBoard): void;\n\tvisitColumn(column: Column): void;\n\tvisitCard(card: Card): void;\n\tvisitFileElement(fileElement: FileElement): void;\n\tvisitRichTextElement(richTextElement: RichTextElement): void;\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void;\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void;\n}\n\nexport interface BoardCompositeVisitorAsync {\n\tvisitColumnBoardAsync(columnBoard: ColumnBoard): Promise;\n\tvisitColumnAsync(column: Column): Promise;\n\tvisitCardAsync(card: Card): Promise;\n\tvisitFileElementAsync(fileElement: FileElement): Promise;\n\tvisitRichTextElementAsync(richTextElement: RichTextElement): Promise;\n\tvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise;\n\tvisitSubmissionItemAsync(submissionItem: SubmissionItem): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardContextResponse.html":{"url":"classes/BoardContextResponse.html","title":"class - BoardContextResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardContextResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/board-context.reponse.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardContextResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board-context.reponse.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardContextResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board-context.reponse.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : BoardExternalReferenceType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: BoardExternalReferenceType, enumName: 'BoardExternalReferenceType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board-context.reponse.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { BoardExternalReferenceType } from '@shared/domain';\n\nexport class BoardContextResponse {\n\tconstructor({ id, type }: BoardContextResponse) {\n\t\tthis.id = id;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({ enum: BoardExternalReferenceType, enumName: 'BoardExternalReferenceType' })\n\ttype: BoardExternalReferenceType;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/BoardController.html":{"url":"controllers/BoardController.html","title":"controller - BoardController","body":"\n \n\n\n\n\n\n\n Controllers\n BoardController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/board.controller.ts\n \n\n \n Prefix\n \n \n boards\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createColumn\n \n \n \n \n \n \n \n \n \n Async\n deleteBoard\n \n \n \n \n \n \n \n \n Async\n getBoardContext\n \n \n \n \n \n \n \n \n Async\n getBoardSkeleton\n \n \n \n \n \n \n \n \n \n Async\n updateBoardTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createColumn\n \n \n \n \n \n \n \n createColumn(urlParams: BoardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new column on a board.'})@ApiResponse({status: 201, type: ColumnResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Post(':boardId/columns')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:94\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteBoard\n \n \n \n \n \n \n \n deleteBoard(urlParams: BoardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Delete a board.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Delete(':boardId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getBoardContext\n \n \n \n \n \n \n \n getBoardContext(urlParams: BoardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get the context of a board.'})@ApiResponse({status: 200, type: BoardContextResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Get(':boardId/context')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getBoardSkeleton\n \n \n \n \n \n \n \n getBoardSkeleton(urlParams: BoardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get the skeleton of a a board.'})@ApiResponse({status: 200, type: BoardResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Get(':boardId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateBoardTitle\n \n \n \n \n \n \n \n updateBoardTitle(urlParams: BoardUrlParams, bodyParams: RenameBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update the title of a board.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':boardId/title')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n RenameBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tGet,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\n} from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { BoardUc } from '../uc';\nimport { BoardResponse, BoardUrlParams, ColumnResponse, RenameBodyParams } from './dto';\nimport { BoardContextResponse } from './dto/board/board-context.reponse';\nimport { BoardResponseMapper, ColumnResponseMapper } from './mapper';\n\n@ApiTags('Board')\n@Authenticate('jwt')\n@Controller('boards')\nexport class BoardController {\n\tconstructor(private readonly boardUc: BoardUc) {}\n\n\t@ApiOperation({ summary: 'Get the skeleton of a a board.' })\n\t@ApiResponse({ status: 200, type: BoardResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@Get(':boardId')\n\tasync getBoardSkeleton(\n\t\t@Param() urlParams: BoardUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst board = await this.boardUc.findBoard(currentUser.userId, urlParams.boardId);\n\n\t\tconst response = BoardResponseMapper.mapToResponse(board);\n\n\t\treturn response;\n\t}\n\n\t@ApiOperation({ summary: 'Get the context of a board.' })\n\t@ApiResponse({ status: 200, type: BoardContextResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@Get(':boardId/context')\n\tasync getBoardContext(\n\t\t@Param() urlParams: BoardUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst boardContext = await this.boardUc.findBoardContext(currentUser.userId, urlParams.boardId);\n\n\t\tconst response = new BoardContextResponse(boardContext);\n\n\t\treturn response;\n\t}\n\n\t@ApiOperation({ summary: 'Update the title of a board.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':boardId/title')\n\tasync updateBoardTitle(\n\t\t@Param() urlParams: BoardUrlParams,\n\t\t@Body() bodyParams: RenameBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.updateBoardTitle(currentUser.userId, urlParams.boardId, bodyParams.title);\n\t}\n\n\t@ApiOperation({ summary: 'Delete a board.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Delete(':boardId')\n\tasync deleteBoard(@Param() urlParams: BoardUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.boardUc.deleteBoard(currentUser.userId, urlParams.boardId);\n\t}\n\n\t@ApiOperation({ summary: 'Create a new column on a board.' })\n\t@ApiResponse({ status: 201, type: ColumnResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@Post(':boardId/columns')\n\tasync createColumn(\n\t\t@Param() urlParams: BoardUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst column = await this.boardUc.createColumn(currentUser.userId, urlParams.boardId);\n\n\t\tconst response = ColumnResponseMapper.mapToResponse(column);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardCopyService.html":{"url":"injectables/BoardCopyService.html","title":"injectable - BoardCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardCopyService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/board-copy.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyBoard\n \n \n Private\n Async\n copyBoardElements\n \n \n Private\n Async\n copyLesson\n \n \n Private\n Async\n copyTask\n \n \n Private\n extractReferences\n \n \n Private\n sortByOriginalOrder\n \n \n Private\n updateCopiedEmbeddedTasksOfLessons\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, boardRepo: BoardRepo, taskCopyService: TaskCopyService, lessonCopyService: LessonCopyService, copyHelperService: CopyHelperService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n boardRepo\n \n \n BoardRepo\n \n \n \n No\n \n \n \n \n taskCopyService\n \n \n TaskCopyService\n \n \n \n No\n \n \n \n \n lessonCopyService\n \n \n LessonCopyService\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyBoard\n \n \n \n \n \n \n \n copyBoard(params: BoardCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n BoardCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyBoardElements\n \n \n \n \n \n \n \n copyBoardElements(boardElements: BoardElement[], user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardElements\n \n BoardElement[]\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n destinationCourse\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(originalLesson: LessonEntity, user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalLesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n destinationCourse\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(originalTask: Task, user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalTask\n \n Task\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n destinationCourse\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n extractReferences\n \n \n \n \n \n \n \n extractReferences(statuses: CopyStatus[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n statuses\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardElement[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n sortByOriginalOrder\n \n \n \n \n \n \n \n sortByOriginalOrder(resolved: [])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:139\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n resolved\n \n []\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n updateCopiedEmbeddedTasksOfLessons\n \n \n \n \n \n \n \n updateCopiedEmbeddedTasksOfLessons(boardStatus: CopyStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:126\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tBoard,\n\tBoardElement,\n\tBoardElementType,\n\tCourse,\n\tisLesson,\n\tisTask,\n\tLessonEntity,\n\tLessonBoardElement,\n\tTask,\n\tTaskBoardElement,\n\tUser,\n} from '@shared/domain';\nimport { BoardRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { CopyElementType, CopyHelperService, CopyStatus } from '@src/modules/copy-helper';\nimport { getResolvedValues } from '@src/modules/files-storage/helper';\nimport { LessonCopyService } from '@src/modules/lesson/service';\nimport { TaskCopyService } from '@src/modules/task/service';\nimport { sortBy } from 'lodash';\n\ntype BoardCopyParams = {\n\toriginalBoard: Board;\n\tdestinationCourse: Course;\n\tuser: User;\n};\n\n@Injectable()\nexport class BoardCopyService {\n\tconstructor(\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly boardRepo: BoardRepo,\n\t\tprivate readonly taskCopyService: TaskCopyService,\n\t\tprivate readonly lessonCopyService: LessonCopyService,\n\t\tprivate readonly copyHelperService: CopyHelperService\n\t) {}\n\n\tasync copyBoard(params: BoardCopyParams): Promise {\n\t\tconst { originalBoard, user, destinationCourse } = params;\n\n\t\tconst boardElements: BoardElement[] = originalBoard.getElements();\n\t\tconst elements: CopyStatus[] = await this.copyBoardElements(boardElements, user, destinationCourse);\n\t\tconst references: BoardElement[] = this.extractReferences(elements);\n\n\t\tlet boardCopy: Board = new Board({ references, course: destinationCourse });\n\t\tlet status: CopyStatus = {\n\t\t\ttitle: 'board',\n\t\t\ttype: CopyElementType.BOARD,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\tcopyEntity: boardCopy,\n\t\t\toriginalEntity: params.originalBoard,\n\t\t\telements,\n\t\t};\n\n\t\tstatus = this.updateCopiedEmbeddedTasksOfLessons(status);\n\t\tif (status.copyEntity) {\n\t\t\tboardCopy = status.copyEntity as Board;\n\t\t}\n\t\tawait this.boardRepo.save(boardCopy);\n\n\t\treturn status;\n\t}\n\n\tprivate async copyBoardElements(\n\t\tboardElements: BoardElement[],\n\t\tuser: User,\n\t\tdestinationCourse: Course\n\t): Promise {\n\t\tconst promises: Promise[] = boardElements.map((element, pos) => {\n\t\t\tif (element.target === undefined) {\n\t\t\t\treturn Promise.reject(new Error('Broken boardelement - not pointing to any target entity'));\n\t\t\t}\n\n\t\t\tif (element.boardElementType === BoardElementType.Task && isTask(element.target)) {\n\t\t\t\treturn this.copyTask(element.target, user, destinationCourse).then((status) => [pos, status]);\n\t\t\t}\n\n\t\t\tif (element.boardElementType === BoardElementType.Lesson && isLesson(element.target)) {\n\t\t\t\treturn this.copyLesson(element.target, user, destinationCourse).then((status) => [pos, status]);\n\t\t\t}\n\n\t\t\t/* istanbul ignore next */\n\t\t\tthis.logger.warn(`BoardCopyService unable to handle boardElementType.`);\n\t\t\t/* istanbul ignore next */\n\t\t\treturn Promise.reject(new Error(`BoardCopyService unable to handle boardElementType.`));\n\t\t});\n\n\t\tconst results = await Promise.allSettled(promises);\n\t\tconst resolved: Array = getResolvedValues(results);\n\t\tconst statuses: CopyStatus[] = this.sortByOriginalOrder(resolved);\n\t\treturn statuses;\n\t}\n\n\tprivate async copyLesson(originalLesson: LessonEntity, user: User, destinationCourse: Course): Promise {\n\t\treturn this.lessonCopyService.copyLesson({\n\t\t\toriginalLessonId: originalLesson.id,\n\t\t\tuser,\n\t\t\tdestinationCourse,\n\t\t});\n\t}\n\n\tprivate async copyTask(originalTask: Task, user: User, destinationCourse: Course): Promise {\n\t\treturn this.taskCopyService.copyTask({\n\t\t\toriginalTaskId: originalTask.id,\n\t\t\tuser,\n\t\t\tdestinationCourse,\n\t\t});\n\t}\n\n\tprivate extractReferences(statuses: CopyStatus[]): BoardElement[] {\n\t\tconst references: BoardElement[] = [];\n\t\tstatuses.forEach((status) => {\n\t\t\tif (status.copyEntity instanceof Task) {\n\t\t\t\tconst taskElement = new TaskBoardElement({ target: status.copyEntity });\n\t\t\t\treferences.push(taskElement);\n\t\t\t}\n\t\t\tif (status.copyEntity instanceof LessonEntity) {\n\t\t\t\tconst lessonElement = new LessonBoardElement({ target: status.copyEntity });\n\t\t\t\treferences.push(lessonElement);\n\t\t\t}\n\t\t});\n\t\treturn references;\n\t}\n\n\tprivate updateCopiedEmbeddedTasksOfLessons(boardStatus: CopyStatus): CopyStatus {\n\t\tconst copyDict = this.copyHelperService.buildCopyEntityDict(boardStatus);\n\t\tconst elements = boardStatus.elements ?? [];\n\t\tconst updatedElements = elements.map((elementCopyStatus) => {\n\t\t\tif (elementCopyStatus.type === CopyElementType.LESSON) {\n\t\t\t\treturn this.lessonCopyService.updateCopiedEmbeddedTasks(elementCopyStatus, copyDict);\n\t\t\t}\n\t\t\treturn elementCopyStatus;\n\t\t});\n\t\tboardStatus.elements = updatedElements;\n\t\treturn boardStatus;\n\t}\n\n\tprivate sortByOriginalOrder(resolved: [number, CopyStatus][]): CopyStatus[] {\n\t\tconst sortByPos = sortBy(resolved, ([pos]) => pos);\n\t\tconst statuses = sortByPos.map(([, status]) => status);\n\t\treturn statuses;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardDoAuthorizable.html":{"url":"classes/BoardDoAuthorizable.html","title":"class - BoardDoAuthorizable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardDoAuthorizable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n users\n \n \n requiredUserRole\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n users\n \n \n\n \n \n getusers()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts:30\n \n \n\n \n \n \n \n \n \n \n requiredUserRole\n \n \n\n \n \n getrequiredUserRole()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts:34\n \n \n\n \n \n setrequiredUserRole(userRoleEnum: UserRoleEnum | undefined)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts:38\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userRoleEnum\n \n \n UserRoleEnum | undefined\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { EntityId } from '@shared/domain/types';\n\nexport enum BoardRoles {\n\tEDITOR = 'editor',\n\tREADER = 'reader',\n}\n/**\n\tdeprecated: This is a temporary solution. This will be replaced with a more proper permission system.\n*/\nexport enum UserRoleEnum {\n\tTEACHER = 'teacher',\n\tSTUDENT = 'student',\n\tSUBSTITUTION_TEACHER = 'subsitution teacher',\n}\n\nexport interface UserBoardRoles {\n\troles: BoardRoles[];\n\tuserId: EntityId;\n\tuserRoleEnum: UserRoleEnum;\n}\n\nexport interface BoardDoAuthorizableProps extends AuthorizableObject {\n\tid: EntityId;\n\tusers: UserBoardRoles[];\n\trequiredUserRole?: UserRoleEnum;\n}\n\nexport class BoardDoAuthorizable extends DomainObject {\n\tget users(): UserBoardRoles[] {\n\t\treturn this.props.users;\n\t}\n\n\tget requiredUserRole(): UserRoleEnum | undefined {\n\t\treturn this.props.requiredUserRole;\n\t}\n\n\tset requiredUserRole(userRoleEnum: UserRoleEnum | undefined) {\n\t\tthis.props.requiredUserRole = userRoleEnum;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardDoAuthorizableProps.html":{"url":"interfaces/BoardDoAuthorizableProps.html","title":"interface - BoardDoAuthorizableProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardDoAuthorizableProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts\n \n\n\n\n \n Extends\n \n \n AuthorizableObject\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n Optional\n \n requiredUserRole\n \n \n \n \n users\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n requiredUserRole\n \n \n \n \n \n \n \n \n requiredUserRole: UserRoleEnum\n\n \n \n\n\n \n \n Type : UserRoleEnum\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n users: UserBoardRoles[]\n\n \n \n\n\n \n \n Type : UserBoardRoles[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { EntityId } from '@shared/domain/types';\n\nexport enum BoardRoles {\n\tEDITOR = 'editor',\n\tREADER = 'reader',\n}\n/**\n\tdeprecated: This is a temporary solution. This will be replaced with a more proper permission system.\n*/\nexport enum UserRoleEnum {\n\tTEACHER = 'teacher',\n\tSTUDENT = 'student',\n\tSUBSTITUTION_TEACHER = 'subsitution teacher',\n}\n\nexport interface UserBoardRoles {\n\troles: BoardRoles[];\n\tuserId: EntityId;\n\tuserRoleEnum: UserRoleEnum;\n}\n\nexport interface BoardDoAuthorizableProps extends AuthorizableObject {\n\tid: EntityId;\n\tusers: UserBoardRoles[];\n\trequiredUserRole?: UserRoleEnum;\n}\n\nexport class BoardDoAuthorizable extends DomainObject {\n\tget users(): UserBoardRoles[] {\n\t\treturn this.props.users;\n\t}\n\n\tget requiredUserRole(): UserRoleEnum | undefined {\n\t\treturn this.props.requiredUserRole;\n\t}\n\n\tset requiredUserRole(userRoleEnum: UserRoleEnum | undefined) {\n\t\tthis.props.requiredUserRole = userRoleEnum;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardDoAuthorizableService.html":{"url":"injectables/BoardDoAuthorizableService.html","title":"injectable - BoardDoAuthorizableService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoAuthorizableService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/board-do-authorizable.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n getBoardAuthorizable\n \n \n Private\n mapCourseUsersToUsergroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, courseRepo: CourseRepo)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-authorizable.service.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-authorizable.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getBoardAuthorizable\n \n \n \n \n \n \n \n getBoardAuthorizable(boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-authorizable.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapCourseUsersToUsergroup\n \n \n \n \n \n \n \n mapCourseUsersToUsergroup(course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-authorizable.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserBoardRoles[]\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tBoardDoAuthorizable,\n\tBoardExternalReferenceType,\n\tBoardRoles,\n\tColumnBoard,\n\tCourse,\n\tEntityId,\n\tUserBoardRoles,\n\tUserRoleEnum,\n} from '@shared/domain';\nimport { CourseRepo } from '@shared/repo';\nimport { AuthorizationLoaderService } from '@src/modules/authorization';\nimport { BoardDoRepo } from '../repo';\n\n@Injectable()\nexport class BoardDoAuthorizableService implements AuthorizationLoaderService {\n\tconstructor(\n\t\t@Inject(forwardRef(() => BoardDoRepo)) private readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly courseRepo: CourseRepo\n\t) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst boardDo = await this.boardDoRepo.findById(id, 1);\n\t\tconst { users } = await this.getBoardAuthorizable(boardDo);\n\t\tconst boardDoAuthorizable = new BoardDoAuthorizable({ users, id });\n\n\t\treturn boardDoAuthorizable;\n\t}\n\n\tasync getBoardAuthorizable(boardDo: AnyBoardDo): Promise {\n\t\tconst ancestorIds = await this.boardDoRepo.getAncestorIds(boardDo);\n\t\tconst ids = [...ancestorIds, boardDo.id];\n\t\tconst rootId = ids[0];\n\t\tconst rootBoardDo = await this.boardDoRepo.findById(rootId, 1);\n\t\tif (rootBoardDo instanceof ColumnBoard) {\n\t\t\tif (rootBoardDo.context?.type === BoardExternalReferenceType.Course) {\n\t\t\t\tconst course = await this.courseRepo.findById(rootBoardDo.context.id);\n\t\t\t\tconst users = this.mapCourseUsersToUsergroup(course);\n\t\t\t\treturn new BoardDoAuthorizable({ users, id: boardDo.id });\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new Error('root boardnode was expected to be a ColumnBoard');\n\t\t}\n\n\t\treturn new BoardDoAuthorizable({ users: [], id: boardDo.id });\n\t}\n\n\tprivate mapCourseUsersToUsergroup(course: Course): UserBoardRoles[] {\n\t\tconst users = [\n\t\t\t...course.getTeacherIds().map((userId) => {\n\t\t\t\treturn { userId, roles: [BoardRoles.EDITOR], userRoleEnum: UserRoleEnum.TEACHER };\n\t\t\t}),\n\t\t\t...course.getSubstitutionTeacherIds().map((userId) => {\n\t\t\t\treturn { userId, roles: [BoardRoles.EDITOR], userRoleEnum: UserRoleEnum.SUBSTITUTION_TEACHER };\n\t\t\t}),\n\t\t\t...course.getStudentIds().map((userId) => {\n\t\t\t\treturn { userId, roles: [BoardRoles.READER], userRoleEnum: UserRoleEnum.STUDENT };\n\t\t\t}),\n\t\t];\n\t\treturn users;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardDoBuilder.html":{"url":"interfaces/BoardDoBuilder.html","title":"interface - BoardDoBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardDoBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n buildCard\n \n \n \n \n buildColumn\n \n \n \n \n buildColumnBoard\n \n \n \n \n buildFileElement\n \n \n \n \n buildRichTextElement\n \n \n \n \n buildSubmissionContainerElement\n \n \n \n \n buildSubmissionItem\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n buildCard\n \n \n \n \n \n \nbuildCard(boardNode: CardNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n CardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Card\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildColumn\n \n \n \n \n \n \nbuildColumn(boardNode: ColumnNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n ColumnNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Column\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildColumnBoard\n \n \n \n \n \n \nbuildColumnBoard(boardNode: ColumnBoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n ColumnBoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ColumnBoard\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildFileElement\n \n \n \n \n \n \nbuildFileElement(boardNode: FileElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n FileElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildRichTextElement\n \n \n \n \n \n \nbuildRichTextElement(boardNode: RichTextElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n RichTextElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RichTextElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildSubmissionContainerElement\n \n \n \n \n \n \nbuildSubmissionContainerElement(boardNode: SubmissionContainerElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n SubmissionContainerElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionContainerElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildSubmissionItem\n \n \n \n \n \n \nbuildSubmissionItem(boardNode: SubmissionItemNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n SubmissionItemNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionItem\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { SubmissionItem } from '@shared/domain/domainobject/board/submission-item.do';\nimport type {\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n} from '../../../domainobject';\nimport type { CardNode } from '../card-node.entity';\nimport type { ColumnBoardNode } from '../column-board-node.entity';\nimport type { ColumnNode } from '../column-node.entity';\nimport type { FileElementNode } from '../file-element-node.entity';\nimport type { RichTextElementNode } from '../rich-text-element-node.entity';\nimport type { SubmissionContainerElementNode } from '../submission-container-element-node.entity';\nimport type { SubmissionItemNode } from '../submission-item-node.entity';\n\nexport interface BoardDoBuilder {\n\tbuildColumnBoard(boardNode: ColumnBoardNode): ColumnBoard;\n\tbuildColumn(boardNode: ColumnNode): Column;\n\tbuildCard(boardNode: CardNode): Card;\n\tbuildFileElement(boardNode: FileElementNode): FileElement;\n\tbuildRichTextElement(boardNode: RichTextElementNode): RichTextElement;\n\tbuildSubmissionContainerElement(boardNode: SubmissionContainerElementNode): SubmissionContainerElement;\n\tbuildSubmissionItem(boardNode: SubmissionItemNode): SubmissionItem;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardDoBuilderImpl.html":{"url":"classes/BoardDoBuilderImpl.html","title":"class - BoardDoBuilderImpl","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardDoBuilderImpl\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/board-do.builder-impl.ts\n \n\n\n\n\n \n Implements\n \n \n BoardDoBuilder\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n childrenMap\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n buildCard\n \n \n buildChildren\n \n \n Public\n buildColumn\n \n \n Public\n buildColumnBoard\n \n \n Public\n buildDomainObject\n \n \n Public\n buildFileElement\n \n \n Public\n buildRichTextElement\n \n \n Public\n buildSubmissionContainerElement\n \n \n Public\n buildSubmissionItem\n \n \n ensureBoardNodeType\n \n \n ensureLeafNode\n \n \n getChildren\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(descendants: BoardNode[])\n \n \n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n descendants\n \n \n BoardNode[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n childrenMap\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Default value : {}\n \n \n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:26\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n buildCard\n \n \n \n \n \n \n \n buildCard(boardNode: CardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n CardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Card\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildChildren\n \n \n \n \n \n \nbuildChildren(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:146\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildColumn\n \n \n \n \n \n \n \n buildColumn(boardNode: ColumnNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n ColumnNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Column\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildColumnBoard\n \n \n \n \n \n \n \n buildColumnBoard(boardNode: ColumnBoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n ColumnBoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ColumnBoard\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildDomainObject\n \n \n \n \n \n \n \n buildDomainObject(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:35\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildFileElement\n \n \n \n \n \n \n \n buildFileElement(boardNode: FileElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n FileElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildRichTextElement\n \n \n \n \n \n \n \n buildRichTextElement(boardNode: RichTextElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:104\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n RichTextElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RichTextElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildSubmissionContainerElement\n \n \n \n \n \n \n \n buildSubmissionContainerElement(boardNode: SubmissionContainerElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:118\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n SubmissionContainerElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionContainerElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildSubmissionItem\n \n \n \n \n \n \n \n buildSubmissionItem(boardNode: SubmissionItemNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:132\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n SubmissionItemNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionItem\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ensureBoardNodeType\n \n \n \n \n \n \nensureBoardNodeType(boardNode: BoardNode | BoardNode[], type: BoardNodeType | BoardNodeType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:162\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode | BoardNode[]\n \n\n \n No\n \n\n\n \n \n type\n \n BoardNodeType | BoardNodeType[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ensureLeafNode\n \n \n \n \n \n \nensureLeafNode(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:157\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getChildren\n \n \n \n \n \n \ngetChildren(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:151\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardNode[]\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport type {\n\tBoardDoBuilder,\n\tBoardNode,\n\tCardNode,\n\tColumnBoardNode,\n\tColumnNode,\n\tFileElementNode,\n\tRichTextElementNode,\n\tSubmissionContainerElementNode,\n\tSubmissionItemNode,\n} from '@shared/domain';\nimport {\n\tAnyBoardDo,\n\tBoardNodeType,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\n\nexport class BoardDoBuilderImpl implements BoardDoBuilder {\n\tprivate childrenMap: Record = {};\n\n\tconstructor(descendants: BoardNode[] = []) {\n\t\tfor (const boardNode of descendants) {\n\t\t\tthis.childrenMap[boardNode.path] ||= [];\n\t\t\tthis.childrenMap[boardNode.path].push(boardNode);\n\t\t}\n\t}\n\n\tpublic buildDomainObject(boardNode: BoardNode): T {\n\t\treturn boardNode.useDoBuilder(this) as T;\n\t}\n\n\tpublic buildColumnBoard(boardNode: ColumnBoardNode): ColumnBoard {\n\t\tthis.ensureBoardNodeType(this.getChildren(boardNode), BoardNodeType.COLUMN);\n\n\t\tconst columns = this.buildChildren(boardNode);\n\n\t\tconst columnBoard = new ColumnBoard({\n\t\t\tid: boardNode.id,\n\t\t\ttitle: boardNode.title ?? '',\n\t\t\tchildren: columns,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t\tcontext: boardNode.context,\n\t\t});\n\n\t\treturn columnBoard;\n\t}\n\n\tpublic buildColumn(boardNode: ColumnNode): Column {\n\t\tthis.ensureBoardNodeType(this.getChildren(boardNode), BoardNodeType.CARD);\n\n\t\tconst cards = this.buildChildren(boardNode);\n\n\t\tconst column = new Column({\n\t\t\tid: boardNode.id,\n\t\t\ttitle: boardNode.title ?? '',\n\t\t\tchildren: cards,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn column;\n\t}\n\n\tpublic buildCard(boardNode: CardNode): Card {\n\t\tthis.ensureBoardNodeType(this.getChildren(boardNode), [\n\t\t\tBoardNodeType.FILE_ELEMENT,\n\t\t\tBoardNodeType.RICH_TEXT_ELEMENT,\n\t\t\tBoardNodeType.SUBMISSION_CONTAINER_ELEMENT,\n\t\t]);\n\n\t\tconst elements = this.buildChildren(boardNode);\n\n\t\tconst card = new Card({\n\t\t\tid: boardNode.id,\n\t\t\ttitle: boardNode.title ?? '',\n\t\t\theight: boardNode.height,\n\t\t\tchildren: elements,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn card;\n\t}\n\n\tpublic buildFileElement(boardNode: FileElementNode): FileElement {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element = new FileElement({\n\t\t\tid: boardNode.id,\n\t\t\tcaption: boardNode.caption,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn element;\n\t}\n\n\tpublic buildRichTextElement(boardNode: RichTextElementNode): RichTextElement {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element = new RichTextElement({\n\t\t\tid: boardNode.id,\n\t\t\ttext: boardNode.text,\n\t\t\tinputFormat: boardNode.inputFormat,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn element;\n\t}\n\n\tpublic buildSubmissionContainerElement(boardNode: SubmissionContainerElementNode): SubmissionContainerElement {\n\t\tthis.ensureBoardNodeType(this.getChildren(boardNode), [BoardNodeType.SUBMISSION_ITEM]);\n\t\tconst elements = this.buildChildren(boardNode);\n\n\t\tconst element = new SubmissionContainerElement({\n\t\t\tid: boardNode.id,\n\t\t\tdueDate: boardNode.dueDate,\n\t\t\tchildren: elements,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn element;\n\t}\n\n\tpublic buildSubmissionItem(boardNode: SubmissionItemNode): SubmissionItem {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element = new SubmissionItem({\n\t\t\tid: boardNode.id,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t\tcompleted: boardNode.completed,\n\t\t\tuserId: boardNode.userId,\n\t\t\tchildren: [],\n\t\t});\n\t\treturn element;\n\t}\n\n\tbuildChildren(boardNode: BoardNode): T[] {\n\t\tconst children = this.getChildren(boardNode).map((node) => node.useDoBuilder(this));\n\t\treturn children as T[];\n\t}\n\n\tgetChildren(boardNode: BoardNode): BoardNode[] {\n\t\tconst children = this.childrenMap[boardNode.pathOfChildren] || [];\n\t\tconst sortedChildren = children.sort((a, b) => a.position - b.position);\n\t\treturn sortedChildren;\n\t}\n\n\tensureLeafNode(boardNode: BoardNode) {\n\t\tconst children = this.getChildren(boardNode);\n\t\tif (children.length !== 0) throw new Error('BoardNode is a leaf node but children were provided.');\n\t}\n\n\tensureBoardNodeType(boardNode: BoardNode | BoardNode[], type: BoardNodeType | BoardNodeType[]) {\n\t\tconst single = (bn: BoardNode, t: BoardNodeType | BoardNodeType[]) => {\n\t\t\tconst isValid = Array.isArray(t) ? type.includes(bn.type) : t === bn.type;\n\t\t\tif (!isValid) {\n\t\t\t\tthrow new NotImplementedException(`Invalid node type '${bn.type}'`);\n\t\t\t}\n\t\t};\n\n\t\tif (Array.isArray(boardNode)) {\n\t\t\tboardNode.forEach((bn) => single(bn, type));\n\t\t} else {\n\t\t\tsingle(boardNode, type);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardDoRepo.html":{"url":"injectables/BoardDoRepo.html","title":"injectable - BoardDoRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/board-do.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n findByClassAndId\n \n \n Async\n findById\n \n \n Async\n findByIds\n \n \n Async\n findIdsByExternalReference\n \n \n Async\n findParentOfId\n \n \n Async\n getAncestorIds\n \n \n Async\n getTitlesByIds\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, boardNodeRepo: BoardNodeRepo, deleteVisitor: RecursiveDeleteVisitor)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n boardNodeRepo\n \n \n BoardNodeRepo\n \n \n \n No\n \n \n \n \n deleteVisitor\n \n \n RecursiveDeleteVisitor\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:93\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByClassAndId\n \n \n \n \n \n \n \n findByClassAndId(doClass: literal type, id: EntityId, depth?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:26\n \n \n\n \n \n Type parameters :\n \n S\n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n doClass\n \n literal type\n \n\n \n No\n \n\n\n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n depth\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, depth?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n depth\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByIds\n \n \n \n \n \n \n \n findByIds(ids: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ids\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findIdsByExternalReference\n \n \n \n \n \n \n \n findIdsByExternalReference(reference: BoardExternalReference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n BoardExternalReference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findParentOfId\n \n \n \n \n \n \n \n findParentOfId(childId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n childId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getAncestorIds\n \n \n \n \n \n \n \n getAncestorIds(boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getTitlesByIds\n \n \n \n \n \n \n \n getTitlesByIds(id: EntityId[] | EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId[] | EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(domainObject: AnyBoardDo | AnyBoardDo[], parent?: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo | AnyBoardDo[]\n \n\n \n No\n \n\n\n \n \n parent\n \n AnyBoardDo\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Utils } from '@mikro-orm/core';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable, NotFoundException } from '@nestjs/common';\nimport { AnyBoardDo, BoardExternalReference, BoardNode, ColumnBoardNode, EntityId } from '@shared/domain';\nimport { BoardDoBuilderImpl } from './board-do.builder-impl';\nimport { BoardNodeRepo } from './board-node.repo';\nimport { RecursiveDeleteVisitor } from './recursive-delete.vistor';\nimport { RecursiveSaveVisitor } from './recursive-save.visitor';\n\n@Injectable()\nexport class BoardDoRepo {\n\tconstructor(\n\t\tprivate readonly em: EntityManager,\n\t\tprivate readonly boardNodeRepo: BoardNodeRepo,\n\t\tprivate readonly deleteVisitor: RecursiveDeleteVisitor\n\t) {}\n\n\tasync findById(id: EntityId, depth?: number): Promise {\n\t\tconst boardNode = await this.boardNodeRepo.findById(id);\n\t\tconst descendants = await this.boardNodeRepo.findDescendants(boardNode, depth);\n\t\tconst domainObject = new BoardDoBuilderImpl(descendants).buildDomainObject(boardNode);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByClassAndId(\n\t\tdoClass: { new (props: S): T },\n\t\tid: EntityId,\n\t\tdepth?: number\n\t): Promise {\n\t\tconst domainObject = await this.findById(id, depth);\n\t\tif (!(domainObject instanceof doClass)) {\n\t\t\tthrow new NotFoundException(`There is no '${doClass.name}' with this id`);\n\t\t}\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByIds(ids: EntityId[]): Promise {\n\t\tconst boardNodes = await this.em.find(BoardNode, { id: { $in: ids } });\n\n\t\tconst childrenMap = await this.boardNodeRepo.findDescendantsOfMany(boardNodes);\n\n\t\tconst domainObjects = boardNodes.map((boardNode) => {\n\t\t\tconst children = childrenMap[boardNode.pathOfChildren];\n\t\t\tconst domainObject = new BoardDoBuilderImpl(children).buildDomainObject(boardNode);\n\t\t\treturn domainObject;\n\t\t});\n\n\t\treturn domainObjects;\n\t}\n\n\tasync getTitlesByIds(id: EntityId[] | EntityId): Promise> {\n\t\tconst ids = Utils.asArray(id);\n\t\tconst boardNodes = await this.em.find(BoardNode, { id: { $in: ids } });\n\n\t\tconst titlesMap = boardNodes.reduce((map, node) => {\n\t\t\tmap[node.id] = node.title ?? '';\n\t\t\treturn map;\n\t\t}, {});\n\n\t\treturn titlesMap;\n\t}\n\n\tasync findIdsByExternalReference(reference: BoardExternalReference): Promise {\n\t\tconst boardNodes = await this.em.find(ColumnBoardNode, {\n\t\t\t_contextId: new ObjectId(reference.id),\n\t\t\t_contextType: reference.type,\n\t\t});\n\t\tconst ids = boardNodes.map((o) => o.id);\n\n\t\treturn ids;\n\t}\n\n\tasync findParentOfId(childId: EntityId): Promise {\n\t\tconst boardNode = await this.boardNodeRepo.findById(childId);\n\t\tconst domainObject = boardNode.parentId ? this.findById(boardNode.parentId) : undefined;\n\n\t\treturn domainObject;\n\t}\n\n\tasync getAncestorIds(boardDo: AnyBoardDo): Promise {\n\t\tconst boardNode = await this.boardNodeRepo.findById(boardDo.id);\n\t\treturn boardNode.ancestorIds;\n\t}\n\n\tasync save(domainObject: AnyBoardDo | AnyBoardDo[], parent?: AnyBoardDo): Promise {\n\t\tconst saveVisitor = new RecursiveSaveVisitor(this.em, this.boardNodeRepo);\n\t\tawait saveVisitor.save(domainObject, parent);\n\t\tawait this.em.flush();\n\t}\n\n\tasync delete(domainObject: AnyBoardDo): Promise {\n\t\tawait domainObject.acceptAsync(this.deleteVisitor);\n\t\tawait this.em.flush();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardDoRule.html":{"url":"injectables/BoardDoRule.html","title":"injectable - BoardDoRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/board-do.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/board-do.rule.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, boardDoAuthorizable: BoardDoAuthorizable, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/board-do.rule.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n boardDoAuthorizable\n \n BoardDoAuthorizable\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, boardDoAuthorizable: BoardDoAuthorizable)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/board-do.rule.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n boardDoAuthorizable\n \n BoardDoAuthorizable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { BoardDoAuthorizable, BoardRoles } from '../domainobject';\nimport { User } from '../entity';\n\n@Injectable()\nexport class BoardDoRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, boardDoAuthorizable: BoardDoAuthorizable): boolean {\n\t\tconst isMatched = boardDoAuthorizable instanceof BoardDoAuthorizable;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, boardDoAuthorizable: BoardDoAuthorizable, context: AuthorizationContext): boolean {\n\t\tconst hasPermission = this.authorizationHelper.hasAllPermissions(user, context.requiredPermissions);\n\t\tif (hasPermission === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst userBoardRole = boardDoAuthorizable.users.find(({ userId }) => userId === user.id);\n\t\tif (!userBoardRole) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (boardDoAuthorizable.requiredUserRole && boardDoAuthorizable.requiredUserRole !== userBoardRole.userRoleEnum) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (context.action === Action.write && userBoardRole.roles.includes(BoardRoles.EDITOR)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (\n\t\t\tcontext.action === Action.read &&\n\t\t\t(userBoardRole.roles.includes(BoardRoles.EDITOR) || userBoardRole.roles.includes(BoardRoles.READER))\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardDoService.html":{"url":"injectables/BoardDoService.html","title":"injectable - BoardDoService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/board-do.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteWithDescendants\n \n \n Async\n move\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteWithDescendants\n \n \n \n \n \n \n \n deleteWithDescendants(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n move\n \n \n \n \n \n \n \n move(child: AnyBoardDo, targetParent: AnyBoardDo, targetPosition?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n targetParent\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AnyBoardDo } from '@shared/domain';\nimport { BoardDoRepo } from '../repo';\n\n@Injectable()\nexport class BoardDoService {\n\tconstructor(private readonly boardDoRepo: BoardDoRepo) {}\n\n\tasync deleteWithDescendants(domainObject: AnyBoardDo): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(domainObject.id);\n\n\t\tif (parent) {\n\t\t\tparent.removeChild(domainObject);\n\t\t\tawait this.boardDoRepo.save(parent.children, parent);\n\t\t}\n\n\t\tawait this.boardDoRepo.delete(domainObject);\n\t}\n\n\tasync move(child: AnyBoardDo, targetParent: AnyBoardDo, targetPosition?: number): Promise {\n\t\tif (targetParent.hasChild(child)) {\n\t\t\ttargetParent.removeChild(child);\n\t\t} else {\n\t\t\tconst sourceParent = await this.boardDoRepo.findParentOfId(child.id);\n\t\t\tif (sourceParent) {\n\t\t\t\tsourceParent.removeChild(child);\n\t\t\t\tawait this.boardDoRepo.save(sourceParent.children, sourceParent);\n\t\t\t}\n\t\t}\n\t\ttargetParent.addChild(child, targetPosition);\n\t\tawait this.boardDoRepo.save(targetParent.children, targetParent);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/BoardElement.html":{"url":"entities/BoardElement.html","title":"entity - BoardElement","body":"\n \n\n\n\n\n\n\n\n Entities\n BoardElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/boardelement.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n boardElementType\n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n boardElementType\n \n \n \n \n \n \n Type : BoardElementType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/boardelement.entity.ts:30\n \n \n\n \n \n name of a collection which is referenced in target\n\n \n \n\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : BoardElementReference\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/boardelement.entity.ts:26\n \n \n\n \n \n id reference to a collection populated later with name\n\n \n \n\n \n \n\n \n\n\n \n import { Entity, Enum } from '@mikro-orm/core';\nimport { EntityId } from '../../types';\nimport { BaseEntityWithTimestamps } from '../base.entity';\nimport { LessonEntity } from '../lesson.entity';\nimport { Task } from '../task.entity';\nimport { ColumnBoardTarget } from './column-board-target.entity';\n\nexport type BoardElementReference = Task | LessonEntity | ColumnBoardTarget;\n\nexport enum BoardElementType {\n\t'Task' = 'task',\n\t'Lesson' = 'lesson',\n\t'ColumnBoard' = 'columnboard',\n}\n\nexport type BoardElementProps = {\n\ttarget: EntityId | BoardElementReference;\n};\n\n@Entity({\n\tdiscriminatorColumn: 'boardElementType',\n\tabstract: true,\n})\nexport abstract class BoardElement extends BaseEntityWithTimestamps {\n\t/** id reference to a collection populated later with name */\n\ttarget!: BoardElementReference;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\tboardElementType!: BoardElementType;\n\n\tconstructor(props: BoardElementProps) {\n\t\tsuper();\n\t\tObject.assign(this, { target: props.target });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardElementResponse.html":{"url":"classes/BoardElementResponse.html","title":"class - BoardElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-element.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : BoardTaskResponse | BoardLessonResponse | BoardColumnBoardResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Content of the Board, either: a task or a lesson specific for the board'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-element.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : RoomBoardElementTypes\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'the type of the element in the content. For possible types, please refer to the enum', enum: RoomBoardElementTypes})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-element.response.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { RoomBoardElementTypes } from '@src/modules/learnroom/types';\nimport { BoardColumnBoardResponse } from './board-column-board.response';\nimport { BoardLessonResponse } from './board-lesson.response';\nimport { BoardTaskResponse } from './board-task.response';\n\nexport class BoardElementResponse {\n\tconstructor({ type, content }: BoardElementResponse) {\n\t\tthis.type = type;\n\t\tthis.content = content;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'the type of the element in the content. For possible types, please refer to the enum',\n\t\tenum: RoomBoardElementTypes,\n\t})\n\ttype: RoomBoardElementTypes;\n\n\t@ApiProperty({\n\t\tdescription: 'Content of the Board, either: a task or a lesson specific for the board',\n\t})\n\tcontent: BoardTaskResponse | BoardLessonResponse | BoardColumnBoardResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardExternalReference.html":{"url":"interfaces/BoardExternalReference.html","title":"interface - BoardExternalReference","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardExternalReference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-external-reference.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n type\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: BoardExternalReferenceType\n\n \n \n\n\n \n \n Type : BoardExternalReferenceType\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain/types';\n\nexport enum BoardExternalReferenceType {\n\t'Course' = 'course',\n}\n\nexport interface BoardExternalReference {\n\ttype: BoardExternalReferenceType;\n\tid: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardLessonResponse.html":{"url":"classes/BoardLessonResponse.html","title":"class - BoardLessonResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardLessonResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n courseName\n \n \n \n createdAt\n \n \n \n hidden\n \n \n \n id\n \n \n \n \n name\n \n \n \n \n \n \n Optional\n numberOfDraftTasks\n \n \n \n \n \n \n Optional\n numberOfPlannedTasks\n \n \n \n \n \n numberOfPublishedTasks\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardLessonResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardLessonResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n courseName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n hidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:61\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n numberOfDraftTasks\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n numberOfPlannedTasks\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n numberOfPublishedTasks\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:58\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { IsNumber, IsOptional, Min } from 'class-validator';\n\nexport class BoardLessonResponse {\n\tconstructor({\n\t\tid,\n\t\tname,\n\t\thidden,\n\t\tnumberOfPublishedTasks,\n\t\tnumberOfDraftTasks,\n\t\tnumberOfPlannedTasks,\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t}: BoardLessonResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t\tthis.hidden = hidden;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.numberOfPublishedTasks = numberOfPublishedTasks;\n\t\tthis.numberOfDraftTasks = numberOfDraftTasks;\n\t\tthis.numberOfPlannedTasks = numberOfPlannedTasks;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\t@DecodeHtmlEntities()\n\tcourseName?: string;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\tnumberOfPublishedTasks: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiProperty()\n\tnumberOfDraftTasks?: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiProperty()\n\tnumberOfPlannedTasks?: number;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\thidden: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardManagementConsole.html":{"url":"classes/BoardManagementConsole.html","title":"class - BoardManagementConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardManagementConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/console/board-management.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n createBoard\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consoleWriter: ConsoleWriterService, boardManagementUc: BoardManagementUc)\n \n \n \n \n Defined in apps/server/src/modules/management/console/board-management.console.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consoleWriter\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n boardManagementUc\n \n \n BoardManagementUc\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n createBoard\n \n \n \n \n \n \n \n createBoard(courseId: string)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'create-board [courseId]', description: 'create a multi-column-board'})\n \n \n\n \n \n Defined in apps/server/src/modules/management/console/board-management.console.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n courseId\n \n string\n \n\n \n No\n \n\n \n ''\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console';\nimport { ObjectId } from 'bson';\nimport { Command, Console } from 'nestjs-console';\nimport { BoardManagementUc } from '../uc/board-management.uc';\n\n@Console({ command: 'board', description: 'board setup console' })\nexport class BoardManagementConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService, private boardManagementUc: BoardManagementUc) {}\n\n\t@Command({\n\t\tcommand: 'create-board [courseId]',\n\t\tdescription: 'create a multi-column-board',\n\t})\n\tasync createBoard(courseId = ''): Promise {\n\t\tif (!ObjectId.isValid(courseId)) {\n\t\t\tthis.consoleWriter.info('Error: please provide a valid courseId this board should be assigned to.');\n\t\t\treturn;\n\t\t}\n\n\t\tconst boardId = await this.boardManagementUc.createBoard(courseId);\n\t\tif (boardId) {\n\t\t\tthis.consoleWriter.info(`Success: board creation is completed! The new boardId is \"${boardId ?? ''}\"`);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardManagementUc.html":{"url":"injectables/BoardManagementUc.html","title":"injectable - BoardManagementUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardManagementUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/uc/board-management.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createBoard\n \n \n Private\n createCards\n \n \n Private\n createColumns\n \n \n Private\n createElements\n \n \n Private\n Async\n doesCourseExist\n \n \n Private\n generateArray\n \n \n Private\n random\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consoleWriter: ConsoleWriterService, em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consoleWriter\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createBoard\n \n \n \n \n \n \n \n createBoard(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createCards\n \n \n \n \n \n \n \n createCards(amount: number, parent: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n amount\n \n number\n \n\n \n No\n \n\n\n \n \n parent\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardNode[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createColumns\n \n \n \n \n \n \n \n createColumns(amount: number, parent: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n amount\n \n number\n \n\n \n No\n \n\n\n \n \n parent\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardNode[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createElements\n \n \n \n \n \n \n \n createElements(amount: number, parent: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n amount\n \n number\n \n\n \n No\n \n\n\n \n \n parent\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardNode[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n doesCourseExist\n \n \n \n \n \n \n \n doesCourseExist(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n \n ''\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n generateArray\n \n \n \n \n \n \n \n generateArray(length: number, fn: (i: number) => void)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:71\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n length\n \n number\n \n\n \n No\n \n\n\n \n \n fn\n \n function\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n random\n \n \n \n \n \n \n \n random(min: number, max: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n min\n \n number\n \n\n \n No\n \n\n\n \n \n max\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : number\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BoardExternalReferenceType, BoardNode, Course, EntityId, InputFormat } from '@shared/domain';\nimport { ConsoleWriterService } from '@shared/infra/console';\nimport {\n\tcardNodeFactory,\n\tcolumnBoardNodeFactory,\n\tcolumnNodeFactory,\n\trichTextElementNodeFactory,\n} from '@shared/testing';\n\n@Injectable()\nexport class BoardManagementUc {\n\tconstructor(private consoleWriter: ConsoleWriterService, private em: EntityManager) {}\n\n\tasync createBoard(courseId: EntityId): Promise {\n\t\tif (!(await this.doesCourseExist(courseId))) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst context = { type: BoardExternalReferenceType.Course, id: courseId };\n\t\tconst board = columnBoardNodeFactory.build({ context });\n\t\tawait this.em.persistAndFlush(board);\n\n\t\tconst columns = this.createColumns(3, board);\n\t\tawait this.em.persistAndFlush(columns);\n\n\t\tconst cardsPerColumn = columns.map((column) => this.createCards(this.random(1, 3), column));\n\t\tconst cards = cardsPerColumn.flat();\n\t\tawait this.em.persistAndFlush(cards);\n\n\t\tconst elementsPerCard = cards.map((card) => this.createElements(1, card));\n\t\tconst elements = elementsPerCard.flat();\n\t\tawait this.em.persistAndFlush(elements);\n\n\t\treturn board.id;\n\t}\n\n\tprivate createColumns(amount: number, parent: BoardNode): BoardNode[] {\n\t\treturn this.generateArray(amount, (i) =>\n\t\t\tcolumnNodeFactory.build({\n\t\t\t\tparent,\n\t\t\t\ttitle: `Column ${i + 1}`,\n\t\t\t\tposition: i,\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate createCards(amount: number, parent: BoardNode): BoardNode[] {\n\t\treturn this.generateArray(amount, (i) =>\n\t\t\tcardNodeFactory.build({\n\t\t\t\tparent,\n\t\t\t\ttitle: `Card ${i + 1}`,\n\t\t\t\theight: this.random(50, 250),\n\t\t\t\tposition: i,\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate createElements(amount: number, parent: BoardNode): BoardNode[] {\n\t\treturn this.generateArray(amount, (i) =>\n\t\t\trichTextElementNodeFactory.build({\n\t\t\t\tparent,\n\t\t\t\ttext: `Text ${i + 1}`,\n\t\t\t\tinputFormat: InputFormat.RICH_TEXT_CK5,\n\t\t\t\tposition: i,\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate generateArray(length: number, fn: (i: number) => T) {\n\t\treturn [...Array(length).keys()].map((_, i) => fn(i));\n\t}\n\n\tprivate random(min: number, max: number): number {\n\t\treturn Math.floor(Math.random() * (max + min - 1) + min);\n\t}\n\n\tprivate async doesCourseExist(courseId: EntityId = ''): Promise {\n\t\ttry {\n\t\t\tawait this.em.findOneOrFail(Course, courseId);\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\tthis.consoleWriter.info(`Error: course does not exist (courseId: \"${courseId}\")`);\n\t\t}\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/BoardModule.html":{"url":"modules/BoardModule.html","title":"module - BoardModule","body":"\n \n\n\n\n\n Modules\n BoardModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_BoardModule\n\n\n\ncluster_BoardModule_providers\n\n\n\ncluster_BoardModule_imports\n\n\n\ncluster_BoardModule_exports\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\n\n\nBoardModule\n\nBoardModule\n\nBoardModule -->\n\nConsoleWriterModule->BoardModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nBoardModule -->\n\nFilesStorageClientModule->BoardModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nBoardModule -->\n\nLoggerModule->BoardModule\n\n\n\n\n\nBoardDoAuthorizableService \n\nBoardDoAuthorizableService \n\nBoardDoAuthorizableService -->\n\nBoardModule->BoardDoAuthorizableService \n\n\n\n\n\nCardService \n\nCardService \n\nCardService -->\n\nBoardModule->CardService \n\n\n\n\n\nColumnBoardService \n\nColumnBoardService \n\nColumnBoardService -->\n\nBoardModule->ColumnBoardService \n\n\n\n\n\nColumnService \n\nColumnService \n\nColumnService -->\n\nBoardModule->ColumnService \n\n\n\n\n\nContentElementService \n\nContentElementService \n\nContentElementService -->\n\nBoardModule->ContentElementService \n\n\n\n\n\nSubmissionItemService \n\nSubmissionItemService \n\nSubmissionItemService -->\n\nBoardModule->SubmissionItemService \n\n\n\n\n\nBoardDoAuthorizableService\n\nBoardDoAuthorizableService\n\nBoardModule -->\n\nBoardDoAuthorizableService->BoardModule\n\n\n\n\n\nBoardDoRepo\n\nBoardDoRepo\n\nBoardModule -->\n\nBoardDoRepo->BoardModule\n\n\n\n\n\nBoardDoService\n\nBoardDoService\n\nBoardModule -->\n\nBoardDoService->BoardModule\n\n\n\n\n\nBoardNodeRepo\n\nBoardNodeRepo\n\nBoardModule -->\n\nBoardNodeRepo->BoardModule\n\n\n\n\n\nCardService\n\nCardService\n\nBoardModule -->\n\nCardService->BoardModule\n\n\n\n\n\nColumnBoardService\n\nColumnBoardService\n\nBoardModule -->\n\nColumnBoardService->BoardModule\n\n\n\n\n\nColumnService\n\nColumnService\n\nBoardModule -->\n\nColumnService->BoardModule\n\n\n\n\n\nContentElementFactory\n\nContentElementFactory\n\nBoardModule -->\n\nContentElementFactory->BoardModule\n\n\n\n\n\nContentElementService\n\nContentElementService\n\nBoardModule -->\n\nContentElementService->BoardModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nBoardModule -->\n\nCourseRepo->BoardModule\n\n\n\n\n\nRecursiveDeleteVisitor\n\nRecursiveDeleteVisitor\n\nBoardModule -->\n\nRecursiveDeleteVisitor->BoardModule\n\n\n\n\n\nSubmissionItemService\n\nSubmissionItemService\n\nBoardModule -->\n\nSubmissionItemService->BoardModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/board/board.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardDoAuthorizableService\n \n \n BoardDoRepo\n \n \n BoardDoService\n \n \n BoardNodeRepo\n \n \n CardService\n \n \n ColumnBoardService\n \n \n ColumnService\n \n \n ContentElementFactory\n \n \n ContentElementService\n \n \n CourseRepo\n \n \n RecursiveDeleteVisitor\n \n \n SubmissionItemService\n \n \n \n \n Imports\n \n \n ConsoleWriterModule\n \n \n FilesStorageClientModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n BoardDoAuthorizableService\n \n \n CardService\n \n \n ColumnBoardService\n \n \n ColumnService\n \n \n ContentElementService\n \n \n SubmissionItemService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ContentElementFactory } from '@shared/domain';\nimport { ConsoleWriterModule } from '@shared/infra/console';\nimport { CourseRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { FilesStorageClientModule } from '../files-storage-client';\nimport { BoardDoRepo, BoardNodeRepo } from './repo';\nimport { RecursiveDeleteVisitor } from './repo/recursive-delete.vistor';\nimport {\n\tBoardDoAuthorizableService,\n\tBoardDoService,\n\tCardService,\n\tColumnBoardService,\n\tColumnService,\n\tContentElementService,\n\tSubmissionItemService,\n} from './service';\n\n@Module({\n\timports: [ConsoleWriterModule, FilesStorageClientModule, LoggerModule],\n\tproviders: [\n\t\tBoardDoAuthorizableService,\n\t\tBoardDoRepo,\n\t\tBoardDoService,\n\t\tBoardNodeRepo,\n\t\tCardService,\n\t\tColumnBoardService,\n\t\tColumnService,\n\t\tContentElementService,\n\t\tContentElementFactory,\n\t\tCourseRepo, // TODO: import learnroom module instead. This is currently not possible due to dependency cycle with authorisation service\n\t\tRecursiveDeleteVisitor,\n\t\tSubmissionItemService,\n\t],\n\texports: [\n\t\tBoardDoAuthorizableService,\n\t\tCardService,\n\t\tColumnBoardService,\n\t\tColumnService,\n\t\tContentElementService,\n\t\tSubmissionItemService,\n\t],\n})\nexport class BoardModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/BoardNode.html":{"url":"entities/BoardNode.html","title":"entity - BoardNode","body":"\n \n\n\n\n\n\n\n\n Entities\n BoardNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n level\n \n \n \n \n path\n \n \n \n position\n \n \n \n Optional\n title\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n level\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n path\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Index()@Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n position\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : BoardNodeType\n\n \n \n \n \n Decorators : \n \n \n @Index()@Enum(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:39\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { AnyBoardDo } from '../../domainobject';\nimport { EntityId } from '../../types';\nimport { BaseEntityWithTimestamps } from '../base.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\nconst PATH_SEPARATOR = ',';\n\n@Entity({ tableName: 'boardnodes', discriminatorColumn: 'type' })\nexport abstract class BoardNode extends BaseEntityWithTimestamps {\n\tconstructor(props: BoardNodeProps) {\n\t\tsuper();\n\t\tif (props.parent && props.parent.id == null) {\n\t\t\tthrow new InternalServerErrorException('Cannot create board node with a parent having no id');\n\t\t}\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.path = props.parent ? BoardNode.joinPath(props.parent.path, props.parent.id) : PATH_SEPARATOR;\n\t\tthis.level = props.parent ? props.parent.level + 1 : 0;\n\t\tthis.position = props.position ?? 0;\n\t\tthis.title = props.title;\n\t}\n\n\t@Index()\n\t@Property({ nullable: false })\n\tpath: string;\n\n\t@Property({ nullable: false })\n\tlevel: number;\n\n\t@Property({ nullable: false })\n\tposition: number;\n\n\t@Index()\n\t@Enum(() => BoardNodeType)\n\ttype!: BoardNodeType;\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\tget parentId(): EntityId | undefined {\n\t\tconst parentId = this.hasParent() ? this.ancestorIds[this.ancestorIds.length - 1] : undefined;\n\t\treturn parentId;\n\t}\n\n\tget ancestorIds(): EntityId[] {\n\t\tconst parentIds = this.path.split(PATH_SEPARATOR).filter((id) => id !== '');\n\t\treturn parentIds;\n\t}\n\n\tget pathOfChildren(): string {\n\t\treturn BoardNode.joinPath(this.path, this.id);\n\t}\n\n\thasParent() {\n\t\treturn this.ancestorIds.length > 0;\n\t}\n\n\tabstract useDoBuilder(builder: BoardDoBuilder): AnyBoardDo;\n\n\tstatic joinPath(path: string, id: EntityId) {\n\t\treturn `${path}${id}${PATH_SEPARATOR}`;\n\t}\n}\n\nexport interface BoardNodeProps {\n\tid?: EntityId;\n\tparent?: BoardNode;\n\tposition?: number;\n\ttitle?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardNodeProps.html":{"url":"interfaces/BoardNodeProps.html","title":"interface - BoardNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n Optional\n \n parent\n \n \n \n Optional\n \n position\n \n \n \n Optional\n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parent\n \n \n \n \n \n \n \n \n parent: BoardNode\n\n \n \n\n\n \n \n Type : BoardNode\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n position\n \n \n \n \n \n \n \n \n position: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { AnyBoardDo } from '../../domainobject';\nimport { EntityId } from '../../types';\nimport { BaseEntityWithTimestamps } from '../base.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\nconst PATH_SEPARATOR = ',';\n\n@Entity({ tableName: 'boardnodes', discriminatorColumn: 'type' })\nexport abstract class BoardNode extends BaseEntityWithTimestamps {\n\tconstructor(props: BoardNodeProps) {\n\t\tsuper();\n\t\tif (props.parent && props.parent.id == null) {\n\t\t\tthrow new InternalServerErrorException('Cannot create board node with a parent having no id');\n\t\t}\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.path = props.parent ? BoardNode.joinPath(props.parent.path, props.parent.id) : PATH_SEPARATOR;\n\t\tthis.level = props.parent ? props.parent.level + 1 : 0;\n\t\tthis.position = props.position ?? 0;\n\t\tthis.title = props.title;\n\t}\n\n\t@Index()\n\t@Property({ nullable: false })\n\tpath: string;\n\n\t@Property({ nullable: false })\n\tlevel: number;\n\n\t@Property({ nullable: false })\n\tposition: number;\n\n\t@Index()\n\t@Enum(() => BoardNodeType)\n\ttype!: BoardNodeType;\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\tget parentId(): EntityId | undefined {\n\t\tconst parentId = this.hasParent() ? this.ancestorIds[this.ancestorIds.length - 1] : undefined;\n\t\treturn parentId;\n\t}\n\n\tget ancestorIds(): EntityId[] {\n\t\tconst parentIds = this.path.split(PATH_SEPARATOR).filter((id) => id !== '');\n\t\treturn parentIds;\n\t}\n\n\tget pathOfChildren(): string {\n\t\treturn BoardNode.joinPath(this.path, this.id);\n\t}\n\n\thasParent() {\n\t\treturn this.ancestorIds.length > 0;\n\t}\n\n\tabstract useDoBuilder(builder: BoardDoBuilder): AnyBoardDo;\n\n\tstatic joinPath(path: string, id: EntityId) {\n\t\treturn `${path}${id}${PATH_SEPARATOR}`;\n\t}\n}\n\nexport interface BoardNodeProps {\n\tid?: EntityId;\n\tparent?: BoardNode;\n\tposition?: number;\n\ttitle?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardNodeRepo.html":{"url":"injectables/BoardNodeRepo.html","title":"injectable - BoardNodeRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardNodeRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/board-node.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findDescendants\n \n \n Async\n findDescendantsOfMany\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/board-node.repo.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-node.repo.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findDescendants\n \n \n \n \n \n \n \n findDescendants(node: BoardNode, depth?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-node.repo.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n node\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n depth\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findDescendantsOfMany\n \n \n \n \n \n \n \n findDescendantsOfMany(nodes: BoardNode[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-node.repo.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n nodes\n \n BoardNode[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BoardNode, EntityId } from '@shared/domain';\n\n@Injectable()\nexport class BoardNodeRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tlet entity = this.em.getUnitOfWork().getById(BoardNode.name, id);\n\t\tif (entity) {\n\t\t\treturn entity;\n\t\t}\n\n\t\tentity = await this.em.findOneOrFail(BoardNode, id);\n\t\treturn entity;\n\t}\n\n\tasync findDescendants(node: BoardNode, depth?: number): Promise {\n\t\tconst levelQuery = depth !== undefined ? { $gt: node.level, $lte: node.level + depth } : { $gt: node.level };\n\n\t\tconst descendants = await this.em.find(BoardNode, {\n\t\t\tpath: { $re: `^${node.pathOfChildren}` },\n\t\t\tlevel: levelQuery,\n\t\t});\n\n\t\treturn descendants;\n\t}\n\n\tasync findDescendantsOfMany(nodes: BoardNode[]): Promise> {\n\t\tconst pathQueries = nodes.map((node) => {\n\t\t\treturn { path: { $re: `^${node.pathOfChildren}` } };\n\t\t});\n\n\t\tconst map: Record = {};\n\t\tif (pathQueries.length === 0) {\n\t\t\treturn map;\n\t\t}\n\n\t\tconst descendants = await this.em.find(BoardNode, {\n\t\t\t$or: pathQueries,\n\t\t});\n\n\t\t// this is for finding tha ancestors of a descendant\n\t\t// we use this to group the descendants by ancestor\n\t\t// TODO we probably need a more efficient way to do the grouping\n\t\tconst matchAncestors = (descendant: BoardNode): BoardNode[] => {\n\t\t\tconst result = nodes.filter((n) => descendant.path.match(`^${n.pathOfChildren}`));\n\t\t\treturn result;\n\t\t};\n\n\t\tfor (const desc of descendants) {\n\t\t\tconst ancestorNodes = matchAncestors(desc);\n\t\t\tancestorNodes.forEach((node) => {\n\t\t\t\tmap[node.pathOfChildren] ||= [];\n\t\t\t\tmap[node.pathOfChildren].push(desc);\n\t\t\t});\n\t\t}\n\t\treturn map;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardRepo.html":{"url":"injectables/BoardRepo.html","title":"injectable - BoardRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/board/board.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n createBoardForCourse\n \n \n Async\n findByCourseId\n \n \n Async\n findById\n \n \n Private\n Async\n getOrCreateCourseBoard\n \n \n Private\n Async\n populateBoard\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n createBoardForCourse\n \n \n \n \n \n \n \n createBoardForCourse(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByCourseId\n \n \n \n \n \n \n \n findByCourseId(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:32\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getOrCreateCourseBoard\n \n \n \n \n \n \n \n getOrCreateCourseBoard(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateBoard\n \n \n \n \n \n \n \n populateBoard(board: Board)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n Board\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:7\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Board, ColumnboardBoardElement, Course, EntityId, LessonBoardElement, TaskBoardElement } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class BoardRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Board;\n\t}\n\n\tasync findByCourseId(courseId: EntityId): Promise {\n\t\tconst board = await this.getOrCreateCourseBoard(courseId);\n\t\tawait this.populateBoard(board);\n\t\treturn board;\n\t}\n\n\tprivate async getOrCreateCourseBoard(courseId: EntityId): Promise {\n\t\tlet board = await this._em.findOne(Board, { course: courseId });\n\t\tif (!board) {\n\t\t\tboard = await this.createBoardForCourse(courseId);\n\t\t}\n\t\treturn board;\n\t}\n\n\tprivate async createBoardForCourse(courseId: EntityId): Promise {\n\t\tconst course = await this._em.findOneOrFail(Course, courseId);\n\t\tconst board = new Board({ course, references: [] });\n\t\tawait this._em.persistAndFlush(board);\n\t\treturn board;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst board = await this._em.findOneOrFail(Board, { id });\n\t\tawait this.populateBoard(board);\n\t\treturn board;\n\t}\n\n\tprivate async populateBoard(board: Board) {\n\t\tawait board.references.init();\n\t\tconst elements = board.references.getItems();\n\t\tconst taskElements = elements.filter((el) => el instanceof TaskBoardElement);\n\t\tawait this._em.populate(taskElements, ['target']);\n\t\tconst lessonElements = elements.filter((el) => el instanceof LessonBoardElement);\n\t\tawait this._em.populate(lessonElements, ['target']);\n\t\tconst columnBoardElements = elements.filter((el) => el instanceof ColumnboardBoardElement);\n\t\tawait this._em.populate(columnBoardElements, ['target']);\n\t\treturn board;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardResponse.html":{"url":"classes/BoardResponse.html","title":"class - BoardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/board.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n columns\n \n \n \n id\n \n \n \n timestamps\n \n \n \n \n Optional\n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n columns\n \n \n \n \n \n \n Type : ColumnResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { ColumnResponse } from './column.response';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class BoardResponse {\n\tconstructor({ id, title, columns, timestamps }: BoardResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.columns = columns;\n\t\tthis.timestamps = timestamps;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\ttype: [ColumnResponse],\n\t})\n\tcolumns: ColumnResponse[];\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardResponseMapper.html":{"url":"classes/BoardResponseMapper.html","title":"class - BoardResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/board-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(board: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/board-response.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, HttpStatus } from '@nestjs/common';\nimport { Column, ColumnBoard } from '@shared/domain';\nimport { BoardResponse, TimestampsResponse } from '../dto';\nimport { ColumnResponseMapper } from './column-response.mapper';\n\nexport class BoardResponseMapper {\n\tstatic mapToResponse(board: ColumnBoard): BoardResponse {\n\t\tconst result = new BoardResponse({\n\t\t\tid: board.id,\n\t\t\ttitle: board.title,\n\t\t\tcolumns: board.children.map((column) => {\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tif (!(column instanceof Column)) {\n\t\t\t\t\tthrow new HttpException(\n\t\t\t\t\t\t`unsupported child type: ${column.constructor.name}`,\n\t\t\t\t\t\tHttpStatus.UNPROCESSABLE_ENTITY\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn ColumnResponseMapper.mapToResponse(column);\n\t\t\t}),\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: board.updatedAt, createdAt: board.createdAt }),\n\t\t});\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/BoardSubmissionController.html":{"url":"controllers/BoardSubmissionController.html","title":"controller - BoardSubmissionController","body":"\n \n\n\n\n\n\n\n Controllers\n BoardSubmissionController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/board-submission.controller.ts\n \n\n \n Prefix\n \n \n board-submissions\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n Async\n getSubmissionItems\n \n \n \n \n \n \n \n \n \n Async\n updateSubmissionItem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSubmissionItems\n \n \n \n \n \n \n \n getSubmissionItems(currentUser: ICurrentUser, urlParams: SubmissionContainerUrlParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get a list of submission items by their parent container.'})@ApiResponse({status: 200, type: undefined})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@Get(':submissionContainerId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board-submission.controller.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n SubmissionContainerUrlParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSubmissionItem\n \n \n \n \n \n \n \n updateSubmissionItem(currentUser: ICurrentUser, urlParams: SubmissionItemUrlParams, bodyParams: UpdateSubmissionItemBodyParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update a single submission item.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':submissionItemId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board-submission.controller.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n SubmissionItemUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n UpdateSubmissionItemBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, ForbiddenException, Get, HttpCode, NotFoundException, Param, Patch } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CardUc } from '../uc';\nimport { ElementUc } from '../uc/element.uc';\nimport { SubmissionItemUc } from '../uc/submission-item.uc';\nimport {\n\tSubmissionContainerUrlParams,\n\tSubmissionItemResponse,\n\tSubmissionItemUrlParams,\n\tUpdateSubmissionItemBodyParams,\n} from './dto';\nimport { SubmissionItemResponseMapper } from './mapper';\n\n@ApiTags('Board Submission')\n@Authenticate('jwt')\n@Controller('board-submissions')\nexport class BoardSubmissionController {\n\tconstructor(\n\t\tprivate readonly cardUc: CardUc,\n\t\tprivate readonly elementUc: ElementUc,\n\t\tprivate readonly submissionItemUc: SubmissionItemUc\n\t) {}\n\n\t@ApiOperation({ summary: 'Get a list of submission items by their parent container.' })\n\t@ApiResponse({ status: 200, type: [SubmissionItemResponse] })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@Get(':submissionContainerId')\n\tasync getSubmissionItems(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: SubmissionContainerUrlParams\n\t): Promise {\n\t\tconst items = await this.submissionItemUc.findSubmissionItems(currentUser.userId, urlParams.submissionContainerId);\n\t\tconst mapper = SubmissionItemResponseMapper.getInstance();\n\t\treturn items.map((item) => mapper.mapToResponse(item));\n\t}\n\n\t@ApiOperation({ summary: 'Update a single submission item.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':submissionItemId')\n\tasync updateSubmissionItem(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: SubmissionItemUrlParams,\n\t\t@Body() bodyParams: UpdateSubmissionItemBodyParams\n\t) {\n\t\tawait this.submissionItemUc.updateSubmissionItem(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.submissionItemId,\n\t\t\tbodyParams.completed\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardTaskResponse.html":{"url":"classes/BoardTaskResponse.html","title":"class - BoardTaskResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardTaskResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n Optional\n courseName\n \n \n \n createdAt\n \n \n \n \n Optional\n description\n \n \n \n Optional\n displayColor\n \n \n \n Optional\n dueDate\n \n \n \n id\n \n \n \n \n name\n \n \n \n status\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardTaskResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardTaskResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n courseName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : BoardTaskStatusResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:42\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { BoardTaskStatusResponse } from './board-task-status.response';\n\nexport class BoardTaskResponse {\n\tconstructor({ id, name, createdAt, updatedAt, status }: BoardTaskResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.status = status;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tavailableDate?: Date;\n\n\t@ApiPropertyOptional()\n\tdueDate?: Date;\n\n\t@ApiPropertyOptional()\n\t@DecodeHtmlEntities()\n\tcourseName?: string;\n\n\t@ApiPropertyOptional()\n\t@DecodeHtmlEntities()\n\tdescription?: string;\n\n\t@ApiPropertyOptional()\n\tdisplayColor?: string;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\tstatus: BoardTaskStatusResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardTaskStatusMapper.html":{"url":"classes/BoardTaskStatusMapper.html","title":"class - BoardTaskStatusMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardTaskStatusMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/mapper/board-taskStatus.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(status: ITaskStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/board-taskStatus.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n status\n \n ITaskStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardTaskStatusResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ITaskStatus } from '@shared/domain';\nimport { BoardTaskStatusResponse } from '../controller/dto';\n\nexport class BoardTaskStatusMapper {\n\tstatic mapToResponse(status: ITaskStatus): BoardTaskStatusResponse {\n\t\tconst dto = new BoardTaskStatusResponse(status);\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardTaskStatusResponse.html":{"url":"classes/BoardTaskStatusResponse.html","title":"class - BoardTaskStatusResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardTaskStatusResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n graded\n \n \n \n isDraft\n \n \n \n isFinished\n \n \n \n isSubstitutionTeacher\n \n \n \n maxSubmissions\n \n \n \n submitted\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardTaskStatusResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardTaskStatusResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n isDraft\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n isFinished\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n isSubstitutionTeacher\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n maxSubmissions\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class BoardTaskStatusResponse {\n\tconstructor({\n\t\tsubmitted,\n\t\tmaxSubmissions,\n\t\tgraded,\n\t\tisDraft,\n\t\tisSubstitutionTeacher,\n\t\tisFinished,\n\t}: BoardTaskStatusResponse) {\n\t\tthis.submitted = submitted;\n\t\tthis.maxSubmissions = maxSubmissions;\n\t\tthis.graded = graded;\n\t\tthis.isDraft = isDraft;\n\t\tthis.isSubstitutionTeacher = isSubstitutionTeacher;\n\t\tthis.isFinished = isFinished;\n\t}\n\n\t@ApiProperty()\n\tsubmitted: number;\n\n\t@ApiProperty()\n\tmaxSubmissions: number;\n\n\t@ApiProperty()\n\tgraded: number;\n\n\t@ApiProperty()\n\tisDraft: boolean;\n\n\t@ApiProperty()\n\tisSubstitutionTeacher: boolean;\n\n\t@ApiProperty()\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardUc.html":{"url":"injectables/BoardUc.html","title":"injectable - BoardUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/board.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n Async\n createCard\n \n \n Async\n createColumn\n \n \n Async\n deleteBoard\n \n \n Async\n deleteCard\n \n \n Async\n deleteColumn\n \n \n Async\n findBoard\n \n \n Async\n findBoardContext\n \n \n Async\n moveCard\n \n \n Async\n moveColumn\n \n \n Async\n updateBoardTitle\n \n \n Async\n updateCardHeight\n \n \n Async\n updateCardTitle\n \n \n Async\n updateColumnTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, cardService: CardService, columnBoardService: ColumnBoardService, columnService: ColumnService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n cardService\n \n \n CardService\n \n \n \n No\n \n \n \n \n columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \n \n \n \n columnService\n \n \n ColumnService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:161\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createCard\n \n \n \n \n \n \n \n createCard(userId: EntityId, columnId: EntityId, requiredEmptyElements?: ContentElementType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n requiredEmptyElements\n \n ContentElementType[]\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createColumn\n \n \n \n \n \n \n \n createColumn(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteBoard\n \n \n \n \n \n \n \n deleteBoard(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteCard\n \n \n \n \n \n \n \n deleteCard(userId: EntityId, cardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:152\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteColumn\n \n \n \n \n \n \n \n deleteColumn(userId: EntityId, columnId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBoard\n \n \n \n \n \n \n \n findBoard(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBoardContext\n \n \n \n \n \n \n \n findBoardContext(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveCard\n \n \n \n \n \n \n \n moveCard(userId: EntityId, cardId: EntityId, targetColumnId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetColumnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveColumn\n \n \n \n \n \n \n \n moveColumn(userId: EntityId, columnId: EntityId, targetBoardId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetBoardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateBoardTitle\n \n \n \n \n \n \n \n updateBoardTitle(userId: EntityId, boardId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:57\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardHeight\n \n \n \n \n \n \n \n updateCardHeight(userId: EntityId, cardId: EntityId, height: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:134\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n height\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardTitle\n \n \n \n \n \n \n \n updateCardTitle(userId: EntityId, cardId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:143\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateColumnTitle\n \n \n \n \n \n \n \n updateColumnTitle(userId: EntityId, columnId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:102\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tBoardExternalReference,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tContentElementType,\n\tEntityId,\n} from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport { CardService, ColumnBoardService, ColumnService } from '../service';\nimport { BoardDoAuthorizableService } from '../service/board-do-authorizable.service';\n\n@Injectable()\nexport class BoardUc {\n\tconstructor(\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly cardService: CardService,\n\t\tprivate readonly columnBoardService: ColumnBoardService,\n\t\tprivate readonly columnService: ColumnService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(BoardUc.name);\n\t}\n\n\tasync findBoard(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'findBoard', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.read);\n\n\t\treturn board;\n\t}\n\n\tasync findBoardContext(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'findBoardContext', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.read);\n\n\t\treturn board.context;\n\t}\n\n\tasync deleteBoard(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteBoard', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tawait this.columnBoardService.delete(board);\n\t}\n\n\tasync updateBoardTitle(userId: EntityId, boardId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateBoardTitle', userId, boardId, title });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tawait this.columnBoardService.updateTitle(board, title);\n\t}\n\n\tasync createColumn(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'createColumn', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tconst column = await this.columnService.create(board);\n\t\treturn column;\n\t}\n\n\tasync deleteColumn(userId: EntityId, columnId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteColumn', userId, columnId });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.write);\n\n\t\tawait this.columnService.delete(column);\n\t}\n\n\tasync moveColumn(\n\t\tuserId: EntityId,\n\t\tcolumnId: EntityId,\n\t\ttargetBoardId: EntityId,\n\t\ttargetPosition: number\n\t): Promise {\n\t\tthis.logger.debug({ action: 'moveColumn', userId, columnId, targetBoardId, targetPosition });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tconst targetBoard = await this.columnBoardService.findById(targetBoardId);\n\n\t\tawait this.checkPermission(userId, column, Action.write);\n\t\tawait this.checkPermission(userId, targetBoard, Action.write);\n\n\t\tawait this.columnService.move(column, targetBoard, targetPosition);\n\t}\n\n\tasync updateColumnTitle(userId: EntityId, columnId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateColumnTitle', userId, columnId, title });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.write);\n\n\t\tawait this.columnService.updateTitle(column, title);\n\t}\n\n\tasync createCard(userId: EntityId, columnId: EntityId, requiredEmptyElements?: ContentElementType[]): Promise {\n\t\tthis.logger.debug({ action: 'createCard', userId, columnId });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.read);\n\n\t\tconst card = await this.cardService.create(column, requiredEmptyElements);\n\n\t\treturn card;\n\t}\n\n\tasync moveCard(userId: EntityId, cardId: EntityId, targetColumnId: EntityId, targetPosition: number): Promise {\n\t\tthis.logger.debug({ action: 'moveCard', userId, cardId, targetColumnId, toPosition: targetPosition });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tconst targetColumn = await this.columnService.findById(targetColumnId);\n\n\t\tawait this.checkPermission(userId, card, Action.write);\n\t\tawait this.checkPermission(userId, targetColumn, Action.write);\n\n\t\tawait this.cardService.move(card, targetColumn, targetPosition);\n\t}\n\n\tasync updateCardHeight(userId: EntityId, cardId: EntityId, height: number): Promise {\n\t\tthis.logger.debug({ action: 'updateCardHeight', userId, cardId, height });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.updateHeight(card, height);\n\t}\n\n\tasync updateCardTitle(userId: EntityId, cardId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateCardTitle', userId, cardId, title });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.updateTitle(card, title);\n\t}\n\n\tasync deleteCard(userId: EntityId, cardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteCard', userId, cardId });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.delete(card);\n\t}\n\n\tprivate async checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tconst context = { action, requiredPermissions: [] };\n\n\t\treturn this.authorizationService.checkPermission(user, boardDoAuthorizable, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardUrlParams.html":{"url":"classes/BoardUrlParams.html","title":"class - BoardUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/board.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n boardId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n boardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the board.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class BoardUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the board.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tboardId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BruteForceError.html":{"url":"classes/BruteForceError.html","title":"class - BruteForceError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BruteForceError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/errors/brute-force.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n timeToWait\n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(timeToWait: number, message: string)\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/brute-force.error.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n timeToWait\n \n \n number\n \n \n \n No\n \n \n \n \n message\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n timeToWait\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/brute-force.error.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class BruteForceError extends BusinessError {\n\treadonly timeToWait: number;\n\n\tconstructor(timeToWait: number, message: string) {\n\t\tsuper(\n\t\t\t{ type: 'ENTITY_NOT_FOUND', title: 'Entity Not Found', defaultMessage: message },\n\t\t\tHttpStatus.TOO_MANY_REQUESTS,\n\t\t\t{\n\t\t\t\ttimeToWait,\n\t\t\t}\n\t\t);\n\t\tthis.timeToWait = timeToWait;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BsonConverter.html":{"url":"injectables/BsonConverter.html","title":"injectable - BsonConverter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BsonConverter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/converter/bson.converter.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n deserialize\n \n \n serialize\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n deserialize\n \n \n \n \n \n \ndeserialize(bsonDocuments: [])\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/converter/bson.converter.ts:21\n \n \n\n\n \n \n Deserializes documents from Extended JSON JavaScript objects to plain JavaScript objects.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n bsonDocuments\n \n []\n \n\n \n No\n \n\n\n \n mongo-bson/ejson objects\n\n \n \n \n \n \n \n \n \n Returns : []\n\n \n \n mongo-json documents\n\n \n \n \n \n \n \n \n \n \n \n \n serialize\n \n \n \n \n \n \nserialize(documents: [])\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/converter/bson.converter.ts:11\n \n \n\n\n \n \n Serializes documents from plain JavaScript objects to Extended JSON JavaScript objects.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n documents\n \n []\n \n\n \n No\n \n\n\n \n mongo-json documents\n\n \n \n \n \n \n \n \n \n Returns : []\n\n \n \n mongo-bson/ejson objects\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EJSON } from 'bson';\n\n@Injectable()\nexport class BsonConverter {\n\t/**\n\t * Serializes documents from plain JavaScript objects to Extended JSON JavaScript objects.\n\t * @param documents mongo-json documents\n\t * @returns mongo-bson/ejson objects\n\t */\n\tserialize(documents: unknown[]): unknown[] {\n\t\tconst bsonDocuments = EJSON.serialize(documents) as unknown[];\n\t\treturn bsonDocuments;\n\t}\n\n\t/**\n\t * Deserializes documents from Extended JSON JavaScript objects to plain JavaScript objects.\n\t * @param bsonDocuments mongo-bson/ejson objects\n\t * @returns mongo-json documents\n\t */\n\tdeserialize(bsonDocuments: unknown[]): unknown[] {\n\t\tconst jsonDocuments = EJSON.deserialize(bsonDocuments) as unknown[];\n\t\treturn jsonDocuments;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Builder.html":{"url":"classes/Builder.html","title":"class - Builder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Builder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/builder/builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(init: T)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/builder.ts:2\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n init\n \n \n T\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/builder.ts:2\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild()\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/builder.ts:8\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n export class Builder {\n\tprotected readonly product: T;\n\n\tconstructor(init: T) {\n\t\tthis.product = init;\n\t}\n\n\tbuild(): T {\n\t\treturn this.product;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BusinessError.html":{"url":"classes/BusinessError.html","title":"class - BusinessError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BusinessError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/business.error.ts\n \n\n\n \n Description\n \n \n Abstract base class for business errors, errors that are handled\nwithin a client or inside the application.\n\n \n\n \n Extends\n \n \n HttpException\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Protected\n constructor(undefined: IErrorType, code: HttpStatus, details?: Record, cause?)\n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:25\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n IErrorType\n \n \n \n No\n \n \n \n \n code\n \n \n HttpStatus\n \n \n \n No\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n cause\n \n \n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:15\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:47\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, HttpStatus } from '@nestjs/common';\nimport { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ErrorResponse } from '@src/core/error/dto/error.response';\nimport { IErrorType } from '@src/core/error/interface';\n\n/**\n * Abstract base class for business errors, errors that are handled\n * within a client or inside the application.\n */\nexport abstract class BusinessError extends HttpException {\n\t@ApiProperty({ description: 'The response status code.' })\n\treadonly code: number;\n\n\t@ApiProperty({ description: 'The error type.' })\n\treadonly type: string;\n\n\t@ApiProperty({ description: 'The error title.' })\n\treadonly title: string;\n\n\t@ApiProperty({ description: 'The error message.' })\n\treadonly message: string;\n\n\t@ApiPropertyOptional({ description: 'The error details.' })\n\t// Is not matched by type validation because HttpException is already declared\n\treadonly details?: Record;\n\n\tprotected constructor(\n\t\t{ type, title, defaultMessage }: IErrorType,\n\t\tcode: HttpStatus = HttpStatus.CONFLICT,\n\t\tdetails?: Record,\n\t\tcause?: unknown\n\t) {\n\t\tsuper({ code, type, title, message: defaultMessage }, code);\n\t\tthis.code = code;\n\t\tthis.type = type;\n\t\tthis.title = title;\n\t\tthis.message = defaultMessage;\n\t\tthis.details = details;\n\n\t\tif (cause instanceof Error) {\n\t\t\tthis.cause = cause;\n\t\t} else if (cause !== undefined) {\n\t\t\tthis.cause = typeof cause === 'object' ? new Error(JSON.stringify(cause)) : new Error(String(cause));\n\t\t}\n\t}\n\n\toverride getResponse(): ErrorResponse {\n\t\tconst errorResponse: ErrorResponse = new ErrorResponse(\n\t\t\tthis.type,\n\t\t\tthis.title,\n\t\t\tthis.message,\n\t\t\tthis.code,\n\t\t\tthis.details\n\t\t);\n\n\t\treturn errorResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CacheService.html":{"url":"injectables/CacheService.html","title":"injectable - CacheService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CacheService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/cache/service/cache.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getStoreType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getStoreType\n \n \n \n \n \n \ngetStoreType()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/cache/service/cache.service.ts:7\n \n \n\n\n \n \n\n \n Returns : CacheStoreType\n\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport { CacheStoreType } from '../interface/cache-store-type.enum';\n\n@Injectable()\nexport class CacheService {\n\tgetStoreType(): CacheStoreType {\n\t\treturn Configuration.has('REDIS_URI') ? CacheStoreType.REDIS : CacheStoreType.MEMORY;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CacheWrapperModule.html":{"url":"modules/CacheWrapperModule.html","title":"module - CacheWrapperModule","body":"\n \n\n\n\n\n Modules\n CacheWrapperModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CacheWrapperModule\n\n\n\ncluster_CacheWrapperModule_providers\n\n\n\ncluster_CacheWrapperModule_exports\n\n\n\n\nCacheService \n\nCacheService \n\n\n\nCacheWrapperModule\n\nCacheWrapperModule\n\nCacheService -->\n\nCacheWrapperModule->CacheService \n\n\n\n\n\nCacheService\n\nCacheService\n\nCacheWrapperModule -->\n\nCacheService->CacheWrapperModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/cache/cache.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CacheService\n \n \n \n \n Exports\n \n \n CacheService\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { CacheModule, CacheModuleOptions } from '@nestjs/cache-manager';\nimport { Module } from '@nestjs/common';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { create } from 'cache-manager-redis-store';\nimport { RedisClient } from 'redis';\nimport { CacheStoreType } from './interface';\nimport { CacheService } from './service/cache.service';\n\n@Module({\n\timports: [\n\t\tCacheModule.registerAsync({\n\t\t\tuseFactory: (cacheService: CacheService, logger: LegacyLogger): CacheModuleOptions => {\n\t\t\t\tif (cacheService.getStoreType() === CacheStoreType.REDIS) {\n\t\t\t\t\tconst redisUrl: string = Configuration.get('REDIS_URI') as string;\n\t\t\t\t\tconst store = create({ url: redisUrl });\n\t\t\t\t\tconst client: RedisClient = store.getClient();\n\n\t\t\t\t\tclient.on('error', (error) => logger.error(error));\n\t\t\t\t\tclient.on('connect', (msg) => logger.log(msg));\n\n\t\t\t\t\treturn { store };\n\t\t\t\t}\n\t\t\t\treturn {};\n\t\t\t},\n\t\t\tinject: [CacheService, LegacyLogger],\n\t\t\timports: [LoggerModule, CacheWrapperModule],\n\t\t}),\n\t],\n\tproviders: [CacheService],\n\texports: [CacheModule, CacheService],\n})\nexport class CacheWrapperModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CalendarEventDto.html":{"url":"classes/CalendarEventDto.html","title":"class - CalendarEventDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CalendarEventDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/dto/calendar-event.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n teamId\n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dto: CalendarEventDto)\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/dto/calendar-event.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n \n CalendarEventDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n teamId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/dto/calendar-event.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/dto/calendar-event.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class CalendarEventDto {\n\ttitle: string;\n\n\tteamId: string;\n\n\tconstructor(dto: CalendarEventDto) {\n\t\tthis.title = dto.title;\n\t\tthis.teamId = dto.teamId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CalendarMapper.html":{"url":"injectables/CalendarMapper.html","title":"injectable - CalendarMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CalendarMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapToDto\n \n \n \n \n \n \nmapToDto(event: ICalendarEvent)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n event\n \n ICalendarEvent\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CalendarEventDto\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ICalendarEvent } from '@shared/infra/calendar/interface/calendar-event.interface';\nimport { Injectable } from '@nestjs/common';\nimport { CalendarEventDto } from '@shared/infra/calendar/dto/calendar-event.dto';\n\n@Injectable()\nexport class CalendarMapper {\n\tmapToDto(event: ICalendarEvent): CalendarEventDto {\n\t\tconst { attributes } = event.data[0];\n\t\treturn new CalendarEventDto({\n\t\t\tteamId: attributes['x-sc-teamid'],\n\t\t\ttitle: attributes.summary,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CalendarModule.html":{"url":"modules/CalendarModule.html","title":"module - CalendarModule","body":"\n \n\n\n\n\n Modules\n CalendarModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CalendarModule\n\n\n\ncluster_CalendarModule_exports\n\n\n\ncluster_CalendarModule_providers\n\n\n\n\nCalendarService \n\nCalendarService \n\n\n\nCalendarModule\n\nCalendarModule\n\nCalendarService -->\n\nCalendarModule->CalendarService \n\n\n\n\n\nCalendarMapper\n\nCalendarMapper\n\nCalendarModule -->\n\nCalendarMapper->CalendarModule\n\n\n\n\n\nCalendarService\n\nCalendarService\n\nCalendarModule -->\n\nCalendarService->CalendarModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/calendar/calendar.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CalendarMapper\n \n \n CalendarService\n \n \n \n \n Exports\n \n \n CalendarService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { HttpModule } from '@nestjs/axios';\nimport { CalendarService } from '@shared/infra/calendar/service/calendar.service';\nimport { CalendarMapper } from '@shared/infra/calendar/mapper/calendar.mapper';\n\n@Module({\n\timports: [HttpModule],\n\tproviders: [CalendarMapper, CalendarService],\n\texports: [CalendarService],\n})\nexport class CalendarModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CalendarService.html":{"url":"injectables/CalendarService.html","title":"injectable - CalendarService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CalendarService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/service/calendar.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n baseURL\n \n \n Private\n Readonly\n timeoutMs\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findEvent\n \n \n Private\n get\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(httpService: HttpService, calendarMapper: CalendarMapper)\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n calendarMapper\n \n \n CalendarMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findEvent\n \n \n \n \n \n \n \n findEvent(userId: EntityId, eventId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n eventId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n get\n \n \n \n \n \n \n \n get(path: string, queryParams: URLSearchParams, config: AxiosRequestConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n queryParams\n \n URLSearchParams\n \n\n \n No\n \n\n\n \n \n config\n \n AxiosRequestConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Observable>\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n baseURL\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n timeoutMs\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:17\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpService } from '@nestjs/axios';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { CalendarEventDto } from '@shared/infra/calendar/dto/calendar-event.dto';\nimport { CalendarMapper } from '@shared/infra/calendar/mapper/calendar.mapper';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { URL, URLSearchParams } from 'url';\nimport { ICalendarEvent } from '../interface/calendar-event.interface';\n\n@Injectable()\nexport class CalendarService {\n\tprivate readonly baseURL: string;\n\n\tprivate readonly timeoutMs: number;\n\n\tconstructor(private readonly httpService: HttpService, private readonly calendarMapper: CalendarMapper) {\n\t\tthis.baseURL = Configuration.get('CALENDAR_URI') as string;\n\t\tthis.timeoutMs = Configuration.get('REQUEST_OPTION__TIMEOUT_MS') as number;\n\t}\n\n\tasync findEvent(userId: EntityId, eventId: EntityId): Promise {\n\t\tconst params = new URLSearchParams();\n\t\tparams.append('event-id', eventId);\n\n\t\treturn firstValueFrom(\n\t\t\tthis.get('/events', params, {\n\t\t\t\theaders: {\n\t\t\t\t\tAuthorization: userId,\n\t\t\t\t\tAccept: 'Application/json',\n\t\t\t\t},\n\t\t\t\ttimeout: this.timeoutMs,\n\t\t\t})\n\t\t)\n\t\t\t.then((resp: AxiosResponse) => this.calendarMapper.mapToDto(resp.data))\n\t\t\t.catch((error) => {\n\t\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t\tnull,\n\t\t\t\t\tErrorUtils.createHttpExceptionOptions(error, 'CalendarService:findEvent')\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tprivate get(\n\t\tpath: string,\n\t\tqueryParams: URLSearchParams,\n\t\tconfig: AxiosRequestConfig\n\t): Observable> {\n\t\tconst url: URL = new URL(this.baseURL);\n\t\turl.pathname = path;\n\t\turl.search = queryParams.toString();\n\t\treturn this.httpService.get(url.toString(), config);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Card.html":{"url":"classes/Card.html","title":"class - Card","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Card\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/card.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n height\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:32\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:36\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n\n \n \n gettitle()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/card.do.ts:8\n \n \n\n \n \n settitle(title: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/card.do.ts:12\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n height\n \n \n\n \n \n getheight()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/card.do.ts:16\n \n \n\n \n \n setheight(height: number)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/card.do.ts:20\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n height\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { FileElement } from './file-element.do';\nimport { RichTextElement } from './rich-text-element.do';\nimport { SubmissionContainerElement } from './submission-container-element.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class Card extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tget height(): number {\n\t\treturn this.props.height;\n\t}\n\n\tset height(height: number) {\n\t\tthis.props.height = height;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed =\n\t\t\tdomainObject instanceof FileElement ||\n\t\t\tdomainObject instanceof RichTextElement ||\n\t\t\tdomainObject instanceof SubmissionContainerElement;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitCard(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitCardAsync(this);\n\t}\n}\n\nexport interface CardProps extends BoardCompositeProps {\n\ttitle: string;\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/CardController.html":{"url":"controllers/CardController.html","title":"controller - CardController","body":"\n \n\n\n\n\n\n\n Controllers\n CardController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/card.controller.ts\n \n\n \n Prefix\n \n \n cards\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createElement\n \n \n \n \n \n \n \n \n \n Async\n deleteCard\n \n \n \n \n \n \n \n Async\n getCards\n \n \n \n \n \n \n \n \n \n Async\n moveCard\n \n \n \n \n \n \n \n \n \n Async\n updateCardHeight\n \n \n \n \n \n \n \n \n \n Async\n updateCardTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createElement\n \n \n \n \n \n \n \n createElement(urlParams: CardUrlParams, bodyParams: CreateContentElementBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new element on a card.'})@ApiExtraModels(RichTextElementResponse, FileElementResponse, SubmissionContainerElementResponse)@ApiResponse({status: 201, schema: undefined})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Post(':cardId/elements')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:132\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n CreateContentElementBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteCard\n \n \n \n \n \n \n \n deleteCard(urlParams: CardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Delete a single card.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Delete(':cardId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:112\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getCards\n \n \n \n \n \n \n \n getCards(currentUser: ICurrentUser, cardIdParams: CardIdsParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get a list of cards by their ids.'})@ApiResponse({status: 200, type: CardListResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@Get()\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n cardIdParams\n \n CardIdsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveCard\n \n \n \n \n \n \n \n moveCard(urlParams: CardUrlParams, bodyParams: MoveCardBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Move a single card.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Put(':cardId/position')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:67\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n MoveCardBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardHeight\n \n \n \n \n \n \n \n updateCardHeight(urlParams: CardUrlParams, bodyParams: SetHeightBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update the height of a single card.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':cardId/height')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n SetHeightBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardTitle\n \n \n \n \n \n \n \n updateCardTitle(urlParams: CardUrlParams, bodyParams: RenameBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update the title of a single card.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':cardId/title')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n RenameBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tGet,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\n\tPut,\n\tQuery,\n} from '@nestjs/common';\nimport { ApiExtraModels, ApiOperation, ApiResponse, ApiTags, getSchemaPath } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { BoardUc, CardUc } from '../uc';\nimport {\n\tAnyContentElementResponse,\n\tCardIdsParams,\n\tCardListResponse,\n\tCardUrlParams,\n\tCreateContentElementBodyParams,\n\tFileElementResponse,\n\tMoveCardBodyParams,\n\tRenameBodyParams,\n\tSubmissionContainerElementResponse,\n} from './dto';\nimport { SetHeightBodyParams } from './dto/board/set-height.body.params';\nimport { RichTextElementResponse } from './dto/element/rich-text-element.response';\nimport { CardResponseMapper, ContentElementResponseFactory } from './mapper';\n\n@ApiTags('Board Card')\n@Authenticate('jwt')\n@Controller('cards')\nexport class CardController {\n\tconstructor(private readonly boardUc: BoardUc, private readonly cardUc: CardUc) {}\n\n\t@ApiOperation({ summary: 'Get a list of cards by their ids.' })\n\t@ApiResponse({ status: 200, type: CardListResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@Get()\n\tasync getCards(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() cardIdParams: CardIdsParams\n\t): Promise {\n\t\tconst cardIds = Array.isArray(cardIdParams.ids) ? cardIdParams.ids : [cardIdParams.ids];\n\t\tconst cards = await this.cardUc.findCards(currentUser.userId, cardIds);\n\t\tconst cardResponses = cards.map((card) => CardResponseMapper.mapToResponse(card));\n\n\t\tconst result = new CardListResponse({\n\t\t\tdata: cardResponses,\n\t\t});\n\t\treturn result;\n\t}\n\n\t@ApiOperation({ summary: 'Move a single card.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Put(':cardId/position')\n\tasync moveCard(\n\t\t@Param() urlParams: CardUrlParams,\n\t\t@Body() bodyParams: MoveCardBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.moveCard(currentUser.userId, urlParams.cardId, bodyParams.toColumnId, bodyParams.toPosition);\n\t}\n\n\t@ApiOperation({ summary: 'Update the height of a single card.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':cardId/height')\n\tasync updateCardHeight(\n\t\t@Param() urlParams: CardUrlParams,\n\t\t@Body() bodyParams: SetHeightBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.updateCardHeight(currentUser.userId, urlParams.cardId, bodyParams.height);\n\t}\n\n\t@ApiOperation({ summary: 'Update the title of a single card.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':cardId/title')\n\tasync updateCardTitle(\n\t\t@Param() urlParams: CardUrlParams,\n\t\t@Body() bodyParams: RenameBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.updateCardTitle(currentUser.userId, urlParams.cardId, bodyParams.title);\n\t}\n\n\t@ApiOperation({ summary: 'Delete a single card.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Delete(':cardId')\n\tasync deleteCard(@Param() urlParams: CardUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.boardUc.deleteCard(currentUser.userId, urlParams.cardId);\n\t}\n\n\t@ApiOperation({ summary: 'Create a new element on a card.' })\n\t@ApiExtraModels(RichTextElementResponse, FileElementResponse, SubmissionContainerElementResponse)\n\t@ApiResponse({\n\t\tstatus: 201,\n\t\tschema: {\n\t\t\toneOf: [\n\t\t\t\t{ $ref: getSchemaPath(RichTextElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(FileElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementResponse) },\n\t\t\t],\n\t\t},\n\t})\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@Post(':cardId/elements')\n\tasync createElement(\n\t\t@Param() urlParams: CardUrlParams, // TODO add type-property ?\n\t\t@Body() bodyParams: CreateContentElementBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst { type, toPosition } = bodyParams;\n\t\tconst element = await this.cardUc.createElement(currentUser.userId, urlParams.cardId, type, toPosition);\n\t\tconst response = ContentElementResponseFactory.mapToResponse(element);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardIdsParams.html":{"url":"classes/CardIdsParams.html","title":"class - CardIdsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardIdsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/card-ids.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n ids\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n ids\n \n \n \n \n \n \n Type : string[] | string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId({each: true})@ApiProperty({description: 'Array of Ids to be loaded', type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card-ids.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class CardIdsParams {\n\t@IsMongoId({ each: true })\n\t@ApiProperty({\n\t\tdescription: 'Array of Ids to be loaded',\n\t\ttype: [String],\n\t})\n\tids!: string[] | string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardListResponse.html":{"url":"classes/CardListResponse.html","title":"class - CardListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/card-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: CardListResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card-list.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n CardListResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : CardResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card-list.response.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { CardResponse } from './card.response';\n\nexport class CardListResponse {\n\tconstructor({ data }: CardListResponse) {\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CardResponse] })\n\tdata: CardResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/CardNode.html":{"url":"entities/CardNode.html","title":"entity - CardNode","body":"\n \n\n\n\n\n\n\n\n Entities\n CardNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/card-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n height\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/card-node.entity.ts:16\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { Card } from '@shared/domain/domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.CARD })\nexport class CardNode extends BoardNode {\n\tconstructor(props: CardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.CARD;\n\t\tthis.height = props.height;\n\t}\n\n\t@Property()\n\theight: number;\n\n\tuseDoBuilder(builder: BoardDoBuilder): Card {\n\t\tconst domainObject = builder.buildCard(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface CardNodeProps extends BoardNodeProps {\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CardNodeProps.html":{"url":"interfaces/CardNodeProps.html","title":"interface - CardNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CardNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/card-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n height\n \n \n \n \n \n \n \n \n height: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { Card } from '@shared/domain/domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.CARD })\nexport class CardNode extends BoardNode {\n\tconstructor(props: CardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.CARD;\n\t\tthis.height = props.height;\n\t}\n\n\t@Property()\n\theight: number;\n\n\tuseDoBuilder(builder: BoardDoBuilder): Card {\n\t\tconst domainObject = builder.buildCard(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface CardNodeProps extends BoardNodeProps {\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CardProps.html":{"url":"interfaces/CardProps.html","title":"interface - CardProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CardProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/card.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n height\n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n height\n \n \n \n \n \n \n \n \n height: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { FileElement } from './file-element.do';\nimport { RichTextElement } from './rich-text-element.do';\nimport { SubmissionContainerElement } from './submission-container-element.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class Card extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tget height(): number {\n\t\treturn this.props.height;\n\t}\n\n\tset height(height: number) {\n\t\tthis.props.height = height;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed =\n\t\t\tdomainObject instanceof FileElement ||\n\t\t\tdomainObject instanceof RichTextElement ||\n\t\t\tdomainObject instanceof SubmissionContainerElement;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitCard(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitCardAsync(this);\n\t}\n}\n\nexport interface CardProps extends BoardCompositeProps {\n\ttitle: string;\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardResponse.html":{"url":"classes/CardResponse.html","title":"class - CardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/card.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n elements\n \n \n \n height\n \n \n \n id\n \n \n \n timestamps\n \n \n \n \n Optional\n title\n \n \n \n visibilitySettings\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: CardResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n CardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n elements\n \n \n \n \n \n \n Type : AnyContentElementResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'array', items: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n visibilitySettings\n \n \n \n \n \n \n Type : VisibilitySettingsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:40\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { AnyContentElementResponse } from '../element';\nimport { RichTextElementResponse } from '../element/rich-text-element.response';\nimport { TimestampsResponse } from '../timestamps.response';\nimport { VisibilitySettingsResponse } from './visibility-settings.response';\n\n@ApiExtraModels(RichTextElementResponse)\nexport class CardResponse {\n\tconstructor({ id, title, height, elements, visibilitySettings, timestamps }: CardResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.height = height;\n\t\tthis.elements = elements;\n\t\tthis.visibilitySettings = visibilitySettings;\n\t\tthis.timestamps = timestamps;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiPropertyOptional()\n\t@DecodeHtmlEntities()\n\ttitle?: string;\n\n\t@ApiProperty()\n\theight: number;\n\n\t@ApiProperty({\n\t\ttype: 'array',\n\t\titems: {\n\t\t\toneOf: [{ $ref: getSchemaPath(RichTextElementResponse) }],\n\t\t},\n\t})\n\telements: AnyContentElementResponse[];\n\n\t@ApiProperty()\n\tvisibilitySettings: VisibilitySettingsResponse;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardResponseMapper.html":{"url":"classes/CardResponseMapper.html","title":"class - CardResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/card-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/card-response.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CardResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Card } from '@shared/domain';\nimport { CardResponse, TimestampsResponse, VisibilitySettingsResponse } from '../dto';\nimport { ContentElementResponseFactory } from './content-element-response.factory';\n\nexport class CardResponseMapper {\n\tstatic mapToResponse(card: Card): CardResponse {\n\t\tconst result = new CardResponse({\n\t\t\tid: card.id,\n\t\t\ttitle: card.title,\n\t\t\theight: card.height,\n\t\t\telements: card.children.map((element) => ContentElementResponseFactory.mapToResponse(element)),\n\t\t\tvisibilitySettings: new VisibilitySettingsResponse({}),\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: card.updatedAt, createdAt: card.createdAt }),\n\t\t});\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CardService.html":{"url":"injectables/CardService.html","title":"injectable - CardService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CardService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/card.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Private\n Async\n createEmptyElements\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n findByIds\n \n \n Async\n move\n \n \n Async\n updateHeight\n \n \n Async\n updateTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService, contentElementService: ContentElementService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n contentElementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(parent: Column, requiredEmptyElements?: ContentElementType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n Column\n \n\n \n No\n \n\n\n \n \n requiredEmptyElements\n \n ContentElementType[]\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createEmptyElements\n \n \n \n \n \n \n \n createEmptyElements(card: Card, requiredEmptyElements: ContentElementType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n requiredEmptyElements\n \n ContentElementType[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(cardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByIds\n \n \n \n \n \n \n \n findByIds(cardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n cardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n move\n \n \n \n \n \n \n \n move(card: Card, targetColumn: Column, targetPosition?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n targetColumn\n \n Column\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateHeight\n \n \n \n \n \n \n \n updateHeight(card: Card, height: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n height\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTitle\n \n \n \n \n \n \n \n updateTitle(card: Card, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotFoundException } from '@nestjs/common';\nimport { Card, Column, ContentElementType, EntityId } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\nimport { ContentElementService } from './content-element.service';\n\n@Injectable()\nexport class CardService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly boardDoService: BoardDoService,\n\t\tprivate readonly contentElementService: ContentElementService\n\t) {}\n\n\tasync findById(cardId: EntityId): Promise {\n\t\tconst card = await this.boardDoRepo.findByClassAndId(Card, cardId);\n\t\treturn card;\n\t}\n\n\tasync findByIds(cardIds: EntityId[]): Promise {\n\t\tconst cards = await this.boardDoRepo.findByIds(cardIds);\n\t\tif (cards.every((card) => card instanceof Card)) {\n\t\t\treturn cards as Card[];\n\t\t}\n\t\tthrow new NotFoundException('some ids do not belong to a card');\n\t}\n\n\tasync create(parent: Column, requiredEmptyElements?: ContentElementType[]): Promise {\n\t\tconst card = new Card({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: '',\n\t\t\theight: 150,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\tparent.addChild(card);\n\n\t\tawait this.boardDoRepo.save(parent.children, parent);\n\n\t\tif (requiredEmptyElements) {\n\t\t\tawait this.createEmptyElements(card, requiredEmptyElements);\n\t\t}\n\n\t\treturn card;\n\t}\n\n\tasync delete(card: Card): Promise {\n\t\tawait this.boardDoService.deleteWithDescendants(card);\n\t}\n\n\tasync move(card: Card, targetColumn: Column, targetPosition?: number): Promise {\n\t\tawait this.boardDoService.move(card, targetColumn, targetPosition);\n\t}\n\n\tasync updateHeight(card: Card, height: number): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(card.id);\n\t\tcard.height = height;\n\t\tawait this.boardDoRepo.save(card, parent);\n\t}\n\n\tasync updateTitle(card: Card, title: string): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(card.id);\n\t\tcard.title = title;\n\t\tawait this.boardDoRepo.save(card, parent);\n\t}\n\n\tprivate async createEmptyElements(card: Card, requiredEmptyElements: ContentElementType[]): Promise {\n\t\tfor await (const requiredEmptyElement of requiredEmptyElements) {\n\t\t\tawait this.contentElementService.create(card, requiredEmptyElement);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardSkeletonResponse.html":{"url":"classes/CardSkeletonResponse.html","title":"class - CardSkeletonResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardSkeletonResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/card-skeleton.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n cardId\n \n \n \n height\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: CardSkeletonResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/card-skeleton.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n CardSkeletonResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n cardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/card-skeleton.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The approximate height of the referenced card. Intended to be used for prerendering purposes. Note, that different devices can lead to this value not being precise'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/card-skeleton.response.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class CardSkeletonResponse {\n\tconstructor({ cardId, height }: CardSkeletonResponse) {\n\t\tthis.cardId = cardId;\n\t\tthis.height = height;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tcardId: string;\n\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'The approximate height of the referenced card. Intended to be used for prerendering purposes. Note, that different devices can lead to this value not being precise',\n\t})\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CardUc.html":{"url":"injectables/CardUc.html","title":"injectable - CardUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CardUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/card.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n Async\n createElement\n \n \n Async\n deleteElement\n \n \n Private\n Async\n filterAllowed\n \n \n Async\n findCards\n \n \n Async\n moveElement\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, cardService: CardService, elementService: ContentElementService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n cardService\n \n \n CardService\n \n \n \n No\n \n \n \n \n elementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createElement\n \n \n \n \n \n \n \n createElement(userId: EntityId, cardId: EntityId, type: ContentElementType, toPosition?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n type\n \n ContentElementType\n \n\n \n No\n \n\n\n \n \n toPosition\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteElement\n \n \n \n \n \n \n \n deleteElement(userId: EntityId, elementId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n filterAllowed\n \n \n \n \n \n \n \n filterAllowed(userId: EntityId, boardDos: T[], action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:92\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDos\n \n T[]\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findCards\n \n \n \n \n \n \n \n findCards(userId: EntityId, cardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveElement\n \n \n \n \n \n \n \n moveElement(userId: EntityId, elementId: EntityId, targetCardId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:67\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetCardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tCard,\n\tContentElementType,\n\tEntityId,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n} from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport { BoardDoAuthorizableService, CardService, ContentElementService } from '../service';\n\n@Injectable()\nexport class CardUc {\n\tconstructor(\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly cardService: CardService,\n\t\tprivate readonly elementService: ContentElementService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(CardUc.name);\n\t}\n\n\tasync findCards(userId: EntityId, cardIds: EntityId[]): Promise {\n\t\tthis.logger.debug({ action: 'findCards', userId, cardIds });\n\n\t\tconst cards = await this.cardService.findByIds(cardIds);\n\t\tconst allowedCards = await this.filterAllowed(userId, cards, Action.read);\n\n\t\treturn allowedCards;\n\t}\n\n\t// --- elements ---\n\n\tasync createElement(\n\t\tuserId: EntityId,\n\t\tcardId: EntityId,\n\t\ttype: ContentElementType,\n\t\ttoPosition?: number\n\t): Promise {\n\t\tthis.logger.debug({ action: 'createElement', userId, cardId, type });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tconst element = await this.elementService.create(card, type);\n\t\tif (toPosition !== undefined && typeof toPosition === 'number') {\n\t\t\tawait this.elementService.move(element, card, toPosition);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tasync deleteElement(userId: EntityId, elementId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteElement', userId, elementId });\n\n\t\tconst element = await this.elementService.findById(elementId);\n\t\tawait this.checkPermission(userId, element, Action.write);\n\n\t\tawait this.elementService.delete(element);\n\t}\n\n\tasync moveElement(\n\t\tuserId: EntityId,\n\t\telementId: EntityId,\n\t\ttargetCardId: EntityId,\n\t\ttargetPosition: number\n\t): Promise {\n\t\tthis.logger.debug({ action: 'moveCard', userId, elementId, targetCardId, targetPosition });\n\n\t\tconst element = await this.elementService.findById(elementId);\n\t\tconst targetCard = await this.cardService.findById(targetCardId);\n\n\t\tawait this.checkPermission(userId, element, Action.write);\n\t\tawait this.checkPermission(userId, targetCard, Action.write);\n\n\t\tawait this.elementService.move(element, targetCard, targetPosition);\n\t}\n\n\tprivate async checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tconst context = { action, requiredPermissions: [] };\n\n\t\treturn this.authorizationService.checkPermission(user, boardDoAuthorizable, context);\n\t}\n\n\tprivate async filterAllowed(userId: EntityId, boardDos: T[], action: Action): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tconst context = { action, requiredPermissions: [] };\n\t\tconst promises = boardDos.map((boardDo) =>\n\t\t\tthis.boardDoAuthorizableService.getBoardAuthorizable(boardDo).then((boardDoAuthorizable) => {\n\t\t\t\treturn { boardDoAuthorizable, boardDo };\n\t\t\t})\n\t\t);\n\t\tconst result = await Promise.all(promises);\n\n\t\tconst allowed = result.reduce((allowedDos: T[], { boardDoAuthorizable, boardDo }) => {\n\t\t\tif (this.authorizationService.hasPermission(user, boardDoAuthorizable, context)) {\n\t\t\t\tallowedDos.push(boardDo);\n\t\t\t}\n\t\t\treturn allowedDos;\n\t\t}, []);\n\n\t\treturn allowed;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardUrlParams.html":{"url":"classes/CardUrlParams.html","title":"class - CardUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n cardId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n cardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the card.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class CardUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the card.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcardId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ChallengeParams.html":{"url":"classes/ChallengeParams.html","title":"class - ChallengeParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ChallengeParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/challenge.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n challenge\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n challenge\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The login challenge.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/challenge.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ChallengeParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The login challenge.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tchallenge!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ChangeLanguageParams.html":{"url":"classes/ChangeLanguageParams.html","title":"class - ChangeLanguageParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ChangeLanguageParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/controller/dto/user.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n language\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n language\n \n \n \n \n \n \n Type : LanguageType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: LanguageType})@IsEnum(LanguageType)\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/user.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { LanguageType } from '@shared/domain';\nimport { IsEnum } from 'class-validator';\n\nexport class ChangeLanguageParams {\n\t@ApiProperty({ enum: LanguageType })\n\t@IsEnum(LanguageType)\n\tlanguage!: LanguageType;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Class.html":{"url":"classes/Class.html","title":"class - Class","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Class\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/class.do.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n removeUser\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n name\n \n \n schoolId\n \n \n userIds\n \n \n teacherIds\n \n \n invitationLink\n \n \n year\n \n \n gradeLevel\n \n \n ldapDN\n \n \n successor\n \n \n source\n \n \n sourceOptions\n \n \n createdAt\n \n \n updatedAt\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n removeUser\n \n \n \n \n \n \n \n removeUser(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n name\n \n \n\n \n \n getname()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:22\n \n \n\n \n \n \n \n \n \n \n schoolId\n \n \n\n \n \n getschoolId()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:26\n \n \n\n \n \n \n \n \n \n \n userIds\n \n \n\n \n \n getuserIds()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:30\n \n \n\n \n \n \n \n \n \n \n teacherIds\n \n \n\n \n \n getteacherIds()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:34\n \n \n\n \n \n \n \n \n \n \n invitationLink\n \n \n\n \n \n getinvitationLink()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:38\n \n \n\n \n \n \n \n \n \n \n year\n \n \n\n \n \n getyear()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:42\n \n \n\n \n \n \n \n \n \n \n gradeLevel\n \n \n\n \n \n getgradeLevel()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:46\n \n \n\n \n \n \n \n \n \n \n ldapDN\n \n \n\n \n \n getldapDN()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:50\n \n \n\n \n \n \n \n \n \n \n successor\n \n \n\n \n \n getsuccessor()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:54\n \n \n\n \n \n \n \n \n \n \n source\n \n \n\n \n \n getsource()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:58\n \n \n\n \n \n \n \n \n \n \n sourceOptions\n \n \n\n \n \n getsourceOptions()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:62\n \n \n\n \n \n \n \n \n \n \n createdAt\n \n \n\n \n \n getcreatedAt()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:66\n \n \n\n \n \n \n \n \n \n \n updatedAt\n \n \n\n \n \n getupdatedAt()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:70\n \n \n\n \n \n\n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { AuthorizableObject, DomainObject } from '../../../shared/domain/domain-object';\nimport { ClassSourceOptions } from './class-source-options.do';\n\nexport interface ClassProps extends AuthorizableObject {\n\tname: string;\n\tschoolId: EntityId;\n\tuserIds?: EntityId[];\n\tteacherIds: EntityId[];\n\tinvitationLink?: string;\n\tyear?: EntityId;\n\tgradeLevel?: number;\n\tldapDN?: string;\n\tsuccessor?: EntityId;\n\tsource?: string;\n\tsourceOptions?: ClassSourceOptions;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport class Class extends DomainObject {\n\tget name(): string {\n\t\treturn this.props.name;\n\t}\n\n\tget schoolId(): EntityId {\n\t\treturn this.props.schoolId;\n\t}\n\n\tget userIds(): EntityId[] | undefined {\n\t\treturn this.props.userIds;\n\t}\n\n\tget teacherIds(): EntityId[] {\n\t\treturn this.props.teacherIds;\n\t}\n\n\tget invitationLink(): string | undefined {\n\t\treturn this.props.invitationLink;\n\t}\n\n\tget year(): EntityId | undefined {\n\t\treturn this.props.year;\n\t}\n\n\tget gradeLevel(): number | undefined {\n\t\treturn this.props.gradeLevel;\n\t}\n\n\tget ldapDN(): string | undefined {\n\t\treturn this.props.ldapDN;\n\t}\n\n\tget successor(): EntityId | undefined {\n\t\treturn this.props.successor;\n\t}\n\n\tget source(): string | undefined {\n\t\treturn this.props.source;\n\t}\n\n\tget sourceOptions(): ClassSourceOptions | undefined {\n\t\treturn this.props.sourceOptions;\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n\n\tpublic removeUser(userId: string) {\n\t\tthis.props.userIds = this.props.userIds?.filter((userId1) => userId1 !== userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ClassEntity.html":{"url":"entities/ClassEntity.html","title":"entity - ClassEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ClassEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/class.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n gradeLevel\n \n \n \n Optional\n invitationLink\n \n \n \n Optional\n ldapDN\n \n \n \n name\n \n \n \n \n schoolId\n \n \n \n \n Optional\n source\n \n \n \n Optional\n sourceOptions\n \n \n \n Optional\n successor\n \n \n \n \n teacherIds\n \n \n \n \n Optional\n userIds\n \n \n \n Optional\n year\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n gradeLevel\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n invitationLink\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n ldapDN\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n source\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceOptions\n \n \n \n \n \n \n Type : ClassSourceOptionsEntity\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {object: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n successor\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n teacherIds\n \n \n \n \n \n \n Type : ObjectId[]\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n userIds\n \n \n \n \n \n \n Type : ObjectId[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n year\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:44\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain';\nimport { ClassSourceOptionsEntity } from './class-source-options.entity';\n\nexport interface IClassEntityProps {\n\tid?: EntityId;\n\tname: string;\n\tschoolId: ObjectId;\n\tuserIds?: ObjectId[];\n\tteacherIds: ObjectId[];\n\tinvitationLink?: string;\n\tyear?: ObjectId;\n\tgradeLevel?: number;\n\tldapDN?: string;\n\tsuccessor?: ObjectId;\n\tsource?: string;\n\tsourceOptions?: ClassSourceOptionsEntity;\n}\n\n@Entity({ tableName: 'classes' })\n@Index({ properties: ['year', 'ldapDN'] })\nexport class ClassEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\t@Index()\n\tschoolId: ObjectId;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tuserIds?: ObjectId[];\n\n\t@Property()\n\t@Index()\n\tteacherIds: ObjectId[];\n\n\t@Property({ nullable: true })\n\tinvitationLink?: string;\n\n\t@Property({ nullable: true })\n\tyear?: ObjectId;\n\n\t@Property({ nullable: true })\n\tgradeLevel?: number;\n\n\t@Property({ nullable: true })\n\tldapDN?: string;\n\n\t@Property({ nullable: true })\n\tsuccessor?: ObjectId;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tsource?: string;\n\n\t@Embedded(() => ClassSourceOptionsEntity, { object: true, nullable: true })\n\tsourceOptions?: ClassSourceOptionsEntity;\n\n\tprivate validate(props: IClassEntityProps) {\n\t\tif (props.gradeLevel !== undefined && (props.gradeLevel 13)) {\n\t\t\tthrow new Error('gradeLevel must be value beetween 1 and 13');\n\t\t}\n\t}\n\n\tconstructor(props: IClassEntityProps) {\n\t\tsuper();\n\t\tthis.validate(props);\n\n\t\tif (props.id !== undefined) {\n\t\t\tthis.id = props.id;\n\t\t}\n\n\t\tthis.name = props.name;\n\t\tthis.schoolId = props.schoolId;\n\n\t\tif (props.userIds !== undefined) {\n\t\t\tthis.userIds = props.userIds;\n\t\t}\n\n\t\tthis.teacherIds = props.teacherIds;\n\n\t\tif (props.invitationLink !== undefined) {\n\t\t\tthis.invitationLink = props.invitationLink;\n\t\t}\n\n\t\tif (props.year !== undefined) {\n\t\t\tthis.year = props.year;\n\t\t}\n\t\tif (props.gradeLevel !== undefined) {\n\t\t\tthis.gradeLevel = props.gradeLevel;\n\t\t}\n\t\tif (props.ldapDN !== undefined) {\n\t\t\tthis.ldapDN = props.ldapDN;\n\t\t}\n\n\t\tif (props.successor !== undefined) {\n\t\t\tthis.successor = props.successor;\n\t\t}\n\n\t\tif (props.source !== undefined) {\n\t\t\tthis.source = props.source;\n\t\t}\n\n\t\tif (props.sourceOptions !== undefined) {\n\t\t\tthis.sourceOptions = props.sourceOptions;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassEntityFactory.html":{"url":"classes/ClassEntityFactory.html","title":"class - ClassEntityFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassEntityFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withUserIds\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withUserIds\n \n \n \n \n \n \nwithUserIds(userIds: ObjectId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n ObjectId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { DeepPartial } from 'fishery';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\nimport { ClassEntity, ClassSourceOptionsEntity, IClassEntityProps } from '@src/modules/class/entity';\nimport { ObjectId } from 'bson';\n\nclass ClassEntityFactory extends BaseFactory {\n\twithUserIds(userIds: ObjectId[]): this {\n\t\tconst params: DeepPartial = {\n\t\t\tuserIds,\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const classEntityFactory = ClassEntityFactory.define(ClassEntity, ({ sequence }) => {\n\treturn {\n\t\tname: `name-${sequence}`,\n\t\tschoolId: new ObjectId(),\n\t\tuserIds: new Array(),\n\t\tteacherIds: [new ObjectId(), new ObjectId()],\n\t\tinvitationLink: `link-${sequence}`,\n\t\tyear: new ObjectId(),\n\t\tgradeLevel: sequence,\n\t\tldapDN: `dn-${sequence}`,\n\t\tsuccessor: new ObjectId(),\n\t\tsource: `source-${sequence}`,\n\t\tsourceOptions: new ClassSourceOptionsEntity({ tspUid: `id-${sequence}` }),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassFactory.html":{"url":"classes/ClassFactory.html","title":"class - ClassFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/testing/factory/class.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withUserIds\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withUserIds\n \n \n \n \n \n \nwithUserIds(userIds: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/domain/testing/factory/class.factory.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { DoBaseFactory } from '@shared/testing';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { DeepPartial } from 'fishery';\nimport { Class, ClassProps } from '../../class.do';\nimport { ClassSourceOptions } from '../../class-source-options.do';\n\nclass ClassFactory extends DoBaseFactory {\n\twithUserIds(userIds: string[]): this {\n\t\tconst params: DeepPartial = {\n\t\t\tuserIds,\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const classFactory = ClassFactory.define(Class, ({ sequence }) => {\n\treturn {\n\t\tid: new ObjectId().toHexString(),\n\t\tname: `name-${sequence}`,\n\t\tschoolId: new ObjectId().toHexString(),\n\t\tuserIds: [new ObjectId().toHexString(), new ObjectId().toHexString()],\n\t\tteacherIds: [new ObjectId().toHexString(), new ObjectId().toHexString()],\n\t\tinvitationLink: `link-${sequence}`,\n\t\tyear: new ObjectId().toHexString(),\n\t\tgradeLevel: sequence,\n\t\tldapDN: `dn-${sequence}`,\n\t\tsuccessor: new ObjectId().toHexString(),\n\t\tsource: `source-${sequence}`,\n\t\tsourceOptions: new ClassSourceOptions({ tspUid: `id-${sequence}` }),\n\t\tcreatedAt: new Date(),\n\t\tupdatedAt: new Date(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassMapper.html":{"url":"classes/ClassMapper.html","title":"class - ClassMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/repo/mapper/class.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n mapToDO\n \n \n Static\n mapToDOs\n \n \n Static\n mapToEntities\n \n \n Private\n Static\n mapToEntity\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n mapToDO\n \n \n \n \n \n \n \n mapToDO(entity: ClassEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/mapper/class.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ClassEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Class\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToDOs\n \n \n \n \n \n \n \n mapToDOs(entities: ClassEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/mapper/class.mapper.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n ClassEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Class[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToEntities\n \n \n \n \n \n \n \n mapToEntities(domainObjects: Class[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/mapper/class.mapper.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n Class[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ClassEntity[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapToEntity\n \n \n \n \n \n \n \n mapToEntity(domainObject: Class)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/mapper/class.mapper.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Class\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ClassEntity\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Class } from '../../domain';\nimport { ClassSourceOptions } from '../../domain/class-source-options.do';\nimport { ClassEntity } from '../../entity';\n\nexport class ClassMapper {\n\tprivate static mapToDO(entity: ClassEntity): Class {\n\t\treturn new Class({\n\t\t\tid: entity.id,\n\t\t\tname: entity.name,\n\t\t\tschoolId: entity.schoolId.toHexString(),\n\t\t\tuserIds: entity.userIds?.map((userId) => userId.toHexString()),\n\t\t\tteacherIds: entity.teacherIds.map((teacherId) => teacherId.toHexString()),\n\t\t\tinvitationLink: entity.invitationLink,\n\t\t\tyear: entity.year?.toHexString(),\n\t\t\tgradeLevel: entity.gradeLevel,\n\t\t\tldapDN: entity.ldapDN,\n\t\t\tsuccessor: entity.successor?.toHexString(),\n\t\t\tsource: entity.source,\n\t\t\tsourceOptions: new ClassSourceOptions({ tspUid: entity.sourceOptions?.tspUid }),\n\t\t\tcreatedAt: entity.createdAt,\n\t\t\tupdatedAt: entity.updatedAt,\n\t\t});\n\t}\n\n\tprivate static mapToEntity(domainObject: Class): ClassEntity {\n\t\treturn new ClassEntity({\n\t\t\tid: domainObject.id,\n\t\t\tname: domainObject.name,\n\t\t\tschoolId: new ObjectId(domainObject.schoolId),\n\t\t\tteacherIds: domainObject.teacherIds.map((teacherId) => new ObjectId(teacherId)),\n\t\t\tuserIds: domainObject.userIds?.map((userId) => new ObjectId(userId)),\n\t\t\tinvitationLink: domainObject.invitationLink,\n\t\t\tyear: domainObject.year !== undefined ? new ObjectId(domainObject.year) : undefined,\n\t\t\tgradeLevel: domainObject.gradeLevel,\n\t\t\tldapDN: domainObject.ldapDN,\n\t\t\tsuccessor: domainObject.successor !== undefined ? new ObjectId(domainObject.successor) : undefined,\n\t\t\tsource: domainObject.source,\n\t\t\tsourceOptions: domainObject.sourceOptions,\n\t\t});\n\t}\n\n\tstatic mapToDOs(entities: ClassEntity[]): Class[] {\n\t\treturn entities.map((entity) => this.mapToDO(entity));\n\t}\n\n\tstatic mapToEntities(domainObjects: Class[]): ClassEntity[] {\n\t\treturn domainObjects.map((domainObject) => this.mapToEntity(domainObject));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ClassModule.html":{"url":"modules/ClassModule.html","title":"module - ClassModule","body":"\n \n\n\n\n\n Modules\n ClassModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ClassModule\n\n\n\ncluster_ClassModule_providers\n\n\n\ncluster_ClassModule_exports\n\n\n\n\nClassService \n\nClassService \n\n\n\nClassModule\n\nClassModule\n\nClassService -->\n\nClassModule->ClassService \n\n\n\n\n\nClassService\n\nClassService\n\nClassModule -->\n\nClassService->ClassModule\n\n\n\n\n\nClassesRepo\n\nClassesRepo\n\nClassModule -->\n\nClassesRepo->ClassModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/class/class.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ClassService\n \n \n ClassesRepo\n \n \n \n \n Exports\n \n \n ClassService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ClassService } from './service';\nimport { ClassesRepo } from './repo';\n\n@Module({\n\tproviders: [ClassService, ClassesRepo],\n\texports: [ClassService],\n})\nexport class ClassModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ClassProps.html":{"url":"interfaces/ClassProps.html","title":"interface - ClassProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ClassProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/class.do.ts\n \n\n\n\n \n Extends\n \n \n AuthorizableObject\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n Optional\n \n gradeLevel\n \n \n \n Optional\n \n invitationLink\n \n \n \n Optional\n \n ldapDN\n \n \n \n \n name\n \n \n \n \n schoolId\n \n \n \n Optional\n \n source\n \n \n \n Optional\n \n sourceOptions\n \n \n \n Optional\n \n successor\n \n \n \n \n teacherIds\n \n \n \n \n updatedAt\n \n \n \n Optional\n \n userIds\n \n \n \n Optional\n \n year\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n gradeLevel\n \n \n \n \n \n \n \n \n gradeLevel: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n invitationLink\n \n \n \n \n \n \n \n \n invitationLink: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ldapDN\n \n \n \n \n \n \n \n \n ldapDN: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sourceOptions\n \n \n \n \n \n \n \n \n sourceOptions: ClassSourceOptions\n\n \n \n\n\n \n \n Type : ClassSourceOptions\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n successor\n \n \n \n \n \n \n \n \n successor: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n teacherIds\n \n \n \n \n \n \n \n \n teacherIds: EntityId[]\n\n \n \n\n\n \n \n Type : EntityId[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userIds\n \n \n \n \n \n \n \n \n userIds: EntityId[]\n\n \n \n\n\n \n \n Type : EntityId[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n year\n \n \n \n \n \n \n \n \n year: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { AuthorizableObject, DomainObject } from '../../../shared/domain/domain-object';\nimport { ClassSourceOptions } from './class-source-options.do';\n\nexport interface ClassProps extends AuthorizableObject {\n\tname: string;\n\tschoolId: EntityId;\n\tuserIds?: EntityId[];\n\tteacherIds: EntityId[];\n\tinvitationLink?: string;\n\tyear?: EntityId;\n\tgradeLevel?: number;\n\tldapDN?: string;\n\tsuccessor?: EntityId;\n\tsource?: string;\n\tsourceOptions?: ClassSourceOptions;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport class Class extends DomainObject {\n\tget name(): string {\n\t\treturn this.props.name;\n\t}\n\n\tget schoolId(): EntityId {\n\t\treturn this.props.schoolId;\n\t}\n\n\tget userIds(): EntityId[] | undefined {\n\t\treturn this.props.userIds;\n\t}\n\n\tget teacherIds(): EntityId[] {\n\t\treturn this.props.teacherIds;\n\t}\n\n\tget invitationLink(): string | undefined {\n\t\treturn this.props.invitationLink;\n\t}\n\n\tget year(): EntityId | undefined {\n\t\treturn this.props.year;\n\t}\n\n\tget gradeLevel(): number | undefined {\n\t\treturn this.props.gradeLevel;\n\t}\n\n\tget ldapDN(): string | undefined {\n\t\treturn this.props.ldapDN;\n\t}\n\n\tget successor(): EntityId | undefined {\n\t\treturn this.props.successor;\n\t}\n\n\tget source(): string | undefined {\n\t\treturn this.props.source;\n\t}\n\n\tget sourceOptions(): ClassSourceOptions | undefined {\n\t\treturn this.props.sourceOptions;\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n\n\tpublic removeUser(userId: string) {\n\t\tthis.props.userIds = this.props.userIds?.filter((userId1) => userId1 !== userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ClassService.html":{"url":"injectables/ClassService.html","title":"injectable - ClassService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ClassService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/service/class.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromClasses\n \n \n Public\n Async\n findUserDataFromClasses\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(classesRepo: ClassesRepo)\n \n \n \n \n Defined in apps/server/src/modules/class/service/class.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n classesRepo\n \n \n ClassesRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromClasses\n \n \n \n \n \n \n \n deleteUserDataFromClasses(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/service/class.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findUserDataFromClasses\n \n \n \n \n \n \n \n findUserDataFromClasses(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/service/class.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ClassesRepo } from '../repo';\nimport { Class } from '../domain';\n\n@Injectable()\nexport class ClassService {\n\tconstructor(private readonly classesRepo: ClassesRepo) {}\n\n\tpublic async findUserDataFromClasses(userId: EntityId): Promise {\n\t\tconst classes = await this.classesRepo.findAllByUserId(userId);\n\n\t\treturn classes;\n\t}\n\n\tpublic async deleteUserDataFromClasses(userId: EntityId): Promise {\n\t\tif (!userId) {\n\t\t\tthrow new InternalServerErrorException('User id is missing');\n\t\t}\n\n\t\tconst domainObjects = await this.classesRepo.findAllByUserId(userId);\n\n\t\tconst updatedClasses: Class[] = domainObjects.map((domainObject) => {\n\t\t\tif (domainObject.userIds !== undefined) {\n\t\t\t\tdomainObject.removeUser(userId);\n\t\t\t}\n\t\t\treturn domainObject;\n\t\t});\n\n\t\tawait this.classesRepo.updateMany(updatedClasses);\n\n\t\treturn updatedClasses.length;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassSourceOptions.html":{"url":"classes/ClassSourceOptions.html","title":"class - ClassSourceOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassSourceOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/class-source-options.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n tspUid\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ClassSourceOptionsProps)\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class-source-options.do.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ClassSourceOptionsProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : ClassSourceOptionsProps\n\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class-source-options.do.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n tspUid\n \n \n\n \n \n gettspUid()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class-source-options.do.ts:12\n \n \n\n \n \n\n \n\n\n \n export interface ClassSourceOptionsProps {\n\ttspUid?: string;\n}\n\nexport class ClassSourceOptions {\n\tprotected props: ClassSourceOptionsProps;\n\n\tconstructor(props: ClassSourceOptionsProps) {\n\t\tthis.props = props;\n\t}\n\n\tget tspUid(): string | undefined {\n\t\treturn this.props.tspUid;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassSourceOptionsEntity.html":{"url":"classes/ClassSourceOptionsEntity.html","title":"class - ClassSourceOptionsEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassSourceOptionsEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/class-source-options.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n tspUid\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ClassSourceOptionsEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/class/entity/class-source-options.entity.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ClassSourceOptionsEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n tspUid\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class-source-options.entity.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\nexport interface ClassSourceOptionsEntityProps {\n\ttspUid?: string;\n}\n\n@Embeddable()\nexport class ClassSourceOptionsEntity {\n\t@Property({ nullable: true })\n\ttspUid?: string;\n\n\tconstructor(props: ClassSourceOptionsEntityProps) {\n\t\tif (props.tspUid !== undefined) {\n\t\t\tthis.tspUid = props.tspUid;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ClassSourceOptionsEntityProps.html":{"url":"interfaces/ClassSourceOptionsEntityProps.html","title":"interface - ClassSourceOptionsEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ClassSourceOptionsEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/class-source-options.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n tspUid\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n tspUid\n \n \n \n \n \n \n \n \n tspUid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\nexport interface ClassSourceOptionsEntityProps {\n\ttspUid?: string;\n}\n\n@Embeddable()\nexport class ClassSourceOptionsEntity {\n\t@Property({ nullable: true })\n\ttspUid?: string;\n\n\tconstructor(props: ClassSourceOptionsEntityProps) {\n\t\tif (props.tspUid !== undefined) {\n\t\t\tthis.tspUid = props.tspUid;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ClassSourceOptionsProps.html":{"url":"interfaces/ClassSourceOptionsProps.html","title":"interface - ClassSourceOptionsProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ClassSourceOptionsProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/class-source-options.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n tspUid\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n tspUid\n \n \n \n \n \n \n \n \n tspUid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface ClassSourceOptionsProps {\n\ttspUid?: string;\n}\n\nexport class ClassSourceOptions {\n\tprotected props: ClassSourceOptionsProps;\n\n\tconstructor(props: ClassSourceOptionsProps) {\n\t\tthis.props = props;\n\t}\n\n\tget tspUid(): string | undefined {\n\t\treturn this.props.tspUid;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ClassesRepo.html":{"url":"injectables/ClassesRepo.html","title":"injectable - ClassesRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ClassesRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/repo/classes.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAllByUserId\n \n \n Async\n updateMany\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, mapper: ClassMapper)\n \n \n \n \n Defined in apps/server/src/modules/class/repo/classes.repo.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n mapper\n \n \n ClassMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAllByUserId\n \n \n \n \n \n \n \n findAllByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/classes.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateMany\n \n \n \n \n \n \n \n updateMany(classes: Class[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/classes.repo.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n classes\n \n Class[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\n\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { ClassEntity } from '../entity';\nimport { Class } from '../domain';\nimport { ClassMapper } from './mapper';\n\n@Injectable()\nexport class ClassesRepo {\n\tconstructor(private readonly em: EntityManager, private readonly mapper: ClassMapper) {}\n\n\tasync findAllByUserId(userId: EntityId): Promise {\n\t\tconst classes: ClassEntity[] = await this.em.find(ClassEntity, { userIds: new ObjectId(userId) });\n\t\treturn ClassMapper.mapToDOs(classes);\n\t}\n\n\tasync updateMany(classes: Class[]): Promise {\n\t\tconst classesEntities = ClassMapper.mapToEntities(classes);\n\t\tconst referencedEntities = classesEntities.map((classEntity) => this.em.getReference(ClassEntity, classEntity.id));\n\n\t\tawait this.em.persistAndFlush(referencedEntities);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CloseUserLoginMigrationUc.html":{"url":"injectables/CloseUserLoginMigrationUc.html","title":"injectable - CloseUserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CloseUserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/close-user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n closeMigration\n \n \n Private\n isGracePeriodExpired\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, schoolMigrationService: SchoolMigrationService, userLoginMigrationRevertService: UserLoginMigrationRevertService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/close-user-login-migration.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n userLoginMigrationRevertService\n \n \n UserLoginMigrationRevertService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n closeMigration\n \n \n \n \n \n \n \n closeMigration(userId: EntityId, schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/close-user-login-migration.uc.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isGracePeriodExpired\n \n \n \n \n \n \n \n isGracePeriodExpired(userLoginMigration: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/close-user-login-migration.uc.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { EntityId, Permission, User, UserLoginMigrationDO } from '@shared/domain';\nimport { Action, AuthorizationService } from '@src/modules/authorization';\nimport {\n\tUserLoginMigrationGracePeriodExpiredLoggableException,\n\tUserLoginMigrationNotFoundLoggableException,\n} from '../error';\nimport { SchoolMigrationService, UserLoginMigrationRevertService, UserLoginMigrationService } from '../service';\n\n@Injectable()\nexport class CloseUserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService,\n\t\tprivate readonly userLoginMigrationRevertService: UserLoginMigrationRevertService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tasync closeMigration(userId: EntityId, schoolId: EntityId): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t}\n\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tthis.authorizationService.checkPermission(user, userLoginMigration, {\n\t\t\trequiredPermissions: [Permission.USER_LOGIN_MIGRATION_ADMIN],\n\t\t\taction: Action.write,\n\t\t});\n\n\t\tif (userLoginMigration.finishedAt && this.isGracePeriodExpired(userLoginMigration)) {\n\t\t\tthrow new UserLoginMigrationGracePeriodExpiredLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.finishedAt\n\t\t\t);\n\t\t} else if (userLoginMigration.closedAt) {\n\t\t\treturn userLoginMigration;\n\t\t} else {\n\t\t\tconst updatedUserLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationService.closeMigration(\n\t\t\t\tschoolId\n\t\t\t);\n\n\t\t\tconst hasSchoolMigratedUser: boolean = await this.schoolMigrationService.hasSchoolMigratedUser(schoolId);\n\n\t\t\tif (!hasSchoolMigratedUser) {\n\t\t\t\tawait this.userLoginMigrationRevertService.revertUserLoginMigration(updatedUserLoginMigration);\n\t\t\t} else {\n\t\t\t\tawait this.schoolMigrationService.markUnmigratedUsersAsOutdated(schoolId);\n\t\t\t}\n\n\t\t\treturn updatedUserLoginMigration;\n\t\t}\n\t}\n\n\tprivate isGracePeriodExpired(userLoginMigration: UserLoginMigrationDO): boolean {\n\t\tconst isGracePeriodExpired: boolean =\n\t\t\t!!userLoginMigration.finishedAt && Date.now() >= userLoginMigration.finishedAt.getTime();\n\n\t\treturn isGracePeriodExpired;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CollaborativeStorageAdapter.html":{"url":"injectables/CollaborativeStorageAdapter.html","title":"injectable - CollaborativeStorageAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CollaborativeStorageAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts\n \n\n\n \n Description\n \n \n Provides an Adapter to an external collaborative storage.\nIt loads an appropriate strategy and applies that to the given data.\n\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n strategy\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n createTeam\n \n \n deleteTeam\n \n \n setStrategy\n \n \n updateTeam\n \n \n updateTeamPermissionsForRole\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(strategy: ICollaborativeStorageStrategy, mapper: CollaborativeStorageAdapterMapper, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n strategy\n \n \n ICollaborativeStorageStrategy\n \n \n \n No\n \n \n \n \n mapper\n \n \n CollaborativeStorageAdapterMapper\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n \n \ncreateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:58\n \n \n\n\n \n \n Creates a team in the collaborative storage\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n The team DTO\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteTeam\n \n \n \n \n \n \ndeleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:49\n \n \n\n\n \n \n Deletes a team in the collaborative storage\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n The team id\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setStrategy\n \n \n \n \n \n \nsetStrategy(strategy: ICollaborativeStorageStrategy)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:30\n \n \n\n\n \n \n Set the strategy that should be used by the adapter\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n strategy\n \n ICollaborativeStorageStrategy\n \n\n \n No\n \n\n\n \n The strategy\n\n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeam\n \n \n \n \n \n \nupdateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:67\n \n \n\n\n \n \n Updates a team in the collaborative storage\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n The team DTO\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n \n \nupdateTeamPermissionsForRole(team: TeamDto, role: RoleDto, permissions: TeamPermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:40\n \n \n\n\n \n \n Update the Permissions for a given Role in the given Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n The Team DTO\n\n \n \n \n role\n \n RoleDto\n \n\n \n No\n \n\n\n \n The Role DTO\n\n \n \n \n permissions\n \n TeamPermissionsDto\n \n\n \n No\n \n\n\n \n The permissions to set\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n strategy\n \n \n \n \n \n \n Type : ICollaborativeStorageStrategy\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:15\n \n \n\n\n \n \n\n\n \n\n\n \n import { TeamPermissionsDto } from '@src/modules/collaborative-storage/services/dto/team-permissions.dto';\nimport { TeamDto } from '@src/modules/collaborative-storage/services/dto/team.dto';\nimport { ICollaborativeStorageStrategy } from '@shared/infra/collaborative-storage/strategy/base.interface.strategy';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { CollaborativeStorageAdapterMapper } from '@shared/infra/collaborative-storage/mapper/collaborative-storage-adapter.mapper';\nimport { LegacyLogger } from '@src/core/logger';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\n\n/**\n * Provides an Adapter to an external collaborative storage.\n * It loads an appropriate strategy and applies that to the given data.\n */\n@Injectable()\nexport class CollaborativeStorageAdapter {\n\tstrategy: ICollaborativeStorageStrategy;\n\n\tconstructor(\n\t\t@Inject('ICollaborativeStorageStrategy') strategy: ICollaborativeStorageStrategy,\n\t\tprivate mapper: CollaborativeStorageAdapterMapper,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(CollaborativeStorageAdapter.name);\n\t\tthis.strategy = strategy;\n\t}\n\n\t/**\n\t * Set the strategy that should be used by the adapter\n\t * @param strategy The strategy\n\t */\n\tsetStrategy(strategy: ICollaborativeStorageStrategy) {\n\t\tthis.strategy = strategy;\n\t}\n\n\t/**\n\t * Update the Permissions for a given Role in the given Team\n\t * @param team The Team DTO\n\t * @param role The Role DTO\n\t * @param permissions The permissions to set\n\t */\n\tupdateTeamPermissionsForRole(team: TeamDto, role: RoleDto, permissions: TeamPermissionsDto): Promise {\n\t\treturn this.strategy.updateTeamPermissionsForRole(this.mapper.mapDomainToAdapter(team, role, permissions));\n\t}\n\n\t/**\n\t * Deletes a team in the collaborative storage\n\t *\n\t * @param teamId The team id\n\t */\n\tdeleteTeam(teamId: string): Promise {\n\t\treturn this.strategy.deleteTeam(teamId);\n\t}\n\n\t/**\n\t * Creates a team in the collaborative storage\n\t *\n\t * @param team The team DTO\n\t */\n\tcreateTeam(team: TeamDto): Promise {\n\t\treturn this.strategy.createTeam(team);\n\t}\n\n\t/**\n\t * Updates a team in the collaborative storage\n\t *\n\t * @param team The team DTO\n\t */\n\tupdateTeam(team: TeamDto): Promise {\n\t\treturn this.strategy.updateTeam(team);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CollaborativeStorageAdapterMapper.html":{"url":"injectables/CollaborativeStorageAdapterMapper.html","title":"injectable - CollaborativeStorageAdapterMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CollaborativeStorageAdapterMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/mapper/collaborative-storage-adapter.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapDomainToAdapter\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapDomainToAdapter\n \n \n \n \n \n \n \n mapDomainToAdapter(team: TeamDto, role: RoleDto, permissions: TeamPermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/mapper/collaborative-storage-adapter.mapper.ts:16\n \n \n\n\n \n \n Maps the Domain DTOs to an appropriate adapter DTO\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n The Team DTO\n\n \n \n \n role\n \n RoleDto\n \n\n \n No\n \n\n\n \n The Role DTO\n\n \n \n \n permissions\n \n TeamPermissionsDto\n \n\n \n No\n \n\n\n \n The Permissions DTO\n\n \n \n \n \n \n \n \n \n Returns : TeamRolePermissionsDto\n\n \n \n The mapped adapter DTO\n\n \n \n \n \n \n\n\n \n\n\n \n import { TeamPermissionsDto } from '@src/modules/collaborative-storage/services/dto/team-permissions.dto';\nimport { TeamDto } from '@src/modules/collaborative-storage/services/dto/team.dto';\nimport { Injectable } from '@nestjs/common';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\nimport { TeamRolePermissionsDto } from '../dto/team-role-permissions.dto';\n\n@Injectable()\nexport class CollaborativeStorageAdapterMapper {\n\t/**\n\t * Maps the Domain DTOs to an appropriate adapter DTO\n\t * @param team The Team DTO\n\t * @param role The Role DTO\n\t * @param permissions The Permissions DTO\n\t * @return The mapped adapter DTO\n\t */\n\tpublic mapDomainToAdapter(team: TeamDto, role: RoleDto, permissions: TeamPermissionsDto): TeamRolePermissionsDto {\n\t\treturn new TeamRolePermissionsDto({\n\t\t\tteamId: team.id,\n\t\t\tteamName: team.name,\n\t\t\troleName: role.name,\n\t\t\tpermissions: [\n\t\t\t\t!!permissions.read,\n\t\t\t\t!!permissions.write,\n\t\t\t\t!!permissions.create,\n\t\t\t\t!!permissions.delete,\n\t\t\t\t!!permissions.share,\n\t\t\t],\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CollaborativeStorageAdapterModule.html":{"url":"modules/CollaborativeStorageAdapterModule.html","title":"module - CollaborativeStorageAdapterModule","body":"\n \n\n\n\n\n Modules\n CollaborativeStorageAdapterModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CollaborativeStorageAdapterModule\n\n\n\ncluster_CollaborativeStorageAdapterModule_exports\n\n\n\ncluster_CollaborativeStorageAdapterModule_imports\n\n\n\ncluster_CollaborativeStorageAdapterModule_providers\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageAdapterModule -->\n\nLoggerModule->CollaborativeStorageAdapterModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nCollaborativeStorageAdapterModule -->\n\nPseudonymModule->CollaborativeStorageAdapterModule\n\n\n\n\n\nToolModule\n\nToolModule\n\nCollaborativeStorageAdapterModule -->\n\nToolModule->CollaborativeStorageAdapterModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nCollaborativeStorageAdapterModule -->\n\nUserModule->CollaborativeStorageAdapterModule\n\n\n\n\n\nCollaborativeStorageAdapter \n\nCollaborativeStorageAdapter \n\nCollaborativeStorageAdapter -->\n\nCollaborativeStorageAdapterModule->CollaborativeStorageAdapter \n\n\n\n\n\nCollaborativeStorageAdapter\n\nCollaborativeStorageAdapter\n\nCollaborativeStorageAdapterModule -->\n\nCollaborativeStorageAdapter->CollaborativeStorageAdapterModule\n\n\n\n\n\nCollaborativeStorageAdapterMapper\n\nCollaborativeStorageAdapterMapper\n\nCollaborativeStorageAdapterModule -->\n\nCollaborativeStorageAdapterMapper->CollaborativeStorageAdapterModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nCollaborativeStorageAdapterModule -->\n\nLtiToolRepo->CollaborativeStorageAdapterModule\n\n\n\n\n\nNextcloudClient\n\nNextcloudClient\n\nCollaborativeStorageAdapterModule -->\n\nNextcloudClient->CollaborativeStorageAdapterModule\n\n\n\n\n\nNextcloudStrategy\n\nNextcloudStrategy\n\nCollaborativeStorageAdapterModule -->\n\nNextcloudStrategy->CollaborativeStorageAdapterModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/collaborative-storage-adapter.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CollaborativeStorageAdapter\n \n \n CollaborativeStorageAdapterMapper\n \n \n LtiToolRepo\n \n \n NextcloudClient\n \n \n NextcloudStrategy\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n PseudonymModule\n \n \n ToolModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n CollaborativeStorageAdapter\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpModule } from '@nestjs/axios';\nimport { Module, Provider } from '@nestjs/common';\nimport { CollaborativeStorageAdapterMapper } from '@shared/infra/collaborative-storage/mapper/collaborative-storage-adapter.mapper';\nimport { NextcloudClient } from '@shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.client';\nimport { NextcloudStrategy } from '@shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy';\nimport { LtiToolRepo } from '@shared/repo/ltitool/';\nimport { LoggerModule } from '@src/core/logger';\nimport { ToolModule } from '@src/modules/tool';\nimport { PseudonymModule } from '@src/modules/pseudonym';\nimport { UserModule } from '@src/modules/user';\nimport { CollaborativeStorageAdapter } from './collaborative-storage.adapter';\n\nconst storageStrategy: Provider = {\n\tprovide: 'ICollaborativeStorageStrategy',\n\tuseExisting: NextcloudStrategy,\n};\n\n@Module({\n\timports: [HttpModule, LoggerModule, ToolModule, PseudonymModule, UserModule],\n\tproviders: [\n\t\tCollaborativeStorageAdapter,\n\t\tCollaborativeStorageAdapterMapper,\n\t\tLtiToolRepo,\n\t\tNextcloudStrategy,\n\t\tNextcloudClient,\n\t\tstorageStrategy,\n\t\t{\n\t\t\tprovide: 'oidcInternalName',\n\t\t\tuseValue: Configuration.get('NEXTCLOUD_SOCIALLOGIN_OIDC_INTERNAL_NAME') as string,\n\t\t},\n\t],\n\texports: [CollaborativeStorageAdapter],\n})\nexport class CollaborativeStorageAdapterModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/CollaborativeStorageController.html":{"url":"controllers/CollaborativeStorageController.html","title":"controller - CollaborativeStorageController","body":"\n \n\n\n\n\n\n\n Controllers\n CollaborativeStorageController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/controller/collaborative-storage.controller.ts\n \n\n \n Prefix\n \n \n collaborative-storage\n \n\n\n \n Description\n \n \n Class for providing access to an external collaborative storage.\n\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n \n \n \n updateTeamPermissionsForRole(currentUser: ICurrentUser, teamRole: TeamRoleDto, permissionsBody: TeamPermissionsBody)\n \n \n\n \n \n Decorators : \n \n @Patch('team/:teamId/role/:roleId/permissions')@ApiResponse({status: 200, description: 'Updates the permissions for a team in the external collaborative storage'})@ApiResponse({status: 400, description: 'An error occurred while processing the request'})@ApiResponse({status: 403, description: 'User does not have the correct permission'})@ApiResponse({status: 404, description: 'Team or Role not found!'})\n \n \n\n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/collaborative-storage.controller.ts:33\n \n \n\n\n \n \n Updates the CRUD Permissions(+Share) for a specific Role in a Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n The current User\n\n \n \n \n teamRole\n \n TeamRoleDto\n \n\n \n No\n \n\n\n \n Encapsulates the Team and Role to be updated\n\n \n \n \n permissionsBody\n \n TeamPermissionsBody\n \n\n \n No\n \n\n\n \n The new Permissions\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { Body, Controller, Param, Patch } from '@nestjs/common';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '../../authentication/interface/user';\nimport { CollaborativeStorageUc } from '../uc/collaborative-storage.uc';\nimport { TeamPermissionsBody } from './dto/team-permissions.body.params';\nimport { TeamRoleDto } from './dto/team-role.params';\n\n/**\n * Class for providing access to an external collaborative storage.\n *\n */\n@ApiTags('Collaborative-Storage')\n@Authenticate('jwt')\n@Controller('collaborative-storage')\nexport class CollaborativeStorageController {\n\tconstructor(private readonly teamStorageUc: CollaborativeStorageUc, private logger: LegacyLogger) {\n\t\tthis.logger.setContext(CollaborativeStorageController.name);\n\t}\n\n\t/**\n\t * Updates the CRUD Permissions(+Share) for a specific Role in a Team\n\t * @param currentUser The current User\n\t * @param teamRole Encapsulates the Team and Role to be updated\n\t * @param permissionsBody The new Permissions\n\t */\n\t@Patch('team/:teamId/role/:roleId/permissions')\n\t@ApiResponse({ status: 200, description: 'Updates the permissions for a team in the external collaborative storage' })\n\t@ApiResponse({ status: 400, description: 'An error occurred while processing the request' })\n\t@ApiResponse({ status: 403, description: 'User does not have the correct permission' })\n\t@ApiResponse({ status: 404, description: 'Team or Role not found!' })\n\tupdateTeamPermissionsForRole(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() teamRole: TeamRoleDto,\n\t\t@Body() permissionsBody: TeamPermissionsBody\n\t): Promise {\n\t\treturn this.teamStorageUc.updateUserPermissionsForRole(currentUser.userId, teamRole, permissionsBody);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CollaborativeStorageModule.html":{"url":"modules/CollaborativeStorageModule.html","title":"module - CollaborativeStorageModule","body":"\n \n\n\n\n\n Modules\n CollaborativeStorageModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CollaborativeStorageModule\n\n\n\ncluster_CollaborativeStorageModule_imports\n\n\n\ncluster_CollaborativeStorageModule_providers\n\n\n\ncluster_CollaborativeStorageModule_exports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule -->\n\nAuthorizationModule->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageAdapterModule->CollaborativeStorageModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCollaborativeStorageModule -->\n\nLoggerModule->CollaborativeStorageModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nCollaborativeStorageModule -->\n\nRoleModule->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageUc \n\nCollaborativeStorageUc \n\nCollaborativeStorageUc -->\n\nCollaborativeStorageModule->CollaborativeStorageUc \n\n\n\n\n\nCollaborativeStorageService\n\nCollaborativeStorageService\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageService->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageUc\n\nCollaborativeStorageUc\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageUc->CollaborativeStorageModule\n\n\n\n\n\nTeamMapper\n\nTeamMapper\n\nCollaborativeStorageModule -->\n\nTeamMapper->CollaborativeStorageModule\n\n\n\n\n\nTeamPermissionsMapper\n\nTeamPermissionsMapper\n\nCollaborativeStorageModule -->\n\nTeamPermissionsMapper->CollaborativeStorageModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nCollaborativeStorageModule -->\n\nTeamsRepo->CollaborativeStorageModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/collaborative-storage/collaborative-storage.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CollaborativeStorageService\n \n \n CollaborativeStorageUc\n \n \n TeamMapper\n \n \n TeamPermissionsMapper\n \n \n TeamsRepo\n \n \n \n \n Controllers\n \n \n CollaborativeStorageController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CollaborativeStorageAdapterModule\n \n \n LoggerModule\n \n \n RoleModule\n \n \n \n \n Exports\n \n \n CollaborativeStorageUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CollaborativeStorageAdapterModule } from '@shared/infra/collaborative-storage/collaborative-storage-adapter.module';\nimport { TeamsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { TeamPermissionsMapper } from '@src/modules/collaborative-storage/mapper/team-permissions.mapper';\nimport { TeamMapper } from '@src/modules/collaborative-storage/mapper/team.mapper';\nimport { CollaborativeStorageService } from '@src/modules/collaborative-storage/services/collaborative-storage.service';\nimport { RoleModule } from '@src/modules/role/role.module';\nimport { CollaborativeStorageController } from './controller/collaborative-storage.controller';\nimport { CollaborativeStorageUc } from './uc/collaborative-storage.uc';\n\n@Module({\n\timports: [CollaborativeStorageAdapterModule, AuthorizationModule, LoggerModule, RoleModule],\n\tproviders: [TeamsRepo, CollaborativeStorageUc, CollaborativeStorageService, TeamPermissionsMapper, TeamMapper],\n\tcontrollers: [CollaborativeStorageController],\n\texports: [CollaborativeStorageUc],\n})\nexport class CollaborativeStorageModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CollaborativeStorageService.html":{"url":"injectables/CollaborativeStorageService.html","title":"injectable - CollaborativeStorageService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CollaborativeStorageService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n createTeam\n \n \n deleteTeam\n \n \n Async\n findTeamById\n \n \n updateTeam\n \n \n Async\n updateTeamPermissionsForRole\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(adapter: CollaborativeStorageAdapter, roleService: RoleService, teamsMapper: TeamMapper, teamsRepo: TeamsRepo, authService: AuthorizationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n adapter\n \n \n CollaborativeStorageAdapter\n \n \n \n No\n \n \n \n \n roleService\n \n \n RoleService\n \n \n \n No\n \n \n \n \n teamsMapper\n \n \n TeamMapper\n \n \n \n No\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n authService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n \n \ncreateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteTeam\n \n \n \n \n \n \ndeleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findTeamById\n \n \n \n \n \n \n \n findTeamById(teamId: EntityId, populate)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:31\n \n \n\n\n \n \n Find a Team by its Id and return the DTO\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n Description\n \n \n \n \n teamId\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n The TeamId\n\n \n \n \n populate\n \n \n\n \n No\n \n\n \n false\n \n\n \n Decide, if you want to populate the Users in the Entity\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n The mapped DTO\n\n \n \n \n \n \n \n \n \n \n \n \n updateTeam\n \n \n \n \n \n \nupdateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTeamPermissionsForRole\n \n \n \n \n \n \n \n updateTeamPermissionsForRole(currentUserId: string, teamId: string, roleId: string, teamPermissions: TeamPermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:42\n \n \n\n\n \n \n Sets the Permissions for the specified Role in a Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n The current User. Needs to be either the teamowner or an teamadmin\n\n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n The TeamId\n\n \n \n \n roleId\n \n string\n \n\n \n No\n \n\n\n \n The RoleId\n\n \n \n \n teamPermissions\n \n TeamPermissionsDto\n \n\n \n No\n \n\n\n \n The new Permissions\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { CollaborativeStorageAdapter } from '@shared/infra/collaborative-storage';\nimport { TeamsRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { RoleService } from '@src/modules/role/service/role.service';\nimport { TeamMapper } from '../mapper/team.mapper';\nimport { TeamPermissionsDto } from './dto/team-permissions.dto';\nimport { TeamDto } from './dto/team.dto';\n\n@Injectable()\nexport class CollaborativeStorageService {\n\tconstructor(\n\t\tprivate adapter: CollaborativeStorageAdapter,\n\t\tprivate roleService: RoleService,\n\t\tprivate teamsMapper: TeamMapper,\n\t\tprivate teamsRepo: TeamsRepo,\n\t\tprivate authService: AuthorizationService,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(CollaborativeStorageService.name);\n\t}\n\n\t/**\n\t * Find a Team by its Id and return the DTO\n\t * @param teamId The TeamId\n\t * @param populate Decide, if you want to populate the Users in the Entity\n\t * @return The mapped DTO\n\t */\n\tasync findTeamById(teamId: EntityId, populate = false): Promise {\n\t\treturn this.teamsMapper.mapEntityToDto(await this.teamsRepo.findById(teamId, populate));\n\t}\n\n\t/**\n\t * Sets the Permissions for the specified Role in a Team\n\t * @param currentUserId The current User. Needs to be either the teamowner or an teamadmin\n\t * @param teamId The TeamId\n\t * @param roleId The RoleId\n\t * @param teamPermissions The new Permissions\n\t */\n\tasync updateTeamPermissionsForRole(\n\t\tcurrentUserId: string,\n\t\tteamId: string,\n\t\troleId: string,\n\t\tteamPermissions: TeamPermissionsDto\n\t): Promise {\n\t\tthis.authService.checkPermission(\n\t\t\tawait this.authService.getUserWithPermissions(currentUserId),\n\t\t\tawait this.teamsRepo.findById(teamId, true),\n\t\t\tAuthorizationContextBuilder.write([Permission.CHANGE_TEAM_ROLES])\n\t\t);\n\t\treturn this.adapter.updateTeamPermissionsForRole(\n\t\t\tawait this.findTeamById(teamId, true),\n\t\t\tawait this.roleService.findById(roleId),\n\t\t\tteamPermissions\n\t\t);\n\t}\n\n\tdeleteTeam(teamId: string): Promise {\n\t\treturn this.adapter.deleteTeam(teamId);\n\t}\n\n\tcreateTeam(team: TeamDto): Promise {\n\t\treturn this.adapter.createTeam(team);\n\t}\n\n\tupdateTeam(team: TeamDto): Promise {\n\t\treturn this.adapter.updateTeam(team);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CollaborativeStorageUc.html":{"url":"injectables/CollaborativeStorageUc.html","title":"injectable - CollaborativeStorageUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CollaborativeStorageUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n createTeam\n \n \n deleteTeam\n \n \n updateTeam\n \n \n Async\n updateUserPermissionsForRole\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(service: CollaborativeStorageService, permissionMapper: TeamPermissionsMapper)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n service\n \n \n CollaborativeStorageService\n \n \n \n No\n \n \n \n \n permissionMapper\n \n \n TeamPermissionsMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n \n \ncreateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteTeam\n \n \n \n \n \n \ndeleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeam\n \n \n \n \n \n \nupdateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateUserPermissionsForRole\n \n \n \n \n \n \n \n updateUserPermissionsForRole(currentUserId: string, teamRole: TeamRoleDto, permissionsDto: TeamPermissionsBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:21\n \n \n\n\n \n \n Sets the Permissions for the specified Role in a Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n The current User. Needs to be either the teamowner or an teamadmin\n\n \n \n \n teamRole\n \n TeamRoleDto\n \n\n \n No\n \n\n\n \n The Team and Role to be altered\n\n \n \n \n permissionsDto\n \n TeamPermissionsBody\n \n\n \n No\n \n\n\n \n The new permissions\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CollaborativeStorageService } from '@src/modules/collaborative-storage/services/collaborative-storage.service';\nimport { TeamPermissionsMapper } from '@src/modules/collaborative-storage/mapper/team-permissions.mapper';\nimport { TeamDto } from '@src/modules/collaborative-storage/services/dto/team.dto';\nimport { TeamPermissionsBody } from '../controller/dto/team-permissions.body.params';\nimport { TeamRoleDto } from '../controller/dto/team-role.params';\n\n@Injectable()\nexport class CollaborativeStorageUc {\n\tconstructor(\n\t\tprivate readonly service: CollaborativeStorageService,\n\t\tprivate readonly permissionMapper: TeamPermissionsMapper\n\t) {}\n\n\t/**\n\t * Sets the Permissions for the specified Role in a Team\n\t * @param currentUserId The current User. Needs to be either the teamowner or an teamadmin\n\t * @param teamRole The Team and Role to be altered\n\t * @param permissionsDto The new permissions\n\t */\n\tasync updateUserPermissionsForRole(\n\t\tcurrentUserId: string,\n\t\tteamRole: TeamRoleDto,\n\t\tpermissionsDto: TeamPermissionsBody\n\t): Promise {\n\t\treturn this.service.updateTeamPermissionsForRole(\n\t\t\tcurrentUserId,\n\t\t\tteamRole.teamId,\n\t\t\tteamRole.roleId,\n\t\t\tthis.permissionMapper.mapBodyToDto(permissionsDto)\n\t\t);\n\t}\n\n\tdeleteTeam(teamId: string): Promise {\n\t\treturn this.service.deleteTeam(teamId);\n\t}\n\n\tcreateTeam(team: TeamDto): Promise {\n\t\treturn this.service.createTeam(team);\n\t}\n\n\tupdateTeam(team: TeamDto): Promise {\n\t\treturn this.service.updateTeam(team);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Column.html":{"url":"classes/Column.html","title":"class - Column","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Column\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/column.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:23\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n\n \n \n gettitle()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column.do.ts:6\n \n \n\n \n \n settitle(title: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { Card } from './card.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class Column extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof Card;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitColumn(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitColumnAsync(this);\n\t}\n}\n\nexport interface ColumnProps extends BoardCompositeProps {\n\ttitle: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnBoard.html":{"url":"classes/ColumnBoard.html","title":"class - ColumnBoard","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnBoard\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/column-board.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n context\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:27\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n\n \n \n gettitle()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column-board.do.ts:6\n \n \n\n \n \n settitle(title: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column-board.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n context\n \n \n\n \n \n getcontext()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column-board.do.ts:14\n \n \n\n \n \n setcontext(context: BoardExternalReference)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column-board.do.ts:18\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n context\n \n \n BoardExternalReference\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { Column } from './column.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync, BoardExternalReference } from './types';\n\nexport class ColumnBoard extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tget context(): BoardExternalReference {\n\t\treturn this.props.context;\n\t}\n\n\tset context(context: BoardExternalReference) {\n\t\tthis.props.context = context;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof Column;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitColumnBoard(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitColumnBoardAsync(this);\n\t}\n}\n\nexport interface ColumnBoardProps extends BoardCompositeProps {\n\ttitle: string;\n\tcontext: BoardExternalReference;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnBoardFactory.html":{"url":"classes/ColumnBoardFactory.html","title":"class - ColumnBoardFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnBoardFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/board/column-board.do.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withoutContext\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withoutContext\n \n \n \n \n \n \nwithoutContext()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/board/column-board.do.factory.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BoardExternalReferenceType, ColumnBoard, ColumnBoardProps } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport { BaseFactory } from '../../base.factory';\n\nexport type IColumnBoardProperties = Readonly;\n\nclass ColumnBoardFactory extends BaseFactory {\n\twithoutContext(): this {\n\t\tconst params = { context: undefined };\n\t\treturn this.params(params);\n\t}\n}\nexport const columnBoardFactory = ColumnBoardFactory.define(ColumnBoard, ({ sequence }) => {\n\treturn {\n\t\tid: new ObjectId().toHexString(),\n\t\ttitle: `column board #${sequence}`,\n\t\tchildren: [],\n\t\tcreatedAt: new Date(),\n\t\tupdatedAt: new Date(),\n\t\tcontext: {\n\t\t\ttype: BoardExternalReferenceType.Course,\n\t\t\tid: new ObjectId().toHexString(),\n\t\t},\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ColumnBoardNode.html":{"url":"entities/ColumnBoardNode.html","title":"entity - ColumnBoardNode","body":"\n \n\n\n\n\n\n\n\n Entities\n ColumnBoardNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/column-board-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _contextId\n \n \n \n _contextType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _contextId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'context'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/column-board-node.entity.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n _contextType\n \n \n \n \n \n \n Type : BoardExternalReferenceType\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'contextType'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/column-board-node.entity.ts:19\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo, BoardExternalReference, BoardExternalReferenceType } from '@shared/domain/domainobject';\nimport { ObjectId } from 'bson';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.COLUMN_BOARD })\nexport class ColumnBoardNode extends BoardNode {\n\tconstructor(props: ColumnBoardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.COLUMN_BOARD;\n\n\t\tthis._contextType = props.context.type;\n\t\tthis._contextId = new ObjectId(props.context.id);\n\t}\n\n\t@Property({ fieldName: 'contextType' })\n\t_contextType: BoardExternalReferenceType;\n\n\t@Property({ fieldName: 'context' })\n\t_contextId: ObjectId;\n\n\tget context(): BoardExternalReference {\n\t\treturn {\n\t\t\ttype: this._contextType,\n\t\t\tid: this._contextId.toHexString(),\n\t\t};\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildColumnBoard(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface ColumnBoardNodeProps extends BoardNodeProps {\n\tcontext: BoardExternalReference;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ColumnBoardNodeProps.html":{"url":"interfaces/ColumnBoardNodeProps.html","title":"interface - ColumnBoardNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ColumnBoardNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/column-board-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n context: BoardExternalReference\n\n \n \n\n\n \n \n Type : BoardExternalReference\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo, BoardExternalReference, BoardExternalReferenceType } from '@shared/domain/domainobject';\nimport { ObjectId } from 'bson';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.COLUMN_BOARD })\nexport class ColumnBoardNode extends BoardNode {\n\tconstructor(props: ColumnBoardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.COLUMN_BOARD;\n\n\t\tthis._contextType = props.context.type;\n\t\tthis._contextId = new ObjectId(props.context.id);\n\t}\n\n\t@Property({ fieldName: 'contextType' })\n\t_contextType: BoardExternalReferenceType;\n\n\t@Property({ fieldName: 'context' })\n\t_contextId: ObjectId;\n\n\tget context(): BoardExternalReference {\n\t\treturn {\n\t\t\ttype: this._contextType,\n\t\t\tid: this._contextId.toHexString(),\n\t\t};\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildColumnBoard(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface ColumnBoardNodeProps extends BoardNodeProps {\n\tcontext: BoardExternalReference;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ColumnBoardProps.html":{"url":"interfaces/ColumnBoardProps.html","title":"interface - ColumnBoardProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ColumnBoardProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/column-board.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n context\n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n context: BoardExternalReference\n\n \n \n\n\n \n \n Type : BoardExternalReference\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { Column } from './column.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync, BoardExternalReference } from './types';\n\nexport class ColumnBoard extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tget context(): BoardExternalReference {\n\t\treturn this.props.context;\n\t}\n\n\tset context(context: BoardExternalReference) {\n\t\tthis.props.context = context;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof Column;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitColumnBoard(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitColumnBoardAsync(this);\n\t}\n}\n\nexport interface ColumnBoardProps extends BoardCompositeProps {\n\ttitle: string;\n\tcontext: BoardExternalReference;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ColumnBoardService.html":{"url":"injectables/ColumnBoardService.html","title":"injectable - ColumnBoardService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnBoardService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/column-board.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Private\n createRichTextElement\n \n \n Async\n createWelcomeColumnBoard\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n findIdsByExternalReference\n \n \n Async\n getBoardObjectTitlesById\n \n \n Async\n updateTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService, contentElementFactory: ContentElementFactory)\n \n \n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n contentElementFactory\n \n \n ContentElementFactory\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(context: BoardExternalReference, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n context\n \n BoardExternalReference\n \n\n \n No\n \n\n \n \n\n \n \n title\n \n string\n \n\n \n No\n \n\n \n ''\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createRichTextElement\n \n \n \n \n \n \n \n createRichTextElement(text: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:130\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RichTextElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createWelcomeColumnBoard\n \n \n \n \n \n \n \n createWelcomeColumnBoard(courseReference: BoardExternalReference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseReference\n \n BoardExternalReference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(board: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:57\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findIdsByExternalReference\n \n \n \n \n \n \n \n findIdsByExternalReference(reference: BoardExternalReference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n BoardExternalReference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getBoardObjectTitlesById\n \n \n \n \n \n \n \n getBoardObjectTitlesById(boardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTitle\n \n \n \n \n \n \n \n updateTitle(board: ColumnBoard, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tBoardExternalReference,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tContentElementFactory,\n\tContentElementType,\n\tEntityId,\n\tRichTextElement,\n} from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\n\n@Injectable()\nexport class ColumnBoardService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly boardDoService: BoardDoService,\n\t\tprivate readonly contentElementFactory: ContentElementFactory\n\t) {}\n\n\tasync findById(boardId: EntityId): Promise {\n\t\tconst board = await this.boardDoRepo.findByClassAndId(ColumnBoard, boardId);\n\n\t\treturn board;\n\t}\n\n\tasync findIdsByExternalReference(reference: BoardExternalReference): Promise {\n\t\tconst ids = this.boardDoRepo.findIdsByExternalReference(reference);\n\n\t\treturn ids;\n\t}\n\n\tasync getBoardObjectTitlesById(boardIds: EntityId[]): Promise> {\n\t\tconst titleMap = this.boardDoRepo.getTitlesByIds(boardIds);\n\t\treturn titleMap;\n\t}\n\n\tasync create(context: BoardExternalReference, title = ''): Promise {\n\t\tconst columnBoard = new ColumnBoard({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tcontext,\n\t\t});\n\n\t\tawait this.boardDoRepo.save(columnBoard);\n\n\t\treturn columnBoard;\n\t}\n\n\tasync delete(board: ColumnBoard): Promise {\n\t\tawait this.boardDoService.deleteWithDescendants(board);\n\t}\n\n\tasync updateTitle(board: ColumnBoard, title: string): Promise {\n\t\tboard.title = title;\n\t\tawait this.boardDoRepo.save(board);\n\t}\n\n\tasync createWelcomeColumnBoard(courseReference: BoardExternalReference) {\n\t\tconst columnBoard = new ColumnBoard({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: '',\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tcontext: courseReference,\n\t\t});\n\n\t\tconst column = new Column({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: '',\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tcolumnBoard.addChild(column);\n\n\t\tconst card = new Card({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: 'Willkommen auf dem neuen Spalten-Board! 🥳',\n\t\t\theight: 150,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tcolumn.addChild(card);\n\n\t\tconst text1 = this.createRichTextElement(\n\t\t\t'Wir erweitern das Board kontinuierlich um wichtige Funktionen. Der aktuelle Stand kann hier getestet werden. '\n\t\t);\n\t\tcard.addChild(text1);\n\n\t\tif (Configuration.has('COLUMN_BOARD_HELP_LINK')) {\n\t\t\tconst helplink = Configuration.get('COLUMN_BOARD_HELP_LINK') as string;\n\t\t\tconst text2 = this.createRichTextElement(\n\t\t\t\t` Wichtige Informationen zu Berechtigungen und Informationen zum Einsatz des Boards sind im Hilfebereich zusammengefasst.`\n\t\t\t);\n\t\t\tcard.addChild(text2);\n\t\t}\n\n\t\tif (Configuration.has('COLUMN_BOARD_FEEDBACK_LINK')) {\n\t\t\tconst feedbacklink = Configuration.get('COLUMN_BOARD_FEEDBACK_LINK') as string;\n\t\t\tconst text3 = this.createRichTextElement(\n\t\t\t\t`Wir freuen uns sehr über Feedback zum Board unter folgendem Link.`\n\t\t\t);\n\t\t\tcard.addChild(text3);\n\t\t}\n\n\t\tconst SC_THEME = Configuration.get('SC_THEME') as string;\n\t\tif (SC_THEME !== 'default') {\n\t\t\tconst clientUrl = Configuration.get('HOST') as string;\n\t\t\tconst text4 = this.createRichTextElement(\n\t\t\t\t`Wir freuen uns über Feedback und Wünsche.`\n\t\t\t);\n\t\t\tcard.addChild(text4);\n\t\t}\n\n\t\tawait this.boardDoRepo.save(columnBoard);\n\n\t\treturn columnBoard;\n\t}\n\n\tprivate createRichTextElement(text: string): RichTextElement {\n\t\tconst element: RichTextElement = this.contentElementFactory.build(ContentElementType.RICH_TEXT) as RichTextElement;\n\t\telement.text = text;\n\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ColumnBoardTarget.html":{"url":"entities/ColumnBoardTarget.html","title":"entity - ColumnBoardTarget","body":"\n \n\n\n\n\n\n\n\n Entities\n ColumnBoardTarget\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _columnBoardId\n \n \n \n published\n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _columnBoardId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'columnBoard'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n published\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts:21\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '@shared/domain/types';\nimport { ObjectId } from 'bson';\nimport { BaseEntityWithTimestamps } from '../base.entity';\n\ntype ColumnBoardTargetProps = {\n\tcolumnBoardId: EntityId;\n\ttitle?: string;\n};\n\n@Entity()\nexport class ColumnBoardTarget extends BaseEntityWithTimestamps implements ILearnroomElement {\n\tconstructor(props: ColumnBoardTargetProps) {\n\t\tsuper();\n\t\tthis._columnBoardId = new ObjectId(props.columnBoardId);\n\t\tthis.title = props.title ?? '';\n\t}\n\n\t@Property()\n\ttitle: string;\n\n\tpublish(): void {\n\t\tthis.published = true;\n\t}\n\n\tunpublish(): void {\n\t\tthis.published = false;\n\t}\n\n\t@Property()\n\tpublished = false;\n\n\t@Property({ fieldName: 'columnBoard' })\n\t_columnBoardId: ObjectId;\n\n\tget columnBoardId(): EntityId {\n\t\treturn this._columnBoardId.toHexString();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ColumnBoardTargetService.html":{"url":"injectables/ColumnBoardTargetService.html","title":"injectable - ColumnBoardTargetService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnBoardTargetService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/column-board-target.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n findExistingTargets\n \n \n Async\n findOrCreateTargets\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(columnBoardService: ColumnBoardService, em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/column-board-target.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n findExistingTargets\n \n \n \n \n \n \n \n findExistingTargets(columnBoardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/column-board-target.service.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOrCreateTargets\n \n \n \n \n \n \n \n findOrCreateTargets(columnBoardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/column-board-target.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { ColumnBoardTarget, EntityId } from '@shared/domain';\nimport { ColumnBoardService } from '@src/modules/board';\n\n@Injectable()\nexport class ColumnBoardTargetService {\n\tconstructor(private readonly columnBoardService: ColumnBoardService, private readonly em: EntityManager) {}\n\n\tasync findOrCreateTargets(columnBoardIds: EntityId[]): Promise {\n\t\tconst existingTargets = await this.findExistingTargets(columnBoardIds);\n\n\t\tconst titlesMap = await this.columnBoardService.getBoardObjectTitlesById(columnBoardIds);\n\n\t\tconst columnBoardTargets = columnBoardIds.map((id) => {\n\t\t\tconst title = titlesMap[id] ?? '';\n\t\t\tlet target = existingTargets.find((item) => item.columnBoardId === id);\n\t\t\tif (target) {\n\t\t\t\ttarget.title = title;\n\t\t\t} else {\n\t\t\t\ttarget = new ColumnBoardTarget({ columnBoardId: id, title });\n\t\t\t}\n\t\t\tthis.em.persist(target);\n\t\t\treturn target;\n\t\t});\n\n\t\tawait this.em.flush();\n\n\t\treturn columnBoardTargets;\n\t}\n\n\tprivate async findExistingTargets(columnBoardIds: EntityId[]): Promise {\n\t\tconst existingTargets = await this.em.find(ColumnBoardTarget, {\n\t\t\t_columnBoardId: { $in: columnBoardIds },\n\t\t} as unknown as FilterQuery);\n\n\t\treturn existingTargets;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ColumnController.html":{"url":"controllers/ColumnController.html","title":"controller - ColumnController","body":"\n \n\n\n\n\n\n\n Controllers\n ColumnController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/column.controller.ts\n \n\n \n Prefix\n \n \n columns\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createCard\n \n \n \n \n \n \n \n \n \n Async\n deleteColumn\n \n \n \n \n \n \n \n \n \n Async\n moveColumn\n \n \n \n \n \n \n \n \n \n Async\n updateColumnTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createCard\n \n \n \n \n \n \n \n createCard(urlParams: ColumnUrlParams, currentUser: ICurrentUser, createCardBodyParams?: CreateCardBodyParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new card on a column.'})@ApiResponse({status: 201, type: CardResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@ApiBody({required: false, type: CreateCardBodyParams})@Post(':columnId/cards')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/column.controller.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ColumnUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n createCardBodyParams\n \n CreateCardBodyParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteColumn\n \n \n \n \n \n \n \n deleteColumn(urlParams: ColumnUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Delete a single column.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Delete(':columnId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/column.controller.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ColumnUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveColumn\n \n \n \n \n \n \n \n moveColumn(urlParams: ColumnUrlParams, bodyParams: MoveColumnBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Move a single column.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Put(':columnId/position')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/column.controller.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ColumnUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n MoveColumnBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateColumnTitle\n \n \n \n \n \n \n \n updateColumnTitle(urlParams: ColumnUrlParams, bodyParams: RenameBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update the title of a single column.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':columnId/title')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/column.controller.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ColumnUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n RenameBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\n\tPut,\n} from '@nestjs/common';\nimport { ApiBody, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { BoardUc } from '../uc';\nimport { CardResponse, ColumnUrlParams, MoveColumnBodyParams, RenameBodyParams } from './dto';\nimport { CardResponseMapper } from './mapper';\nimport { CreateCardBodyParams } from './dto/card/create-card.body.params';\n\n@ApiTags('Board Column')\n@Authenticate('jwt')\n@Controller('columns')\nexport class ColumnController {\n\tconstructor(private readonly boardUc: BoardUc) {}\n\n\t@ApiOperation({ summary: 'Move a single column.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Put(':columnId/position')\n\tasync moveColumn(\n\t\t@Param() urlParams: ColumnUrlParams,\n\t\t@Body() bodyParams: MoveColumnBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.moveColumn(currentUser.userId, urlParams.columnId, bodyParams.toBoardId, bodyParams.toPosition);\n\t}\n\n\t@ApiOperation({ summary: 'Update the title of a single column.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':columnId/title')\n\tasync updateColumnTitle(\n\t\t@Param() urlParams: ColumnUrlParams,\n\t\t@Body() bodyParams: RenameBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.updateColumnTitle(currentUser.userId, urlParams.columnId, bodyParams.title);\n\t}\n\n\t@ApiOperation({ summary: 'Delete a single column.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Delete(':columnId')\n\tasync deleteColumn(@Param() urlParams: ColumnUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.boardUc.deleteColumn(currentUser.userId, urlParams.columnId);\n\t}\n\n\t@ApiOperation({ summary: 'Create a new card on a column.' })\n\t@ApiResponse({ status: 201, type: CardResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@ApiBody({ required: false, type: CreateCardBodyParams })\n\t@Post(':columnId/cards')\n\tasync createCard(\n\t\t@Param() urlParams: ColumnUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() createCardBodyParams?: CreateCardBodyParams\n\t): Promise {\n\t\tconst { requiredEmptyElements } = createCardBodyParams || {};\n\t\tconst card = await this.boardUc.createCard(currentUser.userId, urlParams.columnId, requiredEmptyElements);\n\n\t\tconst response = CardResponseMapper.mapToResponse(card);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ColumnNode.html":{"url":"entities/ColumnNode.html","title":"entity - ColumnNode","body":"\n \n\n\n\n\n\n\n\n Entities\n ColumnNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/column-node.entity.ts\n \n\n\n\n\n\n \n\n\n \n import { Entity } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.COLUMN })\nexport class ColumnNode extends BoardNode {\n\tconstructor(props: BoardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.COLUMN;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildColumn(this);\n\t\treturn domainObject;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ColumnProps.html":{"url":"interfaces/ColumnProps.html","title":"interface - ColumnProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ColumnProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/column.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { Card } from './card.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class Column extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof Card;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitColumn(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitColumnAsync(this);\n\t}\n}\n\nexport interface ColumnProps extends BoardCompositeProps {\n\ttitle: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnResponse.html":{"url":"classes/ColumnResponse.html","title":"class - ColumnResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/column.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n cards\n \n \n \n id\n \n \n \n timestamps\n \n \n \n \n Optional\n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: ColumnResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n ColumnResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n cards\n \n \n \n \n \n \n Type : CardSkeletonResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { CardSkeletonResponse } from './card-skeleton.response';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class ColumnResponse {\n\tconstructor({ id, title, cards, timestamps }: ColumnResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.cards = cards;\n\t\tthis.timestamps = timestamps;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\ttype: [CardSkeletonResponse],\n\t})\n\tcards: CardSkeletonResponse[];\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnResponseMapper.html":{"url":"classes/ColumnResponseMapper.html","title":"class - ColumnResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/column-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/column-response.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ColumnResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, HttpStatus } from '@nestjs/common';\nimport { Card, Column } from '@shared/domain';\nimport { CardSkeletonResponse, ColumnResponse, TimestampsResponse } from '../dto';\n\nexport class ColumnResponseMapper {\n\tstatic mapToResponse(column: Column): ColumnResponse {\n\t\tconst result = new ColumnResponse({\n\t\t\tid: column.id,\n\t\t\ttitle: column.title,\n\t\t\tcards: column.children.map((card) => {\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tif (!(card instanceof Card)) {\n\t\t\t\t\tthrow new HttpException(`unsupported child type: ${card.constructor.name}`, HttpStatus.UNPROCESSABLE_ENTITY);\n\t\t\t\t}\n\t\t\t\treturn new CardSkeletonResponse({\n\t\t\t\t\tcardId: card.id,\n\t\t\t\t\theight: card.height,\n\t\t\t\t});\n\t\t\t}),\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: column.updatedAt, createdAt: column.createdAt }),\n\t\t});\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ColumnService.html":{"url":"injectables/ColumnService.html","title":"injectable - ColumnService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/column.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n move\n \n \n Async\n updateTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(parent: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(columnId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n move\n \n \n \n \n \n \n \n move(column: Column, targetBoard: ColumnBoard, targetPosition?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n targetBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTitle\n \n \n \n \n \n \n \n updateTitle(column: Column, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Column, ColumnBoard, EntityId } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\n\n@Injectable()\nexport class ColumnService {\n\tconstructor(private readonly boardDoRepo: BoardDoRepo, private readonly boardDoService: BoardDoService) {}\n\n\tasync findById(columnId: EntityId): Promise {\n\t\tconst column = await this.boardDoRepo.findByClassAndId(Column, columnId);\n\t\treturn column;\n\t}\n\n\tasync create(parent: ColumnBoard): Promise {\n\t\tconst column = new Column({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: '',\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\tparent.addChild(column);\n\n\t\tawait this.boardDoRepo.save(parent.children, parent);\n\n\t\treturn column;\n\t}\n\n\tasync delete(column: Column): Promise {\n\t\tawait this.boardDoService.deleteWithDescendants(column);\n\t}\n\n\tasync move(column: Column, targetBoard: ColumnBoard, targetPosition?: number): Promise {\n\t\tawait this.boardDoService.move(column, targetBoard, targetPosition);\n\t}\n\n\tasync updateTitle(column: Column, title: string): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(column.id);\n\t\tcolumn.title = title;\n\t\tawait this.boardDoRepo.save(column, parent);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnUrlParams.html":{"url":"classes/ColumnUrlParams.html","title":"class - ColumnUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/column.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n columnId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n columnId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the column.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class ColumnUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the column.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcolumnId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ColumnboardBoardElement.html":{"url":"entities/ColumnboardBoardElement.html","title":"entity - ColumnboardBoardElement","body":"\n \n\n\n\n\n\n\n\n Entities\n ColumnboardBoardElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/column-board-boardelement.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : ColumnBoardTarget\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('ColumnBoardTarget')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/column-board-boardelement.ts:13\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { BoardElement, BoardElementType } from './boardelement.entity';\nimport { ColumnBoardTarget } from './column-board-target.entity';\n\n@Entity({ discriminatorValue: BoardElementType.ColumnBoard })\nexport class ColumnboardBoardElement extends BoardElement {\n\tconstructor(props: { target: ColumnBoardTarget }) {\n\t\tsuper(props);\n\t\tthis.boardElementType = BoardElementType.ColumnBoard;\n\t}\n\n\t@ManyToOne('ColumnBoardTarget')\n\ttarget!: ColumnBoardTarget;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CommonCartridgeExportService.html":{"url":"injectables/CommonCartridgeExportService.html","title":"injectable - CommonCartridgeExportService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CommonCartridgeExportService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n addLessons\n \n \n Private\n Async\n addTasks\n \n \n Async\n exportCourse\n \n \n Private\n mapContentToResource\n \n \n Private\n mapCourseTeachersToCopyrightOwners\n \n \n Private\n mapTaskToWebContentResource\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseService: CourseService, lessonService: LessonService, taskService: TaskService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n lessonService\n \n \n LessonService\n \n \n \n No\n \n \n \n \n taskService\n \n \n TaskService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n addLessons\n \n \n \n \n \n \n \n addLessons(builder: CommonCartridgeFileBuilder, version: CommonCartridgeVersion, courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n builder\n \n CommonCartridgeFileBuilder\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n addTasks\n \n \n \n \n \n \n \n addTasks(builder: CommonCartridgeFileBuilder, version: CommonCartridgeVersion, courseId: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n builder\n \n CommonCartridgeFileBuilder\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n \n \n \n \n exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapContentToResource\n \n \n \n \n \n \n \n mapContentToResource(lessonId: string, content: IComponentProperties, version: CommonCartridgeVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonId\n \n string\n \n\n \n No\n \n\n\n \n \n content\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeResourceProps | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapCourseTeachersToCopyrightOwners\n \n \n \n \n \n \n \n mapCourseTeachersToCopyrightOwners(course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:130\n \n \n\n\n \n \n This method gets the course as parameter and maps the contained teacher names within the teachers Collection to a string.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n string\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n mapTaskToWebContentResource\n \n \n \n \n \n \n \n mapTaskToWebContentResource(task: Task, version: CommonCartridgeVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:138\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeWebContentResourceProps\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, EntityId, IComponentProperties, Task } from '@shared/domain';\nimport { LessonService } from '@src/modules/lesson/service';\nimport { ComponentType } from '@src/shared/domain/entity/lesson.entity';\nimport { TaskService } from '@src/modules/task/service';\nimport {\n\tCommonCartridgeFileBuilder,\n\tCommonCartridgeIntendedUseType,\n\tCommonCartridgeResourceType,\n\tCommonCartridgeVersion,\n\tICommonCartridgeResourceProps,\n\tICommonCartridgeWebContentResourceProps,\n} from '../common-cartridge';\nimport { CourseService } from './course.service';\nimport { createIdentifier } from '../common-cartridge/utils';\n\n@Injectable()\nexport class CommonCartridgeExportService {\n\tconstructor(\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly lessonService: LessonService,\n\t\tprivate readonly taskService: TaskService\n\t) {}\n\n\tasync exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion): Promise {\n\t\tconst course = await this.courseService.findById(courseId);\n\t\tconst builder = new CommonCartridgeFileBuilder({\n\t\t\tidentifier: createIdentifier(courseId),\n\t\t\ttitle: course.name,\n\t\t\tversion,\n\t\t\tcopyrightOwners: this.mapCourseTeachersToCopyrightOwners(course),\n\t\t\tcreationYear: course.createdAt.getFullYear().toString(),\n\t\t});\n\n\t\tawait this.addLessons(builder, version, courseId);\n\t\tawait this.addTasks(builder, version, courseId, userId);\n\n\t\treturn builder.build();\n\t}\n\n\tprivate async addLessons(\n\t\tbuilder: CommonCartridgeFileBuilder,\n\t\tversion: CommonCartridgeVersion,\n\t\tcourseId: EntityId\n\t): Promise {\n\t\tconst [lessons] = await this.lessonService.findByCourseIds([courseId]);\n\n\t\tlessons.forEach((lesson) => {\n\t\t\tconst organizationBuilder = builder.addOrganization({\n\t\t\t\tversion,\n\t\t\t\tidentifier: createIdentifier(lesson.id),\n\t\t\t\ttitle: lesson.name,\n\t\t\t\tresources: [],\n\t\t\t});\n\n\t\t\tlesson.contents.forEach((content) => {\n\t\t\t\tconst resourceProps = this.mapContentToResource(lesson.id, content, version);\n\t\t\t\tif (resourceProps) {\n\t\t\t\t\torganizationBuilder.addResourceToOrganization(resourceProps);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate async addTasks(\n\t\tbuilder: CommonCartridgeFileBuilder,\n\t\tversion: CommonCartridgeVersion,\n\t\tcourseId: EntityId,\n\t\tuserId: EntityId\n\t): Promise {\n\t\tconst [tasks] = await this.taskService.findBySingleParent(userId, courseId);\n\t\tconst organizationBuilder = builder.addOrganization({\n\t\t\tversion,\n\t\t\tidentifier: createIdentifier(),\n\t\t\t// FIXME: change the title for tasks organization\n\t\t\ttitle: '',\n\t\t\tresources: [],\n\t\t});\n\n\t\ttasks.forEach((task) => {\n\t\t\torganizationBuilder.addResourceToOrganization(this.mapTaskToWebContentResource(task, version));\n\t\t});\n\t}\n\n\tprivate mapContentToResource(\n\t\tlessonId: string,\n\t\tcontent: IComponentProperties,\n\t\tversion: CommonCartridgeVersion\n\t): ICommonCartridgeResourceProps | undefined {\n\t\tconst commonProps = {\n\t\t\tversion,\n\t\t\tidentifier: createIdentifier(content._id),\n\t\t\thref: `${createIdentifier(lessonId)}/${createIdentifier(content._id)}.html`,\n\t\t\ttitle: content.title,\n\t\t};\n\n\t\tif (content.component === ComponentType.TEXT) {\n\t\t\treturn {\n\t\t\t\tversion,\n\t\t\t\tidentifier: createIdentifier(content._id),\n\t\t\t\thref: `${createIdentifier(lessonId)}/${createIdentifier(content._id)}.html`,\n\t\t\t\ttitle: content.title,\n\t\t\t\ttype: CommonCartridgeResourceType.WEB_CONTENT,\n\t\t\t\tintendedUse: CommonCartridgeIntendedUseType.UNSPECIFIED,\n\t\t\t\thtml: `${content.title}${content.content.text}`,\n\t\t\t};\n\t\t}\n\n\t\tif (content.component === ComponentType.GEOGEBRA) {\n\t\t\tconst url = `https://www.geogebra.org/m/${content.content.materialId}`;\n\t\t\treturn version === CommonCartridgeVersion.V_1_3_0\n\t\t\t\t? { ...commonProps, type: CommonCartridgeResourceType.WEB_LINK_V3, url }\n\t\t\t\t: { ...commonProps, type: CommonCartridgeResourceType.WEB_LINK_V1, url };\n\t\t}\n\n\t\tif (content.component === ComponentType.ETHERPAD) {\n\t\t\treturn version === CommonCartridgeVersion.V_1_3_0\n\t\t\t\t? { ...commonProps, type: CommonCartridgeResourceType.WEB_LINK_V3, url: content.content.url }\n\t\t\t\t: { ...commonProps, type: CommonCartridgeResourceType.WEB_LINK_V1, url: content.content.url };\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * This method gets the course as parameter and maps the contained teacher names within the teachers Collection to a string.\n\t * @param Course\n\t * @return string\n\t * */\n\tprivate mapCourseTeachersToCopyrightOwners(course: Course): string {\n\t\tconst result = course.teachers\n\t\t\t.toArray()\n\t\t\t.map((teacher) => `${teacher.firstName} ${teacher.lastName}`)\n\t\t\t.reduce((previousTeachers, currentTeacher) => `${previousTeachers}, ${currentTeacher}`);\n\t\treturn result;\n\t}\n\n\tprivate mapTaskToWebContentResource(\n\t\ttask: Task,\n\t\tversion: CommonCartridgeVersion\n\t): ICommonCartridgeWebContentResourceProps {\n\t\tconst taskIdentifier = createIdentifier(task.id);\n\t\treturn {\n\t\t\tversion,\n\t\t\tidentifier: taskIdentifier,\n\t\t\thref: `${taskIdentifier}/${taskIdentifier}.html`,\n\t\t\ttitle: task.name,\n\t\t\ttype: CommonCartridgeResourceType.WEB_CONTENT,\n\t\t\thtml: `${task.name}${task.description}`,\n\t\t\tintendedUse:\n\t\t\t\tversion === CommonCartridgeVersion.V_1_1_0\n\t\t\t\t\t? CommonCartridgeIntendedUseType.UNSPECIFIED\n\t\t\t\t\t: CommonCartridgeIntendedUseType.ASSIGNMENT,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeFileBuilder.html":{"url":"classes/CommonCartridgeFileBuilder.html","title":"class - CommonCartridgeFileBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeFileBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeFileBuilder\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n organizations\n \n \n Private\n Readonly\n resources\n \n \n Private\n Readonly\n xmlBuilder\n \n \n Private\n Readonly\n zipBuilder\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n addOrganization\n \n \n addResourceToFile\n \n \n Async\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(options: ICommonCartridgeFileBuilderOptions)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:69\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n \n ICommonCartridgeFileBuilderOptions\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n organizations\n \n \n \n \n \n \n Default value : new Array()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:67\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n resources\n \n \n \n \n \n \n Default value : new Array()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n xmlBuilder\n \n \n \n \n \n \n Default value : new Builder()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n zipBuilder\n \n \n \n \n \n \n Default value : new AdmZip()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:65\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n addOrganization\n \n \n \n \n \n \naddOrganization(props: ICommonCartridgeOrganizationProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeOrganizationProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeOrganizationBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addResourceToFile\n \n \n \n \n \n \naddResourceToFile(props: ICommonCartridgeResourceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeResourceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeFileBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n build\n \n \n \n \n \n \n \n build()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:88\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import AdmZip from 'adm-zip';\nimport { Builder } from 'xml2js';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeManifestElement } from './common-cartridge-manifest-element';\nimport {\n\tCommonCartridgeResourceItemElement,\n\tICommonCartridgeResourceProps,\n} from './common-cartridge-resource-item-element';\nimport {\n\tCommonCartridgeOrganizationItemElement,\n\tICommonCartridgeOrganizationProps,\n} from './common-cartridge-organization-item-element';\n\nexport type ICommonCartridgeFileBuilderOptions = {\n\tidentifier: string;\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport interface ICommonCartridgeOrganizationBuilder {\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder;\n}\n\nexport interface ICommonCartridgeFileBuilder {\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder;\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder;\n\n\tbuild(): Promise;\n}\n\nclass CommonCartridgeOrganizationBuilder implements ICommonCartridgeOrganizationBuilder {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeOrganizationProps,\n\t\tprivate readonly xmlBuilder: Builder,\n\t\tprivate readonly zipBuilder: AdmZip\n\t) {}\n\n\tget organization(): ICommonCartridgeElement {\n\t\treturn new CommonCartridgeOrganizationItemElement(this.props);\n\t}\n\n\tget resources(): ICommonCartridgeElement[] {\n\t\treturn this.props.resources.map(\n\t\t\t(resourceProps) => new CommonCartridgeResourceItemElement(resourceProps, this.xmlBuilder)\n\t\t);\n\t}\n\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst newResource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tthis.props.resources.push(props);\n\t\tif (!newResource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(newResource.content()));\n\t\t}\n\t\treturn this;\n\t}\n}\n\nexport class CommonCartridgeFileBuilder implements ICommonCartridgeFileBuilder {\n\tprivate readonly xmlBuilder = new Builder();\n\n\tprivate readonly zipBuilder = new AdmZip();\n\n\tprivate readonly organizations = new Array();\n\n\tprivate readonly resources = new Array();\n\n\tconstructor(private readonly options: ICommonCartridgeFileBuilderOptions) {}\n\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst organizationBuilder = new CommonCartridgeOrganizationBuilder(props, this.xmlBuilder, this.zipBuilder);\n\t\tthis.organizations.push(organizationBuilder);\n\t\treturn organizationBuilder;\n\t}\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder {\n\t\tconst resource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tif (!resource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(resource.content()));\n\t\t}\n\t\tthis.resources.push(resource);\n\t\treturn this;\n\t}\n\n\tasync build(): Promise {\n\t\tconst organizations = this.organizations.map((organization) => organization.organization);\n\t\tconst resources = this.organizations.flatMap((organization) => organization.resources).concat(this.resources);\n\t\tconst manifest = this.xmlBuilder.buildObject(\n\t\t\tnew CommonCartridgeManifestElement(\n\t\t\t\t{\n\t\t\t\t\tidentifier: this.options.identifier,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: this.options.title,\n\t\t\t\t\tcopyrightOwners: this.options.copyrightOwners,\n\t\t\t\t\tcreationYear: this.options.creationYear,\n\t\t\t\t\tversion: this.options.version,\n\t\t\t\t},\n\t\t\t\torganizations,\n\t\t\t\tresources\n\t\t\t).transform()\n\t\t);\n\t\tthis.zipBuilder.addFile('imsmanifest.xml', Buffer.from(manifest));\n\t\treturn this.zipBuilder.toBufferPromise();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeLtiResource.html":{"url":"classes/CommonCartridgeLtiResource.html","title":"class - CommonCartridgeLtiResource","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeLtiResource\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n ICommonCartridgeFile\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n canInline\n \n \n content\n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeLtiResourceProps, xmlBuilder: Builder)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeLtiResourceProps\n \n \n \n No\n \n \n \n \n xmlBuilder\n \n \n Builder\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts:19\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts:23\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts:81\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Builder } from 'xml2js';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeFile } from './common-cartridge-file.interface';\nimport { CommonCartridgeResourceType, CommonCartridgeVersion } from './common-cartridge-enums';\n\nexport type ICommonCartridgeLtiResourceProps = {\n\ttype: CommonCartridgeResourceType.LTI;\n\tversion: CommonCartridgeVersion;\n\tidentifier: string;\n\thref: string;\n\ttitle: string;\n\tdescription?: string;\n\turl: string;\n};\n\nexport class CommonCartridgeLtiResource implements ICommonCartridgeElement, ICommonCartridgeFile {\n\tconstructor(private readonly props: ICommonCartridgeLtiResourceProps, private readonly xmlBuilder: Builder) {}\n\n\tcanInline(): boolean {\n\t\treturn false;\n\t}\n\n\tcontent(): string {\n\t\tconst commonObject = {\n\t\t\tcartridge_basiclti_link: {\n\t\t\t\t$: {\n\t\t\t\t\txmlns: '',\n\t\t\t\t\t'xmlns:blti': '',\n\t\t\t\t\t'xmlns:lticm': '',\n\t\t\t\t\t'xmlns:lticp': '',\n\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t'xsi:schemaLocation': '',\n\t\t\t\t},\n\t\t\t\tblti: {\n\t\t\t\t\ttitle: this.props.title,\n\t\t\t\t\tdescription: this.props.description,\n\t\t\t\t\tlaunch_url: this.props.url,\n\t\t\t\t\tsecure_launch_url: this.props.url,\n\t\t\t\t\tcartridge_bundle: {\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\tidentifierref: 'BLTI001_Bundle',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcartridge_icon: {\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\tidentifierref: 'BLTI001_Icon',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tswitch (this.props.version) {\n\t\t\tcase CommonCartridgeVersion.V_1_3_0:\n\t\t\t\tcommonObject.cartridge_basiclti_link.$.xmlns = 'http://www.imsglobal.org/xsd/imslticc_v1p3';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:blti'] = 'http://www.imsglobal.org/xsd/imsbasiclti_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:lticm'] = 'http://www.imsglobal.org/xsd/imslticm_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:lticp'] = 'http://www.imsglobal.org/xsd/imslticp_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xsi:schemaLocation'] =\n\t\t\t\t\t'http://www.imsglobal.org/xsd/imslticc_v1p3 http://www.imsglobal.org/xsd/imslticc_v1p3.xsd' +\n\t\t\t\t\t'http://www.imsglobal.org/xsd/imslticp_v1p0 imslticp_v1p0.xsd' +\n\t\t\t\t\t'http://www.imsglobal.org/xsd/imslticm_v1p0 imslticm_v1p0.xsd' +\n\t\t\t\t\t'http://www.imsglobal.org/xsd/imsbasiclti_v1p0 imsbasiclti_v1p0p1.xsd\"';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcommonObject.cartridge_basiclti_link.$.xmlns = '/xsd/imslticc_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:blti'] = '/xsd/imsbasiclti_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:lticm'] = '/xsd/imslticm_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:lticp'] = '/xsd/imslticp_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xsi:schemaLocation'] =\n\t\t\t\t\t'/xsd/imslticc_v1p0 /xsd/lti/ltiv1p0/imslticc_v1p0.xsd' +\n\t\t\t\t\t'/xsd/imsbasiclti_v1p0 /xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd' +\n\t\t\t\t\t'/xsd/imslticm_v1p0 /xsd/lti/ltiv1p0/imslticm_v1p0.xsd' +\n\t\t\t\t\t'/xsd/imslticp_v1p0 /xsd/lti/ltiv1p0/imslticp_v1p0.xsd\"';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn this.xmlBuilder.buildObject(commonObject);\n\t}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\t$: {\n\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\ttype: this.props.type,\n\t\t\t},\n\t\t\tfile: {\n\t\t\t\t$: {\n\t\t\t\t\thref: this.props.href,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeManifestElement.html":{"url":"classes/CommonCartridgeManifestElement.html","title":"class - CommonCartridgeManifestElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeManifestElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-manifest-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeManifestProps, metadataProps: ICommonCartridgeMetadataProps, organizations: ICommonCartridgeElement[], resources: ICommonCartridgeElement[])\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-manifest-element.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeManifestProps\n \n \n \n No\n \n \n \n \n metadataProps\n \n \n ICommonCartridgeMetadataProps\n \n \n \n No\n \n \n \n \n organizations\n \n \n ICommonCartridgeElement[]\n \n \n \n No\n \n \n \n \n resources\n \n \n ICommonCartridgeElement[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-manifest-element.ts:19\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeMetadataElement, ICommonCartridgeMetadataProps } from './common-cartridge-metadata-element';\nimport { CommonCartridgeOrganizationWrapperElement } from './common-cartridge-organization-wrapper-element';\nimport { CommonCartridgeResourceWrapperElement } from './common-cartridge-resource-wrapper-element';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\n\nexport type ICommonCartridgeManifestProps = {\n\tidentifier: string;\n};\n\nexport class CommonCartridgeManifestElement implements ICommonCartridgeElement {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeManifestProps,\n\t\tprivate readonly metadataProps: ICommonCartridgeMetadataProps,\n\t\tprivate readonly organizations: ICommonCartridgeElement[],\n\t\tprivate readonly resources: ICommonCartridgeElement[]\n\t) {}\n\n\ttransform(): Record {\n\t\tconst versionNumber = this.metadataProps.version;\n\t\tswitch (versionNumber) {\n\t\t\tcase CommonCartridgeVersion.V_1_3_0:\n\t\t\t\treturn {\n\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\t\t\t\txmlns: 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',\n\t\t\t\t\t\t\t'xmlns:mnf': 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',\n\t\t\t\t\t\t\t'xmlns:res': 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',\n\t\t\t\t\t\t\t'xmlns:ext': 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2',\n\t\t\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t\t\t'xsi:schemaLocation':\n\t\t\t\t\t\t\t\t'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lomresource_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1 http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lommanifest_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2 http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_cpextensionv1p2_v1p0.xsd',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmetadata: new CommonCartridgeMetadataElement(this.metadataProps).transform(),\n\t\t\t\t\t\torganizations: new CommonCartridgeOrganizationWrapperElement(this.organizations).transform(),\n\t\t\t\t\t\tresources: new CommonCartridgeResourceWrapperElement(this.resources).transform(),\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\tdefault:\n\t\t\t\treturn {\n\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\t\t\t\txmlns: 'http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1',\n\t\t\t\t\t\t\t'xmlns:mnf': 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/manifest',\n\t\t\t\t\t\t\t'xmlns:res': 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource',\n\t\t\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t\t\t'xsi:schemaLocation':\n\t\t\t\t\t\t\t\t'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource http://www.imsglobal.org/profile/cc/ccv1p1/LOM/ccv1p1_lomresource_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1 http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/manifest http://www.imsglobal.org/profile/cc/ccv1p1/LOM/ccv1p1_lommanifest_v1p0.xsd ',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmetadata: new CommonCartridgeMetadataElement(this.metadataProps).transform(),\n\t\t\t\t\t\torganizations: new CommonCartridgeOrganizationWrapperElement(this.organizations).transform(),\n\t\t\t\t\t\tresources: new CommonCartridgeResourceWrapperElement(this.resources).transform(),\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeMetadataElement.html":{"url":"classes/CommonCartridgeMetadataElement.html","title":"class - CommonCartridgeMetadataElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeMetadataElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-metadata-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeMetadataProps)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-metadata-element.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeMetadataProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-metadata-element.ts:14\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\n\nexport type ICommonCartridgeMetadataProps = {\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport class CommonCartridgeMetadataElement implements ICommonCartridgeElement {\n\tconstructor(private readonly props: ICommonCartridgeMetadataProps) {}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\tschema: 'IMS Common Cartridge',\n\t\t\tschemaversion: this.props.version,\n\t\t\t'mnf:lom': {\n\t\t\t\t'mnf:general': {\n\t\t\t\t\t'mnf:title': {\n\t\t\t\t\t\t'mnf:string': this.props.title,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'mnf:rights': {\n\t\t\t\t\t'mnf:copyrightAndOtherRestrictions': {\n\t\t\t\t\t\t'mnf:value': 'yes',\n\t\t\t\t\t},\n\t\t\t\t\t'mnf:description': {\n\t\t\t\t\t\t'mnf:string': `${this.props.creationYear} ${this.props.copyrightOwners}`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeOrganizationBuilder.html":{"url":"classes/CommonCartridgeOrganizationBuilder.html","title":"class - CommonCartridgeOrganizationBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeOrganizationBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeOrganizationBuilder\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n addResourceToOrganization\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n organization\n \n \n resources\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeOrganizationProps, xmlBuilder: Builder, zipBuilder: AdmZip)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:35\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeOrganizationProps\n \n \n \n No\n \n \n \n \n xmlBuilder\n \n \n Builder\n \n \n \n No\n \n \n \n \n zipBuilder\n \n \n AdmZip\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n addResourceToOrganization\n \n \n \n \n \n \naddResourceToOrganization(props: ICommonCartridgeResourceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeResourceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeOrganizationBuilder\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n organization\n \n \n\n \n \n getorganization()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:42\n \n \n\n \n \n \n \n \n \n \n resources\n \n \n\n \n \n getresources()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:46\n \n \n\n \n \n\n \n\n\n \n import AdmZip from 'adm-zip';\nimport { Builder } from 'xml2js';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeManifestElement } from './common-cartridge-manifest-element';\nimport {\n\tCommonCartridgeResourceItemElement,\n\tICommonCartridgeResourceProps,\n} from './common-cartridge-resource-item-element';\nimport {\n\tCommonCartridgeOrganizationItemElement,\n\tICommonCartridgeOrganizationProps,\n} from './common-cartridge-organization-item-element';\n\nexport type ICommonCartridgeFileBuilderOptions = {\n\tidentifier: string;\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport interface ICommonCartridgeOrganizationBuilder {\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder;\n}\n\nexport interface ICommonCartridgeFileBuilder {\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder;\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder;\n\n\tbuild(): Promise;\n}\n\nclass CommonCartridgeOrganizationBuilder implements ICommonCartridgeOrganizationBuilder {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeOrganizationProps,\n\t\tprivate readonly xmlBuilder: Builder,\n\t\tprivate readonly zipBuilder: AdmZip\n\t) {}\n\n\tget organization(): ICommonCartridgeElement {\n\t\treturn new CommonCartridgeOrganizationItemElement(this.props);\n\t}\n\n\tget resources(): ICommonCartridgeElement[] {\n\t\treturn this.props.resources.map(\n\t\t\t(resourceProps) => new CommonCartridgeResourceItemElement(resourceProps, this.xmlBuilder)\n\t\t);\n\t}\n\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst newResource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tthis.props.resources.push(props);\n\t\tif (!newResource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(newResource.content()));\n\t\t}\n\t\treturn this;\n\t}\n}\n\nexport class CommonCartridgeFileBuilder implements ICommonCartridgeFileBuilder {\n\tprivate readonly xmlBuilder = new Builder();\n\n\tprivate readonly zipBuilder = new AdmZip();\n\n\tprivate readonly organizations = new Array();\n\n\tprivate readonly resources = new Array();\n\n\tconstructor(private readonly options: ICommonCartridgeFileBuilderOptions) {}\n\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst organizationBuilder = new CommonCartridgeOrganizationBuilder(props, this.xmlBuilder, this.zipBuilder);\n\t\tthis.organizations.push(organizationBuilder);\n\t\treturn organizationBuilder;\n\t}\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder {\n\t\tconst resource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tif (!resource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(resource.content()));\n\t\t}\n\t\tthis.resources.push(resource);\n\t\treturn this;\n\t}\n\n\tasync build(): Promise {\n\t\tconst organizations = this.organizations.map((organization) => organization.organization);\n\t\tconst resources = this.organizations.flatMap((organization) => organization.resources).concat(this.resources);\n\t\tconst manifest = this.xmlBuilder.buildObject(\n\t\t\tnew CommonCartridgeManifestElement(\n\t\t\t\t{\n\t\t\t\t\tidentifier: this.options.identifier,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: this.options.title,\n\t\t\t\t\tcopyrightOwners: this.options.copyrightOwners,\n\t\t\t\t\tcreationYear: this.options.creationYear,\n\t\t\t\t\tversion: this.options.version,\n\t\t\t\t},\n\t\t\t\torganizations,\n\t\t\t\tresources\n\t\t\t).transform()\n\t\t);\n\t\tthis.zipBuilder.addFile('imsmanifest.xml', Buffer.from(manifest));\n\t\treturn this.zipBuilder.toBufferPromise();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeOrganizationItemElement.html":{"url":"classes/CommonCartridgeOrganizationItemElement.html","title":"class - CommonCartridgeOrganizationItemElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeOrganizationItemElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-item-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeOrganizationProps)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-item-element.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeOrganizationProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-item-element.ts:15\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeResourceProps } from './common-cartridge-resource-item-element';\nimport { createIdentifier } from './utils';\n\nexport type ICommonCartridgeOrganizationProps = {\n\tidentifier: string;\n\ttitle: string;\n\tversion: string;\n\tresources: ICommonCartridgeResourceProps[];\n};\n\nexport class CommonCartridgeOrganizationItemElement implements ICommonCartridgeElement {\n\tconstructor(private readonly props: ICommonCartridgeOrganizationProps) {}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\t$: {\n\t\t\t\tidentifier: this.props.identifier,\n\t\t\t},\n\t\t\ttitle: this.props.title,\n\t\t\titem: this.props.resources.map((content) => {\n\t\t\t\treturn {\n\t\t\t\t\t$: {\n\t\t\t\t\t\tidentifier: createIdentifier(),\n\t\t\t\t\t\tidentifierref: content.identifier,\n\t\t\t\t\t},\n\t\t\t\t\ttitle: content.title,\n\t\t\t\t};\n\t\t\t}),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeOrganizationWrapperElement.html":{"url":"classes/CommonCartridgeOrganizationWrapperElement.html","title":"class - CommonCartridgeOrganizationWrapperElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeOrganizationWrapperElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-wrapper-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(organizationElements: ICommonCartridgeElement[])\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-wrapper-element.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n organizationElements\n \n \n ICommonCartridgeElement[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-wrapper-element.ts:6\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\n\nexport class CommonCartridgeOrganizationWrapperElement implements ICommonCartridgeElement {\n\tconstructor(private readonly organizationElements: ICommonCartridgeElement[]) {}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\torganization: [\n\t\t\t\t{\n\t\t\t\t\t$: {\n\t\t\t\t\t\tidentifier: 'org-1',\n\t\t\t\t\t\tstructure: 'rooted-hierarchy',\n\t\t\t\t\t},\n\t\t\t\t\titem: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\t\tidentifier: 'LearningModules',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\titem: this.organizationElements.map((organizationElement) => organizationElement.transform()),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeResourceItemElement.html":{"url":"classes/CommonCartridgeResourceItemElement.html","title":"class - CommonCartridgeResourceItemElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeResourceItemElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n ICommonCartridgeFile\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n inner\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n canInline\n \n \n content\n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeResourceProps, xmlBuilder: Builder)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeResourceProps\n \n \n \n No\n \n \n \n \n xmlBuilder\n \n \n Builder\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n inner\n \n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:21\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:38\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:42\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:46\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Builder } from 'xml2js';\nimport { CommonCartridgeLtiResource, ICommonCartridgeLtiResourceProps } from './common-cartridge-lti-resource';\nimport {\n\tCommonCartridgeWebContentResource,\n\tICommonCartridgeWebContentResourceProps,\n} from './common-cartridge-web-content-resource';\nimport {\n\tCommonCartridgeWebLinkResourceElement,\n\tICommonCartridgeWebLinkResourceProps,\n} from './common-cartridge-web-link-resource';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeFile } from './common-cartridge-file.interface';\nimport { CommonCartridgeResourceType } from './common-cartridge-enums';\n\nexport type ICommonCartridgeResourceProps =\n\t| ICommonCartridgeLtiResourceProps\n\t| ICommonCartridgeWebContentResourceProps\n\t| ICommonCartridgeWebLinkResourceProps;\n\nexport class CommonCartridgeResourceItemElement implements ICommonCartridgeElement, ICommonCartridgeFile {\n\tprivate readonly inner: ICommonCartridgeElement & ICommonCartridgeFile;\n\n\tconstructor(props: ICommonCartridgeResourceProps, xmlBuilder: Builder) {\n\t\tif (props.type === CommonCartridgeResourceType.LTI) {\n\t\t\tthis.inner = new CommonCartridgeLtiResource(props, xmlBuilder);\n\t\t} else if (props.type === CommonCartridgeResourceType.WEB_CONTENT) {\n\t\t\tthis.inner = new CommonCartridgeWebContentResource(props);\n\t\t} else if (\n\t\t\tprops.type === CommonCartridgeResourceType.WEB_LINK_V1 ||\n\t\t\tprops.type === CommonCartridgeResourceType.WEB_LINK_V3\n\t\t) {\n\t\t\tthis.inner = new CommonCartridgeWebLinkResourceElement(props, xmlBuilder);\n\t\t} else {\n\t\t\tthrow new Error('Resource type is unknown!');\n\t\t}\n\t}\n\n\tcanInline(): boolean {\n\t\treturn this.inner.canInline();\n\t}\n\n\tcontent(): string {\n\t\treturn this.inner.content();\n\t}\n\n\ttransform(): Record {\n\t\treturn this.inner.transform();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeResourceWrapperElement.html":{"url":"classes/CommonCartridgeResourceWrapperElement.html","title":"class - CommonCartridgeResourceWrapperElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeResourceWrapperElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-wrapper-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resourceElements: ICommonCartridgeElement[])\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-wrapper-element.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resourceElements\n \n \n ICommonCartridgeElement[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-wrapper-element.ts:6\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\n\nexport class CommonCartridgeResourceWrapperElement implements ICommonCartridgeElement {\n\tconstructor(private readonly resourceElements: ICommonCartridgeElement[]) {}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\tresource: this.resourceElements.map((resourceElement) => resourceElement.transform()),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeWebContentResource.html":{"url":"classes/CommonCartridgeWebContentResource.html","title":"class - CommonCartridgeWebContentResource","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeWebContentResource\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n ICommonCartridgeFile\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n canInline\n \n \n content\n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeWebContentResourceProps)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeWebContentResourceProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts:22\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts:26\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts:30\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeFile } from './common-cartridge-file.interface';\nimport {\n\tCommonCartridgeIntendedUseType,\n\tCommonCartridgeResourceType,\n\tCommonCartridgeVersion,\n} from './common-cartridge-enums';\n\nexport type ICommonCartridgeWebContentResourceProps = {\n\ttype: CommonCartridgeResourceType.WEB_CONTENT;\n\tversion: CommonCartridgeVersion;\n\tidentifier: string;\n\thref: string;\n\ttitle: string;\n\thtml: string;\n\tintendedUse?: CommonCartridgeIntendedUseType;\n};\n\nexport class CommonCartridgeWebContentResource implements ICommonCartridgeElement, ICommonCartridgeFile {\n\tconstructor(private readonly props: ICommonCartridgeWebContentResourceProps) {}\n\n\tcanInline(): boolean {\n\t\treturn false;\n\t}\n\n\tcontent(): string {\n\t\treturn this.props.html;\n\t}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\t$: {\n\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\ttype: this.props.type,\n\t\t\t\tintendeduse: this.props.intendedUse ?? CommonCartridgeIntendedUseType.UNSPECIFIED,\n\t\t\t},\n\t\t\tfile: {\n\t\t\t\t$: {\n\t\t\t\t\thref: this.props.href,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeWebLinkResourceElement.html":{"url":"classes/CommonCartridgeWebLinkResourceElement.html","title":"class - CommonCartridgeWebLinkResourceElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeWebLinkResourceElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n ICommonCartridgeFile\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n canInline\n \n \n content\n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeWebLinkResourceProps, xmlBuilder: Builder)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeWebLinkResourceProps\n \n \n \n No\n \n \n \n \n xmlBuilder\n \n \n Builder\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts:18\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts:22\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts:61\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Builder } from 'xml2js';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeFile } from './common-cartridge-file.interface';\nimport { CommonCartridgeResourceType, CommonCartridgeVersion } from './common-cartridge-enums';\n\nexport type ICommonCartridgeWebLinkResourceProps = {\n\ttype: CommonCartridgeResourceType.WEB_LINK_V1 | CommonCartridgeResourceType.WEB_LINK_V3;\n\tversion: CommonCartridgeVersion;\n\tidentifier: string;\n\thref: string;\n\ttitle: string;\n\turl: string;\n};\n\nexport class CommonCartridgeWebLinkResourceElement implements ICommonCartridgeElement, ICommonCartridgeFile {\n\tconstructor(private readonly props: ICommonCartridgeWebLinkResourceProps, private readonly xmlBuilder: Builder) {}\n\n\tcanInline(): boolean {\n\t\treturn false;\n\t}\n\n\tcontent(): string {\n\t\tconst commonTags = {\n\t\t\ttitle: this.props.title,\n\t\t\turl: {\n\t\t\t\t$: {\n\t\t\t\t\thref: this.props.url,\n\t\t\t\t\ttarget: '_self',\n\t\t\t\t\twindowFeatures: 'width=100, height=100',\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tswitch (this.props.version) {\n\t\t\tcase CommonCartridgeVersion.V_1_3_0:\n\t\t\t\treturn this.xmlBuilder.buildObject({\n\t\t\t\t\twebLink: {\n\t\t\t\t\t\t...commonTags,\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\txmlns: 'http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3',\n\t\t\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t\t\t'xsi:schemaLocation':\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3 http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imswl_v1p3.xsd',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\tdefault:\n\t\t\t\treturn this.xmlBuilder.buildObject({\n\t\t\t\t\twebLink: {\n\t\t\t\t\t\t...commonTags,\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\txmlns: 'http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1',\n\t\t\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t\t\t'xsi:schemaLocation':\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1 https://www.imsglobal.org/sites/default/files/profile/cc/ccv1p1/ccv1p1_imswl_v1p1.xsd',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t}\n\t}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\t$: {\n\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\ttype: this.props.type,\n\t\t\t},\n\t\t\tfile: {\n\t\t\t\t$: {\n\t\t\t\t\thref: this.props.href,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CommonToolModule.html":{"url":"modules/CommonToolModule.html","title":"module - CommonToolModule","body":"\n \n\n\n\n\n Modules\n CommonToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CommonToolModule\n\n\n\ncluster_CommonToolModule_imports\n\n\n\ncluster_CommonToolModule_exports\n\n\n\ncluster_CommonToolModule_providers\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\n\n\nCommonToolModule\n\nCommonToolModule\n\nCommonToolModule -->\n\nLegacySchoolModule->CommonToolModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCommonToolModule -->\n\nLoggerModule->CommonToolModule\n\n\n\n\n\nCommonToolService \n\nCommonToolService \n\nCommonToolService -->\n\nCommonToolModule->CommonToolService \n\n\n\n\n\nCommonToolValidationService \n\nCommonToolValidationService \n\nCommonToolValidationService -->\n\nCommonToolModule->CommonToolValidationService \n\n\n\n\n\nContextExternalToolRepo \n\nContextExternalToolRepo \n\nContextExternalToolRepo -->\n\nCommonToolModule->ContextExternalToolRepo \n\n\n\n\n\nSchoolExternalToolRepo \n\nSchoolExternalToolRepo \n\nSchoolExternalToolRepo -->\n\nCommonToolModule->SchoolExternalToolRepo \n\n\n\n\n\nToolPermissionHelper \n\nToolPermissionHelper \n\nToolPermissionHelper -->\n\nCommonToolModule->ToolPermissionHelper \n\n\n\n\n\nCommonToolService\n\nCommonToolService\n\nCommonToolModule -->\n\nCommonToolService->CommonToolModule\n\n\n\n\n\nCommonToolValidationService\n\nCommonToolValidationService\n\nCommonToolModule -->\n\nCommonToolValidationService->CommonToolModule\n\n\n\n\n\nContextExternalToolRepo\n\nContextExternalToolRepo\n\nCommonToolModule -->\n\nContextExternalToolRepo->CommonToolModule\n\n\n\n\n\nSchoolExternalToolRepo\n\nSchoolExternalToolRepo\n\nCommonToolModule -->\n\nSchoolExternalToolRepo->CommonToolModule\n\n\n\n\n\nToolPermissionHelper\n\nToolPermissionHelper\n\nCommonToolModule -->\n\nToolPermissionHelper->CommonToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/common/common-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CommonToolService\n \n \n CommonToolValidationService\n \n \n ContextExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n ToolPermissionHelper\n \n \n \n \n Imports\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n CommonToolService\n \n \n CommonToolValidationService\n \n \n ContextExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n ToolPermissionHelper\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { ContextExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { CommonToolService, CommonToolValidationService } from './service';\nimport { ToolPermissionHelper } from './uc/tool-permission-helper';\n\n@Module({\n\timports: [LoggerModule, forwardRef(() => AuthorizationModule), LegacySchoolModule],\n\t// TODO: make deletion of entities cascading, adjust ExternalToolService.deleteExternalTool and remove the repos from here\n\tproviders: [\n\t\tCommonToolService,\n\t\tCommonToolValidationService,\n\t\tToolPermissionHelper,\n\t\tSchoolExternalToolRepo,\n\t\tContextExternalToolRepo,\n\t],\n\texports: [\n\t\tCommonToolService,\n\t\tCommonToolValidationService,\n\t\tToolPermissionHelper,\n\t\tSchoolExternalToolRepo,\n\t\tContextExternalToolRepo,\n\t],\n})\nexport class CommonToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CommonToolService.html":{"url":"injectables/CommonToolService.html","title":"injectable - CommonToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CommonToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/service/common-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n determineToolConfigurationStatus\n \n \n Private\n isLatest\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n determineToolConfigurationStatus\n \n \n \n \n \n \ndetermineToolConfigurationStatus(externalTool: ExternalTool, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolConfigurationStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isLatest\n \n \n \n \n \n \n \n isLatest(tool1: ToolVersion, tool2: ToolVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool1\n \n ToolVersion\n \n\n \n No\n \n\n\n \n \n tool2\n \n ToolVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ToolConfigurationStatus } from '../enum';\nimport { ToolVersion } from '../interface';\n\n@Injectable()\nexport class CommonToolService {\n\tdetermineToolConfigurationStatus(\n\t\texternalTool: ExternalTool,\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): ToolConfigurationStatus {\n\t\tif (\n\t\t\tthis.isLatest(schoolExternalTool, externalTool) &&\n\t\t\tthis.isLatest(contextExternalTool, schoolExternalTool) &&\n\t\t\tthis.isLatest(contextExternalTool, externalTool)\n\t\t) {\n\t\t\treturn ToolConfigurationStatus.LATEST;\n\t\t}\n\n\t\treturn ToolConfigurationStatus.OUTDATED;\n\t}\n\n\tprivate isLatest(tool1: ToolVersion, tool2: ToolVersion): boolean {\n\t\treturn tool1.getVersion() >= tool2.getVersion();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CommonToolValidationService.html":{"url":"injectables/CommonToolValidationService.html","title":"injectable - CommonToolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CommonToolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/service/common-tool-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n typeCheckers\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n checkCustomParameterEntries\n \n \n Public\n checkForDuplicateParameters\n \n \n Private\n checkOptionalParameter\n \n \n Private\n checkParameterRegex\n \n \n Private\n checkParameterType\n \n \n Private\n checkScopeAndValidateParameter\n \n \n Public\n isValueValidForType\n \n \n Private\n validateParameter\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n checkCustomParameterEntries\n \n \n \n \n \n \n \n checkCustomParameterEntries(loadedExternalTool: ExternalTool, validatableTool: ValidatableTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loadedExternalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n validatableTool\n \n ValidatableTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n checkForDuplicateParameters\n \n \n \n \n \n \n \n checkForDuplicateParameters(validatableTool: ValidatableTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n validatableTool\n \n ValidatableTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkOptionalParameter\n \n \n \n \n \n \n \n checkOptionalParameter(param: CustomParameter, foundEntry: CustomParameterEntry | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n foundEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkParameterRegex\n \n \n \n \n \n \n \n checkParameterRegex(foundEntry: CustomParameterEntry, param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:89\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n foundEntry\n \n CustomParameterEntry\n \n\n \n No\n \n\n\n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkParameterType\n \n \n \n \n \n \n \n checkParameterType(foundEntry: CustomParameterEntry, param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n foundEntry\n \n CustomParameterEntry\n \n\n \n No\n \n\n\n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkScopeAndValidateParameter\n \n \n \n \n \n \n \n checkScopeAndValidateParameter(validatableTool: ValidatableTool, param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n validatableTool\n \n ValidatableTool\n \n\n \n No\n \n\n\n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isValueValidForType\n \n \n \n \n \n \n \n isValueValidForType(type: CustomParameterType, val: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n CustomParameterType\n \n\n \n No\n \n\n\n \n \n val\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n validateParameter\n \n \n \n \n \n \n \n validateParameter(param: CustomParameter, foundEntry: CustomParameterEntry | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n foundEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n typeCheckers\n \n \n \n \n \n \n Default value : {\n\t\t[CustomParameterType.STRING]: () => true,\n\t\t[CustomParameterType.NUMBER]: (val: string | undefined) => !isNaN(Number(val)),\n\t\t[CustomParameterType.BOOLEAN]: (val: string | undefined) => val === 'true' || val === 'false',\n\t\t[CustomParameterType.AUTO_CONTEXTID]: () => false,\n\t\t[CustomParameterType.AUTO_CONTEXTNAME]: () => false,\n\t\t[CustomParameterType.AUTO_SCHOOLID]: () => false,\n\t\t[CustomParameterType.AUTO_SCHOOLNUMBER]: () => false,\n\t}\n \n \n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:14\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { isNaN } from 'lodash';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { CustomParameter, CustomParameterEntry } from '../domain';\nimport { CustomParameterScope, CustomParameterType } from '../enum';\n\nexport type ValidatableTool = SchoolExternalTool | ContextExternalTool;\n\n@Injectable()\nexport class CommonToolValidationService {\n\tprivate static typeCheckers: { [key in CustomParameterType]: (val: string) => boolean } = {\n\t\t[CustomParameterType.STRING]: () => true,\n\t\t[CustomParameterType.NUMBER]: (val: string | undefined) => !isNaN(Number(val)),\n\t\t[CustomParameterType.BOOLEAN]: (val: string | undefined) => val === 'true' || val === 'false',\n\t\t[CustomParameterType.AUTO_CONTEXTID]: () => false,\n\t\t[CustomParameterType.AUTO_CONTEXTNAME]: () => false,\n\t\t[CustomParameterType.AUTO_SCHOOLID]: () => false,\n\t\t[CustomParameterType.AUTO_SCHOOLNUMBER]: () => false,\n\t};\n\n\tpublic isValueValidForType(type: CustomParameterType, val: string): boolean {\n\t\tconst rule = CommonToolValidationService.typeCheckers[type];\n\n\t\tconst isValid: boolean = rule(val);\n\n\t\treturn isValid;\n\t}\n\n\tpublic checkForDuplicateParameters(validatableTool: ValidatableTool): void {\n\t\tconst caseInsensitiveNames: string[] = validatableTool.parameters.map(({ name }: CustomParameterEntry) =>\n\t\t\tname.toLowerCase()\n\t\t);\n\n\t\tconst uniqueNames: Set = new Set(caseInsensitiveNames);\n\t\tif (uniqueNames.size !== validatableTool.parameters.length) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_param_duplicate: The tool ${validatableTool.id ?? ''} contains multiple of the same custom parameters.`\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic checkCustomParameterEntries(loadedExternalTool: ExternalTool, validatableTool: ValidatableTool): void {\n\t\tif (loadedExternalTool.parameters) {\n\t\t\tfor (const param of loadedExternalTool.parameters) {\n\t\t\t\tthis.checkScopeAndValidateParameter(validatableTool, param);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate checkScopeAndValidateParameter(validatableTool: ValidatableTool, param: CustomParameter): void {\n\t\tconst foundEntry: CustomParameterEntry | undefined = validatableTool.parameters.find(\n\t\t\t({ name }: CustomParameterEntry): boolean => name.toLowerCase() === param.name.toLowerCase()\n\t\t);\n\n\t\tif (param.scope === CustomParameterScope.SCHOOL && validatableTool instanceof SchoolExternalTool) {\n\t\t\tthis.validateParameter(param, foundEntry);\n\t\t} else if (param.scope === CustomParameterScope.CONTEXT && validatableTool instanceof ContextExternalTool) {\n\t\t\tthis.validateParameter(param, foundEntry);\n\t\t}\n\t}\n\n\tprivate validateParameter(param: CustomParameter, foundEntry: CustomParameterEntry | undefined): void {\n\t\tthis.checkOptionalParameter(param, foundEntry);\n\t\tif (foundEntry) {\n\t\t\tthis.checkParameterType(foundEntry, param);\n\t\t\tthis.checkParameterRegex(foundEntry, param);\n\t\t}\n\t}\n\n\tprivate checkOptionalParameter(param: CustomParameter, foundEntry: CustomParameterEntry | undefined): void {\n\t\tif (!foundEntry?.value && !param.isOptional) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_param_required: The parameter with name ${param.name} is required but not found in the tool.`\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate checkParameterType(foundEntry: CustomParameterEntry, param: CustomParameter): void {\n\t\tif (foundEntry.value !== undefined && !this.isValueValidForType(param.type, foundEntry.value)) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_param_type_mismatch: The value of parameter with name ${foundEntry.name} should be of type ${param.type}.`\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate checkParameterRegex(foundEntry: CustomParameterEntry, param: CustomParameter): void {\n\t\tif (param.regex && !new RegExp(param.regex).test(foundEntry.value ?? '')) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_param_value_regex: The given entry for the parameter with name ${foundEntry.name} does not fit the regex.`\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ConsentRequestBody.html":{"url":"classes/ConsentRequestBody.html","title":"class - ConsentRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ConsentRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/consent-request.body.ts\n \n\n\n\n \n Extends\n \n \n OAuthRejectableBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n grant_scope\n \n \n \n \n \n Optional\n remember\n \n \n \n \n \n Optional\n remember_for\n \n \n \n \n \n Optional\n error\n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n Optional\n status_code\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n grant_scope\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsString({each: true})@IsOptional()@ApiProperty({description: 'The Oauth2 client id.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/consent-request.body.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n remember\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Remember, if set to true, tells the oauth provider to remember this consent authorization and reuse it if the same client asks the same user for the same, or a subset of, scope.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/consent-request.body.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n remember_for\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsInt()@IsOptional()@ApiProperty({description: 'RememberFor sets how long the consent authorization should be remembered for in seconds. If set to 0, the authorization will be remembered indefinitely.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/consent-request.body.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The error should follow the OAuth2 error format (e.g. invalid_request, login_required). Defaults to request_denied.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Debug contains information to help resolve the problem as a developer. Usually not exposed to the public but only in the server logs.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:23\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Description of the error in a human readable format.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:32\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Hint to help resolve the error.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:41\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n status_code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@IsOptional()@ApiProperty({description: 'Represents the HTTP status code of the error (e.g. 401 or 403). Defaults to 400.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:50\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsArray, IsBoolean, IsInt, IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { OAuthRejectableBody } from './oauth-rejectable.body';\n\nexport class ConsentRequestBody extends OAuthRejectableBody {\n\t@IsArray()\n\t@IsString({ each: true })\n\t@IsOptional()\n\t@ApiProperty({ description: 'The Oauth2 client id.', required: false, nullable: false })\n\tgrant_scope?: string[];\n\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Remember, if set to true, tells the oauth provider to remember this consent authorization and reuse it if the same client asks the same user for the same, or a subset of, scope.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tremember?: boolean;\n\n\t@IsInt()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'RememberFor sets how long the consent authorization should be remembered for in seconds. If set to 0, the authorization will be remembered indefinitely.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tremember_for?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ConsentResponse.html":{"url":"classes/ConsentResponse.html","title":"class - ConsentResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ConsentResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n acr\n \n \n \n \n \n \n Optional\n amr\n \n \n \n challenge\n \n \n \n \n Optional\n client\n \n \n \n \n Optional\n context\n \n \n \n \n Optional\n login_challenge\n \n \n \n \n Optional\n login_session_id\n \n \n \n \n Optional\n oidc_context\n \n \n \n \n Optional\n request_url\n \n \n \n \n \n \n Optional\n requested_access_token_audience\n \n \n \n \n \n \n Optional\n requested_scope\n \n \n \n \n Optional\n skip\n \n \n \n \n Optional\n subject\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consentResponse: ConsentResponse)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consentResponse\n \n \n ConsentResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n acr\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'ACR represents the Authentication AuthorizationContext Class Reference value for this authentication session'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n amr\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n challenge\n \n \n \n \n \n \n Type : string | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Is the id/authorization challenge of the consent authorization request. It is used to identify the session.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n client\n \n \n \n \n \n \n Type : OauthClientResponse\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n context\n \n \n \n \n \n \n Type : object\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n login_challenge\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'LoginChallenge is the login challenge this consent challenge belongs to.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n login_session_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'LoginSessionID is the login session ID.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n oidc_context\n \n \n \n \n \n \n Type : OidcContextResponse\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n request_url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'RequestUrl is the original OAuth 2.0 Authorization URL requested by the OAuth 2.0 client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n requested_access_token_audience\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n requested_scope\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The request scopes of the login request.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'Skip, if true, implies that the client has requested the same scopes from the same user previously.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n subject\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'Subject is the user id of the end-user that is authenticated.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:76\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsArray, IsOptional, IsString } from 'class-validator';\nimport { OidcContextResponse } from '@src/modules/oauth-provider/controller/dto/response/oidc-context.response';\nimport { OauthClientResponse } from '@src/modules/oauth-provider/controller/dto/response/oauth-client.response';\n\nexport class ConsentResponse {\n\tconstructor(consentResponse: ConsentResponse) {\n\t\tObject.assign(this, consentResponse);\n\t}\n\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'ACR represents the Authentication AuthorizationContext Class Reference value for this authentication session',\n\t})\n\tacr?: string;\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ required: false, nullable: false })\n\tamr?: string[];\n\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Is the id/authorization challenge of the consent authorization request. It is used to identify the session.',\n\t})\n\tchallenge: string | undefined;\n\n\t@IsOptional()\n\t@ApiProperty()\n\tclient?: OauthClientResponse;\n\n\t@IsOptional()\n\t@ApiProperty()\n\tcontext?: object;\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'LoginChallenge is the login challenge this consent challenge belongs to.' })\n\tlogin_challenge?: string;\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'LoginSessionID is the login session ID.' })\n\tlogin_session_id?: string;\n\n\t@IsOptional()\n\t@ApiProperty()\n\toidc_context?: OidcContextResponse;\n\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'RequestUrl is the original OAuth 2.0 Authorization URL requested by the OAuth 2.0 client.',\n\t})\n\trequest_url?: string;\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ required: false, nullable: false })\n\trequested_access_token_audience?: string[];\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The request scopes of the login request.', required: false, nullable: false })\n\trequested_scope?: string[];\n\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Skip, if true, implies that the client has requested the same scopes from the same user previously.',\n\t})\n\tskip?: boolean;\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'Subject is the user id of the end-user that is authenticated.' })\n\tsubject?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ConsentSessionResponse.html":{"url":"classes/ConsentSessionResponse.html","title":"class - ConsentSessionResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ConsentSessionResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n challenge\n \n \n \n \n Optional\n client_id\n \n \n \n Optional\n client_name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(clientId: string | undefined, clientName: string | undefined, challenge: string | undefined)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n clientName\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n challenge\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n challenge\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id/challenge of the consent authorization request.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n client_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'The id of the client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The name of the client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsOptional } from 'class-validator';\n\nexport class ConsentSessionResponse {\n\tconstructor(clientId: string | undefined, clientName: string | undefined, challenge: string | undefined) {\n\t\tthis.client_id = clientId;\n\t\tthis.client_name = clientName;\n\t\tthis.challenge = challenge;\n\t}\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'The id of the client.' })\n\tclient_id?: string;\n\n\t@ApiProperty({ description: 'The name of the client.' })\n\tclient_name?: string;\n\n\t@ApiProperty({ description: 'The id/challenge of the consent authorization request.' })\n\tchallenge?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ConsoleWriterModule.html":{"url":"modules/ConsoleWriterModule.html","title":"module - ConsoleWriterModule","body":"\n \n\n\n\n\n Modules\n ConsoleWriterModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ConsoleWriterModule\n\n\n\ncluster_ConsoleWriterModule_providers\n\n\n\ncluster_ConsoleWriterModule_exports\n\n\n\n\nConsoleWriterService \n\nConsoleWriterService \n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\nConsoleWriterService -->\n\nConsoleWriterModule->ConsoleWriterService \n\n\n\n\n\nConsoleWriterService\n\nConsoleWriterService\n\nConsoleWriterModule -->\n\nConsoleWriterService->ConsoleWriterModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/console/console-writer/console-writer.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ConsoleWriterService\n \n \n \n \n Exports\n \n \n ConsoleWriterService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConsoleWriterService } from './console-writer.service';\n\n@Module({\n\tproviders: [ConsoleWriterService],\n\texports: [ConsoleWriterService],\n})\nexport class ConsoleWriterModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ConsoleWriterService.html":{"url":"injectables/ConsoleWriterService.html","title":"injectable - ConsoleWriterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ConsoleWriterService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/console/console-writer/console-writer.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n info\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n info\n \n \n \n \n \n \ninfo(text: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/console/console-writer/console-writer.service.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\n\n@Injectable()\nexport class ConsoleWriterService {\n\tinfo(text: string): void {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.info('Info:', text);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContentElementFactory.html":{"url":"injectables/ContentElementFactory.html","title":"injectable - ContentElementFactory","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContentElementFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/content-element.factory.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n build\n \n \n Private\n buildFile\n \n \n Private\n buildRichText\n \n \n Private\n buildSubmissionContainer\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(type: ContentElementType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ContentElementType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AnyContentElementDo\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildFile\n \n \n \n \n \n \n \n buildFile()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:36\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n buildRichText\n \n \n \n \n \n \n \n buildRichText()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:48\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n buildSubmissionContainer\n \n \n \n \n \n \n \n buildSubmissionContainer()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:61\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { InputFormat } from '@shared/domain/types';\nimport { ObjectId } from 'bson';\nimport { FileElement } from './file-element.do';\nimport { RichTextElement } from './rich-text-element.do';\nimport { SubmissionContainerElement } from './submission-container-element.do';\nimport { AnyContentElementDo } from './types/any-content-element-do';\nimport { ContentElementType } from './types/content-elements.enum';\n\n@Injectable()\nexport class ContentElementFactory {\n\tbuild(type: ContentElementType): AnyContentElementDo {\n\t\tlet element!: AnyContentElementDo;\n\n\t\tswitch (type) {\n\t\t\tcase ContentElementType.FILE:\n\t\t\t\telement = this.buildFile();\n\t\t\t\tbreak;\n\t\t\tcase ContentElementType.RICH_TEXT:\n\t\t\t\telement = this.buildRichText();\n\t\t\t\tbreak;\n\t\t\tcase ContentElementType.SUBMISSION_CONTAINER:\n\t\t\t\telement = this.buildSubmissionContainer();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (!element) {\n\t\t\tthrow new NotImplementedException(`unknown type ${type} of element`);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tprivate buildFile() {\n\t\tconst element = new FileElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcaption: '',\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\treturn element;\n\t}\n\n\tprivate buildRichText() {\n\t\tconst element = new RichTextElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttext: '',\n\t\t\tinputFormat: InputFormat.RICH_TEXT_CK5,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\treturn element;\n\t}\n\n\tprivate buildSubmissionContainer() {\n\t\tconst tomorrow = new Date(Date.now() + 86400000);\n\t\tconst element = new SubmissionContainerElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tdueDate: tomorrow,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContentElementResponseFactory.html":{"url":"classes/ContentElementResponseFactory.html","title":"class - ContentElementResponseFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContentElementResponseFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/content-element-response.factory.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n mappers\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n mappers\n \n \n \n \n \n \n Type : BaseResponseMapper[]\n\n \n \n \n \n Default value : [\n\t\tFileElementResponseMapper.getInstance(),\n\t\tRichTextElementResponseMapper.getInstance(),\n\t\tSubmissionContainerElementResponseMapper.getInstance(),\n\t]\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.factory.ts:10\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(element: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.factory.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AnyContentElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { AnyBoardDo } from '@shared/domain';\nimport { AnyContentElementResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\nimport { FileElementResponseMapper } from './file-element-response.mapper';\nimport { RichTextElementResponseMapper } from './rich-text-element-response.mapper';\nimport { SubmissionContainerElementResponseMapper } from './submission-container-element-response.mapper';\n\nexport class ContentElementResponseFactory {\n\tprivate static mappers: BaseResponseMapper[] = [\n\t\tFileElementResponseMapper.getInstance(),\n\t\tRichTextElementResponseMapper.getInstance(),\n\t\tSubmissionContainerElementResponseMapper.getInstance(),\n\t];\n\n\tstatic mapToResponse(element: AnyBoardDo): AnyContentElementResponse {\n\t\tconst elementMapper = this.mappers.find((mapper) => mapper.canMap(element));\n\n\t\tif (!elementMapper) {\n\t\t\tthrow new NotImplementedException(`unsupported element type: ${element.constructor.name}`);\n\t\t}\n\n\t\tconst result = elementMapper.mapToResponse(element);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContentElementService.html":{"url":"injectables/ContentElementService.html","title":"injectable - ContentElementService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContentElementService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/content-element.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n move\n \n \n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService, contentElementFactory: ContentElementFactory)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n contentElementFactory\n \n \n ContentElementFactory\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(parent: Card, type: ContentElementType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n Card\n \n\n \n No\n \n\n\n \n \n type\n \n ContentElementType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(element: AnyContentElementDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(elementId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n move\n \n \n \n \n \n \n \n move(element: AnyContentElementDo, targetCard: Card, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \n targetCard\n \n Card\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n update\n \n \n \n \n \n \n \n update(element: AnyContentElementDo, content: FileContentBody | RichTextContentBody | SubmissionContainerContentBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \n content\n \n FileContentBody | RichTextContentBody | SubmissionContainerContentBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotFoundException } from '@nestjs/common';\nimport {\n\tAnyContentElementDo,\n\tCard,\n\tContentElementFactory,\n\tContentElementType,\n\tEntityId,\n\tisAnyContentElement,\n} from '@shared/domain';\nimport { FileContentBody, RichTextContentBody, SubmissionContainerContentBody } from '../controller/dto';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\nimport { ContentElementUpdateVisitor } from './content-element-update.visitor';\n\n@Injectable()\nexport class ContentElementService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly boardDoService: BoardDoService,\n\t\tprivate readonly contentElementFactory: ContentElementFactory\n\t) {}\n\n\tasync findById(elementId: EntityId): Promise {\n\t\tconst element = await this.boardDoRepo.findById(elementId);\n\n\t\tif (!isAnyContentElement(element)) {\n\t\t\tthrow new NotFoundException(`There is no '${element.constructor.name}' with this id`);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tasync create(parent: Card, type: ContentElementType): Promise {\n\t\tconst element = this.contentElementFactory.build(type);\n\t\tparent.addChild(element);\n\t\tawait this.boardDoRepo.save(parent.children, parent);\n\t\treturn element;\n\t}\n\n\tasync delete(element: AnyContentElementDo): Promise {\n\t\tawait this.boardDoService.deleteWithDescendants(element);\n\t}\n\n\tasync move(element: AnyContentElementDo, targetCard: Card, targetPosition: number): Promise {\n\t\tawait this.boardDoService.move(element, targetCard, targetPosition);\n\t}\n\n\tasync update(\n\t\telement: AnyContentElementDo,\n\t\tcontent: FileContentBody | RichTextContentBody | SubmissionContainerContentBody\n\t): Promise {\n\t\tconst updater = new ContentElementUpdateVisitor(content);\n\t\telement.accept(updater);\n\t\tconst parent = await this.boardDoRepo.findParentOfId(element.id);\n\t\tawait this.boardDoRepo.save(element, parent);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContentElementUpdateVisitor.html":{"url":"classes/ContentElementUpdateVisitor.html","title":"class - ContentElementUpdateVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContentElementUpdateVisitor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/content-element-update.visitor.ts\n \n\n\n\n\n \n Implements\n \n \n BoardCompositeVisitor\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n content\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n throwNotHandled\n \n \n visitCard\n \n \n visitColumn\n \n \n visitColumnBoard\n \n \n visitFileElement\n \n \n visitRichTextElement\n \n \n visitSubmissionContainerElement\n \n \n visitSubmissionItem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(content: ContentType)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n content\n \n \n ContentType\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n content\n \n \n \n \n \n \n Type : ContentType\n\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:18\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n throwNotHandled\n \n \n \n \n \n \n \n throwNotHandled(component: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n component\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitCard\n \n \n \n \n \n \nvisitCard(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumn\n \n \n \n \n \n \nvisitColumn(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnBoard\n \n \n \n \n \n \nvisitColumnBoard(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitFileElement\n \n \n \n \n \n \nvisitFileElement(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitRichTextElement\n \n \n \n \n \n \nvisitRichTextElement(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionContainerElement\n \n \n \n \n \n \nvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionItem\n \n \n \n \n \n \nvisitSubmissionItem(submission: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { sanitizeRichText } from '@shared/controller';\nimport {\n\tAnyBoardDo,\n\tBoardCompositeVisitor,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { FileContentBody, RichTextContentBody, SubmissionContainerContentBody } from '../controller/dto';\n\ntype ContentType = FileContentBody | RichTextContentBody | SubmissionContainerContentBody;\n\nexport class ContentElementUpdateVisitor implements BoardCompositeVisitor {\n\tprivate readonly content: ContentType;\n\n\tconstructor(content: ContentType) {\n\t\tthis.content = content;\n\t}\n\n\tvisitColumnBoard(columnBoard: ColumnBoard): void {\n\t\tthis.throwNotHandled(columnBoard);\n\t}\n\n\tvisitColumn(column: Column): void {\n\t\tthis.throwNotHandled(column);\n\t}\n\n\tvisitCard(card: Card): void {\n\t\tthis.throwNotHandled(card);\n\t}\n\n\tvisitFileElement(fileElement: FileElement): void {\n\t\tif (this.content instanceof FileContentBody) {\n\t\t\tfileElement.caption = this.content.caption;\n\t\t} else {\n\t\t\tthis.throwNotHandled(fileElement);\n\t\t}\n\t}\n\n\tvisitRichTextElement(richTextElement: RichTextElement): void {\n\t\tif (this.content instanceof RichTextContentBody) {\n\t\t\trichTextElement.text = sanitizeRichText(this.content.text, this.content.inputFormat);\n\t\t\trichTextElement.inputFormat = this.content.inputFormat;\n\t\t} else {\n\t\t\tthis.throwNotHandled(richTextElement);\n\t\t}\n\t}\n\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void {\n\t\tif (this.content instanceof SubmissionContainerContentBody) {\n\t\t\tsubmissionContainerElement.dueDate = this.content.dueDate;\n\t\t} else {\n\t\t\tthis.throwNotHandled(submissionContainerElement);\n\t\t}\n\t}\n\n\tvisitSubmissionItem(submission: SubmissionItem): void {\n\t\tthis.throwNotHandled(submission);\n\t}\n\n\tprivate throwNotHandled(component: AnyBoardDo) {\n\t\tthrow new Error(`Cannot update element of type: '${component.constructor.name}'`);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContentElementUrlParams.html":{"url":"classes/ContentElementUrlParams.html","title":"class - ContentElementUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContentElementUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/content-element.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contentElementId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contentElementId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the element.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/content-element.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class ContentElementUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the element.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcontentElementId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalTool.html":{"url":"classes/ContextExternalTool.html","title":"class - ContextExternalTool","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalTool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n \n Implements\n \n \n ToolVersion\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n contextRef\n \n \n Optional\n displayName\n \n \n parameters\n \n \n schoolToolRef\n \n \n toolVersion\n \n \n Optional\n id\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getVersion\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ContextExternalToolProps)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ContextExternalToolProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n contextRef\n \n \n \n \n \n \n Type : ContextRef\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntry[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n schoolToolRef\n \n \n \n \n \n \n Type : SchoolExternalToolRefDO\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \ngetVersion()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:41\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolVersion } from '../../common/interface';\nimport { SchoolExternalToolRefDO } from '../../school-external-tool/domain';\nimport { ContextRef } from './context-ref';\n\nexport interface ContextExternalToolProps {\n\tid?: string;\n\n\tschoolToolRef: SchoolExternalToolRefDO;\n\n\tcontextRef: ContextRef;\n\n\tdisplayName?: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n}\n\nexport class ContextExternalTool extends BaseDO implements ToolVersion {\n\tschoolToolRef: SchoolExternalToolRefDO;\n\n\tcontextRef: ContextRef;\n\n\tdisplayName?: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tconstructor(props: ContextExternalToolProps) {\n\t\tsuper(props.id);\n\t\tthis.schoolToolRef = props.schoolToolRef;\n\t\tthis.contextRef = props.contextRef;\n\t\tthis.displayName = props.displayName;\n\t\tthis.parameters = props.parameters;\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolAuthorizableService.html":{"url":"injectables/ContextExternalToolAuthorizableService.html","title":"injectable - ContextExternalToolAuthorizableService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolAuthorizableService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalToolRepo: ContextExternalToolRepo)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalToolRepo\n \n \n ContextExternalToolRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AuthorizationLoaderService } from '@src/modules/authorization';\nimport { EntityId } from '@shared/domain';\nimport { ContextExternalToolRepo } from '@shared/repo';\nimport { Injectable } from '@nestjs/common';\nimport { ContextExternalTool } from '../domain';\n\n@Injectable()\nexport class ContextExternalToolAuthorizableService implements AuthorizationLoaderService {\n\tconstructor(private readonly contextExternalToolRepo: ContextExternalToolRepo) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolRepo.findById(id);\n\n\t\treturn contextExternalTool;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{"url":"classes/ContextExternalToolConfigurationTemplateListResponse.html","title":"class - ContextExternalToolConfigurationTemplateListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolConfigurationTemplateListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ContextExternalToolConfigurationTemplateResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ContextExternalToolConfigurationTemplateResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ContextExternalToolConfigurationTemplateResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContextExternalToolConfigurationTemplateResponse } from './context-external-tool-configuration-template.response';\n\nexport class ContextExternalToolConfigurationTemplateListResponse {\n\t@ApiProperty({ type: [ContextExternalToolConfigurationTemplateResponse] })\n\tdata: ContextExternalToolConfigurationTemplateResponse[];\n\n\tconstructor(data: ContextExternalToolConfigurationTemplateResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolConfigurationTemplateResponse.html":{"url":"classes/ContextExternalToolConfigurationTemplateResponse.html","title":"class - ContextExternalToolConfigurationTemplateResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolConfigurationTemplateResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n externalToolId\n \n \n \n Optional\n logoUrl\n \n \n \n name\n \n \n \n parameters\n \n \n \n schoolExternalToolId\n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(configuration: ContextExternalToolConfigurationTemplateResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n configuration\n \n \n ContextExternalToolConfigurationTemplateResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n externalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { CustomParameterResponse } from './custom-parameter.response';\n\nexport class ContextExternalToolConfigurationTemplateResponse {\n\t@ApiProperty()\n\texternalToolId: EntityId;\n\n\t@ApiProperty()\n\tschoolExternalToolId: EntityId;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ApiProperty({ type: [CustomParameterResponse] })\n\tparameters: CustomParameterResponse[];\n\n\t@ApiProperty()\n\tversion: number;\n\n\tconstructor(configuration: ContextExternalToolConfigurationTemplateResponse) {\n\t\tthis.externalToolId = configuration.externalToolId;\n\t\tthis.schoolExternalToolId = configuration.schoolExternalToolId;\n\t\tthis.name = configuration.name;\n\t\tthis.logoUrl = configuration.logoUrl;\n\t\tthis.parameters = configuration.parameters;\n\t\tthis.version = configuration.version;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolContextParams.html":{"url":"classes/ContextExternalToolContextParams.html","title":"class - ContextExternalToolContextParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolContextParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-context.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n contextType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, example: '0000dcfbfb5c7a3f00bf21ab'})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-context.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolContextType)@ApiProperty({nullable: false, required: true, example: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-context.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsEnum, IsMongoId } from 'class-validator';\nimport { ToolContextType } from '../../../common/enum';\n\nexport class ContextExternalToolContextParams {\n\t@ApiProperty({ nullable: false, required: true, example: '0000dcfbfb5c7a3f00bf21ab' })\n\t@IsMongoId()\n\tcontextId!: string;\n\n\t@IsEnum(ToolContextType)\n\t@ApiProperty({ nullable: false, required: true, example: ToolContextType.COURSE })\n\tcontextType!: ToolContextType;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ContextExternalToolEntity.html":{"url":"entities/ContextExternalToolEntity.html","title":"entity - ContextExternalToolEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ContextExternalToolEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextId\n \n \n \n contextType\n \n \n \n Optional\n displayName\n \n \n \n parameters\n \n \n \n schoolTool\n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ContextExternalToolType\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolTool\n \n \n \n \n \n \n Type : SchoolExternalToolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:39\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { CustomParameterEntryEntity } from '../../common/entity';\nimport { SchoolExternalToolEntity } from '../../school-external-tool/entity';\nimport { ContextExternalToolType } from './context-external-tool-type.enum';\n\nexport interface IContextExternalToolProperties {\n\tschoolTool: SchoolExternalToolEntity;\n\n\tcontextId: string;\n\n\tcontextType: ContextExternalToolType;\n\n\tdisplayName?: string;\n\n\tparameters?: CustomParameterEntryEntity[];\n\n\ttoolVersion: number;\n}\n\n@Entity({ tableName: 'context_external_tools' })\nexport class ContextExternalToolEntity extends BaseEntityWithTimestamps {\n\t@ManyToOne()\n\tschoolTool: SchoolExternalToolEntity;\n\n\t@Property()\n\tcontextId: string;\n\n\t@Property()\n\tcontextType: ContextExternalToolType;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Embedded(() => CustomParameterEntryEntity, { array: true })\n\tparameters: CustomParameterEntryEntity[];\n\n\t@Property()\n\ttoolVersion: number;\n\n\tconstructor(props: IContextExternalToolProperties) {\n\t\tsuper();\n\t\tthis.schoolTool = props.schoolTool;\n\t\tthis.contextId = props.contextId;\n\t\tthis.contextType = props.contextType;\n\t\tthis.displayName = props.displayName;\n\t\tthis.parameters = props.parameters ?? [];\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolFactory.html":{"url":"classes/ContextExternalToolFactory.html","title":"class - ContextExternalToolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/context-external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withSchoolExternalToolRef\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withSchoolExternalToolRef\n \n \n \n \n \n \nwithSchoolExternalToolRef(schoolToolId: string, schoolId?: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/context-external-tool.factory.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolToolId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string | undefined\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { CustomParameterEntry } from '@src/modules/tool/common/domain';\nimport { ToolContextType } from '@src/modules/tool/common/enum';\nimport { ContextExternalTool, ContextExternalToolProps } from '@src/modules/tool/context-external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nclass ContextExternalToolFactory extends DoBaseFactory {\n\twithSchoolExternalToolRef(schoolToolId: string, schoolId?: string | undefined): this {\n\t\tconst params: DeepPartial = {\n\t\t\tschoolToolRef: { schoolToolId, schoolId },\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const contextExternalToolFactory = ContextExternalToolFactory.define(ContextExternalTool, ({ sequence }) => {\n\treturn {\n\t\tschoolToolRef: { schoolToolId: `schoolToolId-${sequence}`, schoolId: 'schoolId' },\n\t\tcontextRef: { id: new ObjectId().toHexString(), type: ToolContextType.COURSE },\n\t\tdisplayName: 'My Course Tool 1',\n\t\tparameters: [new CustomParameterEntry({ name: 'param', value: 'value' })],\n\t\ttoolVersion: 1,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolIdParams.html":{"url":"classes/ContextExternalToolIdParams.html","title":"class - ContextExternalToolIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-id.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ContextExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty({ nullable: false, required: true })\n\tcontextExternalToolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolIdParams-1.html":{"url":"classes/ContextExternalToolIdParams-1.html","title":"class - ContextExternalToolIdParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/context-external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/context-external-tool-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class ContextExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tcontextExternalToolId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ContextExternalToolModule.html":{"url":"modules/ContextExternalToolModule.html","title":"module - ContextExternalToolModule","body":"\n \n\n\n\n\n Modules\n ContextExternalToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ContextExternalToolModule\n\n\n\ncluster_ContextExternalToolModule_imports\n\n\n\ncluster_ContextExternalToolModule_exports\n\n\n\ncluster_ContextExternalToolModule_providers\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nContextExternalToolModule\n\nContextExternalToolModule\n\nContextExternalToolModule -->\n\nCommonToolModule->ContextExternalToolModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nContextExternalToolModule -->\n\nExternalToolModule->ContextExternalToolModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nContextExternalToolModule -->\n\nLoggerModule->ContextExternalToolModule\n\n\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nContextExternalToolModule -->\n\nSchoolExternalToolModule->ContextExternalToolModule\n\n\n\n\n\nContextExternalToolAuthorizableService \n\nContextExternalToolAuthorizableService \n\nContextExternalToolAuthorizableService -->\n\nContextExternalToolModule->ContextExternalToolAuthorizableService \n\n\n\n\n\nContextExternalToolService \n\nContextExternalToolService \n\nContextExternalToolService -->\n\nContextExternalToolModule->ContextExternalToolService \n\n\n\n\n\nContextExternalToolValidationService \n\nContextExternalToolValidationService \n\nContextExternalToolValidationService -->\n\nContextExternalToolModule->ContextExternalToolValidationService \n\n\n\n\n\nContextExternalToolAuthorizableService\n\nContextExternalToolAuthorizableService\n\nContextExternalToolModule -->\n\nContextExternalToolAuthorizableService->ContextExternalToolModule\n\n\n\n\n\nContextExternalToolService\n\nContextExternalToolService\n\nContextExternalToolModule -->\n\nContextExternalToolService->ContextExternalToolModule\n\n\n\n\n\nContextExternalToolValidationService\n\nContextExternalToolValidationService\n\nContextExternalToolModule -->\n\nContextExternalToolValidationService->ContextExternalToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/context-external-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ContextExternalToolAuthorizableService\n \n \n ContextExternalToolService\n \n \n ContextExternalToolValidationService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n ExternalToolModule\n \n \n LoggerModule\n \n \n SchoolExternalToolModule\n \n \n \n \n Exports\n \n \n ContextExternalToolAuthorizableService\n \n \n ContextExternalToolService\n \n \n ContextExternalToolValidationService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ExternalToolModule } from '../external-tool';\nimport { SchoolExternalToolModule } from '../school-external-tool';\nimport {\n\tContextExternalToolAuthorizableService,\n\tContextExternalToolService,\n\tContextExternalToolValidationService,\n} from './service';\nimport { CommonToolModule } from '../common';\n\n@Module({\n\t// TODO: remove authorization module here N21-1055\n\timports: [\n\t\tCommonToolModule,\n\t\tExternalToolModule,\n\t\tSchoolExternalToolModule,\n\t\tLoggerModule,\n\t\tforwardRef(() => AuthorizationModule),\n\t],\n\tproviders: [ContextExternalToolService, ContextExternalToolValidationService, ContextExternalToolAuthorizableService],\n\texports: [ContextExternalToolService, ContextExternalToolValidationService, ContextExternalToolAuthorizableService],\n})\nexport class ContextExternalToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolPostParams.html":{"url":"classes/ContextExternalToolPostParams.html","title":"class - ContextExternalToolPostParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolPostParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n contextType\n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n schoolToolId\n \n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolContextType)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryParam[]\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested({each: true})@IsArray()@IsOptional()@ApiPropertyOptional({type: undefined})@Type(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n schoolToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsNumber()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:34\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsEnum, IsMongoId, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { CustomParameterEntryParam } from '../../../school-external-tool/controller/dto';\nimport { ToolContextType } from '../../../common/enum';\n\nexport class ContextExternalToolPostParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolToolId!: string;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tcontextId!: string;\n\n\t@IsEnum(ToolContextType)\n\t@ApiProperty()\n\tcontextType!: ToolContextType;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tdisplayName?: string;\n\n\t@ValidateNested({ each: true })\n\t@IsArray()\n\t@IsOptional()\n\t@ApiPropertyOptional({ type: [CustomParameterEntryParam] })\n\t@Type(() => CustomParameterEntryParam)\n\tparameters?: CustomParameterEntryParam[];\n\n\t@ApiProperty()\n\t@IsNumber()\n\ttoolVersion!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ContextExternalToolProps.html":{"url":"interfaces/ContextExternalToolProps.html","title":"interface - ContextExternalToolProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ContextExternalToolProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextRef\n \n \n \n Optional\n \n displayName\n \n \n \n Optional\n \n id\n \n \n \n \n parameters\n \n \n \n \n schoolToolRef\n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextRef\n \n \n \n \n \n \n \n \n contextRef: ContextRef\n\n \n \n\n\n \n \n Type : ContextRef\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n \n \n displayName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n \n \n parameters: CustomParameterEntry[]\n\n \n \n\n\n \n \n Type : CustomParameterEntry[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolToolRef\n \n \n \n \n \n \n \n \n schoolToolRef: SchoolExternalToolRefDO\n\n \n \n\n\n \n \n Type : SchoolExternalToolRefDO\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n toolVersion: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolVersion } from '../../common/interface';\nimport { SchoolExternalToolRefDO } from '../../school-external-tool/domain';\nimport { ContextRef } from './context-ref';\n\nexport interface ContextExternalToolProps {\n\tid?: string;\n\n\tschoolToolRef: SchoolExternalToolRefDO;\n\n\tcontextRef: ContextRef;\n\n\tdisplayName?: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n}\n\nexport class ContextExternalTool extends BaseDO implements ToolVersion {\n\tschoolToolRef: SchoolExternalToolRefDO;\n\n\tcontextRef: ContextRef;\n\n\tdisplayName?: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tconstructor(props: ContextExternalToolProps) {\n\t\tsuper(props.id);\n\t\tthis.schoolToolRef = props.schoolToolRef;\n\t\tthis.contextRef = props.contextRef;\n\t\tthis.displayName = props.displayName;\n\t\tthis.parameters = props.parameters;\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolRepo.html":{"url":"injectables/ContextExternalToolRepo.html","title":"injectable - ContextExternalToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n buildScope\n \n \n Async\n deleteBySchoolExternalToolIds\n \n \n entityFactory\n \n \n Async\n find\n \n \n Public\n \n Async\n findById\n \n \n Private\n mapContextTypeToDoType\n \n \n Private\n mapContextTypeToEntityType\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:25\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n buildScope\n \n \n \n \n \n \n \n buildScope(query: ContextExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ContextExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteBySchoolExternalToolIds\n \n \n \n \n \n \n \n deleteBySchoolExternalToolIds(schoolExternalToolIds: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolIds\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IContextExternalToolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:34\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IContextExternalToolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(query: ContextExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ContextExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:56\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapContextTypeToDoType\n \n \n \n \n \n \n \n mapContextTypeToDoType(type: ContextExternalToolType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:123\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ContextExternalToolType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolContextType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapContextTypeToEntityType\n \n \n \n \n \n \n \n mapContextTypeToEntityType(type: ToolContextType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:114\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: ContextExternalTool)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:103\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IContextExternalToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: ContextExternalToolEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:82\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ContextExternalToolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:30\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BaseDORepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ToolContextType } from '@src/modules/tool/common/enum/tool-context-type.enum';\nimport { ContextExternalTool, ContextRef } from '@src/modules/tool/context-external-tool/domain';\nimport {\n\tContextExternalToolEntity,\n\tContextExternalToolType,\n\tIContextExternalToolProperties,\n} from '@src/modules/tool/context-external-tool/entity';\nimport { ContextExternalToolQuery } from '@src/modules/tool/context-external-tool/uc/dto/context-external-tool.types';\nimport { SchoolExternalToolRefDO } from '@src/modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolEntity } from '@src/modules/tool/school-external-tool/entity';\nimport { EntityId } from '../../domain';\nimport { ExternalToolRepoMapper } from '../externaltool';\nimport { ContextExternalToolScope } from './context-external-tool.scope';\n\n@Injectable()\nexport class ContextExternalToolRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn ContextExternalToolEntity;\n\t}\n\n\tentityFactory(props: IContextExternalToolProperties): ContextExternalToolEntity {\n\t\treturn new ContextExternalToolEntity(props);\n\t}\n\n\tasync deleteBySchoolExternalToolIds(schoolExternalToolIds: string[]): Promise {\n\t\tconst count: Promise = this._em.nativeDelete(this.entityName, {\n\t\t\tschoolTool: { $in: schoolExternalToolIds },\n\t\t});\n\t\treturn count;\n\t}\n\n\tasync find(query: ContextExternalToolQuery): Promise {\n\t\tconst scope: ContextExternalToolScope = this.buildScope(query);\n\n\t\tconst entities: ContextExternalToolEntity[] = await this._em.find(this.entityName, scope.query, {\n\t\t\tpopulate: ['schoolTool.school'],\n\t\t});\n\n\t\tconst dos: ContextExternalTool[] = entities.map((entity: ContextExternalToolEntity) => this.mapEntityToDO(entity));\n\t\treturn dos;\n\t}\n\n\tpublic override async findById(id: EntityId): Promise {\n\t\tconst entity: ContextExternalToolEntity = await this._em.findOneOrFail(\n\t\t\tthis.entityName,\n\t\t\t{ id },\n\t\t\t{\n\t\t\t\tpopulate: ['schoolTool.school'],\n\t\t\t}\n\t\t);\n\n\t\tconst mapped: ContextExternalTool = this.mapEntityToDO(entity);\n\n\t\treturn mapped;\n\t}\n\n\tprivate buildScope(query: ContextExternalToolQuery): ContextExternalToolScope {\n\t\tconst scope: ContextExternalToolScope = new ContextExternalToolScope();\n\n\t\tscope.byId(query.id);\n\t\tscope.bySchoolToolId(query.schoolToolRef?.schoolToolId);\n\t\tscope.byContextId(query.context?.id);\n\t\tscope.byContextType(query.context?.type);\n\t\tscope.allowEmptyQuery(true);\n\n\t\treturn scope;\n\t}\n\n\tmapEntityToDO(entity: ContextExternalToolEntity): ContextExternalTool {\n\t\tconst schoolToolRef: SchoolExternalToolRefDO = new SchoolExternalToolRefDO({\n\t\t\tschoolId: entity.schoolTool.school?.id,\n\t\t\tschoolToolId: entity.schoolTool.id,\n\t\t});\n\n\t\tconst contextRef: ContextRef = new ContextRef({\n\t\t\tid: entity.contextId,\n\t\t\ttype: this.mapContextTypeToDoType(entity.contextType),\n\t\t});\n\n\t\treturn new ContextExternalTool({\n\t\t\tid: entity.id,\n\t\t\tschoolToolRef,\n\t\t\tcontextRef,\n\t\t\tdisplayName: entity.displayName,\n\t\t\ttoolVersion: entity.toolVersion,\n\t\t\tparameters: ExternalToolRepoMapper.mapCustomParameterEntryEntitiesToDOs(entity.parameters),\n\t\t});\n\t}\n\n\tmapDOToEntityProperties(entityDO: ContextExternalTool): IContextExternalToolProperties {\n\t\treturn {\n\t\t\tcontextId: entityDO.contextRef.id,\n\t\t\tcontextType: this.mapContextTypeToEntityType(entityDO.contextRef.type),\n\t\t\tdisplayName: entityDO.displayName,\n\t\t\tschoolTool: this._em.getReference(SchoolExternalToolEntity, entityDO.schoolToolRef.schoolToolId),\n\t\t\ttoolVersion: entityDO.toolVersion,\n\t\t\tparameters: ExternalToolRepoMapper.mapCustomParameterEntryDOsToEntities(entityDO.parameters),\n\t\t};\n\t}\n\n\tprivate mapContextTypeToEntityType(type: ToolContextType): ContextExternalToolType {\n\t\tswitch (type) {\n\t\t\tcase ToolContextType.COURSE:\n\t\t\t\treturn ContextExternalToolType.COURSE;\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Unknown ToolContextType');\n\t\t}\n\t}\n\n\tprivate mapContextTypeToDoType(type: ContextExternalToolType): ToolContextType {\n\t\tswitch (type) {\n\t\t\tcase ContextExternalToolType.COURSE:\n\t\t\t\treturn ToolContextType.COURSE;\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Unknown ContextExternalToolType');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolRequestMapper.html":{"url":"classes/ContextExternalToolRequestMapper.html","title":"class - ContextExternalToolRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-request.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapContextExternalToolRequest\n \n \n Private\n Static\n mapRequestToCustomParameterEntryDO\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapContextExternalToolRequest\n \n \n \n \n \n \n \n mapContextExternalToolRequest(request: ContextExternalToolPostParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-request.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n ContextExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapRequestToCustomParameterEntryDO\n \n \n \n \n \n \n \n mapRequestToCustomParameterEntryDO(customParameterParams: CustomParameterEntryParam[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-request.mapper.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntry[]\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContextExternalToolPostParams } from '../controller/dto';\nimport { CustomParameterEntryParam } from '../../school-external-tool/controller/dto';\nimport { ContextExternalToolDto } from '../uc/dto/context-external-tool.types';\nimport { CustomParameterEntry } from '../../common/domain';\n\nexport class ContextExternalToolRequestMapper {\n\tstatic mapContextExternalToolRequest(request: ContextExternalToolPostParams): ContextExternalToolDto {\n\t\treturn {\n\t\t\tid: '',\n\t\t\tschoolToolRef: {\n\t\t\t\tschoolToolId: request.schoolToolId,\n\t\t\t},\n\t\t\tcontextRef: {\n\t\t\t\tid: request.contextId,\n\t\t\t\ttype: request.contextType,\n\t\t\t},\n\t\t\tdisplayName: request.displayName,\n\t\t\ttoolVersion: request.toolVersion,\n\t\t\tparameters: this.mapRequestToCustomParameterEntryDO(request.parameters ?? []),\n\t\t};\n\t}\n\n\tprivate static mapRequestToCustomParameterEntryDO(\n\t\tcustomParameterParams: CustomParameterEntryParam[]\n\t): CustomParameterEntry[] {\n\t\treturn customParameterParams.map((customParameterParam: CustomParameterEntryParam) => {\n\t\t\treturn {\n\t\t\t\tname: customParameterParam.name,\n\t\t\t\tvalue: customParameterParam.value,\n\t\t\t};\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolResponse.html":{"url":"classes/ContextExternalToolResponse.html","title":"class - ContextExternalToolResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextId\n \n \n \n contextType\n \n \n \n Optional\n displayName\n \n \n \n id\n \n \n \n Optional\n logoUrl\n \n \n \n parameters\n \n \n \n schoolToolId\n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(response: ContextExternalToolResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:28\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n \n ContextExternalToolResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ToolContextType})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryResponse[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:25\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { CustomParameterEntryResponse } from '../../../school-external-tool/controller/dto';\nimport { ToolContextType } from '../../../common/enum';\n\nexport class ContextExternalToolResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tschoolToolId: string;\n\n\t@ApiProperty()\n\tcontextId: string;\n\n\t@ApiProperty({ enum: ToolContextType })\n\tcontextType: ToolContextType;\n\n\t@ApiPropertyOptional()\n\tdisplayName?: string;\n\n\t@ApiProperty({ type: [CustomParameterEntryResponse] })\n\tparameters: CustomParameterEntryResponse[] = [];\n\n\t@ApiProperty()\n\ttoolVersion: number;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\tconstructor(response: ContextExternalToolResponse) {\n\t\tthis.id = response.id;\n\t\tthis.schoolToolId = response.schoolToolId;\n\t\tthis.contextId = response.contextId;\n\t\tthis.contextType = response.contextType;\n\t\tthis.displayName = response.displayName;\n\t\tthis.parameters = response.parameters;\n\t\tthis.toolVersion = response.toolVersion;\n\t\tthis.logoUrl = response.logoUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolResponseMapper.html":{"url":"classes/ContextExternalToolResponseMapper.html","title":"class - ContextExternalToolResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapContextExternalToolResponse\n \n \n Private\n Static\n mapRequestToCustomParameterEntryDO\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapContextExternalToolResponse\n \n \n \n \n \n \n \n mapContextExternalToolResponse(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-response.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapRequestToCustomParameterEntryDO\n \n \n \n \n \n \n \n mapRequestToCustomParameterEntryDO(customParameterParams: CustomParameterEntryParam[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-response.mapper.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntryResponse[]\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameterEntryParam, CustomParameterEntryResponse } from '../../school-external-tool/controller/dto';\nimport { ContextExternalToolResponse } from '../controller/dto';\nimport { ContextExternalTool } from '../domain';\n\nexport class ContextExternalToolResponseMapper {\n\tstatic mapContextExternalToolResponse(contextExternalTool: ContextExternalTool): ContextExternalToolResponse {\n\t\tconst mapped: ContextExternalToolResponse = new ContextExternalToolResponse({\n\t\t\tid: contextExternalTool.id ?? '',\n\t\t\tcontextId: contextExternalTool.contextRef.id,\n\t\t\tcontextType: contextExternalTool.contextRef.type,\n\t\t\tschoolToolId: contextExternalTool.schoolToolRef.schoolToolId,\n\t\t\tdisplayName: contextExternalTool.displayName,\n\t\t\ttoolVersion: contextExternalTool.toolVersion,\n\t\t\tparameters: this.mapRequestToCustomParameterEntryDO(contextExternalTool.parameters),\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tprivate static mapRequestToCustomParameterEntryDO(\n\t\tcustomParameterParams: CustomParameterEntryParam[]\n\t): CustomParameterEntryResponse[] {\n\t\tconst mapped: CustomParameterEntryResponse[] = customParameterParams.map(\n\t\t\t(customParameterParam: CustomParameterEntryParam) => {\n\t\t\t\tconst customParameterEntryResponse: CustomParameterEntryResponse = new CustomParameterEntryResponse({\n\t\t\t\t\tname: customParameterParam.name,\n\t\t\t\t\tvalue: customParameterParam.value,\n\t\t\t\t});\n\n\t\t\t\treturn customParameterEntryResponse;\n\t\t\t}\n\t\t);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolRule.html":{"url":"injectables/ContextExternalToolRule.html","title":"injectable - ContextExternalToolRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/context-external-tool.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/context-external-tool.rule.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: ContextExternalToolEntity | ContextExternalTool, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/context-external-tool.rule.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n ContextExternalToolEntity | ContextExternalTool\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: ContextExternalToolEntity | ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/context-external-tool.rule.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n ContextExternalToolEntity | ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { ContextExternalTool } from '@src/modules/tool/context-external-tool/domain';\nimport { ContextExternalToolEntity } from '@src/modules/tool/context-external-tool/entity';\nimport { User } from '../entity';\n\n@Injectable()\nexport class ContextExternalToolRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: ContextExternalToolEntity | ContextExternalTool): boolean {\n\t\tconst isMatched: boolean = entity instanceof ContextExternalToolEntity || entity instanceof ContextExternalTool;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(\n\t\tuser: User,\n\t\tentity: ContextExternalToolEntity | ContextExternalTool,\n\t\tcontext: AuthorizationContext\n\t): boolean {\n\t\tlet hasPermission: boolean;\n\t\tif (entity instanceof ContextExternalToolEntity) {\n\t\t\thasPermission =\n\t\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t\tuser.school.id === entity.schoolTool.school.id;\n\t\t} else {\n\t\t\thasPermission =\n\t\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t\tuser.school.id === entity.schoolToolRef.schoolId;\n\t\t}\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolScope.html":{"url":"classes/ContextExternalToolScope.html","title":"class - ContextExternalToolScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byContextId\n \n \n byContextType\n \n \n byId\n \n \n bySchoolToolId\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byContextId\n \n \n \n \n \n \nbyContextId(contextId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byContextType\n \n \n \n \n \n \nbyContextType(contextType: ToolContextType | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextType\n \n ToolContextType | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byId\n \n \n \n \n \n \nbyId(id: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n bySchoolToolId\n \n \n \n \n \n \nbySchoolToolId(schoolToolId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolToolId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Scope } from '@shared/repo';\nimport { EntityId } from '@shared/domain';\nimport { ToolContextType } from '@src/modules/tool/common/enum';\nimport { ContextExternalToolEntity } from '@src/modules/tool/context-external-tool/entity';\n\nexport class ContextExternalToolScope extends Scope {\n\tbyId(id: EntityId | undefined): ContextExternalToolScope {\n\t\tif (id !== undefined) {\n\t\t\tthis.addQuery({ id });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tbySchoolToolId(schoolToolId: EntityId | undefined): ContextExternalToolScope {\n\t\tif (schoolToolId !== undefined) {\n\t\t\tthis.addQuery({ schoolTool: schoolToolId });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyContextId(contextId: EntityId | undefined): ContextExternalToolScope {\n\t\tif (contextId !== undefined) {\n\t\t\tthis.addQuery({ contextId });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tbyContextType(contextType: ToolContextType | undefined): ContextExternalToolScope {\n\t\tif (contextType !== undefined) {\n\t\t\tthis.addQuery({ contextType });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolSearchListResponse.html":{"url":"classes/ContextExternalToolSearchListResponse.html","title":"class - ContextExternalToolSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-search-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ContextExternalToolResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-search-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ContextExternalToolResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ContextExternalToolResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-search-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContextExternalToolResponse } from './context-external-tool.response';\n\nexport class ContextExternalToolSearchListResponse {\n\t@ApiProperty({ type: [ContextExternalToolResponse] })\n\tdata: ContextExternalToolResponse[];\n\n\tconstructor(data: ContextExternalToolResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolService.html":{"url":"injectables/ContextExternalToolService.html","title":"injectable - ContextExternalToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteBySchoolExternalToolId\n \n \n Async\n deleteContextExternalTool\n \n \n Async\n findAllByContext\n \n \n Async\n findContextExternalTools\n \n \n Async\n getContextExternalToolById\n \n \n Async\n saveContextExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalToolRepo: ContextExternalToolRepo)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalToolRepo\n \n \n ContextExternalToolRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteBySchoolExternalToolId\n \n \n \n \n \n \n \n deleteBySchoolExternalToolId(schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteContextExternalTool\n \n \n \n \n \n \n \n deleteContextExternalTool(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByContext\n \n \n \n \n \n \n \n findAllByContext(contextRef: ContextRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextRef\n \n ContextRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findContextExternalTools\n \n \n \n \n \n \n \n findContextExternalTools(query: ContextExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ContextExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalToolById\n \n \n \n \n \n \n \n getContextExternalToolById(contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveContextExternalTool\n \n \n \n \n \n \n \n saveContextExternalTool(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ContextExternalToolRepo } from '@shared/repo';\nimport { ContextExternalToolQuery } from '../uc/dto/context-external-tool.types';\nimport { ContextExternalTool, ContextRef } from '../domain';\n\n@Injectable()\nexport class ContextExternalToolService {\n\tconstructor(private readonly contextExternalToolRepo: ContextExternalToolRepo) {}\n\n\tasync findContextExternalTools(query: ContextExternalToolQuery): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolRepo.find(query);\n\n\t\treturn contextExternalTools;\n\t}\n\n\tasync getContextExternalToolById(contextExternalToolId: EntityId): Promise {\n\t\tconst tool: ContextExternalTool = await this.contextExternalToolRepo.findById(contextExternalToolId);\n\n\t\treturn tool;\n\t}\n\n\tasync saveContextExternalTool(contextExternalTool: ContextExternalTool): Promise {\n\t\tconst savedContextExternalTool: ContextExternalTool = await this.contextExternalToolRepo.save(contextExternalTool);\n\n\t\treturn savedContextExternalTool;\n\t}\n\n\tasync deleteBySchoolExternalToolId(schoolExternalToolId: EntityId) {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolRepo.find({\n\t\t\tschoolToolRef: {\n\t\t\t\tschoolToolId: schoolExternalToolId,\n\t\t\t},\n\t\t});\n\n\t\tawait this.contextExternalToolRepo.delete(contextExternalTools);\n\t}\n\n\tasync deleteContextExternalTool(contextExternalTool: ContextExternalTool): Promise {\n\t\tawait this.contextExternalToolRepo.delete(contextExternalTool);\n\t}\n\n\tasync findAllByContext(contextRef: ContextRef): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolRepo.find({\n\t\t\tcontext: contextRef,\n\t\t});\n\n\t\treturn contextExternalTools;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolUc.html":{"url":"injectables/ContextExternalToolUc.html","title":"injectable - ContextExternalToolUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createContextExternalTool\n \n \n Async\n deleteContextExternalTool\n \n \n Private\n Async\n filterToolsWithPermissions\n \n \n Async\n getContextExternalTool\n \n \n Async\n getContextExternalToolsForContext\n \n \n Async\n updateContextExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolPermissionHelper: ToolPermissionHelper, contextExternalToolService: ContextExternalToolService, contextExternalToolValidationService: ContextExternalToolValidationService, authorizationService: AuthorizationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n contextExternalToolValidationService\n \n \n ContextExternalToolValidationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createContextExternalTool\n \n \n \n \n \n \n \n createContextExternalTool(userId: EntityId, contextExternalToolDto: ContextExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolDto\n \n ContextExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteContextExternalTool\n \n \n \n \n \n \n \n deleteContextExternalTool(userId: EntityId, contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n filterToolsWithPermissions\n \n \n \n \n \n \n \n filterToolsWithPermissions(userId: EntityId, tools: ContextExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:96\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n tools\n \n ContextExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalTool\n \n \n \n \n \n \n \n getContextExternalTool(userId: EntityId, contextToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalToolsForContext\n \n \n \n \n \n \n \n getContextExternalToolsForContext(userId: EntityId, contextType: ToolContextType, contextId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextType\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n contextId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateContextExternalTool\n \n \n \n \n \n \n \n updateContextExternalTool(userId: EntityId, contextExternalToolId: EntityId, contextExternalToolDto: ContextExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolDto\n \n ContextExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission, User } from '@shared/domain';\nimport { AuthorizationContext, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ContextExternalToolService, ContextExternalToolValidationService } from '../service';\nimport { ContextExternalToolDto } from './dto/context-external-tool.types';\nimport { ContextExternalTool, ContextRef } from '../domain';\nimport { ToolContextType } from '../../common/enum';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class ContextExternalToolUc {\n\tconstructor(\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly contextExternalToolValidationService: ContextExternalToolValidationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {}\n\n\tasync createContextExternalTool(\n\t\tuserId: EntityId,\n\t\tcontextExternalToolDto: ContextExternalToolDto\n\t): Promise {\n\t\tconst contextExternalTool = new ContextExternalTool(contextExternalToolDto);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tawait this.contextExternalToolValidationService.validate(contextExternalToolDto);\n\n\t\tconst createdTool: ContextExternalTool = await this.contextExternalToolService.saveContextExternalTool(\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\treturn createdTool;\n\t}\n\n\tasync updateContextExternalTool(\n\t\tuserId: EntityId,\n\t\tcontextExternalToolId: EntityId,\n\t\tcontextExternalToolDto: ContextExternalToolDto\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = new ContextExternalTool(contextExternalToolDto);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(\n\t\t\tuserId,\n\t\t\tcontextExternalTool,\n\t\t\tAuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN])\n\t\t);\n\n\t\tconst updated: ContextExternalTool = new ContextExternalTool({\n\t\t\t...contextExternalTool,\n\t\t\tid: contextExternalToolId,\n\t\t});\n\n\t\tawait this.contextExternalToolValidationService.validate(updated);\n\n\t\tconst saved: ContextExternalTool = await this.contextExternalToolService.saveContextExternalTool(updated);\n\n\t\treturn saved;\n\t}\n\n\tasync deleteContextExternalTool(userId: EntityId, contextExternalToolId: EntityId): Promise {\n\t\tconst tool: ContextExternalTool = await this.contextExternalToolService.getContextExternalToolById(\n\t\t\tcontextExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, tool, context);\n\n\t\tconst promise: Promise = this.contextExternalToolService.deleteContextExternalTool(tool);\n\n\t\treturn promise;\n\t}\n\n\tasync getContextExternalToolsForContext(userId: EntityId, contextType: ToolContextType, contextId: string) {\n\t\tconst tools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: contextId, type: contextType })\n\t\t);\n\n\t\tconst toolsWithPermission: ContextExternalTool[] = await this.filterToolsWithPermissions(userId, tools);\n\n\t\treturn toolsWithPermission;\n\t}\n\n\tasync getContextExternalTool(userId: EntityId, contextToolId: EntityId) {\n\t\tconst tool: ContextExternalTool = await this.contextExternalToolService.getContextExternalToolById(contextToolId);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, tool, context);\n\n\t\treturn tool;\n\t}\n\n\tprivate async filterToolsWithPermissions(\n\t\tuserId: EntityId,\n\t\ttools: ContextExternalTool[]\n\t): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tconst toolsWithPermission: ContextExternalTool[] = tools.filter((tool) =>\n\t\t\tthis.authorizationService.hasPermission(user, tool, context)\n\t\t);\n\n\t\treturn toolsWithPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolValidationService.html":{"url":"injectables/ContextExternalToolValidationService.html","title":"injectable - ContextExternalToolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkDuplicateInContext\n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalToolService: ContextExternalToolService, externalToolService: ExternalToolService, schoolExternalToolService: SchoolExternalToolService, commonToolValidationService: CommonToolValidationService)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n commonToolValidationService\n \n \n CommonToolValidationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkDuplicateInContext\n \n \n \n \n \n \n \n checkDuplicateInContext(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(toValidate: ContextExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toValidate\n \n ContextExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { CommonToolValidationService } from '../../common/service';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ContextExternalTool } from '../domain';\nimport { ContextExternalToolDto } from '../uc/dto/context-external-tool.types';\nimport { ContextExternalToolService } from './context-external-tool.service';\n\n@Injectable()\nexport class ContextExternalToolValidationService {\n\tconstructor(\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly commonToolValidationService: CommonToolValidationService\n\t) {}\n\n\tasync validate(toValidate: ContextExternalToolDto): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = new ContextExternalTool(toValidate);\n\n\t\tawait this.checkDuplicateInContext(contextExternalTool);\n\n\t\tconst loadedSchoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tconst loadedExternalTool: ExternalTool = await this.externalToolService.findExternalToolById(\n\t\t\tloadedSchoolExternalTool.toolId\n\t\t);\n\n\t\tthis.commonToolValidationService.checkCustomParameterEntries(loadedExternalTool, contextExternalTool);\n\t}\n\n\tprivate async checkDuplicateInContext(contextExternalTool: ContextExternalTool) {\n\t\tlet duplicate: ContextExternalTool[] = await this.contextExternalToolService.findContextExternalTools({\n\t\t\tschoolToolRef: contextExternalTool.schoolToolRef,\n\t\t\tcontext: contextExternalTool.contextRef,\n\t\t});\n\n\t\t// Only leave tools that are not the currently handled tool itself (for updates) or ones with the same name\n\t\tduplicate = duplicate.filter(\n\t\t\t(duplicateTool) =>\n\t\t\t\tduplicateTool.id !== contextExternalTool.id && duplicateTool.displayName === contextExternalTool.displayName\n\t\t);\n\n\t\tif (duplicate.length > 0) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_with_name_exists: A tool with the same name is already assigned to this course. Tool names must be unique within a course.`\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextRef.html":{"url":"classes/ContextRef.html","title":"class - ContextRef","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextRef\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/domain/context-ref.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ContextRef)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-ref.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ContextRef\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-ref.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-ref.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolContextType } from '../../common/enum';\n\nexport class ContextRef {\n\tid: string;\n\n\ttype: ToolContextType;\n\n\tconstructor(props: ContextRef) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextRefParams.html":{"url":"classes/ContextRefParams.html","title":"class - ContextRefParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextRefParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/context-ref.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n contextType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/context-ref.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolContextType)@ApiProperty({type: ToolContextType})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/context-ref.params.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsEnum, IsMongoId } from 'class-validator';\nimport { ToolContextType } from '../../../../common/enum';\n\nexport class ContextRefParams {\n\t@IsEnum(ToolContextType)\n\t@ApiProperty({ type: ToolContextType })\n\tcontextType!: ToolContextType;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\tcontextId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextTypeMapper.html":{"url":"classes/ContextTypeMapper.html","title":"class - ContextTypeMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextTypeMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/mapper/context-type.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapContextTypeToAllowedAuthorizationEntityType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapContextTypeToAllowedAuthorizationEntityType\n \n \n \n \n \n \n \n mapContextTypeToAllowedAuthorizationEntityType(type: ToolContextType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/mapper/context-type.mapper.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizableReferenceType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { AuthorizableReferenceType } from '@src/modules/authorization/types';\nimport { ToolContextType } from '../enum';\n\nconst typeMapping: Record = {\n\t[ToolContextType.COURSE]: AuthorizableReferenceType.Course,\n};\n\nexport class ContextTypeMapper {\n\tstatic mapContextTypeToAllowedAuthorizationEntityType(type: ToolContextType): AuthorizableReferenceType {\n\t\treturn typeMapping[type];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ConverterUtil.html":{"url":"injectables/ConverterUtil.html","title":"injectable - ConverterUtil","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ConverterUtil\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/utils/converter.util.ts\n \n\n\n \n Description\n \n \n This class encapsulates\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n xml2object\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n xml2object\n \n \n \n \n \n \nxml2object(xml: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/utils/converter.util.ts:9\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n xml\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport xml2json from '@hendt/xml2json';\n\n/**\n * This class encapsulates\n */\n@Injectable()\nexport class ConverterUtil {\n\txml2object(xml: string): T {\n\t\treturn xml2json(xml) as T;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CookiesDto.html":{"url":"classes/CookiesDto.html","title":"class - CookiesDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CookiesDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/cookies.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n hydraCookies\n \n \n localCookies\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CookiesDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CookiesDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n hydraCookies\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/cookies.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n localCookies\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class CookiesDto {\n\thydraCookies: string[];\n\n\tlocalCookies: string[];\n\n\tconstructor(props: CookiesDto) {\n\t\tthis.localCookies = props.localCookies;\n\t\tthis.hydraCookies = props.hydraCookies;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyApiResponse.html":{"url":"classes/CopyApiResponse.html","title":"class - CopyApiResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyApiResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/copy-helper/dto/copy.response.ts\n \n\n\n \n Description\n \n \n DTO for returning a copy status document via api.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n destinationCourseId\n \n \n \n Optional\n elements\n \n \n \n Optional\n id\n \n \n \n status\n \n \n \n Optional\n title\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: CopyApiResponse)\n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n CopyApiResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n destinationCourseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Id of destination course'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n elements\n \n \n \n \n \n \n Type : CopyApiResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({type: undefined, description: 'List of included sub elements with recursive type structure'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Id of copied element'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : CopyStatusEnum\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string', enum: CopyStatusEnum, description: 'Copy progress status of copied element'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Title of copied element'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CopyElementType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string', enum: CopyElementType, description: 'Type of copied element'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:29\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { CopyElementType, CopyStatusEnum } from '@src/modules/copy-helper/types/copy.types';\n\n/**\n * DTO for returning a copy status document via api.\n */\nexport class CopyApiResponse {\n\tconstructor({ title, type, status }: CopyApiResponse) {\n\t\tif (title) this.title = title;\n\t\tthis.type = type;\n\t\tthis.status = status;\n\t}\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Id of copied element',\n\t})\n\tid?: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Title of copied element',\n\t})\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\ttype: 'string',\n\t\tenum: CopyElementType,\n\t\tdescription: 'Type of copied element',\n\t})\n\ttype: CopyElementType;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Id of destination course',\n\t})\n\tdestinationCourseId?: string;\n\n\t@ApiProperty({\n\t\ttype: 'string',\n\t\tenum: CopyStatusEnum,\n\t\tdescription: 'Copy progress status of copied element',\n\t})\n\tstatus: CopyStatusEnum;\n\n\t@ApiPropertyOptional({\n\t\ttype: [CopyApiResponse],\n\t\tdescription: 'List of included sub elements with recursive type structure',\n\t})\n\telements?: CopyApiResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileDto.html":{"url":"classes/CopyFileDto.html","title":"class - CopyFileDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n id\n \n \n name\n \n \n sourceId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ICopyFileDomainObjectProps)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ICopyFileDomainObjectProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId | undefined\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n sourceId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ICopyFileDomainObjectProps } from '../interfaces';\n\nexport class CopyFileDto {\n\tid?: EntityId | undefined;\n\n\tsourceId: EntityId;\n\n\tname: string;\n\n\tconstructor(data: ICopyFileDomainObjectProps) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileListResponse.html":{"url":"classes/CopyFileListResponse.html","title":"class - CopyFileListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:84\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n CopyFileResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : CopyFileResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:91\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { FileRecord, FileRecordParentType, PreviewStatus, ScanStatus } from '../../entity';\nimport { API_VERSION_PATH } from '../../files-storage.const';\n\nexport class FileRecordResponse {\n\tconstructor(fileRecord: FileRecord) {\n\t\tthis.id = fileRecord.id;\n\t\tthis.name = fileRecord.name;\n\t\tthis.url = `${API_VERSION_PATH}/file/download/${fileRecord.id}/${encodeURIComponent(fileRecord.name)}`;\n\t\tthis.size = fileRecord.size;\n\t\tthis.securityCheckStatus = fileRecord.securityCheck.status;\n\t\tthis.parentId = fileRecord.parentId;\n\t\tthis.creatorId = fileRecord.creatorId;\n\t\tthis.mimeType = fileRecord.mimeType;\n\t\tthis.parentType = fileRecord.parentType;\n\t\tthis.deletedSince = fileRecord.deletedSince;\n\t\tthis.previewStatus = fileRecord.getPreviewStatus();\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiProperty()\n\tparentId: string;\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty({ enum: ScanStatus, enumName: 'FileRecordScanStatus' })\n\tsecurityCheckStatus: ScanStatus;\n\n\t@ApiProperty()\n\tsize: number;\n\n\t@ApiProperty()\n\tcreatorId: string;\n\n\t@ApiProperty()\n\tmimeType: string;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\tparentType: FileRecordParentType;\n\n\t@ApiProperty({ enum: PreviewStatus, enumName: 'PreviewStatus' })\n\tpreviewStatus: PreviewStatus;\n\n\t@ApiPropertyOptional()\n\tdeletedSince?: Date;\n}\n\nexport class FileRecordListResponse extends PaginationResponse {\n\tconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [FileRecordResponse] })\n\tdata: FileRecordResponse[];\n}\n\nexport class CopyFileResponse {\n\tconstructor(data: CopyFileResponse) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n\n\t@ApiPropertyOptional()\n\tid?: string;\n\n\t@ApiProperty()\n\tsourceId: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n}\n\nexport class CopyFileListResponse extends PaginationResponse {\n\tconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CopyFileResponse] })\n\tdata: CopyFileResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileParams.html":{"url":"classes/CopyFileParams.html","title":"class - CopyFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n fileNamePrefix\n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileNamePrefix\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:94\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : FileRecordParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@ValidateNested()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:90\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileResponse.html":{"url":"classes/CopyFileResponse.html","title":"class - CopyFileResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n name\n \n \n \n sourceId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: CopyFileResponse)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:66\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n CopyFileResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:74\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:81\n \n \n\n\n \n \n \n \n \n \n \n \n \n sourceId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:77\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { FileRecord, FileRecordParentType, PreviewStatus, ScanStatus } from '../../entity';\nimport { API_VERSION_PATH } from '../../files-storage.const';\n\nexport class FileRecordResponse {\n\tconstructor(fileRecord: FileRecord) {\n\t\tthis.id = fileRecord.id;\n\t\tthis.name = fileRecord.name;\n\t\tthis.url = `${API_VERSION_PATH}/file/download/${fileRecord.id}/${encodeURIComponent(fileRecord.name)}`;\n\t\tthis.size = fileRecord.size;\n\t\tthis.securityCheckStatus = fileRecord.securityCheck.status;\n\t\tthis.parentId = fileRecord.parentId;\n\t\tthis.creatorId = fileRecord.creatorId;\n\t\tthis.mimeType = fileRecord.mimeType;\n\t\tthis.parentType = fileRecord.parentType;\n\t\tthis.deletedSince = fileRecord.deletedSince;\n\t\tthis.previewStatus = fileRecord.getPreviewStatus();\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiProperty()\n\tparentId: string;\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty({ enum: ScanStatus, enumName: 'FileRecordScanStatus' })\n\tsecurityCheckStatus: ScanStatus;\n\n\t@ApiProperty()\n\tsize: number;\n\n\t@ApiProperty()\n\tcreatorId: string;\n\n\t@ApiProperty()\n\tmimeType: string;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\tparentType: FileRecordParentType;\n\n\t@ApiProperty({ enum: PreviewStatus, enumName: 'PreviewStatus' })\n\tpreviewStatus: PreviewStatus;\n\n\t@ApiPropertyOptional()\n\tdeletedSince?: Date;\n}\n\nexport class FileRecordListResponse extends PaginationResponse {\n\tconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [FileRecordResponse] })\n\tdata: FileRecordResponse[];\n}\n\nexport class CopyFileResponse {\n\tconstructor(data: CopyFileResponse) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n\n\t@ApiPropertyOptional()\n\tid?: string;\n\n\t@ApiProperty()\n\tsourceId: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n}\n\nexport class CopyFileListResponse extends PaginationResponse {\n\tconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CopyFileResponse] })\n\tdata: CopyFileResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileResponseBuilder.html":{"url":"classes/CopyFileResponseBuilder.html","title":"class - CopyFileResponseBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileResponseBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/copy-file-response.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(id: string, sourceId: string, name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/copy-file-response.builder.ts:4\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n sourceId\n \n string\n \n\n \n No\n \n\n\n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyFileResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CopyFileResponse } from '../controller/dto';\n\nexport class CopyFileResponseBuilder {\n\tpublic static build(id: string, sourceId: string, name: string): CopyFileResponse {\n\t\tconst copyFileResponse = new CopyFileResponse({ id, sourceId, name });\n\n\t\treturn copyFileResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CopyFiles.html":{"url":"interfaces/CopyFiles.html","title":"interface - CopyFiles","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CopyFiles\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/interface/index.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n sourcePath\n \n \n \n \n targetPath\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n sourcePath\n \n \n \n \n \n \n \n \n sourcePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n targetPath\n \n \n \n \n \n \n \n \n targetPath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\n\nexport interface S3Config {\n\tconnectionName: string;\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\nexport interface GetFile {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n}\n\nexport interface CopyFiles {\n\tsourcePath: string;\n\ttargetPath: string;\n}\n\nexport interface File {\n\tdata: Readable;\n\tname: string;\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFilesOfParentParamBuilder.html":{"url":"classes/CopyFilesOfParentParamBuilder.html","title":"class - CopyFilesOfParentParamBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFilesOfParentParamBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/mapper/copy-files-of-parent-param.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(userId: EntityId, source: IFileRequestInfo, target: IFileRequestInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/copy-files-of-parent-param.builder.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n source\n \n IFileRequestInfo\n \n\n \n No\n \n\n\n \n \n target\n \n IFileRequestInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICopyFilesRequestInfo\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { IFileRequestInfo } from '../interfaces';\nimport { ICopyFilesRequestInfo } from '../interfaces/copy-file-request-info';\n\nexport class CopyFilesOfParentParamBuilder {\n\tstatic build(userId: EntityId, source: IFileRequestInfo, target: IFileRequestInfo): ICopyFilesRequestInfo {\n\t\tconst fileRequestInfo = {\n\t\t\tuserId,\n\t\t\tsource,\n\t\t\ttarget,\n\t\t};\n\n\t\treturn fileRequestInfo;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFilesOfParentParams.html":{"url":"classes/CopyFilesOfParentParams.html","title":"class - CopyFilesOfParentParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFilesOfParentParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : FileRecordParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@ValidateNested()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:84\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFilesOfParentPayload.html":{"url":"classes/CopyFilesOfParentPayload.html","title":"class - CopyFilesOfParentPayload","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFilesOfParentPayload\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n source\n \n \n \n target\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n source\n \n \n \n \n \n \n Type : FileRecordParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:102\n \n \n\n\n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : FileRecordParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:105\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:99\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CopyFilesService.html":{"url":"injectables/CopyFilesService.html","title":"injectable - CopyFilesService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CopyFilesService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/service/copy-files.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyFilesOfEntity\n \n \n Private\n createFileUrlReplacements\n \n \n Private\n deriveCopyStatus\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(copyHelperService: CopyHelperService, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/copy-files.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyFilesOfEntity\n \n \n \n \n \n \n \n copyFilesOfEntity(originalEntity: T, copyEntity: T, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/copy-files.service.ts:23\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalEntity\n \n T\n \n\n \n No\n \n\n\n \n \n copyEntity\n \n T\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createFileUrlReplacements\n \n \n \n \n \n \n \n createFileUrlReplacements(fileDtos: CopyFileDto[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/copy-files.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileDtos\n \n CopyFileDto[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileUrlReplacement[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deriveCopyStatus\n \n \n \n \n \n \n \n deriveCopyStatus(fileDtos: CopyFileDto[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/copy-files.service.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileDtos\n \n CopyFileDto[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@src/modules/copy-helper';\nimport { CopyFileDto } from '../dto';\nimport { EntityWithEmbeddedFiles } from '../interfaces';\nimport { CopyFilesOfParentParamBuilder, FileParamBuilder } from '../mapper';\nimport { FilesStorageClientAdapterService } from './files-storage-client.service';\n\nconst FILE_COULD_NOT_BE_COPIED_HINT = 'fileCouldNotBeCopied';\n\nexport type FileUrlReplacement = {\n\tregex: RegExp;\n\treplacement: string;\n};\n\n@Injectable()\nexport class CopyFilesService {\n\tconstructor(\n\t\tprivate readonly copyHelperService: CopyHelperService,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync copyFilesOfEntity(\n\t\toriginalEntity: T,\n\t\tcopyEntity: T,\n\t\tuserId: EntityId\n\t): Promise {\n\t\tconst source = FileParamBuilder.build(originalEntity.getSchoolId(), originalEntity);\n\t\tconst target = FileParamBuilder.build(copyEntity.getSchoolId(), copyEntity);\n\t\tconst copyFilesOfParentParams = CopyFilesOfParentParamBuilder.build(userId, source, target);\n\n\t\tconst fileDtos = await this.filesStorageClientAdapterService.copyFilesOfParent(copyFilesOfParentParams);\n\t\tconst fileUrlReplacements = this.createFileUrlReplacements(fileDtos);\n\t\tconst fileCopyStatus = this.deriveCopyStatus(fileDtos);\n\n\t\treturn { fileUrlReplacements, fileCopyStatus };\n\t}\n\n\tprivate createFileUrlReplacements(fileDtos: CopyFileDto[]): FileUrlReplacement[] {\n\t\treturn fileDtos.map((fileDto): FileUrlReplacement => {\n\t\t\tconst { sourceId, id, name } = fileDto;\n\n\t\t\t// use hint as id replacement, if file could not be copied\n\t\t\tconst newId = id ?? FILE_COULD_NOT_BE_COPIED_HINT;\n\n\t\t\tconst fileUrlReplacement: FileUrlReplacement = {\n\t\t\t\tregex: new RegExp(`${sourceId}.+?\"`, 'g'),\n\t\t\t\treplacement: `${newId}/${name}\"`,\n\t\t\t};\n\n\t\t\treturn fileUrlReplacement;\n\t\t});\n\t}\n\n\tprivate deriveCopyStatus(fileDtos: CopyFileDto[]): CopyStatus {\n\t\tconst fileStatuses: CopyStatus[] = fileDtos.map(({ sourceId, id, name }) => {\n\t\t\tconst result = {\n\t\t\t\ttype: CopyElementType.FILE,\n\t\t\t\tstatus: id ? CopyStatusEnum.SUCCESS : CopyStatusEnum.FAIL,\n\t\t\t\ttitle: name ?? `(old fileid: ${sourceId})`,\n\t\t\t};\n\t\t\treturn result;\n\t\t});\n\n\t\tconst fileGroupStatus = {\n\t\t\ttype: CopyElementType.FILE_GROUP,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(fileStatuses),\n\t\t\telements: fileStatuses,\n\t\t};\n\t\treturn fileGroupStatus;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CopyHelperModule.html":{"url":"modules/CopyHelperModule.html","title":"module - CopyHelperModule","body":"\n \n\n\n\n\n Modules\n CopyHelperModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CopyHelperModule\n\n\n\ncluster_CopyHelperModule_providers\n\n\n\ncluster_CopyHelperModule_exports\n\n\n\n\nCopyHelperService \n\nCopyHelperService \n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\nCopyHelperService -->\n\nCopyHelperModule->CopyHelperService \n\n\n\n\n\nCopyHelperService\n\nCopyHelperService\n\nCopyHelperModule -->\n\nCopyHelperService->CopyHelperModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/copy-helper/copy-helper.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CopyHelperService\n \n \n \n \n Exports\n \n \n CopyHelperService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CopyHelperService } from './service/copy-helper.service';\n\n@Module({\n\tproviders: [CopyHelperService],\n\texports: [CopyHelperService],\n})\nexport class CopyHelperModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CopyHelperService.html":{"url":"injectables/CopyHelperService.html","title":"injectable - CopyHelperService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CopyHelperService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/copy-helper/service/copy-helper.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n buildCopyEntityDict\n \n \n deriveCopyName\n \n \n deriveStatusFromElements\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n buildCopyEntityDict\n \n \n \n \n \n \nbuildCopyEntityDict(status: CopyStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/service/copy-helper.service.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n status\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Map\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deriveCopyName\n \n \n \n \n \n \nderiveCopyName(name: string, existingNames: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/service/copy-helper.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n existingNames\n \n string[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deriveStatusFromElements\n \n \n \n \n \n \nderiveStatusFromElements(elements: CopyStatus[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/service/copy-helper.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatusEnum\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { BaseEntity } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { CopyStatus, CopyStatusEnum } from '../types/copy.types';\n\nconst isAtLeastPartialSuccessfull = (status) => status === CopyStatusEnum.PARTIAL || status === CopyStatusEnum.SUCCESS;\n\n@Injectable()\nexport class CopyHelperService {\n\tderiveStatusFromElements(elements: CopyStatus[]): CopyStatusEnum {\n\t\tconst elementsStatuses = elements.map((el) => el.status);\n\n\t\tconst filtered = elementsStatuses.filter((status) => status !== CopyStatusEnum.NOT_DOING);\n\n\t\tif (filtered.length > 0) {\n\t\t\tif (filtered.every((status) => !isAtLeastPartialSuccessfull(status))) {\n\t\t\t\treturn CopyStatusEnum.FAIL;\n\t\t\t}\n\n\t\t\tif (filtered.some((status) => status !== CopyStatusEnum.SUCCESS)) {\n\t\t\t\treturn CopyStatusEnum.PARTIAL;\n\t\t\t}\n\t\t}\n\n\t\treturn CopyStatusEnum.SUCCESS;\n\t}\n\n\tderiveCopyName(name: string, existingNames: string[] = []): string {\n\t\tif (!existingNames.includes(name)) {\n\t\t\treturn name;\n\t\t}\n\t\tlet num = 1;\n\t\tconst matches = name.match(/^(?.*) \\((?\\d+)\\)$/);\n\t\tif (matches && matches.groups) {\n\t\t\tname = matches.groups.name;\n\t\t\tnum = Number(matches.groups.number) + 1;\n\t\t}\n\t\tconst composedName = `${name} (${num})`;\n\t\tif (existingNames.includes(composedName)) {\n\t\t\treturn this.deriveCopyName(composedName, existingNames);\n\t\t}\n\t\treturn composedName;\n\t}\n\n\tbuildCopyEntityDict(status: CopyStatus): Map {\n\t\tconst map = new Map();\n\t\tstatus.elements?.forEach((elementStatus: CopyStatus) => {\n\t\t\tthis.buildCopyEntityDict(elementStatus).forEach((el, key) => map.set(key, el));\n\t\t});\n\t\tif (status.originalEntity && status.copyEntity) {\n\t\t\tmap.set(status.originalEntity.id, status.copyEntity);\n\t\t}\n\t\treturn map;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyMapper.html":{"url":"classes/CopyMapper.html","title":"class - CopyMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/copy-helper/mapper/copy.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapLessonCopyToDomain\n \n \n Static\n mapTaskCopyToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapLessonCopyToDomain\n \n \n \n \n \n \n \n mapLessonCopyToDomain(params: LessonCopyApiParams, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/mapper/copy.mapper.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n LessonCopyApiParams\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LessonCopyParentParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapTaskCopyToDomain\n \n \n \n \n \n \n \n mapTaskCopyToDomain(params: TaskCopyApiParams, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/mapper/copy.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskCopyApiParams\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskCopyParentParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(copyStatus: CopyStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/mapper/copy.mapper.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n copyStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyApiResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, LessonEntity, Task } from '@shared/domain';\nimport { LessonCopyApiParams } from '@src/modules/learnroom/controller/dto/lesson/lesson-copy.params';\nimport { LessonCopyParentParams } from '@src/modules/lesson/types';\nimport { TaskCopyApiParams } from '@src/modules/task/controller/dto/task-copy.params';\nimport { TaskCopyParentParams } from '@src/modules/task/types';\nimport { CopyApiResponse } from '../dto/copy.response';\nimport { CopyStatus, CopyStatusEnum } from '../types/copy.types';\n\nexport class CopyMapper {\n\tstatic mapToResponse(copyStatus: CopyStatus): CopyApiResponse {\n\t\tconst dto = new CopyApiResponse({\n\t\t\ttitle: copyStatus.title,\n\t\t\ttype: copyStatus.type,\n\t\t\tstatus: copyStatus.status,\n\t\t});\n\n\t\tif (copyStatus.copyEntity) {\n\t\t\tconst copyEntity = copyStatus.copyEntity as LessonEntity | Task;\n\t\t\tdto.id = copyEntity.id;\n\t\t\tdto.destinationCourseId = copyEntity.course?.id;\n\t\t}\n\t\tif (copyStatus.status !== CopyStatusEnum.SUCCESS && copyStatus.elements) {\n\t\t\tdto.elements = copyStatus.elements\n\t\t\t\t.map((element) => CopyMapper.mapToResponse(element))\n\t\t\t\t.filter((element) => element.status !== CopyStatusEnum.SUCCESS);\n\t\t}\n\t\treturn dto;\n\t}\n\n\tstatic mapLessonCopyToDomain(params: LessonCopyApiParams, userId: EntityId): LessonCopyParentParams {\n\t\tconst dto = {\n\t\t\tcourseId: params.courseId,\n\t\t\tuserId,\n\t\t};\n\n\t\treturn dto;\n\t}\n\n\tstatic mapTaskCopyToDomain(params: TaskCopyApiParams, userId: EntityId): TaskCopyParentParams {\n\t\tconst dto = {\n\t\t\tcourseId: params.courseId,\n\t\t\tlessonId: params.lessonId,\n\t\t\tuserId,\n\t\t};\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CoreModule.html":{"url":"modules/CoreModule.html","title":"module - CoreModule","body":"\n \n\n\n\n\n Modules\n CoreModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CoreModule\n\n\n\ncluster_CoreModule_exports\n\n\n\ncluster_CoreModule_imports\n\n\n\n\nErrorModule\n\nErrorModule\n\n\n\nCoreModule\n\nCoreModule\n\nCoreModule -->\n\nErrorModule->CoreModule\n\n\n\n\n\nInterceptorModule\n\nInterceptorModule\n\nCoreModule -->\n\nInterceptorModule->CoreModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCoreModule -->\n\nLoggerModule->CoreModule\n\n\n\n\n\nValidationModule\n\nValidationModule\n\nCoreModule -->\n\nValidationModule->CoreModule\n\n\n\n\n\nLoggerModule \n\nLoggerModule \n\nLoggerModule -->\n\nCoreModule->LoggerModule \n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/core.module.ts\n \n\n\n\n \n Description\n \n \n The core module configures the cross-functional application behaviour by customizing error handling providing and logging.\nOverrides/Configures global APP_INTERCEPTOR, APP_PIPE, APP_GUARD, APP_FILTER\n\n \n\n\n \n \n \n Imports\n \n \n ErrorModule\n \n \n InterceptorModule\n \n \n LoggerModule\n \n \n ValidationModule\n \n \n \n \n Exports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ErrorModule } from './error';\nimport { InterceptorModule } from './interceptor';\nimport { LoggerModule } from './logger';\nimport { ValidationModule } from './validation';\n\n/**\n * The core module configures the cross-functional application behaviour by customizing error handling providing and logging.\n * Overrides/Configures global APP_INTERCEPTOR, APP_PIPE, APP_GUARD, APP_FILTER\n */\n@Module({\n\timports: [LoggerModule, ErrorModule, ValidationModule, InterceptorModule],\n\texports: [LoggerModule],\n})\nexport class CoreModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/County.html":{"url":"classes/County.html","title":"class - County","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n County\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/federal-state.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n antaresKey\n \n \n countyId\n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(county: County)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n county\n \n \n County\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n antaresKey\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n countyId\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IFederalStateProperties {\n\tname: string;\n\tabbreviation: string;\n\tlogoUrl: string;\n\tcounties?: County[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n@Embeddable()\nexport class County {\n\tconstructor(county: County) {\n\t\tthis.name = county.name;\n\t\tthis.countyId = county.countyId;\n\t\tthis.antaresKey = county.antaresKey;\n\t}\n\n\tname: string;\n\n\tcountyId: number;\n\n\tantaresKey: string;\n}\n\n@Entity({ tableName: 'federalstates' })\nexport class FederalState extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\tabbreviation: string;\n\n\t@Property()\n\tlogoUrl: string;\n\n\t@Embedded(() => County, { array: true, nullable: true })\n\tcounties?: County[];\n\n\tconstructor(props: IFederalStateProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.abbreviation = props.abbreviation;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.updatedAt = props.updatedAt;\n\t\tthis.createdAt = props.createdAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Course.html":{"url":"entities/Course.html","title":"entity - Course","body":"\n \n\n\n\n\n\n\n\n Entities\n Course\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/course.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n color\n \n \n \n Optional\n copyingSince\n \n \n \n courseGroups\n \n \n \n description\n \n \n \n Optional\n features\n \n \n \n name\n \n \n \n \n school\n \n \n \n \n Optional\n shareToken\n \n \n \n Optional\n startDate\n \n \n \n \n students\n \n \n \n \n substitutionTeachers\n \n \n \n \n teachers\n \n \n \n \n Optional\n untilDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n color\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : DEFAULT.color\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:71\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:81\n \n \n\n\n \n \n \n \n \n \n \n \n \n courseGroups\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @OneToMany('CourseGroup', 'course', {orphanRemoval: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:67\n \n \n\n\n \n \n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : DEFAULT.description\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n features\n \n \n \n \n \n \n Type : CourseFeatures[]\n\n \n \n \n \n Decorators : \n \n \n @Enum({nullable: true, array: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:88\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : DEFAULT.name\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne(undefined, {fieldName: 'schoolId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n shareToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Unique({options: undefined})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:85\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n startDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:74\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n students\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('User', undefined, {fieldName: 'userIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n substitutionTeachers\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('User', undefined, {fieldName: 'substitutionIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:64\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n teachers\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('User', undefined, {fieldName: 'teacherIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n untilDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Index()@Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:78\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Enum, Index, ManyToMany, ManyToOne, OneToMany, Property, Unique } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common/exceptions/internal-server-error.exception';\nimport { IEntityWithSchool, ILearnroom } from '@shared/domain/interface';\nimport { EntityId, LearnroomMetadata, LearnroomTypes } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport type { ILessonParent } from './lesson.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { ITaskParent } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ICourseProperties {\n\tname?: string;\n\tdescription?: string;\n\tschool: SchoolEntity;\n\tstudents?: User[];\n\tteachers?: User[];\n\tsubstitutionTeachers?: User[];\n\t// TODO: color format\n\tcolor?: string;\n\tstartDate?: Date;\n\tuntilDate?: Date;\n\tcopyingSince?: Date;\n\tfeatures?: CourseFeatures[];\n}\n\n// that is really really shit default handling :D constructor, getter, js default, em default...what the hell\n// i hope it can cleanup with adding schema instant of I...Properties.\nconst DEFAULT = {\n\tcolor: '#ACACAC',\n\tname: 'Kurse',\n\tdescription: '',\n};\n\nconst enum CourseFeatures {\n\tVIDEOCONFERENCE = 'videoconference',\n}\n\n@Entity({ tableName: 'courses' })\nexport class Course\n\textends BaseEntityWithTimestamps\n\timplements ILearnroom, IEntityWithSchool, ITaskParent, ILessonParent\n{\n\t@Property()\n\tname: string = DEFAULT.name;\n\n\t@Property()\n\tdescription: string = DEFAULT.description;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'userIds' })\n\tstudents = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'teacherIds' })\n\tteachers = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'substitutionIds' })\n\tsubstitutionTeachers = new Collection(this);\n\n\t@OneToMany('CourseGroup', 'course', { orphanRemoval: true })\n\tcourseGroups = new Collection(this);\n\n\t// TODO: string color format\n\t@Property()\n\tcolor: string = DEFAULT.color;\n\n\t@Property({ nullable: true })\n\tstartDate?: Date;\n\n\t@Index()\n\t@Property({ nullable: true })\n\tuntilDate?: Date;\n\n\t@Property({ nullable: true })\n\tcopyingSince?: Date;\n\n\t@Property({ nullable: true })\n\t@Unique({ options: { sparse: true } })\n\tshareToken?: string;\n\n\t@Enum({ nullable: true, array: true })\n\tfeatures?: CourseFeatures[];\n\n\tconstructor(props: ICourseProperties) {\n\t\tsuper();\n\t\tif (props.name) this.name = props.name;\n\t\tif (props.description) this.description = props.description;\n\t\tthis.school = props.school;\n\t\tthis.students.set(props.students || []);\n\t\tthis.teachers.set(props.teachers || []);\n\t\tthis.substitutionTeachers.set(props.substitutionTeachers || []);\n\t\tif (props.color) this.color = props.color;\n\t\tif (props.untilDate) this.untilDate = props.untilDate;\n\t\tif (props.startDate) this.startDate = props.startDate;\n\t\tif (props.copyingSince) this.copyingSince = props.copyingSince;\n\t\tif (props.features) this.features = props.features;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = this.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = this.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = this.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate extractIds(users: Collection): EntityId[] {\n\t\tif (!users) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t`Students, teachers or stubstitution is undefined. The course needs to be populated`\n\t\t\t);\n\t\t}\n\n\t\tconst objectIds = users.getIdentifiers('_id');\n\t\tconst ids = objectIds.map((id): string => id.toString());\n\n\t\treturn ids;\n\t}\n\n\tpublic isUserSubstitutionTeacher(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.substitutionTeachers.contains(user);\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic getCourseGroupItems(): CourseGroup[] {\n\t\tif (!this.courseGroups.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Courses trying to access their course groups that are not loaded.');\n\t\t}\n\t\tconst courseGroups = this.courseGroups.getItems();\n\n\t\treturn courseGroups;\n\t}\n\n\tgetShortTitle(): string {\n\t\tif (this.name.length === 1) {\n\t\t\treturn this.name;\n\t\t}\n\t\tconst [firstChar, secondChar] = [...this.name];\n\t\tconst pattern = /\\p{Extended_Pictographic}/u;\n\t\tif (pattern.test(firstChar)) {\n\t\t\treturn firstChar;\n\t\t}\n\t\treturn firstChar + secondChar;\n\t}\n\n\tpublic getMetadata(): LearnroomMetadata {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\ttype: LearnroomTypes.Course,\n\t\t\ttitle: this.name,\n\t\t\tshortTitle: this.getShortTitle(),\n\t\t\tdisplayColor: this.color,\n\t\t\tuntilDate: this.untilDate,\n\t\t\tstartDate: this.startDate,\n\t\t\tcopyingSince: this.copyingSince,\n\t\t};\n\t}\n\n\tpublic isFinished(): boolean {\n\t\tif (!this.untilDate) {\n\t\t\treturn false;\n\t\t}\n\t\tconst isFinished = this.untilDate u.id === userId);\n\t}\n\n\tprivate removeTeacher(userId: EntityId): void {\n\t\tthis.teachers.remove((u) => u.id === userId);\n\t}\n\n\tprivate removeSubstitutionTeacher(userId: EntityId): void {\n\t\tthis.substitutionTeachers.remove((u) => u.id === userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/CourseController.html":{"url":"controllers/CourseController.html","title":"controller - CourseController","body":"\n \n\n\n\n\n\n\n Controllers\n CourseController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/course.controller.ts\n \n\n \n Prefix\n \n \n courses\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n Async\n findForUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n \n \n \n \n exportCourse(currentUser: ICurrentUser, urlParams: CourseUrlParams, queryParams: CourseQueryParams, response: Response)\n \n \n\n \n \n Decorators : \n \n @Get(':courseId/export')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/course.controller.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n CourseUrlParams\n \n\n \n No\n \n\n\n \n \n queryParams\n \n CourseQueryParams\n \n\n \n No\n \n\n\n \n \n response\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findForUser\n \n \n \n \n \n \n \n findForUser(currentUser: ICurrentUser, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/course.controller.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, NotFoundException, Param, Query, Res, StreamableFile } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { PaginationParams } from '@shared/controller/';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Response } from 'express';\nimport { ConfigService } from '@nestjs/config';\nimport { CourseUc } from '../uc/course.uc';\nimport { CourseExportUc } from '../uc/course-export.uc';\nimport { CourseMetadataListResponse, CourseUrlParams, CourseQueryParams } from './dto';\nimport { CourseMapper } from '../mapper/course.mapper';\n\n@ApiTags('Courses')\n@Authenticate('jwt')\n@Controller('courses')\nexport class CourseController {\n\tconstructor(\n\t\tprivate readonly courseUc: CourseUc,\n\t\tprivate readonly courseExportUc: CourseExportUc,\n\t\tprivate readonly configService: ConfigService\n\t) {}\n\n\t@Get()\n\tasync findForUser(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\tconst [courses, total] = await this.courseUc.findAllByUser(currentUser.userId, pagination);\n\t\tconst courseResponses = courses.map((course) => CourseMapper.mapToMetadataResponse(course));\n\t\tconst { skip, limit } = pagination;\n\n\t\tconst result = new CourseMetadataListResponse(courseResponses, total, skip, limit);\n\t\treturn result;\n\t}\n\n\t@Get(':courseId/export')\n\tasync exportCourse(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: CourseUrlParams,\n\t\t@Query() queryParams: CourseQueryParams,\n\t\t@Res({ passthrough: true }) response: Response\n\t): Promise {\n\t\tif (!this.configService.get('FEATURE_IMSCC_COURSE_EXPORT_ENABLED')) throw new NotFoundException();\n\t\tconst result = await this.courseExportUc.exportCourse(urlParams.courseId, currentUser.userId, queryParams.version);\n\t\tresponse.set({\n\t\t\t'Content-Type': 'application/zip',\n\t\t\t'Content-Disposition': 'attachment;',\n\t\t});\n\t\treturn new StreamableFile(result);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseCopyService.html":{"url":"injectables/CourseCopyService.html","title":"injectable - CourseCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseCopyService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/course-copy.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyCourse\n \n \n Private\n Async\n copyCourseEntity\n \n \n Private\n deriveCourseStatus\n \n \n Private\n Async\n finishCourseCopying\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRepo: CourseRepo, boardRepo: BoardRepo, roomsService: RoomsService, boardCopyService: BoardCopyService, copyHelperService: CopyHelperService, userRepo: UserRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n boardRepo\n \n \n BoardRepo\n \n \n \n No\n \n \n \n \n roomsService\n \n \n RoomsService\n \n \n \n No\n \n \n \n \n boardCopyService\n \n \n BoardCopyService\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyCourse\n \n \n \n \n \n \n \n copyCourse(undefined: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyCourseEntity\n \n \n \n \n \n \n \n copyCourseEntity(params: CourseCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n CourseCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deriveCourseStatus\n \n \n \n \n \n \n \n deriveCourseStatus(originalCourse: Course, courseCopy: Course, boardStatus: CopyStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalCourse\n \n Course\n \n\n \n No\n \n\n\n \n \n courseCopy\n \n Course\n \n\n \n No\n \n\n\n \n \n boardStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n finishCourseCopying\n \n \n \n \n \n \n \n finishCourseCopying(courseCopy: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseCopy\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, EntityId, User } from '@shared/domain';\nimport { BoardRepo, CourseRepo, UserRepo } from '@shared/repo';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@src/modules/copy-helper';\nimport { BoardCopyService } from './board-copy.service';\nimport { RoomsService } from './rooms.service';\n\ntype CourseCopyParams = {\n\toriginalCourse: Course;\n\tuser: User;\n\tcopyName?: string;\n};\n\n@Injectable()\nexport class CourseCopyService {\n\tconstructor(\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly boardRepo: BoardRepo,\n\t\tprivate readonly roomsService: RoomsService,\n\t\tprivate readonly boardCopyService: BoardCopyService,\n\t\tprivate readonly copyHelperService: CopyHelperService,\n\t\tprivate readonly userRepo: UserRepo\n\t) {}\n\n\tasync copyCourse({\n\t\tuserId,\n\t\tcourseId,\n\t\tnewName,\n\t}: {\n\t\tuserId: EntityId;\n\t\tcourseId: EntityId;\n\t\tnewName?: string | undefined;\n\t}): Promise {\n\t\tconst user: User = await this.userRepo.findById(userId, true);\n\n\t\t// fetch original course and board\n\t\tconst originalCourse = await this.courseRepo.findById(courseId);\n\t\tlet originalBoard = await this.boardRepo.findByCourseId(courseId);\n\t\toriginalBoard = await this.roomsService.updateBoard(originalBoard, courseId, userId);\n\n\t\t// handle potential name conflict\n\t\tconst [existingCourses] = await this.courseRepo.findAllByUserId(userId);\n\t\tconst existingNames = existingCourses.map((course: Course) => course.name);\n\t\tconst copyName = this.copyHelperService.deriveCopyName(newName || originalCourse.name, existingNames);\n\n\t\t// copy course and board\n\t\tconst courseCopy = await this.copyCourseEntity({ user, originalCourse, copyName });\n\t\tconst boardStatus = await this.boardCopyService.copyBoard({ originalBoard, destinationCourse: courseCopy, user });\n\t\tconst finishedCourseCopy = await this.finishCourseCopying(courseCopy);\n\n\t\tconst courseStatus = this.deriveCourseStatus(originalCourse, finishedCourseCopy, boardStatus);\n\n\t\treturn courseStatus;\n\t}\n\n\tprivate async copyCourseEntity(params: CourseCopyParams): Promise {\n\t\tconst { originalCourse, user, copyName } = params;\n\t\tconst courseCopy = new Course({\n\t\t\tschool: user.school,\n\t\t\tname: copyName,\n\t\t\tcolor: originalCourse.color,\n\t\t\tteachers: [user],\n\t\t\tstartDate: user.school.schoolYear?.startDate,\n\t\t\tuntilDate: user.school.schoolYear?.endDate,\n\t\t\tcopyingSince: new Date(),\n\t\t});\n\n\t\tawait this.courseRepo.createCourse(courseCopy);\n\t\treturn courseCopy;\n\t}\n\n\tprivate async finishCourseCopying(courseCopy: Course) {\n\t\tdelete courseCopy.copyingSince;\n\t\tawait this.courseRepo.save(courseCopy);\n\t\treturn courseCopy;\n\t}\n\n\tprivate deriveCourseStatus(originalCourse: Course, courseCopy: Course, boardStatus: CopyStatus): CopyStatus {\n\t\tconst elements = [\n\t\t\t{\n\t\t\t\ttype: CopyElementType.METADATA,\n\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.USER_GROUP,\n\t\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.LTITOOL_GROUP,\n\t\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.TIME_GROUP,\n\t\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t\t},\n\t\t\tboardStatus,\n\t\t];\n\n\t\tconst courseGroupsExist = originalCourse.getCourseGroupItems().length > 0;\n\t\tif (courseGroupsExist) {\n\t\t\telements.push({ type: CopyElementType.COURSEGROUP_GROUP, status: CopyStatusEnum.NOT_IMPLEMENTED });\n\t\t}\n\n\t\tconst status = {\n\t\t\ttitle: courseCopy.name,\n\t\t\ttype: CopyElementType.COURSE,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\tcopyEntity: courseCopy,\n\t\t\toriginalEntity: originalCourse,\n\t\t\telements,\n\t\t};\n\t\treturn status;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseCopyUC.html":{"url":"injectables/CourseCopyUC.html","title":"injectable - CourseCopyUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseCopyUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/course-copy.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkFeatureEnabled\n \n \n Async\n copyCourse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorization: AuthorizationService, courseCopyService: CourseCopyService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course-copy.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorization\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n courseCopyService\n \n \n CourseCopyService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkFeatureEnabled\n \n \n \n \n \n \n \n checkFeatureEnabled()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/course-copy.uc.ts:28\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n copyCourse\n \n \n \n \n \n \n \n copyCourse(userId: EntityId, courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/course-copy.uc.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { Action, AuthorizableReferenceType, AuthorizationService } from '@src/modules/authorization';\nimport { CopyStatus } from '@src/modules/copy-helper';\nimport { CourseCopyService } from '../service';\n\n@Injectable()\nexport class CourseCopyUC {\n\tconstructor(\n\t\tprivate readonly authorization: AuthorizationService,\n\t\tprivate readonly courseCopyService: CourseCopyService\n\t) {}\n\n\tasync copyCourse(userId: EntityId, courseId: EntityId): Promise {\n\t\tthis.checkFeatureEnabled();\n\n\t\tawait this.authorization.checkPermissionByReferences(userId, AuthorizableReferenceType.Course, courseId, {\n\t\t\taction: Action.write,\n\t\t\trequiredPermissions: [Permission.COURSE_CREATE],\n\t\t});\n\n\t\tconst result = await this.courseCopyService.copyCourse({ userId, courseId });\n\n\t\treturn result;\n\t}\n\n\tprivate checkFeatureEnabled() {\n\t\tconst enabled = Configuration.get('FEATURE_COPY_SERVICE_ENABLED') as boolean;\n\t\tif (!enabled) {\n\t\t\tthrow new InternalServerErrorException('Copy Feature not enabled');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseExportUc.html":{"url":"injectables/CourseExportUc.html","title":"injectable - CourseExportUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseExportUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/course-export.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseExportService: CommonCartridgeExportService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course-export.uc.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseExportService\n \n \n CommonCartridgeExportService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n \n \n \n \n exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/course-export.uc.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { Action, AuthorizableReferenceType, AuthorizationService } from '@src/modules/authorization';\nimport { CommonCartridgeVersion } from '../common-cartridge';\nimport { CommonCartridgeExportService } from '../service/common-cartridge-export.service';\n\n@Injectable()\nexport class CourseExportUc {\n\tconstructor(\n\t\tprivate readonly courseExportService: CommonCartridgeExportService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tasync exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion): Promise {\n\t\tawait this.authorizationService.checkPermissionByReferences(userId, AuthorizableReferenceType.Course, courseId, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [Permission.COURSE_EDIT],\n\t\t});\n\t\treturn this.courseExportService.exportCourse(courseId, userId, version);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseFactory.html":{"url":"classes/CourseFactory.html","title":"class - CourseFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/course.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n isFinished\n \n \n isOpen\n \n \n studentsWithId\n \n \n teachersWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n isFinished\n \n \n \n \n \n \nisFinished()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/course.factory.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n isOpen\n \n \n \n \n \n \nisOpen()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/course.factory.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n studentsWithId\n \n \n \n \n \n \nstudentsWithId(numberOfStudents: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/course.factory.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n numberOfStudents\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n teachersWithId\n \n \n \n \n \n \nteachersWithId(numberOfTeachers: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/course.factory.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n numberOfTeachers\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { DeepPartial } from 'fishery';\n\nimport { Course, ICourseProperties } from '@shared/domain';\n\nimport { schoolFactory } from './school.factory';\nimport { BaseFactory } from './base.factory';\nimport { userFactory } from './user.factory';\n\nconst oneDay = 24 * 60 * 60 * 1000;\n\nclass CourseFactory extends BaseFactory {\n\tisFinished(): this {\n\t\tconst untilDate = new Date(Date.now() - oneDay);\n\t\tconst params: DeepPartial = { untilDate };\n\n\t\treturn this.params(params);\n\t}\n\n\tisOpen(): this {\n\t\tconst untilDate = new Date(Date.now() + oneDay);\n\t\tconst params: DeepPartial = { untilDate };\n\n\t\treturn this.params(params);\n\t}\n\n\tstudentsWithId(numberOfStudents: number): this {\n\t\tconst students = userFactory.buildListWithId(numberOfStudents);\n\t\tconst params: DeepPartial = { students };\n\n\t\treturn this.params(params);\n\t}\n\n\tteachersWithId(numberOfTeachers: number): this {\n\t\tconst teachers = userFactory.buildListWithId(numberOfTeachers);\n\t\tconst params: DeepPartial = { teachers };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const courseFactory = CourseFactory.define(Course, ({ sequence }) => {\n\treturn {\n\t\tname: `course #${sequence}`,\n\t\tdescription: `course #${sequence} description`,\n\t\tcolor: '#FFFFFF',\n\t\tschool: schoolFactory.build(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/CourseGroup.html":{"url":"entities/CourseGroup.html","title":"entity - CourseGroup","body":"\n \n\n\n\n\n\n\n\n Entities\n CourseGroup\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/coursegroup.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n course\n \n \n \n name\n \n \n \n \n school\n \n \n \n \n students\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n course\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('Course', {fieldName: 'courseId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/coursegroup.entity.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/coursegroup.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'schoolId'})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/coursegroup.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n students\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('User', undefined, {fieldName: 'userIds'})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/coursegroup.entity.ts:25\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property } from '@mikro-orm/core';\nimport { IEntityWithSchool } from '../interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { ILessonParent } from './lesson.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { ITaskParent } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ICourseGroupProperties {\n\tname: string;\n\tcourse: Course;\n\tstudents?: User[];\n}\n\n@Entity({ tableName: 'coursegroups' })\n@Index({ properties: ['school', 'course'] })\nexport class CourseGroup extends BaseEntityWithTimestamps implements IEntityWithSchool, ITaskParent, ILessonParent {\n\t@Property()\n\tname: string;\n\n\t@ManyToMany('User', undefined, { fieldName: 'userIds' })\n\t@Index()\n\tstudents = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\t@Index()\n\tschool: SchoolEntity;\n\n\tconstructor(props: ICourseGroupProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.course = props.course;\n\t\tthis.school = props.course.school;\n\t\tif (props.students) this.students.set(props.students);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tlet studentIds: EntityId[] = [];\n\n\t\t// A not existing course group can be referenced in a submission.\n\t\t// Therefore we need to handle this case instead of returning an error here.\n\t\tif (this.students) {\n\t\t\tconst studentObjectIds = this.students.getIdentifiers('_id');\n\t\t\tstudentIds = studentObjectIds.map((id): string => id.toString());\n\t\t}\n\n\t\treturn studentIds;\n\t}\n\n\tpublic removeStudent(userId: EntityId): void {\n\t\tthis.students.remove((u) => u.id === userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseGroupFactory.html":{"url":"classes/CourseGroupFactory.html","title":"class - CourseGroupFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseGroupFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/coursegroup.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n studentsWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n studentsWithId\n \n \n \n \n \n \nstudentsWithId(numberOfStudents: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/coursegroup.factory.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n numberOfStudents\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CourseGroup, ICourseGroupProperties } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport { courseFactory } from './course.factory';\nimport { BaseFactory } from './base.factory';\nimport { userFactory } from './user.factory';\n\nclass CourseGroupFactory extends BaseFactory {\n\tstudentsWithId(numberOfStudents: number): this {\n\t\tconst students = userFactory.buildListWithId(numberOfStudents);\n\t\tconst params: DeepPartial = { students };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const courseGroupFactory = CourseGroupFactory.define(CourseGroup, ({ sequence }) => {\n\treturn {\n\t\tname: `courseGroup #${sequence}`,\n\t\tcourse: courseFactory.build(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseGroupRepo.html":{"url":"injectables/CourseGroupRepo.html","title":"injectable - CourseGroupRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseGroupRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findByCourseIds\n \n \n Async\n findById\n \n \n Async\n findByUserId\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findByCourseIds\n \n \n \n \n \n \n \n findByCourseIds(courseIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: string)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:13\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\n\nimport { Counted, EntityId, CourseGroup } from '@shared/domain';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class CourseGroupRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn CourseGroup;\n\t}\n\n\tasync findById(id: string): Promise {\n\t\tconst courseGroup = await super.findById(id);\n\t\tawait this._em.populate(courseGroup, ['course']);\n\t\treturn courseGroup;\n\t}\n\n\tasync findByCourseIds(courseIds: EntityId[]): Promise> {\n\t\tconst [courseGroups, count] = await this._em.findAndCount(CourseGroup, {\n\t\t\tcourse: { $in: courseIds },\n\t\t});\n\t\treturn [courseGroups, count];\n\t}\n\n\tasync findByUserId(userId: EntityId): Promise> {\n\t\tconst [courseGroups, count] = await this._em.findAndCount(CourseGroup, {\n\t\t\tstudents: new ObjectId(userId),\n\t\t});\n\t\treturn [courseGroups, count];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseGroupRule.html":{"url":"injectables/CourseGroupRule.html","title":"injectable - CourseGroupRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseGroupRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/course-group.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper, courseRule: CourseRule)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/course-group.rule.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n courseRule\n \n \n CourseRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: CourseGroup, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/course-group.rule.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n CourseGroup\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: CourseGroup)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/course-group.rule.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n CourseGroup\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CourseGroup, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { CourseRule } from './course.rule';\n\n@Injectable()\nexport class CourseGroupRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper, private readonly courseRule: CourseRule) {}\n\n\tpublic isApplicable(user: User, entity: CourseGroup): boolean {\n\t\tconst isMatched = entity instanceof CourseGroup;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: CourseGroup, context: AuthorizationContext): boolean {\n\t\tconst { requiredPermissions } = context;\n\n\t\tconst hasAllPermissions = this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n\t\tconst hasPermission =\n\t\t\tthis.authorizationHelper.hasAccessToEntity(user, entity, ['students']) ||\n\t\t\tthis.courseRule.hasPermission(user, entity.course, { action: Action.write, requiredPermissions: [] });\n\n\t\treturn hasAllPermissions && hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseGroupService.html":{"url":"injectables/CourseGroupService.html","title":"injectable - CourseGroupService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseGroupService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/coursegroup.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromCourseGroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(repo: CourseGroupRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/coursegroup.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n repo\n \n \n CourseGroupRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromCourseGroup\n \n \n \n \n \n \n \n deleteUserDataFromCourseGroup(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/coursegroup.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { CourseGroupRepo } from '@shared/repo';\n\n@Injectable()\nexport class CourseGroupService {\n\tconstructor(private readonly repo: CourseGroupRepo) {}\n\n\tpublic async deleteUserDataFromCourseGroup(userId: EntityId): Promise {\n\t\tconst [courseGroups, count] = await this.repo.findByUserId(userId);\n\n\t\tcourseGroups.forEach((courseGroup) => courseGroup.removeStudent(userId));\n\n\t\tawait this.repo.save(courseGroups);\n\n\t\treturn count;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseMapper.html":{"url":"classes/CourseMapper.html","title":"class - CourseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/mapper/course.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToMetadataResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToMetadataResponse\n \n \n \n \n \n \n \n mapToMetadataResponse(course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/course.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseMetadataResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Course } from '@shared/domain';\nimport { CourseMetadataResponse } from '../controller/dto';\n\nexport class CourseMapper {\n\tstatic mapToMetadataResponse(course: Course): CourseMetadataResponse {\n\t\tconst courseMetadata = course.getMetadata();\n\t\tconst dto = new CourseMetadataResponse(\n\t\t\tcourseMetadata.id,\n\t\t\tcourseMetadata.title,\n\t\t\tcourseMetadata.shortTitle,\n\t\t\tcourseMetadata.displayColor,\n\t\t\tcourseMetadata.startDate,\n\t\t\tcourseMetadata.untilDate,\n\t\t\tcourseMetadata.copyingSince\n\t\t);\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseMetadataListResponse.html":{"url":"classes/CourseMetadataListResponse.html","title":"class - CourseMetadataListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseMetadataListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: CourseMetadataResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:61\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n CourseMetadataResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : CourseMetadataResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:68\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\n\nexport class CourseMetadataResponse {\n\tconstructor(\n\t\tid: EntityId,\n\t\ttitle: string,\n\t\tshortTitle: string,\n\t\tdisplayColor: string,\n\t\tstartDate?: Date,\n\t\tuntilDate?: Date,\n\t\tcopyingSince?: Date\n\t) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.startDate = startDate;\n\t\tthis.untilDate = untilDate;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Start date of the course',\n\t})\n\tstartDate?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'End date of the course. After this the course counts as archived',\n\t})\n\tuntilDate?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class CourseMetadataListResponse extends PaginationResponse {\n\tconstructor(data: CourseMetadataResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CourseMetadataResponse] })\n\tdata: CourseMetadataResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseMetadataResponse.html":{"url":"classes/CourseMetadataResponse.html","title":"class - CourseMetadataResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseMetadataResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n displayColor\n \n \n \n id\n \n \n \n shortTitle\n \n \n \n Optional\n startDate\n \n \n \n title\n \n \n \n Optional\n untilDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(id: EntityId, title: string, shortTitle: string, displayColor: string, startDate?: Date, untilDate?: Date, copyingSince?: Date)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n \n EntityId\n \n \n \n No\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n shortTitle\n \n \n string\n \n \n \n No\n \n \n \n \n displayColor\n \n \n string\n \n \n \n No\n \n \n \n \n startDate\n \n \n Date\n \n \n \n Yes\n \n \n \n \n untilDate\n \n \n Date\n \n \n \n Yes\n \n \n \n \n copyingSince\n \n \n Date\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Start of the copying process if it is still ongoing - otherwise property is not set.'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Color of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the Grid element', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n shortTitle\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Short title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n startDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Start date of the course'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n untilDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'End date of the course. After this the course counts as archived'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:53\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\n\nexport class CourseMetadataResponse {\n\tconstructor(\n\t\tid: EntityId,\n\t\ttitle: string,\n\t\tshortTitle: string,\n\t\tdisplayColor: string,\n\t\tstartDate?: Date,\n\t\tuntilDate?: Date,\n\t\tcopyingSince?: Date\n\t) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.startDate = startDate;\n\t\tthis.untilDate = untilDate;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Start date of the course',\n\t})\n\tstartDate?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'End date of the course. After this the course counts as archived',\n\t})\n\tuntilDate?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class CourseMetadataListResponse extends PaginationResponse {\n\tconstructor(data: CourseMetadataResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CourseMetadataResponse] })\n\tdata: CourseMetadataResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/CourseNews.html":{"url":"entities/CourseNews.html","title":"entity - CourseNews","body":"\n \n\n\n\n\n\n\n\n Entities\n CourseNews\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('Course', {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:116\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseQueryParams.html":{"url":"classes/CourseQueryParams.html","title":"class - CourseQueryParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseQueryParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/course.query.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : CommonCartridgeVersion\n\n \n \n \n \n Decorators : \n \n \n @IsString()@Matches(undefined)@ApiProperty({description: 'The version of CC export', required: true, nullable: false, enum: CommonCartridgeVersion})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course.query.params.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsString, Matches } from 'class-validator';\nimport { CommonCartridgeVersion } from '../../common-cartridge';\n\nexport class CourseQueryParams {\n\t@IsString()\n\t@Matches(Object.values(CommonCartridgeVersion).join('|'))\n\t@ApiProperty({\n\t\tdescription: 'The version of CC export',\n\t\trequired: true,\n\t\tnullable: false,\n\t\tenum: CommonCartridgeVersion,\n\t})\n\tversion!: CommonCartridgeVersion;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseRepo.html":{"url":"injectables/CourseRepo.html","title":"injectable - CourseRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/course/course.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createCourse\n \n \n Async\n findAllByUserId\n \n \n Async\n findAllForTeacher\n \n \n Async\n findAllForTeacherOrSubstituteTeacher\n \n \n Async\n findById\n \n \n Async\n findOne\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createCourse\n \n \n \n \n \n \n \n createCourse(course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByUserId\n \n \n \n \n \n \n \n findAllByUserId(userId: EntityId, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllForTeacher\n \n \n \n \n \n \n \n findAllForTeacher(userId: EntityId, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllForTeacherOrSubstituteTeacher\n \n \n \n \n \n \n \n findAllForTeacherOrSubstituteTeacher(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:120\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, populate)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n populate\n \n \n\n \n No\n \n\n \n true\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOne\n \n \n \n \n \n \n \n findOne(courseId: EntityId, userId?: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:55\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\n\nimport { Counted, Course, EntityId, IFindOptions } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\nimport { Scope } from '../scope';\n\nclass CourseScope extends Scope {\n\tforAllGroupTypes(userId: EntityId): CourseScope {\n\t\tconst isStudent = { students: userId };\n\t\tconst isTeacher = { teachers: userId };\n\t\tconst isSubstitutionTeacher = { substitutionTeachers: userId };\n\n\t\tif (userId) {\n\t\t\tthis.addQuery({ $or: [isStudent, isTeacher, isSubstitutionTeacher] });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tforTeacherOrSubstituteTeacher(userId: EntityId): CourseScope {\n\t\tconst isTeacher = { teachers: userId };\n\t\tconst isSubstitutionTeacher = { substitutionTeachers: userId };\n\n\t\tif (userId) {\n\t\t\tthis.addQuery({ $or: [isTeacher, isSubstitutionTeacher] });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tforTeacher(userId: EntityId): CourseScope {\n\t\tthis.addQuery({ teachers: userId });\n\t\treturn this;\n\t}\n\n\tforActiveCourses(): CourseScope {\n\t\tconst now = new Date();\n\t\tconst noUntilDate = { untilDate: { $exists: false } } as FilterQuery;\n\t\tconst untilDateInFuture = { untilDate: { $gte: now } };\n\n\t\tthis.addQuery({ $or: [noUntilDate, untilDateInFuture] });\n\n\t\treturn this;\n\t}\n\n\tforCourseId(courseId: EntityId): CourseScope {\n\t\tthis.addQuery({ id: courseId });\n\t\treturn this;\n\t}\n}\n\n@Injectable()\nexport class CourseRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Course;\n\t}\n\n\tasync createCourse(course: Course): Promise {\n\t\treturn this.save(this.create(course));\n\t}\n\n\tasync findById(id: EntityId, populate = true): Promise {\n\t\tconst course = await super.findById(id);\n\t\tif (populate) {\n\t\t\tawait this._em.populate(course, ['courseGroups', 'teachers']);\n\t\t}\n\t\treturn course;\n\t}\n\n\tasync findAllByUserId(\n\t\tuserId: EntityId,\n\t\tfilters?: { onlyActiveCourses?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forAllGroupTypes(userId);\n\n\t\tif (filters?.onlyActiveCourses) {\n\t\t\tscope.forActiveCourses();\n\t\t}\n\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query, queryOptions);\n\n\t\treturn [courses, count];\n\t}\n\n\tasync findAllForTeacher(\n\t\tuserId: EntityId,\n\t\tfilters?: { onlyActiveCourses?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forTeacher(userId);\n\n\t\tif (filters?.onlyActiveCourses) {\n\t\t\tscope.forActiveCourses();\n\t\t}\n\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query, queryOptions);\n\n\t\treturn [courses, count];\n\t}\n\n\t// not tested in repo.integration.spec\n\tasync findAllForTeacherOrSubstituteTeacher(userId: EntityId): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forTeacherOrSubstituteTeacher(userId);\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query);\n\n\t\treturn [courses, count];\n\t}\n\n\tasync findOne(courseId: EntityId, userId?: EntityId): Promise {\n\t\tconst scope = new CourseScope();\n\t\tscope.forCourseId(courseId);\n\t\tif (userId) scope.forAllGroupTypes(userId);\n\n\t\tconst course = await this._em.findOneOrFail(Course, scope.query);\n\n\t\treturn course;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseRule.html":{"url":"injectables/CourseRule.html","title":"injectable - CourseRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/course.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/course.rule.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: Course, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/course.rule.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Course\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: Course)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/course.rule.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\n\n@Injectable()\nexport class CourseRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: Course): boolean {\n\t\tconst isMatched = entity instanceof Course;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: Course, context: AuthorizationContext): boolean {\n\t\tconst { action, requiredPermissions } = context;\n\t\tconst hasPermission =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, requiredPermissions) &&\n\t\t\tthis.authorizationHelper.hasAccessToEntity(\n\t\t\t\tuser,\n\t\t\t\tentity,\n\t\t\t\taction === Action.read ? ['teachers', 'substitutionTeachers', 'students'] : ['teachers', 'substitutionTeachers']\n\t\t\t);\n\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseScope.html":{"url":"classes/CourseScope.html","title":"class - CourseScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/course/course.repo.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n forActiveCourses\n \n \n forAllGroupTypes\n \n \n forCourseId\n \n \n forTeacher\n \n \n forTeacherOrSubstituteTeacher\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n forActiveCourses\n \n \n \n \n \n \nforActiveCourses()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:37\n \n \n\n\n \n \n\n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n forAllGroupTypes\n \n \n \n \n \n \nforAllGroupTypes(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n forCourseId\n \n \n \n \n \n \nforCourseId(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n forTeacher\n \n \n \n \n \n \nforTeacher(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n forTeacherOrSubstituteTeacher\n \n \n \n \n \n \nforTeacherOrSubstituteTeacher(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\n\nimport { Counted, Course, EntityId, IFindOptions } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\nimport { Scope } from '../scope';\n\nclass CourseScope extends Scope {\n\tforAllGroupTypes(userId: EntityId): CourseScope {\n\t\tconst isStudent = { students: userId };\n\t\tconst isTeacher = { teachers: userId };\n\t\tconst isSubstitutionTeacher = { substitutionTeachers: userId };\n\n\t\tif (userId) {\n\t\t\tthis.addQuery({ $or: [isStudent, isTeacher, isSubstitutionTeacher] });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tforTeacherOrSubstituteTeacher(userId: EntityId): CourseScope {\n\t\tconst isTeacher = { teachers: userId };\n\t\tconst isSubstitutionTeacher = { substitutionTeachers: userId };\n\n\t\tif (userId) {\n\t\t\tthis.addQuery({ $or: [isTeacher, isSubstitutionTeacher] });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tforTeacher(userId: EntityId): CourseScope {\n\t\tthis.addQuery({ teachers: userId });\n\t\treturn this;\n\t}\n\n\tforActiveCourses(): CourseScope {\n\t\tconst now = new Date();\n\t\tconst noUntilDate = { untilDate: { $exists: false } } as FilterQuery;\n\t\tconst untilDateInFuture = { untilDate: { $gte: now } };\n\n\t\tthis.addQuery({ $or: [noUntilDate, untilDateInFuture] });\n\n\t\treturn this;\n\t}\n\n\tforCourseId(courseId: EntityId): CourseScope {\n\t\tthis.addQuery({ id: courseId });\n\t\treturn this;\n\t}\n}\n\n@Injectable()\nexport class CourseRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Course;\n\t}\n\n\tasync createCourse(course: Course): Promise {\n\t\treturn this.save(this.create(course));\n\t}\n\n\tasync findById(id: EntityId, populate = true): Promise {\n\t\tconst course = await super.findById(id);\n\t\tif (populate) {\n\t\t\tawait this._em.populate(course, ['courseGroups', 'teachers']);\n\t\t}\n\t\treturn course;\n\t}\n\n\tasync findAllByUserId(\n\t\tuserId: EntityId,\n\t\tfilters?: { onlyActiveCourses?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forAllGroupTypes(userId);\n\n\t\tif (filters?.onlyActiveCourses) {\n\t\t\tscope.forActiveCourses();\n\t\t}\n\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query, queryOptions);\n\n\t\treturn [courses, count];\n\t}\n\n\tasync findAllForTeacher(\n\t\tuserId: EntityId,\n\t\tfilters?: { onlyActiveCourses?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forTeacher(userId);\n\n\t\tif (filters?.onlyActiveCourses) {\n\t\t\tscope.forActiveCourses();\n\t\t}\n\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query, queryOptions);\n\n\t\treturn [courses, count];\n\t}\n\n\t// not tested in repo.integration.spec\n\tasync findAllForTeacherOrSubstituteTeacher(userId: EntityId): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forTeacherOrSubstituteTeacher(userId);\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query);\n\n\t\treturn [courses, count];\n\t}\n\n\tasync findOne(courseId: EntityId, userId?: EntityId): Promise {\n\t\tconst scope = new CourseScope();\n\t\tscope.forCourseId(courseId);\n\t\tif (userId) scope.forAllGroupTypes(userId);\n\n\t\tconst course = await this._em.findOneOrFail(Course, scope.query);\n\n\t\treturn course;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseService.html":{"url":"injectables/CourseService.html","title":"injectable - CourseService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/course.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromCourse\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(repo: CourseRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/course.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n repo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromCourse\n \n \n \n \n \n \n \n deleteUserDataFromCourse(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course.service.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CourseRepo } from '@shared/repo';\nimport { Course, EntityId } from '@shared/domain';\n\n@Injectable()\nexport class CourseService {\n\tconstructor(private readonly repo: CourseRepo) {}\n\n\tasync findById(courseId: EntityId): Promise {\n\t\treturn this.repo.findById(courseId);\n\t}\n\n\tpublic async deleteUserDataFromCourse(userId: EntityId): Promise {\n\t\tconst [courses, count] = await this.repo.findAllByUserId(userId);\n\n\t\tcourses.forEach((course: Course) => course.removeUser(userId));\n\n\t\tawait this.repo.save(courses);\n\n\t\treturn count;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseUc.html":{"url":"injectables/CourseUc.html","title":"injectable - CourseUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/course.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n findAllByUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRepo: CourseRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n findAllByUser\n \n \n \n \n \n \nfindAllByUser(userId: EntityId, options?: PaginationParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/course.uc.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n options\n \n PaginationParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { PaginationParams } from '@shared/controller/';\nimport { Counted, Course, EntityId, SortOrder } from '@shared/domain';\nimport { CourseRepo } from '@shared/repo';\n\n@Injectable()\nexport class CourseUc {\n\tconstructor(private readonly courseRepo: CourseRepo) {}\n\n\tfindAllByUser(userId: EntityId, options?: PaginationParams): Promise> {\n\t\treturn this.courseRepo.findAllByUserId(userId, {}, { pagination: options, order: { updatedAt: SortOrder.desc } });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseUrlParams.html":{"url":"classes/CourseUrlParams.html","title":"class - CourseUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/course.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n courseId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the course', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class CourseUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the course',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcourseId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CreateCardBodyParams.html":{"url":"classes/CreateCardBodyParams.html","title":"class - CreateCardBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CreateCardBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/create-card.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n requiredEmptyElements\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n requiredEmptyElements\n \n \n \n \n \n \n Type : ContentElementType[]\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ContentElementType, {each: true})@IsOptional()@ApiPropertyOptional({required: false, isArray: true, enum: ContentElementType})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/create-card.body.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { IsEnum, IsOptional } from 'class-validator';\n\nexport class CreateCardBodyParams {\n\t@IsEnum(ContentElementType, { each: true })\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\trequired: false,\n\t\tisArray: true,\n\t\tenum: ContentElementType,\n\t})\n\trequiredEmptyElements?: ContentElementType[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CreateContentElementBodyParams.html":{"url":"classes/CreateContentElementBodyParams.html","title":"class - CreateContentElementBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CreateContentElementBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/create-content-element.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n toPosition\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n toPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsInt()@Min(0)@ApiPropertyOptional({description: 'to bring element to a specific position, default is last position', type: Number, required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/create-content-element.body.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ContentElementType)@ApiProperty({description: 'The type of element', enum: ContentElementType, required: true, nullable: false, enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/create-content-element.body.params.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { IsEnum, IsInt, IsOptional, Min } from 'class-validator';\n\nexport class CreateContentElementBodyParams {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tdescription: 'The type of element',\n\t\tenum: ContentElementType,\n\t\trequired: true,\n\t\tnullable: false,\n\t\tenumName: 'ContentElementType',\n\t})\n\ttype!: ContentElementType;\n\n\t@IsOptional()\n\t@IsInt()\n\t@Min(0)\n\t@ApiPropertyOptional({\n\t\tdescription: 'to bring element to a specific position, default is last position',\n\t\ttype: Number,\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\ttoPosition?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CreateJwtParams.html":{"url":"interfaces/CreateJwtParams.html","title":"interface - CreateJwtParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CreateJwtParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/jwt.test.factory.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n accountId\n \n \n \n Optional\n \n aud\n \n \n \n Optional\n \n external_sub\n \n \n \n Optional\n \n iss\n \n \n \n Optional\n \n privateKey\n \n \n \n Optional\n \n sub\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accountId\n \n \n \n \n \n \n \n \n accountId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n aud\n \n \n \n \n \n \n \n \n aud: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n external_sub\n \n \n \n \n \n \n \n \n external_sub: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n iss\n \n \n \n \n \n \n \n \n iss: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n privateKey\n \n \n \n \n \n \n \n \n privateKey: string | Buffer\n\n \n \n\n\n \n \n Type : string | Buffer\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sub\n \n \n \n \n \n \n \n \n sub: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import jwt from 'jsonwebtoken';\nimport crypto, { KeyPairKeyObjectResult } from 'crypto';\n\nconst keyPair: KeyPairKeyObjectResult = crypto.generateKeyPairSync('rsa', { modulusLength: 4096 });\nconst publicKey: string | Buffer = keyPair.publicKey.export({ type: 'pkcs1', format: 'pem' });\nconst privateKey: string | Buffer = keyPair.privateKey.export({ type: 'pkcs1', format: 'pem' });\n\ninterface CreateJwtParams {\n\tprivateKey?: string | Buffer;\n\tsub?: string;\n\tiss?: string;\n\taud?: string;\n\taccountId?: string;\n\texternal_sub?: string;\n}\n\nexport class JwtTestFactory {\n\tpublic static getPublicKey(): string | Buffer {\n\t\treturn publicKey;\n\t}\n\n\tpublic static createJwt(params?: CreateJwtParams): string {\n\t\tconst validJwt = jwt.sign(\n\t\t\t{\n\t\t\t\tsub: params?.sub ?? 'testUser',\n\t\t\t\tiss: params?.iss ?? 'issuer',\n\t\t\t\taud: params?.aud ?? 'audience',\n\t\t\t\tjti: 'jti',\n\t\t\t\tiat: Date.now(),\n\t\t\t\texp: Date.now() + 100000,\n\t\t\t\taccountId: params?.accountId ?? 'accountId',\n\t\t\t\texternal_sub: params?.external_sub ?? 'externalSub',\n\t\t\t},\n\t\t\tparams?.privateKey ?? privateKey,\n\t\t\t{\n\t\t\t\talgorithm: 'RS256',\n\t\t\t}\n\t\t);\n\t\treturn validJwt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CreateJwtPayload.html":{"url":"interfaces/CreateJwtPayload.html","title":"interface - CreateJwtPayload","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CreateJwtPayload\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/jwt-payload.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accountId\n \n \n \n \n roles\n \n \n \n \n schoolId\n \n \n \n Optional\n \n support\n \n \n \n Optional\n \n systemId\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accountId\n \n \n \n \n \n \n \n \n accountId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n support\n \n \n \n \n \n \n \n \n support: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n \n \n systemId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface CreateJwtPayload {\n\taccountId: string;\n\tuserId: string;\n\tschoolId: string;\n\troles: string[];\n\tsystemId?: string; // without this the user needs to change his PW during first login\n\tsupport?: boolean;\n}\n\nexport interface JwtPayload extends CreateJwtPayload {\n\t/** audience */\n\taud: string;\n\t/** expiration in // TODO\n\t *\n\t */\n\texp: number;\n\tiat: number;\n\t/** issuer */\n\tiss: string;\n\tjti: string;\n\n\t/** // TODO\n\t *\n\t */\n\tsub: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CreateNewsParams.html":{"url":"classes/CreateNewsParams.html","title":"class - CreateNewsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CreateNewsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/create-news.params.ts\n \n\n\n \n Description\n \n \n DTO for creating a news document.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n Optional\n displayAt\n \n \n \n \n targetId\n \n \n \n \n targetModel\n \n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml(InputFormat.RICH_TEXT)@ApiProperty({description: 'Content of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n displayAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'The point in time from when the News entity schould be displayed. Defaults to now so that the news is published'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n targetId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({pattern: '[a-f0-9]{24}', description: 'Specific target id to which the News entity is related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(NewsTargetModel)@ApiProperty({enum: NewsTargetModel, description: 'Target model to which the News entity is related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'Title of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:15\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString } from 'class-validator';\nimport { InputFormat, NewsTargetModel } from '@shared/domain';\nimport { SanitizeHtml } from '@shared/controller';\n\n/**\n * DTO for creating a news document.\n */\nexport class CreateNewsParams {\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'Title of the News entity',\n\t})\n\ttitle!: string;\n\n\t@IsString()\n\t@SanitizeHtml(InputFormat.RICH_TEXT)\n\t@ApiProperty({\n\t\tdescription: 'Content of the News entity',\n\t})\n\tcontent!: string;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription:\n\t\t\t'The point in time from when the News entity schould be displayed. Defaults to now so that the news is published',\n\t})\n\tdisplayAt?: Date;\n\n\t@IsEnum(NewsTargetModel)\n\t@ApiProperty({\n\t\tenum: NewsTargetModel,\n\t\tdescription: 'Target model to which the News entity is related',\n\t})\n\ttargetModel!: string;\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Specific target id to which the News entity is related',\n\t})\n\ttargetId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CreateSubmissionItemBodyParams.html":{"url":"classes/CreateSubmissionItemBodyParams.html","title":"class - CreateSubmissionItemBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CreateSubmissionItemBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/create-submission-item.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n completed\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n completed\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty({description: 'Boolean indicating whether the submission is completed.', required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/create-submission-item.body.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class CreateSubmissionItemBodyParams {\n\t@IsBoolean()\n\t@ApiProperty({\n\t\tdescription: 'Boolean indicating whether the submission is completed.',\n\t\trequired: true,\n\t})\n\tcompleted!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CurrentUserMapper.html":{"url":"classes/CurrentUserMapper.html","title":"class - CurrentUserMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CurrentUserMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/mapper/current-user.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n jwtToICurrentUser\n \n \n Static\n userDoToICurrentUser\n \n \n Static\n userToICurrentUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n jwtToICurrentUser\n \n \n \n \n \n \n \n jwtToICurrentUser(jwtPayload: JwtPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.mapper.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwtPayload\n \n JwtPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICurrentUser\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n userDoToICurrentUser\n \n \n \n \n \n \n \n userDoToICurrentUser(accountId: string, user: UserDO, systemId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.mapper.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : ICurrentUser\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n userToICurrentUser\n \n \n \n \n \n \n \n userToICurrentUser(accountId: string, user: User, systemId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.mapper.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : ICurrentUser\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ValidationError } from '@shared/common';\nimport { Role, User } from '@shared/domain';\nimport { RoleReference } from '@shared/domain/domainobject';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { ICurrentUser } from '../interface';\nimport { JwtPayload } from '../interface/jwt-payload';\n\nexport class CurrentUserMapper {\n\tstatic userToICurrentUser(accountId: string, user: User, systemId?: string): ICurrentUser {\n\t\treturn {\n\t\t\taccountId,\n\t\t\tsystemId,\n\t\t\troles: user.roles.getItems().map((role: Role) => role.id),\n\t\t\tschoolId: user.school.id,\n\t\t\tuserId: user.id,\n\t\t};\n\t}\n\n\tstatic userDoToICurrentUser(accountId: string, user: UserDO, systemId?: string): ICurrentUser {\n\t\tif (!user.id) {\n\t\t\tthrow new ValidationError('user has no ID');\n\t\t}\n\n\t\treturn {\n\t\t\taccountId,\n\t\t\tsystemId,\n\t\t\troles: user.roles.map((roleRef: RoleReference) => roleRef.id),\n\t\t\tschoolId: user.schoolId,\n\t\t\tuserId: user.id,\n\t\t};\n\t}\n\n\tstatic jwtToICurrentUser(jwtPayload: JwtPayload): ICurrentUser {\n\t\treturn {\n\t\t\taccountId: jwtPayload.accountId,\n\t\t\tsystemId: jwtPayload.systemId,\n\t\t\troles: jwtPayload.roles,\n\t\t\tschoolId: jwtPayload.schoolId,\n\t\t\tuserId: jwtPayload.userId,\n\t\t\timpersonated: jwtPayload.support,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CustomLtiProperty.html":{"url":"interfaces/CustomLtiProperty.html","title":"interface - CustomLtiProperty","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CustomLtiProperty\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/ltitool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n key\n \n \n \n \n value\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n key\n \n \n \n \n \n \n \n \n key: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n value\n \n \n \n \n \n \n \n \n value: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport type ILtiToolProperties = Readonly>;\n\nexport enum LtiRoleType {\n\tLEARNER = 'Learner',\n\tINSTRUCTOR = 'Instructor',\n\tCONTENT_DEVELOPER = 'ContentDeveloper',\n\tADMINISTRATOR = 'Administrator',\n\tMENTOR = 'Mentor',\n\tTEACHING_ASSISTANT = 'TeachingAssistant',\n}\n\nexport enum LtiPrivacyPermission {\n\tANONYMOUS = 'anonymous',\n\tEMAIL = 'e-mail',\n\tNAME = 'name',\n\tPUBLIC = 'public',\n\tPSEUDONYMOUS = 'pseudonymous',\n}\n\nexport interface CustomLtiProperty {\n\tkey: string;\n\tvalue: string;\n}\n\n@Entity({ tableName: 'ltitools' })\nexport class LtiTool extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\turl: string;\n\n\t@Property({ nullable: true })\n\tkey: string;\n\n\t@Property({ nullable: false, default: 'none' })\n\tsecret: string;\n\n\t@Property({ nullable: true })\n\tlogo_url?: string;\n\n\t@Property({ nullable: true })\n\tlti_message_type?: string;\n\n\t@Property({ nullable: true })\n\tlti_version?: string;\n\n\t@Property({ nullable: true })\n\tresource_link_id?: string;\n\n\t@Enum({ array: true, items: () => LtiRoleType })\n\t@Property({ nullable: true })\n\troles?: LtiRoleType[];\n\n\t@Enum({\n\t\titems: () => LtiPrivacyPermission,\n\t\tdefault: LtiPrivacyPermission.ANONYMOUS,\n\t\tnullable: false,\n\t})\n\tprivacy_permission: LtiPrivacyPermission;\n\n\t@Property({ nullable: false })\n\tcustoms: CustomLtiProperty[];\n\n\t@Property({ nullable: false, default: false })\n\tisTemplate: boolean;\n\n\t@Property({ nullable: true })\n\tisLocal?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'originTool' })\n\t_originToolId?: ObjectId;\n\n\t@Property({ persist: false, getter: true })\n\tget originToolId(): EntityId | undefined {\n\t\treturn this._originToolId?.toHexString();\n\t}\n\n\t@Property({ nullable: true })\n\toAuthClientId?: string;\n\n\t@Property({ nullable: true })\n\t@Unique({ options: { sparse: true } })\n\tfriendlyUrl?: string;\n\n\t@Property({ nullable: true })\n\tskipConsent?: boolean;\n\n\t@Property({ nullable: false, default: false })\n\topenNewTab: boolean;\n\n\t@Property({ nullable: true })\n\tfrontchannel_logout_uri?: string;\n\n\t@Property({ nullable: false, default: false })\n\tisHidden: boolean;\n\n\tconstructor(props: ILtiToolProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.key = props.key || 'none';\n\t\tthis.secret = props.secret || 'none';\n\t\tthis.logo_url = props.logo_url;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.lti_version = props.lti_version;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.roles = props.roles || [];\n\t\tthis.privacy_permission = props.privacy_permission || LtiPrivacyPermission.ANONYMOUS;\n\t\tthis.customs = props.customs || [];\n\t\tthis.isTemplate = props.isTemplate || false;\n\t\tthis.isLocal = props.isLocal;\n\t\tif (props.originToolId !== undefined) {\n\t\t\tthis._originToolId = new ObjectId(props.originToolId);\n\t\t}\n\t\tthis.oAuthClientId = props.oAuthClientId;\n\t\tthis.friendlyUrl = props.friendlyUrl;\n\t\tthis.skipConsent = props.skipConsent;\n\t\tthis.openNewTab = props.openNewTab || false;\n\t\tthis.frontchannel_logout_uri = props.frontchannel_logout_uri;\n\t\tthis.isHidden = props.isHidden || false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomLtiPropertyDO.html":{"url":"classes/CustomLtiPropertyDO.html","title":"class - CustomLtiPropertyDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomLtiPropertyDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/ltitool.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n key\n \n \n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(key: string, value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n key\n \n \n string\n \n \n \n No\n \n \n \n \n value\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LtiPrivacyPermission, LtiRoleType } from '@shared/domain/entity/ltitool.entity';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseDO } from './base.do';\n\nexport class CustomLtiPropertyDO {\n\tkey: string;\n\n\tvalue: string;\n\n\tconstructor(key: string, value: string) {\n\t\tthis.key = key;\n\t\tthis.value = value;\n\t}\n}\n\nexport class LtiToolDO extends BaseDO {\n\tname: string;\n\n\turl: string;\n\n\tkey: string;\n\n\tsecret: string;\n\n\tlogo_url?: string;\n\n\tlti_message_type?: string;\n\n\tlti_version?: string;\n\n\tresource_link_id?: string;\n\n\troles: LtiRoleType[];\n\n\tprivacy_permission: LtiPrivacyPermission;\n\n\tcustoms: CustomLtiPropertyDO[];\n\n\tisTemplate: boolean;\n\n\tisLocal?: boolean;\n\n\toriginToolId?: EntityId;\n\n\toAuthClientId?: string;\n\n\tfriendlyUrl?: string;\n\n\tskipConsent?: boolean;\n\n\topenNewTab: boolean;\n\n\tfrontchannel_logout_uri?: string;\n\n\tisHidden: boolean;\n\n\tconstructor(domainObject: LtiToolDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.name = domainObject.name;\n\t\tthis.url = domainObject.url;\n\t\tthis.key = domainObject.key;\n\t\tthis.secret = domainObject.secret;\n\t\tthis.logo_url = domainObject.logo_url;\n\t\tthis.lti_message_type = domainObject.lti_message_type;\n\t\tthis.lti_version = domainObject.lti_version;\n\t\tthis.resource_link_id = domainObject.resource_link_id;\n\t\tthis.roles = domainObject.roles;\n\t\tthis.privacy_permission = domainObject.privacy_permission;\n\t\tthis.customs = domainObject.customs;\n\t\tthis.isTemplate = domainObject.isTemplate;\n\t\tthis.isLocal = domainObject.isLocal;\n\t\tthis.originToolId = domainObject.originToolId;\n\t\tthis.oAuthClientId = domainObject.oAuthClientId;\n\t\tthis.friendlyUrl = domainObject.friendlyUrl;\n\t\tthis.skipConsent = domainObject.skipConsent;\n\t\tthis.openNewTab = domainObject.openNewTab;\n\t\tthis.frontchannel_logout_uri = domainObject.frontchannel_logout_uri;\n\t\tthis.isHidden = domainObject.isHidden;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameter.html":{"url":"classes/CustomParameter.html","title":"class - CustomParameter","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/domain/custom-parameter.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n default\n \n \n Optional\n description\n \n \n displayName\n \n \n isOptional\n \n \n location\n \n \n name\n \n \n Optional\n regex\n \n \n Optional\n regexComment\n \n \n scope\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameter)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameter\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n default\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n isOptional\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n location\n \n \n \n \n \n \n Type : CustomParameterLocation\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : CustomParameterScope\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CustomParameterType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { CustomParameterScope, CustomParameterLocation, CustomParameterType } from '../enum';\n\nexport class CustomParameter {\n\tname: string;\n\n\tdisplayName: string;\n\n\tdescription?: string;\n\n\tdefault?: string;\n\n\tregex?: string;\n\n\tregexComment?: string;\n\n\tscope: CustomParameterScope;\n\n\tlocation: CustomParameterLocation;\n\n\ttype: CustomParameterType;\n\n\tisOptional: boolean;\n\n\tconstructor(props: CustomParameter) {\n\t\tthis.name = props.name;\n\t\tthis.displayName = props.displayName;\n\t\tthis.description = props.description;\n\t\tthis.default = props.default;\n\t\tthis.location = props.location;\n\t\tthis.scope = props.scope;\n\t\tthis.type = props.type;\n\t\tthis.regex = props.regex;\n\t\tthis.regexComment = props.regexComment;\n\t\tthis.isOptional = props.isOptional;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntity.html":{"url":"classes/CustomParameterEntity.html","title":"class - CustomParameterEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n default\n \n \n \n Optional\n description\n \n \n \n displayName\n \n \n \n isOptional\n \n \n \n location\n \n \n \n name\n \n \n \n Optional\n regex\n \n \n \n Optional\n regexComment\n \n \n \n scope\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:34\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n default\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n isOptional\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n location\n \n \n \n \n \n \n Type : CustomParameterLocation\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : CustomParameterScope\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CustomParameterType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:31\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { CustomParameterLocation, CustomParameterScope, CustomParameterType } from '../../../common/enum';\n\n@Embeddable()\nexport class CustomParameterEntity {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tdisplayName: string;\n\n\t@Property({ nullable: true })\n\tdescription?: string;\n\n\t@Property({ nullable: true })\n\tdefault?: string;\n\n\t@Property({ nullable: true })\n\tregex?: string;\n\n\t@Property({ nullable: true })\n\tregexComment?: string;\n\n\t@Enum()\n\tscope: CustomParameterScope;\n\n\t@Enum()\n\tlocation: CustomParameterLocation;\n\n\t@Enum()\n\ttype: CustomParameterType;\n\n\t@Property()\n\tisOptional: boolean;\n\n\tconstructor(props: CustomParameterEntity) {\n\t\tthis.name = props.name;\n\t\tthis.displayName = props.displayName;\n\t\tthis.description = props.description;\n\t\tthis.default = props.default;\n\t\tthis.location = props.location;\n\t\tthis.scope = props.scope;\n\t\tthis.type = props.type;\n\t\tthis.regex = props.regex;\n\t\tthis.regexComment = props.regexComment;\n\t\tthis.isOptional = props.isOptional;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntry.html":{"url":"classes/CustomParameterEntry.html","title":"class - CustomParameterEntry","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntry\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/domain/custom-parameter-entry.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n name\n \n \n Optional\n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterEntry)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter-entry.do.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterEntry\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter-entry.do.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter-entry.do.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class CustomParameterEntry {\n\tname: string;\n\n\tvalue?: string;\n\n\tconstructor(props: CustomParameterEntry) {\n\t\tthis.name = props.name;\n\t\tthis.value = props.value;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntryEntity.html":{"url":"classes/CustomParameterEntryEntity.html","title":"class - CustomParameterEntryEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntryEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/entity/custom-parameter-entry.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n Optional\n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterEntryEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/entity/custom-parameter-entry.entity.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterEntryEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/common/entity/custom-parameter-entry.entity.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/common/entity/custom-parameter-entry.entity.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\n@Embeddable()\nexport class CustomParameterEntryEntity {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tvalue?: string;\n\n\tconstructor(props: CustomParameterEntryEntity) {\n\t\tthis.name = props.name;\n\t\tthis.value = props.value;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntryParam.html":{"url":"classes/CustomParameterEntryParam.html","title":"class - CustomParameterEntryParam","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntryParam\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n Optional\n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.params.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsOptional, IsString } from 'class-validator';\n\nexport class CustomParameterEntryParam {\n\t@IsString()\n\t@ApiProperty()\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tvalue?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntryResponse.html":{"url":"classes/CustomParameterEntryResponse.html","title":"class - CustomParameterEntryResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntryResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n \n Optional\n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterEntryResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.response.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterEntryResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.response.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.response.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class CustomParameterEntryResponse {\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiProperty()\n\t@ApiPropertyOptional()\n\tvalue?: string;\n\n\tconstructor(props: CustomParameterEntryResponse) {\n\t\tthis.name = props.name;\n\t\tthis.value = props.value;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterFactory.html":{"url":"classes/CustomParameterFactory.html","title":"class - CustomParameterFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n buildListWithEachType\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n buildListWithEachType\n \n \n \n \n \n \nbuildListWithEachType(params?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameter[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameter } from '@src/modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@src/modules/tool/external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nexport const basicToolConfigFactory = DoBaseFactory.define(BasicToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.BASIC,\n\t\tbaseUrl: 'https://www.basic-baseUrl.com/',\n\t};\n});\n\nclass Oauth2ToolConfigFactory extends DoBaseFactory {\n\twithExternalData(oauth2Params?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tclientSecret: 'clientSecret',\n\t\t\tscope: 'offline openid',\n\t\t\tfrontchannelLogoutUri: 'https://www.frontchannel.com/',\n\t\t\tredirectUris: ['https://www.redirect.com/'],\n\t\t\ttokenEndpointAuthMethod: TokenEndpointAuthMethod.CLIENT_SECRET_POST,\n\t\t};\n\n\t\treturn this.params({ ...params, ...oauth2Params });\n\t}\n}\n\nexport const oauth2ToolConfigFactory = Oauth2ToolConfigFactory.define(Oauth2ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.OAUTH2,\n\t\tbaseUrl: 'https://www.oauth2-baseUrl.com/',\n\t\tclientId: 'clientId',\n\t\tskipConsent: false,\n\t};\n});\n\nexport const lti11ToolConfigFactory = DoBaseFactory.define(Lti11ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.LTI11,\n\t\tbaseUrl: 'https://www.lti11-baseUrl.com/',\n\t\tkey: 'key',\n\t\tsecret: 'secret',\n\t\tprivacy_permission: LtiPrivacyPermission.PSEUDONYMOUS,\n\t\tlti_message_type: LtiMessageType.BASIC_LTI_LAUNCH_REQUEST,\n\t\tresource_link_id: 'linkId',\n\t\tlaunch_presentation_locale: 'de-DE',\n\t};\n});\n\nclass CustomParameterFactory extends DoBaseFactory {\n\tbuildListWithEachType(params?: DeepPartial): CustomParameter[] {\n\t\tconst globalParameter = this.build({ ...params, scope: CustomParameterScope.GLOBAL });\n\t\tconst schoolParameter = this.build({ ...params, scope: CustomParameterScope.SCHOOL });\n\t\tconst contextParameter = this.build({ ...params, scope: CustomParameterScope.CONTEXT });\n\n\t\treturn [globalParameter, schoolParameter, contextParameter];\n\t}\n}\n\nexport const customParameterFactory = CustomParameterFactory.define(CustomParameter, ({ sequence }) => {\n\treturn {\n\t\tname: `custom-parameter-${sequence}`,\n\t\tdisplayName: 'User Friendly Name',\n\t\ttype: CustomParameterType.STRING,\n\t\tscope: CustomParameterScope.SCHOOL,\n\t\tlocation: CustomParameterLocation.BODY,\n\t\tisOptional: false,\n\t};\n});\n\nclass ExternalToolFactory extends DoBaseFactory {\n\twithOauth2Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: oauth2ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLti11Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: lti11ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithCustomParameters(number: number, customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tparameters: customParameterFactory.buildList(number, customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBase64Logo(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tlogo: 'iVBORw0KGgoAAAANSUhEUgAAAfQAAADICAYAAAAeGRPoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUQ2Q0Y5RTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUQ2Q0ZBRTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYxRDZDRjdFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYxRDZDRjhFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz45EjsrAAALfUlEQVR42uzdgXWjOAIGYHLvGsiV4CnBU4JTgqeEpIS4hKSEpIS4BLsEu4RJCeMScmhGzPplkyCMAGO+7z3ezs3tYsuS+BEIcfX29lYAAOP2Hz8BAAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAIdABDoAIBABwAEOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAQCBDgAIdAAQ6ACAQAcABDoAINABQKADAAIdABDoAIBABwCBDgAIdABAoAMAAh0ABDoAINABgN79109AbldXV9flPxblNov/DOblFv7+UG77+HfVn39vb29vB78emdpg1fauP2iDwWvcgm3883aMbbAs6/yorPP414ujf+W4z+2r/12WdasOL6zdl4Ufa4fdvGu0gyp/x6sTyjD0jx8a/03GOgn1cVtuyxN3EQ4267CV3+t16u2jhz701lfb6DEAlnGbt2yDz+ccDDHEq7LOTtzNIZY11PVaHV6AEOhj3ErhgP12LtuJZRj6e28y1cW8g/p4CgeqKbePHvpQ522jp3LMYnvJWWe/2rbBjsq66Kht/wwn4+pw3Jt76LQ9o76NB5jco+Gw35/l/p/iJXx43/auy+2+CqPMu7+O+9zFzziHsj511Nf+Bmr5GT/jlTZ1OEICnbZh/lT8c0+rC1WwL/3ivLvkvCu3h44/KrTth/LzdvFy8BBlXXQUeJ8F+6b8zIeuT6SnVIcCnXM/oC5jmPchdMiXqZxlk3QiuStOv3d8inkc6c0HKOum45Pmj9zHYJ+pQ4HOZR9Qr08I8zBRZRu3U4RJcs9+fWHe44nkRyeWu/gd+ijr04BlrRzU4Xh4bI1T3CaMGMKB4LH4M4N2/0Gnrh5JqWbr1u3vzmNtwrxhEFSzuEP7ez1+TCu2v9lR+2syagv3mvcfteuMZb0vml1ifz0q6/74KZF3Za3Km/Lb/cjd56ZUh4OYyuy/1NnPZhknfe9fNd/9JQR0g/1Vk1d+frK/hym2D+3vX7O7G83YbtgGm86yDn1g1lFZlw3Lumy4/9Df7mv68VwdjrBPC3SBnrlT7lru//2BZtekUwv0y2t/MYB+JR6kH9q0lzjK2yV+1q6jx7dSy3qf4Xe9/2C/t+rQY2tMQ91lrceWV4zCf/8tXmZzqZ2iSH+SIrSVVZv2Ei/BhgV1UuZrzDuYqJlS1upyeNu+doj7+F78s+LaY/l3z+pwnAQ6WQM9x4pT8UDzI3TKi7vHRdN7rovEe753uYIotr+7xEC4zzUTPD45kvIM+E3Old1iH/sew3ylDgU609Hb4zPnvtY0vUgZPd11MaqMgbBP6A+5RngPiWXdd1DWQxdhPsE6FOhc1IjKqm7kHNnVjVjXHV0iroQrRXWXf2/btvtY1tnAZVWHAp2JqesYVnQjl5S2tOryC8THv1LuVbd9rvk2od+t1OFZ16FAZ3TqLl89XPJKTPQ2srtOCIPHtm/lSwyEEAZ1n7PsuKzPfZRVHQp0pqWuU4ROvLnUlZjoTfUe7C9DrsfvU/dZ8xYTq5YZPl8dDluHAp1RSpmo9ntp2Pjmpnv31TlB3VWefc8j1nWG7/yZ2ZmVVR0KdKYgPh+aelYdDlRh5u6vMtQ3MdxdjidHGKx7bvchePYJ7X30ZVWHAp38FmX4vXWwbTJ8t3A/qunCD4sY7uHFCCHgX2LAz1Q1n7SXL0d3A3ynbcvvPKayqsMR8nIWTjrTLYM4zEw99Y1J1WSZsIVJdNWLJdYWkiHREJegD2Mqa3ineZHpEnLZL2/UoUDnckP9uTxgFEWe1yCGUXpY2CGM2EOgP4/teVvySbktM9A95bqTzcUJZV10WNb5UCPOKdXhOXHJnVahXqQt2tD0IFRNqPNM+zSZRKkOEegMEOrhUnl4mcoqc7CHUXu4z/5kljyAQKefUD8cvSUtBHvOS2nhefaNUGcEvBVQHQp0LivYyy0E+++3NxV5ZrKGy/AvfuHJtKPatQ4Gevyx9nnxCyqrOhToZLQtO8VVB9tNTx16H99rHIL9f8Wfe+1tAn5xSe8tpvMDcxeuJ1RWdSjQ4dOR+/oo4MMIPrzWsOnCEladm9AJbc3/P8TobtHyO5/6381O7Hc3qSf6RTcvSJlSHQp0Jhvwr2GGfLn9iKP31Al1KS974DKc1Ys04onkouV3HkVZ1aFAhzaj92pCXcqz55aOnYbaJTp7vgebEj7bjso61peGTKkOBTq8C/a7hFC3VOw0pNyO6fONfnWftY3vOTjF9szKqg4FOmRRdy9v4SeaxgleQiDc9jFyja8C7uxFI4kvDbkd2yh9SnUo0OHzg8DWL0HiAfapyy8Q77vWPV1xKNqHQd2VqfA9HtThWdehQGecQieJZ73Q1cldOMDWTVLq+nHGEKJ1I8jHtpdq4zLKdftYjq3PTakOBTpjFl7D+hTf6JTbV4+meRvbtKQ8TvXQRdCFZYeL+vuuhyJtMmeKx8SyztXh2dahQGd0o/PQSaqDSng2fJPrPljcz1cHrFc1MLlResotmKeco7zEIMg6sotPe9S173Cyu+ngxUVzdSjQmV6Y337QScJEtV2mzlh3P80IfXruirR1CsIo76XN4kPhhDKcoCYGwTaGcO6y1gnle8nR38JoP5Z3qQ4FOtMK88UXgXsdO2N47elt0w4Z78m/FPWz2NdqYnKj9DBqTV3JLARTaIONVhWMIRACclekPUkRwulHB2UNI9nUgPnb307py3EEm1pedTiGY3T5Q08tlDZfVXZcBrGv7zL4j59a3njfblM0Wwv5OY6ow7ru+y/2u4xn03X73na9Fv05tY9Lbn+n/I7xYN10zsa6aoOxHR6qE8jiz2XmamsyQg37uPmsTWeqm5cTvlNV1tfjl6MclbW6nbUoGq7nkKvdT6kOBbpAP+dAv46B3uZe26H455L5rGi+SMz3rjugQD/fQI/fOfW+aFd6CYJM/S2XcI95lbFsk6jDIbjkTuoB+BBfrNLmflO1lnLjEUJpdYkdkMbtMNyLXQ308b0FQRyFhqtRQ86+/n1JOmeYT6kOBTpjOKCu4oGmz9nmz5c0cYXWbfAxtsE+ZyaHS9jf+gyCo+WQhwi/dSzvWh0KdC77gBo6xvci/S1pbaziQQ3et8HUF/q0HdHdxVeRHgYqaxV+fQTRaxzB/ui6vFOqQ4HOuR9Qj9+StupgxL6PBxYjc+pGsDdF/uWCD7Fdf4uruA1+AhNved0V3VwdC79fCPFvxxPq1OG4mBT37wZmUtzp5VnG3zb889TnSMMlvnVXl/rG1D4uuf118TvGRYluY/ubtWh/29gGD2dcdzn62j6W9Tk+VnYO5ZpMHQp0xhQW1aMk1+8Csvrz69FIYxv/vJ1aB6TTYKgmX87ftb3j9lc9eTHa9hf7WlXW2Qdl3cdyjqqsU6pDgQ4A/OUeOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4AAh0AEOgAgEAHAAQ6AAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAh0ABDoAIBABwAEOgAg0AFAoAMAAh0AEOgAgEAHAIEOAAh0AECgAwACHQAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAYD+/V+AAQADXuXS75wQpQAAAABJRU5ErkJggg==',\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const externalToolFactory = ExternalToolFactory.define(ExternalTool, ({ sequence }) => {\n\treturn {\n\t\tname: `external-tool-${sequence}`,\n\t\turl: 'https://url.com/',\n\t\tconfig: basicToolConfigFactory.build(),\n\t\tlogoUrl: 'https://logo.com/',\n\t\tisHidden: false,\n\t\topenNewTab: false,\n\t\tversion: 1,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterPostParams.html":{"url":"classes/CustomParameterPostParams.html","title":"class - CustomParameterPostParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterPostParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n defaultValue\n \n \n \n \n \n Optional\n description\n \n \n \n \n \n displayName\n \n \n \n \n isOptional\n \n \n \n \n location\n \n \n \n \n \n name\n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n scope\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n defaultValue\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n isOptional\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n location\n \n \n \n \n \n \n Type : CustomParameterLocationParams\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(CustomParameterLocationParams)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : CustomParameterScopeTypeParams\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(CustomParameterScopeTypeParams)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CustomParameterTypeParams\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(CustomParameterTypeParams)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:50\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsBoolean, IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';\nimport {\n\tCustomParameterLocationParams,\n\tCustomParameterScopeTypeParams,\n\tCustomParameterTypeParams,\n} from '../../../../common/enum';\n\nexport class CustomParameterPostParams {\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tname!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tdisplayName!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tdefaultValue?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tregex?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tregexComment?: string;\n\n\t@IsEnum(CustomParameterScopeTypeParams)\n\t@ApiProperty()\n\tscope!: CustomParameterScopeTypeParams;\n\n\t@IsEnum(CustomParameterLocationParams)\n\t@ApiProperty()\n\tlocation!: CustomParameterLocationParams;\n\n\t@IsEnum(CustomParameterTypeParams)\n\t@ApiProperty()\n\ttype!: CustomParameterTypeParams;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tisOptional!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterResponse.html":{"url":"classes/CustomParameterResponse.html","title":"class - CustomParameterResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n defaultValue\n \n \n \n Optional\n description\n \n \n \n displayName\n \n \n \n isOptional\n \n \n \n location\n \n \n \n name\n \n \n \n Optional\n regex\n \n \n \n Optional\n regexComment\n \n \n \n scope\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:37\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n defaultValue\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n isOptional\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n location\n \n \n \n \n \n \n Type : CustomParameterLocationParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: CustomParameterLocationParams})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : CustomParameterScopeTypeParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: CustomParameterScopeTypeParams})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CustomParameterTypeParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: CustomParameterTypeParams})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:34\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport {\n\tCustomParameterLocationParams,\n\tCustomParameterScopeTypeParams,\n\tCustomParameterTypeParams,\n} from '../../../../common/enum';\n\nexport class CustomParameterResponse {\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiProperty()\n\tdisplayName: string;\n\n\t@ApiPropertyOptional()\n\tdescription?: string;\n\n\t@ApiPropertyOptional()\n\tdefaultValue?: string;\n\n\t@ApiPropertyOptional()\n\tregex?: string;\n\n\t@ApiPropertyOptional()\n\tregexComment?: string;\n\n\t@ApiProperty({ enum: CustomParameterScopeTypeParams })\n\tscope: CustomParameterScopeTypeParams;\n\n\t@ApiProperty({ enum: CustomParameterLocationParams })\n\tlocation: CustomParameterLocationParams;\n\n\t@ApiProperty({ enum: CustomParameterTypeParams })\n\ttype: CustomParameterTypeParams;\n\n\t@ApiProperty()\n\tisOptional: boolean;\n\n\tconstructor(props: CustomParameterResponse) {\n\t\tthis.name = props.name;\n\t\tthis.displayName = props.displayName;\n\t\tthis.description = props.description;\n\t\tthis.defaultValue = props.defaultValue;\n\t\tthis.location = props.location;\n\t\tthis.scope = props.scope;\n\t\tthis.type = props.type;\n\t\tthis.regex = props.regex;\n\t\tthis.regexComment = props.regexComment;\n\t\tthis.isOptional = props.isOptional;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/DashboardController.html":{"url":"controllers/DashboardController.html","title":"controller - DashboardController","body":"\n \n\n\n\n\n\n\n Controllers\n DashboardController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dashboard.controller.ts\n \n\n \n Prefix\n \n \n dashboard\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n findForUser\n \n \n \n Async\n moveElement\n \n \n \n Async\n patchGroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n findForUser\n \n \n \n \n \n \n \n findForUser(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/dashboard.controller.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveElement\n \n \n \n \n \n \n \n moveElement(undefined: DashboardUrlParams, params: MoveElementParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':dashboardId/moveElement')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/dashboard.controller.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n DashboardUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n MoveElementParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchGroup\n \n \n \n \n \n \n \n patchGroup(urlParams: DashboardUrlParams, x: number, y: number, params: PatchGroupParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':dashboardId/element')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/dashboard.controller.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n DashboardUrlParams\n \n\n \n No\n \n\n\n \n \n x\n \n number\n \n\n \n No\n \n\n\n \n \n y\n \n number\n \n\n \n No\n \n\n\n \n \n params\n \n PatchGroupParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Patch, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { DashboardMapper } from '../mapper/dashboard.mapper';\nimport { DashboardUc } from '../uc/dashboard.uc';\nimport { DashboardResponse, DashboardUrlParams, MoveElementParams, PatchGroupParams } from './dto';\n\n@ApiTags('Dashboard')\n@Authenticate('jwt')\n@Controller('dashboard')\nexport class DashboardController {\n\tconstructor(private readonly dashboardUc: DashboardUc) {}\n\n\t@Get()\n\tasync findForUser(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst dashboard = await this.dashboardUc.getUsersDashboard(currentUser.userId);\n\t\tconst dto = DashboardMapper.mapToResponse(dashboard);\n\t\treturn dto;\n\t}\n\n\t@Patch(':dashboardId/moveElement')\n\tasync moveElement(\n\t\t@Param() { dashboardId }: DashboardUrlParams,\n\t\t@Body() params: MoveElementParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst dashboard = await this.dashboardUc.moveElementOnDashboard(\n\t\t\tdashboardId,\n\t\t\tparams.from,\n\t\t\tparams.to,\n\t\t\tcurrentUser.userId\n\t\t);\n\t\tconst dto = DashboardMapper.mapToResponse(dashboard);\n\t\treturn dto;\n\t}\n\n\t@Patch(':dashboardId/element')\n\tasync patchGroup(\n\t\t@Param() urlParams: DashboardUrlParams,\n\t\t@Query('x') x: number,\n\t\t@Query('y') y: number,\n\t\t@Body() params: PatchGroupParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst dashboard = await this.dashboardUc.renameGroupOnDashboard(\n\t\t\turlParams.dashboardId,\n\t\t\t{ x, y },\n\t\t\tparams.title,\n\t\t\tcurrentUser.userId\n\t\t);\n\t\tconst dto = DashboardMapper.mapToResponse(dashboard);\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardEntity.html":{"url":"classes/DashboardEntity.html","title":"class - DashboardEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n columns\n \n \n grid\n \n \n id\n \n \n userId\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n addRoom\n \n \n Private\n allRooms\n \n \n Private\n determineNewRoomsIn\n \n \n getElement\n \n \n Private\n getFirstOpenIndex\n \n \n getGrid\n \n \n getId\n \n \n Private\n getReferencesFromPosition\n \n \n getUserId\n \n \n Private\n gridIndexFromPosition\n \n \n Private\n mergeElementIntoPosition\n \n \n moveElement\n \n \n Private\n positionFromGridIndex\n \n \n Private\n removeFromPosition\n \n \n Private\n removeRoomsNotInList\n \n \n setLearnRooms\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(id: string, props: DashboardProps)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:180\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n \n string\n \n \n \n No\n \n \n \n \n props\n \n \n DashboardProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n columns\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:163\n \n \n\n\n \n \n \n \n \n \n \n \n grid\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:165\n \n \n\n\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:161\n \n \n\n\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:167\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n addRoom\n \n \n \n \n \n \n \n addRoom(room: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:272\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n room\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n allRooms\n \n \n \n \n \n \n \n allRooms()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:266\n \n \n\n\n \n \n\n \n Returns : ILearnroom[]\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n determineNewRoomsIn\n \n \n \n \n \n \n \n determineNewRoomsIn(rooms: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:255\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n rooms\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ILearnroom[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getElement\n \n \n \n \n \n \ngetElement(position: GridPosition)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:213\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n position\n \n GridPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IGridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getFirstOpenIndex\n \n \n \n \n \n \n \n getFirstOpenIndex()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:278\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n \n \n \n \n \n \n getGrid\n \n \n \n \n \n \ngetGrid()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:201\n \n \n\n\n \n \n\n \n Returns : GridElementWithPosition[]\n\n \n \n \n \n \n \n \n \n \n \n \n getId\n \n \n \n \n \n \ngetId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:193\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n getReferencesFromPosition\n \n \n \n \n \n \n \n getReferencesFromPosition(position: GridPositionWithGroupIndex)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:286\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n position\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IGridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getUserId\n \n \n \n \n \n \ngetUserId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:197\n \n \n\n\n \n \n\n \n Returns : EntityId\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n gridIndexFromPosition\n \n \n \n \n \n \n \n gridIndexFromPosition(pos: GridPosition)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:169\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pos\n \n GridPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : number\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mergeElementIntoPosition\n \n \n \n \n \n \n \n mergeElementIntoPosition(element: IGridElement, position: GridPosition)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:307\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n IGridElement\n \n\n \n No\n \n\n\n \n \n position\n \n GridPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IGridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n moveElement\n \n \n \n \n \n \nmoveElement(from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:221\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n from\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n to\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElementWithPosition\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n positionFromGridIndex\n \n \n \n \n \n \n \n positionFromGridIndex(index: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:176\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n index\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridPosition\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeFromPosition\n \n \n \n \n \n \n \n removeFromPosition(position: GridPositionWithGroupIndex)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:298\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n position\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeRoomsNotInList\n \n \n \n \n \n \n \n removeRoomsNotInList(roomList: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:240\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomList\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setLearnRooms\n \n \n \n \n \n \nsetLearnRooms(rooms: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:231\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n rooms\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException, BadRequestException } from '@nestjs/common';\nimport { EntityId, LearnroomMetadata } from '@shared/domain/types';\nimport { ILearnroom } from '@shared/domain/interface';\n\nconst defaultColumns = 4;\n\nexport interface IGridElement {\n\thasId(): boolean;\n\n\tgetId: () => EntityId | undefined;\n\n\tgetContent: () => GridElementContent;\n\n\tisGroup(): boolean;\n\n\tremoveReferenceByIndex(index: number): void;\n\n\tremoveReference(reference: ILearnroom): void;\n\n\tgetReferences(): ILearnroom[];\n\n\taddReferences(anotherReference: ILearnroom[]): void;\n\n\tsetGroupName(newGroupName: string): void;\n}\n\nexport type GridElementContent = {\n\treferencedId?: string;\n\ttitle?: string;\n\tshortTitle: string;\n\tdisplayColor: string;\n\tgroup?: LearnroomMetadata[];\n\tgroupId?: string;\n\tcopyingSince?: Date;\n};\n\nexport class GridElement implements IGridElement {\n\tid?: EntityId;\n\n\ttitle?: string;\n\n\tprivate sortReferences = (a: ILearnroom, b: ILearnroom) => {\n\t\tconst titleA = a.getMetadata().title;\n\t\tconst titleB = b.getMetadata().title;\n\t\tif (titleA titleB) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t};\n\n\tprivate constructor(props: { id?: EntityId; title?: string; references: ILearnroom[] }) {\n\t\tif (props.id) this.id = props.id;\n\t\tif (props.title) this.title = props.title;\n\t\tthis.references = props.references.sort(this.sortReferences);\n\t}\n\n\tstatic FromPersistedReference(id: EntityId, reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ id, references: [reference] });\n\t}\n\n\tstatic FromPersistedGroup(id: EntityId, title: string | undefined, group: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ id, title, references: group });\n\t}\n\n\tstatic FromSingleReference(reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ references: [reference] });\n\t}\n\n\tstatic FromGroup(title: string, references: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ title, references });\n\t}\n\n\treferences: ILearnroom[];\n\n\thasId(): boolean {\n\t\treturn !!this.id;\n\t}\n\n\tgetId(): EntityId | undefined {\n\t\treturn this.id;\n\t}\n\n\tgetReferences(): ILearnroom[] {\n\t\treturn this.references;\n\t}\n\n\tremoveReferenceByIndex(index: number): void {\n\t\tif (!this.isGroup()) {\n\t\t\tthrow new BadRequestException('this element is not a group.');\n\t\t}\n\t\tif (index > 0 && this.references.length reference.getMetadata());\n\t\tconst checkShortTitle = this.title ? this.title.substring(0, 2) : '';\n\t\tconst groupMetadata = {\n\t\t\tgroupId: this.getId(),\n\t\t\ttitle: this.title,\n\t\t\tshortTitle: checkShortTitle,\n\t\t\tdisplayColor: 'exampleColor',\n\t\t\tgroup: groupData,\n\t\t};\n\t\treturn groupMetadata;\n\t}\n\n\tisGroup(): boolean {\n\t\treturn this.references.length > 1;\n\t}\n\n\tsetGroupName(newGroupName: string): void {\n\t\tif (!this.isGroup()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.title = newGroupName;\n\t}\n}\n\nexport type GridPosition = { x: number; y: number };\nexport type GridPositionWithGroupIndex = { x: number; y: number; groupIndex?: number };\n\nexport type GridElementWithPosition = {\n\tgridElement: IGridElement;\n\tpos: GridPosition;\n};\n\nexport type DashboardProps = { colums?: number; grid: GridElementWithPosition[]; userId: EntityId };\n\nexport class DashboardEntity {\n\tid: EntityId;\n\n\tcolumns: number;\n\n\tgrid: Map;\n\n\tuserId: EntityId;\n\n\tprivate gridIndexFromPosition(pos: GridPosition): number {\n\t\tif (pos.x > this.columns) {\n\t\t\tthrow new BadRequestException('dashboard element position is outside the grid.');\n\t\t}\n\t\treturn this.columns * pos.y + pos.x;\n\t}\n\n\tprivate positionFromGridIndex(index: number): GridPosition {\n\t\tconst y = Math.floor(index / this.columns);\n\t\tconst x = index % this.columns;\n\t\treturn { x, y };\n\t}\n\n\tconstructor(id: string, props: DashboardProps) {\n\t\tthis.columns = props.colums || defaultColumns;\n\t\tthis.grid = new Map();\n\t\tprops.grid.forEach((element) => {\n\t\t\tthis.grid.set(this.gridIndexFromPosition(element.pos), element.gridElement);\n\t\t});\n\t\tthis.id = id;\n\t\tthis.userId = props.userId;\n\t\tObject.assign(this, {});\n\t}\n\n\tgetId(): string {\n\t\treturn this.id;\n\t}\n\n\tgetUserId(): EntityId {\n\t\treturn this.userId;\n\t}\n\n\tgetGrid(): GridElementWithPosition[] {\n\t\tconst result = [...this.grid.keys()].map((key) => {\n\t\t\tconst position = this.positionFromGridIndex(key);\n\t\t\tconst value = this.grid.get(key) as IGridElement;\n\t\t\treturn {\n\t\t\t\tpos: position,\n\t\t\t\tgridElement: value,\n\t\t\t};\n\t\t});\n\t\treturn result;\n\t}\n\n\tgetElement(position: GridPosition): IGridElement {\n\t\tconst element = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (!element) {\n\t\t\tthrow new NotFoundException('no element at grid position');\n\t\t}\n\t\treturn element;\n\t}\n\n\tmoveElement(from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex): GridElementWithPosition {\n\t\tconst elementToMove = this.getReferencesFromPosition(from);\n\t\tconst resultElement = this.mergeElementIntoPosition(elementToMove, to);\n\t\tthis.removeFromPosition(from);\n\t\treturn {\n\t\t\tpos: to,\n\t\t\tgridElement: resultElement,\n\t\t};\n\t}\n\n\tsetLearnRooms(rooms: ILearnroom[]): void {\n\t\tthis.removeRoomsNotInList(rooms);\n\t\tconst newRooms = this.determineNewRoomsIn(rooms);\n\n\t\tnewRooms.forEach((room) => {\n\t\t\tthis.addRoom(room);\n\t\t});\n\t}\n\n\tprivate removeRoomsNotInList(roomList: ILearnroom[]): void {\n\t\t[...this.grid.keys()].forEach((key) => {\n\t\t\tconst element = this.grid.get(key) as IGridElement;\n\t\t\tconst currentRooms = element.getReferences();\n\t\t\tcurrentRooms.forEach((room) => {\n\t\t\t\tif (!roomList.includes(room)) {\n\t\t\t\t\telement.removeReference(room);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (element.getReferences().length === 0) {\n\t\t\t\tthis.grid.delete(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate determineNewRoomsIn(rooms: ILearnroom[]): ILearnroom[] {\n\t\tconst result: ILearnroom[] = [];\n\t\tconst existingRooms = this.allRooms();\n\t\trooms.forEach((room) => {\n\t\t\tif (!existingRooms.includes(room)) {\n\t\t\t\tresult.push(room);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tprivate allRooms(): ILearnroom[] {\n\t\tconst elements = [...this.grid.values()];\n\t\tconst references = elements.map((el) => el.getReferences()).flat();\n\t\treturn references;\n\t}\n\n\tprivate addRoom(room: ILearnroom): void {\n\t\tconst index = this.getFirstOpenIndex();\n\t\tconst newElement = GridElement.FromSingleReference(room);\n\t\tthis.grid.set(index, newElement);\n\t}\n\n\tprivate getFirstOpenIndex(): number {\n\t\tlet i = 0;\n\t\twhile (this.grid.get(i) !== undefined) {\n\t\t\ti += 1;\n\t\t}\n\t\treturn i;\n\t}\n\n\tprivate getReferencesFromPosition(position: GridPositionWithGroupIndex): IGridElement {\n\t\tconst elementToMove = this.getElement(position);\n\n\t\tif (typeof position.groupIndex === 'number' && elementToMove.isGroup()) {\n\t\t\tconst references = elementToMove.getReferences();\n\t\t\tconst referenceForIndex = references[position.groupIndex];\n\t\t\treturn GridElement.FromSingleReference(referenceForIndex);\n\t\t}\n\n\t\treturn elementToMove;\n\t}\n\n\tprivate removeFromPosition(position: GridPositionWithGroupIndex): void {\n\t\tconst element = this.getElement(position);\n\t\tif (typeof position.groupIndex === 'number') {\n\t\t\telement.removeReferenceByIndex(position.groupIndex);\n\t\t} else {\n\t\t\tthis.grid.delete(this.gridIndexFromPosition(position));\n\t\t}\n\t}\n\n\tprivate mergeElementIntoPosition(element: IGridElement, position: GridPosition): IGridElement {\n\t\tconst targetElement = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (targetElement) {\n\t\t\ttargetElement.addReferences(element.getReferences());\n\t\t\treturn targetElement;\n\t\t}\n\t\tthis.grid.set(this.gridIndexFromPosition(position), element);\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/DashboardGridElementModel.html":{"url":"entities/DashboardGridElementModel.html","title":"entity - DashboardGridElementModel","body":"\n \n\n\n\n\n\n\n\n Entities\n DashboardGridElementModel\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.model.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n dashboard\n \n \n \n \n references\n \n \n \n Optional\n title\n \n \n \n xPos\n \n \n \n yPos\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n dashboard\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('DashboardModelEntity', {wrappedReference: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n references\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('Course', undefined, {fieldName: 'referenceIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n xPos\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n yPos\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:48\n \n \n\n\n \n \n\n \n\n\n \n import {\n\tCollection,\n\tEntity,\n\tIdentifiedReference,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToMany,\n\tProperty,\n\twrap,\n} from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { Course } from './course.entity';\nimport { User } from './user.entity';\n\nexport interface DashboardGridElementModelProperties {\n\tid?: string;\n\ttitle?: string;\n\txPos: number;\n\tyPos: number;\n\treferences: Course[];\n\tdashboard: DashboardModelEntity;\n}\n\n@Entity({ tableName: 'dashboardelement' })\nexport class DashboardGridElementModel extends BaseEntityWithTimestamps {\n\tconstructor({ id, title, xPos, yPos, references, dashboard }: DashboardGridElementModelProperties) {\n\t\tsuper();\n\t\tif (id) {\n\t\t\tthis._id = ObjectId.createFromHexString(id);\n\t\t\tthis.id = id;\n\t\t}\n\t\tthis.title = title;\n\t\tthis.xPos = xPos;\n\t\tthis.yPos = yPos;\n\t\tthis.references.set(references);\n\t\tthis.dashboard = wrap(dashboard).toReference();\n\t}\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\t@Property()\n\txPos: number;\n\n\t@Property()\n\tyPos: number;\n\n\t@Index()\n\t@ManyToMany('Course', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('DashboardModelEntity', { wrappedReference: true })\n\tdashboard: IdentifiedReference;\n}\n\nexport interface IDashboardModelProperties {\n\tid: string;\n\tuser: User;\n\tgridElements?: DashboardGridElementModel[];\n}\n\n@Entity({ tableName: 'dashboard' })\nexport class DashboardModelEntity extends BaseEntityWithTimestamps {\n\tconstructor(props: IDashboardModelProperties) {\n\t\tsuper();\n\t\tthis._id = ObjectId.createFromHexString(props.id);\n\t\tthis.id = props.id;\n\t\tthis.user = wrap(props.user).toReference();\n\t\tif (props.gridElements) this.gridElements.set(props.gridElements);\n\t}\n\n\t@OneToMany('DashboardGridElementModel', 'dashboard')\n\tgridElements: Collection = new Collection(this);\n\n\t// userId\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'userId', wrappedReference: true })\n\tuser: IdentifiedReference;\n\n\t// sizetype\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/DashboardGridElementModelProperties.html":{"url":"interfaces/DashboardGridElementModelProperties.html","title":"interface - DashboardGridElementModelProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n DashboardGridElementModelProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.model.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dashboard\n \n \n \n Optional\n \n id\n \n \n \n \n references\n \n \n \n Optional\n \n title\n \n \n \n \n xPos\n \n \n \n \n yPos\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n dashboard\n \n \n \n \n \n \n \n \n dashboard: DashboardModelEntity\n\n \n \n\n\n \n \n Type : DashboardModelEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n references\n \n \n \n \n \n \n \n \n references: Course[]\n\n \n \n\n\n \n \n Type : Course[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n xPos\n \n \n \n \n \n \n \n \n xPos: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n yPos\n \n \n \n \n \n \n \n \n yPos: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import {\n\tCollection,\n\tEntity,\n\tIdentifiedReference,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToMany,\n\tProperty,\n\twrap,\n} from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { Course } from './course.entity';\nimport { User } from './user.entity';\n\nexport interface DashboardGridElementModelProperties {\n\tid?: string;\n\ttitle?: string;\n\txPos: number;\n\tyPos: number;\n\treferences: Course[];\n\tdashboard: DashboardModelEntity;\n}\n\n@Entity({ tableName: 'dashboardelement' })\nexport class DashboardGridElementModel extends BaseEntityWithTimestamps {\n\tconstructor({ id, title, xPos, yPos, references, dashboard }: DashboardGridElementModelProperties) {\n\t\tsuper();\n\t\tif (id) {\n\t\t\tthis._id = ObjectId.createFromHexString(id);\n\t\t\tthis.id = id;\n\t\t}\n\t\tthis.title = title;\n\t\tthis.xPos = xPos;\n\t\tthis.yPos = yPos;\n\t\tthis.references.set(references);\n\t\tthis.dashboard = wrap(dashboard).toReference();\n\t}\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\t@Property()\n\txPos: number;\n\n\t@Property()\n\tyPos: number;\n\n\t@Index()\n\t@ManyToMany('Course', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('DashboardModelEntity', { wrappedReference: true })\n\tdashboard: IdentifiedReference;\n}\n\nexport interface IDashboardModelProperties {\n\tid: string;\n\tuser: User;\n\tgridElements?: DashboardGridElementModel[];\n}\n\n@Entity({ tableName: 'dashboard' })\nexport class DashboardModelEntity extends BaseEntityWithTimestamps {\n\tconstructor(props: IDashboardModelProperties) {\n\t\tsuper();\n\t\tthis._id = ObjectId.createFromHexString(props.id);\n\t\tthis.id = props.id;\n\t\tthis.user = wrap(props.user).toReference();\n\t\tif (props.gridElements) this.gridElements.set(props.gridElements);\n\t}\n\n\t@OneToMany('DashboardGridElementModel', 'dashboard')\n\tgridElements: Collection = new Collection(this);\n\n\t// userId\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'userId', wrappedReference: true })\n\tuser: IdentifiedReference;\n\n\t// sizetype\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardGridElementResponse.html":{"url":"classes/DashboardGridElementResponse.html","title":"class - DashboardGridElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardGridElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n displayColor\n \n \n \n Optional\n groupElements\n \n \n \n Optional\n groupId\n \n \n \n Optional\n id\n \n \n \n shortTitle\n \n \n \n \n Optional\n title\n \n \n \n xPosition\n \n \n \n yPosition\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: DashboardGridElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:35\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n DashboardGridElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Start of the copying process if it is still ongoing - otherwise property is not set.'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:105\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Color of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:78\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n groupElements\n \n \n \n \n \n \n Type : DashboardGridSubElementResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined, description: 'List of all subelements in the group'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:100\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n groupId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the group element', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:94\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the Grid element', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:62\n \n \n\n\n \n \n \n \n \n \n \n \n \n shortTitle\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Short title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:73\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @DecodeHtmlEntities()@ApiProperty({description: 'Title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:68\n \n \n\n\n \n \n \n \n \n \n \n \n \n xPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'X position of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:83\n \n \n\n\n \n \n \n \n \n \n \n \n \n yPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Y position of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:88\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\n\nexport class DashboardGridSubElementResponse {\n\tconstructor({ id, title, shortTitle, displayColor }: DashboardGridSubElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n}\n\nexport class DashboardGridElementResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tshortTitle,\n\t\tdisplayColor,\n\t\txPosition,\n\t\tyPosition,\n\t\tgroupId,\n\t\tgroupElements,\n\t\tcopyingSince = undefined,\n\t}: DashboardGridElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.xPosition = xPosition;\n\t\tthis.yPosition = yPosition;\n\t\tthis.groupId = groupId;\n\t\tthis.groupElements = groupElements;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid?: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiProperty({\n\t\tdescription: 'X position of the Grid element',\n\t})\n\txPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'Y position of the Grid element',\n\t})\n\tyPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the group element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tgroupId?: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridSubElementResponse],\n\t\tdescription: 'List of all subelements in the group',\n\t})\n\tgroupElements?: DashboardGridSubElementResponse[];\n\n\t@ApiProperty({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class DashboardResponse {\n\tconstructor({ id, gridElements }: DashboardResponse) {\n\t\tthis.id = id;\n\t\tthis.gridElements = gridElements;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Dashboard entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridElementResponse],\n\t\tdescription: 'List of all elements visible on the dashboard',\n\t})\n\tgridElements: DashboardGridElementResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardGridSubElementResponse.html":{"url":"classes/DashboardGridSubElementResponse.html","title":"class - DashboardGridSubElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardGridSubElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n displayColor\n \n \n \n id\n \n \n \n shortTitle\n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: DashboardGridSubElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n DashboardGridSubElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Color of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the Grid element', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n shortTitle\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Short title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @DecodeHtmlEntities()@ApiProperty({description: 'Title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\n\nexport class DashboardGridSubElementResponse {\n\tconstructor({ id, title, shortTitle, displayColor }: DashboardGridSubElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n}\n\nexport class DashboardGridElementResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tshortTitle,\n\t\tdisplayColor,\n\t\txPosition,\n\t\tyPosition,\n\t\tgroupId,\n\t\tgroupElements,\n\t\tcopyingSince = undefined,\n\t}: DashboardGridElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.xPosition = xPosition;\n\t\tthis.yPosition = yPosition;\n\t\tthis.groupId = groupId;\n\t\tthis.groupElements = groupElements;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid?: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiProperty({\n\t\tdescription: 'X position of the Grid element',\n\t})\n\txPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'Y position of the Grid element',\n\t})\n\tyPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the group element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tgroupId?: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridSubElementResponse],\n\t\tdescription: 'List of all subelements in the group',\n\t})\n\tgroupElements?: DashboardGridSubElementResponse[];\n\n\t@ApiProperty({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class DashboardResponse {\n\tconstructor({ id, gridElements }: DashboardResponse) {\n\t\tthis.id = id;\n\t\tthis.gridElements = gridElements;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Dashboard entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridElementResponse],\n\t\tdescription: 'List of all elements visible on the dashboard',\n\t})\n\tgridElements: DashboardGridElementResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardMapper.html":{"url":"classes/DashboardMapper.html","title":"class - DashboardMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n mapGridElement\n \n \n Private\n Static\n mapLearnroom\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n mapGridElement\n \n \n \n \n \n \n \n mapGridElement(data: GridElementWithPosition)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DashboardGridElementResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapLearnroom\n \n \n \n \n \n \n \n mapLearnroom(metadata: LearnroomMetadata)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n metadata\n \n LearnroomMetadata\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DashboardGridSubElementResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(dashboard: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboard\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DashboardResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { DashboardEntity, GridElementWithPosition, LearnroomMetadata } from '@shared/domain';\nimport { DashboardResponse, DashboardGridElementResponse, DashboardGridSubElementResponse } from '../controller/dto';\n\nexport class DashboardMapper {\n\tstatic mapToResponse(dashboard: DashboardEntity): DashboardResponse {\n\t\tconst dto = new DashboardResponse({\n\t\t\tid: dashboard.getId(),\n\t\t\tgridElements: dashboard\n\t\t\t\t.getGrid()\n\t\t\t\t.map((elementWithPosition) => DashboardMapper.mapGridElement(elementWithPosition)),\n\t\t});\n\t\treturn dto;\n\t}\n\n\tprivate static mapGridElement(data: GridElementWithPosition): DashboardGridElementResponse {\n\t\tconst elementData = data.gridElement.getContent();\n\t\tconst position = data.pos;\n\t\tconst dto = new DashboardGridElementResponse({\n\t\t\ttitle: elementData.title,\n\t\t\tshortTitle: elementData.shortTitle,\n\t\t\tdisplayColor: elementData.displayColor,\n\t\t\txPosition: position.x,\n\t\t\tyPosition: position.y,\n\t\t\tcopyingSince: elementData.copyingSince ?? undefined,\n\t\t});\n\t\tif (elementData.referencedId) {\n\t\t\tdto.id = elementData.referencedId;\n\t\t}\n\t\tif (elementData.group && elementData.groupId) {\n\t\t\tdto.groupId = elementData.groupId;\n\t\t\tdto.groupElements = elementData.group.map((groupMetadata) => DashboardMapper.mapLearnroom(groupMetadata));\n\t\t}\n\t\treturn dto;\n\t}\n\n\tprivate static mapLearnroom(metadata: LearnroomMetadata): DashboardGridSubElementResponse {\n\t\treturn new DashboardGridSubElementResponse(metadata);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/DashboardModelEntity.html":{"url":"entities/DashboardModelEntity.html","title":"entity - DashboardModelEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n DashboardModelEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.model.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n gridElements\n \n \n \n \n user\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n gridElements\n \n \n \n \n \n \n Type : Collection\n\n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @OneToMany('DashboardGridElementModel', 'dashboard')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:76\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('User', {fieldName: 'userId', wrappedReference: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:81\n \n \n\n\n \n \n\n \n\n\n \n import {\n\tCollection,\n\tEntity,\n\tIdentifiedReference,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToMany,\n\tProperty,\n\twrap,\n} from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { Course } from './course.entity';\nimport { User } from './user.entity';\n\nexport interface DashboardGridElementModelProperties {\n\tid?: string;\n\ttitle?: string;\n\txPos: number;\n\tyPos: number;\n\treferences: Course[];\n\tdashboard: DashboardModelEntity;\n}\n\n@Entity({ tableName: 'dashboardelement' })\nexport class DashboardGridElementModel extends BaseEntityWithTimestamps {\n\tconstructor({ id, title, xPos, yPos, references, dashboard }: DashboardGridElementModelProperties) {\n\t\tsuper();\n\t\tif (id) {\n\t\t\tthis._id = ObjectId.createFromHexString(id);\n\t\t\tthis.id = id;\n\t\t}\n\t\tthis.title = title;\n\t\tthis.xPos = xPos;\n\t\tthis.yPos = yPos;\n\t\tthis.references.set(references);\n\t\tthis.dashboard = wrap(dashboard).toReference();\n\t}\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\t@Property()\n\txPos: number;\n\n\t@Property()\n\tyPos: number;\n\n\t@Index()\n\t@ManyToMany('Course', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('DashboardModelEntity', { wrappedReference: true })\n\tdashboard: IdentifiedReference;\n}\n\nexport interface IDashboardModelProperties {\n\tid: string;\n\tuser: User;\n\tgridElements?: DashboardGridElementModel[];\n}\n\n@Entity({ tableName: 'dashboard' })\nexport class DashboardModelEntity extends BaseEntityWithTimestamps {\n\tconstructor(props: IDashboardModelProperties) {\n\t\tsuper();\n\t\tthis._id = ObjectId.createFromHexString(props.id);\n\t\tthis.id = props.id;\n\t\tthis.user = wrap(props.user).toReference();\n\t\tif (props.gridElements) this.gridElements.set(props.gridElements);\n\t}\n\n\t@OneToMany('DashboardGridElementModel', 'dashboard')\n\tgridElements: Collection = new Collection(this);\n\n\t// userId\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'userId', wrappedReference: true })\n\tuser: IdentifiedReference;\n\n\t// sizetype\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DashboardModelMapper.html":{"url":"injectables/DashboardModelMapper.html","title":"injectable - DashboardModelMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DashboardModelMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n createGridElement\n \n \n Private\n Async\n findExistingGridElement\n \n \n Private\n Async\n getOrConstructDashboardModelEntity\n \n \n Async\n mapDashboardToEntity\n \n \n Async\n mapDashboardToModel\n \n \n Async\n mapElementToEntity\n \n \n Async\n mapGridElementToModel\n \n \n Async\n mapReferenceToEntity\n \n \n mapReferenceToModel\n \n \n Private\n Async\n updateExistingGridElement\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n createGridElement\n \n \n \n \n \n \n \n createGridElement(elementWithPosition: GridElementWithPosition, dashboard: DashboardModelEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementWithPosition\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n dashboard\n \n DashboardModelEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findExistingGridElement\n \n \n \n \n \n \n \n findExistingGridElement(elementWithPosition: GridElementWithPosition)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementWithPosition\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getOrConstructDashboardModelEntity\n \n \n \n \n \n \n \n getOrConstructDashboardModelEntity(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:128\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapDashboardToEntity\n \n \n \n \n \n \n \n mapDashboardToEntity(modelEntity: DashboardModelEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n modelEntity\n \n DashboardModelEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapDashboardToModel\n \n \n \n \n \n \n \n mapDashboardToModel(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:112\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapElementToEntity\n \n \n \n \n \n \n \n mapElementToEntity(modelEntity: DashboardGridElementModel)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n modelEntity\n \n DashboardGridElementModel\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapGridElementToModel\n \n \n \n \n \n \n \n mapGridElementToModel(elementWithPosition: GridElementWithPosition, dashboard: DashboardModelEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementWithPosition\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n dashboard\n \n DashboardModelEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapReferenceToEntity\n \n \n \n \n \n \n \n mapReferenceToEntity(modelEntity: Course)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n modelEntity\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapReferenceToModel\n \n \n \n \n \n \nmapReferenceToModel(reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Course\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateExistingGridElement\n \n \n \n \n \n \n \n updateExistingGridElement(elementModel: DashboardGridElementModel, elementWithPosition: GridElementWithPosition, dashboard: DashboardModelEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementModel\n \n DashboardGridElementModel\n \n\n \n No\n \n\n\n \n \n elementWithPosition\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n dashboard\n \n DashboardModelEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { wrap, EntityManager } from '@mikro-orm/core';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport {\n\tDashboardEntity,\n\tGridElement,\n\tGridElementWithPosition,\n\tILearnroom,\n\tLearnroomTypes,\n\tDashboardGridElementModel,\n\tDashboardModelEntity,\n\tCourse,\n\tUser,\n} from '@shared/domain';\n\n@Injectable()\nexport class DashboardModelMapper {\n\tconstructor(protected readonly em: EntityManager) {}\n\n\tasync mapReferenceToEntity(modelEntity: Course): Promise {\n\t\tconst domainEntity = await wrap(modelEntity).init();\n\t\treturn domainEntity;\n\t}\n\n\tasync mapElementToEntity(modelEntity: DashboardGridElementModel): Promise {\n\t\tconst referenceModels = await modelEntity.references.loadItems();\n\t\tconst references = await Promise.all(referenceModels.map((ref) => this.mapReferenceToEntity(ref)));\n\t\tconst result = {\n\t\t\tpos: { x: modelEntity.xPos, y: modelEntity.yPos },\n\t\t\tgridElement: GridElement.FromPersistedGroup(modelEntity.id, modelEntity.title, references),\n\t\t};\n\t\treturn result;\n\t}\n\n\tasync mapDashboardToEntity(modelEntity: DashboardModelEntity): Promise {\n\t\tif (!modelEntity.gridElements.isInitialized()) {\n\t\t\tawait modelEntity.gridElements.init();\n\t\t}\n\t\tconst grid = await Promise.all(Array.from(modelEntity.gridElements).map(async (e) => this.mapElementToEntity(e)));\n\t\treturn new DashboardEntity(modelEntity.id, { grid, userId: modelEntity.user.id });\n\t}\n\n\tmapReferenceToModel(reference: ILearnroom): Course {\n\t\tconst metadata = reference.getMetadata();\n\t\tif (metadata.type === LearnroomTypes.Course) {\n\t\t\tconst course = reference as Course;\n\t\t\treturn course;\n\t\t}\n\t\tthrow new InternalServerErrorException('unknown learnroom type');\n\t}\n\n\tasync mapGridElementToModel(\n\t\telementWithPosition: GridElementWithPosition,\n\t\tdashboard: DashboardModelEntity\n\t): Promise {\n\t\tconst existing = await this.findExistingGridElement(elementWithPosition);\n\t\tif (existing) {\n\t\t\tconst updatedModel = this.updateExistingGridElement(existing, elementWithPosition, dashboard);\n\t\t\treturn updatedModel;\n\t\t}\n\t\tconst createdModel = await this.createGridElement(elementWithPosition, dashboard);\n\t\treturn createdModel;\n\t}\n\n\tprivate async findExistingGridElement(\n\t\telementWithPosition: GridElementWithPosition\n\t): Promise {\n\t\tconst { gridElement } = elementWithPosition;\n\t\tif (gridElement.hasId()) {\n\t\t\tconst existing = await this.em.findOne(DashboardGridElementModel, gridElement.getId() as string);\n\t\t\tif (existing) return existing;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate async updateExistingGridElement(\n\t\telementModel: DashboardGridElementModel,\n\t\telementWithPosition: GridElementWithPosition,\n\t\tdashboard: DashboardModelEntity\n\t): Promise {\n\t\telementModel.xPos = elementWithPosition.pos.x;\n\t\telementModel.yPos = elementWithPosition.pos.y;\n\t\tconst { gridElement } = elementWithPosition;\n\n\t\tif (gridElement.isGroup()) {\n\t\t\telementModel.title = gridElement.getContent().title;\n\t\t}\n\n\t\tconst references = await Promise.all(gridElement.getReferences().map((ref) => this.mapReferenceToModel(ref)));\n\t\telementModel.references.set(references);\n\n\t\telementModel.dashboard = wrap(dashboard).toReference();\n\t\treturn elementModel;\n\t}\n\n\tprivate async createGridElement(\n\t\telementWithPosition: GridElementWithPosition,\n\t\tdashboard: DashboardModelEntity\n\t): Promise {\n\t\tconst { gridElement } = elementWithPosition;\n\t\tconst references = await Promise.all(gridElement.getReferences().map((ref) => this.mapReferenceToModel(ref)));\n\t\tconst elementModel = new DashboardGridElementModel({\n\t\t\tid: gridElement.getId(),\n\t\t\txPos: elementWithPosition.pos.x,\n\t\t\tyPos: elementWithPosition.pos.y,\n\t\t\treferences,\n\t\t\tdashboard,\n\t\t});\n\n\t\treturn elementModel;\n\t}\n\n\tasync mapDashboardToModel(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.getOrConstructDashboardModelEntity(entity);\n\t\tconst mappedElements = await Promise.all(\n\t\t\tentity.getGrid().map((elementWithPosition) => this.mapGridElementToModel(elementWithPosition, modelEntity))\n\t\t);\n\n\t\tArray.from(modelEntity.gridElements).forEach((el) => {\n\t\t\tif (!mappedElements.includes(el)) {\n\t\t\t\tmodelEntity.gridElements.remove(el);\n\t\t\t\tthis.em.remove(el);\n\t\t\t}\n\t\t});\n\n\t\treturn modelEntity;\n\t}\n\n\tprivate async getOrConstructDashboardModelEntity(entity: DashboardEntity): Promise {\n\t\tconst existing = await this.em.findOne(DashboardModelEntity, entity.getId());\n\t\tif (existing) {\n\t\t\treturn existing;\n\t\t}\n\t\tconst user = await this.em.findOneOrFail(User, entity.getUserId());\n\t\treturn new DashboardModelEntity({ id: entity.getId(), user, gridElements: [] });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DashboardRepo.html":{"url":"injectables/DashboardRepo.html","title":"injectable - DashboardRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DashboardRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/dashboard/dashboard.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getDashboardById\n \n \n Async\n getUsersDashboard\n \n \n Async\n persist\n \n \n Async\n persistAndFlush\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, mapper: DashboardModelMapper)\n \n \n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:20\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n mapper\n \n \n DashboardModelMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getDashboardById\n \n \n \n \n \n \n \n getDashboardById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUsersDashboard\n \n \n \n \n \n \n \n getUsersDashboard(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n persist\n \n \n \n \n \n \n \n persist(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n persistAndFlush\n \n \n \n \n \n \n \n persistAndFlush(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, DashboardEntity, GridElementWithPosition, DashboardModelEntity } from '@shared/domain';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { DashboardModelMapper } from './dashboard.model.mapper';\n\nconst generateEmptyDashboard = (userId: EntityId) => {\n\tconst gridArray: GridElementWithPosition[] = [];\n\n\tconst dashboard = new DashboardEntity(new ObjectId().toString(), { grid: gridArray, userId });\n\treturn dashboard;\n};\n\nexport interface IDashboardRepo {\n\tgetUsersDashboard(userId: EntityId): Promise;\n\tgetDashboardById(id: EntityId): Promise;\n\tpersistAndFlush(entity: DashboardEntity): Promise;\n}\n\n@Injectable()\nexport class DashboardRepo implements IDashboardRepo {\n\tconstructor(protected readonly em: EntityManager, protected readonly mapper: DashboardModelMapper) {}\n\n\t// ToDo: refactor this to be in an abstract class (see baseRepo)\n\tasync persist(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.mapper.mapDashboardToModel(entity);\n\t\tthis.em.persist(modelEntity);\n\t\treturn this.mapper.mapDashboardToEntity(modelEntity);\n\t}\n\n\tasync persistAndFlush(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.mapper.mapDashboardToModel(entity);\n\t\tawait this.em.persistAndFlush(modelEntity);\n\t\treturn this.mapper.mapDashboardToEntity(modelEntity);\n\t}\n\n\tasync getDashboardById(id: EntityId): Promise {\n\t\tconst dashboardModel = await this.em.findOneOrFail(DashboardModelEntity, id);\n\t\tconst dashboard = await this.mapper.mapDashboardToEntity(dashboardModel);\n\t\treturn dashboard;\n\t}\n\n\tasync getUsersDashboard(userId: EntityId): Promise {\n\t\tconst dashboardModel = await this.em.findOne(DashboardModelEntity, { user: userId });\n\t\tif (dashboardModel) {\n\t\t\treturn this.mapper.mapDashboardToEntity(dashboardModel);\n\t\t}\n\n\t\tconst dashboard = generateEmptyDashboard(userId);\n\t\tawait this.persistAndFlush(dashboard);\n\n\t\treturn dashboard;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardResponse.html":{"url":"classes/DashboardResponse.html","title":"class - DashboardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n gridElements\n \n \n \n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: DashboardResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:108\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n DashboardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n gridElements\n \n \n \n \n \n \n Type : DashboardGridElementResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined, description: 'List of all elements visible on the dashboard'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:124\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the Dashboard entity', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:118\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\n\nexport class DashboardGridSubElementResponse {\n\tconstructor({ id, title, shortTitle, displayColor }: DashboardGridSubElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n}\n\nexport class DashboardGridElementResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tshortTitle,\n\t\tdisplayColor,\n\t\txPosition,\n\t\tyPosition,\n\t\tgroupId,\n\t\tgroupElements,\n\t\tcopyingSince = undefined,\n\t}: DashboardGridElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.xPosition = xPosition;\n\t\tthis.yPosition = yPosition;\n\t\tthis.groupId = groupId;\n\t\tthis.groupElements = groupElements;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid?: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiProperty({\n\t\tdescription: 'X position of the Grid element',\n\t})\n\txPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'Y position of the Grid element',\n\t})\n\tyPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the group element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tgroupId?: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridSubElementResponse],\n\t\tdescription: 'List of all subelements in the group',\n\t})\n\tgroupElements?: DashboardGridSubElementResponse[];\n\n\t@ApiProperty({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class DashboardResponse {\n\tconstructor({ id, gridElements }: DashboardResponse) {\n\t\tthis.id = id;\n\t\tthis.gridElements = gridElements;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Dashboard entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridElementResponse],\n\t\tdescription: 'List of all elements visible on the dashboard',\n\t})\n\tgridElements: DashboardGridElementResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DashboardUc.html":{"url":"injectables/DashboardUc.html","title":"injectable - DashboardUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DashboardUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/dashboard.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getUsersDashboard\n \n \n Async\n moveElementOnDashboard\n \n \n Async\n renameGroupOnDashboard\n \n \n Private\n validateUsersMatch\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dashboardRepo: IDashboardRepo, courseRepo: CourseRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboardRepo\n \n \n IDashboardRepo\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getUsersDashboard\n \n \n \n \n \n \n \n getUsersDashboard(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveElementOnDashboard\n \n \n \n \n \n \n \n moveElementOnDashboard(dashboardId: EntityId, from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n from\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n to\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n renameGroupOnDashboard\n \n \n \n \n \n \n \n renameGroupOnDashboard(dashboardId: EntityId, position: GridPosition, params: string, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n position\n \n GridPosition\n \n\n \n No\n \n\n\n \n \n params\n \n string\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n validateUsersMatch\n \n \n \n \n \n \n \n validateUsersMatch(dashboard: DashboardEntity, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:57\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboard\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, Inject, NotFoundException } from '@nestjs/common';\nimport { DashboardEntity, EntityId, GridPositionWithGroupIndex, GridPosition, SortOrder } from '@shared/domain';\nimport { IDashboardRepo, CourseRepo } from '@shared/repo';\n// import { NotFound } from '@feathersjs/errors'; // wrong import? see NotFoundException\n\n@Injectable()\nexport class DashboardUc {\n\tconstructor(\n\t\t@Inject('DASHBOARD_REPO') private readonly dashboardRepo: IDashboardRepo,\n\t\tprivate readonly courseRepo: CourseRepo\n\t) {}\n\n\tasync getUsersDashboard(userId: EntityId): Promise {\n\t\tconst dashboard = await this.dashboardRepo.getUsersDashboard(userId);\n\t\tconst [courses] = await this.courseRepo.findAllByUserId(\n\t\t\tuserId,\n\t\t\t{ onlyActiveCourses: true },\n\t\t\t{ order: { name: SortOrder.asc } }\n\t\t);\n\n\t\tdashboard.setLearnRooms(courses);\n\t\tawait this.dashboardRepo.persistAndFlush(dashboard);\n\t\treturn dashboard;\n\t}\n\n\tasync moveElementOnDashboard(\n\t\tdashboardId: EntityId,\n\t\tfrom: GridPositionWithGroupIndex,\n\t\tto: GridPositionWithGroupIndex,\n\t\tuserId: EntityId\n\t): Promise {\n\t\tconst dashboard = await this.dashboardRepo.getDashboardById(dashboardId);\n\t\tthis.validateUsersMatch(dashboard, userId);\n\n\t\tdashboard.moveElement(from, to);\n\n\t\tawait this.dashboardRepo.persistAndFlush(dashboard);\n\t\treturn dashboard;\n\t}\n\n\tasync renameGroupOnDashboard(\n\t\tdashboardId: EntityId,\n\t\tposition: GridPosition,\n\t\tparams: string,\n\t\tuserId: EntityId\n\t): Promise {\n\t\tconst dashboard = await this.dashboardRepo.getDashboardById(dashboardId);\n\t\tthis.validateUsersMatch(dashboard, userId);\n\n\t\tconst gridElement = dashboard.getElement(position);\n\t\tgridElement.setGroupName(params);\n\n\t\tawait this.dashboardRepo.persistAndFlush(dashboard);\n\t\treturn dashboard;\n\t}\n\n\tprivate validateUsersMatch(dashboard: DashboardEntity, userId: EntityId) {\n\t\tif (dashboard.getUserId() !== userId) {\n\t\t\tthrow new NotFoundException('no such dashboard found');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardUrlParams.html":{"url":"classes/DashboardUrlParams.html","title":"class - DashboardUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n dashboardId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n dashboardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the dashboard.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class DashboardUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the dashboard.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tdashboardId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DatabaseManagementConsole.html":{"url":"classes/DatabaseManagementConsole.html","title":"class - DatabaseManagementConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DatabaseManagementConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/console/database-management.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n exportCollections\n \n \n \n Async\n seedCollections\n \n \n \n Async\n syncIndexes\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consoleWriter: ConsoleWriterService, databaseManagementUc: DatabaseManagementUc)\n \n \n \n \n Defined in apps/server/src/modules/management/console/database-management.console.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consoleWriter\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n databaseManagementUc\n \n \n DatabaseManagementUc\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n exportCollections\n \n \n \n \n \n \n \n exportCollections(options: Options)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'export', options: undefined, description: 'export database collections to filesystem'})\n \n \n\n \n \n Defined in apps/server/src/modules/management/console/database-management.console.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n Options\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n seedCollections\n \n \n \n \n \n \n \n seedCollections(options: Options)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'seed', options: undefined, description: 'reset database collections with seed data from filesystem'})\n \n \n\n \n \n Defined in apps/server/src/modules/management/console/database-management.console.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n Options\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n syncIndexes\n \n \n \n \n \n \n \n syncIndexes()\n \n \n\n \n \n Decorators : \n \n @Command({command: 'sync-indexes', options: undefined, description: 'sync indexes from nest and mikroorm'})\n \n \n\n \n \n Defined in apps/server/src/modules/management/console/database-management.console.ts:72\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console/console-writer/console-writer.service';\nimport { Command, Console } from 'nestjs-console';\nimport { DatabaseManagementUc } from '../uc/database-management.uc';\n\ninterface Options {\n\tcollection?: string;\n\toverride?: boolean;\n\tonlyfactories?: boolean;\n}\n\n@Console({ command: 'database', description: 'database setup console' })\nexport class DatabaseManagementConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService, private databaseManagementUc: DatabaseManagementUc) {}\n\n\t@Command({\n\t\tcommand: 'seed',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --onlyfactories',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'seed from factories only',\n\t\t\t},\n\t\t],\n\t\tdescription: 'reset database collections with seed data from filesystem',\n\t})\n\tasync seedCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\n\t\tconst collections = options.onlyfactories\n\t\t\t? await this.databaseManagementUc.seedDatabaseCollectionsFromFactories(filter)\n\t\t\t: await this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem(filter);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'export',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --override',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'optional export collections to setup folder and override existing files',\n\t\t\t},\n\t\t],\n\t\tdescription: 'export database collections to filesystem',\n\t})\n\tasync exportCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\t\tconst toSeedFolder = options?.override ? true : undefined;\n\t\tconst collections = await this.databaseManagementUc.exportCollectionsToFileSystem(filter, toSeedFolder);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'sync-indexes',\n\t\toptions: [],\n\t\tdescription: 'sync indexes from nest and mikroorm',\n\t})\n\tasync syncIndexes(): Promise {\n\t\tawait this.databaseManagementUc.syncIndexes();\n\t\tconst report = 'sync of indexes is completed';\n\t\tthis.consoleWriter.info(report);\n\t\treturn report;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/DatabaseManagementController.html":{"url":"controllers/DatabaseManagementController.html","title":"controller - DatabaseManagementController","body":"\n \n\n\n\n\n\n\n Controllers\n DatabaseManagementController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/controller/database-management.controller.ts\n \n\n \n Prefix\n \n \n management/database\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n exportCollection\n \n \n \n Async\n exportCollections\n \n \n \n Async\n importCollection\n \n \n \n Async\n importCollections\n \n \n \n syncIndexes\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n exportCollection\n \n \n \n \n \n \n \n exportCollection(collectionName: string)\n \n \n\n \n \n Decorators : \n \n @Post('export/:collectionName')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n exportCollections\n \n \n \n \n \n \n \n exportCollections()\n \n \n\n \n \n Decorators : \n \n @Post('export')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:23\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importCollection\n \n \n \n \n \n \n \n importCollection(collectionName: string)\n \n \n\n \n \n Decorators : \n \n @Post('seed/:collectionName')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importCollections\n \n \n \n \n \n \n \n importCollections(withIndexes: boolean)\n \n \n\n \n \n Decorators : \n \n @All('seed')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n withIndexes\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n syncIndexes\n \n \n \n \n \n \n \n syncIndexes()\n \n \n\n \n \n Decorators : \n \n @Post('sync-indexes')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:33\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n\n\n \n import { Controller, Param, Post, All, Query } from '@nestjs/common';\nimport { DatabaseManagementUc } from '../uc/database-management.uc';\n\n@Controller('management/database')\nexport class DatabaseManagementController {\n\tconstructor(private databaseManagementUc: DatabaseManagementUc) {}\n\n\t@All('seed')\n\tasync importCollections(@Query('with-indexes') withIndexes: boolean): Promise {\n\t\tconst res = await this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem();\n\t\tif (withIndexes) {\n\t\t\tawait this.databaseManagementUc.syncIndexes();\n\t\t}\n\t\treturn res;\n\t}\n\n\t@Post('seed/:collectionName')\n\tasync importCollection(@Param('collectionName') collectionName: string): Promise {\n\t\treturn this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem([collectionName]);\n\t}\n\n\t@Post('export')\n\tasync exportCollections(): Promise {\n\t\treturn this.databaseManagementUc.exportCollectionsToFileSystem();\n\t}\n\n\t@Post('export/:collectionName')\n\tasync exportCollection(@Param('collectionName') collectionName: string): Promise {\n\t\treturn this.databaseManagementUc.exportCollectionsToFileSystem([collectionName]);\n\t}\n\n\t@Post('sync-indexes')\n\tsyncIndexes() {\n\t\treturn this.databaseManagementUc.syncIndexes();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/DatabaseManagementModule.html":{"url":"modules/DatabaseManagementModule.html","title":"module - DatabaseManagementModule","body":"\n \n\n\n\n\n Modules\n DatabaseManagementModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_DatabaseManagementModule\n\n\n\ncluster_DatabaseManagementModule_exports\n\n\n\ncluster_DatabaseManagementModule_providers\n\n\n\n\nDatabaseManagementService \n\nDatabaseManagementService \n\n\n\nDatabaseManagementModule\n\nDatabaseManagementModule\n\nDatabaseManagementService -->\n\nDatabaseManagementModule->DatabaseManagementService \n\n\n\n\n\nDatabaseManagementService\n\nDatabaseManagementService\n\nDatabaseManagementModule -->\n\nDatabaseManagementService->DatabaseManagementModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/database/management/database-management.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n DatabaseManagementService\n \n \n \n \n Exports\n \n \n DatabaseManagementService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { DatabaseManagementService } from './database-management.service';\n\n@Module({\n\tproviders: [DatabaseManagementService],\n\texports: [DatabaseManagementService],\n})\nexport class DatabaseManagementModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DatabaseManagementService.html":{"url":"injectables/DatabaseManagementService.html","title":"injectable - DatabaseManagementService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DatabaseManagementService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/database/management/database-management.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n clearCollection\n \n \n Async\n collectionExists\n \n \n Async\n createCollection\n \n \n Async\n dropCollection\n \n \n Async\n findDocumentsOfCollection\n \n \n Async\n getCollectionNames\n \n \n getDatabaseCollection\n \n \n Async\n importCollection\n \n \n Async\n syncIndexes\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n db\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, orm: MikroORM)\n \n \n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n orm\n \n \n MikroORM\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n clearCollection\n \n \n \n \n \n \n \n clearCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n collectionExists\n \n \n \n \n \n \n \n collectionExists(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createCollection\n \n \n \n \n \n \n \n createCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n dropCollection\n \n \n \n \n \n \n \n dropCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findDocumentsOfCollection\n \n \n \n \n \n \n \n findDocumentsOfCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getCollectionNames\n \n \n \n \n \n \n \n getCollectionNames()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:44\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n getDatabaseCollection\n \n \n \n \n \n \ngetDatabaseCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Collection\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importCollection\n \n \n \n \n \n \n \n importCollection(collectionName: string, jsonDocuments: [])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n jsonDocuments\n \n []\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n syncIndexes\n \n \n \n \n \n \n \n syncIndexes()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:66\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n db\n \n \n\n \n \n getdb()\n \n \n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:11\n \n \n\n \n \n\n \n\n\n \n import { BaseEntity } from '@shared/domain';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { Collection, Db } from 'mongodb';\nimport { MikroORM } from '@mikro-orm/core';\n\n@Injectable()\nexport class DatabaseManagementService {\n\tconstructor(private em: EntityManager, private readonly orm: MikroORM) {}\n\n\tprivate get db(): Db {\n\t\treturn this.em.getConnection('write').getDb();\n\t}\n\n\tgetDatabaseCollection(collectionName: string): Collection {\n\t\tconst collection = this.db.collection(collectionName);\n\t\treturn collection;\n\t}\n\n\tasync importCollection(collectionName: string, jsonDocuments: unknown[]): Promise {\n\t\tif (jsonDocuments.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst collection = this.getDatabaseCollection(collectionName);\n\t\tconst { insertedCount } = await collection.insertMany(jsonDocuments as BaseEntity[], {\n\t\t\tforceServerObjectId: true,\n\t\t\tbypassDocumentValidation: true,\n\t\t});\n\t\treturn insertedCount;\n\t}\n\n\tasync findDocumentsOfCollection(collectionName: string): Promise {\n\t\tconst collection = this.getDatabaseCollection(collectionName);\n\t\tconst documents = (await collection.find({}).toArray()) as unknown[];\n\t\treturn documents;\n\t}\n\n\tasync clearCollection(collectionName: string): Promise {\n\t\tconst collection = this.getDatabaseCollection(collectionName);\n\t\tconst { deletedCount } = await collection.deleteMany({});\n\t\treturn deletedCount || 0;\n\t}\n\n\tasync getCollectionNames(): Promise {\n\t\tconst collections = (await this.db.listCollections(undefined, { nameOnly: true }).toArray()) as unknown[] as {\n\t\t\tname: string;\n\t\t}[];\n\t\tconst collectionNames = collections.map((collection) => collection.name);\n\t\treturn collectionNames;\n\t}\n\n\tasync collectionExists(collectionName: string): Promise {\n\t\tconst collections = await this.getCollectionNames();\n\t\tconst result = collections.includes(collectionName);\n\t\treturn result;\n\t}\n\n\tasync createCollection(collectionName: string): Promise {\n\t\tawait this.db.createCollection(collectionName);\n\t}\n\n\tasync dropCollection(collectionName: string): Promise {\n\t\tawait this.db.dropCollection(collectionName);\n\t}\n\n\tasync syncIndexes(): Promise {\n\t\treturn this.orm.getSchemaGenerator().ensureIndexes();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DeleteFilesConsole.html":{"url":"classes/DeleteFilesConsole.html","title":"class - DeleteFilesConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DeleteFilesConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/job/delete-files.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteMarkedFiles\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(deleteFilesUc: DeleteFilesUc, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/files/job/delete-files.console.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n deleteFilesUc\n \n \n DeleteFilesUc\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n deleteMarkedFiles\n \n \n \n \n \n \n \n deleteMarkedFiles(daysSinceDeletion: number, batchSize: number)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'cleanup-job [batchSize]', description: 'cleanup job to remove files that were marked for deletion days ago'})\n \n \n\n \n \n Defined in apps/server/src/modules/files/job/delete-files.console.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n daysSinceDeletion\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n batchSize\n \n number\n \n\n \n No\n \n\n \n 1000\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Command, Console } from 'nestjs-console';\nimport { LegacyLogger } from '@src/core/logger';\nimport { DeleteFilesUc } from '../uc';\n\n@Console({ command: 'files', description: 'file deletion console' })\nexport class DeleteFilesConsole {\n\tconstructor(private deleteFilesUc: DeleteFilesUc, private logger: LegacyLogger) {\n\t\tthis.logger.setContext(DeleteFilesConsole.name);\n\t}\n\n\t@Command({\n\t\tcommand: 'cleanup-job [batchSize]',\n\t\tdescription: 'cleanup job to remove files that were marked for deletion days ago',\n\t})\n\tasync deleteMarkedFiles(daysSinceDeletion: number, batchSize = 1000): Promise {\n\t\tthis.logger.log(\n\t\t\t`Start cleanup job: Deleting files that were marked for deletion at least ${daysSinceDeletion} days ago; batch size: ${batchSize}`\n\t\t);\n\t\tconst thresholdDate = new Date();\n\t\tthresholdDate.setDate(thresholdDate.getDate() - daysSinceDeletion);\n\n\t\tawait this.deleteFilesUc.deleteMarkedFiles(thresholdDate, Number(batchSize));\n\t\tthis.logger.log('cleanup job finished');\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DeleteFilesUc.html":{"url":"injectables/DeleteFilesUc.html","title":"injectable - DeleteFilesUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DeleteFilesUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/uc/delete-files.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n s3ClientMap\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createClient\n \n \n Private\n Async\n deleteFile\n \n \n Private\n Async\n deleteFileInStorage\n \n \n Public\n Async\n deleteMarkedFiles\n \n \n Private\n Async\n initializeS3ClientMap\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(filesRepo: FilesRepo, storageProviderRepo: StorageProviderRepo, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n filesRepo\n \n \n FilesRepo\n \n \n \n No\n \n \n \n \n storageProviderRepo\n \n \n StorageProviderRepo\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createClient\n \n \n \n \n \n \n \n createClient(storageProvider: StorageProviderEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n storageProvider\n \n StorageProviderEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : S3Client\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteFile\n \n \n \n \n \n \n \n deleteFile(file: FileEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n file\n \n FileEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteFileInStorage\n \n \n \n \n \n \n \n deleteFileInStorage(file: FileEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n file\n \n FileEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n deleteMarkedFiles\n \n \n \n \n \n \n \n deleteMarkedFiles(thresholdDate: Date, batchSize: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n thresholdDate\n \n Date\n \n\n \n No\n \n\n\n \n \n batchSize\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n initializeS3ClientMap\n \n \n \n \n \n \n \n initializeS3ClientMap()\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:66\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n s3ClientMap\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:12\n \n \n\n\n \n \n\n\n \n\n\n \n import { DeleteObjectCommand, S3Client } from '@aws-sdk/client-s3';\nimport { Injectable } from '@nestjs/common';\nimport { StorageProviderEntity } from '@shared/domain';\nimport { StorageProviderRepo } from '@shared/repo/storageprovider';\nimport { LegacyLogger } from '@src/core/logger';\nimport { FilesRepo } from '../repo';\nimport { FileEntity } from '../entity';\n\n@Injectable()\nexport class DeleteFilesUc {\n\tprivate s3ClientMap: Map = new Map();\n\n\tconstructor(\n\t\tprivate readonly filesRepo: FilesRepo,\n\t\tprivate readonly storageProviderRepo: StorageProviderRepo,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(DeleteFilesUc.name);\n\t}\n\n\tpublic async deleteMarkedFiles(thresholdDate: Date, batchSize: number): Promise {\n\t\tawait this.initializeS3ClientMap();\n\n\t\tlet batchCounter = 0;\n\t\tlet numberOfFilesInBatch = 0;\n\t\tlet numberOfProcessedFiles = 0;\n\t\tconst failingFileIds: string[] = [];\n\n\t\tdo {\n\t\t\tconst offset = failingFileIds.length;\n\t\t\tconst files = await this.filesRepo.findForCleanup(thresholdDate, batchSize, offset);\n\n\t\t\tconst promises = files.map((file) => this.deleteFile(file));\n\t\t\tconst results = await Promise.all(promises);\n\n\t\t\tlet numberOfFailingFilesInBatch = 0;\n\n\t\t\tresults.forEach((result) => {\n\t\t\t\tif (!result.success) {\n\t\t\t\t\tfailingFileIds.push(result.fileId);\n\t\t\t\t\tnumberOfFailingFilesInBatch += 1;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tnumberOfFilesInBatch = files.length;\n\t\t\tnumberOfProcessedFiles += files.length;\n\t\t\tbatchCounter += 1;\n\n\t\t\tthis.logger.log(\n\t\t\t\t`Finished batch ${batchCounter} with ${numberOfFilesInBatch} files and ${numberOfFailingFilesInBatch} failed deletions`\n\t\t\t);\n\t\t} while (numberOfFilesInBatch > 0);\n\n\t\tthis.logger.log(\n\t\t\t`${\n\t\t\t\tnumberOfProcessedFiles - failingFileIds.length\n\t\t\t} out of ${numberOfProcessedFiles} files were successfully deleted`\n\t\t);\n\n\t\tif (failingFileIds.length > 0) {\n\t\t\tthis.logger.error(`the following files could not be deleted: ${failingFileIds.toString()}`);\n\t\t}\n\t}\n\n\tprivate async initializeS3ClientMap() {\n\t\tconst providers = await this.storageProviderRepo.findAll();\n\n\t\tproviders.forEach((provider) => {\n\t\t\tthis.s3ClientMap.set(provider.id, this.createClient(provider));\n\t\t});\n\n\t\tthis.logger.log(`Initialized s3ClientMap with ${this.s3ClientMap.size} clients.`);\n\t}\n\n\tprivate createClient(storageProvider: StorageProviderEntity): S3Client {\n\t\tconst client = new S3Client({\n\t\t\tendpoint: storageProvider.endpointUrl,\n\t\t\tforcePathStyle: true,\n\t\t\tregion: storageProvider.region,\n\t\t\ttls: true,\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: storageProvider.accessKeyId,\n\t\t\t\tsecretAccessKey: storageProvider.secretAccessKey,\n\t\t\t},\n\t\t});\n\n\t\treturn client;\n\t}\n\n\tprivate async deleteFile(file: FileEntity): Promise {\n\t\ttry {\n\t\t\tif (!file.isDirectory) {\n\t\t\t\tawait this.deleteFileInStorage(file);\n\t\t\t}\n\t\t\tawait this.filesRepo.delete(file);\n\n\t\t\treturn { fileId: file.id, success: true };\n\t\t} catch (error) {\n\t\t\tthis.logger.error(error);\n\n\t\t\treturn { fileId: file.id, success: false };\n\t\t}\n\t}\n\n\tprivate async deleteFileInStorage(file: FileEntity) {\n\t\tconst bucket = file.bucket as string;\n\t\tconst storageFileName = file.storageFileName as string;\n\t\tconst deletionCommand = new DeleteObjectCommand({ Bucket: bucket, Key: storageFileName });\n\n\t\tconst storageProvider = file.storageProvider as StorageProviderEntity;\n\t\tconst client = this.s3ClientMap.get(storageProvider.id) as S3Client;\n\n\t\tawait client.send(deletionCommand);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DeprecatedVideoConferenceInfoResponse.html":{"url":"classes/DeprecatedVideoConferenceInfoResponse.html","title":"class - DeprecatedVideoConferenceInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DeprecatedVideoConferenceInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts\n \n\n \n Deprecated\n \n \n Please use new video conference response classes\n \n\n\n \n Extends\n \n \n VideoConferenceBaseResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n options\n \n \n permission\n \n \n state\n \n \n Optional\n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: DeprecatedVideoConferenceInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:43\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n DeprecatedVideoConferenceInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n options\n \n \n \n \n \n \n Type : literal type\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceStateResponse\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n status\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:8\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceStateResponse } from './video-conference-state.response';\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class VideoConferenceBaseResponse {\n\tstatus?: string;\n\n\tstate: VideoConferenceStateResponse;\n\n\tpermission: Permission;\n\n\tconstructor(resp: VideoConferenceBaseResponse) {\n\t\tthis.status = 'SUCCESS';\n\t\tthis.state = resp.state;\n\t\tthis.permission = resp.permission;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceJoinResponse extends VideoConferenceBaseResponse {\n\turl?: string;\n\n\tconstructor(resp: DeprecatedVideoConferenceJoinResponse) {\n\t\tsuper(resp);\n\t\tthis.url = resp.url;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceInfoResponse extends VideoConferenceBaseResponse {\n\toptions?: {\n\t\teveryAttendeeJoinsMuted: boolean;\n\n\t\teverybodyJoinsAsModerator: boolean;\n\n\t\tmoderatorMustApproveJoinRequests: boolean;\n\t};\n\n\tconstructor(resp: DeprecatedVideoConferenceInfoResponse) {\n\t\tsuper(resp);\n\t\tthis.options = resp.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DeprecatedVideoConferenceJoinResponse.html":{"url":"classes/DeprecatedVideoConferenceJoinResponse.html","title":"class - DeprecatedVideoConferenceJoinResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DeprecatedVideoConferenceJoinResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts\n \n\n \n Deprecated\n \n \n Please use new video conference response classes\n \n\n\n \n Extends\n \n \n VideoConferenceBaseResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n url\n \n \n permission\n \n \n state\n \n \n Optional\n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: DeprecatedVideoConferenceJoinResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:25\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n DeprecatedVideoConferenceJoinResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceStateResponse\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n status\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:8\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceStateResponse } from './video-conference-state.response';\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class VideoConferenceBaseResponse {\n\tstatus?: string;\n\n\tstate: VideoConferenceStateResponse;\n\n\tpermission: Permission;\n\n\tconstructor(resp: VideoConferenceBaseResponse) {\n\t\tthis.status = 'SUCCESS';\n\t\tthis.state = resp.state;\n\t\tthis.permission = resp.permission;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceJoinResponse extends VideoConferenceBaseResponse {\n\turl?: string;\n\n\tconstructor(resp: DeprecatedVideoConferenceJoinResponse) {\n\t\tsuper(resp);\n\t\tthis.url = resp.url;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceInfoResponse extends VideoConferenceBaseResponse {\n\toptions?: {\n\t\teveryAttendeeJoinsMuted: boolean;\n\n\t\teverybodyJoinsAsModerator: boolean;\n\n\t\tmoderatorMustApproveJoinRequests: boolean;\n\t};\n\n\tconstructor(resp: DeprecatedVideoConferenceInfoResponse) {\n\t\tsuper(resp);\n\t\tthis.options = resp.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DoBaseFactory.html":{"url":"classes/DoBaseFactory.html","title":"class - DoBaseFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DoBaseFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/do-base.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BuildOptions, DeepPartial } from 'fishery';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseFactory } from '../base.factory';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class DoBaseFactory extends BaseFactory {\n\toverride buildWithId(params?: DeepPartial, id?: string, options: BuildOptions = {}): T {\n\t\tconst entity: T = this.build(params, options);\n\t\tObject.defineProperty(entity, 'id', { value: id ?? new ObjectId().toHexString(), writable: true });\n\n\t\treturn entity;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DomainObject.html":{"url":"classes/DomainObject.html","title":"class - DomainObject","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DomainObject\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domain-object.ts\n \n\n\n\n\n \n Implements\n \n \n AuthorizableObject\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n id\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: T)\n \n \n \n \n Defined in apps/server/src/shared/domain/domain-object.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n T\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domain-object.ts:8\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domain-object.ts:18\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n id\n \n \n\n \n \n getid()\n \n \n \n \n Defined in apps/server/src/shared/domain/domain-object.ts:14\n \n \n\n \n \n\n \n\n\n \n import { EntityId } from './types';\n\nexport interface AuthorizableObject {\n\tget id(): EntityId;\n}\n\nexport abstract class DomainObject implements AuthorizableObject {\n\tprotected props: T;\n\n\tconstructor(props: T) {\n\t\tthis.props = props;\n\t}\n\n\tpublic get id(): EntityId {\n\t\treturn this.props.id;\n\t}\n\n\tpublic getProps(): T {\n\t\tconst copyProps = { ...this.props };\n\n\t\treturn copyProps;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DomainObjectFactory.html":{"url":"classes/DomainObjectFactory.html","title":"class - DomainObjectFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DomainObjectFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/domain-object.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { MethodNotAllowedException } from '@nestjs/common';\nimport { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { BuildOptions, DeepPartial } from 'fishery';\nimport { BaseFactory } from '../base.factory';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class DomainObjectFactory,\n\tU extends AuthorizableObject = T extends DomainObject ? X : never,\n\tI = any,\n\tC = U\n> extends BaseFactory {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\toverride buildWithId(params?: DeepPartial, id?: string, options: BuildOptions = {}): T {\n\t\tthrow new MethodNotAllowedException(\n\t\t\t'Domain Objects are always generated with an id. Use .build({ id: ... }) to set an id.'\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DownloadFileParams.html":{"url":"classes/DownloadFileParams.html","title":"class - DownloadFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DownloadFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n fileRecordId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n fileRecordId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:47\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DtoCreator.html":{"url":"classes/DtoCreator.html","title":"class - DtoCreator","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DtoCreator\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n authorisationService\n \n \n board\n \n \n room\n \n \n roomsAuthorisationService\n \n \n user\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n buildDTOWithElements\n \n \n Private\n createTaskStatus\n \n \n Private\n filterByPermission\n \n \n Private\n isColumnBoardFeatureFlagActive\n \n \n Private\n isTeacher\n \n \n manufacture\n \n \n Private\n mapColumnBoardElement\n \n \n Private\n mapLessonElement\n \n \n Private\n mapTaskElement\n \n \n Private\n mapToElementDTOs\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: literal type)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:37\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n literal type\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n authorisationService\n \n \n \n \n \n \n Type : AuthorizationService\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n board\n \n \n \n \n \n \n Type : Board\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n room\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n roomsAuthorisationService\n \n \n \n \n \n \n Type : RoomsAuthorisationService\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:33\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n buildDTOWithElements\n \n \n \n \n \n \n \n buildDTOWithElements(elements: RoomBoardElementDTO[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:174\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n RoomBoardElementDTO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardDTO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createTaskStatus\n \n \n \n \n \n \n \n createTaskStatus(task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:130\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ITaskStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n filterByPermission\n \n \n \n \n \n \n \n filterByPermission(elements: BoardElement[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n BoardElement[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isColumnBoardFeatureFlagActive\n \n \n \n \n \n \n \n isColumnBoardFeatureFlagActive()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:90\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n isTeacher\n \n \n \n \n \n \n \n isTeacher()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:96\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n manufacture\n \n \n \n \n \n \nmanufacture()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:59\n \n \n\n\n \n \n\n \n Returns : RoomBoardDTO\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n mapColumnBoardElement\n \n \n \n \n \n \n \n mapColumnBoardElement(element: BoardElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:159\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n BoardElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardElementDTO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapLessonElement\n \n \n \n \n \n \n \n mapLessonElement(element: BoardElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:140\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n BoardElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardElementDTO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapTaskElement\n \n \n \n \n \n \n \n mapTaskElement(element: BoardElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n BoardElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardElementDTO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapToElementDTOs\n \n \n \n \n \n \n \n mapToElementDTOs(elements: BoardElement[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n BoardElement[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : {}\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tBoard,\n\tBoardElement,\n\tBoardElementType,\n\tColumnboardBoardElement,\n\tColumnBoardTarget,\n\tCourse,\n\tITaskStatus,\n\tLessonEntity,\n\tPermission,\n\tTask,\n\tTaskWithStatusVo,\n\tUser,\n} from '@shared/domain';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport {\n\tColumnBoardMetaData,\n\tLessonMetaData,\n\tRoomBoardDTO,\n\tRoomBoardElementDTO,\n\tRoomBoardElementTypes,\n} from '../types/room-board.types';\nimport { RoomsAuthorisationService } from './rooms.authorisation.service';\n\nclass DtoCreator {\n\troom: Course;\n\n\tboard: Board;\n\n\tuser: User;\n\n\tauthorisationService: AuthorizationService;\n\n\troomsAuthorisationService: RoomsAuthorisationService;\n\n\tconstructor({\n\t\troom,\n\t\tboard,\n\t\tuser,\n\t\tauthorisationService,\n\t\troomsAuthorisationService,\n\t}: {\n\t\troom: Course;\n\t\tboard: Board;\n\t\tuser: User;\n\t\tauthorisationService: AuthorizationService;\n\t\troomsAuthorisationService: RoomsAuthorisationService;\n\t}) {\n\t\tthis.room = room;\n\t\tthis.board = board;\n\t\tthis.user = user;\n\t\tthis.authorisationService = authorisationService;\n\t\tthis.roomsAuthorisationService = roomsAuthorisationService;\n\t}\n\n\tmanufacture(): RoomBoardDTO {\n\t\tconst elements = this.board.getElements();\n\t\tconst filtered = this.filterByPermission(elements);\n\n\t\tconst mappedElements = this.mapToElementDTOs(filtered);\n\t\tconst dto = this.buildDTOWithElements(mappedElements);\n\t\treturn dto;\n\t}\n\n\tprivate filterByPermission(elements: BoardElement[]) {\n\t\tconst filtered = elements.filter((element) => {\n\t\t\tlet result = false;\n\t\t\tif (element.boardElementType === BoardElementType.Task) {\n\t\t\t\tresult = this.roomsAuthorisationService.hasTaskReadPermission(this.user, element.target as Task);\n\t\t\t}\n\n\t\t\tif (element.boardElementType === BoardElementType.Lesson) {\n\t\t\t\tresult = this.roomsAuthorisationService.hasLessonReadPermission(this.user, element.target as LessonEntity);\n\t\t\t}\n\n\t\t\tif (element instanceof ColumnboardBoardElement && this.isColumnBoardFeatureFlagActive()) {\n\t\t\t\tresult = this.authorisationService.hasPermission(this.user, this.room, {\n\t\t\t\t\taction: Action.read,\n\t\t\t\t\trequiredPermissions: [Permission.COURSE_VIEW],\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\t\treturn filtered;\n\t}\n\n\tprivate isColumnBoardFeatureFlagActive() {\n\t\tconst isActive = (Configuration.get('FEATURE_COLUMN_BOARD_ENABLED') as boolean) === true;\n\n\t\treturn isActive;\n\t}\n\n\tprivate isTeacher(): boolean {\n\t\tif (this.room.teachers.contains(this.user) || this.room.substitutionTeachers.contains(this.user)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate mapToElementDTOs(elements: BoardElement[]) {\n\t\tconst results: RoomBoardElementDTO[] = [];\n\t\telements.forEach((element) => {\n\t\t\tif (element.boardElementType === BoardElementType.Task) {\n\t\t\t\tconst mapped = this.mapTaskElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t\tif (element.boardElementType === BoardElementType.Lesson) {\n\t\t\t\tconst mapped = this.mapLessonElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t\tif (element.boardElementType === BoardElementType.ColumnBoard) {\n\t\t\t\tconst mapped = this.mapColumnBoardElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t}\n\n\tprivate mapTaskElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst task = element.target as Task;\n\t\tconst status = this.createTaskStatus(task);\n\n\t\tconst content = new TaskWithStatusVo(task, status);\n\t\treturn { type: RoomBoardElementTypes.TASK, content };\n\t}\n\n\tprivate createTaskStatus(task: Task): ITaskStatus {\n\t\tlet status: ITaskStatus;\n\t\tif (this.isTeacher()) {\n\t\t\tstatus = task.createTeacherStatusForUser(this.user);\n\t\t} else {\n\t\t\tstatus = task.createStudentStatusForUser(this.user);\n\t\t}\n\t\treturn status;\n\t}\n\n\tprivate mapLessonElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst type = RoomBoardElementTypes.LESSON;\n\t\tconst lesson = element.target as LessonEntity;\n\t\tconst content: LessonMetaData = {\n\t\t\tid: lesson.id,\n\t\t\tname: lesson.name,\n\t\t\thidden: lesson.hidden,\n\t\t\tcreatedAt: lesson.createdAt,\n\t\t\tupdatedAt: lesson.updatedAt,\n\t\t\tcourseName: lesson.course.name,\n\t\t\tnumberOfPublishedTasks: lesson.getNumberOfPublishedTasks(),\n\t\t};\n\t\tif (this.isTeacher()) {\n\t\t\tcontent.numberOfDraftTasks = lesson.getNumberOfDraftTasks();\n\t\t\tcontent.numberOfPlannedTasks = lesson.getNumberOfPlannedTasks();\n\t\t}\n\t\treturn { type, content };\n\t}\n\n\tprivate mapColumnBoardElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst type = RoomBoardElementTypes.COLUMN_BOARD;\n\t\tconst columnBoardTarget = element.target as ColumnBoardTarget;\n\t\tconst content: ColumnBoardMetaData = {\n\t\t\tid: columnBoardTarget.id,\n\t\t\tcolumnBoardId: columnBoardTarget.columnBoardId,\n\t\t\ttitle: columnBoardTarget.title,\n\t\t\tcreatedAt: columnBoardTarget.createdAt,\n\t\t\tupdatedAt: columnBoardTarget.updatedAt,\n\t\t\tpublished: columnBoardTarget.published,\n\t\t};\n\n\t\treturn { type, content };\n\t}\n\n\tprivate buildDTOWithElements(elements: RoomBoardElementDTO[]): RoomBoardDTO {\n\t\tconst dto = {\n\t\t\troomId: this.room.id,\n\t\t\tdisplayColor: this.room.color,\n\t\t\ttitle: this.room.name,\n\t\t\telements,\n\t\t\tisArchived: this.room.isFinished(),\n\t\t};\n\t\treturn dto;\n\t}\n}\n\n@Injectable()\nexport class RoomBoardDTOFactory {\n\tconstructor(\n\t\tprivate readonly authorisationService: AuthorizationService,\n\t\tprivate readonly roomsAuthorisationService: RoomsAuthorisationService\n\t) {}\n\n\tcreateDTO({ room, board, user }: { room: Course; board: Board; user: User }): RoomBoardDTO {\n\t\tconst worker = new DtoCreator({\n\t\t\troom,\n\t\t\tboard,\n\t\t\tuser,\n\t\t\tauthorisationService: this.authorisationService,\n\t\t\troomsAuthorisationService: this.roomsAuthorisationService,\n\t\t});\n\t\tconst result = worker.manufacture();\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DurationLoggingInterceptor.html":{"url":"injectables/DurationLoggingInterceptor.html","title":"injectable - DurationLoggingInterceptor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DurationLoggingInterceptor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/interceptor/duration-logging.interceptor.ts\n \n\n\n \n Description\n \n \n This interceptor is logging the duration of a REST call.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n intercept\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/common/interceptor/duration-logging.interceptor.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n intercept\n \n \n \n \n \n \nintercept(context: ExecutionContext, next: CallHandler)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/interceptor/duration-logging.interceptor.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n context\n \n ExecutionContext\n \n\n \n No\n \n\n\n \n \n next\n \n CallHandler\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Observable<>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\n/**\n * This interceptor is logging the duration of a REST call.\n */\n@Injectable()\nexport class DurationLoggingInterceptor implements NestInterceptor {\n\tconstructor(private logger: LegacyLogger) {\n\t\tlogger.setContext(DurationLoggingInterceptor.name);\n\t}\n\n\tintercept(context: ExecutionContext, next: CallHandler): Observable {\n\t\tthis.logger.log('Before...');\n\t\tconst now = Date.now();\n\t\treturn next.handle().pipe(tap(() => this.logger.log(`After... ${Date.now() - now}ms`)));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ElementContentBody.html":{"url":"classes/ElementContentBody.html","title":"class - ElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ElementContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ContentElementType, description: 'the type of the updated element', enumName: 'ContentElementType'})@IsEnum(ContentElementType)\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ElementController.html":{"url":"controllers/ElementController.html","title":"controller - ElementController","body":"\n \n\n\n\n\n\n\n Controllers\n ElementController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/element.controller.ts\n \n\n \n Prefix\n \n \n elements\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSubmissionItem\n \n \n \n \n \n \n \n \n \n Async\n deleteElement\n \n \n \n \n \n \n \n \n \n Async\n moveElement\n \n \n \n \n \n \n \n \n \n \n Async\n updateElement\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSubmissionItem\n \n \n \n \n \n \n \n createSubmissionItem(urlParams: ContentElementUrlParams, bodyParams: CreateSubmissionItemBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new submission item having parent a submission container element.'})@ApiExtraModels(SubmissionItemResponse)@ApiResponse({status: 201, type: SubmissionItemResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@ApiBody({required: true, type: CreateSubmissionItemBodyParams})@Post(':contentElementId/submissions')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.controller.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ContentElementUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n CreateSubmissionItemBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteElement\n \n \n \n \n \n \n \n deleteElement(urlParams: ContentElementUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Delete a single content element.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Delete(':contentElementId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.controller.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ContentElementUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveElement\n \n \n \n \n \n \n \n moveElement(urlParams: ContentElementUrlParams, bodyParams: MoveContentElementBody, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Move a single content element.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Put(':contentElementId/position')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.controller.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ContentElementUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n MoveContentElementBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateElement\n \n \n \n \n \n \n \n updateElement(urlParams: ContentElementUrlParams, bodyParams: UpdateElementContentBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update a single content element.'})@ApiExtraModels(FileElementContentBody, RichTextElementContentBody, SubmissionContainerElementContentBody)@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':contentElementId/content')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.controller.ts:67\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ContentElementUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n UpdateElementContentBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\n\tPut,\n} from '@nestjs/common';\nimport { ApiBody, ApiExtraModels, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CardUc } from '../uc';\nimport { ElementUc } from '../uc/element.uc';\nimport {\n\tContentElementUrlParams,\n\tCreateSubmissionItemBodyParams,\n\tMoveContentElementBody,\n\tSubmissionItemResponse,\n} from './dto';\nimport {\n\tFileElementContentBody,\n\tRichTextElementContentBody,\n\tSubmissionContainerElementContentBody,\n\tUpdateElementContentBodyParams,\n} from './dto/element/update-element-content.body.params';\nimport { SubmissionItemResponseMapper } from './mapper';\n\n@ApiTags('Board Element')\n@Authenticate('jwt')\n@Controller('elements')\nexport class ElementController {\n\tconstructor(private readonly cardUc: CardUc, private readonly elementUc: ElementUc) {}\n\n\t@ApiOperation({ summary: 'Move a single content element.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Put(':contentElementId/position')\n\tasync moveElement(\n\t\t@Param() urlParams: ContentElementUrlParams,\n\t\t@Body() bodyParams: MoveContentElementBody,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.cardUc.moveElement(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.contentElementId,\n\t\t\tbodyParams.toCardId,\n\t\t\tbodyParams.toPosition\n\t\t);\n\t}\n\n\t@ApiOperation({ summary: 'Update a single content element.' })\n\t@ApiExtraModels(FileElementContentBody, RichTextElementContentBody, SubmissionContainerElementContentBody)\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':contentElementId/content')\n\tasync updateElement(\n\t\t@Param() urlParams: ContentElementUrlParams,\n\t\t@Body() bodyParams: UpdateElementContentBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.elementUc.updateElementContent(currentUser.userId, urlParams.contentElementId, bodyParams.data.content);\n\t}\n\n\t@ApiOperation({ summary: 'Delete a single content element.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Delete(':contentElementId')\n\tasync deleteElement(\n\t\t@Param() urlParams: ContentElementUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.cardUc.deleteElement(currentUser.userId, urlParams.contentElementId);\n\t}\n\n\t@ApiOperation({ summary: 'Create a new submission item having parent a submission container element.' })\n\t@ApiExtraModels(SubmissionItemResponse)\n\t@ApiResponse({ status: 201, type: SubmissionItemResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@ApiBody({ required: true, type: CreateSubmissionItemBodyParams })\n\t@Post(':contentElementId/submissions')\n\tasync createSubmissionItem(\n\t\t@Param() urlParams: ContentElementUrlParams,\n\t\t@Body() bodyParams: CreateSubmissionItemBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst submissionItem = await this.elementUc.createSubmissionItem(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.contentElementId,\n\t\t\tbodyParams.completed\n\t\t);\n\t\tconst mapper = SubmissionItemResponseMapper.getInstance();\n\t\tconst response = mapper.mapToResponse(submissionItem);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ElementUc.html":{"url":"injectables/ElementUc.html","title":"injectable - ElementUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ElementUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/element.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n Async\n createSubmissionItem\n \n \n Async\n updateElementContent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, elementService: ContentElementService, submissionItemService: SubmissionItemService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/element.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n elementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n submissionItemService\n \n \n SubmissionItemService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.uc.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n requiredUserRole\n \n UserRoleEnum\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSubmissionItem\n \n \n \n \n \n \n \n createSubmissionItem(userId: EntityId, contentElementId: EntityId, completed: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.uc.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contentElementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n completed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateElementContent\n \n \n \n \n \n \n \n updateElementContent(userId: EntityId, elementId: EntityId, content: FileContentBody | RichTextContentBody | SubmissionContainerContentBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.uc.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n content\n \n FileContentBody | RichTextContentBody | SubmissionContainerContentBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, HttpException, HttpStatus, Inject, Injectable } from '@nestjs/common';\nimport { AnyBoardDo, EntityId, SubmissionContainerElement, SubmissionItem, UserRoleEnum } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport { FileContentBody, RichTextContentBody, SubmissionContainerContentBody } from '../controller/dto';\nimport { BoardDoAuthorizableService, ContentElementService } from '../service';\nimport { SubmissionItemService } from '../service/submission-item.service';\n\n@Injectable()\nexport class ElementUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly elementService: ContentElementService,\n\t\tprivate readonly submissionItemService: SubmissionItemService,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tthis.logger.setContext(ElementUc.name);\n\t}\n\n\tasync updateElementContent(\n\t\tuserId: EntityId,\n\t\telementId: EntityId,\n\t\tcontent: FileContentBody | RichTextContentBody | SubmissionContainerContentBody\n\t) {\n\t\tconst element = await this.elementService.findById(elementId);\n\n\t\tawait this.checkPermission(userId, element, Action.write);\n\n\t\tawait this.elementService.update(element, content);\n\t}\n\n\tasync createSubmissionItem(\n\t\tuserId: EntityId,\n\t\tcontentElementId: EntityId,\n\t\tcompleted: boolean\n\t): Promise {\n\t\tconst submissionContainer = (await this.elementService.findById(contentElementId)) as SubmissionContainerElement;\n\n\t\tif (!(submissionContainer instanceof SubmissionContainerElement))\n\t\t\tthrow new HttpException(\n\t\t\t\t'Cannot create submission-item for non submission-container-element',\n\t\t\t\tHttpStatus.UNPROCESSABLE_ENTITY\n\t\t\t);\n\n\t\tif (!submissionContainer.children.every((child) => child instanceof SubmissionItem))\n\t\t\tthrow new HttpException(\n\t\t\t\t'Children of submission-container-element must be of type submission-item',\n\t\t\t\tHttpStatus.UNPROCESSABLE_ENTITY\n\t\t\t);\n\n\t\tconst userSubmissionExists = submissionContainer.children.find(\n\t\t\t(item) => (item as SubmissionItem).userId === userId\n\t\t);\n\t\tif (userSubmissionExists) {\n\t\t\tthrow new HttpException(\n\t\t\t\t'User is not allowed to have multiple submission-items per submission-container-element',\n\t\t\t\tHttpStatus.NOT_ACCEPTABLE\n\t\t\t);\n\t\t}\n\n\t\tawait this.checkPermission(userId, submissionContainer, Action.read, UserRoleEnum.STUDENT);\n\n\t\tconst submissionItem = await this.submissionItemService.create(userId, submissionContainer, { completed });\n\n\t\treturn submissionItem;\n\t}\n\n\tprivate async checkPermission(\n\t\tuserId: EntityId,\n\t\tboardDo: AnyBoardDo,\n\t\taction: Action,\n\t\trequiredUserRole?: UserRoleEnum\n\t): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tif (requiredUserRole) boardDoAuthorizable.requiredUserRole = requiredUserRole;\n\t\tconst context = { action, requiredPermissions: [] };\n\n\t\treturn this.authorizationService.checkPermission(user, boardDoAuthorizable, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/EncryptionModule.html":{"url":"modules/EncryptionModule.html","title":"module - EncryptionModule","body":"\n \n\n\n\n\n Modules\n EncryptionModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_EncryptionModule\n\n\n\ncluster_EncryptionModule_imports\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nEncryptionModule -->\n\nLoggerModule->EncryptionModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/encryption/encryption.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { DefaultEncryptionService, LdapEncryptionService } from './encryption.interface';\nimport { SymetricKeyEncryptionService } from './encryption.service';\n\nfunction encryptionProviderFactory(configService: ConfigService, logger: LegacyLogger, aesKey: string) {\n\tconst key = configService.get(aesKey);\n\treturn new SymetricKeyEncryptionService(logger, key);\n}\n\n@Module({\n\timports: [LoggerModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: DefaultEncryptionService,\n\t\t\tuseFactory: (configService: ConfigService, logger: LegacyLogger) =>\n\t\t\t\tencryptionProviderFactory(configService, logger, 'AES_KEY'),\n\t\t\tinject: [ConfigService, LegacyLogger],\n\t\t},\n\t\t{\n\t\t\tprovide: LdapEncryptionService,\n\t\t\tuseFactory: (configService: ConfigService, logger: LegacyLogger) =>\n\t\t\t\tencryptionProviderFactory(configService, logger, 'LDAP_PASSWORD_ENCRYPTION_KEY'),\n\t\t\tinject: [ConfigService, LegacyLogger],\n\t\t},\n\t],\n\texports: [DefaultEncryptionService, LdapEncryptionService],\n})\nexport class EncryptionModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/EntityNotFoundError.html":{"url":"classes/EntityNotFoundError.html","title":"class - EntityNotFoundError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n EntityNotFoundError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/entity-not-found.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(entityName: string, details?: Record)\n \n \n \n \n Defined in apps/server/src/shared/common/error/entity-not-found.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityName\n \n \n string\n \n \n \n No\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class EntityNotFoundError extends BusinessError {\n\tconstructor(readonly entityName: string, details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'ENTITY_NOT_FOUND',\n\t\t\t\ttitle: 'Entity Not Found',\n\t\t\t\tdefaultMessage: `${entityName} entity not found.`,\n\t\t\t},\n\t\t\tHttpStatus.NOT_FOUND,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ErrorLoggable.html":{"url":"classes/ErrorLoggable.html","title":"class - ErrorLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ErrorLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/loggable/error.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n classValidatorMetadataStorage\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createLogMessageForValidationErrors\n \n \n getLogMessage\n \n \n Private\n getPropertyValue\n \n \n Private\n isPropertyPrivacyProtected\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(error: Error)\n \n \n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n \n Error\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n classValidatorMetadataStorage\n \n \n \n \n \n \n Default value : getMetadataStorage()\n \n \n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:11\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createLogMessageForValidationErrors\n \n \n \n \n \n \n \n createLogMessageForValidationErrors(error: ApiValidationError)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n ApiValidationError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : { validationErrors: any; type: string; }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:13\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n getPropertyValue\n \n \n \n \n \n \n \n getPropertyValue(e: ValidationError)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n e\n \n ValidationError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isPropertyPrivacyProtected\n \n \n \n \n \n \n \n isPropertyPrivacyProtected(target: Record, property: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n target\n \n Record\n \n\n \n No\n \n\n\n \n \n property\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ApiValidationError } from '@shared/common';\nimport { getMetadataStorage } from 'class-validator';\nimport { ValidationError } from '@nestjs/common';\nimport { Loggable } from '../../logger/interfaces';\nimport { ErrorLogMessage, ValidationErrorLogMessage } from '../../logger/types';\nimport { ErrorUtils } from '../utils/error.utils';\n\nexport class ErrorLoggable implements Loggable {\n\tconstructor(private readonly error: Error) {}\n\n\tprivate readonly classValidatorMetadataStorage = getMetadataStorage();\n\n\tgetLogMessage(): ErrorLogMessage | ValidationErrorLogMessage {\n\t\tlet logMessage: ErrorLogMessage | ValidationErrorLogMessage = {\n\t\t\terror: this.error,\n\t\t\ttype: '',\n\t\t};\n\n\t\tif (this.error instanceof ApiValidationError) {\n\t\t\tlogMessage = this.createLogMessageForValidationErrors(this.error);\n\t\t} else if (ErrorUtils.isFeathersError(this.error)) {\n\t\t\tlogMessage.type = 'Feathers Error';\n\t\t} else if (ErrorUtils.isBusinessError(this.error)) {\n\t\t\tlogMessage.type = 'Business Error';\n\t\t} else if (ErrorUtils.isNestHttpException(this.error)) {\n\t\t\tlogMessage.type = 'Technical Error';\n\t\t} else {\n\t\t\tlogMessage.type = 'Unhandled or Unknown Error';\n\t\t}\n\n\t\treturn logMessage;\n\t}\n\n\tprivate createLogMessageForValidationErrors(error: ApiValidationError) {\n\t\tconst errorMessages = error.validationErrors.map((e) => {\n\t\t\tconst value = this.getPropertyValue(e);\n\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\tconst message = `Wrong property value for '${e.property}' got '${value}' : ${JSON.stringify(e.constraints)}`;\n\t\t\treturn message;\n\t\t});\n\t\treturn {\n\t\t\tvalidationErrors: errorMessages,\n\t\t\ttype: 'API Validation Error',\n\t\t};\n\t}\n\n\tprivate getPropertyValue(e: ValidationError): unknown {\n\t\t// we can only log a value if we can decide if it is privacy protected\n\t\t// that has to be done using the target metadata of class-validator (see @PrivacyProtect decorator)\n\t\tif (e.target && !this.isPropertyPrivacyProtected(e.target, e.property)) {\n\t\t\treturn e.value;\n\t\t}\n\t\treturn '######';\n\t}\n\n\tprivate isPropertyPrivacyProtected(target: Record, property: string): boolean {\n\t\tconst metadatas = this.classValidatorMetadataStorage.getTargetValidationMetadatas(\n\t\t\ttarget.constructor,\n\t\t\t'',\n\t\t\ttrue,\n\t\t\ttrue\n\t\t);\n\n\t\tconst privacyProtected = metadatas.some(\n\t\t\t(validationMetadata) =>\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tvalidationMetadata.propertyName === property && validationMetadata.context?.privacyProtected\n\t\t);\n\n\t\treturn privacyProtected;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ErrorLogger.html":{"url":"injectables/ErrorLogger.html","title":"injectable - ErrorLogger","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ErrorLogger\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/error-logger.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n alert\n \n \n crit\n \n \n emerg\n \n \n error\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: WinstonLogger)\n \n \n \n \n Defined in apps/server/src/core/logger/error-logger.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n WinstonLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n alert\n \n \n \n \n \n \nalert(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/error-logger.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n crit\n \n \n \n \n \n \ncrit(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/error-logger.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n emerg\n \n \n \n \n \n \nemerg(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/error-logger.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n error\n \n \n \n \n \n \nerror(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/error-logger.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable } from '@nestjs/common';\nimport { WINSTON_MODULE_PROVIDER } from 'nest-winston';\nimport { Logger as WinstonLogger } from 'winston';\nimport { Loggable } from './interfaces';\nimport { LoggingUtils } from './logging.utils';\n\n// ErrorLogger may only be used in the ErrorModule. Do not use it in other modules!\n@Injectable()\nexport class ErrorLogger {\n\tconstructor(@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: WinstonLogger) {}\n\n\temerg(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable);\n\t\tthis.logger.emerg(message);\n\t}\n\n\talert(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable);\n\t\tthis.logger.alert(message);\n\t}\n\n\tcrit(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable);\n\t\tthis.logger.crit(message);\n\t}\n\n\terror(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable);\n\t\tthis.logger.error(message);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ErrorMapper.html":{"url":"classes/ErrorMapper.html","title":"class - ErrorMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ErrorMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/mapper/error.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapRpcErrorResponseToDomainError\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapRpcErrorResponseToDomainError\n \n \n \n \n \n \n \n mapRpcErrorResponseToDomainError(errorObj: IError)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/error.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n errorObj\n \n IError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BadRequestException | ForbiddenException | InternalServerErrorException\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, ForbiddenException, InternalServerErrorException } from '@nestjs/common';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { IError } from '@shared/infra/rabbitmq';\n\nexport class ErrorMapper {\n\tstatic mapRpcErrorResponseToDomainError(\n\t\terrorObj: IError\n\t): BadRequestException | ForbiddenException | InternalServerErrorException {\n\t\tlet error: BadRequestException | ForbiddenException | InternalServerErrorException;\n\t\tif (errorObj.status === 400) {\n\t\t\terror = new BadRequestException(errorObj.message);\n\t\t} else if (errorObj.status === 403) {\n\t\t\terror = new ForbiddenException(errorObj.message);\n\t\t} else if (errorObj.status === 500) {\n\t\t\terror = new InternalServerErrorException(errorObj.message);\n\t\t} else {\n\t\t\terror = new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(errorObj));\n\t\t}\n\n\t\treturn error;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ErrorModule.html":{"url":"modules/ErrorModule.html","title":"module - ErrorModule","body":"\n \n\n\n\n\n Modules\n ErrorModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ErrorModule\n\n\n\ncluster_ErrorModule_imports\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nErrorModule\n\nErrorModule\n\nErrorModule -->\n\nLoggerModule->ErrorModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/error/error.module.ts\n \n\n\n\n \n Description\n \n \n Overrides the default global Exception Filter of NestJS provided by @APP_FILTER\n\n \n\n\n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { APP_FILTER } from '@nestjs/core';\nimport { LoggerModule } from '../logger';\nimport { GlobalErrorFilter } from './filter/global-error.filter';\n\n/**\n * Overrides the default global Exception Filter of NestJS provided by @APP_FILTER\n */\n@Module({\n\timports: [LoggerModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: APP_FILTER,\n\t\t\tuseClass: GlobalErrorFilter,\n\t\t},\n\t],\n})\nexport class ErrorModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ErrorResponse.html":{"url":"classes/ErrorResponse.html","title":"class - ErrorResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ErrorResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/dto/error.response.ts\n \n\n\n \n Description\n \n \n HTTP response definition for errors.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n code\n \n \n Readonly\n Optional\n details\n \n \n Readonly\n message\n \n \n Readonly\n title\n \n \n Readonly\n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(type: string, title: string, message: string, code: number, details?: Record)\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n \n string\n \n \n \n No\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n message\n \n \n string\n \n \n \n No\n \n \n \n \n code\n \n \n number\n \n \n \n No\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:25\n \n \n\n \n \n Must match HTTP error code\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:30\n \n \n\n \n \n Additional custom details about the error\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:20\n \n \n\n \n \n Additional custom information about the error\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:15\n \n \n\n \n \n Description about the type, unique by type, format: Sentence case\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:10\n \n \n\n \n \n Unambiguous error identifier, format: UPPERCASE_SNAKE_CASE\n\n \n \n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\n\n/**\n * HTTP response definition for errors.\n */\nexport class ErrorResponse {\n\t/**\n\t * Unambiguous error identifier, format: UPPERCASE_SNAKE_CASE\n\t */\n\treadonly type: string;\n\n\t/**\n\t * Description about the type, unique by type, format: Sentence case\n\t */\n\treadonly title: string;\n\n\t/**\n\t * Additional custom information about the error\n\t */\n\treadonly message: string;\n\n\t/**\n\t * Must match HTTP error code\n\t */\n\treadonly code: number;\n\n\t/**\n\t * Additional custom details about the error\n\t */\n\treadonly details?: Record;\n\n\tconstructor(\n\t\ttype: string,\n\t\ttitle: string,\n\t\tmessage: string,\n\t\tcode: number = HttpStatus.CONFLICT,\n\t\tdetails?: Record\n\t) {\n\t\tthis.type = type;\n\t\tthis.title = title;\n\t\tthis.message = message;\n\t\tthis.code = code;\n\t\tthis.details = details;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ErrorUtils.html":{"url":"classes/ErrorUtils.html","title":"class - ErrorUtils","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ErrorUtils\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/utils/error.utils.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n createHttpExceptionOptions\n \n \n Static\n isBusinessError\n \n \n Static\n isFeathersError\n \n \n Static\n isNestHttpException\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n createHttpExceptionOptions\n \n \n \n \n \n \n \n createHttpExceptionOptions(error, description?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/utils/error.utils.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n \n\n \n No\n \n\n\n \n \n description\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : HttpExceptionOptions\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isBusinessError\n \n \n \n \n \n \n \n isBusinessError(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/utils/error.utils.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BusinessError\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isFeathersError\n \n \n \n \n \n \n \n isFeathersError(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/utils/error.utils.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FeathersError\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isNestHttpException\n \n \n \n \n \n \n \n isNestHttpException(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/utils/error.utils.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : HttpException\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, HttpExceptionOptions } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\nimport { FeathersError } from '../interface';\n\nexport class ErrorUtils {\n\tstatic isFeathersError(error: unknown): error is FeathersError {\n\t\tlet isFeathersError = false;\n\n\t\tif (error instanceof Error && 'type' in error) {\n\t\t\tisFeathersError = (error as FeathersError)?.type === 'FeathersError';\n\t\t}\n\n\t\treturn isFeathersError;\n\t}\n\n\tstatic isBusinessError(error: unknown): error is BusinessError {\n\t\treturn error instanceof BusinessError;\n\t}\n\n\tstatic isNestHttpException(error: unknown): error is HttpException {\n\t\treturn error instanceof HttpException;\n\t}\n\n\tstatic createHttpExceptionOptions(error: unknown, description?: string): HttpExceptionOptions {\n\t\tlet causeError: Error | undefined;\n\n\t\tif (error instanceof Error) {\n\t\t\tcauseError = error;\n\t\t} else {\n\t\t\tcauseError = error ? new Error(JSON.stringify(error)) : undefined;\n\t\t}\n\n\t\treturn { cause: causeError, description };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/EtherpadService.html":{"url":"injectables/EtherpadService.html","title":"injectable - EtherpadService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n EtherpadService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/service/etherpad.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createEtherpad\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(feathersServiceProvider: FeathersServiceProvider, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/etherpad.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n feathersServiceProvider\n \n \n FeathersServiceProvider\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createEtherpad\n \n \n \n \n \n \n \n createEtherpad(userId: EntityId, courseId: string, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/etherpad.service.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n string\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain/types';\nimport { FeathersServiceProvider } from '@shared/infra/feathers/feathers-service.provider';\nimport { LegacyLogger } from '@src/core/logger';\n\nexport type PadResponse = { data: { padID: string } };\n\n@Injectable()\nexport class EtherpadService {\n\tconstructor(private readonly feathersServiceProvider: FeathersServiceProvider, private logger: LegacyLogger) {}\n\n\tasync createEtherpad(userId: EntityId, courseId: string, title: string): Promise {\n\t\tconst data = {\n\t\t\tcourseId,\n\t\t\tpadName: title,\n\t\t};\n\t\ttry {\n\t\t\tconst service = this.feathersServiceProvider.getService('/etherpad/pads');\n\t\t\tconst pad = (await service.create(data, { account: { userId } })) as PadResponse;\n\t\t\treturn pad.data.padID;\n\t\t} catch (error) {\n\t\t\tthis.logger.error('Could not create new Etherpad', error);\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalGroupDto.html":{"url":"classes/ExternalGroupDto.html","title":"class - ExternalGroupDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalGroupDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/external-group.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalId\n \n \n Optional\n externalOrganizationId\n \n \n from\n \n \n name\n \n \n type\n \n \n until\n \n \n users\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalGroupDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalGroupDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n externalOrganizationId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n from\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : GroupTypes\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n until\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : ExternalGroupUserDto[]\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { GroupTypes } from '@src/modules/group';\nimport { ExternalGroupUserDto } from './external-group-user.dto';\n\nexport class ExternalGroupDto {\n\texternalId: string;\n\n\tname: string;\n\n\tusers: ExternalGroupUserDto[];\n\n\tfrom: Date;\n\n\tuntil: Date;\n\n\ttype: GroupTypes;\n\n\texternalOrganizationId?: string;\n\n\tconstructor(props: ExternalGroupDto) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.name = props.name;\n\t\tthis.users = props.users;\n\t\tthis.from = props.from;\n\t\tthis.until = props.until;\n\t\tthis.type = props.type;\n\t\tthis.externalOrganizationId = props.externalOrganizationId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalGroupUserDto.html":{"url":"classes/ExternalGroupUserDto.html","title":"class - ExternalGroupUserDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalGroupUserDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/external-group-user.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalUserId\n \n \n roleName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalGroupUserDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group-user.dto.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalGroupUserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalUserId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group-user.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n roleName\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group-user.dto.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { RoleName } from '@shared/domain';\n\nexport class ExternalGroupUserDto {\n\texternalUserId: string;\n\n\troleName: RoleName;\n\n\tconstructor(props: ExternalGroupUserDto) {\n\t\tthis.externalUserId = props.externalUserId;\n\t\tthis.roleName = props.roleName;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalSchoolDto.html":{"url":"classes/ExternalSchoolDto.html","title":"class - ExternalSchoolDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalSchoolDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/external-school.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalId\n \n \n name\n \n \n Optional\n officialSchoolNumber\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalSchoolDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-school.dto.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalSchoolDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-school.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-school.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n officialSchoolNumber\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-school.dto.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class ExternalSchoolDto {\n\texternalId: string;\n\n\tname: string;\n\n\tofficialSchoolNumber?: string;\n\n\tconstructor(props: ExternalSchoolDto) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.name = props.name;\n\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalSource.html":{"url":"classes/ExternalSource.html","title":"class - ExternalSource","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalSource\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/external-source.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalId\n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalSource)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/external-source.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalSource\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/external-source.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/external-source.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class ExternalSource {\n\texternalId: string;\n\n\tsystemId: string;\n\n\tconstructor(props: ExternalSource) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.systemId = props.systemId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalSourceEntity.html":{"url":"classes/ExternalSourceEntity.html","title":"class - ExternalSourceEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalSourceEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/external-source.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n system\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalSourceEntityProps)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/external-source.entity.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalSourceEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/external-source.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n Type : System\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/external-source.entity.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, ManyToOne, Property } from '@mikro-orm/core';\nimport { System } from './system.entity';\n\nexport interface ExternalSourceEntityProps {\n\texternalId: string;\n\n\tsystem: System;\n}\n\n@Embeddable()\nexport class ExternalSourceEntity {\n\t@Property()\n\texternalId: string;\n\n\t@ManyToOne(() => System)\n\tsystem: System;\n\n\tconstructor(props: ExternalSourceEntityProps) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.system = props.system;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalSourceEntityProps.html":{"url":"interfaces/ExternalSourceEntityProps.html","title":"interface - ExternalSourceEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalSourceEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/external-source.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n \n system\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n \n \n system: System\n\n \n \n\n\n \n \n Type : System\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, ManyToOne, Property } from '@mikro-orm/core';\nimport { System } from './system.entity';\n\nexport interface ExternalSourceEntityProps {\n\texternalId: string;\n\n\tsystem: System;\n}\n\n@Embeddable()\nexport class ExternalSourceEntity {\n\t@Property()\n\texternalId: string;\n\n\t@ManyToOne(() => System)\n\tsystem: System;\n\n\tconstructor(props: ExternalSourceEntityProps) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.system = props.system;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalTool.html":{"url":"classes/ExternalTool.html","title":"class - ExternalTool","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalTool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n \n Implements\n \n \n ToolVersion\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n config\n \n \n isHidden\n \n \n Optional\n logo\n \n \n Optional\n logoUrl\n \n \n name\n \n \n openNewTab\n \n \n Optional\n parameters\n \n \n Optional\n url\n \n \n version\n \n \n Optional\n id\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getVersion\n \n \n Static\n isLti11Config\n \n \n Static\n isOauth2Config\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalToolProps)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:46\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalToolProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logo\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameter[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \ngetVersion()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:62\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n \n \n \n \n \n \n Static\n isLti11Config\n \n \n \n \n \n \n \n isLti11Config(config: ExternalToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n ExternalToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfig\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isOauth2Config\n \n \n \n \n \n \n \n isOauth2Config(config: ExternalToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n ExternalToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfig\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { ToolVersion } from '../../common/interface';\nimport { Oauth2ToolConfig, BasicToolConfig, Lti11ToolConfig, ExternalToolConfig } from './config';\nimport { CustomParameter } from '../../common/domain';\nimport { ToolConfigType } from '../../common/enum';\n\nexport interface ExternalToolProps {\n\tid?: string;\n\n\tname: string;\n\n\turl?: string;\n\n\tlogoUrl?: string;\n\n\tlogo?: string;\n\n\tconfig: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig;\n\n\tparameters?: CustomParameter[];\n\n\tisHidden: boolean;\n\n\topenNewTab: boolean;\n\n\tversion: number;\n}\n\nexport class ExternalTool extends BaseDO implements ToolVersion {\n\tname: string;\n\n\turl?: string;\n\n\tlogoUrl?: string;\n\n\tlogo?: string;\n\n\tconfig: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig;\n\n\tparameters?: CustomParameter[];\n\n\tisHidden: boolean;\n\n\topenNewTab: boolean;\n\n\tversion: number;\n\n\tconstructor(props: ExternalToolProps) {\n\t\tsuper(props.id);\n\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.logo = props.logo;\n\t\tthis.config = props.config;\n\t\tthis.parameters = props.parameters;\n\t\tthis.isHidden = props.isHidden;\n\t\tthis.openNewTab = props.openNewTab;\n\t\tthis.version = props.version;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.version;\n\t}\n\n\tstatic isOauth2Config(config: ExternalToolConfig): config is Oauth2ToolConfig {\n\t\treturn ToolConfigType.OAUTH2 === config.type;\n\t}\n\n\tstatic isLti11Config(config: ExternalToolConfig): config is Lti11ToolConfig {\n\t\treturn ToolConfigType.LTI11 === config.type;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolConfig.html":{"url":"classes/ExternalToolConfig.html","title":"class - ExternalToolConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/config/external-tool-config.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n baseUrl\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalToolConfig)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/external-tool-config.do.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalToolConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/external-tool-config.do.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/external-tool-config.do.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigType } from '../../../common/enum';\n\nexport abstract class ExternalToolConfig {\n\ttype: ToolConfigType;\n\n\tbaseUrl: string;\n\n\tconstructor(props: ExternalToolConfig) {\n\t\tthis.type = props.type;\n\t\tthis.baseUrl = props.baseUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolConfigCreateParams.html":{"url":"classes/ExternalToolConfigCreateParams.html","title":"class - ExternalToolConfigCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolConfigCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/external-tool-config.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Abstract\n baseUrl\n \n \n Abstract\n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/external-tool-config.params.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Abstract\n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/external-tool-config.params.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigType } from '../../../../../common/enum';\n\nexport abstract class ExternalToolConfigCreateParams {\n\tabstract type: ToolConfigType;\n\n\tabstract baseUrl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolConfigEntity.html":{"url":"classes/ExternalToolConfigEntity.html","title":"class - ExternalToolConfigEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolConfigEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/config/external-tool-config.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalToolConfigEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/external-tool-config.entity.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalToolConfigEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/external-tool-config.entity.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/external-tool-config.entity.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { ToolConfigType } from '../../../common/enum';\n\n@Embeddable({ abstract: true, discriminatorColumn: 'type' })\nexport abstract class ExternalToolConfigEntity {\n\t@Enum()\n\ttype: ToolConfigType;\n\n\t@Property()\n\tbaseUrl: string;\n\n\tconstructor(props: ExternalToolConfigEntity) {\n\t\tthis.type = props.type;\n\t\tthis.baseUrl = props.baseUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolConfigResponse.html":{"url":"classes/ExternalToolConfigResponse.html","title":"class - ExternalToolConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/config/external-tool-config.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Abstract\n baseUrl\n \n \n Abstract\n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/external-tool-config.response.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Abstract\n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/external-tool-config.response.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigType } from '../../../../../common/enum';\n\nexport abstract class ExternalToolConfigResponse {\n\tabstract type: ToolConfigType;\n\n\tabstract baseUrl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolConfigurationService.html":{"url":"injectables/ExternalToolConfigurationService.html","title":"injectable - ExternalToolConfigurationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolConfigurationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n filterForAvailableExternalTools\n \n \n Public\n filterForAvailableSchoolExternalTools\n \n \n Public\n filterForAvailableTools\n \n \n Public\n filterParametersForScope\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolFeatures: IToolFeatures)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolFeatures\n \n \n IToolFeatures\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n filterForAvailableExternalTools\n \n \n \n \n \n \n \n filterForAvailableExternalTools(externalTools: ExternalTool[], availableSchoolExternalTools: SchoolExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTools\n \n ExternalTool[]\n \n\n \n No\n \n\n\n \n \n availableSchoolExternalTools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolTemplateInfo[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n filterForAvailableSchoolExternalTools\n \n \n \n \n \n \n \n filterForAvailableSchoolExternalTools(schoolExternalTools: SchoolExternalTool[], contextExternalToolsInUse: ContextExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n contextExternalToolsInUse\n \n ContextExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalTool[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n filterForAvailableTools\n \n \n \n \n \n \n \n filterForAvailableTools(externalTools: Page, toolIdsInUse: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTools\n \n Page\n \n\n \n No\n \n\n\n \n \n toolIdsInUse\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalTool[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n filterParametersForScope\n \n \n \n \n \n \n \n filterParametersForScope(externalTool: ExternalTool, scope: CustomParameterScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n scope\n \n CustomParameterScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable } from '@nestjs/common';\nimport { EntityId, Page } from '@shared/domain';\nimport { IToolFeatures, ToolFeatures } from '../../tool-config';\nimport { ExternalTool } from '../domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { CustomParameterScope } from '../../common/enum';\nimport { CustomParameter } from '../../common/domain';\nimport { ContextExternalToolTemplateInfo } from '../uc/dto';\n\n@Injectable()\nexport class ExternalToolConfigurationService {\n\tconstructor(@Inject(ToolFeatures) private readonly toolFeatures: IToolFeatures) {}\n\n\tpublic filterForAvailableTools(externalTools: Page, toolIdsInUse: EntityId[]): ExternalTool[] {\n\t\tconst visibleTools: ExternalTool[] = externalTools.data.filter((tool: ExternalTool): boolean => !tool.isHidden);\n\n\t\tconst availableTools: ExternalTool[] = visibleTools.filter(\n\t\t\t(tool: ExternalTool): boolean => !!tool.id && !toolIdsInUse.includes(tool.id)\n\t\t);\n\t\treturn availableTools;\n\t}\n\n\tpublic filterForAvailableSchoolExternalTools(\n\t\tschoolExternalTools: SchoolExternalTool[],\n\t\tcontextExternalToolsInUse: ContextExternalTool[]\n\t): SchoolExternalTool[] {\n\t\tconst availableSchoolExternalTools: SchoolExternalTool[] = schoolExternalTools.filter(\n\t\t\t(schoolExternalTool: SchoolExternalTool): boolean => {\n\t\t\t\tif (this.toolFeatures.contextConfigurationEnabled) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tconst hasContextExternalTool: boolean = contextExternalToolsInUse.some(\n\t\t\t\t\t(contextExternalTool: ContextExternalTool) =>\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId === schoolExternalTool.id\n\t\t\t\t);\n\n\t\t\t\treturn !hasContextExternalTool;\n\t\t\t}\n\t\t);\n\n\t\treturn availableSchoolExternalTools;\n\t}\n\n\tpublic filterForAvailableExternalTools(\n\t\texternalTools: ExternalTool[],\n\t\tavailableSchoolExternalTools: SchoolExternalTool[]\n\t): ContextExternalToolTemplateInfo[] {\n\t\tconst toolsWithSchoolTool: (ContextExternalToolTemplateInfo | null)[] = availableSchoolExternalTools.map(\n\t\t\t(schoolExternalTool: SchoolExternalTool) => {\n\t\t\t\tconst externalTool: ExternalTool | undefined = externalTools.find(\n\t\t\t\t\t(tool: ExternalTool) => schoolExternalTool.toolId === tool.id\n\t\t\t\t);\n\n\t\t\t\tif (!externalTool) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\texternalTool,\n\t\t\t\t\tschoolExternalTool,\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\n\t\tconst unusedTools: ContextExternalToolTemplateInfo[] = toolsWithSchoolTool.filter(\n\t\t\t(toolRef): toolRef is ContextExternalToolTemplateInfo => !!toolRef\n\t\t);\n\t\tconst availableTools: ContextExternalToolTemplateInfo[] = unusedTools.filter(\n\t\t\t(toolRef): toolRef is ContextExternalToolTemplateInfo => !toolRef.externalTool.isHidden\n\t\t);\n\n\t\treturn availableTools;\n\t}\n\n\tpublic filterParametersForScope(externalTool: ExternalTool, scope: CustomParameterScope) {\n\t\tif (externalTool.parameters) {\n\t\t\texternalTool.parameters = externalTool.parameters.filter(\n\t\t\t\t(parameter: CustomParameter) => parameter.scope === scope\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolConfigurationUc.html":{"url":"injectables/ExternalToolConfigurationUc.html","title":"injectable - ExternalToolConfigurationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolConfigurationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n ensureContextPermissions\n \n \n Private\n Async\n ensureSchoolPermissions\n \n \n Public\n Async\n getAvailableToolsForContext\n \n \n Public\n Async\n getAvailableToolsForSchool\n \n \n Public\n Async\n getTemplateForContextExternalTool\n \n \n Public\n Async\n getTemplateForSchoolExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService, toolPermissionHelper: ToolPermissionHelper, externalToolConfigurationService: ExternalToolConfigurationService, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n externalToolConfigurationService\n \n \n ExternalToolConfigurationService\n \n \n \n No\n \n \n \n \n externalToolLogoService\n \n \n ExternalToolLogoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n ensureContextPermissions\n \n \n \n \n \n \n \n ensureContextPermissions(userId: EntityId, tools: ContextExternalTool[], context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:179\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n tools\n \n ContextExternalTool[]\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n ensureSchoolPermissions\n \n \n \n \n \n \n \n ensureSchoolPermissions(userId: EntityId, tools: SchoolExternalTool[], context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n tools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForContext\n \n \n \n \n \n \n \n getAvailableToolsForContext(userId: EntityId, schoolId: EntityId, contextId: EntityId, contextType: ToolContextType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextType\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForSchool\n \n \n \n \n \n \n \n getAvailableToolsForSchool(userId: EntityId, schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getTemplateForContextExternalTool\n \n \n \n \n \n \n \n getTemplateForContextExternalTool(userId: EntityId, contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:138\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getTemplateForSchoolExternalTool\n \n \n \n \n \n \n \n getTemplateForSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:116\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { NotFoundException } from '@nestjs/common/exceptions/not-found.exception';\nimport { EntityId, Permission } from '@shared/domain';\nimport { Page } from '@shared/domain/domainobject/page';\nimport { AuthorizationContext, AuthorizationContextBuilder } from '@src/modules/authorization';\nimport { CustomParameterScope, ToolContextType } from '../../common/enum';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolLogoService, ExternalToolService, ExternalToolConfigurationService } from '../service';\nimport { ContextExternalToolTemplateInfo } from './dto';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class ExternalToolConfigurationUc {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\t@Inject(forwardRef(() => ToolPermissionHelper))\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper,\n\t\tprivate readonly externalToolConfigurationService: ExternalToolConfigurationService,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tpublic async getAvailableToolsForSchool(userId: EntityId, schoolId: EntityId): Promise {\n\t\tconst externalTools: Page = await this.externalToolService.findExternalTools({});\n\n\t\tconst schoolExternalToolsInUse: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools(\n\t\t\t{\n\t\t\t\tschoolId,\n\t\t\t}\n\t\t);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.ensureSchoolPermissions(userId, schoolExternalToolsInUse, context);\n\n\t\tconst toolIdsInUse: EntityId[] = schoolExternalToolsInUse.map(\n\t\t\t(schoolExternalTool: SchoolExternalTool): EntityId => schoolExternalTool.toolId\n\t\t);\n\n\t\tconst availableTools: ExternalTool[] = this.externalToolConfigurationService.filterForAvailableTools(\n\t\t\texternalTools,\n\t\t\ttoolIdsInUse\n\t\t);\n\n\t\tavailableTools.forEach((externalTool) => {\n\t\t\tthis.externalToolConfigurationService.filterParametersForScope(externalTool, CustomParameterScope.SCHOOL);\n\t\t});\n\n\t\tavailableTools.forEach((externalTool) => {\n\t\t\texternalTool.logoUrl = this.externalToolLogoService.buildLogoUrl(\n\t\t\t\t'/v3/tools/external-tools/{id}/logo',\n\t\t\t\texternalTool\n\t\t\t);\n\t\t});\n\n\t\treturn availableTools;\n\t}\n\n\tpublic async getAvailableToolsForContext(\n\t\tuserId: EntityId,\n\t\tschoolId: EntityId,\n\t\tcontextId: EntityId,\n\t\tcontextType: ToolContextType\n\t): Promise {\n\t\tconst [externalTools, schoolExternalTools, contextExternalToolsInUse]: [\n\t\t\tPage,\n\t\t\tSchoolExternalTool[],\n\t\t\tContextExternalTool[]\n\t\t] = await Promise.all([\n\t\t\tthis.externalToolService.findExternalTools({}),\n\t\t\tthis.schoolExternalToolService.findSchoolExternalTools({\n\t\t\t\tschoolId,\n\t\t\t}),\n\t\t\tthis.contextExternalToolService.findContextExternalTools({\n\t\t\t\tcontext: { id: contextId, type: contextType },\n\t\t\t}),\n\t\t]);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.ensureContextPermissions(userId, contextExternalToolsInUse, context);\n\n\t\tconst availableSchoolExternalTools: SchoolExternalTool[] =\n\t\t\tthis.externalToolConfigurationService.filterForAvailableSchoolExternalTools(\n\t\t\t\tschoolExternalTools,\n\t\t\t\tcontextExternalToolsInUse\n\t\t\t);\n\n\t\tconst availableToolsForContext: ContextExternalToolTemplateInfo[] =\n\t\t\tthis.externalToolConfigurationService.filterForAvailableExternalTools(\n\t\t\t\texternalTools.data,\n\t\t\t\tavailableSchoolExternalTools\n\t\t\t);\n\n\t\tavailableToolsForContext.forEach((toolTemplateInfo) => {\n\t\t\tthis.externalToolConfigurationService.filterParametersForScope(\n\t\t\t\ttoolTemplateInfo.externalTool,\n\t\t\t\tCustomParameterScope.CONTEXT\n\t\t\t);\n\t\t});\n\n\t\tavailableToolsForContext.forEach((toolTemplateInfo) => {\n\t\t\ttoolTemplateInfo.externalTool.logoUrl = this.externalToolLogoService.buildLogoUrl(\n\t\t\t\t'/v3/tools/external-tools/{id}/logo',\n\t\t\t\ttoolTemplateInfo.externalTool\n\t\t\t);\n\t\t});\n\n\t\treturn availableToolsForContext;\n\t}\n\n\tpublic async getTemplateForSchoolExternalTool(\n\t\tuserId: EntityId,\n\t\tschoolExternalToolId: EntityId\n\t): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tschoolExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findExternalToolById(schoolExternalTool.toolId);\n\n\t\tif (externalTool.isHidden) {\n\t\t\tthrow new NotFoundException('Could not find the Tool Template');\n\t\t}\n\n\t\tthis.externalToolConfigurationService.filterParametersForScope(externalTool, CustomParameterScope.SCHOOL);\n\n\t\treturn externalTool;\n\t}\n\n\tpublic async getTemplateForContextExternalTool(\n\t\tuserId: EntityId,\n\t\tcontextExternalToolId: EntityId\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolService.getContextExternalToolById(\n\t\t\tcontextExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findExternalToolById(schoolExternalTool.toolId);\n\n\t\tif (externalTool.isHidden) {\n\t\t\tthrow new NotFoundException('Could not find the Tool Template');\n\t\t}\n\n\t\tthis.externalToolConfigurationService.filterParametersForScope(externalTool, CustomParameterScope.CONTEXT);\n\n\t\treturn {\n\t\t\texternalTool,\n\t\t\tschoolExternalTool,\n\t\t};\n\t}\n\n\tprivate async ensureSchoolPermissions(\n\t\tuserId: EntityId,\n\t\ttools: SchoolExternalTool[],\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tawait Promise.all(\n\t\t\ttools.map(async (tool: SchoolExternalTool) =>\n\t\t\t\tthis.toolPermissionHelper.ensureSchoolPermissions(userId, tool, context)\n\t\t\t)\n\t\t);\n\t}\n\n\tprivate async ensureContextPermissions(\n\t\tuserId: EntityId,\n\t\ttools: ContextExternalTool[],\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tawait Promise.all(\n\t\t\ttools.map(async (tool: ContextExternalTool) =>\n\t\t\t\tthis.toolPermissionHelper.ensureContextPermissions(userId, tool, context)\n\t\t\t)\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolCreateParams.html":{"url":"classes/ExternalToolCreateParams.html","title":"class - ExternalToolCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n config\n \n \n \n \n isHidden\n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n name\n \n \n \n \n openNewTab\n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n Optional\n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : Lti11ToolConfigCreateParams | Oauth2ToolConfigCreateParams | BasicToolConfigParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@Type(undefined, {keepDiscriminatorProperty: true, discriminator: undefined})@ApiProperty({oneOf: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:59\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterPostParams[]\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested({each: true})@IsArray()@IsOptional()@ApiPropertyOptional({type: undefined})@Type(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsBoolean, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { ToolConfigType } from '../../../../common/enum';\nimport {\n\tBasicToolConfigParams,\n\tExternalToolConfigCreateParams,\n\tLti11ToolConfigCreateParams,\n\tOauth2ToolConfigCreateParams,\n} from './config';\nimport { CustomParameterPostParams } from './custom-parameter.params';\n\n@ApiExtraModels(Lti11ToolConfigCreateParams, Oauth2ToolConfigCreateParams, BasicToolConfigParams)\nexport class ExternalToolCreateParams {\n\t@IsString()\n\t@ApiProperty()\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\turl?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ValidateNested()\n\t@Type(/* istanbul ignore next */ () => ExternalToolConfigCreateParams, {\n\t\tkeepDiscriminatorProperty: true,\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: Lti11ToolConfigCreateParams, name: ToolConfigType.LTI11 },\n\t\t\t\t{ value: Oauth2ToolConfigCreateParams, name: ToolConfigType.OAUTH2 },\n\t\t\t\t{ value: BasicToolConfigParams, name: ToolConfigType.BASIC },\n\t\t\t],\n\t\t},\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(BasicToolConfigParams) },\n\t\t\t{ $ref: getSchemaPath(Lti11ToolConfigCreateParams) },\n\t\t\t{ $ref: getSchemaPath(Oauth2ToolConfigCreateParams) },\n\t\t],\n\t})\n\tconfig!: Lti11ToolConfigCreateParams | Oauth2ToolConfigCreateParams | BasicToolConfigParams;\n\n\t@ValidateNested({ each: true })\n\t@IsArray()\n\t@IsOptional()\n\t@ApiPropertyOptional({ type: [CustomParameterPostParams] })\n\t@Type(/* istanbul ignore next */ () => CustomParameterPostParams)\n\tparameters?: CustomParameterPostParams[];\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tisHidden!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\topenNewTab!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ExternalToolEntity.html":{"url":"entities/ExternalToolEntity.html","title":"entity - ExternalToolEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ExternalToolEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n isHidden\n \n \n \n Optional\n logoBase64\n \n \n \n Optional\n logoUrl\n \n \n \n \n name\n \n \n \n openNewTab\n \n \n \n Optional\n parameters\n \n \n \n Optional\n url\n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : BasicToolConfigEntity | Oauth2ToolConfigEntity | Lti11ToolConfigEntity\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoBase64\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Unique()@Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:37\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, Property, Unique } from '@mikro-orm/core';\n\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { CustomParameterEntity } from './custom-parameter';\nimport { BasicToolConfigEntity, Lti11ToolConfigEntity, Oauth2ToolConfigEntity } from './config';\n\nexport type IExternalToolProperties = Readonly>;\n\n@Entity({ tableName: 'external_tools' })\nexport class ExternalToolEntity extends BaseEntityWithTimestamps {\n\t@Unique()\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\tlogoUrl?: string;\n\n\t@Property({ nullable: true })\n\tlogoBase64?: string;\n\n\t@Embedded(() => [BasicToolConfigEntity, Oauth2ToolConfigEntity, Lti11ToolConfigEntity])\n\tconfig: BasicToolConfigEntity | Oauth2ToolConfigEntity | Lti11ToolConfigEntity;\n\n\t@Embedded(() => CustomParameterEntity, { array: true, nullable: true })\n\tparameters?: CustomParameterEntity[];\n\n\t@Property()\n\tisHidden: boolean;\n\n\t@Property()\n\topenNewTab: boolean;\n\n\t@Property()\n\tversion: number;\n\n\tconstructor(props: IExternalToolProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.logoBase64 = props.logoBase64;\n\t\tthis.config = props.config;\n\t\tthis.parameters = props.parameters;\n\t\tthis.isHidden = props.isHidden;\n\t\tthis.openNewTab = props.openNewTab;\n\t\tthis.version = props.version;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolEntityFactory.html":{"url":"classes/ExternalToolEntityFactory.html","title":"class - ExternalToolEntityFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolEntityFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/external-tool-entity.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withBase64Logo\n \n \n withBasicConfig\n \n \n withLti11Config\n \n \n withName\n \n \n withOauth2Config\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withBase64Logo\n \n \n \n \n \n \nwithBase64Logo()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n withBasicConfig\n \n \n \n \n \n \nwithBasicConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n withLti11Config\n \n \n \n \n \n \nwithLti11Config()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n withName\n \n \n \n \n \n \nwithName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOauth2Config\n \n \n \n \n \n \nwithOauth2Config(clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tToolConfigType,\n} from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfigEntity,\n\tCustomParameterEntity,\n\tExternalToolEntity,\n\tIExternalToolProperties,\n\tLti11ToolConfigEntity,\n\tOauth2ToolConfigEntity,\n} from '@src/modules/tool/external-tool/entity';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\n\nexport class ExternalToolEntityFactory extends BaseFactory {\n\twithName(name: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tname,\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBasicConfig(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: new BasicToolConfigEntity({\n\t\t\t\ttype: ToolConfigType.BASIC,\n\t\t\t\tbaseUrl: 'mockBaseUrl',\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithOauth2Config(clientId: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: new Oauth2ToolConfigEntity({\n\t\t\t\ttype: ToolConfigType.OAUTH2,\n\t\t\t\tbaseUrl: 'mockBaseUrl',\n\t\t\t\tclientId,\n\t\t\t\tskipConsent: false,\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLti11Config(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: new Lti11ToolConfigEntity({\n\t\t\t\ttype: ToolConfigType.BASIC,\n\t\t\t\tbaseUrl: 'mockBaseUrl',\n\t\t\t\tkey: 'key',\n\t\t\t\tlti_message_type: LtiMessageType.BASIC_LTI_LAUNCH_REQUEST,\n\t\t\t\tresource_link_id: 'resource_link_id',\n\t\t\t\tsecret: 'secret',\n\t\t\t\tprivacy_permission: LtiPrivacyPermission.ANONYMOUS,\n\t\t\t\tlaunch_presentation_locale: 'de-DE',\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBase64Logo(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tlogoBase64:\n\t\t\t\t'iVBORw0KGgoAAAANSUhEUgAAAfQAAADICAYAAAAeGRPoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUQ2Q0Y5RTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUQ2Q0ZBRTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYxRDZDRjdFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYxRDZDRjhFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz45EjsrAAALfUlEQVR42uzdgXWjOAIGYHLvGsiV4CnBU4JTgqeEpIS4hKSEpIS4BLsEu4RJCeMScmhGzPplkyCMAGO+7z3ezs3tYsuS+BEIcfX29lYAAOP2Hz8BAAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAIdABDoAIBABwAEOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAQCBDgAIdAAQ6ACAQAcABDoAINABQKADAAIdABDoAIBABwCBDgAIdABAoAMAAh0ABDoAINABgN79109AbldXV9flPxblNov/DOblFv7+UG77+HfVn39vb29vB78emdpg1fauP2iDwWvcgm3883aMbbAs6/yorPP414ujf+W4z+2r/12WdasOL6zdl4Ufa4fdvGu0gyp/x6sTyjD0jx8a/03GOgn1cVtuyxN3EQ4267CV3+t16u2jhz701lfb6DEAlnGbt2yDz+ccDDHEq7LOTtzNIZY11PVaHV6AEOhj3ErhgP12LtuJZRj6e28y1cW8g/p4CgeqKbePHvpQ522jp3LMYnvJWWe/2rbBjsq66Kht/wwn4+pw3Jt76LQ9o76NB5jco+Gw35/l/p/iJXx43/auy+2+CqPMu7+O+9zFzziHsj511Nf+Bmr5GT/jlTZ1OEICnbZh/lT8c0+rC1WwL/3ivLvkvCu3h44/KrTth/LzdvFy8BBlXXQUeJ8F+6b8zIeuT6SnVIcCnXM/oC5jmPchdMiXqZxlk3QiuStOv3d8inkc6c0HKOum45Pmj9zHYJ+pQ4HOZR9Qr08I8zBRZRu3U4RJcs9+fWHe44nkRyeWu/gd+ijr04BlrRzU4Xh4bI1T3CaMGMKB4LH4M4N2/0Gnrh5JqWbr1u3vzmNtwrxhEFSzuEP7ez1+TCu2v9lR+2syagv3mvcfteuMZb0vml1ifz0q6/74KZF3Za3Km/Lb/cjd56ZUh4OYyuy/1NnPZhknfe9fNd/9JQR0g/1Vk1d+frK/hym2D+3vX7O7G83YbtgGm86yDn1g1lFZlw3Lumy4/9Df7mv68VwdjrBPC3SBnrlT7lru//2BZtekUwv0y2t/MYB+JR6kH9q0lzjK2yV+1q6jx7dSy3qf4Xe9/2C/t+rQY2tMQ91lrceWV4zCf/8tXmZzqZ2iSH+SIrSVVZv2Ei/BhgV1UuZrzDuYqJlS1upyeNu+doj7+F78s+LaY/l3z+pwnAQ6WQM9x4pT8UDzI3TKi7vHRdN7rovEe753uYIotr+7xEC4zzUTPD45kvIM+E3Old1iH/sew3ylDgU609Hb4zPnvtY0vUgZPd11MaqMgbBP6A+5RngPiWXdd1DWQxdhPsE6FOhc1IjKqm7kHNnVjVjXHV0iroQrRXWXf2/btvtY1tnAZVWHAp2JqesYVnQjl5S2tOryC8THv1LuVbd9rvk2od+t1OFZ16FAZ3TqLl89XPJKTPQ2srtOCIPHtm/lSwyEEAZ1n7PsuKzPfZRVHQp0pqWuU4ROvLnUlZjoTfUe7C9DrsfvU/dZ8xYTq5YZPl8dDluHAp1RSpmo9ntp2Pjmpnv31TlB3VWefc8j1nWG7/yZ2ZmVVR0KdKYgPh+aelYdDlRh5u6vMtQ3MdxdjidHGKx7bvchePYJ7X30ZVWHAp38FmX4vXWwbTJ8t3A/qunCD4sY7uHFCCHgX2LAz1Q1n7SXL0d3A3ynbcvvPKayqsMR8nIWTjrTLYM4zEw99Y1J1WSZsIVJdNWLJdYWkiHREJegD2Mqa3ineZHpEnLZL2/UoUDnckP9uTxgFEWe1yCGUXpY2CGM2EOgP4/teVvySbktM9A95bqTzcUJZV10WNb5UCPOKdXhOXHJnVahXqQt2tD0IFRNqPNM+zSZRKkOEegMEOrhUnl4mcoqc7CHUXu4z/5kljyAQKefUD8cvSUtBHvOS2nhefaNUGcEvBVQHQp0LivYyy0E+++3NxV5ZrKGy/AvfuHJtKPatQ4Gevyx9nnxCyqrOhToZLQtO8VVB9tNTx16H99rHIL9f8Wfe+1tAn5xSe8tpvMDcxeuJ1RWdSjQ4dOR+/oo4MMIPrzWsOnCEladm9AJbc3/P8TobtHyO5/6381O7Hc3qSf6RTcvSJlSHQp0Jhvwr2GGfLn9iKP31Al1KS974DKc1Ys04onkouV3HkVZ1aFAhzaj92pCXcqz55aOnYbaJTp7vgebEj7bjso61peGTKkOBTq8C/a7hFC3VOw0pNyO6fONfnWftY3vOTjF9szKqg4FOmRRdy9v4SeaxgleQiDc9jFyja8C7uxFI4kvDbkd2yh9SnUo0OHzg8DWL0HiAfapyy8Q77vWPV1xKNqHQd2VqfA9HtThWdehQGecQieJZ73Q1cldOMDWTVLq+nHGEKJ1I8jHtpdq4zLKdftYjq3PTakOBTpjFl7D+hTf6JTbV4+meRvbtKQ8TvXQRdCFZYeL+vuuhyJtMmeKx8SyztXh2dahQGd0o/PQSaqDSng2fJPrPljcz1cHrFc1MLlResotmKeco7zEIMg6sotPe9S173Cyu+ngxUVzdSjQmV6Y337QScJEtV2mzlh3P80IfXruirR1CsIo76XN4kPhhDKcoCYGwTaGcO6y1gnle8nR38JoP5Z3qQ4FOtMK88UXgXsdO2N47elt0w4Z78m/FPWz2NdqYnKj9DBqTV3JLARTaIONVhWMIRACclekPUkRwulHB2UNI9nUgPnb307py3EEm1pedTiGY3T5Q08tlDZfVXZcBrGv7zL4j59a3njfblM0Wwv5OY6ow7ru+y/2u4xn03X73na9Fv05tY9Lbn+n/I7xYN10zsa6aoOxHR6qE8jiz2XmamsyQg37uPmsTWeqm5cTvlNV1tfjl6MclbW6nbUoGq7nkKvdT6kOBbpAP+dAv46B3uZe26H455L5rGi+SMz3rjugQD/fQI/fOfW+aFd6CYJM/S2XcI95lbFsk6jDIbjkTuoB+BBfrNLmflO1lnLjEUJpdYkdkMbtMNyLXQ308b0FQRyFhqtRQ86+/n1JOmeYT6kOBTpjOKCu4oGmz9nmz5c0cYXWbfAxtsE+ZyaHS9jf+gyCo+WQhwi/dSzvWh0KdC77gBo6xvci/S1pbaziQQ3et8HUF/q0HdHdxVeRHgYqaxV+fQTRaxzB/ui6vFOqQ4HOuR9Qj9+StupgxL6PBxYjc+pGsDdF/uWCD7Fdf4uruA1+AhNved0V3VwdC79fCPFvxxPq1OG4mBT37wZmUtzp5VnG3zb889TnSMMlvnVXl/rG1D4uuf118TvGRYluY/ubtWh/29gGD2dcdzn62j6W9Tk+VnYO5ZpMHQp0xhQW1aMk1+8Csvrz69FIYxv/vJ1aB6TTYKgmX87ftb3j9lc9eTHa9hf7WlXW2Qdl3cdyjqqsU6pDgQ4A/OUeOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4AAh0AEOgAgEAHAAQ6AAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAh0ABDoAIBABwAEOgAg0AFAoAMAAh0AEOgAgEAHAIEOAAh0AECgAwACHQAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAYD+/V+AAQADXuXS75wQpQAAAABJRU5ErkJggg==',\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const customParameterEntityFactory = BaseFactory.define(\n\tCustomParameterEntity,\n\t({ sequence }) => {\n\t\treturn {\n\t\t\tname: `name${sequence}`,\n\t\t\tdisplayName: `User Friendly Name ${sequence}`,\n\t\t\tdescription: 'This is a mock parameter.',\n\t\t\tdefault: 'default',\n\t\t\tlocation: CustomParameterLocation.PATH,\n\t\t\tregex: 'regex',\n\t\t\tregexComment: 'mockComment',\n\t\t\tscope: CustomParameterScope.SCHOOL,\n\t\t\ttype: CustomParameterType.STRING,\n\t\t\tisOptional: false,\n\t\t};\n\t}\n);\n\nexport const externalToolEntityFactory = ExternalToolEntityFactory.define(\n\tExternalToolEntity,\n\t({ sequence }): IExternalToolProperties => {\n\t\treturn {\n\t\t\tname: `external-tool-${sequence}`,\n\t\t\turl: '',\n\t\t\tlogoUrl: 'https://logourl.com',\n\t\t\tconfig: new BasicToolConfigEntity({\n\t\t\t\ttype: ToolConfigType.BASIC,\n\t\t\t\tbaseUrl: 'mockBaseUrl',\n\t\t\t}),\n\t\t\tparameters: [customParameterEntityFactory.build()],\n\t\t\tisHidden: false,\n\t\t\topenNewTab: true,\n\t\t\tversion: 1,\n\t\t};\n\t}\n);\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolFactory.html":{"url":"classes/ExternalToolFactory.html","title":"class - ExternalToolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withBase64Logo\n \n \n withCustomParameters\n \n \n withLti11Config\n \n \n withOauth2Config\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withBase64Logo\n \n \n \n \n \n \nwithBase64Logo()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:107\n \n \n\n\n \n \n \n \n \n \n \n \n withCustomParameters\n \n \n \n \n \n \nwithCustomParameters(number: number, customParam?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n\n \n \n customParam\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withLti11Config\n \n \n \n \n \n \nwithLti11Config(customParam?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:93\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParam\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOauth2Config\n \n \n \n \n \n \nwithOauth2Config(customParam?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParam\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameter } from '@src/modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@src/modules/tool/external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nexport const basicToolConfigFactory = DoBaseFactory.define(BasicToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.BASIC,\n\t\tbaseUrl: 'https://www.basic-baseUrl.com/',\n\t};\n});\n\nclass Oauth2ToolConfigFactory extends DoBaseFactory {\n\twithExternalData(oauth2Params?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tclientSecret: 'clientSecret',\n\t\t\tscope: 'offline openid',\n\t\t\tfrontchannelLogoutUri: 'https://www.frontchannel.com/',\n\t\t\tredirectUris: ['https://www.redirect.com/'],\n\t\t\ttokenEndpointAuthMethod: TokenEndpointAuthMethod.CLIENT_SECRET_POST,\n\t\t};\n\n\t\treturn this.params({ ...params, ...oauth2Params });\n\t}\n}\n\nexport const oauth2ToolConfigFactory = Oauth2ToolConfigFactory.define(Oauth2ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.OAUTH2,\n\t\tbaseUrl: 'https://www.oauth2-baseUrl.com/',\n\t\tclientId: 'clientId',\n\t\tskipConsent: false,\n\t};\n});\n\nexport const lti11ToolConfigFactory = DoBaseFactory.define(Lti11ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.LTI11,\n\t\tbaseUrl: 'https://www.lti11-baseUrl.com/',\n\t\tkey: 'key',\n\t\tsecret: 'secret',\n\t\tprivacy_permission: LtiPrivacyPermission.PSEUDONYMOUS,\n\t\tlti_message_type: LtiMessageType.BASIC_LTI_LAUNCH_REQUEST,\n\t\tresource_link_id: 'linkId',\n\t\tlaunch_presentation_locale: 'de-DE',\n\t};\n});\n\nclass CustomParameterFactory extends DoBaseFactory {\n\tbuildListWithEachType(params?: DeepPartial): CustomParameter[] {\n\t\tconst globalParameter = this.build({ ...params, scope: CustomParameterScope.GLOBAL });\n\t\tconst schoolParameter = this.build({ ...params, scope: CustomParameterScope.SCHOOL });\n\t\tconst contextParameter = this.build({ ...params, scope: CustomParameterScope.CONTEXT });\n\n\t\treturn [globalParameter, schoolParameter, contextParameter];\n\t}\n}\n\nexport const customParameterFactory = CustomParameterFactory.define(CustomParameter, ({ sequence }) => {\n\treturn {\n\t\tname: `custom-parameter-${sequence}`,\n\t\tdisplayName: 'User Friendly Name',\n\t\ttype: CustomParameterType.STRING,\n\t\tscope: CustomParameterScope.SCHOOL,\n\t\tlocation: CustomParameterLocation.BODY,\n\t\tisOptional: false,\n\t};\n});\n\nclass ExternalToolFactory extends DoBaseFactory {\n\twithOauth2Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: oauth2ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLti11Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: lti11ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithCustomParameters(number: number, customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tparameters: customParameterFactory.buildList(number, customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBase64Logo(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tlogo: 'iVBORw0KGgoAAAANSUhEUgAAAfQAAADICAYAAAAeGRPoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUQ2Q0Y5RTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUQ2Q0ZBRTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYxRDZDRjdFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYxRDZDRjhFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz45EjsrAAALfUlEQVR42uzdgXWjOAIGYHLvGsiV4CnBU4JTgqeEpIS4hKSEpIS4BLsEu4RJCeMScmhGzPplkyCMAGO+7z3ezs3tYsuS+BEIcfX29lYAAOP2Hz8BAAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAIdABDoAIBABwAEOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAQCBDgAIdAAQ6ACAQAcABDoAINABQKADAAIdABDoAIBABwCBDgAIdABAoAMAAh0ABDoAINABgN79109AbldXV9flPxblNov/DOblFv7+UG77+HfVn39vb29vB78emdpg1fauP2iDwWvcgm3883aMbbAs6/yorPP414ujf+W4z+2r/12WdasOL6zdl4Ufa4fdvGu0gyp/x6sTyjD0jx8a/03GOgn1cVtuyxN3EQ4267CV3+t16u2jhz701lfb6DEAlnGbt2yDz+ccDDHEq7LOTtzNIZY11PVaHV6AEOhj3ErhgP12LtuJZRj6e28y1cW8g/p4CgeqKbePHvpQ522jp3LMYnvJWWe/2rbBjsq66Kht/wwn4+pw3Jt76LQ9o76NB5jco+Gw35/l/p/iJXx43/auy+2+CqPMu7+O+9zFzziHsj511Nf+Bmr5GT/jlTZ1OEICnbZh/lT8c0+rC1WwL/3ivLvkvCu3h44/KrTth/LzdvFy8BBlXXQUeJ8F+6b8zIeuT6SnVIcCnXM/oC5jmPchdMiXqZxlk3QiuStOv3d8inkc6c0HKOum45Pmj9zHYJ+pQ4HOZR9Qr08I8zBRZRu3U4RJcs9+fWHe44nkRyeWu/gd+ijr04BlrRzU4Xh4bI1T3CaMGMKB4LH4M4N2/0Gnrh5JqWbr1u3vzmNtwrxhEFSzuEP7ez1+TCu2v9lR+2syagv3mvcfteuMZb0vml1ifz0q6/74KZF3Za3Km/Lb/cjd56ZUh4OYyuy/1NnPZhknfe9fNd/9JQR0g/1Vk1d+frK/hym2D+3vX7O7G83YbtgGm86yDn1g1lFZlw3Lumy4/9Df7mv68VwdjrBPC3SBnrlT7lru//2BZtekUwv0y2t/MYB+JR6kH9q0lzjK2yV+1q6jx7dSy3qf4Xe9/2C/t+rQY2tMQ91lrceWV4zCf/8tXmZzqZ2iSH+SIrSVVZv2Ei/BhgV1UuZrzDuYqJlS1upyeNu+doj7+F78s+LaY/l3z+pwnAQ6WQM9x4pT8UDzI3TKi7vHRdN7rovEe753uYIotr+7xEC4zzUTPD45kvIM+E3Old1iH/sew3ylDgU609Hb4zPnvtY0vUgZPd11MaqMgbBP6A+5RngPiWXdd1DWQxdhPsE6FOhc1IjKqm7kHNnVjVjXHV0iroQrRXWXf2/btvtY1tnAZVWHAp2JqesYVnQjl5S2tOryC8THv1LuVbd9rvk2od+t1OFZ16FAZ3TqLl89XPJKTPQ2srtOCIPHtm/lSwyEEAZ1n7PsuKzPfZRVHQp0pqWuU4ROvLnUlZjoTfUe7C9DrsfvU/dZ8xYTq5YZPl8dDluHAp1RSpmo9ntp2Pjmpnv31TlB3VWefc8j1nWG7/yZ2ZmVVR0KdKYgPh+aelYdDlRh5u6vMtQ3MdxdjidHGKx7bvchePYJ7X30ZVWHAp38FmX4vXWwbTJ8t3A/qunCD4sY7uHFCCHgX2LAz1Q1n7SXL0d3A3ynbcvvPKayqsMR8nIWTjrTLYM4zEw99Y1J1WSZsIVJdNWLJdYWkiHREJegD2Mqa3ineZHpEnLZL2/UoUDnckP9uTxgFEWe1yCGUXpY2CGM2EOgP4/teVvySbktM9A95bqTzcUJZV10WNb5UCPOKdXhOXHJnVahXqQt2tD0IFRNqPNM+zSZRKkOEegMEOrhUnl4mcoqc7CHUXu4z/5kljyAQKefUD8cvSUtBHvOS2nhefaNUGcEvBVQHQp0LivYyy0E+++3NxV5ZrKGy/AvfuHJtKPatQ4Gevyx9nnxCyqrOhToZLQtO8VVB9tNTx16H99rHIL9f8Wfe+1tAn5xSe8tpvMDcxeuJ1RWdSjQ4dOR+/oo4MMIPrzWsOnCEladm9AJbc3/P8TobtHyO5/6381O7Hc3qSf6RTcvSJlSHQp0Jhvwr2GGfLn9iKP31Al1KS974DKc1Ys04onkouV3HkVZ1aFAhzaj92pCXcqz55aOnYbaJTp7vgebEj7bjso61peGTKkOBTq8C/a7hFC3VOw0pNyO6fONfnWftY3vOTjF9szKqg4FOmRRdy9v4SeaxgleQiDc9jFyja8C7uxFI4kvDbkd2yh9SnUo0OHzg8DWL0HiAfapyy8Q77vWPV1xKNqHQd2VqfA9HtThWdehQGecQieJZ73Q1cldOMDWTVLq+nHGEKJ1I8jHtpdq4zLKdftYjq3PTakOBTpjFl7D+hTf6JTbV4+meRvbtKQ8TvXQRdCFZYeL+vuuhyJtMmeKx8SyztXh2dahQGd0o/PQSaqDSng2fJPrPljcz1cHrFc1MLlResotmKeco7zEIMg6sotPe9S173Cyu+ngxUVzdSjQmV6Y337QScJEtV2mzlh3P80IfXruirR1CsIo76XN4kPhhDKcoCYGwTaGcO6y1gnle8nR38JoP5Z3qQ4FOtMK88UXgXsdO2N47elt0w4Z78m/FPWz2NdqYnKj9DBqTV3JLARTaIONVhWMIRACclekPUkRwulHB2UNI9nUgPnb307py3EEm1pedTiGY3T5Q08tlDZfVXZcBrGv7zL4j59a3njfblM0Wwv5OY6ow7ru+y/2u4xn03X73na9Fv05tY9Lbn+n/I7xYN10zsa6aoOxHR6qE8jiz2XmamsyQg37uPmsTWeqm5cTvlNV1tfjl6MclbW6nbUoGq7nkKvdT6kOBbpAP+dAv46B3uZe26H455L5rGi+SMz3rjugQD/fQI/fOfW+aFd6CYJM/S2XcI95lbFsk6jDIbjkTuoB+BBfrNLmflO1lnLjEUJpdYkdkMbtMNyLXQ308b0FQRyFhqtRQ86+/n1JOmeYT6kOBTpjOKCu4oGmz9nmz5c0cYXWbfAxtsE+ZyaHS9jf+gyCo+WQhwi/dSzvWh0KdC77gBo6xvci/S1pbaziQQ3et8HUF/q0HdHdxVeRHgYqaxV+fQTRaxzB/ui6vFOqQ4HOuR9Qj9+StupgxL6PBxYjc+pGsDdF/uWCD7Fdf4uruA1+AhNved0V3VwdC79fCPFvxxPq1OG4mBT37wZmUtzp5VnG3zb889TnSMMlvnVXl/rG1D4uuf118TvGRYluY/ubtWh/29gGD2dcdzn62j6W9Tk+VnYO5ZpMHQp0xhQW1aMk1+8Csvrz69FIYxv/vJ1aB6TTYKgmX87ftb3j9lc9eTHa9hf7WlXW2Qdl3cdyjqqsU6pDgQ4A/OUeOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4AAh0AEOgAgEAHAAQ6AAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAh0ABDoAIBABwAEOgAg0AFAoAMAAh0AEOgAgEAHAIEOAAh0AECgAwACHQAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAYD+/V+AAQADXuXS75wQpQAAAABJRU5ErkJggg==',\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const externalToolFactory = ExternalToolFactory.define(ExternalTool, ({ sequence }) => {\n\treturn {\n\t\tname: `external-tool-${sequence}`,\n\t\turl: 'https://url.com/',\n\t\tconfig: basicToolConfigFactory.build(),\n\t\tlogoUrl: 'https://logo.com/',\n\t\tisHidden: false,\n\t\topenNewTab: false,\n\t\tversion: 1,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolIdParams.html":{"url":"classes/ExternalToolIdParams.html","title":"class - ExternalToolIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n externalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n externalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-id.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty({ nullable: false, required: true })\n\texternalToolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogo.html":{"url":"classes/ExternalToolLogo.html","title":"class - ExternalToolLogo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/external-tool-logo.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n contentType\n \n \n logo\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolLogo: ExternalToolLogo)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool-logo.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolLogo\n \n \n ExternalToolLogo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n contentType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool-logo.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n logo\n \n \n \n \n \n \n Type : Buffer\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool-logo.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class ExternalToolLogo {\n\tlogo: Buffer;\n\n\tcontentType: string;\n\n\tconstructor(externalToolLogo: ExternalToolLogo) {\n\t\tthis.logo = externalToolLogo.logo;\n\t\tthis.contentType = externalToolLogo.contentType;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoFetchFailedLoggableException.html":{"url":"classes/ExternalToolLogoFetchFailedLoggableException.html","title":"class - ExternalToolLogoFetchFailedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoFetchFailedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logoUrl: string, httpStatus?: HttpStatus)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoUrl\n \n \n string\n \n \n \n No\n \n \n \n \n httpStatus\n \n \n HttpStatus\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts:17\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { BusinessError } from '@shared/common';\n\nexport class ExternalToolLogoFetchFailedLoggableException extends BusinessError implements Loggable {\n\tconstructor(private readonly logoUrl: string, private readonly httpStatus?: HttpStatus) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'EXTERNAL_TOOL_LOGO_FETCH_FAILED',\n\t\t\t\ttitle: 'External tool logo fetch failed.',\n\t\t\t\tdefaultMessage: 'External tool logo could not been fetched.',\n\t\t\t},\n\t\t\tHttpStatus.INTERNAL_SERVER_ERROR\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_FETCH_FAILED',\n\t\t\tmessage: 'External tool logo could not been fetched',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tlogoUrl: this.logoUrl,\n\t\t\t\thttpStatus: this.httpStatus,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoFetchedLoggable.html":{"url":"classes/ExternalToolLogoFetchedLoggable.html","title":"class - ExternalToolLogoFetchedLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoFetchedLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetched-loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logoUrl: string)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetched-loggable.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoUrl\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetched-loggable.ts:6\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ExternalToolLogoFetchedLoggable implements Loggable {\n\tconstructor(private readonly logoUrl: string) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_FETCHED',\n\t\t\tmessage: 'External tool logo was fetched',\n\t\t\tdata: {\n\t\t\t\tlogoUrl: this.logoUrl,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoNotFoundLoggableException.html":{"url":"classes/ExternalToolLogoNotFoundLoggableException.html","title":"class - ExternalToolLogoNotFoundLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoNotFoundLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-not-found-loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n NotFoundException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolId: string)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-not-found-loggable-exception.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolId\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-not-found-loggable-exception.ts:9\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ExternalToolLogoNotFoundLoggableException extends NotFoundException implements Loggable {\n\tconstructor(private readonly externalToolId: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_NOT_FOUND',\n\t\t\tmessage: 'External tool logo not found',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\texternalToolId: this.externalToolId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoService.html":{"url":"classes/ExternalToolLogoService.html","title":"class - ExternalToolLogoService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n buildLogoUrl\n \n \n Private\n detectContentTypeOrThrow\n \n \n Private\n Async\n fetchBase64Logo\n \n \n Async\n fetchLogo\n \n \n Async\n getExternalToolBinaryLogo\n \n \n validateLogoSize\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolFeatures: IToolFeatures, logger: Logger, httpService: HttpService, externalToolService: ExternalToolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolFeatures\n \n \n IToolFeatures\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n buildLogoUrl\n \n \n \n \n \n \nbuildLogoUrl(template: string, externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n template\n \n string\n \n\n \n No\n \n\n\n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n detectContentTypeOrThrow\n \n \n \n \n \n \n \n detectContentTypeOrThrow(imageBuffer: Buffer)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:114\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n imageBuffer\n \n Buffer\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n fetchBase64Logo\n \n \n \n \n \n \n \n fetchBase64Logo(logoUrl: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoUrl\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n fetchLogo\n \n \n \n \n \n \n \n fetchLogo(externalTool: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getExternalToolBinaryLogo\n \n \n \n \n \n \n \n getExternalToolBinaryLogo(toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n validateLogoSize\n \n \n \n \n \n \nvalidateLogoSize(externalTool: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, Inject } from '@nestjs/common';\nimport { AxiosResponse } from 'axios';\nimport { lastValueFrom } from 'rxjs';\nimport { HttpService } from '@nestjs/axios';\nimport { Logger } from '@src/core/logger';\nimport { EntityId } from '@shared/domain';\nimport { ExternalTool } from '../domain';\nimport {\n\tExternalToolLogoFetchedLoggable,\n\tExternalToolLogoNotFoundLoggableException,\n\tExternalToolLogoSizeExceededLoggableException,\n\tExternalToolLogoWrongFileTypeLoggableException,\n\tExternalToolLogoFetchFailedLoggableException,\n} from '../loggable';\nimport { IToolFeatures, ToolFeatures } from '../../tool-config';\nimport { ExternalToolLogo } from '../domain/external-tool-logo';\nimport { ExternalToolService } from './external-tool.service';\n\nconst contentTypeDetector: Record = {\n\tffd8ffe0: 'image/jpeg',\n\tffd8ffe1: 'image/jpeg',\n\t'89504e47': 'image/png',\n\t'47494638': 'image/gif',\n};\n\nexport class ExternalToolLogoService {\n\tconstructor(\n\t\t@Inject(ToolFeatures) private readonly toolFeatures: IToolFeatures,\n\t\tprivate readonly logger: Logger,\n\t\tprivate readonly httpService: HttpService,\n\t\tprivate readonly externalToolService: ExternalToolService\n\t) {}\n\n\tbuildLogoUrl(template: string, externalTool: ExternalTool): string | undefined {\n\t\tconst { logo, id } = externalTool;\n\t\tconst backendUrl = this.toolFeatures.backEndUrl;\n\n\t\tif (logo) {\n\t\t\tconst filledTemplate = template.replace(/\\{id\\}/g, id || '');\n\t\t\treturn `${backendUrl}${filledTemplate}`;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tvalidateLogoSize(externalTool: Partial): void {\n\t\tif (!externalTool.logo) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst buffer: Buffer = Buffer.from(externalTool.logo, 'base64');\n\n\t\tif (buffer.length > this.toolFeatures.maxExternalToolLogoSizeInBytes) {\n\t\t\tthrow new ExternalToolLogoSizeExceededLoggableException(\n\t\t\t\texternalTool.id,\n\t\t\t\tthis.toolFeatures.maxExternalToolLogoSizeInBytes\n\t\t\t);\n\t\t}\n\t}\n\n\tasync fetchLogo(externalTool: Partial): Promise {\n\t\tif (externalTool.logoUrl) {\n\t\t\tconst base64Logo: string = await this.fetchBase64Logo(externalTool.logoUrl);\n\n\t\t\tif (base64Logo) {\n\t\t\t\treturn base64Logo;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate async fetchBase64Logo(logoUrl: string): Promise {\n\t\ttry {\n\t\t\tconst response: AxiosResponse = await lastValueFrom(\n\t\t\t\tthis.httpService.get(logoUrl, { responseType: 'arraybuffer' })\n\t\t\t);\n\t\t\tthis.logger.info(new ExternalToolLogoFetchedLoggable(logoUrl));\n\n\t\t\tconst buffer: Buffer = Buffer.from(response.data);\n\t\t\tthis.detectContentTypeOrThrow(buffer);\n\n\t\t\tconst logoBase64: string = buffer.toString('base64');\n\n\t\t\treturn logoBase64;\n\t\t} catch (error) {\n\t\t\tif (error instanceof ExternalToolLogoWrongFileTypeLoggableException) {\n\t\t\t\tthrow new ExternalToolLogoWrongFileTypeLoggableException();\n\t\t\t} else if (error instanceof HttpException) {\n\t\t\t\tthrow new ExternalToolLogoFetchFailedLoggableException(logoUrl, error.getStatus());\n\t\t\t} else {\n\t\t\t\tthrow new ExternalToolLogoFetchFailedLoggableException(logoUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync getExternalToolBinaryLogo(toolId: EntityId): Promise {\n\t\tconst tool: ExternalTool = await this.externalToolService.findExternalToolById(toolId);\n\n\t\tif (!tool.logo) {\n\t\t\tthrow new ExternalToolLogoNotFoundLoggableException(toolId);\n\t\t}\n\n\t\tconst logoBinaryData: Buffer = Buffer.from(tool.logo, 'base64');\n\n\t\tconst externalToolLogo: ExternalToolLogo = new ExternalToolLogo({\n\t\t\tcontentType: this.detectContentTypeOrThrow(logoBinaryData),\n\t\t\tlogo: logoBinaryData,\n\t\t});\n\n\t\treturn externalToolLogo;\n\t}\n\n\tprivate detectContentTypeOrThrow(imageBuffer: Buffer): string {\n\t\tconst imageSignature: string = imageBuffer.toString('hex', 0, 4);\n\n\t\tconst contentType: string | ExternalToolLogoWrongFileTypeLoggableException =\n\t\t\tcontentTypeDetector[imageSignature] || new ExternalToolLogoWrongFileTypeLoggableException();\n\n\t\tif (contentType instanceof ExternalToolLogoWrongFileTypeLoggableException) {\n\t\t\tthrow new ExternalToolLogoWrongFileTypeLoggableException();\n\t\t}\n\n\t\treturn contentType;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoSizeExceededLoggableException.html":{"url":"classes/ExternalToolLogoSizeExceededLoggableException.html","title":"class - ExternalToolLogoSizeExceededLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoSizeExceededLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolId: string | undefined, maxExternalToolLogoSizeInBytes: number)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolId\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n maxExternalToolLogoSizeInBytes\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts:20\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ExternalToolLogoSizeExceededLoggableException extends BusinessError implements Loggable {\n\tconstructor(\n\t\tprivate readonly externalToolId: string | undefined,\n\t\tprivate readonly maxExternalToolLogoSizeInBytes: number\n\t) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'EXTERNAL_TOOL_LOGO_SIZE_EXCEEDED',\n\t\t\t\ttitle: 'External tool logo size exceeded.',\n\t\t\t\tdefaultMessage: 'External tool logo size exceeded.',\n\t\t\t},\n\t\t\tHttpStatus.BAD_REQUEST\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_SIZE_EXCEEDED',\n\t\t\tmessage: 'External tool logo size exceeded',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\texternalToolId: this.externalToolId,\n\t\t\t\tmaxExternalToolLogoSizeInBytes: this.maxExternalToolLogoSizeInBytes,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{"url":"classes/ExternalToolLogoWrongFileTypeLoggableException.html","title":"class - ExternalToolLogoWrongFileTypeLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoWrongFileTypeLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor()\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts:5\n \n \n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts:17\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BusinessError } from '@shared/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { HttpStatus } from '@nestjs/common';\n\nexport class ExternalToolLogoWrongFileTypeLoggableException extends BusinessError implements Loggable {\n\tconstructor() {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'EXTERNAL_TOOL_LOGO_WRONG_FILE_TYPE',\n\t\t\t\ttitle: 'External tool logo wrong file type.',\n\t\t\t\tdefaultMessage: 'External tool logo has the wrong file type. Only JPEG and PNG files are supported.',\n\t\t\t},\n\t\t\tHttpStatus.BAD_REQUEST\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_WRONG_FILE_TYPE',\n\t\t\tmessage: 'External tool logo has the wrong file type. Only JPEG and PNG files are supported.',\n\t\t\tstack: this.stack,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ExternalToolModule.html":{"url":"modules/ExternalToolModule.html","title":"module - ExternalToolModule","body":"\n \n\n\n\n\n Modules\n ExternalToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ExternalToolModule\n\n\n\ncluster_ExternalToolModule_providers\n\n\n\ncluster_ExternalToolModule_imports\n\n\n\ncluster_ExternalToolModule_exports\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nExternalToolModule -->\n\nCommonToolModule->ExternalToolModule\n\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nExternalToolModule -->\n\nEncryptionModule->ExternalToolModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nExternalToolModule -->\n\nLoggerModule->ExternalToolModule\n\n\n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nExternalToolModule -->\n\nOauthProviderServiceModule->ExternalToolModule\n\n\n\n\n\nToolConfigModule\n\nToolConfigModule\n\nExternalToolModule -->\n\nToolConfigModule->ExternalToolModule\n\n\n\n\n\nExternalToolConfigurationService \n\nExternalToolConfigurationService \n\nExternalToolConfigurationService -->\n\nExternalToolModule->ExternalToolConfigurationService \n\n\n\n\n\nExternalToolLogoService \n\nExternalToolLogoService \n\nExternalToolLogoService -->\n\nExternalToolModule->ExternalToolLogoService \n\n\n\n\n\nExternalToolService \n\nExternalToolService \n\nExternalToolService -->\n\nExternalToolModule->ExternalToolService \n\n\n\n\n\nExternalToolValidationService \n\nExternalToolValidationService \n\nExternalToolValidationService -->\n\nExternalToolModule->ExternalToolValidationService \n\n\n\n\n\nExternalToolVersionService \n\nExternalToolVersionService \n\nExternalToolVersionService -->\n\nExternalToolModule->ExternalToolVersionService \n\n\n\n\n\nExternalToolConfigurationService\n\nExternalToolConfigurationService\n\nExternalToolModule -->\n\nExternalToolConfigurationService->ExternalToolModule\n\n\n\n\n\nExternalToolParameterValidationService\n\nExternalToolParameterValidationService\n\nExternalToolModule -->\n\nExternalToolParameterValidationService->ExternalToolModule\n\n\n\n\n\nExternalToolRepo\n\nExternalToolRepo\n\nExternalToolModule -->\n\nExternalToolRepo->ExternalToolModule\n\n\n\n\n\nExternalToolService\n\nExternalToolService\n\nExternalToolModule -->\n\nExternalToolService->ExternalToolModule\n\n\n\n\n\nExternalToolServiceMapper\n\nExternalToolServiceMapper\n\nExternalToolModule -->\n\nExternalToolServiceMapper->ExternalToolModule\n\n\n\n\n\nExternalToolValidationService\n\nExternalToolValidationService\n\nExternalToolModule -->\n\nExternalToolValidationService->ExternalToolModule\n\n\n\n\n\nExternalToolVersionService\n\nExternalToolVersionService\n\nExternalToolModule -->\n\nExternalToolVersionService->ExternalToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/external-tool/external-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ExternalToolConfigurationService\n \n \n ExternalToolParameterValidationService\n \n \n ExternalToolRepo\n \n \n ExternalToolService\n \n \n ExternalToolServiceMapper\n \n \n ExternalToolValidationService\n \n \n ExternalToolVersionService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n EncryptionModule\n \n \n LoggerModule\n \n \n OauthProviderServiceModule\n \n \n ToolConfigModule\n \n \n \n \n Exports\n \n \n ExternalToolConfigurationService\n \n \n ExternalToolLogoService\n \n \n ExternalToolService\n \n \n ExternalToolValidationService\n \n \n ExternalToolVersionService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { OauthProviderServiceModule } from '@shared/infra/oauth-provider';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { ExternalToolRepo } from '@shared/repo';\nimport { ToolConfigModule } from '../tool-config.module';\nimport {\n\tExternalToolConfigurationService,\n\tExternalToolLogoService,\n\tExternalToolParameterValidationService,\n\tExternalToolService,\n\tExternalToolServiceMapper,\n\tExternalToolValidationService,\n\tExternalToolVersionService,\n} from './service';\nimport { CommonToolModule } from '../common';\n\n@Module({\n\timports: [CommonToolModule, ToolConfigModule, LoggerModule, OauthProviderServiceModule, EncryptionModule, HttpModule],\n\tproviders: [\n\t\tExternalToolService,\n\t\tExternalToolServiceMapper,\n\t\tExternalToolParameterValidationService,\n\t\tExternalToolValidationService,\n\t\tExternalToolVersionService,\n\t\tExternalToolConfigurationService,\n\t\tExternalToolLogoService,\n\t\tExternalToolRepo,\n\t],\n\texports: [\n\t\tExternalToolService,\n\t\tExternalToolValidationService,\n\t\tExternalToolVersionService,\n\t\tExternalToolConfigurationService,\n\t\tExternalToolLogoService,\n\t],\n})\nexport class ExternalToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolParameterValidationService.html":{"url":"injectables/ExternalToolParameterValidationService.html","title":"injectable - ExternalToolParameterValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolParameterValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n hasDuplicateAttributes\n \n \n Private\n isAutoParameterGlobal\n \n \n Private\n isCustomParameterNameEmpty\n \n \n Private\n isDefaultValueOfValidRegex\n \n \n Private\n isDefaultValueOfValidType\n \n \n Private\n isGlobalParameterValid\n \n \n Private\n Async\n isNameUnique\n \n \n Private\n isRegexCommentMandatoryAndFilled\n \n \n Private\n isRegexValid\n \n \n Async\n validateCommon\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, commonToolValidationService: CommonToolValidationService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n commonToolValidationService\n \n \n CommonToolValidationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n hasDuplicateAttributes\n \n \n \n \n \n \n \n hasDuplicateAttributes(customParameter: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isAutoParameterGlobal\n \n \n \n \n \n \n \n isAutoParameterGlobal(customParameter: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:148\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isCustomParameterNameEmpty\n \n \n \n \n \n \n \n isCustomParameterNameEmpty(param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isDefaultValueOfValidRegex\n \n \n \n \n \n \n \n isDefaultValueOfValidRegex(param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:108\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isDefaultValueOfValidType\n \n \n \n \n \n \n \n isDefaultValueOfValidType(param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:118\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isGlobalParameterValid\n \n \n \n \n \n \n \n isGlobalParameterValid(customParameter: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:136\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n isNameUnique\n \n \n \n \n \n \n \n isNameUnique(externalTool: ExternalTool | Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool | Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isRegexCommentMandatoryAndFilled\n \n \n \n \n \n \n \n isRegexCommentMandatoryAndFilled(customParameter: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:128\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isRegexValid\n \n \n \n \n \n \n \n isRegexValid(param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validateCommon\n \n \n \n \n \n \n \n validateCommon(externalTool: ExternalTool | Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool | Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { CustomParameter } from '../../common/domain';\nimport { autoParameters, CustomParameterScope } from '../../common/enum';\nimport { CommonToolValidationService } from '../../common/service';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolService } from './external-tool.service';\n\n@Injectable()\nexport class ExternalToolParameterValidationService {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly commonToolValidationService: CommonToolValidationService\n\t) {}\n\n\tasync validateCommon(externalTool: ExternalTool | Partial): Promise {\n\t\tif (!(await this.isNameUnique(externalTool))) {\n\t\t\tthrow new ValidationError(`tool_name_duplicate: The tool name \"${externalTool.name || ''}\" is already used.`);\n\t\t}\n\n\t\tif (externalTool.parameters) {\n\t\t\tif (this.hasDuplicateAttributes(externalTool.parameters)) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`tool_param_duplicate: The tool ${externalTool.name || ''} contains multiple of the same custom parameters.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\texternalTool.parameters.forEach((param: CustomParameter) => {\n\t\t\t\tif (this.isCustomParameterNameEmpty(param)) {\n\t\t\t\t\tthrow new ValidationError(`tool_param_name: A custom parameter is missing a name.`);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isGlobalParameterValid(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_default_required: The custom parameter \"${param.name}\" is a global parameter and requires a default value.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isAutoParameterGlobal(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_auto_requires_global: The custom parameter \"${param.name}\" with type \"${param.type}\" must have the scope \"global\", since it is automatically filled.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isRegexCommentMandatoryAndFilled(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_regexComment: The custom parameter \"${param.name}\" parameter is missing a regex comment.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isRegexValid(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_regex_invalid: The custom Parameter \"${param.name}\" has an invalid regex.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isDefaultValueOfValidType(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_type_mismatch: The default value of the custom parameter \"${param.name}\" should be of type \"${param.type}\".`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isDefaultValueOfValidRegex(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_default_regex: The default value of a the custom parameter \"${param.name}\" does not match its regex.`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate isCustomParameterNameEmpty(param: CustomParameter): boolean {\n\t\treturn !param.name || !param.displayName;\n\t}\n\n\tprivate async isNameUnique(externalTool: ExternalTool | Partial): Promise {\n\t\tif (!externalTool.name) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst duplicate: ExternalTool | null = await this.externalToolService.findExternalToolByName(externalTool.name);\n\n\t\treturn duplicate == null || duplicate.id === externalTool.id;\n\t}\n\n\tprivate hasDuplicateAttributes(customParameter: CustomParameter[]): boolean {\n\t\treturn customParameter.some((item, itemIndex) =>\n\t\t\tcustomParameter.some(\n\t\t\t\t(other, otherIndex) =>\n\t\t\t\t\titemIndex !== otherIndex && item.name.toLocaleLowerCase() === other.name.toLocaleLowerCase()\n\t\t\t)\n\t\t);\n\t}\n\n\tprivate isRegexValid(param: CustomParameter): boolean {\n\t\tif (param.regex) {\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-new\n\t\t\t\tnew RegExp(param.regex);\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate isDefaultValueOfValidRegex(param: CustomParameter): boolean {\n\t\tif (param.regex && param.default) {\n\t\t\tconst isValid: boolean = new RegExp(param.regex).test(param.default);\n\n\t\t\treturn isValid;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate isDefaultValueOfValidType(param: CustomParameter): boolean {\n\t\tif (param.default) {\n\t\t\tconst isValid: boolean = this.commonToolValidationService.isValueValidForType(param.type, param.default);\n\n\t\t\treturn isValid;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate isRegexCommentMandatoryAndFilled(customParameter: CustomParameter): boolean {\n\t\tif (customParameter.regex && !customParameter.regexComment) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate isGlobalParameterValid(customParameter: CustomParameter): boolean {\n\t\tif (customParameter.scope !== CustomParameterScope.GLOBAL) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (autoParameters.includes(customParameter.type) || customParameter.default) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate isAutoParameterGlobal(customParameter: CustomParameter): boolean {\n\t\tif (!autoParameters.includes(customParameter.type)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst isGlobal: boolean = customParameter.scope === CustomParameterScope.GLOBAL;\n\n\t\treturn isGlobal;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalToolProps.html":{"url":"interfaces/ExternalToolProps.html","title":"interface - ExternalToolProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalToolProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n Optional\n \n id\n \n \n \n \n isHidden\n \n \n \n Optional\n \n logo\n \n \n \n Optional\n \n logoUrl\n \n \n \n \n name\n \n \n \n \n openNewTab\n \n \n \n Optional\n \n parameters\n \n \n \n Optional\n \n url\n \n \n \n \n version\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n config\n \n \n \n \n \n \n \n \n config: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig\n\n \n \n\n\n \n \n Type : BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n \n \n isHidden: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n logo\n \n \n \n \n \n \n \n \n logo: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n logoUrl\n \n \n \n \n \n \n \n \n logoUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n \n \n openNewTab: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n \n \n parameters: CustomParameter[]\n\n \n \n\n\n \n \n Type : CustomParameter[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n \n \n version: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { ToolVersion } from '../../common/interface';\nimport { Oauth2ToolConfig, BasicToolConfig, Lti11ToolConfig, ExternalToolConfig } from './config';\nimport { CustomParameter } from '../../common/domain';\nimport { ToolConfigType } from '../../common/enum';\n\nexport interface ExternalToolProps {\n\tid?: string;\n\n\tname: string;\n\n\turl?: string;\n\n\tlogoUrl?: string;\n\n\tlogo?: string;\n\n\tconfig: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig;\n\n\tparameters?: CustomParameter[];\n\n\tisHidden: boolean;\n\n\topenNewTab: boolean;\n\n\tversion: number;\n}\n\nexport class ExternalTool extends BaseDO implements ToolVersion {\n\tname: string;\n\n\turl?: string;\n\n\tlogoUrl?: string;\n\n\tlogo?: string;\n\n\tconfig: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig;\n\n\tparameters?: CustomParameter[];\n\n\tisHidden: boolean;\n\n\topenNewTab: boolean;\n\n\tversion: number;\n\n\tconstructor(props: ExternalToolProps) {\n\t\tsuper(props.id);\n\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.logo = props.logo;\n\t\tthis.config = props.config;\n\t\tthis.parameters = props.parameters;\n\t\tthis.isHidden = props.isHidden;\n\t\tthis.openNewTab = props.openNewTab;\n\t\tthis.version = props.version;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.version;\n\t}\n\n\tstatic isOauth2Config(config: ExternalToolConfig): config is Oauth2ToolConfig {\n\t\treturn ToolConfigType.OAUTH2 === config.type;\n\t}\n\n\tstatic isLti11Config(config: ExternalToolConfig): config is Lti11ToolConfig {\n\t\treturn ToolConfigType.LTI11 === config.type;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ExternalToolPseudonymEntity.html":{"url":"entities/ExternalToolPseudonymEntity.html","title":"entity - ExternalToolPseudonymEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ExternalToolPseudonymEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n pseudonym\n \n \n \n toolId\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Unique()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts:24\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain';\n\nexport interface IExternalToolPseudonymEntityProps {\n\tid?: EntityId;\n\tpseudonym: string;\n\ttoolId: ObjectId;\n\tuserId: ObjectId;\n}\n\n@Entity({ tableName: 'external-tool-pseudonyms' })\n@Unique({ properties: ['userId', 'toolId'] })\nexport class ExternalToolPseudonymEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tpseudonym: string;\n\n\t@Property()\n\ttoolId: ObjectId;\n\n\t@Property()\n\tuserId: ObjectId;\n\n\tconstructor(props: IExternalToolPseudonymEntityProps) {\n\t\tsuper();\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.pseudonym = props.pseudonym;\n\t\tthis.toolId = props.toolId;\n\t\tthis.userId = props.userId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolPseudonymRepo.html":{"url":"injectables/ExternalToolPseudonymRepo.html","title":"injectable - ExternalToolPseudonymRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolPseudonymRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createOrUpdate\n \n \n Async\n deletePseudonymsByUserId\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdAndToolId\n \n \n Async\n findByUserIdAndToolIdOrFail\n \n \n Protected\n mapDomainObjectToEntityProperties\n \n \n Protected\n mapEntityToDomainObject\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createOrUpdate\n \n \n \n \n \n \n \n createOrUpdate(domainObject: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deletePseudonymsByUserId\n \n \n \n \n \n \n \n deletePseudonymsByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdAndToolId\n \n \n \n \n \n \n \n findByUserIdAndToolId(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdAndToolIdOrFail\n \n \n \n \n \n \n \n findByUserIdAndToolIdOrFail(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDomainObjectToEntityProperties\n \n \n \n \n \n \n \n mapDomainObjectToEntityProperties(entityDO: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IExternalToolPseudonymEntityProps\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDomainObject\n \n \n \n \n \n \n \n mapEntityToDomainObject(entity: ExternalToolPseudonymEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ExternalToolPseudonymEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Pseudonym\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId, Pseudonym } from '@shared/domain';\nimport { ExternalToolPseudonymEntity, IExternalToolPseudonymEntityProps } from '../entity';\n\n@Injectable()\nexport class ExternalToolPseudonymRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findByUserIdAndToolIdOrFail(userId: EntityId, toolId: EntityId): Promise {\n\t\tconst entity: ExternalToolPseudonymEntity = await this.em.findOneOrFail(ExternalToolPseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t\ttoolId: new ObjectId(toolId),\n\t\t});\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByUserIdAndToolId(userId: EntityId, toolId: EntityId): Promise {\n\t\tconst entity: ExternalToolPseudonymEntity | null = await this.em.findOne(ExternalToolPseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t\ttoolId: new ObjectId(toolId),\n\t\t});\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByUserId(userId: EntityId): Promise {\n\t\tconst entities: ExternalToolPseudonymEntity[] = await this.em.find(ExternalToolPseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t});\n\t\tconst pseudonyms: Pseudonym[] = entities.map((entity) => this.mapEntityToDomainObject(entity));\n\n\t\treturn pseudonyms;\n\t}\n\n\tasync createOrUpdate(domainObject: Pseudonym): Promise {\n\t\tconst existing: ExternalToolPseudonymEntity | undefined = this.em\n\t\t\t.getUnitOfWork()\n\t\t\t.getById(ExternalToolPseudonymEntity.name, domainObject.id);\n\n\t\tconst entityProps: IExternalToolPseudonymEntityProps = this.mapDomainObjectToEntityProperties(domainObject);\n\t\tlet entity: ExternalToolPseudonymEntity = new ExternalToolPseudonymEntity(entityProps);\n\n\t\tif (existing) {\n\t\t\tentity = this.em.assign(existing, entity);\n\t\t} else {\n\t\t\tthis.em.persist(entity);\n\t\t}\n\n\t\tawait this.em.flush();\n\n\t\tconst savedDomainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn savedDomainObject;\n\t}\n\n\tasync deletePseudonymsByUserId(userId: EntityId): Promise {\n\t\tconst promise: Promise = this.em.nativeDelete(ExternalToolPseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t});\n\n\t\treturn promise;\n\t}\n\n\tprotected mapEntityToDomainObject(entity: ExternalToolPseudonymEntity): Pseudonym {\n\t\treturn new Pseudonym({\n\t\t\tid: entity.id,\n\t\t\tpseudonym: entity.pseudonym,\n\t\t\ttoolId: entity.toolId.toHexString(),\n\t\t\tuserId: entity.userId.toHexString(),\n\t\t\tcreatedAt: entity.createdAt,\n\t\t\tupdatedAt: entity.updatedAt,\n\t\t});\n\t}\n\n\tprotected mapDomainObjectToEntityProperties(entityDO: Pseudonym): IExternalToolPseudonymEntityProps {\n\t\treturn {\n\t\t\tpseudonym: entityDO.pseudonym,\n\t\t\ttoolId: new ObjectId(entityDO.toolId),\n\t\t\tuserId: new ObjectId(entityDO.userId),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolRepo.html":{"url":"injectables/ExternalToolRepo.html","title":"injectable - ExternalToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/externaltool/external-tool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n find\n \n \n Async\n findAllByConfigType\n \n \n Async\n findByName\n \n \n Async\n findByOAuth2ConfigClientId\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IExternalToolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:23\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IExternalToolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalToolEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(query: ExternalToolSearchQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ExternalToolSearchQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByConfigType\n \n \n \n \n \n \n \n findAllByConfigType(type: ToolConfigType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ToolConfigType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByName\n \n \n \n \n \n \n \n findByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByOAuth2ConfigClientId\n \n \n \n \n \n \n \n findByOAuth2ConfigClientId(clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: ExternalTool)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:90\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IExternalToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: ExternalToolEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ExternalToolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:19\n \n \n\n \n \n\n \n\n\n \n import { EntityName, QueryOrderMap } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { IFindOptions, IPagination, Page, SortOrder } from '@shared/domain';\nimport { BaseDORepo, ExternalToolRepoMapper, ExternalToolSortingMapper, Scope } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ToolConfigType } from '@src/modules/tool/common/enum';\nimport { ExternalToolSearchQuery } from '@src/modules/tool/common/interface';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { ExternalToolEntity, IExternalToolProperties } from '@src/modules/tool/external-tool/entity';\nimport { ExternalToolScope } from './external-tool.scope';\n\n@Injectable()\nexport class ExternalToolRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn ExternalToolEntity;\n\t}\n\n\tentityFactory(props: IExternalToolProperties): ExternalToolEntity {\n\t\treturn new ExternalToolEntity(props);\n\t}\n\n\tasync findByName(name: string): Promise {\n\t\tconst entity: ExternalToolEntity | null = await this._em.findOne(this.entityName, { name });\n\t\tif (entity !== null) {\n\t\t\tconst domainObject: ExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t}\n\t\treturn null;\n\t}\n\n\tasync findAllByConfigType(type: ToolConfigType): Promise {\n\t\tconst entities: ExternalToolEntity[] = await this._em.find(this.entityName, { config: { type } });\n\t\tconst domainObjects: ExternalTool[] = entities.map((entity: ExternalToolEntity): ExternalTool => {\n\t\t\tconst domainObject: ExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t});\n\t\treturn domainObjects;\n\t}\n\n\tasync findByOAuth2ConfigClientId(clientId: string): Promise {\n\t\tconst entity: ExternalToolEntity | null = await this._em.findOne(this.entityName, { config: { clientId } });\n\t\tif (entity !== null) {\n\t\t\tconst domainObject: ExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t}\n\t\treturn null;\n\t}\n\n\tasync find(query: ExternalToolSearchQuery, options?: IFindOptions): Promise> {\n\t\tconst pagination: IPagination = options?.pagination || {};\n\t\tconst order: QueryOrderMap = ExternalToolSortingMapper.mapDOSortOrderToQueryOrder(\n\t\t\toptions?.order || {}\n\t\t);\n\t\tconst scope: Scope = new ExternalToolScope()\n\t\t\t.byName(query.name)\n\t\t\t.byClientId(query.clientId)\n\t\t\t.byHidden(query.isHidden)\n\t\t\t.allowEmptyQuery(true);\n\n\t\tif (order._id == null) {\n\t\t\torder._id = SortOrder.asc;\n\t\t}\n\n\t\tconst [entities, total]: [ExternalToolEntity[], number] = await this._em.findAndCount(\n\t\t\tExternalToolEntity,\n\t\t\tscope.query,\n\t\t\t{\n\t\t\t\toffset: pagination?.skip,\n\t\t\t\tlimit: pagination?.limit,\n\t\t\t\torderBy: order,\n\t\t\t}\n\t\t);\n\n\t\tconst entityDos: ExternalTool[] = entities.map((entity) => this.mapEntityToDO(entity));\n\t\tconst page: Page = new Page(entityDos, total);\n\t\treturn page;\n\t}\n\n\tmapEntityToDO(entity: ExternalToolEntity): ExternalTool {\n\t\tconst domainObject = ExternalToolRepoMapper.mapEntityToDO(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tmapDOToEntityProperties(entityDO: ExternalTool): IExternalToolProperties {\n\t\tconst entity = ExternalToolRepoMapper.mapDOToEntityProperties(entityDO);\n\n\t\treturn entity;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolRepoMapper.html":{"url":"classes/ExternalToolRepoMapper.html","title":"class - ExternalToolRepoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolRepoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapBasicToolConfigDOToEntity\n \n \n Static\n mapBasicToolConfigToDO\n \n \n Static\n mapCustomParameterDOsToEntities\n \n \n Static\n mapCustomParameterEntryDOsToEntities\n \n \n Static\n mapCustomParameterEntryEntitiesToDOs\n \n \n Static\n mapCustomParametersToDOs\n \n \n Static\n mapDOToEntityProperties\n \n \n Static\n mapEntityToDO\n \n \n Static\n mapLti11ToolConfigDOToEntity\n \n \n Static\n mapLti11ToolConfigToDO\n \n \n Static\n mapOauth2ConfigDOToEntity\n \n \n Static\n mapOauth2ConfigToDO\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapBasicToolConfigDOToEntity\n \n \n \n \n \n \n \n mapBasicToolConfigDOToEntity(lti11Config: BasicToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:112\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lti11Config\n \n BasicToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BasicToolConfigEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapBasicToolConfigToDO\n \n \n \n \n \n \n \n mapBasicToolConfigToDO(lti11Config: BasicToolConfigEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lti11Config\n \n BasicToolConfigEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BasicToolConfig\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParameterDOsToEntities\n \n \n \n \n \n \n \n mapCustomParameterDOsToEntities(customParameters: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:159\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameters\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntity[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParameterEntryDOsToEntities\n \n \n \n \n \n \n \n mapCustomParameterEntryDOsToEntities(entries: CustomParameterEntry[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:187\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entries\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntryEntity[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParameterEntryEntitiesToDOs\n \n \n \n \n \n \n \n mapCustomParameterEntryEntitiesToDOs(entries: CustomParameterEntryEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:177\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entries\n \n CustomParameterEntryEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntry[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParametersToDOs\n \n \n \n \n \n \n \n mapCustomParametersToDOs(customParameters: CustomParameterEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameters\n \n CustomParameterEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameter[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(entityDO: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IExternalToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: ExternalToolEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ExternalToolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapLti11ToolConfigDOToEntity\n \n \n \n \n \n \n \n mapLti11ToolConfigDOToEntity(lti11Config: Lti11ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:128\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lti11Config\n \n Lti11ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfigEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapLti11ToolConfigToDO\n \n \n \n \n \n \n \n mapLti11ToolConfigToDO(lti11Config: Lti11ToolConfigEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lti11Config\n \n Lti11ToolConfigEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfig\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapOauth2ConfigDOToEntity\n \n \n \n \n \n \n \n mapOauth2ConfigDOToEntity(oauth2Config: Oauth2ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:119\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauth2Config\n \n Oauth2ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfigEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapOauth2ConfigToDO\n \n \n \n \n \n \n \n mapOauth2ConfigToDO(oauth2Config: Oauth2ToolConfigEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauth2Config\n \n Oauth2ToolConfigEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfig\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { CustomParameter, CustomParameterEntry } from '@src/modules/tool/common/domain';\nimport { CustomParameterEntryEntity } from '@src/modules/tool/common/entity';\nimport { ToolConfigType } from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@src/modules/tool/external-tool/domain';\nimport {\n\tBasicToolConfigEntity,\n\tCustomParameterEntity,\n\tExternalToolEntity,\n\tIExternalToolProperties,\n\tLti11ToolConfigEntity,\n\tOauth2ToolConfigEntity,\n} from '@src/modules/tool/external-tool/entity';\n\n// TODO: maybe rename because of usage in external tool repo and school external tool repo\nexport class ExternalToolRepoMapper {\n\tstatic mapEntityToDO(entity: ExternalToolEntity): ExternalTool {\n\t\tlet config: BasicToolConfig | Oauth2ToolConfig | Lti11ToolConfig;\n\t\tswitch (entity.config.type) {\n\t\t\tcase ToolConfigType.BASIC:\n\t\t\t\tconfig = this.mapBasicToolConfigToDO(entity.config as BasicToolConfig);\n\t\t\t\tbreak;\n\t\t\tcase ToolConfigType.OAUTH2:\n\t\t\t\tconfig = this.mapOauth2ConfigToDO(entity.config as Oauth2ToolConfig);\n\t\t\t\tbreak;\n\t\t\tcase ToolConfigType.LTI11:\n\t\t\t\tconfig = this.mapLti11ToolConfigToDO(entity.config as Lti11ToolConfig);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tthrow new UnprocessableEntityException(`Unknown config type.`);\n\t\t}\n\n\t\treturn new ExternalTool({\n\t\t\tid: entity.id,\n\t\t\tname: entity.name,\n\t\t\turl: entity.url,\n\t\t\tlogoUrl: entity.logoUrl,\n\t\t\tlogo: entity.logoBase64,\n\t\t\tconfig,\n\t\t\tparameters: this.mapCustomParametersToDOs(entity.parameters || []),\n\t\t\tisHidden: entity.isHidden,\n\t\t\topenNewTab: entity.openNewTab,\n\t\t\tversion: entity.version,\n\t\t});\n\t}\n\n\tstatic mapBasicToolConfigToDO(lti11Config: BasicToolConfigEntity): BasicToolConfig {\n\t\treturn new BasicToolConfig({\n\t\t\ttype: lti11Config.type,\n\t\t\tbaseUrl: lti11Config.baseUrl,\n\t\t});\n\t}\n\n\tstatic mapOauth2ConfigToDO(oauth2Config: Oauth2ToolConfigEntity): Oauth2ToolConfig {\n\t\treturn new Oauth2ToolConfig({\n\t\t\ttype: oauth2Config.type,\n\t\t\tbaseUrl: oauth2Config.baseUrl,\n\t\t\tclientId: oauth2Config.clientId,\n\t\t\tskipConsent: oauth2Config.skipConsent,\n\t\t});\n\t}\n\n\tstatic mapLti11ToolConfigToDO(lti11Config: Lti11ToolConfigEntity): Lti11ToolConfig {\n\t\treturn new Lti11ToolConfig({\n\t\t\ttype: lti11Config.type,\n\t\t\tbaseUrl: lti11Config.baseUrl,\n\t\t\tkey: lti11Config.key,\n\t\t\tsecret: lti11Config.secret,\n\t\t\tlti_message_type: lti11Config.lti_message_type,\n\t\t\tresource_link_id: lti11Config.resource_link_id,\n\t\t\tprivacy_permission: lti11Config.privacy_permission,\n\t\t\tlaunch_presentation_locale: lti11Config.launch_presentation_locale,\n\t\t});\n\t}\n\n\tstatic mapDOToEntityProperties(entityDO: ExternalTool): IExternalToolProperties {\n\t\tlet config: BasicToolConfigEntity | Oauth2ToolConfigEntity | Lti11ToolConfigEntity;\n\t\tswitch (entityDO.config.type) {\n\t\t\tcase ToolConfigType.BASIC:\n\t\t\t\tconfig = this.mapBasicToolConfigDOToEntity(entityDO.config as BasicToolConfig);\n\t\t\t\tbreak;\n\t\t\tcase ToolConfigType.OAUTH2:\n\t\t\t\tconfig = this.mapOauth2ConfigDOToEntity(entityDO.config as Oauth2ToolConfig);\n\t\t\t\tbreak;\n\t\t\tcase ToolConfigType.LTI11:\n\t\t\t\tconfig = this.mapLti11ToolConfigDOToEntity(entityDO.config as Lti11ToolConfig);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tthrow new UnprocessableEntityException(`Unknown config type.`);\n\t\t}\n\n\t\treturn {\n\t\t\tname: entityDO.name,\n\t\t\turl: entityDO.url,\n\t\t\tlogoUrl: entityDO.logoUrl,\n\t\t\tlogoBase64: entityDO.logo,\n\t\t\tconfig,\n\t\t\tparameters: this.mapCustomParameterDOsToEntities(entityDO.parameters ?? []),\n\t\t\tisHidden: entityDO.isHidden,\n\t\t\topenNewTab: entityDO.openNewTab,\n\t\t\tversion: entityDO.version,\n\t\t};\n\t}\n\n\tstatic mapBasicToolConfigDOToEntity(lti11Config: BasicToolConfig): BasicToolConfigEntity {\n\t\treturn new BasicToolConfigEntity({\n\t\t\ttype: lti11Config.type,\n\t\t\tbaseUrl: lti11Config.baseUrl,\n\t\t});\n\t}\n\n\tstatic mapOauth2ConfigDOToEntity(oauth2Config: Oauth2ToolConfig): Oauth2ToolConfigEntity {\n\t\treturn new Oauth2ToolConfigEntity({\n\t\t\ttype: oauth2Config.type,\n\t\t\tbaseUrl: oauth2Config.baseUrl,\n\t\t\tclientId: oauth2Config.clientId,\n\t\t\tskipConsent: oauth2Config.skipConsent,\n\t\t});\n\t}\n\n\tstatic mapLti11ToolConfigDOToEntity(lti11Config: Lti11ToolConfig): Lti11ToolConfigEntity {\n\t\treturn new Lti11ToolConfigEntity({\n\t\t\ttype: lti11Config.type,\n\t\t\tbaseUrl: lti11Config.baseUrl,\n\t\t\tkey: lti11Config.key,\n\t\t\tsecret: lti11Config.secret,\n\t\t\tlti_message_type: lti11Config.lti_message_type,\n\t\t\tresource_link_id: lti11Config.resource_link_id,\n\t\t\tprivacy_permission: lti11Config.privacy_permission,\n\t\t\tlaunch_presentation_locale: lti11Config.launch_presentation_locale,\n\t\t});\n\t}\n\n\tstatic mapCustomParametersToDOs(customParameters: CustomParameterEntity[]): CustomParameter[] {\n\t\treturn customParameters.map(\n\t\t\t(param: CustomParameterEntity) =>\n\t\t\t\tnew CustomParameter({\n\t\t\t\t\tname: param.name,\n\t\t\t\t\tdisplayName: param.displayName,\n\t\t\t\t\tdescription: param.description,\n\t\t\t\t\tdefault: param.default,\n\t\t\t\t\tregex: param.regex,\n\t\t\t\t\tregexComment: param.regexComment,\n\t\t\t\t\tscope: param.scope,\n\t\t\t\t\tlocation: param.location,\n\t\t\t\t\ttype: param.type,\n\t\t\t\t\tisOptional: param.isOptional,\n\t\t\t\t})\n\t\t);\n\t}\n\n\tstatic mapCustomParameterDOsToEntities(customParameters: CustomParameter[]): CustomParameterEntity[] {\n\t\treturn customParameters.map(\n\t\t\t(param: CustomParameter) =>\n\t\t\t\tnew CustomParameterEntity({\n\t\t\t\t\tname: param.name,\n\t\t\t\t\tdisplayName: param.displayName,\n\t\t\t\t\tdescription: param.description,\n\t\t\t\t\tdefault: param.default,\n\t\t\t\t\tregex: param.regex,\n\t\t\t\t\tregexComment: param.regexComment,\n\t\t\t\t\tscope: param.scope,\n\t\t\t\t\tlocation: param.location,\n\t\t\t\t\ttype: param.type,\n\t\t\t\t\tisOptional: param.isOptional,\n\t\t\t\t})\n\t\t);\n\t}\n\n\tstatic mapCustomParameterEntryEntitiesToDOs(entries: CustomParameterEntryEntity[]): CustomParameterEntry[] {\n\t\treturn entries.map(\n\t\t\t(entry: CustomParameterEntryEntity): CustomParameterEntry =>\n\t\t\t\tnew CustomParameterEntry({\n\t\t\t\t\tname: entry.name,\n\t\t\t\t\tvalue: entry.value,\n\t\t\t\t})\n\t\t);\n\t}\n\n\tstatic mapCustomParameterEntryDOsToEntities(entries: CustomParameterEntry[]): CustomParameterEntryEntity[] {\n\t\treturn entries.map(\n\t\t\t(entry: CustomParameterEntryEntity): CustomParameterEntry =>\n\t\t\t\tnew CustomParameterEntryEntity({\n\t\t\t\t\tname: entry.name,\n\t\t\t\t\tvalue: entry.value,\n\t\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolRequestMapper.html":{"url":"injectables/ExternalToolRequestMapper.html","title":"injectable - ExternalToolRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapCreateRequest\n \n \n mapExternalToolFilterQueryToExternalToolSearchQuery\n \n \n Private\n mapRequestToBasicToolConfig\n \n \n Private\n mapRequestToCustomParameterDO\n \n \n Private\n mapRequestToLti11ToolConfigCreate\n \n \n Private\n mapRequestToLti11ToolConfigUpdate\n \n \n Private\n mapRequestToOauth2ToolConfigCreate\n \n \n Private\n mapRequestToOauth2ToolConfigUpdate\n \n \n mapSortingQueryToDomain\n \n \n Public\n mapUpdateRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapCreateRequest\n \n \n \n \n \n \n \n mapCreateRequest(externalToolCreateParams: ExternalToolCreateParams, version: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n externalToolCreateParams\n \n ExternalToolCreateParams\n \n\n \n No\n \n\n \n \n\n \n \n version\n \n number\n \n\n \n No\n \n\n \n 1\n \n\n \n \n \n \n \n \n \n Returns : ExternalToolCreate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapExternalToolFilterQueryToExternalToolSearchQuery\n \n \n \n \n \n \nmapExternalToolFilterQueryToExternalToolSearchQuery(params: ExternalToolSearchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:170\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ExternalToolSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalToolSearchQuery\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToBasicToolConfig\n \n \n \n \n \n \n \n mapRequestToBasicToolConfig(externalToolConfigParams: BasicToolConfigParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:113\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n BasicToolConfigParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BasicToolConfigDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToCustomParameterDO\n \n \n \n \n \n \n \n mapRequestToCustomParameterDO(customParameterParams: CustomParameterPostParams[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameterParams\n \n CustomParameterPostParams[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToLti11ToolConfigCreate\n \n \n \n \n \n \n \n mapRequestToLti11ToolConfigCreate(externalToolConfigParams: Lti11ToolConfigCreateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:117\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n Lti11ToolConfigCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfigCreate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToLti11ToolConfigUpdate\n \n \n \n \n \n \n \n mapRequestToLti11ToolConfigUpdate(externalToolConfigParams: Lti11ToolConfigUpdateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:123\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n Lti11ToolConfigUpdateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfigUpdate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToOauth2ToolConfigCreate\n \n \n \n \n \n \n \n mapRequestToOauth2ToolConfigCreate(externalToolConfigParams: Oauth2ToolConfigCreateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n Oauth2ToolConfigCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfigCreate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToOauth2ToolConfigUpdate\n \n \n \n \n \n \n \n mapRequestToOauth2ToolConfigUpdate(externalToolConfigParams: Oauth2ToolConfigUpdateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:135\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n Oauth2ToolConfigUpdateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfigUpdate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapSortingQueryToDomain\n \n \n \n \n \n \nmapSortingQueryToDomain(sortingQuery: SortExternalToolParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:158\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sortingQuery\n \n SortExternalToolParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SortOrderMap | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n mapUpdateRequest\n \n \n \n \n \n \n \n mapUpdateRequest(externalToolUpdateParams: ExternalToolUpdateParams, version: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n externalToolUpdateParams\n \n ExternalToolUpdateParams\n \n\n \n No\n \n\n \n \n\n \n \n version\n \n number\n \n\n \n No\n \n\n \n 1\n \n\n \n \n \n \n \n \n \n Returns : ExternalToolUpdate\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SortOrderMap } from '@shared/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterLocationParams,\n\tCustomParameterScope,\n\tCustomParameterScopeTypeParams,\n\tCustomParameterType,\n\tCustomParameterTypeParams,\n} from '../../common/enum';\nimport {\n\tBasicToolConfigParams,\n\tCustomParameterPostParams,\n\tExternalToolCreateParams,\n\tExternalToolSearchParams,\n\tExternalToolUpdateParams,\n\tLti11ToolConfigCreateParams,\n\tLti11ToolConfigUpdateParams,\n\tOauth2ToolConfigCreateParams,\n\tOauth2ToolConfigUpdateParams,\n\tSortExternalToolParams,\n} from '../controller/dto';\nimport {\n\tBasicToolConfigDto,\n\tCustomParameterDto,\n\tExternalToolCreate,\n\tExternalToolUpdate,\n\tLti11ToolConfigCreate,\n\tLti11ToolConfigUpdate,\n\tOauth2ToolConfigCreate,\n\tOauth2ToolConfigUpdate,\n} from '../uc';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolSearchQuery } from '../../common/interface';\n\nconst scopeMapping: Record = {\n\t[CustomParameterScopeTypeParams.GLOBAL]: CustomParameterScope.GLOBAL,\n\t[CustomParameterScopeTypeParams.SCHOOL]: CustomParameterScope.SCHOOL,\n\t[CustomParameterScopeTypeParams.CONTEXT]: CustomParameterScope.CONTEXT,\n};\n\nconst locationMapping: Record = {\n\t[CustomParameterLocationParams.PATH]: CustomParameterLocation.PATH,\n\t[CustomParameterLocationParams.QUERY]: CustomParameterLocation.QUERY,\n\t[CustomParameterLocationParams.BODY]: CustomParameterLocation.BODY,\n};\n\nconst typeMapping: Record = {\n\t[CustomParameterTypeParams.STRING]: CustomParameterType.STRING,\n\t[CustomParameterTypeParams.BOOLEAN]: CustomParameterType.BOOLEAN,\n\t[CustomParameterTypeParams.NUMBER]: CustomParameterType.NUMBER,\n\t[CustomParameterTypeParams.AUTO_CONTEXTID]: CustomParameterType.AUTO_CONTEXTID,\n\t[CustomParameterTypeParams.AUTO_CONTEXTNAME]: CustomParameterType.AUTO_CONTEXTNAME,\n\t[CustomParameterTypeParams.AUTO_SCHOOLID]: CustomParameterType.AUTO_SCHOOLID,\n\t[CustomParameterTypeParams.AUTO_SCHOOLNUMBER]: CustomParameterType.AUTO_SCHOOLNUMBER,\n};\n\n@Injectable()\nexport class ExternalToolRequestMapper {\n\tpublic mapUpdateRequest(externalToolUpdateParams: ExternalToolUpdateParams, version = 1): ExternalToolUpdate {\n\t\tlet mappedConfig: BasicToolConfigDto | Lti11ToolConfigUpdate | Oauth2ToolConfigUpdate;\n\t\tif (externalToolUpdateParams.config instanceof BasicToolConfigParams) {\n\t\t\tmappedConfig = this.mapRequestToBasicToolConfig(externalToolUpdateParams.config);\n\t\t} else if (externalToolUpdateParams.config instanceof Lti11ToolConfigUpdateParams) {\n\t\t\tmappedConfig = this.mapRequestToLti11ToolConfigUpdate(externalToolUpdateParams.config);\n\t\t} else {\n\t\t\tmappedConfig = this.mapRequestToOauth2ToolConfigUpdate(externalToolUpdateParams.config);\n\t\t}\n\n\t\tconst mappedCustomParameter: CustomParameterDto[] = this.mapRequestToCustomParameterDO(\n\t\t\texternalToolUpdateParams.parameters ?? []\n\t\t);\n\n\t\treturn {\n\t\t\tid: externalToolUpdateParams.id,\n\t\t\tname: externalToolUpdateParams.name,\n\t\t\turl: externalToolUpdateParams.url,\n\t\t\tlogoUrl: externalToolUpdateParams.logoUrl,\n\t\t\tconfig: mappedConfig,\n\t\t\tparameters: mappedCustomParameter,\n\t\t\tisHidden: externalToolUpdateParams.isHidden,\n\t\t\topenNewTab: externalToolUpdateParams.openNewTab,\n\t\t\tversion,\n\t\t};\n\t}\n\n\tpublic mapCreateRequest(externalToolCreateParams: ExternalToolCreateParams, version = 1): ExternalToolCreate {\n\t\tlet mappedConfig: BasicToolConfigDto | Lti11ToolConfigCreate | Oauth2ToolConfigCreate;\n\t\tif (externalToolCreateParams.config instanceof BasicToolConfigParams) {\n\t\t\tmappedConfig = this.mapRequestToBasicToolConfig(externalToolCreateParams.config);\n\t\t} else if (externalToolCreateParams.config instanceof Lti11ToolConfigCreateParams) {\n\t\t\tmappedConfig = this.mapRequestToLti11ToolConfigCreate(externalToolCreateParams.config);\n\t\t} else {\n\t\t\tmappedConfig = this.mapRequestToOauth2ToolConfigCreate(externalToolCreateParams.config);\n\t\t}\n\n\t\tconst mappedCustomParameter: CustomParameterDto[] = this.mapRequestToCustomParameterDO(\n\t\t\texternalToolCreateParams.parameters ?? []\n\t\t);\n\n\t\treturn {\n\t\t\tname: externalToolCreateParams.name,\n\t\t\turl: externalToolCreateParams.url,\n\t\t\tlogoUrl: externalToolCreateParams.logoUrl,\n\t\t\tconfig: mappedConfig,\n\t\t\tparameters: mappedCustomParameter,\n\t\t\tisHidden: externalToolCreateParams.isHidden,\n\t\t\topenNewTab: externalToolCreateParams.openNewTab,\n\t\t\tversion,\n\t\t};\n\t}\n\n\tprivate mapRequestToBasicToolConfig(externalToolConfigParams: BasicToolConfigParams): BasicToolConfigDto {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToLti11ToolConfigCreate(\n\t\texternalToolConfigParams: Lti11ToolConfigCreateParams\n\t): Lti11ToolConfigCreate {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToLti11ToolConfigUpdate(\n\t\texternalToolConfigParams: Lti11ToolConfigUpdateParams\n\t): Lti11ToolConfigUpdate {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToOauth2ToolConfigCreate(\n\t\texternalToolConfigParams: Oauth2ToolConfigCreateParams\n\t): Oauth2ToolConfigCreate {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToOauth2ToolConfigUpdate(\n\t\texternalToolConfigParams: Oauth2ToolConfigUpdateParams\n\t): Oauth2ToolConfigUpdate {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToCustomParameterDO(customParameterParams: CustomParameterPostParams[]): CustomParameterDto[] {\n\t\treturn customParameterParams.map((customParameterParam: CustomParameterPostParams) => {\n\t\t\treturn {\n\t\t\t\tname: customParameterParam.name,\n\t\t\t\tdisplayName: customParameterParam.displayName,\n\t\t\t\tdescription: customParameterParam.description,\n\t\t\t\tdefault: customParameterParam.defaultValue,\n\t\t\t\tregex: customParameterParam.regex,\n\t\t\t\tregexComment: customParameterParam.regexComment,\n\t\t\t\tscope: scopeMapping[customParameterParam.scope],\n\t\t\t\tlocation: locationMapping[customParameterParam.location],\n\t\t\t\ttype: typeMapping[customParameterParam.type],\n\t\t\t\tisOptional: customParameterParam.isOptional,\n\t\t\t};\n\t\t});\n\t}\n\n\tmapSortingQueryToDomain(sortingQuery: SortExternalToolParams): SortOrderMap | undefined {\n\t\tconst { sortBy } = sortingQuery;\n\t\tif (sortBy == null) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst result: SortOrderMap = {\n\t\t\t[sortBy]: sortingQuery.sortOrder,\n\t\t};\n\t\treturn result;\n\t}\n\n\tmapExternalToolFilterQueryToExternalToolSearchQuery(params: ExternalToolSearchParams): ExternalToolSearchQuery {\n\t\tconst searchQuery: ExternalToolSearchQuery = {\n\t\t\tname: params.name,\n\t\t\tclientId: params.clientId,\n\t\t};\n\n\t\treturn searchQuery;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolResponse.html":{"url":"classes/ExternalToolResponse.html","title":"class - ExternalToolResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n id\n \n \n \n isHidden\n \n \n \n Optional\n logoUrl\n \n \n \n name\n \n \n \n openNewTab\n \n \n \n parameters\n \n \n \n Optional\n url\n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(response: ExternalToolResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:31\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n \n ExternalToolResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : BasicToolConfigResponse | Oauth2ToolConfigResponse | Lti11ToolConfigResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:31\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { BasicToolConfigResponse, Oauth2ToolConfigResponse, Lti11ToolConfigResponse } from './config';\nimport { CustomParameterResponse } from './custom-parameter.response';\n\nexport class ExternalToolResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\turl?: string;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ApiProperty()\n\tconfig: BasicToolConfigResponse | Oauth2ToolConfigResponse | Lti11ToolConfigResponse;\n\n\t@ApiProperty()\n\tparameters: CustomParameterResponse[];\n\n\t@ApiProperty()\n\tisHidden: boolean;\n\n\t@ApiProperty()\n\topenNewTab: boolean;\n\n\t@ApiProperty()\n\tversion: number;\n\n\tconstructor(response: ExternalToolResponse) {\n\t\tthis.id = response.id;\n\t\tthis.name = response.name;\n\t\tthis.url = response.url;\n\t\tthis.logoUrl = response.logoUrl;\n\t\tthis.config = response.config;\n\t\tthis.parameters = response.parameters;\n\t\tthis.isHidden = response.isHidden;\n\t\tthis.openNewTab = response.openNewTab;\n\t\tthis.version = response.version;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolResponseMapper.html":{"url":"injectables/ExternalToolResponseMapper.html","title":"injectable - ExternalToolResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n mapBasicToolConfigDOToResponse\n \n \n Static\n mapCustomParameterToResponse\n \n \n Private\n Static\n mapLti11ToolConfigDOToResponse\n \n \n Private\n Static\n mapOauth2ToolConfigDOToResponse\n \n \n Static\n mapToExternalToolResponse\n \n \n Private\n Static\n mapToToolReferenceResponse\n \n \n Static\n mapToToolReferenceResponses\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n mapBasicToolConfigDOToResponse\n \n \n \n \n \n \n \n mapBasicToolConfigDOToResponse(externalToolConfigDO: BasicToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigDO\n \n BasicToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BasicToolConfigResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParameterToResponse\n \n \n \n \n \n \n \n mapCustomParameterToResponse(customParameters: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameters\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterResponse[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapLti11ToolConfigDOToResponse\n \n \n \n \n \n \n \n mapLti11ToolConfigDOToResponse(externalToolConfigDO: Lti11ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigDO\n \n Lti11ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfigResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapOauth2ToolConfigDOToResponse\n \n \n \n \n \n \n \n mapOauth2ToolConfigDOToResponse(externalToolConfigDO: Oauth2ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigDO\n \n Oauth2ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfigResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToExternalToolResponse\n \n \n \n \n \n \n \n mapToExternalToolResponse(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalToolResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapToToolReferenceResponse\n \n \n \n \n \n \n \n mapToToolReferenceResponse(toolReference: ToolReference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolReference\n \n ToolReference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolReferenceResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToToolReferenceResponses\n \n \n \n \n \n \n \n mapToToolReferenceResponses(toolReferences: ToolReference[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:102\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolReferences\n \n ToolReference[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolReferenceResponse[]\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CustomParameter } from '../../common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterLocationParams,\n\tCustomParameterScope,\n\tCustomParameterScopeTypeParams,\n\tCustomParameterType,\n\tCustomParameterTypeParams,\n} from '../../common/enum';\nimport { statusMapping } from '../../school-external-tool/mapper';\nimport {\n\tBasicToolConfigResponse,\n\tCustomParameterResponse,\n\tExternalToolResponse,\n\tLti11ToolConfigResponse,\n\tOauth2ToolConfigResponse,\n\tToolReferenceResponse,\n} from '../controller/dto';\nimport { BasicToolConfig, ExternalTool, Lti11ToolConfig, Oauth2ToolConfig, ToolReference } from '../domain';\n\nconst scopeMapping: Record = {\n\t[CustomParameterScope.GLOBAL]: CustomParameterScopeTypeParams.GLOBAL,\n\t[CustomParameterScope.SCHOOL]: CustomParameterScopeTypeParams.SCHOOL,\n\t[CustomParameterScope.CONTEXT]: CustomParameterScopeTypeParams.CONTEXT,\n};\n\nconst locationMapping: Record = {\n\t[CustomParameterLocation.PATH]: CustomParameterLocationParams.PATH,\n\t[CustomParameterLocation.QUERY]: CustomParameterLocationParams.QUERY,\n\t[CustomParameterLocation.BODY]: CustomParameterLocationParams.BODY,\n};\n\nconst typeMapping: Record = {\n\t[CustomParameterType.STRING]: CustomParameterTypeParams.STRING,\n\t[CustomParameterType.BOOLEAN]: CustomParameterTypeParams.BOOLEAN,\n\t[CustomParameterType.NUMBER]: CustomParameterTypeParams.NUMBER,\n\t[CustomParameterType.AUTO_CONTEXTID]: CustomParameterTypeParams.AUTO_CONTEXTID,\n\t[CustomParameterType.AUTO_CONTEXTNAME]: CustomParameterTypeParams.AUTO_CONTEXTNAME,\n\t[CustomParameterType.AUTO_SCHOOLID]: CustomParameterTypeParams.AUTO_SCHOOLID,\n\t[CustomParameterType.AUTO_SCHOOLNUMBER]: CustomParameterTypeParams.AUTO_SCHOOLNUMBER,\n};\n\n@Injectable()\nexport class ExternalToolResponseMapper {\n\tstatic mapToExternalToolResponse(externalTool: ExternalTool): ExternalToolResponse {\n\t\tlet mappedConfig: BasicToolConfigResponse | Lti11ToolConfigResponse | Oauth2ToolConfigResponse;\n\t\tif (externalTool.config instanceof BasicToolConfig) {\n\t\t\tmappedConfig = this.mapBasicToolConfigDOToResponse(externalTool.config);\n\t\t} else if (externalTool.config instanceof Lti11ToolConfig) {\n\t\t\tmappedConfig = this.mapLti11ToolConfigDOToResponse(externalTool.config);\n\t\t} else {\n\t\t\tmappedConfig = this.mapOauth2ToolConfigDOToResponse(externalTool.config);\n\t\t}\n\n\t\tconst mappedCustomParameter: CustomParameterResponse[] = this.mapCustomParameterToResponse(\n\t\t\texternalTool.parameters ?? []\n\t\t);\n\n\t\treturn new ExternalToolResponse({\n\t\t\tid: externalTool.id ?? '',\n\t\t\tname: externalTool.name,\n\t\t\turl: externalTool.url,\n\t\t\tlogoUrl: externalTool.logoUrl,\n\t\t\tconfig: mappedConfig,\n\t\t\tparameters: mappedCustomParameter,\n\t\t\tisHidden: externalTool.isHidden,\n\t\t\topenNewTab: externalTool.openNewTab,\n\t\t\tversion: externalTool.version,\n\t\t});\n\t}\n\n\tprivate static mapBasicToolConfigDOToResponse(externalToolConfigDO: BasicToolConfig): BasicToolConfigResponse {\n\t\treturn new BasicToolConfigResponse({ ...externalToolConfigDO });\n\t}\n\n\tprivate static mapLti11ToolConfigDOToResponse(externalToolConfigDO: Lti11ToolConfig): Lti11ToolConfigResponse {\n\t\treturn new Lti11ToolConfigResponse({ ...externalToolConfigDO });\n\t}\n\n\tprivate static mapOauth2ToolConfigDOToResponse(externalToolConfigDO: Oauth2ToolConfig): Oauth2ToolConfigResponse {\n\t\treturn new Oauth2ToolConfigResponse({ ...externalToolConfigDO });\n\t}\n\n\tstatic mapCustomParameterToResponse(customParameters: CustomParameter[]): CustomParameterResponse[] {\n\t\treturn customParameters.map((customParameterDO: CustomParameter) => {\n\t\t\treturn {\n\t\t\t\tname: customParameterDO.name,\n\t\t\t\tdisplayName: customParameterDO.displayName,\n\t\t\t\tdescription: customParameterDO.description,\n\t\t\t\tdefaultValue: customParameterDO.default,\n\t\t\t\tregex: customParameterDO.regex,\n\t\t\t\tregexComment: customParameterDO.regexComment,\n\t\t\t\tscope: scopeMapping[customParameterDO.scope],\n\t\t\t\tlocation: locationMapping[customParameterDO.location],\n\t\t\t\ttype: typeMapping[customParameterDO.type],\n\t\t\t\tisOptional: customParameterDO.isOptional,\n\t\t\t};\n\t\t});\n\t}\n\n\tstatic mapToToolReferenceResponses(toolReferences: ToolReference[]): ToolReferenceResponse[] {\n\t\tconst toolReferenceResponses: ToolReferenceResponse[] = toolReferences.map((toolReference: ToolReference) =>\n\t\t\tthis.mapToToolReferenceResponse(toolReference)\n\t\t);\n\n\t\treturn toolReferenceResponses;\n\t}\n\n\tprivate static mapToToolReferenceResponse(toolReference: ToolReference): ToolReferenceResponse {\n\t\tconst response = new ToolReferenceResponse({\n\t\t\tcontextToolId: toolReference.contextToolId,\n\t\t\tdisplayName: toolReference.displayName,\n\t\t\tlogoUrl: toolReference.logoUrl,\n\t\t\topenInNewTab: toolReference.openInNewTab,\n\t\t\tstatus: statusMapping[toolReference.status],\n\t\t});\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolScope.html":{"url":"classes/ExternalToolScope.html","title":"class - ExternalToolScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/externaltool/external-tool.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byClientId\n \n \n byHidden\n \n \n byName\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byClientId\n \n \n \n \n \n \nbyClientId(clientId: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.scope.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byHidden\n \n \n \n \n \n \nbyHidden(isHidden: boolean | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.scope.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isHidden\n \n boolean | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byName\n \n \n \n \n \n \nbyName(name: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.scope.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Scope } from '@shared/repo/scope';\nimport { ExternalToolEntity } from '@src/modules/tool/external-tool/entity';\n\nexport class ExternalToolScope extends Scope {\n\tbyName(name: string | undefined): this {\n\t\tif (name) {\n\t\t\tthis.addQuery({ name: { $re: name } });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyClientId(clientId: string | undefined): this {\n\t\tif (clientId) {\n\t\t\tthis.addQuery({ config: { clientId } });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyHidden(isHidden: boolean | undefined): this {\n\t\tif (isHidden !== undefined) {\n\t\t\tthis.addQuery({ isHidden });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolSearchListResponse.html":{"url":"classes/ExternalToolSearchListResponse.html","title":"class - ExternalToolSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool-search-list.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ExternalToolResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool-search-list.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ExternalToolResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ExternalToolResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:7\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PaginationResponse } from '@shared/controller';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { ExternalToolResponse } from './external-tool.response';\n\nexport class ExternalToolSearchListResponse extends PaginationResponse {\n\t@ApiProperty({ type: [ExternalToolResponse] })\n\tdata: ExternalToolResponse[];\n\n\tconstructor(data: ExternalToolResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolSearchParams.html":{"url":"classes/ExternalToolSearchParams.html","title":"class - ExternalToolSearchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolSearchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-search.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n clientId\n \n \n \n \n \n Optional\n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'OAuth2 client id of the external tool'})@IsString()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-search.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Name of the external tool'})@IsString()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-search.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsOptional, IsString } from 'class-validator';\n\nexport class ExternalToolSearchParams {\n\t@ApiPropertyOptional({ description: 'Name of the external tool' })\n\t@IsString()\n\t@IsOptional()\n\tname?: string;\n\n\t@ApiPropertyOptional({ description: 'OAuth2 client id of the external tool' })\n\t@IsString()\n\t@IsOptional()\n\tclientId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalToolSearchQuery.html":{"url":"interfaces/ExternalToolSearchQuery.html","title":"interface - ExternalToolSearchQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalToolSearchQuery\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/interface/external-tool-search-query.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n clientId\n \n \n \n Optional\n \n isHidden\n \n \n \n Optional\n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n clientId\n \n \n \n \n \n \n \n \n clientId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n \n \n isHidden: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface ExternalToolSearchQuery {\n\tname?: string;\n\n\tclientId?: string;\n\n\tisHidden?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolService.html":{"url":"injectables/ExternalToolService.html","title":"injectable - ExternalToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n addExternalOauth2DataToConfig\n \n \n Async\n createExternalTool\n \n \n Async\n deleteExternalTool\n \n \n Async\n findExternalToolById\n \n \n findExternalToolByName\n \n \n findExternalToolByOAuth2ConfigClientId\n \n \n Async\n findExternalTools\n \n \n Async\n updateExternalTool\n \n \n Private\n Async\n updateOauth2ToolConfig\n \n \n Private\n Async\n updateOauthClientOrThrow\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolRepo: ExternalToolRepo, oauthProviderService: OauthProviderService, mapper: ExternalToolServiceMapper, schoolExternalToolRepo: SchoolExternalToolRepo, contextExternalToolRepo: ContextExternalToolRepo, encryptionService: IEncryptionService, legacyLogger: LegacyLogger, externalToolVersionService: ExternalToolVersionService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolRepo\n \n \n ExternalToolRepo\n \n \n \n No\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n mapper\n \n \n ExternalToolServiceMapper\n \n \n \n No\n \n \n \n \n schoolExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n \n No\n \n \n \n \n contextExternalToolRepo\n \n \n ContextExternalToolRepo\n \n \n \n No\n \n \n \n \n encryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n legacyLogger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n externalToolVersionService\n \n \n ExternalToolVersionService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n addExternalOauth2DataToConfig\n \n \n \n \n \n \n \n addExternalOauth2DataToConfig(config: Oauth2ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:143\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n Oauth2ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createExternalTool\n \n \n \n \n \n \n \n createExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteExternalTool\n \n \n \n \n \n \n \n deleteExternalTool(toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findExternalToolById\n \n \n \n \n \n \n \n findExternalToolById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n findExternalToolByName\n \n \n \n \n \n \nfindExternalToolByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:93\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n findExternalToolByOAuth2ConfigClientId\n \n \n \n \n \n \nfindExternalToolByOAuth2ConfigClientId(clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:98\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findExternalTools\n \n \n \n \n \n \n \n findExternalTools(query: ExternalToolSearchQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ExternalToolSearchQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateExternalTool\n \n \n \n \n \n \n \n updateExternalTool(toUpdate: ExternalTool, loadedTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toUpdate\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n loadedTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateOauth2ToolConfig\n \n \n \n \n \n \n \n updateOauth2ToolConfig(toUpdate: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:118\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toUpdate\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateOauthClientOrThrow\n \n \n \n \n \n \n \n updateOauthClientOrThrow(loadedOauthClient: ProviderOauthClient, toUpdateOauthClient: ProviderOauthClient, toUpdate: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:131\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loadedOauthClient\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n toUpdateOauthClient\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n toUpdate\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, IFindOptions, Page } from '@shared/domain';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { ProviderOauthClient } from '@shared/infra/oauth-provider/dto';\nimport { ContextExternalToolRepo, ExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { TokenEndpointAuthMethod } from '../../common/enum';\nimport { ExternalToolSearchQuery } from '../../common/interface';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ExternalTool, Oauth2ToolConfig } from '../domain';\nimport { ExternalToolServiceMapper } from './external-tool-service.mapper';\nimport { ExternalToolVersionService } from './external-tool-version.service';\n\n@Injectable()\nexport class ExternalToolService {\n\tconstructor(\n\t\tprivate readonly externalToolRepo: ExternalToolRepo,\n\t\tprivate readonly oauthProviderService: OauthProviderService,\n\t\tprivate readonly mapper: ExternalToolServiceMapper,\n\t\tprivate readonly schoolExternalToolRepo: SchoolExternalToolRepo,\n\t\tprivate readonly contextExternalToolRepo: ContextExternalToolRepo,\n\t\t@Inject(DefaultEncryptionService) private readonly encryptionService: IEncryptionService,\n\t\tprivate readonly legacyLogger: LegacyLogger,\n\t\tprivate readonly externalToolVersionService: ExternalToolVersionService\n\t) {}\n\n\tasync createExternalTool(externalTool: ExternalTool): Promise {\n\t\tif (ExternalTool.isLti11Config(externalTool.config) && externalTool.config.secret) {\n\t\t\texternalTool.config.secret = this.encryptionService.encrypt(externalTool.config.secret);\n\t\t} else if (ExternalTool.isOauth2Config(externalTool.config)) {\n\t\t\tconst oauthClient: ProviderOauthClient = this.mapper.mapDoToProviderOauthClient(\n\t\t\t\texternalTool.name,\n\t\t\t\texternalTool.config\n\t\t\t);\n\n\t\t\tawait this.oauthProviderService.createOAuth2Client(oauthClient);\n\t\t}\n\n\t\tconst created: ExternalTool = await this.externalToolRepo.save(externalTool);\n\t\treturn created;\n\t}\n\n\tasync updateExternalTool(toUpdate: ExternalTool, loadedTool: ExternalTool): Promise {\n\t\tawait this.updateOauth2ToolConfig(toUpdate);\n\t\tthis.externalToolVersionService.increaseVersionOfNewToolIfNecessary(loadedTool, toUpdate);\n\t\tconst externalTool: ExternalTool = await this.externalToolRepo.save(toUpdate);\n\t\treturn externalTool;\n\t}\n\n\tasync findExternalTools(\n\t\tquery: ExternalToolSearchQuery,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst tools: Page = await this.externalToolRepo.find(query, options);\n\n\t\tconst resolvedTools: (ExternalTool | undefined)[] = await Promise.all(\n\t\t\ttools.data.map(async (tool: ExternalTool): Promise => {\n\t\t\t\tif (ExternalTool.isOauth2Config(tool.config)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait this.addExternalOauth2DataToConfig(tool.config);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tthis.legacyLogger.debug(\n\t\t\t\t\t\t\t`Could not resolve oauth2Config of tool with clientId ${tool.config.clientId}. It will be filtered out.`\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn tool;\n\t\t\t})\n\t\t);\n\n\t\ttools.data = resolvedTools.filter((tool) => tool !== undefined) as ExternalTool[];\n\n\t\treturn tools;\n\t}\n\n\tasync findExternalToolById(id: EntityId): Promise {\n\t\tconst tool: ExternalTool = await this.externalToolRepo.findById(id);\n\t\tif (ExternalTool.isOauth2Config(tool.config)) {\n\t\t\ttry {\n\t\t\t\tawait this.addExternalOauth2DataToConfig(tool.config);\n\t\t\t} catch (e) {\n\t\t\t\tthis.legacyLogger.debug(\n\t\t\t\t\t`Could not resolve oauth2Config of tool with clientId ${tool.config.clientId}. It will be filtered out.`\n\t\t\t\t);\n\t\t\t\tthrow new UnprocessableEntityException(`Could not resolve oauth2Config of tool ${tool.name}.`);\n\t\t\t}\n\t\t}\n\t\treturn tool;\n\t}\n\n\tfindExternalToolByName(name: string): Promise {\n\t\tconst externalTool: Promise = this.externalToolRepo.findByName(name);\n\t\treturn externalTool;\n\t}\n\n\tfindExternalToolByOAuth2ConfigClientId(clientId: string): Promise {\n\t\tconst externalTool: Promise = this.externalToolRepo.findByOAuth2ConfigClientId(clientId);\n\t\treturn externalTool;\n\t}\n\n\tasync deleteExternalTool(toolId: EntityId): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolRepo.findByExternalToolId(toolId);\n\t\tconst schoolExternalToolIds: string[] = schoolExternalTools.map(\n\t\t\t(schoolExternalTool: SchoolExternalTool): string =>\n\t\t\t\t// We can be sure that the repo returns the id\n\t\t\t\tschoolExternalTool.id as string\n\t\t);\n\n\t\tawait Promise.all([\n\t\t\tthis.contextExternalToolRepo.deleteBySchoolExternalToolIds(schoolExternalToolIds),\n\t\t\tthis.schoolExternalToolRepo.deleteByExternalToolId(toolId),\n\t\t\tthis.externalToolRepo.deleteById(toolId),\n\t\t]);\n\t}\n\n\tprivate async updateOauth2ToolConfig(toUpdate: ExternalTool) {\n\t\tif (ExternalTool.isOauth2Config(toUpdate.config)) {\n\t\t\tconst toUpdateOauthClient: ProviderOauthClient = this.mapper.mapDoToProviderOauthClient(\n\t\t\t\ttoUpdate.name,\n\t\t\t\ttoUpdate.config\n\t\t\t);\n\t\t\tconst loadedOauthClient: ProviderOauthClient = await this.oauthProviderService.getOAuth2Client(\n\t\t\t\ttoUpdate.config.clientId\n\t\t\t);\n\t\t\tawait this.updateOauthClientOrThrow(loadedOauthClient, toUpdateOauthClient, toUpdate);\n\t\t}\n\t}\n\n\tprivate async updateOauthClientOrThrow(\n\t\tloadedOauthClient: ProviderOauthClient,\n\t\ttoUpdateOauthClient: ProviderOauthClient,\n\t\ttoUpdate: ExternalTool\n\t) {\n\t\tif (loadedOauthClient && loadedOauthClient.client_id) {\n\t\t\tawait this.oauthProviderService.updateOAuth2Client(loadedOauthClient.client_id, toUpdateOauthClient);\n\t\t} else {\n\t\t\tthrow new UnprocessableEntityException(`The oAuthConfigs clientId of tool ${toUpdate.name}\" does not exist`);\n\t\t}\n\t}\n\n\tprivate async addExternalOauth2DataToConfig(config: Oauth2ToolConfig) {\n\t\tconst oauthClient: ProviderOauthClient = await this.oauthProviderService.getOAuth2Client(config.clientId);\n\n\t\tconfig.scope = oauthClient.scope;\n\t\tconfig.tokenEndpointAuthMethod = oauthClient.token_endpoint_auth_method as TokenEndpointAuthMethod;\n\t\tconfig.redirectUris = oauthClient.redirect_uris;\n\t\tconfig.frontchannelLogoutUri = oauthClient.frontchannel_logout_uri;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolServiceMapper.html":{"url":"injectables/ExternalToolServiceMapper.html","title":"injectable - ExternalToolServiceMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolServiceMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-service.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapDoToProviderOauthClient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapDoToProviderOauthClient\n \n \n \n \n \n \nmapDoToProviderOauthClient(name: string, oauth2Config: Oauth2ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-service.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n oauth2Config\n \n Oauth2ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ProviderOauthClient\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ProviderOauthClient } from '@shared/infra/oauth-provider/dto';\nimport { Injectable } from '@nestjs/common';\nimport { Oauth2ToolConfig } from '../domain';\n\n@Injectable()\nexport class ExternalToolServiceMapper {\n\tmapDoToProviderOauthClient(name: string, oauth2Config: Oauth2ToolConfig): ProviderOauthClient {\n\t\treturn {\n\t\t\tclient_name: name,\n\t\t\tclient_id: oauth2Config.clientId,\n\t\t\tclient_secret: oauth2Config.clientSecret,\n\t\t\tscope: oauth2Config.scope,\n\t\t\ttoken_endpoint_auth_method: oauth2Config.tokenEndpointAuthMethod,\n\t\t\tredirect_uris: oauth2Config.redirectUris,\n\t\t\tfrontchannel_logout_uri: oauth2Config.frontchannelLogoutUri,\n\t\t\tsubject_type: 'pairwise',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolSortingMapper.html":{"url":"classes/ExternalToolSortingMapper.html","title":"class - ExternalToolSortingMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolSortingMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/externaltool/external-tool-sorting.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapDOSortOrderToQueryOrder\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapDOSortOrderToQueryOrder\n \n \n \n \n \n \n \n mapDOSortOrderToQueryOrder(sort: SortOrderMap)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool-sorting.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sort\n \n SortOrderMap\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : QueryOrderMap\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { QueryOrderMap } from '@mikro-orm/core';\nimport { SortOrderMap } from '@shared/domain';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { ExternalToolEntity } from '@src/modules/tool/external-tool/entity';\n\nexport class ExternalToolSortingMapper {\n\tstatic mapDOSortOrderToQueryOrder(sort: SortOrderMap): QueryOrderMap {\n\t\tconst queryOrderMap: QueryOrderMap = {\n\t\t\t_id: sort.id,\n\t\t\tname: sort.name,\n\t\t};\n\t\tObject.keys(queryOrderMap)\n\t\t\t.filter((key) => queryOrderMap[key] === undefined)\n\t\t\t.forEach((key) => delete queryOrderMap[key]);\n\t\treturn queryOrderMap;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolUc.html":{"url":"injectables/ExternalToolUc.html","title":"injectable - ExternalToolUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createExternalTool\n \n \n Async\n deleteExternalTool\n \n \n Private\n Async\n ensurePermission\n \n \n Async\n findExternalTool\n \n \n Async\n getExternalTool\n \n \n Async\n updateExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, authorizationService: AuthorizationService, toolValidationService: ExternalToolValidationService, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n toolValidationService\n \n \n ExternalToolValidationService\n \n \n \n No\n \n \n \n \n externalToolLogoService\n \n \n ExternalToolLogoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createExternalTool\n \n \n \n \n \n \n \n createExternalTool(userId: EntityId, externalToolCreate: ExternalToolCreate)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n externalToolCreate\n \n ExternalToolCreate\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteExternalTool\n \n \n \n \n \n \n \n deleteExternalTool(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n ensurePermission\n \n \n \n \n \n \n \n ensurePermission(userId: EntityId, permission: Permission)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n permission\n \n Permission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findExternalTool\n \n \n \n \n \n \n \n findExternalTool(userId: EntityId, query: ExternalToolSearchQuery, options: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n query\n \n ExternalToolSearchQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getExternalTool\n \n \n \n \n \n \n \n getExternalTool(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateExternalTool\n \n \n \n \n \n \n \n updateExternalTool(userId: EntityId, toolId: string, externalTool: ExternalToolUpdate)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n string\n \n\n \n No\n \n\n\n \n \n externalTool\n \n ExternalToolUpdate\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, IFindOptions, Page, Permission, User } from '@shared/domain';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { ExternalToolSearchQuery } from '../../common/interface';\nimport { ExternalTool, ExternalToolConfig } from '../domain';\nimport { ExternalToolLogoService, ExternalToolService, ExternalToolValidationService } from '../service';\nimport { ExternalToolCreate, ExternalToolUpdate } from './dto';\n\n@Injectable()\nexport class ExternalToolUc {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly toolValidationService: ExternalToolValidationService,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tasync createExternalTool(userId: EntityId, externalToolCreate: ExternalToolCreate): Promise {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\tconst externalTool = new ExternalTool({ ...externalToolCreate });\n\t\texternalTool.logo = await this.externalToolLogoService.fetchLogo(externalTool);\n\n\t\tawait this.toolValidationService.validateCreate(externalTool);\n\n\t\tconst tool: ExternalTool = await this.externalToolService.createExternalTool(externalTool);\n\n\t\treturn tool;\n\t}\n\n\tasync updateExternalTool(userId: EntityId, toolId: string, externalTool: ExternalToolUpdate): Promise {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\texternalTool.logo = await this.externalToolLogoService.fetchLogo(externalTool);\n\n\t\tawait this.toolValidationService.validateUpdate(toolId, externalTool);\n\n\t\tconst loaded: ExternalTool = await this.externalToolService.findExternalToolById(toolId);\n\t\tconst configToUpdate: ExternalToolConfig = { ...loaded.config, ...externalTool.config };\n\t\tconst toUpdate: ExternalTool = new ExternalTool({\n\t\t\t...loaded,\n\t\t\t...externalTool,\n\t\t\tconfig: configToUpdate,\n\t\t\tversion: loaded.version,\n\t\t});\n\n\t\tconst saved: ExternalTool = await this.externalToolService.updateExternalTool(toUpdate, loaded);\n\n\t\treturn saved;\n\t}\n\n\tasync findExternalTool(\n\t\tuserId: EntityId,\n\t\tquery: ExternalToolSearchQuery,\n\t\toptions: IFindOptions\n\t): Promise> {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\tconst tools: Page = await this.externalToolService.findExternalTools(query, options);\n\t\treturn tools;\n\t}\n\n\tasync getExternalTool(userId: EntityId, toolId: EntityId): Promise {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\tconst tool: ExternalTool = await this.externalToolService.findExternalToolById(toolId);\n\t\treturn tool;\n\t}\n\n\tasync deleteExternalTool(userId: EntityId, toolId: EntityId): Promise {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\tconst promise: Promise = this.externalToolService.deleteExternalTool(toolId);\n\t\treturn promise;\n\t}\n\n\tprivate async ensurePermission(userId: EntityId, permission: Permission) {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [permission]);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolUpdateParams.html":{"url":"classes/ExternalToolUpdateParams.html","title":"class - ExternalToolUpdateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolUpdateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n config\n \n \n \n \n id\n \n \n \n \n isHidden\n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n name\n \n \n \n \n openNewTab\n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n Optional\n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : Lti11ToolConfigUpdateParams | Oauth2ToolConfigUpdateParams | BasicToolConfigParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@Type(undefined, {keepDiscriminatorProperty: true, discriminator: undefined})@ApiProperty({oneOf: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:67\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterPostParams[]\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested({each: true})@IsArray()@IsOptional()@ApiPropertyOptional({type: undefined})@Type(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:59\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsBoolean, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { ToolConfigType } from '../../../../common/enum';\nimport {\n\tBasicToolConfigParams,\n\tExternalToolConfigCreateParams,\n\tLti11ToolConfigUpdateParams,\n\tOauth2ToolConfigUpdateParams,\n} from './config';\nimport { CustomParameterPostParams } from './custom-parameter.params';\n\n@ApiExtraModels(Lti11ToolConfigUpdateParams, Oauth2ToolConfigUpdateParams, BasicToolConfigParams)\nexport class ExternalToolUpdateParams {\n\t@IsString()\n\t@ApiProperty()\n\tid!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\turl?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ValidateNested()\n\t@Type(/* istanbul ignore next */ () => ExternalToolConfigCreateParams, {\n\t\tkeepDiscriminatorProperty: true,\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: Lti11ToolConfigUpdateParams, name: ToolConfigType.LTI11 },\n\t\t\t\t{ value: Oauth2ToolConfigUpdateParams, name: ToolConfigType.OAUTH2 },\n\t\t\t\t{ value: BasicToolConfigParams, name: ToolConfigType.BASIC },\n\t\t\t],\n\t\t},\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(BasicToolConfigParams) },\n\t\t\t{ $ref: getSchemaPath(Lti11ToolConfigUpdateParams) },\n\t\t\t{ $ref: getSchemaPath(Oauth2ToolConfigUpdateParams) },\n\t\t],\n\t})\n\tconfig!: Lti11ToolConfigUpdateParams | Oauth2ToolConfigUpdateParams | BasicToolConfigParams;\n\n\t@ValidateNested({ each: true })\n\t@IsArray()\n\t@IsOptional()\n\t@ApiPropertyOptional({ type: [CustomParameterPostParams] })\n\t@Type(/* istanbul ignore next */ () => CustomParameterPostParams)\n\tparameters?: CustomParameterPostParams[];\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tisHidden!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\topenNewTab!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolValidationService.html":{"url":"injectables/ExternalToolValidationService.html","title":"injectable - ExternalToolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n isClientIdUnique\n \n \n Async\n validateCreate\n \n \n Private\n validateLti11Config\n \n \n Private\n Async\n validateOauth2Config\n \n \n Async\n validateUpdate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, externalToolParameterValidationService: ExternalToolParameterValidationService, toolFeatures: IToolFeatures, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n externalToolParameterValidationService\n \n \n ExternalToolParameterValidationService\n \n \n \n No\n \n \n \n \n toolFeatures\n \n \n IToolFeatures\n \n \n \n No\n \n \n \n \n externalToolLogoService\n \n \n ExternalToolLogoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n isClientIdUnique\n \n \n \n \n \n \n \n isClientIdUnique(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validateCreate\n \n \n \n \n \n \n \n validateCreate(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n validateLti11Config\n \n \n \n \n \n \n \n validateLti11Config(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n validateOauth2Config\n \n \n \n \n \n \n \n validateOauth2Config(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validateUpdate\n \n \n \n \n \n \n \n validateUpdate(toolId: string, externalTool: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n string\n \n\n \n No\n \n\n\n \n \n externalTool\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { IToolFeatures, ToolFeatures } from '../../tool-config';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolParameterValidationService } from './external-tool-parameter-validation.service';\nimport { ExternalToolService } from './external-tool.service';\nimport { ExternalToolLogoService } from './external-tool-logo.service';\n\n@Injectable()\nexport class ExternalToolValidationService {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly externalToolParameterValidationService: ExternalToolParameterValidationService,\n\t\t@Inject(ToolFeatures) private readonly toolFeatures: IToolFeatures,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tasync validateCreate(externalTool: ExternalTool): Promise {\n\t\tawait this.externalToolParameterValidationService.validateCommon(externalTool);\n\n\t\tawait this.validateOauth2Config(externalTool);\n\n\t\tthis.validateLti11Config(externalTool);\n\n\t\tthis.externalToolLogoService.validateLogoSize(externalTool);\n\t}\n\n\tasync validateUpdate(toolId: string, externalTool: Partial): Promise {\n\t\tif (toolId !== externalTool.id) {\n\t\t\tthrow new ValidationError(`tool_id_mismatch: The tool has no id or it does not match the path parameter.`);\n\t\t}\n\n\t\tawait this.externalToolParameterValidationService.validateCommon(externalTool);\n\n\t\tconst loadedTool: ExternalTool = await this.externalToolService.findExternalToolById(toolId);\n\t\tif (\n\t\t\tExternalTool.isOauth2Config(loadedTool.config) &&\n\t\t\texternalTool.config &&\n\t\t\texternalTool.config.type !== loadedTool.config.type\n\t\t) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_type_immutable: The Config Type of the tool ${externalTool.name || ''} is immutable.`\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\texternalTool.config &&\n\t\t\tExternalTool.isOauth2Config(externalTool.config) &&\n\t\t\tExternalTool.isOauth2Config(loadedTool.config) &&\n\t\t\texternalTool.config.clientId !== loadedTool.config.clientId\n\t\t) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_clientId_immutable: The Client Id of the tool ${externalTool.name || ''} is immutable.`\n\t\t\t);\n\t\t}\n\n\t\tthis.externalToolLogoService.validateLogoSize(externalTool);\n\t}\n\n\tprivate async validateOauth2Config(externalTool: ExternalTool): Promise {\n\t\tif (ExternalTool.isOauth2Config(externalTool.config)) {\n\t\t\tif (!externalTool.config.clientSecret) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`tool_clientSecret_missing: The Client Secret of the tool ${externalTool.name || ''} is missing.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!(await this.isClientIdUnique(externalTool))) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`tool_clientId_duplicate: The Client Id of the tool ${externalTool.name || ''} is already used.`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate validateLti11Config(externalTool: ExternalTool): void {\n\t\tif (ExternalTool.isLti11Config(externalTool.config)) {\n\t\t\tif (!externalTool.config.secret) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`tool_secret_missing: The secret of the LTI tool ${externalTool.name || ''} is missing.`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async isClientIdUnique(externalTool: ExternalTool): Promise {\n\t\tlet duplicate: ExternalTool | null = null;\n\t\tif (ExternalTool.isOauth2Config(externalTool.config)) {\n\t\t\tduplicate = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(externalTool.config.clientId);\n\t\t}\n\t\treturn duplicate == null || duplicate.id === externalTool.id;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolVersionService.html":{"url":"injectables/ExternalToolVersionService.html","title":"injectable - ExternalToolVersionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolVersionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n compareParameters\n \n \n Private\n hasChangedParameterNames\n \n \n Private\n hasChangedParameterRegex\n \n \n Private\n hasChangedParameterScope\n \n \n Private\n hasChangedParameterTypes\n \n \n Private\n hasChangedRequiredParameters\n \n \n Private\n hasNewRequiredParameter\n \n \n increaseVersionOfNewToolIfNecessary\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n compareParameters\n \n \n \n \n \n \n \n compareParameters(oldParams: CustomParameter[], newParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oldParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedParameterNames\n \n \n \n \n \n \n \n hasChangedParameterNames(oldParams: CustomParameter[], newParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oldParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedParameterRegex\n \n \n \n \n \n \n \n hasChangedParameterRegex(newParams: CustomParameter[], matchingParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n matchingParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedParameterScope\n \n \n \n \n \n \n \n hasChangedParameterScope(newParams: CustomParameter[], matchingParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n matchingParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedParameterTypes\n \n \n \n \n \n \n \n hasChangedParameterTypes(newParams: CustomParameter[], matchingParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n matchingParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedRequiredParameters\n \n \n \n \n \n \n \n hasChangedRequiredParameters(newParams: CustomParameter[], matchingParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n matchingParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasNewRequiredParameter\n \n \n \n \n \n \n \n hasNewRequiredParameter(oldParams: CustomParameter[], newParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oldParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n increaseVersionOfNewToolIfNecessary\n \n \n \n \n \n \nincreaseVersionOfNewToolIfNecessary(oldTool: ExternalTool, newTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oldTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n newTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ExternalTool } from '../domain';\nimport { CustomParameter } from '../../common/domain';\n\n@Injectable()\nexport class ExternalToolVersionService {\n\tincreaseVersionOfNewToolIfNecessary(oldTool: ExternalTool, newTool: ExternalTool): void {\n\t\tif (!oldTool.parameters || !newTool.parameters) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.compareParameters(oldTool.parameters, newTool.parameters)) {\n\t\t\tnewTool.version += 1;\n\t\t}\n\t}\n\n\tprivate compareParameters(oldParams: CustomParameter[], newParams: CustomParameter[]): boolean {\n\t\tconst matchingParams: CustomParameter[] = oldParams.filter((oldParam) =>\n\t\t\tnewParams.some((newParam) => oldParam.name === newParam.name)\n\t\t);\n\n\t\tconst shouldIncrementVersion =\n\t\t\tthis.hasNewRequiredParameter(oldParams, newParams) ||\n\t\t\tthis.hasChangedRequiredParameters(oldParams, newParams) ||\n\t\t\tthis.hasChangedParameterNames(oldParams, newParams) ||\n\t\t\tthis.hasChangedParameterRegex(newParams, matchingParams) ||\n\t\t\tthis.hasChangedParameterTypes(newParams, matchingParams) ||\n\t\t\tthis.hasChangedParameterScope(newParams, matchingParams);\n\n\t\treturn shouldIncrementVersion;\n\t}\n\n\tprivate hasNewRequiredParameter(oldParams: CustomParameter[], newParams: CustomParameter[]): boolean {\n\t\tconst increase = newParams.some(\n\t\t\t(newParam) => !newParam.isOptional && oldParams.every((oldParam) => oldParam.name !== newParam.name)\n\t\t);\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedParameterNames(oldParams: CustomParameter[], newParams: CustomParameter[]): boolean {\n\t\tconst nonOptionalParams = oldParams.filter((parameter) => !parameter.isOptional);\n\t\tconst nonOptionalParamNames = nonOptionalParams.map((parameter) => parameter.name);\n\n\t\tconst newNonOptionalParams = newParams.filter((parameter) => !parameter.isOptional);\n\t\tconst newNonOptionalParamNames = newNonOptionalParams.map((parameter) => parameter.name);\n\n\t\tconst increase =\n\t\t\tnonOptionalParamNames.some((name) => !newNonOptionalParamNames.includes(name)) ||\n\t\t\tnewNonOptionalParamNames.some((name) => !nonOptionalParamNames.includes(name));\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedRequiredParameters(newParams: CustomParameter[], matchingParams: CustomParameter[]): boolean {\n\t\tconst increase = matchingParams.some((param) => {\n\t\t\tconst newParam = newParams.find((p) => p.name === param.name);\n\t\t\treturn newParam && param.isOptional !== newParam.isOptional;\n\t\t});\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedParameterRegex(newParams: CustomParameter[], matchingParams: CustomParameter[]): boolean {\n\t\tconst increase = matchingParams.some((param) => {\n\t\t\tconst newParam = newParams.find((p) => p.name === param.name);\n\t\t\treturn newParam && param.regex !== newParam.regex;\n\t\t});\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedParameterTypes(newParams: CustomParameter[], matchingParams: CustomParameter[]): boolean {\n\t\tconst increase = matchingParams.some((param) => {\n\t\t\tconst newParam = newParams.find((p) => p.name === param.name);\n\t\t\treturn newParam && param.type !== newParam.type;\n\t\t});\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedParameterScope(newParams: CustomParameter[], matchingParams: CustomParameter[]): boolean {\n\t\tconst increase = matchingParams.some((param) => {\n\t\t\tconst newParam = newParams.find((p) => p.name === param.name);\n\t\t\treturn newParam && param.scope !== newParam.scope;\n\t\t});\n\t\treturn increase;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalUserDto.html":{"url":"classes/ExternalUserDto.html","title":"class - ExternalUserDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalUserDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/external-user.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n email\n \n \n externalId\n \n \n Optional\n firstName\n \n \n Optional\n lastName\n \n \n Optional\n roles\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalUserDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalUserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n roles\n \n \n \n \n \n \n Type : RoleName[]\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { RoleName } from '@shared/domain';\n\nexport class ExternalUserDto {\n\texternalId: string;\n\n\tfirstName?: string;\n\n\tlastName?: string;\n\n\temail?: string;\n\n\troles?: RoleName[];\n\n\tconstructor(props: ExternalUserDto) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tthis.roles = props.roles;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FeathersAuthProvider.html":{"url":"injectables/FeathersAuthProvider.html","title":"injectable - FeathersAuthProvider","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FeathersAuthProvider\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getPermittedSchools\n \n \n Async\n getPermittedTargets\n \n \n Private\n Async\n getUser\n \n \n Async\n getUserSchoolPermissions\n \n \n Async\n getUserTargetPermissions\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(feathersServiceProvider: FeathersServiceProvider)\n \n \n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n feathersServiceProvider\n \n \n FeathersServiceProvider\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getPermittedSchools\n \n \n \n \n \n \n \n getPermittedSchools(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:55\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getPermittedTargets\n \n \n \n \n \n \n \n getPermittedTargets(userId: EntityId, targetModel: NewsTargetModel, permissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getUser\n \n \n \n \n \n \n \n getUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserSchoolPermissions\n \n \n \n \n \n \n \n getUserSchoolPermissions(userId: EntityId, schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise | never\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserTargetPermissions\n \n \n \n \n \n \n \n getUserTargetPermissions(userId: EntityId, targetModel: NewsTargetModel, targetId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n targetId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotFoundException } from '@nestjs/common';\nimport { BaseEntity, EntityId, NewsTargetModel } from '@shared/domain';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { FeathersServiceProvider } from '@shared/infra/feathers';\n\ninterface User {\n\t_id: ObjectId;\n\tschoolId: ObjectId;\n\tpermissions: string[];\n}\n\n@Injectable()\nexport class FeathersAuthProvider {\n\tconstructor(private feathersServiceProvider: FeathersServiceProvider) {}\n\n\tasync getUserSchoolPermissions(userId: EntityId, schoolId: EntityId): Promise | never {\n\t\tconst user = await this.getUser(userId);\n\t\t// test user is school member\n\t\tconst sameSchool = user.schoolId.toString() === schoolId;\n\t\tif (sameSchool && Array.isArray(user.permissions)) {\n\t\t\treturn user.permissions;\n\t\t}\n\t\treturn [];\n\t}\n\n\tasync getUserTargetPermissions(\n\t\tuserId: EntityId,\n\t\ttargetModel: NewsTargetModel,\n\t\ttargetId: EntityId\n\t): Promise {\n\t\tconst service = this.feathersServiceProvider.getService(`${targetModel}/:scopeId/userPermissions/`);\n\t\tconst targetPermissions = (await service.get(userId, {\n\t\t\troute: { scopeId: targetId },\n\t\t})) as string[];\n\t\treturn targetPermissions;\n\t}\n\n\tasync getPermittedTargets(\n\t\tuserId: EntityId,\n\t\ttargetModel: NewsTargetModel,\n\t\tpermissions: string[]\n\t): Promise {\n\t\tconst service = this.feathersServiceProvider.getService(`/users/:scopeId/${targetModel}`);\n\t\tconst targets = (await service.find({\n\t\t\troute: { scopeId: userId.toString() },\n\t\t\tquery: {\n\t\t\t\tpermissions,\n\t\t\t},\n\t\t\tpaginate: false,\n\t\t})) as BaseEntity[];\n\t\tconst targetIds = targets.map((target) => target._id.toString());\n\t\treturn targetIds;\n\t}\n\n\tasync getPermittedSchools(userId: EntityId): Promise {\n\t\tconst user = await this.getUser(userId);\n\t\treturn [user.schoolId.toString()] as EntityId[];\n\t}\n\n\tprivate async getUser(userId: EntityId): Promise {\n\t\tconst service = this.feathersServiceProvider.getService('users');\n\t\tconst user = (await service.get(userId)) as User;\n\t\tif (user == null) throw new NotFoundException();\n\t\treturn user;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FeathersAuthorizationService.html":{"url":"injectables/FeathersAuthorizationService.html","title":"injectable - FeathersAuthorizationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FeathersAuthorizationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkEntityPermissions\n \n \n Async\n getEntityPermissions\n \n \n Async\n getPermittedEntities\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(feathersAuthProvider: FeathersAuthProvider)\n \n \n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n feathersAuthProvider\n \n \n FeathersAuthProvider\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkEntityPermissions\n \n \n \n \n \n \n \n checkEntityPermissions(userId: EntityId, targetModel: NewsTargetModel, targetId: EntityId, permissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts:32\n \n \n\n\n \n \n Ensure that a user has sufficient permissions for a specific entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n targetId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getEntityPermissions\n \n \n \n \n \n \n \n getEntityPermissions(userId: EntityId, targetModel: NewsTargetModel, targetId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts:16\n \n \n\n\n \n \n Get all permissions a user has for a specific entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n targetId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n The list of entity permissions for the user\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n getPermittedEntities\n \n \n \n \n \n \n \n getPermittedEntities(userId: EntityId, targetModel: NewsTargetModel, permissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts:54\n \n \n\n\n \n \n Get all entities for which a user has specific permissions\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n The list of ids of all entities that satisfy the provided permissions for the user\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { EntityId, NewsTargetModel } from '@shared/domain';\nimport { FeathersAuthProvider } from './feathers-auth.provider';\n\n@Injectable()\nexport class FeathersAuthorizationService {\n\tconstructor(private feathersAuthProvider: FeathersAuthProvider) {}\n\n\t/**\n\t * Get all permissions a user has for a specific entity\n\t * @param userId\n\t * @param targetModel\n\t * @param targetId\n\t * @returns The list of entity permissions for the user\n\t */\n\tasync getEntityPermissions(userId: EntityId, targetModel: NewsTargetModel, targetId: EntityId): Promise {\n\t\tconst permissions =\n\t\t\ttargetModel === NewsTargetModel.School\n\t\t\t\t? await this.feathersAuthProvider.getUserSchoolPermissions(userId, targetId)\n\t\t\t\t: await this.feathersAuthProvider.getUserTargetPermissions(userId, targetModel, targetId);\n\t\treturn permissions;\n\t}\n\n\t/**\n\t * Ensure that a user has sufficient permissions for a specific entity\n\t * @param userId\n\t * @param targetModel\n\t * @param targetId\n\t * @param permissions\n\t * @throws UnauthorizedException if the permissions are not satisfied\n\t */\n\tasync checkEntityPermissions(\n\t\tuserId: EntityId,\n\t\ttargetModel: NewsTargetModel,\n\t\ttargetId: EntityId,\n\t\tpermissions: string[]\n\t): Promise {\n\t\tif (!Array.isArray(permissions) || permissions.length === 0)\n\t\t\tthrow new UnauthorizedException('missing at least one permission to be checked');\n\t\tconst entityPermissions = await this.getEntityPermissions(userId, targetModel, targetId);\n\t\tconst hasPermissions = permissions.every((p) => entityPermissions.includes(p));\n\t\tif (!hasPermissions) {\n\t\t\tthrow new UnauthorizedException('Insufficient permissions');\n\t\t}\n\t}\n\n\t/**\n\t * Get all entities for which a user has specific permissions\n\t * @param userId\n\t * @param targetModel\n\t * @param permissions\n\t * @returns The list of ids of all entities that satisfy the provided permissions for the user\n\t */\n\tasync getPermittedEntities(\n\t\tuserId: EntityId,\n\t\ttargetModel: NewsTargetModel,\n\t\tpermissions: string[]\n\t): Promise {\n\t\tconst entitiyIds =\n\t\t\ttargetModel === NewsTargetModel.School\n\t\t\t\t? await this.feathersAuthProvider.getPermittedSchools(userId)\n\t\t\t\t: await this.feathersAuthProvider.getPermittedTargets(userId, targetModel, permissions);\n\n\t\treturn entitiyIds;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FeathersError.html":{"url":"interfaces/FeathersError.html","title":"interface - FeathersError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FeathersError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/interface/feathers-error.interface.ts\n \n\n\n\n \n Extends\n \n \n Error\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n className\n \n \n \n \n code\n \n \n \n \n type\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n className\n \n \n \n \n \n \n \n \n className: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n code\n \n \n \n \n \n \n \n \n code: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface FeathersError extends Error {\n\tcode: number;\n\tclassName: string;\n\ttype: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FeathersModule.html":{"url":"modules/FeathersModule.html","title":"module - FeathersModule","body":"\n \n\n\n\n\n Modules\n FeathersModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FeathersModule\n\n\n\ncluster_FeathersModule_exports\n\n\n\ncluster_FeathersModule_providers\n\n\n\n\nFeathersServiceProvider \n\nFeathersServiceProvider \n\n\n\nFeathersModule\n\nFeathersModule\n\nFeathersServiceProvider -->\n\nFeathersModule->FeathersServiceProvider \n\n\n\n\n\nFeathersServiceProvider\n\nFeathersServiceProvider\n\nFeathersModule -->\n\nFeathersServiceProvider->FeathersModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/feathers/feathers.module.ts\n \n\n\n\n \n Description\n \n \n This Module gives access to legacy feathers services. It is request based injected.\nIntroduce strong typing immediately when using this modules service.\n\n \n\n\n \n \n \n Providers\n \n \n FeathersServiceProvider\n \n \n \n \n Exports\n \n \n FeathersServiceProvider\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { FeathersServiceProvider } from './feathers-service.provider';\n\n/**\n * This Module gives access to legacy feathers services. It is request based injected.\n * Introduce strong typing immediately when using this modules service.\n */\n@Module({\n\tproviders: [FeathersServiceProvider],\n\texports: [FeathersServiceProvider],\n})\nexport class FeathersModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FeathersService.html":{"url":"interfaces/FeathersService.html","title":"interface - FeathersService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FeathersService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/feathers/feathers-service.provider.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n find\n \n \n \n \n get\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \n \n \n \n \n \ncreate(data?: FeathersServiceParams, params?: FeathersServiceParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n FeathersServiceParams\n \n\n \n Yes\n \n\n\n \n \n params\n \n FeathersServiceParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n find\n \n \n \n \n \n \n Access legacy eathers service find method\n \n \n \n \nfind(params?: FeathersServiceParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n FeathersServiceParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n get\n \n \n \n \n \n \n Access legacy eathers service get method\n \n \n \n \nget(id: string, params?: FeathersServiceParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n params\n \n FeathersServiceParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Application } from '@feathersjs/express';\nimport { ImATeapotException, Inject, Injectable, Scope } from '@nestjs/common';\nimport { REQUEST } from '@nestjs/core';\nimport { Request } from 'express';\n\nexport interface FeathersService {\n\t/**\n\t *\n\t * @param id\n\t * @param params\n\t * @deprecated Access legacy eathers service get method\n\t */\n\tget(id: string, params?: FeathersServiceParams): Promise;\n\t/**\n\t *\n\t * @param params\n\t * @deprecated Access legacy eathers service find method\n\t */\n\tfind(params?: FeathersServiceParams): Promise;\n\t/**\n\t *\n\t * @deprecated\n\t */\n\tcreate(data?: FeathersServiceParams, params?: FeathersServiceParams): Promise;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FeathersServiceParams = Record;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FeathersServiceResponse = Record | any[];\n\n/**\n * This Service gives access to legacy feathers services. It is request based injected.\n * IMPORTANT: Introduce strong typing immediately when using this modules service.\n */\n@Injectable({ scope: Scope.REQUEST })\nexport class FeathersServiceProvider {\n\tconstructor(@Inject(REQUEST) private request: Request) {}\n\n\tgetService(path: string): FeathersService {\n\t\tconst feathersApp = this.request.app.get('feathersApp') as Application;\n\t\tif (feathersApp == null) {\n\t\t\t// missing a feathers instance defined in module definition\n\t\t\t// see main.ts how it might work\n\t\t\t// sample: nestExpress.set('feathersApp', feathersExpress);\n\t\t\tthrow new ImATeapotException('this action requires a feathers instance available');\n\t\t}\n\t\tconst service = feathersApp.service(path) as FeathersService;\n\t\treturn service;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FeathersServiceProvider.html":{"url":"injectables/FeathersServiceProvider.html","title":"injectable - FeathersServiceProvider","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FeathersServiceProvider\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/feathers/feathers-service.provider.ts\n \n\n\n \n Description\n \n \n This Service gives access to legacy feathers services. It is request based injected.\nIMPORTANT: Introduce strong typing immediately when using this modules service.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getService\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(request: Request)\n \n \n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:38\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n \n Request\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getService\n \n \n \n \n \n \ngetService(path: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FeathersService\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Application } from '@feathersjs/express';\nimport { ImATeapotException, Inject, Injectable, Scope } from '@nestjs/common';\nimport { REQUEST } from '@nestjs/core';\nimport { Request } from 'express';\n\nexport interface FeathersService {\n\t/**\n\t *\n\t * @param id\n\t * @param params\n\t * @deprecated Access legacy eathers service get method\n\t */\n\tget(id: string, params?: FeathersServiceParams): Promise;\n\t/**\n\t *\n\t * @param params\n\t * @deprecated Access legacy eathers service find method\n\t */\n\tfind(params?: FeathersServiceParams): Promise;\n\t/**\n\t *\n\t * @deprecated\n\t */\n\tcreate(data?: FeathersServiceParams, params?: FeathersServiceParams): Promise;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FeathersServiceParams = Record;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FeathersServiceResponse = Record | any[];\n\n/**\n * This Service gives access to legacy feathers services. It is request based injected.\n * IMPORTANT: Introduce strong typing immediately when using this modules service.\n */\n@Injectable({ scope: Scope.REQUEST })\nexport class FeathersServiceProvider {\n\tconstructor(@Inject(REQUEST) private request: Request) {}\n\n\tgetService(path: string): FeathersService {\n\t\tconst feathersApp = this.request.app.get('feathersApp') as Application;\n\t\tif (feathersApp == null) {\n\t\t\t// missing a feathers instance defined in module definition\n\t\t\t// see main.ts how it might work\n\t\t\t// sample: nestExpress.set('feathersApp', feathersExpress);\n\t\t\tthrow new ImATeapotException('this action requires a feathers instance available');\n\t\t}\n\t\tconst service = feathersApp.service(path) as FeathersService;\n\t\treturn service;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/FederalState.html":{"url":"entities/FederalState.html","title":"entity - FederalState","body":"\n \n\n\n\n\n\n\n\n Entities\n FederalState\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/federal-state.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n abbreviation\n \n \n \n Optional\n counties\n \n \n \n logoUrl\n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n abbreviation\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n counties\n \n \n \n \n \n \n Type : County[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:31\n \n \n\n\n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IFederalStateProperties {\n\tname: string;\n\tabbreviation: string;\n\tlogoUrl: string;\n\tcounties?: County[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n@Embeddable()\nexport class County {\n\tconstructor(county: County) {\n\t\tthis.name = county.name;\n\t\tthis.countyId = county.countyId;\n\t\tthis.antaresKey = county.antaresKey;\n\t}\n\n\tname: string;\n\n\tcountyId: number;\n\n\tantaresKey: string;\n}\n\n@Entity({ tableName: 'federalstates' })\nexport class FederalState extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\tabbreviation: string;\n\n\t@Property()\n\tlogoUrl: string;\n\n\t@Embedded(() => County, { array: true, nullable: true })\n\tcounties?: County[];\n\n\tconstructor(props: IFederalStateProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.abbreviation = props.abbreviation;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.updatedAt = props.updatedAt;\n\t\tthis.createdAt = props.createdAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FederalStateRepo.html":{"url":"injectables/FederalStateRepo.html","title":"injectable - FederalStateRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FederalStateRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/federalstate/federal-state.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n findByName\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n findByName\n \n \n \n \n \n \nfindByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/federalstate/federal-state.repo.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/federalstate/federal-state.repo.ts:8\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { FederalState } from '@shared/domain';\nimport { EntityName } from '@mikro-orm/core';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class FederalStateRepo extends BaseRepo {\n\tget entityName(): EntityName {\n\t\treturn FederalState;\n\t}\n\n\tfindByName(name: string): Promise {\n\t\treturn this._em.findOneOrFail(FederalState, { name });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FederalStateService.html":{"url":"injectables/FederalStateService.html","title":"injectable - FederalStateService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FederalStateService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/service/federal-state.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findFederalStateByName\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(federalStateRepo: FederalStateRepo)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/service/federal-state.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n federalStateRepo\n \n \n FederalStateRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findFederalStateByName\n \n \n \n \n \n \n \n findFederalStateByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/federal-state.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { FederalStateRepo } from '@shared/repo';\nimport { FederalState } from '@shared/domain';\n\n@Injectable()\nexport class FederalStateService {\n\tconstructor(private readonly federalStateRepo: FederalStateRepo) {}\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tasync findFederalStateByName(name: string): Promise {\n\t\tconst federalState: FederalState = await this.federalStateRepo.findByName(name);\n\n\t\treturn federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/File.html":{"url":"interfaces/File.html","title":"interface - File","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n File\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/interface/index.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n data: Readable\n\n \n \n\n\n \n \n Type : Readable\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n \n \n mimeType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\n\nexport interface S3Config {\n\tconnectionName: string;\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\nexport interface GetFile {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n}\n\nexport interface CopyFiles {\n\tsourcePath: string;\n\ttargetPath: string;\n}\n\nexport interface File {\n\tdata: Readable;\n\tname: string;\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileContentBody.html":{"url":"classes/FileContentBody.html","title":"class - FileContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n caption\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileDto.html":{"url":"classes/FileDto.html","title":"class - FileDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/dto/file.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n data\n \n \n mimeType\n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(file: FileDto)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/dto/file.dto.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n file\n \n \n FileDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : Readable\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/dto/file.dto.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/dto/file.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/dto/file.dto.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Readable } from 'stream';\n\nexport class FileDto {\n\tconstructor(file: FileDto) {\n\t\tthis.name = file.name;\n\t\tthis.data = file.data;\n\t\tthis.mimeType = file.mimeType;\n\t}\n\n\tname: string;\n\n\tdata: Readable;\n\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileDto-1.html":{"url":"classes/FileDto-1.html","title":"class - FileDto-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/dto/file.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n name\n \n \n parentId\n \n \n parentType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: IFileDomainObjectProps)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n IFileDomainObjectProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : FileRecordParentType\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { IFileDomainObjectProps } from '../interfaces';\n\nexport class FileDto {\n\tid: EntityId;\n\n\tname: string;\n\n\tparentType: FileRecordParentType;\n\n\tparentId: EntityId;\n\n\tconstructor(props: IFileDomainObjectProps) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t\tthis.parentType = props.parentType;\n\t\tthis.parentId = props.parentId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileDtoBuilder.html":{"url":"classes/FileDtoBuilder.html","title":"class - FileDtoBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileDtoBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/file-dto.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n Static\n buildFromAxiosResponse\n \n \n Static\n buildFromRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(name: string, data: Readable, mimeType: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-dto.builder.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n data\n \n Readable\n \n\n \n No\n \n\n\n \n \n mimeType\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildFromAxiosResponse\n \n \n \n \n \n \n \n buildFromAxiosResponse(name: string, response: AxiosResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-dto.builder.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n response\n \n AxiosResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildFromRequest\n \n \n \n \n \n \n \n buildFromRequest(fileInfo: FileInfo, data: Readable)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-dto.builder.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileInfo\n \n FileInfo\n \n\n \n No\n \n\n\n \n \n data\n \n Readable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { AxiosResponse } from 'axios';\nimport { FileInfo } from 'busboy';\nimport { Readable } from 'stream';\nimport { FileDto } from '../dto/file.dto';\n\nexport class FileDtoBuilder {\n\tpublic static build(name: string, data: Readable, mimeType: string): FileDto {\n\t\tconst file = new FileDto({ name, data, mimeType });\n\n\t\treturn file;\n\t}\n\n\tpublic static buildFromRequest(fileInfo: FileInfo, data: Readable): FileDto {\n\t\tconst file = FileDtoBuilder.build(fileInfo.filename, data, fileInfo.mimeType);\n\n\t\treturn file;\n\t}\n\n\tpublic static buildFromAxiosResponse(name: string, response: AxiosResponse): FileDto {\n\t\tconst mimeType = response.headers['Content-Type']?.toString() || 'application/octet-stream';\n\t\tconst file = FileDtoBuilder.build(name, response.data, mimeType);\n\n\t\treturn file;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElement.html":{"url":"classes/FileElement.html","title":"class - FileElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/file-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n caption\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:17\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:21\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild()\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:13\n\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n caption\n \n \n\n \n \n getcaption()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/file-element.do.ts:5\n \n \n\n \n \n setcaption(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/file-element.do.ts:9\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class FileElement extends BoardComposite {\n\tget caption(): string {\n\t\treturn this.props.caption;\n\t}\n\n\tset caption(value: string) {\n\t\tthis.props.caption = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitFileElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitFileElementAsync(this);\n\t}\n}\n\nexport interface FileElementProps extends BoardCompositeProps {\n\tcaption: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElementContent.html":{"url":"classes/FileElementContent.html","title":"class - FileElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElementContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/file-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n caption\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: FileElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n FileElementContent\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class FileElementContent {\n\tconstructor({ caption }: FileElementContent) {\n\t\tthis.caption = caption;\n\t}\n\n\t@ApiProperty()\n\tcaption: string;\n}\n\nexport class FileElementResponse {\n\tconstructor({ id, content, timestamps, type }: FileElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.FILE;\n\n\t@ApiProperty()\n\tcontent: FileElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElementContentBody.html":{"url":"classes/FileElementContentBody.html","title":"class - FileElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElementContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n \n Extends\n \n \n ElementContentBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : FileContentBody\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.FILE\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from ElementContentBody\n\n \n \n \n \n Defined in ElementContentBody:24\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/FileElementNode.html":{"url":"entities/FileElementNode.html","title":"entity - FileElementNode","body":"\n \n\n\n\n\n\n\n\n Entities\n FileElementNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/file-element-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n caption\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/file-element-node.entity.ts:9\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.FILE_ELEMENT })\nexport class FileElementNode extends BoardNode {\n\t@Property()\n\tcaption: string;\n\n\tconstructor(props: FileElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.FILE_ELEMENT;\n\t\tthis.caption = props.caption;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildFileElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface FileElementNodeProps extends BoardNodeProps {\n\tcaption: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FileElementNodeProps.html":{"url":"interfaces/FileElementNodeProps.html","title":"interface - FileElementNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FileElementNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/file-element-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n caption\n \n \n \n \n \n \n \n \n caption: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.FILE_ELEMENT })\nexport class FileElementNode extends BoardNode {\n\t@Property()\n\tcaption: string;\n\n\tconstructor(props: FileElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.FILE_ELEMENT;\n\t\tthis.caption = props.caption;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildFileElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface FileElementNodeProps extends BoardNodeProps {\n\tcaption: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FileElementProps.html":{"url":"interfaces/FileElementProps.html","title":"interface - FileElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FileElementProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/file-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n caption\n \n \n \n \n \n \n \n \n caption: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class FileElement extends BoardComposite {\n\tget caption(): string {\n\t\treturn this.props.caption;\n\t}\n\n\tset caption(value: string) {\n\t\tthis.props.caption = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitFileElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitFileElementAsync(this);\n\t}\n}\n\nexport interface FileElementProps extends BoardCompositeProps {\n\tcaption: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElementResponse.html":{"url":"classes/FileElementResponse.html","title":"class - FileElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/file-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n id\n \n \n \n timestamps\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: FileElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n FileElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : FileElementContent\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.FILE\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ContentElementType, enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class FileElementContent {\n\tconstructor({ caption }: FileElementContent) {\n\t\tthis.caption = caption;\n\t}\n\n\t@ApiProperty()\n\tcaption: string;\n}\n\nexport class FileElementResponse {\n\tconstructor({ id, content, timestamps, type }: FileElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.FILE;\n\n\t@ApiProperty()\n\tcontent: FileElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElementResponseMapper.html":{"url":"classes/FileElementResponseMapper.html","title":"class - FileElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElementResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts\n \n\n\n\n\n \n Implements\n \n \n BaseResponseMapper\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n canMap\n \n \n Static\n getInstance\n \n \n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n \n \n Type : FileElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts:6\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n \n \ncanMap(element: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n getInstance\n \n \n \n \n \n \n \n getInstance()\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Returns : FileElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, FileElement } from '@shared/domain';\nimport { FileElementContent, FileElementResponse, TimestampsResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class FileElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: FileElementResponseMapper;\n\n\tpublic static getInstance(): FileElementResponseMapper {\n\t\tif (!FileElementResponseMapper.instance) {\n\t\t\tFileElementResponseMapper.instance = new FileElementResponseMapper();\n\t\t}\n\n\t\treturn FileElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: FileElement): FileElementResponse {\n\t\tconst result = new FileElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.FILE,\n\t\t\tcontent: new FileElementContent({ caption: element.caption }),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: FileElement): boolean {\n\t\treturn element instanceof FileElement;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/FileEntity.html":{"url":"entities/FileEntity.html","title":"entity - FileEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n FileEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n _creatorId\n \n \n \n Optional\n _lockId\n \n \n \n \n _ownerId\n \n \n \n \n Optional\n _parentId\n \n \n \n Optional\n bucket\n \n \n \n deleted\n \n \n \n Optional\n deletedAt\n \n \n \n isDirectory\n \n \n \n name\n \n \n \n permissions\n \n \n \n refOwnerModel\n \n \n \n securityCheck\n \n \n \n \n shareTokens\n \n \n \n Optional\n size\n \n \n \n Optional\n storageFileName\n \n \n \n Optional\n storageProvider\n \n \n \n Optional\n thumbnail\n \n \n \n Optional\n thumbnailRequestToken\n \n \n \n Optional\n type\n \n \n \n Optional\n versionKey\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n _creatorId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'creator'})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:99\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n _lockId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'lockId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:109\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n _ownerId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'owner', nullable: false})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:88\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n _parentId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'parent', nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:80\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n bucket\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n deleted\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n deletedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n isDirectory\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : FilePermissionEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:106\n \n \n\n\n \n \n \n \n \n \n \n \n \n refOwnerModel\n \n \n \n \n \n \n Type : FileOwnerModel\n\n \n \n \n \n Decorators : \n \n \n @Enum({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:95\n \n \n\n\n \n \n \n \n \n \n \n \n \n securityCheck\n \n \n \n \n \n \n Type : FileSecurityCheckEntity\n\n \n \n \n \n Default value : new FileSecurityCheckEntity({})\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {object: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n shareTokens\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:76\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n size\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n storageFileName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n storageProvider\n \n \n \n \n \n \n Type : StorageProviderEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'storageProviderId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n thumbnail\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n thumbnailRequestToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : uuid()\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n versionKey\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: '__v', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:116\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { v4 as uuid } from 'uuid';\nimport { EntityId, StorageProviderEntity } from '@shared/domain';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { FileOwnerModel } from '../domain';\nimport { FileSecurityCheckEntity } from './file-security-check.entity';\nimport { FilePermissionEntity } from './file-permission.entity';\n\nexport interface FileEntityProps {\n\tcreatedAt?: Date;\n\tupdatedAt?: Date;\n\tdeletedAt?: Date;\n\tdeleted?: boolean;\n\tisDirectory?: boolean;\n\tname: string;\n\tsize?: number;\n\ttype?: string;\n\tstorageFileName?: string;\n\tbucket?: string;\n\tstorageProvider?: StorageProviderEntity;\n\tthumbnail?: string;\n\tthumbnailRequestToken?: string;\n\tsecurityCheck?: FileSecurityCheckEntity;\n\tshareTokens?: string[];\n\tparentId?: EntityId;\n\townerId: EntityId;\n\trefOwnerModel: FileOwnerModel;\n\tcreatorId: EntityId;\n\tpermissions: FilePermissionEntity[];\n\tlockId?: EntityId;\n\tversionKey?: number;\n}\n\n@Entity({ collection: 'files' })\n@Index({ options: { 'permissions.refId': 1 } })\nexport class FileEntity extends BaseEntityWithTimestamps {\n\t@Property({ nullable: true })\n\tdeletedAt?: Date;\n\n\t@Property()\n\tdeleted = false;\n\n\t@Property()\n\tisDirectory = false;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tsize?: number; // not for directories\n\n\t@Property({ nullable: true })\n\ttype?: string;\n\n\t@Property({ nullable: true })\n\tstorageFileName?: string; // not for directories\n\n\t@Property({ nullable: true })\n\tbucket?: string; // not for directories\n\n\t@ManyToOne(() => StorageProviderEntity, { fieldName: 'storageProviderId', nullable: true })\n\tstorageProvider?: StorageProviderEntity; // not for directories\n\n\t@Property({ nullable: true })\n\tthumbnail?: string;\n\n\t@Property({ nullable: true })\n\tthumbnailRequestToken?: string = uuid();\n\n\t@Embedded(() => FileSecurityCheckEntity, { object: true, nullable: false })\n\tsecurityCheck: FileSecurityCheckEntity = new FileSecurityCheckEntity({});\n\n\t@Property({ nullable: true })\n\t@Index()\n\tshareTokens: string[] = [];\n\n\t@Property({ fieldName: 'parent', nullable: true })\n\t@Index()\n\t_parentId?: ObjectId;\n\n\tget parentId(): EntityId | undefined {\n\t\treturn this._parentId?.toHexString();\n\t}\n\n\t@Property({ fieldName: 'owner', nullable: false })\n\t@Index()\n\t_ownerId: ObjectId;\n\n\tget ownerId(): EntityId {\n\t\treturn this._ownerId.toHexString();\n\t}\n\n\t@Enum({ nullable: false })\n\trefOwnerModel: FileOwnerModel;\n\n\t@Property({ fieldName: 'creator' })\n\t@Index()\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Embedded(() => FilePermissionEntity, { array: true, nullable: false })\n\tpermissions: FilePermissionEntity[];\n\n\t@Property({ fieldName: 'lockId', nullable: true })\n\t_lockId?: ObjectId;\n\n\tget lockId(): EntityId | undefined {\n\t\treturn this._lockId?.toHexString();\n\t}\n\n\t@Property({ fieldName: '__v', nullable: true })\n\tversionKey?: number; // mongoose model version key\n\n\tprivate validate(props: FileEntityProps) {\n\t\tif (props.isDirectory) return;\n\n\t\tif (!props.size || !props.storageFileName || !props.bucket || !props.storageProvider) {\n\t\t\tthrow new Error(\n\t\t\t\t'files that are not directories always need a size, a storage file name, a bucket, and a storage provider.'\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic removePermissionsByRefId(refId: EntityId): void {\n\t\tconst refObjectId = new ObjectId(refId);\n\n\t\tthis.permissions = this.permissions.filter((permission) => !permission.refId.equals(refObjectId));\n\t}\n\n\tpublic markForDeletion(): void {\n\t\tthis.deletedAt = new Date();\n\t\tthis.deleted = true;\n\t}\n\n\tpublic isMarkedForDeletion(): boolean {\n\t\treturn this.deleted && this.deletedAt !== undefined && !Number.isNaN(this.deletedAt.getTime());\n\t}\n\n\tconstructor(props: FileEntityProps) {\n\t\tsuper();\n\n\t\tthis.validate(props);\n\n\t\tif (props.createdAt !== undefined) {\n\t\t\tthis.createdAt = props.createdAt;\n\t\t}\n\n\t\tif (props.updatedAt !== undefined) {\n\t\t\tthis.updatedAt = props.updatedAt;\n\t\t}\n\n\t\tthis.deletedAt = props.deletedAt;\n\n\t\tif (props.deleted !== undefined) {\n\t\t\tthis.deleted = props.deleted;\n\t\t}\n\n\t\tif (props.isDirectory !== undefined) {\n\t\t\tthis.isDirectory = props.isDirectory;\n\t\t}\n\n\t\tthis.name = props.name;\n\t\tthis.size = props.size;\n\t\tthis.type = props.type;\n\t\tthis.storageFileName = props.storageFileName;\n\t\tthis.bucket = props.bucket;\n\t\tthis.storageProvider = props.storageProvider;\n\t\tthis.thumbnail = props.thumbnail;\n\n\t\tif (props.thumbnailRequestToken !== undefined) {\n\t\t\tthis.thumbnailRequestToken = props.thumbnailRequestToken;\n\t\t}\n\n\t\tif (props.securityCheck !== undefined) {\n\t\t\tthis.securityCheck = props.securityCheck;\n\t\t}\n\n\t\tif (props.shareTokens !== undefined) {\n\t\t\tthis.shareTokens = props.shareTokens;\n\t\t}\n\n\t\tif (props.parentId !== undefined) {\n\t\t\tthis._parentId = new ObjectId(props.parentId);\n\t\t}\n\n\t\tthis._ownerId = new ObjectId(props.ownerId);\n\t\tthis.refOwnerModel = props.refOwnerModel;\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis.permissions = props.permissions;\n\n\t\tif (props.lockId !== undefined) {\n\t\t\tthis._lockId = new ObjectId(props.lockId);\n\t\t}\n\n\t\tif (props.versionKey !== undefined) {\n\t\t\tthis.versionKey = props.versionKey;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FileEntityProps.html":{"url":"interfaces/FileEntityProps.html","title":"interface - FileEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FileEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n bucket\n \n \n \n Optional\n \n createdAt\n \n \n \n \n creatorId\n \n \n \n Optional\n \n deleted\n \n \n \n Optional\n \n deletedAt\n \n \n \n Optional\n \n isDirectory\n \n \n \n Optional\n \n lockId\n \n \n \n \n name\n \n \n \n \n ownerId\n \n \n \n Optional\n \n parentId\n \n \n \n \n permissions\n \n \n \n \n refOwnerModel\n \n \n \n Optional\n \n securityCheck\n \n \n \n Optional\n \n shareTokens\n \n \n \n Optional\n \n size\n \n \n \n Optional\n \n storageFileName\n \n \n \n Optional\n \n storageProvider\n \n \n \n Optional\n \n thumbnail\n \n \n \n Optional\n \n thumbnailRequestToken\n \n \n \n Optional\n \n type\n \n \n \n Optional\n \n updatedAt\n \n \n \n Optional\n \n versionKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bucket\n \n \n \n \n \n \n \n \n bucket: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n creatorId\n \n \n \n \n \n \n \n \n creatorId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n deleted\n \n \n \n \n \n \n \n \n deleted: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n deletedAt\n \n \n \n \n \n \n \n \n deletedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n isDirectory\n \n \n \n \n \n \n \n \n isDirectory: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lockId\n \n \n \n \n \n \n \n \n lockId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ownerId\n \n \n \n \n \n \n \n \n ownerId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n \n \n permissions: FilePermissionEntity[]\n\n \n \n\n\n \n \n Type : FilePermissionEntity[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n refOwnerModel\n \n \n \n \n \n \n \n \n refOwnerModel: FileOwnerModel\n\n \n \n\n\n \n \n Type : FileOwnerModel\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n securityCheck\n \n \n \n \n \n \n \n \n securityCheck: FileSecurityCheckEntity\n\n \n \n\n\n \n \n Type : FileSecurityCheckEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n shareTokens\n \n \n \n \n \n \n \n \n shareTokens: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n \n \n size: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n storageFileName\n \n \n \n \n \n \n \n \n storageFileName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n storageProvider\n \n \n \n \n \n \n \n \n storageProvider: StorageProviderEntity\n\n \n \n\n\n \n \n Type : StorageProviderEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n thumbnail\n \n \n \n \n \n \n \n \n thumbnail: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n thumbnailRequestToken\n \n \n \n \n \n \n \n \n thumbnailRequestToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n versionKey\n \n \n \n \n \n \n \n \n versionKey: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { v4 as uuid } from 'uuid';\nimport { EntityId, StorageProviderEntity } from '@shared/domain';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { FileOwnerModel } from '../domain';\nimport { FileSecurityCheckEntity } from './file-security-check.entity';\nimport { FilePermissionEntity } from './file-permission.entity';\n\nexport interface FileEntityProps {\n\tcreatedAt?: Date;\n\tupdatedAt?: Date;\n\tdeletedAt?: Date;\n\tdeleted?: boolean;\n\tisDirectory?: boolean;\n\tname: string;\n\tsize?: number;\n\ttype?: string;\n\tstorageFileName?: string;\n\tbucket?: string;\n\tstorageProvider?: StorageProviderEntity;\n\tthumbnail?: string;\n\tthumbnailRequestToken?: string;\n\tsecurityCheck?: FileSecurityCheckEntity;\n\tshareTokens?: string[];\n\tparentId?: EntityId;\n\townerId: EntityId;\n\trefOwnerModel: FileOwnerModel;\n\tcreatorId: EntityId;\n\tpermissions: FilePermissionEntity[];\n\tlockId?: EntityId;\n\tversionKey?: number;\n}\n\n@Entity({ collection: 'files' })\n@Index({ options: { 'permissions.refId': 1 } })\nexport class FileEntity extends BaseEntityWithTimestamps {\n\t@Property({ nullable: true })\n\tdeletedAt?: Date;\n\n\t@Property()\n\tdeleted = false;\n\n\t@Property()\n\tisDirectory = false;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tsize?: number; // not for directories\n\n\t@Property({ nullable: true })\n\ttype?: string;\n\n\t@Property({ nullable: true })\n\tstorageFileName?: string; // not for directories\n\n\t@Property({ nullable: true })\n\tbucket?: string; // not for directories\n\n\t@ManyToOne(() => StorageProviderEntity, { fieldName: 'storageProviderId', nullable: true })\n\tstorageProvider?: StorageProviderEntity; // not for directories\n\n\t@Property({ nullable: true })\n\tthumbnail?: string;\n\n\t@Property({ nullable: true })\n\tthumbnailRequestToken?: string = uuid();\n\n\t@Embedded(() => FileSecurityCheckEntity, { object: true, nullable: false })\n\tsecurityCheck: FileSecurityCheckEntity = new FileSecurityCheckEntity({});\n\n\t@Property({ nullable: true })\n\t@Index()\n\tshareTokens: string[] = [];\n\n\t@Property({ fieldName: 'parent', nullable: true })\n\t@Index()\n\t_parentId?: ObjectId;\n\n\tget parentId(): EntityId | undefined {\n\t\treturn this._parentId?.toHexString();\n\t}\n\n\t@Property({ fieldName: 'owner', nullable: false })\n\t@Index()\n\t_ownerId: ObjectId;\n\n\tget ownerId(): EntityId {\n\t\treturn this._ownerId.toHexString();\n\t}\n\n\t@Enum({ nullable: false })\n\trefOwnerModel: FileOwnerModel;\n\n\t@Property({ fieldName: 'creator' })\n\t@Index()\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Embedded(() => FilePermissionEntity, { array: true, nullable: false })\n\tpermissions: FilePermissionEntity[];\n\n\t@Property({ fieldName: 'lockId', nullable: true })\n\t_lockId?: ObjectId;\n\n\tget lockId(): EntityId | undefined {\n\t\treturn this._lockId?.toHexString();\n\t}\n\n\t@Property({ fieldName: '__v', nullable: true })\n\tversionKey?: number; // mongoose model version key\n\n\tprivate validate(props: FileEntityProps) {\n\t\tif (props.isDirectory) return;\n\n\t\tif (!props.size || !props.storageFileName || !props.bucket || !props.storageProvider) {\n\t\t\tthrow new Error(\n\t\t\t\t'files that are not directories always need a size, a storage file name, a bucket, and a storage provider.'\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic removePermissionsByRefId(refId: EntityId): void {\n\t\tconst refObjectId = new ObjectId(refId);\n\n\t\tthis.permissions = this.permissions.filter((permission) => !permission.refId.equals(refObjectId));\n\t}\n\n\tpublic markForDeletion(): void {\n\t\tthis.deletedAt = new Date();\n\t\tthis.deleted = true;\n\t}\n\n\tpublic isMarkedForDeletion(): boolean {\n\t\treturn this.deleted && this.deletedAt !== undefined && !Number.isNaN(this.deletedAt.getTime());\n\t}\n\n\tconstructor(props: FileEntityProps) {\n\t\tsuper();\n\n\t\tthis.validate(props);\n\n\t\tif (props.createdAt !== undefined) {\n\t\t\tthis.createdAt = props.createdAt;\n\t\t}\n\n\t\tif (props.updatedAt !== undefined) {\n\t\t\tthis.updatedAt = props.updatedAt;\n\t\t}\n\n\t\tthis.deletedAt = props.deletedAt;\n\n\t\tif (props.deleted !== undefined) {\n\t\t\tthis.deleted = props.deleted;\n\t\t}\n\n\t\tif (props.isDirectory !== undefined) {\n\t\t\tthis.isDirectory = props.isDirectory;\n\t\t}\n\n\t\tthis.name = props.name;\n\t\tthis.size = props.size;\n\t\tthis.type = props.type;\n\t\tthis.storageFileName = props.storageFileName;\n\t\tthis.bucket = props.bucket;\n\t\tthis.storageProvider = props.storageProvider;\n\t\tthis.thumbnail = props.thumbnail;\n\n\t\tif (props.thumbnailRequestToken !== undefined) {\n\t\t\tthis.thumbnailRequestToken = props.thumbnailRequestToken;\n\t\t}\n\n\t\tif (props.securityCheck !== undefined) {\n\t\t\tthis.securityCheck = props.securityCheck;\n\t\t}\n\n\t\tif (props.shareTokens !== undefined) {\n\t\t\tthis.shareTokens = props.shareTokens;\n\t\t}\n\n\t\tif (props.parentId !== undefined) {\n\t\t\tthis._parentId = new ObjectId(props.parentId);\n\t\t}\n\n\t\tthis._ownerId = new ObjectId(props.ownerId);\n\t\tthis.refOwnerModel = props.refOwnerModel;\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis.permissions = props.permissions;\n\n\t\tif (props.lockId !== undefined) {\n\t\t\tthis._lockId = new ObjectId(props.lockId);\n\t\t}\n\n\t\tif (props.versionKey !== undefined) {\n\t\t\tthis.versionKey = props.versionKey;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileParamBuilder.html":{"url":"classes/FileParamBuilder.html","title":"class - FileParamBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileParamBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/mapper/files-storage-param.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(schoolId: EntityId, parent: EntitiesWithFiles)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-param.builder.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parent\n \n EntitiesWithFiles\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IFileRequestInfo\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { EntitiesWithFiles, IFileRequestInfo } from '../interfaces';\nimport { FilesStorageClientMapper } from './files-storage-client.mapper';\n\nexport class FileParamBuilder {\n\tstatic build(schoolId: EntityId, parent: EntitiesWithFiles): IFileRequestInfo {\n\t\tconst parentType = FilesStorageClientMapper.mapEntityToParentType(parent);\n\t\tconst fileRequestInfo = {\n\t\t\tparentType,\n\t\t\tschoolId,\n\t\t\tparentId: parent.id,\n\t\t};\n\n\t\treturn fileRequestInfo;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileParams.html":{"url":"classes/FileParams.html","title":"class - FileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n file\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n file\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string', format: 'binary'})@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:41\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilePermissionEntity.html":{"url":"classes/FilePermissionEntity.html","title":"class - FilePermissionEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilePermissionEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file-permission.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n create\n \n \n \n delete\n \n \n \n read\n \n \n \n refId\n \n \n \n refPermModel\n \n \n \n write\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: FilePermissionEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:33\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n FilePermissionEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n delete\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n read\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n refId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n refPermModel\n \n \n \n \n \n \n Type : FilePermissionReferenceModel\n\n \n \n \n \n Decorators : \n \n \n @Enum({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n write\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:24\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { FilePermissionReferenceModel } from '../domain';\n\nexport interface FilePermissionEntityProps {\n\trefId: EntityId;\n\trefPermModel: FilePermissionReferenceModel;\n\twrite?: boolean;\n\tread?: boolean;\n\tcreate?: boolean;\n\tdelete?: boolean;\n}\n\n@Embeddable()\nexport class FilePermissionEntity {\n\t@Property({ nullable: false })\n\trefId: ObjectId;\n\n\t@Enum({ nullable: false })\n\trefPermModel: FilePermissionReferenceModel;\n\n\t@Property()\n\twrite = true;\n\n\t@Property()\n\tread = true;\n\n\t@Property()\n\tcreate = true;\n\n\t@Property()\n\tdelete = true;\n\n\tconstructor(props: FilePermissionEntityProps) {\n\t\tthis.refId = new ObjectId(props.refId);\n\t\tthis.refPermModel = props.refPermModel;\n\n\t\tif (props.write !== undefined) {\n\t\t\tthis.write = props.write;\n\t\t}\n\n\t\tif (props.read !== undefined) {\n\t\t\tthis.read = props.read;\n\t\t}\n\n\t\tif (props.create !== undefined) {\n\t\t\tthis.create = props.create;\n\t\t}\n\n\t\tif (props.delete !== undefined) {\n\t\t\tthis.delete = props.delete;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FilePermissionEntityProps.html":{"url":"interfaces/FilePermissionEntityProps.html","title":"interface - FilePermissionEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FilePermissionEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file-permission.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n create\n \n \n \n Optional\n \n delete\n \n \n \n Optional\n \n read\n \n \n \n \n refId\n \n \n \n \n refPermModel\n \n \n \n Optional\n \n write\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n create\n \n \n \n \n \n \n \n \n create: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n delete\n \n \n \n \n \n \n \n \n delete: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n read\n \n \n \n \n \n \n \n \n read: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n refId\n \n \n \n \n \n \n \n \n refId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n refPermModel\n \n \n \n \n \n \n \n \n refPermModel: FilePermissionReferenceModel\n\n \n \n\n\n \n \n Type : FilePermissionReferenceModel\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n write\n \n \n \n \n \n \n \n \n write: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { FilePermissionReferenceModel } from '../domain';\n\nexport interface FilePermissionEntityProps {\n\trefId: EntityId;\n\trefPermModel: FilePermissionReferenceModel;\n\twrite?: boolean;\n\tread?: boolean;\n\tcreate?: boolean;\n\tdelete?: boolean;\n}\n\n@Embeddable()\nexport class FilePermissionEntity {\n\t@Property({ nullable: false })\n\trefId: ObjectId;\n\n\t@Enum({ nullable: false })\n\trefPermModel: FilePermissionReferenceModel;\n\n\t@Property()\n\twrite = true;\n\n\t@Property()\n\tread = true;\n\n\t@Property()\n\tcreate = true;\n\n\t@Property()\n\tdelete = true;\n\n\tconstructor(props: FilePermissionEntityProps) {\n\t\tthis.refId = new ObjectId(props.refId);\n\t\tthis.refPermModel = props.refPermModel;\n\n\t\tif (props.write !== undefined) {\n\t\t\tthis.write = props.write;\n\t\t}\n\n\t\tif (props.read !== undefined) {\n\t\t\tthis.read = props.read;\n\t\t}\n\n\t\tif (props.create !== undefined) {\n\t\t\tthis.create = props.create;\n\t\t}\n\n\t\tif (props.delete !== undefined) {\n\t\t\tthis.delete = props.delete;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/FileRecord.html":{"url":"entities/FileRecord.html","title":"entity - FileRecord","body":"\n \n\n\n\n\n\n\n\n Entities\n FileRecord\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n \n Description\n \n \n Note: The file record entity will not manage any entity relations by itself.\nThat's why we do not map any relations in the entity class\nand instead just use the plain object ids.\n\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _creatorId\n \n \n \n Optional\n _isCopyFrom\n \n \n \n \n _parentId\n \n \n \n _schoolId\n \n \n \n \n Optional\n deletedSince\n \n \n \n mimeType\n \n \n \n name\n \n \n \n \n parentType\n \n \n \n securityCheck\n \n \n \n size\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _creatorId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'creator'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:130\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n _isCopyFrom\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'isCopyFrom', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:144\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n _parentId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Index()@Property({fieldName: 'parent'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:123\n \n \n\n\n \n \n \n \n \n \n \n \n \n _schoolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'school'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:137\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n deletedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Index({options: undefined})@Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:103\n \n \n\n\n \n \n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:112\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:109\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : FileRecordParentType\n\n \n \n \n \n Decorators : \n \n \n @Index()@Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:119\n \n \n\n\n \n \n \n \n \n \n \n \n \n securityCheck\n \n \n \n \n \n \n Type : FileRecordSecurityCheck\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {object: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:115\n \n \n\n\n \n \n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:106\n \n \n\n\n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordFactory.html":{"url":"classes/FileRecordFactory.html","title":"class - FileRecordFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/filerecord.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n markedForDelete\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n markedForDelete\n \n \n \n \n \n \nmarkedForDelete()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/filerecord.factory.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { FileRecord, FileRecordSecurityCheck, IFileRecordProperties } from '@src/modules/files-storage/entity';\nimport { ObjectId } from 'bson';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\n\nconst yesterday = new Date(Date.now() - 86400000);\n\nclass FileRecordFactory extends BaseFactory {\n\tmarkedForDelete(): this {\n\t\tconst params: DeepPartial = { deletedSince: yesterday };\n\t\treturn this.params(params);\n\t}\n}\n\nexport const fileRecordFactory = FileRecordFactory.define(FileRecord, ({ sequence }) => {\n\treturn {\n\t\tsize: Math.round(Math.random() * 100000),\n\t\tname: `file-record #${sequence}`,\n\t\tmimeType: 'application/octet-stream',\n\t\tsecurityCheck: new FileRecordSecurityCheck({}),\n\t\tparentType: FileRecordParentType.Course,\n\t\tparentId: new ObjectId().toHexString(),\n\t\tcreatorId: new ObjectId().toHexString(),\n\t\tschoolId: new ObjectId().toHexString(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordListResponse.html":{"url":"classes/FileRecordListResponse.html","title":"class - FileRecordListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:56\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n FileRecordResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : FileRecordResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:63\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { FileRecord, FileRecordParentType, PreviewStatus, ScanStatus } from '../../entity';\nimport { API_VERSION_PATH } from '../../files-storage.const';\n\nexport class FileRecordResponse {\n\tconstructor(fileRecord: FileRecord) {\n\t\tthis.id = fileRecord.id;\n\t\tthis.name = fileRecord.name;\n\t\tthis.url = `${API_VERSION_PATH}/file/download/${fileRecord.id}/${encodeURIComponent(fileRecord.name)}`;\n\t\tthis.size = fileRecord.size;\n\t\tthis.securityCheckStatus = fileRecord.securityCheck.status;\n\t\tthis.parentId = fileRecord.parentId;\n\t\tthis.creatorId = fileRecord.creatorId;\n\t\tthis.mimeType = fileRecord.mimeType;\n\t\tthis.parentType = fileRecord.parentType;\n\t\tthis.deletedSince = fileRecord.deletedSince;\n\t\tthis.previewStatus = fileRecord.getPreviewStatus();\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiProperty()\n\tparentId: string;\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty({ enum: ScanStatus, enumName: 'FileRecordScanStatus' })\n\tsecurityCheckStatus: ScanStatus;\n\n\t@ApiProperty()\n\tsize: number;\n\n\t@ApiProperty()\n\tcreatorId: string;\n\n\t@ApiProperty()\n\tmimeType: string;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\tparentType: FileRecordParentType;\n\n\t@ApiProperty({ enum: PreviewStatus, enumName: 'PreviewStatus' })\n\tpreviewStatus: PreviewStatus;\n\n\t@ApiPropertyOptional()\n\tdeletedSince?: Date;\n}\n\nexport class FileRecordListResponse extends PaginationResponse {\n\tconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [FileRecordResponse] })\n\tdata: FileRecordResponse[];\n}\n\nexport class CopyFileResponse {\n\tconstructor(data: CopyFileResponse) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n\n\t@ApiPropertyOptional()\n\tid?: string;\n\n\t@ApiProperty()\n\tsourceId: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n}\n\nexport class CopyFileListResponse extends PaginationResponse {\n\tconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CopyFileResponse] })\n\tdata: CopyFileResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordMapper.html":{"url":"classes/FileRecordMapper.html","title":"class - FileRecordMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/file-record.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapScanResultParamsToDto\n \n \n Static\n mapToFileRecordListResponse\n \n \n Static\n mapToFileRecordResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapScanResultParamsToDto\n \n \n \n \n \n \n \n mapScanResultParamsToDto(scanResultParams: ScanResultParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-record.mapper.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scanResultParams\n \n ScanResultParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ScanResultDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToFileRecordListResponse\n \n \n \n \n \n \n \n mapToFileRecordListResponse(fileRecords: FileRecord[], total: number, skip?: number, limit?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-record.mapper.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecords\n \n FileRecord[]\n \n\n \n No\n \n\n\n \n \n total\n \n number\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n Yes\n \n\n\n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToFileRecordResponse\n \n \n \n \n \n \n \n mapToFileRecordResponse(fileRecord: FileRecord)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-record.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FileRecordListResponse, FileRecordResponse, ScanResultDto, ScanResultParams } from '../controller/dto';\nimport { FileRecord, ScanStatus } from '../entity';\n\nexport class FileRecordMapper {\n\tstatic mapToFileRecordResponse(fileRecord: FileRecord): FileRecordResponse {\n\t\tconst fileRecordResponse = new FileRecordResponse(fileRecord);\n\n\t\treturn fileRecordResponse;\n\t}\n\n\tstatic mapToFileRecordListResponse(\n\t\tfileRecords: FileRecord[],\n\t\ttotal: number,\n\t\tskip?: number,\n\t\tlimit?: number\n\t): FileRecordListResponse {\n\t\tconst responseFileRecords = fileRecords.map((fileRecord) => FileRecordMapper.mapToFileRecordResponse(fileRecord));\n\t\tconst response = new FileRecordListResponse(responseFileRecords, total, skip, limit);\n\n\t\treturn response;\n\t}\n\n\tstatic mapScanResultParamsToDto(scanResultParams: ScanResultParams): ScanResultDto {\n\t\tconst scanResult = new ScanResultDto({\n\t\t\tstatus: ScanStatus.VERIFIED,\n\t\t\treason: 'Clean',\n\t\t});\n\n\t\tif (scanResultParams.virus_detected) {\n\t\t\tscanResult.status = ScanStatus.BLOCKED;\n\t\t\tscanResult.reason = scanResultParams.virus_signature ?? 'Virus detected';\n\t\t} else if (scanResultParams.error) {\n\t\t\tscanResult.status = ScanStatus.ERROR;\n\t\t\tscanResult.reason = scanResultParams.error;\n\t\t} else if (scanResultParams.virus_detected === undefined || scanResultParams.error === '') {\n\t\t\tscanResult.status = ScanStatus.ERROR;\n\t\t\tscanResult.reason = 'No scan result';\n\t\t}\n\n\t\treturn scanResult;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordParams.html":{"url":"classes/FileRecordParams.html","title":"class - FileRecordParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : FileRecordParentType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: FileRecordParentType, enumName: 'FileRecordParentType'})@IsEnum(FileRecordParentType)\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FileRecordRepo.html":{"url":"injectables/FileRecordRepo.html","title":"injectable - FileRecordRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FileRecordRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/repo/filerecord.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n findAndCount\n \n \n Async\n findByParentId\n \n \n Async\n findBySchoolIdAndParentId\n \n \n Async\n findBySchoolIdAndParentIdAndMarkedForDelete\n \n \n Async\n findBySecurityCheckRequestToken\n \n \n Async\n findOneById\n \n \n Async\n findOneByIdMarkedForDelete\n \n \n Private\n Async\n findOneOrFail\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n findAndCount\n \n \n \n \n \n \n \n findAndCount(scope: FileRecordScope, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scope\n \n FileRecordScope\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByParentId\n \n \n \n \n \n \n \n findByParentId(parentId: EntityId, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolIdAndParentId\n \n \n \n \n \n \n \n findBySchoolIdAndParentId(schoolId: EntityId, parentId: EntityId, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolIdAndParentIdAndMarkedForDelete\n \n \n \n \n \n \n \n findBySchoolIdAndParentIdAndMarkedForDelete(schoolId: EntityId, parentId: EntityId, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySecurityCheckRequestToken\n \n \n \n \n \n \n \n findBySecurityCheckRequestToken(token: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOneById\n \n \n \n \n \n \n \n findOneById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOneByIdMarkedForDelete\n \n \n \n \n \n \n \n findOneByIdMarkedForDelete(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findOneOrFail\n \n \n \n \n \n \n \n findOneOrFail(scope: FileRecordScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scope\n \n FileRecordScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, IFindOptions, SortOrder } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo';\nimport { FileRecord } from '../entity';\nimport { FileRecordScope } from './filerecord-scope';\n\n@Injectable()\nexport class FileRecordRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn FileRecord;\n\t}\n\n\tasync findOneById(id: EntityId): Promise {\n\t\tconst scope = new FileRecordScope().byFileRecordId(id).byMarkedForDelete(false);\n\t\tconst fileRecord = await this.findOneOrFail(scope);\n\n\t\treturn fileRecord;\n\t}\n\n\tasync findOneByIdMarkedForDelete(id: EntityId): Promise {\n\t\tconst scope = new FileRecordScope().byFileRecordId(id).byMarkedForDelete(true);\n\t\tconst fileRecord = await this.findOneOrFail(scope);\n\n\t\treturn fileRecord;\n\t}\n\n\tasync findByParentId(parentId: EntityId, options?: IFindOptions): Promise> {\n\t\tconst scope = new FileRecordScope().byParentId(parentId).byMarkedForDelete(false);\n\t\tconst result = await this.findAndCount(scope, options);\n\n\t\treturn result;\n\t}\n\n\tasync findBySchoolIdAndParentId(\n\t\tschoolId: EntityId,\n\t\tparentId: EntityId,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new FileRecordScope().bySchoolId(schoolId).byParentId(parentId).byMarkedForDelete(false);\n\t\tconst result = await this.findAndCount(scope, options);\n\n\t\treturn result;\n\t}\n\n\tasync findBySchoolIdAndParentIdAndMarkedForDelete(\n\t\tschoolId: EntityId,\n\t\tparentId: EntityId,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new FileRecordScope().bySchoolId(schoolId).byParentId(parentId).byMarkedForDelete(true);\n\t\tconst result = await this.findAndCount(scope, options);\n\n\t\treturn result;\n\t}\n\n\tasync findBySecurityCheckRequestToken(token: string): Promise {\n\t\t// Must also find expires in future. Please do not add .byExpires().\n\t\tconst scope = new FileRecordScope().bySecurityCheckRequestToken(token);\n\n\t\tconst fileRecord = await this.findOneOrFail(scope);\n\n\t\treturn fileRecord;\n\t}\n\n\tprivate async findAndCount(\n\t\tscope: FileRecordScope,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst { pagination } = options || {};\n\t\tconst order = { createdAt: SortOrder.desc, id: SortOrder.asc };\n\n\t\tconst [fileRecords, count] = await this._em.findAndCount(FileRecord, scope.query, {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order,\n\t\t});\n\n\t\treturn [fileRecords, count];\n\t}\n\n\tprivate async findOneOrFail(scope: FileRecordScope): Promise {\n\t\tconst fileRecord = await this._em.findOneOrFail(FileRecord, scope.query);\n\n\t\treturn fileRecord;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordResponse.html":{"url":"classes/FileRecordResponse.html","title":"class - FileRecordResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n creatorId\n \n \n \n Optional\n deletedSince\n \n \n \n id\n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n parentId\n \n \n \n parentType\n \n \n \n previewStatus\n \n \n \n securityCheckStatus\n \n \n \n size\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(fileRecord: FileRecord)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n \n FileRecord\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n creatorId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n deletedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : FileRecordParentType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: FileRecordParentType, enumName: 'FileRecordParentType'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n previewStatus\n \n \n \n \n \n \n Type : PreviewStatus\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: PreviewStatus, enumName: 'PreviewStatus'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n securityCheckStatus\n \n \n \n \n \n \n Type : ScanStatus\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ScanStatus, enumName: 'FileRecordScanStatus'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:32\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { FileRecord, FileRecordParentType, PreviewStatus, ScanStatus } from '../../entity';\nimport { API_VERSION_PATH } from '../../files-storage.const';\n\nexport class FileRecordResponse {\n\tconstructor(fileRecord: FileRecord) {\n\t\tthis.id = fileRecord.id;\n\t\tthis.name = fileRecord.name;\n\t\tthis.url = `${API_VERSION_PATH}/file/download/${fileRecord.id}/${encodeURIComponent(fileRecord.name)}`;\n\t\tthis.size = fileRecord.size;\n\t\tthis.securityCheckStatus = fileRecord.securityCheck.status;\n\t\tthis.parentId = fileRecord.parentId;\n\t\tthis.creatorId = fileRecord.creatorId;\n\t\tthis.mimeType = fileRecord.mimeType;\n\t\tthis.parentType = fileRecord.parentType;\n\t\tthis.deletedSince = fileRecord.deletedSince;\n\t\tthis.previewStatus = fileRecord.getPreviewStatus();\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiProperty()\n\tparentId: string;\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty({ enum: ScanStatus, enumName: 'FileRecordScanStatus' })\n\tsecurityCheckStatus: ScanStatus;\n\n\t@ApiProperty()\n\tsize: number;\n\n\t@ApiProperty()\n\tcreatorId: string;\n\n\t@ApiProperty()\n\tmimeType: string;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\tparentType: FileRecordParentType;\n\n\t@ApiProperty({ enum: PreviewStatus, enumName: 'PreviewStatus' })\n\tpreviewStatus: PreviewStatus;\n\n\t@ApiPropertyOptional()\n\tdeletedSince?: Date;\n}\n\nexport class FileRecordListResponse extends PaginationResponse {\n\tconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [FileRecordResponse] })\n\tdata: FileRecordResponse[];\n}\n\nexport class CopyFileResponse {\n\tconstructor(data: CopyFileResponse) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n\n\t@ApiPropertyOptional()\n\tid?: string;\n\n\t@ApiProperty()\n\tsourceId: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n}\n\nexport class CopyFileListResponse extends PaginationResponse {\n\tconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CopyFileResponse] })\n\tdata: CopyFileResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordScope.html":{"url":"classes/FileRecordScope.html","title":"class - FileRecordScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/repo/filerecord-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byFileRecordId\n \n \n byMarkedForDelete\n \n \n byParentId\n \n \n bySchoolId\n \n \n bySecurityCheckRequestToken\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byFileRecordId\n \n \n \n \n \n \nbyFileRecordId(fileRecordId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byMarkedForDelete\n \n \n \n \n \n \nbyMarkedForDelete(isMarked)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n Default value\n \n \n \n \n isMarked\n\n \n No\n \n\n \n true\n \n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byParentId\n \n \n \n \n \n \nbyParentId(parentId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n bySchoolId\n \n \n \n \n \n \nbySchoolId(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n bySecurityCheckRequestToken\n \n \n \n \n \n \nbySecurityCheckRequestToken(token: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { Scope } from '@shared/repo';\nimport { FileRecord } from '../entity';\n\nexport class FileRecordScope extends Scope {\n\tbyParentId(parentId: EntityId): FileRecordScope {\n\t\tthis.addQuery({ _parentId: new ObjectId(parentId) });\n\n\t\treturn this;\n\t}\n\n\tbyFileRecordId(fileRecordId: EntityId): FileRecordScope {\n\t\tthis.addQuery({ id: fileRecordId });\n\n\t\treturn this;\n\t}\n\n\tbySchoolId(schoolId: EntityId): FileRecordScope {\n\t\tthis.addQuery({ _schoolId: new ObjectId(schoolId) });\n\n\t\treturn this;\n\t}\n\n\tbySecurityCheckRequestToken(token: string): FileRecordScope {\n\t\tthis.addQuery({ securityCheck: { requestToken: token } });\n\n\t\treturn this;\n\t}\n\n\tbyMarkedForDelete(isMarked = true): FileRecordScope {\n\t\tconst query = isMarked ? { deletedSince: { $ne: null } } : { deletedSince: null };\n\t\tthis.addQuery(query);\n\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordSecurityCheck.html":{"url":"classes/FileRecordSecurityCheck.html","title":"class - FileRecordSecurityCheck","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordSecurityCheck\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n reason\n \n \n \n Optional\n requestToken\n \n \n \n status\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: IFileRecordSecurityCheckProperties)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:56\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n IFileRecordSecurityCheckProperties\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n \n reason\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'not yet scanned'\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n requestToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : uuid()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ScanStatus\n\n \n \n \n \n Default value : ScanStatus.PENDING\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:56\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileResponseBuilder.html":{"url":"classes/FileResponseBuilder.html","title":"class - FileResponseBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileResponseBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/file-response.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(file: GetFile, name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-response.builder.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n file\n \n GetFile\n \n\n \n No\n \n\n\n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GetFileResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { GetFile } from '@shared/infra/s3-client';\nimport { GetFileResponse } from '../interface';\n\nexport class FileResponseBuilder {\n\tpublic static build(file: GetFile, name: string): GetFileResponse {\n\t\tconst fileResponse = { ...file, data: file.data, name };\n\n\t\treturn fileResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileSecurityCheckEntity.html":{"url":"classes/FileSecurityCheckEntity.html","title":"class - FileSecurityCheckEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileSecurityCheckEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file-security-check.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n reason\n \n \n \n Optional\n requestToken\n \n \n \n status\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: FileSecurityCheckEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n FileSecurityCheckEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n reason\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'not yet scanned'\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n requestToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : uuid()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : FileSecurityCheckStatus\n\n \n \n \n \n Default value : FileSecurityCheckStatus.PENDING\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { v4 as uuid } from 'uuid';\nimport { FileSecurityCheckStatus } from '../domain';\n\nexport interface FileSecurityCheckEntityProps {\n\tstatus?: FileSecurityCheckStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n\n@Embeddable()\nexport class FileSecurityCheckEntity {\n\t@Enum()\n\tstatus: FileSecurityCheckStatus = FileSecurityCheckStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: FileSecurityCheckEntityProps) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FileSecurityCheckEntityProps.html":{"url":"interfaces/FileSecurityCheckEntityProps.html","title":"interface - FileSecurityCheckEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FileSecurityCheckEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file-security-check.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n reason\n \n \n \n Optional\n \n requestToken\n \n \n \n Optional\n \n status\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n reason\n \n \n \n \n \n \n \n \n reason: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n requestToken\n \n \n \n \n \n \n \n \n requestToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: FileSecurityCheckStatus\n\n \n \n\n\n \n \n Type : FileSecurityCheckStatus\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { v4 as uuid } from 'uuid';\nimport { FileSecurityCheckStatus } from '../domain';\n\nexport interface FileSecurityCheckEntityProps {\n\tstatus?: FileSecurityCheckStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n\n@Embeddable()\nexport class FileSecurityCheckEntity {\n\t@Enum()\n\tstatus: FileSecurityCheckStatus = FileSecurityCheckStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: FileSecurityCheckEntityProps) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/FileSecurityController.html":{"url":"controllers/FileSecurityController.html","title":"controller - FileSecurityController","body":"\n \n\n\n\n\n\n\n Controllers\n FileSecurityController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/file-security.controller.ts\n \n\n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n downloadBySecurityToken\n \n \n \n \n Async\n updateSecurityStatus\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n downloadBySecurityToken\n \n \n \n \n \n \n \n downloadBySecurityToken(token: string, req: Request)\n \n \n\n \n \n Decorators : \n \n @ApiExcludeEndpoint()@Get(FilesStorageInternalActions.downloadBySecurityToken)\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/file-security.controller.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n req\n \n Request\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSecurityStatus\n \n \n \n \n \n \n \n updateSecurityStatus(scanResultDto: ScanResultParams, token: string)\n \n \n\n \n \n Decorators : \n \n @ApiExcludeEndpoint()@Put(FilesStorageInternalActions.updateSecurityStatus)\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/file-security.controller.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scanResultDto\n \n ScanResultParams\n \n\n \n No\n \n\n\n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Put, Req, StreamableFile } from '@nestjs/common';\nimport { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';\nimport { Request } from 'express';\nimport { FilesStorageInternalActions } from '../files-storage.const';\nimport { FilesStorageUC } from '../uc';\nimport { ScanResultParams } from './dto';\n\n@ApiTags('file-security')\n@Controller()\nexport class FileSecurityController {\n\tconstructor(private readonly filesStorageUC: FilesStorageUC) {}\n\n\t@ApiExcludeEndpoint()\n\t@Get(FilesStorageInternalActions.downloadBySecurityToken)\n\tasync downloadBySecurityToken(@Param('token') token: string, @Req() req: Request) {\n\t\tconst res = await this.filesStorageUC.downloadBySecurityToken(token);\n\t\treq.on('close', () => {\n\t\t\tres.data.destroy();\n\t\t});\n\n\t\treturn new StreamableFile(res.data, {\n\t\t\ttype: res.contentType,\n\t\t\tdisposition: `attachment;`,\n\t\t});\n\t}\n\n\t@ApiExcludeEndpoint()\n\t@Put(FilesStorageInternalActions.updateSecurityStatus)\n\tasync updateSecurityStatus(@Body() scanResultDto: ScanResultParams, @Param('token') token: string) {\n\t\tawait this.filesStorageUC.updateSecurityStatus(token, scanResultDto);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FileSystemAdapter.html":{"url":"injectables/FileSystemAdapter.html","title":"injectable - FileSystemAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FileSystemAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/file-system/file-system.adapter.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n encoding\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createDir\n \n \n Async\n createTmpDir\n \n \n joinPath\n \n \n Async\n readDir\n \n \n Async\n readFile\n \n \n Async\n removeDirRecursive\n \n \n Async\n writeFile\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n EOL\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor()\n \n \n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:12\n \n \n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createDir\n \n \n \n \n \n \n \n createDir(folderPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:26\n \n \n\n\n \n \n creates a directory if not already exists\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n folderPath\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createTmpDir\n \n \n \n \n \n \n \n createTmpDir(dirNamePrefix: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:68\n \n \n\n\n \n \n Creates a folder in systems temp path.\nThe dirNamePrefix given will be extended by six random characters.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dirNamePrefix\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n full path string to temp folder, format depends on os\n\n \n \n \n \n \n \n \n \n \n \n \n joinPath\n \n \n \n \n \n \njoinPath(...paths: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n readDir\n \n \n \n \n \n \n \n readDir(folderPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:36\n \n \n\n\n \n \n Lists filenames of given folderPath\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n folderPath\n \n string\n \n\n \n No\n \n\n\n \n path to an existing folder\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n string array of filenames\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n readFile\n \n \n \n \n \n \n \n readFile(filePath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:57\n \n \n\n\n \n \n Read file from filesystem with given encoding, defaults to utf-8\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n filePath\n \n string\n \n\n \n No\n \n\n\n \n path to existing file, format depending on os\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n file content as encoded text\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n removeDirRecursive\n \n \n \n \n \n \n \n removeDirRecursive(folderPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:78\n \n \n\n\n \n \n Removes the given folder recursively including content when not empty.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n folderPath\n \n string\n \n\n \n No\n \n\n\n \n path to an existing folder, format depending on\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n writeFile\n \n \n \n \n \n \n \n writeFile(filePath: string, text: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:48\n \n \n\n\n \n \n Write text to file, will override existing files.\nThe folder in which the file will be created must exist.\nThe path format depends on os\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n filePath\n \n string\n \n\n \n No\n \n\n\n \n path to a file\n\n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n encoding\n \n \n \n \n \n \n Type : BufferEncoding\n\n \n \n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:12\n \n \n\n\n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n EOL\n \n \n\n \n \n getEOL()\n \n \n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:18\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { promises as fsp, existsSync } from 'fs';\nimport os from 'os';\nimport path from 'path';\n\nimport rimraf = require('rimraf');\n\nconst { mkdir, readdir, writeFile, readFile, mkdtemp } = fsp;\n\n@Injectable()\nexport class FileSystemAdapter {\n\tprivate encoding: BufferEncoding;\n\n\tconstructor() {\n\t\tthis.encoding = 'utf-8';\n\t}\n\n\tget EOL(): string {\n\t\treturn os.EOL;\n\t}\n\n\t/**\n\t * creates a directory if not already exists\n\t * @param folderPath\n\t */\n\tasync createDir(folderPath: string): Promise {\n\t\tconst exists = existsSync(folderPath);\n\t\tif (!exists) await mkdir(folderPath);\n\t}\n\n\t/**\n\t * Lists filenames of given folderPath\n\t * @param folderPath path to an existing folder\n\t * @returns string array of filenames\n\t */\n\tasync readDir(folderPath: string): Promise {\n\t\tconst filenames = await readdir(folderPath, { encoding: this.encoding });\n\t\treturn filenames;\n\t}\n\n\t/**\n\t * Write text to file, will override existing files.\n\t * The folder in which the file will be created must exist.\n\t * The path format depends on os\n\t * @param filePath path to a file\n\t * @param text\n\t */\n\tasync writeFile(filePath: string, text: string): Promise {\n\t\tawait writeFile(filePath, text);\n\t}\n\n\t/**\n\t * Read file from filesystem with given encoding, defaults to utf-8\n\t * @param filePath path to existing file, format depending on os\n\t * @returns file content as encoded text\n\t */\n\tasync readFile(filePath: string): Promise {\n\t\tconst text = await readFile(filePath, this.encoding);\n\t\treturn text;\n\t}\n\n\t/**\n\t * Creates a folder in systems temp path.\n\t * The dirNamePrefix given will be extended by six random characters.\n\t * @param dirNamePrefix\n\t * @returns full path string to temp folder, format depends on os\n\t */\n\tasync createTmpDir(dirNamePrefix: string): Promise {\n\t\tconst dirPath = this.joinPath(os.tmpdir(), dirNamePrefix);\n\t\tconst tmpDirPath = await mkdtemp(dirPath);\n\t\treturn tmpDirPath;\n\t}\n\n\t/**\n\t * Removes the given folder recursively including content when not empty.\n\t * @param folderPath path to an existing folder, format depending on\n\t */\n\tasync removeDirRecursive(folderPath: string): Promise {\n\t\t// fs.rm changed in node 14.14, use rimraf instead\n\t\trimraf.sync(folderPath);\n\t\treturn Promise.resolve();\n\t}\n\n\tjoinPath(...paths: string[]): string {\n\t\treturn path.join(...paths);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FileSystemModule.html":{"url":"modules/FileSystemModule.html","title":"module - FileSystemModule","body":"\n \n\n\n\n\n Modules\n FileSystemModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FileSystemModule\n\n\n\ncluster_FileSystemModule_providers\n\n\n\ncluster_FileSystemModule_exports\n\n\n\n\nFileSystemAdapter \n\nFileSystemAdapter \n\n\n\nFileSystemModule\n\nFileSystemModule\n\nFileSystemAdapter -->\n\nFileSystemModule->FileSystemAdapter \n\n\n\n\n\nFileSystemAdapter\n\nFileSystemAdapter\n\nFileSystemModule -->\n\nFileSystemAdapter->FileSystemModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/file-system/file-system.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FileSystemAdapter\n \n \n \n \n Exports\n \n \n FileSystemAdapter\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { FileSystemAdapter } from './file-system.adapter';\n\n@Module({\n\tproviders: [FileSystemAdapter],\n\texports: [FileSystemAdapter],\n})\nexport class FileSystemModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileUrlParams.html":{"url":"classes/FileUrlParams.html","title":"class - FileUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n Optional\n headers\n \n \n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string'})@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n headers\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string'})@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string'})@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesModule.html":{"url":"modules/FilesModule.html","title":"module - FilesModule","body":"\n \n\n\n\n\n Modules\n FilesModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesModule\n\n\n\ncluster_FilesModule_imports\n\n\n\ncluster_FilesModule_providers\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nFilesModule\n\nFilesModule\n\nFilesModule -->\n\nLoggerModule->FilesModule\n\n\n\n\n\nDeleteFilesUc\n\nDeleteFilesUc\n\nFilesModule -->\n\nDeleteFilesUc->FilesModule\n\n\n\n\n\nFilesRepo\n\nFilesRepo\n\nFilesModule -->\n\nFilesRepo->FilesModule\n\n\n\n\n\nStorageProviderRepo\n\nStorageProviderRepo\n\nFilesModule -->\n\nStorageProviderRepo->FilesModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files/files.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n DeleteFilesUc\n \n \n FilesRepo\n \n \n StorageProviderRepo\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { StorageProviderRepo } from '@shared/repo/storageprovider';\nimport { LoggerModule } from '@src/core/logger';\nimport { DeleteFilesConsole } from './job';\nimport { DeleteFilesUc } from './uc';\nimport { FilesRepo } from './repo';\n\n@Module({\n\timports: [LoggerModule],\n\tproviders: [DeleteFilesConsole, DeleteFilesUc, FilesRepo, StorageProviderRepo],\n})\nexport class FilesModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesRepo.html":{"url":"injectables/FilesRepo.html","title":"injectable - FilesRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/repo/files.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n findByOwnerUserId\n \n \n Public\n Async\n findByPermissionRefId\n \n \n Public\n Async\n findForCleanup\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n findByOwnerUserId\n \n \n \n \n \n \n \n findByOwnerUserId(ownerUserId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ownerUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByPermissionRefId\n \n \n \n \n \n \n \n findByPermissionRefId(permissionRefId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n permissionRefId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findForCleanup\n \n \n \n \n \n \n \n findForCleanup(thresholdDate: Date, batchSize: number, offset: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n thresholdDate\n \n Date\n \n\n \n No\n \n\n\n \n \n batchSize\n \n number\n \n\n \n No\n \n\n\n \n \n offset\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:15\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityDictionary } from '@mikro-orm/core';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { FileOwnerModel } from '../domain';\nimport { FileEntity } from '../entity';\n\n@Injectable()\nexport class FilesRepo extends BaseRepo {\n\tconstructor(protected readonly _em: EntityManager) {\n\t\tsuper(_em);\n\t}\n\n\tget entityName() {\n\t\treturn FileEntity;\n\t}\n\n\tpublic async findForCleanup(thresholdDate: Date, batchSize: number, offset: number): Promise {\n\t\tconst filter = { deletedAt: { $lte: thresholdDate } };\n\t\tconst options = {\n\t\t\torderBy: { id: 'asc' },\n\t\t\tlimit: batchSize,\n\t\t\toffset,\n\t\t\tpopulate: ['storageProvider'] as never[],\n\t\t};\n\n\t\tconst files = await this._em.find(FileEntity, filter, options);\n\n\t\treturn files as FileEntity[];\n\t}\n\n\tpublic async findByOwnerUserId(ownerUserId: EntityId): Promise {\n\t\tconst filter = {\n\t\t\towner: new ObjectId(ownerUserId),\n\t\t\trefOwnerModel: FileOwnerModel.USER,\n\t\t};\n\n\t\tconst files = await this._em.find(FileEntity, filter);\n\n\t\treturn files as FileEntity[];\n\t}\n\n\tpublic async findByPermissionRefId(permissionRefId: EntityId): Promise {\n\t\tconst pipeline = [\n\t\t\t{\n\t\t\t\t$match: {\n\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t$elemMatch: {\n\t\t\t\t\t\t\trefId: new ObjectId(permissionRefId),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\n\t\tconst rawFilesDocuments = await this._em.aggregate(FileEntity, pipeline);\n\n\t\tconst files = rawFilesDocuments.map((rawFileDocument) =>\n\t\t\tthis._em.map(FileEntity, rawFileDocument as EntityDictionary)\n\t\t);\n\n\t\treturn files;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesService.html":{"url":"injectables/FilesService.html","title":"injectable - FilesService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/service/files.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n markFilesOwnedByUserForDeletion\n \n \n Async\n removeUserPermissionsToAnyFiles\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(repo: FilesRepo)\n \n \n \n \n Defined in apps/server/src/modules/files/service/files.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n repo\n \n \n FilesRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n markFilesOwnedByUserForDeletion\n \n \n \n \n \n \n \n markFilesOwnedByUserForDeletion(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/service/files.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeUserPermissionsToAnyFiles\n \n \n \n \n \n \n \n removeUserPermissionsToAnyFiles(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/service/files.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { FilesRepo } from '../repo';\n\n@Injectable()\nexport class FilesService {\n\tconstructor(private readonly repo: FilesRepo) {}\n\n\tasync removeUserPermissionsToAnyFiles(userId: EntityId): Promise {\n\t\tconst entities = await this.repo.findByPermissionRefId(userId);\n\n\t\tif (entities.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tentities.forEach((entity) => entity.removePermissionsByRefId(userId));\n\n\t\tawait this.repo.save(entities);\n\n\t\treturn entities.length;\n\t}\n\n\tasync markFilesOwnedByUserForDeletion(userId: EntityId): Promise {\n\t\tconst entities = await this.repo.findByOwnerUserId(userId);\n\n\t\tif (entities.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tentities.forEach((entity) => entity.markForDeletion());\n\n\t\tawait this.repo.save(entities);\n\n\t\treturn entities.length;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageAMQPModule.html":{"url":"modules/FilesStorageAMQPModule.html","title":"module - FilesStorageAMQPModule","body":"\n \n\n\n\n\n Modules\n FilesStorageAMQPModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageAMQPModule\n\n\n\ncluster_FilesStorageAMQPModule_providers\n\n\n\ncluster_FilesStorageAMQPModule_imports\n\n\n\n\nCoreModule\n\nCoreModule\n\n\n\nFilesStorageAMQPModule\n\nFilesStorageAMQPModule\n\nFilesStorageAMQPModule -->\n\nCoreModule->FilesStorageAMQPModule\n\n\n\n\n\nFilesStorageModule\n\nFilesStorageModule\n\nFilesStorageAMQPModule -->\n\nFilesStorageModule->FilesStorageAMQPModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageAMQPModule -->\n\nLoggerModule->FilesStorageAMQPModule\n\n\n\n\n\nFilesStorageConsumer\n\nFilesStorageConsumer\n\nFilesStorageAMQPModule -->\n\nFilesStorageConsumer->FilesStorageAMQPModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage-amqp.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FilesStorageConsumer\n \n \n \n \n Imports\n \n \n CoreModule\n \n \n FilesStorageModule\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { FilesStorageConsumer } from './controller';\nimport { FilesStorageModule } from './files-storage.module';\n\n@Module({\n\timports: [FilesStorageModule, CoreModule, LoggerModule],\n\tproviders: [FilesStorageConsumer],\n})\nexport class FilesStorageAMQPModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageApiModule.html":{"url":"modules/FilesStorageApiModule.html","title":"module - FilesStorageApiModule","body":"\n \n\n\n\n\n Modules\n FilesStorageApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageApiModule\n\n\n\ncluster_FilesStorageApiModule_providers\n\n\n\ncluster_FilesStorageApiModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nFilesStorageApiModule -->\n\nAuthenticationModule->FilesStorageApiModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFilesStorageApiModule -->\n\nAuthorizationModule->FilesStorageApiModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFilesStorageApiModule -->\n\nCoreModule->FilesStorageApiModule\n\n\n\n\n\nFilesStorageModule\n\nFilesStorageModule\n\nFilesStorageApiModule -->\n\nFilesStorageModule->FilesStorageApiModule\n\n\n\n\n\nFilesStorageUC\n\nFilesStorageUC\n\nFilesStorageApiModule -->\n\nFilesStorageUC->FilesStorageApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FilesStorageUC\n \n \n \n \n Controllers\n \n \n FilesStorageController\n \n \n FileSecurityController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageModule\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { CoreModule } from '@src/core';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { FileSecurityController, FilesStorageController } from './controller';\nimport { FilesStorageModule } from './files-storage.module';\nimport { FilesStorageUC } from './uc';\n\n@Module({\n\timports: [AuthorizationModule, FilesStorageModule, AuthenticationModule, CoreModule, HttpModule],\n\tcontrollers: [FilesStorageController, FileSecurityController],\n\tproviders: [FilesStorageUC],\n})\nexport class FilesStorageApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesStorageClientAdapterService.html":{"url":"injectables/FilesStorageClientAdapterService.html","title":"injectable - FilesStorageClientAdapterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesStorageClientAdapterService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyFilesOfParent\n \n \n Async\n deleteFilesOfParent\n \n \n Async\n listFilesOfParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, fileStorageMQProducer: FilesStorageProducer)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n fileStorageMQProducer\n \n \n FilesStorageProducer\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyFilesOfParent\n \n \n \n \n \n \n \n copyFilesOfParent(param: ICopyFilesRequestInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n ICopyFilesRequestInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteFilesOfParent\n \n \n \n \n \n \n \n deleteFilesOfParent(parentId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listFilesOfParent\n \n \n \n \n \n \n \n listFilesOfParent(param: IFileRequestInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n IFileRequestInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { CopyFileDto, FileDto } from '../dto';\nimport { IFileRequestInfo } from '../interfaces';\nimport { ICopyFilesRequestInfo } from '../interfaces/copy-file-request-info';\nimport { FilesStorageClientMapper } from '../mapper';\nimport { FilesStorageProducer } from './files-storage.producer';\n\n@Injectable()\nexport class FilesStorageClientAdapterService {\n\tconstructor(private logger: LegacyLogger, private readonly fileStorageMQProducer: FilesStorageProducer) {\n\t\tthis.logger.setContext(FilesStorageClientAdapterService.name);\n\t}\n\n\tasync copyFilesOfParent(param: ICopyFilesRequestInfo): Promise {\n\t\tconst response = await this.fileStorageMQProducer.copyFilesOfParent(param);\n\t\tconst fileInfos = FilesStorageClientMapper.mapCopyFileListResponseToCopyFilesDto(response);\n\n\t\treturn fileInfos;\n\t}\n\n\tasync listFilesOfParent(param: IFileRequestInfo): Promise {\n\t\tconst response = await this.fileStorageMQProducer.listFilesOfParent(param);\n\n\t\tconst fileInfos = FilesStorageClientMapper.mapfileRecordListResponseToDomainFilesDto(response);\n\n\t\treturn fileInfos;\n\t}\n\n\tasync deleteFilesOfParent(parentId: EntityId): Promise {\n\t\tconst response = await this.fileStorageMQProducer.deleteFilesOfParent(parentId);\n\n\t\tconst fileInfos = FilesStorageClientMapper.mapfileRecordListResponseToDomainFilesDto(response);\n\n\t\treturn fileInfos;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilesStorageClientMapper.html":{"url":"classes/FilesStorageClientMapper.html","title":"class - FilesStorageClientMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilesStorageClientMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapCopyFileListResponseToCopyFilesDto\n \n \n Static\n mapCopyFileResponseToCopyFileDto\n \n \n Static\n mapEntityToParentType\n \n \n Static\n mapfileRecordListResponseToDomainFilesDto\n \n \n Static\n mapFileRecordResponseToFileDto\n \n \n Static\n mapStringToParentType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapCopyFileListResponseToCopyFilesDto\n \n \n \n \n \n \n \n mapCopyFileListResponseToCopyFilesDto(copyFileListResponse: ICopyFileDomainObjectProps[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n copyFileListResponse\n \n ICopyFileDomainObjectProps[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyFileDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCopyFileResponseToCopyFileDto\n \n \n \n \n \n \n \n mapCopyFileResponseToCopyFileDto(response: ICopyFileDomainObjectProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n ICopyFileDomainObjectProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapEntityToParentType\n \n \n \n \n \n \n \n mapEntityToParentType(entity: EntitiesWithFiles)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n EntitiesWithFiles\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordParentType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapfileRecordListResponseToDomainFilesDto\n \n \n \n \n \n \n \n mapfileRecordListResponseToDomainFilesDto(fileRecordListResponse: IFileDomainObjectProps[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecordListResponse\n \n IFileDomainObjectProps[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFileRecordResponseToFileDto\n \n \n \n \n \n \n \n mapFileRecordResponseToFileDto(fileRecordResponse: IFileDomainObjectProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecordResponse\n \n IFileDomainObjectProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapStringToParentType\n \n \n \n \n \n \n \n mapStringToParentType(input: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordParentType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LessonEntity, Submission, Task } from '@shared/domain';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { CopyFileDto, FileDto } from '../dto';\nimport { EntitiesWithFiles, ICopyFileDomainObjectProps, IFileDomainObjectProps } from '../interfaces';\n\nexport class FilesStorageClientMapper {\n\tstatic mapfileRecordListResponseToDomainFilesDto(fileRecordListResponse: IFileDomainObjectProps[]): FileDto[] {\n\t\tconst filesDto = fileRecordListResponse.map((record: IFileDomainObjectProps) => {\n\t\t\tconst fileDto = FilesStorageClientMapper.mapFileRecordResponseToFileDto(record);\n\n\t\t\treturn fileDto;\n\t\t});\n\n\t\treturn filesDto;\n\t}\n\n\tstatic mapCopyFileListResponseToCopyFilesDto(copyFileListResponse: ICopyFileDomainObjectProps[]): CopyFileDto[] {\n\t\tconst filesDto = copyFileListResponse.map((response) => {\n\t\t\tconst fileDto = FilesStorageClientMapper.mapCopyFileResponseToCopyFileDto(response);\n\n\t\t\treturn fileDto;\n\t\t});\n\n\t\treturn filesDto;\n\t}\n\n\tstatic mapFileRecordResponseToFileDto(fileRecordResponse: IFileDomainObjectProps) {\n\t\tconst parentType = FilesStorageClientMapper.mapStringToParentType(fileRecordResponse.parentType);\n\t\tconst fileDto = new FileDto({\n\t\t\tid: fileRecordResponse.id,\n\t\t\tname: fileRecordResponse.name,\n\t\t\tparentType,\n\t\t\tparentId: fileRecordResponse.parentId,\n\t\t});\n\n\t\treturn fileDto;\n\t}\n\n\tstatic mapCopyFileResponseToCopyFileDto(response: ICopyFileDomainObjectProps) {\n\t\tconst dto = new CopyFileDto({\n\t\t\tid: response.id,\n\t\t\tsourceId: response.sourceId,\n\t\t\tname: response.name,\n\t\t});\n\n\t\treturn dto;\n\t}\n\n\tstatic mapStringToParentType(input: string): FileRecordParentType {\n\t\tlet response: FileRecordParentType;\n\t\tconst allowedStrings = Object.values(FileRecordParentType);\n\n\t\tif (allowedStrings.includes(input as FileRecordParentType)) {\n\t\t\tresponse = input as FileRecordParentType;\n\t\t} else {\n\t\t\tthrow new Error(`Mapping type is not supported. ${input}`);\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tstatic mapEntityToParentType(entity: EntitiesWithFiles): FileRecordParentType {\n\t\tif (entity instanceof LessonEntity) return FileRecordParentType.Lesson;\n\n\t\tif (entity instanceof Task) return FileRecordParentType.Task;\n\n\t\tif (entity instanceof Submission) return FileRecordParentType.Submission;\n\n\t\tthrow new Error(`Mapping type is not supported.`);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageClientModule.html":{"url":"modules/FilesStorageClientModule.html","title":"module - FilesStorageClientModule","body":"\n \n\n\n\n\n Modules\n FilesStorageClientModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageClientModule\n\n\n\ncluster_FilesStorageClientModule_providers\n\n\n\ncluster_FilesStorageClientModule_exports\n\n\n\ncluster_FilesStorageClientModule_imports\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nFilesStorageClientModule -->\n\nCopyHelperModule->FilesStorageClientModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageClientModule -->\n\nLoggerModule->FilesStorageClientModule\n\n\n\n\n\nCopyFilesService \n\nCopyFilesService \n\nCopyFilesService -->\n\nFilesStorageClientModule->CopyFilesService \n\n\n\n\n\nFilesStorageClientAdapterService \n\nFilesStorageClientAdapterService \n\nFilesStorageClientAdapterService -->\n\nFilesStorageClientModule->FilesStorageClientAdapterService \n\n\n\n\n\nCopyFilesService\n\nCopyFilesService\n\nFilesStorageClientModule -->\n\nCopyFilesService->FilesStorageClientModule\n\n\n\n\n\nFilesStorageClientAdapterService\n\nFilesStorageClientAdapterService\n\nFilesStorageClientModule -->\n\nFilesStorageClientAdapterService->FilesStorageClientModule\n\n\n\n\n\nFilesStorageProducer\n\nFilesStorageProducer\n\nFilesStorageClientModule -->\n\nFilesStorageProducer->FilesStorageClientModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage-client/files-storage-client.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CopyFilesService\n \n \n FilesStorageClientAdapterService\n \n \n FilesStorageProducer\n \n \n \n \n Imports\n \n \n CopyHelperModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n CopyFilesService\n \n \n FilesStorageClientAdapterService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { CopyFilesService } from './service/copy-files.service';\nimport { FilesStorageClientAdapterService } from './service/files-storage-client.service';\nimport { FilesStorageProducer } from './service/files-storage.producer';\n\n@Module({\n\timports: [LoggerModule, CopyHelperModule],\n\tproviders: [FilesStorageClientAdapterService, CopyFilesService, FilesStorageProducer],\n\texports: [FilesStorageClientAdapterService, CopyFilesService],\n})\nexport class FilesStorageClientModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesStorageConsumer.html":{"url":"injectables/FilesStorageConsumer.html","title":"injectable - FilesStorageConsumer","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesStorageConsumer\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/files-storage.consumer.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Public\n Async\n copyFilesOfParent\n \n \n \n \n Public\n Async\n deleteFilesOfParent\n \n \n \n \n Public\n Async\n getFilesOfParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(filesStorageService: FilesStorageService, logger: LegacyLogger, orm: MikroORM)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n filesStorageService\n \n \n FilesStorageService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n orm\n \n \n MikroORM\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Public\n Async\n copyFilesOfParent\n \n \n \n \n \n \n \n copyFilesOfParent(payload: CopyFilesOfParentPayload)\n \n \n\n \n \n Decorators : \n \n @RabbitRPC({exchange: FilesStorageExchange, routingKey: undefined, queue: undefined})@UseRequestContext()\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n CopyFilesOfParentPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n deleteFilesOfParent\n \n \n \n \n \n \n \n deleteFilesOfParent(payload: EntityId)\n \n \n\n \n \n Decorators : \n \n @RabbitRPC({exchange: FilesStorageExchange, routingKey: undefined, queue: undefined})@UseRequestContext()\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getFilesOfParent\n \n \n \n \n \n \n \n getFilesOfParent(payload: FileRecordParams)\n \n \n\n \n \n Decorators : \n \n @RabbitRPC({exchange: FilesStorageExchange, routingKey: undefined, queue: undefined})@UseRequestContext()\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n FileRecordParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { RabbitPayload, RabbitRPC } from '@golevelup/nestjs-rabbitmq';\nimport { MikroORM, UseRequestContext } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { RpcMessage } from '@shared/infra/rabbitmq/rpc-message';\nimport { LegacyLogger } from '@src/core/logger';\nimport { FilesStorageEvents, FilesStorageExchange, ICopyFileDO, IFileDO } from '@src/shared/infra/rabbitmq';\nimport { FilesStorageMapper } from '../mapper';\nimport { FilesStorageService } from '../service/files-storage.service';\nimport { CopyFilesOfParentPayload, FileRecordParams } from './dto';\n\n@Injectable()\nexport class FilesStorageConsumer {\n\tconstructor(\n\t\tprivate readonly filesStorageService: FilesStorageService,\n\t\tprivate logger: LegacyLogger,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tprivate readonly orm: MikroORM // don't remove it, we need it for @UseRequestContext\n\t) {\n\t\tthis.logger.setContext(FilesStorageConsumer.name);\n\t}\n\n\t@RabbitRPC({\n\t\texchange: FilesStorageExchange,\n\t\troutingKey: FilesStorageEvents.COPY_FILES_OF_PARENT,\n\t\tqueue: FilesStorageEvents.COPY_FILES_OF_PARENT,\n\t})\n\t@UseRequestContext()\n\tpublic async copyFilesOfParent(\n\t\t@RabbitPayload() payload: CopyFilesOfParentPayload\n\t): Promise> {\n\t\tthis.logger.debug({ action: 'copyFilesOfParent', payload });\n\n\t\tconst { userId, source, target } = payload;\n\t\tconst [response] = await this.filesStorageService.copyFilesOfParent(userId, source, { target });\n\n\t\treturn { message: response };\n\t}\n\n\t@RabbitRPC({\n\t\texchange: FilesStorageExchange,\n\t\troutingKey: FilesStorageEvents.LIST_FILES_OF_PARENT,\n\t\tqueue: FilesStorageEvents.LIST_FILES_OF_PARENT,\n\t})\n\t@UseRequestContext()\n\tpublic async getFilesOfParent(@RabbitPayload() payload: FileRecordParams): Promise> {\n\t\tthis.logger.debug({ action: 'getFilesOfParent', payload });\n\n\t\tconst [fileRecords, total] = await this.filesStorageService.getFileRecordsOfParent(payload.parentId);\n\t\tconst response = FilesStorageMapper.mapToFileRecordListResponse(fileRecords, total);\n\n\t\treturn { message: response.data };\n\t}\n\n\t@RabbitRPC({\n\t\texchange: FilesStorageExchange,\n\t\troutingKey: FilesStorageEvents.DELETE_FILES_OF_PARENT,\n\t\tqueue: FilesStorageEvents.DELETE_FILES_OF_PARENT,\n\t})\n\t@UseRequestContext()\n\tpublic async deleteFilesOfParent(@RabbitPayload() payload: EntityId): Promise> {\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent', payload });\n\n\t\tconst [fileRecords, total] = await this.filesStorageService.deleteFilesOfParent(payload);\n\t\tconst response = FilesStorageMapper.mapToFileRecordListResponse(fileRecords, total);\n\n\t\treturn { message: response.data };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilesStorageMapper.html":{"url":"classes/FilesStorageMapper.html","title":"class - FilesStorageMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilesStorageMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFileRecordToFileRecordParams\n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n Static\n mapToFileRecordListResponse\n \n \n Static\n mapToFileRecordResponse\n \n \n Static\n mapToSingleFileParams\n \n \n Static\n mapToStreamableFile\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFileRecordToFileRecordParams\n \n \n \n \n \n \n \n mapFileRecordToFileRecordParams(fileRecord: FileRecord)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n \n \n \n mapToAllowedAuthorizationEntityType(type: FileRecordParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n FileRecordParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizableReferenceType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToFileRecordListResponse\n \n \n \n \n \n \n \n mapToFileRecordListResponse(fileRecords: FileRecord[], total: number, skip?: number, limit?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecords\n \n FileRecord[]\n \n\n \n No\n \n\n\n \n \n total\n \n number\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n Yes\n \n\n\n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToFileRecordResponse\n \n \n \n \n \n \n \n mapToFileRecordResponse(fileRecord: FileRecord)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToSingleFileParams\n \n \n \n \n \n \n \n mapToSingleFileParams(params: DownloadFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DownloadFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SingleFileParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToStreamableFile\n \n \n \n \n \n \n \n mapToStreamableFile(fileResponse: GetFileResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileResponse\n \n GetFileResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : StreamableFile\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException, StreamableFile } from '@nestjs/common';\nimport { AuthorizableReferenceType } from '@src/modules/authorization';\nimport { plainToClass } from 'class-transformer';\nimport {\n\tDownloadFileParams,\n\tFileRecordListResponse,\n\tFileRecordParams,\n\tFileRecordResponse,\n\tSingleFileParams,\n} from '../controller/dto';\nimport { FileRecord, FileRecordParentType } from '../entity';\nimport { GetFileResponse } from '../interface';\n\nexport class FilesStorageMapper {\n\tstatic mapToAllowedAuthorizationEntityType(type: FileRecordParentType): AuthorizableReferenceType {\n\t\tconst types: Map = new Map();\n\t\ttypes.set(FileRecordParentType.Task, AuthorizableReferenceType.Task);\n\t\ttypes.set(FileRecordParentType.Course, AuthorizableReferenceType.Course);\n\t\ttypes.set(FileRecordParentType.User, AuthorizableReferenceType.User);\n\t\ttypes.set(FileRecordParentType.School, AuthorizableReferenceType.School);\n\t\ttypes.set(FileRecordParentType.Lesson, AuthorizableReferenceType.Lesson);\n\t\ttypes.set(FileRecordParentType.Submission, AuthorizableReferenceType.Submission);\n\t\ttypes.set(FileRecordParentType.BoardNode, AuthorizableReferenceType.BoardNode);\n\n\t\tconst res = types.get(type);\n\n\t\tif (!res) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\treturn res;\n\t}\n\n\tstatic mapToSingleFileParams(params: DownloadFileParams): SingleFileParams {\n\t\tconst singleFileParams = { fileRecordId: params.fileRecordId };\n\n\t\treturn singleFileParams;\n\t}\n\n\tstatic mapFileRecordToFileRecordParams(fileRecord: FileRecord): FileRecordParams {\n\t\tconst fileRecordParams = plainToClass(FileRecordParams, {\n\t\t\tschoolId: fileRecord.schoolId,\n\t\t\tparentId: fileRecord.parentId,\n\t\t\tparentType: fileRecord.parentType,\n\t\t});\n\n\t\treturn fileRecordParams;\n\t}\n\n\tstatic mapToFileRecordResponse(fileRecord: FileRecord): FileRecordResponse {\n\t\treturn new FileRecordResponse(fileRecord);\n\t}\n\n\tstatic mapToFileRecordListResponse(\n\t\tfileRecords: FileRecord[],\n\t\ttotal: number,\n\t\tskip?: number,\n\t\tlimit?: number\n\t): FileRecordListResponse {\n\t\tconst responseFileRecords = fileRecords.map((fileRecord) => FilesStorageMapper.mapToFileRecordResponse(fileRecord));\n\n\t\tconst response = new FileRecordListResponse(responseFileRecords, total, skip, limit);\n\t\treturn response;\n\t}\n\n\tstatic mapToStreamableFile(fileResponse: GetFileResponse): StreamableFile {\n\t\tconst streamableFile = new StreamableFile(fileResponse.data, {\n\t\t\ttype: fileResponse.contentType,\n\t\t\tdisposition: `inline; filename=\"${encodeURI(fileResponse.name)}\"`,\n\t\t\tlength: fileResponse.contentLength,\n\t\t});\n\n\t\treturn streamableFile;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageModule.html":{"url":"modules/FilesStorageModule.html","title":"module - FilesStorageModule","body":"\n \n\n\n\n\n Modules\n FilesStorageModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageModule\n\n\n\ncluster_FilesStorageModule_exports\n\n\n\ncluster_FilesStorageModule_imports\n\n\n\ncluster_FilesStorageModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFilesStorageModule\n\nFilesStorageModule\n\nFilesStorageModule -->\n\nAuthenticationModule->FilesStorageModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFilesStorageModule -->\n\nAuthorizationModule->FilesStorageModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFilesStorageModule -->\n\nCoreModule->FilesStorageModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nFilesStorageModule -->\n\nFilesStorageApiModule->FilesStorageModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageModule -->\n\nLoggerModule->FilesStorageModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nFilesStorageModule -->\n\nRabbitMQWrapperModule->FilesStorageModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nFilesStorageModule -->\n\nRabbitMQWrapperTestModule->FilesStorageModule\n\n\n\n\n\nFilesStorageService \n\nFilesStorageService \n\nFilesStorageService -->\n\nFilesStorageModule->FilesStorageService \n\n\n\n\n\nPreviewService \n\nPreviewService \n\nPreviewService -->\n\nFilesStorageModule->PreviewService \n\n\n\n\n\nFileRecordRepo\n\nFileRecordRepo\n\nFilesStorageModule -->\n\nFileRecordRepo->FilesStorageModule\n\n\n\n\n\nFilesStorageService\n\nFilesStorageService\n\nFilesStorageModule -->\n\nFilesStorageService->FilesStorageModule\n\n\n\n\n\nPreviewService\n\nPreviewService\n\nFilesStorageModule -->\n\nPreviewService->FilesStorageModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FileRecordRepo\n \n \n FilesStorageService\n \n \n PreviewService\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n Exports\n \n \n FilesStorageService\n \n \n PreviewService\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { AntivirusModule } from '@shared/infra/antivirus/antivirus.module';\nimport { RabbitMQWrapperModule } from '@shared/infra/rabbitmq/rabbitmq.module';\nimport { S3ClientModule } from '@shared/infra/s3-client';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME, createConfigModuleOptions } from '@src/config';\nimport { LoggerModule } from '@src/core/logger';\nimport { FileRecord, FileRecordSecurityCheck } from './entity';\nimport { config, s3Config } from './files-storage.config';\nimport { FileRecordRepo } from './repo';\nimport { FilesStorageService } from './service/files-storage.service';\nimport { PreviewService } from './service/preview.service';\n\nconst imports = [\n\tLoggerModule,\n\tConfigModule.forRoot(createConfigModuleOptions(config)),\n\tAntivirusModule.forRoot({\n\t\tenabled: Configuration.get('ENABLE_FILE_SECURITY_CHECK') as boolean,\n\t\tfilesServiceBaseUrl: Configuration.get('FILES_STORAGE__SERVICE_BASE_URL') as string,\n\t\texchange: Configuration.get('ANTIVIRUS_EXCHANGE') as string,\n\t\troutingKey: Configuration.get('ANTIVIRUS_ROUTING_KEY') as string,\n\t}),\n\tS3ClientModule.register([s3Config]),\n];\nconst providers = [FilesStorageService, PreviewService, FileRecordRepo];\n\nconst defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\n@Module({\n\timports: [\n\t\t...imports,\n\t\tRabbitMQWrapperModule,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\ttype: 'mongo',\n\t\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: [...ALL_ENTITIES, FileRecord, FileRecordSecurityCheck],\n\n\t\t\t// debug: true, // use it for locally debugging of querys\n\t\t}),\n\t],\n\tproviders,\n\texports: [FilesStorageService, PreviewService],\n})\nexport class FilesStorageModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesStorageProducer.html":{"url":"injectables/FilesStorageProducer.html","title":"injectable - FilesStorageProducer","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesStorageProducer\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/service/files-storage.producer.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n timeout\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkError\n \n \n Async\n copyFilesOfParent\n \n \n Private\n createRequest\n \n \n Async\n deleteFilesOfParent\n \n \n Async\n listFilesOfParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, amqpConnection: AmqpConnection, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:20\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n amqpConnection\n \n \n AmqpConnection\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkError\n \n \n \n \n \n \n \n checkError(response: RpcMessage<>)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n RpcMessage<>\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n copyFilesOfParent\n \n \n \n \n \n \n \n copyFilesOfParent(payload: ICopyFilesOfParentParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n ICopyFilesOfParentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createRequest\n \n \n \n \n \n \n \n createRequest(event: FilesStorageEvents, payload: IFileRecordParams | ICopyFilesOfParentParams | EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n event\n \n FilesStorageEvents\n \n\n \n No\n \n\n\n \n \n payload\n \n IFileRecordParams | ICopyFilesOfParentParams | EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : { exchange: any; routingKey: FilesStorageEvents; payload: any; timeout: number; }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteFilesOfParent\n \n \n \n \n \n \n \n deleteFilesOfParent(payload: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:55\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listFilesOfParent\n \n \n \n \n \n \n \n listFilesOfParent(payload: IFileRecordParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n IFileRecordParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n timeout\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 0\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:20\n \n \n\n\n \n \n\n\n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId } from '@shared/domain';\nimport { RpcMessage } from '@shared/infra/rabbitmq/rpc-message';\nimport { LegacyLogger } from '@src/core/logger';\nimport {\n\tFilesStorageEvents,\n\tFilesStorageExchange,\n\tICopyFileDO,\n\tICopyFilesOfParentParams,\n\tIFileDO,\n\tIFileRecordParams,\n} from '@src/shared/infra/rabbitmq';\nimport { IFilesStorageClientConfig } from '../interfaces';\nimport { ErrorMapper } from '../mapper/error.mapper';\n\n@Injectable()\nexport class FilesStorageProducer {\n\tprivate readonly timeout = 0;\n\n\tconstructor(\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\tprivate readonly configService: ConfigService\n\t) {\n\t\tthis.logger.setContext(FilesStorageProducer.name);\n\t\tthis.timeout = this.configService.get('INCOMING_REQUEST_TIMEOUT_COPY_API');\n\t}\n\n\tasync copyFilesOfParent(payload: ICopyFilesOfParentParams): Promise {\n\t\tthis.logger.debug({ action: 'copyFilesOfParent:started', payload });\n\t\tconst response = await this.amqpConnection.request>(\n\t\t\tthis.createRequest(FilesStorageEvents.COPY_FILES_OF_PARENT, payload)\n\t\t);\n\n\t\tthis.logger.debug({ action: 'copyFilesOfParent:finished', payload });\n\n\t\tthis.checkError(response);\n\t\treturn response.message || [];\n\t}\n\n\tasync listFilesOfParent(payload: IFileRecordParams): Promise {\n\t\tthis.logger.debug({ action: 'listFilesOfParent:started', payload });\n\t\tconst response = await this.amqpConnection.request>(\n\t\t\tthis.createRequest(FilesStorageEvents.LIST_FILES_OF_PARENT, payload)\n\t\t);\n\n\t\tthis.logger.debug({ action: 'listFilesOfParent:finished', payload });\n\n\t\tthis.checkError(response);\n\t\treturn response.message || [];\n\t}\n\n\tasync deleteFilesOfParent(payload: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent:started', payload });\n\t\tconst response = await this.amqpConnection.request>(\n\t\t\tthis.createRequest(FilesStorageEvents.DELETE_FILES_OF_PARENT, payload)\n\t\t);\n\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent:finished', payload });\n\n\t\tthis.checkError(response);\n\t\treturn response.message || [];\n\t}\n\n\t// need to be fixed with https://ticketsystem.dbildungscloud.de/browse/BC-2984\n\t// mapRpcErrorResponseToDomainError should also removed with this ticket\n\tprivate checkError(response: RpcMessage) {\n\t\tconst { error } = response;\n\t\tif (error) {\n\t\t\tconst domainError = ErrorMapper.mapRpcErrorResponseToDomainError(error);\n\t\t\tthrow domainError;\n\t\t}\n\t}\n\n\tprivate createRequest(event: FilesStorageEvents, payload: IFileRecordParams | ICopyFilesOfParentParams | EntityId) {\n\t\treturn {\n\t\t\texchange: FilesStorageExchange,\n\t\t\troutingKey: event,\n\t\t\tpayload,\n\t\t\ttimeout: this.timeout,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageTestModule.html":{"url":"modules/FilesStorageTestModule.html","title":"module - FilesStorageTestModule","body":"\n \n\n\n\n\n Modules\n FilesStorageTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageTestModule\n\n\n\ncluster_FilesStorageTestModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFilesStorageTestModule\n\nFilesStorageTestModule\n\nFilesStorageTestModule -->\n\nAuthenticationModule->FilesStorageTestModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFilesStorageTestModule -->\n\nAuthorizationModule->FilesStorageTestModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFilesStorageTestModule -->\n\nCoreModule->FilesStorageTestModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nFilesStorageTestModule -->\n\nFilesStorageApiModule->FilesStorageTestModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageTestModule -->\n\nLoggerModule->FilesStorageTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nFilesStorageTestModule -->\n\nMongoMemoryDatabaseModule->FilesStorageTestModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nFilesStorageTestModule -->\n\nRabbitMQWrapperTestModule->FilesStorageTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage-test.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n MongoMemoryDatabaseModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/files-storage-test.module.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { DynamicModule, Module } from '@nestjs/common';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq/rabbitmq.module';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { FileRecord } from './entity';\nimport { FilesStorageApiModule } from './files-storage-api.module';\n\nconst imports = [\n\tFilesStorageApiModule,\n\tMongoMemoryDatabaseModule.forRoot({ entities: [...ALL_ENTITIES, FileRecord] }),\n\tRabbitMQWrapperTestModule,\n\tAuthorizationModule,\n\tAuthenticationModule,\n\tCoreModule,\n\tLoggerModule,\n];\nconst controllers = [];\nconst providers = [];\n@Module({\n\timports,\n\tcontrollers,\n\tproviders,\n})\nexport class FilesStorageTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: FilesStorageTestModule,\n\t\t\timports: [...imports, MongoMemoryDatabaseModule.forRoot({ ...options })],\n\t\t\tcontrollers,\n\t\t\tproviders,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilterImportUserParams.html":{"url":"classes/FilterImportUserParams.html","title":"class - FilterImportUserParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilterImportUserParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n classes\n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n Optional\n flagged\n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Optional\n loginName\n \n \n \n \n \n \n \n Optional\n match\n \n \n \n \n \n Optional\n role\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n classes\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsNotEmpty()@ApiPropertyOptional({type: String})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:54\n \n \n\n \n \n filter available classes for contains\n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n flagged\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsBoolean()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n loginName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n match\n \n \n \n \n \n \n Type : FilterMatchType[]\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({enum: FilterMatchType, isArray: true})@IsOptional()@IsEnum(FilterMatchType, {each: true})@SingleValueToArrayTransformer()@IsArray()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n role\n \n \n \n \n \n \n Type : FilterRoleType\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(FilterRoleType)@ApiPropertyOptional({enum: FilterRoleType})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:59\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { SingleValueToArrayTransformer } from '@shared/controller';\nimport { IsArray, IsBoolean, IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';\n\nexport enum FilterMatchType {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n\tNONE = 'none',\n}\nexport enum FilterRoleType {\n\tSTUDENT = 'student',\n\tTEACHER = 'teacher',\n\tADMIN = 'admin',\n}\n\nexport class FilterImportUserParams {\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tfirstName?: string;\n\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tlastName?: string;\n\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tloginName?: string;\n\n\t@ApiPropertyOptional({ enum: FilterMatchType, isArray: true })\n\t@IsOptional()\n\t@IsEnum(FilterMatchType, { each: true })\n\t@SingleValueToArrayTransformer()\n\t@IsArray()\n\tmatch?: FilterMatchType[];\n\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsBoolean()\n\tflagged?: boolean;\n\n\t/**\n\t * filter available classes for contains\n\t */\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiPropertyOptional({ type: String })\n\tclasses?: string;\n\n\t@IsOptional()\n\t@IsEnum(FilterRoleType)\n\t@ApiPropertyOptional({ enum: FilterRoleType })\n\trole?: FilterRoleType;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilterNewsParams.html":{"url":"classes/FilterNewsParams.html","title":"class - FilterNewsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilterNewsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/filter-news.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n targetId\n \n \n \n \n \n \n Optional\n targetModel\n \n \n \n \n \n \n Optional\n unpublished\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n targetId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()@ApiPropertyOptional({pattern: '[a-f0-9]{24}', description: 'Specific target id to which the news are related (works only together with targetModel)'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/filter-news.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n targetModel\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsEnum(NewsTargetModel)@ApiPropertyOptional({enum: NewsTargetModel, description: 'Target model to which the news are related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/filter-news.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n unpublished\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()@StringToBoolean()@ApiPropertyOptional({description: 'Flag that filters if the news should be published or not'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/filter-news.params.ts:30\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsBoolean, IsEnum, IsMongoId, IsOptional, IsString } from 'class-validator';\nimport { StringToBoolean } from '@shared/controller/transformer';\nimport { NewsTargetModel } from '@shared/domain';\n\nexport class FilterNewsParams {\n\t@IsOptional()\n\t@IsString()\n\t@IsEnum(NewsTargetModel)\n\t@ApiPropertyOptional({\n\t\tenum: NewsTargetModel,\n\t\tdescription: 'Target model to which the news are related',\n\t})\n\ttargetModel?: string;\n\n\t@IsOptional()\n\t@IsMongoId()\n\t@ApiPropertyOptional({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Specific target id to which the news are related (works only together with targetModel)',\n\t})\n\ttargetId?: string;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Flag that filters if the news should be published or not',\n\t})\n\tunpublished?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilterUserParams.html":{"url":"classes/FilterUserParams.html","title":"class - FilterUserParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilterUserParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/filter-user.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-user.params.ts:12\n \n \n\n \n \n filter firstname or lastname for given value\n\n \n \n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsNotEmpty, IsOptional, IsString } from 'class-validator';\n\nexport class FilterUserParams {\n\t/**\n\t * filter firstname or lastname for given value\n\t */\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tname?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ForbiddenLoggableException.html":{"url":"classes/ForbiddenLoggableException.html","title":"class - ForbiddenLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ForbiddenLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/errors/forbidden.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n ForbiddenException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, entityName: string, context: AuthorizationContext)\n \n \n \n \n Defined in apps/server/src/modules/authorization/errors/forbidden.loggable-exception.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n entityName\n \n \n string\n \n \n \n No\n \n \n \n \n context\n \n \n AuthorizationContext\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/errors/forbidden.loggable-exception.ts:16\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ForbiddenException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Loggable } from '@src/core/logger/interfaces';\nimport { ErrorLogMessage } from '@src/core/logger/types';\nimport { AuthorizationContext } from '../types';\n\nexport class ForbiddenLoggableException extends ForbiddenException implements Loggable {\n\tconstructor(\n\t\tprivate readonly userId: EntityId,\n\t\tprivate readonly entityName: string,\n\t\tprivate readonly context: AuthorizationContext\n\t) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): ErrorLogMessage {\n\t\tconst message: ErrorLogMessage = {\n\t\t\ttype: 'FORBIDDEN_EXCEPTION',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\tentityName: this.entityName,\n\t\t\t\taction: this.context.action,\n\t\t\t\trequiredPermissions: this.context.requiredPermissions.join(','),\n\t\t\t},\n\t\t};\n\n\t\treturn message;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ForbiddenOperationError.html":{"url":"classes/ForbiddenOperationError.html","title":"class - ForbiddenOperationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ForbiddenOperationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/forbidden-operation.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message?: string, details?: Record)\n \n \n \n \n Defined in apps/server/src/shared/common/error/forbidden-operation.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n Yes\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class ForbiddenOperationError extends BusinessError {\n\tconstructor(message?: string, details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'FORBIDDEN_OPERATION',\n\t\t\t\ttitle: 'Forbidden Operation Error',\n\t\t\t\tdefaultMessage: message ?? 'A forbidden operation error occurred.',\n\t\t\t},\n\t\t\tHttpStatus.FORBIDDEN,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/FwuLearningContentsController.html":{"url":"controllers/FwuLearningContentsController.html","title":"controller - FwuLearningContentsController","body":"\n \n\n\n\n\n\n\n Controllers\n FwuLearningContentsController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/controller/fwu-learning-contents.controller.ts\n \n\n \n Prefix\n \n \n fwu\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n get\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n get\n \n \n \n \n \n \n \n get(req: Request, res: Response, params: GetFwuLearningContentParams)\n \n \n\n \n \n Decorators : \n \n @Get('*/:fwuLearningContent')\n \n \n\n \n \n Defined in apps/server/src/modules/fwu-learning-contents/controller/fwu-learning-contents.controller.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n req\n \n Request\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n params\n \n GetFwuLearningContentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport {\n\tController,\n\tGet,\n\tHttpStatus,\n\tInternalServerErrorException,\n\tParam,\n\tReq,\n\tRes,\n\tStreamableFile,\n} from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { Authenticate } from '@src/modules/authentication/decorator/auth.decorator';\nimport { Request, Response } from 'express';\nimport { FwuLearningContentsUc } from '../uc/fwu-learning-contents.uc';\nimport { GetFwuLearningContentParams } from './dto/fwu-learning-contents.params';\n\n@ApiTags('fwu')\n@Authenticate('jwt')\n@Controller('fwu')\nexport class FwuLearningContentsController {\n\tconstructor(private readonly fwuLearningContentsUc: FwuLearningContentsUc) {}\n\n\t@Get('*/:fwuLearningContent')\n\tasync get(\n\t\t@Req() req: Request,\n\t\t@Res({ passthrough: true }) res: Response,\n\t\t@Param() params: GetFwuLearningContentParams\n\t): Promise {\n\t\tif (!Configuration.get('FEATURE_FWU_CONTENT_ENABLED')) {\n\t\t\tthrow new InternalServerErrorException('Feature FWU content is not enabled.');\n\t\t}\n\t\tconst bytesRange = req.header('Range');\n\t\tconst path = `${req.params[0]}/${params.fwuLearningContent}`;\n\t\tconst response = await this.fwuLearningContentsUc.get(path, bytesRange);\n\n\t\tif (bytesRange) {\n\t\t\tres.set({\n\t\t\t\t'Accept-Ranges': 'bytes',\n\t\t\t\t'Content-Range': response.contentRange,\n\t\t\t});\n\n\t\t\tres.status(HttpStatus.PARTIAL_CONTENT);\n\t\t} else {\n\t\t\tres.status(HttpStatus.OK);\n\t\t}\n\n\t\treq.on('close', () => response.data.destroy());\n\n\t\treturn new StreamableFile(response.data, {\n\t\t\ttype: response.contentType,\n\t\t\tdisposition: `inline; filename=\"${encodeURI(params.fwuLearningContent)}\"`,\n\t\t\tlength: response.contentLength,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FwuLearningContentsModule.html":{"url":"modules/FwuLearningContentsModule.html","title":"module - FwuLearningContentsModule","body":"\n \n\n\n\n\n Modules\n FwuLearningContentsModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FwuLearningContentsModule\n\n\n\ncluster_FwuLearningContentsModule_providers\n\n\n\ncluster_FwuLearningContentsModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFwuLearningContentsModule\n\nFwuLearningContentsModule\n\nFwuLearningContentsModule -->\n\nAuthenticationModule->FwuLearningContentsModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFwuLearningContentsModule -->\n\nAuthorizationModule->FwuLearningContentsModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFwuLearningContentsModule -->\n\nCoreModule->FwuLearningContentsModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFwuLearningContentsModule -->\n\nLoggerModule->FwuLearningContentsModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nFwuLearningContentsModule -->\n\nRabbitMQWrapperModule->FwuLearningContentsModule\n\n\n\n\n\nS3ClientModule\n\nS3ClientModule\n\nFwuLearningContentsModule -->\n\nS3ClientModule->FwuLearningContentsModule\n\n\n\n\n\nFwuLearningContentsUc\n\nFwuLearningContentsUc\n\nFwuLearningContentsModule -->\n\nFwuLearningContentsUc->FwuLearningContentsModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/fwu-learning-contents.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FwuLearningContentsUc\n \n \n \n \n Controllers\n \n \n FwuLearningContentsController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperModule\n \n \n S3ClientModule\n \n \n \n \n \n\n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { HttpModule } from '@nestjs/axios';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { Account, Role, SchoolEntity, SchoolYear, System, User } from '@shared/domain';\nimport { RabbitMQWrapperModule } from '@shared/infra/rabbitmq';\nimport { S3ClientModule } from '@shared/infra/s3-client';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME, createConfigModuleOptions } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { FwuLearningContentsController } from './controller/fwu-learning-contents.controller';\nimport { config, s3Config } from './fwu-learning-contents.config';\nimport { FwuLearningContentsUc } from './uc/fwu-learning-contents.uc';\n\nconst defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\n@Module({\n\timports: [\n\t\tAuthorizationModule,\n\t\tAuthenticationModule,\n\t\tCoreModule,\n\t\tLoggerModule,\n\t\tHttpModule,\n\t\tRabbitMQWrapperModule,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\ttype: 'mongo',\n\t\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: [User, Account, Role, SchoolEntity, System, SchoolYear],\n\n\t\t\t// debug: true, // use it for locally debugging of querys\n\t\t}),\n\t\tConfigModule.forRoot(createConfigModuleOptions(config)),\n\t\tS3ClientModule.register([s3Config]),\n\t],\n\tcontrollers: [FwuLearningContentsController],\n\tproviders: [FwuLearningContentsUc],\n})\nexport class FwuLearningContentsModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FwuLearningContentsTestModule.html":{"url":"modules/FwuLearningContentsTestModule.html","title":"module - FwuLearningContentsTestModule","body":"\n \n\n\n\n\n Modules\n FwuLearningContentsTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FwuLearningContentsTestModule\n\n\n\ncluster_FwuLearningContentsTestModule_providers\n\n\n\ncluster_FwuLearningContentsTestModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFwuLearningContentsTestModule\n\nFwuLearningContentsTestModule\n\nFwuLearningContentsTestModule -->\n\nAuthenticationModule->FwuLearningContentsTestModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFwuLearningContentsTestModule -->\n\nAuthorizationModule->FwuLearningContentsTestModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFwuLearningContentsTestModule -->\n\nCoreModule->FwuLearningContentsTestModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFwuLearningContentsTestModule -->\n\nLoggerModule->FwuLearningContentsTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nFwuLearningContentsTestModule -->\n\nMongoMemoryDatabaseModule->FwuLearningContentsTestModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nFwuLearningContentsTestModule -->\n\nRabbitMQWrapperTestModule->FwuLearningContentsTestModule\n\n\n\n\n\nS3ClientModule\n\nS3ClientModule\n\nFwuLearningContentsTestModule -->\n\nS3ClientModule->FwuLearningContentsTestModule\n\n\n\n\n\nFwuLearningContentsUc\n\nFwuLearningContentsUc\n\nFwuLearningContentsTestModule -->\n\nFwuLearningContentsUc->FwuLearningContentsTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/fwu-learning-contents-test.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FwuLearningContentsUc\n \n \n \n \n Controllers\n \n \n FwuLearningContentsController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n LoggerModule\n \n \n MongoMemoryDatabaseModule\n \n \n RabbitMQWrapperTestModule\n \n \n S3ClientModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/fwu-learning-contents/fwu-learning-contents-test.module.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { DynamicModule, Module } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { Account, Role, SchoolEntity, SchoolYear, System, User } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq';\nimport { S3ClientModule } from '@shared/infra/s3-client';\nimport { createConfigModuleOptions } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { FwuLearningContentsController } from './controller/fwu-learning-contents.controller';\nimport { config, s3Config } from './fwu-learning-contents.config';\nimport { FwuLearningContentsUc } from './uc/fwu-learning-contents.uc';\n\nconst imports = [\n\tMongoMemoryDatabaseModule.forRoot({ entities: [User, Account, Role, SchoolEntity, System, SchoolYear] }),\n\tAuthorizationModule,\n\tAuthenticationModule,\n\tConfigModule.forRoot(createConfigModuleOptions(config)),\n\tHttpModule,\n\tCoreModule,\n\tLoggerModule,\n\tRabbitMQWrapperTestModule,\n\tS3ClientModule.register([s3Config]),\n];\nconst controllers = [FwuLearningContentsController];\nconst providers = [FwuLearningContentsUc];\n@Module({\n\timports,\n\tcontrollers,\n\tproviders,\n})\nexport class FwuLearningContentsTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: FwuLearningContentsTestModule,\n\t\t\timports: [...imports, MongoMemoryDatabaseModule.forRoot({ ...options })],\n\t\t\tcontrollers,\n\t\t\tproviders,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FwuLearningContentsUc.html":{"url":"injectables/FwuLearningContentsUc.html","title":"injectable - FwuLearningContentsUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FwuLearningContentsUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/uc/fwu-learning-contents.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n get\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, storageClient: S3ClientAdapter)\n \n \n \n \n Defined in apps/server/src/modules/fwu-learning-contents/uc/fwu-learning-contents.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n storageClient\n \n \n S3ClientAdapter\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n get\n \n \n \n \n \n \n \n get(path: string, bytesRange?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/fwu-learning-contents/uc/fwu-learning-contents.uc.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n bytesRange\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable } from '@nestjs/common';\nimport { S3ClientAdapter } from '@shared/infra/s3-client';\nimport { LegacyLogger } from '@src/core/logger';\nimport { FWU_CONTENT_S3_CONNECTION } from '../fwu-learning-contents.config';\n\n@Injectable()\nexport class FwuLearningContentsUc {\n\tconstructor(\n\t\tprivate logger: LegacyLogger,\n\t\t@Inject(FWU_CONTENT_S3_CONNECTION) private readonly storageClient: S3ClientAdapter\n\t) {\n\t\tthis.logger.setContext(FwuLearningContentsUc.name);\n\t}\n\n\tasync get(path: string, bytesRange?: string) {\n\t\tconst response = await this.storageClient.get(path, bytesRange);\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GetFile.html":{"url":"interfaces/GetFile.html","title":"interface - GetFile","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GetFile\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/interface/index.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n contentLength\n \n \n \n Optional\n \n contentRange\n \n \n \n Optional\n \n contentType\n \n \n \n \n data\n \n \n \n Optional\n \n etag\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contentLength\n \n \n \n \n \n \n \n \n contentLength: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contentRange\n \n \n \n \n \n \n \n \n contentRange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contentType\n \n \n \n \n \n \n \n \n contentType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n data: Readable\n\n \n \n\n\n \n \n Type : Readable\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n etag\n \n \n \n \n \n \n \n \n etag: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\n\nexport interface S3Config {\n\tconnectionName: string;\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\nexport interface GetFile {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n}\n\nexport interface CopyFiles {\n\tsourcePath: string;\n\ttargetPath: string;\n}\n\nexport interface File {\n\tdata: Readable;\n\tname: string;\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GetFileResponse.html":{"url":"interfaces/GetFileResponse.html","title":"interface - GetFileResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GetFileResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/interface/interfaces.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n contentLength\n \n \n \n Optional\n \n contentRange\n \n \n \n Optional\n \n contentType\n \n \n \n \n data\n \n \n \n Optional\n \n etag\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contentLength\n \n \n \n \n \n \n \n \n contentLength: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contentRange\n \n \n \n \n \n \n \n \n contentRange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contentType\n \n \n \n \n \n \n \n \n contentType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n data: Readable\n\n \n \n\n\n \n \n Type : Readable\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n etag\n \n \n \n \n \n \n \n \n etag: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\nimport type { DownloadFileParams, PreviewParams } from '../controller/dto';\nimport { FileRecord } from '../entity';\n\nexport interface GetFileResponse {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n\tname: string;\n}\n\nexport interface PreviewFileParams {\n\tfileRecord: FileRecord;\n\tdownloadParams: DownloadFileParams;\n\tpreviewParams: PreviewParams;\n\thash: string;\n\tfilePath: string;\n\tbytesRange?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GetFwuLearningContentParams.html":{"url":"classes/GetFwuLearningContentParams.html","title":"class - GetFwuLearningContentParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GetFwuLearningContentParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/controller/dto/fwu-learning-contents.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n fwuLearningContent\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n fwuLearningContent\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@Matches('([A-Za-z]|[0-9])+(.html|.css|.mp4|.pdf|.doc|.png|.jpg|.gif|.min.js|.js|.ico|.txt|.min.css|.ttf|.svg|.woff|.ui.l|.mf.l)')@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/fwu-learning-contents/controller/dto/fwu-learning-contents.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsNotEmpty, IsString, Matches } from 'class-validator';\n\nexport class GetFwuLearningContentParams {\n\t@ApiProperty()\n\t@Matches(\n\t\t'([A-Za-z]|[0-9])+(.html|.css|.mp4|.pdf|.doc|.png|.jpg|.gif|.min.js|.js|.ico|.txt|.min.css|.ttf|.svg|.woff|.ui.l|.mf.l)'\n\t)\n\t@IsString()\n\t@IsNotEmpty()\n\tfwuLearningContent!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GlobalConstants.html":{"url":"interfaces/GlobalConstants.html","title":"interface - GlobalConstants","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GlobalConstants\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/config/database.config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n DB_PASSWORD\n \n \n \n \n DB_URL\n \n \n \n Optional\n \n DB_USERNAME\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n DB_PASSWORD\n \n \n \n \n \n \n \n \n DB_PASSWORD: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n DB_URL\n \n \n \n \n \n \n \n \n DB_URL: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n DB_USERNAME\n \n \n \n \n \n \n \n \n DB_USERNAME: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import globals = require('../../../../config/globals');\n\ninterface GlobalConstants {\n\tDB_URL: string;\n\tDB_PASSWORD?: string;\n\tDB_USERNAME?: string;\n}\n\nconst usedGlobals: GlobalConstants = globals;\n\n/** Database URL */\nexport const { DB_URL, DB_PASSWORD, DB_USERNAME } = usedGlobals;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GlobalErrorFilter.html":{"url":"classes/GlobalErrorFilter.html","title":"class - GlobalErrorFilter","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GlobalErrorFilter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/filter/global-error.filter.ts\n \n\n\n\n\n \n Implements\n \n \n ExceptionFilter\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n catch\n \n \n Private\n createErrorLoggable\n \n \n Private\n createErrorResponse\n \n \n Private\n createErrorResponseForBusinessError\n \n \n Private\n createErrorResponseForFeathersError\n \n \n Private\n createErrorResponseForNestHttpException\n \n \n Private\n createErrorResponseForUnknownError\n \n \n Private\n sendHttpResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: ErrorLogger)\n \n \n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n ErrorLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n catch\n \n \n \n \n \n \ncatch(error: T, host: ArgumentsHost)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n T\n \n\n \n No\n \n\n\n \n \n host\n \n ArgumentsHost\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void | RpcMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorLoggable\n \n \n \n \n \n \n \n createErrorLoggable(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Loggable\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponse\n \n \n \n \n \n \n \n createErrorResponse(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ErrorResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponseForBusinessError\n \n \n \n \n \n \n \n createErrorResponseForBusinessError(error: BusinessError)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n BusinessError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ErrorResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponseForFeathersError\n \n \n \n \n \n \n \n createErrorResponseForFeathersError(error: FeathersError)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n FeathersError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponseForNestHttpException\n \n \n \n \n \n \n \n createErrorResponseForNestHttpException(exception: HttpException)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:90\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n exception\n \n HttpException\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ErrorResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponseForUnknownError\n \n \n \n \n \n \n \n createErrorResponseForUnknownError()\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:100\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n sendHttpResponse\n \n \n \n \n \n \n \n sendHttpResponse(error: T, host: ArgumentsHost)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n T\n \n\n \n No\n \n\n\n \n \n host\n \n ArgumentsHost\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ArgumentsHost, Catch, ExceptionFilter, HttpException, InternalServerErrorException } from '@nestjs/common';\nimport { ApiValidationError, BusinessError } from '@shared/common';\nimport { IError, RpcMessage } from '@shared/infra/rabbitmq/rpc-message';\nimport { ErrorLogger, Loggable } from '@src/core/logger';\nimport { LoggingUtils } from '@src/core/logger/logging.utils';\nimport { Response } from 'express';\nimport _ from 'lodash';\nimport util from 'util';\nimport { ApiValidationErrorResponse, ErrorResponse } from '../dto';\nimport { FeathersError } from '../interface';\nimport { ErrorLoggable } from '../loggable/error.loggable';\nimport { ErrorUtils } from '../utils';\n\n@Catch()\nexport class GlobalErrorFilter implements ExceptionFilter {\n\tconstructor(private readonly logger: ErrorLogger) {}\n\n\t// eslint-disable-next-line consistent-return\n\tcatch(error: T, host: ArgumentsHost): void | RpcMessage {\n\t\tconst loggable = this.createErrorLoggable(error);\n\t\tthis.logger.error(loggable);\n\n\t\tconst contextType = host.getType();\n\n\t\tif (contextType === 'http') {\n\t\t\tthis.sendHttpResponse(error, host);\n\t\t} else if (contextType === 'rmq') {\n\t\t\treturn { message: undefined, error };\n\t\t}\n\t}\n\n\tprivate createErrorLoggable(error: unknown): Loggable {\n\t\tlet loggable: Loggable;\n\n\t\tif (LoggingUtils.isInstanceOfLoggable(error)) {\n\t\t\tloggable = error;\n\t\t} else if (error instanceof Error) {\n\t\t\tloggable = new ErrorLoggable(error);\n\t\t} else {\n\t\t\tconst unknownError = new Error(util.inspect(error));\n\t\t\tloggable = new ErrorLoggable(unknownError);\n\t\t}\n\n\t\treturn loggable;\n\t}\n\n\tprivate sendHttpResponse(error: T, host: ArgumentsHost): void {\n\t\tconst errorResponse = this.createErrorResponse(error);\n\t\tconst httpArgumentHost = host.switchToHttp();\n\t\tconst response = httpArgumentHost.getResponse();\n\t\tresponse.status(errorResponse.code).json(errorResponse);\n\t}\n\n\tprivate createErrorResponse(error: unknown): ErrorResponse {\n\t\tlet response: ErrorResponse;\n\n\t\tif (ErrorUtils.isFeathersError(error)) {\n\t\t\tresponse = this.createErrorResponseForFeathersError(error);\n\t\t} else if (ErrorUtils.isBusinessError(error)) {\n\t\t\tresponse = this.createErrorResponseForBusinessError(error);\n\t\t} else if (ErrorUtils.isNestHttpException(error)) {\n\t\t\tresponse = this.createErrorResponseForNestHttpException(error);\n\t\t} else {\n\t\t\tresponse = this.createErrorResponseForUnknownError();\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tprivate createErrorResponseForFeathersError(error: FeathersError) {\n\t\tconst { code, className, name, message } = error;\n\t\tconst type = _.snakeCase(className).toUpperCase();\n\t\tconst title = _.startCase(name);\n\n\t\treturn new ErrorResponse(type, title, message, code);\n\t}\n\n\tprivate createErrorResponseForBusinessError(error: BusinessError): ErrorResponse {\n\t\tlet response: ErrorResponse;\n\n\t\tif (error instanceof ApiValidationError) {\n\t\t\tresponse = new ApiValidationErrorResponse(error);\n\t\t} else {\n\t\t\tresponse = error.getResponse();\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tprivate createErrorResponseForNestHttpException(exception: HttpException): ErrorResponse {\n\t\tconst code = exception.getStatus();\n\t\tconst msg = exception.message || 'Some error occurred';\n\t\tconst exceptionName = exception.constructor.name.replace('Loggable', '').replace('Exception', '');\n\t\tconst type = _.snakeCase(exceptionName).toUpperCase();\n\t\tconst title = _.startCase(exceptionName);\n\n\t\treturn new ErrorResponse(type, title, msg, code);\n\t}\n\n\tprivate createErrorResponseForUnknownError(): ErrorResponse {\n\t\tconst error = new InternalServerErrorException();\n\t\tconst response = this.createErrorResponseForNestHttpException(error);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GlobalValidationPipe.html":{"url":"classes/GlobalValidationPipe.html","title":"class - GlobalValidationPipe","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GlobalValidationPipe\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/validation/pipe/global-validation.pipe.ts\n \n\n\n \n Description\n \n \n \nGlobal Pipe setup\n\nValidation of DTOs will base on type-checking\nwhich is enabled by default. To you might use\nthe class-validator decorators to extend\nvalidation.\n\n \n\n \n Extends\n \n \n ValidationPipe\n \n\n\n\n\n \n Constructor\n \n \n \n \nconstructor()\n \n \n \n \n Defined in apps/server/src/core/validation/pipe/global-validation.pipe.ts:12\n \n \n\n \n \n\n\n\n\n\n\n\n\n\n \n\n\n \n import { ValidationError, ValidationPipe } from '@nestjs/common';\nimport { ApiValidationError } from '@shared/common';\n\n/** *********************************************\n * Global Pipe setup\n * **********************************************\n * Validation of DTOs will base on type-checking\n * which is enabled by default. To you might use\n * the class-validator decorators to extend\n * validation.\n */\nexport class GlobalValidationPipe extends ValidationPipe {\n\tconstructor() {\n\t\tsuper({\n\t\t\t// enable DTO instance creation for incoming data\n\t\t\ttransform: true,\n\t\t\ttransformOptions: {\n\t\t\t\t// enable type coersion, requires transform:true\n\t\t\t\tenableImplicitConversion: true,\n\t\t\t},\n\t\t\twhitelist: true, // only pass valid @ApiProperty-decorated DTO properties, remove others\n\t\t\tforbidNonWhitelisted: false, // additional params are just skipped (required when extracting multiple DTO from single query)\n\t\t\tforbidUnknownValues: true,\n\t\t\texceptionFactory: (errors: ValidationError[]) => new ApiValidationError(errors),\n\t\t\tvalidationError: {\n\t\t\t\t// make sure target (DTO) is set on validation error\n\t\t\t\t// we need this to be able to get DTO metadata for checking if a value has to be the obfuscated on output\n\t\t\t\t// see e.g. ErrorLoggable\n\t\t\t\ttarget: true,\n\t\t\t\tvalue: true,\n\t\t\t},\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GridElement.html":{"url":"classes/GridElement.html","title":"class - GridElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GridElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.entity.ts\n \n\n\n\n\n \n Implements\n \n \n IGridElement\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n id\n \n \n references\n \n \n Private\n sortReferences\n \n \n Optional\n title\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n addReferences\n \n \n Static\n FromGroup\n \n \n Static\n FromPersistedGroup\n \n \n Static\n FromPersistedReference\n \n \n Static\n FromSingleReference\n \n \n getContent\n \n \n getId\n \n \n getReferences\n \n \n hasId\n \n \n isGroup\n \n \n removeReference\n \n \n removeReferenceByIndex\n \n \n setGroupName\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Private\n constructor(props: literal type)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:52\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n literal type\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n references\n \n \n \n \n \n \n Type : ILearnroom[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:76\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n sortReferences\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:40\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n addReferences\n \n \n \n \n \n \naddReferences(anotherReference: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:108\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n anotherReference\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n FromGroup\n \n \n \n \n \n \n \n FromGroup(title: string, references: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n references\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n FromPersistedGroup\n \n \n \n \n \n \n \n FromPersistedGroup(id: EntityId, title: string | undefined, group: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n group\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n FromPersistedReference\n \n \n \n \n \n \n \n FromPersistedReference(id: EntityId, reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n FromSingleReference\n \n \n \n \n \n \n \n FromSingleReference(reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getContent\n \n \n \n \n \n \ngetContent()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:117\n \n \n\n\n \n \n\n \n Returns : GridElementContent\n\n \n \n \n \n \n \n \n \n \n \n \n getId\n \n \n \n \n \n \ngetId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:82\n \n \n\n\n \n \n\n \n Returns : EntityId | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n getReferences\n \n \n \n \n \n \ngetReferences()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:86\n \n \n\n\n \n \n\n \n Returns : ILearnroom[]\n\n \n \n \n \n \n \n \n \n \n \n \n hasId\n \n \n \n \n \n \nhasId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:78\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n isGroup\n \n \n \n \n \n \nisGroup()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:138\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n removeReference\n \n \n \n \n \n \nremoveReference(reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeReferenceByIndex\n \n \n \n \n \n \nremoveReferenceByIndex(index: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:90\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n index\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setGroupName\n \n \n \n \n \n \nsetGroupName(newGroupName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newGroupName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException, BadRequestException } from '@nestjs/common';\nimport { EntityId, LearnroomMetadata } from '@shared/domain/types';\nimport { ILearnroom } from '@shared/domain/interface';\n\nconst defaultColumns = 4;\n\nexport interface IGridElement {\n\thasId(): boolean;\n\n\tgetId: () => EntityId | undefined;\n\n\tgetContent: () => GridElementContent;\n\n\tisGroup(): boolean;\n\n\tremoveReferenceByIndex(index: number): void;\n\n\tremoveReference(reference: ILearnroom): void;\n\n\tgetReferences(): ILearnroom[];\n\n\taddReferences(anotherReference: ILearnroom[]): void;\n\n\tsetGroupName(newGroupName: string): void;\n}\n\nexport type GridElementContent = {\n\treferencedId?: string;\n\ttitle?: string;\n\tshortTitle: string;\n\tdisplayColor: string;\n\tgroup?: LearnroomMetadata[];\n\tgroupId?: string;\n\tcopyingSince?: Date;\n};\n\nexport class GridElement implements IGridElement {\n\tid?: EntityId;\n\n\ttitle?: string;\n\n\tprivate sortReferences = (a: ILearnroom, b: ILearnroom) => {\n\t\tconst titleA = a.getMetadata().title;\n\t\tconst titleB = b.getMetadata().title;\n\t\tif (titleA titleB) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t};\n\n\tprivate constructor(props: { id?: EntityId; title?: string; references: ILearnroom[] }) {\n\t\tif (props.id) this.id = props.id;\n\t\tif (props.title) this.title = props.title;\n\t\tthis.references = props.references.sort(this.sortReferences);\n\t}\n\n\tstatic FromPersistedReference(id: EntityId, reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ id, references: [reference] });\n\t}\n\n\tstatic FromPersistedGroup(id: EntityId, title: string | undefined, group: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ id, title, references: group });\n\t}\n\n\tstatic FromSingleReference(reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ references: [reference] });\n\t}\n\n\tstatic FromGroup(title: string, references: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ title, references });\n\t}\n\n\treferences: ILearnroom[];\n\n\thasId(): boolean {\n\t\treturn !!this.id;\n\t}\n\n\tgetId(): EntityId | undefined {\n\t\treturn this.id;\n\t}\n\n\tgetReferences(): ILearnroom[] {\n\t\treturn this.references;\n\t}\n\n\tremoveReferenceByIndex(index: number): void {\n\t\tif (!this.isGroup()) {\n\t\t\tthrow new BadRequestException('this element is not a group.');\n\t\t}\n\t\tif (index > 0 && this.references.length reference.getMetadata());\n\t\tconst checkShortTitle = this.title ? this.title.substring(0, 2) : '';\n\t\tconst groupMetadata = {\n\t\t\tgroupId: this.getId(),\n\t\t\ttitle: this.title,\n\t\t\tshortTitle: checkShortTitle,\n\t\t\tdisplayColor: 'exampleColor',\n\t\t\tgroup: groupData,\n\t\t};\n\t\treturn groupMetadata;\n\t}\n\n\tisGroup(): boolean {\n\t\treturn this.references.length > 1;\n\t}\n\n\tsetGroupName(newGroupName: string): void {\n\t\tif (!this.isGroup()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.title = newGroupName;\n\t}\n}\n\nexport type GridPosition = { x: number; y: number };\nexport type GridPositionWithGroupIndex = { x: number; y: number; groupIndex?: number };\n\nexport type GridElementWithPosition = {\n\tgridElement: IGridElement;\n\tpos: GridPosition;\n};\n\nexport type DashboardProps = { colums?: number; grid: GridElementWithPosition[]; userId: EntityId };\n\nexport class DashboardEntity {\n\tid: EntityId;\n\n\tcolumns: number;\n\n\tgrid: Map;\n\n\tuserId: EntityId;\n\n\tprivate gridIndexFromPosition(pos: GridPosition): number {\n\t\tif (pos.x > this.columns) {\n\t\t\tthrow new BadRequestException('dashboard element position is outside the grid.');\n\t\t}\n\t\treturn this.columns * pos.y + pos.x;\n\t}\n\n\tprivate positionFromGridIndex(index: number): GridPosition {\n\t\tconst y = Math.floor(index / this.columns);\n\t\tconst x = index % this.columns;\n\t\treturn { x, y };\n\t}\n\n\tconstructor(id: string, props: DashboardProps) {\n\t\tthis.columns = props.colums || defaultColumns;\n\t\tthis.grid = new Map();\n\t\tprops.grid.forEach((element) => {\n\t\t\tthis.grid.set(this.gridIndexFromPosition(element.pos), element.gridElement);\n\t\t});\n\t\tthis.id = id;\n\t\tthis.userId = props.userId;\n\t\tObject.assign(this, {});\n\t}\n\n\tgetId(): string {\n\t\treturn this.id;\n\t}\n\n\tgetUserId(): EntityId {\n\t\treturn this.userId;\n\t}\n\n\tgetGrid(): GridElementWithPosition[] {\n\t\tconst result = [...this.grid.keys()].map((key) => {\n\t\t\tconst position = this.positionFromGridIndex(key);\n\t\t\tconst value = this.grid.get(key) as IGridElement;\n\t\t\treturn {\n\t\t\t\tpos: position,\n\t\t\t\tgridElement: value,\n\t\t\t};\n\t\t});\n\t\treturn result;\n\t}\n\n\tgetElement(position: GridPosition): IGridElement {\n\t\tconst element = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (!element) {\n\t\t\tthrow new NotFoundException('no element at grid position');\n\t\t}\n\t\treturn element;\n\t}\n\n\tmoveElement(from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex): GridElementWithPosition {\n\t\tconst elementToMove = this.getReferencesFromPosition(from);\n\t\tconst resultElement = this.mergeElementIntoPosition(elementToMove, to);\n\t\tthis.removeFromPosition(from);\n\t\treturn {\n\t\t\tpos: to,\n\t\t\tgridElement: resultElement,\n\t\t};\n\t}\n\n\tsetLearnRooms(rooms: ILearnroom[]): void {\n\t\tthis.removeRoomsNotInList(rooms);\n\t\tconst newRooms = this.determineNewRoomsIn(rooms);\n\n\t\tnewRooms.forEach((room) => {\n\t\t\tthis.addRoom(room);\n\t\t});\n\t}\n\n\tprivate removeRoomsNotInList(roomList: ILearnroom[]): void {\n\t\t[...this.grid.keys()].forEach((key) => {\n\t\t\tconst element = this.grid.get(key) as IGridElement;\n\t\t\tconst currentRooms = element.getReferences();\n\t\t\tcurrentRooms.forEach((room) => {\n\t\t\t\tif (!roomList.includes(room)) {\n\t\t\t\t\telement.removeReference(room);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (element.getReferences().length === 0) {\n\t\t\t\tthis.grid.delete(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate determineNewRoomsIn(rooms: ILearnroom[]): ILearnroom[] {\n\t\tconst result: ILearnroom[] = [];\n\t\tconst existingRooms = this.allRooms();\n\t\trooms.forEach((room) => {\n\t\t\tif (!existingRooms.includes(room)) {\n\t\t\t\tresult.push(room);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tprivate allRooms(): ILearnroom[] {\n\t\tconst elements = [...this.grid.values()];\n\t\tconst references = elements.map((el) => el.getReferences()).flat();\n\t\treturn references;\n\t}\n\n\tprivate addRoom(room: ILearnroom): void {\n\t\tconst index = this.getFirstOpenIndex();\n\t\tconst newElement = GridElement.FromSingleReference(room);\n\t\tthis.grid.set(index, newElement);\n\t}\n\n\tprivate getFirstOpenIndex(): number {\n\t\tlet i = 0;\n\t\twhile (this.grid.get(i) !== undefined) {\n\t\t\ti += 1;\n\t\t}\n\t\treturn i;\n\t}\n\n\tprivate getReferencesFromPosition(position: GridPositionWithGroupIndex): IGridElement {\n\t\tconst elementToMove = this.getElement(position);\n\n\t\tif (typeof position.groupIndex === 'number' && elementToMove.isGroup()) {\n\t\t\tconst references = elementToMove.getReferences();\n\t\t\tconst referenceForIndex = references[position.groupIndex];\n\t\t\treturn GridElement.FromSingleReference(referenceForIndex);\n\t\t}\n\n\t\treturn elementToMove;\n\t}\n\n\tprivate removeFromPosition(position: GridPositionWithGroupIndex): void {\n\t\tconst element = this.getElement(position);\n\t\tif (typeof position.groupIndex === 'number') {\n\t\t\telement.removeReferenceByIndex(position.groupIndex);\n\t\t} else {\n\t\t\tthis.grid.delete(this.gridIndexFromPosition(position));\n\t\t}\n\t}\n\n\tprivate mergeElementIntoPosition(element: IGridElement, position: GridPosition): IGridElement {\n\t\tconst targetElement = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (targetElement) {\n\t\t\ttargetElement.addReferences(element.getReferences());\n\t\t\treturn targetElement;\n\t\t}\n\t\tthis.grid.set(this.gridIndexFromPosition(position), element);\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Group.html":{"url":"classes/Group.html","title":"class - Group","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Group\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/domain/group.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, ExternalSource } from '@shared/domain';\nimport { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { GroupTypes } from './group-types';\nimport { GroupUser } from './group-user';\n\nexport interface GroupProps extends AuthorizableObject {\n\tid: EntityId;\n\n\tname: string;\n\n\ttype: GroupTypes;\n\n\tvalidFrom?: Date;\n\n\tvalidUntil?: Date;\n\n\texternalSource?: ExternalSource;\n\n\tusers: GroupUser[];\n\n\torganizationId?: string;\n}\n\nexport class Group extends DomainObject {}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/GroupApiModule.html":{"url":"modules/GroupApiModule.html","title":"module - GroupApiModule","body":"\n \n\n\n\n\n Modules\n GroupApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_GroupApiModule\n\n\n\ncluster_GroupApiModule_imports\n\n\n\n\nGroupModule\n\nGroupModule\n\n\n\nGroupApiModule\n\nGroupApiModule\n\nGroupApiModule -->\n\nGroupModule->GroupApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/group/group-api.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n GroupModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { GroupModule } from './group.module';\n\n@Module({\n\timports: [GroupModule],\n})\nexport class GroupApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupDomainMapper.html":{"url":"classes/GroupDomainMapper.html","title":"class - GroupDomainMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupDomainMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/repo/group-domain.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapDomainObjectToEntityProperties\n \n \n Static\n mapEntityToDomainObjectProperties\n \n \n Static\n mapExternalSourceEntityToExternalSource\n \n \n Static\n mapExternalSourceToExternalSourceEntity\n \n \n Static\n mapGroupUserEntityToGroupUser\n \n \n Static\n mapGroupUserToGroupUserEntity\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapDomainObjectToEntityProperties\n \n \n \n \n \n \n \n mapDomainObjectToEntityProperties(group: Group, em: EntityManager)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n group\n \n Group\n \n\n \n No\n \n\n\n \n \n em\n \n EntityManager\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupEntityProps\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapEntityToDomainObjectProperties\n \n \n \n \n \n \n \n mapEntityToDomainObjectProperties(entity: GroupEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n GroupEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupProps\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapExternalSourceEntityToExternalSource\n \n \n \n \n \n \n \n mapExternalSourceEntityToExternalSource(entity: ExternalSourceEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ExternalSourceEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalSource\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapExternalSourceToExternalSourceEntity\n \n \n \n \n \n \n \n mapExternalSourceToExternalSourceEntity(externalSource: ExternalSource, em: EntityManager)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalSource\n \n ExternalSource\n \n\n \n No\n \n\n\n \n \n em\n \n EntityManager\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalSourceEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapGroupUserEntityToGroupUser\n \n \n \n \n \n \n \n mapGroupUserEntityToGroupUser(entity: GroupUserEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:90\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n GroupUserEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupUser\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapGroupUserToGroupUserEntity\n \n \n \n \n \n \n \n mapGroupUserToGroupUserEntity(groupUser: GroupUser, em: EntityManager)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n groupUser\n \n GroupUser\n \n\n \n No\n \n\n\n \n \n em\n \n EntityManager\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupUserEntity\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { ExternalSource, ExternalSourceEntity, Role, SchoolEntity, System, User } from '@shared/domain';\nimport { Group, GroupProps, GroupTypes, GroupUser } from '../domain';\nimport { GroupEntity, GroupEntityProps, GroupEntityTypes, GroupUserEntity, GroupValidPeriodEntity } from '../entity';\n\nconst GroupEntityTypesToGroupTypesMapping: Record = {\n\t[GroupEntityTypes.CLASS]: GroupTypes.CLASS,\n};\n\nconst GroupTypesToGroupEntityTypesMapping: Record = {\n\t[GroupTypes.CLASS]: GroupEntityTypes.CLASS,\n};\n\nexport class GroupDomainMapper {\n\tstatic mapDomainObjectToEntityProperties(group: Group, em: EntityManager): GroupEntityProps {\n\t\tconst props: GroupProps = group.getProps();\n\n\t\tlet validPeriod: GroupValidPeriodEntity | undefined;\n\t\tif (props.validFrom && props.validUntil) {\n\t\t\tvalidPeriod = new GroupValidPeriodEntity({\n\t\t\t\tfrom: props.validFrom,\n\t\t\t\tuntil: props.validUntil,\n\t\t\t});\n\t\t}\n\n\t\tconst mapped: GroupEntityProps = {\n\t\t\tid: props.id,\n\t\t\tname: props.name,\n\t\t\ttype: GroupTypesToGroupEntityTypesMapping[props.type],\n\t\t\texternalSource: props.externalSource\n\t\t\t\t? this.mapExternalSourceToExternalSourceEntity(props.externalSource, em)\n\t\t\t\t: undefined,\n\t\t\tusers: props.users.map(\n\t\t\t\t(groupUser): GroupUserEntity => GroupDomainMapper.mapGroupUserToGroupUserEntity(groupUser, em)\n\t\t\t),\n\t\t\tvalidPeriod,\n\t\t\torganization: props.organizationId ? em.getReference(SchoolEntity, props.organizationId) : undefined,\n\t\t};\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapEntityToDomainObjectProperties(entity: GroupEntity): GroupProps {\n\t\tconst mapped: GroupProps = {\n\t\t\tid: entity.id,\n\t\t\tusers: entity.users.map((groupUser): GroupUser => this.mapGroupUserEntityToGroupUser(groupUser)),\n\t\t\tvalidFrom: entity.validPeriod ? entity.validPeriod.from : undefined,\n\t\t\tvalidUntil: entity.validPeriod ? entity.validPeriod.until : undefined,\n\t\t\texternalSource: entity.externalSource\n\t\t\t\t? this.mapExternalSourceEntityToExternalSource(entity.externalSource)\n\t\t\t\t: undefined,\n\t\t\ttype: GroupEntityTypesToGroupTypesMapping[entity.type],\n\t\t\tname: entity.name,\n\t\t\torganizationId: entity.organization?.id,\n\t\t};\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapExternalSourceToExternalSourceEntity(\n\t\texternalSource: ExternalSource,\n\t\tem: EntityManager\n\t): ExternalSourceEntity {\n\t\tconst mapped = new ExternalSourceEntity({\n\t\t\texternalId: externalSource.externalId,\n\t\t\tsystem: em.getReference(System, externalSource.systemId),\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapExternalSourceEntityToExternalSource(entity: ExternalSourceEntity): ExternalSource {\n\t\tconst mapped = new ExternalSource({\n\t\t\texternalId: entity.externalId,\n\t\t\tsystemId: entity.system.id,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapGroupUserToGroupUserEntity(groupUser: GroupUser, em: EntityManager): GroupUserEntity {\n\t\tconst mapped = new GroupUserEntity({\n\t\t\tuser: em.getReference(User, groupUser.userId),\n\t\t\trole: em.getReference(Role, groupUser.roleId),\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapGroupUserEntityToGroupUser(entity: GroupUserEntity): GroupUser {\n\t\tconst mapped = new GroupUser({\n\t\t\tuserId: entity.user.id,\n\t\t\troleId: entity.role.id,\n\t\t});\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/GroupEntity.html":{"url":"entities/GroupEntity.html","title":"entity - GroupEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n GroupEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalSource\n \n \n \n name\n \n \n \n Optional\n organization\n \n \n \n type\n \n \n \n users\n \n \n \n Optional\n validPeriod\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n externalSource\n \n \n \n \n \n \n Type : ExternalSourceEntity\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n organization\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : GroupEntityTypes\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : GroupUserEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true})\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n validPeriod\n \n \n \n \n \n \n Type : GroupValidPeriodEntity\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:41\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, Enum, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { ExternalSourceEntity } from '@shared/domain/entity/external-source.entity';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { EntityId } from '@shared/domain/types';\nimport { GroupUserEntity } from './group-user.entity';\nimport { GroupValidPeriodEntity } from './group-valid-period.entity';\n\nexport enum GroupEntityTypes {\n\tCLASS = 'class',\n}\n\nexport interface GroupEntityProps {\n\tid?: EntityId;\n\n\tname: string;\n\n\ttype: GroupEntityTypes;\n\n\texternalSource?: ExternalSourceEntity;\n\n\tvalidPeriod?: GroupValidPeriodEntity;\n\n\tusers: GroupUserEntity[];\n\n\torganization?: SchoolEntity;\n}\n\n@Entity({ tableName: 'groups' })\nexport class GroupEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Enum()\n\ttype: GroupEntityTypes;\n\n\t@Embedded(() => ExternalSourceEntity, { nullable: true })\n\texternalSource?: ExternalSourceEntity;\n\n\t@Embedded(() => GroupValidPeriodEntity, { nullable: true })\n\tvalidPeriod?: GroupValidPeriodEntity;\n\n\t@Embedded(() => GroupUserEntity, { array: true })\n\tusers: GroupUserEntity[];\n\n\t@ManyToOne(() => SchoolEntity, { nullable: true })\n\torganization?: SchoolEntity;\n\n\tconstructor(props: GroupEntityProps) {\n\t\tsuper();\n\t\tif (props.id) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.name = props.name;\n\t\tthis.type = props.type;\n\t\tthis.externalSource = props.externalSource;\n\t\tthis.validPeriod = props.validPeriod;\n\t\tthis.users = props.users;\n\t\tthis.organization = props.organization;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupEntityProps.html":{"url":"interfaces/GroupEntityProps.html","title":"interface - GroupEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n externalSource\n \n \n \n Optional\n \n id\n \n \n \n \n name\n \n \n \n Optional\n \n organization\n \n \n \n \n type\n \n \n \n \n users\n \n \n \n Optional\n \n validPeriod\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n externalSource\n \n \n \n \n \n \n \n \n externalSource: ExternalSourceEntity\n\n \n \n\n\n \n \n Type : ExternalSourceEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n organization\n \n \n \n \n \n \n \n \n organization: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: GroupEntityTypes\n\n \n \n\n\n \n \n Type : GroupEntityTypes\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n users: GroupUserEntity[]\n\n \n \n\n\n \n \n Type : GroupUserEntity[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n validPeriod\n \n \n \n \n \n \n \n \n validPeriod: GroupValidPeriodEntity\n\n \n \n\n\n \n \n Type : GroupValidPeriodEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, Enum, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { ExternalSourceEntity } from '@shared/domain/entity/external-source.entity';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { EntityId } from '@shared/domain/types';\nimport { GroupUserEntity } from './group-user.entity';\nimport { GroupValidPeriodEntity } from './group-valid-period.entity';\n\nexport enum GroupEntityTypes {\n\tCLASS = 'class',\n}\n\nexport interface GroupEntityProps {\n\tid?: EntityId;\n\n\tname: string;\n\n\ttype: GroupEntityTypes;\n\n\texternalSource?: ExternalSourceEntity;\n\n\tvalidPeriod?: GroupValidPeriodEntity;\n\n\tusers: GroupUserEntity[];\n\n\torganization?: SchoolEntity;\n}\n\n@Entity({ tableName: 'groups' })\nexport class GroupEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Enum()\n\ttype: GroupEntityTypes;\n\n\t@Embedded(() => ExternalSourceEntity, { nullable: true })\n\texternalSource?: ExternalSourceEntity;\n\n\t@Embedded(() => GroupValidPeriodEntity, { nullable: true })\n\tvalidPeriod?: GroupValidPeriodEntity;\n\n\t@Embedded(() => GroupUserEntity, { array: true })\n\tusers: GroupUserEntity[];\n\n\t@ManyToOne(() => SchoolEntity, { nullable: true })\n\torganization?: SchoolEntity;\n\n\tconstructor(props: GroupEntityProps) {\n\t\tsuper();\n\t\tif (props.id) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.name = props.name;\n\t\tthis.type = props.type;\n\t\tthis.externalSource = props.externalSource;\n\t\tthis.validPeriod = props.validPeriod;\n\t\tthis.users = props.users;\n\t\tthis.organization = props.organization;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/GroupModule.html":{"url":"modules/GroupModule.html","title":"module - GroupModule","body":"\n \n\n\n\n\n Modules\n GroupModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_GroupModule\n\n\n\ncluster_GroupModule_exports\n\n\n\ncluster_GroupModule_providers\n\n\n\n\nGroupService \n\nGroupService \n\n\n\nGroupModule\n\nGroupModule\n\nGroupService -->\n\nGroupModule->GroupService \n\n\n\n\n\nGroupRepo\n\nGroupRepo\n\nGroupModule -->\n\nGroupRepo->GroupModule\n\n\n\n\n\nGroupService\n\nGroupService\n\nGroupModule -->\n\nGroupService->GroupModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/group/group.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n GroupRepo\n \n \n GroupService\n \n \n \n \n Exports\n \n \n GroupService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { GroupRepo } from './repo';\nimport { GroupService } from './service';\n\n@Module({\n\tproviders: [GroupRepo, GroupService],\n\texports: [GroupService],\n})\nexport class GroupModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupNameIdTuple.html":{"url":"interfaces/GroupNameIdTuple.html","title":"interface - GroupNameIdTuple","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupNameIdTuple\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/interface/id-token.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n displayName\n \n \n \n \n gid\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n displayName\n \n \n \n \n \n \n \n \n displayName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n gid\n \n \n \n \n \n \n \n \n gid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IdToken {\n\tiframe?: string;\n\temail?: string;\n\tname?: string;\n\tuserId?: string;\n\tschoolId: string;\n\tgroups?: GroupNameIdTuple[];\n}\n\nexport interface GroupNameIdTuple {\n\tdisplayName: string;\n\tgid: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupProps.html":{"url":"interfaces/GroupProps.html","title":"interface - GroupProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/domain/group.ts\n \n\n\n\n \n Extends\n \n \n AuthorizableObject\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n externalSource\n \n \n \n \n id\n \n \n \n \n name\n \n \n \n Optional\n \n organizationId\n \n \n \n \n type\n \n \n \n \n users\n \n \n \n Optional\n \n validFrom\n \n \n \n Optional\n \n validUntil\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n externalSource\n \n \n \n \n \n \n \n \n externalSource: ExternalSource\n\n \n \n\n\n \n \n Type : ExternalSource\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n organizationId\n \n \n \n \n \n \n \n \n organizationId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: GroupTypes\n\n \n \n\n\n \n \n Type : GroupTypes\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n users: GroupUser[]\n\n \n \n\n\n \n \n Type : GroupUser[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n validFrom\n \n \n \n \n \n \n \n \n validFrom: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n validUntil\n \n \n \n \n \n \n \n \n validUntil: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { EntityId, ExternalSource } from '@shared/domain';\nimport { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { GroupTypes } from './group-types';\nimport { GroupUser } from './group-user';\n\nexport interface GroupProps extends AuthorizableObject {\n\tid: EntityId;\n\n\tname: string;\n\n\ttype: GroupTypes;\n\n\tvalidFrom?: Date;\n\n\tvalidUntil?: Date;\n\n\texternalSource?: ExternalSource;\n\n\tusers: GroupUser[];\n\n\torganizationId?: string;\n}\n\nexport class Group extends DomainObject {}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/GroupRepo.html":{"url":"injectables/GroupRepo.html","title":"injectable - GroupRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n GroupRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/repo/group.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n findByExternalSource\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObject: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Group\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalSource\n \n \n \n \n \n \n \n findByExternalSource(externalId: string, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(domainObject: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Group\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain/types';\nimport { Group, GroupProps } from '../domain';\nimport { GroupEntity, GroupEntityProps } from '../entity';\nimport { GroupDomainMapper } from './group-domain.mapper';\n\n@Injectable()\nexport class GroupRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst entity: GroupEntity | null = await this.em.findOne(GroupEntity, { id });\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst props: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(entity);\n\n\t\tconst domainObject: Group = new Group(props);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByExternalSource(externalId: string, systemId: EntityId): Promise {\n\t\tconst entity: GroupEntity | null = await this.em.findOne(GroupEntity, {\n\t\t\texternalSource: {\n\t\t\t\texternalId,\n\t\t\t\tsystem: systemId,\n\t\t\t},\n\t\t});\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst props: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(entity);\n\n\t\tconst domainObject: Group = new Group(props);\n\n\t\treturn domainObject;\n\t}\n\n\tasync save(domainObject: Group): Promise {\n\t\tconst entityProps: GroupEntityProps = GroupDomainMapper.mapDomainObjectToEntityProperties(domainObject, this.em);\n\n\t\tconst newEntity: GroupEntity = new GroupEntity(entityProps);\n\n\t\tconst existingEntity: GroupEntity | null = await this.em.findOne(GroupEntity, { id: domainObject.id });\n\n\t\tlet savedEntity: GroupEntity;\n\t\tif (existingEntity) {\n\t\t\tsavedEntity = this.em.assign(existingEntity, newEntity);\n\t\t} else {\n\t\t\tthis.em.persist(newEntity);\n\n\t\t\tsavedEntity = newEntity;\n\t\t}\n\n\t\tawait this.em.flush();\n\n\t\tconst savedProps: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(savedEntity);\n\n\t\tconst savedDomainObject: Group = new Group(savedProps);\n\n\t\treturn savedDomainObject;\n\t}\n\n\tasync delete(domainObject: Group): Promise {\n\t\tconst entity: GroupEntity | null = await this.em.findOne(GroupEntity, { id: domainObject.id });\n\n\t\tif (!entity) {\n\t\t\treturn false;\n\t\t}\n\n\t\tawait this.em.removeAndFlush(entity);\n\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupRoleUnknownLoggable.html":{"url":"classes/GroupRoleUnknownLoggable.html","title":"class - GroupRoleUnknownLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupRoleUnknownLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/loggable/group-role-unknown.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(relation: SanisSonstigeGruppenzugehoerigeResponse)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/loggable/group-role-unknown.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n relation\n \n \n SanisSonstigeGruppenzugehoerigeResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/loggable/group-role-unknown.loggable.ts:7\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { SanisSonstigeGruppenzugehoerigeResponse } from '../strategy/sanis/response';\n\nexport class GroupRoleUnknownLoggable implements Loggable {\n\tconstructor(private readonly relation: SanisSonstigeGruppenzugehoerigeResponse) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Unable to add unknown user to group during provisioning.',\n\t\t\tdata: {\n\t\t\t\texternalUserId: this.relation.ktid,\n\t\t\t\texternalRoleName: this.relation.rollen[0],\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/GroupService.html":{"url":"injectables/GroupService.html","title":"injectable - GroupService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n GroupService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/service/group.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n findByExternalSource\n \n \n Async\n findById\n \n \n Async\n save\n \n \n Async\n tryFindById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(groupRepo: GroupRepo)\n \n \n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n groupRepo\n \n \n GroupRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(group: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n group\n \n Group\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalSource\n \n \n \n \n \n \n \n findByExternalSource(externalId: string, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(group: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n group\n \n Group\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n tryFindById\n \n \n \n \n \n \n \n tryFindById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { EntityId } from '@shared/domain';\nimport { AuthorizationLoaderServiceGeneric } from '@src/modules/authorization';\nimport { Group } from '../domain';\nimport { GroupRepo } from '../repo';\n\n@Injectable()\nexport class GroupService implements AuthorizationLoaderServiceGeneric {\n\tconstructor(private readonly groupRepo: GroupRepo) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst group: Group | null = await this.groupRepo.findById(id);\n\n\t\tif (!group) {\n\t\t\tthrow new NotFoundLoggableException(Group.name, 'id', id);\n\t\t}\n\n\t\treturn group;\n\t}\n\n\tasync findByExternalSource(externalId: string, systemId: EntityId): Promise {\n\t\tconst group: Group | null = await this.groupRepo.findByExternalSource(externalId, systemId);\n\n\t\treturn group;\n\t}\n\n\tasync tryFindById(id: EntityId): Promise {\n\t\tconst group: Group | null = await this.groupRepo.findById(id);\n\n\t\treturn group;\n\t}\n\n\tasync save(group: Group): Promise {\n\t\tconst savedGroup: Group = await this.groupRepo.save(group);\n\n\t\treturn savedGroup;\n\t}\n\n\tasync delete(group: Group): Promise {\n\t\tawait this.groupRepo.delete(group);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupUser.html":{"url":"classes/GroupUser.html","title":"class - GroupUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/domain/group-user.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n roleId\n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: GroupUser)\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group-user.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n GroupUser\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n roleId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group-user.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group-user.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport class GroupUser {\n\tuserId: EntityId;\n\n\troleId: EntityId;\n\n\tconstructor(props: GroupUser) {\n\t\tthis.userId = props.userId;\n\t\tthis.roleId = props.roleId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupUserEntity.html":{"url":"classes/GroupUserEntity.html","title":"class - GroupUserEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupUserEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group-user.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n user\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: GroupUserEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-user.entity.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n GroupUserEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : Role\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-user.entity.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-user.entity.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, ManyToOne } from '@mikro-orm/core';\nimport { Role, User } from '@shared/domain/entity';\n\nexport interface GroupUserEntityProps {\n\tuser: User;\n\n\trole: Role;\n}\n\n@Embeddable()\nexport class GroupUserEntity {\n\t@ManyToOne(() => User)\n\tuser: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\tconstructor(props: GroupUserEntityProps) {\n\t\tthis.user = props.user;\n\t\tthis.role = props.role;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupUserEntityProps.html":{"url":"interfaces/GroupUserEntityProps.html","title":"interface - GroupUserEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupUserEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group-user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n \n user\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n role\n \n \n \n \n \n \n \n \n role: Role\n\n \n \n\n\n \n \n Type : Role\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n \n \n user: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, ManyToOne } from '@mikro-orm/core';\nimport { Role, User } from '@shared/domain/entity';\n\nexport interface GroupUserEntityProps {\n\tuser: User;\n\n\trole: Role;\n}\n\n@Embeddable()\nexport class GroupUserEntity {\n\t@ManyToOne(() => User)\n\tuser: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\tconstructor(props: GroupUserEntityProps) {\n\t\tthis.user = props.user;\n\t\tthis.role = props.role;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupUsers.html":{"url":"interfaces/GroupUsers.html","title":"interface - GroupUsers","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupUsers\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n users: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupValidPeriodEntity.html":{"url":"classes/GroupValidPeriodEntity.html","title":"class - GroupValidPeriodEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupValidPeriodEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group-valid-period.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n from\n \n \n \n until\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: GroupValidPeriodEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-valid-period.entity.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n GroupValidPeriodEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n from\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-valid-period.entity.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n until\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-valid-period.entity.ts:15\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\nexport interface GroupValidPeriodEntityProps {\n\tfrom: Date;\n\n\tuntil: Date;\n}\n\n@Embeddable()\nexport class GroupValidPeriodEntity {\n\t@Property()\n\tfrom: Date;\n\n\t@Property()\n\tuntil: Date;\n\n\tconstructor(props: GroupValidPeriodEntityProps) {\n\t\tthis.from = props.from;\n\t\tthis.until = props.until;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupValidPeriodEntityProps.html":{"url":"interfaces/GroupValidPeriodEntityProps.html","title":"interface - GroupValidPeriodEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupValidPeriodEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group-valid-period.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n from\n \n \n \n \n until\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n from\n \n \n \n \n \n \n \n \n from: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n until\n \n \n \n \n \n \n \n \n until: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\nexport interface GroupValidPeriodEntityProps {\n\tfrom: Date;\n\n\tuntil: Date;\n}\n\n@Embeddable()\nexport class GroupValidPeriodEntity {\n\t@Property()\n\tfrom: Date;\n\n\t@Property()\n\tuntil: Date;\n\n\tconstructor(props: GroupValidPeriodEntityProps) {\n\t\tthis.from = props.from;\n\t\tthis.until = props.until;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupfoldersCreated.html":{"url":"interfaces/GroupfoldersCreated.html","title":"interface - GroupfoldersCreated","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupfoldersCreated\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupfoldersFolder.html":{"url":"interfaces/GroupfoldersFolder.html","title":"interface - GroupfoldersFolder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupfoldersFolder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n folder_id\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n folder_id\n \n \n \n \n \n \n \n \n folder_id: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GuardAgainst.html":{"url":"classes/GuardAgainst.html","title":"class - GuardAgainst","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GuardAgainst\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/utils/guard-against.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n nullOrUndefined\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n nullOrUndefined\n \n \n \n \n \n \n \n nullOrUndefined(value: T | null | undefined, toThrow)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/utils/guard-against.ts:8\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n Guards against null or undefined and throws specified exception.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n value\n \n T | null | undefined\n \n\n \n No\n \n\n\n \n The value to check.\n\n \n \n \n toThrow\n \n \n\n \n No\n \n\n\n \n The exception to be thrown on failure.\n\n \n \n \n \n \n \n \n \n Returns : T | never\n\n \n \n The narrowed value or throws.\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n export class GuardAgainst {\n\t/**\n\t * Guards against null or undefined and throws specified exception.\n\t * @param value The value to check.\n\t * @param toThrow The exception to be thrown on failure.\n\t * @returns The narrowed value or throws.\n\t */\n\tstatic nullOrUndefined(value: T | null | undefined, toThrow: unknown): T | never {\n\t\tif (value === null || value === undefined) {\n\t\t\tthrow toThrow;\n\t\t}\n\t\treturn value;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/H5PEditorController.html":{"url":"controllers/H5PEditorController.html","title":"controller - H5PEditorController","body":"\n \n\n\n\n\n\n\n Controllers\n H5PEditorController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts\n \n\n \n Prefix\n \n \n h5p-editor\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getEditor\n \n \n \n \n \n \n \n \n Async\n getPlayer\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getEditor\n \n \n \n \n \n \n \n getEditor()\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Return dummy HTML for testing'})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 400, type: BadRequestException})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 500, type: InternalServerErrorException})@Get('/:contentId/edit')\n \n \n\n \n \n Defined in apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts:44\n \n \n\n\n \n \n\n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getPlayer\n \n \n \n \n \n \n \n getPlayer()\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Return dummy HTML for testing'})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 400, type: BadRequestException})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 500, type: InternalServerErrorException})@Get('/:contentId/play')\n \n \n\n \n \n Defined in apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts:33\n \n \n\n\n \n \n\n \n Returns : unknown\n\n \n \n \n \n \n \n\n\n \n import { BadRequestException, Controller, ForbiddenException, Get, InternalServerErrorException } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { Authenticate } from '@src/modules/authentication/decorator/auth.decorator';\n\n// Dummy html response so we can test i-frame integration\nconst dummyResponse = (title: string) => `\n\n\n\n \n \n \n ${title}\n\n\n ${title}\n This response can be used for testing\n\n\n`;\n\n@ApiTags('h5p-editor')\n@Authenticate('jwt')\n@Controller('h5p-editor')\nexport class H5PEditorController {\n\t@ApiOperation({ summary: 'Return dummy HTML for testing' })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 400, type: BadRequestException })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Get('/:contentId/play')\n\tasync getPlayer() {\n\t\t// Dummy Response\n\t\treturn Promise.resolve(dummyResponse('H5P Player Dummy'));\n\t}\n\n\t@ApiOperation({ summary: 'Return dummy HTML for testing' })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 400, type: BadRequestException })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Get('/:contentId/edit')\n\tasync getEditor() {\n\t\t// Dummy Response\n\t\treturn Promise.resolve(dummyResponse('H5P Editor Dummy'));\n\t}\n\n\t// Other Endpoints (incomplete list), paths not final\n\t// - getLibrary \t\t\t(e.g. GET `/libraries/:uberName/:file(*)`)\n\t// - getContentFile \t\t\t(e.g. GET `/content/:contentId/:file(*)`)\n\t// - getTempFile \t\t\t(e.g. GET `/temp/:file(*)`)\n\t// - ajax endpoint for h5p \t\t(e.g. GET/POST `/ajax/*`)\n\t// - static files from h5p-core\t(e.g. GET `/core/*`)\n\t// - static files for editor\t(e.g. GET `/editor/*`)\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/H5PEditorModule.html":{"url":"modules/H5PEditorModule.html","title":"module - H5PEditorModule","body":"\n \n\n\n\n\n Modules\n H5PEditorModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_H5PEditorModule\n\n\n\ncluster_H5PEditorModule_providers\n\n\n\ncluster_H5PEditorModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nH5PEditorModule\n\nH5PEditorModule\n\nH5PEditorModule -->\n\nAuthenticationModule->H5PEditorModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nH5PEditorModule -->\n\nAuthorizationModule->H5PEditorModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nH5PEditorModule -->\n\nCoreModule->H5PEditorModule\n\n\n\n\n\nLogger\n\nLogger\n\nH5PEditorModule -->\n\nLogger->H5PEditorModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/h5p-editor/h5p-editor.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n Logger\n \n \n \n \n Controllers\n \n \n H5PEditorController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n \n \n \n\n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { Account, Role, SchoolEntity, SchoolYear, System, User } from '@shared/domain';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME, createConfigModuleOptions } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { H5PEditorController } from './controller/h5p-editor.controller';\nimport { config } from './h5p-editor.config';\n\nconst defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\nconst imports = [\n\tAuthenticationModule,\n\tAuthorizationModule,\n\tCoreModule,\n\tMikroOrmModule.forRoot({\n\t\t...defaultMikroOrmOptions,\n\t\ttype: 'mongo',\n\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\tclientUrl: DB_URL,\n\t\tpassword: DB_PASSWORD,\n\t\tuser: DB_USERNAME,\n\t\tentities: [User, Account, Role, SchoolEntity, System, SchoolYear],\n\n\t\t// debug: true, // use it for locally debugging of querys\n\t}),\n\tConfigModule.forRoot(createConfigModuleOptions(config)),\n];\n\nconst controllers = [H5PEditorController];\n\nconst providers = [Logger];\n\n@Module({\n\timports,\n\tcontrollers,\n\tproviders,\n})\nexport class H5PEditorModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/H5PEditorTestModule.html":{"url":"modules/H5PEditorTestModule.html","title":"module - H5PEditorTestModule","body":"\n \n\n\n\n\n Modules\n H5PEditorTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_H5PEditorTestModule\n\n\n\ncluster_H5PEditorTestModule_imports\n\n\n\n\nAuthenticationApiModule\n\nAuthenticationApiModule\n\n\n\nH5PEditorTestModule\n\nH5PEditorTestModule\n\nH5PEditorTestModule -->\n\nAuthenticationApiModule->H5PEditorTestModule\n\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\nH5PEditorTestModule -->\n\nAuthenticationModule->H5PEditorTestModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nH5PEditorTestModule -->\n\nAuthorizationModule->H5PEditorTestModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nH5PEditorTestModule -->\n\nCoreModule->H5PEditorTestModule\n\n\n\n\n\nH5PEditorModule\n\nH5PEditorModule\n\nH5PEditorTestModule -->\n\nH5PEditorModule->H5PEditorTestModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nH5PEditorTestModule -->\n\nLoggerModule->H5PEditorTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nH5PEditorTestModule -->\n\nMongoMemoryDatabaseModule->H5PEditorTestModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nH5PEditorTestModule -->\n\nRabbitMQWrapperTestModule->H5PEditorTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/h5p-editor/h5p-editor-test.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n AuthenticationApiModule\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n H5PEditorModule\n \n \n LoggerModule\n \n \n MongoMemoryDatabaseModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/h5p-editor/h5p-editor-test.module.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { DynamicModule, Module } from '@nestjs/common';\nimport { Account, Role, SchoolEntity, SchoolYear, User } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { AuthenticationApiModule } from '../authentication/authentication-api.module';\nimport { H5PEditorModule } from './h5p-editor.module';\n\nconst imports = [\n\tH5PEditorModule,\n\tMongoMemoryDatabaseModule.forRoot({ entities: [Account, Role, SchoolEntity, SchoolYear, User] }),\n\tAuthenticationApiModule,\n\tAuthorizationModule,\n\tAuthenticationModule,\n\tCoreModule,\n\tLoggerModule,\n\tRabbitMQWrapperTestModule,\n];\nconst controllers = [];\nconst providers = [];\n@Module({\n\timports,\n\tcontrollers,\n\tproviders,\n})\nexport class H5PEditorTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: H5PEditorTestModule,\n\t\t\timports: [...imports, MongoMemoryDatabaseModule.forRoot({ ...options })],\n\t\t\tcontrollers,\n\t\t\tproviders,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/HtmlMailContent.html":{"url":"interfaces/HtmlMailContent.html","title":"interface - HtmlMailContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n HtmlMailContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n \n Extends\n \n \n MailContent\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n htmlContent\n \n \n \n Optional\n \n plainTextContent\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n htmlContent\n \n \n \n \n \n \n \n \n htmlContent: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n plainTextContent\n \n \n \n \n \n \n \n \n plainTextContent: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/HydraAdapter.html":{"url":"injectables/HydraAdapter.html","title":"injectable - HydraAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n HydraAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts\n \n\n\n\n \n Extends\n \n \n OauthProviderService\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n hydraUri\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n acceptConsentRequest\n \n \n acceptLoginRequest\n \n \n Async\n acceptLogoutRequest\n \n \n createOAuth2Client\n \n \n deleteOAuth2Client\n \n \n Protected\n Async\n get\n \n \n getConsentRequest\n \n \n getLoginRequest\n \n \n getOAuth2Client\n \n \n introspectOAuth2Token\n \n \n isInstanceAlive\n \n \n listConsentSessions\n \n \n listOAuth2Clients\n \n \n Protected\n Async\n put\n \n \n rejectConsentRequest\n \n \n rejectLoginRequest\n \n \n Protected\n Async\n request\n \n \n revokeConsentSession\n \n \n updateOAuth2Client\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(httpService: HttpService)\n \n \n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n acceptConsentRequest\n \n \n \n \n \n \nacceptConsentRequest(challenge: string, body: AcceptConsentRequestBody)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptConsentRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n acceptLoginRequest\n \n \n \n \n \n \nacceptLoginRequest(challenge: string, body: AcceptLoginRequestBody)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:34\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptLoginRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptLogoutRequest\n \n \n \n \n \n \n \n acceptLogoutRequest(challenge: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:38\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createOAuth2Client\n \n \n \n \n \n \ncreateOAuth2Client(data: ProviderOauthClient)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:117\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteOAuth2Client\n \n \n \n \n \n \ndeleteOAuth2Client(id: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:135\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n get\n \n \n \n \n \n \n \n get(flow: string, challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:153\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n flow\n \n string\n \n\n \n No\n \n\n\n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getConsentRequest\n \n \n \n \n \n \ngetConsentRequest(challenge: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getLoginRequest\n \n \n \n \n \n \ngetLoginRequest(challenge: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:49\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getOAuth2Client\n \n \n \n \n \n \ngetOAuth2Client(id: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:109\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n introspectOAuth2Token\n \n \n \n \n \n \nintrospectOAuth2Token(token: string, scope: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:53\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n scope\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isInstanceAlive\n \n \n \n \n \n \nisInstanceAlive()\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:63\n\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n listConsentSessions\n \n \n \n \n \n \nlistConsentSessions(user: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:68\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n listOAuth2Clients\n \n \n \n \n \n \nlistOAuth2Clients(limit?: number, offset?: number, client_name?: string, owner?: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:92\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n offset\n \n number\n \n\n \n Yes\n \n\n\n \n \n client_name\n \n string\n \n\n \n Yes\n \n\n\n \n \n owner\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n put\n \n \n \n \n \n \n \n put(flow: string, action: string, challenge: string, body: AcceptConsentRequestBody | AcceptLoginRequestBody | RejectRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:140\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n flow\n \n string\n \n\n \n No\n \n\n\n \n \n action\n \n string\n \n\n \n No\n \n\n\n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptConsentRequestBody | AcceptLoginRequestBody | RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rejectConsentRequest\n \n \n \n \n \n \nrejectConsentRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:76\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rejectLoginRequest\n \n \n \n \n \n \nrejectLoginRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:80\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n request\n \n \n \n \n \n \n \n request(method: Method, url: string, data?, additionalHeaders: RawAxiosRequestHeaders)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:157\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n method\n \n Method\n \n\n \n No\n \n\n \n \n\n \n \n url\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n data\n \n \n\n \n Yes\n \n\n \n \n\n \n \n additionalHeaders\n \n RawAxiosRequestHeaders\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n revokeConsentSession\n \n \n \n \n \n \nrevokeConsentSession(user: string, client: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n string\n \n\n \n No\n \n\n\n \n \n client\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateOAuth2Client\n \n \n \n \n \n \nupdateOAuth2Client(id: string, data: ProviderOauthClient)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:126\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n hydraUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:23\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpService } from '@nestjs/axios';\nimport { Injectable } from '@nestjs/common';\nimport { AxiosResponse, Method, RawAxiosRequestHeaders } from 'axios';\nimport QueryString from 'qs';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { URL } from 'url';\nimport {\n\tAcceptConsentRequestBody,\n\tAcceptLoginRequestBody,\n\tIntrospectResponse,\n\tProviderConsentResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n\tRejectRequestBody,\n} from '../dto';\nimport { ProviderConsentSessionResponse } from '../dto/response/consent-session.response';\nimport { OauthProviderService } from '../oauth-provider.service';\n\n@Injectable()\nexport class HydraAdapter extends OauthProviderService {\n\tprivate readonly hydraUri: string;\n\n\tconstructor(private readonly httpService: HttpService) {\n\t\tsuper();\n\t\tthis.hydraUri = Configuration.get('HYDRA_URI') as string;\n\t}\n\n\tacceptConsentRequest(challenge: string, body: AcceptConsentRequestBody): Promise {\n\t\treturn this.put('consent', 'accept', challenge, body);\n\t}\n\n\tacceptLoginRequest(challenge: string, body: AcceptLoginRequestBody): Promise {\n\t\treturn this.put('login', 'accept', challenge, body);\n\t}\n\n\tasync acceptLogoutRequest(challenge: string): Promise {\n\t\tconst url = `${this.hydraUri}/oauth2/auth/requests/logout/accept?logout_challenge=${challenge}`;\n\t\tconst response: Promise = this.request('PUT', url);\n\t\treturn response;\n\t}\n\n\tgetConsentRequest(challenge: string): Promise {\n\t\tconst response: Promise = this.get('consent', challenge);\n\t\treturn response;\n\t}\n\n\tgetLoginRequest(challenge: string): Promise {\n\t\treturn this.get('login', challenge);\n\t}\n\n\tintrospectOAuth2Token(token: string, scope: string): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'POST',\n\t\t\t`${this.hydraUri}/oauth2/introspect`,\n\t\t\t`token=${token}&scope=${scope}`,\n\t\t\t{ 'Content-Type': 'application/x-www-form-urlencoded' }\n\t\t);\n\t\treturn response;\n\t}\n\n\tisInstanceAlive(): Promise {\n\t\tconst response: Promise = this.request('GET', `${this.hydraUri}/health/alive`);\n\t\treturn response;\n\t}\n\n\tlistConsentSessions(user: string): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'GET',\n\t\t\t`${this.hydraUri}/oauth2/auth/sessions/consent?subject=${user}`\n\t\t);\n\t\treturn response;\n\t}\n\n\trejectConsentRequest(challenge: string, body: RejectRequestBody): Promise {\n\t\treturn this.put('consent', 'reject', challenge, body);\n\t}\n\n\trejectLoginRequest(challenge: string, body: RejectRequestBody): Promise {\n\t\treturn this.put('login', 'reject', challenge, body);\n\t}\n\n\trevokeConsentSession(user: string, client: string): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'DELETE',\n\t\t\t`${this.hydraUri}/oauth2/auth/sessions/consent?subject=${user}&client=${client}`\n\t\t);\n\t\treturn response;\n\t}\n\n\tlistOAuth2Clients(\n\t\tlimit?: number,\n\t\toffset?: number,\n\t\tclient_name?: string,\n\t\towner?: string\n\t): Promise {\n\t\tconst url: URL = new URL(`${this.hydraUri}/clients`);\n\t\turl.search = QueryString.stringify({\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tclient_name,\n\t\t\towner,\n\t\t});\n\t\tconst response: Promise = this.request('GET', url.toString());\n\t\treturn response;\n\t}\n\n\tgetOAuth2Client(id: string): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'GET',\n\t\t\t`${this.hydraUri}/clients/${id}`\n\t\t);\n\t\treturn response;\n\t}\n\n\tcreateOAuth2Client(data: ProviderOauthClient): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'POST',\n\t\t\t`${this.hydraUri}/clients`,\n\t\t\tdata\n\t\t);\n\t\treturn response;\n\t}\n\n\tupdateOAuth2Client(id: string, data: ProviderOauthClient): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'PUT',\n\t\t\t`${this.hydraUri}/clients/${id}`,\n\t\t\tdata\n\t\t);\n\t\treturn response;\n\t}\n\n\tdeleteOAuth2Client(id: string): Promise {\n\t\tconst response: Promise = this.request('DELETE', `${this.hydraUri}/clients/${id}`);\n\t\treturn response;\n\t}\n\n\tprotected async put(\n\t\tflow: string,\n\t\taction: string,\n\t\tchallenge: string,\n\t\tbody: AcceptConsentRequestBody | AcceptLoginRequestBody | RejectRequestBody\n\t): Promise {\n\t\treturn this.request(\n\t\t\t'PUT',\n\t\t\t`${this.hydraUri}/oauth2/auth/requests/${flow}/${action}?${flow}_challenge=${challenge}`,\n\t\t\tbody\n\t\t);\n\t}\n\n\tprotected async get(flow: string, challenge: string): Promise {\n\t\treturn this.request('GET', `${this.hydraUri}/oauth2/auth/requests/${flow}?${flow}_challenge=${challenge}`);\n\t}\n\n\tprotected async request(\n\t\tmethod: Method,\n\t\turl: string,\n\t\tdata?: unknown,\n\t\tadditionalHeaders: RawAxiosRequestHeaders = {}\n\t): Promise {\n\t\tconst observable: Observable> = this.httpService.request({\n\t\t\turl,\n\t\t\tmethod,\n\t\t\theaders: {\n\t\t\t\t'X-Forwarded-Proto': 'https',\n\t\t\t\t...additionalHeaders,\n\t\t\t},\n\t\t\tdata,\n\t\t});\n\t\tconst response: AxiosResponse = await firstValueFrom(observable);\n\t\treturn response.data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/HydraOauthUc.html":{"url":"injectables/HydraOauthUc.html","title":"injectable - HydraOauthUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n HydraOauthUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n HYDRA_PUBLIC_URI\n \n \n Private\n Readonly\n MAX_REDIRECTS\n \n \n Protected\n validateStatus\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getOauthToken\n \n \n Private\n Async\n processRedirectCascade\n \n \n Async\n requestAuthCode\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthService: OAuthService, hydraSsoService: HydraSsoService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthService\n \n \n OAuthService\n \n \n \n No\n \n \n \n \n hydraSsoService\n \n \n HydraSsoService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getOauthToken\n \n \n \n \n \n \n \n getOauthToken(oauthClientId: string, code?: string, error?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n code\n \n string\n \n\n \n Yes\n \n\n\n \n \n error\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n processRedirectCascade\n \n \n \n \n \n \n \n processRedirectCascade(initResponse: AxiosResponse, jwt: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n initResponse\n \n AxiosResponse\n \n\n \n No\n \n\n\n \n \n jwt\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n requestAuthCode\n \n \n \n \n \n \n \n requestAuthCode(userId: string, jwt: string, oauthClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n jwt\n \n string\n \n\n \n No\n \n\n\n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n HYDRA_PUBLIC_URI\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : Configuration.get('HYDRA_PUBLIC_URI') as string\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n MAX_REDIRECTS\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 10\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n Protected\n validateStatus\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:47\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { OauthConfig } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { HydraRedirectDto } from '@src/modules/oauth/service/dto/hydra.redirect.dto';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { AuthorizationParams } from '../controller/dto';\nimport { OAuthSSOError } from '../error/oauth-sso.error';\nimport { OAuthTokenDto } from '../interface';\nimport { HydraSsoService } from '../service/hydra.service';\nimport { OAuthService } from '../service/oauth.service';\n\n@Injectable()\nexport class HydraOauthUc {\n\tconstructor(\n\t\tprivate readonly oauthService: OAuthService,\n\t\tprivate readonly hydraSsoService: HydraSsoService,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(HydraOauthUc.name);\n\t}\n\n\tprivate readonly MAX_REDIRECTS: number = 10;\n\n\tprivate readonly HYDRA_PUBLIC_URI: string = Configuration.get('HYDRA_PUBLIC_URI') as string;\n\n\tasync getOauthToken(oauthClientId: string, code?: string, error?: string): Promise {\n\t\tif (error || !code) {\n\t\t\tthrow new OAuthSSOError(\n\t\t\t\t'Authorization Query Object has no authorization code or error',\n\t\t\t\terror || 'sso_auth_code_step'\n\t\t\t);\n\t\t}\n\t\tconst hydraOauthConfig: OauthConfig = await this.hydraSsoService.generateConfig(oauthClientId);\n\n\t\tconst oauthTokens: OAuthTokenDto = await this.oauthService.requestToken(\n\t\t\tcode,\n\t\t\thydraOauthConfig,\n\t\t\thydraOauthConfig.redirectUri\n\t\t);\n\n\t\tawait this.oauthService.validateToken(oauthTokens.idToken, hydraOauthConfig);\n\n\t\treturn oauthTokens;\n\t}\n\n\tprotected validateStatus = (status: number): boolean => status === 200 || status === 302;\n\n\tasync requestAuthCode(userId: string, jwt: string, oauthClientId: string): Promise {\n\t\tconst hydraOauthConfig: OauthConfig = await this.hydraSsoService.generateConfig(oauthClientId);\n\t\tconst axiosConfig: AxiosRequestConfig = {\n\t\t\theaders: {},\n\t\t\twithCredentials: true,\n\t\t\tmaxRedirects: 0,\n\t\t\tvalidateStatus: this.validateStatus,\n\t\t};\n\n\t\tconst initResponse = await this.hydraSsoService.initAuth(hydraOauthConfig, axiosConfig);\n\n\t\tconst response: AxiosResponse = await this.processRedirectCascade(initResponse, jwt);\n\n\t\tconst authParams: AuthorizationParams = response.data as AuthorizationParams;\n\t\treturn authParams;\n\t}\n\n\tprivate async processRedirectCascade(\n\t\tinitResponse: AxiosResponse,\n\t\tjwt: string\n\t): Promise> {\n\t\tlet dto = new HydraRedirectDto({\n\t\t\tcurrentRedirect: 0,\n\t\t\treferer: '',\n\t\t\tcookies: { localCookies: [`jwt=${jwt}`], hydraCookies: [] },\n\t\t\tresponse: initResponse,\n\t\t\taxiosConfig: initResponse.config,\n\t\t});\n\n\t\tdo {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tdto = await this.hydraSsoService.processRedirect(dto);\n\t\t} while (dto.response.status === 302 && dto.currentRedirect = this.MAX_REDIRECTS) {\n\t\t\tthrow new InternalServerErrorException(`Redirect limit of ${this.MAX_REDIRECTS} exceeded.`);\n\t\t}\n\t\treturn dto.response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/HydraRedirectDto.html":{"url":"classes/HydraRedirectDto.html","title":"class - HydraRedirectDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n HydraRedirectDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n axiosConfig\n \n \n cookies\n \n \n currentRedirect\n \n \n referer\n \n \n response\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: HydraRedirectDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n HydraRedirectDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n axiosConfig\n \n \n \n \n \n \n Type : AxiosRequestConfig\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n cookies\n \n \n \n \n \n \n Type : CookiesDto\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n currentRedirect\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n referer\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n response\n \n \n \n \n \n \n Type : AxiosResponse\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { CookiesDto } from '@src/modules/oauth/service/dto/cookies.dto';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\n\nexport class HydraRedirectDto {\n\tconstructor(props: HydraRedirectDto) {\n\t\tthis.currentRedirect = props.currentRedirect;\n\t\tthis.referer = props.referer;\n\t\tthis.cookies = props.cookies;\n\t\tthis.response = props.response;\n\t\tthis.axiosConfig = props.axiosConfig;\n\t}\n\n\tcurrentRedirect: number;\n\n\treferer: string;\n\n\tcookies: CookiesDto;\n\n\tresponse: AxiosResponse;\n\n\taxiosConfig: AxiosRequestConfig;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/HydraSsoService.html":{"url":"injectables/HydraSsoService.html","title":"injectable - HydraSsoService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n HydraSsoService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/hydra.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n HOST\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n generateConfig\n \n \n Private\n get\n \n \n Async\n initAuth\n \n \n Protected\n processCookies\n \n \n Async\n processRedirect\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ltiRepo: LtiToolRepo, httpService: HttpService, oAuthEncryptionService: IEncryptionService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ltiRepo\n \n \n LtiToolRepo\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n oAuthEncryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n generateConfig\n \n \n \n \n \n \n \n generateConfig(oauthClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:99\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n get\n \n \n \n \n \n \n \n get(url: string, axiosConfig: AxiosRequestConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:126\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n axiosConfig\n \n AxiosRequestConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n initAuth\n \n \n \n \n \n \n \n initAuth(oauthConfig: OauthConfig, axiosConfig: AxiosRequestConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n axiosConfig\n \n AxiosRequestConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n processCookies\n \n \n \n \n \n \n \n processCookies(setCookies: string[], cookies: CookiesDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n setCookies\n \n string[]\n \n\n \n No\n \n\n\n \n \n cookies\n \n CookiesDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CookiesDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n processRedirect\n \n \n \n \n \n \n \n processRedirect(dto: HydraRedirectDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n HydraRedirectDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n HOST\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : Configuration.get('HOST') as string\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:27\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpService } from '@nestjs/axios';\nimport { Inject, InternalServerErrorException } from '@nestjs/common';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { OauthConfig } from '@shared/domain';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationParams } from '@src/modules/oauth/controller/dto/authorization.params';\nimport { CookiesDto } from '@src/modules/oauth/service/dto/cookies.dto';\nimport { HydraRedirectDto } from '@src/modules/oauth/service/dto/hydra.redirect.dto';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { nanoid } from 'nanoid';\nimport QueryString from 'qs';\nimport { Observable, firstValueFrom } from 'rxjs';\n\n@Injectable()\nexport class HydraSsoService {\n\tconstructor(\n\t\tprivate readonly ltiRepo: LtiToolRepo,\n\t\tprivate readonly httpService: HttpService,\n\t\t@Inject(DefaultEncryptionService) private readonly oAuthEncryptionService: IEncryptionService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {}\n\n\tprivate readonly HOST: string = Configuration.get('HOST') as string;\n\n\tasync initAuth(oauthConfig: OauthConfig, axiosConfig: AxiosRequestConfig): Promise {\n\t\tconst query = QueryString.stringify({\n\t\t\tresponse_type: oauthConfig.responseType,\n\t\t\tscope: oauthConfig.scope,\n\t\t\tclient_id: oauthConfig.clientId,\n\t\t\tredirect_uri: oauthConfig.redirectUri,\n\t\t\tstate: nanoid(15),\n\t\t});\n\t\tthis.logger.log(`${oauthConfig.authEndpoint}?${query}`);\n\t\tthis.logger.log(axiosConfig);\n\t\tconst res: Promise = this.get(`${oauthConfig.authEndpoint}?${query}`, axiosConfig);\n\t\treturn res;\n\t}\n\n\tasync processRedirect(dto: HydraRedirectDto): Promise {\n\t\tconst localDto: HydraRedirectDto = new HydraRedirectDto(dto);\n\t\tlet location = '';\n\n\t\tif (typeof localDto.response.headers.location === 'string') {\n\t\t\t({ location } = localDto.response.headers);\n\t\t}\n\n\t\tconst isLocal = !location.startsWith('http');\n\t\tconst isHydra = location.startsWith(Configuration.get('HYDRA_PUBLIC_URI') as string);\n\n\t\t// locations of schulcloud cookies are a relative path\n\t\tif (isLocal) {\n\t\t\tlocation = `${this.HOST}${location}`;\n\t\t}\n\n\t\tif (localDto.response.headers['set-cookie']) {\n\t\t\tlocalDto.cookies = this.processCookies(localDto.response.headers['set-cookie'], dto.cookies);\n\t\t}\n\n\t\tconst headerCookies: string = isHydra\n\t\t\t? localDto.cookies.hydraCookies.join('; ')\n\t\t\t: localDto.cookies.localCookies.join('; ');\n\n\t\tlocalDto.axiosConfig.headers = {\n\t\t\tReferer: localDto.referer,\n\t\t\tCookie: headerCookies,\n\t\t};\n\t\tthis.logger.log(localDto);\n\t\tlocalDto.response = await this.get(location, localDto.axiosConfig);\n\t\tlocalDto.referer = location;\n\t\tlocalDto.currentRedirect += 1;\n\n\t\treturn localDto;\n\t}\n\n\tprotected processCookies(setCookies: string[], cookies: CookiesDto): CookiesDto {\n\t\tconst { localCookies } = cookies;\n\t\tconst { hydraCookies } = cookies;\n\n\t\tsetCookies.forEach((item: string): void => {\n\t\t\tconst cookie: string = item.split(';')[0];\n\t\t\tif (cookie.startsWith('oauth2') && !hydraCookies.includes(cookie)) {\n\t\t\t\thydraCookies.push(cookie);\n\t\t\t} else if (!localCookies.includes(cookie)) {\n\t\t\t\tlocalCookies.push(cookie);\n\t\t\t}\n\t\t});\n\n\t\tconst cookiesDto = new CookiesDto({\n\t\t\tlocalCookies,\n\t\t\thydraCookies,\n\t\t});\n\t\treturn cookiesDto;\n\t}\n\n\tasync generateConfig(oauthClientId: string): Promise {\n\t\tconst tool: LtiToolDO = await this.ltiRepo.findByOauthClientId(oauthClientId);\n\n\t\t// Needs to be checked, because the fields can be undefined\n\t\tif (!tool.oAuthClientId || !tool.secret) {\n\t\t\tthrow new InternalServerErrorException(oauthClientId, 'Suitable tool not found!');\n\t\t}\n\n\t\tconst hydraUri: string = Configuration.get('HYDRA_PUBLIC_URI') as string;\n\t\tconst hydraOauthConfig = new OauthConfig({\n\t\t\tauthEndpoint: `${hydraUri}/oauth2/auth`,\n\t\t\tclientId: tool.oAuthClientId,\n\t\t\tclientSecret: this.oAuthEncryptionService.encrypt(tool.secret),\n\t\t\tgrantType: 'authorization_code',\n\t\t\tissuer: `${hydraUri}/`,\n\t\t\tjwksEndpoint: `${hydraUri}/.well-known/jwks.json`,\n\t\t\tlogoutEndpoint: `${hydraUri}/oauth2/sessions/logout`,\n\t\t\tprovider: 'hydra',\n\t\t\tredirectUri: `${Configuration.get('HOST') as string}/api/v3/sso/hydra/${oauthClientId}`,\n\t\t\tresponseType: 'code',\n\t\t\tscope: Configuration.get('NEXTCLOUD_SCOPES') as string, // Only Nextcloud is currently supported\n\t\t\ttokenEndpoint: `${hydraUri}/oauth2/token`,\n\t\t});\n\n\t\treturn hydraOauthConfig;\n\t}\n\n\tprivate get(url: string, axiosConfig: AxiosRequestConfig): Promise {\n\t\tconst respObservable: Observable = this.httpService.get(url, axiosConfig);\n\t\tconst res: Promise = firstValueFrom(respObservable);\n\t\treturn res;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IAccountConfig.html":{"url":"interfaces/IAccountConfig.html","title":"interface - IAccountConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IAccountConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/account-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n LOGIN_BLOCK_TIME\n \n \n \n \n TEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n LOGIN_BLOCK_TIME\n \n \n \n \n \n \n \n \n LOGIN_BLOCK_TIME: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n TEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE\n \n \n \n \n \n \n \n \n TEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IAccountConfig {\n\tLOGIN_BLOCK_TIME: number;\n\tTEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IBbbSettings.html":{"url":"interfaces/IBbbSettings.html","title":"interface - IBbbSettings","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IBbbSettings\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/bbb-settings.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n host\n \n \n \n \n presentationUrl\n \n \n \n \n salt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n host\n \n \n \n \n \n \n \n \n host: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n presentationUrl\n \n \n \n \n \n \n \n \n presentationUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n salt\n \n \n \n \n \n \n \n \n salt: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export const BbbSettings = Symbol('BbbSettings');\n\nexport interface IBbbSettings {\n\thost: string;\n\tsalt: string;\n\tpresentationUrl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICalendarEvent.html":{"url":"interfaces/ICalendarEvent.html","title":"interface - ICalendarEvent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICalendarEvent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/interface/calendar-event.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n data: literal type[]\n\n \n \n\n\n \n \n Type : literal type[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface ICalendarEvent {\n\tdata: {\n\t\tattributes: {\n\t\t\tsummary: string;\n\t\t\t'x-sc-teamid': string;\n\t\t};\n\t}[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IClassEntityProps.html":{"url":"interfaces/IClassEntityProps.html","title":"interface - IClassEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IClassEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/class.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n gradeLevel\n \n \n \n Optional\n \n id\n \n \n \n Optional\n \n invitationLink\n \n \n \n Optional\n \n ldapDN\n \n \n \n \n name\n \n \n \n \n schoolId\n \n \n \n Optional\n \n source\n \n \n \n Optional\n \n sourceOptions\n \n \n \n Optional\n \n successor\n \n \n \n \n teacherIds\n \n \n \n Optional\n \n userIds\n \n \n \n Optional\n \n year\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n gradeLevel\n \n \n \n \n \n \n \n \n gradeLevel: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n invitationLink\n \n \n \n \n \n \n \n \n invitationLink: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ldapDN\n \n \n \n \n \n \n \n \n ldapDN: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sourceOptions\n \n \n \n \n \n \n \n \n sourceOptions: ClassSourceOptionsEntity\n\n \n \n\n\n \n \n Type : ClassSourceOptionsEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n successor\n \n \n \n \n \n \n \n \n successor: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n teacherIds\n \n \n \n \n \n \n \n \n teacherIds: ObjectId[]\n\n \n \n\n\n \n \n Type : ObjectId[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userIds\n \n \n \n \n \n \n \n \n userIds: ObjectId[]\n\n \n \n\n\n \n \n Type : ObjectId[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n year\n \n \n \n \n \n \n \n \n year: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain';\nimport { ClassSourceOptionsEntity } from './class-source-options.entity';\n\nexport interface IClassEntityProps {\n\tid?: EntityId;\n\tname: string;\n\tschoolId: ObjectId;\n\tuserIds?: ObjectId[];\n\tteacherIds: ObjectId[];\n\tinvitationLink?: string;\n\tyear?: ObjectId;\n\tgradeLevel?: number;\n\tldapDN?: string;\n\tsuccessor?: ObjectId;\n\tsource?: string;\n\tsourceOptions?: ClassSourceOptionsEntity;\n}\n\n@Entity({ tableName: 'classes' })\n@Index({ properties: ['year', 'ldapDN'] })\nexport class ClassEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\t@Index()\n\tschoolId: ObjectId;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tuserIds?: ObjectId[];\n\n\t@Property()\n\t@Index()\n\tteacherIds: ObjectId[];\n\n\t@Property({ nullable: true })\n\tinvitationLink?: string;\n\n\t@Property({ nullable: true })\n\tyear?: ObjectId;\n\n\t@Property({ nullable: true })\n\tgradeLevel?: number;\n\n\t@Property({ nullable: true })\n\tldapDN?: string;\n\n\t@Property({ nullable: true })\n\tsuccessor?: ObjectId;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tsource?: string;\n\n\t@Embedded(() => ClassSourceOptionsEntity, { object: true, nullable: true })\n\tsourceOptions?: ClassSourceOptionsEntity;\n\n\tprivate validate(props: IClassEntityProps) {\n\t\tif (props.gradeLevel !== undefined && (props.gradeLevel 13)) {\n\t\t\tthrow new Error('gradeLevel must be value beetween 1 and 13');\n\t\t}\n\t}\n\n\tconstructor(props: IClassEntityProps) {\n\t\tsuper();\n\t\tthis.validate(props);\n\n\t\tif (props.id !== undefined) {\n\t\t\tthis.id = props.id;\n\t\t}\n\n\t\tthis.name = props.name;\n\t\tthis.schoolId = props.schoolId;\n\n\t\tif (props.userIds !== undefined) {\n\t\t\tthis.userIds = props.userIds;\n\t\t}\n\n\t\tthis.teacherIds = props.teacherIds;\n\n\t\tif (props.invitationLink !== undefined) {\n\t\t\tthis.invitationLink = props.invitationLink;\n\t\t}\n\n\t\tif (props.year !== undefined) {\n\t\t\tthis.year = props.year;\n\t\t}\n\t\tif (props.gradeLevel !== undefined) {\n\t\t\tthis.gradeLevel = props.gradeLevel;\n\t\t}\n\t\tif (props.ldapDN !== undefined) {\n\t\t\tthis.ldapDN = props.ldapDN;\n\t\t}\n\n\t\tif (props.successor !== undefined) {\n\t\t\tthis.successor = props.successor;\n\t\t}\n\n\t\tif (props.source !== undefined) {\n\t\t\tthis.source = props.source;\n\t\t}\n\n\t\tif (props.sourceOptions !== undefined) {\n\t\t\tthis.sourceOptions = props.sourceOptions;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICollaborativeStorageStrategy.html":{"url":"interfaces/ICollaborativeStorageStrategy.html","title":"interface - ICollaborativeStorageStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICollaborativeStorageStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts\n \n\n\n \n Description\n \n \n base interface for all CollaborativeStorage Strategies\n\n \n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n deleteTeam\n \n \n \n \n updateTeam\n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n \n \ncreateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteTeam\n \n \n \n \n \n \ndeleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeam\n \n \n \n \n \n \nupdateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n \n \nupdateTeamPermissionsForRole(dto: TeamRolePermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts:12\n \n \n\n\n \n \n Updates The Permissions for the given Role in the given Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n dto\n \n TeamRolePermissionsDto\n \n\n \n No\n \n\n\n \n The DTO to be processed\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { TeamDto } from '@src/modules/collaborative-storage/services/dto/team.dto';\nimport { TeamRolePermissionsDto } from '../dto/team-role-permissions.dto';\n\n/**\n * base interface for all CollaborativeStorage Strategies\n */\nexport interface ICollaborativeStorageStrategy {\n\t/**\n\t * Updates The Permissions for the given Role in the given Team\n\t * @param dto The DTO to be processed\n\t */\n\tupdateTeamPermissionsForRole(dto: TeamRolePermissionsDto): Promise;\n\n\tdeleteTeam(teamId: string): Promise;\n\n\tcreateTeam(team: TeamDto): Promise;\n\n\tupdateTeam(team: TeamDto): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICollectionFilePath.html":{"url":"interfaces/ICollectionFilePath.html","title":"interface - ICollectionFilePath","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICollectionFilePath\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/uc/database-management.uc.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n collectionName\n \n \n \n \n filePath\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n collectionName\n \n \n \n \n \n \n \n \n collectionName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n filePath\n \n \n \n \n \n \n \n \n filePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { StorageProviderEntity, System } from '@shared/domain';\nimport { DatabaseManagementService } from '@shared/infra/database';\nimport { DefaultEncryptionService, IEncryptionService, LdapEncryptionService } from '@shared/infra/encryption';\nimport { FileSystemAdapter } from '@shared/infra/file-system';\nimport { LegacyLogger } from '@src/core/logger';\nimport { orderBy } from 'lodash';\nimport { BsonConverter } from '../converter/bson.converter';\nimport { generateSeedData } from '../seed-data/generateSeedData';\n\nexport interface ICollectionFilePath {\n\tfilePath: string;\n\tcollectionName: string;\n}\n\nconst systemsCollectionName = 'systems';\nconst storageprovidersCollectionName = 'storageproviders';\n\nconst defaultSecretReplacementHintText = 'replace with secret placeholder';\n\n@Injectable()\nexport class DatabaseManagementUc {\n\t/**\n\t * relative path to seed data folder based of location of this file.\n\t */\n\tprivate basePath = '../../../../../../backup';\n\n\tconstructor(\n\t\tprivate fileSystemAdapter: FileSystemAdapter,\n\t\tprivate databaseManagementService: DatabaseManagementService,\n\t\tprivate bsonConverter: BsonConverter,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate em: EntityManager,\n\t\t@Inject(DefaultEncryptionService) private readonly defaultEncryptionService: IEncryptionService,\n\t\t@Inject(LdapEncryptionService) private readonly ldapEncryptionService: IEncryptionService\n\t) {\n\t\tthis.logger.setContext(DatabaseManagementUc.name);\n\t}\n\n\t/**\n\t * absolute path reference for seed data base folder.\n\t */\n\tprivate get baseDir(): string {\n\t\tconst folderPath = this.fileSystemAdapter.joinPath(__dirname, this.basePath);\n\t\treturn folderPath;\n\t}\n\n\t/**\n\t * setup dir with json files\n\t */\n\tprivate getSeedFolder() {\n\t\treturn this.fileSystemAdapter.joinPath(this.baseDir, 'setup');\n\t}\n\n\t/**\n\t * export folder name based on current date\n\t * @returns\n\t */\n\tprivate getTargetFolder(toSeedFolder?: boolean) {\n\t\tif (toSeedFolder === true) {\n\t\t\tconst targetFolder = this.getSeedFolder();\n\t\t\treturn targetFolder;\n\t\t}\n\t\tconst now = new Date();\n\t\tconst currentDateTime = `${now.getFullYear()}_${\n\t\t\tnow.getMonth() + 1\n\t\t}_${now.getDate()}_${now.getHours()}_${now.getMinutes()}_${now.getSeconds()}`;\n\t\tconst targetFolder = this.fileSystemAdapter.joinPath(this.baseDir, currentDateTime);\n\t\treturn targetFolder;\n\t}\n\n\t/**\n\t * Loads all collection names from database and adds related file paths.\n\t * @returns {ICollectionFilePath}\n\t */\n\tprivate async loadAllCollectionsFromDatabase(targetFolder: string): Promise {\n\t\tconst collections = await this.databaseManagementService.getCollectionNames();\n\t\tconst collectionsWithFilePaths = collections.map((collectionName) => {\n\t\t\treturn {\n\t\t\t\tfilePath: this.fileSystemAdapter.joinPath(targetFolder, `${collectionName}.json`),\n\t\t\t\tcollectionName,\n\t\t\t};\n\t\t});\n\t\treturn collectionsWithFilePaths;\n\t}\n\n\t/**\n\t * Loads all collection names and file paths from backup files.\n\t * @returns {ICollectionFilePath}\n\t */\n\tprivate async loadAllCollectionsFromFilesystem(baseDir: string): Promise {\n\t\tconst filenames = await this.fileSystemAdapter.readDir(baseDir);\n\t\tconst collectionsWithFilePaths = filenames.map((fileName) => {\n\t\t\treturn {\n\t\t\t\tfilePath: this.fileSystemAdapter.joinPath(baseDir, fileName),\n\t\t\t\tcollectionName: fileName.split('.')[0],\n\t\t\t};\n\t\t});\n\t\treturn collectionsWithFilePaths;\n\t}\n\n\t/**\n\t * Scans for existing collections and optionally filters them based on \n\t * @param source\n\t * @param collectionNameFilter\n\t * @returns {ICollectionFilePath} the filtered collection names and related file paths\n\t */\n\tprivate async loadCollectionsAvailableFromSourceAndFilterByCollectionNames(\n\t\tsource: 'files' | 'database',\n\t\tfolder: string,\n\t\tcollectionNameFilter?: string[]\n\t) {\n\t\tlet allCollectionsWithFilePaths: ICollectionFilePath[] = [];\n\n\t\t// load all available collections from source\n\t\tif (source === 'files') {\n\t\t\tallCollectionsWithFilePaths = await this.loadAllCollectionsFromFilesystem(folder);\n\t\t} else {\n\t\t\t// source === 'database'\n\t\t\tallCollectionsWithFilePaths = await this.loadAllCollectionsFromDatabase(folder);\n\t\t}\n\n\t\t// when a collection name filter is given, apply it and check\n\t\tif (Array.isArray(collectionNameFilter) && collectionNameFilter.length > 0) {\n\t\t\tconst filteredCollectionsWithFilePaths = allCollectionsWithFilePaths.filter(({ collectionName }) =>\n\t\t\t\tcollectionNameFilter?.includes(collectionName)\n\t\t\t);\n\n\t\t\tif (filteredCollectionsWithFilePaths.length !== collectionNameFilter.length) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`At least one collectionName of ${JSON.stringify(\n\t\t\t\t\t\tcollectionNameFilter\n\t\t\t\t\t)} is invalid. Collection names available in '${source}' are: ${JSON.stringify(\n\t\t\t\t\t\tallCollectionsWithFilePaths.map((file) => file.collectionName)\n\t\t\t\t\t)}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn filteredCollectionsWithFilePaths;\n\t\t}\n\n\t\treturn allCollectionsWithFilePaths;\n\t}\n\n\tprivate async dropCollectionIfExists(collectionName: string) {\n\t\tconst collectionExists = await this.databaseManagementService.collectionExists(collectionName);\n\t\tif (collectionExists) {\n\t\t\t// clear existing documents, if collection exists\n\t\t\tawait this.databaseManagementService.clearCollection(collectionName);\n\t\t} else {\n\t\t\t// create collection\n\t\t\tawait this.databaseManagementService.createCollection(collectionName);\n\t\t}\n\t}\n\n\tasync seedDatabaseCollectionsFromFactories(collections?: string[]): Promise {\n\t\tconst promises = generateSeedData((s: string) => this.injectEnvVars(s))\n\t\t\t.filter((data) => {\n\t\t\t\tif (collections && collections.length > 0) {\n\t\t\t\t\treturn collections.includes(data.collectionName);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t\t.map(async ({ collectionName, data }) => {\n\t\t\t\tif (collectionName === systemsCollectionName) {\n\t\t\t\t\tthis.encryptSecretsInSystems(data as System[]);\n\t\t\t\t}\n\t\t\t\tawait this.dropCollectionIfExists(collectionName);\n\n\t\t\t\tawait this.em.persistAndFlush(data);\n\n\t\t\t\treturn `${collectionName}:${data.length}`;\n\t\t\t});\n\n\t\tconst seededCollectionsWithAmount = await Promise.all(promises);\n\n\t\treturn seededCollectionsWithAmount;\n\t}\n\n\t/**\n\t * Imports all or filtered from filesystem as bson to database.\n\t * The behaviour should match $ mongoimport\n\t * @param collections optional filter applied on existing collections\n\t * @returns the list of collection names exported\n\t */\n\tasync seedDatabaseCollectionsFromFileSystem(collections?: string[]): Promise {\n\t\t// detect collections to seed based on filesystem data\n\t\tconst setupPath = this.getSeedFolder();\n\t\tconst collectionsToSeed = await this.loadCollectionsAvailableFromSourceAndFilterByCollectionNames(\n\t\t\t'files',\n\t\t\tsetupPath,\n\t\t\tcollections\n\t\t);\n\n\t\tconst seededCollectionsWithAmount: string[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcollectionsToSeed.map(async ({ filePath, collectionName }) => {\n\t\t\t\t// load text from backup file\n\t\t\t\tlet fileContent = await this.fileSystemAdapter.readFile(filePath);\n\n\t\t\t\tif (collectionName === systemsCollectionName || collectionName === storageprovidersCollectionName) {\n\t\t\t\t\tfileContent = this.injectEnvVars(fileContent);\n\t\t\t\t}\n\n\t\t\t\t// create bson-objects from text\n\t\t\t\tconst bsonDocuments = JSON.parse(fileContent) as unknown[];\n\t\t\t\t// deserialize bson (format of mongoexport) to json documents we can import to mongo\n\t\t\t\tconst jsonDocuments = this.bsonConverter.deserialize(bsonDocuments);\n\n\t\t\t\t// hint: collection drop/create is very slow, delete all documents instead\n\t\t\t\tconst collectionExists = await this.databaseManagementService.collectionExists(collectionName);\n\t\t\t\tif (collectionExists) {\n\t\t\t\t\t// clear existing documents, if collection exists\n\t\t\t\t\tawait this.databaseManagementService.clearCollection(collectionName);\n\t\t\t\t} else {\n\t\t\t\t\t// create collection\n\t\t\t\t\tawait this.databaseManagementService.createCollection(collectionName);\n\t\t\t\t}\n\n\t\t\t\tthis.encryptSecrets(collectionName, jsonDocuments);\n\n\t\t\t\t// import backup data into database collection\n\t\t\t\tconst importedDocumentsAmount = await this.databaseManagementService.importCollection(\n\t\t\t\t\tcollectionName,\n\t\t\t\t\tjsonDocuments\n\t\t\t\t);\n\t\t\t\t// keep collection name and number of imported documents\n\t\t\t\tseededCollectionsWithAmount.push(`${collectionName}:${importedDocumentsAmount}`);\n\t\t\t})\n\t\t);\n\t\treturn seededCollectionsWithAmount;\n\t}\n\n\t/**\n\t * Exports all or defined from database as bson to filesystem.\n\t * The behaviour should match $ mongoexport\n\t * @param collections optional filter applied on existing collections\n\t * @param toSeedFolder optional override existing seed data files\n\t * @returns the list of collection names exported\n\t */\n\tasync exportCollectionsToFileSystem(collections?: string[], toSeedFolder?: boolean): Promise {\n\t\tconst targetFolder = this.getTargetFolder(toSeedFolder);\n\t\tawait this.fileSystemAdapter.createDir(targetFolder);\n\t\t// detect collections to export based on database collections\n\t\tconst collectionsToExport = await this.loadCollectionsAvailableFromSourceAndFilterByCollectionNames(\n\t\t\t'database',\n\t\t\ttargetFolder,\n\t\t\tcollections\n\t\t);\n\t\tconst exportedCollections: string[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcollectionsToExport.map(async ({ filePath, collectionName }) => {\n\t\t\t\t// load json documents from collection\n\t\t\t\tconst jsonDocuments = await this.databaseManagementService.findDocumentsOfCollection(collectionName);\n\t\t\t\tthis.removeSecrets(collectionName, jsonDocuments);\n\t\t\t\t// serialize to bson (format of mongoexport)\n\t\t\t\tconst bsonDocuments = this.bsonConverter.serialize(jsonDocuments);\n\t\t\t\t// sort results to have 'new' data added at documents end\n\t\t\t\tconst sortedBsonDocuments = orderBy(bsonDocuments, ['_id.$oid', 'createdAt.$date'], ['asc', 'asc']);\n\t\t\t\t// convert to text\n\t\t\t\tconst TAB = '\t';\n\t\t\t\tconst json = JSON.stringify(sortedBsonDocuments, undefined, TAB);\n\t\t\t\t// persist to filesystem\n\t\t\t\tawait this.fileSystemAdapter.writeFile(filePath, json + this.fileSystemAdapter.EOL);\n\t\t\t\t// keep collection name and number of exported documents\n\t\t\t\texportedCollections.push(`${collectionName}:${sortedBsonDocuments.length}`);\n\t\t\t})\n\t\t);\n\t\treturn exportedCollections;\n\t}\n\n\t/**\n\t * Updates the indexes in the database based on definitions in entities\n\t */\n\tasync syncIndexes(): Promise {\n\t\tawait this.createUserSearchIndex();\n\t\treturn this.databaseManagementService.syncIndexes();\n\t}\n\n\tprivate async createUserSearchIndex(): Promise {\n\t\tconst usersCollection = this.databaseManagementService.getDatabaseCollection('users');\n\t\tconst userSearchIndexExists = await usersCollection.indexExists('userSearchIndex');\n\t\tconst indexes = await usersCollection.indexes();\n\n\t\tif (userSearchIndexExists) {\n\t\t\tconst userSearchIndex = indexes.filter((i) => i.name === 'userSearchIndex');\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (userSearchIndex[0].key?.schoolId === 1) {\n\t\t\t\tthis.logger.debug('userSearcIndex does not require update');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait usersCollection.dropIndex('userSearchIndex');\n\t\t}\n\n\t\tawait usersCollection.createIndex(\n\t\t\t{\n\t\t\t\tfirstName: 'text',\n\t\t\t\tlastName: 'text',\n\t\t\t\temail: 'text',\n\t\t\t\tfirstNameSearchValues: 'text',\n\t\t\t\tlastNameSearchValues: 'text',\n\t\t\t\temailSearchValues: 'text',\n\t\t\t\tschoolId: 1,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'userSearchIndex',\n\t\t\t\tweights: {\n\t\t\t\t\tfirstName: 15,\n\t\t\t\t\tlastName: 15,\n\t\t\t\t\temail: 15,\n\t\t\t\t\tfirstNameSearchValues: 3,\n\t\t\t\t\tlastNameSearchValues: 3,\n\t\t\t\t\temailSearchValues: 2,\n\t\t\t\t},\n\t\t\t\tdefault_language: 'none', // no stop words and no stemming,\n\t\t\t\tlanguage_override: 'de',\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate injectEnvVars(json: string): string {\n\t\t// replace ${VAR} with VAR content\n\t\tjson = json.replace(/(?\n\t\t\tthis.resolvePlaceholder(placeholder.substring(2, placeholder.length - 1))\n\t\t);\n\t\t// replace \\$ with $ (escaped placeholder sequence)\n\t\tjson = json.replace(/\\\\\\$/g, '$');\n\t\treturn json;\n\t}\n\n\tprivate resolvePlaceholder(placeholder: string) {\n\t\tif (Configuration.has(placeholder)) {\n\t\t\treturn Configuration.get(placeholder) as string;\n\t\t}\n\t\tconst placeholderValue = this.configService.get(placeholder);\n\t\tif (placeholderValue) {\n\t\t\treturn placeholderValue;\n\t\t}\n\t\tthis.logger.warn(`Placeholder \"${placeholder}\" could not be resolved!`);\n\t\treturn '';\n\t}\n\n\tprivate encryptSecrets(collectionName: string, jsonDocuments: unknown[]) {\n\t\tif (collectionName === systemsCollectionName) {\n\t\t\tthis.encryptSecretsInSystems(jsonDocuments as System[]);\n\t\t}\n\t}\n\n\tprivate encryptSecretsInSystems(systems: System[]) {\n\t\tsystems.forEach((system) => {\n\t\t\tif (system.oauthConfig) {\n\t\t\t\tsystem.oauthConfig.clientSecret = this.defaultEncryptionService.encrypt(system.oauthConfig.clientSecret);\n\t\t\t}\n\t\t\tif (system.oidcConfig) {\n\t\t\t\tsystem.oidcConfig.clientSecret = this.defaultEncryptionService.encrypt(system.oidcConfig.clientSecret);\n\t\t\t}\n\t\t\tif (system.ldapConfig) {\n\t\t\t\tsystem.ldapConfig.searchUserPassword = this.ldapEncryptionService.encrypt(\n\t\t\t\t\tsystem.ldapConfig.searchUserPassword as string\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t\treturn systems;\n\t}\n\n\t/**\n\t * Removes all known secrets (hard coded) from the export.\n\t * Manual replacement with the intend placeholders or value is mandatory.\n\t * Currently this affects system and storageproviders collections.\n\t */\n\tprivate removeSecrets(collectionName: string, jsonDocuments: unknown[]) {\n\t\tif (collectionName === systemsCollectionName) {\n\t\t\tthis.removeSecretsFromSystems(jsonDocuments as System[]);\n\t\t}\n\t\tif (collectionName === storageprovidersCollectionName) {\n\t\t\tthis.removeSecretsFromStorageproviders(jsonDocuments as StorageProviderEntity[]);\n\t\t}\n\t}\n\n\tprivate removeSecretsFromStorageproviders(storageProviders: StorageProviderEntity[]) {\n\t\tstorageProviders.forEach((storageProvider) => {\n\t\t\tstorageProvider.accessKeyId = defaultSecretReplacementHintText;\n\t\t\tstorageProvider.secretAccessKey = defaultSecretReplacementHintText;\n\t\t});\n\t}\n\n\tprivate removeSecretsFromSystems(systems: System[]) {\n\t\tsystems.forEach((system) => {\n\t\t\tif (system.oauthConfig) {\n\t\t\t\tsystem.oauthConfig.clientSecret = defaultSecretReplacementHintText;\n\t\t\t}\n\t\t\tif (system.oidcConfig) {\n\t\t\t\tsystem.oidcConfig.clientSecret = defaultSecretReplacementHintText;\n\t\t\t}\n\t\t\tif (system.ldapConfig) {\n\t\t\t\tsystem.ldapConfig.searchUserPassword = defaultSecretReplacementHintText;\n\t\t\t}\n\t\t});\n\t\treturn systems;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeConfig.html":{"url":"interfaces/ICommonCartridgeConfig.html","title":"interface - ICommonCartridgeConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge.config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n FEATURE_IMSCC_COURSE_EXPORT_ENABLED\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n FEATURE_IMSCC_COURSE_EXPORT_ENABLED\n \n \n \n \n \n \n \n \n FEATURE_IMSCC_COURSE_EXPORT_ENABLED: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface ICommonCartridgeConfig {\n\tFEATURE_IMSCC_COURSE_EXPORT_ENABLED: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeElement.html":{"url":"interfaces/ICommonCartridgeElement.html","title":"interface - ICommonCartridgeElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-element.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-element.interface.ts:2\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n \n\n\n \n export interface ICommonCartridgeElement {\n\ttransform(): Record;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeFile.html":{"url":"interfaces/ICommonCartridgeFile.html","title":"interface - ICommonCartridgeFile","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeFile\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n content\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file.interface.ts:2\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file.interface.ts:3\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n\n\n \n\n\n \n export interface ICommonCartridgeFile {\n\tcanInline(): boolean;\n\tcontent(): string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeFileBuilder.html":{"url":"interfaces/ICommonCartridgeFileBuilder.html","title":"interface - ICommonCartridgeFileBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeFileBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n addOrganization\n \n \n \n \n addResourceToFile\n \n \n \n \n build\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n addOrganization\n \n \n \n \n \n \naddOrganization(props: ICommonCartridgeOrganizationProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeOrganizationProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeOrganizationBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addResourceToFile\n \n \n \n \n \n \naddResourceToFile(props: ICommonCartridgeResourceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeResourceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeFileBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:32\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n\n\n \n import AdmZip from 'adm-zip';\nimport { Builder } from 'xml2js';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeManifestElement } from './common-cartridge-manifest-element';\nimport {\n\tCommonCartridgeResourceItemElement,\n\tICommonCartridgeResourceProps,\n} from './common-cartridge-resource-item-element';\nimport {\n\tCommonCartridgeOrganizationItemElement,\n\tICommonCartridgeOrganizationProps,\n} from './common-cartridge-organization-item-element';\n\nexport type ICommonCartridgeFileBuilderOptions = {\n\tidentifier: string;\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport interface ICommonCartridgeOrganizationBuilder {\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder;\n}\n\nexport interface ICommonCartridgeFileBuilder {\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder;\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder;\n\n\tbuild(): Promise;\n}\n\nclass CommonCartridgeOrganizationBuilder implements ICommonCartridgeOrganizationBuilder {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeOrganizationProps,\n\t\tprivate readonly xmlBuilder: Builder,\n\t\tprivate readonly zipBuilder: AdmZip\n\t) {}\n\n\tget organization(): ICommonCartridgeElement {\n\t\treturn new CommonCartridgeOrganizationItemElement(this.props);\n\t}\n\n\tget resources(): ICommonCartridgeElement[] {\n\t\treturn this.props.resources.map(\n\t\t\t(resourceProps) => new CommonCartridgeResourceItemElement(resourceProps, this.xmlBuilder)\n\t\t);\n\t}\n\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst newResource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tthis.props.resources.push(props);\n\t\tif (!newResource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(newResource.content()));\n\t\t}\n\t\treturn this;\n\t}\n}\n\nexport class CommonCartridgeFileBuilder implements ICommonCartridgeFileBuilder {\n\tprivate readonly xmlBuilder = new Builder();\n\n\tprivate readonly zipBuilder = new AdmZip();\n\n\tprivate readonly organizations = new Array();\n\n\tprivate readonly resources = new Array();\n\n\tconstructor(private readonly options: ICommonCartridgeFileBuilderOptions) {}\n\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst organizationBuilder = new CommonCartridgeOrganizationBuilder(props, this.xmlBuilder, this.zipBuilder);\n\t\tthis.organizations.push(organizationBuilder);\n\t\treturn organizationBuilder;\n\t}\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder {\n\t\tconst resource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tif (!resource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(resource.content()));\n\t\t}\n\t\tthis.resources.push(resource);\n\t\treturn this;\n\t}\n\n\tasync build(): Promise {\n\t\tconst organizations = this.organizations.map((organization) => organization.organization);\n\t\tconst resources = this.organizations.flatMap((organization) => organization.resources).concat(this.resources);\n\t\tconst manifest = this.xmlBuilder.buildObject(\n\t\t\tnew CommonCartridgeManifestElement(\n\t\t\t\t{\n\t\t\t\t\tidentifier: this.options.identifier,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: this.options.title,\n\t\t\t\t\tcopyrightOwners: this.options.copyrightOwners,\n\t\t\t\t\tcreationYear: this.options.creationYear,\n\t\t\t\t\tversion: this.options.version,\n\t\t\t\t},\n\t\t\t\torganizations,\n\t\t\t\tresources\n\t\t\t).transform()\n\t\t);\n\t\tthis.zipBuilder.addFile('imsmanifest.xml', Buffer.from(manifest));\n\t\treturn this.zipBuilder.toBufferPromise();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeOrganizationBuilder.html":{"url":"interfaces/ICommonCartridgeOrganizationBuilder.html","title":"interface - ICommonCartridgeOrganizationBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeOrganizationBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n addResourceToOrganization\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n addResourceToOrganization\n \n \n \n \n \n \naddResourceToOrganization(props: ICommonCartridgeResourceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeResourceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeOrganizationBuilder\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import AdmZip from 'adm-zip';\nimport { Builder } from 'xml2js';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeManifestElement } from './common-cartridge-manifest-element';\nimport {\n\tCommonCartridgeResourceItemElement,\n\tICommonCartridgeResourceProps,\n} from './common-cartridge-resource-item-element';\nimport {\n\tCommonCartridgeOrganizationItemElement,\n\tICommonCartridgeOrganizationProps,\n} from './common-cartridge-organization-item-element';\n\nexport type ICommonCartridgeFileBuilderOptions = {\n\tidentifier: string;\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport interface ICommonCartridgeOrganizationBuilder {\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder;\n}\n\nexport interface ICommonCartridgeFileBuilder {\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder;\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder;\n\n\tbuild(): Promise;\n}\n\nclass CommonCartridgeOrganizationBuilder implements ICommonCartridgeOrganizationBuilder {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeOrganizationProps,\n\t\tprivate readonly xmlBuilder: Builder,\n\t\tprivate readonly zipBuilder: AdmZip\n\t) {}\n\n\tget organization(): ICommonCartridgeElement {\n\t\treturn new CommonCartridgeOrganizationItemElement(this.props);\n\t}\n\n\tget resources(): ICommonCartridgeElement[] {\n\t\treturn this.props.resources.map(\n\t\t\t(resourceProps) => new CommonCartridgeResourceItemElement(resourceProps, this.xmlBuilder)\n\t\t);\n\t}\n\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst newResource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tthis.props.resources.push(props);\n\t\tif (!newResource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(newResource.content()));\n\t\t}\n\t\treturn this;\n\t}\n}\n\nexport class CommonCartridgeFileBuilder implements ICommonCartridgeFileBuilder {\n\tprivate readonly xmlBuilder = new Builder();\n\n\tprivate readonly zipBuilder = new AdmZip();\n\n\tprivate readonly organizations = new Array();\n\n\tprivate readonly resources = new Array();\n\n\tconstructor(private readonly options: ICommonCartridgeFileBuilderOptions) {}\n\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst organizationBuilder = new CommonCartridgeOrganizationBuilder(props, this.xmlBuilder, this.zipBuilder);\n\t\tthis.organizations.push(organizationBuilder);\n\t\treturn organizationBuilder;\n\t}\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder {\n\t\tconst resource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tif (!resource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(resource.content()));\n\t\t}\n\t\tthis.resources.push(resource);\n\t\treturn this;\n\t}\n\n\tasync build(): Promise {\n\t\tconst organizations = this.organizations.map((organization) => organization.organization);\n\t\tconst resources = this.organizations.flatMap((organization) => organization.resources).concat(this.resources);\n\t\tconst manifest = this.xmlBuilder.buildObject(\n\t\t\tnew CommonCartridgeManifestElement(\n\t\t\t\t{\n\t\t\t\t\tidentifier: this.options.identifier,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: this.options.title,\n\t\t\t\t\tcopyrightOwners: this.options.copyrightOwners,\n\t\t\t\t\tcreationYear: this.options.creationYear,\n\t\t\t\t\tversion: this.options.version,\n\t\t\t\t},\n\t\t\t\torganizations,\n\t\t\t\tresources\n\t\t\t).transform()\n\t\t);\n\t\tthis.zipBuilder.addFile('imsmanifest.xml', Buffer.from(manifest));\n\t\treturn this.zipBuilder.toBufferPromise();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentEtherpadProperties.html":{"url":"interfaces/IComponentEtherpadProperties.html","title":"interface - IComponentEtherpadProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentEtherpadProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n description\n \n \n \n \n title\n \n \n \n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentGeogebraProperties.html":{"url":"interfaces/IComponentGeogebraProperties.html","title":"interface - IComponentGeogebraProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentGeogebraProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n materialId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n materialId\n \n \n \n \n \n \n \n \n materialId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentInternalProperties.html":{"url":"interfaces/IComponentInternalProperties.html","title":"interface - IComponentInternalProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentInternalProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentLernstoreProperties.html":{"url":"interfaces/IComponentLernstoreProperties.html","title":"interface - IComponentLernstoreProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentLernstoreProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n resources\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n resources\n \n \n \n \n \n \n \n \n resources: literal type[]\n\n \n \n\n\n \n \n Type : literal type[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentNexboardProperties.html":{"url":"interfaces/IComponentNexboardProperties.html","title":"interface - IComponentNexboardProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentNexboardProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n board\n \n \n \n \n description\n \n \n \n \n title\n \n \n \n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n board\n \n \n \n \n \n \n \n \n board: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentTextProperties.html":{"url":"interfaces/IComponentTextProperties.html","title":"interface - IComponentTextProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentTextProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n text\n \n \n \n \n \n \n \n \n text: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IContextExternalToolProperties.html":{"url":"interfaces/IContextExternalToolProperties.html","title":"interface - IContextExternalToolProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IContextExternalToolProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextId\n \n \n \n \n contextType\n \n \n \n Optional\n \n displayName\n \n \n \n Optional\n \n parameters\n \n \n \n \n schoolTool\n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextId\n \n \n \n \n \n \n \n \n contextId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n \n \n contextType: ContextExternalToolType\n\n \n \n\n\n \n \n Type : ContextExternalToolType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n \n \n displayName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n \n \n parameters: CustomParameterEntryEntity[]\n\n \n \n\n\n \n \n Type : CustomParameterEntryEntity[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n schoolTool\n \n \n \n \n \n \n \n \n schoolTool: SchoolExternalToolEntity\n\n \n \n\n\n \n \n Type : SchoolExternalToolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n toolVersion: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { CustomParameterEntryEntity } from '../../common/entity';\nimport { SchoolExternalToolEntity } from '../../school-external-tool/entity';\nimport { ContextExternalToolType } from './context-external-tool-type.enum';\n\nexport interface IContextExternalToolProperties {\n\tschoolTool: SchoolExternalToolEntity;\n\n\tcontextId: string;\n\n\tcontextType: ContextExternalToolType;\n\n\tdisplayName?: string;\n\n\tparameters?: CustomParameterEntryEntity[];\n\n\ttoolVersion: number;\n}\n\n@Entity({ tableName: 'context_external_tools' })\nexport class ContextExternalToolEntity extends BaseEntityWithTimestamps {\n\t@ManyToOne()\n\tschoolTool: SchoolExternalToolEntity;\n\n\t@Property()\n\tcontextId: string;\n\n\t@Property()\n\tcontextType: ContextExternalToolType;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Embedded(() => CustomParameterEntryEntity, { array: true })\n\tparameters: CustomParameterEntryEntity[];\n\n\t@Property()\n\ttoolVersion: number;\n\n\tconstructor(props: IContextExternalToolProperties) {\n\t\tsuper();\n\t\tthis.schoolTool = props.schoolTool;\n\t\tthis.contextId = props.contextId;\n\t\tthis.contextType = props.contextType;\n\t\tthis.displayName = props.displayName;\n\t\tthis.parameters = props.parameters ?? [];\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICopyFileDO.html":{"url":"interfaces/ICopyFileDO.html","title":"interface - ICopyFileDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICopyFileDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/exchange/files-storage.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n \n name\n \n \n \n \n sourceId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n sourceId\n \n \n \n \n \n \n \n \n sourceId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { EntityId } from '@shared/domain';\n\nexport const FilesStorageExchange = Configuration.get('FILES_STORAGE__EXCHANGE') as string;\n\nexport enum FilesStorageEvents {\n\t'COPY_FILES_OF_PARENT' = 'copy-files-of-parent',\n\t'LIST_FILES_OF_PARENT' = 'list-files-of-parent',\n\t'DELETE_FILES_OF_PARENT' = 'delete-files-of-parent',\n}\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport interface ICopyFilesOfParentParams {\n\tuserId: EntityId;\n\tsource: IFileRecordParams;\n\ttarget: IFileRecordParams;\n}\n\nexport interface IFileRecordParams {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\nexport interface ICopyFileDO {\n\tid?: EntityId;\n\tsourceId: EntityId;\n\tname: string;\n}\n\nexport interface IFileDO {\n\tid: string;\n\tname: string;\n\tparentId: string;\n\tsecurityCheckStatus: ScanStatus;\n\tsize: number;\n\tcreatorId: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tdeletedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICopyFileDomainObjectProps.html":{"url":"interfaces/ICopyFileDomainObjectProps.html","title":"interface - ICopyFileDomainObjectProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICopyFileDomainObjectProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/copy-file-domain-object-props.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n \n name\n \n \n \n \n sourceId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId | undefined\n\n \n \n\n\n \n \n Type : EntityId | undefined\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n sourceId\n \n \n \n \n \n \n \n \n sourceId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface ICopyFileDomainObjectProps {\n\tid?: EntityId | undefined;\n\tsourceId: EntityId;\n\tname: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICopyFilesOfParentParams.html":{"url":"interfaces/ICopyFilesOfParentParams.html","title":"interface - ICopyFilesOfParentParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICopyFilesOfParentParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/exchange/files-storage.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n source\n \n \n \n \n target\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: IFileRecordParams\n\n \n \n\n\n \n \n Type : IFileRecordParams\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: IFileRecordParams\n\n \n \n\n\n \n \n Type : IFileRecordParams\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { EntityId } from '@shared/domain';\n\nexport const FilesStorageExchange = Configuration.get('FILES_STORAGE__EXCHANGE') as string;\n\nexport enum FilesStorageEvents {\n\t'COPY_FILES_OF_PARENT' = 'copy-files-of-parent',\n\t'LIST_FILES_OF_PARENT' = 'list-files-of-parent',\n\t'DELETE_FILES_OF_PARENT' = 'delete-files-of-parent',\n}\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport interface ICopyFilesOfParentParams {\n\tuserId: EntityId;\n\tsource: IFileRecordParams;\n\ttarget: IFileRecordParams;\n}\n\nexport interface IFileRecordParams {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\nexport interface ICopyFileDO {\n\tid?: EntityId;\n\tsourceId: EntityId;\n\tname: string;\n}\n\nexport interface IFileDO {\n\tid: string;\n\tname: string;\n\tparentId: string;\n\tsecurityCheckStatus: ScanStatus;\n\tsize: number;\n\tcreatorId: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tdeletedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICopyFilesRequestInfo.html":{"url":"interfaces/ICopyFilesRequestInfo.html","title":"interface - ICopyFilesRequestInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICopyFilesRequestInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/copy-file-request-info.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n source\n \n \n \n \n target\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: IFileRequestInfo\n\n \n \n\n\n \n \n Type : IFileRequestInfo\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: IFileRequestInfo\n\n \n \n\n\n \n \n Type : IFileRequestInfo\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { IFileRequestInfo } from './file-request-info';\n\nexport interface ICopyFilesRequestInfo {\n\tuserId: EntityId;\n\tsource: IFileRequestInfo;\n\ttarget: IFileRequestInfo;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICoreModuleConfig.html":{"url":"interfaces/ICoreModuleConfig.html","title":"interface - ICoreModuleConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICoreModuleConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/interfaces/core-module-config.ts\n \n\n\n\n \n Extends\n \n \n IInterceptorConfig\n \n\n\n\n\n \n\n\n \n import { IInterceptorConfig } from '@shared/common';\nimport { ILoggerConfig } from '../logger';\n\nexport interface ICoreModuleConfig extends IInterceptorConfig, ILoggerConfig {}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICourseGroupProperties.html":{"url":"interfaces/ICourseGroupProperties.html","title":"interface - ICourseGroupProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICourseGroupProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/coursegroup.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n course\n \n \n \n \n name\n \n \n \n Optional\n \n students\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n course\n \n \n \n \n \n \n \n \n course: Course\n\n \n \n\n\n \n \n Type : Course\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n students\n \n \n \n \n \n \n \n \n students: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property } from '@mikro-orm/core';\nimport { IEntityWithSchool } from '../interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { ILessonParent } from './lesson.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { ITaskParent } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ICourseGroupProperties {\n\tname: string;\n\tcourse: Course;\n\tstudents?: User[];\n}\n\n@Entity({ tableName: 'coursegroups' })\n@Index({ properties: ['school', 'course'] })\nexport class CourseGroup extends BaseEntityWithTimestamps implements IEntityWithSchool, ITaskParent, ILessonParent {\n\t@Property()\n\tname: string;\n\n\t@ManyToMany('User', undefined, { fieldName: 'userIds' })\n\t@Index()\n\tstudents = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\t@Index()\n\tschool: SchoolEntity;\n\n\tconstructor(props: ICourseGroupProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.course = props.course;\n\t\tthis.school = props.course.school;\n\t\tif (props.students) this.students.set(props.students);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tlet studentIds: EntityId[] = [];\n\n\t\t// A not existing course group can be referenced in a submission.\n\t\t// Therefore we need to handle this case instead of returning an error here.\n\t\tif (this.students) {\n\t\t\tconst studentObjectIds = this.students.getIdentifiers('_id');\n\t\t\tstudentIds = studentObjectIds.map((id): string => id.toString());\n\t\t}\n\n\t\treturn studentIds;\n\t}\n\n\tpublic removeStudent(userId: EntityId): void {\n\t\tthis.students.remove((u) => u.id === userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICourseProperties.html":{"url":"interfaces/ICourseProperties.html","title":"interface - ICourseProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICourseProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/course.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n color\n \n \n \n Optional\n \n copyingSince\n \n \n \n Optional\n \n description\n \n \n \n Optional\n \n features\n \n \n \n Optional\n \n name\n \n \n \n \n school\n \n \n \n Optional\n \n startDate\n \n \n \n Optional\n \n students\n \n \n \n Optional\n \n substitutionTeachers\n \n \n \n Optional\n \n teachers\n \n \n \n Optional\n \n untilDate\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n color\n \n \n \n \n \n \n \n \n color: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n copyingSince\n \n \n \n \n \n \n \n \n copyingSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n features\n \n \n \n \n \n \n \n \n features: CourseFeatures[]\n\n \n \n\n\n \n \n Type : CourseFeatures[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n startDate\n \n \n \n \n \n \n \n \n startDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n students\n \n \n \n \n \n \n \n \n students: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n substitutionTeachers\n \n \n \n \n \n \n \n \n substitutionTeachers: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n teachers\n \n \n \n \n \n \n \n \n teachers: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n untilDate\n \n \n \n \n \n \n \n \n untilDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Enum, Index, ManyToMany, ManyToOne, OneToMany, Property, Unique } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common/exceptions/internal-server-error.exception';\nimport { IEntityWithSchool, ILearnroom } from '@shared/domain/interface';\nimport { EntityId, LearnroomMetadata, LearnroomTypes } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport type { ILessonParent } from './lesson.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { ITaskParent } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ICourseProperties {\n\tname?: string;\n\tdescription?: string;\n\tschool: SchoolEntity;\n\tstudents?: User[];\n\tteachers?: User[];\n\tsubstitutionTeachers?: User[];\n\t// TODO: color format\n\tcolor?: string;\n\tstartDate?: Date;\n\tuntilDate?: Date;\n\tcopyingSince?: Date;\n\tfeatures?: CourseFeatures[];\n}\n\n// that is really really shit default handling :D constructor, getter, js default, em default...what the hell\n// i hope it can cleanup with adding schema instant of I...Properties.\nconst DEFAULT = {\n\tcolor: '#ACACAC',\n\tname: 'Kurse',\n\tdescription: '',\n};\n\nconst enum CourseFeatures {\n\tVIDEOCONFERENCE = 'videoconference',\n}\n\n@Entity({ tableName: 'courses' })\nexport class Course\n\textends BaseEntityWithTimestamps\n\timplements ILearnroom, IEntityWithSchool, ITaskParent, ILessonParent\n{\n\t@Property()\n\tname: string = DEFAULT.name;\n\n\t@Property()\n\tdescription: string = DEFAULT.description;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'userIds' })\n\tstudents = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'teacherIds' })\n\tteachers = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'substitutionIds' })\n\tsubstitutionTeachers = new Collection(this);\n\n\t@OneToMany('CourseGroup', 'course', { orphanRemoval: true })\n\tcourseGroups = new Collection(this);\n\n\t// TODO: string color format\n\t@Property()\n\tcolor: string = DEFAULT.color;\n\n\t@Property({ nullable: true })\n\tstartDate?: Date;\n\n\t@Index()\n\t@Property({ nullable: true })\n\tuntilDate?: Date;\n\n\t@Property({ nullable: true })\n\tcopyingSince?: Date;\n\n\t@Property({ nullable: true })\n\t@Unique({ options: { sparse: true } })\n\tshareToken?: string;\n\n\t@Enum({ nullable: true, array: true })\n\tfeatures?: CourseFeatures[];\n\n\tconstructor(props: ICourseProperties) {\n\t\tsuper();\n\t\tif (props.name) this.name = props.name;\n\t\tif (props.description) this.description = props.description;\n\t\tthis.school = props.school;\n\t\tthis.students.set(props.students || []);\n\t\tthis.teachers.set(props.teachers || []);\n\t\tthis.substitutionTeachers.set(props.substitutionTeachers || []);\n\t\tif (props.color) this.color = props.color;\n\t\tif (props.untilDate) this.untilDate = props.untilDate;\n\t\tif (props.startDate) this.startDate = props.startDate;\n\t\tif (props.copyingSince) this.copyingSince = props.copyingSince;\n\t\tif (props.features) this.features = props.features;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = this.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = this.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = this.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate extractIds(users: Collection): EntityId[] {\n\t\tif (!users) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t`Students, teachers or stubstitution is undefined. The course needs to be populated`\n\t\t\t);\n\t\t}\n\n\t\tconst objectIds = users.getIdentifiers('_id');\n\t\tconst ids = objectIds.map((id): string => id.toString());\n\n\t\treturn ids;\n\t}\n\n\tpublic isUserSubstitutionTeacher(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.substitutionTeachers.contains(user);\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic getCourseGroupItems(): CourseGroup[] {\n\t\tif (!this.courseGroups.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Courses trying to access their course groups that are not loaded.');\n\t\t}\n\t\tconst courseGroups = this.courseGroups.getItems();\n\n\t\treturn courseGroups;\n\t}\n\n\tgetShortTitle(): string {\n\t\tif (this.name.length === 1) {\n\t\t\treturn this.name;\n\t\t}\n\t\tconst [firstChar, secondChar] = [...this.name];\n\t\tconst pattern = /\\p{Extended_Pictographic}/u;\n\t\tif (pattern.test(firstChar)) {\n\t\t\treturn firstChar;\n\t\t}\n\t\treturn firstChar + secondChar;\n\t}\n\n\tpublic getMetadata(): LearnroomMetadata {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\ttype: LearnroomTypes.Course,\n\t\t\ttitle: this.name,\n\t\t\tshortTitle: this.getShortTitle(),\n\t\t\tdisplayColor: this.color,\n\t\t\tuntilDate: this.untilDate,\n\t\t\tstartDate: this.startDate,\n\t\t\tcopyingSince: this.copyingSince,\n\t\t};\n\t}\n\n\tpublic isFinished(): boolean {\n\t\tif (!this.untilDate) {\n\t\t\treturn false;\n\t\t}\n\t\tconst isFinished = this.untilDate u.id === userId);\n\t}\n\n\tprivate removeTeacher(userId: EntityId): void {\n\t\tthis.teachers.remove((u) => u.id === userId);\n\t}\n\n\tprivate removeSubstitutionTeacher(userId: EntityId): void {\n\t\tthis.substitutionTeachers.remove((u) => u.id === userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICreateNews.html":{"url":"interfaces/ICreateNews.html","title":"interface - ICreateNews","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICreateNews\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/news.types.ts\n \n\n\n \n Description\n \n \n news interface for ceating news\n\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n Optional\n \n displayAt\n \n \n \n \n target\n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n content\n \n \n \n \n \n \n \n \n content: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n \n \n displayAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from './entity-id';\nimport type { Course } from '../entity/course.entity';\nimport type { SchoolEntity } from '../entity/school.entity';\nimport type { TeamEntity } from '../entity/team.entity';\n\nexport enum NewsTargetModel {\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Team' = 'teams',\n}\n\n/** news interface for ceating news */\nexport interface ICreateNews {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt?: Date;\n\ttarget: { targetModel: NewsTargetModel; targetId: EntityId };\n}\n\n/** news interface for updating news */\nexport type IUpdateNews = Partial;\n\n/** interface for finding news with optional targetId */\nexport interface INewsScope {\n\ttarget?: { targetModel: NewsTargetModel; targetId?: EntityId };\n\tunpublished?: boolean;\n}\n\nexport type NewsTarget = SchoolEntity | TeamEntity | Course;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICurrentUser.html":{"url":"interfaces/ICurrentUser.html","title":"interface - ICurrentUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICurrentUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/user.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accountId\n \n \n \n Optional\n \n impersonated\n \n \n \n \n roles\n \n \n \n \n schoolId\n \n \n \n Optional\n \n systemId\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accountId\n \n \n \n \n \n \n \n \n accountId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n account id as EntityId\n\n \n \n \n \n \n \n \n \n \n impersonated\n \n \n \n \n \n \n \n \n impersonated: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n True if a support member impersonates the user\n\n \n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: EntityId[]\n\n \n \n\n\n \n \n Type : EntityId[]\n\n \n \n\n\n\n\n\n \n \n users role ids as EntityId[]\n\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n users schoolId as EntityId\n\n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n \n \n systemId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n true if user is provided by external system -> no pw change in first login\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n authenticated users id\n\n \n \n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface IRole {\n\tname: string;\n\n\tid: string;\n}\n\nexport interface IResolvedUser {\n\tfirstName: string;\n\n\tlastName: string;\n\n\tid: string;\n\n\tcreatedAt: Date;\n\n\tupdatedAt: Date;\n\n\troles: IRole[];\n\n\tpermissions: string[];\n\n\tschoolId: string;\n}\n\nexport interface ICurrentUser {\n\t/** authenticated users id */\n\tuserId: EntityId;\n\t/** users role ids as EntityId[] */\n\troles: EntityId[];\n\t/** users schoolId as EntityId */\n\tschoolId: EntityId;\n\t/** account id as EntityId */\n\taccountId: EntityId;\n\n\t/** true if user is provided by external system -> no pw change in first login */\n\tsystemId?: EntityId;\n\n\t/** True if a support member impersonates the user */\n\timpersonated?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IDashboardModelProperties.html":{"url":"interfaces/IDashboardModelProperties.html","title":"interface - IDashboardModelProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IDashboardModelProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.model.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n gridElements\n \n \n \n \n id\n \n \n \n \n user\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n gridElements\n \n \n \n \n \n \n \n \n gridElements: DashboardGridElementModel[]\n\n \n \n\n\n \n \n Type : DashboardGridElementModel[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n \n \n user: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import {\n\tCollection,\n\tEntity,\n\tIdentifiedReference,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToMany,\n\tProperty,\n\twrap,\n} from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { Course } from './course.entity';\nimport { User } from './user.entity';\n\nexport interface DashboardGridElementModelProperties {\n\tid?: string;\n\ttitle?: string;\n\txPos: number;\n\tyPos: number;\n\treferences: Course[];\n\tdashboard: DashboardModelEntity;\n}\n\n@Entity({ tableName: 'dashboardelement' })\nexport class DashboardGridElementModel extends BaseEntityWithTimestamps {\n\tconstructor({ id, title, xPos, yPos, references, dashboard }: DashboardGridElementModelProperties) {\n\t\tsuper();\n\t\tif (id) {\n\t\t\tthis._id = ObjectId.createFromHexString(id);\n\t\t\tthis.id = id;\n\t\t}\n\t\tthis.title = title;\n\t\tthis.xPos = xPos;\n\t\tthis.yPos = yPos;\n\t\tthis.references.set(references);\n\t\tthis.dashboard = wrap(dashboard).toReference();\n\t}\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\t@Property()\n\txPos: number;\n\n\t@Property()\n\tyPos: number;\n\n\t@Index()\n\t@ManyToMany('Course', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('DashboardModelEntity', { wrappedReference: true })\n\tdashboard: IdentifiedReference;\n}\n\nexport interface IDashboardModelProperties {\n\tid: string;\n\tuser: User;\n\tgridElements?: DashboardGridElementModel[];\n}\n\n@Entity({ tableName: 'dashboard' })\nexport class DashboardModelEntity extends BaseEntityWithTimestamps {\n\tconstructor(props: IDashboardModelProperties) {\n\t\tsuper();\n\t\tthis._id = ObjectId.createFromHexString(props.id);\n\t\tthis.id = props.id;\n\t\tthis.user = wrap(props.user).toReference();\n\t\tif (props.gridElements) this.gridElements.set(props.gridElements);\n\t}\n\n\t@OneToMany('DashboardGridElementModel', 'dashboard')\n\tgridElements: Collection = new Collection(this);\n\n\t// userId\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'userId', wrappedReference: true })\n\tuser: IdentifiedReference;\n\n\t// sizetype\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IDashboardRepo.html":{"url":"interfaces/IDashboardRepo.html","title":"interface - IDashboardRepo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IDashboardRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/dashboard/dashboard.repo.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getDashboardById\n \n \n \n \n getUsersDashboard\n \n \n \n \n persistAndFlush\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getDashboardById\n \n \n \n \n \n \ngetDashboardById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getUsersDashboard\n \n \n \n \n \n \ngetUsersDashboard(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n persistAndFlush\n \n \n \n \n \n \npersistAndFlush(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, DashboardEntity, GridElementWithPosition, DashboardModelEntity } from '@shared/domain';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { DashboardModelMapper } from './dashboard.model.mapper';\n\nconst generateEmptyDashboard = (userId: EntityId) => {\n\tconst gridArray: GridElementWithPosition[] = [];\n\n\tconst dashboard = new DashboardEntity(new ObjectId().toString(), { grid: gridArray, userId });\n\treturn dashboard;\n};\n\nexport interface IDashboardRepo {\n\tgetUsersDashboard(userId: EntityId): Promise;\n\tgetDashboardById(id: EntityId): Promise;\n\tpersistAndFlush(entity: DashboardEntity): Promise;\n}\n\n@Injectable()\nexport class DashboardRepo implements IDashboardRepo {\n\tconstructor(protected readonly em: EntityManager, protected readonly mapper: DashboardModelMapper) {}\n\n\t// ToDo: refactor this to be in an abstract class (see baseRepo)\n\tasync persist(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.mapper.mapDashboardToModel(entity);\n\t\tthis.em.persist(modelEntity);\n\t\treturn this.mapper.mapDashboardToEntity(modelEntity);\n\t}\n\n\tasync persistAndFlush(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.mapper.mapDashboardToModel(entity);\n\t\tawait this.em.persistAndFlush(modelEntity);\n\t\treturn this.mapper.mapDashboardToEntity(modelEntity);\n\t}\n\n\tasync getDashboardById(id: EntityId): Promise {\n\t\tconst dashboardModel = await this.em.findOneOrFail(DashboardModelEntity, id);\n\t\tconst dashboard = await this.mapper.mapDashboardToEntity(dashboardModel);\n\t\treturn dashboard;\n\t}\n\n\tasync getUsersDashboard(userId: EntityId): Promise {\n\t\tconst dashboardModel = await this.em.findOne(DashboardModelEntity, { user: userId });\n\t\tif (dashboardModel) {\n\t\t\treturn this.mapper.mapDashboardToEntity(dashboardModel);\n\t\t}\n\n\t\tconst dashboard = generateEmptyDashboard(userId);\n\t\tawait this.persistAndFlush(dashboard);\n\n\t\treturn dashboard;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IEncryptionService.html":{"url":"interfaces/IEncryptionService.html","title":"interface - IEncryptionService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IEncryptionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/encryption/encryption.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n decrypt\n \n \n \n \n encrypt\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n decrypt\n \n \n \n \n \n \ndecrypt(data: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.interface.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n encrypt\n \n \n \n \n \n \nencrypt(data: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.interface.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n export const DefaultEncryptionService = Symbol('DefaultEncryptionService');\nexport const LdapEncryptionService = Symbol('LdapEncryptionService');\n\nexport interface IEncryptionService {\n\tencrypt(data: string): string;\n\tdecrypt(data: string): string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IEntity.html":{"url":"interfaces/IEntity.html","title":"interface - IEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n \n id\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n _id\n \n \n \n \n \n \n \n \n _id: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\n\nexport interface IEntity {\n\t_id: ObjectId;\n\tid: string;\n}\n\nexport interface IEntityWithTimestamps extends IEntity {\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport interface IEntityWithSchool extends IEntity {\n\tschool: SchoolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IEntityWithSchool.html":{"url":"interfaces/IEntityWithSchool.html","title":"interface - IEntityWithSchool","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IEntityWithSchool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/entity.ts\n \n\n\n\n \n Extends\n \n \n IEntity\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\n\nexport interface IEntity {\n\t_id: ObjectId;\n\tid: string;\n}\n\nexport interface IEntityWithTimestamps extends IEntity {\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport interface IEntityWithSchool extends IEntity {\n\tschool: SchoolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IEntityWithTimestamps.html":{"url":"interfaces/IEntityWithTimestamps.html","title":"interface - IEntityWithTimestamps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IEntityWithTimestamps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/entity.ts\n \n\n\n\n \n Extends\n \n \n IEntity\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\n\nexport interface IEntity {\n\t_id: ObjectId;\n\tid: string;\n}\n\nexport interface IEntityWithTimestamps extends IEntity {\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport interface IEntityWithSchool extends IEntity {\n\tschool: SchoolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IError.html":{"url":"interfaces/IError.html","title":"interface - IError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/rpc-message.ts\n \n\n\n\n \n Extends\n \n \n Error\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n message\n \n \n \n Optional\n \n status\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n message\n \n \n \n \n \n \n \n \n message: never\n\n \n \n\n\n \n \n Type : never\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IError extends Error {\n\tstatus?: number;\n\tmessage: never;\n}\nexport interface RpcMessage {\n\tmessage: T;\n\terror?: IError;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IErrorType.html":{"url":"interfaces/IErrorType.html","title":"interface - IErrorType","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IErrorType\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/interface/error-type.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n defaultMessage\n \n \n \n \n title\n \n \n \n \n type\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n defaultMessage\n \n \n \n \n \n \n \n \n defaultMessage: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IErrorType {\n\treadonly type: string;\n\treadonly title: string;\n\treadonly defaultMessage: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IExternalToolPseudonymEntityProps.html":{"url":"interfaces/IExternalToolPseudonymEntityProps.html","title":"interface - IExternalToolPseudonymEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IExternalToolPseudonymEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n \n pseudonym\n \n \n \n \n toolId\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n \n \n pseudonym: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n \n \n toolId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain';\n\nexport interface IExternalToolPseudonymEntityProps {\n\tid?: EntityId;\n\tpseudonym: string;\n\ttoolId: ObjectId;\n\tuserId: ObjectId;\n}\n\n@Entity({ tableName: 'external-tool-pseudonyms' })\n@Unique({ properties: ['userId', 'toolId'] })\nexport class ExternalToolPseudonymEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tpseudonym: string;\n\n\t@Property()\n\ttoolId: ObjectId;\n\n\t@Property()\n\tuserId: ObjectId;\n\n\tconstructor(props: IExternalToolPseudonymEntityProps) {\n\t\tsuper();\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.pseudonym = props.pseudonym;\n\t\tthis.toolId = props.toolId;\n\t\tthis.userId = props.userId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFederalStateProperties.html":{"url":"interfaces/IFederalStateProperties.html","title":"interface - IFederalStateProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFederalStateProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/federal-state.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n abbreviation\n \n \n \n Optional\n \n counties\n \n \n \n \n createdAt\n \n \n \n \n logoUrl\n \n \n \n \n name\n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n abbreviation\n \n \n \n \n \n \n \n \n abbreviation: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n counties\n \n \n \n \n \n \n \n \n counties: County[]\n\n \n \n\n\n \n \n Type : County[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n logoUrl\n \n \n \n \n \n \n \n \n logoUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IFederalStateProperties {\n\tname: string;\n\tabbreviation: string;\n\tlogoUrl: string;\n\tcounties?: County[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n@Embeddable()\nexport class County {\n\tconstructor(county: County) {\n\t\tthis.name = county.name;\n\t\tthis.countyId = county.countyId;\n\t\tthis.antaresKey = county.antaresKey;\n\t}\n\n\tname: string;\n\n\tcountyId: number;\n\n\tantaresKey: string;\n}\n\n@Entity({ tableName: 'federalstates' })\nexport class FederalState extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\tabbreviation: string;\n\n\t@Property()\n\tlogoUrl: string;\n\n\t@Embedded(() => County, { array: true, nullable: true })\n\tcounties?: County[];\n\n\tconstructor(props: IFederalStateProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.abbreviation = props.abbreviation;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.updatedAt = props.updatedAt;\n\t\tthis.createdAt = props.createdAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileDO.html":{"url":"interfaces/IFileDO.html","title":"interface - IFileDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/exchange/files-storage.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n creatorId\n \n \n \n Optional\n \n deletedSince\n \n \n \n \n id\n \n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n securityCheckStatus\n \n \n \n \n size\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n creatorId\n \n \n \n \n \n \n \n \n creatorId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n deletedSince\n \n \n \n \n \n \n \n \n deletedSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n \n \n mimeType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n securityCheckStatus\n \n \n \n \n \n \n \n \n securityCheckStatus: ScanStatus\n\n \n \n\n\n \n \n Type : ScanStatus\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n \n \n size: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { EntityId } from '@shared/domain';\n\nexport const FilesStorageExchange = Configuration.get('FILES_STORAGE__EXCHANGE') as string;\n\nexport enum FilesStorageEvents {\n\t'COPY_FILES_OF_PARENT' = 'copy-files-of-parent',\n\t'LIST_FILES_OF_PARENT' = 'list-files-of-parent',\n\t'DELETE_FILES_OF_PARENT' = 'delete-files-of-parent',\n}\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport interface ICopyFilesOfParentParams {\n\tuserId: EntityId;\n\tsource: IFileRecordParams;\n\ttarget: IFileRecordParams;\n}\n\nexport interface IFileRecordParams {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\nexport interface ICopyFileDO {\n\tid?: EntityId;\n\tsourceId: EntityId;\n\tname: string;\n}\n\nexport interface IFileDO {\n\tid: string;\n\tname: string;\n\tparentId: string;\n\tsecurityCheckStatus: ScanStatus;\n\tsize: number;\n\tcreatorId: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tdeletedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileDomainObjectProps.html":{"url":"interfaces/IFileDomainObjectProps.html","title":"interface - IFileDomainObjectProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileDomainObjectProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/file-domain-object-props.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n name\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\n\nexport interface IFileDomainObjectProps {\n\tid: EntityId;\n\tname: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileRecordParams.html":{"url":"interfaces/IFileRecordParams.html","title":"interface - IFileRecordParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileRecordParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/exchange/files-storage.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { EntityId } from '@shared/domain';\n\nexport const FilesStorageExchange = Configuration.get('FILES_STORAGE__EXCHANGE') as string;\n\nexport enum FilesStorageEvents {\n\t'COPY_FILES_OF_PARENT' = 'copy-files-of-parent',\n\t'LIST_FILES_OF_PARENT' = 'list-files-of-parent',\n\t'DELETE_FILES_OF_PARENT' = 'delete-files-of-parent',\n}\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport interface ICopyFilesOfParentParams {\n\tuserId: EntityId;\n\tsource: IFileRecordParams;\n\ttarget: IFileRecordParams;\n}\n\nexport interface IFileRecordParams {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\nexport interface ICopyFileDO {\n\tid?: EntityId;\n\tsourceId: EntityId;\n\tname: string;\n}\n\nexport interface IFileDO {\n\tid: string;\n\tname: string;\n\tparentId: string;\n\tsecurityCheckStatus: ScanStatus;\n\tsize: number;\n\tcreatorId: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tdeletedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileRecordProperties.html":{"url":"interfaces/IFileRecordProperties.html","title":"interface - IFileRecordProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileRecordProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n creatorId\n \n \n \n Optional\n \n deletedSince\n \n \n \n Optional\n \n isCopyFrom\n \n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n size\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n creatorId\n \n \n \n \n \n \n \n \n creatorId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n deletedSince\n \n \n \n \n \n \n \n \n deletedSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n isCopyFrom\n \n \n \n \n \n \n \n \n isCopyFrom: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n \n \n mimeType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n \n \n size: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileRecordSecurityCheckProperties.html":{"url":"interfaces/IFileRecordSecurityCheckProperties.html","title":"interface - IFileRecordSecurityCheckProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileRecordSecurityCheckProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n reason\n \n \n \n Optional\n \n requestToken\n \n \n \n Optional\n \n status\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n reason\n \n \n \n \n \n \n \n \n reason: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n requestToken\n \n \n \n \n \n \n \n \n requestToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: ScanStatus\n\n \n \n\n\n \n \n Type : ScanStatus\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileRequestInfo.html":{"url":"interfaces/IFileRequestInfo.html","title":"interface - IFileRequestInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileRequestInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/file-request-info.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\n\nexport interface IFileRequestInfo {\n\tschoolId: EntityId;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileStorageConfig.html":{"url":"interfaces/IFileStorageConfig.html","title":"interface - IFileStorageConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileStorageConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/files-storage.config.ts\n \n\n\n\n \n Extends\n \n \n ICoreModuleConfig\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n MAX_FILE_SIZE\n \n \n \n \n MAX_SECURITY_CHECK_FILE_SIZE\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n MAX_FILE_SIZE\n \n \n \n \n \n \n \n \n MAX_FILE_SIZE: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n MAX_SECURITY_CHECK_FILE_SIZE\n \n \n \n \n \n \n \n \n MAX_SECURITY_CHECK_FILE_SIZE: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { S3Config } from '@shared/infra/s3-client';\nimport { ICoreModuleConfig } from '@src/core';\n\nexport const FILES_STORAGE_S3_CONNECTION = 'FILES_STORAGE_S3_CONNECTION';\nexport interface IFileStorageConfig extends ICoreModuleConfig {\n\tMAX_FILE_SIZE: number;\n\tMAX_SECURITY_CHECK_FILE_SIZE: number;\n}\n\nconst fileStorageConfig: IFileStorageConfig = {\n\tINCOMING_REQUEST_TIMEOUT: Configuration.get('FILES_STORAGE__INCOMING_REQUEST_TIMEOUT') as number,\n\tINCOMING_REQUEST_TIMEOUT_COPY_API: Configuration.get('INCOMING_REQUEST_TIMEOUT_COPY_API') as number,\n\tMAX_FILE_SIZE: Configuration.get('FILES_STORAGE__MAX_FILE_SIZE') as number,\n\tMAX_SECURITY_CHECK_FILE_SIZE: Configuration.get('FILE_SECURITY_CHECK_MAX_FILE_SIZE') as number,\n\tNEST_LOG_LEVEL: Configuration.get('NEST_LOG_LEVEL') as string,\n};\n\n// The configurations lookup\n// config/development.json for development\n// config/test.json for tests\nexport const s3Config: S3Config = {\n\tconnectionName: FILES_STORAGE_S3_CONNECTION,\n\tendpoint: Configuration.get('FILES_STORAGE__S3_ENDPOINT') as string,\n\tregion: Configuration.get('FILES_STORAGE__S3_REGION') as string,\n\tbucket: Configuration.get('FILES_STORAGE__S3_BUCKET') as string,\n\taccessKeyId: Configuration.get('FILES_STORAGE__S3_ACCESS_KEY_ID') as string,\n\tsecretAccessKey: Configuration.get('FILES_STORAGE__S3_SECRET_ACCESS_KEY') as string,\n};\n\nexport const config = () => fileStorageConfig;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFilesStorageClientConfig.html":{"url":"interfaces/IFilesStorageClientConfig.html","title":"interface - IFilesStorageClientConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFilesStorageClientConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/files-storage-client-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API\n \n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IFilesStorageClientConfig {\n\tINCOMING_REQUEST_TIMEOUT_COPY_API: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFindOptions.html":{"url":"interfaces/IFindOptions.html","title":"interface - IFindOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFindOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/find-options.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n order\n \n \n \n Optional\n \n pagination\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n order\n \n \n \n \n \n \n \n \n order: SortOrderMap\n\n \n \n\n\n \n \n Type : SortOrderMap\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n pagination\n \n \n \n \n \n \n \n \n pagination: IPagination\n\n \n \n\n\n \n \n Type : IPagination\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IPagination {\n\tskip?: number;\n\tlimit?: number;\n}\n\nexport enum SortOrder {\n\tasc = 'asc',\n\tdesc = 'desc',\n}\n\nexport type SortOrderMap = Partial>;\n\nexport interface IFindOptions {\n\tpagination?: IPagination;\n\torder?: SortOrderMap;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IGridElement.html":{"url":"interfaces/IGridElement.html","title":"interface - IGridElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IGridElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n getContent\n \n \n \n \n getId\n \n \n \n \n \n \n \n Methods\n \n \n \n \n \n \n \n addReferences\n \n \n \n \n getReferences\n \n \n \n \n hasId\n \n \n \n \n isGroup\n \n \n \n \n removeReference\n \n \n \n \n removeReferenceByIndex\n \n \n \n \n setGroupName\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n addReferences\n \n \n \n \n \n \naddReferences(anotherReference: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n anotherReference\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getReferences\n \n \n \n \n \n \ngetReferences()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:20\n \n \n\n\n \n \n\n \n Returns : ILearnroom[]\n\n \n \n \n \n \n \n \n \n \n \n \n hasId\n \n \n \n \n \n \nhasId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:8\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n isGroup\n \n \n \n \n \n \nisGroup()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:14\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n removeReference\n \n \n \n \n \n \nremoveReference(reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeReferenceByIndex\n \n \n \n \n \n \nremoveReferenceByIndex(index: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n index\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setGroupName\n \n \n \n \n \n \nsetGroupName(newGroupName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newGroupName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n Properties\n \n \n \n \n \n getContent\n \n \n \n \n \n \n \n \n getContent: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n getId\n \n \n \n \n \n \n \n \n getId: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { NotFoundException, BadRequestException } from '@nestjs/common';\nimport { EntityId, LearnroomMetadata } from '@shared/domain/types';\nimport { ILearnroom } from '@shared/domain/interface';\n\nconst defaultColumns = 4;\n\nexport interface IGridElement {\n\thasId(): boolean;\n\n\tgetId: () => EntityId | undefined;\n\n\tgetContent: () => GridElementContent;\n\n\tisGroup(): boolean;\n\n\tremoveReferenceByIndex(index: number): void;\n\n\tremoveReference(reference: ILearnroom): void;\n\n\tgetReferences(): ILearnroom[];\n\n\taddReferences(anotherReference: ILearnroom[]): void;\n\n\tsetGroupName(newGroupName: string): void;\n}\n\nexport type GridElementContent = {\n\treferencedId?: string;\n\ttitle?: string;\n\tshortTitle: string;\n\tdisplayColor: string;\n\tgroup?: LearnroomMetadata[];\n\tgroupId?: string;\n\tcopyingSince?: Date;\n};\n\nexport class GridElement implements IGridElement {\n\tid?: EntityId;\n\n\ttitle?: string;\n\n\tprivate sortReferences = (a: ILearnroom, b: ILearnroom) => {\n\t\tconst titleA = a.getMetadata().title;\n\t\tconst titleB = b.getMetadata().title;\n\t\tif (titleA titleB) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t};\n\n\tprivate constructor(props: { id?: EntityId; title?: string; references: ILearnroom[] }) {\n\t\tif (props.id) this.id = props.id;\n\t\tif (props.title) this.title = props.title;\n\t\tthis.references = props.references.sort(this.sortReferences);\n\t}\n\n\tstatic FromPersistedReference(id: EntityId, reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ id, references: [reference] });\n\t}\n\n\tstatic FromPersistedGroup(id: EntityId, title: string | undefined, group: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ id, title, references: group });\n\t}\n\n\tstatic FromSingleReference(reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ references: [reference] });\n\t}\n\n\tstatic FromGroup(title: string, references: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ title, references });\n\t}\n\n\treferences: ILearnroom[];\n\n\thasId(): boolean {\n\t\treturn !!this.id;\n\t}\n\n\tgetId(): EntityId | undefined {\n\t\treturn this.id;\n\t}\n\n\tgetReferences(): ILearnroom[] {\n\t\treturn this.references;\n\t}\n\n\tremoveReferenceByIndex(index: number): void {\n\t\tif (!this.isGroup()) {\n\t\t\tthrow new BadRequestException('this element is not a group.');\n\t\t}\n\t\tif (index > 0 && this.references.length reference.getMetadata());\n\t\tconst checkShortTitle = this.title ? this.title.substring(0, 2) : '';\n\t\tconst groupMetadata = {\n\t\t\tgroupId: this.getId(),\n\t\t\ttitle: this.title,\n\t\t\tshortTitle: checkShortTitle,\n\t\t\tdisplayColor: 'exampleColor',\n\t\t\tgroup: groupData,\n\t\t};\n\t\treturn groupMetadata;\n\t}\n\n\tisGroup(): boolean {\n\t\treturn this.references.length > 1;\n\t}\n\n\tsetGroupName(newGroupName: string): void {\n\t\tif (!this.isGroup()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.title = newGroupName;\n\t}\n}\n\nexport type GridPosition = { x: number; y: number };\nexport type GridPositionWithGroupIndex = { x: number; y: number; groupIndex?: number };\n\nexport type GridElementWithPosition = {\n\tgridElement: IGridElement;\n\tpos: GridPosition;\n};\n\nexport type DashboardProps = { colums?: number; grid: GridElementWithPosition[]; userId: EntityId };\n\nexport class DashboardEntity {\n\tid: EntityId;\n\n\tcolumns: number;\n\n\tgrid: Map;\n\n\tuserId: EntityId;\n\n\tprivate gridIndexFromPosition(pos: GridPosition): number {\n\t\tif (pos.x > this.columns) {\n\t\t\tthrow new BadRequestException('dashboard element position is outside the grid.');\n\t\t}\n\t\treturn this.columns * pos.y + pos.x;\n\t}\n\n\tprivate positionFromGridIndex(index: number): GridPosition {\n\t\tconst y = Math.floor(index / this.columns);\n\t\tconst x = index % this.columns;\n\t\treturn { x, y };\n\t}\n\n\tconstructor(id: string, props: DashboardProps) {\n\t\tthis.columns = props.colums || defaultColumns;\n\t\tthis.grid = new Map();\n\t\tprops.grid.forEach((element) => {\n\t\t\tthis.grid.set(this.gridIndexFromPosition(element.pos), element.gridElement);\n\t\t});\n\t\tthis.id = id;\n\t\tthis.userId = props.userId;\n\t\tObject.assign(this, {});\n\t}\n\n\tgetId(): string {\n\t\treturn this.id;\n\t}\n\n\tgetUserId(): EntityId {\n\t\treturn this.userId;\n\t}\n\n\tgetGrid(): GridElementWithPosition[] {\n\t\tconst result = [...this.grid.keys()].map((key) => {\n\t\t\tconst position = this.positionFromGridIndex(key);\n\t\t\tconst value = this.grid.get(key) as IGridElement;\n\t\t\treturn {\n\t\t\t\tpos: position,\n\t\t\t\tgridElement: value,\n\t\t\t};\n\t\t});\n\t\treturn result;\n\t}\n\n\tgetElement(position: GridPosition): IGridElement {\n\t\tconst element = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (!element) {\n\t\t\tthrow new NotFoundException('no element at grid position');\n\t\t}\n\t\treturn element;\n\t}\n\n\tmoveElement(from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex): GridElementWithPosition {\n\t\tconst elementToMove = this.getReferencesFromPosition(from);\n\t\tconst resultElement = this.mergeElementIntoPosition(elementToMove, to);\n\t\tthis.removeFromPosition(from);\n\t\treturn {\n\t\t\tpos: to,\n\t\t\tgridElement: resultElement,\n\t\t};\n\t}\n\n\tsetLearnRooms(rooms: ILearnroom[]): void {\n\t\tthis.removeRoomsNotInList(rooms);\n\t\tconst newRooms = this.determineNewRoomsIn(rooms);\n\n\t\tnewRooms.forEach((room) => {\n\t\t\tthis.addRoom(room);\n\t\t});\n\t}\n\n\tprivate removeRoomsNotInList(roomList: ILearnroom[]): void {\n\t\t[...this.grid.keys()].forEach((key) => {\n\t\t\tconst element = this.grid.get(key) as IGridElement;\n\t\t\tconst currentRooms = element.getReferences();\n\t\t\tcurrentRooms.forEach((room) => {\n\t\t\t\tif (!roomList.includes(room)) {\n\t\t\t\t\telement.removeReference(room);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (element.getReferences().length === 0) {\n\t\t\t\tthis.grid.delete(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate determineNewRoomsIn(rooms: ILearnroom[]): ILearnroom[] {\n\t\tconst result: ILearnroom[] = [];\n\t\tconst existingRooms = this.allRooms();\n\t\trooms.forEach((room) => {\n\t\t\tif (!existingRooms.includes(room)) {\n\t\t\t\tresult.push(room);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tprivate allRooms(): ILearnroom[] {\n\t\tconst elements = [...this.grid.values()];\n\t\tconst references = elements.map((el) => el.getReferences()).flat();\n\t\treturn references;\n\t}\n\n\tprivate addRoom(room: ILearnroom): void {\n\t\tconst index = this.getFirstOpenIndex();\n\t\tconst newElement = GridElement.FromSingleReference(room);\n\t\tthis.grid.set(index, newElement);\n\t}\n\n\tprivate getFirstOpenIndex(): number {\n\t\tlet i = 0;\n\t\twhile (this.grid.get(i) !== undefined) {\n\t\t\ti += 1;\n\t\t}\n\t\treturn i;\n\t}\n\n\tprivate getReferencesFromPosition(position: GridPositionWithGroupIndex): IGridElement {\n\t\tconst elementToMove = this.getElement(position);\n\n\t\tif (typeof position.groupIndex === 'number' && elementToMove.isGroup()) {\n\t\t\tconst references = elementToMove.getReferences();\n\t\t\tconst referenceForIndex = references[position.groupIndex];\n\t\t\treturn GridElement.FromSingleReference(referenceForIndex);\n\t\t}\n\n\t\treturn elementToMove;\n\t}\n\n\tprivate removeFromPosition(position: GridPositionWithGroupIndex): void {\n\t\tconst element = this.getElement(position);\n\t\tif (typeof position.groupIndex === 'number') {\n\t\t\telement.removeReferenceByIndex(position.groupIndex);\n\t\t} else {\n\t\t\tthis.grid.delete(this.gridIndexFromPosition(position));\n\t\t}\n\t}\n\n\tprivate mergeElementIntoPosition(element: IGridElement, position: GridPosition): IGridElement {\n\t\tconst targetElement = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (targetElement) {\n\t\t\ttargetElement.addReferences(element.getReferences());\n\t\t\treturn targetElement;\n\t\t}\n\t\tthis.grid.set(this.gridIndexFromPosition(position), element);\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IIdentityManagementConfig.html":{"url":"interfaces/IIdentityManagementConfig.html","title":"interface - IIdentityManagementConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IIdentityManagementConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management.config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_ENABLED\n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED\n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_ENABLED\n \n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_ENABLED: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED\n \n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED\n \n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IIdentityManagementConfig {\n\tFEATURE_IDENTITY_MANAGEMENT_ENABLED: boolean;\n\tFEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED: boolean;\n\tFEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IImportUserProperties.html":{"url":"interfaces/IImportUserProperties.html","title":"interface - IImportUserProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IImportUserProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/import-user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n classNames\n \n \n \n \n email\n \n \n \n \n externalId\n \n \n \n \n firstName\n \n \n \n Optional\n \n flagged\n \n \n \n \n lastName\n \n \n \n \n ldapDn\n \n \n \n Optional\n \n matchedBy\n \n \n \n Optional\n \n roleNames\n \n \n \n \n school\n \n \n \n \n system\n \n \n \n Optional\n \n user\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n classNames\n \n \n \n \n \n \n \n \n classNames: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n \n \n email: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n \n \n flagged: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ldapDn\n \n \n \n \n \n \n \n \n ldapDn: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n matchedBy\n \n \n \n \n \n \n \n \n matchedBy: MatchCreator\n\n \n \n\n\n \n \n Type : MatchCreator\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n roleNames\n \n \n \n \n \n \n \n \n roleNames: IImportUserRoleName[]\n\n \n \n\n\n \n \n Type : IImportUserRoleName[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n \n \n system: System\n\n \n \n\n\n \n \n Type : System\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n \n \n user: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, IdentifiedReference, ManyToOne, Property, Unique, wrap } from '@mikro-orm/core';\nimport { IEntityWithSchool, RoleName } from '../interface';\nimport { BaseEntityReference, BaseEntityWithTimestamps } from './base.entity';\nimport { SchoolEntity } from './school.entity';\nimport { System } from './system.entity';\nimport type { User } from './user.entity';\n\nexport type IImportUserRoleName = RoleName.ADMINISTRATOR | RoleName.TEACHER | RoleName.STUDENT;\n\nexport interface IImportUserProperties {\n\t// references\n\tschool: SchoolEntity;\n\tsystem: System;\n\t// external identifiers\n\tldapDn: string;\n\texternalId: string;\n\t// descriptive properties\n\tfirstName: string;\n\tlastName: string;\n\temail: string; // TODO VO\n\troleNames?: IImportUserRoleName[];\n\tclassNames?: string[];\n\tuser?: User;\n\tmatchedBy?: MatchCreator;\n\tflagged?: boolean;\n}\n\nexport enum MatchCreator {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n}\n\n@Entity({ tableName: 'importusers' })\n@Unique({ properties: ['school', 'externalId'] })\n@Unique({ properties: ['school', 'ldapDn'] })\n@Unique({ properties: ['school', 'email'] })\nexport class ImportUser extends BaseEntityWithTimestamps implements IEntityWithSchool {\n\tconstructor(props: IImportUserProperties) {\n\t\tsuper();\n\t\tthis.school = wrap(props.school).toReference();\n\t\tthis.system = wrap(props.system).toReference();\n\t\tthis.ldapDn = props.ldapDn;\n\t\tthis.externalId = props.externalId;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tif (Array.isArray(props.roleNames) && props.roleNames.length > 0) this.roleNames.push(...props.roleNames);\n\t\tif (Array.isArray(props.classNames) && props.classNames.length > 0) this.classNames.push(...props.classNames);\n\t\tif (props.user && props.matchedBy) this.setMatch(props.user, props.matchedBy);\n\t\tif (props.flagged && props.flagged === true) this.flagged = true;\n\t}\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId', wrappedReference: true, eager: true })\n\tschool: IdentifiedReference;\n\n\t@ManyToOne(() => 'System', { wrappedReference: true })\n\tsystem: IdentifiedReference;\n\n\t@Property()\n\tldapDn: string;\n\n\t/**\n\t * extracts the login name out of the dn which has the login name in 'uid=LOGINNAME,[...]'\n\t * */\n\tget loginName(): string | null {\n\t\tconst PATTERN_LOGIN_FROM_DN = /^uid=(.+?),/i; // extract uid from dn\n\t\tconst matches = this.ldapDn?.match(PATTERN_LOGIN_FROM_DN);\n\t\tif (Array.isArray(matches) && matches.length >= 2) {\n\t\t\tconst loginName = matches[1]; // 0: full match, 1: first group match\n\t\t\treturn loginName;\n\t\t}\n\t\treturn null;\n\t}\n\n\t@Property({ fieldName: 'ldapId' })\n\texternalId: string;\n\n\t@Property()\n\tfirstName: string;\n\n\t@Property()\n\tlastName: string;\n\n\t@Property()\n\t/**\n\t * Lowercase email string\n\t */\n\temail: string;\n\n\t@Enum({ fieldName: 'roles' })\n\troleNames: IImportUserRoleName[] = [];\n\n\t@Property()\n\tclassNames: string[] = [];\n\n\t/**\n\t * Update user-match together with matchedBy, take the field as read-only\n\t * @read\n\t */\n\t@ManyToOne('User', { fieldName: 'match_userId', eager: true, nullable: true })\n\t@Unique({ options: { partialFilterExpression: { match_userId: { $type: 'objectId' } } } })\n\tuser?: User;\n\n\t/**\n\t * References who set the user, take the field as read-only\n\t * @private\n\t */\n\t@Enum({ fieldName: 'match_matchedBy', nullable: true })\n\tmatchedBy?: MatchCreator;\n\n\t@Property({ type: Boolean })\n\tflagged = false;\n\n\tsetMatch(user: User, matchedBy: MatchCreator) {\n\t\tif (this.school.id !== user.school.id) {\n\t\t\tthrow new Error('not same school');\n\t\t}\n\t\tthis.user = user;\n\t\tthis.matchedBy = matchedBy;\n\t}\n\n\trevokeMatch() {\n\t\tthis.user = undefined;\n\t\tthis.matchedBy = undefined;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IImportUserScope.html":{"url":"interfaces/IImportUserScope.html","title":"interface - IImportUserScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IImportUserScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/importuser.types.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n classes\n \n \n \n Optional\n \n firstName\n \n \n \n Optional\n \n flagged\n \n \n \n Optional\n \n lastName\n \n \n \n Optional\n \n loginName\n \n \n \n Optional\n \n matches\n \n \n \n Optional\n \n role\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n classes\n \n \n \n \n \n \n \n \n classes: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n \n \n flagged: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n loginName\n \n \n \n \n \n \n \n \n loginName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n matches\n \n \n \n \n \n \n \n \n matches: MatchCreatorScope[]\n\n \n \n\n\n \n \n Type : MatchCreatorScope[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n \n \n role: IImportUserRoleName\n\n \n \n\n\n \n \n Type : IImportUserRoleName\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import type { IImportUserRoleName } from '../entity/import-user.entity';\n\nexport enum MatchCreatorScope {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n\tNONE = 'none',\n}\n\nexport interface IImportUserScope {\n\tfirstName?: string;\n\tlastName?: string;\n\tloginName?: string;\n\tmatches?: MatchCreatorScope[];\n\tflagged?: boolean;\n\trole?: IImportUserRoleName;\n\tclasses?: string;\n}\n\nexport interface INameMatch {\n\t/**\n\t * Match filter for lastName or firstName\n\t */\n\tname?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IInterceptorConfig.html":{"url":"interfaces/IInterceptorConfig.html","title":"interface - IInterceptorConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IInterceptorConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/interceptor/interfaces/interceptor-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT\n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT\n \n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API\n \n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IInterceptorConfig {\n\tINCOMING_REQUEST_TIMEOUT: number;\n\tINCOMING_REQUEST_TIMEOUT_COPY_API: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IJsonAccount.html":{"url":"interfaces/IJsonAccount.html","title":"interface - IJsonAccount","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IJsonAccount\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/interface/json-account.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n \n password\n \n \n \n Optional\n \n systemId\n \n \n \n \n userId\n \n \n \n \n username\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n _id\n \n \n \n \n \n \n \n \n _id: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n password\n \n \n \n \n \n \n \n \n password: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n \n \n systemId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n \n \n username: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IJsonAccount {\n\t_id: {\n\t\t$oid: string;\n\t};\n\tusername: string;\n\tpassword: string;\n\tsystemId?: string;\n\tuserId: {\n\t\t$oid: string;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IJsonUser.html":{"url":"interfaces/IJsonUser.html","title":"interface - IJsonUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IJsonUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/interface/json-user.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n \n email\n \n \n \n \n firstName\n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n _id\n \n \n \n \n \n \n \n \n _id: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n \n \n email: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IJsonUser {\n\t_id: {\n\t\t$oid: string;\n\t};\n\tfirstName: string;\n\tlastName: string;\n\temail: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IKeycloakConfigurationInputFiles.html":{"url":"interfaces/IKeycloakConfigurationInputFiles.html","title":"interface - IKeycloakConfigurationInputFiles","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IKeycloakConfigurationInputFiles\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/interface/keycloak-configuration-input-files.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accountsFile\n \n \n \n \n usersFile\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accountsFile\n \n \n \n \n \n \n \n \n accountsFile: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n usersFile\n \n \n \n \n \n \n \n \n usersFile: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export const KeycloakConfigurationInputFiles = Symbol('KeycloakConfigurationInputFiles');\n\nexport interface IKeycloakConfigurationInputFiles {\n\taccountsFile: string;\n\tusersFile: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IKeycloakSettings.html":{"url":"interfaces/IKeycloakSettings.html","title":"interface - IKeycloakSettings","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IKeycloakSettings\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-administration/interface/keycloak-settings.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n clientId\n \n \n \n \n credentials\n \n \n \n \n realmName\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n \n \n baseUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n \n \n clientId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n credentials\n \n \n \n \n \n \n \n \n credentials: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n realmName\n \n \n \n \n \n \n \n \n realmName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export const KeycloakSettings = Symbol('KeycloakSettings');\n\nexport interface IKeycloakSettings {\n\tbaseUrl: string;\n\trealmName: string;\n\tclientId: string;\n\tcredentials: {\n\t\tusername: string;\n\t\tpassword: string;\n\t\tgrantType: 'password';\n\t\tclientId: string;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILearnroom.html":{"url":"interfaces/ILearnroom.html","title":"interface - ILearnroom","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILearnroom\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/learnroom.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n getMetadata\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n getMetadata\n \n \n \n \n \n \n \n \n getMetadata: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { LearnroomMetadata } from '@shared/domain/types';\n\nexport interface ILearnroom {\n\tgetMetadata: () => LearnroomMetadata;\n}\n\nexport interface ILearnroomElement {\n\tpublish: () => void;\n\tunpublish: () => void;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILearnroomElement.html":{"url":"interfaces/ILearnroomElement.html","title":"interface - ILearnroomElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILearnroomElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/learnroom.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n publish\n \n \n \n \n unpublish\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n publish\n \n \n \n \n \n \n \n \n publish: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n unpublish\n \n \n \n \n \n \n \n \n unpublish: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { LearnroomMetadata } from '@shared/domain/types';\n\nexport interface ILearnroom {\n\tgetMetadata: () => LearnroomMetadata;\n}\n\nexport interface ILearnroomElement {\n\tpublish: () => void;\n\tunpublish: () => void;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILegacyLogger.html":{"url":"interfaces/ILegacyLogger.html","title":"interface - ILegacyLogger","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILegacyLogger\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/interfaces/legacy-logger.interface.ts\n \n\n \n Deprecated\n \n \n The new logger for loggables should be used.\n \n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n debug\n \n \n \n \n error\n \n \n \n \n http\n \n \n \n \n log\n \n \n \n \n warn\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n debug\n \n \n \n \n \n \ndebug(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n error\n \n \n \n \n \n \nerror(message, trace?: string, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n trace\n \n string\n \n\n \n Yes\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n http\n \n \n \n \n \n \nhttp(message: RequestLoggingBody, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n RequestLoggingBody\n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n log\n \n \n \n \n \n \nlog(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n warn\n \n \n \n \n \n \nwarn(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n export type RequestLoggingBody = {\n\tuserId?: string;\n\trequest: { url: string; method: string; params: unknown; query: unknown };\n\terror: unknown | undefined;\n};\n\n/**\n * @deprecated The new logger for loggables should be used.\n */\nexport interface ILegacyLogger {\n\thttp(message: RequestLoggingBody, context?: string): void;\n\tlog(message: unknown, context?: string): void;\n\terror(message: unknown, trace?: string, context?: string): void;\n\twarn(message: unknown, context?: string): void;\n\tdebug(message: unknown, context?: string): void;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILessonParent.html":{"url":"interfaces/ILessonParent.html","title":"interface - ILessonParent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILessonParent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getStudentIds\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getStudentIds\n \n \n \n \n \n \ngetStudentIds()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:81\n \n \n\n\n \n \n\n \n Returns : EntityId[]\n\n \n \n \n \n \n\n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILessonProperties.html":{"url":"interfaces/ILessonProperties.html","title":"interface - ILessonProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILessonProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contents\n \n \n \n \n course\n \n \n \n Optional\n \n courseGroup\n \n \n \n \n hidden\n \n \n \n Optional\n \n materials\n \n \n \n \n name\n \n \n \n Optional\n \n position\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contents\n \n \n \n \n \n \n \n \n contents: IComponentProperties[] | \n\n \n \n\n\n \n \n Type : IComponentProperties[] | \n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n course\n \n \n \n \n \n \n \n \n course: Course\n\n \n \n\n\n \n \n Type : Course\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n courseGroup\n \n \n \n \n \n \n \n \n courseGroup: CourseGroup\n\n \n \n\n\n \n \n Type : CourseGroup\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n hidden\n \n \n \n \n \n \n \n \n hidden: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n materials\n \n \n \n \n \n \n \n \n materials: Material[]\n\n \n \n\n\n \n \n Type : Material[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n position\n \n \n \n \n \n \n \n \n position: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILoggerConfig.html":{"url":"interfaces/ILoggerConfig.html","title":"interface - ILoggerConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILoggerConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/interfaces/logger-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n NEST_LOG_LEVEL\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n NEST_LOG_LEVEL\n \n \n \n \n \n \n \n \n NEST_LOG_LEVEL: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface ILoggerConfig {\n\tNEST_LOG_LEVEL: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IMaterialProperties.html":{"url":"interfaces/IMaterialProperties.html","title":"interface - IMaterialProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IMaterialProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/materials.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n client\n \n \n \n Optional\n \n description\n \n \n \n \n license\n \n \n \n Optional\n \n merlinReference\n \n \n \n \n relatedResources\n \n \n \n \n subjects\n \n \n \n \n tags\n \n \n \n \n targetGroups\n \n \n \n \n title\n \n \n \n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n client\n \n \n \n \n \n \n \n \n client: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n license\n \n \n \n \n \n \n \n \n license: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n merlinReference\n \n \n \n \n \n \n \n \n merlinReference: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n relatedResources\n \n \n \n \n \n \n \n \n relatedResources: IRelatedResourceProperties[]\n\n \n \n\n\n \n \n Type : IRelatedResourceProperties[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n subjects\n \n \n \n \n \n \n \n \n subjects: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n tags\n \n \n \n \n \n \n \n \n tags: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n targetGroups\n \n \n \n \n \n \n \n \n targetGroups: ITargetGroupProperties[]\n\n \n \n\n\n \n \n Type : ITargetGroupProperties[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ITargetGroupProperties {\n\tstate?: string;\n\tschoolType?: string;\n\tgrade?: string;\n}\n\nexport interface IRelatedResourceProperties {\n\toriginId?: string;\n\trelationType?: string;\n}\n\nexport interface IMaterialProperties {\n\tclient: string;\n\tdescription?: string;\n\tlicense: string[];\n\tmerlinReference?: string;\n\trelatedResources: IRelatedResourceProperties[];\n\tsubjects: string[];\n\ttags: string[];\n\ttargetGroups: ITargetGroupProperties[];\n\ttitle: string;\n\turl: string;\n}\n\n@Entity({ collection: 'materials' })\nexport class Material extends BaseEntityWithTimestamps {\n\t@Property()\n\tclient: string;\n\n\t@Property()\n\tdescription?: string;\n\n\t@Property()\n\tlicense: string[];\n\n\t@Property()\n\tmerlinReference?: string;\n\n\t@Property()\n\trelatedResources: IRelatedResourceProperties[] | [];\n\n\t@Property()\n\tsubjects: string[] | [];\n\n\t@Property()\n\ttags: string[] | [];\n\n\t@Property()\n\ttargetGroups: ITargetGroupProperties[] | [];\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\turl: string;\n\n\tconstructor(props: IMaterialProperties) {\n\t\tsuper();\n\t\tthis.client = props.client;\n\t\tthis.description = props.description || '';\n\t\tthis.license = props.license;\n\t\tthis.merlinReference = props.merlinReference || '';\n\t\tthis.relatedResources = props.relatedResources;\n\t\tthis.subjects = props.subjects;\n\t\tthis.tags = props.tags;\n\t\tthis.targetGroups = props.targetGroups;\n\t\tthis.title = props.title;\n\t\tthis.url = props.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IMigrationOptions.html":{"url":"interfaces/IMigrationOptions.html","title":"interface - IMigrationOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IMigrationOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n query\n \n \n \n Optional\n \n skip\n \n \n \n Optional\n \n verbose\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n query\n \n \n \n \n \n \n \n \n query: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n \n \n skip: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n verbose\n \n \n \n \n \n \n \n \n verbose: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Command, CommandOption, Console } from 'nestjs-console';\nimport { KeycloakConfigurationUc } from '../uc/keycloak-configuration.uc';\n\nconst defaultError = new Error('IDM is not reachable or authentication failed.');\n\ninterface IRetryOptions {\n\tretryCount?: number;\n\tretryDelay?: number;\n}\n\ninterface IMigrationOptions {\n\tskip?: number;\n\tquery?: string;\n\tverbose?: boolean;\n}\n@Console({ command: 'idm', description: 'Prefixes all Identity Management (IDM) related console commands.' })\nexport class KeycloakConsole {\n\tconstructor(\n\t\tprivate readonly console: ConsoleWriterService,\n\t\tprivate readonly keycloakConfigurationUc: KeycloakConfigurationUc,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(KeycloakConsole.name);\n\t}\n\n\tstatic retryFlags: CommandOption[] = [\n\t\t{\n\t\t\tflags: '-rc, --retry-count ',\n\t\t\tdescription: 'If the command fails, it will be retried this number of times. Default is no retry.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 1,\n\t\t},\n\t\t{\n\t\t\tflags: '-rd, --retry-delay ',\n\t\t\tdescription: 'If \"retry\" is active, this delay is used between each retry. Default is 10 seconds.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 10,\n\t\t},\n\t];\n\n\t/**\n\t * For local development. Checks if connection to IDM is working.\n\t */\n\t@Command({ command: 'check', description: 'Test the connection to the IDM.' })\n\tasync check(): Promise {\n\t\tif (await this.keycloakConfigurationUc.check()) {\n\t\t\tthis.console.info('Connected to IDM');\n\t\t} else {\n\t\t\tthrow defaultError;\n\t\t}\n\t}\n\n\t/**\n\t * For local development. Cleans user from IDM\n\t *\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'clean',\n\t\tdescription: 'Remove all users from the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync clean(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'clean',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.clean();\n\t\t\t\tthis.console.info(`Cleaned ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For local development. Seeds user into IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'seed',\n\t\tdescription: 'Add all seed users to the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync seed(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'seed',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.seed();\n\t\t\t\tthis.console.info(`Seeded ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * Used in production and for local development to transfer configuration to keycloak.\n\t *\n\t */\n\t@Command({\n\t\tcommand: 'configure',\n\t\tdescription: 'Configures Keycloak identity providers.',\n\t\toptions: [...KeycloakConsole.retryFlags],\n\t})\n\tasync configure(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'configure',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.configure();\n\t\t\t\tthis.console.info(`Configured ${count} identity provider(s).`);\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For migration purpose. Moves all database accounts to the IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'migrate',\n\t\tdescription: 'Add all database users to the IDM.',\n\t\toptions: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '-s, --skip',\n\t\t\t\tdescription: 'Skip the first \"s\" accounts during migration. Default 0.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: undefined,\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-v, --verbose',\n\t\t\t\tdescription: 'Log all events. Default is false.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: false,\n\t\t\t},\n\t\t],\n\t})\n\tasync migrate(options: IRetryOptions & IMigrationOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'migrate',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.migrate(\n\t\t\t\t\toptions.skip ? Number(options.skip) : undefined,\n\t\t\t\t\toptions.verbose ? Boolean(options.verbose) : false\n\t\t\t\t);\n\t\t\t\tthis.console.info(`Migrated ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\tprivate async repeatCommand(commandName: string, command: () => Promise, count = 1, delay = 10): Promise {\n\t\tlet repetitions = 0;\n\t\tlet error = new Error('error could be thrown if count is {\n\t\t\tsetTimeout(resolve, ms);\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/INameMatch.html":{"url":"interfaces/INameMatch.html","title":"interface - INameMatch","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n INameMatch\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/importuser.types.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n Match filter for lastName or firstName\n\n \n \n \n \n \n \n\n\n \n import type { IImportUserRoleName } from '../entity/import-user.entity';\n\nexport enum MatchCreatorScope {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n\tNONE = 'none',\n}\n\nexport interface IImportUserScope {\n\tfirstName?: string;\n\tlastName?: string;\n\tloginName?: string;\n\tmatches?: MatchCreatorScope[];\n\tflagged?: boolean;\n\trole?: IImportUserRoleName;\n\tclasses?: string;\n}\n\nexport interface INameMatch {\n\t/**\n\t * Match filter for lastName or firstName\n\t */\n\tname?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/INewsProperties.html":{"url":"interfaces/INewsProperties.html","title":"interface - INewsProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n INewsProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n \n creator\n \n \n \n \n displayAt\n \n \n \n Optional\n \n externalId\n \n \n \n \n school\n \n \n \n Optional\n \n source\n \n \n \n Optional\n \n sourceDescription\n \n \n \n \n target\n \n \n \n \n title\n \n \n \n Optional\n \n updater\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n content\n \n \n \n \n \n \n \n \n content: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n \n \n creator: EntityId | User\n\n \n \n\n\n \n \n Type : EntityId | User\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n \n \n displayAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: EntityId | SchoolEntity\n\n \n \n\n\n \n \n Type : EntityId | SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: \"internal\" | \"rss\"\n\n \n \n\n\n \n \n Type : \"internal\" | \"rss\"\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sourceDescription\n \n \n \n \n \n \n \n \n sourceDescription: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: EntityId | NewsTarget\n\n \n \n\n\n \n \n Type : EntityId | NewsTarget\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updater\n \n \n \n \n \n \n \n \n updater: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/INewsScope.html":{"url":"interfaces/INewsScope.html","title":"interface - INewsScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n INewsScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/news.types.ts\n \n\n\n \n Description\n \n \n interface for finding news with optional targetId\n\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n target\n \n \n \n Optional\n \n unpublished\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n unpublished\n \n \n \n \n \n \n \n \n unpublished: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from './entity-id';\nimport type { Course } from '../entity/course.entity';\nimport type { SchoolEntity } from '../entity/school.entity';\nimport type { TeamEntity } from '../entity/team.entity';\n\nexport enum NewsTargetModel {\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Team' = 'teams',\n}\n\n/** news interface for ceating news */\nexport interface ICreateNews {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt?: Date;\n\ttarget: { targetModel: NewsTargetModel; targetId: EntityId };\n}\n\n/** news interface for updating news */\nexport type IUpdateNews = Partial;\n\n/** interface for finding news with optional targetId */\nexport interface INewsScope {\n\ttarget?: { targetModel: NewsTargetModel; targetId?: EntityId };\n\tunpublished?: boolean;\n}\n\nexport type NewsTarget = SchoolEntity | TeamEntity | Course;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IPagination.html":{"url":"interfaces/IPagination.html","title":"interface - IPagination","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IPagination\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/find-options.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n limit\n \n \n \n Optional\n \n skip\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n limit\n \n \n \n \n \n \n \n \n limit: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n \n \n skip: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IPagination {\n\tskip?: number;\n\tlimit?: number;\n}\n\nexport enum SortOrder {\n\tasc = 'asc',\n\tdesc = 'desc',\n}\n\nexport type SortOrderMap = Partial>;\n\nexport interface IFindOptions {\n\tpagination?: IPagination;\n\torder?: SortOrderMap;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IParentInfo.html":{"url":"interfaces/IParentInfo.html","title":"interface - IParentInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IParentInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRelatedResourceProperties.html":{"url":"interfaces/IRelatedResourceProperties.html","title":"interface - IRelatedResourceProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRelatedResourceProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/materials.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n originId\n \n \n \n Optional\n \n relationType\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n originId\n \n \n \n \n \n \n \n \n originId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n relationType\n \n \n \n \n \n \n \n \n relationType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ITargetGroupProperties {\n\tstate?: string;\n\tschoolType?: string;\n\tgrade?: string;\n}\n\nexport interface IRelatedResourceProperties {\n\toriginId?: string;\n\trelationType?: string;\n}\n\nexport interface IMaterialProperties {\n\tclient: string;\n\tdescription?: string;\n\tlicense: string[];\n\tmerlinReference?: string;\n\trelatedResources: IRelatedResourceProperties[];\n\tsubjects: string[];\n\ttags: string[];\n\ttargetGroups: ITargetGroupProperties[];\n\ttitle: string;\n\turl: string;\n}\n\n@Entity({ collection: 'materials' })\nexport class Material extends BaseEntityWithTimestamps {\n\t@Property()\n\tclient: string;\n\n\t@Property()\n\tdescription?: string;\n\n\t@Property()\n\tlicense: string[];\n\n\t@Property()\n\tmerlinReference?: string;\n\n\t@Property()\n\trelatedResources: IRelatedResourceProperties[] | [];\n\n\t@Property()\n\tsubjects: string[] | [];\n\n\t@Property()\n\ttags: string[] | [];\n\n\t@Property()\n\ttargetGroups: ITargetGroupProperties[] | [];\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\turl: string;\n\n\tconstructor(props: IMaterialProperties) {\n\t\tsuper();\n\t\tthis.client = props.client;\n\t\tthis.description = props.description || '';\n\t\tthis.license = props.license;\n\t\tthis.merlinReference = props.merlinReference || '';\n\t\tthis.relatedResources = props.relatedResources;\n\t\tthis.subjects = props.subjects;\n\t\tthis.tags = props.tags;\n\t\tthis.targetGroups = props.targetGroups;\n\t\tthis.title = props.title;\n\t\tthis.url = props.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRepoLoader.html":{"url":"interfaces/IRepoLoader.html","title":"interface - IRepoLoader","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRepoLoader\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/reference.loader.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n populate\n \n \n \n \n repo\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n populate\n \n \n \n \n \n \n \n \n populate: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n repo\n \n \n \n \n \n \n \n \n repo: RepoType\n\n \n \n\n\n \n \n Type : RepoType\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { BaseDO, EntityId, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport {\n\tCourseGroupRepo,\n\tCourseRepo,\n\tLessonRepo,\n\tSchoolExternalToolRepo,\n\tLegacySchoolRepo,\n\tSubmissionRepo,\n\tTaskRepo,\n\tTeamsRepo,\n\tUserRepo,\n} from '@shared/repo';\nimport { BoardDoAuthorizableService } from '@src/modules/board/service';\nimport { ContextExternalToolAuthorizableService } from '@src/modules/tool/context-external-tool/service';\nimport { AuthorizableReferenceType } from './types';\n\n// replace later with general \"base\" do-repo\ntype RepoType =\n\t| TaskRepo\n\t| CourseRepo\n\t| UserRepo\n\t| LegacySchoolRepo\n\t| LessonRepo\n\t| TeamsRepo\n\t| CourseGroupRepo\n\t| SubmissionRepo\n\t| SchoolExternalToolRepo\n\t| BoardDoAuthorizableService\n\t| ContextExternalToolAuthorizableService;\n\ninterface IRepoLoader {\n\trepo: RepoType;\n\tpopulate?: boolean;\n}\n\n@Injectable()\nexport class ReferenceLoader {\n\tprivate repos: Map = new Map();\n\n\tconstructor(\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly courseGroupRepo: CourseGroupRepo,\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly schoolRepo: LegacySchoolRepo,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly teamsRepo: TeamsRepo,\n\t\tprivate readonly submissionRepo: SubmissionRepo,\n\t\tprivate readonly schoolExternalToolRepo: SchoolExternalToolRepo,\n\t\tprivate readonly boardNodeAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly contextExternalToolAuthorizableService: ContextExternalToolAuthorizableService\n\t) {\n\t\tthis.repos.set(AuthorizableReferenceType.Task, { repo: this.taskRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Course, { repo: this.courseRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.CourseGroup, { repo: this.courseGroupRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.User, { repo: this.userRepo, populate: true });\n\t\tthis.repos.set(AuthorizableReferenceType.School, { repo: this.schoolRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Lesson, { repo: this.lessonRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Team, { repo: this.teamsRepo, populate: true });\n\t\tthis.repos.set(AuthorizableReferenceType.Submission, { repo: this.submissionRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.SchoolExternalToolEntity, { repo: this.schoolExternalToolRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.BoardNode, { repo: this.boardNodeAuthorizableService });\n\t\tthis.repos.set(AuthorizableReferenceType.ContextExternalToolEntity, {\n\t\t\trepo: this.contextExternalToolAuthorizableService,\n\t\t});\n\t}\n\n\tprivate resolveRepo(type: AuthorizableReferenceType): IRepoLoader {\n\t\tconst repo = this.repos.get(type);\n\t\tif (repo) {\n\t\t\treturn repo;\n\t\t}\n\t\tthrow new NotImplementedException('REPO_OR_SERVICE_NOT_IMPLEMENT');\n\t}\n\n\tasync loadAuthorizableObject(\n\t\tobjectName: AuthorizableReferenceType,\n\t\tobjectId: EntityId\n\t): Promise {\n\t\tconst repoLoader: IRepoLoader = this.resolveRepo(objectName);\n\n\t\tlet object: AuthorizableObject | BaseDO;\n\t\tif (repoLoader.populate) {\n\t\t\tobject = await repoLoader.repo.findById(objectId, true);\n\t\t} else {\n\t\t\tobject = await repoLoader.repo.findById(objectId);\n\t\t}\n\n\t\treturn object;\n\t}\n\n\tasync getUserWithPermissions(userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\n\t\treturn user;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IResolvedUser.html":{"url":"interfaces/IResolvedUser.html","title":"interface - IResolvedUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IResolvedUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/user.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n firstName\n \n \n \n \n id\n \n \n \n \n lastName\n \n \n \n \n permissions\n \n \n \n \n roles\n \n \n \n \n schoolId\n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n \n \n permissions: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: IRole[]\n\n \n \n\n\n \n \n Type : IRole[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface IRole {\n\tname: string;\n\n\tid: string;\n}\n\nexport interface IResolvedUser {\n\tfirstName: string;\n\n\tlastName: string;\n\n\tid: string;\n\n\tcreatedAt: Date;\n\n\tupdatedAt: Date;\n\n\troles: IRole[];\n\n\tpermissions: string[];\n\n\tschoolId: string;\n}\n\nexport interface ICurrentUser {\n\t/** authenticated users id */\n\tuserId: EntityId;\n\t/** users role ids as EntityId[] */\n\troles: EntityId[];\n\t/** users schoolId as EntityId */\n\tschoolId: EntityId;\n\t/** account id as EntityId */\n\taccountId: EntityId;\n\n\t/** true if user is provided by external system -> no pw change in first login */\n\tsystemId?: EntityId;\n\n\t/** True if a support member impersonates the user */\n\timpersonated?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRetryOptions.html":{"url":"interfaces/IRetryOptions.html","title":"interface - IRetryOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRetryOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n retryCount\n \n \n \n Optional\n \n retryDelay\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n retryCount\n \n \n \n \n \n \n \n \n retryCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n retryDelay\n \n \n \n \n \n \n \n \n retryDelay: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Command, CommandOption, Console } from 'nestjs-console';\nimport { KeycloakConfigurationUc } from '../uc/keycloak-configuration.uc';\n\nconst defaultError = new Error('IDM is not reachable or authentication failed.');\n\ninterface IRetryOptions {\n\tretryCount?: number;\n\tretryDelay?: number;\n}\n\ninterface IMigrationOptions {\n\tskip?: number;\n\tquery?: string;\n\tverbose?: boolean;\n}\n@Console({ command: 'idm', description: 'Prefixes all Identity Management (IDM) related console commands.' })\nexport class KeycloakConsole {\n\tconstructor(\n\t\tprivate readonly console: ConsoleWriterService,\n\t\tprivate readonly keycloakConfigurationUc: KeycloakConfigurationUc,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(KeycloakConsole.name);\n\t}\n\n\tstatic retryFlags: CommandOption[] = [\n\t\t{\n\t\t\tflags: '-rc, --retry-count ',\n\t\t\tdescription: 'If the command fails, it will be retried this number of times. Default is no retry.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 1,\n\t\t},\n\t\t{\n\t\t\tflags: '-rd, --retry-delay ',\n\t\t\tdescription: 'If \"retry\" is active, this delay is used between each retry. Default is 10 seconds.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 10,\n\t\t},\n\t];\n\n\t/**\n\t * For local development. Checks if connection to IDM is working.\n\t */\n\t@Command({ command: 'check', description: 'Test the connection to the IDM.' })\n\tasync check(): Promise {\n\t\tif (await this.keycloakConfigurationUc.check()) {\n\t\t\tthis.console.info('Connected to IDM');\n\t\t} else {\n\t\t\tthrow defaultError;\n\t\t}\n\t}\n\n\t/**\n\t * For local development. Cleans user from IDM\n\t *\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'clean',\n\t\tdescription: 'Remove all users from the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync clean(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'clean',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.clean();\n\t\t\t\tthis.console.info(`Cleaned ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For local development. Seeds user into IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'seed',\n\t\tdescription: 'Add all seed users to the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync seed(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'seed',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.seed();\n\t\t\t\tthis.console.info(`Seeded ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * Used in production and for local development to transfer configuration to keycloak.\n\t *\n\t */\n\t@Command({\n\t\tcommand: 'configure',\n\t\tdescription: 'Configures Keycloak identity providers.',\n\t\toptions: [...KeycloakConsole.retryFlags],\n\t})\n\tasync configure(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'configure',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.configure();\n\t\t\t\tthis.console.info(`Configured ${count} identity provider(s).`);\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For migration purpose. Moves all database accounts to the IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'migrate',\n\t\tdescription: 'Add all database users to the IDM.',\n\t\toptions: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '-s, --skip',\n\t\t\t\tdescription: 'Skip the first \"s\" accounts during migration. Default 0.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: undefined,\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-v, --verbose',\n\t\t\t\tdescription: 'Log all events. Default is false.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: false,\n\t\t\t},\n\t\t],\n\t})\n\tasync migrate(options: IRetryOptions & IMigrationOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'migrate',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.migrate(\n\t\t\t\t\toptions.skip ? Number(options.skip) : undefined,\n\t\t\t\t\toptions.verbose ? Boolean(options.verbose) : false\n\t\t\t\t);\n\t\t\t\tthis.console.info(`Migrated ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\tprivate async repeatCommand(commandName: string, command: () => Promise, count = 1, delay = 10): Promise {\n\t\tlet repetitions = 0;\n\t\tlet error = new Error('error could be thrown if count is {\n\t\t\tsetTimeout(resolve, ms);\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRole.html":{"url":"interfaces/IRole.html","title":"interface - IRole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/user.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface IRole {\n\tname: string;\n\n\tid: string;\n}\n\nexport interface IResolvedUser {\n\tfirstName: string;\n\n\tlastName: string;\n\n\tid: string;\n\n\tcreatedAt: Date;\n\n\tupdatedAt: Date;\n\n\troles: IRole[];\n\n\tpermissions: string[];\n\n\tschoolId: string;\n}\n\nexport interface ICurrentUser {\n\t/** authenticated users id */\n\tuserId: EntityId;\n\t/** users role ids as EntityId[] */\n\troles: EntityId[];\n\t/** users schoolId as EntityId */\n\tschoolId: EntityId;\n\t/** account id as EntityId */\n\taccountId: EntityId;\n\n\t/** true if user is provided by external system -> no pw change in first login */\n\tsystemId?: EntityId;\n\n\t/** True if a support member impersonates the user */\n\timpersonated?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRoleProperties.html":{"url":"interfaces/IRoleProperties.html","title":"interface - IRoleProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRoleProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/role.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n Optional\n \n permissions\n \n \n \n Optional\n \n roles\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: RoleName\n\n \n \n\n\n \n \n Type : RoleName\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n \n \n permissions: Permission[]\n\n \n \n\n\n \n \n Type : Permission[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: Role[]\n\n \n \n\n\n \n \n Type : Role[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, ManyToMany, Property, Unique } from '@mikro-orm/core';\nimport { Permission, RoleName } from '../interface';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IRoleProperties {\n\tpermissions?: Permission[];\n\troles?: Role[];\n\tname: RoleName;\n}\n\n@Entity({ tableName: 'roles' })\nexport class Role extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tname: RoleName;\n\n\t@Property()\n\tpermissions: Permission[] = [];\n\n\t@ManyToMany({ entity: 'Role' })\n\troles = new Collection(this);\n\n\tconstructor(props: IRoleProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.permissions) this.permissions = props.permissions;\n\t\tif (props.roles) this.roles.set(props.roles);\n\t}\n\n\tpublic resolvePermissions(): string[] {\n\t\tif (!this.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\n\t\tlet permissions: string[] = [...this.permissions];\n\n\t\tconst innerRoles = this.roles.getItems();\n\t\tinnerRoles.forEach((innerRole) => {\n\t\t\tconst innerPermissions = innerRole.resolvePermissions();\n\t\t\tpermissions = [...permissions, ...innerPermissions];\n\t\t});\n\n\t\tconst uniquePermissions = [...new Set(permissions)];\n\n\t\treturn uniquePermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISchoolExternalToolProperties.html":{"url":"interfaces/ISchoolExternalToolProperties.html","title":"interface - ISchoolExternalToolProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISchoolExternalToolProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n school\n \n \n \n Optional\n \n schoolParameters\n \n \n \n \n tool\n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolParameters\n \n \n \n \n \n \n \n \n schoolParameters: CustomParameterEntryEntity[]\n\n \n \n\n\n \n \n Type : CustomParameterEntryEntity[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n tool\n \n \n \n \n \n \n \n \n tool: ExternalToolEntity\n\n \n \n\n\n \n \n Type : ExternalToolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n toolVersion: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { CustomParameterEntryEntity } from '../../common/entity';\nimport { ExternalToolEntity } from '../../external-tool/entity';\n\nexport interface ISchoolExternalToolProperties {\n\ttool: ExternalToolEntity;\n\tschool: SchoolEntity;\n\tschoolParameters?: CustomParameterEntryEntity[];\n\ttoolVersion: number;\n}\n\n@Entity({ tableName: 'school_external_tools' })\nexport class SchoolExternalToolEntity extends BaseEntityWithTimestamps {\n\t@ManyToOne()\n\ttool: ExternalToolEntity;\n\n\t@ManyToOne(() => SchoolEntity, { eager: true })\n\tschool: SchoolEntity;\n\n\t@Embedded(() => CustomParameterEntryEntity, { array: true })\n\tschoolParameters: CustomParameterEntryEntity[];\n\n\t@Property()\n\ttoolVersion: number;\n\n\tconstructor(props: ISchoolExternalToolProperties) {\n\t\tsuper();\n\t\tthis.tool = props.tool;\n\t\tthis.school = props.school;\n\t\tthis.schoolParameters = props.schoolParameters ?? [];\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISchoolProperties.html":{"url":"interfaces/ISchoolProperties.html","title":"interface - ISchoolProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISchoolProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/school.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n _id\n \n \n \n Optional\n \n externalId\n \n \n \n Optional\n \n features\n \n \n \n \n federalState\n \n \n \n Optional\n \n inMaintenanceSince\n \n \n \n Optional\n \n inUserMigration\n \n \n \n \n name\n \n \n \n Optional\n \n officialSchoolNumber\n \n \n \n Optional\n \n previousExternalId\n \n \n \n Optional\n \n schoolYear\n \n \n \n Optional\n \n systems\n \n \n \n Optional\n \n userLoginMigration\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n _id\n \n \n \n \n \n \n \n \n _id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n features\n \n \n \n \n \n \n \n \n features: SchoolFeatures[]\n\n \n \n\n\n \n \n Type : SchoolFeatures[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n federalState\n \n \n \n \n \n \n \n \n federalState: FederalState\n\n \n \n\n\n \n \n Type : FederalState\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n inMaintenanceSince\n \n \n \n \n \n \n \n \n inMaintenanceSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n inUserMigration\n \n \n \n \n \n \n \n \n inUserMigration: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n officialSchoolNumber\n \n \n \n \n \n \n \n \n officialSchoolNumber: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n previousExternalId\n \n \n \n \n \n \n \n \n previousExternalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n schoolYear\n \n \n \n \n \n \n \n \n schoolYear: SchoolYear\n\n \n \n\n\n \n \n Type : SchoolYear\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n systems\n \n \n \n \n \n \n \n \n systems: System[]\n\n \n \n\n\n \n \n Type : System[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n userLoginMigration\n \n \n \n \n \n \n \n \n userLoginMigration: UserLoginMigration\n\n \n \n\n\n \n \n Type : UserLoginMigration\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import {\n\tCollection,\n\tEmbeddable,\n\tEmbedded,\n\tEntity,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToOne,\n\tProperty,\n} from '@mikro-orm/core';\nimport { UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYear } from './schoolyear.entity';\nimport { System } from './system.entity';\nimport { FederalState } from './federal-state.entity';\n\nexport enum SchoolFeatures {\n\tROCKET_CHAT = 'rocketChat',\n\tVIDEOCONFERENCE = 'videoconference',\n\tNEXTCLOUD = 'nextcloud',\n\tSTUDENTVISIBILITY = 'studentVisibility', // deprecated\n\tLDAP_UNIVENTION_MIGRATION = 'ldapUniventionMigrationSchool',\n\tOAUTH_PROVISIONING_ENABLED = 'oauthProvisioningEnabled',\n\tSHOW_OUTDATED_USERS = 'showOutdatedUsers',\n\tENABLE_LDAP_SYNC_DURING_MIGRATION = 'enableLdapSyncDuringMigration',\n}\n\nexport interface ISchoolProperties {\n\t_id?: string;\n\texternalId?: string;\n\tinMaintenanceSince?: Date;\n\tinUserMigration?: boolean;\n\tpreviousExternalId?: string;\n\tname: string;\n\tofficialSchoolNumber?: string;\n\tsystems?: System[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYear;\n\tuserLoginMigration?: UserLoginMigration;\n\tfederalState: FederalState;\n}\n\n@Embeddable()\nexport class SchoolRolePermission {\n\t@Property({ nullable: true })\n\tSTUDENT_LIST?: boolean;\n\n\t@Property({ nullable: true })\n\tLERNSTORE_VIEW?: boolean;\n}\n\n@Embeddable()\nexport class SchoolRoles {\n\t@Property({ nullable: true, fieldName: 'student' })\n\tstudent?: SchoolRolePermission;\n\n\t@Property({ nullable: true, fieldName: 'teacher' })\n\tteacher?: SchoolRolePermission;\n}\n\n@Entity({ tableName: 'schools' })\n@Index({ properties: ['externalId', 'systems'] })\nexport class SchoolEntity extends BaseEntity {\n\t@Property({ nullable: true })\n\tfeatures?: SchoolFeatures[];\n\n\t@Property({ nullable: true })\n\tinMaintenanceSince?: Date;\n\n\t@Property({ nullable: true })\n\tinUserMigration?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'ldapSchoolIdentifier' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tofficialSchoolNumber?: string;\n\n\t@ManyToMany('System', undefined, { fieldName: 'systems' })\n\tsystems = new Collection(this);\n\n\t@Embedded(() => SchoolRoles, { object: true, nullable: true, prefix: false })\n\tpermissions?: SchoolRoles;\n\n\t@ManyToOne('SchoolYear', { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYear;\n\n\t@OneToOne(() => UserLoginMigration, (userLoginMigration: UserLoginMigration) => userLoginMigration.school, {\n\t\torphanRemoval: true,\n\t\tnullable: true,\n\t\tfieldName: 'userLoginMigrationId',\n\t})\n\tuserLoginMigration?: UserLoginMigration;\n\n\t@ManyToOne(() => FederalState, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalState;\n\n\tconstructor(props: ISchoolProperties) {\n\t\tsuper();\n\t\tif (props.externalId) {\n\t\t\tthis.externalId = props.externalId;\n\t\t}\n\t\tif (props.previousExternalId) {\n\t\t\tthis.previousExternalId = props.previousExternalId;\n\t\t}\n\t\tthis.inMaintenanceSince = props.inMaintenanceSince;\n\t\tif (props.inUserMigration !== null) {\n\t\t\tthis.inUserMigration = props.inUserMigration;\n\t\t}\n\t\tthis.name = props.name;\n\t\tif (props.officialSchoolNumber) {\n\t\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t\t}\n\t\tif (props.systems) {\n\t\t\tthis.systems.set(props.systems);\n\t\t}\n\t\tif (props.features) {\n\t\t\tthis.features = props.features;\n\t\t}\n\t\tif (props.schoolYear) {\n\t\t\tthis.schoolYear = props.schoolYear;\n\t\t}\n\t\tif (props.userLoginMigration) {\n\t\t\tthis.userLoginMigration = props.userLoginMigration;\n\t\t}\n\t\tthis.federalState = props.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISchoolYearProperties.html":{"url":"interfaces/ISchoolYearProperties.html","title":"interface - ISchoolYearProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISchoolYearProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/schoolyear.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n endDate\n \n \n \n \n name\n \n \n \n \n startDate\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n endDate\n \n \n \n \n \n \n \n \n endDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n startDate\n \n \n \n \n \n \n \n \n startDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntity } from './base.entity';\n\nexport interface ISchoolYearProperties {\n\tname: string;\n\tstartDate: Date;\n\tendDate: Date;\n}\n\n@Entity({ tableName: 'years' })\nexport class SchoolYear extends BaseEntity implements ISchoolYearProperties {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tstartDate: Date;\n\n\t@Property()\n\tendDate: Date;\n\n\tconstructor(props: ISchoolYearProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.startDate = props.startDate;\n\t\tthis.endDate = props.endDate;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IScopeInfo.html":{"url":"interfaces/IScopeInfo.html","title":"interface - IScopeInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IScopeInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/scope-info.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n logoutUrl\n \n \n \n \n scopeId\n \n \n \n \n scopeName\n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n logoutUrl\n \n \n \n \n \n \n \n \n logoutUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n scopeId\n \n \n \n \n \n \n \n \n scopeId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n scopeName\n \n \n \n \n \n \n \n \n scopeName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface IScopeInfo {\n\tscopeId: EntityId;\n\n\tscopeName: string;\n\n\ttitle: string;\n\n\tlogoutUrl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IServerConfig.html":{"url":"interfaces/IServerConfig.html","title":"interface - IServerConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IServerConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/server/server.config.ts\n \n\n\n\n \n Extends\n \n \n ICoreModuleConfig\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n NODE_ENV\n \n \n \n \n SC_DOMAIN\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n NODE_ENV\n \n \n \n \n \n \n \n \n NODE_ENV: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n SC_DOMAIN\n \n \n \n \n \n \n \n \n SC_DOMAIN: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport type { IIdentityManagementConfig } from '@shared/infra/identity-management';\nimport type { ICoreModuleConfig } from '@src/core';\nimport type { IAccountConfig, IFilesStorageClientConfig, IUserConfig } from '@src/modules/';\nimport type { ICommonCartridgeConfig } from '@src/modules/learnroom/common-cartridge';\n\nexport enum NodeEnvType {\n\tTEST = 'test',\n\tDEVELOPMENT = 'development',\n\tPRODUCTION = 'production',\n\tMIGRATION = 'migration',\n}\n\nexport interface IServerConfig\n\textends ICoreModuleConfig,\n\t\tIUserConfig,\n\t\tIFilesStorageClientConfig,\n\t\tIAccountConfig,\n\t\tIIdentityManagementConfig,\n\t\tICommonCartridgeConfig {\n\tNODE_ENV: string;\n\tSC_DOMAIN: string;\n}\n\nconst config: IServerConfig = {\n\tSC_DOMAIN: Configuration.get('SC_DOMAIN') as string,\n\tINCOMING_REQUEST_TIMEOUT: Configuration.get('INCOMING_REQUEST_TIMEOUT_API') as number,\n\tINCOMING_REQUEST_TIMEOUT_COPY_API: Configuration.get('INCOMING_REQUEST_TIMEOUT_COPY_API') as number,\n\tNEST_LOG_LEVEL: Configuration.get('NEST_LOG_LEVEL') as string,\n\tAVAILABLE_LANGUAGES: (Configuration.get('I18N__AVAILABLE_LANGUAGES') as string).split(','),\n\tNODE_ENV: Configuration.get('NODE_ENV') as NodeEnvType,\n\tLOGIN_BLOCK_TIME: Configuration.get('LOGIN_BLOCK_TIME') as number,\n\tTEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE: Configuration.get(\n\t\t'TEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE'\n\t) as boolean,\n\tFEATURE_IMSCC_COURSE_EXPORT_ENABLED: Configuration.get('FEATURE_IMSCC_COURSE_EXPORT_ENABLED') as boolean,\n\tFEATURE_IDENTITY_MANAGEMENT_ENABLED: Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean,\n\tFEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED: Configuration.get('FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED') as boolean,\n\tFEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED: Configuration.get('FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED') as boolean,\n};\n\nexport const serverConfig = () => config;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IShareTokenProperties.html":{"url":"interfaces/IShareTokenProperties.html","title":"interface - IShareTokenProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IShareTokenProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/entity/share-token.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n contextId\n \n \n \n Optional\n \n contextType\n \n \n \n Optional\n \n expiresAt\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n token\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextId\n \n \n \n \n \n \n \n \n contextId: EntityId | ObjectId\n\n \n \n\n\n \n \n Type : EntityId | ObjectId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n \n \n contextType: ShareTokenContextType\n\n \n \n\n\n \n \n Type : ShareTokenContextType\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n expiresAt\n \n \n \n \n \n \n \n \n expiresAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId | ObjectId\n\n \n \n\n\n \n \n Type : EntityId | ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: ShareTokenParentType\n\n \n \n\n\n \n \n Type : ShareTokenParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n \n \n token: ShareTokenString\n\n \n \n\n\n \n \n Type : ShareTokenString\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain/types/entity-id';\nimport { ShareTokenContextType, ShareTokenParentType, ShareTokenString } from '../domainobject/share-token.do';\n\nexport interface IShareTokenProperties {\n\ttoken: ShareTokenString;\n\tparentType: ShareTokenParentType;\n\tparentId: EntityId | ObjectId;\n\tcontextType?: ShareTokenContextType;\n\tcontextId?: EntityId | ObjectId;\n\texpiresAt?: Date;\n}\n\n@Entity({ tableName: 'sharetokens' })\nexport class ShareToken extends BaseEntityWithTimestamps {\n\t@Property()\n\ttoken: ShareTokenString;\n\n\t@Enum()\n\tparentType: ShareTokenParentType;\n\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Enum({ nullable: true })\n\tcontextType?: ShareTokenContextType;\n\n\t@Property({ fieldName: 'context', nullable: true })\n\t_contextId?: ObjectId;\n\n\tget contextId(): EntityId | undefined {\n\t\treturn this._contextId?.toHexString();\n\t}\n\n\t@Index({ options: { expireAfterSeconds: 0 } })\n\t@Property({ nullable: true })\n\texpiresAt?: Date;\n\n\tconstructor(props: IShareTokenProperties) {\n\t\tsuper();\n\t\tthis.token = props.token;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis.contextType = props.contextType;\n\t\tif (props.contextId !== undefined) {\n\t\t\tthis._contextId = new ObjectId(props.contextId);\n\t\t}\n\t\tthis.expiresAt = props.expiresAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IStorageProviderProperties.html":{"url":"interfaces/IStorageProviderProperties.html","title":"interface - IStorageProviderProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IStorageProviderProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/storageprovider.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessKeyId\n \n \n \n \n endpointUrl\n \n \n \n Optional\n \n region\n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accessKeyId\n \n \n \n \n \n \n \n \n accessKeyId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n endpointUrl\n \n \n \n \n \n \n \n \n endpointUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n region\n \n \n \n \n \n \n \n \n region: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n secretAccessKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { StorageProviderEncryptedStringType } from '@shared/repo/types/StorageProviderEncryptedString.type';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IStorageProviderProperties {\n\tendpointUrl: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n\tregion?: string;\n}\n\n@Entity({ tableName: 'storageproviders' })\nexport class StorageProviderEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tendpointUrl: string;\n\n\t@Property()\n\taccessKeyId: string;\n\n\t@Property({ fieldName: 'secretAccessKey', type: StorageProviderEncryptedStringType })\n\tsecretAccessKey: string;\n\n\t@Property({ nullable: true })\n\tregion?: string;\n\n\tconstructor(props: IStorageProviderProperties) {\n\t\tsuper();\n\t\tthis.endpointUrl = props.endpointUrl;\n\t\tthis.accessKeyId = props.accessKeyId;\n\t\tthis.secretAccessKey = props.secretAccessKey;\n\t\tthis.region = props.region;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISubmissionProperties.html":{"url":"interfaces/ISubmissionProperties.html","title":"interface - ISubmissionProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISubmissionProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/submission.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n comment\n \n \n \n Optional\n \n courseGroup\n \n \n \n Optional\n \n grade\n \n \n \n Optional\n \n gradeComment\n \n \n \n Optional\n \n graded\n \n \n \n \n school\n \n \n \n \n student\n \n \n \n Optional\n \n submitted\n \n \n \n \n task\n \n \n \n Optional\n \n teamMembers\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n comment\n \n \n \n \n \n \n \n \n comment: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n courseGroup\n \n \n \n \n \n \n \n \n courseGroup: CourseGroup\n\n \n \n\n\n \n \n Type : CourseGroup\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n grade\n \n \n \n \n \n \n \n \n grade: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n gradeComment\n \n \n \n \n \n \n \n \n gradeComment: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \n \n \n graded: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n student\n \n \n \n \n \n \n \n \n student: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n \n \n submitted: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n task\n \n \n \n \n \n \n \n \n task: Task\n\n \n \n\n\n \n \n Type : Task\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n teamMembers\n \n \n \n \n \n \n \n \n teamMembers: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property, Unique } from '@mikro-orm/core';\n\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { CourseGroup } from './coursegroup.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { Task } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ISubmissionProperties {\n\tschool: SchoolEntity;\n\ttask: Task;\n\tstudent: User;\n\tcourseGroup?: CourseGroup;\n\tteamMembers?: User[];\n\tcomment: string;\n\tsubmitted?: boolean;\n\tgraded?: boolean;\n\tgrade?: number;\n\tgradeComment?: string;\n}\n\n@Entity({ tableName: 'submissions' })\n@Index({ properties: ['student', 'teamMembers'] })\n@Unique({ properties: ['student', 'task'] })\nexport class Submission extends BaseEntityWithTimestamps {\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\t@Index()\n\tschool: SchoolEntity;\n\n\t@ManyToOne('Task', { fieldName: 'homeworkId' })\n\t@Index()\n\ttask: Task;\n\n\t@ManyToOne('User', { fieldName: 'studentId' })\n\tstudent: User;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@ManyToMany('User', undefined, { fieldName: 'teamMembers' })\n\tteamMembers = new Collection(this);\n\n\t@Property({ nullable: true })\n\tcomment?: string;\n\n\t@Property()\n\tsubmitted: boolean;\n\n\t@Property()\n\tgraded: boolean;\n\n\t@Property({ nullable: true })\n\tgrade?: number;\n\n\t@Property({ nullable: true })\n\tgradeComment?: string;\n\n\tconstructor(props: ISubmissionProperties) {\n\t\tsuper();\n\t\tthis.school = props.school;\n\t\tthis.student = props.student;\n\t\tthis.comment = props.comment;\n\t\tthis.task = props.task;\n\t\tthis.submitted = props.submitted || false;\n\t\tthis.graded = props.graded || false;\n\t\tthis.grade = props.grade;\n\t\tthis.gradeComment = props.gradeComment;\n\t\tthis.courseGroup = props.courseGroup;\n\n\t\tif (props.teamMembers !== undefined) {\n\t\t\tthis.teamMembers.set(props.teamMembers);\n\t\t}\n\t}\n\n\tprivate getCourseGroupStudentIds(): EntityId[] {\n\t\tlet courseGroupMemberIds: EntityId[] = [];\n\n\t\tif (this.courseGroup) {\n\t\t\tcourseGroupMemberIds = this.courseGroup.getStudentIds();\n\t\t}\n\n\t\treturn courseGroupMemberIds;\n\t}\n\n\tprivate getTeamMemberIds(): EntityId[] {\n\t\tif (!this.teamMembers) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'Submission.teamMembers is undefined. The submission need to be populated.'\n\t\t\t);\n\t\t}\n\n\t\tconst teamMemberObjectIds = this.teamMembers.getIdentifiers('_id');\n\t\tconst teamMemberIds = teamMemberObjectIds.map((id): string => id.toString());\n\n\t\treturn teamMemberIds;\n\t}\n\n\tpublic isSubmitted(): boolean {\n\t\treturn this.submitted;\n\t}\n\n\tpublic isSubmittedForUser(user: User): boolean {\n\t\tconst isMember = this.isUserSubmitter(user);\n\t\tconst isSubmitted = this.isSubmitted();\n\t\tconst isSubmittedForUser = isMember && isSubmitted;\n\n\t\treturn isSubmittedForUser;\n\t}\n\n\t// Bad that the logic is needed to expose the userIds, but is used in task for now.\n\t// Check later if it can be replaced and remove all related code.\n\tpublic getSubmitterIds(): EntityId[] {\n\t\tconst creatorId = this.student.id;\n\t\tconst teamMemberIds = this.getTeamMemberIds();\n\t\tconst courseGroupMemberIds = this.getCourseGroupStudentIds();\n\t\tconst memberIds = [creatorId, ...teamMemberIds, ...courseGroupMemberIds];\n\n\t\tconst uniqueMemberIds = [...new Set(memberIds)];\n\n\t\treturn uniqueMemberIds;\n\t}\n\n\tpublic isUserSubmitter(user: User): boolean {\n\t\tconst memberIds = this.getSubmitterIds();\n\t\tconst isMember = memberIds.some((id) => id === user.id);\n\n\t\treturn isMember;\n\t}\n\n\tpublic isGraded(): boolean {\n\t\treturn this.graded;\n\t}\n\n\tpublic isGradedForUser(user: User): boolean {\n\t\tconst isMember = this.isUserSubmitter(user);\n\t\tconst isGraded = this.isGraded();\n\t\tconst isGradedForUser = isMember && isGraded;\n\n\t\treturn isGradedForUser;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISystemProperties.html":{"url":"interfaces/ISystemProperties.html","title":"interface - ISystemProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISystemProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n alias\n \n \n \n Optional\n \n displayName\n \n \n \n Optional\n \n ldapConfig\n \n \n \n Optional\n \n oauthConfig\n \n \n \n Optional\n \n oidcConfig\n \n \n \n Optional\n \n provisioningStrategy\n \n \n \n Optional\n \n provisioningUrl\n \n \n \n \n type\n \n \n \n Optional\n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n alias\n \n \n \n \n \n \n \n \n alias: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n \n \n displayName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ldapConfig\n \n \n \n \n \n \n \n \n ldapConfig: LdapConfig\n\n \n \n\n\n \n \n Type : LdapConfig\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n oauthConfig\n \n \n \n \n \n \n \n \n oauthConfig: OauthConfig\n\n \n \n\n\n \n \n Type : OauthConfig\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n oidcConfig\n \n \n \n \n \n \n \n \n oidcConfig: OidcConfig\n\n \n \n\n\n \n \n Type : OidcConfig\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n provisioningStrategy\n \n \n \n \n \n \n \n \n provisioningStrategy: SystemProvisioningStrategy\n\n \n \n\n\n \n \n Type : SystemProvisioningStrategy\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n provisioningUrl\n \n \n \n \n \n \n \n \n provisioningUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITargetGroupProperties.html":{"url":"interfaces/ITargetGroupProperties.html","title":"interface - ITargetGroupProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITargetGroupProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/materials.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n grade\n \n \n \n Optional\n \n schoolType\n \n \n \n Optional\n \n state\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n grade\n \n \n \n \n \n \n \n \n grade: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n schoolType\n \n \n \n \n \n \n \n \n schoolType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n \n \n state: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ITargetGroupProperties {\n\tstate?: string;\n\tschoolType?: string;\n\tgrade?: string;\n}\n\nexport interface IRelatedResourceProperties {\n\toriginId?: string;\n\trelationType?: string;\n}\n\nexport interface IMaterialProperties {\n\tclient: string;\n\tdescription?: string;\n\tlicense: string[];\n\tmerlinReference?: string;\n\trelatedResources: IRelatedResourceProperties[];\n\tsubjects: string[];\n\ttags: string[];\n\ttargetGroups: ITargetGroupProperties[];\n\ttitle: string;\n\turl: string;\n}\n\n@Entity({ collection: 'materials' })\nexport class Material extends BaseEntityWithTimestamps {\n\t@Property()\n\tclient: string;\n\n\t@Property()\n\tdescription?: string;\n\n\t@Property()\n\tlicense: string[];\n\n\t@Property()\n\tmerlinReference?: string;\n\n\t@Property()\n\trelatedResources: IRelatedResourceProperties[] | [];\n\n\t@Property()\n\tsubjects: string[] | [];\n\n\t@Property()\n\ttags: string[] | [];\n\n\t@Property()\n\ttargetGroups: ITargetGroupProperties[] | [];\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\turl: string;\n\n\tconstructor(props: IMaterialProperties) {\n\t\tsuper();\n\t\tthis.client = props.client;\n\t\tthis.description = props.description || '';\n\t\tthis.license = props.license;\n\t\tthis.merlinReference = props.merlinReference || '';\n\t\tthis.relatedResources = props.relatedResources;\n\t\tthis.subjects = props.subjects;\n\t\tthis.tags = props.tags;\n\t\tthis.targetGroups = props.targetGroups;\n\t\tthis.title = props.title;\n\t\tthis.url = props.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITask.html":{"url":"interfaces/ITask.html","title":"interface - ITask","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITask\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n availableDate\n \n \n \n Optional\n \n description\n \n \n \n Optional\n \n descriptionInputFormat\n \n \n \n Optional\n \n dueDate\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n availableDate\n \n \n \n \n \n \n \n \n availableDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n descriptionInputFormat\n \n \n \n \n \n \n \n \n descriptionInputFormat: InputFormat\n\n \n \n\n\n \n \n Type : InputFormat\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n dueDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskCreate.html":{"url":"interfaces/ITaskCreate.html","title":"interface - ITaskCreate","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskCreate\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n \n Extends\n \n \n ITask\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n courseId\n \n \n \n Optional\n \n lessonId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n courseId\n \n \n \n \n \n \n \n \n courseId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lessonId\n \n \n \n \n \n \n \n \n lessonId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskParent.html":{"url":"interfaces/ITaskParent.html","title":"interface - ITaskParent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskParent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/task.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getStudentIds\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getStudentIds\n \n \n \n \n \n \ngetStudentIds()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:35\n \n \n\n\n \n \n\n \n Returns : EntityId[]\n\n \n \n \n \n \n\n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { InputFormat } from '@shared/domain/types/input-format.types';\nimport type { IEntityWithSchool } from '../interface';\nimport type { ILearnroomElement } from '../interface/learnroom';\nimport type { EntityId } from '../types/entity-id';\nimport type { ITaskProperties, ITaskStatus } from '../types/task.types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { LessonEntity } from './lesson.entity';\nimport type { Submission } from './submission.entity';\nimport { User } from './user.entity';\n\nexport class TaskWithStatusVo {\n\ttask!: Task;\n\n\tstatus!: ITaskStatus;\n\n\tconstructor(task: Task, status: ITaskStatus) {\n\t\tthis.task = task;\n\t\tthis.status = status;\n\t}\n}\n\nexport type TaskParentDescriptions = {\n\tcourseName: string;\n\tcourseId: string;\n\tlessonName: string;\n\tlessonHidden: boolean;\n\tcolor: string;\n};\n\nexport interface ITaskParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'homeworks' })\n@Index({ properties: ['private', 'dueDate', 'finished'] })\n@Index({ properties: ['id', 'private'] })\n@Index({ properties: ['finished', 'course'] })\n@Index({ properties: ['finished', 'course'] })\nexport class Task extends BaseEntityWithTimestamps implements ILearnroomElement, IEntityWithSchool {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tdescription: string;\n\n\t@Property()\n\tdescriptionInputFormat: InputFormat;\n\n\t@Property({ nullable: true })\n\tavailableDate?: Date;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdueDate?: Date;\n\n\t@Property()\n\tprivate = true;\n\n\t@Property({ nullable: true })\n\tpublicSubmissions?: boolean;\n\n\t@Property({ nullable: true })\n\tteamSubmissions?: boolean;\n\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'teacherId' })\n\tcreator: User;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId', nullable: true })\n\tcourse?: Course;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToOne('LessonEntity', { fieldName: 'lessonId', nullable: true })\n\tlesson?: LessonEntity; // In database exist also null, but it can not set.\n\n\t@OneToMany('Submission', 'task')\n\tsubmissions = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'archived' })\n\tfinished = new Collection(this);\n\n\tconstructor(props: ITaskProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.description = props.description || '';\n\t\tthis.descriptionInputFormat = props.descriptionInputFormat || InputFormat.RICH_TEXT_CK4;\n\t\tthis.availableDate = props.availableDate;\n\t\tthis.dueDate = props.dueDate;\n\n\t\tif (props.private !== undefined) this.private = props.private;\n\t\tthis.creator = props.creator;\n\t\tthis.course = props.course;\n\t\tthis.school = props.school;\n\t\tthis.lesson = props.lesson;\n\t\tthis.submissions.set(props.submissions || []);\n\t\tthis.finished.set(props.finished || []);\n\t\tthis.publicSubmissions = props.publicSubmissions || false;\n\t\tthis.teamSubmissions = props.teamSubmissions || false;\n\t}\n\n\tprivate getSubmissionItems(): Submission[] {\n\t\tif (!this.submissions || !this.submissions.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Submissions items are not loaded.');\n\t\t}\n\t\tconst submissions = this.submissions.getItems();\n\n\t\treturn submissions;\n\t}\n\n\tprivate getFinishedUserIds(): EntityId[] {\n\t\tif (!this.finished) {\n\t\t\tthrow new InternalServerErrorException('Task.finished is undefined. The task need to be populated.');\n\t\t}\n\n\t\tconst finishedObjectIds = this.finished.getIdentifiers('_id');\n\t\tconst finishedIds = finishedObjectIds.map((id): string => id.toString());\n\n\t\treturn finishedIds;\n\t}\n\n\tprivate getParent(): ITaskParent | User {\n\t\tconst parent = this.lesson || this.course || this.creator;\n\n\t\treturn parent;\n\t}\n\n\tprivate getMaxSubmissions(): number {\n\t\tconst parent = this.getParent();\n\t\t// For draft (user as parent) propaly user is not a student, but for maxSubmission one is valid result\n\t\tconst maxSubmissions = parent instanceof User ? 1 : parent.getStudentIds().length;\n\n\t\treturn maxSubmissions;\n\t}\n\n\tprivate isFinishedForUser(user: User): boolean {\n\t\tconst finishedUserIds = this.getFinishedUserIds();\n\t\tconst isUserInFinishedUser = finishedUserIds.some((finishedUserId) => finishedUserId === user.id);\n\n\t\tconst isCourseFinished = this.course ? this.course.isFinished() : false;\n\n\t\tconst isFinishedForUser = isUserInFinishedUser || isCourseFinished;\n\n\t\treturn isFinishedForUser;\n\t}\n\n\tpublic isDraft(): boolean {\n\t\t// private can be undefined in the database\n\t\treturn !!this.private;\n\t}\n\n\tpublic isPublished(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic isPlanned(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate getSubmittedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst submittedSubmissions = submissions.filter((submission) => submission.isSubmitted());\n\n\t\treturn submittedSubmissions;\n\t}\n\n\tpublic areSubmissionsPublic(): boolean {\n\t\tconst areSubmissionsPublic = !!this.publicSubmissions;\n\n\t\treturn areSubmissionsPublic;\n\t}\n\n\tprivate getGradedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst gradedSubmissions = submissions.filter((submission) => submission.isGraded());\n\n\t\treturn gradedSubmissions;\n\t}\n\n\tprivate isSubmittedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isSubmitted = submissions.some((submission) => submission.isSubmittedForUser(user));\n\n\t\treturn isSubmitted;\n\t}\n\n\tprivate isGradedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isGraded = submissions.some((submission) => submission.isGradedForUser(user));\n\n\t\treturn isGraded;\n\t}\n\n\tprivate calculateNumberOfSubmitters(submissions: Submission[]): number {\n\t\tlet taskSubmitterIds: EntityId[] = [];\n\n\t\tsubmissions.forEach((submission) => {\n\t\t\tconst submitterIds = submission.getSubmitterIds();\n\t\t\ttaskSubmitterIds = [...taskSubmitterIds, ...submitterIds];\n\t\t});\n\n\t\tconst uniqueIds = [...new Set(taskSubmitterIds)];\n\t\tconst numberOfSubmitters = uniqueIds.length;\n\n\t\treturn numberOfSubmitters;\n\t}\n\n\tprivate isUserSubstitutionTeacherInCourse(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.course ? this.course.isUserSubstitutionTeacher(user) : false;\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic createTeacherStatusForUser(user: User): ITaskStatus {\n\t\tconst submittedSubmissions = this.getSubmittedSubmissions();\n\t\tconst gradedSubmissions = this.getGradedSubmissions();\n\n\t\tconst numberOfSubmitters = this.calculateNumberOfSubmitters(submittedSubmissions);\n\t\tconst numberOfSubmittersWithGrade = this.calculateNumberOfSubmitters(gradedSubmissions);\n\t\tconst maxSubmissions = this.getMaxSubmissions();\n\t\tconst isDraft = this.isDraft();\n\t\tconst isFinished = this.isFinishedForUser(user);\n\t\tconst isSubstitutionTeacher = this.isUserSubstitutionTeacherInCourse(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: numberOfSubmitters,\n\t\t\tgraded: numberOfSubmittersWithGrade,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\tpublic createStudentStatusForUser(user: User): ITaskStatus {\n\t\tconst isSubmitted = this.isSubmittedForUser(user);\n\t\tconst isGraded = this.isGradedForUser(user);\n\t\tconst maxSubmissions = 1;\n\t\tconst isDraft = this.isDraft();\n\t\tconst isSubstitutionTeacher = false;\n\t\tconst isFinished = this.isFinishedForUser(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: isSubmitted ? 1 : 0,\n\t\t\tgraded: isGraded ? 1 : 0,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\t// TODO: based on the parent relationship\n\tpublic getParentData(): TaskParentDescriptions {\n\t\tlet descriptions: TaskParentDescriptions;\n\t\tif (this.course) {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: this.course.name,\n\t\t\t\tcourseId: this.course.id,\n\t\t\t\tlessonName: this.lesson ? this.lesson.name : '',\n\t\t\t\tlessonHidden: this.lesson ? this.lesson.hidden : false,\n\t\t\t\tcolor: this.course.color,\n\t\t\t};\n\t\t} else {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: '',\n\t\t\t\tcourseId: '',\n\t\t\t\tlessonName: '',\n\t\t\t\tlessonHidden: false,\n\t\t\t\tcolor: '#ACACAC',\n\t\t\t};\n\t\t}\n\n\t\treturn descriptions;\n\t}\n\n\tpublic finishForUser(user: User): void {\n\t\tthis.finished.add(user);\n\t}\n\n\tpublic restoreForUser(user: User): void {\n\t\tthis.finished.remove(user);\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.school.id;\n\t}\n\n\tpublic publish(): void {\n\t\tthis.private = false;\n\t\tthis.availableDate = new Date();\n\t}\n\n\tpublic unpublish(): void {\n\t\tthis.private = true;\n\t}\n}\n\nexport function isTask(reference: unknown): reference is Task {\n\treturn reference instanceof Task;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskProperties.html":{"url":"interfaces/ITaskProperties.html","title":"interface - ITaskProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n \n Extends\n \n \n ITask\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n course\n \n \n \n \n creator\n \n \n \n Optional\n \n finished\n \n \n \n Optional\n \n lesson\n \n \n \n Optional\n \n private\n \n \n \n Optional\n \n publicSubmissions\n \n \n \n \n school\n \n \n \n Optional\n \n submissions\n \n \n \n Optional\n \n teamSubmissions\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n course\n \n \n \n \n \n \n \n \n course: Course\n\n \n \n\n\n \n \n Type : Course\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n \n \n creator: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n finished\n \n \n \n \n \n \n \n \n finished: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lesson\n \n \n \n \n \n \n \n \n lesson: LessonEntity\n\n \n \n\n\n \n \n Type : LessonEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n private\n \n \n \n \n \n \n \n \n private: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n publicSubmissions\n \n \n \n \n \n \n \n \n publicSubmissions: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n submissions\n \n \n \n \n \n \n \n \n submissions: Submission[]\n\n \n \n\n\n \n \n Type : Submission[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n teamSubmissions\n \n \n \n \n \n \n \n \n teamSubmissions: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskStatus.html":{"url":"interfaces/ITaskStatus.html","title":"interface - ITaskStatus","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskStatus\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n graded\n \n \n \n \n isDraft\n \n \n \n \n isFinished\n \n \n \n \n isSubstitutionTeacher\n \n \n \n \n maxSubmissions\n \n \n \n \n submitted\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n graded\n \n \n \n \n \n \n \n \n graded: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isDraft\n \n \n \n \n \n \n \n \n isDraft: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isFinished\n \n \n \n \n \n \n \n \n isFinished: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isSubstitutionTeacher\n \n \n \n \n \n \n \n \n isSubstitutionTeacher: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n maxSubmissions\n \n \n \n \n \n \n \n \n maxSubmissions: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n \n \n submitted: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskUpdate.html":{"url":"interfaces/ITaskUpdate.html","title":"interface - ITaskUpdate","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskUpdate\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n \n Extends\n \n \n ITask\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n courseId\n \n \n \n Optional\n \n lessonId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n courseId\n \n \n \n \n \n \n \n \n courseId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lessonId\n \n \n \n \n \n \n \n \n lessonId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITeamProperties.html":{"url":"interfaces/ITeamProperties.html","title":"interface - ITeamProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITeamProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/team.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n Optional\n \n teamUsers\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n teamUsers\n \n \n \n \n \n \n \n \n teamUsers: TeamUserEntity[]\n\n \n \n\n\n \n \n Type : TeamUserEntity[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\nimport { User } from './user.entity';\n\nexport interface ITeamProperties {\n\tname: string;\n\tteamUsers?: TeamUserEntity[];\n}\n\nexport interface ITeamUserProperties {\n\tuser: User;\n\trole: Role;\n\tschool: SchoolEntity;\n}\n\n@Embeddable()\nexport class TeamUserEntity {\n\tconstructor(props: ITeamUserProperties) {\n\t\tthis.userId = props.user;\n\t\tthis.role = props.role;\n\t\tthis.schoolId = props.school;\n\t}\n\n\t@ManyToOne(() => User)\n\tuserId: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\t@ManyToOne(() => SchoolEntity)\n\tprivate schoolId: SchoolEntity;\n\n\t// fieldName cannot be used in ManyToOne on Embeddable due to a mikro-orm bug (https://github.com/mikro-orm/mikro-orm/issues/2165)\n\tget user(): User {\n\t\treturn this.userId;\n\t}\n\n\tset user(value: User) {\n\t\tthis.userId = value;\n\t}\n\n\tget school(): SchoolEntity {\n\t\treturn this.schoolId;\n\t}\n\n\tset school(value: SchoolEntity) {\n\t\tthis.schoolId = value;\n\t}\n}\n\n@Entity({ tableName: 'teams' })\nexport class TeamEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Embedded(() => TeamUserEntity, { array: true })\n\tuserIds: TeamUserEntity[];\n\n\tget teamUsers(): TeamUserEntity[] {\n\t\treturn this.userIds;\n\t}\n\n\tset teamUsers(value: TeamUserEntity[]) {\n\t\tthis.userIds = value;\n\t}\n\n\tconstructor(props: ITeamProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.userIds = props.teamUsers ? props.teamUsers.map((teamUser) => new TeamUserEntity(teamUser)) : [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITeamUserProperties.html":{"url":"interfaces/ITeamUserProperties.html","title":"interface - ITeamUserProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITeamUserProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/team.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n \n school\n \n \n \n \n user\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n role\n \n \n \n \n \n \n \n \n role: Role\n\n \n \n\n\n \n \n Type : Role\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n \n \n user: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\nimport { User } from './user.entity';\n\nexport interface ITeamProperties {\n\tname: string;\n\tteamUsers?: TeamUserEntity[];\n}\n\nexport interface ITeamUserProperties {\n\tuser: User;\n\trole: Role;\n\tschool: SchoolEntity;\n}\n\n@Embeddable()\nexport class TeamUserEntity {\n\tconstructor(props: ITeamUserProperties) {\n\t\tthis.userId = props.user;\n\t\tthis.role = props.role;\n\t\tthis.schoolId = props.school;\n\t}\n\n\t@ManyToOne(() => User)\n\tuserId: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\t@ManyToOne(() => SchoolEntity)\n\tprivate schoolId: SchoolEntity;\n\n\t// fieldName cannot be used in ManyToOne on Embeddable due to a mikro-orm bug (https://github.com/mikro-orm/mikro-orm/issues/2165)\n\tget user(): User {\n\t\treturn this.userId;\n\t}\n\n\tset user(value: User) {\n\t\tthis.userId = value;\n\t}\n\n\tget school(): SchoolEntity {\n\t\treturn this.schoolId;\n\t}\n\n\tset school(value: SchoolEntity) {\n\t\tthis.schoolId = value;\n\t}\n}\n\n@Entity({ tableName: 'teams' })\nexport class TeamEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Embedded(() => TeamUserEntity, { array: true })\n\tuserIds: TeamUserEntity[];\n\n\tget teamUsers(): TeamUserEntity[] {\n\t\treturn this.userIds;\n\t}\n\n\tset teamUsers(value: TeamUserEntity[]) {\n\t\tthis.userIds = value;\n\t}\n\n\tconstructor(props: ITeamProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.userIds = props.teamUsers ? props.teamUsers.map((teamUser) => new TeamUserEntity(teamUser)) : [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IToolFeatures.html":{"url":"interfaces/IToolFeatures.html","title":"interface - IToolFeatures","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IToolFeatures\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n backEndUrl\n \n \n \n \n contextConfigurationEnabled\n \n \n \n \n ctlToolsTabEnabled\n \n \n \n \n ltiToolsTabEnabled\n \n \n \n \n maxExternalToolLogoSizeInBytes\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n backEndUrl\n \n \n \n \n \n \n \n \n backEndUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n contextConfigurationEnabled\n \n \n \n \n \n \n \n \n contextConfigurationEnabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ctlToolsTabEnabled\n \n \n \n \n \n \n \n \n ctlToolsTabEnabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ltiToolsTabEnabled\n \n \n \n \n \n \n \n \n ltiToolsTabEnabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n maxExternalToolLogoSizeInBytes\n \n \n \n \n \n \n \n \n maxExternalToolLogoSizeInBytes: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\n\nexport const ToolFeatures = Symbol('ToolFeatures');\n\nexport interface IToolFeatures {\n\tctlToolsTabEnabled: boolean;\n\tltiToolsTabEnabled: boolean;\n\tcontextConfigurationEnabled: boolean;\n\tmaxExternalToolLogoSizeInBytes: number;\n\tbackEndUrl: string;\n}\n\nexport default class ToolConfiguration {\n\tstatic toolFeatures: IToolFeatures = {\n\t\tctlToolsTabEnabled: Configuration.get('FEATURE_CTL_TOOLS_TAB_ENABLED') as boolean,\n\t\tltiToolsTabEnabled: Configuration.get('FEATURE_LTI_TOOLS_TAB_ENABLED') as boolean,\n\t\tcontextConfigurationEnabled: Configuration.get('FEATURE_CTL_CONTEXT_CONFIGURATION_ENABLED') as boolean,\n\t\tmaxExternalToolLogoSizeInBytes: Configuration.get('CTL_TOOLS__EXTERNAL_TOOL_MAX_LOGO_SIZE_IN_BYTES') as number,\n\t\tbackEndUrl: Configuration.get('PUBLIC_BACKEND_URL') as string,\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IToolLaunchParams.html":{"url":"interfaces/IToolLaunchParams.html","title":"interface - IToolLaunchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IToolLaunchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/tool-launch-params.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextExternalTool\n \n \n \n \n externalTool\n \n \n \n \n schoolExternalTool\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextExternalTool\n \n \n \n \n \n \n \n \n contextExternalTool: ContextExternalTool\n\n \n \n\n\n \n \n Type : ContextExternalTool\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n externalTool\n \n \n \n \n \n \n \n \n externalTool: ExternalTool\n\n \n \n\n\n \n \n Type : ExternalTool\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolExternalTool\n \n \n \n \n \n \n \n \n schoolExternalTool: SchoolExternalTool\n\n \n \n\n\n \n \n Type : SchoolExternalTool\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ExternalTool } from '../../../external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\n\nexport interface IToolLaunchParams {\n\texternalTool: ExternalTool;\n\n\tschoolExternalTool: SchoolExternalTool;\n\n\tcontextExternalTool: ContextExternalTool;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IToolLaunchStrategy.html":{"url":"interfaces/IToolLaunchStrategy.html","title":"interface - IToolLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IToolLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/tool-launch-strategy.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n createLaunchData\n \n \n \n \n createLaunchRequest\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n createLaunchData\n \n \n \n \n \n \ncreateLaunchData(userId: EntityId, params: IToolLaunchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/tool-launch-strategy.interface.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n params\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createLaunchRequest\n \n \n \n \n \n \ncreateLaunchRequest(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/tool-launch-strategy.interface.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ToolLaunchData, ToolLaunchRequest } from '../../types';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\n\nexport interface IToolLaunchStrategy {\n\tcreateLaunchData(userId: EntityId, params: IToolLaunchParams): Promise;\n\n\tcreateLaunchRequest(toolLaunchDataDO: ToolLaunchData): ToolLaunchRequest;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IUserConfig.html":{"url":"interfaces/IUserConfig.html","title":"interface - IUserConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IUserConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/interfaces/user-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n AVAILABLE_LANGUAGES\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n AVAILABLE_LANGUAGES\n \n \n \n \n \n \n \n \n AVAILABLE_LANGUAGES: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IUserConfig {\n\tAVAILABLE_LANGUAGES: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IUserProperties.html":{"url":"interfaces/IUserProperties.html","title":"interface - IUserProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IUserProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n deletedAt\n \n \n \n \n email\n \n \n \n Optional\n \n externalId\n \n \n \n \n firstName\n \n \n \n Optional\n \n forcePasswordChange\n \n \n \n Optional\n \n language\n \n \n \n Optional\n \n lastLoginSystemChange\n \n \n \n \n lastName\n \n \n \n Optional\n \n ldapDn\n \n \n \n Optional\n \n outdatedSince\n \n \n \n Optional\n \n preferences\n \n \n \n Optional\n \n previousExternalId\n \n \n \n \n roles\n \n \n \n \n school\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n deletedAt\n \n \n \n \n \n \n \n \n deletedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n \n \n email: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n forcePasswordChange\n \n \n \n \n \n \n \n \n forcePasswordChange: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n language\n \n \n \n \n \n \n \n \n language: LanguageType\n\n \n \n\n\n \n \n Type : LanguageType\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lastLoginSystemChange\n \n \n \n \n \n \n \n \n lastLoginSystemChange: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ldapDn\n \n \n \n \n \n \n \n \n ldapDn: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n outdatedSince\n \n \n \n \n \n \n \n \n outdatedSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n preferences\n \n \n \n \n \n \n \n \n preferences: Record\n\n \n \n\n\n \n \n Type : Record\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n previousExternalId\n \n \n \n \n \n \n \n \n previousExternalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: Role[]\n\n \n \n\n\n \n \n Type : Role[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property } from '@mikro-orm/core';\nimport { IEntityWithSchool } from '../interface';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\n\nexport enum LanguageType {\n\tDE = 'de',\n\tEN = 'en',\n\tES = 'es',\n\tUK = 'uk',\n}\n\nexport interface IUserProperties {\n\temail: string;\n\tfirstName: string;\n\tlastName: string;\n\tschool: SchoolEntity;\n\troles: Role[];\n\tldapDn?: string;\n\texternalId?: string;\n\tlanguage?: LanguageType;\n\tforcePasswordChange?: boolean;\n\tpreferences?: Record;\n\tdeletedAt?: Date;\n\tlastLoginSystemChange?: Date;\n\toutdatedSince?: Date;\n\tpreviousExternalId?: string;\n}\n\n@Entity({ tableName: 'users' })\n@Index({ properties: ['id', 'email'] })\n@Index({ properties: ['firstName', 'lastName'] })\n@Index({ properties: ['externalId', 'school'] })\n@Index({ properties: ['school', 'ldapDn'] })\n@Index({ properties: ['school', 'roles'] })\nexport class User extends BaseEntityWithTimestamps implements IEntityWithSchool {\n\t@Property()\n\t@Index()\n\t// @Unique()\n\temail: string;\n\n\t@Property()\n\tfirstName: string;\n\n\t@Property()\n\tlastName: string;\n\n\t@Index()\n\t@ManyToMany({ fieldName: 'roles', entity: () => Role })\n\troles = new Collection(this);\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tldapDn?: string;\n\n\t@Property({ nullable: true, fieldName: 'ldapId' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property({ nullable: true })\n\t@Index()\n\timportHash?: string;\n\n\t@Property({ nullable: true })\n\tfirstNameSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\tlastNameSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\temailSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\tlanguage?: LanguageType;\n\n\t@Property({ nullable: true })\n\tforcePasswordChange?: boolean;\n\n\t@Property({ nullable: true })\n\tpreferences?: Record;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdeletedAt?: Date;\n\n\t@Property({ nullable: true })\n\tlastLoginSystemChange?: Date;\n\n\t@Property({ nullable: true })\n\toutdatedSince?: Date;\n\n\tconstructor(props: IUserProperties) {\n\t\tsuper();\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tthis.school = props.school;\n\t\tthis.roles.set(props.roles);\n\t\tthis.ldapDn = props.ldapDn;\n\t\tthis.externalId = props.externalId;\n\t\tthis.forcePasswordChange = props.forcePasswordChange;\n\t\tthis.language = props.language;\n\t\tthis.preferences = props.preferences ?? {};\n\t\tthis.deletedAt = props.deletedAt;\n\t\tthis.lastLoginSystemChange = props.lastLoginSystemChange;\n\t\tthis.outdatedSince = props.outdatedSince;\n\t\tthis.previousExternalId = props.previousExternalId;\n\t}\n\n\tpublic resolvePermissions(): string[] {\n\t\tif (!this.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\n\t\tlet permissions: string[] = [];\n\n\t\tconst roles = this.roles.getItems();\n\t\troles.forEach((role) => {\n\t\t\tconst rolePermissions = role.resolvePermissions();\n\t\t\tpermissions = [...permissions, ...rolePermissions];\n\t\t});\n\n\t\tconst uniquePermissions = [...new Set(permissions)];\n\n\t\treturn uniquePermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IVideoConferenceSettings.html":{"url":"interfaces/IVideoConferenceSettings.html","title":"interface - IVideoConferenceSettings","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IVideoConferenceSettings\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/interface/video-conference-settings.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n bbb\n \n \n \n \n enabled\n \n \n \n \n hostUrl\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bbb\n \n \n \n \n \n \n \n \n bbb: IBbbSettings\n\n \n \n\n\n \n \n Type : IBbbSettings\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n enabled\n \n \n \n \n \n \n \n \n enabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hostUrl\n \n \n \n \n \n \n \n \n hostUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { IBbbSettings } from '../bbb';\n\nexport const VideoConferenceSettings = Symbol('VideoConferenceSettings');\n\nexport interface IVideoConferenceSettings {\n\tenabled: boolean;\n\thostUrl: string;\n\tbbb: IBbbSettings;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IdParams.html":{"url":"classes/IdParams.html","title":"class - IdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The Oauth Client Id.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/id.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class IdParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The Oauth Client Id.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tid!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IdToken.html":{"url":"interfaces/IdToken.html","title":"interface - IdToken","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IdToken\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/interface/id-token.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n email\n \n \n \n Optional\n \n groups\n \n \n \n Optional\n \n iframe\n \n \n \n Optional\n \n name\n \n \n \n \n schoolId\n \n \n \n Optional\n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n email\n \n \n \n \n \n \n \n \n email: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n groups\n \n \n \n \n \n \n \n \n groups: GroupNameIdTuple[]\n\n \n \n\n\n \n \n Type : GroupNameIdTuple[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n iframe\n \n \n \n \n \n \n \n \n iframe: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IdToken {\n\tiframe?: string;\n\temail?: string;\n\tname?: string;\n\tuserId?: string;\n\tschoolId: string;\n\tgroups?: GroupNameIdTuple[];\n}\n\nexport interface GroupNameIdTuple {\n\tdisplayName: string;\n\tgid: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IdTokenCreationLoggableException.html":{"url":"classes/IdTokenCreationLoggableException.html","title":"class - IdTokenCreationLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IdTokenCreationLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/error/id-token-creation-exception.loggable.ts\n \n\n\n\n \n Extends\n \n \n InternalServerErrorException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(clientId: string, userId?: string)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/error/id-token-creation-exception.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n \n string\n \n \n \n No\n \n \n \n \n userId\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/error/id-token-creation-exception.loggable.ts:9\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { InternalServerErrorException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable } from '@src/core/logger';\n\nexport class IdTokenCreationLoggableException extends InternalServerErrorException implements Loggable {\n\tconstructor(private readonly clientId: string, private readonly userId?: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): ErrorLogMessage {\n\t\tconst message = {\n\t\t\ttype: 'INTERNAL_SERVER_ERROR_EXCEPTION',\n\t\t\tmessage: 'Something went wrong for id token creation. Tool could not be found.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\tclientId: this.clientId,\n\t\t\t},\n\t\t};\n\n\t\treturn message;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/IdTokenService.html":{"url":"injectables/IdTokenService.html","title":"injectable - IdTokenService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n IdTokenService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/service/id-token.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n host\n \n \n Protected\n iFrameProperties\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n buildGroupsClaim\n \n \n Async\n createIdToken\n \n \n Private\n Async\n createIframeSubject\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderLoginFlowService: OauthProviderLoginFlowService, pseudonymService: PseudonymService, teamsRepo: TeamsRepo, userService: UserService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderLoginFlowService\n \n \n OauthProviderLoginFlowService\n \n \n \n No\n \n \n \n \n pseudonymService\n \n \n PseudonymService\n \n \n \n No\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n buildGroupsClaim\n \n \n \n \n \n \n \n buildGroupsClaim(teams: TeamEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teams\n \n TeamEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupNameIdTuple[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createIdToken\n \n \n \n \n \n \n \n createIdToken(userId: string, scopes: string[], clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n scopes\n \n string[]\n \n\n \n No\n \n\n\n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createIframeSubject\n \n \n \n \n \n \n \n createIframeSubject(user: UserDO, clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n host\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n Protected\n iFrameProperties\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:16\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport { LtiToolDO, Pseudonym, TeamEntity, UserDO } from '@shared/domain';\nimport { TeamsRepo } from '@shared/repo';\nimport { PseudonymService } from '@src/modules/pseudonym';\nimport { UserService } from '@src/modules/user';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { GroupNameIdTuple, IdToken, OauthScope } from '../interface';\nimport { OauthProviderLoginFlowService } from './oauth-provider.login-flow.service';\nimport { IdTokenCreationLoggableException } from '../error/id-token-creation-exception.loggable';\n\n@Injectable()\nexport class IdTokenService {\n\tprivate readonly host: string;\n\n\tprotected iFrameProperties: string;\n\n\tconstructor(\n\t\tprivate readonly oauthProviderLoginFlowService: OauthProviderLoginFlowService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly teamsRepo: TeamsRepo,\n\t\tprivate readonly userService: UserService\n\t) {\n\t\tthis.host = Configuration.get('HOST') as string;\n\t\tthis.iFrameProperties = 'title=\"username\" style=\"height: 26px; width: 180px; border: none;\"';\n\t}\n\n\tasync createIdToken(userId: string, scopes: string[], clientId: string): Promise {\n\t\tlet teams: TeamEntity[] = [];\n\t\tif (scopes.includes(OauthScope.GROUPS)) {\n\t\t\tteams = await this.teamsRepo.findByUserId(userId);\n\t\t}\n\n\t\tconst user: UserDO = await this.userService.findById(userId);\n\t\tconst name: string = await this.userService.getDisplayName(user);\n\t\tconst iframe: string | undefined = await this.createIframeSubject(user, clientId);\n\t\tconst groups: GroupNameIdTuple[] = this.buildGroupsClaim(teams);\n\n\t\treturn {\n\t\t\tiframe,\n\t\t\temail: scopes.includes(OauthScope.EMAIL) ? user.email : undefined,\n\t\t\tname: scopes.includes(OauthScope.PROFILE) ? name : undefined,\n\t\t\tuserId: scopes.includes(OauthScope.PROFILE) ? user.id : undefined,\n\t\t\tschoolId: user.schoolId,\n\t\t\tgroups: scopes.includes(OauthScope.GROUPS) ? groups : undefined,\n\t\t};\n\t}\n\n\tprivate buildGroupsClaim(teams: TeamEntity[]): GroupNameIdTuple[] {\n\t\treturn teams.map((team: TeamEntity): GroupNameIdTuple => {\n\t\t\treturn {\n\t\t\t\tgid: team.id,\n\t\t\t\tdisplayName: team.name,\n\t\t\t};\n\t\t});\n\t}\n\n\t// TODO N21-335 How we can refactor the iframe in the id token?\n\tprivate async createIframeSubject(user: UserDO, clientId: string): Promise {\n\t\tconst tool: ExternalTool | LtiToolDO = await this.oauthProviderLoginFlowService.findToolByClientId(clientId);\n\n\t\tif (!tool.id) {\n\t\t\tthrow new IdTokenCreationLoggableException(clientId, user.id);\n\t\t}\n\n\t\tconst pseudonym: Pseudonym = await this.pseudonymService.findByUserAndTool(user, tool);\n\n\t\treturn ``;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/IdentityManagementModule.html":{"url":"modules/IdentityManagementModule.html","title":"module - IdentityManagementModule","body":"\n \n\n\n\n\n Modules\n IdentityManagementModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_IdentityManagementModule\n\n\n\ncluster_IdentityManagementModule_exports\n\n\n\ncluster_IdentityManagementModule_imports\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\nIdentityManagementModule -->\n\nEncryptionModule->IdentityManagementModule\n\n\n\n\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationModule\n\nIdentityManagementModule -->\n\nKeycloakAdministrationModule->IdentityManagementModule\n\n\n\n\n\nKeycloakModule\n\nKeycloakModule\n\nIdentityManagementModule -->\n\nKeycloakModule->IdentityManagementModule\n\n\n\n\n\nIdentityManagementOauthService \n\nIdentityManagementOauthService \n\nIdentityManagementOauthService -->\n\nIdentityManagementModule->IdentityManagementOauthService \n\n\n\n\n\nIdentityManagementService \n\nIdentityManagementService \n\nIdentityManagementService -->\n\nIdentityManagementModule->IdentityManagementService \n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n EncryptionModule\n \n \n KeycloakAdministrationModule\n \n \n KeycloakModule\n \n \n \n \n Exports\n \n \n IdentityManagementOauthService\n \n \n IdentityManagementService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { EncryptionModule } from '../encryption';\nimport { IdentityManagementOauthService } from './identity-management-oauth.service';\nimport { IdentityManagementService } from './identity-management.service';\nimport { KeycloakAdministrationModule } from './keycloak-administration/keycloak-administration.module';\nimport { KeycloakModule } from './keycloak/keycloak.module';\nimport { KeycloakIdentityManagementOauthService } from './keycloak/service/keycloak-identity-management-oauth.service';\nimport { KeycloakIdentityManagementService } from './keycloak/service/keycloak-identity-management.service';\n\n@Module({\n\timports: [KeycloakModule, KeycloakAdministrationModule, HttpModule, EncryptionModule],\n\tproviders: [\n\t\t{ provide: IdentityManagementService, useClass: KeycloakIdentityManagementService },\n\t\t{ provide: IdentityManagementOauthService, useClass: KeycloakIdentityManagementOauthService },\n\t],\n\texports: [IdentityManagementService, IdentityManagementOauthService],\n})\nexport class IdentityManagementModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IdentityManagementOauthService.html":{"url":"classes/IdentityManagementOauthService.html","title":"class - IdentityManagementOauthService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IdentityManagementOauthService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n getOauthConfig\n \n \n Abstract\n isOauthConfigAvailable\n \n \n Abstract\n resourceOwnerPasswordGrant\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n getOauthConfig\n \n \n \n \n \n \n \n getOauthConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts:9\n \n \n\n\n \n \n Returns the oauth config of the IDM.\n\n\n \n \n \n Returns : Promise\n\n \n \n the oauth config of the IDM.\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n isOauthConfigAvailable\n \n \n \n \n \n \n \n isOauthConfigAvailable()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts:15\n \n \n\n\n \n \n Checks if the IDM oauth config is available.\n\n\n \n \n \n Returns : Promise\n\n \n \n true if the IDM oauth config is available, false otherwise.\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n resourceOwnerPasswordGrant\n \n \n \n \n \n \n \n resourceOwnerPasswordGrant(username: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts:23\n \n \n\n\n \n \n Checks the given credentials with the IDM and returns an JWT on success.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n the username of the account to check.\n\n \n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n the password of the account to check.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the JWT as string or undefined on failure.\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OauthConfigDto } from '@src/modules/system/service/dto';\n\nexport abstract class IdentityManagementOauthService {\n\t/**\n\t * Returns the oauth config of the IDM.\n\t * @returns the oauth config of the IDM.\n\t * @throws an error if the IDM oauth config is not available.\n\t */\n\tabstract getOauthConfig(): Promise;\n\n\t/**\n\t * Checks if the IDM oauth config is available.\n\t * @returns true if the IDM oauth config is available, false otherwise.\n\t */\n\tabstract isOauthConfigAvailable(): Promise;\n\n\t/**\n\t * Checks the given credentials with the IDM and returns an JWT on success.\n\t * @param username the username of the account to check.\n\t * @param password the password of the account to check.\n\t * @returns the JWT as string or undefined on failure.\n\t */\n\tabstract resourceOwnerPasswordGrant(username: string, password: string): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IdentityManagementService.html":{"url":"classes/IdentityManagementService.html","title":"class - IdentityManagementService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IdentityManagementService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n createAccount\n \n \n Abstract\n deleteAccountById\n \n \n Abstract\n findAccountByDbcAccountId\n \n \n Abstract\n findAccountByDbcUserId\n \n \n Abstract\n findAccountById\n \n \n Abstract\n findAccountsByUsername\n \n \n Abstract\n getAllAccounts\n \n \n Abstract\n getUserAttribute\n \n \n Abstract\n setUserAttribute\n \n \n Abstract\n updateAccount\n \n \n Abstract\n updateAccountPassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n createAccount\n \n \n \n \n \n \n \n createAccount(account: IdmAccountUpdate, password?: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:17\n \n \n\n\n \n \n Create a new account in the identity management.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n account\n \n IdmAccountUpdate\n \n\n \n No\n \n\n\n \n the account's details\n\n \n \n \n password\n \n string | undefined\n \n\n \n Yes\n \n\n\n \n the account's password (optional)\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account id if created successfully\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n deleteAccountById\n \n \n \n \n \n \n \n deleteAccountById(accountId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:81\n \n \n\n\n \n \n Deletes an account from the identity management.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be deleted.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the accounts id if deleted successfully\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findAccountByDbcAccountId\n \n \n \n \n \n \n \n findAccountByDbcAccountId(accountDbcAccountId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:51\n \n \n\n\n \n \n Load a specific account by its dbc account id.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountDbcAccountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be loaded.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account if exists\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findAccountByDbcUserId\n \n \n \n \n \n \n \n findAccountByDbcUserId(accountDbcUserId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:59\n \n \n\n\n \n \n Load a specific account by its dbc user id.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountDbcUserId\n \n string\n \n\n \n No\n \n\n\n \n the account to be loaded.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account if exists\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findAccountById\n \n \n \n \n \n \n \n findAccountById(accountId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:43\n \n \n\n\n \n \n Load a specific account by its id.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be loaded.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account if exists\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findAccountsByUsername\n \n \n \n \n \n \n \n findAccountsByUsername(username: string, options?: SearchOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:67\n \n \n\n\n \n \n Loads the account with the specific username.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n of the account to be loaded.\n\n \n \n \n options\n \n SearchOptions\n \n\n \n Yes\n \n\n\n \n the search options to be applied.\n\n \n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n the found accounts (might be empty).\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getAllAccounts\n \n \n \n \n \n \n \n getAllAccounts()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:74\n \n \n\n\n \n \n Load all accounts.\n\n\n \n \n \n Returns : Promise\n\n \n \n an array of all accounts (might be empty)\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getUserAttribute\n \n \n \n \n \n \n \n getUserAttribute(userId: string, attributeName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:89\n \n \n\n \n \n Type parameters :\n \n TValue\n \n \n \n\n \n \n Gets an attribute value of a specific user.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n the id of the user to get an attribute value.\n\n \n \n \n attributeName\n \n string\n \n\n \n No\n \n\n\n \n the name of the attribute to get.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the attribute value if exists, null otherwise.\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n setUserAttribute\n \n \n \n \n \n \n \n setUserAttribute(userId: string, attributeName: string, attributeValue: TValue)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:100\n \n \n\n \n \n Type parameters :\n \n TValue\n \n \n \n\n \n \n Sets an attribute value of a specific user.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n the id of the user to set an attribute value.\n\n \n \n \n attributeName\n \n string\n \n\n \n No\n \n\n\n \n the name of the attribute to set.\n\n \n \n \n attributeValue\n \n TValue\n \n\n \n No\n \n\n\n \n the value of the attribute to set.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateAccount\n \n \n \n \n \n \n \n updateAccount(accountId: string, account: IdmAccountUpdate)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:26\n \n \n\n\n \n \n Update an existing account's details.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be updated.\n\n \n \n \n account\n \n IdmAccountUpdate\n \n\n \n No\n \n\n\n \n the account data to be applied.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account id if updated successfully\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateAccountPassword\n \n \n \n \n \n \n \n updateAccountPassword(accountId: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:35\n \n \n\n\n \n \n Update an existing account's password.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be updated.\n\n \n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n the new password (clear).\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account id if updated successfully\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Counted, IdmAccount, IdmAccountUpdate } from '@shared/domain';\n\nexport type SearchOptions = {\n\texact?: boolean;\n\tskip?: number;\n\tlimit?: number;\n};\n\nexport abstract class IdentityManagementService {\n\t/**\n\t * Create a new account in the identity management.\n\t *\n\t * @param account the account's details\n\t * @param [password] the account's password (optional)\n\t * @returns the account id if created successfully\n\t */\n\tabstract createAccount(account: IdmAccountUpdate, password?: string | undefined): Promise;\n\n\t/**\n\t * Update an existing account's details.\n\t *\n\t * @param accountId the account to be updated.\n\t * @param account the account data to be applied.\n\t * @returns the account id if updated successfully\n\t */\n\tabstract updateAccount(accountId: string, account: IdmAccountUpdate): Promise;\n\n\t/**\n\t * Update an existing account's password.\n\t *\n\t * @param accountId the account to be updated.\n\t * @param password the new password (clear).\n\t * @returns the account id if updated successfully\n\t */\n\tabstract updateAccountPassword(accountId: string, password: string): Promise;\n\n\t/**\n\t * Load a specific account by its id.\n\t *\n\t * @param accountId the account to be loaded.\n\t * @returns the account if exists\n\t */\n\tabstract findAccountById(accountId: string): Promise;\n\n\t/**\n\t * Load a specific account by its dbc account id.\n\t *\n\t * @param accountDbcAccountId the account to be loaded.\n\t * @returns the account if exists\n\t */\n\tabstract findAccountByDbcAccountId(accountDbcAccountId: string): Promise;\n\n\t/**\n\t * Load a specific account by its dbc user id.\n\t *\n\t * @param accountDbcUserId the account to be loaded.\n\t * @returns the account if exists\n\t */\n\tabstract findAccountByDbcUserId(accountDbcUserId: string): Promise;\n\n\t/**\n\t * Loads the account with the specific username.\n\t * @param username of the account to be loaded.\n\t * @param options the search options to be applied.\n\t * @returns the found accounts (might be empty).\n\t */\n\tabstract findAccountsByUsername(username: string, options?: SearchOptions): Promise>;\n\n\t/**\n\t * Load all accounts.\n\t *\n\t * @returns an array of all accounts (might be empty)\n\t */\n\tabstract getAllAccounts(): Promise;\n\n\t/**\n\t * Deletes an account from the identity management.\n\t * @param accountId the account to be deleted.\n\t * @returns the accounts id if deleted successfully\n\t */\n\tabstract deleteAccountById(accountId: string): Promise;\n\n\t/**\n\t * Gets an attribute value of a specific user.\n\t * @param userId the id of the user to get an attribute value.\n\t * @param attributeName the name of the attribute to get.\n\t * @returns the attribute value if exists, null otherwise.\n\t */\n\tabstract getUserAttribute(\n\t\tuserId: string,\n\t\tattributeName: string\n\t): Promise;\n\n\t/**\n\t * Sets an attribute value of a specific user.\n\t * @param userId the id of the user to set an attribute value.\n\t * @param attributeName the name of the attribute to set.\n\t * @param attributeValue the value of the attribute to set.\n\t */\n\tabstract setUserAttribute(\n\t\tuserId: string,\n\t\tattributeName: string,\n\t\tattributeValue: TValue\n\t): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ImportUser.html":{"url":"entities/ImportUser.html","title":"entity - ImportUser","body":"\n \n\n\n\n\n\n\n\n Entities\n ImportUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/import-user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n classNames\n \n \n \n email\n \n \n \n externalId\n \n \n \n firstName\n \n \n \n flagged\n \n \n \n lastName\n \n \n \n ldapDn\n \n \n \n Optional\n matchedBy\n \n \n \n roleNames\n \n \n \n school\n \n \n \n system\n \n \n \n \n Optional\n user\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n classNames\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:94\n \n \n\n\n \n \n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:88\n \n \n\n\n \n \n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'ldapId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:76\n \n \n\n\n \n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:79\n \n \n\n\n \n \n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Property({type: Boolean})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:112\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:82\n \n \n\n\n \n \n \n \n \n \n \n \n \n ldapDn\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n matchedBy\n \n \n \n \n \n \n Type : MatchCreator\n\n \n \n \n \n Decorators : \n \n \n @Enum({fieldName: 'match_matchedBy', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:109\n \n \n\n \n \n References who set the user, take the field as read-only\n\n \n \n\n \n \n \n \n \n \n \n \n \n roleNames\n \n \n \n \n \n \n Type : IImportUserRoleName[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @Enum({fieldName: 'roles'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:91\n \n \n\n\n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'schoolId', wrappedReference: true, eager: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {wrappedReference: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n user\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('User', {fieldName: 'match_userId', eager: true, nullable: true})@Unique({options: undefined})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:102\n \n \n\n \n \n Update user-match together with matchedBy, take the field as read-only\n\n \n \n\n \n \n\n \n\n\n \n import { Entity, Enum, IdentifiedReference, ManyToOne, Property, Unique, wrap } from '@mikro-orm/core';\nimport { IEntityWithSchool, RoleName } from '../interface';\nimport { BaseEntityReference, BaseEntityWithTimestamps } from './base.entity';\nimport { SchoolEntity } from './school.entity';\nimport { System } from './system.entity';\nimport type { User } from './user.entity';\n\nexport type IImportUserRoleName = RoleName.ADMINISTRATOR | RoleName.TEACHER | RoleName.STUDENT;\n\nexport interface IImportUserProperties {\n\t// references\n\tschool: SchoolEntity;\n\tsystem: System;\n\t// external identifiers\n\tldapDn: string;\n\texternalId: string;\n\t// descriptive properties\n\tfirstName: string;\n\tlastName: string;\n\temail: string; // TODO VO\n\troleNames?: IImportUserRoleName[];\n\tclassNames?: string[];\n\tuser?: User;\n\tmatchedBy?: MatchCreator;\n\tflagged?: boolean;\n}\n\nexport enum MatchCreator {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n}\n\n@Entity({ tableName: 'importusers' })\n@Unique({ properties: ['school', 'externalId'] })\n@Unique({ properties: ['school', 'ldapDn'] })\n@Unique({ properties: ['school', 'email'] })\nexport class ImportUser extends BaseEntityWithTimestamps implements IEntityWithSchool {\n\tconstructor(props: IImportUserProperties) {\n\t\tsuper();\n\t\tthis.school = wrap(props.school).toReference();\n\t\tthis.system = wrap(props.system).toReference();\n\t\tthis.ldapDn = props.ldapDn;\n\t\tthis.externalId = props.externalId;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tif (Array.isArray(props.roleNames) && props.roleNames.length > 0) this.roleNames.push(...props.roleNames);\n\t\tif (Array.isArray(props.classNames) && props.classNames.length > 0) this.classNames.push(...props.classNames);\n\t\tif (props.user && props.matchedBy) this.setMatch(props.user, props.matchedBy);\n\t\tif (props.flagged && props.flagged === true) this.flagged = true;\n\t}\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId', wrappedReference: true, eager: true })\n\tschool: IdentifiedReference;\n\n\t@ManyToOne(() => 'System', { wrappedReference: true })\n\tsystem: IdentifiedReference;\n\n\t@Property()\n\tldapDn: string;\n\n\t/**\n\t * extracts the login name out of the dn which has the login name in 'uid=LOGINNAME,[...]'\n\t * */\n\tget loginName(): string | null {\n\t\tconst PATTERN_LOGIN_FROM_DN = /^uid=(.+?),/i; // extract uid from dn\n\t\tconst matches = this.ldapDn?.match(PATTERN_LOGIN_FROM_DN);\n\t\tif (Array.isArray(matches) && matches.length >= 2) {\n\t\t\tconst loginName = matches[1]; // 0: full match, 1: first group match\n\t\t\treturn loginName;\n\t\t}\n\t\treturn null;\n\t}\n\n\t@Property({ fieldName: 'ldapId' })\n\texternalId: string;\n\n\t@Property()\n\tfirstName: string;\n\n\t@Property()\n\tlastName: string;\n\n\t@Property()\n\t/**\n\t * Lowercase email string\n\t */\n\temail: string;\n\n\t@Enum({ fieldName: 'roles' })\n\troleNames: IImportUserRoleName[] = [];\n\n\t@Property()\n\tclassNames: string[] = [];\n\n\t/**\n\t * Update user-match together with matchedBy, take the field as read-only\n\t * @read\n\t */\n\t@ManyToOne('User', { fieldName: 'match_userId', eager: true, nullable: true })\n\t@Unique({ options: { partialFilterExpression: { match_userId: { $type: 'objectId' } } } })\n\tuser?: User;\n\n\t/**\n\t * References who set the user, take the field as read-only\n\t * @private\n\t */\n\t@Enum({ fieldName: 'match_matchedBy', nullable: true })\n\tmatchedBy?: MatchCreator;\n\n\t@Property({ type: Boolean })\n\tflagged = false;\n\n\tsetMatch(user: User, matchedBy: MatchCreator) {\n\t\tif (this.school.id !== user.school.id) {\n\t\t\tthrow new Error('not same school');\n\t\t}\n\t\tthis.user = user;\n\t\tthis.matchedBy = matchedBy;\n\t}\n\n\trevokeMatch() {\n\t\tthis.user = undefined;\n\t\tthis.matchedBy = undefined;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ImportUserController.html":{"url":"controllers/ImportUserController.html","title":"controller - ImportUserController","body":"\n \n\n\n\n\n\n\n Controllers\n ImportUserController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/import-user.controller.ts\n \n\n \n Prefix\n \n \n user/import\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n endSchoolInMaintenance\n \n \n \n Async\n findAllImportUsers\n \n \n \n Async\n findAllUnmatchedUsers\n \n \n \n Async\n removeMatch\n \n \n \n Async\n saveAllUsersMatches\n \n \n \n Async\n setMatch\n \n \n \n Async\n startSchoolInUserMigration\n \n \n \n Async\n updateFlag\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n endSchoolInMaintenance\n \n \n \n \n \n \n \n endSchoolInMaintenance(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Post('startSync')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:115\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllImportUsers\n \n \n \n \n \n \n \n findAllImportUsers(currentUser: ICurrentUser, scope: FilterImportUserParams, sortingQuery: SortImportUserParams, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n FilterImportUserParams\n \n\n \n No\n \n\n\n \n \n sortingQuery\n \n SortImportUserParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllUnmatchedUsers\n \n \n \n \n \n \n \n findAllUnmatchedUsers(currentUser: ICurrentUser, scope: FilterUserParams, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get('unassigned')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n FilterUserParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeMatch\n \n \n \n \n \n \n \n removeMatch(urlParams: ImportUserUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':importUserId/match')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ImportUserUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAllUsersMatches\n \n \n \n \n \n \n \n saveAllUsersMatches(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Post('migrate')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:102\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMatch\n \n \n \n \n \n \n \n setMatch(urlParams: ImportUserUrlParams, currentUser: ICurrentUser, params: UpdateMatchParams)\n \n \n\n \n \n Decorators : \n \n @Patch(':importUserId/match')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ImportUserUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n UpdateMatchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startSchoolInUserMigration\n \n \n \n \n \n \n \n startSchoolInUserMigration(currentUser: ICurrentUser, useCentralLdap?: boolean)\n \n \n\n \n \n Decorators : \n \n @Post('startUserMigration')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:107\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n useCentralLdap\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateFlag\n \n \n \n \n \n \n \n updateFlag(urlParams: ImportUserUrlParams, currentUser: ICurrentUser, params: UpdateFlagParams)\n \n \n\n \n \n Decorators : \n \n @Patch(':importUserId/flag')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ImportUserUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n UpdateFlagParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\n\nimport { PaginationParams } from '@shared/controller';\nimport { IFindOptions, ImportUser, User } from '@shared/domain';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ICurrentUser } from '@src/modules/authentication';\n\nimport { ImportUserMapper } from '../mapper/import-user.mapper';\nimport { UserMatchMapper } from '../mapper/user-match.mapper';\nimport { UserImportUc } from '../uc/user-import.uc';\n\nimport {\n\tFilterImportUserParams,\n\tFilterUserParams,\n\tImportUserListResponse,\n\tImportUserResponse,\n\tImportUserUrlParams,\n\tSortImportUserParams,\n\tUpdateFlagParams,\n\tUpdateMatchParams,\n\tUserMatchListResponse,\n} from './dto';\n\n@ApiTags('UserImport')\n@Authenticate('jwt')\n@Controller('user/import')\nexport class ImportUserController {\n\tconstructor(private readonly userImportUc: UserImportUc, private readonly userUc: UserImportUc) {}\n\n\t@Get()\n\tasync findAllImportUsers(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() scope: FilterImportUserParams,\n\t\t@Query() sortingQuery: SortImportUserParams,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\tconst options: IFindOptions = { pagination };\n\t\toptions.order = ImportUserMapper.mapSortingQueryToDomain(sortingQuery);\n\t\tconst query = ImportUserMapper.mapImportUserFilterQueryToDomain(scope);\n\t\tconst [importUserList, count] = await this.userImportUc.findAllImportUsers(currentUser.userId, query, options);\n\t\tconst { skip, limit } = pagination;\n\t\tconst dtoList = importUserList.map((importUser) => ImportUserMapper.mapToResponse(importUser));\n\t\tconst response = new ImportUserListResponse(dtoList, count, skip, limit);\n\n\t\treturn response;\n\t}\n\n\t@Patch(':importUserId/match')\n\tasync setMatch(\n\t\t@Param() urlParams: ImportUserUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() params: UpdateMatchParams\n\t): Promise {\n\t\tconst result = await this.userImportUc.setMatch(currentUser.userId, urlParams.importUserId, params.userId);\n\t\tconst response = ImportUserMapper.mapToResponse(result);\n\n\t\treturn response;\n\t}\n\n\t@Delete(':importUserId/match')\n\tasync removeMatch(\n\t\t@Param() urlParams: ImportUserUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst result = await this.userImportUc.removeMatch(currentUser.userId, urlParams.importUserId);\n\t\tconst response = ImportUserMapper.mapToResponse(result);\n\n\t\treturn response;\n\t}\n\n\t@Patch(':importUserId/flag')\n\tasync updateFlag(\n\t\t@Param() urlParams: ImportUserUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() params: UpdateFlagParams\n\t): Promise {\n\t\tconst result = await this.userImportUc.updateFlag(currentUser.userId, urlParams.importUserId, params.flagged);\n\t\tconst response = ImportUserMapper.mapToResponse(result);\n\n\t\treturn response;\n\t}\n\n\t@Get('unassigned')\n\tasync findAllUnmatchedUsers(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() scope: FilterUserParams,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\tconst options: IFindOptions = { pagination };\n\n\t\tconst query = UserMatchMapper.mapToDomain(scope);\n\t\tconst [userList, total] = await this.userUc.findAllUnmatchedUsers(currentUser.userId, query, options);\n\t\tconst { skip, limit } = pagination;\n\t\tconst dtoList = userList.map((user) => UserMatchMapper.mapToResponse(user));\n\t\tconst response = new UserMatchListResponse(dtoList, total, skip, limit);\n\n\t\treturn response as unknown as UserMatchListResponse;\n\t}\n\n\t@Post('migrate')\n\tasync saveAllUsersMatches(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.userImportUc.saveAllUsersMatches(currentUser.userId);\n\t}\n\n\t@Post('startUserMigration')\n\tasync startSchoolInUserMigration(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query('useCentralLdap') useCentralLdap?: boolean\n\t): Promise {\n\t\tawait this.userImportUc.startSchoolInUserMigration(currentUser.userId, useCentralLdap);\n\t}\n\n\t@Post('startSync')\n\tasync endSchoolInMaintenance(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.userImportUc.endSchoolInMaintenance(currentUser.userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserFactory.html":{"url":"classes/ImportUserFactory.html","title":"class - ImportUserFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/import-user.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n matched\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n matched\n \n \n \n \n \n \nmatched(matchedBy: MatchCreator, user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/import-user.factory.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n matchedBy\n \n MatchCreator\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { v4 as uuidv4 } from 'uuid';\n\nimport { IImportUserProperties, IImportUserRoleName, ImportUser, MatchCreator, RoleName, User } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\nimport { schoolFactory } from './school.factory';\nimport { systemFactory } from './system.factory';\n\nclass ImportUserFactory extends BaseFactory {\n\tmatched(matchedBy: MatchCreator, user: User): this {\n\t\tconst params: DeepPartial = { matchedBy, user };\n\t\treturn this.params(params);\n\t}\n}\n\nexport const importUserFactory = ImportUserFactory.define(ImportUser, ({ sequence }) => {\n\treturn {\n\t\tschool: schoolFactory.build(),\n\t\tsystem: systemFactory.build(),\n\t\tldapDn: `uid=john${sequence},cn=schueler,cn=users,ou=1,dc=training,dc=ucs`,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\texternalId: uuidv4() as unknown as string,\n\t\tfirstName: `John${sequence}`,\n\t\tlastName: `Doe${sequence}`,\n\t\temail: `user-${sequence}@example.com`,\n\t\troleNames: [RoleName.STUDENT as IImportUserRoleName],\n\t\tclassNames: ['firstClass'],\n\t\tflagged: false,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserListResponse.html":{"url":"classes/ImportUserListResponse.html","title":"class - ImportUserListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/import-user.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ImportUserResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:64\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ImportUserResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ImportUserResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:71\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { IsMongoId, IsString } from 'class-validator';\nimport { UserMatchResponse } from './user-match.response';\nimport { UserRole } from './user-role';\n\nexport class ImportUserResponse {\n\tconstructor(props: ImportUserResponse) {\n\t\tthis.importUserId = props.importUserId;\n\t\tthis.loginName = props.loginName;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.roleNames = props.roleNames;\n\t\tthis.classNames = props.classNames;\n\t\tif (props.match != null) this.match = props.match;\n\t\tif (props.flagged === true) this.flagged = true;\n\t}\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'id reference to a import user',\n\t})\n\t// no school, system\n\timportUserId: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'login name from external system',\n\t})\n\tloginName: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'external systems user firstname',\n\t})\n\tfirstName: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'external systems user lastname',\n\t})\n\tlastName: string;\n\n\t@ApiProperty({\n\t\tdescription: 'list of user roles from external system: student, teacher, admin',\n\t\tenum: UserRole,\n\t\tisArray: true,\n\t})\n\troleNames: UserRole[];\n\n\t@ApiProperty({ description: 'names of classes the user attends from external system' })\n\tclassNames: string[];\n\n\t@ApiPropertyOptional({ description: 'assignemnt to a local user account', type: UserMatchResponse })\n\tmatch?: UserMatchResponse;\n\n\t// explicit type is needed for OpenAPI generator\n\t// eslint-disable-next-line @typescript-eslint/no-inferrable-types\n\t@ApiProperty({ description: 'manual flag to apply it as filter' })\n\tflagged: boolean = false;\n}\n\nexport class ImportUserListResponse extends PaginationResponse {\n\tconstructor(data: ImportUserResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [ImportUserResponse] })\n\tdata: ImportUserResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserMapper.html":{"url":"classes/ImportUserMapper.html","title":"class - ImportUserMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/mapper/import-user.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapImportUserFilterQueryToDomain\n \n \n Static\n mapSortingQueryToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapImportUserFilterQueryToDomain\n \n \n \n \n \n \n \n mapImportUserFilterQueryToDomain(query: FilterImportUserParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/import-user.mapper.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterImportUserParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapSortingQueryToDomain\n \n \n \n \n \n \n \n mapSortingQueryToDomain(sortingQuery: SortImportUserParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/import-user.mapper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sortingQuery\n \n SortImportUserParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SortOrderMap | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(importUser: ImportUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/import-user.mapper.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n importUser\n \n ImportUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException } from '@nestjs/common';\nimport { StringValidator } from '@shared/common';\nimport { ImportUser, IImportUserScope, SortOrderMap } from '@shared/domain';\nimport {\n\tImportUserResponse,\n\tFilterImportUserParams,\n\tImportUserSortOrder,\n\tSortImportUserParams,\n} from '../controller/dto';\n\nimport { ImportUserMatchMapper } from './match.mapper';\n\nimport { RoleNameMapper } from './role-name.mapper';\nimport { UserMatchMapper } from './user-match.mapper';\n\nexport class ImportUserMapper {\n\tstatic mapSortingQueryToDomain(sortingQuery: SortImportUserParams): SortOrderMap | undefined {\n\t\tconst { sortBy } = sortingQuery;\n\t\tif (sortBy == null) return undefined;\n\t\tconst result: SortOrderMap = {};\n\t\tswitch (sortBy) {\n\t\t\tcase ImportUserSortOrder.FIRSTNAME:\n\t\t\tcase ImportUserSortOrder.LASTNAME:\n\t\t\t\tresult[sortBy] = sortingQuery.sortOrder;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new BadRequestException();\n\t\t}\n\t\treturn result;\n\t}\n\n\tstatic mapToResponse(importUser: ImportUser): ImportUserResponse {\n\t\tconst dto = new ImportUserResponse({\n\t\t\timportUserId: importUser.id,\n\t\t\tloginName: importUser.loginName || '',\n\t\t\tfirstName: importUser.firstName,\n\t\t\tlastName: importUser.lastName,\n\t\t\troleNames: importUser.roleNames.map((role) => RoleNameMapper.mapToResponse(role)),\n\t\t\tclassNames: importUser.classNames,\n\t\t\tflagged: importUser.flagged,\n\t\t});\n\t\tif (importUser.user != null && importUser.matchedBy) {\n\t\t\tconst { user } = importUser;\n\t\t\tdto.match = UserMatchMapper.mapToResponse(user, importUser.matchedBy);\n\t\t}\n\t\treturn dto;\n\t}\n\n\tstatic mapImportUserFilterQueryToDomain(query: FilterImportUserParams): IImportUserScope {\n\t\tconst dto: IImportUserScope = {};\n\t\tif (StringValidator.isNotEmptyString(query.firstName)) dto.firstName = query.firstName;\n\t\tif (StringValidator.isNotEmptyString(query.lastName)) dto.lastName = query.lastName;\n\t\tif (StringValidator.isNotEmptyString(query.loginName)) dto.loginName = query.loginName;\n\t\tif (query.role != null) {\n\t\t\tdto.role = RoleNameMapper.mapToDomain(query.role);\n\t\t}\n\t\tif (StringValidator.isNotEmptyString(query.classes)) dto.classes = query.classes;\n\t\tif (query.match) {\n\t\t\tdto.matches = query.match.map((match) => ImportUserMatchMapper.mapImportUserMatchScopeToDomain(match));\n\t\t}\n\t\tif (query.flagged === true) dto.flagged = true;\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserMatchMapper.html":{"url":"classes/ImportUserMatchMapper.html","title":"class - ImportUserMatchMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserMatchMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/mapper/match.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapImportUserMatchScopeToDomain\n \n \n Static\n mapMatchCreatorToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapImportUserMatchScopeToDomain\n \n \n \n \n \n \n \n mapImportUserMatchScopeToDomain(match: FilterMatchType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/match.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n match\n \n FilterMatchType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : MatchCreatorScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapMatchCreatorToResponse\n \n \n \n \n \n \n \n mapMatchCreatorToResponse(matchCreator: MatchCreator)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/match.mapper.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n matchCreator\n \n MatchCreator\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : MatchType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { MatchCreator, MatchCreatorScope } from '@shared/domain';\nimport { MatchType, FilterMatchType } from '../controller/dto';\n\nexport class ImportUserMatchMapper {\n\tstatic mapImportUserMatchScopeToDomain(match: FilterMatchType): MatchCreatorScope {\n\t\tif (match === FilterMatchType.AUTO) return MatchCreatorScope.AUTO;\n\t\tif (match === FilterMatchType.MANUAL) return MatchCreatorScope.MANUAL;\n\t\tif (match === FilterMatchType.NONE) return MatchCreatorScope.NONE;\n\t\tthrow Error('invalid match from filter query');\n\t}\n\n\tstatic mapMatchCreatorToResponse(matchCreator: MatchCreator): MatchType {\n\t\tswitch (matchCreator) {\n\t\t\tcase MatchCreator.MANUAL:\n\t\t\t\treturn MatchType.MANUAL;\n\t\t\tcase MatchCreator.AUTO:\n\t\t\tdefault:\n\t\t\t\treturn MatchType.AUTO;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ImportUserModule.html":{"url":"modules/ImportUserModule.html","title":"module - ImportUserModule","body":"\n \n\n\n\n\n Modules\n ImportUserModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ImportUserModule\n\n\n\ncluster_ImportUserModule_providers\n\n\n\ncluster_ImportUserModule_imports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nImportUserModule\n\nImportUserModule\n\nImportUserModule -->\n\nAccountModule->ImportUserModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nImportUserModule -->\n\nAuthorizationModule->ImportUserModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nImportUserModule -->\n\nLegacySchoolModule->ImportUserModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nImportUserModule -->\n\nLoggerModule->ImportUserModule\n\n\n\n\n\nImportUserRepo\n\nImportUserRepo\n\nImportUserModule -->\n\nImportUserRepo->ImportUserModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nImportUserModule -->\n\nLegacySchoolRepo->ImportUserModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nImportUserModule -->\n\nSystemRepo->ImportUserModule\n\n\n\n\n\nUserImportUc\n\nUserImportUc\n\nImportUserModule -->\n\nUserImportUc->ImportUserModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nImportUserModule -->\n\nUserRepo->ImportUserModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user-import/user-import.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ImportUserRepo\n \n \n LegacySchoolRepo\n \n \n SystemRepo\n \n \n UserImportUc\n \n \n UserRepo\n \n \n \n \n Controllers\n \n \n ImportUserController\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ImportUserRepo, LegacySchoolRepo, SystemRepo, UserRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { AccountModule } from '../account';\nimport { AuthorizationModule } from '../authorization';\nimport { ImportUserController } from './controller/import-user.controller';\nimport { UserImportUc } from './uc/user-import.uc';\n\n@Module({\n\timports: [LoggerModule, AccountModule, LegacySchoolModule, AuthorizationModule],\n\tcontrollers: [ImportUserController],\n\tproviders: [UserImportUc, ImportUserRepo, LegacySchoolRepo, SystemRepo, UserRepo],\n\texports: [],\n})\n/**\n * Module to provide user migration,\n * to link existing users with ldap references to enable\n * external authentication and sync.\n */\nexport class ImportUserModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ImportUserRepo.html":{"url":"injectables/ImportUserRepo.html","title":"injectable - ImportUserRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ImportUserRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/importuser/importuser.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteImportUsersBySchool\n \n \n Async\n findById\n \n \n Async\n findImportUsers\n \n \n Private\n Async\n findImportUsersAndCount\n \n \n Async\n hasMatch\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteImportUsersBySchool\n \n \n \n \n \n \n \n deleteImportUsersBySchool(school: SchoolEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:15\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findImportUsers\n \n \n \n \n \n \n \n findImportUsers(school: SchoolEntity, filters: IImportUserScope, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n school\n \n SchoolEntity\n \n\n \n No\n \n\n \n \n\n \n \n filters\n \n IImportUserScope\n \n\n \n No\n \n\n \n {}\n \n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n \n \n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findImportUsersAndCount\n \n \n \n \n \n \n \n findImportUsersAndCount(query: FilterQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n hasMatch\n \n \n \n \n \n \n \n hasMatch(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:27\n \n \n\n\n \n \n resolves with importusers matched with a local user account\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:11\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\n\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { Counted, EntityId, IFindOptions, IImportUserScope, ImportUser, SchoolEntity, User } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { ImportUserScope } from './importuser.scope';\n\n@Injectable()\nexport class ImportUserRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn ImportUser;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tif (!ObjectId.isValid(id)) throw new Error('invalid id');\n\t\tconst importUser = await this._em.findOneOrFail(ImportUser, { id });\n\t\tif (importUser.user != null) {\n\t\t\tawait this._em.populate(importUser.user, ['roles']);\n\t\t}\n\t\treturn importUser;\n\t}\n\n\t/**\n\t * resolves with importusers matched with a local user account\n\t */\n\tasync hasMatch(user: User): Promise {\n\t\tconst scope = new ImportUserScope();\n\t\tscope.byUserMatch(user);\n\t\tconst importUser = await this._em.findOne(ImportUser, scope.query);\n\t\treturn importUser;\n\t}\n\n\tasync findImportUsers(\n\t\tschool: SchoolEntity,\n\t\tfilters: IImportUserScope = {},\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new ImportUserScope();\n\t\tscope.bySchool(school);\n\t\tif (filters.firstName != null) scope.byFirstName(filters.firstName);\n\t\tif (filters.lastName != null) scope.byLastName(filters.lastName);\n\t\tif (filters.loginName != null) scope.byLoginName(filters.loginName);\n\t\tif (filters.role != null) scope.byRole(filters.role);\n\t\tif (filters.classes != null) scope.byClasses(filters.classes);\n\t\tif (filters.matches != null) scope.byMatches(filters.matches);\n\t\tif (filters.flagged === true) scope.isFlagged(true);\n\t\tconst countedImportUsers = await this.findImportUsersAndCount(scope.query, options);\n\t\treturn countedImportUsers;\n\t}\n\n\tprivate async findImportUsersAndCount(\n\t\tquery: FilterQuery,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\t\tconst [importUserEntities, count] = await this._em.findAndCount(ImportUser, query, queryOptions);\n\t\tconst userMatches = importUserEntities.map((importUser) => importUser.user).filter((user) => user != null);\n\t\t// load role names of referenced users\n\t\tawait this._em.populate(userMatches as User[], ['roles']);\n\t\treturn [importUserEntities, count];\n\t}\n\n\tasync deleteImportUsersBySchool(school: SchoolEntity): Promise {\n\t\tawait this._em.nativeDelete(ImportUser, { school });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserResponse.html":{"url":"classes/ImportUserResponse.html","title":"class - ImportUserResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/import-user.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n classNames\n \n \n \n \n firstName\n \n \n \n flagged\n \n \n \n \n importUserId\n \n \n \n \n lastName\n \n \n \n \n loginName\n \n \n \n Optional\n match\n \n \n \n roleNames\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ImportUserResponse)\n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ImportUserResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n classNames\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'names of classes the user attends from external system'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'external systems user firstname'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'manual flag to apply it as filter'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:61\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n importUserId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({pattern: '[a-f0-9]{24}', description: 'id reference to a import user'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'external systems user lastname'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n loginName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'login name from external system'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n match\n \n \n \n \n \n \n Type : UserMatchResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'assignemnt to a local user account', type: UserMatchResponse})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n roleNames\n \n \n \n \n \n \n Type : UserRole[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'list of user roles from external system: student, teacher, admin', enum: UserRole, isArray: true})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:50\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { IsMongoId, IsString } from 'class-validator';\nimport { UserMatchResponse } from './user-match.response';\nimport { UserRole } from './user-role';\n\nexport class ImportUserResponse {\n\tconstructor(props: ImportUserResponse) {\n\t\tthis.importUserId = props.importUserId;\n\t\tthis.loginName = props.loginName;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.roleNames = props.roleNames;\n\t\tthis.classNames = props.classNames;\n\t\tif (props.match != null) this.match = props.match;\n\t\tif (props.flagged === true) this.flagged = true;\n\t}\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'id reference to a import user',\n\t})\n\t// no school, system\n\timportUserId: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'login name from external system',\n\t})\n\tloginName: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'external systems user firstname',\n\t})\n\tfirstName: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'external systems user lastname',\n\t})\n\tlastName: string;\n\n\t@ApiProperty({\n\t\tdescription: 'list of user roles from external system: student, teacher, admin',\n\t\tenum: UserRole,\n\t\tisArray: true,\n\t})\n\troleNames: UserRole[];\n\n\t@ApiProperty({ description: 'names of classes the user attends from external system' })\n\tclassNames: string[];\n\n\t@ApiPropertyOptional({ description: 'assignemnt to a local user account', type: UserMatchResponse })\n\tmatch?: UserMatchResponse;\n\n\t// explicit type is needed for OpenAPI generator\n\t// eslint-disable-next-line @typescript-eslint/no-inferrable-types\n\t@ApiProperty({ description: 'manual flag to apply it as filter' })\n\tflagged: boolean = false;\n}\n\nexport class ImportUserListResponse extends PaginationResponse {\n\tconstructor(data: ImportUserResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [ImportUserResponse] })\n\tdata: ImportUserResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserScope.html":{"url":"classes/ImportUserScope.html","title":"class - ImportUserScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/importuser/importuser.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byClasses\n \n \n byFirstName\n \n \n byLastName\n \n \n byLoginName\n \n \n byMatches\n \n \n byRole\n \n \n bySchool\n \n \n byUserMatch\n \n \n isFlagged\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byClasses\n \n \n \n \n \n \nbyClasses(classes: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n classes\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byFirstName\n \n \n \n \n \n \nbyFirstName(firstName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n firstName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byLastName\n \n \n \n \n \n \nbyLastName(lastName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lastName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byLoginName\n \n \n \n \n \n \nbyLoginName(loginName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:54\n \n \n\n\n \n \n filters the login name case insensitive for contains which is part of the dn\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loginName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byMatches\n \n \n \n \n \n \nbyMatches(matches: MatchCreatorScope[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n matches\n \n MatchCreatorScope[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : this\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byRole\n \n \n \n \n \n \nbyRole(roleName: RoleName)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleName\n \n RoleName\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n bySchool\n \n \n \n \n \n \nbySchool(school: SchoolEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byUserMatch\n \n \n \n \n \n \nbyUserMatch(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isFlagged\n \n \n \n \n \n \nisFlagged(flagged)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:113\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n Default value\n \n \n \n \n flagged\n\n \n No\n \n\n \n true\n \n\n \n \n \n \n \n \n \n Returns : this\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { StringValidator } from '@shared/common';\nimport { ImportUser, MatchCreatorScope, RoleName, SchoolEntity, User } from '@shared/domain';\nimport { MongoPatterns } from '../mongo.patterns';\nimport { Scope } from '../scope';\n\nexport class ImportUserScope extends Scope {\n\tbySchool(school: SchoolEntity): ImportUserScope {\n\t\tconst schoolId = school._id;\n\t\tif (!ObjectId.isValid(schoolId)) throw new Error('invalid school id');\n\t\tthis.addQuery({ school });\n\t\treturn this;\n\t}\n\n\tbyUserMatch(user: User): ImportUserScope {\n\t\tconst userId = user._id;\n\t\tif (!ObjectId.isValid(userId)) throw new Error('invalid user match id');\n\t\tthis.addQuery({ user });\n\t\treturn this;\n\t}\n\n\tbyFirstName(firstName: string): ImportUserScope {\n\t\tconst escapedFirstName = firstName.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t// TODO make db agnostic\n\t\tif (StringValidator.isNotEmptyString(escapedFirstName, true))\n\t\t\tthis.addQuery({\n\t\t\t\tfirstName: {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t$regex: escapedFirstName,\n\t\t\t\t\t$options: 'i',\n\t\t\t\t},\n\t\t\t});\n\t\treturn this;\n\t}\n\n\tbyLastName(lastName: string): ImportUserScope {\n\t\t// TODO filter does not find café when searching with cafe\n\t\tconst escapedLastName = lastName.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t// TODO make db agnostic\n\t\tif (StringValidator.isNotEmptyString(escapedLastName, true))\n\t\t\tthis.addQuery({\n\t\t\t\tlastName: {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t$regex: escapedLastName,\n\t\t\t\t\t$options: 'i',\n\t\t\t\t},\n\t\t\t});\n\t\treturn this;\n\t}\n\n\t/** filters the login name case insensitive for contains which is part of the dn */\n\tbyLoginName(loginName: string): ImportUserScope {\n\t\t// TODO filter does not find café when searching with cafe\n\t\tconst escapedLoginName = loginName.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t// TODO make db agnostic\n\t\tif (StringValidator.isNotEmptyString(escapedLoginName, true))\n\t\t\tthis.addQuery({\n\t\t\t\tldapDn: {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t$regex: `^uid=[^,]*${escapedLoginName}[^,]*,`,\n\t\t\t\t\t$options: 'i',\n\t\t\t\t},\n\t\t\t});\n\t\treturn this;\n\t}\n\n\tbyRole(roleName: RoleName): ImportUserScope {\n\t\tswitch (roleName) {\n\t\t\tcase RoleName.ADMINISTRATOR:\n\t\t\t\tthis.addQuery({ roleNames: { $in: [RoleName.ADMINISTRATOR] } });\n\t\t\t\tbreak;\n\t\t\tcase RoleName.STUDENT:\n\t\t\t\tthis.addQuery({ roleNames: { $in: [RoleName.STUDENT] } });\n\t\t\t\tbreak;\n\t\t\tcase RoleName.TEACHER:\n\t\t\t\tthis.addQuery({ roleNames: { $in: [RoleName.TEACHER] } });\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error('unexpected role name');\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyClasses(classes: string): ImportUserScope {\n\t\tconst escapedClasses = classes.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t// TODO make db agnostic\n\t\tif (StringValidator.isNotEmptyString(escapedClasses, true))\n\t\t\tthis.addQuery({\n\t\t\t\tclassNames: {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t$regex: escapedClasses,\n\t\t\t\t\t$options: 'i',\n\t\t\t\t},\n\t\t\t});\n\t\treturn this;\n\t}\n\n\tbyMatches(matches: MatchCreatorScope[]) {\n\t\tconst queries = matches\n\t\t\t.map((match) => {\n\t\t\t\tif (match === MatchCreatorScope.MANUAL) return { matchedBy: 'admin' };\n\t\t\t\tif (match === MatchCreatorScope.AUTO) return { matchedBy: 'auto' };\n\t\t\t\tif (match === MatchCreatorScope.NONE) return { matchedBy: null };\n\t\t\t\treturn null;\n\t\t\t})\n\t\t\t.filter((match) => match != null);\n\t\tif (queries.length > 0) this.addQuery({ $or: queries as FilterQuery[] });\n\t\treturn this;\n\t}\n\n\tisFlagged(flagged = true) {\n\t\tif (flagged === true) this.addQuery({ flagged: true });\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserUrlParams.html":{"url":"classes/ImportUserUrlParams.html","title":"class - ImportUserUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/import-user.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n importUserId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n importUserId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of an importuser object, that matches an internal user with an external user.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class ImportUserUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of an importuser object, that matches an internal user with an external user.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\timportUserId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/InlineAttachment.html":{"url":"interfaces/InlineAttachment.html","title":"interface - InlineAttachment","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n InlineAttachment\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n \n Extends\n \n \n MailAttachment\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contentDisposition\n \n \n \n \n contentId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contentDisposition\n \n \n \n \n \n \n \n \n contentDisposition: \n\n \n \n\n\n\n\n\n\n\n \n \n \n \n \n \n \n contentId\n \n \n \n \n \n \n \n \n contentId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/InterceptorModule.html":{"url":"modules/InterceptorModule.html","title":"module - InterceptorModule","body":"\n \n\n\n\n\n Modules\n InterceptorModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/interceptor/interceptor.module.ts\n \n\n\n\n \n Description\n \n \n \nGlobal Interceptor setup\n\nHere, we globally apply\n\nvalidate input data using @ClassSerializerInterceptor\nset a timeout for requests using @TimeoutInterceptor\n\n\n \n\n\n \n \n \n \n\n\n \n\n\n \n import { ClassSerializerInterceptor, Module } from '@nestjs/common';\nimport { APP_INTERCEPTOR } from '@nestjs/core';\nimport { IInterceptorConfig, TimeoutInterceptor } from '@shared/common';\nimport { ConfigService } from '@nestjs/config';\n\n/** *********************************************\n * Global Interceptor setup\n * **********************************************\n * Here, we globally apply\n * - validate input data using @ClassSerializerInterceptor\n * - set a timeout for requests using @TimeoutInterceptor\n */\n@Module({\n\tproviders: [\n\t\t{\n\t\t\tprovide: APP_INTERCEPTOR,\n\t\t\tuseClass: ClassSerializerInterceptor,\n\t\t},\n\t\t{\n\t\t\tprovide: APP_INTERCEPTOR, // TODO remove (for testing)\n\t\t\tuseFactory: (configService: ConfigService) => {\n\t\t\t\tconst timeout = configService.get('INCOMING_REQUEST_TIMEOUT');\n\t\t\t\treturn new TimeoutInterceptor(timeout);\n\t\t\t},\n\t\t\tinject: [ConfigService],\n\t\t},\n\t],\n})\nexport class InterceptorModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IntrospectResponse.html":{"url":"interfaces/IntrospectResponse.html","title":"interface - IntrospectResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IntrospectResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/introspect.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n active\n \n \n \n Optional\n \n aud\n \n \n \n Optional\n \n client_id\n \n \n \n Optional\n \n exp\n \n \n \n Optional\n \n ext\n \n \n \n Optional\n \n iat\n \n \n \n Optional\n \n iss\n \n \n \n Optional\n \n nbf\n \n \n \n Optional\n \n obfuscated_subject\n \n \n \n Optional\n \n scope\n \n \n \n Optional\n \n sub\n \n \n \n Optional\n \n token_type\n \n \n \n Optional\n \n token_use\n \n \n \n Optional\n \n username\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n active\n \n \n \n \n \n \n \n \n active: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n aud\n \n \n \n \n \n \n \n \n aud: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n client_id\n \n \n \n \n \n \n \n \n client_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n exp\n \n \n \n \n \n \n \n \n exp: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ext\n \n \n \n \n \n \n \n \n ext: object\n\n \n \n\n\n \n \n Type : object\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n iat\n \n \n \n \n \n \n \n \n iat: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n iss\n \n \n \n \n \n \n \n \n iss: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n nbf\n \n \n \n \n \n \n \n \n nbf: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n obfuscated_subject\n \n \n \n \n \n \n \n \n obfuscated_subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n \n \n scope: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sub\n \n \n \n \n \n \n \n \n sub: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n token_type\n \n \n \n \n \n \n \n \n token_type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n token_use\n \n \n \n \n \n \n \n \n token_use: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n \n \n username: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IntrospectResponse {\n\tactive: boolean;\n\n\taud?: string[];\n\n\tclient_id?: string;\n\n\texp?: number;\n\n\text?: object;\n\n\tiat?: number;\n\n\tiss?: string;\n\n\tnbf?: number;\n\n\tobfuscated_subject?: string;\n\n\tscope?: string;\n\n\tsub?: string;\n\n\ttoken_type?: string;\n\n\ttoken_use?: string;\n\n\tusername?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/InvalidOriginForLogoutUrlLoggableException.html":{"url":"classes/InvalidOriginForLogoutUrlLoggableException.html","title":"class - InvalidOriginForLogoutUrlLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n InvalidOriginForLogoutUrlLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/error/invalid-origin-for-logout-url.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BadRequestException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logoutUrl: string, origin: string | undefined)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/error/invalid-origin-for-logout-url.loggable-exception.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoutUrl\n \n \n string\n \n \n \n No\n \n \n \n \n origin\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/error/invalid-origin-for-logout-url.loggable-exception.ts:9\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class InvalidOriginForLogoutUrlLoggableException extends BadRequestException implements Loggable {\n\tconstructor(private readonly logoutUrl: string, private readonly origin: string | undefined) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'INVALID_ORIGIN_FOR_LOGOUT_URL',\n\t\t\tmessage: 'The provided logoutUrl is from the wrong domain. Only URLs from the origin of the request can be used.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\treceived: new URL(this.logoutUrl).origin,\n\t\t\t\texpected: this.origin,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IservMapper.html":{"url":"classes/IservMapper.html","title":"class - IservMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IservMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/iserv/iserv-do.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToExternalSchoolDto\n \n \n Static\n mapToExternalUserDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToExternalSchoolDto\n \n \n \n \n \n \n \n mapToExternalSchoolDto(schoolDO: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/iserv/iserv-do.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalSchoolDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToExternalUserDto\n \n \n \n \n \n \n \n mapToExternalUserDto(userDO: UserDO, roleNames: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/iserv/iserv-do.mapper.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userDO\n \n UserDO\n \n\n \n No\n \n\n\n \n \n roleNames\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalUserDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LegacySchoolDo, RoleName, UserDO } from '@shared/domain';\nimport { ExternalSchoolDto, ExternalUserDto } from '../../dto';\n\nexport class IservMapper {\n\tstatic mapToExternalSchoolDto(schoolDO: LegacySchoolDo): ExternalSchoolDto {\n\t\treturn new ExternalSchoolDto({\n\t\t\tname: schoolDO.name,\n\t\t\texternalId: schoolDO.externalId || '',\n\t\t\tofficialSchoolNumber: schoolDO.officialSchoolNumber,\n\t\t});\n\t}\n\n\tstatic mapToExternalUserDto(userDO: UserDO, roleNames: RoleName[]): ExternalUserDto {\n\t\treturn new ExternalUserDto({\n\t\t\tfirstName: userDO.firstName,\n\t\t\tlastName: userDO.lastName,\n\t\t\temail: userDO.email,\n\t\t\troles: roleNames,\n\t\t\texternalId: userDO.externalId || '',\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/IservProvisioningStrategy.html":{"url":"injectables/IservProvisioningStrategy.html","title":"injectable - IservProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n IservProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts\n \n\n\n\n \n Extends\n \n \n ProvisioningStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n apply\n \n \n Async\n getAdditionalErrorInfo\n \n \n \n Async\n getData\n \n \n getType\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, userService: UserService)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:61\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getAdditionalErrorInfo\n \n \n \n \n \n \n \n getAdditionalErrorInfo(email: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:28\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getType\n \n \n \n \n \n \ngetType()\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:24\n\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { LegacySchoolDo, RoleName, RoleReference, User, UserDO } from '@shared/domain';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { OAuthSSOError } from '@src/modules/oauth/error/oauth-sso.error';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserService } from '@src/modules/user';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport {\n\tExternalSchoolDto,\n\tExternalUserDto,\n\tOauthDataDto,\n\tOauthDataStrategyInputDto,\n\tProvisioningDto,\n} from '../../dto';\nimport { ProvisioningStrategy } from '../base.strategy';\nimport { IservMapper } from './iserv-do.mapper';\n\n@Injectable()\nexport class IservProvisioningStrategy extends ProvisioningStrategy {\n\tconstructor(private readonly schoolService: LegacySchoolService, private readonly userService: UserService) {\n\t\tsuper();\n\t}\n\n\tgetType(): SystemProvisioningStrategy {\n\t\treturn SystemProvisioningStrategy.ISERV;\n\t}\n\n\toverride async getData(input: OauthDataStrategyInputDto): Promise {\n\t\tconst idToken: JwtPayload | null = jwt.decode(input.idToken, { json: true });\n\n\t\tif (!idToken || !idToken.uuid) {\n\t\t\tthrow new OAuthSSOError('Failed to extract uuid', 'sso_jwt_problem');\n\t\t}\n\n\t\tconst ldapUser: UserDO | null = await this.userService.findByExternalId(\n\t\t\tidToken.uuid as string,\n\t\t\tinput.system.systemId\n\t\t);\n\t\tif (!ldapUser) {\n\t\t\tconst additionalInfo: string = await this.getAdditionalErrorInfo(idToken.email as string | undefined);\n\t\t\tthrow new OAuthSSOError(\n\t\t\t\t`Failed to find user with Id ${idToken.uuid as string}${additionalInfo}`,\n\t\t\t\t'sso_user_notfound'\n\t\t\t);\n\t\t}\n\n\t\tconst ldapSchool: LegacySchoolDo = await this.schoolService.getSchoolById(ldapUser.schoolId);\n\t\tconst roleNames: RoleName[] = ldapUser.roles.map((roleRef: RoleReference): RoleName => roleRef.name);\n\n\t\tconst externalUser: ExternalUserDto = IservMapper.mapToExternalUserDto(ldapUser, roleNames);\n\t\tconst externalSchool: ExternalSchoolDto = IservMapper.mapToExternalSchoolDto(ldapSchool);\n\n\t\tconst oauthData: OauthDataDto = new OauthDataDto({\n\t\t\tsystem: input.system,\n\t\t\texternalUser,\n\t\t\texternalSchool,\n\t\t});\n\t\treturn oauthData;\n\t}\n\n\toverride apply(data: OauthDataDto): Promise {\n\t\treturn Promise.resolve(new ProvisioningDto({ externalUserId: data.externalUser?.externalId }));\n\t}\n\n\tasync getAdditionalErrorInfo(email: string | undefined): Promise {\n\t\tif (email) {\n\t\t\tconst usersWithEmail: User[] = await this.userService.findByEmail(email);\n\t\t\tif (usersWithEmail.length > 0) {\n\t\t\t\tconst user: User = usersWithEmail[0];\n\t\t\t\treturn ` [schoolId: ${user.school.id}, currentLdapId: ${user.externalId ?? ''}]`;\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/JwtAuthGuard.html":{"url":"injectables/JwtAuthGuard.html","title":"injectable - JwtAuthGuard","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n JwtAuthGuard\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/guard/jwt-auth.guard.ts\n \n\n\n\n\n\n\n\n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthGuard } from '@nestjs/passport';\n\n@Injectable()\nexport class JwtAuthGuard extends AuthGuard('jwt') {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/JwtConstants.html":{"url":"interfaces/JwtConstants.html","title":"interface - JwtConstants","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n JwtConstants\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/constants.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n jwtOptions\n \n \n \n \n secret\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n jwtOptions\n \n \n \n \n \n \n \n \n jwtOptions: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n \n \n secret: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import externalAuthConfig = require('../../../../../src/services/authentication/configuration');\n\nconst { authConfig } = externalAuthConfig;\n\n/*\n\tTODO: look at existing keys, vs implemented keys\n\tsupport: true,\n\tsupportUserId,\n\taccountId,\n\tuserId,\n\tiat,\n\texp,\n\taud: this.aud,\n\tiss: 'feathers',\n\tsub: accountId,\n\tjti: `support_${ObjectId()}`,\n*/\nexport interface JwtConstants {\n\tsecret: string;\n\tjwtOptions: {\n\t\theader: { typ: string };\n\t\taudience: string;\n\t\tissuer: string;\n\t\talgorithm: string;\n\t\texpiresIn: string;\n\t};\n}\n\nexport const jwtConstants: JwtConstants = {\n\tsecret: authConfig.secret as string,\n\tjwtOptions: authConfig.jwtOptions,\n};\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/JwtExtractor.html":{"url":"classes/JwtExtractor.html","title":"class - JwtExtractor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n JwtExtractor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/jwt-extractor.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n fromCookie\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n fromCookie\n \n \n \n \n \n \n \n fromCookie(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-extractor.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : JwtFromRequestFunction\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Request } from 'express';\nimport { JwtFromRequestFunction } from 'passport-jwt';\nimport cookie from 'cookie';\n\nexport class JwtExtractor {\n\tstatic fromCookie(name: string): JwtFromRequestFunction {\n\t\treturn (request: Request) => {\n\t\t\tlet token: string | null = null;\n\t\t\tconst cookies = cookie.parse(request.headers.cookie || '');\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (cookies && cookies[name]) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\ttoken = cookies[name];\n\t\t\t}\n\t\t\treturn token;\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/JwtPayload.html":{"url":"interfaces/JwtPayload.html","title":"interface - JwtPayload","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n JwtPayload\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/jwt-payload.ts\n \n\n\n\n \n Extends\n \n \n CreateJwtPayload\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n aud\n \n \n \n \n exp\n \n \n \n \n iat\n \n \n \n \n iss\n \n \n \n \n jti\n \n \n \n \n sub\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n aud\n \n \n \n \n \n \n \n \n aud: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n audience\n\n \n \n \n \n \n \n \n \n \n exp\n \n \n \n \n \n \n \n \n exp: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n expiration in // TODO\n\n \n \n \n \n \n \n \n \n \n iat\n \n \n \n \n \n \n \n \n iat: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n iss\n \n \n \n \n \n \n \n \n iss: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n issuer\n\n \n \n \n \n \n \n \n \n \n jti\n \n \n \n \n \n \n \n \n jti: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n sub\n \n \n \n \n \n \n \n \n sub: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n // TODO\n\n \n \n \n \n \n \n\n\n \n export interface CreateJwtPayload {\n\taccountId: string;\n\tuserId: string;\n\tschoolId: string;\n\troles: string[];\n\tsystemId?: string; // without this the user needs to change his PW during first login\n\tsupport?: boolean;\n}\n\nexport interface JwtPayload extends CreateJwtPayload {\n\t/** audience */\n\taud: string;\n\t/** expiration in // TODO\n\t *\n\t */\n\texp: number;\n\tiat: number;\n\t/** issuer */\n\tiss: string;\n\tjti: string;\n\n\t/** // TODO\n\t *\n\t */\n\tsub: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/JwtStrategy.html":{"url":"injectables/JwtStrategy.html","title":"injectable - JwtStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n JwtStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/jwt.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(jwtValidationAdapter: JwtValidationAdapter)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt.strategy.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwtValidationAdapter\n \n \n JwtValidationAdapter\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(payload: JwtPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt.strategy.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n JwtPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { PassportStrategy } from '@nestjs/passport';\nimport { ExtractJwt, Strategy } from 'passport-jwt';\nimport { jwtConstants } from '../constants';\nimport { ICurrentUser } from '../interface';\nimport { JwtPayload } from '../interface/jwt-payload';\nimport { CurrentUserMapper } from '../mapper';\nimport { JwtExtractor } from './jwt-extractor';\nimport { JwtValidationAdapter } from './jwt-validation.adapter';\n\n@Injectable()\nexport class JwtStrategy extends PassportStrategy(Strategy) {\n\tconstructor(private readonly jwtValidationAdapter: JwtValidationAdapter) {\n\t\tsuper({\n\t\t\tjwtFromRequest: ExtractJwt.fromExtractors([\n\t\t\t\tExtractJwt.fromAuthHeaderAsBearerToken(),\n\t\t\t\tJwtExtractor.fromCookie('jwt'),\n\t\t\t]),\n\t\t\tignoreExpiration: false,\n\t\t\tsecretOrKey: jwtConstants.secret,\n\t\t\t...jwtConstants.jwtOptions,\n\t\t});\n\t}\n\n\tasync validate(payload: JwtPayload): Promise {\n\t\tconst { accountId, jti } = payload;\n\t\t// check user exists\n\t\ttry {\n\t\t\t// TODO: check user/account is active and has one role\n\t\t\t// check jwt is whitelisted and extend whitelist entry\n\t\t\tawait this.jwtValidationAdapter.isWhitelisted(accountId, jti);\n\t\t\tconst currentUser = CurrentUserMapper.jwtToICurrentUser(payload);\n\t\t\treturn currentUser;\n\t\t} catch (err) {\n\t\t\tthrow new UnauthorizedException('Unauthorized.', { cause: err as Error });\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/JwtTestFactory.html":{"url":"classes/JwtTestFactory.html","title":"class - JwtTestFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n JwtTestFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/jwt.test.factory.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n createJwt\n \n \n Static\n getPublicKey\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n createJwt\n \n \n \n \n \n \n \n createJwt(params?: CreateJwtParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/jwt.test.factory.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n CreateJwtParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n getPublicKey\n \n \n \n \n \n \n \n getPublicKey()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/jwt.test.factory.ts:18\n \n \n\n\n \n \n\n \n Returns : string | Buffer\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import jwt from 'jsonwebtoken';\nimport crypto, { KeyPairKeyObjectResult } from 'crypto';\n\nconst keyPair: KeyPairKeyObjectResult = crypto.generateKeyPairSync('rsa', { modulusLength: 4096 });\nconst publicKey: string | Buffer = keyPair.publicKey.export({ type: 'pkcs1', format: 'pem' });\nconst privateKey: string | Buffer = keyPair.privateKey.export({ type: 'pkcs1', format: 'pem' });\n\ninterface CreateJwtParams {\n\tprivateKey?: string | Buffer;\n\tsub?: string;\n\tiss?: string;\n\taud?: string;\n\taccountId?: string;\n\texternal_sub?: string;\n}\n\nexport class JwtTestFactory {\n\tpublic static getPublicKey(): string | Buffer {\n\t\treturn publicKey;\n\t}\n\n\tpublic static createJwt(params?: CreateJwtParams): string {\n\t\tconst validJwt = jwt.sign(\n\t\t\t{\n\t\t\t\tsub: params?.sub ?? 'testUser',\n\t\t\t\tiss: params?.iss ?? 'issuer',\n\t\t\t\taud: params?.aud ?? 'audience',\n\t\t\t\tjti: 'jti',\n\t\t\t\tiat: Date.now(),\n\t\t\t\texp: Date.now() + 100000,\n\t\t\t\taccountId: params?.accountId ?? 'accountId',\n\t\t\t\texternal_sub: params?.external_sub ?? 'externalSub',\n\t\t\t},\n\t\t\tparams?.privateKey ?? privateKey,\n\t\t\t{\n\t\t\t\talgorithm: 'RS256',\n\t\t\t}\n\t\t);\n\t\treturn validJwt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/JwtValidationAdapter.html":{"url":"injectables/JwtValidationAdapter.html","title":"injectable - JwtValidationAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n JwtValidationAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n addToWhitelist\n \n \n Async\n isWhitelisted\n \n \n Async\n removeFromWhitelist\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(cacheManager: Cache, cacheService: CacheService)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n cacheManager\n \n \n Cache\n \n \n \n No\n \n \n \n \n cacheService\n \n \n CacheService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n addToWhitelist\n \n \n \n \n \n \n \n addToWhitelist(accountId: string, jti: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n jti\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n isWhitelisted\n \n \n \n \n \n \n \n isWhitelisted(accountId: string, jti: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts:25\n \n \n\n\n \n \n When validating a jwt it must be added to a whitelist, here we check this.\nWhen the jwt is validated, the expiration time will be extended with this call.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n users account id\n\n \n \n \n jti\n \n string\n \n\n \n No\n \n\n\n \n jwt id (here required to make jwt identifiers identical in redis)\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeFromWhitelist\n \n \n \n \n \n \n \n removeFromWhitelist(accountId: string, jti: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n jti\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { CACHE_MANAGER } from '@nestjs/cache-manager';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { CacheService } from '@shared/infra/cache';\nimport { CacheStoreType } from '@shared/infra/cache/interface/cache-store-type.enum';\nimport {\n\taddTokenToWhitelist,\n\tcreateRedisIdentifierFromJwtData,\n\tensureTokenIsWhitelisted,\n} from '@src/imports-from-feathers';\nimport { Cache } from 'cache-manager';\n\n@Injectable()\nexport class JwtValidationAdapter {\n\tconstructor(\n\t\t@Inject(CACHE_MANAGER) private readonly cacheManager: Cache,\n\t\tprivate readonly cacheService: CacheService\n\t) {}\n\n\t/**\n\t * When validating a jwt it must be added to a whitelist, here we check this.\n\t * When the jwt is validated, the expiration time will be extended with this call.\n\t * @param accountId users account id\n\t * @param jti jwt id (here required to make jwt identifiers identical in redis)\n\t */\n\tasync isWhitelisted(accountId: string, jti: string): Promise {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\tawait ensureTokenIsWhitelisted({ accountId, jti, privateDevice: false });\n\t}\n\n\tasync addToWhitelist(accountId: string, jti: string): Promise {\n\t\tconst redisIdentifier = createRedisIdentifierFromJwtData(accountId, jti);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\tawait addTokenToWhitelist(redisIdentifier);\n\t}\n\n\tasync removeFromWhitelist(accountId: string, jti: string): Promise {\n\t\tif (this.cacheService.getStoreType() === CacheStoreType.REDIS) {\n\t\t\tconst redisIdentifier: string = createRedisIdentifierFromJwtData(accountId, jti);\n\t\t\tawait this.cacheManager.del(redisIdentifier);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/KeycloakAdministration.html":{"url":"classes/KeycloakAdministration.html","title":"class - KeycloakAdministration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n KeycloakAdministration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-administration/keycloak-config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n keycloakSettings\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n keycloakSettings\n \n \n \n \n \n \n Default value : (Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean)\n\t\t? ({\n\t\t\t\tbaseUrl: Configuration.get('IDENTITY_MANAGEMENT__URI') as string,\n\t\t\t\trealmName: Configuration.get('IDENTITY_MANAGEMENT__TENANT') as string,\n\t\t\t\tclientId: Configuration.get('IDENTITY_MANAGEMENT__CLIENTID') as string,\n\t\t\t\tcredentials: {\n\t\t\t\t\tgrantType: 'password',\n\t\t\t\t\tusername: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_USER') as string,\n\t\t\t\t\tpassword: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_PASSWORD') as string,\n\t\t\t\t\tclientId: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_CLIENTID') as string,\n\t\t\t\t},\n\t\t } as IKeycloakSettings)\n\t\t: ({} as IKeycloakSettings)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/keycloak-config.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { IKeycloakSettings } from './interface/keycloak-settings.interface';\n\nexport default class KeycloakAdministration {\n\tstatic keycloakSettings = (Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean)\n\t\t? ({\n\t\t\t\tbaseUrl: Configuration.get('IDENTITY_MANAGEMENT__URI') as string,\n\t\t\t\trealmName: Configuration.get('IDENTITY_MANAGEMENT__TENANT') as string,\n\t\t\t\tclientId: Configuration.get('IDENTITY_MANAGEMENT__CLIENTID') as string,\n\t\t\t\tcredentials: {\n\t\t\t\t\tgrantType: 'password',\n\t\t\t\t\tusername: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_USER') as string,\n\t\t\t\t\tpassword: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_PASSWORD') as string,\n\t\t\t\t\tclientId: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_CLIENTID') as string,\n\t\t\t\t},\n\t\t } as IKeycloakSettings)\n\t\t: ({} as IKeycloakSettings);\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/KeycloakAdministrationModule.html":{"url":"modules/KeycloakAdministrationModule.html","title":"module - KeycloakAdministrationModule","body":"\n \n\n\n\n\n Modules\n KeycloakAdministrationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_KeycloakAdministrationModule\n\n\n\ncluster_KeycloakAdministrationModule_exports\n\n\n\ncluster_KeycloakAdministrationModule_providers\n\n\n\n\nKeycloakAdministrationService \n\nKeycloakAdministrationService \n\n\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationService -->\n\nKeycloakAdministrationModule->KeycloakAdministrationService \n\n\n\n\n\nKeycloakAdministrationService\n\nKeycloakAdministrationService\n\nKeycloakAdministrationModule -->\n\nKeycloakAdministrationService->KeycloakAdministrationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-administration/keycloak-administration.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n KeycloakAdministrationService\n \n \n \n \n Exports\n \n \n KeycloakAdministrationService\n \n \n \n \n \n\n\n \n\n\n \n import KeycloakAdminClient from '@keycloak/keycloak-admin-client-cjs/keycloak-admin-client-cjs-index';\nimport { Module } from '@nestjs/common';\nimport { KeycloakSettings } from './interface/keycloak-settings.interface';\nimport KeycloakConfiguration from './keycloak-config';\nimport { KeycloakAdministrationService } from './service/keycloak-administration.service';\n\n@Module({\n\tcontrollers: [],\n\tproviders: [\n\t\tKeycloakAdminClient,\n\t\t{\n\t\t\tprovide: KeycloakSettings,\n\t\t\tuseValue: KeycloakConfiguration.keycloakSettings,\n\t\t},\n\t\tKeycloakAdministrationService,\n\t],\n\texports: [KeycloakAdministrationService],\n})\nexport class KeycloakAdministrationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakAdministrationService.html":{"url":"injectables/KeycloakAdministrationService.html","title":"injectable - KeycloakAdministrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakAdministrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n AUTHORIZATION_TIMEBOX_MS\n \n \n Private\n lastAuthorizationTime\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n authorizeAccess\n \n \n Public\n Async\n callKcAdminClient\n \n \n Public\n getAdminUser\n \n \n Public\n getClientId\n \n \n Public\n Async\n getClientSecret\n \n \n Public\n getWellKnownUrl\n \n \n Public\n resetLastAuthorizationTime\n \n \n Public\n Async\n setPasswordPolicy\n \n \n Public\n Async\n testKcConnection\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Public\n constructor(kcAdminClient: KeycloakAdminClient, kcSettings: IKeycloakSettings)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdminClient\n \n \n KeycloakAdminClient\n \n \n \n No\n \n \n \n \n kcSettings\n \n \n IKeycloakSettings\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n authorizeAccess\n \n \n \n \n \n \n \n authorizeAccess()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:66\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n callKcAdminClient\n \n \n \n \n \n \n \n callKcAdminClient()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:21\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n getAdminUser\n \n \n \n \n \n \n \n getAdminUser()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:39\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n getClientId\n \n \n \n \n \n \n \n getClientId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:43\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getClientSecret\n \n \n \n \n \n \n \n getClientSecret()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:47\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n getWellKnownUrl\n \n \n \n \n \n \n \n getWellKnownUrl()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:35\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n resetLastAuthorizationTime\n \n \n \n \n \n \n \n resetLastAuthorizationTime()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:62\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n setPasswordPolicy\n \n \n \n \n \n \n \n setPasswordPolicy()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:57\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n testKcConnection\n \n \n \n \n \n \n \n testKcConnection()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:26\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n AUTHORIZATION_TIMEBOX_MS\n \n \n \n \n \n \n Default value : 59 * 1000\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n lastAuthorizationTime\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 0\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:7\n \n \n\n\n \n \n\n\n \n\n\n \n import KeycloakAdminClient from '@keycloak/keycloak-admin-client-cjs/keycloak-admin-client-cjs-index';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { IKeycloakSettings, KeycloakSettings } from '../interface/keycloak-settings.interface';\n\n@Injectable()\nexport class KeycloakAdministrationService {\n\tprivate lastAuthorizationTime = 0;\n\n\tprivate static AUTHORIZATION_TIMEBOX_MS = 59 * 1000;\n\n\tpublic constructor(\n\t\tprivate readonly kcAdminClient: KeycloakAdminClient,\n\t\t@Inject(KeycloakSettings) private readonly kcSettings: IKeycloakSettings\n\t) {\n\t\tthis.kcAdminClient.setConfig({\n\t\t\tbaseUrl: kcSettings.baseUrl,\n\t\t\trealmName: kcSettings.realmName,\n\t\t});\n\t}\n\n\tpublic async callKcAdminClient(): Promise {\n\t\tawait this.authorizeAccess();\n\t\treturn this.kcAdminClient;\n\t}\n\n\tpublic async testKcConnection(): Promise {\n\t\ttry {\n\t\t\tawait this.kcAdminClient.auth(this.kcSettings.credentials);\n\t\t} catch (err) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic getWellKnownUrl(): string {\n\t\treturn `${this.kcSettings.baseUrl}/realms/${this.kcSettings.realmName}/.well-known/openid-configuration`;\n\t}\n\n\tpublic getAdminUser(): string {\n\t\treturn this.kcSettings.credentials.username;\n\t}\n\n\tpublic getClientId(): string {\n\t\treturn this.kcSettings.clientId;\n\t}\n\n\tpublic async getClientSecret(): Promise {\n\t\tconst kc = await this.callKcAdminClient();\n\t\tconst clientInternalId = (await kc.clients.find({ clientId: this.kcSettings.clientId }))[0]?.id;\n\t\tif (clientInternalId) {\n\t\t\tconst clientSecret = await kc.clients.getClientSecret({ id: clientInternalId });\n\t\t\treturn clientSecret.value ?? '';\n\t\t}\n\t\treturn '';\n\t}\n\n\tpublic async setPasswordPolicy() {\n\t\tconst kc = await this.callKcAdminClient();\n\t\tawait kc.realms.update({ realm: this.kcSettings.realmName }, { passwordPolicy: 'hashIterations(310000)' });\n\t}\n\n\tpublic resetLastAuthorizationTime(): void {\n\t\tthis.lastAuthorizationTime = 0;\n\t}\n\n\tprivate async authorizeAccess() {\n\t\tconst elapsedTimeMilliseconds = new Date().getTime() - this.lastAuthorizationTime;\n\t\tif (elapsedTimeMilliseconds > KeycloakAdministrationService.AUTHORIZATION_TIMEBOX_MS) {\n\t\t\tawait this.kcAdminClient.auth(this.kcSettings.credentials);\n\t\t\tthis.lastAuthorizationTime = new Date().getTime();\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/KeycloakConfiguration.html":{"url":"classes/KeycloakConfiguration.html","title":"class - KeycloakConfiguration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n KeycloakConfiguration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/keycloak-config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n keycloakInputFiles\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n keycloakInputFiles\n \n \n \n \n \n \n Type : IKeycloakConfigurationInputFiles\n\n \n \n \n \n Default value : {\n\t\taccountsFile: './backup/setup/accounts.json',\n\t\tusersFile: './backup/setup/users.json',\n\t}\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/keycloak-config.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IKeycloakConfigurationInputFiles } from './interface/keycloak-configuration-input-files.interface';\n\nexport default class KeycloakConfiguration {\n\tstatic keycloakInputFiles: IKeycloakConfigurationInputFiles = {\n\t\taccountsFile: './backup/setup/accounts.json',\n\t\tusersFile: './backup/setup/users.json',\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/KeycloakConfigurationModule.html":{"url":"modules/KeycloakConfigurationModule.html","title":"module - KeycloakConfigurationModule","body":"\n \n\n\n\n\n Modules\n KeycloakConfigurationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_KeycloakConfigurationModule\n\n\n\ncluster_KeycloakConfigurationModule_providers\n\n\n\ncluster_KeycloakConfigurationModule_imports\n\n\n\ncluster_KeycloakConfigurationModule_exports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nKeycloakConfigurationModule\n\nKeycloakConfigurationModule\n\nKeycloakConfigurationModule -->\n\nAccountModule->KeycloakConfigurationModule\n\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\nKeycloakConfigurationModule -->\n\nConsoleWriterModule->KeycloakConfigurationModule\n\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nKeycloakConfigurationModule -->\n\nEncryptionModule->KeycloakConfigurationModule\n\n\n\n\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationModule\n\nKeycloakConfigurationModule -->\n\nKeycloakAdministrationModule->KeycloakConfigurationModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nKeycloakConfigurationModule -->\n\nLoggerModule->KeycloakConfigurationModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nKeycloakConfigurationModule -->\n\nSystemModule->KeycloakConfigurationModule\n\n\n\n\n\nKeycloakConfigurationService \n\nKeycloakConfigurationService \n\nKeycloakConfigurationService -->\n\nKeycloakConfigurationModule->KeycloakConfigurationService \n\n\n\n\n\nKeycloakConsole \n\nKeycloakConsole \n\nKeycloakConsole -->\n\nKeycloakConfigurationModule->KeycloakConsole \n\n\n\n\n\nKeycloakSeedService \n\nKeycloakSeedService \n\nKeycloakSeedService -->\n\nKeycloakConfigurationModule->KeycloakSeedService \n\n\n\n\n\nKeycloakConfigurationService\n\nKeycloakConfigurationService\n\nKeycloakConfigurationModule -->\n\nKeycloakConfigurationService->KeycloakConfigurationModule\n\n\n\n\n\nKeycloakConfigurationUc\n\nKeycloakConfigurationUc\n\nKeycloakConfigurationModule -->\n\nKeycloakConfigurationUc->KeycloakConfigurationModule\n\n\n\n\n\nKeycloakMigrationService\n\nKeycloakMigrationService\n\nKeycloakConfigurationModule -->\n\nKeycloakMigrationService->KeycloakConfigurationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/keycloak-configuration.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n KeycloakConfigurationService\n \n \n KeycloakConfigurationUc\n \n \n KeycloakMigrationService\n \n \n \n \n Controllers\n \n \n KeycloakManagementController\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n ConsoleWriterModule\n \n \n EncryptionModule\n \n \n KeycloakAdministrationModule\n \n \n LoggerModule\n \n \n SystemModule\n \n \n \n \n Exports\n \n \n KeycloakConfigurationService\n \n \n KeycloakConsole\n \n \n KeycloakSeedService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { ConsoleWriterModule } from '@shared/infra/console';\nimport { AccountModule, SystemModule } from '@src/modules';\nimport { KeycloakAdministrationModule } from '../keycloak-administration/keycloak-administration.module';\nimport { KeycloakConsole } from './console/keycloak-configuration.console';\nimport { KeycloakConfigurationInputFiles } from './interface/keycloak-configuration-input-files.interface';\nimport KeycloakConfiguration from './keycloak-config';\nimport { OidcIdentityProviderMapper } from './mapper/identity-provider.mapper';\nimport { KeycloakConfigurationService } from './service/keycloak-configuration.service';\nimport { KeycloakSeedService } from './service/keycloak-seed.service';\nimport { KeycloakConfigurationUc } from './uc/keycloak-configuration.uc';\nimport { KeycloakManagementController } from './controller/keycloak-configuration.controller';\nimport { KeycloakMigrationService } from './service/keycloak-migration.service';\n\n@Module({\n\timports: [\n\t\tKeycloakAdministrationModule,\n\t\tLoggerModule,\n\t\tEncryptionModule,\n\t\tConsoleWriterModule,\n\t\tSystemModule,\n\t\tAccountModule,\n\t],\n\tcontrollers: [KeycloakManagementController],\n\tproviders: [\n\t\t{\n\t\t\tprovide: KeycloakConfigurationInputFiles,\n\t\t\tuseValue: KeycloakConfiguration.keycloakInputFiles,\n\t\t},\n\t\tOidcIdentityProviderMapper,\n\t\tKeycloakConfigurationUc,\n\t\tKeycloakConfigurationService,\n\t\tKeycloakMigrationService,\n\t\tKeycloakSeedService,\n\t\tKeycloakConsole,\n\t],\n\texports: [KeycloakConsole, KeycloakConfigurationService, KeycloakSeedService],\n})\nexport class KeycloakConfigurationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakConfigurationService.html":{"url":"injectables/KeycloakConfigurationService.html","title":"injectable - KeycloakConfigurationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakConfigurationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n addClientProtocolMappers\n \n \n Public\n Async\n configureBrokerFlows\n \n \n Public\n Async\n configureClient\n \n \n Public\n Async\n configureIdentityProviders\n \n \n Async\n configureRealm\n \n \n Private\n Async\n createIdentityProvider\n \n \n Private\n Async\n createIdpDefaultMapper\n \n \n Private\n Async\n deleteIdentityProvider\n \n \n Private\n getExternalSubClientMapperConfiguration\n \n \n Private\n getIdpMapperConfiguration\n \n \n Private\n selectConfigureAction\n \n \n Private\n Async\n updateIdentityProvider\n \n \n Private\n Async\n updateOrCreateIdpDefaultMapper\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdmin: KeycloakAdministrationService, configService: ConfigService, oidcIdentityProviderMapper: OidcIdentityProviderMapper, systemOidcService: SystemOidcService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdmin\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n oidcIdentityProviderMapper\n \n \n OidcIdentityProviderMapper\n \n \n \n No\n \n \n \n \n systemOidcService\n \n \n SystemOidcService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n addClientProtocolMappers\n \n \n \n \n \n \n \n addClientProtocolMappers(defaultClientInternalId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n defaultClientInternalId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n configureBrokerFlows\n \n \n \n \n \n \n \n configureBrokerFlows()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:34\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n configureClient\n \n \n \n \n \n \n \n configureClient()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:108\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n configureIdentityProviders\n \n \n \n \n \n \n \n configureIdentityProviders()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:128\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n configureRealm\n \n \n \n \n \n \n \n configureRealm()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:155\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createIdentityProvider\n \n \n \n \n \n \n \n createIdentityProvider(oidcConfig: OidcConfigDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:214\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfig\n \n OidcConfigDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createIdpDefaultMapper\n \n \n \n \n \n \n \n createIdpDefaultMapper(idpAlias: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:254\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idpAlias\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteIdentityProvider\n \n \n \n \n \n \n \n deleteIdentityProvider(alias: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:235\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n alias\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getExternalSubClientMapperConfiguration\n \n \n \n \n \n \n \n getExternalSubClientMapperConfiguration()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:277\n \n \n\n\n \n \n\n \n Returns : ProtocolMapperRepresentation\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n getIdpMapperConfiguration\n \n \n \n \n \n \n \n getIdpMapperConfiguration(idpAlias: string, id?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:262\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idpAlias\n \n string\n \n\n \n No\n \n\n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : IdentityProviderMapperRepresentation\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n selectConfigureAction\n \n \n \n \n \n \n \n selectConfigureAction(newConfigs: OidcConfigDto[], oldConfigs: IdentityProviderRepresentation[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:191\n \n \n\n\n \n \n decides for each system if it needs to be added, updated or deleted in keycloak\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newConfigs\n \n OidcConfigDto[]\n \n\n \n No\n \n\n\n \n \n oldConfigs\n \n IdentityProviderRepresentation[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : {}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateIdentityProvider\n \n \n \n \n \n \n \n updateIdentityProvider(oidcConfig: OidcConfigDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:224\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfig\n \n OidcConfigDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateOrCreateIdpDefaultMapper\n \n \n \n \n \n \n \n updateOrCreateIdpDefaultMapper(idpAlias: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:240\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idpAlias\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import AuthenticationExecutionInfoRepresentation from '@keycloak/keycloak-admin-client/lib/defs/authenticationExecutionInfoRepresentation';\nimport AuthenticationFlowRepresentation from '@keycloak/keycloak-admin-client/lib/defs/authenticationFlowRepresentation';\nimport ClientRepresentation from '@keycloak/keycloak-admin-client/lib/defs/clientRepresentation';\nimport IdentityProviderMapperRepresentation from '@keycloak/keycloak-admin-client/lib/defs/identityProviderMapperRepresentation';\nimport IdentityProviderRepresentation from '@keycloak/keycloak-admin-client/lib/defs/identityProviderRepresentation';\nimport ProtocolMapperRepresentation from '@keycloak/keycloak-admin-client/lib/defs/protocolMapperRepresentation';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { IServerConfig } from '@src/modules/server/server.config';\nimport { OidcConfigDto } from '@src/modules/system/service';\nimport { SystemOidcService } from '@src/modules/system/service/system-oidc.service';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\nimport { OidcIdentityProviderMapper } from '../mapper/identity-provider.mapper';\n\nenum ConfigureAction {\n\tCREATE = 'create',\n\tUPDATE = 'update',\n\tDELETE = 'delete',\n}\n\nconst flowAlias = 'Direct Broker Flow';\nconst oidcUserAttributeMapperName = 'OIDC User Attribute Mapper';\nconst oidcExternalSubMapperName = 'External Sub Mapper';\n\n@Injectable()\nexport class KeycloakConfigurationService {\n\tconstructor(\n\t\tprivate readonly kcAdmin: KeycloakAdministrationService,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly oidcIdentityProviderMapper: OidcIdentityProviderMapper,\n\t\tprivate readonly systemOidcService: SystemOidcService\n\t) {}\n\n\tpublic async configureBrokerFlows(): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst executionProviders = ['idp-create-user-if-unique', 'idp-auto-link'];\n\t\tconst getFlowsRequest = kc.realms.makeRequest({\n\t\t\tmethod: 'GET',\n\t\t\tpath: '/{realmName}/authentication/flows',\n\t\t\turlParamKeys: ['realmName'],\n\t\t});\n\t\tconst flows = await getFlowsRequest({ realmName: kc.realmName });\n\t\tconst flow = flows.find((tempFlow) => tempFlow.alias === flowAlias);\n\t\tif (flow && flow.id) {\n\t\t\treturn;\n\t\t}\n\t\tconst createFlowRequest = kc.realms.makeRequest({\n\t\t\tmethod: 'POST',\n\t\t\tpath: '/{realmName}/authentication/flows',\n\t\t\turlParamKeys: ['realmName'],\n\t\t});\n\t\tconst getFlowExecutionsRequest = kc.realms.makeRequest({\n\t\t\tmethod: 'GET',\n\t\t\tpath: '/{realmName}/authentication/flows/{flowAlias}/executions',\n\t\t\turlParamKeys: ['realmName', 'flowAlias'],\n\t\t});\n\t\tconst addExecutionRequest = kc.realms.makeRequest(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\tpath: '/{realmName}/authentication/flows/{flowAlias}/executions/execution',\n\t\t\t\turlParamKeys: ['realmName', 'flowAlias'],\n\t\t\t}\n\t\t);\n\t\tconst updateExecutionRequest = kc.realms.makeRequest({\n\t\t\tmethod: 'PUT',\n\t\t\tpath: '/{realmName}/authentication/flows/{flowAlias}/executions',\n\t\t\turlParamKeys: ['realmName', 'flowAlias'],\n\t\t});\n\t\tawait createFlowRequest({\n\t\t\trealmName: kc.realmName,\n\t\t\talias: flowAlias,\n\t\t\tdescription: 'First broker login which automatically creates or maps accounts.',\n\t\t\tproviderId: 'basic-flow',\n\t\t\ttopLevel: true,\n\t\t\tbuiltIn: false,\n\t\t});\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const executionProvider of executionProviders) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tawait addExecutionRequest({\n\t\t\t\trealmName: kc.realmName,\n\t\t\t\tflowAlias,\n\t\t\t\tprovider: executionProvider,\n\t\t\t});\n\t\t}\n\t\tconst executions = await getFlowExecutionsRequest({\n\t\t\trealmName: kc.realmName,\n\t\t\tflowAlias,\n\t\t});\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const execution of executions) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tawait updateExecutionRequest({\n\t\t\t\trealmName: kc.realmName,\n\t\t\t\tflowAlias,\n\t\t\t\tid: execution.id,\n\t\t\t\trequirement: 'ALTERNATIVE',\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic async configureClient(): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst scDomain = this.configService.get('SC_DOMAIN');\n\t\tconst redirectUri = scDomain === 'localhost' ? 'http://localhost:3030/' : `https://${scDomain}/`;\n\t\tconst cr: ClientRepresentation = {\n\t\t\tclientId: this.kcAdmin.getClientId(),\n\t\t\tenabled: true,\n\t\t\tprotocol: 'openid-connect',\n\t\t\tpublicClient: false,\n\t\t\tredirectUris: [`${redirectUri}*`],\n\t\t};\n\t\tlet defaultClientInternalId = (await kc.clients.find({ clientId: this.kcAdmin.getClientId() }))[0]?.id;\n\t\tif (!defaultClientInternalId) {\n\t\t\t({ id: defaultClientInternalId } = await kc.clients.create(cr));\n\t\t} else {\n\t\t\tawait kc.clients.update({ id: defaultClientInternalId }, cr);\n\t\t}\n\t\tawait this.addClientProtocolMappers(defaultClientInternalId);\n\t}\n\n\tpublic async configureIdentityProviders(): Promise {\n\t\tlet count = 0;\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst oldConfigs = await kc.identityProviders.find();\n\t\tconst newConfigs = await this.systemOidcService.findAll();\n\t\tconst configureActions = this.selectConfigureAction(newConfigs, oldConfigs);\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const configureAction of configureActions) {\n\t\t\tif (configureAction.action === ConfigureAction.CREATE) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tawait this.createIdentityProvider(configureAction.config);\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tif (configureAction.action === ConfigureAction.UPDATE) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tawait this.updateIdentityProvider(configureAction.config);\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tif (configureAction.action === ConfigureAction.DELETE) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tawait this.deleteIdentityProvider(configureAction.alias);\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n\n\tasync configureRealm(): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tawait kc.realms.update(\n\t\t\t{\n\t\t\t\trealm: kc.realmName,\n\t\t\t},\n\t\t\t{\n\t\t\t\teditUsernameAllowed: true,\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate async addClientProtocolMappers(defaultClientInternalId: string) {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst allMappers = await kc.clients.listProtocolMappers({ id: defaultClientInternalId });\n\t\tconst defaultMapper = allMappers.find((mapper) => mapper.name === oidcExternalSubMapperName);\n\t\tif (defaultMapper?.id) {\n\t\t\tawait kc.clients.updateProtocolMapper(\n\t\t\t\t{ id: defaultClientInternalId, mapperId: defaultMapper?.id },\n\t\t\t\t{ ...this.getExternalSubClientMapperConfiguration(), id: defaultMapper?.id }\n\t\t\t);\n\t\t} else {\n\t\t\tawait kc.clients.addProtocolMapper(\n\t\t\t\t{ id: defaultClientInternalId },\n\t\t\t\tthis.getExternalSubClientMapperConfiguration()\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * decides for each system if it needs to be added, updated or deleted in keycloak\n\t *\n\t * @param newConfigs\n\t * @param oldConfigs\n\t * @returns\n\t */\n\tprivate selectConfigureAction(newConfigs: OidcConfigDto[], oldConfigs: IdentityProviderRepresentation[]) {\n\t\tconst result = [] as (\n\t\t\t| { action: ConfigureAction.CREATE; config: OidcConfigDto }\n\t\t\t| { action: ConfigureAction.UPDATE; config: OidcConfigDto }\n\t\t\t| { action: ConfigureAction.DELETE; alias: string }\n\t\t)[];\n\t\t// updating or creating configs\n\t\tnewConfigs.forEach((newConfig) => {\n\t\t\tif (oldConfigs.some((oldConfig) => oldConfig.alias === newConfig.idpHint)) {\n\t\t\t\tresult.push({ action: ConfigureAction.UPDATE, config: newConfig });\n\t\t\t} else {\n\t\t\t\tresult.push({ action: ConfigureAction.CREATE, config: newConfig });\n\t\t\t}\n\t\t});\n\t\t// deleting configs\n\t\toldConfigs.forEach((oldConfig) => {\n\t\t\tif (!newConfigs.some((newConfig) => newConfig.idpHint === oldConfig.alias)) {\n\t\t\t\tresult.push({ action: ConfigureAction.DELETE, alias: oldConfig.alias as string });\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tprivate async createIdentityProvider(oidcConfig: OidcConfigDto): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tif (oidcConfig && oidcConfig?.idpHint) {\n\t\t\tawait kc.identityProviders.create(\n\t\t\t\tthis.oidcIdentityProviderMapper.mapToKeycloakIdentityProvider(oidcConfig, flowAlias)\n\t\t\t);\n\t\t\tawait this.createIdpDefaultMapper(oidcConfig.idpHint);\n\t\t}\n\t}\n\n\tprivate async updateIdentityProvider(oidcConfig: OidcConfigDto): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tif (oidcConfig && oidcConfig?.idpHint) {\n\t\t\tawait kc.identityProviders.update(\n\t\t\t\t{ alias: oidcConfig.idpHint },\n\t\t\t\tthis.oidcIdentityProviderMapper.mapToKeycloakIdentityProvider(oidcConfig, flowAlias)\n\t\t\t);\n\t\t\tawait this.updateOrCreateIdpDefaultMapper(oidcConfig.idpHint);\n\t\t}\n\t}\n\n\tprivate async deleteIdentityProvider(alias: string): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tawait kc.identityProviders.del({ alias });\n\t}\n\n\tprivate async updateOrCreateIdpDefaultMapper(idpAlias: string) {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst allMappers = await kc.identityProviders.findMappers({ alias: idpAlias });\n\t\tconst defaultMapper = allMappers.find((mapper) => mapper.name === oidcUserAttributeMapperName);\n\t\tif (defaultMapper?.id) {\n\t\t\tawait kc.identityProviders.updateMapper(\n\t\t\t\t{ alias: idpAlias, id: defaultMapper.id },\n\t\t\t\tthis.getIdpMapperConfiguration(idpAlias, defaultMapper.id)\n\t\t\t);\n\t\t} else {\n\t\t\tawait this.createIdpDefaultMapper(idpAlias);\n\t\t}\n\t}\n\n\tprivate async createIdpDefaultMapper(idpAlias: string) {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tawait kc.identityProviders.createMapper({\n\t\t\talias: idpAlias,\n\t\t\tidentityProviderMapper: this.getIdpMapperConfiguration(idpAlias),\n\t\t});\n\t}\n\n\tprivate getIdpMapperConfiguration(idpAlias: string, id?: string): IdentityProviderMapperRepresentation {\n\t\treturn {\n\t\t\tid,\n\t\t\tname: oidcUserAttributeMapperName,\n\t\t\tidentityProviderAlias: idpAlias,\n\t\t\tidentityProviderMapper: 'oidc-user-attribute-idp-mapper',\n\t\t\tconfig: {\n\t\t\t\tsyncMode: 'FORCE',\n\t\t\t\t'are.claim.values.regex': false,\n\t\t\t\tclaim: 'sub',\n\t\t\t\t'user.attribute': 'external_sub',\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate getExternalSubClientMapperConfiguration(): ProtocolMapperRepresentation {\n\t\treturn {\n\t\t\tname: oidcExternalSubMapperName,\n\t\t\tprotocol: 'openid-connect',\n\t\t\tprotocolMapper: 'oidc-usermodel-attribute-mapper',\n\t\t\tconfig: {\n\t\t\t\t'aggregate.attrs': false,\n\t\t\t\t'userinfo.token.claim': true,\n\t\t\t\tmultivalued: false,\n\t\t\t\t'user.attribute': 'external_sub',\n\t\t\t\t'id.token.claim': true,\n\t\t\t\t'access.token.claim': true,\n\t\t\t\t'claim.name': 'external_sub',\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakConfigurationUc.html":{"url":"injectables/KeycloakConfigurationUc.html","title":"injectable - KeycloakConfigurationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakConfigurationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n check\n \n \n Public\n Async\n clean\n \n \n Async\n configure\n \n \n Public\n Async\n migrate\n \n \n Public\n Async\n seed\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdmin: KeycloakAdministrationService, keycloakConfigService: KeycloakConfigurationService, keycloakSeedService: KeycloakSeedService, keycloakMigrationService: KeycloakMigrationService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdmin\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n keycloakConfigService\n \n \n KeycloakConfigurationService\n \n \n \n No\n \n \n \n \n keycloakSeedService\n \n \n KeycloakSeedService\n \n \n \n No\n \n \n \n \n keycloakMigrationService\n \n \n KeycloakMigrationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n check\n \n \n \n \n \n \n \n check()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:16\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n clean\n \n \n \n \n \n \n \n clean()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:20\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n configure\n \n \n \n \n \n \n \n configure()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:32\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n migrate\n \n \n \n \n \n \n \n migrate(skip?: number, verbose?: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n skip\n \n number\n \n\n \n Yes\n \n\n\n \n \n verbose\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n seed\n \n \n \n \n \n \n \n seed()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:24\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\nimport { KeycloakConfigurationService } from '../service/keycloak-configuration.service';\nimport { KeycloakSeedService } from '../service/keycloak-seed.service';\nimport { KeycloakMigrationService } from '../service/keycloak-migration.service';\n\n@Injectable()\nexport class KeycloakConfigurationUc {\n\tconstructor(\n\t\tprivate readonly kcAdmin: KeycloakAdministrationService,\n\t\tprivate readonly keycloakConfigService: KeycloakConfigurationService,\n\t\tprivate readonly keycloakSeedService: KeycloakSeedService,\n\t\tprivate readonly keycloakMigrationService: KeycloakMigrationService\n\t) {}\n\n\tpublic async check(): Promise {\n\t\treturn this.kcAdmin.testKcConnection();\n\t}\n\n\tpublic async clean(): Promise {\n\t\treturn this.keycloakSeedService.clean();\n\t}\n\n\tpublic async seed(): Promise {\n\t\treturn this.keycloakSeedService.seed();\n\t}\n\n\tpublic async migrate(skip?: number, verbose?: boolean): Promise {\n\t\treturn this.keycloakMigrationService.migrate(skip, verbose);\n\t}\n\n\tasync configure(): Promise {\n\t\tawait this.kcAdmin.setPasswordPolicy();\n\t\tawait this.keycloakConfigService.configureClient();\n\t\tawait this.keycloakConfigService.configureBrokerFlows();\n\t\tawait this.keycloakConfigService.configureRealm();\n\t\treturn this.keycloakConfigService.configureIdentityProviders();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/KeycloakConsole.html":{"url":"classes/KeycloakConsole.html","title":"class - KeycloakConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n KeycloakConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n retryFlags\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n check\n \n \n \n Async\n clean\n \n \n \n Async\n configure\n \n \n Private\n delay\n \n \n \n Async\n migrate\n \n \n Private\n Async\n repeatCommand\n \n \n \n Async\n seed\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(console: ConsoleWriterService, keycloakConfigurationUc: KeycloakConfigurationUc, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n console\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n keycloakConfigurationUc\n \n \n KeycloakConfigurationUc\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n retryFlags\n \n \n \n \n \n \n Type : CommandOption[]\n\n \n \n \n \n Default value : [\n\t\t{\n\t\t\tflags: '-rc, --retry-count ',\n\t\t\tdescription: 'If the command fails, it will be retried this number of times. Default is no retry.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 1,\n\t\t},\n\t\t{\n\t\t\tflags: '-rd, --retry-delay ',\n\t\t\tdescription: 'If \"retry\" is active, this delay is used between each retry. Default is 10 seconds.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 10,\n\t\t},\n\t]\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:28\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n check\n \n \n \n \n \n \n \n check()\n \n \n\n \n \n Decorators : \n \n @Command({command: 'check', description: 'Test the connection to the IDM.'})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:47\n \n \n\n\n \n \n For local development. Checks if connection to IDM is working.\n\n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n clean\n \n \n \n \n \n \n \n clean(options: IRetryOptions)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'clean', description: 'Remove all users from the IDM.', options: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:65\n \n \n\n\n \n \n For local development. Cleans user from IDM\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n IRetryOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n configure\n \n \n \n \n \n \n \n configure(options: IRetryOptions)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'configure', description: 'Configures Keycloak identity providers.', options: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:109\n \n \n\n\n \n \n Used in production and for local development to transfer configuration to keycloak.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n IRetryOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n delay\n \n \n \n \n \n \n \n delay(ms: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:189\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ms\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrate\n \n \n \n \n \n \n \n migrate(options)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'migrate', description: 'Add all database users to the IDM.', options: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:144\n \n \n\n\n \n \n For migration purpose. Moves all database accounts to the IDM\n\n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n options\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n repeatCommand\n \n \n \n \n \n \n \n repeatCommand(commandName: string, command: () => void, count: number, delay: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:160\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n commandName\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n command\n \n function\n \n\n \n No\n \n\n \n \n\n \n \n count\n \n number\n \n\n \n No\n \n\n \n 1\n \n\n \n \n delay\n \n number\n \n\n \n No\n \n\n \n 10\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n seed\n \n \n \n \n \n \n \n seed(options: IRetryOptions)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'seed', description: 'Add all seed users to the IDM.', options: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:87\n \n \n\n\n \n \n For local development. Seeds user into IDM\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n IRetryOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Command, CommandOption, Console } from 'nestjs-console';\nimport { KeycloakConfigurationUc } from '../uc/keycloak-configuration.uc';\n\nconst defaultError = new Error('IDM is not reachable or authentication failed.');\n\ninterface IRetryOptions {\n\tretryCount?: number;\n\tretryDelay?: number;\n}\n\ninterface IMigrationOptions {\n\tskip?: number;\n\tquery?: string;\n\tverbose?: boolean;\n}\n@Console({ command: 'idm', description: 'Prefixes all Identity Management (IDM) related console commands.' })\nexport class KeycloakConsole {\n\tconstructor(\n\t\tprivate readonly console: ConsoleWriterService,\n\t\tprivate readonly keycloakConfigurationUc: KeycloakConfigurationUc,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(KeycloakConsole.name);\n\t}\n\n\tstatic retryFlags: CommandOption[] = [\n\t\t{\n\t\t\tflags: '-rc, --retry-count ',\n\t\t\tdescription: 'If the command fails, it will be retried this number of times. Default is no retry.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 1,\n\t\t},\n\t\t{\n\t\t\tflags: '-rd, --retry-delay ',\n\t\t\tdescription: 'If \"retry\" is active, this delay is used between each retry. Default is 10 seconds.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 10,\n\t\t},\n\t];\n\n\t/**\n\t * For local development. Checks if connection to IDM is working.\n\t */\n\t@Command({ command: 'check', description: 'Test the connection to the IDM.' })\n\tasync check(): Promise {\n\t\tif (await this.keycloakConfigurationUc.check()) {\n\t\t\tthis.console.info('Connected to IDM');\n\t\t} else {\n\t\t\tthrow defaultError;\n\t\t}\n\t}\n\n\t/**\n\t * For local development. Cleans user from IDM\n\t *\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'clean',\n\t\tdescription: 'Remove all users from the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync clean(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'clean',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.clean();\n\t\t\t\tthis.console.info(`Cleaned ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For local development. Seeds user into IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'seed',\n\t\tdescription: 'Add all seed users to the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync seed(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'seed',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.seed();\n\t\t\t\tthis.console.info(`Seeded ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * Used in production and for local development to transfer configuration to keycloak.\n\t *\n\t */\n\t@Command({\n\t\tcommand: 'configure',\n\t\tdescription: 'Configures Keycloak identity providers.',\n\t\toptions: [...KeycloakConsole.retryFlags],\n\t})\n\tasync configure(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'configure',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.configure();\n\t\t\t\tthis.console.info(`Configured ${count} identity provider(s).`);\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For migration purpose. Moves all database accounts to the IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'migrate',\n\t\tdescription: 'Add all database users to the IDM.',\n\t\toptions: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '-s, --skip',\n\t\t\t\tdescription: 'Skip the first \"s\" accounts during migration. Default 0.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: undefined,\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-v, --verbose',\n\t\t\t\tdescription: 'Log all events. Default is false.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: false,\n\t\t\t},\n\t\t],\n\t})\n\tasync migrate(options: IRetryOptions & IMigrationOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'migrate',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.migrate(\n\t\t\t\t\toptions.skip ? Number(options.skip) : undefined,\n\t\t\t\t\toptions.verbose ? Boolean(options.verbose) : false\n\t\t\t\t);\n\t\t\t\tthis.console.info(`Migrated ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\tprivate async repeatCommand(commandName: string, command: () => Promise, count = 1, delay = 10): Promise {\n\t\tlet repetitions = 0;\n\t\tlet error = new Error('error could be thrown if count is {\n\t\t\tsetTimeout(resolve, ms);\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakIdentityManagementOauthService.html":{"url":"injectables/KeycloakIdentityManagementOauthService.html","title":"injectable - KeycloakIdentityManagementOauthService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakIdentityManagementOauthService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management-oauth.service.ts\n \n\n\n\n \n Extends\n \n \n IdentityManagementOauthService\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _oauthConfigCache\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getOauthConfig\n \n \n Async\n isOauthConfigAvailable\n \n \n resetOauthConfigCache\n \n \n Async\n resourceOwnerPasswordGrant\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdminService: KeycloakAdministrationService, configService: ConfigService, httpService: HttpService, oAuthEncryptionService: IEncryptionService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management-oauth.service.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdminService\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n oAuthEncryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getOauthConfig\n \n \n \n \n \n \n \n getOauthConfig()\n \n \n\n\n \n \n Inherited from IdentityManagementOauthService\n\n \n \n \n \n Defined in IdentityManagementOauthService:24\n\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n isOauthConfigAvailable\n \n \n \n \n \n \n \n isOauthConfigAvailable()\n \n \n\n\n \n \n Inherited from IdentityManagementOauthService\n\n \n \n \n \n Defined in IdentityManagementOauthService:54\n\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n resetOauthConfigCache\n \n \n \n \n \n \nresetOauthConfigCache()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management-oauth.service.ts:50\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n resourceOwnerPasswordGrant\n \n \n \n \n \n \n \n resourceOwnerPasswordGrant(username: string, password: string)\n \n \n\n\n \n \n Inherited from IdentityManagementOauthService\n\n \n \n \n \n Defined in IdentityManagementOauthService:61\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _oauthConfigCache\n \n \n \n \n \n \n Type : OauthConfigDto | undefined\n\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management-oauth.service.ts:13\n \n \n\n\n \n \n\n\n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { OauthConfigDto } from '@src/modules/system/service';\nimport qs from 'qs';\nimport { lastValueFrom } from 'rxjs';\nimport { IdentityManagementOauthService } from '../../identity-management-oauth.service';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\n\n@Injectable()\nexport class KeycloakIdentityManagementOauthService extends IdentityManagementOauthService {\n\tprivate _oauthConfigCache: OauthConfigDto | undefined;\n\n\tconstructor(\n\t\tprivate readonly kcAdminService: KeycloakAdministrationService,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly httpService: HttpService,\n\t\t@Inject(DefaultEncryptionService) private readonly oAuthEncryptionService: IEncryptionService\n\t) {\n\t\tsuper();\n\t}\n\n\tasync getOauthConfig(): Promise {\n\t\tif (this._oauthConfigCache) {\n\t\t\treturn this._oauthConfigCache;\n\t\t}\n\t\tconst wellKnownUrl = this.kcAdminService.getWellKnownUrl();\n\t\tconst response = (await lastValueFrom(this.httpService.get>(wellKnownUrl))).data;\n\t\tconst scDomain = this.configService.get('SC_DOMAIN') || '';\n\t\tconst redirectUri =\n\t\t\tscDomain === 'localhost' ? 'http://localhost:3030/api/v3/sso/oauth/' : `https://${scDomain}/api/v3/sso/oauth/`;\n\t\tthis._oauthConfigCache = new OauthConfigDto({\n\t\t\tclientId: this.kcAdminService.getClientId(),\n\t\t\tclientSecret: this.oAuthEncryptionService.encrypt(await this.kcAdminService.getClientSecret()),\n\t\t\tprovider: 'oauth',\n\t\t\tredirectUri,\n\t\t\tresponseType: 'code',\n\t\t\tgrantType: 'authorization_code',\n\t\t\tscope: 'openid profile email',\n\t\t\tissuer: response.issuer as string,\n\t\t\ttokenEndpoint: response.token_endpoint as string,\n\t\t\tauthEndpoint: response.authorization_endpoint as string,\n\t\t\tlogoutEndpoint: response.end_session_endpoint as string,\n\t\t\tjwksEndpoint: response.jwks_uri as string,\n\t\t});\n\t\treturn this._oauthConfigCache;\n\t}\n\n\tresetOauthConfigCache(): void {\n\t\tthis._oauthConfigCache = undefined;\n\t}\n\n\tasync isOauthConfigAvailable(): Promise {\n\t\tif (this._oauthConfigCache) {\n\t\t\treturn true;\n\t\t}\n\t\treturn this.kcAdminService.testKcConnection();\n\t}\n\n\tasync resourceOwnerPasswordGrant(username: string, password: string): Promise {\n\t\tconst { clientId, clientSecret, tokenEndpoint } = await this.getOauthConfig();\n\t\tconst data = {\n\t\t\tusername,\n\t\t\tpassword,\n\t\t\tgrant_type: 'password',\n\t\t\tclient_id: clientId,\n\t\t\tclient_secret: this.oAuthEncryptionService.decrypt(clientSecret),\n\t\t};\n\t\ttry {\n\t\t\tconst response = await lastValueFrom(\n\t\t\t\tthis.httpService.request({\n\t\t\t\t\tmethod: 'post',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\n\t\t\t\t\t},\n\t\t\t\t\turl: tokenEndpoint,\n\t\t\t\t\tdata: qs.stringify(data),\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn response.data.access_token;\n\t\t} catch (err) {\n\t\t\treturn undefined;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakIdentityManagementService.html":{"url":"injectables/KeycloakIdentityManagementService.html","title":"injectable - KeycloakIdentityManagementService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakIdentityManagementService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts\n \n\n\n\n \n Extends\n \n \n IdentityManagementService\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createAccount\n \n \n Async\n deleteAccountById\n \n \n Private\n extractAccount\n \n \n Private\n extractAttributeValue\n \n \n Async\n findAccountByDbcAccountId\n \n \n Async\n findAccountByDbcUserId\n \n \n Async\n findAccountById\n \n \n Async\n findAccountsByUsername\n \n \n Async\n getAllAccounts\n \n \n Async\n getUserAttribute\n \n \n Async\n setUserAttribute\n \n \n Async\n updateAccount\n \n \n Async\n updateAccountPassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Public\n constructor(kcAdminClient: KeycloakAdministrationService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdminClient\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createAccount\n \n \n \n \n \n \n \n createAccount(account: IdmAccount, password?: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IdmAccount\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteAccountById\n \n \n \n \n \n \n \n deleteAccountById(id: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:131\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n extractAccount\n \n \n \n \n \n \n \n extractAccount(user: UserRepresentation)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts:170\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserRepresentation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IdmAccount\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n extractAttributeValue\n \n \n \n \n \n \n \n extractAttributeValue(value)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts:186\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n value\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountByDbcAccountId\n \n \n \n \n \n \n \n findAccountByDbcAccountId(accountDbcAccountId: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDbcAccountId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountByDbcUserId\n \n \n \n \n \n \n \n findAccountByDbcUserId(accountDbcUserId: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDbcUserId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountById\n \n \n \n \n \n \n \n findAccountById(id: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:76\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountsByUsername\n \n \n \n \n \n \n \n findAccountsByUsername(username: string, options?: SearchOptions)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:113\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n options\n \n SearchOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getAllAccounts\n \n \n \n \n \n \n \n getAllAccounts()\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:126\n\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserAttribute\n \n \n \n \n \n \n \n getUserAttribute(userId: string, attributeName: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:136\n\n \n \n\n \n \n Type parameters :\n \n TValue\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n attributeName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setUserAttribute\n \n \n \n \n \n \n \n setUserAttribute(userId: string, attributeName: string, attributeValue: TValue)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:152\n\n \n \n\n \n \n Type parameters :\n \n TValue\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n attributeName\n \n string\n \n\n \n No\n \n\n\n \n \n attributeValue\n \n TValue\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateAccount\n \n \n \n \n \n \n \n updateAccount(id: string, account: IdmAccountUpdate)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:46\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n account\n \n IdmAccountUpdate\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateAccountPassword\n \n \n \n \n \n \n \n updateAccountPassword(id: string, password: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:62\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation';\nimport { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport { Counted, IdmAccount, IdmAccountUpdate } from '@shared/domain';\nimport { IdentityManagementService, SearchOptions } from '../../identity-management.service';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\n\n@Injectable()\nexport class KeycloakIdentityManagementService extends IdentityManagementService {\n\tpublic constructor(private readonly kcAdminClient: KeycloakAdministrationService) {\n\t\tsuper();\n\t}\n\n\tasync createAccount(account: IdmAccount, password?: string): Promise {\n\t\tconst kc = await this.kcAdminClient.callKcAdminClient();\n\t\tconst id = await kc.users.create({\n\t\t\tusername: account.username,\n\t\t\temail: account.email,\n\t\t\tfirstName: account.firstName,\n\t\t\tlastName: account.lastName,\n\t\t\tenabled: true,\n\t\t\tattributes: {\n\t\t\t\tdbcAccountId: account.attDbcAccountId,\n\t\t\t\tdbcUserId: account.attDbcUserId,\n\t\t\t\tdbcSystemId: account.attDbcSystemId,\n\t\t\t},\n\t\t});\n\t\tif (id && password) {\n\t\t\ttry {\n\t\t\t\tawait kc.users.resetPassword({\n\t\t\t\t\tid: id.id,\n\t\t\t\t\tcredential: {\n\t\t\t\t\t\ttemporary: false,\n\t\t\t\t\t\ttype: 'password',\n\t\t\t\t\t\tvalue: password,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tawait kc.users.del(id);\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\t\treturn id.id;\n\t}\n\n\tasync updateAccount(id: string, account: IdmAccountUpdate): Promise {\n\t\tawait (\n\t\t\tawait this.kcAdminClient.callKcAdminClient()\n\t\t).users.update(\n\t\t\t{ id },\n\t\t\t{\n\t\t\t\tusername: account.username,\n\t\t\t\temail: account.email,\n\t\t\t\tfirstName: account.firstName,\n\t\t\t\tlastName: account.lastName,\n\t\t\t\tenabled: true,\n\t\t\t}\n\t\t);\n\t\treturn id;\n\t}\n\n\tasync updateAccountPassword(id: string, password: string): Promise {\n\t\tawait (\n\t\t\tawait this.kcAdminClient.callKcAdminClient()\n\t\t).users.resetPassword({\n\t\t\tid,\n\t\t\tcredential: {\n\t\t\t\ttemporary: false,\n\t\t\t\ttype: 'password',\n\t\t\t\tvalue: password,\n\t\t\t},\n\t\t});\n\t\treturn id;\n\t}\n\n\tasync findAccountById(id: string): Promise {\n\t\tconst keycloakUser = await (await this.kcAdminClient.callKcAdminClient()).users.findOne({ id });\n\t\tif (!keycloakUser) {\n\t\t\tthrow new Error(`Account '${id}' not found`);\n\t\t}\n\t\treturn this.extractAccount(keycloakUser);\n\t}\n\n\tasync findAccountByDbcAccountId(accountDbcAccountId: string): Promise {\n\t\tconst keycloakUsers = await (\n\t\t\tawait this.kcAdminClient.callKcAdminClient()\n\t\t).users.find({ q: `dbcAccountId:${accountDbcAccountId} }` });\n\t\tif (keycloakUsers.length > 1) {\n\t\t\tthrow new Error('Multiple accounts for the same id!');\n\t\t}\n\t\tif (keycloakUsers.length === 0) {\n\t\t\tthrow new Error(`Account '${accountDbcAccountId}' not found`);\n\t\t}\n\n\t\treturn this.extractAccount(keycloakUsers[0]);\n\t}\n\n\tasync findAccountByDbcUserId(accountDbcUserId: string): Promise {\n\t\tconst keycloakUsers = await (\n\t\t\tawait this.kcAdminClient.callKcAdminClient()\n\t\t).users.find({ q: `dbcUserId:${accountDbcUserId} }` });\n\n\t\tif (keycloakUsers.length > 1) {\n\t\t\tthrow new Error('Multiple accounts for the same id!');\n\t\t}\n\t\tif (keycloakUsers.length === 0) {\n\t\t\tthrow new Error(`Account '${accountDbcUserId}' not found`);\n\t\t}\n\n\t\treturn this.extractAccount(keycloakUsers[0]);\n\t}\n\n\tasync findAccountsByUsername(username: string, options?: SearchOptions): Promise> {\n\t\tconst kc = await this.kcAdminClient.callKcAdminClient();\n\t\tconst total = await kc.users.count({ username });\n\t\tconst results = await kc.users.find({\n\t\t\tusername,\n\t\t\texact: options?.exact,\n\t\t\tfirst: options?.skip,\n\t\t\tmax: options?.limit,\n\t\t});\n\t\tconst accounts = results.map((account) => this.extractAccount(account));\n\t\treturn [accounts, total];\n\t}\n\n\tasync getAllAccounts(): Promise {\n\t\tconst keycloakUsers = await (await this.kcAdminClient.callKcAdminClient()).users.find();\n\t\treturn keycloakUsers.map((user: UserRepresentation) => this.extractAccount(user));\n\t}\n\n\tasync deleteAccountById(id: string): Promise {\n\t\tawait (await this.kcAdminClient.callKcAdminClient()).users.del({ id });\n\t\treturn id;\n\t}\n\n\tasync getUserAttribute(\n\t\tuserId: string,\n\t\tattributeName: string\n\t): Promise {\n\t\tconst kc = await this.kcAdminClient.callKcAdminClient();\n\t\tconst user = await kc.users.findOne({ id: userId });\n\t\tif (!user) {\n\t\t\tthrow new EntityNotFoundError(`User '${userId}' not found`);\n\t\t}\n\t\tif (user.attributes && user.attributes[attributeName] && Array.isArray(user.attributes[attributeName])) {\n\t\t\tconst [value] = (user.attributes[attributeName] as TValue[]) || null;\n\t\t\treturn value;\n\t\t}\n\t\treturn null;\n\t}\n\n\tasync setUserAttribute(\n\t\tuserId: string,\n\t\tattributeName: string,\n\t\tattributeValue: TValue\n\t): Promise {\n\t\tconst kc = await this.kcAdminClient.callKcAdminClient();\n\t\tconst user = await kc.users.findOne({ id: userId });\n\t\tif (!user) {\n\t\t\tthrow new EntityNotFoundError(`User '${userId}' not found`);\n\t\t}\n\t\tif (user.attributes) {\n\t\t\tuser.attributes[attributeName] = attributeValue;\n\t\t} else {\n\t\t\tuser.attributes = { [attributeName]: attributeValue };\n\t\t}\n\t\tawait kc.users.update({ id: userId }, user);\n\t}\n\n\tprivate extractAccount(user: UserRepresentation): IdmAccount {\n\t\tconst ret: IdmAccount = {\n\t\t\tid: user.id ?? '',\n\t\t\tusername: user.username,\n\t\t\temail: user.email,\n\t\t\tfirstName: user.firstName,\n\t\t\tlastName: user.lastName,\n\t\t\tcreatedDate: user.createdTimestamp ? new Date(user.createdTimestamp) : undefined,\n\t\t};\n\t\tret.attDbcSystemId = this.extractAttributeValue(user.attributes?.dbcSystemId);\n\t\tret.attDbcUserId = this.extractAttributeValue(user.attributes?.dbcUserId);\n\t\tret.attDbcAccountId = this.extractAttributeValue(user.attributes?.dbcAccountId);\n\n\t\treturn ret;\n\t}\n\n\tprivate extractAttributeValue(value: unknown): string {\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value[0] as string;\n\t\t}\n\t\treturn value as string;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/KeycloakManagementController.html":{"url":"controllers/KeycloakManagementController.html","title":"controller - KeycloakManagementController","body":"\n \n\n\n\n\n\n\n Controllers\n KeycloakManagementController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/controller/keycloak-configuration.controller.ts\n \n\n \n Prefix\n \n \n management/idm\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n importSeedData\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n importSeedData\n \n \n \n \n \n \n \n importSeedData()\n \n \n\n \n \n Decorators : \n \n @Post('seed')\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/controller/keycloak-configuration.controller.ts:19\n \n \n\n\n \n \n This connects to IDM, seeds the test users and seeds the identity providers.\nUsed by auto-deployment for develop environment (job_init_idm.yml.j2) via cURL\n\n\n \n \n \n Returns : Promise\n\n \n \n The number of seeded users\n\n \n \n \n \n \n \n\n\n \n import { Controller, Post, ServiceUnavailableException } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { KeycloakConfigurationUc } from '../uc/keycloak-configuration.uc';\n\n@Controller('management/idm')\nexport class KeycloakManagementController {\n\tconstructor(private readonly keycloakManagementUc: KeycloakConfigurationUc, private readonly logger: LegacyLogger) {\n\t\tthis.logger.setContext(KeycloakManagementController.name);\n\t}\n\n\t/**\n\t * This connects to IDM, seeds the test users and seeds the identity providers.\n\t * Used by auto-deployment for develop environment (job_init_idm.yml.j2) via cURL\n\t *\n\t * @returns The number of seeded users\n\t * @throws ServiceUnavailableException if IDM is not ready.\n\t */\n\t@Post('seed')\n\tasync importSeedData(): Promise {\n\t\tif (await this.keycloakManagementUc.check()) {\n\t\t\ttry {\n\t\t\t\tawait this.keycloakManagementUc.configure();\n\t\t\t\treturn await this.keycloakManagementUc.seed();\n\t\t\t} catch (err) {\n\t\t\t\tthis.logger.error(err);\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t\tthrow new ServiceUnavailableException();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakMigrationService.html":{"url":"injectables/KeycloakMigrationService.html","title":"injectable - KeycloakMigrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakMigrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-migration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n createOrUpdateIdmAccount\n \n \n Async\n migrate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdmin: KeycloakAdministrationService, accountService: AccountService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-migration.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdmin\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n createOrUpdateIdmAccount\n \n \n \n \n \n \n \n createOrUpdateIdmAccount(account: AccountDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-migration.service.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrate\n \n \n \n \n \n \n \n migrate(start: number, verbose)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-migration.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n start\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n verbose\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation';\nimport { Injectable } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\n\n@Injectable()\nexport class KeycloakMigrationService {\n\tconstructor(\n\t\tprivate readonly kcAdmin: KeycloakAdministrationService,\n\t\tprivate readonly accountService: AccountService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(KeycloakMigrationService.name);\n\t}\n\n\tasync migrate(start = 0, verbose = false): Promise {\n\t\tconst amount = 100;\n\t\tlet skip = start;\n\t\tlet foundAccounts = 1;\n\t\tlet migratedAccounts = 0;\n\t\tlet accounts: AccountDto[] = [];\n\t\twhile (foundAccounts > 0) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\taccounts = await this.accountService.findMany(skip, amount);\n\t\t\tfoundAccounts = accounts.length;\n\t\t\tfor (const account of accounts) {\n\t\t\t\ttry {\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tconst retAccountId = await this.createOrUpdateIdmAccount(account);\n\t\t\t\t\tmigratedAccounts += 1;\n\t\t\t\t\tif (verbose) {\n\t\t\t\t\t\tthis.logger.log(`Migration of account ${account.id} done, new id is ${retAccountId}.`);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\tthis.logger.error(`Migration of account ${account.id} failed.`, err);\n\t\t\t\t}\n\t\t\t}\n\t\t\tskip += foundAccounts;\n\t\t\tif (!verbose) {\n\t\t\t\tthis.logger.log(`...migrated ${skip} accounts.`);\n\t\t\t}\n\t\t}\n\t\treturn migratedAccounts;\n\t}\n\n\tprivate async createOrUpdateIdmAccount(account: AccountDto): Promise {\n\t\tconst idmUserRepresentation: UserRepresentation = {\n\t\t\tusername: account.username,\n\t\t\tenabled: true,\n\t\t\tcredentials: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'password',\n\t\t\t\t\tsecretData: `{\"value\": \"${account.password ?? ''}\", \"salt\": \"\", \"additionalParameters\": {}}`,\n\t\t\t\t\tcredentialData: '{ \"hashIterations\": 10, \"algorithm\": \"bcrypt\", \"additionalParameters\": {}}',\n\t\t\t\t},\n\t\t\t],\n\t\t\tattributes: {\n\t\t\t\tdbcAccountId: account.id,\n\t\t\t\tdbcUserId: account.userId,\n\t\t\t\tdbcSystemId: account.systemId,\n\t\t\t},\n\t\t};\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst existingAccounts = await kc.users.find({ username: account.username, exact: true });\n\t\tif (existingAccounts.length === 1 && existingAccounts[0].id) {\n\t\t\tconst existingAccountId = existingAccounts[0].id;\n\t\t\tawait kc.users.update({ id: existingAccountId }, idmUserRepresentation);\n\t\t\treturn existingAccountId;\n\t\t}\n\t\tif (existingAccounts.length === 0) {\n\t\t\tconst createdAccountId = await kc.users.create(idmUserRepresentation);\n\t\t\treturn createdAccountId.id;\n\t\t}\n\t\tthrow Error(`Duplicate username ${account.username} update operation aborted.`);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/KeycloakModule.html":{"url":"modules/KeycloakModule.html","title":"module - KeycloakModule","body":"\n \n\n\n\n\n Modules\n KeycloakModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_KeycloakModule\n\n\n\ncluster_KeycloakModule_imports\n\n\n\ncluster_KeycloakModule_exports\n\n\n\ncluster_KeycloakModule_providers\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\n\n\nKeycloakModule\n\nKeycloakModule\n\nKeycloakModule -->\n\nEncryptionModule->KeycloakModule\n\n\n\n\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationModule\n\nKeycloakModule -->\n\nKeycloakAdministrationModule->KeycloakModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nKeycloakModule -->\n\nLoggerModule->KeycloakModule\n\n\n\n\n\nKeycloakIdentityManagementOauthService \n\nKeycloakIdentityManagementOauthService \n\nKeycloakIdentityManagementOauthService -->\n\nKeycloakModule->KeycloakIdentityManagementOauthService \n\n\n\n\n\nKeycloakIdentityManagementService \n\nKeycloakIdentityManagementService \n\nKeycloakIdentityManagementService -->\n\nKeycloakModule->KeycloakIdentityManagementService \n\n\n\n\n\nKeycloakIdentityManagementOauthService\n\nKeycloakIdentityManagementOauthService\n\nKeycloakModule -->\n\nKeycloakIdentityManagementOauthService->KeycloakModule\n\n\n\n\n\nKeycloakIdentityManagementService\n\nKeycloakIdentityManagementService\n\nKeycloakModule -->\n\nKeycloakIdentityManagementService->KeycloakModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak/keycloak.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n KeycloakIdentityManagementOauthService\n \n \n KeycloakIdentityManagementService\n \n \n \n \n Imports\n \n \n EncryptionModule\n \n \n KeycloakAdministrationModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n KeycloakIdentityManagementOauthService\n \n \n KeycloakIdentityManagementService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { LoggerModule } from '@src/core/logger';\nimport { KeycloakAdministrationModule } from '../keycloak-administration/keycloak-administration.module';\nimport { KeycloakIdentityManagementOauthService } from './service/keycloak-identity-management-oauth.service';\nimport { KeycloakIdentityManagementService } from './service/keycloak-identity-management.service';\n\n@Module({\n\timports: [LoggerModule, EncryptionModule, HttpModule, KeycloakAdministrationModule],\n\tproviders: [KeycloakIdentityManagementService, KeycloakIdentityManagementOauthService],\n\texports: [KeycloakIdentityManagementService, KeycloakIdentityManagementOauthService],\n})\nexport class KeycloakModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/KeycloakSeedService.html":{"url":"classes/KeycloakSeedService.html","title":"class - KeycloakSeedService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n KeycloakSeedService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n clean\n \n \n Private\n Async\n createOrUpdateIdmAccount\n \n \n Private\n Async\n loadAccounts\n \n \n Private\n Async\n loadUsers\n \n \n Async\n seed\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdmin: KeycloakAdministrationService, inputFiles: IKeycloakConfigurationInputFiles)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdmin\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n inputFiles\n \n \n IKeycloakConfigurationInputFiles\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n clean\n \n \n \n \n \n \n \n clean()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:33\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createOrUpdateIdmAccount\n \n \n \n \n \n \n \n createOrUpdateIdmAccount(account: IJsonAccount, user: IJsonUser)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IJsonAccount\n \n\n \n No\n \n\n\n \n \n user\n \n IJsonUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n loadAccounts\n \n \n \n \n \n \n \n loadAccounts()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:86\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n loadUsers\n \n \n \n \n \n \n \n loadUsers()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:91\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n seed\n \n \n \n \n \n \n \n seed()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:18\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation';\nimport { Inject } from '@nestjs/common';\nimport fs from 'node:fs/promises';\nimport { IJsonAccount } from '../interface/json-account.interface';\nimport { IJsonUser } from '../interface/json-user.interface';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\nimport {\n\tKeycloakConfigurationInputFiles,\n\tIKeycloakConfigurationInputFiles,\n} from '../interface/keycloak-configuration-input-files.interface';\n\nexport class KeycloakSeedService {\n\tconstructor(\n\t\tprivate readonly kcAdmin: KeycloakAdministrationService,\n\t\t@Inject(KeycloakConfigurationInputFiles) private readonly inputFiles: IKeycloakConfigurationInputFiles\n\t) {}\n\n\tasync seed(): Promise {\n\t\tlet userCount = 0;\n\t\tconst users = await this.loadUsers();\n\t\tconst accounts = await this.loadAccounts();\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const user of users) {\n\t\t\tconst account = accounts.find((a) => a.userId.$oid === user._id.$oid);\n\t\t\tif (account) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tuserCount += (await this.createOrUpdateIdmAccount(account, user)) ? 1 : 0;\n\t\t\t}\n\t\t}\n\t\treturn userCount;\n\t}\n\n\tpublic async clean(): Promise {\n\t\tlet kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst adminUser = this.kcAdmin.getAdminUser();\n\t\tconst users = (await kc.users.find()).filter((user) => user.username !== adminUser);\n\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const user of users) {\n\t\t\t// needs to be called once per minute. To be save we call it in the loop. Ineffcient but ok, since only used to locally revert seeding\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tkc = await this.kcAdmin.callKcAdminClient();\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tawait kc.users.del({\n\t\t\t\t// can not be undefined, see filter above\n\t\t\t\tid: user.id ?? '',\n\t\t\t});\n\t\t}\n\t\treturn users.length;\n\t}\n\n\tprivate async createOrUpdateIdmAccount(account: IJsonAccount, user: IJsonUser): Promise {\n\t\tconst idmUserRepresentation: UserRepresentation = {\n\t\t\tusername: account.username,\n\t\t\tfirstName: user.firstName,\n\t\t\tlastName: user.lastName,\n\t\t\temail: user.email,\n\t\t\tenabled: true,\n\t\t\tcredentials: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'password',\n\t\t\t\t\tsecretData: `{\"value\": \"${account.password}\", \"salt\": \"\", \"additionalParameters\": {}}`,\n\t\t\t\t\tcredentialData: '{ \"hashIterations\": 10, \"algorithm\": \"bcrypt\", \"additionalParameters\": {}}',\n\t\t\t\t},\n\t\t\t],\n\t\t\tattributes: {\n\t\t\t\tdbcAccountId: account._id.$oid,\n\t\t\t\tdbcUserId: account.userId.$oid,\n\t\t\t\tdbcSystemId: account.systemId,\n\t\t\t},\n\t\t};\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst existingAccounts = await kc.users.find({ username: account.username, exact: true });\n\t\tif (existingAccounts.length === 1 && existingAccounts[0].id) {\n\t\t\tawait kc.users.update({ id: existingAccounts[0].id }, idmUserRepresentation);\n\t\t\treturn true;\n\t\t}\n\t\tif (existingAccounts.length === 0) {\n\t\t\tawait kc.users.create(idmUserRepresentation);\n\t\t\treturn true;\n\t\t}\n\t\t// else, unreachable, multiple accounts for same username (unique)\n\t\treturn false;\n\t}\n\n\tprivate async loadAccounts(): Promise {\n\t\tconst data = await fs.readFile(this.inputFiles.accountsFile, { encoding: 'utf-8' });\n\t\treturn JSON.parse(data) as IJsonAccount[];\n\t}\n\n\tprivate async loadUsers(): Promise {\n\t\tconst data = await fs.readFile(this.inputFiles.usersFile, { encoding: 'utf-8' });\n\t\treturn JSON.parse(data) as IJsonUser[];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapAlreadyPersistedException.html":{"url":"classes/LdapAlreadyPersistedException.html","title":"class - LdapAlreadyPersistedException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapAlreadyPersistedException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts\n \n\n\n\n \n Extends\n \n \n LdapUserMigrationException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(descriptionOrOptions?: string | HttpExceptionOptions)\n \n \n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n descriptionOrOptions\n \n \n string | HttpExceptionOptions\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:11\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, HttpExceptionOptions } from '@nestjs/common';\nimport { ErrorLogMessage, LogMessage, Loggable, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class LdapUserMigrationException extends BadRequestException {}\n\nexport class LdapAlreadyPersistedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('ldapAlreadyPersisted', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'LDAP is already Persisted',\n\t\t};\n\t}\n}\nexport class MissingSchoolNumberException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school is missing a official school number',\n\t\t};\n\t}\n}\nexport class MigrationAlreadyActivatedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration is already activated for this school',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapAuthorizationBodyParams.html":{"url":"classes/LdapAuthorizationBodyParams.html","title":"class - LdapAuthorizationBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapAuthorizationBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n schoolId\n \n \n \n \n systemId\n \n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNotEmpty, IsString } from 'class-validator';\n\nexport class LdapAuthorizationBodyParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tsystemId!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tusername!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tpassword!: string;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\tschoolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapConfig.html":{"url":"classes/LdapConfig.html","title":"class - LdapConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n active\n \n \n \n Optional\n federalState\n \n \n \n Optional\n lastModifyTimestamp\n \n \n \n Optional\n lastSuccessfulFullSync\n \n \n \n Optional\n lastSuccessfulPartialSync\n \n \n \n Optional\n lastSyncAttempt\n \n \n \n Optional\n provider\n \n \n \n Optional\n providerOptions\n \n \n \n Optional\n rootPath\n \n \n \n Optional\n searchUser\n \n \n \n Optional\n searchUserPassword\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ldapConfig: Readonly)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:76\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ldapConfig\n \n \n Readonly\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n active\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:93\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n federalState\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:96\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastModifyTimestamp\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:108\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastSuccessfulFullSync\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:102\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastSuccessfulPartialSync\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:105\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastSyncAttempt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:99\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:123\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n providerOptions\n \n \n \n \n \n \n Type : literal type\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:126\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n rootPath\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:114\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n searchUser\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:117\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n searchUserPassword\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:120\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:111\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapConnectionError.html":{"url":"classes/LdapConnectionError.html","title":"class - LdapConnectionError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapConnectionError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/errors/ldap-connection.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(details?: Record)\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/ldap-connection.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class LdapConnectionError extends BusinessError {\n\tconstructor(details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'LDAP_CONNECTION_FAILED',\n\t\t\t\ttitle: 'LDAP connection failed',\n\t\t\t\tdefaultMessage: 'LDAP connection failed',\n\t\t\t},\n\t\t\tHttpStatus.BAD_GATEWAY,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LdapService.html":{"url":"injectables/LdapService.html","title":"injectable - LdapService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LdapService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/services/ldap.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkLdapCredentials\n \n \n Private\n connect\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/authentication/services/ldap.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkLdapCredentials\n \n \n \n \n \n \n \n checkLdapCredentials(system: System, username: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/ldap.service.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n System\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n connect\n \n \n \n \n \n \n \n connect(system: System, username: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/ldap.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n System\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { System } from '@shared/domain';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Client, createClient } from 'ldapjs';\nimport { LdapConnectionError } from '../errors/ldap-connection.error';\n\n@Injectable()\nexport class LdapService {\n\tconstructor(private readonly logger: LegacyLogger) {\n\t\tthis.logger.setContext(LdapService.name);\n\t}\n\n\tasync checkLdapCredentials(system: System, username: string, password: string): Promise {\n\t\tconst connection = await this.connect(system, username, password);\n\t\tif (connection.connected) {\n\t\t\tconnection.unbind();\n\t\t\treturn;\n\t\t}\n\t\tthrow new UnauthorizedException('User could not authenticate');\n\t}\n\n\tprivate connect(system: System, username: string, password: string): Promise {\n\t\tconst { ldapConfig } = system;\n\t\tif (!ldapConfig) {\n\t\t\tthrow Error(`no LDAP config found in system ${system.id}`);\n\t\t}\n\t\tconst client: Client = createClient({\n\t\t\turl: ldapConfig.url,\n\t\t\treconnect: {\n\t\t\t\tinitialDelay: 100,\n\t\t\t\tmaxDelay: 300,\n\t\t\t\tfailAfter: 3,\n\t\t\t},\n\t\t});\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tclient.on('connect', () => {\n\t\t\t\tclient.bind(username, password, (err) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tthis.logger.debug(err);\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tnew UnauthorizedException(\n\t\t\t\t\t\t\t\t'User could not authenticate',\n\t\t\t\t\t\t\t\tErrorUtils.createHttpExceptionOptions(err, 'LdapService:connect')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.logger.debug('[LDAP] Bind successful');\n\t\t\t\t\t\tresolve(client);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tclient.on('error', (err) => {\n\t\t\t\treject(new LdapConnectionError({ error: err }));\n\t\t\t});\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LdapStrategy.html":{"url":"injectables/LdapStrategy.html","title":"injectable - LdapStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LdapStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/ldap.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkCredentials\n \n \n Private\n checkValue\n \n \n Private\n extractParamsFromRequest\n \n \n Private\n Async\n loadAccount\n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemRepo: SystemRepo, schoolRepo: LegacySchoolRepo, ldapService: LdapService, authenticationService: AuthenticationService, userRepo: UserRepo, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemRepo\n \n \n SystemRepo\n \n \n \n No\n \n \n \n \n schoolRepo\n \n \n LegacySchoolRepo\n \n \n \n No\n \n \n \n \n ldapService\n \n \n LdapService\n \n \n \n No\n \n \n \n \n authenticationService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkCredentials\n \n \n \n \n \n \n \n checkCredentials(account: AccountDto, system: System, ldapDn: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n system\n \n System\n \n\n \n No\n \n\n\n \n \n ldapDn\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkValue\n \n \n \n \n \n \n \n checkValue(value: T | null | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:68\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n T | null | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T | never\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n extractParamsFromRequest\n \n \n \n \n \n \n \n extractParamsFromRequest(request: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Required\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n loadAccount\n \n \n \n \n \n \n \n loadAccount(username: string, systemId: string, school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(request: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { PassportStrategy } from '@nestjs/passport';\nimport { LegacySchoolDo, System, User } from '@shared/domain';\nimport { LegacySchoolRepo, SystemRepo, UserRepo } from '@shared/repo';\nimport { ErrorLoggable } from '@src/core/error/loggable/error.loggable';\nimport { Logger } from '@src/core/logger';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { Strategy } from 'passport-custom';\nimport { LdapAuthorizationBodyParams } from '../controllers/dto';\nimport { ICurrentUser } from '../interface';\nimport { CurrentUserMapper } from '../mapper';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { LdapService } from '../services/ldap.service';\n\n@Injectable()\nexport class LdapStrategy extends PassportStrategy(Strategy, 'ldap') {\n\tconstructor(\n\t\tprivate readonly systemRepo: SystemRepo,\n\t\tprivate readonly schoolRepo: LegacySchoolRepo,\n\t\tprivate readonly ldapService: LdapService,\n\t\tprivate readonly authenticationService: AuthenticationService,\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tsuper();\n\t}\n\n\tasync validate(request: { body: LdapAuthorizationBodyParams }): Promise {\n\t\tconst { username, password, systemId, schoolId } = this.extractParamsFromRequest(request);\n\n\t\tconst system: System = await this.systemRepo.findById(systemId);\n\n\t\tconst school: LegacySchoolDo = await this.schoolRepo.findById(schoolId);\n\n\t\tif (!school.systems || !school.systems.includes(systemId)) {\n\t\t\tthrow new UnauthorizedException(`School ${schoolId} does not have the selected system ${systemId}`);\n\t\t}\n\n\t\tconst account: AccountDto = await this.loadAccount(username, system.id, school);\n\n\t\tconst userId: string = this.checkValue(account.userId);\n\n\t\tthis.authenticationService.checkBrutForce(account);\n\n\t\tconst user: User = await this.userRepo.findById(userId);\n\n\t\tconst ldapDn: string = this.checkValue(user.ldapDn);\n\n\t\tawait this.checkCredentials(account, system, ldapDn, password);\n\n\t\tconst currentUser: ICurrentUser = CurrentUserMapper.userToICurrentUser(account.id, user, systemId);\n\n\t\treturn currentUser;\n\t}\n\n\tprivate extractParamsFromRequest(request: {\n\t\tbody: LdapAuthorizationBodyParams;\n\t}): Required {\n\t\tconst { systemId, schoolId } = request.body;\n\t\tlet { username, password } = request.body;\n\n\t\tusername = this.authenticationService.normalizeUsername(username);\n\t\tpassword = this.authenticationService.normalizePassword(password);\n\n\t\treturn { username, password, systemId, schoolId };\n\t}\n\n\tprivate checkValue(value: T | null | undefined): T | never {\n\t\tif (value === null || value === undefined) {\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\t\treturn value;\n\t}\n\n\tprivate async checkCredentials(account: AccountDto, system: System, ldapDn: string, password: string): Promise {\n\t\ttry {\n\t\t\tawait this.ldapService.checkLdapCredentials(system, ldapDn, password);\n\t\t} catch (error) {\n\t\t\tif (error instanceof UnauthorizedException) {\n\t\t\t\tawait this.authenticationService.updateLastTriedFailedLogin(account.id);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate async loadAccount(username: string, systemId: string, school: LegacySchoolDo): Promise {\n\t\tconst externalSchoolId = this.checkValue(school.externalId);\n\n\t\tlet account: AccountDto;\n\n\t\t// TODO having to check for two values in order to find an account is not optimal and should be changed.\n\t\t// The way the name field of Accounts is used for LDAP should be reconsidered, since\n\t\t// mixing the login name with a technical id from a foreign system is not a good pattern.\n\t\t// Binding the login name to an identifier from a foreign system or an identifier of a school can lead to\n\t\t// accounts not being found when the identifier changes.\n\t\ttry {\n\t\t\taccount = await this.authenticationService.loadAccount(`${externalSchoolId}/${username}`.toLowerCase(), systemId);\n\t\t} catch (err: unknown) {\n\t\t\tif (school.previousExternalId) {\n\t\t\t\tthis.logger.info(\n\t\t\t\t\tnew ErrorLoggable(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`Could not find LDAP account with externalSchoolId ${externalSchoolId} for user ${username}. Trying to use the previousExternalId ${school.previousExternalId} next...`\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\taccount = await this.authenticationService.loadAccount(\n\t\t\t\t\t`${school.previousExternalId}/${username}`.toLowerCase(),\n\t\t\t\t\tsystemId\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\n\t\treturn account;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapUserMigrationException.html":{"url":"classes/LdapUserMigrationException.html","title":"class - LdapUserMigrationException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapUserMigrationException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts\n \n\n\n\n \n Extends\n \n \n BadRequestException\n \n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, HttpExceptionOptions } from '@nestjs/common';\nimport { ErrorLogMessage, LogMessage, Loggable, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class LdapUserMigrationException extends BadRequestException {}\n\nexport class LdapAlreadyPersistedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('ldapAlreadyPersisted', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'LDAP is already Persisted',\n\t\t};\n\t}\n}\nexport class MissingSchoolNumberException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school is missing a official school number',\n\t\t};\n\t}\n}\nexport class MigrationAlreadyActivatedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration is already activated for this school',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LearnroomApiModule.html":{"url":"modules/LearnroomApiModule.html","title":"module - LearnroomApiModule","body":"\n \n\n\n\n\n Modules\n LearnroomApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LearnroomApiModule\n\n\n\ncluster_LearnroomApiModule_providers\n\n\n\ncluster_LearnroomApiModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nLearnroomApiModule\n\nLearnroomApiModule\n\nLearnroomApiModule -->\n\nAuthorizationModule->LearnroomApiModule\n\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\nLearnroomApiModule -->\n\nCopyHelperModule->LearnroomApiModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nLearnroomApiModule -->\n\nLearnroomModule->LearnroomApiModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nLearnroomApiModule -->\n\nLessonModule->LearnroomApiModule\n\n\n\n\n\nBoardRepo\n\nBoardRepo\n\nLearnroomApiModule -->\n\nBoardRepo->LearnroomApiModule\n\n\n\n\n\nCourseCopyUC\n\nCourseCopyUC\n\nLearnroomApiModule -->\n\nCourseCopyUC->LearnroomApiModule\n\n\n\n\n\nCourseExportUc\n\nCourseExportUc\n\nLearnroomApiModule -->\n\nCourseExportUc->LearnroomApiModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nLearnroomApiModule -->\n\nCourseRepo->LearnroomApiModule\n\n\n\n\n\nCourseUc\n\nCourseUc\n\nLearnroomApiModule -->\n\nCourseUc->LearnroomApiModule\n\n\n\n\n\nDashboardModelMapper\n\nDashboardModelMapper\n\nLearnroomApiModule -->\n\nDashboardModelMapper->LearnroomApiModule\n\n\n\n\n\nDashboardUc\n\nDashboardUc\n\nLearnroomApiModule -->\n\nDashboardUc->LearnroomApiModule\n\n\n\n\n\nLessonCopyUC\n\nLessonCopyUC\n\nLearnroomApiModule -->\n\nLessonCopyUC->LearnroomApiModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nLearnroomApiModule -->\n\nLessonRepo->LearnroomApiModule\n\n\n\n\n\nRoomBoardDTOFactory\n\nRoomBoardDTOFactory\n\nLearnroomApiModule -->\n\nRoomBoardDTOFactory->LearnroomApiModule\n\n\n\n\n\nRoomBoardResponseMapper\n\nRoomBoardResponseMapper\n\nLearnroomApiModule -->\n\nRoomBoardResponseMapper->LearnroomApiModule\n\n\n\n\n\nRoomsAuthorisationService\n\nRoomsAuthorisationService\n\nLearnroomApiModule -->\n\nRoomsAuthorisationService->LearnroomApiModule\n\n\n\n\n\nRoomsUc\n\nRoomsUc\n\nLearnroomApiModule -->\n\nRoomsUc->LearnroomApiModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nLearnroomApiModule -->\n\nUserRepo->LearnroomApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/learnroom/learnroom-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardRepo\n \n \n CourseCopyUC\n \n \n CourseExportUc\n \n \n CourseRepo\n \n \n CourseUc\n \n \n DashboardModelMapper\n \n \n DashboardUc\n \n \n LessonCopyUC\n \n \n LessonRepo\n \n \n RoomBoardDTOFactory\n \n \n RoomBoardResponseMapper\n \n \n RoomsAuthorisationService\n \n \n RoomsUc\n \n \n UserRepo\n \n \n \n \n Controllers\n \n \n DashboardController\n \n \n CourseController\n \n \n RoomsController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CopyHelperModule\n \n \n LearnroomModule\n \n \n LessonModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { BoardRepo, CourseRepo, DashboardModelMapper, DashboardRepo, LessonRepo, UserRepo } from '@shared/repo';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { LessonModule } from '@src/modules/lesson';\nimport { CourseController } from './controller/course.controller';\nimport { DashboardController } from './controller/dashboard.controller';\nimport { RoomsController } from './controller/rooms.controller';\nimport { LearnroomModule } from './learnroom.module';\nimport { RoomBoardResponseMapper } from './mapper/room-board-response.mapper';\nimport {\n\tCourseCopyUC,\n\tCourseExportUc,\n\tCourseUc,\n\tDashboardUc,\n\tLessonCopyUC,\n\tRoomBoardDTOFactory,\n\tRoomsAuthorisationService,\n\tRoomsUc,\n} from './uc';\n\n@Module({\n\timports: [AuthorizationModule, LessonModule, CopyHelperModule, LearnroomModule],\n\tcontrollers: [DashboardController, CourseController, RoomsController],\n\tproviders: [\n\t\tDashboardUc,\n\t\tCourseUc,\n\t\tRoomsUc,\n\t\tRoomBoardResponseMapper,\n\t\tRoomBoardDTOFactory,\n\t\tLessonCopyUC,\n\t\tCourseCopyUC,\n\t\tRoomsAuthorisationService,\n\t\tCourseExportUc,\n\t\t// FIXME Refactor UCs to use services and remove these imports\n\t\t{\n\t\t\tprovide: 'DASHBOARD_REPO',\n\t\t\tuseClass: DashboardRepo,\n\t\t},\n\t\tDashboardModelMapper,\n\t\tCourseRepo,\n\t\tUserRepo,\n\t\tBoardRepo,\n\t\tLessonRepo,\n\t],\n})\nexport class LearnroomApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LearnroomModule.html":{"url":"modules/LearnroomModule.html","title":"module - LearnroomModule","body":"\n \n\n\n\n\n Modules\n LearnroomModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LearnroomModule\n\n\n\ncluster_LearnroomModule_providers\n\n\n\ncluster_LearnroomModule_imports\n\n\n\ncluster_LearnroomModule_exports\n\n\n\n\nBoardModule\n\nBoardModule\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nLearnroomModule -->\n\nBoardModule->LearnroomModule\n\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\nLearnroomModule -->\n\nCopyHelperModule->LearnroomModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nLearnroomModule -->\n\nLessonModule->LearnroomModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nLearnroomModule -->\n\nLoggerModule->LearnroomModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nLearnroomModule -->\n\nTaskModule->LearnroomModule\n\n\n\n\n\nCommonCartridgeExportService \n\nCommonCartridgeExportService \n\nCommonCartridgeExportService -->\n\nLearnroomModule->CommonCartridgeExportService \n\n\n\n\n\nCourseCopyService \n\nCourseCopyService \n\nCourseCopyService -->\n\nLearnroomModule->CourseCopyService \n\n\n\n\n\nCourseService \n\nCourseService \n\nCourseService -->\n\nLearnroomModule->CourseService \n\n\n\n\n\nRoomsService \n\nRoomsService \n\nRoomsService -->\n\nLearnroomModule->RoomsService \n\n\n\n\n\nBoardCopyService\n\nBoardCopyService\n\nLearnroomModule -->\n\nBoardCopyService->LearnroomModule\n\n\n\n\n\nBoardRepo\n\nBoardRepo\n\nLearnroomModule -->\n\nBoardRepo->LearnroomModule\n\n\n\n\n\nColumnBoardTargetService\n\nColumnBoardTargetService\n\nLearnroomModule -->\n\nColumnBoardTargetService->LearnroomModule\n\n\n\n\n\nCommonCartridgeExportService\n\nCommonCartridgeExportService\n\nLearnroomModule -->\n\nCommonCartridgeExportService->LearnroomModule\n\n\n\n\n\nCourseCopyService\n\nCourseCopyService\n\nLearnroomModule -->\n\nCourseCopyService->LearnroomModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nLearnroomModule -->\n\nCourseRepo->LearnroomModule\n\n\n\n\n\nCourseService\n\nCourseService\n\nLearnroomModule -->\n\nCourseService->LearnroomModule\n\n\n\n\n\nDashboardModelMapper\n\nDashboardModelMapper\n\nLearnroomModule -->\n\nDashboardModelMapper->LearnroomModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nLearnroomModule -->\n\nLessonRepo->LearnroomModule\n\n\n\n\n\nRoomsService\n\nRoomsService\n\nLearnroomModule -->\n\nRoomsService->LearnroomModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nLearnroomModule -->\n\nUserRepo->LearnroomModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/learnroom/learnroom.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardCopyService\n \n \n BoardRepo\n \n \n ColumnBoardTargetService\n \n \n CommonCartridgeExportService\n \n \n CourseCopyService\n \n \n CourseRepo\n \n \n CourseService\n \n \n DashboardModelMapper\n \n \n LessonRepo\n \n \n RoomsService\n \n \n UserRepo\n \n \n \n \n Imports\n \n \n BoardModule\n \n \n CopyHelperModule\n \n \n LessonModule\n \n \n LoggerModule\n \n \n TaskModule\n \n \n \n \n Exports\n \n \n CommonCartridgeExportService\n \n \n CourseCopyService\n \n \n CourseService\n \n \n RoomsService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { BoardRepo, CourseRepo, DashboardModelMapper, DashboardRepo, LessonRepo, UserRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { BoardModule } from '@src/modules/board';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { LessonModule } from '@src/modules/lesson';\nimport { TaskModule } from '@src/modules/task';\nimport {\n\tBoardCopyService,\n\tColumnBoardTargetService,\n\tCommonCartridgeExportService,\n\tCourseCopyService,\n\tCourseService,\n\tRoomsService,\n} from './service';\n\n@Module({\n\timports: [LessonModule, TaskModule, CopyHelperModule, BoardModule, LoggerModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: 'DASHBOARD_REPO',\n\t\t\tuseClass: DashboardRepo,\n\t\t},\n\t\tDashboardModelMapper,\n\t\tCourseRepo,\n\t\tLessonRepo,\n\t\tBoardRepo,\n\t\tUserRepo,\n\t\tBoardCopyService,\n\t\tCourseCopyService,\n\t\tRoomsService,\n\t\tCourseService,\n\t\tCommonCartridgeExportService,\n\t\tColumnBoardTargetService,\n\t],\n\texports: [CourseCopyService, CourseService, RoomsService, CommonCartridgeExportService],\n})\nexport class LearnroomModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacyLogger.html":{"url":"injectables/LegacyLogger.html","title":"injectable - LegacyLogger","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacyLogger\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/legacy-logger.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n context\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createMessage\n \n \n debug\n \n \n error\n \n \n http\n \n \n log\n \n \n setContext\n \n \n Private\n stringifiedMessage\n \n \n warn\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: WinstonLogger)\n \n \n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n WinstonLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createMessage\n \n \n \n \n \n \n \n createMessage(message, context?: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string | undefined\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : { message: any; context: string; }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n debug\n \n \n \n \n \n \ndebug(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n error\n \n \n \n \n \n \nerror(message, trace?, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n trace\n \n \n\n \n Yes\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n http\n \n \n \n \n \n \nhttp(message: RequestLoggingBody, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n RequestLoggingBody\n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n log\n \n \n \n \n \n \nlog(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setContext\n \n \n \n \n \n \nsetContext(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n stringifiedMessage\n \n \n \n \n \n \n \n stringifiedMessage(message)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n message\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n warn\n \n \n \n \n \n \nwarn(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n context\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : ''\n \n \n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:22\n \n \n\n \n \n This Logger Service can be injected into every Class,\nuse setContext() with CustomProviderClass.name that will be added to every log.\nIt implements @ILegacyLogger which provides the logger methods.\nCAUTION: PREPARE STRINGS AS LOG DATA, DO NOT LOG COMPLEX DATA STRUCTURES\n\n \n \n\n \n \n\n\n \n\n\n \n import { Inject, Injectable, Scope } from '@nestjs/common';\nimport { WINSTON_MODULE_PROVIDER } from 'nest-winston';\nimport util from 'util';\nimport { Logger as WinstonLogger } from 'winston';\nimport { RequestLoggingBody } from './interfaces';\nimport { ILegacyLogger } from './interfaces/legacy-logger.interface';\n\n@Injectable({ scope: Scope.TRANSIENT })\n/**\n * @deprecated The new logger for loggables should be used.\n * Default logger for server application.\n * Must implement ILegacyLogger but must not extend ConsoleLogger (this can be changed).\n * Transient injection: Wherever injected, a separate instance will be created, that can be provided with a custom context.\n */\nexport class LegacyLogger implements ILegacyLogger {\n\t/**\n\t * This Logger Service can be injected into every Class,\n\t * use setContext() with CustomProviderClass.name that will be added to every log.\n\t * It implements @ILegacyLogger which provides the logger methods.\n\t * CAUTION: PREPARE STRINGS AS LOG DATA, DO NOT LOG COMPLEX DATA STRUCTURES\n\t */\n\tprivate context = '';\n\n\tconstructor(@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: WinstonLogger) {}\n\n\tlog(message: unknown, context?: string): void {\n\t\tthis.logger.info(this.createMessage(message, context));\n\t}\n\n\twarn(message: unknown, context?: string): void {\n\t\tthis.logger.warning(this.createMessage(message, context));\n\t}\n\n\tdebug(message: unknown, context?: string): void {\n\t\tthis.logger.debug(this.createMessage(message, context));\n\t}\n\n\thttp(message: RequestLoggingBody, context?: string): void {\n\t\tthis.logger.notice(this.createMessage(message, context));\n\t}\n\n\terror(message: unknown, trace?: unknown, context?: string): void {\n\t\tconst result = {\n\t\t\tmessage,\n\t\t\ttrace,\n\t\t};\n\t\tthis.logger.error(this.createMessage(result, context));\n\t}\n\n\tsetContext(name: string) {\n\t\tthis.context = name;\n\t}\n\n\tprivate createMessage(message: unknown, context?: string | undefined) {\n\t\treturn { message: this.stringifiedMessage(message), context: context || this.context };\n\t}\n\n\tprivate stringifiedMessage(message: unknown) {\n\t\tconst stringifiedMessage = util.inspect(message).replace(/\\n/g, '').replace(/\\\\n/g, '');\n\t\treturn stringifiedMessage;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LegacySchoolApiModule.html":{"url":"modules/LegacySchoolApiModule.html","title":"module - LegacySchoolApiModule","body":"\n \n\n\n\n\n Modules\n LegacySchoolApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LegacySchoolApiModule\n\n\n\ncluster_LegacySchoolApiModule_imports\n\n\n\ncluster_LegacySchoolApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nLegacySchoolApiModule\n\nLegacySchoolApiModule\n\nLegacySchoolApiModule -->\n\nAuthorizationModule->LegacySchoolApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nLegacySchoolApiModule -->\n\nLegacySchoolModule->LegacySchoolApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nLegacySchoolApiModule -->\n\nLoggerModule->LegacySchoolApiModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nLegacySchoolApiModule -->\n\nUserLoginMigrationModule->LegacySchoolApiModule\n\n\n\n\n\nLegacySchoolUc\n\nLegacySchoolUc\n\nLegacySchoolApiModule -->\n\nLegacySchoolUc->LegacySchoolApiModule\n\n\n\n\n\nMigrationMapper\n\nMigrationMapper\n\nLegacySchoolApiModule -->\n\nMigrationMapper->LegacySchoolApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/legacy-school/legacy-school-api.module.ts\n \n\n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n \n \n \n Providers\n \n \n LegacySchoolUc\n \n \n MigrationMapper\n \n \n \n \n Controllers\n \n \n LegacySchoolController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n UserLoginMigrationModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { LoggerModule } from '@src/core/logger';\nimport { UserLoginMigrationModule } from '@src/modules/user-login-migration';\nimport { LegacySchoolUc } from './uc';\nimport { LegacySchoolModule } from './legacy-school.module';\nimport { LegacySchoolController } from './controller/legacy-school.controller';\nimport { MigrationMapper } from './mapper/migration.mapper';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Module({\n\timports: [LegacySchoolModule, AuthorizationModule, LoggerModule, UserLoginMigrationModule],\n\tcontrollers: [LegacySchoolController],\n\tproviders: [LegacySchoolUc, MigrationMapper],\n})\nexport class LegacySchoolApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/LegacySchoolController.html":{"url":"controllers/LegacySchoolController.html","title":"controller - LegacySchoolController","body":"\n \n\n\n\n\n\n\n Controllers\n LegacySchoolController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/controller/legacy-school.controller.ts\n \n\n \n Prefix\n \n \n school\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigration\n \n \n \n \n \n \n Async\n setMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigration\n \n \n \n \n \n \n \n getMigration(schoolParams: SchoolParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get(':schoolId/migration')@Authenticate('jwt')@ApiFoundResponse({description: 'Migrationflags have been found.', type: MigrationResponse})@ApiUnauthorizedResponse()@ApiNotFoundResponse({description: 'Migrationsflags could not be found for the given school'})\n \n \n\n \n \n Defined in apps/server/src/modules/legacy-school/controller/legacy-school.controller.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolParams\n \n SchoolParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigration\n \n \n \n \n \n \n \n setMigration(schoolParams: SchoolParams, migrationBody: MigrationBody, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Put(':schoolId/migration')@Authenticate('jwt')@ApiOkResponse({description: 'New migrationflags set', type: MigrationResponse})@ApiUnauthorizedResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/legacy-school/controller/legacy-school.controller.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolParams\n \n SchoolParams\n \n\n \n No\n \n\n\n \n \n migrationBody\n \n MigrationBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Put } from '@nestjs/common';\nimport {\n\tApiFoundResponse,\n\tApiNotFoundResponse,\n\tApiOkResponse,\n\tApiTags,\n\tApiUnauthorizedResponse,\n} from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { MigrationMapper } from '../mapper/migration.mapper';\nimport { OauthMigrationDto } from '../uc/dto/oauth-migration.dto';\nimport { LegacySchoolUc } from '../uc';\nimport { MigrationBody, MigrationResponse, SchoolParams } from './dto';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@ApiTags('School')\n@Authenticate('jwt')\n@Controller('school')\nexport class LegacySchoolController {\n\tconstructor(private readonly schoolUc: LegacySchoolUc, private readonly migrationMapper: MigrationMapper) {}\n\n\t@Put(':schoolId/migration')\n\t@Authenticate('jwt')\n\t@ApiOkResponse({ description: 'New migrationflags set', type: MigrationResponse })\n\t@ApiUnauthorizedResponse()\n\tasync setMigration(\n\t\t@Param() schoolParams: SchoolParams,\n\t\t@Body() migrationBody: MigrationBody,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst migrationDto: OauthMigrationDto = await this.schoolUc.setMigration(\n\t\t\tschoolParams.schoolId,\n\t\t\t!!migrationBody.oauthMigrationPossible,\n\t\t\t!!migrationBody.oauthMigrationMandatory,\n\t\t\t!!migrationBody.oauthMigrationFinished,\n\t\t\tcurrentUser.userId\n\t\t);\n\n\t\tconst result: MigrationResponse = this.migrationMapper.mapDtoToResponse(migrationDto);\n\n\t\treturn result;\n\t}\n\n\t@Get(':schoolId/migration')\n\t@Authenticate('jwt')\n\t@ApiFoundResponse({ description: 'Migrationflags have been found.', type: MigrationResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiNotFoundResponse({ description: 'Migrationsflags could not be found for the given school' })\n\tasync getMigration(\n\t\t@Param() schoolParams: SchoolParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst migrationDto: OauthMigrationDto = await this.schoolUc.getMigration(schoolParams.schoolId, currentUser.userId);\n\n\t\tconst result: MigrationResponse = this.migrationMapper.mapDtoToResponse(migrationDto);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LegacySchoolDo.html":{"url":"classes/LegacySchoolDo.html","title":"class - LegacySchoolDo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LegacySchoolDo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/legacy-school.do.ts\n \n\n \n Deprecated\n \n \n because it extends the deprecated BaseDO.\n \n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n externalId\n \n \n Optional\n features\n \n \n federalState\n \n \n Optional\n inMaintenanceSince\n \n \n Optional\n inUserMigration\n \n \n name\n \n \n Optional\n officialSchoolNumber\n \n \n Optional\n previousExternalId\n \n \n Optional\n schoolYear\n \n \n Optional\n systems\n \n \n Optional\n userLoginMigrationId\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(params: LegacySchoolDo)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:31\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n \n LegacySchoolDo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n features\n \n \n \n \n \n \n Type : SchoolFeatures[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n federalState\n \n \n \n \n \n \n Type : FederalState\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n inMaintenanceSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n inUserMigration\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n officialSchoolNumber\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n previousExternalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n schoolYear\n \n \n \n \n \n \n Type : SchoolYear\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n systems\n \n \n \n \n \n \n Type : EntityId[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n userLoginMigrationId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { FederalState, SchoolFeatures, SchoolYear } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseDO } from './base.do';\n\n/**\n * @deprecated because it extends the deprecated BaseDO.\n */\nexport class LegacySchoolDo extends BaseDO {\n\texternalId?: string;\n\n\tinMaintenanceSince?: Date;\n\n\tinUserMigration?: boolean;\n\n\tpreviousExternalId?: string;\n\n\tname: string;\n\n\tofficialSchoolNumber?: string;\n\n\tsystems?: EntityId[];\n\n\tfeatures?: SchoolFeatures[];\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tschoolYear?: SchoolYear;\n\n\tuserLoginMigrationId?: EntityId;\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tfederalState: FederalState;\n\n\tconstructor(params: LegacySchoolDo) {\n\t\tsuper();\n\t\tthis.id = params.id;\n\t\tthis.externalId = params.externalId;\n\t\tthis.features = params.features;\n\t\tthis.inMaintenanceSince = params.inMaintenanceSince;\n\t\tthis.inUserMigration = params.inUserMigration;\n\t\tthis.name = params.name;\n\t\tthis.previousExternalId = params.previousExternalId;\n\t\tthis.officialSchoolNumber = params.officialSchoolNumber;\n\t\tthis.schoolYear = params.schoolYear;\n\t\tthis.systems = params.systems;\n\t\tthis.userLoginMigrationId = params.userLoginMigrationId;\n\t\tthis.federalState = params.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LegacySchoolFactory.html":{"url":"classes/LegacySchoolFactory.html","title":"class - LegacySchoolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LegacySchoolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/legacy-school.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LegacySchoolDo } from '@shared/domain';\nimport { federalStateFactory } from '../federal-state.factory';\nimport { schoolYearFactory } from '../schoolyear.factory';\nimport { DoBaseFactory } from './do-base.factory';\n\nclass LegacySchoolFactory extends DoBaseFactory {}\n\nexport const legacySchoolDoFactory = LegacySchoolFactory.define(LegacySchoolDo, ({ sequence }) => {\n\treturn {\n\t\tname: `schoolName-${sequence}`,\n\t\texternalId: '123',\n\t\tfeatures: [],\n\t\tinMaintenanceSince: new Date(2020, 1),\n\t\tinUserMigration: true,\n\t\toauthMigrationMandatory: new Date(2020, 1),\n\t\toauthMigrationPossible: new Date(2020, 1),\n\t\toauthMigrationFinished: new Date(2020, 1),\n\t\tpreviousExternalId: '456',\n\t\tofficialSchoolNumber: '789',\n\t\tsystems: [],\n\t\tfederalState: federalStateFactory.build(),\n\t\tschoolYear: schoolYearFactory.build(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LegacySchoolModule.html":{"url":"modules/LegacySchoolModule.html","title":"module - LegacySchoolModule","body":"\n \n\n\n\n\n Modules\n LegacySchoolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LegacySchoolModule\n\n\n\ncluster_LegacySchoolModule_imports\n\n\n\ncluster_LegacySchoolModule_providers\n\n\n\ncluster_LegacySchoolModule_exports\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nLegacySchoolModule -->\n\nLoggerModule->LegacySchoolModule\n\n\n\n\n\nFederalStateService \n\nFederalStateService \n\nFederalStateService -->\n\nLegacySchoolModule->FederalStateService \n\n\n\n\n\nLegacySchoolService \n\nLegacySchoolService \n\nLegacySchoolService -->\n\nLegacySchoolModule->LegacySchoolService \n\n\n\n\n\nSchoolYearService \n\nSchoolYearService \n\nSchoolYearService -->\n\nLegacySchoolModule->SchoolYearService \n\n\n\n\n\nFederalStateRepo\n\nFederalStateRepo\n\nLegacySchoolModule -->\n\nFederalStateRepo->LegacySchoolModule\n\n\n\n\n\nFederalStateService\n\nFederalStateService\n\nLegacySchoolModule -->\n\nFederalStateService->LegacySchoolModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nLegacySchoolModule -->\n\nLegacySchoolRepo->LegacySchoolModule\n\n\n\n\n\nLegacySchoolService\n\nLegacySchoolService\n\nLegacySchoolModule -->\n\nLegacySchoolService->LegacySchoolModule\n\n\n\n\n\nSchoolValidationService\n\nSchoolValidationService\n\nLegacySchoolModule -->\n\nSchoolValidationService->LegacySchoolModule\n\n\n\n\n\nSchoolYearRepo\n\nSchoolYearRepo\n\nLegacySchoolModule -->\n\nSchoolYearRepo->LegacySchoolModule\n\n\n\n\n\nSchoolYearService\n\nSchoolYearService\n\nLegacySchoolModule -->\n\nSchoolYearService->LegacySchoolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/legacy-school/legacy-school.module.ts\n \n\n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n \n \n \n Providers\n \n \n FederalStateRepo\n \n \n FederalStateService\n \n \n LegacySchoolRepo\n \n \n LegacySchoolService\n \n \n SchoolValidationService\n \n \n SchoolYearRepo\n \n \n SchoolYearService\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n FederalStateService\n \n \n LegacySchoolService\n \n \n SchoolYearService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { FederalStateRepo, LegacySchoolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { SchoolYearRepo } from './repo';\nimport { FederalStateService, LegacySchoolService, SchoolValidationService, SchoolYearService } from './service';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Module({\n\timports: [LoggerModule],\n\tproviders: [\n\t\tLegacySchoolRepo,\n\t\tLegacySchoolService,\n\t\tSchoolYearService,\n\t\tSchoolYearRepo,\n\t\tFederalStateService,\n\t\tFederalStateRepo,\n\t\tSchoolValidationService,\n\t],\n\texports: [LegacySchoolService, SchoolYearService, FederalStateService],\n})\nexport class LegacySchoolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacySchoolRepo.html":{"url":"injectables/LegacySchoolRepo.html","title":"injectable - LegacySchoolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacySchoolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/school/legacy-school.repo.ts\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findByExternalId\n \n \n Async\n findBySchoolNumber\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/school/legacy-school.repo.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: ISchoolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:38\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ISchoolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalId\n \n \n \n \n \n \n \n findByExternalId(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/school/legacy-school.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolNumber\n \n \n \n \n \n \n \n findBySchoolNumber(officialSchoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/school/legacy-school.repo.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: LegacySchoolDo)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:59\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ISchoolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: SchoolEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LegacySchoolDo\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/school/legacy-school.repo.ts:17\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId, ISchoolProperties, LegacySchoolDo, SchoolEntity, System, UserLoginMigration } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { BaseDORepo } from '../base.do.repo';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Injectable()\nexport class LegacySchoolRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn SchoolEntity;\n\t}\n\n\tasync findByExternalId(externalId: string, systemId: string): Promise {\n\t\tconst school: SchoolEntity | null = await this._em.findOne(SchoolEntity, { externalId, systems: systemId });\n\n\t\tconst schoolDo: LegacySchoolDo | null = school ? this.mapEntityToDO(school) : null;\n\t\treturn schoolDo;\n\t}\n\n\tasync findBySchoolNumber(officialSchoolNumber: string): Promise {\n\t\tconst [schools, count] = await this._em.findAndCount(SchoolEntity, { officialSchoolNumber });\n\t\tif (count > 1) {\n\t\t\tthrow new InternalServerErrorException(`Multiple schools found for officialSchoolNumber ${officialSchoolNumber}`);\n\t\t}\n\n\t\tconst schoolDo: LegacySchoolDo | null = schools[0] ? this.mapEntityToDO(schools[0]) : null;\n\t\treturn schoolDo;\n\t}\n\n\tentityFactory(props: ISchoolProperties): SchoolEntity {\n\t\treturn new SchoolEntity(props);\n\t}\n\n\tmapEntityToDO(entity: SchoolEntity): LegacySchoolDo {\n\t\treturn new LegacySchoolDo({\n\t\t\tid: entity.id,\n\t\t\texternalId: entity.externalId,\n\t\t\tfeatures: entity.features,\n\t\t\tinMaintenanceSince: entity.inMaintenanceSince,\n\t\t\tinUserMigration: entity.inUserMigration,\n\t\t\tname: entity.name,\n\t\t\tpreviousExternalId: entity.previousExternalId,\n\t\t\tofficialSchoolNumber: entity.officialSchoolNumber,\n\t\t\tschoolYear: entity.schoolYear,\n\t\t\tsystems: entity.systems.isInitialized() ? entity.systems.getItems().map((system: System) => system.id) : [],\n\t\t\tuserLoginMigrationId: entity.userLoginMigration?.id,\n\t\t\tfederalState: entity.federalState,\n\t\t});\n\t}\n\n\tmapDOToEntityProperties(entityDO: LegacySchoolDo): ISchoolProperties {\n\t\treturn {\n\t\t\texternalId: entityDO.externalId,\n\t\t\tfeatures: entityDO.features,\n\t\t\tinMaintenanceSince: entityDO.inMaintenanceSince,\n\t\t\tinUserMigration: entityDO.inUserMigration,\n\t\t\tname: entityDO.name,\n\t\t\tpreviousExternalId: entityDO.previousExternalId,\n\t\t\tofficialSchoolNumber: entityDO.officialSchoolNumber,\n\t\t\tschoolYear: entityDO.schoolYear,\n\t\t\tsystems: entityDO.systems\n\t\t\t\t? entityDO.systems.map((systemId: EntityId) => this._em.getReference(System, systemId))\n\t\t\t\t: [],\n\t\t\tuserLoginMigration: entityDO.userLoginMigrationId\n\t\t\t\t? this._em.getReference(UserLoginMigration, entityDO.userLoginMigrationId)\n\t\t\t\t: undefined,\n\t\t\tfederalState: entityDO.federalState,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacySchoolRule.html":{"url":"injectables/LegacySchoolRule.html","title":"injectable - LegacySchoolRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacySchoolRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/legacy-school.rule.ts\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/legacy-school.rule.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: LegacySchoolDo, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/legacy-school.rule.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, object: AuthorizableObject | BaseDO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/legacy-school.rule.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n AuthorizableObject | BaseDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { BaseDO, LegacySchoolDo } from '@shared/domain';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { AuthorizableObject } from '../domain-object';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Injectable()\nexport class LegacySchoolRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, object: AuthorizableObject | BaseDO): boolean {\n\t\tconst isMatched = object instanceof LegacySchoolDo;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: LegacySchoolDo, context: AuthorizationContext): boolean {\n\t\tconst hasPermission =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) && user.school.id === entity.id;\n\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacySchoolService.html":{"url":"injectables/LegacySchoolService.html","title":"injectable - LegacySchoolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacySchoolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/service/legacy-school.service.ts\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getSchoolByExternalId\n \n \n Async\n getSchoolById\n \n \n Async\n getSchoolBySchoolNumber\n \n \n Async\n hasFeature\n \n \n Async\n removeFeature\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolRepo: LegacySchoolRepo, schoolValidationService: SchoolValidationService)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolRepo\n \n \n LegacySchoolRepo\n \n \n \n No\n \n \n \n \n schoolValidationService\n \n \n SchoolValidationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getSchoolByExternalId\n \n \n \n \n \n \n \n getSchoolByExternalId(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolById\n \n \n \n \n \n \n \n getSchoolById(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolBySchoolNumber\n \n \n \n \n \n \n \n getSchoolBySchoolNumber(schoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n hasFeature\n \n \n \n \n \n \n \n hasFeature(schoolId: EntityId, feature: SchoolFeatures)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n feature\n \n SchoolFeatures\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeFeature\n \n \n \n \n \n \n \n removeFeature(schoolId: EntityId, feature: SchoolFeatures)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n feature\n \n SchoolFeatures\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(school: LegacySchoolDo, validate)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n \n \n\n \n \n validate\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, SchoolFeatures } from '@shared/domain';\nimport { LegacySchoolRepo } from '@shared/repo';\nimport { SchoolValidationService } from './validation';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Injectable()\nexport class LegacySchoolService {\n\tconstructor(\n\t\tprivate readonly schoolRepo: LegacySchoolRepo,\n\t\tprivate readonly schoolValidationService: SchoolValidationService\n\t) {}\n\n\tasync hasFeature(schoolId: EntityId, feature: SchoolFeatures): Promise {\n\t\tconst entity: LegacySchoolDo = await this.schoolRepo.findById(schoolId);\n\t\treturn entity.features ? entity.features.includes(feature) : false;\n\t}\n\n\tasync removeFeature(schoolId: EntityId, feature: SchoolFeatures): Promise {\n\t\tconst school: LegacySchoolDo = await this.schoolRepo.findById(schoolId);\n\t\tif (school.features && school.features.includes(feature)) {\n\t\t\tschool.features = school.features.filter((f: SchoolFeatures) => f !== feature);\n\t\t\tawait this.schoolRepo.save(school);\n\t\t}\n\t}\n\n\tasync getSchoolById(id: string): Promise {\n\t\tconst schoolDO: LegacySchoolDo = await this.schoolRepo.findById(id);\n\n\t\treturn schoolDO;\n\t}\n\n\tasync getSchoolByExternalId(externalId: string, systemId: string): Promise {\n\t\tconst schoolDO: LegacySchoolDo | null = await this.schoolRepo.findByExternalId(externalId, systemId);\n\n\t\treturn schoolDO;\n\t}\n\n\tasync getSchoolBySchoolNumber(schoolNumber: string): Promise {\n\t\tconst schoolDO: LegacySchoolDo | null = await this.schoolRepo.findBySchoolNumber(schoolNumber);\n\n\t\treturn schoolDO;\n\t}\n\n\tasync save(school: LegacySchoolDo, validate = false): Promise {\n\t\tif (validate) {\n\t\t\tawait this.schoolValidationService.validate(school);\n\t\t}\n\n\t\tconst ret: LegacySchoolDo = await this.schoolRepo.save(school);\n\n\t\treturn ret;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacySchoolUc.html":{"url":"injectables/LegacySchoolUc.html","title":"injectable - LegacySchoolUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacySchoolUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getMigration\n \n \n Async\n setMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, authService: AuthorizationService, schoolMigrationService: SchoolMigrationService, userLoginMigrationService: UserLoginMigrationService, userLoginMigrationRevertService: UserLoginMigrationRevertService)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n authService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n userLoginMigrationRevertService\n \n \n UserLoginMigrationRevertService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getMigration\n \n \n \n \n \n \n \n getMigration(schoolId: string, userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigration\n \n \n \n \n \n \n \n setMigration(schoolId: string, oauthMigrationPossible: boolean, oauthMigrationMandatory: boolean, oauthMigrationFinished: boolean, userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n oauthMigrationPossible\n \n boolean\n \n\n \n No\n \n\n\n \n \n oauthMigrationMandatory\n \n boolean\n \n\n \n No\n \n\n\n \n \n oauthMigrationFinished\n \n boolean\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Permission, LegacySchoolDo, UserLoginMigrationDO } from '@shared/domain';\nimport { Action, AuthorizableReferenceType, AuthorizationService } from '@src/modules/authorization';\nimport {\n\tSchoolMigrationService,\n\tUserLoginMigrationRevertService,\n\tUserLoginMigrationService,\n} from '@src/modules/user-login-migration';\nimport { LegacySchoolService } from '../service';\nimport { OauthMigrationDto } from './dto/oauth-migration.dto';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Injectable()\nexport class LegacySchoolUc {\n\tconstructor(\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly authService: AuthorizationService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService,\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly userLoginMigrationRevertService: UserLoginMigrationRevertService\n\t) {}\n\n\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-673 Refactor this and split it up\n\tasync setMigration(\n\t\tschoolId: string,\n\t\toauthMigrationPossible: boolean,\n\t\toauthMigrationMandatory: boolean,\n\t\toauthMigrationFinished: boolean,\n\t\tuserId: string\n\t): Promise {\n\t\tawait this.authService.checkPermissionByReferences(userId, AuthorizableReferenceType.School, schoolId, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [Permission.SCHOOL_EDIT],\n\t\t});\n\n\t\tconst existingUserLoginMigration: UserLoginMigrationDO | null =\n\t\t\tawait this.userLoginMigrationService.findMigrationBySchool(schoolId);\n\n\t\tif (existingUserLoginMigration) {\n\t\t\tthis.schoolMigrationService.validateGracePeriod(existingUserLoginMigration);\n\t\t}\n\n\t\tconst updatedUserLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationService.setMigration(\n\t\t\tschoolId,\n\t\t\toauthMigrationPossible,\n\t\t\toauthMigrationMandatory,\n\t\t\toauthMigrationFinished\n\t\t);\n\n\t\tif (!existingUserLoginMigration?.closedAt && updatedUserLoginMigration.closedAt) {\n\t\t\tconst hasSchoolMigratedUser = await this.schoolMigrationService.hasSchoolMigratedUser(schoolId);\n\n\t\t\tif (!hasSchoolMigratedUser) {\n\t\t\t\tawait this.userLoginMigrationRevertService.revertUserLoginMigration(updatedUserLoginMigration);\n\t\t\t} else {\n\t\t\t\tawait this.schoolMigrationService.markUnmigratedUsersAsOutdated(schoolId);\n\t\t\t}\n\t\t} else if (existingUserLoginMigration?.closedAt && !updatedUserLoginMigration.closedAt) {\n\t\t\tawait this.schoolMigrationService.unmarkOutdatedUsers(schoolId);\n\t\t}\n\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst migrationDto: OauthMigrationDto = new OauthMigrationDto({\n\t\t\toauthMigrationPossible: !updatedUserLoginMigration.closedAt ? updatedUserLoginMigration.startedAt : undefined,\n\t\t\toauthMigrationMandatory: updatedUserLoginMigration.mandatorySince,\n\t\t\toauthMigrationFinished: updatedUserLoginMigration.closedAt,\n\t\t\toauthMigrationFinalFinish: updatedUserLoginMigration.finishedAt,\n\t\t\tenableMigrationStart: !!school.officialSchoolNumber,\n\t\t});\n\n\t\treturn migrationDto;\n\t}\n\n\tasync getMigration(schoolId: string, userId: string): Promise {\n\t\tawait this.authService.checkPermissionByReferences(userId, AuthorizableReferenceType.School, schoolId, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [Permission.SCHOOL_EDIT],\n\t\t});\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst migrationDto: OauthMigrationDto = new OauthMigrationDto({\n\t\t\toauthMigrationPossible:\n\t\t\t\tuserLoginMigration && !userLoginMigration.closedAt ? userLoginMigration.startedAt : undefined,\n\t\t\toauthMigrationMandatory: userLoginMigration ? userLoginMigration.mandatorySince : undefined,\n\t\t\toauthMigrationFinished: userLoginMigration ? userLoginMigration.closedAt : undefined,\n\t\t\toauthMigrationFinalFinish: userLoginMigration ? userLoginMigration.finishedAt : undefined,\n\t\t\tenableMigrationStart: !!school.officialSchoolNumber,\n\t\t});\n\n\t\treturn migrationDto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LessonApiModule.html":{"url":"modules/LessonApiModule.html","title":"module - LessonApiModule","body":"\n \n\n\n\n\n Modules\n LessonApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LessonApiModule\n\n\n\ncluster_LessonApiModule_providers\n\n\n\ncluster_LessonApiModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nLessonApiModule\n\nLessonApiModule\n\nLessonApiModule -->\n\nAuthorizationModule->LessonApiModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nLessonApiModule -->\n\nLessonModule->LessonApiModule\n\n\n\n\n\nLessonUC\n\nLessonUC\n\nLessonApiModule -->\n\nLessonUC->LessonApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/lesson/lesson-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n LessonUC\n \n \n \n \n Controllers\n \n \n LessonController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LessonModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { LessonController } from './controller';\nimport { LessonModule } from './lesson.module';\nimport { LessonUC } from './uc';\n\n@Module({\n\timports: [LessonModule, AuthorizationModule],\n\tcontrollers: [LessonController],\n\tproviders: [LessonUC],\n})\nexport class LessonApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/LessonBoardElement.html":{"url":"entities/LessonBoardElement.html","title":"entity - LessonBoardElement","body":"\n \n\n\n\n\n\n\n\n Entities\n LessonBoardElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/lesson-boardelement.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : LessonEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('LessonEntity')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/lesson-boardelement.entity.ts:13\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { LessonEntity } from '../lesson.entity';\nimport { BoardElement, BoardElementType } from './boardelement.entity';\n\n@Entity({ discriminatorValue: BoardElementType.Lesson })\nexport class LessonBoardElement extends BoardElement {\n\tconstructor(props: { target: LessonEntity }) {\n\t\tsuper(props);\n\t\tthis.boardElementType = BoardElementType.Lesson;\n\t}\n\n\t@ManyToOne('LessonEntity')\n\ttarget!: LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/LessonController.html":{"url":"controllers/LessonController.html","title":"controller - LessonController","body":"\n \n\n\n\n\n\n\n Controllers\n LessonController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/controller/lesson.controller.ts\n \n\n \n Prefix\n \n \n lessons\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(urlParams: LessonUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':lessonId')\n \n \n\n \n \n Defined in apps/server/src/modules/lesson/controller/lesson.controller.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n LessonUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Delete, Param } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { LessonUC } from '../uc';\nimport { LessonUrlParams } from './dto';\n\n@ApiTags('Lesson')\n@Authenticate('jwt')\n@Controller('lessons')\nexport class LessonController {\n\tconstructor(private readonly lessonUC: LessonUC) {}\n\n\t@Delete(':lessonId')\n\tasync delete(@Param() urlParams: LessonUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst result = await this.lessonUC.delete(currentUser.userId, urlParams.lessonId);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonCopyApiParams.html":{"url":"classes/LessonCopyApiParams.html","title":"class - LessonCopyApiParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonCopyApiParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/lesson/lesson-copy.params.ts\n \n\n\n \n Description\n \n \n DTO for creating a task copy.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()@ApiPropertyOptional({pattern: '[a-f0-9]{24}', description: 'Destination course parent Id the lesson is copied to'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/lesson/lesson-copy.params.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsMongoId, IsOptional } from 'class-validator';\n\n/**\n * DTO for creating a task copy.\n */\nexport class LessonCopyApiParams {\n\t@IsOptional()\n\t@IsMongoId()\n\t@ApiPropertyOptional({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Destination course parent Id the lesson is copied to',\n\t})\n\tcourseId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonCopyService.html":{"url":"injectables/LessonCopyService.html","title":"injectable - LessonCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonCopyService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/service/lesson-copy.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n updateCopiedEmbeddedTaskId\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n copyEmbeddedTaskLink\n \n \n Private\n Async\n copyEtherpad\n \n \n Private\n Static\n copyGeogebra\n \n \n Private\n copyLernStore\n \n \n Async\n copyLesson\n \n \n Private\n Async\n copyLessonContent\n \n \n Private\n copyLinkedMaterials\n \n \n Private\n Async\n copyLinkedTasks\n \n \n Private\n Async\n copyNexboard\n \n \n Private\n copyTextContent\n \n \n Private\n deriveCopyStatus\n \n \n Private\n lessonStatusContent\n \n \n Private\n Static\n lessonStatusMetadata\n \n \n Private\n replaceUrlsInContents\n \n \n updateCopiedEmbeddedTasks\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(copyHelperService: CopyHelperService, taskCopyService: TaskCopyService, etherpadService: EtherpadService, nexboardService: NexboardService, lessonRepo: LessonRepo, copyFilesService: CopyFilesService)\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:27\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n taskCopyService\n \n \n TaskCopyService\n \n \n \n No\n \n \n \n \n etherpadService\n \n \n EtherpadService\n \n \n \n No\n \n \n \n \n nexboardService\n \n \n NexboardService\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n copyFilesService\n \n \n CopyFilesService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n copyEmbeddedTaskLink\n \n \n \n \n \n \n \n copyEmbeddedTaskLink(originalElement: IComponentProperties)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:391\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalElement\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyEtherpad\n \n \n \n \n \n \n \n copyEtherpad(originalElement: IComponentProperties, params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:297\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalElement\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n copyGeogebra\n \n \n \n \n \n \n \n copyGeogebra(originalElement: IComponentProperties)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:290\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalElement\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n copyLernStore\n \n \n \n \n \n \n \n copyLernStore(element: IComponentProperties)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:264\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyLessonContent\n \n \n \n \n \n \n \n copyLessonContent(content: IComponentProperties[], params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n content\n \n IComponentProperties[]\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n copyLinkedMaterials\n \n \n \n \n \n \n \n copyLinkedMaterials(originalLesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:361\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalLesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyLinkedTasks\n \n \n \n \n \n \n \n copyLinkedTasks(destinationLesson: LessonEntity, lesson: LessonEntity, params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:338\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n destinationLesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n lesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyNexboard\n \n \n \n \n \n \n \n copyNexboard(originalElement: IComponentProperties, params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:320\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalElement\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n copyTextContent\n \n \n \n \n \n \n \n copyTextContent(element: IComponentProperties)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:252\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deriveCopyStatus\n \n \n \n \n \n \n \n deriveCopyStatus(contentStatus: CopyStatus[], materialsStatus: CopyStatus[], copiedTasksStatus: CopyStatus[], lessonCopy: LessonEntity, originalLesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contentStatus\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n materialsStatus\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n copiedTasksStatus\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n lessonCopy\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n originalLesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : { status: CopyStatus; elements: {}; }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n lessonStatusContent\n \n \n \n \n \n \n \n lessonStatusContent(elements: CopyStatus[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:406\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n lessonStatusMetadata\n \n \n \n \n \n \n \n lessonStatusMetadata()\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:397\n \n \n\n\n \n \n\n \n Returns : CopyStatus[]\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n replaceUrlsInContents\n \n \n \n \n \n \n \n replaceUrlsInContents(contents: IComponentProperties[], fileUrlReplacements: FileUrlReplacement[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:149\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contents\n \n IComponentProperties[]\n \n\n \n No\n \n\n\n \n \n fileUrlReplacements\n \n FileUrlReplacement[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateCopiedEmbeddedTasks\n \n \n \n \n \n \nupdateCopiedEmbeddedTasks(lessonStatus: CopyStatus, copyDict: Map)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:107\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n copyDict\n \n Map\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n updateCopiedEmbeddedTaskId\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:123\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tBaseEntity,\n\tComponentType,\n\tEntityId,\n\tIComponentEtherpadProperties,\n\tIComponentGeogebraProperties,\n\tIComponentLernstoreProperties,\n\tIComponentNexboardProperties,\n\tIComponentProperties,\n\tIComponentTextProperties,\n\tLessonEntity,\n\tMaterial,\n} from '@shared/domain';\nimport { LessonRepo } from '@shared/repo';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@src/modules/copy-helper';\nimport { CopyFilesService } from '@src/modules/files-storage-client';\nimport { FileUrlReplacement } from '@src/modules/files-storage-client/service/copy-files.service';\nimport { TaskCopyService } from '@src/modules/task/service/task-copy.service';\nimport { randomBytes } from 'crypto';\nimport { LessonCopyParams } from '../types';\nimport { EtherpadService } from './etherpad.service';\nimport { NexboardService } from './nexboard.service';\n\n@Injectable()\nexport class LessonCopyService {\n\tconstructor(\n\t\tprivate readonly copyHelperService: CopyHelperService,\n\t\tprivate readonly taskCopyService: TaskCopyService,\n\t\tprivate readonly etherpadService: EtherpadService,\n\t\tprivate readonly nexboardService: NexboardService,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly copyFilesService: CopyFilesService\n\t) {}\n\n\tasync copyLesson(params: LessonCopyParams): Promise {\n\t\tconst lesson: LessonEntity = await this.lessonRepo.findById(params.originalLessonId);\n\t\tconst { copiedContent, contentStatus } = await this.copyLessonContent(lesson.contents, params);\n\t\tconst { copiedMaterials, materialsStatus } = this.copyLinkedMaterials(lesson);\n\n\t\tconst lessonCopy = new LessonEntity({\n\t\t\tcourse: params.destinationCourse,\n\t\t\thidden: true,\n\t\t\tname: params.copyName ?? lesson.name,\n\t\t\tposition: lesson.position,\n\t\t\tcontents: copiedContent,\n\t\t\tmaterials: copiedMaterials,\n\t\t});\n\n\t\tawait this.lessonRepo.createLesson(lessonCopy);\n\n\t\tconst copiedTasksStatus: CopyStatus[] = await this.copyLinkedTasks(lessonCopy, lesson, params);\n\n\t\tconst { status, elements } = this.deriveCopyStatus(\n\t\t\tcontentStatus,\n\t\t\tmaterialsStatus,\n\t\t\tcopiedTasksStatus,\n\t\t\tlessonCopy,\n\t\t\tlesson\n\t\t);\n\n\t\tawait this.lessonRepo.save(lessonCopy);\n\t\tconst copyDict = this.copyHelperService.buildCopyEntityDict(status);\n\t\tconst updatedStatus = this.updateCopiedEmbeddedTasks(status, copyDict);\n\n\t\tconst { fileUrlReplacements, fileCopyStatus } = await this.copyFilesService.copyFilesOfEntity(\n\t\t\tlesson,\n\t\t\tlessonCopy,\n\t\t\tparams.user.id\n\t\t);\n\n\t\telements.push(fileCopyStatus);\n\t\tlessonCopy.contents = this.replaceUrlsInContents(lessonCopy.contents, fileUrlReplacements);\n\n\t\tupdatedStatus.status = this.copyHelperService.deriveStatusFromElements(elements);\n\t\tawait this.lessonRepo.save(lessonCopy);\n\n\t\treturn updatedStatus;\n\t}\n\n\tprivate deriveCopyStatus(\n\t\tcontentStatus: CopyStatus[],\n\t\tmaterialsStatus: CopyStatus[],\n\t\tcopiedTasksStatus: CopyStatus[],\n\t\tlessonCopy: LessonEntity,\n\t\toriginalLesson: LessonEntity\n\t) {\n\t\tconst elements: CopyStatus[] = [\n\t\t\t...LessonCopyService.lessonStatusMetadata(),\n\t\t\t...contentStatus,\n\t\t\t...materialsStatus,\n\t\t\t...copiedTasksStatus,\n\t\t];\n\n\t\tconst status: CopyStatus = {\n\t\t\ttitle: lessonCopy.name,\n\t\t\ttype: CopyElementType.LESSON,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\tcopyEntity: lessonCopy,\n\t\t\toriginalEntity: originalLesson,\n\t\t\telements,\n\t\t};\n\t\treturn { status, elements };\n\t}\n\n\tupdateCopiedEmbeddedTasks(lessonStatus: CopyStatus, copyDict: Map): CopyStatus {\n\t\tconst copiedLesson = lessonStatus.copyEntity as LessonEntity;\n\n\t\tif (copiedLesson?.contents === undefined) {\n\t\t\treturn lessonStatus;\n\t\t}\n\n\t\tcopiedLesson.contents = copiedLesson.contents.map((value: IComponentProperties) =>\n\t\t\tthis.updateCopiedEmbeddedTaskId(value, copyDict)\n\t\t);\n\n\t\tlessonStatus.copyEntity = copiedLesson;\n\n\t\treturn lessonStatus;\n\t}\n\n\tprivate updateCopiedEmbeddedTaskId = (\n\t\tvalue: IComponentProperties,\n\t\tcopyDict: Map\n\t): IComponentProperties => {\n\t\tif (value.component !== ComponentType.INTERNAL || value.content === undefined || value.content.url === undefined) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst { content } = value;\n\t\tconst extractTaskId = (url: string) => {\n\t\t\tconst urlObject = new URL(url, 'https://www.example.com');\n\t\t\tconst taskId = urlObject.pathname.split('/')[2];\n\t\t\treturn taskId;\n\t\t};\n\n\t\tconst originalTaskId = extractTaskId(content.url);\n\t\tconst copiedTask = copyDict.get(originalTaskId);\n\t\tif (!copiedTask) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst url = content.url.replace(originalTaskId, copiedTask.id);\n\t\tconst updateded = { ...value, content: { url } };\n\t\treturn updateded;\n\t};\n\n\tprivate replaceUrlsInContents(\n\t\tcontents: IComponentProperties[],\n\t\tfileUrlReplacements: FileUrlReplacement[]\n\t): IComponentProperties[] {\n\t\tcontents = contents.map((item: IComponentProperties) => {\n\t\t\tif (item.component === 'text' && item.content && 'text' in item.content && item.content.text) {\n\t\t\t\tlet { text } = item.content;\n\t\t\t\tfileUrlReplacements.forEach(({ regex, replacement }) => {\n\t\t\t\t\ttext = text.replace(regex, replacement);\n\t\t\t\t});\n\t\t\t\titem.content.text = text;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\n\t\treturn contents;\n\t}\n\n\tprivate async copyLessonContent(\n\t\tcontent: IComponentProperties[],\n\t\tparams: LessonCopyParams\n\t): Promise {\n\t\tconst etherpadEnabled = Configuration.get('FEATURE_ETHERPAD_ENABLED') as boolean;\n\t\tconst nexboardEnabled = Configuration.get('FEATURE_NEXBOARD_ENABLED') as boolean;\n\t\tconst copiedContent: IComponentProperties[] = [];\n\t\tconst copiedContentStatus: CopyStatus[] = [];\n\t\tfor (let i = 0; i {\n\t\t\t\tconst result = {\n\t\t\t\t\tclient,\n\t\t\t\t\tdescription,\n\t\t\t\t\tmerlinReference,\n\t\t\t\t\ttitle,\n\t\t\t\t\turl,\n\t\t\t\t};\n\t\t\t\treturn result;\n\t\t\t}\n\t\t);\n\n\t\tconst lernstore = {\n\t\t\ttitle: element.title,\n\t\t\thidden: element.hidden,\n\t\t\tcomponent: ComponentType.LERNSTORE,\n\t\t\tuser: element.user, // TODO should be params.user - but that made the server crash, but property is normally undefined\n\t\t\tcontent: {\n\t\t\t\tresources,\n\t\t\t},\n\t\t};\n\t\treturn lernstore as IComponentProperties;\n\t}\n\n\tprivate static copyGeogebra(originalElement: IComponentProperties): IComponentProperties {\n\t\tconst copy = { ...originalElement, hidden: true } as IComponentProperties;\n\t\tcopy.content = { ...copy.content, materialId: '' } as IComponentGeogebraProperties;\n\t\tdelete copy._id;\n\t\treturn copy;\n\t}\n\n\tprivate async copyEtherpad(\n\t\toriginalElement: IComponentProperties,\n\t\tparams: LessonCopyParams\n\t): Promise {\n\t\tconst copy = { ...originalElement } as IComponentProperties;\n\t\tdelete copy._id;\n\t\tconst content = { ...copy.content, url: '' } as IComponentEtherpadProperties;\n\t\tcontent.title = randomBytes(12).toString('hex');\n\n\t\tconst etherpadPadId = await this.etherpadService.createEtherpad(\n\t\t\tparams.user.id,\n\t\t\tparams.destinationCourse.id,\n\t\t\tcontent.title\n\t\t);\n\t\tif (etherpadPadId) {\n\t\t\tconst etherpadUri = Configuration.get('ETHERPAD__PAD_URI') as string;\n\t\t\tcontent.url = `${etherpadUri}/${etherpadPadId}`;\n\t\t\tcopy.content = content;\n\t\t\treturn copy;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate async copyNexboard(\n\t\toriginalElement: IComponentProperties,\n\t\tparams: LessonCopyParams\n\t): Promise {\n\t\tconst copy = { ...originalElement } as IComponentProperties;\n\t\tdelete copy._id;\n\t\tconst content = { ...copy.content, url: '', board: '' } as IComponentNexboardProperties;\n\n\t\tconst nexboard = await this.nexboardService.createNexboard(params.user.id, content.title, content.description);\n\t\tif (nexboard) {\n\t\t\tcontent.url = nexboard.url;\n\t\t\tcontent.board = nexboard.board;\n\t\t\tcopy.content = content;\n\t\t\treturn copy;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate async copyLinkedTasks(destinationLesson: LessonEntity, lesson: LessonEntity, params: LessonCopyParams) {\n\t\tconst linkedTasks = lesson.getLessonLinkedTasks();\n\t\tif (linkedTasks.length > 0) {\n\t\t\tconst copiedTasksStatus = await Promise.all(\n\t\t\t\tlinkedTasks.map((element) =>\n\t\t\t\t\tthis.taskCopyService.copyTask({\n\t\t\t\t\t\toriginalTaskId: element.id,\n\t\t\t\t\t\tdestinationCourse: params.destinationCourse,\n\t\t\t\t\t\tdestinationLesson,\n\t\t\t\t\t\tuser: params.user,\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t);\n\t\t\tconst taskGroupStatus = {\n\t\t\t\ttype: CopyElementType.TASK_GROUP,\n\t\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(copiedTasksStatus),\n\t\t\t\telements: copiedTasksStatus,\n\t\t\t};\n\t\t\treturn [taskGroupStatus];\n\t\t}\n\t\treturn [];\n\t}\n\n\tprivate copyLinkedMaterials(originalLesson: LessonEntity): {\n\t\tcopiedMaterials: Material[];\n\t\tmaterialsStatus: CopyStatus[];\n\t} {\n\t\tconst linkedItems = originalLesson.getLessonMaterials();\n\t\tconst copiedMaterials: Material[] = [];\n\t\tconst materialsStatus: CopyStatus[] = [];\n\t\tif (linkedItems.length > 0) {\n\t\t\tconst elementsStatus: CopyStatus[] = [];\n\t\t\tlinkedItems.forEach((element) => {\n\t\t\t\tconst material = new Material(element);\n\t\t\t\tcopiedMaterials.push(material);\n\t\t\t\tconst status: CopyStatus = {\n\t\t\t\t\ttitle: element.title,\n\t\t\t\t\ttype: CopyElementType.LERNSTORE_MATERIAL,\n\t\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t\t\tcopyEntity: material,\n\t\t\t\t};\n\t\t\t\telementsStatus.push(status);\n\t\t\t});\n\t\t\tconst materialGroupStatus: CopyStatus = {\n\t\t\t\ttype: CopyElementType.LERNSTORE_MATERIAL_GROUP,\n\t\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elementsStatus),\n\t\t\t\telements: elementsStatus,\n\t\t\t};\n\t\t\tmaterialsStatus.push(materialGroupStatus);\n\t\t}\n\t\treturn { copiedMaterials, materialsStatus };\n\t}\n\n\tprivate copyEmbeddedTaskLink(originalElement: IComponentProperties) {\n\t\tconst copy = JSON.parse(JSON.stringify(originalElement)) as IComponentProperties;\n\t\tdelete copy._id;\n\t\treturn copy;\n\t}\n\n\tprivate static lessonStatusMetadata(): CopyStatus[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: CopyElementType.METADATA,\n\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t},\n\t\t];\n\t}\n\n\tprivate lessonStatusContent(elements: CopyStatus[]): CopyStatus[] {\n\t\tif (elements.length > 0) {\n\t\t\tconst componentStatus = {\n\t\t\t\ttype: CopyElementType.LESSON_CONTENT_GROUP,\n\t\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\t\telements,\n\t\t\t};\n\t\t\treturn [componentStatus];\n\t\t}\n\t\treturn [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonCopyUC.html":{"url":"injectables/LessonCopyUC.html","title":"injectable - LessonCopyUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonCopyUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyLesson\n \n \n Private\n featureEnabled\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorisation: AuthorizationService, lessonCopyService: LessonCopyService, lessonRepo: LessonRepo, courseRepo: CourseRepo, copyHelperService: CopyHelperService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorisation\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n lessonCopyService\n \n \n LessonCopyService\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(userId: EntityId, lessonId: EntityId, parentParams: LessonCopyParentParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n lessonId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentParams\n \n LessonCopyParentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n featureEnabled\n \n \n \n \n \n \n \n featureEnabled()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts:62\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { ForbiddenException, Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Permission } from '@shared/domain/interface/permission.enum';\nimport { CourseRepo, LessonRepo } from '@shared/repo';\nimport {\n\tAction,\n\tAuthorizableReferenceType,\n\tAuthorizationContextBuilder,\n\tAuthorizationService,\n} from '@src/modules/authorization';\nimport { CopyHelperService, CopyStatus } from '@src/modules/copy-helper';\nimport { LessonCopyParentParams } from '@src/modules/lesson';\nimport { LessonCopyService } from '@src/modules/lesson/service';\n\n@Injectable()\nexport class LessonCopyUC {\n\tconstructor(\n\t\tprivate readonly authorisation: AuthorizationService,\n\t\tprivate readonly lessonCopyService: LessonCopyService,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly copyHelperService: CopyHelperService\n\t) {}\n\n\tasync copyLesson(userId: EntityId, lessonId: EntityId, parentParams: LessonCopyParentParams): Promise {\n\t\tthis.featureEnabled();\n\t\tconst user = await this.authorisation.getUserWithPermissions(userId);\n\t\tconst originalLesson = await this.lessonRepo.findById(lessonId);\n\t\tconst context = AuthorizationContextBuilder.read([Permission.TOPIC_CREATE]);\n\t\tif (!this.authorisation.hasPermission(user, originalLesson, context)) {\n\t\t\tthrow new ForbiddenException('could not find lesson to copy');\n\t\t}\n\n\t\tconst destinationCourse = parentParams.courseId\n\t\t\t? await this.courseRepo.findById(parentParams.courseId)\n\t\t\t: originalLesson.course;\n\t\tawait this.authorisation.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tAuthorizableReferenceType.Course,\n\t\t\tdestinationCourse.id,\n\t\t\t{\n\t\t\t\taction: Action.write,\n\t\t\t\trequiredPermissions: [],\n\t\t\t}\n\t\t);\n\n\t\tconst [existingLessons] = await this.lessonRepo.findAllByCourseIds([originalLesson.course.id]);\n\t\tconst existingNames = existingLessons.map((l) => l.name);\n\t\tconst copyName = this.copyHelperService.deriveCopyName(originalLesson.name, existingNames);\n\n\t\tconst copyStatus = await this.lessonCopyService.copyLesson({\n\t\t\toriginalLessonId: originalLesson.id,\n\t\t\tdestinationCourse,\n\t\t\tuser,\n\t\t\tcopyName,\n\t\t});\n\n\t\treturn copyStatus;\n\t}\n\n\tprivate featureEnabled() {\n\t\tconst enabled = Configuration.get('FEATURE_COPY_SERVICE_ENABLED') as boolean;\n\t\tif (!enabled) {\n\t\t\tthrow new InternalServerErrorException('Copy Feature not enabled');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/LessonEntity.html":{"url":"entities/LessonEntity.html","title":"entity - LessonEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n LessonEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contents\n \n \n \n \n course\n \n \n \n Optional\n courseGroup\n \n \n \n \n hidden\n \n \n \n materials\n \n \n \n name\n \n \n \n position\n \n \n \n tasks\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contents\n \n \n \n \n \n \n Type : IComponentProperties[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:104\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n course\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('Course', {fieldName: 'courseId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:95\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n courseGroup\n \n \n \n \n \n \n Type : CourseGroup\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('CourseGroup', {fieldName: 'courseGroupId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:98\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n hidden\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Index()@Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:91\n \n \n\n\n \n \n \n \n \n \n \n \n \n materials\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('Material', undefined, {fieldName: 'materialIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:107\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:87\n \n \n\n\n \n \n \n \n \n \n \n \n \n position\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:101\n \n \n\n\n \n \n \n \n \n \n \n \n \n tasks\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @OneToMany('Task', 'lesson', {orphanRemoval: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:110\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonFactory.html":{"url":"classes/LessonFactory.html","title":"class - LessonFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/lesson.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Course, IComponentProperties, ILessonProperties, LessonEntity } from '@shared/domain';\n\nimport { BaseFactory } from './base.factory';\nimport { courseFactory } from './course.factory';\n\nclass LessonFactory extends BaseFactory {}\n\nexport const lessonFactory = LessonFactory.define(\n\tLessonEntity,\n\t({ sequence, params }) => {\n\t\tlet course: Course;\n\t\tif (params.course) {\n\t\t\tcourse = params.course as Course;\n\t\t} else {\n\t\t\tcourse = courseFactory.build();\n\t\t}\n\n\t\tconst contents: IComponentProperties[] = [];\n\t\tif (params.contents) {\n\t\t\tparams.contents.forEach((element) => {\n\t\t\t\tcontents.push(element);\n\t\t\t});\n\t\t}\n\n\t\tconst hidden = params.hidden || false;\n\n\t\treturn {\n\t\t\tname: `lesson #${sequence}`,\n\t\t\tcourse,\n\t\t\tcontents,\n\t\t\thidden,\n\t\t\tmaterials: [],\n\t\t};\n\t}\n);\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LessonModule.html":{"url":"modules/LessonModule.html","title":"module - LessonModule","body":"\n \n\n\n\n\n Modules\n LessonModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LessonModule\n\n\n\ncluster_LessonModule_providers\n\n\n\ncluster_LessonModule_imports\n\n\n\ncluster_LessonModule_exports\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\n\n\nLessonModule\n\nLessonModule\n\nLessonModule -->\n\nCopyHelperModule->LessonModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nLessonModule -->\n\nFilesStorageClientModule->LessonModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nLessonModule -->\n\nLoggerModule->LessonModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nLessonModule -->\n\nTaskModule->LessonModule\n\n\n\n\n\nLessonCopyService \n\nLessonCopyService \n\nLessonCopyService -->\n\nLessonModule->LessonCopyService \n\n\n\n\n\nLessonService \n\nLessonService \n\nLessonService -->\n\nLessonModule->LessonService \n\n\n\n\n\nEtherpadService\n\nEtherpadService\n\nLessonModule -->\n\nEtherpadService->LessonModule\n\n\n\n\n\nFeathersServiceProvider\n\nFeathersServiceProvider\n\nLessonModule -->\n\nFeathersServiceProvider->LessonModule\n\n\n\n\n\nLessonCopyService\n\nLessonCopyService\n\nLessonModule -->\n\nLessonCopyService->LessonModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nLessonModule -->\n\nLessonRepo->LessonModule\n\n\n\n\n\nLessonService\n\nLessonService\n\nLessonModule -->\n\nLessonService->LessonModule\n\n\n\n\n\nNexboardService\n\nNexboardService\n\nLessonModule -->\n\nNexboardService->LessonModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/lesson/lesson.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n EtherpadService\n \n \n FeathersServiceProvider\n \n \n LessonCopyService\n \n \n LessonRepo\n \n \n LessonService\n \n \n NexboardService\n \n \n \n \n Imports\n \n \n CopyHelperModule\n \n \n FilesStorageClientModule\n \n \n LoggerModule\n \n \n TaskModule\n \n \n \n \n Exports\n \n \n LessonCopyService\n \n \n LessonService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { FeathersServiceProvider } from '@shared/infra/feathers';\nimport { LessonRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { FilesStorageClientModule } from '@src/modules/files-storage-client';\nimport { TaskModule } from '@src/modules/task';\nimport { EtherpadService, LessonCopyService, LessonService, NexboardService } from './service';\n\n@Module({\n\timports: [FilesStorageClientModule, LoggerModule, CopyHelperModule, TaskModule],\n\tproviders: [LessonRepo, LessonService, EtherpadService, NexboardService, LessonCopyService, FeathersServiceProvider],\n\texports: [LessonService, LessonCopyService],\n})\nexport class LessonModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonRepo.html":{"url":"injectables/LessonRepo.html","title":"injectable - LessonRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/lesson/lesson.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createLesson\n \n \n Async\n findAllByCourseIds\n \n \n Async\n findById\n \n \n Public\n Async\n findByUserId\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createLesson\n \n \n \n \n \n \n \n createLesson(lesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByCourseIds\n \n \n \n \n \n \n \n findAllByCourseIds(courseIds: EntityId[], filters?: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson.repo.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:17\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson.repo.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/lesson/lesson.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, LessonEntity, SortOrder } from '@shared/domain';\nimport { EntityDictionary } from '@mikro-orm/core';\nimport { BaseRepo } from '../base.repo';\nimport { LessonScope } from './lesson-scope';\n\n@Injectable()\nexport class LessonRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn LessonEntity;\n\t}\n\n\tasync createLesson(lesson: LessonEntity): Promise {\n\t\treturn this.save(this.create(lesson));\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst lesson = await super.findById(id);\n\t\tawait this._em.populate(lesson, ['course', 'tasks', 'materials', 'courseGroup.course']);\n\t\treturn lesson;\n\t}\n\n\tasync findAllByCourseIds(courseIds: EntityId[], filters?: { hidden?: boolean }): Promise> {\n\t\tconst scope = new LessonScope();\n\n\t\tscope.byCourseIds(courseIds);\n\n\t\tif (filters?.hidden !== undefined) {\n\t\t\tscope.byHidden(filters.hidden);\n\t\t}\n\n\t\tconst order = { position: SortOrder.asc };\n\n\t\tconst [lessons, count] = await this._em.findAndCount(LessonEntity, scope.query, { orderBy: order });\n\n\t\tawait this._em.populate(lessons, ['course', 'tasks', 'materials']);\n\n\t\treturn [lessons, count];\n\t}\n\n\tpublic async findByUserId(userId: EntityId): Promise {\n\t\tconst pipeline = [\n\t\t\t{\n\t\t\t\t$match: {\n\t\t\t\t\tcontents: {\n\t\t\t\t\t\t$elemMatch: {\n\t\t\t\t\t\t\tuser: userId,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\n\t\tconst rawLessonsDocuments = await this._em.aggregate(LessonEntity, pipeline);\n\n\t\tconst lessons = rawLessonsDocuments.map((rawLessonDocument) =>\n\t\t\tthis._em.map(LessonEntity, rawLessonDocument as EntityDictionary)\n\t\t);\n\n\t\treturn lessons;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonRule.html":{"url":"injectables/LessonRule.html","title":"injectable - LessonRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/lesson.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n courseGroupPermission\n \n \n Private\n coursePermission\n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n Private\n lessonReadPermission\n \n \n Private\n lessonWritePermission\n \n \n Private\n parentPermission\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper, courseRule: CourseRule, courseGroupRule: CourseGroupRule)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n courseRule\n \n \n CourseRule\n \n \n \n No\n \n \n \n \n courseGroupRule\n \n \n CourseGroupRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n courseGroupPermission\n \n \n \n \n \n \n \n courseGroupPermission(user: User, entity: CourseGroup, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n CourseGroup\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n coursePermission\n \n \n \n \n \n \n \n coursePermission(user: User, entity: Course, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Course\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: LessonEntity, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n lessonReadPermission\n \n \n \n \n \n \n \n lessonReadPermission(user: User, entity: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n lessonWritePermission\n \n \n \n \n \n \n \n lessonWritePermission(user: User, entity: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n parentPermission\n \n \n \n \n \n \n \n parentPermission(user: User, entity: LessonEntity, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:57\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, CourseGroup, LessonEntity, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { CourseGroupRule } from './course-group.rule';\nimport { CourseRule } from './course.rule';\n\n@Injectable()\nexport class LessonRule implements Rule {\n\tconstructor(\n\t\tprivate readonly authorizationHelper: AuthorizationHelper,\n\t\tprivate readonly courseRule: CourseRule,\n\t\tprivate readonly courseGroupRule: CourseGroupRule\n\t) {}\n\n\tpublic isApplicable(user: User, entity: LessonEntity): boolean {\n\t\tconst isMatched = entity instanceof LessonEntity;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: LessonEntity, context: AuthorizationContext): boolean {\n\t\tconst { action, requiredPermissions } = context;\n\t\tlet hasLessonPermission = false;\n\n\t\tif (action === Action.read) {\n\t\t\thasLessonPermission = this.lessonReadPermission(user, entity);\n\t\t} else if (action === Action.write) {\n\t\t\thasLessonPermission = this.lessonWritePermission(user, entity);\n\t\t}\n\n\t\tconst hasUserPermission = this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n\t\tconst result = hasUserPermission && hasLessonPermission;\n\n\t\treturn result;\n\t}\n\n\tprivate lessonReadPermission(user: User, entity: LessonEntity): boolean {\n\t\tconst isVisible = !entity.hidden;\n\t\tlet hasParentReadPermission = false;\n\n\t\tif (isVisible) {\n\t\t\thasParentReadPermission = this.parentPermission(user, entity, Action.read);\n\t\t} else {\n\t\t\thasParentReadPermission = this.parentPermission(user, entity, Action.write);\n\t\t}\n\n\t\treturn hasParentReadPermission;\n\t}\n\n\tprivate lessonWritePermission(user: User, entity: LessonEntity): boolean {\n\t\tconst hasParentWritePermission = this.parentPermission(user, entity, Action.write);\n\n\t\treturn hasParentWritePermission;\n\t}\n\n\tprivate parentPermission(user: User, entity: LessonEntity, action: Action): boolean {\n\t\tlet result = false;\n\n\t\tif (entity.courseGroup) {\n\t\t\tresult = this.courseGroupPermission(user, entity.courseGroup, action);\n\t\t} else if (entity.course) {\n\t\t\tresult = this.coursePermission(user, entity.course, action); // ask course for student = read || teacher, sub-teacher = write\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate coursePermission(user: User, entity: Course, action: Action): boolean {\n\t\tconst result = this.courseRule.hasPermission(user, entity, { action, requiredPermissions: [] });\n\n\t\treturn result;\n\t}\n\n\tprivate courseGroupPermission(user: User, entity: CourseGroup, action: Action): boolean {\n\t\tconst result = this.courseGroupRule.hasPermission(user, entity, {\n\t\t\taction,\n\t\t\trequiredPermissions: [],\n\t\t});\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonScope.html":{"url":"classes/LessonScope.html","title":"class - LessonScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/lesson/lesson-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byCourseIds\n \n \n byHidden\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byCourseIds\n \n \n \n \n \n \nbyCourseIds(courseIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson-scope.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LessonScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byHidden\n \n \n \n \n \n \nbyHidden(isHidden: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson-scope.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isHidden\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LessonScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, LessonEntity } from '@shared/domain';\nimport { Scope } from '../scope';\n\nexport class LessonScope extends Scope {\n\tbyCourseIds(courseIds: EntityId[]): LessonScope {\n\t\tthis.addQuery({ course: { $in: courseIds } });\n\t\treturn this;\n\t}\n\n\tbyHidden(isHidden: boolean): LessonScope {\n\t\tthis.addQuery({ hidden: { $eq: isHidden } });\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonService.html":{"url":"injectables/LessonService.html","title":"injectable - LessonService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/service/lesson.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteLesson\n \n \n Async\n deleteUserDataFromLessons\n \n \n Async\n findByCourseIds\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(lessonRepo: LessonRepo, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteLesson\n \n \n \n \n \n \n \n deleteLesson(lesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteUserDataFromLessons\n \n \n \n \n \n \n \n deleteUserDataFromLessons(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByCourseIds\n \n \n \n \n \n \n \n findByCourseIds(courseIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(lessonId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, IComponentProperties, LessonEntity } from '@shared/domain';\nimport { LessonRepo } from '@shared/repo';\nimport { FilesStorageClientAdapterService } from '@src/modules/files-storage-client';\n\n@Injectable()\nexport class LessonService {\n\tconstructor(\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync deleteLesson(lesson: LessonEntity): Promise {\n\t\tawait this.filesStorageClientAdapterService.deleteFilesOfParent(lesson.id);\n\n\t\tawait this.lessonRepo.delete(lesson);\n\t}\n\n\tasync findById(lessonId: EntityId): Promise {\n\t\treturn this.lessonRepo.findById(lessonId);\n\t}\n\n\tasync findByCourseIds(courseIds: EntityId[]): Promise> {\n\t\treturn this.lessonRepo.findAllByCourseIds(courseIds);\n\t}\n\n\tasync deleteUserDataFromLessons(userId: EntityId): Promise {\n\t\tconst lessons = await this.lessonRepo.findByUserId(userId);\n\n\t\tconst updatedLessons = lessons.map((lesson: LessonEntity) => {\n\t\t\tlesson.contents.map((c: IComponentProperties) => {\n\t\t\t\tif (c.user === userId) {\n\t\t\t\t\tc.user = '';\n\t\t\t\t}\n\t\t\t\treturn c;\n\t\t\t});\n\t\t\treturn lesson;\n\t\t});\n\n\t\tawait this.lessonRepo.save(updatedLessons);\n\n\t\treturn updatedLessons.length;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonUC.html":{"url":"injectables/LessonUC.html","title":"injectable - LessonUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/uc/lesson.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, lessonService: LessonService)\n \n \n \n \n Defined in apps/server/src/modules/lesson/uc/lesson.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n lessonService\n \n \n LessonService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(userId: EntityId, lessonId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/uc/lesson.uc.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n lessonId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LessonService } from '../service';\n\n@Injectable()\nexport class LessonUC {\n\tconstructor(\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly lessonService: LessonService\n\t) {}\n\n\tasync delete(userId: EntityId, lessonId: EntityId) {\n\t\tconst [user, lesson] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.lessonService.findById(lessonId),\n\t\t]);\n\n\t\t// Check by Permission.TOPIC_VIEW because the student doesn't have Permission.TOPIC_EDIT\n\t\t// is required for CourseGroup lessons\n\t\tthis.authorizationService.checkPermission(user, lesson, AuthorizationContextBuilder.write([Permission.TOPIC_VIEW]));\n\n\t\tawait this.lessonService.deleteLesson(lesson);\n\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonUrlParams.html":{"url":"classes/LessonUrlParams.html","title":"class - LessonUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n lessonId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the lesson.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class LessonUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the lesson.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tlessonId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonUrlParams-1.html":{"url":"classes/LessonUrlParams-1.html","title":"class - LessonUrlParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n lessonId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the lesson.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class LessonUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the lesson.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tlessonId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ListOauthClientsParams.html":{"url":"classes/ListOauthClientsParams.html","title":"class - ListOauthClientsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ListOauthClientsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Optional\n offset\n \n \n \n \n \n Optional\n owner\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The name of the clients to filter by.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@Max(500)@IsOptional()@ApiProperty({description: 'The maximum amount of clients to returned, upper bound is 500 clients.', required: false, nullable: false, minimum: 0, maximum: 500})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n offset\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@IsOptional()@ApiProperty({description: 'The offset from where to start looking.', required: false, nullable: false, minimum: 0})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n owner\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The owner of the clients to filter by.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts:45\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsNumber, IsOptional, IsString, Max, Min } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ListOauthClientsParams {\n\t@IsNumber()\n\t@Min(0)\n\t@Max(500)\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The maximum amount of clients to returned, upper bound is 500 clients.',\n\t\trequired: false,\n\t\tnullable: false,\n\t\tminimum: 0,\n\t\tmaximum: 500,\n\t})\n\tlimit?: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The offset from where to start looking.',\n\t\trequired: false,\n\t\tnullable: false,\n\t\tminimum: 0,\n\t})\n\toffset?: number;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The name of the clients to filter by.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tclient_name?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The owner of the clients to filter by.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\towner?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LocalAuthorizationBodyParams.html":{"url":"classes/LocalAuthorizationBodyParams.html","title":"class - LocalAuthorizationBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LocalAuthorizationBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/dto/local-authorization.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/local-authorization.body.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/local-authorization.body.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsNotEmpty, IsString } from 'class-validator';\n\nexport class LocalAuthorizationBodyParams {\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tusername!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tpassword!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LocalStrategy.html":{"url":"injectables/LocalStrategy.html","title":"injectable - LocalStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LocalStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/local.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkCredentials\n \n \n Private\n cleanupInput\n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authenticationService: AuthenticationService, idmOauthService: IdentityManagementOauthService, configService: ConfigService, userRepo: UserRepo)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/local.strategy.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authenticationService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n idmOauthService\n \n \n IdentityManagementOauthService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkCredentials\n \n \n \n \n \n \n \n checkCredentials(enteredPassword: string, savedPassword: string, account: AccountDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/local.strategy.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n enteredPassword\n \n string\n \n\n \n No\n \n\n\n \n \n savedPassword\n \n string\n \n\n \n No\n \n\n\n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n cleanupInput\n \n \n \n \n \n \n \n cleanupInput(username?: string, password?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/local.strategy.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n Yes\n \n\n\n \n \n password\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(username?: string, password?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/local.strategy.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n Yes\n \n\n\n \n \n password\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Strategy } from 'passport-local';\nimport { ConfigService } from '@nestjs/config';\nimport { PassportStrategy } from '@nestjs/passport';\nimport { Injectable, UnauthorizedException } from '@nestjs/common';\nimport bcrypt from 'bcryptjs';\nimport { UserRepo } from '@shared/repo';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { GuardAgainst } from '@shared/common/utils/guard-against';\nimport { IdentityManagementOauthService, IIdentityManagementConfig } from '@shared/infra/identity-management';\nimport { CurrentUserMapper } from '../mapper';\nimport { ICurrentUser } from '../interface';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable()\nexport class LocalStrategy extends PassportStrategy(Strategy) {\n\tconstructor(\n\t\tprivate readonly authenticationService: AuthenticationService,\n\t\tprivate readonly idmOauthService: IdentityManagementOauthService,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly userRepo: UserRepo\n\t) {\n\t\tsuper();\n\t}\n\n\tasync validate(username?: string, password?: string): Promise {\n\t\t({ username, password } = this.cleanupInput(username, password));\n\t\tconst account = await this.authenticationService.loadAccount(username);\n\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED')) {\n\t\t\tconst jwt = await this.idmOauthService.resourceOwnerPasswordGrant(username, password);\n\t\t\tGuardAgainst.nullOrUndefined(jwt, new UnauthorizedException());\n\t\t} else {\n\t\t\tconst accountPassword = GuardAgainst.nullOrUndefined(account.password, new UnauthorizedException());\n\t\t\tawait this.checkCredentials(password, accountPassword, account);\n\t\t}\n\n\t\tconst accountUserId = GuardAgainst.nullOrUndefined(\n\t\t\taccount.userId,\n\t\t\tnew Error(`login failing, because account ${account.id} has no userId`)\n\t\t);\n\t\tconst user = await this.userRepo.findById(accountUserId, true);\n\t\tconst currentUser = CurrentUserMapper.userToICurrentUser(account.id, user);\n\t\treturn currentUser;\n\t}\n\n\tprivate cleanupInput(username?: string, password?: string): { username: string; password: string } {\n\t\tusername = GuardAgainst.nullOrUndefined(username, new UnauthorizedException());\n\t\tpassword = GuardAgainst.nullOrUndefined(password, new UnauthorizedException());\n\t\tusername = this.authenticationService.normalizeUsername(username);\n\t\tpassword = this.authenticationService.normalizePassword(password);\n\t\treturn { username, password };\n\t}\n\n\tprivate async checkCredentials(\n\t\tenteredPassword: string,\n\t\tsavedPassword: string,\n\t\taccount: AccountDto\n\t): Promise {\n\t\tthis.authenticationService.checkBrutForce(account);\n\t\tif (!(await bcrypt.compare(enteredPassword, savedPassword))) {\n\t\t\tawait this.authenticationService.updateLastTriedFailedLogin(account.id);\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Loggable.html":{"url":"interfaces/Loggable.html","title":"interface - Loggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Loggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/interfaces/loggable.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/loggable.ts:4\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n \n\n\n \n import { ErrorLogMessage, LogMessage, ValidationErrorLogMessage } from '../types';\n\nexport interface Loggable {\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/Logger.html":{"url":"injectables/Logger.html","title":"injectable - Logger","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n Logger\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/logger.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n context\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n debug\n \n \n Public\n info\n \n \n Public\n notice\n \n \n Public\n setContext\n \n \n Public\n warning\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: WinstonLogger)\n \n \n \n \n Defined in apps/server/src/core/logger/logger.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n WinstonLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n debug\n \n \n \n \n \n \n \n debug(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n info\n \n \n \n \n \n \n \n info(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n notice\n \n \n \n \n \n \n \n notice(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n setContext\n \n \n \n \n \n \n \n setContext(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n warning\n \n \n \n \n \n \n \n warning(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n context\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : ''\n \n \n \n \n Defined in apps/server/src/core/logger/logger.ts:9\n \n \n\n\n \n \n\n\n \n\n\n \n import { Inject, Injectable, Scope } from '@nestjs/common';\nimport { WINSTON_MODULE_PROVIDER } from 'nest-winston';\nimport { Logger as WinstonLogger } from 'winston';\nimport { Loggable } from './interfaces';\nimport { LoggingUtils } from './logging.utils';\n\n@Injectable({ scope: Scope.TRANSIENT })\nexport class Logger {\n\tprivate context = '';\n\n\tconstructor(@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: WinstonLogger) {}\n\n\tpublic warning(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable, this.context);\n\t\tthis.logger.warning(message);\n\t}\n\n\tpublic notice(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable, this.context);\n\t\tthis.logger.notice(message);\n\t}\n\n\tpublic info(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable, this.context);\n\t\tthis.logger.info(message);\n\t}\n\n\tpublic debug(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable, this.context);\n\t\tthis.logger.debug(message);\n\t}\n\n\tpublic setContext(name: string) {\n\t\tthis.context = name;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LoggerModule.html":{"url":"modules/LoggerModule.html","title":"module - LoggerModule","body":"\n \n\n\n\n\n Modules\n LoggerModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LoggerModule\n\n\n\ncluster_LoggerModule_exports\n\n\n\ncluster_LoggerModule_providers\n\n\n\n\nErrorLogger \n\nErrorLogger \n\n\n\nLegacyLogger \n\nLegacyLogger \n\n\n\nLogger \n\nLogger \n\n\n\nLoggerModule\n\nLoggerModule\n\nErrorLogger -->\n\nLoggerModule->ErrorLogger \n\n\n\nLegacyLogger -->\n\nLoggerModule->LegacyLogger \n\n\n\nLogger -->\n\nLoggerModule->Logger \n\n\n\n\n\nErrorLogger\n\nErrorLogger\n\nLoggerModule -->\n\nErrorLogger->LoggerModule\n\n\n\n\n\nLegacyLogger\n\nLegacyLogger\n\nLoggerModule -->\n\nLegacyLogger->LoggerModule\n\n\n\n\n\nLogger\n\nLogger\n\nLoggerModule -->\n\nLogger->LoggerModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/logger/logger.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ErrorLogger\n \n \n LegacyLogger\n \n \n Logger\n \n \n \n \n Exports\n \n \n ErrorLogger\n \n \n LegacyLogger\n \n \n Logger\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { utilities, WinstonModule } from 'nest-winston';\nimport winston from 'winston';\nimport { ErrorLogger } from './error-logger';\nimport { ILoggerConfig } from './interfaces';\nimport { LegacyLogger } from './legacy-logger.service';\nimport { Logger } from './logger';\n\n@Module({\n\timports: [\n\t\tWinstonModule.forRootAsync({\n\t\t\tuseFactory: (configService: ConfigService) => {\n\t\t\t\treturn {\n\t\t\t\t\tlevels: winston.config.syslog.levels,\n\t\t\t\t\tlevel: configService.get('NEST_LOG_LEVEL'),\n\t\t\t\t\texitOnError: false,\n\t\t\t\t\ttransports: [\n\t\t\t\t\t\tnew winston.transports.Console({\n\t\t\t\t\t\t\thandleExceptions: true,\n\t\t\t\t\t\t\thandleRejections: true,\n\t\t\t\t\t\t\tformat: winston.format.combine(\n\t\t\t\t\t\t\t\twinston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss.SSS' }),\n\t\t\t\t\t\t\t\twinston.format.ms(),\n\t\t\t\t\t\t\t\tutilities.format.nestLike()\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t},\n\t\t\tinject: [ConfigService],\n\t\t}),\n\t],\n\tproviders: [LegacyLogger, Logger, ErrorLogger],\n\texports: [LegacyLogger, Logger, ErrorLogger],\n})\nexport class LoggerModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoggingUtils.html":{"url":"classes/LoggingUtils.html","title":"class - LoggingUtils","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoggingUtils\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/logging.utils.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n createMessageWithContext\n \n \n Static\n isInstanceOfLoggable\n \n \n Private\n Static\n stringifyMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n createMessageWithContext\n \n \n \n \n \n \n \n createMessageWithContext(loggable: Loggable, context?: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logging.utils.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n context\n \n string | undefined\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : LogMessageWithContext\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isInstanceOfLoggable\n \n \n \n \n \n \n \n isInstanceOfLoggable(object: any)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logging.utils.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n object\n \n any\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Loggable\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n stringifyMessage\n \n \n \n \n \n \n \n stringifyMessage(message)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logging.utils.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n message\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import util from 'util';\nimport { Loggable } from './interfaces';\nimport { LogMessageWithContext } from './types';\n\nexport class LoggingUtils {\n\tstatic createMessageWithContext(loggable: Loggable, context?: string | undefined): LogMessageWithContext {\n\t\tconst message = loggable.getLogMessage();\n\t\tconst stringifiedMessage = this.stringifyMessage(message);\n\t\tconst messageWithContext = { message: stringifiedMessage, context };\n\t\treturn messageWithContext;\n\t}\n\n\tprivate static stringifyMessage(message: unknown): string {\n\t\tconst stringifiedMessage = util.inspect(message).replace(/\\n/g, '').replace(/\\\\n/g, '');\n\t\treturn stringifiedMessage;\n\t}\n\n\tstatic isInstanceOfLoggable(object: any): object is Loggable {\n\t\treturn 'getLogMessage' in object;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/LoginController.html":{"url":"controllers/LoginController.html","title":"controller - LoginController","body":"\n \n\n\n\n\n\n\n Controllers\n LoginController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/login.controller.ts\n \n\n \n Prefix\n \n \n authentication\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loginLdap\n \n \n \n \n \n \n \n \n \n Async\n loginLocal\n \n \n \n \n \n \n \n \n \n Async\n loginOauth2\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loginLdap\n \n \n \n \n \n \n \n loginLdap(user: ICurrentUser, _: LdapAuthorizationBodyParams)\n \n \n\n \n \n Decorators : \n \n @UseGuards(undefined)@HttpCode(HttpStatus.OK)@Post('ldap')@ApiOperation({summary: 'Starts the login process for users which are authenticated via LDAP'})@ApiResponse({status: 200, type: LoginResponse, description: 'Login was successful.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.'})\n \n \n\n \n \n Defined in apps/server/src/modules/authentication/controllers/login.controller.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n _\n \n LdapAuthorizationBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loginLocal\n \n \n \n \n \n \n \n loginLocal(user: ICurrentUser, _: LocalAuthorizationBodyParams)\n \n \n\n \n \n Decorators : \n \n @UseGuards(undefined)@HttpCode(HttpStatus.OK)@Post('local')@ApiOperation({summary: 'Starts the login process for users which are locally managed.'})@ApiResponse({status: 200, type: LoginResponse, description: 'Login was successful.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.'})\n \n \n\n \n \n Defined in apps/server/src/modules/authentication/controllers/login.controller.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n _\n \n LocalAuthorizationBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loginOauth2\n \n \n \n \n \n \n \n loginOauth2(user: ICurrentUser, _: Oauth2AuthorizationBodyParams)\n \n \n\n \n \n Decorators : \n \n @UseGuards(undefined)@HttpCode(HttpStatus.OK)@Post('oauth2')@ApiOperation({summary: 'Starts the login process for users which are authenticated via OAuth 2.'})@ApiResponse({status: 200, type: LoginResponse, description: 'Login was successful.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.'})\n \n \n\n \n \n Defined in apps/server/src/modules/authentication/controllers/login.controller.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n _\n \n Oauth2AuthorizationBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, HttpCode, HttpStatus, Post, UseGuards } from '@nestjs/common';\nimport { AuthGuard } from '@nestjs/passport';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ForbiddenOperationError, ValidationError } from '@shared/common';\nimport { CurrentUser } from '../decorator/auth.decorator';\nimport type { ICurrentUser } from '../interface';\nimport { LoginDto } from '../uc/dto';\nimport { LoginUc } from '../uc/login.uc';\nimport {\n\tLdapAuthorizationBodyParams,\n\tLocalAuthorizationBodyParams,\n\tLoginResponse,\n\tOauth2AuthorizationBodyParams,\n} from './dto';\nimport { LoginResponseMapper } from './mapper/login-response.mapper';\n\n@ApiTags('Authentication')\n@Controller('authentication')\nexport class LoginController {\n\tconstructor(private readonly loginUc: LoginUc) {}\n\n\t@UseGuards(AuthGuard('ldap'))\n\t@HttpCode(HttpStatus.OK)\n\t@Post('ldap')\n\t@ApiOperation({ summary: 'Starts the login process for users which are authenticated via LDAP' })\n\t@ApiResponse({ status: 200, type: LoginResponse, description: 'Login was successful.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.' })\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tasync loginLdap(@CurrentUser() user: ICurrentUser, @Body() _: LdapAuthorizationBodyParams): Promise {\n\t\tconst loginDto: LoginDto = await this.loginUc.getLoginData(user);\n\n\t\tconst mapped: LoginResponse = LoginResponseMapper.mapLoginDtoToResponse(loginDto);\n\n\t\treturn mapped;\n\t}\n\n\t@UseGuards(AuthGuard('local'))\n\t@HttpCode(HttpStatus.OK)\n\t@Post('local')\n\t@ApiOperation({ summary: 'Starts the login process for users which are locally managed.' })\n\t@ApiResponse({ status: 200, type: LoginResponse, description: 'Login was successful.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.' })\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tasync loginLocal(@CurrentUser() user: ICurrentUser, @Body() _: LocalAuthorizationBodyParams): Promise {\n\t\tconst loginDto: LoginDto = await this.loginUc.getLoginData(user);\n\n\t\tconst mapped: LoginResponse = LoginResponseMapper.mapLoginDtoToResponse(loginDto);\n\n\t\treturn mapped;\n\t}\n\n\t@UseGuards(AuthGuard('oauth2'))\n\t@HttpCode(HttpStatus.OK)\n\t@Post('oauth2')\n\t@ApiOperation({ summary: 'Starts the login process for users which are authenticated via OAuth 2.' })\n\t@ApiResponse({ status: 200, type: LoginResponse, description: 'Login was successful.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.' })\n\tasync loginOauth2(\n\t\t@CurrentUser() user: ICurrentUser,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t@Body() _: Oauth2AuthorizationBodyParams\n\t): Promise {\n\t\tconst loginDto: LoginDto = await this.loginUc.getLoginData(user);\n\n\t\tconst mapped: LoginResponse = LoginResponseMapper.mapLoginDtoToResponse(loginDto);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginDto.html":{"url":"classes/LoginDto.html","title":"class - LoginDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/uc/dto/login.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n accessToken\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: LoginDto)\n \n \n \n \n Defined in apps/server/src/modules/authentication/uc/dto/login.dto.ts:2\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n LoginDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/authentication/uc/dto/login.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class LoginDto {\n\taccessToken: string;\n\n\tconstructor(props: LoginDto) {\n\t\tthis.accessToken = props.accessToken;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginRequestBody.html":{"url":"classes/LoginRequestBody.html","title":"class - LoginRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/login-request.body.ts\n \n\n\n\n \n Extends\n \n \n OAuthRejectableBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n remember\n \n \n \n \n \n Optional\n remember_for\n \n \n \n \n \n Optional\n error\n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n Optional\n status_code\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n remember\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Remember, if set to true, tells the oauth provider to remember this consent authorization and reuse it if the same client asks the same user for the same, or a subset of, scope.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/login-request.body.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n remember_for\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsInt()@IsOptional()@ApiProperty({description: 'RememberFor sets how long the consent authorization should be remembered for in seconds. If set to 0, the authorization will be remembered indefinitely.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/login-request.body.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The error should follow the OAuth2 error format (e.g. invalid_request, login_required). Defaults to request_denied.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Debug contains information to help resolve the problem as a developer. Usually not exposed to the public but only in the server logs.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:23\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Description of the error in a human readable format.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:32\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Hint to help resolve the error.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:41\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n status_code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@IsOptional()@ApiProperty({description: 'Represents the HTTP status code of the error (e.g. 401 or 403). Defaults to 400.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:50\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsBoolean, IsInt, IsOptional } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { OAuthRejectableBody } from './oauth-rejectable.body';\n\nexport class LoginRequestBody extends OAuthRejectableBody {\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Remember, if set to true, tells the oauth provider to remember this consent authorization and reuse it if the same client asks the same user for the same, or a subset of, scope.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tremember?: boolean;\n\n\t@IsInt()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'RememberFor sets how long the consent authorization should be remembered for in seconds. If set to 0, the authorization will be remembered indefinitely.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tremember_for?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginResponse.html":{"url":"classes/LoginResponse.html","title":"class - LoginResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/dto/login.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: LoginResponse)\n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/login.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n LoginResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/login.response.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class LoginResponse {\n\t@ApiProperty()\n\taccessToken: string;\n\n\tconstructor(props: LoginResponse) {\n\t\tthis.accessToken = props.accessToken;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginResponse-1.html":{"url":"classes/LoginResponse-1.html","title":"class - LoginResponse-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n challenge\n \n \n \n client\n \n \n \n \n Optional\n client_id\n \n \n \n \n Optional\n oidc_context\n \n \n \n \n Optional\n request_url\n \n \n \n \n Optional\n requested_access_token_audience\n \n \n \n \n \n \n Optional\n requested_scope\n \n \n \n \n Optional\n session_id\n \n \n \n skip\n \n \n \n subject\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(loginResponse: LoginResponse)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n loginResponse\n \n \n LoginResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n challenge\n \n \n \n \n \n \n Type : string | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id/challenge of the consent login request.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n Type : OauthClientResponse | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n client_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'Id of the corresponding client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n oidc_context\n \n \n \n \n \n \n Type : OidcContextResponse\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n request_url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'The original oauth2.0 authorization url request by the client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n requested_access_token_audience\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n requested_scope\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The request scopes of the login request.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n session_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'The login session id. This parameter is used as sid for the oidc front-/backchannel logout.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n Type : boolean | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Skip, if true, implies that the client has requested the same scopes from the same user previously.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n Type : string | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'User id of the end-user that is authenticated.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:51\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { OauthClientResponse } from '@src/modules/oauth-provider/controller/dto/response/oauth-client.response';\nimport { OidcContextResponse } from '@src/modules/oauth-provider/controller/dto/response/oidc-context.response';\nimport { IsArray, IsOptional, IsString } from 'class-validator';\n\nexport class LoginResponse {\n\tconstructor(loginResponse: LoginResponse) {\n\t\tObject.assign(this, loginResponse);\n\t}\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'Id of the corresponding client.' })\n\tclient_id?: string;\n\n\t@ApiProperty({ description: 'The id/challenge of the consent login request.' })\n\tchallenge: string | undefined;\n\n\t@ApiProperty()\n\tclient: OauthClientResponse | undefined;\n\n\t@IsOptional()\n\t@ApiProperty()\n\toidc_context?: OidcContextResponse;\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'The original oauth2.0 authorization url request by the client.' })\n\trequest_url?: string;\n\n\t@IsOptional()\n\t@ApiProperty()\n\trequested_access_token_audience?: string[];\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The request scopes of the login request.', required: false, nullable: false })\n\trequested_scope?: string[];\n\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The login session id. This parameter is used as sid for the oidc front-/backchannel logout.',\n\t})\n\tsession_id?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Skip, if true, implies that the client has requested the same scopes from the same user previously.',\n\t})\n\tskip: boolean | undefined;\n\n\t@ApiProperty({ description: 'User id of the end-user that is authenticated.' })\n\tsubject: string | undefined;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginResponseMapper.html":{"url":"classes/LoginResponseMapper.html","title":"class - LoginResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/mapper/login-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapLoginDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapLoginDtoToResponse\n \n \n \n \n \n \n \n mapLoginDtoToResponse(loginDto: LoginDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/controllers/mapper/login-response.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loginDto\n \n LoginDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LoginResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LoginResponse } from '../dto';\nimport { LoginDto } from '../../uc/dto';\n\nexport class LoginResponseMapper {\n\tstatic mapLoginDtoToResponse(loginDto: LoginDto): LoginResponse {\n\t\tconst response: LoginResponse = new LoginResponse({ accessToken: loginDto.accessToken });\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LoginUc.html":{"url":"injectables/LoginUc.html","title":"injectable - LoginUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LoginUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/uc/login.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getLoginData\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authService: AuthenticationService)\n \n \n \n \n Defined in apps/server/src/modules/authentication/uc/login.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getLoginData\n \n \n \n \n \n \n \n getLoginData(userInfo: CreateJwtPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/uc/login.uc.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userInfo\n \n CreateJwtPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { CreateJwtPayload } from '../interface/jwt-payload';\nimport { LoginDto } from './dto';\n\n@Injectable()\nexport class LoginUc {\n\tconstructor(private readonly authService: AuthenticationService) {}\n\n\tasync getLoginData(userInfo: CreateJwtPayload): Promise {\n\t\tconst accessTokenDto: LoginDto = await this.authService.generateJwt(userInfo);\n\n\t\tconst loginDto: LoginDto = new LoginDto({\n\t\t\taccessToken: accessTokenDto.accessToken,\n\t\t});\n\n\t\treturn loginDto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/Lti11EncryptionService.html":{"url":"injectables/Lti11EncryptionService.html","title":"injectable - Lti11EncryptionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n Lti11EncryptionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/lti11-encryption.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n sign\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n sign\n \n \n \n \n \n \n \n sign(key: string, secret: string, url: string, payload: Record)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/lti11-encryption.service.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n key\n \n string\n \n\n \n No\n \n\n\n \n \n secret\n \n string\n \n\n \n No\n \n\n\n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n Record\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Authorization\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport CryptoJS from 'crypto-js';\nimport OAuth, { Authorization, RequestOptions } from 'oauth-1.0a';\n\n@Injectable()\nexport class Lti11EncryptionService {\n\tpublic sign(key: string, secret: string, url: string, payload: Record): Authorization {\n\t\tconst requestData: RequestOptions = {\n\t\t\turl,\n\t\t\tmethod: 'POST',\n\t\t\tdata: payload,\n\t\t};\n\n\t\tconst consumer: OAuth = new OAuth({\n\t\t\tconsumer: {\n\t\t\t\tkey,\n\t\t\t\tsecret,\n\t\t\t},\n\t\t\tsignature_method: 'HMAC-SHA1',\n\t\t\thash_function: (base_string: string, hashKey: string) =>\n\t\t\t\tCryptoJS.HmacSHA1(base_string, hashKey).toString(CryptoJS.enc.Base64),\n\t\t});\n\n\t\tconst authorization: Authorization = consumer.authorize(requestData);\n\n\t\treturn authorization;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfig.html":{"url":"classes/Lti11ToolConfig.html","title":"class - Lti11ToolConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n key\n \n \n launch_presentation_locale\n \n \n lti_message_type\n \n \n privacy_permission\n \n \n Optional\n resource_link_id\n \n \n secret\n \n \n baseUrl\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Lti11ToolConfig)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Lti11ToolConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:4\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LtiMessageType, LtiPrivacyPermission, ToolConfigType } from '../../../common/enum';\nimport { ExternalToolConfig } from './external-tool-config.do';\n\nexport class Lti11ToolConfig extends ExternalToolConfig {\n\tkey: string;\n\n\tsecret: string;\n\n\tresource_link_id?: string;\n\n\tlti_message_type: LtiMessageType;\n\n\tprivacy_permission: LtiPrivacyPermission;\n\n\tlaunch_presentation_locale: string;\n\n\tconstructor(props: Lti11ToolConfig) {\n\t\tsuper({\n\t\t\ttype: ToolConfigType.LTI11,\n\t\t\tbaseUrl: props.baseUrl,\n\t\t});\n\t\tthis.key = props.key;\n\t\tthis.secret = props.secret;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.privacy_permission = props.privacy_permission;\n\t\tthis.launch_presentation_locale = props.launch_presentation_locale;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfigCreateParams.html":{"url":"classes/Lti11ToolConfigCreateParams.html","title":"class - Lti11ToolConfigCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfigCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n key\n \n \n \n \n launch_presentation_locale\n \n \n \n \n lti_message_type\n \n \n \n \n privacy_permission\n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n secret\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsLocale()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(LtiMessageType)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(LtiPrivacyPermission)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsEnum, IsLocale, IsOptional, IsString } from 'class-validator';\nimport { LtiMessageType, LtiPrivacyPermission, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\n\nexport class Lti11ToolConfigCreateParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tkey!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tsecret!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tresource_link_id?: string;\n\n\t@IsEnum(LtiMessageType)\n\t@ApiProperty()\n\tlti_message_type!: LtiMessageType;\n\n\t@IsEnum(LtiPrivacyPermission)\n\t@ApiProperty()\n\tprivacy_permission!: LtiPrivacyPermission;\n\n\t@IsLocale()\n\t@ApiProperty()\n\tlaunch_presentation_locale!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfigEntity.html":{"url":"classes/Lti11ToolConfigEntity.html","title":"class - Lti11ToolConfigEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfigEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigEntity\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n key\n \n \n \n launch_presentation_locale\n \n \n \n lti_message_type\n \n \n \n privacy_permission\n \n \n \n Optional\n resource_link_id\n \n \n \n secret\n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Lti11ToolConfigEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:24\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Lti11ToolConfigEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { LtiPrivacyPermission } from '@shared/domain/entity/ltitool.entity';\nimport { LtiMessageType, ToolConfigType } from '../../../common/enum';\nimport { ExternalToolConfigEntity } from './external-tool-config.entity';\n\n@Embeddable({ discriminatorValue: ToolConfigType.LTI11 })\nexport class Lti11ToolConfigEntity extends ExternalToolConfigEntity {\n\t@Property()\n\tkey: string;\n\n\t@Property()\n\tsecret: string;\n\n\t@Property({ nullable: true })\n\tresource_link_id?: string;\n\n\t@Enum()\n\tlti_message_type: LtiMessageType;\n\n\t@Enum()\n\tprivacy_permission: LtiPrivacyPermission;\n\n\t@Property()\n\tlaunch_presentation_locale: string;\n\n\tconstructor(props: Lti11ToolConfigEntity) {\n\t\tsuper(props);\n\t\tthis.type = ToolConfigType.LTI11;\n\t\tthis.key = props.key;\n\t\tthis.secret = props.secret;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.privacy_permission = props.privacy_permission;\n\t\tthis.launch_presentation_locale = props.launch_presentation_locale;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfigResponse.html":{"url":"classes/Lti11ToolConfigResponse.html","title":"class - Lti11ToolConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n key\n \n \n \n launch_presentation_locale\n \n \n \n lti_message_type\n \n \n \n privacy_permission\n \n \n \n Optional\n resource_link_id\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Lti11ToolConfigResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:25\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Lti11ToolConfigResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { LtiMessageType, LtiPrivacyPermission, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigResponse } from './external-tool-config.response';\n\nexport class Lti11ToolConfigResponse extends ExternalToolConfigResponse {\n\t@ApiProperty()\n\ttype: ToolConfigType;\n\n\t@ApiProperty()\n\tbaseUrl: string;\n\n\t@ApiProperty()\n\tkey: string;\n\n\t@ApiPropertyOptional()\n\tresource_link_id?: string;\n\n\t@ApiProperty()\n\tlti_message_type: LtiMessageType;\n\n\t@ApiProperty()\n\tprivacy_permission: LtiPrivacyPermission;\n\n\t@ApiProperty()\n\tlaunch_presentation_locale: string;\n\n\tconstructor(props: Lti11ToolConfigResponse) {\n\t\tsuper();\n\t\tthis.type = ToolConfigType.LTI11;\n\t\tthis.baseUrl = props.baseUrl;\n\t\tthis.key = props.key;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.privacy_permission = props.privacy_permission;\n\t\tthis.launch_presentation_locale = props.launch_presentation_locale;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfigUpdateParams.html":{"url":"classes/Lti11ToolConfigUpdateParams.html","title":"class - Lti11ToolConfigUpdateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfigUpdateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n key\n \n \n \n \n launch_presentation_locale\n \n \n \n \n lti_message_type\n \n \n \n \n privacy_permission\n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n Optional\n secret\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsLocale()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(LtiMessageType)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(LtiPrivacyPermission)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsEnum, IsLocale, IsOptional, IsString } from 'class-validator';\nimport { LtiMessageType, LtiPrivacyPermission, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\n\nexport class Lti11ToolConfigUpdateParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tkey!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tsecret?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tresource_link_id?: string;\n\n\t@IsEnum(LtiMessageType)\n\t@ApiProperty()\n\tlti_message_type!: LtiMessageType;\n\n\t@IsEnum(LtiPrivacyPermission)\n\t@ApiProperty()\n\tprivacy_permission!: LtiPrivacyPermission;\n\n\t@IsLocale()\n\t@ApiProperty()\n\tlaunch_presentation_locale!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/Lti11ToolLaunchStrategy.html":{"url":"injectables/Lti11ToolLaunchStrategy.html","title":"injectable - Lti11ToolLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n Lti11ToolLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/lti11-tool-launch.strategy.ts\n \n\n\n\n \n Extends\n \n \n AbstractLaunchStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n \n Async\n buildToolLaunchDataFromConcreteConfig\n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n Public\n \n determineLaunchRequestMethod\n \n \n Private\n Async\n addParameters\n \n \n Private\n addProperty\n \n \n Private\n applyPropertiesToPathParams\n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n Private\n buildUrl\n \n \n Public\n Async\n createLaunchData\n \n \n Public\n createLaunchRequest\n \n \n Private\n Async\n getParameterValue\n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, pseudonymService: PseudonymService, lti11EncryptionService: Lti11EncryptionService, schoolService: LegacySchoolService, courseService: CourseService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/lti11-tool-launch.strategy.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n pseudonymService\n \n \n PseudonymService\n \n \n \n No\n \n \n \n \n lti11EncryptionService\n \n \n Lti11EncryptionService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n \n Async\n buildToolLaunchDataFromConcreteConfig\n \n \n \n \n \n \n \n buildToolLaunchDataFromConcreteConfig(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n \n \n \n \n \n buildToolLaunchRequestPayload(url: string, properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:122\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n determineLaunchRequestMethod\n \n \n \n \n \n \n \n determineLaunchRequestMethod(properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:147\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LaunchRequestMethod\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n \n \n \n \n \n addParameters(propertyData: PropertyData[], customParameterDOs: CustomParameter[], scopes: literal type[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:141\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n customParameterDOs\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n scopes\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n addProperty\n \n \n \n \n \n \n \n addProperty(propertyData: PropertyData[], propertyName: string, value: string | undefined, customParameterLocation: CustomParameterLocation)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:246\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n propertyName\n \n string\n \n\n \n No\n \n\n\n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n customParameterLocation\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n applyPropertiesToPathParams\n \n \n \n \n \n \n \n applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:91\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n URL\n \n\n \n No\n \n\n\n \n \n pathProperties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n \n \n \n \n \n buildToolLaunchDataFromExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:114\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n \n \n \n \n \n buildToolLaunchDataFromTools(data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:125\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildUrl\n \n \n \n \n \n \n \n buildUrl(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:65\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createLaunchData\n \n \n \n \n \n \n \n createLaunchData(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n createLaunchRequest\n \n \n \n \n \n \n \n createLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getParameterValue\n \n \n \n \n \n \n \n getParameterValue(customParameter: CustomParameter, matchingParameterEntry: CustomParameterEntry | undefined, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:204\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n matchingParameterEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n \n \n \n handleParametersToInclude(propertyData: PropertyData[], parametersToInclude: CustomParameter[], params: CustomParameterEntry[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:167\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n parametersToInclude\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n params\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, LtiPrivacyPermission, Pseudonym, RoleName, UserDO } from '@shared/domain';\nimport { RoleReference } from '@shared/domain/domainobject';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { PseudonymService } from '@src/modules/pseudonym';\nimport { UserService } from '@src/modules/user';\nimport { Authorization } from 'oauth-1.0a';\nimport { LtiRole } from '../../../common/enum';\nimport { ExternalTool } from '../../../external-tool/domain';\nimport { LtiRoleMapper } from '../../mapper';\nimport { LaunchRequestMethod, PropertyData, PropertyLocation } from '../../types';\nimport { Lti11EncryptionService } from '../lti11-encryption.service';\nimport { AbstractLaunchStrategy } from './abstract-launch.strategy';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\n\n@Injectable()\nexport class Lti11ToolLaunchStrategy extends AbstractLaunchStrategy {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly lti11EncryptionService: Lti11EncryptionService,\n\t\tschoolService: LegacySchoolService,\n\t\tcourseService: CourseService\n\t) {\n\t\tsuper(schoolService, courseService);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tpublic override async buildToolLaunchDataFromConcreteConfig(\n\t\tuserId: EntityId,\n\t\tdata: IToolLaunchParams\n\t): Promise {\n\t\tconst { config } = data.externalTool;\n\t\tconst contextId: EntityId = data.contextExternalTool.contextRef.id;\n\n\t\tif (!ExternalTool.isLti11Config(config)) {\n\t\t\tthrow new UnprocessableEntityException(\n\t\t\t\t`Unable to build LTI 1.1 launch data. Tool configuration is of type ${config.type}. Expected \"lti11\"`\n\t\t\t);\n\t\t}\n\n\t\tconst user: UserDO = await this.userService.findById(userId);\n\n\t\tconst roleNames: RoleName[] = user.roles.map((roleRef: RoleReference): RoleName => roleRef.name);\n\t\tconst ltiRoles: LtiRole[] = LtiRoleMapper.mapRolesToLtiRoles(roleNames);\n\n\t\tconst additionalProperties: PropertyData[] = [\n\t\t\tnew PropertyData({ name: 'key', value: config.key }),\n\t\t\tnew PropertyData({ name: 'secret', value: config.secret }),\n\n\t\t\tnew PropertyData({ name: 'lti_message_type', value: config.lti_message_type, location: PropertyLocation.BODY }),\n\t\t\tnew PropertyData({ name: 'lti_version', value: 'LTI-1p0', location: PropertyLocation.BODY }),\n\t\t\tnew PropertyData({\n\t\t\t\tname: 'resource_link_id',\n\t\t\t\tvalue: config.resource_link_id || contextId,\n\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t}),\n\t\t\tnew PropertyData({\n\t\t\t\tname: 'launch_presentation_document_target',\n\t\t\t\tvalue: 'window',\n\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t}),\n\t\t\tnew PropertyData({\n\t\t\t\tname: 'launch_presentation_locale',\n\t\t\t\tvalue: config.launch_presentation_locale,\n\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t}),\n\t\t\tnew PropertyData({\n\t\t\t\tname: 'roles',\n\t\t\t\tvalue: ltiRoles.join(','),\n\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t}),\n\t\t];\n\n\t\tif (config.privacy_permission === LtiPrivacyPermission.NAME) {\n\t\t\tconst displayName: string = await this.userService.getDisplayName(user);\n\n\t\t\tadditionalProperties.push(\n\t\t\t\tnew PropertyData({\n\t\t\t\t\tname: 'lis_person_name_full',\n\t\t\t\t\tvalue: displayName,\n\t\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tif (config.privacy_permission === LtiPrivacyPermission.EMAIL) {\n\t\t\tadditionalProperties.push(\n\t\t\t\tnew PropertyData({\n\t\t\t\t\tname: 'lis_person_contact_email_primary',\n\t\t\t\t\tvalue: user.email,\n\t\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tif (config.privacy_permission === LtiPrivacyPermission.PSEUDONYMOUS) {\n\t\t\tconst pseudonym: Pseudonym = await this.pseudonymService.findOrCreatePseudonym(user, data.externalTool);\n\n\t\t\tadditionalProperties.push(\n\t\t\t\tnew PropertyData({\n\t\t\t\t\tname: 'user_id',\n\t\t\t\t\tvalue: pseudonym.pseudonym,\n\t\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tadditionalProperties.push(\n\t\t\t\tnew PropertyData({\n\t\t\t\t\tname: 'user_id',\n\t\t\t\t\tvalue: userId,\n\t\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\treturn additionalProperties;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic override buildToolLaunchRequestPayload(url: string, properties: PropertyData[]): string | null {\n\t\tconst bodyProperties: PropertyData[] = properties.filter(\n\t\t\t(property: PropertyData) => property.location === PropertyLocation.BODY\n\t\t);\n\t\tconst payload: Record = {};\n\n\t\tfor (const property of bodyProperties) {\n\t\t\tpayload[property.name] = property.value;\n\t\t}\n\n\t\tconst key: PropertyData | undefined = properties.find((property: PropertyData) => property.name === 'key');\n\t\tconst secret: PropertyData | undefined = properties.find((property: PropertyData) => property.name === 'secret');\n\n\t\tif (!key || !secret) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'Unable to build LTI 1.1 launch payload. \"key\" or \"secret\" is undefined in PropertyData'\n\t\t\t);\n\t\t}\n\n\t\tconst signedPayload: Authorization = this.lti11EncryptionService.sign(key.value, secret.value, url, payload);\n\n\t\treturn JSON.stringify(signedPayload);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tpublic override determineLaunchRequestMethod(properties: PropertyData[]): LaunchRequestMethod {\n\t\treturn LaunchRequestMethod.POST;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LtiRoleMapper.html":{"url":"classes/LtiRoleMapper.html","title":"class - LtiRoleMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LtiRoleMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/mapper/lti-role.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapRolesToLtiRoles\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapRolesToLtiRoles\n \n \n \n \n \n \n \n mapRolesToLtiRoles(roleNames: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/lti-role.mapper.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleNames\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LtiRole[]\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { RoleName } from '@shared/domain';\nimport { LtiRole } from '../../common/enum';\n\nconst RoleMapping: Partial> = {\n\t[RoleName.USER]: LtiRole.LEARNER,\n\t[RoleName.STUDENT]: LtiRole.LEARNER,\n\t[RoleName.TEACHER]: LtiRole.INSTRUCTOR,\n\t[RoleName.ADMINISTRATOR]: LtiRole.ADMINISTRATOR,\n\t[RoleName.SUPERHERO]: LtiRole.ADMINISTRATOR,\n};\n\nexport class LtiRoleMapper {\n\tpublic static mapRolesToLtiRoles(roleNames: RoleName[]): LtiRole[] {\n\t\tconst ltiRoles: (LtiRole | undefined)[] = roleNames.map((roleName: RoleName) => RoleMapping[roleName]);\n\n\t\tconst filterUndefined: LtiRole[] = ltiRoles.filter(\n\t\t\t(ltiRole: LtiRole | undefined): ltiRole is LtiRole => ltiRole !== undefined\n\t\t);\n\n\t\treturn filterUndefined;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/LtiTool.html":{"url":"entities/LtiTool.html","title":"entity - LtiTool","body":"\n \n\n\n\n\n\n\n\n Entities\n LtiTool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/ltitool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n _originToolId\n \n \n \n customs\n \n \n \n \n Optional\n friendlyUrl\n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n isHidden\n \n \n \n Optional\n isLocal\n \n \n \n isTemplate\n \n \n \n key\n \n \n \n Optional\n logo_url\n \n \n \n Optional\n lti_message_type\n \n \n \n Optional\n lti_version\n \n \n \n name\n \n \n \n Optional\n oAuthClientId\n \n \n \n openNewTab\n \n \n \n privacy_permission\n \n \n \n Optional\n resource_link_id\n \n \n \n \n Optional\n roles\n \n \n \n secret\n \n \n \n Optional\n skipConsent\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n _originToolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'originTool'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:77\n \n \n\n\n \n \n \n \n \n \n \n \n \n customs\n \n \n \n \n \n \n Type : CustomLtiProperty[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:68\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n friendlyUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Unique({options: undefined})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:89\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:98\n \n \n\n\n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false, default: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:101\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n isLocal\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:74\n \n \n\n\n \n \n \n \n \n \n \n \n \n isTemplate\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false, default: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:71\n \n \n\n\n \n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logo_url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lti_message_type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lti_version\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oAuthClientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:85\n \n \n\n\n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false, default: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:95\n \n \n\n\n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @Enum({items: () => LtiPrivacyPermission, default: undefined, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n roles\n \n \n \n \n \n \n Type : LtiRoleType[]\n\n \n \n \n \n Decorators : \n \n \n @Enum({array: true, items: () => LtiRoleType})@Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false, default: 'none'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:92\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:36\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport type ILtiToolProperties = Readonly>;\n\nexport enum LtiRoleType {\n\tLEARNER = 'Learner',\n\tINSTRUCTOR = 'Instructor',\n\tCONTENT_DEVELOPER = 'ContentDeveloper',\n\tADMINISTRATOR = 'Administrator',\n\tMENTOR = 'Mentor',\n\tTEACHING_ASSISTANT = 'TeachingAssistant',\n}\n\nexport enum LtiPrivacyPermission {\n\tANONYMOUS = 'anonymous',\n\tEMAIL = 'e-mail',\n\tNAME = 'name',\n\tPUBLIC = 'public',\n\tPSEUDONYMOUS = 'pseudonymous',\n}\n\nexport interface CustomLtiProperty {\n\tkey: string;\n\tvalue: string;\n}\n\n@Entity({ tableName: 'ltitools' })\nexport class LtiTool extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\turl: string;\n\n\t@Property({ nullable: true })\n\tkey: string;\n\n\t@Property({ nullable: false, default: 'none' })\n\tsecret: string;\n\n\t@Property({ nullable: true })\n\tlogo_url?: string;\n\n\t@Property({ nullable: true })\n\tlti_message_type?: string;\n\n\t@Property({ nullable: true })\n\tlti_version?: string;\n\n\t@Property({ nullable: true })\n\tresource_link_id?: string;\n\n\t@Enum({ array: true, items: () => LtiRoleType })\n\t@Property({ nullable: true })\n\troles?: LtiRoleType[];\n\n\t@Enum({\n\t\titems: () => LtiPrivacyPermission,\n\t\tdefault: LtiPrivacyPermission.ANONYMOUS,\n\t\tnullable: false,\n\t})\n\tprivacy_permission: LtiPrivacyPermission;\n\n\t@Property({ nullable: false })\n\tcustoms: CustomLtiProperty[];\n\n\t@Property({ nullable: false, default: false })\n\tisTemplate: boolean;\n\n\t@Property({ nullable: true })\n\tisLocal?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'originTool' })\n\t_originToolId?: ObjectId;\n\n\t@Property({ persist: false, getter: true })\n\tget originToolId(): EntityId | undefined {\n\t\treturn this._originToolId?.toHexString();\n\t}\n\n\t@Property({ nullable: true })\n\toAuthClientId?: string;\n\n\t@Property({ nullable: true })\n\t@Unique({ options: { sparse: true } })\n\tfriendlyUrl?: string;\n\n\t@Property({ nullable: true })\n\tskipConsent?: boolean;\n\n\t@Property({ nullable: false, default: false })\n\topenNewTab: boolean;\n\n\t@Property({ nullable: true })\n\tfrontchannel_logout_uri?: string;\n\n\t@Property({ nullable: false, default: false })\n\tisHidden: boolean;\n\n\tconstructor(props: ILtiToolProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.key = props.key || 'none';\n\t\tthis.secret = props.secret || 'none';\n\t\tthis.logo_url = props.logo_url;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.lti_version = props.lti_version;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.roles = props.roles || [];\n\t\tthis.privacy_permission = props.privacy_permission || LtiPrivacyPermission.ANONYMOUS;\n\t\tthis.customs = props.customs || [];\n\t\tthis.isTemplate = props.isTemplate || false;\n\t\tthis.isLocal = props.isLocal;\n\t\tif (props.originToolId !== undefined) {\n\t\t\tthis._originToolId = new ObjectId(props.originToolId);\n\t\t}\n\t\tthis.oAuthClientId = props.oAuthClientId;\n\t\tthis.friendlyUrl = props.friendlyUrl;\n\t\tthis.skipConsent = props.skipConsent;\n\t\tthis.openNewTab = props.openNewTab || false;\n\t\tthis.frontchannel_logout_uri = props.frontchannel_logout_uri;\n\t\tthis.isHidden = props.isHidden || false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LtiToolDO.html":{"url":"classes/LtiToolDO.html","title":"class - LtiToolDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LtiToolDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/ltitool.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n customs\n \n \n Optional\n friendlyUrl\n \n \n Optional\n frontchannel_logout_uri\n \n \n isHidden\n \n \n Optional\n isLocal\n \n \n isTemplate\n \n \n key\n \n \n Optional\n logo_url\n \n \n Optional\n lti_message_type\n \n \n Optional\n lti_version\n \n \n name\n \n \n Optional\n oAuthClientId\n \n \n openNewTab\n \n \n Optional\n originToolId\n \n \n privacy_permission\n \n \n Optional\n resource_link_id\n \n \n roles\n \n \n secret\n \n \n Optional\n skipConsent\n \n \n url\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(domainObject: LtiToolDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:55\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n \n LtiToolDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n customs\n \n \n \n \n \n \n Type : CustomLtiPropertyDO[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n friendlyUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n isLocal\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n isTemplate\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logo_url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lti_message_type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lti_version\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oAuthClientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n originToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Type : LtiRoleType[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LtiPrivacyPermission, LtiRoleType } from '@shared/domain/entity/ltitool.entity';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseDO } from './base.do';\n\nexport class CustomLtiPropertyDO {\n\tkey: string;\n\n\tvalue: string;\n\n\tconstructor(key: string, value: string) {\n\t\tthis.key = key;\n\t\tthis.value = value;\n\t}\n}\n\nexport class LtiToolDO extends BaseDO {\n\tname: string;\n\n\turl: string;\n\n\tkey: string;\n\n\tsecret: string;\n\n\tlogo_url?: string;\n\n\tlti_message_type?: string;\n\n\tlti_version?: string;\n\n\tresource_link_id?: string;\n\n\troles: LtiRoleType[];\n\n\tprivacy_permission: LtiPrivacyPermission;\n\n\tcustoms: CustomLtiPropertyDO[];\n\n\tisTemplate: boolean;\n\n\tisLocal?: boolean;\n\n\toriginToolId?: EntityId;\n\n\toAuthClientId?: string;\n\n\tfriendlyUrl?: string;\n\n\tskipConsent?: boolean;\n\n\topenNewTab: boolean;\n\n\tfrontchannel_logout_uri?: string;\n\n\tisHidden: boolean;\n\n\tconstructor(domainObject: LtiToolDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.name = domainObject.name;\n\t\tthis.url = domainObject.url;\n\t\tthis.key = domainObject.key;\n\t\tthis.secret = domainObject.secret;\n\t\tthis.logo_url = domainObject.logo_url;\n\t\tthis.lti_message_type = domainObject.lti_message_type;\n\t\tthis.lti_version = domainObject.lti_version;\n\t\tthis.resource_link_id = domainObject.resource_link_id;\n\t\tthis.roles = domainObject.roles;\n\t\tthis.privacy_permission = domainObject.privacy_permission;\n\t\tthis.customs = domainObject.customs;\n\t\tthis.isTemplate = domainObject.isTemplate;\n\t\tthis.isLocal = domainObject.isLocal;\n\t\tthis.originToolId = domainObject.originToolId;\n\t\tthis.oAuthClientId = domainObject.oAuthClientId;\n\t\tthis.friendlyUrl = domainObject.friendlyUrl;\n\t\tthis.skipConsent = domainObject.skipConsent;\n\t\tthis.openNewTab = domainObject.openNewTab;\n\t\tthis.frontchannel_logout_uri = domainObject.frontchannel_logout_uri;\n\t\tthis.isHidden = domainObject.isHidden;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LtiToolFactory.html":{"url":"classes/LtiToolFactory.html","title":"class - LtiToolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LtiToolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/ltitool.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withName\n \n \n withOauthClientId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withName\n \n \n \n \n \n \nwithName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/ltitool.factory.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOauthClientId\n \n \n \n \n \n \nwithOauthClientId(oAuthClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/ltitool.factory.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oAuthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ILtiToolProperties, LtiPrivacyPermission, LtiRoleType, LtiTool } from '@shared/domain/';\nimport { CustomLtiPropertyDO } from '@shared/domain/domainobject/ltitool.do';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\nimport { DeepPartial } from 'fishery';\n\nclass LtiToolFactory extends BaseFactory {\n\twithName(name: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tname,\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithOauthClientId(oAuthClientId: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\toAuthClientId,\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const ltiToolFactory = LtiToolFactory.define(LtiTool, ({ sequence }) => {\n\treturn {\n\t\tname: `ltiTool-${sequence}`,\n\t\tisLocal: true,\n\t\toAuthClientId: 'clientId',\n\t\tsecret: 'secret',\n\t\tcustoms: [new CustomLtiPropertyDO('key', 'value')],\n\t\tisHidden: false,\n\t\tisTemplate: false,\n\t\tkey: 'key',\n\t\topenNewTab: false,\n\t\toriginToolId: 'originToolId',\n\t\tprivacy_permission: LtiPrivacyPermission.NAME,\n\t\troles: [LtiRoleType.INSTRUCTOR, LtiRoleType.LEARNER],\n\t\turl: 'url',\n\t\tfriendlyUrl: 'friendlyUrl',\n\t\tfrontchannel_logout_uri: 'frontchannel_logout_uri',\n\t\tlogo_url: 'logo_url',\n\t\tlti_message_type: 'lti_message_type',\n\t\tlti_version: 'lti_version',\n\t\tresource_link_id: 'resource_link_id',\n\t\tskipConsent: true,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LtiToolModule.html":{"url":"modules/LtiToolModule.html","title":"module - LtiToolModule","body":"\n \n\n\n\n\n Modules\n LtiToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LtiToolModule\n\n\n\ncluster_LtiToolModule_providers\n\n\n\ncluster_LtiToolModule_exports\n\n\n\n\nLtiToolService \n\nLtiToolService \n\n\n\nLtiToolModule\n\nLtiToolModule\n\nLtiToolService -->\n\nLtiToolModule->LtiToolService \n\n\n\n\n\nLegacyLogger\n\nLegacyLogger\n\nLtiToolModule -->\n\nLegacyLogger->LtiToolModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nLtiToolModule -->\n\nLtiToolRepo->LtiToolModule\n\n\n\n\n\nLtiToolService\n\nLtiToolService\n\nLtiToolModule -->\n\nLtiToolService->LtiToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/lti-tool/lti-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n LegacyLogger\n \n \n LtiToolRepo\n \n \n LtiToolService\n \n \n \n \n Exports\n \n \n LtiToolService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { LtiToolService } from './service';\n\n@Module({\n\tproviders: [LtiToolService, LtiToolRepo, LegacyLogger],\n\texports: [LtiToolService],\n})\nexport class LtiToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LtiToolRepo.html":{"url":"injectables/LtiToolRepo.html","title":"injectable - LtiToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LtiToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/ltitool/ltitool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findByClientIdAndIsLocal\n \n \n Async\n findByName\n \n \n Async\n findByOauthClientId\n \n \n Protected\n mapDOToEntityProperties\n \n \n Protected\n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: ILtiToolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:13\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ILtiToolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LtiTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByClientIdAndIsLocal\n \n \n \n \n \n \n \n findByClientIdAndIsLocal(oAuthClientId: string, isLocal: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/ltitool/ltitool.repo.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oAuthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n isLocal\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByName\n \n \n \n \n \n \n \n findByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/ltitool/ltitool.repo.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByOauthClientId\n \n \n \n \n \n \n \n findByOauthClientId(oAuthClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/ltitool/ltitool.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oAuthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(entityDO: LtiToolDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:69\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ILtiToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: LtiTool)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:43\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n LtiTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LtiToolDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/ltitool/ltitool.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { EntityName, NotFoundError } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { ILtiToolProperties, LtiPrivacyPermission, LtiTool } from '@shared/domain';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { BaseDORepo } from '@shared/repo/base.do.repo';\n\n@Injectable()\nexport class LtiToolRepo extends BaseDORepo {\n\tget entityName(): EntityName {\n\t\treturn LtiTool;\n\t}\n\n\tentityFactory(props: ILtiToolProperties): LtiTool {\n\t\treturn new LtiTool(props);\n\t}\n\n\tasync findByName(name: string): Promise {\n\t\tconst entities: LtiTool[] = await this._em.find(LtiTool, { name });\n\t\tif (entities.length === 0) {\n\t\t\tthrow new NotFoundError(`LtiTool with ${name} was not found.`);\n\t\t}\n\t\tconst dos: LtiToolDO[] = entities.map((entity) => this.mapEntityToDO(entity));\n\t\treturn dos;\n\t}\n\n\tasync findByOauthClientId(oAuthClientId: string): Promise {\n\t\tconst entity = await this._em.findOneOrFail(LtiTool, { oAuthClientId });\n\t\treturn this.mapEntityToDO(entity);\n\t}\n\n\tasync findByClientIdAndIsLocal(oAuthClientId: string, isLocal: boolean): Promise {\n\t\tconst entity: LtiTool | null = await this._em.findOne(LtiTool, { oAuthClientId, isLocal });\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainObject: LtiToolDO = this.mapEntityToDO(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tprotected mapEntityToDO(entity: LtiTool): LtiToolDO {\n\t\treturn new LtiToolDO({\n\t\t\tid: entity.id,\n\t\t\tname: entity.name,\n\t\t\turl: entity.url,\n\t\t\tkey: entity.key,\n\t\t\tsecret: entity.secret,\n\t\t\tlogo_url: entity.logo_url,\n\t\t\tlti_message_type: entity.lti_message_type,\n\t\t\tlti_version: entity.lti_version,\n\t\t\tresource_link_id: entity.resource_link_id,\n\t\t\troles: entity.roles || [],\n\t\t\tprivacy_permission: entity.privacy_permission || LtiPrivacyPermission.ANONYMOUS,\n\t\t\tcustoms: entity.customs,\n\t\t\tisTemplate: entity.isTemplate,\n\t\t\tisLocal: entity.isLocal,\n\t\t\toriginToolId: entity.originToolId,\n\t\t\toAuthClientId: entity.oAuthClientId,\n\t\t\tfriendlyUrl: entity.friendlyUrl,\n\t\t\tskipConsent: entity.skipConsent,\n\t\t\topenNewTab: entity.openNewTab,\n\t\t\tfrontchannel_logout_uri: entity.frontchannel_logout_uri,\n\t\t\tisHidden: entity.isHidden,\n\t\t});\n\t}\n\n\tprotected mapDOToEntityProperties(entityDO: LtiToolDO): ILtiToolProperties {\n\t\treturn {\n\t\t\tname: entityDO.name,\n\t\t\turl: entityDO.url,\n\t\t\tkey: entityDO.key,\n\t\t\tsecret: entityDO.secret,\n\t\t\tlogo_url: entityDO.logo_url,\n\t\t\tlti_message_type: entityDO.lti_message_type,\n\t\t\tlti_version: entityDO.lti_version,\n\t\t\tresource_link_id: entityDO.resource_link_id,\n\t\t\troles: entityDO.roles,\n\t\t\tprivacy_permission: entityDO.privacy_permission,\n\t\t\tcustoms: entityDO.customs,\n\t\t\tisTemplate: entityDO.isTemplate,\n\t\t\tisLocal: entityDO.isLocal,\n\t\t\toriginToolId: entityDO.originToolId,\n\t\t\toAuthClientId: entityDO.oAuthClientId,\n\t\t\tfriendlyUrl: entityDO.friendlyUrl,\n\t\t\tskipConsent: entityDO.skipConsent,\n\t\t\topenNewTab: entityDO.openNewTab,\n\t\t\tfrontchannel_logout_uri: entityDO.frontchannel_logout_uri,\n\t\t\tisHidden: entityDO.isHidden,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LtiToolService.html":{"url":"injectables/LtiToolService.html","title":"injectable - LtiToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LtiToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lti-tool/service/lti-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n findByClientIdAndIsLocal\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ltiToolRepo: LtiToolRepo)\n \n \n \n \n Defined in apps/server/src/modules/lti-tool/service/lti-tool.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ltiToolRepo\n \n \n LtiToolRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n findByClientIdAndIsLocal\n \n \n \n \n \n \n \n findByClientIdAndIsLocal(clientId: string, isLocal: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lti-tool/service/lti-tool.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n isLocal\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { LtiToolRepo } from '@shared/repo';\n\n@Injectable()\nexport class LtiToolService {\n\tconstructor(private readonly ltiToolRepo: LtiToolRepo) {}\n\n\tpublic async findByClientIdAndIsLocal(clientId: string, isLocal: boolean): Promise {\n\t\tconst ltiTool: Promise = this.ltiToolRepo.findByClientIdAndIsLocal(clientId, isLocal);\n\n\t\treturn ltiTool;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Mail.html":{"url":"interfaces/Mail.html","title":"interface - Mail","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Mail\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n bcc\n \n \n \n Optional\n \n cc\n \n \n \n Optional\n \n from\n \n \n \n \n mail\n \n \n \n \n recipients\n \n \n \n Optional\n \n replyTo\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bcc\n \n \n \n \n \n \n \n \n bcc: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n cc\n \n \n \n \n \n \n \n \n cc: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n from\n \n \n \n \n \n \n \n \n from: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n mail\n \n \n \n \n \n \n \n \n mail: PlainTextMailContent | HtmlMailContent\n\n \n \n\n\n \n \n Type : PlainTextMailContent | HtmlMailContent\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n recipients\n \n \n \n \n \n \n \n \n recipients: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n replyTo\n \n \n \n \n \n \n \n \n replyTo: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/MailAttachment.html":{"url":"interfaces/MailAttachment.html","title":"interface - MailAttachment","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n MailAttachment\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n base64Content\n \n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n base64Content\n \n \n \n \n \n \n \n \n base64Content: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n \n \n mimeType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/MailContent.html":{"url":"interfaces/MailContent.html","title":"interface - MailContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n MailContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n attachments\n \n \n \n \n subject\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n attachments\n \n \n \n \n \n \n \n \n attachments: (InlineAttachment | AppendedAttachment)[]\n\n \n \n\n\n \n \n Type : (InlineAttachment | AppendedAttachment)[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n \n \n subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/MailModule.html":{"url":"modules/MailModule.html","title":"module - MailModule","body":"\n \n\n\n\n\n Modules\n MailModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/mail/mail.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options: MailModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/mail/mail.module.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MailModuleOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Module, DynamicModule } from '@nestjs/common';\nimport { MailService } from './mail.service';\n\ninterface MailModuleOptions {\n\texchange: string;\n\troutingKey: string;\n}\n\n@Module({})\nexport class MailModule {\n\tstatic forRoot(options: MailModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: MailModule,\n\t\t\tproviders: [\n\t\t\t\tMailService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'MAIL_SERVICE_OPTIONS',\n\t\t\t\t\tuseValue: { exchange: options.exchange, routingKey: options.routingKey },\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [MailService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/MailModuleOptions.html":{"url":"interfaces/MailModuleOptions.html","title":"interface - MailModuleOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n MailModuleOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.module.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n exchange\n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n exchange\n \n \n \n \n \n \n \n \n exchange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n routingKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Module, DynamicModule } from '@nestjs/common';\nimport { MailService } from './mail.service';\n\ninterface MailModuleOptions {\n\texchange: string;\n\troutingKey: string;\n}\n\n@Module({})\nexport class MailModule {\n\tstatic forRoot(options: MailModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: MailModule,\n\t\t\tproviders: [\n\t\t\t\tMailService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'MAIL_SERVICE_OPTIONS',\n\t\t\t\t\tuseValue: { exchange: options.exchange, routingKey: options.routingKey },\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [MailService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MailService.html":{"url":"injectables/MailService.html","title":"injectable - MailService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MailService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n send\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, options: MailServiceOptions)\n \n \n \n \n Defined in apps/server/src/shared/infra/mail/mail.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n amqpConnection\n \n \n AmqpConnection\n \n \n \n No\n \n \n \n \n options\n \n \n MailServiceOptions\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n send\n \n \n \n \n \n \n \n send(data: Mail)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/mail/mail.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n Mail\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Inject, Injectable } from '@nestjs/common';\n\nimport { Mail } from './mail.interface';\n\ninterface MailServiceOptions {\n\texchange: string;\n\troutingKey: string;\n}\n\n@Injectable()\nexport class MailService {\n\tconstructor(\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\t@Inject('MAIL_SERVICE_OPTIONS') private readonly options: MailServiceOptions\n\t) {}\n\n\tpublic async send(data: Mail): Promise {\n\t\tawait this.amqpConnection.publish(this.options.exchange, this.options.routingKey, data, { persistent: true });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/MailServiceOptions.html":{"url":"interfaces/MailServiceOptions.html","title":"interface - MailServiceOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n MailServiceOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n exchange\n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n exchange\n \n \n \n \n \n \n \n \n exchange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n routingKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Inject, Injectable } from '@nestjs/common';\n\nimport { Mail } from './mail.interface';\n\ninterface MailServiceOptions {\n\texchange: string;\n\troutingKey: string;\n}\n\n@Injectable()\nexport class MailService {\n\tconstructor(\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\t@Inject('MAIL_SERVICE_OPTIONS') private readonly options: MailServiceOptions\n\t) {}\n\n\tpublic async send(data: Mail): Promise {\n\t\tawait this.amqpConnection.publish(this.options.exchange, this.options.routingKey, data, { persistent: true });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ManagementModule.html":{"url":"modules/ManagementModule.html","title":"module - ManagementModule","body":"\n \n\n\n\n\n Modules\n ManagementModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ManagementModule\n\n\n\ncluster_ManagementModule_providers\n\n\n\ncluster_ManagementModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nManagementModule\n\nManagementModule\n\nManagementModule -->\n\nAuthenticationModule->ManagementModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nManagementModule -->\n\nAuthorizationModule->ManagementModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nManagementModule -->\n\nCoreModule->ManagementModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nManagementModule -->\n\nFilesStorageApiModule->ManagementModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nManagementModule -->\n\nLoggerModule->ManagementModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nManagementModule -->\n\nRabbitMQWrapperTestModule->ManagementModule\n\n\n\n\n\nBoardManagementUc\n\nBoardManagementUc\n\nManagementModule -->\n\nBoardManagementUc->ManagementModule\n\n\n\n\n\nBsonConverter\n\nBsonConverter\n\nManagementModule -->\n\nBsonConverter->ManagementModule\n\n\n\n\n\nConsoleWriterService\n\nConsoleWriterService\n\nManagementModule -->\n\nConsoleWriterService->ManagementModule\n\n\n\n\n\nDatabaseManagementService\n\nDatabaseManagementService\n\nManagementModule -->\n\nDatabaseManagementService->ManagementModule\n\n\n\n\n\nDatabaseManagementUc\n\nDatabaseManagementUc\n\nManagementModule -->\n\nDatabaseManagementUc->ManagementModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/management/management.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardManagementUc\n \n \n BsonConverter\n \n \n ConsoleWriterService\n \n \n DatabaseManagementService\n \n \n DatabaseManagementUc\n \n \n \n \n Controllers\n \n \n DatabaseManagementController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Module } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ConsoleWriterService } from '@shared/infra/console';\nimport { DatabaseManagementModule, DatabaseManagementService } from '@shared/infra/database';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { FileSystemModule } from '@shared/infra/file-system';\nimport { KeycloakConfigurationModule } from '@shared/infra/identity-management/keycloak-configuration/keycloak-configuration.module';\nimport { createConfigModuleOptions } from '@src/config';\nimport { LoggerModule } from '@src/core/logger';\nimport { serverConfig } from '@src/modules/server';\nimport { BoardManagementConsole } from './console/board-management.console';\nimport { DatabaseManagementConsole } from './console/database-management.console';\nimport { DatabaseManagementController } from './controller/database-management.controller';\nimport { BsonConverter } from './converter/bson.converter';\nimport { BoardManagementUc } from './uc/board-management.uc';\nimport { DatabaseManagementUc } from './uc/database-management.uc';\n\nconst baseImports = [\n\tFileSystemModule,\n\tDatabaseManagementModule,\n\tLoggerModule,\n\tConfigModule.forRoot(createConfigModuleOptions(serverConfig)),\n\tEncryptionModule,\n];\n\nconst imports = (Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean)\n\t? [...baseImports, KeycloakConfigurationModule]\n\t: baseImports;\n\nconst providers = [\n\tDatabaseManagementUc,\n\tDatabaseManagementService,\n\tBsonConverter,\n\t// console providers\n\tDatabaseManagementConsole,\n\t// infra services\n\tConsoleWriterService,\n\tBoardManagementConsole,\n\tBoardManagementUc,\n];\n\nconst controllers = [DatabaseManagementController];\n\n@Module({\n\timports: [...imports],\n\tproviders,\n\tcontrollers,\n})\nexport class ManagementModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ManagementServerModule.html":{"url":"modules/ManagementServerModule.html","title":"module - ManagementServerModule","body":"\n \n\n\n\n\n Modules\n ManagementServerModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ManagementServerModule\n\n\n\ncluster_ManagementServerModule_imports\n\n\n\n\nManagementModule\n\nManagementModule\n\n\n\nManagementServerModule\n\nManagementServerModule\n\nManagementServerModule -->\n\nManagementModule->ManagementServerModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/management/management-server.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n ManagementModule\n \n \n \n \n \n\n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Module, NotFoundException } from '@nestjs/common';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME } from '@src/config';\nimport { ManagementModule } from './management.module';\n\nexport const defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\n@Module({\n\timports: [\n\t\tManagementModule,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\t// TODO repeats server module definitions\n\t\t\ttype: 'mongo',\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: ALL_ENTITIES,\n\t\t}),\n\t],\n})\nexport class ManagementServerModule {}\n\n@Module({\n\timports: [ManagementModule, MongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions })],\n})\nexport class ManagementServerTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: ManagementModule,\n\t\t\timports: [MongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions, ...options })],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ManagementServerTestModule.html":{"url":"modules/ManagementServerTestModule.html","title":"module - ManagementServerTestModule","body":"\n \n\n\n\n\n Modules\n ManagementServerTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ManagementServerTestModule\n\n\n\ncluster_ManagementServerTestModule_imports\n\n\n\n\nManagementModule\n\nManagementModule\n\n\n\nManagementServerTestModule\n\nManagementServerTestModule\n\nManagementServerTestModule -->\n\nManagementModule->ManagementServerTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nManagementServerTestModule -->\n\nMongoMemoryDatabaseModule->ManagementServerTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/management/management-server.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n ManagementModule\n \n \n MongoMemoryDatabaseModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/management-server.module.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Module, NotFoundException } from '@nestjs/common';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME } from '@src/config';\nimport { ManagementModule } from './management.module';\n\nexport const defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\n@Module({\n\timports: [\n\t\tManagementModule,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\t// TODO repeats server module definitions\n\t\t\ttype: 'mongo',\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: ALL_ENTITIES,\n\t\t}),\n\t],\n})\nexport class ManagementServerModule {}\n\n@Module({\n\timports: [ManagementModule, MongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions })],\n})\nexport class ManagementServerTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: ManagementModule,\n\t\t\timports: [MongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions, ...options })],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Material.html":{"url":"entities/Material.html","title":"entity - Material","body":"\n \n\n\n\n\n\n\n\n Entities\n Material\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/materials.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n client\n \n \n \n Optional\n description\n \n \n \n license\n \n \n \n Optional\n merlinReference\n \n \n \n relatedResources\n \n \n \n subjects\n \n \n \n tags\n \n \n \n targetGroups\n \n \n \n title\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n license\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n merlinReference\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n relatedResources\n \n \n \n \n \n \n Type : IRelatedResourceProperties[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n subjects\n \n \n \n \n \n \n Type : string[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n tags\n \n \n \n \n \n \n Type : string[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetGroups\n \n \n \n \n \n \n Type : ITargetGroupProperties[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:58\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ITargetGroupProperties {\n\tstate?: string;\n\tschoolType?: string;\n\tgrade?: string;\n}\n\nexport interface IRelatedResourceProperties {\n\toriginId?: string;\n\trelationType?: string;\n}\n\nexport interface IMaterialProperties {\n\tclient: string;\n\tdescription?: string;\n\tlicense: string[];\n\tmerlinReference?: string;\n\trelatedResources: IRelatedResourceProperties[];\n\tsubjects: string[];\n\ttags: string[];\n\ttargetGroups: ITargetGroupProperties[];\n\ttitle: string;\n\turl: string;\n}\n\n@Entity({ collection: 'materials' })\nexport class Material extends BaseEntityWithTimestamps {\n\t@Property()\n\tclient: string;\n\n\t@Property()\n\tdescription?: string;\n\n\t@Property()\n\tlicense: string[];\n\n\t@Property()\n\tmerlinReference?: string;\n\n\t@Property()\n\trelatedResources: IRelatedResourceProperties[] | [];\n\n\t@Property()\n\tsubjects: string[] | [];\n\n\t@Property()\n\ttags: string[] | [];\n\n\t@Property()\n\ttargetGroups: ITargetGroupProperties[] | [];\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\turl: string;\n\n\tconstructor(props: IMaterialProperties) {\n\t\tsuper();\n\t\tthis.client = props.client;\n\t\tthis.description = props.description || '';\n\t\tthis.license = props.license;\n\t\tthis.merlinReference = props.merlinReference || '';\n\t\tthis.relatedResources = props.relatedResources;\n\t\tthis.subjects = props.subjects;\n\t\tthis.tags = props.tags;\n\t\tthis.targetGroups = props.targetGroups;\n\t\tthis.title = props.title;\n\t\tthis.url = props.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MaterialFactory.html":{"url":"classes/MaterialFactory.html","title":"class - MaterialFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MaterialFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/material.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { IMaterialProperties, Material } from '@shared/domain/entity/materials.entity';\nimport { BaseFactory } from './base.factory';\n\nclass MaterialFactory extends BaseFactory {}\n\nexport const materialFactory = MaterialFactory.define(Material, ({ sequence }) => {\n\treturn {\n\t\tclient: 'test material client',\n\t\tdescription: 'test material description',\n\t\tlicense: [],\n\t\tmerlinReference: '',\n\t\trelatedResources: [],\n\t\tsubjects: [],\n\t\ttags: [],\n\t\ttargetGroups: [],\n\t\ttitle: `material #${sequence}`,\n\t\turl: 'test material url',\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MaterialsRepo.html":{"url":"injectables/MaterialsRepo.html","title":"injectable - MaterialsRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MaterialsRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/materials/materials.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/materials/materials.repo.ts:7\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Material } from '@shared/domain/entity/materials.entity';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class MaterialsRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Material;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Meta.html":{"url":"interfaces/Meta.html","title":"interface - Meta","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Meta\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n itemsperpage\n \n \n \n \n message\n \n \n \n \n status\n \n \n \n \n statuscode\n \n \n \n \n totalitems\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n itemsperpage\n \n \n \n \n \n \n \n \n itemsperpage: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n message\n \n \n \n \n \n \n \n \n message: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n statuscode\n \n \n \n \n \n \n \n \n statuscode: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n totalitems\n \n \n \n \n \n \n \n \n totalitems: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MetadataTypeMapper.html":{"url":"classes/MetadataTypeMapper.html","title":"class - MetadataTypeMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MetadataTypeMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/metadata-type.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToAlloweMetadataType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToAlloweMetadataType\n \n \n \n \n \n \n \n mapToAlloweMetadataType(type: ShareTokenParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/metadata-type.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ShareTokenParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LearnroomTypes\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { LearnroomTypes } from '@shared/domain';\nimport { ShareTokenParentType } from '../domainobject/share-token.do';\n\nexport class MetadataTypeMapper {\n\tstatic mapToAlloweMetadataType(type: ShareTokenParentType): LearnroomTypes {\n\t\tconst types: Map = new Map();\n\t\ttypes.set(ShareTokenParentType.Course, LearnroomTypes.Course);\n\n\t\tconst res = types.get(type);\n\n\t\tif (!res) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\treturn res;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationAlreadyActivatedException.html":{"url":"classes/MigrationAlreadyActivatedException.html","title":"class - MigrationAlreadyActivatedException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationAlreadyActivatedException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts\n \n\n\n\n \n Extends\n \n \n LdapUserMigrationException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(descriptionOrOptions?: string | HttpExceptionOptions)\n \n \n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:28\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n descriptionOrOptions\n \n \n string | HttpExceptionOptions\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:33\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, HttpExceptionOptions } from '@nestjs/common';\nimport { ErrorLogMessage, LogMessage, Loggable, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class LdapUserMigrationException extends BadRequestException {}\n\nexport class LdapAlreadyPersistedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('ldapAlreadyPersisted', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'LDAP is already Persisted',\n\t\t};\n\t}\n}\nexport class MissingSchoolNumberException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school is missing a official school number',\n\t\t};\n\t}\n}\nexport class MigrationAlreadyActivatedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration is already activated for this school',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationBody.html":{"url":"classes/MigrationBody.html","title":"class - MigrationBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/controller/dto/migration.body.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Set if migration is finished in this school', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.body.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Set if migration is mandatory in this school', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.body.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Set if migration is possible in this school', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.body.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean, IsOptional } from 'class-validator';\n\nexport class MigrationBody {\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Set if migration is possible in this school',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\toauthMigrationPossible?: boolean;\n\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Set if migration is mandatory in this school',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\toauthMigrationMandatory?: boolean;\n\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Set if migration is finished in this school',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\toauthMigrationFinished?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MigrationCheckService.html":{"url":"injectables/MigrationCheckService.html","title":"injectable - MigrationCheckService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MigrationCheckService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/migration-check.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n shouldUserMigrate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, schoolService: LegacySchoolService, userLoginMigrationRepo: UserLoginMigrationRepo)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/migration-check.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n userLoginMigrationRepo\n \n \n UserLoginMigrationRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n shouldUserMigrate\n \n \n \n \n \n \n \n shouldUserMigrate(externalUserId: string, systemId: EntityId, officialSchoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/migration-check.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUserId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, UserDO, UserLoginMigrationDO } from '@shared/domain';\nimport { UserLoginMigrationRepo } from '@shared/repo';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserService } from '@src/modules/user';\n\n@Injectable()\nexport class MigrationCheckService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly userLoginMigrationRepo: UserLoginMigrationRepo\n\t) {}\n\n\tasync shouldUserMigrate(externalUserId: string, systemId: EntityId, officialSchoolNumber: string): Promise {\n\t\tconst school: LegacySchoolDo | null = await this.schoolService.getSchoolBySchoolNumber(officialSchoolNumber);\n\n\t\tif (school && school.id) {\n\t\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(\n\t\t\t\tschool.id\n\t\t\t);\n\n\t\t\tconst user: UserDO | null = await this.userService.findByExternalId(externalUserId, systemId);\n\n\t\t\tif (user?.lastLoginSystemChange && userLoginMigration && !userLoginMigration.closedAt) {\n\t\t\t\tconst hasMigrated: boolean = user.lastLoginSystemChange > userLoginMigration.startedAt;\n\t\t\t\treturn !hasMigrated;\n\t\t\t}\n\t\t\treturn !!userLoginMigration && !userLoginMigration.closedAt;\n\t\t}\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationDto.html":{"url":"classes/MigrationDto.html","title":"class - MigrationDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/dto/migration.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n redirect\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userMigrationDto: MigrationDto)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/migration.dto.ts:2\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userMigrationDto\n \n \n MigrationDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n redirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/migration.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class MigrationDto {\n\tredirect: string;\n\n\tconstructor(userMigrationDto: MigrationDto) {\n\t\tthis.redirect = userMigrationDto.redirect;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MigrationMapper.html":{"url":"injectables/MigrationMapper.html","title":"injectable - MigrationMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MigrationMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/mapper/migration.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapDtoToResponse\n \n \n \n \n \n \n \n mapDtoToResponse(dto: OauthMigrationDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/mapper/migration.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n OauthMigrationDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : MigrationResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { MigrationResponse } from '../controller/dto';\nimport { OauthMigrationDto } from '../uc/dto/oauth-migration.dto';\n\n@Injectable()\nexport class MigrationMapper {\n\tpublic mapDtoToResponse(dto: OauthMigrationDto): MigrationResponse {\n\t\tconst response: MigrationResponse = new MigrationResponse({\n\t\t\toauthMigrationPossible: dto.oauthMigrationPossible,\n\t\t\toauthMigrationMandatory: dto.oauthMigrationMandatory,\n\t\t\toauthMigrationFinished: dto.oauthMigrationFinished,\n\t\t\toauthMigrationFinalFinish: dto.oauthMigrationFinalFinish,\n\t\t\tenableMigrationStart: dto.enableMigrationStart,\n\t\t});\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationMayBeCompleted.html":{"url":"classes/MigrationMayBeCompleted.html","title":"class - MigrationMayBeCompleted","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationMayBeCompleted\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/migration-may-be-completed.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(inUserMigration?: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/migration-may-be-completed.loggable.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n inUserMigration\n \n \n boolean\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/migration-may-be-completed.loggable.ts:6\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class MigrationMayBeCompleted implements Loggable {\n\tconstructor(private readonly inUserMigration?: boolean) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The migration may have already been completed or the school may not yet be in maintenance mode',\n\t\t\tdata: {\n\t\t\t\tinUserMigration: this.inUserMigration,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationMayNotBeCompleted.html":{"url":"classes/MigrationMayNotBeCompleted.html","title":"class - MigrationMayNotBeCompleted","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationMayNotBeCompleted\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/migration-is-not-completed.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(inUserMigration?: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/migration-is-not-completed.loggable.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n inUserMigration\n \n \n boolean\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/migration-is-not-completed.loggable.ts:6\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class MigrationMayNotBeCompleted implements Loggable {\n\tconstructor(private readonly inUserMigration?: boolean) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The migration may not be yet complete or the school may not be in maintenance mode',\n\t\t\tdata: {\n\t\t\t\tinUserMigration: this.inUserMigration,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationResponse.html":{"url":"classes/MigrationResponse.html","title":"class - MigrationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/controller/dto/migration.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n enableMigrationStart\n \n \n \n Optional\n oauthMigrationFinalFinish\n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(params: MigrationResponse)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:31\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n \n MigrationResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n enableMigrationStart\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Enable the Migration'})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinalFinish\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date from when Migration is finally finished and cannot be restarted again', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date from when Migration is finished', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date from when Migration is mandatory', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date from when Migration is possible', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class MigrationResponse {\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date from when Migration is possible',\n\t\ttype: Date,\n\t})\n\toauthMigrationPossible?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date from when Migration is mandatory',\n\t\ttype: Date,\n\t})\n\toauthMigrationMandatory?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date from when Migration is finished',\n\t\ttype: Date,\n\t})\n\toauthMigrationFinished?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date from when Migration is finally finished and cannot be restarted again',\n\t\ttype: Date,\n\t})\n\toauthMigrationFinalFinish?: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'Enable the Migration',\n\t})\n\tenableMigrationStart!: boolean;\n\n\tconstructor(params: MigrationResponse) {\n\t\tthis.oauthMigrationPossible = params.oauthMigrationPossible;\n\t\tthis.oauthMigrationMandatory = params.oauthMigrationMandatory;\n\t\tthis.oauthMigrationFinished = params.oauthMigrationFinished;\n\t\tthis.oauthMigrationFinalFinish = params.oauthMigrationFinalFinish;\n\t\tthis.enableMigrationStart = params.enableMigrationStart;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MissingSchoolNumberException.html":{"url":"classes/MissingSchoolNumberException.html","title":"class - MissingSchoolNumberException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MissingSchoolNumberException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts\n \n\n\n\n \n Extends\n \n \n LdapUserMigrationException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(descriptionOrOptions?: string | HttpExceptionOptions)\n \n \n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n descriptionOrOptions\n \n \n string | HttpExceptionOptions\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:22\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, HttpExceptionOptions } from '@nestjs/common';\nimport { ErrorLogMessage, LogMessage, Loggable, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class LdapUserMigrationException extends BadRequestException {}\n\nexport class LdapAlreadyPersistedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('ldapAlreadyPersisted', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'LDAP is already Persisted',\n\t\t};\n\t}\n}\nexport class MissingSchoolNumberException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school is missing a official school number',\n\t\t};\n\t}\n}\nexport class MigrationAlreadyActivatedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration is already activated for this school',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MissingToolParameterValueLoggableException.html":{"url":"classes/MissingToolParameterValueLoggableException.html","title":"class - MissingToolParameterValueLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MissingToolParameterValueLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalTool: ContextExternalTool, parameters: CustomParameter[])\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n \n ContextExternalTool\n \n \n \n No\n \n \n \n \n parameters\n \n \n CustomParameter[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts:26\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { CustomParameter } from '../../common/domain';\n\nexport class MissingToolParameterValueLoggableException extends BusinessError implements Loggable {\n\tconstructor(\n\t\tprivate readonly contextExternalTool: ContextExternalTool,\n\t\tprivate readonly parameters: CustomParameter[]\n\t) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'MISSING_TOOL_PARAMETER_VALUE',\n\t\t\t\ttitle: 'Missing tool parameter value',\n\t\t\t\tdefaultMessage: 'The external tool was attempted to launch, but a parameter was not configured.',\n\t\t\t},\n\t\t\tHttpStatus.UNPROCESSABLE_ENTITY,\n\t\t\t{\n\t\t\t\tparameterKeys: parameters.map((param): string => param.name),\n\t\t\t\tparameterNames: parameters.map((param): string => param.displayName),\n\t\t\t}\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\tconst parameterNames: string[] = this.parameters.map((param): string => param.name);\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tmessage: this.message,\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tcontextExternalToolId: this.contextExternalTool.id,\n\t\t\t\tparameterNames: `[${parameterNames.join(', ')}]`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/MongoMemoryDatabaseModule.html":{"url":"modules/MongoMemoryDatabaseModule.html","title":"module - MongoMemoryDatabaseModule","body":"\n \n\n\n\n\n Modules\n MongoMemoryDatabaseModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/database/mongo-memory-database/mongo-memory-database.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/mongo-memory-database/mongo-memory-database.module.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n onModuleDestroy\n \n \n \n \n \n \n \n onModuleDestroy()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/mongo-memory-database/mongo-memory-database.module.ts:42\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n \n\n\n \n import { MikroORM } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleAsyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Inject, Module, OnModuleDestroy } from '@nestjs/common';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport _ from 'lodash';\nimport { MongoDatabaseModuleOptions } from './types';\n\nconst dbName = () => _.times(20, () => _.random(35).toString(36)).join('');\n\nconst createMikroOrmModule = (options: MikroOrmModuleAsyncOptions): DynamicModule => {\n\tconst mikroOrmModule = MikroOrmModule.forRootAsync({\n\t\tuseFactory: () => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions, no-process-env\n\t\t\tconst clientUrl = `${process.env.MONGO_TEST_URI}/${dbName()}`;\n\t\t\treturn {\n\t\t\t\tallowGlobalContext: true, // can be overridden by options\n\t\t\t\t...options,\n\t\t\t\ttype: 'mongo',\n\t\t\t\tclientUrl,\n\t\t\t};\n\t\t},\n\t});\n\n\treturn mikroOrmModule;\n};\n\n@Module({})\nexport class MongoMemoryDatabaseModule implements OnModuleDestroy {\n\tconstructor(@Inject(MikroORM) private orm: MikroORM) {}\n\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\tconst defaultOptions = {\n\t\t\tentities: ALL_ENTITIES,\n\t\t};\n\t\treturn {\n\t\t\tmodule: MongoMemoryDatabaseModule,\n\t\t\timports: [createMikroOrmModule({ ...defaultOptions, ...options })],\n\t\t\texports: [MikroOrmModule],\n\t\t};\n\t}\n\n\tasync onModuleDestroy(): Promise {\n\t\tawait this.orm.close();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MongoPatterns.html":{"url":"classes/MongoPatterns.html","title":"class - MongoPatterns","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MongoPatterns\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/mongo.patterns.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST\n \n \n \n \n \n \n Default value : /[^\\-_\\w\\d áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ]/gi\n \n \n \n \n Defined in apps/server/src/shared/repo/mongo.patterns.ts:6\n \n \n\n \n \n Regex to escape strings before use as regex against database.\nUsed to remove all non-language characters except numbers, whitespace or minus.\n\n \n \n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class MongoPatterns {\n\t/**\n\t * Regex to escape strings before use as regex against database.\n\t * Used to remove all non-language characters except numbers, whitespace or minus.\n\t */\n\tstatic REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST =\n\t\t/[^\\-_\\w\\d áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ]/gi;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveCardBodyParams.html":{"url":"classes/MoveCardBodyParams.html","title":"class - MoveCardBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveCardBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/move-card.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n toColumnId\n \n \n \n \n \n toPosition\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n toColumnId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/move-card.body.params.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n toPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/move-card.body.params.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNumber, Min } from 'class-validator';\n\nexport class MoveCardBodyParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoColumnId!: string;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoPosition!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveColumnBodyParams.html":{"url":"classes/MoveColumnBodyParams.html","title":"class - MoveColumnBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveColumnBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/move-column.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n toBoardId\n \n \n \n \n \n toPosition\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n toBoardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the target board', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/move-column.body.params.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n toPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/move-column.body.params.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNumber, Min } from 'class-validator';\n\nexport class MoveColumnBodyParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the target board',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoBoardId!: string;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoPosition!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveContentElementBody.html":{"url":"classes/MoveContentElementBody.html","title":"class - MoveContentElementBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveContentElementBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/move-content-element.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n toCardId\n \n \n \n \n \n toPosition\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n toCardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/move-content-element.body.params.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n toPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/move-content-element.body.params.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNumber, Min } from 'class-validator';\n\nexport class MoveContentElementBody {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoCardId!: string;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoPosition!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveElementParams.html":{"url":"classes/MoveElementParams.html","title":"class - MoveElementParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveElementParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n from\n \n \n \n \n to\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n from\n \n \n \n \n \n \n Type : MoveElementPositionParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n to\n \n \n \n \n \n \n Type : MoveElementPositionParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:33\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ValidateNested, IsNumber, Min, IsOptional } from 'class-validator';\n\n/**\n * DTO for Updating the position of a Dashboard Element.\n */\n\nexport class MoveElementPositionParams {\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\tx!: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\ty!: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiPropertyOptional({ description: 'used to identify a position within a group.' })\n\tgroupIndex?: number;\n}\n\nexport class MoveElementParams {\n\t@ValidateNested()\n\t@ApiProperty()\n\tfrom!: MoveElementPositionParams;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tto!: MoveElementPositionParams;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveElementPositionParams.html":{"url":"classes/MoveElementPositionParams.html","title":"class - MoveElementPositionParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveElementPositionParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts\n \n\n\n \n Description\n \n \n DTO for Updating the position of a Dashboard Element.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n groupIndex\n \n \n \n \n \n x\n \n \n \n \n \n y\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n groupIndex\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@IsOptional()@ApiPropertyOptional({description: 'used to identify a position within a group.'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n x\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n y\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ValidateNested, IsNumber, Min, IsOptional } from 'class-validator';\n\n/**\n * DTO for Updating the position of a Dashboard Element.\n */\n\nexport class MoveElementPositionParams {\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\tx!: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\ty!: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiPropertyOptional({ description: 'used to identify a position within a group.' })\n\tgroupIndex?: number;\n}\n\nexport class MoveElementParams {\n\t@ValidateNested()\n\t@ApiProperty()\n\tfrom!: MoveElementPositionParams;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tto!: MoveElementPositionParams;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/News.html":{"url":"entities/News.html","title":"entity - News","body":"\n \n\n\n\n\n\n\n\n Entities\n News\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n creator\n \n \n \n \n displayAt\n \n \n \n Optional\n externalId\n \n \n permissions\n \n \n \n school\n \n \n \n Optional\n source\n \n \n \n Optional\n sourceDescription\n \n \n target\n \n \n \n targetModel\n \n \n \n title\n \n \n \n Optional\n updater\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:38\n \n \n\n \n \n the news content as html\n\n \n \n\n \n \n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('User', {fieldName: 'creatorId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:43\n \n \n\n \n \n only past news are visible for viewers, when edit permission, news visible in the future might be accessed too\n\n \n \n\n \n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:70\n \n \n\n\n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'schoolId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:62\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n source\n \n \n \n \n \n \n Type : \"internal\" | \"rss\"\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceDescription\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : NewsTarget\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:55\n \n \n\n \n \n id reference to a collection populated later with name\n\n \n \n\n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : NewsTargetModel\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:59\n \n \n\n \n \n name of a collection which is referenced in target\n\n \n \n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:34\n \n \n\n \n \n the news title\n\n \n \n\n \n \n \n \n \n \n \n \n \n Optional\n updater\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('User', {fieldName: 'updaterId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:68\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/NewsController.html":{"url":"controllers/NewsController.html","title":"controller - NewsController","body":"\n \n\n\n\n\n\n\n Controllers\n NewsController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/news.controller.ts\n \n\n \n Prefix\n \n \n news\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n Async\n delete\n \n \n \n Async\n findAll\n \n \n \n Async\n findOne\n \n \n \n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(currentUser: ICurrentUser, params: CreateNewsParams)\n \n \n\n \n \n Decorators : \n \n @Post()\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:27\n \n \n\n\n \n \n Create a news by a user in a given scope (school or team).\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n CreateNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(urlParams: NewsUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':newsId')\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:90\n \n \n\n\n \n \n Delete a news.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n NewsUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll(currentUser: ICurrentUser, scope: FilterNewsParams, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:41\n \n \n\n\n \n \n Responds with all news for a user.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n FilterNewsParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOne\n \n \n \n \n \n \n \n findOne(urlParams: NewsUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get(':newsId')\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:62\n \n \n\n\n \n \n Retrieve a specific news entry by id.\nA user may only read news of scopes he has the read permission.\nThe news entity has school and user names populated.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n NewsUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n update\n \n \n \n \n \n \n \n update(urlParams: NewsUrlParams, currentUser: ICurrentUser, params: UpdateNewsParams)\n \n \n\n \n \n Decorators : \n \n @Patch(':newsId')\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:72\n \n \n\n\n \n \n Update properties of a news.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n NewsUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n UpdateNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { PaginationParams } from '@shared/controller';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { NewsMapper } from '../mapper/news.mapper';\nimport { NewsUc } from '../uc/news.uc';\nimport {\n\tCreateNewsParams,\n\tFilterNewsParams,\n\tNewsListResponse,\n\tNewsResponse,\n\tNewsUrlParams,\n\tUpdateNewsParams,\n} from './dto';\n\n@ApiTags('News')\n@Authenticate('jwt')\n@Controller('news')\nexport class NewsController {\n\tconstructor(private readonly newsUc: NewsUc) {}\n\n\t/**\n\t * Create a news by a user in a given scope (school or team).\n\t */\n\t@Post()\n\tasync create(@CurrentUser() currentUser: ICurrentUser, @Body() params: CreateNewsParams): Promise {\n\t\tconst news = await this.newsUc.create(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId,\n\t\t\tNewsMapper.mapCreateNewsToDomain(params)\n\t\t);\n\t\tconst dto = NewsMapper.mapToResponse(news);\n\t\treturn dto;\n\t}\n\n\t/**\n\t * Responds with all news for a user.\n\t */\n\t@Get()\n\tasync findAll(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() scope: FilterNewsParams,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\tconst [newsList, count] = await this.newsUc.findAllForUser(\n\t\t\tcurrentUser.userId,\n\t\t\tNewsMapper.mapNewsScopeToDomain(scope),\n\t\t\t{ pagination }\n\t\t);\n\t\tconst dtoList = newsList.map((news) => NewsMapper.mapToResponse(news));\n\t\tconst response = new NewsListResponse(dtoList, count);\n\t\treturn response;\n\t}\n\n\t/**\n\t * Retrieve a specific news entry by id.\n\t * A user may only read news of scopes he has the read permission.\n\t * The news entity has school and user names populated.\n\t */\n\t@Get(':newsId')\n\tasync findOne(@Param() urlParams: NewsUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst news = await this.newsUc.findOneByIdForUser(urlParams.newsId, currentUser.userId);\n\t\tconst dto = NewsMapper.mapToResponse(news);\n\t\treturn dto;\n\t}\n\n\t/**\n\t * Update properties of a news.\n\t */\n\t@Patch(':newsId')\n\tasync update(\n\t\t@Param() urlParams: NewsUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() params: UpdateNewsParams\n\t): Promise {\n\t\tconst news = await this.newsUc.update(\n\t\t\turlParams.newsId,\n\t\t\tcurrentUser.userId,\n\t\t\tNewsMapper.mapUpdateNewsToDomain(params)\n\t\t);\n\t\tconst dto = NewsMapper.mapToResponse(news);\n\t\treturn dto;\n\t}\n\n\t/**\n\t * Delete a news.\n\t */\n\t@Delete(':newsId')\n\tasync delete(@Param() urlParams: NewsUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst deletedId = await this.newsUc.delete(urlParams.newsId, currentUser.userId);\n\t\treturn deletedId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsCrudOperationLoggable.html":{"url":"classes/NewsCrudOperationLoggable.html","title":"class - NewsCrudOperationLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsCrudOperationLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(operation: CrudOperation, userId: EntityId, news: News)\n \n \n \n \n Defined in apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n operation\n \n \n CrudOperation\n \n \n \n No\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n news\n \n \n News\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts:13\n \n \n\n\n \n \n\n \n Returns : LogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, News } from '@shared/domain';\nimport { CrudOperation } from '@shared/types';\nimport { LogMessage, Loggable } from '@src/core/logger';\nimport { NewsMapper } from '../mapper/news.mapper';\n\nexport class NewsCrudOperationLoggable implements Loggable {\n\tconstructor(\n\t\tprivate readonly operation: CrudOperation,\n\t\tprivate readonly userId: EntityId,\n\t\tprivate readonly news: News\n\t) {}\n\n\tgetLogMessage(): LogMessage {\n\t\treturn {\n\t\t\tmessage: 'Performing a CRUD operation on a news',\n\t\t\tdata: {\n\t\t\t\toperation: this.operation,\n\t\t\t\tuserId: this.userId,\n\t\t\t\tnews: NewsMapper.mapToLogMessageData(this.news),\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsListResponse.html":{"url":"classes/NewsListResponse.html","title":"class - NewsListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/news.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: NewsResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:129\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n NewsResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : NewsResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:136\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { NewsTargetModel } from '@shared/domain';\nimport { SchoolInfoResponse } from './school-info.response';\nimport { TargetInfoResponse } from './target-info.response';\nimport { UserInfoResponse } from './user-info.response';\n\nconst NEWS_SOURCES = ['internal', 'rss'] as const;\nconst TARGET_MODEL_VALUES = Object.values(NewsTargetModel);\n\ntype SourceType = typeof NEWS_SOURCES[number];\nexport class NewsResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tcontent,\n\t\tdisplayAt,\n\t\tsource,\n\t\tsourceDescription,\n\t\ttargetModel,\n\t\ttargetId,\n\t\ttarget,\n\t\tschool,\n\t\tcreator,\n\t\tupdater,\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t\tpermissions,\n\t}: NewsResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.content = content;\n\t\tthis.displayAt = displayAt;\n\t\tthis.source = source;\n\t\tthis.sourceDescription = sourceDescription;\n\t\tthis.targetModel = targetModel;\n\t\tthis.targetId = targetId;\n\t\tthis.target = target;\n\t\tthis.school = school;\n\t\tthis.creator = creator;\n\t\tthis.updater = updater;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.permissions = permissions;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the News entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Title of the News entity',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Content of the News entity',\n\t})\n\tcontent: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The point in time from when the News entity schould be displayed',\n\t})\n\tdisplayAt: Date;\n\n\t@ApiPropertyOptional({\n\t\ttype: 'string',\n\t\tenum: NEWS_SOURCES,\n\t\tdescription: 'The type of source of the News entity',\n\t})\n\tsource?: SourceType;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'The source description of the News entity',\n\t})\n\tsourceDescription?: string;\n\n\t@ApiProperty({\n\t\tenum: TARGET_MODEL_VALUES,\n\t\tenumName: 'NewsTargetModel',\n\t\tdescription: 'Target model to which the News entity is related',\n\t})\n\ttargetModel: string;\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Specific target id to which the News entity is related',\n\t})\n\ttargetId: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The target object with id and name, could be the school, team, or course name',\n\t})\n\ttarget: TargetInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'The School ownership',\n\t})\n\tschool: SchoolInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'Reference to the User that created the News entity',\n\t})\n\tcreator: UserInfoResponse;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Reference to the User that updated the News entity',\n\t})\n\tupdater?: UserInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'The creation timestamp',\n\t})\n\tcreatedAt: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'The update timestamp',\n\t})\n\tupdatedAt: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'List of permissions the current user has for the News entity',\n\t})\n\tpermissions: string[];\n}\n\nexport class NewsListResponse extends PaginationResponse {\n\tconstructor(data: NewsResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [NewsResponse] })\n\tdata: NewsResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsMapper.html":{"url":"classes/NewsMapper.html","title":"class - NewsMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/mapper/news.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapCreateNewsToDomain\n \n \n Static\n mapNewsScopeToDomain\n \n \n Static\n mapToLogMessageData\n \n \n Static\n mapToResponse\n \n \n Static\n mapUpdateNewsToDomain\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapCreateNewsToDomain\n \n \n \n \n \n \n \n mapCreateNewsToDomain(params: CreateNewsParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n CreateNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICreateNews\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapNewsScopeToDomain\n \n \n \n \n \n \n \n mapNewsScopeToDomain(query: FilterNewsParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : INewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToLogMessageData\n \n \n \n \n \n \n \n mapToLogMessageData(news: News)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n news\n \n News\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LogMessageData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(news: News)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n news\n \n News\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : NewsResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapUpdateNewsToDomain\n \n \n \n \n \n \n \n mapUpdateNewsToDomain(params: UpdateNewsParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n UpdateNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IUpdateNews\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { News, ICreateNews, INewsScope, IUpdateNews, NewsTargetModel } from '@shared/domain';\nimport { LogMessageData } from '@src/core/logger';\nimport { CreateNewsParams, FilterNewsParams, NewsResponse, UpdateNewsParams } from '../controller/dto';\nimport { SchoolInfoMapper } from './school-info.mapper';\nimport { TargetInfoMapper } from './target-info.mapper';\nimport { UserInfoMapper } from './user-info.mapper';\n\nexport class NewsMapper {\n\tstatic mapToResponse(news: News): NewsResponse {\n\t\tconst target = TargetInfoMapper.mapToResponse(news.target);\n\t\tconst school = SchoolInfoMapper.mapToResponse(news.school);\n\t\tconst creator = UserInfoMapper.mapToResponse(news.creator);\n\n\t\tconst dto = new NewsResponse({\n\t\t\tid: news.id,\n\t\t\ttitle: news.title,\n\t\t\tcontent: news.content,\n\t\t\tdisplayAt: news.displayAt,\n\t\t\tsource: news.source,\n\t\t\tsourceDescription: news.sourceDescription,\n\t\t\ttargetId: news.target.id,\n\t\t\ttargetModel: news.targetModel,\n\t\t\ttarget,\n\t\t\tschool,\n\t\t\tcreator,\n\t\t\tcreatedAt: news.createdAt,\n\t\t\tupdatedAt: news.updatedAt,\n\t\t\tpermissions: news.permissions,\n\t\t});\n\n\t\tif (news.updater) {\n\t\t\tdto.updater = UserInfoMapper.mapToResponse(news.updater);\n\t\t}\n\n\t\treturn dto;\n\t}\n\n\tstatic mapNewsScopeToDomain(query: FilterNewsParams): INewsScope {\n\t\tconst dto: INewsScope = {};\n\t\tif (query.targetModel) {\n\t\t\tdto.target = {\n\t\t\t\ttargetModel: query.targetModel as NewsTargetModel,\n\t\t\t\ttargetId: query.targetId,\n\t\t\t};\n\t\t}\n\t\tif ('unpublished' in query) {\n\t\t\tdto.unpublished = query.unpublished;\n\t\t}\n\t\treturn dto;\n\t}\n\n\tstatic mapCreateNewsToDomain(params: CreateNewsParams): ICreateNews {\n\t\tconst dto = {\n\t\t\ttitle: params.title,\n\t\t\tcontent: params.content,\n\t\t\tdisplayAt: params.displayAt,\n\t\t\ttarget: {\n\t\t\t\ttargetModel: params.targetModel as NewsTargetModel,\n\t\t\t\ttargetId: params.targetId,\n\t\t\t},\n\t\t};\n\t\treturn dto;\n\t}\n\n\tstatic mapUpdateNewsToDomain(params: UpdateNewsParams): IUpdateNews {\n\t\tconst dto = {\n\t\t\ttitle: params.title,\n\t\t\tcontent: params.content,\n\t\t\tdisplayAt: params.displayAt,\n\t\t};\n\t\treturn dto;\n\t}\n\n\tstatic mapToLogMessageData(news: News): LogMessageData {\n\t\tconst data = {\n\t\t\tentityType: 'News',\n\t\t\tid: news.id,\n\t\t\ttargetModel: news.targetModel,\n\t\t\ttargetId: news.target.id,\n\t\t};\n\n\t\treturn data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/NewsModule.html":{"url":"modules/NewsModule.html","title":"module - NewsModule","body":"\n \n\n\n\n\n Modules\n NewsModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_NewsModule\n\n\n\ncluster_NewsModule_providers\n\n\n\ncluster_NewsModule_imports\n\n\n\ncluster_NewsModule_exports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nNewsModule\n\nNewsModule\n\nNewsModule -->\n\nAuthorizationModule->NewsModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nNewsModule -->\n\nLoggerModule->NewsModule\n\n\n\n\n\nNewsUc \n\nNewsUc \n\nNewsUc -->\n\nNewsModule->NewsUc \n\n\n\n\n\nNewsRepo\n\nNewsRepo\n\nNewsModule -->\n\nNewsRepo->NewsModule\n\n\n\n\n\nNewsUc\n\nNewsUc\n\nNewsModule -->\n\nNewsUc->NewsModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/news/news.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n NewsRepo\n \n \n NewsUc\n \n \n \n \n Controllers\n \n \n NewsController\n \n \n TeamNewsController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n NewsUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { NewsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { NewsController } from './controller/news.controller';\nimport { TeamNewsController } from './controller/team-news.controller';\nimport { NewsUc } from './uc/news.uc';\n\n@Module({\n\timports: [AuthorizationModule, LoggerModule],\n\tcontrollers: [NewsController, TeamNewsController],\n\tproviders: [NewsUc, NewsRepo],\n\texports: [NewsUc],\n})\nexport class NewsModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/NewsRepo.html":{"url":"injectables/NewsRepo.html","title":"injectable - NewsRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n NewsRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/news/news.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n propertiesToPopulate\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAllPublished\n \n \n Async\n findAllUnpublishedByUser\n \n \n Private\n Async\n findNewsAndCount\n \n \n Async\n findOneById\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAllPublished\n \n \n \n \n \n \n \n findAllPublished(targets: NewsTargetFilter[], options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:21\n \n \n\n\n \n \n Find news\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n targets\n \n NewsTargetFilter[]\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllUnpublishedByUser\n \n \n \n \n \n \n \n findAllUnpublishedByUser(targets: NewsTargetFilter[], creatorId: EntityId, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:36\n \n \n\n\n \n \n Find news\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n targets\n \n NewsTargetFilter[]\n \n\n \n No\n \n\n\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \ncreatorId\n\n\n \n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findNewsAndCount\n \n \n \n \n \n \n \n findNewsAndCount(query: FilterQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:58\n \n \n\n\n \n \n resolves a news documents list with some elements (school, target, and updator/creator) populated already\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOneById\n \n \n \n \n \n \n \n findOneById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:51\n \n \n\n\n \n \n resolves a news document with some elements (school, target, and updator/creator) populated already\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n propertiesToPopulate\n \n \n \n \n \n \n Type : []\n\n \n \n \n \n Default value : ['school', 'target', 'creator', 'updater']\n \n \n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:10\n \n \n\n\n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:12\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { Counted, CourseNews, EntityId, IFindOptions, News, SchoolNews, TeamNews } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { NewsScope } from './news-scope';\nimport { NewsTargetFilter } from './news-target-filter';\n\n@Injectable()\nexport class NewsRepo extends BaseRepo {\n\tpropertiesToPopulate = ['school', 'target', 'creator', 'updater'];\n\n\tget entityName() {\n\t\treturn News;\n\t}\n\n\t/**\n\t * Find news\n\t * @param targets\n\t * @param options\n\t */\n\tasync findAllPublished(targets: NewsTargetFilter[], options?: IFindOptions): Promise> {\n\t\tconst scope = new NewsScope();\n\t\tscope.byTargets(targets);\n\t\tscope.byPublished();\n\n\t\tconst countedNewsList = await this.findNewsAndCount(scope.query, options);\n\t\treturn countedNewsList;\n\t}\n\n\t/**\n\t * Find news\n\t * @param targets\n\t * @param creatorId - creatorId\n\t * @param options\n\t */\n\tasync findAllUnpublishedByUser(\n\t\ttargets: NewsTargetFilter[],\n\t\tcreatorId: EntityId,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new NewsScope();\n\t\tscope.byTargets(targets);\n\t\tscope.byUnpublished();\n\t\tscope.byCreator(creatorId);\n\n\t\tconst countedNewsList = await this.findNewsAndCount(scope.query, options);\n\t\treturn countedNewsList;\n\t}\n\n\t/** resolves a news document with some elements (school, target, and updator/creator) populated already */\n\tasync findOneById(id: EntityId): Promise {\n\t\tconst newsEntity = await this._em.findOneOrFail(News, id);\n\t\tawait this._em.populate(newsEntity, this.propertiesToPopulate as never[]);\n\t\treturn newsEntity;\n\t}\n\n\t/** resolves a news documents list with some elements (school, target, and updator/creator) populated already */\n\tprivate async findNewsAndCount(query: FilterQuery, options?: IFindOptions): Promise> {\n\t\tconst { pagination, order } = options || {};\n\t\tconst [newsEntities, count] = await this._em.findAndCount(News, query, {\n\t\t\t...pagination,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t});\n\t\tawait this._em.populate(newsEntities, this.propertiesToPopulate as never[]);\n\t\t// populate target for all inheritances of news which not works when the list contains different types\n\t\tconst discriminatorColumn = 'target';\n\t\tconst schoolNews = newsEntities.filter((news) => news instanceof SchoolNews);\n\t\tawait this._em.populate(schoolNews, [discriminatorColumn]);\n\t\tconst teamNews = newsEntities.filter((news) => news instanceof TeamNews);\n\t\tawait this._em.populate(teamNews, [discriminatorColumn]);\n\t\tconst courseNews = newsEntities.filter((news) => news instanceof CourseNews);\n\t\tawait this._em.populate(courseNews, [discriminatorColumn]);\n\t\treturn [newsEntities, count];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsResponse.html":{"url":"classes/NewsResponse.html","title":"class - NewsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/news.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n createdAt\n \n \n \n creator\n \n \n \n displayAt\n \n \n \n id\n \n \n \n permissions\n \n \n \n school\n \n \n \n Optional\n source\n \n \n \n Optional\n sourceDescription\n \n \n \n target\n \n \n \n targetId\n \n \n \n targetModel\n \n \n \n title\n \n \n \n updatedAt\n \n \n \n Optional\n updater\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: NewsResponse)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n NewsResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Content of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:61\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The creation timestamp'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:116\n \n \n\n\n \n \n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n Type : UserInfoResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Reference to the User that created the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:106\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The point in time from when the News entity schould be displayed'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the News entity', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'List of permissions the current user has for the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:126\n \n \n\n\n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolInfoResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The School ownership'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:101\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n source\n \n \n \n \n \n \n Type : SourceType\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({type: 'string', enum: NEWS_SOURCES, description: 'The type of source of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:73\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceDescription\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The source description of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:78\n \n \n\n\n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : TargetInfoResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The target object with id and name, could be the school, team, or course name'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:96\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}', description: 'Specific target id to which the News entity is related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:91\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: TARGET_MODEL_VALUES, enumName: 'NewsTargetModel', description: 'Target model to which the News entity is related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:85\n \n \n\n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Title of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The update timestamp'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:121\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n updater\n \n \n \n \n \n \n Type : UserInfoResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Reference to the User that updated the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:111\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { NewsTargetModel } from '@shared/domain';\nimport { SchoolInfoResponse } from './school-info.response';\nimport { TargetInfoResponse } from './target-info.response';\nimport { UserInfoResponse } from './user-info.response';\n\nconst NEWS_SOURCES = ['internal', 'rss'] as const;\nconst TARGET_MODEL_VALUES = Object.values(NewsTargetModel);\n\ntype SourceType = typeof NEWS_SOURCES[number];\nexport class NewsResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tcontent,\n\t\tdisplayAt,\n\t\tsource,\n\t\tsourceDescription,\n\t\ttargetModel,\n\t\ttargetId,\n\t\ttarget,\n\t\tschool,\n\t\tcreator,\n\t\tupdater,\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t\tpermissions,\n\t}: NewsResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.content = content;\n\t\tthis.displayAt = displayAt;\n\t\tthis.source = source;\n\t\tthis.sourceDescription = sourceDescription;\n\t\tthis.targetModel = targetModel;\n\t\tthis.targetId = targetId;\n\t\tthis.target = target;\n\t\tthis.school = school;\n\t\tthis.creator = creator;\n\t\tthis.updater = updater;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.permissions = permissions;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the News entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Title of the News entity',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Content of the News entity',\n\t})\n\tcontent: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The point in time from when the News entity schould be displayed',\n\t})\n\tdisplayAt: Date;\n\n\t@ApiPropertyOptional({\n\t\ttype: 'string',\n\t\tenum: NEWS_SOURCES,\n\t\tdescription: 'The type of source of the News entity',\n\t})\n\tsource?: SourceType;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'The source description of the News entity',\n\t})\n\tsourceDescription?: string;\n\n\t@ApiProperty({\n\t\tenum: TARGET_MODEL_VALUES,\n\t\tenumName: 'NewsTargetModel',\n\t\tdescription: 'Target model to which the News entity is related',\n\t})\n\ttargetModel: string;\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Specific target id to which the News entity is related',\n\t})\n\ttargetId: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The target object with id and name, could be the school, team, or course name',\n\t})\n\ttarget: TargetInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'The School ownership',\n\t})\n\tschool: SchoolInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'Reference to the User that created the News entity',\n\t})\n\tcreator: UserInfoResponse;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Reference to the User that updated the News entity',\n\t})\n\tupdater?: UserInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'The creation timestamp',\n\t})\n\tcreatedAt: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'The update timestamp',\n\t})\n\tupdatedAt: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'List of permissions the current user has for the News entity',\n\t})\n\tpermissions: string[];\n}\n\nexport class NewsListResponse extends PaginationResponse {\n\tconstructor(data: NewsResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [NewsResponse] })\n\tdata: NewsResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsScope.html":{"url":"classes/NewsScope.html","title":"class - NewsScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/news/news-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byCreator\n \n \n byPublished\n \n \n byTargets\n \n \n byUnpublished\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byCreator\n \n \n \n \n \n \nbyCreator(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news-scope.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : NewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byPublished\n \n \n \n \n \n \nbyPublished()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news-scope.ts:25\n \n \n\n\n \n \n\n \n Returns : NewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n byTargets\n \n \n \n \n \n \nbyTargets(targets: NewsTargetFilter[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news-scope.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n targets\n \n NewsTargetFilter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : NewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byUnpublished\n \n \n \n \n \n \nbyUnpublished()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news-scope.ts:31\n \n \n\n\n \n \n\n \n Returns : NewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { EntityId, News } from '@shared/domain';\nimport { EmptyResultQuery } from '../query';\nimport { Scope } from '../scope';\nimport { NewsTargetFilter } from './news-target-filter';\n\nexport class NewsScope extends Scope {\n\tbyTargets(targets: NewsTargetFilter[]): NewsScope {\n\t\tconst queries: FilterQuery[] = targets.map((target) => {\n\t\t\treturn {\n\t\t\t\t$and: [{ targetModel: target.targetModel }, { 'target:in': target.targetIds }],\n\t\t\t};\n\t\t});\n\t\tif (queries.length === 0) {\n\t\t\t// mission impossile query to ensure empty query result\n\t\t\tthis.addQuery(EmptyResultQuery);\n\t\t} else if (queries.length === 1) {\n\t\t\tthis.addQuery(queries[0]);\n\t\t} else {\n\t\t\tthis.addQuery({ $or: queries });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyPublished(): NewsScope {\n\t\tconst now = new Date();\n\t\tthis.addQuery({ displayAt: { $lte: now } });\n\t\treturn this;\n\t}\n\n\tbyUnpublished(): NewsScope {\n\t\tconst now = new Date();\n\t\tthis.addQuery({ displayAt: { $gt: now } });\n\t\treturn this;\n\t}\n\n\tbyCreator(creatorId: EntityId): NewsScope {\n\t\tif (creatorId !== undefined) {\n\t\t\tthis.addQuery({ creator: creatorId });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/NewsTargetFilter.html":{"url":"interfaces/NewsTargetFilter.html","title":"interface - NewsTargetFilter","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n NewsTargetFilter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/news/news-target-filter.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n targetIds\n \n \n \n \n targetModel\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n targetIds\n \n \n \n \n \n \n \n \n targetIds: EntityId[]\n\n \n \n\n\n \n \n Type : EntityId[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n \n \n targetModel: NewsTargetModel\n\n \n \n\n\n \n \n Type : NewsTargetModel\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId, NewsTargetModel } from '@shared/domain';\n\nexport interface NewsTargetFilter {\n\ttargetModel: NewsTargetModel;\n\ttargetIds: EntityId[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/NewsUc.html":{"url":"injectables/NewsUc.html","title":"injectable - NewsUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n NewsUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/uc/news.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n create\n \n \n Public\n Async\n delete\n \n \n Public\n Async\n findAllForUser\n \n \n Public\n Async\n findOneByIdForUser\n \n \n Private\n Async\n getNewsPermissions\n \n \n Private\n Async\n getPermittedTargets\n \n \n Private\n Static\n getRequiredPermissions\n \n \n Private\n Async\n getTargetFilters\n \n \n Public\n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(newsRepo: NewsRepo, authorizationService: FeathersAuthorizationService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n newsRepo\n \n \n NewsRepo\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n FeathersAuthorizationService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n create\n \n \n \n \n \n \n \n create(userId: EntityId, schoolId: EntityId, params: ICreateNews)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n params\n \n ICreateNews\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n delete\n \n \n \n \n \n \n \n delete(id: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:148\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findAllForUser\n \n \n \n \n \n \n \n findAllForUser(userId: EntityId, scope?: INewsScope, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:67\n \n \n\n\n \n \n Provides news for a user, by default odered by displayAt to show latest news first.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n INewsScope\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findOneByIdForUser\n \n \n \n \n \n \n \n findOneByIdForUser(id: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getNewsPermissions\n \n \n \n \n \n \n \n getNewsPermissions(userId: EntityId, news: News)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:197\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n news\n \n News\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getPermittedTargets\n \n \n \n \n \n \n \n getPermittedTargets(userId: EntityId, scope: INewsScope | undefined, permissions: NewsPermission[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:159\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n INewsScope | undefined\n \n\n \n No\n \n\n\n \n \n permissions\n \n NewsPermission[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n getRequiredPermissions\n \n \n \n \n \n \n \n getRequiredPermissions(unpublished: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:207\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n unpublished\n \n boolean\n \n\n \n No\n \n\n\n \n news with displayAt set to future date are not published for users with view permission\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getTargetFilters\n \n \n \n \n \n \n \n getTargetFilters(userId: EntityId, targetModels: NewsTargetModel[], permissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:179\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModels\n \n NewsTargetModel[]\n \n\n \n No\n \n\n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n update\n \n \n \n \n \n \n \n update(id: EntityId, userId: EntityId, params: IUpdateNews)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n params\n \n IUpdateNews\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tCounted,\n\tEntityId,\n\tICreateNews,\n\tIFindOptions,\n\tINewsScope,\n\tIUpdateNews,\n\tNews,\n\tNewsTargetModel,\n\tPermission,\n\tSortOrder,\n} from '@shared/domain';\nimport { NewsRepo, NewsTargetFilter } from '@shared/repo';\nimport { CrudOperation } from '@shared/types';\nimport { Logger } from '@src/core/logger';\nimport { FeathersAuthorizationService } from '@src/modules/authorization';\nimport { NewsCrudOperationLoggable } from '../loggable/news-crud-operation.loggable';\n\ntype NewsPermission = Permission.NEWS_VIEW | Permission.NEWS_EDIT;\n\n@Injectable()\nexport class NewsUc {\n\tconstructor(\n\t\tprivate newsRepo: NewsRepo,\n\t\tprivate authorizationService: FeathersAuthorizationService,\n\t\tprivate logger: Logger\n\t) {\n\t\tthis.logger.setContext(NewsUc.name);\n\t}\n\n\t/**\n\t *\n\t * @param userId\n\t * @param schoolId\n\t * @param params\n\t * @returns\n\t */\n\tpublic async create(userId: EntityId, schoolId: EntityId, params: ICreateNews): Promise {\n\t\tconst { targetModel, targetId } = params.target;\n\t\tawait this.authorizationService.checkEntityPermissions(userId, targetModel, targetId, [Permission.NEWS_CREATE]);\n\n\t\tconst { target, displayAt: paramDisplayAt, ...props } = params;\n\t\t// set news as published by default\n\t\tconst displayAt = paramDisplayAt || new Date();\n\t\tconst news = News.createInstance(targetModel, {\n\t\t\t...props,\n\t\t\tdisplayAt,\n\t\t\tschool: schoolId,\n\t\t\tcreator: userId,\n\t\t\ttarget: targetId,\n\t\t});\n\t\tawait this.newsRepo.save(news);\n\n\t\tthis.logger.info(new NewsCrudOperationLoggable(CrudOperation.CREATE, userId, news));\n\n\t\treturn news;\n\t}\n\n\t/**\n\t * Provides news for a user, by default odered by displayAt to show latest news first.\n\t * @param userId\n\t * @param scope\n\t * @param pagination\n\t * @returns\n\t */\n\tpublic async findAllForUser(\n\t\tuserId: EntityId,\n\t\tscope?: INewsScope,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst unpublished = !!scope?.unpublished; // default is only published news\n\t\tconst permissions: [NewsPermission] = NewsUc.getRequiredPermissions(unpublished);\n\n\t\tconst targets = await this.getPermittedTargets(userId, scope, permissions);\n\n\t\tif (options == null) options = {};\n\t\t// by default show latest news first\n\t\tif (options.order == null) options.order = { displayAt: SortOrder.desc };\n\n\t\tconst [newsList, newsCount] = unpublished\n\t\t\t? await this.newsRepo.findAllUnpublishedByUser(targets, userId, options)\n\t\t\t: await this.newsRepo.findAllPublished(targets, options);\n\n\t\tawait Promise.all(\n\t\t\tnewsList.map(async (news: News) => {\n\t\t\t\tnews.permissions = await this.getNewsPermissions(userId, news);\n\t\t\t})\n\t\t);\n\n\t\treturn [newsList, newsCount];\n\t}\n\n\t/**\n\t *\n\t * @param id\n\t * @param userId\n\t * @returns\n\t */\n\tpublic async findOneByIdForUser(id: EntityId, userId: EntityId): Promise {\n\t\tconst news = await this.newsRepo.findOneById(id);\n\t\tconst isPublished = news.displayAt > new Date();\n\t\tconst requiredPermissions = NewsUc.getRequiredPermissions(isPublished);\n\t\tawait this.authorizationService.checkEntityPermissions(\n\t\t\tuserId,\n\t\t\tnews.targetModel,\n\t\t\tnews.target.id,\n\t\t\trequiredPermissions\n\t\t);\n\t\tnews.permissions = await this.getNewsPermissions(userId, news);\n\n\t\treturn news;\n\t}\n\n\t/**\n\t *\n\t * @param id\n\t * @param userId\n\t * @param params\n\t * @returns\n\t */\n\tpublic async update(id: EntityId, userId: EntityId, params: IUpdateNews): Promise {\n\t\tconst news = await this.newsRepo.findOneById(id);\n\t\tawait this.authorizationService.checkEntityPermissions(userId, news.targetModel, news.target.id, [\n\t\t\tPermission.NEWS_EDIT,\n\t\t]);\n\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const [key, value] of Object.entries(params)) {\n\t\t\tif (value) {\n\t\t\t\tnews[key] = value;\n\t\t\t}\n\t\t}\n\n\t\tawait this.newsRepo.save(news);\n\n\t\tthis.logger.info(new NewsCrudOperationLoggable(CrudOperation.UPDATE, userId, news));\n\n\t\treturn news;\n\t}\n\n\t/**\n\t *\n\t * @param id\n\t * @param userId\n\t * @returns\n\t */\n\tpublic async delete(id: EntityId, userId: EntityId): Promise {\n\t\tconst news = await this.newsRepo.findOneById(id);\n\t\tawait this.authorizationService.checkEntityPermissions(userId, news.targetModel, news.target.id, ['NEWS_EDIT']);\n\n\t\tawait this.newsRepo.delete(news);\n\n\t\tthis.logger.info(new NewsCrudOperationLoggable(CrudOperation.DELETE, userId, news));\n\n\t\treturn id;\n\t}\n\n\tprivate async getPermittedTargets(userId: EntityId, scope: INewsScope | undefined, permissions: NewsPermission[]) {\n\t\tlet targets: NewsTargetFilter[];\n\n\t\tif (scope?.target == null) {\n\t\t\t// for all target models\n\t\t\ttargets = await this.getTargetFilters(userId, Object.values(NewsTargetModel), permissions);\n\t\t} else {\n\t\t\tconst { targetModel, targetId } = scope.target;\n\t\t\tif (targetModel && targetId) {\n\t\t\t\t// for specific news target\n\t\t\t\tawait this.authorizationService.checkEntityPermissions(userId, targetModel, targetId, permissions);\n\t\t\t\ttargets = [{ targetModel, targetIds: [targetId] }];\n\t\t\t} else {\n\t\t\t\t// for single target model\n\t\t\t\ttargets = await this.getTargetFilters(userId, [targetModel], permissions);\n\t\t\t}\n\t\t}\n\t\treturn targets;\n\t}\n\n\tprivate async getTargetFilters(\n\t\tuserId: EntityId,\n\t\ttargetModels: NewsTargetModel[],\n\t\tpermissions: string[]\n\t): Promise {\n\t\tconst targets = await Promise.all(\n\t\t\ttargetModels.map(async (targetModel) => {\n\t\t\t\treturn {\n\t\t\t\t\ttargetModel,\n\t\t\t\t\ttargetIds: await this.authorizationService.getPermittedEntities(userId, targetModel, permissions),\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\t\tconst nonEmptyTargets = targets.filter((target) => target.targetIds.length > 0);\n\n\t\treturn nonEmptyTargets;\n\t}\n\n\tprivate async getNewsPermissions(userId: EntityId, news: News): Promise {\n\t\tconst permissions = await this.authorizationService.getEntityPermissions(userId, news.targetModel, news.target.id);\n\t\treturn permissions.filter((permission) => permission.includes('NEWS'));\n\t}\n\n\t/**\n\t *\n\t * @param unpublished news with displayAt set to future date are not published for users with view permission\n\t * @returns\n\t */\n\tprivate static getRequiredPermissions(unpublished: boolean): [NewsPermission] {\n\t\treturn unpublished ? [Permission.NEWS_EDIT] : [Permission.NEWS_VIEW];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsUrlParams.html":{"url":"classes/NewsUrlParams.html","title":"class - NewsUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/news.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n newsId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n newsId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the news.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class NewsUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the news.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tnewsId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/NexboardService.html":{"url":"injectables/NexboardService.html","title":"injectable - NexboardService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n NexboardService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/service/nexboard.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createNexboard\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(feathersServiceProvider: FeathersServiceProvider, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/nexboard.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n feathersServiceProvider\n \n \n FeathersServiceProvider\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createNexboard\n \n \n \n \n \n \n \n createNexboard(userId: EntityId, title: string, description: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/nexboard.service.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n description\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { FeathersServiceProvider } from '@shared/infra/feathers/feathers-service.provider';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain/types';\n\nexport type NexboardResponse = { id: string; publicLink: string };\n\n@Injectable()\nexport class NexboardService {\n\tconstructor(private readonly feathersServiceProvider: FeathersServiceProvider, private logger: LegacyLogger) {}\n\n\tasync createNexboard(\n\t\tuserId: EntityId,\n\t\ttitle: string,\n\t\tdescription: string\n\t): Promise {\n\t\tconst data = {\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t};\n\t\ttry {\n\t\t\tconst service = this.feathersServiceProvider.getService('/nexboard/boards');\n\t\t\tconst nexBoard = (await service.create(data, { account: { userId } })) as NexboardResponse;\n\t\t\treturn { board: nexBoard.id, url: nexBoard.publicLink };\n\t\t} catch (error) {\n\t\t\tthis.logger.error('Could not create new Nexboard', error);\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/NextcloudGroups.html":{"url":"interfaces/NextcloudGroups.html","title":"interface - NextcloudGroups","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n NextcloudGroups\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n groups\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n groups\n \n \n \n \n \n \n \n \n groups: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/NextcloudStrategy.html":{"url":"injectables/NextcloudStrategy.html","title":"injectable - NextcloudStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n NextcloudStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts\n \n\n\n \n Description\n \n \n Nextcloud Strategy Implementation for Collaborative Storage\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createTeam\n \n \n Async\n deleteTeam\n \n \n Private\n Async\n findLegacyLtiTool\n \n \n Private\n Async\n findNextcloudTool\n \n \n Protected\n Static\n generateGroupFolderName\n \n \n Protected\n Static\n generateGroupId\n \n \n Async\n updateTeam\n \n \n Async\n updateTeamPermissionsForRole\n \n \n Protected\n Async\n updateTeamUsersInGroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, client: NextcloudClient, pseudonymService: PseudonymService, ltiToolRepo: LtiToolRepo, externalToolService: ExternalToolService, userService: UserService)\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n client\n \n \n NextcloudClient\n \n \n \n No\n \n \n \n \n pseudonymService\n \n \n PseudonymService\n \n \n \n No\n \n \n \n \n ltiToolRepo\n \n \n LtiToolRepo\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createTeam\n \n \n \n \n \n \n \n createTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:75\n \n \n\n\n \n \n Creates a team in nextcloud.\nThis includes the creation of the related group, its groupfolder and the adding of the teamUsers (the creator).\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n schulcloud team\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteTeam\n \n \n \n \n \n \n \n deleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:59\n \n \n\n\n \n \n Deletes a whole team in nextcloud.\nThis includes the related group in nextcloud and the groupfolder of the group.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n id of the schulcloud team\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findLegacyLtiTool\n \n \n \n \n \n \n \n findLegacyLtiTool()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:172\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findNextcloudTool\n \n \n \n \n \n \n \n findNextcloudTool()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:158\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n Static\n generateGroupFolderName\n \n \n \n \n \n \n \n generateGroupFolderName(teamId: string, teamName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:192\n \n \n\n\n \n \n Generates the groupfolder name by concatenating the teamId and teamName.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n id of the team\n\n \n \n \n teamName\n \n string\n \n\n \n No\n \n\n\n \n name of the team\n\n \n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Static\n generateGroupId\n \n \n \n \n \n \n \n generateGroupId(dto: TeamRolePermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:202\n \n \n\n\n \n \n Generates groupId of the nextcloud group by concatenating some TeamRolePermissionsDto properties.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n TeamRolePermissionsDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTeam\n \n \n \n \n \n \n \n updateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:98\n \n \n\n\n \n \n Updates a team in nextcloud.\nThis includes the teamuser and the displayname of the team.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n schulcloud team\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTeamPermissionsForRole\n \n \n \n \n \n \n \n updateTeamPermissionsForRole(dto: TeamRolePermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:38\n \n \n\n\n \n \n At the moment unused.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n TeamRolePermissionsDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n updateTeamUsersInGroup\n \n \n \n \n \n \n \n updateTeamUsersInGroup(groupId: string, teamUsers: TeamUserDto[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:129\n \n \n\n\n \n \n Updating nextcloud group to be in sync with schulcloud team members.\nTo do this, we have to get the link between the school cloud user ID and the Nextcloud user ID from the\npseudonym table and distinguish between added and deleted users.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n groupId\n \n string\n \n\n \n No\n \n\n\n \n nextclouds groupId\n\n \n \n \n teamUsers\n \n TeamUserDto[]\n \n\n \n No\n \n\n\n \n all users of a TeamDto\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport { Pseudonym, UserDO } from '@shared/domain/';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { LtiToolRepo } from '@shared/repo/ltitool/';\nimport { LegacyLogger } from '@src/core/logger';\nimport { TeamDto, TeamUserDto } from '@src/modules/collaborative-storage';\nimport { PseudonymService } from '@src/modules/pseudonym';\nimport { UserService } from '@src/modules/user';\nimport { ExternalToolService } from '@src/modules/tool/external-tool/service';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { TeamRolePermissionsDto } from '../../dto/team-role-permissions.dto';\nimport { ICollaborativeStorageStrategy } from '../base.interface.strategy';\nimport { NextcloudClient } from './nextcloud.client';\n\n/**\n * Nextcloud Strategy Implementation for Collaborative Storage\n *\n * @implements {ICollaborativeStorageStrategy}\n */\n@Injectable()\nexport class NextcloudStrategy implements ICollaborativeStorageStrategy {\n\tconstructor(\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly client: NextcloudClient,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly ltiToolRepo: LtiToolRepo,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly userService: UserService\n\t) {\n\t\tthis.logger.setContext(NextcloudStrategy.name);\n\t}\n\n\t/**\n\t * At the moment unused.\n\t *\n\t * @param dto\n\t */\n\tasync updateTeamPermissionsForRole(dto: TeamRolePermissionsDto): Promise {\n\t\tconst groupId: string = await this.client.findGroupId(NextcloudStrategy.generateGroupId(dto));\n\t\tlet folderId: number;\n\n\t\ttry {\n\t\t\tfolderId = await this.client.findGroupFolderIdForGroupId(groupId);\n\t\t\tawait this.client.setGroupPermissions(groupId, folderId, dto.permissions);\n\t\t} catch (e) {\n\t\t\tthis.logger.log(\n\t\t\t\t`Permissions in nextcloud were not set because of missing groupId or folderId for teamId ${dto.teamId}`\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Deletes a whole team in nextcloud.\n\t *\n\t * This includes the related group in nextcloud and the groupfolder of the group.\n\t *\n\t * @param teamId id of the schulcloud team\n\t */\n\tasync deleteTeam(teamId: string): Promise {\n\t\tconst groupId: string = this.client.getNameWithPrefix(teamId);\n\t\tif (groupId) {\n\t\t\tconst folderId: number = await this.client.findGroupFolderIdForGroupId(groupId);\n\t\t\tawait this.client.deleteGroup(groupId);\n\t\t\tawait this.client.deleteGroupFolder(folderId);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a team in nextcloud.\n\t *\n\t * This includes the creation of the related group, its groupfolder and the adding of the {@link TeamUserDto teamUsers} (the creator).\n\t *\n\t * @param team schulcloud team\n\t */\n\tasync createTeam(team: TeamDto): Promise {\n\t\tconst groupId: string = this.client.getNameWithPrefix(team.id);\n\n\t\tawait this.client.createGroup(groupId, team.name);\n\n\t\tawait this.updateTeamUsersInGroup(groupId, team.teamUsers);\n\n\t\tconst folderName: string = NextcloudStrategy.generateGroupFolderName(team.id, team.name);\n\t\t// TODO N21-124: move the creation of group folders from the schulcloud-nextcloud-app to here, when all existing teams are migrated to the nextcloud\n\t\t// Due to the schulcloud-nextcloud-app creating the group folder, when the group is created, it only needs to be renamed here\n\t\tconst folderId: number = await this.client.findGroupFolderIdForGroupId(groupId);\n\t\tawait this.client.changeGroupFolderName(folderId, folderName);\n\t\t// const folderId: number = await this.client.createGroupFolder(folderName);\n\t\t// await this.client.addAccessToGroupFolder(folderId, groupId);\n\t}\n\n\t/**\n\t * Updates a team in nextcloud.\n\t *\n\t * This includes the {@link TeamUserDto teamuser} and the displayname of the team.\n\t *\n\t * @param team schulcloud team\n\t */\n\tasync updateTeam(team: TeamDto): Promise {\n\t\tif (!team.id) {\n\t\t\tthrow new UnprocessableEntityException('Cannot update team without id');\n\t\t}\n\n\t\tconst groupId: string = this.client.getNameWithPrefix(team.id);\n\n\t\tif (team.teamUsers && team.teamUsers.length > 0) {\n\t\t\tawait this.updateTeamUsersInGroup(groupId, team.teamUsers);\n\t\t}\n\n\t\tif (team.name) {\n\t\t\tconst folderName: string = NextcloudStrategy.generateGroupFolderName(team.id, team.name);\n\n\t\t\tawait this.client.renameGroup(groupId, team.name);\n\n\t\t\tconst folderId: number = await this.client.findGroupFolderIdForGroupId(groupId);\n\t\t\tawait this.client.changeGroupFolderName(folderId, folderName);\n\t\t}\n\t}\n\n\t/**\n\t * Updating nextcloud group to be in sync with schulcloud team members.\n\t *\n\t * To do this, we have to get the link between the school cloud user ID and the Nextcloud user ID from the\n\t * pseudonym table and distinguish between added and deleted users.\n\t *\n\t * @param groupId nextclouds groupId\n\t * @param teamUsers all users of a {@link TeamDto}\n\t * @protected\n\t */\n\tprotected async updateTeamUsersInGroup(groupId: string, teamUsers: TeamUserDto[]): Promise {\n\t\tconst groupUserIds: string[] = await this.client.getGroupUsers(groupId);\n\t\tconst nextcloudTool: ExternalTool | LtiToolDO = await this.findNextcloudTool();\n\n\t\tlet convertedTeamUserIds: string[] = await Promise.all[]>(\n\t\t\t// The Oauth authentication generates a pseudonym which will be used from external systems as identifier\n\t\t\tteamUsers.map(async (teamUser: TeamUserDto): Promise => {\n\t\t\t\tconst user: UserDO = await this.userService.findById(teamUser.userId);\n\t\t\t\tconst userId = await this.pseudonymService\n\t\t\t\t\t.findByUserAndTool(user, nextcloudTool)\n\t\t\t\t\t.then((pseudonymDO: Pseudonym) => this.client.getNameWithPrefix(pseudonymDO.pseudonym))\n\t\t\t\t\t.catch(() => '');\n\n\t\t\t\treturn userId;\n\t\t\t})\n\t\t);\n\t\tconvertedTeamUserIds = convertedTeamUserIds.filter(Boolean);\n\n\t\tconst removeUserIds: string[] = groupUserIds.filter((userId) => !convertedTeamUserIds.includes(userId));\n\t\tthis.logger.debug(`Removing nextcloud userIds [${removeUserIds.toString()}]`);\n\t\tconst addUserIds: string[] = convertedTeamUserIds.filter((userId) => !groupUserIds.includes(userId));\n\t\tthis.logger.debug(`Adding nextcloud userIds [${addUserIds.toString()}]`);\n\n\t\treturn Promise.all([\n\t\t\tPromise.all(removeUserIds.map((nextcloudUserId) => this.client.removeUserFromGroup(nextcloudUserId, groupId))),\n\t\t\tPromise.all(addUserIds.map((nextcloudUserId) => this.client.addUserToGroup(nextcloudUserId, groupId))),\n\t\t]);\n\t}\n\n\tprivate async findNextcloudTool(): Promise {\n\t\tconst tool: ExternalTool | null = await this.externalToolService.findExternalToolByName(\n\t\t\tthis.client.oidcInternalName\n\t\t);\n\n\t\tif (!tool) {\n\t\t\tconst ltiToolPromise: Promise = this.findLegacyLtiTool();\n\n\t\t\treturn ltiToolPromise;\n\t\t}\n\n\t\treturn tool;\n\t}\n\n\tprivate async findLegacyLtiTool(): Promise {\n\t\tconst foundTools: LtiToolDO[] = await this.ltiToolRepo.findByName(this.client.oidcInternalName);\n\n\t\tif (foundTools.length > 1) {\n\t\t\tthis.logger.warn(\n\t\t\t\t`Please check the configured lti tools. There should one be one tool with the name ${this.client.oidcInternalName}. \n\t\t\t\tOtherwise teams can not be created or updated on demand.`\n\t\t\t);\n\t\t}\n\n\t\treturn foundTools[0];\n\t}\n\n\t/**\n\t * Generates the groupfolder name by concatenating the teamId and teamName.\n\t *\n\t * @param teamId id of the team\n\t * @param teamName name of the team\n\t * @protected\n\t */\n\tprotected static generateGroupFolderName(teamId: string, teamName: string): string {\n\t\treturn `${teamName} (${teamId})`;\n\t}\n\n\t/**\n\t * Generates groupId of the nextcloud group by concatenating some {@link TeamRolePermissionsDto} properties.\n\t *\n\t * @param dto\n\t * @protected\n\t */\n\tprotected static generateGroupId(dto: TeamRolePermissionsDto): string {\n\t\treturn `${dto.teamName}-${dto.teamId}-${dto.roleName}`;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NotFoundLoggableException.html":{"url":"classes/NotFoundLoggableException.html","title":"class - NotFoundLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NotFoundLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/loggable-exception/not-found.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n NotFoundException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resourceName: string, identifierName: string, resourceId: EntityId)\n \n \n \n \n Defined in apps/server/src/shared/common/loggable-exception/not-found.loggable-exception.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resourceName\n \n \n string\n \n \n \n No\n \n \n \n \n identifierName\n \n \n string\n \n \n \n No\n \n \n \n \n resourceId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/loggable-exception/not-found.loggable-exception.ts:15\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Loggable } from '@src/core/logger/interfaces';\nimport { ErrorLogMessage } from '@src/core/logger/types';\n\nexport class NotFoundLoggableException extends NotFoundException implements Loggable {\n\tconstructor(\n\t\tprivate readonly resourceName: string,\n\t\tprivate readonly identifierName: string,\n\t\tprivate readonly resourceId: EntityId\n\t) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): ErrorLogMessage {\n\t\tconst message: ErrorLogMessage = {\n\t\t\ttype: 'NOT_FOUND',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tresourceName: this.resourceName,\n\t\t\t\t[this.identifierName]: this.resourceId,\n\t\t\t},\n\t\t};\n\n\t\treturn message;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OAuth2ToolLaunchStrategy.html":{"url":"injectables/OAuth2ToolLaunchStrategy.html","title":"injectable - OAuth2ToolLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OAuth2ToolLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/oauth2-tool-launch.strategy.ts\n \n\n\n\n \n Extends\n \n \n AbstractLaunchStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n \n buildToolLaunchDataFromConcreteConfig\n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n Public\n \n determineLaunchRequestMethod\n \n \n Private\n Async\n addParameters\n \n \n Private\n addProperty\n \n \n Private\n applyPropertiesToPathParams\n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n Private\n buildUrl\n \n \n Public\n Async\n createLaunchData\n \n \n Public\n createLaunchRequest\n \n \n Private\n Async\n getParameterValue\n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n \n buildToolLaunchDataFromConcreteConfig\n \n \n \n \n \n \n \n buildToolLaunchDataFromConcreteConfig(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:9\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n \n \n \n \n \n buildToolLaunchRequestPayload(url: string, properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n determineLaunchRequestMethod\n \n \n \n \n \n \n \n determineLaunchRequestMethod(properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LaunchRequestMethod\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n \n \n \n \n \n addParameters(propertyData: PropertyData[], customParameterDOs: CustomParameter[], scopes: literal type[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:141\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n customParameterDOs\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n scopes\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n addProperty\n \n \n \n \n \n \n \n addProperty(propertyData: PropertyData[], propertyName: string, value: string | undefined, customParameterLocation: CustomParameterLocation)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:246\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n propertyName\n \n string\n \n\n \n No\n \n\n\n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n customParameterLocation\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n applyPropertiesToPathParams\n \n \n \n \n \n \n \n applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:91\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n URL\n \n\n \n No\n \n\n\n \n \n pathProperties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n \n \n \n \n \n buildToolLaunchDataFromExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:114\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n \n \n \n \n \n buildToolLaunchDataFromTools(data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:125\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildUrl\n \n \n \n \n \n \n \n buildUrl(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:65\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createLaunchData\n \n \n \n \n \n \n \n createLaunchData(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n createLaunchRequest\n \n \n \n \n \n \n \n createLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getParameterValue\n \n \n \n \n \n \n \n getParameterValue(customParameter: CustomParameter, matchingParameterEntry: CustomParameterEntry | undefined, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:204\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n matchingParameterEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n \n \n \n handleParametersToInclude(propertyData: PropertyData[], parametersToInclude: CustomParameter[], params: CustomParameterEntry[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:167\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n parametersToInclude\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n params\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { LaunchRequestMethod, PropertyData } from '../../types';\nimport { AbstractLaunchStrategy } from './abstract-launch.strategy';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\n\n@Injectable()\nexport class OAuth2ToolLaunchStrategy extends AbstractLaunchStrategy {\n\tpublic override buildToolLaunchDataFromConcreteConfig(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tuserId: EntityId,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tdata: IToolLaunchParams\n\t): Promise {\n\t\treturn Promise.resolve([]);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tpublic override buildToolLaunchRequestPayload(url: string, properties: PropertyData[]): string | null {\n\t\treturn null;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tpublic override determineLaunchRequestMethod(properties: PropertyData[]): LaunchRequestMethod {\n\t\treturn LaunchRequestMethod.GET;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthMigrationError.html":{"url":"classes/OAuthMigrationError.html","title":"class - OAuthMigrationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthMigrationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/oauth-migration.error.ts\n \n\n\n\n \n Extends\n \n \n OAuthSSOError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n Readonly\n errorcode\n \n \n Readonly\n message\n \n \n Readonly\n Optional\n officialSchoolNumberFromSource\n \n \n Readonly\n Optional\n officialSchoolNumberFromTarget\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message?: string, errorcode?: string, officialSchoolNumberFromSource?: string, officialSchoolNumberFromTarget?: string)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/oauth-migration.error.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n Yes\n \n \n \n \n errorcode\n \n \n string\n \n \n \n Yes\n \n \n \n \n officialSchoolNumberFromSource\n \n \n string\n \n \n \n Yes\n \n \n \n \n officialSchoolNumberFromTarget\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'OauthMigrationFailed'\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'Error in Oauth Migration Process.'\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:8\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n errorcode\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:4\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n Optional\n officialSchoolNumberFromSource\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/oauth-migration.error.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n Optional\n officialSchoolNumberFromTarget\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/oauth-migration.error.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { OAuthSSOError } from '@src/modules/oauth/error/oauth-sso.error';\n\nexport class OAuthMigrationError extends OAuthSSOError {\n\treadonly message: string;\n\n\treadonly errorcode: string;\n\n\treadonly DEFAULT_MESSAGE: string = 'Error in Oauth Migration Process.';\n\n\treadonly DEFAULT_ERRORCODE: string = 'OauthMigrationFailed';\n\n\treadonly officialSchoolNumberFromSource?: string;\n\n\treadonly officialSchoolNumberFromTarget?: string;\n\n\tconstructor(\n\t\tmessage?: string,\n\t\terrorcode?: string,\n\t\tofficialSchoolNumberFromSource?: string,\n\t\tofficialSchoolNumberFromTarget?: string\n\t) {\n\t\tsuper(message);\n\t\tthis.message = message || this.DEFAULT_MESSAGE;\n\t\tthis.errorcode = errorcode || this.DEFAULT_ERRORCODE;\n\t\tthis.officialSchoolNumberFromSource = officialSchoolNumberFromSource;\n\t\tthis.officialSchoolNumberFromTarget = officialSchoolNumberFromTarget;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthProcessDto.html":{"url":"classes/OAuthProcessDto.html","title":"class - OAuthProcessDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthProcessDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/oauth-process.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n jwt\n \n \n redirect\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(response: OAuthProcessDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/oauth-process.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n \n OAuthProcessDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n jwt\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/oauth-process.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n redirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/oauth-process.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OAuthProcessDto {\n\tjwt?: string;\n\n\tredirect: string;\n\n\tconstructor(response: OAuthProcessDto) {\n\t\tthis.jwt = response.jwt;\n\t\tthis.redirect = response.redirect;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthRejectableBody.html":{"url":"classes/OAuthRejectableBody.html","title":"class - OAuthRejectableBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthRejectableBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n Optional\n status_code\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The error should follow the OAuth2 error format (e.g. invalid_request, login_required). Defaults to request_denied.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Debug contains information to help resolve the problem as a developer. Usually not exposed to the public but only in the server logs.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Description of the error in a human readable format.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Hint to help resolve the error.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n status_code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@IsOptional()@ApiProperty({description: 'Represents the HTTP status code of the error (e.g. 401 or 403). Defaults to 400.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:50\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsNumber, IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class OAuthRejectableBody {\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'The error should follow the OAuth2 error format (e.g. invalid_request, login_required). Defaults to request_denied.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\terror?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Debug contains information to help resolve the problem as a developer. Usually not exposed to the public but only in the server logs.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\terror_debug?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Description of the error in a human readable format.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\terror_description?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Hint to help resolve the error.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\terror_hint?: string;\n\n\t@IsNumber()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Represents the HTTP status code of the error (e.g. 401 or 403). Defaults to 400.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tstatus_code?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthSSOError.html":{"url":"classes/OAuthSSOError.html","title":"class - OAuthSSOError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthSSOError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/error/oauth-sso.error.ts\n \n\n\n\n \n Extends\n \n \n InternalServerErrorException\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n Readonly\n errorcode\n \n \n Readonly\n message\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message?: string, errorcode?: string)\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n Yes\n \n \n \n \n errorcode\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : SSOErrorCode.SSO_OAUTH_LOGIN_FAILED\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'Error in SSO Oauth Process.'\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n errorcode\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { InternalServerErrorException } from '@nestjs/common';\nimport { SSOErrorCode } from './sso-error-code.enum';\n\nexport class OAuthSSOError extends InternalServerErrorException {\n\treadonly message: string;\n\n\treadonly errorcode: string;\n\n\treadonly DEFAULT_MESSAGE: string = 'Error in SSO Oauth Process.';\n\n\treadonly DEFAULT_ERRORCODE: string = SSOErrorCode.SSO_OAUTH_LOGIN_FAILED;\n\n\tconstructor(message?: string, errorcode?: string) {\n\t\tsuper(message);\n\t\tthis.message = message || this.DEFAULT_MESSAGE;\n\t\tthis.errorcode = errorcode || this.DEFAULT_ERRORCODE;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OAuthService.html":{"url":"injectables/OAuthService.html","title":"injectable - OAuthService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OAuthService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/oauth.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n authenticateUser\n \n \n Private\n buildTokenRequestPayload\n \n \n Private\n Async\n findUserAfterProvisioningOrThrow\n \n \n getAuthenticationUrl\n \n \n Async\n getPostLoginRedirectUrl\n \n \n getRedirectUri\n \n \n Async\n isOauthProvisioningEnabledForSchool\n \n \n Async\n provisionUser\n \n \n Async\n requestToken\n \n \n Async\n validateToken\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, oauthAdapterService: OauthAdapterService, oAuthEncryptionService: IEncryptionService, logger: LegacyLogger, provisioningService: ProvisioningService, systemService: SystemService, userMigrationService: UserMigrationService, migrationCheckService: MigrationCheckService, schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n oauthAdapterService\n \n \n OauthAdapterService\n \n \n \n No\n \n \n \n \n oAuthEncryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n provisioningService\n \n \n ProvisioningService\n \n \n \n No\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n userMigrationService\n \n \n UserMigrationService\n \n \n \n No\n \n \n \n \n migrationCheckService\n \n \n MigrationCheckService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n authenticateUser\n \n \n \n \n \n \n \n authenticateUser(systemId: string, redirectUri: string, authCode?: string, errorCode?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n authCode\n \n string\n \n\n \n Yes\n \n\n\n \n \n errorCode\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildTokenRequestPayload\n \n \n \n \n \n \n \n buildTokenRequestPayload(code: string, oauthConfig: OauthConfig, redirectUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:214\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n code\n \n string\n \n\n \n No\n \n\n\n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthenticationCodeGrantTokenRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findUserAfterProvisioningOrThrow\n \n \n \n \n \n \n \n findUserAfterProvisioningOrThrow(externalUserId: string, systemId: EntityId, officialSchoolNumber?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:116\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUserId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n officialSchoolNumber\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getAuthenticationUrl\n \n \n \n \n \n \ngetAuthenticationUrl(oauthConfig: OauthConfig, state: string, migration: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:189\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n state\n \n string\n \n\n \n No\n \n\n\n \n \n migration\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getPostLoginRedirectUrl\n \n \n \n \n \n \n \n getPostLoginRedirectUrl(idToken: string, systemId: string, postLoginRedirect?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:169\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idToken\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n postLoginRedirect\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getRedirectUri\n \n \n \n \n \n \ngetRedirectUri(migration: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:205\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n migration\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n isOauthProvisioningEnabledForSchool\n \n \n \n \n \n \n \n isOauthProvisioningEnabledForSchool(officialSchoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:132\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionUser\n \n \n \n \n \n \n \n provisionUser(systemId: string, idToken: string, accessToken: string, postLoginRedirect?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n idToken\n \n string\n \n\n \n No\n \n\n\n \n \n accessToken\n \n string\n \n\n \n No\n \n\n\n \n \n postLoginRedirect\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n requestToken\n \n \n \n \n \n \n \n requestToken(code: string, oauthConfig: OauthConfig, redirectUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n code\n \n string\n \n\n \n No\n \n\n\n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validateToken\n \n \n \n \n \n \n \n validateToken(idToken: string, oauthConfig: OauthConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:154\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idToken\n \n string\n \n\n \n No\n \n\n\n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Inject } from '@nestjs/common';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { EntityId, LegacySchoolDo, OauthConfig, SchoolFeatures, UserDO } from '@shared/domain';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ProvisioningService } from '@src/modules/provisioning';\nimport { OauthDataDto } from '@src/modules/provisioning/dto';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { SystemService } from '@src/modules/system';\nimport { SystemDto } from '@src/modules/system/service';\nimport { UserService } from '@src/modules/user';\nimport { MigrationCheckService, UserMigrationService } from '@src/modules/user-login-migration';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { OAuthSSOError, SSOErrorCode, UserNotFoundAfterProvisioningLoggableException } from '../error';\nimport { OAuthTokenDto } from '../interface';\nimport { TokenRequestMapper } from '../mapper/token-request.mapper';\nimport { AuthenticationCodeGrantTokenRequest, OauthTokenResponse } from './dto';\nimport { OauthAdapterService } from './oauth-adapter.service';\n\n@Injectable()\nexport class OAuthService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly oauthAdapterService: OauthAdapterService,\n\t\t@Inject(DefaultEncryptionService) private readonly oAuthEncryptionService: IEncryptionService,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly provisioningService: ProvisioningService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly userMigrationService: UserMigrationService,\n\t\tprivate readonly migrationCheckService: MigrationCheckService,\n\t\tprivate readonly schoolService: LegacySchoolService\n\t) {\n\t\tthis.logger.setContext(OAuthService.name);\n\t}\n\n\tasync authenticateUser(\n\t\tsystemId: string,\n\t\tredirectUri: string,\n\t\tauthCode?: string,\n\t\terrorCode?: string\n\t): Promise {\n\t\tif (errorCode || !authCode) {\n\t\t\tthrow new OAuthSSOError(\n\t\t\t\t'Authorization Query Object has no authorization code or error',\n\t\t\t\terrorCode || 'sso_auth_code_step'\n\t\t\t);\n\t\t}\n\n\t\tconst system: SystemDto = await this.systemService.findById(systemId);\n\t\tif (!system.oauthConfig) {\n\t\t\tthrow new OAuthSSOError(`Requested system ${systemId} has no oauth configured`, 'sso_internal_error');\n\t\t}\n\t\tconst { oauthConfig } = system;\n\n\t\tconst oauthTokens: OAuthTokenDto = await this.requestToken(authCode, oauthConfig, redirectUri);\n\n\t\tawait this.validateToken(oauthTokens.idToken, oauthConfig);\n\n\t\treturn oauthTokens;\n\t}\n\n\tasync provisionUser(\n\t\tsystemId: string,\n\t\tidToken: string,\n\t\taccessToken: string,\n\t\tpostLoginRedirect?: string\n\t): Promise {\n\t\tconst data: OauthDataDto = await this.provisioningService.getData(systemId, idToken, accessToken);\n\n\t\tconst externalUserId: string = data.externalUser.externalId;\n\t\tconst officialSchoolNumber: string | undefined = data.externalSchool?.officialSchoolNumber;\n\n\t\tlet provisioning = true;\n\t\tlet migrationConsentRedirect: string | undefined;\n\n\t\tif (officialSchoolNumber) {\n\t\t\tprovisioning = await this.isOauthProvisioningEnabledForSchool(officialSchoolNumber);\n\n\t\t\tconst shouldUserMigrate: boolean = await this.migrationCheckService.shouldUserMigrate(\n\t\t\t\texternalUserId,\n\t\t\t\tsystemId,\n\t\t\t\tofficialSchoolNumber\n\t\t\t);\n\n\t\t\tif (shouldUserMigrate) {\n\t\t\t\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-632 Move Redirect Logic URLs to Client\n\t\t\t\tmigrationConsentRedirect = await this.userMigrationService.getMigrationConsentPageRedirect(\n\t\t\t\t\tofficialSchoolNumber,\n\t\t\t\t\tsystemId\n\t\t\t\t);\n\n\t\t\t\tconst existingUser: UserDO | null = await this.userService.findByExternalId(externalUserId, systemId);\n\t\t\t\tif (!existingUser) {\n\t\t\t\t\treturn { user: undefined, redirect: migrationConsentRedirect };\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (provisioning) {\n\t\t\tawait this.provisioningService.provisionData(data);\n\t\t}\n\n\t\tconst user: UserDO = await this.findUserAfterProvisioningOrThrow(externalUserId, systemId, officialSchoolNumber);\n\n\t\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-632 Move Redirect Logic URLs to Client\n\t\tconst redirect: string = await this.getPostLoginRedirectUrl(\n\t\t\tidToken,\n\t\t\tsystemId,\n\t\t\tpostLoginRedirect || migrationConsentRedirect\n\t\t);\n\n\t\treturn { user, redirect };\n\t}\n\n\tprivate async findUserAfterProvisioningOrThrow(\n\t\texternalUserId: string,\n\t\tsystemId: EntityId,\n\t\tofficialSchoolNumber?: string\n\t): Promise {\n\t\tconst user: UserDO | null = await this.userService.findByExternalId(externalUserId, systemId);\n\n\t\tif (!user) {\n\t\t\t// This can happen, when OAuth2 provisioning is disabled, because the school doesn't have the feature.\n\t\t\t// OAuth2 provisioning is disabled for schools that don't have migrated, yet.\n\t\t\tthrow new UserNotFoundAfterProvisioningLoggableException(externalUserId, systemId, officialSchoolNumber);\n\t\t}\n\n\t\treturn user;\n\t}\n\n\tasync isOauthProvisioningEnabledForSchool(officialSchoolNumber: string): Promise {\n\t\tconst school: LegacySchoolDo | null = await this.schoolService.getSchoolBySchoolNumber(officialSchoolNumber);\n\n\t\tif (!school) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !!school.features?.includes(SchoolFeatures.OAUTH_PROVISIONING_ENABLED);\n\t}\n\n\tasync requestToken(code: string, oauthConfig: OauthConfig, redirectUri: string): Promise {\n\t\tconst payload: AuthenticationCodeGrantTokenRequest = this.buildTokenRequestPayload(code, oauthConfig, redirectUri);\n\n\t\tconst responseToken: OauthTokenResponse = await this.oauthAdapterService.sendAuthenticationCodeTokenRequest(\n\t\t\toauthConfig.tokenEndpoint,\n\t\t\tpayload\n\t\t);\n\n\t\tconst tokenDto: OAuthTokenDto = TokenRequestMapper.mapTokenResponseToDto(responseToken);\n\t\treturn tokenDto;\n\t}\n\n\tasync validateToken(idToken: string, oauthConfig: OauthConfig): Promise {\n\t\tconst publicKey: string = await this.oauthAdapterService.getPublicKey(oauthConfig.jwksEndpoint);\n\t\tconst decodedJWT: string | JwtPayload = jwt.verify(idToken, publicKey, {\n\t\t\talgorithms: ['RS256'],\n\t\t\tissuer: oauthConfig.issuer,\n\t\t\taudience: oauthConfig.clientId,\n\t\t});\n\n\t\tif (typeof decodedJWT === 'string') {\n\t\t\tthrow new OAuthSSOError('Failed to validate idToken', SSOErrorCode.SSO_JWT_PROBLEM);\n\t\t}\n\n\t\treturn decodedJWT;\n\t}\n\n\tasync getPostLoginRedirectUrl(idToken: string, systemId: string, postLoginRedirect?: string): Promise {\n\t\tconst clientUrl: string = Configuration.get('HOST') as string;\n\t\tconst dashboardUrl: URL = new URL('/dashboard', clientUrl);\n\t\tconst system: SystemDto = await this.systemService.findById(systemId);\n\n\t\tlet redirect: string;\n\t\tif (system.oauthConfig?.provider === 'iserv') {\n\t\t\tconst iservLogoutUrl: URL = new URL(system.oauthConfig.logoutEndpoint);\n\t\t\tiservLogoutUrl.searchParams.append('id_token_hint', idToken);\n\t\t\tiservLogoutUrl.searchParams.append('post_logout_redirect_uri', postLoginRedirect || dashboardUrl.toString());\n\t\t\tredirect = iservLogoutUrl.toString();\n\t\t} else if (postLoginRedirect) {\n\t\t\tredirect = postLoginRedirect;\n\t\t} else {\n\t\t\tredirect = dashboardUrl.toString();\n\t\t}\n\n\t\treturn redirect;\n\t}\n\n\tgetAuthenticationUrl(oauthConfig: OauthConfig, state: string, migration: boolean): string {\n\t\tconst redirectUri: string = this.getRedirectUri(migration);\n\n\t\tconst authenticationUrl: URL = new URL(oauthConfig.authEndpoint);\n\t\tauthenticationUrl.searchParams.append('client_id', oauthConfig.clientId);\n\t\tauthenticationUrl.searchParams.append('redirect_uri', redirectUri);\n\t\tauthenticationUrl.searchParams.append('response_type', oauthConfig.responseType);\n\t\tauthenticationUrl.searchParams.append('scope', oauthConfig.scope);\n\t\tauthenticationUrl.searchParams.append('state', state);\n\t\tif (oauthConfig.idpHint) {\n\t\t\tauthenticationUrl.searchParams.append('kc_idp_hint', oauthConfig.idpHint);\n\t\t}\n\n\t\treturn authenticationUrl.toString();\n\t}\n\n\tgetRedirectUri(migration: boolean) {\n\t\tconst publicBackendUrl: string = Configuration.get('PUBLIC_BACKEND_URL') as string;\n\n\t\tconst path: string = migration ? 'api/v3/sso/oauth/migration' : 'api/v3/sso/oauth';\n\t\tconst redirectUri: URL = new URL(path, publicBackendUrl);\n\n\t\treturn redirectUri.toString();\n\t}\n\n\tprivate buildTokenRequestPayload(\n\t\tcode: string,\n\t\toauthConfig: OauthConfig,\n\t\tredirectUri: string\n\t): AuthenticationCodeGrantTokenRequest {\n\t\tconst decryptedClientSecret: string = this.oAuthEncryptionService.decrypt(oauthConfig.clientSecret);\n\n\t\tconst tokenRequestPayload: AuthenticationCodeGrantTokenRequest =\n\t\t\tTokenRequestMapper.createAuthenticationCodeGrantTokenRequestPayload(\n\t\t\t\toauthConfig.clientId,\n\t\t\t\tdecryptedClientSecret,\n\t\t\t\tcode,\n\t\t\t\tredirectUri\n\t\t\t);\n\n\t\treturn tokenRequestPayload;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthTokenDto.html":{"url":"classes/OAuthTokenDto.html","title":"class - OAuthTokenDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthTokenDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/interface/oauth-token.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n accessToken\n \n \n idToken\n \n \n refreshToken\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: OAuthTokenDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/interface/oauth-token.dto.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n OAuthTokenDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/interface/oauth-token.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n idToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/interface/oauth-token.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n refreshToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/interface/oauth-token.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OAuthTokenDto {\n\tidToken: string;\n\n\trefreshToken: string;\n\n\taccessToken: string;\n\n\tconstructor(props: OAuthTokenDto) {\n\t\tthis.idToken = props.idToken;\n\t\tthis.refreshToken = props.refreshToken;\n\t\tthis.accessToken = props.accessToken;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2AuthorizationBodyParams.html":{"url":"classes/Oauth2AuthorizationBodyParams.html","title":"class - Oauth2AuthorizationBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2AuthorizationBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/dto/oauth2-authorization.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n redirectUri\n \n \n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth2-authorization.body.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth2-authorization.body.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth2-authorization.body.params.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNotEmpty, IsString } from 'class-validator';\n\nexport class Oauth2AuthorizationBodyParams {\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tredirectUri!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tcode!: string;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\tsystemId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2MigrationParams.html":{"url":"classes/Oauth2MigrationParams.html","title":"class - Oauth2MigrationParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2MigrationParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/oauth2-migration.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n redirectUri\n \n \n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/oauth2-migration.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/oauth2-migration.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/oauth2-migration.params.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNotEmpty, IsString } from 'class-validator';\n\nexport class Oauth2MigrationParams {\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tredirectUri!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tcode!: string;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\tsystemId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/Oauth2Strategy.html":{"url":"injectables/Oauth2Strategy.html","title":"injectable - Oauth2Strategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n Oauth2Strategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/oauth2.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthService: OAuthService, accountService: AccountService)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthService\n \n \n OAuthService\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(request: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { PassportStrategy } from '@nestjs/passport';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { OAuthTokenDto } from '@src/modules/oauth';\nimport { OAuthService } from '@src/modules/oauth/service/oauth.service';\nimport { Strategy } from 'passport-custom';\nimport { Oauth2AuthorizationBodyParams } from '../controllers/dto';\nimport { SchoolInMigrationError } from '../errors/school-in-migration.error';\nimport { ICurrentUser } from '../interface';\nimport { CurrentUserMapper } from '../mapper';\n\n@Injectable()\nexport class Oauth2Strategy extends PassportStrategy(Strategy, 'oauth2') {\n\tconstructor(private readonly oauthService: OAuthService, private readonly accountService: AccountService) {\n\t\tsuper();\n\t}\n\n\tasync validate(request: { body: Oauth2AuthorizationBodyParams }): Promise {\n\t\tconst { systemId, redirectUri, code } = request.body;\n\n\t\tconst tokenDto: OAuthTokenDto = await this.oauthService.authenticateUser(systemId, redirectUri, code);\n\n\t\tconst { user }: { user?: UserDO; redirect: string } = await this.oauthService.provisionUser(\n\t\t\tsystemId,\n\t\t\ttokenDto.idToken,\n\t\t\ttokenDto.accessToken\n\t\t);\n\n\t\tif (!user || !user.id) {\n\t\t\tthrow new SchoolInMigrationError();\n\t\t}\n\n\t\tconst account: AccountDto | null = await this.accountService.findByUserId(user.id);\n\t\tif (!account) {\n\t\t\tthrow new UnauthorizedException('no account found');\n\t\t}\n\n\t\tconst currentUser: ICurrentUser = CurrentUserMapper.userDoToICurrentUser(account.id, user, systemId);\n\n\t\treturn currentUser;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfig.html":{"url":"classes/Oauth2ToolConfig.html","title":"class - Oauth2ToolConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n clientId\n \n \n Optional\n clientSecret\n \n \n Optional\n frontchannelLogoutUri\n \n \n Optional\n redirectUris\n \n \n Optional\n scope\n \n \n skipConsent\n \n \n Optional\n tokenEndpointAuthMethod\n \n \n baseUrl\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Oauth2ToolConfig)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Oauth2ToolConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n redirectUris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n tokenEndpointAuthMethod\n \n \n \n \n \n \n Type : TokenEndpointAuthMethod\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:4\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ExternalToolConfig } from './external-tool-config.do';\nimport { TokenEndpointAuthMethod, ToolConfigType } from '../../../common/enum';\n\nexport class Oauth2ToolConfig extends ExternalToolConfig {\n\tclientId: string;\n\n\tclientSecret?: string;\n\n\tskipConsent: boolean;\n\n\ttokenEndpointAuthMethod?: TokenEndpointAuthMethod;\n\n\tfrontchannelLogoutUri?: string;\n\n\tscope?: string;\n\n\tredirectUris?: string[];\n\n\tconstructor(props: Oauth2ToolConfig) {\n\t\tsuper({\n\t\t\ttype: ToolConfigType.OAUTH2,\n\t\t\tbaseUrl: props.baseUrl,\n\t\t});\n\t\tthis.clientId = props.clientId;\n\t\tthis.clientSecret = props.clientSecret;\n\t\tthis.skipConsent = props.skipConsent;\n\t\tthis.redirectUris = props.redirectUris;\n\t\tthis.scope = props.scope;\n\t\tthis.tokenEndpointAuthMethod = props.tokenEndpointAuthMethod;\n\t\tthis.frontchannelLogoutUri = props.frontchannelLogoutUri;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigCreateParams.html":{"url":"classes/Oauth2ToolConfigCreateParams.html","title":"class - Oauth2ToolConfigCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n clientId\n \n \n \n \n clientSecret\n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n redirectUris\n \n \n \n \n \n Optional\n scope\n \n \n \n \n skipConsent\n \n \n \n \n tokenEndpointAuthMethod\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n redirectUris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n tokenEndpointAuthMethod\n \n \n \n \n \n \n Type : TokenEndpointAuthMethod\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(TokenEndpointAuthMethod)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsArray, IsBoolean, IsEnum, IsOptional, IsString } from 'class-validator';\nimport { TokenEndpointAuthMethod, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\n\nexport class Oauth2ToolConfigCreateParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tclientId!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tclientSecret!: string;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tskipConsent!: boolean;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tfrontchannelLogoutUri?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tscope?: string;\n\n\t@IsArray()\n\t@ApiProperty()\n\tredirectUris!: string[];\n\n\t@IsEnum(TokenEndpointAuthMethod)\n\t@ApiProperty()\n\ttokenEndpointAuthMethod!: TokenEndpointAuthMethod;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigEntity.html":{"url":"classes/Oauth2ToolConfigEntity.html","title":"class - Oauth2ToolConfigEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/config/oauth2-tool-config.entity.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigEntity\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n clientId\n \n \n \n skipConsent\n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Oauth2ToolConfigEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/oauth2-tool-config.entity.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Oauth2ToolConfigEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/oauth2-tool-config.entity.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/oauth2-tool-config.entity.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\nimport { ExternalToolConfigEntity } from './external-tool-config.entity';\nimport { ToolConfigType } from '../../../common/enum';\n\n@Embeddable({ discriminatorValue: ToolConfigType.OAUTH2 })\nexport class Oauth2ToolConfigEntity extends ExternalToolConfigEntity {\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tskipConsent: boolean;\n\n\tconstructor(props: Oauth2ToolConfigEntity) {\n\t\tsuper(props);\n\t\tthis.type = ToolConfigType.OAUTH2;\n\t\tthis.clientId = props.clientId;\n\t\tthis.skipConsent = props.skipConsent;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigFactory.html":{"url":"classes/Oauth2ToolConfigFactory.html","title":"class - Oauth2ToolConfigFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withExternalData\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withExternalData\n \n \n \n \n \n \nwithExternalData(oauth2Params?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauth2Params\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameter } from '@src/modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@src/modules/tool/external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nexport const basicToolConfigFactory = DoBaseFactory.define(BasicToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.BASIC,\n\t\tbaseUrl: 'https://www.basic-baseUrl.com/',\n\t};\n});\n\nclass Oauth2ToolConfigFactory extends DoBaseFactory {\n\twithExternalData(oauth2Params?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tclientSecret: 'clientSecret',\n\t\t\tscope: 'offline openid',\n\t\t\tfrontchannelLogoutUri: 'https://www.frontchannel.com/',\n\t\t\tredirectUris: ['https://www.redirect.com/'],\n\t\t\ttokenEndpointAuthMethod: TokenEndpointAuthMethod.CLIENT_SECRET_POST,\n\t\t};\n\n\t\treturn this.params({ ...params, ...oauth2Params });\n\t}\n}\n\nexport const oauth2ToolConfigFactory = Oauth2ToolConfigFactory.define(Oauth2ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.OAUTH2,\n\t\tbaseUrl: 'https://www.oauth2-baseUrl.com/',\n\t\tclientId: 'clientId',\n\t\tskipConsent: false,\n\t};\n});\n\nexport const lti11ToolConfigFactory = DoBaseFactory.define(Lti11ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.LTI11,\n\t\tbaseUrl: 'https://www.lti11-baseUrl.com/',\n\t\tkey: 'key',\n\t\tsecret: 'secret',\n\t\tprivacy_permission: LtiPrivacyPermission.PSEUDONYMOUS,\n\t\tlti_message_type: LtiMessageType.BASIC_LTI_LAUNCH_REQUEST,\n\t\tresource_link_id: 'linkId',\n\t\tlaunch_presentation_locale: 'de-DE',\n\t};\n});\n\nclass CustomParameterFactory extends DoBaseFactory {\n\tbuildListWithEachType(params?: DeepPartial): CustomParameter[] {\n\t\tconst globalParameter = this.build({ ...params, scope: CustomParameterScope.GLOBAL });\n\t\tconst schoolParameter = this.build({ ...params, scope: CustomParameterScope.SCHOOL });\n\t\tconst contextParameter = this.build({ ...params, scope: CustomParameterScope.CONTEXT });\n\n\t\treturn [globalParameter, schoolParameter, contextParameter];\n\t}\n}\n\nexport const customParameterFactory = CustomParameterFactory.define(CustomParameter, ({ sequence }) => {\n\treturn {\n\t\tname: `custom-parameter-${sequence}`,\n\t\tdisplayName: 'User Friendly Name',\n\t\ttype: CustomParameterType.STRING,\n\t\tscope: CustomParameterScope.SCHOOL,\n\t\tlocation: CustomParameterLocation.BODY,\n\t\tisOptional: false,\n\t};\n});\n\nclass ExternalToolFactory extends DoBaseFactory {\n\twithOauth2Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: oauth2ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLti11Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: lti11ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithCustomParameters(number: number, customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tparameters: customParameterFactory.buildList(number, customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBase64Logo(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tlogo: 'iVBORw0KGgoAAAANSUhEUgAAAfQAAADICAYAAAAeGRPoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUQ2Q0Y5RTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUQ2Q0ZBRTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYxRDZDRjdFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYxRDZDRjhFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz45EjsrAAALfUlEQVR42uzdgXWjOAIGYHLvGsiV4CnBU4JTgqeEpIS4hKSEpIS4BLsEu4RJCeMScmhGzPplkyCMAGO+7z3ezs3tYsuS+BEIcfX29lYAAOP2Hz8BAAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAIdABDoAIBABwAEOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAQCBDgAIdAAQ6ACAQAcABDoAINABQKADAAIdABDoAIBABwCBDgAIdABAoAMAAh0ABDoAINABgN79109AbldXV9flPxblNov/DOblFv7+UG77+HfVn39vb29vB78emdpg1fauP2iDwWvcgm3883aMbbAs6/yorPP414ujf+W4z+2r/12WdasOL6zdl4Ufa4fdvGu0gyp/x6sTyjD0jx8a/03GOgn1cVtuyxN3EQ4267CV3+t16u2jhz701lfb6DEAlnGbt2yDz+ccDDHEq7LOTtzNIZY11PVaHV6AEOhj3ErhgP12LtuJZRj6e28y1cW8g/p4CgeqKbePHvpQ522jp3LMYnvJWWe/2rbBjsq66Kht/wwn4+pw3Jt76LQ9o76NB5jco+Gw35/l/p/iJXx43/auy+2+CqPMu7+O+9zFzziHsj511Nf+Bmr5GT/jlTZ1OEICnbZh/lT8c0+rC1WwL/3ivLvkvCu3h44/KrTth/LzdvFy8BBlXXQUeJ8F+6b8zIeuT6SnVIcCnXM/oC5jmPchdMiXqZxlk3QiuStOv3d8inkc6c0HKOum45Pmj9zHYJ+pQ4HOZR9Qr08I8zBRZRu3U4RJcs9+fWHe44nkRyeWu/gd+ijr04BlrRzU4Xh4bI1T3CaMGMKB4LH4M4N2/0Gnrh5JqWbr1u3vzmNtwrxhEFSzuEP7ez1+TCu2v9lR+2syagv3mvcfteuMZb0vml1ifz0q6/74KZF3Za3Km/Lb/cjd56ZUh4OYyuy/1NnPZhknfe9fNd/9JQR0g/1Vk1d+frK/hym2D+3vX7O7G83YbtgGm86yDn1g1lFZlw3Lumy4/9Df7mv68VwdjrBPC3SBnrlT7lru//2BZtekUwv0y2t/MYB+JR6kH9q0lzjK2yV+1q6jx7dSy3qf4Xe9/2C/t+rQY2tMQ91lrceWV4zCf/8tXmZzqZ2iSH+SIrSVVZv2Ei/BhgV1UuZrzDuYqJlS1upyeNu+doj7+F78s+LaY/l3z+pwnAQ6WQM9x4pT8UDzI3TKi7vHRdN7rovEe753uYIotr+7xEC4zzUTPD45kvIM+E3Old1iH/sew3ylDgU609Hb4zPnvtY0vUgZPd11MaqMgbBP6A+5RngPiWXdd1DWQxdhPsE6FOhc1IjKqm7kHNnVjVjXHV0iroQrRXWXf2/btvtY1tnAZVWHAp2JqesYVnQjl5S2tOryC8THv1LuVbd9rvk2od+t1OFZ16FAZ3TqLl89XPJKTPQ2srtOCIPHtm/lSwyEEAZ1n7PsuKzPfZRVHQp0pqWuU4ROvLnUlZjoTfUe7C9DrsfvU/dZ8xYTq5YZPl8dDluHAp1RSpmo9ntp2Pjmpnv31TlB3VWefc8j1nWG7/yZ2ZmVVR0KdKYgPh+aelYdDlRh5u6vMtQ3MdxdjidHGKx7bvchePYJ7X30ZVWHAp38FmX4vXWwbTJ8t3A/qunCD4sY7uHFCCHgX2LAz1Q1n7SXL0d3A3ynbcvvPKayqsMR8nIWTjrTLYM4zEw99Y1J1WSZsIVJdNWLJdYWkiHREJegD2Mqa3ineZHpEnLZL2/UoUDnckP9uTxgFEWe1yCGUXpY2CGM2EOgP4/teVvySbktM9A95bqTzcUJZV10WNb5UCPOKdXhOXHJnVahXqQt2tD0IFRNqPNM+zSZRKkOEegMEOrhUnl4mcoqc7CHUXu4z/5kljyAQKefUD8cvSUtBHvOS2nhefaNUGcEvBVQHQp0LivYyy0E+++3NxV5ZrKGy/AvfuHJtKPatQ4Gevyx9nnxCyqrOhToZLQtO8VVB9tNTx16H99rHIL9f8Wfe+1tAn5xSe8tpvMDcxeuJ1RWdSjQ4dOR+/oo4MMIPrzWsOnCEladm9AJbc3/P8TobtHyO5/6381O7Hc3qSf6RTcvSJlSHQp0Jhvwr2GGfLn9iKP31Al1KS974DKc1Ys04onkouV3HkVZ1aFAhzaj92pCXcqz55aOnYbaJTp7vgebEj7bjso61peGTKkOBTq8C/a7hFC3VOw0pNyO6fONfnWftY3vOTjF9szKqg4FOmRRdy9v4SeaxgleQiDc9jFyja8C7uxFI4kvDbkd2yh9SnUo0OHzg8DWL0HiAfapyy8Q77vWPV1xKNqHQd2VqfA9HtThWdehQGecQieJZ73Q1cldOMDWTVLq+nHGEKJ1I8jHtpdq4zLKdftYjq3PTakOBTpjFl7D+hTf6JTbV4+meRvbtKQ8TvXQRdCFZYeL+vuuhyJtMmeKx8SyztXh2dahQGd0o/PQSaqDSng2fJPrPljcz1cHrFc1MLlResotmKeco7zEIMg6sotPe9S173Cyu+ngxUVzdSjQmV6Y337QScJEtV2mzlh3P80IfXruirR1CsIo76XN4kPhhDKcoCYGwTaGcO6y1gnle8nR38JoP5Z3qQ4FOtMK88UXgXsdO2N47elt0w4Z78m/FPWz2NdqYnKj9DBqTV3JLARTaIONVhWMIRACclekPUkRwulHB2UNI9nUgPnb307py3EEm1pedTiGY3T5Q08tlDZfVXZcBrGv7zL4j59a3njfblM0Wwv5OY6ow7ru+y/2u4xn03X73na9Fv05tY9Lbn+n/I7xYN10zsa6aoOxHR6qE8jiz2XmamsyQg37uPmsTWeqm5cTvlNV1tfjl6MclbW6nbUoGq7nkKvdT6kOBbpAP+dAv46B3uZe26H455L5rGi+SMz3rjugQD/fQI/fOfW+aFd6CYJM/S2XcI95lbFsk6jDIbjkTuoB+BBfrNLmflO1lnLjEUJpdYkdkMbtMNyLXQ308b0FQRyFhqtRQ86+/n1JOmeYT6kOBTpjOKCu4oGmz9nmz5c0cYXWbfAxtsE+ZyaHS9jf+gyCo+WQhwi/dSzvWh0KdC77gBo6xvci/S1pbaziQQ3et8HUF/q0HdHdxVeRHgYqaxV+fQTRaxzB/ui6vFOqQ4HOuR9Qj9+StupgxL6PBxYjc+pGsDdF/uWCD7Fdf4uruA1+AhNved0V3VwdC79fCPFvxxPq1OG4mBT37wZmUtzp5VnG3zb889TnSMMlvnVXl/rG1D4uuf118TvGRYluY/ubtWh/29gGD2dcdzn62j6W9Tk+VnYO5ZpMHQp0xhQW1aMk1+8Csvrz69FIYxv/vJ1aB6TTYKgmX87ftb3j9lc9eTHa9hf7WlXW2Qdl3cdyjqqsU6pDgQ4A/OUeOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4AAh0AEOgAgEAHAAQ6AAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAh0ABDoAIBABwAEOgAg0AFAoAMAAh0AEOgAgEAHAIEOAAh0AECgAwACHQAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAYD+/V+AAQADXuXS75wQpQAAAABJRU5ErkJggg==',\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const externalToolFactory = ExternalToolFactory.define(ExternalTool, ({ sequence }) => {\n\treturn {\n\t\tname: `external-tool-${sequence}`,\n\t\turl: 'https://url.com/',\n\t\tconfig: basicToolConfigFactory.build(),\n\t\tlogoUrl: 'https://logo.com/',\n\t\tisHidden: false,\n\t\topenNewTab: false,\n\t\tversion: 1,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigResponse.html":{"url":"classes/Oauth2ToolConfigResponse.html","title":"class - Oauth2ToolConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n clientId\n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n Optional\n redirectUris\n \n \n \n Optional\n scope\n \n \n \n skipConsent\n \n \n \n Optional\n tokenEndpointAuthMethod\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Oauth2ToolConfigResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:28\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Oauth2ToolConfigResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n redirectUris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n tokenEndpointAuthMethod\n \n \n \n \n \n \n Type : TokenEndpointAuthMethod\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ExternalToolConfigResponse } from './external-tool-config.response';\nimport { TokenEndpointAuthMethod, ToolConfigType } from '../../../../../common/enum';\n\nexport class Oauth2ToolConfigResponse extends ExternalToolConfigResponse {\n\t@ApiProperty()\n\ttype: ToolConfigType;\n\n\t@ApiProperty()\n\tbaseUrl: string;\n\n\t@ApiProperty()\n\tclientId: string;\n\n\t@ApiProperty()\n\tskipConsent: boolean;\n\n\t@ApiPropertyOptional()\n\tfrontchannelLogoutUri?: string;\n\n\t@ApiPropertyOptional()\n\tscope?: string;\n\n\t@ApiPropertyOptional()\n\tredirectUris?: string[];\n\n\t@ApiPropertyOptional()\n\ttokenEndpointAuthMethod?: TokenEndpointAuthMethod;\n\n\tconstructor(props: Oauth2ToolConfigResponse) {\n\t\tsuper();\n\t\tthis.type = ToolConfigType.OAUTH2;\n\t\tthis.baseUrl = props.baseUrl;\n\t\tthis.clientId = props.clientId;\n\t\tthis.skipConsent = props.skipConsent;\n\t\tthis.frontchannelLogoutUri = props.frontchannelLogoutUri;\n\t\tthis.scope = props.scope;\n\t\tthis.redirectUris = props.redirectUris;\n\t\tthis.tokenEndpointAuthMethod = props.tokenEndpointAuthMethod;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigUpdateParams.html":{"url":"classes/Oauth2ToolConfigUpdateParams.html","title":"class - Oauth2ToolConfigUpdateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigUpdateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n clientId\n \n \n \n \n \n Optional\n clientSecret\n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n redirectUris\n \n \n \n \n \n Optional\n scope\n \n \n \n \n skipConsent\n \n \n \n \n tokenEndpointAuthMethod\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n redirectUris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n tokenEndpointAuthMethod\n \n \n \n \n \n \n Type : TokenEndpointAuthMethod\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(TokenEndpointAuthMethod)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsArray, IsBoolean, IsEnum, IsOptional, IsString } from 'class-validator';\nimport { TokenEndpointAuthMethod, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\n\nexport class Oauth2ToolConfigUpdateParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tclientId!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tclientSecret?: string;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tskipConsent!: boolean;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tfrontchannelLogoutUri?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tscope?: string;\n\n\t@IsArray()\n\t@ApiProperty()\n\tredirectUris!: string[];\n\n\t@IsEnum(TokenEndpointAuthMethod)\n\t@ApiProperty()\n\ttokenEndpointAuthMethod!: TokenEndpointAuthMethod;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthAdapterService.html":{"url":"injectables/OauthAdapterService.html","title":"injectable - OauthAdapterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthAdapterService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/oauth-adapter.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getPublicKey\n \n \n Private\n Async\n resolveTokenRequest\n \n \n Public\n sendAuthenticationCodeTokenRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(httpService: HttpService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getPublicKey\n \n \n \n \n \n \n \n getPublicKey(jwksUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwksUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n resolveTokenRequest\n \n \n \n \n \n \n \n resolveTokenRequest(observable: Observable>)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n observable\n \n Observable>\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n sendAuthenticationCodeTokenRequest\n \n \n \n \n \n \n \n sendAuthenticationCodeTokenRequest(tokenEndpoint: string, payload: AuthenticationCodeGrantTokenRequest)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tokenEndpoint\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n AuthenticationCodeGrantTokenRequest\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Injectable } from '@nestjs/common/decorators';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AxiosResponse } from 'axios';\nimport JwksRsa from 'jwks-rsa';\nimport QueryString from 'qs';\nimport { lastValueFrom, Observable } from 'rxjs';\nimport { OAuthSSOError } from '../error/oauth-sso.error';\nimport { AuthenticationCodeGrantTokenRequest, OauthTokenResponse } from './dto';\n\n@Injectable()\nexport class OauthAdapterService {\n\tconstructor(private readonly httpService: HttpService, private readonly logger: LegacyLogger) {\n\t\tthis.logger.setContext(OauthAdapterService.name);\n\t}\n\n\tasync getPublicKey(jwksUri: string): Promise {\n\t\tconst client: JwksRsa.JwksClient = JwksRsa({\n\t\t\tcache: true,\n\t\t\tjwksUri,\n\t\t});\n\t\tconst key: JwksRsa.SigningKey = await client.getSigningKey();\n\t\treturn key.getPublicKey();\n\t}\n\n\tpublic sendAuthenticationCodeTokenRequest(\n\t\ttokenEndpoint: string,\n\t\tpayload: AuthenticationCodeGrantTokenRequest\n\t): Promise {\n\t\tconst urlEncodedPayload: string = QueryString.stringify(payload);\n\t\tconst responseTokenObservable = this.httpService.post(tokenEndpoint, urlEncodedPayload, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\n\t\t\t},\n\t\t});\n\t\tconst responseData: Promise = this.resolveTokenRequest(responseTokenObservable);\n\t\treturn responseData;\n\t}\n\n\tprivate async resolveTokenRequest(\n\t\tobservable: Observable>\n\t): Promise {\n\t\tlet responseToken: AxiosResponse;\n\t\ttry {\n\t\t\tresponseToken = await lastValueFrom(observable);\n\t\t} catch (error) {\n\t\t\tthrow new OAuthSSOError('Requesting token failed.', 'sso_auth_code_step');\n\t\t}\n\n\t\treturn responseToken.data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthApiModule.html":{"url":"modules/OauthApiModule.html","title":"module - OauthApiModule","body":"\n \n\n\n\n\n Modules\n OauthApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthApiModule\n\n\n\ncluster_OauthApiModule_providers\n\n\n\ncluster_OauthApiModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nOauthApiModule\n\nOauthApiModule\n\nOauthApiModule -->\n\nAuthenticationModule->OauthApiModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nOauthApiModule -->\n\nAuthorizationModule->OauthApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nOauthApiModule -->\n\nLegacySchoolModule->OauthApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthApiModule -->\n\nLoggerModule->OauthApiModule\n\n\n\n\n\nOauthModule\n\nOauthModule\n\nOauthApiModule -->\n\nOauthModule->OauthApiModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nOauthApiModule -->\n\nProvisioningModule->OauthApiModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nOauthApiModule -->\n\nSystemModule->OauthApiModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nOauthApiModule -->\n\nUserLoginMigrationModule->OauthApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthApiModule -->\n\nUserModule->OauthApiModule\n\n\n\n\n\nHydraOauthUc\n\nHydraOauthUc\n\nOauthApiModule -->\n\nHydraOauthUc->OauthApiModule\n\n\n\n\n\nOauthUc\n\nOauthUc\n\nOauthApiModule -->\n\nOauthUc->OauthApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth/oauth-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n HydraOauthUc\n \n \n OauthUc\n \n \n \n \n Controllers\n \n \n OauthSSOController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n OauthModule\n \n \n ProvisioningModule\n \n \n SystemModule\n \n \n UserLoginMigrationModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ProvisioningModule } from '@src/modules/provisioning';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { SystemModule } from '@src/modules/system';\nimport { UserModule } from '@src/modules/user';\nimport { UserLoginMigrationModule } from '@src/modules/user-login-migration';\nimport { OauthSSOController } from './controller/oauth-sso.controller';\nimport { OauthModule } from './oauth.module';\nimport { HydraOauthUc, OauthUc } from './uc';\n\n@Module({\n\timports: [\n\t\tOauthModule,\n\t\tAuthenticationModule,\n\t\tAuthorizationModule,\n\t\tProvisioningModule,\n\t\tLegacySchoolModule,\n\t\tUserLoginMigrationModule,\n\t\tSystemModule,\n\t\tUserModule,\n\t\tLoggerModule,\n\t],\n\tcontrollers: [OauthSSOController],\n\tproviders: [OauthUc, HydraOauthUc],\n})\nexport class OauthApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthClientBody.html":{"url":"classes/OauthClientBody.html","title":"class - OauthClientBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthClientBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n client_id\n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n Optional\n client_secret\n \n \n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n \n \n \n Optional\n grant_types\n \n \n \n \n \n \n Optional\n redirect_uris\n \n \n \n \n \n \n Optional\n response_types\n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n Optional\n subject_type\n \n \n \n \n \n Optional\n token_endpoint_auth_method\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n client_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The Oauth2 client id.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The Oauth2 client name.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n client_secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The Oauth2 client secret.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Thr frontchannel logout uri.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n grant_types\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The grant types of the Oauth2 client.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:71\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n redirect_uris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The allowed redirect urls of the Oauth2 client.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n response_types\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The response types of the Oauth2 client.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:77\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Scope is a string containing a space-separated list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting access tokens.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n subject_type\n \n \n \n \n \n \n Type : SubjectTypeEnum\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(SubjectTypeEnum)@IsOptional()@ApiProperty({description: 'SubjectType requested for responses to this Client. The subject_types_supported Discovery parameter contains a list of the supported subject_type values for this server. Valid types include pairwise and public.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n token_endpoint_auth_method\n \n \n \n \n \n \n Type : TokenAuthMethod\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(TokenAuthMethod)@IsOptional()@ApiProperty({description: 'Requested Client Authentication method for the Token Endpoint. The options are client_secret_post, client_secret_basic, private_key_jwt, and none.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:36\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsArray, IsEnum, IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { SubjectTypeEnum } from '@src/modules/oauth-provider/interface/subject-type.enum';\nimport { TokenAuthMethod } from '@src/modules/oauth-provider/interface/token-auth-method.enum';\n\nexport class OauthClientBody {\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({ description: 'The Oauth2 client id.', required: false, nullable: false })\n\tclient_id?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({ description: 'The Oauth2 client name.', required: false, nullable: false })\n\tclient_name?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({ description: 'The Oauth2 client secret.', required: false, nullable: false })\n\tclient_secret?: string;\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The allowed redirect urls of the Oauth2 client.', required: false, nullable: false })\n\tredirect_uris?: string[];\n\n\t@IsEnum(TokenAuthMethod)\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Requested Client Authentication method for the Token Endpoint. The options are client_secret_post, client_secret_basic, private_key_jwt, and none.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\ttoken_endpoint_auth_method?: TokenAuthMethod;\n\n\t@IsEnum(SubjectTypeEnum)\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'SubjectType requested for responses to this Client. The subject_types_supported Discovery parameter contains a list of the supported subject_type values for this server. Valid types include pairwise and public.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tsubject_type?: SubjectTypeEnum;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Scope is a string containing a space-separated list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting access tokens.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tscope?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Thr frontchannel logout uri.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tfrontchannel_logout_uri?: string;\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The grant types of the Oauth2 client.', required: false, nullable: false })\n\tgrant_types?: string[];\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The response types of the Oauth2 client.', required: false, nullable: false })\n\tresponse_types?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthConfig.html":{"url":"classes/OauthConfig.html","title":"class - OauthConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n authEndpoint\n \n \n \n clientId\n \n \n \n clientSecret\n \n \n \n grantType\n \n \n \n Optional\n idpHint\n \n \n \n issuer\n \n \n \n jwksEndpoint\n \n \n \n logoutEndpoint\n \n \n \n provider\n \n \n \n redirectUri\n \n \n \n responseType\n \n \n \n scope\n \n \n \n tokenEndpoint\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthConfig: OauthConfig)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfig\n \n \n OauthConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n authEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n grantType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n issuer\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n \n jwksEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n logoutEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n responseType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n tokenEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:51\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthConfigDto.html":{"url":"classes/OauthConfigDto.html","title":"class - OauthConfigDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthConfigDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/dto/oauth-config.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n authEndpoint\n \n \n clientId\n \n \n clientSecret\n \n \n grantType\n \n \n Optional\n idpHint\n \n \n issuer\n \n \n jwksEndpoint\n \n \n logoutEndpoint\n \n \n provider\n \n \n redirectUri\n \n \n responseType\n \n \n scope\n \n \n tokenEndpoint\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthConfigDto: OauthConfigDto)\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfigDto\n \n \n OauthConfigDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n authEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n grantType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n issuer\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n jwksEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n logoutEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n responseType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n tokenEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OauthConfigDto {\n\tclientId: string;\n\n\tclientSecret: string;\n\n\tidpHint?: string;\n\n\tredirectUri: string;\n\n\tgrantType: string;\n\n\ttokenEndpoint: string;\n\n\tauthEndpoint: string;\n\n\tresponseType: string;\n\n\tscope: string;\n\n\tprovider: string;\n\n\tlogoutEndpoint: string;\n\n\tissuer: string;\n\n\tjwksEndpoint: string;\n\n\tconstructor(oauthConfigDto: OauthConfigDto) {\n\t\tthis.clientId = oauthConfigDto.clientId;\n\t\tthis.clientSecret = oauthConfigDto.clientSecret;\n\t\tthis.idpHint = oauthConfigDto.idpHint;\n\t\tthis.redirectUri = oauthConfigDto.redirectUri;\n\t\tthis.grantType = oauthConfigDto.grantType;\n\t\tthis.tokenEndpoint = oauthConfigDto.tokenEndpoint;\n\t\tthis.authEndpoint = oauthConfigDto.authEndpoint;\n\t\tthis.responseType = oauthConfigDto.responseType;\n\t\tthis.scope = oauthConfigDto.scope;\n\t\tthis.provider = oauthConfigDto.provider;\n\t\tthis.logoutEndpoint = oauthConfigDto.logoutEndpoint;\n\t\tthis.issuer = oauthConfigDto.issuer;\n\t\tthis.jwksEndpoint = oauthConfigDto.jwksEndpoint;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthConfigResponse.html":{"url":"classes/OauthConfigResponse.html","title":"class - OauthConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/oauth-config.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n authEndpoint\n \n \n \n clientId\n \n \n \n grantType\n \n \n \n Optional\n idpHint\n \n \n \n issuer\n \n \n \n jwksEndpoint\n \n \n \n logoutEndpoint\n \n \n \n provider\n \n \n \n redirectUri\n \n \n \n responseType\n \n \n \n scope\n \n \n \n tokenEndpoint\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthConfigResponse: literal type)\n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:86\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfigResponse\n \n \n literal type\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n authEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Auth endpoint', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Client id', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n grantType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Grant type', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Hint for idp redirects (optional)', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n issuer\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Issuer', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:79\n \n \n\n\n \n \n \n \n \n \n \n \n \n jwksEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Jwks endpoint', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:86\n \n \n\n\n \n \n \n \n \n \n \n \n \n logoutEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Logout endpoint', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Provider', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Redirect uri', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n responseType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Response type', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Scope', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n tokenEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Token endpoint', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:37\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class OauthConfigResponse {\n\t@ApiProperty({\n\t\tdescription: 'Client id',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tclientId: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Hint for idp redirects (optional)',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tidpHint?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Redirect uri',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tredirectUri: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Grant type',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tgrantType: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Token endpoint',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttokenEndpoint: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Auth endpoint',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tauthEndpoint: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Response type',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tresponseType: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Scope',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tscope: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Provider',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tprovider: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Logout endpoint',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tlogoutEndpoint: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Issuer',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tissuer: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Jwks endpoint',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tjwksEndpoint: string;\n\n\tconstructor(oauthConfigResponse: {\n\t\tredirectUri: string;\n\t\tidpHint?: string;\n\t\ttokenEndpoint: string;\n\t\tresponseType: string;\n\t\tclientId: string;\n\t\tprovider: string;\n\t\tjwksEndpoint: string;\n\t\tauthEndpoint: string;\n\t\tscope: string;\n\t\tlogoutEndpoint: string;\n\t\tgrantType: string;\n\t\tissuer: string;\n\t}) {\n\t\tthis.clientId = oauthConfigResponse.clientId;\n\t\tthis.idpHint = oauthConfigResponse.idpHint;\n\t\tthis.redirectUri = oauthConfigResponse.redirectUri;\n\t\tthis.grantType = oauthConfigResponse.grantType;\n\t\tthis.tokenEndpoint = oauthConfigResponse.tokenEndpoint;\n\t\tthis.authEndpoint = oauthConfigResponse.authEndpoint;\n\t\tthis.responseType = oauthConfigResponse.responseType;\n\t\tthis.scope = oauthConfigResponse.scope;\n\t\tthis.provider = oauthConfigResponse.provider;\n\t\tthis.logoutEndpoint = oauthConfigResponse.logoutEndpoint;\n\t\tthis.issuer = oauthConfigResponse.issuer;\n\t\tthis.jwksEndpoint = oauthConfigResponse.jwksEndpoint;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthDataDto.html":{"url":"classes/OauthDataDto.html","title":"class - OauthDataDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthDataDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/oauth-data.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n externalGroups\n \n \n Optional\n externalSchool\n \n \n externalUser\n \n \n system\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: OauthDataDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n OauthDataDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalGroups\n \n \n \n \n \n \n Type : ExternalGroupDto[]\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n externalSchool\n \n \n \n \n \n \n Type : ExternalSchoolDto\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n externalUser\n \n \n \n \n \n \n Type : ExternalUserDto\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n Type : ProvisioningSystemDto\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ExternalUserDto } from './external-user.dto';\nimport { ExternalSchoolDto } from './external-school.dto';\nimport { ProvisioningSystemDto } from './provisioning-system.dto';\nimport { ExternalGroupDto } from './external-group.dto';\n\nexport class OauthDataDto {\n\tsystem: ProvisioningSystemDto;\n\n\texternalUser: ExternalUserDto;\n\n\texternalSchool?: ExternalSchoolDto;\n\n\texternalGroups?: ExternalGroupDto[];\n\n\tconstructor(props: OauthDataDto) {\n\t\tthis.system = props.system;\n\t\tthis.externalUser = props.externalUser;\n\t\tthis.externalSchool = props.externalSchool;\n\t\tthis.externalGroups = props.externalGroups;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthDataStrategyInputDto.html":{"url":"classes/OauthDataStrategyInputDto.html","title":"class - OauthDataStrategyInputDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthDataStrategyInputDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n accessToken\n \n \n idToken\n \n \n system\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: OauthDataStrategyInputDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n OauthDataStrategyInputDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n idToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n Type : ProvisioningSystemDto\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ProvisioningSystemDto } from './provisioning-system.dto';\n\nexport class OauthDataStrategyInputDto {\n\taccessToken: string;\n\n\tidToken: string;\n\n\tsystem: ProvisioningSystemDto;\n\n\tconstructor(props: OauthDataStrategyInputDto) {\n\t\tthis.accessToken = props.accessToken;\n\t\tthis.idToken = props.idToken;\n\t\tthis.system = props.system;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthLoginStateDto.html":{"url":"classes/OauthLoginStateDto.html","title":"class - OauthLoginStateDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthLoginStateDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n postLoginRedirect\n \n \n provider\n \n \n state\n \n \n systemId\n \n \n userLoginMigration\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: OauthLoginStateDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n OauthLoginStateDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n postLoginRedirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n userLoginMigration\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport class OauthLoginStateDto {\n\tstate: string;\n\n\tsystemId: EntityId;\n\n\tprovider: string;\n\n\tpostLoginRedirect?: string;\n\n\tuserLoginMigration: boolean;\n\n\tconstructor(props: OauthLoginStateDto) {\n\t\tthis.state = props.state;\n\t\tthis.systemId = props.systemId;\n\t\tthis.postLoginRedirect = props.postLoginRedirect;\n\t\tthis.provider = props.provider;\n\t\tthis.userLoginMigration = props.userLoginMigration;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthLoginStateMapper.html":{"url":"classes/OauthLoginStateMapper.html","title":"class - OauthLoginStateMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthLoginStateMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/mapper/oauth-login-state.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapSessionToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapSessionToDto\n \n \n \n \n \n \n \n mapSessionToDto(session: ISession)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/mapper/oauth-login-state.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthLoginStateDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ISession } from '@shared/domain/types/session';\nimport { OauthLoginStateDto } from '../uc/dto/oauth-login-state.dto';\n\nexport class OauthLoginStateMapper {\n\tstatic mapSessionToDto(session: ISession): OauthLoginStateDto {\n\t\tconst dto = new OauthLoginStateDto(session.oauthLoginState as OauthLoginStateDto);\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthMigrationDto.html":{"url":"classes/OauthMigrationDto.html","title":"class - OauthMigrationDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthMigrationDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n enableMigrationStart\n \n \n Optional\n oauthMigrationFinalFinish\n \n \n Optional\n oauthMigrationFinished\n \n \n Optional\n oauthMigrationMandatory\n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(params: OauthMigrationDto)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n \n OauthMigrationDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n enableMigrationStart\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinalFinish\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OauthMigrationDto {\n\toauthMigrationPossible?: Date;\n\n\toauthMigrationMandatory?: Date;\n\n\toauthMigrationFinished?: Date;\n\n\toauthMigrationFinalFinish?: Date;\n\n\tenableMigrationStart!: boolean;\n\n\tconstructor(params: OauthMigrationDto) {\n\t\tthis.oauthMigrationPossible = params.oauthMigrationPossible;\n\t\tthis.oauthMigrationMandatory = params.oauthMigrationMandatory;\n\t\tthis.oauthMigrationFinished = params.oauthMigrationFinished;\n\t\tthis.oauthMigrationFinalFinish = params.oauthMigrationFinalFinish;\n\t\tthis.enableMigrationStart = params.enableMigrationStart;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthModule.html":{"url":"modules/OauthModule.html","title":"module - OauthModule","body":"\n \n\n\n\n\n Modules\n OauthModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthModule\n\n\n\ncluster_OauthModule_exports\n\n\n\ncluster_OauthModule_providers\n\n\n\ncluster_OauthModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nOauthModule\n\nOauthModule\n\nOauthModule -->\n\nAuthorizationModule->OauthModule\n\n\n\n\n\nCacheWrapperModule\n\nCacheWrapperModule\n\nOauthModule -->\n\nCacheWrapperModule->OauthModule\n\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nOauthModule -->\n\nEncryptionModule->OauthModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nOauthModule -->\n\nLegacySchoolModule->OauthModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthModule -->\n\nLoggerModule->OauthModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nOauthModule -->\n\nProvisioningModule->OauthModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nOauthModule -->\n\nSystemModule->OauthModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nOauthModule -->\n\nUserLoginMigrationModule->OauthModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthModule -->\n\nUserModule->OauthModule\n\n\n\n\n\nHydraSsoService \n\nHydraSsoService \n\nHydraSsoService -->\n\nOauthModule->HydraSsoService \n\n\n\n\n\nOAuthService \n\nOAuthService \n\nOAuthService -->\n\nOauthModule->OAuthService \n\n\n\n\n\nHydraSsoService\n\nHydraSsoService\n\nOauthModule -->\n\nHydraSsoService->OauthModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nOauthModule -->\n\nLtiToolRepo->OauthModule\n\n\n\n\n\nOAuthService\n\nOAuthService\n\nOauthModule -->\n\nOAuthService->OauthModule\n\n\n\n\n\nOauthAdapterService\n\nOauthAdapterService\n\nOauthModule -->\n\nOauthAdapterService->OauthModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth/oauth.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n HydraSsoService\n \n \n LtiToolRepo\n \n \n OAuthService\n \n \n OauthAdapterService\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CacheWrapperModule\n \n \n EncryptionModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n ProvisioningModule\n \n \n SystemModule\n \n \n UserLoginMigrationModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n HydraSsoService\n \n \n OAuthService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { CacheWrapperModule } from '@shared/infra/cache';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ProvisioningModule } from '@src/modules/provisioning';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { SystemModule } from '@src/modules/system';\nimport { UserModule } from '@src/modules/user';\nimport { UserLoginMigrationModule } from '@src/modules/user-login-migration';\nimport { HydraSsoService } from './service/hydra.service';\nimport { OauthAdapterService } from './service/oauth-adapter.service';\nimport { OAuthService } from './service/oauth.service';\n\n@Module({\n\timports: [\n\t\tLoggerModule,\n\t\tAuthorizationModule,\n\t\tHttpModule,\n\t\tEncryptionModule,\n\t\tUserModule,\n\t\tProvisioningModule,\n\t\tSystemModule,\n\t\tUserLoginMigrationModule,\n\t\tCacheWrapperModule,\n\t\tLegacySchoolModule,\n\t],\n\tproviders: [OAuthService, OauthAdapterService, HydraSsoService, LtiToolRepo],\n\texports: [OAuthService, HydraSsoService],\n})\nexport class OauthModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthProviderApiModule.html":{"url":"modules/OauthProviderApiModule.html","title":"module - OauthProviderApiModule","body":"\n \n\n\n\n\n Modules\n OauthProviderApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthProviderApiModule\n\n\n\ncluster_OauthProviderApiModule_imports\n\n\n\ncluster_OauthProviderApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nOauthProviderApiModule\n\nOauthProviderApiModule\n\nOauthProviderApiModule -->\n\nAuthorizationModule->OauthProviderApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthProviderApiModule -->\n\nLoggerModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderModule\n\nOauthProviderModule\n\nOauthProviderApiModule -->\n\nOauthProviderModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nOauthProviderApiModule -->\n\nOauthProviderServiceModule->OauthProviderApiModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nOauthProviderApiModule -->\n\nPseudonymModule->OauthProviderApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthProviderApiModule -->\n\nUserModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderClientCrudUc\n\nOauthProviderClientCrudUc\n\nOauthProviderApiModule -->\n\nOauthProviderClientCrudUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderConsentFlowUc\n\nOauthProviderConsentFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderConsentFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderLoginFlowUc\n\nOauthProviderLoginFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderLoginFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderLogoutFlowUc\n\nOauthProviderLogoutFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderLogoutFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderResponseMapper\n\nOauthProviderResponseMapper\n\nOauthProviderApiModule -->\n\nOauthProviderResponseMapper->OauthProviderApiModule\n\n\n\n\n\nOauthProviderUc\n\nOauthProviderUc\n\nOauthProviderApiModule -->\n\nOauthProviderUc->OauthProviderApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth-provider/oauth-provider-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n OauthProviderClientCrudUc\n \n \n OauthProviderConsentFlowUc\n \n \n OauthProviderLoginFlowUc\n \n \n OauthProviderLogoutFlowUc\n \n \n OauthProviderResponseMapper\n \n \n OauthProviderUc\n \n \n \n \n Controllers\n \n \n OauthProviderController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n OauthProviderModule\n \n \n OauthProviderServiceModule\n \n \n PseudonymModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { OauthProviderServiceModule } from '@shared/infra/oauth-provider';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { PseudonymModule } from '@src/modules/pseudonym';\nimport { UserModule } from '@src/modules/user';\nimport { OauthProviderController } from './controller/oauth-provider.controller';\nimport { OauthProviderResponseMapper } from './mapper/oauth-provider-response.mapper';\nimport { OauthProviderModule } from './oauth-provider.module';\nimport {\n\tOauthProviderClientCrudUc,\n\tOauthProviderConsentFlowUc,\n\tOauthProviderLoginFlowUc,\n\tOauthProviderLogoutFlowUc,\n\tOauthProviderUc,\n} from './uc';\n\n@Module({\n\timports: [\n\t\tOauthProviderServiceModule,\n\t\tOauthProviderModule,\n\t\tPseudonymModule,\n\t\tLoggerModule,\n\t\tAuthorizationModule,\n\t\tUserModule,\n\t],\n\tproviders: [\n\t\tOauthProviderUc,\n\t\tOauthProviderClientCrudUc,\n\t\tOauthProviderConsentFlowUc,\n\t\tOauthProviderLogoutFlowUc,\n\t\tOauthProviderLoginFlowUc,\n\t\tOauthProviderResponseMapper,\n\t],\n\tcontrollers: [OauthProviderController],\n})\nexport class OauthProviderApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderClientCrudUc.html":{"url":"injectables/OauthProviderClientCrudUc.html","title":"injectable - OauthProviderClientCrudUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderClientCrudUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n defaultOauthClientBody\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createOAuth2Client\n \n \n Async\n deleteOAuth2Client\n \n \n Async\n getOAuth2Client\n \n \n Async\n listOAuth2Clients\n \n \n Async\n updateOAuth2Client\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createOAuth2Client\n \n \n \n \n \n \n \n createOAuth2Client(currentUser: ICurrentUser, data: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteOAuth2Client\n \n \n \n \n \n \n \n deleteOAuth2Client(currentUser: ICurrentUser, id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getOAuth2Client\n \n \n \n \n \n \n \n getOAuth2Client(currentUser: ICurrentUser, id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listOAuth2Clients\n \n \n \n \n \n \n \n listOAuth2Clients(currentUser: ICurrentUser, limit?: number, offset?: number, client_name?: string, owner?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n offset\n \n number\n \n\n \n Yes\n \n\n\n \n \n client_name\n \n string\n \n\n \n Yes\n \n\n\n \n \n owner\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateOAuth2Client\n \n \n \n \n \n \n \n updateOAuth2Client(currentUser: ICurrentUser, id: string, data: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n defaultOauthClientBody\n \n \n \n \n \n \n Type : ProviderOauthClient\n\n \n \n \n \n Default value : {\n\t\tscope: 'openid offline',\n\t\tgrant_types: ['authorization_code', 'refresh_token'],\n\t\tresponse_types: ['code', 'token', 'id_token'],\n\t\tredirect_uris: [],\n\t}\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:15\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { OauthProviderService } from '@shared/infra/oauth-provider/index';\nimport { Permission, User } from '@shared/domain/index';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { ProviderOauthClient } from '@shared/infra/oauth-provider/dto';\nimport { ICurrentUser } from '@src/modules/authentication';\n\n@Injectable()\nexport class OauthProviderClientCrudUc {\n\tconstructor(\n\t\tprivate readonly oauthProviderService: OauthProviderService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tprivate readonly defaultOauthClientBody: ProviderOauthClient = {\n\t\tscope: 'openid offline',\n\t\tgrant_types: ['authorization_code', 'refresh_token'],\n\t\tresponse_types: ['code', 'token', 'id_token'],\n\t\tredirect_uris: [],\n\t};\n\n\tasync listOAuth2Clients(\n\t\tcurrentUser: ICurrentUser,\n\t\tlimit?: number,\n\t\toffset?: number,\n\t\tclient_name?: string,\n\t\towner?: string\n\t): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_VIEW]);\n\n\t\tconst client: ProviderOauthClient[] = await this.oauthProviderService.listOAuth2Clients(\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tclient_name,\n\t\t\towner\n\t\t);\n\t\treturn client;\n\t}\n\n\tasync getOAuth2Client(currentUser: ICurrentUser, id: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_VIEW]);\n\n\t\tconst client: ProviderOauthClient = await this.oauthProviderService.getOAuth2Client(id);\n\n\t\treturn client;\n\t}\n\n\tasync createOAuth2Client(currentUser: ICurrentUser, data: ProviderOauthClient): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_EDIT]);\n\n\t\tconst dataWithDefaults: ProviderOauthClient = { ...this.defaultOauthClientBody, ...data };\n\t\tconst client: ProviderOauthClient = await this.oauthProviderService.createOAuth2Client(dataWithDefaults);\n\t\treturn client;\n\t}\n\n\tasync updateOAuth2Client(\n\t\tcurrentUser: ICurrentUser,\n\t\tid: string,\n\t\tdata: ProviderOauthClient\n\t): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_EDIT]);\n\n\t\tconst dataWithDefaults: ProviderOauthClient = { ...this.defaultOauthClientBody, ...data };\n\t\tconst client: ProviderOauthClient = await this.oauthProviderService.updateOAuth2Client(id, dataWithDefaults);\n\t\treturn client;\n\t}\n\n\tasync deleteOAuth2Client(currentUser: ICurrentUser, id: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_EDIT]);\n\n\t\treturn this.oauthProviderService.deleteOAuth2Client(id);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderConsentFlowUc.html":{"url":"injectables/OauthProviderConsentFlowUc.html","title":"injectable - OauthProviderConsentFlowUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderConsentFlowUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n acceptConsentRequest\n \n \n Async\n getConsentRequest\n \n \n Async\n patchConsentRequest\n \n \n Private\n rejectConsentRequest\n \n \n Private\n validateSubject\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService, idTokenService: IdTokenService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n idTokenService\n \n \n IdTokenService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n acceptConsentRequest\n \n \n \n \n \n \n \n acceptConsentRequest(challenge: string, body: AcceptConsentRequestBody, userId: string, requested_scope: string[] | undefined, client_id: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptConsentRequestBody\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n requested_scope\n \n string[] | undefined\n \n\n \n No\n \n\n\n \n \n client_id\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getConsentRequest\n \n \n \n \n \n \n \n getConsentRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchConsentRequest\n \n \n \n \n \n \n \n patchConsentRequest(challenge: string, query: AcceptQuery, body: ConsentRequestBody, currentUser: ICurrentUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n query\n \n AcceptQuery\n \n\n \n No\n \n\n\n \n \n body\n \n ConsentRequestBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n rejectConsentRequest\n \n \n \n \n \n \n \n rejectConsentRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n validateSubject\n \n \n \n \n \n \n \n validateSubject(currentUser: ICurrentUser, response: ProviderConsentResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n response\n \n ProviderConsentResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import {\n\tAcceptConsentRequestBody,\n\tProviderConsentResponse,\n\tProviderRedirectResponse,\n\tRejectRequestBody,\n} from '@shared/infra/oauth-provider/dto';\nimport { AcceptQuery, ConsentRequestBody } from '@src/modules/oauth-provider/controller/dto';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { ForbiddenException, Injectable } from '@nestjs/common';\nimport { IdTokenService } from '@src/modules/oauth-provider/service/id-token.service';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { IdToken } from '@src/modules/oauth-provider/interface/id-token';\n\n@Injectable()\nexport class OauthProviderConsentFlowUc {\n\tconstructor(\n\t\tprivate readonly oauthProviderService: OauthProviderService,\n\t\tprivate readonly idTokenService: IdTokenService\n\t) {}\n\n\tasync getConsentRequest(challenge: string): Promise {\n\t\tconst consentResponse: ProviderConsentResponse = await this.oauthProviderService.getConsentRequest(challenge);\n\t\treturn consentResponse;\n\t}\n\n\tasync patchConsentRequest(\n\t\tchallenge: string,\n\t\tquery: AcceptQuery,\n\t\tbody: ConsentRequestBody,\n\t\tcurrentUser: ICurrentUser\n\t): Promise {\n\t\tconst consentResponse = await this.oauthProviderService.getConsentRequest(challenge);\n\t\tthis.validateSubject(currentUser, consentResponse);\n\n\t\tlet response: Promise;\n\t\tif (query.accept) {\n\t\t\tresponse = this.acceptConsentRequest(\n\t\t\t\tchallenge,\n\t\t\t\tbody,\n\t\t\t\tcurrentUser.userId,\n\t\t\t\tconsentResponse.requested_scope,\n\t\t\t\tconsentResponse.client?.client_id\n\t\t\t);\n\t\t} else {\n\t\t\tresponse = this.rejectConsentRequest(challenge, body);\n\t\t}\n\t\treturn response;\n\t}\n\n\tprivate rejectConsentRequest(challenge: string, body: RejectRequestBody): Promise {\n\t\tconst redirectResponse: Promise = this.oauthProviderService.rejectConsentRequest(\n\t\t\tchallenge,\n\t\t\tbody\n\t\t);\n\t\treturn redirectResponse;\n\t}\n\n\tprivate async acceptConsentRequest(\n\t\tchallenge: string,\n\t\tbody: AcceptConsentRequestBody,\n\t\tuserId: string,\n\t\trequested_scope: string[] | undefined,\n\t\tclient_id: string | undefined\n\t): Promise {\n\t\tconst idToken: IdToken = await this.idTokenService.createIdToken(userId, requested_scope || [], client_id || '');\n\t\tif (idToken) {\n\t\t\tbody.session = {\n\t\t\t\tid_token: idToken,\n\t\t\t};\n\t\t}\n\n\t\tconst redirectResponse: ProviderRedirectResponse = await this.oauthProviderService.acceptConsentRequest(\n\t\t\tchallenge,\n\t\t\tbody\n\t\t);\n\n\t\treturn redirectResponse;\n\t}\n\n\tprivate validateSubject(currentUser: ICurrentUser, response: ProviderConsentResponse): void {\n\t\tif (response.subject !== currentUser.userId) {\n\t\t\tthrow new ForbiddenException(\"You want to patch another user's consent\");\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/OauthProviderController.html":{"url":"controllers/OauthProviderController.html","title":"controller - OauthProviderController","body":"\n \n\n\n\n\n\n\n Controllers\n OauthProviderController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts\n \n\n \n Prefix\n \n \n oauth2\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n acceptLogoutRequest\n \n \n \n \n Async\n createOAuth2Client\n \n \n \n \n deleteOAuth2Client\n \n \n \n \n Async\n getConsentRequest\n \n \n \n Async\n getLoginRequest\n \n \n \n \n Async\n getOAuth2Client\n \n \n \n getUrl\n \n \n \n \n Async\n listConsentSessions\n \n \n \n \n Async\n listOAuth2Clients\n \n \n \n \n Async\n patchConsentRequest\n \n \n \n \n Async\n patchLoginRequest\n \n \n \n \n revokeConsentSession\n \n \n \n \n Async\n updateOAuth2Client\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n acceptLogoutRequest\n \n \n \n \n \n \n \n acceptLogoutRequest(params: ChallengeParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Patch('logoutRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:135\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createOAuth2Client\n \n \n \n \n \n \n \n createOAuth2Client(currentUser: ICurrentUser, body: OauthClientBody)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Post('clients')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n OauthClientBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteOAuth2Client\n \n \n \n \n \n \n \n deleteOAuth2Client(currentUser: ICurrentUser, params: IdParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Delete('clients/:id')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n IdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getConsentRequest\n \n \n \n \n \n \n \n getConsentRequest(params: ChallengeParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Get('consentRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:143\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getLoginRequest\n \n \n \n \n \n \n \n getLoginRequest(params: ChallengeParams)\n \n \n\n \n \n Decorators : \n \n @Get('loginRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:109\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getOAuth2Client\n \n \n \n \n \n \n \n getOAuth2Client(currentUser: ICurrentUser, params: IdParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Get('clients/:id')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n IdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getUrl\n \n \n \n \n \n \n \n getUrl()\n \n \n\n \n \n Decorators : \n \n @Get('baseUrl')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:188\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listConsentSessions\n \n \n \n \n \n \n \n listConsentSessions(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Get('auth/sessions/consent')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:169\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listOAuth2Clients\n \n \n \n \n \n \n \n listOAuth2Clients(currentUser: ICurrentUser, params: ListOauthClientsParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Get('clients')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ListOauthClientsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchConsentRequest\n \n \n \n \n \n \n \n patchConsentRequest(params: ChallengeParams, query: AcceptQuery, body: ConsentRequestBody, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Patch('consentRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:151\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n query\n \n AcceptQuery\n \n\n \n No\n \n\n\n \n \n body\n \n ConsentRequestBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchLoginRequest\n \n \n \n \n \n \n \n patchLoginRequest(params: ChallengeParams, query: AcceptQuery, body: LoginRequestBody, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Patch('loginRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:117\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n query\n \n AcceptQuery\n \n\n \n No\n \n\n\n \n \n body\n \n LoginRequestBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n revokeConsentSession\n \n \n \n \n \n \n \n revokeConsentSession(currentUser: ICurrentUser, params: RevokeConsentParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Delete('auth/sessions/consent')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:182\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n RevokeConsentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateOAuth2Client\n \n \n \n \n \n \n \n updateOAuth2Client(currentUser: ICurrentUser, params: IdParams, body: OauthClientBody)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Put('clients/:id')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n IdParams\n \n\n \n No\n \n\n\n \n \n body\n \n OauthClientBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Body, Controller, Delete, Get, Param, Patch, Post, Put, Query } from '@nestjs/common';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { OauthProviderLogoutFlowUc } from '@src/modules/oauth-provider/uc/oauth-provider.logout-flow.uc';\nimport { OauthProviderLoginFlowUc } from '@src/modules/oauth-provider/uc/oauth-provider.login-flow.uc';\nimport { OauthProviderResponseMapper } from '@src/modules/oauth-provider/mapper/oauth-provider-response.mapper';\nimport { OauthProviderConsentFlowUc } from '@src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc';\nimport {\n\tProviderConsentResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n} from '@shared/infra/oauth-provider/dto';\nimport { ConsentResponse } from '@src/modules/oauth-provider/controller/dto/response/consent.response';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { OauthProviderClientCrudUc } from '@src/modules/oauth-provider/uc/oauth-provider.client-crud.uc';\nimport { RedirectResponse } from '@src/modules/oauth-provider/controller/dto/response/redirect.response';\nimport { ProviderConsentSessionResponse } from '@shared/infra/oauth-provider/dto/response/consent-session.response';\nimport { ApiTags } from '@nestjs/swagger';\nimport { OauthProviderUc } from '../uc/oauth-provider.uc';\nimport {\n\tAcceptQuery,\n\tChallengeParams,\n\tConsentRequestBody,\n\tConsentSessionResponse,\n\tIdParams,\n\tListOauthClientsParams,\n\tLoginRequestBody,\n\tLoginResponse,\n\tOauthClientBody,\n\tOauthClientResponse,\n\tRevokeConsentParams,\n} from './dto';\n\n@Controller('oauth2')\n@ApiTags('Oauth2')\nexport class OauthProviderController {\n\tconstructor(\n\t\tprivate readonly consentFlowUc: OauthProviderConsentFlowUc,\n\t\tprivate readonly logoutFlowUc: OauthProviderLogoutFlowUc,\n\t\tprivate readonly crudUc: OauthProviderClientCrudUc,\n\t\tprivate readonly oauthProviderUc: OauthProviderUc,\n\t\tprivate readonly oauthProviderLoginFlowUc: OauthProviderLoginFlowUc,\n\t\tprivate readonly oauthProviderResponseMapper: OauthProviderResponseMapper\n\t) {}\n\n\t@Authenticate('jwt')\n\t@Get('clients/:id')\n\tasync getOAuth2Client(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: IdParams\n\t): Promise {\n\t\tconst client: ProviderOauthClient = await this.crudUc.getOAuth2Client(currentUser, params.id);\n\t\tconst mapped: OauthClientResponse = this.oauthProviderResponseMapper.mapOauthClientResponse(client);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Get('clients')\n\tasync listOAuth2Clients(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ListOauthClientsParams\n\t): Promise {\n\t\tconst clients: ProviderOauthClient[] = await this.crudUc.listOAuth2Clients(\n\t\t\tcurrentUser,\n\t\t\tparams.limit,\n\t\t\tparams.offset,\n\t\t\tparams.client_name,\n\t\t\tparams.owner\n\t\t);\n\t\tconst mapped: OauthClientResponse[] = clients.map(\n\t\t\t(client: ProviderOauthClient): OauthClientResponse =>\n\t\t\t\tthis.oauthProviderResponseMapper.mapOauthClientResponse(client)\n\t\t);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Post('clients')\n\tasync createOAuth2Client(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: OauthClientBody\n\t): Promise {\n\t\tconst client: ProviderOauthClient = await this.crudUc.createOAuth2Client(currentUser, body);\n\t\tconst mapped: OauthClientResponse = this.oauthProviderResponseMapper.mapOauthClientResponse(client);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Put('clients/:id')\n\tasync updateOAuth2Client(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: IdParams,\n\t\t@Body() body: OauthClientBody\n\t): Promise {\n\t\tconst client: ProviderOauthClient = await this.crudUc.updateOAuth2Client(currentUser, params.id, body);\n\t\tconst mapped: OauthClientResponse = this.oauthProviderResponseMapper.mapOauthClientResponse(client);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Delete('clients/:id')\n\tdeleteOAuth2Client(@CurrentUser() currentUser: ICurrentUser, @Param() params: IdParams): Promise {\n\t\tconst promise: Promise = this.crudUc.deleteOAuth2Client(currentUser, params.id);\n\t\treturn promise;\n\t}\n\n\t@Get('loginRequest/:challenge')\n\tasync getLoginRequest(@Param() params: ChallengeParams): Promise {\n\t\tconst loginResponse: ProviderLoginResponse = await this.oauthProviderLoginFlowUc.getLoginRequest(params.challenge);\n\t\tconst mapped: LoginResponse = this.oauthProviderResponseMapper.mapLoginResponse(loginResponse);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Patch('loginRequest/:challenge')\n\tasync patchLoginRequest(\n\t\t@Param() params: ChallengeParams,\n\t\t@Query() query: AcceptQuery,\n\t\t@Body() body: LoginRequestBody,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst redirectResponse: ProviderRedirectResponse = await this.oauthProviderLoginFlowUc.patchLoginRequest(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.challenge,\n\t\t\tbody,\n\t\t\tquery\n\t\t);\n\t\tconst mapped: RedirectResponse = this.oauthProviderResponseMapper.mapRedirectResponse(redirectResponse);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Patch('logoutRequest/:challenge')\n\tasync acceptLogoutRequest(@Param() params: ChallengeParams): Promise {\n\t\tconst redirect: ProviderRedirectResponse = await this.logoutFlowUc.logoutFlow(params.challenge);\n\t\tconst mapped: RedirectResponse = this.oauthProviderResponseMapper.mapRedirectResponse(redirect);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Get('consentRequest/:challenge')\n\tasync getConsentRequest(@Param() params: ChallengeParams): Promise {\n\t\tconst consentRequest: ProviderConsentResponse = await this.consentFlowUc.getConsentRequest(params.challenge);\n\t\tconst mapped: ConsentResponse = this.oauthProviderResponseMapper.mapConsentResponse(consentRequest);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Patch('consentRequest/:challenge')\n\tasync patchConsentRequest(\n\t\t@Param() params: ChallengeParams,\n\t\t@Query() query: AcceptQuery,\n\t\t@Body() body: ConsentRequestBody,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst redirectResponse: ProviderRedirectResponse = await this.consentFlowUc.patchConsentRequest(\n\t\t\tparams.challenge,\n\t\t\tquery,\n\t\t\tbody,\n\t\t\tcurrentUser\n\t\t);\n\t\tconst response: RedirectResponse = this.oauthProviderResponseMapper.mapRedirectResponse(redirectResponse);\n\t\treturn response;\n\t}\n\n\t@Authenticate('jwt')\n\t@Get('auth/sessions/consent')\n\tasync listConsentSessions(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst sessions: ProviderConsentSessionResponse[] = await this.oauthProviderUc.listConsentSessions(\n\t\t\tcurrentUser.userId\n\t\t);\n\t\tconst mapped: ConsentSessionResponse[] = sessions.map(\n\t\t\t(session: ProviderConsentSessionResponse): ConsentSessionResponse =>\n\t\t\t\tthis.oauthProviderResponseMapper.mapConsentSessionsToResponse(session)\n\t\t);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Delete('auth/sessions/consent')\n\trevokeConsentSession(@CurrentUser() currentUser: ICurrentUser, @Param() params: RevokeConsentParams): Promise {\n\t\tconst promise: Promise = this.oauthProviderUc.revokeConsentSession(currentUser.userId, params.client);\n\t\treturn promise;\n\t}\n\n\t@Get('baseUrl')\n\tgetUrl(): Promise {\n\t\treturn Promise.resolve(Configuration.get('HYDRA_URI') as string);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderLoginFlowService.html":{"url":"injectables/OauthProviderLoginFlowService.html","title":"injectable - OauthProviderLoginFlowService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderLoginFlowService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/service/oauth-provider.login-flow.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n findToolByClientId\n \n \n Public\n isNextcloudTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ltiToolService: LtiToolService, externalToolService: ExternalToolService, toolFeatures: IToolFeatures)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/service/oauth-provider.login-flow.service.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ltiToolService\n \n \n LtiToolService\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n toolFeatures\n \n \n IToolFeatures\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n findToolByClientId\n \n \n \n \n \n \n \n findToolByClientId(clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/oauth-provider.login-flow.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isNextcloudTool\n \n \n \n \n \n \n \n isNextcloudTool(tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/oauth-provider.login-flow.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject } from '@nestjs/common';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { NotFoundException } from '@nestjs/common/exceptions/not-found.exception';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { LtiToolService } from '@src/modules/lti-tool/service';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@src/modules/tool/external-tool/service';\nimport { IToolFeatures, ToolFeatures } from '@src/modules/tool/tool-config';\n\n@Injectable()\nexport class OauthProviderLoginFlowService {\n\tconstructor(\n\t\tprivate readonly ltiToolService: LtiToolService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\t@Inject(ToolFeatures) private readonly toolFeatures: IToolFeatures\n\t) {}\n\n\tpublic async findToolByClientId(clientId: string): Promise {\n\t\tif (this.toolFeatures.ctlToolsTabEnabled) {\n\t\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\t\tclientId\n\t\t\t);\n\n\t\t\tif (externalTool) {\n\t\t\t\treturn externalTool;\n\t\t\t}\n\t\t}\n\n\t\tconst ltiTool: LtiToolDO | null = await this.ltiToolService.findByClientIdAndIsLocal(clientId, true);\n\n\t\tif (ltiTool) {\n\t\t\treturn ltiTool;\n\t\t}\n\n\t\tthrow new NotFoundException(`Unable to find ExternalTool or LtiTool for clientId: ${clientId}`);\n\t}\n\n\t// TODO N21-91. Magic Strings are not desireable\n\tpublic isNextcloudTool(tool: ExternalTool | LtiToolDO): boolean {\n\t\tconst isNextcloud: boolean = tool.name === 'SchulcloudNextcloud';\n\n\t\treturn isNextcloud;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderLoginFlowUc.html":{"url":"injectables/OauthProviderLoginFlowUc.html","title":"injectable - OauthProviderLoginFlowUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderLoginFlowUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n acceptLoginRequest\n \n \n Async\n getLoginRequest\n \n \n Async\n patchLoginRequest\n \n \n Private\n Async\n rejectLoginRequest\n \n \n Private\n shouldSkipConsent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService, oauthProviderLoginFlowService: OauthProviderLoginFlowService, pseudonymService: PseudonymService, authorizationService: AuthorizationService, userService: UserService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n oauthProviderLoginFlowService\n \n \n OauthProviderLoginFlowService\n \n \n \n No\n \n \n \n \n pseudonymService\n \n \n PseudonymService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n acceptLoginRequest\n \n \n \n \n \n \n \n acceptLoginRequest(currentUserId: string, challenge: string, loginRequestBody: LoginRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n loginRequestBody\n \n LoginRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getLoginRequest\n \n \n \n \n \n \n \n getLoginRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchLoginRequest\n \n \n \n \n \n \n \n patchLoginRequest(currentUserId: string, challenge: string, body: LoginRequestBody, query: AcceptQuery)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n LoginRequestBody\n \n\n \n No\n \n\n\n \n \n query\n \n AcceptQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n rejectLoginRequest\n \n \n \n \n \n \n \n rejectLoginRequest(challenge: string, rejectRequestBody: OAuthRejectableBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n rejectRequestBody\n \n OAuthRejectableBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n shouldSkipConsent\n \n \n \n \n \n \n \n shouldSkipConsent(tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:94\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException, UnprocessableEntityException } from '@nestjs/common';\nimport { Permission, Pseudonym, User, UserDO } from '@shared/domain';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport {\n\tAcceptLoginRequestBody,\n\tProviderLoginResponse,\n\tProviderRedirectResponse,\n} from '@shared/infra/oauth-provider/dto';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { AcceptQuery, LoginRequestBody, OAuthRejectableBody } from '@src/modules/oauth-provider/controller/dto';\nimport { OauthProviderRequestMapper } from '@src/modules/oauth-provider/mapper/oauth-provider-request.mapper';\nimport { PseudonymService } from '@src/modules/pseudonym/service';\nimport { ExternalTool, Oauth2ToolConfig } from '@src/modules/tool/external-tool/domain';\nimport { UserService } from '@src/modules/user';\nimport { OauthProviderLoginFlowService } from '../service/oauth-provider.login-flow.service';\n\n@Injectable()\nexport class OauthProviderLoginFlowUc {\n\tconstructor(\n\t\tprivate readonly oauthProviderService: OauthProviderService,\n\t\tprivate readonly oauthProviderLoginFlowService: OauthProviderLoginFlowService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly userService: UserService\n\t) {}\n\n\tasync getLoginRequest(challenge: string): Promise {\n\t\tconst loginResponse: Promise = this.oauthProviderService.getLoginRequest(challenge);\n\t\treturn loginResponse;\n\t}\n\n\tasync patchLoginRequest(\n\t\tcurrentUserId: string,\n\t\tchallenge: string,\n\t\tbody: LoginRequestBody,\n\t\tquery: AcceptQuery\n\t): Promise {\n\t\tlet redirectResponse: ProviderRedirectResponse;\n\t\tif (query.accept) {\n\t\t\tredirectResponse = await this.acceptLoginRequest(currentUserId, challenge, body);\n\t\t} else {\n\t\t\tredirectResponse = await this.rejectLoginRequest(challenge, body);\n\t\t}\n\t\treturn redirectResponse;\n\t}\n\n\tprivate async acceptLoginRequest(\n\t\tcurrentUserId: string,\n\t\tchallenge: string,\n\t\tloginRequestBody: LoginRequestBody\n\t): Promise {\n\t\tconst loginResponse: ProviderLoginResponse = await this.oauthProviderService.getLoginRequest(challenge);\n\n\t\tif (!loginResponse.client.client_id) {\n\t\t\tthrow new InternalServerErrorException(`Cannot find oAuthClientId in login response for challenge: ${challenge}`);\n\t\t}\n\n\t\tconst tool: ExternalTool | LtiToolDO = await this.oauthProviderLoginFlowService.findToolByClientId(\n\t\t\tloginResponse.client.client_id\n\t\t);\n\n\t\tif (!tool.id) {\n\t\t\tthrow new InternalServerErrorException('Tool has no id');\n\t\t}\n\n\t\tif (this.oauthProviderLoginFlowService.isNextcloudTool(tool)) {\n\t\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUserId);\n\t\t\tthis.authorizationService.checkAllPermissions(user, [Permission.NEXTCLOUD_USER]);\n\t\t}\n\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\t\tconst pseudonym: Pseudonym = await this.pseudonymService.findOrCreatePseudonym(user, tool);\n\n\t\tconst skipConsent: boolean = this.shouldSkipConsent(tool);\n\n\t\tconst acceptLoginRequestBody: AcceptLoginRequestBody = OauthProviderRequestMapper.mapCreateAcceptLoginRequestBody(\n\t\t\tloginRequestBody,\n\t\t\tcurrentUserId,\n\t\t\tpseudonym.pseudonym,\n\t\t\t{\n\t\t\t\tskipConsent,\n\t\t\t}\n\t\t);\n\n\t\tconst redirectResponse: ProviderRedirectResponse = await this.oauthProviderService.acceptLoginRequest(\n\t\t\tloginResponse.challenge,\n\t\t\tacceptLoginRequestBody\n\t\t);\n\n\t\treturn redirectResponse;\n\t}\n\n\tprivate shouldSkipConsent(tool: ExternalTool | LtiToolDO): boolean {\n\t\tif (tool instanceof LtiToolDO) {\n\t\t\treturn !!tool.skipConsent;\n\t\t}\n\t\tif (tool.config instanceof Oauth2ToolConfig) {\n\t\t\treturn tool.config.skipConsent;\n\t\t}\n\t\tthrow new UnprocessableEntityException(\n\t\t\t`Cannot use Tool ${tool.name} for OAuth2 login, since it is not a LtiTool or OAuth2-ExternalTool`\n\t\t);\n\t}\n\n\tprivate async rejectLoginRequest(\n\t\tchallenge: string,\n\t\trejectRequestBody: OAuthRejectableBody\n\t): Promise {\n\t\tconst redirectResponse: Promise = this.oauthProviderService.rejectLoginRequest(\n\t\t\tchallenge,\n\t\t\trejectRequestBody\n\t\t);\n\t\treturn redirectResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderLogoutFlowUc.html":{"url":"injectables/OauthProviderLogoutFlowUc.html","title":"injectable - OauthProviderLogoutFlowUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderLogoutFlowUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.logout-flow.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n logoutFlow\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.logout-flow.uc.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n logoutFlow\n \n \n \n \n \n \nlogoutFlow(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.logout-flow.uc.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { ProviderRedirectResponse } from '@shared/infra/oauth-provider/dto';\n\n@Injectable()\nexport class OauthProviderLogoutFlowUc {\n\tconstructor(private readonly oauthProviderService: OauthProviderService) {}\n\n\tlogoutFlow(challenge: string): Promise {\n\t\tconst logoutResponse: Promise = this.oauthProviderService.acceptLogoutRequest(challenge);\n\t\treturn logoutResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthProviderModule.html":{"url":"modules/OauthProviderModule.html","title":"module - OauthProviderModule","body":"\n \n\n\n\n\n Modules\n OauthProviderModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthProviderModule\n\n\n\ncluster_OauthProviderModule_imports\n\n\n\ncluster_OauthProviderModule_exports\n\n\n\ncluster_OauthProviderModule_providers\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nOauthProviderModule\n\nOauthProviderModule\n\nOauthProviderModule -->\n\nLoggerModule->OauthProviderModule\n\n\n\n\n\nLtiToolModule\n\nLtiToolModule\n\nOauthProviderModule -->\n\nLtiToolModule->OauthProviderModule\n\n\n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nOauthProviderModule -->\n\nOauthProviderServiceModule->OauthProviderModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nOauthProviderModule -->\n\nPseudonymModule->OauthProviderModule\n\n\n\n\n\nToolConfigModule\n\nToolConfigModule\n\nOauthProviderModule -->\n\nToolConfigModule->OauthProviderModule\n\n\n\n\n\nToolModule\n\nToolModule\n\nOauthProviderModule -->\n\nToolModule->OauthProviderModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthProviderModule -->\n\nUserModule->OauthProviderModule\n\n\n\n\n\nIdTokenService \n\nIdTokenService \n\nIdTokenService -->\n\nOauthProviderModule->IdTokenService \n\n\n\n\n\nOauthProviderLoginFlowService \n\nOauthProviderLoginFlowService \n\nOauthProviderLoginFlowService -->\n\nOauthProviderModule->OauthProviderLoginFlowService \n\n\n\n\n\nIdTokenService\n\nIdTokenService\n\nOauthProviderModule -->\n\nIdTokenService->OauthProviderModule\n\n\n\n\n\nOauthProviderLoginFlowService\n\nOauthProviderLoginFlowService\n\nOauthProviderModule -->\n\nOauthProviderLoginFlowService->OauthProviderModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nOauthProviderModule -->\n\nTeamsRepo->OauthProviderModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth-provider/oauth-provider.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n IdTokenService\n \n \n OauthProviderLoginFlowService\n \n \n TeamsRepo\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n LtiToolModule\n \n \n OauthProviderServiceModule\n \n \n PseudonymModule\n \n \n ToolConfigModule\n \n \n ToolModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n IdTokenService\n \n \n OauthProviderLoginFlowService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { OauthProviderServiceModule } from '@shared/infra/oauth-provider';\nimport { TeamsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { LtiToolModule } from '@src/modules/lti-tool';\nimport { PseudonymModule } from '@src/modules/pseudonym';\nimport { ToolModule } from '@src/modules/tool';\nimport { ToolConfigModule } from '@src/modules/tool/tool-config.module';\nimport { UserModule } from '@src/modules/user';\nimport { IdTokenService } from './service/id-token.service';\nimport { OauthProviderLoginFlowService } from './service/oauth-provider.login-flow.service';\n\n@Module({\n\timports: [\n\t\tOauthProviderServiceModule,\n\t\tUserModule,\n\t\tLoggerModule,\n\t\tPseudonymModule,\n\t\tLtiToolModule,\n\t\tToolModule,\n\t\tToolConfigModule,\n\t],\n\tproviders: [OauthProviderLoginFlowService, IdTokenService, TeamsRepo],\n\texports: [OauthProviderLoginFlowService, IdTokenService],\n})\nexport class OauthProviderModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthProviderRequestMapper.html":{"url":"classes/OauthProviderRequestMapper.html","title":"class - OauthProviderRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthProviderRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/mapper/oauth-provider-request.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapCreateAcceptLoginRequestBody\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapCreateAcceptLoginRequestBody\n \n \n \n \n \n \n \n mapCreateAcceptLoginRequestBody(loginRequestBody: LoginRequestBody, currentUserId: string, pseudonym: string, context?: object)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-request.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loginRequestBody\n \n LoginRequestBody\n \n\n \n No\n \n\n\n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \n context\n \n object\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : AcceptLoginRequestBody\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { AcceptLoginRequestBody } from '@shared/infra/oauth-provider/dto';\nimport { LoginRequestBody } from '@src/modules/oauth-provider/controller/dto';\n\nexport class OauthProviderRequestMapper {\n\tstatic mapCreateAcceptLoginRequestBody(\n\t\tloginRequestBody: LoginRequestBody,\n\t\tcurrentUserId: string,\n\t\tpseudonym: string,\n\t\tcontext?: object\n\t): AcceptLoginRequestBody {\n\t\treturn {\n\t\t\tremember: loginRequestBody.remember,\n\t\t\tremember_for: loginRequestBody.remember_for,\n\t\t\tsubject: currentUserId,\n\t\t\tforce_subject_identifier: pseudonym,\n\t\t\tcontext,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderResponseMapper.html":{"url":"injectables/OauthProviderResponseMapper.html","title":"injectable - OauthProviderResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapConsentResponse\n \n \n mapConsentSessionsToResponse\n \n \n mapLoginResponse\n \n \n mapOauthClientResponse\n \n \n mapRedirectResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapConsentResponse\n \n \n \n \n \n \nmapConsentResponse(consent: ProviderConsentResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n consent\n \n ProviderConsentResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ConsentResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapConsentSessionsToResponse\n \n \n \n \n \n \nmapConsentSessionsToResponse(session: ProviderConsentSessionResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ProviderConsentSessionResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ConsentSessionResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapLoginResponse\n \n \n \n \n \n \nmapLoginResponse(providerLoginResponse: ProviderLoginResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n providerLoginResponse\n \n ProviderLoginResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LoginResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapOauthClientResponse\n \n \n \n \n \n \nmapOauthClientResponse(oauthClient: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthClient\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthClientResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapRedirectResponse\n \n \n \n \n \n \nmapRedirectResponse(redirect: ProviderRedirectResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n redirect\n \n ProviderRedirectResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RedirectResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tProviderConsentResponse,\n\tProviderConsentSessionResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n} from '@shared/infra/oauth-provider/dto';\nimport {\n\tConsentResponse,\n\tConsentSessionResponse,\n\tLoginResponse,\n\tOauthClientResponse,\n\tRedirectResponse,\n} from '@src/modules/oauth-provider/controller/dto';\n\n@Injectable()\nexport class OauthProviderResponseMapper {\n\tmapRedirectResponse(redirect: ProviderRedirectResponse): RedirectResponse {\n\t\treturn new RedirectResponse({ ...redirect });\n\t}\n\n\tmapConsentResponse(consent: ProviderConsentResponse): ConsentResponse {\n\t\treturn new ConsentResponse({ ...consent });\n\t}\n\n\tmapOauthClientResponse(oauthClient: ProviderOauthClient): OauthClientResponse {\n\t\tdelete oauthClient.client_secret;\n\t\treturn new OauthClientResponse({ ...oauthClient });\n\t}\n\n\tmapConsentSessionsToResponse(session: ProviderConsentSessionResponse): ConsentSessionResponse {\n\t\treturn new ConsentSessionResponse(\n\t\t\tsession.consent_request.client?.client_id,\n\t\t\tsession.consent_request.client?.client_name,\n\t\t\tsession.consent_request.challenge\n\t\t);\n\t}\n\n\tmapLoginResponse(providerLoginResponse: ProviderLoginResponse): LoginResponse {\n\t\treturn new LoginResponse({ ...providerLoginResponse });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthProviderService.html":{"url":"classes/OauthProviderService.html","title":"class - OauthProviderService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthProviderService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n acceptConsentRequest\n \n \n Abstract\n acceptLoginRequest\n \n \n Abstract\n acceptLogoutRequest\n \n \n Abstract\n createOAuth2Client\n \n \n Abstract\n deleteOAuth2Client\n \n \n Abstract\n getConsentRequest\n \n \n Abstract\n getLoginRequest\n \n \n Abstract\n getOAuth2Client\n \n \n Abstract\n introspectOAuth2Token\n \n \n Abstract\n isInstanceAlive\n \n \n Abstract\n listConsentSessions\n \n \n Abstract\n listOAuth2Clients\n \n \n Abstract\n rejectConsentRequest\n \n \n Abstract\n rejectLoginRequest\n \n \n Abstract\n revokeConsentSession\n \n \n Abstract\n updateOAuth2Client\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n acceptConsentRequest\n \n \n \n \n \n \n \n acceptConsentRequest(challenge: string, body: AcceptConsentRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptConsentRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n acceptLoginRequest\n \n \n \n \n \n \n \n acceptLoginRequest(challenge: string, body: AcceptLoginRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptLoginRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n acceptLogoutRequest\n \n \n \n \n \n \n \n acceptLogoutRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n createOAuth2Client\n \n \n \n \n \n \n \n createOAuth2Client(data: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n deleteOAuth2Client\n \n \n \n \n \n \n \n deleteOAuth2Client(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getConsentRequest\n \n \n \n \n \n \n \n getConsentRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getLoginRequest\n \n \n \n \n \n \n \n getLoginRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getOAuth2Client\n \n \n \n \n \n \n \n getOAuth2Client(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n introspectOAuth2Token\n \n \n \n \n \n \n \n introspectOAuth2Token(token: string, scope?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n scope\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n isInstanceAlive\n \n \n \n \n \n \n \n isInstanceAlive()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:30\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n listConsentSessions\n \n \n \n \n \n \n \n listConsentSessions(user: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n listOAuth2Clients\n \n \n \n \n \n \n \n listOAuth2Clients(limit?: number, offset?: number, client_name?: string, owner?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n offset\n \n number\n \n\n \n Yes\n \n\n\n \n \n client_name\n \n string\n \n\n \n Yes\n \n\n\n \n \n owner\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n rejectConsentRequest\n \n \n \n \n \n \n \n rejectConsentRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n rejectLoginRequest\n \n \n \n \n \n \n \n rejectLoginRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n revokeConsentSession\n \n \n \n \n \n \n \n revokeConsentSession(user: string, client: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n string\n \n\n \n No\n \n\n\n \n \n client\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateOAuth2Client\n \n \n \n \n \n \n \n updateOAuth2Client(id: string, data: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import {\n\tAcceptConsentRequestBody,\n\tAcceptLoginRequestBody,\n\tIntrospectResponse,\n\tProviderConsentResponse,\n\tProviderConsentSessionResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n\tRejectRequestBody,\n} from './dto';\n\nexport abstract class OauthProviderService {\n\tabstract getLoginRequest(challenge: string): Promise;\n\n\tabstract acceptLoginRequest(challenge: string, body: AcceptLoginRequestBody): Promise;\n\n\tabstract rejectLoginRequest(challenge: string, body: RejectRequestBody): Promise;\n\n\tabstract getConsentRequest(challenge: string): Promise;\n\n\tabstract acceptConsentRequest(challenge: string, body: AcceptConsentRequestBody): Promise;\n\n\tabstract rejectConsentRequest(challenge: string, body: RejectRequestBody): Promise;\n\n\tabstract acceptLogoutRequest(challenge: string): Promise;\n\n\tabstract introspectOAuth2Token(token: string, scope?: string): Promise;\n\n\tabstract isInstanceAlive(): Promise;\n\n\tabstract listOAuth2Clients(\n\t\tlimit?: number,\n\t\toffset?: number,\n\t\tclient_name?: string,\n\t\towner?: string\n\t): Promise;\n\n\tabstract createOAuth2Client(data: ProviderOauthClient): Promise;\n\n\tabstract getOAuth2Client(id: string): Promise;\n\n\tabstract updateOAuth2Client(id: string, data: ProviderOauthClient): Promise;\n\n\tabstract deleteOAuth2Client(id: string): Promise;\n\n\tabstract listConsentSessions(user: string): Promise;\n\n\tabstract revokeConsentSession(user: string, client: string): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthProviderServiceModule.html":{"url":"modules/OauthProviderServiceModule.html","title":"module - OauthProviderServiceModule","body":"\n \n\n\n\n\n Modules\n OauthProviderServiceModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthProviderServiceModule\n\n\n\ncluster_OauthProviderServiceModule_exports\n\n\n\n\nOauthProviderService \n\nOauthProviderService \n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nOauthProviderService -->\n\nOauthProviderServiceModule->OauthProviderService \n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/oauth-provider-service.module.ts\n \n\n\n\n\n\n \n \n \n Exports\n \n \n OauthProviderService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { OauthProviderService } from '@shared/infra/oauth-provider/oauth-provider.service';\nimport { HydraAdapter } from '@shared/infra/oauth-provider/hydra/hydra.adapter';\nimport { HttpModule } from '@nestjs/axios';\n\n@Module({\n\timports: [HttpModule],\n\tproviders: [{ provide: OauthProviderService, useClass: HydraAdapter }],\n\texports: [OauthProviderService],\n})\nexport class OauthProviderServiceModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderUc.html":{"url":"injectables/OauthProviderUc.html","title":"injectable - OauthProviderUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n listConsentSessions\n \n \n revokeConsentSession\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n listConsentSessions\n \n \n \n \n \n \nlistConsentSessions(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.uc.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n revokeConsentSession\n \n \n \n \n \n \nrevokeConsentSession(userId: EntityId, clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.uc.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { EntityId } from '@shared/domain';\nimport { ProviderConsentSessionResponse } from '@shared/infra/oauth-provider/dto/';\n\n@Injectable()\nexport class OauthProviderUc {\n\tconstructor(private readonly oauthProviderService: OauthProviderService) {}\n\n\tlistConsentSessions(userId: EntityId): Promise {\n\t\tconst sessions: Promise = this.oauthProviderService.listConsentSessions(userId);\n\t\treturn sessions;\n\t}\n\n\trevokeConsentSession(userId: EntityId, clientId: string): Promise {\n\t\tconst promise: Promise = this.oauthProviderService.revokeConsentSession(userId, clientId);\n\t\treturn promise;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/OauthSSOController.html":{"url":"controllers/OauthSSOController.html","title":"controller - OauthSSOController","body":"\n \n\n\n\n\n\n\n Controllers\n OauthSSOController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/oauth-sso.controller.ts\n \n\n \n Prefix\n \n \n sso\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n errorHandler\n \n \n \n Async\n getAuthenticationUrl\n \n \n \n \n Async\n getHydraOauthToken\n \n \n \n \n \n \n Async\n migrateUser\n \n \n Private\n migrationErrorHandler\n \n \n \n \n Async\n requestAuthToken\n \n \n Private\n sessionHandler\n \n \n \n Async\n startOauthAuthorizationCodeFlow\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n errorHandler\n \n \n \n \n \n \n \n errorHandler(error, session: ISession, res: Response, provider?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n \n\n \n No\n \n\n\n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n provider\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getAuthenticationUrl\n \n \n \n \n \n \n \n getAuthenticationUrl(session: ISession, res: Response, params: SystemIdParams, query: SSOLoginQuery)\n \n \n\n \n \n Decorators : \n \n @Get('login/:systemId')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:99\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n params\n \n SystemIdParams\n \n\n \n No\n \n\n\n \n \n query\n \n SSOLoginQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getHydraOauthToken\n \n \n \n \n \n \n \n getHydraOauthToken(query: StatelessAuthorizationParams, oauthClientId: string)\n \n \n\n \n \n Decorators : \n \n @Get('hydra/:oauthClientId')@Authenticate('jwt')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:153\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n StatelessAuthorizationParams\n \n\n \n No\n \n\n\n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrateUser\n \n \n \n \n \n \n \n migrateUser(jwt: string, session: ISession, currentUser: ICurrentUser, query: AuthorizationParams, res: Response)\n \n \n\n \n \n Decorators : \n \n @Get('oauth/migration')@Authenticate('jwt')@ApiOkResponse({description: 'The User has been succesfully migrated.'})@ApiResponse({type: InternalServerErrorException, description: 'The migration of the User was not possible. '})\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:184\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwt\n \n string\n \n\n \n No\n \n\n\n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n query\n \n AuthorizationParams\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n migrationErrorHandler\n \n \n \n \n \n \n \n migrationErrorHandler(error, session: ISession, res: Response)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n \n\n \n No\n \n\n\n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n requestAuthToken\n \n \n \n \n \n \n \n requestAuthToken(currentUser: ICurrentUser, req: Request, oauthClientId: string)\n \n \n\n \n \n Decorators : \n \n @Get('auth/:oauthClientId')@Authenticate('jwt')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:163\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n req\n \n Request\n \n\n \n No\n \n\n\n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n sessionHandler\n \n \n \n \n \n \n \n sessionHandler(session: ISession, query: AuthorizationParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n query\n \n AuthorizationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthLoginStateDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startOauthAuthorizationCodeFlow\n \n \n \n \n \n \n \n startOauthAuthorizationCodeFlow(session: ISession, res: Response, query: AuthorizationParams)\n \n \n\n \n \n Decorators : \n \n @Get('oauth')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:120\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n query\n \n AuthorizationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport {\n\tController,\n\tGet,\n\tInternalServerErrorException,\n\tParam,\n\tQuery,\n\tReq,\n\tRes,\n\tSession,\n\tUnauthorizedException,\n\tUnprocessableEntityException,\n} from '@nestjs/common';\nimport { ApiOkResponse, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ISession } from '@shared/domain/types/session';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser, JWT } from '@src/modules/authentication/decorator/auth.decorator';\nimport { UserMigrationResponse } from '@src/modules/oauth/controller/dto/user-migration.response';\nimport { HydraOauthUc } from '@src/modules/oauth/uc/hydra-oauth.uc';\nimport { OAuthMigrationError } from '@src/modules/user-login-migration/error/oauth-migration.error';\nimport { MigrationDto } from '@src/modules/user-login-migration/service/dto';\nimport { CookieOptions, Request, Response } from 'express';\nimport { OAuthSSOError } from '../error/oauth-sso.error';\nimport { OAuthTokenDto } from '../interface';\nimport { OauthLoginStateMapper } from '../mapper/oauth-login-state.mapper';\nimport { UserMigrationMapper } from '../mapper/user-migration.mapper';\nimport { OAuthProcessDto } from '../service/dto';\nimport { OauthUc } from '../uc';\nimport { OauthLoginStateDto } from '../uc/dto/oauth-login-state.dto';\nimport { AuthorizationParams, SSOLoginQuery, SystemIdParams } from './dto';\nimport { StatelessAuthorizationParams } from './dto/stateless-authorization.params';\n\n@ApiTags('SSO')\n@Controller('sso')\nexport class OauthSSOController {\n\tprivate readonly clientUrl: string;\n\n\tconstructor(\n\t\tprivate readonly oauthUc: OauthUc,\n\t\tprivate readonly hydraUc: HydraOauthUc,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(OauthSSOController.name);\n\t\tthis.clientUrl = Configuration.get('HOST') as string;\n\t}\n\n\tprivate errorHandler(error: unknown, session: ISession, res: Response, provider?: string) {\n\t\tthis.logger.error(error);\n\t\tconst ssoError: OAuthSSOError = error instanceof OAuthSSOError ? error : new OAuthSSOError();\n\n\t\tsession.destroy((err) => {\n\t\t\tthis.logger.log(err);\n\t\t});\n\n\t\tconst errorRedirect: URL = new URL('/login', this.clientUrl);\n\t\terrorRedirect.searchParams.append('error', ssoError.errorcode);\n\n\t\tif (provider) {\n\t\t\terrorRedirect.searchParams.append('provider', provider);\n\t\t}\n\n\t\tres.redirect(errorRedirect.toString());\n\t}\n\n\tprivate migrationErrorHandler(error: unknown, session: ISession, res: Response) {\n\t\tconst migrationError: OAuthMigrationError =\n\t\t\terror instanceof OAuthMigrationError ? error : new OAuthMigrationError();\n\n\t\tsession.destroy((err) => {\n\t\t\tthis.logger.log(err);\n\t\t});\n\n\t\tconst errorRedirect: URL = new URL('/migration/error', this.clientUrl);\n\n\t\tif (migrationError.officialSchoolNumberFromSource && migrationError.officialSchoolNumberFromTarget) {\n\t\t\terrorRedirect.searchParams.append('sourceSchoolNumber', migrationError.officialSchoolNumberFromSource);\n\t\t\terrorRedirect.searchParams.append('targetSchoolNumber', migrationError.officialSchoolNumberFromTarget);\n\t\t}\n\n\t\tres.redirect(errorRedirect.toString());\n\t}\n\n\tprivate sessionHandler(session: ISession, query: AuthorizationParams): OauthLoginStateDto {\n\t\tif (!session.oauthLoginState) {\n\t\t\tthrow new UnauthorizedException('Oauth session not found');\n\t\t}\n\n\t\tconst oauthLoginState: OauthLoginStateDto = OauthLoginStateMapper.mapSessionToDto(session);\n\n\t\tif (oauthLoginState.state !== query.state) {\n\t\t\tthrow new UnauthorizedException(`Invalid state. Got: ${query.state} Expected: ${oauthLoginState.state}`);\n\t\t}\n\n\t\treturn oauthLoginState;\n\t}\n\n\t@Get('login/:systemId')\n\tasync getAuthenticationUrl(\n\t\t@Session() session: ISession,\n\t\t@Res() res: Response,\n\t\t@Param() params: SystemIdParams,\n\t\t@Query() query: SSOLoginQuery\n\t): Promise {\n\t\ttry {\n\t\t\tconst redirect: string = await this.oauthUc.startOauthLogin(\n\t\t\t\tsession,\n\t\t\t\tparams.systemId,\n\t\t\t\tquery.migration || false,\n\t\t\t\tquery.postLoginRedirect\n\t\t\t);\n\n\t\t\tres.redirect(redirect);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(error, session, res);\n\t\t}\n\t}\n\n\t@Get('oauth')\n\tasync startOauthAuthorizationCodeFlow(\n\t\t@Session() session: ISession,\n\t\t@Res() res: Response,\n\t\t@Query() query: AuthorizationParams\n\t): Promise {\n\t\tconst oauthLoginState: OauthLoginStateDto = this.sessionHandler(session, query);\n\n\t\ttry {\n\t\t\tconst oauthProcessDto: OAuthProcessDto = await this.oauthUc.processOAuthLogin(\n\t\t\t\toauthLoginState,\n\t\t\t\tquery.code,\n\t\t\t\tquery.error\n\t\t\t);\n\n\t\t\tif (oauthProcessDto.jwt) {\n\t\t\t\tconst cookieDefaultOptions: CookieOptions = {\n\t\t\t\t\thttpOnly: Configuration.get('COOKIE__HTTP_ONLY') as boolean,\n\t\t\t\t\tsameSite: Configuration.get('COOKIE__SAME_SITE') as 'lax' | 'strict' | 'none',\n\t\t\t\t\tsecure: Configuration.get('COOKIE__SECURE') as boolean,\n\t\t\t\t\texpires: new Date(Date.now() + (Configuration.get('COOKIE__EXPIRES_SECONDS') as number)),\n\t\t\t\t};\n\n\t\t\t\tres.cookie('jwt', oauthProcessDto.jwt, cookieDefaultOptions);\n\t\t\t}\n\n\t\t\tres.redirect(oauthProcessDto.redirect);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(error, session, res, oauthLoginState.provider);\n\t\t}\n\t}\n\n\t@Get('hydra/:oauthClientId')\n\t@Authenticate('jwt')\n\tasync getHydraOauthToken(\n\t\t@Query() query: StatelessAuthorizationParams,\n\t\t@Param('oauthClientId') oauthClientId: string\n\t): Promise {\n\t\tconst oauthToken = this.hydraUc.getOauthToken(oauthClientId, query.code, query.error);\n\t\treturn oauthToken;\n\t}\n\n\t@Get('auth/:oauthClientId')\n\t@Authenticate('jwt')\n\tasync requestAuthToken(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Req() req: Request,\n\t\t@Param('oauthClientId') oauthClientId: string\n\t): Promise {\n\t\tlet jwt: string;\n\t\tconst authHeader: string | undefined = req.headers.authorization;\n\t\tif (authHeader && authHeader.toLowerCase().startsWith('bearer ')) {\n\t\t\t[, jwt] = authHeader.split(' ');\n\t\t} else {\n\t\t\tthrow new UnauthorizedException(\n\t\t\t\t`No bearer token in header for authorization process of user ${currentUser.userId} on oauth system ${oauthClientId}`\n\t\t\t);\n\t\t}\n\t\treturn this.hydraUc.requestAuthCode(currentUser.userId, jwt, oauthClientId);\n\t}\n\n\t@Get('oauth/migration')\n\t@Authenticate('jwt')\n\t@ApiOkResponse({ description: 'The User has been succesfully migrated.' })\n\t@ApiResponse({ type: InternalServerErrorException, description: 'The migration of the User was not possible. ' })\n\tasync migrateUser(\n\t\t@JWT() jwt: string,\n\t\t@Session() session: ISession,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() query: AuthorizationParams,\n\t\t@Res() res: Response\n\t): Promise {\n\t\tconst oauthLoginState: OauthLoginStateDto = this.sessionHandler(session, query);\n\n\t\tif (!currentUser.systemId) {\n\t\t\tthrow new UnprocessableEntityException('Current user does not have a system.');\n\t\t}\n\n\t\ttry {\n\t\t\tconst migration: MigrationDto = await this.oauthUc.migrate(jwt, currentUser.userId, query, oauthLoginState);\n\t\t\tconst response: UserMigrationResponse = UserMigrationMapper.mapDtoToResponse(migration);\n\t\t\tres.redirect(response.redirect);\n\t\t} catch (error) {\n\t\t\tthis.migrationErrorHandler(error, session, res);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/OauthTokenResponse.html":{"url":"interfaces/OauthTokenResponse.html","title":"interface - OauthTokenResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n OauthTokenResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/oauth-token.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n access_token\n \n \n \n \n id_token\n \n \n \n \n refresh_token\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n access_token\n \n \n \n \n \n \n \n \n access_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id_token\n \n \n \n \n \n \n \n \n id_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n refresh_token\n \n \n \n \n \n \n \n \n refresh_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface OauthTokenResponse {\n\taccess_token: string;\n\n\trefresh_token: string;\n\n\tid_token: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthUc.html":{"url":"injectables/OauthUc.html","title":"injectable - OauthUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/uc/oauth.uc.ts\n \n\n \n Deprecated\n \n \n remove after login via oauth moved to authentication module\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n getJwtForUser\n \n \n Async\n migrate\n \n \n Async\n processOAuthLogin\n \n \n Async\n startOauthLogin\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthService: OAuthService, authenticationService: AuthenticationService, systemService: SystemService, provisioningService: ProvisioningService, userService: UserService, userMigrationService: UserMigrationService, schoolMigrationService: SchoolMigrationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthService\n \n \n OAuthService\n \n \n \n No\n \n \n \n \n authenticationService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n provisioningService\n \n \n ProvisioningService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n userMigrationService\n \n \n UserMigrationService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n getJwtForUser\n \n \n \n \n \n \n \n getJwtForUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrate\n \n \n \n \n \n \n \n migrate(userJwt: string, currentUserId: string, query: AuthorizationParams, cachedState: OauthLoginStateDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userJwt\n \n string\n \n\n \n No\n \n\n\n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n query\n \n AuthorizationParams\n \n\n \n No\n \n\n\n \n \n cachedState\n \n OauthLoginStateDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n processOAuthLogin\n \n \n \n \n \n \n \n processOAuthLogin(cachedState: OauthLoginStateDto, code?: string, error?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n cachedState\n \n OauthLoginStateDto\n \n\n \n No\n \n\n\n \n \n code\n \n string\n \n\n \n Yes\n \n\n\n \n \n error\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startOauthLogin\n \n \n \n \n \n \n \n startOauthLogin(session: ISession, systemId: EntityId, migration: boolean, postLoginRedirect?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n migration\n \n boolean\n \n\n \n No\n \n\n\n \n \n postLoginRedirect\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, UserDO } from '@shared/domain';\nimport { ISession } from '@shared/domain/types/session';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { AuthenticationService } from '@src/modules/authentication/services/authentication.service';\nimport { ProvisioningService } from '@src/modules/provisioning';\nimport { OauthDataDto } from '@src/modules/provisioning/dto';\nimport { SystemService } from '@src/modules/system';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { UserService } from '@src/modules/user';\nimport { UserMigrationService } from '@src/modules/user-login-migration';\nimport { SchoolMigrationService } from '@src/modules/user-login-migration/service';\nimport { MigrationDto } from '@src/modules/user-login-migration/service/dto';\nimport { nanoid } from 'nanoid';\nimport { AuthorizationParams } from '../controller/dto';\nimport { OAuthTokenDto } from '../interface';\nimport { OAuthProcessDto } from '../service/dto';\nimport { OAuthService } from '../service/oauth.service';\nimport { OauthLoginStateDto } from './dto/oauth-login-state.dto';\n\n/**\n * @deprecated remove after login via oauth moved to authentication module\n */\n@Injectable()\nexport class OauthUc {\n\tconstructor(\n\t\tprivate readonly oauthService: OAuthService,\n\t\tprivate readonly authenticationService: AuthenticationService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly provisioningService: ProvisioningService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly userMigrationService: UserMigrationService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(OauthUc.name);\n\t}\n\n\tasync startOauthLogin(\n\t\tsession: ISession,\n\t\tsystemId: EntityId,\n\t\tmigration: boolean,\n\t\tpostLoginRedirect?: string\n\t): Promise {\n\t\tconst state = nanoid(16);\n\n\t\tconst system: SystemDto = await this.systemService.findById(systemId);\n\t\tif (!system.oauthConfig) {\n\t\t\tthrow new UnprocessableEntityException(`Requested system ${systemId} has no oauth configured`);\n\t\t}\n\n\t\tconst authenticationUrl: string = this.oauthService.getAuthenticationUrl(system.oauthConfig, state, migration);\n\n\t\tsession.oauthLoginState = new OauthLoginStateDto({\n\t\t\tstate,\n\t\t\tsystemId,\n\t\t\tprovider: system.oauthConfig.provider,\n\t\t\tpostLoginRedirect,\n\t\t\tuserLoginMigration: migration,\n\t\t});\n\n\t\treturn authenticationUrl;\n\t}\n\n\tasync processOAuthLogin(cachedState: OauthLoginStateDto, code?: string, error?: string): Promise {\n\t\tconst { state, systemId, postLoginRedirect, userLoginMigration } = cachedState;\n\n\t\tthis.logger.debug(`Oauth login process started. [state: ${state}, system: ${systemId}]`);\n\n\t\tconst redirectUri: string = this.oauthService.getRedirectUri(userLoginMigration);\n\n\t\tconst tokenDto: OAuthTokenDto = await this.oauthService.authenticateUser(systemId, redirectUri, code, error);\n\n\t\tconst { user, redirect }: { user?: UserDO; redirect: string } = await this.oauthService.provisionUser(\n\t\t\tsystemId,\n\t\t\ttokenDto.idToken,\n\t\t\ttokenDto.accessToken,\n\t\t\tpostLoginRedirect\n\t\t);\n\n\t\tthis.logger.debug(`Generating jwt for user. [state: ${state}, system: ${systemId}]`);\n\n\t\tlet jwt: string | undefined;\n\t\tif (user && user.id) {\n\t\t\tjwt = await this.getJwtForUser(user.id);\n\t\t}\n\n\t\tconst response = new OAuthProcessDto({\n\t\t\tjwt,\n\t\t\tredirect,\n\t\t});\n\n\t\treturn response;\n\t}\n\n\tasync migrate(\n\t\tuserJwt: string,\n\t\tcurrentUserId: string,\n\t\tquery: AuthorizationParams,\n\t\tcachedState: OauthLoginStateDto\n\t): Promise {\n\t\tconst { state, systemId, userLoginMigration } = cachedState;\n\n\t\tif (state !== query.state) {\n\t\t\tthrow new UnauthorizedException(`Invalid state. Got: ${query.state} Expected: ${state}`);\n\t\t}\n\n\t\tconst redirectUri: string = this.oauthService.getRedirectUri(userLoginMigration);\n\n\t\tconst tokenDto: OAuthTokenDto = await this.oauthService.authenticateUser(\n\t\t\tsystemId,\n\t\t\tredirectUri,\n\t\t\tquery.code,\n\t\t\tquery.error\n\t\t);\n\n\t\tconst data: OauthDataDto = await this.provisioningService.getData(systemId, tokenDto.idToken, tokenDto.accessToken);\n\n\t\tif (data.externalSchool) {\n\t\t\tconst schoolToMigrate: LegacySchoolDo | null = await this.schoolMigrationService.schoolToMigrate(\n\t\t\t\tcurrentUserId,\n\t\t\t\tdata.externalSchool.externalId,\n\t\t\t\tdata.externalSchool.officialSchoolNumber\n\t\t\t);\n\t\t\tif (schoolToMigrate) {\n\t\t\t\tawait this.schoolMigrationService.migrateSchool(data.externalSchool.externalId, schoolToMigrate, systemId);\n\t\t\t}\n\t\t}\n\n\t\tconst migrationDto: MigrationDto = await this.userMigrationService.migrateUser(\n\t\t\tcurrentUserId,\n\t\t\tdata.externalUser.externalId,\n\t\t\tsystemId\n\t\t);\n\n\t\tawait this.authenticationService.removeJwtFromWhitelist(userJwt);\n\n\t\treturn migrationDto;\n\t}\n\n\tprivate async getJwtForUser(userId: EntityId): Promise {\n\t\tconst currentUser: ICurrentUser = await this.userService.getResolvedUser(userId);\n\n\t\tconst { accessToken } = await this.authenticationService.generateJwt(currentUser);\n\n\t\treturn accessToken;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/OcsResponse.html":{"url":"interfaces/OcsResponse.html","title":"interface - OcsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n OcsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n ocs\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n ocs\n \n \n \n \n \n \n \n \n ocs: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OidcConfig.html":{"url":"classes/OidcConfig.html","title":"class - OidcConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OidcConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n authorizationUrl\n \n \n \n clientId\n \n \n \n clientSecret\n \n \n \n defaultScopes\n \n \n \n idpHint\n \n \n \n logoutUrl\n \n \n \n tokenUrl\n \n \n \n userinfoUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oidcConfig: OidcConfig)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:153\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfig\n \n \n OidcConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n authorizationUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:175\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:166\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:169\n \n \n\n\n \n \n \n \n \n \n \n \n \n defaultScopes\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:187\n \n \n\n\n \n \n \n \n \n \n \n \n \n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:172\n \n \n\n\n \n \n \n \n \n \n \n \n \n logoutUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:181\n \n \n\n\n \n \n \n \n \n \n \n \n \n tokenUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:178\n \n \n\n\n \n \n \n \n \n \n \n \n \n userinfoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:184\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OidcConfigDto.html":{"url":"classes/OidcConfigDto.html","title":"class - OidcConfigDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OidcConfigDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/dto/oidc-config.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n authorizationUrl\n \n \n clientId\n \n \n clientSecret\n \n \n defaultScopes\n \n \n idpHint\n \n \n logoutUrl\n \n \n parentSystemId\n \n \n tokenUrl\n \n \n userinfoUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oidcConfigDto: OidcConfigDto)\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:1\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfigDto\n \n \n OidcConfigDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n authorizationUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n defaultScopes\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n logoutUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n parentSystemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n tokenUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n userinfoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:28\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OidcConfigDto {\n\tconstructor(oidcConfigDto: OidcConfigDto) {\n\t\tthis.parentSystemId = oidcConfigDto.parentSystemId;\n\t\tthis.clientId = oidcConfigDto.clientId;\n\t\tthis.clientSecret = oidcConfigDto.clientSecret;\n\t\tthis.idpHint = oidcConfigDto.idpHint;\n\t\tthis.authorizationUrl = oidcConfigDto.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfigDto.tokenUrl;\n\t\tthis.userinfoUrl = oidcConfigDto.userinfoUrl;\n\t\tthis.logoutUrl = oidcConfigDto.logoutUrl;\n\t\tthis.defaultScopes = oidcConfigDto.defaultScopes;\n\t}\n\n\tparentSystemId: string;\n\n\tclientId: string;\n\n\tclientSecret: string;\n\n\tidpHint: string;\n\n\tauthorizationUrl: string;\n\n\ttokenUrl: string;\n\n\tlogoutUrl: string;\n\n\tuserinfoUrl: string;\n\n\tdefaultScopes: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OidcContextResponse.html":{"url":"classes/OidcContextResponse.html","title":"class - OidcContextResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OidcContextResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n acr_values\n \n \n \n Optional\n display\n \n \n \n Optional\n id_token_hint_claims\n \n \n \n Optional\n login_hint\n \n \n \n \n Optional\n ui_locales\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n acr_values\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n display\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n id_token_hint_claims\n \n \n \n \n \n \n Type : object\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n login_hint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n ui_locales\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Optional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { Optional } from '@nestjs/common';\n\nexport class OidcContextResponse {\n\t@ApiProperty()\n\tacr_values?: string[];\n\n\t@ApiProperty()\n\tdisplay?: string;\n\n\t@ApiProperty()\n\tid_token_hint_claims?: object;\n\n\t@ApiProperty()\n\tlogin_hint?: string;\n\n\t@Optional()\n\t@ApiProperty()\n\tui_locales?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OidcIdentityProviderMapper.html":{"url":"classes/OidcIdentityProviderMapper.html","title":"class - OidcIdentityProviderMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OidcIdentityProviderMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/mapper/identity-provider.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapToKeycloakIdentityProvider\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(defaultEncryptionService: IEncryptionService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/mapper/identity-provider.mapper.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n defaultEncryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapToKeycloakIdentityProvider\n \n \n \n \n \n \n \n mapToKeycloakIdentityProvider(oidcConfig: OidcConfigDto, flowAlias: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/mapper/identity-provider.mapper.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfig\n \n OidcConfigDto\n \n\n \n No\n \n\n\n \n \n flowAlias\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IdentityProviderRepresentation\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import IdentityProviderRepresentation from '@keycloak/keycloak-admin-client/lib/defs/identityProviderRepresentation';\nimport { Inject } from '@nestjs/common';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { OidcConfigDto } from '@src/modules/system/service';\n\nexport class OidcIdentityProviderMapper {\n\tconstructor(@Inject(DefaultEncryptionService) private readonly defaultEncryptionService: IEncryptionService) {}\n\n\tpublic mapToKeycloakIdentityProvider(oidcConfig: OidcConfigDto, flowAlias: string): IdentityProviderRepresentation {\n\t\treturn {\n\t\t\tproviderId: 'oidc',\n\t\t\talias: oidcConfig.idpHint,\n\t\t\tdisplayName: oidcConfig.idpHint,\n\t\t\tenabled: true,\n\t\t\tfirstBrokerLoginFlowAlias: flowAlias,\n\t\t\tconfig: {\n\t\t\t\tclientId: oidcConfig.clientId,\n\t\t\t\tclientSecret: this.defaultEncryptionService.decrypt(oidcConfig.clientSecret),\n\t\t\t\tauthorizationUrl: oidcConfig.authorizationUrl,\n\t\t\t\ttokenUrl: oidcConfig.tokenUrl,\n\t\t\t\tlogoutUrl: oidcConfig.logoutUrl,\n\t\t\t\tuserInfoUrl: oidcConfig.userinfoUrl,\n\t\t\t\tdefaultScope: oidcConfig.defaultScopes,\n\t\t\t\tsyncMode: 'IMPORT',\n\t\t\t\tsync_mode: 'import',\n\t\t\t\tclientAuthMethod: 'client_secret_post',\n\t\t\t\tbackchannelSupported: 'true',\n\t\t\t\tprompt: 'login',\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OidcMockProvisioningStrategy.html":{"url":"injectables/OidcMockProvisioningStrategy.html","title":"injectable - OidcMockProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OidcMockProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/oidc-mock/oidc-mock.strategy.ts\n \n\n\n\n \n Extends\n \n \n ProvisioningStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n apply\n \n \n \n Async\n getData\n \n \n getType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getType\n \n \n \n \n \n \ngetType()\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:10\n\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { OAuthSSOError } from '@src/modules/oauth/error/oauth-sso.error';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { ExternalUserDto, OauthDataDto, OauthDataStrategyInputDto, ProvisioningDto } from '../../dto';\nimport { ProvisioningStrategy } from '../base.strategy';\n\n@Injectable()\nexport class OidcMockProvisioningStrategy extends ProvisioningStrategy {\n\tgetType(): SystemProvisioningStrategy {\n\t\treturn SystemProvisioningStrategy.OIDC;\n\t}\n\n\toverride async getData(input: OauthDataStrategyInputDto): Promise {\n\t\tconst idToken = jwt.decode(input.idToken, { json: true }) as (JwtPayload & { external_sub?: string }) | null;\n\t\tif (!idToken || !idToken.external_sub) {\n\t\t\tthrow new OAuthSSOError('Failed to extract external_sub', 'sso_jwt_problem');\n\t\t}\n\n\t\tconst externalUser: ExternalUserDto = new ExternalUserDto({\n\t\t\texternalId: idToken.external_sub,\n\t\t});\n\n\t\tconst oauthData: OauthDataDto = new OauthDataDto({\n\t\t\tsystem: input.system,\n\t\t\texternalUser,\n\t\t});\n\t\treturn Promise.resolve(oauthData);\n\t}\n\n\toverride apply(data: OauthDataDto): Promise {\n\t\treturn Promise.resolve(new ProvisioningDto({ externalUserId: data.externalUser.externalId }));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OidcProvisioningService.html":{"url":"injectables/OidcProvisioningService.html","title":"injectable - OidcProvisioningService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OidcProvisioningService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n getFilteredGroupUsers\n \n \n Async\n provisionExternalGroup\n \n \n Async\n provisionExternalSchool\n \n \n Async\n provisionExternalUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, schoolService: LegacySchoolService, groupService: GroupService, roleService: RoleService, accountService: AccountService, schoolYearService: SchoolYearService, federalStateService: FederalStateService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n groupService\n \n \n GroupService\n \n \n \n No\n \n \n \n \n roleService\n \n \n RoleService\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n schoolYearService\n \n \n SchoolYearService\n \n \n \n No\n \n \n \n \n federalStateService\n \n \n FederalStateService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n getFilteredGroupUsers\n \n \n \n \n \n \n \n getFilteredGroupUsers(externalGroup: ExternalGroupDto, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:164\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalGroup\n \n ExternalGroupDto\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionExternalGroup\n \n \n \n \n \n \n \n provisionExternalGroup(externalGroup: ExternalGroupDto, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:120\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalGroup\n \n ExternalGroupDto\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionExternalSchool\n \n \n \n \n \n \n \n provisionExternalSchool(externalSchool: ExternalSchoolDto, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalSchool\n \n ExternalSchoolDto\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionExternalUser\n \n \n \n \n \n \n \n provisionExternalUser(externalUser: ExternalUserDto, systemId: EntityId, schoolId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUser\n \n ExternalUserDto\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, ExternalSource, FederalState, SchoolFeatures, SchoolYear } from '@shared/domain';\nimport { LegacySchoolDo, RoleReference, UserDO } from '@shared/domain/domainobject';\nimport { Logger } from '@src/core/logger';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountSaveDto } from '@src/modules/account/services/dto';\nimport { Group, GroupService, GroupUser } from '@src/modules/group';\nimport { FederalStateService, LegacySchoolService, SchoolYearService } from '@src/modules/legacy-school';\nimport { FederalStateNames } from '@src/modules/legacy-school/types';\nimport { RoleService } from '@src/modules/role';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\nimport { UserService } from '@src/modules/user';\nimport { ObjectId } from 'bson';\nimport CryptoJS from 'crypto-js';\nimport { ExternalGroupDto, ExternalGroupUserDto, ExternalSchoolDto, ExternalUserDto } from '../../../dto';\nimport { SchoolForGroupNotFoundLoggable, UserForGroupNotFoundLoggable } from '../../../loggable';\n\n@Injectable()\nexport class OidcProvisioningService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly groupService: GroupService,\n\t\tprivate readonly roleService: RoleService,\n\t\tprivate readonly accountService: AccountService,\n\t\tprivate readonly schoolYearService: SchoolYearService,\n\t\tprivate readonly federalStateService: FederalStateService,\n\t\tprivate readonly logger: Logger\n\t) {}\n\n\tasync provisionExternalSchool(externalSchool: ExternalSchoolDto, systemId: EntityId): Promise {\n\t\tconst existingSchool: LegacySchoolDo | null = await this.schoolService.getSchoolByExternalId(\n\t\t\texternalSchool.externalId,\n\t\t\tsystemId\n\t\t);\n\t\tlet school: LegacySchoolDo;\n\t\tif (existingSchool) {\n\t\t\tschool = existingSchool;\n\t\t\tschool.name = externalSchool.name;\n\t\t\tschool.officialSchoolNumber = externalSchool.officialSchoolNumber ?? existingSchool.officialSchoolNumber;\n\t\t\tif (!school.systems) {\n\t\t\t\tschool.systems = [systemId];\n\t\t\t} else if (!school.systems.includes(systemId)) {\n\t\t\t\tschool.systems.push(systemId);\n\t\t\t}\n\t\t} else {\n\t\t\tconst schoolYear: SchoolYear = await this.schoolYearService.getCurrentSchoolYear();\n\t\t\tconst federalState: FederalState = await this.federalStateService.findFederalStateByName(\n\t\t\t\tFederalStateNames.NIEDERSACHEN\n\t\t\t);\n\n\t\t\tschool = new LegacySchoolDo({\n\t\t\t\texternalId: externalSchool.externalId,\n\t\t\t\tname: externalSchool.name,\n\t\t\t\tofficialSchoolNumber: externalSchool.officialSchoolNumber,\n\t\t\t\tsystems: [systemId],\n\t\t\t\tfeatures: [SchoolFeatures.OAUTH_PROVISIONING_ENABLED],\n\t\t\t\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\t\t\t\tschoolYear,\n\t\t\t\tfederalState,\n\t\t\t});\n\t\t}\n\n\t\tconst savedSchool: LegacySchoolDo = await this.schoolService.save(school, true);\n\t\treturn savedSchool;\n\t}\n\n\tasync provisionExternalUser(externalUser: ExternalUserDto, systemId: EntityId, schoolId?: string): Promise {\n\t\tlet roleRefs: RoleReference[] | undefined;\n\t\tif (externalUser.roles) {\n\t\t\tconst roles: RoleDto[] = await this.roleService.findByNames(externalUser.roles);\n\t\t\troleRefs = roles.map((role: RoleDto): RoleReference => new RoleReference({ id: role.id || '', name: role.name }));\n\t\t}\n\n\t\tconst existingUser: UserDO | null = await this.userService.findByExternalId(externalUser.externalId, systemId);\n\t\tlet user: UserDO;\n\t\tlet createNewAccount = false;\n\t\tif (existingUser) {\n\t\t\tuser = existingUser;\n\t\t\tuser.firstName = externalUser.firstName ?? existingUser.firstName;\n\t\t\tuser.lastName = externalUser.lastName ?? existingUser.lastName;\n\t\t\tuser.email = externalUser.email ?? existingUser.email;\n\t\t\tuser.roles = roleRefs ?? existingUser.roles;\n\t\t\tuser.schoolId = schoolId ?? existingUser.schoolId;\n\t\t} else {\n\t\t\tcreateNewAccount = true;\n\n\t\t\tif (!schoolId) {\n\t\t\t\tthrow new UnprocessableEntityException(\n\t\t\t\t\t`Unable to create new external user ${externalUser.externalId} without a school`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tuser = new UserDO({\n\t\t\t\texternalId: externalUser.externalId,\n\t\t\t\tfirstName: externalUser.firstName ?? '',\n\t\t\t\tlastName: externalUser.lastName ?? '',\n\t\t\t\temail: externalUser.email ?? '',\n\t\t\t\troles: roleRefs ?? [],\n\t\t\t\tschoolId,\n\t\t\t});\n\t\t}\n\n\t\tconst savedUser: UserDO = await this.userService.save(user);\n\n\t\tif (createNewAccount) {\n\t\t\tawait this.accountService.saveWithValidation(\n\t\t\t\tnew AccountSaveDto({\n\t\t\t\t\tuserId: savedUser.id,\n\t\t\t\t\tusername: CryptoJS.SHA256(savedUser.id as string).toString(CryptoJS.enc.Base64),\n\t\t\t\t\tsystemId,\n\t\t\t\t\tactivated: true,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\treturn savedUser;\n\t}\n\n\tasync provisionExternalGroup(externalGroup: ExternalGroupDto, systemId: EntityId): Promise {\n\t\tif (externalGroup.users.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst existingGroup: Group | null = await this.groupService.findByExternalSource(\n\t\t\texternalGroup.externalId,\n\t\t\tsystemId\n\t\t);\n\n\t\tlet organizationId: string | undefined;\n\t\tif (externalGroup.externalOrganizationId) {\n\t\t\tconst existingSchool: LegacySchoolDo | null = await this.schoolService.getSchoolByExternalId(\n\t\t\t\texternalGroup.externalOrganizationId,\n\t\t\t\tsystemId\n\t\t\t);\n\n\t\t\tif (!existingSchool || !existingSchool.id) {\n\t\t\t\tthis.logger.info(new SchoolForGroupNotFoundLoggable(externalGroup));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\torganizationId = existingSchool.id;\n\t\t}\n\n\t\tconst users: GroupUser[] = await this.getFilteredGroupUsers(externalGroup, systemId);\n\n\t\tconst group: Group = new Group({\n\t\t\tid: existingGroup ? existingGroup.id : new ObjectId().toHexString(),\n\t\t\tname: externalGroup.name,\n\t\t\texternalSource: new ExternalSource({\n\t\t\t\texternalId: externalGroup.externalId,\n\t\t\t\tsystemId,\n\t\t\t}),\n\t\t\ttype: externalGroup.type,\n\t\t\torganizationId,\n\t\t\tvalidFrom: externalGroup.from,\n\t\t\tvalidUntil: externalGroup.until,\n\t\t\tusers,\n\t\t});\n\n\t\tawait this.groupService.save(group);\n\t}\n\n\tprivate async getFilteredGroupUsers(externalGroup: ExternalGroupDto, systemId: string): Promise {\n\t\tconst users: (GroupUser | null)[] = await Promise.all(\n\t\t\texternalGroup.users.map(async (externalGroupUser: ExternalGroupUserDto): Promise => {\n\t\t\t\tconst user: UserDO | null = await this.userService.findByExternalId(externalGroupUser.externalUserId, systemId);\n\t\t\t\tconst roles: RoleDto[] = await this.roleService.findByNames([externalGroupUser.roleName]);\n\n\t\t\t\tif (!user || !user.id || roles.length !== 1 || !roles[0].id) {\n\t\t\t\t\tthis.logger.info(new UserForGroupNotFoundLoggable(externalGroupUser));\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst groupUser: GroupUser = new GroupUser({\n\t\t\t\t\tuserId: user.id,\n\t\t\t\t\troleId: roles[0].id,\n\t\t\t\t});\n\n\t\t\t\treturn groupUser;\n\t\t\t})\n\t\t);\n\n\t\tconst filteredUsers: GroupUser[] = users.filter((groupUser): groupUser is GroupUser => groupUser !== null);\n\n\t\treturn filteredUsers;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OidcProvisioningStrategy.html":{"url":"injectables/OidcProvisioningStrategy.html","title":"injectable - OidcProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OidcProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts\n \n\n\n\n \n Extends\n \n \n ProvisioningStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n apply\n \n \n Abstract\n getData\n \n \n Abstract\n getType\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oidcProvisioningService: OidcProvisioningService)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcProvisioningService\n \n \n OidcProvisioningService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getType\n \n \n \n \n \n \n \n getType()\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:5\n\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport { LegacySchoolDo, UserDO } from '@shared/domain';\nimport { OauthDataDto, ProvisioningDto } from '../../dto';\nimport { ProvisioningStrategy } from '../base.strategy';\nimport { OidcProvisioningService } from './service/oidc-provisioning.service';\n\n@Injectable()\nexport abstract class OidcProvisioningStrategy extends ProvisioningStrategy {\n\tconstructor(protected readonly oidcProvisioningService: OidcProvisioningService) {\n\t\tsuper();\n\t}\n\n\toverride async apply(data: OauthDataDto): Promise {\n\t\tlet school: LegacySchoolDo | undefined;\n\t\tif (data.externalSchool) {\n\t\t\tschool = await this.oidcProvisioningService.provisionExternalSchool(data.externalSchool, data.system.systemId);\n\t\t}\n\n\t\tconst user: UserDO = await this.oidcProvisioningService.provisionExternalUser(\n\t\t\tdata.externalUser,\n\t\t\tdata.system.systemId,\n\t\t\tschool?.id\n\t\t);\n\n\t\tif (Configuration.get('FEATURE_SANIS_GROUP_PROVISIONING_ENABLED') && data.externalGroups) {\n\t\t\t// TODO: N21-1212 remove user from groups\n\n\t\t\tawait Promise.all(\n\t\t\t\tdata.externalGroups.map((externalGroup) =>\n\t\t\t\t\tthis.oidcProvisioningService.provisionExternalGroup(externalGroup, data.system.systemId)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn new ProvisioningDto({ externalUserId: user.externalId || data.externalUser.externalId });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Options.html":{"url":"interfaces/Options.html","title":"interface - Options","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Options\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/console/database-management.console.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n collection\n \n \n \n Optional\n \n onlyfactories\n \n \n \n Optional\n \n override\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n collection\n \n \n \n \n \n \n \n \n collection: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n onlyfactories\n \n \n \n \n \n \n \n \n onlyfactories: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n override\n \n \n \n \n \n \n \n \n override: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console/console-writer/console-writer.service';\nimport { Command, Console } from 'nestjs-console';\nimport { DatabaseManagementUc } from '../uc/database-management.uc';\n\ninterface Options {\n\tcollection?: string;\n\toverride?: boolean;\n\tonlyfactories?: boolean;\n}\n\n@Console({ command: 'database', description: 'database setup console' })\nexport class DatabaseManagementConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService, private databaseManagementUc: DatabaseManagementUc) {}\n\n\t@Command({\n\t\tcommand: 'seed',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --onlyfactories',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'seed from factories only',\n\t\t\t},\n\t\t],\n\t\tdescription: 'reset database collections with seed data from filesystem',\n\t})\n\tasync seedCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\n\t\tconst collections = options.onlyfactories\n\t\t\t? await this.databaseManagementUc.seedDatabaseCollectionsFromFactories(filter)\n\t\t\t: await this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem(filter);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'export',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --override',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'optional export collections to setup folder and override existing files',\n\t\t\t},\n\t\t],\n\t\tdescription: 'export database collections to filesystem',\n\t})\n\tasync exportCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\t\tconst toSeedFolder = options?.override ? true : undefined;\n\t\tconst collections = await this.databaseManagementUc.exportCollectionsToFileSystem(filter, toSeedFolder);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'sync-indexes',\n\t\toptions: [],\n\t\tdescription: 'sync indexes from nest and mikroorm',\n\t})\n\tasync syncIndexes(): Promise {\n\t\tawait this.databaseManagementUc.syncIndexes();\n\t\tconst report = 'sync of indexes is completed';\n\t\tthis.consoleWriter.info(report);\n\t\treturn report;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Page.html":{"url":"classes/Page.html","title":"class - Page","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Page\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/page.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n data\n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: T[], total: number)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n T[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : T[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class Page {\n\tdata: T[];\n\n\ttotal: number;\n\n\tconstructor(data: T[], total: number) {\n\t\tthis.data = data;\n\t\tthis.total = total;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PageContentDto.html":{"url":"classes/PageContentDto.html","title":"class - PageContentDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PageContentDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n cancelButtonUrl\n \n \n proceedButtonUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: PageContentDto)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n PageContentDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n cancelButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n proceedButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class PageContentDto {\n\tproceedButtonUrl: string;\n\n\tcancelButtonUrl: string;\n\n\tconstructor(props: PageContentDto) {\n\t\tthis.proceedButtonUrl = props.proceedButtonUrl;\n\t\tthis.cancelButtonUrl = props.cancelButtonUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PageContentMapper.html":{"url":"injectables/PageContentMapper.html","title":"injectable - PageContentMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PageContentMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/mapper/page-content.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapDtoToResponse\n \n \n \n \n \n \nmapDtoToResponse(dto: PageContentDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/mapper/page-content.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n PageContentDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PageContentResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { PageContentDto } from '../service/dto/page-content.dto';\nimport { PageContentResponse } from '../controller/dto';\n\n@Injectable()\nexport class PageContentMapper {\n\tmapDtoToResponse(dto: PageContentDto): PageContentResponse {\n\t\tconst response: PageContentResponse = new PageContentResponse({\n\t\t\tproceedButtonUrl: dto.proceedButtonUrl,\n\t\t\tcancelButtonUrl: dto.cancelButtonUrl,\n\t\t});\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PageContentQueryParams.html":{"url":"classes/PageContentQueryParams.html","title":"class - PageContentQueryParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PageContentQueryParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/request/page-type.query.param.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n pageType\n \n \n \n \n sourceSystem\n \n \n \n \n targetSystem\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n pageType\n \n \n \n \n \n \n Type : PageTypes\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The Type of Page that is displayed', type: PageTypes})@IsEnum(PageTypes)\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/page-type.query.param.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n sourceSystem\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The Source System'})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/page-type.query.param.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n targetSystem\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The Target System'})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/page-type.query.param.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { PageTypes } from '../../../interface/page-types.enum';\n\nexport class PageContentQueryParams {\n\t@ApiProperty({ description: 'The Type of Page that is displayed', type: PageTypes })\n\t@IsEnum(PageTypes)\n\tpageType!: PageTypes;\n\n\t@ApiProperty({ description: 'The Source System' })\n\t@IsMongoId()\n\tsourceSystem!: string;\n\n\t@ApiProperty({ description: 'The Target System' })\n\t@IsMongoId()\n\ttargetSystem!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PageContentResponse.html":{"url":"classes/PageContentResponse.html","title":"class - PageContentResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PageContentResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/response/page-content.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n cancelButtonUrl\n \n \n \n proceedButtonUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: PageContentResponse)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/page-content.response.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n PageContentResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n cancelButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The URL for the cancel button'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/page-content.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n proceedButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The URL for the proceed button'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/page-content.response.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class PageContentResponse {\n\t@ApiProperty({\n\t\tdescription: 'The URL for the proceed button',\n\t})\n\tproceedButtonUrl: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The URL for the cancel button',\n\t})\n\tcancelButtonUrl: string;\n\n\tconstructor(props: PageContentResponse) {\n\t\tthis.proceedButtonUrl = props.proceedButtonUrl;\n\t\tthis.cancelButtonUrl = props.cancelButtonUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PaginationParams.html":{"url":"classes/PaginationParams.html","title":"class - PaginationParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PaginationParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/controller/dto/pagination.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n Optional\n skip\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 10\n \n \n \n \n Decorators : \n \n \n @IsInt()@Min(1)@Max(100)@ApiPropertyOptional({description: 'Page limit, defaults to 10.', minimum: 1, maximum: 99})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 0\n \n \n \n \n Decorators : \n \n \n @IsInt()@Min(0)@ApiPropertyOptional({description: 'Number of elements (not pages) to be skipped'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsInt, Max, Min } from 'class-validator';\nimport { ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class PaginationParams {\n\t@IsInt()\n\t@Min(0)\n\t@ApiPropertyOptional({ description: 'Number of elements (not pages) to be skipped' })\n\tskip?: number = 0;\n\n\t@IsInt()\n\t@Min(1)\n\t@Max(100)\n\t@ApiPropertyOptional({ description: 'Page limit, defaults to 10.', minimum: 1, maximum: 99 })\n\tlimit?: number = 10;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PaginationResponse.html":{"url":"classes/PaginationResponse.html","title":"class - PaginationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PaginationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/controller/dto/pagination.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Abstract\n data\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The items for the current page.'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport abstract class PaginationResponse {\n\tconstructor(total: number, skip?: number, limit?: number) {\n\t\tthis.total = total;\n\t\tthis.skip = skip;\n\t\tthis.limit = limit;\n\t}\n\n\t@ApiProperty({ description: 'The items for the current page.' })\n\tabstract data: T;\n\n\t@ApiProperty({ description: 'The total amount of items.', type: 'number' })\n\ttotal: number;\n\n\t@ApiProperty({ description: 'The amount of items skipped from the start.', type: 'number' })\n\tskip?: number;\n\n\t@ApiProperty({ description: 'The page size of the response.', type: 'number' })\n\tlimit?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ParameterTypeNotImplementedLoggableException.html":{"url":"classes/ParameterTypeNotImplementedLoggableException.html","title":"class - ParameterTypeNotImplementedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ParameterTypeNotImplementedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/error/parameter-type-not-implemented.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n NotImplementedException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(parameterType: string)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/parameter-type-not-implemented.loggable-exception.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n parameterType\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/parameter-type-not-implemented.loggable-exception.ts:9\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ParameterTypeNotImplementedLoggableException extends NotImplementedException implements Loggable {\n\tconstructor(private readonly parameterType: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'PARAMETER_TYPE_NOT_IMPLEMENTED',\n\t\t\tmessage: 'Launching an external tool with this parameter type is not implemented.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tparameterType: this.parameterType,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchGroupParams.html":{"url":"classes/PatchGroupParams.html","title":"class - PatchGroupParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchGroupParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/patch-group.params.ts\n \n\n\n \n Description\n \n \n DTO for Patching a the group name of a grid element.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'Title of the Group grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/patch-group.params.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { SanitizeHtml } from '@shared/controller';\nimport { IsString } from 'class-validator';\n\n/**\n * DTO for Patching a the group name of a grid element.\n */\nexport class PatchGroupParams {\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Group grid element',\n\t})\n\ttitle!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchMyAccountParams.html":{"url":"classes/PatchMyAccountParams.html","title":"class - PatchMyAccountParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchMyAccountParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/patch-my-account.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n email\n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n \n Optional\n passwordNew\n \n \n \n \n passwordOld\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsEmail()@IsOptional()@ApiProperty({description: 'The new email address for the current user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The new first name for the current user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The new last name for the current user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n passwordNew\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsString()@IsOptional()@Matches(passwordPattern)@ApiProperty({description: 'The new password for the current user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n passwordOld\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The current user password to authorize the update action.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PrivacyProtect } from '@shared/controller';\nimport { IsEmail, IsOptional, IsString, Matches } from 'class-validator';\nimport { passwordPattern } from './password-pattern';\n\nexport class PatchMyAccountParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The current user password to authorize the update action.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tpasswordOld!: string;\n\n\t@PrivacyProtect()\n\t@IsString()\n\t@IsOptional()\n\t@Matches(passwordPattern)\n\t@ApiProperty({\n\t\tdescription: 'The new password for the current user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tpasswordNew?: string;\n\n\t@IsEmail()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The new email address for the current user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\temail?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The new first name for the current user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tfirstName?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The new last name for the current user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tlastName?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchMyPasswordParams.html":{"url":"classes/PatchMyPasswordParams.html","title":"class - PatchMyPasswordParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchMyPasswordParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/patch-my-password.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n confirmPassword\n \n \n \n \n \n \n password\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n confirmPassword\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsString()@Matches(passwordPattern)@ApiProperty({description: 'The confirmed new user password. Must match the password field.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-password.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsString()@Matches(passwordPattern)@ApiProperty({description: 'The new user password.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-password.params.ts:15\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PrivacyProtect } from '@shared/controller';\nimport { IsString, Matches } from 'class-validator';\nimport { passwordPattern } from './password-pattern';\n\nexport class PatchMyPasswordParams {\n\t@PrivacyProtect()\n\t@IsString()\n\t@Matches(passwordPattern)\n\t@ApiProperty({\n\t\tdescription: 'The new user password.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tpassword!: string;\n\n\t@PrivacyProtect()\n\t@IsString()\n\t@Matches(passwordPattern)\n\t@ApiProperty({\n\t\tdescription: 'The confirmed new user password. Must match the password field.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tconfirmPassword!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchOrderParams.html":{"url":"classes/PatchOrderParams.html","title":"class - PatchOrderParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchOrderParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/patch-order.params.ts\n \n\n\n \n Description\n \n \n DTO for Patching the order of elements within the board.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n elements\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n elements\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsMongoId({each: true})@ApiProperty({description: 'Array ids determining the new order'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/patch-order.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsArray, IsMongoId } from 'class-validator';\n\n/**\n * DTO for Patching the order of elements within the board.\n */\nexport class PatchOrderParams {\n\t@IsArray()\n\t@IsMongoId({ each: true })\n\t@ApiProperty({\n\t\tdescription: 'Array ids determining the new order',\n\t})\n\telements!: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchVisibilityParams.html":{"url":"classes/PatchVisibilityParams.html","title":"class - PatchVisibilityParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchVisibilityParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/patch-visibility.params.ts\n \n\n\n \n Description\n \n \n DTO for Patching the visibility of a board element.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n visibility\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n visibility\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty({description: 'true to publish the element, false to unpublish'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/patch-visibility.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\n/**\n * DTO for Patching the visibility of a board element.\n */\nexport class PatchVisibilityParams {\n\t@IsBoolean()\n\t@ApiProperty({\n\t\tdescription: 'true to publish the element, false to unpublish',\n\t})\n\tvisibility!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PermissionService.html":{"url":"injectables/PermissionService.html","title":"injectable - PermissionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PermissionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/service/permission.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n hasUserAllSchoolPermissions\n \n \n resolvePermissions\n \n \n Private\n resolvePermissionsByRoles\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n hasUserAllSchoolPermissions\n \n \n \n \n \n \n \n \n \n \n \nhasUserAllSchoolPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/service/permission.service.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n resolvePermissions\n \n \n \n \n \n \n \n \n \n \n \nresolvePermissions(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/service/permission.service.ts:17\n \n \n\n\n \n \n Recursively resolve all roles and permissions of a user.\nIMPORTANT: The role collections of the user and nested roles will not be loaded lazily.\nPlease make sure you populate them before calling this method.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n resolvePermissionsByRoles\n \n \n \n \n \n \n \n resolvePermissionsByRoles(inputRoles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/service/permission.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n inputRoles\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string[]\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Role } from '../entity/role.entity';\nimport { User } from '../entity/user.entity';\n\n// TODO: Remove the PermissionService because it duplicates methods from the AuthorizationService.\n// Do not use this service, use the AuthorizationService!\n@Injectable()\nexport class PermissionService {\n\t/**\n\t * Recursively resolve all roles and permissions of a user.\n\t * IMPORTANT: The role collections of the user and nested roles will not be loaded lazily.\n\t * Please make sure you populate them before calling this method.\n\t * @param user\n\t * @deprecated\n\t * @returns\n\t */\n\tresolvePermissions(user: User): string[] {\n\t\tif (!user.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\t\tconst rolesAndPermissions = this.resolvePermissionsByRoles(user.roles.getItems());\n\n\t\treturn rolesAndPermissions;\n\t}\n\n\tprivate resolvePermissionsByRoles(inputRoles: Role[]): string[] {\n\t\tlet permissions: string[] = [];\n\n\t\tfor (let i = 0; i 0) {\n\t\t\t\tconst subPermissions = this.resolvePermissionsByRoles(innerRoles);\n\t\t\t\tpermissions = [...permissions, ...subPermissions];\n\t\t\t}\n\t\t}\n\n\t\tpermissions = [...new Set(permissions)];\n\n\t\treturn permissions;\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\thasUserAllSchoolPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\tif (!Array.isArray(requiredPermissions) || requiredPermissions.length === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst usersPermissions = this.resolvePermissions(user);\n\t\tconst hasPermissions = requiredPermissions.every((p) => usersPermissions.includes(p));\n\t\treturn hasPermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PlainTextMailContent.html":{"url":"interfaces/PlainTextMailContent.html","title":"interface - PlainTextMailContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PlainTextMailContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n \n Extends\n \n \n MailContent\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n htmlContent\n \n \n \n \n plainTextContent\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n htmlContent\n \n \n \n \n \n \n \n \n htmlContent: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n plainTextContent\n \n \n \n \n \n \n \n \n plainTextContent: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewFileParams.html":{"url":"interfaces/PreviewFileParams.html","title":"interface - PreviewFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/interface/interfaces.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n bytesRange\n \n \n \n \n downloadParams\n \n \n \n \n filePath\n \n \n \n \n fileRecord\n \n \n \n \n hash\n \n \n \n \n previewParams\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bytesRange\n \n \n \n \n \n \n \n \n bytesRange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n downloadParams\n \n \n \n \n \n \n \n \n downloadParams: DownloadFileParams\n\n \n \n\n\n \n \n Type : DownloadFileParams\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n filePath\n \n \n \n \n \n \n \n \n filePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n fileRecord\n \n \n \n \n \n \n \n \n fileRecord: FileRecord\n\n \n \n\n\n \n \n Type : FileRecord\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hash\n \n \n \n \n \n \n \n \n hash: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n previewParams\n \n \n \n \n \n \n \n \n previewParams: PreviewParams\n\n \n \n\n\n \n \n Type : PreviewParams\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\nimport type { DownloadFileParams, PreviewParams } from '../controller/dto';\nimport { FileRecord } from '../entity';\n\nexport interface GetFileResponse {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n\tname: string;\n}\n\nexport interface PreviewFileParams {\n\tfileRecord: FileRecord;\n\tdownloadParams: DownloadFileParams;\n\tpreviewParams: PreviewParams;\n\thash: string;\n\tfilePath: string;\n\tbytesRange?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PreviewParams.html":{"url":"classes/PreviewParams.html","title":"class - PreviewParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PreviewParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n forceUpdate\n \n \n \n \n \n Optional\n outputFormat\n \n \n \n \n \n Optional\n width\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n forceUpdate\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()@StringToBoolean()@ApiPropertyOptional({description: 'If true, the preview will be generated again.'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:125\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n outputFormat\n \n \n \n \n \n \n Type : PreviewOutputMimeTypes\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes'})@IsOptional()@IsEnum(PreviewOutputMimeTypes)\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:112\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n width\n \n \n \n \n \n \n Type : PreviewWidth\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({enum: PreviewWidth, enumName: 'PreviewWidth'})@IsOptional()@IsEnum(PreviewWidth)\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:117\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PreviewService.html":{"url":"injectables/PreviewService.html","title":"injectable - PreviewService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PreviewService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/service/preview.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkIfPreviewPossible\n \n \n Public\n Async\n deletePreviews\n \n \n Private\n Async\n generatePreview\n \n \n Private\n getFormat\n \n \n Public\n Async\n getPreview\n \n \n Private\n Async\n getPreviewFile\n \n \n Private\n getPreviewName\n \n \n Private\n resizeAndConvert\n \n \n Private\n Async\n tryGetPreviewOrGenerate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(storageClient: S3ClientAdapter, fileStorageService: FilesStorageService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n storageClient\n \n \n S3ClientAdapter\n \n \n \n No\n \n \n \n \n fileStorageService\n \n \n FilesStorageService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkIfPreviewPossible\n \n \n \n \n \n \n \n checkIfPreviewPossible(fileRecord: FileRecord)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void | UnprocessableEntityException\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n deletePreviews\n \n \n \n \n \n \n \n deletePreviews(fileRecords: FileRecord[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecords\n \n FileRecord[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n generatePreview\n \n \n \n \n \n \n \n generatePreview(params: PreviewFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getFormat\n \n \n \n \n \n \n \n getFormat(mimeType: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:133\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n mimeType\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getPreview\n \n \n \n \n \n \n \n getPreview(fileRecord: FileRecord, downloadParams: DownloadFileParams, previewParams: PreviewParams, bytesRange?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n downloadParams\n \n DownloadFileParams\n \n\n \n No\n \n\n\n \n \n previewParams\n \n PreviewParams\n \n\n \n No\n \n\n\n \n \n bytesRange\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getPreviewFile\n \n \n \n \n \n \n \n getPreviewFile(params: PreviewFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getPreviewName\n \n \n \n \n \n \n \n getPreviewName(fileRecord: FileRecord, outputFormat?: PreviewOutputMimeTypes)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:139\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n outputFormat\n \n PreviewOutputMimeTypes\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n resizeAndConvert\n \n \n \n \n \n \n \n resizeAndConvert(original: GetFileResponse, fileRecord: FileRecord, previewParams: PreviewParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:112\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n original\n \n GetFileResponse\n \n\n \n No\n \n\n\n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n previewParams\n \n PreviewParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PassThrough\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n tryGetPreviewOrGenerate\n \n \n \n \n \n \n \n tryGetPreviewOrGenerate(params: PreviewFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable, NotFoundException, UnprocessableEntityException } from '@nestjs/common';\nimport { S3ClientAdapter } from '@shared/infra/s3-client';\nimport { LegacyLogger } from '@src/core/logger';\nimport { subClass } from 'gm';\nimport { PassThrough } from 'stream';\nimport { DownloadFileParams, PreviewParams } from '../controller/dto';\nimport { FileRecord, PreviewStatus } from '../entity';\nimport { ErrorType } from '../error';\nimport { FILES_STORAGE_S3_CONNECTION } from '../files-storage.config';\nimport { createPreviewDirectoryPath, createPreviewFilePath, createPreviewNameHash } from '../helper';\nimport { GetFileResponse, PreviewFileParams } from '../interface';\nimport { PreviewOutputMimeTypes } from '../interface/preview-output-mime-types.enum';\nimport { FileDtoBuilder, FileResponseBuilder } from '../mapper';\nimport { FilesStorageService } from './files-storage.service';\n\n@Injectable()\nexport class PreviewService {\n\tconstructor(\n\t\t@Inject(FILES_STORAGE_S3_CONNECTION) private readonly storageClient: S3ClientAdapter,\n\t\tprivate readonly fileStorageService: FilesStorageService,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(PreviewService.name);\n\t}\n\n\tpublic async getPreview(\n\t\tfileRecord: FileRecord,\n\t\tdownloadParams: DownloadFileParams,\n\t\tpreviewParams: PreviewParams,\n\t\tbytesRange?: string\n\t): Promise {\n\t\tthis.checkIfPreviewPossible(fileRecord);\n\n\t\tconst hash = createPreviewNameHash(fileRecord.id, previewParams);\n\t\tconst filePath = createPreviewFilePath(fileRecord.getSchoolId(), hash, fileRecord.id);\n\n\t\tlet response: GetFileResponse;\n\n\t\tconst previewFileParams = { fileRecord, downloadParams, previewParams, hash, filePath, bytesRange };\n\n\t\tif (previewParams.forceUpdate) {\n\t\t\tresponse = await this.generatePreview(previewFileParams);\n\t\t} else {\n\t\t\tresponse = await this.tryGetPreviewOrGenerate(previewFileParams);\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tpublic async deletePreviews(fileRecords: FileRecord[]): Promise {\n\t\ttry {\n\t\t\tconst paths = fileRecords.map((fileRecord) =>\n\t\t\t\tcreatePreviewDirectoryPath(fileRecord.getSchoolId(), fileRecord.id)\n\t\t\t);\n\n\t\t\tconst promises = paths.map((path) => this.storageClient.deleteDirectory(path));\n\n\t\t\tawait Promise.all(promises);\n\t\t} catch (error) {\n\t\t\tthis.logger.warn(error);\n\t\t}\n\t}\n\n\tprivate checkIfPreviewPossible(fileRecord: FileRecord): void | UnprocessableEntityException {\n\t\tif (fileRecord.getPreviewStatus() !== PreviewStatus.PREVIEW_POSSIBLE) {\n\t\t\tthis.logger.warn(`could not generate preview for : ${fileRecord.id} ${fileRecord.mimeType}`);\n\t\t\tthrow new UnprocessableEntityException(ErrorType.PREVIEW_NOT_POSSIBLE);\n\t\t}\n\t}\n\n\tprivate async tryGetPreviewOrGenerate(params: PreviewFileParams): Promise {\n\t\tlet file: GetFileResponse;\n\n\t\ttry {\n\t\t\tfile = await this.getPreviewFile(params);\n\t\t} catch (error) {\n\t\t\tif (!(error instanceof NotFoundException)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tfile = await this.generatePreview(params);\n\t\t}\n\n\t\treturn file;\n\t}\n\n\tprivate async getPreviewFile(params: PreviewFileParams): Promise {\n\t\tconst { fileRecord, filePath, bytesRange, previewParams } = params;\n\t\tconst name = this.getPreviewName(fileRecord, previewParams.outputFormat);\n\t\tconst file = await this.storageClient.get(filePath, bytesRange);\n\n\t\tconst response = FileResponseBuilder.build(file, name);\n\n\t\treturn response;\n\t}\n\n\tprivate async generatePreview(params: PreviewFileParams): Promise {\n\t\tconst { fileRecord, downloadParams, previewParams, hash, filePath, bytesRange } = params;\n\n\t\tconst original = await this.fileStorageService.download(fileRecord, downloadParams, bytesRange);\n\t\tconst preview = this.resizeAndConvert(original, fileRecord, previewParams);\n\n\t\tconst format = previewParams.outputFormat ?? fileRecord.mimeType;\n\t\tconst fileDto = FileDtoBuilder.build(hash, preview, format);\n\t\tawait this.storageClient.create(filePath, fileDto);\n\n\t\tconst response = await this.getPreviewFile(params);\n\n\t\treturn response;\n\t}\n\n\tprivate resizeAndConvert(\n\t\toriginal: GetFileResponse,\n\t\tfileRecord: FileRecord,\n\t\tpreviewParams: PreviewParams\n\t): PassThrough {\n\t\tconst mimeType = previewParams.outputFormat ?? fileRecord.mimeType;\n\t\tconst format = this.getFormat(mimeType);\n\t\tconst im = subClass({ imageMagick: true });\n\n\t\tconst preview = im(original.data, fileRecord.name);\n\t\tconst { width } = previewParams;\n\n\t\tif (width) {\n\t\t\tpreview.resize(width, undefined, '>');\n\t\t}\n\n\t\tconst result = preview.stream(format);\n\n\t\treturn result;\n\t}\n\n\tprivate getFormat(mimeType: string): string {\n\t\tconst format = mimeType.split('/')[1];\n\n\t\treturn format;\n\t}\n\n\tprivate getPreviewName(fileRecord: FileRecord, outputFormat?: PreviewOutputMimeTypes): string {\n\t\tif (!outputFormat) {\n\t\t\treturn fileRecord.name;\n\t\t}\n\n\t\tconst fileNameWithoutExtension = fileRecord.name.split('.')[0];\n\t\tconst format = this.getFormat(outputFormat);\n\t\tconst name = `${fileNameWithoutExtension}.${format}`;\n\n\t\treturn name;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PrometheusMetricsConfig.html":{"url":"classes/PrometheusMetricsConfig.html","title":"class - PrometheusMetricsConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PrometheusMetricsConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/metrics/prometheus/config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n _collectDefaultMetrics\n \n \n Private\n Readonly\n _collectMetricsRouteMetrics\n \n \n Private\n Static\n _instance\n \n \n Private\n Readonly\n _isEnabled\n \n \n Private\n Readonly\n _port\n \n \n Private\n Readonly\n _route\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n reload\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n isEnabled\n \n \n route\n \n \n port\n \n \n collectDefaultMetrics\n \n \n collectMetricsRouteMetrics\n \n \n instance\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \n Private\n constructor()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:34\n \n \n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n _collectDefaultMetrics\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n _collectMetricsRouteMetrics\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Static\n _instance\n \n \n \n \n \n \n Type : PrometheusMetricsConfig\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n _isEnabled\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n _port\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n _route\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:12\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n reload\n \n \n \n \n \n \n \n reload()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:52\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n isEnabled\n \n \n\n \n \n getisEnabled()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:8\n \n \n\n \n \n \n \n \n \n \n route\n \n \n\n \n \n getroute()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:14\n \n \n\n \n \n \n \n \n \n \n port\n \n \n\n \n \n getport()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:20\n \n \n\n \n \n \n \n \n \n \n collectDefaultMetrics\n \n \n\n \n \n getcollectDefaultMetrics()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:26\n \n \n\n \n \n \n \n \n \n \n collectMetricsRouteMetrics\n \n \n\n \n \n getcollectMetricsRouteMetrics()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:32\n \n \n\n \n \n \n \n \n \n \n instance\n \n \n\n \n \n getinstance()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:44\n \n \n\n \n \n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\n\nexport class PrometheusMetricsConfig {\n\tprivate static _instance: PrometheusMetricsConfig;\n\n\tprivate readonly _isEnabled: boolean;\n\n\tget isEnabled(): boolean {\n\t\treturn this._isEnabled;\n\t}\n\n\tprivate readonly _route: string;\n\n\tget route(): string {\n\t\treturn this._route;\n\t}\n\n\tprivate readonly _port: number;\n\n\tget port(): number {\n\t\treturn this._port;\n\t}\n\n\tprivate readonly _collectDefaultMetrics: boolean;\n\n\tget collectDefaultMetrics(): boolean {\n\t\treturn this._collectDefaultMetrics;\n\t}\n\n\tprivate readonly _collectMetricsRouteMetrics: boolean;\n\n\tget collectMetricsRouteMetrics(): boolean {\n\t\treturn this._collectMetricsRouteMetrics;\n\t}\n\n\tprivate constructor() {\n\t\tthis._isEnabled = Configuration.get('FEATURE_PROMETHEUS_METRICS_ENABLED') as boolean;\n\t\tthis._route = Configuration.get('PROMETHEUS_METRICS_ROUTE') as string;\n\t\tthis._port = Configuration.get('PROMETHEUS_METRICS_PORT') as number;\n\t\tthis._collectDefaultMetrics = Configuration.get('PROMETHEUS_METRICS_COLLECT_DEFAULT_METRICS') as boolean;\n\t\tthis._collectMetricsRouteMetrics = Configuration.get('PROMETHEUS_METRICS_COLLECT_METRICS_ROUTE_METRICS') as boolean;\n\t}\n\n\tpublic static get instance() {\n\t\tif (this._instance === undefined) {\n\t\t\tthis._instance = new this();\n\t\t}\n\n\t\treturn this._instance;\n\t}\n\n\tpublic static reload() {\n\t\tthis._instance = new this();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PrometheusMetricsSetupStateLoggable.html":{"url":"classes/PrometheusMetricsSetupStateLoggable.html","title":"class - PrometheusMetricsSetupStateLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PrometheusMetricsSetupStateLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/apps/helpers/prometheus-metrics.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(state: PrometheusMetricsSetupState)\n \n \n \n \n Defined in apps/server/src/apps/helpers/prometheus-metrics.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n state\n \n \n PrometheusMetricsSetupState\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/apps/helpers/prometheus-metrics.ts:22\n \n \n\n\n \n \n\n \n Returns : LogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Express } from 'express';\n\nimport {\n\tPrometheusMetricsConfig,\n\tcreateAPIResponseTimeMetricMiddleware,\n\tcreatePrometheusMetricsApp,\n} from '@shared/infra/metrics';\nimport { LogMessage, Loggable, Logger } from '@src/core/logger';\nimport { AppStartLoggable } from './app-start-loggable';\n\nexport const enum PrometheusMetricsSetupState {\n\tFEATURE_DISABLED_MIDDLEWARES_WILL_NOT_BE_CREATED = 'Prometheus metrics feature is disabled - no metrics middlewares will be added to the app',\n\tAPI_RESPONSE_TIME_METRIC_MIDDLEWARE_SUCCESSFULLY_ADDED = 'API response time metric middleware successfully added to the app',\n\tFEATURE_DISABLED_APP_WILL_NOT_BE_CREATED = 'Prometheus metrics feature is disabled - Prometheus metrics app will not be created',\n\tCOLLECTING_DEFAULT_METRICS_DISABLED = 'Collecting default metrics is disabled - only the custom metrics will be collected',\n\tCOLLECTING_METRICS_ROUTE_METRICS_DISABLED = 'Collecting metrics route metrics is disabled - no metrics route calls will be added to the metrics',\n}\n\nexport class PrometheusMetricsSetupStateLoggable implements Loggable {\n\tconstructor(private readonly state: PrometheusMetricsSetupState) {}\n\n\tgetLogMessage(): LogMessage {\n\t\treturn {\n\t\t\tmessage: 'Setting up Prometheus metrics...',\n\t\t\tdata: {\n\t\t\t\tstate: this.state,\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport const addPrometheusMetricsMiddlewaresIfEnabled = (logger: Logger, app: Express) => {\n\tif (!PrometheusMetricsConfig.instance.isEnabled) {\n\t\tlogger.debug(\n\t\t\tnew PrometheusMetricsSetupStateLoggable(\n\t\t\t\tPrometheusMetricsSetupState.FEATURE_DISABLED_MIDDLEWARES_WILL_NOT_BE_CREATED\n\t\t\t)\n\t\t);\n\n\t\treturn;\n\t}\n\n\tapp.use(createAPIResponseTimeMetricMiddleware());\n\n\tlogger.debug(\n\t\tnew PrometheusMetricsSetupStateLoggable(\n\t\t\tPrometheusMetricsSetupState.API_RESPONSE_TIME_METRIC_MIDDLEWARE_SUCCESSFULLY_ADDED\n\t\t)\n\t);\n};\n\nexport const createAndStartPrometheusMetricsAppIfEnabled = (logger: Logger) => {\n\tif (!PrometheusMetricsConfig.instance.isEnabled) {\n\t\tlogger.debug(\n\t\t\tnew PrometheusMetricsSetupStateLoggable(PrometheusMetricsSetupState.FEATURE_DISABLED_APP_WILL_NOT_BE_CREATED)\n\t\t);\n\n\t\treturn;\n\t}\n\n\tconst { route, collectDefaultMetrics, collectMetricsRouteMetrics } = PrometheusMetricsConfig.instance;\n\n\tif (!collectDefaultMetrics) {\n\t\tlogger.debug(\n\t\t\tnew PrometheusMetricsSetupStateLoggable(PrometheusMetricsSetupState.COLLECTING_DEFAULT_METRICS_DISABLED)\n\t\t);\n\t}\n\n\tif (!collectMetricsRouteMetrics) {\n\t\tlogger.debug(\n\t\t\tnew PrometheusMetricsSetupStateLoggable(PrometheusMetricsSetupState.COLLECTING_METRICS_ROUTE_METRICS_DISABLED)\n\t\t);\n\t}\n\n\tconst prometheusMetricsAppPort = PrometheusMetricsConfig.instance.port;\n\n\tconst prometheusMetricsApp = createPrometheusMetricsApp(route, collectDefaultMetrics, collectMetricsRouteMetrics);\n\n\tprometheusMetricsApp.listen(prometheusMetricsAppPort, () => {\n\t\tlogger.info(\n\t\t\tnew AppStartLoggable({\n\t\t\t\tappName: 'Prometheus metrics server app',\n\t\t\t\tport: prometheusMetricsAppPort,\n\t\t\t\tmountsDescription: `${route} --> Prometheus metrics`,\n\t\t\t})\n\t\t);\n\t});\n};\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PropertyData.html":{"url":"classes/PropertyData.html","title":"class - PropertyData","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PropertyData\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/types/property-data.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n location\n \n \n name\n \n \n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: PropertyData)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/property-data.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n PropertyData\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n location\n \n \n \n \n \n \n Type : PropertyLocation\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/property-data.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/property-data.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/property-data.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PropertyLocation } from './property-location';\n\nexport class PropertyData {\n\tname: string;\n\n\tvalue: string;\n\n\tlocation?: PropertyLocation;\n\n\tconstructor(props: PropertyData) {\n\t\tthis.name = props.name;\n\t\tthis.value = props.value;\n\t\tthis.location = props.location;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderConsentResponse.html":{"url":"interfaces/ProviderConsentResponse.html","title":"interface - ProviderConsentResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderConsentResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/consent.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n acr\n \n \n \n Optional\n \n amr\n \n \n \n \n challenge\n \n \n \n Optional\n \n client\n \n \n \n Optional\n \n context\n \n \n \n Optional\n \n login_challenge\n \n \n \n Optional\n \n login_session_id\n \n \n \n Optional\n \n oidc_context\n \n \n \n Optional\n \n request_url\n \n \n \n Optional\n \n requested_access_token_audience\n \n \n \n Optional\n \n requested_scope\n \n \n \n Optional\n \n skip\n \n \n \n Optional\n \n subject\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n acr\n \n \n \n \n \n \n \n \n acr: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n amr\n \n \n \n \n \n \n \n \n amr: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n challenge\n \n \n \n \n \n \n \n \n challenge: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n \n \n client: ProviderOauthClient\n\n \n \n\n\n \n \n Type : ProviderOauthClient\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n context: object\n\n \n \n\n\n \n \n Type : object\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n login_challenge\n \n \n \n \n \n \n \n \n login_challenge: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n login_session_id\n \n \n \n \n \n \n \n \n login_session_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n oidc_context\n \n \n \n \n \n \n \n \n oidc_context: ProviderOidcContext\n\n \n \n\n\n \n \n Type : ProviderOidcContext\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n request_url\n \n \n \n \n \n \n \n \n request_url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n requested_access_token_audience\n \n \n \n \n \n \n \n \n requested_access_token_audience: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n requested_scope\n \n \n \n \n \n \n \n \n requested_scope: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n \n \n skip: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n \n \n subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ProviderOauthClient } from '../interface/oauth-client.interface';\nimport { ProviderOidcContext } from '../interface/oidc-context.interface';\n\nexport interface ProviderConsentResponse {\n\tacr?: string;\n\n\tamr?: string[];\n\n\tchallenge: string;\n\n\tclient?: ProviderOauthClient;\n\n\tcontext?: object;\n\n\tlogin_challenge?: string;\n\n\tlogin_session_id?: string;\n\n\toidc_context?: ProviderOidcContext;\n\n\trequest_url?: string;\n\n\trequested_access_token_audience?: string[];\n\n\trequested_scope?: string[];\n\n\tskip?: boolean;\n\n\tsubject?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderConsentSessionResponse.html":{"url":"interfaces/ProviderConsentSessionResponse.html","title":"interface - ProviderConsentSessionResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderConsentSessionResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/consent-session.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n consent_request\n \n \n \n Optional\n \n grant_access_token_audience\n \n \n \n Optional\n \n grant_scope\n \n \n \n Optional\n \n handled_at\n \n \n \n Optional\n \n remember\n \n \n \n Optional\n \n remember_for\n \n \n \n Optional\n \n session\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n consent_request\n \n \n \n \n \n \n \n \n consent_request: ProviderConsentResponse\n\n \n \n\n\n \n \n Type : ProviderConsentResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n grant_access_token_audience\n \n \n \n \n \n \n \n \n grant_access_token_audience: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n grant_scope\n \n \n \n \n \n \n \n \n grant_scope: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n handled_at\n \n \n \n \n \n \n \n \n handled_at: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember\n \n \n \n \n \n \n \n \n remember: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember_for\n \n \n \n \n \n \n \n \n remember_for: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n session\n \n \n \n \n \n \n \n \n session: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ProviderConsentResponse } from './consent.response';\n\nexport interface ProviderConsentSessionResponse {\n\tconsent_request: ProviderConsentResponse;\n\n\tgrant_access_token_audience?: string[];\n\n\tgrant_scope?: string[];\n\n\thandled_at?: string;\n\n\tremember?: boolean;\n\n\tremember_for?: number;\n\n\tsession?: {\n\t\taccess_token: string;\n\n\t\tid_token: string;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderLoginResponse.html":{"url":"interfaces/ProviderLoginResponse.html","title":"interface - ProviderLoginResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderLoginResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/login.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n challenge\n \n \n \n \n client\n \n \n \n Optional\n \n oidc_context\n \n \n \n \n request_url\n \n \n \n \n requested_access_token_audience\n \n \n \n \n requested_scope\n \n \n \n Optional\n \n session_id\n \n \n \n \n skip\n \n \n \n \n subject\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n challenge\n \n \n \n \n \n \n \n \n challenge: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n \n \n client: ProviderOauthClient\n\n \n \n\n\n \n \n Type : ProviderOauthClient\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n oidc_context\n \n \n \n \n \n \n \n \n oidc_context: ProviderOidcContext\n\n \n \n\n\n \n \n Type : ProviderOidcContext\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n request_url\n \n \n \n \n \n \n \n \n request_url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n requested_access_token_audience\n \n \n \n \n \n \n \n \n requested_access_token_audience: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n requested_scope\n \n \n \n \n \n \n \n \n requested_scope: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n session_id\n \n \n \n \n \n \n \n \n session_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n \n \n skip: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n \n \n subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ProviderOauthClient } from '../interface/oauth-client.interface';\nimport { ProviderOidcContext } from '../interface/oidc-context.interface';\n\nexport interface ProviderLoginResponse {\n\tchallenge: string;\n\n\tclient: ProviderOauthClient;\n\n\toidc_context?: ProviderOidcContext;\n\n\trequest_url: string;\n\n\trequested_access_token_audience: string[];\n\n\trequested_scope: string[];\n\n\tsession_id?: string;\n\n\tskip: boolean;\n\n\tsubject: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderOidcContext.html":{"url":"interfaces/ProviderOidcContext.html","title":"interface - ProviderOidcContext","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderOidcContext\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/interface/oidc-context.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n acr_values\n \n \n \n Optional\n \n display\n \n \n \n Optional\n \n id_token_hint_claims\n \n \n \n Optional\n \n login_hint\n \n \n \n Optional\n \n ui_locales\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n acr_values\n \n \n \n \n \n \n \n \n acr_values: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n display\n \n \n \n \n \n \n \n \n display: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id_token_hint_claims\n \n \n \n \n \n \n \n \n id_token_hint_claims: object\n\n \n \n\n\n \n \n Type : object\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n login_hint\n \n \n \n \n \n \n \n \n login_hint: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ui_locales\n \n \n \n \n \n \n \n \n ui_locales: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface ProviderOidcContext {\n\tacr_values?: string[];\n\n\tdisplay?: string;\n\n\tid_token_hint_claims?: object;\n\n\tlogin_hint?: string;\n\n\tui_locales?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderRedirectResponse.html":{"url":"interfaces/ProviderRedirectResponse.html","title":"interface - ProviderRedirectResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderRedirectResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/redirect.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n redirect_to\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n redirect_to\n \n \n \n \n \n \n \n \n redirect_to: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface ProviderRedirectResponse {\n\tredirect_to: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ProvisioningDto.html":{"url":"classes/ProvisioningDto.html","title":"class - ProvisioningDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ProvisioningDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/provisioning.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalUserId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(provisioningDto: ProvisioningDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n provisioningDto\n \n \n ProvisioningDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalUserId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class ProvisioningDto {\n\texternalUserId: string;\n\n\tconstructor(provisioningDto: ProvisioningDto) {\n\t\tthis.externalUserId = provisioningDto.externalUserId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ProvisioningModule.html":{"url":"modules/ProvisioningModule.html","title":"module - ProvisioningModule","body":"\n \n\n\n\n\n Modules\n ProvisioningModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ProvisioningModule\n\n\n\ncluster_ProvisioningModule_imports\n\n\n\ncluster_ProvisioningModule_exports\n\n\n\ncluster_ProvisioningModule_providers\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nProvisioningModule -->\n\nAccountModule->ProvisioningModule\n\n\n\n\n\nGroupModule\n\nGroupModule\n\nProvisioningModule -->\n\nGroupModule->ProvisioningModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nProvisioningModule -->\n\nLegacySchoolModule->ProvisioningModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nProvisioningModule -->\n\nLoggerModule->ProvisioningModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nProvisioningModule -->\n\nRoleModule->ProvisioningModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nProvisioningModule -->\n\nSystemModule->ProvisioningModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nProvisioningModule -->\n\nUserModule->ProvisioningModule\n\n\n\n\n\nProvisioningService \n\nProvisioningService \n\nProvisioningService -->\n\nProvisioningModule->ProvisioningService \n\n\n\n\n\nIservProvisioningStrategy\n\nIservProvisioningStrategy\n\nProvisioningModule -->\n\nIservProvisioningStrategy->ProvisioningModule\n\n\n\n\n\nOidcMockProvisioningStrategy\n\nOidcMockProvisioningStrategy\n\nProvisioningModule -->\n\nOidcMockProvisioningStrategy->ProvisioningModule\n\n\n\n\n\nOidcProvisioningService\n\nOidcProvisioningService\n\nProvisioningModule -->\n\nOidcProvisioningService->ProvisioningModule\n\n\n\n\n\nProvisioningService\n\nProvisioningService\n\nProvisioningModule -->\n\nProvisioningService->ProvisioningModule\n\n\n\n\n\nSanisProvisioningStrategy\n\nSanisProvisioningStrategy\n\nProvisioningModule -->\n\nSanisProvisioningStrategy->ProvisioningModule\n\n\n\n\n\nSanisResponseMapper\n\nSanisResponseMapper\n\nProvisioningModule -->\n\nSanisResponseMapper->ProvisioningModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/provisioning/provisioning.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n IservProvisioningStrategy\n \n \n OidcMockProvisioningStrategy\n \n \n OidcProvisioningService\n \n \n ProvisioningService\n \n \n SanisProvisioningStrategy\n \n \n SanisResponseMapper\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n GroupModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n RoleModule\n \n \n SystemModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n ProvisioningService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@src/modules/account/account.module';\nimport { RoleModule } from '@src/modules/role';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { SystemModule } from '@src/modules/system/system.module';\nimport { UserModule } from '@src/modules/user';\nimport { GroupModule } from '@src/modules/group';\nimport { ProvisioningService } from './service/provisioning.service';\nimport { IservProvisioningStrategy, OidcMockProvisioningStrategy, SanisProvisioningStrategy } from './strategy';\nimport { OidcProvisioningService } from './strategy/oidc/service/oidc-provisioning.service';\nimport { SanisResponseMapper } from './strategy/sanis/sanis-response.mapper';\n\n@Module({\n\timports: [\n\t\tAccountModule,\n\t\tLegacySchoolModule,\n\t\tUserModule,\n\t\tRoleModule,\n\t\tSystemModule,\n\t\tHttpModule,\n\t\tLoggerModule,\n\t\tGroupModule,\n\t],\n\tproviders: [\n\t\tProvisioningService,\n\t\tSanisResponseMapper,\n\t\tOidcProvisioningService,\n\t\tSanisProvisioningStrategy,\n\t\tIservProvisioningStrategy,\n\t\tOidcMockProvisioningStrategy,\n\t],\n\texports: [ProvisioningService],\n})\nexport class ProvisioningModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ProvisioningService.html":{"url":"injectables/ProvisioningService.html","title":"injectable - ProvisioningService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ProvisioningService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/service/provisioning.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n strategies\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n determineInput\n \n \n Async\n getData\n \n \n Private\n getProvisioningStrategy\n \n \n Async\n provisionData\n \n \n Protected\n registerStrategy\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemService: SystemService, sanisStrategy: SanisProvisioningStrategy, iservStrategy: IservProvisioningStrategy, oidcMockStrategy: OidcMockProvisioningStrategy)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n sanisStrategy\n \n \n SanisProvisioningStrategy\n \n \n \n No\n \n \n \n \n iservStrategy\n \n \n IservProvisioningStrategy\n \n \n \n No\n \n \n \n \n oidcMockStrategy\n \n \n OidcMockProvisioningStrategy\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n determineInput\n \n \n \n \n \n \n \n determineInput(systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getData\n \n \n \n \n \n \n \n getData(systemId: string, idToken: string, accessToken: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n idToken\n \n string\n \n\n \n No\n \n\n\n \n \n accessToken\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getProvisioningStrategy\n \n \n \n \n \n \n \n getProvisioningStrategy(systemStrategy: SystemProvisioningStrategy)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemStrategy\n \n SystemProvisioningStrategy\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ProvisioningStrategy\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionData\n \n \n \n \n \n \n \n provisionData(oauthData: OauthDataDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthData\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n registerStrategy\n \n \n \n \n \n \n \n registerStrategy(strategy: ProvisioningStrategy)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n strategy\n \n ProvisioningStrategy\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n strategies\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:16\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { SystemService } from '@src/modules/system';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { OauthDataDto, OauthDataStrategyInputDto, ProvisioningDto, ProvisioningSystemDto } from '../dto';\nimport { ProvisioningSystemInputMapper } from '../mapper/provisioning-system-input.mapper';\nimport {\n\tIservProvisioningStrategy,\n\tOidcMockProvisioningStrategy,\n\tProvisioningStrategy,\n\tSanisProvisioningStrategy,\n} from '../strategy';\n\n@Injectable()\nexport class ProvisioningService {\n\tstrategies: Map = new Map();\n\n\tconstructor(\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly sanisStrategy: SanisProvisioningStrategy,\n\t\tprivate readonly iservStrategy: IservProvisioningStrategy,\n\t\tprivate readonly oidcMockStrategy: OidcMockProvisioningStrategy\n\t) {\n\t\tthis.registerStrategy(sanisStrategy);\n\t\tthis.registerStrategy(iservStrategy);\n\t\tthis.registerStrategy(oidcMockStrategy);\n\t}\n\n\tprotected registerStrategy(strategy: ProvisioningStrategy) {\n\t\tthis.strategies.set(strategy.getType(), strategy);\n\t}\n\n\tasync getData(systemId: string, idToken: string, accessToken: string): Promise {\n\t\tconst system: ProvisioningSystemDto = await this.determineInput(systemId);\n\t\tconst input: OauthDataStrategyInputDto = new OauthDataStrategyInputDto({\n\t\t\taccessToken,\n\t\t\tidToken,\n\t\t\tsystem,\n\t\t});\n\n\t\tconst strategy: ProvisioningStrategy = this.getProvisioningStrategy(system.provisioningStrategy);\n\n\t\tconst data: OauthDataDto = await strategy.getData(input);\n\t\treturn data;\n\t}\n\n\tprivate async determineInput(systemId: string): Promise {\n\t\tconst systemDto: SystemDto = await this.systemService.findById(systemId);\n\t\tconst inputDto: ProvisioningSystemDto = ProvisioningSystemInputMapper.mapToInternal(systemDto);\n\t\treturn inputDto;\n\t}\n\n\tasync provisionData(oauthData: OauthDataDto): Promise {\n\t\tconst strategy: ProvisioningStrategy = this.getProvisioningStrategy(oauthData.system.provisioningStrategy);\n\t\tconst provisioningDto: Promise = strategy.apply(oauthData);\n\t\treturn provisioningDto;\n\t}\n\n\tprivate getProvisioningStrategy(systemStrategy: SystemProvisioningStrategy): ProvisioningStrategy {\n\t\tconst strategy: ProvisioningStrategy | undefined = this.strategies.get(systemStrategy);\n\n\t\tif (!strategy) {\n\t\t\tthrow new InternalServerErrorException('Provisioning Strategy is not defined.');\n\t\t}\n\n\t\treturn strategy;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ProvisioningStrategy.html":{"url":"classes/ProvisioningStrategy.html","title":"class - ProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/base.strategy.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n apply\n \n \n Abstract\n getData\n \n \n Abstract\n getType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/base.strategy.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/base.strategy.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getType\n \n \n \n \n \n \n \n getType()\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/base.strategy.ts:5\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { OauthDataDto, OauthDataStrategyInputDto, ProvisioningDto } from '../dto';\n\nexport abstract class ProvisioningStrategy {\n\tabstract getType(): SystemProvisioningStrategy;\n\n\tabstract getData(input: OauthDataStrategyInputDto): Promise;\n\n\tabstract apply(data: OauthDataDto): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ProvisioningSystemDto.html":{"url":"classes/ProvisioningSystemDto.html","title":"class - ProvisioningSystemDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ProvisioningSystemDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n provisioningStrategy\n \n \n Optional\n provisioningUrl\n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ProvisioningSystemDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ProvisioningSystemDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n provisioningStrategy\n \n \n \n \n \n \n Type : SystemProvisioningStrategy\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n provisioningUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\n\nexport class ProvisioningSystemDto {\n\tsystemId: EntityId;\n\n\tprovisioningStrategy: SystemProvisioningStrategy;\n\n\tprovisioningUrl?: string;\n\n\tconstructor(props: ProvisioningSystemDto) {\n\t\tthis.systemId = props.systemId;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ProvisioningSystemInputMapper.html":{"url":"classes/ProvisioningSystemInputMapper.html","title":"class - ProvisioningSystemInputMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ProvisioningSystemInputMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/mapper/provisioning-system-input.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToInternal\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToInternal\n \n \n \n \n \n \n \n mapToInternal(dto: SystemDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/mapper/provisioning-system-input.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n SystemDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { ProvisioningSystemDto } from '../dto';\n\nexport class ProvisioningSystemInputMapper {\n\tstatic mapToInternal(dto: SystemDto) {\n\t\treturn new ProvisioningSystemDto({\n\t\t\tsystemId: dto.id || '',\n\t\t\tprovisioningStrategy: dto.provisioningStrategy || SystemProvisioningStrategy.UNDEFINED,\n\t\t\tprovisioningUrl: dto.provisioningUrl || undefined,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Pseudonym.html":{"url":"classes/Pseudonym.html","title":"class - Pseudonym","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Pseudonym\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/pseudonym.do.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n pseudonym\n \n \n toolId\n \n \n userId\n \n \n createdAt\n \n \n updatedAt\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n pseudonym\n \n \n\n \n \n getpseudonym()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:13\n \n \n\n \n \n \n \n \n \n \n toolId\n \n \n\n \n \n gettoolId()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:17\n \n \n\n \n \n \n \n \n \n \n userId\n \n \n\n \n \n getuserId()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:21\n \n \n\n \n \n \n \n \n \n \n createdAt\n \n \n\n \n \n getcreatedAt()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:25\n \n \n\n \n \n \n \n \n \n \n updatedAt\n \n \n\n \n \n getupdatedAt()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:29\n \n \n\n \n \n\n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { AuthorizableObject, DomainObject } from '../domain-object';\n\nexport interface PseudonymProps extends AuthorizableObject {\n\tpseudonym: string;\n\ttoolId: EntityId;\n\tuserId: EntityId;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport class Pseudonym extends DomainObject {\n\tget pseudonym(): string {\n\t\treturn this.props.pseudonym;\n\t}\n\n\tget toolId(): EntityId {\n\t\treturn this.props.toolId;\n\t}\n\n\tget userId(): EntityId {\n\t\treturn this.props.userId;\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/PseudonymEntity.html":{"url":"entities/PseudonymEntity.html","title":"entity - PseudonymEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n PseudonymEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n pseudonym\n \n \n \n toolId\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Unique()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:24\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\n\nexport interface PseudonymEntityProps {\n\tid?: EntityId;\n\tpseudonym: string;\n\ttoolId: ObjectId;\n\tuserId: ObjectId;\n}\n\n@Entity({ tableName: 'pseudonyms' })\n@Unique({ properties: ['userId', 'toolId'] })\nexport class PseudonymEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tpseudonym: string;\n\n\t@Property()\n\ttoolId: ObjectId;\n\n\t@Property()\n\tuserId: ObjectId;\n\n\tconstructor(props: PseudonymEntityProps) {\n\t\tsuper();\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.pseudonym = props.pseudonym;\n\t\tthis.toolId = props.toolId;\n\t\tthis.userId = props.userId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PseudonymEntityProps.html":{"url":"interfaces/PseudonymEntityProps.html","title":"interface - PseudonymEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PseudonymEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n \n pseudonym\n \n \n \n \n toolId\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n \n \n pseudonym: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n \n \n toolId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\n\nexport interface PseudonymEntityProps {\n\tid?: EntityId;\n\tpseudonym: string;\n\ttoolId: ObjectId;\n\tuserId: ObjectId;\n}\n\n@Entity({ tableName: 'pseudonyms' })\n@Unique({ properties: ['userId', 'toolId'] })\nexport class PseudonymEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tpseudonym: string;\n\n\t@Property()\n\ttoolId: ObjectId;\n\n\t@Property()\n\tuserId: ObjectId;\n\n\tconstructor(props: PseudonymEntityProps) {\n\t\tsuper();\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.pseudonym = props.pseudonym;\n\t\tthis.toolId = props.toolId;\n\t\tthis.userId = props.userId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/PseudonymModule.html":{"url":"modules/PseudonymModule.html","title":"module - PseudonymModule","body":"\n \n\n\n\n\n Modules\n PseudonymModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_PseudonymModule\n\n\n\ncluster_PseudonymModule_providers\n\n\n\ncluster_PseudonymModule_exports\n\n\n\n\nPseudonymService \n\nPseudonymService \n\n\n\nPseudonymModule\n\nPseudonymModule\n\nPseudonymService -->\n\nPseudonymModule->PseudonymService \n\n\n\n\n\nExternalToolPseudonymRepo\n\nExternalToolPseudonymRepo\n\nPseudonymModule -->\n\nExternalToolPseudonymRepo->PseudonymModule\n\n\n\n\n\nLegacyLogger\n\nLegacyLogger\n\nPseudonymModule -->\n\nLegacyLogger->PseudonymModule\n\n\n\n\n\nPseudonymService\n\nPseudonymService\n\nPseudonymModule -->\n\nPseudonymService->PseudonymModule\n\n\n\n\n\nPseudonymsRepo\n\nPseudonymsRepo\n\nPseudonymModule -->\n\nPseudonymsRepo->PseudonymModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/pseudonym/pseudonym.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ExternalToolPseudonymRepo\n \n \n LegacyLogger\n \n \n PseudonymService\n \n \n PseudonymsRepo\n \n \n \n \n Exports\n \n \n PseudonymService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ExternalToolPseudonymRepo, PseudonymsRepo } from './repo';\nimport { PseudonymService } from './service';\n\n@Module({\n\tproviders: [PseudonymService, PseudonymsRepo, ExternalToolPseudonymRepo, LegacyLogger],\n\texports: [PseudonymService],\n})\nexport class PseudonymModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PseudonymProps.html":{"url":"interfaces/PseudonymProps.html","title":"interface - PseudonymProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PseudonymProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/pseudonym.do.ts\n \n\n\n\n \n Extends\n \n \n AuthorizableObject\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n pseudonym\n \n \n \n \n toolId\n \n \n \n \n updatedAt\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n \n \n pseudonym: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n \n \n toolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { AuthorizableObject, DomainObject } from '../domain-object';\n\nexport interface PseudonymProps extends AuthorizableObject {\n\tpseudonym: string;\n\ttoolId: EntityId;\n\tuserId: EntityId;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport class Pseudonym extends DomainObject {\n\tget pseudonym(): string {\n\t\treturn this.props.pseudonym;\n\t}\n\n\tget toolId(): EntityId {\n\t\treturn this.props.toolId;\n\t}\n\n\tget userId(): EntityId {\n\t\treturn this.props.userId;\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PseudonymService.html":{"url":"injectables/PseudonymService.html","title":"injectable - PseudonymService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PseudonymService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/service/pseudonym.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteByUserId\n \n \n Private\n Async\n deleteExternalToolPseudonymsByUserId\n \n \n Private\n Async\n deletePseudonymsByUserId\n \n \n Public\n Async\n findByUserAndTool\n \n \n Public\n Async\n findByUserId\n \n \n Private\n Async\n findExternalToolPseudonymsByUserId\n \n \n Public\n Async\n findOrCreatePseudonym\n \n \n Private\n Async\n findPseudonymsByUserId\n \n \n Private\n getRepository\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(pseudonymRepo: PseudonymsRepo, externalToolPseudonymRepo: ExternalToolPseudonymRepo)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n pseudonymRepo\n \n \n PseudonymsRepo\n \n \n \n No\n \n \n \n \n externalToolPseudonymRepo\n \n \n ExternalToolPseudonymRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteExternalToolPseudonymsByUserId\n \n \n \n \n \n \n \n deleteExternalToolPseudonymsByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deletePseudonymsByUserId\n \n \n \n \n \n \n \n deletePseudonymsByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUserAndTool\n \n \n \n \n \n \n \n findByUserAndTool(user: UserDO, tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findExternalToolPseudonymsByUserId\n \n \n \n \n \n \n \n findExternalToolPseudonymsByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findOrCreatePseudonym\n \n \n \n \n \n \n \n findOrCreatePseudonym(user: UserDO, tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findPseudonymsByUserId\n \n \n \n \n \n \n \n findPseudonymsByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getRepository\n \n \n \n \n \n \n \n getRepository(tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PseudonymsRepo | ExternalToolPseudonymRepo\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { LtiToolDO, Pseudonym, UserDO } from '@shared/domain';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { v4 as uuidv4 } from 'uuid';\nimport { ExternalToolPseudonymRepo, PseudonymsRepo } from '../repo';\n\n@Injectable()\nexport class PseudonymService {\n\tconstructor(\n\t\tprivate readonly pseudonymRepo: PseudonymsRepo,\n\t\tprivate readonly externalToolPseudonymRepo: ExternalToolPseudonymRepo\n\t) {}\n\n\tpublic async findByUserAndTool(user: UserDO, tool: ExternalTool | LtiToolDO): Promise {\n\t\tif (!user.id || !tool.id) {\n\t\t\tthrow new InternalServerErrorException('User or tool id is missing');\n\t\t}\n\n\t\tconst pseudonymPromise: Promise = this.getRepository(tool).findByUserIdAndToolIdOrFail(user.id, tool.id);\n\n\t\treturn pseudonymPromise;\n\t}\n\n\tpublic async findByUserId(userId: string): Promise {\n\t\tif (!userId) {\n\t\t\tthrow new InternalServerErrorException('User id is missing');\n\t\t}\n\n\t\tlet [pseudonyms, externalToolPseudonyms] = await Promise.all([\n\t\t\tthis.findPseudonymsByUserId(userId),\n\t\t\tthis.findExternalToolPseudonymsByUserId(userId),\n\t\t]);\n\n\t\tif (pseudonyms === undefined) {\n\t\t\tpseudonyms = [];\n\t\t}\n\n\t\tif (externalToolPseudonyms === undefined) {\n\t\t\texternalToolPseudonyms = [];\n\t\t}\n\n\t\tconst allPseudonyms = [...pseudonyms, ...externalToolPseudonyms];\n\n\t\treturn allPseudonyms;\n\t}\n\n\tpublic async findOrCreatePseudonym(user: UserDO, tool: ExternalTool | LtiToolDO): Promise {\n\t\tif (!user.id || !tool.id) {\n\t\t\tthrow new InternalServerErrorException('User or tool id is missing');\n\t\t}\n\n\t\tconst repository: PseudonymsRepo | ExternalToolPseudonymRepo = this.getRepository(tool);\n\n\t\tlet pseudonym: Pseudonym | null = await repository.findByUserIdAndToolId(user.id, tool.id);\n\t\tif (!pseudonym) {\n\t\t\tpseudonym = new Pseudonym({\n\t\t\t\tid: new ObjectId().toHexString(),\n\t\t\t\tpseudonym: uuidv4(),\n\t\t\t\tuserId: user.id,\n\t\t\t\ttoolId: tool.id,\n\t\t\t\tcreatedAt: new Date(),\n\t\t\t\tupdatedAt: new Date(),\n\t\t\t});\n\n\t\t\tpseudonym = await repository.createOrUpdate(pseudonym);\n\t\t}\n\n\t\treturn pseudonym;\n\t}\n\n\tpublic async deleteByUserId(userId: string): Promise {\n\t\tif (!userId) {\n\t\t\tthrow new InternalServerErrorException('User id is missing');\n\t\t}\n\n\t\tconst [deletedPseudonyms, deletedExternalToolPseudonyms] = await Promise.all([\n\t\t\tthis.deletePseudonymsByUserId(userId),\n\t\t\tthis.deleteExternalToolPseudonymsByUserId(userId),\n\t\t]);\n\n\t\treturn deletedPseudonyms + deletedExternalToolPseudonyms;\n\t}\n\n\tprivate async findPseudonymsByUserId(userId: string): Promise {\n\t\tconst pseudonymPromise: Promise = this.pseudonymRepo.findByUserId(userId);\n\n\t\treturn pseudonymPromise;\n\t}\n\n\tprivate async findExternalToolPseudonymsByUserId(userId: string): Promise {\n\t\tconst externalToolPseudonymPromise: Promise = this.externalToolPseudonymRepo.findByUserId(userId);\n\n\t\treturn externalToolPseudonymPromise;\n\t}\n\n\tprivate async deletePseudonymsByUserId(userId: string): Promise {\n\t\tconst pseudonymPromise: Promise = this.pseudonymRepo.deletePseudonymsByUserId(userId);\n\n\t\treturn pseudonymPromise;\n\t}\n\n\tprivate async deleteExternalToolPseudonymsByUserId(userId: string): Promise {\n\t\tconst externalToolPseudonymPromise: Promise =\n\t\t\tthis.externalToolPseudonymRepo.deletePseudonymsByUserId(userId);\n\n\t\treturn externalToolPseudonymPromise;\n\t}\n\n\tprivate getRepository(tool: ExternalTool | LtiToolDO): PseudonymsRepo | ExternalToolPseudonymRepo {\n\t\tif (tool instanceof ExternalTool) {\n\t\t\treturn this.externalToolPseudonymRepo;\n\t\t}\n\n\t\treturn this.pseudonymRepo;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PseudonymsRepo.html":{"url":"injectables/PseudonymsRepo.html","title":"injectable - PseudonymsRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PseudonymsRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createOrUpdate\n \n \n Async\n deletePseudonymsByUserId\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdAndToolId\n \n \n Async\n findByUserIdAndToolIdOrFail\n \n \n Protected\n mapDomainObjectToEntityProperties\n \n \n Protected\n mapEntityToDomainObject\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createOrUpdate\n \n \n \n \n \n \n \n createOrUpdate(domainObject: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deletePseudonymsByUserId\n \n \n \n \n \n \n \n deletePseudonymsByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdAndToolId\n \n \n \n \n \n \n \n findByUserIdAndToolId(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdAndToolIdOrFail\n \n \n \n \n \n \n \n findByUserIdAndToolIdOrFail(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDomainObjectToEntityProperties\n \n \n \n \n \n \n \n mapDomainObjectToEntityProperties(entityDO: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PseudonymEntityProps\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDomainObject\n \n \n \n \n \n \n \n mapEntityToDomainObject(entity: PseudonymEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n PseudonymEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Pseudonym\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId, Pseudonym } from '@shared/domain';\nimport { PseudonymEntity, PseudonymEntityProps } from '../entity';\n\n@Injectable()\nexport class PseudonymsRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findByUserIdAndToolIdOrFail(userId: EntityId, toolId: EntityId): Promise {\n\t\tconst entity: PseudonymEntity = await this.em.findOneOrFail(PseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t\ttoolId: new ObjectId(toolId),\n\t\t});\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByUserIdAndToolId(userId: EntityId, toolId: EntityId): Promise {\n\t\tconst entity: PseudonymEntity | null = await this.em.findOne(PseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t\ttoolId: new ObjectId(toolId),\n\t\t});\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByUserId(userId: EntityId): Promise {\n\t\tconst entities: PseudonymEntity[] = await this.em.find(PseudonymEntity, { userId: new ObjectId(userId) });\n\n\t\tconst pseudonyms: Pseudonym[] = entities.map((entity) => this.mapEntityToDomainObject(entity));\n\n\t\treturn pseudonyms;\n\t}\n\n\tasync createOrUpdate(domainObject: Pseudonym): Promise {\n\t\tconst existing: PseudonymEntity | undefined = this.em\n\t\t\t.getUnitOfWork()\n\t\t\t.getById(PseudonymEntity.name, domainObject.id);\n\n\t\tconst entityProps: PseudonymEntityProps = this.mapDomainObjectToEntityProperties(domainObject);\n\t\tlet entity: PseudonymEntity = new PseudonymEntity(entityProps);\n\n\t\tif (existing) {\n\t\t\tentity = this.em.assign(existing, entity);\n\t\t} else {\n\t\t\tthis.em.persist(entity);\n\t\t}\n\n\t\tawait this.em.flush();\n\n\t\tconst savedDomainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn savedDomainObject;\n\t}\n\n\tasync deletePseudonymsByUserId(userId: EntityId): Promise {\n\t\tconst promise: Promise = this.em.nativeDelete(PseudonymEntity, { userId: new ObjectId(userId) });\n\n\t\treturn promise;\n\t}\n\n\tprotected mapEntityToDomainObject(entity: PseudonymEntity): Pseudonym {\n\t\treturn new Pseudonym({\n\t\t\tid: entity.id,\n\t\t\tpseudonym: entity.pseudonym,\n\t\t\ttoolId: entity.toolId.toHexString(),\n\t\t\tuserId: entity.userId.toHexString(),\n\t\t\tcreatedAt: entity.createdAt,\n\t\t\tupdatedAt: entity.updatedAt,\n\t\t});\n\t}\n\n\tprotected mapDomainObjectToEntityProperties(entityDO: Pseudonym): PseudonymEntityProps {\n\t\treturn {\n\t\t\tid: entityDO.id,\n\t\t\tpseudonym: entityDO.pseudonym,\n\t\t\ttoolId: new ObjectId(entityDO.toolId),\n\t\t\tuserId: new ObjectId(entityDO.userId),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PublicSystemListResponse.html":{"url":"classes/PublicSystemListResponse.html","title":"class - PublicSystemListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PublicSystemListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/public-system-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemResponses: PublicSystemResponse[])\n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemResponses\n \n \n PublicSystemResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : PublicSystemResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PublicSystemResponse } from './public-system-response';\n\nexport class PublicSystemListResponse {\n\t@ApiProperty({ type: [PublicSystemResponse] })\n\tdata: PublicSystemResponse[];\n\n\tconstructor(systemResponses: PublicSystemResponse[]) {\n\t\tthis.data = systemResponses;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PublicSystemResponse.html":{"url":"classes/PublicSystemResponse.html","title":"class - PublicSystemResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PublicSystemResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/public-system-response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n Optional\n displayName\n \n \n \n id\n \n \n \n Optional\n oauthConfig\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(system: PublicSystemResponse)\n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:39\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n \n PublicSystemResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Alias of the system.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Display name of the system.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Id of the system.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthConfig\n \n \n \n \n \n \n Type : OauthConfigResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Oauth config of the system.', type: OauthConfigResponse, required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Flag to request only systems with oauth-config.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { OauthConfigResponse } from '@src/modules/system/controller/dto/oauth-config.response';\n\nexport class PublicSystemResponse {\n\t@ApiProperty({\n\t\tdescription: 'Id of the system.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Flag to request only systems with oauth-config.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\ttype: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Alias of the system.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\talias?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Display name of the system.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tdisplayName?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Oauth config of the system.',\n\t\ttype: OauthConfigResponse,\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\toauthConfig?: OauthConfigResponse;\n\n\tconstructor(system: PublicSystemResponse) {\n\t\tthis.id = system.id;\n\t\tthis.type = system.type;\n\t\tthis.alias = system.alias;\n\t\tthis.displayName = system.displayName;\n\t\tthis.oauthConfig = system.oauthConfig;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RabbitMQWrapperModule.html":{"url":"modules/RabbitMQWrapperModule.html","title":"module - RabbitMQWrapperModule","body":"\n \n\n\n\n\n Modules\n RabbitMQWrapperModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts\n \n\n\n\n\n\n \n \n \n \n\n\n \n\n\n \n import { AmqpConnectionManager, RabbitMQModule } from '@golevelup/nestjs-rabbitmq';\nimport { Configuration } from '@hpi-schul-cloud/commons';\nimport { Global, Module, OnModuleDestroy } from '@nestjs/common';\nimport { FilesStorageExchange } from './exchange';\n\n/**\n * https://www.npmjs.com/package/@golevelup/nestjs-rabbitmq#usage\n * we want to have the RabbitMQModule globally available, since it provides via a factory the AMQPConnection.\n * You shall not explicitly declare the AMQPConnection in your modules since it will create a new AMQPConnection which will not be initialized!\n *\n * Therefore, the combination of @Global() and export: [RabbitMQModule] is required.\n */\n\nconst imports = [\n\tRabbitMQModule.forRoot(RabbitMQModule, {\n\t\t// Please don't change the global prefetch count, if you need constraint, change it at channel level\n\t\tprefetchCount: 5,\n\t\texchanges: [\n\t\t\t{\n\t\t\t\tname: Configuration.get('MAIL_SEND_EXCHANGE') as string,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: Configuration.get('ANTIVIRUS_EXCHANGE') as string,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: FilesStorageExchange,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t],\n\t\turi: Configuration.get('RABBITMQ_URI') as string,\n\t}),\n];\n@Global()\n@Module({\n\timports,\n\texports: [RabbitMQModule],\n})\nexport class RabbitMQWrapperModule {}\n\n@Global()\n@Module({\n\timports,\n\texports: [RabbitMQModule],\n})\nexport class RabbitMQWrapperTestModule implements OnModuleDestroy {\n\tconstructor(private readonly amqpConnectionManager: AmqpConnectionManager) {}\n\n\t// In tests we need to close connections when the module is destroyed.\n\tasync onModuleDestroy() {\n\t\tawait Promise.all(\n\t\t\tthis.amqpConnectionManager.getConnections().map((connection) => connection.managedConnection.close())\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RabbitMQWrapperTestModule.html":{"url":"modules/RabbitMQWrapperTestModule.html","title":"module - RabbitMQWrapperTestModule","body":"\n \n\n\n\n\n Modules\n RabbitMQWrapperTestModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n onModuleDestroy\n \n \n \n \n \n \n \n onModuleDestroy()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts:51\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n\n \n\n\n \n import { AmqpConnectionManager, RabbitMQModule } from '@golevelup/nestjs-rabbitmq';\nimport { Configuration } from '@hpi-schul-cloud/commons';\nimport { Global, Module, OnModuleDestroy } from '@nestjs/common';\nimport { FilesStorageExchange } from './exchange';\n\n/**\n * https://www.npmjs.com/package/@golevelup/nestjs-rabbitmq#usage\n * we want to have the RabbitMQModule globally available, since it provides via a factory the AMQPConnection.\n * You shall not explicitly declare the AMQPConnection in your modules since it will create a new AMQPConnection which will not be initialized!\n *\n * Therefore, the combination of @Global() and export: [RabbitMQModule] is required.\n */\n\nconst imports = [\n\tRabbitMQModule.forRoot(RabbitMQModule, {\n\t\t// Please don't change the global prefetch count, if you need constraint, change it at channel level\n\t\tprefetchCount: 5,\n\t\texchanges: [\n\t\t\t{\n\t\t\t\tname: Configuration.get('MAIL_SEND_EXCHANGE') as string,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: Configuration.get('ANTIVIRUS_EXCHANGE') as string,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: FilesStorageExchange,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t],\n\t\turi: Configuration.get('RABBITMQ_URI') as string,\n\t}),\n];\n@Global()\n@Module({\n\timports,\n\texports: [RabbitMQModule],\n})\nexport class RabbitMQWrapperModule {}\n\n@Global()\n@Module({\n\timports,\n\texports: [RabbitMQModule],\n})\nexport class RabbitMQWrapperTestModule implements OnModuleDestroy {\n\tconstructor(private readonly amqpConnectionManager: AmqpConnectionManager) {}\n\n\t// In tests we need to close connections when the module is destroyed.\n\tasync onModuleDestroy() {\n\t\tawait Promise.all(\n\t\t\tthis.amqpConnectionManager.getConnections().map((connection) => connection.managedConnection.close())\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RecursiveDeleteVisitor.html":{"url":"injectables/RecursiveDeleteVisitor.html","title":"injectable - RecursiveDeleteVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RecursiveDeleteVisitor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/recursive-delete.vistor.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n deleteNode\n \n \n Async\n visitCardAsync\n \n \n Async\n visitChildrenAsync\n \n \n Async\n visitColumnAsync\n \n \n Async\n visitColumnBoardAsync\n \n \n Async\n visitFileElementAsync\n \n \n Async\n visitRichTextElementAsync\n \n \n Async\n visitSubmissionContainerElementAsync\n \n \n Async\n visitSubmissionItemAsync\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n deleteNode\n \n \n \n \n \n \ndeleteNode(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitCardAsync\n \n \n \n \n \n \n \n visitCardAsync(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitChildrenAsync\n \n \n \n \n \n \n \n visitChildrenAsync(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitColumnAsync\n \n \n \n \n \n \n \n visitColumnAsync(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitColumnBoardAsync\n \n \n \n \n \n \n \n visitColumnBoardAsync(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitFileElementAsync\n \n \n \n \n \n \n \n visitFileElementAsync(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitRichTextElementAsync\n \n \n \n \n \n \n \n visitRichTextElementAsync(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitSubmissionContainerElementAsync\n \n \n \n \n \n \n \n visitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitSubmissionItemAsync\n \n \n \n \n \n \n \n visitSubmissionItemAsync(submission: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tBoardCompositeVisitorAsync,\n\tBoardNode,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { FilesStorageClientAdapterService } from '@src/modules/files-storage-client';\n\n@Injectable()\nexport class RecursiveDeleteVisitor implements BoardCompositeVisitorAsync {\n\tconstructor(\n\t\tprivate readonly em: EntityManager,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync visitColumnBoardAsync(columnBoard: ColumnBoard): Promise {\n\t\tthis.deleteNode(columnBoard);\n\t\tawait this.visitChildrenAsync(columnBoard);\n\t}\n\n\tasync visitColumnAsync(column: Column): Promise {\n\t\tthis.deleteNode(column);\n\t\tawait this.visitChildrenAsync(column);\n\t}\n\n\tasync visitCardAsync(card: Card): Promise {\n\t\tthis.deleteNode(card);\n\t\tawait this.visitChildrenAsync(card);\n\t}\n\n\tasync visitFileElementAsync(fileElement: FileElement): Promise {\n\t\tawait this.filesStorageClientAdapterService.deleteFilesOfParent(fileElement.id);\n\t\tthis.deleteNode(fileElement);\n\n\t\tawait this.visitChildrenAsync(fileElement);\n\t}\n\n\tasync visitRichTextElementAsync(richTextElement: RichTextElement): Promise {\n\t\tthis.deleteNode(richTextElement);\n\t\tawait this.visitChildrenAsync(richTextElement);\n\t}\n\n\tasync visitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise {\n\t\tthis.deleteNode(submissionContainerElement);\n\t\tawait this.visitChildrenAsync(submissionContainerElement);\n\t}\n\n\tasync visitSubmissionItemAsync(submission: SubmissionItem): Promise {\n\t\tthis.deleteNode(submission);\n\t\tawait this.visitChildrenAsync(submission);\n\t}\n\n\tdeleteNode(domainObject: AnyBoardDo): void {\n\t\tthis.em.remove(this.em.getReference(BoardNode, domainObject.id));\n\t}\n\n\tasync visitChildrenAsync(domainObject: AnyBoardDo): Promise {\n\t\tawait Promise.all(domainObject.children.map(async (child) => child.acceptAsync(this)));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RecursiveSaveVisitor.html":{"url":"classes/RecursiveSaveVisitor.html","title":"class - RecursiveSaveVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RecursiveSaveVisitor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/recursive-save.visitor.ts\n \n\n\n\n\n \n Implements\n \n \n BoardCompositeVisitor\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n parentsMap\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n createOrUpdateBoardNode\n \n \n registerParentData\n \n \n Async\n save\n \n \n visitCard\n \n \n visitChildren\n \n \n visitColumn\n \n \n visitColumnBoard\n \n \n visitFileElement\n \n \n visitRichTextElement\n \n \n visitSubmissionContainerElement\n \n \n visitSubmissionItem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, boardNodeRepo: BoardNodeRepo)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:31\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n boardNodeRepo\n \n \n BoardNodeRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n parentsMap\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:31\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createOrUpdateBoardNode\n \n \n \n \n \n \ncreateOrUpdateBoardNode(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:165\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n registerParentData\n \n \n \n \n \n \nregisterParentData(parent: AnyBoardDo, child: AnyBoardDo, parentNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:157\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n parentNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(domainObject: AnyBoardDo | AnyBoardDo[], parent?: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo | AnyBoardDo[]\n \n\n \n No\n \n\n\n \n \n parent\n \n AnyBoardDo\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitCard\n \n \n \n \n \n \nvisitCard(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitChildren\n \n \n \n \n \n \nvisitChildren(parent: AnyBoardDo, parentNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:150\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n parentNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumn\n \n \n \n \n \n \nvisitColumn(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnBoard\n \n \n \n \n \n \nvisitColumnBoard(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitFileElement\n \n \n \n \n \n \nvisitFileElement(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:93\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitRichTextElement\n \n \n \n \n \n \nvisitRichTextElement(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:107\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionContainerElement\n \n \n \n \n \n \nvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionItem\n \n \n \n \n \n \nvisitSubmissionItem(submission: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:136\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Utils } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport {\n\tAnyBoardDo,\n\tBoardCompositeVisitor,\n\tBoardNode,\n\tCard,\n\tCardNode,\n\tColumn,\n\tColumnBoard,\n\tColumnBoardNode,\n\tColumnNode,\n\tEntityId,\n\tFileElement,\n\tFileElementNode,\n\tRichTextElement,\n\tRichTextElementNode,\n\tSubmissionContainerElement,\n\tSubmissionContainerElementNode,\n\tSubmissionItem,\n\tSubmissionItemNode,\n} from '@shared/domain';\nimport { BoardNodeRepo } from './board-node.repo';\n\ntype ParentData = {\n\tboardNode: BoardNode;\n\tposition: number;\n};\n\nexport class RecursiveSaveVisitor implements BoardCompositeVisitor {\n\tprivate parentsMap: Map = new Map();\n\n\tconstructor(private readonly em: EntityManager, private readonly boardNodeRepo: BoardNodeRepo) {}\n\n\tasync save(domainObject: AnyBoardDo | AnyBoardDo[], parent?: AnyBoardDo): Promise {\n\t\tconst domainObjects = Utils.asArray(domainObject);\n\n\t\tif (parent) {\n\t\t\tconst parentNode = await this.boardNodeRepo.findById(parent.id);\n\n\t\t\tdomainObjects.forEach((child) => {\n\t\t\t\tthis.registerParentData(parent, child, parentNode);\n\t\t\t});\n\t\t}\n\n\t\tdomainObjects.forEach((child) => child.accept(this));\n\t}\n\n\tvisitColumnBoard(columnBoard: ColumnBoard): void {\n\t\tconst parentData = this.parentsMap.get(columnBoard.id);\n\n\t\tconst boardNode = new ColumnBoardNode({\n\t\t\tid: columnBoard.id,\n\t\t\ttitle: columnBoard.title,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t\tcontext: columnBoard.context,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(columnBoard, boardNode);\n\t}\n\n\tvisitColumn(column: Column): void {\n\t\tconst parentData = this.parentsMap.get(column.id);\n\n\t\tconst boardNode = new ColumnNode({\n\t\t\tid: column.id,\n\t\t\ttitle: column.title,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(column, boardNode);\n\t}\n\n\tvisitCard(card: Card): void {\n\t\tconst parentData = this.parentsMap.get(card.id);\n\n\t\tconst boardNode = new CardNode({\n\t\t\tid: card.id,\n\t\t\theight: card.height,\n\t\t\ttitle: card.title,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(card, boardNode);\n\t}\n\n\tvisitFileElement(fileElement: FileElement): void {\n\t\tconst parentData = this.parentsMap.get(fileElement.id);\n\n\t\tconst boardNode = new FileElementNode({\n\t\t\tid: fileElement.id,\n\t\t\tcaption: fileElement.caption,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(fileElement, boardNode);\n\t}\n\n\tvisitRichTextElement(richTextElement: RichTextElement): void {\n\t\tconst parentData = this.parentsMap.get(richTextElement.id);\n\n\t\tconst boardNode = new RichTextElementNode({\n\t\t\tid: richTextElement.id,\n\t\t\ttext: richTextElement.text,\n\t\t\tinputFormat: richTextElement.inputFormat,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(richTextElement, boardNode);\n\t}\n\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void {\n\t\tconst parentData = this.parentsMap.get(submissionContainerElement.id);\n\n\t\tconst boardNode = new SubmissionContainerElementNode({\n\t\t\tid: submissionContainerElement.id,\n\t\t\tdueDate: submissionContainerElement.dueDate,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(submissionContainerElement, boardNode);\n\t}\n\n\tvisitSubmissionItem(submission: SubmissionItem): void {\n\t\tconst parentData = this.parentsMap.get(submission.id);\n\t\tconst boardNode = new SubmissionItemNode({\n\t\t\tid: submission.id,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t\tcompleted: submission.completed,\n\t\t\tuserId: submission.userId,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(submission, boardNode);\n\t}\n\n\tvisitChildren(parent: AnyBoardDo, parentNode: BoardNode) {\n\t\tparent.children.forEach((child) => {\n\t\t\tthis.registerParentData(parent, child, parentNode);\n\t\t\tchild.accept(this);\n\t\t});\n\t}\n\n\tregisterParentData(parent: AnyBoardDo, child: AnyBoardDo, parentNode: BoardNode) {\n\t\tconst position = parent.children.findIndex((obj) => obj.id === child.id);\n\t\tif (position === -1) {\n\t\t\tthrow new Error(`Cannot get child position. Child doesnt belong to parent`);\n\t\t}\n\t\tthis.parentsMap.set(child.id, { boardNode: parentNode, position });\n\t}\n\n\tcreateOrUpdateBoardNode(boardNode: BoardNode): void {\n\t\tconst existing = this.em.getUnitOfWork().getById(BoardNode.name, boardNode.id);\n\t\tif (existing) {\n\t\t\tthis.em.assign(existing, boardNode);\n\t\t} else {\n\t\t\tthis.em.persist(boardNode);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RedirectResponse.html":{"url":"classes/RedirectResponse.html","title":"class - RedirectResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RedirectResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/redirect.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n redirect_to\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(redirectReponse: RedirectResponse)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/redirect.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n redirectReponse\n \n \n RedirectResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n redirect_to\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'RedirectURL is the URL which you should redirect the user to once the authentication process is completed.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/redirect.response.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class RedirectResponse {\n\tconstructor(redirectReponse: RedirectResponse) {\n\t\tthis.redirect_to = redirectReponse.redirect_to;\n\t}\n\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'RedirectURL is the URL which you should redirect the user to once the authentication process is completed.',\n\t})\n\tredirect_to: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RedisModule.html":{"url":"modules/RedisModule.html","title":"module - RedisModule","body":"\n \n\n\n\n\n Modules\n RedisModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_RedisModule\n\n\n\ncluster_RedisModule_imports\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nRedisModule\n\nRedisModule\n\nRedisModule -->\n\nLoggerModule->RedisModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/redis/redis.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Module } from '@nestjs/common';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { createClient, RedisClient } from 'redis';\nimport { REDIS_CLIENT } from './interface/redis.constants';\n\n@Module({\n\timports: [LoggerModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: REDIS_CLIENT,\n\t\t\tuseFactory: (logger: LegacyLogger) => {\n\t\t\t\tlogger.setContext(RedisModule.name);\n\n\t\t\t\tif (Configuration.has('REDIS_URI')) {\n\t\t\t\t\tconst redisUrl: string = Configuration.get('REDIS_URI') as string;\n\t\t\t\t\tconst client: RedisClient = createClient({ url: redisUrl });\n\n\t\t\t\t\tclient.on('error', (error) => logger.error(error));\n\t\t\t\t\tclient.on('connect', (msg) => logger.log(msg));\n\n\t\t\t\t\treturn client;\n\t\t\t\t}\n\n\t\t\t\treturn undefined;\n\t\t\t},\n\t\t\tinject: [LegacyLogger],\n\t\t},\n\t],\n\texports: [REDIS_CLIENT],\n})\nexport class RedisModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ReferenceLoader.html":{"url":"injectables/ReferenceLoader.html","title":"injectable - ReferenceLoader","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ReferenceLoader\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/reference.loader.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n repos\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getUserWithPermissions\n \n \n Async\n loadAuthorizableObject\n \n \n Private\n resolveRepo\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userRepo: UserRepo, courseRepo: CourseRepo, courseGroupRepo: CourseGroupRepo, taskRepo: TaskRepo, schoolRepo: LegacySchoolRepo, lessonRepo: LessonRepo, teamsRepo: TeamsRepo, submissionRepo: SubmissionRepo, schoolExternalToolRepo: SchoolExternalToolRepo, boardNodeAuthorizableService: BoardDoAuthorizableService, contextExternalToolAuthorizableService: ContextExternalToolAuthorizableService)\n \n \n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:40\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n courseGroupRepo\n \n \n CourseGroupRepo\n \n \n \n No\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n schoolRepo\n \n \n LegacySchoolRepo\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n submissionRepo\n \n \n SubmissionRepo\n \n \n \n No\n \n \n \n \n schoolExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n \n No\n \n \n \n \n boardNodeAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n contextExternalToolAuthorizableService\n \n \n ContextExternalToolAuthorizableService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getUserWithPermissions\n \n \n \n \n \n \n \n getUserWithPermissions(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:94\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loadAuthorizableObject\n \n \n \n \n \n \n \n loadAuthorizableObject(objectName: AuthorizableReferenceType, objectId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n objectName\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n objectId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n resolveRepo\n \n \n \n \n \n \n \n resolveRepo(type: AuthorizableReferenceType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IRepoLoader\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n repos\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:40\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { BaseDO, EntityId, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport {\n\tCourseGroupRepo,\n\tCourseRepo,\n\tLessonRepo,\n\tSchoolExternalToolRepo,\n\tLegacySchoolRepo,\n\tSubmissionRepo,\n\tTaskRepo,\n\tTeamsRepo,\n\tUserRepo,\n} from '@shared/repo';\nimport { BoardDoAuthorizableService } from '@src/modules/board/service';\nimport { ContextExternalToolAuthorizableService } from '@src/modules/tool/context-external-tool/service';\nimport { AuthorizableReferenceType } from './types';\n\n// replace later with general \"base\" do-repo\ntype RepoType =\n\t| TaskRepo\n\t| CourseRepo\n\t| UserRepo\n\t| LegacySchoolRepo\n\t| LessonRepo\n\t| TeamsRepo\n\t| CourseGroupRepo\n\t| SubmissionRepo\n\t| SchoolExternalToolRepo\n\t| BoardDoAuthorizableService\n\t| ContextExternalToolAuthorizableService;\n\ninterface IRepoLoader {\n\trepo: RepoType;\n\tpopulate?: boolean;\n}\n\n@Injectable()\nexport class ReferenceLoader {\n\tprivate repos: Map = new Map();\n\n\tconstructor(\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly courseGroupRepo: CourseGroupRepo,\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly schoolRepo: LegacySchoolRepo,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly teamsRepo: TeamsRepo,\n\t\tprivate readonly submissionRepo: SubmissionRepo,\n\t\tprivate readonly schoolExternalToolRepo: SchoolExternalToolRepo,\n\t\tprivate readonly boardNodeAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly contextExternalToolAuthorizableService: ContextExternalToolAuthorizableService\n\t) {\n\t\tthis.repos.set(AuthorizableReferenceType.Task, { repo: this.taskRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Course, { repo: this.courseRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.CourseGroup, { repo: this.courseGroupRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.User, { repo: this.userRepo, populate: true });\n\t\tthis.repos.set(AuthorizableReferenceType.School, { repo: this.schoolRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Lesson, { repo: this.lessonRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Team, { repo: this.teamsRepo, populate: true });\n\t\tthis.repos.set(AuthorizableReferenceType.Submission, { repo: this.submissionRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.SchoolExternalToolEntity, { repo: this.schoolExternalToolRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.BoardNode, { repo: this.boardNodeAuthorizableService });\n\t\tthis.repos.set(AuthorizableReferenceType.ContextExternalToolEntity, {\n\t\t\trepo: this.contextExternalToolAuthorizableService,\n\t\t});\n\t}\n\n\tprivate resolveRepo(type: AuthorizableReferenceType): IRepoLoader {\n\t\tconst repo = this.repos.get(type);\n\t\tif (repo) {\n\t\t\treturn repo;\n\t\t}\n\t\tthrow new NotImplementedException('REPO_OR_SERVICE_NOT_IMPLEMENT');\n\t}\n\n\tasync loadAuthorizableObject(\n\t\tobjectName: AuthorizableReferenceType,\n\t\tobjectId: EntityId\n\t): Promise {\n\t\tconst repoLoader: IRepoLoader = this.resolveRepo(objectName);\n\n\t\tlet object: AuthorizableObject | BaseDO;\n\t\tif (repoLoader.populate) {\n\t\t\tobject = await repoLoader.repo.findById(objectId, true);\n\t\t} else {\n\t\t\tobject = await repoLoader.repo.findById(objectId);\n\t\t}\n\n\t\treturn object;\n\t}\n\n\tasync getUserWithPermissions(userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\n\t\treturn user;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RejectRequestBody.html":{"url":"interfaces/RejectRequestBody.html","title":"interface - RejectRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RejectRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/request/reject-request.body.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n error\n \n \n \n Optional\n \n error_debug\n \n \n \n Optional\n \n error_description\n \n \n \n Optional\n \n error_hint\n \n \n \n Optional\n \n status_code\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n error\n \n \n \n \n \n \n \n \n error: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n error_debug\n \n \n \n \n \n \n \n \n error_debug: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n error_description\n \n \n \n \n \n \n \n \n error_description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n error_hint\n \n \n \n \n \n \n \n \n error_hint: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n status_code\n \n \n \n \n \n \n \n \n status_code: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface RejectRequestBody {\n\terror?: string;\n\n\terror_debug?: string;\n\n\terror_description?: string;\n\n\terror_hint?: string;\n\n\tstatus_code?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RenameBodyParams.html":{"url":"classes/RenameBodyParams.html","title":"class - RenameBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RenameBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/rename.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({required: true, nullable: false})@SanitizeHtml()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/rename.body.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsString } from 'class-validator';\nimport { SanitizeHtml } from '@shared/controller';\n\nexport class RenameBodyParams {\n\t@IsString()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\t@SanitizeHtml()\n\ttitle!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RenameFileParams.html":{"url":"classes/RenameFileParams.html","title":"class - RenameFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RenameFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:78\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RequestInfo.html":{"url":"classes/RequestInfo.html","title":"class - RequestInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RequestInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/metrics/prometheus/middleware.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n baseUrl\n \n \n fullPath\n \n \n method\n \n \n routePath\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n hasPath\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(req: Request)\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n req\n \n \n Request\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n fullPath\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n method\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n routePath\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : ''\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:12\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n hasPath\n \n \n \n \n \n \n \n hasPath(reqRoute)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n reqRoute\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import client from 'prom-client';\nimport responseTime from 'response-time';\nimport { Request, RequestHandler, Response } from 'express';\n\nclass RequestInfo {\n\tmethod: string;\n\n\tbaseUrl: string;\n\n\tfullPath: string;\n\n\troutePath = '';\n\n\tprivate hasPath(reqRoute: unknown): reqRoute is { path: string } {\n\t\treturn typeof reqRoute === 'object' && reqRoute != null && 'path' in reqRoute;\n\t}\n\n\tconstructor(req: Request) {\n\t\tthis.method = req.method;\n\t\tthis.baseUrl = req.baseUrl === undefined ? '' : req.baseUrl;\n\t\tthis.fullPath = this.baseUrl;\n\n\t\tif (this.hasPath(req.route)) {\n\t\t\tthis.routePath = req.route.path;\n\n\t\t\tthis.fullPath += this.routePath;\n\t\t}\n\t}\n}\n\nclass ResponseInfo {\n\tstatusCode: number;\n\n\tconstructor(res: Response) {\n\t\tthis.statusCode = res.statusCode;\n\t}\n}\n\nconst apiResponseTimeMetricLabelNames = ['method', 'base_url', 'full_path', 'route_path', 'status_code'];\n\nexport const getAPIResponseTimeMetricLabels = (req: Request, res: Response) => {\n\tconst reqInfo = new RequestInfo(req);\n\tconst resInfo = new ResponseInfo(res);\n\n\treturn {\n\t\tmethod: reqInfo.method,\n\t\tbase_url: reqInfo.baseUrl,\n\t\tfull_path: reqInfo.fullPath,\n\t\troute_path: reqInfo.routePath,\n\t\tstatus_code: resInfo.statusCode,\n\t};\n};\n\nexport const apiResponseTimeMetricHistogram = new client.Histogram({\n\tname: 'sc_api_response_time_in_seconds',\n\thelp: 'SC API response time in seconds',\n\tlabelNames: apiResponseTimeMetricLabelNames,\n});\n\nexport const createAPIResponseTimeMetricMiddleware = (): RequestHandler =>\n\tresponseTime((req: Request, res: Response, time: number) => {\n\t\tconst labels = getAPIResponseTimeMetricLabels(req, res);\n\n\t\tapiResponseTimeMetricHistogram.observe(labels, time / 1000);\n\t});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RequestLoggingInterceptor.html":{"url":"injectables/RequestLoggingInterceptor.html","title":"injectable - RequestLoggingInterceptor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RequestLoggingInterceptor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/interceptor/request-logging.interceptor.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n intercept\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/common/interceptor/request-logging.interceptor.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n intercept\n \n \n \n \n \n \nintercept(context: ExecutionContext, next: CallHandler)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/interceptor/request-logging.interceptor.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n context\n \n ExecutionContext\n \n\n \n No\n \n\n\n \n \n next\n \n CallHandler\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Observable<>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';\nimport { LegacyLogger, RequestLoggingBody } from '@src/core/logger';\nimport { Request } from 'express';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\nimport { ICurrentUser } from '@src/modules/authentication/interface/user';\n\n@Injectable()\nexport class RequestLoggingInterceptor implements NestInterceptor {\n\tconstructor(private logger: LegacyLogger) {}\n\n\tintercept(context: ExecutionContext, next: CallHandler): Observable {\n\t\tthis.logger.setContext(`${context.getClass().name}::${context.getHandler().name}()`);\n\n\t\tconst req: Request = context.switchToHttp().getRequest();\n\t\tconst currentUser = req.user as ICurrentUser;\n\t\tconst logging: RequestLoggingBody = {\n\t\t\tuserId: currentUser.userId,\n\t\t\trequest: {\n\t\t\t\turl: req.url,\n\t\t\t\tmethod: req.method,\n\t\t\t\tparams: req.params,\n\t\t\t\tquery: req.query,\n\t\t\t},\n\t\t\terror: undefined,\n\t\t};\n\t\treturn next.handle().pipe(\n\t\t\ttap(() => {\n\t\t\t\tthis.logger.http(logging);\n\t\t\t}),\n\t\t\tcatchError((err: unknown) => {\n\t\t\t\tlogging.error = err;\n\t\t\t\tthis.logger.http(logging);\n\t\t\t\treturn throwError(() => err);\n\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ResolvedUserMapper.html":{"url":"classes/ResolvedUserMapper.html","title":"class - ResolvedUserMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResolvedUserMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/mapper/resolved-user.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(user: User, permissions: string[], roles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/mapper/resolved-user.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n \n \n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n roles\n \n Role[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : ResolvedUserResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { User, Role } from '@shared/domain';\nimport { ResolvedUserResponse } from '../controller/dto';\n\nexport class ResolvedUserMapper {\n\tstatic mapToResponse(user: User, permissions: string[] = [], roles: Role[] = []): ResolvedUserResponse {\n\t\tconst dto = new ResolvedUserResponse();\n\t\tdto.id = user.id;\n\t\tdto.firstName = user.firstName;\n\t\tdto.lastName = user.lastName;\n\t\tdto.createdAt = user.createdAt;\n\t\tdto.updatedAt = user.updatedAt;\n\t\tdto.schoolId = user.school.toString();\n\t\tdto.roles = roles.map((role) => {\n\t\t\treturn { name: role.name, id: role.id };\n\t\t});\n\n\t\tdto.permissions = permissions;\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ResolvedUserResponse.html":{"url":"classes/ResolvedUserResponse.html","title":"class - ResolvedUserResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResolvedUserResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/controller/dto/resolved-user.response.ts\n \n\n\n\n\n \n Implements\n \n \n IResolvedUser\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n firstName\n \n \n \n id\n \n \n \n lastName\n \n \n \n permissions\n \n \n \n roles\n \n \n \n schoolId\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Type : Role[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IResolvedUser, IRole } from '@src/modules/authentication/interface/user';\n\nexport type Role = IRole;\n\nexport class ResolvedUserResponse implements IResolvedUser {\n\t@ApiProperty()\n\tfirstName!: string;\n\n\t@ApiProperty()\n\tlastName!: string;\n\n\t@ApiProperty()\n\tid!: string;\n\n\t@ApiProperty()\n\tcreatedAt!: Date;\n\n\t@ApiProperty()\n\tupdatedAt!: Date;\n\n\t@ApiProperty()\n\troles!: Role[];\n\n\t@ApiProperty()\n\tpermissions!: string[];\n\n\t@ApiProperty()\n\tschoolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ResponseInfo.html":{"url":"classes/ResponseInfo.html","title":"class - ResponseInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResponseInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/metrics/prometheus/middleware.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n statusCode\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(res: Response)\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n res\n \n \n Response\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n statusCode\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import client from 'prom-client';\nimport responseTime from 'response-time';\nimport { Request, RequestHandler, Response } from 'express';\n\nclass RequestInfo {\n\tmethod: string;\n\n\tbaseUrl: string;\n\n\tfullPath: string;\n\n\troutePath = '';\n\n\tprivate hasPath(reqRoute: unknown): reqRoute is { path: string } {\n\t\treturn typeof reqRoute === 'object' && reqRoute != null && 'path' in reqRoute;\n\t}\n\n\tconstructor(req: Request) {\n\t\tthis.method = req.method;\n\t\tthis.baseUrl = req.baseUrl === undefined ? '' : req.baseUrl;\n\t\tthis.fullPath = this.baseUrl;\n\n\t\tif (this.hasPath(req.route)) {\n\t\t\tthis.routePath = req.route.path;\n\n\t\t\tthis.fullPath += this.routePath;\n\t\t}\n\t}\n}\n\nclass ResponseInfo {\n\tstatusCode: number;\n\n\tconstructor(res: Response) {\n\t\tthis.statusCode = res.statusCode;\n\t}\n}\n\nconst apiResponseTimeMetricLabelNames = ['method', 'base_url', 'full_path', 'route_path', 'status_code'];\n\nexport const getAPIResponseTimeMetricLabels = (req: Request, res: Response) => {\n\tconst reqInfo = new RequestInfo(req);\n\tconst resInfo = new ResponseInfo(res);\n\n\treturn {\n\t\tmethod: reqInfo.method,\n\t\tbase_url: reqInfo.baseUrl,\n\t\tfull_path: reqInfo.fullPath,\n\t\troute_path: reqInfo.routePath,\n\t\tstatus_code: resInfo.statusCode,\n\t};\n};\n\nexport const apiResponseTimeMetricHistogram = new client.Histogram({\n\tname: 'sc_api_response_time_in_seconds',\n\thelp: 'SC API response time in seconds',\n\tlabelNames: apiResponseTimeMetricLabelNames,\n});\n\nexport const createAPIResponseTimeMetricMiddleware = (): RequestHandler =>\n\tresponseTime((req: Request, res: Response, time: number) => {\n\t\tconst labels = getAPIResponseTimeMetricLabels(req, res);\n\n\t\tapiResponseTimeMetricHistogram.observe(labels, time / 1000);\n\t});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RestartUserLoginMigrationUc.html":{"url":"injectables/RestartUserLoginMigrationUc.html","title":"injectable - RestartUserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RestartUserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/restart-user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkPermission\n \n \n Async\n restartMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, authorizationService: AuthorizationService, schoolService: LegacySchoolService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/restart-user-login-migration.uc.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/restart-user-login-migration.uc.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n restartMigration\n \n \n \n \n \n \n \n restartMigration(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/restart-user-login-migration.uc.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { Permission, LegacySchoolDo, User, UserLoginMigrationDO } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationContext, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport {\n\tUserLoginMigrationGracePeriodExpiredLoggableException,\n\tUserLoginMigrationNotFoundLoggableException,\n} from '../error';\nimport { UserLoginMigrationStartLoggable } from '../loggable';\nimport { UserLoginMigrationService } from '../service';\n\n@Injectable()\nexport class RestartUserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tthis.logger.setContext(RestartUserLoginMigrationUc.name);\n\t}\n\n\tasync restartMigration(userId: string, schoolId: string): Promise {\n\t\tawait this.checkPermission(userId, schoolId);\n\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t} else if (userLoginMigration.finishedAt && Date.now() >= userLoginMigration.finishedAt.getTime()) {\n\t\t\tthrow new UserLoginMigrationGracePeriodExpiredLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.finishedAt\n\t\t\t);\n\t\t} else if (userLoginMigration.closedAt) {\n\t\t\tuserLoginMigration = await this.userLoginMigrationService.restartMigration(schoolId);\n\n\t\t\tthis.logger.info(new UserLoginMigrationStartLoggable(userId, schoolId));\n\t\t} else {\n\t\t\t// Do nothing, if migration is already started but not stopped.\n\t\t}\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync checkPermission(userId: string, schoolId: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.USER_LOGIN_MIGRATION_ADMIN]);\n\t\tthis.authorizationService.checkPermission(user, school, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RevokeConsentParams.html":{"url":"classes/RevokeConsentParams.html","title":"class - RevokeConsentParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RevokeConsentParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/revoke-consent.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n client\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The Oauth2 client id.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/revoke-consent.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class RevokeConsentParams {\n\t@IsString()\n\t@ApiProperty({ description: 'The Oauth2 client id.', required: true, nullable: false })\n\tclient!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichText.html":{"url":"classes/RichText.html","title":"class - RichText","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichText\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/rich-text.types.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: RichText)\n \n \n \n \n Defined in apps/server/src/shared/domain/types/rich-text.types.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n RichText\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Content of the rich text element'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/types/rich-text.types.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Input format of the rich text element', enum: InputFormat})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/types/rich-text.types.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { sanitizeRichText } from '../../controller/transformer/sanitize-html.transformer';\nimport { InputFormat } from './input-format.types';\n\nexport class RichText {\n\tconstructor({ content, type }: RichText) {\n\t\tthis.content = sanitizeRichText(content, type);\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'Content of the rich text element',\n\t})\n\tcontent: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Input format of the rich text element',\n\t\tenum: InputFormat,\n\t})\n\ttype: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextContentBody.html":{"url":"classes/RichTextContentBody.html","title":"class - RichTextContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n text\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(InputFormat)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:34\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElement.html":{"url":"classes/RichTextElement.html","title":"class - RichTextElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n text\n \n \n inputFormat\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild()\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:22\n\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n text\n \n \n\n \n \n gettext()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts:6\n \n \n\n \n \n settext(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n inputFormat\n \n \n\n \n \n getinputFormat()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts:14\n \n \n\n \n \n setinputFormat(value: InputFormat)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts:18\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n InputFormat\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { InputFormat } from '@shared/domain/types';\nimport { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class RichTextElement extends BoardComposite {\n\tget text(): string {\n\t\treturn this.props.text;\n\t}\n\n\tset text(value: string) {\n\t\tthis.props.text = value;\n\t}\n\n\tget inputFormat(): InputFormat {\n\t\treturn this.props.inputFormat;\n\t}\n\n\tset inputFormat(value: InputFormat) {\n\t\tthis.props.inputFormat = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitRichTextElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitRichTextElementAsync(this);\n\t}\n}\n\nexport interface RichTextElementProps extends BoardCompositeProps {\n\ttext: string;\n\tinputFormat: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElementContent.html":{"url":"classes/RichTextElementContent.html","title":"class - RichTextElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElementContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n inputFormat\n \n \n \n text\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: RichTextElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n RichTextElementContent\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class RichTextElementContent {\n\tconstructor({ text, inputFormat }: RichTextElementContent) {\n\t\tthis.text = text;\n\t\tthis.inputFormat = inputFormat;\n\t}\n\n\t@ApiProperty()\n\ttext: string;\n\n\t@ApiProperty()\n\tinputFormat: InputFormat;\n}\n\nexport class RichTextElementResponse {\n\tconstructor({ id, content, timestamps, type }: RichTextElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.RICH_TEXT;\n\n\t@ApiProperty()\n\tcontent: RichTextElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElementContentBody.html":{"url":"classes/RichTextElementContentBody.html","title":"class - RichTextElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElementContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n \n Extends\n \n \n ElementContentBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : RichTextContentBody\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.RICH_TEXT\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from ElementContentBody\n\n \n \n \n \n Defined in ElementContentBody:43\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/RichTextElementNode.html":{"url":"entities/RichTextElementNode.html","title":"entity - RichTextElementNode","body":"\n \n\n\n\n\n\n\n\n Entities\n RichTextElementNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/rich-text-element-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n inputFormat\n \n \n \n text\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/rich-text-element-node.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/rich-text-element-node.entity.ts:10\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '@shared/domain/domainobject';\nimport { InputFormat } from '@shared/domain/types';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.RICH_TEXT_ELEMENT })\nexport class RichTextElementNode extends BoardNode {\n\t@Property()\n\ttext: string;\n\n\t@Property()\n\tinputFormat: InputFormat;\n\n\tconstructor(props: RichTextElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.RICH_TEXT_ELEMENT;\n\t\tthis.text = props.text;\n\t\tthis.inputFormat = props.inputFormat;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildRichTextElement(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface RichTextElementNodeProps extends BoardNodeProps {\n\ttext: string;\n\tinputFormat: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RichTextElementNodeProps.html":{"url":"interfaces/RichTextElementNodeProps.html","title":"interface - RichTextElementNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RichTextElementNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/rich-text-element-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n text\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n \n \n inputFormat: InputFormat\n\n \n \n\n\n \n \n Type : InputFormat\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n \n \n text: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '@shared/domain/domainobject';\nimport { InputFormat } from '@shared/domain/types';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.RICH_TEXT_ELEMENT })\nexport class RichTextElementNode extends BoardNode {\n\t@Property()\n\ttext: string;\n\n\t@Property()\n\tinputFormat: InputFormat;\n\n\tconstructor(props: RichTextElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.RICH_TEXT_ELEMENT;\n\t\tthis.text = props.text;\n\t\tthis.inputFormat = props.inputFormat;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildRichTextElement(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface RichTextElementNodeProps extends BoardNodeProps {\n\ttext: string;\n\tinputFormat: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RichTextElementProps.html":{"url":"interfaces/RichTextElementProps.html","title":"interface - RichTextElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RichTextElementProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n text\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n \n \n inputFormat: InputFormat\n\n \n \n\n\n \n \n Type : InputFormat\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n \n \n text: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { InputFormat } from '@shared/domain/types';\nimport { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class RichTextElement extends BoardComposite {\n\tget text(): string {\n\t\treturn this.props.text;\n\t}\n\n\tset text(value: string) {\n\t\tthis.props.text = value;\n\t}\n\n\tget inputFormat(): InputFormat {\n\t\treturn this.props.inputFormat;\n\t}\n\n\tset inputFormat(value: InputFormat) {\n\t\tthis.props.inputFormat = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitRichTextElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitRichTextElementAsync(this);\n\t}\n}\n\nexport interface RichTextElementProps extends BoardCompositeProps {\n\ttext: string;\n\tinputFormat: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElementResponse.html":{"url":"classes/RichTextElementResponse.html","title":"class - RichTextElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n id\n \n \n \n timestamps\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: RichTextElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n RichTextElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : RichTextElementContent\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.RICH_TEXT\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ContentElementType, enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:30\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class RichTextElementContent {\n\tconstructor({ text, inputFormat }: RichTextElementContent) {\n\t\tthis.text = text;\n\t\tthis.inputFormat = inputFormat;\n\t}\n\n\t@ApiProperty()\n\ttext: string;\n\n\t@ApiProperty()\n\tinputFormat: InputFormat;\n}\n\nexport class RichTextElementResponse {\n\tconstructor({ id, content, timestamps, type }: RichTextElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.RICH_TEXT;\n\n\t@ApiProperty()\n\tcontent: RichTextElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElementResponseMapper.html":{"url":"classes/RichTextElementResponseMapper.html","title":"class - RichTextElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElementResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts\n \n\n\n\n\n \n Implements\n \n \n BaseResponseMapper\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n canMap\n \n \n Static\n getInstance\n \n \n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n \n \n Type : RichTextElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts:7\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n \n \ncanMap(element: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n getInstance\n \n \n \n \n \n \n \n getInstance()\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts:9\n \n \n\n\n \n \n\n \n Returns : RichTextElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RichTextElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, RichTextElement } from '@shared/domain';\nimport { TimestampsResponse } from '../dto';\nimport { RichTextElementContent, RichTextElementResponse } from '../dto/element/rich-text-element.response';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class RichTextElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: RichTextElementResponseMapper;\n\n\tpublic static getInstance(): RichTextElementResponseMapper {\n\t\tif (!RichTextElementResponseMapper.instance) {\n\t\t\tRichTextElementResponseMapper.instance = new RichTextElementResponseMapper();\n\t\t}\n\n\t\treturn RichTextElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: RichTextElement): RichTextElementResponse {\n\t\tconst result = new RichTextElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.RICH_TEXT,\n\t\t\tcontent: new RichTextElementContent({ text: element.text, inputFormat: element.inputFormat }),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: RichTextElement): boolean {\n\t\treturn element instanceof RichTextElement;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RocketChatError.html":{"url":"classes/RocketChatError.html","title":"class - RocketChatError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RocketChatError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.service.ts\n \n\n\n\n \n Extends\n \n \n Error\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n errorType\n \n \n Private\n response\n \n \n Private\n statusCode\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(e: any)\n \n \n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.service.ts:47\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n e\n \n \n any\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n errorType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.service.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n response\n \n \n \n \n \n \n Type : GenericData\n\n \n \n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.service.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n statusCode\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.service.ts:42\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { lastValueFrom } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport interface RocketChatOptions {\n\turi?: string;\n\tadminUser?: string;\n\tadminPassword?: string;\n\tadminId?: string;\n\tadminToken?: string;\n}\n\nexport interface RocketChatGroupModel {\n\tgroup: {\n\t\t_id: string;\n\t\tname: string;\n\t\tfname: string;\n\t\tt: string;\n\t\tmsgs: number;\n\t\tusersCount: number;\n\t\tu: {\n\t\t\t_id: string;\n\t\t\tusername: string;\n\t\t};\n\t\tcustomfields: object;\n\t\tbroadcast: boolean;\n\t\tencrypted: boolean;\n\t\tts: Date;\n\t\tro: boolean;\n\t\tdefaults: boolean;\n\t\tsysmes: boolean;\n\t\t_updatedAt: Date;\n\t};\n\tsuccess: boolean;\n}\n\ntype GenericData = Record;\n\nexport class RocketChatError extends Error {\n\tprivate statusCode: number;\n\n\tprivate response: GenericData;\n\n\t// rocketchat specific error type\n\tprivate errorType: string;\n\n\tconstructor(e: any) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument\n\t\tsuper(e.response.statusText);\n\n\t\t// Set the prototype explicitly.\n\t\tObject.setPrototypeOf(this, RocketChatError.prototype);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\tthis.statusCode = e.response.statusCode;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.response = e.response.data;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.errorType = e.response.data.errorType;\n\t}\n}\n\ninterface AdminIdAndToken {\n\tid: string;\n\ttoken: string;\n}\n\n@Injectable()\nexport class RocketChatService {\n\tprivate adminIdAndToken?: AdminIdAndToken;\n\n\tconstructor(\n\t\t@Inject('ROCKET_CHAT_OPTIONS') private readonly options: RocketChatOptions,\n\t\tprivate readonly httpService: HttpService\n\t) {}\n\n\tpublic async me(authToken: string, userId: string): Promise {\n\t\treturn this.get('/api/v1/me', authToken, userId);\n\t}\n\n\tpublic async setUserStatus(authToken: string, userId: string, status: string): Promise {\n\t\treturn this.post('/api/v1/users.setStatus', authToken, userId, {\n\t\t\tmessage: '',\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic async createUserToken(userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.createToken', {\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async logoutUser(authToken: string, userId: string): Promise {\n\t\treturn this.post('/api/v1/logout', authToken, userId, {});\n\t}\n\n\tpublic async getUserList(queryString: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/users.list?${queryString}`);\n\t}\n\n\tpublic async unarchiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.unarchive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async archiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.archive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async kickUserFromGroup(groupName: string, userId: string): Promise {\n\t\tconst groupInfo: RocketChatGroupModel = await this.getGroupData(groupName);\n\n\t\treturn this.postAsAdmin('/api/v1/groups.kick', {\n\t\t\troomId: groupInfo.group._id,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async inviteUserToGroup(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.invite', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async addGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.addModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async removeGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.removeModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async getGroupModerators(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.moderators?roomName=${groupName}`);\n\t}\n\n\tpublic async getGroupMembers(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.members?roomName=${groupName}`);\n\t}\n\n\tprivate async getGroupData(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.info?roomName=${groupName}`);\n\t}\n\n\tpublic async createGroup(name: string, members: string[]): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.create', {\n\t\t\tname,\n\t\t\tmembers,\n\t\t});\n\t}\n\n\tpublic async deleteGroup(groupName: string): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.delete', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async createUser(email: string, password: string, username: string, name: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.create', {\n\t\t\temail,\n\t\t\tpassword,\n\t\t\tusername,\n\t\t\tname,\n\t\t\tverified: true,\n\t\t});\n\t}\n\n\tpublic async deleteUser(username: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.delete', {\n\t\t\tusername,\n\t\t});\n\t}\n\n\tprivate async postAsAdmin(path: string, body: GenericData): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.post(path, adminIdAndToken.token, adminIdAndToken.id, body);\n\t}\n\n\tprivate async getAsAdmin(path: string): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.get(path, adminIdAndToken.token, adminIdAndToken.id);\n\t}\n\n\tprivate async get(path: string, authToken: string, userId: string): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.get(`${this.options.uri}${path}`, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as Type;\n\t}\n\n\tprivate async post(path: string, authToken: string, userId: string, body: GenericData): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}${path}`, body, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as GenericData;\n\t}\n\n\tprivate async getAdminIdAndToken(): Promise {\n\t\tthis.validateRocketChatConfig();\n\n\t\tif (this.adminIdAndToken) {\n\t\t\treturn this.adminIdAndToken;\n\t\t}\n\n\t\tif (this.options.adminId && this.options.adminToken) {\n\t\t\tconst newVar = { id: this.options.adminId, token: this.options.adminToken } as AdminIdAndToken;\n\t\t\tthis.adminIdAndToken = newVar;\n\t\t\treturn newVar;\n\t\t}\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}/api/v1/login`, {\n\t\t\t\t\tuser: this.options.adminUser,\n\t\t\t\t\tpassword: this.options.adminPassword,\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst responseJson = response?.data;\n\t\tthis.adminIdAndToken = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tid: responseJson.data.userId as string,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\ttoken: responseJson.data.authToken as string,\n\t\t} as AdminIdAndToken;\n\t\treturn this.adminIdAndToken;\n\t}\n\n\tprivate validateRocketChatConfig(): void {\n\t\tif (!this.options.uri) {\n\t\t\tthrow new Error('rocket chat uri not set');\n\t\t}\n\t\tif (!(this.options.adminId && this.options.adminToken) && !(this.options.adminUser && this.options.adminPassword)) {\n\t\t\tthrow new Error('rocket chat adminId and adminToken OR adminUser and adminPassword must be set');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RocketChatGroupModel.html":{"url":"interfaces/RocketChatGroupModel.html","title":"interface - RocketChatGroupModel","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RocketChatGroupModel\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n group\n \n \n \n \n success\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n group\n \n \n \n \n \n \n \n \n group: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n success\n \n \n \n \n \n \n \n \n success: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { lastValueFrom } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport interface RocketChatOptions {\n\turi?: string;\n\tadminUser?: string;\n\tadminPassword?: string;\n\tadminId?: string;\n\tadminToken?: string;\n}\n\nexport interface RocketChatGroupModel {\n\tgroup: {\n\t\t_id: string;\n\t\tname: string;\n\t\tfname: string;\n\t\tt: string;\n\t\tmsgs: number;\n\t\tusersCount: number;\n\t\tu: {\n\t\t\t_id: string;\n\t\t\tusername: string;\n\t\t};\n\t\tcustomfields: object;\n\t\tbroadcast: boolean;\n\t\tencrypted: boolean;\n\t\tts: Date;\n\t\tro: boolean;\n\t\tdefaults: boolean;\n\t\tsysmes: boolean;\n\t\t_updatedAt: Date;\n\t};\n\tsuccess: boolean;\n}\n\ntype GenericData = Record;\n\nexport class RocketChatError extends Error {\n\tprivate statusCode: number;\n\n\tprivate response: GenericData;\n\n\t// rocketchat specific error type\n\tprivate errorType: string;\n\n\tconstructor(e: any) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument\n\t\tsuper(e.response.statusText);\n\n\t\t// Set the prototype explicitly.\n\t\tObject.setPrototypeOf(this, RocketChatError.prototype);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\tthis.statusCode = e.response.statusCode;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.response = e.response.data;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.errorType = e.response.data.errorType;\n\t}\n}\n\ninterface AdminIdAndToken {\n\tid: string;\n\ttoken: string;\n}\n\n@Injectable()\nexport class RocketChatService {\n\tprivate adminIdAndToken?: AdminIdAndToken;\n\n\tconstructor(\n\t\t@Inject('ROCKET_CHAT_OPTIONS') private readonly options: RocketChatOptions,\n\t\tprivate readonly httpService: HttpService\n\t) {}\n\n\tpublic async me(authToken: string, userId: string): Promise {\n\t\treturn this.get('/api/v1/me', authToken, userId);\n\t}\n\n\tpublic async setUserStatus(authToken: string, userId: string, status: string): Promise {\n\t\treturn this.post('/api/v1/users.setStatus', authToken, userId, {\n\t\t\tmessage: '',\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic async createUserToken(userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.createToken', {\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async logoutUser(authToken: string, userId: string): Promise {\n\t\treturn this.post('/api/v1/logout', authToken, userId, {});\n\t}\n\n\tpublic async getUserList(queryString: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/users.list?${queryString}`);\n\t}\n\n\tpublic async unarchiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.unarchive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async archiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.archive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async kickUserFromGroup(groupName: string, userId: string): Promise {\n\t\tconst groupInfo: RocketChatGroupModel = await this.getGroupData(groupName);\n\n\t\treturn this.postAsAdmin('/api/v1/groups.kick', {\n\t\t\troomId: groupInfo.group._id,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async inviteUserToGroup(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.invite', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async addGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.addModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async removeGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.removeModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async getGroupModerators(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.moderators?roomName=${groupName}`);\n\t}\n\n\tpublic async getGroupMembers(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.members?roomName=${groupName}`);\n\t}\n\n\tprivate async getGroupData(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.info?roomName=${groupName}`);\n\t}\n\n\tpublic async createGroup(name: string, members: string[]): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.create', {\n\t\t\tname,\n\t\t\tmembers,\n\t\t});\n\t}\n\n\tpublic async deleteGroup(groupName: string): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.delete', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async createUser(email: string, password: string, username: string, name: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.create', {\n\t\t\temail,\n\t\t\tpassword,\n\t\t\tusername,\n\t\t\tname,\n\t\t\tverified: true,\n\t\t});\n\t}\n\n\tpublic async deleteUser(username: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.delete', {\n\t\t\tusername,\n\t\t});\n\t}\n\n\tprivate async postAsAdmin(path: string, body: GenericData): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.post(path, adminIdAndToken.token, adminIdAndToken.id, body);\n\t}\n\n\tprivate async getAsAdmin(path: string): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.get(path, adminIdAndToken.token, adminIdAndToken.id);\n\t}\n\n\tprivate async get(path: string, authToken: string, userId: string): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.get(`${this.options.uri}${path}`, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as Type;\n\t}\n\n\tprivate async post(path: string, authToken: string, userId: string, body: GenericData): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}${path}`, body, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as GenericData;\n\t}\n\n\tprivate async getAdminIdAndToken(): Promise {\n\t\tthis.validateRocketChatConfig();\n\n\t\tif (this.adminIdAndToken) {\n\t\t\treturn this.adminIdAndToken;\n\t\t}\n\n\t\tif (this.options.adminId && this.options.adminToken) {\n\t\t\tconst newVar = { id: this.options.adminId, token: this.options.adminToken } as AdminIdAndToken;\n\t\t\tthis.adminIdAndToken = newVar;\n\t\t\treturn newVar;\n\t\t}\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}/api/v1/login`, {\n\t\t\t\t\tuser: this.options.adminUser,\n\t\t\t\t\tpassword: this.options.adminPassword,\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst responseJson = response?.data;\n\t\tthis.adminIdAndToken = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tid: responseJson.data.userId as string,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\ttoken: responseJson.data.authToken as string,\n\t\t} as AdminIdAndToken;\n\t\treturn this.adminIdAndToken;\n\t}\n\n\tprivate validateRocketChatConfig(): void {\n\t\tif (!this.options.uri) {\n\t\t\tthrow new Error('rocket chat uri not set');\n\t\t}\n\t\tif (!(this.options.adminId && this.options.adminToken) && !(this.options.adminUser && this.options.adminPassword)) {\n\t\t\tthrow new Error('rocket chat adminId and adminToken OR adminUser and adminPassword must be set');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RocketChatModule.html":{"url":"modules/RocketChatModule.html","title":"module - RocketChatModule","body":"\n \n\n\n\n\n Modules\n RocketChatModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options: RocketChatOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.module.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n RocketChatOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { DynamicModule, Module } from '@nestjs/common';\nimport { RocketChatOptions, RocketChatService } from './rocket-chat.service';\n\n@Module({})\nexport class RocketChatModule {\n\tstatic forRoot(options: RocketChatOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: RocketChatModule,\n\t\t\timports: [HttpModule],\n\t\t\tproviders: [\n\t\t\t\tRocketChatService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'ROCKET_CHAT_OPTIONS',\n\t\t\t\t\tuseValue: options,\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [RocketChatService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RocketChatOptions.html":{"url":"interfaces/RocketChatOptions.html","title":"interface - RocketChatOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RocketChatOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n adminId\n \n \n \n Optional\n \n adminPassword\n \n \n \n Optional\n \n adminToken\n \n \n \n Optional\n \n adminUser\n \n \n \n Optional\n \n uri\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n adminId\n \n \n \n \n \n \n \n \n adminId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n adminPassword\n \n \n \n \n \n \n \n \n adminPassword: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n adminToken\n \n \n \n \n \n \n \n \n adminToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n adminUser\n \n \n \n \n \n \n \n \n adminUser: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n uri\n \n \n \n \n \n \n \n \n uri: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { lastValueFrom } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport interface RocketChatOptions {\n\turi?: string;\n\tadminUser?: string;\n\tadminPassword?: string;\n\tadminId?: string;\n\tadminToken?: string;\n}\n\nexport interface RocketChatGroupModel {\n\tgroup: {\n\t\t_id: string;\n\t\tname: string;\n\t\tfname: string;\n\t\tt: string;\n\t\tmsgs: number;\n\t\tusersCount: number;\n\t\tu: {\n\t\t\t_id: string;\n\t\t\tusername: string;\n\t\t};\n\t\tcustomfields: object;\n\t\tbroadcast: boolean;\n\t\tencrypted: boolean;\n\t\tts: Date;\n\t\tro: boolean;\n\t\tdefaults: boolean;\n\t\tsysmes: boolean;\n\t\t_updatedAt: Date;\n\t};\n\tsuccess: boolean;\n}\n\ntype GenericData = Record;\n\nexport class RocketChatError extends Error {\n\tprivate statusCode: number;\n\n\tprivate response: GenericData;\n\n\t// rocketchat specific error type\n\tprivate errorType: string;\n\n\tconstructor(e: any) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument\n\t\tsuper(e.response.statusText);\n\n\t\t// Set the prototype explicitly.\n\t\tObject.setPrototypeOf(this, RocketChatError.prototype);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\tthis.statusCode = e.response.statusCode;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.response = e.response.data;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.errorType = e.response.data.errorType;\n\t}\n}\n\ninterface AdminIdAndToken {\n\tid: string;\n\ttoken: string;\n}\n\n@Injectable()\nexport class RocketChatService {\n\tprivate adminIdAndToken?: AdminIdAndToken;\n\n\tconstructor(\n\t\t@Inject('ROCKET_CHAT_OPTIONS') private readonly options: RocketChatOptions,\n\t\tprivate readonly httpService: HttpService\n\t) {}\n\n\tpublic async me(authToken: string, userId: string): Promise {\n\t\treturn this.get('/api/v1/me', authToken, userId);\n\t}\n\n\tpublic async setUserStatus(authToken: string, userId: string, status: string): Promise {\n\t\treturn this.post('/api/v1/users.setStatus', authToken, userId, {\n\t\t\tmessage: '',\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic async createUserToken(userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.createToken', {\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async logoutUser(authToken: string, userId: string): Promise {\n\t\treturn this.post('/api/v1/logout', authToken, userId, {});\n\t}\n\n\tpublic async getUserList(queryString: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/users.list?${queryString}`);\n\t}\n\n\tpublic async unarchiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.unarchive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async archiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.archive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async kickUserFromGroup(groupName: string, userId: string): Promise {\n\t\tconst groupInfo: RocketChatGroupModel = await this.getGroupData(groupName);\n\n\t\treturn this.postAsAdmin('/api/v1/groups.kick', {\n\t\t\troomId: groupInfo.group._id,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async inviteUserToGroup(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.invite', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async addGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.addModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async removeGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.removeModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async getGroupModerators(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.moderators?roomName=${groupName}`);\n\t}\n\n\tpublic async getGroupMembers(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.members?roomName=${groupName}`);\n\t}\n\n\tprivate async getGroupData(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.info?roomName=${groupName}`);\n\t}\n\n\tpublic async createGroup(name: string, members: string[]): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.create', {\n\t\t\tname,\n\t\t\tmembers,\n\t\t});\n\t}\n\n\tpublic async deleteGroup(groupName: string): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.delete', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async createUser(email: string, password: string, username: string, name: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.create', {\n\t\t\temail,\n\t\t\tpassword,\n\t\t\tusername,\n\t\t\tname,\n\t\t\tverified: true,\n\t\t});\n\t}\n\n\tpublic async deleteUser(username: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.delete', {\n\t\t\tusername,\n\t\t});\n\t}\n\n\tprivate async postAsAdmin(path: string, body: GenericData): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.post(path, adminIdAndToken.token, adminIdAndToken.id, body);\n\t}\n\n\tprivate async getAsAdmin(path: string): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.get(path, adminIdAndToken.token, adminIdAndToken.id);\n\t}\n\n\tprivate async get(path: string, authToken: string, userId: string): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.get(`${this.options.uri}${path}`, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as Type;\n\t}\n\n\tprivate async post(path: string, authToken: string, userId: string, body: GenericData): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}${path}`, body, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as GenericData;\n\t}\n\n\tprivate async getAdminIdAndToken(): Promise {\n\t\tthis.validateRocketChatConfig();\n\n\t\tif (this.adminIdAndToken) {\n\t\t\treturn this.adminIdAndToken;\n\t\t}\n\n\t\tif (this.options.adminId && this.options.adminToken) {\n\t\t\tconst newVar = { id: this.options.adminId, token: this.options.adminToken } as AdminIdAndToken;\n\t\t\tthis.adminIdAndToken = newVar;\n\t\t\treturn newVar;\n\t\t}\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}/api/v1/login`, {\n\t\t\t\t\tuser: this.options.adminUser,\n\t\t\t\t\tpassword: this.options.adminPassword,\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst responseJson = response?.data;\n\t\tthis.adminIdAndToken = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tid: responseJson.data.userId as string,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\ttoken: responseJson.data.authToken as string,\n\t\t} as AdminIdAndToken;\n\t\treturn this.adminIdAndToken;\n\t}\n\n\tprivate validateRocketChatConfig(): void {\n\t\tif (!this.options.uri) {\n\t\t\tthrow new Error('rocket chat uri not set');\n\t\t}\n\t\tif (!(this.options.adminId && this.options.adminToken) && !(this.options.adminUser && this.options.adminPassword)) {\n\t\t\tthrow new Error('rocket chat adminId and adminToken OR adminUser and adminPassword must be set');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Role.html":{"url":"entities/Role.html","title":"entity - Role","body":"\n \n\n\n\n\n\n\n\n Entities\n Role\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/role.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n permissions\n \n \n \n roles\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Decorators : \n \n \n @Property()@Unique()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/role.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : Permission[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/role.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany({entity: 'Role'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/role.entity.ts:21\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, ManyToMany, Property, Unique } from '@mikro-orm/core';\nimport { Permission, RoleName } from '../interface';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IRoleProperties {\n\tpermissions?: Permission[];\n\troles?: Role[];\n\tname: RoleName;\n}\n\n@Entity({ tableName: 'roles' })\nexport class Role extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tname: RoleName;\n\n\t@Property()\n\tpermissions: Permission[] = [];\n\n\t@ManyToMany({ entity: 'Role' })\n\troles = new Collection(this);\n\n\tconstructor(props: IRoleProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.permissions) this.permissions = props.permissions;\n\t\tif (props.roles) this.roles.set(props.roles);\n\t}\n\n\tpublic resolvePermissions(): string[] {\n\t\tif (!this.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\n\t\tlet permissions: string[] = [...this.permissions];\n\n\t\tconst innerRoles = this.roles.getItems();\n\t\tinnerRoles.forEach((innerRole) => {\n\t\t\tconst innerPermissions = innerRole.resolvePermissions();\n\t\t\tpermissions = [...permissions, ...innerPermissions];\n\t\t});\n\n\t\tconst uniquePermissions = [...new Set(permissions)];\n\n\t\treturn uniquePermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoleDto.html":{"url":"classes/RoleDto.html","title":"class - RoleDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoleDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/role/service/dto/role.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n id\n \n \n name\n \n \n Optional\n permissions\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: RoleDto)\n \n \n \n \n Defined in apps/server/src/modules/role/service/dto/role.dto.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n RoleDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/role/service/dto/role.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Defined in apps/server/src/modules/role/service/dto/role.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n permissions\n \n \n \n \n \n \n Type : Permission[]\n\n \n \n \n \n Defined in apps/server/src/modules/role/service/dto/role.dto.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId, Permission, RoleName } from '@shared/domain';\n\nexport class RoleDto {\n\tid?: EntityId;\n\n\tname: RoleName;\n\n\tpermissions?: Permission[];\n\n\tconstructor(props: RoleDto) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t\tthis.permissions = props.permissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoleMapper.html":{"url":"classes/RoleMapper.html","title":"class - RoleMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoleMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/role/mapper/role.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n Static\n mapFromEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n \n \n \n \n \n mapFromEntitiesToDtos(enities: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/mapper/role.mapper.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n enities\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoleDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n \n \n \n mapFromEntityToDto(entity: Role)\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/mapper/role.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n Role\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoleDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Role } from '@shared/domain';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\n\nexport class RoleMapper {\n\tstatic mapFromEntityToDto(entity: Role): RoleDto {\n\t\treturn new RoleDto({\n\t\t\tid: entity.id,\n\t\t\tname: entity.name,\n\t\t\tpermissions: entity.permissions,\n\t\t});\n\t}\n\n\tstatic mapFromEntitiesToDtos(enities: Role[]): RoleDto[] {\n\t\treturn enities.map((entity) => this.mapFromEntityToDto(entity));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RoleModule.html":{"url":"modules/RoleModule.html","title":"module - RoleModule","body":"\n \n\n\n\n\n Modules\n RoleModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_RoleModule\n\n\n\ncluster_RoleModule_providers\n\n\n\ncluster_RoleModule_exports\n\n\n\n\nRoleRepo \n\nRoleRepo \n\n\n\nRoleService \n\nRoleService \n\n\n\nRoleUc \n\nRoleUc \n\n\n\nRoleModule\n\nRoleModule\n\nRoleRepo -->\n\nRoleModule->RoleRepo \n\n\n\nRoleService -->\n\nRoleModule->RoleService \n\n\n\nRoleUc -->\n\nRoleModule->RoleUc \n\n\n\n\n\nRoleRepo\n\nRoleRepo\n\nRoleModule -->\n\nRoleRepo->RoleModule\n\n\n\n\n\nRoleService\n\nRoleService\n\nRoleModule -->\n\nRoleService->RoleModule\n\n\n\n\n\nRoleUc\n\nRoleUc\n\nRoleModule -->\n\nRoleUc->RoleModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/role/role.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n RoleRepo\n \n \n RoleService\n \n \n RoleUc\n \n \n \n \n Exports\n \n \n RoleRepo\n \n \n RoleService\n \n \n RoleUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { RoleRepo } from '@shared/repo';\nimport { RoleService } from '@src/modules/role/service/role.service';\nimport { RoleUc } from '@src/modules/role/uc/role.uc';\n\n@Module({\n\tproviders: [RoleRepo, RoleService, RoleUc],\n\texports: [RoleService, RoleUc, RoleRepo],\n})\nexport class RoleModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoleNameMapper.html":{"url":"classes/RoleNameMapper.html","title":"class - RoleNameMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoleNameMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/mapper/role-name.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToDomain\n \n \n \n \n \n \n \n mapToDomain(roleName: FilterRoleType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/role-name.mapper.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleName\n \n FilterRoleType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IImportUserRoleName\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(roleName: IImportUserRoleName)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/role-name.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleName\n \n IImportUserRoleName\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserRole\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { RoleName, IImportUserRoleName } from '@shared/domain';\nimport { FilterRoleType, UserRole } from '../controller/dto';\n\nexport class RoleNameMapper {\n\tstatic mapToResponse(roleName: IImportUserRoleName): UserRole {\n\t\tif (roleName === RoleName.ADMINISTRATOR) return UserRole.ADMIN;\n\t\tif (roleName === RoleName.TEACHER) return UserRole.TEACHER;\n\t\tif (roleName === RoleName.STUDENT) return UserRole.STUDENT;\n\t\tthrow Error('invalid role name from domain');\n\t}\n\n\tstatic mapToDomain(roleName: FilterRoleType): IImportUserRoleName {\n\t\tif (roleName === FilterRoleType.ADMIN) return RoleName.ADMINISTRATOR;\n\t\tif (roleName === FilterRoleType.TEACHER) return RoleName.TEACHER;\n\t\tif (roleName === FilterRoleType.STUDENT) return RoleName.STUDENT;\n\t\tthrow Error('invalid role name from query');\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoleReference.html":{"url":"classes/RoleReference.html","title":"class - RoleReference","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoleReference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/role-reference.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: RoleReference)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/role-reference.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n RoleReference\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/role-reference.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/role-reference.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { RoleName } from '../interface';\nimport { EntityId } from '../types';\n\nexport class RoleReference {\n\tid: EntityId;\n\n\tname: RoleName;\n\n\tconstructor(props: RoleReference) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoleRepo.html":{"url":"injectables/RoleRepo.html","title":"injectable - RoleRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoleRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/role/role.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n cacheExpiration\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findByIds\n \n \n Async\n findByName\n \n \n Async\n findByNames\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByIds\n \n \n \n \n \n \n \n findByIds(ids: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ids\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByName\n \n \n \n \n \n \n \n findByName(name: RoleName)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n RoleName\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByNames\n \n \n \n \n \n \n \n findByNames(names: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n names\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n cacheExpiration\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 60000\n \n \n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:11\n \n \n\n\n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:7\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Role, RoleName } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class RoleRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Role;\n\t}\n\n\tcacheExpiration = 60000;\n\n\tasync findByName(name: RoleName): Promise {\n\t\tconst promise: Promise = this._em.findOneOrFail(Role, { name }, { cache: this.cacheExpiration });\n\t\treturn promise;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst promise: Promise = this._em.findOneOrFail(Role, { id }, { cache: this.cacheExpiration });\n\t\treturn promise;\n\t}\n\n\tasync findByNames(names: RoleName[]): Promise {\n\t\tconst promise: Promise = this._em.find(Role, { name: { $in: names } }, { cache: this.cacheExpiration });\n\t\treturn promise;\n\t}\n\n\tasync findByIds(ids: string[]): Promise {\n\t\tconst promise: Promise = this._em.find(Role, { id: { $in: ids } }, { cache: this.cacheExpiration });\n\t\treturn promise;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoleService.html":{"url":"injectables/RoleService.html","title":"injectable - RoleService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoleService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/role/service/role.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findByIds\n \n \n Async\n findByNames\n \n \n Async\n getProtectedRoles\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(roleRepo: RoleRepo)\n \n \n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleRepo\n \n \n RoleRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByIds\n \n \n \n \n \n \n \n findByIds(ids: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ids\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByNames\n \n \n \n \n \n \n \n findByNames(names: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n names\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getProtectedRoles\n \n \n \n \n \n \n \n getProtectedRoles()\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:11\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Role, RoleName } from '@shared/domain';\nimport { RoleRepo } from '@shared/repo';\nimport { RoleMapper } from '../mapper/role.mapper';\nimport { RoleDto } from './dto/role.dto';\n\n@Injectable()\nexport class RoleService {\n\tconstructor(private readonly roleRepo: RoleRepo) {}\n\n\tasync getProtectedRoles(): Promise {\n\t\tconst roleDtos: RoleDto[] = await this.findByNames([RoleName.ADMINISTRATOR, RoleName.TEACHER]);\n\t\treturn roleDtos;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst entity: Role = await this.roleRepo.findById(id);\n\t\tconst roleDto: RoleDto = RoleMapper.mapFromEntityToDto(entity);\n\t\treturn roleDto;\n\t}\n\n\tasync findByIds(ids: EntityId[]): Promise {\n\t\tconst roles: Role[] = await this.roleRepo.findByIds(ids);\n\t\tconst roleDtos: RoleDto[] = RoleMapper.mapFromEntitiesToDtos(roles);\n\t\treturn roleDtos;\n\t}\n\n\tasync findByNames(names: RoleName[]): Promise {\n\t\tconst entities: Role[] = await this.roleRepo.findByNames(names);\n\t\tconst roleDtos: RoleDto[] = RoleMapper.mapFromEntitiesToDtos(entities);\n\t\treturn roleDtos;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoleUc.html":{"url":"injectables/RoleUc.html","title":"injectable - RoleUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoleUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/role/uc/role.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findByNames\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(roleService: RoleService)\n \n \n \n \n Defined in apps/server/src/modules/role/uc/role.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleService\n \n \n RoleService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findByNames\n \n \n \n \n \n \n \n findByNames(names: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/uc/role.uc.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n names\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { RoleService } from '@src/modules/role/service/role.service';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\nimport { Injectable } from '@nestjs/common';\nimport { RoleName } from '@shared/domain';\n\n@Injectable()\nexport class RoleUc {\n\tconstructor(private readonly roleService: RoleService) {}\n\n\tasync findByNames(names: RoleName[]): Promise {\n\t\tconst promise: Promise = this.roleService.findByNames(names);\n\t\treturn promise;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomBoardDTOFactory.html":{"url":"injectables/RoomBoardDTOFactory.html","title":"injectable - RoomBoardDTOFactory","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomBoardDTOFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n createDTO\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorisationService: AuthorizationService, roomsAuthorisationService: RoomsAuthorisationService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:187\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorisationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n roomsAuthorisationService\n \n \n RoomsAuthorisationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createDTO\n \n \n \n \n \n \ncreateDTO(undefined: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:193\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardDTO\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tBoard,\n\tBoardElement,\n\tBoardElementType,\n\tColumnboardBoardElement,\n\tColumnBoardTarget,\n\tCourse,\n\tITaskStatus,\n\tLessonEntity,\n\tPermission,\n\tTask,\n\tTaskWithStatusVo,\n\tUser,\n} from '@shared/domain';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport {\n\tColumnBoardMetaData,\n\tLessonMetaData,\n\tRoomBoardDTO,\n\tRoomBoardElementDTO,\n\tRoomBoardElementTypes,\n} from '../types/room-board.types';\nimport { RoomsAuthorisationService } from './rooms.authorisation.service';\n\nclass DtoCreator {\n\troom: Course;\n\n\tboard: Board;\n\n\tuser: User;\n\n\tauthorisationService: AuthorizationService;\n\n\troomsAuthorisationService: RoomsAuthorisationService;\n\n\tconstructor({\n\t\troom,\n\t\tboard,\n\t\tuser,\n\t\tauthorisationService,\n\t\troomsAuthorisationService,\n\t}: {\n\t\troom: Course;\n\t\tboard: Board;\n\t\tuser: User;\n\t\tauthorisationService: AuthorizationService;\n\t\troomsAuthorisationService: RoomsAuthorisationService;\n\t}) {\n\t\tthis.room = room;\n\t\tthis.board = board;\n\t\tthis.user = user;\n\t\tthis.authorisationService = authorisationService;\n\t\tthis.roomsAuthorisationService = roomsAuthorisationService;\n\t}\n\n\tmanufacture(): RoomBoardDTO {\n\t\tconst elements = this.board.getElements();\n\t\tconst filtered = this.filterByPermission(elements);\n\n\t\tconst mappedElements = this.mapToElementDTOs(filtered);\n\t\tconst dto = this.buildDTOWithElements(mappedElements);\n\t\treturn dto;\n\t}\n\n\tprivate filterByPermission(elements: BoardElement[]) {\n\t\tconst filtered = elements.filter((element) => {\n\t\t\tlet result = false;\n\t\t\tif (element.boardElementType === BoardElementType.Task) {\n\t\t\t\tresult = this.roomsAuthorisationService.hasTaskReadPermission(this.user, element.target as Task);\n\t\t\t}\n\n\t\t\tif (element.boardElementType === BoardElementType.Lesson) {\n\t\t\t\tresult = this.roomsAuthorisationService.hasLessonReadPermission(this.user, element.target as LessonEntity);\n\t\t\t}\n\n\t\t\tif (element instanceof ColumnboardBoardElement && this.isColumnBoardFeatureFlagActive()) {\n\t\t\t\tresult = this.authorisationService.hasPermission(this.user, this.room, {\n\t\t\t\t\taction: Action.read,\n\t\t\t\t\trequiredPermissions: [Permission.COURSE_VIEW],\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\t\treturn filtered;\n\t}\n\n\tprivate isColumnBoardFeatureFlagActive() {\n\t\tconst isActive = (Configuration.get('FEATURE_COLUMN_BOARD_ENABLED') as boolean) === true;\n\n\t\treturn isActive;\n\t}\n\n\tprivate isTeacher(): boolean {\n\t\tif (this.room.teachers.contains(this.user) || this.room.substitutionTeachers.contains(this.user)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate mapToElementDTOs(elements: BoardElement[]) {\n\t\tconst results: RoomBoardElementDTO[] = [];\n\t\telements.forEach((element) => {\n\t\t\tif (element.boardElementType === BoardElementType.Task) {\n\t\t\t\tconst mapped = this.mapTaskElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t\tif (element.boardElementType === BoardElementType.Lesson) {\n\t\t\t\tconst mapped = this.mapLessonElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t\tif (element.boardElementType === BoardElementType.ColumnBoard) {\n\t\t\t\tconst mapped = this.mapColumnBoardElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t}\n\n\tprivate mapTaskElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst task = element.target as Task;\n\t\tconst status = this.createTaskStatus(task);\n\n\t\tconst content = new TaskWithStatusVo(task, status);\n\t\treturn { type: RoomBoardElementTypes.TASK, content };\n\t}\n\n\tprivate createTaskStatus(task: Task): ITaskStatus {\n\t\tlet status: ITaskStatus;\n\t\tif (this.isTeacher()) {\n\t\t\tstatus = task.createTeacherStatusForUser(this.user);\n\t\t} else {\n\t\t\tstatus = task.createStudentStatusForUser(this.user);\n\t\t}\n\t\treturn status;\n\t}\n\n\tprivate mapLessonElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst type = RoomBoardElementTypes.LESSON;\n\t\tconst lesson = element.target as LessonEntity;\n\t\tconst content: LessonMetaData = {\n\t\t\tid: lesson.id,\n\t\t\tname: lesson.name,\n\t\t\thidden: lesson.hidden,\n\t\t\tcreatedAt: lesson.createdAt,\n\t\t\tupdatedAt: lesson.updatedAt,\n\t\t\tcourseName: lesson.course.name,\n\t\t\tnumberOfPublishedTasks: lesson.getNumberOfPublishedTasks(),\n\t\t};\n\t\tif (this.isTeacher()) {\n\t\t\tcontent.numberOfDraftTasks = lesson.getNumberOfDraftTasks();\n\t\t\tcontent.numberOfPlannedTasks = lesson.getNumberOfPlannedTasks();\n\t\t}\n\t\treturn { type, content };\n\t}\n\n\tprivate mapColumnBoardElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst type = RoomBoardElementTypes.COLUMN_BOARD;\n\t\tconst columnBoardTarget = element.target as ColumnBoardTarget;\n\t\tconst content: ColumnBoardMetaData = {\n\t\t\tid: columnBoardTarget.id,\n\t\t\tcolumnBoardId: columnBoardTarget.columnBoardId,\n\t\t\ttitle: columnBoardTarget.title,\n\t\t\tcreatedAt: columnBoardTarget.createdAt,\n\t\t\tupdatedAt: columnBoardTarget.updatedAt,\n\t\t\tpublished: columnBoardTarget.published,\n\t\t};\n\n\t\treturn { type, content };\n\t}\n\n\tprivate buildDTOWithElements(elements: RoomBoardElementDTO[]): RoomBoardDTO {\n\t\tconst dto = {\n\t\t\troomId: this.room.id,\n\t\t\tdisplayColor: this.room.color,\n\t\t\ttitle: this.room.name,\n\t\t\telements,\n\t\t\tisArchived: this.room.isFinished(),\n\t\t};\n\t\treturn dto;\n\t}\n}\n\n@Injectable()\nexport class RoomBoardDTOFactory {\n\tconstructor(\n\t\tprivate readonly authorisationService: AuthorizationService,\n\t\tprivate readonly roomsAuthorisationService: RoomsAuthorisationService\n\t) {}\n\n\tcreateDTO({ room, board, user }: { room: Course; board: Board; user: User }): RoomBoardDTO {\n\t\tconst worker = new DtoCreator({\n\t\t\troom,\n\t\t\tboard,\n\t\t\tuser,\n\t\t\tauthorisationService: this.authorisationService,\n\t\t\troomsAuthorisationService: this.roomsAuthorisationService,\n\t\t});\n\t\tconst result = worker.manufacture();\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomBoardResponseMapper.html":{"url":"injectables/RoomBoardResponseMapper.html","title":"injectable - RoomBoardResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomBoardResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n mapBoardElements\n \n \n Private\n mapColumnBoard\n \n \n Private\n mapLesson\n \n \n Private\n mapTask\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(board: RoomBoardDTO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n RoomBoardDTO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SingleColumnBoardResponse\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n mapBoardElements\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n mapColumnBoard\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:93\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n mapLesson\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:73\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n mapTask\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:47\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, TaskWithStatusVo } from '@shared/domain';\nimport {\n\tBoardElementResponse,\n\tBoardLessonResponse,\n\tBoardTaskResponse,\n\tSingleColumnBoardResponse,\n} from '../controller/dto';\nimport { BoardColumnBoardResponse } from '../controller/dto/single-column-board/board-column-board.response';\nimport { ColumnBoardMetaData, LessonMetaData, RoomBoardDTO, RoomBoardElementTypes } from '../types';\nimport { BoardTaskStatusMapper } from './board-taskStatus.mapper';\n\n@Injectable()\nexport class RoomBoardResponseMapper {\n\tmapToResponse(board: RoomBoardDTO): SingleColumnBoardResponse {\n\t\tconst elements = this.mapBoardElements(board);\n\n\t\tconst mapped = new SingleColumnBoardResponse({\n\t\t\troomId: board.roomId,\n\t\t\ttitle: board.title,\n\t\t\tdisplayColor: board.displayColor,\n\t\t\telements,\n\t\t\tisArchived: board.isArchived,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tprivate mapBoardElements = (board: RoomBoardDTO): BoardElementResponse[] => {\n\t\tconst elements: BoardElementResponse[] = [];\n\t\tboard.elements.forEach((element) => {\n\t\t\tif (element.type === RoomBoardElementTypes.TASK) {\n\t\t\t\telements.push(this.mapTask(element.content as TaskWithStatusVo));\n\t\t\t}\n\n\t\t\tif (element.type === RoomBoardElementTypes.LESSON) {\n\t\t\t\telements.push(this.mapLesson(element.content as LessonMetaData));\n\t\t\t}\n\n\t\t\tif (element.type === RoomBoardElementTypes.COLUMN_BOARD) {\n\t\t\t\telements.push(this.mapColumnBoard(element.content as ColumnBoardMetaData));\n\t\t\t}\n\t\t});\n\t\treturn elements;\n\t};\n\n\tprivate mapTask = (taskWithStatus: TaskWithStatusVo): BoardElementResponse => {\n\t\tconst { task: boardTask, status } = taskWithStatus;\n\t\tconst boardTaskDesc = boardTask.getParentData();\n\t\tconst boardTaskStatus = BoardTaskStatusMapper.mapToResponse(status);\n\n\t\tconst mappedTask = new BoardTaskResponse({\n\t\t\tid: boardTask.id,\n\t\t\tname: boardTask.name,\n\t\t\tcreatedAt: boardTask.createdAt,\n\t\t\tupdatedAt: boardTask.updatedAt,\n\t\t\tstatus: boardTaskStatus,\n\t\t});\n\n\t\tconst taskCourse = boardTask.course as Course;\n\t\tmappedTask.courseName = taskCourse.name;\n\t\tmappedTask.availableDate = boardTask.availableDate;\n\t\tmappedTask.dueDate = boardTask.dueDate;\n\t\tmappedTask.displayColor = boardTaskDesc.color;\n\t\tmappedTask.description = boardTask.description;\n\t\tconst boardElementResponse = new BoardElementResponse({\n\t\t\ttype: RoomBoardElementTypes.TASK,\n\t\t\tcontent: mappedTask,\n\t\t});\n\t\treturn boardElementResponse;\n\t};\n\n\tprivate mapLesson = (lesson: LessonMetaData): BoardElementResponse => {\n\t\tconst mappedLesson = new BoardLessonResponse({\n\t\t\tid: lesson.id,\n\t\t\tname: lesson.name,\n\t\t\thidden: lesson.hidden,\n\t\t\tcreatedAt: lesson.createdAt,\n\t\t\tupdatedAt: lesson.updatedAt,\n\t\t\tnumberOfPublishedTasks: lesson.numberOfPublishedTasks,\n\t\t\tnumberOfDraftTasks: lesson.numberOfDraftTasks,\n\t\t\tnumberOfPlannedTasks: lesson.numberOfPlannedTasks,\n\t\t\tcourseName: lesson.courseName,\n\t\t});\n\n\t\tconst boardElementResponse = new BoardElementResponse({\n\t\t\ttype: RoomBoardElementTypes.LESSON,\n\t\t\tcontent: mappedLesson,\n\t\t});\n\t\treturn boardElementResponse;\n\t};\n\n\tprivate mapColumnBoard = (columnBoardInfo: ColumnBoardMetaData): BoardElementResponse => {\n\t\tconst mappedColumnBoard = new BoardColumnBoardResponse({\n\t\t\tid: columnBoardInfo.id,\n\t\t\tcolumnBoardId: columnBoardInfo.columnBoardId,\n\t\t\ttitle: columnBoardInfo.title,\n\t\t\tpublished: columnBoardInfo.published,\n\t\t\tcreatedAt: columnBoardInfo.createdAt,\n\t\t\tupdatedAt: columnBoardInfo.updatedAt,\n\t\t});\n\n\t\tconst boardElementResponse = new BoardElementResponse({\n\t\t\ttype: RoomBoardElementTypes.COLUMN_BOARD,\n\t\t\tcontent: mappedColumnBoard,\n\t\t});\n\t\treturn boardElementResponse;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoomElementUrlParams.html":{"url":"classes/RoomElementUrlParams.html","title":"class - RoomElementUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoomElementUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/room-element.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n elementId\n \n \n \n \n roomId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n elementId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the element within the room.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/room-element.url.params.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n roomId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the room.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/room-element.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class RoomElementUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the room.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\troomId!: string;\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the element within the room.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\telementId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoomUrlParams.html":{"url":"classes/RoomUrlParams.html","title":"class - RoomUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoomUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/room.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n roomId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n roomId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the room.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/room.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class RoomUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the room.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\troomId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomsAuthorisationService.html":{"url":"injectables/RoomsAuthorisationService.html","title":"injectable - RoomsAuthorisationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomsAuthorisationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n hasCourseReadPermission\n \n \n hasCourseWritePermission\n \n \n hasLessonReadPermission\n \n \n hasTaskReadPermission\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n hasCourseReadPermission\n \n \n \n \n \n \nhasCourseReadPermission(user: User, course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasCourseWritePermission\n \n \n \n \n \n \nhasCourseWritePermission(user: User, course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasLessonReadPermission\n \n \n \n \n \n \nhasLessonReadPermission(user: User, lesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n lesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasTaskReadPermission\n \n \n \n \n \n \nhasTaskReadPermission(user: User, task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { Course, LessonEntity, Task, User } from '@shared/domain';\n\nexport enum TaskParentPermission {\n\tread,\n\twrite,\n}\n\n@Injectable()\nexport class RoomsAuthorisationService {\n\thasCourseWritePermission(user: User, course: Course): boolean {\n\t\tconst hasPermission = course.substitutionTeachers.contains(user) || course.teachers.contains(user);\n\n\t\treturn hasPermission;\n\t}\n\n\thasCourseReadPermission(user: User, course: Course): boolean {\n\t\tconst hasPermission =\n\t\t\tcourse.students.contains(user) || course.substitutionTeachers.contains(user) || course.teachers.contains(user);\n\n\t\treturn hasPermission;\n\t}\n\n\thasTaskReadPermission(user: User, task: Task): boolean {\n\t\tconst isCreator = task.creator === user;\n\t\tlet hasCoursePermission = false;\n\n\t\tif (task.lesson) {\n\t\t\tthrow new NotImplementedException('rooms currenlty do not support tasks in lessons');\n\t\t}\n\n\t\tif (task.course) {\n\t\t\thasCoursePermission = this.hasCourseReadPermission(user, task.course);\n\n\t\t\tif (!task.isPublished()) {\n\t\t\t\thasCoursePermission = this.hasCourseWritePermission(user, task.course);\n\t\t\t}\n\t\t}\n\n\t\tconst hasPermission = isCreator || hasCoursePermission;\n\n\t\treturn hasPermission;\n\t}\n\n\thasLessonReadPermission(user: User, lesson: LessonEntity): boolean {\n\t\tlet hasCoursePermission = false;\n\t\thasCoursePermission = this.hasCourseReadPermission(user, lesson.course);\n\t\tif (lesson.hidden) {\n\t\t\thasCoursePermission = this.hasCourseWritePermission(user, lesson.course);\n\t\t}\n\n\t\treturn hasCoursePermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/RoomsController.html":{"url":"controllers/RoomsController.html","title":"controller - RoomsController","body":"\n \n\n\n\n\n\n\n Controllers\n RoomsController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/rooms.controller.ts\n \n\n \n Prefix\n \n \n rooms\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n copyCourse\n \n \n \n \n Async\n copyLesson\n \n \n \n Async\n getRoomBoard\n \n \n \n Async\n patchElementVisibility\n \n \n \n Async\n patchOrderingOfElements\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n copyCourse\n \n \n \n \n \n \n \n copyCourse(currentUser: ICurrentUser, urlParams: RoomUrlParams)\n \n \n\n \n \n Decorators : \n \n @Post(':roomId/copy')@RequestTimeout(undefined.INCOMING_REQUEST_TIMEOUT_COPY_API)\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n RoomUrlParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(currentUser: ICurrentUser, urlParams: LessonUrlParams, params: LessonCopyApiParams)\n \n \n\n \n \n Decorators : \n \n @Post('lessons/:lessonId/copy')@RequestTimeout(undefined.INCOMING_REQUEST_TIMEOUT_COPY_API)\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n LessonUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyApiParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getRoomBoard\n \n \n \n \n \n \n \n getRoomBoard(urlParams: RoomUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get(':roomId/board')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n RoomUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchElementVisibility\n \n \n \n \n \n \n \n patchElementVisibility(urlParams: RoomElementUrlParams, params: PatchVisibilityParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':roomId/elements/:elementId/visibility')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n RoomElementUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n PatchVisibilityParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchOrderingOfElements\n \n \n \n \n \n \n \n patchOrderingOfElements(urlParams: RoomUrlParams, params: PatchOrderParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':roomId/board/order')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n RoomUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n PatchOrderParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { RequestTimeout } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CopyApiResponse, CopyMapper } from '@src/modules/copy-helper';\nimport { serverConfig } from '@src/modules/server/server.config';\nimport { RoomBoardResponseMapper } from '../mapper/room-board-response.mapper';\nimport { CourseCopyUC } from '../uc/course-copy.uc';\nimport { LessonCopyUC } from '../uc/lesson-copy.uc';\nimport { RoomsUc } from '../uc/rooms.uc';\nimport {\n\tLessonCopyApiParams,\n\tLessonUrlParams,\n\tPatchOrderParams,\n\tPatchVisibilityParams,\n\tRoomElementUrlParams,\n\tRoomUrlParams,\n\tSingleColumnBoardResponse,\n} from './dto';\n\n@ApiTags('Rooms')\n@Authenticate('jwt')\n@Controller('rooms')\nexport class RoomsController {\n\tconstructor(\n\t\tprivate readonly roomsUc: RoomsUc,\n\t\tprivate readonly mapper: RoomBoardResponseMapper,\n\t\tprivate readonly courseCopyUc: CourseCopyUC,\n\t\tprivate readonly lessonCopyUc: LessonCopyUC\n\t) {}\n\n\t@Get(':roomId/board')\n\tasync getRoomBoard(\n\t\t@Param() urlParams: RoomUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst board = await this.roomsUc.getBoard(urlParams.roomId, currentUser.userId);\n\t\tconst mapped = this.mapper.mapToResponse(board);\n\t\treturn mapped;\n\t}\n\n\t@Patch(':roomId/elements/:elementId/visibility')\n\tasync patchElementVisibility(\n\t\t@Param() urlParams: RoomElementUrlParams,\n\t\t@Body() params: PatchVisibilityParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.roomsUc.updateVisibilityOfBoardElement(\n\t\t\turlParams.roomId,\n\t\t\turlParams.elementId,\n\t\t\tcurrentUser.userId,\n\t\t\tparams.visibility\n\t\t);\n\t}\n\n\t@Patch(':roomId/board/order')\n\tasync patchOrderingOfElements(\n\t\t@Param() urlParams: RoomUrlParams,\n\t\t@Body() params: PatchOrderParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.roomsUc.reorderBoardElements(urlParams.roomId, currentUser.userId, params.elements);\n\t}\n\n\t@Post(':roomId/copy')\n\t@RequestTimeout(serverConfig().INCOMING_REQUEST_TIMEOUT_COPY_API)\n\tasync copyCourse(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: RoomUrlParams\n\t): Promise {\n\t\tconst copyStatus = await this.courseCopyUc.copyCourse(currentUser.userId, urlParams.roomId);\n\t\tconst dto = CopyMapper.mapToResponse(copyStatus);\n\t\treturn dto;\n\t}\n\n\t@Post('lessons/:lessonId/copy')\n\t@RequestTimeout(serverConfig().INCOMING_REQUEST_TIMEOUT_COPY_API)\n\tasync copyLesson(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: LessonUrlParams,\n\t\t@Body() params: LessonCopyApiParams\n\t): Promise {\n\t\tconst copyStatus = await this.lessonCopyUc.copyLesson(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.lessonId,\n\t\t\tCopyMapper.mapLessonCopyToDomain(params, currentUser.userId)\n\t\t);\n\t\tconst dto = CopyMapper.mapToResponse(copyStatus);\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomsService.html":{"url":"injectables/RoomsService.html","title":"injectable - RoomsService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomsService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/rooms.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n handleColumnBoardIntegration\n \n \n Async\n updateBoard\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(taskService: TaskService, lessonRepo: LessonRepo, boardRepo: BoardRepo, columnBoardService: ColumnBoardService, columnBoardTargetService: ColumnBoardTargetService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/rooms.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskService\n \n \n TaskService\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n boardRepo\n \n \n BoardRepo\n \n \n \n No\n \n \n \n \n columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \n \n \n \n columnBoardTargetService\n \n \n ColumnBoardTargetService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n handleColumnBoardIntegration\n \n \n \n \n \n \n \n handleColumnBoardIntegration(roomId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/rooms.service.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateBoard\n \n \n \n \n \n \n \n updateBoard(board: Board, roomId: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/rooms.service.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n Board\n \n\n \n No\n \n\n\n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport { Board, BoardExternalReferenceType, ColumnBoardTarget, EntityId } from '@shared/domain';\nimport { BoardRepo, LessonRepo } from '@shared/repo';\nimport { ColumnBoardService } from '@src/modules/board';\nimport { TaskService } from '@src/modules/task/service';\nimport { ColumnBoardTargetService } from './column-board-target.service';\n\n@Injectable()\nexport class RoomsService {\n\tconstructor(\n\t\tprivate readonly taskService: TaskService,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly boardRepo: BoardRepo,\n\t\tprivate readonly columnBoardService: ColumnBoardService,\n\t\tprivate readonly columnBoardTargetService: ColumnBoardTargetService\n\t) {}\n\n\tasync updateBoard(board: Board, roomId: EntityId, userId: EntityId): Promise {\n\t\tconst [courseLessons] = await this.lessonRepo.findAllByCourseIds([roomId]);\n\t\tconst [courseTasks] = await this.taskService.findBySingleParent(userId, roomId);\n\n\t\tconst courseColumnBoardTargets = await this.handleColumnBoardIntegration(roomId);\n\n\t\tconst boardElementTargets = [...courseLessons, ...courseTasks, ...courseColumnBoardTargets];\n\n\t\tboard.syncBoardElementReferences(boardElementTargets);\n\n\t\tawait this.boardRepo.save(board);\n\t\treturn board;\n\t}\n\n\tprivate async handleColumnBoardIntegration(roomId: EntityId): Promise {\n\t\tlet courseColumnBoardTargets: ColumnBoardTarget[] = [];\n\n\t\tif ((Configuration.get('FEATURE_COLUMN_BOARD_ENABLED') as boolean) === true) {\n\t\t\tconst courseReference = {\n\t\t\t\ttype: BoardExternalReferenceType.Course,\n\t\t\t\tid: roomId,\n\t\t\t};\n\n\t\t\tconst columnBoardIds = await this.columnBoardService.findIdsByExternalReference(courseReference);\n\t\t\tif (columnBoardIds.length === 0) {\n\t\t\t\tconst columnBoard = await this.columnBoardService.createWelcomeColumnBoard(courseReference);\n\t\t\t\tcolumnBoardIds.push(columnBoard.id);\n\t\t\t}\n\n\t\t\tcourseColumnBoardTargets = await this.columnBoardTargetService.findOrCreateTargets(columnBoardIds);\n\t\t}\n\t\treturn courseColumnBoardTargets;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomsUc.html":{"url":"injectables/RoomsUc.html","title":"injectable - RoomsUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomsUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/rooms.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getBoard\n \n \n Async\n reorderBoardElements\n \n \n Async\n updateVisibilityOfBoardElement\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRepo: CourseRepo, userRepo: UserRepo, boardRepo: BoardRepo, factory: RoomBoardDTOFactory, authorisationService: RoomsAuthorisationService, roomsService: RoomsService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.uc.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n boardRepo\n \n \n BoardRepo\n \n \n \n No\n \n \n \n \n factory\n \n \n RoomBoardDTOFactory\n \n \n \n No\n \n \n \n \n authorisationService\n \n \n RoomsAuthorisationService\n \n \n \n No\n \n \n \n \n roomsService\n \n \n RoomsService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getBoard\n \n \n \n \n \n \n \n getBoard(roomId: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.uc.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n reorderBoardElements\n \n \n \n \n \n \n \n reorderBoardElements(roomId: EntityId, userId: EntityId, orderedList: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.uc.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n orderedList\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateVisibilityOfBoardElement\n \n \n \n \n \n \n \n updateVisibilityOfBoardElement(roomId: EntityId, elementId: EntityId, userId: EntityId, visibility: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.uc.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n visibility\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { BoardRepo, CourseRepo, UserRepo } from '@shared/repo';\nimport { RoomsService } from '../service/rooms.service';\nimport { RoomBoardDTO } from '../types';\nimport { RoomBoardDTOFactory } from './room-board-dto.factory';\nimport { RoomsAuthorisationService } from './rooms.authorisation.service';\n\n@Injectable()\nexport class RoomsUc {\n\tconstructor(\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly boardRepo: BoardRepo,\n\t\tprivate readonly factory: RoomBoardDTOFactory,\n\t\tprivate readonly authorisationService: RoomsAuthorisationService,\n\t\tprivate readonly roomsService: RoomsService\n\t) {}\n\n\tasync getBoard(roomId: EntityId, userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\t\tconst course = await this.courseRepo.findOne(roomId, userId);\n\t\tconst board = await this.boardRepo.findByCourseId(roomId);\n\n\t\tawait this.roomsService.updateBoard(board, roomId, userId);\n\n\t\tconst roomBoardDTO = this.factory.createDTO({ room: course, board, user });\n\t\treturn roomBoardDTO;\n\t}\n\n\tasync updateVisibilityOfBoardElement(\n\t\troomId: EntityId,\n\t\telementId: EntityId,\n\t\tuserId: EntityId,\n\t\tvisibility: boolean\n\t): Promise {\n\t\tconst user = await this.userRepo.findById(userId);\n\t\tconst course = await this.courseRepo.findOne(roomId, userId);\n\t\tif (!this.authorisationService.hasCourseWritePermission(user, course)) {\n\t\t\tthrow new ForbiddenException('you are not allowed to edit this');\n\t\t}\n\t\tconst board = await this.boardRepo.findByCourseId(course.id);\n\t\tconst element = board.getByTargetId(elementId);\n\t\tif (visibility) {\n\t\t\telement.publish();\n\t\t} else {\n\t\t\telement.unpublish();\n\t\t}\n\t\tawait this.boardRepo.save(board);\n\t}\n\n\tasync reorderBoardElements(roomId: EntityId, userId: EntityId, orderedList: EntityId[]): Promise {\n\t\tconst user = await this.userRepo.findById(userId);\n\t\tconst course = await this.courseRepo.findOne(roomId, userId);\n\t\tif (!this.authorisationService.hasCourseWritePermission(user, course)) {\n\t\t\tthrow new ForbiddenException('you are not allowed to edit this');\n\t\t}\n\t\tconst board = await this.boardRepo.findByCourseId(course.id);\n\t\tboard.reorderElements(orderedList);\n\t\tawait this.boardRepo.save(board);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RpcMessage.html":{"url":"interfaces/RpcMessage.html","title":"interface - RpcMessage","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RpcMessage\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/rpc-message.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n error\n \n \n \n \n message\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n error\n \n \n \n \n \n \n \n \n error: IError\n\n \n \n\n\n \n \n Type : IError\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n message\n \n \n \n \n \n \n \n \n message: T\n\n \n \n\n\n \n \n Type : T\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IError extends Error {\n\tstatus?: number;\n\tmessage: never;\n}\nexport interface RpcMessage {\n\tmessage: T;\n\terror?: IError;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Rule.html":{"url":"interfaces/Rule.html","title":"interface - Rule","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Rule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/types/rule.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n hasPermission\n \n \n \n \n isApplicable\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n hasPermission\n \n \n \n \n \n \nhasPermission(user: User, object: T, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/types/rule.interface.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n T\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isApplicable\n \n \n \n \n \n \nisApplicable(user: User, object: T, context?: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/types/rule.interface.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n T\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BaseDO, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object'; // fix import when it is avaible\nimport { AuthorizationContext } from './authorization-context.interface';\n\nexport interface Rule {\n\tisApplicable(user: User, object: T, context?: AuthorizationContext): boolean;\n\thasPermission(user: User, object: T, context: AuthorizationContext): boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RuleManager.html":{"url":"injectables/RuleManager.html","title":"injectable - RuleManager","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RuleManager\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/rule-manager.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n rules\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n matchSingleRule\n \n \n Public\n selectRule\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRule: CourseRule, courseGroupRule: CourseGroupRule, lessonRule: LessonRule, legaySchoolRule: LegacySchoolRule, taskRule: TaskRule, userRule: UserRule, teamRule: TeamRule, submissionRule: SubmissionRule, schoolExternalToolRule: SchoolExternalToolRule, boardDoRule: BoardDoRule, contextExternalToolRule: ContextExternalToolRule, userLoginMigrationRule: UserLoginMigrationRule)\n \n \n \n \n Defined in apps/server/src/modules/authorization/rule-manager.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRule\n \n \n CourseRule\n \n \n \n No\n \n \n \n \n courseGroupRule\n \n \n CourseGroupRule\n \n \n \n No\n \n \n \n \n lessonRule\n \n \n LessonRule\n \n \n \n No\n \n \n \n \n legaySchoolRule\n \n \n LegacySchoolRule\n \n \n \n No\n \n \n \n \n taskRule\n \n \n TaskRule\n \n \n \n No\n \n \n \n \n userRule\n \n \n UserRule\n \n \n \n No\n \n \n \n \n teamRule\n \n \n TeamRule\n \n \n \n No\n \n \n \n \n submissionRule\n \n \n SubmissionRule\n \n \n \n No\n \n \n \n \n schoolExternalToolRule\n \n \n SchoolExternalToolRule\n \n \n \n No\n \n \n \n \n boardDoRule\n \n \n BoardDoRule\n \n \n \n No\n \n \n \n \n contextExternalToolRule\n \n \n ContextExternalToolRule\n \n \n \n No\n \n \n \n \n userLoginMigrationRule\n \n \n UserLoginMigrationRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n matchSingleRule\n \n \n \n \n \n \n \n matchSingleRule(rules: Rule[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/rule-manager.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n rules\n \n Rule[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n selectRule\n \n \n \n \n \n \n \n selectRule(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/rule-manager.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n AuthorizableObject | BaseDO\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Rule\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n rules\n \n \n \n \n \n \n Type : Rule[]\n\n \n \n \n \n Defined in apps/server/src/modules/authorization/rule-manager.ts:22\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException, NotImplementedException } from '@nestjs/common';\nimport { BaseDO, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object'; // fix import when it is avaible\nimport {\n\tBoardDoRule,\n\tCourseGroupRule,\n\tCourseRule,\n\tLessonRule,\n\tSchoolExternalToolRule,\n\tLegacySchoolRule,\n\tSubmissionRule,\n\tTaskRule,\n\tTeamRule,\n\tUserRule,\n} from '@shared/domain/rules';\nimport { ContextExternalToolRule } from '@shared/domain/rules/context-external-tool.rule';\nimport { UserLoginMigrationRule } from '@shared/domain/rules/user-login-migration.rule';\nimport { AuthorizationContext, Rule } from './types';\n\n@Injectable()\nexport class RuleManager {\n\tprivate readonly rules: Rule[];\n\n\tconstructor(\n\t\tprivate readonly courseRule: CourseRule,\n\t\tprivate readonly courseGroupRule: CourseGroupRule,\n\t\tprivate readonly lessonRule: LessonRule,\n\t\tprivate readonly legaySchoolRule: LegacySchoolRule,\n\t\tprivate readonly taskRule: TaskRule,\n\t\tprivate readonly userRule: UserRule,\n\t\tprivate readonly teamRule: TeamRule,\n\t\tprivate readonly submissionRule: SubmissionRule,\n\t\tprivate readonly schoolExternalToolRule: SchoolExternalToolRule,\n\t\tprivate readonly boardDoRule: BoardDoRule,\n\t\tprivate readonly contextExternalToolRule: ContextExternalToolRule,\n\t\tprivate readonly userLoginMigrationRule: UserLoginMigrationRule\n\t) {\n\t\tthis.rules = [\n\t\t\tthis.courseRule,\n\t\t\tthis.courseGroupRule,\n\t\t\tthis.lessonRule,\n\t\t\tthis.taskRule,\n\t\t\tthis.teamRule,\n\t\t\tthis.userRule,\n\t\t\tthis.legaySchoolRule,\n\t\t\tthis.submissionRule,\n\t\t\tthis.schoolExternalToolRule,\n\t\t\tthis.boardDoRule,\n\t\t\tthis.contextExternalToolRule,\n\t\t\tthis.userLoginMigrationRule,\n\t\t];\n\t}\n\n\tpublic selectRule(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext): Rule {\n\t\tconst selectedRules = this.rules.filter((rule) => rule.isApplicable(user, object, context));\n\t\tconst rule = this.matchSingleRule(selectedRules);\n\n\t\treturn rule;\n\t}\n\n\tprivate matchSingleRule(rules: Rule[]) {\n\t\tif (rules.length === 0) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\tif (rules.length > 1) {\n\t\t\tthrow new InternalServerErrorException('MULTIPLE_MATCHES_ARE_NOT_ALLOWED');\n\t\t}\n\t\treturn rules[0];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/S3ClientAdapter.html":{"url":"injectables/S3ClientAdapter.html","title":"injectable - S3ClientAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n S3ClientAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/s3-client.adapter.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n deletedFolderName\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkStreamResponsive\n \n \n Public\n Async\n copy\n \n \n Public\n Async\n create\n \n \n Public\n Async\n createBucket\n \n \n Public\n Async\n delete\n \n \n Public\n Async\n deleteDirectory\n \n \n Public\n Async\n get\n \n \n Public\n Async\n moveToTrash\n \n \n Public\n Async\n restore\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(client: S3Client, config: S3Config, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n client\n \n \n S3Client\n \n \n \n No\n \n \n \n \n config\n \n \n S3Config\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkStreamResponsive\n \n \n \n \n \n \n \n checkStreamResponsive(stream: Readable, context: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:226\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n stream\n \n Readable\n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n copy\n \n \n \n \n \n \n \n copy(paths: CopyFiles[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:155\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n CopyFiles[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n create\n \n \n \n \n \n \n \n create(path: string, file: File)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n file\n \n File\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createBucket\n \n \n \n \n \n \n \n createBucket()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:32\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n delete\n \n \n \n \n \n \n \n delete(paths: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:179\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n deleteDirectory\n \n \n \n \n \n \n \n deleteDirectory(path: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:199\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n get\n \n \n \n \n \n \n \n get(path: string, bytesRange?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n bytesRange\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n moveToTrash\n \n \n \n \n \n \n \n moveToTrash(paths: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n restore\n \n \n \n \n \n \n \n restore(paths: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:134\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n deletedFolderName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'trash'\n \n \n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:21\n \n \n\n\n \n \n\n\n \n\n\n \n import {\n\tCopyObjectCommand,\n\tCopyObjectCommandOutput,\n\tCreateBucketCommand,\n\tDeleteObjectsCommand,\n\tGetObjectCommand,\n\tListObjectsCommand,\n\tS3Client,\n\tServiceOutputTypes,\n} from '@aws-sdk/client-s3';\nimport { Upload } from '@aws-sdk/lib-storage';\nimport { Inject, Injectable, InternalServerErrorException, NotFoundException } from '@nestjs/common';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Readable } from 'stream';\nimport { S3_CLIENT, S3_CONFIG } from './constants';\nimport { CopyFiles, File, GetFile, S3Config } from './interface';\n\n@Injectable()\nexport class S3ClientAdapter {\n\tprivate deletedFolderName = 'trash';\n\n\tconstructor(\n\t\t@Inject(S3_CLIENT) readonly client: S3Client,\n\t\t@Inject(S3_CONFIG) readonly config: S3Config,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(S3ClientAdapter.name);\n\t}\n\n\t// is public but only used internally\n\tpublic async createBucket() {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'create bucket', params: { bucket: this.config.bucket } });\n\n\t\t\tconst req = new CreateBucketCommand({ Bucket: this.config.bucket });\n\t\t\tawait this.client.send(req);\n\t\t} catch (err) {\n\t\t\tif (err instanceof Error) {\n\t\t\t\tthis.logger.error(`${err.message} \"${this.config.bucket}\"`);\n\t\t\t}\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'S3ClientAdapter:createBucket',\n\t\t\t\tErrorUtils.createHttpExceptionOptions(err)\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic async get(path: string, bytesRange?: string): Promise {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'get', params: { path, bucket: this.config.bucket } });\n\n\t\t\tconst req = new GetObjectCommand({\n\t\t\t\tBucket: this.config.bucket,\n\t\t\t\tKey: path,\n\t\t\t\tRange: bytesRange,\n\t\t\t});\n\n\t\t\tconst data = await this.client.send(req);\n\t\t\tconst stream = data.Body as Readable;\n\n\t\t\tthis.checkStreamResponsive(stream, path);\n\n\t\t\treturn {\n\t\t\t\tdata: stream,\n\t\t\t\tcontentType: data.ContentType,\n\t\t\t\tcontentLength: data.ContentLength,\n\t\t\t\tcontentRange: data.ContentRange,\n\t\t\t\tetag: data.ETag,\n\t\t\t};\n\t\t} catch (err) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (err?.Code === 'NoSuchKey') {\n\t\t\t\tthis.logger.log(`could not find one of the files for deletion with id ${path}`);\n\t\t\t\tthrow new NotFoundException('NoSuchKey');\n\t\t\t} else {\n\t\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:get', ErrorUtils.createHttpExceptionOptions(err));\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async create(path: string, file: File): Promise {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'create', params: { path, bucket: this.config.bucket } });\n\n\t\t\tconst req = {\n\t\t\t\tBody: file.data,\n\t\t\t\tBucket: this.config.bucket,\n\t\t\t\tKey: path,\n\t\t\t\tContentType: file.mimeType,\n\t\t\t};\n\t\t\tconst upload = new Upload({\n\t\t\t\tclient: this.client,\n\t\t\t\tparams: req,\n\t\t\t});\n\n\t\t\tconst commandOutput = await upload.done();\n\t\t\treturn commandOutput;\n\t\t} catch (err) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (err?.Code === 'NoSuchBucket') {\n\t\t\t\tawait this.createBucket();\n\n\t\t\t\treturn await this.create(path, file);\n\t\t\t}\n\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:create', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async moveToTrash(paths: string[]): Promise {\n\t\ttry {\n\t\t\tconst copyPaths = paths.map((path) => {\n\t\t\t\treturn { sourcePath: path, targetPath: `${this.deletedFolderName}/${path}` };\n\t\t\t});\n\n\t\t\tconst result = await this.copy(copyPaths);\n\n\t\t\t// try catch with rollback is not needed,\n\t\t\t// because the second copyRequest try override existing files in trash folder\n\t\t\tawait this.delete(paths);\n\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (err?.cause?.name === 'NoSuchKey') {\n\t\t\t\tthis.logger.log(`could not find one of the files for deletion with ids ${paths.join(',')}`);\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:delete', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async restore(paths: string[]): Promise {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'restore', params: { paths, bucket: this.config.bucket } });\n\n\t\t\tconst copyPaths = paths.map((path) => {\n\t\t\t\treturn { sourcePath: `${this.deletedFolderName}/${path}`, targetPath: path };\n\t\t\t});\n\n\t\t\tconst result = await this.copy(copyPaths);\n\n\t\t\t// try catch with rollback is not needed,\n\t\t\t// because the second copyRequest try override existing files in trash folder\n\t\t\tconst deleteObjects = copyPaths.map((p) => p.sourcePath);\n\t\t\tawait this.delete(deleteObjects);\n\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:restore', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async copy(paths: CopyFiles[]) {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'copy', params: { paths, bucket: this.config.bucket } });\n\n\t\t\tconst copyRequests = paths.map(async (path) => {\n\t\t\t\tconst req = new CopyObjectCommand({\n\t\t\t\t\tBucket: this.config.bucket,\n\t\t\t\t\tCopySource: `${this.config.bucket}/${path.sourcePath}`,\n\t\t\t\t\tKey: `${path.targetPath}`,\n\t\t\t\t});\n\n\t\t\t\tconst data = await this.client.send(req);\n\n\t\t\t\treturn data;\n\t\t\t});\n\n\t\t\tconst result = await Promise.all(copyRequests);\n\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:copy', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async delete(paths: string[]) {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'delete', params: { paths, bucket: this.config.bucket } });\n\n\t\t\tconst pathObjects = paths.map((p) => {\n\t\t\t\treturn { Key: p };\n\t\t\t});\n\t\t\tconst req = new DeleteObjectsCommand({\n\t\t\t\tBucket: this.config.bucket,\n\t\t\t\tDelete: { Objects: pathObjects },\n\t\t\t});\n\n\t\t\tconst result = await this.client.send(req);\n\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:delete', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async deleteDirectory(path: string) {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'deleteDirectory', params: { path, bucket: this.config.bucket } });\n\n\t\t\tconst req = new ListObjectsCommand({\n\t\t\t\tBucket: this.config.bucket,\n\t\t\t\tPrefix: path,\n\t\t\t});\n\n\t\t\tconst data = await this.client.send(req);\n\n\t\t\tif (data.Contents?.length && data.Contents?.length > 0) {\n\t\t\t\tconst pathObjects = data.Contents.map((p) => p.Key);\n\n\t\t\t\tconst filteredPathObjects = pathObjects.filter((p): p is string => !!p);\n\n\t\t\t\tawait this.delete(filteredPathObjects);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'S3ClientAdapter:deleteDirectory',\n\t\t\t\tErrorUtils.createHttpExceptionOptions(err)\n\t\t\t);\n\t\t}\n\t}\n\n\t/* istanbul ignore next */\n\tprivate checkStreamResponsive(stream: Readable, context: string) {\n\t\tlet timer: NodeJS.Timeout;\n\t\tconst refreshTimeout = () => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\tif (timer) clearTimeout(timer);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tthis.logger.log(`Stream unresponsive: S3 object key ${context}`);\n\t\t\t\tstream.destroy();\n\t\t\t}, 60 * 1000);\n\t\t};\n\n\t\tstream.on('data', () => {\n\t\t\trefreshTimeout();\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/S3ClientModule.html":{"url":"modules/S3ClientModule.html","title":"module - S3ClientModule","body":"\n \n\n\n\n\n Modules\n S3ClientModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/s3-client/s3-client.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n register\n \n \n \n \n \n \n \n register(configs: S3Config[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.module.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n configs\n \n S3Config[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { S3Client } from '@aws-sdk/client-s3';\nimport { DynamicModule, Module } from '@nestjs/common';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { S3Config } from './interface';\nimport { S3ClientAdapter } from './s3-client.adapter';\n\nconst createS3ClientAdapter = (config: S3Config, legacyLogger: LegacyLogger) => {\n\tconst { region, accessKeyId, secretAccessKey, endpoint } = config;\n\n\tconst s3Client = new S3Client({\n\t\tregion,\n\t\tcredentials: {\n\t\t\taccessKeyId,\n\t\t\tsecretAccessKey,\n\t\t},\n\t\tendpoint,\n\t\tforcePathStyle: true,\n\t\ttls: true,\n\t});\n\treturn new S3ClientAdapter(s3Client, config, legacyLogger);\n};\n\n@Module({})\nexport class S3ClientModule {\n\tstatic register(configs: S3Config[]): DynamicModule {\n\t\tconst providers = configs.flatMap((config) => [\n\t\t\t{\n\t\t\t\tprovide: config.connectionName,\n\t\t\t\tuseFactory: (logger: LegacyLogger) => createS3ClientAdapter(config, logger),\n\t\t\t\tinject: [LegacyLogger],\n\t\t\t},\n\t\t]);\n\n\t\treturn {\n\t\t\tmodule: S3ClientModule,\n\t\t\timports: [LoggerModule],\n\t\t\tproviders,\n\t\t\texports: providers,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/S3Config.html":{"url":"interfaces/S3Config.html","title":"interface - S3Config","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n S3Config\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/interface/config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessKeyId\n \n \n \n \n bucket\n \n \n \n \n endpoint\n \n \n \n \n region\n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accessKeyId\n \n \n \n \n \n \n \n \n accessKeyId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n bucket\n \n \n \n \n \n \n \n \n bucket: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n endpoint\n \n \n \n \n \n \n \n \n endpoint: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n region\n \n \n \n \n \n \n \n \n region: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n secretAccessKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface S3Config {\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/S3Config-1.html":{"url":"interfaces/S3Config-1.html","title":"interface - S3Config-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n S3Config\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/interface/index.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessKeyId\n \n \n \n \n bucket\n \n \n \n \n connectionName\n \n \n \n \n endpoint\n \n \n \n \n region\n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accessKeyId\n \n \n \n \n \n \n \n \n accessKeyId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n bucket\n \n \n \n \n \n \n \n \n bucket: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n connectionName\n \n \n \n \n \n \n \n \n connectionName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n endpoint\n \n \n \n \n \n \n \n \n endpoint: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n region\n \n \n \n \n \n \n \n \n region: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n secretAccessKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\n\nexport interface S3Config {\n\tconnectionName: string;\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\nexport interface GetFile {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n}\n\nexport interface CopyFiles {\n\tsourcePath: string;\n\ttargetPath: string;\n}\n\nexport interface File {\n\tdata: Readable;\n\tname: string;\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SSOLoginQuery.html":{"url":"classes/SSOLoginQuery.html","title":"class - SSOLoginQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SSOLoginQuery\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/sso-login.query.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n migration\n \n \n \n \n \n Optional\n postLoginRedirect\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n migration\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/sso-login.query.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n postLoginRedirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/sso-login.query.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean, IsOptional, IsString } from 'class-validator';\n\nexport class SSOLoginQuery {\n\t@IsOptional()\n\t@IsString()\n\t@ApiProperty()\n\tpostLoginRedirect?: string;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@ApiProperty()\n\tmigration?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisGruppeResponse.html":{"url":"interfaces/SanisGruppeResponse.html","title":"interface - SanisGruppeResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisGruppeResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-gruppe-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n bezeichnung\n \n \n \n \n id\n \n \n \n \n laufzeit\n \n \n \n \n orgid\n \n \n \n \n typ\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bezeichnung\n \n \n \n \n \n \n \n \n bezeichnung: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n laufzeit\n \n \n \n \n \n \n \n \n laufzeit: SanisLaufzeitResponse\n\n \n \n\n\n \n \n Type : SanisLaufzeitResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n orgid\n \n \n \n \n \n \n \n \n orgid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n typ\n \n \n \n \n \n \n \n \n typ: SanisGroupType\n\n \n \n\n\n \n \n Type : SanisGroupType\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisGroupType } from './sanis-group-type';\nimport { SanisLaufzeitResponse } from './sanis-laufzeit-response';\n\nexport interface SanisGruppeResponse {\n\tid: string;\n\n\tbezeichnung: string;\n\n\ttyp: SanisGroupType;\n\n\torgid: string;\n\n\tlaufzeit: SanisLaufzeitResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisGruppenResponse.html":{"url":"interfaces/SanisGruppenResponse.html","title":"interface - SanisGruppenResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisGruppenResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-gruppen-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n gruppe\n \n \n \n \n gruppenzugehoerigkeit\n \n \n \n Optional\n \n sonstige_gruppenzugehoerige\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n gruppe\n \n \n \n \n \n \n \n \n gruppe: SanisGruppeResponse\n\n \n \n\n\n \n \n Type : SanisGruppeResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n gruppenzugehoerigkeit\n \n \n \n \n \n \n \n \n gruppenzugehoerigkeit: SanisGruppenzugehoerigkeitResponse\n\n \n \n\n\n \n \n Type : SanisGruppenzugehoerigkeitResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n sonstige_gruppenzugehoerige\n \n \n \n \n \n \n \n \n sonstige_gruppenzugehoerige: SanisSonstigeGruppenzugehoerigeResponse[]\n\n \n \n\n\n \n \n Type : SanisSonstigeGruppenzugehoerigeResponse[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { SanisGruppeResponse } from './sanis-gruppe-response';\nimport { SanisGruppenzugehoerigkeitResponse } from './sanis-gruppenzugehoerigkeit-response';\nimport { SanisSonstigeGruppenzugehoerigeResponse } from './sanis-sonstige-gruppenzugehoerige-response';\n\nexport interface SanisGruppenResponse {\n\tgruppe: SanisGruppeResponse;\n\n\tgruppenzugehoerigkeit: SanisGruppenzugehoerigkeitResponse;\n\n\tsonstige_gruppenzugehoerige?: SanisSonstigeGruppenzugehoerigeResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{"url":"interfaces/SanisGruppenzugehoerigkeitResponse.html","title":"interface - SanisGruppenzugehoerigkeitResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisGruppenzugehoerigkeitResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-gruppenzugehoerigkeit-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n rollen\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n rollen\n \n \n \n \n \n \n \n \n rollen: SanisGroupRole[]\n\n \n \n\n\n \n \n Type : SanisGroupRole[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisGroupRole } from './sanis-group-role';\n\nexport interface SanisGruppenzugehoerigkeitResponse {\n\trollen: SanisGroupRole[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisLaufzeitResponse.html":{"url":"interfaces/SanisLaufzeitResponse.html","title":"interface - SanisLaufzeitResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisLaufzeitResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-laufzeit-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n bis\n \n \n \n \n von\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bis\n \n \n \n \n \n \n \n \n bis: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n von\n \n \n \n \n \n \n \n \n von: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface SanisLaufzeitResponse {\n\tvon: Date;\n\n\tbis: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisNameResponse.html":{"url":"interfaces/SanisNameResponse.html","title":"interface - SanisNameResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisNameResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-name-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n familienname\n \n \n \n \n vorname\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n familienname\n \n \n \n \n \n \n \n \n familienname: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n vorname\n \n \n \n \n \n \n \n \n vorname: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface SanisNameResponse {\n\tfamilienname: string;\n\n\tvorname: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisOrganisationResponse.html":{"url":"interfaces/SanisOrganisationResponse.html","title":"interface - SanisOrganisationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisOrganisationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-organisation-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n kennung\n \n \n \n \n name\n \n \n \n \n typ\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n kennung\n \n \n \n \n \n \n \n \n kennung: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n typ\n \n \n \n \n \n \n \n \n typ: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface SanisOrganisationResponse {\n\tid: string;\n\n\tkennung: string;\n\n\tname: string;\n\n\ttyp: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisPersonResponse.html":{"url":"interfaces/SanisPersonResponse.html","title":"interface - SanisPersonResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisPersonResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-person-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n geschlecht\n \n \n \n \n lokalisierung\n \n \n \n \n name\n \n \n \n \n vertrauensstufe\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n geschlecht\n \n \n \n \n \n \n \n \n geschlecht: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n lokalisierung\n \n \n \n \n \n \n \n \n lokalisierung: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: SanisNameResponse\n\n \n \n\n\n \n \n Type : SanisNameResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n vertrauensstufe\n \n \n \n \n \n \n \n \n vertrauensstufe: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisNameResponse } from './sanis-name-response';\n\nexport interface SanisPersonResponse {\n\tname: SanisNameResponse;\n\n\tgeschlecht: string;\n\n\tlokalisierung: string;\n\n\tvertrauensstufe: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisPersonenkontextResponse.html":{"url":"interfaces/SanisPersonenkontextResponse.html","title":"interface - SanisPersonenkontextResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisPersonenkontextResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-personenkontext-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n gruppen\n \n \n \n \n id\n \n \n \n \n organisation\n \n \n \n \n personenstatus\n \n \n \n \n rolle\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n gruppen\n \n \n \n \n \n \n \n \n gruppen: SanisGruppenResponse[]\n\n \n \n\n\n \n \n Type : SanisGruppenResponse[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n organisation\n \n \n \n \n \n \n \n \n organisation: SanisOrganisationResponse\n\n \n \n\n\n \n \n Type : SanisOrganisationResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n personenstatus\n \n \n \n \n \n \n \n \n personenstatus: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n rolle\n \n \n \n \n \n \n \n \n rolle: SanisRole\n\n \n \n\n\n \n \n Type : SanisRole\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisRole } from './sanis-role';\nimport { SanisGruppenResponse } from './sanis-gruppen-response';\nimport { SanisOrganisationResponse } from './sanis-organisation-response';\n\nexport interface SanisPersonenkontextResponse {\n\tid: string;\n\n\trolle: SanisRole;\n\n\torganisation: SanisOrganisationResponse;\n\n\tpersonenstatus: string;\n\n\tgruppen?: SanisGruppenResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SanisProvisioningStrategy.html":{"url":"injectables/SanisProvisioningStrategy.html","title":"injectable - SanisProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SanisProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts\n \n\n\n\n \n Extends\n \n \n OidcProvisioningStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n addTeacherRoleIfAdmin\n \n \n \n Async\n getData\n \n \n getType\n \n \n \n Async\n apply\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(responseMapper: SanisResponseMapper, httpService: HttpService, oidcProvisioningService: OidcProvisioningService)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n responseMapper\n \n \n SanisResponseMapper\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n oidcProvisioningService\n \n \n OidcProvisioningService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n addTeacherRoleIfAdmin\n \n \n \n \n \n \n \n addTeacherRoleIfAdmin(externalUser: ExternalUserDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUser\n \n ExternalUserDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:34\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getType\n \n \n \n \n \n \ngetType()\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:30\n\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpService } from '@nestjs/axios';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { firstValueFrom } from 'rxjs';\nimport { RoleName } from '@shared/domain';\nimport {\n\tExternalSchoolDto,\n\tExternalUserDto,\n\tOauthDataDto,\n\tOauthDataStrategyInputDto,\n\tExternalGroupDto,\n} from '../../dto';\nimport { OidcProvisioningStrategy } from '../oidc/oidc.strategy';\nimport { OidcProvisioningService } from '../oidc/service/oidc-provisioning.service';\nimport { SanisResponseMapper } from './sanis-response.mapper';\nimport { SanisResponse } from './response';\n\n@Injectable()\nexport class SanisProvisioningStrategy extends OidcProvisioningStrategy {\n\tconstructor(\n\t\tprivate readonly responseMapper: SanisResponseMapper,\n\t\tprivate readonly httpService: HttpService,\n\t\tprotected readonly oidcProvisioningService: OidcProvisioningService\n\t) {\n\t\tsuper(oidcProvisioningService);\n\t}\n\n\tgetType(): SystemProvisioningStrategy {\n\t\treturn SystemProvisioningStrategy.SANIS;\n\t}\n\n\toverride async getData(input: OauthDataStrategyInputDto): Promise {\n\t\tif (!input.system.provisioningUrl) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t`Sanis system with id: ${input.system.systemId} is missing a provisioning url`\n\t\t\t);\n\t\t}\n\n\t\tconst axiosConfig: AxiosRequestConfig = {\n\t\t\theaders: { Authorization: `Bearer ${input.accessToken}` },\n\t\t};\n\n\t\tconst axiosResponse: AxiosResponse = await firstValueFrom(\n\t\t\tthis.httpService.get(input.system.provisioningUrl, axiosConfig)\n\t\t);\n\n\t\tconst externalUser: ExternalUserDto = this.responseMapper.mapToExternalUserDto(axiosResponse.data);\n\t\tthis.addTeacherRoleIfAdmin(externalUser);\n\n\t\tconst externalSchool: ExternalSchoolDto = this.responseMapper.mapToExternalSchoolDto(axiosResponse.data);\n\n\t\tlet externalGroups: ExternalGroupDto[] | undefined;\n\t\tif (Configuration.get('FEATURE_SANIS_GROUP_PROVISIONING_ENABLED')) {\n\t\t\texternalGroups = this.responseMapper.mapToExternalGroupDtos(axiosResponse.data);\n\t\t}\n\n\t\tconst oauthData: OauthDataDto = new OauthDataDto({\n\t\t\tsystem: input.system,\n\t\t\texternalSchool,\n\t\t\texternalUser,\n\t\t\texternalGroups,\n\t\t});\n\n\t\treturn oauthData;\n\t}\n\n\tprivate addTeacherRoleIfAdmin(externalUser: ExternalUserDto): void {\n\t\tif (externalUser.roles && externalUser.roles.includes(RoleName.ADMINISTRATOR)) {\n\t\t\texternalUser.roles.push(RoleName.TEACHER);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisResponse.html":{"url":"interfaces/SanisResponse.html","title":"interface - SanisResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n person\n \n \n \n \n personenkontexte\n \n \n \n \n pid\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n person\n \n \n \n \n \n \n \n \n person: SanisPersonResponse\n\n \n \n\n\n \n \n Type : SanisPersonResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n personenkontexte\n \n \n \n \n \n \n \n \n personenkontexte: SanisPersonenkontextResponse[]\n\n \n \n\n\n \n \n Type : SanisPersonenkontextResponse[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n pid\n \n \n \n \n \n \n \n \n pid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisPersonResponse } from './sanis-person-response';\nimport { SanisPersonenkontextResponse } from './sanis-personenkontext-response';\n\nexport interface SanisResponse {\n\tpid: string;\n\n\tperson: SanisPersonResponse;\n\n\tpersonenkontexte: SanisPersonenkontextResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SanisResponseMapper.html":{"url":"injectables/SanisResponseMapper.html","title":"injectable - SanisResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SanisResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n SCHOOLNUMBER_PREFIX_REGEX\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n mapSanisRoleToRoleName\n \n \n mapToExternalGroupDtos\n \n \n Private\n mapToExternalGroupUser\n \n \n mapToExternalSchoolDto\n \n \n mapToExternalUserDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:34\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n mapSanisRoleToRoleName\n \n \n \n \n \n \n \n mapSanisRoleToRoleName(source: SanisResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n source\n \n SanisResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoleName\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToExternalGroupDtos\n \n \n \n \n \n \nmapToExternalGroupDtos(source: SanisResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n source\n \n SanisResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : [] | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapToExternalGroupUser\n \n \n \n \n \n \n \n mapToExternalGroupUser(relation: SanisSonstigeGruppenzugehoerigeResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n relation\n \n SanisSonstigeGruppenzugehoerigeResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalGroupUserDto | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToExternalSchoolDto\n \n \n \n \n \n \nmapToExternalSchoolDto(source: SanisResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n source\n \n SanisResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalSchoolDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToExternalUserDto\n \n \n \n \n \n \nmapToExternalUserDto(source: SanisResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n source\n \n SanisResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalUserDto\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n SCHOOLNUMBER_PREFIX_REGEX\n \n \n \n \n \n \n Default value : /^NI_/\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:34\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { RoleName } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { GroupTypes } from '@src/modules/group';\nimport { ExternalGroupDto, ExternalGroupUserDto, ExternalSchoolDto, ExternalUserDto } from '../../dto';\nimport { GroupRoleUnknownLoggable } from '../../loggable';\nimport {\n\tSanisGroupRole,\n\tSanisGroupType,\n\tSanisGruppenResponse,\n\tSanisResponse,\n\tSanisRole,\n\tSanisSonstigeGruppenzugehoerigeResponse,\n} from './response';\n\nconst RoleMapping: Record = {\n\t[SanisRole.LEHR]: RoleName.TEACHER,\n\t[SanisRole.LERN]: RoleName.STUDENT,\n\t[SanisRole.LEIT]: RoleName.ADMINISTRATOR,\n\t[SanisRole.ORGADMIN]: RoleName.ADMINISTRATOR,\n};\n\nconst GroupRoleMapping: Partial> = {\n\t[SanisGroupRole.TEACHER]: RoleName.TEACHER,\n\t[SanisGroupRole.STUDENT]: RoleName.STUDENT,\n};\n\nconst GroupTypeMapping: Partial> = {\n\t[SanisGroupType.CLASS]: GroupTypes.CLASS,\n};\n\n@Injectable()\nexport class SanisResponseMapper {\n\tSCHOOLNUMBER_PREFIX_REGEX = /^NI_/;\n\n\tconstructor(private readonly logger: Logger) {}\n\n\tmapToExternalSchoolDto(source: SanisResponse): ExternalSchoolDto {\n\t\tconst officialSchoolNumber: string = source.personenkontexte[0].organisation.kennung.replace(\n\t\t\tthis.SCHOOLNUMBER_PREFIX_REGEX,\n\t\t\t''\n\t\t);\n\n\t\tconst mapped = new ExternalSchoolDto({\n\t\t\tname: source.personenkontexte[0].organisation.name,\n\t\t\texternalId: source.personenkontexte[0].organisation.id.toString(),\n\t\t\tofficialSchoolNumber,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tmapToExternalUserDto(source: SanisResponse): ExternalUserDto {\n\t\tconst mapped = new ExternalUserDto({\n\t\t\tfirstName: source.person.name.vorname,\n\t\t\tlastName: source.person.name.familienname,\n\t\t\troles: [this.mapSanisRoleToRoleName(source)],\n\t\t\texternalId: source.pid,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tprivate mapSanisRoleToRoleName(source: SanisResponse): RoleName {\n\t\treturn RoleMapping[source.personenkontexte[0].rolle];\n\t}\n\n\tmapToExternalGroupDtos(source: SanisResponse): ExternalGroupDto[] | undefined {\n\t\tconst groups: SanisGruppenResponse[] | undefined = source.personenkontexte[0].gruppen;\n\n\t\tif (!groups) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst mapped: ExternalGroupDto[] = groups\n\t\t\t.map((group): ExternalGroupDto | null => {\n\t\t\t\tconst groupType: GroupTypes | undefined = GroupTypeMapping[group.gruppe.typ];\n\n\t\t\t\tif (!groupType) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst sanisGroupUsers: SanisSonstigeGruppenzugehoerigeResponse[] = [\n\t\t\t\t\t...(group.sonstige_gruppenzugehoerige ?? []),\n\t\t\t\t\t{\n\t\t\t\t\t\tktid: source.personenkontexte[0].id,\n\t\t\t\t\t\trollen: group.gruppenzugehoerigkeit.rollen,\n\t\t\t\t\t},\n\t\t\t\t].sort((a, b) => a.ktid.localeCompare(b.ktid));\n\n\t\t\t\tconst gruppenzugehoerigkeiten: ExternalGroupUserDto[] = sanisGroupUsers\n\t\t\t\t\t.map((relation): ExternalGroupUserDto | null => this.mapToExternalGroupUser(relation))\n\t\t\t\t\t.filter((user): user is ExternalGroupUserDto => user !== null);\n\n\t\t\t\treturn {\n\t\t\t\t\tname: group.gruppe.bezeichnung,\n\t\t\t\t\ttype: groupType,\n\t\t\t\t\texternalOrganizationId: group.gruppe.orgid,\n\t\t\t\t\tfrom: group.gruppe.laufzeit?.von,\n\t\t\t\t\tuntil: group.gruppe.laufzeit?.bis,\n\t\t\t\t\texternalId: group.gruppe.id,\n\t\t\t\t\tusers: gruppenzugehoerigkeiten,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((group): group is ExternalGroupDto => group !== null);\n\n\t\treturn mapped;\n\t}\n\n\tprivate mapToExternalGroupUser(relation: SanisSonstigeGruppenzugehoerigeResponse): ExternalGroupUserDto | null {\n\t\tconst userRole = GroupRoleMapping[relation.rollen[0]];\n\n\t\tif (!userRole) {\n\t\t\tthis.logger.info(new GroupRoleUnknownLoggable(relation));\n\t\t\treturn null;\n\t\t}\n\n\t\tconst mapped = new ExternalGroupUserDto({\n\t\t\troleName: userRole,\n\t\t\texternalUserId: relation.ktid,\n\t\t});\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{"url":"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html","title":"interface - SanisSonstigeGruppenzugehoerigeResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisSonstigeGruppenzugehoerigeResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-sonstige-gruppenzugehoerige-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n ktid\n \n \n \n \n rollen\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n ktid\n \n \n \n \n \n \n \n \n ktid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n rollen\n \n \n \n \n \n \n \n \n rollen: SanisGroupRole[]\n\n \n \n\n\n \n \n Type : SanisGroupRole[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisGroupRole } from './sanis-group-role';\n\nexport interface SanisSonstigeGruppenzugehoerigeResponse {\n\tktid: string;\n\trollen: SanisGroupRole[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ScanResultDto.html":{"url":"classes/ScanResultDto.html","title":"class - ScanResultDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ScanResultDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/scan-result.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n reason\n \n \n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ScanResultDto)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/scan-result.dto.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ScanResultDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n reason\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/scan-result.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ScanStatus\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/scan-result.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ScanStatus } from '../../entity';\n\nexport class ScanResultDto {\n\tstatus: ScanStatus;\n\n\treason: string;\n\n\tconstructor(props: ScanResultDto) {\n\t\tthis.status = props.status;\n\t\tthis.reason = props.reason;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ScanResultParams.html":{"url":"classes/ScanResultParams.html","title":"class - ScanResultParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ScanResultParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n Optional\n virus_detected\n \n \n \n \n Optional\n virus_signature\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n virus_detected\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n virus_signature\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:61\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SchoolEntity.html":{"url":"entities/SchoolEntity.html","title":"entity - SchoolEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/school.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n Optional\n features\n \n \n \n federalState\n \n \n \n Optional\n inMaintenanceSince\n \n \n \n Optional\n inUserMigration\n \n \n \n name\n \n \n \n Optional\n officialSchoolNumber\n \n \n \n Optional\n permissions\n \n \n \n Optional\n previousExternalId\n \n \n \n Optional\n schoolYear\n \n \n \n systems\n \n \n \n Optional\n userLoginMigration\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'ldapSchoolIdentifier'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:75\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n features\n \n \n \n \n \n \n Type : SchoolFeatures[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n federalState\n \n \n \n \n \n \n Type : FederalState\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'federalState', nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:103\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n inMaintenanceSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n inUserMigration\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:81\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n officialSchoolNumber\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:84\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n permissions\n \n \n \n \n \n \n Type : SchoolRoles\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {object: true, nullable: true, prefix: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:90\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n previousExternalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:78\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n schoolYear\n \n \n \n \n \n \n Type : SchoolYear\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('SchoolYear', {fieldName: 'currentYear', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:93\n \n \n\n\n \n \n \n \n \n \n \n \n \n systems\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('System', undefined, {fieldName: 'systems'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:87\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n userLoginMigration\n \n \n \n \n \n \n Type : UserLoginMigration\n\n \n \n \n \n Decorators : \n \n \n @OneToOne(undefined, userLoginMigration => userLoginMigration.school, {orphanRemoval: true, nullable: true, fieldName: 'userLoginMigrationId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:100\n \n \n\n\n \n \n\n \n\n\n \n import {\n\tCollection,\n\tEmbeddable,\n\tEmbedded,\n\tEntity,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToOne,\n\tProperty,\n} from '@mikro-orm/core';\nimport { UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYear } from './schoolyear.entity';\nimport { System } from './system.entity';\nimport { FederalState } from './federal-state.entity';\n\nexport enum SchoolFeatures {\n\tROCKET_CHAT = 'rocketChat',\n\tVIDEOCONFERENCE = 'videoconference',\n\tNEXTCLOUD = 'nextcloud',\n\tSTUDENTVISIBILITY = 'studentVisibility', // deprecated\n\tLDAP_UNIVENTION_MIGRATION = 'ldapUniventionMigrationSchool',\n\tOAUTH_PROVISIONING_ENABLED = 'oauthProvisioningEnabled',\n\tSHOW_OUTDATED_USERS = 'showOutdatedUsers',\n\tENABLE_LDAP_SYNC_DURING_MIGRATION = 'enableLdapSyncDuringMigration',\n}\n\nexport interface ISchoolProperties {\n\t_id?: string;\n\texternalId?: string;\n\tinMaintenanceSince?: Date;\n\tinUserMigration?: boolean;\n\tpreviousExternalId?: string;\n\tname: string;\n\tofficialSchoolNumber?: string;\n\tsystems?: System[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYear;\n\tuserLoginMigration?: UserLoginMigration;\n\tfederalState: FederalState;\n}\n\n@Embeddable()\nexport class SchoolRolePermission {\n\t@Property({ nullable: true })\n\tSTUDENT_LIST?: boolean;\n\n\t@Property({ nullable: true })\n\tLERNSTORE_VIEW?: boolean;\n}\n\n@Embeddable()\nexport class SchoolRoles {\n\t@Property({ nullable: true, fieldName: 'student' })\n\tstudent?: SchoolRolePermission;\n\n\t@Property({ nullable: true, fieldName: 'teacher' })\n\tteacher?: SchoolRolePermission;\n}\n\n@Entity({ tableName: 'schools' })\n@Index({ properties: ['externalId', 'systems'] })\nexport class SchoolEntity extends BaseEntity {\n\t@Property({ nullable: true })\n\tfeatures?: SchoolFeatures[];\n\n\t@Property({ nullable: true })\n\tinMaintenanceSince?: Date;\n\n\t@Property({ nullable: true })\n\tinUserMigration?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'ldapSchoolIdentifier' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tofficialSchoolNumber?: string;\n\n\t@ManyToMany('System', undefined, { fieldName: 'systems' })\n\tsystems = new Collection(this);\n\n\t@Embedded(() => SchoolRoles, { object: true, nullable: true, prefix: false })\n\tpermissions?: SchoolRoles;\n\n\t@ManyToOne('SchoolYear', { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYear;\n\n\t@OneToOne(() => UserLoginMigration, (userLoginMigration: UserLoginMigration) => userLoginMigration.school, {\n\t\torphanRemoval: true,\n\t\tnullable: true,\n\t\tfieldName: 'userLoginMigrationId',\n\t})\n\tuserLoginMigration?: UserLoginMigration;\n\n\t@ManyToOne(() => FederalState, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalState;\n\n\tconstructor(props: ISchoolProperties) {\n\t\tsuper();\n\t\tif (props.externalId) {\n\t\t\tthis.externalId = props.externalId;\n\t\t}\n\t\tif (props.previousExternalId) {\n\t\t\tthis.previousExternalId = props.previousExternalId;\n\t\t}\n\t\tthis.inMaintenanceSince = props.inMaintenanceSince;\n\t\tif (props.inUserMigration !== null) {\n\t\t\tthis.inUserMigration = props.inUserMigration;\n\t\t}\n\t\tthis.name = props.name;\n\t\tif (props.officialSchoolNumber) {\n\t\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t\t}\n\t\tif (props.systems) {\n\t\t\tthis.systems.set(props.systems);\n\t\t}\n\t\tif (props.features) {\n\t\t\tthis.features = props.features;\n\t\t}\n\t\tif (props.schoolYear) {\n\t\t\tthis.schoolYear = props.schoolYear;\n\t\t}\n\t\tif (props.userLoginMigration) {\n\t\t\tthis.userLoginMigration = props.userLoginMigration;\n\t\t}\n\t\tthis.federalState = props.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalTool.html":{"url":"classes/SchoolExternalTool.html","title":"class - SchoolExternalTool","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalTool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n \n Implements\n \n \n ToolVersion\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n name\n \n \n parameters\n \n \n schoolId\n \n \n Optional\n status\n \n \n toolId\n \n \n toolVersion\n \n \n Optional\n id\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getVersion\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: SchoolExternalToolProps)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:33\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n SchoolExternalToolProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntry[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n status\n \n \n \n \n \n \n Type : ToolConfigurationStatus\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \ngetVersion()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:45\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\nimport { ToolVersion } from '../../common/interface';\n\nexport interface SchoolExternalToolProps {\n\tid?: string;\n\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n}\n\nexport class SchoolExternalTool extends BaseDO implements ToolVersion {\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n\n\tconstructor(props: SchoolExternalToolProps) {\n\t\tsuper(props.id);\n\t\tthis.name = props.name;\n\t\tthis.toolId = props.toolId;\n\t\tthis.schoolId = props.schoolId;\n\t\tthis.parameters = props.parameters;\n\t\tthis.toolVersion = props.toolVersion;\n\t\tthis.status = props.status;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{"url":"classes/SchoolExternalToolConfigurationTemplateListResponse.html","title":"class - SchoolExternalToolConfigurationTemplateListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolConfigurationTemplateListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: SchoolExternalToolConfigurationTemplateResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n SchoolExternalToolConfigurationTemplateResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : SchoolExternalToolConfigurationTemplateResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { SchoolExternalToolConfigurationTemplateResponse } from './school-external-tool-configuration-template.response';\n\nexport class SchoolExternalToolConfigurationTemplateListResponse {\n\t@ApiProperty({ type: [SchoolExternalToolConfigurationTemplateResponse] })\n\tdata: SchoolExternalToolConfigurationTemplateResponse[];\n\n\tconstructor(data: SchoolExternalToolConfigurationTemplateResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{"url":"classes/SchoolExternalToolConfigurationTemplateResponse.html","title":"class - SchoolExternalToolConfigurationTemplateResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolConfigurationTemplateResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n externalToolId\n \n \n \n Optional\n logoUrl\n \n \n \n name\n \n \n \n parameters\n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(configuration: SchoolExternalToolConfigurationTemplateResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n configuration\n \n \n SchoolExternalToolConfigurationTemplateResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n externalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { CustomParameterResponse } from './custom-parameter.response';\n\nexport class SchoolExternalToolConfigurationTemplateResponse {\n\t@ApiProperty()\n\texternalToolId: EntityId;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ApiProperty({ type: [CustomParameterResponse] })\n\tparameters: CustomParameterResponse[];\n\n\t@ApiProperty()\n\tversion: number;\n\n\tconstructor(configuration: SchoolExternalToolConfigurationTemplateResponse) {\n\t\tthis.externalToolId = configuration.externalToolId;\n\t\tthis.name = configuration.name;\n\t\tthis.logoUrl = configuration.logoUrl;\n\t\tthis.parameters = configuration.parameters;\n\t\tthis.version = configuration.version;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SchoolExternalToolEntity.html":{"url":"entities/SchoolExternalToolEntity.html","title":"entity - SchoolExternalToolEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolExternalToolEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n school\n \n \n \n schoolParameters\n \n \n \n tool\n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {eager: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolParameters\n \n \n \n \n \n \n Type : CustomParameterEntryEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n tool\n \n \n \n \n \n \n Type : ExternalToolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts:26\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { CustomParameterEntryEntity } from '../../common/entity';\nimport { ExternalToolEntity } from '../../external-tool/entity';\n\nexport interface ISchoolExternalToolProperties {\n\ttool: ExternalToolEntity;\n\tschool: SchoolEntity;\n\tschoolParameters?: CustomParameterEntryEntity[];\n\ttoolVersion: number;\n}\n\n@Entity({ tableName: 'school_external_tools' })\nexport class SchoolExternalToolEntity extends BaseEntityWithTimestamps {\n\t@ManyToOne()\n\ttool: ExternalToolEntity;\n\n\t@ManyToOne(() => SchoolEntity, { eager: true })\n\tschool: SchoolEntity;\n\n\t@Embedded(() => CustomParameterEntryEntity, { array: true })\n\tschoolParameters: CustomParameterEntryEntity[];\n\n\t@Property()\n\ttoolVersion: number;\n\n\tconstructor(props: ISchoolExternalToolProperties) {\n\t\tsuper();\n\t\tthis.tool = props.tool;\n\t\tthis.school = props.school;\n\t\tthis.schoolParameters = props.schoolParameters ?? [];\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolFactory.html":{"url":"classes/SchoolExternalToolFactory.html","title":"class - SchoolExternalToolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/school-external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withSchoolId\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withSchoolId\n \n \n \n \n \n \nwithSchoolId(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/school-external-tool.factory.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameterEntry, ToolConfigurationStatus } from '@src/modules/tool/common/domain';\nimport { SchoolExternalTool, SchoolExternalToolProps } from '@src/modules/tool/school-external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nclass SchoolExternalToolFactory extends DoBaseFactory {\n\twithSchoolId(schoolId: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tschoolId,\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const schoolExternalToolFactory = SchoolExternalToolFactory.define(SchoolExternalTool, ({ sequence }) => {\n\treturn {\n\t\tname: `schoolExternal-${sequence}`,\n\t\tschoolId: `schoolId-${sequence}`,\n\t\ttoolVersion: 1,\n\t\tparameters: [\n\t\t\tnew CustomParameterEntry({\n\t\t\t\tname: 'name',\n\t\t\t\tvalue: 'value',\n\t\t\t}),\n\t\t],\n\t\ttoolId: 'toolId',\n\t\tstatus: ToolConfigurationStatus.LATEST,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolIdParams.html":{"url":"classes/SchoolExternalToolIdParams.html","title":"class - SchoolExternalToolIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-id.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class SchoolExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty({ nullable: false, required: true })\n\tschoolExternalToolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolIdParams-1.html":{"url":"classes/SchoolExternalToolIdParams-1.html","title":"class - SchoolExternalToolIdParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/school-external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/school-external-tool-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class SchoolExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tschoolExternalToolId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SchoolExternalToolModule.html":{"url":"modules/SchoolExternalToolModule.html","title":"module - SchoolExternalToolModule","body":"\n \n\n\n\n\n Modules\n SchoolExternalToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SchoolExternalToolModule\n\n\n\ncluster_SchoolExternalToolModule_imports\n\n\n\ncluster_SchoolExternalToolModule_providers\n\n\n\ncluster_SchoolExternalToolModule_exports\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule -->\n\nCommonToolModule->SchoolExternalToolModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nSchoolExternalToolModule -->\n\nExternalToolModule->SchoolExternalToolModule\n\n\n\n\n\nSchoolExternalToolService \n\nSchoolExternalToolService \n\nSchoolExternalToolService -->\n\nSchoolExternalToolModule->SchoolExternalToolService \n\n\n\n\n\nSchoolExternalToolValidationService \n\nSchoolExternalToolValidationService \n\nSchoolExternalToolValidationService -->\n\nSchoolExternalToolModule->SchoolExternalToolValidationService \n\n\n\n\n\nSchoolExternalToolService\n\nSchoolExternalToolService\n\nSchoolExternalToolModule -->\n\nSchoolExternalToolService->SchoolExternalToolModule\n\n\n\n\n\nSchoolExternalToolValidationService\n\nSchoolExternalToolValidationService\n\nSchoolExternalToolModule -->\n\nSchoolExternalToolValidationService->SchoolExternalToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/school-external-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n SchoolExternalToolService\n \n \n SchoolExternalToolValidationService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n ExternalToolModule\n \n \n \n \n Exports\n \n \n SchoolExternalToolService\n \n \n SchoolExternalToolValidationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CommonToolModule } from '../common';\nimport { SchoolExternalToolService, SchoolExternalToolValidationService } from './service';\nimport { ExternalToolModule } from '../external-tool';\n\n@Module({\n\timports: [CommonToolModule, ExternalToolModule],\n\tproviders: [SchoolExternalToolService, SchoolExternalToolValidationService],\n\texports: [SchoolExternalToolService, SchoolExternalToolValidationService],\n})\nexport class SchoolExternalToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolPostParams.html":{"url":"classes/SchoolExternalToolPostParams.html","title":"class - SchoolExternalToolPostParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolPostParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n schoolId\n \n \n \n \n \n toolId\n \n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryParam[]\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested({each: true})@IsArray()@IsOptional()@ApiPropertyOptional({type: undefined})@Type(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsNumber()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsMongoId, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { CustomParameterEntryParam } from './custom-parameter-entry.params';\n\nexport class SchoolExternalToolPostParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsMongoId()\n\ttoolId!: string;\n\n\t@ApiProperty()\n\t@IsString()\n\t@IsMongoId()\n\tschoolId!: string;\n\n\t@ValidateNested({ each: true })\n\t@IsArray()\n\t@IsOptional()\n\t@ApiPropertyOptional({ type: [CustomParameterEntryParam] })\n\t@Type(() => CustomParameterEntryParam)\n\tparameters?: CustomParameterEntryParam[];\n\n\t@ApiProperty()\n\t@IsNumber()\n\tversion!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SchoolExternalToolProps.html":{"url":"interfaces/SchoolExternalToolProps.html","title":"interface - SchoolExternalToolProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SchoolExternalToolProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n Optional\n \n name\n \n \n \n \n parameters\n \n \n \n \n schoolId\n \n \n \n Optional\n \n status\n \n \n \n \n toolId\n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n \n \n parameters: CustomParameterEntry[]\n\n \n \n\n\n \n \n Type : CustomParameterEntry[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: ToolConfigurationStatus\n\n \n \n\n\n \n \n Type : ToolConfigurationStatus\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n \n \n toolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n toolVersion: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\nimport { ToolVersion } from '../../common/interface';\n\nexport interface SchoolExternalToolProps {\n\tid?: string;\n\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n}\n\nexport class SchoolExternalTool extends BaseDO implements ToolVersion {\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n\n\tconstructor(props: SchoolExternalToolProps) {\n\t\tsuper(props.id);\n\t\tthis.name = props.name;\n\t\tthis.toolId = props.toolId;\n\t\tthis.schoolId = props.schoolId;\n\t\tthis.parameters = props.parameters;\n\t\tthis.toolVersion = props.toolVersion;\n\t\tthis.status = props.status;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolRefDO.html":{"url":"classes/SchoolExternalToolRefDO.html","title":"class - SchoolExternalToolRefDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolRefDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n schoolId\n \n \n schoolToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: SchoolExternalToolRefDO)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n SchoolExternalToolRefDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n schoolToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class SchoolExternalToolRefDO {\n\tschoolToolId: string;\n\n\tschoolId?: string;\n\n\tconstructor(props: SchoolExternalToolRefDO) {\n\t\tthis.schoolToolId = props.schoolToolId;\n\t\tthis.schoolId = props.schoolId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolRepo.html":{"url":"injectables/SchoolExternalToolRepo.html","title":"injectable - SchoolExternalToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n buildScope\n \n \n Async\n deleteByExternalToolId\n \n \n entityFactory\n \n \n Async\n find\n \n \n Async\n findByExternalToolId\n \n \n Async\n findBySchoolId\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n buildScope\n \n \n \n \n \n \n \n buildScope(query: SchoolExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n SchoolExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteByExternalToolId\n \n \n \n \n \n \n \n deleteByExternalToolId(toolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: ISchoolExternalToolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:28\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ISchoolExternalToolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(query: SchoolExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:55\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n SchoolExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalToolId\n \n \n \n \n \n \n \n findByExternalToolId(toolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolId\n \n \n \n \n \n \n \n findBySchoolId(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: SchoolExternalTool)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ISchoolExternalToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: SchoolExternalToolEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:74\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n SchoolExternalToolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:24\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { SchoolEntity } from '@shared/domain';\nimport { BaseDORepo } from '@shared/repo/base.do.repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { SchoolExternalToolQuery } from '@src/modules/tool/school-external-tool/uc/dto/school-external-tool.types';\nimport { ISchoolExternalToolProperties, SchoolExternalToolEntity } from '@src/modules/tool/school-external-tool/entity';\nimport { SchoolExternalTool } from '@src/modules/tool/school-external-tool/domain';\nimport { ExternalToolEntity } from '@src/modules/tool/external-tool/entity';\nimport { SchoolExternalToolScope } from './school-external-tool.scope';\nimport { ExternalToolRepoMapper } from '../externaltool';\n\n@Injectable()\nexport class SchoolExternalToolRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn SchoolExternalToolEntity;\n\t}\n\n\tentityFactory(props: ISchoolExternalToolProperties): SchoolExternalToolEntity {\n\t\treturn new SchoolExternalToolEntity(props);\n\t}\n\n\tasync findByExternalToolId(toolId: string): Promise {\n\t\tconst entities: SchoolExternalToolEntity[] = await this._em.find(this.entityName, { tool: toolId });\n\t\tconst domainObjects: SchoolExternalTool[] = entities.map((entity: SchoolExternalToolEntity): SchoolExternalTool => {\n\t\t\tconst domainObject: SchoolExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t});\n\t\treturn domainObjects;\n\t}\n\n\tasync findBySchoolId(schoolId: string): Promise {\n\t\tconst entities: SchoolExternalToolEntity[] = await this._em.find(this.entityName, { school: schoolId });\n\t\tconst domainObjects: SchoolExternalTool[] = entities.map((entity: SchoolExternalToolEntity): SchoolExternalTool => {\n\t\t\tconst domainObject: SchoolExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t});\n\t\treturn domainObjects;\n\t}\n\n\tasync deleteByExternalToolId(toolId: string): Promise {\n\t\tconst count: Promise = this._em.nativeDelete(this.entityName, { tool: toolId });\n\t\treturn count;\n\t}\n\n\tasync find(query: SchoolExternalToolQuery): Promise {\n\t\tconst scope: SchoolExternalToolScope = this.buildScope(query);\n\n\t\tconst entities: SchoolExternalToolEntity[] = await this._em.find(this.entityName, scope.query);\n\n\t\tconst dos: SchoolExternalTool[] = entities.map((entity: SchoolExternalToolEntity) => this.mapEntityToDO(entity));\n\t\treturn dos;\n\t}\n\n\tprivate buildScope(query: SchoolExternalToolQuery): SchoolExternalToolScope {\n\t\tconst scope: SchoolExternalToolScope = new SchoolExternalToolScope();\n\n\t\tscope.bySchoolId(query.schoolId);\n\t\tscope.byToolId(query.toolId);\n\t\tscope.allowEmptyQuery(true);\n\n\t\treturn scope;\n\t}\n\n\tmapEntityToDO(entity: SchoolExternalToolEntity): SchoolExternalTool {\n\t\treturn new SchoolExternalTool({\n\t\t\tid: entity.id,\n\t\t\ttoolId: entity.tool.id,\n\t\t\tschoolId: entity.school.id,\n\t\t\ttoolVersion: entity.toolVersion,\n\t\t\tparameters: ExternalToolRepoMapper.mapCustomParameterEntryEntitiesToDOs(entity.schoolParameters),\n\t\t});\n\t}\n\n\tmapDOToEntityProperties(entityDO: SchoolExternalTool): ISchoolExternalToolProperties {\n\t\treturn {\n\t\t\tschool: this._em.getReference(SchoolEntity, entityDO.schoolId),\n\t\t\ttool: this._em.getReference(ExternalToolEntity, entityDO.toolId),\n\t\t\ttoolVersion: entityDO.toolVersion,\n\t\t\tschoolParameters: ExternalToolRepoMapper.mapCustomParameterEntryDOsToEntities(entityDO.parameters),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolRequestMapper.html":{"url":"injectables/SchoolExternalToolRequestMapper.html","title":"injectable - SchoolExternalToolRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-request.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n mapRequestToCustomParameterEntryDO\n \n \n mapSchoolExternalToolRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n mapRequestToCustomParameterEntryDO\n \n \n \n \n \n \n \n mapRequestToCustomParameterEntryDO(customParameterParams: CustomParameterEntryParam[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-request.mapper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntry[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapSchoolExternalToolRequest\n \n \n \n \n \n \nmapSchoolExternalToolRequest(request: SchoolExternalToolPostParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-request.mapper.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n SchoolExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolDto\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CustomParameterEntryParam, SchoolExternalToolPostParams } from '../controller/dto';\nimport { SchoolExternalToolDto } from '../uc/dto/school-external-tool.types';\nimport { CustomParameterEntry } from '../../common/domain';\n\n@Injectable()\nexport class SchoolExternalToolRequestMapper {\n\tmapSchoolExternalToolRequest(request: SchoolExternalToolPostParams): SchoolExternalToolDto {\n\t\treturn {\n\t\t\ttoolId: request.toolId,\n\t\t\tschoolId: request.schoolId,\n\t\t\ttoolVersion: request.version,\n\t\t\tparameters: this.mapRequestToCustomParameterEntryDO(request.parameters ?? []),\n\t\t};\n\t}\n\n\tprivate mapRequestToCustomParameterEntryDO(\n\t\tcustomParameterParams: CustomParameterEntryParam[]\n\t): CustomParameterEntry[] {\n\t\treturn customParameterParams.map((customParameterParam: CustomParameterEntryParam) => {\n\t\t\treturn {\n\t\t\t\tname: customParameterParam.name,\n\t\t\t\tvalue: customParameterParam.value,\n\t\t\t};\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolResponse.html":{"url":"classes/SchoolExternalToolResponse.html","title":"class - SchoolExternalToolResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n Optional\n logoUrl\n \n \n \n name\n \n \n \n parameters\n \n \n \n schoolId\n \n \n \n status\n \n \n \n toolId\n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(response: SchoolExternalToolResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:28\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n \n SchoolExternalToolResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ToolConfigurationStatusResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ToolConfigurationStatusResponse})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { CustomParameterEntryResponse } from './custom-parameter-entry.response';\nimport { ToolConfigurationStatusResponse } from '../../../external-tool/controller/dto';\n\nexport class SchoolExternalToolResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiProperty()\n\ttoolId: string;\n\n\t@ApiProperty()\n\tschoolId: string;\n\n\t@ApiProperty({ type: [CustomParameterEntryResponse] })\n\tparameters: CustomParameterEntryResponse[];\n\n\t@ApiProperty()\n\ttoolVersion: number;\n\n\t@ApiProperty({ enum: ToolConfigurationStatusResponse })\n\tstatus: ToolConfigurationStatusResponse;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\tconstructor(response: SchoolExternalToolResponse) {\n\t\tthis.id = response.id;\n\t\tthis.name = response.name;\n\t\tthis.toolId = response.toolId;\n\t\tthis.schoolId = response.schoolId;\n\t\tthis.parameters = response.parameters;\n\t\tthis.toolVersion = response.toolVersion;\n\t\tthis.status = response.status;\n\t\tthis.logoUrl = response.logoUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolResponseMapper.html":{"url":"injectables/SchoolExternalToolResponseMapper.html","title":"injectable - SchoolExternalToolResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n mapToCustomParameterEntryResponse\n \n \n mapToSchoolExternalToolResponse\n \n \n mapToSearchListResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n mapToCustomParameterEntryResponse\n \n \n \n \n \n \n \n mapToCustomParameterEntryResponse(entries: CustomParameterEntry[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-response.mapper.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entries\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntryResponse[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToSchoolExternalToolResponse\n \n \n \n \n \n \nmapToSchoolExternalToolResponse(schoolExternalTool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-response.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToSearchListResponse\n \n \n \n \n \n \nmapToSearchListResponse(externalTools: SchoolExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-response.mapper.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolSearchListResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\nimport { ToolConfigurationStatusResponse } from '../../external-tool/controller/dto';\nimport {\n\tCustomParameterEntryResponse,\n\tSchoolExternalToolResponse,\n\tSchoolExternalToolSearchListResponse,\n} from '../controller/dto';\nimport { SchoolExternalTool } from '../domain';\n\nexport const statusMapping: Record = {\n\t[ToolConfigurationStatus.LATEST]: ToolConfigurationStatusResponse.LATEST,\n\t[ToolConfigurationStatus.OUTDATED]: ToolConfigurationStatusResponse.OUTDATED,\n\t[ToolConfigurationStatus.UNKNOWN]: ToolConfigurationStatusResponse.UNKNOWN,\n};\n\n@Injectable()\nexport class SchoolExternalToolResponseMapper {\n\tmapToSearchListResponse(externalTools: SchoolExternalTool[]): SchoolExternalToolSearchListResponse {\n\t\tconst responses: SchoolExternalToolResponse[] = externalTools.map((toolDO: SchoolExternalTool) =>\n\t\t\tthis.mapToSchoolExternalToolResponse(toolDO)\n\t\t);\n\t\treturn new SchoolExternalToolSearchListResponse(responses);\n\t}\n\n\tmapToSchoolExternalToolResponse(schoolExternalTool: SchoolExternalTool): SchoolExternalToolResponse {\n\t\treturn {\n\t\t\tid: schoolExternalTool.id ?? '',\n\t\t\tname: schoolExternalTool.name ?? '',\n\t\t\ttoolId: schoolExternalTool.toolId,\n\t\t\tschoolId: schoolExternalTool.schoolId,\n\t\t\tparameters: this.mapToCustomParameterEntryResponse(schoolExternalTool.parameters),\n\t\t\ttoolVersion: schoolExternalTool.toolVersion,\n\t\t\tstatus: schoolExternalTool.status\n\t\t\t\t? statusMapping[schoolExternalTool.status]\n\t\t\t\t: ToolConfigurationStatusResponse.UNKNOWN,\n\t\t};\n\t}\n\n\tprivate mapToCustomParameterEntryResponse(entries: CustomParameterEntry[]): CustomParameterEntryResponse[] {\n\t\treturn entries.map(\n\t\t\t(entry: CustomParameterEntry): CustomParameterEntry =>\n\t\t\t\tnew CustomParameterEntryResponse({\n\t\t\t\t\tname: entry.name,\n\t\t\t\t\tvalue: entry.value,\n\t\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolRule.html":{"url":"injectables/SchoolExternalToolRule.html","title":"injectable - SchoolExternalToolRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/school-external-tool.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/school-external-tool.rule.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: SchoolExternalToolEntity | SchoolExternalTool, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/school-external-tool.rule.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n SchoolExternalToolEntity | SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: SchoolExternalToolEntity | SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/school-external-tool.rule.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n SchoolExternalToolEntity | SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { SchoolExternalTool } from '@src/modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolEntity } from '@src/modules/tool/school-external-tool/entity';\nimport { User } from '../entity';\n\n@Injectable()\nexport class SchoolExternalToolRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: SchoolExternalToolEntity | SchoolExternalTool): boolean {\n\t\tconst isMatched: boolean = entity instanceof SchoolExternalToolEntity || entity instanceof SchoolExternalTool;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(\n\t\tuser: User,\n\t\tentity: SchoolExternalToolEntity | SchoolExternalTool,\n\t\tcontext: AuthorizationContext\n\t): boolean {\n\t\tlet hasPermission: boolean;\n\t\tif (entity instanceof SchoolExternalToolEntity) {\n\t\t\thasPermission =\n\t\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t\tuser.school.id === entity.school.id;\n\t\t} else {\n\t\t\thasPermission =\n\t\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t\tuser.school.id === entity.schoolId;\n\t\t}\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolScope.html":{"url":"classes/SchoolExternalToolScope.html","title":"class - SchoolExternalToolScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/schoolexternaltool/school-external-tool.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n bySchoolId\n \n \n byToolId\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n bySchoolId\n \n \n \n \n \n \nbySchoolId(schoolId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.scope.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byToolId\n \n \n \n \n \n \nbyToolId(toolId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.scope.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Scope } from '@shared/repo/scope';\nimport { EntityId } from '@shared/domain';\nimport { SchoolExternalToolEntity } from '@src/modules/tool/school-external-tool/entity';\n\nexport class SchoolExternalToolScope extends Scope {\n\tbySchoolId(schoolId: EntityId | undefined): this {\n\t\tif (schoolId !== undefined) {\n\t\t\tthis.addQuery({ school: schoolId });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyToolId(toolId: EntityId | undefined): this {\n\t\tif (toolId !== undefined) {\n\t\t\tthis.addQuery({ tool: toolId });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolSearchListResponse.html":{"url":"classes/SchoolExternalToolSearchListResponse.html","title":"class - SchoolExternalToolSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: SchoolExternalToolResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n SchoolExternalToolResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : SchoolExternalToolResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { SchoolExternalToolResponse } from './school-external-tool.response';\n\nexport class SchoolExternalToolSearchListResponse {\n\t@ApiProperty({ type: [SchoolExternalToolResponse] })\n\tdata: SchoolExternalToolResponse[];\n\n\tconstructor(data: SchoolExternalToolResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolSearchParams.html":{"url":"classes/SchoolExternalToolSearchParams.html","title":"class - SchoolExternalToolSearchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolSearchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsString } from 'class-validator';\n\nexport class SchoolExternalToolSearchParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsMongoId()\n\tschoolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolService.html":{"url":"injectables/SchoolExternalToolService.html","title":"injectable - SchoolExternalToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteSchoolExternalToolById\n \n \n Private\n determineStatus\n \n \n Private\n Async\n enrichDataFromExternalTool\n \n \n Private\n Async\n enrichWithDataFromExternalTools\n \n \n Async\n findSchoolExternalTools\n \n \n Async\n getSchoolExternalToolById\n \n \n Async\n saveSchoolExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolExternalToolRepo: SchoolExternalToolRepo, externalToolService: ExternalToolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteSchoolExternalToolById\n \n \n \n \n \n \n \n deleteSchoolExternalToolById(schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n determineStatus\n \n \n \n \n \n \n \n determineStatus(tool: SchoolExternalTool, externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolConfigurationStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n enrichDataFromExternalTool\n \n \n \n \n \n \n \n enrichDataFromExternalTool(tool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n enrichWithDataFromExternalTools\n \n \n \n \n \n \n \n enrichWithDataFromExternalTools(tools: SchoolExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findSchoolExternalTools\n \n \n \n \n \n \n \n findSchoolExternalTools(query: SchoolExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n SchoolExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolExternalToolById\n \n \n \n \n \n \n \n getSchoolExternalToolById(schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveSchoolExternalTool\n \n \n \n \n \n \n \n saveSchoolExternalTool(schoolExternalTool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolExternalToolRepo } from '@shared/repo';\nimport { EntityId } from '@shared/domain';\nimport { SchoolExternalToolQuery } from '../uc/dto/school-external-tool.types';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../domain';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\n\n@Injectable()\nexport class SchoolExternalToolService {\n\tconstructor(\n\t\tprivate readonly schoolExternalToolRepo: SchoolExternalToolRepo,\n\t\tprivate readonly externalToolService: ExternalToolService\n\t) {}\n\n\tasync getSchoolExternalToolById(schoolExternalToolId: EntityId): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolRepo.findById(schoolExternalToolId);\n\t\treturn schoolExternalTool;\n\t}\n\n\tasync findSchoolExternalTools(query: SchoolExternalToolQuery): Promise {\n\t\tlet schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolRepo.find({\n\t\t\tschoolId: query.schoolId,\n\t\t});\n\n\t\tschoolExternalTools = await this.enrichWithDataFromExternalTools(schoolExternalTools);\n\n\t\treturn schoolExternalTools;\n\t}\n\n\tprivate async enrichWithDataFromExternalTools(tools: SchoolExternalTool[]): Promise {\n\t\tconst enrichedTools: SchoolExternalTool[] = await Promise.all(\n\t\t\ttools.map(async (tool: SchoolExternalTool): Promise => this.enrichDataFromExternalTool(tool))\n\t\t);\n\n\t\treturn enrichedTools;\n\t}\n\n\tprivate async enrichDataFromExternalTool(tool: SchoolExternalTool): Promise {\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findExternalToolById(tool.toolId);\n\t\tconst status: ToolConfigurationStatus = this.determineStatus(tool, externalTool);\n\t\tconst schoolExternalTool: SchoolExternalTool = new SchoolExternalTool({\n\t\t\t...tool,\n\t\t\tstatus,\n\t\t\tname: externalTool.name,\n\t\t});\n\n\t\treturn schoolExternalTool;\n\t}\n\n\tprivate determineStatus(tool: SchoolExternalTool, externalTool: ExternalTool): ToolConfigurationStatus {\n\t\tif (externalTool.version {\n\t\tawait this.schoolExternalToolRepo.deleteById(schoolExternalToolId);\n\t}\n\n\tasync saveSchoolExternalTool(schoolExternalTool: SchoolExternalTool): Promise {\n\t\tlet createdSchoolExternalTool: SchoolExternalTool = await this.schoolExternalToolRepo.save(schoolExternalTool);\n\t\tcreatedSchoolExternalTool = await this.enrichDataFromExternalTool(createdSchoolExternalTool);\n\t\treturn createdSchoolExternalTool;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolUc.html":{"url":"injectables/SchoolExternalToolUc.html","title":"injectable - SchoolExternalToolUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createSchoolExternalTool\n \n \n Async\n deleteSchoolExternalTool\n \n \n Private\n Async\n ensureSchoolPermissions\n \n \n Async\n findSchoolExternalTools\n \n \n Async\n getSchoolExternalTool\n \n \n Async\n updateSchoolExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService, schoolExternalToolValidationService: SchoolExternalToolValidationService, toolPermissionHelper: ToolPermissionHelper)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n schoolExternalToolValidationService\n \n \n SchoolExternalToolValidationService\n \n \n \n No\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createSchoolExternalTool\n \n \n \n \n \n \n \n createSchoolExternalTool(userId: EntityId, schoolExternalToolDto: SchoolExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolDto\n \n SchoolExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteSchoolExternalTool\n \n \n \n \n \n \n \n deleteSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n ensureSchoolPermissions\n \n \n \n \n \n \n \n ensureSchoolPermissions(userId: EntityId, tools: SchoolExternalTool[], context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n tools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findSchoolExternalTools\n \n \n \n \n \n \n \n findSchoolExternalTools(userId: EntityId, query: SchoolExternalToolQueryInput)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n query\n \n SchoolExternalToolQueryInput\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolExternalTool\n \n \n \n \n \n \n \n getSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSchoolExternalTool\n \n \n \n \n \n \n \n updateSchoolExternalTool(userId: EntityId, schoolExternalToolId: string, schoolExternalToolDto: SchoolExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:83\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolExternalToolDto\n \n SchoolExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { AuthorizationContext, AuthorizationContextBuilder } from '@src/modules/authorization';\nimport { SchoolExternalToolService, SchoolExternalToolValidationService } from '../service';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { SchoolExternalToolDto, SchoolExternalToolQueryInput } from './dto/school-external-tool.types';\nimport { SchoolExternalTool } from '../domain';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class SchoolExternalToolUc {\n\tconstructor(\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly schoolExternalToolValidationService: SchoolExternalToolValidationService,\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper\n\t) {}\n\n\tasync findSchoolExternalTools(userId: EntityId, query: SchoolExternalToolQueryInput): Promise {\n\t\tlet tools: SchoolExternalTool[] = [];\n\t\tif (query.schoolId) {\n\t\t\ttools = await this.schoolExternalToolService.findSchoolExternalTools({ schoolId: query.schoolId });\n\t\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\t\tawait this.ensureSchoolPermissions(userId, tools, context);\n\t\t}\n\t\treturn tools;\n\t}\n\n\tasync createSchoolExternalTool(\n\t\tuserId: EntityId,\n\t\tschoolExternalToolDto: SchoolExternalToolDto\n\t): Promise {\n\t\tconst schoolExternalTool = new SchoolExternalTool({ ...schoolExternalToolDto });\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\t\tawait this.schoolExternalToolValidationService.validate(schoolExternalTool);\n\n\t\tconst createdSchoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.saveSchoolExternalTool(\n\t\t\tschoolExternalTool\n\t\t);\n\n\t\treturn createdSchoolExternalTool;\n\t}\n\n\tprivate async ensureSchoolPermissions(\n\t\tuserId: EntityId,\n\t\ttools: SchoolExternalTool[],\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tawait Promise.all(\n\t\t\ttools.map(async (tool: SchoolExternalTool) =>\n\t\t\t\tthis.toolPermissionHelper.ensureSchoolPermissions(userId, tool, context)\n\t\t\t)\n\t\t);\n\t}\n\n\tasync deleteSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tschoolExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\n\t\tawait Promise.all([\n\t\t\tthis.contextExternalToolService.deleteBySchoolExternalToolId(schoolExternalToolId),\n\t\t\tthis.schoolExternalToolService.deleteSchoolExternalToolById(schoolExternalToolId),\n\t\t]);\n\t}\n\n\tasync getSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tschoolExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\t\treturn schoolExternalTool;\n\t}\n\n\tasync updateSchoolExternalTool(\n\t\tuserId: EntityId,\n\t\tschoolExternalToolId: string,\n\t\tschoolExternalToolDto: SchoolExternalToolDto\n\t): Promise {\n\t\tconst schoolExternalTool = new SchoolExternalTool({ ...schoolExternalToolDto });\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\t\tawait this.schoolExternalToolValidationService.validate(schoolExternalTool);\n\n\t\tconst updated: SchoolExternalTool = new SchoolExternalTool({\n\t\t\t...schoolExternalToolDto,\n\t\t\tid: schoolExternalToolId,\n\t\t});\n\n\t\tconst saved = await this.schoolExternalToolService.saveSchoolExternalTool(updated);\n\t\treturn saved;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolValidationService.html":{"url":"injectables/SchoolExternalToolValidationService.html","title":"injectable - SchoolExternalToolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkVersionMatch\n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, commonToolValidationService: CommonToolValidationService)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n commonToolValidationService\n \n \n CommonToolValidationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkVersionMatch\n \n \n \n \n \n \n \n checkVersionMatch(schoolExternalToolVersion: number, externalToolVersion: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolVersion\n \n number\n \n\n \n No\n \n\n\n \n \n externalToolVersion\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(schoolExternalTool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { CommonToolValidationService } from '../../common/service';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../domain';\n\n@Injectable()\nexport class SchoolExternalToolValidationService {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly commonToolValidationService: CommonToolValidationService\n\t) {}\n\n\tasync validate(schoolExternalTool: SchoolExternalTool): Promise {\n\t\tthis.commonToolValidationService.checkForDuplicateParameters(schoolExternalTool);\n\n\t\tconst loadedExternalTool: ExternalTool = await this.externalToolService.findExternalToolById(\n\t\t\tschoolExternalTool.toolId\n\t\t);\n\n\t\tthis.checkVersionMatch(schoolExternalTool.toolVersion, loadedExternalTool.version);\n\n\t\tthis.commonToolValidationService.checkCustomParameterEntries(loadedExternalTool, schoolExternalTool);\n\t}\n\n\tprivate checkVersionMatch(schoolExternalToolVersion: number, externalToolVersion: number): void {\n\t\tif (schoolExternalToolVersion !== externalToolVersion) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_version_mismatch: The version ${schoolExternalToolVersion} of given schoolExternalTool does not match the externalTool version ${externalToolVersion}.`\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolForGroupNotFoundLoggable.html":{"url":"classes/SchoolForGroupNotFoundLoggable.html","title":"class - SchoolForGroupNotFoundLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolForGroupNotFoundLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/loggable/school-for-group-not-found.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(group: ExternalGroupDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/loggable/school-for-group-not-found.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n group\n \n \n ExternalGroupDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/loggable/school-for-group-not-found.loggable.ts:7\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { ExternalGroupDto } from '../dto';\n\nexport class SchoolForGroupNotFoundLoggable implements Loggable {\n\tconstructor(private readonly group: ExternalGroupDto) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Unable to provision group, since the connected school cannot be found.',\n\t\t\tdata: {\n\t\t\t\texternalGroupId: this.group.externalId,\n\t\t\t\texternalOrganizationId: this.group.externalOrganizationId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{"url":"classes/SchoolIdDoesNotMatchWithUserSchoolId.html","title":"class - SchoolIdDoesNotMatchWithUserSchoolId","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolIdDoesNotMatchWithUserSchoolId\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/school-id-does-not-match-with-user-school-id.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userMatchSchoolId: string, importUserSchoolId: string, schoolId?: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/school-id-does-not-match-with-user-school-id.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userMatchSchoolId\n \n \n string\n \n \n \n No\n \n \n \n \n importUserSchoolId\n \n \n string\n \n \n \n No\n \n \n \n \n schoolId\n \n \n EntityId\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/school-id-does-not-match-with-user-school-id.loggable.ts:11\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { EntityId } from '@shared/domain';\n\nexport class SchoolIdDoesNotMatchWithUserSchoolId implements Loggable {\n\tconstructor(\n\t\tprivate readonly userMatchSchoolId: string,\n\t\tprivate readonly importUserSchoolId: string,\n\t\tprivate readonly schoolId?: EntityId\n\t) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'School ID does not match with user school ID or with imported user school ID',\n\t\t\tdata: {\n\t\t\t\tuserMatchSchoolId: this.userMatchSchoolId,\n\t\t\t\timportUserId: this.importUserSchoolId,\n\t\t\t\tschoolId: this.schoolId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolIdParams.html":{"url":"classes/SchoolIdParams.html","title":"class - SchoolIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/request/school-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/school-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class SchoolIdParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolIdParams-1.html":{"url":"classes/SchoolIdParams-1.html","title":"class - SchoolIdParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/school-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/school-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class SchoolIdParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tschoolId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInMigrationError.html":{"url":"classes/SchoolInMigrationError.html","title":"class - SchoolInMigrationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInMigrationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/errors/school-in-migration.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(details?: Record)\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/school-in-migration.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class SchoolInMigrationError extends BusinessError {\n\tconstructor(details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'SCHOOL_IN_MIGRATION',\n\t\t\t\ttitle: 'Login failed because school is in migration',\n\t\t\t\tdefaultMessage: 'Login failed because creation of user is not possible during migration',\n\t\t\t},\n\t\t\tHttpStatus.UNAUTHORIZED,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInUserMigrationEndLoggable.html":{"url":"classes/SchoolInUserMigrationEndLoggable.html","title":"class - SchoolInUserMigrationEndLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInUserMigrationEndLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/school-in-user-migration-end.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolName: string)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/school-in-user-migration-end.loggable.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolName\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/school-in-user-migration-end.loggable.ts:6\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class SchoolInUserMigrationEndLoggable implements Loggable {\n\tconstructor(private readonly schoolName: string) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration for school is completed',\n\t\t\tdata: {\n\t\t\t\tschoolName: this.schoolName,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInUserMigrationStartLoggable.html":{"url":"classes/SchoolInUserMigrationStartLoggable.html","title":"class - SchoolInUserMigrationStartLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInUserMigrationStartLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/school-in-user-migration-start.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, schoolName: string, useCentralLdap: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/school-in-user-migration-start.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n schoolName\n \n \n string\n \n \n \n No\n \n \n \n \n useCentralLdap\n \n \n boolean\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/school-in-user-migration-start.loggable.ts:11\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { EntityId } from '@shared/domain';\n\nexport class SchoolInUserMigrationStartLoggable implements Loggable {\n\tconstructor(\n\t\tprivate readonly userId: EntityId,\n\t\tprivate readonly schoolName: string,\n\t\tprivate readonly useCentralLdap: boolean\n\t) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school administrator started the migration for his school.',\n\t\t\tdata: {\n\t\t\t\tcurrentUserId: this.userId,\n\t\t\t\tschoolName: this.schoolName,\n\t\t\t\tcentralLdap: this.useCentralLdap,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInfoMapper.html":{"url":"classes/SchoolInfoMapper.html","title":"class - SchoolInfoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInfoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/mapper/school-info.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(schoolInfo: SchoolEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/school-info.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolInfo\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolInfoResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SchoolEntity } from '@shared/domain';\nimport { SchoolInfoResponse } from '../controller/dto';\n\nexport class SchoolInfoMapper {\n\tstatic mapToResponse(schoolInfo: SchoolEntity): SchoolInfoResponse {\n\t\tconst dto = new SchoolInfoResponse({ id: schoolInfo.id, name: schoolInfo.name });\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInfoResponse.html":{"url":"classes/SchoolInfoResponse.html","title":"class - SchoolInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/school-info.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SchoolInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/school-info.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SchoolInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}', description: 'The id of the School entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/school-info.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The name of the School entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/school-info.response.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class SchoolInfoResponse {\n\tconstructor({ id, name }: SchoolInfoResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'The id of the School entity',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The name of the School entity',\n\t})\n\tname: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolMigrationError.html":{"url":"classes/SchoolMigrationError.html","title":"class - SchoolMigrationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolMigrationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/school-migration.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(details?: Record, cause?)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/school-migration.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n cause\n \n \n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class SchoolMigrationError extends BusinessError {\n\tconstructor(details?: Record, cause?: unknown) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'SCHOOL_MIGRATION_FAILED',\n\t\t\t\ttitle: 'Migration of school failed.',\n\t\t\t\tdefaultMessage: 'School could not migrate during user migration process.',\n\t\t\t},\n\t\t\tHttpStatus.INTERNAL_SERVER_ERROR,\n\t\t\tdetails,\n\t\t\tcause\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SchoolMigrationFlags.html":{"url":"interfaces/SchoolMigrationFlags.html","title":"interface - SchoolMigrationFlags","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SchoolMigrationFlags\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/dto/school-migration-flags.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n isMandatory\n \n \n \n \n isPossible\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n isMandatory\n \n \n \n \n \n \n \n \n isMandatory: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isPossible\n \n \n \n \n \n \n \n \n isPossible: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface SchoolMigrationFlags {\n\tisPossible: boolean;\n\tisMandatory: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolMigrationService.html":{"url":"injectables/SchoolMigrationService.html","title":"injectable - SchoolMigrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolMigrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/school-migration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkOfficialSchoolNumbersMatch\n \n \n Private\n Async\n doMigration\n \n \n Private\n hasSchoolMigrated\n \n \n Async\n hasSchoolMigratedUser\n \n \n Async\n markUnmigratedUsersAsOutdated\n \n \n Async\n migrateSchool\n \n \n Private\n Async\n rollbackMigration\n \n \n Async\n schoolToMigrate\n \n \n Async\n unmarkOutdatedUsers\n \n \n validateGracePeriod\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, logger: LegacyLogger, userService: UserService, userLoginMigrationRepo: UserLoginMigrationRepo)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n userLoginMigrationRepo\n \n \n UserLoginMigrationRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkOfficialSchoolNumbersMatch\n \n \n \n \n \n \n \n checkOfficialSchoolNumbersMatch(schoolDO: LegacySchoolDo, officialExternalSchoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:147\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n officialExternalSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n doMigration\n \n \n \n \n \n \n \n doMigration(externalId: string, schoolDO: LegacySchoolDo, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:130\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasSchoolMigrated\n \n \n \n \n \n \n \n hasSchoolMigrated(sourceExternalId: string, targetExternalId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:158\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sourceExternalId\n \n string\n \n\n \n No\n \n\n\n \n \n targetExternalId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n hasSchoolMigratedUser\n \n \n \n \n \n \n \n hasSchoolMigratedUser(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:165\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n markUnmigratedUsersAsOutdated\n \n \n \n \n \n \n \n markUnmigratedUsersAsOutdated(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrateSchool\n \n \n \n \n \n \n \n migrateSchool(externalId: string, existingSchool: LegacySchoolDo, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n existingSchool\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n rollbackMigration\n \n \n \n \n \n \n \n rollbackMigration(originalSchoolDO: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalSchoolDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n schoolToMigrate\n \n \n \n \n \n \n \n schoolToMigrate(currentUserId: string, externalId: string, officialSchoolNumber: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n officialSchoolNumber\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n unmarkOutdatedUsers\n \n \n \n \n \n \n \n unmarkOutdatedUsers(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n validateGracePeriod\n \n \n \n \n \n \nvalidateGracePeriod(userLoginMigration: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { Page, LegacySchoolDo, UserDO, UserLoginMigrationDO } from '@shared/domain';\nimport { UserLoginMigrationRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserService } from '@src/modules/user';\nimport { performance } from 'perf_hooks';\nimport { OAuthMigrationError } from '../error';\n\n@Injectable()\nexport class SchoolMigrationService {\n\tconstructor(\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly userLoginMigrationRepo: UserLoginMigrationRepo\n\t) {}\n\n\tvalidateGracePeriod(userLoginMigration: UserLoginMigrationDO) {\n\t\tif (userLoginMigration.finishedAt && Date.now() >= userLoginMigration.finishedAt.getTime()) {\n\t\t\tthrow new ValidationError('grace_period_expired: The grace period after finishing migration has expired', {\n\t\t\t\tfinishedAt: userLoginMigration.finishedAt,\n\t\t\t});\n\t\t}\n\t}\n\n\tasync migrateSchool(externalId: string, existingSchool: LegacySchoolDo, targetSystemId: string): Promise {\n\t\tconst schoolDOCopy: LegacySchoolDo = new LegacySchoolDo({ ...existingSchool });\n\n\t\ttry {\n\t\t\tawait this.doMigration(externalId, existingSchool, targetSystemId);\n\t\t} catch (e: unknown) {\n\t\t\tawait this.rollbackMigration(schoolDOCopy);\n\t\t\tthis.logger.log({\n\t\t\t\tmessage: `This error occurred during migration of School with official school number`,\n\t\t\t\tofficialSchoolNumber: existingSchool.officialSchoolNumber,\n\t\t\t\terror: e,\n\t\t\t});\n\t\t}\n\t}\n\n\tasync schoolToMigrate(\n\t\tcurrentUserId: string,\n\t\texternalId: string,\n\t\tofficialSchoolNumber: string | undefined\n\t): Promise {\n\t\tif (!officialSchoolNumber) {\n\t\t\tthrow new OAuthMigrationError(\n\t\t\t\t'Official school number from target migration system is missing',\n\t\t\t\t'ext_official_school_number_missing'\n\t\t\t);\n\t\t}\n\n\t\tconst userDO: UserDO | null = await this.userService.findById(currentUserId);\n\t\tif (userDO) {\n\t\t\tconst schoolDO: LegacySchoolDo = await this.schoolService.getSchoolById(userDO.schoolId);\n\t\t\tthis.checkOfficialSchoolNumbersMatch(schoolDO, officialSchoolNumber);\n\t\t}\n\n\t\tconst existingSchool: LegacySchoolDo | null = await this.schoolService.getSchoolBySchoolNumber(\n\t\t\tofficialSchoolNumber\n\t\t);\n\n\t\tif (!existingSchool) {\n\t\t\tthrow new OAuthMigrationError(\n\t\t\t\t'Could not find school by official school number from target migration system',\n\t\t\t\t'ext_official_school_missing'\n\t\t\t);\n\t\t}\n\n\t\tconst schoolMigrated: boolean = this.hasSchoolMigrated(externalId, existingSchool.externalId);\n\n\t\tif (schoolMigrated) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn existingSchool;\n\t}\n\n\tasync markUnmigratedUsersAsOutdated(schoolId: string): Promise {\n\t\tconst startTime: number = performance.now();\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UnprocessableEntityException(`School ${schoolId} has no UserLoginMigration`);\n\t\t}\n\n\t\tconst notMigratedUsers: Page = await this.userService.findUsers({\n\t\t\tschoolId,\n\t\t\tisOutdated: false,\n\t\t\tlastLoginSystemChangeSmallerThan: userLoginMigration.startedAt,\n\t\t});\n\n\t\tnotMigratedUsers.data.forEach((user: UserDO) => {\n\t\t\tuser.outdatedSince = userLoginMigration.closedAt;\n\t\t});\n\n\t\tawait this.userService.saveAll(notMigratedUsers.data);\n\n\t\tconst endTime: number = performance.now();\n\t\tthis.logger.warn(`completeMigration for schoolId ${schoolId} took ${endTime - startTime} milliseconds`);\n\t}\n\n\tasync unmarkOutdatedUsers(schoolId: string): Promise {\n\t\tconst startTime: number = performance.now();\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UnprocessableEntityException(`School ${schoolId} has no UserLoginMigration`);\n\t\t}\n\n\t\tconst migratedUsers: Page = await this.userService.findUsers({\n\t\t\tschoolId,\n\t\t\toutdatedSince: userLoginMigration.finishedAt,\n\t\t});\n\n\t\tmigratedUsers.data.forEach((user: UserDO) => {\n\t\t\tuser.outdatedSince = undefined;\n\t\t});\n\n\t\tawait this.userService.saveAll(migratedUsers.data);\n\n\t\tconst endTime: number = performance.now();\n\t\tthis.logger.warn(`restartMigration for schoolId ${schoolId} took ${endTime - startTime} milliseconds`);\n\t}\n\n\tprivate async doMigration(externalId: string, schoolDO: LegacySchoolDo, targetSystemId: string): Promise {\n\t\tif (schoolDO.systems) {\n\t\t\tschoolDO.systems.push(targetSystemId);\n\t\t} else {\n\t\t\tschoolDO.systems = [targetSystemId];\n\t\t}\n\t\tschoolDO.previousExternalId = schoolDO.externalId;\n\t\tschoolDO.externalId = externalId;\n\t\tawait this.schoolService.save(schoolDO);\n\t}\n\n\tprivate async rollbackMigration(originalSchoolDO: LegacySchoolDo) {\n\t\tif (originalSchoolDO) {\n\t\t\tawait this.schoolService.save(originalSchoolDO);\n\t\t}\n\t}\n\n\tprivate checkOfficialSchoolNumbersMatch(schoolDO: LegacySchoolDo, officialExternalSchoolNumber: string): void {\n\t\tif (schoolDO.officialSchoolNumber !== officialExternalSchoolNumber) {\n\t\t\tthrow new OAuthMigrationError(\n\t\t\t\t'Current users school is not the same as school found by official school number from target migration system',\n\t\t\t\t'ext_official_school_number_mismatch',\n\t\t\t\tschoolDO.officialSchoolNumber,\n\t\t\t\tofficialExternalSchoolNumber\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate hasSchoolMigrated(sourceExternalId: string, targetExternalId?: string): boolean {\n\t\tif (sourceExternalId === targetExternalId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tasync hasSchoolMigratedUser(schoolId: string): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst users: Page = await this.userService.findUsers({\n\t\t\tlastLoginSystemChangeBetweenStart: userLoginMigration.startedAt,\n\t\t\tlastLoginSystemChangeBetweenEnd: userLoginMigration.closedAt,\n\t\t});\n\n\t\tif (users.total > 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SchoolNews.html":{"url":"entities/SchoolNews.html","title":"entity - SchoolNews","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolNews\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:102\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolNumberDuplicateLoggableException.html":{"url":"classes/SchoolNumberDuplicateLoggableException.html","title":"class - SchoolNumberDuplicateLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolNumberDuplicateLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/error/school-number-duplicate.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n UnprocessableEntityException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(officialSchoolNumber: string)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/error/school-number-duplicate.loggable-exception.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n officialSchoolNumber\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/error/school-number-duplicate.loggable-exception.ts:9\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class SchoolNumberDuplicateLoggableException extends UnprocessableEntityException implements Loggable {\n\tconstructor(private readonly officialSchoolNumber: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'SCHOOL_NUMBER_DUPLICATE',\n\t\t\tmessage: 'Unable to save the school. A school with this official school number does already exist.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tofficialSchoolNumber: this.officialSchoolNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolNumberMissingLoggableException.html":{"url":"classes/SchoolNumberMissingLoggableException.html","title":"class - SchoolNumberMissingLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolNumberMissingLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/school-number-missing.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n UnprocessableEntityException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolId: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/school-number-missing.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/error/school-number-missing.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class SchoolNumberMissingLoggableException extends UnprocessableEntityException implements Loggable {\n\tconstructor(private readonly schoolId: EntityId) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'SCHOOL_NUMBER_MISSING',\n\t\t\tmessage: 'The school is missing a official school number.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tschoolId: this.schoolId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolParams.html":{"url":"classes/SchoolParams.html","title":"class - SchoolParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/controller/dto/school.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the school.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/school.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class SchoolParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the school.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tschoolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolRolePermission.html":{"url":"classes/SchoolRolePermission.html","title":"class - SchoolRolePermission","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolRolePermission\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/school.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n LERNSTORE_VIEW\n \n \n \n Optional\n STUDENT_LIST\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n LERNSTORE_VIEW\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n STUDENT_LIST\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:47\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import {\n\tCollection,\n\tEmbeddable,\n\tEmbedded,\n\tEntity,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToOne,\n\tProperty,\n} from '@mikro-orm/core';\nimport { UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYear } from './schoolyear.entity';\nimport { System } from './system.entity';\nimport { FederalState } from './federal-state.entity';\n\nexport enum SchoolFeatures {\n\tROCKET_CHAT = 'rocketChat',\n\tVIDEOCONFERENCE = 'videoconference',\n\tNEXTCLOUD = 'nextcloud',\n\tSTUDENTVISIBILITY = 'studentVisibility', // deprecated\n\tLDAP_UNIVENTION_MIGRATION = 'ldapUniventionMigrationSchool',\n\tOAUTH_PROVISIONING_ENABLED = 'oauthProvisioningEnabled',\n\tSHOW_OUTDATED_USERS = 'showOutdatedUsers',\n\tENABLE_LDAP_SYNC_DURING_MIGRATION = 'enableLdapSyncDuringMigration',\n}\n\nexport interface ISchoolProperties {\n\t_id?: string;\n\texternalId?: string;\n\tinMaintenanceSince?: Date;\n\tinUserMigration?: boolean;\n\tpreviousExternalId?: string;\n\tname: string;\n\tofficialSchoolNumber?: string;\n\tsystems?: System[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYear;\n\tuserLoginMigration?: UserLoginMigration;\n\tfederalState: FederalState;\n}\n\n@Embeddable()\nexport class SchoolRolePermission {\n\t@Property({ nullable: true })\n\tSTUDENT_LIST?: boolean;\n\n\t@Property({ nullable: true })\n\tLERNSTORE_VIEW?: boolean;\n}\n\n@Embeddable()\nexport class SchoolRoles {\n\t@Property({ nullable: true, fieldName: 'student' })\n\tstudent?: SchoolRolePermission;\n\n\t@Property({ nullable: true, fieldName: 'teacher' })\n\tteacher?: SchoolRolePermission;\n}\n\n@Entity({ tableName: 'schools' })\n@Index({ properties: ['externalId', 'systems'] })\nexport class SchoolEntity extends BaseEntity {\n\t@Property({ nullable: true })\n\tfeatures?: SchoolFeatures[];\n\n\t@Property({ nullable: true })\n\tinMaintenanceSince?: Date;\n\n\t@Property({ nullable: true })\n\tinUserMigration?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'ldapSchoolIdentifier' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tofficialSchoolNumber?: string;\n\n\t@ManyToMany('System', undefined, { fieldName: 'systems' })\n\tsystems = new Collection(this);\n\n\t@Embedded(() => SchoolRoles, { object: true, nullable: true, prefix: false })\n\tpermissions?: SchoolRoles;\n\n\t@ManyToOne('SchoolYear', { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYear;\n\n\t@OneToOne(() => UserLoginMigration, (userLoginMigration: UserLoginMigration) => userLoginMigration.school, {\n\t\torphanRemoval: true,\n\t\tnullable: true,\n\t\tfieldName: 'userLoginMigrationId',\n\t})\n\tuserLoginMigration?: UserLoginMigration;\n\n\t@ManyToOne(() => FederalState, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalState;\n\n\tconstructor(props: ISchoolProperties) {\n\t\tsuper();\n\t\tif (props.externalId) {\n\t\t\tthis.externalId = props.externalId;\n\t\t}\n\t\tif (props.previousExternalId) {\n\t\t\tthis.previousExternalId = props.previousExternalId;\n\t\t}\n\t\tthis.inMaintenanceSince = props.inMaintenanceSince;\n\t\tif (props.inUserMigration !== null) {\n\t\t\tthis.inUserMigration = props.inUserMigration;\n\t\t}\n\t\tthis.name = props.name;\n\t\tif (props.officialSchoolNumber) {\n\t\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t\t}\n\t\tif (props.systems) {\n\t\t\tthis.systems.set(props.systems);\n\t\t}\n\t\tif (props.features) {\n\t\t\tthis.features = props.features;\n\t\t}\n\t\tif (props.schoolYear) {\n\t\t\tthis.schoolYear = props.schoolYear;\n\t\t}\n\t\tif (props.userLoginMigration) {\n\t\t\tthis.userLoginMigration = props.userLoginMigration;\n\t\t}\n\t\tthis.federalState = props.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolRoles.html":{"url":"classes/SchoolRoles.html","title":"class - SchoolRoles","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolRoles\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/school.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n student\n \n \n \n Optional\n teacher\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n student\n \n \n \n \n \n \n Type : SchoolRolePermission\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'student'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n teacher\n \n \n \n \n \n \n Type : SchoolRolePermission\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'teacher'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:59\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import {\n\tCollection,\n\tEmbeddable,\n\tEmbedded,\n\tEntity,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToOne,\n\tProperty,\n} from '@mikro-orm/core';\nimport { UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYear } from './schoolyear.entity';\nimport { System } from './system.entity';\nimport { FederalState } from './federal-state.entity';\n\nexport enum SchoolFeatures {\n\tROCKET_CHAT = 'rocketChat',\n\tVIDEOCONFERENCE = 'videoconference',\n\tNEXTCLOUD = 'nextcloud',\n\tSTUDENTVISIBILITY = 'studentVisibility', // deprecated\n\tLDAP_UNIVENTION_MIGRATION = 'ldapUniventionMigrationSchool',\n\tOAUTH_PROVISIONING_ENABLED = 'oauthProvisioningEnabled',\n\tSHOW_OUTDATED_USERS = 'showOutdatedUsers',\n\tENABLE_LDAP_SYNC_DURING_MIGRATION = 'enableLdapSyncDuringMigration',\n}\n\nexport interface ISchoolProperties {\n\t_id?: string;\n\texternalId?: string;\n\tinMaintenanceSince?: Date;\n\tinUserMigration?: boolean;\n\tpreviousExternalId?: string;\n\tname: string;\n\tofficialSchoolNumber?: string;\n\tsystems?: System[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYear;\n\tuserLoginMigration?: UserLoginMigration;\n\tfederalState: FederalState;\n}\n\n@Embeddable()\nexport class SchoolRolePermission {\n\t@Property({ nullable: true })\n\tSTUDENT_LIST?: boolean;\n\n\t@Property({ nullable: true })\n\tLERNSTORE_VIEW?: boolean;\n}\n\n@Embeddable()\nexport class SchoolRoles {\n\t@Property({ nullable: true, fieldName: 'student' })\n\tstudent?: SchoolRolePermission;\n\n\t@Property({ nullable: true, fieldName: 'teacher' })\n\tteacher?: SchoolRolePermission;\n}\n\n@Entity({ tableName: 'schools' })\n@Index({ properties: ['externalId', 'systems'] })\nexport class SchoolEntity extends BaseEntity {\n\t@Property({ nullable: true })\n\tfeatures?: SchoolFeatures[];\n\n\t@Property({ nullable: true })\n\tinMaintenanceSince?: Date;\n\n\t@Property({ nullable: true })\n\tinUserMigration?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'ldapSchoolIdentifier' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tofficialSchoolNumber?: string;\n\n\t@ManyToMany('System', undefined, { fieldName: 'systems' })\n\tsystems = new Collection(this);\n\n\t@Embedded(() => SchoolRoles, { object: true, nullable: true, prefix: false })\n\tpermissions?: SchoolRoles;\n\n\t@ManyToOne('SchoolYear', { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYear;\n\n\t@OneToOne(() => UserLoginMigration, (userLoginMigration: UserLoginMigration) => userLoginMigration.school, {\n\t\torphanRemoval: true,\n\t\tnullable: true,\n\t\tfieldName: 'userLoginMigrationId',\n\t})\n\tuserLoginMigration?: UserLoginMigration;\n\n\t@ManyToOne(() => FederalState, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalState;\n\n\tconstructor(props: ISchoolProperties) {\n\t\tsuper();\n\t\tif (props.externalId) {\n\t\t\tthis.externalId = props.externalId;\n\t\t}\n\t\tif (props.previousExternalId) {\n\t\t\tthis.previousExternalId = props.previousExternalId;\n\t\t}\n\t\tthis.inMaintenanceSince = props.inMaintenanceSince;\n\t\tif (props.inUserMigration !== null) {\n\t\t\tthis.inUserMigration = props.inUserMigration;\n\t\t}\n\t\tthis.name = props.name;\n\t\tif (props.officialSchoolNumber) {\n\t\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t\t}\n\t\tif (props.systems) {\n\t\t\tthis.systems.set(props.systems);\n\t\t}\n\t\tif (props.features) {\n\t\t\tthis.features = props.features;\n\t\t}\n\t\tif (props.schoolYear) {\n\t\t\tthis.schoolYear = props.schoolYear;\n\t\t}\n\t\tif (props.userLoginMigration) {\n\t\t\tthis.userLoginMigration = props.userLoginMigration;\n\t\t}\n\t\tthis.federalState = props.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolValidationService.html":{"url":"injectables/SchoolValidationService.html","title":"injectable - SchoolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n isSchoolNumberUnique\n \n \n Public\n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolRepo: LegacySchoolRepo)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolRepo\n \n \n LegacySchoolRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n isSchoolNumberUnique\n \n \n \n \n \n \n \n isSchoolNumberUnique(school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n validate\n \n \n \n \n \n \n \n validate(school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { LegacySchoolDo } from '@shared/domain';\nimport { LegacySchoolRepo } from '@shared/repo';\nimport { SchoolNumberDuplicateLoggableException } from '../../error';\n\n@Injectable()\nexport class SchoolValidationService {\n\tconstructor(private readonly schoolRepo: LegacySchoolRepo) {}\n\n\tpublic async validate(school: LegacySchoolDo): Promise {\n\t\tif (!(await this.isSchoolNumberUnique(school))) {\n\t\t\tthrow new SchoolNumberDuplicateLoggableException(school.officialSchoolNumber as string);\n\t\t}\n\t}\n\n\tprivate async isSchoolNumberUnique(school: LegacySchoolDo): Promise {\n\t\tif (!school.officialSchoolNumber) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst foundSchool: LegacySchoolDo | null = await this.schoolRepo.findBySchoolNumber(school.officialSchoolNumber);\n\n\t\treturn foundSchool === null || foundSchool.id === school.id;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SchoolYear.html":{"url":"entities/SchoolYear.html","title":"entity - SchoolYear","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolYear\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/schoolyear.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n endDate\n \n \n \n name\n \n \n \n startDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n endDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/schoolyear.entity.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/schoolyear.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n startDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/schoolyear.entity.ts:16\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntity } from './base.entity';\n\nexport interface ISchoolYearProperties {\n\tname: string;\n\tstartDate: Date;\n\tendDate: Date;\n}\n\n@Entity({ tableName: 'years' })\nexport class SchoolYear extends BaseEntity implements ISchoolYearProperties {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tstartDate: Date;\n\n\t@Property()\n\tendDate: Date;\n\n\tconstructor(props: ISchoolYearProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.startDate = props.startDate;\n\t\tthis.endDate = props.endDate;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolYearRepo.html":{"url":"injectables/SchoolYearRepo.html","title":"injectable - SchoolYearRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolYearRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/repo/schoolyear.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findCurrentYear\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findCurrentYear\n \n \n \n \n \n \n \n findCurrentYear()\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/repo/schoolyear.repo.ts:11\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/repo/schoolyear.repo.ts:7\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolYear } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\n\n@Injectable()\nexport class SchoolYearRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn SchoolYear;\n\t}\n\n\tasync findCurrentYear(): Promise {\n\t\tconst currentDate = new Date();\n\t\tconst year: SchoolYear | null = await this._em.findOneOrFail(SchoolYear, {\n\t\t\t$and: [{ startDate: { $lte: currentDate } }, { endDate: { $gte: currentDate } }],\n\t\t});\n\t\treturn year;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolYearService.html":{"url":"injectables/SchoolYearService.html","title":"injectable - SchoolYearService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolYearService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/service/school-year.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getCurrentSchoolYear\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolYearRepo: SchoolYearRepo)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/service/school-year.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolYearRepo\n \n \n SchoolYearRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getCurrentSchoolYear\n \n \n \n \n \n \n \n getCurrentSchoolYear()\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/school-year.service.ts:10\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolYear } from '@shared/domain';\nimport { SchoolYearRepo } from '../repo';\n\n@Injectable()\nexport class SchoolYearService {\n\tconstructor(private readonly schoolYearRepo: SchoolYearRepo) {}\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tasync getCurrentSchoolYear(): Promise {\n\t\tconst current: SchoolYear = await this.schoolYearRepo.findCurrentYear();\n\n\t\treturn current;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Scope.html":{"url":"classes/Scope.html","title":"class - Scope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Scope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/scope.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n query\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(operator: ScopeOperator)\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n operator\n \n \n ScopeOperator\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:9\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/scope.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/scope.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n query\n \n \n\n \n \n getquery()\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:20\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { EmptyResultQuery } from './query/empty-result.query';\n\ntype EmptyResultQueryType = typeof EmptyResultQuery;\n\ntype ScopeOperator = '$and' | '$or';\n\nexport class Scope {\n\tprivate _queries: FilterQuery[] = [];\n\n\tprivate _operator: ScopeOperator;\n\n\tprivate _allowEmptyQuery: boolean;\n\n\tconstructor(operator: ScopeOperator = '$and') {\n\t\tthis._operator = operator;\n\t\tthis._allowEmptyQuery = false;\n\t}\n\n\tget query(): FilterQuery {\n\t\tif (this._queries.length === 0) {\n\t\t\tif (this._allowEmptyQuery) {\n\t\t\t\treturn {} as FilterQuery;\n\t\t\t}\n\t\t\treturn EmptyResultQuery as FilterQuery;\n\t\t}\n\t\tconst query = this._queries.length > 1 ? { [this._operator]: this._queries } : this._queries[0];\n\t\treturn query as FilterQuery;\n\t}\n\n\taddQuery(query: FilterQuery | EmptyResultQueryType): void {\n\t\tthis._queries.push(query);\n\t}\n\n\tallowEmptyQuery(isEmptyQueryAllowed: boolean): Scope {\n\t\tthis._allowEmptyQuery = isEmptyQueryAllowed;\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ScopeRef.html":{"url":"classes/ScopeRef.html","title":"class - ScopeRef","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ScopeRef\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/scope-ref.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n scope\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(id: EntityId, scope: VideoConferenceScope)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/scope-ref.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n \n EntityId\n \n \n \n No\n \n \n \n \n scope\n \n \n VideoConferenceScope\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/scope-ref.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : VideoConferenceScope\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/scope-ref.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId, VideoConferenceScope } from '@shared/domain';\n\nexport class ScopeRef {\n\tid: EntityId;\n\n\tscope: VideoConferenceScope;\n\n\tconstructor(id: EntityId, scope: VideoConferenceScope) {\n\t\tthis.id = id;\n\t\tthis.scope = scope;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ServerConsole.html":{"url":"classes/ServerConsole.html","title":"class - ServerConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ServerConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/console/server.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getHello\n \n \n \n getInOut\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consoleWriter: ConsoleWriterService)\n \n \n \n \n Defined in apps/server/src/console/server.console.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consoleWriter\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getHello\n \n \n \n \n \n \n \n getHello()\n \n \n\n \n \n Decorators : \n \n @Command({command: 'test', description: 'sample test output'})\n \n \n\n \n \n Defined in apps/server/src/console/server.console.ts:11\n \n \n\n\n \n \n test method for console output\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n getInOut\n \n \n \n \n \n \n \n getInOut(whatever: string)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'out ', description: 'return input args'})\n \n \n\n \n \n Defined in apps/server/src/console/server.console.ts:17\n \n \n\n\n \n \n test method for console input\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n whatever\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Command, Console } from 'nestjs-console';\nimport { ConsoleWriterService } from '@shared/infra/console';\n\n@Console({ command: 'server', description: 'sample server console' })\nexport class ServerConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService) {}\n\n\t/** test method for console output */\n\t@Command({ command: 'test', description: 'sample test output' })\n\tgetHello(): void {\n\t\tthis.consoleWriter.info('Schulcloud Server API');\n\t}\n\n\t/** test method for console input */\n\t@Command({ command: 'out ', description: 'return input args' })\n\tgetInOut(whatever: string): void {\n\t\tthis.consoleWriter.info(`input was: ${whatever}`);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ServerConsoleModule.html":{"url":"modules/ServerConsoleModule.html","title":"module - ServerConsoleModule","body":"\n \n\n\n\n\n Modules\n ServerConsoleModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ServerConsoleModule\n\n\n\ncluster_ServerConsoleModule_imports\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\n\n\nServerConsoleModule\n\nServerConsoleModule\n\nServerConsoleModule -->\n\nConsoleWriterModule->ServerConsoleModule\n\n\n\n\n\nFilesModule\n\nFilesModule\n\nServerConsoleModule -->\n\nFilesModule->ServerConsoleModule\n\n\n\n\n\nManagementModule\n\nManagementModule\n\nServerConsoleModule -->\n\nManagementModule->ServerConsoleModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/console/console.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n \n \n \n ConsoleWriterModule\n \n \n FilesModule\n \n \n ManagementModule\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { ConsoleWriterModule } from '@shared/infra/console/console-writer/console-writer.module';\nimport { KeycloakModule } from '@shared/infra/identity-management/keycloak/keycloak.module';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME, createConfigModuleOptions } from '@src/config';\nimport { FilesModule } from '@src/modules/files';\nimport { FileEntity } from '@src/modules/files/entity';\nimport { FileRecord } from '@src/modules/files-storage/entity';\nimport { ManagementModule } from '@src/modules/management/management.module';\nimport { serverConfig } from '@src/modules/server';\nimport { ConsoleModule } from 'nestjs-console';\nimport { ServerConsole } from './server.console';\n\n@Module({\n\timports: [\n\t\tManagementModule,\n\t\tConsoleModule,\n\t\tConsoleWriterModule,\n\t\tFilesModule,\n\t\tConfigModule.forRoot(createConfigModuleOptions(serverConfig)),\n\t\t...((Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean) ? [KeycloakModule] : []),\n\t\tMikroOrmModule.forRoot({\n\t\t\t// TODO repeats server module definitions\n\t\t\ttype: 'mongo',\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: [...ALL_ENTITIES, FileEntity, FileRecord],\n\t\t\tallowGlobalContext: true,\n\t\t\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t\t\tnew NotFoundException(`The requested ${entityName}: ${JSON.stringify(where)} has not been found.`),\n\t\t}),\n\t],\n\tproviders: [\n\t\t/** add console services as providers */\n\t\tServerConsole,\n\t],\n})\nexport class ServerConsoleModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ServerController.html":{"url":"controllers/ServerController.html","title":"controller - ServerController","body":"\n \n\n\n\n\n\n\n Controllers\n ServerController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/server/controller/server.controller.ts\n \n\n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getHello\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getHello\n \n \n \n \n \n \n \n getHello()\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/server/controller/server.controller.ts:7\n \n \n\n\n \n \n default route to test public access\n\n\n \n Returns : string\n\n \n \n \n \n \n \n\n\n \n import { Controller, Get } from '@nestjs/common';\n\n@Controller()\nexport class ServerController {\n\t/** default route to test public access */\n\t@Get()\n\tgetHello(): string {\n\t\treturn 'Schulcloud Server API';\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ServerModule.html":{"url":"modules/ServerModule.html","title":"module - ServerModule","body":"\n \n\n\n\n\n Modules\n ServerModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ServerModule\n\n\n\ncluster_ServerModule_imports\n\n\n\n\nAccountApiModule\n\nAccountApiModule\n\n\n\nServerModule\n\nServerModule\n\nServerModule -->\n\nAccountApiModule->ServerModule\n\n\n\n\n\nAuthenticationApiModule\n\nAuthenticationApiModule\n\nServerModule -->\n\nAuthenticationApiModule->ServerModule\n\n\n\n\n\nBoardApiModule\n\nBoardApiModule\n\nServerModule -->\n\nBoardApiModule->ServerModule\n\n\n\n\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule\n\nServerModule -->\n\nCollaborativeStorageModule->ServerModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nServerModule -->\n\nCoreModule->ServerModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nServerModule -->\n\nFilesStorageClientModule->ServerModule\n\n\n\n\n\nGroupApiModule\n\nGroupApiModule\n\nServerModule -->\n\nGroupApiModule->ServerModule\n\n\n\n\n\nImportUserModule\n\nImportUserModule\n\nServerModule -->\n\nImportUserModule->ServerModule\n\n\n\n\n\nLearnroomApiModule\n\nLearnroomApiModule\n\nServerModule -->\n\nLearnroomApiModule->ServerModule\n\n\n\n\n\nLegacySchoolApiModule\n\nLegacySchoolApiModule\n\nServerModule -->\n\nLegacySchoolApiModule->ServerModule\n\n\n\n\n\nLessonApiModule\n\nLessonApiModule\n\nServerModule -->\n\nLessonApiModule->ServerModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nServerModule -->\n\nLoggerModule->ServerModule\n\n\n\n\n\nNewsModule\n\nNewsModule\n\nServerModule -->\n\nNewsModule->ServerModule\n\n\n\n\n\nOauthApiModule\n\nOauthApiModule\n\nServerModule -->\n\nOauthApiModule->ServerModule\n\n\n\n\n\nOauthProviderApiModule\n\nOauthProviderApiModule\n\nServerModule -->\n\nOauthProviderApiModule->ServerModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nServerModule -->\n\nRabbitMQWrapperModule->ServerModule\n\n\n\n\n\nRedisModule\n\nRedisModule\n\nServerModule -->\n\nRedisModule->ServerModule\n\n\n\n\n\nSharingApiModule\n\nSharingApiModule\n\nServerModule -->\n\nSharingApiModule->ServerModule\n\n\n\n\n\nSystemApiModule\n\nSystemApiModule\n\nServerModule -->\n\nSystemApiModule->ServerModule\n\n\n\n\n\nTaskApiModule\n\nTaskApiModule\n\nServerModule -->\n\nTaskApiModule->ServerModule\n\n\n\n\n\nTeamsApiModule\n\nTeamsApiModule\n\nServerModule -->\n\nTeamsApiModule->ServerModule\n\n\n\n\n\nToolApiModule\n\nToolApiModule\n\nServerModule -->\n\nToolApiModule->ServerModule\n\n\n\n\n\nUserApiModule\n\nUserApiModule\n\nServerModule -->\n\nUserApiModule->ServerModule\n\n\n\n\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule\n\nServerModule -->\n\nUserLoginMigrationApiModule->ServerModule\n\n\n\n\n\nVideoConferenceApiModule\n\nVideoConferenceApiModule\n\nServerModule -->\n\nVideoConferenceApiModule->ServerModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/server/server.module.ts\n \n\n\n\n \n Description\n \n \n Server Module used for production\n\n \n\n\n \n \n \n Controllers\n \n \n ServerController\n \n \n \n \n Imports\n \n \n AccountApiModule\n \n \n AuthenticationApiModule\n \n \n BoardApiModule\n \n \n CollaborativeStorageModule\n \n \n CoreModule\n \n \n FilesStorageClientModule\n \n \n GroupApiModule\n \n \n ImportUserModule\n \n \n LearnroomApiModule\n \n \n LegacySchoolApiModule\n \n \n LessonApiModule\n \n \n LoggerModule\n \n \n NewsModule\n \n \n OauthApiModule\n \n \n OauthProviderApiModule\n \n \n RabbitMQWrapperModule\n \n \n RedisModule\n \n \n SharingApiModule\n \n \n SystemApiModule\n \n \n TaskApiModule\n \n \n TeamsApiModule\n \n \n ToolApiModule\n \n \n UserApiModule\n \n \n UserLoginMigrationApiModule\n \n \n VideoConferenceApiModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n configure\n \n \n \n \n \n \nconfigure(consumer: MiddlewareConsumer)\n \n \n\n\n \n \n Defined in apps/server/src/modules/server/server.module.ts:152\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n consumer\n \n MiddlewareConsumer\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Inject, MiddlewareConsumer, Module, NestModule, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoDatabaseModuleOptions, MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MailModule } from '@shared/infra/mail';\nimport { RabbitMQWrapperModule, RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq';\nimport { REDIS_CLIENT, RedisModule } from '@shared/infra/redis';\nimport { createConfigModuleOptions, DB_PASSWORD, DB_URL, DB_USERNAME } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { AccountApiModule } from '@src/modules/account/account-api.module';\nimport { AuthenticationApiModule } from '@src/modules/authentication/authentication-api.module';\nimport { BoardApiModule } from '@src/modules/board/board-api.module';\nimport { CollaborativeStorageModule } from '@src/modules/collaborative-storage';\nimport { FilesStorageClientModule } from '@src/modules/files-storage-client';\nimport { GroupApiModule } from '@src/modules/group/group-api.module';\nimport { LearnroomApiModule } from '@src/modules/learnroom/learnroom-api.module';\nimport { LessonApiModule } from '@src/modules/lesson/lesson-api.module';\nimport { NewsModule } from '@src/modules/news';\nimport { OauthProviderApiModule } from '@src/modules/oauth-provider';\nimport { OauthApiModule } from '@src/modules/oauth/oauth-api.module';\nimport { RocketChatModule } from '@src/modules/rocketchat';\nimport { LegacySchoolApiModule } from '@src/modules/legacy-school/legacy-school-api.module';\nimport { SharingApiModule } from '@src/modules/sharing/sharing.module';\nimport { SystemApiModule } from '@src/modules/system/system-api.module';\nimport { TaskApiModule } from '@src/modules/task/task-api.module';\nimport { ToolApiModule } from '@src/modules/tool/tool-api.module';\nimport { ImportUserModule } from '@src/modules/user-import';\nimport { UserLoginMigrationApiModule } from '@src/modules/user-login-migration/user-login-migration-api.module';\nimport { UserApiModule } from '@src/modules/user/user-api.module';\nimport { VideoConferenceApiModule } from '@src/modules/video-conference/video-conference-api.module';\nimport connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\nimport { TeamsApiModule } from '@src/modules/teams/teams-api.module';\nimport { ServerController } from './controller/server.controller';\nimport { serverConfig } from './server.config';\n\nconst serverModules = [\n\tConfigModule.forRoot(createConfigModuleOptions(serverConfig)),\n\tCoreModule,\n\tAuthenticationApiModule,\n\tAccountApiModule,\n\tCollaborativeStorageModule,\n\tOauthApiModule,\n\tTaskApiModule,\n\tLessonApiModule,\n\tNewsModule,\n\tUserApiModule,\n\tImportUserModule,\n\tLearnroomApiModule,\n\tFilesStorageClientModule,\n\tSystemApiModule,\n\tMailModule.forRoot({\n\t\texchange: Configuration.get('MAIL_SEND_EXCHANGE') as string,\n\t\troutingKey: Configuration.get('MAIL_SEND_ROUTING_KEY') as string,\n\t}),\n\tRocketChatModule.forRoot({\n\t\turi: Configuration.get('ROCKET_CHAT_URI') as string,\n\t\tadminId: Configuration.get('ROCKET_CHAT_ADMIN_ID') as string,\n\t\tadminToken: Configuration.get('ROCKET_CHAT_ADMIN_TOKEN') as string,\n\t\tadminUser: Configuration.get('ROCKET_CHAT_ADMIN_USER') as string,\n\t\tadminPassword: Configuration.get('ROCKET_CHAT_ADMIN_PASSWORD') as string,\n\t}),\n\tLegacySchoolApiModule,\n\tVideoConferenceApiModule,\n\tOauthProviderApiModule,\n\tSharingApiModule,\n\tToolApiModule,\n\tUserLoginMigrationApiModule,\n\tBoardApiModule,\n\tGroupApiModule,\n\tTeamsApiModule,\n];\n\nexport const defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\nconst setupSessions = (consumer: MiddlewareConsumer, redisClient: RedisClient | undefined, logger: LegacyLogger) => {\n\tconst sessionDuration: number = Configuration.get('SESSION__EXPIRES_SECONDS') as number;\n\n\tlet store: connectRedis.RedisStore | undefined;\n\tif (redisClient) {\n\t\tconst RedisStore: connectRedis.RedisStore = connectRedis(session);\n\t\tstore = new RedisStore({\n\t\t\tclient: redisClient,\n\t\t\tttl: sessionDuration,\n\t\t});\n\t} else {\n\t\tlogger.warn(\n\t\t\t'The RedisStore for sessions is not setup, since the environment variable REDIS_URI is not defined. Sessions are using the build-in MemoryStore. This should not be used in production!'\n\t\t);\n\t}\n\n\tconsumer\n\t\t.apply(\n\t\t\tsession({\n\t\t\t\tstore,\n\t\t\t\tsecret: Configuration.get('SESSION__SECRET') as string,\n\t\t\t\tresave: false,\n\t\t\t\tsaveUninitialized: false,\n\t\t\t\tname: Configuration.has('SESSION__NAME') ? (Configuration.get('SESSION__NAME') as string) : undefined,\n\t\t\t\tproxy: Configuration.has('SESSION__PROXY') ? (Configuration.get('SESSION__PROXY') as boolean) : undefined,\n\t\t\t\tcookie: {\n\t\t\t\t\tsecure: Configuration.get('SESSION__SECURE') as boolean,\n\t\t\t\t\tsameSite: Configuration.get('SESSION__SAME_SITE') as boolean | 'lax' | 'strict' | 'none',\n\t\t\t\t\thttpOnly: Configuration.get('SESSION__HTTP_ONLY') as boolean,\n\t\t\t\t\tmaxAge: sessionDuration * 1000,\n\t\t\t\t},\n\t\t\t})\n\t\t)\n\t\t.forRoutes('*');\n};\n\n/**\n * Server Module used for production\n */\n@Module({\n\timports: [\n\t\tRabbitMQWrapperModule,\n\t\t...serverModules,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\ttype: 'mongo',\n\t\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: ALL_ENTITIES,\n\n\t\t\t// debug: true, // use it for locally debugging of queries\n\t\t}),\n\t\tLoggerModule,\n\t\tRedisModule,\n\t],\n\tcontrollers: [ServerController],\n})\nexport class ServerModule implements NestModule {\n\tconstructor(\n\t\t@Inject(REDIS_CLIENT) private readonly redisClient: RedisClient | undefined,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tlogger.setContext(ServerModule.name);\n\t}\n\n\tconfigure(consumer: MiddlewareConsumer) {\n\t\tsetupSessions(consumer, this.redisClient, this.logger);\n\t}\n}\n\n/**\n * Server module used for testing.\n * Should have same modules than the @ServerModule while infrastucture Modules can be different.\n * Customizations:\n * - In Memory Database instead of external connection\n * // TODO add custom mail, rocketchat, and rabbitmq modules\n * // TODO use instead of ServerModule when NODE_ENV=test\n */\n@Module({\n\timports: [\n\t\t...serverModules,\n\t\tMongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions }),\n\t\tRabbitMQWrapperTestModule,\n\t\tLoggerModule,\n\t\tRedisModule,\n\t],\n\tcontrollers: [ServerController],\n})\nexport class ServerTestModule implements NestModule {\n\tconstructor(\n\t\t@Inject(REDIS_CLIENT) private readonly redisClient: RedisClient | undefined,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tlogger.setContext(ServerTestModule.name);\n\t}\n\n\tconfigure(consumer: MiddlewareConsumer) {\n\t\tsetupSessions(consumer, undefined, this.logger);\n\t}\n\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: ServerTestModule,\n\t\t\timports: [\n\t\t\t\t...serverModules,\n\t\t\t\tMongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions, ...options }),\n\t\t\t\tRabbitMQWrapperTestModule,\n\t\t\t],\n\t\t\tcontrollers: [ServerController],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ServerTestModule.html":{"url":"modules/ServerTestModule.html","title":"module - ServerTestModule","body":"\n \n\n\n\n\n Modules\n ServerTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ServerTestModule\n\n\n\ncluster_ServerTestModule_imports\n\n\n\n\nAccountApiModule\n\nAccountApiModule\n\n\n\nServerTestModule\n\nServerTestModule\n\nServerTestModule -->\n\nAccountApiModule->ServerTestModule\n\n\n\n\n\nAuthenticationApiModule\n\nAuthenticationApiModule\n\nServerTestModule -->\n\nAuthenticationApiModule->ServerTestModule\n\n\n\n\n\nBoardApiModule\n\nBoardApiModule\n\nServerTestModule -->\n\nBoardApiModule->ServerTestModule\n\n\n\n\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule\n\nServerTestModule -->\n\nCollaborativeStorageModule->ServerTestModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nServerTestModule -->\n\nCoreModule->ServerTestModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nServerTestModule -->\n\nFilesStorageClientModule->ServerTestModule\n\n\n\n\n\nGroupApiModule\n\nGroupApiModule\n\nServerTestModule -->\n\nGroupApiModule->ServerTestModule\n\n\n\n\n\nImportUserModule\n\nImportUserModule\n\nServerTestModule -->\n\nImportUserModule->ServerTestModule\n\n\n\n\n\nLearnroomApiModule\n\nLearnroomApiModule\n\nServerTestModule -->\n\nLearnroomApiModule->ServerTestModule\n\n\n\n\n\nLegacySchoolApiModule\n\nLegacySchoolApiModule\n\nServerTestModule -->\n\nLegacySchoolApiModule->ServerTestModule\n\n\n\n\n\nLessonApiModule\n\nLessonApiModule\n\nServerTestModule -->\n\nLessonApiModule->ServerTestModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nServerTestModule -->\n\nLoggerModule->ServerTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nServerTestModule -->\n\nMongoMemoryDatabaseModule->ServerTestModule\n\n\n\n\n\nNewsModule\n\nNewsModule\n\nServerTestModule -->\n\nNewsModule->ServerTestModule\n\n\n\n\n\nOauthApiModule\n\nOauthApiModule\n\nServerTestModule -->\n\nOauthApiModule->ServerTestModule\n\n\n\n\n\nOauthProviderApiModule\n\nOauthProviderApiModule\n\nServerTestModule -->\n\nOauthProviderApiModule->ServerTestModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nServerTestModule -->\n\nRabbitMQWrapperTestModule->ServerTestModule\n\n\n\n\n\nRedisModule\n\nRedisModule\n\nServerTestModule -->\n\nRedisModule->ServerTestModule\n\n\n\n\n\nSharingApiModule\n\nSharingApiModule\n\nServerTestModule -->\n\nSharingApiModule->ServerTestModule\n\n\n\n\n\nSystemApiModule\n\nSystemApiModule\n\nServerTestModule -->\n\nSystemApiModule->ServerTestModule\n\n\n\n\n\nTaskApiModule\n\nTaskApiModule\n\nServerTestModule -->\n\nTaskApiModule->ServerTestModule\n\n\n\n\n\nTeamsApiModule\n\nTeamsApiModule\n\nServerTestModule -->\n\nTeamsApiModule->ServerTestModule\n\n\n\n\n\nToolApiModule\n\nToolApiModule\n\nServerTestModule -->\n\nToolApiModule->ServerTestModule\n\n\n\n\n\nUserApiModule\n\nUserApiModule\n\nServerTestModule -->\n\nUserApiModule->ServerTestModule\n\n\n\n\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule\n\nServerTestModule -->\n\nUserLoginMigrationApiModule->ServerTestModule\n\n\n\n\n\nVideoConferenceApiModule\n\nVideoConferenceApiModule\n\nServerTestModule -->\n\nVideoConferenceApiModule->ServerTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/server/server.module.ts\n \n\n\n\n \n Description\n \n \n Server module used for testing.\nShould have same modules than the @ServerModule while infrastucture Modules can be different.\nCustomizations:\n\nIn Memory Database instead of external connection\n// TODO add custom mail, rocketchat, and rabbitmq modules\n// TODO use instead of ServerModule when NODE_ENV=test\n\n\n \n\n\n \n \n \n Controllers\n \n \n ServerController\n \n \n \n \n Imports\n \n \n AccountApiModule\n \n \n AuthenticationApiModule\n \n \n BoardApiModule\n \n \n CollaborativeStorageModule\n \n \n CoreModule\n \n \n FilesStorageClientModule\n \n \n GroupApiModule\n \n \n ImportUserModule\n \n \n LearnroomApiModule\n \n \n LegacySchoolApiModule\n \n \n LessonApiModule\n \n \n LoggerModule\n \n \n MongoMemoryDatabaseModule\n \n \n NewsModule\n \n \n OauthApiModule\n \n \n OauthProviderApiModule\n \n \n RabbitMQWrapperTestModule\n \n \n RedisModule\n \n \n SharingApiModule\n \n \n SystemApiModule\n \n \n TaskApiModule\n \n \n TeamsApiModule\n \n \n ToolApiModule\n \n \n UserApiModule\n \n \n UserLoginMigrationApiModule\n \n \n VideoConferenceApiModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n configure\n \n \n \n \n \n \nconfigure(consumer: MiddlewareConsumer)\n \n \n\n\n \n \n Defined in apps/server/src/modules/server/server.module.ts:183\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n consumer\n \n MiddlewareConsumer\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/server/server.module.ts:187\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Inject, MiddlewareConsumer, Module, NestModule, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoDatabaseModuleOptions, MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MailModule } from '@shared/infra/mail';\nimport { RabbitMQWrapperModule, RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq';\nimport { REDIS_CLIENT, RedisModule } from '@shared/infra/redis';\nimport { createConfigModuleOptions, DB_PASSWORD, DB_URL, DB_USERNAME } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { AccountApiModule } from '@src/modules/account/account-api.module';\nimport { AuthenticationApiModule } from '@src/modules/authentication/authentication-api.module';\nimport { BoardApiModule } from '@src/modules/board/board-api.module';\nimport { CollaborativeStorageModule } from '@src/modules/collaborative-storage';\nimport { FilesStorageClientModule } from '@src/modules/files-storage-client';\nimport { GroupApiModule } from '@src/modules/group/group-api.module';\nimport { LearnroomApiModule } from '@src/modules/learnroom/learnroom-api.module';\nimport { LessonApiModule } from '@src/modules/lesson/lesson-api.module';\nimport { NewsModule } from '@src/modules/news';\nimport { OauthProviderApiModule } from '@src/modules/oauth-provider';\nimport { OauthApiModule } from '@src/modules/oauth/oauth-api.module';\nimport { RocketChatModule } from '@src/modules/rocketchat';\nimport { LegacySchoolApiModule } from '@src/modules/legacy-school/legacy-school-api.module';\nimport { SharingApiModule } from '@src/modules/sharing/sharing.module';\nimport { SystemApiModule } from '@src/modules/system/system-api.module';\nimport { TaskApiModule } from '@src/modules/task/task-api.module';\nimport { ToolApiModule } from '@src/modules/tool/tool-api.module';\nimport { ImportUserModule } from '@src/modules/user-import';\nimport { UserLoginMigrationApiModule } from '@src/modules/user-login-migration/user-login-migration-api.module';\nimport { UserApiModule } from '@src/modules/user/user-api.module';\nimport { VideoConferenceApiModule } from '@src/modules/video-conference/video-conference-api.module';\nimport connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\nimport { TeamsApiModule } from '@src/modules/teams/teams-api.module';\nimport { ServerController } from './controller/server.controller';\nimport { serverConfig } from './server.config';\n\nconst serverModules = [\n\tConfigModule.forRoot(createConfigModuleOptions(serverConfig)),\n\tCoreModule,\n\tAuthenticationApiModule,\n\tAccountApiModule,\n\tCollaborativeStorageModule,\n\tOauthApiModule,\n\tTaskApiModule,\n\tLessonApiModule,\n\tNewsModule,\n\tUserApiModule,\n\tImportUserModule,\n\tLearnroomApiModule,\n\tFilesStorageClientModule,\n\tSystemApiModule,\n\tMailModule.forRoot({\n\t\texchange: Configuration.get('MAIL_SEND_EXCHANGE') as string,\n\t\troutingKey: Configuration.get('MAIL_SEND_ROUTING_KEY') as string,\n\t}),\n\tRocketChatModule.forRoot({\n\t\turi: Configuration.get('ROCKET_CHAT_URI') as string,\n\t\tadminId: Configuration.get('ROCKET_CHAT_ADMIN_ID') as string,\n\t\tadminToken: Configuration.get('ROCKET_CHAT_ADMIN_TOKEN') as string,\n\t\tadminUser: Configuration.get('ROCKET_CHAT_ADMIN_USER') as string,\n\t\tadminPassword: Configuration.get('ROCKET_CHAT_ADMIN_PASSWORD') as string,\n\t}),\n\tLegacySchoolApiModule,\n\tVideoConferenceApiModule,\n\tOauthProviderApiModule,\n\tSharingApiModule,\n\tToolApiModule,\n\tUserLoginMigrationApiModule,\n\tBoardApiModule,\n\tGroupApiModule,\n\tTeamsApiModule,\n];\n\nexport const defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\nconst setupSessions = (consumer: MiddlewareConsumer, redisClient: RedisClient | undefined, logger: LegacyLogger) => {\n\tconst sessionDuration: number = Configuration.get('SESSION__EXPIRES_SECONDS') as number;\n\n\tlet store: connectRedis.RedisStore | undefined;\n\tif (redisClient) {\n\t\tconst RedisStore: connectRedis.RedisStore = connectRedis(session);\n\t\tstore = new RedisStore({\n\t\t\tclient: redisClient,\n\t\t\tttl: sessionDuration,\n\t\t});\n\t} else {\n\t\tlogger.warn(\n\t\t\t'The RedisStore for sessions is not setup, since the environment variable REDIS_URI is not defined. Sessions are using the build-in MemoryStore. This should not be used in production!'\n\t\t);\n\t}\n\n\tconsumer\n\t\t.apply(\n\t\t\tsession({\n\t\t\t\tstore,\n\t\t\t\tsecret: Configuration.get('SESSION__SECRET') as string,\n\t\t\t\tresave: false,\n\t\t\t\tsaveUninitialized: false,\n\t\t\t\tname: Configuration.has('SESSION__NAME') ? (Configuration.get('SESSION__NAME') as string) : undefined,\n\t\t\t\tproxy: Configuration.has('SESSION__PROXY') ? (Configuration.get('SESSION__PROXY') as boolean) : undefined,\n\t\t\t\tcookie: {\n\t\t\t\t\tsecure: Configuration.get('SESSION__SECURE') as boolean,\n\t\t\t\t\tsameSite: Configuration.get('SESSION__SAME_SITE') as boolean | 'lax' | 'strict' | 'none',\n\t\t\t\t\thttpOnly: Configuration.get('SESSION__HTTP_ONLY') as boolean,\n\t\t\t\t\tmaxAge: sessionDuration * 1000,\n\t\t\t\t},\n\t\t\t})\n\t\t)\n\t\t.forRoutes('*');\n};\n\n/**\n * Server Module used for production\n */\n@Module({\n\timports: [\n\t\tRabbitMQWrapperModule,\n\t\t...serverModules,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\ttype: 'mongo',\n\t\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: ALL_ENTITIES,\n\n\t\t\t// debug: true, // use it for locally debugging of queries\n\t\t}),\n\t\tLoggerModule,\n\t\tRedisModule,\n\t],\n\tcontrollers: [ServerController],\n})\nexport class ServerModule implements NestModule {\n\tconstructor(\n\t\t@Inject(REDIS_CLIENT) private readonly redisClient: RedisClient | undefined,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tlogger.setContext(ServerModule.name);\n\t}\n\n\tconfigure(consumer: MiddlewareConsumer) {\n\t\tsetupSessions(consumer, this.redisClient, this.logger);\n\t}\n}\n\n/**\n * Server module used for testing.\n * Should have same modules than the @ServerModule while infrastucture Modules can be different.\n * Customizations:\n * - In Memory Database instead of external connection\n * // TODO add custom mail, rocketchat, and rabbitmq modules\n * // TODO use instead of ServerModule when NODE_ENV=test\n */\n@Module({\n\timports: [\n\t\t...serverModules,\n\t\tMongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions }),\n\t\tRabbitMQWrapperTestModule,\n\t\tLoggerModule,\n\t\tRedisModule,\n\t],\n\tcontrollers: [ServerController],\n})\nexport class ServerTestModule implements NestModule {\n\tconstructor(\n\t\t@Inject(REDIS_CLIENT) private readonly redisClient: RedisClient | undefined,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tlogger.setContext(ServerTestModule.name);\n\t}\n\n\tconfigure(consumer: MiddlewareConsumer) {\n\t\tsetupSessions(consumer, undefined, this.logger);\n\t}\n\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: ServerTestModule,\n\t\t\timports: [\n\t\t\t\t...serverModules,\n\t\t\t\tMongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions, ...options }),\n\t\t\t\tRabbitMQWrapperTestModule,\n\t\t\t],\n\t\t\tcontrollers: [ServerController],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SetHeightBodyParams.html":{"url":"classes/SetHeightBodyParams.html","title":"class - SetHeightBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SetHeightBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/set-height.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n height\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsPositive()@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/set-height.body.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsPositive } from 'class-validator';\n\nexport class SetHeightBodyParams {\n\t@IsPositive()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\theight!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ShareToken.html":{"url":"entities/ShareToken.html","title":"entity - ShareToken","body":"\n \n\n\n\n\n\n\n\n Entities\n ShareToken\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/entity/share-token.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n _contextId\n \n \n \n _parentId\n \n \n \n Optional\n contextType\n \n \n \n \n Optional\n expiresAt\n \n \n \n parentType\n \n \n \n token\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n _contextId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'context', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n _parentId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'parent'})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n contextType\n \n \n \n \n \n \n Type : ShareTokenContextType\n\n \n \n \n \n Decorators : \n \n \n @Enum({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Index({options: undefined})@Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : ShareTokenParentType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : ShareTokenString\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:19\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain/types/entity-id';\nimport { ShareTokenContextType, ShareTokenParentType, ShareTokenString } from '../domainobject/share-token.do';\n\nexport interface IShareTokenProperties {\n\ttoken: ShareTokenString;\n\tparentType: ShareTokenParentType;\n\tparentId: EntityId | ObjectId;\n\tcontextType?: ShareTokenContextType;\n\tcontextId?: EntityId | ObjectId;\n\texpiresAt?: Date;\n}\n\n@Entity({ tableName: 'sharetokens' })\nexport class ShareToken extends BaseEntityWithTimestamps {\n\t@Property()\n\ttoken: ShareTokenString;\n\n\t@Enum()\n\tparentType: ShareTokenParentType;\n\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Enum({ nullable: true })\n\tcontextType?: ShareTokenContextType;\n\n\t@Property({ fieldName: 'context', nullable: true })\n\t_contextId?: ObjectId;\n\n\tget contextId(): EntityId | undefined {\n\t\treturn this._contextId?.toHexString();\n\t}\n\n\t@Index({ options: { expireAfterSeconds: 0 } })\n\t@Property({ nullable: true })\n\texpiresAt?: Date;\n\n\tconstructor(props: IShareTokenProperties) {\n\t\tsuper();\n\t\tthis.token = props.token;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis.contextType = props.contextType;\n\t\tif (props.contextId !== undefined) {\n\t\t\tthis._contextId = new ObjectId(props.contextId);\n\t\t}\n\t\tthis.expiresAt = props.expiresAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenBodyParams.html":{"url":"classes/ShareTokenBodyParams.html","title":"class - ShareTokenBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n expiresInDays\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n \n Optional\n schoolExclusive\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n expiresInDays\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsInt()@IsOptional()@IsPositive()@ApiProperty({description: 'when defined, the sharetoken will expire after the given number of days.', required: false, nullable: true, minimum: 1})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'the id of the object being shared.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : ShareTokenParentType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ShareTokenParentType)@ApiProperty({description: 'the type of the object being shared', required: true, nullable: false, enum: ShareTokenParentType})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n schoolExclusive\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'when defined, the sharetoken will be usable exclusively by members of the users school.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts:41\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean, IsEnum, IsInt, IsMongoId, IsOptional, IsPositive } from 'class-validator';\nimport { ShareTokenParentType } from '../../domainobject/share-token.do';\n\nexport class ShareTokenBodyParams {\n\t@IsEnum(ShareTokenParentType)\n\t@ApiProperty({\n\t\tdescription: 'the type of the object being shared',\n\t\trequired: true,\n\t\tnullable: false,\n\t\tenum: ShareTokenParentType,\n\t})\n\tparentType!: ShareTokenParentType;\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'the id of the object being shared.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tparentId!: string;\n\n\t@IsInt()\n\t@IsOptional()\n\t@IsPositive()\n\t@ApiProperty({\n\t\tdescription: 'when defined, the sharetoken will expire after the given number of days.',\n\t\trequired: false,\n\t\tnullable: true,\n\t\tminimum: 1,\n\t})\n\texpiresInDays?: number;\n\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'when defined, the sharetoken will be usable exclusively by members of the users school.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tschoolExclusive?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenContextTypeMapper.html":{"url":"classes/ShareTokenContextTypeMapper.html","title":"class - ShareTokenContextTypeMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenContextTypeMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/context-type.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n \n \n \n mapToAllowedAuthorizationEntityType(type: ShareTokenContextType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/context-type.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ShareTokenContextType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizableReferenceType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { AuthorizableReferenceType } from '@src/modules/authorization';\nimport { ShareTokenContextType } from '../domainobject/share-token.do';\n\nexport class ShareTokenContextTypeMapper {\n\tstatic mapToAllowedAuthorizationEntityType(type: ShareTokenContextType): AuthorizableReferenceType {\n\t\tconst types: Map = new Map();\n\t\ttypes.set(ShareTokenContextType.School, AuthorizableReferenceType.School);\n\n\t\tconst res = types.get(type);\n\n\t\tif (!res) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\treturn res;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ShareTokenController.html":{"url":"controllers/ShareTokenController.html","title":"controller - ShareTokenController","body":"\n \n\n\n\n\n\n\n Controllers\n ShareTokenController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/share-token.controller.ts\n \n\n \n Prefix\n \n \n sharetoken\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createShareToken\n \n \n \n \n \n \n \n \n \n \n Async\n importShareToken\n \n \n \n \n \n \n \n \n Async\n lookupShareToken\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createShareToken\n \n \n \n \n \n \n \n createShareToken(currentUser: ICurrentUser, body: ShareTokenBodyParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a share token.'})@ApiResponse({status: 201, type: ShareTokenResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 500, type: InternalServerErrorException})@Post()\n \n \n\n \n \n Defined in apps/server/src/modules/sharing/controller/share-token.controller.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n ShareTokenBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importShareToken\n \n \n \n \n \n \n \n importShareToken(currentUser: ICurrentUser, urlParams: ShareTokenUrlParams, body: ShareTokenImportBodyParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Import a share token payload.'})@ApiResponse({status: 201, type: CopyApiResponse})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@ApiResponse({status: 500, type: InternalServerErrorException})@ApiResponse({status: 501, type: NotImplementedException})@Post(':token/import')@RequestTimeout(undefined.INCOMING_REQUEST_TIMEOUT_COPY_API)\n \n \n\n \n \n Defined in apps/server/src/modules/sharing/controller/share-token.controller.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n ShareTokenUrlParams\n \n\n \n No\n \n\n\n \n \n body\n \n ShareTokenImportBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n lookupShareToken\n \n \n \n \n \n \n \n lookupShareToken(currentUser: ICurrentUser, urlParams: ShareTokenUrlParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Look up a share token.'})@ApiResponse({status: 200, type: ShareTokenInfoResponse})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@ApiResponse({status: 500, type: InternalServerErrorException})@Get(':token')\n \n \n\n \n \n Defined in apps/server/src/modules/sharing/controller/share-token.controller.ts:67\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n ShareTokenUrlParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tForbiddenException,\n\tGet,\n\tInternalServerErrorException,\n\tNotFoundException,\n\tNotImplementedException,\n\tParam,\n\tPost,\n} from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError, RequestTimeout } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CopyApiResponse, CopyMapper } from '@src/modules/copy-helper';\nimport { serverConfig } from '@src/modules/server/server.config';\nimport { ShareTokenInfoResponseMapper, ShareTokenResponseMapper } from '../mapper';\nimport { ShareTokenUC } from '../uc';\nimport {\n\tShareTokenBodyParams,\n\tShareTokenImportBodyParams,\n\tShareTokenInfoResponse,\n\tShareTokenResponse,\n\tShareTokenUrlParams,\n} from './dto';\n\n@ApiTags('ShareToken')\n@Authenticate('jwt')\n@Controller('sharetoken')\nexport class ShareTokenController {\n\tconstructor(private readonly shareTokenUC: ShareTokenUC) {}\n\n\t@ApiOperation({ summary: 'Create a share token.' })\n\t@ApiResponse({ status: 201, type: ShareTokenResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Post()\n\tasync createShareToken(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: ShareTokenBodyParams\n\t): Promise {\n\t\tconst shareToken = await this.shareTokenUC.createShareToken(\n\t\t\tcurrentUser.userId,\n\t\t\t{\n\t\t\t\tparentType: body.parentType,\n\t\t\t\tparentId: body.parentId,\n\t\t\t},\n\t\t\t{\n\t\t\t\tschoolExclusive: body.schoolExclusive,\n\t\t\t\texpiresInDays: body.expiresInDays,\n\t\t\t}\n\t\t);\n\n\t\tconst response = ShareTokenResponseMapper.mapToResponse(shareToken);\n\n\t\treturn Promise.resolve(response);\n\t}\n\n\t@ApiOperation({ summary: 'Look up a share token.' })\n\t@ApiResponse({ status: 200, type: ShareTokenInfoResponse })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Get(':token')\n\tasync lookupShareToken(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: ShareTokenUrlParams\n\t): Promise {\n\t\tconst shareTokenInfo = await this.shareTokenUC.lookupShareToken(currentUser.userId, urlParams.token);\n\n\t\tconst response = ShareTokenInfoResponseMapper.mapToResponse(shareTokenInfo);\n\n\t\treturn response;\n\t}\n\n\t@ApiOperation({ summary: 'Import a share token payload.' })\n\t@ApiResponse({ status: 201, type: CopyApiResponse })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@ApiResponse({ status: 501, type: NotImplementedException })\n\t@Post(':token/import')\n\t@RequestTimeout(serverConfig().INCOMING_REQUEST_TIMEOUT_COPY_API)\n\tasync importShareToken(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: ShareTokenUrlParams,\n\t\t@Body() body: ShareTokenImportBodyParams\n\t): Promise {\n\t\tconst copyStatus = await this.shareTokenUC.importShareToken(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.token,\n\t\t\tbody.newName,\n\t\t\tbody.destinationCourseId\n\t\t);\n\n\t\tconst response = CopyMapper.mapToResponse(copyStatus);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenDO.html":{"url":"classes/ShareTokenDO.html","title":"class - ShareTokenDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/domainobject/share-token.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n context\n \n \n Optional\n expiresAt\n \n \n payload\n \n \n token\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(domainObject: ShareTokenDO)\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:33\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n \n ShareTokenDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n context\n \n \n \n \n \n \n Type : ShareTokenContext\n\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n payload\n \n \n \n \n \n \n Type : ShareTokenPayload\n\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : ShareTokenString\n\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { BaseDO } from '@shared/domain/domainobject';\n\nexport enum ShareTokenParentType {\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n}\n\nexport enum ShareTokenContextType {\n\t'School' = 'schools',\n}\n\nexport type ShareTokenString = string;\n\nexport type ShareTokenPayload = {\n\tparentType: ShareTokenParentType;\n\tparentId: EntityId;\n};\n\nexport type ShareTokenContext = {\n\tcontextType: ShareTokenContextType;\n\tcontextId: EntityId;\n};\n\nexport class ShareTokenDO extends BaseDO {\n\ttoken: ShareTokenString;\n\n\tpayload: ShareTokenPayload;\n\n\tcontext?: ShareTokenContext;\n\n\texpiresAt?: Date;\n\n\tconstructor(domainObject: ShareTokenDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.token = domainObject.token;\n\t\tthis.payload = domainObject.payload;\n\t\tthis.context = domainObject.context;\n\t\tthis.expiresAt = domainObject.expiresAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenFactory.html":{"url":"classes/ShareTokenFactory.html","title":"class - ShareTokenFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/share-token.do.factory.ts\n \n\n\n\n \n Extends\n \n \n Factory\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n withId\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withId\n \n \n \n \n \n \nwithId(id?: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/share-token.do.factory.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ShareTokenDO, ShareTokenParentType } from '@src/modules/sharing/domainobject/share-token.do';\nimport { ObjectId } from 'bson';\nimport { Factory } from 'fishery';\n\nclass ShareTokenFactory extends Factory {\n\t/* istanbul ignore next */\n\twithId(id?: EntityId) {\n\t\treturn this.params({ id: new ObjectId(id).toHexString() });\n\t}\n}\n\nexport const shareTokenFactory = ShareTokenFactory.define(({ sequence }) => {\n\treturn {\n\t\ttoken: `share-token-${sequence}`,\n\t\tpayload: {\n\t\t\tparentType: ShareTokenParentType.Course,\n\t\t\tparentId: new ObjectId().toHexString(),\n\t\t},\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenImportBodyParams.html":{"url":"classes/ShareTokenImportBodyParams.html","title":"class - ShareTokenImportBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenImportBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n destinationCourseId\n \n \n \n \n \n newName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n destinationCourseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@ApiProperty({description: 'Id of the course to which the lesson/task will be added', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n newName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'the new name of the imported object.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { SanitizeHtml } from '@shared/controller';\nimport { IsOptional, IsString } from 'class-validator';\n\nexport class ShareTokenImportBodyParams {\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'the new name of the imported object.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tnewName!: string;\n\n\t@IsOptional()\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'Id of the course to which the lesson/task will be added',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tdestinationCourseId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ShareTokenInfoDto.html":{"url":"interfaces/ShareTokenInfoDto.html","title":"interface - ShareTokenInfoDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ShareTokenInfoDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/uc/dto/share-token-info.dto.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentName\n \n \n \n \n parentType\n \n \n \n \n token\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n parentName\n \n \n \n \n \n \n \n \n parentName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: ShareTokenParentType\n\n \n \n\n\n \n \n Type : ShareTokenParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n \n \n token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ShareTokenParentType } from '../../domainobject/share-token.do';\n\nexport interface ShareTokenInfoDto {\n\ttoken: string;\n\tparentType: ShareTokenParentType;\n\tparentName: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenInfoResponse.html":{"url":"classes/ShareTokenInfoResponse.html","title":"class - ShareTokenInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n parentName\n \n \n \n parentType\n \n \n \n token\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: ShareTokenInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n ShareTokenInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n parentName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : ShareTokenParentType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ShareTokenParentType})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { ShareTokenParentType } from '../../domainobject/share-token.do';\n\nexport class ShareTokenInfoResponse {\n\tconstructor({ token, parentType, parentName }: ShareTokenInfoResponse) {\n\t\tthis.token = token;\n\t\tthis.parentType = parentType;\n\t\tthis.parentName = parentName;\n\t}\n\n\t@ApiProperty()\n\ttoken: string;\n\n\t@ApiProperty({ enum: ShareTokenParentType })\n\tparentType: ShareTokenParentType;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tparentName: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenInfoResponseMapper.html":{"url":"classes/ShareTokenInfoResponseMapper.html","title":"class - ShareTokenInfoResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenInfoResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/share-token-info-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(shareTokenInfo: ShareTokenInfoDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/share-token-info-response.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n shareTokenInfo\n \n ShareTokenInfoDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ShareTokenInfoResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ShareTokenInfoResponse } from '../controller/dto';\nimport { ShareTokenInfoDto } from '../uc/dto';\n\nexport class ShareTokenInfoResponseMapper {\n\tstatic mapToResponse(shareTokenInfo: ShareTokenInfoDto): ShareTokenInfoResponse {\n\t\tconst dto = new ShareTokenInfoResponse({\n\t\t\ttoken: shareTokenInfo.token,\n\t\t\tparentType: shareTokenInfo.parentType,\n\t\t\tparentName: shareTokenInfo.parentName,\n\t\t});\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenParentTypeMapper.html":{"url":"classes/ShareTokenParentTypeMapper.html","title":"class - ShareTokenParentTypeMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenParentTypeMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/parent-type.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n \n \n \n mapToAllowedAuthorizationEntityType(type: ShareTokenParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/parent-type.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ShareTokenParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizableReferenceType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { AuthorizableReferenceType } from '@src/modules/authorization';\nimport { ShareTokenParentType } from '../domainobject/share-token.do';\n\nexport class ShareTokenParentTypeMapper {\n\tstatic mapToAllowedAuthorizationEntityType(type: ShareTokenParentType): AuthorizableReferenceType {\n\t\tconst types: Map = new Map();\n\t\ttypes.set(ShareTokenParentType.Course, AuthorizableReferenceType.Course);\n\t\ttypes.set(ShareTokenParentType.Lesson, AuthorizableReferenceType.Lesson);\n\t\ttypes.set(ShareTokenParentType.Task, AuthorizableReferenceType.Task);\n\n\t\tconst res = types.get(type);\n\n\t\tif (!res) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\treturn res;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenPayloadResponse.html":{"url":"classes/ShareTokenPayloadResponse.html","title":"class - ShareTokenPayloadResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenPayloadResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token-payload.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentId\n \n \n \n parentType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(payload: ShareTokenPayload)\n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-payload.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n \n ShareTokenPayload\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-payload.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : ShareTokenParentType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ShareTokenParentType})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-payload.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ShareTokenParentType, ShareTokenPayload } from '../../domainobject/share-token.do';\n\nexport class ShareTokenPayloadResponse {\n\tconstructor(payload: ShareTokenPayload) {\n\t\tthis.parentType = payload.parentType;\n\t\tthis.parentId = payload.parentId;\n\t}\n\n\t@ApiProperty({ enum: ShareTokenParentType })\n\tparentType: ShareTokenParentType;\n\n\t@ApiProperty()\n\tparentId: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ShareTokenRepo.html":{"url":"injectables/ShareTokenRepo.html","title":"injectable - ShareTokenRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ShareTokenRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/repo/share-token.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findOneByToken\n \n \n Protected\n mapDOToEntityProperties\n \n \n Protected\n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IShareTokenProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:13\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IShareTokenProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ShareToken\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOneByToken\n \n \n \n \n \n \n \n findOneByToken(token: ShareTokenString)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/repo/share-token.repo.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n ShareTokenString\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(domainObject: ShareTokenDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:46\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n ShareTokenDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IShareTokenProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: ShareToken)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:25\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ShareToken\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ShareTokenDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/sharing/repo/share-token.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { BaseDORepo } from '@shared/repo/base.do.repo';\nimport { ShareTokenContext, ShareTokenDO, ShareTokenPayload, ShareTokenString } from '../domainobject/share-token.do';\nimport { IShareTokenProperties, ShareToken } from '../entity/share-token.entity';\n\n@Injectable()\nexport class ShareTokenRepo extends BaseDORepo {\n\tget entityName(): EntityName {\n\t\treturn ShareToken;\n\t}\n\n\tentityFactory(props: IShareTokenProperties): ShareToken {\n\t\treturn new ShareToken(props);\n\t}\n\n\tasync findOneByToken(token: ShareTokenString): Promise {\n\t\tconst entity = await this._em.findOneOrFail(ShareToken, { token });\n\n\t\tconst shareToken = this.mapEntityToDO(entity);\n\n\t\treturn shareToken;\n\t}\n\n\tprotected mapEntityToDO(entity: ShareToken): ShareTokenDO {\n\t\tconst payload: ShareTokenPayload = {\n\t\t\tparentType: entity.parentType,\n\t\t\tparentId: entity.parentId,\n\t\t};\n\n\t\tconst context: ShareTokenContext | undefined =\n\t\t\tentity.contextType && entity.contextId\n\t\t\t\t? { contextType: entity.contextType, contextId: entity.contextId }\n\t\t\t\t: undefined;\n\n\t\tconst domainObject = new ShareTokenDO({\n\t\t\ttoken: entity.token,\n\t\t\tpayload,\n\t\t\tcontext,\n\t\t\texpiresAt: entity.expiresAt,\n\t\t});\n\n\t\treturn domainObject;\n\t}\n\n\tprotected mapDOToEntityProperties(domainObject: ShareTokenDO): IShareTokenProperties {\n\t\tconst properties: IShareTokenProperties = {\n\t\t\ttoken: domainObject.token,\n\t\t\tparentType: domainObject.payload.parentType,\n\t\t\tparentId: domainObject.payload.parentId,\n\t\t\tcontextType: domainObject.context?.contextType,\n\t\t\tcontextId: domainObject.context?.contextId,\n\t\t\texpiresAt: domainObject.expiresAt,\n\t\t};\n\n\t\treturn properties;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenResponse.html":{"url":"classes/ShareTokenResponse.html","title":"class - ShareTokenResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n payload\n \n \n \n token\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: ShareTokenResponse)\n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n ShareTokenResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.response.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n payload\n \n \n \n \n \n \n Type : ShareTokenPayloadResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.response.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ShareTokenPayloadResponse } from './share-token-payload.response';\n\nexport class ShareTokenResponse {\n\tconstructor({ token, payload, expiresAt }: ShareTokenResponse) {\n\t\tthis.token = token;\n\t\tthis.payload = new ShareTokenPayloadResponse(payload);\n\t\tthis.expiresAt = expiresAt;\n\t}\n\n\t@ApiProperty()\n\ttoken: string;\n\n\t@ApiProperty()\n\tpayload: ShareTokenPayloadResponse;\n\n\t@ApiPropertyOptional()\n\texpiresAt?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenResponseMapper.html":{"url":"classes/ShareTokenResponseMapper.html","title":"class - ShareTokenResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/share-token-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(shareToken: ShareTokenDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/share-token-response.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n shareToken\n \n ShareTokenDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ShareTokenResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ShareTokenDO } from '../domainobject/share-token.do';\nimport { ShareTokenResponse } from '../controller/dto';\n\nexport class ShareTokenResponseMapper {\n\tstatic mapToResponse(shareToken: ShareTokenDO): ShareTokenResponse {\n\t\tconst dto = new ShareTokenResponse({\n\t\t\ttoken: shareToken.token,\n\t\t\tpayload: shareToken.payload,\n\t\t\texpiresAt: shareToken.expiresAt,\n\t\t});\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ShareTokenService.html":{"url":"injectables/ShareTokenService.html","title":"injectable - ShareTokenService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ShareTokenService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/service/share-token.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkExpired\n \n \n Async\n createToken\n \n \n Async\n lookupToken\n \n \n Async\n lookupTokenWithParentName\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(tokenGenerator: TokenGenerator, shareTokenRepo: ShareTokenRepo, courseService: CourseService, lessonService: LessonService, taskService: TaskService)\n \n \n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n tokenGenerator\n \n \n TokenGenerator\n \n \n \n No\n \n \n \n \n shareTokenRepo\n \n \n ShareTokenRepo\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n lessonService\n \n \n LessonService\n \n \n \n No\n \n \n \n \n taskService\n \n \n TaskService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkExpired\n \n \n \n \n \n \n \n checkExpired(shareToken: ShareTokenDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n shareToken\n \n ShareTokenDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createToken\n \n \n \n \n \n \n \n createToken(payload: ShareTokenPayload, options?: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n ShareTokenPayload\n \n\n \n No\n \n\n\n \n \n options\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n lookupToken\n \n \n \n \n \n \n \n lookupToken(token: ShareTokenString)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n ShareTokenString\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n lookupTokenWithParentName\n \n \n \n \n \n \n \n lookupTokenWithParentName(token: ShareTokenString)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n ShareTokenString\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LessonService } from '@src/modules/lesson/service';\nimport { TaskService } from '@src/modules/task/service';\nimport {\n\tShareTokenContext,\n\tShareTokenDO,\n\tShareTokenParentType,\n\tShareTokenPayload,\n\tShareTokenString,\n} from '../domainobject/share-token.do';\nimport { ShareTokenRepo } from '../repo/share-token.repo';\nimport { TokenGenerator } from './token-generator.service';\n\n@Injectable()\nexport class ShareTokenService {\n\tconstructor(\n\t\tprivate readonly tokenGenerator: TokenGenerator,\n\t\tprivate readonly shareTokenRepo: ShareTokenRepo,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly lessonService: LessonService,\n\t\tprivate readonly taskService: TaskService\n\t) {}\n\n\tasync createToken(\n\t\tpayload: ShareTokenPayload,\n\t\toptions?: { context?: ShareTokenContext; expiresAt?: Date }\n\t): Promise {\n\t\tconst token = this.tokenGenerator.generateShareToken();\n\t\tconst shareToken = new ShareTokenDO({\n\t\t\ttoken,\n\t\t\tpayload,\n\t\t\tcontext: options?.context,\n\t\t\texpiresAt: options?.expiresAt,\n\t\t});\n\n\t\tawait this.shareTokenRepo.save(shareToken);\n\n\t\treturn shareToken;\n\t}\n\n\tasync lookupToken(token: ShareTokenString): Promise {\n\t\tconst shareToken = await this.shareTokenRepo.findOneByToken(token);\n\n\t\tthis.checkExpired(shareToken);\n\n\t\treturn shareToken;\n\t}\n\n\tasync lookupTokenWithParentName(token: ShareTokenString): Promise {\n\t\tconst shareToken = await this.lookupToken(token);\n\n\t\tlet parentName = '';\n\t\tswitch (shareToken.payload.parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\tparentName = (await this.courseService.findById(shareToken.payload.parentId)).name;\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\tparentName = (await this.lessonService.findById(shareToken.payload.parentId)).name;\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\tparentName = (await this.taskService.findById(shareToken.payload.parentId)).name;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t}\n\n\t\treturn { shareToken, parentName };\n\t}\n\n\tprivate checkExpired(shareToken: ShareTokenDO) {\n\t\tif (shareToken.expiresAt != null && shareToken.expiresAt \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ShareTokenUC.html":{"url":"injectables/ShareTokenUC.html","title":"injectable - ShareTokenUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ShareTokenUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/uc/share-token.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkContextReadPermission\n \n \n Private\n Async\n checkCreatePermission\n \n \n Private\n checkFeatureEnabled\n \n \n Private\n Async\n checkParentWritePermission\n \n \n Private\n Async\n copyCourse\n \n \n Private\n Async\n copyLesson\n \n \n Private\n Async\n copyTask\n \n \n Async\n createShareToken\n \n \n Async\n importShareToken\n \n \n Async\n lookupShareToken\n \n \n Private\n nowPlusDays\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(shareTokenService: ShareTokenService, authorizationService: AuthorizationService, courseCopyService: CourseCopyService, lessonCopyService: LessonCopyService, courseService: CourseService, taskCopyService: TaskCopyService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n shareTokenService\n \n \n ShareTokenService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n courseCopyService\n \n \n CourseCopyService\n \n \n \n No\n \n \n \n \n lessonCopyService\n \n \n LessonCopyService\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n taskCopyService\n \n \n TaskCopyService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkContextReadPermission\n \n \n \n \n \n \n \n checkContextReadPermission(userId: EntityId, context: ShareTokenContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:186\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n context\n \n ShareTokenContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n checkCreatePermission\n \n \n \n \n \n \n \n checkCreatePermission(userId: EntityId, parentType: ShareTokenParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:194\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentType\n \n ShareTokenParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkFeatureEnabled\n \n \n \n \n \n \n \n checkFeatureEnabled(parentType: ShareTokenParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:221\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentType\n \n ShareTokenParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n checkParentWritePermission\n \n \n \n \n \n \n \n checkParentWritePermission(userId: EntityId, payload: ShareTokenPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:164\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n payload\n \n ShareTokenPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyCourse\n \n \n \n \n \n \n \n copyCourse(userId: EntityId, courseId: string, newName: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n string\n \n\n \n No\n \n\n\n \n \n newName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(userId: string, lessonId: string, courseId: string, copyName?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:137\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n lessonId\n \n string\n \n\n \n No\n \n\n\n \n \n courseId\n \n string\n \n\n \n No\n \n\n\n \n \n copyName\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(userId: string, originalTaskId: string, courseId: string, copyName?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:148\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n originalTaskId\n \n string\n \n\n \n No\n \n\n\n \n \n courseId\n \n string\n \n\n \n No\n \n\n\n \n \n copyName\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createShareToken\n \n \n \n \n \n \n \n createShareToken(userId: EntityId, payload: ShareTokenPayload, options?: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n payload\n \n ShareTokenPayload\n \n\n \n No\n \n\n\n \n \n options\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importShareToken\n \n \n \n \n \n \n \n importShareToken(userId: EntityId, token: string, newName: string, destinationCourseId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n newName\n \n string\n \n\n \n No\n \n\n\n \n \n destinationCourseId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n lookupShareToken\n \n \n \n \n \n \n \n lookupShareToken(userId: EntityId, token: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n nowPlusDays\n \n \n \n \n \n \n \n nowPlusDays(days: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:215\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n days\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { BadRequestException, Injectable, InternalServerErrorException, NotImplementedException } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Action, AuthorizationService } from '@src/modules/authorization';\nimport { CopyStatus } from '@src/modules/copy-helper';\nimport { CourseCopyService } from '@src/modules/learnroom';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LessonCopyService } from '@src/modules/lesson/service';\nimport { TaskCopyService } from '@src/modules/task/service';\nimport {\n\tShareTokenContext,\n\tShareTokenContextType,\n\tShareTokenDO,\n\tShareTokenParentType,\n\tShareTokenPayload,\n} from '../domainobject/share-token.do';\nimport { ShareTokenContextTypeMapper, ShareTokenParentTypeMapper } from '../mapper';\nimport { ShareTokenService } from '../service';\nimport { ShareTokenInfoDto } from './dto';\n\n@Injectable()\nexport class ShareTokenUC {\n\tconstructor(\n\t\tprivate readonly shareTokenService: ShareTokenService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly courseCopyService: CourseCopyService,\n\t\tprivate readonly lessonCopyService: LessonCopyService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly taskCopyService: TaskCopyService,\n\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(ShareTokenUC.name);\n\t}\n\n\tasync createShareToken(\n\t\tuserId: EntityId,\n\t\tpayload: ShareTokenPayload,\n\t\toptions?: { schoolExclusive?: boolean; expiresInDays?: number }\n\t): Promise {\n\t\tthis.checkFeatureEnabled(payload.parentType);\n\n\t\tthis.logger.debug({ action: 'createShareToken', userId, payload, options });\n\n\t\tawait this.checkParentWritePermission(userId, payload);\n\n\t\tconst serviceOptions: { context?: ShareTokenContext; expiresAt?: Date } = {};\n\t\tif (options?.schoolExclusive) {\n\t\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\t\tserviceOptions.context = {\n\t\t\t\tcontextType: ShareTokenContextType.School,\n\t\t\t\tcontextId: user.school.id,\n\t\t\t};\n\t\t\tawait this.checkContextReadPermission(userId, serviceOptions.context);\n\t\t}\n\t\tif (options?.expiresInDays) {\n\t\t\tserviceOptions.expiresAt = this.nowPlusDays(options.expiresInDays);\n\t\t}\n\n\t\tconst shareToken = await this.shareTokenService.createToken(payload, serviceOptions);\n\t\treturn shareToken;\n\t}\n\n\tasync lookupShareToken(userId: EntityId, token: string): Promise {\n\t\tthis.logger.debug({ action: 'lookupShareToken', userId, token });\n\n\t\tconst { shareToken, parentName } = await this.shareTokenService.lookupTokenWithParentName(token);\n\n\t\tthis.checkFeatureEnabled(shareToken.payload.parentType);\n\n\t\tawait this.checkCreatePermission(userId, shareToken.payload.parentType);\n\n\t\tif (shareToken.context) {\n\t\t\tawait this.checkContextReadPermission(userId, shareToken.context);\n\t\t}\n\n\t\tconst shareTokenInfo: ShareTokenInfoDto = {\n\t\t\ttoken,\n\t\t\tparentType: shareToken.payload.parentType,\n\t\t\tparentName,\n\t\t};\n\n\t\treturn shareTokenInfo;\n\t}\n\n\tasync importShareToken(\n\t\tuserId: EntityId,\n\t\ttoken: string,\n\t\tnewName: string,\n\t\tdestinationCourseId?: string\n\t): Promise {\n\t\tthis.logger.debug({ action: 'importShareToken', userId, token, newName });\n\n\t\tconst shareToken = await this.shareTokenService.lookupToken(token);\n\n\t\tthis.checkFeatureEnabled(shareToken.payload.parentType);\n\n\t\tif (shareToken.context) {\n\t\t\tawait this.checkContextReadPermission(userId, shareToken.context);\n\t\t}\n\n\t\tawait this.checkCreatePermission(userId, shareToken.payload.parentType);\n\n\t\tlet result: CopyStatus;\n\t\tswitch (shareToken.payload.parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\tresult = await this.copyCourse(userId, shareToken.payload.parentId, newName);\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\tif (destinationCourseId === undefined) {\n\t\t\t\t\tthrow new BadRequestException('Destination course id is required to copy lesson');\n\t\t\t\t}\n\t\t\t\tresult = await this.copyLesson(userId, shareToken.payload.parentId, destinationCourseId, newName);\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\tif (destinationCourseId === undefined) {\n\t\t\t\t\tthrow new BadRequestException('Destination course id is required to copy task');\n\t\t\t\t}\n\t\t\t\tresult = await this.copyTask(userId, shareToken.payload.parentId, destinationCourseId, newName);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NotImplementedException('Copy not implemented');\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate async copyCourse(userId: EntityId, courseId: string, newName: string): Promise {\n\t\treturn this.courseCopyService.copyCourse({\n\t\t\tuserId,\n\t\t\tcourseId,\n\t\t\tnewName,\n\t\t});\n\t}\n\n\tprivate async copyLesson(userId: string, lessonId: string, courseId: string, copyName?: string): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst destinationCourse = await this.courseService.findById(courseId);\n\t\treturn this.lessonCopyService.copyLesson({\n\t\t\tuser,\n\t\t\toriginalLessonId: lessonId,\n\t\t\tdestinationCourse,\n\t\t\tcopyName,\n\t\t});\n\t}\n\n\tprivate async copyTask(\n\t\tuserId: string,\n\t\toriginalTaskId: string,\n\t\tcourseId: string,\n\t\tcopyName?: string\n\t): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst destinationCourse = await this.courseService.findById(courseId);\n\t\treturn this.taskCopyService.copyTask({\n\t\t\tuser,\n\t\t\toriginalTaskId,\n\t\t\tdestinationCourse,\n\t\t\tcopyName,\n\t\t});\n\t}\n\n\tprivate async checkParentWritePermission(userId: EntityId, payload: ShareTokenPayload) {\n\t\tconst allowedParentType = ShareTokenParentTypeMapper.mapToAllowedAuthorizationEntityType(payload.parentType);\n\n\t\tlet requiredPermissions: Permission[] = [];\n\t\t// eslint-disable-next-line default-case\n\t\tswitch (payload.parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\trequiredPermissions = [Permission.COURSE_CREATE];\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\trequiredPermissions = [Permission.TOPIC_CREATE];\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\trequiredPermissions = [Permission.HOMEWORK_CREATE];\n\t\t}\n\n\t\tawait this.authorizationService.checkPermissionByReferences(userId, allowedParentType, payload.parentId, {\n\t\t\taction: Action.write,\n\t\t\trequiredPermissions,\n\t\t});\n\t}\n\n\tprivate async checkContextReadPermission(userId: EntityId, context: ShareTokenContext) {\n\t\tconst allowedContextType = ShareTokenContextTypeMapper.mapToAllowedAuthorizationEntityType(context.contextType);\n\t\tawait this.authorizationService.checkPermissionByReferences(userId, allowedContextType, context.contextId, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [],\n\t\t});\n\t}\n\n\tprivate async checkCreatePermission(userId: EntityId, parentType: ShareTokenParentType) {\n\t\t// checks if parent type is supported\n\t\tShareTokenParentTypeMapper.mapToAllowedAuthorizationEntityType(parentType);\n\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tlet requiredPermissions: Permission[] = [];\n\t\t// eslint-disable-next-line default-case\n\t\tswitch (parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\trequiredPermissions = [Permission.COURSE_CREATE];\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\trequiredPermissions = [Permission.TOPIC_CREATE];\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\trequiredPermissions = [Permission.HOMEWORK_CREATE];\n\t\t}\n\t\tthis.authorizationService.checkAllPermissions(user, requiredPermissions);\n\t}\n\n\tprivate nowPlusDays(days: number) {\n\t\tconst date = new Date();\n\t\tdate.setDate(date.getDate() + days);\n\t\treturn date;\n\t}\n\n\tprivate checkFeatureEnabled(parentType: ShareTokenParentType) {\n\t\tswitch (parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\tif (!(Configuration.get('FEATURE_COURSE_SHARE_NEW') as boolean)) {\n\t\t\t\t\tthrow new InternalServerErrorException('Import Course Feature not enabled');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\tif (!(Configuration.get('FEATURE_LESSON_SHARE') as boolean)) {\n\t\t\t\t\tthrow new InternalServerErrorException('Import Lesson Feature not enabled');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\tif (!(Configuration.get('FEATURE_TASK_SHARE') as boolean)) {\n\t\t\t\t\tthrow new InternalServerErrorException('Import Task Feature not enabled');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NotImplementedException('Import Feature not implemented');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenUrlParams.html":{"url":"classes/ShareTokenUrlParams.html","title":"class - ShareTokenUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n token\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The token that identifies the shared object', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsString } from 'class-validator';\n\nexport class ShareTokenUrlParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The token that identifies the shared object',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoken!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SharingApiModule.html":{"url":"modules/SharingApiModule.html","title":"module - SharingApiModule","body":"\n \n\n\n\n\n Modules\n SharingApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SharingApiModule\n\n\n\ncluster_SharingApiModule_providers\n\n\n\ncluster_SharingApiModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nSharingApiModule\n\nSharingApiModule\n\nSharingApiModule -->\n\nAuthorizationModule->SharingApiModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nSharingApiModule -->\n\nLearnroomModule->SharingApiModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nSharingApiModule -->\n\nLessonModule->SharingApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nSharingApiModule -->\n\nLoggerModule->SharingApiModule\n\n\n\n\n\nSharingModule\n\nSharingModule\n\nSharingApiModule -->\n\nSharingModule->SharingApiModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nSharingApiModule -->\n\nTaskModule->SharingApiModule\n\n\n\n\n\nShareTokenUC\n\nShareTokenUC\n\nSharingApiModule -->\n\nShareTokenUC->SharingApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/sharing/sharing.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ShareTokenUC\n \n \n \n \n Controllers\n \n \n ShareTokenController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LearnroomModule\n \n \n LessonModule\n \n \n LoggerModule\n \n \n SharingModule\n \n \n TaskModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ShareTokenController } from './controller/share-token.controller';\nimport { ShareTokenUC } from './uc';\nimport { ShareTokenService, TokenGenerator } from './service';\nimport { ShareTokenRepo } from './repo/share-token.repo';\nimport { LessonModule } from '../lesson';\nimport { LearnroomModule } from '../learnroom';\nimport { TaskModule } from '../task';\n\n@Module({\n\timports: [AuthorizationModule, LoggerModule, LearnroomModule, LessonModule, TaskModule],\n\tcontrollers: [],\n\tproviders: [ShareTokenService, TokenGenerator, ShareTokenRepo],\n\texports: [ShareTokenService],\n})\nexport class SharingModule {}\n\n@Module({\n\timports: [SharingModule, AuthorizationModule, LearnroomModule, LessonModule, TaskModule, LoggerModule],\n\tcontrollers: [ShareTokenController],\n\tproviders: [ShareTokenUC],\n})\nexport class SharingApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SharingModule.html":{"url":"modules/SharingModule.html","title":"module - SharingModule","body":"\n \n\n\n\n\n Modules\n SharingModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SharingModule\n\n\n\ncluster_SharingModule_exports\n\n\n\ncluster_SharingModule_providers\n\n\n\ncluster_SharingModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nSharingModule\n\nSharingModule\n\nSharingModule -->\n\nAuthorizationModule->SharingModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nSharingModule -->\n\nLearnroomModule->SharingModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nSharingModule -->\n\nLessonModule->SharingModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nSharingModule -->\n\nLoggerModule->SharingModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nSharingModule -->\n\nTaskModule->SharingModule\n\n\n\n\n\nShareTokenService \n\nShareTokenService \n\nShareTokenService -->\n\nSharingModule->ShareTokenService \n\n\n\n\n\nShareTokenRepo\n\nShareTokenRepo\n\nSharingModule -->\n\nShareTokenRepo->SharingModule\n\n\n\n\n\nShareTokenService\n\nShareTokenService\n\nSharingModule -->\n\nShareTokenService->SharingModule\n\n\n\n\n\nTokenGenerator\n\nTokenGenerator\n\nSharingModule -->\n\nTokenGenerator->SharingModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/sharing/sharing.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ShareTokenRepo\n \n \n ShareTokenService\n \n \n TokenGenerator\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LearnroomModule\n \n \n LessonModule\n \n \n LoggerModule\n \n \n TaskModule\n \n \n \n \n Exports\n \n \n ShareTokenService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ShareTokenController } from './controller/share-token.controller';\nimport { ShareTokenUC } from './uc';\nimport { ShareTokenService, TokenGenerator } from './service';\nimport { ShareTokenRepo } from './repo/share-token.repo';\nimport { LessonModule } from '../lesson';\nimport { LearnroomModule } from '../learnroom';\nimport { TaskModule } from '../task';\n\n@Module({\n\timports: [AuthorizationModule, LoggerModule, LearnroomModule, LessonModule, TaskModule],\n\tcontrollers: [],\n\tproviders: [ShareTokenService, TokenGenerator, ShareTokenRepo],\n\texports: [ShareTokenService],\n})\nexport class SharingModule {}\n\n@Module({\n\timports: [SharingModule, AuthorizationModule, LearnroomModule, LessonModule, TaskModule, LoggerModule],\n\tcontrollers: [ShareTokenController],\n\tproviders: [ShareTokenUC],\n})\nexport class SharingApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SingleColumnBoardResponse.html":{"url":"classes/SingleColumnBoardResponse.html","title":"class - SingleColumnBoardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SingleColumnBoardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n displayColor\n \n \n \n elements\n \n \n \n isArchived\n \n \n \n roomId\n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SingleColumnBoardResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SingleColumnBoardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Color of the Board'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n elements\n \n \n \n \n \n \n Type : BoardElementResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined, description: 'Array of board specific tasks or lessons with matching type property'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n isArchived\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Boolean if the room this board belongs to is archived'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n roomId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the room this board belongs to', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @DecodeHtmlEntities()@ApiProperty({description: 'Title of the Board'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:25\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { BoardElementResponse } from './board-element.response';\n\n// TODO: this and DashboardResponse should be combined\nexport class SingleColumnBoardResponse {\n\tconstructor({ roomId, title, displayColor, elements, isArchived }: SingleColumnBoardResponse) {\n\t\tthis.roomId = roomId;\n\t\tthis.title = title;\n\t\tthis.displayColor = displayColor;\n\t\tthis.elements = elements;\n\t\tthis.isArchived = isArchived;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the room this board belongs to',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\troomId: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Board',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Board',\n\t})\n\tdisplayColor: string;\n\n\t@ApiProperty({\n\t\ttype: [BoardElementResponse],\n\t\tdescription: 'Array of board specific tasks or lessons with matching type property',\n\t})\n\telements: BoardElementResponse[];\n\n\t@ApiProperty({\n\t\tdescription: 'Boolean if the room this board belongs to is archived',\n\t})\n\tisArchived: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SingleFileParams.html":{"url":"classes/SingleFileParams.html","title":"class - SingleFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SingleFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n fileRecordId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileRecordId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:71\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SortExternalToolParams.html":{"url":"classes/SortExternalToolParams.html","title":"class - SortExternalToolParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SortExternalToolParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-sort.params.ts\n \n\n\n\n \n Extends\n \n \n SortingParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n sortBy\n \n \n \n \n \n sortOrder\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n sortBy\n \n \n \n \n \n \n Type : ExternalToolSortBy\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(ExternalToolSortBy)@ApiPropertyOptional({enum: ExternalToolSortBy})\n \n \n \n \n \n Inherited from SortingParams\n\n \n \n \n \n Defined in SortingParams:14\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n sortOrder\n \n \n \n \n \n \n Type : SortOrder\n\n \n \n \n \n Default value : SortOrder.asc\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SortOrder)@ApiPropertyOptional({enum: SortOrder})\n \n \n \n \n \n Inherited from SortingParams\n\n \n \n \n \n Defined in SortingParams:18\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { SortingParams } from '@shared/controller';\nimport { IsEnum, IsOptional } from 'class-validator';\nimport { ApiPropertyOptional } from '@nestjs/swagger';\n\nexport enum ExternalToolSortBy {\n\tID = 'id',\n\tNAME = 'name',\n}\n\nexport class SortExternalToolParams extends SortingParams {\n\t@IsOptional()\n\t@IsEnum(ExternalToolSortBy)\n\t@ApiPropertyOptional({ enum: ExternalToolSortBy })\n\tsortBy?: ExternalToolSortBy;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SortImportUserParams.html":{"url":"classes/SortImportUserParams.html","title":"class - SortImportUserParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SortImportUserParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/sort-import-user.params.ts\n \n\n\n\n \n Extends\n \n \n SortingParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n sortBy\n \n \n \n \n \n sortOrder\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n sortBy\n \n \n \n \n \n \n Type : ImportUserSortOrder\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(ImportUserSortOrder)@ApiPropertyOptional({enum: ImportUserSortOrder})\n \n \n \n \n \n Inherited from SortingParams\n\n \n \n \n \n Defined in SortingParams:14\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n sortOrder\n \n \n \n \n \n \n Type : SortOrder\n\n \n \n \n \n Default value : SortOrder.asc\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SortOrder)@ApiPropertyOptional({enum: SortOrder})\n \n \n \n \n \n Inherited from SortingParams\n\n \n \n \n \n Defined in SortingParams:18\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { SortingParams } from '@shared/controller';\nimport { IsEnum, IsOptional } from 'class-validator';\n\nexport enum ImportUserSortOrder {\n\tFIRSTNAME = 'firstName',\n\tLASTNAME = 'lastName',\n}\n\nexport class SortImportUserParams extends SortingParams {\n\t@IsOptional()\n\t@IsEnum(ImportUserSortOrder)\n\t@ApiPropertyOptional({ enum: ImportUserSortOrder })\n\tsortBy?: ImportUserSortOrder;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SortingParams.html":{"url":"classes/SortingParams.html","title":"class - SortingParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SortingParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/controller/dto/sorting.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Abstract\n Optional\n sortBy\n \n \n \n \n \n sortOrder\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n Optional\n sortBy\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Defined in apps/server/src/shared/controller/dto/sorting.params.ts:13\n \n \n\n \n \n Set type and Decorators in extending classes\n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n sortOrder\n \n \n \n \n \n \n Type : SortOrder\n\n \n \n \n \n Default value : SortOrder.asc\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SortOrder)@ApiPropertyOptional({enum: SortOrder})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/sorting.params.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsOptional } from 'class-validator';\nimport { ApiPropertyOptional } from '@nestjs/swagger';\n\nenum SortOrder {\n\tasc = 'asc',\n\tdesc = 'desc',\n}\n\nexport abstract class SortingParams {\n\t/**\n\t * Set type and Decorators in extending classes\n\t */\n\tabstract sortBy?: T;\n\n\t@IsOptional()\n\t@IsEnum(SortOrder)\n\t@ApiPropertyOptional({ enum: SortOrder })\n\tsortOrder: SortOrder = SortOrder.asc;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/StartUserLoginMigrationUc.html":{"url":"injectables/StartUserLoginMigrationUc.html","title":"injectable - StartUserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n StartUserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/start-user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkPreconditions\n \n \n Async\n startMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, authorizationService: AuthorizationService, schoolService: LegacySchoolService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/start-user-login-migration.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkPreconditions\n \n \n \n \n \n \n \n checkPreconditions(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/start-user-login-migration.uc.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startMigration\n \n \n \n \n \n \n \n startMigration(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/start-user-login-migration.uc.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { Permission, LegacySchoolDo, User, UserLoginMigrationDO } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationContext, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { SchoolNumberMissingLoggableException, UserLoginMigrationAlreadyClosedLoggableException } from '../error';\nimport { UserLoginMigrationStartLoggable } from '../loggable';\nimport { UserLoginMigrationService } from '../service';\n\n@Injectable()\nexport class StartUserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tthis.logger.setContext(StartUserLoginMigrationUc.name);\n\t}\n\n\tasync startMigration(userId: string, schoolId: string): Promise {\n\t\tawait this.checkPreconditions(userId, schoolId);\n\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tuserLoginMigration = await this.userLoginMigrationService.startMigration(schoolId);\n\n\t\t\tthis.logger.info(new UserLoginMigrationStartLoggable(userId, userLoginMigration.id as string));\n\t\t} else if (userLoginMigration.closedAt) {\n\t\t\tthrow new UserLoginMigrationAlreadyClosedLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.closedAt\n\t\t\t);\n\t\t} else {\n\t\t\t// Do nothing, if migration is already started but not stopped.\n\t\t}\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync checkPreconditions(userId: string, schoolId: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.USER_LOGIN_MIGRATION_ADMIN]);\n\t\tthis.authorizationService.checkPermission(user, school, context);\n\n\t\tif (!school.officialSchoolNumber) {\n\t\t\tthrow new SchoolNumberMissingLoggableException(schoolId);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/StatelessAuthorizationParams.html":{"url":"classes/StatelessAuthorizationParams.html","title":"class - StatelessAuthorizationParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n StatelessAuthorizationParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n code\n \n \n \n \n Optional\n error\n \n \n \n \n Optional\n error_description\n \n \n \n \n Optional\n error_uri\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : SSOAuthenticationError\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SSOAuthenticationError)\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';\nimport { SSOAuthenticationError } from '../../interface/sso-authentication-error.enum';\n\nexport class StatelessAuthorizationParams {\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tcode?: string;\n\n\t@IsOptional()\n\t@IsEnum(SSOAuthenticationError)\n\terror?: SSOAuthenticationError;\n\n\t@IsOptional()\n\t@IsString()\n\terror_description?: string;\n\n\t@IsOptional()\n\t@IsString()\n\terror_uri?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/StorageProviderEncryptedStringType.html":{"url":"classes/StorageProviderEncryptedStringType.html","title":"class - StorageProviderEncryptedStringType","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n StorageProviderEncryptedStringType\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts\n \n\n\n \n Description\n \n \n Serialization type to transparent encrypt string values in database.\n\n \n\n \n Extends\n \n \n Type\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n key\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n convertToDatabaseValue\n \n \n convertToJSValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(customKey?: string)\n \n \n \n \n Defined in apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n customKey\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts:10\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n convertToDatabaseValue\n \n \n \n \n \n \nconvertToDatabaseValue(value: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n convertToJSValue\n \n \n \n \n \n \nconvertToJSValue(value: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Type } from '@mikro-orm/core';\nimport CryptoJs from 'crypto-js';\n\n/**\n * Serialization type to transparent encrypt string values in database.\n */\nexport class StorageProviderEncryptedStringType extends Type {\n\t// TODO modularize service?\n\tprivate key: string;\n\n\tconstructor(customKey?: string) {\n\t\tsuper();\n\t\tif (customKey) {\n\t\t\tthis.key = customKey;\n\t\t} else {\n\t\t\tthis.key = Configuration.get('S3_KEY') as string;\n\t\t}\n\t}\n\n\tconvertToDatabaseValue(value: string | undefined): string {\n\t\t// keep nullish values\n\t\tif (value == null) {\n\t\t\treturn value as unknown as string;\n\t\t}\n\n\t\t// encrypt non-empty strings only\n\t\tif (value.length === 0) {\n\t\t\treturn '';\n\t\t}\n\t\tconst encryptedString = CryptoJs.AES.encrypt(value, this.key).toString();\n\n\t\treturn encryptedString;\n\t}\n\n\tconvertToJSValue(value: string | undefined): string {\n\t\t// keep nullish values\n\t\tif (value == null) {\n\t\t\treturn value as unknown as string;\n\t\t}\n\n\t\t// decrypt non-empty strings only\n\t\tif (value.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\t// decrypt only non-empty strings\n\t\tconst decryptedString: string = CryptoJs.AES.decrypt(value, this.key).toString(CryptoJs.enc.Utf8);\n\n\t\treturn decryptedString;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/StorageProviderEntity.html":{"url":"entities/StorageProviderEntity.html","title":"entity - StorageProviderEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n StorageProviderEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/storageprovider.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessKeyId\n \n \n \n endpointUrl\n \n \n \n Optional\n region\n \n \n \n secretAccessKey\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n accessKeyId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/storageprovider.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n endpointUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/storageprovider.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n region\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/storageprovider.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'secretAccessKey', type: StorageProviderEncryptedStringType})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/storageprovider.entity.ts:21\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { StorageProviderEncryptedStringType } from '@shared/repo/types/StorageProviderEncryptedString.type';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IStorageProviderProperties {\n\tendpointUrl: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n\tregion?: string;\n}\n\n@Entity({ tableName: 'storageproviders' })\nexport class StorageProviderEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tendpointUrl: string;\n\n\t@Property()\n\taccessKeyId: string;\n\n\t@Property({ fieldName: 'secretAccessKey', type: StorageProviderEncryptedStringType })\n\tsecretAccessKey: string;\n\n\t@Property({ nullable: true })\n\tregion?: string;\n\n\tconstructor(props: IStorageProviderProperties) {\n\t\tsuper();\n\t\tthis.endpointUrl = props.endpointUrl;\n\t\tthis.accessKeyId = props.accessKeyId;\n\t\tthis.secretAccessKey = props.secretAccessKey;\n\t\tthis.region = props.region;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/StorageProviderRepo.html":{"url":"injectables/StorageProviderRepo.html","title":"injectable - StorageProviderRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n StorageProviderRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAll\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager)\n \n \n \n \n Defined in apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:16\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:12\n \n \n\n \n \n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { StorageProviderEntity } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class StorageProviderRepo extends BaseRepo {\n\tconstructor(protected readonly _em: EntityManager) {\n\t\tsuper(_em);\n\t}\n\n\tget entityName() {\n\t\treturn StorageProviderEntity;\n\t}\n\n\tasync findAll(): Promise {\n\t\tconst providers = this._em.find(StorageProviderEntity, {});\n\n\t\treturn providers;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/StringValidator.html":{"url":"classes/StringValidator.html","title":"class - StringValidator","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n StringValidator\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/validator/string.validator.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n isNotEmptyString\n \n \n Static\n isString\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n isNotEmptyString\n \n \n \n \n \n \n \n isNotEmptyString(value?: string, trim)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/validator/string.validator.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n value\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n trim\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isString\n \n \n \n \n \n \n \n isString(value?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/validator/string.validator.ts:2\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n export class StringValidator {\n\tstatic isString(value?: string): value is string {\n\t\tconst result = value != null && typeof value === 'string';\n\t\tif (result === true) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tstatic isNotEmptyString(value?: string, trim = false): boolean {\n\t\tif (StringValidator.isString(value)) {\n\t\t\tconst result = trim ? value.trim().length > 0 : value.length > 0;\n\t\t\treturn result;\n\t\t}\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Submission.html":{"url":"entities/Submission.html","title":"entity - Submission","body":"\n \n\n\n\n\n\n\n\n Entities\n Submission\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/submission.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n comment\n \n \n \n Optional\n courseGroup\n \n \n \n Optional\n grade\n \n \n \n Optional\n gradeComment\n \n \n \n graded\n \n \n \n \n school\n \n \n \n student\n \n \n \n submitted\n \n \n \n \n task\n \n \n \n teamMembers\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n comment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n courseGroup\n \n \n \n \n \n \n Type : CourseGroup\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('CourseGroup', {fieldName: 'courseGroupId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n grade\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n gradeComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'schoolId'})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n student\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('User', {fieldName: 'studentId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n task\n \n \n \n \n \n \n Type : Task\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('Task', {fieldName: 'homeworkId'})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n teamMembers\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('User', undefined, {fieldName: 'teamMembers'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:43\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property, Unique } from '@mikro-orm/core';\n\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { CourseGroup } from './coursegroup.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { Task } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ISubmissionProperties {\n\tschool: SchoolEntity;\n\ttask: Task;\n\tstudent: User;\n\tcourseGroup?: CourseGroup;\n\tteamMembers?: User[];\n\tcomment: string;\n\tsubmitted?: boolean;\n\tgraded?: boolean;\n\tgrade?: number;\n\tgradeComment?: string;\n}\n\n@Entity({ tableName: 'submissions' })\n@Index({ properties: ['student', 'teamMembers'] })\n@Unique({ properties: ['student', 'task'] })\nexport class Submission extends BaseEntityWithTimestamps {\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\t@Index()\n\tschool: SchoolEntity;\n\n\t@ManyToOne('Task', { fieldName: 'homeworkId' })\n\t@Index()\n\ttask: Task;\n\n\t@ManyToOne('User', { fieldName: 'studentId' })\n\tstudent: User;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@ManyToMany('User', undefined, { fieldName: 'teamMembers' })\n\tteamMembers = new Collection(this);\n\n\t@Property({ nullable: true })\n\tcomment?: string;\n\n\t@Property()\n\tsubmitted: boolean;\n\n\t@Property()\n\tgraded: boolean;\n\n\t@Property({ nullable: true })\n\tgrade?: number;\n\n\t@Property({ nullable: true })\n\tgradeComment?: string;\n\n\tconstructor(props: ISubmissionProperties) {\n\t\tsuper();\n\t\tthis.school = props.school;\n\t\tthis.student = props.student;\n\t\tthis.comment = props.comment;\n\t\tthis.task = props.task;\n\t\tthis.submitted = props.submitted || false;\n\t\tthis.graded = props.graded || false;\n\t\tthis.grade = props.grade;\n\t\tthis.gradeComment = props.gradeComment;\n\t\tthis.courseGroup = props.courseGroup;\n\n\t\tif (props.teamMembers !== undefined) {\n\t\t\tthis.teamMembers.set(props.teamMembers);\n\t\t}\n\t}\n\n\tprivate getCourseGroupStudentIds(): EntityId[] {\n\t\tlet courseGroupMemberIds: EntityId[] = [];\n\n\t\tif (this.courseGroup) {\n\t\t\tcourseGroupMemberIds = this.courseGroup.getStudentIds();\n\t\t}\n\n\t\treturn courseGroupMemberIds;\n\t}\n\n\tprivate getTeamMemberIds(): EntityId[] {\n\t\tif (!this.teamMembers) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'Submission.teamMembers is undefined. The submission need to be populated.'\n\t\t\t);\n\t\t}\n\n\t\tconst teamMemberObjectIds = this.teamMembers.getIdentifiers('_id');\n\t\tconst teamMemberIds = teamMemberObjectIds.map((id): string => id.toString());\n\n\t\treturn teamMemberIds;\n\t}\n\n\tpublic isSubmitted(): boolean {\n\t\treturn this.submitted;\n\t}\n\n\tpublic isSubmittedForUser(user: User): boolean {\n\t\tconst isMember = this.isUserSubmitter(user);\n\t\tconst isSubmitted = this.isSubmitted();\n\t\tconst isSubmittedForUser = isMember && isSubmitted;\n\n\t\treturn isSubmittedForUser;\n\t}\n\n\t// Bad that the logic is needed to expose the userIds, but is used in task for now.\n\t// Check later if it can be replaced and remove all related code.\n\tpublic getSubmitterIds(): EntityId[] {\n\t\tconst creatorId = this.student.id;\n\t\tconst teamMemberIds = this.getTeamMemberIds();\n\t\tconst courseGroupMemberIds = this.getCourseGroupStudentIds();\n\t\tconst memberIds = [creatorId, ...teamMemberIds, ...courseGroupMemberIds];\n\n\t\tconst uniqueMemberIds = [...new Set(memberIds)];\n\n\t\treturn uniqueMemberIds;\n\t}\n\n\tpublic isUserSubmitter(user: User): boolean {\n\t\tconst memberIds = this.getSubmitterIds();\n\t\tconst isMember = memberIds.some((id) => id === user.id);\n\n\t\treturn isMember;\n\t}\n\n\tpublic isGraded(): boolean {\n\t\treturn this.graded;\n\t}\n\n\tpublic isGradedForUser(user: User): boolean {\n\t\tconst isMember = this.isUserSubmitter(user);\n\t\tconst isGraded = this.isGraded();\n\t\tconst isGradedForUser = isMember && isGraded;\n\n\t\treturn isGradedForUser;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerContentBody.html":{"url":"classes/SubmissionContainerContentBody.html","title":"class - SubmissionContainerContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n dueDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:53\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElement.html":{"url":"classes/SubmissionContainerElement.html","title":"class - SubmissionContainerElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-container-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:23\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n dueDate\n \n \n\n \n \n getdueDate()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-container-element.do.ts:6\n \n \n\n \n \n setdueDate(value: Date)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-container-element.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n Date\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { SubmissionItem } from './submission-item.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class SubmissionContainerElement extends BoardComposite {\n\tget dueDate(): Date {\n\t\treturn this.props.dueDate;\n\t}\n\n\tset dueDate(value: Date) {\n\t\tthis.props.dueDate = value;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof SubmissionItem;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitSubmissionContainerElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitSubmissionContainerElementAsync(this);\n\t}\n}\n\nexport interface SubmissionContainerElementProps extends BoardCompositeProps {\n\tdueDate: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElementContent.html":{"url":"classes/SubmissionContainerElementContent.html","title":"class - SubmissionContainerElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElementContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SubmissionContainerElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SubmissionContainerElementContent\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class SubmissionContainerElementContent {\n\tconstructor({ dueDate }: SubmissionContainerElementContent) {\n\t\tthis.dueDate = dueDate;\n\t}\n\n\t@ApiProperty()\n\tdueDate: Date;\n}\n\nexport class SubmissionContainerElementResponse {\n\tconstructor({ id, content, timestamps, type }: SubmissionContainerElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ApiProperty()\n\tcontent: SubmissionContainerElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElementContentBody.html":{"url":"classes/SubmissionContainerElementContentBody.html","title":"class - SubmissionContainerElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElementContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n \n Extends\n \n \n ElementContentBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : SubmissionContainerContentBody\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:62\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.SUBMISSION_CONTAINER\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from ElementContentBody\n\n \n \n \n \n Defined in ElementContentBody:58\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SubmissionContainerElementNode.html":{"url":"entities/SubmissionContainerElementNode.html","title":"entity - SubmissionContainerElementNode","body":"\n \n\n\n\n\n\n\n\n Entities\n SubmissionContainerElementNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts:9\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.SUBMISSION_CONTAINER_ELEMENT })\nexport class SubmissionContainerElementNode extends BoardNode {\n\t@Property()\n\tdueDate: Date;\n\n\tconstructor(props: SubmissionContainerNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.SUBMISSION_CONTAINER_ELEMENT;\n\t\tthis.dueDate = props.dueDate;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildSubmissionContainerElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface SubmissionContainerNodeProps extends BoardNodeProps {\n\tdueDate: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SubmissionContainerElementProps.html":{"url":"interfaces/SubmissionContainerElementProps.html","title":"interface - SubmissionContainerElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SubmissionContainerElementProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-container-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n dueDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { SubmissionItem } from './submission-item.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class SubmissionContainerElement extends BoardComposite {\n\tget dueDate(): Date {\n\t\treturn this.props.dueDate;\n\t}\n\n\tset dueDate(value: Date) {\n\t\tthis.props.dueDate = value;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof SubmissionItem;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitSubmissionContainerElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitSubmissionContainerElementAsync(this);\n\t}\n}\n\nexport interface SubmissionContainerElementProps extends BoardCompositeProps {\n\tdueDate: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElementResponse.html":{"url":"classes/SubmissionContainerElementResponse.html","title":"class - SubmissionContainerElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n id\n \n \n \n timestamps\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SubmissionContainerElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SubmissionContainerElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : SubmissionContainerElementContent\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.SUBMISSION_CONTAINER\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ContentElementType, enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class SubmissionContainerElementContent {\n\tconstructor({ dueDate }: SubmissionContainerElementContent) {\n\t\tthis.dueDate = dueDate;\n\t}\n\n\t@ApiProperty()\n\tdueDate: Date;\n}\n\nexport class SubmissionContainerElementResponse {\n\tconstructor({ id, content, timestamps, type }: SubmissionContainerElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ApiProperty()\n\tcontent: SubmissionContainerElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElementResponseMapper.html":{"url":"classes/SubmissionContainerElementResponseMapper.html","title":"class - SubmissionContainerElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElementResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts\n \n\n\n\n\n \n Implements\n \n \n BaseResponseMapper\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n canMap\n \n \n Static\n getInstance\n \n \n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n \n \n Type : SubmissionContainerElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts:6\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n \n \ncanMap(element: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n getInstance\n \n \n \n \n \n \n \n getInstance()\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Returns : SubmissionContainerElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionContainerElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, SubmissionContainerElement } from '@shared/domain';\nimport { SubmissionContainerElementContent, SubmissionContainerElementResponse, TimestampsResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class SubmissionContainerElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: SubmissionContainerElementResponseMapper;\n\n\tpublic static getInstance(): SubmissionContainerElementResponseMapper {\n\t\tif (!SubmissionContainerElementResponseMapper.instance) {\n\t\t\tSubmissionContainerElementResponseMapper.instance = new SubmissionContainerElementResponseMapper();\n\t\t}\n\n\t\treturn SubmissionContainerElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: SubmissionContainerElement): SubmissionContainerElementResponse {\n\t\tconst result = new SubmissionContainerElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.SUBMISSION_CONTAINER,\n\t\t\tcontent: new SubmissionContainerElementContent({ dueDate: element.dueDate }),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: SubmissionContainerElement): boolean {\n\t\treturn element instanceof SubmissionContainerElement;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SubmissionContainerNodeProps.html":{"url":"interfaces/SubmissionContainerNodeProps.html","title":"interface - SubmissionContainerNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SubmissionContainerNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n dueDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.SUBMISSION_CONTAINER_ELEMENT })\nexport class SubmissionContainerElementNode extends BoardNode {\n\t@Property()\n\tdueDate: Date;\n\n\tconstructor(props: SubmissionContainerNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.SUBMISSION_CONTAINER_ELEMENT;\n\t\tthis.dueDate = props.dueDate;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildSubmissionContainerElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface SubmissionContainerNodeProps extends BoardNodeProps {\n\tdueDate: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerUrlParams.html":{"url":"classes/SubmissionContainerUrlParams.html","title":"class - SubmissionContainerUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/submission-container.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n submissionContainerId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n submissionContainerId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the submission container.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-container.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class SubmissionContainerUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the submission container.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tsubmissionContainerId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/SubmissionController.html":{"url":"controllers/SubmissionController.html","title":"controller - SubmissionController","body":"\n \n\n\n\n\n\n\n Controllers\n SubmissionController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/submission.controller.ts\n \n\n \n Prefix\n \n \n submissions\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n Async\n findStatusesByTask\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(urlParams: SubmissionUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':submissionId')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/submission.controller.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n SubmissionUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findStatusesByTask\n \n \n \n \n \n \n \n findStatusesByTask(currentUser: ICurrentUser, params: TaskUrlParams)\n \n \n\n \n \n Decorators : \n \n @Get('status/task/:taskId')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/submission.controller.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Delete, Get, Param } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { SubmissionMapper } from '../mapper';\nimport { SubmissionUc } from '../uc';\nimport { SubmissionStatusListResponse, SubmissionUrlParams, TaskUrlParams } from './dto';\n\n@ApiTags('Submission')\n@Authenticate('jwt')\n@Controller('submissions')\nexport class SubmissionController {\n\tconstructor(private readonly submissionUc: SubmissionUc) {}\n\n\t@Get('status/task/:taskId')\n\tasync findStatusesByTask(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: TaskUrlParams\n\t): Promise {\n\t\tconst submissions = await this.submissionUc.findAllByTask(currentUser.userId, params.taskId);\n\n\t\tconst submissionResponses = submissions.map((submission) => SubmissionMapper.mapToStatusResponse(submission));\n\n\t\tconst listResponse = new SubmissionStatusListResponse(submissionResponses);\n\n\t\treturn listResponse;\n\t}\n\n\t@Delete(':submissionId')\n\tasync delete(@Param() urlParams: SubmissionUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst result = await this.submissionUc.delete(currentUser.userId, urlParams.submissionId);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionFactory.html":{"url":"classes/SubmissionFactory.html","title":"class - SubmissionFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/submission.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n graded\n \n \n studentWithId\n \n \n submitted\n \n \n teamMembersWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \ngraded()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/submission.factory.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n studentWithId\n \n \n \n \n \n \nstudentWithId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/submission.factory.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \nsubmitted()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/submission.factory.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n teamMembersWithId\n \n \n \n \n \n \nteamMembersWithId(numberOfTeamMembers: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/submission.factory.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n numberOfTeamMembers\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ISubmissionProperties, Submission } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\nimport { schoolFactory } from './school.factory';\nimport { taskFactory } from './task.factory';\nimport { userFactory } from './user.factory';\n\nclass SubmissionFactory extends BaseFactory {\n\tgraded(): this {\n\t\tconst params: DeepPartial = { graded: true };\n\n\t\treturn this.params(params);\n\t}\n\n\tsubmitted(): this {\n\t\tconst params: DeepPartial = { submitted: true };\n\n\t\treturn this.params(params);\n\t}\n\n\tstudentWithId(): this {\n\t\tconst params: DeepPartial = { student: userFactory.buildWithId() };\n\n\t\treturn this.params(params);\n\t}\n\n\tteamMembersWithId(numberOfTeamMembers: number): this {\n\t\tconst teamMembers = userFactory.buildListWithId(numberOfTeamMembers);\n\t\tconst params: DeepPartial = { teamMembers };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const submissionFactory = SubmissionFactory.define(Submission, ({ sequence }) => {\n\treturn {\n\t\tschool: schoolFactory.build(),\n\t\ttask: taskFactory.build(),\n\t\tstudent: userFactory.build(),\n\t\tcomment: `submission comment #${sequence}`,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionItem.html":{"url":"classes/SubmissionItem.html","title":"class - SubmissionItem","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionItem\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-item.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n completed\n \n \n userId\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:28\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:32\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:23\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n completed\n \n \n\n \n \n getcompleted()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.do.ts:6\n \n \n\n \n \n setcompleted(value: boolean)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n boolean\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n userId\n \n \n\n \n \n getuserId()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.do.ts:14\n \n \n\n \n \n setuserId(value: EntityId)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.do.ts:18\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class SubmissionItem extends BoardComposite {\n\tget completed(): boolean {\n\t\treturn this.props.completed;\n\t}\n\n\tset completed(value: boolean) {\n\t\tthis.props.completed = value;\n\t}\n\n\tget userId(): EntityId {\n\t\treturn this.props.userId;\n\t}\n\n\tset userId(value: EntityId) {\n\t\tthis.props.userId = value;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tisAllowedAsChild(child: AnyBoardDo): boolean {\n\t\t// Currently submission-item rejects any children, will open in the future\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitSubmissionItem(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitSubmissionItemAsync(this);\n\t}\n}\n\nexport interface SubmissionItemProps extends BoardCompositeProps {\n\tcompleted: boolean;\n\tuserId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionItemFactory.html":{"url":"injectables/SubmissionItemFactory.html","title":"injectable - SubmissionItemFactory","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionItemFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-item.factory.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.factory.ts:7\n \n \n\n\n \n \n\n \n Returns : SubmissionItem\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ObjectId } from 'bson';\nimport { SubmissionItem } from './submission-item.do';\n\n@Injectable()\nexport class SubmissionItemFactory {\n\tbuild(): SubmissionItem {\n\t\treturn new SubmissionItem({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tcompleted: false,\n\t\t\tuserId: new ObjectId().toHexString(),\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SubmissionItemNode.html":{"url":"entities/SubmissionItemNode.html","title":"entity - SubmissionItemNode","body":"\n \n\n\n\n\n\n\n\n Entities\n SubmissionItemNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/submission-item-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n completed\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n completed\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/submission-item-node.entity.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @Property({comment: 'The user whos submission this is. Usually the student submitting the work.'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/submission-item-node.entity.ts:16\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { EntityId } from '@shared/domain';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.SUBMISSION_ITEM })\nexport class SubmissionItemNode extends BoardNode {\n\t@Property()\n\tcompleted!: boolean;\n\n\t// @Index() // TODO if enabled tests in management fails with ERROR [ExceptionsHandler] Failed to create indexes\n\t@Property({\n\t\tcomment: 'The user whos submission this is. Usually the student submitting the work.',\n\t})\n\tuserId!: EntityId;\n\n\tconstructor(props: SubmissionItemNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.SUBMISSION_ITEM;\n\t\tthis.completed = props.completed;\n\t\tthis.userId = props.userId;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildSubmissionItem(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface SubmissionItemNodeProps extends BoardNodeProps {\n\tcompleted: boolean;\n\tuserId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SubmissionItemNodeProps.html":{"url":"interfaces/SubmissionItemNodeProps.html","title":"interface - SubmissionItemNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SubmissionItemNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/submission-item-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n completed\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n completed\n \n \n \n \n \n \n \n \n completed: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { EntityId } from '@shared/domain';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.SUBMISSION_ITEM })\nexport class SubmissionItemNode extends BoardNode {\n\t@Property()\n\tcompleted!: boolean;\n\n\t// @Index() // TODO if enabled tests in management fails with ERROR [ExceptionsHandler] Failed to create indexes\n\t@Property({\n\t\tcomment: 'The user whos submission this is. Usually the student submitting the work.',\n\t})\n\tuserId!: EntityId;\n\n\tconstructor(props: SubmissionItemNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.SUBMISSION_ITEM;\n\t\tthis.completed = props.completed;\n\t\tthis.userId = props.userId;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildSubmissionItem(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface SubmissionItemNodeProps extends BoardNodeProps {\n\tcompleted: boolean;\n\tuserId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SubmissionItemProps.html":{"url":"interfaces/SubmissionItemProps.html","title":"interface - SubmissionItemProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SubmissionItemProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-item.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n completed\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n completed\n \n \n \n \n \n \n \n \n completed: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class SubmissionItem extends BoardComposite {\n\tget completed(): boolean {\n\t\treturn this.props.completed;\n\t}\n\n\tset completed(value: boolean) {\n\t\tthis.props.completed = value;\n\t}\n\n\tget userId(): EntityId {\n\t\treturn this.props.userId;\n\t}\n\n\tset userId(value: EntityId) {\n\t\tthis.props.userId = value;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tisAllowedAsChild(child: AnyBoardDo): boolean {\n\t\t// Currently submission-item rejects any children, will open in the future\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitSubmissionItem(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitSubmissionItemAsync(this);\n\t}\n}\n\nexport interface SubmissionItemProps extends BoardCompositeProps {\n\tcompleted: boolean;\n\tuserId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionItemResponse.html":{"url":"classes/SubmissionItemResponse.html","title":"class - SubmissionItemResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionItemResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n completed\n \n \n \n id\n \n \n \n timestamps\n \n \n \n userData\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SubmissionItemResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SubmissionItemResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n completed\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n userData\n \n \n \n \n \n \n Type : UserDataResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:23\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { TimestampsResponse } from '../timestamps.response';\nimport { UserDataResponse } from '../user-data.response';\n\nexport class SubmissionItemResponse {\n\tconstructor({ id, timestamps, completed, userData }: SubmissionItemResponse) {\n\t\tthis.id = id;\n\t\tthis.timestamps = timestamps;\n\t\tthis.completed = completed;\n\t\tthis.userData = userData;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n\n\t@ApiProperty()\n\tcompleted: boolean;\n\n\t@ApiProperty()\n\tuserData: UserDataResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionItemResponseMapper.html":{"url":"classes/SubmissionItemResponseMapper.html","title":"class - SubmissionItemResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionItemResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/submission-item-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n getInstance\n \n \n Public\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n \n \n Type : SubmissionItemResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-response.mapper.ts:5\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n getInstance\n \n \n \n \n \n \n \n getInstance()\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-response.mapper.ts:7\n \n \n\n\n \n \n\n \n Returns : SubmissionItemResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-response.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionItemResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SubmissionItem } from '@shared/domain';\nimport { SubmissionItemResponse, TimestampsResponse, UserDataResponse } from '../dto';\n\nexport class SubmissionItemResponseMapper {\n\tprivate static instance: SubmissionItemResponseMapper;\n\n\tpublic static getInstance(): SubmissionItemResponseMapper {\n\t\tif (!SubmissionItemResponseMapper.instance) {\n\t\t\tSubmissionItemResponseMapper.instance = new SubmissionItemResponseMapper();\n\t\t}\n\n\t\treturn SubmissionItemResponseMapper.instance;\n\t}\n\n\tpublic mapToResponse(submissionItem: SubmissionItem): SubmissionItemResponse {\n\t\tconst result = new SubmissionItemResponse({\n\t\t\tcompleted: submissionItem.completed,\n\t\t\tid: submissionItem.id,\n\t\t\ttimestamps: new TimestampsResponse({\n\t\t\t\tlastUpdatedAt: submissionItem.updatedAt,\n\t\t\t\tcreatedAt: submissionItem.createdAt,\n\t\t\t}),\n\t\t\tuserData: new UserDataResponse({\n\t\t\t\t// TODO: put valid user info here which comes from the submission owner\n\t\t\t\tfirstName: 'John',\n\t\t\t\tlastName: 'Mr Doe',\n\t\t\t\tuserId: submissionItem.userId,\n\t\t\t}),\n\t\t});\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionItemService.html":{"url":"injectables/SubmissionItemService.html","title":"injectable - SubmissionItemService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionItemService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/submission-item.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Async\n findById\n \n \n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/submission-item.service.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(userId: EntityId, submissionContainer: SubmissionContainerElement, payload: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/submission-item.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionContainer\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n payload\n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/submission-item.service.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n update\n \n \n \n \n \n \n \n update(submissionItem: SubmissionItem, completed: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/submission-item.service.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n completed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ObjectId } from 'bson';\nimport { Injectable, NotFoundException } from '@nestjs/common';\n\nimport { EntityId, SubmissionContainerElement, SubmissionItem } from '@shared/domain';\nimport { ValidationError } from '@shared/common';\n\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\n\n@Injectable()\nexport class SubmissionItemService {\n\tconstructor(private readonly boardDoRepo: BoardDoRepo, private readonly boardDoService: BoardDoService) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst element = await this.boardDoRepo.findById(id);\n\n\t\tif (!(element instanceof SubmissionItem)) {\n\t\t\tthrow new NotFoundException(`There is no '${element.constructor.name}' with this id`);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tasync create(\n\t\tuserId: EntityId,\n\t\tsubmissionContainer: SubmissionContainerElement,\n\t\tpayload: { completed: boolean }\n\t): Promise {\n\t\tconst submissionItem = new SubmissionItem({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tcompleted: payload.completed,\n\t\t\tuserId,\n\t\t});\n\n\t\tsubmissionContainer.addChild(submissionItem);\n\n\t\tawait this.boardDoRepo.save(submissionContainer.children, submissionContainer);\n\n\t\treturn submissionItem;\n\t}\n\n\tasync update(submissionItem: SubmissionItem, completed: boolean): Promise {\n\t\tconst parent = (await this.boardDoRepo.findParentOfId(submissionItem.id)) as SubmissionContainerElement;\n\t\tconst now = new Date();\n\t\tif (parent.dueDate && parent.dueDate \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionItemUc.html":{"url":"injectables/SubmissionItemUc.html","title":"injectable - SubmissionItemUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionItemUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/submission-item.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n Async\n findSubmissionItems\n \n \n Private\n Async\n getSubmissionContainer\n \n \n Private\n Async\n isAuthorizedStudent\n \n \n Async\n updateSubmissionItem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, elementService: ContentElementService, submissionItemService: SubmissionItemService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n elementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n submissionItemService\n \n \n SubmissionItemService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n requiredUserRole\n \n UserRoleEnum\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findSubmissionItems\n \n \n \n \n \n \n \n findSubmissionItems(userId: EntityId, submissionContainerId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionContainerId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getSubmissionContainer\n \n \n \n \n \n \n \n getSubmissionContainer(submissionContainerId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSubmissionItem\n \n \n \n \n \n \n \n updateSubmissionItem(userId: EntityId, submissionItemId: EntityId, completed: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n completed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, forwardRef, HttpException, HttpStatus, Inject, Injectable } from '@nestjs/common';\nimport { AnyBoardDo, EntityId, SubmissionContainerElement, SubmissionItem, UserRoleEnum } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport { BoardDoAuthorizableService, ContentElementService, SubmissionItemService } from '../service';\n\n@Injectable()\nexport class SubmissionItemUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly elementService: ContentElementService,\n\t\tprivate readonly submissionItemService: SubmissionItemService,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tthis.logger.setContext(SubmissionItemUc.name);\n\t}\n\n\tasync findSubmissionItems(userId: EntityId, submissionContainerId: EntityId): Promise {\n\t\tconst submissionContainer = await this.getSubmissionContainer(submissionContainerId);\n\t\tawait this.checkPermission(userId, submissionContainer, Action.read);\n\n\t\tlet submissionItems = submissionContainer.children as SubmissionItem[];\n\n\t\tif (!submissionItems.every((child) => child instanceof SubmissionItem)) {\n\t\t\tthrow new HttpException(\n\t\t\t\t'Children of submission-container-element must be of type submission-item',\n\t\t\t\tHttpStatus.UNPROCESSABLE_ENTITY\n\t\t\t);\n\t\t}\n\n\t\tconst isAuthorizedStudent = await this.isAuthorizedStudent(userId, submissionContainer);\n\t\tif (isAuthorizedStudent) {\n\t\t\tsubmissionItems = submissionItems.filter((item) => item.userId === userId);\n\t\t}\n\n\t\treturn submissionItems;\n\t}\n\n\tasync updateSubmissionItem(\n\t\tuserId: EntityId,\n\t\tsubmissionItemId: EntityId,\n\t\tcompleted: boolean\n\t): Promise {\n\t\tconst submissionItem = await this.submissionItemService.findById(submissionItemId);\n\n\t\tawait this.checkPermission(userId, submissionItem, Action.read, UserRoleEnum.STUDENT);\n\t\tif (submissionItem.userId !== userId) {\n\t\t\tthrow new ForbiddenException();\n\t\t}\n\n\t\tawait this.submissionItemService.update(submissionItem, completed);\n\n\t\treturn submissionItem;\n\t}\n\n\tprivate async isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo): Promise {\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tconst userRoleEnum = boardDoAuthorizable.users.find((u) => u.userId === userId)?.userRoleEnum;\n\n\t\tif (!userRoleEnum) {\n\t\t\tthrow new ForbiddenException('User not part of this board');\n\t\t}\n\n\t\t// TODO do this with permission instead of role and using authorizable rules\n\t\tif (userRoleEnum === UserRoleEnum.STUDENT) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate async getSubmissionContainer(submissionContainerId: EntityId): Promise {\n\t\tconst submissionContainer = (await this.elementService.findById(\n\t\t\tsubmissionContainerId\n\t\t)) as SubmissionContainerElement;\n\n\t\tif (!(submissionContainer instanceof SubmissionContainerElement)) {\n\t\t\tthrow new HttpException('Id does not belong to a submission container', HttpStatus.UNPROCESSABLE_ENTITY);\n\t\t}\n\n\t\treturn submissionContainer;\n\t}\n\n\tprivate async checkPermission(\n\t\tuserId: EntityId,\n\t\tboardDo: AnyBoardDo,\n\t\taction: Action,\n\t\trequiredUserRole?: UserRoleEnum\n\t): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tif (requiredUserRole) {\n\t\t\tboardDoAuthorizable.requiredUserRole = requiredUserRole;\n\t\t}\n\t\tconst context = { action, requiredPermissions: [] };\n\n\t\treturn this.authorizationService.checkPermission(user, boardDoAuthorizable, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionItemUrlParams.html":{"url":"classes/SubmissionItemUrlParams.html","title":"class - SubmissionItemUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionItemUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/submission-item.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n submissionItemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n submissionItemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the submission item.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class SubmissionItemUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the submission item.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tsubmissionItemId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionMapper.html":{"url":"classes/SubmissionMapper.html","title":"class - SubmissionMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/mapper/submission.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToStatusResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToStatusResponse\n \n \n \n \n \n \n \n mapToStatusResponse(submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/submission.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionStatusResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Submission } from '@shared/domain';\nimport { SubmissionStatusResponse } from '../controller/dto';\n\nexport class SubmissionMapper {\n\tstatic mapToStatusResponse(submission: Submission): SubmissionStatusResponse {\n\t\tconst dto = new SubmissionStatusResponse({\n\t\t\tid: submission.id,\n\t\t\tsubmitters: submission.getSubmitterIds(),\n\t\t\tisSubmitted: submission.isSubmitted(),\n\t\t\tgrade: submission.grade,\n\t\t\tisGraded: submission.isGraded(),\n\t\t\tsubmittingCourseGroupName: submission.courseGroup?.name,\n\t\t});\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionRepo.html":{"url":"injectables/SubmissionRepo.html","title":"injectable - SubmissionRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/submission/submission.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n byUserIdQuery\n \n \n Async\n findAllByTaskIds\n \n \n Async\n findAllByUserId\n \n \n Async\n findById\n \n \n Private\n Async\n populateReferences\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n byUserIdQuery\n \n \n \n \n \n \n \n byUserIdQuery(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByTaskIds\n \n \n \n \n \n \n \n findAllByTaskIds(taskIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByUserId\n \n \n \n \n \n \n \n findAllByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: string)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateReferences\n \n \n \n \n \n \n \n populateReferences(submissions: Submission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissions\n \n Submission[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:10\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { Counted, CourseGroup, EntityId, Submission } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\n\n// TODO: add scope helper\n\n@Injectable()\nexport class SubmissionRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Submission;\n\t}\n\n\tasync findById(id: string): Promise {\n\t\tconst submission = await super.findById(id);\n\t\tawait this.populateReferences([submission]);\n\n\t\treturn submission;\n\t}\n\n\tasync findAllByTaskIds(taskIds: EntityId[]): Promise> {\n\t\tconst [submissions, count] = await this._em.findAndCount(this.entityName, {\n\t\t\ttask: { $in: taskIds },\n\t\t});\n\t\tawait this.populateReferences(submissions);\n\n\t\treturn [submissions, count];\n\t}\n\n\tasync findAllByUserId(userId: EntityId): Promise> {\n\t\tconst result = await this._em.findAndCount(this.entityName, await this.byUserIdQuery(userId));\n\t\treturn result;\n\t}\n\n\tprivate async byUserIdQuery(userId: EntityId): Promise> {\n\t\tconst courseGroupsOfUser = await this._em.find(CourseGroup, { students: userId });\n\t\tconst query = { $or: [{ student: userId }, { teamMembers: userId }, { courseGroup: { $in: courseGroupsOfUser } }] };\n\t\treturn query;\n\t}\n\n\tprivate async populateReferences(submissions: Submission[]): Promise {\n\t\tawait this._em.populate(submissions, [\n\t\t\t'courseGroup',\n\t\t\t'task.course',\n\t\t\t'task.lesson.course',\n\t\t\t'task.lesson.courseGroup.course',\n\t\t]);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionRule.html":{"url":"injectables/SubmissionRule.html","title":"injectable - SubmissionRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/submission.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n hasAccessToSubmission\n \n \n Private\n hasParentTaskReadAccess\n \n \n Private\n hasParentTaskWriteAccess\n \n \n Public\n hasPermission\n \n \n Private\n hasReadAccess\n \n \n Private\n hasWriteAccess\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper, taskRule: TaskRule)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n taskRule\n \n \n TaskRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n hasAccessToSubmission\n \n \n \n \n \n \n \n hasAccessToSubmission(user: User, submission: Submission, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasParentTaskReadAccess\n \n \n \n \n \n \n \n hasParentTaskReadAccess(user: User, submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasParentTaskWriteAccess\n \n \n \n \n \n \n \n hasParentTaskWriteAccess(user: User, submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, submission: Submission, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasReadAccess\n \n \n \n \n \n \n \n hasReadAccess(user: User, submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasWriteAccess\n \n \n \n \n \n \n \n hasWriteAccess(user: User, submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Submission, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { TaskRule } from './task.rule';\n\n@Injectable()\nexport class SubmissionRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper, private readonly taskRule: TaskRule) {}\n\n\tpublic isApplicable(user: User, entity: Submission): boolean {\n\t\tconst isMatched = entity instanceof Submission;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, submission: Submission, context: AuthorizationContext): boolean {\n\t\tconst { action, requiredPermissions } = context;\n\n\t\tconst result =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, requiredPermissions) &&\n\t\t\tthis.hasAccessToSubmission(user, submission, action);\n\n\t\treturn result;\n\t}\n\n\tprivate hasAccessToSubmission(user: User, submission: Submission, action: Action): boolean {\n\t\tlet hasAccessToSubmission = false;\n\n\t\tif (action === Action.write) {\n\t\t\thasAccessToSubmission = this.hasWriteAccess(user, submission);\n\t\t} else if (action === Action.read) {\n\t\t\thasAccessToSubmission = this.hasReadAccess(user, submission);\n\t\t}\n\n\t\treturn hasAccessToSubmission;\n\t}\n\n\tprivate hasWriteAccess(user: User, submission: Submission) {\n\t\tconst hasWriteAccess = submission.isUserSubmitter(user) || this.hasParentTaskWriteAccess(user, submission);\n\n\t\treturn hasWriteAccess;\n\t}\n\n\tprivate hasReadAccess(user: User, submission: Submission) {\n\t\tlet hasReadAccess = false;\n\n\t\tif (submission.isSubmitted()) {\n\t\t\thasReadAccess =\n\t\t\t\tthis.hasWriteAccess(user, submission) ||\n\t\t\t\t(this.hasParentTaskReadAccess(user, submission) && submission.task.areSubmissionsPublic());\n\t\t} else {\n\t\t\thasReadAccess = submission.isUserSubmitter(user);\n\t\t}\n\n\t\treturn hasReadAccess;\n\t}\n\n\tprivate hasParentTaskWriteAccess(user: User, submission: Submission) {\n\t\tconst hasParentTaskWriteAccess = this.taskRule.hasPermission(user, submission.task, {\n\t\t\taction: Action.write,\n\t\t\trequiredPermissions: [],\n\t\t});\n\n\t\treturn hasParentTaskWriteAccess;\n\t}\n\n\tprivate hasParentTaskReadAccess(user: User, submission: Submission) {\n\t\tconst hasParentTaskReadAccess = this.taskRule.hasPermission(user, submission.task, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [],\n\t\t});\n\n\t\treturn hasParentTaskReadAccess;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionService.html":{"url":"injectables/SubmissionService.html","title":"injectable - SubmissionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/service/submission.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n findAllByTask\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(submissionRepo: SubmissionRepo, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/task/service/submission.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionRepo\n \n \n SubmissionRepo\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/submission.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByTask\n \n \n \n \n \n \n \n findAllByTask(taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/submission.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(submissionId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/submission.service.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, Submission } from '@shared/domain';\nimport { SubmissionRepo } from '@shared/repo';\nimport { FilesStorageClientAdapterService } from '@src/modules/files-storage-client';\n\n@Injectable()\nexport class SubmissionService {\n\tconstructor(\n\t\tprivate readonly submissionRepo: SubmissionRepo,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync findById(submissionId: EntityId): Promise {\n\t\treturn this.submissionRepo.findById(submissionId);\n\t}\n\n\tasync findAllByTask(taskId: EntityId): Promise> {\n\t\tconst submissions = this.submissionRepo.findAllByTaskIds([taskId]);\n\n\t\treturn submissions;\n\t}\n\n\tasync delete(submission: Submission): Promise {\n\t\tawait this.filesStorageClientAdapterService.deleteFilesOfParent(submission.id);\n\n\t\tawait this.submissionRepo.delete(submission);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionStatusListResponse.html":{"url":"classes/SubmissionStatusListResponse.html","title":"class - SubmissionStatusListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionStatusListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/submission.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: SubmissionStatusResponse[])\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:32\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n SubmissionStatusResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : SubmissionStatusResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:38\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class SubmissionStatusResponse {\n\tconstructor({ id, submitters, isSubmitted, grade, isGraded, submittingCourseGroupName }: SubmissionStatusResponse) {\n\t\tthis.id = id;\n\t\tthis.submitters = submitters;\n\t\tthis.isSubmitted = isSubmitted;\n\t\tthis.grade = grade;\n\t\tthis.isGraded = isGraded;\n\t\tthis.submittingCourseGroupName = submittingCourseGroupName;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tsubmitters: string[];\n\n\t@ApiProperty()\n\tisSubmitted: boolean;\n\n\t@ApiPropertyOptional()\n\tgrade?: number;\n\n\t@ApiProperty()\n\tisGraded: boolean;\n\n\t@ApiPropertyOptional()\n\tsubmittingCourseGroupName?: string;\n}\n\nexport class SubmissionStatusListResponse {\n\tconstructor(data: SubmissionStatusResponse[]) {\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [SubmissionStatusResponse] })\n\tdata: SubmissionStatusResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionStatusResponse.html":{"url":"classes/SubmissionStatusResponse.html","title":"class - SubmissionStatusResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionStatusResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/submission.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n grade\n \n \n \n id\n \n \n \n isGraded\n \n \n \n isSubmitted\n \n \n \n submitters\n \n \n \n Optional\n submittingCourseGroupName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SubmissionStatusResponse)\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SubmissionStatusResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n grade\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n isGraded\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n isSubmitted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n submitters\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n submittingCourseGroupName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:29\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class SubmissionStatusResponse {\n\tconstructor({ id, submitters, isSubmitted, grade, isGraded, submittingCourseGroupName }: SubmissionStatusResponse) {\n\t\tthis.id = id;\n\t\tthis.submitters = submitters;\n\t\tthis.isSubmitted = isSubmitted;\n\t\tthis.grade = grade;\n\t\tthis.isGraded = isGraded;\n\t\tthis.submittingCourseGroupName = submittingCourseGroupName;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tsubmitters: string[];\n\n\t@ApiProperty()\n\tisSubmitted: boolean;\n\n\t@ApiPropertyOptional()\n\tgrade?: number;\n\n\t@ApiProperty()\n\tisGraded: boolean;\n\n\t@ApiPropertyOptional()\n\tsubmittingCourseGroupName?: string;\n}\n\nexport class SubmissionStatusListResponse {\n\tconstructor(data: SubmissionStatusResponse[]) {\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [SubmissionStatusResponse] })\n\tdata: SubmissionStatusResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionUc.html":{"url":"injectables/SubmissionUc.html","title":"injectable - SubmissionUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/uc/submission.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Private\n filterSubmissionsByPermission\n \n \n Async\n findAllByTask\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(submissionService: SubmissionService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/task/uc/submission.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionService\n \n \n SubmissionService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(userId: EntityId, submissionId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/submission.uc.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n filterSubmissionsByPermission\n \n \n \n \n \n \n \n filterSubmissionsByPermission(submissions: Submission[], user: User)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/submission.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissions\n \n Submission[]\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Submission[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByTask\n \n \n \n \n \n \n \n findAllByTask(userId: EntityId, taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/submission.uc.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission, Submission, User } from '@shared/domain';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { SubmissionService } from '../service';\n\n@Injectable()\nexport class SubmissionUc {\n\tconstructor(\n\t\tprivate readonly submissionService: SubmissionService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tasync findAllByTask(userId: EntityId, taskId: EntityId): Promise {\n\t\tconst [submissions] = await this.submissionService.findAllByTask(taskId);\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tconst permittedSubmissions = this.filterSubmissionsByPermission(submissions, user);\n\n\t\treturn permittedSubmissions;\n\t}\n\n\tasync delete(userId: EntityId, submissionId: EntityId) {\n\t\tconst [user, submission] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.submissionService.findById(submissionId),\n\t\t]);\n\n\t\tthis.authorizationService.checkPermission(\n\t\t\tuser,\n\t\t\tsubmission,\n\t\t\tAuthorizationContextBuilder.write([Permission.SUBMISSIONS_EDIT])\n\t\t);\n\n\t\tawait this.submissionService.delete(submission);\n\n\t\treturn true;\n\t}\n\n\tprivate filterSubmissionsByPermission(submissions: Submission[], user: User): Submission[] {\n\t\tconst permissionContext = AuthorizationContextBuilder.read([Permission.SUBMISSIONS_VIEW]);\n\n\t\tconst permittedSubmissions = submissions.filter((submission) => {\n\t\t\tconst hasPermission = this.authorizationService.hasPermission(user, submission, permissionContext);\n\n\t\t\treturn hasPermission;\n\t\t});\n\n\t\treturn permittedSubmissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionUrlParams.html":{"url":"classes/SubmissionUrlParams.html","title":"class - SubmissionUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/submission.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n submissionId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n submissionId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the submission.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class SubmissionUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the submission.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tsubmissionId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SuccessfulRes.html":{"url":"interfaces/SuccessfulRes.html","title":"interface - SuccessfulRes","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SuccessfulRes\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n success\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n success\n \n \n \n \n \n \n \n \n success: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SuccessfulResponse.html":{"url":"classes/SuccessfulResponse.html","title":"class - SuccessfulResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SuccessfulResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/controller/dto/user.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n successful\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(successful: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/user.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n successful\n \n \n boolean\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n successful\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/user.response.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class SuccessfulResponse {\n\tconstructor(successful: boolean) {\n\t\tthis.successful = successful;\n\t}\n\n\t@ApiProperty()\n\tsuccessful: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SymetricKeyEncryptionService.html":{"url":"injectables/SymetricKeyEncryptionService.html","title":"injectable - SymetricKeyEncryptionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SymetricKeyEncryptionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/encryption/encryption.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n decrypt\n \n \n Public\n encrypt\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, key?: string)\n \n \n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n key\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n decrypt\n \n \n \n \n \n \n \n decrypt(data: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n encrypt\n \n \n \n \n \n \n \n encrypt(data: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import CryptoJs from 'crypto-js';\n\nimport { Injectable } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { IEncryptionService } from './encryption.interface';\n\n@Injectable()\nexport class SymetricKeyEncryptionService implements IEncryptionService {\n\tconstructor(private logger: LegacyLogger, private key?: string) {\n\t\tif (!this.key) {\n\t\t\tthis.logger.warn('No AES key defined. Encryption will no work');\n\t\t}\n\t}\n\n\tpublic encrypt(data: string): string {\n\t\tif (!this.key) {\n\t\t\tthis.logger.warn('No AES key defined. Will return plain text');\n\t\t\treturn data;\n\t\t}\n\t\treturn CryptoJs.AES.encrypt(data, this.key).toString();\n\t}\n\n\tpublic decrypt(data: string): string {\n\t\tif (!this.key) {\n\t\t\tthis.logger.warn('No AES key defined. Will return plain text');\n\t\t\treturn data;\n\t\t}\n\t\treturn CryptoJs.AES.decrypt(data, this.key).toString(CryptoJs.enc.Utf8);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/System.html":{"url":"entities/System.html","title":"entity - System","body":"\n \n\n\n\n\n\n\n\n Entities\n System\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n Optional\n displayName\n \n \n \n Optional\n ldapConfig\n \n \n \n Optional\n oauthConfig\n \n \n \n Optional\n oidcConfig\n \n \n \n \n Optional\n provisioningStrategy\n \n \n \n Optional\n provisioningUrl\n \n \n \n type\n \n \n \n Optional\n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:212\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:215\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n ldapConfig\n \n \n \n \n \n \n Type : LdapConfig\n\n \n \n \n \n Decorators : \n \n \n @Embedded({entity: () => LdapConfig, object: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:228\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthConfig\n \n \n \n \n \n \n Type : OauthConfig\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:218\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oidcConfig\n \n \n \n \n \n \n Type : OidcConfig\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:225\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n provisioningStrategy\n \n \n \n \n \n \n Type : SystemProvisioningStrategy\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Enum()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:222\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n provisioningUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:231\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:206\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:209\n \n \n\n\n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SystemApiModule.html":{"url":"modules/SystemApiModule.html","title":"module - SystemApiModule","body":"\n \n\n\n\n\n Modules\n SystemApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SystemApiModule\n\n\n\ncluster_SystemApiModule_providers\n\n\n\ncluster_SystemApiModule_imports\n\n\n\n\nSystemModule\n\nSystemModule\n\n\n\nSystemApiModule\n\nSystemApiModule\n\nSystemApiModule -->\n\nSystemModule->SystemApiModule\n\n\n\n\n\nSystemUc\n\nSystemUc\n\nSystemApiModule -->\n\nSystemUc->SystemApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/system/system-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n SystemUc\n \n \n \n \n Controllers\n \n \n SystemController\n \n \n \n \n Imports\n \n \n SystemModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { SystemController } from '@src/modules/system/controller/system.controller';\nimport { SystemUc } from '@src/modules/system/uc/system.uc';\nimport { SystemModule } from './system.module';\n\n@Module({\n\timports: [SystemModule],\n\tproviders: [SystemUc],\n\tcontrollers: [SystemController],\n})\nexport class SystemApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/SystemController.html":{"url":"controllers/SystemController.html","title":"controller - SystemController","body":"\n \n\n\n\n\n\n\n Controllers\n SystemController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/system.controller.ts\n \n\n \n Prefix\n \n \n systems\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n Async\n getSystem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(filterParams: SystemFilterParams)\n \n \n\n \n \n Decorators : \n \n @Get('public')@ApiOperation({summary: 'Finds all publicly available systems.'})@ApiResponse({status: 200, type: PublicSystemListResponse, description: 'Returns a list of systems.'})\n \n \n\n \n \n Defined in apps/server/src/modules/system/controller/system.controller.ts:23\n \n \n\n\n \n \n This endpoint is used to show users the possible login systems that exist.\nNo sensible data should be returned!\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n filterParams\n \n SystemFilterParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSystem\n \n \n \n \n \n \n \n getSystem(params: SystemIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('public/:systemId')@ApiOperation({summary: 'Finds a publicly available system.'})@ApiResponse({status: 200, type: PublicSystemResponse, description: 'Returns a system.'})\n \n \n\n \n \n Defined in apps/server/src/modules/system/controller/system.controller.ts:38\n \n \n\n\n \n \n This endpoint is used to get information about a possible login systems.\nNo sensible data should be returned!\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n SystemIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param, Query } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { SystemFilterParams } from '@src/modules/system/controller/dto/system.filter.params';\nimport { SystemDto } from '../service';\nimport { SystemUc } from '../uc/system.uc';\nimport { PublicSystemListResponse } from './dto/public-system-list.response';\nimport { PublicSystemResponse } from './dto/public-system-response';\nimport { SystemIdParams } from './dto/system-id.params';\nimport { SystemResponseMapper } from './mapper/system-response.mapper';\n\n@ApiTags('Systems')\n@Controller('systems')\nexport class SystemController {\n\tconstructor(private readonly systemUc: SystemUc) {}\n\n\t/**\n\t * This endpoint is used to show users the possible login systems that exist.\n\t * No sensible data should be returned!\n\t */\n\t@Get('public')\n\t@ApiOperation({ summary: 'Finds all publicly available systems.' })\n\t@ApiResponse({ status: 200, type: PublicSystemListResponse, description: 'Returns a list of systems.' })\n\tasync find(@Query() filterParams: SystemFilterParams): Promise {\n\t\tconst systemDtos: SystemDto[] = await this.systemUc.findByFilter(filterParams.type, filterParams.onlyOauth);\n\n\t\tconst mapped: PublicSystemListResponse = SystemResponseMapper.mapFromDtoToListResponse(systemDtos);\n\n\t\treturn mapped;\n\t}\n\n\t/**\n\t * This endpoint is used to get information about a possible login systems.\n\t * No sensible data should be returned!\n\t */\n\t@Get('public/:systemId')\n\t@ApiOperation({ summary: 'Finds a publicly available system.' })\n\t@ApiResponse({ status: 200, type: PublicSystemResponse, description: 'Returns a system.' })\n\tasync getSystem(@Param() params: SystemIdParams): Promise {\n\t\tconst systemDto: SystemDto = await this.systemUc.findById(params.systemId);\n\n\t\tconst mapped: PublicSystemResponse = SystemResponseMapper.mapFromDtoToResponse(systemDto);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemDto.html":{"url":"classes/SystemDto.html","title":"class - SystemDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/dto/system.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n alias\n \n \n Optional\n displayName\n \n \n Optional\n id\n \n \n Optional\n ldapActive\n \n \n Optional\n oauthConfig\n \n \n Optional\n provisioningStrategy\n \n \n Optional\n provisioningUrl\n \n \n type\n \n \n Optional\n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(system: SystemDto)\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n \n SystemDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n ldapActive\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthConfig\n \n \n \n \n \n \n Type : OauthConfigDto\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n provisioningStrategy\n \n \n \n \n \n \n Type : SystemProvisioningStrategy\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n provisioningUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { OauthConfigDto } from '@src/modules/system/service/dto/oauth-config.dto';\n\nexport class SystemDto {\n\tid?: EntityId;\n\n\ttype: string;\n\n\turl?: string;\n\n\talias?: string;\n\n\tdisplayName?: string;\n\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\tprovisioningUrl?: string;\n\n\toauthConfig?: OauthConfigDto;\n\n\tldapActive?: boolean;\n\n\tconstructor(system: SystemDto) {\n\t\tthis.id = system.id;\n\t\tthis.type = system.type;\n\t\tthis.url = system.url;\n\t\tthis.alias = system.alias;\n\t\tthis.displayName = system.displayName;\n\t\tthis.provisioningStrategy = system.provisioningStrategy;\n\t\tthis.provisioningUrl = system.provisioningUrl;\n\t\tthis.oauthConfig = system.oauthConfig;\n\t\tthis.ldapActive = system.ldapActive;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemFactory.html":{"url":"classes/SystemFactory.html","title":"class - SystemFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/system.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withLdapConfig\n \n \n withOauthConfig\n \n \n withOidcConfig\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withLdapConfig\n \n \n \n \n \n \nwithLdapConfig(otherParams?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/system.factory.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n otherParams\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOauthConfig\n \n \n \n \n \n \nwithOauthConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/system.factory.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n withOidcConfig\n \n \n \n \n \n \nwithOidcConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/system.factory.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ISystemProperties, LdapConfig, OauthConfig, OidcConfig, System } from '@shared/domain';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\n\nexport class SystemFactory extends BaseFactory {\n\twithOauthConfig(): this {\n\t\tconst params: DeepPartial = {\n\t\t\toauthConfig: new OauthConfig({\n\t\t\t\tclientId: '12345',\n\t\t\t\tclientSecret: 'mocksecret',\n\t\t\t\tidpHint: 'mock-oauth-idpHint',\n\t\t\t\ttokenEndpoint: 'http://mock.de/mock/auth/public/mockToken',\n\t\t\t\tgrantType: 'authorization_code',\n\t\t\t\tredirectUri: 'http://mockhost:3030/api/v3/sso/oauth/',\n\t\t\t\tscope: 'openid uuid',\n\t\t\t\tresponseType: 'code',\n\t\t\t\tauthEndpoint: 'http://mock.de/auth',\n\t\t\t\tprovider: 'mock_type',\n\t\t\t\tlogoutEndpoint: 'http://mock.de/logout',\n\t\t\t\tissuer: 'mock_issuer',\n\t\t\t\tjwksEndpoint: 'http://mock.de/jwks',\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLdapConfig(otherParams?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tldapConfig: new LdapConfig({\n\t\t\t\turl: 'ldaps:mock.de:389',\n\t\t\t\tactive: true,\n\t\t\t\t...otherParams,\n\t\t\t}),\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n\n\twithOidcConfig(): this {\n\t\tconst params = {\n\t\t\toidcConfig: new OidcConfig({\n\t\t\t\tclientId: 'mock-client-id',\n\t\t\t\tclientSecret: 'mock-client-secret',\n\t\t\t\tidpHint: 'mock-oidc-idpHint',\n\t\t\t\tdefaultScopes: 'openid email userinfo',\n\t\t\t\tauthorizationUrl: 'https://mock.tld/auth',\n\t\t\t\ttokenUrl: 'https://mock.tld/token',\n\t\t\t\tuserinfoUrl: 'https://mock.tld/userinfo',\n\t\t\t\tlogoutUrl: 'https://mock.tld/logout',\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const systemFactory = SystemFactory.define(System, ({ sequence }) => {\n\treturn {\n\t\ttype: 'oauth',\n\t\turl: 'http://mock.de',\n\t\talias: `system #${sequence}`,\n\t\tdisplayName: `system #${sequence}DisplayName`,\n\t\tprovisioningStrategy: SystemProvisioningStrategy.OIDC,\n\t\tprovisioningUrl: 'https://provisioningurl.de',\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemFilterParams.html":{"url":"classes/SystemFilterParams.html","title":"class - SystemFilterParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemFilterParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/system.filter.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n onlyOauth\n \n \n \n \n \n Optional\n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n onlyOauth\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Flag to request only systems with oauth-config.'})@IsOptional()@IsBoolean()@StringToBoolean()\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/system.filter.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n type\n \n \n \n \n \n \n Type : SystemTypeEnum\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The type of the system.'})@IsOptional()@IsEnum(SystemTypeEnum)\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/system.filter.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { SystemTypeEnum } from '@shared/domain';\nimport { IsBoolean, IsEnum, IsOptional } from 'class-validator';\n\nexport class SystemFilterParams {\n\t@ApiPropertyOptional({ description: 'The type of the system.' })\n\t@IsOptional()\n\t@IsEnum(SystemTypeEnum)\n\ttype?: SystemTypeEnum;\n\n\t@ApiPropertyOptional({ description: 'Flag to request only systems with oauth-config.' })\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\tonlyOauth?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemIdParams.html":{"url":"classes/SystemIdParams.html","title":"class - SystemIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/system-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the system.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/system-id.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class SystemIdParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the system.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tsystemId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemIdParams-1.html":{"url":"classes/SystemIdParams-1.html","title":"class - SystemIdParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/system-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/system-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class SystemIdParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tsystemId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemMapper.html":{"url":"classes/SystemMapper.html","title":"class - SystemMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/mapper/system.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n Static\n mapFromEntityToDto\n \n \n Static\n mapFromOauthConfigEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n \n \n \n \n \n mapFromEntitiesToDtos(entities: System[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n System[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SystemDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n \n \n \n mapFromEntityToDto(entity: System)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n System\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SystemDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromOauthConfigEntityToDto\n \n \n \n \n \n \n \n mapFromOauthConfigEntityToDto(oauthConfig: OauthConfig | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system.mapper.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfig\n \n OauthConfig | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthConfigDto | undefined\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OauthConfig, System } from '@shared/domain';\nimport { OauthConfigDto } from '@src/modules/system/service/dto/oauth-config.dto';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\n\nexport class SystemMapper {\n\tstatic mapFromEntityToDto(entity: System): SystemDto {\n\t\treturn new SystemDto({\n\t\t\tid: entity.id,\n\t\t\ttype: entity.type,\n\t\t\turl: entity.url,\n\t\t\talias: entity.alias,\n\t\t\tdisplayName: entity.displayName ?? entity.alias,\n\t\t\tprovisioningStrategy: entity.provisioningStrategy,\n\t\t\tprovisioningUrl: entity.provisioningUrl,\n\t\t\toauthConfig: SystemMapper.mapFromOauthConfigEntityToDto(entity.oauthConfig),\n\t\t\tldapActive: entity.ldapConfig?.active,\n\t\t});\n\t}\n\n\tstatic mapFromOauthConfigEntityToDto(oauthConfig: OauthConfig | undefined): OauthConfigDto | undefined {\n\t\tif (!oauthConfig) return undefined;\n\t\treturn new OauthConfigDto({\n\t\t\tclientId: oauthConfig.clientId,\n\t\t\tclientSecret: oauthConfig.clientSecret,\n\t\t\tidpHint: oauthConfig.idpHint,\n\t\t\tredirectUri: oauthConfig.redirectUri,\n\t\t\tgrantType: oauthConfig.grantType,\n\t\t\ttokenEndpoint: oauthConfig.tokenEndpoint,\n\t\t\tauthEndpoint: oauthConfig.authEndpoint,\n\t\t\tresponseType: oauthConfig.responseType,\n\t\t\tscope: oauthConfig.scope,\n\t\t\tprovider: oauthConfig.provider,\n\t\t\tlogoutEndpoint: oauthConfig.logoutEndpoint,\n\t\t\tissuer: oauthConfig.issuer,\n\t\t\tjwksEndpoint: oauthConfig.jwksEndpoint,\n\t\t});\n\t}\n\n\tstatic mapFromEntitiesToDtos(entities: System[]): SystemDto[] {\n\t\treturn entities.map((entity) => this.mapFromEntityToDto(entity));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SystemModule.html":{"url":"modules/SystemModule.html","title":"module - SystemModule","body":"\n \n\n\n\n\n Modules\n SystemModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SystemModule\n\n\n\ncluster_SystemModule_exports\n\n\n\ncluster_SystemModule_providers\n\n\n\ncluster_SystemModule_imports\n\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\n\n\nSystemModule\n\nSystemModule\n\nSystemModule -->\n\nIdentityManagementModule->SystemModule\n\n\n\n\n\nSystemOidcService \n\nSystemOidcService \n\nSystemOidcService -->\n\nSystemModule->SystemOidcService \n\n\n\n\n\nSystemService \n\nSystemService \n\nSystemService -->\n\nSystemModule->SystemService \n\n\n\n\n\nSystemOidcService\n\nSystemOidcService\n\nSystemModule -->\n\nSystemOidcService->SystemModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nSystemModule -->\n\nSystemRepo->SystemModule\n\n\n\n\n\nSystemService\n\nSystemService\n\nSystemModule -->\n\nSystemService->SystemModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/system/system.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n SystemOidcService\n \n \n SystemRepo\n \n \n SystemService\n \n \n \n \n Imports\n \n \n IdentityManagementModule\n \n \n \n \n Exports\n \n \n SystemOidcService\n \n \n SystemService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { IdentityManagementModule } from '@shared/infra/identity-management/identity-management.module';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemService } from '@src/modules/system/service/system.service';\nimport { SystemOidcService } from './service/system-oidc.service';\n\n@Module({\n\timports: [IdentityManagementModule],\n\tproviders: [SystemRepo, SystemService, SystemOidcService],\n\texports: [SystemService, SystemOidcService],\n})\nexport class SystemModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemOidcMapper.html":{"url":"classes/SystemOidcMapper.html","title":"class - SystemOidcMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemOidcMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/mapper/system-oidc.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n Static\n mapFromEntityToDto\n \n \n Static\n mapFromOidcConfigEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n \n \n \n \n \n mapFromEntitiesToDtos(entities: System[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system-oidc.mapper.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n System[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OidcConfigDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n \n \n \n mapFromEntityToDto(entity: System)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system-oidc.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n System\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OidcConfigDto | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromOidcConfigEntityToDto\n \n \n \n \n \n \n \n mapFromOidcConfigEntityToDto(systemId: string, oidcConfig: OidcConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system-oidc.mapper.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n oidcConfig\n \n OidcConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OidcConfigDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OidcConfig, System } from '@shared/domain';\nimport { OidcConfigDto } from '@src/modules/system/service/dto/oidc-config.dto';\n\nexport class SystemOidcMapper {\n\tstatic mapFromEntityToDto(entity: System): OidcConfigDto | undefined {\n\t\tif (entity.oidcConfig) {\n\t\t\treturn SystemOidcMapper.mapFromOidcConfigEntityToDto(entity.id, entity.oidcConfig);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tstatic mapFromOidcConfigEntityToDto(systemId: string, oidcConfig: OidcConfig): OidcConfigDto {\n\t\treturn new OidcConfigDto({\n\t\t\tparentSystemId: systemId,\n\t\t\tclientId: oidcConfig.clientId,\n\t\t\tclientSecret: oidcConfig?.clientSecret,\n\t\t\tidpHint: oidcConfig.idpHint,\n\t\t\tauthorizationUrl: oidcConfig.authorizationUrl,\n\t\t\ttokenUrl: oidcConfig.tokenUrl,\n\t\t\tuserinfoUrl: oidcConfig.userinfoUrl,\n\t\t\tlogoutUrl: oidcConfig.logoutUrl,\n\t\t\tdefaultScopes: oidcConfig.defaultScopes,\n\t\t});\n\t}\n\n\tstatic mapFromEntitiesToDtos(entities: System[]): OidcConfigDto[] {\n\t\treturn entities\n\t\t\t.map((entity) => this.mapFromEntityToDto(entity))\n\t\t\t.filter((entity): entity is OidcConfigDto => entity !== undefined);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SystemOidcService.html":{"url":"injectables/SystemOidcService.html","title":"injectable - SystemOidcService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SystemOidcService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/system-oidc.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAll\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemRepo: SystemRepo)\n \n \n \n \n Defined in apps/server/src/modules/system/service/system-oidc.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemRepo\n \n \n SystemRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll()\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system-oidc.service.ts:21\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system-oidc.service.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport { EntityId, System, SystemTypeEnum } from '@shared/domain';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemOidcMapper } from '@src/modules/system/mapper/system-oidc.mapper';\nimport { OidcConfigDto } from './dto';\n\n@Injectable()\nexport class SystemOidcService {\n\tconstructor(private readonly systemRepo: SystemRepo) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst system = await this.systemRepo.findById(id);\n\t\tconst mappedEntity = SystemOidcMapper.mapFromEntityToDto(system);\n\t\tif (!mappedEntity) {\n\t\t\tthrow new EntityNotFoundError(System.name, { id });\n\t\t}\n\t\treturn mappedEntity;\n\t}\n\n\tasync findAll(): Promise {\n\t\tconst system = await this.systemRepo.findByFilter(SystemTypeEnum.OIDC);\n\t\treturn SystemOidcMapper.mapFromEntitiesToDtos(system);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SystemRepo.html":{"url":"injectables/SystemRepo.html","title":"injectable - SystemRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SystemRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/system/system.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAll\n \n \n Async\n findByFilter\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system.repo.ts:31\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n findByFilter\n \n \n \n \n \n \n \n findByFilter(type: SystemTypeEnum)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system.repo.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n SystemTypeEnum\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/system/system.repo.ts:8\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { System, SystemTypeEnum } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { SystemScope } from '@shared/repo/system/system-scope';\n\n@Injectable()\nexport class SystemRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn System;\n\t}\n\n\tasync findByFilter(type: SystemTypeEnum): Promise {\n\t\tconst scope = new SystemScope();\n\t\tswitch (type) {\n\t\t\tcase SystemTypeEnum.LDAP:\n\t\t\t\tscope.withLdapConfig();\n\t\t\t\tbreak;\n\t\t\tcase SystemTypeEnum.OAUTH:\n\t\t\t\tscope.withOauthConfig();\n\t\t\t\tbreak;\n\t\t\tcase SystemTypeEnum.OIDC:\n\t\t\t\tscope.withOidcConfig();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\tthrow new Error(`system type ${type} unknown`);\n\t\t}\n\t\treturn this._em.find(System, scope.query);\n\t}\n\n\tasync findAll(): Promise {\n\t\treturn this._em.find(System, {});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemResponseMapper.html":{"url":"classes/SystemResponseMapper.html","title":"class - SystemResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/mapper/system-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromDtoToListResponse\n \n \n Static\n mapFromDtoToResponse\n \n \n Static\n mapFromOauthConfigDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromDtoToListResponse\n \n \n \n \n \n \n \n mapFromDtoToListResponse(systems: SystemDto[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/controller/mapper/system-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systems\n \n SystemDto[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PublicSystemListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromDtoToResponse\n \n \n \n \n \n \n \n mapFromDtoToResponse(system: SystemDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/controller/mapper/system-response.mapper.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n SystemDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PublicSystemResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromOauthConfigDtoToResponse\n \n \n \n \n \n \n \n mapFromOauthConfigDtoToResponse(oauthConfigDto: OauthConfigDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/controller/mapper/system-response.mapper.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfigDto\n \n OauthConfigDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthConfigResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OauthConfigResponse } from '@src/modules/system/controller/dto/oauth-config.response';\nimport { OauthConfigDto } from '@src/modules/system/service/dto/oauth-config.dto';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { PublicSystemListResponse } from '../dto/public-system-list.response';\nimport { PublicSystemResponse } from '../dto/public-system-response';\n\nexport class SystemResponseMapper {\n\tstatic mapFromDtoToListResponse(systems: SystemDto[]): PublicSystemListResponse {\n\t\tconst systemResponses: PublicSystemResponse[] = systems.map(\n\t\t\t(system: SystemDto): PublicSystemResponse => this.mapFromDtoToResponse(system)\n\t\t);\n\n\t\tconst systemListResponse: PublicSystemListResponse = new PublicSystemListResponse(systemResponses);\n\n\t\treturn systemListResponse;\n\t}\n\n\tstatic mapFromDtoToResponse(system: SystemDto): PublicSystemResponse {\n\t\tconst systemResponse: PublicSystemResponse = new PublicSystemResponse({\n\t\t\tid: system.id || '',\n\t\t\ttype: system.type,\n\t\t\talias: system.alias,\n\t\t\tdisplayName: system.displayName,\n\t\t\toauthConfig: system.oauthConfig\n\t\t\t\t? SystemResponseMapper.mapFromOauthConfigDtoToResponse(system.oauthConfig)\n\t\t\t\t: undefined,\n\t\t});\n\n\t\treturn systemResponse;\n\t}\n\n\tstatic mapFromOauthConfigDtoToResponse(oauthConfigDto: OauthConfigDto): OauthConfigResponse {\n\t\tconst oauthConfigResponse: OauthConfigResponse = new OauthConfigResponse({\n\t\t\tclientId: oauthConfigDto.clientId,\n\t\t\t// clientSecret will not be mapped for security reasons,\n\t\t\tidpHint: oauthConfigDto.idpHint,\n\t\t\tredirectUri: oauthConfigDto.redirectUri,\n\t\t\tgrantType: oauthConfigDto.grantType,\n\t\t\ttokenEndpoint: oauthConfigDto.tokenEndpoint,\n\t\t\tauthEndpoint: oauthConfigDto.authEndpoint,\n\t\t\tresponseType: oauthConfigDto.responseType,\n\t\t\tscope: oauthConfigDto.scope,\n\t\t\tprovider: oauthConfigDto.provider,\n\t\t\tlogoutEndpoint: oauthConfigDto.logoutEndpoint,\n\t\t\tissuer: oauthConfigDto.issuer,\n\t\t\tjwksEndpoint: oauthConfigDto.jwksEndpoint,\n\t\t});\n\n\t\treturn oauthConfigResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemScope.html":{"url":"classes/SystemScope.html","title":"class - SystemScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/system/system-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withLdapConfig\n \n \n withOauthConfig\n \n \n withOidcConfig\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withLdapConfig\n \n \n \n \n \n \nwithLdapConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system-scope.ts:5\n \n \n\n\n \n \n\n \n Returns : SystemScope\n\n \n \n \n \n \n \n \n \n \n \n \n withOauthConfig\n \n \n \n \n \n \nwithOauthConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system-scope.ts:10\n \n \n\n\n \n \n\n \n Returns : SystemScope\n\n \n \n \n \n \n \n \n \n \n \n \n withOidcConfig\n \n \n \n \n \n \nwithOidcConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system-scope.ts:15\n \n \n\n\n \n \n\n \n Returns : SystemScope\n\n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { System } from '@shared/domain';\nimport { Scope } from '../scope';\n\nexport class SystemScope extends Scope {\n\twithLdapConfig(): SystemScope {\n\t\tthis.addQuery({ ldapConfig: { $ne: null } });\n\t\treturn this;\n\t}\n\n\twithOauthConfig(): SystemScope {\n\t\tthis.addQuery({ oauthConfig: { $ne: null } });\n\t\treturn this;\n\t}\n\n\twithOidcConfig(): SystemScope {\n\t\tthis.addQuery({ oidcConfig: { $ne: null } });\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SystemService.html":{"url":"injectables/SystemService.html","title":"injectable - SystemService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SystemService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/system.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findByType\n \n \n Private\n Async\n generateBrokerSystems\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemRepo: SystemRepo, idmOauthService: IdentityManagementOauthService)\n \n \n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemRepo\n \n \n SystemRepo\n \n \n \n No\n \n \n \n \n idmOauthService\n \n \n IdentityManagementOauthService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByType\n \n \n \n \n \n \n \n findByType(type?: SystemTypeEnum)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n SystemTypeEnum\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n generateBrokerSystems\n \n \n \n \n \n \n \n generateBrokerSystems(systems: System[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systems\n \n System[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(systemDto: SystemDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemDto\n \n SystemDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport { EntityId, System, SystemTypeEnum } from '@shared/domain';\nimport { IdentityManagementOauthService } from '@shared/infra/identity-management/identity-management-oauth.service';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemMapper } from '@src/modules/system/mapper/system.mapper';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\n\n@Injectable()\nexport class SystemService {\n\tconstructor(\n\t\tprivate readonly systemRepo: SystemRepo,\n\t\tprivate readonly idmOauthService: IdentityManagementOauthService\n\t) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tlet system = await this.systemRepo.findById(id);\n\t\t[system] = await this.generateBrokerSystems([system]);\n\t\tif (!system) {\n\t\t\tthrow new EntityNotFoundError(System.name, { id });\n\t\t}\n\t\treturn SystemMapper.mapFromEntityToDto(system);\n\t}\n\n\tasync findByType(type?: SystemTypeEnum): Promise {\n\t\tlet systems: System[];\n\t\tif (type && type === SystemTypeEnum.OAUTH) {\n\t\t\tconst oauthSystems = await this.systemRepo.findByFilter(SystemTypeEnum.OAUTH);\n\t\t\tconst oidcSystems = await this.systemRepo.findByFilter(SystemTypeEnum.OIDC);\n\t\t\tsystems = [...oauthSystems, ...oidcSystems];\n\t\t} else if (type) {\n\t\t\tsystems = await this.systemRepo.findByFilter(type);\n\t\t} else {\n\t\t\tsystems = await this.systemRepo.findAll();\n\t\t}\n\t\tsystems = await this.generateBrokerSystems(systems);\n\t\treturn SystemMapper.mapFromEntitiesToDtos(systems);\n\t}\n\n\tasync save(systemDto: SystemDto): Promise {\n\t\tlet system: System;\n\t\tif (systemDto.id) {\n\t\t\tsystem = await this.systemRepo.findById(systemDto.id);\n\t\t\tsystem.type = systemDto.type;\n\t\t\tsystem.alias = systemDto.alias;\n\t\t\tsystem.displayName = systemDto.displayName;\n\t\t\tsystem.oauthConfig = systemDto.oauthConfig;\n\t\t\tsystem.provisioningStrategy = systemDto.provisioningStrategy;\n\t\t\tsystem.provisioningUrl = systemDto.provisioningUrl;\n\t\t\tsystem.url = systemDto.url;\n\t\t} else {\n\t\t\tsystem = new System({\n\t\t\t\ttype: systemDto.type,\n\t\t\t\talias: systemDto.alias,\n\t\t\t\tdisplayName: systemDto.displayName,\n\t\t\t\toauthConfig: systemDto.oauthConfig,\n\t\t\t\tprovisioningStrategy: systemDto.provisioningStrategy,\n\t\t\t\tprovisioningUrl: systemDto.provisioningUrl,\n\t\t\t\turl: systemDto.url,\n\t\t\t});\n\t\t}\n\t\tawait this.systemRepo.save(system);\n\t\treturn SystemMapper.mapFromEntityToDto(system);\n\t}\n\n\tprivate async generateBrokerSystems(systems: System[]): Promise {\n\t\tif (!(await this.idmOauthService.isOauthConfigAvailable())) {\n\t\t\treturn systems.filter((system) => !(system.oidcConfig && !system.oauthConfig));\n\t\t}\n\t\tconst brokerConfig = await this.idmOauthService.getOauthConfig();\n\t\tlet generatedSystem: System;\n\t\treturn systems.map((system) => {\n\t\t\tif (system.oidcConfig && !system.oauthConfig) {\n\t\t\t\tgeneratedSystem = new System({\n\t\t\t\t\ttype: SystemTypeEnum.OAUTH,\n\t\t\t\t\talias: system.alias,\n\t\t\t\t\tdisplayName: system.displayName ? system.displayName : system.alias,\n\t\t\t\t\tprovisioningStrategy: system.provisioningStrategy,\n\t\t\t\t\tprovisioningUrl: system.provisioningUrl,\n\t\t\t\t\turl: system.url,\n\t\t\t\t});\n\t\t\t\tgeneratedSystem.id = system.id;\n\t\t\t\tgeneratedSystem.oauthConfig = { ...brokerConfig };\n\t\t\t\tgeneratedSystem.oauthConfig.idpHint = system.oidcConfig.idpHint;\n\t\t\t\tgeneratedSystem.oauthConfig.redirectUri += system.id;\n\t\t\t\treturn generatedSystem;\n\t\t\t}\n\t\t\treturn system;\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SystemUc.html":{"url":"injectables/SystemUc.html","title":"injectable - SystemUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SystemUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/uc/system.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findByFilter\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemService: SystemService)\n \n \n \n \n Defined in apps/server/src/modules/system/uc/system.uc.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findByFilter\n \n \n \n \n \n \n \n findByFilter(type?: SystemType, onlyOauth)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/uc/system.uc.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n type\n \n SystemType\n \n\n \n Yes\n \n\n \n \n\n \n \n onlyOauth\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/uc/system.uc.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport { EntityId, System, SystemType, SystemTypeEnum } from '@shared/domain';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { SystemService } from '@src/modules/system/service/system.service';\n\n@Injectable()\nexport class SystemUc {\n\tconstructor(private readonly systemService: SystemService) {}\n\n\tasync findByFilter(type?: SystemType, onlyOauth = false): Promise {\n\t\tlet systems: SystemDto[];\n\n\t\tif (onlyOauth) {\n\t\t\tsystems = await this.systemService.findByType(SystemTypeEnum.OAUTH);\n\t\t} else {\n\t\t\tsystems = await this.systemService.findByType(type);\n\t\t}\n\n\t\tsystems = systems.filter((system: SystemDto) => system.ldapActive !== false);\n\n\t\treturn systems;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst system: SystemDto = await this.systemService.findById(id);\n\n\t\tif (system.ldapActive === false) {\n\t\t\tthrow new EntityNotFoundError(System.name, { id });\n\t\t}\n\n\t\treturn system;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TargetInfoMapper.html":{"url":"classes/TargetInfoMapper.html","title":"class - TargetInfoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TargetInfoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/mapper/target-info.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(target: NewsTarget)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/target-info.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n target\n \n NewsTarget\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TargetInfoResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NewsTarget } from '@shared/domain';\nimport { TargetInfoResponse } from '../controller/dto/target-info.response';\n\nexport class TargetInfoMapper {\n\tstatic mapToResponse(target: NewsTarget): TargetInfoResponse {\n\t\tconst dto = new TargetInfoResponse({ id: target.id, name: target.name });\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TargetInfoResponse.html":{"url":"classes/TargetInfoResponse.html","title":"class - TargetInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TargetInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/target-info.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: TargetInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/target-info.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n TargetInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}', description: 'The id of the Target entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/target-info.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The name of the Target entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/target-info.response.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class TargetInfoResponse {\n\tconstructor({ id, name }: TargetInfoResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'The id of the Target entity',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The name of the Target entity',\n\t})\n\tname: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Task.html":{"url":"entities/Task.html","title":"entity - Task","body":"\n \n\n\n\n\n\n\n\n Entities\n Task\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/task.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n Optional\n course\n \n \n \n \n creator\n \n \n \n description\n \n \n \n descriptionInputFormat\n \n \n \n \n Optional\n dueDate\n \n \n \n \n finished\n \n \n \n \n Optional\n lesson\n \n \n \n name\n \n \n \n private\n \n \n \n Optional\n publicSubmissions\n \n \n \n \n school\n \n \n \n submissions\n \n \n \n Optional\n teamSubmissions\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n course\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('Course', {fieldName: 'courseId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:75\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('User', {fieldName: 'teacherId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:71\n \n \n\n\n \n \n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n descriptionInputFormat\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n finished\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('User', undefined, {fieldName: 'archived'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:90\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n lesson\n \n \n \n \n \n \n Type : LessonEntity\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('LessonEntity', {fieldName: 'lessonId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:83\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n private\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:61\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n publicSubmissions\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:64\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne(undefined, {fieldName: 'schoolId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:79\n \n \n\n\n \n \n \n \n \n \n \n \n \n submissions\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @OneToMany('Submission', 'task')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:86\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n teamSubmissions\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:67\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { InputFormat } from '@shared/domain/types/input-format.types';\nimport type { IEntityWithSchool } from '../interface';\nimport type { ILearnroomElement } from '../interface/learnroom';\nimport type { EntityId } from '../types/entity-id';\nimport type { ITaskProperties, ITaskStatus } from '../types/task.types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { LessonEntity } from './lesson.entity';\nimport type { Submission } from './submission.entity';\nimport { User } from './user.entity';\n\nexport class TaskWithStatusVo {\n\ttask!: Task;\n\n\tstatus!: ITaskStatus;\n\n\tconstructor(task: Task, status: ITaskStatus) {\n\t\tthis.task = task;\n\t\tthis.status = status;\n\t}\n}\n\nexport type TaskParentDescriptions = {\n\tcourseName: string;\n\tcourseId: string;\n\tlessonName: string;\n\tlessonHidden: boolean;\n\tcolor: string;\n};\n\nexport interface ITaskParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'homeworks' })\n@Index({ properties: ['private', 'dueDate', 'finished'] })\n@Index({ properties: ['id', 'private'] })\n@Index({ properties: ['finished', 'course'] })\n@Index({ properties: ['finished', 'course'] })\nexport class Task extends BaseEntityWithTimestamps implements ILearnroomElement, IEntityWithSchool {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tdescription: string;\n\n\t@Property()\n\tdescriptionInputFormat: InputFormat;\n\n\t@Property({ nullable: true })\n\tavailableDate?: Date;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdueDate?: Date;\n\n\t@Property()\n\tprivate = true;\n\n\t@Property({ nullable: true })\n\tpublicSubmissions?: boolean;\n\n\t@Property({ nullable: true })\n\tteamSubmissions?: boolean;\n\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'teacherId' })\n\tcreator: User;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId', nullable: true })\n\tcourse?: Course;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToOne('LessonEntity', { fieldName: 'lessonId', nullable: true })\n\tlesson?: LessonEntity; // In database exist also null, but it can not set.\n\n\t@OneToMany('Submission', 'task')\n\tsubmissions = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'archived' })\n\tfinished = new Collection(this);\n\n\tconstructor(props: ITaskProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.description = props.description || '';\n\t\tthis.descriptionInputFormat = props.descriptionInputFormat || InputFormat.RICH_TEXT_CK4;\n\t\tthis.availableDate = props.availableDate;\n\t\tthis.dueDate = props.dueDate;\n\n\t\tif (props.private !== undefined) this.private = props.private;\n\t\tthis.creator = props.creator;\n\t\tthis.course = props.course;\n\t\tthis.school = props.school;\n\t\tthis.lesson = props.lesson;\n\t\tthis.submissions.set(props.submissions || []);\n\t\tthis.finished.set(props.finished || []);\n\t\tthis.publicSubmissions = props.publicSubmissions || false;\n\t\tthis.teamSubmissions = props.teamSubmissions || false;\n\t}\n\n\tprivate getSubmissionItems(): Submission[] {\n\t\tif (!this.submissions || !this.submissions.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Submissions items are not loaded.');\n\t\t}\n\t\tconst submissions = this.submissions.getItems();\n\n\t\treturn submissions;\n\t}\n\n\tprivate getFinishedUserIds(): EntityId[] {\n\t\tif (!this.finished) {\n\t\t\tthrow new InternalServerErrorException('Task.finished is undefined. The task need to be populated.');\n\t\t}\n\n\t\tconst finishedObjectIds = this.finished.getIdentifiers('_id');\n\t\tconst finishedIds = finishedObjectIds.map((id): string => id.toString());\n\n\t\treturn finishedIds;\n\t}\n\n\tprivate getParent(): ITaskParent | User {\n\t\tconst parent = this.lesson || this.course || this.creator;\n\n\t\treturn parent;\n\t}\n\n\tprivate getMaxSubmissions(): number {\n\t\tconst parent = this.getParent();\n\t\t// For draft (user as parent) propaly user is not a student, but for maxSubmission one is valid result\n\t\tconst maxSubmissions = parent instanceof User ? 1 : parent.getStudentIds().length;\n\n\t\treturn maxSubmissions;\n\t}\n\n\tprivate isFinishedForUser(user: User): boolean {\n\t\tconst finishedUserIds = this.getFinishedUserIds();\n\t\tconst isUserInFinishedUser = finishedUserIds.some((finishedUserId) => finishedUserId === user.id);\n\n\t\tconst isCourseFinished = this.course ? this.course.isFinished() : false;\n\n\t\tconst isFinishedForUser = isUserInFinishedUser || isCourseFinished;\n\n\t\treturn isFinishedForUser;\n\t}\n\n\tpublic isDraft(): boolean {\n\t\t// private can be undefined in the database\n\t\treturn !!this.private;\n\t}\n\n\tpublic isPublished(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic isPlanned(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate getSubmittedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst submittedSubmissions = submissions.filter((submission) => submission.isSubmitted());\n\n\t\treturn submittedSubmissions;\n\t}\n\n\tpublic areSubmissionsPublic(): boolean {\n\t\tconst areSubmissionsPublic = !!this.publicSubmissions;\n\n\t\treturn areSubmissionsPublic;\n\t}\n\n\tprivate getGradedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst gradedSubmissions = submissions.filter((submission) => submission.isGraded());\n\n\t\treturn gradedSubmissions;\n\t}\n\n\tprivate isSubmittedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isSubmitted = submissions.some((submission) => submission.isSubmittedForUser(user));\n\n\t\treturn isSubmitted;\n\t}\n\n\tprivate isGradedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isGraded = submissions.some((submission) => submission.isGradedForUser(user));\n\n\t\treturn isGraded;\n\t}\n\n\tprivate calculateNumberOfSubmitters(submissions: Submission[]): number {\n\t\tlet taskSubmitterIds: EntityId[] = [];\n\n\t\tsubmissions.forEach((submission) => {\n\t\t\tconst submitterIds = submission.getSubmitterIds();\n\t\t\ttaskSubmitterIds = [...taskSubmitterIds, ...submitterIds];\n\t\t});\n\n\t\tconst uniqueIds = [...new Set(taskSubmitterIds)];\n\t\tconst numberOfSubmitters = uniqueIds.length;\n\n\t\treturn numberOfSubmitters;\n\t}\n\n\tprivate isUserSubstitutionTeacherInCourse(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.course ? this.course.isUserSubstitutionTeacher(user) : false;\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic createTeacherStatusForUser(user: User): ITaskStatus {\n\t\tconst submittedSubmissions = this.getSubmittedSubmissions();\n\t\tconst gradedSubmissions = this.getGradedSubmissions();\n\n\t\tconst numberOfSubmitters = this.calculateNumberOfSubmitters(submittedSubmissions);\n\t\tconst numberOfSubmittersWithGrade = this.calculateNumberOfSubmitters(gradedSubmissions);\n\t\tconst maxSubmissions = this.getMaxSubmissions();\n\t\tconst isDraft = this.isDraft();\n\t\tconst isFinished = this.isFinishedForUser(user);\n\t\tconst isSubstitutionTeacher = this.isUserSubstitutionTeacherInCourse(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: numberOfSubmitters,\n\t\t\tgraded: numberOfSubmittersWithGrade,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\tpublic createStudentStatusForUser(user: User): ITaskStatus {\n\t\tconst isSubmitted = this.isSubmittedForUser(user);\n\t\tconst isGraded = this.isGradedForUser(user);\n\t\tconst maxSubmissions = 1;\n\t\tconst isDraft = this.isDraft();\n\t\tconst isSubstitutionTeacher = false;\n\t\tconst isFinished = this.isFinishedForUser(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: isSubmitted ? 1 : 0,\n\t\t\tgraded: isGraded ? 1 : 0,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\t// TODO: based on the parent relationship\n\tpublic getParentData(): TaskParentDescriptions {\n\t\tlet descriptions: TaskParentDescriptions;\n\t\tif (this.course) {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: this.course.name,\n\t\t\t\tcourseId: this.course.id,\n\t\t\t\tlessonName: this.lesson ? this.lesson.name : '',\n\t\t\t\tlessonHidden: this.lesson ? this.lesson.hidden : false,\n\t\t\t\tcolor: this.course.color,\n\t\t\t};\n\t\t} else {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: '',\n\t\t\t\tcourseId: '',\n\t\t\t\tlessonName: '',\n\t\t\t\tlessonHidden: false,\n\t\t\t\tcolor: '#ACACAC',\n\t\t\t};\n\t\t}\n\n\t\treturn descriptions;\n\t}\n\n\tpublic finishForUser(user: User): void {\n\t\tthis.finished.add(user);\n\t}\n\n\tpublic restoreForUser(user: User): void {\n\t\tthis.finished.remove(user);\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.school.id;\n\t}\n\n\tpublic publish(): void {\n\t\tthis.private = false;\n\t\tthis.availableDate = new Date();\n\t}\n\n\tpublic unpublish(): void {\n\t\tthis.private = true;\n\t}\n}\n\nexport function isTask(reference: unknown): reference is Task {\n\treturn reference instanceof Task;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/TaskApiModule.html":{"url":"modules/TaskApiModule.html","title":"module - TaskApiModule","body":"\n \n\n\n\n\n Modules\n TaskApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_TaskApiModule\n\n\n\ncluster_TaskApiModule_imports\n\n\n\ncluster_TaskApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nTaskApiModule\n\nTaskApiModule\n\nTaskApiModule -->\n\nAuthorizationModule->TaskApiModule\n\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\nTaskApiModule -->\n\nCopyHelperModule->TaskApiModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nTaskApiModule -->\n\nTaskModule->TaskApiModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nTaskApiModule -->\n\nCourseRepo->TaskApiModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nTaskApiModule -->\n\nLessonRepo->TaskApiModule\n\n\n\n\n\nSubmissionUc\n\nSubmissionUc\n\nTaskApiModule -->\n\nSubmissionUc->TaskApiModule\n\n\n\n\n\nTaskCopyUC\n\nTaskCopyUC\n\nTaskApiModule -->\n\nTaskCopyUC->TaskApiModule\n\n\n\n\n\nTaskRepo\n\nTaskRepo\n\nTaskApiModule -->\n\nTaskRepo->TaskApiModule\n\n\n\n\n\nTaskUC\n\nTaskUC\n\nTaskApiModule -->\n\nTaskUC->TaskApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/task/task-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CourseRepo\n \n \n LessonRepo\n \n \n SubmissionUc\n \n \n TaskCopyUC\n \n \n TaskRepo\n \n \n TaskUC\n \n \n \n \n Controllers\n \n \n TaskController\n \n \n SubmissionController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CopyHelperModule\n \n \n TaskModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CourseRepo, LessonRepo, TaskRepo } from '@shared/repo';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { CopyHelperModule } from '@src/modules/copy-helper/copy-helper.module';\nimport { SubmissionController, TaskController } from './controller';\nimport { TaskModule } from './task.module';\nimport { SubmissionUc, TaskCopyUC, TaskUC } from './uc';\n\n@Module({\n\timports: [AuthorizationModule, CopyHelperModule, TaskModule],\n\tcontrollers: [TaskController, SubmissionController],\n\tproviders: [TaskUC, TaskRepo, LessonRepo, CourseRepo, TaskCopyUC, SubmissionUc],\n})\nexport class TaskApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/TaskBoardElement.html":{"url":"entities/TaskBoardElement.html","title":"entity - TaskBoardElement","body":"\n \n\n\n\n\n\n\n\n Entities\n TaskBoardElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/task-boardelement.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : Task\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('Task', {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/task-boardelement.entity.ts:16\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { Task } from '../task.entity';\nimport { BoardElement, BoardElementType } from './boardelement.entity';\n\n@Entity({ discriminatorValue: BoardElementType.Task })\nexport class TaskBoardElement extends BoardElement {\n\tconstructor(props: { target: Task }) {\n\t\tsuper(props);\n\t\tthis.boardElementType = BoardElementType.Task;\n\t}\n\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Task', { nullable: true })\n\ttarget!: Task;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/TaskController.html":{"url":"controllers/TaskController.html","title":"controller - TaskController","body":"\n \n\n\n\n\n\n\n Controllers\n TaskController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/task.controller.ts\n \n\n \n Prefix\n \n \n tasks\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n copyTask\n \n \n \n Async\n delete\n \n \n \n Async\n findAll\n \n \n \n Async\n findAllFinished\n \n \n Private\n Async\n findAllTasks\n \n \n \n Async\n finish\n \n \n \n Async\n restore\n \n \n \n Async\n revertPublished\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(currentUser: ICurrentUser, urlParams: TaskUrlParams, params: TaskCopyApiParams)\n \n \n\n \n \n Decorators : \n \n @Post(':taskId/copy')@RequestTimeout(undefined.INCOMING_REQUEST_TIMEOUT_COPY_API)\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n TaskCopyApiParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(urlParams: TaskUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':taskId')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll(currentUser: ICurrentUser, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllFinished\n \n \n \n \n \n \n \n findAllFinished(currentUser: ICurrentUser, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get('finished')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findAllTasks\n \n \n \n \n \n \n \n findAllTasks(currentUser: ICurrentUser, pagination: PaginationParams, finished)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n \n \n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n \n \n\n \n \n finished\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n finish\n \n \n \n \n \n \n \n finish(urlParams: TaskUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':taskId/finish')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n restore\n \n \n \n \n \n \n \n restore(urlParams: TaskUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':taskId/restore')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n revertPublished\n \n \n \n \n \n \n \n revertPublished(urlParams: TaskUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':taskId/revertPublished')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { RequestTimeout } from '@shared/common';\nimport { PaginationParams } from '@shared/controller/';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CopyApiResponse, CopyMapper } from '@src/modules/copy-helper';\nimport { serverConfig } from '@src/modules/server/server.config';\nimport { TaskMapper } from '../mapper';\nimport { TaskCopyUC } from '../uc/task-copy.uc';\nimport { TaskUC } from '../uc/task.uc';\nimport { TaskListResponse, TaskResponse, TaskUrlParams } from './dto';\nimport { TaskCopyApiParams } from './dto/task-copy.params';\n\n@ApiTags('Task')\n@Authenticate('jwt')\n@Controller('tasks')\nexport class TaskController {\n\tconstructor(private readonly taskUc: TaskUC, private readonly taskCopyUc: TaskCopyUC) {}\n\n\t@Get()\n\tasync findAll(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\treturn this.findAllTasks(currentUser, pagination);\n\t}\n\n\t@Get('finished')\n\tasync findAllFinished(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\treturn this.findAllTasks(currentUser, pagination, true);\n\t}\n\n\tprivate async findAllTasks(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() pagination: PaginationParams,\n\t\tfinished = false\n\t): Promise {\n\t\tconst [tasksWithStatus, total] = finished\n\t\t\t? await this.taskUc.findAllFinished(currentUser.userId, pagination)\n\t\t\t: await this.taskUc.findAll(currentUser.userId, pagination);\n\n\t\tconst taskResponses = tasksWithStatus.map((task) => TaskMapper.mapToResponse(task));\n\n\t\tconst { skip, limit } = pagination;\n\t\tconst result = new TaskListResponse(taskResponses, total, skip, limit);\n\t\treturn result;\n\t}\n\n\t@Patch(':taskId/finish')\n\tasync finish(@Param() urlParams: TaskUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst task = await this.taskUc.changeFinishedForUser(currentUser.userId, urlParams.taskId, true);\n\n\t\tconst response = TaskMapper.mapToResponse(task);\n\n\t\treturn response;\n\t}\n\n\t@Patch(':taskId/restore')\n\tasync restore(@Param() urlParams: TaskUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst task = await this.taskUc.changeFinishedForUser(currentUser.userId, urlParams.taskId, false);\n\n\t\tconst response = TaskMapper.mapToResponse(task);\n\n\t\treturn response;\n\t}\n\n\t@Patch(':taskId/revertPublished')\n\tasync revertPublished(\n\t\t@Param() urlParams: TaskUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst task = await this.taskUc.revertPublished(currentUser.userId, urlParams.taskId);\n\n\t\tconst response = TaskMapper.mapToResponse(task);\n\n\t\treturn response;\n\t}\n\n\t@Post(':taskId/copy')\n\t@RequestTimeout(serverConfig().INCOMING_REQUEST_TIMEOUT_COPY_API)\n\tasync copyTask(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: TaskUrlParams,\n\t\t@Body() params: TaskCopyApiParams\n\t): Promise {\n\t\tconst copyStatus = await this.taskCopyUc.copyTask(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.taskId,\n\t\t\tCopyMapper.mapTaskCopyToDomain(params, currentUser.userId)\n\t\t);\n\t\tconst dto = CopyMapper.mapToResponse(copyStatus);\n\t\treturn dto;\n\t}\n\n\t@Delete(':taskId')\n\tasync delete(@Param() urlParams: TaskUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst result = await this.taskUc.delete(currentUser.userId, urlParams.taskId);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskCopyApiParams.html":{"url":"classes/TaskCopyApiParams.html","title":"class - TaskCopyApiParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskCopyApiParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task-copy.params.ts\n \n\n\n \n Description\n \n \n DTO for creating a task copy.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()@ApiPropertyOptional({pattern: '[a-f0-9]{24}', description: 'Destination course parent Id the task is copied to'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-copy.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()@ApiPropertyOptional({pattern: '[a-f0-9]{24}', description: 'Destination lesson parent Id the task is copied to'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-copy.params.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsMongoId, IsOptional } from 'class-validator';\n\n/**\n * DTO for creating a task copy.\n */\nexport class TaskCopyApiParams {\n\t@IsOptional()\n\t@IsMongoId()\n\t@ApiPropertyOptional({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Destination course parent Id the task is copied to',\n\t})\n\tcourseId?: string;\n\n\t@IsOptional()\n\t@IsMongoId()\n\t@ApiPropertyOptional({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Destination lesson parent Id the task is copied to',\n\t})\n\tlessonId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskCopyService.html":{"url":"injectables/TaskCopyService.html","title":"injectable - TaskCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskCopyService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/service/task-copy.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyTask\n \n \n Private\n Async\n copyTaskEntity\n \n \n Private\n deriveCopyStatus\n \n \n Private\n Async\n updateFileUrls\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(taskRepo: TaskRepo, copyHelperService: CopyHelperService, copyFilesService: CopyFilesService)\n \n \n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n copyFilesService\n \n \n CopyFilesService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(params: TaskCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyTaskEntity\n \n \n \n \n \n \n \n copyTaskEntity(params: TaskCopyParams, originalTask: Task, user: User, destinationCourse: Course | undefined, destinationLesson: LessonEntity | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskCopyParams\n \n\n \n No\n \n\n\n \n \n originalTask\n \n Task\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n destinationCourse\n \n Course | undefined\n \n\n \n No\n \n\n\n \n \n destinationLesson\n \n LessonEntity | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deriveCopyStatus\n \n \n \n \n \n \n \n deriveCopyStatus(fileCopyStatus: CopyStatus, originalTask: Task, taskCopy: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileCopyStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n originalTask\n \n Task\n \n\n \n No\n \n\n\n \n \n taskCopy\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateFileUrls\n \n \n \n \n \n \n \n updateFileUrls(task: Task, fileUrlReplacements: FileUrlReplacement[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n fileUrlReplacements\n \n FileUrlReplacement[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Course, LessonEntity, Task, User } from '@shared/domain/entity';\nimport { TaskRepo } from '@shared/repo';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@src/modules/copy-helper';\nimport { CopyFilesService } from '@src/modules/files-storage-client';\nimport { FileUrlReplacement } from '@src/modules/files-storage-client/service/copy-files.service';\n\ntype TaskCopyParams = {\n\toriginalTaskId: EntityId;\n\tdestinationCourse?: Course;\n\tdestinationLesson?: LessonEntity;\n\tuser: User;\n\tcopyName?: string;\n};\n\n@Injectable()\nexport class TaskCopyService {\n\tconstructor(\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly copyHelperService: CopyHelperService,\n\t\tprivate readonly copyFilesService: CopyFilesService\n\t) {}\n\n\tasync copyTask(params: TaskCopyParams): Promise {\n\t\tconst { user, destinationLesson, destinationCourse } = params;\n\t\tconst originalTask = await this.taskRepo.findById(params.originalTaskId);\n\n\t\tconst taskCopy = await this.copyTaskEntity(params, originalTask, user, destinationCourse, destinationLesson);\n\n\t\tconst { fileUrlReplacements, fileCopyStatus } = await this.copyFilesService.copyFilesOfEntity(\n\t\t\toriginalTask,\n\t\t\ttaskCopy,\n\t\t\tuser.id\n\t\t);\n\n\t\tawait this.updateFileUrls(taskCopy, fileUrlReplacements);\n\n\t\treturn this.deriveCopyStatus(fileCopyStatus, originalTask, taskCopy);\n\t}\n\n\tprivate async copyTaskEntity(\n\t\tparams: TaskCopyParams,\n\t\toriginalTask: Task,\n\t\tuser: User,\n\t\tdestinationCourse: Course | undefined,\n\t\tdestinationLesson: LessonEntity | undefined\n\t) {\n\t\tconst taskCopy = new Task({\n\t\t\tname: params.copyName || originalTask.name,\n\t\t\tdescription: originalTask.description,\n\t\t\tdescriptionInputFormat: originalTask.descriptionInputFormat,\n\t\t\tschool: user.school,\n\t\t\tcreator: user,\n\t\t\tcourse: destinationCourse,\n\t\t\tlesson: destinationLesson,\n\t\t\tteamSubmissions: originalTask.teamSubmissions,\n\t\t});\n\t\tawait this.taskRepo.createTask(taskCopy);\n\t\treturn taskCopy;\n\t}\n\n\tprivate async updateFileUrls(task: Task, fileUrlReplacements: FileUrlReplacement[]) {\n\t\tfileUrlReplacements.forEach(({ regex, replacement }) => {\n\t\t\ttask.description = task.description.replace(regex, replacement);\n\t\t});\n\t\tawait this.taskRepo.save(task);\n\t}\n\n\tprivate deriveCopyStatus(fileCopyStatus: CopyStatus, originalTask: Task, taskCopy: Task) {\n\t\tconst elements = [\n\t\t\t{\n\t\t\t\ttype: CopyElementType.METADATA,\n\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.CONTENT,\n\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.SUBMISSION_GROUP,\n\t\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t\t},\n\t\t\tfileCopyStatus,\n\t\t];\n\n\t\tconst status: CopyStatus = {\n\t\t\ttitle: taskCopy.name,\n\t\t\ttype: CopyElementType.TASK,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\tcopyEntity: taskCopy,\n\t\t\toriginalEntity: originalTask,\n\t\t\telements,\n\t\t};\n\t\treturn status;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskCopyUC.html":{"url":"injectables/TaskCopyUC.html","title":"injectable - TaskCopyUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskCopyUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/uc/task-copy.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyTask\n \n \n Private\n featureEnabled\n \n \n Private\n Async\n getCopyName\n \n \n Private\n Async\n getDestinationCourse\n \n \n Private\n Async\n getDestinationLesson\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRepo: CourseRepo, lessonRepo: LessonRepo, authorisation: AuthorizationService, taskCopyService: TaskCopyService, taskRepo: TaskRepo, copyHelperService: CopyHelperService)\n \n \n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n authorisation\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n taskCopyService\n \n \n TaskCopyService\n \n \n \n No\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(userId: EntityId, taskId: EntityId, parentParams: TaskCopyParentParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentParams\n \n TaskCopyParentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n featureEnabled\n \n \n \n \n \n \n \n featureEnabled()\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:92\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getCopyName\n \n \n \n \n \n \n \n getCopyName(originalTaskName: string, parentCourseId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalTaskName\n \n string\n \n\n \n No\n \n\n\n \n \n parentCourseId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getDestinationCourse\n \n \n \n \n \n \n \n getDestinationCourse(courseId: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getDestinationLesson\n \n \n \n \n \n \n \n getDestinationLesson(lessonId: string | undefined, user: User)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonId\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { ForbiddenException, Injectable, InternalServerErrorException, NotFoundException } from '@nestjs/common';\nimport { Course, EntityId, LessonEntity, User } from '@shared/domain';\nimport { CourseRepo, LessonRepo, TaskRepo } from '@shared/repo';\nimport {\n\tAction,\n\tAuthorizableReferenceType,\n\tAuthorizationContextBuilder,\n\tAuthorizationService,\n} from '@src/modules/authorization';\nimport { CopyHelperService, CopyStatus } from '@src/modules/copy-helper';\nimport { TaskCopyService } from '../service';\nimport { TaskCopyParentParams } from '../types';\n\n@Injectable()\nexport class TaskCopyUC {\n\tconstructor(\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly authorisation: AuthorizationService,\n\t\tprivate readonly taskCopyService: TaskCopyService,\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly copyHelperService: CopyHelperService\n\t) {}\n\n\tasync copyTask(userId: EntityId, taskId: EntityId, parentParams: TaskCopyParentParams): Promise {\n\t\tthis.featureEnabled();\n\t\tconst user = await this.authorisation.getUserWithPermissions(userId);\n\t\tconst originalTask = await this.taskRepo.findById(taskId);\n\t\tif (!this.authorisation.hasPermission(user, originalTask, AuthorizationContextBuilder.read([]))) {\n\t\t\tthrow new NotFoundException('could not find task to copy');\n\t\t}\n\n\t\tconst destinationCourse = await this.getDestinationCourse(parentParams.courseId);\n\t\tif (parentParams.courseId) {\n\t\t\tawait this.authorisation.checkPermissionByReferences(\n\t\t\t\tuserId,\n\t\t\t\tAuthorizableReferenceType.Course,\n\t\t\t\tparentParams.courseId,\n\t\t\t\t{\n\t\t\t\t\taction: Action.write,\n\t\t\t\t\trequiredPermissions: [],\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tconst destinationLesson = await this.getDestinationLesson(parentParams.lessonId, user);\n\t\tconst copyName = await this.getCopyName(originalTask.name, parentParams.courseId);\n\n\t\tconst status = await this.taskCopyService.copyTask({\n\t\t\toriginalTaskId: originalTask.id,\n\t\t\tdestinationCourse,\n\t\t\tdestinationLesson,\n\t\t\tuser,\n\t\t\tcopyName,\n\t\t});\n\n\t\treturn status;\n\t}\n\n\tprivate async getCopyName(originalTaskName: string, parentCourseId: EntityId | undefined) {\n\t\tlet existingNames: string[] = [];\n\t\tif (parentCourseId) {\n\t\t\tconst [existingTasks] = await this.taskRepo.findBySingleParent('', parentCourseId);\n\t\t\texistingNames = existingTasks.map((t) => t.name);\n\t\t}\n\t\treturn this.copyHelperService.deriveCopyName(originalTaskName, existingNames);\n\t}\n\n\tprivate async getDestinationCourse(courseId: string | undefined): Promise {\n\t\tif (courseId === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst destinationCourse = await this.courseRepo.findById(courseId);\n\n\t\treturn destinationCourse;\n\t}\n\n\tprivate async getDestinationLesson(lessonId: string | undefined, user: User): Promise {\n\t\tif (lessonId === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst destinationLesson = await this.lessonRepo.findById(lessonId);\n\t\tif (!this.authorisation.hasPermission(user, destinationLesson, AuthorizationContextBuilder.write([]))) {\n\t\t\tthrow new ForbiddenException('you dont have permission to add to this lesson');\n\t\t}\n\t\treturn destinationLesson;\n\t}\n\n\tprivate featureEnabled() {\n\t\tconst enabled = Configuration.get('FEATURE_COPY_SERVICE_ENABLED') as boolean;\n\t\tif (!enabled) {\n\t\t\tthrow new InternalServerErrorException('Copy Feature not enabled');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskCreateParams.html":{"url":"classes/TaskCreateParams.html","title":"class - TaskCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task-create.params.ts\n \n\n\n\n\n \n Implements\n \n \n ITaskCreate\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'Date since the task is published', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsMongoId()@IsOptional()@ApiPropertyOptional({description: 'The id of an course object.', pattern: '[a-f0-9]{24}', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@SanitizeHtml(InputFormat.RICH_TEXT_CK5)@ApiPropertyOptional({description: 'The description of the task'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'Date until the task submissions can be sent', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsMongoId()@IsOptional()@ApiPropertyOptional({description: 'The id of an lesson object.', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'The title of the task', required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:33\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsDate, IsMongoId, IsOptional, IsString } from 'class-validator';\nimport { InputFormat, ITaskCreate } from '@shared/domain';\nimport { SanitizeHtml } from '@shared/controller';\n\nexport class TaskCreateParams implements ITaskCreate {\n\t@IsString()\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The id of an course object.',\n\t\tpattern: '[a-f0-9]{24}',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcourseId?: string;\n\n\t@IsString()\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The id of an lesson object.',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tlessonId?: string;\n\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'The title of the task',\n\t\trequired: true,\n\t})\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@SanitizeHtml(InputFormat.RICH_TEXT_CK5)\n\t@ApiPropertyOptional({\n\t\tdescription: 'The description of the task',\n\t})\n\tdescription?: string;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date since the task is published',\n\t\ttype: Date,\n\t})\n\tavailableDate?: Date;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date until the task submissions can be sent',\n\t\ttype: Date,\n\t})\n\tdueDate?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskFactory.html":{"url":"classes/TaskFactory.html","title":"class - TaskFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/task.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n draft\n \n \n finished\n \n \n isPlanned\n \n \n isPublished\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n draft\n \n \n \n \n \n \ndraft()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/task.factory.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n finished\n \n \n \n \n \n \nfinished(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/task.factory.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isPlanned\n \n \n \n \n \n \nisPlanned()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/task.factory.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n isPublished\n \n \n \n \n \n \nisPublished()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/task.factory.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ITaskProperties, Task } from '@shared/domain';\nimport { User } from '@shared/domain/entity';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\nimport { schoolFactory } from './school.factory';\nimport { userFactory } from './user.factory';\n\nconst yesterday = new Date(Date.now() - 86400000);\n\nclass TaskFactory extends BaseFactory {\n\tdraft(): this {\n\t\tconst params: DeepPartial = { private: true };\n\n\t\treturn this.params(params);\n\t}\n\n\tisPlanned(): this {\n\t\tconst params: DeepPartial = { private: false, availableDate: new Date(Date.now() + 10000) };\n\n\t\treturn this.params(params);\n\t}\n\n\tisPublished(): this {\n\t\tconst params: DeepPartial = { private: false, availableDate: new Date(Date.now() - 10000) };\n\n\t\treturn this.params(params);\n\t}\n\n\tfinished(user: User): this {\n\t\tconst params: DeepPartial = { finished: [user] };\n\t\treturn this.params(params);\n\t}\n}\n\nexport const taskFactory = TaskFactory.define(Task, ({ sequence }) => {\n\tconst school = schoolFactory.build();\n\tconst creator = userFactory.build({ school });\n\t// private is by default in constructor true, but in the most test cases we need private: false\n\treturn {\n\t\tname: `task #${sequence}`,\n\t\tprivate: false,\n\t\tavailableDate: yesterday,\n\t\tcreator,\n\t\tschool,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskListResponse.html":{"url":"classes/TaskListResponse.html","title":"class - TaskListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: TaskResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:67\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n TaskResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : TaskResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:74\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { RichText } from '@shared/domain';\nimport { TaskStatusResponse } from './task-status.response';\n\n/**\n * DTO for returning a task document via api.\n */\nexport class TaskResponse {\n\tconstructor({ id, name, courseName, courseId, createdAt, updatedAt, status }: TaskResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t\tthis.courseName = courseName;\n\t\tthis.courseId = courseId;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.lessonHidden = false;\n\t\tthis.status = status;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tavailableDate?: Date;\n\n\t@ApiPropertyOptional()\n\tdueDate?: Date;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tcourseName: string = '' as string;\n\n\t@ApiPropertyOptional()\n\tlessonName?: string;\n\n\t@ApiProperty()\n\tcourseId: string = '' as string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Task description object, with props content: string and type: input format types',\n\t\ttype: RichText,\n\t})\n\t@DecodeHtmlEntities()\n\tdescription?: RichText;\n\n\t@ApiProperty()\n\tlessonHidden: boolean;\n\n\t@ApiPropertyOptional()\n\tdisplayColor?: string;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\tstatus: TaskStatusResponse;\n}\n\nexport class TaskListResponse extends PaginationResponse {\n\tconstructor(data: TaskResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [TaskResponse] })\n\tdata: TaskResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskMapper.html":{"url":"classes/TaskMapper.html","title":"class - TaskMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/mapper/task.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapTaskCreateToDomain\n \n \n Static\n mapTaskUpdateToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapTaskCreateToDomain\n \n \n \n \n \n \n \n mapTaskCreateToDomain(params: TaskCreateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/task.mapper.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ITaskCreate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapTaskUpdateToDomain\n \n \n \n \n \n \n \n mapTaskUpdateToDomain(params: TaskUpdateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/task.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskUpdateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ITaskUpdate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(taskWithStatus: TaskWithStatusVo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/task.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskWithStatus\n \n TaskWithStatusVo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { InputFormat, ITaskCreate, ITaskUpdate, RichText, TaskWithStatusVo } from '@shared/domain';\nimport { TaskCreateParams, TaskResponse, TaskUpdateParams } from '../controller/dto';\nimport { TaskStatusMapper } from './task-status.mapper';\n\nexport class TaskMapper {\n\tstatic mapToResponse(taskWithStatus: TaskWithStatusVo): TaskResponse {\n\t\tconst { task, status } = taskWithStatus;\n\t\tconst taskDesc = task.getParentData();\n\t\tconst statusDto = TaskStatusMapper.mapToResponse(status);\n\n\t\tconst dto = new TaskResponse({\n\t\t\tid: task.id,\n\t\t\tname: task.name,\n\t\t\tcourseName: taskDesc.courseName,\n\t\t\tcourseId: taskDesc.courseId,\n\t\t\tcreatedAt: task.createdAt,\n\t\t\tupdatedAt: task.updatedAt,\n\t\t\tlessonHidden: false,\n\t\t\tstatus: statusDto,\n\t\t});\n\t\tif (task.description) {\n\t\t\tdto.description = new RichText({\n\t\t\t\tcontent: task.description,\n\t\t\t\ttype: task.descriptionInputFormat || InputFormat.RICH_TEXT_CK4,\n\t\t\t});\n\t\t}\n\t\tdto.availableDate = task.availableDate;\n\t\tdto.dueDate = task.dueDate;\n\n\t\tdto.displayColor = taskDesc.color;\n\t\tif (taskDesc.lessonName) {\n\t\t\tdto.lessonName = taskDesc.lessonName;\n\t\t}\n\t\tdto.lessonHidden = taskDesc.lessonHidden;\n\n\t\treturn dto;\n\t}\n\n\tstatic mapTaskUpdateToDomain(params: TaskUpdateParams): ITaskUpdate {\n\t\tconst dto: ITaskUpdate = {\n\t\t\tname: params.name,\n\t\t\tcourseId: params.courseId,\n\t\t\tlessonId: params.lessonId,\n\t\t\tdescription: params.description,\n\t\t\tavailableDate: params.availableDate,\n\t\t\tdueDate: params.dueDate,\n\t\t};\n\t\tif (params.description) {\n\t\t\tdto.descriptionInputFormat = InputFormat.RICH_TEXT_CK5;\n\t\t}\n\t\treturn dto;\n\t}\n\n\tstatic mapTaskCreateToDomain(params: TaskCreateParams): ITaskCreate {\n\t\tconst dto: ITaskCreate = {\n\t\t\tname: params.name || 'Draft',\n\t\t\tcourseId: params.courseId,\n\t\t\tlessonId: params.lessonId,\n\t\t\tdescription: params.description,\n\t\t\tavailableDate: params.availableDate,\n\t\t\tdueDate: params.dueDate,\n\t\t};\n\t\tif (params.description) {\n\t\t\tdto.descriptionInputFormat = InputFormat.RICH_TEXT_CK5;\n\t\t}\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/TaskModule.html":{"url":"modules/TaskModule.html","title":"module - TaskModule","body":"\n \n\n\n\n\n Modules\n TaskModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_TaskModule\n\n\n\ncluster_TaskModule_providers\n\n\n\ncluster_TaskModule_imports\n\n\n\ncluster_TaskModule_exports\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\n\n\nTaskModule\n\nTaskModule\n\nTaskModule -->\n\nCopyHelperModule->TaskModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nTaskModule -->\n\nFilesStorageClientModule->TaskModule\n\n\n\n\n\nSubmissionService \n\nSubmissionService \n\nSubmissionService -->\n\nTaskModule->SubmissionService \n\n\n\n\n\nTaskCopyService \n\nTaskCopyService \n\nTaskCopyService -->\n\nTaskModule->TaskCopyService \n\n\n\n\n\nTaskService \n\nTaskService \n\nTaskService -->\n\nTaskModule->TaskService \n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nTaskModule -->\n\nCourseRepo->TaskModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nTaskModule -->\n\nLessonRepo->TaskModule\n\n\n\n\n\nSubmissionRepo\n\nSubmissionRepo\n\nTaskModule -->\n\nSubmissionRepo->TaskModule\n\n\n\n\n\nSubmissionService\n\nSubmissionService\n\nTaskModule -->\n\nSubmissionService->TaskModule\n\n\n\n\n\nTaskCopyService\n\nTaskCopyService\n\nTaskModule -->\n\nTaskCopyService->TaskModule\n\n\n\n\n\nTaskRepo\n\nTaskRepo\n\nTaskModule -->\n\nTaskRepo->TaskModule\n\n\n\n\n\nTaskService\n\nTaskService\n\nTaskModule -->\n\nTaskService->TaskModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/task/task.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CourseRepo\n \n \n LessonRepo\n \n \n SubmissionRepo\n \n \n SubmissionService\n \n \n TaskCopyService\n \n \n TaskRepo\n \n \n TaskService\n \n \n \n \n Imports\n \n \n CopyHelperModule\n \n \n FilesStorageClientModule\n \n \n \n \n Exports\n \n \n SubmissionService\n \n \n TaskCopyService\n \n \n TaskService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { CourseRepo, LessonRepo, SubmissionRepo, TaskRepo } from '@shared/repo';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { FilesStorageClientModule } from '@src/modules/files-storage-client';\nimport { SubmissionService, TaskCopyService, TaskService } from './service';\n\n@Module({\n\timports: [forwardRef(() => AuthorizationModule), FilesStorageClientModule, CopyHelperModule],\n\tproviders: [TaskService, TaskCopyService, SubmissionService, TaskRepo, LessonRepo, CourseRepo, SubmissionRepo],\n\texports: [TaskService, TaskCopyService, SubmissionService],\n})\nexport class TaskModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskRepo.html":{"url":"injectables/TaskRepo.html","title":"injectable - TaskRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/task/task.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createTask\n \n \n Async\n findAllByParentIds\n \n \n Async\n findAllFinishedByParentIds\n \n \n Async\n findById\n \n \n Async\n findBySingleParent\n \n \n Private\n Async\n findTasksAndCount\n \n \n Private\n Async\n populate\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createTask\n \n \n \n \n \n \n \n createTask(task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByParentIds\n \n \n \n \n \n \n \n findAllByParentIds(parentIds: literal type, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:106\n \n \n\n\n \n \n Find all tasks by their parents which can be any of\n\na teacher who owns the task\na list of courses\na list of lessons\n\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n parentIds\n \n literal type\n \n\n \n No\n \n\n\n \n parentIds for teacher, courses and lesson\n\n \n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n filters\n\n \n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n pagination, sorting\n\n \n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllFinishedByParentIds\n \n \n \n \n \n \n \n findAllFinishedByParentIds(parentIds: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentIds\n \n literal type\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySingleParent\n \n \n \n \n \n \n \n findBySingleParent(creatorId: EntityId, courseId: EntityId, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:164\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findTasksAndCount\n \n \n \n \n \n \n \n findTasksAndCount(query: FilterQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:190\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populate\n \n \n \n \n \n \n \n populate(tasks: Task[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tasks\n \n Task[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:11\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { Task } from '@shared/domain/entity';\nimport { IFindOptions, SortOrder } from '@shared/domain/interface';\nimport { Counted, EntityId } from '@shared/domain/types';\nimport { BaseRepo } from '../base.repo';\nimport { TaskScope } from './task-scope';\n\n@Injectable()\nexport class TaskRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Task;\n\t}\n\n\tprivate async populate(tasks: Task[]): Promise {\n\t\tawait this._em.populate(tasks, [\n\t\t\t'course',\n\t\t\t'lesson',\n\t\t\t'lesson.course',\n\t\t\t'lesson.courseGroup',\n\t\t\t'submissions',\n\t\t\t'submissions.courseGroup',\n\t\t]);\n\t}\n\n\tasync createTask(task: Task): Promise {\n\t\treturn this.save(this.create(task));\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst task = await super.findById(id);\n\n\t\tawait this.populate([task]);\n\n\t\treturn task;\n\t}\n\n\tasync findAllFinishedByParentIds(\n\t\tparentIds: {\n\t\t\tcreatorId: EntityId;\n\t\t\topenCourseIds: EntityId[];\n\t\t\tlessonIdsOfOpenCourses: EntityId[];\n\t\t\tfinishedCourseIds: EntityId[];\n\t\t\tlessonIdsOfFinishedCourses: EntityId[];\n\t\t},\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new TaskScope('$or');\n\n\t\tconst parentsOpen = new TaskScope('$or');\n\t\tparentsOpen.byCourseIds(parentIds.openCourseIds);\n\t\tparentsOpen.byLessonIds(parentIds.lessonIdsOfOpenCourses);\n\n\t\tconst parentsFinished = new TaskScope('$or');\n\t\tparentsFinished.byCourseIds(parentIds.finishedCourseIds);\n\t\tparentsFinished.byLessonIds(parentIds.lessonIdsOfFinishedCourses);\n\n\t\tconst closedForOpenCoursesAndLessons = new TaskScope();\n\t\tclosedForOpenCoursesAndLessons.addQuery(parentsOpen.query);\n\t\tclosedForOpenCoursesAndLessons.byDraft(false);\n\t\tclosedForOpenCoursesAndLessons.byFinished(parentIds.creatorId, true);\n\n\t\tconst allForFinishedCoursesAndLessons = new TaskScope();\n\t\tallForFinishedCoursesAndLessons.addQuery(parentsFinished.query);\n\t\tallForFinishedCoursesAndLessons.byDraft(false);\n\n\t\t// must find also closed without course or lesson as parent\n\t\tconst closedWithoutParentForCreator = new TaskScope();\n\t\tclosedWithoutParentForCreator.byFinished(parentIds.creatorId, true);\n\t\tclosedWithoutParentForCreator.byOnlyCreatorId(parentIds.creatorId);\n\n\t\tconst closedDraftsForCreator = new TaskScope();\n\t\tclosedDraftsForCreator.addQuery(parentsOpen.query);\n\t\tclosedDraftsForCreator.byFinished(parentIds.creatorId, true);\n\t\tclosedDraftsForCreator.byCreatorId(parentIds.creatorId);\n\n\t\tconst allForFinishedCoursesAndLessonsForCreator = new TaskScope();\n\t\tallForFinishedCoursesAndLessonsForCreator.addQuery(parentsFinished.query);\n\t\tallForFinishedCoursesAndLessonsForCreator.byCreatorId(parentIds.creatorId);\n\n\t\tconst allForCreator = new TaskScope('$or');\n\t\tallForCreator.addQuery(closedWithoutParentForCreator.query);\n\t\tallForCreator.addQuery(closedDraftsForCreator.query);\n\t\tallForCreator.addQuery(allForFinishedCoursesAndLessonsForCreator.query);\n\n\t\tscope.addQuery(closedForOpenCoursesAndLessons.query);\n\t\tscope.addQuery(allForFinishedCoursesAndLessons.query);\n\t\tscope.addQuery(allForCreator.query);\n\n\t\tconst countedTaskList = await this.findTasksAndCount(scope.query, options);\n\n\t\treturn countedTaskList;\n\t}\n\n\t/**\n\t * Find all tasks by their parents which can be any of\n\t * - a teacher who owns the task\n\t * - a list of courses\n\t * - a list of lessons\n\t *\n\t * @param parentIds parentIds for teacher, courses and lesson\n\t * @param filters filters\n\t * @param options pagination, sorting\n\t * @returns\n\t */\n\tasync findAllByParentIds(\n\t\tparentIds: {\n\t\t\tcreatorId?: EntityId;\n\t\t\tcourseIds?: EntityId[];\n\t\t\tlessonIds?: EntityId[];\n\t\t},\n\t\tfilters?: {\n\t\t\tafterDueDateOrNone?: Date;\n\t\t\tfinished?: { userId: EntityId; value: boolean };\n\t\t\tavailableOn?: Date;\n\t\t},\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new TaskScope();\n\n\t\tconst parentIdScope = new TaskScope('$or');\n\n\t\tif (parentIds.creatorId) {\n\t\t\tparentIdScope.byOnlyCreatorId(parentIds.creatorId);\n\t\t}\n\n\t\tif (parentIds.courseIds) {\n\t\t\tparentIdScope.byCourseIds(parentIds.courseIds);\n\t\t}\n\n\t\tif (parentIds.lessonIds) {\n\t\t\tparentIdScope.byLessonIds(parentIds.lessonIds);\n\t\t}\n\n\t\tscope.addQuery(parentIdScope.query);\n\n\t\tif (filters?.finished) {\n\t\t\tscope.byFinished(filters.finished.userId, filters.finished.value);\n\t\t}\n\n\t\tif (parentIds.creatorId) {\n\t\t\tscope.excludeDraftsOfOthers(parentIds.creatorId);\n\t\t} else {\n\t\t\tscope.byDraft(false);\n\t\t}\n\n\t\tif (filters?.afterDueDateOrNone !== undefined) {\n\t\t\tscope.afterDueDateOrNone(filters.afterDueDateOrNone);\n\t\t}\n\n\t\tif (filters?.availableOn !== undefined) {\n\t\t\tif (parentIds.creatorId) {\n\t\t\t\tscope.excludeUnavailableOfOthers(parentIds.creatorId, filters.availableOn);\n\t\t\t} else {\n\t\t\t\tscope.byAvailable(filters?.availableOn);\n\t\t\t}\n\t\t}\n\n\t\tconst countedTaskList = await this.findTasksAndCount(scope.query, options);\n\n\t\treturn countedTaskList;\n\t}\n\n\tasync findBySingleParent(\n\t\tcreatorId: EntityId,\n\t\tcourseId: EntityId,\n\t\tfilters?: { draft?: boolean; noFutureAvailableDate?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new TaskScope();\n\t\tscope.byCourseIds([courseId]);\n\n\t\tif (filters?.draft !== undefined) {\n\t\t\tif (filters?.draft === true) {\n\t\t\t\tscope.excludeDraftsOfOthers(creatorId);\n\t\t\t} else {\n\t\t\t\tscope.byDraft(false);\n\t\t\t}\n\t\t}\n\n\t\tif (filters?.noFutureAvailableDate !== undefined) {\n\t\t\tscope.noFutureAvailableDate();\n\t\t}\n\n\t\tconst countedTaskList = await this.findTasksAndCount(scope.query, options);\n\n\t\treturn countedTaskList;\n\t}\n\n\tprivate async findTasksAndCount(query: FilterQuery, options?: IFindOptions): Promise> {\n\t\tconst pagination = options?.pagination || {};\n\t\tconst order = options?.order || {};\n\n\t\t// In order to solve pagination missmatches we apply a default order by _id. This is necessary\n\t\t// because other fields like the dueDate can be equal or null.\n\t\t// When pagination is used, sorting takes place on every page and if ambiguous leads to unwanted results.\n\t\t// Note: Indexes for dueDate and for _id do exist but there's no combined index.\n\t\t// This is okay, because the combined index would be too expensive for the particular purpose here.\n\t\tif (order._id == null) {\n\t\t\torder._id = SortOrder.asc;\n\t\t}\n\n\t\tconst [tasks, count] = await this._em.findAndCount(Task, query, {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order,\n\t\t});\n\n\t\tawait this.populate(tasks);\n\n\t\treturn [tasks, count];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskResponse.html":{"url":"classes/TaskResponse.html","title":"class - TaskResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task.response.ts\n \n\n\n \n Description\n \n \n DTO for returning a task document via api.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n courseId\n \n \n \n \n courseName\n \n \n \n createdAt\n \n \n \n \n Optional\n description\n \n \n \n Optional\n displayColor\n \n \n \n Optional\n dueDate\n \n \n \n id\n \n \n \n lessonHidden\n \n \n \n Optional\n lessonName\n \n \n \n \n name\n \n \n \n status\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: TaskResponse)\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n TaskResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '' as string\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n courseName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '' as string\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : RichText\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Task description object, with props content: string and type: input format types', type: RichText})@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n lessonHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lessonName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : TaskStatusResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:64\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:61\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { RichText } from '@shared/domain';\nimport { TaskStatusResponse } from './task-status.response';\n\n/**\n * DTO for returning a task document via api.\n */\nexport class TaskResponse {\n\tconstructor({ id, name, courseName, courseId, createdAt, updatedAt, status }: TaskResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t\tthis.courseName = courseName;\n\t\tthis.courseId = courseId;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.lessonHidden = false;\n\t\tthis.status = status;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tavailableDate?: Date;\n\n\t@ApiPropertyOptional()\n\tdueDate?: Date;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tcourseName: string = '' as string;\n\n\t@ApiPropertyOptional()\n\tlessonName?: string;\n\n\t@ApiProperty()\n\tcourseId: string = '' as string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Task description object, with props content: string and type: input format types',\n\t\ttype: RichText,\n\t})\n\t@DecodeHtmlEntities()\n\tdescription?: RichText;\n\n\t@ApiProperty()\n\tlessonHidden: boolean;\n\n\t@ApiPropertyOptional()\n\tdisplayColor?: string;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\tstatus: TaskStatusResponse;\n}\n\nexport class TaskListResponse extends PaginationResponse {\n\tconstructor(data: TaskResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [TaskResponse] })\n\tdata: TaskResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskRule.html":{"url":"injectables/TaskRule.html","title":"injectable - TaskRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/task.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n hasParentPermission\n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper, courseRule: CourseRule, lessonRule: LessonRule)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/task.rule.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n courseRule\n \n \n CourseRule\n \n \n \n No\n \n \n \n \n lessonRule\n \n \n LessonRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n hasParentPermission\n \n \n \n \n \n \n \n hasParentPermission(user: User, entity: Task, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/task.rule.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Task\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: Task, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/task.rule.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Task\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: Task)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/task.rule.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Task, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { CourseRule } from './course.rule';\nimport { LessonRule } from './lesson.rule';\n\n@Injectable()\nexport class TaskRule implements Rule {\n\tconstructor(\n\t\tprivate readonly authorizationHelper: AuthorizationHelper,\n\t\tprivate readonly courseRule: CourseRule,\n\t\tprivate readonly lessonRule: LessonRule\n\t) {}\n\n\tpublic isApplicable(user: User, entity: Task): boolean {\n\t\tconst isMatched = entity instanceof Task;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: Task, context: AuthorizationContext): boolean {\n\t\tlet { action } = context;\n\t\tconst { requiredPermissions } = context;\n\t\tconst hasRequiredPermission = this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n\t\tif (!hasRequiredPermission) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst isCreator = this.authorizationHelper.hasAccessToEntity(user, entity, ['creator']);\n\t\tif (entity.isDraft()) {\n\t\t\taction = Action.write;\n\t\t}\n\n\t\tconst hasParentPermission = this.hasParentPermission(user, entity, action);\n\n\t\t// TODO why parent permission has OR cond?\n\t\tconst result = isCreator || hasParentPermission;\n\n\t\treturn result;\n\t}\n\n\tprivate hasParentPermission(user: User, entity: Task, action: Action): boolean {\n\t\tif (entity.lesson) {\n\t\t\tconst hasLessonPermission = this.lessonRule.hasPermission(user, entity.lesson, {\n\t\t\t\taction,\n\t\t\t\trequiredPermissions: [],\n\t\t\t});\n\t\t\treturn hasLessonPermission;\n\t\t}\n\t\tif (entity.course) {\n\t\t\tconst hasCoursePermission = this.courseRule.hasPermission(user, entity.course, {\n\t\t\t\taction,\n\t\t\t\trequiredPermissions: [],\n\t\t\t});\n\n\t\t\treturn hasCoursePermission;\n\t\t}\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskScope.html":{"url":"classes/TaskScope.html","title":"class - TaskScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/task/task-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n afterDueDateOrNone\n \n \n byAvailable\n \n \n byCourseIds\n \n \n byCreatorId\n \n \n byDraft\n \n \n byFinished\n \n \n byLessonIds\n \n \n byOnlyCreatorId\n \n \n excludeDraftsOfOthers\n \n \n excludeUnavailableOfOthers\n \n \n Private\n getByDraftForCreatorQuery\n \n \n Private\n getByDraftQuery\n \n \n noFutureAvailableDate\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n afterDueDateOrNone\n \n \n \n \n \n \nafterDueDateOrNone(dueDate: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:83\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dueDate\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byAvailable\n \n \n \n \n \n \nbyAvailable(availableDate: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n availableDate\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byCourseIds\n \n \n \n \n \n \nbyCourseIds(courseIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byCreatorId\n \n \n \n \n \n \nbyCreatorId(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byDraft\n \n \n \n \n \n \nbyDraft(isDraft: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isDraft\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byFinished\n \n \n \n \n \n \nbyFinished(userId: EntityId, value: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n value\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byLessonIds\n \n \n \n \n \n \nbyLessonIds(lessonIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byOnlyCreatorId\n \n \n \n \n \n \nbyOnlyCreatorId(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n excludeDraftsOfOthers\n \n \n \n \n \n \nexcludeDraftsOfOthers(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n excludeUnavailableOfOthers\n \n \n \n \n \n \nexcludeUnavailableOfOthers(creatorId: EntityId, availableOn: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n availableOn\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getByDraftForCreatorQuery\n \n \n \n \n \n \n \n getByDraftForCreatorQuery(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FilterQuery\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getByDraftQuery\n \n \n \n \n \n \n \n getByDraftQuery(isDraft: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:89\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isDraft\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FilterQuery\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n noFutureAvailableDate\n \n \n \n \n \n \nnoFutureAvailableDate()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:66\n \n \n\n\n \n \n\n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { Task } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { Scope } from '../scope';\n\nexport class TaskScope extends Scope {\n\tbyFinished(userId: EntityId, value: boolean): TaskScope {\n\t\tif (value === true) {\n\t\t\tthis.addQuery({ finished: userId });\n\t\t} else {\n\t\t\tthis.addQuery({ finished: { $ne: userId } });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tbyOnlyCreatorId(creatorId: EntityId): TaskScope {\n\t\tthis.addQuery({\n\t\t\t$and: [{ creator: creatorId }, { course: null }, { lesson: null }],\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tbyCreatorId(creatorId: EntityId): TaskScope {\n\t\tthis.addQuery({ creator: creatorId });\n\n\t\treturn this;\n\t}\n\n\tbyCourseIds(courseIds: EntityId[]): TaskScope {\n\t\tthis.addQuery({\n\t\t\t$and: [{ course: { $in: courseIds } }, { lesson: null }],\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tbyLessonIds(lessonIds: EntityId[]): TaskScope {\n\t\tthis.addQuery({ lesson: { $in: lessonIds } });\n\n\t\treturn this;\n\t}\n\n\tbyDraft(isDraft: boolean): TaskScope {\n\t\tconst query = this.getByDraftQuery(isDraft);\n\t\tthis.addQuery(query);\n\n\t\treturn this;\n\t}\n\n\texcludeDraftsOfOthers(creatorId: EntityId): TaskScope {\n\t\tthis.addQuery({\n\t\t\t$or: [this.getByDraftForCreatorQuery(creatorId), this.getByDraftQuery(false)],\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tbyAvailable(availableDate: Date): TaskScope {\n\t\tthis.addQuery({ availableDate: { $lte: availableDate } });\n\n\t\treturn this;\n\t}\n\n\tnoFutureAvailableDate(): TaskScope {\n\t\tconst query = { availableDate: { $lte: new Date(Date.now()) } };\n\t\tthis.addQuery(query);\n\n\t\treturn this;\n\t}\n\n\texcludeUnavailableOfOthers(creatorId: EntityId, availableOn: Date): TaskScope {\n\t\tthis.addQuery({\n\t\t\t$or: [\n\t\t\t\t{ creator: creatorId },\n\t\t\t\t{ $and: [{ creator: { $ne: creatorId } }, { availableDate: { $lte: availableOn } }] },\n\t\t\t],\n\t\t});\n\t\treturn this;\n\t}\n\n\tafterDueDateOrNone(dueDate: Date): TaskScope {\n\t\tthis.addQuery({ $or: [{ dueDate: { $gte: dueDate } }, { dueDate: null }] });\n\n\t\treturn this;\n\t}\n\n\tprivate getByDraftQuery(isDraft: boolean): FilterQuery {\n\t\tconst query = isDraft ? { private: { $eq: true } } : { private: { $ne: true } };\n\n\t\treturn query;\n\t}\n\n\tprivate getByDraftForCreatorQuery(creatorId: EntityId): FilterQuery {\n\t\tconst query = { $and: [{ creator: creatorId }, this.getByDraftQuery(true)] };\n\n\t\treturn query;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskService.html":{"url":"injectables/TaskService.html","title":"injectable - TaskService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/service/task.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Private\n Async\n deleteSubmissions\n \n \n Async\n findById\n \n \n Async\n findBySingleParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(taskRepo: TaskRepo, submissionService: SubmissionService, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n submissionService\n \n \n SubmissionService\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteSubmissions\n \n \n \n \n \n \n \n deleteSubmissions(task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySingleParent\n \n \n \n \n \n \n \n findBySingleParent(creatorId: EntityId, courseId: EntityId, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, IFindOptions, Task } from '@shared/domain';\nimport { TaskRepo } from '@shared/repo';\nimport { FilesStorageClientAdapterService } from '@src/modules/files-storage-client';\nimport { SubmissionService } from './submission.service';\n\n@Injectable()\nexport class TaskService {\n\tconstructor(\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly submissionService: SubmissionService,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync findBySingleParent(\n\t\tcreatorId: EntityId,\n\t\tcourseId: EntityId,\n\t\tfilters?: { draft?: boolean; noFutureAvailableDate?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\treturn this.taskRepo.findBySingleParent(creatorId, courseId, filters, options);\n\t}\n\n\tasync delete(task: Task): Promise {\n\t\tawait this.filesStorageClientAdapterService.deleteFilesOfParent(task.id);\n\n\t\tawait this.deleteSubmissions(task);\n\n\t\tawait this.taskRepo.delete(task);\n\t}\n\n\tprivate async deleteSubmissions(task: Task): Promise {\n\t\tconst submissions = task.submissions.getItems();\n\t\tconst promises = submissions.map((submission) => this.submissionService.delete(submission));\n\n\t\tawait Promise.all(promises);\n\t}\n\n\tasync findById(taskId: EntityId): Promise {\n\t\treturn this.taskRepo.findById(taskId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskStatusMapper.html":{"url":"classes/TaskStatusMapper.html","title":"class - TaskStatusMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskStatusMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/mapper/task-status.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(status: ITaskStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/task-status.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n status\n \n ITaskStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskStatusResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ITaskStatus } from '@shared/domain';\nimport { TaskStatusResponse } from '../controller/dto/task-status.response';\n\nexport class TaskStatusMapper {\n\tstatic mapToResponse(status: ITaskStatus): TaskStatusResponse {\n\t\tconst dto = new TaskStatusResponse(status);\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskStatusResponse.html":{"url":"classes/TaskStatusResponse.html","title":"class - TaskStatusResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskStatusResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task-status.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n graded\n \n \n \n isDraft\n \n \n \n isFinished\n \n \n \n isSubstitutionTeacher\n \n \n \n maxSubmissions\n \n \n \n submitted\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: TaskStatusResponse)\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n TaskStatusResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n isDraft\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n isFinished\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n isSubstitutionTeacher\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n maxSubmissions\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class TaskStatusResponse {\n\tconstructor({ submitted, maxSubmissions, graded, isDraft, isSubstitutionTeacher, isFinished }: TaskStatusResponse) {\n\t\tthis.submitted = submitted;\n\t\tthis.maxSubmissions = maxSubmissions;\n\t\tthis.graded = graded;\n\t\tthis.isDraft = isDraft;\n\t\tthis.isSubstitutionTeacher = isSubstitutionTeacher;\n\t\tthis.isFinished = isFinished;\n\t}\n\n\t@ApiProperty()\n\tsubmitted: number;\n\n\t@ApiProperty()\n\tmaxSubmissions: number;\n\n\t@ApiProperty()\n\tgraded: number;\n\n\t@ApiProperty()\n\tisDraft: boolean;\n\n\t@ApiProperty()\n\tisSubstitutionTeacher: boolean;\n\n\t@ApiProperty()\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskUC.html":{"url":"injectables/TaskUC.html","title":"injectable - TaskUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/uc/task.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n changeFinishedForUser\n \n \n Async\n delete\n \n \n Async\n findAll\n \n \n Async\n findAllFinished\n \n \n Private\n Async\n findAllForStudent\n \n \n Private\n Async\n findAllForTeacher\n \n \n Private\n getDefaultMaxDueDate\n \n \n Private\n Async\n getPermittedCourses\n \n \n Private\n Async\n getPermittedLessons\n \n \n Async\n revertPublished\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(taskRepo: TaskRepo, authorizationService: AuthorizationService, courseRepo: CourseRepo, lessonRepo: LessonRepo, taskService: TaskService)\n \n \n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n taskService\n \n \n TaskService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n changeFinishedForUser\n \n \n \n \n \n \n \n changeFinishedForUser(userId: EntityId, taskId: EntityId, isFinished: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n isFinished\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(userId: EntityId, taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:225\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll(userId: EntityId, pagination: IPagination)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n pagination\n \n IPagination\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllFinished\n \n \n \n \n \n \n \n findAllFinished(userId: EntityId, pagination?: IPagination)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n pagination\n \n IPagination\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findAllForStudent\n \n \n \n \n \n \n \n findAllForStudent(user: User, pagination: IPagination)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:126\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n pagination\n \n IPagination\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findAllForTeacher\n \n \n \n \n \n \n \n findAllForTeacher(user: User, pagination: IPagination)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:155\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n pagination\n \n IPagination\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getDefaultMaxDueDate\n \n \n \n \n \n \n \n getDefaultMaxDueDate()\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:218\n \n \n\n\n \n \n\n \n Returns : Date\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getPermittedCourses\n \n \n \n \n \n \n \n getPermittedCourses(user: User, neededPermission: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:185\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n neededPermission\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getPermittedLessons\n \n \n \n \n \n \n \n getPermittedLessons(user: User, courses: Course[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:197\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n courses\n \n Course[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n revertPublished\n \n \n \n \n \n \n \n revertPublished(userId: EntityId, taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport {\n\tCounted,\n\tCourse,\n\tEntityId,\n\tIPagination,\n\tITaskStatus,\n\tLessonEntity,\n\tPermission,\n\tSortOrder,\n\tTaskWithStatusVo,\n\tUser,\n} from '@shared/domain';\nimport { CourseRepo, LessonRepo, TaskRepo } from '@shared/repo';\nimport { Action, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { TaskService } from '../service';\n\n@Injectable()\nexport class TaskUC {\n\tconstructor(\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly taskService: TaskService\n\t) {}\n\n\tasync findAllFinished(userId: EntityId, pagination?: IPagination): Promise> {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tthis.authorizationService.checkOneOfPermissions(user, [\n\t\t\tPermission.TASK_DASHBOARD_TEACHER_VIEW_V3,\n\t\t\tPermission.TASK_DASHBOARD_VIEW_V3,\n\t\t]);\n\n\t\tconst courses = await this.getPermittedCourses(user, Action.read);\n\t\tconst lessons = await this.getPermittedLessons(user, courses);\n\n\t\tconst openCourseIds = courses.filter((c) => !c.isFinished()).map((c) => c.id);\n\t\tconst finishedCourseIds = courses.filter((c) => c.isFinished()).map((c) => c.id);\n\t\tconst lessonIdsOfOpenCourses = lessons.filter((l) => !l.course.isFinished()).map((l) => l.id);\n\t\tconst lessonIdsOfFinishedCourses = lessons.filter((l) => l.course.isFinished()).map((l) => l.id);\n\n\t\tconst [tasks, total] = await this.taskRepo.findAllFinishedByParentIds(\n\t\t\t{\n\t\t\t\tcreatorId: userId,\n\t\t\t\topenCourseIds,\n\t\t\t\tfinishedCourseIds,\n\t\t\t\tlessonIdsOfOpenCourses,\n\t\t\t\tlessonIdsOfFinishedCourses,\n\t\t\t},\n\t\t\t{ pagination, order: { dueDate: SortOrder.desc } }\n\t\t);\n\n\t\tconst taskWithStatusVos = tasks.map((task) => {\n\t\t\tlet status: ITaskStatus;\n\t\t\tif (this.authorizationService.hasPermission(user, task, AuthorizationContextBuilder.write([]))) {\n\t\t\t\tstatus = task.createTeacherStatusForUser(user);\n\t\t\t} else {\n\t\t\t\tstatus = task.createStudentStatusForUser(user);\n\t\t\t}\n\n\t\t\treturn new TaskWithStatusVo(task, status);\n\t\t});\n\n\t\treturn [taskWithStatusVos, total];\n\t}\n\n\tasync findAll(userId: EntityId, pagination: IPagination): Promise> {\n\t\tlet response: Counted;\n\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tif (this.authorizationService.hasAllPermissions(user, [Permission.TASK_DASHBOARD_VIEW_V3])) {\n\t\t\tresponse = await this.findAllForStudent(user, pagination);\n\t\t} else if (this.authorizationService.hasAllPermissions(user, [Permission.TASK_DASHBOARD_TEACHER_VIEW_V3])) {\n\t\t\tresponse = await this.findAllForTeacher(user, pagination);\n\t\t} else {\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tasync changeFinishedForUser(userId: EntityId, taskId: EntityId, isFinished: boolean): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst task = await this.taskRepo.findById(taskId);\n\n\t\tthis.authorizationService.checkPermission(user, task, AuthorizationContextBuilder.read([]));\n\n\t\tif (isFinished) {\n\t\t\ttask.finishForUser(user);\n\t\t} else {\n\t\t\ttask.restoreForUser(user);\n\t\t}\n\t\tawait this.taskRepo.save(task);\n\n\t\t// TODO fix student case - why have student as fallback?\n\t\t// should be based on permission too and use this.createStatus() instead\n\t\t// add status\n\t\tconst status = this.authorizationService.hasOneOfPermissions(user, [Permission.TASK_DASHBOARD_TEACHER_VIEW_V3])\n\t\t\t? task.createTeacherStatusForUser(user)\n\t\t\t: task.createStudentStatusForUser(user);\n\n\t\tconst result = new TaskWithStatusVo(task, status);\n\n\t\treturn result;\n\t}\n\n\tasync revertPublished(userId: EntityId, taskId: EntityId): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst task = await this.taskRepo.findById(taskId);\n\n\t\tthis.authorizationService.checkPermission(user, task, AuthorizationContextBuilder.write([]));\n\n\t\ttask.unpublish();\n\t\tawait this.taskRepo.save(task);\n\n\t\tconst status = task.createTeacherStatusForUser(user);\n\n\t\tconst result = new TaskWithStatusVo(task, status);\n\n\t\treturn result;\n\t}\n\n\tprivate async findAllForStudent(user: User, pagination: IPagination): Promise> {\n\t\tconst courses = await this.getPermittedCourses(user, Action.read);\n\t\tconst openCourses = courses.filter((c) => !c.isFinished());\n\t\tconst lessons = await this.getPermittedLessons(user, openCourses);\n\n\t\tconst dueDate = this.getDefaultMaxDueDate();\n\t\tconst notFinished = { userId: user.id, value: false };\n\n\t\tconst [tasks, total] = await this.taskRepo.findAllByParentIds(\n\t\t\t{\n\t\t\t\tcreatorId: user.id,\n\t\t\t\tcourseIds: openCourses.map((c) => c.id),\n\t\t\t\tlessonIds: lessons.map((l) => l.id),\n\t\t\t},\n\t\t\t{ afterDueDateOrNone: dueDate, finished: notFinished, availableOn: new Date() },\n\t\t\t{\n\t\t\t\tpagination,\n\t\t\t\torder: { dueDate: SortOrder.asc },\n\t\t\t}\n\t\t);\n\n\t\tconst taskWithStatusVos = tasks.map((task) => {\n\t\t\tconst status = task.createStudentStatusForUser(user);\n\t\t\treturn new TaskWithStatusVo(task, status);\n\t\t});\n\n\t\treturn [taskWithStatusVos, total];\n\t}\n\n\tprivate async findAllForTeacher(user: User, pagination: IPagination): Promise> {\n\t\tconst courses = await this.getPermittedCourses(user, Action.write);\n\t\tconst openCourses = courses.filter((c) => !c.isFinished());\n\t\tconst lessons = await this.getPermittedLessons(user, openCourses);\n\n\t\tconst notFinished = { userId: user.id, value: false };\n\n\t\tconst [tasks, total] = await this.taskRepo.findAllByParentIds(\n\t\t\t{\n\t\t\t\tcreatorId: user.id,\n\t\t\t\tcourseIds: openCourses.map((c) => c.id),\n\t\t\t\tlessonIds: lessons.map((l) => l.id),\n\t\t\t},\n\t\t\t{ finished: notFinished, availableOn: new Date() },\n\t\t\t{\n\t\t\t\tpagination,\n\t\t\t\torder: { dueDate: SortOrder.desc },\n\t\t\t}\n\t\t);\n\n\t\tconst taskWithStatusVos = tasks.map((task) => {\n\t\t\tconst status = task.createTeacherStatusForUser(user);\n\t\t\treturn new TaskWithStatusVo(task, status);\n\t\t});\n\n\t\treturn [taskWithStatusVos, total];\n\t}\n\n\t// it should return also the scopePermissions for this user added to the entity .scopePermission: { userId, read: boolean, write: boolean }\n\t// then we can pass and allow only scoped courses to getPermittedLessonIds and validate read write of .scopePermission\n\tprivate async getPermittedCourses(user: User, neededPermission: Action): Promise {\n\t\tlet permittedCourses: Course[] = [];\n\n\t\tif (neededPermission === Action.write) {\n\t\t\t[permittedCourses] = await this.courseRepo.findAllForTeacherOrSubstituteTeacher(user.id);\n\t\t} else if (neededPermission === Action.read) {\n\t\t\t[permittedCourses] = await this.courseRepo.findAllByUserId(user.id);\n\t\t}\n\n\t\treturn permittedCourses;\n\t}\n\n\tprivate async getPermittedLessons(user: User, courses: Course[]): Promise {\n\t\tconst writeCourses = courses.filter((c) =>\n\t\t\tthis.authorizationService.hasPermission(user, c, AuthorizationContextBuilder.write([]))\n\t\t);\n\t\tconst readCourses = courses.filter((c) => !writeCourses.includes(c));\n\n\t\tconst writeCourseIds = writeCourses.map((c) => c.id);\n\t\tconst readCourseIds = readCourses.map((c) => c.id);\n\n\t\t// idea as combined query:\n\t\t// [{courseIds: onlyWriteCoursesIds}, { courseIds: onlyReadCourses, filter: { hidden: false }}]\n\t\tconst [[writeLessons], [readLessons]] = await Promise.all([\n\t\t\tthis.lessonRepo.findAllByCourseIds(writeCourseIds),\n\t\t\tthis.lessonRepo.findAllByCourseIds(readCourseIds, { hidden: false }),\n\t\t]);\n\n\t\tconst permittedLessons = [...writeLessons, ...readLessons];\n\n\t\treturn permittedLessons;\n\t}\n\n\tprivate getDefaultMaxDueDate(): Date {\n\t\tconst oneWeekAgo = new Date();\n\t\toneWeekAgo.setDate(oneWeekAgo.getDate() - 7);\n\n\t\treturn oneWeekAgo;\n\t}\n\n\tasync delete(userId: EntityId, taskId: EntityId): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst task = await this.taskRepo.findById(taskId);\n\n\t\tthis.authorizationService.checkPermission(user, task, AuthorizationContextBuilder.write([]));\n\n\t\tawait this.taskService.delete(task);\n\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskUpdateParams.html":{"url":"classes/TaskUpdateParams.html","title":"class - TaskUpdateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskUpdateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task-update.params.ts\n \n\n\n\n\n \n Implements\n \n \n ITaskUpdate\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'Date since the task is published', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsMongoId()@IsOptional()@ApiPropertyOptional({description: 'The id of an course object.', pattern: '[a-f0-9]{24}', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@SanitizeHtml(InputFormat.RICH_TEXT_CK5)@ApiPropertyOptional({description: 'The description of the task'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'Date until the task submissions can be sent', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsMongoId()@IsOptional()@ApiPropertyOptional({description: 'The id of an lesson object.', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'The title of the task', required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:33\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsDate, IsMongoId, IsOptional, IsString } from 'class-validator';\nimport { InputFormat, ITaskUpdate } from '@shared/domain';\nimport { SanitizeHtml } from '@shared/controller';\n\nexport class TaskUpdateParams implements ITaskUpdate {\n\t@IsString()\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The id of an course object.',\n\t\tpattern: '[a-f0-9]{24}',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcourseId?: string;\n\n\t@IsString()\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The id of an lesson object.',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tlessonId?: string;\n\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'The title of the task',\n\t\trequired: true,\n\t})\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@SanitizeHtml(InputFormat.RICH_TEXT_CK5)\n\t@ApiPropertyOptional({\n\t\tdescription: 'The description of the task',\n\t})\n\tdescription?: string;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date since the task is published',\n\t\ttype: Date,\n\t})\n\tavailableDate?: Date;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date until the task submissions can be sent',\n\t\ttype: Date,\n\t})\n\tdueDate?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskUrlParams.html":{"url":"classes/TaskUrlParams.html","title":"class - TaskUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n taskId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n taskId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the task.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class TaskUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the task.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttaskId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskWithStatusVo.html":{"url":"classes/TaskWithStatusVo.html","title":"class - TaskWithStatusVo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskWithStatusVo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/task.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n status\n \n \n task\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(task: Task, status: ITaskStatus)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n \n Task\n \n \n \n No\n \n \n \n \n status\n \n \n ITaskStatus\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ITaskStatus\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n task\n \n \n \n \n \n \n Type : Task\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { InputFormat } from '@shared/domain/types/input-format.types';\nimport type { IEntityWithSchool } from '../interface';\nimport type { ILearnroomElement } from '../interface/learnroom';\nimport type { EntityId } from '../types/entity-id';\nimport type { ITaskProperties, ITaskStatus } from '../types/task.types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { LessonEntity } from './lesson.entity';\nimport type { Submission } from './submission.entity';\nimport { User } from './user.entity';\n\nexport class TaskWithStatusVo {\n\ttask!: Task;\n\n\tstatus!: ITaskStatus;\n\n\tconstructor(task: Task, status: ITaskStatus) {\n\t\tthis.task = task;\n\t\tthis.status = status;\n\t}\n}\n\nexport type TaskParentDescriptions = {\n\tcourseName: string;\n\tcourseId: string;\n\tlessonName: string;\n\tlessonHidden: boolean;\n\tcolor: string;\n};\n\nexport interface ITaskParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'homeworks' })\n@Index({ properties: ['private', 'dueDate', 'finished'] })\n@Index({ properties: ['id', 'private'] })\n@Index({ properties: ['finished', 'course'] })\n@Index({ properties: ['finished', 'course'] })\nexport class Task extends BaseEntityWithTimestamps implements ILearnroomElement, IEntityWithSchool {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tdescription: string;\n\n\t@Property()\n\tdescriptionInputFormat: InputFormat;\n\n\t@Property({ nullable: true })\n\tavailableDate?: Date;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdueDate?: Date;\n\n\t@Property()\n\tprivate = true;\n\n\t@Property({ nullable: true })\n\tpublicSubmissions?: boolean;\n\n\t@Property({ nullable: true })\n\tteamSubmissions?: boolean;\n\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'teacherId' })\n\tcreator: User;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId', nullable: true })\n\tcourse?: Course;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToOne('LessonEntity', { fieldName: 'lessonId', nullable: true })\n\tlesson?: LessonEntity; // In database exist also null, but it can not set.\n\n\t@OneToMany('Submission', 'task')\n\tsubmissions = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'archived' })\n\tfinished = new Collection(this);\n\n\tconstructor(props: ITaskProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.description = props.description || '';\n\t\tthis.descriptionInputFormat = props.descriptionInputFormat || InputFormat.RICH_TEXT_CK4;\n\t\tthis.availableDate = props.availableDate;\n\t\tthis.dueDate = props.dueDate;\n\n\t\tif (props.private !== undefined) this.private = props.private;\n\t\tthis.creator = props.creator;\n\t\tthis.course = props.course;\n\t\tthis.school = props.school;\n\t\tthis.lesson = props.lesson;\n\t\tthis.submissions.set(props.submissions || []);\n\t\tthis.finished.set(props.finished || []);\n\t\tthis.publicSubmissions = props.publicSubmissions || false;\n\t\tthis.teamSubmissions = props.teamSubmissions || false;\n\t}\n\n\tprivate getSubmissionItems(): Submission[] {\n\t\tif (!this.submissions || !this.submissions.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Submissions items are not loaded.');\n\t\t}\n\t\tconst submissions = this.submissions.getItems();\n\n\t\treturn submissions;\n\t}\n\n\tprivate getFinishedUserIds(): EntityId[] {\n\t\tif (!this.finished) {\n\t\t\tthrow new InternalServerErrorException('Task.finished is undefined. The task need to be populated.');\n\t\t}\n\n\t\tconst finishedObjectIds = this.finished.getIdentifiers('_id');\n\t\tconst finishedIds = finishedObjectIds.map((id): string => id.toString());\n\n\t\treturn finishedIds;\n\t}\n\n\tprivate getParent(): ITaskParent | User {\n\t\tconst parent = this.lesson || this.course || this.creator;\n\n\t\treturn parent;\n\t}\n\n\tprivate getMaxSubmissions(): number {\n\t\tconst parent = this.getParent();\n\t\t// For draft (user as parent) propaly user is not a student, but for maxSubmission one is valid result\n\t\tconst maxSubmissions = parent instanceof User ? 1 : parent.getStudentIds().length;\n\n\t\treturn maxSubmissions;\n\t}\n\n\tprivate isFinishedForUser(user: User): boolean {\n\t\tconst finishedUserIds = this.getFinishedUserIds();\n\t\tconst isUserInFinishedUser = finishedUserIds.some((finishedUserId) => finishedUserId === user.id);\n\n\t\tconst isCourseFinished = this.course ? this.course.isFinished() : false;\n\n\t\tconst isFinishedForUser = isUserInFinishedUser || isCourseFinished;\n\n\t\treturn isFinishedForUser;\n\t}\n\n\tpublic isDraft(): boolean {\n\t\t// private can be undefined in the database\n\t\treturn !!this.private;\n\t}\n\n\tpublic isPublished(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic isPlanned(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate getSubmittedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst submittedSubmissions = submissions.filter((submission) => submission.isSubmitted());\n\n\t\treturn submittedSubmissions;\n\t}\n\n\tpublic areSubmissionsPublic(): boolean {\n\t\tconst areSubmissionsPublic = !!this.publicSubmissions;\n\n\t\treturn areSubmissionsPublic;\n\t}\n\n\tprivate getGradedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst gradedSubmissions = submissions.filter((submission) => submission.isGraded());\n\n\t\treturn gradedSubmissions;\n\t}\n\n\tprivate isSubmittedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isSubmitted = submissions.some((submission) => submission.isSubmittedForUser(user));\n\n\t\treturn isSubmitted;\n\t}\n\n\tprivate isGradedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isGraded = submissions.some((submission) => submission.isGradedForUser(user));\n\n\t\treturn isGraded;\n\t}\n\n\tprivate calculateNumberOfSubmitters(submissions: Submission[]): number {\n\t\tlet taskSubmitterIds: EntityId[] = [];\n\n\t\tsubmissions.forEach((submission) => {\n\t\t\tconst submitterIds = submission.getSubmitterIds();\n\t\t\ttaskSubmitterIds = [...taskSubmitterIds, ...submitterIds];\n\t\t});\n\n\t\tconst uniqueIds = [...new Set(taskSubmitterIds)];\n\t\tconst numberOfSubmitters = uniqueIds.length;\n\n\t\treturn numberOfSubmitters;\n\t}\n\n\tprivate isUserSubstitutionTeacherInCourse(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.course ? this.course.isUserSubstitutionTeacher(user) : false;\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic createTeacherStatusForUser(user: User): ITaskStatus {\n\t\tconst submittedSubmissions = this.getSubmittedSubmissions();\n\t\tconst gradedSubmissions = this.getGradedSubmissions();\n\n\t\tconst numberOfSubmitters = this.calculateNumberOfSubmitters(submittedSubmissions);\n\t\tconst numberOfSubmittersWithGrade = this.calculateNumberOfSubmitters(gradedSubmissions);\n\t\tconst maxSubmissions = this.getMaxSubmissions();\n\t\tconst isDraft = this.isDraft();\n\t\tconst isFinished = this.isFinishedForUser(user);\n\t\tconst isSubstitutionTeacher = this.isUserSubstitutionTeacherInCourse(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: numberOfSubmitters,\n\t\t\tgraded: numberOfSubmittersWithGrade,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\tpublic createStudentStatusForUser(user: User): ITaskStatus {\n\t\tconst isSubmitted = this.isSubmittedForUser(user);\n\t\tconst isGraded = this.isGradedForUser(user);\n\t\tconst maxSubmissions = 1;\n\t\tconst isDraft = this.isDraft();\n\t\tconst isSubstitutionTeacher = false;\n\t\tconst isFinished = this.isFinishedForUser(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: isSubmitted ? 1 : 0,\n\t\t\tgraded: isGraded ? 1 : 0,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\t// TODO: based on the parent relationship\n\tpublic getParentData(): TaskParentDescriptions {\n\t\tlet descriptions: TaskParentDescriptions;\n\t\tif (this.course) {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: this.course.name,\n\t\t\t\tcourseId: this.course.id,\n\t\t\t\tlessonName: this.lesson ? this.lesson.name : '',\n\t\t\t\tlessonHidden: this.lesson ? this.lesson.hidden : false,\n\t\t\t\tcolor: this.course.color,\n\t\t\t};\n\t\t} else {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: '',\n\t\t\t\tcourseId: '',\n\t\t\t\tlessonName: '',\n\t\t\t\tlessonHidden: false,\n\t\t\t\tcolor: '#ACACAC',\n\t\t\t};\n\t\t}\n\n\t\treturn descriptions;\n\t}\n\n\tpublic finishForUser(user: User): void {\n\t\tthis.finished.add(user);\n\t}\n\n\tpublic restoreForUser(user: User): void {\n\t\tthis.finished.remove(user);\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.school.id;\n\t}\n\n\tpublic publish(): void {\n\t\tthis.private = false;\n\t\tthis.availableDate = new Date();\n\t}\n\n\tpublic unpublish(): void {\n\t\tthis.private = true;\n\t}\n}\n\nexport function isTask(reference: unknown): reference is Task {\n\treturn reference instanceof Task;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamDto.html":{"url":"classes/TeamDto.html","title":"class - TeamDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts\n \n\n\n \n Description\n \n \n TODO\nThis DTO and all associated functionality should be moved to a general teams module once it has been created\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n name\n \n \n teamUsers\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: TeamDto)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n TeamDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n teamUsers\n \n \n \n \n \n \n Type : TeamUserDto[]\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\n\n/**\n * TODO\n * This DTO and all associated functionality should be moved to a general teams module once it has been created\n */\n\nexport class TeamDto {\n\tid: EntityId;\n\n\tname: string;\n\n\tteamUsers: TeamUserDto[];\n\n\tconstructor(props: TeamDto) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t\tthis.teamUsers = props.teamUsers;\n\t}\n}\n\nexport class TeamUserDto {\n\tuserId: string;\n\n\troleId: string;\n\n\tschoolId: string;\n\n\tconstructor(props: TeamUserDto) {\n\t\tthis.userId = props.userId;\n\t\tthis.roleId = props.roleId;\n\t\tthis.schoolId = props.schoolId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/TeamEntity.html":{"url":"entities/TeamEntity.html","title":"entity - TeamEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n TeamEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/team.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n userIds\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n userIds\n \n \n \n \n \n \n Type : TeamUserEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:59\n \n \n\n\n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\nimport { User } from './user.entity';\n\nexport interface ITeamProperties {\n\tname: string;\n\tteamUsers?: TeamUserEntity[];\n}\n\nexport interface ITeamUserProperties {\n\tuser: User;\n\trole: Role;\n\tschool: SchoolEntity;\n}\n\n@Embeddable()\nexport class TeamUserEntity {\n\tconstructor(props: ITeamUserProperties) {\n\t\tthis.userId = props.user;\n\t\tthis.role = props.role;\n\t\tthis.schoolId = props.school;\n\t}\n\n\t@ManyToOne(() => User)\n\tuserId: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\t@ManyToOne(() => SchoolEntity)\n\tprivate schoolId: SchoolEntity;\n\n\t// fieldName cannot be used in ManyToOne on Embeddable due to a mikro-orm bug (https://github.com/mikro-orm/mikro-orm/issues/2165)\n\tget user(): User {\n\t\treturn this.userId;\n\t}\n\n\tset user(value: User) {\n\t\tthis.userId = value;\n\t}\n\n\tget school(): SchoolEntity {\n\t\treturn this.schoolId;\n\t}\n\n\tset school(value: SchoolEntity) {\n\t\tthis.schoolId = value;\n\t}\n}\n\n@Entity({ tableName: 'teams' })\nexport class TeamEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Embedded(() => TeamUserEntity, { array: true })\n\tuserIds: TeamUserEntity[];\n\n\tget teamUsers(): TeamUserEntity[] {\n\t\treturn this.userIds;\n\t}\n\n\tset teamUsers(value: TeamUserEntity[]) {\n\t\tthis.userIds = value;\n\t}\n\n\tconstructor(props: ITeamProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.userIds = props.teamUsers ? props.teamUsers.map((teamUser) => new TeamUserEntity(teamUser)) : [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamFactory.html":{"url":"classes/TeamFactory.html","title":"class - TeamFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/team.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withRoleAndUserId\n \n \n withTeamUser\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withRoleAndUserId\n \n \n \n \n \n \nwithRoleAndUserId(role: Role, userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/team.factory.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n Role\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withTeamUser\n \n \n \n \n \n \nwithTeamUser(teamUser: TeamUserEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/team.factory.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamUser\n \n TeamUserEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ITeamProperties, Role, TeamEntity, TeamUserEntity } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport { teamUserFactory } from '@shared/testing/factory/teamuser.factory';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\n\nclass TeamFactory extends BaseFactory {\n\twithRoleAndUserId(role: Role, userId: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tteamUsers: [teamUserFactory.withRoleAndUserId(role, userId).buildWithId()],\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithTeamUser(teamUser: TeamUserEntity[]): this {\n\t\tconst params: DeepPartial = {\n\t\t\tteamUsers: teamUser,\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const teamFactory = TeamFactory.define(TeamEntity, ({ sequence }) => {\n\treturn {\n\t\tname: `team #${sequence}`,\n\t\tteamUsers: [teamUserFactory.buildWithId()],\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamMapper.html":{"url":"injectables/TeamMapper.html","title":"injectable - TeamMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/mapper/team.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapEntityToDto\n \n \n \n \n \n \n \n mapEntityToDto(teamEntity: TeamEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/mapper/team.mapper.ts:12\n \n \n\n\n \n \n Maps a Team Entity to the ServiceDTO\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n teamEntity\n \n TeamEntity\n \n\n \n No\n \n\n\n \n The Entity\n\n \n \n \n \n \n \n \n \n Returns : TeamDto\n\n \n \n The Dto\n\n \n \n \n \n \n\n\n \n\n\n \n import { TeamEntity, TeamUserEntity } from '@shared/domain';\nimport { Injectable } from '@nestjs/common';\nimport { TeamDto, TeamUserDto } from '../services/dto/team.dto';\n\n@Injectable()\nexport class TeamMapper {\n\t/**\n\t * Maps a Team Entity to the ServiceDTO\n\t * @param teamEntity The Entity\n\t * @return The Dto\n\t */\n\tpublic mapEntityToDto(teamEntity: TeamEntity): TeamDto {\n\t\tconst teamUsers: TeamUserDto[] = teamEntity.teamUsers.map(\n\t\t\t(teamUser: TeamUserEntity) =>\n\t\t\t\tnew TeamUserDto({\n\t\t\t\t\tuserId: teamUser.user.id,\n\t\t\t\t\troleId: teamUser.role.id,\n\t\t\t\t\tschoolId: teamUser.school.id,\n\t\t\t\t})\n\t\t);\n\t\treturn new TeamDto({ id: teamEntity.id, name: teamEntity.name, teamUsers });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/TeamNews.html":{"url":"entities/TeamNews.html","title":"entity - TeamNews","body":"\n \n\n\n\n\n\n\n\n Entities\n TeamNews\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : TeamEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('TeamEntity')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:127\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/TeamNewsController.html":{"url":"controllers/TeamNewsController.html","title":"controller - TeamNewsController","body":"\n \n\n\n\n\n\n\n Controllers\n TeamNewsController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/team-news.controller.ts\n \n\n \n Prefix\n \n \n team\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAllForTeam\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n findAllForTeam\n \n \n \n \n \n \n \n findAllForTeam(urlParams: TeamUrlParams, currentUser: ICurrentUser, scope: FilterNewsParams, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get(':teamId/news')\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/team-news.controller.ts:22\n \n \n\n\n \n \n Responds with news of a given team for a user.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TeamUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n FilterNewsParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\n\nimport { PaginationParams } from '@shared/controller';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\n\nimport { NewsMapper } from '../mapper/news.mapper';\nimport { NewsUc } from '../uc';\nimport { FilterNewsParams, NewsListResponse, TeamUrlParams } from './dto';\n\n@ApiTags('News')\n@Authenticate('jwt')\n@Controller('team')\nexport class TeamNewsController {\n\tconstructor(private readonly newsUc: NewsUc) {}\n\n\t/**\n\t * Responds with news of a given team for a user.\n\t */\n\t@Get(':teamId/news')\n\tasync findAllForTeam(\n\t\t@Param() urlParams: TeamUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() scope: FilterNewsParams,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\t// enforce filter by a given team, used in team tab\n\t\tscope.targetId = urlParams.teamId;\n\t\tscope.targetModel = 'teams';\n\t\tconst [newsList, count] = await this.newsUc.findAllForUser(\n\t\t\tcurrentUser.userId,\n\t\t\tNewsMapper.mapNewsScopeToDomain(scope),\n\t\t\t{ pagination }\n\t\t);\n\t\tconst dtoList = newsList.map((news) => NewsMapper.mapToResponse(news));\n\t\tconst response = new NewsListResponse(dtoList, count);\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamPermissionsBody.html":{"url":"classes/TeamPermissionsBody.html","title":"class - TeamPermissionsBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamPermissionsBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n create\n \n \n \n \n delete\n \n \n \n \n read\n \n \n \n \n share\n \n \n \n \n write\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n delete\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n read\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n share\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n write\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class TeamPermissionsBody {\n\t@IsBoolean()\n\t@ApiProperty()\n\tread!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\twrite!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tcreate!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tdelete!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tshare!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamPermissionsDto.html":{"url":"classes/TeamPermissionsDto.html","title":"class - TeamPermissionsDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamPermissionsDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n create\n \n \n Optional\n delete\n \n \n Optional\n read\n \n \n Optional\n share\n \n \n Optional\n write\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: TeamPermissionsDto)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n TeamPermissionsDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n create\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n delete\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n read\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n share\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n write\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class TeamPermissionsDto {\n\tread?: boolean;\n\n\twrite?: boolean;\n\n\tcreate?: boolean;\n\n\tdelete?: boolean;\n\n\tshare?: boolean;\n\n\tconstructor(props: TeamPermissionsDto) {\n\t\tthis.read = !!props.read;\n\t\tthis.write = !!props.write;\n\t\tthis.create = !!props.create;\n\t\tthis.delete = !!props.delete;\n\t\tthis.share = !!props.share;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamPermissionsMapper.html":{"url":"injectables/TeamPermissionsMapper.html","title":"injectable - TeamPermissionsMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamPermissionsMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/mapper/team-permissions.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapBodyToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapBodyToDto\n \n \n \n \n \n \n \n mapBodyToDto(body: TeamPermissionsBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/mapper/team-permissions.mapper.ts:12\n \n \n\n\n \n \n Maps a TeamPermissions Body to a ServiceDTO\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n body\n \n TeamPermissionsBody\n \n\n \n No\n \n\n\n \n The TeamPermissions Body\n\n \n \n \n \n \n \n \n \n Returns : TeamPermissionsDto\n\n \n \n The mapped DTO\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { TeamPermissionsBody } from '../controller/dto/team-permissions.body.params';\nimport { TeamPermissionsDto } from '../services/dto/team-permissions.dto';\n\n@Injectable()\nexport class TeamPermissionsMapper {\n\t/**\n\t * Maps a TeamPermissions Body to a ServiceDTO\n\t * @param body The TeamPermissions Body\n\t * @return The mapped DTO\n\t */\n\tpublic mapBodyToDto(body: TeamPermissionsBody): TeamPermissionsDto {\n\t\treturn new TeamPermissionsDto({\n\t\t\tcreate: body.create,\n\t\t\tdelete: body.delete,\n\t\t\tread: body.read,\n\t\t\tshare: body.share,\n\t\t\twrite: body.write,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamRoleDto.html":{"url":"classes/TeamRoleDto.html","title":"class - TeamRoleDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamRoleDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/controller/dto/team-role.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n roleId\n \n \n \n \n teamId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n roleId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-role.params.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n teamId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-role.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class TeamRoleDto {\n\t@IsMongoId()\n\t@ApiProperty()\n\tteamId!: string;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\troleId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamRolePermissionsDto.html":{"url":"classes/TeamRolePermissionsDto.html","title":"class - TeamRolePermissionsDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamRolePermissionsDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n permissions\n \n \n roleName\n \n \n teamId\n \n \n teamName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: TeamRolePermissionsDto)\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n TeamRolePermissionsDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : boolean[]\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n roleName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n teamId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n teamName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class TeamRolePermissionsDto {\n\tteamId: string;\n\n\tteamName: string;\n\n\troleName: string;\n\n\tpermissions: boolean[];\n\n\tconstructor(props: TeamRolePermissionsDto) {\n\t\tthis.teamId = props.teamId;\n\t\tthis.teamName = props.teamName;\n\t\tthis.roleName = props.roleName;\n\t\tthis.permissions = props.permissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamRule.html":{"url":"injectables/TeamRule.html","title":"injectable - TeamRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/team.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/team.rule.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: TeamEntity, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/team.rule.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n TeamEntity\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: TeamEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/team.rule.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n TeamEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { TeamEntity, TeamUserEntity, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\n\n@Injectable()\nexport class TeamRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: TeamEntity): boolean {\n\t\treturn entity instanceof TeamEntity;\n\t}\n\n\tpublic hasPermission(user: User, entity: TeamEntity, context: AuthorizationContext): boolean {\n\t\tlet hasPermission = false;\n\t\tconst isTeamUser = entity.teamUsers.find((teamUser: TeamUserEntity) => teamUser.user.id === user.id);\n\t\tif (isTeamUser) {\n\t\t\thasPermission = this.authorizationHelper.hasAllPermissionsByRole(isTeamUser.role, context.requiredPermissions);\n\t\t}\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamService.html":{"url":"injectables/TeamService.html","title":"injectable - TeamService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/teams/service/team.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromTeams\n \n \n Public\n Async\n findUserDataFromTeams\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(teamsRepo: TeamsRepo)\n \n \n \n \n Defined in apps/server/src/modules/teams/service/team.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromTeams\n \n \n \n \n \n \n \n deleteUserDataFromTeams(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/teams/service/team.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findUserDataFromTeams\n \n \n \n \n \n \n \n findUserDataFromTeams(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/teams/service/team.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, TeamEntity } from '@shared/domain';\nimport { TeamsRepo } from '@shared/repo';\n\n@Injectable()\nexport class TeamService {\n\tconstructor(private readonly teamsRepo: TeamsRepo) {}\n\n\tpublic async findUserDataFromTeams(userId: EntityId): Promise {\n\t\tconst teams = await this.teamsRepo.findByUserId(userId);\n\n\t\treturn teams;\n\t}\n\n\tpublic async deleteUserDataFromTeams(userId: EntityId): Promise {\n\t\tconst teams = await this.teamsRepo.findByUserId(userId);\n\n\t\tteams.forEach((team) => {\n\t\t\tteam.userIds = team.userIds.filter((u) => u.userId.id !== userId);\n\t\t});\n\n\t\tawait this.teamsRepo.save(teams);\n\n\t\treturn teams.length;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamUrlParams.html":{"url":"classes/TeamUrlParams.html","title":"class - TeamUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/team.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n teamId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n teamId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the team.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/team.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class TeamUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the team.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tteamId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamUserDto.html":{"url":"classes/TeamUserDto.html","title":"class - TeamUserDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamUserDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n roleId\n \n \n schoolId\n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: TeamUserDto)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:27\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n TeamUserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n roleId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:23\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\n\n/**\n * TODO\n * This DTO and all associated functionality should be moved to a general teams module once it has been created\n */\n\nexport class TeamDto {\n\tid: EntityId;\n\n\tname: string;\n\n\tteamUsers: TeamUserDto[];\n\n\tconstructor(props: TeamDto) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t\tthis.teamUsers = props.teamUsers;\n\t}\n}\n\nexport class TeamUserDto {\n\tuserId: string;\n\n\troleId: string;\n\n\tschoolId: string;\n\n\tconstructor(props: TeamUserDto) {\n\t\tthis.userId = props.userId;\n\t\tthis.roleId = props.roleId;\n\t\tthis.schoolId = props.schoolId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamUserEntity.html":{"url":"classes/TeamUserEntity.html","title":"class - TeamUserEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamUserEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/team.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n Private\n schoolId\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n user\n \n \n school\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ITeamUserProperties)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ITeamUserProperties\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : Role\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Private\n schoolId\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:27\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n user\n \n \n\n \n \n getuser()\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:36\n \n \n\n \n \n setuser(value: User)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:40\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n User\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n\n \n \n getschool()\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:44\n \n \n\n \n \n setschool(value: SchoolEntity)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:48\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n SchoolEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\nimport { User } from './user.entity';\n\nexport interface ITeamProperties {\n\tname: string;\n\tteamUsers?: TeamUserEntity[];\n}\n\nexport interface ITeamUserProperties {\n\tuser: User;\n\trole: Role;\n\tschool: SchoolEntity;\n}\n\n@Embeddable()\nexport class TeamUserEntity {\n\tconstructor(props: ITeamUserProperties) {\n\t\tthis.userId = props.user;\n\t\tthis.role = props.role;\n\t\tthis.schoolId = props.school;\n\t}\n\n\t@ManyToOne(() => User)\n\tuserId: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\t@ManyToOne(() => SchoolEntity)\n\tprivate schoolId: SchoolEntity;\n\n\t// fieldName cannot be used in ManyToOne on Embeddable due to a mikro-orm bug (https://github.com/mikro-orm/mikro-orm/issues/2165)\n\tget user(): User {\n\t\treturn this.userId;\n\t}\n\n\tset user(value: User) {\n\t\tthis.userId = value;\n\t}\n\n\tget school(): SchoolEntity {\n\t\treturn this.schoolId;\n\t}\n\n\tset school(value: SchoolEntity) {\n\t\tthis.schoolId = value;\n\t}\n}\n\n@Entity({ tableName: 'teams' })\nexport class TeamEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Embedded(() => TeamUserEntity, { array: true })\n\tuserIds: TeamUserEntity[];\n\n\tget teamUsers(): TeamUserEntity[] {\n\t\treturn this.userIds;\n\t}\n\n\tset teamUsers(value: TeamUserEntity[]) {\n\t\tthis.userIds = value;\n\t}\n\n\tconstructor(props: ITeamProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.userIds = props.teamUsers ? props.teamUsers.map((teamUser) => new TeamUserEntity(teamUser)) : [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamUserFactory.html":{"url":"classes/TeamUserFactory.html","title":"class - TeamUserFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamUserFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/teamuser.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withRoleAndUserId\n \n \n withUserId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withRoleAndUserId\n \n \n \n \n \n \nwithRoleAndUserId(role: Role, userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/teamuser.factory.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n Role\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withUserId\n \n \n \n \n \n \nwithUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/teamuser.factory.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Role, TeamUserEntity } from '@shared/domain';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\nimport { DeepPartial } from 'fishery';\nimport { schoolFactory } from '@shared/testing/factory/school.factory';\nimport { userFactory } from '@shared/testing/factory/user.factory';\nimport { roleFactory } from '@shared/testing/factory/role.factory';\n\nclass TeamUserFactory extends BaseFactory {\n\twithRoleAndUserId(role: Role, userId: string): this {\n\t\tconst school = schoolFactory.build();\n\t\tconst params: DeepPartial = {\n\t\t\tuser: userFactory.buildWithId({ school, roles: [roleFactory.build({ roles: [role] })] }, userId),\n\t\t\tschool,\n\t\t\trole,\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithUserId(userId: string): this {\n\t\tconst school = schoolFactory.build();\n\t\tconst params: DeepPartial = {\n\t\t\tuser: userFactory.buildWithId({ school }, userId),\n\t\t\tschool,\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const teamUserFactory = TeamUserFactory.define(TeamUserEntity, () => {\n\tconst role = roleFactory.buildWithId();\n\tconst school = schoolFactory.buildWithId();\n\tconst user = userFactory.buildWithId({ roles: [role] });\n\n\treturn new TeamUserEntity({\n\t\tuser,\n\t\tschool,\n\t\trole,\n\t});\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/TeamsApiModule.html":{"url":"modules/TeamsApiModule.html","title":"module - TeamsApiModule","body":"\n \n\n\n\n\n Modules\n TeamsApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_TeamsApiModule\n\n\n\ncluster_TeamsApiModule_imports\n\n\n\n\nTeamsModule\n\nTeamsModule\n\n\n\nTeamsApiModule\n\nTeamsApiModule\n\nTeamsApiModule -->\n\nTeamsModule->TeamsApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/teams/teams-api.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n TeamsModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { TeamsModule } from '@src/modules/teams/teams.module';\n\n@Module({\n\timports: [TeamsModule],\n\tproviders: [],\n\tcontrollers: [],\n\texports: [],\n})\nexport class TeamsApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/TeamsModule.html":{"url":"modules/TeamsModule.html","title":"module - TeamsModule","body":"\n \n\n\n\n\n Modules\n TeamsModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_TeamsModule\n\n\n\ncluster_TeamsModule_providers\n\n\n\ncluster_TeamsModule_exports\n\n\n\n\nTeamService \n\nTeamService \n\n\n\nTeamsModule\n\nTeamsModule\n\nTeamService -->\n\nTeamsModule->TeamService \n\n\n\n\n\nTeamService\n\nTeamService\n\nTeamsModule -->\n\nTeamService->TeamsModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nTeamsModule -->\n\nTeamsRepo->TeamsModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/teams/teams.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n TeamService\n \n \n TeamsRepo\n \n \n \n \n Exports\n \n \n TeamService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { TeamsRepo } from '@shared/repo';\nimport { TeamService } from './service';\n\n@Module({\n\tproviders: [TeamService, TeamsRepo],\n\texports: [TeamService],\n})\nexport class TeamsModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamsRepo.html":{"url":"injectables/TeamsRepo.html","title":"injectable - TeamsRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamsRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/teams/teams.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n cacheExpiration\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findByUserId\n \n \n Private\n Async\n populateRoles\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, populate)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n populate\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/teams/teams.repo.ts:35\n \n \n\n\n \n \n Finds teams which the user is a member.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n Array of teams\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateRoles\n \n \n \n \n \n \n \n populateRoles(roles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/teams/teams.repo.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n cacheExpiration\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 60000\n \n \n \n \n Defined in apps/server/src/shared/repo/teams/teams.repo.ts:12\n \n \n\n\n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/teams/teams.repo.ts:8\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Role, TeamEntity, TeamUserEntity } from '@shared/domain';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class TeamsRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn TeamEntity;\n\t}\n\n\tcacheExpiration = 60000;\n\n\tasync findById(id: EntityId, populate = false): Promise {\n\t\tconst team = await this._em.findOneOrFail(TeamEntity, { id }, { cache: this.cacheExpiration });\n\n\t\tif (populate) {\n\t\t\tawait Promise.all(\n\t\t\t\tteam.teamUsers.map(async (teamUser: TeamUserEntity): Promise => {\n\t\t\t\t\tawait this._em.populate(teamUser, ['role']);\n\t\t\t\t\tawait this.populateRoles([teamUser.role]);\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\treturn team;\n\t}\n\n\t/**\n\t * Finds teams which the user is a member.\n\t *\n\t * @param userId\n\t * @return Array of teams\n\t */\n\tasync findByUserId(userId: EntityId): Promise {\n\t\tconst teams: TeamEntity[] = await this._em.find(TeamEntity, {\n\t\t\tuserIds: { userId: new ObjectId(userId) },\n\t\t});\n\t\treturn teams;\n\t}\n\n\tprivate async populateRoles(roles: Role[]): Promise {\n\t\treturn Promise.all(\n\t\t\troles.map(async (role: Role): Promise => {\n\t\t\t\tif (!role.roles.isInitialized(true)) {\n\t\t\t\t\tawait this._em.populate(role, ['roles']);\n\t\t\t\t\tawait this.populateRoles(role.roles.getItems());\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TestApiClient.html":{"url":"classes/TestApiClient.html","title":"class - TestApiClient","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TestApiClient\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/test-api-client.ts\n \n\n\n \n Description\n \n \n Note res.cookie is not supported atm, feel free to add this\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n app\n \n \n Private\n Readonly\n baseRoute\n \n \n Private\n Readonly\n formattedJwt\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkAndAddPrefix\n \n \n Private\n cleanupPath\n \n \n Public\n delete\n \n \n Public\n get\n \n \n Private\n getJwtFromResponse\n \n \n Private\n getPath\n \n \n Private\n isAuthenticationResponse\n \n \n Private\n isSlash\n \n \n Public\n Async\n login\n \n \n Public\n patch\n \n \n Public\n post\n \n \n Public\n put\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(app: INestApplication, baseRoute: string, jwt?: string)\n \n \n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n app\n \n \n INestApplication\n \n \n \n No\n \n \n \n \n baseRoute\n \n \n string\n \n \n \n No\n \n \n \n \n jwt\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n app\n \n \n \n \n \n \n Type : INestApplication\n\n \n \n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n baseRoute\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n formattedJwt\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:30\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkAndAddPrefix\n \n \n \n \n \n \n \n checkAndAddPrefix(inputPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n inputPath\n \n string\n \n\n \n No\n \n\n \n '/'\n \n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n cleanupPath\n \n \n \n \n \n \n \n cleanupPath(inputPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:120\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n inputPath\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n delete\n \n \n \n \n \n \n \n delete(subPath?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n get\n \n \n \n \n \n \n \n get(subPath?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getJwtFromResponse\n \n \n \n \n \n \n \n getJwtFromResponse(response: Response)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getPath\n \n \n \n \n \n \n \n getPath(routeNameInput: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n routeNameInput\n \n string\n \n\n \n No\n \n\n \n ''\n \n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isAuthenticationResponse\n \n \n \n \n \n \n \n isAuthenticationResponse(body)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:136\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n body\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthenticationResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isSlash\n \n \n \n \n \n \n \n isSlash(inputPath: string, pos: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:104\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n inputPath\n \n string\n \n\n \n No\n \n\n\n \n \n pos\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n login\n \n \n \n \n \n \n \n login(account: Account)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n Account\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n patch\n \n \n \n \n \n \n \n patch(subPath?: string, data: object)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n data\n \n object\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n post\n \n \n \n \n \n \n \n post(subPath?: string, data: object)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n data\n \n object\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n put\n \n \n \n \n \n \n \n put(subPath?: string, data: object)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n data\n \n object\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { INestApplication } from '@nestjs/common';\nimport { Account } from '@shared/domain';\nimport supertest, { Response } from 'supertest';\nimport { defaultTestPassword } from './factory/account.factory';\n\ninterface AuthenticationResponse {\n\taccessToken: string;\n}\n\nconst headerConst = {\n\taccept: 'accept',\n\tjson: 'application/json',\n};\n\nconst testReqestConst = {\n\tprefix: 'Bearer',\n\tloginPath: '/authentication/local',\n\taccessToken: 'accessToken',\n\terrorMessage: 'TestApiClient: Can not cast to local AutenticationResponse:',\n};\n\n/**\n * Note res.cookie is not supported atm, feel free to add this\n */\nexport class TestApiClient {\n\tprivate readonly app: INestApplication;\n\n\tprivate readonly baseRoute: string;\n\n\tprivate readonly formattedJwt: string;\n\n\tconstructor(app: INestApplication, baseRoute: string, jwt?: string) {\n\t\tthis.app = app;\n\t\tthis.baseRoute = this.checkAndAddPrefix(baseRoute);\n\t\tthis.formattedJwt = `${testReqestConst.prefix} ${jwt || ''}`;\n\t}\n\n\tpublic get(subPath?: string): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer()).get(path).set('authorization', this.formattedJwt);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic delete(subPath?: string): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.delete(path)\n\t\t\t.set('authorization', this.formattedJwt);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic put(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.put(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic patch(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.patch(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic post(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.post(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic async login(account: Account): Promise {\n\t\tconst path = testReqestConst.loginPath;\n\t\tconst params: { username: string; password: string } = {\n\t\t\tusername: account.username,\n\t\t\tpassword: defaultTestPassword,\n\t\t};\n\t\tconst response = await supertest(this.app.getHttpServer())\n\t\t\t.post(path)\n\t\t\t.set(headerConst.accept, headerConst.json)\n\t\t\t.send(params);\n\n\t\tconst jwtFromResponse = this.getJwtFromResponse(response);\n\n\t\treturn new (this.constructor as new (app: INestApplication, baseRoute: string, jwt?: string) => this)(\n\t\t\tthis.app,\n\t\t\tthis.baseRoute,\n\t\t\tjwtFromResponse\n\t\t);\n\t}\n\n\tprivate isSlash(inputPath: string, pos: number): boolean {\n\t\tconst isSlash = inputPath.charAt(pos) === '/';\n\n\t\treturn isSlash;\n\t}\n\n\tprivate checkAndAddPrefix(inputPath = '/'): string {\n\t\tlet path = '';\n\t\tif (!this.isSlash(inputPath, 0)) {\n\t\t\tpath = '/';\n\t\t}\n\t\tpath += inputPath;\n\n\t\treturn path;\n\t}\n\n\tprivate cleanupPath(inputPath: string): string {\n\t\tlet path = inputPath;\n\t\tif (this.isSlash(path, 0) && this.isSlash(path, 1)) {\n\t\t\tpath = path.slice(1);\n\t\t}\n\n\t\treturn path;\n\t}\n\n\tprivate getPath(routeNameInput = ''): string {\n\t\tconst routeName = this.checkAndAddPrefix(routeNameInput);\n\t\tconst path = this.cleanupPath(this.baseRoute + routeName);\n\n\t\treturn path;\n\t}\n\n\tprivate isAuthenticationResponse(body: unknown): body is AuthenticationResponse {\n\t\tconst isAuthenticationResponse = typeof body === 'object' && body !== null && testReqestConst.accessToken in body;\n\n\t\treturn isAuthenticationResponse;\n\t}\n\n\tprivate getJwtFromResponse(response: Response): string {\n\t\tif (!this.isAuthenticationResponse(response.body)) {\n\t\t\tconst body = JSON.stringify(response.body);\n\t\t\tthrow new Error(`${testReqestConst.errorMessage} ${body}`);\n\t\t}\n\t\tconst authenticationResponse = response.body;\n\t\tconst jwt = authenticationResponse.accessToken;\n\n\t\treturn jwt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TestBootstrapConsole.html":{"url":"classes/TestBootstrapConsole.html","title":"class - TestBootstrapConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TestBootstrapConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/console/api-test/test-bootstrap.console.ts\n \n\n\n\n \n Extends\n \n \n AbstractBootstrapConsole\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n create\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate()\n \n \n\n\n \n \n Defined in apps/server/src/console/api-test/test-bootstrap.console.ts:8\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { createMock } from '@golevelup/ts-jest';\nimport { Test, TestingModule } from '@nestjs/testing';\nimport { ConsoleWriterService } from '@shared/infra/console';\nimport { DatabaseManagementUc } from '@src/modules/management/uc/database-management.uc';\nimport { AbstractBootstrapConsole, BootstrapConsole } from 'nestjs-console';\n\nexport class TestBootstrapConsole extends AbstractBootstrapConsole {\n\tcreate(): Promise {\n\t\treturn Test.createTestingModule({\n\t\t\timports: [this.options.module],\n\t\t})\n\t\t\t.overrideProvider(DatabaseManagementUc)\n\t\t\t.useValue(createMock())\n\t\t\t.overrideProvider(ConsoleWriterService)\n\t\t\t.useValue(createMock())\n\t\t\t.compile();\n\t}\n}\n\nexport const execute = async (bootstrap: BootstrapConsole, args: string[]): Promise => {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst commandResponse = await bootstrap.boot([process.argv0, 'console', ...args]);\n\treturn Promise.resolve();\n};\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TestHelper.html":{"url":"classes/TestHelper.html","title":"class - TestHelper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TestHelper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/helper/test-helper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n createFile\n \n \n Static\n createFileResponse\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n createFile\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/files-storage/helper/test-helper.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Static\n createFileResponse\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/files-storage/helper/test-helper.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { GetFile } from '@shared/infra/s3-client';\nimport { Readable } from 'stream';\nimport { GetFileResponse } from '../interface';\n\nexport class TestHelper {\n\tpublic static createFile = (contentRange?: string): GetFile => {\n\t\tconst text = 'testText';\n\t\tconst readable = Readable.from(text);\n\n\t\tconst fileResponse = {\n\t\t\tdata: readable,\n\t\t\tcontentType: 'image/webp',\n\t\t\tcontentLength: text.length,\n\t\t\tcontentRange,\n\t\t\tetag: 'testTag',\n\t\t};\n\n\t\treturn fileResponse;\n\t};\n\n\tpublic static createFileResponse = (contentRange?: string): GetFileResponse => {\n\t\tconst name = 'testName';\n\t\tconst file = this.createFile(contentRange);\n\t\tconst fileResponse = { ...file, name };\n\n\t\treturn fileResponse;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TimeoutInterceptor.html":{"url":"injectables/TimeoutInterceptor.html","title":"injectable - TimeoutInterceptor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TimeoutInterceptor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/interceptor/timeout.interceptor.ts\n \n\n\n \n Description\n \n \n This interceptor leaves the request execution after a given timeout in ms.\nThis will not stop the running services behind the controller.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n intercept\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(requestTimeout: number)\n \n \n \n \n Defined in apps/server/src/shared/common/interceptor/timeout.interceptor.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n requestTimeout\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n intercept\n \n \n \n \n \n \nintercept(context: ExecutionContext, next: CallHandler)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/interceptor/timeout.interceptor.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n context\n \n ExecutionContext\n \n\n \n No\n \n\n\n \n \n next\n \n CallHandler\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Observable\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { CallHandler, ExecutionContext, Injectable, NestInterceptor, RequestTimeoutException } from '@nestjs/common';\nimport { Reflector } from '@nestjs/core';\nimport { Observable, throwError, TimeoutError } from 'rxjs';\nimport { catchError, timeout } from 'rxjs/operators';\n\n/**\n * This interceptor leaves the request execution after a given timeout in ms.\n * This will not stop the running services behind the controller.\n */\n@Injectable()\nexport class TimeoutInterceptor implements NestInterceptor {\n\tconstructor(private readonly requestTimeout: number) {}\n\n\tintercept(context: ExecutionContext, next: CallHandler): Observable {\n\t\tconst reflector = new Reflector();\n\t\tconst timeoutValue =\n\t\t\treflector.get('timeout', context.getHandler()) || reflector.get('timeout', context.getClass());\n\t\treturn next.handle().pipe(\n\t\t\ttimeout(timeoutValue || this.requestTimeout),\n\t\t\tcatchError((err: Error) => {\n\t\t\t\tif (err instanceof TimeoutError) {\n\t\t\t\t\treturn throwError(() => new RequestTimeoutException());\n\t\t\t\t}\n\t\t\t\treturn throwError(() => err);\n\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TimestampsResponse.html":{"url":"classes/TimestampsResponse.html","title":"class - TimestampsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TimestampsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/timestamps.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n Optional\n deletedAt\n \n \n \n lastUpdatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: TimestampsResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/timestamps.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n TimestampsResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/timestamps.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n deletedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/timestamps.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastUpdatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/timestamps.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class TimestampsResponse {\n\tconstructor({ lastUpdatedAt, createdAt, deletedAt }: TimestampsResponse) {\n\t\tthis.lastUpdatedAt = lastUpdatedAt;\n\t\tthis.createdAt = createdAt;\n\t\tthis.deletedAt = deletedAt;\n\t}\n\n\t@ApiProperty()\n\tlastUpdatedAt: Date;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiPropertyOptional()\n\tdeletedAt?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToggleUserLoginMigrationUc.html":{"url":"injectables/ToggleUserLoginMigrationUc.html","title":"injectable - ToggleUserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToggleUserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/toggle-user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkPermission\n \n \n Async\n setMigrationMandatory\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, authorizationService: AuthorizationService, schoolService: LegacySchoolService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/toggle-user-login-migration.uc.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/toggle-user-login-migration.uc.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigrationMandatory\n \n \n \n \n \n \n \n setMigrationMandatory(userId: string, schoolId: string, mandatory: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/toggle-user-login-migration.uc.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n mandatory\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Permission, LegacySchoolDo, User, UserLoginMigrationDO } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationContext, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport {\n\tUserLoginMigrationAlreadyClosedLoggableException,\n\tUserLoginMigrationGracePeriodExpiredLoggableException,\n\tUserLoginMigrationNotFoundLoggableException,\n} from '../error';\nimport { UserLoginMigrationMandatoryLoggable } from '../loggable';\nimport { UserLoginMigrationService } from '../service';\n\n@Injectable()\nexport class ToggleUserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly logger: Logger\n\t) {}\n\n\tasync setMigrationMandatory(userId: string, schoolId: string, mandatory: boolean): Promise {\n\t\tawait this.checkPermission(userId, schoolId);\n\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t} else if (userLoginMigration.finishedAt && Date.now() >= userLoginMigration.finishedAt.getTime()) {\n\t\t\tthrow new UserLoginMigrationGracePeriodExpiredLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.finishedAt\n\t\t\t);\n\t\t} else if (userLoginMigration.closedAt) {\n\t\t\tthrow new UserLoginMigrationAlreadyClosedLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.closedAt\n\t\t\t);\n\t\t} else {\n\t\t\tuserLoginMigration = await this.userLoginMigrationService.setMigrationMandatory(schoolId, mandatory);\n\n\t\t\tthis.logger.debug(new UserLoginMigrationMandatoryLoggable(userId, userLoginMigration.id as string, mandatory));\n\t\t}\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync checkPermission(userId: string, schoolId: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.USER_LOGIN_MIGRATION_ADMIN]);\n\t\tthis.authorizationService.checkPermission(user, school, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TokenGenerator.html":{"url":"injectables/TokenGenerator.html","title":"injectable - TokenGenerator","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TokenGenerator\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/service/token-generator.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n generateShareToken\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n generateShareToken\n \n \n \n \n \n \ngenerateShareToken()\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/token-generator.service.ts:7\n \n \n\n\n \n \n\n \n Returns : ShareTokenString\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { nanoid } from 'nanoid';\nimport { ShareTokenString } from '../domainobject/share-token.do';\n\n@Injectable()\nexport class TokenGenerator {\n\tgenerateShareToken(): ShareTokenString {\n\t\tconst token = nanoid(12);\n\t\treturn token;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TokenRequestMapper.html":{"url":"classes/TokenRequestMapper.html","title":"class - TokenRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TokenRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/mapper/token-request.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n createAuthenticationCodeGrantTokenRequestPayload\n \n \n Static\n mapTokenResponseToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n createAuthenticationCodeGrantTokenRequestPayload\n \n \n \n \n \n \n \n createAuthenticationCodeGrantTokenRequestPayload(clientId: string, decryptedClientSecret: string, code: string, redirectUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/mapper/token-request.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n decryptedClientSecret\n \n string\n \n\n \n No\n \n\n\n \n \n code\n \n string\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthenticationCodeGrantTokenRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapTokenResponseToDto\n \n \n \n \n \n \n \n mapTokenResponseToDto(response: OauthTokenResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/mapper/token-request.mapper.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n OauthTokenResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OAuthTokenDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OAuthTokenDto } from '../interface';\nimport { OAuthGrantType } from '../interface/oauth-grant-type.enum';\nimport { AuthenticationCodeGrantTokenRequest, OauthTokenResponse } from '../service/dto';\n\nexport class TokenRequestMapper {\n\tstatic createAuthenticationCodeGrantTokenRequestPayload(\n\t\tclientId: string,\n\t\tdecryptedClientSecret: string,\n\t\tcode: string,\n\t\tredirectUri: string\n\t): AuthenticationCodeGrantTokenRequest {\n\t\treturn new AuthenticationCodeGrantTokenRequest({\n\t\t\tclient_id: clientId,\n\t\t\tclient_secret: decryptedClientSecret,\n\t\t\tredirect_uri: redirectUri,\n\t\t\tgrant_type: OAuthGrantType.AUTHORIZATION_CODE_GRANT,\n\t\t\tcode,\n\t\t});\n\t}\n\n\tstatic mapTokenResponseToDto(response: OauthTokenResponse): OAuthTokenDto {\n\t\treturn new OAuthTokenDto({\n\t\t\tidToken: response.id_token,\n\t\t\trefreshToken: response.refresh_token,\n\t\t\taccessToken: response.access_token,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ToolApiModule.html":{"url":"modules/ToolApiModule.html","title":"module - ToolApiModule","body":"\n \n\n\n\n\n Modules\n ToolApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ToolApiModule\n\n\n\ncluster_ToolApiModule_imports\n\n\n\ncluster_ToolApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nToolApiModule\n\nToolApiModule\n\nToolApiModule -->\n\nAuthorizationModule->ToolApiModule\n\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\nToolApiModule -->\n\nCommonToolModule->ToolApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nToolApiModule -->\n\nLegacySchoolModule->ToolApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nToolApiModule -->\n\nLoggerModule->ToolApiModule\n\n\n\n\n\nToolConfigModule\n\nToolConfigModule\n\nToolApiModule -->\n\nToolConfigModule->ToolApiModule\n\n\n\n\n\nToolModule\n\nToolModule\n\nToolApiModule -->\n\nToolModule->ToolApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nToolApiModule -->\n\nUserModule->ToolApiModule\n\n\n\n\n\nContextExternalToolUc\n\nContextExternalToolUc\n\nToolApiModule -->\n\nContextExternalToolUc->ToolApiModule\n\n\n\n\n\nExternalToolConfigurationService\n\nExternalToolConfigurationService\n\nToolApiModule -->\n\nExternalToolConfigurationService->ToolApiModule\n\n\n\n\n\nExternalToolConfigurationUc\n\nExternalToolConfigurationUc\n\nToolApiModule -->\n\nExternalToolConfigurationUc->ToolApiModule\n\n\n\n\n\nExternalToolRequestMapper\n\nExternalToolRequestMapper\n\nToolApiModule -->\n\nExternalToolRequestMapper->ToolApiModule\n\n\n\n\n\nExternalToolResponseMapper\n\nExternalToolResponseMapper\n\nToolApiModule -->\n\nExternalToolResponseMapper->ToolApiModule\n\n\n\n\n\nExternalToolUc\n\nExternalToolUc\n\nToolApiModule -->\n\nExternalToolUc->ToolApiModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nToolApiModule -->\n\nLtiToolRepo->ToolApiModule\n\n\n\n\n\nSchoolExternalToolRequestMapper\n\nSchoolExternalToolRequestMapper\n\nToolApiModule -->\n\nSchoolExternalToolRequestMapper->ToolApiModule\n\n\n\n\n\nSchoolExternalToolResponseMapper\n\nSchoolExternalToolResponseMapper\n\nToolApiModule -->\n\nSchoolExternalToolResponseMapper->ToolApiModule\n\n\n\n\n\nSchoolExternalToolUc\n\nSchoolExternalToolUc\n\nToolApiModule -->\n\nSchoolExternalToolUc->ToolApiModule\n\n\n\n\n\nToolLaunchUc\n\nToolLaunchUc\n\nToolApiModule -->\n\nToolLaunchUc->ToolApiModule\n\n\n\n\n\nToolReferenceUc\n\nToolReferenceUc\n\nToolApiModule -->\n\nToolReferenceUc->ToolApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/tool-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ContextExternalToolUc\n \n \n ExternalToolConfigurationService\n \n \n ExternalToolConfigurationUc\n \n \n ExternalToolRequestMapper\n \n \n ExternalToolResponseMapper\n \n \n ExternalToolUc\n \n \n LtiToolRepo\n \n \n SchoolExternalToolRequestMapper\n \n \n SchoolExternalToolResponseMapper\n \n \n SchoolExternalToolUc\n \n \n ToolLaunchUc\n \n \n ToolReferenceUc\n \n \n \n \n Controllers\n \n \n ToolLaunchController\n \n \n ToolConfigurationController\n \n \n ToolSchoolController\n \n \n ToolContextController\n \n \n ToolController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CommonToolModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n ToolConfigModule\n \n \n ToolModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { UserModule } from '@src/modules/user';\nimport { ToolContextController } from './context-external-tool/controller';\nimport { ContextExternalToolUc } from './context-external-tool/uc';\nimport { ToolConfigurationController, ToolController } from './external-tool/controller';\nimport { ExternalToolRequestMapper, ExternalToolResponseMapper } from './external-tool/mapper';\nimport { ExternalToolConfigurationUc, ExternalToolUc, ToolReferenceUc } from './external-tool/uc';\nimport { ToolSchoolController } from './school-external-tool/controller';\nimport { SchoolExternalToolRequestMapper, SchoolExternalToolResponseMapper } from './school-external-tool/mapper';\nimport { SchoolExternalToolUc } from './school-external-tool/uc';\nimport { ToolConfigModule } from './tool-config.module';\nimport { ToolLaunchController } from './tool-launch/controller/tool-launch.controller';\nimport { ToolLaunchUc } from './tool-launch/uc';\nimport { ToolModule } from './tool.module';\nimport { ExternalToolConfigurationService } from './external-tool/service';\nimport { CommonToolModule } from './common';\n\n@Module({\n\timports: [\n\t\tToolModule,\n\t\tCommonToolModule,\n\t\tUserModule,\n\t\tAuthorizationModule,\n\t\tLoggerModule,\n\t\tLegacySchoolModule,\n\t\tToolConfigModule,\n\t],\n\tcontrollers: [\n\t\tToolLaunchController,\n\t\tToolConfigurationController,\n\t\tToolSchoolController,\n\t\tToolContextController,\n\t\tToolController,\n\t],\n\tproviders: [\n\t\tLtiToolRepo,\n\t\tExternalToolUc,\n\t\tExternalToolConfigurationUc,\n\t\tExternalToolConfigurationService,\n\t\tExternalToolRequestMapper,\n\t\tExternalToolResponseMapper,\n\t\tSchoolExternalToolUc,\n\t\tSchoolExternalToolResponseMapper,\n\t\tSchoolExternalToolRequestMapper,\n\t\tContextExternalToolUc,\n\t\tToolLaunchUc,\n\t\tToolReferenceUc,\n\t],\n})\nexport class ToolApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ToolConfigModule.html":{"url":"modules/ToolConfigModule.html","title":"module - ToolConfigModule","body":"\n \n\n\n\n\n Modules\n ToolConfigModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/tool-config.module.ts\n \n\n\n\n\n\n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport ToolConfiguration, { ToolFeatures } from './tool-config';\n\n@Module({\n\tproviders: [\n\t\t{\n\t\t\tprovide: ToolFeatures,\n\t\t\tuseValue: ToolConfiguration.toolFeatures,\n\t\t},\n\t],\n\texports: [ToolFeatures],\n})\nexport class ToolConfigModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolConfiguration.html":{"url":"classes/ToolConfiguration.html","title":"class - ToolConfiguration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolConfiguration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n toolFeatures\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n toolFeatures\n \n \n \n \n \n \n Type : IToolFeatures\n\n \n \n \n \n Default value : {\n\t\tctlToolsTabEnabled: Configuration.get('FEATURE_CTL_TOOLS_TAB_ENABLED') as boolean,\n\t\tltiToolsTabEnabled: Configuration.get('FEATURE_LTI_TOOLS_TAB_ENABLED') as boolean,\n\t\tcontextConfigurationEnabled: Configuration.get('FEATURE_CTL_CONTEXT_CONFIGURATION_ENABLED') as boolean,\n\t\tmaxExternalToolLogoSizeInBytes: Configuration.get('CTL_TOOLS__EXTERNAL_TOOL_MAX_LOGO_SIZE_IN_BYTES') as number,\n\t\tbackEndUrl: Configuration.get('PUBLIC_BACKEND_URL') as string,\n\t}\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-config.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\n\nexport const ToolFeatures = Symbol('ToolFeatures');\n\nexport interface IToolFeatures {\n\tctlToolsTabEnabled: boolean;\n\tltiToolsTabEnabled: boolean;\n\tcontextConfigurationEnabled: boolean;\n\tmaxExternalToolLogoSizeInBytes: number;\n\tbackEndUrl: string;\n}\n\nexport default class ToolConfiguration {\n\tstatic toolFeatures: IToolFeatures = {\n\t\tctlToolsTabEnabled: Configuration.get('FEATURE_CTL_TOOLS_TAB_ENABLED') as boolean,\n\t\tltiToolsTabEnabled: Configuration.get('FEATURE_LTI_TOOLS_TAB_ENABLED') as boolean,\n\t\tcontextConfigurationEnabled: Configuration.get('FEATURE_CTL_CONTEXT_CONFIGURATION_ENABLED') as boolean,\n\t\tmaxExternalToolLogoSizeInBytes: Configuration.get('CTL_TOOLS__EXTERNAL_TOOL_MAX_LOGO_SIZE_IN_BYTES') as number,\n\t\tbackEndUrl: Configuration.get('PUBLIC_BACKEND_URL') as string,\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolConfigurationController.html":{"url":"controllers/ToolConfigurationController.html","title":"controller - ToolConfigurationController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolConfigurationController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts\n \n\n \n Prefix\n \n \n tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForContext\n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForSchool\n \n \n \n \n \n \n \n Public\n Async\n getConfigurationTemplateForContext\n \n \n \n \n \n \n \n Public\n Async\n getConfigurationTemplateForSchool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForContext\n \n \n \n \n \n \n \n getAvailableToolsForContext(currentUser: ICurrentUser, params: ContextRefParams)\n \n \n\n \n \n Decorators : \n \n @Get(':contextType/:contextId/available-tools')@ApiForbiddenResponse()@ApiOperation({summary: 'Lists all available tools that can be added for a given context'})@ApiOkResponse({description: 'List of available tools for a context', type: ContextExternalToolConfigurationTemplateListResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextRefParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForSchool\n \n \n \n \n \n \n \n getAvailableToolsForSchool(currentUser: ICurrentUser, params: SchoolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('school/:schoolId/available-tools')@ApiForbiddenResponse()@ApiOperation({summary: 'Lists all available tools that can be added for a given school'})@ApiOkResponse({description: 'List of available tools for a school', type: SchoolExternalToolConfigurationTemplateListResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getConfigurationTemplateForContext\n \n \n \n \n \n \n \n getConfigurationTemplateForContext(currentUser: ICurrentUser, params: ContextExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('context-external-tools/:contextExternalToolId/configuration-template')@ApiUnauthorizedResponse()@ApiForbiddenResponse()@ApiOperation({summary: 'Get the latest configuration template for a Context External Tool'})@ApiFoundResponse({description: 'Configuration template for a Context External Tool', type: ContextExternalToolConfigurationTemplateResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getConfigurationTemplateForSchool\n \n \n \n \n \n \n \n getConfigurationTemplateForSchool(currentUser: ICurrentUser, params: SchoolExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('school-external-tools/:schoolExternalToolId/configuration-template')@ApiUnauthorizedResponse()@ApiForbiddenResponse()@ApiOperation({summary: 'Get the latest configuration template for a School External Tool'})@ApiFoundResponse({description: 'Configuration template for a School External Tool', type: SchoolExternalToolConfigurationTemplateResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param } from '@nestjs/common';\nimport {\n\tApiForbiddenResponse,\n\tApiFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n} from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ExternalTool } from '../domain';\nimport { ToolConfigurationMapper } from '../mapper/tool-configuration.mapper';\nimport { ContextExternalToolTemplateInfo, ExternalToolConfigurationUc } from '../uc';\nimport {\n\tContextExternalToolConfigurationTemplateListResponse,\n\tContextExternalToolConfigurationTemplateResponse,\n\tContextExternalToolIdParams,\n\tContextRefParams,\n\tSchoolExternalToolConfigurationTemplateListResponse,\n\tSchoolExternalToolConfigurationTemplateResponse,\n\tSchoolExternalToolIdParams,\n\tSchoolIdParams,\n} from './dto';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools')\nexport class ToolConfigurationController {\n\tconstructor(private readonly externalToolConfigurationUc: ExternalToolConfigurationUc) {}\n\n\t@Get('school/:schoolId/available-tools')\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Lists all available tools that can be added for a given school' })\n\t@ApiOkResponse({\n\t\tdescription: 'List of available tools for a school',\n\t\ttype: SchoolExternalToolConfigurationTemplateListResponse,\n\t})\n\tpublic async getAvailableToolsForSchool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolIdParams\n\t): Promise {\n\t\tconst availableTools: ExternalTool[] = await this.externalToolConfigurationUc.getAvailableToolsForSchool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.schoolId\n\t\t);\n\n\t\tconst mapped: SchoolExternalToolConfigurationTemplateListResponse =\n\t\t\tToolConfigurationMapper.mapToSchoolExternalToolConfigurationTemplateListResponse(availableTools);\n\n\t\treturn mapped;\n\t}\n\n\t@Get(':contextType/:contextId/available-tools')\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Lists all available tools that can be added for a given context' })\n\t@ApiOkResponse({\n\t\tdescription: 'List of available tools for a context',\n\t\ttype: ContextExternalToolConfigurationTemplateListResponse,\n\t})\n\tpublic async getAvailableToolsForContext(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextRefParams\n\t): Promise {\n\t\tconst availableTools: ContextExternalToolTemplateInfo[] =\n\t\t\tawait this.externalToolConfigurationUc.getAvailableToolsForContext(\n\t\t\t\tcurrentUser.userId,\n\t\t\t\tcurrentUser.schoolId,\n\t\t\t\tparams.contextId,\n\t\t\t\tparams.contextType\n\t\t\t);\n\n\t\tconst mapped: ContextExternalToolConfigurationTemplateListResponse =\n\t\t\tToolConfigurationMapper.mapToContextExternalToolConfigurationTemplateListResponse(availableTools);\n\n\t\treturn mapped;\n\t}\n\n\t@Get('school-external-tools/:schoolExternalToolId/configuration-template')\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Get the latest configuration template for a School External Tool' })\n\t@ApiFoundResponse({\n\t\tdescription: 'Configuration template for a School External Tool',\n\t\ttype: SchoolExternalToolConfigurationTemplateResponse,\n\t})\n\tpublic async getConfigurationTemplateForSchool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolExternalToolIdParams\n\t): Promise {\n\t\tconst tool: ExternalTool = await this.externalToolConfigurationUc.getTemplateForSchoolExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.schoolExternalToolId\n\t\t);\n\n\t\tconst mapped: SchoolExternalToolConfigurationTemplateResponse =\n\t\t\tToolConfigurationMapper.mapToSchoolExternalToolConfigurationTemplateResponse(tool);\n\n\t\treturn mapped;\n\t}\n\n\t@Get('context-external-tools/:contextExternalToolId/configuration-template')\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Get the latest configuration template for a Context External Tool' })\n\t@ApiFoundResponse({\n\t\tdescription: 'Configuration template for a Context External Tool',\n\t\ttype: ContextExternalToolConfigurationTemplateResponse,\n\t})\n\tpublic async getConfigurationTemplateForContext(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams\n\t): Promise {\n\t\tconst tool: ContextExternalToolTemplateInfo =\n\t\t\tawait this.externalToolConfigurationUc.getTemplateForContextExternalTool(\n\t\t\t\tcurrentUser.userId,\n\t\t\t\tparams.contextExternalToolId\n\t\t\t);\n\n\t\tconst mapped: ContextExternalToolConfigurationTemplateResponse =\n\t\t\tToolConfigurationMapper.mapToContextExternalToolConfigurationTemplateResponse(tool);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolConfigurationMapper.html":{"url":"classes/ToolConfigurationMapper.html","title":"class - ToolConfigurationMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolConfigurationMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToContextExternalToolConfigurationTemplateListResponse\n \n \n Static\n mapToContextExternalToolConfigurationTemplateResponse\n \n \n Static\n mapToSchoolExternalToolConfigurationTemplateListResponse\n \n \n Static\n mapToSchoolExternalToolConfigurationTemplateResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToContextExternalToolConfigurationTemplateListResponse\n \n \n \n \n \n \n \n mapToContextExternalToolConfigurationTemplateListResponse(toolInfos: ContextExternalToolTemplateInfo[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolInfos\n \n ContextExternalToolTemplateInfo[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolConfigurationTemplateListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToContextExternalToolConfigurationTemplateResponse\n \n \n \n \n \n \n \n mapToContextExternalToolConfigurationTemplateResponse(toolInfo: ContextExternalToolTemplateInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolInfo\n \n ContextExternalToolTemplateInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolConfigurationTemplateResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToSchoolExternalToolConfigurationTemplateListResponse\n \n \n \n \n \n \n \n mapToSchoolExternalToolConfigurationTemplateListResponse(externalTools: ExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTools\n \n ExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolConfigurationTemplateListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToSchoolExternalToolConfigurationTemplateResponse\n \n \n \n \n \n \n \n mapToSchoolExternalToolConfigurationTemplateResponse(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolConfigurationTemplateResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import {\n\tContextExternalToolConfigurationTemplateListResponse,\n\tContextExternalToolConfigurationTemplateResponse,\n\tSchoolExternalToolConfigurationTemplateListResponse,\n\tSchoolExternalToolConfigurationTemplateResponse,\n} from '../controller/dto';\nimport { ExternalTool } from '../domain';\nimport { ContextExternalToolTemplateInfo } from '../uc';\nimport { ExternalToolResponseMapper } from './external-tool-response.mapper';\n\nexport class ToolConfigurationMapper {\n\tstatic mapToSchoolExternalToolConfigurationTemplateResponse(\n\t\texternalTool: ExternalTool\n\t): SchoolExternalToolConfigurationTemplateResponse {\n\t\tconst mapped = new SchoolExternalToolConfigurationTemplateResponse({\n\t\t\texternalToolId: externalTool.id ?? '',\n\t\t\tname: externalTool.name,\n\t\t\tlogoUrl: externalTool.logoUrl,\n\t\t\tparameters: externalTool.parameters\n\t\t\t\t? ExternalToolResponseMapper.mapCustomParameterToResponse(externalTool.parameters)\n\t\t\t\t: [],\n\t\t\tversion: externalTool.version,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapToSchoolExternalToolConfigurationTemplateListResponse(\n\t\texternalTools: ExternalTool[]\n\t): SchoolExternalToolConfigurationTemplateListResponse {\n\t\tconst mappedTools = externalTools.map(\n\t\t\t(tool): SchoolExternalToolConfigurationTemplateResponse =>\n\t\t\t\tthis.mapToSchoolExternalToolConfigurationTemplateResponse(tool)\n\t\t);\n\n\t\tconst mapped = new SchoolExternalToolConfigurationTemplateListResponse(mappedTools);\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapToContextExternalToolConfigurationTemplateResponse(\n\t\ttoolInfo: ContextExternalToolTemplateInfo\n\t): ContextExternalToolConfigurationTemplateResponse {\n\t\tconst { externalTool, schoolExternalTool } = toolInfo;\n\n\t\tconst mapped = new ContextExternalToolConfigurationTemplateResponse({\n\t\t\texternalToolId: externalTool.id ?? '',\n\t\t\tschoolExternalToolId: schoolExternalTool.id ?? '',\n\t\t\tname: externalTool.name,\n\t\t\tlogoUrl: externalTool.logoUrl,\n\t\t\tparameters: externalTool.parameters\n\t\t\t\t? ExternalToolResponseMapper.mapCustomParameterToResponse(externalTool.parameters)\n\t\t\t\t: [],\n\t\t\tversion: externalTool.version,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapToContextExternalToolConfigurationTemplateListResponse(\n\t\ttoolInfos: ContextExternalToolTemplateInfo[]\n\t): ContextExternalToolConfigurationTemplateListResponse {\n\t\tconst mappedTools = toolInfos.map(\n\t\t\t(tool): ContextExternalToolConfigurationTemplateResponse =>\n\t\t\t\tthis.mapToContextExternalToolConfigurationTemplateResponse(tool)\n\t\t);\n\n\t\tconst mapped = new ContextExternalToolConfigurationTemplateListResponse(mappedTools);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolContextController.html":{"url":"controllers/ToolContextController.html","title":"controller - ToolContextController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolContextController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts\n \n\n \n Prefix\n \n \n tools/context-external-tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createContextExternalTool\n \n \n \n \n \n \n \n Async\n deleteContextExternalTool\n \n \n \n \n \n \n \n \n Async\n getContextExternalTool\n \n \n \n \n \n \n \n Async\n getContextExternalToolsForContext\n \n \n \n \n \n \n \n \n Async\n updateContextExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createContextExternalTool\n \n \n \n \n \n \n \n createContextExternalTool(currentUser: ICurrentUser, body: ContextExternalToolPostParams)\n \n \n\n \n \n Decorators : \n \n @Post()@ApiCreatedResponse({description: 'The ContextExternalTool has been successfully created.', type: ContextExternalToolResponse})@ApiForbiddenResponse()@ApiUnprocessableEntityResponse()@ApiUnauthorizedResponse()@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Creates a ContextExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n ContextExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteContextExternalTool\n \n \n \n \n \n \n \n deleteContextExternalTool(currentUser: ICurrentUser, params: ContextExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Delete(':contextExternalToolId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOperation({summary: 'Deletes a ContextExternalTool'})@HttpCode(HttpStatus.NO_CONTENT)\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalTool\n \n \n \n \n \n \n \n getContextExternalTool(currentUser: ICurrentUser, params: ContextExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get(':contextExternalToolId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiNotFoundResponse()@ApiOkResponse({description: 'Returns a ContextExternalTool for the given id', type: ContextExternalToolResponse})@ApiOperation({summary: 'Searches a ContextExternalTool for the given id'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:121\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalToolsForContext\n \n \n \n \n \n \n \n getContextExternalToolsForContext(currentUser: ICurrentUser, params: ContextExternalToolContextParams)\n \n \n\n \n \n Decorators : \n \n @Get(':contextType/:contextId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOkResponse({description: 'Returns a list of ContextExternalTools for the given context', type: ContextExternalToolSearchListResponse})@ApiOperation({summary: 'Returns a list of ContextExternalTools for the given context'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:88\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolContextParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateContextExternalTool\n \n \n \n \n \n \n \n updateContextExternalTool(currentUser: ICurrentUser, params: ContextExternalToolIdParams, body: ContextExternalToolPostParams)\n \n \n\n \n \n Decorators : \n \n @Put(':contextExternalToolId')@ApiOkResponse({description: 'The ContextExternalTool has been successfully updated.', type: ContextExternalToolResponse})@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiUnprocessableEntityResponse()@ApiOperation({summary: 'Updates a ContextExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:145\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n body\n \n ContextExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put } from '@nestjs/common';\nimport {\n\tApiCreatedResponse,\n\tApiForbiddenResponse,\n\tApiNotFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiResponse,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n} from '@nestjs/swagger';\nimport { ValidationError } from '@shared/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ContextExternalTool } from '../domain';\nimport { ContextExternalToolRequestMapper, ContextExternalToolResponseMapper } from '../mapper';\nimport { ContextExternalToolUc } from '../uc';\nimport { ContextExternalToolDto } from '../uc/dto/context-external-tool.types';\nimport {\n\tContextExternalToolContextParams,\n\tContextExternalToolIdParams,\n\tContextExternalToolPostParams,\n\tContextExternalToolResponse,\n\tContextExternalToolSearchListResponse,\n} from './dto';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools/context-external-tools')\nexport class ToolContextController {\n\tconstructor(private readonly contextExternalToolUc: ContextExternalToolUc, private readonly logger: LegacyLogger) {}\n\n\t@Post()\n\t@ApiCreatedResponse({\n\t\tdescription: 'The ContextExternalTool has been successfully created.',\n\t\ttype: ContextExternalToolResponse,\n\t})\n\t@ApiForbiddenResponse()\n\t@ApiUnprocessableEntityResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Creates a ContextExternalTool' })\n\tasync createContextExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: ContextExternalToolPostParams\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalToolDto =\n\t\t\tContextExternalToolRequestMapper.mapContextExternalToolRequest(body);\n\n\t\tconst createdTool: ContextExternalTool = await this.contextExternalToolUc.createContextExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\tconst response: ContextExternalToolResponse =\n\t\t\tContextExternalToolResponseMapper.mapContextExternalToolResponse(createdTool);\n\n\t\tthis.logger.debug(`ContextExternalTool with id ${response.id} was created by user with id ${currentUser.userId}`);\n\t\treturn response;\n\t}\n\n\t@Delete(':contextExternalToolId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOperation({ summary: 'Deletes a ContextExternalTool' })\n\t@HttpCode(HttpStatus.NO_CONTENT)\n\tasync deleteContextExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams\n\t): Promise {\n\t\tawait this.contextExternalToolUc.deleteContextExternalTool(currentUser.userId, params.contextExternalToolId);\n\n\t\tthis.logger.debug(\n\t\t\t`ContextExternalTool with id ${params.contextExternalToolId} was deleted by user with id ${currentUser.userId}`\n\t\t);\n\t}\n\n\t@Get(':contextType/:contextId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOkResponse({\n\t\tdescription: 'Returns a list of ContextExternalTools for the given context',\n\t\ttype: ContextExternalToolSearchListResponse,\n\t})\n\t@ApiOperation({ summary: 'Returns a list of ContextExternalTools for the given context' })\n\tasync getContextExternalToolsForContext(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolContextParams\n\t): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] =\n\t\t\tawait this.contextExternalToolUc.getContextExternalToolsForContext(\n\t\t\t\tcurrentUser.userId,\n\t\t\t\tparams.contextType,\n\t\t\t\tparams.contextId\n\t\t\t);\n\n\t\tconst mappedTools: ContextExternalToolResponse[] = contextExternalTools.map(\n\t\t\t(tool: ContextExternalTool): ContextExternalToolResponse =>\n\t\t\t\tContextExternalToolResponseMapper.mapContextExternalToolResponse(tool)\n\t\t);\n\n\t\tthis.logger.debug(\n\t\t\t`User with id ${currentUser.userId} fetched ContextExternalTools for contextType: ${params.contextType} and contextId: ${params.contextId}`\n\t\t);\n\n\t\tconst response: ContextExternalToolSearchListResponse = new ContextExternalToolSearchListResponse(mappedTools);\n\t\treturn response;\n\t}\n\n\t@Get(':contextExternalToolId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiNotFoundResponse()\n\t@ApiOkResponse({\n\t\tdescription: 'Returns a ContextExternalTool for the given id',\n\t\ttype: ContextExternalToolResponse,\n\t})\n\t@ApiOperation({ summary: 'Searches a ContextExternalTool for the given id' })\n\tasync getContextExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolUc.getContextExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextExternalToolId\n\t\t);\n\n\t\tconst response: ContextExternalToolResponse =\n\t\t\tContextExternalToolResponseMapper.mapContextExternalToolResponse(contextExternalTool);\n\n\t\treturn response;\n\t}\n\n\t@Put(':contextExternalToolId')\n\t@ApiOkResponse({\n\t\tdescription: 'The ContextExternalTool has been successfully updated.',\n\t\ttype: ContextExternalToolResponse,\n\t})\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiUnprocessableEntityResponse()\n\t@ApiOperation({ summary: 'Updates a ContextExternalTool' })\n\tasync updateContextExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams,\n\t\t@Body() body: ContextExternalToolPostParams\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalToolDto =\n\t\t\tContextExternalToolRequestMapper.mapContextExternalToolRequest(body);\n\n\t\tconst updatedTool: ContextExternalTool = await this.contextExternalToolUc.updateContextExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextExternalToolId,\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\tconst response: ContextExternalToolResponse =\n\t\t\tContextExternalToolResponseMapper.mapContextExternalToolResponse(updatedTool);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolController.html":{"url":"controllers/ToolController.html","title":"controller - ToolController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/tool.controller.ts\n \n\n \n Prefix\n \n \n tools/external-tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createExternalTool\n \n \n \n \n \n \n \n Async\n deleteExternalTool\n \n \n \n \n \n \n \n Async\n findExternalTool\n \n \n \n \n Async\n getExternalTool\n \n \n \n \n \n \n Async\n getExternalToolLogo\n \n \n \n \n \n \n \n Async\n getToolReferences\n \n \n \n \n \n \n \n \n Async\n updateExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createExternalTool\n \n \n \n \n \n \n \n createExternalTool(currentUser: ICurrentUser, externalToolParams: ExternalToolCreateParams)\n \n \n\n \n \n Decorators : \n \n @Post()@ApiCreatedResponse({description: 'The Tool has been successfully created.', type: ExternalToolResponse})@ApiForbiddenResponse()@ApiUnprocessableEntityResponse()@ApiUnauthorizedResponse()@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Creates an ExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n externalToolParams\n \n ExternalToolCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteExternalTool\n \n \n \n \n \n \n \n deleteExternalTool(currentUser: ICurrentUser, params: ExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Delete(':externalToolId')@ApiForbiddenResponse({description: 'User is not allowed to access this resource.'})@ApiUnauthorizedResponse({description: 'User is not logged in.'})@ApiOperation({summary: 'Deletes an ExternalTool'})@HttpCode(HttpStatus.NO_CONTENT)\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:147\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findExternalTool\n \n \n \n \n \n \n \n findExternalTool(currentUser: ICurrentUser, filterQuery: ExternalToolSearchParams, pagination: PaginationParams, sortingQuery: SortExternalToolParams)\n \n \n\n \n \n Decorators : \n \n @Get()@ApiFoundResponse({description: 'Tools has been found.', type: ExternalToolSearchListResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()@ApiOperation({summary: 'Returns a list of ExternalTools'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n filterQuery\n \n ExternalToolSearchParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n sortingQuery\n \n SortExternalToolParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getExternalTool\n \n \n \n \n \n \n \n getExternalTool(currentUser: ICurrentUser, params: ExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get(':externalToolId')@ApiOperation({summary: 'Returns an ExternalTool for the given id'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getExternalToolLogo\n \n \n \n \n \n \n \n getExternalToolLogo(params: ExternalToolIdParams, res: Response)\n \n \n\n \n \n Decorators : \n \n @Get('/:externalToolId/logo')@ApiOperation({summary: 'Gets the logo of an external tool.'})@ApiOkResponse({description: 'Logo of external tool fetched successfully.'})@ApiUnauthorizedResponse({description: 'User is not logged in.'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:191\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolReferences\n \n \n \n \n \n \n \n getToolReferences(currentUser: ICurrentUser, params: ContextExternalToolContextParams)\n \n \n\n \n \n Decorators : \n \n @Get('/:contextType/:contextId/references')@ApiOperation({summary: 'Get ExternalTool References for a given context'})@ApiOkResponse({description: 'The Tool References has been successfully fetched.', type: ToolReferenceListResponse})@ApiForbiddenResponse({description: 'User is not allowed to access this resource.'})@ApiUnauthorizedResponse({description: 'User is not logged in.'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolContextParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateExternalTool\n \n \n \n \n \n \n \n updateExternalTool(currentUser: ICurrentUser, params: ExternalToolIdParams, externalToolParams: ExternalToolUpdateParams)\n \n \n\n \n \n Decorators : \n \n @Post('/:externalToolId')@ApiOkResponse({description: 'The Tool has been successfully updated.', type: ExternalToolResponse})@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Updates an ExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:125\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n externalToolParams\n \n ExternalToolUpdateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Query, Res } from '@nestjs/common';\nimport {\n\tApiCreatedResponse,\n\tApiForbiddenResponse,\n\tApiFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiResponse,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n} from '@nestjs/swagger';\nimport { ValidationError } from '@shared/common';\nimport { PaginationParams } from '@shared/controller';\nimport { IFindOptions, Page } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { Response } from 'express';\nimport { ExternalToolSearchQuery } from '../../common/interface';\nimport { ContextExternalToolContextParams } from '../../context-external-tool/controller/dto';\nimport { ExternalTool, ToolReference } from '../domain';\nimport { ExternalToolLogo } from '../domain/external-tool-logo';\nimport { ExternalToolRequestMapper, ExternalToolResponseMapper } from '../mapper';\nimport { ExternalToolCreate, ExternalToolUc, ExternalToolUpdate, ToolReferenceUc } from '../uc';\nimport {\n\tExternalToolCreateParams,\n\tExternalToolResponse,\n\tExternalToolSearchListResponse,\n\tExternalToolSearchParams,\n\tExternalToolUpdateParams,\n\tSortExternalToolParams,\n\tExternalToolIdParams,\n\tToolReferenceListResponse,\n\tToolReferenceResponse,\n} from './dto';\nimport { ExternalToolLogoService } from '../service';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools/external-tools')\nexport class ToolController {\n\tconstructor(\n\t\tprivate readonly externalToolUc: ExternalToolUc,\n\t\tprivate readonly externalToolDOMapper: ExternalToolRequestMapper,\n\t\tprivate readonly toolReferenceUc: ToolReferenceUc,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\t@Post()\n\t@ApiCreatedResponse({ description: 'The Tool has been successfully created.', type: ExternalToolResponse })\n\t@ApiForbiddenResponse()\n\t@ApiUnprocessableEntityResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Creates an ExternalTool' })\n\tasync createExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() externalToolParams: ExternalToolCreateParams\n\t): Promise {\n\t\tconst externalTool: ExternalToolCreate = this.externalToolDOMapper.mapCreateRequest(externalToolParams);\n\n\t\tconst created: ExternalTool = await this.externalToolUc.createExternalTool(currentUser.userId, externalTool);\n\n\t\tconst mapped: ExternalToolResponse = ExternalToolResponseMapper.mapToExternalToolResponse(created);\n\n\t\tthis.logger.debug(`ExternalTool with id ${mapped.id} was created by user with id ${currentUser.userId}`);\n\n\t\treturn mapped;\n\t}\n\n\t@Get()\n\t@ApiFoundResponse({ description: 'Tools has been found.', type: ExternalToolSearchListResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Returns a list of ExternalTools' })\n\tasync findExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() filterQuery: ExternalToolSearchParams,\n\t\t@Query() pagination: PaginationParams,\n\t\t@Query() sortingQuery: SortExternalToolParams\n\t): Promise {\n\t\tconst options: IFindOptions = { pagination };\n\t\toptions.order = this.externalToolDOMapper.mapSortingQueryToDomain(sortingQuery);\n\t\tconst query: ExternalToolSearchQuery =\n\t\t\tthis.externalToolDOMapper.mapExternalToolFilterQueryToExternalToolSearchQuery(filterQuery);\n\n\t\tconst tools: Page = await this.externalToolUc.findExternalTool(currentUser.userId, query, options);\n\n\t\tconst dtoList: ExternalToolResponse[] = tools.data.map(\n\t\t\t(tool: ExternalTool): ExternalToolResponse => ExternalToolResponseMapper.mapToExternalToolResponse(tool)\n\t\t);\n\t\tconst response: ExternalToolSearchListResponse = new ExternalToolSearchListResponse(\n\t\t\tdtoList,\n\t\t\ttools.total,\n\t\t\tpagination.skip,\n\t\t\tpagination.limit\n\t\t);\n\n\t\treturn response;\n\t}\n\n\t@Get(':externalToolId')\n\t@ApiOperation({ summary: 'Returns an ExternalTool for the given id' })\n\tasync getExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ExternalToolIdParams\n\t): Promise {\n\t\tconst externalTool: ExternalTool = await this.externalToolUc.getExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.externalToolId\n\t\t);\n\t\tconst mapped: ExternalToolResponse = ExternalToolResponseMapper.mapToExternalToolResponse(externalTool);\n\n\t\treturn mapped;\n\t}\n\n\t@Post('/:externalToolId')\n\t@ApiOkResponse({ description: 'The Tool has been successfully updated.', type: ExternalToolResponse })\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Updates an ExternalTool' })\n\tasync updateExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ExternalToolIdParams,\n\t\t@Body() externalToolParams: ExternalToolUpdateParams\n\t): Promise {\n\t\tconst externalTool: ExternalToolUpdate = this.externalToolDOMapper.mapUpdateRequest(externalToolParams);\n\t\tconst updated: ExternalTool = await this.externalToolUc.updateExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.externalToolId,\n\t\t\texternalTool\n\t\t);\n\t\tconst mapped: ExternalToolResponse = ExternalToolResponseMapper.mapToExternalToolResponse(updated);\n\t\tthis.logger.debug(`ExternalTool with id ${mapped.id} was updated by user with id ${currentUser.userId}`);\n\n\t\treturn mapped;\n\t}\n\n\t@Delete(':externalToolId')\n\t@ApiForbiddenResponse({ description: 'User is not allowed to access this resource.' })\n\t@ApiUnauthorizedResponse({ description: 'User is not logged in.' })\n\t@ApiOperation({ summary: 'Deletes an ExternalTool' })\n\t@HttpCode(HttpStatus.NO_CONTENT)\n\tasync deleteExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ExternalToolIdParams\n\t): Promise {\n\t\tconst promise: Promise = this.externalToolUc.deleteExternalTool(currentUser.userId, params.externalToolId);\n\t\tthis.logger.debug(\n\t\t\t`ExternalTool with id ${params.externalToolId} was deleted by user with id ${currentUser.userId}`\n\t\t);\n\n\t\treturn promise;\n\t}\n\n\t@Get('/:contextType/:contextId/references')\n\t@ApiOperation({ summary: 'Get ExternalTool References for a given context' })\n\t@ApiOkResponse({\n\t\tdescription: 'The Tool References has been successfully fetched.',\n\t\ttype: ToolReferenceListResponse,\n\t})\n\t@ApiForbiddenResponse({ description: 'User is not allowed to access this resource.' })\n\t@ApiUnauthorizedResponse({ description: 'User is not logged in.' })\n\tasync getToolReferences(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolContextParams\n\t): Promise {\n\t\tconst toolReferences: ToolReference[] = await this.toolReferenceUc.getToolReferences(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextType,\n\t\t\tparams.contextId,\n\t\t\t'/v3/tools/external-tools/{id}/logo'\n\t\t);\n\n\t\tconst toolReferenceResponses: ToolReferenceResponse[] =\n\t\t\tExternalToolResponseMapper.mapToToolReferenceResponses(toolReferences);\n\t\tconst toolReferenceListResponse = new ToolReferenceListResponse(toolReferenceResponses);\n\n\t\treturn toolReferenceListResponse;\n\t}\n\n\t@Get('/:externalToolId/logo')\n\t@ApiOperation({ summary: 'Gets the logo of an external tool.' })\n\t@ApiOkResponse({\n\t\tdescription: 'Logo of external tool fetched successfully.',\n\t})\n\t@ApiUnauthorizedResponse({ description: 'User is not logged in.' })\n\tasync getExternalToolLogo(@Param() params: ExternalToolIdParams, @Res() res: Response): Promise {\n\t\tconst externalToolLogo: ExternalToolLogo = await this.externalToolLogoService.getExternalToolBinaryLogo(\n\t\t\tparams.externalToolId\n\t\t);\n\t\tres.setHeader('Content-Type', externalToolLogo.contentType);\n\t\tres.setHeader('Cache-Control', 'must-revalidate');\n\t\tres.send(externalToolLogo.logo);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolLaunchController.html":{"url":"controllers/ToolLaunchController.html","title":"controller - ToolLaunchController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolLaunchController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/controller/tool-launch.controller.ts\n \n\n \n Prefix\n \n \n tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolLaunchRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolLaunchRequest\n \n \n \n \n \n \n \n getToolLaunchRequest(currentUser: ICurrentUser, params: ToolLaunchParams)\n \n \n\n \n \n Decorators : \n \n @Get('context/:contextExternalToolId/launch')@ApiOperation({summary: 'Get tool launch request for a context external tool id'})@ApiOkResponse({description: 'Tool launch request', type: ToolLaunchRequestResponse})@ApiUnauthorizedResponse({description: 'Unauthorized'})@ApiForbiddenResponse({description: 'Forbidden'})@ApiBadRequestResponse({description: 'Outdated tools cannot be launched'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/tool-launch.controller.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param } from '@nestjs/common';\nimport {\n\tApiBadRequestResponse,\n\tApiForbiddenResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n} from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ToolLaunchUc } from '../uc';\nimport { ToolLaunchParams, ToolLaunchRequestResponse } from './dto';\nimport { ToolLaunchMapper } from '../mapper';\nimport { ToolLaunchRequest } from '../types';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools')\nexport class ToolLaunchController {\n\tconstructor(private readonly toolLaunchUc: ToolLaunchUc) {}\n\n\t@Get('context/:contextExternalToolId/launch')\n\t@ApiOperation({ summary: 'Get tool launch request for a context external tool id' })\n\t@ApiOkResponse({ description: 'Tool launch request', type: ToolLaunchRequestResponse })\n\t@ApiUnauthorizedResponse({ description: 'Unauthorized' })\n\t@ApiForbiddenResponse({ description: 'Forbidden' })\n\t@ApiBadRequestResponse({ description: 'Outdated tools cannot be launched' })\n\tasync getToolLaunchRequest(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ToolLaunchParams\n\t): Promise {\n\t\tconst toolLaunchRequest: ToolLaunchRequest = await this.toolLaunchUc.getToolLaunchRequest(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextExternalToolId\n\t\t);\n\n\t\tconst response: ToolLaunchRequestResponse = ToolLaunchMapper.mapToToolLaunchRequestResponse(toolLaunchRequest);\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchData.html":{"url":"classes/ToolLaunchData.html","title":"class - ToolLaunchData","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchData\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n baseUrl\n \n \n openNewTab\n \n \n properties\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ToolLaunchData)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ToolLaunchData\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n properties\n \n \n \n \n \n \n Type : PropertyData[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolLaunchDataType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PropertyData } from './property-data';\nimport { ToolLaunchDataType } from './tool-launch-data-type';\n\nexport class ToolLaunchData {\n\tbaseUrl: string;\n\n\ttype: ToolLaunchDataType;\n\n\tproperties: PropertyData[];\n\n\topenNewTab: boolean;\n\n\tconstructor(props: ToolLaunchData) {\n\t\tthis.baseUrl = props.baseUrl;\n\t\tthis.type = props.type;\n\t\tthis.properties = props.properties;\n\t\tthis.openNewTab = props.openNewTab;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchMapper.html":{"url":"classes/ToolLaunchMapper.html","title":"class - ToolLaunchMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToParameterLocation\n \n \n Static\n mapToToolConfigType\n \n \n Static\n mapToToolLaunchDataType\n \n \n Static\n mapToToolLaunchRequestResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToParameterLocation\n \n \n \n \n \n \n \n mapToParameterLocation(location: CustomParameterLocation)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n location\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PropertyLocation\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToToolConfigType\n \n \n \n \n \n \n \n mapToToolConfigType(launchDataType: ToolLaunchDataType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n launchDataType\n \n ToolLaunchDataType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolConfigType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToToolLaunchDataType\n \n \n \n \n \n \n \n mapToToolLaunchDataType(configType: ToolConfigType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n configType\n \n ToolConfigType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchDataType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToToolLaunchRequestResponse\n \n \n \n \n \n \n \n mapToToolLaunchRequestResponse(toolLaunchRequest: ToolLaunchRequest)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchRequest\n \n ToolLaunchRequest\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequestResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { PropertyLocation, ToolLaunchDataType, ToolLaunchRequest } from '../types';\nimport { ToolLaunchRequestResponse } from '../controller/dto';\nimport { CustomParameterLocation, ToolConfigType } from '../../common/enum';\n\nconst customToParameterLocationMapping: Record = {\n\t[CustomParameterLocation.PATH]: PropertyLocation.PATH,\n\t[CustomParameterLocation.BODY]: PropertyLocation.BODY,\n\t[CustomParameterLocation.QUERY]: PropertyLocation.QUERY,\n};\n\nconst toolConfigTypeToToolLaunchDataTypeMapping: Record = {\n\t[ToolConfigType.BASIC]: ToolLaunchDataType.BASIC,\n\t[ToolConfigType.LTI11]: ToolLaunchDataType.LTI11,\n\t[ToolConfigType.OAUTH2]: ToolLaunchDataType.OAUTH2,\n};\n\nconst toolLaunchDataTypeToToolConfigTypeMapping: Record = Object.entries(\n\ttoolConfigTypeToToolLaunchDataTypeMapping\n).reduce((acc: Record, [key, value]) => {\n\treturn { ...acc, [value]: key as ToolConfigType };\n}, {} as Record);\n\nexport class ToolLaunchMapper {\n\tstatic mapToParameterLocation(location: CustomParameterLocation): PropertyLocation {\n\t\tconst mappedLocation = customToParameterLocationMapping[location];\n\t\treturn mappedLocation;\n\t}\n\n\tstatic mapToToolLaunchDataType(configType: ToolConfigType): ToolLaunchDataType {\n\t\tconst mappedType = toolConfigTypeToToolLaunchDataTypeMapping[configType];\n\t\treturn mappedType;\n\t}\n\n\tstatic mapToToolConfigType(launchDataType: ToolLaunchDataType): ToolConfigType {\n\t\tconst mappedType = toolLaunchDataTypeToToolConfigTypeMapping[launchDataType];\n\t\treturn mappedType;\n\t}\n\n\tstatic mapToToolLaunchRequestResponse(toolLaunchRequest: ToolLaunchRequest): ToolLaunchRequestResponse {\n\t\tconst { method, url, payload, openNewTab } = toolLaunchRequest;\n\n\t\tconst response = new ToolLaunchRequestResponse({\n\t\t\tmethod,\n\t\t\turl,\n\t\t\tpayload,\n\t\t\topenNewTab,\n\t\t});\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ToolLaunchModule.html":{"url":"modules/ToolLaunchModule.html","title":"module - ToolLaunchModule","body":"\n \n\n\n\n\n Modules\n ToolLaunchModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ToolLaunchModule\n\n\n\ncluster_ToolLaunchModule_imports\n\n\n\ncluster_ToolLaunchModule_providers\n\n\n\ncluster_ToolLaunchModule_exports\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nToolLaunchModule\n\nToolLaunchModule\n\nToolLaunchModule -->\n\nCommonToolModule->ToolLaunchModule\n\n\n\n\n\nContextExternalToolModule\n\nContextExternalToolModule\n\nToolLaunchModule -->\n\nContextExternalToolModule->ToolLaunchModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nToolLaunchModule -->\n\nExternalToolModule->ToolLaunchModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nToolLaunchModule -->\n\nLearnroomModule->ToolLaunchModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nToolLaunchModule -->\n\nLegacySchoolModule->ToolLaunchModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nToolLaunchModule -->\n\nPseudonymModule->ToolLaunchModule\n\n\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nToolLaunchModule -->\n\nSchoolExternalToolModule->ToolLaunchModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nToolLaunchModule -->\n\nUserModule->ToolLaunchModule\n\n\n\n\n\nToolLaunchService \n\nToolLaunchService \n\nToolLaunchService -->\n\nToolLaunchModule->ToolLaunchService \n\n\n\n\n\nBasicToolLaunchStrategy\n\nBasicToolLaunchStrategy\n\nToolLaunchModule -->\n\nBasicToolLaunchStrategy->ToolLaunchModule\n\n\n\n\n\nLti11EncryptionService\n\nLti11EncryptionService\n\nToolLaunchModule -->\n\nLti11EncryptionService->ToolLaunchModule\n\n\n\n\n\nLti11ToolLaunchStrategy\n\nLti11ToolLaunchStrategy\n\nToolLaunchModule -->\n\nLti11ToolLaunchStrategy->ToolLaunchModule\n\n\n\n\n\nOAuth2ToolLaunchStrategy\n\nOAuth2ToolLaunchStrategy\n\nToolLaunchModule -->\n\nOAuth2ToolLaunchStrategy->ToolLaunchModule\n\n\n\n\n\nToolLaunchService\n\nToolLaunchService\n\nToolLaunchModule -->\n\nToolLaunchService->ToolLaunchModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/tool-launch/tool-launch.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BasicToolLaunchStrategy\n \n \n Lti11EncryptionService\n \n \n Lti11ToolLaunchStrategy\n \n \n OAuth2ToolLaunchStrategy\n \n \n ToolLaunchService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n ContextExternalToolModule\n \n \n ExternalToolModule\n \n \n LearnroomModule\n \n \n LegacySchoolModule\n \n \n PseudonymModule\n \n \n SchoolExternalToolModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n ToolLaunchService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LearnroomModule } from '@src/modules/learnroom';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { PseudonymModule } from '@src/modules/pseudonym';\nimport { UserModule } from '@src/modules/user';\nimport { CommonToolModule } from '../common';\nimport { ContextExternalToolModule } from '../context-external-tool';\nimport { ExternalToolModule } from '../external-tool';\nimport { SchoolExternalToolModule } from '../school-external-tool';\nimport { Lti11EncryptionService, ToolLaunchService } from './service';\nimport { BasicToolLaunchStrategy, Lti11ToolLaunchStrategy, OAuth2ToolLaunchStrategy } from './service/strategy';\n\n@Module({\n\timports: [\n\t\tCommonToolModule,\n\t\tExternalToolModule,\n\t\tSchoolExternalToolModule,\n\t\tContextExternalToolModule,\n\t\tLegacySchoolModule,\n\t\tUserModule,\n\t\tPseudonymModule,\n\t\tLearnroomModule,\n\t],\n\tproviders: [\n\t\tToolLaunchService,\n\t\tBasicToolLaunchStrategy,\n\t\tLti11ToolLaunchStrategy,\n\t\tOAuth2ToolLaunchStrategy,\n\t\tLti11EncryptionService,\n\t],\n\texports: [ToolLaunchService],\n})\nexport class ToolLaunchModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchParams.html":{"url":"classes/ToolLaunchParams.html","title":"class - ToolLaunchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the context external tool', nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ToolLaunchParams {\n\t@IsMongoId()\n\t@ApiProperty({ description: 'The id of the context external tool', nullable: false, required: true })\n\tcontextExternalToolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchRequest.html":{"url":"classes/ToolLaunchRequest.html","title":"class - ToolLaunchRequest","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchRequest\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n method\n \n \n openNewTab\n \n \n Optional\n payload\n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ToolLaunchRequest)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ToolLaunchRequest\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n method\n \n \n \n \n \n \n Type : LaunchRequestMethod\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n payload\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LaunchRequestMethod } from './launch-request-method';\n\nexport class ToolLaunchRequest {\n\tmethod: LaunchRequestMethod;\n\n\turl: string;\n\n\tpayload?: string;\n\n\topenNewTab: boolean;\n\n\tconstructor(props: ToolLaunchRequest) {\n\t\tthis.url = props.url;\n\t\tthis.method = props.method;\n\t\tthis.payload = props.payload;\n\t\tthis.openNewTab = props.openNewTab;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchRequestResponse.html":{"url":"classes/ToolLaunchRequestResponse.html","title":"class - ToolLaunchRequestResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchRequestResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n method\n \n \n \n Optional\n openNewTab\n \n \n \n Optional\n payload\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ToolLaunchRequestResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ToolLaunchRequestResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n method\n \n \n \n \n \n \n Type : LaunchRequestMethod\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The Launch Request method (GET or POST)', enum: LaunchRequestMethod, example: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Specifies whether the Tool should be launched in a new tab', example: true, required: false})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n payload\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The payload for the Tool Launch Request (optional)', example: '{ \"key\": \"value\" }', required: false})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The URL for the Tool Launch Request', example: 'https://example.com/tool-launch'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { LaunchRequestMethod } from '../../types';\n\nexport class ToolLaunchRequestResponse {\n\t@ApiProperty({\n\t\tdescription: 'The Launch Request method (GET or POST)',\n\t\tenum: LaunchRequestMethod,\n\t\texample: LaunchRequestMethod.GET,\n\t})\n\tmethod!: LaunchRequestMethod;\n\n\t@ApiProperty({\n\t\tdescription: 'The URL for the Tool Launch Request',\n\t\texample: 'https://example.com/tool-launch',\n\t})\n\turl!: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The payload for the Tool Launch Request (optional)',\n\t\texample: '{ \"key\": \"value\" }',\n\t\trequired: false,\n\t})\n\tpayload?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Specifies whether the Tool should be launched in a new tab',\n\t\texample: true,\n\t\trequired: false,\n\t})\n\topenNewTab?: boolean;\n\n\tconstructor(props: ToolLaunchRequestResponse) {\n\t\tthis.url = props.url;\n\t\tthis.method = props.method;\n\t\tthis.payload = props.payload;\n\t\tthis.openNewTab = props.openNewTab;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToolLaunchService.html":{"url":"injectables/ToolLaunchService.html","title":"injectable - ToolLaunchService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolLaunchService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n strategies\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n generateLaunchRequest\n \n \n Async\n getLaunchData\n \n \n Private\n isToolStatusLatestOrThrow\n \n \n Private\n Async\n loadToolHierarchy\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolExternalToolService: SchoolExternalToolService, externalToolService: ExternalToolService, basicToolLaunchStrategy: BasicToolLaunchStrategy, lti11ToolLaunchStrategy: Lti11ToolLaunchStrategy, oauth2ToolLaunchStrategy: OAuth2ToolLaunchStrategy, commonToolService: CommonToolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n basicToolLaunchStrategy\n \n \n BasicToolLaunchStrategy\n \n \n \n No\n \n \n \n \n lti11ToolLaunchStrategy\n \n \n Lti11ToolLaunchStrategy\n \n \n \n No\n \n \n \n \n oauth2ToolLaunchStrategy\n \n \n OAuth2ToolLaunchStrategy\n \n \n \n No\n \n \n \n \n commonToolService\n \n \n CommonToolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n generateLaunchRequest\n \n \n \n \n \n \ngenerateLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getLaunchData\n \n \n \n \n \n \n \n getLaunchData(userId: EntityId, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isToolStatusLatestOrThrow\n \n \n \n \n \n \n \n isToolStatusLatestOrThrow(userId: EntityId, externalTool: ExternalTool, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:88\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n loadToolHierarchy\n \n \n \n \n \n \n \n loadToolHierarchy(schoolExternalToolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n strategies\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:22\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { CommonToolService } from '../../common/service';\nimport { ToolLaunchMapper } from '../mapper';\nimport { ToolLaunchData, ToolLaunchRequest } from '../types';\nimport {\n\tBasicToolLaunchStrategy,\n\tIToolLaunchStrategy,\n\tLti11ToolLaunchStrategy,\n\tOAuth2ToolLaunchStrategy,\n} from './strategy';\nimport { ToolStatusOutdatedLoggableException } from '../error';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { ToolConfigType, ToolConfigurationStatus } from '../../common/enum';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\n\n@Injectable()\nexport class ToolLaunchService {\n\tprivate strategies: Map;\n\n\tconstructor(\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly basicToolLaunchStrategy: BasicToolLaunchStrategy,\n\t\tprivate readonly lti11ToolLaunchStrategy: Lti11ToolLaunchStrategy,\n\t\tprivate readonly oauth2ToolLaunchStrategy: OAuth2ToolLaunchStrategy,\n\t\tprivate readonly commonToolService: CommonToolService\n\t) {\n\t\tthis.strategies = new Map();\n\t\tthis.strategies.set(ToolConfigType.BASIC, basicToolLaunchStrategy);\n\t\tthis.strategies.set(ToolConfigType.LTI11, lti11ToolLaunchStrategy);\n\t\tthis.strategies.set(ToolConfigType.OAUTH2, oauth2ToolLaunchStrategy);\n\t}\n\n\tgenerateLaunchRequest(toolLaunchData: ToolLaunchData): ToolLaunchRequest {\n\t\tconst toolConfigType: ToolConfigType = ToolLaunchMapper.mapToToolConfigType(toolLaunchData.type);\n\t\tconst strategy: IToolLaunchStrategy | undefined = this.strategies.get(toolConfigType);\n\n\t\tif (!strategy) {\n\t\t\tthrow new InternalServerErrorException('Unknown tool launch data type');\n\t\t}\n\n\t\tconst launchRequest: ToolLaunchRequest = strategy.createLaunchRequest(toolLaunchData);\n\n\t\treturn launchRequest;\n\t}\n\n\tasync getLaunchData(userId: EntityId, contextExternalTool: ContextExternalTool): Promise {\n\t\tconst schoolExternalToolId: EntityId = contextExternalTool.schoolToolRef.schoolToolId;\n\n\t\tconst { externalTool, schoolExternalTool } = await this.loadToolHierarchy(schoolExternalToolId);\n\n\t\tthis.isToolStatusLatestOrThrow(userId, externalTool, schoolExternalTool, contextExternalTool);\n\n\t\tconst strategy: IToolLaunchStrategy | undefined = this.strategies.get(externalTool.config.type);\n\n\t\tif (!strategy) {\n\t\t\tthrow new InternalServerErrorException('Unknown tool config type');\n\t\t}\n\n\t\tconst launchData: ToolLaunchData = await strategy.createLaunchData(userId, {\n\t\t\texternalTool,\n\t\t\tschoolExternalTool,\n\t\t\tcontextExternalTool,\n\t\t});\n\n\t\treturn launchData;\n\t}\n\n\tprivate async loadToolHierarchy(\n\t\tschoolExternalToolId: string\n\t): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tschoolExternalToolId\n\t\t);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findExternalToolById(schoolExternalTool.toolId);\n\n\t\treturn {\n\t\t\tschoolExternalTool,\n\t\t\texternalTool,\n\t\t};\n\t}\n\n\tprivate isToolStatusLatestOrThrow(\n\t\tuserId: EntityId,\n\t\texternalTool: ExternalTool,\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): void {\n\t\tconst status: ToolConfigurationStatus = this.commonToolService.determineToolConfigurationStatus(\n\t\t\texternalTool,\n\t\t\tschoolExternalTool,\n\t\t\tcontextExternalTool\n\t\t);\n\t\tif (status !== ToolConfigurationStatus.LATEST) {\n\t\t\tthrow new ToolStatusOutdatedLoggableException(userId, contextExternalTool.id ?? '');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToolLaunchUc.html":{"url":"injectables/ToolLaunchUc.html","title":"injectable - ToolLaunchUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolLaunchUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/uc/tool-launch.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getToolLaunchRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolLaunchService: ToolLaunchService, contextExternalToolService: ContextExternalToolService, toolPermissionHelper: ToolPermissionHelper)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/uc/tool-launch.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchService\n \n \n ToolLaunchService\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getToolLaunchRequest\n \n \n \n \n \n \n \n getToolLaunchRequest(userId: EntityId, contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/uc/tool-launch.uc.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { AuthorizationContext, AuthorizationContextBuilder } from '@src/modules/authorization';\nimport { ToolLaunchService } from '../service';\nimport { ToolLaunchData, ToolLaunchRequest } from '../types';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class ToolLaunchUc {\n\tconstructor(\n\t\tprivate readonly toolLaunchService: ToolLaunchService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper\n\t) {}\n\n\tasync getToolLaunchRequest(userId: EntityId, contextExternalToolId: EntityId): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolService.getContextExternalToolById(\n\t\t\tcontextExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_USER]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tconst toolLaunchData: ToolLaunchData = await this.toolLaunchService.getLaunchData(userId, contextExternalTool);\n\t\tconst launchRequest: ToolLaunchRequest = this.toolLaunchService.generateLaunchRequest(toolLaunchData);\n\n\t\treturn launchRequest;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ToolModule.html":{"url":"modules/ToolModule.html","title":"module - ToolModule","body":"\n \n\n\n\n\n Modules\n ToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ToolModule\n\n\n\ncluster_ToolModule_exports\n\n\n\ncluster_ToolModule_providers\n\n\n\ncluster_ToolModule_imports\n\n\n\n\nContextExternalToolModule\n\nContextExternalToolModule\n\n\n\nToolModule\n\nToolModule\n\nToolModule -->\n\nContextExternalToolModule->ToolModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nToolModule -->\n\nExternalToolModule->ToolModule\n\n\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nToolModule -->\n\nSchoolExternalToolModule->ToolModule\n\n\n\n\n\nToolConfigModule\n\nToolConfigModule\n\nToolModule -->\n\nToolConfigModule->ToolModule\n\n\n\n\n\nToolLaunchModule\n\nToolLaunchModule\n\nToolModule -->\n\nToolLaunchModule->ToolModule\n\n\n\n\n\nCommonToolService \n\nCommonToolService \n\nCommonToolService -->\n\nToolModule->CommonToolService \n\n\n\n\n\nContextExternalToolModule \n\nContextExternalToolModule \n\nContextExternalToolModule -->\n\nToolModule->ContextExternalToolModule \n\n\n\n\n\nExternalToolModule \n\nExternalToolModule \n\nExternalToolModule -->\n\nToolModule->ExternalToolModule \n\n\n\n\n\nSchoolExternalToolModule \n\nSchoolExternalToolModule \n\nSchoolExternalToolModule -->\n\nToolModule->SchoolExternalToolModule \n\n\n\n\n\nToolLaunchModule \n\nToolLaunchModule \n\nToolLaunchModule -->\n\nToolModule->ToolLaunchModule \n\n\n\n\n\nCommonToolService\n\nCommonToolService\n\nToolModule -->\n\nCommonToolService->ToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CommonToolService\n \n \n \n \n Imports\n \n \n ContextExternalToolModule\n \n \n ExternalToolModule\n \n \n SchoolExternalToolModule\n \n \n ToolConfigModule\n \n \n ToolLaunchModule\n \n \n \n \n Exports\n \n \n CommonToolService\n \n \n ContextExternalToolModule\n \n \n ExternalToolModule\n \n \n SchoolExternalToolModule\n \n \n ToolLaunchModule\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { ContextExternalToolModule } from './context-external-tool';\nimport { SchoolExternalToolModule } from './school-external-tool';\nimport { ExternalToolModule } from './external-tool';\nimport { CommonToolModule } from './common';\nimport { ToolLaunchModule } from './tool-launch';\nimport { CommonToolService } from './common/service';\nimport { ToolConfigModule } from './tool-config.module';\n\n@Module({\n\timports: [\n\t\tToolConfigModule,\n\t\tforwardRef(() => CommonToolModule),\n\t\tExternalToolModule,\n\t\tSchoolExternalToolModule,\n\t\tContextExternalToolModule,\n\t\tToolLaunchModule,\n\t],\n\tproviders: [CommonToolService],\n\texports: [\n\t\tExternalToolModule,\n\t\tSchoolExternalToolModule,\n\t\tContextExternalToolModule,\n\t\tToolLaunchModule,\n\t\t// TODO: remove this when reference loader is using service instead of repo\n\t\tCommonToolService,\n\t],\n})\nexport class ToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToolPermissionHelper.html":{"url":"injectables/ToolPermissionHelper.html","title":"injectable - ToolPermissionHelper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolPermissionHelper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/uc/tool-permission-helper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n ensureContextPermissions\n \n \n Public\n Async\n ensureSchoolPermissions\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/uc/tool-permission-helper.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n ensureContextPermissions\n \n \n \n \n \n \n \n ensureContextPermissions(userId: EntityId, contextExternalTool: ContextExternalTool, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/uc/tool-permission-helper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n ensureSchoolPermissions\n \n \n \n \n \n \n \n ensureSchoolPermissions(userId: EntityId, schoolExternalTool: SchoolExternalTool, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/uc/tool-permission-helper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, User } from '@shared/domain';\nimport { AuthorizableReferenceType, AuthorizationContext, AuthorizationService } from '@src/modules/authorization';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ContextTypeMapper } from '../mapper';\n\n@Injectable()\nexport class ToolPermissionHelper {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService)) private authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService\n\t) {}\n\n\t// TODO build interface to get contextDO by contextType\n\tpublic async ensureContextPermissions(\n\t\tuserId: EntityId,\n\t\tcontextExternalTool: ContextExternalTool,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tif (contextExternalTool.id) {\n\t\t\tawait this.authorizationService.checkPermissionByReferences(\n\t\t\t\tuserId,\n\t\t\t\tAuthorizableReferenceType.ContextExternalToolEntity,\n\t\t\t\tcontextExternalTool.id,\n\t\t\t\tcontext\n\t\t\t);\n\t\t}\n\n\t\tawait this.authorizationService.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tContextTypeMapper.mapContextTypeToAllowedAuthorizationEntityType(contextExternalTool.contextRef.type),\n\t\t\tcontextExternalTool.contextRef.id,\n\t\t\tcontext\n\t\t);\n\t}\n\n\tpublic async ensureSchoolPermissions(\n\t\tuserId: EntityId,\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolExternalTool.schoolId);\n\t\tthis.authorizationService.checkPermission(user, school, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolReference.html":{"url":"classes/ToolReference.html","title":"class - ToolReference","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolReference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/tool-reference.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n contextToolId\n \n \n displayName\n \n \n Optional\n logoUrl\n \n \n openInNewTab\n \n \n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolReference: ToolReference)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolReference\n \n \n ToolReference\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n contextToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n openInNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ToolConfigurationStatus\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigurationStatus } from '../../common/enum';\n\nexport class ToolReference {\n\tcontextToolId: string;\n\n\tlogoUrl?: string;\n\n\tdisplayName: string;\n\n\topenInNewTab: boolean;\n\n\tstatus: ToolConfigurationStatus;\n\n\tconstructor(toolReference: ToolReference) {\n\t\tthis.contextToolId = toolReference.contextToolId;\n\t\tthis.logoUrl = toolReference.logoUrl;\n\t\tthis.displayName = toolReference.displayName;\n\t\tthis.openInNewTab = toolReference.openInNewTab;\n\t\tthis.status = toolReference.status;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolReferenceListResponse.html":{"url":"classes/ToolReferenceListResponse.html","title":"class - ToolReferenceListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolReferenceListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ToolReferenceResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ToolReferenceResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ToolReferenceResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ToolReferenceResponse } from './tool-reference.response';\n\nexport class ToolReferenceListResponse {\n\t@ApiProperty({ type: [ToolReferenceResponse] })\n\tdata: ToolReferenceResponse[];\n\n\tconstructor(data: ToolReferenceResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolReferenceMapper.html":{"url":"classes/ToolReferenceMapper.html","title":"class - ToolReferenceMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolReferenceMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/mapper/tool-reference.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToToolReference\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToToolReference\n \n \n \n \n \n \n \n mapToToolReference(externalTool: ExternalTool, contextExternalTool: ContextExternalTool, status: ToolConfigurationStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-reference.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n status\n \n ToolConfigurationStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolReference\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ExternalTool, ToolReference } from '../domain';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\n\nexport class ToolReferenceMapper {\n\tstatic mapToToolReference(\n\t\texternalTool: ExternalTool,\n\t\tcontextExternalTool: ContextExternalTool,\n\t\tstatus: ToolConfigurationStatus\n\t): ToolReference {\n\t\tconst toolReference = new ToolReference({\n\t\t\tcontextToolId: contextExternalTool.id ?? '',\n\t\t\tlogoUrl: externalTool.logoUrl,\n\t\t\tdisplayName: contextExternalTool.displayName ?? externalTool.name,\n\t\t\tstatus,\n\t\t\topenInNewTab: externalTool.openNewTab,\n\t\t});\n\n\t\treturn toolReference;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolReferenceResponse.html":{"url":"classes/ToolReferenceResponse.html","title":"class - ToolReferenceResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolReferenceResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextToolId\n \n \n \n displayName\n \n \n \n Optional\n logoUrl\n \n \n \n openInNewTab\n \n \n \n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolReferenceResponse: ToolReferenceResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:27\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolReferenceResponse\n \n \n ToolReferenceResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, description: 'The id of the tool in the context'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, description: 'The display name of the tool'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({nullable: false, required: false, description: 'The url of the logo which is stored in the db'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n openInNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, description: 'Whether the tool should be opened in a new tab'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ToolConfigurationStatusResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ToolConfigurationStatusResponse, nullable: false, required: true, description: 'The status of the tool'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:27\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ToolConfigurationStatusResponse } from './tool-configuration-status.response';\n\nexport class ToolReferenceResponse {\n\t@ApiProperty({ nullable: false, required: true, description: 'The id of the tool in the context' })\n\tcontextToolId: string;\n\n\t@ApiPropertyOptional({\n\t\tnullable: false,\n\t\trequired: false,\n\t\tdescription: 'The url of the logo which is stored in the db',\n\t})\n\tlogoUrl?: string;\n\n\t@ApiProperty({ nullable: false, required: true, description: 'The display name of the tool' })\n\tdisplayName: string;\n\n\t@ApiProperty({ nullable: false, required: true, description: 'Whether the tool should be opened in a new tab' })\n\topenInNewTab: boolean;\n\n\t@ApiProperty({\n\t\tenum: ToolConfigurationStatusResponse,\n\t\tnullable: false,\n\t\trequired: true,\n\t\tdescription: 'The status of the tool',\n\t})\n\tstatus: ToolConfigurationStatusResponse;\n\n\tconstructor(toolReferenceResponse: ToolReferenceResponse) {\n\t\tthis.contextToolId = toolReferenceResponse.contextToolId;\n\t\tthis.logoUrl = toolReferenceResponse.logoUrl;\n\t\tthis.displayName = toolReferenceResponse.displayName;\n\t\tthis.openInNewTab = toolReferenceResponse.openInNewTab;\n\t\tthis.status = toolReferenceResponse.status;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToolReferenceUc.html":{"url":"injectables/ToolReferenceUc.html","title":"injectable - ToolReferenceUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolReferenceUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n buildToolReference\n \n \n Private\n Async\n ensureToolPermissions\n \n \n Private\n Async\n fetchExternalTool\n \n \n Private\n Async\n fetchSchoolExternalTool\n \n \n Async\n getToolReferences\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService, toolPermissionHelper: ToolPermissionHelper, commonToolService: CommonToolService, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n commonToolService\n \n \n CommonToolService\n \n \n \n No\n \n \n \n \n externalToolLogoService\n \n \n ExternalToolLogoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n buildToolReference\n \n \n \n \n \n \n \n buildToolReference(userId: EntityId, contextExternalTool: ContextExternalTool, logoUrlTemplate: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n logoUrlTemplate\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n ensureToolPermissions\n \n \n \n \n \n \n \n ensureToolPermissions(userId: EntityId, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:83\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n fetchExternalTool\n \n \n \n \n \n \n \n fetchExternalTool(schoolExternalTool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:99\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n fetchSchoolExternalTool\n \n \n \n \n \n \n \n fetchSchoolExternalTool(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolReferences\n \n \n \n \n \n \n \n getToolReferences(userId: EntityId, contextType: ToolContextType, contextId: string, logoUrlTemplate: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextType\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n contextId\n \n string\n \n\n \n No\n \n\n\n \n \n logoUrlTemplate\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { AuthorizationContext, AuthorizationContextBuilder } from '@src/modules/authorization';\nimport { ExternalTool, ToolReference } from '../domain';\nimport { ToolConfigurationStatus, ToolContextType } from '../../common/enum';\nimport { CommonToolService } from '../../common/service';\nimport { ContextExternalTool, ContextRef } from '../../context-external-tool/domain';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ToolReferenceMapper } from '../mapper/tool-reference.mapper';\nimport { ExternalToolLogoService, ExternalToolService } from '../service';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class ToolReferenceUc {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper,\n\t\tprivate readonly commonToolService: CommonToolService,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tasync getToolReferences(\n\t\tuserId: EntityId,\n\t\tcontextType: ToolContextType,\n\t\tcontextId: string,\n\t\tlogoUrlTemplate: string\n\t): Promise {\n\t\tconst contextRef = new ContextRef({ type: contextType, id: contextId });\n\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tcontextRef\n\t\t);\n\n\t\tconst toolReferencesPromises: Promise[] = contextExternalTools.map(\n\t\t\t(contextExternalTool: ContextExternalTool) =>\n\t\t\t\tthis.buildToolReference(userId, contextExternalTool, logoUrlTemplate)\n\t\t);\n\n\t\tconst toolReferencesWithNull: (ToolReference | null)[] = await Promise.all(toolReferencesPromises);\n\t\tconst filteredToolReferences: ToolReference[] = toolReferencesWithNull.filter(\n\t\t\t(toolReference: ToolReference | null): toolReference is ToolReference => toolReference !== null\n\t\t);\n\n\t\treturn filteredToolReferences;\n\t}\n\n\tprivate async buildToolReference(\n\t\tuserId: EntityId,\n\t\tcontextExternalTool: ContextExternalTool,\n\t\tlogoUrlTemplate: string\n\t): Promise {\n\t\ttry {\n\t\t\tawait this.ensureToolPermissions(userId, contextExternalTool);\n\t\t} catch (e: unknown) {\n\t\t\tif (e instanceof ForbiddenException) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.fetchSchoolExternalTool(contextExternalTool);\n\t\tconst externalTool: ExternalTool = await this.fetchExternalTool(schoolExternalTool);\n\n\t\tconst status: ToolConfigurationStatus = this.commonToolService.determineToolConfigurationStatus(\n\t\t\texternalTool,\n\t\t\tschoolExternalTool,\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\tconst toolReference: ToolReference = ToolReferenceMapper.mapToToolReference(\n\t\t\texternalTool,\n\t\t\tcontextExternalTool,\n\t\t\tstatus\n\t\t);\n\t\ttoolReference.logoUrl = this.externalToolLogoService.buildLogoUrl(logoUrlTemplate, externalTool);\n\n\t\treturn toolReference;\n\t}\n\n\tprivate async ensureToolPermissions(userId: EntityId, contextExternalTool: ContextExternalTool): Promise {\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_USER]);\n\n\t\tconst promise: Promise = this.toolPermissionHelper.ensureContextPermissions(\n\t\t\tuserId,\n\t\t\tcontextExternalTool,\n\t\t\tcontext\n\t\t);\n\n\t\treturn promise;\n\t}\n\n\tprivate async fetchSchoolExternalTool(contextExternalTool: ContextExternalTool): Promise {\n\t\treturn this.schoolExternalToolService.getSchoolExternalToolById(contextExternalTool.schoolToolRef.schoolToolId);\n\t}\n\n\tprivate async fetchExternalTool(schoolExternalTool: SchoolExternalTool): Promise {\n\t\treturn this.externalToolService.findExternalToolById(schoolExternalTool.toolId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolSchoolController.html":{"url":"controllers/ToolSchoolController.html","title":"controller - ToolSchoolController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolSchoolController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts\n \n\n \n Prefix\n \n \n tools/school-external-tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSchoolExternalTool\n \n \n \n \n \n \n \n Async\n deleteSchoolExternalTool\n \n \n \n \n \n \n Async\n getSchoolExternalTool\n \n \n \n \n \n \n \n Async\n getSchoolExternalTools\n \n \n \n \n \n \n \n \n Async\n updateSchoolExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSchoolExternalTool\n \n \n \n \n \n \n \n createSchoolExternalTool(currentUser: ICurrentUser, body: SchoolExternalToolPostParams)\n \n \n\n \n \n Decorators : \n \n @Post()@ApiCreatedResponse({description: 'The SchoolExternalTool has been successfully created.', type: SchoolExternalToolResponse})@ApiForbiddenResponse()@ApiUnprocessableEntityResponse()@ApiUnauthorizedResponse()@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Creates a SchoolExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n SchoolExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteSchoolExternalTool\n \n \n \n \n \n \n \n deleteSchoolExternalTool(currentUser: ICurrentUser, params: SchoolExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Delete(':schoolExternalToolId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOperation({summary: 'Deletes a SchoolExternalTool'})@HttpCode(HttpStatus.NO_CONTENT)\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:102\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolExternalTool\n \n \n \n \n \n \n \n getSchoolExternalTool(currentUser: ICurrentUser, params: SchoolExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get(':schoolExternalToolId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOperation({summary: 'Returns a SchoolExternalTool for the given id'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolExternalTools\n \n \n \n \n \n \n \n getSchoolExternalTools(currentUser: ICurrentUser, schoolExternalToolParams: SchoolExternalToolSearchParams)\n \n \n\n \n \n Decorators : \n \n @Get()@ApiFoundResponse({description: 'SchoolExternalTools has been found.', type: ExternalToolSearchListResponse})@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOperation({summary: 'Returns a list of SchoolExternalTools for a given school'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n schoolExternalToolParams\n \n SchoolExternalToolSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSchoolExternalTool\n \n \n \n \n \n \n \n updateSchoolExternalTool(currentUser: ICurrentUser, params: SchoolExternalToolIdParams, body: SchoolExternalToolPostParams)\n \n \n\n \n \n Decorators : \n \n @Put('/:schoolExternalToolId')@ApiOkResponse({description: 'The Tool has been successfully updated.', type: SchoolExternalToolResponse})@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiBadRequestResponse({type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Updates a SchoolExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n body\n \n SchoolExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tApiCreatedResponse,\n\tApiForbiddenResponse,\n\tApiFoundResponse,\n\tApiResponse,\n\tApiOkResponse,\n\tApiBadRequestResponse,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n\tApiOperation,\n} from '@nestjs/swagger';\nimport { Body, Controller, Delete, Get, Param, Post, Query, Put, HttpCode, HttpStatus } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { SchoolExternalToolRequestMapper, SchoolExternalToolResponseMapper } from '../mapper';\nimport { ExternalToolSearchListResponse } from '../../external-tool/controller/dto';\nimport {\n\tSchoolExternalToolIdParams,\n\tSchoolExternalToolPostParams,\n\tSchoolExternalToolResponse,\n\tSchoolExternalToolSearchListResponse,\n\tSchoolExternalToolSearchParams,\n} from './dto';\nimport { SchoolExternalToolDto } from '../uc/dto/school-external-tool.types';\nimport { SchoolExternalToolUc } from '../uc';\nimport { SchoolExternalTool } from '../domain';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools/school-external-tools')\nexport class ToolSchoolController {\n\tconstructor(\n\t\tprivate readonly schoolExternalToolUc: SchoolExternalToolUc,\n\t\tprivate readonly responseMapper: SchoolExternalToolResponseMapper,\n\t\tprivate readonly requestMapper: SchoolExternalToolRequestMapper,\n\t\tprivate readonly logger: LegacyLogger\n\t) {}\n\n\t@Get()\n\t@ApiFoundResponse({ description: 'SchoolExternalTools has been found.', type: ExternalToolSearchListResponse })\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOperation({ summary: 'Returns a list of SchoolExternalTools for a given school' })\n\tasync getSchoolExternalTools(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() schoolExternalToolParams: SchoolExternalToolSearchParams\n\t): Promise {\n\t\tconst found: SchoolExternalTool[] = await this.schoolExternalToolUc.findSchoolExternalTools(currentUser.userId, {\n\t\t\tschoolId: schoolExternalToolParams.schoolId,\n\t\t});\n\t\tconst response: SchoolExternalToolSearchListResponse = this.responseMapper.mapToSearchListResponse(found);\n\t\treturn response;\n\t}\n\n\t@Get(':schoolExternalToolId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOperation({ summary: 'Returns a SchoolExternalTool for the given id' })\n\tasync getSchoolExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolExternalToolIdParams\n\t): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolUc.getSchoolExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.schoolExternalToolId\n\t\t);\n\t\tconst mapped: SchoolExternalToolResponse = this.responseMapper.mapToSchoolExternalToolResponse(schoolExternalTool);\n\t\treturn mapped;\n\t}\n\n\t@Put('/:schoolExternalToolId')\n\t@ApiOkResponse({ description: 'The Tool has been successfully updated.', type: SchoolExternalToolResponse })\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiBadRequestResponse({ type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Updates a SchoolExternalTool' })\n\tasync updateSchoolExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolExternalToolIdParams,\n\t\t@Body() body: SchoolExternalToolPostParams\n\t): Promise {\n\t\tconst schoolExternalToolDto: SchoolExternalToolDto = this.requestMapper.mapSchoolExternalToolRequest(body);\n\t\tconst updated: SchoolExternalTool = await this.schoolExternalToolUc.updateSchoolExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.schoolExternalToolId,\n\t\t\tschoolExternalToolDto\n\t\t);\n\n\t\tconst mapped: SchoolExternalToolResponse = this.responseMapper.mapToSchoolExternalToolResponse(updated);\n\t\tthis.logger.debug(`SchoolExternalTool with id ${mapped.id} was updated by user with id ${currentUser.userId}`);\n\t\treturn mapped;\n\t}\n\n\t@Delete(':schoolExternalToolId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOperation({ summary: 'Deletes a SchoolExternalTool' })\n\t@HttpCode(HttpStatus.NO_CONTENT)\n\tasync deleteSchoolExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolExternalToolIdParams\n\t): Promise {\n\t\tawait this.schoolExternalToolUc.deleteSchoolExternalTool(currentUser.userId, params.schoolExternalToolId);\n\t\tthis.logger.debug(\n\t\t\t`SchoolExternalTool with id ${params.schoolExternalToolId} was deleted by user with id ${currentUser.userId}`\n\t\t);\n\t}\n\n\t@Post()\n\t@ApiCreatedResponse({\n\t\tdescription: 'The SchoolExternalTool has been successfully created.',\n\t\ttype: SchoolExternalToolResponse,\n\t})\n\t@ApiForbiddenResponse()\n\t@ApiUnprocessableEntityResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Creates a SchoolExternalTool' })\n\tasync createSchoolExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: SchoolExternalToolPostParams\n\t): Promise {\n\t\tconst schoolExternalToolDto: SchoolExternalToolDto = this.requestMapper.mapSchoolExternalToolRequest(body);\n\n\t\tconst createdSchoolExternalToolDO: SchoolExternalTool = await this.schoolExternalToolUc.createSchoolExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tschoolExternalToolDto\n\t\t);\n\n\t\tconst response: SchoolExternalToolResponse =\n\t\t\tthis.responseMapper.mapToSchoolExternalToolResponse(createdSchoolExternalToolDO);\n\n\t\tthis.logger.debug(`SchoolExternalTool with id ${response.id} was created by user with id ${currentUser.userId}`);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolStatusOutdatedLoggableException.html":{"url":"classes/ToolStatusOutdatedLoggableException.html","title":"class - ToolStatusOutdatedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolStatusOutdatedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/error/tool-status-outdated.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BadRequestException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, toolId: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/tool-status-outdated.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n toolId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/tool-status-outdated.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ToolStatusOutdatedLoggableException extends BadRequestException implements Loggable {\n\tconstructor(private readonly userId: EntityId, private readonly toolId: EntityId) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'TOOL_STATUS_OUTDATED',\n\t\t\tmessage: 'The status of the tool is outdated and cannot be launched by the user.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\ttoolId: this.toolId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ToolVersion.html":{"url":"interfaces/ToolVersion.html","title":"interface - ToolVersion","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ToolVersion\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/interface/tool-version.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \ngetVersion()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/interface/tool-version.interface.ts:2\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n\n\n \n\n\n \n export interface ToolVersion {\n\tgetVersion(): number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UnauthorizedLoggableException.html":{"url":"classes/UnauthorizedLoggableException.html","title":"class - UnauthorizedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UnauthorizedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/errors/unauthorized.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n UnauthorizedException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(username: string, systemId?: string)\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/unauthorized.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n \n string\n \n \n \n No\n \n \n \n \n systemId\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/errors/unauthorized.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnauthorizedException } from '@nestjs/common';\nimport { Loggable } from '@src/core/logger/interfaces';\nimport { ErrorLogMessage } from '@src/core/logger/types';\n\nexport class UnauthorizedLoggableException extends UnauthorizedException implements Loggable {\n\tconstructor(private readonly username: string, private readonly systemId?: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): ErrorLogMessage {\n\t\tconst message: ErrorLogMessage = {\n\t\t\ttype: 'UNAUTHORIZED_EXCEPTION',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserName: this.username,\n\t\t\t\tsystemId: this.systemId,\n\t\t\t},\n\t\t};\n\n\t\treturn message;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateElementContentBodyParams.html":{"url":"classes/UpdateElementContentBodyParams.html","title":"class - UpdateElementContentBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateElementContentBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@Type(undefined, {discriminator: undefined, keepDiscriminatorProperty: true})@ApiProperty({oneOf: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:87\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateFlagParams.html":{"url":"classes/UpdateFlagParams.html","title":"class - UpdateFlagParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateFlagParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/update-flag.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n flagged\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'updates flag for an import user'})@IsBoolean()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/update-flag.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class UpdateFlagParams {\n\t@ApiProperty({ description: 'updates flag for an import user' })\n\t@IsBoolean()\n\tflagged!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateMatchParams.html":{"url":"classes/UpdateMatchParams.html","title":"class - UpdateMatchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateMatchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/update-match.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'updates local user reference for an import user'})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/update-match.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class UpdateMatchParams {\n\t@ApiProperty({ description: 'updates local user reference for an import user' })\n\t@IsMongoId()\n\tuserId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateNewsParams.html":{"url":"classes/UpdateNewsParams.html","title":"class - UpdateNewsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateNewsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/update-news.params.ts\n \n\n\n \n Description\n \n \n DTO for Updating a news document.\nA PartialType is a halper which allows to extend an existing class by making all its properties optional.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n displayAt\n \n \n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@SanitizeHtml(InputFormat.RICH_TEXT)@ApiPropertyOptional({description: 'Content of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/update-news.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()@ApiPropertyOptional({description: 'The point in time from when the News entity schould be displayed'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/update-news.params.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@SanitizeHtml()@ApiPropertyOptional({description: 'Title of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/update-news.params.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { SanitizeHtml } from '@shared/controller';\nimport { IsDate, IsOptional, IsString } from 'class-validator';\nimport { InputFormat } from '@shared/domain';\n\n/**\n * DTO for Updating a news document.\n * A PartialType is a halper which allows to extend an existing class by making all its properties optional.\n */\nexport class UpdateNewsParams {\n\t@IsOptional()\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Title of the News entity',\n\t})\n\ttitle!: string;\n\n\t@IsOptional()\n\t@IsString()\n\t@SanitizeHtml(InputFormat.RICH_TEXT)\n\t@ApiPropertyOptional({\n\t\tdescription: 'Content of the News entity',\n\t})\n\tcontent!: string;\n\n\t@IsOptional()\n\t@IsDate()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time from when the News entity schould be displayed',\n\t})\n\tdisplayAt!: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateSubmissionItemBodyParams.html":{"url":"classes/UpdateSubmissionItemBodyParams.html","title":"class - UpdateSubmissionItemBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateSubmissionItemBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/update-submission-item.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n completed\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n completed\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty({description: 'Boolean indicating whether the submission is completed.', required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/update-submission-item.body.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class UpdateSubmissionItemBodyParams {\n\t@IsBoolean()\n\t@ApiProperty({\n\t\tdescription: 'Boolean indicating whether the submission is completed.',\n\t\trequired: true,\n\t})\n\tcompleted!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/User.html":{"url":"entities/User.html","title":"entity - User","body":"\n \n\n\n\n\n\n\n\n Entities\n User\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n deletedAt\n \n \n \n \n email\n \n \n \n Optional\n emailSearchValues\n \n \n \n Optional\n externalId\n \n \n \n firstName\n \n \n \n Optional\n firstNameSearchValues\n \n \n \n Optional\n forcePasswordChange\n \n \n \n \n Optional\n importHash\n \n \n \n Optional\n language\n \n \n \n Optional\n lastLoginSystemChange\n \n \n \n lastName\n \n \n \n Optional\n lastNameSearchValues\n \n \n \n \n Optional\n ldapDn\n \n \n \n Optional\n outdatedSince\n \n \n \n Optional\n preferences\n \n \n \n Optional\n previousExternalId\n \n \n \n \n roles\n \n \n \n \n school\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n deletedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:91\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n emailSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:78\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'ldapId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:62\n \n \n\n\n \n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n firstNameSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n forcePasswordChange\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:84\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n importHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n language\n \n \n \n \n \n \n Type : LanguageType\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:81\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastLoginSystemChange\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:94\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastNameSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:75\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n ldapDn\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:59\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n outdatedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:97\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n preferences\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:87\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n previousExternalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany({fieldName: 'roles', entity: () => Role})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne(undefined, {fieldName: 'schoolId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:55\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property } from '@mikro-orm/core';\nimport { IEntityWithSchool } from '../interface';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\n\nexport enum LanguageType {\n\tDE = 'de',\n\tEN = 'en',\n\tES = 'es',\n\tUK = 'uk',\n}\n\nexport interface IUserProperties {\n\temail: string;\n\tfirstName: string;\n\tlastName: string;\n\tschool: SchoolEntity;\n\troles: Role[];\n\tldapDn?: string;\n\texternalId?: string;\n\tlanguage?: LanguageType;\n\tforcePasswordChange?: boolean;\n\tpreferences?: Record;\n\tdeletedAt?: Date;\n\tlastLoginSystemChange?: Date;\n\toutdatedSince?: Date;\n\tpreviousExternalId?: string;\n}\n\n@Entity({ tableName: 'users' })\n@Index({ properties: ['id', 'email'] })\n@Index({ properties: ['firstName', 'lastName'] })\n@Index({ properties: ['externalId', 'school'] })\n@Index({ properties: ['school', 'ldapDn'] })\n@Index({ properties: ['school', 'roles'] })\nexport class User extends BaseEntityWithTimestamps implements IEntityWithSchool {\n\t@Property()\n\t@Index()\n\t// @Unique()\n\temail: string;\n\n\t@Property()\n\tfirstName: string;\n\n\t@Property()\n\tlastName: string;\n\n\t@Index()\n\t@ManyToMany({ fieldName: 'roles', entity: () => Role })\n\troles = new Collection(this);\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tldapDn?: string;\n\n\t@Property({ nullable: true, fieldName: 'ldapId' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property({ nullable: true })\n\t@Index()\n\timportHash?: string;\n\n\t@Property({ nullable: true })\n\tfirstNameSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\tlastNameSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\temailSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\tlanguage?: LanguageType;\n\n\t@Property({ nullable: true })\n\tforcePasswordChange?: boolean;\n\n\t@Property({ nullable: true })\n\tpreferences?: Record;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdeletedAt?: Date;\n\n\t@Property({ nullable: true })\n\tlastLoginSystemChange?: Date;\n\n\t@Property({ nullable: true })\n\toutdatedSince?: Date;\n\n\tconstructor(props: IUserProperties) {\n\t\tsuper();\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tthis.school = props.school;\n\t\tthis.roles.set(props.roles);\n\t\tthis.ldapDn = props.ldapDn;\n\t\tthis.externalId = props.externalId;\n\t\tthis.forcePasswordChange = props.forcePasswordChange;\n\t\tthis.language = props.language;\n\t\tthis.preferences = props.preferences ?? {};\n\t\tthis.deletedAt = props.deletedAt;\n\t\tthis.lastLoginSystemChange = props.lastLoginSystemChange;\n\t\tthis.outdatedSince = props.outdatedSince;\n\t\tthis.previousExternalId = props.previousExternalId;\n\t}\n\n\tpublic resolvePermissions(): string[] {\n\t\tif (!this.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\n\t\tlet permissions: string[] = [];\n\n\t\tconst roles = this.roles.getItems();\n\t\troles.forEach((role) => {\n\t\t\tconst rolePermissions = role.resolvePermissions();\n\t\t\tpermissions = [...permissions, ...rolePermissions];\n\t\t});\n\n\t\tconst uniquePermissions = [...new Set(permissions)];\n\n\t\treturn uniquePermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserAlreadyAssignedToImportUserError.html":{"url":"classes/UserAlreadyAssignedToImportUserError.html","title":"class - UserAlreadyAssignedToImportUserError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserAlreadyAssignedToImportUserError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/user-already-assigned-to-import-user.business-error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor()\n \n \n \n \n Defined in apps/server/src/shared/common/error/user-already-assigned-to-import-user.business-error.ts:3\n \n \n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BusinessError } from './business.error';\n\nexport class UserAlreadyAssignedToImportUserError extends BusinessError {\n\tconstructor() {\n\t\tsuper({\n\t\t\ttype: 'USER_ALREADY_ASSIGNED_TO_IMPORT_USER_ERROR',\n\t\t\ttitle: 'USER_ALREADY_ASSIGNED_TO_IMPORT_USER_ERROR',\n\t\t\tdefaultMessage:\n\t\t\t\t'The selected user already has been referenced to a different import user. Only one reference is allowed.',\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/UserAndAccountParams.html":{"url":"interfaces/UserAndAccountParams.html","title":"interface - UserAndAccountParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserAndAccountParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user-and-account.test.factory.ts\n \n\n\n\n \n Extends\n \n \n UserParams\n \n\n\n\n\n \n\n\n \n import { Account, EntityId, Permission, SchoolEntity, User } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport _ from 'lodash';\nimport { accountFactory } from './account.factory';\nimport { userFactory } from './user.factory';\n\ninterface UserParams {\n\tfirstName?: string;\n\tlastName?: string;\n\temail?: string;\n\tschool?: SchoolEntity;\n\texternalId?: string;\n}\n\ninterface AccountParams {\n\tusername?: string;\n\tsystemId?: EntityId | ObjectId;\n}\n\nexport interface UserAndAccountParams extends UserParams, AccountParams {}\n\nexport class UserAndAccountTestFactory {\n\tprivate static getUserParams(params: UserAndAccountParams): UserParams {\n\t\tconst userParams = _.pick(params, 'firstName', 'lastName', 'email', 'school', 'externalId');\n\t\treturn userParams;\n\t}\n\n\tprivate static buildAccount(user: User, params: UserAndAccountParams = {}): Account {\n\t\tconst accountParams = _.pick(params, 'username', 'systemId');\n\t\tconst account = accountFactory.withUser(user).build(accountParams);\n\t\treturn account;\n\t}\n\n\tpublic static buildStudent(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): {\n\t\tstudentAccount: Account;\n\t\tstudentUser: User;\n\t} {\n\t\tconst user = userFactory\n\t\t\t.asStudent(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { studentAccount: account, studentUser: user };\n\t}\n\n\tpublic static buildTeacher(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { teacherAccount: Account; teacherUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asTeacher(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { teacherAccount: account, teacherUser: user };\n\t}\n\n\tpublic static buildAdmin(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { adminAccount: Account; adminUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asAdmin(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { adminAccount: account, adminUser: user };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserAndAccountTestFactory.html":{"url":"classes/UserAndAccountTestFactory.html","title":"class - UserAndAccountTestFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserAndAccountTestFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user-and-account.test.factory.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n buildAccount\n \n \n Static\n buildAdmin\n \n \n Static\n buildStudent\n \n \n Static\n buildTeacher\n \n \n Private\n Static\n getUserParams\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n buildAccount\n \n \n \n \n \n \n \n buildAccount(user: User, params: UserAndAccountParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : Account\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildAdmin\n \n \n \n \n \n \n \n buildAdmin(params: UserAndAccountParams, additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n \n {}\n \n\n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildStudent\n \n \n \n \n \n \n \n buildStudent(params: UserAndAccountParams, additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n \n {}\n \n\n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildTeacher\n \n \n \n \n \n \n \n buildTeacher(params: UserAndAccountParams, additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n \n {}\n \n\n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n getUserParams\n \n \n \n \n \n \n \n getUserParams(params: UserAndAccountParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserParams\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Account, EntityId, Permission, SchoolEntity, User } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport _ from 'lodash';\nimport { accountFactory } from './account.factory';\nimport { userFactory } from './user.factory';\n\ninterface UserParams {\n\tfirstName?: string;\n\tlastName?: string;\n\temail?: string;\n\tschool?: SchoolEntity;\n\texternalId?: string;\n}\n\ninterface AccountParams {\n\tusername?: string;\n\tsystemId?: EntityId | ObjectId;\n}\n\nexport interface UserAndAccountParams extends UserParams, AccountParams {}\n\nexport class UserAndAccountTestFactory {\n\tprivate static getUserParams(params: UserAndAccountParams): UserParams {\n\t\tconst userParams = _.pick(params, 'firstName', 'lastName', 'email', 'school', 'externalId');\n\t\treturn userParams;\n\t}\n\n\tprivate static buildAccount(user: User, params: UserAndAccountParams = {}): Account {\n\t\tconst accountParams = _.pick(params, 'username', 'systemId');\n\t\tconst account = accountFactory.withUser(user).build(accountParams);\n\t\treturn account;\n\t}\n\n\tpublic static buildStudent(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): {\n\t\tstudentAccount: Account;\n\t\tstudentUser: User;\n\t} {\n\t\tconst user = userFactory\n\t\t\t.asStudent(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { studentAccount: account, studentUser: user };\n\t}\n\n\tpublic static buildTeacher(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { teacherAccount: Account; teacherUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asTeacher(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { teacherAccount: account, teacherUser: user };\n\t}\n\n\tpublic static buildAdmin(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { adminAccount: Account; adminUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asAdmin(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { adminAccount: account, adminUser: user };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/UserApiModule.html":{"url":"modules/UserApiModule.html","title":"module - UserApiModule","body":"\n \n\n\n\n\n Modules\n UserApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_UserApiModule\n\n\n\ncluster_UserApiModule_providers\n\n\n\ncluster_UserApiModule_imports\n\n\n\n\nUserModule\n\nUserModule\n\n\n\nUserApiModule\n\nUserApiModule\n\nUserApiModule -->\n\nUserModule->UserApiModule\n\n\n\n\n\nUserUc\n\nUserUc\n\nUserApiModule -->\n\nUserUc->UserApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user/user-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n UserUc\n \n \n \n \n Controllers\n \n \n UserController\n \n \n \n \n Imports\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { UserController } from './controller';\nimport { UserUc } from './uc';\nimport { UserModule } from './user.module';\n\n@Module({\n\timports: [UserModule],\n\tcontrollers: [UserController],\n\tproviders: [UserUc],\n})\nexport class UserApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/UserBoardRoles.html":{"url":"interfaces/UserBoardRoles.html","title":"interface - UserBoardRoles","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserBoardRoles\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n roles\n \n \n \n \n userId\n \n \n \n \n userRoleEnum\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: BoardRoles[]\n\n \n \n\n\n \n \n Type : BoardRoles[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userRoleEnum\n \n \n \n \n \n \n \n \n userRoleEnum: UserRoleEnum\n\n \n \n\n\n \n \n Type : UserRoleEnum\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { EntityId } from '@shared/domain/types';\n\nexport enum BoardRoles {\n\tEDITOR = 'editor',\n\tREADER = 'reader',\n}\n/**\n\tdeprecated: This is a temporary solution. This will be replaced with a more proper permission system.\n*/\nexport enum UserRoleEnum {\n\tTEACHER = 'teacher',\n\tSTUDENT = 'student',\n\tSUBSTITUTION_TEACHER = 'subsitution teacher',\n}\n\nexport interface UserBoardRoles {\n\troles: BoardRoles[];\n\tuserId: EntityId;\n\tuserRoleEnum: UserRoleEnum;\n}\n\nexport interface BoardDoAuthorizableProps extends AuthorizableObject {\n\tid: EntityId;\n\tusers: UserBoardRoles[];\n\trequiredUserRole?: UserRoleEnum;\n}\n\nexport class BoardDoAuthorizable extends DomainObject {\n\tget users(): UserBoardRoles[] {\n\t\treturn this.props.users;\n\t}\n\n\tget requiredUserRole(): UserRoleEnum | undefined {\n\t\treturn this.props.requiredUserRole;\n\t}\n\n\tset requiredUserRole(userRoleEnum: UserRoleEnum | undefined) {\n\t\tthis.props.requiredUserRole = userRoleEnum;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/UserController.html":{"url":"controllers/UserController.html","title":"controller - UserController","body":"\n \n\n\n\n\n\n\n Controllers\n UserController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/controller/user.controller.ts\n \n\n \n Prefix\n \n \n user\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n changeLanguage\n \n \n \n Async\n me\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n changeLanguage\n \n \n \n \n \n \n \n changeLanguage(params: ChangeLanguageParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch('/language')\n \n \n\n \n \n Defined in apps/server/src/modules/user/controller/user.controller.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChangeLanguageParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n me\n \n \n \n \n \n \n \n me(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get('me')\n \n \n\n \n \n Defined in apps/server/src/modules/user/controller/user.controller.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Patch } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ResolvedUserMapper } from '../mapper';\nimport { UserUc } from '../uc';\nimport { ChangeLanguageParams, ResolvedUserResponse, SuccessfulResponse } from './dto';\n\n@ApiTags('User')\n@Authenticate('jwt')\n@Controller('user')\nexport class UserController {\n\tconstructor(private readonly userUc: UserUc) {}\n\n\t@Get('me')\n\tasync me(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst [user, permissions] = await this.userUc.me(currentUser.userId);\n\n\t\t// only the root roles of the user get published\n\t\tconst resolvedUser = ResolvedUserMapper.mapToResponse(user, permissions, user.roles.getItems());\n\n\t\treturn resolvedUser;\n\t}\n\n\t@Patch('/language')\n\tasync changeLanguage(\n\t\t@Body() params: ChangeLanguageParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst result = await this.userUc.patchLanguage(currentUser.userId, params);\n\n\t\tconst successfulResponse = new SuccessfulResponse(result);\n\n\t\treturn successfulResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserDO.html":{"url":"classes/UserDO.html","title":"class - UserDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/user.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n createdAt\n \n \n email\n \n \n Optional\n emailSearchValues\n \n \n Optional\n externalId\n \n \n firstName\n \n \n Optional\n firstNameSearchValues\n \n \n Optional\n forcePasswordChange\n \n \n Optional\n importHash\n \n \n Optional\n language\n \n \n Optional\n lastLoginSystemChange\n \n \n lastName\n \n \n Optional\n lastNameSearchValues\n \n \n Optional\n ldapDn\n \n \n Optional\n outdatedSince\n \n \n Optional\n preferences\n \n \n Optional\n previousExternalId\n \n \n roles\n \n \n schoolId\n \n \n Optional\n updatedAt\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(domainObject: UserDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:43\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n \n UserDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n emailSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n firstNameSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n forcePasswordChange\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n importHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n language\n \n \n \n \n \n \n Type : LanguageType\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lastLoginSystemChange\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lastNameSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n ldapDn\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n outdatedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n preferences\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n previousExternalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Type : RoleReference[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LanguageType } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseDO } from './base.do';\nimport { RoleReference } from './role-reference';\n\nexport class UserDO extends BaseDO {\n\tcreatedAt?: Date;\n\n\tupdatedAt?: Date;\n\n\temail: string;\n\n\tfirstName: string;\n\n\tlastName: string;\n\n\troles: RoleReference[];\n\n\tschoolId: EntityId;\n\n\tldapDn?: string;\n\n\texternalId?: string;\n\n\timportHash?: string;\n\n\tfirstNameSearchValues?: string[];\n\n\tlastNameSearchValues?: string[];\n\n\temailSearchValues?: string[];\n\n\tlanguage?: LanguageType;\n\n\tforcePasswordChange?: boolean;\n\n\tpreferences?: Record;\n\n\tlastLoginSystemChange?: Date;\n\n\toutdatedSince?: Date;\n\n\tpreviousExternalId?: string;\n\n\tconstructor(domainObject: UserDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.createdAt = domainObject.createdAt;\n\t\tthis.updatedAt = domainObject.updatedAt;\n\t\tthis.email = domainObject.email;\n\t\tthis.firstName = domainObject.firstName;\n\t\tthis.lastName = domainObject.lastName;\n\t\tthis.roles = domainObject.roles;\n\t\tthis.schoolId = domainObject.schoolId;\n\t\tthis.ldapDn = domainObject.ldapDn;\n\t\tthis.externalId = domainObject.externalId;\n\t\tthis.importHash = domainObject.importHash;\n\t\tthis.firstNameSearchValues = domainObject.firstNameSearchValues;\n\t\tthis.lastNameSearchValues = domainObject.lastNameSearchValues;\n\t\tthis.emailSearchValues = domainObject.emailSearchValues;\n\t\tthis.language = domainObject.language;\n\t\tthis.forcePasswordChange = domainObject.forcePasswordChange;\n\t\tthis.preferences = domainObject.preferences;\n\t\tthis.lastLoginSystemChange = domainObject.lastLoginSystemChange;\n\t\tthis.outdatedSince = domainObject.outdatedSince;\n\t\tthis.previousExternalId = domainObject.previousExternalId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserDORepo.html":{"url":"injectables/UserDORepo.html","title":"injectable - UserDORepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserDORepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/user/user-do.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createQueryOrderMap\n \n \n entityFactory\n \n \n Async\n find\n \n \n Async\n findByExternalId\n \n \n Async\n findByExternalIdOrFail\n \n \n Async\n findById\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n Async\n populateRoles\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createQueryOrderMap\n \n \n \n \n \n \n \n createQueryOrderMap(sort: SortOrderMap)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sort\n \n SortOrderMap\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : QueryOrderMap\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IUserProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:29\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IUserProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : User\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(query: UserQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n UserQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalId\n \n \n \n \n \n \n \n findByExternalId(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalIdOrFail\n \n \n \n \n \n \n \n findByExternalIdOrFail(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, populate)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:60\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n populate\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: UserDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:123\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n UserDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IUserProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: User)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:90\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateRoles\n \n \n \n \n \n \n \n populateRoles(roles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:151\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:25\n \n \n\n \n \n\n \n\n\n \n import { EntityName, FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport {\n\tEntityId,\n\tIFindOptions,\n\tIPagination,\n\tIUserProperties,\n\tRole,\n\tSchoolEntity,\n\tSortOrder,\n\tSortOrderMap,\n\tSystem,\n\tUser,\n} from '@shared/domain';\nimport { RoleReference } from '@shared/domain/domainobject';\nimport { Page } from '@shared/domain/domainobject/page';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { BaseDORepo, Scope } from '@shared/repo';\nimport { UserQuery } from '@src/modules/user/service/user-query.type';\nimport { UserScope } from './user.scope';\n\n@Injectable()\nexport class UserDORepo extends BaseDORepo {\n\tget entityName(): EntityName {\n\t\treturn User;\n\t}\n\n\tentityFactory(props: IUserProperties): User {\n\t\treturn new User(props);\n\t}\n\n\tasync find(query: UserQuery, options?: IFindOptions) {\n\t\tconst pagination: IPagination = options?.pagination || {};\n\t\tconst order: QueryOrderMap = this.createQueryOrderMap(options?.order || {});\n\t\tconst scope: Scope = new UserScope()\n\t\t\t.bySchoolId(query.schoolId)\n\t\t\t.isOutdated(query.isOutdated)\n\t\t\t.whereLastLoginSystemChangeSmallerThan(query.lastLoginSystemChangeSmallerThan)\n\t\t\t.whereLastLoginSystemChangeIsBetween(\n\t\t\t\tquery.lastLoginSystemChangeBetweenStart,\n\t\t\t\tquery.lastLoginSystemChangeBetweenEnd\n\t\t\t)\n\t\t\t.withOutdatedSince(query.outdatedSince)\n\t\t\t.allowEmptyQuery(true);\n\n\t\torder._id = order._id ?? SortOrder.asc;\n\n\t\tconst [entities, total]: [User[], number] = await this._em.findAndCount(User, scope.query, {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order,\n\t\t});\n\n\t\tconst entityDos: UserDO[] = entities.map((entity) => this.mapEntityToDO(entity));\n\t\tconst page: Page = new Page(entityDos, total);\n\t\treturn page;\n\t}\n\n\tasync findById(id: EntityId, populate = false): Promise {\n\t\tconst userEntity: User = await this._em.findOneOrFail(this.entityName, id as FilterQuery);\n\n\t\tif (populate) {\n\t\t\tawait this._em.populate(userEntity, ['roles', 'school.systems', 'school.schoolYear']);\n\t\t\tawait this.populateRoles(userEntity.roles.getItems());\n\t\t}\n\n\t\treturn this.mapEntityToDO(userEntity);\n\t}\n\n\tasync findByExternalIdOrFail(externalId: string, systemId: string): Promise {\n\t\tconst userDo: UserDO | null = await this.findByExternalId(externalId, systemId);\n\t\tif (userDo) {\n\t\t\treturn userDo;\n\t\t}\n\t\tthrow new EntityNotFoundError('User');\n\t}\n\n\tasync findByExternalId(externalId: string, systemId: string): Promise {\n\t\tconst userEntitys: User[] = await this._em.find(User, { externalId }, { populate: ['school.systems'] });\n\t\tconst userEntity: User | undefined = userEntitys.find((user: User): boolean => {\n\t\t\tconst { systems } = user.school;\n\t\t\treturn systems && !!systems.getItems().find((system: System): boolean => system.id === systemId);\n\t\t});\n\n\t\tconst userDo: UserDO | null = userEntity ? this.mapEntityToDO(userEntity) : null;\n\t\treturn userDo;\n\t}\n\n\tmapEntityToDO(entity: User): UserDO {\n\t\tconst user: UserDO = new UserDO({\n\t\t\tid: entity.id,\n\t\t\tcreatedAt: entity.createdAt,\n\t\t\tupdatedAt: entity.updatedAt,\n\t\t\temail: entity.email,\n\t\t\tfirstName: entity.firstName,\n\t\t\tlastName: entity.lastName,\n\t\t\troles: [],\n\t\t\tschoolId: entity.school.id,\n\t\t\tldapDn: entity.ldapDn,\n\t\t\texternalId: entity.externalId,\n\t\t\timportHash: entity.importHash,\n\t\t\tfirstNameSearchValues: entity.firstNameSearchValues,\n\t\t\tlastNameSearchValues: entity.lastNameSearchValues,\n\t\t\temailSearchValues: entity.emailSearchValues,\n\t\t\tlanguage: entity.language,\n\t\t\tforcePasswordChange: entity.forcePasswordChange,\n\t\t\tpreferences: entity.preferences,\n\t\t\tlastLoginSystemChange: entity.lastLoginSystemChange,\n\t\t\toutdatedSince: entity.outdatedSince,\n\t\t\tpreviousExternalId: entity.previousExternalId,\n\t\t});\n\n\t\tif (entity.roles.isInitialized()) {\n\t\t\tuser.roles = entity.roles\n\t\t\t\t.getItems()\n\t\t\t\t.map((role: Role): RoleReference => new RoleReference({ id: role.id, name: role.name }));\n\t\t}\n\n\t\treturn user;\n\t}\n\n\tmapDOToEntityProperties(entityDO: UserDO): IUserProperties {\n\t\treturn {\n\t\t\temail: entityDO.email,\n\t\t\tfirstName: entityDO.firstName,\n\t\t\tlastName: entityDO.lastName,\n\t\t\tschool: this._em.getReference(SchoolEntity, entityDO.schoolId),\n\t\t\troles: entityDO.roles.map((roleRef: RoleReference) => this._em.getReference(Role, roleRef.id)),\n\t\t\tldapDn: entityDO.ldapDn,\n\t\t\texternalId: entityDO.externalId,\n\t\t\tlanguage: entityDO.language,\n\t\t\tforcePasswordChange: entityDO.forcePasswordChange,\n\t\t\tpreferences: entityDO.preferences,\n\t\t\tlastLoginSystemChange: entityDO.lastLoginSystemChange,\n\t\t\toutdatedSince: entityDO.outdatedSince,\n\t\t\tpreviousExternalId: entityDO.previousExternalId,\n\t\t};\n\t}\n\n\tprivate createQueryOrderMap(sort: SortOrderMap): QueryOrderMap {\n\t\tconst queryOrderMap: QueryOrderMap = {\n\t\t\t_id: sort.id,\n\t\t};\n\t\tObject.keys(queryOrderMap)\n\t\t\t.filter((key) => queryOrderMap[key] === undefined)\n\t\t\t.forEach((key) => delete queryOrderMap[key]);\n\t\treturn queryOrderMap;\n\t}\n\n\tprivate async populateRoles(roles: Role[]): Promise {\n\t\tfor (let i = 0; i \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserDataResponse.html":{"url":"classes/UserDataResponse.html","title":"class - UserDataResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserDataResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/user-data.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n firstName\n \n \n \n lastName\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: UserDataResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/user-data.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n UserDataResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/user-data.response.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/user-data.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/user-data.response.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class UserDataResponse {\n\tconstructor({ userId, firstName, lastName }: UserDataResponse) {\n\t\tthis.userId = userId;\n\t\tthis.firstName = firstName;\n\t\tthis.lastName = lastName;\n\t}\n\n\t@ApiProperty()\n\tfirstName!: string;\n\n\t@ApiProperty()\n\tlastName!: string;\n\n\t@ApiProperty()\n\tuserId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserDoFactory.html":{"url":"classes/UserDoFactory.html","title":"class - UserDoFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserDoFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user.do.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withRoles\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withRoles\n \n \n \n \n \n \nwithRoles(roles: literal type[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.do.factory.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, RoleName } from '@shared/domain';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { ObjectId } from 'bson';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from './domainobject';\n\nclass UserDoFactory extends DoBaseFactory {\n\twithRoles(roles: { id: EntityId; name: RoleName }[]) {\n\t\tconst params: DeepPartial = {\n\t\t\troles,\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const userDoFactory = UserDoFactory.define(UserDO, ({ sequence }) => {\n\treturn {\n\t\tfirstName: 'John',\n\t\tlastName: `Doe ${sequence}`,\n\t\temail: `user-${sequence}@example.com`,\n\t\troles: [],\n\t\tschoolId: new ObjectId().toString(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserDto.html":{"url":"classes/UserDto.html","title":"class - UserDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/uc/dto/user.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n email\n \n \n Optional\n externalId\n \n \n firstName\n \n \n Optional\n forcePasswordChange\n \n \n Optional\n id\n \n \n Optional\n language\n \n \n Optional\n lastLoginSystemChange\n \n \n lastName\n \n \n Optional\n ldapDn\n \n \n Optional\n outdatedSince\n \n \n Optional\n preferences\n \n \n roleIds\n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(user: UserDto)\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n \n UserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n forcePasswordChange\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n language\n \n \n \n \n \n \n Type : LanguageType\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lastLoginSystemChange\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n ldapDn\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n outdatedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n preferences\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Default value : {}\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n roleIds\n \n \n \n \n \n \n Type : EntityId[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:30\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId, LanguageType } from '@shared/domain';\n\nexport class UserDto {\n\tconstructor(user: UserDto) {\n\t\tthis.id = user.id;\n\t\tthis.email = user.email;\n\t\tthis.firstName = user.firstName;\n\t\tthis.lastName = user.lastName;\n\t\tthis.roleIds = user.roleIds;\n\t\tthis.schoolId = user.schoolId;\n\t\tthis.ldapDn = user.ldapDn;\n\t\tthis.externalId = user.externalId;\n\t\tthis.language = user.language;\n\t\tthis.forcePasswordChange = user.forcePasswordChange;\n\t\tthis.preferences = user.preferences;\n\t\tthis.lastLoginSystemChange = user.lastLoginSystemChange;\n\t\tthis.outdatedSince = user.outdatedSince;\n\t}\n\n\tid?: EntityId;\n\n\temail: string;\n\n\tfirstName: string;\n\n\tlastName: string;\n\n\troleIds: EntityId[] = [];\n\n\tschoolId: string;\n\n\tldapDn?: string;\n\n\texternalId?: string;\n\n\tlanguage?: LanguageType;\n\n\tforcePasswordChange?: boolean;\n\n\t// See user entity\n\tpreferences?: Record = {};\n\n\tlastLoginSystemChange?: Date;\n\n\toutdatedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserFactory.html":{"url":"classes/UserFactory.html","title":"class - UserFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n asAdmin\n \n \n asStudent\n \n \n asTeacher\n \n \n withRole\n \n \n withRoleByName\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n asAdmin\n \n \n \n \n \n \nasAdmin(additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n asStudent\n \n \n \n \n \n \nasStudent(additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n asTeacher\n \n \n \n \n \n \nasTeacher(additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withRole\n \n \n \n \n \n \nwithRole(role: Role)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n Role\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withRoleByName\n \n \n \n \n \n \nwithRoleByName(name: RoleName)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n RoleName\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { IUserProperties, Permission, Role, RoleName, User } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport _ from 'lodash';\nimport { adminPermissions, studentPermissions, teacherPermissions, userPermissions } from '../user-role-permissions';\nimport { BaseFactory } from './base.factory';\nimport { roleFactory } from './role.factory';\nimport { schoolFactory } from './school.factory';\n\nclass UserFactory extends BaseFactory {\n\twithRoleByName(name: RoleName): this {\n\t\tconst params: DeepPartial = { roles: [roleFactory.buildWithId({ name })] };\n\n\t\treturn this.params(params);\n\t}\n\n\twithRole(role: Role): this {\n\t\tconst params: DeepPartial = { roles: [role] };\n\n\t\treturn this.params(params);\n\t}\n\n\tasStudent(additionalPermissions: Permission[] = []): this {\n\t\tconst permissions = _.union(userPermissions, studentPermissions, additionalPermissions);\n\t\tconst role = roleFactory.buildWithId({ permissions });\n\n\t\tconst params: DeepPartial = { roles: [role] };\n\n\t\treturn this.params(params);\n\t}\n\n\tasTeacher(additionalPermissions: Permission[] = []): this {\n\t\tconst permissions = _.union(userPermissions, teacherPermissions, additionalPermissions);\n\t\tconst role = roleFactory.buildWithId({ permissions });\n\n\t\tconst params: DeepPartial = { roles: [role] };\n\n\t\treturn this.params(params);\n\t}\n\n\tasAdmin(additionalPermissions: Permission[] = []): this {\n\t\tconst permissions = _.union(userPermissions, adminPermissions, additionalPermissions);\n\t\tconst role = roleFactory.buildWithId({ permissions });\n\n\t\tconst params: DeepPartial = { roles: [role] };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const userFactory = UserFactory.define(User, ({ sequence }) => {\n\treturn {\n\t\tfirstName: 'John',\n\t\tlastName: `Doe ${sequence}`,\n\t\temail: `user-${sequence}@example.com`,\n\t\troles: [],\n\t\tschool: schoolFactory.build(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserForGroupNotFoundLoggable.html":{"url":"classes/UserForGroupNotFoundLoggable.html","title":"class - UserForGroupNotFoundLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserForGroupNotFoundLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/loggable/user-for-group-not-found.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(groupUser: ExternalGroupUserDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/loggable/user-for-group-not-found.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n groupUser\n \n \n ExternalGroupUserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/loggable/user-for-group-not-found.loggable.ts:7\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { ExternalGroupUserDto } from '../dto';\n\nexport class UserForGroupNotFoundLoggable implements Loggable {\n\tconstructor(private readonly groupUser: ExternalGroupUserDto) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Unable to add unknown user to group during provisioning.',\n\t\t\tdata: {\n\t\t\t\texternalUserId: this.groupUser.externalUserId,\n\t\t\t\troleName: this.groupUser.roleName,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserInfoMapper.html":{"url":"classes/UserInfoMapper.html","title":"class - UserInfoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserInfoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/mapper/user-info.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/user-info.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserInfoResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { User } from '@shared/domain';\nimport { UserInfoResponse } from '../controller/dto';\n\nexport class UserInfoMapper {\n\tstatic mapToResponse(user: User): UserInfoResponse {\n\t\tconst dto = new UserInfoResponse({\n\t\t\tid: user.id,\n\t\t\tfirstName: user.firstName,\n\t\t\tlastName: user.lastName,\n\t\t});\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserInfoResponse.html":{"url":"classes/UserInfoResponse.html","title":"class - UserInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/user-info.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n id\n \n \n \n Optional\n lastName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: UserInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/user-info.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n UserInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'First name of the user'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/user-info.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}', description: 'The id of the User entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/user-info.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Last name of the user'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/user-info.response.ts:24\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class UserInfoResponse {\n\tconstructor({ id, firstName, lastName }: UserInfoResponse) {\n\t\tthis.id = id;\n\t\tthis.firstName = firstName;\n\t\tthis.lastName = lastName;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'The id of the User entity',\n\t})\n\tid: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'First name of the user',\n\t})\n\tfirstName?: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Last name of the user',\n\t})\n\tlastName?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/UserLoginMigration.html":{"url":"entities/UserLoginMigration.html","title":"entity - UserLoginMigration","body":"\n \n\n\n\n\n\n\n\n Entities\n UserLoginMigration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/user-login-migration.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n Optional\n finishedAt\n \n \n \n Optional\n mandatorySince\n \n \n \n school\n \n \n \n Optional\n sourceSystem\n \n \n \n startedAt\n \n \n \n targetSystem\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n finishedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n mandatorySince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @OneToOne(undefined, undefined, {nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceSystem\n \n \n \n \n \n \n Type : System\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n startedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetSystem\n \n \n \n \n \n \n Type : System\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:18\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne, OneToOne, Property } from '@mikro-orm/core';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { System } from '@shared/domain/entity/system.entity';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport type IUserLoginMigration = Readonly>;\n\n@Entity({ tableName: 'user_login_migrations' })\nexport class UserLoginMigration extends BaseEntityWithTimestamps {\n\t@OneToOne(() => SchoolEntity, undefined, { nullable: false })\n\tschool: SchoolEntity;\n\n\t// undefined, if migrating from 'local'\n\t@ManyToOne(() => System, { nullable: true })\n\tsourceSystem?: System;\n\n\t@ManyToOne(() => System)\n\ttargetSystem: System;\n\n\t@Property({ nullable: true })\n\tmandatorySince?: Date;\n\n\t@Property()\n\tstartedAt: Date;\n\n\t@Property({ nullable: true })\n\tclosedAt?: Date;\n\n\t@Property({ nullable: true })\n\tfinishedAt?: Date;\n\n\tconstructor(props: IUserLoginMigration) {\n\t\tsuper();\n\t\tthis.school = props.school;\n\t\tthis.sourceSystem = props.sourceSystem;\n\t\tthis.targetSystem = props.targetSystem;\n\t\tthis.mandatorySince = props.mandatorySince;\n\t\tthis.startedAt = props.startedAt;\n\t\tthis.closedAt = props.closedAt;\n\t\tthis.finishedAt = props.finishedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{"url":"classes/UserLoginMigrationAlreadyClosedLoggableException.html","title":"class - UserLoginMigrationAlreadyClosedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationAlreadyClosedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/user-login-migration-already-closed.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n UnprocessableEntityException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationId: EntityId, closedAt: Date)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-already-closed.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n closedAt\n \n \n Date\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-already-closed.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationAlreadyClosedLoggableException extends UnprocessableEntityException implements Loggable {\n\tconstructor(private readonly userLoginMigrationId: EntityId, private readonly closedAt: Date) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'USER_LOGIN_MIGRATION_ALREADY_CLOSED',\n\t\t\tmessage: 'Migration of school cannot be started or changed, because it is already closed.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t\tclosedAt: this.closedAt.toISOString(),\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/UserLoginMigrationApiModule.html":{"url":"modules/UserLoginMigrationApiModule.html","title":"module - UserLoginMigrationApiModule","body":"\n \n\n\n\n\n Modules\n UserLoginMigrationApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_UserLoginMigrationApiModule\n\n\n\ncluster_UserLoginMigrationApiModule_imports\n\n\n\ncluster_UserLoginMigrationApiModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule -->\n\nAuthenticationModule->UserLoginMigrationApiModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nUserLoginMigrationApiModule -->\n\nAuthorizationModule->UserLoginMigrationApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nUserLoginMigrationApiModule -->\n\nLegacySchoolModule->UserLoginMigrationApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nUserLoginMigrationApiModule -->\n\nLoggerModule->UserLoginMigrationApiModule\n\n\n\n\n\nOauthModule\n\nOauthModule\n\nUserLoginMigrationApiModule -->\n\nOauthModule->UserLoginMigrationApiModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nUserLoginMigrationApiModule -->\n\nProvisioningModule->UserLoginMigrationApiModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nUserLoginMigrationApiModule -->\n\nUserLoginMigrationModule->UserLoginMigrationApiModule\n\n\n\n\n\nCloseUserLoginMigrationUc\n\nCloseUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nCloseUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nPageContentMapper\n\nPageContentMapper\n\nUserLoginMigrationApiModule -->\n\nPageContentMapper->UserLoginMigrationApiModule\n\n\n\n\n\nRestartUserLoginMigrationUc\n\nRestartUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nRestartUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nStartUserLoginMigrationUc\n\nStartUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nStartUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nToggleUserLoginMigrationUc\n\nToggleUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nToggleUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nUserLoginMigrationUc\n\nUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user-login-migration/user-login-migration-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CloseUserLoginMigrationUc\n \n \n PageContentMapper\n \n \n RestartUserLoginMigrationUc\n \n \n StartUserLoginMigrationUc\n \n \n ToggleUserLoginMigrationUc\n \n \n UserLoginMigrationUc\n \n \n \n \n Controllers\n \n \n UserMigrationController\n \n \n UserLoginMigrationController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n OauthModule\n \n \n ProvisioningModule\n \n \n UserLoginMigrationModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { OauthModule } from '@src/modules/oauth';\nimport { ProvisioningModule } from '@src/modules/provisioning';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { UserLoginMigrationController } from './controller/user-login-migration.controller';\nimport { UserMigrationController } from './controller/user-migration.controller';\nimport { PageContentMapper } from './mapper';\nimport {\n\tCloseUserLoginMigrationUc,\n\tRestartUserLoginMigrationUc,\n\tStartUserLoginMigrationUc,\n\tToggleUserLoginMigrationUc,\n\tUserLoginMigrationUc,\n} from './uc';\nimport { UserLoginMigrationModule } from './user-login-migration.module';\n\n@Module({\n\timports: [\n\t\tUserLoginMigrationModule,\n\t\tOauthModule,\n\t\tProvisioningModule,\n\t\tAuthenticationModule,\n\t\tAuthorizationModule,\n\t\tLoggerModule,\n\t\tLegacySchoolModule,\n\t],\n\tproviders: [\n\t\tUserLoginMigrationUc,\n\t\tStartUserLoginMigrationUc,\n\t\tRestartUserLoginMigrationUc,\n\t\tToggleUserLoginMigrationUc,\n\t\tCloseUserLoginMigrationUc,\n\t\tPageContentMapper,\n\t],\n\tcontrollers: [UserMigrationController, UserLoginMigrationController],\n})\nexport class UserLoginMigrationApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/UserLoginMigrationController.html":{"url":"controllers/UserLoginMigrationController.html","title":"controller - UserLoginMigrationController","body":"\n \n\n\n\n\n\n\n Controllers\n UserLoginMigrationController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts\n \n\n \n Prefix\n \n \n user-login-migrations\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n closeMigration\n \n \n \n \n \n \n Async\n findUserLoginMigrationBySchool\n \n \n \n \n \n \n \n Async\n getMigrations\n \n \n \n \n \n Async\n migrateUserLogin\n \n \n \n \n \n \n \n \n Async\n restartMigration\n \n \n \n \n \n \n \n \n \n Async\n setMigrationMandatory\n \n \n \n \n \n \n \n Async\n startMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n closeMigration\n \n \n \n \n \n \n \n closeMigration(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Post('close')@ApiUnprocessableEntityResponse({description: 'User login migration is already closed and cannot be modified. Restart is possible.', type: UserLoginMigrationAlreadyClosedLoggableException})@ApiUnprocessableEntityResponse({description: 'User login migration is already closed and cannot be modified. It cannot be restarted.', type: UserLoginMigrationGracePeriodExpiredLoggableException})@ApiNotFoundResponse({description: 'User login migration does not exist', type: UserLoginMigrationNotFoundLoggableException})@ApiOkResponse({description: 'User login migration closed', type: UserLoginMigrationResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:199\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findUserLoginMigrationBySchool\n \n \n \n \n \n \n \n findUserLoginMigrationBySchool(user: ICurrentUser, params: SchoolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('schools/:schoolId')@ApiForbiddenResponse()@ApiOkResponse({description: 'UserLoginMigrations has been found', type: UserLoginMigrationResponse})@ApiNotFoundResponse({description: 'Cannot find UserLoginMigration'})\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:89\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigrations\n \n \n \n \n \n \n \n getMigrations(user: ICurrentUser, params: UserLoginMigrationSearchParams)\n \n \n\n \n \n Decorators : \n \n @Get()@ApiForbiddenResponse()@ApiOperation({summary: 'Get UserLoginMigrations', description: 'Currently there can only be one migration for a user. Therefore only one migration is returned.'})@ApiOkResponse({description: 'UserLoginMigrations has been found.', type: UserLoginMigrationSearchListResponse})@ApiInternalServerErrorResponse({description: 'Cannot find target system information.'})\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n UserLoginMigrationSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrateUserLogin\n \n \n \n \n \n \n \n migrateUserLogin(jwt: string, currentUser: ICurrentUser, body: Oauth2MigrationParams)\n \n \n\n \n \n Decorators : \n \n @Post('migrate-to-oauth2')@ApiOkResponse({description: 'The User has been successfully migrated.', status: 200})@ApiInternalServerErrorResponse({description: 'The migration of the User was not possible.'})\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:214\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwt\n \n string\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n Oauth2MigrationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n restartMigration\n \n \n \n \n \n \n \n restartMigration(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Put('restart')@ApiNotFoundResponse({description: 'User login migration was not found', type: UserLoginMigrationNotFoundLoggableException})@ApiUnprocessableEntityResponse({description: 'Grace period for changing the user login migration is expired', type: UserLoginMigrationGracePeriodExpiredLoggableException})@ApiOkResponse({description: 'User login migration started', type: UserLoginMigrationResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:139\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigrationMandatory\n \n \n \n \n \n \n \n setMigrationMandatory(currentUser: ICurrentUser, body: UserLoginMigrationMandatoryParams)\n \n \n\n \n \n Decorators : \n \n @Put('mandatory')@ApiNotFoundResponse({description: 'User login migration was not found', type: UserLoginMigrationNotFoundLoggableException})@ApiUnprocessableEntityResponse({description: 'Grace period for changing the user login migration is expired', type: UserLoginMigrationGracePeriodExpiredLoggableException})@ApiUnprocessableEntityResponse({description: 'User login migration is already closed and cannot be modified', type: UserLoginMigrationAlreadyClosedLoggableException})@ApiOkResponse({description: 'User login migration is set mandatory/optional', type: UserLoginMigrationResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n UserLoginMigrationMandatoryParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startMigration\n \n \n \n \n \n \n \n startMigration(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Post('start')@ApiUnprocessableEntityResponse({description: 'User login migration is already closed and cannot be modified', type: UserLoginMigrationAlreadyClosedLoggableException})@ApiUnprocessableEntityResponse({description: 'School has no official school number', type: SchoolNumberMissingLoggableException})@ApiOkResponse({description: 'User login migration started', type: UserLoginMigrationResponse})@ApiForbiddenResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:115\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Post, Put, Query } from '@nestjs/common';\nimport {\n\tApiForbiddenResponse,\n\tApiInternalServerErrorResponse,\n\tApiNotFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n} from '@nestjs/swagger';\nimport { Page, UserLoginMigrationDO } from '@shared/domain';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser, JWT } from '@src/modules/authentication/decorator/auth.decorator';\nimport {\n\tSchoolNumberMissingLoggableException,\n\tUserLoginMigrationAlreadyClosedLoggableException,\n\tUserLoginMigrationGracePeriodExpiredLoggableException,\n\tUserLoginMigrationNotFoundLoggableException,\n} from '../error';\nimport { UserLoginMigrationMapper } from '../mapper';\nimport {\n\tCloseUserLoginMigrationUc,\n\tRestartUserLoginMigrationUc,\n\tStartUserLoginMigrationUc,\n\tToggleUserLoginMigrationUc,\n\tUserLoginMigrationQuery,\n\tUserLoginMigrationUc,\n} from '../uc';\nimport {\n\tUserLoginMigrationResponse,\n\tUserLoginMigrationSearchListResponse,\n\tUserLoginMigrationSearchParams,\n} from './dto';\nimport { Oauth2MigrationParams } from './dto/oauth2-migration.params';\nimport { SchoolIdParams } from './dto/request/school-id.params';\nimport { UserLoginMigrationMandatoryParams } from './dto/request/user-login-migration-mandatory.params';\n\n@ApiTags('UserLoginMigration')\n@Controller('user-login-migrations')\n@Authenticate('jwt')\nexport class UserLoginMigrationController {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationUc: UserLoginMigrationUc,\n\t\tprivate readonly startUserLoginMigrationUc: StartUserLoginMigrationUc,\n\t\tprivate readonly restartUserLoginMigrationUc: RestartUserLoginMigrationUc,\n\t\tprivate readonly toggleUserLoginMigrationUc: ToggleUserLoginMigrationUc,\n\t\tprivate readonly closeUserLoginMigrationUc: CloseUserLoginMigrationUc\n\t) {}\n\n\t@Get()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({\n\t\tsummary: 'Get UserLoginMigrations',\n\t\tdescription: 'Currently there can only be one migration for a user. Therefore only one migration is returned.',\n\t})\n\t@ApiOkResponse({ description: 'UserLoginMigrations has been found.', type: UserLoginMigrationSearchListResponse })\n\t@ApiInternalServerErrorResponse({ description: 'Cannot find target system information.' })\n\tasync getMigrations(\n\t\t@CurrentUser() user: ICurrentUser,\n\t\t@Query() params: UserLoginMigrationSearchParams\n\t): Promise {\n\t\tconst userLoginMigrationQuery: UserLoginMigrationQuery = UserLoginMigrationMapper.mapSearchParamsToQuery(params);\n\n\t\tconst migrationPage: Page = await this.userLoginMigrationUc.getMigrations(\n\t\t\tuser.userId,\n\t\t\tuserLoginMigrationQuery\n\t\t);\n\n\t\tconst migrationResponses: UserLoginMigrationResponse[] = migrationPage.data.map(\n\t\t\t(userLoginMigration: UserLoginMigrationDO) =>\n\t\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(userLoginMigration)\n\t\t);\n\n\t\tconst response: UserLoginMigrationSearchListResponse = new UserLoginMigrationSearchListResponse(\n\t\t\tmigrationResponses,\n\t\t\tmigrationPage.total,\n\t\t\tundefined,\n\t\t\tundefined\n\t\t);\n\n\t\treturn response;\n\t}\n\n\t@Get('schools/:schoolId')\n\t@ApiForbiddenResponse()\n\t@ApiOkResponse({ description: 'UserLoginMigrations has been found', type: UserLoginMigrationResponse })\n\t@ApiNotFoundResponse({ description: 'Cannot find UserLoginMigration' })\n\tasync findUserLoginMigrationBySchool(\n\t\t@CurrentUser() user: ICurrentUser,\n\t\t@Param() params: SchoolIdParams\n\t): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationUc.findUserLoginMigrationBySchool(\n\t\t\tuser.userId,\n\t\t\tparams.schoolId\n\t\t);\n\n\t\tconst response: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(userLoginMigration);\n\n\t\treturn response;\n\t}\n\n\t@Post('start')\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'User login migration is already closed and cannot be modified',\n\t\ttype: UserLoginMigrationAlreadyClosedLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'School has no official school number',\n\t\ttype: SchoolNumberMissingLoggableException,\n\t})\n\t@ApiOkResponse({ description: 'User login migration started', type: UserLoginMigrationResponse })\n\t@ApiForbiddenResponse()\n\tasync startMigration(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst migrationDto: UserLoginMigrationDO = await this.startUserLoginMigrationUc.startMigration(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId\n\t\t);\n\n\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(migrationDto);\n\n\t\treturn migrationResponse;\n\t}\n\n\t@Put('restart')\n\t@ApiNotFoundResponse({\n\t\tdescription: 'User login migration was not found',\n\t\ttype: UserLoginMigrationNotFoundLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'Grace period for changing the user login migration is expired',\n\t\ttype: UserLoginMigrationGracePeriodExpiredLoggableException,\n\t})\n\t@ApiOkResponse({ description: 'User login migration started', type: UserLoginMigrationResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\tasync restartMigration(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst migrationDto: UserLoginMigrationDO = await this.restartUserLoginMigrationUc.restartMigration(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId\n\t\t);\n\n\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(migrationDto);\n\n\t\treturn migrationResponse;\n\t}\n\n\t@Put('mandatory')\n\t@ApiNotFoundResponse({\n\t\tdescription: 'User login migration was not found',\n\t\ttype: UserLoginMigrationNotFoundLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'Grace period for changing the user login migration is expired',\n\t\ttype: UserLoginMigrationGracePeriodExpiredLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'User login migration is already closed and cannot be modified',\n\t\ttype: UserLoginMigrationAlreadyClosedLoggableException,\n\t})\n\t@ApiOkResponse({ description: 'User login migration is set mandatory/optional', type: UserLoginMigrationResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\tasync setMigrationMandatory(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: UserLoginMigrationMandatoryParams\n\t): Promise {\n\t\tconst migrationDto: UserLoginMigrationDO = await this.toggleUserLoginMigrationUc.setMigrationMandatory(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId,\n\t\t\tbody.mandatory\n\t\t);\n\n\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(migrationDto);\n\n\t\treturn migrationResponse;\n\t}\n\n\t@Post('close')\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'User login migration is already closed and cannot be modified. Restart is possible.',\n\t\ttype: UserLoginMigrationAlreadyClosedLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'User login migration is already closed and cannot be modified. It cannot be restarted.',\n\t\ttype: UserLoginMigrationGracePeriodExpiredLoggableException,\n\t})\n\t@ApiNotFoundResponse({\n\t\tdescription: 'User login migration does not exist',\n\t\ttype: UserLoginMigrationNotFoundLoggableException,\n\t})\n\t@ApiOkResponse({ description: 'User login migration closed', type: UserLoginMigrationResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\tasync closeMigration(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO = await this.closeUserLoginMigrationUc.closeMigration(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId\n\t\t);\n\n\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(userLoginMigration);\n\n\t\treturn migrationResponse;\n\t}\n\n\t@Post('migrate-to-oauth2')\n\t@ApiOkResponse({ description: 'The User has been successfully migrated.', status: 200 })\n\t@ApiInternalServerErrorResponse({ description: 'The migration of the User was not possible.' })\n\tasync migrateUserLogin(\n\t\t@JWT() jwt: string,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: Oauth2MigrationParams\n\t): Promise {\n\t\tawait this.userLoginMigrationUc.migrate(jwt, currentUser.userId, body.systemId, body.code, body.redirectUri);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationDO.html":{"url":"classes/UserLoginMigrationDO.html","title":"class - UserLoginMigrationDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/user-login-migration.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n closedAt\n \n \n Optional\n finishedAt\n \n \n Optional\n mandatorySince\n \n \n schoolId\n \n \n Optional\n sourceSystemId\n \n \n startedAt\n \n \n targetSystemId\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: UserLoginMigrationDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n UserLoginMigrationDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n finishedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n mandatorySince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n sourceSystemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n startedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n targetSystemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '../types';\nimport { BaseDO } from './base.do';\n\nexport class UserLoginMigrationDO extends BaseDO {\n\tschoolId: EntityId;\n\n\tsourceSystemId?: EntityId;\n\n\ttargetSystemId: EntityId;\n\n\tmandatorySince?: Date;\n\n\tstartedAt: Date;\n\n\tclosedAt?: Date;\n\n\tfinishedAt?: Date;\n\n\tconstructor(props: UserLoginMigrationDO) {\n\t\tsuper(props.id);\n\t\tthis.schoolId = props.schoolId;\n\t\tthis.sourceSystemId = props.sourceSystemId;\n\t\tthis.targetSystemId = props.targetSystemId;\n\t\tthis.mandatorySince = props.mandatorySince;\n\t\tthis.startedAt = props.startedAt;\n\t\tthis.closedAt = props.closedAt;\n\t\tthis.finishedAt = props.finishedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationError.html":{"url":"classes/UserLoginMigrationError.html","title":"class - UserLoginMigrationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/user-login-migration.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(details?: Record)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class UserLoginMigrationError extends BusinessError {\n\tconstructor(details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'USER_MIGRATION_FAILED',\n\t\t\t\ttitle: 'Migration failed',\n\t\t\t\tdefaultMessage: 'Migration of user failed during migration process',\n\t\t\t},\n\t\t\tHttpStatus.INTERNAL_SERVER_ERROR,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{"url":"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html","title":"class - UserLoginMigrationGracePeriodExpiredLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationGracePeriodExpiredLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/user-login-migration-grace-period-expired-loggable.exception.ts\n \n\n\n\n \n Extends\n \n \n UnprocessableEntityException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationId: EntityId, finishedAt: Date)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-grace-period-expired-loggable.exception.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n finishedAt\n \n \n Date\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-grace-period-expired-loggable.exception.ts:13\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationGracePeriodExpiredLoggableException\n\textends UnprocessableEntityException\n\timplements Loggable\n{\n\tconstructor(private readonly userLoginMigrationId: EntityId, private readonly finishedAt: Date) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'USER_LOGIN_MIGRATION_GRACE_PERIOD_EXPIRED',\n\t\t\tmessage: 'The grace period after finishing the user login migration has expired. It cannot be restarted.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t\tfinishedAt: this.finishedAt.toISOString(),\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationMandatoryLoggable.html":{"url":"classes/UserLoginMigrationMandatoryLoggable.html","title":"class - UserLoginMigrationMandatoryLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationMandatoryLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/loggable/user-login-migration-mandatory.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, userLoginMigrationId: EntityId, mandatory: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/loggable/user-login-migration-mandatory.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n mandatory\n \n \n boolean\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/loggable/user-login-migration-mandatory.loggable.ts:11\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationMandatoryLoggable implements Loggable {\n\tconstructor(\n\t\tprivate readonly userId: EntityId,\n\t\tprivate readonly userLoginMigrationId: EntityId,\n\t\tprivate readonly mandatory: boolean\n\t) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school administrator changed the requirement status of the user login migration for his school.',\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t\tmandatory: this.mandatory,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationMandatoryParams.html":{"url":"classes/UserLoginMigrationMandatoryParams.html","title":"class - UserLoginMigrationMandatoryParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationMandatoryParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/request/user-login-migration-mandatory.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n mandatory\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n mandatory\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/user-login-migration-mandatory.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class UserLoginMigrationMandatoryParams {\n\t@IsBoolean()\n\t@ApiProperty()\n\tmandatory!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationMapper.html":{"url":"classes/UserLoginMigrationMapper.html","title":"class - UserLoginMigrationMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/mapper/user-login-migration.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapSearchParamsToQuery\n \n \n Static\n mapUserLoginMigrationDoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapSearchParamsToQuery\n \n \n \n \n \n \n \n mapSearchParamsToQuery(searchParams: UserLoginMigrationSearchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/mapper/user-login-migration.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n searchParams\n \n UserLoginMigrationSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserLoginMigrationQuery\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapUserLoginMigrationDoToResponse\n \n \n \n \n \n \n \n mapUserLoginMigrationDoToResponse(domainObject: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/mapper/user-login-migration.mapper.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserLoginMigrationResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UserLoginMigrationDO } from '@shared/domain';\nimport { UserLoginMigrationResponse, UserLoginMigrationSearchParams } from '../controller/dto';\nimport { UserLoginMigrationQuery } from '../uc/dto/user-login-migration-query';\n\nexport class UserLoginMigrationMapper {\n\tstatic mapSearchParamsToQuery(searchParams: UserLoginMigrationSearchParams): UserLoginMigrationQuery {\n\t\tconst query: UserLoginMigrationQuery = {\n\t\t\tuserId: searchParams.userId,\n\t\t};\n\t\treturn query;\n\t}\n\n\tstatic mapUserLoginMigrationDoToResponse(domainObject: UserLoginMigrationDO): UserLoginMigrationResponse {\n\t\tconst response: UserLoginMigrationResponse = new UserLoginMigrationResponse({\n\t\t\tsourceSystemId: domainObject.sourceSystemId,\n\t\t\ttargetSystemId: domainObject.targetSystemId,\n\t\t\tstartedAt: domainObject.startedAt,\n\t\t\tclosedAt: domainObject.closedAt,\n\t\t\tfinishedAt: domainObject.finishedAt,\n\t\t\tmandatorySince: domainObject.mandatorySince,\n\t\t});\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/UserLoginMigrationModule.html":{"url":"modules/UserLoginMigrationModule.html","title":"module - UserLoginMigrationModule","body":"\n \n\n\n\n\n Modules\n UserLoginMigrationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_UserLoginMigrationModule\n\n\n\ncluster_UserLoginMigrationModule_providers\n\n\n\ncluster_UserLoginMigrationModule_imports\n\n\n\ncluster_UserLoginMigrationModule_exports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule -->\n\nAccountModule->UserLoginMigrationModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nUserLoginMigrationModule -->\n\nLegacySchoolModule->UserLoginMigrationModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nUserLoginMigrationModule -->\n\nLoggerModule->UserLoginMigrationModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nUserLoginMigrationModule -->\n\nSystemModule->UserLoginMigrationModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nUserLoginMigrationModule -->\n\nUserModule->UserLoginMigrationModule\n\n\n\n\n\nMigrationCheckService \n\nMigrationCheckService \n\nMigrationCheckService -->\n\nUserLoginMigrationModule->MigrationCheckService \n\n\n\n\n\nSchoolMigrationService \n\nSchoolMigrationService \n\nSchoolMigrationService -->\n\nUserLoginMigrationModule->SchoolMigrationService \n\n\n\n\n\nUserLoginMigrationRevertService \n\nUserLoginMigrationRevertService \n\nUserLoginMigrationRevertService -->\n\nUserLoginMigrationModule->UserLoginMigrationRevertService \n\n\n\n\n\nUserLoginMigrationService \n\nUserLoginMigrationService \n\nUserLoginMigrationService -->\n\nUserLoginMigrationModule->UserLoginMigrationService \n\n\n\n\n\nUserMigrationService \n\nUserMigrationService \n\nUserMigrationService -->\n\nUserLoginMigrationModule->UserMigrationService \n\n\n\n\n\nMigrationCheckService\n\nMigrationCheckService\n\nUserLoginMigrationModule -->\n\nMigrationCheckService->UserLoginMigrationModule\n\n\n\n\n\nSchoolMigrationService\n\nSchoolMigrationService\n\nUserLoginMigrationModule -->\n\nSchoolMigrationService->UserLoginMigrationModule\n\n\n\n\n\nUserLoginMigrationRepo\n\nUserLoginMigrationRepo\n\nUserLoginMigrationModule -->\n\nUserLoginMigrationRepo->UserLoginMigrationModule\n\n\n\n\n\nUserLoginMigrationRevertService\n\nUserLoginMigrationRevertService\n\nUserLoginMigrationModule -->\n\nUserLoginMigrationRevertService->UserLoginMigrationModule\n\n\n\n\n\nUserLoginMigrationService\n\nUserLoginMigrationService\n\nUserLoginMigrationModule -->\n\nUserLoginMigrationService->UserLoginMigrationModule\n\n\n\n\n\nUserMigrationService\n\nUserMigrationService\n\nUserLoginMigrationModule -->\n\nUserMigrationService->UserLoginMigrationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user-login-migration/user-login-migration.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n MigrationCheckService\n \n \n SchoolMigrationService\n \n \n UserLoginMigrationRepo\n \n \n UserLoginMigrationRevertService\n \n \n UserLoginMigrationService\n \n \n UserMigrationService\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n SystemModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n MigrationCheckService\n \n \n SchoolMigrationService\n \n \n UserLoginMigrationRevertService\n \n \n UserLoginMigrationService\n \n \n UserMigrationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { UserLoginMigrationRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@src/modules/account';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { SystemModule } from '@src/modules/system';\nimport { UserModule } from '@src/modules/user';\nimport {\n\tMigrationCheckService,\n\tSchoolMigrationService,\n\tUserLoginMigrationRevertService,\n\tUserLoginMigrationService,\n\tUserMigrationService,\n} from './service';\n\n@Module({\n\timports: [UserModule, LegacySchoolModule, LoggerModule, AccountModule, SystemModule],\n\tproviders: [\n\t\tUserMigrationService,\n\t\tSchoolMigrationService,\n\t\tMigrationCheckService,\n\t\tUserLoginMigrationService,\n\t\tUserLoginMigrationRepo,\n\t\tUserLoginMigrationRevertService,\n\t],\n\texports: [\n\t\tUserMigrationService,\n\t\tSchoolMigrationService,\n\t\tMigrationCheckService,\n\t\tUserLoginMigrationService,\n\t\tUserLoginMigrationRevertService,\n\t],\n})\nexport class UserLoginMigrationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationNotFoundLoggableException.html":{"url":"classes/UserLoginMigrationNotFoundLoggableException.html","title":"class - UserLoginMigrationNotFoundLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationNotFoundLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/user-login-migration-not-found.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n NotFoundException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolId: EntityId, userLoginMigrationId?: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-not-found.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-not-found.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationNotFoundLoggableException extends NotFoundException implements Loggable {\n\tconstructor(private readonly schoolId: EntityId, private readonly userLoginMigrationId?: EntityId) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'USER_LOGIN_MIGRATION_NOT_FOUND',\n\t\t\tmessage: 'Cannot find requested user login migration for school.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tschoolId: this.schoolId,\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/UserLoginMigrationQuery.html":{"url":"interfaces/UserLoginMigrationQuery.html","title":"interface - UserLoginMigrationQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserLoginMigrationQuery\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/dto/user-login-migration-query.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface UserLoginMigrationQuery {\n\tuserId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationRepo.html":{"url":"injectables/UserLoginMigrationRepo.html","title":"injectable - UserLoginMigrationRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/userloginmigration/user-login-migration.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findBySchoolId\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/userloginmigration/user-login-migration.repo.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IUserLoginMigration)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IUserLoginMigration\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserLoginMigration\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolId\n \n \n \n \n \n \n \n findBySchoolId(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/userloginmigration/user-login-migration.repo.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: UserLoginMigrationDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:51\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IUserLoginMigration\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: UserLoginMigration)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:36\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n UserLoginMigration\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserLoginMigrationDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/userloginmigration/user-login-migration.repo.ts:15\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId, SchoolEntity, System, UserLoginMigrationDO } from '@shared/domain';\nimport { IUserLoginMigration, UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { LegacyLogger } from '@src/core/logger';\nimport { BaseDORepo } from '../base.do.repo';\n\n@Injectable()\nexport class UserLoginMigrationRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn UserLoginMigration;\n\t}\n\n\tentityFactory(props: IUserLoginMigration): UserLoginMigration {\n\t\treturn new UserLoginMigration(props);\n\t}\n\n\tasync findBySchoolId(schoolId: EntityId): Promise {\n\t\tconst userLoginMigration: UserLoginMigration | null = await this._em.findOne(UserLoginMigration, {\n\t\t\tschool: schoolId,\n\t\t});\n\n\t\tif (userLoginMigration) {\n\t\t\tconst userLoginMigrationDO = this.mapEntityToDO(userLoginMigration);\n\t\t\treturn userLoginMigrationDO;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tmapEntityToDO(entity: UserLoginMigration): UserLoginMigrationDO {\n\t\tconst userLoginMigrationDO: UserLoginMigrationDO = new UserLoginMigrationDO({\n\t\t\tid: entity.id,\n\t\t\tschoolId: entity.school.id,\n\t\t\tsourceSystemId: entity.sourceSystem?.id,\n\t\t\ttargetSystemId: entity.targetSystem.id,\n\t\t\tmandatorySince: entity.mandatorySince,\n\t\t\tstartedAt: entity.startedAt,\n\t\t\tclosedAt: entity.closedAt,\n\t\t\tfinishedAt: entity.finishedAt,\n\t\t});\n\n\t\treturn userLoginMigrationDO;\n\t}\n\n\tmapDOToEntityProperties(entityDO: UserLoginMigrationDO): IUserLoginMigration {\n\t\tconst userLoginMigrationProps: IUserLoginMigration = {\n\t\t\tschool: this._em.getReference(SchoolEntity, entityDO.schoolId),\n\t\t\tsourceSystem: entityDO.sourceSystemId ? this._em.getReference(System, entityDO.sourceSystemId) : undefined,\n\t\t\ttargetSystem: this._em.getReference(System, entityDO.targetSystemId),\n\t\t\tmandatorySince: entityDO.mandatorySince,\n\t\t\tstartedAt: entityDO.startedAt,\n\t\t\tclosedAt: entityDO.closedAt,\n\t\t\tfinishedAt: entityDO.finishedAt,\n\t\t};\n\n\t\treturn userLoginMigrationProps;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationResponse.html":{"url":"classes/UserLoginMigrationResponse.html","title":"class - UserLoginMigrationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n Optional\n finishedAt\n \n \n \n Optional\n mandatorySince\n \n \n \n Optional\n sourceSystemId\n \n \n \n startedAt\n \n \n \n targetSystemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: UserLoginMigrationResponse)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:32\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n UserLoginMigrationResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date when the migration was completed'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n finishedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date when the migration was completed including the grace period'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n mandatorySince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date when the migration was marked as required'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceSystemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Id of the system which is the origin of the migration'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n startedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Date when the migration was started'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetSystemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Id of the system which is the target of the migration'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class UserLoginMigrationResponse {\n\t@ApiPropertyOptional({\n\t\tdescription: 'Id of the system which is the origin of the migration',\n\t})\n\tsourceSystemId?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Id of the system which is the target of the migration',\n\t})\n\ttargetSystemId: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date when the migration was marked as required',\n\t})\n\tmandatorySince?: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'Date when the migration was started',\n\t})\n\tstartedAt: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date when the migration was completed',\n\t})\n\tclosedAt?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date when the migration was completed including the grace period',\n\t})\n\tfinishedAt?: Date;\n\n\tconstructor(props: UserLoginMigrationResponse) {\n\t\tthis.sourceSystemId = props.sourceSystemId;\n\t\tthis.targetSystemId = props.targetSystemId;\n\t\tthis.mandatorySince = props.mandatorySince;\n\t\tthis.startedAt = props.startedAt;\n\t\tthis.closedAt = props.closedAt;\n\t\tthis.finishedAt = props.finishedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationRevertService.html":{"url":"injectables/UserLoginMigrationRevertService.html","title":"injectable - UserLoginMigrationRevertService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationRevertService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/user-login-migration-revert.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n revertUserLoginMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration-revert.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n revertUserLoginMigration\n \n \n \n \n \n \n \n revertUserLoginMigration(userLoginMigration: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration-revert.service.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolFeatures, UserLoginMigrationDO } from '@shared/domain';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserLoginMigrationService } from './user-login-migration.service';\n\n@Injectable()\nexport class UserLoginMigrationRevertService {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly schoolService: LegacySchoolService\n\t) {}\n\n\tasync revertUserLoginMigration(userLoginMigration: UserLoginMigrationDO): Promise {\n\t\tawait this.schoolService.removeFeature(userLoginMigration.schoolId, SchoolFeatures.OAUTH_PROVISIONING_ENABLED);\n\t\tawait this.userLoginMigrationService.deleteUserLoginMigration(userLoginMigration);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationRule.html":{"url":"injectables/UserLoginMigrationRule.html","title":"injectable - UserLoginMigrationRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/user-login-migration.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/user-login-migration.rule.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: UserLoginMigrationDO, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/user-login-migration.rule.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/user-login-migration.rule.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { UserLoginMigrationDO } from '../domainobject';\nimport { User } from '../entity';\n\n@Injectable()\nexport class UserLoginMigrationRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: UserLoginMigrationDO): boolean {\n\t\tconst isMatched: boolean = entity instanceof UserLoginMigrationDO;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: UserLoginMigrationDO, context: AuthorizationContext): boolean {\n\t\tconst hasPermission: boolean =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\tuser.school.id === entity.schoolId;\n\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationSearchListResponse.html":{"url":"classes/UserLoginMigrationSearchListResponse.html","title":"class - UserLoginMigrationSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration-search-list.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: UserLoginMigrationResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration-search-list.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n UserLoginMigrationResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : UserLoginMigrationResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:7\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PaginationResponse } from '@shared/controller';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { UserLoginMigrationResponse } from './user-login-migration.response';\n\nexport class UserLoginMigrationSearchListResponse extends PaginationResponse {\n\t@ApiProperty({ type: [UserLoginMigrationResponse] })\n\tdata: UserLoginMigrationResponse[];\n\n\tconstructor(data: UserLoginMigrationResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationSearchParams.html":{"url":"classes/UserLoginMigrationSearchParams.html","title":"class - UserLoginMigrationSearchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationSearchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/request/user-login-migration-search.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsString()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/user-login-migration-search.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsOptional, IsString } from 'class-validator';\n\nexport class UserLoginMigrationSearchParams {\n\t@ApiPropertyOptional()\n\t@IsString()\n\t@IsOptional()\n\tuserId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationService.html":{"url":"injectables/UserLoginMigrationService.html","title":"injectable - UserLoginMigrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n closeMigration\n \n \n Private\n Async\n createNewMigration\n \n \n Async\n deleteUserLoginMigration\n \n \n Private\n enableOauthMigrationFeature\n \n \n Async\n findMigrationBySchool\n \n \n Async\n findMigrationByUser\n \n \n Async\n restartMigration\n \n \n Async\n setMigration\n \n \n Async\n setMigrationMandatory\n \n \n Async\n startMigration\n \n \n Private\n Async\n updateExistingMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, userLoginMigrationRepo: UserLoginMigrationRepo, schoolService: LegacySchoolService, systemService: SystemService, schoolMigrationService: SchoolMigrationService)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n userLoginMigrationRepo\n \n \n UserLoginMigrationRepo\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n closeMigration\n \n \n \n \n \n \n \n closeMigration(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createNewMigration\n \n \n \n \n \n \n \n createNewMigration(school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:149\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteUserLoginMigration\n \n \n \n \n \n \n \n deleteUserLoginMigration(userLoginMigration: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:215\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n enableOauthMigrationFeature\n \n \n \n \n \n \n \n enableOauthMigrationFeature(schoolDo: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:181\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolDo\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMigrationBySchool\n \n \n \n \n \n \n \n findMigrationBySchool(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:189\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMigrationByUser\n \n \n \n \n \n \n \n findMigrationByUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:195\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n restartMigration\n \n \n \n \n \n \n \n restartMigration(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigration\n \n \n \n \n \n \n Use the other functions in this class instead.\n \n \n \n \n \n setMigration(schoolId: EntityId, oauthMigrationPossible?: boolean, oauthMigrationMandatory?: boolean, oauthMigrationFinished?: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n oauthMigrationPossible\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n oauthMigrationMandatory\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n oauthMigrationFinished\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigrationMandatory\n \n \n \n \n \n \n \n setMigrationMandatory(schoolId: string, mandatory: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n mandatory\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startMigration\n \n \n \n \n \n \n \n startMigration(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateExistingMigration\n \n \n \n \n \n \n \n updateExistingMigration(userLoginMigrationDO: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:171\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationDO\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable, InternalServerErrorException, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, SchoolFeatures, SystemTypeEnum, UserDO, UserLoginMigrationDO } from '@shared/domain';\nimport { UserLoginMigrationRepo } from '@shared/repo';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { SystemDto, SystemService } from '@src/modules/system';\nimport { UserService } from '@src/modules/user';\nimport { UserLoginMigrationNotFoundLoggableException } from '../error';\nimport { SchoolMigrationService } from './school-migration.service';\n\n@Injectable()\nexport class UserLoginMigrationService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly userLoginMigrationRepo: UserLoginMigrationRepo,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService\n\t) {}\n\n\t/**\n\t * @deprecated Use the other functions in this class instead.\n\t *\n\t * @param schoolId\n\t * @param oauthMigrationPossible\n\t * @param oauthMigrationMandatory\n\t * @param oauthMigrationFinished\n\t */\n\tasync setMigration(\n\t\tschoolId: EntityId,\n\t\toauthMigrationPossible?: boolean,\n\t\toauthMigrationMandatory?: boolean,\n\t\toauthMigrationFinished?: boolean\n\t): Promise {\n\t\tconst schoolDo: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst existingUserLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(\n\t\t\tschoolId\n\t\t);\n\n\t\tlet userLoginMigration: UserLoginMigrationDO;\n\n\t\tif (existingUserLoginMigration) {\n\t\t\tuserLoginMigration = existingUserLoginMigration;\n\t\t} else {\n\t\t\tif (!oauthMigrationPossible) {\n\t\t\t\tthrow new UnprocessableEntityException(`School ${schoolId} has no UserLoginMigration`);\n\t\t\t}\n\n\t\t\tuserLoginMigration = await this.createNewMigration(schoolDo);\n\n\t\t\tthis.enableOauthMigrationFeature(schoolDo);\n\t\t\tawait this.schoolService.save(schoolDo);\n\t\t}\n\n\t\tif (oauthMigrationPossible === true) {\n\t\t\tuserLoginMigration.closedAt = undefined;\n\t\t\tuserLoginMigration.finishedAt = undefined;\n\t\t}\n\n\t\tif (oauthMigrationMandatory !== undefined) {\n\t\t\tuserLoginMigration.mandatorySince = oauthMigrationMandatory ? new Date() : undefined;\n\t\t}\n\n\t\tif (oauthMigrationFinished !== undefined) {\n\t\t\tuserLoginMigration.closedAt = oauthMigrationFinished ? new Date() : undefined;\n\t\t\tuserLoginMigration.finishedAt = oauthMigrationFinished\n\t\t\t\t? new Date(Date.now() + (Configuration.get('MIGRATION_END_GRACE_PERIOD_MS') as number))\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tconst savedMigration: UserLoginMigrationDO = await this.userLoginMigrationRepo.save(userLoginMigration);\n\n\t\tif (oauthMigrationFinished !== undefined) {\n\t\t\t// this would throw an error when executed before the userLoginMigrationRepo.save method.\n\t\t\tawait this.schoolService.removeFeature(schoolId, SchoolFeatures.ENABLE_LDAP_SYNC_DURING_MIGRATION);\n\t\t}\n\n\t\treturn savedMigration;\n\t}\n\n\tasync startMigration(schoolId: string): Promise {\n\t\tconst schoolDo: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst userLoginMigrationDO: UserLoginMigrationDO = await this.createNewMigration(schoolDo);\n\n\t\tthis.enableOauthMigrationFeature(schoolDo);\n\t\tawait this.schoolService.save(schoolDo);\n\n\t\tconst userLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationRepo.save(userLoginMigrationDO);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync restartMigration(schoolId: string): Promise {\n\t\tconst existingUserLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!existingUserLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t}\n\n\t\tconst updatedUserLoginMigration = await this.updateExistingMigration(existingUserLoginMigration);\n\n\t\tawait this.schoolMigrationService.unmarkOutdatedUsers(schoolId);\n\n\t\treturn updatedUserLoginMigration;\n\t}\n\n\tasync setMigrationMandatory(schoolId: string, mandatory: boolean): Promise {\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t}\n\n\t\tif (mandatory) {\n\t\t\tuserLoginMigration.mandatorySince = userLoginMigration.mandatorySince ?? new Date();\n\t\t} else {\n\t\t\tuserLoginMigration.mandatorySince = undefined;\n\t\t}\n\n\t\tuserLoginMigration = await this.userLoginMigrationRepo.save(userLoginMigration);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync closeMigration(schoolId: string): Promise {\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t}\n\n\t\tawait this.schoolService.removeFeature(schoolId, SchoolFeatures.ENABLE_LDAP_SYNC_DURING_MIGRATION);\n\n\t\tconst now: Date = new Date();\n\t\tconst gracePeriodDuration: number = Configuration.get('MIGRATION_END_GRACE_PERIOD_MS') as number;\n\n\t\tuserLoginMigration.closedAt = now;\n\t\tuserLoginMigration.finishedAt = new Date(now.getTime() + gracePeriodDuration);\n\n\t\tuserLoginMigration = await this.userLoginMigrationRepo.save(userLoginMigration);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tprivate async createNewMigration(school: LegacySchoolDo): Promise {\n\t\tconst oauthSystems: SystemDto[] = await this.systemService.findByType(SystemTypeEnum.OAUTH);\n\t\tconst sanisSystem: SystemDto | undefined = oauthSystems.find((system: SystemDto) => system.alias === 'SANIS');\n\n\t\tif (!sanisSystem) {\n\t\t\tthrow new InternalServerErrorException('Cannot find SANIS system');\n\t\t}\n\n\t\tconst systemIds: EntityId[] =\n\t\t\tschool.systems?.filter((systemId: EntityId) => systemId !== (sanisSystem.id as string)) || [];\n\t\tconst sourceSystemId = systemIds[0];\n\n\t\tconst userLoginMigrationDO: UserLoginMigrationDO = new UserLoginMigrationDO({\n\t\t\tschoolId: school.id as string,\n\t\t\ttargetSystemId: sanisSystem.id as string,\n\t\t\tsourceSystemId,\n\t\t\tstartedAt: new Date(),\n\t\t});\n\n\t\treturn userLoginMigrationDO;\n\t}\n\n\tprivate async updateExistingMigration(userLoginMigrationDO: UserLoginMigrationDO) {\n\t\tuserLoginMigrationDO.startedAt = new Date();\n\t\tuserLoginMigrationDO.closedAt = undefined;\n\t\tuserLoginMigrationDO.finishedAt = undefined;\n\n\t\tconst userLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationRepo.save(userLoginMigrationDO);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tprivate enableOauthMigrationFeature(schoolDo: LegacySchoolDo) {\n\t\tif (schoolDo.features && !schoolDo.features.includes(SchoolFeatures.OAUTH_PROVISIONING_ENABLED)) {\n\t\t\tschoolDo.features.push(SchoolFeatures.OAUTH_PROVISIONING_ENABLED);\n\t\t} else {\n\t\t\tschoolDo.features = [SchoolFeatures.OAUTH_PROVISIONING_ENABLED];\n\t\t}\n\t}\n\n\tasync findMigrationBySchool(schoolId: string): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync findMigrationByUser(userId: EntityId): Promise {\n\t\tconst userDO: UserDO = await this.userService.findById(userId);\n\t\tconst { schoolId } = userDO;\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.findMigrationBySchool(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst hasUserMigrated: boolean =\n\t\t\t!!userDO.lastLoginSystemChange && userDO.lastLoginSystemChange > userLoginMigration.startedAt;\n\n\t\tif (hasUserMigrated) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync deleteUserLoginMigration(userLoginMigration: UserLoginMigrationDO): Promise {\n\t\tawait this.userLoginMigrationRepo.delete(userLoginMigration);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationStartLoggable.html":{"url":"classes/UserLoginMigrationStartLoggable.html","title":"class - UserLoginMigrationStartLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationStartLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/loggable/user-login-migration-start.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, userLoginMigrationId: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/loggable/user-login-migration-start.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/loggable/user-login-migration-start.loggable.ts:7\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationStartLoggable implements Loggable {\n\tconstructor(private readonly userId: EntityId, private readonly userLoginMigrationId: EntityId) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school administrator started the migration for his school.',\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationUc.html":{"url":"injectables/UserLoginMigrationUc.html","title":"injectable - UserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findUserLoginMigrationBySchool\n \n \n Async\n getMigrations\n \n \n Async\n getPageContent\n \n \n Private\n logMigrationInformation\n \n \n Async\n migrate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userMigrationService: UserMigrationService, userLoginMigrationService: UserLoginMigrationService, oauthService: OAuthService, provisioningService: ProvisioningService, schoolMigrationService: SchoolMigrationService, authenticationService: AuthenticationService, authorizationService: AuthorizationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userMigrationService\n \n \n UserMigrationService\n \n \n \n No\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n oauthService\n \n \n OAuthService\n \n \n \n No\n \n \n \n \n provisioningService\n \n \n ProvisioningService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n authenticationService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findUserLoginMigrationBySchool\n \n \n \n \n \n \n \n findUserLoginMigrationBySchool(userId: EntityId, schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigrations\n \n \n \n \n \n \n \n getMigrations(userId: EntityId, query: UserLoginMigrationQuery)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n query\n \n UserLoginMigrationQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getPageContent\n \n \n \n \n \n \n \n getPageContent(pageType: PageTypes, sourceSystem: string, targetSystem: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pageType\n \n PageTypes\n \n\n \n No\n \n\n\n \n \n sourceSystem\n \n string\n \n\n \n No\n \n\n\n \n \n targetSystem\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n logMigrationInformation\n \n \n \n \n \n \n \n logMigrationInformation(userId: string, text?: string, oauthData?: OauthDataDto, targetSystemId?: string, school?: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:155\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n text\n \n string\n \n\n \n Yes\n \n\n\n \n \n oauthData\n \n OauthDataDto\n \n\n \n Yes\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n Yes\n \n\n\n \n \n school\n \n LegacySchoolDo\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrate\n \n \n \n \n \n \n \n migrate(userJwt: string, currentUserId: string, targetSystemId: EntityId, code: string, redirectUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userJwt\n \n string\n \n\n \n No\n \n\n\n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n code\n \n string\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { EntityId, Page, Permission, LegacySchoolDo, User, UserLoginMigrationDO } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthenticationService } from '@src/modules/authentication/services/authentication.service';\nimport { Action, AuthorizationService } from '@src/modules/authorization';\nimport { OAuthTokenDto } from '@src/modules/oauth';\nimport { OAuthService } from '@src/modules/oauth/service/oauth.service';\nimport { ProvisioningService } from '@src/modules/provisioning';\nimport { OauthDataDto } from '@src/modules/provisioning/dto';\nimport { OAuthMigrationError, SchoolMigrationError, UserLoginMigrationError } from '../error';\nimport { PageTypes } from '../interface/page-types.enum';\nimport { SchoolMigrationService, UserLoginMigrationService, UserMigrationService } from '../service';\nimport { MigrationDto, PageContentDto } from '../service/dto';\nimport { UserLoginMigrationQuery } from './dto';\n\n@Injectable()\nexport class UserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userMigrationService: UserMigrationService,\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly oauthService: OAuthService,\n\t\tprivate readonly provisioningService: ProvisioningService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService,\n\t\tprivate readonly authenticationService: AuthenticationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {}\n\n\tasync getPageContent(pageType: PageTypes, sourceSystem: string, targetSystem: string): Promise {\n\t\tconst content: PageContentDto = await this.userMigrationService.getPageContent(\n\t\t\tpageType,\n\t\t\tsourceSystem,\n\t\t\ttargetSystem\n\t\t);\n\n\t\treturn content;\n\t}\n\n\tasync getMigrations(userId: EntityId, query: UserLoginMigrationQuery): Promise> {\n\t\tlet page = new Page([], 0);\n\n\t\tif (query.userId) {\n\t\t\tif (userId !== query.userId) {\n\t\t\t\tthrow new ForbiddenException('Accessing migration status of another user is forbidden.');\n\t\t\t}\n\n\t\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationByUser(\n\t\t\t\tquery.userId\n\t\t\t);\n\n\t\t\tif (userLoginMigration) {\n\t\t\t\tpage = new Page([userLoginMigration], 1);\n\t\t\t}\n\t\t}\n\n\t\treturn page;\n\t}\n\n\tasync findUserLoginMigrationBySchool(userId: EntityId, schoolId: EntityId): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new NotFoundLoggableException('UserLoginMigration', 'schoolId', schoolId);\n\t\t}\n\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tthis.authorizationService.checkPermission(user, userLoginMigration, {\n\t\t\trequiredPermissions: [Permission.USER_LOGIN_MIGRATION_ADMIN],\n\t\t\taction: Action.read,\n\t\t});\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync migrate(\n\t\tuserJwt: string,\n\t\tcurrentUserId: string,\n\t\ttargetSystemId: EntityId,\n\t\tcode: string,\n\t\tredirectUri: string\n\t): Promise {\n\t\tconst tokenDto: OAuthTokenDto = await this.oauthService.authenticateUser(targetSystemId, redirectUri, code);\n\n\t\tthis.logMigrationInformation(currentUserId, `Migrates to targetSystem with id ${targetSystemId}`);\n\n\t\tconst data: OauthDataDto = await this.provisioningService.getData(\n\t\t\ttargetSystemId,\n\t\t\ttokenDto.idToken,\n\t\t\ttokenDto.accessToken\n\t\t);\n\n\t\tthis.logMigrationInformation(currentUserId, undefined, data, targetSystemId);\n\n\t\tif (data.externalSchool) {\n\t\t\tlet schoolToMigrate: LegacySchoolDo | null;\n\t\t\t// TODO: N21-820 after fully switching to the new client login flow, try/catch will be obsolete and schoolToMigrate should throw correct errors\n\t\t\ttry {\n\t\t\t\tschoolToMigrate = await this.schoolMigrationService.schoolToMigrate(\n\t\t\t\t\tcurrentUserId,\n\t\t\t\t\tdata.externalSchool.externalId,\n\t\t\t\t\tdata.externalSchool.officialSchoolNumber\n\t\t\t\t);\n\t\t\t} catch (error: unknown) {\n\t\t\t\tlet details: Record | undefined;\n\n\t\t\t\tif (\n\t\t\t\t\terror instanceof OAuthMigrationError &&\n\t\t\t\t\terror.officialSchoolNumberFromSource &&\n\t\t\t\t\terror.officialSchoolNumberFromTarget\n\t\t\t\t) {\n\t\t\t\t\tdetails = {\n\t\t\t\t\t\tsourceSchoolNumber: error.officialSchoolNumberFromSource,\n\t\t\t\t\t\ttargetSchoolNumber: error.officialSchoolNumberFromTarget,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthrow new SchoolMigrationError(details, error);\n\t\t\t}\n\n\t\t\tthis.logMigrationInformation(\n\t\t\t\tcurrentUserId,\n\t\t\t\t`Found school with officialSchoolNumber (${data.externalSchool.officialSchoolNumber ?? ''})`\n\t\t\t);\n\n\t\t\tif (schoolToMigrate) {\n\t\t\t\tawait this.schoolMigrationService.migrateSchool(\n\t\t\t\t\tdata.externalSchool.externalId,\n\t\t\t\t\tschoolToMigrate,\n\t\t\t\t\ttargetSystemId\n\t\t\t\t);\n\n\t\t\t\tthis.logMigrationInformation(currentUserId, undefined, data, data.system.systemId, schoolToMigrate);\n\t\t\t}\n\t\t}\n\n\t\tconst migrationDto: MigrationDto = await this.userMigrationService.migrateUser(\n\t\t\tcurrentUserId,\n\t\t\tdata.externalUser.externalId,\n\t\t\ttargetSystemId\n\t\t);\n\n\t\t// TODO: N21-820 after implementation of new client login flow, redirects will be obsolete and migrate should throw errors directly\n\t\tif (migrationDto.redirect.includes('migration/error')) {\n\t\t\tthrow new UserLoginMigrationError({ userId: currentUserId });\n\t\t}\n\n\t\tthis.logMigrationInformation(currentUserId, `Successfully migrated user and redirects to ${migrationDto.redirect}`);\n\n\t\tawait this.authenticationService.removeJwtFromWhitelist(userJwt);\n\t}\n\n\tprivate logMigrationInformation(\n\t\tuserId: string,\n\t\ttext?: string,\n\t\toauthData?: OauthDataDto,\n\t\ttargetSystemId?: string,\n\t\tschool?: LegacySchoolDo\n\t) {\n\t\tlet message = `MIGRATION (userId: ${userId}): ${text ?? ''}`;\n\t\tif (!school && oauthData) {\n\t\t\tmessage += `Provisioning data received from targetSystem (${targetSystemId ?? 'N/A'} with data: \n\t\t\t{ \n\t\t\t\t\"officialSchoolNumber\": ${oauthData.externalSchool?.officialSchoolNumber ?? 'N/A'},\n\t\t\t\t\"externalSchoolId\": ${oauthData.externalSchool?.externalId ?? ''}\n\t\t\t\t\"externalUserId\": ${oauthData.externalUser.externalId},\n\t\t\t})`;\n\t\t}\n\t\tif (school && oauthData) {\n\t\t\tmessage += `Successfully migrated school (${school.name} - (${school.id ?? 'N/A'}) to targetSystem ${\n\t\t\t\ttargetSystemId ?? 'N/A'\n\t\t\t} which has the externalSchoolId ${oauthData.externalSchool?.externalId ?? 'N/A'}`;\n\t\t}\n\t\tthis.logger.debug(message);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMapper.html":{"url":"classes/UserMapper.html","title":"class - UserMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/mapper/user.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n \n \n \n mapFromEntityToDto(entity: User)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/mapper/user.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Role, User } from '@shared/domain';\nimport { UserDto } from '@src/modules/user/uc/dto/user.dto';\n\nexport class UserMapper {\n\tstatic mapFromEntityToDto(entity: User): UserDto {\n\t\treturn new UserDto({\n\t\t\tid: entity.id,\n\t\t\temail: entity.email,\n\t\t\tfirstName: entity.firstName,\n\t\t\tlastName: entity.lastName,\n\t\t\tschoolId: entity.school.id,\n\t\t\troleIds: entity.roles.getItems().map((role: Role) => role.id),\n\t\t\tldapDn: entity.ldapDn,\n\t\t\texternalId: entity.externalId,\n\t\t\tlanguage: entity.language,\n\t\t\tforcePasswordChange: entity.forcePasswordChange,\n\t\t\tpreferences: entity.preferences,\n\t\t\tlastLoginSystemChange: entity.lastLoginSystemChange,\n\t\t\toutdatedSince: entity.outdatedSince,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMatchListResponse.html":{"url":"classes/UserMatchListResponse.html","title":"class - UserMatchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMatchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/user-match.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: UserMatchResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:44\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n UserMatchResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : UserMatchResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:51\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { IsMongoId } from 'class-validator';\nimport { MatchType } from './match-type';\nimport { UserRole } from './user-role';\n\nexport class UserMatchResponse {\n\tconstructor(props: UserMatchResponse) {\n\t\tthis.userId = props.userId;\n\t\tthis.loginName = props.loginName;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.roleNames = props.roleNames;\n\t\tif (props.matchedBy != null) this.matchedBy = props.matchedBy;\n\t}\n\n\t@IsMongoId()\n\t@ApiProperty({ description: 'local user id' })\n\tuserId: string;\n\n\t@ApiProperty({ description: 'login name of local user' })\n\tloginName: string;\n\n\t@ApiProperty({ description: 'firstname of local user' })\n\tfirstName: string;\n\n\t@ApiProperty({ description: 'lastname of local user' })\n\tlastName: string;\n\n\t@ApiProperty({\n\t\tdescription: 'list of user roles from external system: student, teacher, admin',\n\t\tenum: UserRole,\n\t\tisArray: true,\n\t})\n\troleNames: UserRole[];\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'match type: admin (manual) or auto (set, when names match exactly for a single user',\n\t\tenum: MatchType,\n\t})\n\tmatchedBy?: MatchType;\n}\n\nexport class UserMatchListResponse extends PaginationResponse {\n\tconstructor(data: UserMatchResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [UserMatchResponse] })\n\tdata: UserMatchResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMatchMapper.html":{"url":"classes/UserMatchMapper.html","title":"class - UserMatchMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMatchMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/mapper/user-match.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToDomain\n \n \n \n \n \n \n \n mapToDomain(query: FilterUserParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/user-match.mapper.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterUserParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : INameMatch\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(user: User, matchCreator?: MatchCreator)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/user-match.mapper.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n matchCreator\n \n MatchCreator\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserMatchResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { StringValidator } from '@shared/common';\nimport { INameMatch, MatchCreator, User } from '@shared/domain';\nimport { UserRole, UserMatchResponse } from '../controller/dto';\nimport { FilterUserParams } from '../controller/dto/filter-user.params';\nimport { ImportUserMatchMapper } from './match.mapper';\n\nexport class UserMatchMapper {\n\tstatic mapToDomain(query: FilterUserParams): INameMatch {\n\t\tconst scope: INameMatch = {};\n\t\tif (query.name) {\n\t\t\tif (StringValidator.isNotEmptyString(query.name, true)) {\n\t\t\t\tscope.name = query.name;\n\t\t\t} else {\n\t\t\t\tthrow Error('invalid name from query');\n\t\t\t}\n\t\t}\n\t\treturn scope;\n\t}\n\n\tstatic mapToResponse(user: User, matchCreator?: MatchCreator): UserMatchResponse {\n\t\tconst domainRoles = user.roles.getItems(true);\n\t\tconst domainRoleNames = domainRoles.map((role) => role.name);\n\t\tconst roleNames: UserRole[] = domainRoleNames\n\t\t\t.map((roleName) => {\n\t\t\t\tswitch (roleName) {\n\t\t\t\t\tcase 'teacher':\n\t\t\t\t\t\treturn UserRole.TEACHER;\n\t\t\t\t\tcase 'administrator':\n\t\t\t\t\t\treturn UserRole.ADMIN;\n\t\t\t\t\tcase 'student':\n\t\t\t\t\t\treturn UserRole.STUDENT;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.filter((roleName) => roleName != null) as UserRole[];\n\t\tconst dto = new UserMatchResponse({\n\t\t\tuserId: user.id,\n\t\t\tfirstName: user.firstName,\n\t\t\tlastName: user.lastName,\n\t\t\tloginName: user.email,\n\t\t\troleNames,\n\t\t});\n\t\tif (matchCreator != null) {\n\t\t\tconst matchedBy = ImportUserMatchMapper.mapMatchCreatorToResponse(matchCreator);\n\t\t\tdto.matchedBy = matchedBy;\n\t\t}\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMatchResponse.html":{"url":"classes/UserMatchResponse.html","title":"class - UserMatchResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMatchResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/user-match.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n firstName\n \n \n \n lastName\n \n \n \n loginName\n \n \n \n Optional\n matchedBy\n \n \n \n roleNames\n \n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: UserMatchResponse)\n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n UserMatchResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'firstname of local user'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'lastname of local user'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n loginName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'login name of local user'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n matchedBy\n \n \n \n \n \n \n Type : MatchType\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'match type: admin (manual) or auto (set, when names match exactly for a single user', enum: MatchType})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n roleNames\n \n \n \n \n \n \n Type : UserRole[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'list of user roles from external system: student, teacher, admin', enum: UserRole, isArray: true})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'local user id'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { IsMongoId } from 'class-validator';\nimport { MatchType } from './match-type';\nimport { UserRole } from './user-role';\n\nexport class UserMatchResponse {\n\tconstructor(props: UserMatchResponse) {\n\t\tthis.userId = props.userId;\n\t\tthis.loginName = props.loginName;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.roleNames = props.roleNames;\n\t\tif (props.matchedBy != null) this.matchedBy = props.matchedBy;\n\t}\n\n\t@IsMongoId()\n\t@ApiProperty({ description: 'local user id' })\n\tuserId: string;\n\n\t@ApiProperty({ description: 'login name of local user' })\n\tloginName: string;\n\n\t@ApiProperty({ description: 'firstname of local user' })\n\tfirstName: string;\n\n\t@ApiProperty({ description: 'lastname of local user' })\n\tlastName: string;\n\n\t@ApiProperty({\n\t\tdescription: 'list of user roles from external system: student, teacher, admin',\n\t\tenum: UserRole,\n\t\tisArray: true,\n\t})\n\troleNames: UserRole[];\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'match type: admin (manual) or auto (set, when names match exactly for a single user',\n\t\tenum: MatchType,\n\t})\n\tmatchedBy?: MatchType;\n}\n\nexport class UserMatchListResponse extends PaginationResponse {\n\tconstructor(data: UserMatchResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [UserMatchResponse] })\n\tdata: UserMatchResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/UserMigrationController.html":{"url":"controllers/UserMigrationController.html","title":"controller - UserMigrationController","body":"\n \n\n\n\n\n\n\n Controllers\n UserMigrationController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/user-migration.controller.ts\n \n\n \n Prefix\n \n \n user-migration\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n getMigrationPageDetails\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n getMigrationPageDetails\n \n \n \n \n \n \n \n getMigrationPageDetails(pageTypeQuery: PageContentQueryParams)\n \n \n\n \n \n Decorators : \n \n @Get('page-content')\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-migration.controller.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pageTypeQuery\n \n PageContentQueryParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { PageContentMapper } from '../mapper';\nimport { PageContentDto } from '../service/dto';\nimport { UserLoginMigrationUc } from '../uc/user-login-migration.uc';\nimport { PageContentQueryParams, PageContentResponse } from './dto';\n\n@ApiTags('UserMigration')\n@Controller('user-migration')\n/**\n * @Deprecated\n */\nexport class UserMigrationController {\n\tconstructor(private readonly uc: UserLoginMigrationUc, private readonly pageContentMapper: PageContentMapper) {}\n\n\t@Get('page-content')\n\tasync getMigrationPageDetails(@Query() pageTypeQuery: PageContentQueryParams): Promise {\n\t\tconst content: PageContentDto = await this.uc.getPageContent(\n\t\t\tpageTypeQuery.pageType,\n\t\t\tpageTypeQuery.sourceSystem,\n\t\t\tpageTypeQuery.targetSystem\n\t\t);\n\n\t\tconst response: PageContentResponse = this.pageContentMapper.mapDtoToResponse(content);\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMigrationIsNotEnabled.html":{"url":"classes/UserMigrationIsNotEnabled.html","title":"class - UserMigrationIsNotEnabled","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMigrationIsNotEnabled\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/user-migration-not-enable.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/user-migration-not-enable.loggable.ts:4\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserMigrationIsNotEnabled implements Loggable {\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Feature flag of user migration may be disable or the school is not an LDAP pilot',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMigrationMapper.html":{"url":"classes/UserMigrationMapper.html","title":"class - UserMigrationMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMigrationMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/mapper/user-migration.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapDtoToResponse\n \n \n \n \n \n \n \n mapDtoToResponse(dto: MigrationDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/mapper/user-migration.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n MigrationDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserMigrationResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { MigrationDto } from '@src/modules/user-login-migration/service/dto';\nimport { UserMigrationResponse } from '../controller/dto';\n\nexport class UserMigrationMapper {\n\tstatic mapDtoToResponse(dto: MigrationDto): UserMigrationResponse {\n\t\tconst response: UserMigrationResponse = new UserMigrationResponse({\n\t\t\tredirect: dto.redirect,\n\t\t});\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMigrationResponse.html":{"url":"classes/UserMigrationResponse.html","title":"class - UserMigrationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMigrationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/user-migration.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n redirect\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: UserMigrationResponse)\n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/user-migration.response.ts:1\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n UserMigrationResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n redirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/user-migration.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class UserMigrationResponse {\n\tconstructor(props: UserMigrationResponse) {\n\t\tthis.redirect = props.redirect;\n\t}\n\n\tredirect: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserMigrationService.html":{"url":"injectables/UserMigrationService.html","title":"injectable - UserMigrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserMigrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/user-migration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n dashboardUrl\n \n \n Private\n Readonly\n hostUrl\n \n \n Private\n Readonly\n loginUrl\n \n \n Private\n Readonly\n logoutUrl\n \n \n Private\n Readonly\n publicBackendUrl\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createUserMigrationDto\n \n \n Private\n Async\n doMigration\n \n \n Private\n getLoginUrl\n \n \n Async\n getMigrationConsentPageRedirect\n \n \n getMigrationRedirectUri\n \n \n Async\n getPageContent\n \n \n Async\n migrateUser\n \n \n Private\n Async\n rollbackMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, systemService: SystemService, userService: UserService, logger: LegacyLogger, accountService: AccountService)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:29\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createUserMigrationDto\n \n \n \n \n \n \n \n createUserMigrationDto(urlPath: string, sourceSystemId: string, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:159\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlPath\n \n string\n \n\n \n No\n \n\n\n \n \n sourceSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : MigrationDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n doMigration\n \n \n \n \n \n \n \n doMigration(userDO: UserDO, externalUserId: string, account: AccountDto, targetSystemId: string, accountId?: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:135\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userDO\n \n UserDO\n \n\n \n No\n \n\n\n \n \n externalUserId\n \n string\n \n\n \n No\n \n\n\n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n accountId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getLoginUrl\n \n \n \n \n \n \n \n getLoginUrl(system: SystemDto, postLoginRedirect?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:169\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n SystemDto\n \n\n \n No\n \n\n\n \n \n postLoginRedirect\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigrationConsentPageRedirect\n \n \n \n \n \n \n \n getMigrationConsentPageRedirect(officialSchoolNumber: string, originSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n originSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getMigrationRedirectUri\n \n \n \n \n \n \ngetMigrationRedirectUri()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:91\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n getPageContent\n \n \n \n \n \n \n \n getPageContent(pageType: PageTypes, sourceId: string, targetId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pageType\n \n PageTypes\n \n\n \n No\n \n\n\n \n \n sourceId\n \n string\n \n\n \n No\n \n\n\n \n \n targetId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrateUser\n \n \n \n \n \n \n \n migrateUser(currentUserId: string, externalUserId: string, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n externalUserId\n \n string\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n rollbackMigration\n \n \n \n \n \n \n \n rollbackMigration(userDOCopy: UserDO, accountCopy: AccountDto, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:119\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userDOCopy\n \n UserDO\n \n\n \n No\n \n\n\n \n \n accountCopy\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n dashboardUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '/dashboard'\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n hostUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n loginUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '/login'\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n logoutUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '/logout'\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n publicBackendUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:23\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { BadRequestException, Injectable, NotFoundException, UnprocessableEntityException } from '@nestjs/common';\nimport { LegacySchoolDo } from '@shared/domain';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { SystemDto, SystemService } from '@src/modules/system/service';\nimport { UserService } from '@src/modules/user';\nimport { EntityId } from '@src/shared/domain/types';\nimport { PageTypes } from '../interface/page-types.enum';\nimport { MigrationDto } from './dto/migration.dto';\nimport { PageContentDto } from './dto/page-content.dto';\n\n@Injectable()\n/**\n * @deprecated\n */\nexport class UserMigrationService {\n\tprivate readonly hostUrl: string;\n\n\tprivate readonly publicBackendUrl: string;\n\n\tprivate readonly dashboardUrl: string = '/dashboard';\n\n\tprivate readonly logoutUrl: string = '/logout';\n\n\tprivate readonly loginUrl: string = '/login';\n\n\tconstructor(\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly accountService: AccountService\n\t) {\n\t\tthis.hostUrl = Configuration.get('HOST') as string;\n\t\tthis.publicBackendUrl = Configuration.get('PUBLIC_BACKEND_URL') as string;\n\t}\n\n\tasync getMigrationConsentPageRedirect(officialSchoolNumber: string, originSystemId: string): Promise {\n\t\tconst school: LegacySchoolDo | null = await this.schoolService.getSchoolBySchoolNumber(officialSchoolNumber);\n\n\t\tif (!school || !school.id) {\n\t\t\tthrow new NotFoundException(`School with offical school number ${officialSchoolNumber} does not exist.`);\n\t\t}\n\n\t\tconst url = new URL('/migration', this.hostUrl);\n\t\turl.searchParams.append('origin', originSystemId);\n\t\treturn url.toString();\n\t}\n\n\tasync getPageContent(pageType: PageTypes, sourceId: string, targetId: string): Promise {\n\t\tconst sourceSystem: SystemDto = await this.systemService.findById(sourceId);\n\t\tconst targetSystem: SystemDto = await this.systemService.findById(targetId);\n\n\t\tconst targetSystemLoginUrl: string = this.getLoginUrl(targetSystem);\n\n\t\tswitch (pageType) {\n\t\t\tcase PageTypes.START_FROM_TARGET_SYSTEM: {\n\t\t\t\tconst sourceSystemLoginUrl: string = this.getLoginUrl(sourceSystem, targetSystemLoginUrl.toString());\n\n\t\t\t\tconst content: PageContentDto = new PageContentDto({\n\t\t\t\t\tproceedButtonUrl: sourceSystemLoginUrl.toString(),\n\t\t\t\t\tcancelButtonUrl: this.loginUrl,\n\t\t\t\t});\n\t\t\t\treturn content;\n\t\t\t}\n\t\t\tcase PageTypes.START_FROM_SOURCE_SYSTEM: {\n\t\t\t\tconst content: PageContentDto = new PageContentDto({\n\t\t\t\t\tproceedButtonUrl: targetSystemLoginUrl.toString(),\n\t\t\t\t\tcancelButtonUrl: this.dashboardUrl,\n\t\t\t\t});\n\t\t\t\treturn content;\n\t\t\t}\n\t\t\tcase PageTypes.START_FROM_SOURCE_SYSTEM_MANDATORY: {\n\t\t\t\tconst content: PageContentDto = new PageContentDto({\n\t\t\t\t\tproceedButtonUrl: targetSystemLoginUrl.toString(),\n\t\t\t\t\tcancelButtonUrl: this.logoutUrl,\n\t\t\t\t});\n\t\t\t\treturn content;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow new BadRequestException('Unknown PageType requested');\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-632 Move Redirect Logic URLs to Client\n\tgetMigrationRedirectUri(): string {\n\t\tconst combinedUri = new URL(this.publicBackendUrl);\n\t\tcombinedUri.pathname = `api/v3/sso/oauth/migration`;\n\t\treturn combinedUri.toString();\n\t}\n\n\tasync migrateUser(currentUserId: string, externalUserId: string, targetSystemId: string): Promise {\n\t\tconst userDO: UserDO = await this.userService.findById(currentUserId);\n\t\tconst account: AccountDto = await this.accountService.findByUserIdOrFail(currentUserId);\n\t\tconst userDOCopy: UserDO = new UserDO({ ...userDO });\n\t\tconst accountCopy: AccountDto = new AccountDto({ ...account });\n\n\t\tlet migrationDto: MigrationDto;\n\t\ttry {\n\t\t\tmigrationDto = await this.doMigration(userDO, externalUserId, account, targetSystemId, accountCopy.systemId);\n\t\t} catch (e: unknown) {\n\t\t\tthis.logger.log({\n\t\t\t\tmessage: 'This error occurred during migration of User:',\n\t\t\t\taffectedUserId: currentUserId,\n\t\t\t\terror: e,\n\t\t\t});\n\n\t\t\tmigrationDto = await this.rollbackMigration(userDOCopy, accountCopy, targetSystemId);\n\t\t}\n\n\t\treturn migrationDto;\n\t}\n\n\tprivate async rollbackMigration(\n\t\tuserDOCopy: UserDO,\n\t\taccountCopy: AccountDto,\n\t\ttargetSystemId: string\n\t): Promise {\n\t\tawait this.userService.save(userDOCopy);\n\t\tawait this.accountService.save(accountCopy);\n\n\t\tconst userMigrationDto: MigrationDto = this.createUserMigrationDto(\n\t\t\t'/migration/error',\n\t\t\taccountCopy.systemId ?? '',\n\t\t\ttargetSystemId\n\t\t);\n\t\treturn userMigrationDto;\n\t}\n\n\tprivate async doMigration(\n\t\tuserDO: UserDO,\n\t\texternalUserId: string,\n\t\taccount: AccountDto,\n\t\ttargetSystemId: string,\n\t\taccountId?: EntityId\n\t): Promise {\n\t\tuserDO.previousExternalId = userDO.externalId;\n\t\tuserDO.externalId = externalUserId;\n\t\tuserDO.lastLoginSystemChange = new Date();\n\t\tawait this.userService.save(userDO);\n\n\t\taccount.systemId = targetSystemId;\n\t\tawait this.accountService.save(account);\n\n\t\tconst userMigrationDto: MigrationDto = this.createUserMigrationDto(\n\t\t\t'/migration/success',\n\t\t\taccountId ?? '',\n\t\t\ttargetSystemId\n\t\t);\n\t\treturn userMigrationDto;\n\t}\n\n\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-632 Move Redirect Logic URLs to Client\n\tprivate createUserMigrationDto(urlPath: string, sourceSystemId: string, targetSystemId: string) {\n\t\tconst errorUrl: URL = new URL(urlPath, this.hostUrl);\n\t\terrorUrl.searchParams.append('sourceSystem', sourceSystemId);\n\t\terrorUrl.searchParams.append('targetSystem', targetSystemId);\n\t\tconst userMigrationDto: MigrationDto = new MigrationDto({\n\t\t\tredirect: errorUrl.toString(),\n\t\t});\n\t\treturn userMigrationDto;\n\t}\n\n\tprivate getLoginUrl(system: SystemDto, postLoginRedirect?: string): string {\n\t\tif (!system.oauthConfig || !system.id) {\n\t\t\tthrow new UnprocessableEntityException(`System ${system?.id || 'unknown'} has no oauth config`);\n\t\t}\n\n\t\tconst loginUrl: URL = new URL(`api/v3/sso/login/${system.id}`, this.publicBackendUrl);\n\t\tif (postLoginRedirect) {\n\t\t\tloginUrl.searchParams.append('postLoginRedirect', postLoginRedirect);\n\t\t} else {\n\t\t\tloginUrl.searchParams.append('migration', 'true');\n\t\t}\n\n\t\treturn loginUrl.toString();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/UserModule.html":{"url":"modules/UserModule.html","title":"module - UserModule","body":"\n \n\n\n\n\n Modules\n UserModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_UserModule\n\n\n\ncluster_UserModule_imports\n\n\n\ncluster_UserModule_exports\n\n\n\ncluster_UserModule_providers\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nUserModule\n\nUserModule\n\nUserModule -->\n\nAccountModule->UserModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nUserModule -->\n\nLegacySchoolModule->UserModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nUserModule -->\n\nLoggerModule->UserModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nUserModule -->\n\nRoleModule->UserModule\n\n\n\n\n\nUserRepo \n\nUserRepo \n\nUserRepo -->\n\nUserModule->UserRepo \n\n\n\n\n\nUserService \n\nUserService \n\nUserService -->\n\nUserModule->UserService \n\n\n\n\n\nUserDORepo\n\nUserDORepo\n\nUserModule -->\n\nUserDORepo->UserModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nUserModule -->\n\nUserRepo->UserModule\n\n\n\n\n\nUserService\n\nUserService\n\nUserModule -->\n\nUserService->UserModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user/user.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n UserDORepo\n \n \n UserRepo\n \n \n UserService\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n RoleModule\n \n \n \n \n Exports\n \n \n UserRepo\n \n \n UserService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { UserRepo } from '@shared/repo';\nimport { UserDORepo } from '@shared/repo/user/user-do.repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@src/modules/account';\nimport { RoleModule } from '@src/modules/role/role.module';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { UserService } from './service/user.service';\n\n@Module({\n\timports: [LegacySchoolModule, RoleModule, AccountModule, LoggerModule],\n\tproviders: [UserRepo, UserDORepo, UserService],\n\texports: [UserService, UserRepo],\n})\nexport class UserModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserNotFoundAfterProvisioningLoggableException.html":{"url":"classes/UserNotFoundAfterProvisioningLoggableException.html","title":"class - UserNotFoundAfterProvisioningLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserNotFoundAfterProvisioningLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/error/user-not-found-after-provisioning.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n OAuthSSOError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n Readonly\n errorcode\n \n \n Readonly\n message\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalUserId: string, systemId: EntityId, officialSchoolNumber?: string)\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/user-not-found-after-provisioning.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUserId\n \n \n string\n \n \n \n No\n \n \n \n \n systemId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n officialSchoolNumber\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : SSOErrorCode.SSO_OAUTH_LOGIN_FAILED\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'Error in SSO Oauth Process.'\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:9\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n errorcode\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:7\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:5\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/error/user-not-found-after-provisioning.loggable-exception.ts:17\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { OAuthSSOError } from './oauth-sso.error';\n\nexport class UserNotFoundAfterProvisioningLoggableException extends OAuthSSOError implements Loggable {\n\tconstructor(\n\t\tprivate readonly externalUserId: string,\n\t\tprivate readonly systemId: EntityId,\n\t\tprivate readonly officialSchoolNumber?: string\n\t) {\n\t\tsuper(\n\t\t\t'Unable to find user after provisioning. The feature for OAuth2 provisioning might be disabled for this school.',\n\t\t\t'sso_user_not_found_after_provisioning'\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: this.message,\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\texternalUserId: this.externalUserId,\n\t\t\t\tsystemId: this.systemId,\n\t\t\t\tofficialSchoolNumber: this.officialSchoolNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserParams.html":{"url":"classes/UserParams.html","title":"class - UserParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/user.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The user id.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/user.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class UserParams {\n\t@IsMongoId()\n\t@ApiProperty({ description: 'The user id.', required: true, nullable: false })\n\tuserId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserRepo.html":{"url":"injectables/UserRepo.html","title":"injectable - UserRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/user/user.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findByEmail\n \n \n Async\n findByExternalIdOrFail\n \n \n Async\n findById\n \n \n Async\n findWithoutImportUser\n \n \n Async\n flush\n \n \n Private\n Async\n populateRoles\n \n \n saveWithoutFlush\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findByEmail\n \n \n \n \n \n \n \n findByEmail(email: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:158\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalIdOrFail\n \n \n \n \n \n \n \n findByExternalIdOrFail(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, populate)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:25\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n populate\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findWithoutImportUser\n \n \n \n \n \n \n \n findWithoutImportUser(school: SchoolEntity, filters?: INameMatch, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:48\n \n \n\n\n \n \n used for importusers module to request users not referenced in importusers\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n filters\n \n INameMatch\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n flush\n \n \n \n \n \n \n \n flush()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:182\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateRoles\n \n \n \n \n \n \n \n populateRoles(roles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:166\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n saveWithoutFlush\n \n \n \n \n \n \nsaveWithoutFlush(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:178\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:21\n \n \n\n \n \n\n \n\n\n \n import { QueryOrderMap, QueryOrderNumeric } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { StringValidator } from '@shared/common';\nimport {\n\tCounted,\n\tEntityId,\n\tIFindOptions,\n\tImportUser,\n\tINameMatch,\n\tRole,\n\tSchoolEntity,\n\tSortOrder,\n\tUser,\n} from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { MongoPatterns } from '../mongo.patterns';\n\n@Injectable()\nexport class UserRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn User;\n\t}\n\n\tasync findById(id: EntityId, populate = false): Promise {\n\t\tconst user = await super.findById(id);\n\n\t\tif (populate) {\n\t\t\tawait this._em.populate(user, ['roles', 'school.systems', 'school.schoolYear']);\n\t\t\tawait this.populateRoles(user.roles.getItems());\n\t\t}\n\n\t\treturn user;\n\t}\n\n\tasync findByExternalIdOrFail(externalId: string, systemId: string): Promise {\n\t\tconst [users] = await this._em.findAndCount(User, { externalId }, { populate: ['school.systems'] });\n\t\tconst resultUser = users.find((user) => {\n\t\t\tconst { systems } = user.school;\n\t\t\treturn systems && systems.getItems().find((system) => system.id === systemId);\n\t\t});\n\t\treturn resultUser ?? Promise.reject();\n\t}\n\n\t/**\n\t * used for importusers module to request users not referenced in importusers\n\t */\n\tasync findWithoutImportUser(\n\t\tschool: SchoolEntity,\n\t\tfilters?: INameMatch,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst { _id: schoolId } = school;\n\t\tif (!ObjectId.isValid(schoolId)) throw new Error('invalid school id');\n\n\t\tconst existingMatch = { deletedAt: null };\n\t\tconst permittedMatch = { schoolId };\n\n\t\tconst queryFilterMatch: { $or?: unknown[] } = {};\n\t\tif (filters?.name && StringValidator.isNotEmptyString(filters.name, true)) {\n\t\t\tconst escapedName = filters.name.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t\t// TODO make db agnostic\n\t\t\tif (StringValidator.isNotEmptyString(escapedName, true)) {\n\t\t\t\tqueryFilterMatch.$or = [\n\t\t\t\t\t{\n\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t$regex: escapedName,\n\t\t\t\t\t\t\t$options: 'i',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlastName: {\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t$regex: escapedName,\n\t\t\t\t\t\t\t$options: 'i',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t}\n\t\t}\n\n\t\tconst pipeline: unknown[] = [\n\t\t\t{ $match: existingMatch },\n\t\t\t{ $match: permittedMatch },\n\t\t\t{\n\t\t\t\t$lookup: {\n\t\t\t\t\tfrom: 'importusers',\n\t\t\t\t\tlocalField: '_id',\n\t\t\t\t\tforeignField: 'match_userId',\n\t\t\t\t\tas: 'importusers',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\t$match: {\n\t\t\t\t\timportusers: {\n\t\t\t\t\t\t$size: 0,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ $match: queryFilterMatch },\n\t\t\t{\n\t\t\t\t$project: {\n\t\t\t\t\timportusers: 0,\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\n\t\tconst countPipeline = [...pipeline];\n\t\tcountPipeline.push({ $group: { _id: null, count: { $sum: 1 } } });\n\t\tconst total = (await this._em.aggregate(User, countPipeline)) as { count: number }[];\n\t\tconst count = total.length > 0 ? total[0].count : 0;\n\t\tconst { pagination, order } = options || {};\n\n\t\tif (order) {\n\t\t\tconst orderQuery: QueryOrderMap = {};\n\t\t\tif (order.firstName) {\n\t\t\t\tswitch (order.firstName) {\n\t\t\t\t\tcase SortOrder.desc:\n\t\t\t\t\t\torderQuery.firstName = QueryOrderNumeric.DESC;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase SortOrder.asc:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\torderQuery.firstName = QueryOrderNumeric.ASC;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (order.lastName) {\n\t\t\t\tswitch (order.lastName) {\n\t\t\t\t\tcase SortOrder.desc:\n\t\t\t\t\t\torderQuery.lastName = QueryOrderNumeric.DESC;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase SortOrder.asc:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\torderQuery.lastName = QueryOrderNumeric.ASC;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tpipeline.push({ $sort: orderQuery });\n\t\t}\n\n\t\tif (pagination?.skip) {\n\t\t\tpipeline.push({ $skip: pagination.skip });\n\t\t}\n\t\tif (pagination?.limit) {\n\t\t\tpipeline.push({ $limit: pagination.limit });\n\t\t}\n\n\t\tconst userDocuments = await this._em.aggregate(User, pipeline);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tconst users = userDocuments.map((userDocument) => this._em.map(User, userDocument));\n\t\tawait this._em.populate(users, ['roles']);\n\t\treturn [users, count];\n\t}\n\n\tasync findByEmail(email: string): Promise {\n\t\t// find mail case-insensitive by regex\n\t\tconst promise: Promise = this._em.find(User, {\n\t\t\temail: new RegExp(`^${email.replace(/\\W/g, '\\\\$&')}$`, 'i'),\n\t\t});\n\t\treturn promise;\n\t}\n\n\tprivate async populateRoles(roles: Role[]): Promise {\n\t\tfor (let i = 0; i {\n\t\tawait this._em.flush();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserRule.html":{"url":"injectables/UserRule.html","title":"injectable - UserRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/user.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/user.rule.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: User, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/user.rule.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n User\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/user.rule.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\n\n@Injectable()\nexport class UserRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: User): boolean {\n\t\tconst isMatched = entity instanceof User;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: User, context: AuthorizationContext): boolean {\n\t\tconst hasPermission = this.authorizationHelper.hasAllPermissions(user, context.requiredPermissions);\n\t\tconst isOwner = user === entity;\n\n\t\treturn hasPermission || isOwner;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserScope.html":{"url":"classes/UserScope.html","title":"class - UserScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/user/user.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n bySchoolId\n \n \n isOutdated\n \n \n whereLastLoginSystemChangeIsBetween\n \n \n whereLastLoginSystemChangeSmallerThan\n \n \n withOutdatedSince\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n bySchoolId\n \n \n \n \n \n \nbySchoolId(schoolId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isOutdated\n \n \n \n \n \n \nisOutdated(isOutdated?: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isOutdated\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n whereLastLoginSystemChangeIsBetween\n \n \n \n \n \n \nwhereLastLoginSystemChangeIsBetween(startDate?: Date, endDate?: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n startDate\n \n Date\n \n\n \n Yes\n \n\n\n \n \n endDate\n \n Date\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n whereLastLoginSystemChangeSmallerThan\n \n \n \n \n \n \nwhereLastLoginSystemChangeSmallerThan(date?: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n date\n \n Date\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOutdatedSince\n \n \n \n \n \n \nwithOutdatedSince(date?: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n date\n \n Date\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Scope } from '@shared/repo';\nimport { EntityId, User } from '@shared/domain';\n\nexport class UserScope extends Scope {\n\tisOutdated(isOutdated?: boolean): UserScope {\n\t\tif (isOutdated !== undefined) {\n\t\t\tthis.addQuery({ outdatedSince: { $exists: isOutdated } });\n\t\t}\n\t\treturn this;\n\t}\n\n\twhereLastLoginSystemChangeSmallerThan(date?: Date): UserScope {\n\t\tif (date) {\n\t\t\tthis.addQuery({ $or: [{ lastLoginSystemChange: { $lt: date } }, { lastLoginSystemChange: { $exists: false } }] });\n\t\t}\n\t\treturn this;\n\t}\n\n\twhereLastLoginSystemChangeIsBetween(startDate?: Date, endDate?: Date): UserScope {\n\t\tif (startDate && endDate) {\n\t\t\tthis.addQuery({\n\t\t\t\tlastLoginSystemChange: { $gte: startDate, $lt: endDate },\n\t\t\t});\n\t\t}\n\t\treturn this;\n\t}\n\n\twithOutdatedSince(date?: Date): UserScope {\n\t\tif (date) {\n\t\t\tthis.addQuery({ outdatedSince: { $eq: date } });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbySchoolId(schoolId: EntityId | undefined): UserScope {\n\t\tif (schoolId !== undefined) {\n\t\t\tthis.addQuery({ school: schoolId });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserService.html":{"url":"injectables/UserService.html","title":"injectable - UserService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/service/user.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkAvailableLanguages\n \n \n Async\n findByEmail\n \n \n Async\n findByExternalId\n \n \n Async\n findById\n \n \n Async\n findUsers\n \n \n Async\n getDisplayName\n \n \n Async\n getResolvedUser\n \n \n Async\n getUser\n \n \n Async\n me\n \n \n Async\n patchLanguage\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userRepo: UserRepo, userDORepo: UserDORepo, configService: ConfigService, roleService: RoleService, accountService: AccountService)\n \n \n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n userDORepo\n \n \n UserDORepo\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n roleService\n \n \n RoleService\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkAvailableLanguages\n \n \n \n \n \n \n \n checkAvailableLanguages(language: LanguageType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:105\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n language\n \n LanguageType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void | BadRequestException\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByEmail\n \n \n \n \n \n \n \n findByEmail(email: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalId\n \n \n \n \n \n \n \n findByExternalId(externalId: string, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findUsers\n \n \n \n \n \n \n \n findUsers(query: UserQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n UserQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getDisplayName\n \n \n \n \n \n \n \n getDisplayName(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getResolvedUser\n \n \n \n \n \n \n \n getResolvedUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUser\n \n \n \n \n \n \n \n \n \n \n \n \n getUser(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n me\n \n \n \n \n \n \n \n me(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchLanguage\n \n \n \n \n \n \n \n patchLanguage(userId: EntityId, newLanguage: LanguageType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:96\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n newLanguage\n \n LanguageType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(users: UserDO[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n users\n \n UserDO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BadRequestException, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId, IFindOptions, LanguageType, User } from '@shared/domain';\nimport { RoleReference } from '@shared/domain/domainobject';\nimport { Page } from '@shared/domain/domainobject/page';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { UserRepo } from '@shared/repo';\nimport { UserDORepo } from '@shared/repo/user/user-do.repo';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { CurrentUserMapper } from '@src/modules/authentication/mapper';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\nimport { RoleService } from '@src/modules/role/service/role.service';\nimport { IUserConfig } from '../interfaces';\nimport { UserMapper } from '../mapper/user.mapper';\nimport { UserDto } from '../uc/dto/user.dto';\nimport { UserQuery } from './user-query.type';\n\n@Injectable()\nexport class UserService {\n\tconstructor(\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly userDORepo: UserDORepo,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly roleService: RoleService,\n\t\tprivate readonly accountService: AccountService\n\t) {}\n\n\tasync me(userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\t\tconst permissions = user.resolvePermissions();\n\n\t\treturn [user, permissions];\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tasync getUser(id: string): Promise {\n\t\tconst userEntity = await this.userRepo.findById(id, true);\n\t\tconst userDto = UserMapper.mapFromEntityToDto(userEntity);\n\t\treturn userDto;\n\t}\n\n\tasync getResolvedUser(userId: EntityId): Promise {\n\t\tconst user: User = await this.userRepo.findById(userId, true);\n\t\tconst account: AccountDto = await this.accountService.findByUserIdOrFail(userId);\n\n\t\tconst resolvedUser: ICurrentUser = CurrentUserMapper.userToICurrentUser(account.id, user, account.systemId);\n\t\treturn resolvedUser;\n\t}\n\n\tasync findById(id: string): Promise {\n\t\tconst userDO = await this.userDORepo.findById(id, true);\n\t\treturn userDO;\n\t}\n\n\tasync save(user: UserDO): Promise {\n\t\tconst savedUser: Promise = this.userDORepo.save(user);\n\t\treturn savedUser;\n\t}\n\n\tasync saveAll(users: UserDO[]): Promise {\n\t\tconst savedUsers: Promise = this.userDORepo.saveAll(users);\n\t\treturn savedUsers;\n\t}\n\n\tasync findUsers(query: UserQuery, options?: IFindOptions): Promise> {\n\t\tconst users: Page = await this.userDORepo.find(query, options);\n\t\treturn users;\n\t}\n\n\tasync findByExternalId(externalId: string, systemId: EntityId): Promise {\n\t\tconst user: Promise = this.userDORepo.findByExternalId(externalId, systemId);\n\t\treturn user;\n\t}\n\n\tasync findByEmail(email: string): Promise {\n\t\tconst user: Promise = this.userRepo.findByEmail(email);\n\t\treturn user;\n\t}\n\n\tasync getDisplayName(user: UserDO): Promise {\n\t\tconst protectedRoles: RoleDto[] = await this.roleService.getProtectedRoles();\n\t\tconst isProtectedUser: boolean = user.roles.some(\n\t\t\t(roleRef: RoleReference): boolean =>\n\t\t\t\t!!protectedRoles.find((protectedRole: RoleDto): boolean => roleRef.id === protectedRole.id)\n\t\t);\n\n\t\tconst displayName: string = isProtectedUser ? user.lastName : `${user.firstName} ${user.lastName}`;\n\n\t\treturn displayName;\n\t}\n\n\tasync patchLanguage(userId: EntityId, newLanguage: LanguageType): Promise {\n\t\tthis.checkAvailableLanguages(newLanguage);\n\t\tconst user = await this.userRepo.findById(userId);\n\t\tuser.language = newLanguage;\n\t\tawait this.userRepo.save(user);\n\n\t\treturn true;\n\t}\n\n\tprivate checkAvailableLanguages(language: LanguageType): void | BadRequestException {\n\t\tif (!this.configService.get('AVAILABLE_LANGUAGES').includes(language)) {\n\t\t\tthrow new BadRequestException('Language is not activated.');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserUc.html":{"url":"injectables/UserUc.html","title":"injectable - UserUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/uc/user.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkAvaibleLanguages\n \n \n Async\n me\n \n \n Async\n patchLanguage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userRepo: UserRepo, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/user/uc/user.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkAvaibleLanguages\n \n \n \n \n \n \n \n checkAvaibleLanguages(settedLanguage: LanguageType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/uc/user.uc.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n settedLanguage\n \n LanguageType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void | Error\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n me\n \n \n \n \n \n \n \n me(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/uc/user.uc.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchLanguage\n \n \n \n \n \n \n \n patchLanguage(userId: EntityId, params: ChangeLanguageParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/uc/user.uc.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n params\n \n ChangeLanguageParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BadRequestException, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId, LanguageType, User } from '@shared/domain';\nimport { UserRepo } from '@shared/repo';\nimport { ChangeLanguageParams } from '../controller/dto';\nimport { IUserConfig } from '../interfaces';\n\n@Injectable()\nexport class UserUc {\n\tconstructor(private readonly userRepo: UserRepo, private readonly configService: ConfigService) {}\n\n\tasync me(userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\t\tconst permissions = user.resolvePermissions();\n\n\t\treturn [user, permissions];\n\t}\n\n\tprivate checkAvaibleLanguages(settedLanguage: LanguageType): void | Error {\n\t\tif (!this.configService.get('AVAILABLE_LANGUAGES').includes(settedLanguage)) {\n\t\t\tthrow new BadRequestException('Language is not activated.');\n\t\t}\n\t}\n\n\tasync patchLanguage(userId: EntityId, params: ChangeLanguageParams): Promise {\n\t\tthis.checkAvaibleLanguages(params.language);\n\t\tconst user = await this.userRepo.findById(userId);\n\t\tuser.language = params.language;\n\t\tawait this.userRepo.save(user);\n\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ValidationError.html":{"url":"classes/ValidationError.html","title":"class - ValidationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ValidationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/validation.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message: string, details?: Record)\n \n \n \n \n Defined in apps/server/src/shared/common/error/validation.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n No\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class ValidationError extends BusinessError {\n\tconstructor(readonly message: string, details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'VALIDATION_ERROR',\n\t\t\t\ttitle: 'Validation Error',\n\t\t\t\tdefaultMessage: message,\n\t\t\t},\n\t\t\tHttpStatus.BAD_REQUEST,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ValidationErrorDetailResponse.html":{"url":"classes/ValidationErrorDetailResponse.html","title":"class - ValidationErrorDetailResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ValidationErrorDetailResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/dto/validation-error-detail.response.ts\n \n\n\n\n\n\n\n\n \n Constructor\n \n \n \n \nconstructor(field: string[], errors: string[])\n \n \n \n \n Defined in apps/server/src/core/error/dto/validation-error-detail.response.ts:1\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n field\n \n \n string[]\n \n \n \n No\n \n \n \n \n errors\n \n \n string[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n\n \n\n\n \n export class ValidationErrorDetailResponse {\n\tconstructor(readonly field: string[], readonly errors: string[]) {}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ValidationModule.html":{"url":"modules/ValidationModule.html","title":"module - ValidationModule","body":"\n \n\n\n\n\n Modules\n ValidationModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/validation/validation.module.ts\n \n\n\n\n\n\n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { APP_PIPE } from '@nestjs/core';\nimport { GlobalValidationPipe } from './pipe/global-validation.pipe';\n\n@Module({\n\tproviders: [\n\t\t{\n\t\t\tprovide: APP_PIPE,\n\t\t\tuseClass: GlobalValidationPipe,\n\t\t},\n\t],\n})\nexport class ValidationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/VideoConference.html":{"url":"entities/VideoConference.html","title":"entity - VideoConference","body":"\n \n\n\n\n\n\n\n\n Entities\n VideoConference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/video-conference.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n options\n \n \n \n \n target\n \n \n \n targetModel\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n options\n \n \n \n \n \n \n Type : VideoConferenceOptions\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : TargetModels\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:34\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Index, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport enum TargetModels {\n\tCOURSES = 'courses',\n\tEVENTS = 'events',\n}\n\nexport class VideoConferenceOptions {\n\teveryAttendeJoinsMuted: boolean;\n\n\teverybodyJoinsAsModerator: boolean;\n\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(options: VideoConferenceOptions) {\n\t\tthis.everyAttendeJoinsMuted = options.everyAttendeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = options.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = options.moderatorMustApproveJoinRequests;\n\t}\n}\n\nexport type IVideoConferenceProperties = Readonly>;\n\n// Preset options for opening a video conference\n@Entity({ tableName: 'videoconferences' })\n@Index({ properties: ['target', 'targetModel'] })\nexport class VideoConference extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Index()\n\ttarget: string;\n\n\t@Property()\n\ttargetModel: TargetModels;\n\n\t@Property()\n\toptions: VideoConferenceOptions;\n\n\tconstructor(props: IVideoConferenceProperties) {\n\t\tsuper();\n\t\tthis.target = props.target;\n\t\tthis.targetModel = props.targetModel;\n\t\tthis.options = props.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConference-1.html":{"url":"classes/VideoConference-1.html","title":"class - VideoConference-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/video-conference.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n bbbResponse\n \n \n permission\n \n \n state\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dto: VideoConference)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n \n VideoConference\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n bbbResponse\n \n \n \n \n \n \n Type : BBBResponse\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceState\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceState } from './video-conference-state.enum';\nimport { BBBBaseResponse, BBBResponse } from '../../bbb';\n\nexport class VideoConference {\n\tstate: VideoConferenceState;\n\n\tpermission: Permission;\n\n\tbbbResponse?: BBBResponse;\n\n\tconstructor(dto: VideoConference) {\n\t\tthis.state = dto.state;\n\t\tthis.bbbResponse = dto.bbbResponse;\n\t\tthis.permission = dto.permission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/VideoConferenceApiModule.html":{"url":"modules/VideoConferenceApiModule.html","title":"module - VideoConferenceApiModule","body":"\n \n\n\n\n\n Modules\n VideoConferenceApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_VideoConferenceApiModule\n\n\n\ncluster_VideoConferenceApiModule_imports\n\n\n\ncluster_VideoConferenceApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nVideoConferenceApiModule\n\nVideoConferenceApiModule\n\nVideoConferenceApiModule -->\n\nAuthorizationModule->VideoConferenceApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nVideoConferenceApiModule -->\n\nUserModule->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceModule\n\nVideoConferenceModule\n\nVideoConferenceApiModule -->\n\nVideoConferenceModule->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceCreateUc\n\nVideoConferenceCreateUc\n\nVideoConferenceApiModule -->\n\nVideoConferenceCreateUc->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceEndUc\n\nVideoConferenceEndUc\n\nVideoConferenceApiModule -->\n\nVideoConferenceEndUc->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceInfoUc\n\nVideoConferenceInfoUc\n\nVideoConferenceApiModule -->\n\nVideoConferenceInfoUc->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceJoinUc\n\nVideoConferenceJoinUc\n\nVideoConferenceApiModule -->\n\nVideoConferenceJoinUc->VideoConferenceApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/video-conference/video-conference-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n VideoConferenceCreateUc\n \n \n VideoConferenceEndUc\n \n \n VideoConferenceInfoUc\n \n \n VideoConferenceJoinUc\n \n \n \n \n Controllers\n \n \n VideoConferenceController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n UserModule\n \n \n VideoConferenceModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { UserModule } from '@src/modules/user';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { VideoConferenceController } from './controller';\nimport { VideoConferenceCreateUc, VideoConferenceJoinUc, VideoConferenceEndUc, VideoConferenceInfoUc } from './uc';\nimport { VideoConferenceModule } from './video-conference.module';\n\n@Module({\n\timports: [VideoConferenceModule, UserModule, AuthorizationModule],\n\tcontrollers: [VideoConferenceController],\n\tproviders: [VideoConferenceCreateUc, VideoConferenceJoinUc, VideoConferenceEndUc, VideoConferenceInfoUc],\n})\nexport class VideoConferenceApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceBaseResponse.html":{"url":"classes/VideoConferenceBaseResponse.html","title":"class - VideoConferenceBaseResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceBaseResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts\n \n\n \n Deprecated\n \n \n Please use new video conference response classes\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n permission\n \n \n state\n \n \n Optional\n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: VideoConferenceBaseResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n VideoConferenceBaseResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceStateResponse\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n status\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceStateResponse } from './video-conference-state.response';\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class VideoConferenceBaseResponse {\n\tstatus?: string;\n\n\tstate: VideoConferenceStateResponse;\n\n\tpermission: Permission;\n\n\tconstructor(resp: VideoConferenceBaseResponse) {\n\t\tthis.status = 'SUCCESS';\n\t\tthis.state = resp.state;\n\t\tthis.permission = resp.permission;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceJoinResponse extends VideoConferenceBaseResponse {\n\turl?: string;\n\n\tconstructor(resp: DeprecatedVideoConferenceJoinResponse) {\n\t\tsuper(resp);\n\t\tthis.url = resp.url;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceInfoResponse extends VideoConferenceBaseResponse {\n\toptions?: {\n\t\teveryAttendeeJoinsMuted: boolean;\n\n\t\teverybodyJoinsAsModerator: boolean;\n\n\t\tmoderatorMustApproveJoinRequests: boolean;\n\t};\n\n\tconstructor(resp: DeprecatedVideoConferenceInfoResponse) {\n\t\tsuper(resp);\n\t\tthis.options = resp.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceConfiguration.html":{"url":"classes/VideoConferenceConfiguration.html","title":"class - VideoConferenceConfiguration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceConfiguration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/video-conference-config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n bbb\n \n \n Static\n videoConference\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n bbb\n \n \n \n \n \n \n Type : IBbbSettings\n\n \n \n \n \n Default value : {\n\t\thost: Configuration.get('VIDEOCONFERENCE_HOST') as string,\n\t\tsalt: Configuration.get('VIDEOCONFERENCE_SALT') as string,\n\t\tpresentationUrl: Configuration.get('VIDEOCONFERENCE_DEFAULT_PRESENTATION') as string,\n\t}\n \n \n \n \n Defined in apps/server/src/modules/video-conference/video-conference-config.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Static\n videoConference\n \n \n \n \n \n \n Type : IVideoConferenceSettings\n\n \n \n \n \n Default value : {\n\t\tenabled: Configuration.get('FEATURE_VIDEOCONFERENCE_ENABLED') as boolean,\n\t\thostUrl: Configuration.get('HOST') as string,\n\t\tbbb: VideoConferenceConfiguration.bbb,\n\t}\n \n \n \n \n Defined in apps/server/src/modules/video-conference/video-conference-config.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { IBbbSettings } from './bbb';\nimport { IVideoConferenceSettings } from './interface';\n\nexport default class VideoConferenceConfiguration {\n\tstatic bbb: IBbbSettings = {\n\t\thost: Configuration.get('VIDEOCONFERENCE_HOST') as string,\n\t\tsalt: Configuration.get('VIDEOCONFERENCE_SALT') as string,\n\t\tpresentationUrl: Configuration.get('VIDEOCONFERENCE_DEFAULT_PRESENTATION') as string,\n\t};\n\n\tstatic videoConference: IVideoConferenceSettings = {\n\t\tenabled: Configuration.get('FEATURE_VIDEOCONFERENCE_ENABLED') as boolean,\n\t\thostUrl: Configuration.get('HOST') as string,\n\t\tbbb: VideoConferenceConfiguration.bbb,\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/VideoConferenceController.html":{"url":"controllers/VideoConferenceController.html","title":"controller - VideoConferenceController","body":"\n \n\n\n\n\n\n\n Controllers\n VideoConferenceController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/video-conference.controller.ts\n \n\n \n Prefix\n \n \n videoconference2\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n \n Async\n info\n \n \n \n \n \n \n \n \n Async\n join\n \n \n \n \n \n \n \n \n Async\n start\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n end(currentUser: ICurrentUser, scopeParams: VideoConferenceScopeParams)\n \n \n\n \n \n Decorators : \n \n @Get(':scope/:scopeId/end')@ApiOperation({summary: 'Ends a running video conference.', description: 'Use this endpoint to end a running video conference.'})@ApiResponse({status: undefined, description: 'Returns the status of the operation.'})@ApiResponse({status: undefined, description: 'Invalid parameters.'})@ApiResponse({status: undefined, description: 'User does not have the permission to end this conference.'})@ApiResponse({status: undefined, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference.controller.ts:133\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scopeParams\n \n VideoConferenceScopeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n info\n \n \n \n \n \n \n \n info(currentUser: ICurrentUser, scopeParams: VideoConferenceScopeParams)\n \n \n\n \n \n Decorators : \n \n @Get(':scope/:scopeId/info')@ApiOperation({summary: 'Returns information about a running video conference.', description: 'Use this endpoint to get information about a running video conference.'})@ApiResponse({status: undefined, description: 'Returns a list of information about a video conference.', type: VideoConferenceInfoResponse})@ApiResponse({status: undefined, description: 'Invalid parameters.'})@ApiResponse({status: undefined, description: 'User does not have the permission to get information about this conference.'})@ApiResponse({status: undefined, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference.controller.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scopeParams\n \n VideoConferenceScopeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n join\n \n \n \n \n \n \n \n join(currentUser: ICurrentUser, scopeParams: VideoConferenceScopeParams)\n \n \n\n \n \n Decorators : \n \n @Get(':scope/:scopeId/join')@ApiOperation({summary: 'Creates a join link for a video conference, if it has started.', description: 'Use this endpoint to get a link to join an existing video conference. The conference must be running.'})@ApiResponse({status: undefined, description: 'Returns the information for joining the conference.', type: VideoConferenceJoinResponse})@ApiResponse({status: undefined, description: 'Invalid parameters.'})@ApiResponse({status: undefined, description: 'User does not have the permission to join this conference.'})@ApiResponse({status: undefined, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference.controller.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scopeParams\n \n VideoConferenceScopeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n start\n \n \n \n \n \n \n \n start(req: Request, currentUser: ICurrentUser, scopeParams: VideoConferenceScopeParams, params: VideoConferenceCreateParams)\n \n \n\n \n \n Decorators : \n \n @Put(':scope/:scopeId/start')@ApiOperation({summary: 'Creates the video conference, if it has not started yet.', description: 'Use this endpoint to start a video conference. If the conference is not yet running, it will be created.'})@ApiResponse({status: undefined, description: 'Video conference was created.'})@ApiResponse({status: undefined, description: 'Invalid parameters.'})@ApiResponse({status: undefined, description: 'User does not have the permission to create this conference.'})@ApiResponse({status: undefined, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference.controller.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n req\n \n Request\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scopeParams\n \n VideoConferenceScopeParams\n \n\n \n No\n \n\n\n \n \n params\n \n VideoConferenceCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, HttpStatus, Param, Put, Req } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { Request } from 'express';\nimport { InvalidOriginForLogoutUrlLoggableException } from '../error';\nimport { VideoConferenceOptions } from '../interface';\nimport { VideoConferenceMapper } from '../mapper/video-conference.mapper';\nimport { VideoConferenceCreateUc, VideoConferenceEndUc, VideoConferenceInfoUc, VideoConferenceJoinUc } from '../uc';\nimport { ScopeRef, VideoConferenceInfo, VideoConferenceJoin } from '../uc/dto';\nimport {\n\tVideoConferenceCreateParams,\n\tVideoConferenceInfoResponse,\n\tVideoConferenceJoinResponse,\n\tVideoConferenceScopeParams,\n} from './dto';\n\n@ApiTags('VideoConference')\n@Authenticate('jwt')\n@Controller('videoconference2')\nexport class VideoConferenceController {\n\tconstructor(\n\t\tprivate readonly videoConferenceCreateUc: VideoConferenceCreateUc,\n\t\tprivate readonly videoConferenceJoinUc: VideoConferenceJoinUc,\n\t\tprivate readonly videoConferenceEndUc: VideoConferenceEndUc,\n\t\tprivate readonly videoConferenceInfoUc: VideoConferenceInfoUc\n\t) {}\n\n\t@Put(':scope/:scopeId/start')\n\t@ApiOperation({\n\t\tsummary: 'Creates the video conference, if it has not started yet.',\n\t\tdescription:\n\t\t\t'Use this endpoint to start a video conference. If the conference is not yet running, it will be created.',\n\t})\n\t@ApiResponse({\n\t\tstatus: HttpStatus.OK,\n\t\tdescription: 'Video conference was created.',\n\t})\n\t@ApiResponse({ status: HttpStatus.BAD_REQUEST, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: HttpStatus.FORBIDDEN,\n\t\tdescription: 'User does not have the permission to create this conference.',\n\t})\n\t@ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: 'Unable to fetch required data.' })\n\tasync start(\n\t\t@Req() req: Request,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() scopeParams: VideoConferenceScopeParams,\n\t\t@Body() params: VideoConferenceCreateParams\n\t): Promise {\n\t\tif (params.logoutUrl && new URL(params.logoutUrl).origin !== req.headers.origin) {\n\t\t\tthrow new InvalidOriginForLogoutUrlLoggableException(params.logoutUrl, req.headers.origin);\n\t\t}\n\n\t\tconst scopeRef = new ScopeRef(scopeParams.scopeId, scopeParams.scope);\n\t\tconst videoConferenceOptions: VideoConferenceOptions = VideoConferenceMapper.toVideoConferenceOptions(params);\n\n\t\tawait this.videoConferenceCreateUc.createIfNotRunning(currentUser.userId, scopeRef, videoConferenceOptions);\n\t}\n\n\t@Get(':scope/:scopeId/join')\n\t@ApiOperation({\n\t\tsummary: 'Creates a join link for a video conference, if it has started.',\n\t\tdescription:\n\t\t\t'Use this endpoint to get a link to join an existing video conference. The conference must be running.',\n\t})\n\t@ApiResponse({\n\t\tstatus: HttpStatus.OK,\n\t\tdescription: 'Returns the information for joining the conference.',\n\t\ttype: VideoConferenceJoinResponse,\n\t})\n\t@ApiResponse({ status: HttpStatus.BAD_REQUEST, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: HttpStatus.FORBIDDEN,\n\t\tdescription: 'User does not have the permission to join this conference.',\n\t})\n\t@ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: 'Unable to fetch required data.' })\n\tasync join(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() scopeParams: VideoConferenceScopeParams\n\t): Promise {\n\t\tconst scopeRef = new ScopeRef(scopeParams.scopeId, scopeParams.scope);\n\t\tconst dto: VideoConferenceJoin = await this.videoConferenceJoinUc.join(currentUser.userId, scopeRef);\n\n\t\tconst resp: VideoConferenceJoinResponse = VideoConferenceMapper.toVideoConferenceJoinResponse(dto);\n\n\t\treturn resp;\n\t}\n\n\t@Get(':scope/:scopeId/info')\n\t@ApiOperation({\n\t\tsummary: 'Returns information about a running video conference.',\n\t\tdescription: 'Use this endpoint to get information about a running video conference.',\n\t})\n\t@ApiResponse({\n\t\tstatus: HttpStatus.OK,\n\t\tdescription: 'Returns a list of information about a video conference.',\n\t\ttype: VideoConferenceInfoResponse,\n\t})\n\t@ApiResponse({ status: HttpStatus.BAD_REQUEST, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: HttpStatus.FORBIDDEN,\n\t\tdescription: 'User does not have the permission to get information about this conference.',\n\t})\n\t@ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: 'Unable to fetch required data.' })\n\tasync info(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() scopeParams: VideoConferenceScopeParams\n\t): Promise {\n\t\tconst scopeRef = new ScopeRef(scopeParams.scopeId, scopeParams.scope);\n\t\tconst dto: VideoConferenceInfo = await this.videoConferenceInfoUc.getMeetingInfo(currentUser.userId, scopeRef);\n\n\t\tconst resp: VideoConferenceInfoResponse = VideoConferenceMapper.toVideoConferenceInfoResponse(dto);\n\n\t\treturn resp;\n\t}\n\n\t@Get(':scope/:scopeId/end')\n\t@ApiOperation({\n\t\tsummary: 'Ends a running video conference.',\n\t\tdescription: 'Use this endpoint to end a running video conference.',\n\t})\n\t@ApiResponse({\n\t\tstatus: HttpStatus.OK,\n\t\tdescription: 'Returns the status of the operation.',\n\t})\n\t@ApiResponse({ status: HttpStatus.BAD_REQUEST, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: HttpStatus.FORBIDDEN,\n\t\tdescription: 'User does not have the permission to end this conference.',\n\t})\n\t@ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: 'Unable to fetch required data.' })\n\tasync end(@CurrentUser() currentUser: ICurrentUser, @Param() scopeParams: VideoConferenceScopeParams): Promise {\n\t\tconst scopeRef = new ScopeRef(scopeParams.scopeId, scopeParams.scope);\n\n\t\tawait this.videoConferenceEndUc.end(currentUser.userId, scopeRef);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceCreateParams.html":{"url":"classes/VideoConferenceCreateParams.html","title":"class - VideoConferenceCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n everyAttendeeJoinsMuted\n \n \n \n \n \n Optional\n everybodyJoinsAsModerator\n \n \n \n \n \n Optional\n logoutUrl\n \n \n \n \n \n Optional\n moderatorMustApproveJoinRequests\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n everyAttendeeJoinsMuted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({default: undefined})@IsBoolean()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n everybodyJoinsAsModerator\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({default: undefined})@IsBoolean()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n logoutUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The URL that the BigBlueButton client will go to after users click the OK button on the ‘You have been logged out’ or ’This session was ended’ message. Has to be a URL from the same domain that the conference is started from.'})@IsUrl({require_tld: false})@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n moderatorMustApproveJoinRequests\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({default: undefined})@IsBoolean()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsBoolean, IsOptional, IsUrl } from 'class-validator';\nimport { defaultVideoConferenceOptions } from '../../../interface';\n\nexport class VideoConferenceCreateParams {\n\t@ApiPropertyOptional({ default: defaultVideoConferenceOptions.everyAttendeeJoinsMuted })\n\t@IsBoolean()\n\t@IsOptional()\n\teveryAttendeeJoinsMuted?: boolean;\n\n\t@ApiPropertyOptional({ default: defaultVideoConferenceOptions.everybodyJoinsAsModerator })\n\t@IsBoolean()\n\t@IsOptional()\n\teverybodyJoinsAsModerator?: boolean;\n\n\t@ApiPropertyOptional({ default: defaultVideoConferenceOptions.moderatorMustApproveJoinRequests })\n\t@IsBoolean()\n\t@IsOptional()\n\tmoderatorMustApproveJoinRequests?: boolean;\n\n\t@ApiPropertyOptional({\n\t\tdescription:\n\t\t\t'The URL that the BigBlueButton client will go to after users click the OK button on the ‘You have been logged out’ or ’This session was ended’ message. Has to be a URL from the same domain that the conference is started from.',\n\t})\n\t@IsUrl({ require_tld: false })\n\t@IsOptional()\n\tlogoutUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceCreateUc.html":{"url":"injectables/VideoConferenceCreateUc.html","title":"injectable - VideoConferenceCreateUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceCreateUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n create\n \n \n Async\n createIfNotRunning\n \n \n Private\n prepareBBBCreateConfigBuilder\n \n \n Private\n throwIfNotModerator\n \n \n Private\n Async\n verifyFeaturesEnabled\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbService: BBBService, userService: UserService, videoConferenceService: VideoConferenceService)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbService\n \n \n BBBService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceService\n \n \n VideoConferenceService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n create\n \n \n \n \n \n \n \n create(currentUserId: EntityId, scope: ScopeRef, options: VideoConferenceOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n options\n \n VideoConferenceOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createIfNotRunning\n \n \n \n \n \n \n \n createIfNotRunning(currentUserId: EntityId, scope: ScopeRef, options: VideoConferenceOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n options\n \n VideoConferenceOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n prepareBBBCreateConfigBuilder\n \n \n \n \n \n \n \n prepareBBBCreateConfigBuilder(scope: ScopeRef, options: VideoConferenceOptions, scopeInfo: IScopeInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n options\n \n VideoConferenceOptions\n \n\n \n No\n \n\n\n \n \n scopeInfo\n \n IScopeInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n throwIfNotModerator\n \n \n \n \n \n \n \n throwIfNotModerator(role: BBBRole, errorMessage: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n BBBRole\n \n\n \n No\n \n\n\n \n \n errorMessage\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n verifyFeaturesEnabled\n \n \n \n \n \n \n \n verifyFeaturesEnabled(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, UserDO } from '@shared/domain';\nimport { UserService } from '@src/modules/user';\nimport {\n\tBBBBaseMeetingConfig,\n\tBBBCreateConfigBuilder,\n\tBBBMeetingInfoResponse,\n\tBBBResponse,\n\tBBBRole,\n\tBBBService,\n\tGuestPolicy,\n} from '../bbb';\nimport { ErrorStatus } from '../error/error-status.enum';\nimport { VideoConferenceOptions } from '../interface';\nimport { VideoConferenceService } from '../service';\nimport { IScopeInfo, ScopeRef } from './dto';\n\n@Injectable()\nexport class VideoConferenceCreateUc {\n\tconstructor(\n\t\tprivate readonly bbbService: BBBService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceService: VideoConferenceService\n\t) {}\n\n\tasync createIfNotRunning(currentUserId: EntityId, scope: ScopeRef, options: VideoConferenceOptions): Promise {\n\t\tlet bbbMeetingInfoResponse: BBBResponse | undefined;\n\t\t// try and catch based on legacy behavior\n\t\ttry {\n\t\t\tbbbMeetingInfoResponse = await this.bbbService.getMeetingInfo(new BBBBaseMeetingConfig({ meetingID: scope.id }));\n\t\t} catch (e) {\n\t\t\tbbbMeetingInfoResponse = undefined;\n\t\t}\n\n\t\tif (bbbMeetingInfoResponse === undefined) {\n\t\t\tawait this.create(currentUserId, scope, options);\n\t\t}\n\t}\n\n\tprivate async create(currentUserId: EntityId, scope: ScopeRef, options: VideoConferenceOptions): Promise {\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\n\t\tawait this.verifyFeaturesEnabled(user.schoolId);\n\n\t\tconst scopeInfo: IScopeInfo = await this.videoConferenceService.getScopeInfo(currentUserId, scope.id, scope.scope);\n\n\t\tconst bbbRole: BBBRole = await this.videoConferenceService.determineBbbRole(\n\t\t\tcurrentUserId,\n\t\t\tscopeInfo.scopeId,\n\t\t\tscope.scope\n\t\t);\n\t\tthis.throwIfNotModerator(bbbRole, 'You are not allowed to start the videoconference. Ask a moderator.');\n\n\t\tawait this.videoConferenceService.createOrUpdateVideoConferenceForScopeWithOptions(scope.id, scope.scope, options);\n\n\t\tconst configBuilder: BBBCreateConfigBuilder = this.prepareBBBCreateConfigBuilder(scope, options, scopeInfo);\n\n\t\tawait this.bbbService.create(configBuilder.build());\n\t}\n\n\tprivate prepareBBBCreateConfigBuilder(\n\t\tscope: ScopeRef,\n\t\toptions: VideoConferenceOptions,\n\t\tscopeInfo: IScopeInfo\n\t): BBBCreateConfigBuilder {\n\t\tconst configBuilder: BBBCreateConfigBuilder = new BBBCreateConfigBuilder({\n\t\t\tname: this.videoConferenceService.sanitizeString(scopeInfo.title),\n\t\t\tmeetingID: scope.id,\n\t\t}).withLogoutUrl(options.logoutUrl ?? scopeInfo.logoutUrl);\n\n\t\tif (options.moderatorMustApproveJoinRequests) {\n\t\t\tconfigBuilder.withGuestPolicy(GuestPolicy.ASK_MODERATOR);\n\t\t}\n\n\t\tif (options.everyAttendeeJoinsMuted) {\n\t\t\tconfigBuilder.withMuteOnStart(true);\n\t\t}\n\n\t\treturn configBuilder;\n\t}\n\n\tprivate async verifyFeaturesEnabled(schoolId: string): Promise {\n\t\tawait this.videoConferenceService.throwOnFeaturesDisabled(schoolId);\n\t}\n\n\tprivate throwIfNotModerator(role: BBBRole, errorMessage: string) {\n\t\tif (role !== BBBRole.MODERATOR) {\n\t\t\tthrow new ForbiddenException(ErrorStatus.INSUFFICIENT_PERMISSION, errorMessage);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceDO.html":{"url":"classes/VideoConferenceDO.html","title":"class - VideoConferenceDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/video-conference.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n options\n \n \n target\n \n \n targetModel\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(domainObject: VideoConferenceDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n \n VideoConferenceDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n options\n \n \n \n \n \n \n Type : VideoConferenceOptionsDO\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : VideoConferenceScope\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { VideoConferenceScope } from '@shared/domain/interface/video-conference-scope.enum';\nimport { BaseDO } from './base.do';\n\nexport class VideoConferenceOptionsDO {\n\teveryAttendeeJoinsMuted: boolean;\n\n\teverybodyJoinsAsModerator: boolean;\n\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(options: VideoConferenceOptionsDO) {\n\t\tthis.everyAttendeeJoinsMuted = options.everyAttendeeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = options.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = options.moderatorMustApproveJoinRequests;\n\t}\n}\n\nexport class VideoConferenceDO extends BaseDO {\n\ttarget: string;\n\n\ttargetModel: VideoConferenceScope;\n\n\toptions: VideoConferenceOptionsDO;\n\n\tconstructor(domainObject: VideoConferenceDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.target = domainObject.target;\n\t\tthis.targetModel = domainObject.targetModel;\n\t\tthis.options = domainObject.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/VideoConferenceDeprecatedController.html":{"url":"controllers/VideoConferenceDeprecatedController.html","title":"controller - VideoConferenceDeprecatedController","body":"\n \n\n\n\n\n\n\n Controllers\n VideoConferenceDeprecatedController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/video-conference-deprecated.controller.ts\n \n\n \n Prefix\n \n \n videoconference\n \n\n\n \n Description\n \n \n This controller is deprecated. Please use VideoConferenceController instead.\n\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n Async\n createAndJoin\n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n \n Async\n info\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createAndJoin\n \n \n \n \n \n \n \n createAndJoin(currentUser: ICurrentUser, scope: VideoConferenceScope, scopeId: string, params: VideoConferenceCreateParams)\n \n \n\n \n \n Decorators : \n \n @Post(':scope/:scopeId')@ApiOperation({summary: 'Creates a join link for a video conference and creates the video conference, if it has not started yet.'})@ApiResponse({status: 400, type: BadRequestException, description: 'Invalid parameters.'})@ApiResponse({status: 403, type: ForbiddenException, description: 'User does not have the permission to create this conference.'})@ApiResponse({status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference-deprecated.controller.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n params\n \n VideoConferenceCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n end(currentUser: ICurrentUser, scope: VideoConferenceScope, scopeId: string)\n \n \n\n \n \n Decorators : \n \n @Delete(':scope/:scopeId')@ApiOperation({summary: 'Ends a running video conference.'})@ApiResponse({status: 400, type: BadRequestException, description: 'Invalid parameters.'})@ApiResponse({status: 403, type: ForbiddenException, description: 'User does not have the permission to get information about this conference.'})@ApiResponse({status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference-deprecated.controller.ts:107\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n info\n \n \n \n \n \n \n \n info(currentUser: ICurrentUser, scope: VideoConferenceScope, scopeId: string)\n \n \n\n \n \n Decorators : \n \n @Get(':scope/:scopeId')@ApiOperation({summary: 'Returns information about a running video conference.'})@ApiResponse({status: 200, type: DeprecatedVideoConferenceInfoResponse, description: 'Returns a list of information about a video conference.'})@ApiResponse({status: 400, type: BadRequestException, description: 'Invalid parameters.'})@ApiResponse({status: 403, type: ForbiddenException, description: 'User does not have the permission to get information about this conference.'})@ApiResponse({status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference-deprecated.controller.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBadRequestException,\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tGet,\n\tInternalServerErrorException,\n\tParam,\n\tPost,\n} from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { VideoConferenceScope } from '@shared/domain/interface';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ICurrentUser } from '@src/modules/authentication/interface';\nimport { BBBBaseResponse } from '../bbb';\nimport { defaultVideoConferenceOptions } from '../interface';\nimport { VideoConferenceResponseDeprecatedMapper } from '../mapper/vc-deprecated-response.mapper';\nimport { VideoConferenceDeprecatedUc } from '../uc';\nimport { VideoConference, VideoConferenceInfo, VideoConferenceJoin, VideoConferenceState } from '../uc/dto';\nimport { VideoConferenceCreateParams } from './dto';\nimport {\n\tDeprecatedVideoConferenceInfoResponse,\n\tVideoConferenceBaseResponse,\n} from './dto/response/video-conference-deprecated.response';\n\n/**\n * This controller is deprecated. Please use {@link VideoConferenceController} instead.\n */\n@ApiTags('VideoConference')\n@Authenticate('jwt')\n@Controller('videoconference')\nexport class VideoConferenceDeprecatedController {\n\tconstructor(private readonly videoConferenceUc: VideoConferenceDeprecatedUc) {}\n\n\t@Post(':scope/:scopeId')\n\t@ApiOperation({\n\t\tsummary: 'Creates a join link for a video conference and creates the video conference, if it has not started yet.',\n\t})\n\t@ApiResponse({ status: 400, type: BadRequestException, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: 403,\n\t\ttype: ForbiddenException,\n\t\tdescription: 'User does not have the permission to create this conference.',\n\t})\n\t@ApiResponse({ status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.' })\n\tasync createAndJoin(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param('scope') scope: VideoConferenceScope,\n\t\t@Param('scopeId') scopeId: string,\n\t\t@Body() params: VideoConferenceCreateParams\n\t): Promise {\n\t\tconst infoDto: VideoConferenceInfo = await this.videoConferenceUc.getMeetingInfo(currentUser, scope, scopeId);\n\n\t\tif (infoDto.state !== VideoConferenceState.RUNNING) {\n\t\t\tawait this.videoConferenceUc.create(currentUser, scope, scopeId, {\n\t\t\t\teveryAttendeeJoinsMuted:\n\t\t\t\t\tparams.everyAttendeeJoinsMuted ?? defaultVideoConferenceOptions.everyAttendeeJoinsMuted,\n\t\t\t\teverybodyJoinsAsModerator:\n\t\t\t\t\tparams.everybodyJoinsAsModerator ?? defaultVideoConferenceOptions.everybodyJoinsAsModerator,\n\t\t\t\tmoderatorMustApproveJoinRequests:\n\t\t\t\t\tparams.moderatorMustApproveJoinRequests ?? defaultVideoConferenceOptions.moderatorMustApproveJoinRequests,\n\t\t\t});\n\t\t}\n\n\t\tconst dto: VideoConferenceJoin = await this.videoConferenceUc.join(currentUser, scope, scopeId);\n\n\t\treturn VideoConferenceResponseDeprecatedMapper.mapToJoinResponse(dto);\n\t}\n\n\t@Get(':scope/:scopeId')\n\t@ApiOperation({\n\t\tsummary: 'Returns information about a running video conference.',\n\t})\n\t@ApiResponse({\n\t\tstatus: 200,\n\t\ttype: DeprecatedVideoConferenceInfoResponse,\n\t\tdescription: 'Returns a list of information about a video conference.',\n\t})\n\t@ApiResponse({ status: 400, type: BadRequestException, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: 403,\n\t\ttype: ForbiddenException,\n\t\tdescription: 'User does not have the permission to get information about this conference.',\n\t})\n\t@ApiResponse({ status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.' })\n\tasync info(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param('scope') scope: VideoConferenceScope,\n\t\t@Param('scopeId') scopeId: string\n\t): Promise {\n\t\tconst dto: VideoConferenceInfo = await this.videoConferenceUc.getMeetingInfo(currentUser, scope, scopeId);\n\t\treturn VideoConferenceResponseDeprecatedMapper.mapToInfoResponse(dto);\n\t}\n\n\t@Delete(':scope/:scopeId')\n\t@ApiOperation({\n\t\tsummary: 'Ends a running video conference.',\n\t})\n\t@ApiResponse({ status: 400, type: BadRequestException, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: 403,\n\t\ttype: ForbiddenException,\n\t\tdescription: 'User does not have the permission to get information about this conference.',\n\t})\n\t@ApiResponse({ status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.' })\n\tasync end(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param('scope') scope: VideoConferenceScope,\n\t\t@Param('scopeId') scopeId: string\n\t): Promise {\n\t\tconst dto: VideoConference = await this.videoConferenceUc.end(currentUser, scope, scopeId);\n\t\treturn VideoConferenceResponseDeprecatedMapper.mapToBaseResponse(dto);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceEndUc.html":{"url":"injectables/VideoConferenceEndUc.html","title":"injectable - VideoConferenceEndUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceEndUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/video-conference-end.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n end\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbService: BBBService, userService: UserService, videoConferenceService: VideoConferenceService)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-end.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbService\n \n \n BBBService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceService\n \n \n VideoConferenceService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n end(currentUserId: EntityId, scope: ScopeRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-end.uc.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, UserDO } from '@shared/domain';\nimport { ErrorStatus } from '@src/modules/video-conference/error/error-status.enum';\nimport { UserService } from '@src/modules/user';\nimport { BBBBaseMeetingConfig, BBBBaseResponse, BBBResponse, BBBRole, BBBService } from '../bbb';\nimport { IScopeInfo, ScopeRef, VideoConference, VideoConferenceState } from './dto';\nimport { VideoConferenceService } from '../service';\nimport { PermissionMapping } from '../mapper/video-conference.mapper';\n\n@Injectable()\nexport class VideoConferenceEndUc {\n\tconstructor(\n\t\tprivate readonly bbbService: BBBService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceService: VideoConferenceService\n\t) {}\n\n\tasync end(currentUserId: EntityId, scope: ScopeRef): Promise> {\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\t\tconst userId: string = user.id as string;\n\n\t\tawait this.videoConferenceService.throwOnFeaturesDisabled(user.schoolId);\n\n\t\tconst scopeInfo: IScopeInfo = await this.videoConferenceService.getScopeInfo(userId, scope.id, scope.scope);\n\n\t\tconst bbbRole: BBBRole = await this.videoConferenceService.determineBbbRole(userId, scopeInfo.scopeId, scope.scope);\n\n\t\tif (bbbRole !== BBBRole.MODERATOR) {\n\t\t\tthrow new ForbiddenException(ErrorStatus.INSUFFICIENT_PERMISSION);\n\t\t}\n\n\t\tconst config: BBBBaseMeetingConfig = new BBBBaseMeetingConfig({\n\t\t\tmeetingID: scope.id,\n\t\t});\n\n\t\tconst bbbResponse: BBBResponse = await this.bbbService.end(config);\n\n\t\tconst videoConference = new VideoConference({\n\t\t\tstate: VideoConferenceState.FINISHED,\n\t\t\tpermission: PermissionMapping[bbbRole],\n\t\t\tbbbResponse,\n\t\t});\n\t\treturn videoConference;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceInfo.html":{"url":"classes/VideoConferenceInfo.html","title":"class - VideoConferenceInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/video-conference-info.ts\n \n\n\n\n \n Extends\n \n \n VideoConference\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n options\n \n \n \n \n target\n \n \n \n targetModel\n \n \n \n _id\n \n \n \n createdAt\n \n \n \n id\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dto: VideoConferenceInfo)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-info.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n \n VideoConferenceInfo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n options\n \n \n \n \n \n \n Type : VideoConferenceOptions\n\n \n \n \n \n Inherited from VideoConference\n\n \n \n \n \n Defined in VideoConference:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Inherited from VideoConference\n\n \n \n \n \n Defined in VideoConference:31\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : TargetModels\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from VideoConference\n\n \n \n \n \n Defined in VideoConference:34\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n _id\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @PrimaryKey()\n \n \n \n \n \n Inherited from BaseEntityWithTimestamps\n\n \n \n \n \n Defined in BaseEntityWithTimestamps:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from BaseEntityWithTimestamps\n\n \n \n \n \n Defined in BaseEntityWithTimestamps:31\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @SerializedPrimaryKey()\n \n \n \n \n \n Inherited from BaseEntityWithTimestamps\n\n \n \n \n \n Defined in BaseEntityWithTimestamps:28\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property({onUpdate: () => })\n \n \n \n \n \n Inherited from BaseEntityWithTimestamps\n\n \n \n \n \n Defined in BaseEntityWithTimestamps:34\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { VideoConference } from './video-conference';\nimport { BBBMeetingInfoResponse } from '../../bbb';\nimport { VideoConferenceOptions } from '../../interface';\n\nexport class VideoConferenceInfo extends VideoConference {\n\toptions: VideoConferenceOptions;\n\n\tconstructor(dto: VideoConferenceInfo) {\n\t\tsuper(dto);\n\t\tthis.options = dto.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceInfoResponse.html":{"url":"classes/VideoConferenceInfoResponse.html","title":"class - VideoConferenceInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-info.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n options\n \n \n \n state\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: VideoConferenceInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-info.response.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n VideoConferenceInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n options\n \n \n \n \n \n \n Type : VideoConferenceOptionsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The options for the video conference.'})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-info.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceStateResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: VideoConferenceStateResponse, enumName: 'VideoConferenceStateResponse', description: 'The state of the video conference.'})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-info.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { VideoConferenceOptionsResponse } from './video-conference-options.response';\nimport { VideoConferenceStateResponse } from './video-conference-state.response';\n\nexport class VideoConferenceInfoResponse {\n\t@ApiProperty({\n\t\tenum: VideoConferenceStateResponse,\n\t\tenumName: 'VideoConferenceStateResponse',\n\t\tdescription: 'The state of the video conference.',\n\t})\n\tstate: VideoConferenceStateResponse;\n\n\t@ApiProperty({ description: 'The options for the video conference.' })\n\toptions: VideoConferenceOptionsResponse;\n\n\tconstructor(resp: VideoConferenceInfoResponse) {\n\t\tthis.state = resp.state;\n\t\tthis.options = resp.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceInfoUc.html":{"url":"injectables/VideoConferenceInfoUc.html","title":"injectable - VideoConferenceInfoUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceInfoUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/video-conference-info.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getMeetingInfo\n \n \n Private\n Async\n getVideoConferenceOptions\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbService: BBBService, userService: UserService, videoConferenceService: VideoConferenceService)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-info.uc.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbService\n \n \n BBBService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceService\n \n \n VideoConferenceService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getMeetingInfo\n \n \n \n \n \n \n \n getMeetingInfo(currentUserId: EntityId, scope: ScopeRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-info.uc.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getVideoConferenceOptions\n \n \n \n \n \n \n \n getVideoConferenceOptions(scope: ScopeRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-info.uc.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, UserDO, VideoConferenceDO, VideoConferenceOptionsDO } from '@shared/domain';\nimport { ErrorStatus } from '@src/modules/video-conference/error/error-status.enum';\nimport { UserService } from '@src/modules/user';\nimport { BBBBaseMeetingConfig, BBBMeetingInfoResponse, BBBResponse, BBBRole, BBBService } from '../bbb';\nimport { IScopeInfo, ScopeRef, VideoConferenceInfo, VideoConferenceState } from './dto';\nimport { VideoConferenceService } from '../service';\nimport { PermissionMapping } from '../mapper/video-conference.mapper';\nimport { defaultVideoConferenceOptions, VideoConferenceOptions } from '../interface';\n\n@Injectable()\nexport class VideoConferenceInfoUc {\n\tconstructor(\n\t\tprivate readonly bbbService: BBBService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceService: VideoConferenceService\n\t) {}\n\n\tasync getMeetingInfo(currentUserId: EntityId, scope: ScopeRef): Promise {\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\n\t\tawait this.videoConferenceService.throwOnFeaturesDisabled(user.schoolId);\n\n\t\tconst scopeInfo: IScopeInfo = await this.videoConferenceService.getScopeInfo(currentUserId, scope.id, scope.scope);\n\n\t\tconst bbbRole: BBBRole = await this.videoConferenceService.determineBbbRole(\n\t\t\tcurrentUserId,\n\t\t\tscopeInfo.scopeId,\n\t\t\tscope.scope\n\t\t);\n\n\t\tconst config: BBBBaseMeetingConfig = new BBBBaseMeetingConfig({\n\t\t\tmeetingID: scope.id,\n\t\t});\n\n\t\tconst options: VideoConferenceOptionsDO = await this.getVideoConferenceOptions(scope);\n\n\t\tlet response: VideoConferenceInfo;\n\t\ttry {\n\t\t\tconst bbbResponse: BBBResponse = await this.bbbService.getMeetingInfo(config);\n\t\t\tresponse = new VideoConferenceInfo({\n\t\t\t\tstate: VideoConferenceState.RUNNING,\n\t\t\t\tpermission: PermissionMapping[bbbRole],\n\t\t\t\tbbbResponse,\n\t\t\t\toptions: bbbRole === BBBRole.MODERATOR ? options : ({} as VideoConferenceOptions),\n\t\t\t});\n\t\t} catch {\n\t\t\tresponse = new VideoConferenceInfo({\n\t\t\t\tstate: VideoConferenceState.NOT_STARTED,\n\t\t\t\tpermission: PermissionMapping[bbbRole],\n\t\t\t\toptions: bbbRole === BBBRole.MODERATOR ? options : ({} as VideoConferenceOptions),\n\t\t\t});\n\t\t}\n\n\t\tconst isGuest: boolean = await this.videoConferenceService.hasExpertRole(\n\t\t\tcurrentUserId,\n\t\t\tscope.scope,\n\t\t\tscopeInfo.scopeId\n\t\t);\n\n\t\tif (!this.videoConferenceService.canGuestJoin(isGuest, response.state, options.moderatorMustApproveJoinRequests)) {\n\t\t\tthrow new ForbiddenException(ErrorStatus.GUESTS_CANNOT_JOIN_CONFERENCE);\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tprivate async getVideoConferenceOptions(scope: ScopeRef): Promise {\n\t\tlet options: VideoConferenceOptionsDO;\n\t\ttry {\n\t\t\tconst vcDO: VideoConferenceDO = await this.videoConferenceService.findVideoConferenceByScopeIdAndScope(\n\t\t\t\tscope.id,\n\t\t\t\tscope.scope\n\t\t\t);\n\t\t\toptions = vcDO.options;\n\t\t} catch {\n\t\t\toptions = defaultVideoConferenceOptions;\n\t\t}\n\t\treturn options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceJoin.html":{"url":"classes/VideoConferenceJoin.html","title":"class - VideoConferenceJoin","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceJoin\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n permission\n \n \n state\n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dto: VideoConferenceJoin)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n \n VideoConferenceJoin\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceState\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceState } from './video-conference-state.enum';\n\nexport class VideoConferenceJoin {\n\tstate: VideoConferenceState;\n\n\tpermission: Permission;\n\n\turl: string;\n\n\tconstructor(dto: VideoConferenceJoin) {\n\t\tthis.state = dto.state;\n\t\tthis.permission = dto.permission;\n\t\tthis.url = dto.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceJoinResponse.html":{"url":"classes/VideoConferenceJoinResponse.html","title":"class - VideoConferenceJoinResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceJoinResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-join.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: VideoConferenceJoinResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-join.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n VideoConferenceJoinResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The URL to join the video conference.'})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-join.response.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class VideoConferenceJoinResponse {\n\t@ApiProperty({ description: 'The URL to join the video conference.' })\n\turl: string;\n\n\tconstructor(resp: VideoConferenceJoinResponse) {\n\t\tthis.url = resp.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceJoinUc.html":{"url":"injectables/VideoConferenceJoinUc.html","title":"injectable - VideoConferenceJoinUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceJoinUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/video-conference-join.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n join\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbService: BBBService, userService: UserService, videoConferenceService: VideoConferenceService)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-join.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbService\n \n \n BBBService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceService\n \n \n VideoConferenceService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n join\n \n \n \n \n \n \n \n join(currentUserId: EntityId, scope: ScopeRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-join.uc.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, UserDO, VideoConferenceDO } from '@shared/domain';\nimport { ErrorStatus } from '@src/modules/video-conference/error/error-status.enum';\nimport { UserService } from '@src/modules/user';\nimport { BBBJoinConfigBuilder, BBBRole, BBBService } from '../bbb';\nimport { ScopeRef, VideoConferenceJoin, VideoConferenceState } from './dto';\nimport { VideoConferenceService } from '../service';\nimport { PermissionMapping } from '../mapper/video-conference.mapper';\n\n@Injectable()\nexport class VideoConferenceJoinUc {\n\tconstructor(\n\t\tprivate readonly bbbService: BBBService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceService: VideoConferenceService\n\t) {}\n\n\tasync join(currentUserId: EntityId, scope: ScopeRef): Promise {\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\n\t\tawait this.videoConferenceService.throwOnFeaturesDisabled(user.schoolId);\n\n\t\tconst { role, isGuest } = await this.videoConferenceService.getUserRoleAndGuestStatusByUserIdForBbb(\n\t\t\tcurrentUserId,\n\t\t\tscope.id,\n\t\t\tscope.scope\n\t\t);\n\n\t\tconst joinBuilder: BBBJoinConfigBuilder = new BBBJoinConfigBuilder({\n\t\t\tfullName: this.videoConferenceService.sanitizeString(`${user.firstName} ${user.lastName}`),\n\t\t\tmeetingID: scope.id,\n\t\t\trole,\n\t\t})\n\t\t\t.withUserId(currentUserId)\n\t\t\t.asGuest(isGuest);\n\n\t\tconst videoConference: VideoConferenceDO = await this.videoConferenceService.findVideoConferenceByScopeIdAndScope(\n\t\t\tscope.id,\n\t\t\tscope.scope\n\t\t);\n\n\t\tif (videoConference.options.everybodyJoinsAsModerator && !isGuest) {\n\t\t\tjoinBuilder.withRole(BBBRole.MODERATOR);\n\t\t}\n\n\t\tif (\n\t\t\tvideoConference.options.moderatorMustApproveJoinRequests &&\n\t\t\t!videoConference.options.everybodyJoinsAsModerator\n\t\t) {\n\t\t\tjoinBuilder.asGuest(true);\n\t\t}\n\n\t\tif (!videoConference.options.moderatorMustApproveJoinRequests && isGuest) {\n\t\t\tthrow new ForbiddenException(\n\t\t\t\tErrorStatus.GUESTS_CANNOT_JOIN_CONFERENCE,\n\t\t\t\t'Guests cannot join this conference, since the waiting room is not enabled.'\n\t\t\t);\n\t\t}\n\n\t\tconst url: string = await this.bbbService.join(joinBuilder.build());\n\n\t\tconst videoConferenceJoin: VideoConferenceJoin = new VideoConferenceJoin({\n\t\t\tstate: VideoConferenceState.RUNNING,\n\t\t\tpermission: PermissionMapping[role],\n\t\t\turl,\n\t\t});\n\t\treturn videoConferenceJoin;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceMapper.html":{"url":"classes/VideoConferenceMapper.html","title":"class - VideoConferenceMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n toVideoConferenceInfoResponse\n \n \n Static\n toVideoConferenceJoinResponse\n \n \n Static\n toVideoConferenceOptions\n \n \n Static\n toVideoConferenceStateResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n toVideoConferenceInfoResponse\n \n \n \n \n \n \n \n toVideoConferenceInfoResponse(videoConferenceInfo: VideoConferenceInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n videoConferenceInfo\n \n VideoConferenceInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceInfoResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n toVideoConferenceJoinResponse\n \n \n \n \n \n \n \n toVideoConferenceJoinResponse(videoConferenceJoin: VideoConferenceJoin)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n videoConferenceJoin\n \n VideoConferenceJoin\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceJoinResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n toVideoConferenceOptions\n \n \n \n \n \n \n \n toVideoConferenceOptions(params: VideoConferenceCreateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n VideoConferenceCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceOptions\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n toVideoConferenceStateResponse\n \n \n \n \n \n \n \n toVideoConferenceStateResponse(state: VideoConferenceState)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n state\n \n VideoConferenceState\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceStateResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Permission, VideoConferenceScope } from '@shared/domain';\nimport { AuthorizableReferenceType } from '@src/modules/authorization';\nimport { BBBRole } from '../bbb';\nimport {\n\tVideoConferenceCreateParams,\n\tVideoConferenceInfoResponse,\n\tVideoConferenceJoinResponse,\n\tVideoConferenceStateResponse,\n} from '../controller/dto';\nimport { VideoConferenceOptionsResponse } from '../controller/dto/response/video-conference-options.response';\nimport { defaultVideoConferenceOptions, VideoConferenceOptions } from '../interface';\nimport { VideoConferenceInfo, VideoConferenceJoin, VideoConferenceState } from '../uc/dto';\n\nexport const PermissionMapping = {\n\t[BBBRole.MODERATOR]: Permission.START_MEETING,\n\t[BBBRole.VIEWER]: Permission.JOIN_MEETING,\n};\n\nexport const PermissionScopeMapping = {\n\t[VideoConferenceScope.COURSE]: AuthorizableReferenceType.Course,\n\t[VideoConferenceScope.EVENT]: AuthorizableReferenceType.Team,\n};\n\nconst stateMapping = {\n\t[VideoConferenceState.NOT_STARTED]: VideoConferenceStateResponse.NOT_STARTED,\n\t[VideoConferenceState.RUNNING]: VideoConferenceStateResponse.RUNNING,\n\t[VideoConferenceState.FINISHED]: VideoConferenceStateResponse.FINISHED,\n};\n\nexport class VideoConferenceMapper {\n\tstatic toVideoConferenceInfoResponse(videoConferenceInfo: VideoConferenceInfo): VideoConferenceInfoResponse {\n\t\treturn new VideoConferenceInfoResponse({\n\t\t\tstate: this.toVideoConferenceStateResponse(videoConferenceInfo.state),\n\t\t\toptions: new VideoConferenceOptionsResponse(videoConferenceInfo.options),\n\t\t});\n\t}\n\n\tstatic toVideoConferenceJoinResponse(videoConferenceJoin: VideoConferenceJoin): VideoConferenceJoinResponse {\n\t\treturn new VideoConferenceJoinResponse({\n\t\t\turl: videoConferenceJoin.url,\n\t\t});\n\t}\n\n\tstatic toVideoConferenceStateResponse(state: VideoConferenceState): VideoConferenceStateResponse {\n\t\treturn stateMapping[state];\n\t}\n\n\tstatic toVideoConferenceOptions(params: VideoConferenceCreateParams): VideoConferenceOptions {\n\t\treturn {\n\t\t\teveryAttendeeJoinsMuted: params.everyAttendeeJoinsMuted ?? defaultVideoConferenceOptions.everyAttendeeJoinsMuted,\n\t\t\teverybodyJoinsAsModerator:\n\t\t\t\tparams.everybodyJoinsAsModerator ?? defaultVideoConferenceOptions.everybodyJoinsAsModerator,\n\t\t\tmoderatorMustApproveJoinRequests:\n\t\t\t\tparams.moderatorMustApproveJoinRequests ?? defaultVideoConferenceOptions.moderatorMustApproveJoinRequests,\n\t\t\tlogoutUrl: params.logoutUrl,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/VideoConferenceModule.html":{"url":"modules/VideoConferenceModule.html","title":"module - VideoConferenceModule","body":"\n \n\n\n\n\n Modules\n VideoConferenceModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_VideoConferenceModule\n\n\n\ncluster_VideoConferenceModule_providers\n\n\n\ncluster_VideoConferenceModule_exports\n\n\n\ncluster_VideoConferenceModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nVideoConferenceModule\n\nVideoConferenceModule\n\nVideoConferenceModule -->\n\nAuthorizationModule->VideoConferenceModule\n\n\n\n\n\nCalendarModule\n\nCalendarModule\n\nVideoConferenceModule -->\n\nCalendarModule->VideoConferenceModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nVideoConferenceModule -->\n\nLearnroomModule->VideoConferenceModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nVideoConferenceModule -->\n\nLegacySchoolModule->VideoConferenceModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nVideoConferenceModule -->\n\nLoggerModule->VideoConferenceModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nVideoConferenceModule -->\n\nUserModule->VideoConferenceModule\n\n\n\nVideoConferenceModule -->\n\nUserModule->VideoConferenceModule\n\n\n\n\n\nBBBService \n\nBBBService \n\nBBBService -->\n\nVideoConferenceModule->BBBService \n\n\n\n\n\nVideoConferenceService \n\nVideoConferenceService \n\nVideoConferenceService -->\n\nVideoConferenceModule->VideoConferenceService \n\n\n\n\n\nBBBService\n\nBBBService\n\nVideoConferenceModule -->\n\nBBBService->VideoConferenceModule\n\n\n\n\n\nConverterUtil\n\nConverterUtil\n\nVideoConferenceModule -->\n\nConverterUtil->VideoConferenceModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nVideoConferenceModule -->\n\nTeamsRepo->VideoConferenceModule\n\n\n\n\n\nVideoConferenceDeprecatedUc\n\nVideoConferenceDeprecatedUc\n\nVideoConferenceModule -->\n\nVideoConferenceDeprecatedUc->VideoConferenceModule\n\n\n\n\n\nVideoConferenceRepo\n\nVideoConferenceRepo\n\nVideoConferenceModule -->\n\nVideoConferenceRepo->VideoConferenceModule\n\n\n\n\n\nVideoConferenceService\n\nVideoConferenceService\n\nVideoConferenceModule -->\n\nVideoConferenceService->VideoConferenceModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/video-conference/video-conference.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BBBService\n \n \n ConverterUtil\n \n \n TeamsRepo\n \n \n VideoConferenceDeprecatedUc\n \n \n VideoConferenceRepo\n \n \n VideoConferenceService\n \n \n \n \n Controllers\n \n \n VideoConferenceDeprecatedController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CalendarModule\n \n \n LearnroomModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n UserModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n BBBService\n \n \n VideoConferenceService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { HttpModule } from '@nestjs/axios';\nimport { CalendarModule } from '@shared/infra/calendar';\nimport { VideoConferenceRepo } from '@shared/repo/videoconference/video-conference.repo';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { TeamsRepo } from '@shared/repo';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { LoggerModule } from '@src/core/logger';\nimport { ConverterUtil } from '@shared/common';\nimport { UserModule } from '@src/modules/user';\nimport { BBBService, BbbSettings } from './bbb';\nimport { VideoConferenceService } from './service';\nimport { VideoConferenceDeprecatedUc } from './uc';\nimport { VideoConferenceDeprecatedController } from './controller';\nimport VideoConferenceConfiguration from './video-conference-config';\nimport { VideoConferenceSettings } from './interface';\nimport { LearnroomModule } from '../learnroom';\n\n@Module({\n\timports: [\n\t\tAuthorizationModule,\n\t\tCalendarModule,\n\t\tHttpModule,\n\t\tLegacySchoolModule,\n\t\tLoggerModule,\n\t\tUserModule,\n\t\tLearnroomModule,\n\t\tUserModule,\n\t],\n\tproviders: [\n\t\t{\n\t\t\tprovide: VideoConferenceSettings,\n\t\t\tuseValue: VideoConferenceConfiguration.videoConference,\n\t\t},\n\t\t{\n\t\t\tprovide: BbbSettings,\n\t\t\tuseValue: VideoConferenceConfiguration.bbb,\n\t\t},\n\t\tBBBService,\n\t\tVideoConferenceRepo,\n\t\t// TODO: N21-1010 clean up video conferences - remove repos\n\t\tTeamsRepo,\n\t\tConverterUtil,\n\t\tVideoConferenceService,\n\t\t// TODO: N21-885 remove VideoConferenceDeprecatedUc from providers\n\t\tVideoConferenceDeprecatedUc,\n\t],\n\t// TODO: N21-885 remove VideoConferenceDeprecatedController from exports\n\tcontrollers: [VideoConferenceDeprecatedController],\n\texports: [BBBService, VideoConferenceService],\n})\nexport class VideoConferenceModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceOptions.html":{"url":"classes/VideoConferenceOptions.html","title":"class - VideoConferenceOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/video-conference.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n everyAttendeJoinsMuted\n \n \n everybodyJoinsAsModerator\n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(options: VideoConferenceOptions)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n \n VideoConferenceOptions\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n everyAttendeJoinsMuted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n everybodyJoinsAsModerator\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Entity, Index, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport enum TargetModels {\n\tCOURSES = 'courses',\n\tEVENTS = 'events',\n}\n\nexport class VideoConferenceOptions {\n\teveryAttendeJoinsMuted: boolean;\n\n\teverybodyJoinsAsModerator: boolean;\n\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(options: VideoConferenceOptions) {\n\t\tthis.everyAttendeJoinsMuted = options.everyAttendeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = options.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = options.moderatorMustApproveJoinRequests;\n\t}\n}\n\nexport type IVideoConferenceProperties = Readonly>;\n\n// Preset options for opening a video conference\n@Entity({ tableName: 'videoconferences' })\n@Index({ properties: ['target', 'targetModel'] })\nexport class VideoConference extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Index()\n\ttarget: string;\n\n\t@Property()\n\ttargetModel: TargetModels;\n\n\t@Property()\n\toptions: VideoConferenceOptions;\n\n\tconstructor(props: IVideoConferenceProperties) {\n\t\tsuper();\n\t\tthis.target = props.target;\n\t\tthis.targetModel = props.targetModel;\n\t\tthis.options = props.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceOptionsDO.html":{"url":"classes/VideoConferenceOptionsDO.html","title":"class - VideoConferenceOptionsDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceOptionsDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/video-conference.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n everyAttendeeJoinsMuted\n \n \n everybodyJoinsAsModerator\n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(options: VideoConferenceOptionsDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n \n VideoConferenceOptionsDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n everyAttendeeJoinsMuted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n everybodyJoinsAsModerator\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { VideoConferenceScope } from '@shared/domain/interface/video-conference-scope.enum';\nimport { BaseDO } from './base.do';\n\nexport class VideoConferenceOptionsDO {\n\teveryAttendeeJoinsMuted: boolean;\n\n\teverybodyJoinsAsModerator: boolean;\n\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(options: VideoConferenceOptionsDO) {\n\t\tthis.everyAttendeeJoinsMuted = options.everyAttendeeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = options.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = options.moderatorMustApproveJoinRequests;\n\t}\n}\n\nexport class VideoConferenceDO extends BaseDO {\n\ttarget: string;\n\n\ttargetModel: VideoConferenceScope;\n\n\toptions: VideoConferenceOptionsDO;\n\n\tconstructor(domainObject: VideoConferenceDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.target = domainObject.target;\n\t\tthis.targetModel = domainObject.targetModel;\n\t\tthis.options = domainObject.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceOptionsResponse.html":{"url":"classes/VideoConferenceOptionsResponse.html","title":"class - VideoConferenceOptionsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceOptionsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n everyAttendeeJoinsMuted\n \n \n \n everybodyJoinsAsModerator\n \n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: VideoConferenceOptionsResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts:20\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n VideoConferenceOptionsResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n everyAttendeeJoinsMuted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Every attendee joins muted', example: false})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n everybodyJoinsAsModerator\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Every attendee joins as a moderator', example: false})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Moderator must approve join requests', example: true})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class VideoConferenceOptionsResponse {\n\t@ApiProperty({\n\t\tdescription: 'Every attendee joins muted',\n\t\texample: false,\n\t})\n\teveryAttendeeJoinsMuted: boolean;\n\n\t@ApiProperty({\n\t\tdescription: 'Every attendee joins as a moderator',\n\t\texample: false,\n\t})\n\teverybodyJoinsAsModerator: boolean;\n\n\t@ApiProperty({\n\t\tdescription: 'Moderator must approve join requests',\n\t\texample: true,\n\t})\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(resp: VideoConferenceOptionsResponse) {\n\t\tthis.everyAttendeeJoinsMuted = resp.everyAttendeeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = resp.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = resp.moderatorMustApproveJoinRequests;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceRepo.html":{"url":"injectables/VideoConferenceRepo.html","title":"injectable - VideoConferenceRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/videoconference/video-conference.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findByScopeAndScopeId\n \n \n Protected\n mapDOToEntityProperties\n \n \n Protected\n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IVideoConferenceProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IVideoConferenceProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConference\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByScopeAndScopeId\n \n \n \n \n \n \n \n findByScopeAndScopeId(scopeId: string, videoConferenceScope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/videoconference/video-conference.repo.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n videoConferenceScope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(entityDO: VideoConferenceDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n VideoConferenceDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IVideoConferenceProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: VideoConference)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:37\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n VideoConference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/videoconference/video-conference.repo.ts:20\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { IVideoConferenceProperties, VideoConferenceDO } from '@shared/domain';\nimport { TargetModels, VideoConference } from '@shared/domain/entity/video-conference.entity';\nimport { VideoConferenceScope } from '@shared/domain/interface';\nimport { BaseDORepo } from '@shared/repo/base.do.repo';\nimport { EntityName, Loaded } from '@mikro-orm/core';\n\nconst TargetModelsMapping = {\n\t[VideoConferenceScope.EVENT]: TargetModels.EVENTS,\n\t[VideoConferenceScope.COURSE]: TargetModels.COURSES,\n};\n\nconst VideoConferencingScopeMapping = {\n\t[TargetModels.EVENTS]: VideoConferenceScope.EVENT,\n\t[TargetModels.COURSES]: VideoConferenceScope.COURSE,\n};\n\n@Injectable()\nexport class VideoConferenceRepo extends BaseDORepo {\n\tget entityName(): EntityName {\n\t\treturn VideoConference;\n\t}\n\n\tentityFactory(props: IVideoConferenceProperties): VideoConference {\n\t\treturn new VideoConference(props);\n\t}\n\n\tasync findByScopeAndScopeId(scopeId: string, videoConferenceScope: VideoConferenceScope): Promise {\n\t\tconst entity: Loaded = await this._em.findOneOrFail(VideoConference, {\n\t\t\ttarget: scopeId,\n\t\t\ttargetModel: TargetModelsMapping[videoConferenceScope],\n\t\t});\n\n\t\treturn this.mapEntityToDO(entity);\n\t}\n\n\tprotected mapEntityToDO(entity: VideoConference): VideoConferenceDO {\n\t\treturn new VideoConferenceDO({\n\t\t\tid: entity.id,\n\t\t\ttarget: entity.target,\n\t\t\ttargetModel: VideoConferencingScopeMapping[entity.targetModel],\n\t\t\toptions: {\n\t\t\t\teverybodyJoinsAsModerator: entity.options.everybodyJoinsAsModerator,\n\t\t\t\teveryAttendeeJoinsMuted: entity.options.everyAttendeJoinsMuted,\n\t\t\t\tmoderatorMustApproveJoinRequests: entity.options.moderatorMustApproveJoinRequests,\n\t\t\t},\n\t\t});\n\t}\n\n\tprotected mapDOToEntityProperties(entityDO: VideoConferenceDO): IVideoConferenceProperties {\n\t\treturn {\n\t\t\ttarget: entityDO.target,\n\t\t\ttargetModel: TargetModelsMapping[entityDO.targetModel],\n\t\t\toptions: {\n\t\t\t\teverybodyJoinsAsModerator: entityDO.options.everybodyJoinsAsModerator,\n\t\t\t\teveryAttendeJoinsMuted: entityDO.options.everyAttendeeJoinsMuted,\n\t\t\t\tmoderatorMustApproveJoinRequests: entityDO.options.moderatorMustApproveJoinRequests,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceResponseDeprecatedMapper.html":{"url":"classes/VideoConferenceResponseDeprecatedMapper.html","title":"class - VideoConferenceResponseDeprecatedMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceResponseDeprecatedMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/mapper/vc-deprecated-response.mapper.ts\n \n\n \n Deprecated\n \n \n Please use the VideoConferenceResponseMapper instead.\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToBaseResponse\n \n \n Static\n mapToInfoResponse\n \n \n Static\n mapToJoinResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToBaseResponse\n \n \n \n \n \n \n \n mapToBaseResponse(from: VideoConference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/vc-deprecated-response.mapper.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n from\n \n VideoConference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceBaseResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToInfoResponse\n \n \n \n \n \n \n \n mapToInfoResponse(from: VideoConferenceInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/vc-deprecated-response.mapper.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n from\n \n VideoConferenceInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DeprecatedVideoConferenceInfoResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToJoinResponse\n \n \n \n \n \n \n \n mapToJoinResponse(from: VideoConferenceJoin)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/vc-deprecated-response.mapper.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n from\n \n VideoConferenceJoin\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DeprecatedVideoConferenceJoinResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BBBBaseResponse } from '../bbb';\nimport {\n\tDeprecatedVideoConferenceInfoResponse,\n\tDeprecatedVideoConferenceJoinResponse,\n\tVideoConferenceBaseResponse,\n} from '../controller/dto/response/video-conference-deprecated.response';\nimport { VideoConference, VideoConferenceInfo, VideoConferenceJoin } from '../uc/dto';\nimport { VideoConferenceMapper } from './video-conference.mapper';\n\n/**\n * @deprecated Please use the VideoConferenceResponseMapper instead.\n */\nexport class VideoConferenceResponseDeprecatedMapper {\n\tstatic mapToBaseResponse(from: VideoConference): VideoConferenceBaseResponse {\n\t\treturn new VideoConferenceBaseResponse({\n\t\t\tstate: VideoConferenceMapper.toVideoConferenceStateResponse(from.state),\n\t\t\tpermission: from.permission,\n\t\t});\n\t}\n\n\tstatic mapToJoinResponse(from: VideoConferenceJoin): DeprecatedVideoConferenceJoinResponse {\n\t\treturn new DeprecatedVideoConferenceJoinResponse({\n\t\t\tstate: VideoConferenceMapper.toVideoConferenceStateResponse(from.state),\n\t\t\tpermission: from.permission,\n\t\t\turl: from.url,\n\t\t});\n\t}\n\n\tstatic mapToInfoResponse(from: VideoConferenceInfo): DeprecatedVideoConferenceInfoResponse {\n\t\treturn new DeprecatedVideoConferenceInfoResponse({\n\t\t\tstate: VideoConferenceMapper.toVideoConferenceStateResponse(from.state),\n\t\t\tpermission: from.permission,\n\t\t\toptions: from.options,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceScopeParams.html":{"url":"classes/VideoConferenceScopeParams.html","title":"class - VideoConferenceScopeParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceScopeParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/request/video-conference-scope.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n scope\n \n \n \n \n scopeId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : VideoConferenceScope\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, enum: VideoConferenceScope, enumName: 'VideoConferenceScope'})@IsEnum(VideoConferenceScope)\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-scope.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n scopeId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-scope.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { VideoConferenceScope } from '@shared/domain';\nimport { IsEnum, IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class VideoConferenceScopeParams {\n\t@ApiProperty({ nullable: false, required: true, enum: VideoConferenceScope, enumName: 'VideoConferenceScope' })\n\t@IsEnum(VideoConferenceScope)\n\tscope!: VideoConferenceScope;\n\n\t@ApiProperty({ nullable: false, required: true })\n\t@IsMongoId()\n\tscopeId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceService.html":{"url":"injectables/VideoConferenceService.html","title":"injectable - VideoConferenceService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/service/video-conference.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n canGuestJoin\n \n \n Async\n createOrUpdateVideoConferenceForScopeWithOptions\n \n \n Async\n determineBbbRole\n \n \n Private\n existsExpertRole\n \n \n Async\n findVideoConferenceByScopeIdAndScope\n \n \n Async\n getScopeInfo\n \n \n Async\n getUserRoleAndGuestStatusByUserIdForBbb\n \n \n Async\n hasExpertRole\n \n \n Private\n hasPermissions\n \n \n sanitizeString\n \n \n Private\n Async\n saveVideoConference\n \n \n Async\n throwOnFeaturesDisabled\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n hostUrl\n \n \n isVideoConferenceFeatureEnabled\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(vcSettings: IVideoConferenceSettings, courseService: CourseService, calendarService: CalendarService, authorizationService: AuthorizationService, schoolService: LegacySchoolService, teamsRepo: TeamsRepo, userService: UserService, videoConferenceRepo: VideoConferenceRepo)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:34\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n vcSettings\n \n \n IVideoConferenceSettings\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n calendarService\n \n \n CalendarService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceRepo\n \n \n VideoConferenceRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canGuestJoin\n \n \n \n \n \n \ncanGuestJoin(isGuest: boolean, state: VideoConferenceState, waitingRoomEnabled: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isGuest\n \n boolean\n \n\n \n No\n \n\n\n \n \n state\n \n VideoConferenceState\n \n\n \n No\n \n\n\n \n \n waitingRoomEnabled\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createOrUpdateVideoConferenceForScopeWithOptions\n \n \n \n \n \n \n \n createOrUpdateVideoConferenceForScopeWithOptions(scopeId: EntityId, scope: VideoConferenceScope, options: VideoConferenceOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:198\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scopeId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n options\n \n VideoConferenceOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n determineBbbRole\n \n \n \n \n \n \n \n determineBbbRole(userId: EntityId, scopeId: EntityId, scope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scopeId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n existsExpertRole\n \n \n \n \n \n \n \n existsExpertRole(roles: RoleReference[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n RoleReference[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findVideoConferenceByScopeIdAndScope\n \n \n \n \n \n \n \n findVideoConferenceByScopeIdAndScope(scopeId: EntityId, scope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:189\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scopeId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getScopeInfo\n \n \n \n \n \n \n \n getScopeInfo(userId: EntityId, scopeId: string, scope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:148\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserRoleAndGuestStatusByUserIdForBbb\n \n \n \n \n \n \n \n getUserRoleAndGuestStatusByUserIdForBbb(userId: string, scopeId: EntityId, scope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:175\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n scopeId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n hasExpertRole\n \n \n \n \n \n \n \n hasExpertRole(userId: EntityId, conferenceScope: VideoConferenceScope, scopeId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n conferenceScope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasPermissions\n \n \n \n \n \n \n \n hasPermissions(userId: EntityId, entityName: AuthorizableReferenceType, entityId: EntityId, permissions: Permission[], action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:113\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n entityName\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n entityId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n permissions\n \n Permission[]\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Map>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n sanitizeString\n \n \n \n \n \n \nsanitizeString(text: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:144\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n saveVideoConference\n \n \n \n \n \n \n \n saveVideoConference(videoConference: VideoConferenceDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:223\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n videoConference\n \n VideoConferenceDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n throwOnFeaturesDisabled\n \n \n \n \n \n \n \n throwOnFeaturesDisabled(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:130\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n hostUrl\n \n \n\n \n \n gethostUrl()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:46\n \n \n\n \n \n \n \n \n \n \n isVideoConferenceFeatureEnabled\n \n \n\n \n \n getisVideoConferenceFeatureEnabled()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:50\n \n \n\n \n \n\n \n\n\n \n import { BadRequestException, ForbiddenException, Inject, Injectable } from '@nestjs/common';\nimport {\n\tCourse,\n\tEntityId,\n\tPermission,\n\tRoleName,\n\tRoleReference,\n\tSchoolFeatures,\n\tTeamEntity,\n\tTeamUserEntity,\n\tUserDO,\n\tVideoConferenceDO,\n\tVideoConferenceOptionsDO,\n\tVideoConferenceScope,\n} from '@shared/domain';\nimport { CalendarEventDto, CalendarService } from '@shared/infra/calendar';\nimport { TeamsRepo, VideoConferenceRepo } from '@shared/repo';\nimport {\n\tAction,\n\tAuthorizableReferenceType,\n\tAuthorizationContextBuilder,\n\tAuthorizationService,\n} from '@src/modules/authorization';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserService } from '@src/modules/user';\nimport { BBBRole } from '../bbb';\nimport { ErrorStatus } from '../error/error-status.enum';\nimport { IVideoConferenceSettings, VideoConferenceOptions, VideoConferenceSettings } from '../interface';\nimport { PermissionScopeMapping } from '../mapper/video-conference.mapper';\nimport { IScopeInfo, VideoConferenceState } from '../uc/dto';\n\n@Injectable()\nexport class VideoConferenceService {\n\tconstructor(\n\t\t@Inject(VideoConferenceSettings) private readonly vcSettings: IVideoConferenceSettings,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly calendarService: CalendarService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly teamsRepo: TeamsRepo,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceRepo: VideoConferenceRepo\n\t) {}\n\n\tget hostUrl(): string {\n\t\treturn this.vcSettings.hostUrl;\n\t}\n\n\tget isVideoConferenceFeatureEnabled(): boolean {\n\t\treturn this.vcSettings.enabled;\n\t}\n\n\tcanGuestJoin(isGuest: boolean, state: VideoConferenceState, waitingRoomEnabled: boolean): boolean {\n\t\tif ((isGuest && state === VideoConferenceState.NOT_STARTED) || (isGuest && !waitingRoomEnabled)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tasync hasExpertRole(userId: EntityId, conferenceScope: VideoConferenceScope, scopeId: string): Promise {\n\t\tlet isExpert = false;\n\t\tswitch (conferenceScope) {\n\t\t\tcase VideoConferenceScope.COURSE: {\n\t\t\t\tconst user: UserDO = await this.userService.findById(userId);\n\t\t\t\tisExpert = this.existsExpertRole(user.roles);\n\t\t\t\treturn isExpert;\n\t\t\t}\n\t\t\tcase VideoConferenceScope.EVENT: {\n\t\t\t\tconst team: TeamEntity = await this.teamsRepo.findById(scopeId);\n\t\t\t\tconst teamUser: TeamUserEntity | undefined = team.teamUsers.find(\n\t\t\t\t\t(userInTeam: TeamUserEntity) => userInTeam.user.id === userId\n\t\t\t\t);\n\n\t\t\t\tif (teamUser === undefined) {\n\t\t\t\t\tthrow new ForbiddenException(ErrorStatus.UNKNOWN_USER, 'Cannot find user in team.');\n\t\t\t\t}\n\n\t\t\t\tisExpert = teamUser.role.name === RoleName.TEAMEXPERT;\n\t\t\t\treturn isExpert;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new BadRequestException('Unknown scope name.');\n\t\t}\n\t}\n\n\tprivate existsExpertRole(roles: RoleReference[]): boolean {\n\t\tconst roleNames: RoleName[] = roles.map((role: RoleReference) => role.name);\n\n\t\tconst isExpert: boolean = roleNames.includes(RoleName.EXPERT);\n\n\t\treturn isExpert;\n\t}\n\n\tasync determineBbbRole(userId: EntityId, scopeId: EntityId, scope: VideoConferenceScope): Promise {\n\t\tconst permissionMap: Map> = this.hasPermissions(\n\t\t\tuserId,\n\t\t\tPermissionScopeMapping[scope],\n\t\t\tscopeId,\n\t\t\t[Permission.START_MEETING, Permission.JOIN_MEETING],\n\t\t\tAction.read\n\t\t);\n\n\t\tif (await permissionMap.get(Permission.START_MEETING)) {\n\t\t\treturn BBBRole.MODERATOR;\n\t\t}\n\t\tif (await permissionMap.get(Permission.JOIN_MEETING)) {\n\t\t\treturn BBBRole.VIEWER;\n\t\t}\n\t\tthrow new ForbiddenException(ErrorStatus.INSUFFICIENT_PERMISSION);\n\t}\n\n\tprivate hasPermissions(\n\t\tuserId: EntityId,\n\t\tentityName: AuthorizableReferenceType,\n\t\tentityId: EntityId,\n\t\tpermissions: Permission[],\n\t\taction: Action\n\t): Map> {\n\t\tconst returnMap: Map> = new Map();\n\t\tpermissions.forEach((perm) => {\n\t\t\tconst context =\n\t\t\t\taction === Action.read ? AuthorizationContextBuilder.read([perm]) : AuthorizationContextBuilder.write([perm]);\n\t\t\tconst ret = this.authorizationService.hasPermissionByReferences(userId, entityName, entityId, context);\n\t\t\treturnMap.set(perm, ret);\n\t\t});\n\t\treturn returnMap;\n\t}\n\n\tasync throwOnFeaturesDisabled(schoolId: EntityId): Promise {\n\t\tif (!this.isVideoConferenceFeatureEnabled) {\n\t\t\tthrow new ForbiddenException(\n\t\t\t\tErrorStatus.SCHOOL_FEATURE_DISABLED,\n\t\t\t\t'feature FEATURE_VIDEOCONFERENCE_ENABLED is disabled'\n\t\t\t);\n\t\t}\n\n\t\tconst schoolFeatureEnabled: boolean = await this.schoolService.hasFeature(schoolId, SchoolFeatures.VIDEOCONFERENCE);\n\t\tif (!schoolFeatureEnabled) {\n\t\t\tthrow new ForbiddenException(ErrorStatus.SCHOOL_FEATURE_DISABLED, 'school feature VIDEOCONFERENCE is disabled');\n\t\t}\n\t}\n\n\tsanitizeString(text: string) {\n\t\treturn text.replace(/[^\\dA-Za-zÀ-ÖØ-öø-ÿ.\\-=_`´ ]/g, '');\n\t}\n\n\tasync getScopeInfo(userId: EntityId, scopeId: string, scope: VideoConferenceScope): Promise {\n\t\tswitch (scope) {\n\t\t\tcase VideoConferenceScope.COURSE: {\n\t\t\t\tconst course: Course = await this.courseService.findById(scopeId);\n\n\t\t\t\treturn {\n\t\t\t\t\tscopeId,\n\t\t\t\t\tscopeName: 'courses',\n\t\t\t\t\tlogoutUrl: `${this.hostUrl}/courses/${scopeId}?activeTab=tools`,\n\t\t\t\t\ttitle: course.name,\n\t\t\t\t};\n\t\t\t}\n\t\t\tcase VideoConferenceScope.EVENT: {\n\t\t\t\tconst event: CalendarEventDto = await this.calendarService.findEvent(userId, scopeId);\n\n\t\t\t\treturn {\n\t\t\t\t\tscopeId: event.teamId,\n\t\t\t\t\tscopeName: 'teams',\n\t\t\t\t\tlogoutUrl: `${this.hostUrl}/teams/${event.teamId}?activeTab=events`,\n\t\t\t\t\ttitle: event.title,\n\t\t\t\t};\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new BadRequestException('Unknown scope name');\n\t\t}\n\t}\n\n\tasync getUserRoleAndGuestStatusByUserIdForBbb(\n\t\tuserId: string,\n\t\tscopeId: EntityId,\n\t\tscope: VideoConferenceScope\n\t): Promise {\n\t\tconst scopeInfo: IScopeInfo = await this.getScopeInfo(userId, scopeId, scope);\n\n\t\tconst role: BBBRole = await this.determineBbbRole(userId, scopeInfo.scopeId, scope);\n\n\t\tconst isBbbGuest: boolean = await this.hasExpertRole(userId, scope, scopeInfo.scopeId);\n\n\t\treturn { role, isGuest: isBbbGuest };\n\t}\n\n\tasync findVideoConferenceByScopeIdAndScope(\n\t\tscopeId: EntityId,\n\t\tscope: VideoConferenceScope\n\t): Promise {\n\t\tconst videoConference: VideoConferenceDO = await this.videoConferenceRepo.findByScopeAndScopeId(scopeId, scope);\n\n\t\treturn videoConference;\n\t}\n\n\tasync createOrUpdateVideoConferenceForScopeWithOptions(\n\t\tscopeId: EntityId,\n\t\tscope: VideoConferenceScope,\n\t\toptions: VideoConferenceOptions\n\t): Promise {\n\t\tlet vcDo: VideoConferenceDO;\n\n\t\t// try and catch based on legacy behavior\n\t\ttry {\n\t\t\tvcDo = await this.findVideoConferenceByScopeIdAndScope(scopeId, scope);\n\n\t\t\tvcDo.options = new VideoConferenceOptionsDO(options);\n\t\t} catch (error) {\n\t\t\tvcDo = new VideoConferenceDO({\n\t\t\t\ttarget: scopeId,\n\t\t\t\ttargetModel: scope,\n\t\t\t\toptions: new VideoConferenceOptionsDO(options),\n\t\t\t});\n\t\t}\n\n\t\tvcDo = await this.saveVideoConference(vcDo);\n\n\t\treturn vcDo;\n\t}\n\n\tprivate async saveVideoConference(videoConference: VideoConferenceDO): Promise {\n\t\treturn this.videoConferenceRepo.save(videoConference);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VisibilitySettingsResponse.html":{"url":"classes/VisibilitySettingsResponse.html","title":"class - VisibilitySettingsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VisibilitySettingsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/visibility-settings.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n publishedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: VisibilitySettingsResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/visibility-settings.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n VisibilitySettingsResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n publishedAt\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/visibility-settings.response.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class VisibilitySettingsResponse {\n\tconstructor({ publishedAt }: VisibilitySettingsResponse) {\n\t\tthis.publishedAt = publishedAt;\n\t}\n\n\t@ApiPropertyOptional()\n\tpublishedAt?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"dependencies.html":{"url":"dependencies.html","title":"package-dependencies - dependencies","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n Dependencies\n \n \n \n @aws-sdk/lib-storage : ^3.100.0\n \n @feathersjs/authentication : ^4.5.16\n \n @feathersjs/authentication-local : ^4.5.11\n \n @feathersjs/configuration : ^4.5.11\n \n @feathersjs/errors : ^4.5.11\n \n @feathersjs/express : ^4.5.11\n \n @feathersjs/feathers : ^4.5.11\n \n @golevelup/nestjs-rabbitmq : ^4.0.0\n \n @hendt/xml2json : ^1.0.3\n \n @hpi-schul-cloud/commons : ^1.3.4\n \n @keycloak/keycloak-admin-client : ^21.1.2\n \n @lumieducation/h5p-server : ^9.2.0\n \n @mikro-orm/core : ^5.4.2\n \n @mikro-orm/mongodb : ^5.4.2\n \n @mikro-orm/nestjs : ^5.2.1\n \n @nestjs/axios : ^3.0.0\n \n @nestjs/cache-manager : ^2.1.0\n \n @nestjs/common : ^10.2.4\n \n @nestjs/config : ^3.0.1\n \n @nestjs/core : ^10.2.4\n \n @nestjs/jwt : ^10.1.1\n \n @nestjs/microservices : ^10.2.4\n \n @nestjs/passport : ^10.0.1\n \n @nestjs/platform-express : ^10.2.4\n \n @nestjs/swagger : ^7.1.10\n \n @types/cache-manager-redis-store : ^2.0.1\n \n @types/connect-redis : ^0.0.19\n \n @types/gm : ^1.25.1\n \n @types/ldapjs : ^2.2.5\n \n @types/redis : ^2.8.32\n \n @types/xml2js : ^0.4.11\n \n adm-zip : ^0.5.9\n \n ajv : ^8.8.2\n \n amqp-connection-manager : ^3.2.2\n \n amqplib : ^0.8.0\n \n arg : ^5.0.0\n \n args : ^5.0.1\n \n async : ^3.2.2\n \n async-mutex : ^0.4.0\n \n aws-sdk : ^2.1375.0\n \n axios : ^1.5.0\n \n axios-mock-adapter : ^1.21.2\n \n bbb-promise : ^1.2.0\n \n bcryptjs : *\n \n body-parser : ^1.15.2\n \n bson : ^4.6.0\n \n busboy : ^1.6.0\n \n cache-manager : ^2.9.0\n \n cache-manager-redis-store : ^2.0.0\n \n chalk : ^5.0.0\n \n class-transformer : ^0.4.0\n \n class-validator : ^0.14.0\n \n client-oauth2 : ^4.2.5\n \n commander : ^8.1.0\n \n compression : ^1.6.2\n \n concurrently : ^6.0.0\n \n connect-redis : ^6.1.3\n \n cors : ^2.8.1\n \n cross-env : ^7.0.0\n \n crypto-js : ^4.0.0\n \n disposable-email-domains : ^1.0.56\n \n es6-promisify : ^7.0.0\n \n express : ^4.14.0\n \n express-openapi-validator : ^4.13.2\n \n express-session : ^1.17.3\n \n feathers-hooks-common : ^5.0.3\n \n feathers-mongoose : ^6.3.0\n \n feathers-swagger : ^3.0.0\n \n freeport : ^1.0.5\n \n gm : ^1.25.0\n \n html-entities : ^2.3.2\n \n jose : ^1.28.1\n \n jsonwebtoken : ^9.0.0\n \n jwks-rsa : ^2.0.5\n \n ldapjs : git://github.com/hpi-schul-cloud/node-ldapjs.git\n \n lodash : ^4.17.19\n \n migrate-mongoose : ^4.0.0\n \n mixwith : ^0.1.1\n \n moment : ^2.19.2\n \n mongodb-uri : ^0.9.7\n \n mongoose : ^5.13.20\n \n mongoose-delete : ^0.5.4\n \n mongoose-id-validator : ^0.6.0\n \n mongoose-lean-virtuals : ^0.8.1\n \n mongoose-shortid-nodeps : git://github.com/leeroybrun/mongoose-shortid-nodeps.git\n \n moodle-client : ^0.5.2\n \n nanoid : ^3.3.4\n \n nest-winston : ^1.9.4\n \n nestjs-console : ^9.0.0\n \n oauth-1.0a : ^2.2.6\n \n p-limit : ^3.1.0\n \n papaparse : ^5.1.1\n \n passport : ^0.6.0\n \n passport-custom : ^1.1.1\n \n passport-jwt : ^4.0.1\n \n passport-local : ^1.0.0\n \n prom-client : ^13.1.0\n \n qs : ^6.9.7\n \n read-chunk : ^3.0.0\n \n redis : ^3.0.0\n \n reflect-metadata : ^0.1.13\n \n request-promise-core : ^1.1.4\n \n request-promise-native : ^1.0.3\n \n response-time : ^2.3.2\n \n rimraf : ^3.0.2\n \n rss-parser : ^3.13.0\n \n rxjs : ^7.3.1\n \n sanitize-html : ^2.1.0\n \n serve-favicon : ^2.3.2\n \n service : ^0.1.4\n \n socketio-file-upload : ^0.7.0\n \n source-map-support : ^0.5.19\n \n stream-mime-type : ^2.0.0\n \n strip-bom : ^4.0.0\n \n swagger-ui-dist : ^4.18.2\n \n swagger-ui-express : ^4.1.6\n \n tiny-async-pool : ^1.2.0\n \n universal-analytics : ^0.5.1\n \n urlsafe-base64 : ^1.0.0\n \n uuid : ^8.3.0\n \n winston : ^3.8.2\n \n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"miscellaneous/functions.html":{"url":"miscellaneous/functions.html","title":"miscellaneous-functions - functions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Miscellaneous\n Functions\n\n\n\n Index\n \n \n \n \n \n \n accountIdmToDtoMapperFactory   (apps/.../account.module.ts)\n \n \n bootstrap   (apps/.../files-storage-consumer.app.ts)\n \n \n bootstrap   (apps/.../files-storage.app.ts)\n \n \n bootstrap   (apps/.../fwu-learning-contents.app.ts)\n \n \n bootstrap   (apps/.../h5p-editor.app.ts)\n \n \n bootstrap   (apps/.../management.app.ts)\n \n \n bootstrap   (apps/.../server.app.ts)\n \n \n createCopyFiles   (apps/.../path.ts)\n \n \n createFileRecord   (apps/.../file-record.ts)\n \n \n createIdentifier   (apps/.../utils.ts)\n \n \n createPath   (apps/.../path.ts)\n \n \n createPreviewDirectoryPath   (apps/.../path.ts)\n \n \n createPreviewFilePath   (apps/.../path.ts)\n \n \n createPreviewNameHash   (apps/.../file-name.ts)\n \n \n DecodeHtmlEntities   (apps/.../decode-html-entities.transformer.ts)\n \n \n encryptionProviderFactory   (apps/.../encryption.module.ts)\n \n \n generateFederalStates   (apps/.../federalstates.ts)\n \n \n generateRole   (apps/.../roles.ts)\n \n \n generateSchools   (apps/.../schools.ts)\n \n \n generateSchoolYears   (apps/.../schoolyears.ts)\n \n \n generateSeedData   (apps/.../generateSeedData.ts)\n \n \n generateSystems   (apps/.../systems.ts)\n \n \n getPaths   (apps/.../path.ts)\n \n \n getResolvedValues   (apps/.../promise.ts)\n \n \n hasDuplicateName   (apps/.../file-name.ts)\n \n \n isFulfilled   (apps/.../promise.ts)\n \n \n isLesson   (apps/.../lesson.entity.ts)\n \n \n isTask   (apps/.../task.entity.ts)\n \n \n markForDelete   (apps/.../file-record.ts)\n \n \n PrivacyProtect   (apps/.../privacy-protect.validator.ts)\n \n \n RequestTimeout   (apps/.../timeout.decorator.ts)\n \n \n resolveFileNameDuplicates   (apps/.../file-name.ts)\n \n \n SanitizeHtml   (apps/.../sanitize-html.transformer.ts)\n \n \n SingleValueToArrayTransformer   (apps/.../single-value-to-array.transformer.ts)\n \n \n StringToBoolean   (apps/.../string-to-boolean.transformer.ts)\n \n \n unmarkForDelete   (apps/.../file-record.ts)\n \n \n \n \n \n \n\n\n apps/server/src/modules/account/account.module.ts\n \n \n \n \n \n \n \n accountIdmToDtoMapperFactory\n \n \n \n \n \n \naccountIdmToDtoMapperFactory(configService: ConfigService)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n configService\n \n ConfigService\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountIdmToDtoMapper\n\n \n \n \n \n \n \n \n \n apps/server/src/apps/files-storage-consumer.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/files-storage.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/fwu-learning-contents.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/h5p-editor.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/management.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/server.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/modules/files-storage/helper/path.ts\n \n \n \n \n \n \n \n createCopyFiles\n \n \n \n \n \n \ncreateCopyFiles(sourceFile: FileRecord, targetFile: FileRecord)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sourceFile\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n targetFile\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyFiles\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createPath\n \n \n \n \n \n \ncreatePath(schoolId: EntityId, fileRecordId: EntityId)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n fileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createPreviewDirectoryPath\n \n \n \n \n \n \ncreatePreviewDirectoryPath(schoolId: EntityId, sourceFileRecordId: EntityId)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n sourceFileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createPreviewFilePath\n \n \n \n \n \n \ncreatePreviewFilePath(schoolId: EntityId, hash: string, sourceFileRecordId: EntityId)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n hash\n \n string\n \n\n \n No\n \n\n\n \n \n sourceFileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getPaths\n \n \n \n \n \n \ngetPaths(fileRecords)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n fileRecords\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string[]\n\n \n \n \n \n \n \n \n \n apps/server/src/modules/files-storage/helper/file-record.ts\n \n \n \n \n \n \n \n createFileRecord\n \n \n \n \n \n \ncreateFileRecord(name: string, size: number, mimeType: string, params: FileRecordParams, userId: string)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n size\n \n number\n \n\n \n No\n \n\n\n \n \n mimeType\n \n string\n \n\n \n No\n \n\n\n \n \n params\n \n FileRecordParams\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n markForDelete\n \n \n \n \n \n \nmarkForDelete(fileRecords)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n fileRecords\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecord[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n unmarkForDelete\n \n \n \n \n \n \nunmarkForDelete(fileRecords)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n fileRecords\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecord[]\n\n \n \n \n \n \n \n \n \n apps/server/src/modules/learnroom/common-cartridge/utils.ts\n \n \n \n \n \n \n \n createIdentifier\n \n \n \n \n \n \ncreateIdentifier(id?)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n id\n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n apps/server/src/modules/files-storage/helper/file-name.ts\n \n \n \n \n \n \n \n createPreviewNameHash\n \n \n \n \n \n \ncreatePreviewNameHash(fileRecordId: EntityId, previewParams: PreviewParams)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n previewParams\n \n PreviewParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasDuplicateName\n \n \n \n \n \n \nhasDuplicateName(fileRecords, name: string)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecords\n \n \n\n \n No\n \n\n\n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecord | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n resolveFileNameDuplicates\n \n \n \n \n \n \nresolveFileNameDuplicates(filename: string, fileRecords)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n filename\n \n string\n \n\n \n No\n \n\n\n \n \n fileRecords\n \n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/transformer/decode-html-entities.transformer.ts\n \n \n \n \n \n \n \n DecodeHtmlEntities\n \n \n \n \n \n \nDecodeHtmlEntities()\n \n \n\n\n\n\n \n \n Decorator to transform a string value so that all contained html entities are decoded.\nThe purpose of this decorator is to revert html entity encodings that come from generic\ninput sanitization in the legacy server. We don't need this encoding in the output of our API\nbecause in common template systems (e.g handlebars and vue.js) strings are generally\nescaped for the output. That leads to wrong text output because html entities are rendered \"as is\"\nwith all characters encoded again.\nExamples:\n\nwhen text = \"X & Y\" and template is {{ text }} it is rendered as \"X & Y\" => wrong\nwhen text = \"X & Y\" and template is {{ text }} it is rendered as \"X & Y\" => good\n\n(both for vue.js and handlebars)\nUse this decorator in your response DTO wherever redundant html encoding from the legacy server has to be reverted.\nIMPORTANT: Should be removed later when sanitization works properly\n\n\n \n \n \n Returns : PropertyDecorator\n\n \n \n the string with decoded html entities\n\n \n \n \n \n \n apps/server/src/shared/infra/encryption/encryption.module.ts\n \n \n \n \n \n \n \n encryptionProviderFactory\n \n \n \n \n \n \nencryptionProviderFactory(configService: ConfigService, logger: LegacyLogger, aesKey: string)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n configService\n \n ConfigService\n \n\n \n No\n \n\n\n \n \n logger\n \n LegacyLogger\n \n\n \n No\n \n\n\n \n \n aesKey\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/management/seed-data/federalstates.ts\n \n \n \n \n \n \n \n generateFederalStates\n \n \n \n \n \n \ngenerateFederalStates()\n \n \n\n\n\n\n \n \n apps/server/src/modules/management/seed-data/roles.ts\n \n \n \n \n \n \n \n generateRole\n \n \n \n \n \n \ngenerateRole(localRoleSeedData?)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n localRoleSeedData\n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/management/seed-data/schools.ts\n \n \n \n \n \n \n \n generateSchools\n \n \n \n \n \n \ngenerateSchools(entities)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n entities\n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/management/seed-data/schoolyears.ts\n \n \n \n \n \n \n \n generateSchoolYears\n \n \n \n \n \n \ngenerateSchoolYears()\n \n \n\n\n\n\n \n \n apps/server/src/modules/management/seed-data/generateSeedData.ts\n \n \n \n \n \n \n \n generateSeedData\n \n \n \n \n \n \ngenerateSeedData(injectEnvVars)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n injectEnvVars\n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/management/seed-data/systems.ts\n \n \n \n \n \n \n \n generateSystems\n \n \n \n \n \n \ngenerateSystems(injectEnvVars)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n injectEnvVars\n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/files-storage/helper/promise.ts\n \n \n \n \n \n \n \n getResolvedValues\n \n \n \n \n \n \ngetResolvedValues(result)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n result\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isFulfilled\n \n \n \n \n \n \nisFulfilled(input: PromiseSettledResult)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n PromiseSettledResult\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PromiseFulfilledResult\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n \n \n \n \n \n \n isLesson\n \n \n \n \n \n \nisLesson(reference)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n reference\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LessonEntity\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/domain/entity/task.entity.ts\n \n \n \n \n \n \n \n isTask\n \n \n \n \n \n \nisTask(reference)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n reference\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Task\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/validator/privacy-protect.validator.ts\n \n \n \n \n \n \n \n PrivacyProtect\n \n \n \n \n \n \nPrivacyProtect(validationOptions?: ValidationOptions)\n \n \n\n\n\n\n \n \n Set privacy protect context attribute in validation options.\nThis can be used to detect if a property value should be obfuscated in error logs or responses.\nsee e.g. ApiValidationError\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n validationOptions\n \n ValidationOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : PropertyDecorator\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/common/decorators/timeout.decorator.ts\n \n \n \n \n \n \n \n RequestTimeout\n \n \n \n \n \n \nRequestTimeout(ms: number)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ms\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/transformer/sanitize-html.transformer.ts\n \n \n \n \n \n \n \n SanitizeHtml\n \n \n \n \n \n \nSanitizeHtml(inputFormat?: InputFormat)\n \n \n\n\n\n\n \n \n Decorator to sanitize a string by removing unwanted HTML.\nPlace after IsString decorator.\nBy default, it will return a plain text\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n inputFormat\n \n InputFormat\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : PropertyDecorator\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/transformer/single-value-to-array.transformer.ts\n \n \n \n \n \n \n \n SingleValueToArrayTransformer\n \n \n \n \n \n \nSingleValueToArrayTransformer()\n \n \n\n\n\n\n \n \n Decorator to transform a given value to be an array if the value is not null or undefined.\nUsed to ensure an array even if only one parameter is given via rest which would set the value not as array.\n\n\n \n \n \n Returns : PropertyDecorator\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/transformer/string-to-boolean.transformer.ts\n \n \n \n \n \n \n \n StringToBoolean\n \n \n \n \n \n \nStringToBoolean()\n \n \n\n\n\n\n \n \n Decorator to transform a boolish string value to a boolean.\nAccepts: '1', 'true', '0', 'false' with type string only.\nPlace after IsBoolean decorator.\n\n\n \n \n \n Returns : PropertyDecorator\n\n \n \n \n \n \n \n \n \n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"index.html":{"url":"index.html","title":"getting-started - index","body":"\n \n\nSchul-Cloud Server\n\n\n\nNestJS application\n\nFind the NestJS applications documentation of this repository at GitHub pages. It contains information about\n\n\nsetup & preconditions\nstarting the application\ntesting\ntools setup (VSCode, Git)\narchitecture\n\nBased on NestJS\nFeathers application\nThis is legacy part of the application!\nBased on Node.js and Feathers\nApplication seperation\nIn order to seperate NestJS and Feathers each application runs in its own express instance. These express instances are then mounted on seperate paths under a common root express instance.\nRoot-Express-App \n├─ api/v1/ --> Feathers-App\n├─ api/v3/ --> NestJS-AppThis ensures that each application can run its own middleware stack for authentication, error handling, logging etc.\nThe mount paths don't have any impact on the routes inside of the applications, e.g. the path /api/v3/news will translate to the inner path /news. That means that in terms of route matching each child application doesn't have to take any measures regarding the path prefix. It simply works as it was mounted to /.\nHowever note that when URLs are generated inside a child application the path prefix has to be prepended. Only then the generated URLs match the appropriate child application, e.g. the path /news has to be provided as the external path /api/v3/news.\nIt is possible (not very likely) that the server api is called with URLs that use the old schema without a path prefix. As a safety net for that we additionally mount the Feathers application as before under the paths:\n\n/ - for internal calls\n/api - for external calls\n\nWhen these paths are accessed an error with context [DEPRECATED-PATH] is logged.\nSetup\nThe whole application setup with all dependencies can be found in System Architecture. It contains information about how different application components are connected to each other.\nDebugger Configuration in Visual Studio Code\nFor more details how to set up Visual Studio Code, read this document.\nHow to name your branch and create a pull request (PR)\n\nTake the Ticket Number from JIRA (ticketsystem.dbildungscloud.de), e.g. SC-999\nName the feature branch beginning with Ticket Number, all words separated by dash \"-\", e.g. feature/SC-999-fantasy-problem\nCreate a PR on branch develop containing the Ticket Number in PR title\nKeep the WIP label as long as this PR is in development, complete PR checklist (is automatically added), keep or increase code test coverage, and pass all tests before you remove the WIP label. Reviewers will be added automatically.\n\nCommitting\nDefault branch: main\n\nGo into project folder\nCheckout to develop branch (or clone for the first time)\nRun git pull\nCreate a branch for your new feature named feature/BC-Ticket-ID-Description\nRun the tests (see above)\nCommit with a meaningful commit message(!) even at 4 a.m. and not stuff like \"dfsdfsf\"\nStart a pull request (see above) to branch develop to merge your changes\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"license.html":{"url":"license.html","title":"getting-started - license","body":"\n \n\n GNU AFFERO GENERAL PUBLIC LICENSE\n Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n Preamble The GNU Affero General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n When we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n Developers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n A secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate. Many developers of free software are heartened and\nencouraged by the resulting cooperation. However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n The GNU Affero General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community. It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server. Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n An older license, called the Affero General Public License and\npublished by Affero, was designed to accomplish similar goals. This is\na different license, not a version of the Affero GPL, but Affero has\nreleased a new version of the Affero GPL which permits relicensing under\nthis license.\n The precise terms and conditions for copying, distribution and\nmodification follow.\n TERMS AND CONDITIONS\nDefinitions.\n\n \"This License\" refers to version 3 of the GNU Affero General Public License.\n \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n \"The Program\" refers to any copyrightable work licensed under this\nLicense. Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n A \"covered work\" means either the unmodified Program or a work based\non the Program.\n To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy. Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies. Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License. If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\nSource Code.\n\n The \"source code\" for a work means the preferred form of the work\nfor making modifications to it. \"Object code\" means any non-source\nform of a work.\n A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form. A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work. For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n The Corresponding Source for a work in source code form is that\nsame work.\n\nBasic Permissions.\n\n All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met. This License explicitly affirms your unlimited\npermission to run the unmodified Program. The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force. You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n Conveying under any other circumstances is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\nProtecting Users' Legal Rights From Anti-Circumvention Law.\n\n No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\nConveying Verbatim Copies.\n\n You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\nConveying Modified Source Versions.\n\n You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\na) The work must carry prominent notices stating that you modified\nit, and giving a relevant date.\n\nb) The work must carry prominent notices stating that it is\nreleased under this License and any conditions added under section\n7. This requirement modifies the requirement in section 4 to\n\"keep intact all notices\".\n\nc) You must license the entire work, as a whole, under this\nLicense to anyone who comes into possession of a copy. This\nLicense will therefore apply, along with any applicable section 7\nadditional terms, to the whole of the work, and all its parts,\nregardless of how they are packaged. This License gives no\npermission to license the work in any other way, but it does not\ninvalidate such permission if you have separately received it.\n\nd) If the work has interactive user interfaces, each must display\nAppropriate Legal Notices; however, if the Program has interactive\ninterfaces that do not display Appropriate Legal Notices, your\nwork need not make them do so. A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit. Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\nConveying Non-Source Forms.\n\n You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\na) Convey the object code in, or embodied in, a physical product\n(including a physical distribution medium), accompanied by the\nCorresponding Source fixed on a durable physical medium\ncustomarily used for software interchange.\n\nb) Convey the object code in, or embodied in, a physical product\n(including a physical distribution medium), accompanied by a\nwritten offer, valid for at least three years and valid for as\nlong as you offer spare parts or customer support for that product\nmodel, to give anyone who possesses the object code either (1) a\ncopy of the Corresponding Source for all the software in the\nproduct that is covered by this License, on a durable physical\nmedium customarily used for software interchange, for a price no\nmore than your reasonable cost of physically performing this\nconveying of source, or (2) access to copy the\nCorresponding Source from a network server at no charge.\n\nc) Convey individual copies of the object code with a copy of the\nwritten offer to provide the Corresponding Source. This\nalternative is allowed only occasionally and noncommercially, and\nonly if you received the object code with such an offer, in accord\nwith subsection 6b.\n\nd) Convey the object code by offering access from a designated\nplace (gratis or for a charge), and offer equivalent access to the\nCorresponding Source in the same way through the same place at no\nfurther charge. You need not require recipients to copy the\nCorresponding Source along with the object code. If the place to\ncopy the object code is a network server, the Corresponding Source\nmay be on a different server (operated by you or a third party)\nthat supports equivalent copying facilities, provided you maintain\nclear directions next to the object code saying where to find the\nCorresponding Source. Regardless of what server hosts the\nCorresponding Source, you remain obligated to ensure that it is\navailable for as long as needed to satisfy these requirements.\n\ne) Convey the object code using peer-to-peer transmission, provided\nyou inform other peers where the object code and Corresponding\nSource of the work are being offered to the general public at no\ncharge under subsection 6d. A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling. In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product. A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source. The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed. Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\nAdditional Terms.\n\n \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law. If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit. (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.) You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\na) Disclaiming warranty or limiting liability differently from the\nterms of sections 15 and 16 of this License; or\n\nb) Requiring preservation of specified reasonable legal notices or\nauthor attributions in that material or in the Appropriate Legal\nNotices displayed by works containing it; or\n\nc) Prohibiting misrepresentation of the origin of that material, or\nrequiring that modified versions of such material be marked in\nreasonable ways as different from the original version; or\n\nd) Limiting the use for publicity purposes of names of licensors or\nauthors of the material; or\n\ne) Declining to grant rights under trademark law for use of some\ntrade names, trademarks, or service marks; or\n\nf) Requiring indemnification of licensors and authors of that\nmaterial by anyone who conveys the material (or modified versions of\nit) with contractual assumptions of liability to the recipient, for\nany liability that these contractual assumptions directly impose on\nthose licensors and authors. All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10. If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term. If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\nTermination.\n\n You may not propagate or modify a covered work except as expressly\nprovided under this License. Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\nAcceptance Not Required for Having Copies.\n\n You are not required to accept this License in order to receive or\nrun a copy of the Program. Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance. However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work. These actions infringe copyright if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\nAutomatic Licensing of Downstream Recipients.\n\n Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License. You are not responsible\nfor enforcing compliance by third parties with this License.\n An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License. For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\nPatents.\n\n A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The\nwork thus licensed is called the contributor's \"contributor version\".\n A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version. For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement). To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License. You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\nNo Surrender of Others' Freedom.\n\n If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all. For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\nRemote Network Interaction; Use with the GNU General Public License.\n\n Notwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software. This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work. The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\nRevised Versions of this License.\n\n The Free Software Foundation may publish revised and/or new versions of\nthe GNU Affero General Public License from time to time. Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n Each version is given a distinguishing version number. If the\nProgram specifies that a certain numbered version of the GNU Affero General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation. If the Program does not specify a version number of the\nGNU Affero General Public License, you may choose any version ever published\nby the Free Software Foundation.\n If the Program specifies that a proxy can decide which future\nversions of the GNU Affero General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n Later license versions may give you additional or different\npermissions. However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\nDisclaimer of Warranty.\n\n THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\nLimitation of Liability.\n\n IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\nInterpretation of Sections 15 and 16.\n\n If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n END OF TERMS AND CONDITIONS\n\n How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n To do so, attach the following notices to the program. It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\nCopyright (C) \n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published\nby the Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program. If not, see .Also add information on how to contact you by electronic and paper mail.\n If your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source. For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code. There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU AGPL, see\nhttp://www.gnu.org/licenses/.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules.html":{"url":"modules.html","title":"modules - modules","body":"\n \n\n\n\n\n Modules\n\n\n \n \n \n \n AccountApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n AccountModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n AntivirusModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n AuthenticationApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n AuthenticationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n AuthorizationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n BoardApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n BoardModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CacheWrapperModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CalendarModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ClassModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CollaborativeStorageAdapterModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CollaborativeStorageModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CommonToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ConsoleWriterModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ContextExternalToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CopyHelperModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CoreModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n DatabaseManagementModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n EncryptionModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ErrorModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ExternalToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FeathersModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageAMQPModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageClientModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FileSystemModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FwuLearningContentsModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FwuLearningContentsTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n GroupApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n GroupModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n H5PEditorModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n H5PEditorTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n IdentityManagementModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ImportUserModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n InterceptorModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n KeycloakAdministrationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n KeycloakConfigurationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n KeycloakModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LearnroomApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LearnroomModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LegacySchoolApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LegacySchoolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LessonApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LessonModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LoggerModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LtiToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n MailModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n ManagementModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ManagementServerModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ManagementServerTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n MongoMemoryDatabaseModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n NewsModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthProviderApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthProviderModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthProviderServiceModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ProvisioningModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n PseudonymModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n RabbitMQWrapperModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n RabbitMQWrapperTestModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n RedisModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n RocketChatModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n RoleModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n S3ClientModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n SchoolExternalToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ServerConsoleModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ServerModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ServerTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n SharingApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n SharingModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n SystemApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n SystemModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n TaskApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n TaskModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n TeamsApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n TeamsModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ToolApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ToolConfigModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n ToolLaunchModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n UserApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n UserLoginMigrationApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n UserLoginMigrationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n UserModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ValidationModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n VideoConferenceApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n VideoConferenceModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"properties.html":{"url":"properties.html","title":"package-properties - properties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n Properties\n \n \n \n Description : dBildungscloud server\n \n Keywords : feathers, nest, jest, domain driven design\n \n Homepage : https://dBildungscloud.de/\n \n Bugs : \n \n License : AGPL-3.0\n \n Repository : \n \n Author : dBildungscloud Team\n \n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"todo.html":{"url":"todo.html","title":"getting-started - todo","body":"\n \n\nTechnical TODO around Nest Introduction\nSUGGESTED\n\nfilter logs by request with reflect-metadata (see mikroorm em setup)\ndisable Document from window\nfind a name for base entity id type\nfind a name for base entity class\ndecide if we want to use our entity id type in all layers (also in dtos etc.)\nuse index.ts files to bundle exports - we could use path names for imports then, e.g. @shared/domain\ncheck how we can implement mandatory/optional fields in dtos\nshould we use Expose() as default in dtos?\nin the controller we have to prohibit serialization of properties that have no @EXPOSE\nfind the best way ORM entity discovery\ndecide where to put domain interfaces (directory)\nhow can we log validation errors during development?\nsanitizer\nremove non-node async library\nfix async cleanup & remove timeout in tests\ntest object creator for nest entities\nenable log only for failed tests: https://stackoverflow.com/a/61909588\nremove mongoose history (keep one)\nremove custom npm packages (ldap, ...)\nAPI default tests to extend: auth required, fails without/succeeds with\n\nACCEPTED\n\ndocumentation\n\nentity constructor\nem to be used in repositories only (!!!)\n\n\nload/perf test\n\ndisable legacy ts support (app, tests)\n\nfix .env/config for windows\n\n\nMERGE\n\napi path prefix cleanup: remove middleware and multiple path mounts, sync with nest\nuser module stucture\nsingle domain: shared entity (main.ts), shared repository \nrequest.user.user in jwt strategy\nremove outdated sorting.ts \nremove default launch/settings json files, apply them\nfix https://github.com/hpi-schul-cloud/schulcloud-server/pull/2729#pullrequestreview-699615164\n\nSELECTED\n\ntest shared / core module \n\nasync test fixes (remove this.timeout and red promise chains)\n\ndb configuration\n\nkeep mongoose options as mongo options\npovider for mikroorm options and db url\ntest db provider\nentity discovery\ncheck indexes in mikroorm: when are they updated?\nteardown (test, server module, main.ts)\nreplikaset for test module\nentity discovery\n\n\nnews\n\nuc cleanup: 2auth, visibilities\ndocument best practices/layers/orm\n\n\ncontext: user-/request-context (see mikroorm/asynclocalstorage)\n\n\nDONE\n\ncheck build & start for production with ops\nfix jest, linter, ...\ninject APP_FILTER (exception handler) and APP_INTERCEPTOR (logger), see core module\ncustom error handling (log/response), see global-error.filter.ts\nwatch docs should hot reload on md file change\n404 error handling in feathers has to be replaced (tests too). better: have nest before feathers... but seems not to be working\nremove mongoose\npublish documentation, see https://hpi-schul-cloud.github.io/schulcloud-server/overview.html\nfix all tests (nest/legacy)\nremove legacy scripts from package json (except tests) goal: have separated tests (legacy/nest) but only execute the nest app\nusing legacy database connection string\nv3 with/-out slash: diffenrent routes should respond with different result (/v3 is a resssource, /v3/ === /v3/index)\nvscode/lauch files: we put only default files into the repo\nnaming of dtos and dto-files: api vs domain, we leave out \"dto\" suffix for simplicity (we know that they are dtos) and instead append a specific suffix:\ne.g.\napi: , , \ndomain: , \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application.html":{"url":"additional-documentation/nestjs-application.html","title":"additional-page - NestJS Application","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHPI Schul-Cloud NestJS server\nThis application extends the existing server-application based on feathers and express by introducing dependency injection supporting unit testing and modularization, the possibility to develop against interfaces, and start implementation of modules using TypeScript.\nYou find the whole documentation published as GitHub Page\nRequirements\n\nNode.js (see .nvmrc for version)\nMongoDB (4.x)\nRabbitMQ (configure using RABBITMQ_URL, see default.schema.json)\nS3 Object Storage e.g. MinIO locally\n\npreconditions\n\nHave a MongoDB started, run mongod\nHave some seed data in database, use npm run setup to reset the db and apply seed data\nHave RabbitMQ started, run docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:3.8.9-management. This starts RabbitMQ on port 5672 and a web admin console at localhost:15672 (use guest:guest to login).\nHave MinIO (S3 compatible object storage), run [optional if you need files-storage module]\n\ndocker run \\\n --name minioS3storage \\\n -p 9000:9000 \\\n -p 9001:9001 \\\n -e \"MINIO_ROOT_USER=`miniouser`\" \\\n -e \"MINIO_ROOT_PASSWORD=miniouser\" \\\n quay.io/minio/minio server /data --console-address \":9001\"\nHave ErWIn-IDM started [currently not needed, but will be mandatory in the future]. For more information look here.\n\nChange directory to the schulcloud-server root folder. Execute following command to setup the ErWIn-IDM container:\ndocker run \\\n --name erwinidm \\\n -p 8080:8080 \\\n -p 8443:8443 \\\n -v \"$PWD/backup/idm/keycloak:/tmp/realms\" \\\n ghcr.io/hpi-schul-cloud/erwin-idm/dev:latest \\\n \"&& /opt/keycloak/bin/kc.sh import --dir /tmp/realms\"To add seed data into ErWIn-IDM, use npm run setup:idm to reset and apply seed data.\nSee ErWIn-IDM specific documentation to learn how to add the ErWIn-IDM identity broker feature.\n\nAdd secrets to systems (optional)\n\nThe systems of the seed data do not contain any secrets, so connecting to those systems will fail.\nYou can add these secrets by putting them into your env vars. E.g. if you add SANIS_CLIENT_ID= into your .env file, the secret will be written into the db, when you run the database setup. You need to add the env var AES_KEY as well to encrypt those secrets in the DB.\nThe real secrets can be found in the password store.\nWhile exporting the systems to JSON the secrets will be replaced by placeholders following the pattern _. So the system with alias \"sanis\" and the secret property \"clientId\" will be replaced by \"SANIS_CLIENT_ID\"\nHow to start the application\nBeside existing scripts, for the nestJS application the following scripts have been added. Try not changing the scripts as they should match what NestJS defines by default. Execute npm run ...\n\nnest:prebuild remove existing data from previous build\nnest:build compile the applications typescript ressources from apps/server to dist folder, keeps legacy js-code where it is\nnest:build:all currently executes nest:build, could additionaly build static assets\nnest:start starts the nest application on localhost:3030\nnest:start:dev run application without build from sources in dev-mode with hot-reload\nnest:start:debug run application in dev-mode with hot-reload and debug port opened on port :9229\nnest:start:prod start applicaiton in production mode, requires nest:build to be executed beforehand\n\nIt exist a file storage module. It is started as a microservice on port :4444\n\nnest:start:files-storage starts the nest file storage\nnest:start:files-storage:dev run file storage without build from sources in dev-mode with hot-reload\nnest:start:files-storage:debug run file storage in dev-mode with hot-reload and debug port opened on port :9229\nnest:start:files-storage:prod start file storage in production mode, requires nest:build to be executed beforehand\n\nHow to build and serve the documentation\n\nnest:docs:build builds code documentation and module relations into /documentation folder\nnest:docs:serve builds code documentation and module relations into /documentation folder and serves it on port :8080 with hot reload on changes\n\nHow to start the server console\nThe console offers management capabilities of the application.\n\nnest:console after nest:build in production or\nnest:console:dev for development\n\nTo run a specific command run npm run nest:console:dev -- command . The --is required for npm to send params to the console. Use --helpto get an overview about existing commands.\nHow to test the nest-application with jest\nNestJS must not use _.test.[ts|js] as filename but instead either *.spec.ts for unit tests or *.api.spec.ts API tests. This ensures legacy/feathers/mocha tests can be separated from jest test suites.\nThe application must pass the following statement which executes separate checks:\n\nnest:test executes all jest (NestJS) tests with coverage and eslint\n\nTo test a subset, use\n\nnest:test:all execute unit and API tests\n\nnest:test:api execute API tests only\n\nnest:test:unit execute unit tests only\n\nnest:test:cov executes all jest tests with coverage check\n\nnest:test:watch executes changed tests again on save\n\nnest:test:debug executes tests with debugging\n\nnest:lint run eslint to report linter issues and apply formatting\n\nnest:lint:fix run eslint to report and auto-fix fixable linter issues and apply formatting\n\n\nQuality gates\nWith coverage on tests and static code analysis we ensure some quality gates which are all handled by running nest:test:\n\nESLint with prettier ensures formatting and static code analysis to pass, see .eslintrc.js for details.\nTests ensure functional requirements via unit & API tests.\nCoverage on tests ensures a coverage of 80% on NestJS code, see jest.config.ts for details.\n\nGates are part of pull request checks.\nOpenAPI documentation\nThe NestJS applicaiton serves a documentation at :3030/api/v3/docs. The JSON-representation can be found at /api/v3/docs-json to be used for generating a client application.\nLegacy/feathers Swagger UI documentation when running the server locally, it is served at :3030/docs/.\nLegacy (feathers) testing with mocha\n\nnpm run test\nTo run a single test, use npm run mocha-single -- .\n\nHow to get full documentation\nThe documentation is provided by compodoc, run npm run nest:docs:serve, check generated compodoc features, custom information can be found in additional information section. Your console will tell you, where it is served.\nThe updated documentation is published as GitHub Page\nContent\nFor further reading, browse apps/server/doc.\nNestJS CLI\nTo use the NestJS CLI, install the nest cli globally.\n npm i -g @nestjs/cliThen you may use features like nest g service foo within of /apps/server/src.\nDebugging\nThere are launch configurations available for VSCode in .vscode/launch.default.json\nTech Stack\nFeel free to find related documentation:\n\nhttps://nestjs.com/\nhttps://jestjs.io/\nhttps://mikro-orm.io/\nhttps://min.io/\nhttps://www.rabbitmq.com/\n\nConfiguration\nhttps://github.com/hpi-schul-cloud/schulcloud-server/blob/main/config/README.md\nNestJS Modules\nAuthorisation\nhttps://github.com/hpi-schul-cloud/schulcloud-server/blob/main/apps/server/src/modules/authorization/README.md\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/software-architecture.html":{"url":"additional-documentation/nestjs-application/software-architecture.html","title":"additional-page - Software Architecture","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSoftware Architecture\nGoals\nOur architecture aims to achieve the following goals:\n\nMaintainability\nit should be easy as possible to make changes that do not change the behaviour of the system (refactoring)\nit should be easy to exchange entire components of the system, without impact on other components.\n\n\nExtendability\nit should be easy to add new functionality to the system\n\n\nAgility\nit should be easy to react to changing requirements during our development process\n\n\nChange Security\nit should be easy to determine the correctness of the system after making any changes\n\nPrinciples\nIn order to achieve these goals, we try to follow the principles detailed below.\nThese principles apply to all layers of our software, from lines of code and methods to modules and architectural layers.\n\nSingle Responsibility / Seperation of Concerns\neach piece of code should have a single layer of abstraction/detail\neach piece of code should have a single reason to change\n\n\nOpen/Closed Principle\ndesign to be open to extension, but closed to modification\nLiskov Substitution\nthe specific input may be more generic than its interface\nthe specific output may be more specialized than its interface\n\n\nInterface Segregation\nmultiple small interfaces are preferred over big interfaces\n\n\nDependency Inversion Principle\nalways depend on interfaces, not implementations\nhigher level parts should not depend on lower level parts.\n\n\nKeep It Simple (KISS)\nany piece of code should be simple and readable\nany logic should be broken down to be trivial\nbeware of overenginiering and premature optimisation\n\n\nYou Aint Gonna Need It (YAGNI)\nkeep decisions open for as long as possible\nbuild only what you need to build, stay flexible for future requirements\n\n\nDo Not Repeat Yourself (DRY)\ndo not solve the same responsability or concern in multiple places\nbeware of things that look similar, but are not. for example, things that change for different reasons should not be combined, even if their code looks the same\n\n\n\nServer Layer Architecture\nWe generally distinguish three different layers in our server architecture: The API Layer, the Repository Layer, and the Domain Layer.\n\nNote that based on the Dependency Inversion Principle, the Domain Layer does not have any dependencies. Instead, both the API and Repository Layer depend on its abstractions.\nDomain Layer\nThe Domain Layer contains the business logic of the application. As mentioned above, it is not allowed to know about anything outside the domain layer itself.\n\nAny operation within the system is defined by a usecase (UC). It describes how an external actor, for example a user, can interact with the system.\nEach usecase defines what needs to be done to authorize it, and what needs to be done to fulfill it. To this end, it orchestrates services.\nA service is a public part of a domain module, that provides an interface for logic. It might be a simple class doing simple calculations, an interface to a complex hierarchy of classes within a module, or anything in between.\nThe domain layer might also define other classes, types, and interfaces to be used internally by its services, as well as the interface definitions for the repository layer. That way, the domain does not have to depend on the repositories, and the repositories have to depend on the domain instead (dependency inversion)\nTODO: the exact way of implementing the interfaces between repositories and domain layer is still in active discussion and development within the architecture chapter\nAPI Layer\nThe API Layer is responsible for providing the API that is exposed outside the system, and to map the various incoming requests into domain DTOs.\n\nThe params.dto and response.dto are used to automatically generate the API Documentation based on openAPI. The params.dto also contains information that is used for input validation.\nThe controller is responsible for sanitizing and authenticating incoming requests, and to map to and from the format that the domain usecase implementations expect. To this end, mappers are being used.\nRepository Layer\nThe Repository Layer is responsible for outgoing requests to external services. The most prominent example is accessing the database, but the same principles apply for sending emails or other interactions with external systems.\n\nIn order to access these external systems without knowing them, the domain layer may define interfaces that describe how it would like to use external services in its own domain language. The repositories implement these interfaces, recieving and returning exclusively objects or dtos defined in the domain.\nThe datamodel itself is defined through Entities, that have to be mapped into domain objects before they can be returned to the domain layer. We use MikroORM to create, persist and load the entities and their references among each other.\nModules\nThe codebase is broken into modules, each dealing with a part of the businesslogic, or seperated technical concerns.\nThese modules define what code is available where, and ensure a clean dependency graph.\nAll Code written should be part of exactly one module. Each module contains any services, typedefinitions, interfaces, repositories, mappers, and other files it needs internally to function.\nWhen something is needed in more than one module, it needs to be explicitly exported by the module, to be part of its public interface. It can then be imported by other modules. Services are exported published via the dependency injection mechanism provided by Nestjs.\n@Module({\n providers: [InternalRepo, InternalService, PublicService],\n exports: [PublicService],\n})\nexport class ExampleModule {}\n\n@Module({\n imports: [ExampleModule]\n providers: [SomeOtherService],\n})\nexport class OtherModule {}Notice that in the above example, the PublicService can be used anywhere within the OtherModule, including in the SomeOtherService, whereas the InternalRepo and InternalService can not.\nThings that cant be injectables, like types and interfaces, are exported via the index file at the root of the module.\nCode that needs to be shared across many modules can either be put into their own seperate module, if there is a clearly defined seperate concern covered by it, or into the shared module if not.\nApi Modules\nThe controllers and the corresponding usecases, along with the api tests for these routes, are seperated into api modules\n@Module({\n imports: [ExampleModule]\n providers: [ExampleUc],\n controllers: [ExampleController],\n})\nexport class ExampleApiModule {}This allows us to include the domain modules in different server deployments, without each of them having all api definitions. This also means that no usecase can ever be imported, as only services are ever exported, enforcing a seperation of concerns between logic and orchestration.\nHorizontal Architecture\nThe application is split into different modules that implement different parts of our domain.\nThe exact split of modules is still work in progress, or left open as implementation detail. Some important considerations are:\n\nthings with high cohesion and coupling should be in the same module\nthings with low coupling should be in seperate modules\nthe modules define an explicit public interface of usecases and types they expose to other modules\nno module should ever try to access a class of a different module that is not explicitly exported\nno injectable should ever be defined in more than one module\na module should only export services to be used by other modules.\na module that other modules might need to import, especially in another mikroservice, should not contain controllers.\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/file-structure.html":{"url":"additional-documentation/nestjs-application/file-structure.html","title":"additional-page - File Structure","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nArchitecture mapping to Code\nConventions\nFile structure\nThe server app located in /apps/server is structured like. Beside each ts-file, a test file _.spec.ts has to be added for unit tests (hidden for simplification). Use index.ts files that combine a folders content and export all files from within of the folder using export _ from './file' where this makes sense. When there are naming conflicts, use more specific names and correct concepts. Think about not to create sub-folders, when only one concept exist.\nsrc/ // sourcecode & unit tests\n - config/ // for global definitions\n - modules/ // for your NestJS modules\n - [module] // where [module] could be like user, homework, school\n - entity/\n - .entity.ts // (where might be a user, news, ... owned by the module) exports entity class & document type\n - .entity.ts // where related-info is a partial of another entity used in the entity above\n - index.ts // exports all entities\n - controller/ // where controllers define the api\n - dto/ // dto's define api in/out types as a class with annotations\n - [params].ts // (like create-user.params.ts)\n - [response].ts // (like create-user.response.ts)\n - index.ts // exports all dto's\n - .controller.ts // defines rest api, references main service file\n - .controller.ts // think about a new module when require multiple controllers :)\n - repo/ // repositories take care to load/persist/... entities\n - schema/ // contains schema imports from legacy app or new definitions (might be replaced by OR mapper)\n - .schema.ts // exports (legacy-) mongoose schemas\n - .repo.ts // where entity might be user, news, school\n - service/ // for technical dependencies (libraries, infrastructure layer concerns)\n - .service.ts // the modules main service file, might be exported for other modules\n - .service.ts // use services not for features\n - mapper/\n - .mapper.ts // mapper for a domain entity, should contain mapDomainToResponse and mapFooToDomain\n - uc/ // preferred for features\n - .uc.ts // one file per single use case (use a long name)\n - .module.ts // DI instructions to build the module\n - shared/ // reused stuff without module ownership\n - core/ // shared concepts (decorators, pipes, guards, errors, ...) folders might be added\n - domain // (abstract) domain base entities which will be extended in the modules\n - util/ // helpers, tools, utils can be located here (but find a better name)\ntest/ // contains globalSetup and globalTeardown for MongoMemoryServer for tests\nFor concepts (see https://docs.nestjs.com/first-steps) of NestJS put implementations in shared/core. You might use shared/utils for own solutions, assume TextUtils but when it contains text validators, move it better to shared/validators/text.validator.ts before merge. The core concepts of NestJS can be extended with ours (like repo).\nFile naming conventions\nIn TypeScript files: for Classes we use PascalCase (names start with uppercase letter), variables use lowercase for the first letter camelCase.\nWhen assigning names, they may end with a concept name:\n\nA Concept might be a known term which is widely used. Samples from NestJS: Controller, Provider, Module, Middleware, Exception, Pipe, Guard, Interceptor.\n\nBeside we have own concepts like comparator, validator (generic ones should not be part of a modules (and located in shared folder btw) or repo, use-case which might be owned by a module.\n\n\nIn file names, we use lowercase and minus in the beginning and end with ..ts\nSamples\n\n\n\nFile name\nClass name\nConcept\nLocation\n\n\n\n\nlogin-user.uc.ts\nLoginUserUc\nuse case\nmodule/uc\n\n\ntext.validator.ts\nTextValidator\nvalidator\nshared/validators\n\n\nuser.repo.ts\nUserRepo\nrepository\nmodule/repo\n\n\nparse-object-id.pipe.ts\nParseObjectIdPipe\npipe\nshared/pipes\n\n\n\nComponents\nComponents are defined as NestJS Modules. \nCommunication between components\nTo access other modules services, it can be injected anywhere. The usage is allowed only, when the module which owns that service has exported it in the modules definition.\n// modules/feathers/feathers-service.provider.ts\n// modules/feathers/feathers.module.ts\n@Module({\n providers: [FeathersServiceProvider],\n exports: [FeathersServiceProvider],\n})\nexport class FeathersModule {}\nThe feathers module is used to handle how the application is using legacy services, when access them, inject the FeathersServiceProvider but in your module definition, import the FeathersModule.\n// your module, here modules/authorization/authorization.module.ts\n@Module({\n imports: [FeathersModule], // here import the services module\n // providers: [AuthorizationService, FeathersAuthProvider],\n // exports: [AuthorizationService],\n})\nexport class AuthorizationModule {}\n\n// inside of your service, here feathers-auth.provider.ts\n@Injectable()\nexport class FeathersAuthProvider {\n\n // inject the service in constructor\n constructor(private feathersServiceProvider: FeathersServiceProvider) {}\n \n // ...\n\n async getUserTargetPermissions(\n // ...\n ): Promise {\n const service = this.feathersServiceProvider.getService(`path`);\n const result = await service.get(...)\n // ...\n return result;\n }\nAccess legacy Code\nUse the feathers module introduced above to get access to legacy services.\nIt is important to introduce strong typing like it happened above in the FeathersAuthProvider. While the FeathersServiceProvider from the feathers module, has only an abstract implementation for all services, add a concrete service inside your module for a specific feathers-service, like above in FeathersAuthProvider.\nAccess NestJS injectable from Feathers\nTo access a NestJS service from a legacy Feathers service you need to make the NestJS service known to the Feathers service-collection in main.ts. \nThis possibility should not be used for new features in Feathers, but it can help if you want to refactor a Feathers service to NestJs although other Feathers services depend on it.\n // main.ts\n async function bootstrap() {\n // (...)\n feathersExpress.services['nest-rocket-chat'] = nestApp.get(RocketChatService);\n // (...)\n }Afterwards you can access it the same way as you access other Feathers services with\napp.service('/nest-rocket-chat');\nLayered Architecture\nThe different layers use separately defined objects that must be mapped when crossing layers.\n\nNever export entities through the service layer without DTO-mapping which is defined in the controller\nConcepts owned by a layer must not be shared with other layers\n\n\nFurther reading: https://khalilstemmler.com/articles/software-design-architecture/organizing-app-logic/\nController\nA modules api layer is defined within of controllers.\nThe main responsibilities of a controller is to define the REST API interface as openAPI specification and map DTO's to match the logic layers interfaces.\n @Post()\n async create(@CurrentUser() currentUser: ICurrentUser, @Body() params: CreateNewsParams): Promise {\n const news = await this.newsUc.create(\n currentUser.userId,\n currentUser.schoolId,\n NewsMapper.mapCreateNewsToDomain(params)\n );\n const dto = NewsMapper.mapToResponse(news);\n return dto;\n }JWT-Authentication\nFor authentication, use guards like JwtAuthGuard. It can be applied to a whole controller or a single controller method only. Then, ICurrentUser can be injected using the @CurrentUser() decorator.\nValidation\nGlobal settings of the core-module ensure request/response validation against the api definition. Simple input types might additionally use a custom pipe while for complex types injected as query/body are validated by default when parsed as DTO class.\nFile naming\nComplex input DTOs are defined like [create-news].params.ts (class-name: CreateNewsParams).\nWhen DTO's are shared between multiple modules, locate them in the layer-related shared folder.\n\nSecurity: When exporting data, internal entities must be mapped to a response DTO class named like [news].response.dto. The mapping ensures which data of internal entities are exported.\n\nopenAPI specification\nDefining the request/response DTOs in a controller will define the openAPI specification automatically. Additional validation rules and openAPI definitions can be added using decorators. For simplification, openAPI decorators should define a type and if a property is required, while additional decorators can be used from class-validator to validate content.\nMapping\nIt is forbidden, to directly pass a DTO to a use-case or return an Entity (or other use-case result) via REST. In-between a mapper must transform the given data, to protect the logic layer from outside implications.\nThe use of a mapper gives us the guarantee, that\n\nno additional data beside the known properties is published.\nA plain object might contain more properties than defined in TS-interfaces.\nSample: All school properties are published while only name & id are intended to be published.\n\n\nthe API definition is complete\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/api-design.html":{"url":"additional-documentation/nestjs-application/api-design.html","title":"additional-page - API Design","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nto be documented\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/logging.html":{"url":"additional-documentation/nestjs-application/logging.html","title":"additional-page - Logging","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nLogging\nFor logging use the Logger, exported by the logger module. It encapsulates a Winston logger. Its injection scope is transient, so you can set a context when you inject it.\nFor better privacy protection and searchability of logs, the logger cannot log arbitrary strings but only so called loggables. If you want to log something you have to use or create a loggable that implements the Loggable interface.\nThe message should be fixed in each loggable. If you want to log further data, put in the data field of the LogMessage, like in the example below.\nexport class YourLoggable implements Loggable {\n constructor(private readonly userId: EntityId) {}\n\n getLogMessage(): LogMessage {\n return {\n message: 'I am a log message.',\n data: { userId: this.userId, },\n };\n }\n}\nimport { Logger } from '@src/core/logger';\n\nexport class YourUc {\n constructor(private logger: Logger) {\n this.logger.setContext(YourUc.name);\n }\n\n public sampleUcMethod(user) {\n this.logger.log(new YourLoggable(userId: user.id));\n }\n}This produces a logging output like\n[NestWinston] Info - 2023-05-31 15:20:30.888 [YourUc] { message: 'I am a log message.', data: { userId: '0000d231816abba584714c9e' }}Log levels and error logging\nThe logger exposes the methods log, warn, debug and verbose. It does not expose an error method because we don't want errors to be logged manually. All errors are logged in the exception filter.\nLegacy logger\nWhile transitioning to the new logger for loggables, the old logger for strings is still available as LegacyLogger.\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/exception-handling.html":{"url":"additional-documentation/nestjs-application/exception-handling.html","title":"additional-page - Exception Handling","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nException Handling\n\nWe separate our business exceptions from technical exceptions. While for technical exceptions, we use the predefined HTTPExceptions from NestJS, business exceptions inherit from abstract BusinessException.\nBy default, implementations of BusinessException must define\n code: 500\n type: \"CUSTOM_ERROR_TYPE\",\n title: \"Custom Error Type\",\n message: \"Human readable details\",\n // additional: optionalDataThere is a GlobalErrorFilter provided to handle exceptions, which cares about the response format of exceptions and logging. It overrides the default NestJS APP_FILTER in the core/error-module.\nIn client applications, for technical errors, evaluate the http-error-code, then for business exceptions, the type can be used as identifier and additional data can be evaluated.\nFor business errors we use 409/conflict as default to clearly have all business errors with one error code identified.\n\nSample: For API validation errors, 400/Bad Request will be extended with validationError: ValidationError[{ field: string, error: string }] and a custom type API_VALIDATION_ERROR.\n\nPipes can be used as input validation. To get errors reported in the correct format, they can define a custom exception factory when they should produce api validation error or other exceptions, handled by clients.\nChaining errors with the cause property\nIf you catch an error and throw a new one, put the original error in the cause property of the new error. See example:\ntry {\n someMethod();\n} catch(error) {\n throw new ForbiddenException('some message', { cause: error });\n}Loggable exceptions\nIf you want the error log to contain more information than just the exception message, use or create an exception which implements the Loggable interface. Don't put data directly in the exception message!\nA loggable exception should extend the respective Built-in HTTP exception from NestJS. For the name just put in \"Loggable\" before the word \"Exception\", e.g. \"BadRequestLoggableException\". Except for logging a loggable exception behaves like any other exception, specifically the error response is not affected by this.\nSee example below.\nexport class UnauthorizedLoggableException extends UnauthorizedException implements Loggable {\n constructor(private readonly username: string, private readonly systemId?: string) {\n super();\n }\n\n getLogMessage(): ErrorLogMessage {\n const message = {\n type: 'UNAUTHORIZED_EXCEPTION',\n stack: this.stack,\n data: {\n userName: this.username,\n systemId: this.systemId,\n },\n };\n\n return message;\n }\n}export class YourService {\n public sampleServiceMethod(username, systemId) {\n throw new UnauthorizedLoggableException(username, systemId);\n }\n}\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/domain-object-validation.html":{"url":"additional-documentation/nestjs-application/domain-object-validation.html","title":"additional-page - Domain Object Validation","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nDomain Object Validation\nIf you need to validate a domain object, please write an independent class, so that the domain object itself, its repo and services can reuse it.\nEric Evans suggests using the specification pattern.A specification fulfills the following interface:\npublic interface Specification {\n boolean isSatisfiedBy(T t);\n}A specification checks if a domain object fulfills the conditions of the specification.\nA specification can simply specify that a domain object is valid. E.g. a Task has an owner and a description.A specification can specify more complex and specialized conditions. E.g. Task where every student assigned to the task's course has handed in a submission. \nThe specification pattern in its full extend describes how to use logic operators to combine multiple specifications into combined specifications as well. Please don't build this as long as you don't need it. YAGNI.More about full specification pattern\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/testing.html":{"url":"additional-documentation/nestjs-application/testing.html","title":"additional-page - Testing","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTesting\nAutomated testing is the essential part of the software development process.\nIt improves the code quality and ensure that the code operates correctly especially after refactoring.\nGeneral Test Conventions\nLean Tests\nThe tests should be as simple to read and understand as possible. They should be effortless to write and change, in order to not slow down development. Wherever possible:\n\navoid complex logic\ncover only one case per test\nonly use clearly named and widely used helper functions\nstick to blackbox testing: think about the unit from the outside, not its inner workings.\nits okay to duplicate code for each test\n\nNaming Convention\nWhen a test fails, the name of the test is the first hint to the developer (or any other person) to what went wrong where. (along with the \"describe\" blocks the test is in).\nThus, your describe structure and testcase names should be designed to enable a person unfamiliar with the code to identify the problem as fast as possible. It should tell him:\n\nwhat component is being tested\nunder what condition\nthe expected outcome\n\nTo facilitate this, your tests should be wrapped in at least two describe levels.\n// Name of the unit under test\ndescribe(\"Course Service\", (() => {\n // method that is called\n describe('createCourse', () => {\n // a \"when...\" sentence\n describe(\"When a student tries to create a course\", (() => {\n // a \"should...\" sentence\n it(\"should return course\", async () => {\n ...\n });\n });\n });\n});Isolation\nEach test should be able to run alone, as well as together with any other tests. To ensure this, it is important that the test does not depend on any preexisting data.\n\nEach test should generate the data it needs, and ensure that its data is deleted afterwards. (this is usually done via mocha's \"afterEach\" function.\nWhen you create objects with fields that have to be globally unique, like the account username, you must ensure the name you choose is unique. This can be done by including a timestamp.\nNever use seeddata.\n\nTest Structure\nYour test should be structured in three seperate areas, each distinguished by at least an empty line:\n\nArrange - set up your testdata\nAct - call the function you want to test\nAssert - check the result\n\nthis is known as the AAA-pattern.\nThe tests for a unit should cover as much scenarios as possible. Parameters and the combination of parameters can often take numerous values. Therefore it largely differs from case to case what a sufficient amount of scenarios would be. Parameter values that contradict the typescript type definition should be ignored as a test case. \nThe test coverage report already enforces scenarios that test every possible if/else result in the code. But still some scenarios are not covered by the report and must be tested:\n\nAll error scenarios: That means one describe block for every call that can reject.\n\nWe use different levels of describe blocks to structure the tests in a way, that the tested scenarios could easily be recognized. The outer describe would be the function call itself. Every scenario is added as another describe inside the outer describe. \nAll of the data and mock preparation should happen in a setup function. Every describe scenario only contains one setup function and is called in every test. No further data or mock preparation should be added to the test. Often there will be only one test in every describe scenario, this is perfectly fine with our desired structure.\ndescribe('[method]', () => {\n describe('when [senario description that is prepared in setup]', () => {\n const setup = () => {\n // prepare the data and mocks for this scenario\n };\n\n it('...', () => {\n const { } = setup();\n });\n\n it('...', () => {\n const { } = setup();\n });\n }); \n\n describe('when [senario description that is prepared in setup]', () => {\n const setup = () => {\n // prepare the data and mocks for this scenario\n };\n\n it('...', () => {\n const { } = setup();\n });\n });\n});Testing Samples\nHandling of function return values\nWhen assigning a value to an expect, separate the function call from the expectation to simplify debugging. This later helps when you not know about the return value type or if it's an promise or not. This is good style not only for tests.\n // doSomethingCrazy : retValue\n it('bad sample', () => {\n expect(doSomethingCrazy(x,y,z)).to...\n })\n it('good sample', () => {\n const result = doSomethingCrazy(x,y,z)\n expect(result).to... // here we can simply debug\n })\nPromises and Timouts in tests\nWhen using asynchronous functions and/opr promises, results must be awaited within of an async test function instead of using promise chains. While for expecting error conditions it might be helpful to use catch for extracting a value from an expected error, in every case avoid writing long promise chains.\n\nInstead of using done callback, use async test functions.\nUse await instead of (long) promise chains\nnever manually set a timeout\n\n // doSomethingCrazy : Promise\n it('bad async sample', async function (done) => {\n this.timeout(10000);\n return doSomethingCrazy(x,y,z).then(result=>{\n expect(result).to...\n done() // expected done\n }).catch(()=>{\n logger.info(`Could not ... ${error}`);\n done() // unexpected done, test will always succeed which is wrong\n })\n })\n it('good async sample', async () => {\n // no timeout set\n const result = await doSomethingCrazy(x,y,z)\n expect(result).to...\n })\nTimeouts must not be used, when async handling is correctly defined!\n\nExpecting errors in tests\nWhen expecting an error, you might take values from an error, test for the error type thrown and must care of promises.\n // doSomethingCrazy : Promise\n it('bad async sample expecting an error', () => {\n expect(doSomethingCrazy(x,y,z)).to...\n })\n it('good async sample expecting an error value', async () => {\n const code = await doSomethingCrazy(x,y,z).catch(err => err.code)\n expect(code).to...\n })\n it('good sample expecting an error type from a sync function', () => {\n expect(() => doSomethingCrazySync(wrong, param)).toThrow(BadRequestException);\n })\n it('good sample expecting an error type from an async function', async () => {\n await expect(doSomethingCrazySync(wrong, param)).rejects.toThrow(BadRequestException);\n })Testing Utilities\nNestJS:\n\nprovides default tooling (such as test runner that builds an isolated module/application loader)\nprovides integration with Jest and Supertest out of the box\nmakes the Nest dependency injection system available in the testing environment for mocking components\n\nThe @nestjs/testing.Test class provides an execution context that mocks the full Nest runtime, but gives\nhooks that can help to manage class instances, including mocking and overriding.\nThe method Test.createTestingModule() takes module metadata as argument it returns TestingModule instance.\nThe TestingModule instance provides method compile() which bootstraps a module with its dependencies.\nEvery provider can be overwritten with custom provider implementation for testing purposes.\n beforeAll(async () => {\n const moduleRef = await Test.createTestingModule({\n controllers: [SampleController],\n providers: [SampleService],\n }).compile();\n\n sampleService = moduleRef.get(SampleService);\n sampleController = moduleRef.get(CatsController);\n });Mocking\nUsing the utilities provided by NestJs, we can easily inject mocks into our testing module. The mocks themselves, we create using a library by @golevelup.\nYou can create a mock using createMock(). As result you will recieved a DeepMocked\nlet fut: FeatureUnderTest;\nlet mockService: DeepMocked;\n\nbeforeAll(async () => {\n const module = await Test.createTestingModule({\n providers: [\n FeatureUnderTest,\n {\n provide: MockService,\n useValue: createMock(),\n },\n ],\n }).compile();\n\n fut = module.get(FeatureUnderTest);\n mockService = module.get(MockService);\n});\n\nafterAll(async () => {\n await module.close();\n});\n\nafterEach(() => {\n jest.resetAllMocks();\n})The resulting mock has all the functions of the original Class, replaced with jest spies. This gives you code completion and type safety, combined with all the features of spies.\ncreateTestingModule should only be calld in beforeAll and not in beforeEach to keep the setup and teardown for each test as simple as possible. Therefore module.close should only be called in afterAll and not in afterEach.\nTo generally reset specific mock implementation after each test jest.resetAllMocks can be used in afterEach. jest.restoreAllMocks should not be used, because in some cases it will not properly restore mocks created by ts-jest.\ndescribe('somefunction', () => {\n describe('when service returns user', () => {\n const setup = () => {\n const resultUser = userFactory.buildWithId();\n\n mockService.getUser.mockReturnValueOnce(resultUser);\n\n return { resultUser };\n };\n\n it('should call service', async () => {\n setup();\n await fut.somefunction();\n expect(mockService.getUser).toHaveBeenCalled();\n });\n\n it('should return user passed by service', async () => {\n const { resultUser } = setup();\n const result = await fut.somefunction();\n expect(result).toEqual(resultUser);\n });\n });\n});For creating specific mock implementations the helper functions which only mock the implementation once, must be used (e.g. mockReturnValueOnce). With that approach more control over mocked functions can be achieved.\nIf you want to mock a method that is not part of a dependency you can mock it with jest.spyOn. We strongly recommend the use of jest.spyOn and not jest.fn, because jest.spyOn can be restored a lot easier. \nUnit Tests vs Integration Tests\nIn Unit Tests we access directly only the component which is currently testing.\nAny dependencies should be mocked or are replaced with default testing implementation.\nEspecially the database access and database calls should be mocked.\nIn contrast to unit tests the integration tests use access to the database and execute\nreal queries using repositories.\nRepo Tests\nFor the data access layer, integration tests can be used to check the repositories base functionality against a database.\nFor Queries care DRY principle, they should be tested very carefully.\n\nUse a in-memory database for testing to allow parallel test execution and have isolated execution of tests.\n\n\nA test must define the before and after state of the data set clearly and cleanup the database after execution to the before state.\n\n\nInstead of using predefined data sets, all preconditions should be defined in code through fixtures.\n\nOur repository layer uses mikro-orm/EntityManager to execute the queries.\nBy testing repositories we want to verify the correct behaviour of the repository functions.\nIt includes verifying expected database state after executed repository function.\nTherefore, the *.repo.integration.spec.js should be used.\nThe basic structure of the repo integration test:\nPreconditions (beforeAll):\n\nCreate Nest JS testing module:\n1.1 with MongoMemoryDatabaseModule defining entities which are used in tests. This will wrap MikroOrmModule.forRoot() with running a MongoDB in memory.\n1.2 provide the repo which should be tested\nGet repo, orm and entityManager from testing module\n\n import { MongoMemoryDatabaseModule } from '@src/modules/database';\n\n let repo: NewsRepo;\n let em: EntityManager;\n let testModule: TestingModule;\n\n beforeAll(async () => {\n testModule: TestingModule = await Test.createTestingModule({ (1)\n imports: [\n MongoMemoryDatabaseModule.forRoot({ (1.1)\n entities: [News, CourseNews, ...],\n }),\n ],\n providers: [NewsRepo], (1.2)\n }).compile();\n repo = testModule.get(NewsRepo); (2)\n orm = testModule.get(MikroORM);\n em = testModule.get(EntityManager);\n })Post conditions (afterAll), Teardown\nAfter all tests are executed close the app and orm to release the resources by closing the test module.\n afterAll(async () => {\n await testModule.close();\n });\nWhen Jest reports open handles that not have been closed, ensure all Promises are awaited and all application parts started are correctly closed.\n\nEntity Factories\nTo fill the in-memory-db we use factories. They are located in \\apps\\server\\src\\shared\\testing\\factory. If you create a new one, please add it to the index.ts in that folder.\nAccessing the in-memory-db\nWhile debugging the tests, the URL to the in-memory-db can be found in the EntityManager instance of your repo in em.config.options.clientUrl.\nCopy paste this URL to your DB Tool e.g. MongoDB Compass. You will find a database called 'test' with the data you created for your test.\nMapping Tests\nMapping tests are Unit Tests which verify the correct mapping between entities and Dto objects.\nThese tests should not have any external dependencies to other layers like database or use cases.\nUse Case Tests\nSince a usecase only contains orchestration, its tests should be decoupled from the components it depends on. We thus use unittests to verify the orchestration where necessary\n\nAll Dependencies should be mocked.\n\n\nUse Spies to verify necessary steps, such as authorisation checks.\n\nto be documented\nController Tests\nControllers do not contain any logic, but exclusively information to map and validate between dataformats used on the network, and those used internally, as well as documentation of the api.\nMost of these things can not be covered by unit tests. Therefore we do not write specific unittests for them, and only cover them with api tests.\nAPI Tests\nThe API tests are plumbing or integration tests. Their job is to make sure all components that interact to fulfill a specific api endpoint are wired up correctly, and fulfil the expectation set up in the documentation.\nAPI tests should be located in the folder controller/api-test of each module.\nThey should call the endpoint like a external entity would, treating it like a blackbox. It should try all parameters available on the API, users with different roles, as well as relevant error cases.\nDuring the API test, all components that are part of the server, or controlled by the server, should be available. This includes an in-memory database.\nAny external services or servers that are outside our control should be mocked away via their respective adapters.\nReferences\nThis guide is inspired by https://github.com/goldbergyoni/javascript-testing-best-practices/\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/vscode.html":{"url":"additional-documentation/nestjs-application/vscode.html","title":"additional-page - VSCode","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nVSCode\nLaunch scripts\nIn the file ./vscode/launch.default.json you find following actions:\n\nAttach to NestJS will allow to attach VSCode debugger to an already running application\nDeubg NestJS via NPM will start the application and attach the debugger\n\nSettings\nIn the file ./vscode/settings.default.json find suggested settings.\nRecommended extensions\nSee ./vscode/extensions.json for recommendations.\nJest\nJest is used to care of unit- and end2end tests on all *.spec.ts files.\n Allows to just see failing tests in Problems tab.\n and get small icons like ✔️ or a cross beside it-definitions inside of test files.\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/git.html":{"url":"additional-documentation/nestjs-application/git.html","title":"additional-page - Git","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nGit\nBranch name conventions\n\nEach change should be done in a ticket (no matter how small)\nThe ticket does not need to be refined for very small things\nMight be relevant for reporting later\n\n\nFolder (feature/..) should no longer be used\nStay below 64 letters\nDo not simply use ticket title, usually we need a shorter description :-)\n\n\nTicket number needs to be uppercase (BC-1234)\nRelated to matching with Jira\nCareful: namespace is lowercase\n\n\n\nBC-XXXX-kebab-case-short-descriptionCommit message conventions\n\nSquashed commit subject should start with a ticket number, and end with a PR number\nClean body (contains all commits by default)\nOnly leave changes relevant for main\nRemove commits likes 'fix for linter', 'add tests', 'fix review comments'\nSee example below\n\n\nWrite commit messages in imperative and active\nGood: \"make the code better\"\nBad: \"made the code better\", \"makes the code better\"\n\n\nFeel free to write actual text\n\nBC-1993 - lesson lernstore and geogebra copy (#3532)\n \nIn order to make sure developers in the future can find out why changes have been made,\nwe would like some descriptive text here that explains what we did and why.\n \n- change some important things\n- change some other things\n- refactor some existing things\n \n# I dont need to mention tests, changes that didnt make it to main, linter, or other fixups\n# only leave lines that are relevant changes compared to main\n# comments like this will not actually show up in the git historyWindows\nWe strongly recommend to let git translate line endings. Please set git config --global --add core.autocrlf input when working with windows.\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/keycloak.html":{"url":"additional-documentation/nestjs-application/keycloak.html","title":"additional-page - Keycloak","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nErWIn-IDM (Keycloak)\n\nErWIn-IDM, namely Keycloak, will be the future Identity Management System (IDM) for the dBildungscloud. Keycloak\nprovides OpenID Connect, SAML 2.0 and other identity related functionalities like SSO out of the box. It can\nalso act as identity broker or aggregate identities from third party services which can be an active directory or LDAP.\n\nDocker\nTo run Keycloak locally for development purpose use the following Bash or PowerShell command. You can log into Keycloak\nhere http://localhost:8080. If you don't want to block your terminal, you can add the -d option to start the container\nin the background. Execute these commands in the repository root or the data seeding will fail, and you can not log into\nKeycloak with any user.\nBash:\ndocker run \\\n --name erwinidm \\\n -p 8080:8080 \\\n -p 8443:8443 \\\n -v \"$PWD/backup/idm/keycloak:/tmp/realms\" \\\n ghcr.io/hpi-schul-cloud/erwin-idm/dev:latest \\\n \"&& /opt/keycloak/bin/kc.sh import --dir /tmp/realms\"PowerShell:\ndocker run `\n --name erwinidm `\n -p 8080:8080 `\n -p 8443:8443 `\n -v \"$PWD/backup/idm/keycloak:/tmp/realms\" `\n ghcr.io/hpi-schul-cloud/erwin-idm/dev:latest `\n \"&& /opt/keycloak/bin/kc.sh import --dir /tmp/realms\"Setup OpenID Connect Identity Provider mock for ErWIn-IDM brokering\nTo add ErWIn-IDM identity broker feature via OpenID Connect (OIDC) Identity Provider (IdP) mock follow the steps below. Execute these commands in the repository root.\n\nSet env vars (or in your .env file) 'OIDCMOCK__BASE_URL' to http://:4011.\nTo make it work with the nuxt client set the env var HOST=http://localhost:4000\nre-trigger npm run setup:db and npm run setup:idm to reset and apply seed data.\nstart the 'oidc-server-mock' as follows:\n\ndocker run \\\n --name oidc-server-mock \\\n -p 4011:80 \\\n -e ASPNETCORE_ENVIRONMENT='Development' \\\n -e SERVER_OPTIONS_PATH='/tmp/config/server-config.json' \\\n -e USERS_CONFIGURATION_PATH='/tmp/config/users-config.json' \\\n -e CLIENTS_CONFIGURATION_PATH='/tmp/config/clients-config.json' \\\n -v \"$PWD/backup/idm/oidcmock:/tmp/config\" \\\n ghcr.io/soluto/oidc-server-mock:0.6.0PowerShell:\ndocker run `\n --name oidc-server-mock `\n -p 4011:80 `\n -e ASPNETCORE_ENVIRONMENT='Development' `\n -e SERVER_OPTIONS_PATH='/tmp/config/server-config.json' `\n -e USERS_CONFIGURATION_PATH='/tmp/config/users-config.json' `\n -e CLIENTS_CONFIGURATION_PATH='/tmp/config/clients-config.json' `\n -v \"$PWD/backup/idm/oidcmock:/tmp/config\" `\n ghcr.io/soluto/oidc-server-mock:0.6.0Setup OpenID Connect Identity Provider mock for ErWIn-IDM brokering with LDAP provisioning\nThe broker feature can be setup in conjunction with LDAP provisioning for local testing purpose. Therefore, run the sc-openldap-single container:\ndocker run \\\n --name sc-openldap-single \\\n -p 389:389 \\\n ghcr.io/hpi-schul-cloud/sc-openldap-single:latestdocker run `\n --name sc-openldap-single `\n -p 389:389 `\n ghcr.io/hpi-schul-cloud/sc-openldap-single:latestThe LDAP provisioning is trigger as follows:\ncurl -X POST \\\n  'http://localhost:3030/api/v1/sync?target=ldap' \\\n  --header 'Accept: */*' \\\n  --header 'X-API-KEY: example'Invoke-RestMethod `\n -Uri 'http://localhost:3030/api/v1/sync?target=ldap' `\n -Method Post `\n -Headers @{ \"Accept\" = \"*/*\"; \"X-API-KEY\" = \"example\" }See '/tmp/config/users-config.json' for the users details.\nTest local environment\nYou may test your local setup executing 'keycloak-identity-management.integration.spec.ts':\nnpx jest apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.integration.spec.tsSeeding Data\nDuring container startup Keycloak will always create the Master realm with the admin user. After startup, we use the\nKeycloak-CLI to import the dBildungscloud realm, which contains some seed users, groups and permissions for development\nand testing. In the table below you can see the username and password combinations for the Keycloak login.\n\n\n\nUsername\nPassword\nDescription\n\n\n\n\nkeycloak\nkeycloak\nThe overall Keycloak administrator with all permissions.\n\n\ndbildungscloud\ndBildungscloud\nThe dBildungscloud realm specific administrator.\n\n\n\nUpdating Seed Data\n\nRun Keycloak and make the desired changes\nUse docker container exec -it keycloak bash to start a bash in the container\nUse the Keycloak-CLI to export all Keycloak data with /opt/keycloak/bin/kc.sh export --dir /tmp/realms\nSave your changes with a commit\nIf you start your container with a command from the docker section, your changes will be directly applied to the starting Keycloak container\n\n\nIMPORTANT: During the export process there will be some errors, that's because the export process will be done on the\nsame port as the Keycloak server. This leads to Keycloak failing to start the server in import/export mode. Due to the\ntransition from WildFly to Quarkus as application server there is currently no documentation on this topic.\n\nIn order to re-apply the seeding data for a running keycloak container, you may run following commands (to be executed in the repository root):\n\ndocker cp ./backup/idm/keycloak keycloak:/tmp/realms\ndocker exec erwinidm /opt/keycloak/bin/kc.sh import --dir /tmp/realms\n\nNPM Commands\nA list of available NPM commands regarding Keycloak / IDM.\n\n\n\nCommand\nDescription\n\n\n\n\nsetup:idm:seed\nSeeds users for development and testing purpose into the IDM\n\n\nsetup:idm:configure\nConfigures identity and authentication providers and other details in the IDM\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/rocket.chat.html":{"url":"additional-documentation/nestjs-application/rocket.chat.html","title":"additional-page - Rocket.Chat","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nRocket.Chat\nStart Mongodb\nIt makes sense for Rocket.Chat to launch its own mongodb in Docker. Reason for this is Rocket.Chat requires Mongodb as replicaSet setup.\ndocker run --name rocket-chat-mongodb -m=256m -p27030:27017 -d docker.io/mongo --replSet rs0 --oplogSize 10Start mongoDB console and execute\nrs.initiate({\"_id\" : \"rs0\", \"members\" : [{\"_id\" : 0, \"host\" : \"localhost:27017\"}]})Start rocketChat\n(check the latest settings https://github.com/hpi-schul-cloud/dof_app_deploy/blob/main/ansible/roles/rocketchat/templates/configmap.yml.j2#L9)\nPlease not that the displayed //172.29.173.128 is the IP address of the mongoDB docker container.\nYou can get the ip over the command: docker inspect rocket-chat-mongodb | grep \"IPAddress\" (dependent on our system)\ndocker run\\\n -e CREATE_TOKENS_FOR_USERS=true \\\n -e MONGO_URL=mongodb://172.29.173.128:27030/rocketchat \\\n -e ADMIN_PASS=huhu \\\n -e API_Enable_Rate_Limiter_Limit_Calls_Default=255 \\\n -e Accounts_iframe_enabled=true \\\n -e Accounts_iframe_url=http://localhost:4000/rocketChat/Iframe \\\n -e Accounts_Iframe_api_url=http://localhost:4000/rocketChat/authGet \\\n -e Accounts_AllowRealNameChange=false \\\n -e Accounts_AllowUsernameChange=false \\\n -e Accounts_AllowEmailChange=false \\\n -e Accounts_AllowAnonymousRead=false \\\n -e Accounts_Send_Email_When_Activating=false \\\n -e Accounts_Send_Email_When_Deactivating=false \\\n -e Accounts_UseDefaultBlockedDomainsList=false \\\n -e Analytics_features_messages=false \\\n -e Analytics_features_rooms=false \\\n -e Analytics_features_users=false \\\n -e Statistics_reporting=false \\\n -e API_Enable_CORS=true \\\n -e Discussion_enabled=false \\\n -e FileUpload_Enabled=false \\\n -e UI_Use_Real_Name=true \\\n -e Threads_enabled=false \\\n -e Accounts_SetDefaultAvatar=false \\\n -e Iframe_Restrict_Access=false \\\n -e Accounts_Iframe_api_method=GET \\\n -e OVERWRITE_SETTING_Show_Setup_Wizard='completed' \\\n -p 3000:3000 docker.io/rocketchat/rocket.chat:4.7.2ENVS\nYou must also configure you server and legacy client application.\nUse the .env file in top of the project folders.\ndBildungscloud Backend Server\nROCKETCHAT_SERVICE_ENABLED=true\nROCKET_CHAT_URI=\"http://localhost:3000\"\nROCKET_CHAT_ADMIN_USER=admin\nROCKET_CHAT_ADMIN_PASSWORD=huhudBildungscloud Legacy Client\nROCKETCHAT_SERVICE_ENABLED=true\nROCKET_CHAT_URI=\"http://localhost:3000\"\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/configuration.html":{"url":"additional-documentation/nestjs-application/configuration.html","title":"additional-page - Configuration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSchul-Cloud Server\n\n\n\nNestJS application\n\nFind the NestJS applications documentation of this repository at GitHub pages. It contains information about\n\n\nsetup & preconditions\nstarting the application\ntesting\ntools setup (VSCode, Git)\narchitecture\n\nBased on NestJS\nFeathers application\nThis is legacy part of the application!\nBased on Node.js and Feathers\nApplication seperation\nIn order to seperate NestJS and Feathers each application runs in its own express instance. These express instances are then mounted on seperate paths under a common root express instance.\nRoot-Express-App \n├─ api/v1/ --> Feathers-App\n├─ api/v3/ --> NestJS-AppThis ensures that each application can run its own middleware stack for authentication, error handling, logging etc.\nThe mount paths don't have any impact on the routes inside of the applications, e.g. the path /api/v3/news will translate to the inner path /news. That means that in terms of route matching each child application doesn't have to take any measures regarding the path prefix. It simply works as it was mounted to /.\nHowever note that when URLs are generated inside a child application the path prefix has to be prepended. Only then the generated URLs match the appropriate child application, e.g. the path /news has to be provided as the external path /api/v3/news.\nIt is possible (not very likely) that the server api is called with URLs that use the old schema without a path prefix. As a safety net for that we additionally mount the Feathers application as before under the paths:\n\n/ - for internal calls\n/api - for external calls\n\nWhen these paths are accessed an error with context [DEPRECATED-PATH] is logged.\nSetup\nThe whole application setup with all dependencies can be found in System Architecture. It contains information about how different application components are connected to each other.\nDebugger Configuration in Visual Studio Code\nFor more details how to set up Visual Studio Code, read this document.\nHow to name your branch and create a pull request (PR)\n\nTake the Ticket Number from JIRA (ticketsystem.dbildungscloud.de), e.g. SC-999\nName the feature branch beginning with Ticket Number, all words separated by dash \"-\", e.g. feature/SC-999-fantasy-problem\nCreate a PR on branch develop containing the Ticket Number in PR title\nKeep the WIP label as long as this PR is in development, complete PR checklist (is automatically added), keep or increase code test coverage, and pass all tests before you remove the WIP label. Reviewers will be added automatically.\n\nCommitting\nDefault branch: main\n\nGo into project folder\nCheckout to develop branch (or clone for the first time)\nRun git pull\nCreate a branch for your new feature named feature/BC-Ticket-ID-Description\nRun the tests (see above)\nCommit with a meaningful commit message(!) even at 4 a.m. and not stuff like \"dfsdfsf\"\nStart a pull request (see above) to branch develop to merge your changes\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/authorisation.html":{"url":"additional-documentation/nestjs-application/authorisation.html","title":"additional-page - Authorisation","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNestJS Authorization Module\nObjectives\nBreaking down complexity and isolate it.\nOne place to solve a specific authorization for a scope.\nOne implementation to handle all different situations in our system.\nIt should not be possible to use it in a wrong way.\n\nYou should not need to understand the complete system, to know if something is authorized\n\nWe also want to avoid any specific code for modules, collections, or something else, in the authorization module.\nExplanation of Terms\nPermissions\nWe have string based permissions.\nFor examples check \"enum Permission\".\nIt includes all available permissions and is not seperated by concerns or abstraction levels.\nThe permissions have different implicit scopes like instance, school, or named scope like team and course.\n(Feature Flag Permissions)\nSome of the permissions are used like feature flags. We want to seperate and move these in the future.\nPlease keep that in mind, while becoming familiar with permissions.\nRoles\nWe have a role collection, where each role has a permissions array that includes string based permissions.\nRoles inherit permissions from the roles they have in their \"roles\" field.\nLike the \"user\" role, some of these roles are abstract and only used for inheritance.\nSome others are scope based with a prefix name like team*, or course*.\nThe \"real\" user roles by name are expert, student, teacher and administrator. All of these are in the school scope and the superhero is in the scope of an instance.\n\nIn future we want to remove the inherit logic.\nWe want to add scope types to each role.\nAdd more technical users for the instance scope.\n\nEntities\nThe entities are the representation of a single document of the collection, or the type.\nThey are used for authorization for now, but should be replaced by domain objects soon.\nDomain Objects\nThey are not really introduced. They should map between the repository layer and the domain.\n\nIn future they are the base for authorization and the authorization service doesn't know anything about entities anymore.\n\nScopes\nEverything what the system, or a user wants to do, is executed in a scope.\nA scope means an area like the complete instance, the school, the course, the user itself and so on.\nThe scopes are highly bind to the real domain objects that we have in our domain.\nScope Actions\nThe permission for a base action, like they are defined in CRUD operations, is needed to execute something in a scope.\nThe most implicit action you ever need is the \"read\" action. That means, you must have the authorization to \"read\" the scope, otherwise it should not exist for you. :-)\nThe other possible action is to have write access to the scope.\nIt is a combination of delete, edit, create from CRUD side.\n\nFrom our current perspective, we need no differentiation.\nBut we force the implementation in a way, that allows us to add some more.\n\nScope Permission\nWe have different situations where it is hard to say you can write/read to the domain scope.\nWe need the possibility to define different permissions for a single domain scope, or a single domain object it self.\n\nLet say the user can edit his own user account, but we want to disallow that they can change his age.\nBut an administrator should have the authorization to do it.\n\nor a other case..\n\nA student has limited permissions in a team, where he is only a member, but would have more permissions in a team, where he is the owner. So at this point, we need to distingush between instances of domain objects.\n\nUser(s)\nIn authorization scope it can be a system user, or a real user in our application.\nEach user has a role with permissions in the scope of the domain object they want to interact with.\nEach authorization requires a user.\nSystem Users\nWe have console operations, or operations based on API_KEYS that are used between internal services for already authorized operations like copy and copy files in file service.\nFor this we want to use system user and roles with own permissions.\n\nThey are not introduced for now\n\nRules\nThe rules are implemented with a strategy pattern and are called from the authorization service.\nThe implementation should solve the authorization for a domain object based on the executed action.\nIt implements a check for which domain object, entity, or additional conditions should be used.\n\nThe rule must validate our scope actions.\nWe highly recommend that every single operation and check in the rule is implemented as a additional method to keep the logic clean and moveable.\n\nUser (Role) Permissions vs Scope Based Permissions\nThe permissions of the user come from his role.\nThis permissions have no explicit scope. But implicitly the roles expert, student, teacher and administrator are in the school scope. The superhero is implicitly in the scope of the instance.\nIt exists also scope based permissions. A user can have different (scope)roles in different (domain)scopes. For example in teams where the student can have team member role in one team, or team adminstrator in another.\n\nIn future we want to switch the implicit scope of the user role permissions to explicit scopes like in teams.\nAt the moment we must handle scope-, user- and system-user-permissions as seperated special cases in our implementation.\nBy implementing user role permissions bind to scopes, we can do it in one way for all situations.\n\nHow should you Authorize an Operation?\nAuthorization must be handled in use cases (UC). They solve the authorization and orchestrate the logic that should be done in services, or private methods.\nYou should never implement authorization on service level, to avoid different authorization steps.\nWhen calling other internal micro service for already authorized operations please use a queue based on RabbitMQ.\n\nNot implemented but coming soon.\n\nHow to use Authorization Service\n\nPlease avoid to catch the errors of the authorization in UC.\nWe set empty array as required for passing permissions to make it visible that no string base permission is needed.\n\nExample 1 - Execute a Single Operation\n this.authorizationService.checkPermission(user, course, AuthorizationContextBuilder.write([])\n // or\n this.authorizationService.hasPermission(user, course, AuthorizationContextBuilder.write([])\n // next orchestration stepsExample 2 - Execute a Single Operation with Loading Resources\n// If you don't have an entity but an entity type and id, you can check permission by reference\nawait this.authorizationService.checkPermissionByReferences(userId, AllowedEntity.course, courseId, AuthorizationContextBuilder.read([]));\n// or\nawait this.authorizationService.hasPermissionByReferences(userId, AllowedEntity.course, courseId, AuthorizationContextBuilder.read([]));\n// next orchestration stepsExample 3 - Set Permission(s) of User as Required\n// Multiple permissions can be added. For a successful authorization, the user need all of them.\nawait this.authorizationService.hasPermission(userId, course, AuthorizationContextBuilder.read([Permissions.COURSE_VIEW]));\n// next orchestration stepsExample 4 - Define Context for Multiple Places\n/** const **/\nexport const FileStorageAuthorizationContext = {\n create: AuthorizationContextBuilder.write([Permission.FILESTORAGE_CREATE]),\n read: AuthorizationContextBuilder.read([Permission.FILESTORAGE_VIEW]),\n update: AuthorizationContextBuilder.write([Permission.FILESTORAGE_EDIT]),\n delete: AuthorizationContextBuilder.write([Permission.FILESTORAGE_REMOVE]),\n};\n\n/** UC **/\nthis.authorizationService.hasPermission(userId, course, PermissionContexts.create);\n// do other orchestration stepsHow to use in our use cases\nExample - Create a school by superhero\nasync createSchoolBySuperhero(userId: EntityId, params: { name: string }) {\n\n const user = this.authorizationService.getUserWithPermissions(userId);\n this.authorizationService.hasAllPermissions(user, [Permission.SCHOOL_CREATE]);\n\n const school = new School(params);\n\n await this.schoolService.save(school);\n\n return true;\n}\nExample - Create user by admin\n\nasync createUserByAdmin(userId: EntityId, params: { email: string, firstName: string, lastName: string, schoolId: EntityId }) {\n\n const user = this.authorizationService.getUserWithPermissions(userId);\n\n await this.authorizationService.checkPermissionByReferences(userId, AllowedEntity.school, schoolId, AuthorizationContextBuilder.write([Permission.INSTANCE, Permission.CREATE_USER]));\n\n const newUser = new User(params)\n\n await this.userService.save(newUser);\n\n return true;\n}\nExample - Edit course by admin\n// admin\nasync editCourseByAdmin(userId: EntityId, params: { courseId: EntityId, description: string }) {\n\n const course = this.courseService.getCourse(params.courseId);\n const user = this.authorizationService.getUserWithPermissions(userId);\n\n const school = course.school\n\n this.authorizationService.hasPermissions(user, school, [Permission.INSTANCE, Permission.COURSE_EDIT]);\n\n course.description = params.description;\n\n await this.courseService.save(course);\n\n return true;\n}\nExample - Create a Course\n// User can create a course in scope a school, you need to check if he can it by school\nasync createCourse(userId: EntityId, params: { schoolId: EntityId }) {\n const user = this.authorizationService.getUserWithPermissions(userId);\n const school = this.schoolService.getSchool(params.schoolId);\n\n this.authorizationService.checkPermission(user, school\n {\n action: Actions.write,\n requiredPermissions: [Permission.COURSE_CREATE],\n }\n );\n\n const course = new Course({ school });\n\n await this.courseService.saveCourse(course);\n\n return course;\n}\nExample - Create a Lesson\n// User can create a lesson to course, so you have a courseId\nasync createLesson(userId: EntityId, params: { courseId: EntityId }) {\n const course = this.courseService.getCourse(params.courseId);\n const user = this.authorizationService.getUserWithPermissions(userId);\n // check authorization for user and course\n this.authorizationService.checkPermission(user, course\n {\n action: Actions.write,\n requiredPermissions: [Permission.COURSE_EDIT],\n }\n );\n\n const lesson = new Lesson({course});\n\n await this.lessonService.saveLesson(lesson);\n\n return true;\n}How to write a rule\nSo a rule must validate our scope actions. For example we have a news for the school or course. The news has a creator and target model.\n\nAttention: The target model must be populated\n\n@Injectable()\nexport class NewsRule extends BasePermission {\n constructor(private readonly authorizationHelper: AuthorizationHelper, private readonly schoolRule: SchoolRule, private readonly courseRule: CourseRule) {\n super();\n }\n\n // Is used to select the matching rule in the rule manager. Therefore we keep the condition to which case the rule\n // applies in the rule itself. In future we expect more complex conditions that could apply here.\n public isApplicable(user: User, entity: News): boolean {\n const isMatched = entity instanceof News;\n\n return isMatched;\n }\n\n public hasPermission(user: User, entity: News, context: AuthorizationContext): boolean {\n const { action, requiredPermissions } = context;\n\n // check required permissions passed by UC\n const hasPermission = this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n // check access to entity by property\n const isCreator = this.authorizationHelper.hasAccessToEntity(user, entity, ['creator']);\n let hasNewsPermission = false;\n\n if (action === Actions.read) {\n hasNewsPermission = this.parentPermission(user, entity, action);\n } else if (action === Actions.write) {\n hasNewsPermission = isCreator;\n }\n\n const result = hasPermission && hasNewsPermission;\n\n return result;\n }\n\n private parentPermission(user: User, entity: News, action: Actions): boolean {\n let hasParentPermission = false;\n // check by parentRule, because the schoolRule can contain extra logic\n // e.g. school is offline\n // or courseRule has complex permissions-resolves\n if (entity.targetModel === NewsTargetModel.School) {\n hasParentPermission = this.schoolRule.hasPermission(user, entity.target, { action, requiredPermissions: [] });\n } else if (entity.targetModel === NewsTargetModel.Course) {\n hasParentPermission = this.courseRule.hasPermission(user, entity.target, { action, requiredPermissions: [] });\n }\n\n return hasParentPermission;\n }\n}\nStructure of the Authorization Components\nfeathers-* (legacy/deprecated)\nIt exists a adapter to call featherJS endpoints that solve authorizations.\n\nThis service is only used in news and should not be used in any other place.\nWe want to remove it completly.\n\nAuthorization Module\nThe authorization module is the core of authorization. It collects all needed information and handles it behind a small interface. It exports the authoriation service that can be used in your use case over injections.\nReference.loader\nFor situations where only the id and the domain object (string) type is known, it is possible to use the *ByReferences methods.\nThey load the reference directly.\n\nPlease keep in mind that it can have an impact on the performance if you use it wrongly.\nWe keep it as a seperate method to avoid the usage in areas where the domain object should exist, because we see the risk that a developer could be tempted by the ease of only passing the id.\n\nauthorization-context.builder\nWe export an authorization context builder to prepare the parameter for the authorization service called \"authorization context\".\nThis is optional and not required.\nBut it enables us to easily change the structure of the authorization context without touching many different places.\nshared/domain/interface/*\nrolename.enum\nAn enum that holds all avaible role names.\npermission.enum\nA enum that holds all avaible permission names, however it's mixing all domain scopes atm.\nWorking other Internal MicroServices\n\nExample FilesStorageService\n\nWe have the files storage service application that is a bundle of modules of this repository.\nThe application is startet as additional micro service.\nIt exists the need that the server application can call the file service.\nWe add a files storage client module to the server.\nThis module exports a service to communicate with the file service.\nFor communication it uses RabbitMQ.\nEvery operation must already be authorized in the UC of the server. There is no need to do it again in files storage service.\nFor this reason, we want the consumer of the RabbitMQ item to call the files storage service directly without authorization.\nLegacy Tech Stack FeatherJS Hooks\nIn featherJS all the authorization is done in hooks. Mostly before hooks and sometimes in after hooks.\nBefore and after means before, or after the database operation. For self writen services before, or after the call of the operation that should be executed.\nThey work similar to express middleware and bring their own request context.\nIt exists hooks that can be used for all http(s) calls, or for specific type based on CRUD operations.\nAdditionally it also exists the find operations that are a http(s) GET requests without the ID of a specific element.\nEach function that adds to the hooks will be executed in order. Hooks for all methods first, then hooks for specific methodes.\nEach hooks exists for a featherJS service that exposes directly the api endpoints directly. Additional it exists a global hook pattern for the whole application.\nExample: https://github.com/hpi-schul-cloud/schulcloud-server/blob/main/src/services/lesson/hooks/index.js#L232\nDesired Changes in Future\nSome small steps are done. But many next steps still exist.\nThey follow our general target.\nNext Steps\n\nImplementation of Scope Based Permissions as generell solution instead of User Permissions that has only implicit school scopes for now.\nRemove populate logic in reference loader.\nSolve eager loading in coursegroups.\nIntroduce RabbitMQ. Splitting Service(logic) from UC, that we can call services over the consumer for internal communication between micro services of already authorized operations.\nThink about: Move hasPermission checks from rules to a more generic place.\nRemove jwt decorator and cleanup copy logic.\nMove authorization-context.builder to authorization module.\nRemove inheritance from roles, because we want to write it explicitly into the collection documents.\nMoving role api endpoints to nestjs.\nFixing of dashboard to handle roles in the right way as superhero.\nSwitching entity based authorization to domain objects based in steps.\nCleanup of feature flags from user permissions.\nAdd existing feature flags to rules on places where it make sense.\nIntroduce instance as a scope to have an implemenation that handles all scopes/rules/permissions/user types in the same way.\n\nRefactoring Todos\n\nTask module should fully use authorization service.\nNews module should start to use authorization service.\n\nIs Needed\n\nWe can introduce a new layer called \"policy\" that combines different rules (any of them has their own matching strategy) for a single domain object between authorization and rule to reduce complexity in a single rule.\nWe can switch to a behaviour where rules register themself at the authorization service than.\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/code-style.html":{"url":"additional-documentation/nestjs-application/code-style.html","title":"additional-page - Code Style","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCode Style\nFunction\nNaming\nThe name of a function should clearly communicate what it does. There should be no need to read the implementation of a function to understand what it does.\nThere are a few keywords that we use with specific meaning:\nis...\nisTask(), isPublished(), isAuthenticated(), isValid()\nA function with the prefix \"is...\" is checking wether the input belongs to a certain (sub)class, or fulfils a specific criteria.\nThe function should return a boolean, and have no sideeffects.\ncheck...\ncheckPermission(), checkInputIsValid()\nA function with the prefix \"check...\" is checking the condition described in its name, throwing an error if it does not apply.\nhas...\nhasPermission(),\nsimilar to \"is...\", the prefix \"has...\" means that the function is checking a condition, and returns a boolean. It does NOT throw an error.\nClasses\nOrder of declarations\nClasses are declared in the following order:\n\nproperties\nconstructor\nmethods\n\nExample:\nexport class Course {\n // 1. properties\n name: string;\n \n // more properties...\n\n // 2. constructor\n constructor(props: { name: string }) {\n // ...\n }\n\n // 3. methods\n getShortTitle(): string {\n // ...\n }\n\n // more methods...\n}\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/s3clientmodule.html":{"url":"additional-documentation/nestjs-application/s3clientmodule.html","title":"additional-page - S3ClientModule","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nS3 client module\nThis module allows to connect to the S3 storage with our abstraction layer.\nhow to use\nYou need to create a unique connection token and set it as the connection name in S3 configuration. And you must use this token, when injecting the S3 client into your service. This is very important, because multiple modules could potentially use the S3 client with different configurations.\nThe S3ClientModule.register method awaits an array of S3 configurations. Also you can create many connections to different S3 providers and buckets.\n// your.config.ts\nexport const YOUR_S3_UNIQ_CONNECTION_TOKEN = \"YOUR_S3_UNIQ_CONNECTION_TOKEN\";\n\nconst s3Config: S3Config = {\n connectionName: YOUR_S3_UNIQ_CONNECTION_TOKEN, // Important!\n endpoint: \"\",\n region: \"\",\n bucket: \"\",\n accessKeyId: \"\",\n secretAccessKey: \"\",\n};\n\n// your.service.ts\n\n@Injectable()\nexport class FilesStorageService {\n constructor(\n @Inject(YOUR_S3_UNIQ_CONNECTION_TOKEN) // Important!\n private readonly storageClient: S3ClientAdapter)\n}\n\n// your.module.ts\n@Module({\n imports: [S3ClientModule.register([s3Config]),]\n providers: [YourService]\n})\n\nexport class YourModule {}\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"}} + "index": {"version":"2.3.9","fields":["title","body"],"fieldVectors":[["title/classes/AbstractAccountService.html",[0,0.23,1,5.64]],["body/classes/AbstractAccountService.html",[0,0.169,1,6.214,2,0.571,3,0.013,4,0.013,5,0.007,6,4.969,7,0.076,8,0.898,9,6.763,10,3.002,11,5.992,12,3.428,13,5.275,14,6.214,15,6.214,16,6.214,17,6.214,18,3.673,19,6.214,20,6.214,21,6.214,22,6.493,23,6.493,24,6.493,25,6.493,26,2.893,27,0.541,28,4.969,29,1.034,30,0.001,31,0.731,32,0.183,33,0.651,34,1.276,35,1.574,36,3.007,37,5.992,38,4.969,39,2.387,40,3.578,41,4.969,42,5.275,43,4.969,44,6.214,45,4.969,46,6.214,47,0.968,48,4.181,49,3.854,50,4.969,51,5.487,52,3.448,53,5.275,54,6.214,55,2.787,56,5.344,57,4.969,58,3.147,59,2.307,60,6.214,61,4.969,62,2.898,63,6.493,64,7.51,65,4.969,66,6.702,67,6.214,68,4.969,69,6.214,70,4.462,71,4.969,72,3.49,73,6.866,74,5.992,75,7.433,76,6.866,77,4.708,78,5.081,79,6.493,80,6.214,81,6.493,82,6.766,83,2.68,84,4.969,85,5.567,86,6.493,87,4.4,88,4.969,89,6.493,90,4.969,91,6.493,92,7.779,93,4.969,94,2.362,95,0.114,96,1.343,97,2.114,98,2.961,99,0.843,100,1.663,101,0.009,102,3.75,103,0,104,0]],["title/injectables/AbstractLaunchStrategy.html",[105,0.89,106,5.438]],["body/injectables/AbstractLaunchStrategy.html",[0,0.095,3,0.007,4,0.007,5,0.004,7,0.043,8,0.564,9,4.928,26,1.905,27,0.468,29,0.894,30,0.001,31,0.642,32,0.165,33,0.563,35,1.337,36,2.45,39,1.903,47,0.91,95,0.147,99,0.471,101,0.005,103,0,104,0,105,0.616,106,3.768,107,0.665,108,6.612,109,11.454,110,2.322,111,2.516,112,2.569,113,5.06,114,5.06,115,3.908,116,3.708,117,5.06,118,3.908,119,3.908,120,3.908,121,3.908,122,3.768,123,3.768,124,3.908,125,5.06,126,5.06,127,0.351,128,2.239,129,4.381,130,6.613,131,2.777,132,3.002,133,2.322,134,10.062,135,5.06,136,7.16,137,5.738,138,2.03,139,7.097,140,7.028,141,2.777,142,2.322,143,5.934,144,2.725,145,2.8,146,6.134,147,2.777,148,2.196,149,3.908,150,3.657,151,6.621,152,2.777,153,2.322,154,2.759,155,7.83,156,2.777,157,3.908,158,4.3,159,2.777,160,7.861,161,3.908,162,2.777,163,2.706,164,3.908,165,0.625,166,2.777,167,2.311,168,3.908,169,2.777,170,3.768,171,3.768,172,2.777,173,3.908,174,2.777,175,6.353,176,3.908,177,2.777,178,5.545,179,2.322,180,5.06,181,6.872,182,2.777,183,2.322,184,6.621,185,4.035,186,2.777,187,0.398,188,2.292,189,2.621,190,2.239,191,1.543,192,1.805,193,5.287,194,1.809,195,4.068,196,1.971,197,1.867,198,1.328,199,1.06,200,1.972,201,3.17,202,2.426,203,4.083,204,0.953,205,2.239,206,1.422,207,3.768,208,1.031,209,1.609,210,3.002,211,2.239,212,3.908,213,2.777,214,0.914,215,0.899,216,0.864,217,1.693,218,6.557,219,2.777,220,2.777,221,2.351,222,2.777,223,2.777,224,2.777,225,2.777,226,2.777,227,1.117,228,4.674,229,2.777,230,2.777,231,3.493,232,2.777,233,2.777,234,1.481,235,1.572,236,2.726,237,2.777,238,2.529,239,4.674,240,1.896,241,4.083,242,2.565,243,2.777,244,2.565,245,2.777,246,2.777,247,2.401,248,2.777,249,2.777,250,2.322,251,2.777,252,2.777,253,2.426,254,2.322,255,2.426,256,2.322,257,2.777,258,2.777,259,2.777,260,2.777,261,2.777,262,2.777,263,6.052,264,2.562,265,2.777,266,4.674,267,2.777,268,2.565,269,2.777,270,2.426,271,2.777,272,2.777,273,2.777,274,2.426,275,5.287,276,2.239,277,3.653,278,3.552,279,2.012,280,2.777,281,2.058,282,2.777,283,2.777,284,2.817,285,2.777,286,2.565,287,2.777,288,5.59,289,2.777,290,3.493,291,2.565,292,2.777,293,2.777,294,4.674,295,2.777,296,4.674,297,2.777,298,2.17,299,2.777,300,2.777,301,2.777,302,2.565,303,2.777,304,2.777,305,1.741,306,2.777,307,1.736,308,2.777,309,5.165,310,2.322,311,2.565,312,2.322,313,2.426,314,2.322,315,2.565,316,2.239,317,2.777,318,2.322,319,2.777,320,2.322,321,2.565,322,2.239,323,2.322,324,2.322,325,2.058,326,2.565,327,2.565,328,2.777,329,0.818,330,2.777,331,2.922,332,2.777,333,2.777]],["title/interfaces/AcceptConsentRequestBody.html",[334,0.743,335,5.438]],["body/interfaces/AcceptConsentRequestBody.html",[3,0.023,4,0.023,5,0.012,7,0.135,30,0.001,32,0.191,33,0.697,47,1.006,55,2.646,95,0.113,101,0.017,103,0.001,104,0.001,138,4.783,165,0.869,334,0.968,335,8.878,336,2.142,337,6.009,338,8.12,339,6.515,340,7.086,341,11.648,342,11.015,343,11.648,344,9.85,345,9.85,346,8.475,347,2.452,348,7.403,349,5.814,350,7.349,351,4.344,352,7.678,353,7.086]],["title/interfaces/AcceptLoginRequestBody.html",[334,0.743,354,5.27]],["body/interfaces/AcceptLoginRequestBody.html",[3,0.023,4,0.023,5,0.012,7,0.136,30,0.001,32,0.189,33,0.703,47,1.017,55,2.654,77,8.006,101,0.017,103,0.001,104,0.001,165,0.873,199,4.825,334,0.975,336,2.156,337,6.049,338,8.173,340,7.132,344,9.873,345,9.873,347,2.459,354,8.639,355,3.48,356,11.041,357,11.041,358,11.675,359,4.184]],["title/classes/AcceptQuery.html",[0,0.23,360,5.438]],["body/classes/AcceptQuery.html",[0,0.393,2,1.09,3,0.025,4,0.025,5,0.013,7,0.146,27,0.394,30,0.001,32,0.133,95,0.16,101,0.018,103,0.001,104,0.001,165,0.912,347,2.354,355,4.543,360,9.312,361,6.359,362,9.495,363,7.995,364,1.76,365,9.495,366,6.359,367,5.56,368,4.563,369,2.554,370,3.854,371,3.184,372,9.495,373,6.098,374,3.033,375,4.687,376,2.227,377,7.526,378,9.495,379,2.189]],["title/entities/Account.html",[94,3.206,380,1.411]],["body/entities/Account.html",[0,0.224,3,0.017,4,0.017,5,0.009,7,0.173,27,0.538,30,0.001,32,0.184,33,0.684,39,3.016,47,0.929,48,5.283,49,4.605,51,5.153,82,7.924,83,3.386,87,5.153,94,4.324,95,0.134,96,2.459,97,2.799,101,0.017,103,0.001,104,0.001,165,0.823,216,1.216,240,4.11,347,1.854,351,5.153,364,2.402,369,3.025,370,4.258,371,2.507,380,1.903,381,2.165,382,6.577,383,6.794,384,8.406,385,7.009,386,7.294,387,6.577,388,6.577,389,6.577,390,6.577,391,6.577,392,6.577,393,6.577,394,5.199,395,6.577,396,5.138,397,6.577,398,1.926,399,3.562,400,2.886,401,8.403,402,2.706,403,4.351,404,1.189,405,1.773,406,2.101,407,5.302,408,6.076,409,6.076,410,6.076,411,4.998,412,5.499,413,6.076,414,6.076,415,3.589,416,4.224,417,4.875,418,5.302,419,6.076,420,6.076,421,5.138,422,5.499,423,5.745,424,6.076]],["title/modules/AccountApiModule.html",[425,1.808,426,5.438]],["body/modules/AccountApiModule.html",[0,0.288,3,0.022,4,0.022,5,0.012,30,0.001,95,0.171,99,1.438,101,0.016,103,0.001,104,0.001,187,1.214,425,3.171,426,11.289,427,3.133,428,3.304,429,3.407,430,3.392,431,3.362,432,4.372,433,4.059,434,8.475,435,8.475,436,8.475,437,9.315,438,6.2,439,12.126,440,10.974,441,8.005,442,4.328,443,3.333,444,3.249,445,7.829,446,5.368,447,4.513,448,10.332,449,4.328,450,3.487,451,8.475,452,8.475,453,7.829,454,8.475]],["title/classes/AccountByIdBodyParams.html",[0,0.23,455,5.893]],["body/classes/AccountByIdBodyParams.html",[0,0.349,2,0.905,3,0.021,4,0.021,5,0.011,7,0.121,27,0.474,30,0.001,31,0.576,32,0.16,33,0.643,47,0.882,51,5.646,87,6.362,95,0.155,101,0.015,103,0.001,104,0.001,165,0.81,234,2.089,347,2.093,364,2.118,368,5.085,369,2.846,370,4.295,371,3.549,373,5.421,374,2.517,376,1.848,379,2.633,383,7.444,455,8.971,456,10.122,457,7.878,458,7.878,459,10.269,460,5.869,461,3.065,462,7.878,463,7.878,464,7.878,465,7.878,466,7.878,467,3.254,468,8.022,469,3.475,470,4.814,471,5.151,472,5.295,473,8.971,474,6.586,475,3.947,476,6.586]],["title/classes/AccountByIdParams.html",[0,0.23,477,5.893]],["body/classes/AccountByIdParams.html",[0,0.398,2,1.111,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.291,47,0.851,94,5.554,95,0.15,101,0.018,103,0.001,104,0.001,165,0.922,364,1.794,368,4.616,369,2.583,370,3.899,371,3.221,374,3.092,376,2.27,379,2.231,456,9.77,467,3.141,470,4.924,477,10.208,478,6.868,479,7.173,480,8.94]],["title/controllers/AccountController.html",[448,5.893,481,2.63]],["body/controllers/AccountController.html",[0,0.116,3,0.009,4,0.009,5,0.005,7,0.052,8,0.667,10,1.373,27,0.393,29,0.752,30,0.001,31,0.531,32,0.193,33,0.473,34,1.626,35,1.502,36,2.507,87,4.682,94,6.211,95,0.128,100,1.138,101,0.006,103,0,104,0,112,2.79,163,3.638,185,4.911,187,0.487,215,1.1,216,0.629,227,0.998,264,3.403,290,1.962,364,1.756,367,5.552,368,3.175,376,0.797,379,3.169,403,4.617,439,6.447,447,1.425,448,4.826,453,3.14,455,7.021,461,2.659,477,9.657,481,1.325,482,3.399,483,1.636,484,6.097,485,6.097,486,6.979,487,6.979,488,8.037,489,6.979,490,3.399,491,6.156,492,3.399,493,4.198,494,6.27,495,10.838,496,4.383,497,8.037,498,7.886,499,8.048,500,3.777,501,6.979,502,7.211,503,7.071,504,8.839,505,8.752,506,7.516,507,9.809,508,6.979,509,8.01,510,8.196,511,5.659,512,3.399,513,6.368,514,3.399,515,3.399,516,3.399,517,3.399,518,7.021,519,3.399,520,6.368,521,6.479,522,6.107,523,5.524,524,5.212,525,3.399,526,5.524,527,3.399,528,3.399,529,4.179,530,7.021,531,3.399,532,5.524,533,4.826,534,5.103,535,2.989,536,6.097,537,5.524,538,2.477,539,3.399,540,4.003,541,3.399,542,3.399,543,5.213,544,3.399,545,3.399,546,3.399,547,7.021,548,3.399,549,4.858,550,3.399,551,3.399,552,2.183,553,6.241,554,8.199,555,1.794,556,1.839,557,1.855,558,1.615,559,1.855,560,3.399,561,1.855,562,3.399,563,5.848,564,4.779,565,5.001,566,3.399,567,3.399,568,3.399,569,2.285,570,3.399,571,2.125,572,3.399,573,2.583,574,1.541,575,2.026,576,3.256,577,1.906,578,3.14,579,3.399,580,3.399,581,3.399,582,3.399,583,3.399,584,3.399,585,3.399,586,3.399,587,3.399,588,3.399,589,3.399]],["title/classes/AccountDto.html",[0,0.23,66,4.273]],["body/classes/AccountDto.html",[0,0.23,2,0.776,3,0.018,4,0.018,5,0.01,7,0.104,26,2.488,27,0.564,29,0.536,30,0.001,31,0.379,32,0.191,33,0.694,34,1.815,39,2.483,47,0.868,48,4.349,51,4.578,64,10.432,66,7.552,82,7.039,83,3.706,87,4.578,94,3.21,95,0.119,99,1.146,101,0.013,103,0.001,104,0.001,127,0.853,165,0.731,216,2.41,347,1.377,351,4.578,364,2.444,383,6.036,384,7.468,385,6.227,404,1.675,405,2.497,471,2.874,590,6.754,591,4.522,592,4.664,593,7.468,594,6.754,595,2.325,596,4.104,597,6.754,598,6.754,599,6.754,600,6.239,601,6.754,602,7.745,603,6.754,604,8.558,605,6.754,606,6.754,607,6.754,608,6.239,609,6.754,610,8.558,611,6.754,612,6.754,613,6.754,614,5.9,615,6.754,616,6.754,617,3.899,618,2.874,619,3.86,620,4.337,621,5.132,622,4.337,623,5.132]],["title/classes/AccountEntityToDtoMapper.html",[0,0.23,624,5.64]],["body/classes/AccountEntityToDtoMapper.html",[0,0.267,2,0.901,3,0.021,4,0.021,5,0.011,7,0.121,8,1.237,27,0.473,29,0.905,30,0.001,31,0.639,32,0.16,33,0.57,34,1.347,35,1.377,39,2.104,48,3.684,51,3.878,55,2.509,66,8.298,82,5.962,87,3.878,94,6.489,95,0.131,98,6.795,99,1.332,101,0.015,103,0.001,104,0.001,217,1.351,227,1.202,234,1.273,351,3.878,380,2.529,383,5.113,384,6.326,385,5.274,403,5.191,591,3.356,592,3.461,624,8.564,625,9.745,626,7.847,627,4.183,628,10.243,629,10.243,630,8.257,631,10.243,632,7.847,633,10.243,634,7.847,635,7.249,636,8.564,637,7.847,638,6.561,639,5.816,640,7.847,641,7.249,642,6.855,643,5.569,644,6.855,645,7.249,646,7.249,647,6.855,648,6.561,649,7.847,650,7.249,651,7.249,652,7.847,653,10.243,654,7.847,655,7.847,656,7.847,657,7.249]],["title/classes/AccountFactory.html",[0,0.23,658,5.438]],["body/classes/AccountFactory.html",[0,0.157,2,0.529,3,0.012,4,0.012,5,0.007,7,0.071,8,0.848,26,1.986,27,0.534,29,1.028,30,0.001,31,0.699,32,0.184,33,0.623,34,1.852,35,1.431,39,1.883,47,0.511,48,2.164,49,3.993,51,3.471,55,2.469,59,3.179,87,2.278,94,2.191,95,0.122,99,0.782,101,0.016,103,0,104,0,127,0.583,138,3.05,144,3.161,148,1.426,165,0.554,185,4.88,216,1.299,217,1.351,227,0.897,234,1.14,305,1.327,329,3.408,359,2.436,366,2.538,379,1.961,380,2.142,381,2.312,401,4.259,404,1.27,461,2.361,538,3.149,569,3.099,596,3.83,627,2.187,658,6.86,659,4.61,660,7.074,661,4.547,662,5.335,663,7.024,664,7.024,665,3.938,666,5.335,667,5.564,668,3.938,669,3.938,670,3.938,671,3.867,672,4.325,673,4.771,674,6.123,675,5.638,676,6.9,677,2.609,678,7.024,679,4.61,680,7.024,681,4.61,682,2.585,683,3.938,684,2.609,685,4.983,686,5.193,687,4.414,688,5.023,689,3.902,690,2.585,691,2.415,692,4.021,693,2.516,694,2.473,695,2.585,696,4.908,697,2.609,698,4.685,699,2.585,700,7.071,701,4.04,702,6.485,703,2.609,704,4.205,705,2.585,706,2.609,707,2.585,708,2.609,709,2.585,710,2.92,711,2.747,712,2.585,713,5.941,714,2.609,715,2.585,716,3.938,717,3.867,718,3.938,719,2.609,720,2.494,721,2.473,722,2.034,723,2.585,724,2.585,725,2.585,726,2.609,727,2.609,728,1.805,729,2.585,730,2.609,731,2.751,732,2.585,733,2.609,734,2.661,735,2.661,736,2.717,737,4.186,738,4.055,739,4.61,740,4.027,741,4.61,742,7.024,743,4.61,744,3.34,745,4.259,746,4.61,747,4.61]],["title/injectables/AccountIdmToDtoMapper.html",[105,0.89,748,5.27]],["body/injectables/AccountIdmToDtoMapper.html",[0,0.328,3,0.026,4,0.026,5,0.014,7,0.148,8,1.407,9,6.226,27,0.4,29,0.764,30,0.001,31,0.54,32,0.135,33,0.481,35,1.163,66,7.935,78,7.965,94,4.578,95,0.161,99,1.635,101,0.018,103,0.001,104,0.001,105,1.537,107,2.305,187,1.38,625,9.393,630,9.393,636,9.742,638,8.053,748,9.102,749,9.631,750,10.169,751,9.631]],["title/classes/AccountIdmToDtoMapperDb.html",[0,0.23,752,5.893]],["body/classes/AccountIdmToDtoMapperDb.html",[0,0.303,2,1.023,3,0.024,4,0.024,5,0.013,7,0.137,8,1.341,27,0.37,29,0.707,30,0.001,31,0.499,32,0.125,33,0.445,34,1.529,35,1.076,39,2.388,48,4.182,51,4.401,66,8.025,78,7.592,83,2.68,94,5.278,95,0.155,99,1.512,101,0.017,103,0.001,104,0.001,217,1.175,227,0.939,234,1.802,404,2.008,591,3.809,592,3.929,593,7.18,596,2.705,625,7.18,630,8.952,636,9.285,638,7.446,639,6.601,643,6.32,748,9.897,750,9.897,752,9.701,753,8.906,754,8.228,755,8.228,756,10.571,757,10.258,758,8.228,759,7.78,760,7.78]],["title/classes/AccountIdmToDtoMapperIdm.html",[0,0.23,761,5.893]],["body/classes/AccountIdmToDtoMapperIdm.html",[0,0.304,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,8,1.345,27,0.371,29,0.71,30,0.001,31,0.502,32,0.125,33,0.447,34,1.535,35,1.08,39,2.398,48,4.2,51,4.421,66,8.037,78,7.613,83,2.692,94,5.293,95,0.155,99,1.518,101,0.017,103,0.001,104,0.001,145,2.309,217,1.18,227,0.943,234,1.807,404,2.013,591,3.826,592,3.946,593,7.212,596,2.717,625,7.212,630,8.977,636,9.31,638,7.48,639,6.631,643,6.349,748,9.912,750,9.912,754,8.264,755,8.264,756,10.592,757,10.287,759,7.815,760,7.815,761,9.728,762,8.946]],["title/injectables/AccountLookupService.html",[105,0.89,763,5.64]],["body/injectables/AccountLookupService.html",[0,0.183,3,0.014,4,0.014,5,0.008,7,0.083,8,0.951,26,2.463,27,0.387,29,0.74,30,0.001,31,0.523,32,0.131,33,0.466,34,2.427,35,1.24,36,2.232,47,0.574,49,4.816,78,5.385,94,3.744,95,0.146,99,0.912,101,0.01,103,0,104,0,105,1.039,107,1.286,111,1.576,112,2.563,127,0.995,167,4.362,187,0.77,200,4.195,216,1.457,217,1.039,221,1.857,227,1.204,234,1.278,235,5.812,264,3.335,359,2.731,369,1.741,379,2.149,569,7.679,639,3.983,694,5.509,734,5.382,763,6.585,764,9.485,765,5.374,766,4.413,767,11.183,768,5.59,769,7.672,770,7.136,771,9.485,772,8.97,773,5.058,774,7.019,775,4.803,776,7.877,777,5.985,778,5.294,779,5.838,780,7.877,781,6.881,782,9.98,783,6.885,784,6.031,785,7.877,786,7.276,787,5.374,788,8.277,789,7.58,790,5.374,791,7.877,792,7.877,793,5.374,794,10.268,795,6.052,796,12.106,797,10.268,798,6.419,799,7.276,800,5.374,801,3.134,802,3.894,803,3.359,804,4.083,805,4.332,806,3.319,807,7.276,808,4.694,809,7.276,810,5.374,811,5.374,812,5.374]],["title/modules/AccountModule.html",[425,1.808,437,4.787]],["body/modules/AccountModule.html",[0,0.227,3,0.018,4,0.018,5,0.009,30,0.001,95,0.174,99,1.131,101,0.013,103,0.001,104,0.001,187,0.955,206,3.412,227,0.967,234,1.49,369,1.473,425,2.815,427,2.464,428,2.598,429,2.679,430,2.667,431,2.644,432,3.882,433,3.96,437,10.029,438,5.794,440,10.255,441,7.48,442,3.691,443,2.621,444,2.555,449,3.691,450,2.742,687,3.092,748,8.203,752,8.019,761,8.019,763,10.255,789,6.743,801,3.887,802,4.829,803,4.166,804,5.064,813,6.664,814,6.664,815,6.664,816,6.664,817,9.582,818,9.703,819,11.196,820,9.888,821,10.255,822,11.331,823,8.887,824,6.156,825,6.664,826,5.822,827,6.664,828,6.664,829,10.5,830,6.156,831,6.156,832,6.156,833,6.156,834,6.156,835,6.664,836,3.847,837,4.939,838,6.156,839,3.129]],["title/interfaces/AccountParams.html",[334,0.743,840,5.64]],["body/interfaces/AccountParams.html",[0,0.224,3,0.017,4,0.017,5,0.009,7,0.101,26,2.35,30,0.001,32,0.128,33,0.563,47,0.912,48,5.549,49,4.39,51,5.84,94,6.399,95,0.151,99,1.118,101,0.017,103,0.001,104,0.001,111,1.822,116,3.378,165,0.719,185,4.906,192,2.716,217,1.709,227,1.246,334,1.15,336,1.605,404,1.191,461,3.055,627,3.68,658,5.311,734,3.803,840,9.414,841,5.755,842,5.755,843,4.915,844,4.129,845,4.675,846,4.675,847,5.755,848,7.99,849,5.006,850,9.527,851,4.47,852,4.47,853,4.628,854,4.595,855,10.219,856,5.508,857,5.755,858,7.955,859,5.755,860,5.755,861,5.755,862,8.726,863,7.955,864,7.955,865,5.508,866,9.117,867,9.117,868,5.755,869,7.955,870,7.955,871,5.508,872,5.755,873,7.955,874,6.463,875,5.508]],["title/injectables/AccountRepo.html",[105,0.89,820,5.438]],["body/injectables/AccountRepo.html",[0,0.124,3,0.01,4,0.01,5,0.005,7,0.056,8,0.706,10,2.361,11,4.712,12,2.696,13,4.148,14,4.887,15,4.887,16,4.887,17,4.887,18,2.889,19,4.887,20,4.887,26,2.703,27,0.523,29,0.992,30,0.001,31,0.695,32,0.175,33,0.619,34,1.891,35,1.51,36,2.857,37,4.712,39,2.755,40,1.755,42,4.148,44,4.887,46,4.887,47,0.856,48,3.931,49,4.955,51,5.278,52,2.712,53,4.148,54,4.887,55,2.796,56,5.962,58,6.195,60,4.887,62,2.126,67,4.887,69,4.887,70,5.351,85,2.279,94,5.489,95,0.125,96,1.58,97,1.551,99,0.619,101,0.007,102,1.839,103,0,104,0,105,0.771,107,0.872,111,1.464,112,3.068,144,2,148,1.809,187,0.522,217,1.209,221,1.974,227,1.217,234,1.487,247,3.88,264,1.543,329,2.467,347,1.491,369,0.806,371,1.005,379,0.84,380,1.751,381,1.924,398,1.068,404,1.057,461,1.93,596,2.542,692,4.303,704,1.801,771,9.492,808,3.184,820,4.712,876,3.645,877,5.993,878,4.069,879,7.734,880,7.318,881,5.4,882,7.318,883,2.451,884,2.761,885,5.482,886,5.845,887,3.645,888,3.645,889,3.645,890,5.106,891,3.645,892,3.645,893,3.645,894,4.712,895,3.645,896,3.645,897,3.645,898,3.645,899,5.845,900,3.645,901,3.645,902,8.372,903,3.645,904,3.645,905,3.039,906,3.645,907,4.069,908,2.223,909,2.25,910,2.223,911,2.25,912,2.587,913,2.223,914,2.25,915,2.007,916,3.645,917,3.645,918,3.645,919,2.77,920,5.845,921,4.442,922,5.106,923,3.645,924,3.645,925,3.645,926,3.645,927,3.645,928,3.645,929,3.184,930,5.845,931,3.645,932,3.645,933,3.645,934,3.645,935,3.048,936,3.645,937,3.645,938,2.641,939,3.645,940,3.367,941,7.318,942,3.645,943,3.645,944,3.367,945,3.184,946,2.375,947,3.184,948,2.77,949,3.645,950,2.848,951,2.77,952,3.645,953,2.375,954,2.702,955,3.645,956,2.375,957,2.063,958,3.048,959,3.184,960,2.492,961,3.645,962,3.645,963,3.645,964,2.492]],["title/classes/AccountResponse.html",[0,0.23,499,5.438]],["body/classes/AccountResponse.html",[0,0.281,2,0.949,3,0.022,4,0.022,5,0.012,7,0.127,27,0.541,29,0.656,30,0.001,31,0.464,32,0.183,33,0.663,34,2.188,39,3.417,47,0.95,51,6.299,83,3.188,95,0.106,101,0.016,103,0.001,104,0.001,127,1.339,165,0.836,347,2.159,364,2.363,376,1.939,383,8.305,407,6.663,415,4.511,423,7.221,467,3.7,499,10.275,592,5.623,618,3.517,622,5.309,965,8.266,966,4.232,967,8.266,968,8.266,969,8.266,970,8.266,971,8.266,972,8.266]],["title/classes/AccountResponseMapper.html",[0,0.23,973,6.231]],["body/classes/AccountResponseMapper.html",[0,0.292,2,0.986,3,0.023,4,0.023,5,0.012,7,0.132,8,1.31,27,0.45,29,0.861,30,0.001,31,0.608,32,0.152,33,0.542,34,1.862,35,1.31,39,2.909,51,5.362,66,7.919,94,6.259,95,0.152,99,1.457,101,0.016,103,0.001,104,0.001,227,1.144,234,1.761,383,7.069,499,10.78,592,4.786,625,9.591,627,4.101,639,8.042,641,10.023,642,7.498,643,7.7,644,9.479,973,10.023,974,5.298,975,6.201,976,10.85,977,10.85,978,7.498,979,10.85,980,6.705,981,8.583,982,4.301,983,7.176]],["title/classes/AccountSaveDto.html",[0,0.23,64,5.126]],["body/classes/AccountSaveDto.html",[0,0.285,2,0.672,3,0.016,4,0.016,5,0.008,7,0.09,26,2.528,27,0.552,29,0.464,30,0.001,31,0.328,32,0.186,33,0.695,34,1.68,39,2.623,47,0.932,48,4.594,51,4.836,64,8.591,82,7.435,83,3.728,87,4.836,95,0.137,99,0.993,101,0.011,103,0.001,104,0.001,127,0.739,165,0.661,216,2.333,347,1.707,351,4.836,364,2.447,373,4.422,374,1.869,383,6.376,384,7.888,385,6.577,405,2.258,407,4.716,408,5.404,409,5.404,410,5.404,411,4.445,412,4.891,413,5.404,414,5.404,415,3.193,416,3.757,417,4.336,418,4.716,419,5.404,420,5.404,421,4.57,422,4.891,423,5.111,424,5.404,468,6.544,469,2.581,470,4.502,471,5.659,472,3.932,474,4.891,475,2.931,476,4.891,591,4.185,592,4.317,593,7.888,595,2.014,600,5.404,602,7.004,604,9.869,608,5.404,610,9.04,614,5.111,618,2.489,619,3.343,620,3.757,621,4.445,622,3.757,623,4.445,984,13.387,985,5.85,986,8.377,987,5.85,988,5.85,989,5.85,990,5.85,991,5.85,992,5.85,993,5.85,994,5.85,995,5.85,996,5.85,997,5.85,998,5.85,999,7.6,1000,4.569,1001,4.992,1002,5.85,1003,5.85,1004,5.85]],["title/classes/AccountSearchListResponse.html",[0,0.23,536,5.893]],["body/classes/AccountSearchListResponse.html",[0,0.266,2,0.898,3,0.021,4,0.021,5,0.011,7,0.12,27,0.52,29,0.62,30,0.001,31,0.438,32,0.188,33,0.626,55,3.063,56,6.183,59,3.171,70,6.437,95,0.146,101,0.015,103,0.001,104,0.001,127,0.988,145,2.017,163,3.95,165,0.806,364,2.237,376,1.833,404,1.847,456,8.542,467,2.746,469,3.448,499,10.55,536,8.925,596,3.666,1005,7.572,1006,5.547,1007,8.079,1008,7.011,1009,5.839,1010,7.816,1011,4.159,1012,7.816,1013,5.219,1014,3.837,1015,4.342,1016,2.791,1017,5.547,1018,6.657,1019,5.959,1020,5.17,1021,4.159,1022,5.547,1023,5.547,1024,7.816,1025,4.951,1026,4.342]],["title/classes/AccountSearchQueryParams.html",[0,0.23,530,5.893]],["body/classes/AccountSearchQueryParams.html",[0,0.348,2,0.899,3,0.021,4,0.021,5,0.011,7,0.12,27,0.501,30,0.001,32,0.186,33,0.604,47,0.745,55,2.506,56,5.484,70,5.125,94,3.722,95,0.155,101,0.015,103,0.001,104,0.001,144,3.579,165,0.807,247,3.107,329,3.014,364,2.239,368,4.771,369,2.67,370,4.03,371,3.329,374,2.502,376,1.837,379,2.358,404,1.849,456,9.525,467,3.063,469,3.455,470,4.31,479,5.805,530,8.936,533,8.936,596,3.107,905,3.252,907,7.121,1005,9.288,1014,3.844,1020,5.181,1027,7.832,1028,8.893,1029,12.532,1030,7.832,1031,3.279,1032,7.832,1033,7.832,1034,7.235,1035,5.451,1036,6.548,1037,6.841,1038,7.235,1039,7.832,1040,7.235,1041,4.351,1042,6.548,1043,7.832,1044,3.844,1045,7.832]],["title/injectables/AccountService.html",[105,0.89,818,4.888]],["body/injectables/AccountService.html",[0,0.209,1,10.181,3,0.007,4,0.007,5,0.004,7,0.043,8,0.573,10,1.916,11,3.823,12,2.187,13,3.366,14,3.965,15,3.965,16,3.965,17,3.965,18,2.344,19,3.965,20,3.965,21,3.965,22,4.143,23,4.143,24,4.143,27,0.501,29,0.957,30,0.001,31,0.67,32,0.171,33,0.597,34,0.814,35,1.427,36,2.842,37,3.823,39,2.467,40,2.283,42,3.366,44,3.965,46,3.965,47,0.987,48,3.37,49,2.798,51,5.125,52,2.2,53,3.366,54,3.965,55,2.282,56,4.647,58,1.79,60,3.965,62,1.648,63,4.143,64,7.336,66,5.484,67,3.965,69,3.965,70,3.596,81,4.143,82,6.077,83,1.844,85,7.735,86,4.143,87,4.961,89,4.143,91,4.143,92,6.27,94,5.961,95,0.143,96,0.764,97,1.202,98,1.684,99,0.48,100,1.588,101,0.005,102,1.426,103,0,104,0,105,0.625,107,0.676,111,2.132,112,3.055,127,0.599,144,0.772,145,0.729,148,0.874,165,0.374,167,1.079,187,0.405,200,0.921,204,2.103,216,1.786,217,1.494,221,2.937,227,1.272,234,1.165,247,1.882,305,2.065,329,0.833,355,1.865,369,1.049,374,1.515,404,0.857,406,0.903,473,2.469,503,1.703,558,1.343,593,6.447,596,3.495,687,1.311,692,1.053,750,5.607,766,1.215,784,1.492,789,5.909,795,2.796,798,2.965,801,1.648,804,2.147,806,1.191,809,2.611,818,3.437,819,7.693,821,6.001,822,6.63,830,2.611,831,2.611,832,2.611,853,2.41,894,3.823,1046,2.826,1047,6.129,1048,4.743,1049,4.743,1050,2.826,1051,7.177,1052,2.498,1053,3.183,1054,4.743,1055,6.129,1056,4.743,1057,2.826,1058,2.826,1059,4.743,1060,2.826,1061,4.743,1062,1.234,1063,2.826,1064,2.826,1065,2.611,1066,2.826,1067,2.826,1068,2.826,1069,2.826,1070,4.743,1071,2.826,1072,2.826,1073,2.826,1074,2.826,1075,2.826,1076,2.826,1077,2.826,1078,2.826,1079,2.826,1080,2.611,1081,2.826,1082,2.826,1083,2.611,1084,4.743,1085,2.826,1086,2.826,1087,2.826,1088,2.826,1089,2.826,1090,2.826,1091,2.826,1092,8.072,1093,2.826,1094,2.826,1095,2.611,1096,6.129,1097,2.611,1098,8.658,1099,2.826,1100,2.826,1101,2.826,1102,7.177,1103,2.826,1104,2.826,1105,7.177,1106,2.826,1107,2.826,1108,4.743,1109,2.826,1110,1.815,1111,2.826,1112,2.826,1113,2.278,1114,1.147,1115,2.826,1116,4.743,1117,2.826,1118,4.743,1119,2.826,1120,2.826,1121,3.301,1122,2.826,1123,5.661,1124,2.826,1125,2.826,1126,3.437,1127,2.826,1128,2.826,1129,2.826,1130,2.278,1131,2.826,1132,2.278,1133,2.826,1134,1.899,1135,2.611,1136,2.469,1137,2.826,1138,2.826,1139,2.826,1140,2.826,1141,6.129,1142,2.826,1143,5.661,1144,2.826,1145,3.965,1146,4.743,1147,2.826,1148,2.826,1149,2.826,1150,2.826,1151,2.826,1152,4.743,1153,2.826,1154,4.743,1155,2.826,1156,2.826,1157,2.826,1158,1.504,1159,4.143,1160,2.826]],["title/injectables/AccountServiceDb.html",[105,0.89,821,5.64]],["body/injectables/AccountServiceDb.html",[0,0.112,1,10.328,3,0.009,4,0.009,5,0.005,7,0.051,8,0.649,10,2.172,11,4.334,12,2.48,13,3.816,14,4.495,15,4.495,16,4.495,17,4.495,18,2.657,19,4.495,20,4.495,21,4.495,22,4.697,23,4.697,24,4.697,25,4.697,26,2.791,27,0.513,29,0.98,30,0.001,31,0.693,32,0.173,33,0.617,34,1.352,35,1.478,36,2.907,37,4.334,39,2.112,40,2.588,42,3.816,44,4.495,46,4.495,47,0.921,48,4.079,49,3.838,51,5.076,54,4.495,55,2.406,56,4.944,58,2.083,60,4.495,62,1.918,63,4.697,64,5.988,66,5.504,67,4.495,69,4.495,70,3.948,81,4.697,82,6.602,83,2.053,85,4.264,86,4.697,87,4.294,89,4.697,91,4.697,92,5.959,94,5.322,95,0.14,96,0.889,97,1.399,98,1.959,99,0.558,100,1.101,101,0.006,103,0,104,0,105,0.709,107,0.787,111,1.969,112,3.07,127,0.415,144,0.899,145,1.761,167,2.053,187,0.471,206,1.683,215,1.064,216,0.994,217,1.614,221,3.065,227,1.302,234,1.598,247,2.133,305,1.547,329,0.969,351,1.625,383,2.142,384,2.65,385,2.21,404,0.972,406,1.05,510,2.382,511,1.683,558,1.563,596,3.634,624,2.749,635,6.301,643,3.816,644,2.872,645,3.037,646,3.037,647,4.697,648,6.588,650,3.037,657,7.279,763,8.23,764,7.279,786,4.967,799,4.967,820,7.519,821,4.495,826,2.872,833,3.037,894,4.334,907,2.289,983,2.749,1065,3.037,1080,3.037,1095,3.037,1097,4.967,1161,3.288,1162,5.377,1163,3.037,1164,3.288,1165,3.288,1166,3.288,1167,5.377,1168,3.288,1169,3.288,1170,3.288,1171,3.288,1172,3.288,1173,3.288,1174,3.288,1175,3.288,1176,3.288,1177,3.288,1178,3.288,1179,3.288,1180,3.288,1181,3.288,1182,2.749,1183,2.872,1184,10.629,1185,5.377,1186,9.844,1187,8.689,1188,3.288,1189,3.288,1190,4.967,1191,3.288,1192,3.288,1193,3.288,1194,5.377,1195,2.65,1196,5.377,1197,5.377,1198,5.377,1199,5.377,1200,5.377,1201,5.377,1202,5.377,1203,5.377,1204,5.377,1205,8.689,1206,7.88,1207,6.821,1208,3.288,1209,3.288,1210,3.288,1211,3.288,1212,5.377,1213,3.288,1214,3.288,1215,3.288,1216,3.288,1217,3.288,1218,2.333,1219,3.288,1220,3.288,1221,3.288]],["title/injectables/AccountValidationService.html",[105,0.89,819,5.64]],["body/injectables/AccountValidationService.html",[0,0.224,3,0.017,4,0.017,5,0.009,7,0.101,8,1.099,26,2.855,27,0.467,29,0.893,30,0.001,31,0.631,32,0.158,33,0.562,35,1.259,36,2.655,39,3.422,47,0.943,48,5.283,49,2.564,59,3.237,85,7.828,94,4.324,95,0.151,99,1.116,101,0.013,103,0.001,104,0.001,105,1.2,107,1.574,111,1.316,112,2.907,127,0.831,167,2.511,187,0.942,215,2.129,217,1.484,221,2.458,227,1.099,284,3.964,380,1.376,403,4.351,441,7.637,450,2.706,624,5.499,639,4.875,642,5.745,691,3.445,819,7.605,820,9.848,826,5.745,853,5.3,905,4.673,1163,6.076,1190,6.076,1222,6.577,1223,9.096,1224,9.096,1225,9.096,1226,6.577,1227,9.096,1228,6.577,1229,9.096,1230,6.577,1231,9.096,1232,6.577,1233,6.577,1234,6.577,1235,6.577,1236,3.964,1237,5.138,1238,4.224,1239,5.499,1240,3.797,1241,6.076,1242,6.076,1243,6.577,1244,6.577,1245,6.577,1246,6.577,1247,6.076,1248,9.096,1249,9.096,1250,6.577,1251,6.577,1252,3.919,1253,3.033,1254,6.577,1255,6.577,1256,6.577,1257,6.577,1258,9.096,1259,6.577,1260,9.096,1261,6.577]],["title/interfaces/AdminIdAndToken.html",[334,0.743,1262,5.438]],["body/interfaces/AdminIdAndToken.html",[0,0.194,3,0.009,4,0.009,5,0.005,7,0.054,30,0.001,31,0.462,32,0.127,34,1.813,36,2.817,39,3.388,47,1.018,51,4.067,55,1.578,72,2.68,83,1.718,87,3.545,95,0.105,101,0.016,103,0,104,0,105,0.753,111,2.372,112,2.907,116,4.023,127,0.447,148,1.095,165,0.45,187,0.507,204,1.958,216,1.056,217,1.393,221,2.275,227,1.379,234,1.465,305,2.598,334,0.79,336,0.862,347,1.967,351,5.22,359,1.227,369,0.782,404,0.64,461,1.654,535,3.882,543,4.124,564,2.119,692,1.319,701,1.236,720,1.915,728,2.809,731,4.385,839,1.662,853,1.799,874,4.051,953,4.674,1016,2.939,1035,2.464,1262,8.516,1263,2.853,1264,2.959,1265,4.904,1266,2.023,1267,6.254,1268,2.273,1269,2.765,1270,2.689,1271,4.46,1272,3.903,1273,4.46,1274,4.46,1275,4.46,1276,4.602,1277,1.826,1278,3.089,1279,2.959,1280,2.959,1281,2.959,1282,2.959,1283,2.959,1284,2.959,1285,2.565,1286,2.959,1287,2.959,1288,2.959,1289,2.273,1290,7.548,1291,1.506,1292,2.853,1293,2.379,1294,2.464,1295,2.043,1296,2.512,1297,2.959,1298,5.258,1299,5.196,1300,5.196,1301,5.497,1302,6.143,1303,7.827,1304,6.385,1305,5.998,1306,2.689,1307,2.959,1308,2.959,1309,2.464,1310,2.959,1311,2.959,1312,2.959,1313,2.765,1314,2.959,1315,5.604,1316,2.853,1317,2.959,1318,2.959,1319,2.959,1320,2.853,1321,2.959,1322,2.959,1323,2.959,1324,8.488,1325,2.959,1326,2.959,1327,1.398,1328,2.959,1329,2.959,1330,2.959,1331,2.959,1332,2.959,1333,2.959,1334,2.959,1335,2.959,1336,8.07,1337,8.07,1338,2.959,1339,2.959,1340,2.959,1341,2.959,1342,2.959,1343,2.959,1344,2.42,1345,2.959,1346,2.959,1347,2.959,1348,2.959,1349,2.959,1350,2.959,1351,2.959,1352,2.959,1353,2.959,1354,2.959,1355,2.959,1356,2.959,1357,2.959,1358,2.959,1359,4.338,1360,4.773,1361,2.959,1362,2.959,1363,2.959,1364,2.959,1365,2.959,1366,2.379,1367,2.959,1368,2.959,1369,2.959,1370,4.773,1371,2.959,1372,4.773,1373,4.773,1374,2.959,1375,2.959,1376,2.689,1377,5.998,1378,4.746,1379,4.324,1380,2.959,1381,3.329,1382,5.081,1383,4.338,1384,5.604,1385,5.998,1386,5.998,1387,5.998,1388,2.765,1389,2.959,1390,2.959,1391,2.959,1392,7.548,1393,5.998,1394,5.998,1395,5.998,1396,2.959,1397,4.773,1398,4.773,1399,2.959,1400,2.959,1401,2.959,1402,2.959,1403,2.959,1404,4.773,1405,4.46]],["title/modules/AntivirusModule.html",[425,1.808,1406,5.438]],["body/modules/AntivirusModule.html",[0,0.308,3,0.024,4,0.024,5,0.013,8,1.093,27,0.375,29,0.718,30,0.001,31,0.507,32,0.127,33,0.452,35,1.093,47,0.887,95,0.144,101,0.017,103,0.001,104,0.001,187,1.296,227,0.953,334,0.997,347,1.844,425,3.267,427,3.344,432,3.344,433,3.412,627,3.492,701,3.16,836,5.222,1406,9.824,1407,8.357,1408,6.555,1409,7.537,1410,11.128,1411,9.047,1412,8.061,1413,9.824,1414,8.357,1415,6.758,1416,9.039,1417,7.201,1418,7.537,1419,8.357,1420,6.297,1421,8.357,1422,8.357,1423,7.564,1424,7.564]],["title/interfaces/AntivirusModuleOptions.html",[334,0.743,1410,5.893]],["body/interfaces/AntivirusModuleOptions.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.135,30,0.001,32,0.177,47,0.998,95,0.141,101,0.017,103,0.001,104,0.001,165,0.868,187,1.256,227,0.924,334,0.966,336,2.137,347,2.449,425,3.221,432,3.242,433,3.308,627,2.731,836,5.063,1406,8.866,1407,8.102,1409,5.895,1410,10.497,1412,7.275,1413,9.687,1414,8.102,1415,7.821,1416,10.461,1417,8.334,1418,8.722,1419,8.102,1420,6.105,1421,8.102,1422,8.102,1423,7.333,1424,7.333]],["title/injectables/AntivirusService.html",[105,0.89,1413,5.438]],["body/injectables/AntivirusService.html",[0,0.245,3,0.019,4,0.019,5,0.01,7,0.11,8,1.167,27,0.453,29,0.866,30,0.001,31,0.612,32,0.153,33,0.546,35,1.167,36,2.101,47,0.999,95,0.15,101,0.014,103,0.001,104,0.001,105,1.275,107,1.72,111,2.437,112,2.449,116,3.534,127,1.221,145,2.818,150,2.637,187,1.03,216,1.787,217,1.54,221,1.695,227,0.758,234,1.568,305,2.068,334,0.792,347,1.465,351,5.396,369,1.589,576,4.237,701,3.814,784,3.794,839,3.375,1158,3.825,1413,7.791,1415,4.332,1416,5.794,1417,4.616,1418,4.831,1425,6.64,1426,8.443,1427,8.443,1428,6.64,1429,9.533,1430,10.2,1431,7.188,1432,8.928,1433,7.188,1434,8.928,1435,7.188,1436,8.127,1437,5.208,1438,4.831,1439,3.438,1440,4.914,1441,5.328,1442,5.615,1443,6.279,1444,4.683,1445,5.462,1446,5.462,1447,6.64,1448,6.64,1449,8.928,1450,6.64,1451,8.928,1452,6.64,1453,6.64,1454,6.64,1455,6.01,1456,6.64,1457,6.64,1458,6.01,1459,4.755,1460,6.01,1461,6.01,1462,6.64,1463,6.64,1464,6.64,1465,6.64,1466,6.64,1467,6.64,1468,6.64]],["title/interfaces/AntivirusServiceOptions.html",[334,0.743,1430,5.893]],["body/interfaces/AntivirusServiceOptions.html",[0,0.26,3,0.02,4,0.02,5,0.011,7,0.118,30,0.001,32,0.168,36,1.663,47,1.002,95,0.153,101,0.015,103,0.001,104,0.001,105,1.329,111,2.253,112,1.717,116,2.477,127,0.967,145,1.975,150,2.807,165,0.795,187,1.096,216,1.864,217,1.579,221,1.804,227,0.807,234,1.635,305,2.202,334,0.843,336,1.865,347,2.296,351,3.782,369,1.692,701,2.673,784,4.04,839,3.593,1158,4.072,1413,6.169,1415,7.215,1416,9.65,1417,7.688,1418,8.046,1425,7.07,1429,8.56,1430,9.841,1432,7.07,1434,7.07,1436,7.841,1437,5.545,1438,5.144,1439,3.66,1440,5.232,1441,5.672,1442,5.978,1443,6.685,1444,4.986,1445,5.815,1446,5.815,1447,7.07,1448,7.07,1449,9.308,1450,7.07,1451,9.308,1452,7.07,1453,7.07,1454,7.07,1455,6.398,1456,7.07,1457,7.07,1458,6.398,1459,5.062,1460,6.398,1461,6.398,1462,7.07,1463,7.07,1464,7.07,1465,7.07,1466,7.07,1467,7.07,1468,7.07]],["title/classes/ApiValidationError.html",[0,0.23,1469,4.462]],["body/classes/ApiValidationError.html",[0,0.261,2,0.882,3,0.02,4,0.02,5,0.011,7,0.118,8,1.22,27,0.541,29,0.609,30,0.001,31,0.431,32,0.189,33,0.564,35,0.928,47,0.822,55,1.69,95,0.129,101,0.015,103,0.001,104,0.001,127,0.971,165,0.797,187,1.1,204,4.273,216,2.497,364,2.309,404,1.826,406,2.454,503,7.226,564,2.851,596,3.883,722,3.389,798,4.802,1013,5.498,1016,2.743,1253,5.205,1291,3.269,1327,4.458,1469,6.682,1470,10.101,1471,7.682,1472,8.258,1473,6.852,1474,4.07,1475,7.248,1476,7.682,1477,7.682,1478,9.859,1479,5.005,1480,4.307,1481,5.005,1482,5.005,1483,5.005,1484,5.005,1485,5.005,1486,4.685,1487,4.39,1488,6.001,1489,6.423,1490,7.097,1491,5.773,1492,6.088,1493,4.866,1494,6.193]],["title/classes/ApiValidationErrorResponse.html",[0,0.23,1495,5.893]],["body/classes/ApiValidationErrorResponse.html",[0,0.22,2,0.743,3,0.017,4,0.017,5,0.009,7,0.099,8,1.086,27,0.528,29,0.714,30,0.001,31,0.504,32,0.188,33,0.558,35,0.782,47,0.926,55,1.424,95,0.143,101,0.012,103,0.001,104,0.001,111,2.068,127,0.818,144,2.459,148,2.783,165,0.71,187,0.927,204,4.028,216,2.418,217,1.363,309,3.663,329,2.65,379,2.073,394,3.698,404,1.626,503,7.514,558,3.076,565,4.748,577,3.628,596,3.566,1016,3.212,1253,5.416,1291,2.754,1327,4.413,1469,8.04,1473,5.909,1474,3.793,1478,9.031,1486,7.752,1491,5.141,1492,7.514,1495,7.858,1496,11.173,1497,6.471,1498,7.491,1499,6.667,1500,7.51,1501,8.995,1502,8.995,1503,8.995,1504,9.031,1505,6.471,1506,6.471,1507,5.246,1508,5.091,1509,6.471,1510,4.045,1511,6.471,1512,5.653,1513,6.471,1514,5.978,1515,4.156,1516,5.978,1517,8.995,1518,11.173,1519,6.471,1520,6.471,1521,6.471,1522,6.471,1523,6.471,1524,6.471,1525,8.995,1526,6.471,1527,6.471,1528,6.471,1529,6.471,1530,6.471,1531,6.471,1532,6.471,1533,6.471,1534,6.471]],["title/interfaces/AppStartInfo.html",[334,0.743,1535,5.893]],["body/interfaces/AppStartInfo.html",[0,0.285,3,0.028,4,0.022,5,0.012,7,0.129,30,0.001,32,0.174,33,0.654,47,0.99,55,2.587,95,0.107,101,0.016,103,0.001,104,0.001,145,3.035,163,3.367,165,0.843,214,2.755,215,2.709,216,1.548,217,1.104,227,0.882,334,0.922,336,2.039,549,5.826,1021,4.454,1327,3.306,1535,10.272,1536,7.731,1537,7.311,1538,11.177,1539,10.82,1540,10.82,1541,9.676,1542,4.983,1543,5.549,1544,9.328,1545,2.674,1546,6.997,1547,4.164,1548,7.731,1549,9.864,1550,7.731,1551,9.864,1552,7.731,1553,9.864,1554,7.731,1555,5.232,1556,7.731]],["title/classes/AppStartLoggable.html",[0,0.23,1546,5.64]],["body/classes/AppStartLoggable.html",[0,0.29,2,0.977,3,0.031,4,0.023,5,0.012,7,0.131,8,1.303,27,0.448,29,0.675,30,0.001,31,0.477,32,0.119,33,0.425,35,1.028,47,0.863,55,1.872,95,0.109,101,0.016,103,0.001,104,0.001,127,1.075,145,3.059,163,3.404,214,3.552,215,2.755,216,1.574,217,1.122,227,0.897,334,0.938,549,5.924,1021,6.307,1327,3.362,1535,10.887,1536,10.948,1537,7.435,1538,9.428,1539,7.435,1540,7.435,1541,6.649,1542,5.531,1543,6.159,1544,9.428,1545,2.719,1546,9.023,1547,6.201,1548,7.862,1549,9.97,1550,7.862,1551,9.97,1552,7.862,1553,9.97,1554,7.862,1555,5.32,1556,7.862,1557,8.511,1558,8.511,1559,8.511]],["title/interfaces/AppendedAttachment.html",[334,0.743,1560,5]],["body/interfaces/AppendedAttachment.html",[3,0.024,4,0.024,5,0.013,7,0.137,30,0.001,31,0.501,47,1.026,77,5.654,101,0.017,103,0.001,104,0.001,165,0.878,334,1.486,336,2.175,404,2.358,1560,8.978,1561,6.783,1562,9.397,1563,9.911,1564,6.783,1565,4.959,1566,8.242,1567,6.468,1568,6.783,1569,6.468,1570,8.978,1571,6.783,1572,8.242,1573,8.45,1574,8.45,1575,8.242,1576,6.702,1577,6.616,1578,6.616,1579,6.783,1580,6.783]],["title/modules/AuthenticationApiModule.html",[425,1.808,1581,5.27]],["body/modules/AuthenticationApiModule.html",[0,0.314,3,0.024,4,0.024,5,0.013,30,0.001,95,0.164,101,0.018,103,0.001,104,0.001,187,1.323,425,3.297,427,3.413,428,3.6,429,3.712,430,3.696,431,3.663,432,4.546,433,4.283,442,4.566,443,3.631,444,3.54,446,5.849,447,4.761,449,4.566,1581,10.719,1582,9.233,1583,9.233,1584,9.233,1585,8.871,1586,11.212,1587,9.233,1588,10.743,1589,9.233,1590,9.233,1591,8.53]],["title/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.23,1592,5.438]],["body/classes/AuthenticationCodeGrantTokenRequest.html",[0,0.286,2,0.965,3,0.022,4,0.022,5,0.012,7,0.129,27,0.544,29,0.667,30,0.001,31,0.471,32,0.184,33,0.42,47,0.981,95,0.108,101,0.016,103,0.001,104,0.001,127,1.062,165,0.845,405,2.886,595,2.894,1253,6.323,1592,10.328,1593,13.31,1594,10.862,1595,8.404,1596,8.361,1597,9.498,1598,10.292,1599,10.292,1600,10.706,1601,8.404,1602,8.404,1603,9.89,1604,8.404,1605,8.404,1606,7.764,1607,7.026,1608,6.229,1609,7.764,1610,8.404,1611,8.404,1612,8.404,1613,8.404,1614,8.404,1615,8.404,1616,8.404,1617,7.342,1618,8.404]],["title/modules/AuthenticationModule.html",[425,1.808,1585,4.462]],["body/modules/AuthenticationModule.html",[0,0.188,3,0.015,4,0.015,5,0.008,30,0.001,32,0.078,95,0.174,101,0.011,103,0,104,0,187,0.792,217,1.373,234,0.897,305,1.591,425,2.541,427,2.044,428,2.156,429,2.223,430,2.213,431,2.193,432,3.504,433,3.575,437,8.188,438,5.451,441,7.037,442,3.233,443,2.174,444,2.12,449,3.233,450,2.274,783,3.332,802,4.006,803,3.456,817,9.014,823,8.361,1499,4.098,1545,1.766,1585,9.353,1619,5.529,1620,5.529,1621,5.529,1622,5.529,1623,9.302,1624,9.014,1625,8.768,1626,8.188,1627,9.595,1628,10.08,1629,9.302,1630,9.647,1631,10.08,1632,8.032,1633,10.08,1634,10.08,1635,5.529,1636,5.529,1637,9.478,1638,4.83,1639,8.042,1640,4.098,1641,4.83,1642,4.83,1643,5.529,1644,4.83,1645,4.098,1646,8.638,1647,11.058,1648,4.098,1649,4.622,1650,4.83,1651,4.622,1652,5.107,1653,5.529,1654,4.83,1655,5.529,1656,5.529,1657,5.529,1658,5.529,1659,3.923,1660,4.457,1661,3.602,1662,5.107,1663,5.529,1664,4.83,1665,5.107,1666,3.848,1667,5.107,1668,5.529,1669,5.529,1670,5.529,1671,4.622,1672,5.529,1673,5.529,1674,5.529,1675,5.529,1676,5.529,1677,5.529,1678,5.529,1679,5.529,1680,3.78,1681,5.529,1682,5.529,1683,3.259,1684,5.529,1685,9.478,1686,5.529,1687,4.201,1688,5.529,1689,5.107,1690,5.529,1691,3.413,1692,5.529,1693,4.622,1694,5.529,1695,5.529,1696,3.16,1697,5.107,1698,5.529,1699,5.529]],["title/interfaces/AuthenticationResponse.html",[334,0.743,1700,5.893]],["body/interfaces/AuthenticationResponse.html",[0,0.179,3,0.014,4,0.014,5,0.007,7,0.081,30,0.001,32,0.074,36,1.144,47,0.992,51,3.832,55,1.157,87,3.832,94,3.686,95,0.13,99,0.893,101,0.01,103,0,104,0,111,2.457,112,1.18,116,3.67,163,2.905,165,0.612,167,2.009,185,2.06,187,0.754,216,1.703,217,1.803,221,1.24,227,1.351,234,1.495,247,3.077,305,1.514,334,0.58,336,1.282,347,1.072,359,1.824,363,4.98,483,2.532,543,5.681,576,7.759,643,3.734,740,6.775,905,2.185,946,3.428,1016,3.289,1062,2.296,1388,6.058,1491,3.007,1683,6.388,1700,8.879,1701,4.86,1702,4.86,1703,7.621,1704,9.389,1705,6.775,1706,4.86,1707,4.86,1708,3.812,1709,4.596,1710,4.86,1711,4.399,1712,4.86,1713,4.86,1714,4.596,1715,6.775,1716,4.86,1717,3.379,1718,4.86,1719,4.86,1720,3.998,1721,4.596,1722,4.399,1723,4.241,1724,2.95,1725,6.674,1726,8.508,1727,4.86,1728,4.86,1729,7.164,1730,7.164,1731,4.86,1732,10.474,1733,4.86,1734,4.86,1735,10.011,1736,10.011,1737,11.54,1738,4.86,1739,4.86,1740,10.011,1741,4.86,1742,9.389,1743,4.86,1744,4.86,1745,7.701,1746,4.86,1747,4.86,1748,4.86,1749,4.86,1750,4.86,1751,4.86,1752,4.86,1753,4.86,1754,7.164,1755,4.86,1756,4.596,1757,4.86,1758,3.998,1759,7.164,1760,4.86,1761,4.86,1762,4.86,1763,7.164,1764,4.86,1765,7.164,1766,4.86,1767,4.86,1768,7.164,1769,4.86,1770,4.86,1771,4.86,1772,7.164,1773,3.379,1774,4.86,1775,4.86,1776,4.86,1777,4.86,1778,4.86,1779,4.86,1780,4.86]],["title/injectables/AuthenticationService.html",[105,0.89,1627,5]],["body/injectables/AuthenticationService.html",[0,0.175,3,0.014,4,0.014,5,0.007,7,0.079,8,0.922,21,6.385,27,0.496,29,0.949,30,0.001,31,0.671,32,0.171,33,0.598,34,0.884,35,1.407,36,2.6,47,0.993,48,5.284,51,3.774,59,1.6,66,6.806,73,4.761,74,4.154,77,3.264,83,1.551,87,2.547,94,5.349,95,0.165,101,0.01,103,0,104,0,105,1.007,107,1.233,111,2.013,112,2.864,127,0.965,145,1.33,148,2.363,167,3.474,187,0.738,216,1.861,217,1.484,221,2.533,227,1.061,231,2.975,234,1.744,305,2.198,369,1.139,403,3.409,461,1.188,647,4.502,789,7.48,801,3.006,804,3.916,818,8.44,1247,4.761,1627,5.661,1629,9.389,1638,4.502,1648,3.82,1654,4.502,1683,3.038,1703,3.464,1708,3.734,1773,3.31,1781,5.153,1782,7.637,1783,7.637,1784,7.055,1785,7.637,1786,7.637,1787,7.637,1788,5.153,1789,11.254,1790,5.153,1791,7.637,1792,5.153,1793,7.637,1794,8.112,1795,5.153,1796,7.055,1797,5.153,1798,7.637,1799,5.153,1800,7.637,1801,5.153,1802,7.637,1803,5.153,1804,5.153,1805,7.637,1806,5.153,1807,4.026,1808,3.82,1809,5.153,1810,4.502,1811,7.637,1812,3.657,1813,5.534,1814,4.502,1815,5.153,1816,5.153,1817,4.309,1818,5.153,1819,3.31,1820,4.309,1821,7.108,1822,3.657,1823,5.153,1824,5.153,1825,5.153,1826,4.761,1827,6.744,1828,3.405,1829,5.153,1830,5.153,1831,5.153,1832,5.153,1833,7.055,1834,5.153,1835,7.637,1836,7.637,1837,5.153,1838,7.637,1839,4.761,1840,5.153,1841,3.734,1842,4.502,1843,7.055,1844,5.153,1845,5.153,1846,5.153,1847,5.153,1848,3.464,1849,5.153,1850,4.154,1851,5.153,1852,5.153,1853,5.153]],["title/interfaces/AuthorizableObject.html",[334,0.743,1854,3.934]],["body/interfaces/AuthorizableObject.html",[0,0.328,3,0.026,4,0.026,5,0.014,9,4.607,26,2.614,30,0.001,34,2,95,0.123,101,0.022,103,0.001,104,0.001,116,3.772,208,3.575,214,3.17,217,1.27,227,1.228,334,1.061,336,2.347,405,2.596,595,4.012,661,4.058,692,4.668,1854,7.306,1855,8.897,1856,8.414,1857,4.119,1858,9.742,1859,8.897,1860,6.371,1861,10.763]],["title/interfaces/AuthorizationContext.html",[334,0.743,1862,3.714]],["body/interfaces/AuthorizationContext.html",[3,0.026,4,0.026,5,0.014,7,0.153,30,0.001,32,0.167,95,0.152,99,1.691,101,0.019,103,0.001,104,0.001,165,0.938,334,1.098,336,2.428,843,5.747,1862,6.547,1863,8.705,1864,9.206,1865,7.286,1866,7.452,1867,9.965]],["title/classes/AuthorizationContextBuilder.html",[0,0.23,1868,4.273]],["body/classes/AuthorizationContextBuilder.html",[0,0.277,2,0.936,3,0.022,4,0.022,5,0.012,7,0.125,8,1.268,27,0.482,29,0.921,30,0.001,31,0.651,32,0.163,33,0.58,35,1.402,95,0.135,99,1.383,101,0.016,103,0.001,104,0.001,111,2.323,199,4.96,208,3.024,217,1.531,227,1.224,627,4.212,667,4.928,843,5.954,1862,7.276,1865,7.013,1866,6.941,1868,6.649,1869,12.263,1870,8.149,1871,6.479,1872,6.943,1873,10.496,1874,8.149,1875,10.496,1876,8.149,1877,10.496,1878,8.149,1879,10.496,1880,5.309,1881,5.162]],["title/classes/AuthorizationError.html",[0,0.23,1882,6.231]],["body/classes/AuthorizationError.html",[0,0.261,2,0.882,3,0.02,4,0.02,5,0.011,7,0.118,8,1.22,27,0.541,29,0.609,30,0.001,31,0.431,32,0.189,33,0.564,35,0.928,47,0.931,55,1.69,59,3.135,95,0.129,101,0.015,103,0.001,104,0.001,127,0.971,165,0.797,187,1.1,204,4.273,216,2.497,364,2.309,404,1.826,406,2.454,564,2.851,596,3.883,1013,5.498,1016,2.743,1253,5.205,1291,5.102,1327,4.919,1472,8.258,1473,7.448,1474,4.07,1475,7.248,1479,5.005,1480,4.307,1481,5.005,1482,5.005,1483,5.005,1484,5.005,1485,5.005,1486,4.685,1487,4.39,1488,6.001,1493,4.866,1865,4.023,1882,9.331,1883,7.682,1884,8.143,1885,7.682,1886,7.682,1887,4.742,1888,6.711,1889,7.097]],["title/injectables/AuthorizationHelper.html",[105,0.89,1890,4.273]],["body/injectables/AuthorizationHelper.html",[0,0.206,3,0.016,4,0.016,5,0.009,7,0.093,8,1.035,27,0.475,29,0.97,30,0.001,31,0.642,32,0.171,33,0.572,35,1.383,47,0.939,95,0.128,96,1.634,101,0.012,103,0.001,104,0.001,105,1.131,107,1.447,111,1.993,116,4.261,187,0.866,217,1.648,227,1.289,247,2.398,347,2.591,369,1.336,371,2.363,380,2.558,398,1.77,461,3.159,496,4.824,692,4.656,738,3.489,806,3.612,1062,2.638,1828,5.453,1866,7.194,1890,5.43,1891,6.043,1892,8.573,1893,10.388,1894,8.573,1895,7.92,1896,8.573,1897,8.573,1898,9.963,1899,12.496,1900,6.043,1901,7.92,1902,6.043,1903,8.573,1904,6.043,1905,7.92,1906,6.043,1907,8.573,1908,10.842,1909,6.043,1910,4.05,1911,3.731,1912,5.583,1913,7.489,1914,7.92,1915,5.583,1916,4.826,1917,5.279,1918,8.573,1919,2.51,1920,6.043,1921,3.998,1922,3.828,1923,5.053,1924,4.592,1925,3.141,1926,5.583,1927,5.583,1928,5.292,1929,6.043,1930,6.043,1931,6.043,1932,5.861,1933,6.043,1934,6.043]],["title/interfaces/AuthorizationLoaderService.html",[334,0.743,1935,5.438]],["body/interfaces/AuthorizationLoaderService.html",[3,0.025,4,0.025,5,0.013,7,0.146,8,1.395,12,5.328,26,2.771,27,0.394,29,0.753,30,0.001,31,0.532,32,0.133,33,0.474,34,1.63,35,1.147,36,2.706,40,5.993,95,0.16,99,1.611,101,0.022,103,0.001,104,0.001,334,1.273,336,2.314,359,3.293,404,1.717,1854,5.538,1863,10.091,1935,10.036,1936,9.024,1937,8.295,1938,9.495,1939,5.481,1940,6.014,1941,6.738,1942,7.215,1943,7.938]],["title/interfaces/AuthorizationLoaderServiceGeneric.html",[334,0.743,1943,5.64]],["body/interfaces/AuthorizationLoaderServiceGeneric.html",[3,0.025,4,0.025,5,0.013,7,0.145,8,1.391,12,5.312,26,2.767,27,0.392,29,0.75,30,0.001,31,0.53,32,0.132,33,0.472,34,1.622,35,1.141,36,2.7,40,5.98,95,0.159,99,1.604,101,0.022,103,0.001,104,0.001,334,1.269,336,2.303,359,3.277,404,2.082,1854,5.512,1863,10.062,1935,10.016,1936,8.998,1937,8.256,1939,5.455,1940,5.986,1941,6.706,1942,7.181,1943,9.63,1944,9.45]],["title/modules/AuthorizationModule.html",[425,1.808,1945,3.65]],["body/modules/AuthorizationModule.html",[0,0.186,3,0.015,4,0.015,5,0.008,30,0.001,95,0.167,101,0.01,103,0,104,0,187,0.784,191,3.042,192,1.633,425,2.527,427,2.024,428,2.135,429,2.202,430,2.192,431,2.173,432,3.485,433,3.555,438,5.432,441,7.013,442,3.211,443,2.154,444,2.099,449,3.211,450,2.253,1545,1.749,1632,8.005,1890,7.285,1919,2.274,1945,7.778,1946,5.476,1947,5.476,1948,5.476,1949,5.476,1950,9.271,1951,7.386,1952,6.933,1953,10.804,1954,8.662,1955,8.662,1956,8.984,1957,8.352,1958,7.013,1959,7.679,1960,9.271,1961,8.662,1962,7.386,1963,8.352,1964,9.271,1965,9.615,1966,8.524,1967,8.662,1968,8.738,1969,8.662,1970,8.005,1971,8.352,1972,8.662,1973,7.73,1974,8.662,1975,8.662,1976,5.476,1977,7.212,1978,7.986,1979,5.059,1980,4.784,1981,6.068,1982,4.784,1983,6.239,1984,2.342,1985,5.059,1986,5.476,1987,3.517,1988,4.784,1989,3.38,1990,4.278,1991,2.963,1992,5.476,1993,3.744,1994,5.059]],["title/classes/AuthorizationParams.html",[0,0.23,1995,5.27]],["body/classes/AuthorizationParams.html",[0,0.366,2,0.973,3,0.022,4,0.022,5,0.012,7,0.13,27,0.533,30,0.001,32,0.18,33,0.674,47,0.983,95,0.138,101,0.016,102,5.431,103,0.001,104,0.001,165,0.849,204,4.058,364,2.381,374,2.708,460,6.76,470,5.412,471,5.465,602,8.999,614,7.403,1001,7.049,1044,4.16,1253,5.455,1995,8.408,1996,8.475,1997,9.24,1998,10.926,1999,7.829,2000,8.475,2001,10.926,2002,7.829,2003,8.475,2004,8.475,2005,8.475,2006,8.475,2007,7.829,2008,5.443,2009,7.829,2010,7.829]],["title/injectables/AuthorizationService.html",[105,0.89,1952,3.619]],["body/injectables/AuthorizationService.html",[0,0.15,3,0.012,4,0.012,5,0.006,7,0.068,8,0.819,26,2.803,27,0.496,29,0.947,30,0.001,31,0.67,32,0.167,33,0.597,35,1.412,36,2.303,39,2.689,47,0.898,80,3.681,95,0.15,99,0.747,101,0.008,102,3.422,103,0,104,0,105,0.894,107,1.054,111,1.654,112,2.623,116,4.391,127,0.857,148,3.279,167,1.681,187,0.631,199,5.038,204,1.511,208,1.634,216,1.53,217,1.397,221,1.95,227,1.057,234,1.628,284,2.654,305,2.887,347,2.16,359,4.331,461,3.117,722,1.942,784,3.58,885,5.671,1158,3.609,1440,3.01,1441,3.264,1819,2.828,1854,6.439,1862,6.875,1866,7.277,1890,6.993,1893,5.924,1895,6.264,1901,6.264,1905,6.264,1919,3.435,1928,6.541,1936,6.461,1939,6.373,1940,2.789,1952,3.638,1964,7.489,1965,8.86,1985,4.068,1988,3.847,1989,5.105,1990,3.44,2011,4.403,2012,6.781,2013,6.781,2014,5.026,2015,8.27,2016,6.264,2017,8.27,2018,4.403,2019,4.403,2020,6.781,2021,4.403,2022,6.781,2023,4.403,2024,6.781,2025,4.403,2026,4.403,2027,7.193,2028,4.403,2029,5.924,2030,4.403,2031,4.403,2032,4.403,2033,4.418,2034,4.403,2035,4.403,2036,4.403,2037,5.363,2038,5.654,2039,3.847,2040,4.403,2041,4.403,2042,4.403,2043,4.403,2044,6.781,2045,6.781,2046,4.403,2047,4.403,2048,3.847,2049,3.55,2050,4.068,2051,4.403,2052,4.403,2053,4.403,2054,3.847,2055,4.403,2056,4.558,2057,6.781,2058,6.781,2059,4.403]],["title/classes/AxiosResponseImp.html",[0,0.23,2060,6.231]],["body/classes/AxiosResponseImp.html",[0,0.255,2,0.861,3,0.02,4,0.02,5,0.011,7,0.115,27,0.527,29,0.595,30,0.001,31,0.42,32,0.184,33,0.375,47,0.865,55,2.453,95,0.127,101,0.019,103,0.001,104,0.001,127,0.947,154,5.633,163,3.896,165,0.784,214,3.271,217,0.989,227,0.79,234,1.81,405,2.679,498,5.125,564,4.585,595,2.581,660,4.091,692,4.155,731,2.935,736,4.418,1026,4.164,1298,3.519,1299,3.478,1300,3.478,1301,3.679,1302,4.022,1381,7.406,2060,10.3,2061,12.955,2062,6.925,2063,7.761,2064,12.355,2065,12.355,2066,9.939,2067,11.874,2068,7.496,2069,12.355,2070,7.496,2071,6.925,2072,7.496,2073,9.939,2074,5.125,2075,9.939,2076,3.957,2077,7.496,2078,4.372,2079,5.218,2080,7.496,2081,7.496,2082,7.496,2083,7.496,2084,6.043,2085,6.267,2086,5.218,2087,7.496,2088,6.925]],["title/classes/BBBBaseMeetingConfig.html",[0,0.23,2089,5]],["body/classes/BBBBaseMeetingConfig.html",[0,0.333,2,1.122,3,0.026,4,0.026,5,0.014,7,0.15,27,0.488,29,0.775,30,0.001,31,0.548,32,0.165,33,0.488,47,0.856,101,0.019,103,0.001,104,0.001,127,1.235,154,4.455,165,0.928,2089,9.919,2090,6.407,2091,11.012,2092,7.135,2093,9.772,2094,8.946,2095,10.268,2096,9.772,2097,9.772,2098,9.027,2099,8.536]],["title/interfaces/BBBBaseResponse.html",[334,0.743,2100,4.695]],["body/interfaces/BBBBaseResponse.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.177,47,0.991,95,0.126,101,0.019,103,0.001,104,0.001,165,0.93,334,1.082,336,2.393,1327,5.175,2090,4.99,2100,8.205,2101,8.21,2102,9.819,2103,13.102,2104,13.102,2105,12.103,2106,5.788,2107,7.671]],["title/classes/BBBCreateConfig.html",[0,0.23,2108,5.64]],["body/classes/BBBCreateConfig.html",[0,0.233,2,0.788,3,0.018,4,0.018,5,0.01,7,0.105,27,0.554,29,0.544,30,0.001,31,0.733,32,0.187,33,0.69,47,0.986,95,0.088,101,0.018,103,0.001,104,0.001,127,0.867,154,3.126,165,0.739,347,2.334,404,1.692,596,2.083,1031,2.198,2089,8.488,2090,6.784,2091,11.661,2092,3.881,2094,6.643,2095,8.177,2098,6.335,2099,5.99,2106,4.042,2108,10.022,2109,6.857,2110,10.658,2111,10.658,2112,10.808,2113,6.751,2114,10.658,2115,9.663,2116,6.486,2117,10.658,2118,10.658,2119,9.846,2120,6.857,2121,6.857,2122,6.857,2123,6.857,2124,6.857,2125,6.857,2126,6.857,2127,6.857,2128,6.857,2129,6.857,2130,6.335,2131,6.335,2132,9.361,2133,9.361,2134,9.361,2135,6.335,2136,2.745,2137,6.857,2138,5.082,2139,6.857,2140,6.857,2141,6.857,2142,6.857,2143,6.857,2144,6.857,2145,6.857,2146,6.857,2147,6.857,2148,6.857,2149,6.857,2150,6.857,2151,6.857]],["title/classes/BBBCreateConfigBuilder.html",[0,0.23,2152,5.893]],["body/classes/BBBCreateConfigBuilder.html",[0,0.238,2,0.803,3,0.019,4,0.019,5,0.01,7,0.107,8,1.145,27,0.516,29,0.916,30,0.001,31,0.677,32,0.169,33,0.577,35,1.457,47,0.927,95,0.138,101,0.013,102,3.526,103,0.001,104,0.001,144,2.942,165,0.748,204,2.398,216,1.754,227,1.272,347,2.194,367,3.364,369,1.545,404,1.714,596,2.88,661,3.995,667,5.419,691,3.66,692,2.604,728,2.737,883,5.217,956,4.553,2090,6.132,2106,4.119,2108,8.998,2112,10.87,2113,6.006,2115,5.633,2116,3.781,2119,8.759,2152,11.594,2153,11.146,2154,6.456,2155,8.363,2156,7.928,2157,9.482,2158,9.482,2159,9.482,2160,9.482,2161,6.456,2162,6.988,2163,9.482,2164,6.988,2165,9.482,2166,6.988,2167,9.482,2168,6.988,2169,9.482,2170,6.988,2171,3.004,2172,3.342,2173,3.223,2174,4.427,2175,5.064,2176,6.988,2177,6.988,2178,6.988,2179,6.988,2180,4.427,2181,6.988,2182,6.456,2183,5.18,2184,6.105,2185,3.955,2186,4.427,2187,4.697,2188,5.633,2189,6.988,2190,5.459,2191,6.988,2192,6.105,2193,6.988,2194,6.988]],["title/interfaces/BBBCreateResponse.html",[334,0.743,2195,5.893]],["body/interfaces/BBBCreateResponse.html",[3,0.022,4,0.022,5,0.012,7,0.13,30,0.001,32,0.192,47,1.023,55,2.995,95,0.108,101,0.016,103,0.001,104,0.001,165,0.847,334,0.93,336,2.056,347,2.672,404,1.941,2090,4.289,2094,8.817,2100,8.217,2101,7.056,2106,4.975,2195,9.377,2196,8.439,2197,11.477,2198,11.477,2199,11.477,2200,10.853,2201,11.477,2202,11.477,2203,11.477,2204,11.477,2205,11.477,2206,7.056]],["title/classes/BBBJoinConfig.html",[0,0.23,2207,5.64]],["body/classes/BBBJoinConfig.html",[0,0.272,2,0.919,3,0.021,4,0.021,5,0.011,7,0.123,27,0.546,29,0.635,30,0.001,31,0.449,32,0.185,33,0.658,39,3.086,47,0.958,95,0.103,101,0.02,103,0.001,104,0.001,127,1.011,154,3.649,165,0.819,347,2.115,404,1.876,415,4.367,496,4.85,596,2.43,1031,2.565,2089,9.027,2090,6.689,2091,11.497,2092,4.53,2094,7.362,2095,9.063,2106,4.717,2130,7.393,2131,7.393,2135,7.393,2175,8.341,2207,10.55,2208,8.003,2209,10.057,2210,11.512,2211,7.5,2212,8.003,2213,8.003,2214,8.003,2215,8.003,2216,8.003,2217,8.003,2218,9.063,2219,10.375,2220,8.003,2221,8.003,2222,6.081,2223,8.003,2224,8.003,2225,8.003,2226,8.003,2227,6.691,2228,8.003]],["title/classes/BBBJoinConfigBuilder.html",[0,0.23,2229,5.893]],["body/classes/BBBJoinConfigBuilder.html",[0,0.272,2,0.919,3,0.021,4,0.021,5,0.011,7,0.123,8,1.253,27,0.524,29,0.913,30,0.001,31,0.646,32,0.171,33,0.575,35,1.471,47,0.838,95,0.133,101,0.015,103,0.001,104,0.001,144,3.534,165,0.819,216,1.919,227,1.213,347,2.346,404,1.876,596,3.151,661,4.371,667,5.405,692,3.866,2090,6.19,2153,11.251,2154,7.393,2155,8.69,2156,8.674,2161,7.393,2175,8.825,2207,6.691,2229,11.653,2230,9.255,2231,10.375,2232,9.584,2233,9.584,2234,10.375,2235,8.003,2236,10.375,2237,8.003,2238,10.375,2239,8.003,2240,8.003,2241,8.003,2242,8.003,2243,8.003,2244,8.003,2245,8.003]],["title/interfaces/BBBJoinResponse.html",[334,0.743,2246,6.231]],["body/interfaces/BBBJoinResponse.html",[3,0.025,4,0.025,5,0.013,7,0.143,30,0.001,32,0.185,47,1.034,95,0.119,101,0.018,103,0.001,104,0.001,150,4.721,165,0.901,334,1.027,336,2.271,404,2.065,2090,4.736,2100,8.595,2101,7.791,2106,5.493,2206,7.791,2246,10.55,2247,8.609,2248,12.871,2249,12.871,2250,12.871,2251,11.89]],["title/interfaces/BBBMeetingInfoResponse.html",[334,0.743,2252,5.27]],["body/interfaces/BBBMeetingInfoResponse.html",[3,0.016,4,0.016,5,0.009,7,0.095,30,0.001,32,0.198,33,0.548,39,1.663,47,1.008,55,3.117,95,0.079,101,0.012,103,0.001,104,0.001,138,5.207,165,0.689,334,0.683,336,1.511,347,2.812,404,1.579,496,2.613,674,3.385,1062,2.707,2090,3.152,2094,7.783,2100,7.034,2101,5.185,2106,3.656,2197,10.132,2198,10.132,2199,10.132,2200,9.581,2201,10.132,2202,10.132,2203,10.132,2204,5.729,2205,10.132,2206,5.185,2209,5.418,2252,6.821,2253,5.729,2254,5,2255,10.968,2256,11.56,2257,10.968,2258,10.132,2259,10.968,2260,10.968,2261,10.968,2262,10.968,2263,7.783,2264,10.968,2265,10.968,2266,10.968,2267,7.947,2268,10.132,2269,10.968,2270,10.968,2271,5.729,2272,6.202,2273,6.202,2274,6.202,2275,6.202,2276,6.202,2277,6.202]],["title/interfaces/BBBResponse.html",[334,0.743,2278,5.126]],["body/interfaces/BBBResponse.html",[3,0.027,4,0.027,5,0.015,7,0.158,30,0.001,32,0.144,95,0.132,101,0.02,103,0.001,104,0.001,165,0.957,334,1.134,336,2.509,692,4.803,1016,4.752,2090,5.233,2100,7.167,2106,6.069,2206,8.609,2278,9.214,2279,10.297]],["title/injectables/BBBService.html",[105,0.89,2280,5.126]],["body/injectables/BBBService.html",[0,0.118,3,0.009,4,0.009,5,0.005,7,0.053,8,0.678,27,0.482,29,0.961,30,0.001,31,0.638,32,0.156,33,0.541,35,1.521,36,2.474,47,0.958,95,0.146,101,0.007,103,0,104,0,105,0.741,107,0.83,111,2.014,112,1.588,127,0.71,150,4.326,154,4.78,163,1.771,167,1.325,185,2.2,187,0.497,193,10.586,216,1.309,217,1.632,221,0.818,227,1.277,234,1.806,235,1.964,238,3.829,250,9.057,254,2.901,255,4.907,256,2.901,264,4.587,270,3.031,305,2.752,359,3.492,367,1.67,379,0.8,661,4.888,687,2.606,691,4.261,839,1.629,883,3.411,884,2.653,956,3.66,1016,1.239,1265,6.884,1266,1.983,1268,2.228,1381,2.023,1426,4.907,1439,4.574,1440,2.372,1441,2.571,1460,4.696,1491,3.21,1510,3.511,1812,3.986,2054,6.182,2063,5.662,2074,2.372,2076,1.831,2089,8.743,2090,5.995,2094,2.462,2099,3.031,2100,2.415,2105,3.205,2106,6.953,2108,8.766,2183,4.163,2186,3.558,2187,3.775,2188,4.528,2195,3.031,2207,7.471,2230,7.267,2252,2.71,2253,9.686,2278,7.267,2280,4.268,2281,3.469,2282,3.775,2283,5.617,2284,5.617,2285,5.189,2286,5.617,2287,5.705,2288,7.806,2289,3.469,2290,6.558,2291,8.419,2292,3.469,2293,6.182,2294,5.617,2295,3.469,2296,5.773,2297,5.617,2298,3.385,2299,5.189,2300,5.617,2301,5.617,2302,3.469,2303,4.907,2304,5.617,2305,3.469,2306,5.189,2307,4.907,2308,9.564,2309,3.149,2310,8.135,2311,5.617,2312,3.469,2313,5.617,2314,3.469,2315,5.617,2316,3.469,2317,7.106,2318,5.617,2319,5.617,2320,3.469,2321,3.715,2322,5.617,2323,3.469,2324,4.907,2325,5.189,2326,3.469,2327,3.469,2328,3.469,2329,3.469,2330,3.469,2331,3.469,2332,3.469,2333,7.463,2334,2.797,2335,2.901,2336,3.469,2337,3.469,2338,3.469,2339,3.469,2340,6.558,2341,3.469,2342,8.135,2343,5.617,2344,1.434,2345,3.469,2346,3.469,2347,3.469,2348,6.538,2349,6.538,2350,9.564,2351,5.617,2352,5.617,2353,7.077,2354,7.077,2355,7.077,2356,7.077,2357,6.538,2358,3.469,2359,3.469,2360,3.469,2361,3.469,2362,5.189,2363,3.469,2364,3.469,2365,3.469,2366,3.469,2367,4.696,2368,3.469,2369,3.469,2370,3.469,2371,3.469,2372,3.469,2373,3.469,2374,3.469,2375,3.469,2376,3.469,2377,3.469,2378,3.205,2379,3.469]],["title/classes/BaseDO.html",[0,0.23,1939,3.894]],["body/classes/BaseDO.html",[0,0.334,2,1.128,3,0.026,4,0.026,5,0.014,7,0.151,9,4.696,27,0.489,29,0.779,30,0.001,31,0.551,32,0.165,33,0.631,34,2.3,47,0.976,59,3.048,101,0.019,102,4.955,103,0.001,104,0.001,127,1.241,165,0.93,618,4.178,661,4.967,1939,6.805,2380,9.819,2381,9.209,2382,11.788]],["title/injectables/BaseDORepo.html",[105,0.89,2383,4.611]],["body/injectables/BaseDORepo.html",[0,0.139,3,0.011,4,0.011,5,0.006,7,0.063,8,0.775,9,5.705,10,3.61,12,2.958,18,3.17,26,2.595,27,0.522,29,0.987,30,0.001,31,0.697,32,0.174,33,0.621,34,2.009,35,1.484,36,2.852,40,3.087,47,0.467,49,1.598,55,0.902,95,0.124,96,1.734,97,1.744,99,0.696,101,0.008,102,2.068,103,0,104,0,105,0.846,107,0.981,111,2.425,112,2.89,127,0.518,148,1.268,165,0.506,187,0.587,216,1.186,217,1.699,221,2.697,227,1.206,234,1.041,247,1.626,359,2.224,380,2.571,381,2.111,398,1.2,500,4.385,524,3.781,574,1.858,595,1.411,661,4.931,770,2.416,878,4.464,884,3.03,885,4.828,915,2.256,929,3.58,1008,4.312,1052,3.221,1053,3.964,1143,3.786,1545,1.309,1857,3.823,1919,1.702,1939,2.366,2092,3.63,2321,2.711,2383,4.385,2384,4.098,2385,4.552,2386,4.552,2387,4.552,2388,4.552,2389,4.464,2390,4.464,2391,4.552,2392,4.464,2393,4.552,2394,2.97,2395,5.109,2396,4.098,2397,4.647,2398,4.552,2399,4.098,2400,7.537,2401,4.552,2402,4.098,2403,4.552,2404,4.098,2405,5.227,2406,4.552,2407,4.552,2408,4.098,2409,4.552,2410,4.098,2411,4.552,2412,8.038,2413,4.098,2414,4.098,2415,4.552,2416,4.098,2417,4.311,2418,4.464,2419,4.098,2420,4.552,2421,4.098,2422,3.911,2423,3.911,2424,4.552,2425,4.098,2426,4.552,2427,4.098,2428,2.908,2429,4.552,2430,4.098,2431,4.098,2432,5.327,2433,2.67,2434,3.58,2435,2.755,2436,7.902,2437,4.098,2438,4.098,2439,4.647,2440,4.098,2441,6.983,2442,4.098,2443,4.098,2444,5.01,2445,3.786,2446,2.908,2447,4.754,2448,9.505,2449,6.414,2450,4.063,2451,3.786,2452,4.098,2453,4.098,2454,4.098,2455,4.098,2456,5.603,2457,4.098,2458,4.098,2459,3.426,2460,4.098,2461,4.098,2462,4.098,2463,4.098,2464,4.098,2465,4.098,2466,4.098,2467,4.098,2468,3.426,2469,4.098,2470,4.098,2471,4.098,2472,4.098,2473,4.098,2474,4.098,2475,3.426,2476,3.58,2477,2.53,2478,2.342,2479,4.098,2480,4.098,2481,4.098,2482,3.58]],["title/classes/BaseDomainObject.html",[0,0.23,2483,6.231]],["body/classes/BaseDomainObject.html",[0,0.396,2,1.106,3,0.026,4,0.026,5,0.014,7,0.148,9,6.375,27,0.4,30,0.001,32,0.135,34,2.15,47,0.848,95,0.123,101,0.018,102,5.879,103,0.001,104,0.001,165,0.919,214,3.835,334,1.061,359,3.34,1854,7.306,1856,8.414,1865,5.044,2483,10.763,2484,11.652,2485,5.412,2486,9.631,2487,8.897,2488,6.584,2489,5.504,2490,7.764,2491,8.897,2492,9.631]],["title/classes/BaseEntity.html",[0,0.23,2433,4.395]],["body/classes/BaseEntity.html",[0,0.383,2,0.876,3,0.02,4,0.02,5,0.011,7,0.117,9,4.807,27,0.417,30,0.001,32,0.174,34,2.19,47,0.819,49,4.661,72,3.579,83,3.383,95,0.153,96,2.717,97,3.244,101,0.023,103,0.001,104,0.001,165,0.943,214,3.701,217,1.005,234,1.825,240,3.523,334,0.84,359,2.644,364,2.084,380,2.103,381,2.509,398,2.233,399,3.936,574,3.456,591,4.298,592,4.434,672,3.875,722,3.363,938,5.524,946,4.967,960,5.212,1240,4.401,1253,3.516,1278,6.903,1309,5.307,1854,6.971,1919,3.166,2183,5.651,2423,4.649,2433,7.326,2434,6.66,2485,3.294,2493,7.043,2494,8.784,2495,10.442,2496,7.624,2497,10.442,2498,7.624,2499,6.374,2500,4.706,2501,5.524,2502,6.374,2503,6.146,2504,6.374,2505,6.374,2506,7.043,2507,4.896,2508,4.896,2509,5.651,2510,4.829,2511,7.043,2512,7.043,2513,7.043,2514,5.043,2515,6.374,2516,6.66,2517,7.043,2518,6.66,2519,7.043]],["title/classes/BaseEntityWithTimestamps.html",[0,0.23,399,2.641]],["body/classes/BaseEntityWithTimestamps.html",[0,0.374,2,0.834,3,0.019,4,0.019,5,0.01,7,0.112,9,4.656,27,0.487,30,0.001,32,0.171,34,2.16,47,0.799,49,4.572,72,3.411,83,3.679,95,0.15,96,2.631,97,3.092,101,0.022,103,0.001,104,0.001,144,2.661,165,0.925,214,3.613,217,0.958,234,1.984,240,3.675,329,2.868,334,0.801,359,2.52,364,2.267,380,2.036,381,2.391,398,2.128,399,4.299,574,3.294,591,5.015,592,5.173,672,3.693,722,3.205,938,5.265,946,4.734,960,4.967,1240,4.194,1253,3.351,1278,6.809,1309,5.058,1854,6.839,1919,3.017,2183,5.385,2423,4.431,2433,6.342,2434,6.347,2485,3.139,2493,6.712,2494,7.605,2495,10.244,2497,10.244,2499,6.075,2500,4.485,2501,5.265,2502,6.075,2503,5.857,2504,6.075,2505,6.075,2506,6.712,2507,4.666,2508,4.666,2509,5.385,2510,4.602,2511,6.712,2512,6.712,2513,6.712,2514,4.806,2515,6.075,2516,6.347,2517,6.712,2518,6.347,2519,6.712,2520,7.266,2521,7.266,2522,7.266,2523,6.712,2524,7.266]],["title/classes/BaseFactory.html",[0,0.23,660,3.681]],["body/classes/BaseFactory.html",[0,0.23,2,0.374,3,0.009,4,0.009,5,0.005,7,0.05,8,0.644,27,0.489,29,0.986,30,0.001,31,0.626,32,0.174,33,0.558,34,1.682,35,1.474,47,0.493,49,1.268,55,2.397,59,2.682,95,0.068,101,0.006,103,0,104,0,127,0.856,138,3.4,144,3.051,148,1.649,165,0.618,185,4.73,215,1.053,216,1.448,217,1.626,227,1.116,234,1.882,247,2.115,264,4.613,329,3.356,334,0.587,359,2.715,366,1.791,379,1.805,380,2.601,381,2.577,538,4.161,595,2.975,627,2.108,660,2.909,661,4.461,662,6.601,665,2.989,666,5.203,667,5.603,668,2.989,669,2.989,670,2.989,671,2.935,672,4.391,673,4.39,674,5.946,675,5.999,676,7.335,682,1.824,683,3.797,685,5.132,686,5.348,687,4.009,688,5.173,689,4.8,690,1.824,691,1.704,692,4.633,693,1.775,694,1.745,695,2.989,696,4.787,698,5.109,699,2.989,700,6.691,701,4.113,702,6.5,704,4.586,705,2.989,707,1.824,709,2.989,711,3.177,712,1.824,713,6.144,715,1.824,716,5.735,717,4.311,718,4.39,720,5.302,721,3.633,722,2.351,723,2.989,724,4.39,725,2.989,728,2.087,729,2.989,731,4.005,732,2.989,735,1.878,808,2.842,948,2.472,1278,1.76,1298,3.676,1299,3.633,1300,3.633,1301,3.843,1302,3.633,1303,2.224,1315,2.541,1379,6.165,1756,2.842,2086,3.71,2450,3.376,2525,3.253,2526,3.376,2527,5.33,2528,3.253,2529,5.33,2530,3.253,2531,3.253,2532,3.253,2533,3.253,2534,3.253,2535,3.253,2536,3.253,2537,3.253,2538,3.253,2539,3.253,2540,3.253,2541,3.253,2542,4.924,2543,4.05,2544,3.253,2545,3.253,2546,3.253,2547,3.253,2548,3.253,2549,3.005,2550,5.33,2551,5.33,2552,3.253,2553,3.253,2554,7.83,2555,3.253,2556,10.228,2557,7.83,2558,3.253,2559,3.253,2560,3.253,2561,3.253,2562,3.253,2563,3.332,2564,3.253,2565,3.253,2566,3.253,2567,3.253,2568,3.253]],["title/injectables/BaseRepo.html",[105,0.89,877,3.934]],["body/injectables/BaseRepo.html",[0,0.228,3,0.018,4,0.018,5,0.009,7,0.103,8,1.114,9,4.41,10,3.724,12,4.253,18,4.557,26,2.368,27,0.51,29,0.944,30,0.001,31,0.667,32,0.167,33,0.594,34,1.583,35,1.37,36,2.828,40,4.439,49,4.424,95,0.158,96,2.493,97,2.855,101,0.013,103,0.001,104,0.001,105,1.216,107,1.606,112,2.919,127,0.848,187,0.961,216,1.241,217,0.885,221,2.174,227,0.972,379,1.546,380,1.929,381,3.035,398,1.965,692,5.132,734,3.873,774,6.304,877,5.378,883,3.867,884,4.356,885,5.918,908,5.623,910,5.623,913,5.623,915,3.693,1911,4.141,1922,5.841,2321,4.438,2383,6.304,2394,4.861,2395,6.485,2397,6.682,2432,5.495,2433,4.371,2435,4.509,2445,6.197,2451,6.197,2456,5.86,2485,3.984,2569,6.709,2570,6.139,2571,6.419,2572,5.922,2573,8.519,2574,9.221,2575,9.221,2576,8.519,2577,6.304,2578,6.008,2579,6.544,2580,6.709,2581,6.709,2582,6.709,2583,6.709,2584,6.709,2585,6.709,2586,3.541,2587,6.709]],["title/interfaces/BaseResponseMapper.html",[334,0.743,2588,5.27]],["body/interfaces/BaseResponseMapper.html",[3,0.025,4,0.025,5,0.013,7,0.145,8,1.387,27,0.477,29,0.911,30,0.001,31,0.644,32,0.181,33,0.574,35,1.387,95,0.147,99,1.596,100,3.149,101,0.018,103,0.001,104,0.001,334,1.036,336,2.292,347,2.341,692,5.019,975,6.564,2588,8.972,2589,12.399,2590,9.406,2591,9.603,2592,9.603,2593,9.406,2594,5.066,2595,9.259,2596,9.406,2597,10.366,2598,4.78]],["title/classes/BasicToolConfig.html",[0,0.23,2599,4.888]],["body/classes/BasicToolConfig.html",[0,0.313,2,1.058,3,0.024,4,0.024,5,0.013,7,0.142,27,0.51,29,0.731,30,0.001,31,0.517,32,0.188,33,0.46,47,0.671,95,0.145,101,0.018,103,0.001,104,0.001,127,1.164,165,0.895,198,4.406,200,3.002,209,4.23,238,6.647,404,2.05,405,3.057,406,2.943,595,3.172,596,3.444,2599,9.538,2600,4.95,2601,11.34,2602,7.702,2603,9.756,2604,8.51,2605,8.048,2606,6.243,2607,8.048,2608,8.048,2609,6.412,2610,6.538]],["title/classes/BasicToolConfigEntity.html",[0,0.23,2611,5.438]],["body/classes/BasicToolConfigEntity.html",[0,0.302,2,1.018,3,0.024,4,0.024,5,0.013,7,0.136,27,0.501,29,0.703,30,0.001,31,0.497,32,0.183,33,0.443,47,0.646,95,0.155,96,2.397,101,0.017,103,0.001,104,0.001,127,1.12,165,0.874,198,4.241,200,2.889,209,4.158,238,5.992,240,2.779,364,2.053,398,2.597,404,2.002,405,2.985,595,3.053,596,3.363,617,5.119,1031,2.842,2600,4.834,2606,6.097,2609,7.709,2610,6.293,2611,10.495,2612,11.074,2613,7.414,2614,10.495,2615,8.867,2616,7.746,2617,7.746,2618,5.67,2619,7.746,2620,5.172,2621,4.189,2622,6.293]],["title/classes/BasicToolConfigParams.html",[0,0.23,2623,5.438]],["body/classes/BasicToolConfigParams.html",[0,0.385,2,1.056,3,0.024,4,0.024,5,0.013,7,0.141,27,0.47,30,0.001,32,0.184,47,0.825,95,0.164,101,0.018,103,0.001,104,0.001,165,0.894,198,4.396,200,2.995,209,3.899,238,6.64,364,2.099,374,2.936,376,2.156,404,2.047,467,3.299,470,4.771,596,3.439,1044,4.512,2600,4.012,2606,6.757,2623,9.128,2624,9.191,2625,8.491,2626,9.532,2627,6.523,2628,7.409,2629,7.409,2630,7.409,2631,7.409,2632,7.409]],["title/classes/BasicToolConfigResponse.html",[0,0.23,2633,5.64]],["body/classes/BasicToolConfigResponse.html",[0,0.301,2,1.016,3,0.023,4,0.023,5,0.012,7,0.136,27,0.501,29,0.702,30,0.001,31,0.496,32,0.186,33,0.442,47,0.805,95,0.155,101,0.017,103,0.001,104,0.001,127,1.118,165,0.873,198,4.232,200,2.883,209,4.154,238,6.527,364,2.05,376,2.075,404,1.999,405,2.981,406,2.827,467,3.497,595,3.046,596,3.359,2600,4.827,2606,6.642,2609,6.159,2610,6.279,2621,4.179,2622,6.279,2633,10.877,2634,11.059,2635,7.132,2636,10.488,2637,8.848,2638,7.729,2639,7.729,2640,7.132]],["title/injectables/BasicToolLaunchStrategy.html",[105,0.89,2641,5.64]],["body/injectables/BasicToolLaunchStrategy.html",[0,0.157,3,0.012,4,0.012,5,0.007,7,0.071,8,0.851,9,2.213,26,2.255,27,0.524,29,1.001,30,0.001,31,0.708,32,0.18,33,0.631,35,1.524,36,2.442,39,2.286,47,0.881,95,0.131,99,0.785,101,0.009,103,0,104,0,105,0.929,106,10.456,107,1.107,108,2.67,110,3.868,111,2.595,112,2.714,113,5.888,114,5.888,115,5.888,116,4.085,117,7.129,118,5.888,119,5.888,120,5.888,121,5.888,122,5.677,123,5.677,124,5.888,125,5.888,126,5.888,133,3.868,134,10.099,135,5.888,136,7.023,137,5.103,138,3.058,139,7.127,140,7.059,142,3.868,143,5.888,144,1.925,145,2.46,146,6.407,148,2.179,149,3.868,150,3.496,151,5.888,153,3.868,155,8.798,157,3.868,158,4.272,160,7.829,161,3.868,163,3.408,164,5.888,165,0.752,167,3.256,168,3.868,170,3.729,171,3.729,173,3.868,175,3.22,176,5.888,178,8.441,179,3.868,180,5.888,181,6.038,183,3.868,184,5.888,185,2.758,187,0.663,207,3.729,208,1.717,209,2.425,210,2.971,211,3.729,217,1.353,227,1.005,231,2.67,240,2.207,241,6.152,247,1.835,253,4.041,347,0.943,404,1.273,596,3.833,731,2.758,1291,1.968,1298,3.306,1299,3.267,1300,3.267,1301,3.457,1302,3.779,2180,5.401,2641,5.888,2642,4.626,2643,4.273,2644,4.626,2645,4.626,2646,4.041,2647,4.041,2648,4.041,2649,4.041,2650,4.041,2651,4.041,2652,4.041,2653,4.041,2654,4.041,2655,4.041,2656,4.041,2657,4.998,2658,4.902,2659,3.868,2660,6.506,2661,4.626,2662,6.152,2663,4.273,2664,4.626,2665,4.626,2666,7.042,2667,4.626,2668,4.273,2669,4.041]],["title/entities/Board.html",[380,1.411,1984,2.885]],["body/entities/Board.html",[0,0.189,3,0.015,4,0.015,5,0.008,7,0.086,26,2.414,27,0.335,30,0.001,32,0.146,34,0.955,95,0.168,96,1.505,101,0.015,103,0,104,0,111,2.218,144,1.522,145,2.086,148,1.723,165,0.638,187,0.797,188,4.629,208,2.066,217,1.71,227,1.219,234,1.984,305,2.738,329,1.64,334,0.613,347,1.135,364,1.498,369,2.308,380,1.691,381,1.832,394,4.619,398,1.63,399,3.165,400,2.443,402,2.29,404,1.006,405,1.501,406,1.778,571,3.48,577,3.121,744,4.034,783,3.355,806,4.009,1041,4.49,1910,2.63,1984,4.946,2477,3.436,2501,6.895,2594,5.102,2670,7.433,2671,5.567,2672,7.46,2673,5.567,2674,4.788,2675,3.967,2676,6.141,2677,5.567,2678,4.411,2679,8.082,2680,6.515,2681,5.567,2682,3.038,2683,6.314,2684,4.034,2685,3.182,2686,2.962,2687,5.12,2688,3.247,2689,4.2,2690,3.951,2691,4.175,2692,3.48,2693,7.565,2694,11.293,2695,7.956,2696,6.314,2697,4.267,2698,5.856,2699,4.863,2700,6.515,2701,2.568,2702,6.515,2703,8.082,2704,5.567,2705,3.627,2706,5.567,2707,5.567,2708,8.082,2709,4.654,2710,5.567,2711,9.515,2712,5.567,2713,5.567,2714,5.567,2715,5.567,2716,5.567,2717,8.082,2718,5.567,2719,8.082,2720,8.082,2721,5.567,2722,5.567,2723,4.488,2724,5.567,2725,5.567,2726,5.143,2727,5.567,2728,4.23,2729,5.567,2730,4.654,2731,5.567,2732,5.567,2733,5.567,2734,5.567,2735,5.567,2736,5.567,2737,5.567,2738,5.567,2739,5.567,2740,5.567,2741,5.567,2742,5.567,2743,5.567,2744,4.656,2745,5.567,2746,8.082,2747,5.567,2748,5.567,2749,5.567,2750,5.567,2751,11.566,2752,4.863]],["title/modules/BoardApiModule.html",[425,1.808,2753,5.438]],["body/modules/BoardApiModule.html",[0,0.272,3,0.021,4,0.021,5,0.011,30,0.001,95,0.171,101,0.015,103,0.001,104,0.001,187,1.144,425,3.083,427,2.953,428,3.114,429,3.211,430,3.197,431,3.169,432,4.252,433,3.012,438,6.104,442,4.166,443,3.141,444,3.062,446,5.059,447,4.345,449,4.166,481,3.114,1545,2.552,1945,5.606,1977,7.212,1983,10.095,2753,11.289,2754,7.987,2755,7.987,2756,7.987,2757,10.095,2758,10.095,2759,10.417,2760,10.804,2761,7.987,2762,10.047,2763,10.047,2764,10.047,2765,10.047,2766,10.047,2767,3.601,2768,7.987,2769,3.947,2770,6.977,2771,7.378,2772,7.378]],["title/classes/BoardColumnBoardResponse.html",[0,0.23,2773,5.64]],["body/classes/BoardColumnBoardResponse.html",[0,0.256,2,0.863,3,0.02,4,0.02,5,0.011,7,0.115,27,0.538,29,0.596,30,0.001,31,0.421,32,0.182,33,0.375,34,2.122,47,0.925,83,3.576,95,0.128,101,0.014,103,0.001,104,0.001,127,1.257,165,0.785,347,2.028,364,2.355,376,1.762,467,3.669,469,3.313,591,5.287,592,5.453,618,3.196,620,4.823,622,4.823,966,3.845,1474,4.197,2697,7.341,2773,10.336,2774,10.28,2775,10.28,2776,7.51,2777,9.658,2778,8.055,2779,7.51,2780,7.51,2781,7.51,2782,7.51,2783,7.51,2784,5.442,2785,7.51,2786,7.51,2787,6.221,2788,7.51,2789,3.964,2790,6.938]],["title/classes/BoardComposite.html",[0,0.23,2791,4.273]],["body/classes/BoardComposite.html",[0,0.198,2,0.668,3,0.015,4,0.015,5,0.008,7,0.089,8,1.007,9,6.114,26,1.741,27,0.537,29,0.931,30,0.001,31,0.658,32,0.177,33,0.587,34,1.432,35,1.46,36,1.813,55,2.146,59,1.805,83,3.206,95,0.145,99,0.987,101,0.016,103,0.001,104,0.001,116,2.7,148,3.633,165,0.658,187,0.833,208,2.159,217,0.767,227,1.123,234,1.583,247,2.308,305,2.807,334,0.641,347,2.172,359,2.893,363,5.357,404,1.508,591,4.557,592,4.7,595,2.872,596,2.533,661,3.515,692,3.108,884,3.941,1121,5.807,1240,3.358,1724,4.677,1857,5.021,1860,6.452,1919,2.415,1940,3.684,1941,4.128,1942,4.42,2037,3.358,2478,3.324,2598,6.798,2685,3.324,2791,5.284,2792,11.808,2793,5.373,2794,6.183,2795,6.183,2796,6.183,2797,5.92,2798,6.183,2799,7.162,2800,3.976,2801,5.357,2802,6.422,2803,5.816,2804,6.183,2805,5.357,2806,6.498,2807,5.816,2808,6.044,2809,6.53,2810,5.816,2811,7.56,2812,6.044,2813,5.816,2814,5.92,2815,5.816,2816,6.044,2817,5.816,2818,3.976,2819,5.373,2820,5.816,2821,5.081,2822,5.816,2823,5.081,2824,5.816,2825,7.706,2826,4.544,2827,4.544,2828,5.373,2829,5.373,2830,5.373,2831,7.706,2832,5.373,2833,5.373,2834,5.373,2835,3.466,2836,5.373,2837,5.373,2838,5.373,2839,5.373,2840,7.287,2841,3.909,2842,5.373,2843,5.081,2844,3.684]],["title/interfaces/BoardCompositeProps.html",[334,0.743,2844,4.273]],["body/interfaces/BoardCompositeProps.html",[0,0.244,3,0.019,4,0.019,5,0.01,7,0.11,9,5.576,26,2.433,30,0.001,32,0.176,33,0.482,34,2.088,36,1.557,55,1.576,83,3.918,95,0.156,99,1.216,101,0.018,103,0.001,104,0.001,148,3.372,165,0.761,187,1.026,208,2.658,217,0.945,227,1.229,234,1.769,247,2.842,305,3.136,334,0.789,336,1.745,347,1.965,359,3.343,404,1.295,591,5.204,592,5.368,1121,6.711,1240,4.135,1724,5.405,1857,4.123,1919,2.975,1940,4.537,1941,5.083,1942,5.442,2037,4.135,2478,4.093,2598,6.705,2685,4.093,2791,4.537,2792,6.616,2793,6.616,2799,8.179,2801,4.6,2802,5.811,2805,4.6,2806,5.879,2808,5.19,2809,6.616,2811,7.288,2812,5.19,2814,5.083,2816,5.19,2825,8.906,2826,5.595,2827,5.595,2828,6.616,2829,6.616,2830,6.616,2831,8.906,2832,6.616,2833,6.616,2834,6.616,2835,4.268,2836,6.616,2837,6.616,2838,6.616,2839,6.616,2840,8.422,2841,4.814,2842,6.616,2843,6.257,2844,6.107]],["title/interfaces/BoardCompositeVisitor.html",[334,0.743,2802,4.066]],["body/interfaces/BoardCompositeVisitor.html",[3,0.018,4,0.018,5,0.013,7,0.104,8,1.119,27,0.523,29,1.001,30,0.001,31,0.707,32,0.187,33,0.63,35,1.523,36,2.741,95,0.162,101,0.018,103,0.001,104,0.001,148,4.207,334,1.021,336,1.646,2697,6.658,2802,5.583,2806,4.118,2845,10.034,2846,11.866,2847,6.239,2848,8.093,2849,8.093,2850,8.093,2851,8.093,2852,8.093,2853,8.093,2854,8.093,2855,7.745,2856,6.971,2857,6.754,2858,7.745,2859,6.754,2860,7.745,2861,7.602,2862,6.754,2863,7.745,2864,8.024,2865,6.754,2866,7.745,2867,7.909,2868,6.754,2869,7.745,2870,7.699,2871,6.754,2872,8.558,2873,7.699,2874,6.754,2875,5.647,2876,6.239,2877,5.647,2878,8.524,2879,5.006,2880,3.23,2881,4.224,2882,4.025,2883,5.276,2884,5.9,2885,5.9,2886,5.9,2887,5.9,2888,5.9,2889,5.9,2890,6.239]],["title/interfaces/BoardCompositeVisitorAsync.html",[334,0.743,2806,4.113]],["body/interfaces/BoardCompositeVisitorAsync.html",[3,0.018,4,0.018,5,0.013,7,0.104,8,1.119,27,0.523,29,1.001,30,0.001,31,0.707,32,0.187,33,0.63,35,1.523,36,2.955,95,0.162,101,0.018,103,0.001,104,0.001,148,3.903,334,1.021,336,1.646,2697,6.658,2802,4.071,2806,5.649,2845,10.034,2846,11.866,2847,6.239,2855,5.647,2856,6.971,2858,5.647,2860,5.647,2861,7.602,2863,5.647,2864,8.024,2866,5.647,2867,7.909,2869,5.647,2870,7.699,2872,6.239,2873,7.699,2875,5.647,2876,6.239,2877,5.647,2878,8.524,2879,5.006,2880,3.23,2881,4.224,2882,4.025,2883,5.276,2884,8.093,2885,8.093,2886,8.093,2887,8.093,2888,8.093,2889,8.093,2890,8.558,2891,8.558,2892,8.558,2893,8.558,2894,8.558,2895,8.558,2896,8.558,2897,8.558,2898,6.754,2899,6.754,2900,6.754,2901,6.754,2902,6.754,2903,6.754,2904,6.754]],["title/classes/BoardContextResponse.html",[0,0.23,2905,5.893]],["body/classes/BoardContextResponse.html",[0,0.302,2,1.021,3,0.024,4,0.024,5,0.013,7,0.137,27,0.502,29,0.705,30,0.001,31,0.498,32,0.191,33,0.444,34,2.236,47,0.808,95,0.142,99,1.508,101,0.017,103,0.001,104,0.001,127,1.401,165,0.875,364,2.056,376,2.085,467,3.25,475,4.453,618,3.781,966,4.55,1031,2.848,2621,4.198,2905,11.38,2906,12.658,2907,8.887,2908,8.887,2909,5.973,2910,6.052,2911,6.052,2912,8.887,2913,9.988,2914,5.707,2915,5.854,2916,8.887]],["title/controllers/BoardController.html",[481,2.63,2762,5.893]],["body/controllers/BoardController.html",[0,0.152,3,0.012,4,0.012,5,0.006,7,0.069,8,0.829,10,3.373,27,0.419,29,0.801,30,0.001,31,0.567,32,0.196,33,0.505,35,1.22,36,2.606,95,0.151,100,1.497,101,0.009,103,0,104,0,112,2.868,187,0.641,199,2.62,206,2.289,215,1.447,216,0.827,217,1.406,221,2.382,227,0.88,234,1.355,264,4.278,364,1.873,376,1.049,447,1.875,481,1.744,483,2.152,491,6.329,498,6.403,502,7.495,506,7.812,509,8.688,513,6.804,543,3.438,552,2.872,553,6.665,554,8.419,555,2.361,556,2.419,557,2.44,558,2.125,559,2.44,561,2.44,563,6.236,564,4.908,883,2.877,1016,3.808,1469,7.053,1474,2.33,1984,4.56,2037,6.155,2686,5.674,2697,4.408,2757,6.523,2762,5.995,2769,2.21,2905,5.995,2917,4.472,2918,4.131,2919,7.714,2920,6.339,2921,8.35,2922,8.35,2923,7.714,2924,4.472,2925,11.263,2926,7.677,2927,10.103,2928,5.532,2929,4.472,2930,7.677,2931,7.677,2932,4.472,2933,4.472,2934,7.812,2935,4.472,2936,5.532,2937,4.472,2938,4.472,2939,4.472,2940,4.472,2941,4.472,2942,4.472,2943,4.472,2944,6.862,2945,4.472,2946,4.472,2947,4.472,2948,4.472,2949,6.731,2950,7.55,2951,4.089,2952,4.472,2953,4.472,2954,3.24,2955,2.531,2956,5.737,2957,5.532,2958,4.472,2959,4.472,2960,3.906,2961,3.739,2962,3.605,2963,4.472,2964,4.472,2965,4.472,2966,10.103,2967,4.472,2968,4.472,2969,4.472,2970,4.472,2971,4.472,2972,5.532,2973,5.532,2974,4.472,2975,4.472,2976,3.906,2977,4.472,2978,4.472,2979,4.472,2980,4.472,2981,4.472,2982,4.131]],["title/injectables/BoardCopyService.html",[105,0.89,2983,5.64]],["body/injectables/BoardCopyService.html",[0,0.141,3,0.011,4,0.011,5,0.006,7,0.064,8,0.78,27,0.463,29,0.885,30,0.001,31,0.626,32,0.164,33,0.558,35,1.303,36,2.493,55,0.909,95,0.147,99,0.701,101,0.008,103,0,104,0,105,0.851,107,0.989,111,2.653,112,2.724,127,0.816,145,1.066,185,2.528,187,0.592,188,4.599,216,1.802,217,1.676,221,1.873,227,1.298,234,1.289,380,0.864,450,1.7,461,3.103,564,4.142,731,2.528,806,2.72,846,2.932,1041,4.413,1052,2.631,1053,3.982,1444,2.692,1474,1.403,1545,1.32,1758,7.402,1925,2.147,1984,4.415,2422,3.936,2439,2.994,2672,5.613,2689,5.062,2691,4.274,2693,8.5,2700,5.204,2702,5.204,2709,3.455,2744,3.542,2983,5.397,2984,11.471,2985,3.455,2986,6.455,2987,7.944,2988,5.204,2989,5.204,2990,6.455,2991,6.455,2992,6.455,2993,2.733,2994,7.995,2995,8.196,2996,8.427,2997,7.655,2998,4.132,2999,6.455,3000,8.979,3001,4.132,3002,4.132,3003,9.566,3004,4.132,3005,7.944,3006,6.455,3007,4.132,3008,3.61,3009,6.455,3010,4.132,3011,3.61,3012,6.455,3013,8.327,3014,4.132,3015,9.741,3016,6.455,3017,4.132,3018,5.639,3019,6.455,3020,4.132,3021,5.963,3022,6.036,3023,3.817,3024,3.61,3025,3.228,3026,2.551,3027,2.361,3028,3.817,3029,4.132,3030,3.331,3031,3.331,3032,3.228,3033,5.963,3034,4.132,3035,4.132,3036,4.132,3037,7.944,3038,4.132,3039,3.455,3040,3.228,3041,3.331,3042,4.132,3043,4.132,3044,9.538,3045,4.132,3046,4.132,3047,6.455,3048,4.132,3049,4.132,3050,5.639,3051,3.455,3052,4.132,3053,4.132,3054,6.455,3055,3.455,3056,4.132,3057,4.132,3058,4.784,3059,4.132,3060,4.581,3061,4.905,3062,4.132,3063,4.132,3064,4.132,3065,4.132,3066,3.61,3067,3.61,3068,3.817,3069,3.455,3070,3.331,3071,3.817,3072,4.132,3073,4.132,3074,4.132,3075,4.132,3076,4.132,3077,5.963,3078,4.132,3079,6.455,3080,6.455,3081,4.132,3082,4.132,3083,3.817,3084,4.132,3085,4.132,3086,4.132,3087,4.132,3088,4.132]],["title/classes/BoardDoAuthorizable.html",[0,0.23,3089,4.787]],["body/classes/BoardDoAuthorizable.html",[0,0.257,2,0.866,3,0.02,4,0.02,5,0.011,7,0.116,8,1.205,26,2.333,27,0.514,29,0.598,30,0.001,31,0.423,32,0.14,33,0.377,34,1.294,35,1.205,39,2.021,95,0.128,101,0.024,102,3.804,103,0.001,104,0.001,116,3.229,145,3.072,148,2.332,165,0.787,227,1.051,334,1.099,359,2.614,404,2.021,521,6.077,595,3.435,596,3.03,661,4.203,692,3.717,728,2.952,843,3.29,884,4.712,1031,3.197,1114,3.058,1854,5.818,1857,5.293,1860,7.396,1922,4.775,1940,4.775,2571,5.247,2586,3.979,2800,5.153,2818,5.153,2845,9.297,3089,7.079,3090,6.585,3091,5.426,3092,9.593,3093,7.538,3094,7.538,3095,7.538,3096,7.538,3097,7.538,3098,10.513,3099,7.538,3100,8.042,3101,8.042,3102,8.715,3103,6.302,3104,6.585,3105,7.083,3106,5.593,3107,6.585,3108,6.585,3109,9.014,3110,3.652,3111,6.302,3112,6.585,3113,8.715,3114,6.585]],["title/interfaces/BoardDoAuthorizableProps.html",[334,0.743,3111,5.64]],["body/interfaces/BoardDoAuthorizableProps.html",[0,0.275,3,0.021,4,0.021,5,0.011,7,0.124,26,2.64,30,0.001,32,0.162,33,0.521,34,2.097,39,2.163,95,0.134,101,0.024,102,4.071,103,0.001,104,0.001,145,2.692,165,0.823,227,1.099,334,1.149,336,1.966,359,2.798,404,2.089,521,6.503,728,3.159,843,3.521,1031,3.342,1114,3.273,1854,6.74,1857,4.46,1922,5.11,1940,5.11,2571,5.615,2586,4.259,2845,6.302,3089,5.725,3090,7.047,3091,5.768,3092,10.198,3098,10.548,3100,8.407,3101,8.407,3102,9.11,3103,6.745,3104,7.047,3105,7.32,3106,5.847,3107,7.047,3108,7.047,3109,10.198,3110,3.908,3111,8.719,3112,7.047,3113,9.11,3114,7.047]],["title/injectables/BoardDoAuthorizableService.html",[105,0.89,3115,4.888]],["body/injectables/BoardDoAuthorizableService.html",[0,0.211,3,0.016,4,0.016,5,0.009,7,0.095,8,1.056,12,4.031,26,2.29,27,0.456,29,0.871,30,0.001,31,0.615,32,0.154,33,0.548,34,1.884,35,1.221,36,2.385,39,2.711,40,4.207,95,0.148,99,1.054,101,0.012,103,0.001,104,0.001,105,1.153,107,1.487,111,2.314,112,2.691,127,1.105,187,0.89,188,4.543,214,2.044,216,1.617,217,1.71,221,2.727,227,1.299,234,1.781,305,1.787,450,2.555,770,3.661,806,2.617,839,2.916,905,3.63,1935,7.046,1958,7.516,1977,4.324,2570,3.361,2598,5.578,2767,2.8,2861,6.243,2913,4.604,3089,8.514,3091,5.62,3098,8.574,3100,5.007,3109,8.153,3110,4.899,3115,6.333,3116,10.685,3117,5.738,3118,8.741,3119,8.741,3120,4.72,3121,8.747,3122,6.211,3123,6.211,3124,8.741,3125,6.211,3126,6.828,3127,8.741,3128,6.211,3129,5.007,3130,5.738,3131,6.211,3132,7.636,3133,6.211,3134,10.113,3135,6.211,3136,6.211,3137,8.741,3138,6.211,3139,6.211,3140,5.193,3141,6.211,3142,6.211,3143,6.211,3144,3.333,3145,4.72,3146,6.211,3147,8.741,3148,6.211,3149,6.211,3150,6.211,3151,6.211,3152,6.211,3153,5.426]],["title/interfaces/BoardDoBuilder.html",[334,0.743,3154,4.217]],["body/interfaces/BoardDoBuilder.html",[3,0.018,4,0.018,5,0.013,7,0.105,8,1.128,27,0.525,29,1.004,30,0.001,31,0.709,32,0.192,33,0.632,35,1.528,95,0.167,101,0.013,103,0.001,104,0.001,334,0.753,336,1.665,1857,2.923,1984,2.923,2594,4.693,2697,6.32,2856,6.472,2861,6.567,2864,6.932,2867,6.833,2870,6.651,2873,6.651,2879,5.065,2880,3.269,2881,4.258,2882,4.073,2883,5.339,3144,6.788,3154,5.838,3155,12.881,3156,6.834,3157,8.627,3158,8.627,3159,8.627,3160,8.627,3161,8.627,3162,8.627,3163,8.627,3164,8.627,3165,8.933,3166,6.834,3167,8.627,3168,9.218,3169,6.834,3170,8.627,3171,8.689,3172,6.834,3173,8.627,3174,8.933,3175,6.834,3176,8.627,3177,8.933,3178,6.834,3179,8.627,3180,8.933,3181,6.834,3182,8.627,3183,8.933,3184,6.834,3185,6.834,3186,12.652,3187,4.119]],["title/classes/BoardDoBuilderImpl.html",[0,0.23,3188,5.893]],["body/classes/BoardDoBuilderImpl.html",[0,0.131,2,0.443,3,0.01,4,0.01,5,0.005,7,0.059,8,0.739,27,0.509,29,0.984,30,0.001,31,0.679,32,0.184,33,0.605,34,1.804,35,1.442,39,1.034,95,0.097,99,1.038,101,0.007,103,0,104,0,111,1.52,116,4.271,127,0.488,144,1.055,148,1.893,165,0.483,187,0.553,199,1.473,214,2.013,217,1.681,227,1.212,234,1.822,247,1.531,305,1.76,329,1.137,591,4.494,592,4.636,692,4.285,1041,4.803,1110,2.478,1291,2.603,1474,2.579,2594,4.808,2598,1.961,2697,5.294,2728,2.932,2799,8.024,2819,5.65,2856,5.676,2861,6.191,2864,5.633,2867,5.553,2870,5.405,2873,5.405,2880,1.845,3144,7.364,3154,4.75,3157,5.65,3158,5.65,3159,5.65,3160,5.65,3161,5.65,3162,5.65,3163,5.65,3164,5.65,3165,6.754,3167,5.65,3168,6.97,3170,5.65,3171,6.57,3173,5.65,3174,6.754,3176,5.65,3177,6.754,3179,5.65,3180,6.754,3182,5.65,3183,6.754,3188,5.343,3189,10.841,3190,11.464,3191,3.858,3192,7.019,3193,6.116,3194,6.116,3195,6.116,3196,6.116,3197,6.116,3198,6.116,3199,5.343,3200,3.858,3201,6.116,3202,3.858,3203,3.858,3204,3.858,3205,6.116,3206,3.858,3207,3.858,3208,3.858,3209,3.858,3210,3.858,3211,6.116,3212,7.209,3213,3.858,3214,6.116,3215,3.858,3216,6.116,3217,3.858,3218,2.552,3219,3.858,3220,3.858,3221,3.858,3222,8.646,3223,3.564,3224,4.533,3225,8.646,3226,9.708,3227,7.599,3228,10.509,3229,10.509,3230,3.858,3231,3.371,3232,4.648,3233,3.371,3234,3.371,3235,3.371,3236,2.478,3237,3.858,3238,7.599,3239,2.412,3240,3.858,3241,3.858,3242,2.053,3243,3.858,3244,3.371,3245,2.037,3246,3.858,3247,2.326,3248,3.858,3249,3.858,3250,3.858,3251,3.858,3252,3.858,3253,6.116,3254,3.858,3255,3.858,3256,3.858,3257,3.858,3258,3.858,3259,3.858,3260,3.858,3261,4.181,3262,2.412,3263,3.858,3264,5.114,3265,3.858,3266,3.858,3267,6.116,3268,3.858,3269,3.858,3270,3.858,3271,3.858,3272,3.858]],["title/injectables/BoardDoRepo.html",[105,0.89,3121,4.787]],["body/injectables/BoardDoRepo.html",[0,0.151,3,0.012,4,0.012,5,0.006,7,0.068,8,0.825,10,2.757,12,3.149,18,3.374,26,2.742,27,0.497,29,0.966,30,0.001,31,0.671,32,0.175,33,0.598,34,1.962,35,1.416,36,2.839,40,3.286,49,1.732,55,2.339,59,2.581,95,0.146,96,1.845,97,1.89,99,0.754,101,0.008,103,0,104,0,105,0.9,107,1.063,111,1.663,112,3.046,127,0.863,138,2.965,145,1.147,187,0.636,216,1.538,217,1.723,221,2.95,227,1.236,234,1.726,305,1.278,398,1.301,595,1.529,692,2.544,770,6.268,806,1.872,1850,5.504,1857,5.207,1932,2.274,1984,2.92,2395,5.334,2405,4.516,2476,5.964,2598,6.545,2686,2.364,2799,2.986,3121,4.845,3126,3.47,3144,5.008,3171,3.375,3188,3.881,3189,10.637,3190,4.104,3192,4.104,3199,3.881,3261,3.037,3273,4.104,3274,8.316,3275,5.708,3276,6.307,3277,6.827,3278,6.827,3279,6.827,3280,3.092,3281,8.928,3282,8.316,3283,7.803,3284,4.442,3285,4.163,3286,4.442,3287,4.442,3288,10.559,3289,4.442,3290,8.316,3291,4.442,3292,5.964,3293,4.442,3294,6.307,3295,6.763,3296,4.442,3297,6.827,3298,4.442,3299,4.442,3300,6.827,3301,4.442,3302,6.827,3303,4.442,3304,5.964,3305,4.612,3306,4.442,3307,3.581,3308,4.442,3309,4.104,3310,6.307,3311,4.104,3312,3.881,3313,4.442,3314,4.442,3315,4.442,3316,4.442,3317,4.442,3318,3.881,3319,4.442,3320,5.685,3321,6.307,3322,4.442,3323,4.442,3324,4.442,3325,4.442,3326,4.442,3327,6.307,3328,4.442,3329,4.442,3330,4.442,3331,2.491,3332,4.442,3333,3.581,3334,4.442,3335,3.881,3336,4.442,3337,4.442,3338,4.442,3339,4.442,3340,4.442,3341,4.442,3342,4.442,3343,4.442,3344,4.442,3345,4.442,3346,4.442,3347,4.442,3348,5.504,3349,4.442]],["title/injectables/BoardDoRule.html",[105,0.89,1954,5.64]],["body/injectables/BoardDoRule.html",[0,0.244,3,0.019,4,0.019,5,0.01,7,0.11,8,1.166,27,0.453,29,0.865,30,0.001,31,0.612,32,0.153,33,0.545,35,1.166,39,2.588,95,0.156,101,0.014,103,0.001,104,0.001,105,1.273,107,1.717,116,4.059,127,0.907,187,1.028,199,4.165,214,2.362,215,2.323,216,1.327,217,1.439,227,1.35,347,2.378,369,2.134,371,3.356,380,1.501,461,3.042,738,4.142,806,3.023,1857,3.068,1862,6.423,1865,3.758,1880,4.675,1881,4.545,1890,7.943,1928,7.202,1954,8.071,1989,5.959,2033,6.289,2056,4.823,3089,9.776,3100,5.784,3350,11.667,3351,7.175,3352,6.488,3353,4.905,3354,7.175,3355,7.175,3356,6.385,3357,7.175,3358,4.905,3359,4.823,3360,6.599,3361,5.452,3362,9.653,3363,7.175,3364,8.432,3365,7.175,3366,9.653,3367,9.653,3368,7.175]],["title/injectables/BoardDoService.html",[105,0.89,3369,5]],["body/injectables/BoardDoService.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.121,8,1.242,27,0.475,29,0.907,30,0.001,31,0.641,32,0.16,33,0.571,35,1.242,36,2.633,55,2.516,59,2.45,95,0.147,99,1.34,101,0.015,103,0.001,104,0.001,105,1.356,107,1.889,112,2.89,127,0.997,187,1.131,215,2.555,216,1.46,217,1.356,221,3.037,1857,3.375,2570,4.271,2598,6.895,2811,4.934,3116,11.192,3120,5.998,3121,9.141,3305,5.651,3369,7.621,3370,7.893,3371,10.282,3372,7.029,3373,7.893,3374,10.282,3375,7.893,3376,10.282,3377,12.115,3378,9.465,3379,7.893,3380,7.893,3381,7.893,3382,6.599,3383,7.893,3384,7.893,3385,7.893,3386,11.436,3387,7.893,3388,7.893,3389,7.893,3390,7.893,3391,7.893]],["title/entities/BoardElement.html",[380,1.411,2693,4.888]],["body/entities/BoardElement.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.121,9,4.918,26,2.146,27,0.427,30,0.001,31,0.679,32,0.17,34,1.765,95,0.165,96,2.134,101,0.023,103,0.001,104,0.001,165,0.811,208,2.929,364,1.463,369,1.745,380,2.151,381,2.598,398,2.312,399,4.026,400,3.463,404,1.427,405,2.128,406,2.522,1031,3.883,1910,5.723,1932,5.264,1984,3.375,2670,8.934,2689,5.344,2690,5.601,2691,5.316,2692,4.934,2693,7.45,2694,11.192,2697,4.167,2698,7.45,2699,6.895,2701,4.742,2744,5.849,2861,6.347,3022,9.968,3392,7.893,3393,7.893,3394,7.029,3395,7.893,3396,6.603,3397,6.801,3398,10.282,3399,5.601,3400,5.494,3401,5.85]],["title/classes/BoardElementResponse.html",[0,0.23,3402,5.64]],["body/classes/BoardElementResponse.html",[0,0.269,2,0.907,3,0.021,4,0.021,5,0.011,7,0.121,27,0.475,29,0.626,30,0.001,31,0.443,32,0.19,33,0.394,95,0.161,101,0.015,103,0.001,104,0.001,127,1.299,165,0.811,208,3.816,364,1.906,376,1.851,379,2.37,467,3.074,966,4.041,1013,4.715,1031,3.883,1295,5.935,1984,5.61,2344,5.558,2477,6.347,2578,6.699,2594,4.536,2621,3.728,2691,4.512,2697,6.632,2701,4.742,2773,9.561,2774,9.465,2775,9.465,3402,10.504,3403,5.998,3404,7.893,3405,9.561,3406,9.561,3407,7.893,3408,10.504,3409,10.282,3410,7.893,3411,7.893,3412,7.291,3413,7.893,3414,7.893,3415,5.069]],["title/interfaces/BoardExternalReference.html",[334,0.743,3295,4.888]],["body/interfaces/BoardExternalReference.html",[3,0.026,4,0.026,5,0.014,7,0.152,26,2.739,30,0.001,32,0.191,34,2.252,95,0.126,101,0.023,103,0.001,104,0.001,165,0.933,188,4.477,200,3.215,334,1.087,336,2.404,1031,3.163,2586,5.209,2845,7.709,2913,9.726,3295,8.567,3416,8.62]],["title/classes/BoardLessonResponse.html",[0,0.23,3406,5.64]],["body/classes/BoardLessonResponse.html",[0,0.311,2,0.76,3,0.018,4,0.018,5,0.009,7,0.102,27,0.545,29,0.525,30,0.001,31,0.686,32,0.184,33,0.627,34,2.032,47,0.891,55,2.693,83,3.395,95,0.134,101,0.013,103,0.001,104,0.001,127,1.155,165,0.721,347,1.862,364,2.405,374,2.115,375,3.707,376,1.553,467,3.622,469,2.92,471,4.453,591,5.063,592,5.222,618,2.817,620,4.252,622,4.252,966,3.389,2136,2.65,2697,7.002,2774,10.362,2775,10.362,2784,4.797,2787,6.541,3406,9.898,3417,6.62,3418,7.284,3419,7.308,3420,10.936,3421,10.936,3422,9.898,3423,6.62,3424,5.783,3425,6.62,3426,6.62,3427,6.62,3428,6.62,3429,6.62,3430,9.138,3431,6.62,3432,6.62,3433,6.116,3434,6.62,3435,6.62,3436,8.007,3437,4.698,3438,4.698,3439,6.62,3440,6.62,3441,6.62,3442,7.582]],["title/classes/BoardManagementConsole.html",[0,0.23,3443,5.893]],["body/classes/BoardManagementConsole.html",[0,0.269,2,0.907,3,0.021,4,0.021,5,0.011,7,0.121,8,1.242,27,0.427,29,0.816,30,0.001,31,0.577,32,0.144,33,0.514,35,0.953,36,2.235,47,0.749,49,3.078,95,0.155,101,0.015,103,0.001,104,0.001,111,1.579,112,2.565,127,0.997,144,2.157,215,2.555,217,1.041,221,1.861,227,0.832,234,1.281,329,2.325,364,1.463,379,2.636,734,4.556,783,4.757,836,4.556,883,5.08,1984,5.688,2477,4.872,2675,5.947,2697,5.428,3247,4.757,3443,8.982,3444,11.436,3445,6.895,3446,9.498,3447,6.599,3448,8.143,3449,10.967,3450,7.893,3451,8.289,3452,9.498,3453,6.363,3454,10.282,3455,7.893,3456,5.601,3457,8.433,3458,7.674,3459,4.704,3460,7.291,3461,6.166,3462,5.143,3463,7.893,3464,7.893,3465,6.599,3466,10.129,3467,7.893,3468,7.893,3469,5.85]],["title/injectables/BoardManagementUc.html",[105,0.89,3449,5.64]],["body/injectables/BoardManagementUc.html",[0,0.174,3,0.014,4,0.014,5,0.007,7,0.079,8,0.919,26,2.427,27,0.496,29,0.968,30,0.001,31,0.67,32,0.174,33,0.597,34,0.88,35,1.404,36,2.182,55,2.989,95,0.137,96,1.386,97,2.182,99,0.87,101,0.01,103,0,104,0,105,1.003,107,1.227,111,2.684,112,2.52,127,0.648,144,1.401,145,1.323,148,1.586,187,0.734,188,2.881,199,2.905,215,1.66,217,1.534,221,2.648,227,1.286,329,1.511,369,1.133,371,1.413,687,2.379,692,2.835,784,2.707,905,4.168,1018,5.911,1041,2.848,1158,2.728,1459,3.391,1474,2.583,1661,3.34,1984,3.254,2395,5.736,2675,5.514,2697,4.016,2809,4.789,2856,4.306,2880,3.639,2913,3.8,3140,4.287,3144,7.081,3224,3.8,3232,3.896,3236,3.293,3242,4.049,3285,5.532,3305,6.301,3437,6.438,3446,7.028,3447,4.287,3448,6.747,3449,6.361,3451,6.133,3452,7.028,3456,3.638,3470,12.201,3471,4.736,3472,7.608,3473,7.608,3474,7.608,3475,7.608,3476,7.608,3477,7.028,3478,5.127,3479,5.127,3480,7.608,3481,5.127,3482,7.608,3483,5.127,3484,7.608,3485,5.127,3486,7.608,3487,5.127,3488,7.608,3489,9.072,3490,5.127,3491,4.479,3492,7.608,3493,8.392,3494,5.127,3495,5.127,3496,5.127,3497,5.127,3498,5.127,3499,4.736,3500,5.127,3501,5.127,3502,5.127,3503,5.127,3504,5.127,3505,5.127,3506,5.127,3507,5.127,3508,4.005,3509,5.127,3510,5.127,3511,5.127,3512,4.736,3513,5.127,3514,5.127,3515,5.127,3516,4.736,3517,9.072,3518,5.127,3519,5.127,3520,5.127,3521,5.127,3522,5.127,3523,4.479,3524,5.127,3525,5.127,3526,5.127,3527,5.127,3528,5.127]],["title/modules/BoardModule.html",[425,1.808,1983,5.27]],["body/modules/BoardModule.html",[0,0.215,3,0.017,4,0.017,5,0.009,30,0.001,95,0.167,99,1.074,101,0.012,103,0.001,104,0.001,187,0.907,425,2.967,427,2.34,428,2.468,429,2.545,430,2.533,431,2.511,432,3.777,433,3.853,438,5.701,442,3.561,443,2.489,444,2.426,449,3.561,450,2.604,766,3.806,774,4.327,1545,2.022,1919,2.628,1958,7.36,1983,11.148,2478,3.617,2570,3.424,2578,4.123,3115,9.618,3121,8.565,3281,9.73,3283,10.091,3311,5.846,3369,8.946,3456,4.491,3529,6.329,3530,6.329,3531,6.329,3532,6.329,3533,9.429,3534,8.946,3535,10.7,3536,10.369,3537,11.098,3538,10.086,3539,10.7,3540,9.73,3541,6.329,3542,3.264,3543,3.106,3544,2.628,3545,6.329,3546,5.102,3547,4.254,3548,5.291,3549,6.329,3550,4.944]],["title/entities/BoardNode.html",[380,1.411,3144,3.619]],["body/entities/BoardNode.html",[0,0.214,3,0.017,4,0.017,5,0.009,7,0.169,9,4.213,26,2.424,27,0.482,30,0.001,32,0.182,33,0.44,34,1.893,47,0.9,55,2.555,95,0.158,96,1.697,101,0.017,103,0.001,104,0.001,145,2.273,165,0.695,167,3.363,187,0.899,208,3.269,217,1.342,227,1.224,234,1.019,240,3.639,247,4.036,305,1.807,334,0.692,364,2.153,369,1.947,370,3.679,371,3.319,380,1.842,381,2.067,386,5.814,398,1.839,399,3.449,400,2.755,402,2.583,404,1.135,405,1.693,406,2.006,576,5.996,618,3.748,619,5.034,627,1.955,883,2.633,905,3.658,1031,2.823,1439,3.003,1474,3.744,1857,2.685,1984,2.685,2598,4.476,2789,3.315,2809,5.821,3132,5.485,3144,5.458,3154,5.506,3212,7.082,3261,6.021,3305,4.352,3320,4.293,3399,4.456,3551,5.801,3552,7.54,3553,6.279,3554,5.801,3555,6.279,3556,6.279,3557,6.279,3558,6.279,3559,6.279,3560,4.771,3561,8.136,3562,5.656,3563,9.398,3564,8.136,3565,5.485,3566,4.905,3567,5.801,3568,5.801,3569,5.801,3570,5.801,3571,4.371,3572,4.371,3573,4.091,3574,4.96,3575,5.801,3576,5.801,3577,7.694,3578,5.801,3579,5.801,3580,5.801,3581,5.801,3582,5.801,3583,4.091,3584,5.801,3585,5.801]],["title/interfaces/BoardNodeProps.html",[334,0.743,3562,4.332]],["body/interfaces/BoardNodeProps.html",[0,0.221,3,0.017,4,0.017,5,0.009,7,0.172,9,4.307,26,2.603,30,0.001,32,0.175,33,0.636,34,2.141,47,0.908,55,2.585,95,0.16,96,1.752,101,0.017,103,0.001,104,0.001,145,2.324,165,0.711,167,3.438,187,0.928,208,3.342,217,1.365,227,1.238,234,1.052,240,3.682,247,4.105,305,1.865,334,0.714,336,1.579,369,1.433,370,3.73,371,2.852,380,1.884,398,1.898,399,3.526,400,2.844,402,2.666,404,1.172,405,1.747,406,2.071,576,3.821,618,3.832,619,5.146,627,2.018,883,2.718,905,3.74,1031,2.886,1439,3.1,1474,3.988,1857,2.772,1984,2.772,2598,4.576,2789,3.422,2809,6.202,3132,5.662,3144,5.999,3154,5.629,3212,6.645,3261,6.156,3305,5.806,3320,4.431,3399,4.6,3551,5.988,3552,4.804,3560,4.925,3561,8.318,3562,6.645,3563,9.559,3564,8.318,3565,5.662,3566,5.063,3567,5.988,3568,5.988,3569,5.988,3570,5.988,3571,4.512,3572,4.512,3573,4.223,3574,5.046,3575,5.988,3576,5.988,3577,7.866,3578,5.988,3579,5.988,3580,5.988,3581,5.988,3582,5.988,3583,4.223,3584,5.988,3585,5.988]],["title/injectables/BoardNodeRepo.html",[105,0.89,3281,5.438]],["body/injectables/BoardNodeRepo.html",[0,0.216,3,0.017,4,0.017,5,0.009,7,0.097,8,1.071,12,4.089,26,2.311,27,0.46,29,0.878,30,0.001,31,0.621,32,0.155,33,0.553,34,1.755,35,1.235,36,2.625,40,4.267,55,2.249,59,1.967,95,0.131,96,1.713,97,2.697,99,1.076,101,0.012,103,0.001,104,0.001,105,1.169,107,1.517,112,2.883,127,0.801,145,1.636,187,0.908,215,2.052,216,1.172,217,1.695,221,2.41,227,1.306,247,2.515,380,2.438,574,2.874,576,5.226,957,3.588,958,7.413,1277,3.269,1291,2.697,1828,3.953,1919,2.632,1922,4.015,2395,6.329,3144,6.895,3189,10.18,3199,10.18,3261,4.333,3280,4.412,3281,7.147,3285,5.407,3288,10.765,3321,8.19,3331,5.733,3552,4.698,3586,6.339,3587,8.866,3588,8.866,3589,6.339,3590,6.339,3591,8.866,3592,6.339,3593,8.866,3594,6.339,3595,6.339,3596,5.856,3597,6.339,3598,8.866,3599,8.19,3600,10.225,3601,5.11,3602,8.866,3603,8.866,3604,6.339,3605,6.339,3606,5.537,3607,6.339,3608,6.339,3609,8.866,3610,6.339,3611,6.339,3612,6.339,3613,4.698,3614,6.339,3615,6.339,3616,6.339,3617,6.339,3618,5.3,3619,6.339,3620,6.339,3621,6.339,3622,6.339,3623,6.339]],["title/injectables/BoardRepo.html",[105,0.89,2994,5]],["body/injectables/BoardRepo.html",[0,0.194,3,0.015,4,0.015,5,0.008,7,0.088,8,0.993,10,3.321,12,3.792,18,4.063,26,2.742,27,0.52,29,0.976,30,0.001,31,0.69,32,0.173,33,0.615,34,1.411,35,1.486,36,2.766,40,3.958,95,0.124,99,0.968,101,0.011,103,0.001,104,0.001,105,1.084,107,1.365,111,2.508,112,3.053,187,0.817,188,3.998,217,1.623,221,3.07,227,1.229,234,0.925,380,1.193,381,2.706,404,1.487,596,3.206,692,4.802,806,4.064,877,7.011,883,3.448,884,3.884,885,4.799,908,3.477,909,3.519,910,3.477,911,3.519,913,3.477,914,3.519,915,3.139,1041,3.167,1062,2.488,1984,5.795,2672,3.564,2675,5.494,2696,6.424,2700,6.629,2702,6.629,2744,4.301,2994,6.094,3624,5.701,3625,8.223,3626,8.223,3627,8.223,3628,8.223,3629,8.223,3630,5.701,3631,8.223,3632,5.701,3633,5.701,3634,8.223,3635,5.701,3636,8.223,3637,5.701,3638,5.701,3639,3.897,3640,5.701,3641,8.223,3642,5.701,3643,5.701,3644,4.98,3645,5.701,3646,5.701,3647,5.701,3648,5.701,3649,5.701,3650,9.645,3651,8.909,3652,5.701,3653,5.701,3654,5.701,3655,5.701,3656,5.701]],["title/classes/BoardResponse.html",[0,0.23,2956,5.64]],["body/classes/BoardResponse.html",[0,0.278,2,0.94,3,0.022,4,0.022,5,0.012,7,0.126,27,0.527,29,0.649,30,0.001,31,0.459,32,0.182,33,0.581,34,2.181,47,0.894,95,0.157,101,0.016,103,0.001,104,0.001,127,1.33,145,2.112,165,0.83,364,2.277,376,1.919,467,3.496,469,3.609,475,4.099,618,3.482,966,4.189,1011,4.354,1474,4.313,2784,5.929,2787,6.579,2789,4.319,2909,5.5,2910,5.743,2911,5.743,2956,10.623,2957,9.901,3224,9.418,3657,8.182,3658,8.048,3659,8.182,3660,8.182,3661,8.182,3662,7.181,3663,8.182,3664,8.182,3665,8.182,3666,5.806,3667,6.841,3668,5.806]],["title/classes/BoardResponseMapper.html",[0,0.23,2960,5.893]],["body/classes/BoardResponseMapper.html",[0,0.291,2,0.982,3,0.023,4,0.023,5,0.012,7,0.131,8,1.307,27,0.355,29,0.678,30,0.001,31,0.479,32,0.152,33,0.427,34,1.467,35,1.032,95,0.16,99,1.451,100,2.861,101,0.016,103,0.001,104,0.001,187,1.224,217,1.127,227,1.14,234,1.927,305,2.459,591,3.655,627,3.697,731,3.347,806,3.601,974,5.276,975,6.184,1474,2.901,1487,4.885,1828,4.825,1984,3.655,2422,5.212,2697,6.589,2811,5.343,2861,7.705,2956,10.436,2960,9.453,2961,7.146,2982,7.895,3058,6.335,3224,6.335,3516,7.895,3658,5.414,3662,6.68,3669,10.821,3670,9.996,3671,7.466,3672,8.02,3673,5.843,3674,7.466,3675,8.547,3676,8.547,3677,8.547,3678,6.89,3679,6.335,3680,8.547,3681,8.547]],["title/controllers/BoardSubmissionController.html",[481,2.63,2766,5.893]],["body/controllers/BoardSubmissionController.html",[0,0.211,3,0.016,4,0.016,5,0.009,7,0.095,8,1.054,27,0.362,29,0.693,30,0.001,31,0.49,32,0.188,33,0.436,35,1.054,36,1.898,95,0.166,100,2.076,101,0.012,103,0.001,104,0.001,111,2.021,112,2.69,127,0.784,187,0.888,206,4.47,216,1.869,217,1.151,221,2.058,227,0.654,264,4.279,364,1.619,376,1.455,447,2.6,481,2.418,483,2.985,491,6.047,498,5.969,502,6.856,506,7.146,509,6.326,513,6.307,538,3.915,543,4.375,552,3.983,553,6.317,554,7.968,555,3.274,556,3.356,557,3.385,558,2.948,559,3.385,561,3.385,563,5.39,564,4.572,1019,5.893,1469,6.684,1984,2.652,2037,5.833,2686,4.646,2758,7.894,2759,8.146,2760,8.448,2766,7.627,2769,3.065,2770,5.418,2771,5.729,2772,5.729,2881,5.27,2882,3.696,2926,6.634,2930,6.634,2931,4.713,2934,7.813,2936,5,2949,8.146,2951,5.203,2954,4.494,2962,5,2972,5,2973,5,3187,3.738,3262,5.458,3305,4.315,3682,10.105,3683,6.202,3684,4.895,3685,8.448,3686,9.335,3687,6.202,3688,9.581,3689,6.202,3690,5.729,3691,6.202,3692,6.202,3693,6.202,3694,9.581,3695,9.581,3696,6.202,3697,6.202,3698,6.202,3699,7.038,3700,5.185,3701,6.202,3702,6.202,3703,6.202,3704,6.202,3705,5.729,3706,6.202,3707,6.202,3708,6.202,3709,6.202,3710,3.738,3711,6.202,3712,5.729]],["title/classes/BoardTaskResponse.html",[0,0.23,3405,5.64]],["body/classes/BoardTaskResponse.html",[0,0.225,2,0.76,3,0.018,4,0.018,5,0.009,7,0.102,27,0.551,29,0.525,30,0.001,31,0.686,32,0.186,33,0.663,34,2.032,47,0.956,83,3.847,95,0.134,101,0.013,103,0.001,104,0.001,127,1.155,165,0.721,364,2.434,375,5.264,376,1.553,379,2.412,467,3.53,469,2.92,564,4.394,591,5.063,592,5.222,618,2.817,620,4.252,622,4.252,966,3.389,1984,2.831,2078,3.861,2136,2.65,2691,2.905,2697,7.061,2774,10.45,2775,10.45,2784,4.797,2787,7.053,3245,5.524,3405,9.898,3418,7.284,3424,7.982,3713,6.62,3714,6.72,3715,6.541,3716,6.62,3717,6.62,3718,6.62,3719,6.62,3720,6.62,3721,6.62,3722,6.62,3723,6.62,3724,6.62,3725,8.749,3726,6.62,3727,6.62,3728,5.337]],["title/classes/BoardTaskStatusMapper.html",[0,0.23,3729,5.893]],["body/classes/BoardTaskStatusMapper.html",[0,0.328,2,1.106,3,0.026,4,0.026,5,0.014,7,0.148,8,1.407,27,0.4,29,0.764,30,0.001,31,0.54,32,0.135,33,0.481,35,1.163,95,0.149,99,1.635,100,3.901,101,0.018,103,0.001,104,0.001,217,1.27,227,1.015,234,1.563,564,3.575,627,3.901,975,6.659,982,4.826,3725,10.474,3729,10.179,3730,11.652,3731,9.631,3732,10.763,3733,8.61,3734,9.631,3735,9.631]],["title/classes/BoardTaskStatusResponse.html",[0,0.23,3725,5.64]],["body/classes/BoardTaskStatusResponse.html",[0,0.258,2,0.872,3,0.02,4,0.02,5,0.011,7,0.117,27,0.539,29,0.602,30,0.001,31,0.426,32,0.182,33,0.38,55,2.804,95,0.097,101,0.014,103,0.001,104,0.001,127,1.267,165,0.791,347,2.598,364,2.363,376,1.782,467,3.696,966,3.888,2691,5.789,2697,6.964,2774,10.306,2775,10.306,3725,10.374,3736,7.016,3737,8.34,3738,8.637,3739,8.208,3740,8.208,3741,8.806,3742,8.34,3743,7.016,3744,7.595,3745,7.595,3746,7.595,3747,7.595,3748,7.595,3749,7.595,3750,6.35,3751,7.016,3752,6.35,3753,6.123,3754,7.016,3755,7.016]],["title/injectables/BoardUc.html",[105,0.89,2757,5.27]],["body/injectables/BoardUc.html",[0,0.109,3,0.008,4,0.008,5,0.005,7,0.049,8,0.636,26,2.956,27,0.493,29,0.943,30,0.001,31,0.667,32,0.167,33,0.594,35,1.416,36,2.839,39,3.502,47,0.767,55,2.317,59,0.995,95,0.125,99,0.544,101,0.006,103,0,104,0,105,0.694,107,0.767,111,2.106,112,3.046,127,0.665,187,0.459,199,2.01,216,1.704,217,1.648,221,3.207,227,0.903,461,0.739,766,1.377,1052,2.731,1053,3.441,1474,4.036,1545,1.024,1865,6.592,1866,1.813,1880,7.389,1881,4.244,1952,4.943,1984,4.75,2014,3.902,2598,3.943,2697,5.863,2757,4.112,2856,6.287,2861,1.978,2919,6.189,2920,6.189,2923,6.189,3089,3.736,3115,7.054,3126,5.234,3236,5.504,3295,2.322,3378,8.468,3466,10.446,3535,7.848,3536,7.605,3537,8.139,3756,3.204,3757,6.189,3758,6.189,3759,6.189,3760,6.7,3761,6.7,3762,5.853,3763,7.167,3764,6.189,3765,6.189,3766,6.189,3767,2.503,3768,3.204,3769,4.112,3770,3.204,3771,5.264,3772,10.514,3773,6.487,3774,4.479,3775,3.204,3776,5.264,3777,3.204,3778,5.264,3779,3.204,3780,5.264,3781,9.402,3782,3.204,3783,5.264,3784,3.204,3785,5.264,3786,3.204,3787,5.264,3788,3.204,3789,5.264,3790,7.758,3791,3.204,3792,3.204,3793,7.758,3794,3.204,3795,5.264,3796,3.204,3797,5.264,3798,3.204,3799,5.264,3800,3.204,3801,5.264,3802,3.204,3803,2.583,3804,2.503,3805,3.204,3806,3.204,3807,3.204,3808,8.557,3809,8.57,3810,9.288,3811,3.204,3812,3.204,3813,3.204,3814,3.204,3815,7.758,3816,3.204,3817,6.189,3818,3.204,3819,3.204,3820,3.204,3821,3.204,3822,2.435,3823,7.167,3824,6.189,3825,3.204,3826,3.204,3827,3.204,3828,3.204,3829,3.204,3830,2.03,3831,2.679,3832,2.154]],["title/classes/BoardUrlParams.html",[0,0.23,2925,5.893]],["body/classes/BoardUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,1984,5.012,2925,10.238,3466,10.518,3833,9.724,3834,5.672,3835,9.724]],["title/classes/BruteForceError.html",[0,0.23,1814,5.893]],["body/classes/BruteForceError.html",[0,0.254,2,0.858,3,0.02,4,0.02,5,0.011,7,0.115,8,1.197,27,0.546,29,0.592,30,0.001,31,0.419,32,0.19,33,0.556,35,0.902,47,0.924,55,2.791,95,0.127,101,0.014,103,0.001,104,0.001,127,0.944,165,0.782,187,1.07,204,4.068,216,2.537,364,2.287,380,1.562,404,1.792,406,2.386,511,3.823,558,3.55,564,2.772,596,3.852,1013,5.437,1016,2.667,1253,5.133,1291,3.178,1327,5.112,1472,8.212,1473,6.361,1474,4.025,1475,7.148,1479,4.866,1480,4.187,1481,4.866,1482,4.866,1483,4.866,1484,4.866,1485,4.866,1486,4.554,1487,4.268,1493,4.731,1814,8.661,1843,11.718,3836,11.13,3837,7.468,3838,9.915,3839,9.915,3840,6.899,3841,7.468,3842,7.468]],["title/injectables/BsonConverter.html",[105,0.89,3843,5.64]],["body/injectables/BsonConverter.html",[0,0.263,3,0.021,4,0.021,5,0.011,7,0.119,8,1.226,27,0.421,29,0.805,30,0.001,31,0.569,32,0.142,33,0.507,35,1.452,95,0.13,101,0.015,103,0.001,104,0.001,105,1.339,107,1.853,187,1.109,217,1.339,227,1.07,264,4.299,379,2.34,734,4.469,778,8.904,1062,5.593,1708,9.598,2325,12.237,3843,8.488,3844,7.741,3845,9.378,3846,9.378,3847,10.152,3848,7.741,3849,10.152,3850,10.9,3851,9.394,3852,9.373,3853,8.713,3854,11.108,3855,12.025,3856,10.152,3857,7.741,3858,10.152,3859,7.741,3860,7.741,3861,8.869,3862,7.741]],["title/classes/Builder.html",[0,0.23,2155,4.534]],["body/classes/Builder.html",[0,0.319,2,1.078,3,0.025,4,0.025,5,0.013,7,0.144,8,1.385,27,0.514,29,0.744,30,0.001,31,0.526,32,0.161,33,0.469,35,1.133,101,0.018,103,0.001,104,0.001,127,1.186,165,0.905,216,2.291,227,0.989,661,5.219,667,6.058,692,5.08,2090,6.557,2155,7.709,2156,10.356,3863,9.384,3864,11.469,3865,11.469,3866,11.469,3867,9.384,3868,11.469]],["title/classes/BusinessError.html",[0,0.23,1472,4.164]],["body/classes/BusinessError.html",[0,0.338,2,0.69,3,0.016,4,0.016,5,0.008,7,0.092,8,1.031,9,4.75,27,0.507,29,0.477,30,0.001,31,0.337,32,0.188,33,0.496,35,0.726,47,0.864,55,1.878,59,2.65,95,0.139,101,0.011,103,0.001,104,0.001,127,1.079,145,1.551,165,0.674,187,0.861,204,4.355,216,2.486,217,0.792,227,0.633,234,1.612,359,2.083,364,2.117,375,3.464,376,1.409,379,2.736,404,1.543,406,1.919,467,3.07,564,3.168,661,3.597,795,3.541,806,2.531,966,3.076,1013,4.958,1016,3.049,1062,2.622,1253,6.006,1291,4.86,1327,4.688,1472,5.27,1473,7.254,1474,4.235,1475,6.944,1480,3.368,1486,7.445,1487,6.18,1492,3.621,1493,6.29,1500,7.268,1617,7.457,1773,3.858,2092,4.832,2180,3.805,2621,4.033,2789,4.506,3544,3.545,3672,8.014,3869,6.007,3870,6.882,3871,6.882,3872,5.836,3873,6.669,3874,5.407,3875,9.446,3876,9.537,3877,8.537,3878,6.007,3879,6.007,3880,6.007,3881,6.007,3882,6.007,3883,6.007,3884,6.007,3885,5.248,3886,5.55,3887,5.55,3888,6.669,3889,7.886,3890,8.537,3891,6.007,3892,6.007]],["title/injectables/CacheService.html",[105,0.89,3893,5.64]],["body/injectables/CacheService.html",[0,0.332,3,0.026,4,0.026,5,0.014,7,0.15,8,1.417,27,0.405,30,0.001,35,1.177,95,0.161,101,0.019,103,0.001,104,0.001,105,1.548,107,2.333,187,1.396,227,1.027,1608,7.225,2171,4.19,2172,4.662,2173,4.496,3893,9.813,3894,9.748,3895,13.07,3896,9.748,3897,11.001,3898,5.32,3899,9.748,3900,7.407,3901,9.005,3902,8.516,3903,9.748]],["title/modules/CacheWrapperModule.html",[425,1.808,1623,5.438]],["body/modules/CacheWrapperModule.html",[0,0.266,3,0.021,4,0.021,5,0.011,30,0.001,47,0.744,95,0.17,101,0.015,103,0.001,104,0.001,150,2.867,187,1.12,204,2.682,217,1.501,227,1.077,334,0.861,425,3.051,427,2.89,428,3.048,429,3.143,430,3.129,431,3.101,432,4.208,433,4.292,438,4.826,442,4.108,443,3.074,444,2.997,449,4.108,837,5.793,839,3.67,883,4.284,1052,3.186,1053,5.048,1545,2.497,1623,10.7,1990,7.981,2171,3.36,2172,3.738,2173,3.605,3544,3.246,3893,11.64,3897,6.828,3898,4.266,3900,8.648,3902,6.828,3904,7.816,3905,7.816,3906,7.816,3907,7.816,3908,10.217,3909,10.217,3910,6.828,3911,6.106,3912,7.981,3913,8.542,3914,7.816,3915,7.816,3916,7.816,3917,9.438,3918,7.221,3919,7.816,3920,6.828,3921,7.221,3922,6.828,3923,6.828,3924,7.221]],["title/classes/CalendarEventDto.html",[0,0.23,3925,5.438]],["body/classes/CalendarEventDto.html",[0,0.327,2,1.104,3,0.025,4,0.025,5,0.014,7,0.148,27,0.519,29,0.762,30,0.001,31,0.539,32,0.175,33,0.48,47,0.947,100,3.217,101,0.018,103,0.001,104,0.001,127,1.214,165,0.918,1474,4.248,2789,5.072,3925,10.738,3926,13.006,3927,9.608,3928,8.555,3929,9.728,3930,11.635,3931,9.608,3932,9.608,3933,8.876,3934,8.876]],["title/injectables/CalendarMapper.html",[105,0.89,3935,5.64]],["body/injectables/CalendarMapper.html",[0,0.319,3,0.025,4,0.025,5,0.013,7,0.144,8,1.383,27,0.389,29,0.743,30,0.001,31,0.525,32,0.131,33,0.468,35,1.131,95,0.159,101,0.018,103,0.001,104,0.001,105,1.51,107,2.241,187,1.341,217,1.235,227,0.987,234,1.519,630,9.232,1474,3.178,3925,10.392,3928,7.829,3935,9.575,3936,9.362,3937,11.453,3938,10.778,3939,9.362,3940,7.828,3941,9.362,3942,8.649,3943,8.649,3944,8.649,3945,7.547,3946,9.362,3947,9.362,3948,7.114,3949,9.362]],["title/modules/CalendarModule.html",[425,1.808,3950,5.64]],["body/modules/CalendarModule.html",[0,0.312,3,0.024,4,0.024,5,0.013,30,0.001,95,0.164,101,0.017,103,0.001,104,0.001,187,1.314,425,3.287,427,3.39,428,3.576,429,3.687,430,3.671,431,3.638,432,4.532,433,4.624,442,4.546,443,3.607,444,3.516,449,3.687,1266,5.241,3935,11.193,3950,11.547,3951,9.17,3952,9.17,3953,9.17,3954,11.733,3955,9.17,3956,7.601,3957,9.17,3958,8.471]],["title/injectables/CalendarService.html",[105,0.89,3954,5.64]],["body/injectables/CalendarService.html",[0,0.22,3,0.017,4,0.017,5,0.009,7,0.099,8,1.084,26,2.6,27,0.487,29,0.819,30,0.001,31,0.579,32,0.164,33,0.516,34,1.107,35,1.084,36,1.951,39,2.406,47,0.884,55,2.271,95,0.169,99,1.095,101,0.012,103,0.001,104,0.001,105,1.184,107,1.544,111,2.613,112,2.315,127,0.815,150,4.093,154,5.087,165,0.708,167,2.463,185,3.514,187,0.924,193,10.246,215,2.088,216,2.349,217,1.184,227,0.946,234,1.675,238,5.584,250,8.629,254,5.393,255,5.635,270,5.635,305,1.856,363,4.143,576,6.084,1265,8.301,1266,3.687,1268,4.143,1376,4.901,1381,3.762,1439,4.292,1440,4.41,1441,4.781,1709,5.635,1887,3.982,2054,5.635,2063,6.247,2074,4.41,2171,2.772,2172,3.085,2173,2.975,2333,7.65,2334,7.235,2349,5.959,2357,5.959,2378,5.959,2622,4.578,3898,3.52,3925,5.2,3935,10.414,3938,5.393,3942,5.959,3943,5.959,3944,5.959,3954,7.503,3958,5.959,3959,6.45,3960,10.321,3961,8.975,3962,5.635,3963,8.975,3964,8.975,3965,11.158,3966,6.45,3967,8.995,3968,6.45,3969,6.45,3970,6.45,3971,6.45,3972,8.975,3973,6.45,3974,6.45,3975,6.45,3976,5.039,3977,6.45,3978,6.45,3979,6.45]],["title/classes/Card.html",[0,0.23,2856,3.818]],["body/classes/Card.html",[0,0.205,2,0.692,3,0.016,4,0.016,5,0.012,7,0.093,8,1.033,27,0.546,29,0.99,30,0.001,31,0.7,32,0.181,33,0.624,35,1.534,36,1.859,47,0.833,55,2.688,59,1.87,95,0.147,101,0.016,103,0.001,104,0.001,112,2.231,116,2.769,148,3.676,165,0.675,208,2.236,217,0.795,221,1.42,227,1.048,334,0.664,347,2.027,363,5.494,404,1.798,595,2.945,596,3.792,661,3.605,692,3.188,728,3.35,806,4.191,884,4.041,1474,4.033,1857,5.08,1860,6.58,1984,2.577,2598,6.546,2791,8.046,2794,6.341,2795,6.341,2796,6.341,2797,6.071,2798,6.341,2800,4.119,2801,5.494,2802,6.526,2804,6.341,2805,5.494,2806,6.603,2808,4.366,2809,4.516,2811,6.218,2812,4.366,2814,6.071,2816,4.366,2818,4.119,2844,5.419,2856,4.842,2864,5.574,2867,5.494,2870,5.348,2878,8.018,2879,4.466,2880,2.882,2881,2.747,2882,3.591,3236,7.629,3980,5.566,3981,5.566,3982,6.025,3983,6.025,3984,4.578,3985,4.578,3986,4.578,3987,5.264,3988,6.025,3989,5.264,3990,6.025,3991,6.025,3992,6.025,3993,6.025,3994,6.025,3995,3.986,3996,6.071,3997,4.707,3998,7.903,3999,5.566,4000,5.348,4001,5.566,4002,5.566,4003,5.264]],["title/controllers/CardController.html",[481,2.63,2764,5.893]],["body/controllers/CardController.html",[0,0.128,3,0.01,4,0.01,5,0.005,7,0.058,8,0.724,10,3.018,27,0.412,29,0.787,30,0.001,31,0.556,32,0.194,33,0.496,35,1.198,36,2.577,95,0.146,100,1.259,101,0.007,103,0,104,0,111,0.752,112,2.846,163,1.186,187,0.539,206,1.926,215,1.217,216,1.108,217,1.372,221,2.338,227,0.632,234,1.213,240,1.179,264,3.941,364,1.838,376,0.882,447,1.577,481,1.467,483,1.81,491,6.273,498,4.097,502,7.413,506,7.726,509,8.269,513,6.73,529,2.644,538,2.687,543,4.664,552,2.415,553,6.504,554,8.326,555,1.985,556,2.035,557,2.053,558,1.788,559,2.053,561,2.053,563,6.122,564,4.856,770,2.217,883,2.513,1016,2.14,1469,6.882,1474,2.035,1724,2.109,1828,2.672,1919,1.562,2037,6.006,2594,3.296,2597,3.145,2686,5.278,2757,5.837,2758,5.837,2764,5.236,2769,1.859,2856,5.613,2880,1.799,2926,7.536,2928,4.831,2930,7.536,2931,7.073,2934,7.435,2936,6.87,2949,9.706,2950,6.87,2951,5.079,2954,2.725,2955,2.129,2962,3.032,2972,6.87,2973,6.87,2976,3.286,3232,6.476,3236,3.849,3262,6.752,3372,4.097,3512,3.474,3690,3.474,3758,5.537,3762,6.527,3764,6.902,3765,6.902,3822,4.554,4004,3.761,4005,6.902,4006,7.472,4007,3.761,4008,10.892,4009,7.445,4010,3.761,4011,6.023,4012,3.761,4013,4.554,4014,3.761,4015,3.761,4016,3.761,4017,8.522,4018,3.761,4019,3.761,4020,3.761,4021,7.472,4022,7.445,4023,3.761,4024,3.761,4025,3.761,4026,3.761,4027,3.761,4028,7.445,4029,3.761,4030,3.761,4031,3.761,4032,7.445,4033,3.761,4034,3.761,4035,3.761,4036,3.761,4037,3.761,4038,2.322,4039,3.032,4040,2.571,4041,6.527,4042,4.831,4043,3.761,4044,3.761,4045,2.938,4046,3.474,4047,3.145,4048,3.145,4049,3.145,4050,3.761,4051,5.236,4052,3.761,4053,5.993,4054,3.761,4055,5.993,4056,3.474,4057,3.761,4058,3.761,4059,9.308,4060,3.761,4061,3.286,4062,3.761,4063,3.761,4064,3.761,4065,3.761,4066,3.761,4067,3.761,4068,3.761,4069,3.761,4070,3.474,4071,2.571,4072,4.942,4073,3.474,4074,3.761,4075,3.761,4076,3.761,4077,3.761,4078,3.474]],["title/classes/CardIdsParams.html",[0,0.23,4022,5.893]],["body/classes/CardIdsParams.html",[0,0.394,2,1.096,3,0.025,4,0.025,5,0.013,7,0.147,27,0.396,30,0.001,32,0.175,47,0.968,95,0.148,101,0.018,103,0.001,104,0.001,145,2.462,165,0.914,364,1.768,369,2.109,374,3.048,376,2.238,379,2.199,467,3.114,770,7.836,1000,4.954,1925,6.021,2489,5.452,4022,10.12,4079,10.702,4080,9.54,4081,9.54,4082,7.69,4083,6.828,4084,9.54]],["title/classes/CardListResponse.html",[0,0.23,4041,5.893]],["body/classes/CardListResponse.html",[0,0.322,2,1.088,3,0.025,4,0.025,5,0.013,7,0.146,27,0.479,29,0.751,30,0.001,31,0.531,32,0.174,33,0.473,95,0.148,101,0.018,103,0.001,104,0.001,127,1.458,145,2.445,163,4.184,165,0.91,364,1.756,376,2.222,467,3.101,966,4.85,1006,6.722,1011,5.041,1026,5.262,4041,11.59,4079,11.489,4085,9.473,4086,10.434,4087,9.473,4088,9.473]],["title/entities/CardNode.html",[380,1.411,3165,5.27]],["body/entities/CardNode.html",[0,0.3,3,0.023,4,0.023,5,0.012,7,0.135,27,0.366,30,0.001,32,0.155,55,2.649,95,0.167,96,2.381,101,0.021,103,0.001,104,0.001,165,0.87,208,3.269,217,1.162,227,0.928,240,3.773,334,0.971,364,1.633,380,2.307,381,2.899,398,2.58,404,1.994,405,2.375,617,5.085,1857,4.716,2620,5.138,2621,4.161,2856,6.242,3144,5.917,3154,6.895,3165,8.616,3212,5.657,3231,9.634,3236,8.104,3261,6.022,3560,6.694,3562,7.083,3583,5.739,4089,10.188,4090,5.921,4091,8.138,4092,6.022,4093,5.921,4094,9.634,4095,7.365,4096,8.138,4097,8.138]],["title/interfaces/CardNodeProps.html",[334,0.743,4094,5.893]],["body/interfaces/CardNodeProps.html",[0,0.301,3,0.023,4,0.023,5,0.012,7,0.136,30,0.001,32,0.155,55,2.78,95,0.167,96,2.392,101,0.021,103,0.001,104,0.001,165,0.873,208,3.284,217,1.167,227,0.932,240,3.465,334,0.975,336,2.156,380,2.313,398,2.591,404,2.181,405,2.385,617,5.107,1857,4.729,2620,5.16,2621,4.179,2856,6.259,3144,5.934,3154,6.913,3165,6.912,3212,5.682,3231,9.661,3236,8.355,3261,6.049,3560,6.723,3562,7.748,3583,5.765,4089,8.173,4090,5.947,4092,6.049,4093,5.947,4094,10.539,4095,7.397,4096,8.173,4097,8.173]],["title/interfaces/CardProps.html",[334,0.743,4003,5.893]],["body/interfaces/CardProps.html",[0,0.273,3,0.021,4,0.021,5,0.015,7,0.123,30,0.001,32,0.162,36,1.743,47,0.919,55,2.778,95,0.162,101,0.02,103,0.001,104,0.001,112,1.799,148,2.481,165,0.82,208,2.976,217,1.058,221,1.89,227,1.214,334,0.883,336,1.954,347,1.634,404,2.083,728,4.068,806,4.855,1474,4.391,1857,4.928,1984,3.429,2598,5.28,2791,6.58,2801,5.15,2802,6.261,2805,5.15,2806,6.335,2814,5.691,2844,7.299,2856,4.539,2864,6.768,2867,6.671,2870,6.494,2878,9.289,2879,5.943,2880,3.835,2881,3.656,2882,4.779,3236,8.308,3980,7.408,3995,5.304,3996,7.372,3997,6.264,3998,9.596,3999,7.408,4000,6.494,4001,7.408,4002,7.408,4003,9.075]],["title/classes/CardResponse.html",[0,0.23,4086,5.438]],["body/classes/CardResponse.html",[0,0.248,2,0.836,3,0.019,4,0.019,5,0.01,7,0.112,27,0.534,29,0.577,30,0.001,31,0.408,32,0.183,33,0.549,34,2.1,47,0.855,55,2.144,95,0.161,101,0.014,103,0.001,104,0.001,127,1.232,145,1.879,165,0.769,364,2.334,375,3.954,376,1.707,467,3.558,469,3.211,475,3.647,618,3.097,966,3.727,1011,3.874,1019,5.684,1041,6.797,1474,4.153,1925,5.065,2594,3.211,2597,9.187,2787,6.093,2789,3.843,2880,3.481,2909,4.893,2910,5.319,2911,5.319,3236,7.857,3424,6.359,3658,7.75,3662,6.783,3666,5.166,3668,5.166,4039,5.868,4040,4.976,4045,5.686,4047,6.086,4070,6.724,4071,4.976,4072,4.815,4073,6.724,4086,9.863,4095,6.086,4098,7.279,4099,11.302,4100,7.279,4101,7.279,4102,7.279,4103,7.279,4104,7.279,4105,7.279,4106,9.187,4107,7.279,4108,7.279,4109,6.359,4110,7.279,4111,6.724,4112,7.279]],["title/classes/CardResponseMapper.html",[0,0.23,4048,5.64]],["body/classes/CardResponseMapper.html",[0,0.305,2,1.03,3,0.024,4,0.024,5,0.013,7,0.138,8,1.347,27,0.372,29,0.711,30,0.001,31,0.503,32,0.126,33,0.448,34,1.539,35,1.083,95,0.156,99,1.522,100,3.002,101,0.017,103,0.001,104,0.001,217,1.182,227,0.945,234,1.97,591,3.834,627,3.779,974,5.535,975,6.373,980,7.004,1041,4.981,1474,3.044,1828,4.972,2344,3.706,2594,3.955,2856,7.392,3236,5.758,3658,5.679,3662,6.883,3679,6.645,4048,9.323,4049,7.496,4078,8.283,4086,10.237,4099,8.283,4106,9.323,4113,11.151,4114,11.151,4115,8.966,4116,7.832,4117,7.832,4118,7.496,4119,8.966,4120,8.966,4121,8.966]],["title/injectables/CardService.html",[105,0.89,3535,5.438]],["body/injectables/CardService.html",[0,0.176,3,0.014,4,0.014,5,0.007,7,0.079,8,0.924,10,3.09,12,3.529,26,2.433,27,0.507,29,0.97,30,0.001,31,0.686,32,0.171,33,0.611,34,0.887,35,1.446,36,2.872,47,0.664,49,2.015,55,2.478,59,2.375,83,2.303,95,0.144,99,0.877,101,0.01,103,0,104,0,105,1.009,107,1.237,111,2.253,112,3.07,127,0.967,187,0.74,216,1.685,217,1.486,221,3.011,227,0.96,234,1.746,305,1.487,591,2.209,592,2.279,734,2.982,770,3.045,806,2.177,883,3.208,1474,3.651,1984,2.209,2344,2.136,2570,2.795,2686,2.749,2697,6.154,2799,3.473,2856,7.859,3120,3.926,3121,7.994,3232,5.814,3236,6.908,3275,6.398,3305,5.566,3369,8.64,3372,5.231,3378,7.871,3382,4.32,3535,6.168,3538,8.858,3773,10.222,3774,6.729,3781,5.978,3824,9.307,4051,4.513,4117,4.513,4118,4.32,4122,5.167,4123,7.652,4124,7.652,4125,6.684,4126,5.167,4127,6.684,4128,5.167,4129,7.652,4130,5.167,4131,7.652,4132,5.167,4133,7.652,4134,5.167,4135,7.652,4136,5.167,4137,7.652,4138,5.167,4139,7.652,4140,5.167,4141,7.652,4142,5.167,4143,4.165,4144,5.167,4145,5.167,4146,5.167,4147,5.167,4148,5.167,4149,4.513,4150,3.418,4151,4.773,4152,5.167,4153,5.167,4154,5.167,4155,5.167,4156,7.652,4157,7.652,4158,7.652,4159,5.167]],["title/classes/CardSkeletonResponse.html",[0,0.23,4160,5.64]],["body/classes/CardSkeletonResponse.html",[0,0.29,2,0.98,3,0.023,4,0.023,5,0.012,7,0.131,27,0.492,29,0.677,30,0.001,31,0.478,32,0.166,33,0.426,47,0.787,55,2.377,72,5.074,95,0.109,101,0.016,103,0.001,104,0.001,127,1.366,144,2.954,165,0.853,364,2.003,376,2.001,379,1.966,467,3.189,475,4.273,946,7.041,966,4.366,1013,3.911,2543,8.211,2856,6.116,2909,5.733,2910,5.897,2911,5.897,3236,8.576,3394,7.388,3781,10.053,4095,7.131,4160,10.759,4161,12.472,4162,8.529,4163,8.529,4164,8.529,4165,10.807,4166,9.44,4167,10.807,4168,9.44,4169,7.148,4170,10.807,4171,9.983,4172,9.983,4173,8.529,4174,8.529]],["title/injectables/CardUc.html",[105,0.89,2758,5.27]],["body/injectables/CardUc.html",[0,0.155,3,0.012,4,0.012,5,0.006,7,0.07,8,0.841,26,2.887,27,0.464,29,0.914,30,0.001,31,0.627,32,0.176,33,0.559,35,1.297,36,2.702,39,3.332,55,2.459,59,1.415,95,0.138,99,0.774,101,0.009,103,0,104,0,105,0.918,107,1.091,111,2.451,112,2.942,127,0.88,145,1.176,187,0.653,199,3.612,216,1.885,217,1.692,221,3.092,227,1.132,461,1.605,692,3.797,766,1.959,1041,2.532,1052,3.444,1053,4.195,1545,1.456,1773,2.927,1828,2.032,1865,6.91,1866,3.941,1880,6.163,1881,2.887,1952,5.764,2014,5.161,2439,3.303,2444,3.561,2594,4.739,2598,4.807,2758,5.44,2856,5.354,2864,2.97,2867,2.927,2870,2.849,3089,7.231,3115,8.098,3126,7.96,3232,5.291,3378,7.96,3535,9.009,3538,7.188,3762,3.982,3767,3.561,3769,5.44,3774,5.46,3781,7.39,3803,3.674,3804,3.561,3808,7.011,3810,7.39,3822,8.163,3823,4.21,3830,4.411,3831,3.811,3832,3.064,4000,4.353,4005,8.738,4051,8.263,4175,4.558,4176,7.806,4177,6.963,4178,8.45,4179,7.064,4180,7.381,4181,4.558,4182,4.558,4183,4.558,4184,4.558,4185,6.963,4186,9.29,4187,4.558,4188,6.963,4189,8.45,4190,4.558,4191,6.963,4192,4.558,4193,4.558,4194,9.459,4195,4.558,4196,4.558,4197,4.558,4198,6.963,4199,4.558,4200,4.558,4201,6.963,4202,6.432,4203,4.558,4204,7.806,4205,4.558,4206,4.558,4207,4.558,4208,4.558,4209,3.674,4210,4.558,4211,4.558]],["title/classes/CardUrlParams.html",[0,0.23,4008,5.893]],["body/classes/CardUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,2856,6.633,3781,9.827,3834,5.672,4008,10.238,4212,9.724,4213,9.724]],["title/classes/ChallengeParams.html",[0,0.23,4214,5.893]],["body/classes/ChallengeParams.html",[0,0.398,2,1.111,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,47,0.851,95,0.15,101,0.018,103,0.001,104,0.001,165,0.922,355,4.596,361,6.433,364,1.794,368,4.616,369,2.583,370,3.899,371,3.221,374,3.092,376,2.27,379,2.231,467,3.141,470,4.924,479,7.173,4214,10.208,4215,9.678,4216,9.29,4217,9.678]],["title/classes/ChangeLanguageParams.html",[0,0.23,4218,5.64]],["body/classes/ChangeLanguageParams.html",[0,0.402,2,1.131,3,0.026,4,0.026,5,0.014,7,0.151,27,0.409,30,0.001,32,0.138,95,0.162,99,1.671,101,0.019,103,0.001,104,0.001,165,0.932,364,1.825,374,3.145,376,2.309,467,3.174,1031,3.155,1044,4.832,2914,6.322,4218,9.87,4219,9.843,4220,8.802,4221,9.963,4222,9.843,4223,9.843,4224,9.843]],["title/classes/Class.html",[0,0.315]],["body/classes/Class.html",[0,0.374,2,0.714,3,0.016,4,0.032,5,0.009,7,0.096,8,1.057,26,2.736,27,0.564,29,0.494,30,0.001,31,0.649,32,0.123,33,0.311,35,1.057,39,2.346,47,0.955,55,1.925,62,6.405,83,3.305,95,0.13,101,0.017,103,0.001,104,0.001,116,3.746,145,3.249,148,1.925,165,0.69,227,1.406,334,0.685,359,2.157,404,1.83,591,4.697,592,4.845,595,3.013,596,2.657,661,3.687,692,3.26,884,4.133,1854,5.103,1857,4.949,1860,6.695,1940,3.941,2586,3.284,2800,4.253,2818,4.253,2821,5.435,2823,5.435,2826,4.86,2827,4.86,4225,5.747,4226,8.75,4227,3.781,4228,7.958,4229,8.345,4230,8.14,4231,8.345,4232,6.866,4233,8.345,4234,8.345,4235,8.083,4236,6.221,4237,4.86,4238,6.221,4239,3.889,4240,6.221,4241,6.221,4242,6.221,4243,5.435,4244,6.221,4245,6.221,4246,6.221,4247,6.221,4248,6.221,4249,6.221,4250,6.221,4251,6.221,4252,6.221,4253,6.221,4254,6.221,4255,6.221,4256,6.221,4257,6.221,4258,6.221,4259,6.221,4260,6.221,4261,7.691,4262,5.201,4263,5.201,4264,5.747,4265,5.747,4266,8.083,4267,5.747,4268,5.747,4269,5.747,4270,5.747,4271,5.747,4272,5.747,4273,5.747,4274,5.747,4275,5.747,4276,5.747]],["title/entities/ClassEntity.html",[380,1.411,4277,5.27]],["body/entities/ClassEntity.html",[0,0.266,2,0.611,3,0.014,4,0.03,5,0.008,7,0.181,26,1.631,27,0.527,30,0.001,31,0.573,32,0.178,33,0.663,34,0.913,47,0.935,49,5.175,55,2.039,62,5.958,95,0.139,96,2.113,97,2.262,99,0.902,101,0.015,103,0,104,0,111,1.064,144,1.453,145,3.232,165,0.731,234,0.863,240,4.025,305,1.53,334,0.586,359,2.71,364,2.354,369,2.934,370,4.11,380,1.635,381,1.75,386,6.723,396,6.105,398,1.557,399,3.06,402,2.187,404,0.961,405,1.433,406,1.699,618,2.262,619,4.467,905,2.208,2136,2.128,4227,3.517,4228,7.402,4229,7.762,4230,8.067,4231,7.762,4232,6.804,4233,7.762,4234,7.762,4277,6.105,4278,4.912,4279,5.317,4280,5.317,4281,5.317,4282,5.317,4283,5.317,4284,6.534,4285,5.317,4286,8.503,4287,3.773,4288,5.317,4289,5.317,4290,5.317,4291,5.317,4292,5.317,4293,4.229,4294,3.204,4295,4.912,4296,7.748,4297,4.445,4298,9.437,4299,6.827,4300,4.912,4301,4.912,4302,4.445,4303,2.333,4304,3.134,4305,3.941,4306,7.22,4307,4.153,4308,4.912,4309,4.912,4310,7.22,4311,4.912,4312,7.22,4313,4.912,4314,4.912,4315,6.105,4316,3.941,4317,7.22,4318,4.912,4319,5.939,4320,3.852,4321,7.22,4322,4.912]],["title/classes/ClassEntityFactory.html",[0,0.23,4323,6.231]],["body/classes/ClassEntityFactory.html",[0,0.162,2,0.547,3,0.013,4,0.023,5,0.007,7,0.073,8,0.87,27,0.532,29,1.026,30,0.001,31,0.712,32,0.184,33,0.619,34,1.661,35,1.444,47,0.524,49,4.663,55,2.496,59,3.225,62,5.063,95,0.124,101,0.009,103,0,104,0,127,0.602,138,3.126,144,3.194,148,1.474,165,0.568,185,4.85,216,1.332,217,0.95,227,0.759,234,1.841,329,3.442,359,2.497,366,2.622,379,2.001,380,2.173,381,2.37,404,1.302,538,3.228,596,3.856,627,2.242,660,7.115,661,4.604,662,5.425,665,4.037,666,5.425,667,5.615,668,4.037,669,4.037,670,4.037,671,3.964,672,4.412,673,4.867,674,6.929,675,5.72,676,6.941,677,2.696,682,2.67,683,4.037,684,2.696,685,5.067,686,5.28,687,4.489,688,5.107,689,4,690,2.67,691,2.495,692,4.072,693,2.599,694,2.555,695,2.67,696,4.99,697,2.696,698,4.779,699,2.67,700,7.038,701,4.081,702,6.551,703,2.696,704,4.29,705,2.67,706,2.696,707,2.67,708,2.696,709,2.67,710,3.017,711,2.838,712,2.67,713,6.016,714,2.696,715,2.67,716,4.037,717,3.964,718,4.037,719,2.696,720,2.577,721,2.555,722,2.101,723,2.67,724,2.67,725,2.67,726,2.696,727,2.696,728,1.865,729,2.67,730,2.696,731,2.819,732,2.67,733,2.696,734,2.749,735,2.749,737,2.838,1925,2.475,2321,3.151,4227,1.64,4228,3.451,4229,3.619,4230,3.53,4231,3.619,4232,2.977,4233,3.619,4234,3.619,4277,3.721,4286,5.625,4296,3.982,4323,8.019,4324,4.763,4325,6.651,4326,6.651,4327,4.763,4328,3.982,4329,4.763,4330,4.763,4331,3.38,4332,3.619]],["title/classes/ClassFactory.html",[0,0.23,4333,6.231]],["body/classes/ClassFactory.html",[0,0.293,2,0.54,3,0.012,4,0.025,5,0.007,7,0.072,8,0.861,27,0.531,29,1.024,30,0.001,31,0.71,32,0.184,33,0.617,34,1.65,35,1.439,47,0.752,49,1.833,55,2.485,59,3.207,62,5.023,83,2.145,95,0.132,96,1.271,97,2.001,101,0.009,103,0,104,0,127,0.594,138,3.096,144,3.181,148,1.455,165,0.563,185,4.835,216,1.319,217,0.94,227,0.751,234,2.004,329,3.429,359,2.472,366,2.588,379,1.985,380,1.802,381,2.347,404,1.289,538,3.197,591,2.011,592,2.074,596,3.846,627,2.22,660,6.911,661,4.581,662,5.389,665,3.997,666,5.389,667,5.464,668,3.997,669,3.997,670,3.997,671,3.925,672,4.377,673,4.829,674,6.911,675,5.688,676,6.864,677,2.661,682,2.636,683,3.997,684,2.661,685,5.034,686,5.245,687,4.459,688,5.074,689,3.961,690,2.636,691,2.462,692,4.052,693,2.566,694,2.523,695,2.636,696,4.958,697,2.661,698,4.741,699,2.636,700,7.017,701,4.065,702,6.525,703,2.661,704,3.523,705,2.636,706,2.661,707,2.636,708,2.661,709,2.636,712,2.636,713,5.986,714,2.661,715,2.636,716,3.997,717,3.925,718,3.997,719,2.661,720,2.544,721,2.523,722,2.074,723,2.636,724,2.636,725,2.636,726,2.661,727,2.661,728,1.841,729,2.636,730,2.661,731,2.792,732,2.636,733,2.661,735,2.714,737,2.802,2321,3.11,3499,4.343,4150,7.698,4227,1.619,4228,3.407,4229,3.573,4230,3.485,4231,3.573,4232,2.939,4233,3.573,4234,3.573,4261,5.418,4262,3.931,4263,3.931,4325,6.586,4326,6.586,4331,3.337,4332,3.573,4333,7.956,4334,4.702,4335,6.112,4336,4.702,4337,3.407,4338,4.702,4339,4.702]],["title/classes/ClassMapper.html",[0,0.23,4340,5.893]],["body/classes/ClassMapper.html",[0,0.46,2,0.774,3,0.018,4,0.03,5,0.01,7,0.104,8,1.118,27,0.472,29,0.902,30,0.001,31,0.69,32,0.159,33,0.568,34,1.588,35,1.373,49,2.629,62,5.397,95,0.146,96,1.823,97,2.869,101,0.013,103,0.001,104,0.001,111,2.462,145,2.935,227,1.198,234,2.084,380,1.936,381,2.219,591,2.883,592,2.974,627,4.178,921,5.123,1857,2.883,2405,4.46,2441,5.267,2446,4.785,2485,2.913,4227,3.186,4228,6.705,4229,7.031,4230,6.858,4231,7.031,4232,5.785,4233,7.031,4234,7.031,4261,7.031,4262,5.637,4277,10.482,4332,5.123,4340,8.083,4341,6.742,4342,9.253,4343,9.253,4344,9.253,4345,9.253,4346,9.253,4347,6.742,4348,9.253,4349,6.742,4350,9.253,4351,6.742,4352,9.253,4353,6.742,4354,6.742,4355,4.33,4356,5.267,4357,6.742,4358,6.742,4359,6.742,4360,6.742,4361,6.742,4362,6.742,4363,6.742,4364,6.742,4365,5.89,4366,6.742,4367,6.742,4368,6.742,4369,5.637,4370,5.637,4371,5.89,4372,6.742,4373,6.742,4374,6.742,4375,6.742,4376,6.742,4377,6.742,4378,6.742,4379,6.742,4380,6.228,4381,6.742,4382,6.742,4383,6.742,4384,6.742,4385,6.742,4386,6.228,4387,6.742]],["title/modules/ClassModule.html",[425,1.808,4388,5.893]],["body/modules/ClassModule.html",[0,0.317,3,0.025,4,0.025,5,0.013,30,0.001,95,0.158,101,0.018,103,0.001,104,0.001,187,1.335,425,3.31,427,3.445,428,3.634,429,3.747,430,3.73,431,3.697,432,4.565,433,4.657,442,4.592,443,3.665,444,3.573,766,4.005,2570,5.042,4388,12.098,4389,9.319,4390,9.319,4391,9.319,4392,12.284,4393,11.237,4394,9.319]],["title/interfaces/ClassProps.html",[334,0.743,4263,5.64]],["body/interfaces/ClassProps.html",[0,0.345,3,0.017,4,0.033,5,0.009,7,0.096,26,2.89,30,0.001,31,0.65,32,0.187,33,0.679,39,1.676,47,0.994,55,2.421,62,6.761,83,3.793,95,0.13,101,0.017,103,0.001,104,0.001,116,2.023,145,3.253,165,0.693,227,1.407,334,0.689,336,1.523,359,2.167,404,1.835,591,4.958,592,5.114,1854,5.918,1857,3.754,1940,3.959,2586,3.299,2826,4.883,2827,4.883,4225,5.774,4227,3.992,4228,8.4,4229,8.809,4230,8.593,4231,8.809,4232,7.247,4233,8.809,4234,8.809,4235,5.774,4261,8.809,4262,5.226,4263,7.34,4264,5.774,4265,5.774,4266,8.11,4267,5.774,4268,5.774,4269,5.774,4270,5.774,4271,5.774,4272,5.774,4273,5.774,4274,5.774,4275,5.774,4276,5.774]],["title/injectables/ClassService.html",[105,0.89,4392,5.893]],["body/injectables/ClassService.html",[0,0.39,2,1.184,3,0.021,4,0.021,5,0.011,7,0.122,8,1.245,26,2.74,27,0.476,29,0.909,30,0.001,31,0.642,32,0.161,33,0.573,34,1.36,35,1.245,36,2.637,39,3.072,95,0.156,99,1.345,101,0.015,103,0.001,104,0.001,105,1.359,107,1.897,112,2.893,116,4.174,127,1.001,145,2.045,187,1.135,215,2.565,216,1.466,217,1.511,221,2.701,227,1.208,234,1.286,305,2.28,1238,5.089,1439,3.79,1857,3.389,2405,5.242,2485,3.423,2570,4.287,4386,7.32,4392,9.005,4393,10.781,4395,7.924,4396,10.308,4397,10.308,4398,7.924,4399,7.924,4400,10.308,4401,7.924,4402,10.308,4403,7.924,4404,10.308,4405,7.32,4406,7.924,4407,7.924,4408,7.924,4409,7.924,4410,7.924]],["title/classes/ClassSourceOptions.html",[0,0.23,4261,5.126]],["body/classes/ClassSourceOptions.html",[0,0.314,2,1.06,3,0.024,4,0.035,5,0.013,7,0.142,27,0.51,29,0.732,30,0.001,31,0.518,32,0.159,33,0.461,47,0.827,101,0.022,103,0.001,104,0.001,127,1.167,145,2.383,165,0.896,227,0.973,334,1.017,405,3.061,595,4.535,661,5.182,884,5.364,1858,7.72,4261,8.629,4332,9.749,4411,11.852,4412,8.53,4413,11.715,4414,11.356,4415,9.233,4416,9.233,4417,8.53]],["title/classes/ClassSourceOptionsEntity.html",[0,0.23,4286,5.27]],["body/classes/ClassSourceOptionsEntity.html",[0,0.312,2,1.053,3,0.024,4,0.034,5,0.013,7,0.141,27,0.469,29,0.727,30,0.001,31,0.514,32,0.159,33,0.613,47,0.893,95,0.118,96,2.479,101,0.022,103,0.001,104,0.001,127,1.159,145,2.367,165,0.892,240,3.543,334,1.01,364,1.7,369,2.5,370,3.06,386,5.241,398,2.686,405,3.048,595,3.157,2618,5.789,4286,8.834,4332,9.726,4418,11.326,4419,8.471,4420,11.181,4421,11.308,4422,10.446,4423,8.471]],["title/interfaces/ClassSourceOptionsEntityProps.html",[334,0.743,4420,5.893]],["body/interfaces/ClassSourceOptionsEntityProps.html",[0,0.327,3,0.025,4,0.031,5,0.014,7,0.148,30,0.001,32,0.135,33,0.581,47,0.947,95,0.123,96,2.597,101,0.022,103,0.001,104,0.001,145,2.48,165,0.918,240,3.646,334,1.059,336,2.341,369,2.124,370,3.206,398,2.814,405,2.59,2618,5.956,4286,7.506,4332,10.121,4418,8.876,4419,8.876,4420,10.932,4422,10.748,4423,8.876]],["title/interfaces/ClassSourceOptionsProps.html",[334,0.743,4413,5.893]],["body/interfaces/ClassSourceOptionsProps.html",[0,0.333,3,0.026,4,0.031,5,0.014,7,0.151,30,0.001,32,0.137,33,0.588,47,0.953,101,0.022,103,0.001,104,0.001,145,2.528,165,0.929,227,1.032,334,1.079,336,2.387,405,2.641,595,4.053,661,4.127,1858,8.19,4261,7.443,4332,10.175,4411,9.049,4412,9.049,4413,11.436,4417,9.049]],["title/injectables/ClassesRepo.html",[105,0.89,4393,5.64]],["body/injectables/ClassesRepo.html",[0,0.428,2,1.185,3,0.021,4,0.021,5,0.011,7,0.122,8,1.247,26,2.534,27,0.476,29,0.91,30,0.001,31,0.643,32,0.161,33,0.573,35,1.247,36,2.639,39,2.129,49,3.096,62,4.631,95,0.165,96,2.146,97,3.379,99,1.348,101,0.015,103,0.001,104,0.001,105,1.361,107,1.9,111,1.588,112,2.894,127,1.003,187,1.137,206,6.217,215,2.57,216,1.909,217,1.512,221,2.433,227,0.837,234,1.288,380,1.661,921,6.033,2395,6.94,2485,3.43,3280,5.527,3285,6.294,4277,8.063,4340,10.608,4393,8.63,4424,7.94,4425,8.63,4426,10.321,4427,7.94,4428,9.017,4429,7.94,4430,10.321,4431,7.94,4432,7.94,4433,7.94,4434,7.94,4435,7.94,4436,7.94,4437,7.94,4438,7.94,4439,7.94,4440,7.94]],["title/injectables/CloseUserLoginMigrationUc.html",[105,0.89,4441,5.64]],["body/injectables/CloseUserLoginMigrationUc.html",[0,0.225,3,0.017,4,0.017,5,0.009,7,0.101,8,1.101,26,2.616,27,0.434,29,0.829,30,0.001,31,0.586,32,0.146,33,0.522,35,1.101,36,1.982,39,1.769,47,0.48,95,0.152,99,1.12,101,0.013,103,0.001,104,0.001,105,1.202,107,1.579,111,2.507,112,2.343,127,1.152,167,2.519,204,2.264,216,2.084,217,1.559,221,2.883,227,1.101,234,1.48,305,2.623,347,2.297,355,5.024,461,2.889,766,2.836,843,2.88,1865,4.775,1866,3.735,1880,4.299,1952,6.725,2767,2.975,3830,4.18,3832,4.435,4227,4.071,4441,7.622,4442,4.97,4443,11.267,4444,5.319,4445,7.964,4446,11.267,4447,5.319,4448,8.678,4449,9.29,4450,10.104,4451,6.096,4452,9.117,4453,6.599,4454,9.117,4455,7.853,4456,6.599,4457,7.127,4458,4.891,4459,7.122,4460,5.014,4461,5.155,4462,5.517,4463,6.096,4464,8.16,4465,6.599,4466,5.517,4467,4.891,4468,7.964,4469,6.599,4470,7.964,4471,6.096,4472,6.096,4473,6.096,4474,5.014,4475,5.517]],["title/injectables/CollaborativeStorageAdapter.html",[105,0.89,4476,5.64]],["body/injectables/CollaborativeStorageAdapter.html",[0,0.182,3,0.014,4,0.014,5,0.008,7,0.082,8,0.948,27,0.489,29,0.905,30,0.001,31,0.639,32,0.165,33,0.57,34,1.347,35,1.317,36,2.627,47,0.677,72,3.684,95,0.151,100,4.047,101,0.01,103,0,104,0,105,1.035,107,1.279,111,1.569,127,0.991,148,1.654,163,2.474,165,0.619,187,0.766,200,2.557,206,4.759,227,1.079,264,4.99,379,2.628,493,5.962,494,6.872,496,5.197,520,5.274,728,4.011,839,2.51,1052,3.789,1053,4.542,1545,1.708,1916,5.975,2296,5.568,2951,4.676,3543,6.054,3928,5.364,4476,6.56,4477,8.125,4478,10.559,4479,5.345,4480,5.685,4481,8.256,4482,10.106,4483,6.854,4484,6.325,4485,9.022,4486,6.854,4487,6.325,4488,6.325,4489,7.846,4490,6.325,4491,6.325,4492,5.345,4493,9.943,4494,8.563,4495,7.846,4496,6.325,4497,8.898,4498,5.345,4499,8.326,4500,6.325,4501,5.345,4502,7.846,4503,5.345,4504,6.325,4505,5.345,4506,7.846,4507,7.421,4508,8.001,4509,5.345,4510,5.815,4511,4.669,4512,4.176,4513,4.469,4514,6.56,4515,5.345,4516,4.669,4517,4.938,4518,4.176,4519,5.345,4520,5.345,4521,7.846,4522,5.345,4523,5.345,4524,5.345,4525,5.345]],["title/injectables/CollaborativeStorageAdapterMapper.html",[105,0.89,4494,5.64]],["body/injectables/CollaborativeStorageAdapterMapper.html",[0,0.268,3,0.021,4,0.021,5,0.011,7,0.121,8,1.24,27,0.327,29,0.625,30,0.001,31,0.442,32,0.11,33,0.394,35,0.951,95,0.161,100,4.54,101,0.015,103,0.001,104,0.001,105,1.354,107,1.886,116,3.698,187,1.128,227,1.082,234,1.278,264,4.837,379,1.816,496,5.525,1916,6.352,2485,4.436,3543,5.041,3928,5.385,4477,6.902,4481,9.759,4484,8.278,4494,8.585,4497,8.591,4499,7.383,4507,8.772,4508,9.457,4510,7.611,4511,6.882,4512,8.022,4513,6.586,4516,8.971,4518,6.154,4526,7.878,4527,10.269,4528,10.269,4529,7.878,4530,8.278,4531,8.278,4532,9.759,4533,6.189,4534,6.35,4535,6.882,4536,6.882,4537,6.882,4538,4.459,4539,6.154,4540,7.878,4541,7.878,4542,7.878,4543,7.878,4544,7.878]],["title/modules/CollaborativeStorageAdapterModule.html",[425,1.808,4545,5.64]],["body/modules/CollaborativeStorageAdapterModule.html",[0,0.241,3,0.019,4,0.019,5,0.01,30,0.001,47,0.515,95,0.173,101,0.013,103,0.001,104,0.001,187,1.013,217,0.933,425,2.903,427,2.615,428,2.758,429,2.844,430,2.832,431,2.807,432,4.004,433,4.084,438,5.899,442,3.844,443,2.782,444,2.712,449,3.844,836,5.519,1266,4.043,1420,4.924,1545,2.26,1981,9.489,1982,6.18,2171,3.041,2172,3.384,2173,3.263,3543,4.693,3898,3.861,3956,6.427,4476,11.306,4477,4.755,4478,6.18,4482,5.915,4493,5.703,4494,10.441,4514,9.055,4516,6.18,4517,6.535,4545,11.772,4546,7.074,4547,7.074,4548,7.074,4549,7.074,4550,9.489,4551,8.136,4552,9.048,4553,11.536,4554,11.153,4555,7.074,4556,4.895,4557,7.074,4558,7.074,4559,6.535,4560,5.375,4561,3.765,4562,7.074,4563,9.561,4564,7.074,4565,7.074,4566,7.074]],["title/controllers/CollaborativeStorageController.html",[481,2.63,4567,5.893]],["body/controllers/CollaborativeStorageController.html",[0,0.356,3,0.018,4,0.018,5,0.009,7,0.102,8,1.102,27,0.274,29,0.524,30,0.001,31,0.371,32,0.093,33,0.33,35,0.798,36,1.984,95,0.164,101,0.013,103,0.001,104,0.001,111,1.322,187,0.947,200,3.674,204,3.131,215,2.139,216,1.222,227,0.697,234,1.481,264,5.01,364,1.225,367,3.181,376,1.55,379,3.026,447,2.771,461,2.599,481,2.577,483,3.181,491,5.534,496,5.155,498,6.24,502,5.706,506,5.947,509,6.613,511,4.673,513,6.057,520,7.578,524,5.38,535,4.938,543,4.573,552,4.245,554,7.495,555,3.489,556,3.576,557,3.607,561,3.607,564,4.185,843,2.885,1052,2.694,1053,4.048,1295,5.269,1545,2.112,1916,5.462,2490,7.358,3543,6.005,4482,9.892,4491,8.428,4499,7.793,4534,7.358,4567,7.973,4568,6.353,4569,9.127,4570,6.609,4571,7.631,4572,6.609,4573,10.93,4574,9.427,4575,11.832,4576,9.089,4577,6.609,4578,6.609,4579,7.358,4580,9.127,4581,6.609,4582,7.358,4583,6.609,4584,6.609,4585,9.127,4586,6.353,4587,7.973,4588,6.609,4589,7.631,4590,6.106,4591,6.106,4592,5.774,4593,6.106,4594,6.609,4595,6.609,4596,6.609,4597,6.609,4598,6.609,4599,6.609]],["title/modules/CollaborativeStorageModule.html",[425,1.808,4600,5.438]],["body/modules/CollaborativeStorageModule.html",[0,0.25,3,0.02,4,0.02,5,0.01,30,0.001,95,0.173,101,0.014,103,0.001,104,0.001,187,1.054,425,2.962,427,2.72,428,2.869,429,2.959,430,2.946,431,2.92,432,4.084,433,4.167,438,5.967,442,3.947,443,2.894,444,2.821,447,4.117,449,3.947,450,3.027,1545,2.351,1625,9.598,1945,6.834,1973,8.49,2767,3.318,3543,3.612,4478,8.577,4510,8.189,4514,6.153,4545,10.561,4567,9.651,4568,5.122,4589,11.376,4590,6.798,4591,6.798,4600,11.389,4601,7.359,4602,7.359,4603,7.359,4604,7.359,4605,10.561,4606,10.561,4607,10.561,4608,6.798,4609,7.359,4610,6.429,4611,6.798,4612,7.359,4613,6.429,4614,5.932,4615,6.798,4616,7.359,4617,7.359]],["title/injectables/CollaborativeStorageService.html",[105,0.89,4605,5.64]],["body/injectables/CollaborativeStorageService.html",[0,0.183,3,0.014,4,0.014,5,0.008,7,0.083,8,0.953,26,2.146,27,0.475,29,0.907,30,0.001,31,0.641,32,0.16,33,0.571,34,1.355,35,1.322,36,2.731,47,0.938,95,0.161,99,0.914,100,3.442,101,0.01,103,0,104,0,105,1.041,107,1.29,111,2.287,112,2.565,127,0.997,144,1.473,187,0.772,221,2.424,227,1.277,234,1.281,264,4.842,329,1.587,369,1.745,371,2.175,379,1.819,380,1.651,450,2.217,461,1.819,496,3.325,843,2.352,1052,3.806,1053,4.56,1545,1.721,1868,3.413,1916,4.981,1952,5.516,1973,7.941,2767,2.429,3091,3.598,3543,2.645,3928,8.705,4476,8.596,4481,6.362,4487,6.362,4488,6.362,4490,6.362,4491,7.528,4496,6.362,4497,8.384,4499,6.973,4500,6.362,4504,6.362,4508,8.032,4512,4.209,4514,4.505,4533,4.757,4534,4.343,4568,8.223,4586,5.493,4605,6.598,4606,8.596,4613,10.32,4618,5.388,4619,7.892,4620,5.388,4621,8.977,4622,9.339,4623,8.158,4624,5.388,4625,5.388,4626,5.388,4627,7.892,4628,7.815,4629,5.388,4630,4.102,4631,6.598,4632,5.395,4633,5.388,4634,5.388,4635,8.475,4636,10.109,4637,5.388,4638,6.165,4639,6.598,4640,6.277,4641,5.305,4642,7.29,4643,7.29,4644,4.505,4645,5.388,4646,5.388,4647,5.388,4648,5.388,4649,7.892,4650,5.388,4651,5.388,4652,5.388,4653,5.388,4654,5.388,4655,5.388,4656,5.388,4657,5.388,4658,5.388]],["title/injectables/CollaborativeStorageUc.html",[105,0.89,4589,5.64]],["body/injectables/CollaborativeStorageUc.html",[0,0.225,3,0.018,4,0.018,5,0.009,7,0.102,8,1.102,27,0.491,29,0.939,30,0.001,31,0.663,32,0.166,33,0.591,35,1.362,36,2.777,47,0.891,95,0.157,101,0.013,103,0.001,104,0.001,105,1.204,107,1.582,111,1.826,112,2.345,127,1.153,187,0.947,216,1.688,227,1.188,234,1.481,264,4.427,379,1.523,461,2.104,496,4.751,766,3.923,1916,5.462,3928,4.518,4487,7.358,4488,7.358,4490,7.358,4496,7.358,4497,8.899,4499,7.461,4500,7.358,4504,7.358,4510,7.749,4513,5.526,4568,8.516,4573,10.416,4574,9.427,4576,9.089,4586,6.353,4589,7.631,4592,5.774,4593,6.106,4605,9.427,4607,9.427,4610,5.774,4611,6.106,4613,5.774,4614,5.328,4638,7.13,4639,7.631,4640,7.578,4641,6.135,4642,8.432,4643,8.432,4659,12.235,4660,6.609,4661,10.455,4662,6.609,4663,10.455,4664,6.609,4665,6.609,4666,6.609,4667,6.609,4668,6.609,4669,11.275,4670,6.609,4671,9.127,4672,8.432,4673,6.609,4674,6.609,4675,6.609,4676,6.609,4677,6.609,4678,6.609,4679,6.609]],["title/classes/Column.html",[0,0.23,2697,3.561]],["body/classes/Column.html",[0,0.225,2,0.758,3,0.017,4,0.017,5,0.009,7,0.101,8,1.101,27,0.545,29,0.994,30,0.001,31,0.703,32,0.182,33,0.626,35,1.543,36,1.982,47,0.861,55,2.006,59,2.048,95,0.134,101,0.017,103,0.001,104,0.001,112,2.343,116,2.951,148,3.659,165,0.719,208,2.449,217,0.87,221,1.556,227,0.961,334,0.727,347,2.129,363,5.855,404,1.889,595,3.139,596,3.879,661,3.841,692,3.397,728,2.584,806,2.78,884,4.307,1474,4.151,1857,4.818,1860,6.91,1984,2.822,2598,6.67,2697,4.813,2791,8.213,2794,6.757,2795,6.757,2796,6.757,2797,6.47,2798,6.757,2800,4.511,2801,5.855,2802,6.791,2804,6.757,2805,5.855,2806,6.871,2808,4.781,2809,4.813,2811,6.53,2812,4.781,2814,6.47,2816,4.781,2818,4.511,2844,5.775,2856,5.16,2875,5.517,3984,6.928,3985,5.014,3986,5.014,3987,5.764,3989,5.764,3995,4.365,3996,6.47,3997,5.155,4000,5.699,4680,6.096,4681,5.764,4682,6.096,4683,6.599,4684,6.599,4685,6.096,4686,6.096,4687,5.764]],["title/classes/ColumnBoard.html",[0,0.23,2861,4.164]],["body/classes/ColumnBoard.html",[0,0.21,2,0.71,3,0.016,4,0.016,5,0.009,7,0.095,8,1.052,27,0.549,29,0.997,30,0.001,31,0.705,32,0.182,33,0.628,35,1.543,36,1.894,47,0.841,55,1.917,59,1.919,95,0.129,101,0.017,103,0.001,104,0.001,112,2.263,116,2.82,148,3.707,165,0.688,199,4.574,208,2.295,217,0.815,221,1.458,227,1.063,334,0.681,347,2.056,363,5.595,404,1.824,595,3,596,3.817,661,3.671,692,3.246,728,3.412,806,2.605,884,4.115,1474,4.067,1857,4.684,1860,6.673,1984,2.644,2598,6.582,2697,4.599,2791,8.094,2794,6.457,2795,6.457,2796,6.457,2797,6.183,2798,6.457,2800,4.227,2801,5.595,2802,6.601,2804,6.457,2805,5.595,2806,6.679,2808,4.48,2809,4.599,2811,6.306,2812,4.48,2814,6.183,2816,4.48,2818,4.227,2844,5.519,2861,5.378,2877,5.169,3295,8.68,3984,4.698,3985,4.698,3986,4.698,3987,5.401,3989,5.401,3995,4.09,3996,6.183,3997,4.83,4000,5.446,4688,10.666,4689,5.712,4690,6.183,4691,6.183,4692,5.712,4693,6.183,4694,6.183,4695,6.183,4696,6.183,4697,6.183,4698,6.183,4699,8.048,4700,5.712,4701,5.712,4702,5.712,4703,5.169]],["title/classes/ColumnBoardFactory.html",[0,0.23,4704,6.231]],["body/classes/ColumnBoardFactory.html",[0,0.166,2,0.562,3,0.013,4,0.013,5,0.007,7,0.075,8,0.887,27,0.535,29,1.022,30,0.001,31,0.688,32,0.186,33,0.613,34,1.804,35,1.455,47,0.535,49,1.907,55,2.519,59,3.262,83,2.21,95,0.113,99,0.83,101,0.014,103,0,104,0,127,0.618,138,3.189,144,3.219,145,1.262,148,1.513,165,0.58,185,4.88,199,2.804,216,1.631,217,0.969,227,0.774,234,1.591,329,3.47,359,2.547,366,2.692,379,2.033,380,2.198,381,2.417,404,1.328,538,3.293,591,2.091,592,2.157,596,3.877,627,2.287,660,7.146,661,4.651,662,5.497,665,4.118,666,5.497,667,5.656,668,4.118,669,4.118,670,4.118,671,4.043,672,4.483,673,4.945,674,6.427,675,5.786,676,6.974,677,2.768,682,2.742,683,4.118,684,2.768,685,5.135,686,5.351,687,4.549,688,5.176,689,4.08,690,2.742,691,2.561,692,4.113,693,2.669,694,2.624,695,2.742,696,5.057,697,2.768,698,4.856,699,2.742,700,6.88,701,4.114,702,6.603,703,2.768,704,4.359,705,2.742,706,2.768,707,2.742,708,2.768,709,2.742,710,3.098,711,2.914,712,2.742,713,6.077,714,2.768,715,2.742,716,4.118,717,4.043,718,4.118,719,2.768,720,2.646,721,2.624,722,2.157,723,2.742,724,2.742,725,2.742,726,2.768,727,2.768,728,1.915,729,2.742,730,2.768,731,2.876,732,2.742,733,2.768,734,2.823,736,2.883,737,2.914,1474,1.66,1984,2.091,2697,2.582,2799,3.287,2861,3.019,2913,3.625,3140,4.089,4150,4.858,4703,4.089,4704,8.148,4705,7.345,4706,4.89,4707,9.805,4708,4.89,4709,4.89,4710,4.89]],["title/entities/ColumnBoardNode.html",[380,1.411,3171,5.126]],["body/entities/ColumnBoardNode.html",[0,0.272,3,0.021,4,0.021,5,0.011,7,0.123,27,0.43,30,0.001,32,0.171,34,1.371,49,4.484,95,0.166,96,2.159,101,0.02,103,0.001,104,0.001,165,0.818,199,4.647,208,2.964,217,1.053,227,1.092,234,1.296,240,3.604,334,0.88,364,1.921,380,2.167,381,2.629,398,2.339,404,1.873,405,2.153,617,4.611,734,4.611,1857,4.431,1984,4.918,2598,5.266,2620,4.658,2621,3.773,2674,4.751,2913,8.524,3144,5.559,3154,6.477,3171,7.873,3212,5.129,3261,5.46,3295,8.333,3333,9.271,3335,10.047,3560,6.069,3562,6.654,3583,5.204,4090,5.369,4092,5.46,4093,5.369,4711,10.047,4712,7.873,4713,7.987,4714,6.175,4715,7.987,4716,9.572,4717,9.051,4718,9.572,4719,7.378,4720,6.678,4721,7.378,4722,7.378,4723,7.378]],["title/interfaces/ColumnBoardNodeProps.html",[334,0.743,4717,5.893]],["body/interfaces/ColumnBoardNodeProps.html",[0,0.281,3,0.022,4,0.022,5,0.012,7,0.127,30,0.001,32,0.164,34,1.419,49,4.13,95,0.167,96,2.234,101,0.02,103,0.001,104,0.001,165,0.836,199,4.979,208,3.068,217,1.09,227,1.116,234,1.341,240,3.663,334,0.911,336,2.014,380,2.216,398,2.421,404,2.113,405,2.228,617,4.772,734,4.772,1857,4.53,1984,3.535,2598,5.384,2620,4.821,2621,3.905,2674,4.858,2913,7.851,3144,5.684,3154,6.622,3171,6.281,3212,5.309,3261,5.651,3295,9.236,3333,6.663,3335,7.221,3560,6.281,3562,7.508,3583,5.386,4090,5.556,4092,5.651,4093,5.556,4711,7.221,4714,4.926,4716,9.786,4717,10.212,4718,9.786,4719,7.636,4720,6.911,4721,7.636,4722,7.636,4723,7.636]],["title/interfaces/ColumnBoardProps.html",[334,0.743,4703,5.64]],["body/interfaces/ColumnBoardProps.html",[0,0.285,3,0.022,4,0.022,5,0.012,7,0.129,30,0.001,32,0.165,36,1.819,47,0.932,95,0.151,101,0.02,103,0.001,104,0.001,112,1.877,148,2.59,165,0.843,199,4.995,208,3.106,217,1.104,221,1.973,227,1.239,334,0.922,336,2.039,347,1.706,404,2.126,728,4.181,806,3.526,1474,4.441,1857,3.579,1984,3.579,2598,5.427,2697,5.637,2791,6.763,2801,5.375,2802,6.436,2805,5.375,2806,6.511,2814,5.939,2844,7.448,2861,5.166,2877,6.997,3295,9.48,3995,5.536,3996,7.577,3997,6.538,4000,6.675,4688,7.731,4689,7.731,4699,9.864,4700,7.731,4701,7.731,4702,7.731,4703,8.927]],["title/injectables/ColumnBoardService.html",[105,0.89,3536,5.27]],["body/injectables/ColumnBoardService.html",[0,0.151,3,0.012,4,0.012,5,0.006,7,0.068,8,0.825,10,2.757,12,3.149,26,2.311,27,0.487,29,0.93,30,0.001,31,0.657,32,0.164,33,0.586,34,1.602,35,1.38,36,2.686,47,0.9,49,1.732,83,3.44,95,0.136,99,0.754,101,0.008,103,0,104,0,105,0.9,107,1.063,111,2.127,112,2.979,127,0.863,144,1.214,187,0.636,199,3.175,216,1.538,217,1.698,221,2.375,227,1.121,234,2.09,329,2.012,591,3.991,592,4.117,734,2.564,770,4.024,883,2.863,1062,1.939,1474,4.134,1932,2.274,1984,4.888,2171,1.909,2172,2.125,2173,2.049,2321,2.938,2570,2.403,2594,3.012,2697,4.39,2799,6.273,2856,4.707,2861,7.724,2867,6.469,2880,3.265,2918,4.104,3120,3.375,3121,7.546,3236,2.853,3276,6.307,3294,6.307,3295,8.672,3369,8.209,3466,5.708,3536,5.334,3540,8.928,3674,3.881,3774,2.564,3898,2.424,4125,5.964,4143,3.581,4150,6.174,4151,4.104,4724,11.969,4725,4.442,4726,6.827,4727,6.827,4728,6.827,4729,4.442,4730,6.827,4731,4.442,4732,6.827,4733,4.442,4734,6.827,4735,4.442,4736,6.307,4737,6.827,4738,4.442,4739,6.827,4740,4.442,4741,4.442,4742,6.827,4743,4.442,4744,4.442,4745,6.827,4746,4.442,4747,4.442,4748,4.442,4749,6.827,4750,4.442,4751,6.827,4752,4.442,4753,4.442,4754,4.442,4755,4.442,4756,4.442,4757,4.442,4758,4.442,4759,4.442,4760,4.442,4761,4.442,4762,9.333,4763,8.316,4764,4.442,4765,4.442,4766,4.442,4767,4.442,4768,6.827,4769,4.442,4770,4.442,4771,4.442,4772,4.442,4773,4.442,4774,4.442,4775,4.442,4776,4.442,4777,4.442,4778,4.442,4779,4.442,4780,4.442,4781,4.442,4782,6.827,4783,4.442,4784,4.442,4785,6.827,4786,6.827,4787,4.442,4788,4.442,4789,4.442,4790,4.104,4791,4.442,4792,4.442,4793,4.442,4794,4.442,4795,4.442,4796,4.442,4797,4.442,4798,6.827,4799,6.827,4800,4.442,4801,6.827,4802,6.827,4803,4.442,4804,4.442,4805,4.442,4806,6.827,4807,4.442,4808,3.037,4809,3.375,4810,4.442,4811,4.442,4812,4.442,4813,4.442,4814,4.104]],["title/entities/ColumnBoardTarget.html",[380,1.411,2698,4.888]],["body/entities/ColumnBoardTarget.html",[0,0.27,3,0.021,4,0.021,5,0.011,7,0.122,26,2.393,27,0.476,30,0.001,32,0.161,47,0.835,49,4.472,95,0.161,96,2.146,101,0.015,103,0.001,104,0.001,144,2.17,148,3.194,165,0.814,214,2.613,227,0.837,234,1.288,240,4.043,329,2.339,364,2.126,369,1.755,371,3.161,380,2.159,381,2.613,398,2.325,399,4.042,400,3.484,404,1.435,405,2.14,406,2.537,734,4.583,1474,4.122,1984,5.193,2586,4.191,2670,9.486,2674,3.641,2687,6.538,2698,7.479,2777,8.063,2778,7.472,2789,4.191,2790,9.535,2861,6.371,3573,5.173,4712,6.033,4815,11.217,4816,7.94,4817,10.594,4818,7.94,4819,7.94,4820,7.94,4821,4.901,4822,10.321,4823,7.94,4824,7.94,4825,4.963,4826,5.099,4827,7.94]],["title/injectables/ColumnBoardTargetService.html",[105,0.89,4828,5.64]],["body/injectables/ColumnBoardTargetService.html",[0,0.246,3,0.019,4,0.019,5,0.01,7,0.111,8,1.173,26,2.68,27,0.455,29,0.869,30,0.001,31,0.614,32,0.154,33,0.548,34,1.667,35,1.173,36,2.545,95,0.157,96,2.625,97,3.081,99,1.229,101,0.014,103,0.001,104,0.001,105,1.281,107,1.733,111,2.342,112,2.82,127,0.915,187,1.037,215,2.343,216,1.796,217,1.611,221,2.761,227,1.155,234,1.175,398,2.12,1062,3.16,1474,3.72,1984,5.008,2395,6.692,2432,5.787,2698,7.037,2744,5.221,2777,5.656,3285,6.682,3327,6.688,3348,5.836,3536,9.822,4817,6.688,4828,8.119,4829,11.71,4830,7.24,4831,9.711,4832,9.711,4833,7.24,4834,7.24,4835,9.711,4836,7.24,4837,10.123,4838,9.711,4839,7.24,4840,6.324,4841,10.958,4842,7.24,4843,7.24,4844,9.711,4845,7.24,4846,7.24,4847,7.24,4848,7.24,4849,7.24,4850,7.24,4851,7.24]],["title/controllers/ColumnController.html",[481,2.63,2763,5.893]],["body/controllers/ColumnController.html",[0,0.164,3,0.013,4,0.013,5,0.007,7,0.074,8,0.876,10,3.526,27,0.404,29,0.771,30,0.001,31,0.545,32,0.194,33,0.486,35,1.174,36,2.547,59,1.493,95,0.154,100,1.61,101,0.009,103,0,104,0,112,2.822,187,0.689,206,2.462,215,1.556,216,0.889,217,1.151,221,2.292,227,0.507,234,1.177,264,4.116,364,1.802,368,1.899,371,1.999,376,1.128,447,2.016,481,1.875,483,2.314,491,6.245,502,7.325,506,7.635,509,8.49,513,6.73,543,4.871,552,3.088,553,6.522,554,8.327,555,2.538,556,2.602,557,2.624,558,2.285,559,2.624,561,2.624,563,6.001,564,4.846,883,3.041,1016,2.59,1469,6.901,1474,2.462,2037,6.022,2686,5.552,2697,5.507,2757,6.821,2763,6.335,2769,2.376,2856,4.942,2926,7.387,2928,5.846,2930,7.387,2931,7.387,2934,7.635,2936,7.038,2949,8.841,2950,7.837,2951,4.322,2954,3.484,2955,2.722,2962,3.876,2972,7.038,2973,7.038,2976,4.201,3224,3.564,3262,6.856,3372,4.958,3757,8.065,3759,6.699,3763,8.065,3766,8.065,3773,6.063,4038,2.968,4048,4.02,4056,4.442,4061,4.201,4086,5.846,4852,4.808,4853,4.808,4854,11.114,4855,10.475,4856,9.722,4857,4.808,4858,4.442,4859,4.808,4860,4.808,4861,4.808,4862,4.808,4863,4.808,4864,4.808,4865,8.493,4866,4.808,4867,4.808,4868,4.808,4869,4.808,4870,4.808,4871,6.699,4872,4.808,4873,4.808,4874,4.808,4875,4.808,4876,4.808,4877,9.722,4878,4.808,4879,4.808,4880,4.808,4881,4.808,4882,4.808,4883,4.808,4884,4.808,4885,4.808]],["title/entities/ColumnNode.html",[380,1.411,3168,5.438]],["body/entities/ColumnNode.html",[0,0.321,3,0.025,4,0.025,5,0.013,30,0.001,32,0.132,95,0.17,96,2.549,101,0.018,103,0.001,104,0.001,208,3.499,217,1.243,227,0.994,380,2.406,381,3.103,398,2.761,404,1.705,405,2.542,617,5.442,1857,5.308,2598,5.845,2620,5.499,2621,4.454,3144,6.171,3154,7.19,3168,9.272,3212,6.055,3223,10.625,3261,6.445,3560,7.164,3562,7.386,3583,6.143,4090,6.337,4093,6.337,4711,8.236,4886,9.428]],["title/interfaces/ColumnProps.html",[334,0.743,4687,5.893]],["body/interfaces/ColumnProps.html",[0,0.3,3,0.023,4,0.023,5,0.012,7,0.136,30,0.001,32,0.155,36,1.919,47,0.947,95,0.154,101,0.021,103,0.001,104,0.001,112,1.98,148,2.732,165,0.872,208,3.277,217,1.164,221,2.081,227,1.164,334,0.973,336,2.151,347,1.799,404,2.179,728,3.457,806,3.72,1474,4.502,1857,3.775,1984,3.775,2598,5.613,2697,4.66,2791,6.996,2801,5.67,2802,6.656,2805,5.67,2806,6.735,2814,6.265,2844,7.634,2856,6.251,2875,7.381,3995,5.84,3996,7.837,3997,6.897,4000,6.904,4680,8.155,4685,8.155,4686,8.155,4687,9.648]],["title/classes/ColumnResponse.html",[0,0.23,2957,5.438]],["body/classes/ColumnResponse.html",[0,0.278,2,0.938,3,0.022,4,0.022,5,0.012,7,0.125,27,0.527,29,0.648,30,0.001,31,0.458,32,0.182,33,0.581,34,2.179,47,0.894,95,0.157,101,0.016,103,0.001,104,0.001,127,1.328,145,2.108,165,0.829,364,2.275,376,1.915,467,3.494,469,3.602,475,4.091,618,3.475,966,4.18,1011,4.345,1474,4.311,2784,5.916,2787,6.57,2789,4.31,2856,4.621,2909,5.488,2910,5.736,2911,5.736,2957,10.236,3232,9.649,3658,8.043,3662,7.175,3666,5.795,3668,5.795,4160,10.261,4887,8.165,4888,8.165,4889,8.165,4890,8.165,4891,8.165,4892,8.165,4893,8.165,4894,8.165]],["title/classes/ColumnResponseMapper.html",[0,0.23,2961,5.64]],["body/classes/ColumnResponseMapper.html",[0,0.291,2,0.984,3,0.023,4,0.023,5,0.012,7,0.132,8,1.309,27,0.356,29,0.679,30,0.001,31,0.48,32,0.152,33,0.428,34,1.47,35,1.034,95,0.152,99,1.454,100,2.868,101,0.016,103,0.001,104,0.001,187,1.227,217,1.13,227,1.142,234,2.027,305,2.465,591,3.663,627,3.701,731,3.354,806,3.609,974,5.287,975,6.193,980,6.691,1474,2.908,1487,4.895,1828,4.832,2422,5.223,2697,6.802,2811,5.354,2856,6.727,2957,10.07,2961,9.059,3058,6.348,3232,6.508,3236,5.501,3658,5.425,3662,6.689,3672,6.348,3678,6.905,3679,6.348,3781,6.691,4116,7.482,4118,7.161,4160,9.059,4895,10.836,4896,10.836,4897,7.912,4898,7.482,4899,8.565,4900,8.565,4901,8.565,4902,8.565,4903,8.565]],["title/injectables/ColumnService.html",[105,0.89,3537,5.64]],["body/injectables/ColumnService.html",[0,0.222,3,0.017,4,0.017,5,0.009,7,0.1,8,1.091,10,3.649,12,4.167,26,2.338,27,0.506,29,0.966,30,0.001,31,0.683,32,0.171,33,0.609,34,1.118,35,1.421,36,2.845,47,0.755,49,2.54,55,2.282,59,2.022,83,2.719,95,0.151,99,1.105,101,0.012,103,0.001,104,0.001,105,1.192,107,1.559,111,1.303,112,3.051,127,0.823,187,0.933,215,2.108,216,1.671,217,1.368,221,2.871,227,0.952,234,1.818,591,2.785,592,2.873,734,3.76,883,3.788,1474,3.995,1984,2.785,2570,3.524,2697,7.273,2799,4.378,2861,7.71,3120,4.949,3121,8.643,3305,5.537,3369,9.257,3372,6.177,3378,8.753,3382,5.445,3537,7.554,3772,7.893,3817,10.35,4125,7.893,4127,7.893,4143,5.25,4150,4.308,4898,5.69,4904,6.513,4905,6.513,4906,6.513,4907,9.035,4908,6.513,4909,9.035,4910,6.513,4911,9.035,4912,6.513,4913,9.035,4914,6.513,4915,6.513,4916,6.513,4917,6.513,4918,6.513,4919,6.513,4920,6.513]],["title/classes/ColumnUrlParams.html",[0,0.23,4854,5.893]],["body/classes/ColumnUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,2697,6.187,3772,10.989,3834,5.672,4854,10.238,4921,9.724,4922,9.724]],["title/entities/ColumnboardBoardElement.html",[380,1.411,2696,5.27]],["body/entities/ColumnboardBoardElement.html",[0,0.318,3,0.025,4,0.025,5,0.013,7,0.144,27,0.388,30,0.001,32,0.131,95,0.158,96,2.525,101,0.018,103,0.001,104,0.001,165,0.902,364,1.732,380,2.392,381,3.074,398,2.736,404,1.689,405,2.518,617,5.392,1984,5.286,2620,5.448,2670,8.934,2693,8.287,2695,7.809,2696,8.934,2697,4.931,2698,9.334,2699,8.16,2744,5.744,3022,7.098,4815,10.565,4923,9.341,4924,11.436,4925,9.341,4926,4.308,4927,9.99,4928,8.16]],["title/injectables/CommonCartridgeExportService.html",[105,0.89,4929,5.64]],["body/injectables/CommonCartridgeExportService.html",[0,0.143,3,0.011,4,0.011,5,0.006,7,0.064,8,0.789,26,2.659,27,0.45,29,0.861,30,0.001,31,0.608,32,0.173,33,0.542,35,1.255,36,2.259,39,2.908,47,0.839,95,0.144,99,0.712,101,0.008,103,0,104,0,105,0.862,107,1.004,111,2.588,112,2.586,127,0.826,130,7.529,145,2.071,150,3.599,187,0.601,188,4.364,216,1.484,217,1.583,221,2.313,227,1.182,234,0.681,235,3.698,264,1.777,290,3.772,318,3.509,693,3.566,1474,3.683,1515,6.673,1828,2.913,1910,3.086,2155,6.595,2344,3.743,2675,5.784,2691,4.56,3030,3.383,3031,3.383,3105,4.139,3872,4.467,4530,5.267,4929,5.463,4930,11.219,4931,7.115,4932,4.197,4933,8.023,4934,8.023,4935,5.708,4936,8.023,4937,6.534,4938,8.023,4939,4.197,4940,8.475,4941,8.244,4942,4.197,4943,4.197,4944,8.765,4945,7.259,4946,8.711,4947,4.197,4948,4.197,4949,4.197,4950,6.036,4951,4.197,4952,4.197,4953,6.086,4954,4.197,4955,3.938,4956,6.096,4957,6.534,4958,4.197,4959,6.036,4960,4.139,4961,4.843,4962,4.197,4963,4.197,4964,7.008,4965,2.921,4966,4.197,4967,3.877,4968,3.383,4969,3.698,4970,4.197,4971,5.708,4972,4.197,4973,3.877,4974,4.197,4975,3.278,4976,4.197,4977,3.278,4978,4.197,4979,4.197,4980,4.197,4981,4.197,4982,2.353,4983,4.197,4984,4.197,4985,5.267,4986,6.534,4987,4.197,4988,3.383,4989,4.033,4990,4.197,4991,5.267,4992,4.197,4993,4.197,4994,3.734,4995,3.877,4996,3.11,4997,2.734,4998,2.869,4999,4.197,5000,4.197,5001,9.812,5002,6.534,5003,6.708,5004,6.534,5005,5.708,5006,8.023,5007,2.978,5008,5.708,5009,6.036,5010,6.036,5011,4.637,5012,4.197,5013,2.978,5014,4.197,5015,5.463,5016,5.708,5017,5.708,5018,2.978,5019,6.534,5020,4.197,5021,3.877,5022,4.197,5023,4.197,5024,4.197,5025,4.197,5026,6.534,5027,4.197,5028,6.534,5029,4.197,5030,4.197,5031,3.877,5032,4.197,5033,4.197,5034,4.197]],["title/classes/CommonCartridgeFileBuilder.html",[0,0.23,4944,5.27]],["body/classes/CommonCartridgeFileBuilder.html",[0,0.261,2,0.596,3,0.014,4,0.014,5,0.018,7,0.08,8,0.927,27,0.497,29,0.725,30,0.001,31,0.512,32,0.142,33,0.456,35,1.103,36,1.985,47,0.735,95,0.15,101,0.019,103,0,104,0,111,2.627,112,2.049,127,0.97,144,2.759,165,0.606,214,3.006,215,1.679,216,2.445,217,1.488,227,1.189,234,2.114,329,2.974,334,0.845,595,3.145,667,5.058,701,2.68,1474,2.605,1515,4.928,1925,5.246,2155,6.785,2594,4.029,3187,4.625,4931,8.043,4944,5.995,4945,4.117,4946,5.246,4956,8.869,4969,6.098,4975,5.995,4977,5.995,4985,6.186,4989,6.963,4991,4.181,4998,5.246,5035,7.752,5036,7.86,5037,4.336,5038,9.093,5039,8.416,5040,7.67,5041,8.439,5042,7.089,5043,7.089,5044,4.181,5045,8.439,5046,7.674,5047,5.187,5048,5.187,5049,8.439,5050,5.187,5051,7.636,5052,9.093,5053,5.187,5054,9.409,5055,7.636,5056,5.187,5057,5.187,5058,4.181,5059,4.181,5060,3.941,5061,3.681,5062,5.951,5063,3.486,5064,5.995,5065,6.186,5066,4.052,5067,5.56,5068,4.052,5069,6.416,5070,4.181,5071,4.336,5072,4.336,5073,4.336,5074,8.439,5075,4.336,5076,6.416,5077,4.336,5078,4.336,5079,6.416,5080,4.336,5081,4.336,5082,4.336,5083,4.336,5084,4.336,5085,4.336,5086,4.336,5087,4.336,5088,4.336,5089,4.336,5090,4.336,5091,4.181,5092,4.336,5093,4.336,5094,4.336,5095,4.336,5096,4.336,5097,3.285,5098,4.336,5099,4.336,5100,4.336]],["title/classes/CommonCartridgeLtiResource.html",[0,0.23,5101,5.893]],["body/classes/CommonCartridgeLtiResource.html",[0,0.214,2,0.721,3,0.017,4,0.017,5,0.012,7,0.097,8,1.064,27,0.458,29,0.498,30,0.001,31,0.352,32,0.155,33,0.314,35,1.229,47,0.9,95,0.141,101,0.017,103,0.001,104,0.001,111,1.256,127,0.793,150,2.303,214,2.899,215,2.033,216,1.629,217,0.828,227,1.072,307,3.925,309,3.554,329,1.85,347,1.795,371,1.731,379,2.03,405,1.693,595,3.032,1291,3.748,1474,2.99,1515,5.656,2155,7.412,2344,4.558,3996,4.456,4931,7.789,4945,3.369,4946,6.021,4968,5.062,4969,5.758,5003,7.364,5015,5.25,5035,7.356,5036,7.458,5040,7.73,5060,4.771,5061,4.456,5062,6.628,5063,4.221,5097,6.985,5101,7.694,5102,9.362,5103,5.485,5104,7.947,5105,8.89,5106,10.187,5107,6.279,5108,5.801,5109,6.279,5110,6.279,5111,5.25,5112,5.801,5113,6.279,5114,6.279,5115,5.485,5116,6.279,5117,6.279,5118,6.279,5119,5.485,5120,5.485,5121,4.033,5122,5.485,5123,6.279,5124,6.279,5125,6.279,5126,8.136,5127,6.279,5128,6.279,5129,8.136,5130,6.279,5131,6.279,5132,6.279,5133,5.485,5134,8.808,5135,8.808,5136,8.808,5137,8.808,5138,8.808,5139,8.808,5140,8.808,5141,8.808,5142,8.808,5143,6.279,5144,6.279,5145,6.279,5146,6.279,5147,6.382,5148,8.808,5149,8.808,5150,8.808,5151,8.808,5152,6.279,5153,6.279,5154,6.279,5155,6.279,5156,6.279,5157,5.062,5158,5.485,5159,5.485]],["title/classes/CommonCartridgeManifestElement.html",[0,0.23,5064,5.27]],["body/classes/CommonCartridgeManifestElement.html",[0,0.231,2,0.78,3,0.018,4,0.018,5,0.01,7,0.104,8,1.123,27,0.386,29,0.538,30,0.001,31,0.381,32,0.13,33,0.339,35,0.82,47,0.494,95,0.153,101,0.018,103,0.001,104,0.001,111,2.281,127,1.175,214,3.06,216,2.109,217,0.895,227,0.98,234,2.002,307,4.243,309,3.842,329,2,405,1.83,595,3.201,1291,3.956,1515,6.809,2263,7.524,2594,4.677,4931,7.938,4946,4.64,4969,6.76,4989,7.373,4998,4.64,5015,5.675,5035,6.716,5036,6.809,5039,9.331,5061,4.817,5062,8.499,5063,4.562,5064,7.262,5065,9.629,5067,4.918,5097,7.223,5115,8.121,5119,8.121,5120,8.121,5121,5.97,5122,8.121,5157,7.494,5160,5.303,5161,11.403,5162,10.602,5163,10.534,5164,6.27,5165,6.788,5166,5.93,5167,5.93,5168,8.121,5169,5.93,5170,9.296,5171,6.788,5172,9.296,5173,9.296,5174,9.296,5175,9.296,5176,9.296,5177,6.788,5178,9.296,5179,6.788,5180,6.788,5181,6.788,5182,6.788,5183,9.296,5184,9.296,5185,9.296,5186,9.296,5187,9.296,5188,9.296,5189,6.788,5190,6.788,5191,6.788]],["title/classes/CommonCartridgeMetadataElement.html",[0,0.23,5166,5.893]],["body/classes/CommonCartridgeMetadataElement.html",[0,0.284,2,0.959,3,0.022,4,0.022,5,0.012,7,0.128,8,1.288,27,0.443,29,0.663,30,0.001,31,0.468,32,0.149,33,0.417,35,1.009,47,0.855,59,2.592,95,0.137,101,0.02,103,0.001,104,0.001,127,1.055,214,3.51,215,2.703,216,1.545,227,0.88,405,2.251,595,3.671,1291,4.537,1474,2.835,2263,8.336,3996,5.927,4013,6.346,4931,8.072,4945,4.481,4946,7.29,4969,6.649,4975,6.524,4977,6.524,5035,7.441,5036,7.544,5061,5.927,5062,7.654,5063,5.614,5097,7.839,5133,7.296,5160,6.524,5163,11.433,5164,7.715,5166,9.315,5192,8.352,5193,8.352,5194,8.352,5195,8.352,5196,8.352,5197,8.352,5198,10.663,5199,8.352,5200,8.352,5201,8.352,5202,8.352,5203,8.352,5204,8.352]],["title/classes/CommonCartridgeOrganizationBuilder.html",[0,0.23,5070,5.438]],["body/classes/CommonCartridgeOrganizationBuilder.html",[0,0.282,2,0.66,3,0.015,4,0.015,5,0.017,7,0.088,8,0.999,27,0.44,29,0.656,30,0.001,31,0.464,32,0.136,33,0.413,35,0.694,36,1.798,47,0.772,95,0.154,101,0.02,103,0.001,104,0.001,111,2.411,112,1.29,127,1.045,214,3.19,215,1.861,216,2.281,217,1.542,227,1.233,234,2.069,334,0.912,405,1.55,595,3.337,667,3.884,701,2.008,884,3.908,1474,2.809,1515,5.313,1925,4.3,2155,7.549,2594,4.275,3187,4.986,4931,7.87,4944,4.492,4945,4.439,4946,5.656,4956,9.157,4969,6.356,4975,6.463,4977,6.463,4985,6.669,4989,7.219,4991,4.635,4998,7.246,5035,7.114,5036,7.212,5037,4.807,5038,8.544,5039,7.571,5040,8.054,5041,8.862,5045,6.917,5049,9.39,5051,6.917,5052,9.428,5054,9.942,5055,6.917,5058,4.635,5059,4.635,5060,4.369,5061,4.08,5062,6.314,5063,3.865,5064,6.463,5065,6.669,5066,4.492,5067,5.995,5068,4.492,5069,8.102,5070,6.669,5071,4.807,5072,4.807,5073,4.807,5074,8.862,5075,4.807,5076,6.917,5077,4.807,5078,4.807,5079,6.917,5080,4.807,5081,4.807,5082,4.807,5083,4.807,5084,4.807,5085,4.807,5086,4.807,5087,4.807,5088,4.807,5089,4.807,5090,4.807,5091,4.635,5092,4.807,5093,4.807,5094,4.807,5095,4.807,5096,4.807,5097,3.642,5098,4.807,5099,4.807,5100,4.807,5205,7.643,5206,5.75,5207,5.75,5208,5.75,5209,5.75,5210,5.75,5211,5.75]],["title/classes/CommonCartridgeOrganizationItemElement.html",[0,0.23,5068,5.27]],["body/classes/CommonCartridgeOrganizationItemElement.html",[0,0.282,2,0.953,3,0.022,4,0.022,5,0.012,7,0.128,8,1.283,27,0.441,29,0.658,30,0.001,31,0.465,32,0.149,33,0.415,35,1.002,47,0.853,95,0.15,101,0.02,103,0.001,104,0.001,127,1.049,214,3.496,215,2.687,216,1.535,227,1.119,405,2.237,595,3.657,1291,4.52,1474,3.976,1515,7.522,2594,3.661,3187,7.692,3307,6.691,3996,5.89,4931,7.878,4945,4.453,4956,8.071,4969,6.011,4971,9.278,4989,5.124,4998,8.007,5005,7.251,5035,7.419,5036,7.522,5052,9.954,5062,7.631,5063,5.579,5067,6.014,5068,8.297,5097,7.821,5129,7.667,5157,6.691,5160,6.484,5212,8.3,5213,8.3,5214,8.3,5215,8.3]],["title/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.23,5167,5.893]],["body/classes/CommonCartridgeOrganizationWrapperElement.html",[0,0.297,2,1.003,3,0.023,4,0.023,5,0.012,7,0.134,8,1.325,27,0.455,29,0.693,30,0.001,31,0.49,32,0.122,33,0.436,35,1.055,95,0.112,101,0.017,103,0.001,104,0.001,127,1.103,214,3.61,215,2.827,216,1.615,227,0.92,905,3.627,1291,4.667,1515,7.044,3187,6.611,4931,7.765,4969,4.942,4998,8.6,5035,7.596,5036,7.702,5062,8.618,5063,5.87,5097,7.968,5160,6.822,5167,9.582,5168,10.476,5216,8.732,5217,8.067,5218,10.969,5219,8.067,5220,8.732,5221,6.822,5222,8.732,5223,8.067,5224,8.732,5225,8.732,5226,8.732]],["title/classes/CommonCartridgeResourceItemElement.html",[0,0.23,5066,5.27]],["body/classes/CommonCartridgeResourceItemElement.html",[0,0.229,2,0.773,3,0.018,4,0.018,5,0.01,7,0.103,8,1.116,27,0.494,29,0.534,30,0.001,31,0.377,32,0.148,33,0.336,35,1.275,47,0.673,95,0.162,101,0.018,103,0.001,104,0.001,111,2.112,127,0.851,165,0.729,214,3.042,216,1.952,227,1.112,234,1.844,305,1.937,347,1.884,405,2.491,595,2.318,1062,2.938,1291,3.933,2155,7.637,2321,4.452,2344,4.922,3187,7.415,4931,8.28,4956,8.634,4964,8.074,4968,5.426,4969,6.963,5008,5.88,5016,5.88,5017,5.88,5035,7.793,5036,7.901,5040,9.049,5060,5.115,5061,4.777,5062,7.403,5063,4.524,5066,7.22,5067,9.435,5097,7.197,5101,5.88,5102,5.426,5104,8.876,5105,9.16,5106,8.538,5111,5.628,5112,6.218,5160,5.258,5227,8.825,5228,9.243,5229,6.731,5230,6.731,5231,6.731,5232,5.88,5233,7.451,5234,5.88,5235,8.538,5236,7.103,5237,10.556,5238,6.731,5239,6.731,5240,6.731,5241,6.731,5242,6.731,5243,6.731,5244,6.731]],["title/classes/CommonCartridgeResourceWrapperElement.html",[0,0.23,5169,5.893]],["body/classes/CommonCartridgeResourceWrapperElement.html",[0,0.313,2,1.058,3,0.024,4,0.024,5,0.013,7,0.142,8,1.369,27,0.471,29,0.731,30,0.001,31,0.517,32,0.129,33,0.46,35,1.113,95,0.118,101,0.018,103,0.001,104,0.001,127,1.164,214,3.732,215,2.982,216,1.704,227,0.971,1291,4.825,4931,7.913,4969,5.214,5035,7.782,5036,7.89,5062,8.733,5063,6.192,5067,9.289,5097,8.12,5160,7.197,5168,10.732,5169,9.906,5217,8.51,5219,8.51,5245,9.212,5246,11.34,5247,9.212,5248,9.212]],["title/classes/CommonCartridgeWebContentResource.html",[0,0.23,5232,5.893]],["body/classes/CommonCartridgeWebContentResource.html",[0,0.259,2,0.876,3,0.02,4,0.02,5,0.014,7,0.117,8,1.214,27,0.496,29,0.605,30,0.001,31,0.428,32,0.168,33,0.381,35,1.358,47,0.929,95,0.144,101,0.019,103,0.001,104,0.001,127,0.963,214,3.308,215,2.468,216,1.41,227,1.185,347,2.049,371,2.101,405,2.055,595,3.461,1291,4.277,1474,2.588,1515,6.455,2344,5.521,4931,8.15,4945,4.09,4946,6.871,4964,10.442,4967,9.285,4968,6.146,4969,6.364,5003,8.403,5008,6.66,5009,9.285,5010,7.043,5011,5.41,5035,7.87,5036,7.979,5061,5.41,5062,7.326,5063,5.124,5097,7.572,5103,6.66,5104,8.784,5105,9.636,5108,7.043,5111,6.374,5157,6.146,5158,6.66,5159,6.66,5232,8.78,5233,10.015,5249,7.043,5250,7.624,5251,7.624,5252,7.624,5253,7.624]],["title/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.23,5234,5.893]],["body/classes/CommonCartridgeWebLinkResourceElement.html",[0,0.229,2,0.774,3,0.018,4,0.018,5,0.013,7,0.104,8,1.118,27,0.472,29,0.535,30,0.001,31,0.378,32,0.159,33,0.337,35,1.276,47,0.896,95,0.146,101,0.018,103,0.001,104,0.001,111,1.349,127,0.852,150,3.394,214,3.046,215,2.182,216,1.711,217,0.889,227,1.198,307,4.215,309,3.816,329,1.986,347,1.886,371,1.858,405,1.817,595,3.186,1291,3.937,1474,3.141,1515,5.943,2155,7.643,2321,7.882,2344,4.7,2744,3.006,3996,4.785,4931,7.926,4945,3.618,4946,6.326,4968,5.435,4969,5.98,5003,8.833,5015,5.637,5016,5.89,5017,5.89,5035,7.548,5036,7.652,5040,8.028,5060,5.123,5061,4.785,5062,6.883,5063,4.532,5091,7.459,5097,7.202,5103,5.89,5104,8.253,5105,9.166,5111,5.637,5115,8.083,5119,8.083,5120,8.083,5121,5.943,5122,8.083,5126,6.228,5133,5.89,5157,5.435,5158,5.89,5159,5.89,5233,9.606,5234,8.083,5235,10.504,5249,6.228,5254,6.742,5255,6.742,5256,6.742,5257,10.565,5258,6.742,5259,6.742,5260,6.742,5261,6.742,5262,9.253,5263,9.253,5264,6.742,5265,9.253,5266,6.742]],["title/modules/CommonToolModule.html",[425,1.808,5267,4.888]],["body/modules/CommonToolModule.html",[0,0.248,3,0.019,4,0.019,5,0.01,30,0.001,95,0.165,101,0.014,103,0.001,104,0.001,187,1.045,191,4.051,192,2.174,381,2.4,425,2.948,427,2.696,428,2.843,429,2.932,430,2.919,431,2.893,432,4.066,433,4.148,438,5.951,442,3.923,443,2.868,444,2.796,449,3.923,450,3,766,3.134,843,3.183,1545,2.33,1919,3.028,1921,4.824,1945,5.28,1951,8.091,1966,10.071,1977,6.792,1991,3.946,2510,4.619,2767,3.288,3027,4.168,5267,10.229,5268,7.292,5269,7.292,5270,7.292,5271,7.292,5272,10.614,5273,10.614,5274,10.614,5275,10.071,5276,7.292,5277,5.878,5278,7.292,5279,6.37,5280,7.292,5281,7.292,5282,7.292,5283,6.097]],["title/injectables/CommonToolService.html",[105,0.89,5272,5.27]],["body/injectables/CommonToolService.html",[0,0.275,3,0.021,4,0.021,5,0.011,7,0.124,8,1.259,27,0.433,29,0.827,30,0.001,31,0.585,32,0.146,33,0.521,35,1.259,95,0.166,101,0.015,103,0.001,104,0.001,105,1.375,107,1.931,111,2.312,139,7.637,140,7.463,158,6.695,187,1.156,192,2.406,199,3.08,200,3.765,201,6.052,227,1.218,334,0.889,347,2.126,1031,2.586,5272,8.147,5284,10.675,5285,6.503,5286,11.556,5287,10.428,5288,8.067,5289,8.067,5290,8.201,5291,10.428,5292,7.69,5293,11.556,5294,8.067,5295,8.067,5296,8.067,5297,10.428,5298,6.745,5299,7.452,5300,8.067,5301,8.067]],["title/injectables/CommonToolValidationService.html",[105,0.89,5273,5.27]],["body/injectables/CommonToolValidationService.html",[0,0.142,3,0.011,4,0.011,5,0.006,7,0.064,8,0.785,27,0.477,29,0.913,30,0.001,31,0.692,32,0.168,33,0.559,35,1.352,47,0.838,95,0.143,101,0.012,103,0,104,0,105,0.857,107,0.998,111,2.585,116,3.724,136,7.956,139,4.567,140,4.523,144,1.777,145,3.142,148,3.863,158,4.521,165,0.513,181,8.062,187,0.597,192,1.244,195,2.803,196,6.943,199,1.592,200,2.604,201,4.185,209,4.191,217,1.367,227,0.44,234,1.682,264,5.34,279,3.022,281,3.091,290,4.613,298,3.258,305,2.597,310,5.436,312,5.436,314,5.436,320,5.436,323,5.436,324,5.436,325,4.819,329,1.229,347,1.994,368,1.647,369,1.995,371,3.242,494,2.514,503,5.897,511,2.135,558,1.982,627,2.488,728,1.633,806,2.74,846,2.96,1031,1.337,1508,2.36,1989,2.574,2076,2.202,2187,2.803,2298,2.514,2485,1.802,3264,5.436,5273,5.079,5284,10.866,5302,3.258,5303,7.991,5304,6.502,5305,6.502,5306,6.502,5307,6.502,5308,6.502,5309,6.502,5310,6.502,5311,6.502,5312,6.502,5313,12.831,5314,4.17,5315,3.643,5316,6.502,5317,4.17,5318,6.502,5319,12.338,5320,4.17,5321,6.502,5322,4.17,5323,6.502,5324,4.17,5325,6.502,5326,4.17,5327,6.502,5328,12.172,5329,4.17,5330,6.502,5331,4.17,5332,6.502,5333,4.17,5334,4.17,5335,4.17,5336,4.17,5337,4.17,5338,4.17,5339,6.502,5340,4.17,5341,4.17,5342,4.17,5343,4.17,5344,3.853,5345,4.17,5346,2.642,5347,6.502,5348,4.17,5349,4.17,5350,4.17,5351,5.68,5352,6.502,5353,4.17,5354,4.17,5355,4.17,5356,4.17,5357,3.643,5358,4.17,5359,6.502,5360,4.17,5361,3.853,5362,6.502,5363,3.487,5364,3.487,5365,4.17,5366,4.17,5367,3.362,5368,4.17,5369,2.678]],["title/classes/ConsentRequestBody.html",[0,0.23,5370,5.64]],["body/classes/ConsentRequestBody.html",[0,0.284,2,0.669,3,0.015,4,0.015,5,0.008,7,0.09,27,0.514,30,0.001,32,0.174,33,0.672,34,1.433,47,0.855,55,2.148,95,0.125,101,0.011,103,0.001,104,0.001,116,1.885,165,0.659,204,4.151,247,3.313,277,3.342,339,7.903,340,4.696,342,8.527,344,9.451,345,7.626,347,1.702,361,5.87,364,2.294,368,5.112,369,2.158,370,4.318,371,3.8,373,4.408,374,1.861,376,1.366,379,2.458,404,1.51,461,1.925,467,2.866,470,3.518,471,4.537,502,3.641,506,3.795,564,2.162,565,4.408,596,3.428,728,4.175,1035,5.813,1253,2.686,1498,4.221,1510,3.641,1887,7.251,1997,6.524,2116,3.152,2298,7.08,2489,3.329,2507,5.363,3544,4.428,4556,4.275,4638,6.524,5346,3.69,5370,6.982,5371,10.662,5372,9.976,5373,6.982,5374,6.982,5375,6.524,5376,5.825,5377,5.825,5378,6.561,5379,5.825,5380,4.87,5381,7.295,5382,5.579,5383,7.295,5384,7.714,5385,7.295,5386,5.825,5387,5.381,5388,7.714,5389,6.051,5390,9.85,5391,6.345,5392,7.714,5393,5.825,5394,8.33,5395,4.426,5396,5.088,5397,5.088,5398,5.088,5399,5.381,5400,3.853,5401,6.345,5402,6.732,5403,4.55,5404,4.696,5405,4.426,5406,4.87,5407,4.55,5408,5.381,5409,4.87,5410,3.69,5411,5.381,5412,4.426,5413,5.381,5414,5.088,5415,4.87,5416,5.088,5417,5.381,5418,5.29,5419,6.732,5420,5.381]],["title/classes/ConsentResponse.html",[0,0.23,5421,5.438]],["body/classes/ConsentResponse.html",[0,0.335,2,0.566,3,0.013,4,0.013,5,0.007,7,0.076,27,0.536,29,0.391,30,0.001,31,0.277,32,0.181,33,0.683,34,1.69,47,0.967,70,5.285,72,3.47,77,6.681,95,0.126,101,0.009,103,0,104,0,127,0.623,137,7.135,144,2.02,145,1.908,150,2.711,165,0.583,199,3.385,339,7.298,346,7.443,347,1.507,349,4.89,355,4.355,356,9.214,357,7.745,359,2.563,361,7.167,364,2.37,367,5.33,368,3.89,369,2.332,370,3.694,371,3.486,374,1.576,376,1.157,379,2.722,461,2.552,467,3.47,470,4.149,471,5.441,522,5.617,1013,2.262,1862,4.069,1887,6.078,1932,3.784,2008,6.324,2282,4.968,2298,5.935,2489,5.067,3400,3.433,3544,4.768,4082,3.976,4216,8.405,5382,5.628,5415,6.18,5418,6.237,5421,9.255,5422,4.932,5423,8.19,5424,8.19,5425,7.412,5426,7.412,5427,7.412,5428,7.147,5429,7.392,5430,4.932,5431,9.673,5432,4.932,5433,7.745,5434,7.392,5435,4.932,5436,7.392,5437,6.18,5438,4.932,5439,7.412,5440,8.19,5441,4.932,5442,4.932,5443,7.392,5444,6.457,5445,4.932,5446,7.392,5447,4.932,5448,7.412,5449,4.932,5450,7.392,5451,5.617,5452,8.602,5453,6.619,5454,4.932,5455,4.932,5456,4.932,5457,6.828,5458,6.828,5459,4.932,5460,4.932,5461,4.309,5462,4.556,5463,4.556,5464,4.556]],["title/classes/ConsentSessionResponse.html",[0,0.23,5465,5.64]],["body/classes/ConsentSessionResponse.html",[0,0.346,2,0.891,3,0.021,4,0.021,5,0.011,7,0.119,27,0.499,29,0.615,30,0.001,31,0.636,32,0.169,33,0.653,34,1.745,47,1.013,95,0.13,101,0.015,103,0.001,104,0.001,127,0.98,145,3.459,165,0.802,339,7.534,361,6.878,364,2.102,367,4.893,374,2.478,376,1.819,379,2.614,467,3.235,471,4.325,1013,4.661,1596,8.047,1609,7.165,1887,6.275,3544,4.998,4216,9.093,5431,6.776,5465,8.499,5466,12.493,5467,7.165,5468,8.616,5469,9.39,5470,12.034,5471,7.756,5472,5.023,5473,9.39,5474,7.756,5475,7.756,5476,7.756,5477,7.756,5478,7.756]],["title/modules/ConsoleWriterModule.html",[425,1.808,3533,5.27]],["body/modules/ConsoleWriterModule.html",[0,0.325,3,0.025,4,0.025,5,0.013,30,0.001,95,0.148,101,0.018,103,0.001,104,0.001,187,1.367,425,3.345,427,3.527,428,3.72,429,3.836,430,3.819,431,3.785,432,4.612,433,4.705,442,4.658,443,3.752,444,3.658,3448,9.479,3458,6.043,3533,10.686,5479,9.54,5480,9.54,5481,9.54,5482,8.813,5483,7.69,5484,9.54,5485,8.334]],["title/injectables/ConsoleWriterService.html",[105,0.89,3448,4.534]],["body/injectables/ConsoleWriterService.html",[0,0.331,3,0.033,4,0.026,5,0.014,7,0.149,8,1.415,27,0.404,29,0.771,30,0.001,31,0.545,32,0.136,33,0.486,35,1.174,47,0.916,95,0.125,101,0.019,103,0.001,104,0.001,105,1.546,107,2.328,148,3.626,187,1.393,731,3.808,1298,4.566,1299,4.511,1300,4.511,2880,5.605,3448,7.877,3458,6.16,5482,10.826,5483,9.447,5486,9.724,5487,11.719,5488,9.724,5489,9.724]],["title/injectables/ContentElementFactory.html",[105,0.89,3540,5.438]],["body/injectables/ContentElementFactory.html",[0,0.229,3,0.018,4,0.018,5,0.013,7,0.103,8,1.115,27,0.471,29,0.533,30,0.001,31,0.377,32,0.167,33,0.336,34,1.81,35,1.371,49,2.62,83,3.7,95,0.164,101,0.013,103,0.001,104,0.001,105,1.218,107,1.608,111,2.604,187,0.963,217,1.497,227,1.197,234,2.205,305,1.934,307,4.201,309,5.969,329,1.98,591,4.51,592,4.652,667,4.334,734,3.879,2344,2.777,2586,3.547,2594,5.993,2799,7.089,2864,6.015,2867,5.929,2870,5.771,2878,8.502,2879,4.981,2880,4.416,2881,3.064,2882,4.005,3218,4.445,3239,4.201,3242,4.913,3245,3.547,3523,5.87,3540,7.442,3774,6.554,4150,6.976,5147,8.227,5490,11.902,5491,6.72,5492,11.355,5493,11.355,5494,11.355,5495,9.232,5496,6.72,5497,10.489,5498,6.72,5499,6.72,5500,6.72,5501,6.72,5502,6.72,5503,6.72,5504,4.594,5505,6.72,5506,4.594,5507,6.72,5508,4.594,5509,6.72,5510,6.72,5511,9.232,5512,5.106,5513,5.87]],["title/classes/ContentElementResponseFactory.html",[0,0.23,4049,5.64]],["body/classes/ContentElementResponseFactory.html",[0,0.273,2,0.923,3,0.021,4,0.021,5,0.015,7,0.123,8,1.256,27,0.432,29,0.637,30,0.001,31,0.451,32,0.162,33,0.402,35,0.97,95,0.169,99,1.364,100,2.69,101,0.015,103,0.001,104,0.001,111,2.307,144,2.196,165,0.821,187,1.151,217,1.372,227,0.847,234,1.304,305,2.312,329,2.367,627,4.03,975,5.945,1828,4.638,2062,7.422,2071,7.422,2092,4.548,2588,9.01,2594,5.889,2595,8.385,2597,9.643,2598,6.199,2879,5.955,2880,3.843,2881,3.663,2882,4.788,3218,5.315,3673,7.885,4049,8.696,5514,11.534,5515,10.655,5516,10.401,5517,10.401,5518,10.401,5519,8.035,5520,6.718,5521,7.019,5522,7.019,5523,7.019,5524,10.401,5525,8.035,5526,8.035,5527,8.035,5528,7.019,5529,8.035]],["title/injectables/ContentElementService.html",[105,0.89,3538,5.126]],["body/injectables/ContentElementService.html",[0,0.207,3,0.016,4,0.016,5,0.009,7,0.093,8,1.04,10,3.477,12,3.971,26,2.269,27,0.495,29,0.945,30,0.001,31,0.668,32,0.178,33,0.595,34,1.044,35,1.386,36,2.805,55,2.199,95,0.153,99,1.032,101,0.012,103,0.001,104,0.001,105,1.135,107,1.455,111,2,112,3.021,127,1.088,187,0.871,216,1.849,217,1.434,221,2.809,227,0.907,234,1.397,305,1.749,883,3.61,982,3.046,1984,2.6,2344,4.493,2570,3.29,2594,5.615,2686,3.236,2856,6.934,2951,5.957,3120,4.62,3121,8.455,3305,5.372,3318,5.311,3369,9.08,3372,5.886,3378,8.493,3382,5.083,3538,6.542,3540,9.875,3774,6.276,4127,7.521,4143,4.901,4186,4.901,4204,10.043,5497,11.922,5528,5.311,5530,11.317,5531,6.08,5532,6.08,5533,6.08,5534,8.61,5535,6.08,5536,8.61,5537,6.08,5538,8.61,5539,6.08,5540,6.08,5541,7.432,5542,7.432,5543,7.432,5544,6.08,5545,6.08,5546,5.311,5547,6.08,5548,6.08,5549,6.08,5550,6.08,5551,6.08,5552,6.08,5553,6.08,5554,4.405,5555,6.08,5556,6.08,5557,6.08,5558,6.08]],["title/classes/ContentElementUpdateVisitor.html",[0,0.23,5546,5.893]],["body/classes/ContentElementUpdateVisitor.html",[0,0.199,2,0.672,3,0.016,4,0.016,5,0.008,7,0.09,8,1.012,27,0.531,29,1.001,30,0.001,31,0.707,32,0.183,33,0.63,35,1.496,95,0.125,99,0.993,101,0.011,103,0.001,104,0.001,111,2.353,127,0.739,148,4.142,165,0.661,214,2.757,216,1.81,234,0.949,305,1.683,469,2.581,806,4.123,982,2.931,2344,4.673,2594,5.773,2598,5.43,2697,5.969,2802,5.898,2848,7.318,2849,7.318,2850,7.318,2851,7.318,2852,7.318,2853,7.318,2854,7.318,2855,7.004,2856,6.399,2858,7.004,2860,7.004,2861,6.979,2863,7.004,2864,7.367,2866,7.004,2867,7.261,2869,7.004,2870,7.068,2873,6.679,2881,2.667,2951,3.486,3415,6.861,5530,11.967,5541,6.69,5542,6.69,5543,6.69,5546,7.318,5559,5.85,5560,8.377,5561,8.377,5562,8.188,5563,8.377,5564,8.377,5565,5.85,5566,3.932,5567,5.85,5568,5.85,5569,5.85,5570,5.85,5571,5.85,5572,5.85,5573,7.738,5574,5.85,5575,5.404,5576,5.85,5577,5.85,5578,5.85,5579,5.404,5580,5.85,5581,5.85,5582,5.404,5583,5.85,5584,8.377,5585,5.404,5586,5.85,5587,5.404,5588,5.85,5589,5.85,5590,5.85,5591,5.404,5592,5.85]],["title/classes/ContentElementUrlParams.html",[0,0.23,5593,5.893]],["body/classes/ContentElementUrlParams.html",[0,0.398,2,1.111,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.006,47,0.851,95,0.15,101,0.018,103,0.001,104,0.001,165,0.922,364,1.794,368,4.616,369,2.583,370,3.899,371,3.221,374,3.092,376,2.27,379,2.231,467,3.141,1000,4.997,2594,5.155,3834,5.644,5593,10.208,5594,11.685,5595,8.94,5596,11.597,5597,8.94]],["title/classes/ContextExternalTool.html",[0,0.23,140,3.818]],["body/classes/ContextExternalTool.html",[0,0.242,2,0.817,3,0.019,4,0.019,5,0.01,7,0.109,8,1.159,27,0.54,29,0.963,30,0.001,31,0.399,32,0.179,33,0.607,34,1.864,35,0.859,47,0.884,55,2.671,95,0.156,101,0.018,103,0.001,104,0.001,127,0.899,140,5.431,165,0.757,181,7.364,192,2.121,194,4.634,199,2.715,200,4.519,201,3.725,214,3.158,227,0.75,334,0.784,404,1.735,405,2.587,595,2.449,596,2.16,1939,6.711,4072,4.704,5292,7.456,5598,8.127,5599,11.357,5600,5.556,5601,9.226,5602,5.825,5603,8.833,5604,8.833,5605,9.72,5606,8.864,5607,7.112,5608,7.112,5609,7.112,5610,9.371,5611,7.112,5612,5.153,5613,7.112,5614,5.556,5615,5.047,5616,5.404,5617,6.57,5618,6.57,5619,6.57,5620,6.57,5621,4.505,5622,4.862,5623,4.704,5624,5.153,5625,6.809,5626,5.271]],["title/injectables/ContextExternalToolAuthorizableService.html",[105,0.89,5627,5.438]],["body/injectables/ContextExternalToolAuthorizableService.html",[0,0.293,3,0.023,4,0.023,5,0.012,7,0.132,8,1.314,12,5.018,26,2.613,27,0.452,29,0.863,30,0.001,31,0.61,32,0.153,33,0.544,34,1.48,35,1.041,36,2.365,40,5.237,95,0.165,99,1.463,101,0.016,103,0.001,104,0.001,105,1.435,107,2.063,112,2.674,127,1.089,140,7.086,187,1.235,200,4.296,209,4.105,214,2.837,215,2.79,216,1.594,217,1.137,221,2.032,227,0.909,450,3.546,1935,8.77,2485,3.724,2767,3.886,3117,7.963,5274,10.299,5598,7.452,5627,8.77,5628,10.414,5629,7.963,5630,8.62,5631,8.62,5632,8.62]],["title/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.23,5633,5.64]],["body/classes/ContextExternalToolConfigurationTemplateListResponse.html",[0,0.309,2,1.044,3,0.024,4,0.024,5,0.013,7,0.14,27,0.467,29,0.721,30,0.001,31,0.51,32,0.171,33,0.454,95,0.144,101,0.017,103,0.001,104,0.001,127,1.148,145,2.346,163,4.135,165,0.887,199,3.47,200,4.157,209,4.393,364,1.685,376,2.132,467,3.023,1006,6.449,1009,6.426,1011,4.836,1026,5.048,1379,7.36,2171,5.484,2600,5.33,5633,9.401,5634,11.28,5635,10.915,5636,8.784,5637,8.395]],["title/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.23,5635,5.438]],["body/classes/ContextExternalToolConfigurationTemplateResponse.html",[0,0.249,2,0.841,3,0.019,4,0.019,5,0.01,7,0.112,26,2.558,27,0.535,29,0.933,30,0.001,31,0.66,32,0.183,33,0.551,47,0.856,55,2.152,95,0.141,99,1.242,101,0.014,103,0.001,104,0.001,127,0.925,145,1.889,165,0.772,200,4.264,209,4.505,364,2.338,375,4.47,376,1.717,467,3.598,1011,3.895,1508,4.142,2136,2.929,2171,5.695,2600,5.711,4945,5.912,5623,4.841,5634,12.087,5635,9.881,5638,6.761,5639,8.607,5640,6.236,5641,7.983,5642,9.036,5643,9.782,5644,6.761,5645,6.761,5646,6.761,5647,9.188,5648,6.761,5649,6.761,5650,6.393,5651,6.119,5652,6.761,5653,7.319,5654,7.319,5655,6.761,5656,4.768,5657,6.761,5658,6.761,5659,5.717,5660,6.761]],["title/classes/ContextExternalToolContextParams.html",[0,0.23,5661,5.64]],["body/classes/ContextExternalToolContextParams.html",[0,0.374,2,1.007,3,0.023,4,0.023,5,0.012,7,0.135,27,0.457,30,0.001,32,0.154,47,0.801,95,0.154,101,0.017,103,0.001,104,0.001,145,2.264,165,0.868,197,8.077,198,4.195,200,4.315,209,4.137,316,7.07,364,2.039,368,4.977,369,2.785,370,3.67,371,3.473,374,2.802,376,2.057,467,3.23,1000,4.704,1044,4.305,2577,8.613,4714,7.161,5598,7.512,5661,9.196,5662,9.687,5663,8.771,5664,7.417,5665,7.662,5666,8.771,5667,8.771,5668,8.771,5669,8.771,5670,8.771,5671,7.662]],["title/entities/ContextExternalToolEntity.html",[380,1.411,5672,5.27]],["body/entities/ContextExternalToolEntity.html",[0,0.237,3,0.018,4,0.018,5,0.01,7,0.107,27,0.516,29,0.915,30,0.001,32,0.174,33,0.473,47,0.906,55,2.366,95,0.155,96,1.886,101,0.018,103,0.001,104,0.001,165,0.747,192,2.08,199,2.663,200,4.492,209,2.402,240,4.056,334,0.769,364,2.305,369,2.55,370,2.328,380,1.981,381,2.296,386,3.987,398,2.043,399,3.709,402,2.87,404,1.261,405,1.881,406,2.229,1608,5.171,1925,4.922,4287,4.951,4293,5.124,4294,4.205,4714,6.873,4926,4.959,5292,6.727,5598,7.952,5602,5.779,5621,4.419,5622,4.769,5623,4.615,5624,5.055,5625,4.951,5626,5.171,5664,7.119,5672,7.399,5673,11.751,5674,5.624,5675,9.643,5676,6.976,5677,10.075,5678,6.976,5679,6.976,5680,9.163,5681,6.976,5682,8.357,5683,6.976,5684,6.976,5685,5.833,5686,4.545,5687,7.919,5688,6.444,5689,6.444,5690,6.444,5691,6.094,5692,5.833,5693,5.624,5694,5.833]],["title/classes/ContextExternalToolFactory.html",[0,0.23,5695,6.231]],["body/classes/ContextExternalToolFactory.html",[0,0.159,2,0.536,3,0.012,4,0.012,5,0.007,7,0.072,8,0.856,27,0.53,29,1.03,30,0.001,31,0.701,32,0.185,33,0.616,34,1.471,35,1.436,47,0.845,49,1.818,55,2.478,59,3.364,95,0.139,96,1.261,97,1.984,101,0.009,103,0,104,0,127,0.589,138,3.077,140,2.639,144,3.314,145,2.212,148,1.443,165,0.559,181,4.488,185,4.825,188,1.766,197,3.135,200,2.792,201,2.442,209,1.606,216,1.311,217,0.934,227,0.747,234,1.15,264,1.975,316,3.759,329,3.42,359,2.457,366,2.567,379,1.975,380,1.793,381,2.332,404,1.281,538,3.177,596,3.839,627,2.206,660,6.899,661,4.567,662,5.366,665,3.973,666,5.366,667,5.45,668,3.973,669,3.973,670,3.973,671,3.901,672,4.355,673,4.805,674,6.335,675,5.667,676,6.853,677,2.639,682,2.615,683,3.973,684,2.639,685,5.013,686,5.224,687,4.441,688,5.053,689,3.936,690,2.615,691,2.442,692,4.039,693,2.545,694,2.502,695,2.615,696,4.937,697,2.639,698,4.718,699,2.615,700,7.005,701,4.055,702,6.508,703,2.639,704,3.502,705,2.615,706,2.639,707,2.615,708,2.639,709,2.615,712,2.615,713,5.967,714,2.639,715,2.615,716,3.973,717,3.901,718,3.973,719,2.639,720,2.523,721,2.502,722,2.057,723,2.615,724,2.615,725,2.615,726,2.639,727,2.639,728,1.826,729,2.615,730,2.639,731,2.775,732,2.615,733,2.639,735,2.692,736,2.749,737,2.779,905,2.943,4150,3.085,4227,3.732,4335,6.081,4337,3.379,5292,2.72,5601,3.309,5602,2.337,5603,5.384,5605,3.899,5695,7.916,5696,7.086,5697,3.759,5698,7.086,5699,7.086,5700,4.664,5701,6.935,5702,3.643,5703,3.457,5704,3.643,5705,4.664]],["title/classes/ContextExternalToolIdParams.html",[0,0.23,5706,5.27]],["body/classes/ContextExternalToolIdParams.html",[0,0.396,2,1.106,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,47,0.848,95,0.149,101,0.018,103,0.001,104,0.001,165,0.919,200,4.241,209,4.012,364,1.785,368,4.602,369,2.576,370,3.213,371,3.212,374,3.077,376,2.259,467,3.132,478,6.835,1000,4.983,5598,7.284,5662,9.393,5706,9.102,5707,9.285,5708,8.414,5709,8.414]],["title/classes/ContextExternalToolIdParams-1.html",[0,0.191,905,2.329,5706,4.382]],["body/classes/ContextExternalToolIdParams-1.html",[0,0.399,2,1.12,3,0.026,4,0.026,5,0.014,7,0.15,26,2.628,27,0.405,30,0.001,32,0.137,95,0.161,99,1.654,101,0.019,103,0.001,104,0.001,165,0.926,200,3.824,209,4.041,364,1.807,374,3.114,376,2.287,467,3.155,478,6.918,1000,5.019,2600,5.123,5706,9.169,5707,9.334,5710,10.842,5711,7.063,5712,7.858]],["title/modules/ContextExternalToolModule.html",[425,1.808,5713,5.438]],["body/modules/ContextExternalToolModule.html",[0,0.257,3,0.02,4,0.02,5,0.011,30,0.001,95,0.166,101,0.014,103,0.001,104,0.001,187,1.08,192,2.248,200,3.878,209,3.435,425,3.19,427,2.787,428,2.939,429,3.031,430,3.017,431,2.991,432,4.133,433,4.217,438,6.008,442,4.011,443,2.965,444,2.89,449,4.011,766,3.24,1545,2.408,1887,4.653,1919,3.131,1945,5.398,1977,6.944,1991,4.079,1993,5.153,1994,6.964,2510,4.775,2767,3.398,4969,4.266,5267,9.215,5277,6.077,5598,4.712,5627,11.009,5713,11.368,5714,7.538,5715,7.538,5716,7.538,5717,7.538,5718,9.664,5719,9.935,5720,9.895,5721,11.418,5722,7.538]],["title/classes/ContextExternalToolPostParams.html",[0,0.23,5723,5.64]],["body/classes/ContextExternalToolPostParams.html",[0,0.376,2,0.844,3,0.019,4,0.019,5,0.01,7,0.113,27,0.524,29,0.876,30,0.001,32,0.186,33,0.589,47,0.919,55,2.157,95,0.157,101,0.014,103,0.001,104,0.001,165,0.774,192,2.19,197,7.419,198,3.513,200,4.502,209,4.438,364,2.34,369,1.624,374,2.347,375,4.478,376,1.723,467,3.299,470,4.132,471,4.697,1000,4.72,1044,3.606,2489,4.198,3436,6.959,4714,6.578,5292,6.438,5418,6.211,5598,8.058,5602,5.531,5662,10.391,5664,6.814,5671,6.417,5701,7.998,5723,8.198,5724,6.786,5725,7.905,5726,7.345,5727,7.345,5728,7.345,5729,5.322,5730,7.345,5731,9.325,5732,6.141,5733,6.141,5734,6.141,5735,7.345,5736,6.786,5737,6.786,5738,7.345,5739,4.859,5740,5.66,5741,5.444]],["title/interfaces/ContextExternalToolProps.html",[334,0.743,5605,5.64]],["body/interfaces/ContextExternalToolProps.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.121,29,0.997,30,0.001,32,0.181,33,0.605,34,2.079,47,0.955,55,2.764,95,0.161,101,0.02,103,0.001,104,0.001,140,4.467,165,0.811,181,7.958,192,2.354,194,5.143,199,3.014,200,3.726,201,4.134,214,2.598,227,0.832,334,0.87,336,1.923,404,1.427,405,2.128,1939,5.935,4072,5.221,5292,7.651,5598,4.934,5599,6.895,5600,6.166,5601,9.628,5602,6.295,5603,9.546,5604,5.998,5605,9.561,5610,10.128,5614,6.166,5615,5.601,5616,5.998,5617,7.291,5618,7.291,5619,7.291,5620,7.291,5621,5,5622,5.396,5623,5.221,5624,5.719,5625,7.297,5626,5.85]],["title/injectables/ContextExternalToolRepo.html",[105,0.89,5274,5.27]],["body/injectables/ContextExternalToolRepo.html",[0,0.126,3,0.01,4,0.01,5,0.005,7,0.057,8,0.714,10,2.389,12,2.728,18,2.923,26,2.369,27,0.532,29,1.024,30,0.001,31,0.714,32,0.184,33,0.637,34,1.69,35,1.527,36,2.606,40,2.847,47,0.538,95,0.156,96,1.599,97,1.574,101,0.007,103,0,104,0,105,0.78,107,0.885,111,2.509,112,2.858,116,2.392,127,0.467,140,6.266,148,1.145,158,1.853,165,0.292,187,0.53,197,6.947,199,2.258,200,4.007,201,3.097,216,1.094,217,1.46,221,1.394,227,1.197,234,1.677,277,2.958,305,1.702,307,3.697,309,3.347,316,4.768,329,1.742,359,2.051,380,1.931,381,1.217,398,1.083,404,1.069,450,1.522,529,2.609,595,1.274,596,3.641,661,3.113,878,4.117,884,2.794,885,4.593,915,2.036,935,3.093,945,3.231,1052,3.441,1053,3.744,1545,1.182,1608,2.742,1857,3.16,2092,2.094,2180,2.343,2383,8.494,2385,4.197,2386,4.197,2387,4.197,2388,4.197,2389,4.117,2390,4.117,2391,4.197,2392,4.117,2393,4.197,2394,2.68,2395,4.825,2397,4.285,2398,2.625,2400,4.825,2401,2.625,2403,2.625,2405,2.447,2406,4.197,2407,2.625,2409,2.625,2411,4.197,2415,4.197,2417,3.975,2418,4.117,2420,2.625,2422,2.256,2423,2.256,2424,2.625,2426,2.625,2428,2.625,2429,2.625,2435,2.486,2446,2.625,2447,4.383,2468,4.945,2482,3.231,2485,1.598,4227,1.274,4355,2.375,4533,3.565,4628,3.912,4630,3.074,4714,2.204,5274,4.62,5292,3.449,5601,6.551,5602,2.963,5603,4.494,5610,5.957,5664,2.283,5672,8.87,5675,4.945,5677,9.029,5682,2.68,5686,3.853,5687,8.231,5701,2.68,5704,5.772,5742,9.918,5743,3.231,5744,5.463,5745,5.914,5746,5.914,5747,5.914,5748,3.699,5749,5.463,5750,9.548,5751,3.699,5752,8.6,5753,5.914,5754,3.699,5755,5.463,5756,3.699,5757,4.945,5758,3.417,5759,3.699,5760,5.914,5761,3.699,5762,5.914,5763,3.699,5764,3.699,5765,3.699,5766,2.68,5767,2.68,5768,2.68,5769,2.68,5770,2.68,5771,2.68,5772,2.68,5773,2.68,5774,2.68,5775,3.699,5776,3.699,5777,3.699,5778,2.575,5779,4.768,5780,2.982,5781,3.231,5782,2.811,5783,3.699,5784,3.449,5785,3.417,5786,2.625,5787,5.914,5788,3.699,5789,3.699,5790,3.699,5791,3.699,5792,3.699,5793,3.417,5794,3.699,5795,3.699,5796,3.417,5797,3.699,5798,3.417,5799,3.417,5800,3.699,5801,3.699,5802,3.699,5803,3.699,5804,3.699,5805,3.699,5806,3.417,5807,3.417,5808,5.914,5809,5.914]],["title/classes/ContextExternalToolRequestMapper.html",[0,0.23,5810,5.893]],["body/classes/ContextExternalToolRequestMapper.html",[0,0.271,2,0.915,3,0.021,4,0.021,5,0.011,7,0.123,8,1.25,27,0.43,29,0.911,30,0.001,31,0.644,32,0.161,33,0.517,34,1.776,35,1.25,95,0.156,101,0.015,103,0.001,104,0.001,111,2.298,144,2.179,181,7.278,192,2.377,194,5.194,200,4.343,209,3.956,227,1.211,367,3.837,627,4.022,982,3.994,5292,4.649,5598,7.183,5601,5.657,5602,3.994,5603,6.057,5701,5.776,5723,10.168,5731,9.576,5741,5.908,5778,5.549,5810,9.04,5811,10.614,5812,6.426,5813,10.348,5814,10.037,5815,10.348,5816,7.971,5817,9.607,5818,6.963,5819,7.971,5820,8.652,5821,6.665,5822,7.971,5823,7.971,5824,7.971,5825,7.971,5826,7.971,5827,7.364,5828,6.963,5829,6.665,5830,6.963]],["title/classes/ContextExternalToolResponse.html",[0,0.23,5831,5.438]],["body/classes/ContextExternalToolResponse.html",[0,0.23,2,0.777,3,0.018,4,0.018,5,0.01,7,0.104,27,0.541,29,0.903,30,0.001,31,0.379,32,0.185,33,0.596,34,1.816,47,0.96,55,2.04,95,0.136,101,0.013,103,0.001,104,0.001,127,0.855,144,1.849,145,1.746,165,0.732,192,2.017,197,8.019,198,3.236,200,4.549,329,1.993,364,2.382,375,4.84,376,1.587,467,3.58,618,2.879,1011,3.6,1016,2.416,1031,2.168,2914,4.345,4714,6.307,5292,6.172,5598,8.245,5602,5.303,5621,4.285,5623,4.475,5625,4.801,5640,5.99,5656,4.408,5662,10.632,5664,6.533,5691,5.91,5693,5.453,5701,7.668,5741,5.014,5831,9.617,5832,5.91,5833,7.754,5834,8.102,5835,5.91,5836,5.91,5837,5.91,5838,5.91,5839,8.895,5840,5.91,5841,5.91,5842,5.91,5843,5.285,5844,6.249,5845,6.765,5846,6.765,5847,6.765,5848,6.765,5849,5.91,5850,6.249,5851,5.91]],["title/classes/ContextExternalToolResponseMapper.html",[0,0.23,5852,5.893]],["body/classes/ContextExternalToolResponseMapper.html",[0,0.268,2,0.903,3,0.021,4,0.021,5,0.011,7,0.121,8,1.239,27,0.426,29,0.905,30,0.001,31,0.64,32,0.144,33,0.513,34,1.349,35,1.239,95,0.146,101,0.015,103,0.001,104,0.001,111,2.283,140,7.102,144,2.149,192,2.344,200,4.27,209,3.93,217,1.505,227,1.203,234,1.664,313,6.868,315,7.263,627,4.007,974,4.853,980,6.142,982,3.939,2485,3.397,4533,7.291,4714,4.685,5292,4.585,5598,7.135,5602,3.939,5664,4.853,5701,5.697,5731,9.534,5741,5.827,5811,10.544,5814,9.971,5818,6.868,5820,8.575,5829,6.573,5830,6.868,5831,10.115,5839,10.382,5852,8.959,5853,10.256,5854,10.256,5855,7.263,5856,6.338,5857,6.338,5858,6.868,5859,7.862,5860,7.862,5861,7.862,5862,7.862]],["title/injectables/ContextExternalToolRule.html",[105,0.89,1955,5.64]],["body/injectables/ContextExternalToolRule.html",[0,0.245,3,0.019,4,0.019,5,0.01,7,0.111,8,1.17,27,0.454,29,0.868,30,0.001,31,0.613,32,0.153,33,0.547,35,1.17,95,0.161,101,0.014,103,0.001,104,0.001,105,1.278,107,1.727,116,4.065,127,0.912,140,7.382,187,1.033,199,4.176,200,4.092,201,3.778,214,2.374,215,2.335,216,1.334,217,0.951,227,1.021,347,2.56,380,2.793,461,3.077,806,4.609,1862,6.437,1890,7.955,1928,7.92,1955,8.1,1989,5.98,2033,4.7,2056,6.512,3352,6.512,3353,4.932,3356,6.408,3358,4.932,3359,4.849,3360,6.623,3361,7.361,5672,10.321,5686,4.7,5704,7.568,5863,11.693,5864,6.664,5865,6.664,5866,6.664,5867,6.664,5868,7.02,5869,7.214,5870,7.214]],["title/classes/ContextExternalToolScope.html",[0,0.23,5752,5.893]],["body/classes/ContextExternalToolScope.html",[0,0.216,2,0.728,3,0.017,4,0.017,5,0.009,7,0.097,8,1.071,26,2.717,27,0.533,29,0.958,30,0.001,31,0.677,32,0.18,33,0.603,34,1.755,35,1.458,95,0.142,99,1.076,101,0.012,103,0.001,104,0.001,111,2.416,144,1.733,145,3.514,148,1.961,165,0.7,197,7.443,200,3.935,227,1.167,277,5.144,329,1.868,347,2.084,404,1.603,450,2.608,529,2.796,596,3.539,2432,6.093,4714,6.093,5664,6.312,5672,4.952,5675,5.3,5686,4.13,5701,7.409,5703,4.698,5704,4.952,5742,10.765,5752,11.372,5871,5.537,5872,6.061,5873,6.061,5874,6.061,5875,8.866,5876,8.866,5877,8.866,5878,8.866,5879,6.061,5880,6.061,5881,4.412,5882,4.333,5883,4.412,5884,4.412,5885,8.866,5886,6.339,5887,8.866,5888,6.339,5889,8.866,5890,6.339,5891,8.866,5892,6.339,5893,4.333,5894,6.061,5895,4.412,5896,4.333,5897,4.412,5898,4.333,5899,7.57]],["title/classes/ContextExternalToolSearchListResponse.html",[0,0.23,5900,5.893]],["body/classes/ContextExternalToolSearchListResponse.html",[0,0.311,2,1.048,3,0.024,4,0.024,5,0.013,7,0.14,27,0.468,29,0.724,30,0.001,31,0.512,32,0.172,33,0.456,95,0.145,101,0.017,103,0.001,104,0.001,127,1.154,145,2.356,163,4.141,165,0.89,199,3.485,200,4.416,209,4.213,364,1.692,376,2.141,467,3.031,1005,9.069,1006,6.478,1009,6.444,1011,4.858,1026,5.071,5598,7.649,5636,8.809,5662,9.863,5831,10.926,5900,9.85,5901,7.975]],["title/injectables/ContextExternalToolService.html",[105,0.89,5720,4.888]],["body/injectables/ContextExternalToolService.html",[0,0.212,3,0.017,4,0.017,5,0.009,7,0.096,8,1.058,26,2.574,27,0.512,29,0.979,30,0.001,31,0.692,32,0.173,33,0.616,35,1.45,36,2.819,95,0.148,99,1.057,101,0.012,103,0.001,104,0.001,105,1.155,107,1.491,112,3.074,127,0.787,140,7.603,187,0.893,199,2.379,200,4.447,209,3.016,215,2.017,216,1.152,217,1.527,221,2.908,227,1.158,450,2.563,529,2.748,2485,2.692,5274,9.382,5285,5.023,5598,7.873,5601,8.522,5603,4.734,5628,11.001,5629,5.756,5641,6.347,5701,4.515,5707,4.618,5720,6.347,5750,10.152,5778,4.337,5821,5.209,5902,8.76,5903,7.652,5904,8.76,5905,8.76,5906,8.76,5907,8.76,5908,6.231,5909,8.76,5910,6.231,5911,8.76,5912,6.231,5913,8.76,5914,6.231,5915,8.76,5916,5.756,5917,8.76,5918,5.756,5919,8.76,5920,6.231,5921,10.116,5922,6.231,5923,6.231,5924,8.76,5925,6.231,5926,8.76,5927,6.231,5928,6.231]],["title/injectables/ContextExternalToolUc.html",[105,0.89,5929,5.64]],["body/injectables/ContextExternalToolUc.html",[0,0.16,3,0.012,4,0.012,5,0.007,7,0.072,8,0.86,26,2.858,27,0.469,29,0.895,30,0.001,31,0.633,32,0.163,33,0.564,34,1.222,35,1.312,36,2.682,39,3.255,47,0.626,95,0.153,99,0.796,101,0.009,103,0,104,0,105,0.939,107,1.123,111,2.326,112,2.956,127,0.899,140,7.537,187,0.672,197,6.453,198,2.243,199,4.44,200,4.266,209,3.74,216,1.909,217,1.715,221,2.984,227,1.145,234,1.558,461,1.982,524,2.765,766,2.016,843,3.107,1052,3.505,1053,4.258,1062,3.107,1545,1.499,1862,5.682,1868,2.971,1952,6.057,2485,2.026,2767,2.115,3027,2.681,3830,2.971,4209,3.781,4714,5.721,5275,8.052,5598,7.27,5601,5.051,5664,5.926,5707,8.619,5720,8.179,5721,9.438,5778,3.265,5817,10.583,5903,6.217,5929,5.95,5930,11.629,5931,4.098,5932,7.945,5933,8.6,5934,6.575,5935,6.575,5936,7.945,5937,4.691,5938,4.691,5939,4.691,5940,4.691,5941,7.117,5942,4.691,5943,4.691,5944,6.537,5945,4.691,5946,7.117,5947,6.933,5948,4.691,5949,7.117,5950,4.333,5951,4.691,5952,4.691,5953,4.691,5954,3.781,5955,7.117,5956,8.6,5957,7.513,5958,4.691,5959,6.575,5960,4.691,5961,4.333,5962,4.691,5963,6.217,5964,4.691,5965,4.098,5966,4.691,5967,4.333,5968,9.6,5969,4.691,5970,4.691,5971,6.575,5972,4.691]],["title/injectables/ContextExternalToolValidationService.html",[105,0.89,5721,5.64]],["body/injectables/ContextExternalToolValidationService.html",[0,0.218,3,0.017,4,0.017,5,0.009,7,0.098,8,1.078,27,0.427,29,0.815,30,0.001,31,0.656,32,0.144,33,0.514,35,1.078,36,1.94,95,0.167,101,0.012,103,0.001,104,0.001,105,1.177,107,1.532,111,2.486,112,2.717,127,1.128,139,5.101,140,7.289,158,4.472,187,0.917,188,3.38,192,2.661,199,3.408,200,4.395,201,4.674,209,4.279,216,2.057,217,1.355,221,2.621,234,1.448,247,2.539,305,1.841,394,3.657,503,5.379,520,4.301,558,3.042,774,4.375,795,3.772,2298,5.379,2485,2.764,3465,5.35,3871,5.159,3872,4.375,4960,4.053,5273,9.709,5302,4.999,5315,5.59,5598,6.951,5603,4.862,5628,9.713,5720,8.776,5721,7.462,5778,4.454,5817,9.296,5821,5.35,5856,5.159,5857,5.159,5858,5.59,5944,4.053,5973,8.925,5974,5.815,5975,6.399,5976,8.098,5977,9.212,5978,6.399,5979,8.925,5980,6.399,5981,8.925,5982,6.399,5983,6.399,5984,4.999,5985,5.999,5986,5.35,5987,6.399,5988,6.399,5989,6.399,5990,5.35,5991,5.911,5992,6.399,5993,5.911,5994,7.462,5995,5.911,5996,6.399,5997,6.399,5998,5.59,5999,4.454,6000,5.911,6001,6.399,6002,6.399,6003,6.399,6004,6.399,6005,6.399,6006,6.399]],["title/classes/ContextRef.html",[0,0.23,5601,4.787]],["body/classes/ContextRef.html",[0,0.317,2,1.07,3,0.025,4,0.025,5,0.013,7,0.143,27,0.513,29,0.739,30,0.001,31,0.523,32,0.188,33,0.466,34,2.119,47,0.832,95,0.119,101,0.018,103,0.001,104,0.001,127,1.178,165,0.901,197,8.3,198,4.457,200,4.194,405,3.078,595,3.209,618,3.965,619,5.326,2621,4.402,5236,5.826,5598,8.046,5599,11.244,5601,9.372,6007,8.609,6008,10.55,6009,8.609]],["title/classes/ContextRefParams.html",[0,0.23,6010,5.893]],["body/classes/ContextRefParams.html",[0,0.387,2,1.063,3,0.025,4,0.025,5,0.013,7,0.142,26,2.569,27,0.472,30,0.001,32,0.173,95,0.165,99,1.571,101,0.018,103,0.001,104,0.001,165,0.897,197,8.859,198,4.426,364,2.108,374,2.957,376,2.171,467,3.309,1000,4.863,1044,4.543,2600,5.373,4714,7.336,5664,7.599,5671,8.085,5710,11.372,5711,6.706,6010,9.934,6011,9.255,6012,9.255,6013,9.255,6014,9.255]],["title/classes/ContextTypeMapper.html",[0,0.23,6015,5.893]],["body/classes/ContextTypeMapper.html",[0,0.325,2,1.098,3,0.025,4,0.025,5,0.014,7,0.147,8,1.401,27,0.397,29,0.759,30,0.001,31,0.536,32,0.163,33,0.478,35,1.155,95,0.149,101,0.018,103,0.001,104,0.001,197,8.728,217,1.261,227,1.008,316,7.709,627,3.889,1031,3.065,1291,4.069,2027,8.137,3359,6.428,6015,10.134,6016,11.601,6017,7.995,6018,11.601,6019,11.601,6020,9.563,6021,8.354,6022,7.088,6023,9.563]],["title/injectables/ConverterUtil.html",[105,0.89,2291,5.64]],["body/injectables/ConverterUtil.html",[0,0.425,3,0.025,4,0.025,5,0.014,7,0.147,8,1.403,27,0.398,29,0.922,30,0.001,31,0.538,32,0.163,33,0.479,35,1.158,47,0.91,95,0.149,101,0.018,103,0.001,104,0.001,105,1.532,107,2.294,187,1.373,227,1.01,379,2.209,692,4.842,2291,9.713,4587,10.149,6024,9.585,6025,11.618,6026,11.618,6027,9.585,6028,9.585,6029,9.585,6030,8.855,6031,9.585]],["title/classes/CookiesDto.html",[0,0.23,6032,5.64]],["body/classes/CookiesDto.html",[0,0.33,2,1.114,3,0.026,4,0.026,5,0.014,7,0.149,27,0.522,29,0.77,30,0.001,31,0.544,32,0.176,33,0.485,47,0.95,101,0.018,103,0.001,104,0.001,127,1.226,165,0.923,405,3.155,595,3.34,6032,11.166,6033,9.701,6034,10.978,6035,10.978,6036,11.702,6037,9.701,6038,9.701,6039,9.701,6040,9.701,6041,9.701]],["title/classes/CopyApiResponse.html",[0,0.23,6042,5.27]],["body/classes/CopyApiResponse.html",[0,0.225,2,0.759,3,0.018,4,0.018,5,0.009,7,0.102,27,0.52,29,0.524,30,0.001,31,0.371,32,0.194,33,0.648,34,2.152,47,0.956,95,0.117,100,3.056,101,0.013,103,0.001,104,0.001,127,1.153,145,1.706,165,0.72,188,3.456,364,2.268,375,4.8,376,1.55,379,3.026,467,2.811,538,4.092,564,4.814,966,3.384,1011,4.857,1031,3.614,1041,6.573,1474,4.338,1480,5.862,1491,5.216,1660,10.301,2078,3.855,2563,7.048,2594,5.637,2621,3.122,2789,3.489,3025,9.243,3026,4.08,3310,8.432,5221,7.13,6042,9.983,6043,10.684,6044,6.609,6045,7.13,6046,6.24,6047,5.947,6048,9.133,6049,6.609,6050,7.973,6051,6.609,6052,6.106,6053,8.432,6054,6.477,6055,6.609,6056,6.609,6057,8.99,6058,8.432,6059,6.609,6060,6.609,6061,6.609,6062,6.609]],["title/classes/CopyFileDto.html",[0,0.23,6063,5.438]],["body/classes/CopyFileDto.html",[0,0.299,2,1.009,3,0.023,4,0.023,5,0.012,7,0.135,26,2.71,27,0.523,29,0.697,30,0.001,31,0.707,32,0.177,33,0.601,34,2.064,47,0.802,95,0.141,99,1.492,101,0.017,103,0.001,104,0.001,127,1.111,145,2.843,163,2.772,165,0.869,336,2.142,618,3.74,1009,6.294,2136,3.518,3543,6.374,6063,8.878,6064,5.954,6065,12.985,6066,8.79,6067,7.956,6068,10.542,6069,11.014,6070,8.79,6071,8.79,6072,7.086,6073,7.086,6074,7.086,6075,7.086]],["title/classes/CopyFileListResponse.html",[0,0.23,6076,5.27]],["body/classes/CopyFileListResponse.html",[0,0.367,2,0.686,3,0.016,4,0.016,5,0.008,7,0.092,27,0.473,29,0.474,30,0.001,31,0.555,32,0.18,33,0.569,34,1.459,47,0.923,55,3.011,56,5.996,59,2.639,70,6.241,83,1.797,95,0.138,101,0.021,103,0.001,104,0.001,127,0.755,145,1.541,150,2.19,163,3.843,165,0.671,364,1.999,375,4.016,376,1.401,380,1.249,404,1.789,467,3.61,469,2.634,596,3.275,618,3.617,1007,7.689,1008,6.651,1009,6.163,1011,3.178,1013,4.539,1014,2.931,1015,4.722,1016,2.133,1017,4.238,1018,5.538,1019,4.958,1020,3.95,1021,3.178,1022,4.238,1023,4.238,1025,5.385,1026,4.722,1031,3.172,1442,4.665,1446,4.538,1565,3.317,2136,3.403,2787,6.187,2915,5.225,3542,3.08,3574,2.912,6064,3.898,6067,3.95,6072,4.814,6073,4.814,6074,4.814,6075,4.814,6076,6.641,6077,5.538,6078,4.993,6079,9.731,6080,5.972,6081,5.972,6082,5.066,6083,5.937,6084,8.087,6085,6.449,6086,7.993,6087,4.993,6088,4.814,6089,4.814,6090,3.317,6091,4.993,6092,4.157,6093,4.993,6094,4.993,6095,4.993,6096,4.665,6097,4.814,6098,4.993,6099,4.993,6100,4.238,6101,4.814,6102,3.95,6103,4.814,6104,4.327,6105,4.993,6106,4.993,6107,4.814,6108,4.993,6109,4.426,6110,3.317,6111,2.971,6112,3.891,6113,4.426]],["title/classes/CopyFileParams.html",[0,0.23,6114,4.611]],["body/classes/CopyFileParams.html",[0,0.453,2,0.743,3,0.017,4,0.024,5,0.013,7,0.099,26,2.537,27,0.373,30,0.001,32,0.17,39,1.735,47,0.978,95,0.156,99,1.098,101,0.025,103,0.001,104,0.001,150,2.374,165,0.71,204,2.22,334,0.713,347,1.833,364,1.667,369,1.431,373,4.748,374,2.067,375,4.533,376,1.518,377,5.86,379,1.492,380,1.354,467,3.701,469,2.855,470,5.121,471,4.754,565,3.416,1000,5.198,1001,6.658,1031,3.314,1044,3.176,1291,2.754,1381,3.774,2744,5.236,2915,5.458,3574,3.155,4227,2.228,5740,6.778,6064,4.741,6077,6.736,6083,6.151,6111,3.22,6114,6.149,6115,4.504,6116,7.196,6117,5.978,6118,6.471,6119,7.919,6120,5.978,6121,6.471,6122,8.04,6123,7.638,6124,7.777,6125,4.504,6126,4.424,6127,6.839,6128,4.424,6129,4.504,6130,4.156,6131,5.95,6132,4.281,6133,4.504,6134,4.504,6135,4.35,6136,4.424,6137,4.35,6138,4.35,6139,4.156,6140,4.504,6141,4.424,6142,4.504,6143,4.35,6144,4.424,6145,4.216,6146,4.216,6147,4.504]],["title/classes/CopyFileResponse.html",[0,0.23,6079,5.27]],["body/classes/CopyFileResponse.html",[0,0.379,2,0.737,3,0.017,4,0.017,5,0.009,7,0.099,27,0.462,29,0.509,30,0.001,31,0.657,32,0.17,33,0.514,34,1.911,47,0.969,55,2.737,56,5.359,70,5.579,83,1.932,95,0.143,101,0.021,103,0.001,104,0.001,127,0.811,150,2.355,163,3.692,165,0.706,364,1.908,375,4.518,376,1.506,380,1.343,404,1.617,467,3.666,469,2.832,618,3.806,1007,6.355,1008,4.881,1009,6.364,1015,3.566,1025,5.666,1026,4.969,1031,3.3,1442,5.015,1446,4.878,1565,3.566,2136,3.58,2784,4.652,2787,6.435,2915,5.434,3542,3.311,3574,3.13,6064,5.369,6067,6.81,6072,5.175,6073,5.175,6074,5.175,6075,5.175,6076,5.015,6077,7.628,6078,5.367,6079,9.912,6082,5.33,6083,6.13,6084,8.308,6085,6.707,6086,8.253,6087,5.367,6088,5.175,6089,5.175,6090,3.566,6091,5.367,6092,4.469,6093,5.367,6094,5.367,6095,5.367,6096,5.015,6097,5.175,6098,5.367,6099,5.367,6100,4.556,6101,5.175,6102,4.246,6103,5.175,6104,4.652,6105,5.367,6106,5.367,6107,5.175,6108,5.367,6109,4.758,6110,3.566,6111,3.194,6112,4.183,6113,4.758,6148,6.42,6149,6.42,6150,6.42,6151,6.42]],["title/classes/CopyFileResponseBuilder.html",[0,0.23,6152,6.231]],["body/classes/CopyFileResponseBuilder.html",[0,0.316,2,1.065,3,0.025,4,0.025,5,0.017,7,0.143,8,1.375,27,0.385,29,0.736,30,0.001,31,0.74,32,0.13,33,0.464,34,1.955,35,1.12,47,1.008,95,0.119,101,0.018,103,0.001,104,0.001,116,3.003,217,1.223,227,0.978,234,1.505,627,3.837,667,5.347,982,4.648,6064,5.222,6067,8.5,6079,10.488,6152,10.52,6153,11.388,6154,8.569,6155,11.388,6156,9.276]],["title/interfaces/CopyFiles.html",[334,0.743,6157,5.126]],["body/interfaces/CopyFiles.html",[3,0.024,4,0.024,5,0.016,7,0.14,30,0.001,31,0.511,32,0.158,47,1.036,55,2.004,95,0.117,101,0.024,103,0.001,104,0.001,163,3.551,165,0.889,334,1.407,336,2.219,1565,5.06,2186,5.769,5410,7.742,5562,6.34,6157,8.556,6158,7.115,6159,7.615,6160,10.293,6161,10.293,6162,6.122,6163,6.025,6164,7.115,6165,6.34,6166,6.34,6167,6.34,6168,6.34,6169,6.751,6170,6.751,6171,6.751,6172,6.751]],["title/classes/CopyFilesOfParentParamBuilder.html",[0,0.23,6173,5.893]],["body/classes/CopyFilesOfParentParamBuilder.html",[0,0.305,2,1.03,3,0.03,4,0.035,5,0.016,7,0.138,8,1.347,26,2.65,27,0.372,29,0.711,30,0.001,31,0.503,32,0.126,33,0.448,35,1.083,39,2.989,95,0.156,99,1.522,101,0.017,103,0.001,104,0.001,217,1.182,227,0.945,336,2.185,367,4.316,627,3.779,667,5.235,2744,5.662,3305,5.511,3542,5.752,3543,5.474,6064,5.113,6173,9.741,6174,11.151,6175,8.283,6176,11.151,6177,10.547,6178,8.283,6179,10.147,6180,8.283,6181,10.301]],["title/classes/CopyFilesOfParentParams.html",[0,0.23,6137,4.534]],["body/classes/CopyFilesOfParentParams.html",[0,0.455,2,0.758,3,0.017,4,0.024,5,0.013,7,0.101,26,2.552,27,0.274,30,0.001,32,0.166,39,1.769,47,0.973,95,0.157,99,1.12,101,0.025,103,0.001,104,0.001,150,2.42,165,0.719,204,2.264,334,0.727,347,1.858,364,1.223,369,1.459,373,4.813,374,2.108,375,4.571,376,1.548,377,5.94,379,1.521,380,1.38,467,3.709,469,2.911,470,5.152,471,4.794,565,3.483,1000,5.229,1001,6.714,1031,3.348,1044,3.239,1291,2.808,1381,3.848,2744,5.273,2915,5.514,3574,3.218,4227,2.272,5740,6.826,6064,4.181,6077,5.94,6083,6.203,6111,3.283,6114,4.511,6115,4.593,6116,4.593,6119,7.967,6120,6.096,6122,8.089,6123,7.703,6124,7.843,6125,4.593,6126,4.511,6127,6.91,6128,4.511,6129,4.593,6130,4.238,6131,6.031,6132,4.365,6133,4.593,6134,4.593,6135,4.435,6136,4.511,6137,6.128,6138,4.435,6139,4.238,6140,4.593,6141,4.511,6142,4.593,6143,4.435,6144,4.511,6145,4.299,6146,4.299,6147,4.593,6182,6.599]],["title/classes/CopyFilesOfParentPayload.html",[0,0.23,6138,4.534]],["body/classes/CopyFilesOfParentPayload.html",[0,0.452,2,0.729,3,0.017,4,0.029,5,0.013,7,0.098,26,2.588,27,0.425,30,0.001,32,0.174,39,2.743,47,0.967,95,0.155,99,1.077,101,0.025,103,0.001,104,0.001,150,2.329,165,0.7,204,2.178,334,0.699,347,1.809,364,1.897,369,1.403,373,4.685,374,2.028,375,4.496,376,1.489,377,5.783,379,1.463,380,1.328,467,3.692,469,2.801,470,5.09,471,4.715,565,3.351,1000,5.303,1001,6.603,1031,3.28,1044,3.116,1291,2.701,1381,3.703,2744,5.199,2915,5.402,3574,3.096,4227,2.186,5740,7.159,6064,5.081,6077,7.22,6083,6.1,6111,3.159,6114,4.34,6115,4.419,6116,4.419,6119,8.08,6122,7.992,6123,7.575,6124,7.713,6125,4.419,6126,4.34,6127,6.769,6128,4.34,6129,4.419,6130,4.077,6131,5.871,6132,4.2,6133,4.419,6134,4.419,6135,4.267,6136,4.34,6137,4.267,6138,5.966,6139,4.077,6140,4.419,6141,4.34,6142,4.419,6143,4.267,6144,4.34,6145,4.136,6146,4.136,6147,4.419,6183,6.349,6184,6.349,6185,6.349]],["title/injectables/CopyFilesService.html",[105,0.89,6186,5.438]],["body/injectables/CopyFilesService.html",[0,0.2,3,0.016,4,0.026,5,0.012,7,0.09,8,1.015,26,2.234,27,0.444,29,0.898,30,0.001,31,0.68,32,0.174,33,0.535,34,1.944,35,1.185,36,1.826,39,2.63,47,0.428,95,0.155,99,0.997,100,1.967,101,0.016,103,0.001,104,0.001,105,1.108,107,1.406,111,2.481,112,2.201,127,1.062,187,0.842,206,3.008,216,1.554,217,1.742,221,1.385,227,1.194,234,0.954,336,1.432,564,3.119,574,2.664,692,4.52,1041,3.264,1474,1.995,1660,4.737,1828,3.747,2744,3.747,2997,8.36,3013,7.081,3025,4.59,3026,3.627,3027,3.358,3040,8.363,3041,7.908,3542,3.031,3543,5.783,5369,5.396,5412,4.465,6057,4.465,6063,9.778,6064,5.193,6067,6.489,6137,3.949,6173,5.133,6186,6.774,6187,9.894,6188,5.876,6189,9.809,6190,8.403,6191,7.341,6192,5.428,6193,8.99,6194,5.876,6195,5.876,6196,5.876,6197,8.403,6198,5.876,6199,9.809,6200,10.596,6201,8.403,6202,5.876,6203,5.876,6204,5.133,6205,5.428,6206,8.403,6207,5.876,6208,5.876,6209,8.201,6210,5.876,6211,5.876,6212,5.876,6213,5.876,6214,7.341,6215,5.876,6216,7.341,6217,5.876,6218,5.876,6219,4.258,6220,5.876,6221,5.876,6222,5.133,6223,5.876,6224,8.403,6225,5.876,6226,5.876,6227,4.59,6228,5.428,6229,4.913,6230,5.428,6231,8.403,6232,5.876,6233,5.876]],["title/modules/CopyHelperModule.html",[425,1.808,6234,4.888]],["body/modules/CopyHelperModule.html",[0,0.325,3,0.025,4,0.025,5,0.013,30,0.001,95,0.148,101,0.018,103,0.001,104,0.001,187,1.367,425,3.345,427,3.527,428,3.72,429,3.836,430,3.819,431,3.785,432,4.612,433,4.705,442,4.658,443,3.752,444,3.658,2997,10.008,6043,7.976,6234,9.911,6235,9.54,6236,9.54,6237,9.54,6238,8.813,6239,9.54,6240,8.813,6241,9.54]],["title/injectables/CopyHelperService.html",[105,0.89,2997,4.787]],["body/injectables/CopyHelperService.html",[0,0.232,3,0.018,4,0.018,5,0.01,7,0.105,8,1.125,26,1.421,27,0.441,29,0.843,30,0.001,31,0.709,32,0.149,33,0.531,35,1.283,47,0.937,95,0.146,101,0.013,103,0.001,104,0.001,105,1.229,107,1.63,144,1.862,187,0.976,217,1.628,227,1.332,234,1.105,247,2.702,329,2.007,472,6.263,564,4.583,905,3.87,1041,3.783,1911,4.204,2076,3.595,2433,4.437,2586,3.595,2997,6.612,3013,8.514,3044,8.607,3331,6.705,3651,6.292,6043,9.547,6057,8.07,6227,8.297,6228,6.292,6242,11.419,6243,6.811,6244,9.318,6245,9.318,6246,9.318,6247,9.318,6248,6.811,6249,9.318,6250,9.547,6251,6.811,6252,9.318,6253,6.811,6254,6.292,6255,6.811,6256,9.318,6257,6.811,6258,5.694,6259,6.811,6260,4.505,6261,6.811,6262,5.95,6263,4.833,6264,6.811,6265,6.811,6266,6.811,6267,6.811,6268,10.621,6269,6.811,6270,5.175,6271,6.811,6272,6.811,6273,6.811,6274,9.318,6275,6.811,6276,6.811,6277,6.811,6278,6.811,6279,6.811,6280,6.811,6281,6.811]],["title/classes/CopyMapper.html",[0,0.23,6282,5.438]],["body/classes/CopyMapper.html",[0,0.239,2,0.807,3,0.019,4,0.019,5,0.01,7,0.108,8,1.149,26,2.66,27,0.448,29,0.856,30,0.001,31,0.605,32,0.162,33,0.539,35,1.303,39,3.475,95,0.163,99,1.192,100,4.172,101,0.013,103,0.001,104,0.001,185,3.726,217,1.525,227,1.137,234,1.14,564,2.607,627,4.091,975,5.438,1130,5.663,1474,2.385,2675,4.671,2689,4.946,2691,4.175,3013,7.996,3040,5.488,4955,4.234,6042,9.036,6043,9.671,6057,5.338,6227,7.434,6254,6.489,6282,7.671,6283,7.025,6284,9.516,6285,9.516,6286,9.516,6287,9.671,6288,7.025,6289,9.969,6290,9.516,6291,9.671,6292,7.025,6293,9.969,6294,9.516,6295,7.025,6296,7.025,6297,8.791,6298,7.025,6299,7.025,6300,7.025,6301,7.025,6302,7.025,6303,7.025,6304,9.516,6305,9.516,6306,7.025,6307,7.025,6308,7.025,6309,9.516,6310,7.025,6311,7.025,6312,7.025,6313,7.025,6314,7.025,6315,8.791,6316,6.489]],["title/modules/CoreModule.html",[425,1.808,6317,4.462]],["body/modules/CoreModule.html",[0,0.275,3,0.021,4,0.021,5,0.011,30,0.001,95,0.162,101,0.015,103,0.001,104,0.001,187,1.156,204,3.965,379,1.859,425,3.391,427,2.982,428,3.145,429,3.244,430,3.229,431,3.201,432,2.982,433,4.358,438,6.515,442,4.193,443,3.173,444,3.093,449,4.193,1052,3.288,1492,4.862,3874,6.606,4571,8.719,6317,9.169,6318,8.067,6319,8.067,6320,8.067,6321,10.445,6322,10.833,6323,10.833,6324,8.067,6325,8.147,6326,8.407,6327,8.719,6328,9.634,6329,7.259,6330,10.428,6331,7.556,6332,7.729,6333,10.428,6334,7.259,6335,9.11,6336,9.634,6337,10.428,6338,8.719,6339,6.503]],["title/classes/County.html",[0,0.23,6340,5.64]],["body/classes/County.html",[0,0.345,2,0.887,3,0.02,4,0.02,5,0.011,7,0.119,27,0.499,29,0.613,30,0.001,31,0.718,32,0.168,33,0.386,47,0.984,55,2.231,83,3.051,95,0.13,96,2.089,101,0.022,103,0.001,104,0.001,127,0.976,165,0.8,240,3.765,334,0.851,369,2.242,370,3.776,371,2.795,380,2.121,398,2.263,399,3.97,400,3.39,402,3.179,404,1.397,405,2.083,406,2.468,591,3.304,592,3.408,620,4.962,621,5.871,622,4.962,623,5.871,1925,4.015,2136,4.058,2618,5.191,4293,5.486,4303,3.39,5640,5.739,5656,5.034,6340,11.197,6341,10.9,6342,6.749,6343,9.887,6344,9.887,6345,8.857,6346,7.726,6347,7.726,6348,7.726,6349,7.726,6350,8.477,6351,8.857,6352,8.857,6353,6.749,6354,6.749,6355,6.749,6356,6.749,6357,6.749,6358,6.749,6359,4.712,6360,6.749,6361,6.749,6362,6.036]],["title/entities/Course.html",[188,2.554,380,1.411]],["body/entities/Course.html",[0,0.13,3,0.01,4,0.01,5,0.005,7,0.161,26,2.183,27,0.501,30,0.001,31,0.525,32,0.169,33,0.573,34,0.654,39,2.021,47,0.891,62,3.532,83,3.364,95,0.147,96,1.03,101,0.012,103,0,104,0,111,1.508,116,3.385,127,0.482,144,2.859,145,2.801,148,1.874,165,0.478,188,3.777,192,2.56,208,1.414,214,1.254,217,1.569,227,1.232,234,1.859,240,3.665,305,1.743,329,3.376,334,0.42,347,1.234,364,2.239,369,2.705,370,3.126,371,1.05,379,2.16,380,1.267,381,1.254,386,4.307,394,3.461,398,1.116,399,2.372,400,1.672,402,1.568,404,0.689,405,1.027,406,1.218,461,2.16,475,1.909,535,2.062,565,3.197,618,1.622,686,2.08,701,1.331,770,3.57,844,4.247,905,1.583,922,3.329,1031,2.416,1218,2.704,1439,2.897,1474,1.294,1910,2.861,1919,2.515,1925,3.148,2116,2.062,2136,3.437,2674,4.976,2678,5.922,2682,2.08,2690,2.704,2692,2.382,3091,1.738,3285,2.324,3396,2.447,3554,3.521,3715,2.382,3739,4.006,3740,4.006,4013,2.896,4083,2.246,4227,2.085,4228,6.221,4243,3.329,4303,2.658,4641,2.562,4821,2.352,4926,2.793,4961,6.944,6270,2.896,6331,2.761,6363,3.521,6364,7.029,6365,6.405,6366,6.788,6367,5.771,6368,5.246,6369,6.788,6370,6.405,6371,6.922,6372,6.944,6373,5.595,6374,3.811,6375,3.811,6376,5.595,6377,3.946,6378,3.811,6379,5.595,6380,3.811,6381,7.932,6382,3.186,6383,3.811,6384,5.595,6385,3.811,6386,3.329,6387,3.811,6388,3.329,6389,3.811,6390,3.811,6391,6.962,6392,3.811,6393,5.595,6394,3.811,6395,3.811,6396,3.811,6397,2.382,6398,3.521,6399,3.521,6400,3.693,6401,4.388,6402,4.489,6403,3.186,6404,3.609,6405,2.562,6406,4.006,6407,2.352,6408,3.836,6409,2.137,6410,5.064,6411,5.291,6412,3.521,6413,3.186,6414,2.761,6415,3.521,6416,3.521,6417,3.329,6418,2.977,6419,3.521,6420,3.521,6421,3.072,6422,3.521,6423,3.693,6424,2.223,6425,5.461,6426,3.186,6427,4.14,6428,2.605,6429,2.382,6430,2.297,6431,3.186,6432,3.521,6433,3.521,6434,5.595,6435,5.595,6436,5.595,6437,7.179,6438,5.064,6439,4.731,6440,5.595,6441,4.602,6442,4.731,6443,2.896,6444,2.447,6445,4.071,6446,3.521,6447,3.521,6448,3.521,6449,5.595,6450,3.521,6451,3.521,6452,3.521,6453,3.521,6454,3.521,6455,3.521,6456,3.521,6457,3.521,6458,3.521,6459,3.521,6460,2.605,6461,2.414,6462,3.521,6463,3.329,6464,3.521,6465,6.962,6466,5.595,6467,3.521,6468,3.521,6469,3.186,6470,3.186,6471,2.653,6472,3.521,6473,6.301,6474,3.521,6475,3.521,6476,3.521,6477,3.521]],["title/controllers/CourseController.html",[481,2.63,6478,5.893]],["body/controllers/CourseController.html",[0,0.228,3,0.018,4,0.018,5,0.009,7,0.103,8,1.111,27,0.382,29,0.73,30,0.001,31,0.516,32,0.147,33,0.46,35,1.111,36,2.463,56,4.428,70,4.61,95,0.17,100,2.238,101,0.013,103,0.001,104,0.001,111,2.104,112,2.754,127,0.845,187,0.958,216,1.945,217,1.567,221,2.169,227,0.97,234,1.707,250,8.794,264,3.896,305,1.924,364,1.706,369,1.478,376,1.568,447,2.804,469,2.949,481,2.607,483,3.218,491,6.174,513,6.44,529,4.64,555,3.53,556,3.618,557,3.649,559,3.649,561,3.649,789,6.755,801,3.9,1008,5.021,1016,4.492,1028,8.041,1569,4.845,1828,4.69,2344,3.803,2686,4.896,2934,6.853,3710,4.03,4935,9.189,6424,5.366,6478,8.037,6479,6.686,6480,9.717,6481,6.686,6482,9.898,6483,9.898,6484,9.2,6485,6.686,6486,6.177,6487,7.245,6488,6.686,6489,6.184,6490,5.59,6491,3.985,6492,8.794,6493,6.686,6494,8.794,6495,6.177,6496,6.686,6497,5.59,6498,5.841,6499,6.686,6500,6.686,6501,6.686,6502,6.686,6503,6.686,6504,6.686,6505,6.686,6506,6.686,6507,5.841,6508,6.686,6509,6.686,6510,6.686,6511,6.686,6512,6.686,6513,5.59,6514,6.686]],["title/injectables/CourseCopyService.html",[105,0.89,6515,5.438]],["body/injectables/CourseCopyService.html",[0,0.17,3,0.013,4,0.013,5,0.007,7,0.077,8,0.9,10,2.014,26,1.862,27,0.44,29,0.841,30,0.001,31,0.646,32,0.181,33,0.53,35,1.196,36,2.152,39,2.392,47,0.543,83,1.501,95,0.143,99,0.846,101,0.01,103,0,104,0,105,0.983,107,1.194,111,2.609,112,2.717,127,0.942,138,3.237,145,1.287,185,2.919,187,0.714,188,4.939,192,1.487,216,2.056,217,1.706,221,2.907,227,1.044,234,1.21,247,1.979,318,4.17,369,1.103,441,7.027,450,2.052,461,2.792,564,4.397,1041,4.14,1062,2.177,1474,1.693,1958,6.78,1984,3.817,2563,3.118,2675,4.381,2723,4.02,2983,9.635,2985,4.17,2994,8.541,2997,8.178,3003,3.79,3013,7.355,3021,10.271,3025,3.896,3026,3.079,3027,2.85,3033,8.244,3039,4.17,3040,3.896,3041,4.02,3061,3.79,4961,3.696,5451,3.79,6057,3.79,6227,3.896,6250,6.232,6262,7.796,6364,3.352,6365,3.409,6369,3.614,6372,3.696,6515,6.008,6516,11.119,6517,7.461,6518,7.453,6519,7.453,6520,7.453,6521,4.17,6522,9.29,6523,4.987,6524,4.987,6525,4.607,6526,7.453,6527,9.901,6528,4.987,6529,7.453,6530,12.332,6531,4.987,6532,11.119,6533,7.453,6534,4.987,6535,4.607,6536,4.987,6537,8.543,6538,6.511,6539,3.79,6540,4.607,6541,4.987,6542,4.987,6543,4.987,6544,4.987,6545,4.987,6546,4.607,6547,4.987,6548,4.987,6549,4.987,6550,4.987,6551,4.987,6552,7.453,6553,4.987,6554,7.453,6555,4.987,6556,4.17,6557,4.987,6558,4.987,6559,4.987,6560,4.987,6561,4.987,6562,4.987,6563,4.357,6564,4.987,6565,4.987,6566,4.987,6567,7.453,6568,4.987,6569,4.987,6570,4.987,6571,4.987,6572,4.987,6573,4.987]],["title/injectables/CourseCopyUC.html",[105,0.89,6574,5.64]],["body/injectables/CourseCopyUC.html",[0,0.262,3,0.02,4,0.02,5,0.011,7,0.119,8,1.223,26,2.722,27,0.469,29,0.803,30,0.001,31,0.568,32,0.142,33,0.506,35,1.223,36,2.201,39,2.715,95,0.164,99,1.309,101,0.015,103,0.001,104,0.001,105,1.336,107,1.846,111,2.494,112,2.537,127,1.28,148,2.386,187,1.105,216,1.873,217,1.336,221,2.387,227,0.813,234,1.251,305,2.219,347,1.572,766,3.315,843,3.366,1415,6.815,1439,3.688,1828,4.515,1865,5.304,1866,4.365,1880,5.024,1887,6.251,1952,6.442,2027,5.024,2171,3.315,2172,3.688,2173,3.557,2174,4.885,2675,6.121,2767,3.477,3013,5.101,3026,4.76,3027,4.407,6022,5.716,6515,10.516,6517,8.467,6574,8.467,6575,11.092,6576,6.737,6577,11.092,6578,7.711,6579,7.711,6580,7.711,6581,9.355,6582,7.711,6583,7.711,6584,7.711,6585,6.737,6586,7.124,6587,6.737,6588,6.737,6589,4.885]],["title/injectables/CourseExportUc.html",[105,0.89,6494,5.64]],["body/injectables/CourseExportUc.html",[0,0.281,3,0.022,4,0.022,5,0.012,7,0.127,8,1.279,26,2.767,27,0.44,29,0.84,30,0.001,31,0.594,32,0.149,33,0.529,35,0.998,36,2.302,39,3.305,95,0.163,99,1.403,101,0.016,103,0.001,104,0.001,105,1.397,107,1.978,111,2.119,112,2.623,127,1.339,187,1.184,216,1.959,221,1.949,227,0.871,843,3.608,1865,5.548,1866,4.678,1881,5.236,1952,7.114,2027,5.386,2675,5.2,2767,3.727,4929,10.308,4931,6.539,4935,9.254,4945,6.615,4946,8.428,4950,9.786,4969,4.678,6022,6.127,6494,8.857,6575,10.799,6590,8.266,6591,8.266,6592,8.266,6593,10.593,6594,8.266,6595,8.266,6596,8.266,6597,7.221,6598,7.636,6599,8.266]],["title/classes/CourseFactory.html",[0,0.23,6600,5.64]],["body/classes/CourseFactory.html",[0,0.15,2,0.506,3,0.012,4,0.012,5,0.006,7,0.068,8,0.82,27,0.538,29,1.02,30,0.001,31,0.7,32,0.183,33,0.616,34,1.42,35,1.413,47,0.494,55,2.748,59,3.115,95,0.129,99,0.748,101,0.008,103,0,104,0,127,0.557,138,2.947,144,3.117,148,1.364,165,0.536,185,4.945,188,3.134,192,1.314,216,1.255,217,1.575,227,1.058,234,1.101,329,3.359,359,2.354,366,2.427,379,2.314,380,2.1,381,2.234,404,1.227,538,3.043,596,3.794,627,2.113,660,7.018,661,4.467,662,5.211,665,3.805,666,5.211,667,5.492,668,3.805,669,3.805,670,3.805,671,3.737,672,4.206,673,4.64,674,6.383,675,5.526,676,6.841,677,2.495,682,2.471,683,3.805,684,2.495,685,4.868,686,5.073,687,4.312,688,4.907,689,3.77,690,2.471,691,2.309,692,3.95,693,2.406,694,2.365,695,2.471,696,4.794,697,2.495,698,4.556,699,2.471,700,7.149,701,3.983,702,6.393,703,2.495,704,4.09,705,2.471,706,2.495,707,2.471,708,2.495,709,2.471,710,2.792,711,2.627,712,2.471,713,5.836,714,2.495,715,2.471,716,3.805,717,3.737,718,3.805,719,2.495,720,2.385,721,2.365,722,1.944,723,2.471,724,2.471,725,2.471,726,2.495,727,2.495,728,1.726,729,2.471,730,2.495,731,2.658,732,2.471,733,2.495,735,2.545,736,2.598,737,5.539,848,3.128,849,3.349,1841,3.194,3739,6.149,4961,5.03,5512,5.157,6364,2.963,6370,4.64,6372,6.889,6410,3.685,6600,6.919,6601,4.408,6602,9.295,6603,6.27,6604,6.787,6605,4.408,6606,4.408,6607,6.27,6608,4.408,6609,4.072,6610,6.787,6611,4.408,6612,4.408,6613,3.444,6614,3.553,6615,8.276,6616,3.444,6617,5.03,6618,4.072,6619,4.408,6620,4.408,6621,4.408,6622,3.444]],["title/entities/CourseGroup.html",[380,1.411,6404,4.02]],["body/entities/CourseGroup.html",[0,0.227,3,0.018,4,0.018,5,0.009,7,0.189,26,2.363,27,0.47,30,0.001,31,0.635,32,0.176,39,1.79,47,0.824,62,3.893,95,0.167,96,1.804,101,0.018,103,0.001,104,0.001,116,2.975,144,1.825,145,2.372,148,2.065,165,0.829,188,4.981,192,3.376,204,2.29,208,2.477,214,2.197,217,0.88,227,0.704,234,1.491,240,3.293,309,3.778,329,1.967,334,1.012,364,2.099,380,1.922,381,2.197,398,1.955,399,3.599,400,2.929,402,2.746,404,1.207,405,1.799,406,2.133,461,2.118,844,5.133,957,3.778,1218,4.737,1277,3.443,1910,3.153,2136,2.672,2478,3.815,2510,4.228,2674,5.627,2675,4.511,2678,5.015,2682,3.643,2688,3.893,2690,4.737,2692,4.173,2705,4.349,2835,3.978,2881,3.043,3061,5.072,3394,4.563,4227,2.298,4303,2.929,4926,4.238,6045,5.215,6366,4.837,6370,7.74,6400,5.604,6404,5.477,6406,6.079,6407,4.12,6408,5.821,6409,3.743,6425,6.659,6429,4.173,6431,5.581,6444,4.287,6445,7.064,6473,5.581,6623,6.166,6624,5.831,6625,6.675,6626,6.675,6627,4.487,6628,6.166,6629,6.675,6630,6.675,6631,6.675,6632,7.683,6633,4.12,6634,4.416,6635,6.166,6636,6.166,6637,4.837,6638,6.166,6639,6.166,6640,6.166,6641,6.166,6642,6.166,6643,6.166]],["title/classes/CourseGroupFactory.html",[0,0.23,6644,6.231]],["body/classes/CourseGroupFactory.html",[0,0.167,2,0.564,3,0.013,4,0.013,5,0.007,7,0.075,8,0.889,27,0.535,29,1.032,30,0.001,31,0.708,32,0.185,33,0.623,34,1.517,35,1.456,47,0.536,55,2.702,59,3.267,95,0.135,99,0.833,101,0.009,103,0,104,0,127,0.62,138,3.198,144,3.223,148,1.519,165,0.581,185,4.884,188,1.859,216,1.362,217,1.166,227,0.776,329,3.474,359,2.554,366,2.702,379,2.038,380,2.202,381,2.424,404,1.331,538,3.302,596,3.88,627,2.293,660,7.151,661,4.657,662,5.507,665,4.129,666,5.507,667,5.662,668,4.129,669,4.129,670,4.129,671,4.055,672,4.492,673,4.956,674,6.434,675,5.795,676,6.979,677,2.778,682,2.752,683,4.129,684,2.778,685,5.145,686,5.361,687,4.557,688,5.185,689,4.091,690,2.752,691,2.571,692,4.118,693,2.679,694,2.633,695,2.752,696,5.067,697,2.778,698,4.866,699,2.752,700,7.084,701,4.118,702,6.611,703,2.778,704,4.368,705,2.752,706,2.778,707,2.752,708,2.778,709,2.752,710,3.109,711,2.925,712,2.752,713,6.085,714,2.778,715,2.752,716,4.129,717,4.055,718,4.129,719,2.778,720,2.656,721,2.633,722,2.165,723,2.752,724,2.752,725,2.752,726,2.778,727,2.778,728,1.922,729,2.752,730,2.778,731,2.884,732,2.752,733,2.778,735,2.833,736,2.893,737,2.925,848,3.483,849,3.729,6370,5.035,6404,4.389,6600,4.104,6603,6.803,6607,6.803,6609,4.534,6618,4.534,6632,4.104,6644,8.166,6645,4.908,6646,4.908,6647,4.534,6648,4.908,6649,4.534]],["title/injectables/CourseGroupRepo.html",[105,0.89,1956,5.27]],["body/injectables/CourseGroupRepo.html",[0,0.231,3,0.018,4,0.018,5,0.01,7,0.104,8,1.121,10,3.75,12,4.283,13,6.589,18,4.589,26,2.635,27,0.524,29,0.978,30,0.001,31,0.691,32,0.173,33,0.616,34,1.163,35,1.489,36,2.794,39,1.817,40,4.469,42,6.589,47,0.771,49,2.642,95,0.146,96,1.832,97,2.883,98,4.038,99,1.15,101,0.013,103,0.001,104,0.001,105,1.225,107,1.622,112,3.033,187,0.971,188,3.516,217,1.397,221,2.686,227,1.201,234,1.1,380,1.418,381,3.056,404,1.679,596,3.461,692,4.963,877,7.363,883,3.893,884,4.386,885,5.27,908,4.132,909,4.183,910,4.132,911,4.183,913,4.132,914,4.183,915,3.731,921,5.149,1956,7.254,3639,4.633,5784,6.646,6366,8.256,6370,4.633,6404,6.79,6650,6.776,6651,8.578,6652,8.578,6653,6.776,6654,7.055,6655,6.776,6656,6.776,6657,6.776,6658,5.149,6659,6.776,6660,9.285]],["title/injectables/CourseGroupRule.html",[105,0.89,1957,5.438]],["body/injectables/CourseGroupRule.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.197,27,0.462,29,0.883,30,0.001,31,0.624,32,0.156,33,0.556,35,1.197,95,0.158,101,0.014,103,0.001,104,0.001,105,1.308,107,1.788,111,1.494,116,4.106,127,0.944,187,1.07,199,4.527,214,2.458,215,2.417,216,1.834,217,1.564,227,1.045,347,2.417,380,2.749,461,3.067,806,3.147,1862,6.527,1865,5.193,1866,6.299,1880,4.866,1890,8.035,1893,8.661,1911,4.61,1928,7.319,1957,7.992,1959,9.593,1989,6.12,2033,6.46,2056,5.02,3352,6.664,3353,5.105,3356,6.558,3358,5.105,3359,5.02,3360,6.778,6370,5.105,6404,7.833,6661,11.856,6662,7.468,6663,7.468,6664,7.468,6665,7.468,6666,6.524,6667,6.524,6668,6.244,6669,6.524]],["title/injectables/CourseGroupService.html",[105,0.89,6670,6.231]],["body/injectables/CourseGroupService.html",[0,0.306,3,0.024,4,0.024,5,0.013,7,0.138,8,1.349,26,2.652,27,0.463,29,0.886,30,0.001,31,0.626,32,0.157,33,0.558,35,1.085,36,2.427,39,2.409,95,0.156,99,1.525,101,0.017,103,0.001,104,0.001,105,1.473,107,2.151,112,2.725,116,3.933,127,1.136,187,1.287,215,2.909,216,1.662,217,1.185,221,2.632,227,0.947,450,3.697,1956,9.928,2570,6.042,5784,6.513,6366,6.511,6670,10.315,6671,8.986,6672,11.167,6673,7.85,6674,8.986,6675,11.167,6676,8.986,6677,8.986,6678,8.986,6679,8.986,6680,8.986]],["title/classes/CourseMapper.html",[0,0.23,6498,5.893]],["body/classes/CourseMapper.html",[0,0.32,2,1.08,3,0.025,4,0.025,5,0.013,7,0.145,8,1.387,27,0.39,29,0.746,30,0.001,31,0.527,32,0.132,33,0.47,35,1.136,95,0.147,99,1.596,100,3.845,101,0.018,103,0.001,104,0.001,188,5.014,217,1.515,227,0.991,234,1.526,627,3.861,982,4.713,6498,10.033,6681,9.406,6682,11.485,6683,11.485,6684,9.406,6685,10.796,6686,9.406,6687,9.406,6688,9.406,6689,9.406,6690,9.406,6691,9.406,6692,9.406,6693,9.406,6694,9.406]],["title/classes/CourseMetadataListResponse.html",[0,0.23,6497,5.64]],["body/classes/CourseMetadataListResponse.html",[0,0.305,2,0.738,3,0.017,4,0.017,5,0.009,7,0.099,26,1.869,27,0.486,29,0.51,30,0.001,31,0.361,32,0.181,33,0.585,34,1.912,47,0.906,55,2.986,56,5.839,59,2.779,70,6.078,83,3.819,95,0.132,99,1.091,101,0.017,103,0.001,104,0.001,127,1.132,145,1.66,163,3.694,165,0.707,188,3.902,240,2.015,364,2.065,375,4.521,376,1.508,379,2.869,404,1.619,467,3.261,469,2.836,475,3.222,596,3.384,618,2.736,728,2.518,1007,7.682,1008,6.62,1009,5.118,1011,3.422,1013,4.725,1014,3.156,1015,3.572,1016,2.296,1017,4.563,1018,5.834,1019,5.223,1020,4.253,1021,5.483,1022,4.563,1023,4.563,1025,4.073,1026,3.572,1474,3.977,1666,4.476,2282,4.322,2594,4.915,2789,3.394,2910,3.509,2911,3.509,3715,6.441,6364,4.322,6365,7.044,6369,7.466,6372,7.637,6437,5.376,6439,5.023,6441,4.886,6471,7.172,6497,7.487,6685,10.405,6695,8.272,6696,5.94,6697,6.43,6698,6.43,6699,5.183,6700,5.023,6701,7.617,6702,5.023,6703,5.94,6704,5.023,6705,5.023,6706,4.02,6707,4.659,6708,5.183]],["title/classes/CourseMetadataResponse.html",[0,0.23,6685,5.64]],["body/classes/CourseMetadataResponse.html",[0,0.286,2,0.676,3,0.016,4,0.016,5,0.008,7,0.09,26,2.236,27,0.515,29,0.467,30,0.001,31,0.33,32,0.177,33,0.606,34,2.13,47,0.986,55,2.16,56,4.049,59,3.047,70,4.215,83,4.111,95,0.126,99,0.999,101,0.016,103,0.001,104,0.001,127,1.063,163,2.653,165,0.664,188,4.463,240,2.636,364,2.249,375,4.346,376,1.38,379,2.797,404,1.064,467,3.168,469,2.596,475,4.215,618,2.504,728,3.294,1007,5.192,1008,3.211,1009,3.363,1013,4.912,1021,5.7,1025,3.727,1026,3.269,1474,4.403,1480,5.504,1666,5.855,2282,5.654,2381,4.597,2594,5.474,2789,3.106,2910,4.59,2911,4.59,3715,7.586,6364,5.654,6365,8.295,6369,8.792,6372,8.994,6437,4.92,6439,4.597,6441,4.471,6471,8.446,6497,4.92,6685,9.474,6695,11.668,6696,5.436,6699,4.744,6700,4.597,6701,8.483,6702,6.571,6703,7.771,6704,6.571,6705,6.571,6706,5.258,6707,6.095,6708,6.781,6709,5.884,6710,5.884,6711,5.884,6712,5.884,6713,5.884,6714,5.884,6715,5.884,6716,5.884]],["title/entities/CourseNews.html",[380,1.411,6717,5]],["body/entities/CourseNews.html",[0,0.342,3,0.014,4,0.024,5,0.007,7,0.173,9,3.642,26,2.096,27,0.213,30,0.001,31,0.427,32,0.141,34,0.881,47,0.889,83,2.292,95,0.153,96,2.454,101,0.02,103,0,104,0,165,0.847,188,3.438,192,3.199,208,1.905,227,0.541,234,1.473,240,3.645,334,0.566,364,0.952,369,2.572,370,3.881,380,2.244,381,1.69,398,1.504,399,2.982,400,2.253,404,1.816,405,2.707,406,1.64,461,2.473,571,5.675,574,4.116,595,1.768,617,5.241,627,1.598,672,4.614,731,3.555,769,4.538,843,2.241,844,5.095,854,3.843,1031,2.441,1298,4.263,1299,4.66,1300,4.212,1301,4.456,1302,4.871,1474,3.082,1492,4.59,1910,3.597,1916,2.487,1932,3.899,1991,2.778,2344,3.753,2572,3.297,2620,5.295,2674,4.163,2688,2.994,2744,5.687,2789,2.71,3394,3.51,3396,3.297,3397,3.396,3399,3.643,3400,3.573,3401,3.805,3415,3.297,3547,3.451,3573,3.345,4227,1.768,4319,3.901,4320,3.72,4926,4.187,4996,3.805,5011,3.643,5554,6.578,6110,2.852,6329,3.573,6407,3.169,6409,2.878,6430,3.094,6633,4.701,6717,5.645,6718,4.138,6719,5.134,6720,4.701,6721,4.138,6722,6.729,6723,5.83,6724,4.138,6725,8.779,6726,5.038,6727,4.871,6728,5.645,6729,5.645,6730,6.554,6731,7.419,6732,4.138,6733,5.404,6734,4.138,6735,3.901,6736,3.901,6737,4.891,6738,4.138,6739,4.138,6740,3.901,6741,4.138,6742,3.805,6743,4.138,6744,3.059,6745,3.169,6746,3.901,6747,4.138,6748,4.138,6749,7.092,6750,4.138,6751,7.319,6752,4.138,6753,4.138,6754,5.787,6755,3.901,6756,6.32,6757,4.01,6758,4.962,6759,3.901,6760,3.72,6761,3.901,6762,4.138]],["title/classes/CourseQueryParams.html",[0,0.23,6483,5.893]],["body/classes/CourseQueryParams.html",[0,0.391,2,1.08,3,0.025,4,0.025,5,0.013,7,0.145,27,0.39,30,0.001,32,0.132,95,0.159,101,0.024,103,0.001,104,0.001,165,0.906,364,1.744,368,4.537,369,2.539,370,3.832,371,3.166,374,3.005,376,2.206,379,2.168,467,3.087,470,4.839,472,6.322,1031,3.681,1578,8.513,4931,5.806,4945,7.105,4946,9.052,4969,5.324,6483,10.033,6763,9.406,6764,9.406,6765,9.406,6766,9.406]],["title/injectables/CourseRepo.html",[105,0.89,1958,4.113]],["body/injectables/CourseRepo.html",[0,0.224,3,0.011,4,0.011,5,0.006,7,0.065,8,0.796,10,2.66,12,3.038,18,3.255,26,2.778,27,0.49,29,0.917,30,0.001,31,0.648,32,0.174,33,0.578,34,1.131,35,1.396,36,2.723,39,3.45,40,3.171,56,3.171,58,4.172,59,3.061,83,1.276,95,0.126,96,1.146,98,2.527,99,0.72,101,0.008,103,0,104,0,105,0.869,107,1.015,112,2.973,138,3.954,144,1.159,187,0.607,188,4.475,217,1.739,221,2.46,227,1.288,234,1.6,277,4.359,329,1.249,347,1.343,369,1.456,371,1.169,380,0.887,381,2.168,398,1.242,404,1.46,596,2.765,692,4.484,701,3.933,877,6.352,883,2.762,884,3.112,885,4.019,908,2.586,909,2.618,910,2.586,911,2.618,913,2.586,914,2.618,915,2.335,964,4.503,1121,2.952,1958,4.017,2185,5.154,2432,3.925,2675,3.233,3639,2.899,3644,3.705,3740,6.023,4425,6.753,4428,3.705,4628,6.023,4961,6.749,5784,6.087,5786,6.462,5899,6.741,6366,3.073,6370,2.899,6371,5.31,6372,4.882,6424,6.087,6487,4.017,6658,3.222,6767,3.918,6768,6.587,6769,7.055,6770,6.587,6771,6.085,6772,6.085,6773,4.241,6774,7.406,6775,6.723,6776,4.241,6777,4.241,6778,4.241,6779,6.085,6780,4.241,6781,4.241,6782,6.085,6783,4.241,6784,4.241,6785,5.986,6786,10.323,6787,3.918,6788,6.085,6789,7.613,6790,3.918,6791,3.918,6792,3.918,6793,4.585,6794,6.085,6795,6.085,6796,3.419,6797,3.918,6798,3.918,6799,3.918,6800,5.754,6801,6.085,6802,6.085,6803,6.085,6804,7.955,6805,4.882,6806,4.882,6807,7.461,6808,3.918,6809,3.705,6810,3.918,6811,3.918,6812,3.918]],["title/injectables/CourseRule.html",[105,0.89,1959,5]],["body/injectables/CourseRule.html",[0,0.263,3,0.02,4,0.02,5,0.011,7,0.119,8,1.225,27,0.47,29,0.898,30,0.001,31,0.635,32,0.159,33,0.566,35,1.225,95,0.154,101,0.015,103,0.001,104,0.001,105,1.337,107,1.849,116,4.145,127,0.976,187,1.107,188,5.014,199,4.588,214,2.543,215,2.501,216,1.429,217,1.493,227,1.069,347,2.449,380,2.77,461,3.116,806,3.255,1862,6.615,1865,5.928,1866,5.739,1881,4.894,1890,8.112,1911,4.769,1928,7.417,1959,7.515,1989,6.259,2033,6.606,2056,5.193,3352,6.815,3353,5.282,3356,6.707,3358,5.282,3359,5.193,3360,6.932,4961,7.515,6370,5.282,6371,8.174,6813,7.726,6814,7.726,6815,7.726,6816,7.726,6817,7.726]],["title/classes/CourseScope.html",[0,0.23,6786,5.893]],["body/classes/CourseScope.html",[0,0.237,2,0.523,3,0.012,4,0.012,5,0.006,7,0.07,8,0.841,26,2.753,27,0.5,29,0.852,30,0.001,31,0.602,32,0.166,33,0.537,34,0.782,35,1.35,36,2.335,39,3.44,40,2.194,56,3.352,58,4.411,83,1.372,95,0.131,96,1.232,98,2.716,99,0.774,101,0.009,103,0,104,0,105,0.918,111,2.149,112,2.41,144,1.246,148,1.41,165,0.549,187,0.653,188,4.232,217,1.757,221,2.533,227,1.31,234,1.654,277,5.089,329,1.343,347,2.077,369,1.008,371,1.256,398,1.335,404,1.528,529,2.011,596,3.095,701,3.304,877,4.061,885,2.268,964,4.76,1121,3.173,1958,2.779,2185,5.354,2432,6.072,2675,3.418,3639,3.116,3644,3.982,3740,6.257,4425,3.811,4628,4.606,4961,7.011,5784,6.265,5786,6.713,5872,4.76,5873,4.76,5874,4.76,5879,4.76,5880,4.76,5881,3.173,5882,3.116,5883,3.173,5884,3.173,5893,3.116,5894,4.76,5895,3.173,5896,3.116,5897,3.173,5898,3.116,5899,6.966,6366,3.303,6370,3.116,6371,5.613,6372,5.161,6424,6.265,6487,4.246,6658,3.463,6767,4.21,6769,3.982,6772,4.21,6774,4.941,6775,5.216,6779,4.21,6782,4.21,6785,6.263,6786,11.302,6787,6.432,6788,6.432,6789,7.909,6790,6.432,6791,6.432,6792,8.738,6793,4.847,6794,6.432,6795,6.432,6796,3.674,6797,6.432,6798,4.21,6799,4.21,6800,6.083,6801,6.432,6802,6.432,6803,6.432,6804,8.263,6805,5.161,6806,5.161,6807,7.806,6808,4.21,6809,3.982,6810,4.21,6811,4.21,6812,4.21,6818,6.963,6819,6.963,6820,6.963,6821,6.963,6822,4.558,6823,4.558,6824,4.558,6825,4.558,6826,4.558]],["title/injectables/CourseService.html",[105,0.89,130,4.888]],["body/injectables/CourseService.html",[0,0.288,3,0.022,4,0.022,5,0.012,7,0.13,8,1.298,12,4.958,26,2.782,27,0.49,29,0.937,30,0.001,31,0.663,32,0.166,33,0.59,35,1.298,36,2.702,39,2.267,95,0.151,99,1.435,101,0.016,103,0.001,104,0.001,105,1.418,107,2.024,112,2.943,116,3.825,127,1.069,130,7.788,187,1.211,188,4.07,215,2.737,216,1.564,217,1.115,221,2.534,227,1.133,450,3.479,1958,7.582,2570,5.816,2675,4.151,5784,6.269,6424,4.932,6673,7.388,6827,8.457,6828,10.749,6829,8.457,6830,10.749,6831,8.457,6832,10.749,6833,8.457,6834,8.457,6835,8.457,6836,8.457,6837,8.457,6838,8.457]],["title/injectables/CourseUc.html",[105,0.89,6492,5.64]],["body/injectables/CourseUc.html",[0,0.3,3,0.023,4,0.023,5,0.012,7,0.136,8,1.334,26,2.636,27,0.458,29,0.876,30,0.001,31,0.619,32,0.155,33,0.552,35,1.066,36,2.4,39,2.367,59,2.74,95,0.162,98,5.261,99,1.498,101,0.017,103,0.001,104,0.001,105,1.456,107,2.113,127,1.116,187,1.265,188,3.343,215,2.858,216,1.633,227,0.93,450,3.632,469,3.894,592,3.894,701,4.411,1028,8.962,1958,8.088,2185,4.997,6487,5.384,6492,9.234,6521,7.381,6546,8.155,6839,8.828,6840,11.044,6841,8.828,6842,11.044,6843,8.828,6844,5.752,6845,7.117]],["title/classes/CourseUrlParams.html",[0,0.23,6482,5.893]],["body/classes/CourseUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,188,4.438,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,2675,6.175,3834,5.672,6482,10.238,6846,9.724,6847,9.724]],["title/classes/CreateCardBodyParams.html",[0,0.23,4855,5.893]],["body/classes/CreateCardBodyParams.html",[0,0.39,2,1.078,3,0.025,4,0.025,5,0.013,7,0.144,27,0.39,30,0.001,32,0.132,33,0.573,95,0.159,99,1.593,101,0.018,103,0.001,104,0.001,165,0.905,364,1.74,368,3.707,369,2.738,371,3.161,374,2.998,375,4.653,376,2.201,471,4.88,1031,3.676,1044,4.606,2489,6.555,3773,10.356,3774,7.639,4855,10.019,5418,7.265,6848,11.469,6849,8.669,6850,8.139,6851,9.384,6852,9.384]],["title/classes/CreateContentElementBodyParams.html",[0,0.23,4009,5.893]],["body/classes/CreateContentElementBodyParams.html",[0,0.362,2,0.957,3,0.022,4,0.022,5,0.012,7,0.128,27,0.442,30,0.001,32,0.19,33,0.532,55,2.721,95,0.15,99,1.415,101,0.016,103,0.001,104,0.001,165,0.84,329,3.138,364,1.974,368,4.885,369,2.354,370,4.126,371,3.602,374,2.663,375,4.321,376,1.955,379,2.455,467,2.863,471,4.531,1031,3.413,1044,4.091,1145,8.904,1295,6.147,2344,4.851,2594,5.455,2809,6.528,2915,5.622,3437,5.915,3442,6.039,3774,7.669,3822,8.917,4009,9.303,5419,8.585,6850,5.915,6853,11.736,6854,6.968,6855,8.334,6856,9.838,6857,8.334,6858,8.334,6859,8.334]],["title/interfaces/CreateJwtParams.html",[334,0.743,6860,5.893]],["body/interfaces/CreateJwtParams.html",[0,0.247,3,0.019,4,0.019,5,0.01,7,0.112,30,0.001,32,0.183,33,0.679,47,1.026,85,7.868,95,0.125,101,0.014,103,0.001,104,0.001,116,3.151,165,0.768,217,1.547,227,1.026,334,0.801,336,1.77,565,5.139,627,3.031,1646,5.676,1648,5.385,1671,6.075,1683,4.283,1687,5.521,1691,4.485,1812,6.908,1827,7.215,4474,7.397,6054,8.677,6860,9.59,6861,6.712,6862,9.552,6863,10.223,6864,9.552,6865,11.626,6866,10.522,6867,8.993,6868,6.712,6869,6.712,6870,6.712,6871,6.712,6872,8.504,6873,6.712,6874,8.993,6875,8.993,6876,6.712,6877,6.347,6878,6.347,6879,6.712,6880,8.993,6881,6.712,6882,6.712,6883,6.712,6884,6.712,6885,6.712,6886,5.676,6887,5.676,6888,6.347,6889,6.712,6890,6.712,6891,6.712,6892,6.712]],["title/interfaces/CreateJwtPayload.html",[334,0.743,1794,5.438]],["body/interfaces/CreateJwtPayload.html",[3,0.022,4,0.022,5,0.012,7,0.129,30,0.001,32,0.184,33,0.62,39,3.326,47,1.033,48,5.824,55,2.355,85,7.755,101,0.02,103,0.001,104,0.001,165,0.845,334,1.18,336,2.048,347,2.401,355,3.305,404,1.519,461,1.937,575,5.008,956,5.476,1687,6.386,1691,5.188,1794,9.498,1813,6.089,1827,6.229,1919,4.446,2488,8.48,3110,6.009,4227,4.271,4641,5.649,4997,5.476,6054,5.964,6862,6.565,6864,6.565,6886,6.565,6887,6.565,6893,7.764,6894,7.764,6895,6.775,6896,5.397,6897,7.342]],["title/classes/CreateNewsParams.html",[0,0.23,6898,5.438]],["body/classes/CreateNewsParams.html",[0,0.325,2,0.812,3,0.019,4,0.019,5,0.01,7,0.109,27,0.503,30,0.001,32,0.17,33,0.478,34,1.641,47,0.945,83,2.877,95,0.149,99,1.201,100,3.201,101,0.013,103,0.001,104,0.001,165,0.754,364,2.246,374,2.26,375,3.879,376,1.659,379,2.993,380,2.783,467,3.257,469,3.121,470,4.563,471,4.068,475,3.544,999,6.427,1000,4.089,1031,2.267,1035,6.655,1044,3.472,1295,5.519,1474,4.113,1848,6.427,2344,5.008,2744,5.172,2778,6.229,2910,5.218,2911,5.218,3242,3.765,6046,6.536,6723,6.955,6726,7.164,6730,6.316,6731,7.745,6793,6.655,6898,7.708,6899,12.488,6900,6.18,6901,7.469,6902,7.539,6903,7.074,6904,6.535,6905,6.18,6906,7.708,6907,7.994,6908,7.265,6909,6.535,6910,6.535,6911,7.558,6912,7.074,6913,7.074,6914,6.928,6915,7.074,6916,5.703,6917,7.074,6918,7.086,6919,6.535,6920,6.535]],["title/classes/CreateSubmissionItemBodyParams.html",[0,0.23,6921,5.893]],["body/classes/CreateSubmissionItemBodyParams.html",[0,0.394,2,1.096,3,0.025,4,0.025,5,0.013,7,0.147,27,0.396,30,0.001,32,0.134,95,0.148,101,0.018,103,0.001,104,0.001,165,0.914,347,2.645,364,1.768,368,4.576,369,2.561,373,6.115,374,3.048,376,2.238,379,2.199,467,3.114,2881,5.916,3247,8.012,6921,10.12,6922,9.339,6923,11.584,6924,8.813,6925,8.334,6926,10.12,6927,9.339,6928,8.813]],["title/classes/CurrentUserMapper.html",[0,0.23,6929,5.126]],["body/classes/CurrentUserMapper.html",[0,0.245,2,0.827,3,0.019,4,0.019,5,0.01,7,0.111,8,1.169,27,0.454,29,0.867,30,0.001,31,0.613,32,0.153,33,0.546,34,1.236,35,1.32,39,2.93,47,0.987,48,6.201,59,3.003,85,7.621,95,0.161,99,1.222,101,0.014,103,0.001,104,0.001,227,1.152,231,4.157,234,1.169,305,2.072,334,0.793,461,3.076,491,6.295,496,4.077,503,4.34,558,3.423,627,4.112,738,6.308,1813,8.833,1820,6.02,3110,5.294,4092,4.923,4227,3.763,5868,5.218,6929,7.352,6930,11.684,6931,6.29,6932,9.676,6933,9.676,6934,9.676,6935,9.676,6936,7.201,6937,9.676,6938,6.613,6939,7.201,6940,9.676,6941,7.201,6942,6.867,6943,5.625,6944,7.201,6945,5.805,6946,7.201,6947,6.652,6948,6.29,6949,6.02,6950,7.201,6951,7.201,6952,7.201,6953,7.201,6954,7.201,6955,6.02,6956,7.201]],["title/interfaces/CustomLtiProperty.html",[334,0.743,6957,5.893]],["body/interfaces/CustomLtiProperty.html",[0,0.188,3,0.015,4,0.015,5,0.008,7,0.085,26,1.675,30,0.001,31,0.531,32,0.133,47,0.977,49,3.129,95,0.133,96,2.169,97,2.346,101,0.021,103,0,104,0,116,2.598,144,2.841,145,2.072,150,2.022,165,0.633,216,1.02,227,0.581,234,0.895,236,3.216,240,4.279,329,3.254,334,0.607,336,1.343,347,2.251,369,2.932,370,4.539,371,3.656,380,1.679,394,4.587,398,1.615,399,3.143,400,2.419,402,2.268,404,0.997,405,1.486,406,1.761,540,5.815,701,1.926,853,2.802,1019,4.681,1031,3.54,1576,3.323,1680,6.469,1696,3.151,1925,2.865,2076,5.831,2136,2.207,2400,3.151,2586,2.91,2674,2.528,3110,2.671,4303,2.419,6090,3.063,6413,4.61,6426,4.61,6957,8.267,6958,5.093,6959,6.71,6960,7.629,6961,7.414,6962,7.414,6963,5.093,6964,5.093,6965,7.414,6966,5.093,6967,5.093,6968,6.077,6969,7.414,6970,7.414,6971,5.093,6972,4.086,6973,4.307,6974,3.492,6975,4.189,6976,3.492,6977,6.71,6978,3.541,6979,4.307,6980,4.307,6981,4.086,6982,5.093,6983,5.093,6984,4.445,6985,4.307,6986,5.093,6987,3.913,6988,4.307,6989,3.492,6990,4.086,6991,3.286,6992,3.541,6993,3.995,6994,4.445,6995,4.307,6996,4.61,6997,4.61,6998,5.093,6999,4.189,7000,4.445,7001,4.61,7002,5.093,7003,4.189,7004,4.445,7005,4.307,7006,4.445,7007,4.189,7008,4.445,7009,4.61,7010,5.093,7011,4.61,7012,5.093,7013,4.61,7014,5.093,7015,5.093,7016,5.093,7017,5.093,7018,4.61,7019,5.093,7020,4.61,7021,5.093,7022,4.189,7023,4.445,7024,3.838,7025,4.086,7026,4.61,7027,5.093,7028,4.086,7029,4.445]],["title/classes/CustomLtiPropertyDO.html",[0,0.23,7030,5.64]],["body/classes/CustomLtiPropertyDO.html",[0,0.333,2,0.842,3,0.019,4,0.019,5,0.01,7,0.113,26,2.044,27,0.458,29,0.582,30,0.001,31,0.549,32,0.155,33,0.366,47,1.024,95,0.141,101,0.019,103,0.001,104,0.001,127,0.927,144,3.522,150,2.689,165,0.773,236,4.276,347,2.5,404,1.326,1696,4.19,1939,5.654,2076,6.661,2136,2.935,2586,3.871,3110,3.552,4371,6.405,6090,4.073,6960,7.895,6968,6.29,6973,5.728,6974,4.644,6975,5.571,6976,4.644,6978,4.709,6979,5.728,6980,5.728,6981,5.434,6985,5.728,6987,5.203,6988,5.728,6989,4.644,6990,5.434,6991,4.369,6993,7.096,6995,5.728,6997,6.13,6999,5.571,7001,6.13,7003,5.571,7005,5.728,7007,5.571,7009,6.13,7011,6.13,7013,6.13,7018,6.13,7020,6.13,7022,5.571,7024,5.104,7026,6.13,7028,5.434,7030,9.22,7031,6.773,7032,9.047,7033,9.794,7034,7.332,7035,6.405,7036,5.571,7037,5.728,7038,6.817,7039,5.728,7040,5.728,7041,6.773,7042,6.773,7043,6.773,7044,6.773,7045,6.773,7046,6.773,7047,6.773,7048,6.405,7049,6.773,7050,6.773,7051,6.773,7052,6.773,7053,6.773,7054,6.773,7055,6.773,7056,6.773,7057,6.773,7058,6.773,7059,6.773,7060,6.773]],["title/classes/CustomParameter.html",[0,0.23,136,4.217]],["body/classes/CustomParameter.html",[0,0.255,2,0.859,3,0.02,4,0.02,5,0.011,7,0.115,27,0.562,29,0.594,30,0.001,31,0.665,32,0.193,33,0.665,47,0.993,95,0.096,101,0.014,103,0.001,104,0.001,127,0.945,136,7.719,146,7.488,165,0.783,195,7.488,196,7.906,277,4.459,329,3.282,331,6.964,347,2.023,379,2.568,405,2.676,471,4.74,595,2.576,1031,2.398,2136,2.995,2621,3.534,4303,3.283,5236,4.677,5369,7.154,5602,5.582,5621,4.739,5622,5.115,6427,5.115,6428,5.115,7061,12.601,7062,7.482,7063,8.257,7064,9.927,7065,7.482,7066,7.482,7067,7.482,7068,7.482,7069,7.482,7070,7.482,7071,7.482,7072,7.482,7073,7.482,7074,6.912,7075,6.912,7076,6.256,7077,6.256,7078,5.029,7079,6.032,7080,6.536,7081,6.536,7082,6.536,7083,6.536,7084,6.536,7085,6.536]],["title/classes/CustomParameterEntity.html",[0,0.23,7086,5.438]],["body/classes/CustomParameterEntity.html",[0,0.218,2,0.737,3,0.017,4,0.017,5,0.009,7,0.099,27,0.547,29,0.509,30,0.001,31,0.624,32,0.189,33,0.644,47,0.969,95,0.115,96,1.735,101,0.012,103,0.001,104,0.001,127,0.811,146,6.919,165,0.706,195,6.919,196,7.305,198,3.07,240,4.133,277,4.121,329,3.033,331,6.435,347,1.823,364,2.419,369,2.805,370,3.715,379,2.373,386,6.364,398,1.88,405,2.411,471,4.38,595,2.21,1031,3.987,2136,2.57,2600,5.808,2618,4.579,2621,3.032,4303,2.817,5236,4.013,5369,6.611,5602,5.158,5621,4.066,5622,4.389,6427,4.389,6428,4.389,7063,7.63,7074,5.93,7075,5.93,7076,5.367,7077,5.367,7078,4.315,7079,5.175,7080,5.608,7081,5.608,7082,5.608,7083,5.608,7084,5.608,7085,5.608,7086,9.438,7087,13.306,7088,13.306,7089,6.42,7090,8.945,7091,6.42,7092,6.42,7093,6.42,7094,6.42,7095,6.42,7096,6.42,7097,6.42,7098,6.42,7099,6.42]],["title/classes/CustomParameterEntry.html",[0,0.23,181,4.273]],["body/classes/CustomParameterEntry.html",[0,0.322,2,1.088,3,0.025,4,0.025,5,0.013,7,0.146,27,0.516,29,0.751,30,0.001,31,0.726,32,0.174,33,0.622,47,0.943,101,0.018,103,0.001,104,0.001,127,1.197,144,3.399,165,0.91,181,8.404,290,7.472,405,3.109,595,3.261,2136,3.792,4303,4.156,7037,7.4,7061,11.957,7100,9.473,7101,11.535,7102,9.473,7103,7.92]],["title/classes/CustomParameterEntryEntity.html",[0,0.23,5680,5.126]],["body/classes/CustomParameterEntryEntity.html",[0,0.311,2,1.048,3,0.024,4,0.024,5,0.013,7,0.14,27,0.508,29,0.724,30,0.001,31,0.717,32,0.172,33,0.611,47,0.931,95,0.117,96,2.468,101,0.017,103,0.001,104,0.001,127,1.154,144,3.344,165,0.89,240,4.114,290,7.377,364,2.09,398,2.674,405,3.04,595,3.143,2136,3.654,2618,5.773,4303,4.006,5680,9.976,7037,7.131,7103,7.632,7104,12.779,7105,9.129,7106,11.276,7107,9.129]],["title/classes/CustomParameterEntryParam.html",[0,0.23,5731,5.126]],["body/classes/CustomParameterEntryParam.html",[0,0.389,2,1.073,3,0.025,4,0.025,5,0.013,7,0.144,27,0.475,30,0.001,31,0.693,32,0.16,33,0.572,47,0.938,95,0.147,101,0.018,103,0.001,104,0.001,144,3.379,165,0.902,200,4.028,290,7.135,364,2.12,374,2.984,375,4.64,376,2.191,467,3.074,470,5.208,471,4.866,2627,6.629,5729,6.768,5731,8.69,7108,7.63,7109,11.419,7110,9.341,7111,9.341,7112,9.341]],["title/classes/CustomParameterEntryResponse.html",[0,0.23,5839,5.27]],["body/classes/CustomParameterEntryResponse.html",[0,0.306,2,1.032,3,0.024,4,0.024,5,0.013,7,0.138,27,0.504,29,0.713,30,0.001,31,0.713,32,0.17,33,0.607,47,0.925,95,0.115,101,0.017,103,0.001,104,0.001,127,1.136,144,3.321,165,0.881,200,4.141,290,7.336,364,2.07,375,4.531,376,2.108,405,3.01,467,3.416,595,3.094,2136,3.597,4303,3.943,5839,10.21,7037,7.02,7103,7.513,7108,7.845,7109,11.74,7113,8.986,7114,11.167,7115,8.986,7116,8.986]],["title/classes/CustomParameterFactory.html",[0,0.23,7117,5.64]],["body/classes/CustomParameterFactory.html",[0,0.257,2,0.44,3,0.01,4,0.01,5,0.005,7,0.059,8,0.735,27,0.509,29,0.993,30,0.001,31,0.687,32,0.182,33,0.585,34,1.044,35,1.386,47,0.443,55,2.392,59,3.104,95,0.12,101,0.018,103,0,104,0,127,0.484,136,4.729,138,2.642,144,2.972,146,2.576,148,1.186,150,1.406,154,3.449,158,1.92,165,0.48,185,5.054,195,2.576,196,2.72,200,1.249,201,2.007,209,1.32,216,1.125,217,1.595,227,1.234,236,2.235,238,4.093,277,3.761,278,2.912,279,4.408,281,2.841,290,2.212,325,2.841,329,3.204,331,2.396,359,2.11,366,2.11,371,2.374,379,1.744,380,1.583,381,2.002,404,1.557,461,0.883,471,1.631,538,2.728,596,3.673,627,1.894,660,6.601,661,4.213,662,4.829,665,3.411,666,4.829,667,5.106,668,3.411,669,3.411,670,3.411,671,3.349,672,3.845,673,4.241,674,6.263,675,5.172,676,6.574,677,2.169,682,2.149,683,3.411,684,2.169,685,4.511,686,4.701,687,3.996,688,4.547,689,3.38,690,2.149,691,2.007,692,3.726,693,2.092,694,2.056,695,2.149,696,4.443,697,2.169,698,4.165,699,2.149,700,7.356,701,3.798,702,6.097,703,2.169,704,3.007,705,2.149,706,2.169,707,2.149,708,2.169,709,2.149,712,2.149,713,5.505,714,2.169,715,2.149,716,3.411,717,3.349,718,3.411,719,2.169,720,2.074,721,2.056,722,1.691,723,2.149,724,2.149,725,2.149,726,2.169,727,2.169,728,1.501,729,2.149,730,2.169,731,2.382,732,2.149,733,2.169,735,2.212,736,2.259,737,5.133,905,1.592,1508,2.169,1696,3.477,2076,3.212,2599,2.777,2606,2.11,2609,2.668,4335,6.667,4337,2.777,4945,2.056,5472,3.007,5602,1.92,5640,2.169,5697,3.09,5702,2.994,5703,2.841,6968,2.461,6974,2.428,6976,2.428,6978,2.461,6989,2.428,6991,2.284,7117,6.325,7118,5.315,7119,6.084,7120,5.315,7121,3.833,7122,2.777,7123,4.509,7124,2.994,7125,2.777,7126,2.62,7127,2.535,7128,3.348,7129,3.348,7130,3.348,7131,6.609,7132,5.087,7133,3.348,7134,3.667,7135,3.09,7136,2.841,7137,2.912,7138,3.348,7139,2.841,7140,3.348,7141,3.348,7142,3.204,7143,3.348,7144,3.348,7145,2.576,7146,3.348,7147,3.348,7148,3.348,7149,2.62,7150,3.348,7151,3.204,7152,3.204,7153,3.348,7154,2.668,7155,4.623,7156,5.315,7157,6.609,7158,5.315,7159,5.315,7160,3.348,7161,3.204,7162,2.994,7163,5.087,7164,3.348,7165,3.348,7166,3.348,7167,3.348,7168,3.348,7169,5.315,7170,3.348,7171,3.204,7172,2.497,7173,3.204,7174,3.348,7175,3.348,7176,3.348,7177,3.348]],["title/classes/CustomParameterPostParams.html",[0,0.23,7178,5.438]],["body/classes/CustomParameterPostParams.html",[0,0.323,2,0.805,3,0.019,4,0.019,5,0.01,7,0.108,27,0.551,30,0.001,31,0.605,32,0.191,33,0.648,47,0.983,95,0.138,101,0.013,103,0.001,104,0.001,165,0.75,198,3.354,277,4.316,331,6.74,347,1.937,364,2.462,373,5.017,374,2.24,375,4.901,376,1.645,379,2.485,467,3.424,470,5.367,471,5.514,1001,6.425,1044,3.442,2600,5.85,5369,6.924,5602,5.402,5729,8.375,7063,7.991,7178,7.662,7179,13.401,7180,7.013,7181,8.423,7182,7.013,7183,7.013,7184,7.662,7185,7.013,7186,5.329,7187,7.013,7188,9.014,7189,7.013,7190,7.013,7191,7.013,7192,7.013,7193,7.013,7194,9.014,7195,7.013,7196,7.013,7197,9.014,7198,7.013,7199,7.013,7200,7.013,7201,7.013,7202,7.013]],["title/classes/CustomParameterResponse.html",[0,0.23,5647,5.27]],["body/classes/CustomParameterResponse.html",[0,0.225,2,0.76,3,0.018,4,0.018,5,0.009,7,0.102,27,0.551,29,0.525,30,0.001,31,0.633,32,0.19,33,0.648,47,0.974,95,0.117,101,0.013,103,0.001,104,0.001,127,0.837,165,0.721,198,3.166,277,4.188,331,6.541,347,1.862,364,2.434,375,5.264,376,1.553,379,2.412,405,2.463,467,3.53,471,4.453,595,2.279,1031,3.354,2136,2.65,2600,5.839,2621,3.127,2914,6.72,4303,2.905,5236,4.139,5369,6.72,5602,5.243,5621,4.193,5622,4.526,5647,9.249,6427,4.526,6428,4.526,7063,7.756,7076,5.535,7077,5.535,7078,4.45,7079,5.337,7080,5.783,7081,5.783,7082,5.783,7083,5.783,7084,5.783,7085,5.783,7181,8.175,7188,9.898,7194,9.898,7197,9.898,7203,13.376,7204,6.62,7205,9.138,7206,6.62,7207,6.62,7208,6.62,7209,6.62,7210,6.62,7211,6.62,7212,6.62,7213,6.62,7214,6.62,7215,6.62,7216,6.62]],["title/controllers/DashboardController.html",[481,2.63,7217,5.893]],["body/controllers/DashboardController.html",[0,0.226,3,0.018,4,0.018,5,0.009,7,0.102,8,1.106,27,0.435,29,0.832,30,0.001,31,0.588,32,0.147,33,0.524,35,1.266,36,2.663,55,2.696,95,0.161,100,4.204,101,0.013,103,0.001,104,0.001,112,2.913,185,4.798,187,0.951,215,2.15,216,1.228,217,1.616,221,2.471,227,1.105,264,4.438,364,1.943,376,1.558,447,2.785,481,2.59,483,3.197,491,6.451,513,6.795,529,2.93,543,5.252,552,4.266,555,3.506,556,3.594,557,3.625,559,3.625,561,3.625,1382,6.975,2934,5.967,3710,5.52,4179,8.764,6480,8.46,6486,6.136,7217,8.001,7218,6.642,7219,7.063,7220,10.482,7221,6.642,7222,6.642,7223,10.969,7224,9.447,7225,9.158,7226,6.642,7227,6.642,7228,7.865,7229,9.87,7230,9.158,7231,6.642,7232,5.802,7233,6.642,7234,8.764,7235,6.642,7236,5.047,7237,6.642,7238,6.642,7239,6.642,7240,6.642,7241,10.482,7242,8.001,7243,6.642,7244,6.642,7245,6.642,7246,6.642,7247,6.642,7248,6.642,7249,6.642,7250,6.136]],["title/classes/DashboardEntity.html",[0,0.23,7251,4.888]],["body/classes/DashboardEntity.html",[0,0.169,2,0.343,3,0.008,4,0.008,5,0.004,7,0.127,8,0.6,26,2.402,27,0.515,29,0.881,30,0.001,31,0.623,32,0.174,33,0.555,34,1.761,35,1.429,39,1.993,47,0.862,55,2.688,83,0.9,95,0.082,101,0.019,103,0,104,0,111,2.627,127,0.378,144,1.359,145,1.919,148,3.562,165,0.392,187,0.428,214,0.984,217,1.697,227,1.356,234,1.604,247,2.95,305,1.836,334,0.329,347,1.516,405,0.806,415,2.713,416,1.92,595,2.197,618,3.512,619,2.841,627,2.315,905,2.65,1041,1.661,1277,4.257,1382,4.59,1474,3.205,1758,5.65,1773,3.193,1828,3.316,1932,3.267,2381,3.884,2586,1.578,2594,4.791,2672,6.616,2685,1.709,2686,1.591,2728,2.272,2789,3.925,2809,5.587,3224,4.73,3331,3.578,3400,2.081,3573,3.239,3667,6.901,3715,3.108,4179,4.156,4821,1.846,6258,2.5,6365,2.044,6401,9.446,6402,3.685,6471,3.46,6701,6.089,7228,5.176,7251,3.602,7252,2.612,7253,4.971,7254,6.496,7255,4.971,7256,4.971,7257,6.496,7258,6.217,7259,7.447,7260,4.971,7261,5.994,7262,4.971,7263,4.971,7264,4.971,7265,4.971,7266,4.971,7267,4.971,7268,6.496,7269,2.99,7270,2.99,7271,2.99,7272,2.99,7273,2.99,7274,4.343,7275,2.99,7276,2.216,7277,2.99,7278,4.343,7279,2.99,7280,4.592,7281,4.343,7282,9.465,7283,2.99,7284,9.624,7285,2.99,7286,2.99,7287,6.768,7288,2.99,7289,4.343,7290,9.465,7291,2.99,7292,2.99,7293,4.343,7294,2.99,7295,4.343,7296,2.99,7297,4.343,7298,2.99,7299,4.343,7300,2.99,7301,4.343,7302,2.99,7303,4.343,7304,2.99,7305,2.99,7306,4.343,7307,2.99,7308,4.343,7309,2.216,7310,4.343,7311,2.612,7312,4.343,7313,4.343,7314,4.343,7315,2.612,7316,4.343,7317,2.612,7318,4.343,7319,2.612,7320,3.778,7321,8.676,7322,2.612,7323,4.343,7324,2.612,7325,4.343,7326,2.612,7327,4.343,7328,2.612,7329,2.612,7330,2.612,7331,2.612,7332,2.612,7333,4.343,7334,2.612,7335,4.343,7336,2.5,7337,4.343,7338,2.612,7339,2.081,7340,4.343,7341,2.612,7342,2.612,7343,2.612,7344,2.612,7345,2.41,7346,2.612,7347,4.343,7348,2.612,7349,2.272,7350,2.612,7351,2.612,7352,2.612,7353,2.612,7354,2.612,7355,2.612,7356,2.612,7357,2.612,7358,2.612,7359,4.343,7360,4.343,7361,2.5,7362,5.575,7363,2.612,7364,4.343,7365,2.612,7366,2.612,7367,2.612,7368,2.612,7369,2.612,7370,2.612,7371,2.612,7372,2.612,7373,2.612,7374,2.612,7375,2.612,7376,2.612,7377,2.612,7378,2.612,7379,2.612,7380,2.612,7381,2.612,7382,2.612,7383,2.612,7384,2.612,7385,2.612,7386,2.612,7387,2.612,7388,4.343,7389,2.612,7390,2.612,7391,2.612,7392,4.343,7393,4.343,7394,2.612,7395,2.612,7396,2.612,7397,2.612,7398,2.612,7399,2.612,7400,2.612,7401,5.575,7402,2.612,7403,2.612]],["title/entities/DashboardGridElementModel.html",[380,1.411,7404,5.27]],["body/entities/DashboardGridElementModel.html",[0,0.308,3,0.017,4,0.017,5,0.009,7,0.181,27,0.489,30,0.001,32,0.157,33,0.452,34,2.021,39,2.425,47,0.858,49,2.544,55,2.681,95,0.151,96,2.445,97,2.776,101,0.021,103,0.001,104,0.001,127,0.824,144,1.783,145,2.335,165,0.714,188,3.425,234,1.685,240,3.818,329,1.922,334,0.997,364,2.183,369,2.603,370,2.177,380,2.172,381,2.147,386,3.728,398,1.911,399,4.066,402,3.721,404,1.635,405,1.759,406,2.89,461,2.584,618,3.849,619,3.728,1474,4.137,1910,4.273,2501,8.124,2672,7.362,2674,4.761,2676,7.89,2678,5.666,2680,7.292,2682,3.56,2684,4.727,2688,3.805,2789,3.444,4294,3.932,4926,3.009,6397,4.078,6409,3.658,6737,4.19,7219,7.811,7404,8.111,7405,5.454,7406,9.823,7407,9.823,7408,6.524,7409,6.524,7410,6.524,7411,6.524,7412,6.524,7413,6.524,7414,6.524,7415,7.292,7416,6.704,7417,5.454,7418,7.562,7419,5.454,7420,5.454,7421,5.454,7422,5.454,7423,5.454,7424,5.259,7425,5.454,7426,5.454,7427,7.292,7428,6.554,7429,5.454,7430,4.63,7431,5.454,7432,5.454,7433,5.454,7434,5.454,7435,5.454]],["title/interfaces/DashboardGridElementModelProperties.html",[334,0.743,7415,5.438]],["body/interfaces/DashboardGridElementModelProperties.html",[0,0.313,3,0.018,4,0.018,5,0.009,7,0.182,30,0.001,32,0.172,33,0.566,34,2.198,39,2.464,47,0.933,49,2.603,55,2.818,95,0.152,96,2.484,97,2.84,101,0.022,103,0.001,104,0.001,127,0.844,145,1.723,165,0.725,188,4.288,234,1.491,240,3.548,334,1.012,336,1.627,369,2.323,370,2.227,380,2.198,398,1.955,399,4.115,402,3.781,404,1.661,405,1.799,406,2.936,461,2.61,618,3.91,619,3.815,1474,4.268,1910,4.341,2501,7.615,2672,7.672,2674,4.214,2676,6.983,2678,5.015,2680,5.381,2682,3.643,2684,4.837,2688,3.893,2789,3.524,4294,4.023,4926,3.079,6397,4.173,6409,3.743,6737,4.287,7219,8.007,7404,7.179,7405,5.581,7406,10.136,7407,10.136,7415,8.472,7416,8.392,7417,5.581,7418,7.683,7419,5.581,7420,5.581,7421,5.581,7422,5.581,7423,5.581,7424,5.381,7425,5.581,7426,5.581,7427,7.408,7428,6.659,7429,5.581,7430,4.737,7431,5.581,7432,5.581,7433,5.581,7434,5.581,7435,5.581]],["title/classes/DashboardGridElementResponse.html",[0,0.23,7436,5.438]],["body/classes/DashboardGridElementResponse.html",[0,0.311,2,0.597,3,0.014,4,0.014,5,0.007,7,0.08,27,0.517,29,0.413,30,0.001,31,0.292,32,0.179,33,0.631,34,2.284,47,0.957,55,2.223,83,2.314,95,0.099,101,0.017,103,0,104,0,127,1.277,145,1.984,165,0.607,240,2.409,364,2.27,376,1.22,379,3.049,380,1.088,467,3.556,469,2.294,475,5.657,538,4.101,618,3.892,728,3.011,966,2.662,1011,2.767,1013,5.356,1021,4.091,1041,2.889,1277,5.213,1382,4.746,1474,4.425,1666,5.352,2594,5.902,2787,5.719,2789,4.059,2809,5.335,2910,6.161,2911,6.161,3715,7.497,6364,6.149,6365,7.373,6441,3.951,6471,8.348,6699,6.198,6700,6.006,6701,9.042,6702,7.146,6705,6.006,6706,4.806,6707,5.571,6708,6.198,6733,3.69,7219,4.806,7228,5.352,7236,5.842,7320,8.195,7428,6.628,7436,9.417,7437,4.543,7438,9.422,7439,9.017,7440,9.017,7441,5.2,7442,5.2,7443,5.2,7444,8.694,7445,6.716,7446,5.2,7447,5.2,7448,5.2,7449,5.2,7450,4.543,7451,5.2,7452,5.2,7453,5.2,7454,4.543,7455,4.543,7456,4.543,7457,4.543,7458,4.543]],["title/classes/DashboardGridSubElementResponse.html",[0,0.23,7444,5.438]],["body/classes/DashboardGridSubElementResponse.html",[0,0.333,2,0.673,3,0.016,4,0.016,5,0.008,7,0.09,27,0.47,29,0.465,30,0.001,31,0.329,32,0.17,33,0.293,34,2.312,47,0.969,55,1.845,83,1.763,95,0.107,101,0.019,103,0.001,104,0.001,127,1.351,145,1.512,165,0.662,240,1.836,364,1.982,376,1.374,379,3.087,380,1.226,467,3.62,469,2.584,475,5.668,538,3.76,618,4.167,728,2.294,966,2.999,1013,4.491,1021,3.118,1041,3.255,1277,4.325,1382,3.616,1474,4.516,1666,4.078,2594,5.907,2787,6.122,2789,4.427,2809,4.427,2910,6.174,2911,6.174,3715,7.748,6364,6.583,6365,6.695,6441,4.452,6471,8.628,6699,6.76,6700,6.551,6701,9.095,6702,7.651,6705,4.577,6706,3.662,6707,4.245,6708,4.723,6733,4.158,7219,5.242,7228,4.078,7236,6.372,7320,7.441,7428,7.096,7436,8.618,7437,5.118,7438,8.555,7439,8.188,7440,8.188,7444,9.769,7445,5.118,7450,5.118,7454,5.118,7455,5.118,7456,5.118,7457,5.118,7458,5.118,7459,5.859,7460,5.859,7461,5.859,7462,5.859,7463,5.859]],["title/classes/DashboardMapper.html",[0,0.23,7232,5.893]],["body/classes/DashboardMapper.html",[0,0.256,2,0.864,3,0.02,4,0.02,5,0.011,7,0.116,8,1.203,27,0.464,29,0.886,30,0.001,31,0.626,32,0.157,33,0.558,34,1.291,35,1.349,95,0.128,99,1.277,100,3.981,101,0.014,103,0.001,104,0.001,111,2.543,145,1.942,163,2.373,217,1.568,227,1.177,234,1.813,627,4.149,975,5.694,982,3.77,1130,6.065,1474,2.554,2263,5.339,2809,3.972,3715,4.704,6365,5.144,6402,8.814,6471,5.237,7219,6.229,7232,8.704,7236,9.036,7251,8.616,7258,6.291,7287,9.036,7428,5.452,7436,9.586,7439,6.291,7440,6.291,7444,9.005,7464,7.524,7465,9.964,7466,9.964,7467,9.964,7468,7.524,7469,9.964,7470,7.524,7471,9.964,7472,7.524,7473,7.524,7474,7.524,7475,7.524,7476,7.524,7477,7.524,7478,7.524,7479,7.524,7480,7.524,7481,7.524,7482,7.524,7483,7.524,7484,7.524,7485,9.964,7486,7.524,7487,9.964,7488,7.524,7489,7.524,7490,7.524,7491,7.524,7492,7.524]],["title/entities/DashboardModelEntity.html",[380,1.411,7416,5]],["body/entities/DashboardModelEntity.html",[0,0.319,3,0.018,4,0.018,5,0.01,7,0.184,27,0.389,30,0.001,32,0.131,34,2.057,39,2.857,47,0.834,49,2.674,55,2.519,95,0.154,96,2.53,97,2.918,101,0.022,103,0.001,104,0.001,127,0.867,144,1.874,145,1.77,165,0.739,188,3.545,234,1.73,240,3.588,329,2.02,334,1.031,364,1.735,369,2.532,370,2.288,380,2.23,381,2.257,398,2.008,399,4.174,402,3.851,404,1.692,405,1.848,406,2.991,461,2.852,618,3.983,619,3.919,1474,3.887,1910,5.035,2501,8.298,2672,6.663,2674,4.887,2676,8.099,2678,5.816,2680,5.528,2682,3.742,2684,4.969,2688,3.999,2789,3.62,4294,4.133,4926,3.163,6397,4.287,6409,3.845,6737,4.404,7219,7.735,7404,7.313,7405,5.733,7406,9.231,7407,9.231,7415,7.546,7416,7.9,7417,5.733,7418,7.826,7419,5.733,7420,5.733,7421,5.733,7422,5.733,7423,5.733,7424,5.528,7425,5.733,7426,5.733,7427,7.546,7428,8.298,7429,5.733,7430,4.866,7431,5.733,7432,5.733,7433,5.733,7434,7.826,7435,5.733,7493,6.857,7494,6.335,7495,6.857]],["title/injectables/DashboardModelMapper.html",[105,0.89,7496,5.27]],["body/injectables/DashboardModelMapper.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,8,0.804,27,0.501,29,0.958,30,0.001,31,0.677,32,0.172,33,0.604,34,1.143,35,1.433,36,2.824,39,1.153,47,0.313,95,0.104,96,1.162,99,0.73,101,0.008,103,0,104,0,105,0.878,107,1.029,111,2.453,112,3.035,127,0.543,145,1.11,187,0.616,188,4.397,216,0.795,217,1.743,221,2.962,227,1.309,234,1.489,284,2.591,305,1.237,380,1.393,398,1.259,461,1.878,1382,2.654,1439,2.056,1758,3.267,1828,2.969,1932,3.409,2263,3.051,2395,5.243,2400,2.457,2435,2.89,2672,6.203,2684,3.115,2835,6.74,3280,2.993,3285,4.06,3546,3.466,6401,6.647,6403,3.595,6470,3.595,6701,4.552,7219,7.666,7228,2.993,7251,7.931,7287,9.44,7321,7.752,7336,3.595,7404,8.836,7406,3.466,7407,3.466,7416,9.312,7424,3.466,7428,3.115,7496,5.201,7497,4.3,7498,8.147,7499,8.147,7500,6.658,7501,6.658,7502,6.658,7503,6.658,7504,8.147,7505,6.658,7506,6.658,7507,8.147,7508,4.3,7509,4.3,7510,4.3,7511,12.423,7512,4.3,7513,4.3,7514,6.658,7515,4.3,7516,6.658,7517,4.3,7518,9.168,7519,6.658,7520,4.3,7521,6.658,7522,4.3,7523,4.3,7524,4.3,7525,6.658,7526,4.3,7527,6.658,7528,4.3,7529,4.3,7530,4.3,7531,9.923,7532,6.658,7533,4.3,7534,4.3,7535,4.3,7536,4.3,7537,4.3,7538,4.3,7539,4.3,7540,4.3,7541,4.3,7542,4.3,7543,4.3,7544,4.3,7545,4.3,7546,4.3,7547,4.3,7548,4.3,7549,3.972,7550,4.3,7551,6.658,7552,4.3,7553,6.658,7554,4.3,7555,4.3,7556,4.3,7557,6.658,7558,4.3,7559,6.658,7560,4.3,7561,6.658,7562,4.3,7563,4.3,7564,4.3,7565,6.658,7566,6.658,7567,4.3,7568,4.3,7569,4.3,7570,3.756,7571,4.3,7572,4.3,7573,4.3,7574,4.3,7575,4.3,7576,4.3,7577,3.756,7578,6.658,7579,4.3,7580,4.3]],["title/injectables/DashboardRepo.html",[105,0.89,7581,5.27]],["body/injectables/DashboardRepo.html",[0,0.306,3,0.017,4,0.017,5,0.009,7,0.099,8,1.085,9,3.09,26,2.727,27,0.487,29,0.931,30,0.001,31,0.658,32,0.165,33,0.586,34,1.542,35,1.348,36,2.87,39,2.993,49,2.519,95,0.143,96,1.746,97,2.749,99,1.097,101,0.017,103,0.001,104,0.001,105,1.185,107,1.546,112,2.988,127,0.816,187,0.925,206,5.288,214,2.126,216,1.662,217,1.702,221,2.938,227,1.28,234,1.048,334,0.712,380,1.879,461,1.489,661,2.722,722,2.85,877,3.768,1919,2.683,2395,6.381,2435,4.343,3280,4.497,3285,5.479,6701,4.417,6984,7.243,7219,7.594,7251,9.208,7287,6.827,7416,4.789,7496,8.723,7518,7.849,7577,5.644,7581,7.019,7582,5.968,7583,8.3,7584,7.849,7585,8.3,7586,6.461,7587,9.542,7588,6.461,7589,9.024,7590,6.461,7591,8.3,7592,6.461,7593,9.542,7594,6.461,7595,5.968,7596,5.968,7597,8.3,7598,5.968,7599,5.644,7600,7.512,7601,4.909,7602,8.3,7603,5.968,7604,8.3,7605,5.968,7606,9.542,7607,5.968,7608,8.3,7609,5.968,7610,5.968]],["title/classes/DashboardResponse.html",[0,0.23,7236,5.126]],["body/classes/DashboardResponse.html",[0,0.34,2,0.697,3,0.016,4,0.016,5,0.009,7,0.093,27,0.415,29,0.482,30,0.001,31,0.34,32,0.161,33,0.303,34,2.323,47,0.95,55,1.892,83,1.827,95,0.11,101,0.019,103,0.001,104,0.001,127,1.373,145,2.22,165,0.679,240,1.902,364,1.594,376,1.424,379,3.12,380,1.799,467,3.639,469,2.678,475,5.746,538,4.478,618,4.25,728,2.377,966,3.108,1011,3.231,1013,2.784,1021,3.231,1041,4.778,1277,4.436,1382,3.747,1474,4.38,1666,4.226,2594,5.756,2787,6.244,2789,4.54,2809,4.54,2910,6.258,2911,6.258,3715,7.445,6364,5.781,6365,6.828,6441,4.613,6471,8.289,6699,6.933,6700,6.719,6701,8.82,6702,6.719,6705,4.743,6706,3.795,6707,4.399,6708,4.894,6733,6.103,7219,6.791,7228,4.226,7236,8.714,7320,7.589,7428,8.309,7436,9.244,7437,5.303,7438,8.725,7439,8.351,7440,8.351,7444,8.758,7445,5.303,7454,5.303,7455,5.303,7456,5.303,7457,5.303,7458,5.303,7611,6.071,7612,6.071,7613,6.071]],["title/injectables/DashboardUc.html",[105,0.89,7234,5.64]],["body/injectables/DashboardUc.html",[0,0.214,3,0.017,4,0.017,5,0.009,7,0.097,8,1.066,26,2.874,27,0.483,29,0.922,30,0.001,31,0.676,32,0.163,33,0.581,35,1.334,36,2.619,39,3.607,47,0.742,95,0.149,99,1.069,101,0.012,103,0.001,104,0.001,105,1.164,107,1.508,111,2.326,112,2.879,127,1.115,148,1.949,185,3.99,187,0.902,216,1.633,217,1.533,221,2.917,227,1.074,234,1.022,305,1.812,369,1.393,450,2.591,511,3.225,722,2.779,839,2.957,1958,7.546,2185,3.565,2686,4.697,2730,5.266,2809,5.379,6424,3.674,6800,5.503,6844,4.104,7219,7.894,7234,7.38,7242,9.647,7251,8.001,7282,9.233,7290,10.346,7321,4.921,7361,5.266,7581,6.896,7584,7.711,7589,7.711,7600,9.233,7614,6.299,7615,10.19,7616,10.19,7617,8.827,7618,6.299,7619,6.299,7620,6.299,7621,6.299,7622,6.299,7623,6.299,7624,6.299,7625,8.827,7626,6.299,7627,6.299,7628,5.819,7629,4.669,7630,6.299,7631,6.299,7632,6.299,7633,4.385,7634,6.299,7635,10.19,7636,8.827,7637,8.827,7638,6.299,7639,6.299,7640,6.299,7641,6.299]],["title/classes/DashboardUrlParams.html",[0,0.23,7223,5.893]],["body/classes/DashboardUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,3834,5.672,7219,7.326,7223,10.238,7242,10.989,7642,9.724,7643,9.724]],["title/classes/DatabaseManagementConsole.html",[0,0.23,7644,5.64]],["body/classes/DatabaseManagementConsole.html",[0,0.197,2,0.663,3,0.015,4,0.015,5,0.008,7,0.089,8,1.002,27,0.441,29,0.771,30,0.001,31,0.545,32,0.136,33,0.531,35,1.173,36,2.546,47,0.42,95,0.125,101,0.022,103,0.001,104,0.001,111,1.155,112,2.821,127,0.73,145,3.023,163,2.617,215,1.869,217,1.628,221,2.504,227,1.024,334,0.636,347,1.692,364,1.801,368,4.195,369,1.277,371,2.927,379,2.978,443,3.264,701,4.667,721,4.453,1910,4.589,2180,6.153,2835,3.441,3247,3.48,3262,5.188,3445,5.045,3447,4.828,3448,7.138,3451,6.69,3453,7.831,3457,8.594,3458,6.727,3459,3.441,3461,4.511,3462,5.407,3542,2.978,5483,4.655,5485,5.045,7644,6.939,7645,10.392,7646,7.666,7647,8.299,7648,8.561,7649,9.427,7650,5.775,7651,7.666,7652,7.142,7653,9.823,7654,8.879,7655,5.775,7656,7.666,7657,7.983,7658,5.775,7659,8.788,7660,8.338,7661,5.777,7662,6.306,7663,5.775,7664,5.045,7665,4.828,7666,7.666,7667,8.297,7668,6.401,7669,7.666,7670,5.045,7671,7.666,7672,7.666,7673,5.334,7674,5.334,7675,5.334,7676,8.879,7677,7.666,7678,8.974,7679,3.948,7680,7.25,7681,5.334,7682,5.334,7683,5.045]],["title/controllers/DatabaseManagementController.html",[481,2.63,7684,5.893]],["body/controllers/DatabaseManagementController.html",[0,0.251,3,0.02,4,0.02,5,0.01,7,0.114,8,1.189,27,0.51,29,0.878,30,0.001,31,0.621,32,0.155,33,0.553,35,1.485,36,2.85,47,0.921,95,0.126,101,0.014,103,0.001,104,0.001,112,3.054,187,1.058,215,2.391,217,0.974,221,2.32,227,1.296,264,3.127,347,2.256,364,2.279,447,3.097,481,2.88,483,3.555,529,3.258,2955,4.18,3461,5.77,6489,6.615,7646,10.905,7648,9.516,7649,8.647,7660,8.204,7665,6.175,7683,8.598,7684,8.598,7685,12.645,7686,7.386,7687,7.386,7688,9.842,7689,9.092,7690,9.842,7691,7.386,7692,9.842,7693,7.386,7694,10.312,7695,9.842,7696,7.386,7697,6.823,7698,9.842,7699,7.386,7700,7.386,7701,9.842,7702,7.386,7703,11.069,7704,9.842,7705,7.386,7706,7.386,7707,7.386,7708,7.386,7709,7.386,7710,7.386,7711,7.386,7712,7.386,7713,7.386]],["title/modules/DatabaseManagementModule.html",[425,1.808,7714,5.64]],["body/modules/DatabaseManagementModule.html",[0,0.325,3,0.025,4,0.025,5,0.014,30,0.001,95,0.149,101,0.018,103,0.001,104,0.001,187,1.37,425,3.348,427,3.535,428,3.729,429,3.845,430,3.828,431,3.794,432,4.617,433,4.71,442,4.664,443,3.761,444,3.666,7652,5.832,7714,11.442,7715,9.563,7716,9.563,7717,9.563,7718,11.372,7719,8.834,7720,8.834,7721,7.995]],["title/injectables/DatabaseManagementService.html",[105,0.89,7718,5.438]],["body/injectables/DatabaseManagementService.html",[0,0.182,3,0.014,4,0.014,5,0.008,7,0.082,8,0.947,27,0.527,29,0.959,30,0.001,31,0.691,32,0.169,33,0.604,35,1.489,36,2.887,47,0.994,95,0.14,96,2.119,97,2.271,99,0.906,101,0.01,103,0,104,0,105,1.034,107,1.278,111,1.568,112,3.081,127,0.675,187,0.765,215,1.728,216,0.987,217,1.676,221,2.777,227,1.3,247,3.685,369,2.053,398,1.563,779,8.08,884,3.703,948,4.056,1062,4.054,1828,3.495,1910,5.708,2395,5.85,2433,5.107,3280,3.716,3285,4.78,3850,6.319,3861,8.114,5021,4.931,6758,6.052,7648,8.251,7653,6.123,7662,7.777,7689,7.241,7694,10.29,7697,7.241,7718,6.319,7719,11.876,7722,4.663,7723,7.838,7724,7.241,7725,7.838,7726,7.838,7727,7.838,7728,10.235,7729,7.838,7730,5.338,7731,7.838,7732,5.338,7733,7.838,7734,5.338,7735,7.838,7736,5.338,7737,7.838,7738,5.338,7739,7.838,7740,5.338,7741,5.338,7742,7.838,7743,5.338,7744,5.338,7745,5.338,7746,5.338,7747,5.338,7748,5.338,7749,5.338,7750,5.338,7751,9.288,7752,7.838,7753,5.338,7754,5.338,7755,5.338,7756,5.338,7757,7.838,7758,5.338,7759,5.338,7760,5.338,7761,7.838,7762,5.338,7763,5.338,7764,5.338,7765,5.338,7766,5.338,7767,5.338,7768,5.338]],["title/classes/DeleteFilesConsole.html",[0,0.23,7769,5.893]],["body/classes/DeleteFilesConsole.html",[0,0.263,2,0.889,3,0.021,4,0.021,5,0.014,7,0.119,8,1.226,27,0.421,29,0.805,30,0.001,31,0.569,32,0.142,33,0.507,35,0.935,36,2.207,55,2.747,83,2.329,95,0.145,101,0.015,103,0.001,104,0.001,111,1.549,112,2.541,127,0.978,144,2.116,215,2.506,217,1.021,221,1.825,234,1.256,329,2.281,364,1.435,379,2.611,1015,4.3,1021,4.119,1052,4.617,1053,5.333,1545,2.473,1841,7.356,1991,5.493,2769,3.825,3453,6.24,3457,8.37,3458,7.617,3459,4.613,3542,6.202,5279,10.504,6418,9.754,7769,8.869,7770,11.328,7771,7.741,7772,9.378,7773,7.741,7774,10.712,7775,7.741,7776,10.152,7777,11.193,7778,11.193,7779,9.896,7780,9.471,7781,11.328,7782,7.741,7783,11.328,7784,7.741,7785,6.047,7786,7.151,7787,7.151,7788,6.762,7789,7.741,7790,7.741,7791,7.741,7792,7.741,7793,4.903]],["title/injectables/DeleteFilesUc.html",[105,0.89,7774,5.64]],["body/injectables/DeleteFilesUc.html",[0,0.171,3,0.013,4,0.013,5,0.013,7,0.077,8,0.904,27,0.479,29,0.843,30,0.001,31,0.596,32,0.156,33,0.531,35,1.283,36,2.159,47,0.652,55,1.971,58,4.743,83,2.695,95,0.148,99,0.852,101,0.01,103,0.001,104,0,105,0.988,107,1.201,111,2.663,112,2.848,116,2.899,127,0.946,144,1.372,165,0.591,187,0.719,204,1.722,216,1.657,217,1.674,221,2.722,227,0.944,234,1.612,247,4.421,329,1.479,369,1.98,371,1.383,380,1.05,432,1.855,444,1.924,500,5.119,549,3.493,784,2.649,798,3.137,905,3.11,1052,3.651,1053,4.405,1158,2.671,1159,4.384,1289,4.809,1545,1.603,2076,2.649,2186,3.179,2439,3.636,2444,3.92,2570,2.715,3331,5.568,3542,5.123,3544,3.72,6165,3.493,6166,6.235,6167,3.493,6168,3.493,6230,6.917,7772,6.917,7774,6.261,7777,8.676,7785,5.85,7787,4.636,7788,4.384,7793,3.179,7794,11.869,7795,5.018,7796,9.932,7797,6.541,7798,7.488,7799,7.488,7800,9.932,7801,5.018,7802,8.984,7803,9.654,7804,7.488,7805,7.488,7806,7.876,7807,5.018,7808,6.261,7809,9.282,7810,7.488,7811,9.021,7812,5.018,7813,7.488,7814,5.018,7815,7.488,7816,5.018,7817,5.018,7818,7.488,7819,4.196,7820,4.384,7821,4.045,7822,4.636,7823,5.018,7824,5.018,7825,8.958,7826,9.932,7827,9.932,7828,5.018,7829,8.958,7830,5.018,7831,5.018,7832,5.018,7833,8.958,7834,5.018,7835,5.018,7836,5.018,7837,7.488,7838,5.018,7839,5.018,7840,3.719,7841,5.018,7842,5.018,7843,5.018,7844,5.018,7845,5.018,7846,5.018,7847,5.018,7848,4.196,7849,5.018,7850,4.636,7851,5.018,7852,4.636,7853,3.719,7854,4.636,7855,4.636,7856,5.018,7857,5.018,7858,5.018,7859,7.488,7860,5.018,7861,6.541,7862,5.018,7863,5.018,7864,5.018,7865,5.018,7866,5.018]],["title/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.23,7867,5.27]],["body/classes/DeprecatedVideoConferenceInfoResponse.html",[0,0.375,2,1.408,3,0.019,4,0.019,5,0.01,7,0.112,27,0.509,29,0.581,30,0.001,31,0.41,32,0.177,33,0.613,47,0.802,95,0.125,99,1.242,101,0.021,102,5.935,103,0.001,104,0.001,127,0.925,138,3.178,150,2.684,165,0.772,234,1.909,347,2.246,404,1.992,460,6.297,564,4.089,574,5.332,596,3.346,701,3.849,843,5.505,1016,4.2,1289,4.7,2078,4.268,2090,5.6,2477,7.26,6090,4.066,7867,9.575,7868,8.607,7869,7.269,7870,6.393,7871,7.986,7872,10.222,7873,9.188,7874,7.319,7875,5.561,7876,7.319,7877,6.761,7878,8.882,7879,6.761,7880,6.761,7881,6.119,7882,5.424,7883,6.119,7884,5.9,7885,6.393,7886,7.886,7887,8.545,7888,6.119,7889,5.194,7890,5.003,7891,5.003,7892,5.303,7893,6.119]],["title/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.23,7886,5.438]],["body/classes/DeprecatedVideoConferenceJoinResponse.html",[0,0.375,2,1.409,3,0.019,4,0.019,5,0.01,7,0.113,27,0.509,29,0.582,30,0.001,31,0.411,32,0.172,33,0.613,47,0.857,95,0.126,99,1.244,101,0.021,102,5.939,103,0.001,104,0.001,127,0.927,150,4.045,165,0.773,234,1.91,347,2.248,404,1.994,460,6.303,564,4.093,574,5.336,596,3.349,701,2.561,843,5.508,1016,4.203,1289,4.709,2078,4.276,2090,5.605,2477,7.265,6090,4.073,7867,7.651,7868,8.615,7869,7.272,7870,6.405,7871,7.991,7872,10.226,7873,9.195,7875,5.571,7877,6.773,7878,8.89,7879,6.773,7880,6.773,7881,6.13,7882,5.434,7883,6.13,7884,5.911,7885,6.405,7886,9.887,7887,8.556,7888,6.13,7889,5.203,7890,5.012,7891,5.012,7892,5.313,7893,6.13,7894,9.794]],["title/classes/DoBaseFactory.html",[0,0.23,4335,4.787]],["body/classes/DoBaseFactory.html",[0,0.172,2,0.581,3,0.013,4,0.013,5,0.007,7,0.078,8,0.909,27,0.533,29,1.029,30,0.001,31,0.694,32,0.185,33,0.618,34,1.83,35,1.468,47,0.655,49,1.971,55,2.547,59,3.309,95,0.115,96,1.367,97,2.151,101,0.01,103,0,104,0,127,0.639,138,3.27,144,3.323,148,1.564,165,0.594,185,4.845,216,1.393,217,0.667,227,0.533,234,0.821,329,3.505,359,2.611,366,2.784,369,1.118,379,2.074,380,2.23,381,2.478,404,1.361,538,3.376,596,3.903,627,2.345,660,7.186,661,4.709,662,5.589,665,4.222,666,5.589,667,5.585,668,4.222,669,4.222,670,4.222,671,4.146,672,4.573,673,5.045,674,6.099,675,5.868,676,6.959,677,2.862,682,2.835,683,4.222,684,2.862,685,5.221,686,5.44,687,4.625,688,5.262,689,4.183,690,2.835,691,2.648,692,4.432,693,2.759,694,2.713,695,2.835,696,5.142,697,2.862,698,4.954,699,2.835,700,7.128,701,4.322,702,6.937,703,2.862,704,3.721,705,2.835,706,2.862,707,2.835,708,2.862,709,4.222,712,2.835,713,6.153,714,2.862,715,2.835,716,4.222,717,4.146,718,4.222,719,2.862,720,2.736,721,2.713,722,2.23,723,2.835,724,2.835,725,2.835,726,2.862,727,2.862,728,1.98,729,2.835,730,2.862,731,3.523,732,2.835,733,2.862,735,2.919,736,2.98,1298,2.374,1299,2.346,1300,2.346,1301,2.482,1302,2.713,2086,3.519,2180,3.203,2549,4.671,4150,3.345,4335,5.344,4337,3.664,7895,5.056,7896,5.056,7897,5.056,7898,5.056]],["title/classes/DomainObject.html",[0,0.23,1857,2.885]],["body/classes/DomainObject.html",[0,0.293,2,0.99,3,0.023,4,0.023,5,0.012,7,0.132,8,1.314,9,4.123,26,2.488,27,0.52,29,0.684,30,0.001,31,0.483,32,0.153,33,0.431,34,2.149,35,1.041,95,0.11,101,0.021,103,0.001,104,0.001,116,4.053,127,1.089,165,0.859,208,3.199,214,3.581,217,1.137,227,1.147,334,0.95,405,2.933,595,4.445,661,5.023,692,4.988,884,5.139,1854,6.953,1855,11.926,1856,7.53,1857,4.653,1858,9.096,1859,7.963,1860,8.282,1861,10.05,7259,7.207,7899,10.88,7900,8.62,7901,8.62]],["title/classes/DomainObjectFactory.html",[0,0.23,7902,6.231]],["body/classes/DomainObjectFactory.html",[0,0.166,2,0.561,3,0.013,4,0.013,5,0.007,7,0.075,8,0.886,27,0.53,29,1.022,30,0.001,31,0.688,32,0.184,33,0.613,34,1.894,35,1.454,47,0.642,55,2.518,59,3.26,95,0.126,101,0.009,103,0,104,0,127,0.617,138,3.186,144,3.218,148,1.511,165,0.579,185,4.804,187,0.7,216,1.357,234,0.793,305,1.405,329,3.469,359,3.056,366,2.689,379,2.032,380,1.844,381,2.415,404,1.772,538,3.29,573,3.711,574,2.214,596,3.876,627,2.285,660,7.145,661,4.648,662,5.494,665,4.114,666,5.494,667,5.654,668,4.114,669,4.114,670,4.114,671,4.04,672,4.479,673,4.941,674,6.021,675,5.783,676,6.914,677,2.764,682,2.738,683,4.114,684,2.764,685,5.132,686,5.348,687,4.546,688,5.173,689,4.076,690,2.738,691,2.558,692,4.387,693,2.665,694,2.621,695,2.738,696,5.054,697,2.764,698,4.852,699,2.738,700,7.076,701,4.207,702,6.878,703,2.764,704,3.626,705,2.738,706,2.764,707,2.738,708,2.764,709,4.114,712,2.738,713,6.074,714,2.764,715,2.738,716,4.114,717,4.04,718,4.114,719,2.764,720,4.769,721,3.937,722,2.155,723,2.738,724,2.738,725,2.738,726,2.764,727,2.764,728,2.873,729,2.738,730,2.764,731,3.837,732,2.738,733,2.764,735,2.819,736,2.879,1298,3.445,1299,3.404,1300,3.404,1301,3.602,1302,3.937,1382,3.015,1854,4.28,1857,3.138,1940,3.094,2086,3.4,2180,3.094,2485,2.11,2657,3.466,2658,3.4,3852,3.339,6145,3.182,7902,6.779,7903,4.884,7904,4.884,7905,4.884,7906,7.338,7907,3.4]],["title/classes/DownloadFileParams.html",[0,0.23,6130,4.332]],["body/classes/DownloadFileParams.html",[0,0.453,2,0.743,3,0.017,4,0.024,5,0.013,7,0.099,26,2.602,27,0.373,30,0.001,32,0.17,39,1.735,47,0.978,95,0.156,99,1.098,101,0.025,103,0.001,104,0.001,150,2.374,165,0.71,204,2.22,334,0.713,347,1.833,364,1.667,369,1.431,373,4.748,374,2.067,375,4.533,376,1.518,377,5.86,379,1.492,380,1.354,467,3.701,469,2.855,470,5.121,471,4.754,565,3.416,1000,5.198,1001,6.658,1031,3.314,1044,3.176,1291,2.754,1381,3.774,2744,4.61,2915,5.458,3574,3.155,4227,2.228,5725,5.217,5740,6.778,6064,4.741,6077,6.736,6083,6.151,6111,3.22,6114,4.424,6115,4.504,6116,4.504,6117,5.978,6119,7.65,6122,8.04,6123,7.638,6124,7.777,6125,4.504,6126,4.424,6127,7.767,6128,4.424,6129,4.504,6130,5.776,6131,7.391,6132,4.281,6133,4.504,6134,4.504,6135,4.35,6136,4.424,6137,4.35,6138,4.35,6139,4.156,6140,4.504,6141,4.424,6142,4.504,6143,4.35,6144,4.424,6145,4.216,6146,4.216,6147,4.504,7908,6.471,7909,6.471]],["title/classes/DtoCreator.html",[0,0.23,7910,5.893]],["body/classes/DtoCreator.html",[0,0.204,2,0.432,3,0.01,4,0.01,5,0.005,7,0.058,8,0.724,27,0.518,29,0.857,30,0.001,31,0.624,32,0.18,33,0.54,34,1.029,35,1.378,95,0.133,99,0.638,100,2.853,101,0.007,103,0.001,104,0,105,0.79,111,2.68,127,0.944,138,2.603,165,0.473,187,0.539,188,3.525,216,1.108,217,1.717,227,1.269,234,0.973,347,1.737,369,1.325,371,1.652,461,2.812,564,3.681,591,2.563,592,2.644,806,1.585,843,1.642,966,1.926,1041,5.171,1344,2.571,1474,2.035,1828,4.639,1865,3.139,1866,2.129,1881,2.382,1952,4.994,1984,5.763,2171,1.617,2172,1.799,2173,1.735,2344,4.099,2594,3.759,2689,3.883,2691,4.74,2693,9.035,2696,4.682,2698,5.414,2701,1.735,2709,7.782,2777,2.938,2778,2.451,3022,2.858,3050,8.131,3051,5.011,3055,5.011,3408,3.145,3418,2.618,3419,2.322,3422,3.145,3715,2.351,3733,5.638,3803,3.032,3804,2.938,3898,2.053,4533,4.503,4927,3.286,4988,3.032,6260,4.942,6789,7.125,7276,8.251,7430,2.669,7570,3.286,7910,6.527,7911,11.624,7912,3.474,7913,9.436,7914,9.406,7915,5.993,7916,5.993,7917,5.993,7918,7.873,7919,7.873,7920,5.993,7921,5.993,7922,5.993,7923,5.993,7924,5.993,7925,3.761,7926,3.761,7927,3.761,7928,3.761,7929,5.537,7930,10.763,7931,3.761,7932,8.292,7933,5.537,7934,3.761,7935,5.537,7936,3.761,7937,3.761,7938,3.761,7939,3.761,7940,5.537,7941,3.761,7942,5.537,7943,3.761,7944,5.537,7945,3.761,7946,5.537,7947,3.761,7948,2.725,7949,5.236,7950,5.236,7951,3.474,7952,3.474,7953,3.286,7954,5.537,7955,3.474,7956,5.537,7957,5.537,7958,3.474,7959,3.474,7960,3.474,7961,3.474,7962,3.474,7963,3.474,7964,3.474,7965,3.474,7966,3.474,7967,3.474,7968,5.537,7969,3.286,7970,3.474,7971,3.474,7972,3.474,7973,3.474,7974,6.902,7975,3.474,7976,3.474,7977,3.474,7978,3.286,7979,3.286,7980,5.537,7981,3.474,7982,3.474,7983,3.286,7984,3.286,7985,3.145,7986,3.286,7987,3.286,7988,3.474,7989,3.474,7990,3.474,7991,3.474,7992,3.474,7993,3.474,7994,3.286,7995,3.474,7996,3.474,7997,3.474,7998,3.474,7999,3.474,8000,3.474,8001,3.474,8002,3.474,8003,3.474,8004,3.145,8005,3.474,8006,3.032,8007,3.474,8008,3.474,8009,3.474]],["title/injectables/DurationLoggingInterceptor.html",[105,0.89,8010,6.231]],["body/injectables/DurationLoggingInterceptor.html",[0,0.289,3,0.023,4,0.023,5,0.012,7,0.131,8,1.302,27,0.447,29,0.855,30,0.001,31,0.604,32,0.151,33,0.539,35,1.026,95,0.16,101,0.016,103,0.001,104,0.001,105,1.421,107,2.033,127,1.073,187,1.217,199,3.243,214,2.795,215,2.749,217,1.12,227,0.895,379,1.958,691,5.645,731,4.636,1052,4.393,1053,5.523,1268,5.454,1270,6.453,1545,2.713,2200,9.415,2333,8.775,2993,5.618,4474,8.189,6332,7.988,6339,8.688,6793,5.912,8010,9.956,8011,11.839,8012,7.845,8013,9.415,8014,9.415,8015,8.493,8016,9.415,8017,10.878,8018,10.878,8019,8.493,8020,9.415,8021,7.845,8022,8.493,8023,8.493,8024,8.493,8025,8.493,8026,8.493]],["title/classes/ElementContentBody.html",[0,0.23,8027,4.888]],["body/classes/ElementContentBody.html",[0,0.45,2,0.786,3,0.018,4,0.018,5,0.01,7,0.105,9,3.274,27,0.284,30,0.001,31,0.597,32,0.193,47,0.681,83,2.06,95,0.147,99,1.162,101,0.025,103,0.001,104,0.001,144,2.911,163,2.159,165,0.738,240,2.145,364,1.269,369,1.513,374,2.187,376,1.606,379,2.155,404,1.925,467,3.64,470,4.487,524,5.511,999,6.285,1031,2.194,1044,3.36,2344,4.401,2594,5.048,2880,3.274,2914,4.396,2915,4.936,3239,4.279,3242,5.667,3245,3.614,3774,7.138,4040,4.68,4071,4.68,4072,7.044,5504,7.28,5506,7.28,5508,7.28,5541,7.28,5542,6.392,5543,6.392,5739,4.528,5740,6.915,6850,4.858,8027,8.96,8028,6.93,8029,5.074,8030,6.846,8031,6.846,8032,7.557,8033,5.074,8034,8.121,8035,7.557,8036,5.074,8037,4.858,8038,4.858,8039,4.858,8040,4.858,8041,5.074,8042,5.074,8043,5.074]],["title/controllers/ElementController.html",[481,2.63,2765,5.893]],["body/controllers/ElementController.html",[0,0.157,3,0.012,4,0.012,5,0.007,7,0.071,8,0.849,10,3.439,27,0.395,29,0.755,30,0.001,31,0.534,32,0.193,33,0.476,35,1.15,36,2.515,95,0.155,100,1.545,101,0.009,103,0,104,0,111,0.923,112,2.796,187,0.661,206,3.599,215,1.494,216,1.3,217,1.123,221,2.245,227,0.486,234,1.141,264,4.339,364,1.765,368,1.823,369,1.554,376,1.083,447,1.935,481,1.8,483,2.222,491,6.192,502,7.233,506,7.538,509,8.384,513,6.685,543,4.77,552,2.964,553,6.406,554,8.272,555,2.436,556,2.497,557,2.519,558,2.194,559,2.519,561,2.519,563,5.877,564,4.812,883,2.948,1016,2.511,1041,2.564,1469,6.778,2037,5.915,2344,4.462,2594,4.762,2686,5.453,2758,6.652,2759,6.864,2765,6.141,2769,2.281,2770,4.032,2873,2.885,2881,4.341,2882,4.189,2926,7.234,2928,5.667,2930,7.234,2931,7.234,2934,7.538,2936,6.864,2949,9.556,2951,4.189,2954,3.344,2955,2.612,2962,3.721,2972,6.864,2973,6.864,3187,4.237,3262,6.749,3305,3.474,3372,4.806,3566,5.492,3699,5.667,3700,3.859,3705,4.264,3710,4.237,3712,4.264,4038,2.849,4039,3.721,4061,4.032,4176,7.866,4179,7.119,4858,4.264,4871,6.494,5593,11.02,6921,8.951,8032,3.275,8034,6.043,8035,4.989,8037,6.756,8044,4.615,8045,7.866,8046,8.515,8047,4.615,8048,4.615,8049,4.615,8050,4.615,8051,4.615,8052,4.615,8053,7.03,8054,4.615,8055,4.615,8056,4.615,8057,8.317,8058,4.615,8059,4.615,8060,4.615,8061,4.615,8062,4.615,8063,4.615,8064,4.615,8065,4.615,8066,4.615,8067,4.615,8068,4.615,8069,4.615,8070,9.521,8071,4.615,8072,4.615,8073,4.615,8074,4.615,8075,4.615,8076,4.615,8077,4.615,8078,4.615,8079,4.615,8080,4.615,8081,4.615]],["title/injectables/ElementUc.html",[105,0.89,2759,5.438]],["body/injectables/ElementUc.html",[0,0.186,3,0.014,4,0.014,5,0.008,7,0.084,8,0.962,26,2.781,27,0.429,29,0.82,30,0.001,31,0.58,32,0.154,33,0.517,35,1.136,36,2.248,39,3.179,59,1.693,95,0.156,99,0.926,101,0.01,103,0,104,0,105,1.05,107,1.305,111,2.432,112,2.781,127,1.006,187,0.781,199,3.04,216,2.034,217,1.564,221,2.866,227,0.839,234,1.526,305,2.706,347,1.917,461,1.835,766,2.344,806,3.355,839,2.561,883,2.287,982,2.732,1019,3.181,1052,4.833,1487,3.117,1545,1.742,1865,6.367,1866,3.087,1880,3.553,1881,3.455,1952,6.363,1977,3.796,2014,6.97,2187,3.666,2344,4.274,2594,4.851,2598,5.255,2759,6.419,2767,2.459,2799,3.666,2811,3.409,2870,5.879,2873,6.464,2881,5.236,2882,5.604,3089,5.65,3092,8.865,3098,8.078,3115,8.592,3126,7.347,3129,4.396,3153,4.764,3187,6.232,3247,6.232,3364,4.764,3538,7.857,3539,9.559,3672,7.664,3678,6.419,3767,4.26,3769,4.26,3804,4.26,3810,6.22,3830,3.455,3831,4.56,3832,3.666,4000,3.409,4180,8.215,4186,7.581,4202,5.038,5541,7.069,5542,7.069,5543,7.069,5596,8.687,8045,8.687,8082,5.454,8083,9.404,8084,5.454,8085,5.454,8086,5.454,8087,5.454,8088,5.454,8089,5.454,8090,5.454,8091,5.454,8092,5.454,8093,5.454,8094,9.033,8095,5.454,8096,4.396,8097,5.454,8098,7.962,8099,5.454,8100,5.454,8101,4.56,8102,5.454,8103,5.454]],["title/modules/EncryptionModule.html",[425,1.808,8104,4.888]],["body/modules/EncryptionModule.html",[0,0.285,3,0.022,4,0.022,5,0.012,30,0.001,47,0.611,95,0.164,101,0.016,103,0.001,104,0.001,187,1.201,217,1.106,227,0.884,234,1.361,425,3.155,427,3.1,428,3.27,429,3.372,430,3.357,431,3.327,432,3.952,433,4.032,438,6.184,442,4.299,443,3.298,444,3.215,449,4.299,687,3.891,789,8.649,801,4.891,836,6.172,837,7.924,839,5.02,1052,5.218,1053,5.805,1545,2.679,2076,5.644,8104,9.485,8105,8.387,8106,8.387,8107,7.747,8108,8.724,8109,10.282,8110,7.747,8111,7.326,8112,7.747,8113,10.873,8114,7.747,8115,8.387,8116,8.387,8117,7.747,8118,8.387]],["title/classes/EntityNotFoundError.html",[0,0.23,510,4.888]],["body/classes/EntityNotFoundError.html",[0,0.261,2,0.881,3,0.02,4,0.02,5,0.011,7,0.118,8,1.218,27,0.541,29,0.608,30,0.001,31,0.43,32,0.189,33,0.563,35,0.926,47,0.931,55,1.687,59,2.38,95,0.129,101,0.015,103,0.001,104,0.001,127,0.969,165,0.796,187,1.098,204,4.11,216,2.497,364,2.307,380,2.11,404,1.824,406,2.45,510,7.31,511,5.165,564,2.846,596,3.881,885,5.61,1013,5.493,1016,2.738,1253,5.2,1291,5.098,1327,4.454,1472,8.255,1473,7.445,1474,4.067,1475,7.241,1479,4.996,1480,4.299,1481,4.996,1482,4.996,1483,4.996,1484,4.996,1485,4.996,1486,4.676,1487,4.382,1488,5.99,1489,6.411,1493,4.857,3840,7.083,8119,10.089,8120,7.667,8121,7.667,8122,7.667,8123,7.667]],["title/classes/ErrorLoggable.html",[0,0.23,8124,5.438]],["body/classes/ErrorLoggable.html",[0,0.332,2,0.67,3,0.015,4,0.015,5,0.008,7,0.09,8,1.01,27,0.488,29,0.846,30,0.001,31,0.598,32,0.17,33,0.533,35,1.18,47,0.777,95,0.151,101,0.011,103,0.001,104,0.001,111,2.616,127,0.737,144,3.087,165,0.66,187,0.836,204,4.487,214,2.751,215,1.888,216,1.973,217,1.489,227,1.239,240,3.539,329,1.719,347,1.704,369,1.848,374,2.671,468,4.557,503,6.431,535,3.156,558,2.773,661,2.458,704,2.883,722,2.573,731,3.273,806,2.458,953,3.801,1062,3.649,1126,4.227,1291,4.157,1298,3.925,1299,3.878,1300,3.878,1301,4.103,1302,3.13,1303,3.988,1304,3.859,1327,3.302,1378,3.859,1379,3.516,1440,3.988,1469,7.471,1478,7.302,1491,3.334,1492,3.516,1542,4.559,1543,5.077,1547,5.309,1987,3.746,2263,4.14,2400,3.334,2744,3.727,3870,4.702,4631,4.877,7629,4.323,8124,6.739,8125,5.833,8126,9.77,8127,8.359,8128,8.359,8129,8.359,8130,5.833,8131,5.833,8132,9.77,8133,5.833,8134,8.359,8135,5.833,8136,5.833,8137,5.545,8138,5.773,8139,8.359,8140,5.833,8141,8.359,8142,5.833,8143,5.833,8144,5.833,8145,5.833,8146,8.359,8147,5.833,8148,5.833,8149,10.669,8150,5.833,8151,5.833,8152,4.432,8153,5.833,8154,8.359,8155,5.833,8156,5.833,8157,8.359,8158,5.833,8159,4.14,8160,5.096,8161,4.877,8162,5.833,8163,5.833,8164,5.833,8165,5.833,8166,5.833,8167,5.833,8168,8.359,8169,5.833,8170,5.833,8171,5.833,8172,5.833]],["title/injectables/ErrorLogger.html",[105,0.89,8173,5.64]],["body/injectables/ErrorLogger.html",[0,0.255,3,0.02,4,0.02,5,0.011,7,0.115,8,1.199,27,0.512,29,0.979,30,0.001,31,0.692,32,0.173,33,0.617,35,1.433,72,3.513,95,0.158,101,0.014,103,0.001,104,0.001,105,1.309,107,1.791,111,1.497,127,0.945,148,4.069,187,1.072,204,3.406,216,1.384,217,1.565,336,1.823,427,2.766,574,3.392,839,3.513,1052,4.541,1327,4.687,1542,6.509,2993,4.949,6321,6.032,7661,5.208,8173,9.314,8174,12.691,8175,7.482,8176,9.927,8177,9.927,8178,9.927,8179,10.365,8180,7.482,8181,9.927,8182,7.482,8183,9.927,8184,7.482,8185,9.927,8186,7.482,8187,9.927,8188,7.482,8189,6.536,8190,7.755,8191,6.032,8192,6.912,8193,6.536,8194,10.961,8195,7.482,8196,7.482,8197,7.482,8198,7.482]],["title/classes/ErrorMapper.html",[0,0.23,8199,5.893]],["body/classes/ErrorMapper.html",[0,0.29,2,0.98,3,0.023,4,0.023,5,0.012,7,0.131,8,1.305,27,0.354,29,0.677,30,0.001,31,0.478,32,0.12,33,0.426,35,1.03,95,0.152,101,0.016,103,0.001,104,0.001,187,1.222,204,4.511,227,0.899,234,2.024,502,5.332,506,5.557,627,3.694,1439,5.965,1440,5.831,1441,6.321,1460,7.131,2037,7.2,2685,7.128,3543,5.305,6064,4.955,8199,9.44,8200,8.529,8201,10.958,8202,8.529,8203,10.054,8204,8.529,8205,10.807,8206,5.937,8207,11.863,8208,8.529,8209,8.529,8210,6.663,8211,8.529,8212,8.529]],["title/modules/ErrorModule.html",[425,1.808,6321,5.438]],["body/modules/ErrorModule.html",[0,0.306,3,0.024,4,0.024,5,0.013,30,0.001,95,0.163,101,0.017,103,0.001,104,0.001,187,1.287,329,3.29,379,2.071,425,3.257,427,3.322,428,3.504,429,3.613,430,3.597,431,3.565,432,4.128,433,3.389,438,6.293,442,4.49,443,3.534,444,3.445,449,4.49,836,5.187,1052,3.663,1110,7.171,1819,7.171,3459,6.654,6321,10.739,6334,7.773,6338,10.625,7668,6.73,8213,8.986,8214,8.986,8215,8.986,8216,10.315,8217,6.828,8218,9.336,8219,8.986,8220,8.986,8221,6.828]],["title/classes/ErrorResponse.html",[0,0.23,1486,4.113]],["body/classes/ErrorResponse.html",[0,0.237,2,0.801,3,0.018,4,0.018,5,0.01,7,0.107,27,0.516,29,0.553,30,0.001,31,0.391,32,0.193,33,0.537,47,0.999,55,2.653,59,2.165,95,0.089,101,0.013,103,0.001,104,0.001,127,1.197,165,0.747,187,0.999,204,4.44,216,2.539,309,5.361,379,2.479,394,5.413,565,6.088,577,5.31,1016,3.382,1253,6.052,1291,5.131,1327,5.025,1473,7.499,1474,4.318,1486,5.776,1487,3.987,1498,8.357,1499,7.02,1500,6.366,1507,6.727,1508,6.528,1510,5.921,1512,8.274,1514,8.749,1515,6.082,1516,8.749,1617,6.094,2621,3.295,2789,3.683,3887,6.444,3888,5.45,3889,6.444,8222,6.976,8223,6.976,8224,9.471,8225,6.976,8226,6.976,8227,6.976,8228,6.976]],["title/classes/ErrorUtils.html",[0,0.23,1440,4.611]],["body/classes/ErrorUtils.html",[0,0.253,2,0.855,3,0.02,4,0.02,5,0.011,7,0.114,8,1.194,27,0.491,29,0.939,30,0.001,31,0.664,32,0.139,33,0.592,35,1.43,47,0.809,59,2.31,95,0.142,101,0.014,103,0.001,104,0.001,145,2.553,187,1.066,204,4.797,227,1.248,234,1.207,334,0.82,371,2.051,379,2.729,558,3.536,627,4.244,806,4.988,1062,5.168,1440,6.761,1472,7.308,3672,8.775,3876,5.813,8229,7.441,8230,9.89,8231,9.89,8232,12.325,8233,9.89,8234,9.89,8235,7.441,8236,8.956,8237,9.89,8238,7.441,8239,9.89,8240,7.441,8241,9.898,8242,9.89,8243,7.441,8244,7.441,8245,11.839,8246,7.441]],["title/injectables/EtherpadService.html",[105,0.89,8247,5.64]],["body/injectables/EtherpadService.html",[0,0.27,3,0.021,4,0.021,5,0.011,7,0.122,8,1.245,26,2.532,27,0.428,29,0.818,30,0.001,31,0.578,32,0.161,33,0.515,35,0.957,36,2.241,39,2.763,47,0.956,94,3.766,95,0.156,101,0.02,103,0.001,104,0.001,105,1.359,107,1.897,111,1.585,112,2.57,127,1.001,163,3.251,187,1.135,204,3.537,215,2.565,216,1.466,217,1.511,221,1.868,227,1.086,234,1.286,371,2.184,766,3.406,784,4.183,883,3.323,1052,4.67,1053,5.381,1158,4.217,1474,4.119,1545,2.532,2586,4.183,2675,5.956,8247,8.618,8248,7.924,8249,10.308,8250,6.922,8251,9.343,8252,7.924,8253,10.308,8254,7.924,8255,7.32,8256,6.922,8257,10.308,8258,7.924,8259,7.924,8260,7.924,8261,7.924,8262,7.32,8263,7.924,8264,7.32,8265,5.623]],["title/classes/ExternalGroupDto.html",[0,0.23,8266,5.126]],["body/classes/ExternalGroupDto.html",[0,0.277,2,0.934,3,0.022,4,0.022,5,0.011,7,0.125,27,0.556,29,0.645,30,0.001,31,0.687,32,0.192,33,0.58,47,0.946,83,3.687,95,0.134,101,0.016,103,0.001,104,0.001,127,1.028,165,0.827,200,2.65,405,2.826,595,2.8,854,5.853,1277,4.195,2136,3.255,2621,3.842,3091,5.289,4303,3.568,5236,5.084,6744,4.846,6745,5.02,8266,9.637,8267,11.306,8268,8.132,8269,10.134,8270,8.598,8271,10.483,8272,8.132,8273,8.132,8274,8.132,8275,9.351,8276,8.132,8277,8.132,8278,9.062,8279,8.132,8280,6.799,8281,7.512,8282,7.104,8283,7.104,8284,7.104,8285,7.104,8286,7.104,8287,7.104,8288,8.132,8289,8.132]],["title/classes/ExternalGroupUserDto.html",[0,0.23,8278,5.27]],["body/classes/ExternalGroupUserDto.html",[0,0.32,2,1.08,3,0.025,4,0.025,5,0.013,7,0.145,27,0.515,29,0.746,30,0.001,31,0.527,32,0.174,33,0.47,47,0.836,95,0.121,99,1.596,101,0.018,103,0.001,104,0.001,127,1.189,165,0.906,405,3.096,595,3.239,1277,6.66,4538,7.624,8267,10.796,8278,10.344,8290,8.689,8291,8.334,8292,10.61,8293,8.689,8294,8.217,8295,9.406,8296,8.689,8297,8.689]],["title/classes/ExternalSchoolDto.html",[0,0.23,8298,5]],["body/classes/ExternalSchoolDto.html",[0,0.316,2,1.065,3,0.025,4,0.025,5,0.013,7,0.143,27,0.533,29,0.736,30,0.001,31,0.721,32,0.18,33,0.616,47,0.978,101,0.018,103,0.001,104,0.001,127,1.172,165,0.899,405,3.07,595,3.194,854,6.218,2136,3.713,4303,4.07,6744,5.528,6745,5.726,8267,11.027,8298,9.776,8299,9.276,8300,7.703,8301,11.388,8302,9.276,8303,9.276,8304,6.875,8305,7.478]],["title/classes/ExternalSource.html",[0,0.23,8306,4.888]],["body/classes/ExternalSource.html",[0,0.327,2,1.104,3,0.025,4,0.025,5,0.014,7,0.148,27,0.519,29,0.762,30,0.001,31,0.539,32,0.175,33,0.48,47,0.947,48,5.876,101,0.018,103,0.001,104,0.001,127,1.214,165,0.918,405,3.136,417,7.121,418,7.746,595,3.308,854,6.315,6744,5.726,6745,5.931,8306,9.652,8307,13.006,8308,9.608,8309,11.635,8310,9.608]],["title/classes/ExternalSourceEntity.html",[0,0.23,8311,5.27]],["body/classes/ExternalSourceEntity.html",[0,0.303,2,1.023,3,0.024,4,0.024,5,0.013,7,0.137,27,0.502,29,0.707,30,0.001,31,0.499,32,0.17,33,0.445,47,0.881,95,0.142,96,2.408,101,0.021,103,0.001,104,0.001,127,1.125,165,0.876,240,3.792,334,0.981,364,2.059,398,2.608,405,2.993,595,3.067,854,6.392,1114,5.576,2618,5.685,4926,5.122,6627,5.986,6744,5.308,6745,5.498,8311,8.675,8312,11.703,8313,8.228,8314,11.067,8315,11.105,8316,8.906,8317,6.601,8318,6.958,8319,7.446]],["title/interfaces/ExternalSourceEntityProps.html",[334,0.743,8314,5.893]],["body/interfaces/ExternalSourceEntityProps.html",[0,0.318,3,0.025,4,0.025,5,0.013,7,0.144,30,0.001,32,0.16,47,0.938,95,0.147,96,2.525,101,0.022,103,0.001,104,0.001,165,0.902,240,3.584,334,1.029,336,2.276,398,2.736,405,2.518,854,6.668,1114,5.683,2618,5.855,4926,5.275,6744,5.566,6745,5.766,8311,7.297,8312,8.629,8313,8.629,8314,10.798,8317,6.923,8318,7.297,8319,7.809]],["title/classes/ExternalTool.html",[0,0.23,158,3.38]],["body/classes/ExternalTool.html",[0,0.197,2,0.666,3,0.015,4,0.015,5,0.008,7,0.089,8,1.005,27,0.551,29,0.958,30,0.001,31,0.678,32,0.185,33,0.659,34,1.671,35,1.176,47,0.967,55,2.479,95,0.144,101,0.016,103,0.001,104,0.001,127,0.733,136,6.652,150,3.903,154,5.739,158,4.171,165,0.657,194,3.779,198,2.774,214,2.74,227,1.026,236,6.206,334,0.639,347,2.391,404,1.505,405,2.244,595,1.997,596,1.761,627,3.652,1939,6.143,2084,4.675,2085,4.849,2136,2.321,2599,7.71,2600,5.797,2603,8.955,2606,3.193,4303,2.545,4945,5.709,5292,5.679,5600,4.531,5604,8.086,5606,5.358,5612,4.202,5614,4.531,5615,4.116,5616,4.407,5623,3.836,5624,4.202,5640,6.023,5656,3.779,5659,6.503,6090,3.222,6362,4.531,6991,6.341,6992,3.725,7024,4.037,7025,4.299,7028,4.299,7029,4.675,7124,8.313,7125,8.499,7126,8.019,7145,3.898,7149,3.965,7172,6.933,8320,11.602,8321,8.325,8322,8.325,8323,8.325,8324,5.8,8325,5.8,8326,5.8,8327,5.8,8328,5.8,8329,5.8,8330,5.8,8331,5.8,8332,7.69,8333,5.8,8334,7.69,8335,5.8,8336,5.066,8337,5.358,8338,5.066,8339,7.272]],["title/classes/ExternalToolConfig.html",[0,0.23,2603,5]],["body/classes/ExternalToolConfig.html",[0,0.316,2,1.068,3,0.025,4,0.025,5,0.013,7,0.143,9,4.447,27,0.512,29,0.738,30,0.001,31,0.521,32,0.188,33,0.465,47,0.83,95,0.119,101,0.018,103,0.001,104,0.001,127,1.175,165,0.9,198,4.447,209,4.428,238,6.674,405,3.074,595,3.201,2600,5.614,2602,7.773,2603,9.782,2604,8.589,2606,6.791,2610,6.598,2621,4.392,2622,6.598,5236,5.812,8340,12.861,8341,11.404]],["title/classes/ExternalToolConfigCreateParams.html",[0,0.23,2626,4.888]],["body/classes/ExternalToolConfigCreateParams.html",[0,0.331,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,9,6.568,27,0.486,30,0.001,32,0.187,47,0.853,95,0.125,101,0.019,103,0.001,104,0.001,165,0.925,198,4.651,209,4.331,238,6.806,2600,5.491,2606,6.926,2625,8.983,2626,8.492,8342,12.58,8343,9.724,8344,9.724]],["title/classes/ExternalToolConfigEntity.html",[0,0.23,2614,5.438]],["body/classes/ExternalToolConfigEntity.html",[0,0.301,2,1.016,3,0.023,4,0.023,5,0.012,7,0.136,9,5.289,27,0.501,29,0.702,30,0.001,31,0.496,32,0.189,33,0.442,47,0.805,95,0.142,96,2.392,101,0.017,103,0.001,104,0.001,127,1.118,165,0.873,198,4.232,209,4.351,238,6.527,240,3.78,364,2.05,369,1.956,398,2.591,405,2.981,595,3.046,1031,3.867,2600,5.517,2606,6.642,2610,6.279,2613,7.397,2614,10.488,2618,5.662,2621,4.179,2622,6.279,3399,6.279,5236,5.531,8345,12.639,8346,11.059,8347,8.848]],["title/classes/ExternalToolConfigResponse.html",[0,0.23,2636,5.438]],["body/classes/ExternalToolConfigResponse.html",[0,0.331,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,9,6.568,27,0.486,30,0.001,32,0.187,47,0.853,95,0.125,101,0.019,103,0.001,104,0.001,165,0.925,198,4.651,209,4.331,238,6.806,2600,5.491,2606,6.926,2635,7.839,2636,9.447,8348,12.58,8349,9.724,8350,9.724]],["title/injectables/ExternalToolConfigurationService.html",[105,0.89,8351,5.438]],["body/injectables/ExternalToolConfigurationService.html",[0,0.19,3,0.015,4,0.015,5,0.008,7,0.086,8,0.98,26,2.185,27,0.461,29,0.882,30,0.001,31,0.623,32,0.156,33,0.555,35,1.264,95,0.16,99,0.95,101,0.011,103,0,104,0,105,1.07,107,1.34,111,1.12,116,4.201,127,0.707,136,5.073,139,7.599,140,6.559,145,1.445,148,1.732,154,2.552,158,6.802,167,3.098,187,0.802,192,1.669,194,3.647,195,7.036,198,2.677,199,2.137,200,2.644,201,4.25,209,4.297,216,1.035,217,1.615,227,1.26,276,6.542,277,4.19,290,3.231,291,5.171,347,2.134,369,1.238,839,2.628,1014,5.138,1822,3.973,2485,2.418,2600,5.058,5857,4.513,8351,6.542,8352,8.806,8353,5.171,8354,9.545,8355,9.545,8356,8.115,8357,8.115,8358,5.171,8359,7.954,8360,5.598,8361,7.253,8362,5.598,8363,10.266,8364,5.598,8365,7.695,8366,10.237,8367,5.598,8368,8.818,8369,5.598,8370,6.542,8371,8.115,8372,8.818,8373,5.598,8374,8.115,8375,5.598,8376,5.598,8377,5.598,8378,5.598,8379,5.598,8380,9.145,8381,5.598,8382,6.785,8383,5.598,8384,5.598,8385,5.598,8386,8.115,8387,5.598,8388,4.68,8389,5.598,8390,5.598,8391,5.598,8392,4.68,8393,5.598,8394,5.598,8395,11.113,8396,5.598,8397,5.598,8398,5.598]],["title/injectables/ExternalToolConfigurationUc.html",[105,0.89,8399,5.64]],["body/injectables/ExternalToolConfigurationUc.html",[0,0.134,3,0.01,4,0.01,5,0.006,7,0.061,8,0.751,26,2.859,27,0.44,29,0.84,30,0.001,31,0.594,32,0.154,33,0.529,34,0.676,35,1.222,36,2.608,39,3.163,95,0.158,99,0.668,100,1.318,101,0.008,103,0,104,0,105,0.82,107,0.943,111,2.4,112,2.87,116,3.884,127,0.785,139,7.193,140,6.395,158,5.661,187,0.564,192,1.853,195,2.647,197,5.878,198,1.883,199,4.919,200,2.849,201,3.255,209,4.245,216,1.871,217,1.66,221,2.906,227,0.922,234,1.009,279,4.504,281,4.607,284,4.641,305,1.789,766,1.693,839,1.849,843,2.713,1014,3.78,1379,3.746,1862,6.497,1868,2.494,1977,2.741,2485,1.701,2600,4.792,2686,2.096,2767,1.775,3027,2.251,3129,3.174,4227,3.78,4630,3.23,4714,5.211,5275,8.137,5641,6.336,5664,5.398,5707,6.481,5720,7.675,5857,3.174,5944,6.408,5954,3.174,5957,5.43,5965,3.44,5971,5.742,5976,6.592,5977,7.85,5985,4.178,5990,5.197,5995,3.638,8351,8.538,8363,5.742,8365,6.207,8366,5.197,8368,7.113,8370,5.011,8372,5.742,8380,5.43,8392,3.292,8399,5.197,8400,10.142,8401,3.638,8402,7.113,8403,6.727,8404,7.113,8405,5.742,8406,7.7,8407,7.7,8408,3.076,8409,7.85,8410,3.938,8411,3.638,8412,3.938,8413,3.44,8414,3.938,8415,3.938,8416,3.938,8417,6.216,8418,3.638,8419,3.938,8420,3.938,8421,3.938,8422,3.938,8423,3.638,8424,3.638,8425,3.44,8426,6.216,8427,6.216,8428,5.742,8429,5.742,8430,3.638,8431,3.938,8432,3.938,8433,6.216,8434,7.7,8435,3.174,8436,6.216,8437,5.742,8438,5.742,8439,3.938,8440,3.938,8441,6.216,8442,3.938,8443,3.938,8444,6.216,8445,3.938,8446,6.216,8447,3.938,8448,5.742,8449,5.43,8450,5.742,8451,5.742,8452,5.43]],["title/classes/ExternalToolCreateParams.html",[0,0.23,8453,5.64]],["body/classes/ExternalToolCreateParams.html",[0,0.348,2,0.727,3,0.017,4,0.017,5,0.009,7,0.097,27,0.514,29,0.81,30,0.001,31,0.677,32,0.186,33,0.603,47,0.879,95,0.155,101,0.012,103,0.001,104,0.001,144,2.792,145,1.633,150,3.747,154,5.045,165,0.699,198,3.027,209,4.353,236,5.958,240,1.983,347,2.255,364,2.297,369,2.258,373,5.393,374,2.022,375,4.49,376,1.485,467,3.131,470,4.662,471,4.709,731,3.468,1508,3.582,2422,5.401,2489,3.617,2600,5.519,2606,3.484,2609,4.405,2623,9.389,2626,6.417,2627,4.491,3058,6.564,4039,5.102,4040,4.327,4071,4.327,4072,6.758,5418,5.61,5640,5.782,5729,6.417,5732,5.291,5733,5.291,5734,5.291,5739,4.186,5740,5.897,6991,6.088,7145,4.254,7149,4.327,7178,9.389,7186,6.729,8038,6.285,8039,4.491,8040,6.285,8453,7.404,8454,10.192,8455,5.102,8456,9.252,8457,9.738,8458,5.529,8459,5.846,8460,6.329,8461,6.329,8462,5.846,8463,5.529,8464,6.329,8465,6.329,8466,6.329,8467,5.846,8468,6.329,8469,5.846,8470,6.329,8471,6.329]],["title/entities/ExternalToolEntity.html",[380,1.411,8472,4.787]],["body/entities/ExternalToolEntity.html",[0,0.218,3,0.017,4,0.017,5,0.009,7,0.099,27,0.535,29,0.817,30,0.001,31,0.577,32,0.183,33,0.634,47,0.924,55,1.968,95,0.143,96,1.735,101,0.017,103,0.001,104,0.001,150,3.776,154,5.077,165,0.706,216,1.187,236,6.004,240,4.133,290,3.706,347,2.269,364,2.389,369,2.885,370,3.906,380,1.871,381,2.113,386,5.883,394,5.112,398,1.88,399,3.503,402,2.641,404,1.161,405,1.73,406,2.051,1508,3.633,1925,4.649,2084,5.175,2085,5.367,2136,2.57,2600,5.697,2611,8.976,4287,6.348,4293,5.57,4294,3.869,4303,2.817,4945,5.523,5623,4.246,5624,4.652,5640,5.827,5656,4.183,5659,5.015,5674,5.175,6090,3.566,6362,5.015,6991,6.135,6992,4.123,7024,4.469,7025,4.758,7028,4.758,7029,5.175,7086,8.976,8338,5.608,8472,6.348,8473,13.052,8474,8.607,8475,8.976,8476,8.976,8477,6.42,8478,6.42,8479,6.42,8480,6.42,8481,6.42,8482,6.42,8483,6.42,8484,6.42,8485,6.42,8486,6.42,8487,7.478,8488,6.42,8489,6.42,8490,6.42]],["title/classes/ExternalToolEntityFactory.html",[0,0.23,8491,6.231]],["body/classes/ExternalToolEntityFactory.html",[0,0.135,2,0.457,3,0.011,4,0.011,5,0.006,7,0.061,8,0.757,27,0.532,29,1.009,30,0.001,31,0.713,32,0.185,33,0.601,34,1.331,35,1.369,47,0.802,55,2.34,59,2.97,95,0.113,101,0.015,103,0,104,0,127,0.503,138,2.722,144,3.012,146,2.676,148,1.232,150,1.46,154,4.011,165,0.495,185,4.892,195,2.676,196,2.825,200,1.297,209,3.662,216,1.159,217,1.403,227,1.121,234,1.428,236,2.322,238,4.76,277,1.593,279,2.884,290,2.298,325,2.95,329,3.419,331,2.488,359,2.174,366,2.192,369,0.88,371,2.138,379,2.028,380,2.002,381,2.063,404,1.133,461,0.918,471,1.694,538,2.811,596,3.707,627,1.952,660,6.883,661,4.282,662,4.932,665,3.515,666,4.932,667,5.323,668,3.515,669,3.515,670,3.515,671,3.451,672,3.941,673,4.348,674,6.334,675,5.268,676,6.703,677,2.253,682,2.232,683,3.515,684,2.253,685,4.608,686,4.801,687,4.081,688,4.644,689,3.482,690,2.232,691,2.085,692,3.787,693,2.172,694,2.136,695,2.232,696,4.538,697,2.253,698,4.269,699,2.232,700,7.071,701,3.849,702,6.178,703,2.253,704,3.832,705,2.232,706,2.253,707,2.232,708,2.253,709,2.232,710,2.521,711,2.372,712,2.232,713,5.596,714,2.253,715,2.232,716,3.515,717,3.451,718,3.515,719,2.253,720,2.154,721,2.136,722,1.756,723,2.232,724,2.232,725,2.232,726,2.253,727,2.253,728,1.559,729,2.232,730,2.253,731,2.455,732,2.232,733,2.253,735,2.298,736,2.346,737,5.703,905,1.653,1696,3.583,2076,3.309,2088,3.677,2606,2.192,2609,5.398,2611,6.251,4945,2.136,5369,4.026,5472,3.098,5602,1.994,5640,2.253,5686,2.594,5703,2.95,6968,2.556,6974,2.521,6976,3.971,6977,3.328,6978,2.556,6989,2.521,6991,2.372,7063,2.95,7086,5.054,7122,2.884,7127,2.633,7145,2.676,7152,3.328,7154,2.771,7155,4.763,7161,3.328,7171,7.355,7173,3.328,8472,4.449,8474,3.328,8475,5.054,8476,5.054,8487,5.241,8491,7.164,8492,10.164,8493,3.981,8494,8.797,8495,8.127,8496,5.791,8497,5.791,8498,3.981,8499,3.981,8500,3.981,8501,5.791,8502,3.981,8503,6.269,8504,3.981,8505,8.797,8506,3.981,8507,3.981,8508,3.209,8509,3.328,8510,3.981,8511,3.981,8512,3.981,8513,3.981]],["title/classes/ExternalToolFactory.html",[0,0.23,7163,5.64]],["body/classes/ExternalToolFactory.html",[0,0.252,2,0.425,3,0.01,4,0.01,5,0.005,7,0.057,8,0.715,27,0.521,29,1.003,30,0.001,31,0.697,32,0.183,33,0.599,34,1.016,35,1.337,47,0.431,55,2.552,59,3.334,95,0.118,101,0.018,103,0,104,0,127,0.468,136,3.7,138,2.57,144,2.936,146,2.488,148,1.146,150,1.358,154,3.371,158,1.855,165,0.467,185,4.99,195,2.488,196,2.627,200,1.206,201,1.939,209,1.275,216,1.095,217,1.582,227,1.222,236,2.159,238,4,277,3.697,278,2.813,279,4.288,281,2.744,290,2.137,325,2.744,329,3.164,331,2.314,359,2.052,366,2.038,371,2.328,379,1.704,380,1.547,381,1.948,404,1.527,461,0.853,471,1.575,538,2.653,596,3.642,627,1.843,660,6.545,661,4.15,662,4.736,665,3.318,666,4.736,667,5.043,668,3.318,669,3.318,670,3.318,671,3.258,672,3.758,673,4.145,674,6.198,675,5.084,676,6.522,677,2.095,682,2.076,683,3.318,684,2.095,685,4.424,686,4.609,687,3.919,688,4.459,689,3.288,690,2.076,691,1.939,692,3.67,693,2.02,694,1.986,695,2.076,696,4.357,697,2.095,698,4.071,699,2.076,700,7.444,701,3.752,702,6.022,703,2.095,704,2.925,705,2.076,706,2.095,707,2.076,708,2.095,709,2.076,712,2.076,713,5.422,714,2.095,715,2.076,716,3.318,717,3.258,718,3.318,719,2.095,720,2.003,721,1.986,722,1.633,723,2.076,724,2.076,725,2.076,726,2.095,727,2.095,728,1.45,729,2.076,730,2.095,731,2.318,732,2.076,733,2.095,735,2.137,736,2.182,737,5.033,905,1.538,1508,2.095,1696,3.382,2076,3.124,2599,2.683,2606,2.038,2609,2.577,4335,6.554,4337,2.683,4945,1.986,5472,2.925,5602,1.855,5640,2.095,5697,2.985,5702,2.892,5703,2.744,6968,2.378,6974,2.345,6976,2.345,6978,2.378,6989,2.345,6991,2.206,7117,4.948,7118,8.068,7120,3.234,7122,2.683,7123,4.387,7124,2.892,7125,2.683,7126,2.531,7127,2.449,7128,3.234,7129,3.234,7130,3.234,7131,6.459,7132,4.948,7133,3.234,7134,3.567,7135,2.985,7136,2.744,7137,2.813,7138,3.234,7139,2.744,7140,3.234,7141,3.234,7142,3.095,7143,3.234,7144,3.234,7145,2.488,7146,3.234,7147,3.234,7148,3.234,7149,2.531,7150,3.234,7151,3.095,7152,3.095,7153,3.234,7154,2.577,7155,4.497,7156,5.17,7157,6.459,7158,5.17,7159,5.17,7160,3.234,7161,3.095,7162,2.892,7163,6.182,7164,5.17,7165,3.234,7166,5.17,7167,3.234,7168,5.17,7169,8.604,7170,3.234,7171,7.062,7172,2.412,7173,3.095,7174,3.234,7175,3.234,7176,3.234,7177,3.234,8495,5.467,8497,5.467,8514,5.918,8515,3.702,8516,3.702,8517,3.702,8518,3.702]],["title/classes/ExternalToolIdParams.html",[0,0.23,8519,5.893]],["body/classes/ExternalToolIdParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,209,4.035,364,1.803,368,4.629,369,2.591,370,3.244,371,3.23,374,3.107,376,2.281,467,3.15,478,6.901,1000,5.012,2600,5.115,5639,9.827,5708,8.495,5709,8.495,8454,9.447,8519,10.238]],["title/classes/ExternalToolLogo.html",[0,0.23,8520,5.64]],["body/classes/ExternalToolLogo.html",[0,0.321,2,1.083,3,0.025,4,0.025,5,0.013,7,0.145,27,0.515,29,0.748,30,0.001,31,0.529,32,0.174,33,0.471,47,0.838,101,0.018,103,0.001,104,0.001,127,1.191,165,0.908,209,4.449,2600,5.641,5562,8.639,6866,9.616,7172,8.087,8320,11.289,8336,8.236,8520,11.268,8521,9.428,8522,11.502,8523,11.502,8524,9.428,8525,9.428,8526,9.428,8527,8.71]],["title/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.23,8528,5.893]],["body/classes/ExternalToolLogoFetchFailedLoggableException.html",[0,0.228,2,0.769,3,0.018,4,0.018,5,0.009,7,0.103,8,1.112,27,0.532,29,0.531,30,0.001,31,0.376,32,0.186,33,0.526,35,1.112,47,0.895,55,1.473,59,2.079,95,0.135,101,0.013,103,0.001,104,0.001,111,1.34,127,0.846,163,2.112,165,0.727,187,0.959,200,3.43,204,3.89,209,4.23,214,3.032,215,2.168,216,2.479,227,0.706,364,2.204,404,1.665,406,2.14,558,3.183,564,2.486,596,3.731,798,7.088,1013,5.199,1016,2.392,1253,4.856,1291,2.85,1327,4.479,1472,8.029,1473,6.017,1474,3.849,1475,6.761,1479,4.364,1480,3.755,1481,4.364,1482,4.364,1483,4.364,1484,4.364,1485,4.364,1486,4.084,1487,7.326,1493,4.242,1542,5.733,1543,5.471,1545,2.14,1547,5.642,2600,4.595,2723,9.14,5640,5.959,5656,4.364,7172,8.004,8137,5.471,8138,5.696,8528,8.046,8529,8.487,8530,4.301,8531,6.187,8532,4.853,8533,5.851,8534,9.211,8535,7.701,8536,5.6,8537,3.948,8538,4.134,8539,6.697]],["title/classes/ExternalToolLogoFetchedLoggable.html",[0,0.23,8540,5.893]],["body/classes/ExternalToolLogoFetchedLoggable.html",[0,0.302,2,1.018,3,0.024,4,0.024,5,0.013,7,0.136,8,1.337,27,0.46,29,0.703,30,0.001,31,0.497,32,0.155,33,0.443,35,1.071,47,0.879,95,0.114,101,0.017,103,0.001,104,0.001,127,1.12,163,2.796,200,2.889,209,4.355,214,3.645,215,2.87,216,1.64,227,0.935,1327,3.503,1537,7.746,1542,5.636,1543,6.276,1545,2.833,1547,6.293,2600,5.271,5640,6.835,5656,5.777,7172,8.241,8137,6.276,8138,6.534,8529,9.735,8531,8.191,8535,10.575,8540,9.674,8541,8.867,8542,8.867,8543,8.867]],["title/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.23,8544,5.893]],["body/classes/ExternalToolLogoNotFoundLoggableException.html",[0,0.291,2,0.984,3,0.023,4,0.023,5,0.012,7,0.132,8,1.309,27,0.45,29,0.679,30,0.001,31,0.48,32,0.152,33,0.428,35,1.034,47,0.866,95,0.139,101,0.016,103,0.001,104,0.001,127,1.082,163,2.701,187,1.227,200,2.791,209,4.301,214,3.566,215,2.772,216,1.584,227,0.903,404,1.959,406,2.736,511,6.395,1327,3.383,1542,6.142,1543,6.177,1545,2.736,1547,6.215,2600,5.188,2686,6.325,5639,9.285,5651,7.161,7172,8.139,8137,6.177,8138,6.431,8529,9.582,8530,5.501,8537,5.049,8538,5.287,8544,9.466,8545,7.912,8546,7.161,8547,7.161,8548,8.565]],["title/classes/ExternalToolLogoService.html",[0,0.23,8409,5]],["body/classes/ExternalToolLogoService.html",[0,0.161,2,0.544,3,0.013,4,0.013,5,0.007,7,0.073,8,0.866,26,2.014,27,0.47,29,0.899,30,0.001,31,0.635,32,0.159,33,0.566,34,1.231,35,1.317,36,2.371,47,0.933,95,0.159,99,0.805,101,0.009,103,0,104,0,111,2.435,112,2.679,127,0.907,145,2.491,148,2.22,154,2.161,158,6.198,187,0.679,200,1.545,204,2.97,209,4.259,216,1.785,217,1.69,221,2.041,227,1.23,234,1.893,247,1.881,305,3.139,696,5.626,784,2.502,806,3.647,839,2.226,1016,1.693,1052,4.618,1158,2.523,1265,7.745,1266,2.709,1267,5.451,1268,3.044,1291,2.017,1379,2.857,1542,2.212,1545,1.514,2063,4.994,2074,3.241,2485,2.048,2600,5.092,3672,5.317,5562,6.719,5640,2.683,5976,7.381,5986,3.963,6866,9.754,7172,6.289,7309,3.514,8352,8.865,8358,4.379,8359,7.334,8361,6.577,8409,5.317,8435,3.821,8474,5.998,8520,8.669,8528,4.141,8540,4.141,8544,4.141,8549,4.74,8550,7.174,8551,7.174,8552,7.174,8553,7.174,8554,7.174,8555,7.174,8556,4.74,8557,7.174,8558,4.74,8559,7.174,8560,4.74,8561,4.74,8562,7.174,8563,4.74,8564,7.174,8565,4.74,8566,7.174,8567,4.74,8568,2.794,8569,7.174,8570,4.74,8571,6.267,8572,9.897,8573,4.379,8574,4.74,8575,4.74,8576,7.174,8577,4.74,8578,4.74,8579,4.379,8580,4.74,8581,4.74,8582,4.141,8583,4.141,8584,4.74,8585,4.74,8586,4.74,8587,4.74,8588,4.379,8589,4.74,8590,6.627,8591,4.74,8592,7.174,8593,3.821,8594,8.656,8595,4.74,8596,4.74,8597,3.186,8598,4.74,8599,3.703,8600,4.74,8601,4.74,8602,4.74,8603,4.74,8604,7.174,8605,4.74,8606,4.141,8607,4.74,8608,4.74,8609,7.174,8610,4.74,8611,4.74,8612,4.74,8613,4.74,8614,4.74]],["title/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.23,8571,5.893]],["body/classes/ExternalToolLogoSizeExceededLoggableException.html",[0,0.225,2,0.758,3,0.017,4,0.017,5,0.009,7,0.101,8,1.101,27,0.53,29,0.523,30,0.001,31,0.37,32,0.186,33,0.522,35,1.101,47,0.89,55,2.479,95,0.134,101,0.013,103,0.001,104,0.001,111,1.824,127,1.152,145,2.696,163,2.081,165,0.719,187,0.945,200,3.404,204,3.866,209,4.21,214,3.001,216,2.473,227,0.695,364,2.192,404,1.648,406,2.108,558,3.136,564,2.449,596,3.714,1013,5.167,1015,6.793,1016,2.356,1253,4.818,1291,2.808,1327,4.451,1472,8.004,1473,5.97,1474,3.825,1475,6.708,1479,4.299,1480,3.7,1481,4.299,1482,4.299,1483,4.299,1484,4.299,1485,4.299,1486,4.024,1487,3.771,1493,4.18,1494,5.319,1542,5.707,1543,5.429,1545,2.108,1547,5.606,2600,4.56,5639,8.16,5651,5.517,7172,7.967,8137,5.429,8138,5.652,8529,8.421,8530,4.238,8532,4.781,8537,3.889,8538,4.073,8545,6.096,8571,7.964,8615,11.296,8616,9.843,8617,6.599,8618,9.117,8619,6.599]],["title/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.23,8572,5.893]],["body/classes/ExternalToolLogoWrongFileTypeLoggableException.html",[0,0.232,2,0.784,3,0.018,4,0.018,5,0.018,7,0.105,8,1.127,27,0.534,30,0.001,32,0.193,33,0.466,35,1.127,47,0.774,55,1.501,95,0.136,101,0.013,103,0.001,104,0.001,127,1.343,165,0.736,187,0.977,200,3.464,204,3.92,209,4.253,214,3.07,216,2.443,227,0.719,364,2.218,404,1.686,406,2.18,558,3.243,564,2.532,596,3.752,1013,5.24,1016,2.436,1253,4.903,1291,2.903,1327,4.514,1472,8.061,1473,6.075,1474,3.879,1475,6.827,1479,4.445,1480,3.825,1481,4.445,1482,4.445,1483,4.445,1484,4.445,1485,4.445,1486,4.16,1487,3.899,1493,4.321,1494,5.5,1542,5.765,1543,5.524,1545,2.18,1547,5.686,1720,7.088,2600,4.64,3542,4.811,7172,8.049,7629,9.156,8137,5.524,8138,5.751,8529,8.569,8530,4.381,8532,4.943,8533,5.96,8537,4.021,8538,4.211,8572,8.149,8620,9.328,8621,9.328,8622,8.617]],["title/modules/ExternalToolModule.html",[425,1.808,5718,5.126]],["body/modules/ExternalToolModule.html",[0,0.231,3,0.018,4,0.018,5,0.01,30,0.001,95,0.167,101,0.013,103,0.001,104,0.001,187,0.972,209,2.337,425,2.842,427,2.509,428,2.647,429,2.729,430,2.717,431,2.693,432,3.919,433,3.998,438,5.827,442,3.738,443,2.67,444,2.602,449,3.738,450,2.792,766,2.917,1266,3.879,1545,2.169,2600,2.963,3956,6.248,4556,3.475,4969,3.842,5267,8.937,5277,5.472,5718,10.819,5976,8.752,8104,8.937,8351,10.828,8409,9.532,8623,6.788,8624,6.788,8625,6.788,8626,6.788,8627,9.636,8628,9.373,8629,11.23,8630,11.23,8631,10.313,8632,10.313,8633,10.313,8634,6.788,8635,4.49,8636,4.725,8637,5.675]],["title/injectables/ExternalToolParameterValidationService.html",[105,0.89,8631,5.64]],["body/injectables/ExternalToolParameterValidationService.html",[0,0.135,3,0.011,4,0.011,5,0.006,7,0.061,8,0.756,27,0.491,29,0.954,30,0.001,31,0.684,32,0.171,33,0.591,35,1.401,36,1.91,72,1.865,95,0.136,101,0.008,103,0,104,0,105,0.825,107,0.951,111,2.697,112,2.278,127,0.791,136,8.453,144,2.117,158,5.812,167,2.39,187,0.569,194,2.588,195,2.67,198,1.9,200,1.295,209,4.253,216,1.158,217,1.159,221,1.476,227,1.34,234,1.952,264,3.721,276,3.203,277,1.59,278,4.756,290,7.538,298,8.303,305,3.26,326,5.782,327,3.67,329,2.282,347,2.63,369,2.434,371,2.135,503,6.637,504,2.879,558,1.888,577,2.227,696,5.238,731,1.556,784,2.097,795,2.342,1158,2.114,1238,4.02,1298,1.865,1299,1.843,1300,1.843,1508,6.233,2187,2.67,2298,2.394,2400,2.271,2485,1.716,2600,5.25,3264,7.347,5273,8.303,5302,3.104,5344,3.67,5346,2.516,5361,3.67,5363,5.233,5364,5.233,5369,4.974,5976,6.617,5984,3.104,5986,3.322,5994,5.233,6334,4.357,8352,9.139,8408,3.104,8593,3.203,8631,5.233,8638,6.259,8639,6.259,8640,6.259,8641,6.259,8642,6.259,8643,6.259,8644,6.259,8645,6.259,8646,6.259,8647,6.259,8648,3.471,8649,6.259,8650,3.67,8651,6.259,8652,3.973,8653,6.259,8654,3.973,8655,6.259,8656,3.973,8657,6.259,8658,3.973,8659,6.259,8660,3.973,8661,6.259,8662,3.67,8663,6.259,8664,3.973,8665,6.259,8666,3.973,8667,6.259,8668,3.67,8669,3.973,8670,3.973,8671,3.973,8672,5.885,8673,3.973,8674,3.973,8675,3.973,8676,3.973,8677,3.973,8678,3.973,8679,2.945,8680,3.973,8681,3.973,8682,3.019,8683,3.973,8684,3.973,8685,3.973,8686,3.019,8687,3.973,8688,3.973,8689,3.973,8690,3.973,8691,3.973,8692,3.471,8693,3.973,8694,3.67,8695,3.973,8696,6.259,8697,3.973,8698,6.259,8699,3.973,8700,3.973,8701,3.973,8702,7.154,8703,3.973,8704,3.973,8705,3.973,8706,3.973,8707,6.259,8708,6.259]],["title/interfaces/ExternalToolProps.html",[334,0.743,7124,5.27]],["body/interfaces/ExternalToolProps.html",[0,0.225,3,0.018,4,0.018,5,0.009,7,0.102,29,0.939,30,0.001,31,0.664,32,0.184,33,0.656,34,1.937,47,1.009,55,2.605,95,0.152,101,0.017,103,0.001,104,0.001,136,7.401,150,4.342,154,5.828,158,3.317,165,0.721,194,4.313,198,3.166,214,2.179,227,1.103,236,6.905,334,0.729,336,1.613,347,2.606,404,1.197,405,1.785,627,2.845,1939,5.275,2084,5.337,2085,5.535,2136,2.65,2599,8.578,2600,2.89,2603,7.756,2606,3.645,4303,2.905,4945,6.352,5292,5.329,5600,5.172,5604,5.03,5614,5.172,5615,4.698,5616,5.03,5623,4.379,5624,4.797,5640,6.701,5656,4.313,5659,7.138,6090,3.678,6362,5.172,6991,7.055,6992,4.252,7024,4.608,7025,4.907,7028,4.907,7029,5.337,7124,8.175,7125,8.869,7126,8.368,7145,4.45,7149,4.526,7172,7.713,8320,5.783,8332,6.116,8334,6.116,8336,5.783,8337,6.116,8338,5.783,8339,7.982]],["title/entities/ExternalToolPseudonymEntity.html",[380,1.411,8709,5.64]],["body/entities/ExternalToolPseudonymEntity.html",[0,0.277,3,0.022,4,0.022,5,0.011,7,0.125,26,2.188,27,0.481,30,0.001,32,0.163,34,1.396,39,3.4,47,0.845,49,5.151,95,0.157,96,2.834,97,3.46,99,1.38,101,0.02,103,0.001,104,0.001,165,0.915,167,3.105,200,2.65,209,4.366,240,4.069,334,0.896,364,2.15,380,2.193,381,2.677,394,6.63,398,2.382,399,4.105,402,3.346,404,1.47,405,2.192,406,2.598,415,4.438,416,5.223,618,3.46,619,5.991,4294,4.901,8568,7.475,8709,8.764,8710,11.32,8711,7.512,8712,7.984,8713,7.104,8714,8.132,8715,8.132,8716,8.132,8717,8.764,8718,6.179,8719,6.799,8720,6.799,8721,6.028,8722,6.353]],["title/injectables/ExternalToolPseudonymRepo.html",[105,0.89,8723,5.64]],["body/injectables/ExternalToolPseudonymRepo.html",[0,0.18,3,0.014,4,0.014,5,0.007,7,0.081,8,0.939,13,5.519,26,2.812,27,0.5,29,0.956,30,0.001,31,0.676,32,0.169,33,0.602,34,0.907,35,1.418,36,2.817,39,3.352,42,5.519,49,2.059,95,0.131,96,1.428,97,2.248,99,0.896,101,0.01,103,0,104,0,105,1.026,107,1.264,112,2.955,127,0.667,145,1.363,167,2.969,187,0.757,209,4.234,215,1.71,216,0.977,217,1.649,221,2.401,227,1.27,234,2.029,380,2.52,381,1.738,591,2.259,592,2.33,661,4.784,921,7.738,1857,4.642,2395,5.82,2417,3.55,2441,4.126,2446,3.748,2459,4.416,2835,4.635,3280,3.677,3285,4.743,3348,4.258,4355,3.392,4369,4.416,4370,4.416,8568,7.371,8709,10.281,8712,8.639,8717,8.514,8718,5.91,8723,6.503,8724,12.297,8725,5.282,8726,7.185,8727,6.794,8728,7.185,8729,7.185,8730,6.794,8731,7.185,8732,5.282,8733,7.185,8734,5.282,8735,6.794,8736,5.282,8737,5.282,8738,7.185,8739,5.282,8740,7.185,8741,5.282,8742,7.185,8743,5.282,8744,7.185,8745,5.282,8746,5.282,8747,7.185,8748,9.407,8749,5.282,8750,5.282,8751,4.614,8752,4.879,8753,5.282,8754,4.879,8755,5.282,8756,4.614,8757,4.879,8758,6.794,8759,5.282,8760,4.879,8761,4.879,8762,4.879,8763,4.879,8764,4.879,8765,4.879]],["title/injectables/ExternalToolRepo.html",[105,0.89,8632,5.64]],["body/injectables/ExternalToolRepo.html",[0,0.131,3,0.01,4,0.01,5,0.005,7,0.059,8,0.739,10,2.472,12,2.823,18,3.025,26,2.276,27,0.533,29,1.011,30,0.001,31,0.725,32,0.181,33,0.637,34,1.305,35,1.528,36,2.698,40,1.859,47,0.731,55,0.85,56,1.859,58,2.446,59,1.199,95,0.15,96,1.655,97,1.643,99,0.655,101,0.007,103,0,104,0,105,0.807,107,0.924,111,2.181,112,2.96,127,0.488,148,1.195,154,2.791,158,5.983,165,0.305,167,4.014,200,1.258,201,2.023,216,1.132,217,1.637,221,2.039,227,1.237,234,1.234,277,3.043,359,2.123,380,2.406,381,2.015,398,1.131,404,1.107,450,1.589,529,1.704,595,1.33,596,3.68,661,3.204,701,2.656,878,4.261,884,2.891,885,4.692,915,2.126,935,3.229,944,3.568,964,2.64,1008,3.34,1014,4.246,1052,3.526,1053,3.837,1545,1.234,1857,5.02,2092,2.186,2185,3.464,2383,8.57,2385,4.344,2386,4.344,2387,4.344,2388,4.344,2389,4.261,2390,4.261,2391,4.344,2392,4.261,2393,4.344,2394,2.798,2395,4.944,2397,4.435,2398,2.741,2400,4.944,2401,2.741,2403,2.741,2405,5.03,2406,4.344,2407,2.741,2409,2.741,2411,4.344,2415,4.344,2417,4.114,2418,4.261,2420,2.741,2422,2.355,2423,2.355,2424,2.741,2426,2.741,2428,4.344,2429,2.741,2435,2.596,2446,4.344,2447,6.412,2606,4.763,4458,2.863,4630,3.181,5472,3.025,5686,2.516,5703,2.863,5743,3.374,5757,5.118,5758,3.568,5766,2.798,5767,2.798,5768,2.798,5769,2.798,5770,2.798,5771,2.798,5772,2.798,5773,2.798,5774,2.798,5780,3.113,5781,3.374,5782,2.935,5786,2.741,6487,2.355,6775,5.34,6785,4.537,6805,2.863,6806,2.863,6844,2.516,7127,4.049,7633,2.688,8472,8.599,8487,8.388,8632,5.118,8766,8.789,8767,6.121,8768,5.118,8769,6.121,8770,3.862,8771,3.862,8772,6.573,8773,3.862,8774,6.121,8775,3.862,8776,5.118,8777,3.862,8778,6.121,8779,3.568,8780,3.568,8781,2.935,8782,3.568,8783,4.782,8784,3.374,8785,3.862,8786,5.347,8787,3.862,8788,6.121,8789,3.374,8790,3.862,8791,3.568,8792,3.862,8793,3.862,8794,3.862,8795,3.568,8796,5.347,8797,3.568,8798,3.862,8799,3.862]],["title/classes/ExternalToolRepoMapper.html",[0,0.23,5780,5.438]],["body/classes/ExternalToolRepoMapper.html",[0,0.133,2,0.45,3,0.01,4,0.01,5,0.006,7,0.06,8,0.748,27,0.498,29,0.977,30,0.001,31,0.717,32,0.184,33,0.599,34,0.673,35,1.448,95,0.129,101,0.007,103,0,104,0,136,6.854,144,1.694,150,2.273,154,5.466,158,5.299,181,7.148,187,0.562,192,1.17,200,2.019,201,2.054,209,2.133,227,1.263,234,1.974,236,3.614,238,5.465,264,2.624,275,5.413,277,2.48,298,4.841,305,1.783,307,3.874,309,5.717,329,2.571,331,3.874,379,1.428,380,0.821,471,2.637,627,4.264,731,2.426,1696,3.541,1919,1.629,2076,3.271,2389,4.313,2390,4.313,2415,4.397,2417,2.636,2418,4.313,2422,3.779,2570,3.353,2599,8.373,2606,2.159,2609,4.313,2611,8.838,3058,4.593,4355,2.519,4356,3.064,4945,3.325,5147,7.318,5351,5.413,5357,5.413,5363,5.181,5364,5.181,5367,4.995,5369,3.979,5472,3.062,5602,3.105,5640,3.507,5680,8.575,5686,2.556,5702,3.064,5703,2.907,5780,4.995,6974,3.925,6976,3.925,6978,3.979,6989,3.925,6991,3.693,7063,4.593,7086,8.838,7125,8.373,7126,7.9,7127,4.099,7145,4.165,7149,4.236,7154,4.313,7172,2.556,8472,6.192,8474,3.279,8475,8.838,8476,8.838,8487,6.422,8692,5.413,8702,5.724,8766,10.169,8800,3.922,8801,6.196,8802,6.196,8803,6.196,8804,6.196,8805,6.196,8806,6.196,8807,6.196,8808,6.196,8809,6.196,8810,6.196,8811,6.196,8812,3.922,8813,8.726,8814,6.196,8815,3.922,8816,6.196,8817,3.922,8818,6.196,8819,3.922,8820,5.724,8821,6.196,8822,3.922,8823,6.196,8824,3.922,8825,3.922,8826,3.922,8827,6.196,8828,3.922,8829,6.196,8830,3.922,8831,6.196,8832,3.922,8833,5.413,8834,6.196,8835,3.922,8836,2.519,8837,3.922,8838,3.922,8839,3.922,8840,3.427,8841,3.922,8842,3.922,8843,3.922,8844,3.922,8845,6.196,8846,3.427,8847,3.922,8848,3.922,8849,3.922,8850,3.623,8851,3.623,8852,3.922,8853,8.726,8854,8.726,8855,6.196,8856,6.196,8857,5.724,8858,6.196,8859,6.196,8860,6.196,8861,6.196,8862,6.196,8863,6.196,8864,6.196,8865,3.922,8866,3.922,8867,3.922,8868,3.922,8869,3.427,8870,3.623,8871,3.922,8872,3.922,8873,3.922,8874,3.623,8875,3.623,8876,3.922,8877,6.196,8878,6.196,8879,6.196,8880,6.196,8881,5.724,8882,5.724,8883,5.724]],["title/injectables/ExternalToolRequestMapper.html",[105,0.89,8884,5.64]],["body/injectables/ExternalToolRequestMapper.html",[0,0.141,3,0.011,4,0.011,5,0.006,7,0.064,8,0.783,27,0.488,29,0.965,30,0.001,31,0.699,32,0.168,33,0.587,34,0.713,35,1.419,55,1.981,95,0.139,99,0.705,101,0.008,103,0,104,0,105,0.855,107,0.994,111,2.583,116,3.349,144,1.771,145,2.057,146,2.792,150,2.377,154,2.955,158,2.081,167,1.586,185,1.626,187,0.595,195,2.792,196,2.947,198,1.986,209,4.121,217,1.474,227,1.282,236,3.78,277,1.662,278,3.156,279,3.009,281,3.078,310,3.472,312,3.472,314,3.472,320,3.472,323,3.472,324,3.472,325,3.078,329,2.348,331,2.596,379,0.957,471,1.767,806,3.794,905,3.739,982,2.081,1291,3.391,1828,2.89,2485,1.794,2600,5.225,2623,8.341,2769,2.052,3032,6.226,4945,5.999,5369,2.667,5472,2.052,5602,2.081,5615,2.947,5640,3.668,5812,3.348,5820,3.472,5828,3.628,5829,3.472,6021,3.628,6991,3.862,7063,3.078,7162,3.245,7178,7.871,7188,3.472,7194,3.472,7197,3.472,8453,8.164,8456,8.164,8457,7.528,8509,3.472,8772,6.842,8884,5.419,8885,11.057,8886,6.481,8887,6.481,8888,6.481,8889,6.481,8890,7.97,8891,7.97,8892,7.97,8893,7.97,8894,5.987,8895,6.481,8896,6.481,8897,4.153,8898,6.962,8899,6.481,8900,7.528,8901,4.153,8902,6.481,8903,4.153,8904,12.472,8905,9.764,8906,6.481,8907,4.153,8908,9.764,8909,4.153,8910,4.153,8911,9.004,8912,4.153,8913,8.164,8914,4.153,8915,9.004,8916,4.153,8917,4.153,8918,9.004,8919,4.153,8920,7.528,8921,4.153,8922,9.004,8923,5.987,8924,7.528,8925,4.153,8926,5.419,8927,7.034,8928,6.481,8929,8.164,8930,4.153,8931,6.962,8932,3.837,8933,3.837,8934,3.837,8935,3.837,8936,3.837,8937,3.837,8938,3.837,8939,3.628,8940,3.837,8941,3.837,8942,3.837,8943,3.837,8944,3.837,8945,3.837,8946,3.837,8947,3.837,8948,10.853,8949,6.481,8950,4.153,8951,4.153,8952,4.153,8953,8.318,8954,6.481,8955,4.153,8956,4.153,8957,4.153,8958,4.153,8959,4.153,8960,4.153,8961,4.153,8962,6.481,8963,4.153,8964,4.153,8965,4.153,8966,4.153,8967,4.153,8968,4.153,8969,4.153,8970,4.153,8971,4.153,8972,4.153,8973,4.153,8974,4.153,8975,4.153,8976,4.153,8977,4.153,8978,4.153,8979,4.153,8980,4.153,8981,3.837,8982,6.481,8983,3.628,8984,4.153]],["title/classes/ExternalToolResponse.html",[0,0.23,8985,5.438]],["body/classes/ExternalToolResponse.html",[0,0.233,2,0.786,3,0.018,4,0.018,5,0.01,7,0.105,27,0.549,29,0.908,30,0.001,31,0.642,32,0.185,33,0.599,34,1.828,47,0.938,55,2.057,95,0.136,101,0.013,103,0.001,104,0.001,127,0.865,150,3.906,154,5.217,165,0.738,236,6.211,347,2.332,364,2.423,375,4.861,376,1.606,467,3.68,618,2.913,1016,2.445,1508,3.875,2084,5.518,2136,2.74,2600,5.825,2633,8.903,4945,5.713,5623,4.528,5640,6.027,5647,8.319,5650,5.98,5656,4.46,5659,5.348,5832,5.98,5833,7.817,5834,5.98,5835,5.98,5836,5.98,5837,5.98,5838,5.98,5840,5.98,5841,5.98,5842,5.98,5843,5.348,5849,5.98,5851,5.98,6090,3.803,6991,6.346,7024,4.765,7028,5.074,8985,9.657,8986,12.327,8987,9.35,8988,8.903,8989,8.903,8990,5.98,8991,6.846,8992,6.846,8993,6.846,8994,6.846,8995,6.846]],["title/injectables/ExternalToolResponseMapper.html",[105,0.89,8996,5.438]],["body/injectables/ExternalToolResponseMapper.html",[0,0.171,3,0.013,4,0.013,5,0.007,7,0.077,8,0.903,27,0.479,29,0.941,30,0.001,31,0.68,32,0.166,33,0.577,34,0.86,35,1.394,95,0.143,101,0.01,103,0,104,0,105,0.987,107,1.2,111,2.539,136,6.639,146,3.369,150,1.838,154,2.285,158,5.321,187,0.718,192,1.495,194,3.266,195,3.369,196,3.557,198,2.397,200,1.633,209,4.085,217,1.469,227,1.25,234,1.723,236,2.923,274,4.378,275,4.378,276,4.04,277,2.006,278,3.808,279,3.632,281,3.715,310,4.19,312,4.19,314,4.19,320,4.19,323,4.19,324,4.19,325,3.715,331,3.133,379,1.155,471,2.133,564,1.86,627,4.202,806,3.152,974,3.094,982,2.511,1016,2.672,1291,3.809,2485,2.165,2599,7.695,2600,5.179,2633,8.879,4945,2.689,5369,3.219,5602,3.748,5640,4.234,5647,7.754,5947,4.04,6021,4.378,6991,2.987,7063,3.715,7125,7.695,7126,6.786,7162,3.915,7181,3.915,7188,4.19,7194,4.19,7197,4.19,8435,4.04,8450,4.63,8509,4.19,8593,4.04,8672,3.808,8885,10.96,8932,4.63,8933,4.63,8934,4.63,8935,4.63,8936,4.63,8937,4.63,8938,4.63,8939,4.378,8940,4.63,8941,4.63,8942,4.63,8943,4.63,8944,4.63,8945,4.63,8946,4.63,8947,4.63,8948,9.811,8953,6.911,8985,8.002,8988,8.879,8989,8.879,8996,6.031,8997,7.481,8998,7.481,8999,7.481,9000,7.481,9001,7.481,9002,7.481,9003,7.481,9004,7.481,9005,4.63,9006,11.139,9007,7.481,9008,5.012,9009,7.481,9010,5.012,9011,7.481,9012,5.012,9013,7.481,9014,5.012,9015,7.481,9016,9.474,9017,4.63,9018,9.305,9019,7.481,9020,5.012,9021,4.63,9022,4.63,9023,4.63,9024,6.255,9025,5.012,9026,5.012,9027,5.012,9028,5.012,9029,5.012,9030,4.378,9031,5.012,9032,5.012,9033,5.012,9034,5.012,9035,5.012,9036,5.012,9037,5.012,9038,5.012,9039,5.012,9040,5.012,9041,5.012,9042,6.911,9043,5.012,9044,5.012,9045,4.63,9046,4.63,9047,4.378,9048,4.19,9049,4.63,9050,5.012]],["title/classes/ExternalToolScope.html",[0,0.23,8786,5.893]],["body/classes/ExternalToolScope.html",[0,0.239,2,0.808,3,0.019,4,0.019,5,0.01,7,0.108,8,1.151,27,0.538,29,0.959,30,0.001,31,0.737,32,0.182,33,0.604,35,1.151,47,0.908,95,0.122,101,0.013,103,0.001,104,0.001,111,2.494,144,1.923,145,3.43,148,2.177,154,3.208,165,0.752,227,1.138,277,5.261,329,2.073,347,2.541,404,1.722,529,3.104,596,3.673,958,5.884,2432,6.437,5472,5.338,5686,4.585,5871,6.147,5872,6.513,5873,6.513,5874,6.513,5879,6.513,5880,6.513,5881,4.898,5882,4.811,5883,4.898,5884,4.898,5893,4.811,5894,6.513,5895,4.898,5896,4.811,5897,4.898,5898,4.811,5899,7.384,6991,6.437,7127,4.655,8472,4.994,8766,9.678,8786,8.323,9051,9.527,9052,8.801,9053,9.527,9054,9.527,9055,7.037,9056,8.801,9057,7.037,9058,9.527,9059,7.037,9060,6.501]],["title/classes/ExternalToolSearchListResponse.html",[0,0.23,9061,5.64]],["body/classes/ExternalToolSearchListResponse.html",[0,0.263,2,0.889,3,0.021,4,0.021,5,0.011,7,0.119,27,0.518,29,0.614,30,0.001,31,0.434,32,0.188,33,0.624,55,3.059,56,6.167,59,3.151,70,6.42,95,0.145,101,0.015,103,0.001,104,0.001,127,0.978,145,1.998,163,3.937,165,0.801,200,2.522,209,3.495,364,2.229,376,1.816,404,1.835,467,2.729,469,3.415,596,3.652,1005,7.525,1006,5.494,1007,8.06,1008,6.992,1009,5.802,1011,4.119,1013,5.195,1014,3.8,1015,4.3,1016,2.765,1017,5.494,1018,6.615,1019,5.921,1020,5.121,1021,4.119,1022,5.494,1023,5.494,1025,4.903,1026,4.3,2600,4.431,5901,6.762,8985,10.526,8986,9.378,9061,8.488,9062,7.151,9063,7.151]],["title/classes/ExternalToolSearchParams.html",[0,0.23,8900,5.64]],["body/classes/ExternalToolSearchParams.html",[0,0.379,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,27,0.462,30,0.001,31,0.732,32,0.156,33,0.634,34,1.911,47,0.924,95,0.143,101,0.017,103,0.001,104,0.001,165,0.879,200,4.134,209,4.494,364,2.064,374,2.858,375,4.919,376,2.098,379,2.567,470,5.109,471,5.159,1480,6.243,2600,5.292,3544,4.625,5378,7.485,5472,5.992,8454,9.774,8900,9.31,9064,7.815,9065,11.136,9066,8.946,9067,7.815]],["title/interfaces/ExternalToolSearchQuery.html",[334,0.743,8772,5.126]],["body/interfaces/ExternalToolSearchQuery.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,31,0.734,32,0.177,33,0.68,47,0.99,101,0.019,103,0.001,104,0.001,165,0.929,209,3.373,334,1.079,336,2.387,347,2.572,1005,7.26,5472,6.469,6991,7.801,8772,8.944,9068,9.795,9069,9.049]],["title/injectables/ExternalToolService.html",[105,0.89,5976,4.395]],["body/injectables/ExternalToolService.html",[0,0.129,3,0.01,4,0.01,5,0.005,7,0.058,8,0.729,26,2.178,27,0.485,29,0.926,30,0.001,31,0.666,32,0.164,33,0.584,34,1.036,35,1.41,36,2.739,47,0.813,59,1.177,95,0.155,99,0.644,101,0.007,103,0,104,0,105,0.796,107,0.908,111,2.521,112,2.952,127,0.762,139,4.894,145,1.939,154,1.729,158,6.719,187,0.543,192,1.131,198,1.814,200,2.448,201,1.987,206,3.847,209,4.021,216,2.004,217,1.591,221,2.915,227,1.142,234,0.979,284,3.637,305,1.736,444,2.313,450,1.56,529,2.662,701,2.991,784,3.185,839,1.781,1014,2.962,1053,4.629,1158,3.211,1545,1.212,1661,2.471,1966,7.737,2400,3.448,2450,3.822,2485,1.639,2570,2.052,2600,5.188,4556,1.942,5274,8.155,5285,3.058,5402,6.057,5472,4.232,5615,2.692,5755,3.504,5944,3.822,5976,3.931,6260,3.991,6775,5.286,7123,4.472,7126,5.854,8108,2.811,8352,9.031,8370,3.058,8388,3.171,8568,2.236,8630,8.728,8632,8.323,8633,7.16,8635,3.991,8636,2.64,8672,2.882,8772,6.507,8833,6.563,8836,2.436,9024,3.171,9070,6.034,9071,5.271,9072,5.271,9073,6.034,9074,6.034,9075,6.034,9076,7.513,9077,5.271,9078,6.034,9079,7.513,9080,3.793,9081,7.408,9082,7.513,9083,6.205,9084,3.793,9085,6.034,9086,3.793,9087,6.034,9088,3.793,9089,6.034,9090,3.793,9091,6.034,9092,3.793,9093,6.034,9094,3.793,9095,6.034,9096,3.793,9097,3.793,9098,3.793,9099,6.034,9100,6.941,9101,3.793,9102,9.643,9103,6.034,9104,3.793,9105,3.793,9106,8.462,9107,9.954,9108,3.793,9109,8.563,9110,2.692,9111,3.793,9112,3.793,9113,3.058,9114,3.504,9115,5.574,9116,3.793,9117,3.504,9118,5.574,9119,6.034,9120,3.793,9121,3.793,9122,3.793,9123,3.793,9124,3.793,9125,3.793,9126,3.793,9127,3.793,9128,6.034,9129,6.034,9130,6.034,9131,6.034,9132,3.793,9133,3.793,9134,3.793,9135,3.793,9136,3.313,9137,3.793,9138,3.793,9139,3.793,9140,3.793,9141,2.963,9142,3.793,9143,3.793,9144,3.793,9145,3.793,9146,6.034,9147,3.793,9148,3.793,9149,3.793,9150,3.793,9151,3.793,9152,3.793,9153,3.793,9154,3.793,9155,3.793,9156,3.793,9157,3.793,9158,3.793,9159,3.793,9160,3.793,9161,3.793,9162,3.793,9163,3.793]],["title/injectables/ExternalToolServiceMapper.html",[105,0.89,8633,5.64]],["body/injectables/ExternalToolServiceMapper.html",[0,0.309,3,0.024,4,0.024,5,0.013,7,0.139,8,1.356,27,0.376,29,0.719,30,0.001,31,0.684,32,0.127,33,0.453,35,1.095,47,0.888,95,0.156,101,0.017,103,0.001,104,0.001,105,1.481,107,2.17,187,1.299,209,3.866,227,0.956,277,3.629,1596,6.434,1597,7.309,2485,3.917,2600,4.901,5468,6.89,6990,6.72,7126,8.715,8352,8.532,8633,9.388,8635,5.998,8833,10.656,8857,8.376,9106,8.839,9110,6.434,9164,9.067,9165,11.229,9166,11.229,9167,9.067,9168,9.067,9169,9.067,9170,8.376,9171,9.067,9172,7.921,9173,9.067,9174,9.067,9175,8.376,9176,8.376]],["title/classes/ExternalToolSortingMapper.html",[0,0.23,8784,5.893]],["body/classes/ExternalToolSortingMapper.html",[0,0.306,2,1.032,3,0.024,4,0.024,5,0.013,7,0.138,8,1.349,10,3.629,27,0.373,29,0.713,30,0.001,31,0.626,32,0.126,33,0.449,35,1.085,95,0.163,96,2.429,99,1.525,101,0.017,103,0.001,104,0.001,145,2.319,158,4.502,201,4.706,209,3.845,217,1.185,227,0.947,398,2.632,627,3.783,1278,4.862,5686,5.855,6785,9.874,7127,7.387,8472,6.377,8766,9.336,8784,9.755,8927,9.928,9177,8.986,9178,11.167,9179,11.167,9180,8.986,9181,7.513,9182,8.301,9183,8.986,9184,8.301,9185,8.301,9186,10.315,9187,8.301]],["title/injectables/ExternalToolUc.html",[105,0.89,9188,5.64]],["body/injectables/ExternalToolUc.html",[0,0.175,3,0.014,4,0.014,5,0.007,7,0.079,8,0.92,26,2.863,27,0.483,29,0.923,30,0.001,31,0.652,32,0.163,33,0.581,35,1.357,36,2.801,39,3.119,47,0.661,95,0.149,99,0.871,100,1.719,101,0.01,103,0,104,0,105,1.004,107,1.229,111,2.327,112,2.996,127,0.962,154,2.341,158,6.516,187,0.735,209,3.458,216,1.858,217,1.638,221,3.09,227,1.131,234,1.236,461,2.093,529,4.005,701,3.508,766,2.206,843,5.215,1014,3.738,1952,6.242,2485,2.218,2600,5.215,2603,5.645,2767,2.314,3830,3.252,4083,5.351,4945,2.754,5615,3.643,5931,4.485,5944,4.824,5950,4.742,5963,6.653,5976,7.322,6775,6.2,8400,11.038,8408,4.01,8409,8.622,8568,7.194,8588,7.035,8606,6.653,8629,8.397,8772,7.632,8898,10.438,8931,8.774,9024,4.292,9071,6.653,9072,6.653,9077,6.653,9102,4.742,9188,6.367,9189,7.616,9190,8.387,9191,7.035,9192,9.079,9193,5.134,9194,7.616,9195,5.134,9196,7.616,9197,5.134,9198,7.616,9199,5.134,9200,5.134,9201,7.616,9202,5.134,9203,7.616,9204,5.134,9205,10.728,9206,10.728,9207,7.616,9208,5.134,9209,5.134,9210,5.134,9211,7.616,9212,5.134,9213,5.134,9214,5.134,9215,5.134,9216,5.134,9217,4.292]],["title/classes/ExternalToolUpdateParams.html",[0,0.23,8929,5.64]],["body/classes/ExternalToolUpdateParams.html",[0,0.343,2,0.708,3,0.016,4,0.016,5,0.009,7,0.095,27,0.521,29,0.799,30,0.001,31,0.671,32,0.187,33,0.598,34,1.729,47,0.915,95,0.153,101,0.012,103,0.001,104,0.001,144,2.753,145,1.591,150,3.694,154,4.987,165,0.686,198,2.948,209,4.397,236,5.874,240,1.932,347,2.229,364,2.328,369,2.226,373,5.316,374,1.969,375,4.438,376,1.446,467,3.217,470,4.86,471,4.654,731,3.404,1508,3.489,2422,5.301,2489,3.523,2600,5.574,2606,3.393,2609,4.291,2623,9.297,2626,6.299,2627,6.169,3058,6.443,4039,4.969,4040,4.214,4071,4.214,4072,6.662,5418,5.507,5640,5.7,5729,6.299,5732,5.153,5733,5.153,5734,5.153,5739,4.077,5740,5.814,6991,6.002,7145,4.143,7149,4.214,7178,9.297,7186,6.606,8038,6.169,8039,4.374,8040,6.169,8454,10.294,8458,5.385,8459,5.694,8467,5.694,8469,5.694,8913,9.145,8920,9.643,8929,7.268,9218,5.153,9219,6.164,9220,5.385,9221,6.164,9222,5.385,9223,6.164,9224,6.164,9225,6.164,9226,5.694,9227,6.164,9228,6.164,9229,6.164]],["title/injectables/ExternalToolValidationService.html",[105,0.89,8629,5.64]],["body/injectables/ExternalToolValidationService.html",[0,0.179,3,0.014,4,0.014,5,0.007,7,0.081,8,0.935,27,0.47,29,0.899,30,0.001,31,0.635,32,0.164,33,0.566,34,1.578,35,1.307,36,2.613,47,0.67,72,2.464,95,0.15,101,0.01,103,0,104,0,105,1.021,107,1.256,111,2.589,112,2.874,127,0.978,148,2.395,154,3.529,158,6.826,167,3.511,187,0.752,200,2.997,209,4.561,216,1.878,217,0.692,221,2.67,227,0.553,234,1.838,290,4.468,305,3.259,503,6.827,558,2.494,576,3.093,577,2.942,696,4.743,795,3.093,839,2.464,1238,4.971,1696,4.424,2485,2.267,2600,5.114,3544,3.819,5102,4.23,5302,4.099,5976,7.38,5986,4.387,5994,7.689,8352,8.902,8359,7.714,8361,7.714,8408,4.099,8409,8.683,8568,4.562,8582,4.584,8593,6.24,8606,4.584,8629,6.471,8631,9.795,8648,4.584,8650,4.847,8662,4.847,8672,8.226,8694,4.847,9024,6.471,9100,4.847,9114,4.847,9115,4.847,9117,8.495,9230,7.74,9231,7.74,9232,7.74,9233,7.74,9234,7.74,9235,7.74,9236,7.74,9237,5.247,9238,7.74,9239,7.74,9240,5.247,9241,7.74,9242,5.247,9243,5.247,9244,5.247,9245,7.74,9246,5.247,9247,5.247,9248,7.74,9249,5.247,9250,7.74,9251,5.247,9252,5.247,9253,5.247,9254,7.74,9255,5.247,9256,5.247,9257,5.247,9258,5.247,9259,5.247,9260,5.247,9261,5.247,9262,5.247,9263,5.247]],["title/injectables/ExternalToolVersionService.html",[105,0.89,8630,5.64]],["body/injectables/ExternalToolVersionService.html",[0,0.162,3,0.013,4,0.013,5,0.007,7,0.073,8,0.869,27,0.485,29,0.927,30,0.001,31,0.655,32,0.164,33,0.584,35,1.411,95,0.111,101,0.009,103,0,104,0,105,0.949,107,1.139,111,2.681,136,8.797,148,2.226,158,5.683,187,0.681,194,3.1,209,4.116,217,1.719,227,1.323,288,6.645,298,7.554,302,6.645,347,2.613,905,1.976,2485,2.055,2600,5.219,5351,4.156,5357,4.156,5363,3.977,5364,3.977,8352,9.085,8630,6.014,9264,4.757,9265,7.194,9266,7.194,9267,7.194,9268,7.194,9269,7.194,9270,7.194,9271,7.194,9272,7.194,9273,7.194,9274,13.034,9275,4.757,9276,8.674,9277,7.194,9278,4.757,9279,7.194,9280,13.034,9281,4.757,9282,7.194,9283,4.757,9284,7.194,9285,4.757,9286,7.194,9287,4.757,9288,7.194,9289,4.757,9290,7.194,9291,8.674,9292,4.757,9293,4.757,9294,4.757,9295,7.194,9296,4.757,9297,4.757,9298,4.757,9299,4.757,9300,7.194,9301,7.194,9302,7.194,9303,4.757,9304,4.757,9305,4.757,9306,4.757,9307,4.757,9308,4.757,9309,10.962,9310,4.757,9311,11.956,9312,7.194,9313,4.757,9314,4.757,9315,4.757,9316,4.757,9317,4.757,9318,4.757,9319,4.757,9320,4.757,9321,4.757,9322,4.757,9323,4.757,9324,4.757,9325,4.757,9326,9.669,9327,9.669,9328,9.669,9329,4.757,9330,4.757,9331,4.757]],["title/classes/ExternalUserDto.html",[0,0.23,9332,4.888]],["body/classes/ExternalUserDto.html",[0,0.291,2,0.982,3,0.023,4,0.023,5,0.012,7,0.131,27,0.546,29,0.678,30,0.001,31,0.479,32,0.184,33,0.682,47,0.984,95,0.11,99,1.451,101,0.016,103,0.001,104,0.001,127,1.08,165,0.854,405,2.917,595,2.943,851,5.829,852,5.829,853,6.035,854,5.992,3110,5.752,4538,6.721,6744,5.093,6745,5.276,7005,6.677,7006,6.89,8267,11.17,8290,7.895,8292,7.895,8293,7.895,9332,9.33,9333,10.821,9334,8.547,9335,8.547,9336,5.745,9337,6.193,9338,5.745,9339,6.193,9340,6.494,9341,6.89]],["title/injectables/FeathersAuthProvider.html",[105,0.89,1960,5.438]],["body/injectables/FeathersAuthProvider.html",[0,0.197,3,0.015,4,0.015,5,0.008,7,0.089,8,1.005,26,2.884,27,0.487,29,0.93,30,0.001,31,0.658,32,0.164,33,0.586,35,1.361,36,2.777,39,3.239,47,0.821,49,3.797,95,0.136,96,1.568,97,2.468,99,0.984,101,0.011,103,0.001,104,0.001,105,1.098,107,1.388,111,1.948,112,2.999,127,0.733,167,2.214,187,0.831,192,1.729,215,1.877,217,1.685,221,2.657,227,1.236,234,0.941,305,1.669,334,0.639,371,1.599,461,2.849,529,2.558,766,4.186,1236,3.495,1278,3.138,1304,3.836,1916,5.459,1960,6.711,1980,5.066,2433,5.424,2686,4.43,4227,3.88,6723,7.759,6730,6.841,6902,7.407,7907,5.795,8250,5.066,8251,8.499,9342,11.161,9343,5.358,9344,8.325,9345,8.996,9346,7.272,9347,8.325,9348,8.996,9349,5.8,9350,8.325,9351,5.8,9352,5.358,9353,5.8,9354,8.325,9355,5.8,9356,8.325,9357,5.8,9358,5.8,9359,5.8,9360,8.325,9361,8.325,9362,8.325,9363,5.8,9364,5.8,9365,5.8,9366,8.325,9367,8.325,9368,6.503,9369,6.503,9370,5.8,9371,4.849,9372,5.8,9373,5.8,9374,5.8,9375,7.272,9376,5.358,9377,5.8,9378,5.8]],["title/injectables/FeathersAuthorizationService.html",[105,0.89,1953,5.64]],["body/injectables/FeathersAuthorizationService.html",[0,0.197,3,0.015,4,0.015,5,0.008,7,0.089,8,1.004,26,2.806,27,0.441,29,0.844,30,0.001,31,0.596,32,0.149,33,0.531,35,1.36,36,2.548,39,3.313,47,0.854,95,0.125,99,0.983,101,0.011,103,0.001,104,0.001,105,1.097,107,1.386,112,2.823,127,0.732,187,0.83,215,1.875,217,1.402,221,2.655,227,0.876,234,1.35,247,2.298,264,5.407,305,2.393,380,2.452,381,3.5,461,2.944,538,4.768,770,4.902,843,2.528,1110,5.341,1295,6.768,1664,5.059,1916,6.693,1953,6.953,1960,9.451,1987,3.719,2038,5.685,2340,4.669,6723,8.201,6730,7.882,6754,6.319,6902,8.998,9342,10.404,9379,5.791,9380,9.73,9381,8.316,9382,9.73,9383,5.791,9384,5.791,9385,5.791,9386,5.791,9387,6.164,9388,7.682,9389,8.316,9390,5.791,9391,5.791,9392,5.791,9393,7.682,9394,5.791,9395,5.791,9396,5.791,9397,5.791,9398,5.791,9399,5.791,9400,5.791,9401,3.62,9402,5.791,9403,5.791,9404,7.265,9405,5.791,9406,5.791,9407,5.791,9408,8.316,9409,5.791,9410,5.791]],["title/interfaces/FeathersError.html",[334,0.743,8241,5.64]],["body/interfaces/FeathersError.html",[3,0.026,4,0.026,5,0.014,7,0.152,30,0.001,32,0.193,47,0.992,55,2.788,101,0.019,103,0.001,104,0.001,165,0.934,204,4.062,334,1.09,336,2.41,404,2.141,1253,6.057,8241,9.899,9411,9.892,9412,9.892,9413,12.133]],["title/modules/FeathersModule.html",[425,1.808,1950,5.438]],["body/modules/FeathersModule.html",[0,0.3,3,0.023,4,0.023,5,0.012,30,0.001,95,0.141,101,0.017,103,0.001,104,0.001,187,1.262,367,5.308,379,2.03,425,3.483,427,4.451,428,3.435,429,3.542,430,3.526,431,3.495,432,4.451,433,4.541,442,4.434,443,3.464,444,3.377,535,5.967,704,5.45,766,4.74,1252,6.572,1950,10.842,1987,7.732,2526,6.986,8251,10.116,8256,7.695,9414,8.809,9415,8.809,9416,8.809,9417,8.809,9418,8.616,9419,7.413,9420,8.891,9421,8.891,9422,9.221,9423,9.221,9424,9.634]],["title/interfaces/FeathersService.html",[334,0.743,9425,5.893]],["body/interfaces/FeathersService.html",[0,0.219,3,0.017,4,0.017,5,0.009,7,0.099,8,1.081,27,0.462,29,0.817,30,0.001,31,0.578,32,0.164,33,0.515,34,1.537,35,1.244,36,2.637,47,0.811,59,3.459,95,0.143,101,0.021,102,5.199,103,0.001,104,0.001,105,1.181,111,1.286,163,2.028,167,2.455,185,5.048,187,0.921,217,1.181,227,0.678,234,1.043,235,6.306,264,4.363,277,3.584,305,1.85,334,0.708,336,1.567,367,5.639,425,1.724,427,2.377,535,6.338,569,4.322,704,3.177,722,2.836,731,3.507,766,5.455,839,3.019,883,3.755,960,4.396,1238,4.129,1252,6.981,1291,3.81,1298,4.204,1299,4.154,1300,4.154,1301,4.395,1302,4.805,1499,4.766,1865,3.368,1987,6.617,2086,6.233,2500,3.969,2526,4.073,3874,5.672,4630,5.791,5121,5.751,6491,3.832,8217,4.886,8251,4.659,8679,4.766,9418,5.023,9419,4.322,9420,5.183,9421,5.183,9422,5.376,9423,5.376,9424,5.617,9425,9.734,9426,10.293,9427,5.617,9428,8.272,9429,12.388,9430,6.43,9431,10.293,9432,8.272,9433,6.43,9434,8.272,9435,6.43,9436,5.617,9437,5.94,9438,5.94,9439,5.94,9440,5.94,9441,5.94,9442,8.272,9443,5.94,9444,5.376,9445,5.023,9446,5.94,9447,5.94,9448,5.94,9449,5.94]],["title/injectables/FeathersServiceProvider.html",[105,0.89,8251,4.888]],["body/injectables/FeathersServiceProvider.html",[0,0.228,3,0.018,4,0.018,5,0.009,7,0.103,8,1.111,27,0.437,29,0.73,30,0.001,31,0.516,32,0.159,33,0.46,34,1.148,35,0.808,36,2.286,47,0.825,95,0.145,101,0.022,102,5.308,103,0.001,104,0.001,105,1.213,107,1.6,111,1.338,127,0.845,167,2.553,185,4.437,187,0.958,217,1.213,227,0.705,234,1.085,235,5.207,264,4.454,277,3.683,305,1.924,334,0.737,367,6.259,379,1.541,425,1.792,427,3.401,535,6.131,569,6.184,576,3.941,704,4.547,722,2.949,731,3.603,766,5.508,839,3.139,960,4.571,1238,4.294,1252,6.752,1291,3.915,1298,4.32,1299,4.268,1300,4.268,1301,4.516,1302,4.936,1499,4.956,1865,3.502,1987,7.277,2086,6.404,2500,4.127,2526,5.828,3874,5.828,4630,3.475,5121,5.909,6491,3.985,8217,5.081,8251,6.666,8679,4.956,9418,7.187,9419,6.184,9420,7.417,9421,7.417,9422,7.692,9423,7.692,9424,8.037,9425,9.898,9426,9.717,9427,5.841,9428,6.177,9429,10.975,9431,8.499,9432,6.177,9434,6.177,9436,5.841,9437,6.177,9438,6.177,9439,6.177,9440,6.177,9441,8.499,9442,8.499,9443,6.177,9444,5.59,9445,5.223,9446,6.177,9447,6.177,9448,6.177,9449,6.177,9450,9.2,9451,6.686,9452,6.686,9453,6.686]],["title/entities/FederalState.html",[380,1.411,6359,4.113]],["body/entities/FederalState.html",[0,0.339,3,0.02,4,0.02,5,0.011,7,0.115,27,0.493,30,0.001,31,0.693,32,0.167,33,0.497,47,0.987,55,1.652,83,2.995,95,0.128,96,2.03,101,0.021,103,0.001,104,0.001,165,0.785,240,3.874,334,0.827,364,2.203,369,2.627,370,3.965,371,3.275,380,2.082,381,2.472,386,5.687,398,2.199,399,3.897,400,3.295,402,3.09,404,1.358,405,2.024,406,2.399,591,3.212,592,3.313,620,4.823,621,5.706,622,4.823,623,5.706,1925,5.172,2136,3.983,2618,5.095,4287,5.329,4293,5.384,4303,3.295,5640,6.725,5656,4.893,6340,10.622,6341,10.8,6342,6.561,6343,6.561,6344,6.561,6345,6.561,6350,8.32,6351,10.38,6352,10.38,6353,6.561,6354,6.561,6355,6.561,6356,6.561,6357,6.561,6358,6.561,6359,6.069,6360,6.561,6361,6.561,6362,5.867,9454,7.51,9455,7.51,9456,7.51,9457,7.51]],["title/injectables/FederalStateRepo.html",[105,0.89,9458,5.64]],["body/injectables/FederalStateRepo.html",[0,0.257,3,0.02,4,0.02,5,0.011,7,0.116,8,1.206,10,4.034,12,4.607,18,4.936,26,2.085,27,0.528,29,0.983,30,0.001,31,0.728,32,0.174,33,0.619,34,1.296,35,1.496,36,2.692,40,3.635,47,0.815,49,3.895,95,0.153,96,2.041,99,1.282,101,0.014,103,0.001,104,0.001,105,1.317,107,1.808,112,2.855,187,1.082,227,1.053,380,1.58,381,3.288,398,2.212,404,1.806,596,3.617,692,5.056,877,7.569,883,4.188,884,4.718,885,6.163,908,4.606,909,4.662,910,4.606,911,4.662,912,5.359,913,4.606,914,4.662,915,4.158,3639,5.163,6359,6.091,8768,8.351,8776,8.351,9458,8.351,9459,11.192,9460,7.552,9461,7.552,9462,7.552,9463,7.552]],["title/injectables/FederalStateService.html",[105,0.89,9464,5.64]],["body/injectables/FederalStateService.html",[0,0.3,3,0.023,4,0.023,5,0.012,7,0.136,8,1.334,27,0.458,29,0.876,30,0.001,31,0.676,32,0.155,33,0.552,35,1.066,36,2.4,47,0.878,95,0.154,99,1.498,101,0.017,103,0.001,104,0.001,105,1.456,107,2.113,112,2.704,127,1.116,187,1.265,215,2.858,216,1.633,217,1.164,221,2.081,227,0.93,450,3.632,883,3.702,1919,3.666,1993,6.035,2485,3.814,3852,6.035,6359,7.929,9458,11.089,9464,9.234,9465,7.852,9466,12.052,9467,8.828,9468,11.044,9469,8.828,9470,8.828,9471,11.044,9472,8.828,9473,7.381,9474,6.708,9475,5.519,9476,8.828]],["title/interfaces/File.html",[5,0.01,334,0.743]],["body/interfaces/File.html",[3,0.024,4,0.024,5,0.017,7,0.138,30,0.001,31,0.712,32,0.17,47,1.034,55,1.973,95,0.115,101,0.024,103,0.001,104,0.001,163,4.119,165,0.88,334,1.399,336,2.185,1565,7.054,2186,5.679,5410,8.273,5562,6.241,6157,6.813,6158,7.004,6159,7.496,6160,7.228,6161,7.228,6162,6.026,6163,5.931,6164,7.004,6165,6.241,6166,6.241,6167,6.241,6168,6.241,6169,6.645,6170,6.645,6171,6.645,6172,6.645]],["title/classes/FileContentBody.html",[0,0.23,5541,4.611]],["body/classes/FileContentBody.html",[0,0.451,2,0.796,3,0.018,4,0.018,5,0.01,7,0.106,9,3.314,27,0.288,30,0.001,31,0.601,32,0.19,47,0.78,83,2.085,95,0.147,99,1.176,101,0.025,103,0.001,104,0.001,144,2.929,163,2.185,165,0.744,240,2.171,364,1.284,369,1.532,374,2.213,376,1.625,379,1.597,404,1.937,467,3.647,470,4.515,524,4.084,999,6.336,1031,2.221,1044,3.401,2344,4.429,2594,4.727,2627,4.916,2880,3.314,2915,3.657,3239,6.698,3242,5.702,3245,3.657,3774,6.639,4040,4.736,4071,4.736,4072,7.088,5504,7.325,5506,7.325,5508,7.325,5541,7.862,5542,6.444,5543,6.444,5739,4.583,5740,6.944,6850,4.916,8027,8.717,8028,6.987,8029,5.135,8032,7.604,8033,5.135,8034,8.161,8035,7.604,8036,5.135,8037,4.916,8038,4.916,8039,4.916,8040,4.916,8041,5.135,8042,5.135,8043,5.135,9477,6.928]],["title/classes/FileDto.html",[0,0.23,6219,4.888]],["body/classes/FileDto.html",[0,0.313,2,1.058,3,0.024,4,0.024,5,0.016,7,0.142,27,0.532,29,0.731,30,0.001,31,0.719,32,0.18,33,0.46,47,0.934,95,0.118,101,0.018,103,0.001,104,0.001,127,1.164,163,3.874,165,0.895,1026,5.118,1565,6.825,2136,3.687,5410,7.782,6064,6.036,6100,6.538,6162,6.192,6219,9.538,9478,9.212,9479,11.34,9480,9.212,9481,9.212,9482,9.212,9483,9.212,9484,9.212,9485,8.048,9486,8.51]],["title/classes/FileDto-1.html",[0,0.191,905,2.329,6219,4.064]],["body/classes/FileDto-1.html",[0,0.294,2,0.992,3,0.023,4,0.023,5,0.012,7,0.133,26,2.696,27,0.536,29,0.685,30,0.001,31,0.703,32,0.181,33,0.432,34,2.048,47,0.793,95,0.153,99,1.466,101,0.016,103,0.001,104,0.001,127,1.092,165,0.86,336,2.105,405,2.937,595,2.974,618,3.676,619,4.937,2136,3.458,3543,6.475,3574,5.819,4303,3.791,6064,6.049,6083,6.57,6096,6.749,6102,5.714,6111,5.937,6219,7.894,8206,6.013,9487,8.639,9488,10.476,9489,10.894,9490,8.639,9491,8.639,9492,8.639,9493,6.403,9494,7.547]],["title/classes/FileDtoBuilder.html",[0,0.23,9495,5.893]],["body/classes/FileDtoBuilder.html",[0,0.255,2,0.861,3,0.02,4,0.02,5,0.018,7,0.115,8,1.2,27,0.463,29,0.885,30,0.001,31,0.712,32,0.156,33,0.557,35,1.347,47,0.969,95,0.152,101,0.014,103,0.001,104,0.001,116,3.609,163,4.148,217,1.566,227,1.175,234,1.216,627,4.146,667,4.666,1016,3.982,1565,7.054,2063,8.265,2074,5.125,5410,8.206,6064,5.445,6162,6.681,6219,9.531,9495,8.682,9496,10.373,9497,7.496,9498,9.939,9499,9.939,9500,9.939,9501,7.496,9502,9.939,9503,7.496,9504,9.939,9505,12.355,9506,7.496,9507,6.925,9508,7.496,9509,7.496,9510,7.496,9511,7.496,9512,7.496,9513,6.925,9514,7.496,9515,6.267]],["title/classes/FileElement.html",[0,0.23,2864,4.395]],["body/classes/FileElement.html",[0,0.231,2,0.781,3,0.018,4,0.018,5,0.01,7,0.104,8,1.124,27,0.548,29,0.979,30,0.001,31,0.692,32,0.18,33,0.617,35,1.554,36,2.023,47,0.87,55,2.047,59,2.11,95,0.119,101,0.018,103,0.001,104,0.001,112,2.38,116,3.013,144,2.544,148,3.698,165,0.734,208,2.523,221,1.603,227,0.981,334,0.749,347,2.163,363,5.977,371,1.874,404,1.918,595,3.204,596,3.907,661,3.921,692,3.468,728,2.663,884,4.396,1857,3.98,1860,7.019,1984,2.908,2598,6.272,2791,8.266,2794,6.898,2795,6.898,2796,6.898,2797,8.098,2798,6.898,2800,4.648,2801,5.977,2802,6.878,2804,6.898,2805,5.977,2806,6.959,2808,4.927,2809,4.913,2811,6.633,2812,4.927,2816,4.927,2818,4.648,2844,5.895,2864,6.064,3239,7.133,3984,5.166,3985,5.166,3986,5.166,3995,4.498,9516,9.802,9517,5.312,9518,6.799,9519,6.799,9520,6.799,9521,6.799,9522,6.799,9523,6.799,9524,6.799,9525,8.597,9526,6.281,9527,6.281,9528,6.281,9529,5.94]],["title/classes/FileElementContent.html",[0,0.23,9530,5.64]],["body/classes/FileElementContent.html",[0,0.367,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,27,0.448,29,0.675,30,0.001,31,0.477,32,0.18,33,0.425,34,2.034,47,0.863,95,0.152,99,1.444,101,0.021,103,0.001,104,0.001,127,1.498,165,0.852,364,1.578,376,1.996,467,3.588,475,4.264,618,3.622,966,4.357,1031,2.728,2344,4.898,2621,4.02,2910,4.645,2911,4.645,2915,4.493,3239,8.04,3403,6.467,3415,5.466,3658,7.507,3662,6.662,3666,6.04,3668,6.04,3774,6.841,4011,8.7,5504,5.818,9530,10.986,9531,10.948,9532,7.435,9533,7.862,9534,7.116]],["title/classes/FileElementContentBody.html",[0,0.23,8032,4.787]],["body/classes/FileElementContentBody.html",[0,0.449,2,0.776,3,0.018,4,0.018,5,0.01,7,0.104,9,3.23,27,0.385,30,0.001,31,0.593,32,0.192,47,0.675,83,2.032,95,0.146,99,1.146,101,0.025,103,0.001,104,0.001,144,2.89,145,1.743,163,2.13,165,0.731,240,2.116,364,1.717,369,1.493,374,2.158,376,1.584,379,1.557,404,2.057,467,3.633,470,4.455,524,3.981,596,2.051,999,6.227,1011,3.594,1031,2.165,1044,3.315,2344,4.928,2594,4.664,2880,3.23,2915,3.565,3239,4.222,3242,5.627,3245,3.565,3774,6.568,4040,4.617,4071,4.617,4072,6.995,5504,7.779,5506,7.229,5508,7.229,5541,7.779,5542,6.333,5543,6.333,5739,4.467,5740,6.883,6850,4.793,8027,9.139,8028,6.866,8029,5.006,8032,8.075,8033,5.006,8034,8.075,8035,7.504,8036,5.006,8037,4.793,8038,4.793,8039,4.793,8040,4.793,8041,5.006,8042,5.006,8043,5.006,9535,5.647,9536,6.754,9537,6.754]],["title/entities/FileElementNode.html",[380,1.411,3174,5.27]],["body/entities/FileElementNode.html",[0,0.302,3,0.024,4,0.024,5,0.013,7,0.137,27,0.369,30,0.001,32,0.125,47,0.88,95,0.162,96,2.402,101,0.021,103,0.001,104,0.001,165,0.875,208,3.298,217,1.172,227,0.937,240,3.788,334,0.979,364,1.647,380,2.32,381,2.925,398,2.603,404,2.005,405,2.396,617,5.13,1857,5.17,2594,4.892,2598,5.636,2620,5.183,2621,4.198,3144,5.95,3154,6.933,3174,8.663,3212,5.707,3233,9.688,3239,7.913,3562,7.122,3583,5.79,4090,5.973,4093,5.973,9534,7.43,9538,10.244,9539,8.209,9540,9.688,9541,8.209,9542,8.209]],["title/interfaces/FileElementNodeProps.html",[334,0.743,9540,5.893]],["body/interfaces/FileElementNodeProps.html",[0,0.304,3,0.024,4,0.024,5,0.013,7,0.137,30,0.001,32,0.125,47,0.924,95,0.163,96,2.418,101,0.021,103,0.001,104,0.001,165,0.879,208,3.32,217,1.18,227,0.943,240,3.489,334,0.986,336,2.18,380,2.329,398,2.62,404,2.192,405,2.412,617,5.164,1857,5.185,2594,3.946,2598,5.659,2620,5.218,2621,4.226,3144,5.975,3154,6.961,3174,6.989,3212,5.745,3233,9.728,3239,8.16,3562,7.787,3583,5.829,4090,6.013,4093,6.013,9534,7.48,9538,8.264,9540,10.592,9541,8.264,9542,8.264]],["title/interfaces/FileElementProps.html",[334,0.743,9529,5.893]],["body/interfaces/FileElementProps.html",[0,0.309,3,0.024,4,0.024,5,0.013,7,0.139,30,0.001,32,0.157,36,1.971,47,0.954,95,0.144,101,0.021,103,0.001,104,0.001,112,2.034,144,2.478,148,2.806,165,0.886,208,3.365,221,2.138,227,1.183,334,0.999,336,2.209,347,1.848,371,2.499,404,2.205,728,3.551,1984,3.878,2791,7.113,2797,6.434,2801,5.823,2802,6.768,2805,5.823,2806,6.848,2844,7.727,2864,5.907,3239,8.191,3995,5.998,9516,8.376,9517,7.083,9525,10.373,9526,8.376,9527,8.376,9528,8.376,9529,9.809]],["title/classes/FileElementResponse.html",[0,0.23,4011,5.438]],["body/classes/FileElementResponse.html",[0,0.349,2,0.905,3,0.021,4,0.021,5,0.011,7,0.121,27,0.521,29,0.625,30,0.001,31,0.442,32,0.19,33,0.394,34,2.155,47,0.832,95,0.146,99,1.337,101,0.02,103,0.001,104,0.001,127,1.444,165,0.81,364,2.244,376,1.848,467,3.574,475,3.947,618,3.352,966,4.033,1031,2.525,2344,5.19,2621,3.721,2909,5.295,2910,5.604,2911,5.604,2914,5.059,2915,5.421,3239,7.142,3403,5.986,3415,5.059,3658,7.953,3662,7.052,3666,5.59,3668,5.59,3774,7.248,4011,10.121,5504,7.02,9530,10.122,9531,11.893,9534,6.586,9543,7.277,9544,7.277,9545,7.277,9546,7.277,9547,7.277]],["title/classes/FileElementResponseMapper.html",[0,0.23,5521,5.893]],["body/classes/FileElementResponseMapper.html",[0,0.262,2,0.886,3,0.02,4,0.02,5,0.011,7,0.119,8,1.223,27,0.498,29,0.803,30,0.001,31,0.568,32,0.168,33,0.506,34,1.324,35,1.366,95,0.145,99,1.309,100,2.582,101,0.015,103,0.001,104,0.001,111,2.262,116,2.496,165,0.799,214,3.333,217,1.017,227,1.192,234,1.949,347,2.064,591,3.298,627,3.985,806,3.249,974,4.76,975,5.788,978,6.737,980,6.024,1828,4.515,2092,4.365,2344,3.187,2588,8.833,2591,8.467,2592,8.467,2594,5.838,2595,8.163,2864,8.623,3239,4.821,3658,4.885,3662,6.251,3679,5.716,3774,4.452,4011,9.679,5121,7.261,5504,5.272,5520,6.447,5521,11.396,9530,8.467,9548,12.47,9549,9.679,9550,6.447,9551,6.737,9552,11.307,9553,6.447,9554,6.737,9555,6.737,9556,7.711]],["title/entities/FileEntity.html",[380,1.411,7811,5.27]],["body/entities/FileEntity.html",[0,0.119,3,0.009,4,0.009,5,0.012,7,0.156,26,2.331,27,0.528,30,0.001,31,0.504,32,0.18,33,0.643,47,0.932,49,4.242,55,2.116,83,2.894,95,0.135,96,1.533,97,1.494,99,0.596,101,0.011,103,0,104,0,111,0.702,116,2.31,144,2.458,145,3.054,148,1.755,165,0.448,204,1.205,217,0.463,227,1.014,234,1.765,240,3.983,305,1.01,329,2.649,334,0.387,347,1.454,359,1.967,364,2.356,369,2.914,370,4.319,371,3.149,380,1.187,381,1.156,386,6.02,398,1.028,399,2.221,404,0.635,405,0.947,406,1.122,500,5.601,573,2.668,591,1.502,592,1.549,620,2.255,621,4.31,622,2.255,623,4.31,701,1.227,775,4.996,905,1.458,957,1.988,1015,4.995,1031,1.818,1910,1.659,1916,3.969,1925,2.948,2076,1.854,2136,1.406,2485,1.517,2621,1.659,2674,4.64,3305,2.803,3542,2.926,3543,2.784,3574,2.766,4284,4.742,4287,4.025,4293,3.861,4294,2.117,4297,2.936,4302,2.936,4303,1.541,4556,1.798,4712,6.832,4926,2.616,4945,1.884,5236,2.195,6092,2.444,6110,3.151,6166,6.259,6382,2.936,6627,2.36,6727,1.884,6914,2.544,7806,6.665,7808,6.85,7811,4.431,7861,7.157,9494,3.068,9557,3.244,9558,5.422,9559,6.592,9560,6.592,9561,5.064,9562,6.225,9563,7.568,9564,7.157,9565,5.936,9566,6.85,9567,7.568,9568,7.568,9569,7.568,9570,3.512,9571,3.512,9572,7.568,9573,3.512,9574,4.025,9575,3.512,9576,3.512,9577,3.512,9578,3.512,9579,3.512,9580,3.512,9581,3.512,9582,3.512,9583,7.249,9584,3.512,9585,7.157,9586,3.512,9587,8.158,9588,3.512,9589,3.512,9590,3.512,9591,3.512,9592,5.24,9593,3.512,9594,3.512,9595,3.512,9596,3.512,9597,5.24,9598,3.512,9599,2.444,9600,2.603,9601,3.244,9602,3.244,9603,6.234,9604,5.24,9605,3.244,9606,8.306,9607,3.244,9608,3.244,9609,2.668,9610,3.244,9611,2.492,9612,6.592,9613,4.31,9614,5.24,9615,5.24,9616,5.24,9617,3.244,9618,3.244,9619,3.244,9620,4.204,9621,3.244,9622,3.244,9623,3.244,9624,5.752,9625,6.592,9626,3.244,9627,3.244,9628,2.936,9629,5.24,9630,3.244,9631,3.244,9632,3.244,9633,3.244,9634,3.244,9635,3.244,9636,5.24,9637,3.244,9638,5.24,9639,2.668,9640,5.24,9641,3.244,9642,2.544,9643,2.544,9644,3.244,9645,3.244,9646,3.244,9647,3.244,9648,2.668,9649,2.668,9650,2.743,9651,3.244,9652,3.244,9653,3.244,9654,5.24,9655,3.244]],["title/interfaces/FileEntityProps.html",[334,0.743,9603,5.893]],["body/interfaces/FileEntityProps.html",[0,0.129,3,0.01,4,0.01,5,0.012,7,0.16,26,2.651,30,0.001,31,0.558,32,0.187,33,0.679,47,0.973,49,3.641,55,2.382,83,3.513,95,0.139,96,1.629,97,1.611,99,0.643,101,0.011,103,0,104,0,111,0.757,116,2.429,145,3.113,148,1.864,165,0.475,204,1.299,217,0.499,227,1.048,234,1.757,240,3.948,305,1.089,334,0.417,336,0.922,347,2.126,359,1.313,369,2.732,370,4.166,371,2.742,380,1.26,398,1.109,399,2.359,404,0.684,405,1.021,406,1.209,500,6.384,573,2.877,591,3.658,592,3.773,620,2.431,621,4.578,622,2.431,623,4.578,701,1.322,775,4.576,905,1.572,957,2.143,1015,5.525,1031,1.931,1910,1.788,1916,4.524,1925,1.968,2076,1.999,2136,1.515,2485,1.636,2621,1.788,2674,4.561,3305,1.871,3542,3.107,3543,2.957,3574,4.553,4293,4.06,4294,2.282,4297,3.165,4302,3.165,4303,1.661,4556,1.938,4926,2.779,4945,2.031,5236,2.367,6092,2.635,6110,5.188,6166,6.923,6727,2.031,6914,2.743,7806,7.372,7808,7.808,7811,2.958,7861,8.158,9494,3.307,9557,3.497,9558,2.877,9559,3.497,9560,3.497,9561,2.687,9562,7.096,9563,8.627,9564,8.158,9565,6.766,9566,7.808,9567,8.627,9568,8.627,9569,8.627,9572,9.188,9574,2.687,9583,8.018,9585,8.158,9587,8.409,9592,3.497,9597,3.497,9599,2.635,9600,2.806,9601,3.497,9602,3.497,9603,7.473,9604,8.627,9605,3.497,9606,8.627,9607,3.497,9608,3.497,9609,2.877,9610,3.497,9611,2.687,9612,6.932,9613,4.578,9614,5.566,9615,5.566,9616,5.566,9617,3.497,9618,3.497,9619,3.497,9620,4.465,9621,3.497,9622,3.497,9623,3.497,9624,6.049,9625,6.932,9626,3.497,9627,3.497,9628,3.165,9629,5.566,9630,3.497,9631,3.497,9632,3.497,9633,3.497,9634,3.497,9635,3.497,9636,5.566,9637,3.497,9638,5.566,9639,2.877,9640,5.566,9641,3.497,9642,2.743,9643,2.743,9644,3.497,9645,3.497,9646,3.497,9647,3.497,9648,2.877,9649,2.877,9650,2.958,9651,3.497,9652,3.497,9653,3.497,9654,5.566,9655,3.497]],["title/classes/FileParamBuilder.html",[0,0.23,6204,5.893]],["body/classes/FileParamBuilder.html",[0,0.307,2,1.037,3,0.024,4,0.024,5,0.013,7,0.139,8,1.352,26,2.656,27,0.375,29,0.716,30,0.001,31,0.506,32,0.127,33,0.451,35,1.09,95,0.156,99,1.532,101,0.017,103,0.001,104,0.001,217,1.477,227,0.951,336,2.199,627,3.791,667,5.257,3305,6.016,3542,4.656,3543,6.424,3574,4.401,4227,3.855,6064,5.135,6111,5.572,6175,8.338,6177,9.51,6178,8.338,6181,10.344,6204,9.782,9656,10.344,9657,11.198,9658,11.758,9659,7.547,9660,9.026,9661,9.026,9662,9.026]],["title/classes/FileParams.html",[0,0.23,6128,4.611]],["body/classes/FileParams.html",[0,0.455,2,0.754,3,0.017,4,0.024,5,0.016,7,0.101,26,2.548,27,0.273,30,0.001,32,0.165,39,1.76,47,0.986,95,0.156,99,1.114,101,0.025,103,0.001,104,0.001,150,2.408,165,0.717,204,2.253,334,0.723,347,1.852,364,1.217,369,1.452,373,4.796,374,2.098,375,4.562,376,1.54,377,5.92,379,1.514,380,1.374,467,3.707,469,2.897,470,5.145,471,4.784,565,4.796,1000,5.222,1001,6.7,1011,3.494,1031,3.339,1044,3.223,1291,2.794,1381,3.83,2744,4.646,2915,5.5,3574,3.202,4227,2.261,5740,6.814,6064,4.166,6077,5.92,6083,6.19,6111,3.267,6114,4.489,6115,4.571,6116,4.571,6119,7.691,6122,8.077,6123,7.686,6124,7.826,6125,4.571,6126,4.489,6127,6.892,6128,6.212,6129,4.571,6130,4.217,6131,6.01,6132,4.343,6133,4.571,6134,4.571,6135,4.414,6136,4.489,6137,4.414,6138,4.414,6139,4.217,6140,4.571,6141,4.489,6142,4.571,6143,4.414,6144,4.489,6145,4.278,6146,4.278,6147,4.571,9663,6.566,9664,6.566]],["title/classes/FilePermissionEntity.html",[0,0.23,9583,5.438]],["body/classes/FilePermissionEntity.html",[0,0.239,2,0.805,3,0.019,4,0.019,5,0.01,7,0.108,10,4.668,26,1.984,27,0.529,29,0.556,30,0.001,31,0.393,32,0.151,33,0.35,49,4.204,95,0.148,96,2.569,97,2.984,99,1.19,101,0.018,103,0.001,104,0.001,127,0.886,144,3.159,145,2.983,165,0.75,234,1.138,240,4.161,329,3.405,334,0.773,347,2.356,364,2.309,369,2.865,370,3.171,371,3.186,386,4.008,398,2.054,405,2.562,595,2.414,883,4.846,1031,3.046,1871,7.135,1872,7.646,2485,3.029,2618,4.866,6382,5.863,9583,7.662,9665,10.834,9666,6.478,9667,10.097,9668,10.677,9669,10.097,9670,9.505,9671,7.013,9672,7.013,9673,7.013,9674,10.677,9675,7.013,9676,7.013,9677,6.478,9678,6.478,9679,6.478,9680,6.478,9681,8.303,9682,6.126,9683,8.303,9684,6.126,9685,8.303,9686,6.126,9687,8.303,9688,6.126]],["title/interfaces/FilePermissionEntityProps.html",[334,0.743,9669,5.893]],["body/interfaces/FilePermissionEntityProps.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,10,4.984,26,2.474,30,0.001,32,0.178,33,0.657,49,3.866,95,0.152,96,2.68,97,3.178,99,1.267,101,0.019,103,0.001,104,0.001,145,3.06,165,0.782,234,1.212,240,3.975,334,0.823,336,1.82,347,2.78,369,2.621,370,3.308,371,2.733,398,2.187,405,2.013,883,5.174,1031,3.178,1871,7.617,1872,8.163,2485,3.226,2618,5.076,9583,6.02,9665,6.244,9666,6.899,9667,10.78,9668,11.399,9669,9.723,9674,11.399,9677,6.899,9678,6.899,9679,6.899,9680,6.899,9681,8.661,9682,6.524,9683,8.661,9684,6.524,9685,8.661,9686,6.524,9687,8.661,9688,6.524]],["title/entities/FileRecord.html",[380,1.411,6082,4.02]],["body/entities/FileRecord.html",[0,0.272,3,0.009,4,0.009,5,0.01,7,0.153,26,2.442,27,0.457,30,0.001,31,0.581,32,0.158,33,0.399,34,0.941,39,0.903,47,0.865,49,4.18,55,1.526,83,2.993,95,0.127,96,1.482,97,1.433,99,0.572,101,0.019,103,0,104,0,116,3.941,145,2.567,148,2.473,165,0.547,187,0.482,188,1.275,192,2.068,204,2.379,217,1.488,227,1.339,234,1.831,240,3.815,247,1.336,305,0.969,334,0.764,347,1.923,359,2.772,364,2.043,369,2.199,370,2.936,371,1.511,379,0.776,380,2.169,381,1.108,398,0.986,399,2.147,402,1.385,404,0.609,405,1.478,406,1.076,461,0.776,564,2.574,574,2.486,591,1.44,592,1.486,701,2.422,770,3.232,775,4.229,905,1.399,938,3.973,946,3.572,1015,5.24,1031,3.187,1291,2.333,1296,2.39,1366,3.685,1436,3.817,1565,5.24,1828,2.445,1919,2.277,2078,1.964,2079,3.817,2136,3.199,2309,1.888,2478,3.134,2618,2.807,2674,3.665,2685,1.925,2691,1.478,2701,1.553,2881,1.535,3091,1.535,3144,1.807,3305,2.71,3320,2.302,3331,3.074,3574,4.849,3684,1.888,3853,3.973,4227,3.424,4237,2.631,4239,2.105,4287,2.39,4293,2.967,4303,1.478,4304,1.985,4712,5.27,4982,1.888,4994,1.925,5999,3.817,6064,5.172,6082,4.763,6083,4.844,6084,3.891,6085,5.208,6092,2.344,6100,2.39,6102,2.228,6104,5.025,6110,3.852,6111,5.334,6112,5.208,6400,2.054,6424,1.964,6616,2.631,6617,4.064,6727,2.942,9493,2.496,9558,5.27,9561,5.672,9565,5.025,9599,2.344,9609,2.559,9613,2.559,9639,4.166,9642,2.44,9643,2.44,9648,2.559,9649,2.559,9689,2.715,9690,4.283,9691,6.244,9692,5.59,9693,6.244,9694,3.368,9695,7.093,9696,3.368,9697,3.368,9698,3.368,9699,3.368,9700,3.111,9701,3.111,9702,3.368,9703,3.368,9704,3.368,9705,3.368,9706,3.368,9707,6.522,9708,3.368,9709,3.368,9710,2.715,9711,2.631,9712,4.166,9713,2.44,9714,3.973,9715,3.973,9716,3.973,9717,2.105,9718,4.42,9719,4.42,9720,4.42,9721,4.42,9722,4.42,9723,4.42,9724,4.283,9725,5.373,9726,4.42,9727,2.559,9728,4.064,9729,2.496,9730,4.166,9731,2.559,9732,4.166,9733,5.418,9734,2.344,9735,2.631,9736,2.44,9737,2.44,9738,2.715,9739,2.715,9740,2.559,9741,2.496,9742,2.559,9743,2.715,9744,2.715,9745,2.715,9746,2.715,9747,2.715,9748,2.715,9749,2.715,9750,2.715,9751,2.715,9752,2.715,9753,7.604,9754,2.715,9755,2.715,9756,4.42,9757,2.715,9758,2.715,9759,4.42,9760,4.42,9761,4.42,9762,2.715,9763,2.631,9764,2.631,9765,2.715,9766,2.715,9767,2.715,9768,2.715,9769,4.42,9770,5.59,9771,2.631,9772,2.715,9773,4.42,9774,2.631,9775,2.715,9776,4.42,9777,2.715,9778,5.59,9779,5.59,9780,2.631,9781,2.715,9782,2.715,9783,2.715,9784,2.715,9785,2.715,9786,2.715,9787,2.631,9788,2.715,9789,2.715,9790,2.715,9791,2.715,9792,2.715]],["title/classes/FileRecordFactory.html",[0,0.23,9793,6.231]],["body/classes/FileRecordFactory.html",[0,0.164,2,0.553,3,0.013,4,0.013,5,0.01,7,0.074,8,0.877,27,0.533,29,1.019,30,0.001,31,0.696,32,0.183,33,0.611,34,1.5,35,1.449,47,0.529,49,1.877,55,2.505,59,3.24,95,0.134,101,0.009,103,0,104,0,127,0.608,138,3.152,144,3.204,148,1.49,165,0.573,185,4.862,216,1.342,217,1.152,227,0.765,234,1.694,329,3.454,359,2.517,366,2.65,379,2.014,380,2.184,381,2.389,404,1.312,538,3.254,596,3.865,627,2.26,660,7.128,661,4.623,662,5.454,665,4.069,666,5.454,667,5.632,668,4.069,669,4.069,670,4.069,671,3.996,672,4.44,673,4.899,674,6.397,675,5.747,676,6.955,677,2.725,682,2.699,683,4.069,684,2.725,685,5.095,686,5.309,687,4.513,688,5.135,689,4.032,690,2.699,691,2.521,692,4.088,693,2.627,694,2.583,695,2.699,696,5.018,697,2.725,698,4.81,699,2.699,700,7.054,701,4.094,702,6.572,703,2.725,704,4.318,705,2.699,706,2.725,707,2.699,708,2.725,709,2.699,710,3.049,711,2.869,712,2.699,713,6.041,714,2.725,715,2.699,716,4.069,717,3.996,718,4.069,719,2.725,720,2.605,721,2.583,722,2.124,723,2.699,724,2.699,725,2.699,726,2.725,727,2.725,728,1.885,729,2.699,730,2.725,731,2.842,732,2.699,733,2.725,734,2.779,735,2.779,736,2.838,737,2.869,1015,2.674,1291,2.049,1444,3.137,1565,2.674,3574,2.347,4150,5.779,4227,1.658,5512,3.658,5513,4.206,6082,2.869,6083,2.65,6110,2.674,6111,2.395,6112,3.137,6162,3.236,6888,4.206,8206,3.351,9513,4.447,9565,3.488,9707,5.38,9732,3.658,9793,8.071,9794,4.814,9795,9.728,9796,4.814,9797,4.447,9798,6.705,9799,4.814,9800,4.814,9801,4.814]],["title/classes/FileRecordListResponse.html",[0,0.23,6113,5]],["body/classes/FileRecordListResponse.html",[0,0.367,2,0.686,3,0.016,4,0.016,5,0.008,7,0.092,27,0.473,29,0.474,30,0.001,31,0.555,32,0.18,33,0.569,34,1.459,47,0.923,55,3.011,56,5.996,59,2.639,70,6.241,83,1.797,95,0.138,101,0.021,103,0.001,104,0.001,127,0.755,145,1.541,150,2.19,163,3.843,165,0.671,364,1.999,375,4.016,376,1.401,380,1.249,404,1.789,467,3.61,469,2.634,596,3.275,618,3.617,1007,7.689,1008,6.651,1009,6.163,1011,3.178,1013,4.539,1014,2.931,1015,4.722,1016,2.133,1017,4.238,1018,5.538,1019,4.958,1020,3.95,1021,3.178,1022,4.238,1023,4.238,1025,5.385,1026,4.722,1031,3.172,1442,4.665,1446,4.538,1565,3.317,2136,3.403,2787,6.187,2915,5.225,3542,3.08,3574,2.912,6064,3.898,6067,3.95,6072,4.814,6073,4.814,6074,4.814,6075,4.814,6076,4.665,6077,5.538,6078,4.993,6079,8.903,6082,5.066,6083,5.937,6084,8.087,6085,6.449,6086,9.033,6087,4.993,6088,4.814,6089,4.814,6090,3.317,6091,4.993,6092,4.157,6093,4.993,6094,4.993,6095,4.993,6096,4.665,6097,4.814,6098,4.993,6099,4.993,6100,4.238,6101,4.814,6102,3.95,6103,4.814,6104,4.327,6105,4.993,6106,4.993,6107,4.814,6108,4.993,6109,4.426,6110,3.317,6111,2.971,6112,3.891,6113,6.3,9802,5.972,9803,5.972]],["title/classes/FileRecordMapper.html",[0,0.23,9804,6.231]],["body/classes/FileRecordMapper.html",[0,0.243,2,0.821,3,0.019,4,0.019,5,0.01,7,0.11,8,1.163,27,0.452,29,0.864,30,0.001,31,0.611,32,0.153,33,0.544,35,1.315,55,2.901,56,5.608,59,2.989,70,5.837,95,0.123,101,0.014,103,0.001,104,0.001,145,1.845,217,1.536,227,1.148,234,1.767,380,1.496,564,2.654,627,4.106,982,3.582,1008,6.358,1016,3.439,1828,3.188,6064,5.342,6082,7.757,6085,4.658,6086,9.013,6113,8.071,6132,8.044,9496,10.178,9725,4.806,9734,6.703,9771,5.585,9774,7.523,9780,5.585,9804,8.896,9805,7.15,9806,9.63,9807,10.059,9808,8.896,9809,9.63,9810,7.15,9811,9.741,9812,6.605,9813,7.15,9814,8.896,9815,7.15,9816,6.605,9817,6.605,9818,6.246,9819,7.15,9820,6.605,9821,9.63,9822,5.074,9823,9.63,9824,10.889,9825,10.889,9826,7.15,9827,7.15,9828,7.15,9829,10.889,9830,7.15]],["title/classes/FileRecordParams.html",[0,0.23,6119,4.395]],["body/classes/FileRecordParams.html",[0,0.452,2,0.726,3,0.017,4,0.023,5,0.012,7,0.097,26,2.637,27,0.424,30,0.001,32,0.174,39,1.694,47,0.966,95,0.155,99,1.072,101,0.025,103,0.001,104,0.001,150,2.318,165,0.698,204,2.168,334,0.696,347,1.803,364,1.892,369,1.397,373,4.67,374,2.019,375,4.487,376,1.482,377,5.764,379,1.456,380,1.322,467,3.69,469,2.787,470,5.083,471,4.705,565,3.336,1000,5.159,1001,6.59,1031,3.272,1044,3.102,1291,2.689,1381,3.685,2744,4.551,2914,4.058,2915,5.837,3574,4.977,4227,3.514,5725,7.131,5740,6.719,6064,5.071,6077,7.205,6083,6.641,6111,5.079,6114,4.32,6115,4.398,6116,4.398,6119,7.86,6122,7.98,6123,7.56,6124,7.697,6125,4.398,6126,4.32,6127,6.752,6128,4.32,6129,4.398,6130,4.058,6131,5.852,6132,4.18,6133,4.398,6134,4.398,6135,4.247,6136,4.32,6137,4.247,6138,4.247,6139,4.058,6140,4.398,6141,4.32,6142,4.398,6143,4.247,6144,4.32,6145,4.117,6146,4.117,6147,4.398,9831,6.319,9832,6.319,9833,6.319,9834,6.319]],["title/injectables/FileRecordRepo.html",[105,0.89,9835,5.893]],["body/injectables/FileRecordRepo.html",[0,0.154,3,0.012,4,0.012,5,0.006,7,0.069,8,0.836,10,2.795,12,3.192,18,3.42,26,2.812,27,0.521,29,0.984,30,0.001,31,0.696,32,0.174,33,0.62,34,1.617,35,1.498,36,2.864,40,2.177,47,0.612,49,2.699,56,2.177,58,2.864,59,2.924,95,0.13,98,2.695,99,0.767,101,0.009,103,0,104,0,105,0.913,107,1.082,111,2.142,112,3.076,187,0.648,217,1.704,221,2.71,227,1.242,234,1.738,277,4.814,351,2.235,380,1.448,381,2.278,404,1.251,450,1.86,591,1.934,596,2.861,692,4.557,701,4.513,877,6.5,883,2.902,884,3.269,885,4.184,908,2.758,909,2.791,910,2.758,911,2.791,912,3.209,913,2.758,914,2.791,915,2.49,964,3.091,1724,2.535,1828,4.775,2185,3.917,2477,2.791,2572,2.904,3574,5.435,4227,3.243,4630,2.35,5784,4.037,5786,4.912,6064,5.514,6082,7.289,6487,2.758,6775,7.753,6805,3.352,6806,3.352,6844,2.946,6845,3.645,7633,3.148,9734,4.818,9835,6.046,9836,4.522,9837,8.408,9838,6.921,9839,8.408,9840,8.408,9841,6.921,9842,6.394,9843,6.921,9844,6.921,9845,4.522,9846,9.736,9847,4.522,9848,6.921,9849,4.522,9850,4.522,9851,4.522,9852,4.522,9853,4.522,9854,6.921,9855,4.522,9856,6.394,9857,4.522,9858,6.921,9859,4.522,9860,6.921,9861,4.522,9862,4.522,9863,4.522,9864,8.408,9865,4.522,9866,4.522,9867,8.408,9868,4.522,9869,4.522,9870,4.177,9871,4.522,9872,4.522,9873,4.522,9874,4.522]],["title/classes/FileRecordResponse.html",[0,0.23,6086,5]],["body/classes/FileRecordResponse.html",[0,0.353,2,0.631,3,0.015,4,0.015,5,0.008,7,0.085,27,0.537,29,0.436,30,0.001,31,0.619,32,0.185,33,0.472,34,1.782,47,0.965,55,2.68,56,4.996,70,5.201,83,2.41,95,0.133,101,0.02,103,0,104,0,127,0.695,150,3.466,163,3.274,165,0.632,364,2.371,375,4.212,376,1.29,380,1.15,404,1.448,467,3.67,469,2.425,618,3.408,1007,5.832,1008,4.371,1009,5.4,1015,5.249,1025,5.074,1026,4.45,1031,3.028,1442,4.295,1446,4.178,1565,5.249,2136,3.206,2784,3.984,2787,5.907,2914,6.068,2915,6.08,3542,2.836,3574,4.607,6064,5.987,6067,3.637,6072,4.432,6073,4.432,6074,4.432,6075,4.432,6076,4.295,6077,8.506,6078,4.597,6079,8.62,6082,6.575,6083,6.545,6084,8.957,6085,7.189,6086,8.178,6087,6.697,6088,4.432,6089,4.432,6090,3.054,6091,4.597,6092,3.827,6093,4.597,6094,4.597,6095,4.597,6096,4.295,6097,4.432,6098,4.597,6099,4.597,6100,3.902,6101,4.432,6102,3.637,6103,4.432,6104,3.984,6105,4.597,6106,4.597,6107,4.432,6108,6.697,6109,7.003,6110,5.249,6111,4.701,6112,6.156,6113,4.075,9875,5.498,9876,5.498,9877,5.498,9878,5.498,9879,5.498,9880,5.498,9881,5.498,9882,5.498,9883,5.498,9884,5.498,9885,5.498,9886,5.498]],["title/classes/FileRecordScope.html",[0,0.23,9846,5.893]],["body/classes/FileRecordScope.html",[0,0.214,2,0.721,3,0.017,4,0.017,5,0.009,7,0.097,8,1.064,26,2.712,27,0.539,29,0.981,30,0.001,31,0.693,32,0.18,33,0.618,34,1.078,35,1.493,47,0.741,49,2.448,95,0.141,96,1.697,97,2.672,99,1.066,101,0.012,103,0.001,104,0.001,111,2.408,144,2.407,148,1.943,165,0.695,167,3.363,217,0.828,227,1.224,234,1.429,277,5.133,329,2.595,347,2.074,351,4.352,369,1.947,380,1.314,404,1.592,450,2.583,529,3.885,596,3.527,1436,4.371,2432,6.062,3574,3.062,4227,2.162,5872,6.021,5873,6.021,5874,6.021,5879,6.021,5880,6.021,5881,4.371,5882,4.293,5883,4.371,5884,4.371,5893,4.293,5894,6.021,5895,4.371,5896,4.293,5897,4.371,5898,4.293,5899,7.539,6064,5.521,6082,3.742,6112,5.738,6131,5.826,9561,4.456,9565,4.55,9693,4.905,9846,11.579,9887,12.039,9888,5.062,9889,8.808,9890,8.808,9891,8.808,9892,7.694,9893,8.808,9894,8.808,9895,6.279,9896,8.808,9897,5.485,9898,8.808,9899,8.808,9900,5.801,9901,7.694,9902,6.279,9903,8.808,9904,5.485,9905,6.279,9906,6.279,9907,5.485,9908,5.801]],["title/classes/FileRecordSecurityCheck.html",[0,0.23,9707,5]],["body/classes/FileRecordSecurityCheck.html",[0,0.244,2,0.407,3,0.009,4,0.009,5,0.008,7,0.156,26,2.475,27,0.401,29,0.281,30,0.001,31,0.57,32,0.127,33,0.359,34,0.98,39,0.95,47,0.876,49,3.522,55,1.257,83,3.18,95,0.13,96,1.544,97,1.507,99,0.601,101,0.019,103,0,104,0,116,3.985,127,0.448,144,2.469,145,2.621,148,2.548,165,0.566,187,0.507,188,1.341,192,1.703,204,2.463,217,1.51,227,1.351,234,1.925,240,3.896,247,1.405,305,1.019,329,2.661,334,0.791,347,1.968,359,1.981,364,1.674,369,1.82,370,2.395,371,0.976,380,1.889,398,1.038,399,2.237,402,1.457,404,0.64,405,1.935,406,1.132,461,0.817,564,3.352,574,1.606,591,3.07,592,3.166,595,1.22,701,2.507,770,2.088,775,5.022,905,1.471,938,2.567,946,2.308,1015,4.574,1031,3.387,1291,1.507,1296,2.514,1366,3.84,1436,5.732,1565,4.574,1828,2.547,1919,2.372,2078,2.066,2079,3.976,2136,3.296,2309,1.986,2478,2.025,2618,2.925,2674,3.776,2685,2.025,2691,1.554,2701,1.634,2881,1.615,3091,1.615,3144,1.901,3305,1.751,3320,2.422,3331,1.986,3574,4.952,3684,1.986,3853,2.567,4227,3.497,4237,2.767,4239,2.215,4293,3.091,4303,1.554,4304,2.088,4982,1.986,4994,2.025,5999,2.466,6064,4.657,6082,4.278,6083,4.534,6084,4.054,6085,5.885,6092,2.466,6100,2.514,6102,2.343,6104,5.201,6110,3.988,6111,5.053,6112,3.722,6400,2.16,6424,2.066,6616,2.767,6617,4.234,6727,1.901,9493,2.626,9558,2.692,9561,4.054,9565,2.567,9599,2.466,9609,2.692,9613,2.692,9639,4.341,9642,2.567,9643,2.567,9648,2.692,9649,2.692,9689,2.856,9690,2.767,9691,4.463,9692,2.856,9693,4.463,9695,6.638,9707,6.694,9710,2.856,9711,2.767,9712,4.341,9713,2.567,9714,4.139,9715,4.139,9716,4.139,9717,2.215,9718,4.605,9719,4.605,9720,4.605,9721,4.605,9722,4.605,9723,4.605,9724,6.433,9725,6.49,9726,5.787,9727,4.341,9728,4.234,9729,2.626,9730,4.341,9731,2.692,9732,4.341,9733,5.608,9734,2.466,9735,2.767,9736,2.567,9737,2.567,9738,2.856,9739,2.856,9740,2.692,9741,2.626,9742,2.692,9743,2.856,9744,2.856,9745,2.856,9746,2.856,9747,2.856,9748,2.856,9749,2.856,9750,2.856,9751,2.856,9752,2.856,9753,7.784,9754,2.856,9755,2.856,9756,4.605,9757,2.856,9758,2.856,9759,4.605,9760,4.605,9761,4.605,9762,2.856,9763,2.767,9764,2.767,9765,2.856,9766,2.856,9767,2.856,9768,2.856,9769,4.605,9770,5.787,9771,2.767,9772,2.856,9773,4.605,9774,2.767,9775,2.856,9776,4.605,9777,2.856,9778,5.787,9779,5.787,9780,2.767,9781,2.856,9782,2.856,9783,2.856,9784,2.856,9785,2.856,9786,2.856,9787,2.767,9788,2.856,9789,2.856,9790,2.856,9791,2.856,9792,2.856,9909,5.713,9910,3.543,9911,3.543,9912,3.543,9913,3.543]],["title/classes/FileResponseBuilder.html",[0,0.23,9914,5.893]],["body/classes/FileResponseBuilder.html",[0,0.317,2,1.07,3,0.025,4,0.025,5,0.017,7,0.143,8,1.379,27,0.387,29,0.739,30,0.001,31,0.741,32,0.131,33,0.466,35,1.125,47,0.899,95,0.146,101,0.018,103,0.001,104,0.001,116,3.016,163,2.939,217,1.229,227,0.982,334,1.027,627,3.845,667,5.362,3544,3.87,6064,5.237,6154,8.609,6169,9.54,9485,8.141,9496,9.976,9914,9.976,9915,11.42,9916,9.319,9917,9.383,9918,6.907,9919,9.976]],["title/classes/FileSecurityCheckEntity.html",[0,0.23,9587,5.438]],["body/classes/FileSecurityCheckEntity.html",[0,0.248,2,0.838,3,0.019,4,0.019,5,0.01,7,0.112,27,0.523,29,0.578,30,0.001,31,0.409,32,0.165,33,0.55,47,0.891,83,3.534,95,0.141,96,1.971,101,0.019,103,0.001,104,0.001,127,0.921,144,3.346,145,2.839,165,0.77,234,1.906,240,4.149,329,3.607,334,0.803,364,2.269,398,2.136,405,2.63,564,4.359,591,4.703,592,4.851,595,2.511,775,7.162,1031,3.525,1436,8.175,2078,4.253,2079,6.792,2485,3.15,2618,4.996,9587,7.866,9599,5.076,9600,9.536,9665,10.757,9725,7.894,9727,7.415,9728,7.233,9729,5.405,9730,7.415,9731,5.541,9920,6.736,9921,10.259,9922,9.758,9923,7.292,9924,7.292,9925,7.292,9926,10.849,9927,9.014,9928,7.292]],["title/interfaces/FileSecurityCheckEntityProps.html",[334,0.743,9921,5.893]],["body/interfaces/FileSecurityCheckEntityProps.html",[0,0.281,3,0.022,4,0.022,5,0.012,7,0.127,30,0.001,32,0.164,33,0.652,47,0.966,83,3.188,95,0.15,96,2.234,101,0.02,103,0.001,104,0.001,145,3.017,165,0.836,234,1.719,240,3.994,334,0.911,336,2.014,398,2.421,405,2.228,564,4.731,591,3.535,592,3.646,775,7.129,1031,3.395,1436,8.872,2078,4.821,2079,7.374,2485,3.571,2618,5.423,9587,6.663,9599,5.754,9600,6.127,9665,6.911,9725,8.567,9727,6.281,9728,7.851,9729,6.127,9730,8.049,9731,6.281,9920,7.636,9921,10.212,9926,11.775,9927,7.636]],["title/controllers/FileSecurityController.html",[481,2.63,9929,5.893]],["body/controllers/FileSecurityController.html",[0,0.263,3,0.021,4,0.021,5,0.011,7,0.119,8,1.226,27,0.421,29,0.805,30,0.001,31,0.569,32,0.159,33,0.507,35,1.226,47,0.933,95,0.164,100,2.592,101,0.015,103,0.001,104,0.001,112,2.874,187,1.109,215,2.506,216,1.432,217,1.021,221,2.393,227,0.816,234,1.256,264,3.278,351,6.17,364,1.882,367,5.788,376,1.816,447,3.246,481,3.958,543,3.879,555,4.086,1062,3.379,1443,6.762,1446,5.882,1569,5.609,2769,3.825,3542,3.993,4038,4.778,6064,5.195,6132,7.954,6489,5.203,6490,6.472,6491,4.613,6513,6.472,9600,5.738,9811,9.471,9929,8.869,9930,11.328,9931,7.741,9932,10.152,9933,10.152,9934,7.741,9935,9.254,9936,7.741,9937,7.741,9938,7.741,9939,7.741,9940,7.741,9941,11.328,9942,10.465,9943,7.741,9944,7.741,9945,7.741,9946,7.741,9947,7.151,9948,7.741,9949,7.741,9950,7.741,9951,7.741,9952,7.741,9953,7.741,9954,7.741]],["title/injectables/FileSystemAdapter.html",[105,0.89,9955,5.64]],["body/injectables/FileSystemAdapter.html",[0,0.152,3,0.012,4,0.012,5,0.018,7,0.068,8,0.827,27,0.497,29,0.88,30,0.001,31,0.622,32,0.16,33,0.554,35,1.447,36,2.688,47,0.999,95,0.129,101,0.008,103,0,104,0,105,0.903,107,1.067,111,1.667,112,2.932,127,1.053,165,0.54,187,0.638,217,1.404,221,2.378,227,1.122,264,4.695,379,2.155,494,6.897,565,6.041,574,2.021,576,7.595,795,4.035,884,3.233,1035,4.764,1121,6.508,1661,4.46,1871,4.225,1872,4.528,1924,5.201,1925,3.557,2180,4.336,2296,6.635,2307,5.979,2344,3.864,2439,3.229,2450,4.336,2478,2.547,2659,3.726,2835,6.819,2880,5.829,3261,3.047,3477,6.323,3542,3.53,3851,5.347,7654,5.723,7679,8.454,9955,5.723,9956,11.258,9957,11.258,9958,4.457,9959,9.302,9960,6.845,9961,6.845,9962,6.845,9963,8.333,9964,8.333,9965,6.845,9966,8.333,9967,8.333,9968,6.845,9969,6.845,9970,4.457,9971,5.723,9972,10.571,9973,6.845,9974,4.457,9975,3.802,9976,9.349,9977,10.087,9978,6.845,9979,5.979,9980,5.201,9981,8.637,9982,11.443,9983,6.845,9984,4.457,9985,3.387,9986,8.333,9987,4.457,9988,6.323,9989,9.836,9990,8.333,9991,4.457,9992,7.698,9993,7.698,9994,7.537,9995,9.349,9996,6.845,9997,4.457,9998,6.323,9999,6.323,10000,5.518,10001,8.333,10002,4.457,10003,6.845,10004,4.457,10005,4.457,10006,6.845,10007,4.457,10008,4.117,10009,6.323,10010,4.457,10011,4.457,10012,4.457,10013,8.333,10014,4.457,10015,4.457,10016,4.457,10017,4.457,10018,4.457,10019,6.845,10020,4.457,10021,4.457,10022,3.482,10023,4.457,10024,4.457,10025,4.457]],["title/modules/FileSystemModule.html",[425,1.808,10026,5.64]],["body/modules/FileSystemModule.html",[0,0.325,3,0.025,4,0.025,5,0.016,30,0.001,95,0.148,101,0.018,103,0.001,104,0.001,187,1.367,425,3.345,427,3.527,428,3.72,429,3.836,430,3.819,431,3.785,432,4.612,433,4.705,442,4.658,443,3.752,444,3.658,9955,11.791,9956,8.813,9957,8.813,10026,11.436,10027,9.54,10028,9.54,10029,9.54,10030,9.54,10031,9.54]],["title/classes/FileUrlParams.html",[0,0.23,6126,4.611]],["body/classes/FileUrlParams.html",[0,0.451,2,0.723,3,0.017,4,0.023,5,0.012,7,0.097,26,2.515,27,0.423,30,0.001,32,0.173,33,0.441,39,1.689,47,0.98,95,0.154,99,1.069,101,0.025,103,0.001,104,0.001,150,3.738,165,0.697,204,2.161,334,0.694,347,1.799,364,1.889,369,1.393,373,4.66,374,2.012,375,4.48,376,1.478,377,5.751,379,1.452,380,1.318,467,3.689,469,2.779,470,5.078,471,4.699,565,3.325,1000,5.154,1001,6.581,1011,5.423,1031,3.266,1044,3.092,1291,3.756,1381,5.943,2744,4.544,2915,5.379,3574,3.071,4227,2.169,5740,6.712,6064,5.064,6077,7.195,6083,6.08,6111,3.134,6114,4.306,6115,4.385,6116,4.385,6119,7.575,6122,7.972,6123,7.549,6124,7.687,6125,4.385,6126,6.034,6127,7.691,6128,4.306,6129,4.385,6130,4.045,6131,5.839,6132,4.167,6133,4.385,6134,4.385,6135,4.234,6136,4.306,6137,4.234,6138,4.234,6139,4.045,6140,4.385,6141,4.306,6142,4.385,6143,4.234,6144,4.306,6145,4.104,6146,4.104,6147,4.385,10032,8.827,10033,6.299,10034,6.299,10035,6.299,10036,6.299]],["title/modules/FilesModule.html",[425,1.808,10037,5.64]],["body/modules/FilesModule.html",[0,0.3,3,0.023,4,0.023,5,0.012,30,0.001,95,0.17,101,0.017,103,0.001,104,0.001,187,1.265,425,3.231,427,3.264,428,3.442,429,3.55,430,3.534,431,3.502,432,4.455,433,3.329,438,6.265,442,4.44,443,3.472,444,3.385,449,4.44,1545,2.82,2570,4.777,2769,4.363,7769,9.648,7774,11.089,7778,7.712,7802,10.692,7803,11.089,7822,8.155,10037,11.675,10038,8.828,10039,8.828,10040,8.828,10041,8.828]],["title/injectables/FilesRepo.html",[105,0.89,7802,5.438]],["body/injectables/FilesRepo.html",[0,0.189,3,0.015,4,0.015,5,0.008,7,0.086,8,0.976,10,3.264,12,3.728,18,3.994,26,2.601,27,0.517,29,0.97,30,0.001,31,0.686,32,0.171,33,0.611,34,1.387,35,1.441,36,2.709,40,2.68,49,3.71,55,2.545,56,2.68,58,6.614,83,2.863,95,0.153,96,2.185,97,2.369,99,0.945,101,0.011,103,0,104,0,105,1.066,107,1.332,112,2.98,116,4.034,127,0.703,187,0.797,216,1.03,217,1.612,221,2.243,227,1.1,234,1.312,380,1.691,381,2.66,398,1.63,404,1.461,577,3.121,596,3.171,692,4.778,701,2.823,877,6.96,883,3.389,884,3.818,885,4.735,908,3.395,909,3.436,910,3.395,911,3.436,912,3.951,913,3.395,914,3.436,915,3.065,919,4.23,964,3.806,1916,2.697,2394,4.034,2395,5.967,2397,5.856,2435,3.742,2485,2.405,3542,5.966,3601,4.488,4628,3.682,5782,4.23,7668,6.293,7777,9.121,7788,7.06,7802,6.515,7808,4.654,7811,8.157,7907,3.875,9562,4.23,9564,4.863,9574,3.951,9585,4.863,9667,4.863,10042,5.567,10043,8.082,10044,8.082,10045,8.082,10046,5.567,10047,8.082,10048,5.567,10049,5.567,10050,8.082,10051,5.567,10052,5.567,10053,8.082,10054,5.567,10055,5.567,10056,7.466,10057,4.488,10058,8.082,10059,5.567,10060,5.567,10061,7.06,10062,5.143,10063,5.567,10064,5.567,10065,5.567,10066,5.567,10067,5.567,10068,5.567]],["title/injectables/FilesService.html",[105,0.89,10069,6.231]],["body/injectables/FilesService.html",[0,0.277,3,0.022,4,0.022,5,0.012,7,0.125,8,1.268,26,2.758,27,0.482,29,0.921,30,0.001,31,0.651,32,0.163,33,0.58,35,1.268,36,2.665,39,2.814,95,0.149,99,1.383,101,0.016,103,0.001,104,0.001,105,1.384,107,1.95,112,2.914,127,1.03,187,1.167,215,2.638,216,1.507,217,1.384,221,2.891,227,1.292,247,4.865,381,3.455,2570,6.283,6673,7.119,7802,9.886,10069,9.696,10070,8.149,10071,10.496,10072,10.496,10073,8.149,10074,10.496,10075,8.149,10076,10.496,10077,8.149,10078,8.149,10079,11.328,10080,10.496,10081,8.149,10082,10.496,10083,8.149,10084,8.149]],["title/modules/FilesStorageAMQPModule.html",[425,1.808,10085,5.893]],["body/modules/FilesStorageAMQPModule.html",[0,0.302,3,0.024,4,0.024,5,0.013,30,0.001,95,0.167,101,0.017,103,0.001,104,0.001,187,1.27,425,3.237,427,3.278,428,3.457,429,3.565,430,3.549,431,3.518,432,4.464,433,3.344,438,6.272,442,4.453,443,3.487,444,3.4,449,4.453,481,3.457,1445,6.738,1545,2.833,3542,4.574,3543,4.353,6064,4.066,6317,8.783,10085,12.206,10086,8.867,10087,8.867,10088,8.867,10089,10.704,10090,11.599,10091,8.867,10092,6.172,10093,8.191]],["title/modules/FilesStorageApiModule.html",[425,1.808,10094,5.27]],["body/modules/FilesStorageApiModule.html",[0,0.282,3,0.022,4,0.022,5,0.012,30,0.001,95,0.172,101,0.016,103,0.001,104,0.001,187,1.189,425,3.14,427,3.068,428,3.236,429,3.337,430,3.322,431,3.293,432,4.33,433,3.13,442,4.27,443,3.264,444,3.182,446,5.258,447,4.453,449,4.27,481,3.236,1266,4.744,1445,6.307,1585,8.636,1945,7.064,2767,3.742,2769,4.102,3542,4.281,3543,4.074,3956,7.139,6064,3.806,6317,8.636,9929,10.232,9942,12.06,10089,10.524,10092,5.778,10093,7.667,10094,10.913,10095,8.3,10096,8.3,10097,8.3,10098,11.713,10099,6.484]],["title/injectables/FilesStorageClientAdapterService.html",[105,0.89,6193,5]],["body/injectables/FilesStorageClientAdapterService.html",[0,0.239,3,0.025,4,0.019,5,0.013,7,0.108,8,1.151,26,2.416,27,0.48,29,0.918,30,0.001,31,0.649,32,0.162,33,0.578,35,1.304,36,2.71,95,0.166,99,1.194,100,2.356,101,0.013,103,0.001,104,0.001,105,1.256,107,1.684,111,1.408,112,2.949,127,0.889,187,1.008,206,3.603,215,2.278,216,1.302,217,1.644,221,2.546,227,1.138,264,4.034,336,1.715,367,3.387,1016,3.857,1052,3.883,1053,5.133,1545,2.248,2993,4.655,3542,3.63,3543,6.523,3574,3.431,6063,5.673,6064,5.546,6177,9.042,6179,9.678,6180,6.501,6193,7.061,6219,5.099,9659,5.884,10100,11.173,10101,7.037,10102,8.323,10103,8.323,10104,8.801,10105,10.801,10106,9.678,10107,7.037,10108,9.527,10109,7.037,10110,9.527,10111,7.037,10112,9.527,10113,7.037,10114,6.501,10115,7.037,10116,7.037,10117,12.468,10118,7.037,10119,7.037,10120,9.527,10121,7.037]],["title/classes/FilesStorageClientMapper.html",[0,0.23,9659,5.64]],["body/classes/FilesStorageClientMapper.html",[0,0.203,2,0.684,3,0.016,4,0.016,5,0.008,7,0.092,8,1.024,27,0.491,29,0.939,30,0.001,31,0.698,32,0.175,33,0.591,34,1.456,35,1.429,47,0.72,95,0.138,99,1.011,100,3.308,101,0.011,103,0.001,104,0.001,217,1.642,227,1.354,234,1.748,305,2.441,336,1.451,380,2.253,627,4.243,806,4.164,1016,3.846,1720,6.446,2309,5.54,2689,4.409,2691,3.722,2881,3.868,3543,6.547,3574,2.903,5843,4.651,6063,8.682,6064,5.583,6067,3.939,6068,10.18,6076,4.651,6083,6.853,6086,4.413,6111,4.221,6113,4.413,6219,9.309,8206,4.144,8990,5.201,9488,10.407,9656,11.248,9658,9.949,9659,7.092,10122,5.954,10123,8.483,10124,8.483,10125,8.483,10126,8.483,10127,8.483,10128,8.483,10129,8.483,10130,5.954,10131,8.483,10132,5.954,10133,8.483,10134,5.954,10135,8.483,10136,5.954,10137,8.483,10138,5.954,10139,8.483,10140,5.954,10141,10.769,10142,5.954,10143,5.954,10144,5.954,10145,5.954,10146,5.954,10147,5.954,10148,5.954,10149,5.954,10150,5.954,10151,5.954,10152,5.954,10153,5.954,10154,8.483,10155,5.954,10156,5.954,10157,5.954]],["title/modules/FilesStorageClientModule.html",[425,1.808,3534,5]],["body/modules/FilesStorageClientModule.html",[0,0.279,3,0.022,4,0.022,5,0.012,30,0.001,95,0.167,101,0.016,103,0.001,104,0.001,187,1.174,425,3.122,427,3.031,428,3.197,429,3.296,430,3.282,431,3.253,432,4.305,433,4.392,438,6.147,442,4.237,443,3.224,444,3.143,449,4.237,1545,2.619,3026,5.061,3027,4.686,3534,10.409,3543,5.716,6064,3.759,6186,11.144,6193,10.246,6205,7.574,6234,9.429,6240,7.574,10106,10.88,10114,7.574,10158,8.199,10159,8.199,10160,8.199,10161,8.199,10162,8.199,10163,7.574,10164,7.162,10165,9.205]],["title/injectables/FilesStorageConsumer.html",[105,0.89,10090,5.893]],["body/injectables/FilesStorageConsumer.html",[0,0.195,3,0.015,4,0.026,5,0.008,7,0.088,8,0.997,26,2.209,27,0.439,29,0.84,30,0.001,31,0.594,32,0.148,33,0.529,35,1.169,36,2.54,39,1.537,95,0.163,96,1.55,99,0.973,100,1.92,101,0.011,103,0.001,104,0.001,105,1.089,107,1.372,111,1.936,112,2.816,116,4.063,127,1.043,145,2.497,187,0.821,206,2.935,216,1.527,217,1.541,221,2.281,227,1.02,231,7.355,364,1.794,398,1.679,731,2.245,957,3.245,1008,5.777,1016,3.78,1052,3.944,1053,4.694,1298,2.692,1299,2.66,1300,2.66,1301,2.814,1302,3.076,1327,4.181,1417,6.214,1418,7.853,1437,4.154,1438,3.854,1545,1.832,1865,5.068,1991,3.102,2514,3.793,2657,4.069,2658,3.991,2744,3.681,3808,7.171,4614,4.622,6064,5.144,6119,6.897,6138,7.115,6758,6.304,7662,8.043,9515,6.903,9734,5.747,10090,7.213,10102,9.247,10103,8.452,10165,5.009,10166,11.218,10167,5.733,10168,9.676,10169,5.733,10170,9.419,10171,5.733,10172,5.296,10173,9.676,10174,8.924,10175,10.793,10176,9.676,10177,5.733,10178,5.296,10179,5.733,10180,5.733,10181,5.733,10182,8.256,10183,10.585,10184,11.218,10185,4.479,10186,5.009,10187,4.479,10188,4.357,10189,4.357,10190,5.296,10191,5.009,10192,5.733,10193,8.256,10194,5.733,10195,8.256,10196,5.733,10197,5.733,10198,8.256,10199,8.256,10200,5.733,10201,5.733]],["title/classes/FilesStorageMapper.html",[0,0.23,10191,5.893]],["body/classes/FilesStorageMapper.html",[0,0.287,2,0.678,3,0.016,4,0.016,5,0.008,7,0.091,8,1.018,27,0.49,29,0.936,30,0.001,31,0.662,32,0.174,33,0.59,35,1.425,55,2.781,56,5.163,59,2.616,70,5.374,95,0.151,101,0.011,103,0.001,104,0.001,185,2.311,187,0.845,208,2.19,217,1.602,227,1.243,234,1.841,305,1.698,334,0.65,380,1.235,627,4.238,982,2.957,1008,5.854,1016,3.01,1567,4.276,2027,6.407,2767,2.661,3218,5.576,3331,4.726,3491,5.156,3574,2.878,4227,2.032,5739,3.904,6022,4.374,6064,5.569,6082,7.811,6083,5.905,6086,7.288,6097,4.758,6103,4.758,6111,2.936,6113,7.288,6119,7.392,6130,6.889,6131,3.904,6135,7.625,6489,6.609,6490,9.485,6513,4.934,9734,5.867,9807,9.084,9808,7.787,9812,5.452,9814,7.787,9816,5.452,9817,5.452,9818,5.156,9820,5.452,9917,8.151,9919,5.156,10191,7.364,10202,12.145,10203,5.902,10204,8.429,10205,7.364,10206,8.429,10207,8.429,10208,8.429,10209,5.902,10210,7.364,10211,5.902,10212,5.902,10213,5.902,10214,8.429,10215,5.902,10216,8.429,10217,5.902,10218,5.902,10219,5.902,10220,5.452,10221,5.902,10222,5.902,10223,5.902,10224,5.902,10225,5.156,10226,5.902,10227,5.452,10228,5.902,10229,5.902,10230,5.902,10231,5.902,10232,4.934,10233,5.902,10234,5.902,10235,5.902,10236,5.902,10237,5.902,10238,5.902,10239,5.902,10240,5.902]],["title/modules/FilesStorageModule.html",[425,1.808,10089,5.438]],["body/modules/FilesStorageModule.html",[0,0.204,3,0.016,4,0.016,5,0.008,30,0.001,32,0.084,47,0.787,87,2.969,95,0.173,96,2.308,99,1.02,101,0.011,103,0.001,104,0.001,154,2.739,187,0.861,217,1.31,234,0.975,347,1.224,369,1.328,380,1.257,381,1.977,398,1.759,425,2.662,427,2.221,428,2.342,429,2.415,430,2.405,431,2.383,432,3.997,433,3.745,438,5.606,442,3.432,443,2.363,444,2.303,449,4.347,461,1.385,511,3.076,574,2.724,701,2.982,722,2.65,731,2.352,778,5.738,801,3.504,885,4.248,953,3.914,1298,2.821,1299,2.787,1300,2.787,1301,2.949,1378,3.974,1379,3.621,1406,4.843,1415,3.621,1416,4.843,1417,3.858,1418,4.038,1445,4.565,1545,1.919,1585,7.153,1724,3.368,1919,2.495,1945,5.85,2171,2.582,2172,2.873,2173,2.771,2174,3.805,2570,3.25,2686,3.197,3542,3.099,3544,2.495,4608,5.55,4614,4.843,4808,4.107,5400,3.974,5453,4.038,6064,2.755,6082,5.087,6163,3.974,6317,7.153,9611,4.263,9707,6.327,9835,10.367,9918,4.453,10089,11.256,10094,8.447,10165,5.248,10170,10.601,10241,6.007,10242,6.007,10243,6.007,10244,6.007,10245,8.796,10246,7.527,10247,11.488,10248,6.327,10249,6.327,10250,4.353,10251,6.487,10252,4.263,10253,4.453,10254,6.327,10255,6.007,10256,5.55,10257,4.565,10258,6.186,10259,6.186,10260,6.186,10261,4.453,10262,4.263,10263,5.55,10264,6.007,10265,5.023,10266,6.007,10267,6.007,10268,6.007,10269,5.248,10270,6.007,10271,5.023,10272,6.487,10273,4.453,10274,4.453,10275,4.353,10276,4.843,10277,4.353,10278,4.565,10279,5.248]],["title/injectables/FilesStorageProducer.html",[105,0.89,10106,5.64]],["body/injectables/FilesStorageProducer.html",[0,0.18,3,0.014,4,0.014,5,0.007,7,0.081,8,0.941,26,2.452,27,0.488,29,0.902,30,0.001,31,0.637,32,0.165,33,0.568,35,1.312,36,2.47,55,1.714,80,4.428,95,0.158,99,0.899,101,0.01,103,0,104,0,105,1.028,107,1.268,111,2.568,112,2.76,127,0.985,144,1.448,148,1.639,165,0.615,187,0.759,204,2.673,216,2.102,217,1.433,221,2.18,227,1.075,231,7.703,247,3.092,305,1.524,329,1.56,336,1.29,789,7.546,801,3.089,957,2.997,1016,3.881,1052,3.176,1053,4.522,1327,2.092,1417,5.004,1418,5.238,1429,8.928,1437,3.837,1438,3.56,1545,1.692,1865,5.952,2049,4.269,2050,4.892,2993,3.503,3543,5.918,3808,8.423,3940,6.515,3976,8.489,6064,5.528,6760,3.837,8199,4.626,8201,4.892,10100,11.137,10102,6.807,10103,6.807,10104,7.199,10106,6.515,10172,7.199,10174,5.776,10178,7.199,10185,7.965,10186,4.626,10187,8.489,10188,4.024,10189,4.024,10190,4.892,10280,5.296,10281,7.793,10282,7.793,10283,7.793,10284,7.793,10285,5.296,10286,9.179,10287,5.296,10288,7.793,10289,9.179,10290,5.296,10291,5.296,10292,7.793,10293,5.296,10294,4.428,10295,5.296,10296,5.296,10297,7.199,10298,5.296,10299,5.296,10300,9.246,10301,5.296,10302,5.296,10303,9.246,10304,9.246,10305,5.296,10306,5.296,10307,5.296,10308,5.296,10309,5.296,10310,5.296,10311,5.296,10312,7.793,10313,5.296]],["title/modules/FilesStorageTestModule.html",[425,1.808,10314,5.893]],["body/modules/FilesStorageTestModule.html",[0,0.241,3,0.019,4,0.019,5,0.01,8,0.856,27,0.294,29,0.562,30,0.001,31,0.397,32,0.099,33,0.354,35,0.856,59,2.2,95,0.172,99,1.203,101,0.014,103,0.001,104,0.001,187,1.015,217,1.43,227,0.747,380,1.482,381,2.332,425,3.112,427,2.62,428,2.763,429,2.849,430,2.837,431,2.812,432,4.291,433,2.673,438,5.902,442,3.849,443,2.787,444,2.717,447,4.545,449,4.875,627,2.981,701,3.344,1408,5.135,1409,6.434,1412,7.17,1445,7.274,1545,2.264,1585,8.265,1945,6.76,2767,3.195,3542,3.655,3543,5.321,6064,4.389,6082,5.705,6317,8.265,10092,4.933,10094,9.761,10099,5.536,10246,8.697,10254,7.095,10256,6.547,10314,12.187,10315,7.087,10316,7.087,10317,8.439,10318,6.191,10319,8.604,10320,7.087,10321,5.135,10322,5.713,10323,5.135,10324,5.713,10325,5.925,10326,7.095]],["title/classes/FilterImportUserParams.html",[0,0.23,10327,5.64]],["body/classes/FilterImportUserParams.html",[0,0.312,2,1.407,3,0.018,4,0.018,5,0.009,7,0.102,27,0.521,30,0.001,32,0.179,33,0.678,47,0.957,95,0.17,101,0.02,103,0.001,104,0.001,165,0.723,347,1.867,364,2.328,369,2.025,373,4.835,374,2.122,375,5.191,376,1.558,469,2.93,470,4.994,471,5.444,496,4.417,577,5.877,851,5.145,852,5.145,1001,7.063,1031,3.621,1044,3.26,1680,6.261,2489,5.234,2500,5.653,3105,5.801,3106,5.135,4442,5.644,5346,5.801,5418,7.157,7668,5.52,10327,7.657,10328,11.818,10329,5.553,10330,7.296,10331,7.166,10332,6.642,10333,6.642,10334,9.683,10335,6.642,10336,6.642,10337,6.642,10338,6.642,10339,6.642,10340,10.949,10341,6.136,10342,6.642,10343,6.642,10344,6.642,10345,10.949,10346,6.642,10347,6.642,10348,8.46,10349,6.375,10350,4.714,10351,6.318,10352,6.642,10353,6.642]],["title/classes/FilterNewsParams.html",[0,0.23,10354,5.438]],["body/classes/FilterNewsParams.html",[0,0.352,2,0.915,3,0.021,4,0.021,5,0.011,7,0.123,27,0.477,30,0.001,32,0.161,33,0.645,34,1.776,47,0.886,95,0.156,99,1.353,101,0.015,103,0.001,104,0.001,165,0.817,347,2.109,364,2.13,373,5.463,374,2.547,375,4.934,376,1.87,377,6.742,379,2.905,470,4.36,471,5.175,475,3.994,1000,4.425,1031,2.555,1044,3.913,1295,5.973,2744,5.423,2778,6.742,2910,5.647,2911,5.647,6723,7.379,6730,7.35,6731,7.31,6774,7.343,6900,6.963,6902,7.998,6904,7.364,6909,7.364,6911,7.923,6914,7.498,6920,7.364,10354,8.342,10355,12.161,10356,9.262,10357,6.963,10358,8.084,10359,8.652,10360,7.971,10361,7.971,10362,7.364,10363,7.67,10364,7.971]],["title/classes/FilterUserParams.html",[0,0.23,10365,5.64]],["body/classes/FilterUserParams.html",[0,0.394,2,1.093,3,0.025,4,0.025,5,0.013,7,0.146,27,0.395,30,0.001,31,0.699,32,0.133,33,0.578,47,0.842,95,0.148,101,0.018,103,0.001,104,0.001,144,3.162,165,0.913,364,1.764,374,3.041,375,4.693,376,2.232,470,4.874,471,4.922,494,6.972,851,5.678,852,5.678,1001,6.894,4442,5.103,7668,6.972,10328,10.686,10329,7.957,10334,8.792,10365,9.672,10366,9.517]],["title/classes/ForbiddenLoggableException.html",[0,0.23,2039,5.893]],["body/classes/ForbiddenLoggableException.html",[0,0.284,2,0.957,3,0.022,4,0.022,5,0.012,7,0.128,8,1.286,26,2.581,27,0.442,29,0.661,30,0.001,31,0.467,32,0.149,33,0.416,35,1.007,39,3.146,47,0.855,95,0.164,99,1.415,101,0.016,103,0.001,104,0.001,111,2.348,127,1.346,163,2.628,187,1.194,199,4.481,208,3.093,214,3.505,216,2.171,217,1.099,227,0.878,404,1.925,406,2.663,415,4.548,885,6.153,945,7.281,1327,4.206,1542,5.477,1547,6.153,1862,6.808,1865,4.365,1866,4.717,2037,6.775,2039,9.303,8137,6.427,8530,5.352,8537,4.913,8538,5.145,10367,11.736,10368,6.719,10369,7.699,10370,8.334,10371,7.281,10372,7.281,10373,8.334,10374,8.334,10375,8.334]],["title/classes/ForbiddenOperationError.html",[0,0.23,507,5.64]],["body/classes/ForbiddenOperationError.html",[0,0.259,2,0.874,3,0.02,4,0.02,5,0.011,7,0.117,8,1.212,27,0.54,29,0.604,30,0.001,31,0.427,32,0.189,33,0.561,35,0.919,47,0.929,55,1.674,59,3.116,95,0.129,101,0.015,103,0.001,104,0.001,127,0.962,165,0.792,187,1.09,204,4.375,216,2.493,364,2.302,404,1.815,406,2.431,507,8.393,564,2.824,596,3.873,1013,5.477,1016,2.717,1253,5.181,1291,5.083,1327,4.904,1472,8.243,1473,7.431,1474,4.055,1475,7.214,1479,4.958,1480,4.266,1481,4.958,1482,4.958,1483,4.958,1484,4.958,1485,4.958,1486,4.64,1487,4.349,1488,5.945,1493,4.82,1884,8.092,4579,6.134,10376,10.038,10377,7.609,10378,7.609,10379,7.609,10380,8.393,10381,7.628,10382,7.029]],["title/controllers/FwuLearningContentsController.html",[481,2.63,10383,5.64]],["body/controllers/FwuLearningContentsController.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.196,27,0.309,29,0.591,30,0.001,31,0.418,32,0.139,33,0.373,35,0.9,36,2.152,95,0.166,101,0.014,103,0.001,104,0.001,112,2.494,185,4.354,187,1.068,215,2.413,216,1.379,217,1.466,221,1.757,227,0.786,234,1.607,264,4.193,305,2.145,363,4.787,364,1.382,367,5.703,369,1.648,376,1.749,447,3.126,481,2.907,483,3.588,555,3.935,556,4.033,557,4.068,561,4.068,576,4.394,1016,4.404,1415,4.493,1439,3.565,1487,4.26,1567,5.401,2171,3.204,2172,3.565,2173,3.438,2344,4.093,3491,6.512,3898,4.068,6489,8.289,6490,6.232,6491,4.442,6507,6.512,6513,6.232,9935,8.781,9947,6.886,10383,8.279,10384,7.736,10385,9.633,10386,9.902,10387,7.454,10388,8.279,10389,7.454,10390,10.35,10391,9.902,10392,7.454,10393,8.964,10394,6.512,10395,6.512,10396,7.454,10397,7.454,10398,7.454,10399,7.454,10400,7.454,10401,7.454,10402,8.687,10403,7.454,10404,7.454,10405,7.454,10406,7.454,10407,7.454,10408,7.454,10409,6.886,10410,7.454,10411,7.454,10412,7.454,10413,7.454,10414,7.454,10415,7.454,10416,7.454,10417,7.454]],["title/modules/FwuLearningContentsModule.html",[425,1.808,10418,5.893]],["body/modules/FwuLearningContentsModule.html",[0,0.22,3,0.017,4,0.017,5,0.009,30,0.001,32,0.09,47,0.47,87,3.188,94,4.266,95,0.175,96,2.426,99,1.095,101,0.012,103,0.001,104,0.001,154,2.941,187,0.924,217,0.851,234,1.047,369,1.426,381,2.123,398,1.889,425,2.767,427,2.385,428,2.515,429,2.593,430,2.582,431,2.559,432,3.815,433,2.433,438,5.736,442,3.608,443,2.537,444,2.473,447,3.763,449,3.608,461,2.379,496,3.781,511,3.302,574,2.924,701,3.135,722,2.845,731,2.526,778,6.032,801,3.762,844,4.069,885,4.465,953,4.203,1114,3.641,1266,3.687,1298,3.029,1299,2.993,1300,2.993,1301,3.166,1378,4.267,1379,3.888,1545,2.061,1585,8.032,1724,3.617,1919,2.679,1945,6.57,2686,3.433,2767,2.908,3544,2.679,3956,6.032,4808,4.41,5400,4.267,5453,4.336,6163,4.267,6317,8.032,8206,4.49,9475,5.61,9611,4.578,9918,4.781,10092,4.49,10245,9,10248,6.652,10249,6.652,10250,4.674,10251,6.819,10252,4.578,10253,4.781,10257,8.912,10258,6.503,10259,6.503,10260,6.503,10261,4.781,10262,4.578,10265,5.393,10271,5.393,10272,6.819,10273,4.781,10274,4.781,10275,4.674,10276,5.2,10277,4.674,10278,4.901,10279,5.635,10383,8.629,10384,5.039,10385,8.912,10388,5.393,10393,9.788,10394,5.635,10395,5.635,10418,12.022,10419,6.45,10420,6.45,10421,6.45,10422,5.959,10423,6.45,10424,5.959,10425,5.959,10426,5.959,10427,5.635]],["title/modules/FwuLearningContentsTestModule.html",[425,1.808,10428,5.893]],["body/modules/FwuLearningContentsTestModule.html",[0,0.219,3,0.017,4,0.017,5,0.009,8,0.778,27,0.267,29,0.511,30,0.001,31,0.361,32,0.09,33,0.322,35,0.778,59,1.999,94,4.261,95,0.175,99,1.093,101,0.012,103,0.001,104,0.001,154,2.936,187,0.923,217,1.36,227,0.679,381,2.12,425,2.989,427,2.381,428,2.511,429,2.589,430,2.578,431,2.555,432,4.333,433,2.429,438,5.733,442,3.604,443,2.533,444,2.469,447,4.675,449,4.713,461,2.066,496,3.777,627,2.791,701,3.131,801,3.756,844,4.064,1114,3.637,1266,3.681,1408,4.666,1409,6.026,1412,6.821,1545,2.057,1585,8.028,1945,6.566,2767,2.903,3544,2.675,3956,6.026,6163,4.26,6317,8.028,8206,4.483,9475,5.604,9918,4.773,10092,4.483,10099,5.031,10246,8.448,10253,4.773,10257,8.907,10261,4.773,10262,4.57,10265,5.384,10271,5.384,10317,8.159,10318,5.626,10319,8.264,10321,4.666,10322,5.192,10323,4.666,10324,5.192,10326,6.644,10383,8.622,10384,7.003,10385,9.461,10388,5.384,10393,9.783,10394,5.626,10395,5.626,10422,8.281,10425,5.949,10426,5.949,10427,5.626,10428,12.135,10429,6.44,10430,6.44,10431,6.44,10432,5.93,10433,6.44]],["title/injectables/FwuLearningContentsUc.html",[105,0.89,10393,5.438]],["body/injectables/FwuLearningContentsUc.html",[0,0.287,3,0.022,4,0.022,5,0.012,7,0.13,8,1.296,27,0.446,29,0.852,30,0.001,31,0.602,32,0.15,33,0.536,35,1.019,47,0.955,59,2.62,95,0.159,101,0.016,103,0.001,104,0.001,105,1.416,107,2.02,111,2.147,112,2.648,127,1.356,187,1.209,216,1.561,217,1.113,221,1.99,227,0.889,576,4.975,839,3.962,1016,3.834,1052,4.375,1053,5.51,1062,3.684,1376,8.157,1545,2.696,2993,5.583,3544,3.505,9918,6.255,10384,9.222,10385,10.123,10388,7.056,10393,8.653,10402,9.706,10427,7.372,10434,11.805,10435,8.439,10436,10.312,10437,9.706,10438,8.439,10439,8.439,10440,8.439,10441,8.439,10442,8.439,10443,8.439]],["title/interfaces/GetFile.html",[334,0.743,6169,5]],["body/interfaces/GetFile.html",[3,0.023,4,0.023,5,0.015,7,0.131,30,0.001,31,0.479,32,0.181,33,0.676,47,1.034,55,2.612,95,0.11,101,0.024,103,0.001,104,0.001,163,4.061,165,0.854,334,1.375,336,2.083,1565,4.748,2186,5.414,5410,8.157,5562,8.688,6157,6.494,6158,6.677,6159,7.146,6160,6.89,6161,6.89,6162,5.745,6163,5.654,6164,6.677,6165,5.949,6166,5.949,6167,5.949,6168,5.949,6169,8.02,6170,9.251,6171,9.251,6172,9.251]],["title/interfaces/GetFileResponse.html",[334,0.743,9917,5.126]],["body/interfaces/GetFileResponse.html",[3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,31,0.699,32,0.187,33,0.675,47,1.024,55,2.61,95,0.152,101,0.021,103,0.001,104,0.001,163,3.933,165,0.853,334,1.191,336,2.078,380,1.784,982,4.273,5410,7.9,5562,8.681,6064,3.911,6082,7.069,6130,6.94,6139,7.618,6162,5.733,6170,9.244,6171,9.244,6172,9.244,9917,8.211,9994,6.875,10402,6.663,10444,7.879,10445,7.131,10446,7.451,10447,7.131]],["title/classes/GetFwuLearningContentParams.html",[0,0.23,10390,5.893]],["body/classes/GetFwuLearningContentParams.html",[0,0.396,2,1.104,3,0.025,4,0.025,5,0.014,7,0.148,27,0.399,30,0.001,32,0.135,47,0.847,95,0.149,101,0.018,103,0.001,104,0.001,165,0.918,364,1.781,374,3.07,376,2.254,467,3.128,470,4.902,472,7.82,1001,6.933,10384,9.089,10385,9.883,10390,10.164,10448,11.635,10449,9.608,10450,12.514,10451,9.608,10452,10.748,10453,11.635,10454,9.608,10455,9.608,10456,9.608]],["title/interfaces/GlobalConstants.html",[334,0.743,10457,6.231]],["body/interfaces/GlobalConstants.html",[3,0.025,4,0.025,5,0.013,7,0.145,30,0.001,32,0.174,33,0.646,47,1.01,95,0.121,101,0.018,103,0.001,104,0.001,150,3.458,165,0.908,217,1.517,334,1.039,336,2.297,7652,5.75,10258,9.601,10259,9.601,10260,9.601,10457,11.466,10458,9.428,10459,11.502,10460,9.428,10461,11.502]],["title/classes/GlobalErrorFilter.html",[0,0.23,8218,5.64]],["body/classes/GlobalErrorFilter.html",[0,0.162,2,0.546,3,0.013,4,0.013,5,0.007,7,0.073,8,0.868,27,0.496,29,0.926,30,0.001,31,0.67,32,0.164,33,0.583,35,1.41,95,0.161,100,1.591,101,0.009,103,0,104,0,111,2.681,127,0.6,145,1.226,148,2.99,187,0.681,204,4.398,214,2.366,215,1.538,216,0.879,217,1.719,227,1.23,234,1.84,334,0.524,558,2.258,692,4.068,731,1.861,806,3.028,845,3.372,846,3.372,1016,4.578,1052,2.929,1062,3.137,1158,5.143,1253,4.457,1298,2.231,1299,2.204,1300,2.204,1327,3.817,1439,3.437,1440,3.248,1469,4.754,1472,5.965,1474,3.281,1486,7.651,1495,4.151,1498,3.443,1542,5.685,1545,1.518,1819,3.052,2184,4.151,2993,3.143,3307,3.83,3672,7.163,3923,6.278,4579,3.83,4714,5.166,6491,2.832,8124,3.83,8173,8.08,8191,3.83,8203,3.83,8218,6.009,8241,8.08,9413,4.389,10185,6.772,10186,4.151,10462,12.182,10463,4.389,10464,8.668,10465,7.187,10466,7.187,10467,7.187,10468,7.187,10469,7.187,10470,9.664,10471,7.187,10472,4.752,10473,6.639,10474,8.857,10475,11.338,10476,4.752,10477,7.187,10478,4.752,10479,7.187,10480,4.752,10481,7.187,10482,4.752,10483,7.187,10484,4.752,10485,7.187,10486,4.752,10487,4.752,10488,7.187,10489,4.752,10490,4.752,10491,6.009,10492,4.752,10493,4.752,10494,4.752,10495,4.752,10496,4.752,10497,4.752,10498,4.752,10499,4.752,10500,4.752,10501,4.752,10502,4.752,10503,4.752,10504,4.752,10505,4.752,10506,4.752,10507,4.752,10508,4.752,10509,4.752,10510,4.752,10511,4.752,10512,4.752,10513,7.187,10514,4.752,10515,4.752,10516,4.752,10517,7.187,10518,4.752,10519,4.752,10520,4.752,10521,4.752,10522,4.752,10523,4.752,10524,4.752,10525,4.752,10526,4.752]],["title/classes/GlobalValidationPipe.html",[0,0.23,10527,5.893]],["body/classes/GlobalValidationPipe.html",[0,0.386,2,0.891,3,0.021,4,0.021,5,0.011,27,0.322,30,0.001,32,0.159,95,0.13,100,4.183,101,0.015,103,0.001,104,0.001,127,1.433,144,2.778,163,2.446,165,0.612,185,3.037,187,1.111,204,2.661,234,1.259,329,2.995,364,1.884,368,3.064,369,2.834,371,2.138,374,3.247,379,1.788,404,1.838,406,2.478,467,2.085,503,6.834,529,3.421,558,3.686,574,4.608,685,5.324,722,3.421,728,3.037,783,4.675,951,5.894,957,4.39,1020,5.131,1384,7.941,1415,6.127,1469,5.131,1492,7.53,1500,5.213,1507,4.524,1921,5.131,1991,4.197,2092,5.753,2187,5.213,2263,5.504,2507,4.981,2744,4.533,3262,4.849,3462,6.623,3469,5.749,4531,8.194,5097,4.913,5121,4.981,6334,7.076,8124,6.252,8679,5.749,9141,6.059,10527,8.88,10528,10.165,10529,7.756,10530,10.475,10531,11.339,10532,7.756,10533,7.941,10534,7.165,10535,7.756,10536,7.756,10537,7.756,10538,7.756,10539,6.776,10540,7.756,10541,6.776,10542,7.756,10543,7.165,10544,7.756,10545,7.756,10546,7.756,10547,7.165,10548,5.894]],["title/classes/GridElement.html",[0,0.23,7321,5.27]],["body/classes/GridElement.html",[0,0.173,2,0.352,3,0.008,4,0.008,5,0.004,7,0.129,8,0.613,26,2.514,27,0.505,29,0.822,30,0.001,31,0.581,32,0.172,33,0.57,34,1.832,35,1.377,39,1.36,47,0.902,55,2.62,83,0.922,95,0.083,101,0.019,103,0,104,0,111,2.352,127,0.387,138,2.204,144,1.775,145,2.464,148,3.586,165,0.4,187,0.439,214,1.67,217,1.704,227,1.362,234,1.621,247,2.996,305,1.869,329,0.903,334,0.338,347,1.838,405,1.368,415,2.769,416,1.968,595,1.747,618,3.56,619,2.9,627,3.485,905,2.697,1041,1.703,1277,4.924,1382,4.661,1474,3.799,1758,4.935,1773,3.259,1828,3.367,1932,4.888,2381,2.394,2586,1.618,2594,4.709,2672,7.245,2685,1.752,2686,1.631,2728,2.329,2789,3.986,2809,4.417,3224,2.272,3331,2.845,3400,2.133,3573,3.306,3667,6.996,3715,3.172,4821,1.892,6258,2.562,6365,2.095,6401,9.607,6402,3.761,6471,3.532,6701,5.162,7228,5.256,7251,2.221,7252,2.677,7254,2.677,7257,2.677,7258,2.562,7259,7.539,7261,2.471,7268,4.433,7274,2.677,7278,2.677,7281,2.677,7282,7.539,7284,8.926,7287,5.738,7289,2.677,7290,6.996,7293,2.677,7295,2.677,7297,2.677,7299,2.677,7301,2.677,7303,2.677,7306,2.677,7308,4.433,7309,2.272,7310,7.309,7311,6.596,7312,5.674,7313,7.309,7314,5.674,7315,4.433,7316,7.309,7317,4.433,7318,5.674,7319,2.677,7320,3.856,7321,9.409,7322,5.674,7323,4.433,7324,2.677,7325,4.433,7326,2.677,7327,4.433,7328,2.677,7329,4.433,7330,4.433,7331,4.433,7332,4.433,7333,4.433,7334,2.677,7335,4.433,7336,2.562,7337,4.433,7338,2.677,7339,2.133,7340,4.433,7341,2.677,7342,2.677,7343,2.677,7344,4.433,7345,2.471,7346,2.677,7347,4.433,7348,2.677,7349,2.329,7350,2.677,7351,2.677,7352,2.677,7353,2.677,7354,2.677,7355,2.677,7356,2.677,7357,2.677,7358,2.677,7359,4.433,7360,4.433,7361,2.562,7362,5.674,7363,2.677,7364,4.433,7365,2.677,7366,2.677,7367,2.677,7368,2.677,7369,2.677,7370,2.677,7371,2.677,7372,2.677,7373,2.677,7374,2.677,7375,2.677,7376,2.677,7377,2.677,7378,2.677,7379,2.677,7380,2.677,7381,2.677,7382,2.677,7383,2.677,7384,2.677,7385,2.677,7386,2.677,7387,2.677,7388,4.433,7389,2.677,7390,2.677,7391,2.677,7392,4.433,7393,4.433,7394,2.677,7395,2.677,7396,2.677,7397,2.677,7398,2.677,7399,2.677,7400,2.677,7401,5.674,7402,2.677,7403,2.677,10549,4.688,10550,5.075,10551,5.075,10552,5.075,10553,5.075,10554,4.688,10555,4.688,10556,4.688,10557,3.065,10558,3.065,10559,3.065,10560,3.065,10561,3.065,10562,3.065,10563,2.831,10564,3.065,10565,3.065,10566,3.065,10567,3.065,10568,3.065,10569,3.065,10570,3.065,10571,3.065,10572,3.065,10573,3.065,10574,3.065,10575,3.065]],["title/classes/Group.html",[0,0.23,1277,3.479]],["body/classes/Group.html",[0,0.304,2,1.025,3,0.024,4,0.024,5,0.013,7,0.137,8,1.343,26,2.321,27,0.462,30,0.001,31,0.501,32,0.156,34,1.532,35,1.078,47,0.81,83,3.346,95,0.162,99,1.515,101,0.021,103,0.001,104,0.001,116,3.6,165,0.878,208,3.313,334,0.983,359,3.095,404,2.19,461,2.058,595,3.829,596,3.377,661,4.685,692,4.144,1277,6.539,1854,6.486,1857,5.578,1860,8.012,1940,5.654,2800,6.102,2818,6.102,3091,4.07,8275,8.964,8306,8.777,10576,8.246,10577,8.45,10578,7.196,10579,7.463,10580,7.463,10581,7.463]],["title/modules/GroupApiModule.html",[425,1.808,10582,5.438]],["body/modules/GroupApiModule.html",[0,0.335,3,0.026,4,0.026,5,0.014,30,0.001,95,0.151,101,0.019,103,0.001,104,0.001,187,1.41,425,3.39,427,3.639,428,3.838,429,3.958,430,3.94,431,3.905,432,3.639,433,3.712,442,4.747,443,3.871,444,3.774,446,6.235,449,4.747,10582,10.975,10583,9.843,10584,9.843,10585,10.975,10586,9.843,10587,9.843]],["title/classes/GroupDomainMapper.html",[0,0.23,10588,5.893]],["body/classes/GroupDomainMapper.html",[0,0.184,2,0.621,3,0.014,4,0.014,5,0.008,7,0.083,8,0.956,27,0.475,29,0.908,30,0.001,31,0.68,32,0.17,33,0.572,34,1.359,35,1.383,39,1.45,48,2.54,95,0.132,96,1.462,97,2.302,99,0.918,101,0.01,103,0,104,0,145,2.956,217,1.632,227,1.207,234,1.779,380,2.155,461,1.824,496,3.335,595,1.863,619,3.092,627,4.189,844,2.453,854,3.994,1114,3.211,1277,5.654,1291,3.368,2395,7.187,2485,2.337,3091,3.609,3285,7.772,4303,2.374,4355,3.474,4356,4.226,4533,7.769,4635,4.01,4998,3.698,8270,4.01,8275,4.361,8306,9.235,8311,9.241,8730,6.915,10577,9.555,10578,8.836,10579,4.523,10580,4.523,10581,4.523,10588,6.915,10589,11.829,10590,5.41,10591,7.915,10592,7.915,10593,9.36,10594,7.915,10595,7.915,10596,7.915,10597,5.41,10598,8.304,10599,7.915,10600,8.304,10601,5.41,10602,7.915,10603,5.41,10604,5.41,10605,5.41,10606,7.915,10607,9.475,10608,5.41,10609,7.915,10610,5.41,10611,4.726,10612,7.312,10613,5.41,10614,7.915,10615,7.312,10616,5.41,10617,5.41,10618,8.177,10619,7.915,10620,7.915,10621,5.41,10622,4.726,10623,5.41,10624,5.41,10625,5.41,10626,7.915,10627,5.41,10628,5.41,10629,5.41,10630,7.915,10631,5.41,10632,5.41,10633,5.41,10634,5.41,10635,5.41,10636,5.41,10637,5.41,10638,5.41,10639,5.41,10640,4.523,10641,5.41,10642,5.41,10643,5.41,10644,5.41,10645,5.41,10646,5.41,10647,5.41]],["title/entities/GroupEntity.html",[380,1.411,10600,5.438]],["body/entities/GroupEntity.html",[0,0.36,3,0.018,4,0.018,5,0.01,7,0.104,26,1.931,27,0.511,30,0.001,31,0.638,32,0.185,33,0.615,34,1.157,47,0.769,95,0.162,96,1.823,101,0.02,103,0.001,104,0.001,165,0.73,240,3.311,334,0.743,364,2.282,369,2.838,370,4.107,380,1.936,381,2.219,398,1.975,399,3.623,402,2.774,404,1.219,405,1.817,406,2.154,618,2.869,619,5.288,783,4.064,844,5.402,1031,3.644,1277,4.773,1925,4.809,2136,2.699,2586,3.559,2621,3.185,3091,5.184,4287,7.497,4293,6.152,4294,4.064,4303,2.958,4926,4.268,4998,7.773,5236,4.215,6409,3.78,6461,4.271,6627,4.532,8282,5.89,8283,5.89,8306,8.239,8311,9.309,10598,7.459,10600,7.459,10607,9.309,10611,9.933,10612,9.309,10618,9.933,10622,5.89,10648,6.228,10649,6.742,10650,6.742,10651,6.742,10652,6.742,10653,6.742,10654,6.742,10655,6.228,10656,6.228,10657,4.693,10658,6.228,10659,6.228,10660,6.228,10661,6.228,10662,6.228,10663,6.228]],["title/interfaces/GroupEntityProps.html",[334,0.743,10598,5.438]],["body/interfaces/GroupEntityProps.html",[0,0.365,3,0.018,4,0.018,5,0.01,7,0.107,26,2.402,30,0.001,31,0.675,32,0.189,33,0.646,34,1.975,47,0.838,95,0.163,96,1.876,101,0.02,103,0.001,104,0.001,165,0.745,240,2.957,334,0.765,336,1.691,369,2.544,370,3.578,380,1.974,398,2.033,399,3.696,402,2.855,404,1.255,405,1.871,406,2.217,618,2.953,619,5.394,783,4.183,844,5.629,1031,3.437,1277,4.868,1925,3.607,2136,2.778,2586,3.664,2621,3.278,3091,5.488,4293,6.227,4294,4.183,4303,3.045,4926,4.353,4998,8.229,5236,4.338,6409,3.891,6461,4.396,8282,6.063,8283,6.063,8306,8.722,8311,9.7,10598,8.645,10600,5.595,10607,9.7,10611,10.515,10612,9.7,10618,10.515,10622,6.063,10648,6.411,10655,6.411,10656,6.411,10657,4.831,10658,6.411,10659,6.411,10660,6.411,10661,6.411,10662,6.411,10663,6.411]],["title/modules/GroupModule.html",[425,1.808,10585,5.438]],["body/modules/GroupModule.html",[0,0.317,3,0.025,4,0.025,5,0.013,30,0.001,95,0.158,101,0.018,103,0.001,104,0.001,187,1.335,425,3.31,427,3.445,428,3.634,429,3.747,430,3.73,431,3.697,432,4.565,433,4.657,442,4.592,443,3.665,444,3.573,766,4.005,2570,5.042,10585,11.164,10664,9.319,10665,9.319,10666,9.319,10667,11.757,10668,11.237,10669,9.319]],["title/interfaces/GroupNameIdTuple.html",[334,0.743,10670,5.64]],["body/interfaces/GroupNameIdTuple.html",[3,0.026,4,0.026,5,0.014,7,0.15,30,0.001,31,0.548,32,0.165,39,2.62,47,1.026,101,0.022,103,0.001,104,0.001,165,0.928,334,1.295,336,2.381,348,6.568,350,8.17,361,5.38,853,4.966,4227,3.364,5602,6.554,6461,6.19,10670,10.54,10671,9.027,10672,11.427,10673,8.536]],["title/interfaces/GroupProps.html",[334,0.743,10578,5.438]],["body/interfaces/GroupProps.html",[0,0.28,3,0.022,4,0.022,5,0.012,7,0.126,26,2.567,30,0.001,31,0.69,32,0.194,33,0.67,34,2.111,47,0.948,83,3.918,95,0.158,99,1.394,101,0.02,103,0.001,104,0.001,165,0.833,208,3.049,334,0.905,336,2.002,359,2.849,404,2.107,461,1.894,1277,6.012,1854,6.798,1857,4.512,1940,5.204,3091,5.608,8275,9.916,8306,9.718,10576,7.589,10577,9.347,10578,8.506,10579,10.284,10580,10.284,10581,10.284]],["title/injectables/GroupRepo.html",[105,0.89,10668,5.64]],["body/injectables/GroupRepo.html",[0,0.205,3,0.016,4,0.016,5,0.009,7,0.093,8,1.034,10,3.459,12,3.95,18,4.232,26,2.551,27,0.475,29,0.908,30,0.001,31,0.642,32,0.16,33,0.572,34,1.86,35,1.309,36,2.715,40,4.122,47,0.725,48,5.087,95,0.152,96,1.631,97,2.568,101,0.012,103,0.001,104,0.001,105,1.129,107,1.444,112,2.952,127,0.763,167,4.538,187,0.864,215,1.953,216,1.116,217,1.736,221,2.802,227,1.288,234,1.758,369,1.334,371,1.663,380,2.557,595,2.949,854,4.321,1114,2.448,1277,6.723,1857,5.083,2395,6.192,2441,6.69,2448,9.196,2459,5.045,2476,7.481,2485,2.607,2586,3.186,3280,4.2,3285,5.222,3304,7.481,3348,4.865,8306,4.372,8751,5.272,8758,7.481,10578,8.734,10588,5.272,10598,6.904,10600,9.854,10668,7.16,10674,6.034,10675,7.911,10676,6.034,10677,6.034,10678,7.911,10679,6.034,10680,6.034,10681,6.034,10682,6.034,10683,10.835,10684,8.564,10685,8.564,10686,6.034,10687,6.034,10688,8.564,10689,9.955,10690,6.034,10691,6.034,10692,6.034,10693,6.034,10694,6.034,10695,6.034]],["title/classes/GroupRoleUnknownLoggable.html",[0,0.23,10696,5.893]],["body/classes/GroupRoleUnknownLoggable.html",[0,0.302,2,1.021,3,0.024,4,0.024,5,0.013,7,0.137,8,1.339,27,0.46,29,0.705,30,0.001,31,0.498,32,0.125,33,0.444,35,1.073,95,0.142,101,0.017,103,0.001,104,0.001,127,1.123,163,2.803,214,3.65,215,2.877,216,1.644,227,0.937,461,2.048,496,5.093,1062,3.879,1277,4.584,1327,3.51,1542,5.642,1543,6.282,1545,2.839,1547,6.298,1724,4.982,3060,6.306,6896,5.707,8137,6.282,8138,6.541,8291,5.973,10696,9.688,10697,12.088,10698,8.887,10699,8.887,10700,10.204,10701,8.887,10702,10.244,10703,8.887,10704,8.887,10705,6.439,10706,8.887,10707,8.887,10708,8.887]],["title/injectables/GroupService.html",[105,0.89,10667,5.64]],["body/injectables/GroupService.html",[0,0.228,3,0.018,4,0.018,5,0.009,7,0.103,8,1.112,10,3.72,12,4.248,18,4.552,26,2.747,27,0.51,29,0.974,30,0.001,31,0.689,32,0.172,33,0.614,34,1.946,35,1.436,36,2.861,40,4.433,47,0.767,48,5.324,95,0.157,99,1.137,101,0.013,103,0.001,104,0.001,105,1.215,107,1.603,112,3.062,127,0.846,167,4.02,187,0.959,214,2.204,215,2.168,216,1.239,217,1.495,221,2.803,227,1.195,234,1.087,305,1.927,854,3.379,1277,7.174,1819,4.301,1943,7.701,2485,2.893,2570,3.624,2767,3.019,10667,7.701,10668,10.271,10675,8.509,10678,8.509,10709,6.697,10710,9.211,10711,6.697,10712,6.697,10713,9.211,10714,6.697,10715,6.697,10716,6.697,10717,9.211,10718,6.697,10719,9.211,10720,6.697,10721,5.6,10722,6.187,10723,9.211,10724,6.697,10725,6.697,10726,9.211,10727,6.697,10728,6.697]],["title/classes/GroupUser.html",[0,0.23,10577,5.126]],["body/classes/GroupUser.html",[0,0.323,2,1.09,3,0.025,4,0.025,5,0.013,7,0.146,26,2.771,27,0.517,29,0.753,30,0.001,31,0.532,32,0.175,33,0.474,39,3.338,95,0.122,99,1.611,101,0.018,103,0.001,104,0.001,127,1.2,165,0.912,405,3.114,415,5.182,416,6.098,595,3.269,4635,9.228,10577,10.088,10729,12.954,10730,9.495,10731,11.551,10732,9.495,10733,8.295,10734,8.295]],["title/classes/GroupUserEntity.html",[0,0.23,10607,5.27]],["body/classes/GroupUserEntity.html",[0,0.302,2,1.018,3,0.024,4,0.024,5,0.013,7,0.136,27,0.501,29,0.703,30,0.001,31,0.497,32,0.169,33,0.443,95,0.142,96,2.397,101,0.021,103,0.001,104,0.001,127,1.12,165,0.874,334,0.977,364,2.053,398,2.597,405,2.985,461,3.165,496,5.786,595,3.053,1911,5.474,2222,6.738,2618,5.67,4926,5.57,6627,7.444,7430,6.293,10607,8.651,10735,10.575,10736,7.414,10737,11.049,10738,11.074,10739,8.867,10740,6.572,10741,6.927]],["title/interfaces/GroupUserEntityProps.html",[334,0.743,10737,5.893]],["body/interfaces/GroupUserEntityProps.html",[0,0.316,3,0.025,4,0.025,5,0.013,7,0.143,30,0.001,32,0.16,95,0.146,96,2.513,101,0.022,103,0.001,104,0.001,165,0.9,334,1.024,336,2.266,398,2.723,405,2.506,461,3.227,496,5.898,1911,5.739,2222,7.065,2618,5.838,4926,5.689,7430,6.598,10607,7.263,10735,7.773,10736,7.773,10737,10.776,10740,6.891,10741,7.263]],["title/interfaces/GroupUsers.html",[334,0.743,10742,5]],["body/interfaces/GroupUsers.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.127,34,1.56,47,0.996,55,2.686,101,0.026,103,0.001,104,0.001,163,2.866,165,0.887,334,1.492,336,2.214,347,1.852,564,3.373,692,3.386,1289,5.836,1293,6.108,1327,3.59,3091,5.817,4477,6.108,6461,5.756,10742,8.334,10743,6.905,10744,6.735,10745,6.735,10746,6.905,10747,9.05,10748,6.905,10749,6.905,10750,6.735,10751,6.905,10752,6.449,10753,6.735,10754,6.905,10755,6.735]],["title/classes/GroupValidPeriodEntity.html",[0,0.23,10612,5.27]],["body/classes/GroupValidPeriodEntity.html",[0,0.309,2,1.041,3,0.024,4,0.024,5,0.013,7,0.139,27,0.506,29,0.719,30,0.001,31,0.508,32,0.171,33,0.453,83,4.018,95,0.116,96,2.451,101,0.021,103,0.001,104,0.001,127,1.146,165,0.886,240,4.106,334,0.999,364,2.082,398,2.656,405,3.027,595,3.122,783,7.684,2618,5.749,8270,9.449,8284,7.921,8285,7.921,8286,7.921,8287,7.921,10612,8.772,10735,10.659,10756,8.376,10757,11.137,10758,11.229,10759,9.067]],["title/interfaces/GroupValidPeriodEntityProps.html",[334,0.743,10757,5.893]],["body/interfaces/GroupValidPeriodEntityProps.html",[0,0.327,3,0.025,4,0.025,5,0.014,7,0.148,30,0.001,32,0.163,83,4.159,95,0.123,96,2.597,101,0.022,103,0.001,104,0.001,165,0.918,240,3.922,334,1.059,336,2.341,398,2.814,405,2.59,783,5.791,2618,5.956,8270,9.873,8284,8.394,8285,8.394,8286,8.394,8287,8.394,10612,7.506,10735,8.033,10756,8.876,10757,10.932]],["title/interfaces/GroupfoldersCreated.html",[334,0.743,10755,5]],["body/interfaces/GroupfoldersCreated.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.127,34,2.19,47,0.973,55,2.885,101,0.026,103,0.001,104,0.001,163,2.866,165,0.887,334,1.492,336,2.214,347,1.852,564,3.373,692,3.386,1289,5.836,1293,6.108,1327,3.59,3091,4.143,4477,6.108,6461,5.756,10742,6.735,10743,6.905,10744,6.735,10745,6.735,10746,6.905,10747,9.05,10748,6.905,10749,6.905,10750,6.735,10751,6.905,10752,6.449,10753,6.735,10754,6.905,10755,8.334]],["title/interfaces/GroupfoldersFolder.html",[334,0.743,10753,5]],["body/interfaces/GroupfoldersFolder.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.127,34,1.56,47,0.973,55,2.885,101,0.026,103,0.001,104,0.001,163,2.866,165,0.887,334,1.492,336,2.214,347,1.852,564,3.373,692,3.386,1289,5.836,1293,6.108,1327,3.59,3091,4.143,4477,6.108,6461,5.756,10742,6.735,10743,6.905,10744,6.735,10745,6.735,10746,6.905,10747,9.05,10748,6.905,10749,6.905,10750,6.735,10751,6.905,10752,6.449,10753,8.334,10754,9.695,10755,6.735]],["title/classes/GuardAgainst.html",[0,0.23,10760,5.893]],["body/classes/GuardAgainst.html",[0,0.285,2,0.963,3,0.022,4,0.022,5,0.012,7,0.129,8,1.291,27,0.348,29,0.848,30,0.001,31,0.47,32,0.15,33,0.419,35,1.291,101,0.016,103,0.001,104,0.001,144,3.717,145,3.379,167,4.998,227,0.884,264,4.527,305,2.413,379,1.933,627,3.665,692,4.878,1062,3.661,1240,6.172,1819,7.96,2340,9.992,4639,8.939,7907,7.442,10760,9.34,10761,10.692,10762,8.387,10763,10.692,10764,10.692,10765,12.803,10766,8.387,10767,9.877,10768,8.124,10769,8.619,10770,9.34,10771,10.692]],["title/controllers/H5PEditorController.html",[481,2.63,10772,5.893]],["body/controllers/H5PEditorController.html",[0,0.222,3,0.017,4,0.017,5,0.009,7,0.1,8,1.094,27,0.376,30,0.001,32,0.192,35,1.094,47,0.476,72,3.068,95,0.144,101,0.012,103,0.001,104,0.001,112,2.735,187,0.936,217,0.862,227,1.285,364,1.679,376,1.533,447,2.74,481,2.548,483,3.145,502,7.966,506,7.31,538,2.93,553,6.496,554,8.195,555,3.449,556,3.535,557,3.566,558,3.106,561,3.566,563,5.59,564,4.729,627,2.82,1016,4.007,1062,3.953,1236,3.938,1439,4.97,1469,6.874,1474,3.528,2037,5.999,2186,4.139,2507,7.829,2685,5.939,2926,6.881,2930,6.881,2931,6.881,3101,9.828,3542,4.671,5011,8.362,6325,7.074,8210,8.765,9985,4.965,10772,7.911,10773,9.078,10774,10.392,10775,6.534,10776,9.078,10777,11.22,10778,11.22,10779,12.938,10780,9.055,10781,9.055,10782,6.534,10783,6.534,10784,6.534,10785,6.534,10786,6.534,10787,6.036,10788,6.534,10789,7.375,10790,6.534,10791,6.534,10792,6.534,10793,9.055,10794,6.534,10795,6.534,10796,6.036,10797,6.534,10798,6.534,10799,6.534,10800,6.534,10801,6.534,10802,6.534,10803,6.534,10804,6.534,10805,9.055,10806,6.534]],["title/modules/H5PEditorModule.html",[425,1.808,10807,5.64]],["body/modules/H5PEditorModule.html",[0,0.236,3,0.018,4,0.018,5,0.01,30,0.001,32,0.097,47,0.505,87,3.43,94,4.486,95,0.173,96,2.551,99,1.178,101,0.013,103,0.001,104,0.001,154,3.164,187,0.994,217,1.518,234,1.126,369,1.534,381,2.284,398,2.033,425,2.875,427,2.566,428,2.706,429,2.79,430,2.778,431,2.753,432,4.255,433,2.617,442,3.795,443,2.729,444,2.661,447,4.497,449,4.312,461,2.472,496,3.977,511,3.553,574,3.146,701,3.297,722,3.061,731,2.718,778,6.344,801,4.048,844,4.279,885,4.696,953,4.522,1052,5.061,1114,3.829,1298,3.258,1299,3.22,1300,3.22,1301,3.407,1378,4.591,1379,4.183,1545,2.217,1585,8.214,1724,3.891,1919,2.882,1945,6.718,2686,3.693,2767,3.129,4808,4.744,5400,4.591,5453,4.665,6317,8.214,9475,5.9,9611,4.925,10092,4.831,10248,6.995,10249,6.995,10250,5.029,10251,7.171,10252,4.925,10253,5.144,10258,6.838,10259,6.838,10260,6.838,10261,5.144,10262,4.925,10265,5.802,10272,7.171,10273,5.144,10274,5.144,10275,5.029,10276,5.595,10277,5.029,10278,5.273,10279,6.063,10424,6.411,10772,9.369,10773,6.063,10776,6.063,10807,11.271,10808,6.94,10809,6.94,10810,6.94,10811,6.411,10812,6.94,10813,6.94,10814,6.94,10815,6.94]],["title/modules/H5PEditorTestModule.html",[425,1.808,10816,5.893]],["body/modules/H5PEditorTestModule.html",[0,0.235,3,0.018,4,0.018,5,0.01,8,0.834,27,0.287,29,0.548,30,0.001,31,0.387,32,0.097,33,0.345,35,0.834,59,2.143,94,4.47,95,0.171,99,1.172,101,0.013,103,0.001,104,0.001,187,0.989,217,1.411,227,0.728,381,2.272,425,3.079,427,2.552,428,2.692,429,2.776,430,2.764,431,2.739,432,4.245,433,2.604,438,5.856,442,3.781,443,2.715,444,2.647,447,4.485,449,4.831,461,2.168,496,3.963,627,2.928,701,3.285,844,4.264,1408,5.003,1409,6.321,1412,7.075,1545,2.206,1581,9.685,1585,8.201,1945,6.708,2767,3.113,3101,7.581,6317,8.201,8206,4.806,9475,5.879,10092,4.806,10099,5.394,10246,8.63,10317,8.364,10318,6.031,10319,8.512,10321,5.003,10322,5.566,10323,5.003,10324,5.566,10325,5.772,10326,6.971,10773,8.216,10776,6.031,10807,10.366,10811,8.688,10816,12.22,10817,6.904,10818,6.904,10819,6.904,10820,6.904,10821,6.904]],["title/interfaces/HtmlMailContent.html",[334,0.743,1575,5]],["body/interfaces/HtmlMailContent.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,31,0.487,32,0.153,33,0.546,47,1.033,77,5.496,101,0.017,103,0.001,104,0.001,165,0.862,334,1.477,336,2.114,404,2.338,1560,8.097,1561,6.592,1562,8.862,1563,8.301,1564,6.592,1565,4.82,1566,8.097,1567,6.286,1568,6.592,1569,6.286,1570,9.302,1571,6.592,1572,8.097,1573,9.829,1574,9.829,1575,8.862,1576,6.584,1577,6.43,1578,6.43,1579,6.592,1580,6.592]],["title/injectables/HydraAdapter.html",[105,0.89,10822,5.893]],["body/injectables/HydraAdapter.html",[0,0.109,3,0.009,4,0.009,5,0.005,7,0.049,8,0.637,10,1.297,27,0.523,29,1.006,30,0.001,31,0.695,32,0.18,33,0.62,34,1.152,35,1.498,36,2.986,47,1.023,55,2.029,56,3.23,58,4.921,59,2.664,95,0.139,100,1.075,101,0.006,103,0,104,0,105,0.696,107,0.769,111,1.343,112,2.546,127,0.406,144,0.878,150,3.979,163,3.421,165,0.416,187,0.46,215,1.04,216,1.437,217,1.569,221,0.757,227,1.307,234,0.521,235,5.516,254,2.685,256,2.685,277,2.686,329,0.946,335,7.856,337,6.306,351,1.587,354,7.613,363,3.387,367,3.23,404,0.954,406,1.026,461,1.216,543,6.263,596,3.657,661,4.441,692,2.501,1016,4.554,1062,1.402,1265,6.306,1266,1.836,1268,2.063,1381,1.873,1382,1.983,1865,3.515,2063,3.671,2074,2.196,2171,1.38,2172,1.536,2173,1.481,2333,4.974,2334,2.589,2344,1.327,2348,2.967,2367,2.685,2955,2.985,3544,2.787,3898,1.753,3962,2.806,4038,5.297,4216,8.632,5382,1.836,5468,5.904,9081,8.8,9106,7.061,9515,2.685,9574,5.514,10822,4.608,10823,3.212,10824,6.2,10825,4.608,10826,4.608,10827,4.608,10828,4.41,10829,4.41,10830,4.41,10831,4.41,10832,4.41,10833,4.872,10834,7.177,10835,4.41,10836,5.611,10837,4.608,10838,4.608,10839,4.41,10840,4.41,10841,5.274,10842,4.608,10843,3.212,10844,4.872,10845,3.212,10846,4.872,10847,3.212,10848,4.872,10849,3.212,10850,4.872,10851,3.212,10852,5.274,10853,3.212,10854,5.611,10855,4.608,10856,3.212,10857,4.608,10858,3.212,10859,4.872,10860,3.212,10861,4.872,10862,3.212,10863,3.212,10864,4.872,10865,3.212,10866,2.967,10867,3.212,10868,3.212,10869,8.475,10870,3.212,10871,4.608,10872,3.212,10873,4.608,10874,3.212,10875,3.212,10876,7.77,10877,7.77,10878,3.212,10879,4.872,10880,3.212,10881,4.872,10882,3.212,10883,2.589,10884,2.685,10885,2.38,10886,2.44,10887,2.327,10888,2.44,10889,3.212,10890,2.967,10891,2.967,10892,3.212,10893,3.212,10894,5.274,10895,5.274,10896,3.212,10897,3.212,10898,3.212,10899,3.212,10900,9.745,10901,3.212,10902,3.212,10903,2.806,10904,2.806,10905,2.685,10906,2.806,10907,6.711,10908,3.212,10909,3.212,10910,4.608,10911,3.212,10912,3.212,10913,2.967,10914,6.711,10915,3.212,10916,3.212,10917,3.212,10918,3.212,10919,2.967,10920,3.212,10921,3.212,10922,3.212]],["title/injectables/HydraOauthUc.html",[105,0.89,10923,5.64]],["body/injectables/HydraOauthUc.html",[0,0.173,3,0.013,4,0.013,5,0.007,7,0.078,8,0.914,27,0.481,29,0.793,30,0.001,31,0.561,32,0.157,33,0.5,35,1.091,36,2.435,39,1.364,47,0.998,55,1.987,56,2.449,59,2.348,95,0.161,99,0.864,100,2.533,101,0.01,103,0,104,0,105,0.998,107,1.218,111,2.547,112,2.732,127,0.956,144,2.469,165,0.597,187,0.729,204,3.843,216,2.204,217,1.53,221,2.809,227,0.952,234,1.466,247,3.002,305,2.177,329,2.661,334,0.561,347,1.037,359,1.764,369,1.125,498,3.478,529,2.244,564,3.352,661,3.805,731,1.992,907,5.266,982,2.549,1016,2.702,1052,3.681,1053,4.435,1253,5.166,1298,2.389,1299,2.361,1300,2.361,1381,2.968,1439,2.434,1545,1.626,1683,6.837,1887,4.67,1995,7.055,2063,7.439,2074,3.478,2171,2.187,2172,2.434,2173,2.347,3898,2.777,3967,6.099,6034,4.445,6035,4.445,6987,7.096,8615,4.7,9515,4.254,10923,6.325,10924,11.917,10925,5.088,10926,9.031,10927,9.031,10928,10,10929,7.565,10930,9.031,10931,7.565,10932,4.445,10933,8.511,10934,9.698,10935,5.088,10936,7.565,10937,5.088,10938,5.088,10939,5.088,10940,10,10941,7.565,10942,5.088,10943,6.989,10944,5.088,10945,5.088,10946,5.088,10947,5.8,10948,6.325,10949,4.7,10950,5.369,10951,4.445,10952,3.866,10953,5.482,10954,4.7,10955,4.445,10956,5.088,10957,4.445,10958,9.238,10959,7.565,10960,6.989,10961,5.088,10962,5.088,10963,5.088,10964,7.565,10965,7.551,10966,5.088,10967,5.088,10968,5.088,10969,5.088,10970,5.088,10971,7.565,10972,4.7,10973,4.445,10974,4.254,10975,5.088,10976,5.088,10977,4.254,10978,5.088,10979,5.088,10980,5.088,10981,7.565,10982,5.088,10983,5.088]],["title/classes/HydraRedirectDto.html",[0,0.23,10948,5.64]],["body/classes/HydraRedirectDto.html",[0,0.297,2,1.001,3,0.023,4,0.023,5,0.012,7,0.134,27,0.549,29,0.691,30,0.001,31,0.489,32,0.185,33,0.435,47,0.798,55,2.41,95,0.14,101,0.017,103,0.001,104,0.001,127,1.101,165,0.864,405,2.953,595,3,1016,4.278,1316,7.024,2063,8.339,2074,5.957,3967,9.658,6032,10.017,10948,10.828,10965,10.017,10972,11.067,10973,10.466,10974,10.017,10984,8.714,10985,8.714,10986,8.714,10987,8.714,10988,8.714,10989,8.714,10990,8.714,10991,8.049,10992,8.714,10993,8.714,10994,8.714,10995,8.714,10996,8.714,10997,8.714,10998,8.714,10999,8.714,11000,8.714]],["title/injectables/HydraSsoService.html",[105,0.89,10934,5.64]],["body/injectables/HydraSsoService.html",[0,0.153,3,0.012,4,0.012,5,0.006,7,0.069,8,0.832,27,0.461,29,0.847,30,0.001,31,0.599,32,0.156,33,0.534,35,1.223,36,2.609,47,0.968,95,0.165,99,0.762,100,1.504,101,0.009,103,0,104,0,105,0.908,107,1.075,111,2.401,112,2.638,127,0.87,144,1.228,145,1.159,148,1.39,150,1.648,165,0.543,187,0.643,209,2.371,216,2.056,217,1.688,221,1.623,227,1.067,234,1.523,277,2.756,305,1.292,329,1.323,331,5.868,450,1.848,460,2.567,511,2.3,529,1.981,576,2.648,661,3.528,774,3.071,839,2.109,905,1.865,1052,3.413,1053,4.163,1253,2.072,1265,7.601,1266,2.567,1268,2.885,1439,2.148,1545,1.435,1596,3.188,1599,3.924,1664,3.924,1691,2.773,1720,3.413,1773,2.885,1995,3.509,2063,3.127,2074,3.071,2171,1.931,2172,2.148,2173,2.072,2183,3.329,2333,5.104,2334,3.621,2362,4.149,2367,3.755,3898,2.451,3967,8.963,4458,3.329,4552,6.802,4556,2.3,4641,3.019,4809,6.363,5472,2.22,6032,9.833,6034,6.015,6035,6.015,6489,6.31,6981,5.104,6987,3.188,7038,4.793,7134,2.707,8108,3.329,8597,3.019,8636,3.127,9083,6.802,9113,3.621,10474,6.541,10824,6.361,10883,3.621,10913,4.149,10934,5.757,10943,4.149,10947,6.859,10948,8.464,10949,4.149,10958,6.361,10965,9.591,10973,3.924,10974,8.93,10991,4.149,11001,4.492,11002,6.886,11003,6.886,11004,6.886,11005,6.886,11006,4.492,11007,7.315,11008,4.492,11009,6.886,11010,6.886,11011,4.492,11012,6.886,11013,4.492,11014,6.886,11015,4.492,11016,6.886,11017,4.492,11018,4.492,11019,6.886,11020,4.492,11021,4.492,11022,3.413,11023,4.492,11024,5.757,11025,4.492,11026,3.329,11027,3.329,11028,3.329,11029,3.413,11030,4.492,11031,4.492,11032,4.492,11033,4.492,11034,6.886,11035,4.492,11036,4.492,11037,4.492,11038,4.492,11039,6.886,11040,4.492,11041,4.492,11042,3.755,11043,4.149,11044,4.492,11045,4.492,11046,7.849,11047,4.492,11048,4.492,11049,4.492,11050,6.886,11051,4.492,11052,4.492,11053,4.492,11054,6.886,11055,4.492,11056,4.492,11057,4.492,11058,4.492,11059,4.492,11060,4.492,11061,4.492,11062,4.492,11063,4.492,11064,4.492,11065,4.492,11066,4.492,11067,4.492,11068,6.886,11069,4.492,11070,4.492,11071,4.492,11072,3.071,11073,4.492,11074,4.492,11075,2.971,11076,3.755,11077,3.071,11078,4.492,11079,4.492,11080,3.071,11081,4.492,11082,4.492,11083,2.739,11084,4.492,11085,4.492,11086,3.509,11087,3.019,11088,4.492,11089,4.492,11090,4.492]],["title/interfaces/IAccountConfig.html",[334,0.743,11091,5.893]],["body/interfaces/IAccountConfig.html",[3,0.027,4,0.027,5,0.014,7,0.157,30,0.001,32,0.169,55,2.826,101,0.019,103,0.001,104,0.001,165,0.953,334,1.126,336,2.49,347,2.619,445,9.44,1842,11.596,11091,10.545,11092,7.113,11093,12.263]],["title/interfaces/IBbbSettings.html",[334,0.743,2290,5.438]],["body/interfaces/IBbbSettings.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.177,47,1.017,101,0.023,103,0.001,104,0.001,165,0.932,217,1.298,334,1.084,336,2.399,2090,5.003,2287,10.57,2288,11.454,2290,9.517,2293,8.599,10474,10.243,11094,9.843,11095,8.599,11096,9.843]],["title/interfaces/ICalendarEvent.html",[334,0.743,3938,5.64]],["body/interfaces/ICalendarEvent.html",[3,0.027,4,0.027,5,0.014,7,0.156,30,0.001,32,0.18,47,0.875,101,0.019,103,0.001,104,0.001,138,5.218,163,4.176,165,0.948,334,1.117,336,2.471,563,6.26,1382,6.26,3928,6.933,3938,10.047,3945,8.175,3948,7.706,11097,10.141,11098,10.141]],["title/interfaces/IClassEntityProps.html",[334,0.743,4296,5.64]],["body/interfaces/IClassEntityProps.html",[0,0.275,2,0.64,3,0.015,4,0.032,5,0.008,7,0.183,26,2.18,30,0.001,31,0.622,32,0.182,33,0.675,34,1.793,47,0.974,49,5.331,55,2.299,62,6.471,95,0.142,96,2.187,97,2.372,99,0.946,101,0.015,103,0,104,0,111,1.115,144,1.524,145,3.268,165,0.751,234,0.905,240,4.019,305,1.604,334,0.614,336,1.358,359,1.933,369,2.756,370,4.08,380,1.692,398,1.633,399,3.168,402,2.293,404,1.008,405,1.503,406,1.781,618,2.372,619,4.624,905,2.315,2136,2.231,4227,3.82,4228,8.039,4229,8.43,4230,8.577,4231,8.43,4232,7.234,4233,8.43,4234,8.43,4277,4.355,4278,5.15,4286,9.04,4293,4.377,4294,3.36,4295,5.15,4296,8.735,4297,4.661,4298,9.652,4299,7.068,4300,5.15,4301,5.15,4302,4.661,4303,2.446,4304,3.286,4305,4.132,4306,7.474,4307,4.355,4308,5.15,4309,5.15,4310,7.474,4311,5.15,4312,7.474,4313,5.15,4314,5.15,4315,6.32,4316,4.132,4317,7.474,4318,5.15,4319,6.147,4320,4.039,4321,7.474,4322,5.15]],["title/interfaces/ICollaborativeStorageStrategy.html",[334,0.743,4493,5.438]],["body/interfaces/ICollaborativeStorageStrategy.html",[3,0.021,4,0.021,5,0.011,7,0.123,8,1.251,27,0.505,29,0.965,30,0.001,31,0.682,32,0.171,33,0.608,35,1.47,36,2.898,47,0.837,95,0.133,100,4.074,101,0.015,103,0.001,104,0.001,264,3.382,334,1.267,336,1.946,379,2.388,494,7.335,496,4.846,520,6.964,1916,5.019,2092,5.864,3928,5.46,4477,8.476,4487,8.353,4488,8.353,4490,8.353,4491,8.353,4493,8.353,4496,8.353,4497,9.335,4499,7.422,4500,8.353,4504,8.353,4510,5.92,4512,6.24,4513,6.678,4532,9.811,4534,6.439,11099,7.987,11100,10.361,11101,9.051,11102,7.987,11103,7.987,11104,7.987,11105,9.572,11106,7.987,11107,10.361]],["title/interfaces/ICollectionFilePath.html",[334,0.743,11108,6.231]],["body/interfaces/ICollectionFilePath.html",[0,0.09,3,0.007,4,0.024,5,0.012,7,0.04,10,1.063,27,0.109,30,0.001,31,0.431,32,0.063,33,0.291,35,1.008,36,1.934,47,0.907,55,0.983,83,1.344,95,0.142,96,0.711,97,1.12,99,0.447,101,0.015,103,0,104,0,105,0.589,111,2.475,112,2.188,127,0.333,144,0.719,145,0.679,163,2.805,165,0.352,187,0.377,204,0.903,216,1.268,217,1.724,221,2.97,227,1.304,234,0.944,247,1.772,264,3.251,284,2.692,305,0.757,331,1.645,334,0.29,336,0.641,347,0.91,369,0.987,381,0.866,433,0.993,449,1.058,494,1.586,504,1.907,520,1.769,535,1.424,538,2.002,565,2.358,576,2.633,577,2.504,674,1.436,731,1.031,734,4.432,767,2.431,774,1.799,778,1.769,789,3.737,801,1.535,839,1.236,846,1.868,851,2.192,852,2.192,853,2.27,883,2.44,905,2.847,964,1.799,1052,1.073,1053,1.981,1062,2.54,1114,3.798,1121,3.109,1240,1.519,1298,1.236,1299,1.221,1300,1.221,1301,1.292,1302,1.412,1303,1.799,1304,1.741,1539,2.299,1545,0.841,1680,1.799,1696,1.504,1708,6.782,1910,5.409,1932,1.347,2092,1.49,2171,1.131,2172,1.259,2173,1.214,2174,1.667,2180,1.667,2282,1.769,2344,1.088,2395,2.553,2439,1.907,2444,2.056,2475,4.865,2478,1.504,2500,2.757,2526,5.285,2835,4.972,2880,4.666,2951,1.568,3018,2.299,3285,1.605,3462,2.91,3471,2.431,3508,3.489,3542,4.304,3843,4.865,3845,2.431,3846,2.431,3850,7.545,3852,1.799,3854,4.126,3861,7.771,4227,0.906,4483,3.902,4586,1.832,4960,5.285,5412,2,6127,1.741,6209,2.2,6260,2.954,6329,3.109,6774,1.868,6793,1.832,6911,2.91,6984,2.122,7155,2,7339,1.832,7648,2.122,7649,2.056,7652,5.949,7653,8.669,7654,5.732,7657,5.448,7660,3.31,7668,3.507,7679,4.687,7680,5.083,7694,10.258,7718,4.69,7724,6.333,7806,4.312,7854,2.431,7855,2.431,8108,3.31,8109,3.902,8636,1.832,9083,4.216,9113,2.122,9181,2.2,9401,1.645,9955,4.865,9972,4.126,9975,3.232,9985,4.421,9989,2.431,9994,7.545,9998,2.431,10057,3.601,10321,1.907,10350,1.868,11043,2.431,11108,7.708,11109,2.632,11110,2.431,11111,2.431,11112,2.431,11113,2.632,11114,7.678,11115,5.818,11116,3.902,11117,8.344,11118,5.818,11119,6.856,11120,2.632,11121,2.632,11122,2.431,11123,2.632,11124,2.632,11125,2.632,11126,2.299,11127,2.632,11128,4.466,11129,2.632,11130,8.344,11131,4.466,11132,4.466,11133,2.632,11134,2.632,11135,2.632,11136,2.431,11137,2.632,11138,2.632,11139,6.856,11140,2.632,11141,2.632,11142,2.632,11143,2.632,11144,2.632,11145,2.632,11146,2.632,11147,2.632,11148,2.632,11149,2.632,11150,5.818,11151,2.632,11152,6.856,11153,4.69,11154,2.632,11155,2.632,11156,1.625,11157,2.632,11158,4.466,11159,4.466,11160,2.632,11161,2.632,11162,2.632,11163,4.466,11164,2.632,11165,2.632,11166,2.632,11167,4.466,11168,3.902,11169,4.466,11170,4.466,11171,2.632,11172,2.632,11173,2.632,11174,2.632,11175,2.632,11176,2.632,11177,2.632,11178,2.632,11179,2.632,11180,2.632,11181,2.632,11182,6.856,11183,2.632,11184,3.734,11185,4.865,11186,2.632,11187,4.126,11188,4.466,11189,2.632,11190,4.466,11191,2.632,11192,4.466,11193,2.632,11194,2.632,11195,2.632,11196,5.818,11197,2.632,11198,2.632,11199,2.056,11200,2.431,11201,2.632,11202,2.632,11203,2.632,11204,3.236,11205,2.2,11206,2.632,11207,2.632,11208,2.632,11209,2.632,11210,2.632,11211,4.466,11212,2.632,11213,2.632,11214,2.632,11215,2.632,11216,1.69,11217,2.632,11218,2.632,11219,2.632,11220,2.632,11221,3.601,11222,2.632,11223,2.632,11224,2.632,11225,2.632,11226,1.951,11227,2.632,11228,2.632,11229,2.632,11230,2.632,11231,2.632,11232,4.466,11233,2.632,11234,2.632,11235,5.818,11236,2.632,11237,2.632,11238,2.632,11239,2.632,11240,2.299,11241,2.632,11242,2.632,11243,3.601,11244,3.601,11245,3.601,11246,2.632,11247,5.375,11248,2.632,11249,2.431,11250,2.299,11251,2.632,11252,2.632,11253,2.632,11254,3.902,11255,2.632,11256,2.632,11257,2.632,11258,2.431,11259,2.632,11260,2.632,11261,2.632,11262,2.632,11263,5.818,11264,2.632,11265,2.632,11266,2.632,11267,2.632,11268,2.632,11269,4.466,11270,3.31,11271,4.466,11272,2.632,11273,4.126,11274,4.466,11275,2.632,11276,4.466,11277,5.818,11278,2.632,11279,2.2,11280,2.431,11281,2.431,11282,2.632,11283,2.632,11284,2.431,11285,1.951,11286,2.431,11287,2.632,11288,2.632,11289,2.632,11290,2.632,11291,2.632,11292,2.632]],["title/interfaces/ICommonCartridgeConfig.html",[334,0.743,11293,5.893]],["body/interfaces/ICommonCartridgeConfig.html",[3,0.028,4,0.028,5,0.015,7,0.16,30,0.001,32,0.146,101,0.02,103,0.001,104,0.001,165,0.964,334,1.149,336,2.542,347,2.641,5035,6.607,5036,6.698,11293,10.673,11294,10.43,11295,12.344]],["title/interfaces/ICommonCartridgeElement.html",[334,0.743,5062,4.395]],["body/interfaces/ICommonCartridgeElement.html",[3,0.027,4,0.027,5,0.015,7,0.158,8,1.464,27,0.427,30,0.001,35,1.244,101,0.02,103,0.001,104,0.001,334,1.134,336,2.509,1291,5.16,4931,7.485,5035,7.681,5036,7.787,5062,7.9,5097,8.429,11296,10.297,11297,10.297]],["title/interfaces/ICommonCartridgeFile.html",[334,0.743,5104,5.27]],["body/interfaces/ICommonCartridgeFile.html",[3,0.026,4,0.026,5,0.014,7,0.153,8,1.436,27,0.494,30,0.001,35,1.436,47,0.866,101,0.019,103,0.001,104,0.001,334,1.098,336,2.428,347,2.424,2344,5.442,4931,7.847,5035,8.052,5036,8.164,5104,9.291,5105,10.613,11298,9.965,11299,9.965,11300,9.965]],["title/interfaces/ICommonCartridgeFileBuilder.html",[334,0.743,5038,5.438]],["body/interfaces/ICommonCartridgeFileBuilder.html",[0,0.286,3,0.016,4,0.016,5,0.016,7,0.09,8,1.014,27,0.407,29,0.666,30,0.001,31,0.471,32,0.137,33,0.419,35,1.184,36,2.13,47,0.779,95,0.155,101,0.02,103,0.001,104,0.001,111,2.425,112,1.316,127,0.741,214,2.763,215,1.899,216,2.293,217,1.553,227,1.241,234,2.078,334,0.925,336,1.43,595,3.375,667,5.314,701,2.049,1474,2.85,1515,5.391,1925,4.363,2155,6.588,2594,4.324,3187,5.059,4931,7.792,4944,4.584,4945,4.504,4946,5.739,4956,9.212,4969,6.407,4975,6.558,4977,6.558,4985,6.767,4989,6.604,4991,4.73,4998,5.739,5035,6.776,5036,6.87,5037,4.905,5038,9.492,5039,7.657,5040,6.378,5041,7.018,5042,7.754,5043,7.754,5045,7.018,5049,8.195,5051,8.195,5052,9.492,5054,9.773,5055,8.195,5058,4.73,5059,4.73,5060,4.458,5061,4.164,5062,6.386,5063,3.944,5064,6.558,5065,6.767,5066,4.584,5067,6.082,5068,4.584,5069,7.018,5070,4.73,5071,4.905,5072,4.905,5073,4.905,5074,8.944,5075,4.905,5076,7.018,5077,4.905,5078,4.905,5079,7.018,5080,4.905,5081,4.905,5082,4.905,5083,4.905,5084,4.905,5085,4.905,5086,4.905,5087,4.905,5088,4.905,5089,4.905,5090,4.905,5091,4.73,5092,4.905,5093,4.905,5094,4.905,5095,4.905,5096,4.905,5097,3.716,5098,4.905,5099,4.905,5100,4.905,11301,5.867,11302,5.867,11303,5.867]],["title/interfaces/ICommonCartridgeOrganizationBuilder.html",[334,0.743,5054,5.438]],["body/interfaces/ICommonCartridgeOrganizationBuilder.html",[0,0.296,3,0.016,4,0.016,5,0.014,7,0.095,8,1.049,27,0.255,29,0.488,30,0.001,31,0.345,32,0.122,33,0.308,35,0.743,36,1.888,47,0.796,95,0.158,101,0.021,103,0.001,104,0.001,111,2.459,112,1.381,127,0.778,214,2.858,215,1.992,216,2.322,217,1.578,227,1.261,234,2.1,334,0.957,336,1.5,595,2.99,667,4.077,701,2.15,1474,2.948,1515,5.577,1925,4.513,2155,6.764,2594,4.439,3187,5.234,4931,7.588,4944,4.808,4945,4.659,4946,5.937,4956,9.341,4969,6.524,4975,6.784,4977,6.784,4985,7.001,4989,6.747,4991,4.961,4998,5.937,5035,5.501,5036,5.577,5037,5.146,5038,8.811,5039,7.861,5040,6.599,5041,7.261,5045,7.261,5049,8.413,5051,7.261,5052,8.811,5054,10.12,5055,7.261,5058,4.961,5059,4.961,5060,4.676,5061,4.367,5062,6.556,5063,4.137,5064,6.784,5065,7.001,5066,4.808,5067,6.292,5068,4.808,5069,8.413,5070,4.961,5071,5.146,5072,5.146,5073,5.146,5074,9.139,5075,5.146,5076,7.261,5077,5.146,5078,5.146,5079,7.261,5080,5.146,5081,5.146,5082,5.146,5083,5.146,5084,5.146,5085,5.146,5086,5.146,5087,5.146,5088,5.146,5089,5.146,5090,5.146,5091,4.961,5092,5.146,5093,5.146,5094,5.146,5095,5.146,5096,5.146,5097,3.898,5098,5.146,5099,5.146,5100,5.146,5205,8.022,11304,6.154]],["title/interfaces/IComponentEtherpadProperties.html",[334,0.743,11305,4.695]],["body/interfaces/IComponentEtherpadProperties.html",[0,0.154,3,0.012,4,0.012,5,0.006,7,0.145,26,2.119,30,0.001,31,0.388,32,0.15,47,0.985,55,2.234,95,0.154,96,1.222,101,0.024,103,0,104,0,111,1.385,116,1.464,145,1.786,150,4.088,165,0.546,187,0.648,188,3.845,208,1.678,214,1.488,217,1.636,227,1.308,234,1.529,240,3.182,247,1.794,305,1.992,334,1.267,336,1.102,347,1.411,369,1.859,370,1.509,371,1.908,379,2.469,380,1.448,398,1.324,399,2.71,400,1.984,402,1.86,404,0.818,405,1.219,406,1.445,461,1.042,535,3.745,687,2.098,769,4.125,806,1.905,1031,1.449,1062,1.974,1278,2.447,1439,2.163,1474,3.783,1910,2.136,1932,3.543,1984,1.934,2136,1.81,2344,4.427,2674,3.856,2675,2.22,2678,3.777,2682,2.468,2687,4.384,2688,2.637,2689,4.37,2691,3.69,2692,4.327,2701,2.086,2705,4.509,2809,3.654,2880,4.022,3305,4.155,3419,5.19,3438,5.967,3544,1.878,3571,3.148,3572,3.148,4083,4.08,4239,2.827,4303,1.984,4821,2.791,4825,2.827,4826,2.904,4926,2.086,4953,6.332,4965,3.148,4982,2.535,4989,4.272,4994,6.735,5007,3.209,5013,3.209,5018,3.209,5566,7.198,6260,5.562,6263,5.967,6377,2.946,6397,2.827,6404,6.051,6405,3.039,6406,4.578,6408,4.384,6444,4.445,6445,4.652,6460,4.732,6633,2.791,6634,2.991,8265,4.912,10432,4.578,11305,5.853,11306,3.209,11307,5.256,11308,3.277,11309,4.818,11310,6.521,11311,4.912,11312,3.148,11313,4.818,11314,4.818,11315,4.818,11316,3.209,11317,4.818,11318,2.946,11319,4.818,11320,4.912,11321,3.209,11322,3.209,11323,3.277,11324,3.148,11325,3.148,11326,3.277,11327,3.277,11328,3.277,11329,5.015,11330,5.853,11331,3.148,11332,5.015,11333,3.277,11334,3.277,11335,3.277,11336,3.091,11337,3.277,11338,3.277,11339,5.015,11340,3.277,11341,3.277,11342,6.826,11343,6.093,11344,3.209,11345,3.277,11346,3.277,11347,3.277,11348,3.277,11349,3.277,11350,3.277,11351,3.277,11352,3.277,11353,3.277,11354,3.277,11355,3.277,11356,3.091,11357,3.277,11358,3.209]],["title/interfaces/IComponentGeogebraProperties.html",[334,0.743,11315,4.695]],["body/interfaces/IComponentGeogebraProperties.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,26,2.134,30,0.001,31,0.393,32,0.133,47,0.971,55,2.25,95,0.155,96,1.242,101,0.024,103,0,104,0,111,1.401,116,1.487,145,1.808,150,3.484,165,0.553,187,0.658,188,3.872,208,1.705,214,1.512,217,1.642,227,1.312,234,1.541,240,3.204,247,1.823,305,2.016,334,1.273,336,1.119,347,1.428,369,1.877,370,1.533,371,1.931,379,1.957,380,1.466,398,1.346,399,2.743,400,2.016,402,1.89,404,0.831,405,1.238,406,1.468,461,1.059,535,3.79,687,2.131,769,4.175,806,1.936,1031,1.473,1062,2.005,1278,2.486,1439,2.197,1474,3.224,1910,2.17,1932,3.587,1984,1.965,2136,1.839,2344,4.454,2674,3.894,2675,2.255,2678,3.823,2682,2.507,2687,4.438,2688,2.68,2689,4.413,2691,3.726,2692,4.379,2701,2.119,2705,4.564,2809,3.698,2880,4.061,3305,4.196,3419,5.241,3438,6.026,3544,1.908,3571,3.198,3572,3.198,4083,4.129,4239,2.872,4303,2.016,4821,2.836,4825,2.872,4826,2.95,4926,2.119,4953,6.384,4965,3.198,4982,2.576,4989,4.324,4994,6.766,5007,3.26,5013,3.26,5018,3.26,5566,7.243,6260,5.617,6263,6.026,6377,2.993,6397,2.872,6404,6.094,6405,3.088,6406,4.634,6408,4.438,6444,4.499,6445,4.709,6460,4.789,6633,2.836,6634,3.039,8265,4.972,10432,4.634,11305,4.876,11306,3.26,11307,5.308,11308,3.329,11309,4.876,11310,6.567,11311,4.972,11312,3.198,11313,4.876,11314,4.876,11315,5.911,11316,6.74,11317,4.876,11318,2.993,11319,4.876,11320,4.972,11321,3.26,11322,3.26,11323,3.329,11324,3.198,11325,3.198,11326,3.329,11327,3.329,11328,3.329,11329,5.076,11330,5.911,11331,3.198,11332,5.076,11333,3.329,11334,3.329,11335,3.329,11336,3.141,11337,3.329,11338,3.329,11339,5.076,11340,3.329,11341,3.329,11342,6.882,11343,6.153,11344,3.26,11345,3.329,11346,3.329,11347,3.329,11348,3.329,11349,3.329,11350,3.329,11351,3.329,11352,3.329,11353,3.329,11354,3.329,11355,3.329,11356,3.141,11357,3.329,11358,3.26]],["title/interfaces/IComponentInternalProperties.html",[334,0.743,11320,4.787]],["body/interfaces/IComponentInternalProperties.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,26,2.134,30,0.001,31,0.393,32,0.133,47,0.971,55,2.25,95,0.155,96,1.242,101,0.024,103,0,104,0,111,1.401,116,1.487,145,1.808,150,4.111,165,0.553,187,0.658,188,3.872,208,1.705,214,1.512,217,1.642,227,1.312,234,1.541,240,3.204,247,1.823,305,2.016,334,1.273,336,1.119,347,1.428,369,1.877,370,1.533,371,1.931,379,1.957,380,1.466,398,1.346,399,2.743,400,2.016,402,1.89,404,0.831,405,1.238,406,1.468,461,1.059,535,3.79,687,2.131,769,4.175,806,1.936,1031,1.473,1062,2.005,1278,2.486,1439,2.197,1474,3.224,1910,2.17,1932,3.587,1984,1.965,2136,1.839,2344,4.454,2674,3.894,2675,2.255,2678,3.823,2682,2.507,2687,4.438,2688,2.68,2689,4.413,2691,3.726,2692,4.379,2701,2.119,2705,4.564,2809,3.698,2880,4.061,3305,4.196,3419,5.241,3438,6.026,3544,1.908,3571,3.198,3572,3.198,4083,4.129,4239,2.872,4303,2.016,4821,2.836,4825,2.872,4826,2.95,4926,2.119,4953,6.384,4965,3.198,4982,2.576,4989,4.324,4994,6.766,5007,3.26,5013,3.26,5018,3.26,5566,7.243,6260,5.617,6263,6.026,6377,2.993,6397,2.872,6404,6.094,6405,3.088,6406,4.634,6408,4.438,6444,4.499,6445,4.709,6460,4.789,6633,2.836,6634,3.039,8265,4.972,10432,4.634,11305,4.876,11306,3.26,11307,5.308,11308,3.329,11309,4.876,11310,6.567,11311,4.972,11312,3.198,11313,4.876,11314,4.876,11315,4.876,11316,3.26,11317,4.876,11318,2.993,11319,4.876,11320,6.026,11321,3.26,11322,3.26,11323,3.329,11324,3.198,11325,3.198,11326,3.329,11327,3.329,11328,3.329,11329,5.076,11330,5.911,11331,3.198,11332,5.076,11333,3.329,11334,3.329,11335,3.329,11336,3.141,11337,3.329,11338,3.329,11339,5.076,11340,3.329,11341,3.329,11342,6.882,11343,6.153,11344,3.26,11345,3.329,11346,3.329,11347,3.329,11348,3.329,11349,3.329,11350,3.329,11351,3.329,11352,3.329,11353,3.329,11354,3.329,11355,3.329,11356,3.141,11357,3.329,11358,3.26]],["title/interfaces/IComponentLernstoreProperties.html",[334,0.743,11317,4.695]],["body/interfaces/IComponentLernstoreProperties.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,26,2.132,30,0.001,31,0.392,32,0.151,47,0.961,55,2.247,95,0.155,96,1.239,101,0.024,103,0,104,0,111,1.399,116,1.484,138,3.037,145,1.805,150,3.48,165,0.552,187,0.657,188,3.868,208,1.701,214,1.509,217,1.641,227,1.312,234,1.54,240,3.201,247,1.819,305,2.012,334,1.272,336,1.117,347,1.425,369,1.875,370,1.529,371,1.928,379,1.954,380,1.463,398,1.342,399,2.739,400,2.011,402,1.886,404,0.829,405,1.236,406,1.464,461,1.057,535,3.784,687,2.127,769,4.168,806,1.931,1031,1.469,1062,2.001,1278,2.48,1439,2.192,1474,3.221,1910,2.165,1932,3.58,1984,1.96,2136,1.835,2344,4.45,2674,3.888,2675,2.25,2678,3.817,2682,2.502,2687,4.43,2688,2.673,2689,4.407,2691,3.721,2692,4.372,2701,2.114,2705,4.557,2809,3.692,2880,4.056,3305,4.19,3419,5.234,3438,6.017,3544,1.904,3571,3.191,3572,3.191,4083,4.122,4239,2.866,4303,2.011,4821,2.83,4825,2.866,4826,2.944,4926,2.114,4953,6.377,4965,3.191,4982,2.57,4989,6.306,4994,6.761,5007,3.253,5013,3.253,5018,3.253,5566,7.237,6260,5.609,6263,6.017,6377,2.987,6397,2.866,6404,6.088,6405,3.081,6406,4.626,6408,4.43,6444,4.491,6445,4.701,6460,4.781,6633,2.83,6634,3.032,8265,4.963,10432,4.626,11305,4.868,11306,3.253,11307,5.301,11308,3.321,11309,4.868,11310,6.561,11311,4.963,11312,3.191,11313,4.868,11314,4.868,11315,4.868,11316,3.253,11317,5.902,11318,2.987,11319,4.868,11320,4.963,11321,3.253,11322,3.253,11323,3.321,11324,3.191,11325,3.191,11326,3.321,11327,3.321,11328,3.321,11329,5.067,11330,5.902,11331,3.191,11332,5.067,11333,3.321,11334,3.321,11335,3.321,11336,3.134,11337,3.321,11338,3.321,11339,5.067,11340,3.321,11341,3.321,11342,6.874,11343,6.144,11344,3.253,11345,3.321,11346,3.321,11347,3.321,11348,3.321,11349,3.321,11350,3.321,11351,3.321,11352,3.321,11353,3.321,11354,3.321,11355,3.321,11356,3.134,11357,3.321,11358,3.253]],["title/interfaces/IComponentNexboardProperties.html",[334,0.743,11319,4.695]],["body/interfaces/IComponentNexboardProperties.html",[0,0.153,3,0.012,4,0.012,5,0.006,7,0.144,26,2.112,30,0.001,31,0.386,32,0.156,47,0.99,55,2.226,95,0.154,96,1.213,101,0.024,103,0,104,0,111,1.376,116,1.452,145,1.776,150,4.077,165,0.543,187,0.643,188,3.831,208,1.665,214,1.477,217,1.633,227,1.305,234,1.523,240,3.171,247,1.78,305,1.98,334,1.263,336,1.093,347,1.402,369,1.85,370,1.497,371,1.896,379,2.461,380,1.439,398,1.314,399,2.694,400,1.969,402,1.846,404,0.811,405,1.209,406,1.433,461,1.034,535,3.722,687,2.082,769,4.1,806,1.89,1031,1.438,1062,1.958,1278,2.428,1439,2.146,1474,3.773,1910,2.119,1932,3.522,1984,4.012,2136,1.796,2344,4.413,2674,3.837,2675,2.202,2678,3.755,2682,2.449,2687,4.358,2688,2.617,2689,4.349,2691,3.672,2692,4.301,2701,2.069,2705,4.482,2809,3.632,2880,4.002,3305,4.135,3419,5.165,3438,5.938,3544,1.863,3571,3.123,3572,3.123,4083,4.055,4239,2.805,4303,1.969,4821,2.77,4825,2.805,4826,2.881,4926,2.069,4953,6.306,4965,3.123,4982,2.516,4989,4.247,4994,6.72,5007,3.184,5013,3.184,5018,3.184,5566,7.176,6260,5.535,6263,5.938,6377,2.923,6397,2.805,6404,6.03,6405,3.016,6406,4.551,6408,4.358,6444,4.418,6445,4.624,6460,4.703,6633,2.77,6634,2.968,8265,4.882,10432,4.551,11305,4.789,11306,3.184,11307,5.231,11308,3.251,11309,4.789,11310,6.498,11311,4.882,11312,3.123,11313,4.789,11314,4.789,11315,4.789,11316,3.184,11317,4.789,11318,2.923,11319,5.824,11320,4.882,11321,3.184,11322,3.184,11323,3.251,11324,3.123,11325,3.123,11326,3.251,11327,3.251,11328,3.251,11329,4.985,11330,5.824,11331,3.123,11332,4.985,11333,3.251,11334,3.251,11335,3.251,11336,3.067,11337,3.251,11338,3.251,11339,4.985,11340,3.251,11341,3.251,11342,6.798,11343,6.063,11344,3.184,11345,3.251,11346,3.251,11347,3.251,11348,3.251,11349,3.251,11350,3.251,11351,3.251,11352,3.251,11353,3.251,11354,3.251,11355,3.251,11356,3.067,11357,3.251,11358,3.184]],["title/interfaces/IComponentTextProperties.html",[334,0.743,11314,4.695]],["body/interfaces/IComponentTextProperties.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,26,2.134,30,0.001,31,0.393,32,0.133,47,0.971,55,2.25,95,0.155,96,1.242,101,0.024,103,0,104,0,111,1.401,116,1.487,145,1.808,150,3.484,165,0.553,187,0.658,188,3.872,208,1.705,214,1.512,217,1.642,227,1.312,234,1.541,240,3.204,247,1.823,305,2.016,334,1.273,336,1.119,347,1.428,369,1.877,370,1.533,371,1.931,379,1.957,380,1.466,398,1.346,399,2.743,400,2.016,402,1.89,404,0.831,405,1.238,406,1.468,461,1.059,535,3.79,687,2.131,769,4.175,806,1.936,1031,1.473,1062,2.005,1278,2.486,1439,2.197,1474,3.224,1910,2.17,1932,3.587,1984,1.965,2136,1.839,2344,4.454,2674,3.894,2675,2.255,2678,3.823,2682,2.507,2687,4.438,2688,2.68,2689,4.413,2691,3.726,2692,4.379,2701,2.119,2705,4.564,2809,3.698,2880,5.154,3305,4.196,3419,5.241,3438,6.026,3544,1.908,3571,3.198,3572,3.198,4083,4.129,4239,2.872,4303,2.016,4821,2.836,4825,2.872,4826,2.95,4926,2.119,4953,6.384,4965,3.198,4982,2.576,4989,4.324,4994,6.766,5007,3.26,5013,3.26,5018,3.26,5566,7.243,6260,5.617,6263,6.026,6377,2.993,6397,2.872,6404,6.094,6405,3.088,6406,4.634,6408,4.438,6444,4.499,6445,4.709,6460,4.789,6633,2.836,6634,3.039,8265,4.972,10432,4.634,11305,4.876,11306,3.26,11307,5.308,11308,3.329,11309,4.876,11310,6.567,11311,4.972,11312,3.198,11313,4.876,11314,5.911,11315,4.876,11316,3.26,11317,4.876,11318,2.993,11319,4.876,11320,4.972,11321,3.26,11322,3.26,11323,3.329,11324,3.198,11325,3.198,11326,3.329,11327,3.329,11328,3.329,11329,5.076,11330,5.911,11331,3.198,11332,5.076,11333,3.329,11334,3.329,11335,3.329,11336,3.141,11337,3.329,11338,3.329,11339,5.076,11340,3.329,11341,3.329,11342,6.882,11343,6.153,11344,3.26,11345,3.329,11346,3.329,11347,3.329,11348,3.329,11349,3.329,11350,3.329,11351,3.329,11352,3.329,11353,3.329,11354,3.329,11355,3.329,11356,3.141,11357,3.329,11358,3.26]],["title/interfaces/IContextExternalToolProperties.html",[334,0.743,5687,5.64]],["body/interfaces/IContextExternalToolProperties.html",[0,0.257,3,0.02,4,0.02,5,0.011,7,0.116,29,0.982,30,0.001,32,0.178,33,0.595,47,0.959,55,2.618,95,0.159,96,2.038,101,0.019,103,0.001,104,0.001,165,0.787,192,2.248,199,2.878,200,3.878,209,2.595,240,3.879,334,0.831,336,1.837,369,2.205,370,2.515,380,2.087,398,2.208,399,3.906,402,3.101,404,1.363,405,2.032,406,2.408,1608,5.587,1925,3.918,4293,5.398,4294,4.543,4714,7.376,4926,4.601,5292,7.219,5598,4.712,5602,6.202,5621,4.775,5622,5.153,5623,4.986,5624,5.462,5625,5.349,5626,5.587,5664,7.641,5672,5.889,5673,6.964,5674,6.077,5675,10.349,5677,10.813,5680,9.664,5682,8.969,5685,6.302,5686,4.911,5687,9.348,5688,6.964,5689,6.964,5690,6.964,5691,6.585,5692,6.302,5693,6.077,5694,6.302]],["title/interfaces/ICopyFileDO.html",[334,0.743,10188,5.126]],["body/interfaces/ICopyFileDO.html",[3,0.02,4,0.026,5,0.011,7,0.116,10,3.045,26,2.809,30,0.001,31,0.694,32,0.157,33,0.499,34,2.124,39,2.021,47,0.971,55,1.658,83,2.268,95,0.128,99,1.279,101,0.025,103,0.001,104,0.001,165,0.787,188,2.855,192,2.248,204,3.423,217,0.994,334,1.311,336,1.837,461,1.738,538,3.38,1015,4.188,1031,3.584,1366,6.705,1565,4.188,2171,3.24,2172,3.605,2173,3.477,2563,4.712,2691,3.308,2701,3.477,2744,3.361,2881,3.437,3091,3.437,3144,4.045,3305,5.526,3320,5.153,3542,5.767,3574,4.864,3684,4.226,3898,4.114,4227,2.595,4982,4.226,4994,4.308,6067,7.872,6083,6.156,6085,6.5,6109,5.587,6110,4.188,6111,4.964,6112,4.911,6424,4.396,9714,7.228,9715,7.228,9716,7.228,9717,4.712,10174,5.587,10187,5.889,10188,7.58,10189,5.728,10286,5.889,10289,8.735,11359,6.302,11360,6.302,11361,6.302,11362,6.302,11363,6.302,11364,6.302]],["title/interfaces/ICopyFileDomainObjectProps.html",[334,0.743,6068,5.64]],["body/interfaces/ICopyFileDomainObjectProps.html",[3,0.025,4,0.025,5,0.016,7,0.147,26,2.856,30,0.001,31,0.728,32,0.175,33,0.58,34,2.229,47,0.909,95,0.123,99,1.623,101,0.018,103,0.001,104,0.001,145,3.223,165,0.915,334,1.054,336,2.33,359,3.316,2485,4.131,3543,4.694,6064,4.385,6067,8.59,6068,9.699,11365,8.834,11366,8.834]],["title/interfaces/ICopyFilesOfParentParams.html",[334,0.743,10286,5.27]],["body/interfaces/ICopyFilesOfParentParams.html",[3,0.02,4,0.033,5,0.011,7,0.116,10,3.056,26,2.751,30,0.001,31,0.561,32,0.157,34,1.716,39,3.195,47,0.946,55,1.665,83,2.277,95,0.128,99,1.284,101,0.025,103,0.001,104,0.001,165,0.789,188,2.865,192,2.256,204,3.431,217,0.998,334,1.313,336,1.844,461,1.744,538,3.392,1015,4.203,1031,3.59,1366,6.722,1565,4.203,2171,3.252,2172,3.619,2173,3.49,2563,4.73,2691,3.32,2701,3.49,2744,5.314,2881,3.45,3091,3.45,3144,4.06,3305,5.536,3320,5.173,3542,5.778,3574,4.877,3684,4.242,3898,4.129,4227,2.605,4982,4.242,4994,4.324,6067,5.005,6083,6.167,6085,6.516,6109,5.608,6110,4.203,6111,4.976,6112,4.93,6424,4.413,9714,7.246,9715,7.246,9716,7.246,9717,4.73,10174,5.608,10187,5.911,10188,5.749,10189,5.749,10286,7.813,10289,10.144,11359,6.326,11360,6.326,11361,6.326,11362,6.326,11363,6.326,11364,6.326]],["title/interfaces/ICopyFilesRequestInfo.html",[334,0.743,6179,5.64]],["body/interfaces/ICopyFilesRequestInfo.html",[3,0.031,4,0.035,5,0.018,7,0.148,26,2.714,30,0.001,32,0.175,39,3.487,95,0.149,99,1.631,101,0.018,103,0.001,104,0.001,165,0.918,334,1.059,336,2.341,367,5.6,2744,5.799,3543,4.716,6064,4.406,6177,10.701,6179,9.728,11365,8.876,11367,8.394]],["title/interfaces/ICoreModuleConfig.html",[334,0.743,11368,5.64]],["body/interfaces/ICoreModuleConfig.html",[3,0.028,4,0.028,5,0.015,30,0.001,95,0.156,101,0.02,103,0.001,104,0.001,334,1.143,336,2.528,404,2.202,425,2.782,558,4.932,1052,4.229,11092,7.223,11368,10.184,11369,10.377,11370,10.811,11371,10.184]],["title/interfaces/ICourseGroupProperties.html",[334,0.743,6632,5.64]],["body/interfaces/ICourseGroupProperties.html",[0,0.237,3,0.018,4,0.018,5,0.01,7,0.191,26,2.407,30,0.001,31,0.676,32,0.178,33,0.473,39,1.87,47,0.878,62,4.069,95,0.168,96,1.886,101,0.018,103,0.001,104,0.001,116,3.066,145,1.801,148,2.159,165,0.849,188,5.109,192,2.824,204,2.393,208,2.589,214,2.296,217,0.92,227,0.735,234,1.132,240,2.968,309,3.948,334,1.043,336,1.7,380,1.981,398,2.043,399,3.709,400,3.061,402,2.87,404,1.261,405,1.881,406,2.229,461,2.659,844,4.875,957,3.948,1218,4.951,1277,3.598,1910,3.295,2136,2.792,2478,3.987,2510,4.419,2674,4.931,2675,3.424,2678,3.807,2682,3.807,2688,4.069,2690,4.951,2692,4.361,2705,4.545,2835,4.157,2881,3.181,3061,5.301,3394,4.769,4227,2.402,4303,3.061,4926,4.368,6045,5.45,6366,5.055,6370,8.244,6400,5.776,6404,4.157,6406,6.265,6407,4.306,6408,5.999,6409,3.911,6425,5.055,6429,4.361,6431,5.833,6444,4.48,6445,7.228,6473,5.833,6623,6.444,6632,8.99,6633,4.306,6634,4.615,6635,6.444,6636,6.444,6637,5.055,6638,6.444,6639,6.444,6640,6.444,6641,6.444,6642,6.444,6643,6.444]],["title/interfaces/ICourseProperties.html",[334,0.743,6410,5.64]],["body/interfaces/ICourseProperties.html",[0,0.141,3,0.011,4,0.011,5,0.006,7,0.166,26,2.254,30,0.001,31,0.58,32,0.177,33,0.653,34,0.711,39,2.134,47,0.926,62,2.417,83,3.657,95,0.15,96,1.12,101,0.012,103,0,104,0,111,1.592,116,3.496,127,0.524,145,2.321,148,2.002,165,0.511,188,3.406,192,2.909,208,1.538,214,1.364,217,1.603,227,1.261,234,1.678,240,3.501,305,1.862,329,2.345,334,0.457,336,1.01,347,1.319,369,2.47,370,3.255,371,1.142,379,2.383,380,1.354,394,3.698,398,1.214,399,2.534,400,1.819,402,1.705,404,0.749,405,1.117,406,1.324,461,2.758,475,2.077,535,2.243,565,3.416,618,1.764,686,2.262,701,1.448,770,3.814,844,4.687,905,1.721,922,3.621,1031,2.551,1218,2.941,1439,3.095,1474,1.407,1910,3.056,1919,2.687,1925,2.154,2116,2.243,2136,3.6,2674,4.124,2678,4.908,2682,2.262,2690,2.941,2692,2.591,3091,1.89,3285,2.528,3396,2.662,3715,2.591,3739,4.28,3740,4.28,4013,3.149,4083,2.443,4227,1.427,4228,5.767,4243,3.621,4303,2.839,4641,2.786,4821,2.558,4926,2.984,4961,7.662,6270,3.149,6331,3.003,6363,3.829,6364,7.51,6365,7.067,6366,5.767,6367,6.557,6368,2.885,6369,7.491,6370,7.067,6371,7.864,6372,7.662,6373,3.829,6376,3.829,6377,2.7,6379,3.829,6381,9.011,6384,3.829,6393,3.829,6397,2.591,6398,3.829,6399,3.829,6400,3.946,6401,4.688,6402,4.796,6403,3.465,6404,3.856,6405,2.786,6406,4.28,6407,2.558,6408,4.099,6409,2.324,6410,6.655,6411,5.652,6412,3.829,6413,3.465,6414,3.003,6415,3.829,6416,3.829,6417,3.621,6418,3.238,6419,3.829,6420,3.829,6421,3.341,6422,3.829,6423,3.946,6424,2.417,6425,5.767,6426,3.465,6427,4.423,6428,2.833,6429,2.591,6430,2.498,6431,3.465,6432,3.829,6433,3.829,6434,5.977,6435,5.977,6436,5.977,6437,7.52,6438,5.41,6439,5.055,6440,5.977,6441,4.917,6442,5.055,6443,3.149,6444,2.662,6445,4.349,6446,3.829,6447,3.829,6448,3.829,6449,5.977,6450,3.829,6451,3.829,6452,3.829,6453,3.829,6454,3.829,6455,3.829,6456,3.829,6457,3.829,6458,3.829,6459,3.829,6460,2.833,6461,2.625,6462,3.829,6463,3.621,6464,3.829,6465,7.353,6466,5.977,6467,3.829,6468,3.829,6469,3.465,6470,3.465,6471,2.885,6472,3.829,6473,6.655,6474,3.829,6475,3.829,6476,3.829,6477,3.829]],["title/interfaces/ICreateNews.html",[334,0.743,11372,5.438]],["body/interfaces/ICreateNews.html",[3,0.021,4,0.021,5,0.011,7,0.121,26,2.387,30,0.001,32,0.192,33,0.571,34,1.355,47,0.938,83,3.441,95,0.155,101,0.024,103,0.001,104,0.001,138,4.465,165,0.811,188,4.33,192,2.354,334,1.419,336,1.923,347,1.609,379,1.819,380,1.651,696,4.071,844,4.661,1031,2.53,1474,4.113,2344,5.008,2423,4.813,2744,5.602,3606,6.895,4499,4.813,6424,4.603,6720,6.347,6722,5.85,6723,7.344,6726,8.014,6730,5.997,6731,7.424,6902,7.96,9717,4.934,10356,6.363,11372,8.289,11373,7.291,11374,9.498,11375,7.291,11376,7.291,11377,7.291,11378,5.143,11379,6.599,11380,6.363]],["title/interfaces/ICurrentUser.html",[334,0.743,491,3.311]],["body/interfaces/ICurrentUser.html",[3,0.02,4,0.02,5,0.011,7,0.115,26,2.948,30,0.001,31,0.421,32,0.178,33,0.594,34,2.181,39,3.186,47,0.944,48,5.579,83,2.995,85,7.428,94,4.73,95,0.096,99,1.275,101,0.021,103,0.001,104,0.001,165,0.785,200,3.243,334,1.23,336,1.83,347,2.275,355,3.914,369,2.627,461,2.739,491,4.885,496,4.193,522,7.562,575,5.93,591,3.212,592,3.313,770,5.866,851,3.686,852,3.686,1110,6.391,1114,4.038,1304,6.583,1916,3.638,2488,6.803,3091,5.792,3110,5.989,4227,4.462,4997,6.484,6895,8.022,6955,9.935,11381,6.561,11382,8.693,11383,8.022,11384,6.054]],["title/interfaces/IDashboardModelProperties.html",[334,0.743,7427,5.438]],["body/interfaces/IDashboardModelProperties.html",[0,0.321,3,0.018,4,0.018,5,0.01,7,0.185,30,0.001,32,0.15,33,0.472,34,2.219,39,2.53,47,0.904,49,2.706,55,2.532,95,0.154,96,2.551,97,2.953,101,0.022,103,0.001,104,0.001,127,0.877,145,1.791,165,0.745,188,3.574,234,1.532,240,3.606,334,1.04,336,1.691,369,2.371,370,2.315,380,2.243,398,2.033,399,4.2,402,3.883,404,1.706,405,1.871,406,3.015,461,3.021,618,4.016,619,3.966,1474,3.907,1910,4.458,2501,7.771,2672,6.704,2674,4.328,2676,7.171,2678,5.15,2680,5.595,2682,3.787,2684,5.029,2688,4.048,2789,3.664,4294,4.183,4926,3.201,6397,4.338,6409,3.891,6737,4.457,7219,7.525,7404,8.991,7405,5.802,7406,9.278,7407,9.278,7415,7.608,7416,6.995,7417,5.802,7418,7.891,7419,5.802,7420,5.802,7421,5.802,7422,5.802,7423,5.802,7424,5.595,7425,5.802,7426,5.802,7427,8.645,7428,8.722,7429,5.802,7430,4.925,7431,5.802,7432,5.802,7433,5.802,7434,5.802,7435,5.802]],["title/interfaces/IDashboardRepo.html",[334,0.743,7600,5.64]],["body/interfaces/IDashboardRepo.html",[0,0.32,3,0.018,4,0.018,5,0.01,7,0.106,8,1.136,9,3.302,26,2.763,27,0.444,29,0.848,30,0.001,31,0.6,32,0.15,33,0.535,34,1.614,35,1.292,36,2.878,39,3.079,49,2.692,95,0.147,96,1.866,97,2.938,99,1.172,101,0.018,103,0.001,104,0.001,105,1.24,112,2.576,187,0.989,206,3.535,214,2.272,216,1.739,217,1.727,221,2.991,227,1.307,234,1.12,334,0.761,336,1.682,380,1.444,461,1.591,661,2.909,722,3.046,877,4.027,1919,2.867,2395,5.375,2435,4.641,3285,4.21,6701,4.72,7219,7.75,7251,8.983,7287,7.146,7416,5.117,7496,7.347,7518,8.216,7577,6.031,7581,5.394,7582,6.378,7583,8.688,7584,8.216,7585,8.688,7587,9.881,7589,9.344,7591,6.378,7593,9.881,7595,6.378,7596,6.378,7597,8.688,7598,6.378,7599,6.031,7600,8.943,7601,5.246,7602,8.688,7603,6.378,7604,8.688,7605,6.378,7606,9.881,7607,6.378,7608,8.688,7609,6.378,7610,6.378,11385,6.904,11386,6.904,11387,6.904]],["title/interfaces/IEncryptionService.html",[334,0.743,9083,4.888]],["body/interfaces/IEncryptionService.html",[3,0.025,4,0.025,5,0.013,7,0.146,8,1.397,27,0.48,29,0.918,30,0.001,31,0.649,32,0.162,33,0.578,35,1.397,47,1.018,101,0.024,103,0.001,104,0.001,163,3.648,217,1.526,334,1.049,336,2.319,8108,7.054,8109,8.314,9083,8.382,11388,9.517,11389,10.105,11390,9.672,11391,10.686,11392,9.517,11393,10.686,11394,9.517,11395,9.517,11396,9.517]],["title/interfaces/IEntity.html",[334,0.743,2494,5.27]],["body/interfaces/IEntity.html",[3,0.025,4,0.025,5,0.013,7,0.146,30,0.001,32,0.162,34,2.223,47,0.907,49,5.051,83,3.476,95,0.148,96,2.567,97,4.04,101,0.024,103,0.001,104,0.001,165,0.912,192,2.831,334,1.372,336,2.314,404,2.088,591,4.061,592,4.188,844,5.237,1278,7.009,2494,10.12,6400,5.79,10657,6.609,11397,8.295,11398,7.938]],["title/interfaces/IEntityWithSchool.html",[334,0.743,6400,4.113]],["body/interfaces/IEntityWithSchool.html",[3,0.025,4,0.025,5,0.014,7,0.148,30,0.001,32,0.135,34,1.649,47,0.7,49,4.537,83,3.501,95,0.149,96,2.597,97,4.089,101,0.024,103,0.001,104,0.001,165,0.918,192,3.878,334,1.379,336,2.341,404,2.262,591,4.109,592,4.238,844,5.897,1278,5.199,2494,10.161,6400,7.095,10657,6.688,11397,8.394,11398,8.033]],["title/interfaces/IEntityWithTimestamps.html",[334,0.743,11398,5.64]],["body/interfaces/IEntityWithTimestamps.html",[3,0.025,4,0.025,5,0.013,7,0.145,30,0.001,32,0.161,34,1.622,47,0.688,49,4.491,83,4.058,95,0.148,96,2.555,97,4.021,101,0.024,103,0.001,104,0.001,165,0.909,192,2.818,334,1.369,336,2.303,404,2.246,591,5.531,592,5.705,844,5.222,1278,5.113,2494,10.103,6400,5.763,10657,6.578,11397,8.256,11398,9.63]],["title/interfaces/IError.html",[334,0.743,8203,5.438]],["body/interfaces/IError.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.166,33,0.59,55,2.782,101,0.023,103,0.001,104,0.001,165,0.932,204,4.338,334,1.301,336,2.399,404,2.134,564,4.866,692,3.668,1327,5.297,7907,8.802,8203,10.194,10185,7.69,11399,9.093,11400,9.093]],["title/interfaces/IErrorType.html",[334,0.743,3875,5.893]],["body/interfaces/IErrorType.html",[3,0.026,4,0.026,5,0.014,7,0.152,30,0.001,32,0.193,47,1.019,101,0.019,103,0.001,104,0.001,165,0.936,216,2.346,334,1.093,336,2.416,1474,4.462,1493,8.326,3875,10.359,11401,9.916,11402,9.916]],["title/interfaces/IExternalToolPseudonymEntityProps.html",[334,0.743,8717,5.64]],["body/interfaces/IExternalToolPseudonymEntityProps.html",[0,0.28,3,0.022,4,0.022,5,0.012,7,0.127,26,2.569,30,0.001,32,0.173,33,0.528,34,2.113,39,3.492,47,0.896,49,5.285,95,0.158,96,2.856,97,3.503,99,1.397,101,0.02,103,0.001,104,0.001,165,0.921,167,3.143,200,2.682,209,3.638,240,3.857,334,0.907,336,2.006,380,2.21,394,6.668,398,2.411,399,4.137,402,3.387,404,1.488,405,2.219,406,2.63,415,4.493,416,5.287,618,3.503,619,6.038,4294,4.962,8568,7.679,8709,6.883,8710,7.605,8711,7.605,8712,8.294,8717,9.755,8718,6.255,8719,6.883,8720,6.883,8721,6.102,8722,6.431]],["title/interfaces/IFederalStateProperties.html",[334,0.743,6350,5.64]],["body/interfaces/IFederalStateProperties.html",[0,0.342,3,0.02,4,0.02,5,0.011,7,0.117,30,0.001,31,0.715,32,0.179,33,0.502,47,1.006,55,1.677,83,3.839,95,0.129,96,2.061,101,0.021,103,0.001,104,0.001,165,0.793,240,3.746,334,0.84,336,1.858,369,2.222,370,3.751,371,2.77,380,2.103,398,2.233,399,3.936,400,3.345,402,3.136,404,1.378,405,2.055,406,2.436,591,5.112,592,5.273,620,4.896,621,5.793,622,4.896,623,5.793,1925,3.962,2136,4.023,2618,5.146,4293,5.438,4303,3.345,5640,7.032,5656,4.967,6340,10.876,6341,6.66,6342,6.66,6343,6.66,6344,6.66,6345,6.66,6350,9.401,6351,10.853,6352,10.853,6353,6.66,6354,6.66,6355,6.66,6356,6.66,6357,6.66,6358,6.66,6359,4.649,6360,6.66,6361,6.66,6362,5.956]],["title/interfaces/IFileDO.html",[334,0.743,10189,5.126]],["body/interfaces/IFileDO.html",[3,0.019,4,0.025,5,0.01,7,0.107,10,2.822,26,2.597,30,0.001,31,0.677,32,0.184,33,0.474,34,2.071,39,1.873,47,1.008,55,2.368,83,3.239,95,0.122,99,1.186,101,0.025,103,0.001,104,0.001,165,0.748,188,2.646,192,2.084,204,3.253,217,0.922,334,1.272,336,1.703,461,1.611,538,3.133,1015,6.412,1031,3.45,1366,6.373,1565,6.412,2171,3.004,2172,3.342,2173,3.223,2563,4.369,2691,3.066,2701,3.223,2744,3.116,2881,3.186,3091,3.186,3144,3.749,3305,5.319,3320,4.777,3542,5.551,3574,5.884,3684,3.918,3898,3.814,4227,2.406,4982,3.918,4994,3.994,6067,4.623,6083,6.643,6085,7.52,6109,8.555,6110,6.412,6111,6.004,6112,7.52,6424,4.076,9714,6.871,9715,6.871,9716,6.871,9717,4.369,10174,5.18,10187,5.459,10188,5.31,10189,7.205,10286,5.459,10289,8.408,11359,5.843,11360,5.843,11361,5.843,11362,5.843,11363,5.843,11364,5.843]],["title/interfaces/IFileDomainObjectProps.html",[334,0.743,9488,5.64]],["body/interfaces/IFileDomainObjectProps.html",[3,0.025,4,0.025,5,0.013,7,0.145,26,2.849,30,0.001,31,0.725,32,0.181,34,2.22,47,0.905,95,0.148,99,1.604,101,0.018,103,0.001,104,0.001,165,0.909,334,1.041,336,2.303,359,3.277,2485,4.083,3543,4.639,3574,6.306,6064,4.333,6083,7.12,6111,6.435,8206,6.578,9488,9.63,11366,8.73,11403,8.73]],["title/interfaces/IFileRecordParams.html",[334,0.743,10289,5.27]],["body/interfaces/IFileRecordParams.html",[3,0.02,4,0.027,5,0.011,7,0.116,10,3.056,26,2.81,30,0.001,31,0.561,32,0.157,34,1.716,39,2.028,47,0.946,55,1.665,83,2.277,95,0.128,99,1.284,101,0.025,103,0.001,104,0.001,165,0.789,188,2.865,192,2.256,204,3.431,217,0.998,334,1.313,336,1.844,461,1.744,538,3.392,1015,4.203,1031,3.59,1366,6.722,1565,4.203,2171,3.252,2172,3.619,2173,3.49,2563,4.73,2691,3.32,2701,3.49,2744,3.374,2881,3.45,3091,3.45,3144,4.06,3305,5.536,3320,5.173,3542,5.778,3574,6.043,3684,4.242,3898,4.129,4227,4.103,4982,4.242,4994,4.324,6067,5.005,6083,6.823,6085,6.516,6109,5.608,6110,4.203,6111,6.166,6112,4.93,6424,4.413,9714,7.246,9715,7.246,9716,7.246,9717,4.73,10174,5.608,10187,5.911,10188,5.749,10189,5.749,10286,5.911,10289,9.31,11359,6.326,11360,6.326,11361,6.326,11362,6.326,11363,6.326,11364,6.326]],["title/interfaces/IFileRecordProperties.html",[334,0.743,9732,5.126]],["body/interfaces/IFileRecordProperties.html",[0,0.247,3,0.01,4,0.01,5,0.008,7,0.157,26,2.682,30,0.001,31,0.615,32,0.158,33,0.416,34,0.994,39,0.966,47,0.9,49,3.552,55,1.829,83,3.2,95,0.131,96,1.565,97,1.533,99,0.611,101,0.019,103,0,104,0,116,4,145,2.64,148,2.573,165,0.573,187,0.516,188,1.364,192,1.727,204,2.491,217,1.518,227,1.354,234,1.868,240,3.732,247,1.429,305,1.037,334,0.8,336,0.878,347,1.983,359,2.008,369,1.838,370,2.422,371,0.993,380,1.906,398,1.055,399,2.268,402,1.482,404,0.651,405,1.561,406,1.151,461,0.83,564,2.695,574,1.633,591,1.541,592,1.589,701,2.536,770,2.124,775,4.427,905,1.496,938,2.611,946,2.347,1015,5.681,1031,3.278,1291,1.533,1296,2.557,1366,3.892,1436,4.031,1565,5.681,1828,2.582,1919,2.405,2078,2.101,2079,4.031,2136,3.328,2309,2.02,2478,2.059,2618,2.965,2674,3.813,2685,2.059,2691,1.581,2701,1.662,2881,1.643,3091,1.643,3144,1.933,3305,1.78,3320,2.463,3331,2.02,3574,5.491,3684,2.02,3853,2.611,4227,3.877,4237,2.815,4239,2.252,4293,3.133,4303,1.581,4304,2.124,4982,2.02,4994,2.059,5999,2.508,6064,1.652,6082,4.327,6083,5.357,6084,4.109,6085,5.418,6092,2.508,6100,2.557,6102,2.383,6104,5.261,6110,5.405,6111,5.603,6112,5.935,6400,2.197,6424,2.101,6616,2.815,6617,4.292,6727,1.933,9493,2.67,9558,2.738,9561,4.109,9565,2.611,9599,2.508,9609,2.738,9613,2.738,9639,4.4,9642,2.611,9643,2.611,9648,2.738,9649,2.738,9689,2.904,9690,2.815,9691,4.524,9692,2.904,9693,4.524,9695,8.244,9707,6.163,9710,2.904,9711,2.815,9712,4.4,9713,2.611,9714,4.196,9715,4.196,9716,4.196,9717,2.252,9718,4.668,9719,4.668,9720,4.668,9721,4.668,9722,4.668,9723,4.668,9724,4.524,9725,5.589,9726,4.668,9727,2.738,9728,4.292,9729,2.67,9730,4.4,9731,2.738,9732,5.517,9733,5.672,9734,2.508,9735,2.815,9736,2.611,9737,2.611,9738,2.904,9739,2.904,9740,2.738,9741,2.67,9742,2.738,9743,2.904,9744,2.904,9745,2.904,9746,2.904,9747,2.904,9748,2.904,9749,2.904,9750,2.904,9751,2.904,9752,2.904,9753,7.843,9754,2.904,9755,2.904,9756,4.668,9757,2.904,9758,2.904,9759,4.668,9760,4.668,9761,4.668,9762,2.904,9763,2.815,9764,2.815,9765,2.904,9766,2.904,9767,2.904,9768,2.904,9769,4.668,9770,5.853,9771,2.815,9772,2.904,9773,4.668,9774,2.815,9775,2.904,9776,4.668,9777,2.904,9778,5.853,9779,5.853,9780,2.815,9781,2.904,9782,2.904,9783,2.904,9784,2.904,9785,2.904,9786,2.904,9787,2.815,9788,2.904,9789,2.904,9790,2.904,9791,2.904,9792,2.904]],["title/interfaces/IFileRecordSecurityCheckProperties.html",[334,0.743,9724,5.27]],["body/interfaces/IFileRecordSecurityCheckProperties.html",[0,0.253,3,0.01,4,0.01,5,0.008,7,0.159,26,2.509,30,0.001,31,0.555,32,0.119,33,0.494,34,1.023,39,1.002,47,0.907,49,3.618,55,1.312,83,2.976,95,0.133,96,1.612,97,1.59,99,0.634,101,0.02,103,0,104,0,116,4.031,145,2.678,148,2.627,165,0.587,187,0.535,188,1.415,192,1.778,204,2.552,217,1.534,227,1.363,234,1.887,240,3.767,247,1.482,305,1.075,334,0.82,336,0.911,347,2.016,359,2.068,369,1.877,370,2.482,371,1.03,380,1.941,398,1.094,399,2.335,402,1.537,404,0.676,405,1.607,406,1.194,461,0.861,564,3.67,574,1.694,591,1.598,592,1.648,701,2.599,770,2.203,775,4.537,905,1.552,938,2.708,946,2.435,1015,4.717,1031,3.326,1291,1.59,1296,2.652,1366,4.008,1436,6.458,1565,4.717,1828,2.659,1919,2.476,2078,2.179,2079,4.15,2136,3.399,2309,2.095,2478,2.136,2618,3.052,2674,3.894,2685,2.136,2691,1.64,2701,1.723,2881,1.704,3091,1.704,3144,2.005,3305,1.847,3320,2.555,3331,2.095,3574,5.06,3684,2.095,3853,2.708,4227,3.573,4237,2.919,4239,2.336,4293,3.226,4303,1.64,4304,2.203,4982,2.095,4994,2.136,5999,2.601,6064,1.713,6082,4.433,6083,4.675,6084,4.231,6085,6.443,6092,2.601,6100,2.652,6102,2.472,6104,5.39,6110,4.133,6111,5.163,6112,3.885,6400,2.279,6424,2.179,6616,2.919,6617,4.419,6727,2.005,9493,2.77,9558,2.839,9561,4.231,9565,2.708,9599,2.601,9609,2.839,9613,2.839,9639,4.53,9642,2.708,9643,2.708,9648,2.839,9649,2.839,9689,3.012,9690,2.919,9691,4.658,9692,3.012,9693,4.658,9695,6.845,9707,6.293,9710,3.012,9711,2.919,9712,4.53,9713,2.708,9714,4.32,9715,4.32,9716,4.32,9717,2.336,9718,4.806,9719,4.806,9720,4.806,9721,4.806,9722,4.806,9723,4.806,9724,5.812,9725,6.975,9726,4.806,9727,2.839,9728,4.419,9729,2.77,9730,4.53,9731,2.839,9732,4.53,9733,5.812,9734,2.601,9735,2.919,9736,2.708,9737,2.708,9738,3.012,9739,3.012,9740,2.839,9741,2.77,9742,2.839,9743,3.012,9744,3.012,9745,3.012,9746,3.012,9747,3.012,9748,3.012,9749,3.012,9750,3.012,9751,3.012,9752,3.012,9753,7.972,9754,3.012,9755,3.012,9756,4.806,9757,3.012,9758,3.012,9759,4.806,9760,4.806,9761,4.806,9762,3.012,9763,2.919,9764,2.919,9765,3.012,9766,3.012,9767,3.012,9768,3.012,9769,4.806,9770,5.997,9771,2.919,9772,3.012,9773,4.806,9774,2.919,9775,3.012,9776,4.806,9777,3.012,9778,5.997,9779,5.997,9780,2.919,9781,3.012,9782,3.012,9783,3.012,9784,3.012,9785,3.012,9786,3.012,9787,2.919,9788,3.012,9789,3.012,9790,3.012,9791,3.012,9792,3.012]],["title/interfaces/IFileRequestInfo.html",[334,0.743,6177,5.27]],["body/interfaces/IFileRequestInfo.html",[3,0.026,4,0.026,5,0.014,7,0.149,26,2.863,30,0.001,32,0.176,95,0.15,99,1.642,101,0.018,103,0.001,104,0.001,165,0.922,334,1.066,336,2.358,367,4.658,3543,4.75,3574,6.357,4227,4.489,6064,4.438,6083,7.178,6111,6.487,6177,9.129,8206,6.736,11367,8.454,11403,8.94]],["title/interfaces/IFileStorageConfig.html",[334,0.743,11404,6.231]],["body/interfaces/IFileStorageConfig.html",[3,0.022,4,0.022,5,0.012,7,0.128,30,0.001,32,0.149,47,0.952,55,3.012,95,0.15,101,0.024,103,0.001,104,0.001,154,3.8,165,0.84,217,1.631,334,0.918,336,2.031,404,1.925,1445,6.333,2171,3.582,2172,3.986,2173,3.844,2174,5.279,2186,5.279,2508,5.352,3544,3.461,6064,3.822,6163,7.763,6164,6.511,6165,5.801,6166,5.801,6167,5.801,6168,5.801,9918,6.177,10092,5.801,11368,9.812,11404,10.841,11405,8.334,11406,12.779,11407,12.779,11408,10.841,11409,10.649,11410,7.281,11411,8.334,11412,6.968,11413,7.699,11414,8.334,11415,8.334,11416,7.281,11417,7.699,11418,7.281,11419,7.699,11420,8.334,11421,5.698,11422,8.334,11423,8.334,11424,8.334,11425,8.334,11426,8.334,11427,8.334]],["title/interfaces/IFilesStorageClientConfig.html",[334,0.743,10294,5.64]],["body/interfaces/IFilesStorageClientConfig.html",[3,0.027,4,0.027,5,0.015,7,0.159,30,0.001,32,0.145,55,2.842,101,0.02,103,0.001,104,0.001,165,0.96,334,1.14,336,2.522,3543,5.97,3544,4.298,6064,4.746,10294,10.169,11092,7.204,11412,11.144,11428,10.35]],["title/interfaces/IFindOptions.html",[334,0.743,6775,4.164]],["body/interfaces/IFindOptions.html",[3,0.025,4,0.025,5,0.013,7,0.146,30,0.001,32,0.175,33,0.648,55,2.545,56,4.581,70,4.769,101,0.025,103,0.001,104,0.001,165,0.913,334,1.274,336,2.319,696,4.909,1031,3.05,2185,7.338,3618,9.672,6487,7.906,6775,7.141,6844,6.201,8783,10.128,8927,10.128,10057,9.325,11429,8.792,11430,8.792]],["title/interfaces/IGridElement.html",[334,0.743,7284,5.64]],["body/interfaces/IGridElement.html",[0,0.191,3,0.009,4,0.009,5,0.005,7,0.137,8,0.677,26,2.373,27,0.417,29,0.644,30,0.001,31,0.455,32,0.159,33,0.406,34,1.64,35,1.215,39,1.503,47,0.882,55,2.695,83,1.041,95,0.091,101,0.02,103,0,104,0,111,2.319,144,1.532,145,2.096,148,3.7,165,0.442,187,0.496,214,1.139,217,1.735,227,1.386,234,1.7,247,3.222,305,2.033,334,0.381,336,0.843,347,1.947,405,0.933,415,3.059,416,2.222,595,1.191,618,3.797,619,3.203,627,2.529,687,3.768,905,2.934,1041,1.922,1277,4.603,1382,5.014,1474,3.415,1758,5.368,1773,3.6,1828,3.622,1932,4.158,2381,2.703,2586,1.827,2594,4.905,2672,6.951,2685,1.978,2686,1.841,2728,2.629,2789,4.288,2809,4.711,3224,2.565,3331,3.143,3400,2.409,3573,3.652,3667,7.461,3715,3.504,4821,2.136,6258,2.893,6365,2.366,6401,9.451,6402,4.154,6471,3.902,6701,5.553,7228,5.654,7251,2.507,7252,3.023,7254,3.023,7257,3.023,7258,2.893,7259,7.987,7261,2.789,7268,4.896,7274,3.023,7278,3.023,7281,3.023,7282,7.987,7284,9.296,7287,6.172,7289,3.023,7290,7.461,7293,3.023,7295,3.023,7297,3.023,7299,3.023,7301,3.023,7303,3.023,7306,3.023,7308,4.896,7309,2.565,7310,7.796,7311,7.096,7312,4.896,7313,7.796,7314,6.172,7315,4.896,7316,7.796,7317,4.896,7318,6.172,7319,3.023,7320,4.259,7321,9.057,7322,3.023,7323,4.896,7324,3.023,7325,4.896,7326,3.023,7327,4.896,7328,3.023,7329,3.023,7330,3.023,7331,3.023,7332,3.023,7333,4.896,7334,3.023,7335,4.896,7336,2.893,7337,4.896,7338,3.023,7339,2.409,7340,4.896,7341,3.023,7342,3.023,7343,3.023,7344,4.896,7345,2.789,7346,3.023,7347,4.896,7348,3.023,7349,2.629,7350,3.023,7351,3.023,7352,3.023,7353,3.023,7354,3.023,7355,3.023,7356,3.023,7357,3.023,7358,3.023,7359,4.896,7360,4.896,7361,2.893,7362,6.172,7363,3.023,7364,4.896,7365,3.023,7366,3.023,7367,3.023,7368,3.023,7369,3.023,7370,3.023,7371,3.023,7372,3.023,7373,3.023,7374,3.023,7375,3.023,7376,3.023,7377,3.023,7378,3.023,7379,3.023,7380,3.023,7381,3.023,7382,3.023,7383,3.023,7384,3.023,7385,3.023,7386,3.023,7387,3.023,7388,4.896,7389,3.023,7390,3.023,7391,3.023,7392,4.896,7393,4.896,7394,3.023,7395,3.023,7396,3.023,7397,3.023,7398,3.023,7399,3.023,7400,3.023,7401,6.172,7402,3.023,7403,3.023,10549,5.178,10554,5.178,10555,5.178,10556,5.178,10563,3.197,11431,3.46,11432,3.46,11433,3.46,11434,3.46,11435,3.46,11436,3.46,11437,3.46]],["title/interfaces/IIdentityManagementConfig.html",[334,0.743,11438,5.64]],["body/interfaces/IIdentityManagementConfig.html",[3,0.026,4,0.026,5,0.014,7,0.153,30,0.001,32,0.178,101,0.019,103,0.001,104,0.001,165,0.938,334,1.098,336,2.428,347,2.853,11438,9.943,11439,5.695,11440,7.785,11441,9.965,11442,12.162,11443,12.162,11444,12.162]],["title/interfaces/IImportUserProperties.html",[334,0.743,11445,5.64]],["body/interfaces/IImportUserProperties.html",[0,0.161,3,0.013,4,0.013,5,0.007,7,0.073,30,0.001,31,0.402,32,0.183,33,0.608,47,0.993,49,1.846,95,0.14,96,1.28,101,0.018,103,0,104,0,111,0.947,145,1.85,165,0.86,167,2.737,192,3.56,200,1.543,214,1.558,217,1.141,227,0.755,234,0.768,240,3.655,247,3.432,305,1.362,334,0.79,336,1.154,347,1.966,355,2.819,369,2.578,370,2.392,371,1.305,380,1.499,394,5.923,398,1.387,399,2.807,400,2.078,402,1.948,404,0.856,405,1.276,406,1.513,444,1.815,461,2.953,472,3.183,575,2.822,577,4.849,701,1.654,728,1.854,844,4.698,851,5.087,852,5.087,853,5.755,854,5.501,905,1.966,1031,3.092,1114,4.938,1277,2.442,1871,5.339,1919,1.966,2298,2.854,2324,4.136,2501,6.267,2502,3.959,2672,4.481,2674,4.752,2676,5.447,2684,3.431,2752,4.136,2951,2.822,3110,2.294,4227,1.63,4232,6.816,4315,3.699,4316,3.509,4331,5.087,4538,2.68,4926,3.989,5868,3.431,6400,4.371,6407,2.923,6409,2.655,6429,2.96,6737,3.041,6744,2.822,6745,2.923,7339,3.296,7430,5.087,8317,3.509,8318,3.699,9336,3.183,9337,3.431,9338,3.183,9339,3.431,9340,3.598,9341,3.817,9980,3.598,10330,7.213,10331,5.913,10349,4.989,10350,3.36,10351,2.854,10359,3.959,10736,3.959,10740,3.509,11445,7.232,11446,4.374,11447,7.874,11448,8.862,11449,6.752,11450,8.789,11451,8.096,11452,3.699,11453,3.598,11454,3.598,11455,4.136,11456,4.136,11457,4.374,11458,3.959,11459,3.36,11460,4.374,11461,4.374,11462,4.374,11463,4.374,11464,4.374,11465,4.374,11466,4.374,11467,4.374,11468,5.993,11469,4.374,11470,5.993,11471,3.959,11472,5.778,11473,4.374,11474,4.374,11475,4.374,11476,3.959,11477,3.598,11478,4.374,11479,4.374,11480,4.374,11481,4.374,11482,3.959,11483,3.959,11484,5.447,11485,5.313,11486,6.262,11487,4.374,11488,4.374,11489,4.374,11490,3.817,11491,5.993,11492,4.374]],["title/interfaces/IImportUserScope.html",[334,0.743,11493,5.438]],["body/interfaces/IImportUserScope.html",[2,1.416,3,0.022,4,0.022,5,0.012,7,0.127,30,0.001,31,0.464,32,0.188,33,0.698,47,1.013,95,0.106,101,0.022,103,0.001,104,0.001,165,0.836,334,1.167,336,2.014,347,2.383,472,8.287,496,5.195,577,4.634,851,6.257,852,6.257,1031,2.649,1680,7.242,6409,4.634,7668,4.982,10330,8.582,10331,8.428,10349,7.374,10350,5.866,10351,4.982,11451,9.631,11493,8.54,11494,7.636,11495,10.308,11496,7.636,11497,6.663]],["title/interfaces/IInterceptorConfig.html",[334,0.743,11370,5.64]],["body/interfaces/IInterceptorConfig.html",[3,0.027,4,0.027,5,0.014,7,0.157,30,0.001,32,0.169,55,3.021,101,0.019,103,0.001,104,0.001,165,0.953,334,1.126,336,2.49,11092,7.113,11370,10.092,11410,11.596,11412,11.098,11498,10.218]],["title/interfaces/IJsonAccount.html",[334,0.743,11499,5.893]],["body/interfaces/IJsonAccount.html",[3,0.025,4,0.025,5,0.013,7,0.142,30,0.001,32,0.194,33,0.568,39,3.442,47,1.019,48,6.029,51,6.345,87,6.345,101,0.018,103,0.001,104,0.001,138,5.576,165,0.897,334,1.02,336,2.255,1278,6.947,11439,5.289,11499,9.934,11500,5.713,11501,8.549,11502,9.255,11503,10.505]],["title/interfaces/IJsonUser.html",[334,0.743,11504,5.893]],["body/interfaces/IJsonUser.html",[3,0.025,4,0.025,5,0.014,7,0.148,30,0.001,32,0.19,47,1.019,101,0.018,103,0.001,104,0.001,138,5.052,165,0.918,334,1.059,336,2.341,851,6.384,852,6.384,853,6.61,1278,7.037,11439,5.491,11500,5.931,11501,8.876,11503,8.876,11504,10.164,11505,9.608]],["title/interfaces/IKeycloakConfigurationInputFiles.html",[334,0.743,11506,5.64]],["body/interfaces/IKeycloakConfigurationInputFiles.html",[3,0.026,4,0.026,5,0.014,7,0.154,30,0.001,32,0.167,47,0.995,101,0.023,103,0.001,104,0.001,165,0.94,217,1.317,334,1.101,336,2.434,2171,4.294,2309,5.601,11439,5.709,11500,6.167,11506,9.958,11507,9.99,11508,9.99,11509,12.172,11510,12.172,11511,8.727,11512,9.99]],["title/interfaces/IKeycloakSettings.html",[334,0.743,11513,5.64]],["body/interfaces/IKeycloakSettings.html",[3,0.025,4,0.025,5,0.013,7,0.144,30,0.001,32,0.189,47,1.025,51,4.627,87,5.66,101,0.022,103,0.001,104,0.001,138,4.973,165,0.904,217,1.235,238,6.975,334,1.031,336,2.281,5472,6.535,7853,9.555,11075,6.193,11095,8.179,11439,5.351,11500,5.779,11513,9.575,11514,9.362,11515,10.778,11516,7.828,11517,9.362]],["title/interfaces/ILearnroom.html",[334,0.743,6401,4.888]],["body/interfaces/ILearnroom.html",[3,0.026,4,0.026,5,0.014,7,0.153,30,0.001,32,0.14,95,0.128,101,0.023,103,0.001,104,0.001,148,3.68,165,0.938,334,1.31,336,2.428,687,5.517,2586,5.261,2687,6.312,4825,6.23,4826,6.4,6401,8.617,6402,8.815,6469,11.008,11518,9.206]],["title/interfaces/ILearnroomElement.html",[334,0.743,2687,4.273]],["body/interfaces/ILearnroomElement.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.165,95,0.126,101,0.022,103,0.001,104,0.001,148,3.642,165,0.929,334,1.297,336,2.387,687,6.073,2586,5.171,2687,7.456,4825,8.184,4826,8.407,6401,7.098,6402,8.724,6469,8.19,11518,9.049]],["title/interfaces/ILegacyLogger.html",[334,0.743,11519,5.893]],["body/interfaces/ILegacyLogger.html",[3,0.02,4,0.02,5,0.01,7,0.113,8,1.187,27,0.51,29,0.975,30,0.001,31,0.689,32,0.177,33,0.614,35,1.484,39,1.976,47,1.025,59,3.923,72,4.615,101,0.019,102,4.96,103,0.001,104,0.001,145,1.903,148,4.147,150,2.704,185,2.887,199,5.278,204,3.794,234,1.595,235,4.173,334,0.812,336,1.796,367,3.549,529,3.252,1052,4.007,1062,5.631,1327,4.853,1498,7.122,5400,6.502,8159,6.976,11519,8.587,11520,12.638,11521,7.372,11522,8.587,11523,8.587,11524,9.08,11525,7.372,11526,9.08,11527,10.216,11528,7.372,11529,9.08,11530,10.304,11531,7.372,11532,9.08,11533,7.372,11534,9.08,11535,7.372]],["title/interfaces/ILessonParent.html",[334,0.743,6406,4.462]],["body/interfaces/ILessonParent.html",[0,0.156,3,0.012,4,0.012,5,0.006,7,0.146,8,0.845,26,2.248,27,0.19,30,0.001,31,0.392,32,0.119,35,0.554,47,0.962,55,2.249,95,0.155,96,1.24,101,0.024,103,0,104,0,111,1.4,116,1.485,145,1.807,150,3.482,187,0.657,188,3.87,208,1.703,214,1.51,217,1.642,227,1.312,234,1.54,240,3.203,247,1.821,305,2.014,334,1.272,336,1.118,347,1.427,369,1.876,370,1.531,371,1.929,379,1.956,380,1.464,398,1.344,399,2.741,400,2.014,402,1.888,404,0.83,405,1.237,406,1.466,461,1.058,535,3.787,687,2.129,769,4.171,806,1.934,1031,1.471,1062,2.003,1278,2.483,1439,2.195,1474,3.222,1910,2.168,1932,3.583,1984,1.963,2136,1.837,2344,4.452,2674,3.891,2675,2.253,2678,3.82,2682,2.504,2687,4.434,2688,2.676,2689,4.41,2691,3.723,2692,4.376,2701,2.117,2705,4.56,2809,3.695,2880,4.058,3305,4.193,3419,5.238,3438,6.022,3544,1.906,3571,3.194,3572,3.194,4083,4.126,4239,2.869,4303,2.014,4821,2.833,4825,2.869,4826,2.947,4926,2.117,4953,6.381,4965,3.194,4982,2.573,4989,4.321,4994,6.764,5007,3.257,5013,3.257,5018,3.257,5566,7.24,6260,5.613,6263,6.022,6377,2.99,6397,2.869,6404,6.091,6405,3.085,6406,5.613,6408,4.434,6444,6.564,6445,4.705,6460,4.785,6633,2.833,6634,3.036,8265,4.967,10432,4.63,11305,4.872,11306,3.257,11307,5.304,11308,3.325,11309,4.872,11310,6.564,11311,4.967,11312,3.194,11313,4.872,11314,4.872,11315,4.872,11316,3.257,11317,4.872,11318,2.99,11319,4.872,11320,4.967,11321,3.257,11322,3.257,11323,3.325,11324,3.194,11325,3.194,11326,3.325,11327,3.325,11328,3.325,11329,5.072,11330,5.906,11331,3.194,11332,5.072,11333,3.325,11334,3.325,11335,3.325,11336,3.137,11337,3.325,11338,3.325,11339,5.072,11340,3.325,11341,3.325,11342,6.878,11343,6.148,11344,3.257,11345,3.325,11346,3.325,11347,3.325,11348,3.325,11349,3.325,11350,3.325,11351,3.325,11352,3.325,11353,3.325,11354,3.325,11355,3.325,11356,3.137,11357,3.325,11358,3.257,11536,4.589]],["title/interfaces/ILessonProperties.html",[334,0.743,11309,4.695]],["body/interfaces/ILessonProperties.html",[0,0.148,3,0.012,4,0.012,5,0.006,7,0.142,26,2.081,30,0.001,31,0.559,32,0.167,33,0.527,47,0.964,55,2.417,95,0.152,96,1.175,101,0.023,103,0,104,0,111,1.343,116,1.407,145,1.733,150,3.384,165,0.53,187,0.623,188,4.505,208,1.613,214,1.43,217,1.621,227,1.296,234,1.497,240,3.125,247,1.724,305,1.932,334,1.25,336,1.059,347,1.88,369,1.813,370,1.45,371,1.85,379,1.891,380,1.404,398,1.273,399,2.629,400,1.907,402,1.788,404,0.786,405,1.172,406,1.388,461,1.002,535,3.632,687,2.016,769,4.001,806,1.831,1031,1.393,1062,1.897,1278,2.352,1439,2.079,1474,3.132,1910,2.053,1932,3.437,1984,1.859,2136,1.74,2344,4.357,2674,3.761,2675,2.133,2678,3.664,2682,2.372,2687,4.252,2688,2.535,2689,4.263,2691,3.599,2692,4.197,2701,2.005,2705,4.374,2809,5.264,2880,3.923,3305,4.054,3419,6.507,3438,5.821,3544,1.805,3571,3.025,3572,3.025,4083,3.957,4239,2.717,4303,1.907,4821,2.683,4825,2.717,4826,2.791,4926,2.005,4953,7.085,4965,3.025,4982,2.437,4989,4.144,4994,6.657,5007,3.084,5013,3.084,5018,3.084,5566,7.085,6260,5.426,6263,5.821,6377,2.832,6397,2.717,6404,7.09,6405,2.921,6406,4.441,6408,4.252,6444,4.311,6445,4.512,6460,4.59,6633,2.683,6634,2.875,8265,4.764,10432,6.597,11305,4.673,11306,3.084,11307,6.234,11308,3.149,11309,5.71,11310,7.289,11311,4.764,11312,3.025,11313,4.673,11314,4.673,11315,4.673,11316,3.084,11317,4.673,11318,2.832,11319,4.673,11320,4.764,11321,3.084,11322,3.084,11323,3.149,11324,3.025,11325,3.025,11326,3.149,11327,3.149,11328,3.149,11329,4.864,11330,5.71,11331,3.025,11332,4.864,11333,3.149,11334,3.149,11335,3.149,11336,2.971,11337,3.149,11338,3.149,11339,4.864,11340,3.149,11341,3.149,11342,6.685,11343,5.944,11344,3.084,11345,3.149,11346,3.149,11347,3.149,11348,3.149,11349,3.149,11350,3.149,11351,3.149,11352,3.149,11353,3.149,11354,3.149,11355,3.149,11356,2.971,11357,3.149,11358,3.084]],["title/interfaces/ILoggerConfig.html",[334,0.743,11371,5.64]],["body/interfaces/ILoggerConfig.html",[3,0.028,4,0.028,5,0.015,7,0.161,30,0.001,32,0.147,47,0.945,101,0.02,103,0.001,104,0.001,165,0.966,334,1.152,336,2.548,11092,7.279,11371,10.23,11416,11.683,11537,10.457]],["title/interfaces/IMaterialProperties.html",[334,0.743,11538,5.27]],["body/interfaces/IMaterialProperties.html",[0,0.233,3,0.018,4,0.018,5,0.01,7,0.105,30,0.001,32,0.185,33,0.571,47,1.041,95,0.12,96,1.847,101,0.022,103,0.001,104,0.001,150,4.391,165,0.737,240,4.18,334,1.172,336,1.665,379,2.76,380,1.954,398,2.001,399,3.657,400,2.999,404,1.236,405,1.842,406,2.183,460,3.906,1474,4.064,1910,3.228,2789,3.608,3544,4.972,3573,4.453,6090,3.796,6427,4.672,6428,4.672,6992,4.389,11307,4.272,11310,4.389,11318,7.801,11538,8.311,11539,5.714,11540,8.874,11541,9.652,11542,9.652,11543,9.652,11544,9.652,11545,9.652,11546,9.652,11547,5.714,11548,4.952,11549,5.714,11550,5.714,11551,5.509,11552,5.714,11553,5.714,11554,5.714,11555,5.714,11556,5.714,11557,5.714,11558,5.714,11559,5.714,11560,5.714,11561,5.714,11562,5.714,11563,5.714,11564,5.714]],["title/interfaces/IMigrationOptions.html",[334,0.743,11565,5.64]],["body/interfaces/IMigrationOptions.html",[0,0.162,3,0.013,4,0.013,5,0.007,7,0.073,30,0.001,32,0.122,33,0.547,36,2.468,47,0.705,52,3.346,53,3.388,55,2.406,70,5.48,72,3.386,78,8.771,95,0.124,101,0.009,103,0,104,0,111,1.938,112,2.736,127,0.603,145,1.862,165,0.569,204,1.638,216,1.608,217,1.372,221,2.821,227,0.916,234,1.171,247,2.862,264,3.681,305,1.374,329,2.854,334,0.795,336,1.163,347,1.772,368,3.826,371,3.13,379,2.811,403,4.771,432,1.765,461,1.663,529,4.273,575,2.845,627,1.487,701,3.967,768,3.388,773,4.632,798,2.985,803,2.985,905,2.995,907,6.051,1052,1.946,1053,3.199,1236,2.877,1240,4.164,1545,1.525,1717,6.221,1724,4.044,1850,5.815,1991,2.583,2008,3.066,2171,2.052,2188,3.849,2489,2.729,2841,5.843,3091,4.987,3448,4.848,3456,3.388,3457,8.931,3458,6.588,3459,2.845,5391,3.628,5784,7.483,6326,3.849,6896,3.066,6911,3.111,7181,7.567,7652,4.399,7657,6.169,7667,7.567,8159,3.388,9822,5.119,10769,3.849,11421,6.622,11439,2.729,11500,2.947,11565,7.268,11566,4.171,11567,4.171,11568,8.125,11569,6.301,11570,6.605,11571,3.849,11572,3.849,11573,6.301,11574,4.171,11575,4.171,11576,8.696,11577,4.171,11578,4.171,11579,4.171,11580,3.73,11581,3.849,11582,4.171,11583,4.171,11584,4.171,11585,9.086,11586,3.539,11587,4.171,11588,4.171,11589,7.594,11590,3.158,11591,3.459,11592,5.021,11593,3.628,11594,4.171,11595,4.171,11596,4.171,11597,8.462,11598,4.171,11599,8.462,11600,4.171,11601,4.171,11602,8.462,11603,8.462,11604,3.849,11605,4.171,11606,4.171,11607,4.171,11608,3.539,11609,3.992,11610,5.346,11611,4.171,11612,4.171,11613,4.171,11614,4.171,11615,4.171,11616,5.226,11617,3.849,11618,3.849,11619,4.171,11620,4.171,11621,4.171,11622,4.171,11623,4.171,11624,4.171,11625,4.171,11626,4.171,11627,4.171,11628,4.171,11629,4.171,11630,3.849]],["title/interfaces/INameMatch.html",[334,0.743,11497,5.438]],["body/interfaces/INameMatch.html",[2,1.058,3,0.024,4,0.024,5,0.013,7,0.142,30,0.001,31,0.719,32,0.159,33,0.567,47,0.989,95,0.118,101,0.023,103,0.001,104,0.001,165,0.895,334,1.249,336,2.245,347,1.878,472,6.192,496,3.882,577,6.358,851,6.03,852,6.03,1031,2.953,1680,7.752,6409,5.165,7668,6.835,10330,6.412,10331,6.298,10349,7.893,10350,6.538,10351,5.552,11451,8.859,11493,7.426,11494,8.51,11495,9.481,11496,8.51,11497,9.141]],["title/interfaces/INewsProperties.html",[334,0.743,6725,5.27]],["body/interfaces/INewsProperties.html",[0,0.325,3,0.012,4,0.029,5,0.007,7,0.166,9,3.38,26,2.528,30,0.001,31,0.396,32,0.177,33,0.579,34,0.798,47,0.952,83,2.875,95,0.149,96,2.312,101,0.02,103,0,104,0,165,0.811,188,2.676,192,3.458,208,1.725,227,0.49,234,1.388,240,3.526,334,0.512,336,1.132,369,2.393,370,3.612,380,2.15,398,1.361,399,2.767,400,2.039,404,1.727,405,2.576,406,1.485,461,2.738,571,5.346,574,3.877,595,1.6,617,4.936,627,1.447,672,4.346,731,3.349,769,5.694,843,2.029,844,5.257,854,5.186,1031,2.265,1298,4.015,1299,4.433,1300,3.967,1301,4.198,1302,4.588,1474,3.675,1492,4.259,1910,3.338,1916,2.251,1932,3.618,1991,2.515,2344,4.474,2572,2.985,2620,4.987,2674,3.921,2688,2.71,2744,5.633,2789,2.453,3394,3.177,3396,2.985,3397,3.074,3399,3.298,3400,3.235,3401,3.445,3415,2.985,3547,3.124,3573,3.028,4227,1.6,4319,3.531,4320,3.367,4926,3.944,4996,3.445,5011,3.298,5554,7.843,6110,2.582,6329,3.235,6407,2.869,6409,2.606,6430,2.801,6633,2.869,6717,3.445,6718,3.746,6720,4.362,6721,3.746,6722,7.618,6723,5.492,6724,3.746,6725,8.79,6726,6.799,6727,5.808,6728,7.082,6729,7.618,6730,6.313,6731,7.289,6732,3.746,6733,5.015,6734,3.746,6735,3.531,6736,3.531,6737,4.539,6738,3.746,6739,3.746,6740,3.531,6741,3.746,6742,3.445,6743,3.746,6744,2.77,6745,2.869,6746,3.531,6747,3.746,6748,3.746,6749,6.68,6750,3.746,6751,6.894,6752,3.746,6753,3.746,6754,5.37,6755,3.531,6756,5.952,6757,3.631,6758,4.605,6759,3.531,6760,3.367,6761,3.531,6762,3.746]],["title/interfaces/INewsScope.html",[334,0.743,11380,5.438]],["body/interfaces/INewsScope.html",[3,0.021,4,0.021,5,0.011,7,0.124,26,2.412,30,0.001,32,0.189,33,0.647,34,1.385,47,0.759,83,2.428,95,0.157,101,0.024,103,0.001,104,0.001,138,4.528,165,0.823,188,4.376,192,2.406,334,1.428,336,1.966,347,2.355,379,1.859,380,1.688,696,4.161,844,4.728,1031,2.586,1474,2.739,2344,3.334,2423,4.919,2744,5.641,3606,9.11,4499,4.919,6424,4.705,6720,6.437,6722,5.979,6723,7.421,6726,5.336,6730,6.082,6731,7.333,6902,8.504,9717,5.043,10356,9.848,11372,6.503,11373,7.452,11374,7.452,11375,7.452,11376,7.452,11377,7.452,11378,5.256,11379,6.745,11380,8.407]],["title/interfaces/IPagination.html",[334,0.743,8783,5.27]],["body/interfaces/IPagination.html",[3,0.025,4,0.025,5,0.013,7,0.146,30,0.001,32,0.175,33,0.648,55,2.972,56,6.24,70,6.496,101,0.025,103,0.001,104,0.001,165,0.913,334,1.274,336,2.319,696,4.909,1031,3.05,2185,5.387,3618,9.672,6487,5.804,6775,5.875,6844,6.201,8783,9.736,8927,9.037,10057,9.325,11429,8.792,11430,8.792]],["title/interfaces/IParentInfo.html",[334,0.743,9733,5.27]],["body/interfaces/IParentInfo.html",[0,0.254,3,0.01,4,0.01,5,0.008,7,0.16,26,2.625,30,0.001,31,0.556,32,0.119,34,1.028,39,1.007,47,0.863,49,3.628,55,1.318,83,2.983,95,0.133,96,1.619,97,1.599,99,0.638,101,0.02,103,0,104,0,116,4.035,145,2.684,148,2.636,165,0.589,187,0.538,188,1.423,192,1.786,204,2.562,217,1.536,227,1.364,234,1.89,240,3.772,247,1.491,305,1.081,334,0.823,336,0.916,347,2.021,359,2.077,369,1.883,370,2.491,371,1.036,380,1.946,398,1.101,399,2.345,402,1.546,404,0.679,405,1.614,406,1.2,461,0.866,564,2.771,574,1.704,591,1.607,592,1.658,701,2.608,770,2.215,775,4.553,905,1.561,938,2.723,946,2.448,1015,4.732,1031,3.333,1291,1.599,1296,2.667,1366,4.025,1436,4.169,1565,4.732,1828,2.67,1919,2.487,2078,2.192,2079,4.169,2136,3.409,2309,2.107,2478,2.148,2618,3.066,2674,3.906,2685,2.148,2691,1.649,2701,1.733,2881,1.713,3091,1.713,3144,2.016,3305,1.857,3320,2.569,3331,2.107,3574,5.563,3684,2.107,3853,2.723,4227,3.928,4237,2.935,4239,2.349,4293,3.24,4303,1.649,4304,2.215,4982,2.107,4994,2.148,5999,2.616,6064,1.723,6082,4.45,6083,5.458,6084,4.25,6085,5.55,6092,2.616,6100,2.667,6102,2.486,6104,5.41,6110,4.148,6111,5.677,6112,3.902,6400,2.291,6424,2.192,6616,2.935,6617,4.439,6727,2.016,9493,2.785,9558,2.855,9561,4.25,9565,2.723,9599,2.616,9609,2.855,9613,2.855,9639,4.551,9642,2.723,9643,2.723,9648,2.855,9649,2.855,9689,3.029,9690,2.935,9691,4.679,9692,3.029,9693,4.679,9695,6.867,9707,6.313,9710,3.029,9711,2.935,9712,4.551,9713,2.723,9714,4.339,9715,4.339,9716,4.339,9717,2.349,9718,4.828,9719,4.828,9720,4.828,9721,4.828,9722,4.828,9723,4.828,9724,4.679,9725,5.725,9726,4.828,9727,2.855,9728,4.439,9729,2.785,9730,4.551,9731,2.855,9732,4.551,9733,6.654,9734,2.616,9735,2.935,9736,2.723,9737,2.723,9738,3.029,9739,3.029,9740,2.855,9741,2.785,9742,2.855,9743,3.029,9744,3.029,9745,3.029,9746,3.029,9747,3.029,9748,3.029,9749,3.029,9750,3.029,9751,3.029,9752,3.029,9753,7.992,9754,3.029,9755,3.029,9756,4.828,9757,3.029,9758,3.029,9759,4.828,9760,4.828,9761,4.828,9762,3.029,9763,2.935,9764,2.935,9765,3.029,9766,3.029,9767,3.029,9768,3.029,9769,4.828,9770,6.019,9771,2.935,9772,3.029,9773,4.828,9774,2.935,9775,3.029,9776,4.828,9777,3.029,9778,6.019,9779,6.019,9780,2.935,9781,3.029,9782,3.029,9783,3.029,9784,3.029,9785,3.029,9786,3.029,9787,2.935,9788,3.029,9789,3.029,9790,3.029,9791,3.029,9792,3.029]],["title/interfaces/IRelatedResourceProperties.html",[334,0.743,11545,5.438]],["body/interfaces/IRelatedResourceProperties.html",[0,0.257,3,0.02,4,0.02,5,0.011,7,0.116,30,0.001,32,0.14,33,0.595,47,1.034,95,0.128,96,2.041,101,0.023,103,0.001,104,0.001,150,3.664,165,0.788,240,4.252,334,1.233,336,1.84,379,2.302,380,2.089,398,2.212,399,3.911,400,3.314,404,1.365,405,2.036,406,2.413,460,4.316,1474,3.391,1910,3.568,2789,3.987,3544,4.148,3573,4.921,6090,4.195,6427,5.163,6428,5.163,6992,4.85,11307,4.721,11310,4.85,11318,6.508,11538,7.803,11539,6.314,11540,7.403,11541,8.052,11542,8.052,11543,8.052,11544,8.052,11545,9.6,11546,9.022,11547,6.314,11548,5.472,11549,9.957,11550,9.957,11551,6.088,11552,6.314,11553,6.314,11554,6.314,11555,6.314,11556,6.314,11557,6.314,11558,6.314,11559,6.314,11560,6.314,11561,6.314,11562,6.314,11563,6.314,11564,6.314]],["title/interfaces/IRepoLoader.html",[334,0.743,11631,5.893]],["body/interfaces/IRepoLoader.html",[0,0.208,3,0.016,4,0.016,5,0.009,7,0.094,26,2.09,30,0.001,32,0.14,33,0.431,36,1.875,49,2.378,95,0.157,99,1.035,101,0.012,103,0.001,104,0.001,105,1.138,111,2.659,112,1.936,127,0.771,165,0.681,187,0.874,200,1.987,208,2.263,216,2.416,217,1.32,221,2.36,227,1.055,234,1.4,305,1.755,334,0.672,336,1.486,347,2.041,359,3.984,369,2.407,441,6.639,450,2.509,461,2.308,1632,6.97,1854,5.032,1939,4.981,1940,3.863,1956,8.504,1958,6.639,1962,6.991,1964,4.916,1966,8.068,1968,8.272,1970,7.577,1973,7.317,2027,6.524,2029,5.327,2092,3.452,2475,5.099,2570,7.424,3115,7.255,3218,4.034,3331,4.837,3397,4.034,4628,7.889,5283,5.099,5627,8.776,5704,4.764,5985,4.099,6539,4.634,11631,9.51,11632,5.634,11633,10.056,11634,5.634,11635,4.634,11636,4.916,11637,5.634,11638,5.634,11639,5.634,11640,5.634,11641,5.634,11642,5.634,11643,5.634,11644,5.634,11645,5.634,11646,5.634,11647,5.634,11648,5.634,11649,5.634,11650,5.634,11651,5.634,11652,5.634,11653,5.634,11654,5.634,11655,5.634,11656,5.634,11657,5.634,11658,5.634,11659,5.634,11660,5.634,11661,5.634,11662,5.634,11663,5.634,11664,5.634,11665,5.634,11666,5.634,11667,5.634,11668,7.971]],["title/interfaces/IResolvedUser.html",[334,0.743,11384,5.438]],["body/interfaces/IResolvedUser.html",[3,0.021,4,0.021,5,0.011,7,0.119,26,2.798,30,0.001,31,0.436,32,0.186,34,2.243,39,2.083,47,1.02,48,3.649,83,3.86,85,4.858,94,3.694,95,0.1,99,1.319,101,0.022,103,0.001,104,0.001,165,0.803,200,2.532,334,1.25,336,1.894,347,1.584,355,3.056,369,2.25,461,2.346,491,3.814,496,3.274,522,5.905,575,4.631,591,5.15,592,5.312,770,4.581,851,5.911,852,5.911,1110,4.991,1114,3.153,1304,5.14,1916,5.834,2488,5.313,3091,5.175,3110,6.056,4227,4.416,4997,5.063,6895,6.265,6955,6.497,11381,6.789,11382,6.789,11383,9.708,11384,8.205]],["title/interfaces/IRetryOptions.html",[334,0.743,11576,5.64]],["body/interfaces/IRetryOptions.html",[0,0.164,3,0.013,4,0.013,5,0.007,7,0.074,30,0.001,32,0.102,33,0.487,36,2.477,47,0.529,52,3.373,53,3.425,55,2.581,70,4.384,72,3.414,78,8.789,95,0.125,101,0.009,103,0,104,0,111,1.948,112,2.744,127,0.61,145,1.877,165,0.574,204,1.656,216,1.618,217,1.378,221,2.83,227,0.922,234,1.18,247,2.885,264,3.705,305,1.389,329,2.87,334,0.801,336,1.176,347,0.984,368,3.847,371,3.142,379,2.819,403,4.81,432,1.784,461,1.676,529,2.129,575,2.876,627,1.503,701,3.981,768,3.425,773,4.67,798,3.017,803,3.017,905,3.02,907,6.09,1052,1.967,1053,3.225,1236,2.909,1240,4.198,1545,1.542,1717,6.255,1724,4.077,1850,5.862,1991,2.611,2008,3.099,2171,2.074,2188,3.89,2489,2.758,2841,5.881,3091,5.007,3448,4.888,3456,3.425,3457,8.949,3458,6.619,3459,2.876,5391,3.667,5784,7.498,6326,3.89,6896,3.099,6911,3.144,7181,7.609,7652,4.434,7657,6.209,7667,7.609,8159,3.425,9822,5.16,10769,3.89,11421,6.658,11439,2.758,11500,2.979,11565,6.08,11566,4.216,11567,4.216,11568,5.681,11569,6.352,11570,6.649,11571,3.89,11572,3.89,11573,6.352,11574,4.216,11575,4.216,11576,9.182,11577,8.508,11578,8.508,11579,4.216,11580,3.77,11581,3.89,11582,4.216,11583,4.216,11584,4.216,11585,9.128,11586,3.577,11587,4.216,11588,4.216,11589,7.644,11590,3.192,11591,3.497,11592,5.062,11593,3.667,11594,4.216,11595,4.216,11596,4.216,11597,8.508,11598,4.216,11599,8.508,11600,4.216,11601,4.216,11602,8.508,11603,8.508,11604,3.89,11605,4.216,11606,4.216,11607,4.216,11608,3.577,11609,4.035,11610,5.39,11611,4.216,11612,4.216,11613,4.216,11614,4.216,11615,4.216,11616,5.269,11617,3.89,11618,3.89,11619,4.216,11620,4.216,11621,4.216,11622,4.216,11623,4.216,11624,4.216,11625,4.216,11626,4.216,11627,4.216,11628,4.216,11629,4.216,11630,3.89]],["title/interfaces/IRole.html",[334,0.743,11383,5.438]],["body/interfaces/IRole.html",[3,0.022,4,0.022,5,0.012,7,0.13,26,2.842,30,0.001,31,0.697,32,0.151,34,2.288,39,2.267,47,1.006,48,3.971,83,3.235,85,5.287,94,4.02,95,0.108,99,1.435,101,0.023,103,0.001,104,0.001,165,0.848,200,2.756,334,1.302,336,2.061,347,1.724,355,3.326,369,2.376,461,2.478,491,4.151,496,3.563,522,6.426,575,5.04,591,3.617,592,3.731,770,4.985,851,4.151,852,4.151,1110,5.431,1114,3.431,1304,5.594,1916,4.097,2488,5.782,3091,5.387,3110,5.207,4227,4.068,4997,5.51,6895,6.818,6955,7.071,11381,7.388,11382,7.388,11383,9.525,11384,6.818]],["title/interfaces/IRoleProperties.html",[334,0.743,11669,5.893]],["body/interfaces/IRoleProperties.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.122,30,0.001,31,0.705,32,0.16,33,0.606,47,0.75,95,0.147,96,2.138,101,0.02,103,0.001,104,0.001,116,2.56,165,0.812,217,1.51,227,0.834,234,1.858,240,3.587,305,2.276,334,1.134,336,1.927,380,2.394,394,5.884,398,2.316,399,4.031,400,3.47,402,3.254,404,1.43,405,2.132,406,2.527,496,5.297,843,5.487,1019,4.612,1910,3.736,1916,6.446,2136,3.166,2678,4.316,2682,5.618,3110,6.243,4083,4.662,4303,3.47,4538,7.115,7006,6.375,9620,7.63,9650,8.043,11669,9.999,11670,7.306,11671,6.612,11672,6.375,11673,6.612,11674,6.375,11675,7.306,11676,6.612,11677,7.306,11678,9.51,11679,7.306,11680,8.607,11681,6.375]],["title/interfaces/ISchoolExternalToolProperties.html",[334,0.743,11682,5.64]],["body/interfaces/ISchoolExternalToolProperties.html",[0,0.273,3,0.021,4,0.021,5,0.011,7,0.123,30,0.001,32,0.171,33,0.52,55,2.684,95,0.162,96,2.172,101,0.02,103,0.001,104,0.001,165,0.821,192,3.767,200,3.758,209,4.35,240,3.259,334,0.885,336,1.958,369,2.299,380,2.176,398,2.353,399,4.073,402,3.306,404,1.453,405,2.166,406,2.567,844,5.868,1925,4.176,4293,5.628,4294,4.843,4926,5.32,5292,7.369,5625,5.702,5626,5.955,5674,6.477,5680,9.835,5682,5.822,5685,6.718,5686,5.235,6429,5.023,6430,4.843,7108,4.96,8472,8.966,10657,5.593,11472,6.477,11682,9.643,11683,7.422,11684,11.037,11685,7.422,11686,7.422,11687,7.422,11688,7.422,11689,7.422]],["title/interfaces/ISchoolProperties.html",[334,0.743,11690,5.27]],["body/interfaces/ISchoolProperties.html",[0,0.306,3,0.013,4,0.013,5,0.007,7,0.138,30,0.001,31,0.598,32,0.178,33,0.673,47,0.975,83,3.002,95,0.143,96,1.368,101,0.02,102,2.554,103,0,104,0,145,1.307,165,0.711,167,1.933,234,0.822,240,3.985,334,0.558,336,1.234,347,2.279,355,1.991,359,1.756,369,2.891,370,4.328,371,2.078,380,1.577,398,1.483,400,2.221,402,2.083,404,0.915,405,1.365,406,1.617,483,2.437,844,2.295,854,5.642,1031,1.623,1114,4.047,1278,5.397,1294,3.524,1910,2.391,1916,2.452,2136,2.026,2433,4.911,2618,4.61,2674,5.31,2678,2.763,2682,2.763,2683,5.888,3105,4.774,3106,4.226,4293,4.078,4303,2.221,4457,7.747,4926,3.476,6359,7.755,6367,7.169,6377,3.298,6423,4.596,6442,5.888,6443,3.847,6744,3.017,6745,4.653,8300,6.667,8304,3.752,8305,6.076,8317,3.752,9475,7.737,9717,3.165,9975,6.433,11086,5.888,11690,7.034,11691,4.233,11692,8.104,11693,7.728,11694,7.291,11695,7.424,11696,4.081,11697,4.081,11698,4.233,11699,4.081,11700,4.233,11701,4.233,11702,6.302,11703,4.233,11704,4.233,11705,4.233,11706,4.233,11707,4.233,11708,4.233,11709,4.233,11710,4.233,11711,7.259,11712,4.233,11713,4.233,11714,7.259,11715,4.233,11716,4.233,11717,4.233,11718,4.233,11719,4.233,11720,3.524,11721,5.888,11722,3.752,11723,4.081,11724,4.233,11725,6.302,11726,3.847,11727,4.233,11728,4.233,11729,6.302,11730,4.081,11731,6.076,11732,4.081,11733,3.593,11734,4.233]],["title/interfaces/ISchoolYearProperties.html",[334,0.743,11735,5.893]],["body/interfaces/ISchoolYearProperties.html",[0,0.304,3,0.024,4,0.024,5,0.013,7,0.137,30,0.001,31,0.732,32,0.17,47,0.924,83,4.104,95,0.143,96,2.418,101,0.021,103,0.001,104,0.001,165,0.879,214,2.944,240,3.976,334,0.986,336,2.18,380,2.329,398,2.62,400,3.925,402,3.68,404,1.617,405,2.412,406,2.858,2136,3.581,2433,7.255,4303,3.925,6369,9.458,6438,7.48,6439,6.989,9475,5.593,11735,11.084,11736,8.264,11737,10.913,11738,7.815,11739,8.264,11740,8.264]],["title/interfaces/IScopeInfo.html",[334,0.743,11741,5.27]],["body/interfaces/IScopeInfo.html",[3,0.026,4,0.026,5,0.014,7,0.148,26,2.717,30,0.001,32,0.182,47,1.014,95,0.123,99,1.635,101,0.018,103,0.001,104,0.001,165,0.919,334,1.061,336,2.347,1474,4.419,2090,4.895,2113,8.245,9369,10.169,11741,9.102,11742,8.897,11743,9.631,11744,12.025]],["title/interfaces/IServerConfig.html",[334,0.743,804,5.126]],["body/interfaces/IServerConfig.html",[3,0.021,4,0.021,5,0.011,7,0.123,30,0.001,32,0.181,47,0.971,52,4.801,55,2.528,95,0.162,101,0.022,103,0.001,104,0.001,154,4.718,165,0.817,217,1.365,334,0.878,336,1.942,347,2.569,404,1.871,802,5.776,803,4.983,804,8.731,1031,2.555,1236,6.237,1842,6.963,2171,3.426,2172,3.813,2173,3.676,2174,5.049,2182,7.364,4931,4.921,10092,5.549,10294,8.652,11091,9.04,11093,9.559,11293,9.04,11295,7.364,11368,9.607,11410,6.963,11412,6.665,11413,7.364,11416,6.963,11417,7.364,11421,7.074,11438,8.652,11442,7.364,11443,7.364,11444,7.364,11608,7.67,11745,7.971,11746,12.603,11747,12.603,11748,8.342,11749,7.364,11750,7.971,11751,10.348,11752,7.971,11753,7.364,11754,7.971,11755,7.971,11756,7.971,11757,7.971,11758,7.971,11759,7.971,11760,6.665,11761,7.971,11762,7.971,11763,5.908]],["title/interfaces/IShareTokenProperties.html",[334,0.743,11764,5.64]],["body/interfaces/IShareTokenProperties.html",[0,0.238,3,0.019,4,0.019,5,0.01,7,0.165,26,2.739,30,0.001,32,0.174,33,0.622,34,1.199,49,5.118,83,3.473,95,0.155,96,2.563,97,2.974,101,0.018,103,0.001,104,0.001,145,2.447,165,0.748,199,2.668,227,0.999,234,1.539,240,3.781,247,2.772,334,0.77,336,1.703,351,5.963,369,2.379,370,3.591,380,1.984,385,8.11,398,2.047,399,3.713,402,2.875,404,1.263,405,1.884,406,2.233,411,5.31,412,5.843,421,5.459,422,5.843,701,2.441,1031,3.45,2674,4.348,3305,3.453,3333,5.633,3574,5.884,4294,4.212,4714,7.19,4720,5.843,5664,7.448,5692,5.843,5693,5.633,5694,5.843,6102,4.623,6111,6.004,6368,4.864,9493,5.18,9561,4.959,9566,5.843,9642,5.064,9643,5.064,9740,5.31,9742,5.31,11764,8.998,11765,6.456,11766,6.456,11767,9.727,11768,8.249,11769,9.426,11770,6.456,11771,4.623,11772,4.553,11773,6.456,11774,6.456]],["title/interfaces/IStorageProviderProperties.html",[334,0.743,11775,5.893]],["body/interfaces/IStorageProviderProperties.html",[0,0.287,3,0.022,4,0.022,5,0.012,7,0.129,30,0.001,32,0.18,33,0.536,47,1.026,95,0.151,96,2.276,101,0.02,103,0.001,104,0.001,165,0.846,240,4.017,334,0.928,336,2.052,369,1.862,370,2.81,380,2.243,398,2.467,399,4.198,400,3.695,402,3.465,404,1.523,405,2.27,406,2.691,2674,3.862,6165,8.923,6167,8.923,6168,9.122,7806,6.242,11116,7.357,11775,10.302,11776,7.78,11777,11.842,11778,8.963,11779,7.78,11780,7.78,11781,7.78,11782,7.78,11783,7.78,11784,7.78,11785,7.78,11786,7.78,11787,7.78]],["title/interfaces/ISubmissionProperties.html",[334,0.743,11788,5.64]],["body/interfaces/ISubmissionProperties.html",[0,0.165,3,0.013,4,0.013,5,0.007,7,0.161,26,2.186,30,0.001,32,0.179,33,0.63,34,0.833,47,0.875,55,2.149,62,2.831,72,2.279,95,0.151,96,1.312,101,0.014,103,0,104,0,111,1.461,116,3.563,145,2.267,165,0.771,187,0.695,192,3.124,208,1.802,217,1.712,227,1.239,234,1.425,240,3.449,305,1.397,334,0.535,336,1.183,347,2.598,369,2.16,370,3.259,371,2.013,380,1.528,394,4.175,398,1.422,399,2.86,400,2.13,402,1.997,404,0.878,405,1.309,406,1.551,461,2.868,738,2.802,844,4.99,957,2.748,1218,3.445,1240,2.802,1253,2.239,1439,3.494,1910,2.293,1991,2.627,2571,3.379,2674,4.804,2678,2.649,2682,2.649,2691,5.531,2692,3.035,2881,3.33,3106,6.403,3396,3.118,3397,3.211,3684,2.722,3737,7.042,3742,7.042,3750,6.107,3752,6.107,4227,1.672,4926,3.369,6110,4.058,6404,7.3,6405,3.263,6407,2.997,6409,2.722,6425,3.518,6429,3.035,6430,2.926,6737,3.118,6793,3.379,6911,3.163,8686,7.96,11324,3.379,11325,3.379,11330,5.085,11331,3.379,11548,7.591,11788,7.342,11789,4.485,11790,9.678,11791,9.549,11792,4.241,11793,4.485,11794,4.485,11795,4.485,11796,4.485,11797,4.485,11798,4.485,11799,3.914,11800,4.485,11801,4.485,11802,4.485,11803,4.059,11804,4.485,11805,4.485,11806,4.485,11807,4.485,11808,4.485,11809,4.485,11810,9.678,11811,4.485,11812,4.485,11813,4.485,11814,4.485,11815,4.485,11816,4.485,11817,9.025,11818,4.485,11819,6.509,11820,3.914,11821,10.168,11822,6.748,11823,4.059,11824,6.748,11825,4.241,11826,3.518,11827,3.518,11828,3.914,11829,4.485,11830,4.485,11831,4.485,11832,4.485,11833,6.748,11834,6.748,11835,4.485,11836,4.485,11837,4.485,11838,4.485,11839,6.509,11840,3.914,11841,4.059,11842,6.748]],["title/interfaces/ISystemProperties.html",[334,0.743,11843,5.126]],["body/interfaces/ISystemProperties.html",[0,0.316,3,0.012,4,0.012,5,0.006,7,0.068,26,1.413,30,0.001,32,0.177,33,0.642,47,1.036,83,2.485,95,0.119,96,1.188,101,0.019,103,0,104,0,150,3.883,165,0.534,208,1.631,216,0.813,240,4.375,277,1.759,334,0.484,336,1.071,347,0.896,359,1.524,369,2.931,370,4.423,371,1.211,379,1.013,380,1.728,398,1.287,399,2.651,400,1.928,402,1.808,404,0.794,405,1.184,406,1.404,496,1.851,722,1.938,775,2.679,783,2.648,1031,2.647,1114,1.783,1252,2.618,1576,2.648,1659,3.118,1691,2.712,2113,2.783,2138,3.256,2618,3.466,2621,2.075,4293,3.663,4331,4.804,4556,3.466,5236,2.747,5472,3.345,5602,5.021,5621,2.783,5622,3.004,6090,3.761,6359,2.679,6992,2.822,7078,2.953,7134,4.08,8597,2.953,9975,2.441,10947,7.799,11026,3.256,11027,3.256,11028,3.256,11029,3.339,11072,3.004,11075,2.906,11077,3.004,11080,3.004,11083,2.679,11087,2.953,11477,3.339,11590,2.906,11733,3.118,11843,6.275,11844,3.542,11845,6.63,11846,8.799,11847,8.453,11848,6.265,11849,6.976,11850,6.53,11851,2.906,11852,2.906,11853,3.542,11854,4.628,11855,5.018,11856,3.432,11857,5.018,11858,3.339,11859,3.339,11860,3.339,11861,3.339,11862,3.432,11863,3.339,11864,3.339,11865,3.339,11866,3.432,11867,5.018,11868,3.432,11869,3.339,11870,3.432,11871,3.339,11872,3.339,11873,3.339,11874,3.432,11875,4.628,11876,3.542,11877,3.542,11878,3.542,11879,3.542,11880,3.542,11881,3.542,11882,3.542,11883,3.542,11884,3.542,11885,3.542,11886,3.542,11887,3.542,11888,3.432,11889,3.542,11890,3.542,11891,3.542,11892,3.542,11893,3.542,11894,3.542,11895,3.542,11896,3.542,11897,3.542,11898,3.542,11899,3.542,11900,3.542,11901,3.542,11902,3.542,11903,3.542,11904,3.542,11905,3.542,11906,3.256,11907,3.542,11908,3.542,11909,3.542,11910,3.542,11911,3.542,11912,3.542,11913,3.542,11914,3.542,11915,3.542,11916,3.542,11917,3.542,11918,3.542,11919,3.542,11920,3.542,11921,3.339,11922,3.542,11923,3.256,11924,3.432,11925,3.339,11926,3.432,11927,3.339,11928,3.339,11929,3.432,11930,3.339,11931,3.432,11932,3.339,11933,3.184,11934,3.184,11935,3.184,11936,3.256,11937,3.339,11938,3.542,11939,3.339,11940,3.542,11941,3.542,11942,3.542,11943,3.542,11944,3.542,11945,3.339,11946,3.432,11947,3.339,11948,3.432]],["title/interfaces/ITargetGroupProperties.html",[334,0.743,11546,5.438]],["body/interfaces/ITargetGroupProperties.html",[0,0.253,3,0.02,4,0.02,5,0.01,7,0.114,30,0.001,32,0.156,33,0.633,47,1.036,95,0.127,96,2.008,101,0.023,103,0.001,104,0.001,150,3.623,165,0.779,240,4.24,334,1.223,336,1.81,379,2.277,380,2.066,398,2.175,399,3.868,400,3.259,404,1.343,405,2.002,406,2.373,460,6.761,1474,3.353,1910,3.508,2789,3.921,3544,4.102,3573,4.839,6090,4.126,6427,5.077,6428,5.077,6992,4.77,11307,4.643,11310,4.77,11318,6.436,11538,7.717,11539,6.209,11540,7.321,11541,7.963,11542,7.963,11543,7.963,11544,7.963,11545,8.947,11546,9.537,11547,9.891,11548,8.572,11549,6.209,11550,6.209,11551,5.987,11552,6.209,11553,6.209,11554,6.209,11555,6.209,11556,6.209,11557,6.209,11558,6.209,11559,6.209,11560,6.209,11561,6.209,11562,6.209,11563,6.209,11564,6.209]],["title/interfaces/ITask.html",[334,0.743,11949,5.27]],["body/interfaces/ITask.html",[3,0.021,4,0.021,5,0.011,7,0.123,30,0.001,31,0.683,32,0.181,33,0.667,47,0.991,55,2.535,83,3.893,95,0.103,99,1.361,101,0.023,103,0.001,104,0.001,111,1.604,165,0.82,188,4.363,192,2.391,334,1.391,336,1.954,347,2.637,379,2.81,404,2.083,461,2.656,844,4.71,2675,5.099,2689,5.399,2701,3.698,2881,4.736,3242,6.486,3245,6.434,3684,4.496,3714,7.828,3733,5.304,3737,5.39,3738,5.582,3739,5.304,3740,5.304,3741,5.691,3742,5.39,4955,6.261,6727,4.302,7793,5.079,11949,9.864,11950,6.464,11951,8.832,11952,5.943,11953,5.943,11954,5.691,11955,5.943,11956,5.81]],["title/interfaces/ITaskCreate.html",[334,0.743,11953,5]],["body/interfaces/ITaskCreate.html",[3,0.022,4,0.022,5,0.012,7,0.129,30,0.001,31,0.471,32,0.165,33,0.62,47,0.998,55,2.592,83,3.222,95,0.108,99,1.426,101,0.024,103,0.001,104,0.001,111,1.681,165,0.845,188,4.461,192,2.506,334,1.411,336,2.048,347,2.67,379,1.937,404,2.243,461,2.716,844,4.854,2675,6.289,2689,5.564,2701,3.876,2881,4.881,3242,5.697,3245,4.436,3684,4.712,3714,5.397,3733,5.559,3737,5.649,3738,5.85,3739,5.559,3740,5.559,3741,5.964,3742,5.649,4955,7.722,6727,4.509,7793,5.323,11949,10.008,11950,6.775,11951,6.089,11952,6.229,11953,7.935,11954,5.964,11955,6.229,11956,6.089]],["title/interfaces/ITaskParent.html",[334,0.743,6408,4.273]],["body/interfaces/ITaskParent.html",[0,0.183,3,0.009,4,0.009,5,0.005,7,0.176,8,0.648,26,1.945,27,0.136,30,0.001,31,0.184,32,0.144,34,0.922,35,0.396,47,0.716,55,1.181,83,2.612,95,0.149,96,0.887,101,0.017,103,0,104,0,111,2.393,116,3.697,145,2.032,148,2.436,165,0.621,167,1.253,187,0.47,188,3.287,192,0.979,214,1.08,217,1.785,227,1.357,234,1.666,240,3.329,247,2.13,305,1.545,334,0.592,336,0.8,347,2.281,369,2.416,370,3.11,371,3.148,379,0.757,380,1.123,398,0.961,399,2.103,400,1.44,402,1.35,404,0.593,405,0.885,406,1.049,461,2.72,564,3.651,687,1.523,728,1.285,738,1.895,783,1.978,806,2.262,844,3.089,905,3.269,957,1.858,1019,1.914,1062,1.433,1218,2.329,1439,1.57,1661,2.139,1828,1.464,1910,1.551,1919,1.363,1932,2.749,2078,1.914,2136,1.314,2526,2.079,2674,3.981,2675,3.864,2678,2.93,2682,1.791,2687,3.401,2688,1.914,2689,2.791,2690,2.329,2691,4.661,2701,1.514,2705,5.656,2881,3.958,3106,1.84,3242,2.857,3245,2.834,3305,4.606,3396,2.108,3418,4.743,3684,5.515,3685,2.744,3714,2.108,3733,5.743,3737,3.609,3738,6.043,3739,5.207,3740,6.165,3741,6.614,3742,3.609,3753,6.346,4083,1.935,4227,1.13,4239,2.052,4303,1.44,4825,2.052,4826,2.108,4926,2.476,4955,1.978,6364,4.58,6397,2.052,6400,3.274,6408,4.316,6409,1.84,6421,2.646,6425,2.378,6427,2.244,6428,2.244,6429,2.052,6430,1.978,6444,5.056,6633,2.026,6634,2.171,6704,2.564,6727,1.761,6737,2.108,6742,2.433,7652,3.274,7793,4.986,7948,2.378,9401,2.052,10657,2.285,11336,2.244,11356,2.244,11490,2.646,11799,2.646,11819,5.835,11820,2.646,11839,5.835,11840,2.646,11951,2.378,11954,3.81,11955,2.433,11956,2.378,11957,2.744,11958,3.282,11959,2.867,11960,2.744,11961,2.867,11962,2.867,11963,2.867,11964,2.867,11965,2.867,11966,5.952,11967,5.493,11968,5.323,11969,2.867,11970,2.867,11971,2.744,11972,2.867,11973,2.867,11974,2.867,11975,2.744,11976,8.142,11977,2.867,11978,2.494,11979,2.646,11980,4.691,11981,6.877,11982,4.329,11983,6.877,11984,2.867,11985,2.867,11986,2.867,11987,4.691,11988,2.867,11989,2.867,11990,2.867,11991,2.867,11992,2.867,11993,2.867,11994,2.867,11995,2.867,11996,2.867,11997,2.867,11998,2.867,11999,2.867,12000,4.691,12001,2.867,12002,2.867,12003,2.494,12004,2.867,12005,2.867,12006,2.867,12007,2.867,12008,2.867,12009,2.867,12010,4.691,12011,2.867,12012,2.867,12013,4.691,12014,2.867,12015,4.691,12016,2.564,12017,2.744,12018,2.867,12019,6.877,12020,5.952,12021,4.489,12022,2.646,12023,5.952,12024,2.867,12025,5.952,12026,2.744,12027,4.691,12028,2.867,12029,2.867,12030,2.867,12031,5.952,12032,2.867,12033,4.691,12034,2.744,12035,2.867,12036,2.867,12037,6.877,12038,2.867,12039,2.867,12040,2.867,12041,2.867,12042,2.867,12043,2.867,12044,2.867,12045,4.691,12046,2.867,12047,2.867,12048,4.691,12049,2.867,12050,2.867,12051,2.867,12052,2.867,12053,2.744,12054,2.867,12055,6.877,12056,2.867,12057,2.867,12058,2.867,12059,2.867,12060,2.867,12061,2.867,12062,2.867,12063,2.867,12064,2.867,12065,2.744]],["title/interfaces/ITaskProperties.html",[334,0.743,11954,4.787]],["body/interfaces/ITaskProperties.html",[3,0.02,4,0.02,5,0.011,7,0.115,30,0.001,31,0.42,32,0.188,33,0.689,47,0.924,55,2.451,83,2.987,95,0.096,99,1.27,101,0.023,103,0.001,104,0.001,111,2.374,165,0.783,188,4.979,192,3.538,334,1.36,336,1.823,347,2.78,379,1.725,404,2.145,461,2.985,844,5.379,2675,4.873,2689,6.166,2701,5.472,2881,5.41,3242,5.283,3245,3.95,3684,6.652,3714,4.805,3733,4.949,3737,5.029,3738,5.208,3739,4.949,3740,4.949,3741,5.31,3742,5.029,4955,5.983,6727,6.366,7793,7.516,11949,9.646,11950,6.032,11951,5.421,11952,5.546,11953,5.546,11954,7.045,11955,8.794,11956,8.597]],["title/interfaces/ITaskStatus.html",[334,0.743,3733,4.462]],["body/interfaces/ITaskStatus.html",[3,0.021,4,0.021,5,0.011,7,0.123,30,0.001,31,0.451,32,0.185,47,0.942,55,2.968,83,3.13,95,0.103,99,1.364,101,0.023,103,0.001,104,0.001,111,1.607,165,0.821,188,4.368,192,2.396,334,1.392,336,1.958,347,2.81,379,1.852,404,2.085,461,2.659,844,4.716,2675,5.106,2689,5.406,2701,3.706,2881,4.742,3242,5.535,3245,4.242,3684,4.505,3714,5.16,3733,6.88,3737,8.199,3738,8.491,3739,8.069,3740,8.069,3741,8.656,3742,8.199,4955,6.269,6727,4.311,7793,5.09,11949,9.529,11950,6.477,11951,5.822,11952,5.955,11953,5.955,11954,5.702,11955,5.955,11956,5.822]],["title/interfaces/ITaskUpdate.html",[334,0.743,11952,5]],["body/interfaces/ITaskUpdate.html",[3,0.022,4,0.022,5,0.012,7,0.129,30,0.001,31,0.471,32,0.165,33,0.62,47,0.998,55,2.592,83,3.222,95,0.108,99,1.426,101,0.024,103,0.001,104,0.001,111,1.681,165,0.845,188,4.461,192,2.506,334,1.411,336,2.048,347,2.67,379,1.937,404,2.243,461,2.716,844,4.854,2675,6.289,2689,5.564,2701,3.876,2881,4.881,3242,5.697,3245,4.436,3684,4.712,3714,5.397,3733,5.559,3737,5.649,3738,5.85,3739,5.559,3740,5.559,3741,5.964,3742,5.649,4955,7.722,6727,4.509,7793,5.323,11949,10.008,11950,6.775,11951,6.089,11952,7.935,11953,6.229,11954,5.964,11955,6.229,11956,6.089]],["title/interfaces/ITeamProperties.html",[334,0.743,12066,5.27]],["body/interfaces/ITeamProperties.html",[0,0.327,3,0.019,4,0.019,5,0.01,7,0.109,30,0.001,31,0.681,32,0.135,33,0.48,39,1.907,47,0.847,62,4.148,72,3.339,95,0.156,96,2.594,101,0.022,103,0.001,104,0.001,111,1.423,144,2.968,165,0.757,192,2.861,227,1.145,234,1.154,240,3.007,334,1.057,336,1.733,369,1.572,380,2.007,398,2.083,399,3.757,400,3.121,402,2.926,404,1.286,405,2.587,406,2.272,415,5.926,461,2.997,496,5.27,728,4.252,844,5.67,1925,3.696,2136,2.847,2222,5.404,2618,5.56,2674,3.261,3547,4.78,4227,2.449,4293,5.192,4303,3.121,4304,6.401,4307,8.483,4926,5.599,6407,4.39,6409,3.987,6430,4.286,6720,4.39,6758,4.634,9736,5.153,9737,5.153,10740,5.271,10741,5.556,11378,4.634,12066,8.483,12067,5.946,12068,8.796,12069,9.049,12070,5.556,12071,7.735,12072,5.946,12073,5.946,12074,5.946,12075,5.946,12076,5.946,12077,5.556,12078,5.946,12079,5.946]],["title/interfaces/ITeamUserProperties.html",[334,0.743,12071,5.438]],["body/interfaces/ITeamUserProperties.html",[0,0.325,3,0.019,4,0.019,5,0.01,7,0.108,30,0.001,31,0.535,32,0.152,39,1.89,47,0.695,62,4.111,72,3.31,95,0.155,96,2.578,101,0.022,103,0.001,104,0.001,111,1.41,144,2.955,165,0.753,192,3.609,227,1.139,234,1.144,240,2.989,334,1.051,336,1.718,369,1.558,380,1.995,398,2.065,399,3.735,400,3.093,402,2.9,404,1.274,405,2.571,406,2.252,415,5.9,461,3.135,496,5.652,728,4.233,844,5.882,1925,3.664,2136,2.822,2222,5.357,2618,5.535,2674,3.233,3547,4.738,4227,2.427,4293,5.161,4303,3.093,4304,6.372,4307,8.445,4926,5.582,6407,4.352,6409,3.952,6430,4.249,6720,4.352,6758,4.593,9736,5.108,9737,5.108,10740,5.225,10741,5.507,11378,4.593,12066,7.451,12067,5.894,12068,6.911,12069,8.683,12070,5.507,12071,8.715,12072,5.894,12073,5.894,12074,5.894,12075,5.894,12076,5.894,12077,5.507,12078,5.894,12079,5.894]],["title/interfaces/IToolFeatures.html",[334,0.743,8359,5.126]],["body/interfaces/IToolFeatures.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.134,30,0.001,32,0.182,47,0.917,55,2.77,95,0.112,101,0.023,103,0.001,104,0.001,108,5.052,165,0.867,217,1.154,329,2.578,334,0.964,336,2.132,347,2.843,627,2.725,2171,3.761,2172,4.186,2173,4.036,3898,4.776,8359,9.121,8361,8.346,8583,11.329,8616,11.329,11092,6.092,12080,11.98,12081,11.98,12082,11.98,12083,8.084,12084,7.317,12085,8.084,12086,8.084,12087,8.084,12088,8.084,12089,7.317]],["title/interfaces/IToolLaunchParams.html",[155,5.126,334,0.743]],["body/interfaces/IToolLaunchParams.html",[3,0.025,4,0.025,5,0.013,7,0.146,30,0.001,32,0.174,95,0.159,101,0.018,103,0.001,104,0.001,108,5.468,139,7.879,140,7.802,155,8.765,158,6.907,165,0.91,192,2.825,199,3.617,200,4.053,201,6.514,210,6.083,334,1.044,336,2.308,12090,8.751,12091,9.473]],["title/interfaces/IToolLaunchStrategy.html",[212,5.64,334,0.743]],["body/interfaces/IToolLaunchStrategy.html",[3,0.024,4,0.024,5,0.013,7,0.139,8,1.352,26,2.656,27,0.465,29,0.888,30,0.001,31,0.628,32,0.157,33,0.56,35,1.352,36,2.434,39,2.42,95,0.156,99,1.532,101,0.017,103,0.001,104,0.001,108,7.027,122,9.027,123,9.027,155,9.672,160,9.223,170,7.276,171,9.027,175,8.474,185,4.767,208,3.35,209,3.108,210,8.174,211,7.276,212,9.362,334,0.994,336,2.199,12090,11.246,12092,9.026,12093,9.026,12094,11.198,12095,9.026]],["title/interfaces/IUserConfig.html",[334,0.743,11748,5.438]],["body/interfaces/IUserConfig.html",[3,0.028,4,0.028,5,0.015,7,0.161,30,0.001,32,0.147,47,0.945,101,0.02,103,0.001,104,0.001,165,0.966,334,1.152,336,2.548,11092,7.279,11748,9.864,11753,12.354,12096,10.457]],["title/interfaces/IUserProperties.html",[334,0.743,12097,5.438]],["body/interfaces/IUserProperties.html",[0,0.169,3,0.013,4,0.013,5,0.007,7,0.197,30,0.001,32,0.181,33,0.664,34,0.853,47,1.008,83,3.812,95,0.136,96,1.343,101,0.017,103,0,104,0,116,1.608,165,0.908,192,3.529,214,1.635,217,1.174,227,0.524,234,1.445,240,4.141,305,1.43,334,0.819,336,1.211,347,2.014,369,2.831,370,4.273,380,1.863,394,2.84,398,1.455,399,2.911,400,2.18,402,2.044,404,0.898,405,1.339,406,1.587,461,1.145,496,4.458,844,5.034,851,5.45,852,5.45,853,5.643,854,5.603,1019,2.898,1031,1.593,1291,4.206,1910,2.347,1916,4.314,1917,4.341,2674,4.083,2678,2.712,2682,4.056,3091,2.265,3110,5.733,4083,2.929,4220,7.365,4221,8.04,4227,1.711,4232,6.941,4315,3.882,4316,3.683,4926,3.428,6400,4.533,6407,3.067,6429,3.106,6430,2.995,6744,2.961,6745,3.067,7155,5.648,9336,3.34,9337,3.6,9338,3.34,9339,3.6,9340,3.776,9341,4.005,9562,8.04,9624,4.005,9628,4.154,11243,4.005,11244,4.005,11245,4.005,11482,4.154,11671,4.154,11672,4.005,11673,4.154,11674,4.005,11676,4.154,11680,6.214,11681,4.005,11694,7.233,11721,3.882,11722,3.683,12070,3.882,12097,7.178,12098,4.59,12099,8.266,12100,8.04,12101,7.842,12102,8.266,12103,6.866,12104,6.866,12105,6.866,12106,4.154,12107,4.154,12108,4.59,12109,4.154,12110,4.59,12111,4.154,12112,4.59,12113,4.154,12114,4.59,12115,4.154,12116,4.59,12117,4.59,12118,6.866]],["title/interfaces/IVideoConferenceSettings.html",[334,0.743,12119,5.64]],["body/interfaces/IVideoConferenceSettings.html",[3,0.026,4,0.026,5,0.014,7,0.149,30,0.001,32,0.176,47,0.915,95,0.124,101,0.022,103,0.001,104,0.001,165,0.923,217,1.279,334,1.069,336,2.364,347,2.561,1415,7.864,2090,4.93,2106,7.872,2290,10.519,7869,5.389,11095,8.475,12119,9.784,12120,9.701,12121,10.909,12122,8.475,12123,9.701]],["title/classes/IdParams.html",[0,0.23,12124,5.893]],["body/classes/IdParams.html",[0,0.396,2,1.106,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,34,2.288,47,0.848,95,0.149,101,0.018,103,0.001,104,0.001,165,0.919,361,6.415,364,1.785,368,4.602,369,2.576,370,3.887,371,3.212,374,3.077,376,2.259,379,2.22,467,3.132,470,4.909,479,7.139,3544,4.839,5382,6.659,12124,10.179,12125,9.631,12126,9.631]],["title/interfaces/IdToken.html",[334,0.743,348,4.534]],["body/interfaces/IdToken.html",[3,0.024,4,0.024,5,0.013,7,0.137,30,0.001,31,0.711,32,0.187,33,0.692,39,3.402,47,1.034,101,0.021,103,0.001,104,0.001,165,0.879,334,1.227,336,2.18,348,7.485,350,7.48,361,4.925,853,6.449,4227,4.369,5602,4.482,6461,8.037,10670,10.608,10671,8.264,10672,7.815,10673,11.084]],["title/classes/IdTokenCreationLoggableException.html",[0,0.23,12127,5.893]],["body/classes/IdTokenCreationLoggableException.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,8,1.303,27,0.448,29,0.675,30,0.001,31,0.477,32,0.151,33,0.425,34,1.461,35,1.028,39,3.341,47,0.957,59,2.642,95,0.138,101,0.016,103,0.001,104,0.001,111,1.703,127,1.075,163,2.684,187,1.219,209,2.93,214,3.552,215,2.755,216,1.996,217,1.122,227,0.897,351,6.159,361,6.524,404,1.951,406,2.719,415,4.645,511,4.357,1327,4.681,1439,5.668,1542,5.531,1545,2.719,1547,6.201,3469,9.237,5469,7.862,5472,5.856,7629,6.308,8137,6.159,8537,5.017,8538,5.254,11854,5.818,12127,9.428,12128,11.851,12129,8.511,12130,8.511,12131,8.511,12132,8.511,12133,7.116,12134,7.862]],["title/injectables/IdTokenService.html",[105,0.89,12135,5.64]],["body/injectables/IdTokenService.html",[0,0.184,3,0.014,4,0.014,5,0.008,7,0.083,8,0.955,27,0.475,29,0.817,30,0.001,31,0.663,32,0.16,33,0.514,34,0.927,35,1.13,36,2.237,39,2.12,47,0.984,95,0.161,99,0.917,101,0.01,103,0,104,0,105,1.043,107,1.293,111,2.603,112,2.568,127,0.999,137,6.777,145,2.828,158,3.962,165,0.624,187,0.774,201,2.829,209,2.723,216,2.187,217,1.509,221,2.698,227,1.085,234,0.877,305,1.555,334,0.595,348,3.631,351,3.908,361,6.509,450,2.223,461,1.823,661,3.941,738,4.565,853,2.746,1680,3.693,1919,2.244,1973,7.947,1993,3.693,2171,2.322,2172,2.584,2173,2.492,3469,4.004,3898,2.948,4227,1.86,4535,4.719,4537,4.719,4560,4.105,4561,2.875,4809,4.105,5382,3.088,5472,5.843,5602,2.707,6143,3.631,6461,5.925,6720,7.065,6938,6.201,6949,4.517,7038,5.504,7127,3.574,7601,4.105,8382,4.517,8712,6.094,10474,7.307,10670,9.16,10672,4.719,10673,8.171,11378,6.094,12127,4.719,12135,6.611,12136,10.922,12137,4.991,12138,9.353,12139,7.907,12140,7.907,12141,7.907,12142,5.402,12143,9.227,12144,8.984,12145,7.21,12146,7.305,12147,7.907,12148,5.402,12149,7.907,12150,5.402,12151,7.907,12152,5.402,12153,5.402,12154,5.402,12155,4.355,12156,4.719,12157,5.402,12158,5.402,12159,5.402,12160,5.402,12161,5.402,12162,5.402,12163,5.402,12164,5.402,12165,5.402,12166,7.907,12167,4.991,12168,4.517,12169,4.991,12170,5.402,12171,5.402,12172,5.402,12173,4.105,12174,7.907,12175,5.402,12176,5.402,12177,5.402,12178,5.402,12179,5.402]],["title/modules/IdentityManagementModule.html",[425,1.808,817,5.27]],["body/modules/IdentityManagementModule.html",[0,0.271,3,0.021,4,0.021,5,0.011,30,0.001,95,0.173,101,0.015,103,0.001,104,0.001,187,1.14,425,3.077,427,2.941,428,3.102,429,3.199,430,3.184,431,3.156,432,3.821,433,4.329,442,4.155,443,3.129,444,3.05,449,4.155,773,5.109,788,10.74,803,6.461,817,10.754,836,5.966,1266,4.547,2841,8.168,3956,6.946,7720,7.349,7721,8.641,8104,9.353,8221,7.853,11439,4.547,11440,6.215,12180,7.955,12181,7.955,12182,7.955,12183,10.084,12184,10.406,12185,10.408,12186,7.349,12187,8.641,12188,6.413,12189,6.95,12190,7.955,12191,8.641,12192,10.335,12193,8.641]],["title/classes/IdentityManagementOauthService.html",[0,0.23,12185,5.27]],["body/classes/IdentityManagementOauthService.html",[0,0.25,2,0.844,3,0.019,4,0.019,5,0.01,7,0.113,8,1.184,9,6.407,27,0.458,29,0.583,30,0.001,31,0.412,32,0.103,33,0.367,35,1.618,36,2.744,47,0.954,51,5.821,78,9.234,87,6.239,94,5.598,95,0.094,101,0.014,103,0.001,104,0.001,145,2.531,154,6.046,204,2.52,264,4.152,369,2.168,371,2.703,379,1.693,494,5.91,803,7.363,1240,6.799,1289,6.297,1666,6.826,1683,6.943,2340,5.921,2500,7.575,5382,7.578,7853,7.268,10770,8.566,11439,6.732,11440,9.201,11591,8.534,12185,7.66,12194,6.786,12195,10.881,12196,10.881,12197,9.058,12198,7.345,12199,7.345,12200,9.058,12201,7.345,12202,5.581,12203,7.345]],["title/classes/IdentityManagementService.html",[0,0.23,788,5.438]],["body/classes/IdentityManagementService.html",[0,0.126,2,0.424,3,0.01,4,0.01,5,0.005,7,0.057,8,0.714,9,6.482,27,0.481,29,0.936,30,0.001,31,0.681,32,0.168,33,0.59,34,2.17,35,1.559,36,2.821,39,2.638,47,0.997,51,4.17,55,1.3,56,1.779,59,1.834,70,1.852,85,6.71,87,6.004,94,6.597,95,0.047,98,2.202,99,0.627,101,0.011,103,0,104,0,144,3.226,145,1.906,163,1.864,167,2.256,234,1.369,264,5.309,347,0.753,379,2.616,403,7.1,461,2.616,484,5.163,485,5.163,493,4.491,500,5.768,511,3.026,524,6.327,549,7.471,693,3.225,701,3.437,728,3.854,750,2.887,788,4.764,803,5.275,883,2.478,1005,4.38,1121,7.471,1295,6.814,1473,4.822,1666,4.114,1924,6.411,1925,3.071,2450,3.743,2835,5.028,2841,5.671,2951,5.028,4083,6.327,4483,5.163,4638,4.617,7722,3.228,11153,8.652,11168,5.163,11184,7.054,11439,6.746,11440,9.221,12204,5.459,12205,5.459,12206,5.459,12207,5.459,12208,7.794,12209,6.822,12210,6.822,12211,5.459,12212,5.459,12213,5.459,12214,9.544,12215,3.695,12216,10.733,12217,5.91,12218,3.695,12219,5.459,12220,3.695,12221,8.438,12222,5.459,12223,5.459,12224,3.695,12225,5.459,12226,5.91,12227,3.695,12228,5.459,12229,7.794,12230,3.695,12231,3.695,12232,3.414,12233,9.915,12234,3.695,12235,8.524,12236,10.852,12237,3.414,12238,7.794,12239,3.695,12240,5.91,12241,3.695,12242,5.91,12243,3.695,12244,2.887]],["title/entities/ImportUser.html",[380,1.411,11459,4.787]],["body/entities/ImportUser.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,27,0.509,30,0.001,31,0.373,32,0.178,33,0.458,47,0.957,49,1.677,95,0.135,96,1.162,101,0.017,103,0,104,0,111,0.86,144,2.227,145,2.103,165,0.828,167,2.542,192,3.373,200,1.401,214,1.415,217,1.074,227,0.702,234,0.698,240,3.893,247,3.232,305,1.237,329,2.4,334,0.734,347,1.661,355,2.618,364,2.273,369,2.746,370,3.061,371,1.835,380,1.393,381,1.415,394,5.671,398,1.259,399,2.607,400,1.887,402,1.769,404,0.777,405,1.159,406,1.374,444,1.648,461,2.896,472,2.89,575,2.562,577,5.143,701,1.502,728,2.607,844,3.694,851,4.503,852,4.503,853,5.334,854,5.007,905,1.786,1031,2.94,1114,4.441,1277,2.218,1871,6.125,1919,1.786,2298,2.591,2324,3.756,2501,7.19,2502,3.595,2672,5.093,2674,5.019,2676,6.97,2684,3.115,2752,3.756,2951,3.968,3110,3.225,4227,2.292,4232,6.203,4315,3.359,4316,3.187,4331,4.725,4538,2.434,4712,3.267,4926,3.758,5868,3.115,6388,3.756,6400,4.06,6407,2.654,6409,2.411,6429,2.688,6627,4.475,6737,4.276,6744,2.562,6745,2.654,7339,2.993,7430,4.725,8317,3.187,8318,3.359,9336,2.89,9337,3.115,9338,2.89,9339,3.115,9340,3.267,9341,3.466,9980,3.267,10330,6.385,10331,5.57,10349,4.634,10350,3.051,10351,2.591,10359,5.566,10736,3.595,10740,3.187,11445,5.566,11446,11.476,11447,6.97,11448,8.594,11449,5.977,11450,7.999,11451,7.166,11452,3.359,11453,3.267,11454,3.267,11455,3.756,11456,3.756,11457,3.972,11458,3.595,11459,4.725,11460,3.972,11461,3.972,11462,3.972,11463,3.972,11464,3.972,11465,3.972,11466,3.972,11467,3.972,11468,5.566,11469,3.972,11470,5.566,11471,3.595,11472,7.395,11473,3.972,11474,3.972,11475,3.972,11476,3.595,11477,3.267,11478,3.972,11479,3.972,11480,3.972,11481,3.972,11482,5.566,11483,3.595,11484,6.97,11485,6.799,11486,7.117,11487,3.972,11488,6.15,11489,3.972,11490,3.466,11491,5.566,11492,3.972,12245,4.3,12246,4.3,12247,4.3,12248,4.3,12249,4.3,12250,4.3,12251,4.3,12252,4.3,12253,6.658,12254,4.3,12255,4.3,12256,4.3,12257,4.3,12258,4.3]],["title/controllers/ImportUserController.html",[481,2.63,12259,5.893]],["body/controllers/ImportUserController.html",[0,0.147,3,0.011,4,0.011,5,0.006,7,0.066,8,0.807,10,1.746,27,0.47,29,0.899,30,0.001,31,0.635,32,0.159,33,0.566,35,1.368,36,2.785,56,4.428,59,1.342,70,4.609,95,0.152,99,0.734,100,1.447,101,0.008,103,0,104,0,111,0.865,112,3.006,185,4.119,187,0.619,215,1.399,216,1.236,217,1.715,221,2.671,227,1.048,234,1.085,264,3.895,277,4.21,347,1.666,364,2.1,376,1.014,447,1.813,461,0.996,469,1.907,481,1.686,483,2.081,491,6.601,513,6.908,529,5.241,543,4.096,552,2.776,555,2.282,556,2.339,557,2.359,559,2.359,561,2.359,701,3.213,1008,3.648,1016,4.243,1028,7.783,1062,1.887,1828,3.645,2934,6.853,2955,2.447,4442,5.13,5784,3.899,6487,7.245,6775,5.046,8926,6.835,10327,7.692,10365,7.692,11459,3.068,12259,5.84,12260,11.629,12261,4.323,12262,4.323,12263,6.686,12264,8.175,12265,8.175,12266,8.175,12267,6.686,12268,8.175,12269,8.175,12270,8.175,12271,4.323,12272,6.686,12273,4.323,12274,4.323,12275,7.692,12276,4.323,12277,4.323,12278,6.686,12279,4.323,12280,4.323,12281,10.378,12282,6.686,12283,4.323,12284,4.323,12285,6.176,12286,4.323,12287,4.323,12288,8.037,12289,6.686,12290,4.323,12291,4.323,12292,8.498,12293,6.686,12294,4.323,12295,4.323,12296,8.037,12297,6.686,12298,4.323,12299,3.776,12300,4.323,12301,4.323,12302,3.614,12303,3.993,12304,3.776,12305,8.498,12306,3.776,12307,3.993,12308,3.614,12309,3.485,12310,5.59,12311,4.323,12312,4.323,12313,3.485,12314,3.776,12315,4.323,12316,4.323,12317,4.323,12318,4.323,12319,5.59,12320,4.323,12321,4.323,12322,4.323,12323,4.323,12324,8.175,12325,4.323,12326,8.175,12327,4.323,12328,4.323,12329,4.323,12330,4.323,12331,4.323,12332,4.323,12333,4.323,12334,3.993,12335,4.323,12336,4.323,12337,4.323,12338,4.323,12339,4.323,12340,4.323,12341,4.323]],["title/classes/ImportUserFactory.html",[0,0.23,12342,6.231]],["body/classes/ImportUserFactory.html",[0,0.159,2,0.536,3,0.012,4,0.012,5,0.007,7,0.072,8,0.856,27,0.53,29,1.022,30,0.001,31,0.691,32,0.183,33,0.616,34,1.471,35,1.436,47,0.624,55,2.478,59,3.195,95,0.139,99,0.791,101,0.009,103,0,104,0,127,0.589,138,3.077,144,3.173,148,1.443,165,0.559,185,4.825,192,1.391,216,1.311,217,0.934,227,0.747,329,3.42,359,2.457,366,2.567,371,1.285,379,1.975,380,2.153,381,2.332,404,1.281,461,2.74,538,3.177,596,3.839,627,2.206,660,7.089,661,4.567,662,5.366,665,3.973,666,5.366,667,5.582,668,3.973,669,3.973,670,3.973,671,3.901,672,4.355,673,4.805,674,6.148,675,5.667,676,6.914,677,2.639,682,2.615,683,3.973,684,2.639,685,5.013,686,5.224,687,4.441,688,5.053,689,3.936,690,2.615,691,3.711,692,4.039,693,2.545,694,2.502,695,2.615,696,4.937,697,2.639,698,4.718,699,2.615,700,7.005,701,4.055,702,6.508,703,2.639,704,4.235,705,2.615,706,2.639,707,2.615,708,2.639,709,2.615,710,2.954,711,2.779,712,2.615,713,5.967,714,2.639,715,2.615,716,3.973,717,3.901,718,3.973,719,2.639,720,2.523,721,2.502,722,2.057,723,2.615,724,2.615,725,2.615,726,2.639,727,2.639,728,1.826,729,2.615,730,2.639,731,3.356,732,2.615,733,2.639,735,2.692,736,2.749,737,2.779,775,2.844,851,2.289,852,2.289,853,2.37,854,2.353,1062,2.036,1114,1.892,1298,2.19,1299,2.164,1300,2.164,1301,2.289,1302,2.502,1303,3.188,3885,6.19,4232,2.915,4538,2.639,6613,3.643,6614,3.759,6622,3.643,9599,3.246,10330,3.246,11445,3.899,11447,3.544,11448,5.384,11449,3.038,11450,7.716,11451,5.536,11454,3.544,11459,3.309,12342,7.916,12343,7.086,12344,4.664,12345,7.086,12346,4.664,12347,6.546,12348,4.074,12349,4.664,12350,4.664,12351,4.664,12352,4.664,12353,4.664,12354,4.664,12355,4.074,12356,4.664]],["title/classes/ImportUserListResponse.html",[0,0.23,12308,5.64]],["body/classes/ImportUserListResponse.html",[0,0.335,2,0.97,3,0.016,4,0.016,5,0.008,7,0.091,27,0.471,29,0.47,30,0.001,31,0.474,32,0.182,33,0.568,34,1.016,47,0.827,55,2.95,56,5.684,59,2.622,70,5.917,94,2.813,95,0.151,101,0.016,103,0.001,104,0.001,127,0.748,145,1.528,163,3.582,165,0.667,167,2.26,192,1.765,200,3.701,208,2.197,347,1.206,355,2.328,364,1.991,369,2.177,371,1.632,374,1.891,375,3.427,376,1.388,379,2.865,404,1.527,405,1.596,461,2.865,467,3.4,469,2.611,470,4.526,475,2.966,496,2.494,538,2.654,577,3.319,596,3.262,717,3.259,731,2.318,851,4.146,852,4.146,1000,3.612,1007,7.503,1008,6.445,1009,4.828,1011,3.15,1013,4.516,1014,2.905,1015,3.288,1016,2.114,1017,4.2,1018,5.504,1019,4.927,1020,3.915,1021,3.15,1022,4.2,1023,4.2,1025,3.749,1026,3.288,1031,1.897,1114,4.358,1298,2.779,1299,2.746,1300,2.746,1301,2.905,1302,3.176,1717,3.801,1932,3.03,2086,4.12,2910,3.23,2911,3.23,3105,3.749,3106,3.319,3110,2.867,4442,3.726,4960,3.749,5418,3.749,7668,3.567,9336,3.978,9337,4.289,9338,3.978,9339,4.289,9975,4.692,10330,4.12,10331,4.046,10350,4.2,10351,3.567,10363,4.387,11156,3.654,11447,4.498,11449,3.856,11470,4.949,11471,4.949,11827,4.289,12308,7.062,12309,10.019,12357,7.379,12358,4.949,12359,5.919,12360,5.919,12361,7.694,12362,5.468,12363,7.484,12364,5.468,12365,5.468,12366,4.949,12367,4.949,12368,4.949,12369,4.949,12370,5.468,12371,5.468,12372,7.803,12373,5.468,12374,4.772,12375,5.468,12376,5.468,12377,4.624,12378,5.468]],["title/classes/ImportUserMapper.html",[0,0.23,12299,5.893]],["body/classes/ImportUserMapper.html",[0,0.22,2,0.742,3,0.017,4,0.017,5,0.009,7,0.099,8,1.085,27,0.429,29,0.819,30,0.001,31,0.579,32,0.145,33,0.516,35,1.248,95,0.16,99,1.097,100,3.738,101,0.012,103,0.001,104,0.001,145,2.666,167,3.944,187,0.925,217,1.548,227,1.177,234,1.458,305,1.859,307,4.039,309,5.085,329,1.904,369,1.986,461,2.071,496,2.722,529,2.85,558,3.071,627,4.019,851,3.171,852,3.171,975,5.135,982,3.237,1828,4.006,2685,5.135,3032,8.07,4442,4.925,5147,4.681,6931,5.644,8894,8.3,8923,8.3,8926,7.512,8927,8.723,8981,5.968,10327,9.335,10330,4.497,10331,4.417,11447,4.909,11449,4.209,11459,8.621,11493,9.001,12275,9.335,12299,7.849,12302,5.402,12304,7.849,12309,9.001,12334,5.968,12374,5.208,12379,11.165,12380,8.985,12381,8.985,12382,6.461,12383,6.461,12384,8.985,12385,6.461,12386,5.047,12387,5.968,12388,5.402,12389,5.644,12390,6.461,12391,6.461,12392,6.461,12393,6.461,12394,6.461,12395,6.461,12396,6.461,12397,6.461,12398,6.461,12399,6.461,12400,6.461,12401,6.461,12402,5.968,12403,8.985,12404,6.461,12405,6.461,12406,5.968,12407,6.461,12408,6.461,12409,5.968,12410,6.461,12411,6.461,12412,6.461,12413,6.461,12414,6.461,12415,6.461,12416,6.461,12417,6.461,12418,6.461,12419,6.461,12420,6.461,12421,6.461,12422,6.461,12423,6.461,12424,6.461,12425,6.461]],["title/classes/ImportUserMatchMapper.html",[0,0.23,12388,5.64]],["body/classes/ImportUserMatchMapper.html",[0,0.291,2,0.982,3,0.023,4,0.023,5,0.012,7,0.131,8,1.307,27,0.449,29,0.858,30,0.001,31,0.607,32,0.152,33,0.541,35,1.307,95,0.139,99,1.451,101,0.016,103,0.001,104,0.001,227,1.357,305,2.459,307,5.343,309,6.125,329,2.518,529,3.77,577,7.22,627,4.096,982,4.282,4442,5.238,7668,5.151,10340,11.53,11450,10.604,11495,9.928,12388,9.047,12426,8.547,12427,10.821,12428,10.821,12429,10.821,12430,8.547,12431,10.821,12432,8.547,12433,10.373,12434,8.547,12435,7.895,12436,8.547,12437,7.895,12438,8.547,12439,7.895,12440,6.677,12441,8.547,12442,8.547,12443,8.547,12444,8.547]],["title/modules/ImportUserModule.html",[425,1.808,12445,5.438]],["body/modules/ImportUserModule.html",[0,0.255,3,0.02,4,0.02,5,0.011,30,0.001,52,3.478,94,3.563,95,0.169,101,0.014,103,0.001,104,0.001,187,1.074,191,4.164,192,2.235,200,2.443,425,3.183,427,2.771,428,2.923,429,3.014,430,3,431,2.974,432,4.122,433,3.748,437,9.011,438,5.998,441,7.743,442,3.996,443,2.948,444,2.874,447,4.167,449,3.996,450,3.084,461,1.728,823,9.201,836,4.327,1134,5.038,1545,2.395,1632,8.839,1887,4.627,1945,6.87,1951,8.155,2008,4.814,2321,4.959,2672,4.686,2835,4.467,3091,3.418,4442,3.307,7659,5.856,10533,5.856,12259,9.741,12305,11.73,12306,6.548,12307,6.925,12445,11.385,12446,7.496,12447,7.496,12448,7.496,12449,11.093,12450,7.496,12451,7.496,12452,7.496,12453,7.496]],["title/injectables/ImportUserRepo.html",[105,0.89,12449,5.893]],["body/injectables/ImportUserRepo.html",[0,0.171,3,0.013,4,0.013,5,0.007,7,0.077,8,0.904,10,3.024,12,3.454,18,3.7,26,2.073,27,0.504,29,0.942,30,0.001,31,0.666,32,0.166,33,0.593,34,1.537,35,1.433,36,2.759,40,3.604,49,1.957,56,2.415,58,3.179,59,2.324,94,3.559,95,0.143,96,2.024,97,2.135,98,2.991,99,0.852,101,0.01,103,0,104,0,105,0.988,107,1.201,111,1.792,112,3.001,144,1.372,167,4.532,187,0.719,192,2.962,217,1.6,221,2.722,227,1.12,234,1.454,277,2.997,305,1.444,329,1.479,369,1.109,380,1.05,381,2.465,398,1.47,404,1.354,461,2.796,496,2.114,529,3.951,596,3.016,692,4.671,701,4.146,807,4.636,844,5.235,877,6.735,883,3.14,884,3.537,885,4.457,908,3.06,909,3.098,910,3.06,911,3.098,913,3.06,914,3.098,915,2.763,919,3.813,964,3.431,1717,4.809,2185,4.238,2432,5.919,3091,2.288,3110,3.628,3394,3.431,3885,6.541,4960,3.179,5784,4.367,5786,3.561,6487,3.06,6774,6.357,6775,7.128,6785,5.55,6804,6.541,6805,3.719,6806,3.719,11153,4.045,11458,6.261,11459,7.909,11493,8.007,12402,4.636,12440,3.92,12449,6.541,12454,5.018,12455,7.488,12456,8.958,12457,8.958,12458,7.488,12459,7.488,12460,5.018,12461,5.018,12462,5.018,12463,5.018,12464,5.018,12465,5.018,12466,7.488,12467,5.018,12468,6.541,12469,5.018,12470,7.825,12471,5.018,12472,5.018,12473,5.018,12474,5.018,12475,5.018,12476,5.018,12477,5.018,12478,5.018,12479,5.018,12480,5.018,12481,5.018,12482,5.018,12483,5.018,12484,5.018,12485,5.018,12486,5.018,12487,5.018,12488,5.018,12489,5.018,12490,5.018,12491,7.488,12492,5.018,12493,7.488,12494,5.018,12495,5.018,12496,5.018,12497,5.018,12498,5.018,12499,5.018]],["title/classes/ImportUserResponse.html",[0,0.23,12309,5.438]],["body/classes/ImportUserResponse.html",[0,0.319,2,1.075,3,0.014,4,0.014,5,0.008,7,0.083,27,0.514,29,0.429,30,0.001,31,0.525,32,0.182,33,0.468,34,1.359,47,0.916,55,2.059,56,3.81,70,3.966,94,3.762,95,0.152,101,0.015,103,0,104,0,127,0.684,144,1.479,163,2.496,165,0.625,167,2.065,192,1.613,200,4.097,208,2.008,329,1.594,347,1.613,355,3.113,364,2.248,369,2.277,371,2.182,374,1.728,375,3.211,376,1.269,379,2.852,404,0.978,405,2.134,461,3.026,467,3.326,469,2.386,470,4.34,475,2.71,479,6.938,496,2.279,538,3.549,577,5.248,595,1.863,717,2.978,731,2.118,851,5.381,852,5.381,1000,3.385,1007,4.886,1008,2.952,1009,3.092,1013,4.292,1025,3.427,1026,3.005,1031,2.537,1114,4.799,1298,2.54,1299,2.51,1300,2.51,1301,2.655,1302,2.903,1480,3.033,1717,5.083,1932,4.052,2086,3.766,2910,4.32,2911,4.32,3105,5.014,3106,4.438,3110,3.834,4442,5.547,4960,5.014,5418,5.014,6910,4.997,7668,4.771,9336,3.636,9337,3.92,9338,3.636,9339,3.92,9975,5.722,10330,6.516,10331,6.399,10350,5.617,10351,4.771,10363,5.867,11156,4.886,11447,7.113,11449,6.099,11470,4.523,11471,4.523,11827,3.92,12308,4.523,12309,9.777,12357,10.985,12358,4.523,12361,8.563,12362,4.997,12363,8.329,12364,4.997,12365,4.997,12366,4.523,12367,4.523,12368,4.523,12369,4.523,12370,4.997,12371,4.997,12372,7.312,12373,4.997,12374,7.546,12375,7.312,12376,7.312,12377,4.226,12378,4.997,12500,5.41,12501,5.41,12502,5.41,12503,5.41,12504,5.41,12505,5.41,12506,5.41,12507,5.41,12508,5.41]],["title/classes/ImportUserScope.html",[0,0.23,12470,5.893]],["body/classes/ImportUserScope.html",[0,0.147,2,0.768,3,0.011,4,0.011,5,0.006,7,0.067,8,0.808,27,0.522,29,0.96,30,0.001,31,0.705,32,0.174,33,0.605,34,1.148,35,1.461,39,1.16,47,0.894,49,1.687,95,0.135,96,1.809,97,1.841,99,0.734,101,0.008,103,0,104,0,111,2.105,144,1.829,148,1.339,165,0.528,167,3.123,192,2.439,217,1.447,227,1.311,234,1.328,247,1.717,277,4.757,305,2.354,307,2.705,309,5.633,329,2.41,347,1.667,355,2.632,369,2.506,398,1.267,404,1.21,461,2.529,472,4.497,496,1.823,529,1.909,558,2.057,577,5.58,596,3.023,701,3.215,779,6.822,844,4.173,851,3.284,852,3.284,1285,6.67,1919,4.37,1921,6.089,2422,5.613,2432,5.931,4227,1.49,4232,2.705,4331,4.748,4538,5.956,4630,3.477,5147,5.927,5346,4.238,5369,5.911,5872,4.574,5873,4.574,5874,4.574,5879,4.574,5880,4.574,5881,3.012,5882,2.958,5883,3.012,5884,3.012,5893,2.958,5894,4.574,5895,3.012,5896,2.958,5897,3.012,5898,2.958,5899,8.27,6774,4.748,7668,4.033,10330,5.694,10331,2.958,10349,3.012,10351,2.608,11447,3.288,11448,6.216,11449,5.33,11452,5.227,11453,5.084,11454,5.084,11459,3.071,11495,7.696,12386,3.381,12435,3.998,12437,3.998,12439,3.998,12440,5.227,12470,11.196,12509,4.327,12510,6.691,12511,6.691,12512,6.691,12513,6.691,12514,6.691,12515,6.691,12516,6.691,12517,6.691,12518,6.691,12519,6.691,12520,4.327,12521,6.691,12522,4.327,12523,6.691,12524,4.327,12525,6.691,12526,4.327,12527,6.181,12528,4.848,12529,6.691,12530,4.327,12531,6.691,12532,4.327,12533,6.691,12534,4.327,12535,6.691,12536,4.327,12537,6.691,12538,4.327,12539,3.618,12540,3.998,12541,4.327,12542,3.998,12543,4.327,12544,4.327,12545,6.691,12546,4.327,12547,8.041,12548,8.503,12549,4.327,12550,6.691,12551,6.691,12552,6.691,12553,6.691,12554,4.327,12555,4.327,12556,4.327,12557,4.327,12558,4.327,12559,4.327,12560,4.327,12561,6.691,12562,4.327,12563,4.327,12564,5.394,12565,4.327,12566,4.327,12567,3.998]],["title/classes/ImportUserUrlParams.html",[0,0.23,12281,5.893]],["body/classes/ImportUserUrlParams.html",[0,0.39,2,1.075,3,0.025,4,0.025,5,0.013,7,0.144,27,0.389,30,0.001,32,0.131,34,1.966,47,0.834,95,0.147,101,0.018,103,0.001,104,0.001,165,0.904,200,3.732,359,3.972,364,1.736,368,4.524,369,2.532,370,3.821,371,3.157,374,2.991,376,2.196,379,2.158,461,2.972,467,3.079,472,7.698,769,6.825,1000,4.898,3834,5.46,4442,5.052,11459,8.127,12281,10.005,12357,10.005,12374,9.975,12568,9.362,12569,9.362]],["title/interfaces/InlineAttachment.html",[334,0.743,1566,5]],["body/interfaces/InlineAttachment.html",[3,0.023,4,0.023,5,0.012,7,0.135,30,0.001,31,0.493,32,0.123,47,1.03,77,5.568,101,0.017,103,0.001,104,0.001,165,0.869,334,1.481,336,2.142,404,2.348,1560,8.163,1561,6.679,1562,9.345,1563,9.867,1564,6.679,1565,4.883,1566,8.915,1567,6.369,1568,9.581,1569,6.369,1570,8.915,1571,6.679,1572,8.163,1573,8.369,1574,8.369,1575,8.163,1576,6.638,1577,6.515,1578,6.515,1579,6.679,1580,6.679]],["title/modules/InterceptorModule.html",[425,1.808,6322,5.64]],["body/modules/InterceptorModule.html",[0,0.292,3,0.023,4,0.023,5,0.012,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,163,3.422,187,1.23,217,1.132,227,0.905,234,1.393,379,1.979,425,2.909,427,3.173,432,3.173,558,4.08,704,6.178,728,4.249,789,8.028,801,5.006,836,6.263,837,6.362,839,4.03,1919,3.565,1991,4.644,2309,6.083,2510,6.873,3462,7.069,3976,9.295,5974,7.069,6322,9.072,6334,7.553,6335,10.394,6339,8.747,8217,6.522,8221,6.522,10789,6.091,11156,6.698,11370,7.176,12570,8.583,12571,8.747,12572,12.501,12573,9.072,12574,10.394,12575,8.583,12576,8.583]],["title/interfaces/IntrospectResponse.html",[334,0.743,10884,5.64]],["body/interfaces/IntrospectResponse.html",[3,0.02,4,0.02,5,0.011,7,0.117,30,0.001,32,0.194,33,0.711,47,1.038,51,5.907,55,2.939,101,0.015,103,0.001,104,0.001,165,0.793,277,4.785,334,0.84,336,1.858,337,5.212,347,2.292,359,3.899,1596,8.483,6054,8.483,6862,9.338,6864,9.338,6886,9.338,6887,9.338,10884,8.403,11590,7.907,12577,7.624,12578,11.042,12579,11.953,12580,11.953,12581,11.953,12582,11.953]],["title/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.23,12583,5.893]],["body/classes/InvalidOriginForLogoutUrlLoggableException.html",[0,0.281,2,0.947,3,0.022,4,0.022,5,0.012,7,0.127,8,1.278,27,0.439,29,0.654,30,0.001,31,0.463,32,0.148,33,0.412,35,0.996,47,0.949,72,3.873,95,0.136,101,0.016,103,0.001,104,0.001,111,1.65,127,1.042,145,3.014,163,2.602,187,1.182,214,3.482,215,2.67,216,1.957,227,0.869,234,1.339,367,3.971,404,1.913,406,2.635,1110,5.298,1327,3.258,1542,5.45,1543,6.07,1545,2.635,1547,6.13,2090,5.936,2113,7.398,2115,10.684,2485,3.564,2685,6.675,3145,6.268,7629,6.114,8137,6.07,8138,6.319,8530,5.298,8537,4.862,8538,5.092,8546,6.897,8547,6.897,12583,9.242,12584,11.679,12585,9.415,12586,11.679,12587,8.249,12588,8.249,12589,6.444,12590,7.206,12591,8.249,12592,8.249]],["title/classes/IservMapper.html",[0,0.23,12593,5.893]],["body/classes/IservMapper.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,8,1.303,27,0.448,29,0.856,30,0.001,31,0.665,32,0.151,33,0.539,35,1.303,95,0.138,99,1.444,100,2.849,101,0.016,103,0.001,104,0.001,189,6.987,227,1.137,234,1.751,627,4.092,851,4.178,852,4.178,853,4.325,854,5.446,3110,4.123,4538,7.054,6938,7.279,8298,9.237,8300,5.32,9332,9.03,11449,8.12,12593,9.428,12594,11.851,12595,8.511,12596,9.97,12597,9.97,12598,10.792,12599,8.511,12600,6.861,12601,10.792,12602,8.511,12603,8.511,12604,7.862,12605,7.862,12606,8.511,12607,8.511,12608,8.511,12609,7.862]],["title/injectables/IservProvisioningStrategy.html",[105,0.89,12610,5.64]],["body/injectables/IservProvisioningStrategy.html",[0,0.196,3,0.015,4,0.015,5,0.008,7,0.089,8,1.001,27,0.467,29,0.842,30,0.001,31,0.595,32,0.149,33,0.53,34,0.99,35,1.282,36,2.544,47,0.852,95,0.164,99,0.979,100,1.931,101,0.011,103,0.001,104,0.001,105,1.093,107,1.38,111,1.154,112,2.626,127,0.729,128,4.648,129,6.551,132,5.324,145,2.739,163,1.819,167,3.165,187,0.826,189,4.648,191,3.203,192,1.719,215,1.867,216,1.533,217,1.683,221,2.502,227,1.185,234,1.575,247,2.288,305,2.386,348,5.572,369,1.275,404,1.499,406,1.842,461,2.592,596,2.948,775,3.516,798,3.605,853,4.213,1114,2.34,1136,5.037,1648,4.274,1683,3.399,1708,4.178,1813,6.007,2180,5.251,2309,3.233,4227,1.985,4538,5.494,4561,3.069,4630,2.997,5868,4.178,6938,4.692,6942,5.883,8291,3.876,8298,6.145,9332,6.007,10950,5.883,10952,4.382,11156,5.118,11449,5.402,11476,4.821,11848,7.318,11850,6.324,11851,3.814,11852,3.814,12145,7.355,12593,5.037,12610,6.931,12611,5.766,12612,8.29,12613,6.477,12614,8.556,12615,5.766,12616,6.683,12617,8.149,12618,5.766,12619,8.29,12620,5.766,12621,6.683,12622,7.866,12623,5.766,12624,5.766,12625,5.037,12626,6.299,12627,5.037,12628,5.766,12629,5.766,12630,5.327,12631,9.707,12632,5.037,12633,5.327,12634,8.29,12635,5.766,12636,5.327,12637,5.766,12638,5.766,12639,5.766,12640,5.766,12641,5.766,12642,5.766,12643,5.766,12644,5.327,12645,6.683,12646,5.766,12647,6.931,12648,5.766,12649,6.683,12650,5.037,12651,5.327,12652,5.766,12653,5.766,12654,5.766,12655,5.766,12656,5.766,12657,5.766,12658,5.037]],["title/injectables/JwtAuthGuard.html",[105,0.89,12659,5.893]],["body/injectables/JwtAuthGuard.html",[0,0.356,3,0.028,4,0.028,5,0.015,30,0.001,95,0.157,101,0.02,103,0.001,104,0.001,105,1.614,107,2.503,187,1.498,404,1.891,1640,7.751,12659,10.689,12660,10.457,12661,10.457,12662,9.66,12663,10.457]],["title/interfaces/JwtConstants.html",[334,0.743,1649,5.64]],["body/interfaces/JwtConstants.html",[3,0.023,4,0.023,5,0.012,7,0.136,30,0.001,32,0.177,39,2.372,47,1,85,6.913,95,0.113,101,0.021,103,0.001,104,0.001,138,4.802,165,0.873,217,1.458,334,0.975,336,2.156,369,1.956,772,9.661,1132,7.132,1646,6.912,1649,10.567,1687,6.723,1689,8.173,1691,5.462,1693,7.397,1696,7.436,1827,6.558,1919,3.674,1987,5.682,2488,6.049,2835,5.273,6054,6.279,6862,6.912,6864,6.912,6886,6.912,6887,6.912,12664,8.848,12665,13.01,12666,11.059,12667,8.848,12668,8.848,12669,7.397,12670,7.397,12671,8.848,12672,8.848,12673,8.848,12674,7.729,12675,8.848,12676,8.848]],["title/classes/JwtExtractor.html",[0,0.23,12677,5.893]],["body/classes/JwtExtractor.html",[0,0.293,2,0.99,3,0.023,4,0.023,5,0.012,7,0.132,8,1.314,27,0.358,29,0.684,30,0.001,31,0.61,32,0.121,33,0.431,35,1.041,47,0.912,95,0.153,101,0.016,103,0.001,104,0.001,167,4.154,217,1.137,227,1.147,351,5.891,367,5.738,535,5.887,627,3.712,731,4.26,1298,5.108,1299,5.047,1300,5.047,1301,5.852,1302,6.396,1303,8.15,1304,7.197,1315,6.734,1683,5.081,6491,5.137,10974,9.096,11046,9.096,12677,9.504,12678,10.05,12679,8.62,12680,10.88,12681,10.88,12682,8.62,12683,11.921,12684,6.734,12685,8.62,12686,10.88]],["title/interfaces/JwtPayload.html",[334,0.743,1813,4.888]],["body/interfaces/JwtPayload.html",[3,0.022,4,0.022,5,0.012,7,0.128,30,0.001,32,0.183,39,2.23,47,1.027,48,3.905,55,2.874,85,5.199,101,0.02,103,0.001,104,0.001,165,0.839,334,1.172,336,2.027,347,1.695,355,3.271,404,1.923,461,1.917,575,4.957,956,5.419,1687,8.081,1691,6.565,1794,9.451,1813,7.706,1827,9.159,1919,5.132,2488,5.686,3110,4.029,4227,2.864,4641,5.59,4997,5.419,6054,8.769,6862,9.653,6864,9.653,6886,9.653,6887,9.653,6893,7.683,6894,7.683,6895,6.705,6896,5.341,6897,9.291]],["title/injectables/JwtStrategy.html",[105,0.89,1628,5.893]],["body/injectables/JwtStrategy.html",[0,0.257,3,0.02,4,0.02,5,0.011,7,0.116,8,1.208,27,0.415,29,0.793,30,0.001,31,0.561,32,0.14,33,0.5,35,0.914,36,2.174,85,4.73,95,0.171,101,0.014,103,0.001,104,0.001,105,1.319,107,1.811,112,2.513,127,0.956,187,1.084,204,2.596,206,3.874,215,2.449,216,1.399,217,1.319,221,1.784,227,0.797,231,6.466,234,1.228,305,2.177,334,0.834,371,2.086,404,1.368,406,2.417,461,1.744,491,3.714,496,3.188,513,5.12,685,3.963,784,3.994,1121,5.267,1158,4.027,1240,6.466,1459,6.615,1628,8.736,1629,10.263,1640,5.608,1649,6.326,1650,6.61,1654,6.61,1683,7.025,1697,6.99,1813,8.636,1820,6.326,1827,7.412,1919,3.142,2038,5.173,3876,5.911,4485,5.173,5367,6.1,5974,6.516,6929,5.749,9401,4.73,10539,6.61,11590,5.005,12677,6.61,12684,5.911,12687,7.566,12688,7.566,12689,7.566,12690,10.001,12691,7.566,12692,6.326,12693,7.566,12694,7.566,12695,6.326,12696,7.566,12697,7.566,12698,7.566,12699,7.566,12700,7.566,12701,7.566,12702,7.566,12703,7.566,12704,7.566,12705,7.566,12706,7.566,12707,7.566]],["title/classes/JwtTestFactory.html",[0,0.23,6877,5.893]],["body/classes/JwtTestFactory.html",[0,0.26,2,0.877,3,0.02,4,0.02,5,0.011,7,0.117,8,1.215,27,0.418,29,0.606,30,0.001,31,0.428,32,0.158,33,0.382,35,1.215,47,0.996,59,2.371,85,7.035,95,0.129,101,0.015,103,0.001,104,0.001,116,3.257,185,2.991,217,1.578,227,1.061,334,0.842,565,5.312,627,3.975,1646,5.967,1648,5.661,1671,6.386,1683,4.502,1687,5.804,1691,4.715,1812,7.141,1827,7.459,4474,7.647,6054,7.141,6860,10.45,6861,7.056,6862,7.862,6863,8.414,6864,7.862,6865,10.396,6866,10.394,6867,9.296,6868,7.056,6869,7.056,6870,7.056,6871,7.056,6872,8.791,6873,7.056,6874,9.296,6875,9.296,6876,7.056,6877,8.791,6878,10.45,6879,9.296,6880,9.296,6881,7.056,6882,7.056,6883,7.056,6884,7.056,6885,7.056,6886,5.967,6887,5.967,6888,6.673,6889,7.056,6890,7.056,6891,7.056,6892,7.056,12708,10.063,12709,7.638,12710,7.638]],["title/injectables/JwtValidationAdapter.html",[105,0.89,1629,5.438]],["body/injectables/JwtValidationAdapter.html",[0,0.214,3,0.017,4,0.017,5,0.009,7,0.097,8,1.064,27,0.458,29,0.875,30,0.001,31,0.618,32,0.155,33,0.551,34,1.893,35,1.229,36,2.617,47,1.003,85,7.26,94,4.186,95,0.154,101,0.012,103,0.001,104,0.001,105,1.162,107,1.503,111,1.762,112,2.877,127,1.113,187,0.899,216,1.629,217,1.162,221,2.398,264,3.729,368,3.479,371,1.731,379,1.447,691,5.776,731,3.449,839,2.948,1240,5.084,1298,4.135,1299,4.086,1300,4.086,1301,4.323,1302,4.726,1303,6.021,1608,4.654,1629,7.1,1641,5.485,1683,7.438,1827,9.901,1848,5.92,1921,5.826,1987,4.033,1990,6.881,2510,6.985,3091,4.016,3851,6.881,3893,10.337,3897,5.485,3900,4.771,3902,5.485,3910,5.485,3911,9.072,3912,6.881,6897,7.694,10539,7.694,11216,5.656,11455,7.694,12678,10.728,12711,6.279,12712,8.808,12713,8.808,12714,8.808,12715,6.279,12716,6.279,12717,8.808,12718,8.808,12719,6.279,12720,8.808,12721,6.279,12722,8.808,12723,8.136,12724,8.808,12725,8.808,12726,6.279,12727,6.279,12728,6.279,12729,6.279,12730,6.279,12731,8.808,12732,6.279,12733,6.279,12734,6.279,12735,8.808,12736,8.808,12737,6.279,12738,6.279,12739,6.279]],["title/classes/KeycloakAdministration.html",[0,0.23,12740,6.231]],["body/classes/KeycloakAdministration.html",[0,0.291,2,0.982,3,0.023,4,0.023,5,0.012,7,0.131,27,0.355,30,0.001,47,1.012,51,5.348,87,6.168,95,0.139,101,0.016,103,0.001,104,0.001,144,2.336,165,0.854,238,5.855,329,3.188,347,2.206,627,3.697,2171,3.674,2172,4.088,2173,3.942,2335,7.146,3898,4.664,5472,6.168,7853,8.02,11075,7.158,11092,5.949,11439,6.184,11500,6.68,11513,10.766,11515,9.047,11516,9.928,11760,9.047,12188,8.723,12740,9.996,12741,10.821,12742,10.821,12743,10.821,12744,10.821,12745,10.821,12746,10.821,12747,8.547,12748,6.677]],["title/modules/KeycloakAdministrationModule.html",[425,1.808,12183,5.27]],["body/modules/KeycloakAdministrationModule.html",[0,0.302,3,0.024,4,0.024,5,0.013,7,0.136,30,0.001,95,0.167,101,0.017,103,0.001,104,0.001,154,4.043,187,1.27,425,3.237,427,3.278,428,3.457,429,3.565,430,3.549,431,3.518,432,4.464,433,4.554,442,4.453,443,3.487,444,3.4,447,3.718,773,5.695,836,5.119,1420,6.172,2335,7.414,3544,4.599,10351,6.675,11439,5.068,11500,5.474,11516,9.259,12183,10.522,12188,7.148,12748,6.927,12749,8.867,12750,8.867,12751,8.867,12752,10.124,12753,8.867,12754,10.23,12755,6.572,12756,8.191,12757,8.191,12758,7.414,12759,7.414,12760,6.738,12761,8.867]],["title/injectables/KeycloakAdministrationService.html",[105,0.89,12752,4.888]],["body/injectables/KeycloakAdministrationService.html",[0,0.183,3,0.014,4,0.014,5,0.008,7,0.121,8,0.95,27,0.534,29,0.426,30,0.001,31,0.301,32,0.11,33,0.268,34,0.921,35,1.491,36,2.482,47,0.831,55,1.181,95,0.119,101,0.01,103,0,104,0,105,1.038,107,1.284,111,2.545,112,2.962,116,4.472,127,0.994,144,2.151,148,2.435,165,0.621,187,0.769,216,1.455,217,1.441,221,2.853,227,1.275,234,1.277,238,2.904,247,3.696,329,2.318,369,1.186,371,1.479,627,2.901,784,2.833,839,2.52,1158,2.856,1459,3.55,1839,7.269,1841,5.702,2171,2.307,2335,4.487,3544,3.268,5472,2.652,7134,3.234,10351,4.743,11439,7.428,11500,8.023,11513,8.579,11515,4.487,11516,4.487,12748,4.192,12752,5.702,12754,9.479,12755,3.977,12756,4.957,12757,4.957,12762,9.876,12763,5.366,12764,9.317,12765,9.317,12766,10.261,12767,10.261,12768,10.261,12769,10.261,12770,10.261,12771,10.261,12772,10.261,12773,10.261,12774,10.261,12775,4.957,12776,9.317,12777,7.869,12778,7.269,12779,5.366,12780,5.366,12781,5.366,12782,5.366,12783,5.366,12784,5.366,12785,5.366,12786,5.366,12787,5.366,12788,7.869,12789,5.366,12790,5.366,12791,5.366,12792,5.366,12793,5.366,12794,5.366,12795,5.366,12796,7.869,12797,5.366,12798,5.366,12799,5.366,12800,7.869,12801,6.343,12802,7.869,12803,9.317,12804,4.957,12805,4.957,12806,5.366,12807,5.366,12808,4.957,12809,4.688,12810,5.366,12811,5.366,12812,5.366,12813,9.317,12814,7.869,12815,5.366]],["title/classes/KeycloakConfiguration.html",[0,0.23,12758,5.64]],["body/classes/KeycloakConfiguration.html",[0,0.328,2,1.106,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,95,0.123,101,0.018,103,0.001,104,0.001,144,2.633,165,0.919,329,3.433,627,3.901,2171,4.14,2309,5.4,11092,6.704,11439,6.659,11500,7.192,11506,10.474,11509,10.763,11510,10.763,12748,7.524,12758,9.742,12816,10.179,12817,12.527,12818,11.652,12819,11.652,12820,9.631,12821,8.414]],["title/modules/KeycloakConfigurationModule.html",[425,1.808,12822,5.64]],["body/modules/KeycloakConfigurationModule.html",[0,0.229,3,0.018,4,0.018,5,0.009,30,0.001,95,0.175,101,0.013,103,0.001,104,0.001,154,3.064,187,0.963,425,2.827,427,2.484,428,2.62,429,2.702,430,2.69,431,2.666,432,3.899,433,3.977,437,8.726,438,5.809,442,3.712,443,2.643,444,2.576,447,3.871,449,3.712,773,5.929,836,3.879,1420,4.677,1545,2.147,1626,8.726,2171,2.888,2309,3.768,3456,4.769,3533,9.606,8104,8.91,8636,4.677,11439,3.84,11500,4.148,11511,8.065,11570,9.344,11571,5.417,11572,5.417,11581,10.342,11749,6.208,12183,9.606,12188,5.417,12189,5.87,12748,5.25,12758,5.618,12759,8.818,12816,5.87,12821,5.87,12822,11.765,12823,6.72,12824,6.72,12825,6.72,12826,6.72,12827,11.212,12828,10.726,12829,10.281,12830,6.72,12831,9.213,12832,6.72,12833,6.72,12834,7.719,12835,6.208,12836,6.208,12837,6.208,12838,6.208,12839,6.72,12840,6.72,12841,5.618,12842,6.72]],["title/injectables/KeycloakConfigurationService.html",[105,0.89,12827,5.64]],["body/injectables/KeycloakConfigurationService.html",[0,0.09,3,0.007,4,0.007,5,0.004,7,0.041,8,0.542,10,1.811,27,0.461,29,0.775,30,0.001,31,0.584,32,0.137,33,0.488,34,1.832,35,1.342,36,2.415,47,0.874,59,0.821,74,2.131,95,0.14,101,0.005,103,0,104,0,105,0.591,107,0.633,111,2.57,112,2.87,116,3.164,127,0.567,154,3.814,187,0.379,200,0.862,206,3.52,216,1.272,217,1.725,221,3.134,227,0.811,235,4.357,247,1.049,264,1.899,355,1.04,369,1.849,371,2.122,379,0.609,394,1.511,403,1.749,461,1.346,500,3.065,524,2.643,575,1.576,576,4.538,731,3.673,773,3.749,789,5.726,801,1.542,804,2.009,805,2.131,883,2.448,905,2.425,1031,0.847,1114,1.819,1298,4.403,1299,4.351,1300,4.351,1415,1.594,1828,1.999,1865,4.381,2296,1.876,2321,1.749,2423,1.612,2489,2.563,2951,2.672,2955,2.538,4038,1.632,4530,2.131,4556,1.354,4641,3.014,5472,2.216,5784,4.49,6054,3.182,6863,4.881,6901,2.065,7136,3.323,7139,1.96,7786,2.442,8353,2.442,8682,2.009,10349,1.84,10351,5.041,10854,5.749,10977,6.436,11083,2.734,11216,2.88,11439,6.457,11500,6.974,11515,8.457,11845,6.465,11847,4.787,11923,1.96,12236,5.1,12752,4.983,12755,6.199,12760,2.009,12762,2.009,12801,8.154,12804,2.442,12805,2.442,12808,2.442,12809,2.31,12827,3.749,12834,7.454,12835,2.442,12836,2.442,12843,9.869,12844,4.484,12845,6.877,12846,6.877,12847,6.877,12848,6.877,12849,4.484,12850,4.484,12851,4.484,12852,6.877,12853,4.484,12854,4.484,12855,4.484,12856,4.484,12857,2.211,12858,7.454,12859,2.644,12860,3.749,12861,4.484,12862,2.644,12863,9.379,12864,2.644,12865,2.644,12866,2.644,12867,2.644,12868,4.484,12869,8.338,12870,2.644,12871,4.484,12872,2.644,12873,8.915,12874,4.484,12875,2.644,12876,2.644,12877,5.838,12878,4.484,12879,2.644,12880,5.838,12881,4.484,12882,8.364,12883,6.352,12884,2.644,12885,4.484,12886,5.838,12887,4.484,12888,2.644,12889,4.484,12890,2.644,12891,2.644,12892,2.644,12893,2.644,12894,2.644,12895,4.484,12896,2.644,12897,2.644,12898,2.442,12899,2.644,12900,2.131,12901,2.644,12902,2.442,12903,4.484,12904,9.619,12905,2.31,12906,3.917,12907,5.838,12908,4.706,12909,5.838,12910,8.836,12911,4.484,12912,5.1,12913,4.484,12914,7.698,12915,4.484,12916,7.698,12917,2.644,12918,8.364,12919,2.644,12920,2.644,12921,2.644,12922,4.484,12923,4.484,12924,4.484,12925,4.484,12926,2.644,12927,4.484,12928,2.442,12929,2.31,12930,2.644,12931,2.644,12932,5.1,12933,5.1,12934,4.484,12935,4.484,12936,2.31,12937,2.644,12938,2.31,12939,2.442,12940,4.142,12941,2.442,12942,2.442,12943,2.644,12944,2.644,12945,4.484,12946,4.484,12947,4.484,12948,3.407,12949,2.644,12950,2.644,12951,2.644,12952,2.644,12953,2.644,12954,2.644,12955,4.484,12956,2.644,12957,5.838,12958,5.838,12959,2.644,12960,5.838,12961,2.644,12962,5.838,12963,2.644,12964,2.644,12965,4.484,12966,2.644,12967,4.484,12968,4.484,12969,4.484,12970,6.877,12971,2.644,12972,2.644,12973,4.484,12974,2.644,12975,4.142,12976,2.644,12977,2.644,12978,5.838,12979,4.484,12980,5.838,12981,4.484,12982,2.644,12983,2.644,12984,4.484,12985,2.644,12986,4.484,12987,2.644,12988,2.644,12989,2.644,12990,2.644,12991,2.644,12992,2.644,12993,4.484,12994,4.484,12995,2.644,12996,2.644,12997,4.484,12998,2.644,12999,2.442,13000,2.644,13001,2.442,13002,4.484,13003,2.644,13004,2.644,13005,2.644,13006,2.644,13007,2.644,13008,2.644,13009,2.644,13010,2.644]],["title/injectables/KeycloakConfigurationUc.html",[105,0.89,11570,5.126]],["body/injectables/KeycloakConfigurationUc.html",[0,0.231,3,0.018,4,0.018,5,0.01,7,0.104,8,1.123,27,0.512,29,0.737,30,0.001,31,0.521,32,0.13,33,0.465,35,1.442,36,2.868,55,2.332,59,2.885,70,3.401,95,0.153,101,0.013,103,0.001,104,0.001,105,1.226,107,1.625,111,2.281,112,3.068,116,4.348,127,1.175,187,0.972,216,2.109,221,2.688,227,1.259,347,2.161,773,4.359,1240,6.582,7657,8.092,8401,6.27,8418,6.27,9822,8.092,11439,7.218,11500,7.796,11568,8.908,11570,7.064,11610,8.452,11616,6.736,12752,8.262,12759,8.864,12760,5.158,12762,5.158,12827,9.534,12828,10.559,12829,10.559,12837,6.27,12838,6.27,12841,5.675,12857,5.675,12860,7.772,13011,12.629,13012,10.602,13013,6.788,13014,6.788,13015,6.788,13016,6.788,13017,9.296,13018,6.788,13019,6.788,13020,6.788,13021,6.788,13022,6.788,13023,6.788,13024,6.788,13025,6.788,13026,6.788,13027,6.788]],["title/classes/KeycloakConsole.html",[0,0.23,11581,5.438]],["body/classes/KeycloakConsole.html",[0,0.12,2,0.405,3,0.009,4,0.009,5,0.005,7,0.054,8,0.688,27,0.452,29,0.837,30,0.001,31,0.569,32,0.148,33,0.507,35,1.225,36,2.575,47,0.598,52,3.322,53,4.042,55,2.517,70,3.588,72,3.858,78,8.808,95,0.105,101,0.007,103,0,104,0,111,2.111,112,2.89,127,0.72,144,1.557,145,2.488,148,1.092,165,0.45,204,1.211,216,1.324,217,1.189,221,2.569,227,0.755,234,0.924,247,2.26,264,3.032,305,1.016,329,3.109,334,0.628,347,0.72,364,1.671,368,3.808,371,3.004,379,2.864,403,4.737,432,2.106,461,1.894,529,1.557,575,2.104,627,2.23,687,1.638,692,1.315,701,4.25,768,4.042,773,5.278,798,2.207,803,2.207,905,3.413,907,6.71,1052,2.919,1053,3.645,1236,3.433,1240,5.565,1545,1.128,1717,6.778,1724,4.607,1850,4.592,1991,3.082,2008,2.267,2171,2.448,2188,4.592,2489,3.256,2841,5.524,3091,4.969,3448,5.524,3453,7.268,3456,2.505,3457,8.647,3458,6.106,3459,2.104,5391,4.328,5784,7.245,6326,4.592,6896,2.267,6911,2.3,7181,7.531,7652,5.011,7657,7.197,7667,7.531,8159,2.505,9822,6.398,10769,2.846,11421,7.215,11439,6.395,11500,6.907,11565,4.763,11566,9.775,11567,3.084,11568,4.45,11569,6.256,11570,7.706,11571,2.846,11572,2.846,11573,4.976,11574,3.084,11575,3.084,11576,9.565,11577,3.084,11578,3.084,11579,3.084,11580,2.758,11581,4.592,11582,3.084,11583,6.256,11584,4.976,11585,9.775,11586,4.222,11587,4.976,11588,4.976,11589,9.52,11590,3.768,11591,4.128,11592,5.72,11593,4.328,11594,3.084,11595,3.084,11596,4.976,11597,7.179,11598,4.976,11599,7.179,11600,3.084,11601,3.084,11602,7.179,11603,7.179,11604,4.592,11605,4.976,11606,3.084,11607,3.084,11608,4.222,11609,4.763,11610,6.682,11611,4.976,11612,3.084,11613,3.084,11614,3.084,11615,4.976,11616,6.533,11617,2.846,11618,2.846,11619,4.976,11620,3.084,11621,3.084,11622,3.084,11623,3.084,11624,3.084,11625,3.084,11626,4.976,11627,3.084,11628,3.084,11629,3.084,11630,4.592,13028,5.696,13029,3.53,13030,3.53,13031,3.53,13032,3.53,13033,3.53,13034,3.53,13035,3.53,13036,3.53,13037,3.53,13038,3.53,13039,3.53,13040,3.53]],["title/injectables/KeycloakIdentityManagementOauthService.html",[105,0.89,12191,5.64]],["body/injectables/KeycloakIdentityManagementOauthService.html",[0,0.19,3,0.015,4,0.015,5,0.008,7,0.086,8,0.978,27,0.481,29,0.642,30,0.001,31,0.454,32,0.147,33,0.405,35,1.263,36,2.516,47,0.934,51,4.002,87,5.486,95,0.16,101,0.011,103,0,104,0,105,1.068,107,1.336,111,2.389,112,2.797,127,1.023,145,2.698,148,2.506,150,2.048,163,2.554,165,0.639,187,0.8,216,1.934,217,1.575,221,2.247,227,1.22,234,0.906,235,3.16,277,2.234,369,1.234,404,1.464,406,1.783,596,2.894,773,3.585,784,2.947,789,7.67,801,3.256,803,6.939,839,2.621,853,2.837,1016,2.892,1158,2.971,1253,2.575,1265,8.165,1266,3.19,1267,6.154,1268,3.585,1381,3.256,1459,3.693,1596,3.961,1597,4.5,1598,4.877,1691,3.446,2344,2.307,2841,7.461,2955,3.16,4556,2.858,5382,3.19,5472,4.71,7134,4.881,7136,4.138,8108,4.138,8597,3.752,8636,3.886,9083,7.575,9113,4.5,10883,6.528,10903,4.877,10904,4.877,10905,4.667,10906,4.877,10919,5.157,11007,8.326,11072,3.816,11075,3.693,11076,4.667,11077,3.816,11080,3.816,11083,4.939,11087,6.406,11439,5.975,12185,9.044,12187,4.667,12191,6.771,12194,5.157,12195,9.658,12196,9.658,12197,7.481,12200,7.481,12202,7.944,12752,7.575,12760,4.242,12762,4.242,12900,4.5,12940,7.481,12941,5.157,12942,5.157,13041,9.133,13042,9.53,13043,10.455,13044,5.582,13045,8.098,13046,8.098,13047,5.582,13048,5.582,13049,5.582,13050,5.582,13051,11.577,13052,5.582,13053,5.582,13054,5.582,13055,5.582,13056,5.582,13057,5.582,13058,5.582,13059,5.582,13060,5.582,13061,5.582,13062,5.582,13063,5.582,13064,5.582,13065,5.582,13066,5.582,13067,5.582,13068,5.582,13069,5.582,13070,5.582]],["title/injectables/KeycloakIdentityManagementService.html",[105,0.89,12193,5.64]],["body/injectables/KeycloakIdentityManagementService.html",[0,0.115,3,0.009,4,0.009,5,0.005,7,0.052,8,0.662,27,0.493,29,0.955,30,0.001,31,0.656,32,0.171,33,0.585,34,2.18,35,1.413,36,2.778,39,2.874,47,0.995,51,4.662,59,1.702,87,5.574,94,3.799,95,0.121,98,2.007,99,0.572,101,0.006,103,0,104,0,105,0.723,107,0.806,111,1.887,112,3,116,1.775,127,0.426,144,2.578,145,0.869,167,2.093,187,0.482,215,1.09,216,0.623,217,1.605,221,3.076,227,1.252,234,1.682,247,2.175,305,2.983,369,1.212,371,1.511,403,5.288,404,0.991,406,1.076,461,2.174,484,4.79,485,4.79,510,2.44,511,4.505,521,4.42,558,1.601,575,2.007,596,3.426,643,3.891,701,2.422,738,1.944,750,7.769,756,2.942,758,3.111,759,2.942,760,2.942,773,2.163,784,1.778,788,9.575,851,3.404,852,3.404,853,3.525,905,2.277,1008,2.992,1062,1.47,1092,4.584,1158,1.792,1415,3.305,1459,3.627,2298,3.305,2841,5.914,3493,2.816,3945,2.715,7721,2.816,7722,2.942,10351,2.03,11439,4.568,12173,2.559,12193,4.584,12204,5.065,12205,5.065,12206,5.065,12207,5.065,12208,7.384,12209,6.406,12210,6.406,12211,5.065,12212,5.065,12213,5.065,12214,7.384,12219,5.065,12222,5.065,12223,5.065,12225,5.065,12228,5.065,12229,7.384,12232,3.111,12233,9.187,12235,8.714,12237,3.111,12238,8.128,12244,2.631,12752,5.792,12755,2.496,12760,2.559,12762,2.559,12775,3.111,12778,5.065,12801,6.444,13041,6.983,13071,5.483,13072,5.483,13073,3.368,13074,3.368,13075,5.483,13076,3.368,13077,5.483,13078,7.687,13079,3.368,13080,5.483,13081,3.368,13082,3.368,13083,3.368,13084,5.483,13085,3.368,13086,3.368,13087,3.368,13088,3.368,13089,3.368,13090,5.483,13091,3.368,13092,5.483,13093,3.368,13094,2.942,13095,10.367,13096,3.368,13097,5.483,13098,5.483,13099,5.483,13100,2.942,13101,2.942,13102,2.942,13103,3.368,13104,5.483,13105,5.483,13106,3.368,13107,3.368,13108,3.368,13109,5.483,13110,3.368,13111,6.935,13112,3.368,13113,6.935,13114,5.483,13115,5.483,13116,3.368,13117,7.993,13118,5.483,13119,5.483,13120,3.368,13121,3.368,13122,2.942,13123,3.368,13124,3.368,13125,3.368,13126,3.368,13127,3.368,13128,3.368,13129,3.368,13130,3.368,13131,3.368,13132,5.483,13133,5.483,13134,6.935,13135,6.935,13136,3.368,13137,2.942,13138,3.111,13139,2.496,13140,2.44,13141,3.368,13142,3.368,13143,3.368,13144,3.368,13145,3.368,13146,3.368,13147,3.368,13148,3.368,13149,3.368,13150,3.368]],["title/controllers/KeycloakManagementController.html",[481,2.63,12831,5.893]],["body/controllers/KeycloakManagementController.html",[0,0.272,3,0.021,4,0.021,5,0.011,7,0.123,8,1.251,27,0.332,30,0.001,35,1.251,36,2.252,55,2.279,72,4.865,78,7.862,95,0.147,101,0.015,103,0.001,104,0.001,111,1.598,112,2.58,187,1.144,215,2.585,216,1.916,221,2.711,227,1.092,234,1.296,305,2.298,364,1.481,432,3.83,447,3.349,481,3.114,483,3.844,784,4.216,905,3.317,1052,3.255,1053,4.595,1158,4.25,1236,6.245,1459,5.283,1545,2.552,2340,6.439,2841,6.964,2955,4.521,3091,5.549,6047,6.751,10349,7.212,11439,5.922,11500,6.396,11570,7.873,11571,6.439,11572,6.439,11604,9.811,12831,9.051,13151,10.361,13152,7.378,13153,7.987,13154,12.17,13155,10.361,13156,7.987,13157,10.361,13158,10.361,13159,8.353,13160,8.353,13161,10.361,13162,9.572,13163,10.361,13164,11.501,13165,7.987,13166,7.987,13167,7.987,13168,7.987,13169,7.987,13170,7.987,13171,7.987,13172,7.987]],["title/injectables/KeycloakMigrationService.html",[105,0.89,12829,5.64]],["body/injectables/KeycloakMigrationService.html",[0,0.195,3,0.015,4,0.015,5,0.008,7,0.088,8,0.995,27,0.401,29,0.766,30,0.001,31,0.542,32,0.148,33,0.483,34,1.414,35,0.995,36,2.298,51,4.774,55,1.813,66,7.098,70,4.84,87,2.825,94,5.025,95,0.15,101,0.011,103,0.001,104,0.001,105,1.087,107,1.368,111,2.335,112,2.619,127,1.041,144,2.252,187,0.819,216,1.787,217,1.624,221,2.903,227,1.018,234,0.928,247,4.446,305,1.645,329,1.684,369,1.821,371,2.271,403,6.993,639,7.16,643,6.855,648,4.78,651,9.766,731,3.226,773,3.672,784,3.018,798,3.574,818,8.717,894,4.609,905,4.012,907,3.98,983,4.78,1018,5.368,1021,4.385,1052,3.937,1053,4.688,1126,4.143,1158,3.042,1182,4.78,1195,4.609,1298,3.868,1299,3.823,1300,3.823,1415,3.446,1459,5.45,1545,1.826,1646,4.466,1807,4.466,1808,4.237,2287,4.609,2951,3.407,3945,4.609,7853,4.237,10351,3.446,10381,4.344,10977,6.889,11439,6.042,11500,6.526,11568,8.754,11616,5.97,12244,4.466,12752,7.66,12755,4.237,12760,4.344,12762,4.344,12801,4.609,12829,6.889,12843,9.235,12857,4.78,12860,6.889,12910,4.994,13078,7.198,13094,4.994,13100,4.994,13101,4.994,13102,4.994,13122,4.994,13137,4.994,13173,4.78,13174,7.611,13175,5.717,13176,7.611,13177,5.717,13178,8.239,13179,5.717,13180,5.717,13181,9.66,13182,5.717,13183,5.717,13184,8.239,13185,5.281,13186,5.717,13187,5.717,13188,5.717,13189,7.611,13190,5.281,13191,7.611,13192,5.281,13193,5.281,13194,5.281,13195,7.611,13196,7.611,13197,9.66,13198,5.717,13199,5.281,13200,5.717,13201,5.717,13202,5.717]],["title/modules/KeycloakModule.html",[425,1.808,12184,5.438]],["body/modules/KeycloakModule.html",[0,0.276,3,0.022,4,0.022,5,0.011,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,187,1.163,425,3.107,427,3,428,3.165,429,3.263,430,3.249,431,3.22,432,4.284,433,4.371,438,6.13,442,4.209,443,3.192,444,3.112,449,4.209,773,5.212,803,5.074,1266,4.638,1545,2.593,2841,7.037,3956,7.037,7721,6.786,8104,9.404,8636,5.649,11439,4.638,12183,10.138,12184,11.309,12187,6.786,12188,6.543,12189,7.09,12191,11.542,12193,11.542,12759,8.753,13203,8.116,13204,8.116,13205,8.116,13206,8.116,13207,8.116]],["title/classes/KeycloakSeedService.html",[0,0.23,12828,5.64]],["body/classes/KeycloakSeedService.html",[0,0.167,2,0.565,3,0.013,4,0.013,5,0.007,7,0.076,8,0.891,18,2.431,27,0.459,29,0.585,30,0.001,31,0.414,32,0.124,33,0.369,34,1.266,35,1.273,36,2.671,51,4.375,72,2.31,87,2.431,94,4.208,95,0.147,101,0.009,103,0,104,0,111,2.496,112,2.919,116,2.865,127,0.932,144,1.345,145,1.27,163,2.327,187,0.705,216,1.365,217,1.667,221,3.09,227,1.209,247,3.512,369,2.174,371,1.356,394,2.812,403,4.881,461,2.55,643,5.236,648,4.114,688,2.597,691,2.577,722,2.17,731,4.126,738,2.84,773,3.16,839,2.31,851,2.415,852,2.415,853,2.501,874,5.236,905,3.064,907,3.425,1182,4.114,1195,3.966,1241,4.545,1298,4.947,1299,4.888,1300,4.888,1415,2.965,1646,3.844,2171,2.115,2187,3.307,2287,3.966,2298,2.965,2309,2.759,3091,4.484,3945,3.966,4641,3.307,7657,6.979,7668,2.965,7853,3.647,8101,4.114,9822,6.979,9959,6.445,9992,6.816,9993,6.816,10008,4.545,10277,3.565,10351,2.965,10977,8.223,11439,6.556,11499,9.204,11500,7.081,11504,9.204,11506,8.223,11511,4.298,12173,3.739,12244,3.844,12748,3.844,12752,7.126,12755,3.647,12760,3.739,12762,3.739,12801,7.136,12821,4.298,12828,6.169,12843,10.022,12857,4.114,12860,6.169,12910,7.733,12932,6.445,12933,6.445,13078,6.445,13094,4.298,13100,4.298,13101,4.298,13102,4.298,13122,4.298,13137,4.298,13138,4.545,13139,3.647,13140,3.565,13174,6.816,13176,6.816,13185,4.545,13189,6.816,13190,4.545,13191,6.816,13192,4.545,13193,4.545,13194,4.545,13195,6.816,13196,6.816,13199,4.545,13208,4.92,13209,9.835,13210,9.835,13211,8.852,13212,4.92,13213,4.92,13214,4.92,13215,4.92,13216,4.92,13217,4.92,13218,4.92,13219,7.378,13220,4.92,13221,4.92,13222,4.92,13223,8.852,13224,4.92,13225,4.92,13226,4.92,13227,4.92,13228,4.92,13229,4.92,13230,4.92,13231,3.966,13232,4.92,13233,4.92,13234,4.545,13235,4.545,13236,4.545,13237,4.92,13238,3.844,13239,4.92,13240,4.92,13241,4.92,13242,4.92,13243,7.378,13244,4.92]],["title/classes/LdapAlreadyPersistedException.html",[0,0.23,13245,5.438]],["body/classes/LdapAlreadyPersistedException.html",[0,0.405,2,0.864,3,0.02,4,0.02,5,0.011,7,0.116,8,1.203,27,0.414,29,0.597,30,0.001,31,0.422,32,0.105,33,0.376,35,0.909,47,0.901,52,5.183,55,1.655,59,2.335,95,0.128,101,0.023,103,0.001,104,0.001,127,0.951,187,1.078,192,3.331,214,3.914,227,1.177,383,4.902,404,2.236,461,2.575,795,5.873,1134,5.057,1238,4.832,1327,4.413,1542,5.773,1543,6.429,1545,2.404,1547,6.325,1819,6.399,2685,5.694,4442,4.928,8137,6.429,8138,6.693,8236,10.247,13245,8.032,13246,9.34,13247,5.577,13248,9.972,13249,9.942,13250,7.524,13251,9.942,13252,7.524,13253,6.291,13254,6.291,13255,6.065,13256,8.33,13257,5.452,13258,6.065]],["title/classes/LdapAuthorizationBodyParams.html",[0,0.23,13259,5.64]],["body/classes/LdapAuthorizationBodyParams.html",[0,0.378,2,1.025,3,0.024,4,0.024,5,0.013,7,0.137,27,0.526,30,0.001,32,0.178,47,0.993,48,5.687,51,5.986,87,5.986,95,0.143,101,0.017,103,0.001,104,0.001,165,0.878,364,2.35,374,2.852,376,2.094,467,3.506,470,5.104,1000,5.18,1001,7.218,4227,4.17,5711,8.058,7184,8.964,13259,9.297,13260,13.044,13261,7.798,13262,8.246,13263,8.926,13264,8.926,13265,8.926]],["title/classes/LdapConfig.html",[0,0.23,11846,4.888]],["body/classes/LdapConfig.html",[0,0.301,2,0.461,3,0.011,4,0.011,5,0.006,7,0.062,26,1.627,27,0.508,29,0.318,30,0.001,31,0.225,32,0.177,33,0.66,47,1.029,83,3.069,95,0.113,96,1.085,101,0.018,103,0,104,0,127,0.507,138,1.742,150,3.523,165,0.498,208,1.489,216,1.442,240,4.35,277,1.606,334,0.442,347,1.286,359,1.391,364,2.235,369,3.008,370,4.364,371,1.106,379,0.925,380,1.631,386,6.778,398,1.175,399,2.47,400,1.761,402,1.651,404,0.725,405,1.082,406,1.282,496,1.691,722,1.77,775,2.447,783,2.418,1031,2.498,1114,1.628,1252,2.391,1576,2.418,1659,2.847,1691,2.477,2113,2.542,2138,2.974,2618,3.23,2621,1.895,4293,3.413,4331,4.477,4556,4.524,5236,2.508,5472,3.117,5602,3.161,5621,2.542,5622,2.743,6090,3.504,6359,4.753,6992,2.577,7078,2.697,7134,3.802,8597,2.697,9975,2.229,10947,6.549,11026,2.974,11027,2.974,11028,2.974,11029,3.049,11072,2.743,11075,2.654,11077,2.743,11080,2.743,11083,2.447,11087,2.697,11477,3.049,11590,5.156,11733,2.847,11843,4.793,11844,3.235,11845,4.173,11846,8.007,11847,7.099,11848,3.943,11849,4.391,11850,5.079,11851,2.654,11852,2.654,11853,3.235,11854,4.312,11855,4.675,11856,3.135,11857,4.675,11858,3.049,11859,3.049,11860,3.049,11861,3.049,11862,3.135,11863,3.049,11864,3.049,11865,3.049,11866,3.135,11867,4.675,11868,3.135,11869,3.049,11870,3.135,11871,3.049,11872,3.049,11873,3.049,11874,3.135,11875,4.312,11876,5.085,11877,3.235,11878,3.235,11879,3.235,11880,3.235,11881,3.235,11882,3.235,11883,3.235,11884,3.235,11885,3.235,11886,3.235,11887,3.235,11888,3.135,11889,3.235,11890,3.235,11891,3.235,11892,3.235,11893,3.235,11894,3.235,11895,3.235,11896,3.235,11897,3.235,11898,6.284,11899,6.284,11900,6.284,11901,6.284,11902,6.284,11903,6.284,11904,6.284,11905,6.284,11906,2.974,11907,3.235,11908,3.235,11909,3.235,11910,3.235,11911,3.235,11912,3.235,11913,3.235,11914,3.235,11915,3.235,11916,3.235,11917,3.235,11918,3.235,11919,3.235,11920,3.235,11921,3.049,11922,3.235,11923,2.974,11924,3.135,11925,3.049,11926,3.135,11927,3.049,11928,3.049,11929,3.135,11930,3.049,11931,3.135,11932,3.049,11933,2.907,11934,2.907,11935,2.907,11936,2.974,11937,3.049,11938,3.235,11939,3.049,11940,3.235,11941,3.235,11942,3.235,11943,3.235,11944,3.235,11945,3.049,11946,3.135,11947,3.049,11948,3.135,13266,4.012,13267,4.012,13268,4.012,13269,4.012,13270,4.012,13271,4.012,13272,4.012,13273,4.012,13274,4.012,13275,4.012,13276,4.012,13277,4.012,13278,4.012]],["title/classes/LdapConnectionError.html",[0,0.23,13279,5.893]],["body/classes/LdapConnectionError.html",[0,0.264,2,0.891,3,0.021,4,0.021,5,0.011,7,0.119,8,1.228,27,0.542,29,0.615,30,0.001,31,0.435,32,0.19,33,0.567,35,0.937,47,0.826,55,1.706,59,2.407,95,0.13,101,0.015,103,0.001,104,0.001,127,0.98,165,0.802,187,1.111,204,4.129,216,2.502,364,2.316,404,1.838,406,2.478,558,3.686,564,2.879,596,3.893,798,6.355,1013,5.518,1016,2.77,1134,6.832,1253,5.23,1291,5.121,1327,4.479,1472,8.273,1473,7.14,1474,4.085,1475,7.282,1479,5.053,1480,4.349,1481,5.053,1482,5.053,1483,5.053,1484,5.053,1485,5.053,1486,4.73,1487,4.433,1493,4.913,11592,7.076,13279,8.88,13280,10.165,13281,7.756,13282,8.499,13283,7.756,13284,7.756,13285,7.756]],["title/injectables/LdapService.html",[105,0.89,1630,5.64]],["body/injectables/LdapService.html",[0,0.23,3,0.018,4,0.018,5,0.01,7,0.104,8,1.119,27,0.439,29,0.839,30,0.001,31,0.593,32,0.148,33,0.528,35,1.119,36,2.473,47,0.977,51,6.233,87,6.347,95,0.158,99,1.146,101,0.013,103,0.001,104,0.001,105,1.222,107,1.616,111,2.115,112,2.372,127,0.853,150,2.477,154,3.079,187,0.967,204,2.317,215,2.186,216,1.249,217,1.395,221,1.592,227,0.976,234,1.716,305,2.666,461,1.557,511,3.458,556,5.012,894,5.444,1052,3.776,1053,5.046,1114,5.401,1134,4.539,1440,4.617,1441,5.006,1459,7.527,1461,5.647,1545,2.158,1630,7.745,2038,6.333,2993,4.467,3508,5.276,3544,4.391,3920,5.9,3922,5.9,7797,8.093,10910,8.093,11592,4.701,11846,6.712,11888,5.276,12948,7.039,13279,8.093,13286,6.754,13287,9.264,13288,6.754,13289,9.264,13290,6.754,13291,9.264,13292,6.754,13293,6.239,13294,6.754,13295,6.754,13296,6.754,13297,6.754,13298,6.754,13299,6.754,13300,6.754,13301,6.754,13302,4.793,13303,6.754,13304,6.754,13305,6.754,13306,6.754,13307,6.754,13308,6.754,13309,6.754,13310,6.754,13311,6.754,13312,6.754,13313,6.239,13314,5.647,13315,6.754,13316,6.754]],["title/injectables/LdapStrategy.html",[105,0.89,1631,5.893]],["body/injectables/LdapStrategy.html",[0,0.147,3,0.011,4,0.011,5,0.006,7,0.067,8,0.809,27,0.437,29,0.871,30,0.001,31,0.653,32,0.17,33,0.526,34,0.744,35,1.203,36,2.288,39,1.161,47,0.916,48,5.581,51,5.202,66,6.668,72,2.034,87,5.751,94,5.389,95,0.159,99,0.735,101,0.008,103,0,104,0,105,0.883,107,1.037,111,2.602,112,2.61,127,0.846,138,3.999,144,2.517,145,2.377,167,3.516,187,0.621,189,5.583,192,3.139,204,3.16,206,2.218,216,1.947,217,1.568,221,2.743,227,0.971,234,1.495,305,2.65,334,0.477,355,2.634,367,3.223,368,2.645,403,4.43,404,0.783,406,1.384,441,6.693,450,1.782,461,2.295,475,2.171,491,3.287,511,2.218,513,3.428,543,3.355,574,1.964,692,3.923,731,1.696,784,3.535,806,1.825,823,7.628,1052,4.474,1062,1.891,1114,5.049,1134,5.502,1158,3.564,1240,2.501,1459,4.43,1508,2.452,1515,5.257,1545,1.384,1627,8.135,1630,9.177,1631,5.85,1632,6.411,1640,3.211,1651,3.622,1652,4.002,1659,3.074,1784,6.186,1796,6.186,1808,3.211,1919,1.799,2038,5.596,2185,2.452,2543,3.292,3566,3.384,3613,3.211,4171,4.002,4227,3.171,4232,6.581,4485,2.962,4630,3.48,5974,4.363,6460,2.962,6539,3.292,6929,3.292,7907,4.661,8124,5.398,8152,3.292,10022,3.384,11485,3.211,11636,6.599,11694,2.962,12684,3.384,12692,3.622,12695,3.622,13259,6.844,13302,3.074,13317,4.332,13318,6.186,13319,6.697,13320,6.697,13321,3.784,13322,4.332,13323,6.697,13324,4.332,13325,6.697,13326,4.332,13327,6.697,13328,4.332,13329,4.332,13330,6.186,13331,4.332,13332,4.332,13333,4.002,13334,4.332,13335,4.332,13336,4.002,13337,3.622,13338,4.002,13339,4.332,13340,3.784,13341,4.332,13342,4.332,13343,4.002,13344,4.332,13345,4.332,13346,3.784,13347,6.186,13348,4.002,13349,4.002,13350,4.332,13351,4.002,13352,7.562,13353,4.332,13354,3.784,13355,4.332,13356,4.332,13357,4.002,13358,6.697,13359,3.622,13360,4.332,13361,3.211,13362,4.332,13363,6.697,13364,4.332,13365,4.332,13366,4.332]],["title/classes/LdapUserMigrationException.html",[0,0.23,13248,5.438]],["body/classes/LdapUserMigrationException.html",[0,0.417,2,0.934,3,0.022,4,0.022,5,0.011,30,0.001,47,0.845,52,5.382,55,1.789,95,0.134,101,0.023,103,0.001,104,0.001,187,1.165,192,3.459,214,3.818,227,1.223,383,5.299,404,2.293,461,1.875,795,6.179,1134,5.466,1238,5.223,1327,4.582,1542,5.719,1543,6.368,1545,2.598,1547,5.772,1819,6.732,2685,6.63,4442,3.587,8137,6.368,8138,6.63,8236,9.878,13245,6.556,13246,6.799,13247,6.028,13248,10.223,13249,9.699,13251,9.699,13253,6.799,13254,6.799,13255,6.556,13256,8.764,13257,5.893,13258,6.556]],["title/modules/LearnroomApiModule.html",[425,1.808,13367,5.438]],["body/modules/LearnroomApiModule.html",[0,0.217,3,0.017,4,0.017,5,0.009,30,0.001,95,0.169,101,0.012,103,0.001,104,0.001,187,0.912,425,2.748,427,2.354,428,2.483,429,2.561,430,2.549,431,2.527,432,3.789,433,2.402,441,7.375,442,3.576,443,2.505,444,2.442,446,4.034,447,3.73,449,4.121,450,2.62,574,2.887,836,3.676,1945,6.543,1958,7.375,1962,7.767,1984,2.724,1991,3.446,2767,2.871,2769,3.147,2994,8.964,3026,3.931,3027,3.64,3673,4.354,4996,4.72,6234,8.763,6478,8.955,6492,10.111,6494,10.111,6574,10.111,7217,8.955,7234,10.111,7496,9.448,7581,6.949,7601,4.839,7914,9.448,8006,9.749,8221,4.839,9419,4.281,13367,11.508,13368,6.369,13369,6.369,13370,6.369,13371,8.964,13372,8.964,13373,10.111,13374,10.111,13375,10.111,13376,6.369,13377,8.955,13378,5.564,13379,6.369,13380,6.369,13381,6.369,13382,6.369,13383,5.883,13384,6.369,13385,5.883]],["title/modules/LearnroomModule.html",[425,1.808,13371,5]],["body/modules/LearnroomModule.html",[0,0.223,3,0.017,4,0.017,5,0.009,30,0.001,95,0.163,101,0.012,103,0.001,104,0.001,130,9.674,187,0.938,425,2.788,427,2.419,428,2.552,429,2.631,430,2.62,431,2.597,432,3.845,433,3.923,438,5.762,441,7.438,442,3.645,443,2.574,444,2.509,449,3.645,450,2.693,766,2.813,836,3.778,1545,2.091,1958,7.438,1962,7.833,1983,9.529,2983,10.198,2994,9.041,3026,4.04,3027,3.741,4828,10.198,4840,5.717,4929,11.162,6234,8.838,6515,10.762,6522,10.762,7496,9.529,7581,7.082,8221,4.973,13371,10.596,13372,9.041,13378,5.717,13385,6.046,13386,6.545,13387,6.545,13388,6.545,13389,6.545,13390,9.041,13391,6.545,13392,6.046]],["title/injectables/LegacyLogger.html",[105,0.89,1053,2.992]],["body/injectables/LegacyLogger.html",[0,0.306,3,0.013,4,0.013,5,0.007,7,0.078,8,1.205,27,0.514,29,0.965,30,0.001,31,0.704,32,0.17,33,0.608,35,1.437,47,0.991,59,3.595,72,2.377,95,0.143,101,0.01,102,2.554,103,0,104,0,105,0.994,107,1.212,111,2.476,127,0.64,144,1.384,145,2.324,148,3.886,163,3.146,165,0.595,187,0.725,199,5.292,204,2.586,214,2.964,216,0.936,217,0.994,227,0.794,234,0.822,277,3.017,329,2.221,336,1.234,574,3.417,675,2.787,685,2.651,766,3.24,777,5.727,839,2.377,1052,4.956,1053,3.343,1062,5.055,1110,3.251,1327,4.889,1498,5.461,1508,2.865,1828,2.257,2116,2.739,2450,3.207,2993,3.349,3874,3.207,4480,5.461,5121,3.251,5400,4.986,7661,3.524,8159,8.445,8179,8.714,8189,4.423,8190,5.888,8193,4.423,9420,7.259,10022,3.955,10491,6.302,11216,4.84,11519,9.317,11522,4.423,11523,6.584,11524,6.963,11526,6.963,11527,9.215,11529,6.963,11530,8.714,11532,6.963,11534,6.963,13393,12.561,13394,5.063,13395,7.537,13396,9.215,13397,9.215,13398,7.537,13399,7.537,13400,5.063,13401,5.063,13402,5.063,13403,5.063,13404,5.063,13405,6.963,13406,5.063,13407,7.537,13408,5.063,13409,5.063,13410,7.537,13411,7.537,13412,6.584,13413,5.888,13414,7.537,13415,5.063,13416,5.063,13417,4.677,13418,4.081,13419,5.063,13420,4.081,13421,4.423,13422,4.081,13423,5.063,13424,5.063,13425,5.063,13426,5.063,13427,5.063,13428,6.584,13429,5.063,13430,4.677,13431,4.677]],["title/modules/LegacySchoolApiModule.html",[425,1.808,13432,5.438]],["body/modules/LegacySchoolApiModule.html",[0,0.272,3,0.021,4,0.021,5,0.011,30,0.001,52,3.713,95,0.171,101,0.015,102,6.146,103,0.001,104,0.001,187,1.146,189,5.817,192,2.386,355,3.147,425,3.086,427,2.959,428,3.12,429,3.218,430,3.203,431,3.175,432,4.256,433,3.018,438,6.107,442,4.171,443,3.147,444,3.068,446,5.069,447,4.35,449,4.171,1252,4.769,1545,2.557,1945,6.995,1951,8.303,2767,3.608,2769,3.955,4561,4.259,9465,5.214,13432,11.291,13433,8.003,13434,8.003,13435,8.003,13436,9.824,13437,10.81,13438,10.81,13439,6.691,13440,7.362,13441,10.057,13442,8.003,13443,8.003,13444,8.003,13445,7.393]],["title/controllers/LegacySchoolController.html",[481,2.63,13441,5.893]],["body/controllers/LegacySchoolController.html",[0,0.224,3,0.017,4,0.017,5,0.009,7,0.101,8,1.099,27,0.378,29,0.722,30,0.001,31,0.51,32,0.171,33,0.455,35,1.099,36,2.446,95,0.164,100,2.202,101,0.013,102,5.677,103,0.001,104,0.001,111,1.316,112,2.74,187,0.942,189,5.1,192,3.109,215,2.129,216,1.682,217,1.484,221,2.144,227,0.959,234,1.476,264,4.415,364,1.686,376,1.543,379,2.404,447,2.758,481,2.564,483,3.166,491,6.147,494,5.483,511,5.76,513,6.633,543,4.558,555,3.472,556,3.559,557,3.589,559,3.589,561,5.691,728,3.562,1828,5.017,2769,3.25,3710,5.483,4038,4.06,9465,6.794,13437,7.605,13438,8.718,13440,6.455,13441,7.946,13445,6.076,13446,10.428,13447,6.076,13448,9.633,13449,9.11,13450,6.577,13451,11.574,13452,6.577,13453,11.251,13454,6.577,13455,9.096,13456,6.577,13457,6.577,13458,10.94,13459,6.577,13460,6.577,13461,6.577,13462,7.605,13463,7.946,13464,6.742,13465,7.924,13466,8.406,13467,5.499,13468,5.745,13469,9.521,13470,6.577,13471,6.577,13472,6.577,13473,6.577,13474,6.455,13475,6.577,13476,6.577,13477,6.577,13478,6.577,13479,6.577,13480,9.096,13481,6.577,13482,6.577]],["title/classes/LegacySchoolDo.html",[0,0.23,189,3.782]],["body/classes/LegacySchoolDo.html",[0,0.221,2,0.744,3,0.017,4,0.017,5,0.009,7,0.1,26,2.452,27,0.557,29,0.514,30,0.001,31,0.627,32,0.188,33,0.695,34,1.546,47,0.94,83,2.71,95,0.133,101,0.012,102,5.642,103,0.001,104,0.001,127,0.819,165,0.711,185,2.538,189,6.587,347,1.835,404,2.021,406,2.071,596,1.968,618,2.758,854,5.221,883,3.776,1911,4.001,1919,3.74,1939,7.02,1993,6.156,2136,2.594,2485,3.89,2586,3.422,3852,6.156,5612,4.696,6359,7.756,6367,6.955,6443,4.925,6744,3.863,7036,4.925,8300,6.469,8304,4.804,8983,5.662,9473,7.529,9474,6.842,9475,7.95,9975,5.748,11692,7.863,11693,7.498,11694,7.074,11695,7.203,11720,7.203,11722,4.804,11723,5.225,11726,4.925,11730,5.225,11733,4.6,13483,13.428,13484,6.482,13485,7.866,13486,9.005,13487,6.482,13488,6.482,13489,6.482,13490,6.482,13491,6.482,13492,6.482,13493,6.482,13494,6.482,13495,6.482,13496,6.482,13497,5.988,13498,6.482,13499,6.482,13500,6.482,13501,6.482,13502,6.482,13503,6.482,13504,6.482,13505,6.482,13506,6.482,13507,5.063,13508,6.482,13509,6.482]],["title/classes/LegacySchoolFactory.html",[0,0.23,13510,6.231]],["body/classes/LegacySchoolFactory.html",[0,0.17,2,0.572,3,0.013,4,0.013,5,0.007,7,0.077,8,0.899,27,0.532,29,1.026,30,0.001,31,0.702,32,0.184,33,0.616,34,1.278,35,1.462,47,0.542,55,2.534,59,3.288,95,0.127,99,0.845,101,0.009,103,0,104,0,127,0.629,138,3.234,144,3.237,148,1.541,165,0.588,185,4.828,189,2.793,216,1.377,217,0.657,227,0.525,234,1.606,329,3.489,359,2.582,366,2.742,369,1.101,379,2.056,380,1.866,381,2.451,404,1.346,538,3.339,596,3.891,627,2.319,660,6.992,661,4.683,662,5.548,665,4.175,666,5.548,667,5.56,668,4.175,669,4.175,670,4.175,671,4.1,672,4.532,673,5,674,6.463,675,5.831,676,6.939,677,2.819,682,2.793,683,4.175,684,2.819,685,5.183,686,5.4,687,4.591,688,5.224,689,4.137,690,2.793,691,2.609,692,4.141,693,2.718,694,2.673,695,2.793,696,5.104,697,2.819,698,4.91,699,2.793,700,6.912,701,4.137,702,6.64,703,2.819,704,3.68,705,2.793,706,2.819,707,2.793,708,2.819,709,2.793,712,2.793,713,6.119,714,2.819,715,2.793,716,4.175,717,4.1,718,4.175,719,2.819,720,2.695,721,2.673,722,2.197,723,2.793,724,2.793,725,2.793,726,2.819,727,2.819,728,1.951,729,2.793,730,2.819,731,2.916,732,2.793,733,2.819,736,2.936,854,2.513,905,4.11,4335,6.329,4337,3.609,6359,3.038,6367,3.348,8300,3.114,9475,3.114,9975,2.767,11692,3.785,11693,3.609,11694,3.405,11699,4.015,11906,3.692,13510,6.879,13511,4.981,13512,4.981,13513,4.981,13514,4.981,13515,4.981,13516,4.981,13517,4.981,13518,4.981,13519,4.981,13520,9.895,13521,3.785,13522,3.785,13523,3.785,13524,4.981,13525,4.981,13526,4.981,13527,4.981]],["title/modules/LegacySchoolModule.html",[425,1.808,1951,4.332]],["body/modules/LegacySchoolModule.html",[0,0.259,3,0.02,4,0.02,5,0.011,30,0.001,95,0.159,101,0.015,102,6.031,103,0.001,104,0.001,129,8.444,187,1.092,189,5.635,425,3.014,427,2.818,428,2.973,429,3.065,430,3.052,431,3.025,432,4.157,433,4.24,438,6.027,442,4.041,443,2.998,444,2.923,449,4.041,450,3.136,766,3.277,1545,2.436,1632,8.881,1951,9.099,2570,4.125,9458,10.667,9464,11.437,9465,4.967,13439,6.374,13440,7.133,13528,7.624,13529,7.624,13530,7.624,13531,7.624,13532,11.437,13533,10.667,13534,10.667,13535,7.624]],["title/injectables/LegacySchoolRepo.html",[105,0.89,1632,4.695]],["body/injectables/LegacySchoolRepo.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,8,0.801,10,2.68,12,3.061,18,3.279,26,2.473,27,0.535,29,1.015,30,0.001,31,0.728,32,0.179,33,0.639,34,1.571,35,1.531,36,2.622,40,2.061,47,0.844,48,4.65,95,0.134,96,1.794,97,1.822,99,0.727,101,0.008,102,4.618,103,0,104,0,105,0.875,107,1.025,111,2.259,112,2.912,127,0.541,145,1.105,148,1.325,165,0.338,167,3.781,187,0.613,189,6.764,192,1.979,216,1.227,217,1.207,221,1.564,227,1.104,234,1.319,305,1.232,359,2.301,380,1.915,398,1.254,404,1.2,511,2.192,595,1.474,596,3.769,661,3.424,844,5.12,854,4.618,878,4.619,884,3.135,885,4.928,905,1.778,915,2.357,1052,3.731,1053,4.059,1114,2.692,1439,2.048,1545,1.368,1632,4.619,1857,3.475,2092,2.423,2383,8.744,2385,4.709,2386,4.709,2387,4.709,2388,4.709,2389,4.619,2390,4.619,2391,4.709,2392,4.619,2393,4.709,2394,3.102,2395,5.231,2397,4.808,2398,3.038,2400,5.231,2401,3.038,2403,3.038,2405,2.832,2406,4.709,2407,3.038,2409,3.038,2411,4.709,2415,4.709,2417,4.46,2418,4.619,2420,3.038,2422,2.611,2423,2.611,2424,3.038,2426,3.038,2428,3.038,2429,3.038,2435,2.878,4355,2.75,4356,3.345,4457,4,5766,4.808,5767,3.102,5768,3.102,5769,3.102,5770,3.102,5771,3.102,5772,3.102,5773,3.102,5774,3.102,5782,3.253,5784,3.87,6359,4.047,6367,4.46,8300,6.55,8781,3.253,8869,3.74,9475,4.148,9717,4.148,9975,4.514,10640,3.58,11690,8.185,11692,5.042,11693,4.808,11694,4.537,11720,2.98,12600,7.378,13302,3.038,13440,4.709,13536,9.904,13537,4.281,13538,5.797,13539,6.636,13540,4.281,13541,4.281,13542,5.797,13543,4.281,13544,6.636,13545,4.281,13546,4.281,13547,4.281,13548,3.955,13549,4.281,13550,4.281,13551,4.281,13552,4.281,13553,4.281,13554,4.281,13555,4.281,13556,3.955,13557,4.281,13558,4.281,13559,3.955,13560,4.281,13561,4.281,13562,4.281,13563,4.281,13564,4.281,13565,4.281,13566,3.955,13567,4.281,13568,4.281,13569,4.281,13570,3.955,13571,4.281,13572,4.281,13573,4.281,13574,4.281,13575,3.955,13576,6.636,13577,4.281,13578,4.281]],["title/injectables/LegacySchoolRule.html",[105,0.89,1961,5.64]],["body/injectables/LegacySchoolRule.html",[0,0.257,3,0.02,4,0.02,5,0.011,7,0.116,8,1.205,27,0.464,29,0.887,30,0.001,31,0.627,32,0.157,33,0.559,35,1.205,95,0.163,99,1.279,101,0.014,102,6.005,103,0.001,104,0.001,105,1.316,107,1.804,116,4.117,127,0.953,187,1.08,189,7.273,199,4.269,214,2.481,215,2.44,216,1.394,217,1.316,227,1.051,347,2.426,359,4.292,380,2.339,461,3.072,806,3.176,1854,6.941,1862,6.552,1890,8.056,1911,4.653,1928,7.346,1939,6.869,1961,8.341,1989,6.158,2033,6.5,2056,5.067,2485,3.257,3352,6.705,3353,5.153,3356,6.599,3358,5.153,3359,5.067,3360,6.82,3361,5.728,4355,4.841,5868,5.462,13440,7.079,13579,11.9,13580,7.538,13581,7.538,13582,7.538,13583,7.538]],["title/injectables/LegacySchoolService.html",[105,0.89,129,4.164]],["body/injectables/LegacySchoolService.html",[0,0.197,3,0.015,4,0.015,5,0.008,7,0.089,8,1.002,18,4.101,26,2.518,27,0.501,29,0.957,30,0.001,31,0.677,32,0.169,33,0.603,34,0.991,35,1.414,36,2.837,47,0.951,48,4.986,95,0.136,99,0.98,101,0.011,102,5.359,103,0.001,104,0.001,105,1.094,107,1.382,111,1.66,112,3.045,127,1.049,129,5.123,144,1.578,167,3.169,187,0.827,189,7.319,192,2.475,216,1.535,217,1.545,221,2.911,227,1.186,329,1.701,371,2.678,380,1.208,450,2.376,713,3.179,854,2.914,1092,6.939,1492,3.48,1632,7.392,4227,2.857,5974,6.919,6589,7.643,9465,8.045,11636,6.69,11695,8.594,12600,9.442,13336,7.666,13440,5.889,13533,10.089,13556,5.334,13584,12.347,13585,5.775,13586,8.299,13587,8.299,13588,8.299,13589,8.299,13590,8.299,13591,5.334,13592,5.775,13593,8.299,13594,5.775,13595,8.299,13596,5.775,13597,8.299,13598,5.775,13599,5.775,13600,8.299,13601,5.775,13602,8.299,13603,5.775,13604,8.299,13605,5.775,13606,5.775,13607,8.299,13608,5.775,13609,5.775,13610,8.299,13611,5.775,13612,5.775,13613,5.775,13614,5.775]],["title/injectables/LegacySchoolUc.html",[105,0.89,13437,5.64]],["body/injectables/LegacySchoolUc.html",[0,0.189,3,0.015,4,0.015,5,0.008,7,0.086,8,0.976,27,0.395,29,0.755,30,0.001,31,0.534,32,0.133,33,0.476,35,0.976,36,2.269,39,3.101,47,0.944,52,2.583,95,0.148,99,0.945,101,0.011,102,5.268,103,0,104,0,105,1.066,107,1.332,111,2.218,112,2.595,127,1.021,128,4.488,129,6.445,132,5.19,145,2.862,167,3.086,187,0.797,189,6.217,192,2.41,216,2.051,217,1.612,221,3.023,227,0.852,234,1.312,322,6.515,347,2.54,355,2.189,766,2.393,843,2.43,1865,4.984,1866,4.574,1881,5.12,1919,2.312,1952,5.602,2027,3.627,2767,2.51,4227,4.109,4448,8.469,4449,8.845,4450,9.62,4455,6.705,4457,6.683,4461,4.349,4464,4.349,4467,5.99,4468,4.863,4470,7.06,4471,5.143,4472,5.143,4473,5.143,4561,2.962,4623,8.312,7601,4.23,9465,6.803,10225,7.06,13437,6.757,13440,5.736,13448,7.466,13449,8.312,13466,8.939,13468,4.863,13474,7.41,13521,8.789,13522,8.789,13523,8.789,13615,10.441,13616,5.567,13617,5.567,13618,8.082,13619,5.567,13620,5.143,13621,5.567,13622,5.143,13623,4.863,13624,5.567,13625,5.143,13626,4.126,13627,8.082,13628,8.082,13629,7.466,13630,5.567,13631,5.567,13632,5.567,13633,8.082,13634,10.441,13635,5.143,13636,6.515,13637,5.567,13638,5.567,13639,6.757,13640,5.567,13641,6.757,13642,4.654,13643,5.143]],["title/modules/LessonApiModule.html",[425,1.808,13644,5.438]],["body/modules/LessonApiModule.html",[0,0.306,3,0.024,4,0.024,5,0.013,30,0.001,95,0.168,101,0.017,103,0.001,104,0.001,187,1.29,425,3.26,427,3.329,428,3.512,429,3.621,430,3.605,431,3.573,432,4.496,433,3.397,442,4.496,443,3.542,444,3.453,446,5.705,447,4.689,449,4.496,481,3.512,1945,7.212,2767,4.06,2769,4.451,13372,9.879,13644,11.174,13645,9.006,13646,9.006,13647,9.006,13648,11.144,13649,9.006,13650,10.624,13651,9.006]],["title/entities/LessonBoardElement.html",[380,1.411,2700,5.438]],["body/entities/LessonBoardElement.html",[0,0.321,3,0.025,4,0.025,5,0.013,7,0.145,27,0.391,30,0.001,32,0.132,95,0.159,96,2.549,101,0.018,103,0.001,104,0.001,165,0.908,364,1.748,380,2.406,381,3.103,398,2.761,404,1.705,405,2.542,617,5.442,2620,5.499,2670,8.985,2689,6.716,2690,6.691,2693,8.334,2695,7.883,2700,9.272,2744,5.762,3022,7.164,3055,9.616,4926,4.348,4928,8.236,11971,9.616,13652,11.502,13653,8.71,13654,9.428]],["title/controllers/LessonController.html",[481,2.63,13650,5.893]],["body/controllers/LessonController.html",[0,0.297,3,0.023,4,0.023,5,0.012,7,0.134,8,1.323,10,4.839,27,0.362,29,0.691,30,0.001,31,0.489,32,0.122,33,0.435,35,1.052,36,2.381,95,0.169,100,2.917,101,0.017,103,0.001,104,0.001,112,2.688,187,1.248,215,2.82,216,1.612,217,1.149,221,2.054,227,0.918,264,3.689,364,1.615,376,2.044,447,3.654,481,3.398,483,4.194,491,6.17,513,6.631,555,4.6,556,4.715,557,4.755,559,4.755,561,4.755,1828,4.884,2769,4.306,2934,7.137,4982,4.885,13648,10.017,13650,9.569,13655,8.714,13656,7.285,13657,9.819,13658,10.954,13659,8.714,13660,8.714,13661,8.714,13662,7.285,13663,8.714,13664,8.049]],["title/classes/LessonCopyApiParams.html",[0,0.23,6287,5.64]],["body/classes/LessonCopyApiParams.html",[0,0.385,2,1.056,3,0.024,4,0.024,5,0.013,7,0.141,27,0.381,30,0.001,32,0.129,33,0.566,34,1.944,47,0.825,95,0.145,100,3.791,101,0.018,103,0.001,104,0.001,165,0.894,188,4.288,364,1.704,374,2.936,375,4.594,376,2.156,379,2.829,471,4.818,475,4.605,1000,4.843,1660,9.128,2563,7.079,2675,6.024,2691,4.969,2701,5.223,2910,6.18,2911,6.18,3305,5.596,6050,9.892,6287,9.467,6901,8.846,10357,8.029,13665,11.324,13666,8.491,13667,8.491]],["title/injectables/LessonCopyService.html",[105,0.89,2996,5.27]],["body/injectables/LessonCopyService.html",[0,0.086,3,0.007,4,0.007,5,0.004,7,0.039,8,0.521,10,2.694,26,0.527,27,0.476,29,0.884,30,0.001,31,0.635,32,0.169,33,0.557,35,1.346,36,1.997,47,0.314,95,0.135,99,0.428,101,0.005,103,0,104,0,105,0.569,107,0.604,111,2.669,112,2.501,127,0.545,138,1.096,144,2.231,145,1.722,150,2.993,165,0.34,185,4.365,187,0.362,188,0.956,208,0.937,216,1.509,217,1.759,221,2.342,227,1.293,234,0.916,240,0.791,247,2.647,284,1.522,329,0.744,347,0.879,369,0.953,371,1.188,379,0.582,450,1.039,461,0.994,564,3.8,627,2.541,1041,5.326,1062,1.102,1444,2.809,1474,2.265,1812,1.792,1828,1.922,1919,1.048,1962,5.598,1984,1.08,2116,1.366,2171,1.085,2172,1.207,2173,1.164,2174,1.599,2344,3.963,2433,1.645,2563,5.743,2594,1.902,2689,6.107,2701,4.02,2809,1.333,2880,3.583,2985,2.111,2988,3.475,2995,6.623,2996,3.368,2997,5.791,3003,1.918,3008,6.545,3013,8.472,3025,1.972,3026,1.558,3027,1.443,3039,4.717,3040,3.368,3041,2.035,3069,2.111,3070,3.475,3077,8.052,3083,2.332,3187,1.522,3331,3.74,3419,3.482,3543,2.116,3544,1.79,4953,8.841,4965,1.757,4988,2.035,4989,1.558,5005,4.928,5369,1.621,5566,1.697,6057,1.918,6186,7.027,6187,2.205,6191,4.928,6192,2.332,6200,5.828,6209,3.604,6214,6.545,6216,2.205,6227,3.368,6535,2.332,6563,2.205,8247,7.288,9553,2.111,10164,2.205,10432,4.956,11305,3.001,11307,4.683,11310,1.621,11312,3.001,11313,3.001,11314,1.757,11315,3.001,11316,1.792,11317,1.757,11318,1.645,11319,3.001,11321,1.792,11322,1.792,13668,11.62,13669,5.642,13670,4.311,13671,5.642,13672,4.311,13673,4.311,13674,5.642,13675,4.311,13676,4.311,13677,5.642,13678,4.311,13679,4.311,13680,6.671,13681,5.642,13682,4.311,13683,7.288,13684,2.525,13685,4.311,13686,2.525,13687,9.588,13688,2.525,13689,11.32,13690,2.525,13691,4.311,13692,2.525,13693,2.525,13694,2.525,13695,4.311,13696,2.525,13697,2.525,13698,2.525,13699,4.311,13700,2.525,13701,4.311,13702,2.525,13703,3.766,13704,2.525,13705,2.525,13706,2.525,13707,2.525,13708,2.525,13709,9.588,13710,9.186,13711,8.717,13712,2.525,13713,7.492,13714,4.311,13715,2.525,13716,2.525,13717,2.525,13718,2.525,13719,4.311,13720,2.525,13721,5.642,13722,2.525,13723,2.525,13724,2.525,13725,2.525,13726,2.525,13727,2.525,13728,5.642,13729,2.525,13730,7.492,13731,2.525,13732,4.311,13733,2.332,13734,2.525,13735,2.525,13736,2.525,13737,2.525,13738,4.311,13739,2.525,13740,4.311,13741,2.525,13742,2.332,13743,4.311,13744,2.525,13745,2.525,13746,2.525,13747,2.525,13748,2.525,13749,2.525,13750,4.311,13751,4.311,13752,2.525,13753,2.525,13754,2.525,13755,2.525,13756,2.525,13757,2.525,13758,2.525,13759,2.525,13760,2.525,13761,2.525,13762,2.525,13763,3.276,13764,2.525,13765,2.525,13766,4.311,13767,2.525,13768,2.525,13769,2.525,13770,4.311,13771,2.525,13772,2.525,13773,5.642,13774,4.311,13775,2.332,13776,2.525,13777,2.525,13778,2.525,13779,2.525,13780,2.525,13781,2.525,13782,4.311,13783,2.525,13784,2.525,13785,4.311,13786,2.205,13787,2.525,13788,2.332,13789,8.161,13790,6.671,13791,2.525,13792,4.311,13793,2.525,13794,2.525,13795,2.525,13796,2.525,13797,4.311,13798,2.525,13799,2.525,13800,2.525,13801,2.525,13802,2.525,13803,2.525,13804,2.525,13805,2.525,13806,2.525,13807,2.525,13808,4.311,13809,2.525,13810,2.525,13811,2.525,13812,2.525,13813,2.525,13814,4.311,13815,2.525,13816,2.525,13817,2.525,13818,2.525,13819,2.525,13820,2.525,13821,2.525,13822,2.525,13823,2.525,13824,2.525,13825,2.525,13826,4.311,13827,2.525]],["title/injectables/LessonCopyUC.html",[105,0.89,13373,5.64]],["body/injectables/LessonCopyUC.html",[0,0.219,3,0.017,4,0.017,5,0.009,7,0.099,8,1.083,26,2.598,27,0.428,29,0.711,30,0.001,31,0.503,32,0.126,33,0.448,35,1.083,36,1.948,39,2.403,95,0.165,99,1.093,101,0.012,103,0.001,104,0.001,105,1.182,107,1.541,111,2.54,112,2.313,127,1.133,148,1.993,187,0.923,199,3.423,216,2.168,217,1.701,221,2.861,227,0.679,234,1.455,305,2.58,347,1.313,450,2.649,461,2.066,843,2.811,1415,6.215,1439,3.08,1865,4.695,1866,3.645,1868,4.079,1880,4.196,1952,5.982,1958,7.593,1962,7.996,2027,4.196,2037,3.718,2171,2.768,2172,3.08,2173,2.97,2174,4.079,2563,4.026,2701,2.97,2767,2.903,2988,7.227,2996,9.727,2997,8.836,3003,6.812,3008,7.831,3013,6.821,3026,3.975,3027,3.681,3030,5.192,3066,5.626,3067,5.626,3068,5.949,3550,7.003,4630,3.347,4955,6.215,6022,4.773,6250,7.495,6289,10.3,6537,7.227,6576,5.626,6587,5.626,6588,5.626,6589,4.079,13373,7.495,13378,5.626,13828,11.15,13829,10.3,13830,6.44,13831,6.44,13832,8.281,13833,9.526,13834,5.949,13835,6.44,13836,6.44,13837,5.949,13838,5.949,13839,5.626,13840,6.44,13841,5.949,13842,6.44,13843,5.949,13844,6.44,13845,6.44,13846,5.949,13847,6.44,13848,6.44,13849,6.44,13850,6.44,13851,6.44,13852,6.44]],["title/entities/LessonEntity.html",[380,1.411,2689,3.506]],["body/entities/LessonEntity.html",[0,0.141,3,0.011,4,0.011,5,0.006,7,0.138,26,2.038,27,0.464,30,0.001,31,0.505,32,0.157,33,0.324,47,0.952,55,2.276,95,0.151,96,1.123,101,0.023,103,0,104,0,111,1.296,116,1.344,144,2.178,145,2.057,150,3.303,165,0.511,187,0.595,188,4.234,208,1.541,214,1.367,217,1.604,227,1.282,234,1.679,240,3.504,247,1.648,305,1.865,329,2.348,334,1.232,347,1.321,364,2.073,369,2.159,370,2.162,371,2.197,379,1.837,380,1.356,381,1.367,398,1.216,399,2.538,400,1.822,402,1.709,404,0.751,405,1.12,406,1.327,461,0.957,535,3.507,687,1.927,769,3.862,806,1.75,1031,1.331,1062,1.813,1278,2.247,1439,1.986,1474,3.057,1910,1.962,1932,3.318,1984,1.776,2136,1.662,2344,4.277,2674,4.745,2675,3.181,2678,4.914,2682,2.267,2687,4.105,2688,2.422,2689,4.68,2691,3.497,2692,4.051,2701,2.989,2705,4.223,2809,4.753,2880,3.812,3305,3.938,3419,6.027,3438,5.656,3544,1.725,3571,2.891,3572,2.891,4083,3.82,4239,2.596,4303,1.822,4821,2.564,4825,2.596,4826,2.667,4926,1.916,4953,6.563,4965,2.891,4982,2.329,4989,4.001,4994,6.841,5007,2.947,5013,2.947,5018,2.947,5566,6.955,6260,5.272,6263,5.656,6377,4.223,6397,2.596,6404,6.663,6405,2.792,6406,4.287,6408,4.105,6444,4.162,6445,4.356,6460,4.431,6624,3.628,6633,2.564,6634,2.747,8265,4.599,10432,5.956,11305,4.511,11306,2.947,11307,4.982,11308,3.009,11309,4.511,11310,6.941,11311,4.599,11312,2.891,11313,4.511,11314,4.511,11315,4.511,11316,2.947,11317,4.511,11318,2.706,11319,4.511,11320,4.599,11321,2.947,11322,2.947,11323,3.009,11324,4.511,11325,4.511,11326,4.696,11327,4.696,11328,4.696,11329,4.696,11330,5.548,11331,2.891,11332,4.696,11333,3.009,11334,3.009,11335,3.009,11336,2.839,11337,3.009,11338,3.009,11339,4.696,11340,3.009,11341,3.009,11342,6.524,11343,5.775,11344,2.947,11345,3.009,11346,3.009,11347,3.009,11348,3.009,11349,3.009,11350,3.009,11351,3.009,11352,3.009,11353,3.009,11354,3.009,11355,3.009,11356,2.839,11357,3.009,11358,2.947,13853,4.153,13854,4.153,13855,4.153,13856,4.153,13857,4.153,13858,4.153,13859,4.153,13860,4.153,13861,4.153]],["title/classes/LessonFactory.html",[0,0.23,13862,6.231]],["body/classes/LessonFactory.html",[0,0.167,2,0.564,3,0.013,4,0.013,5,0.007,7,0.075,8,0.889,27,0.53,29,1.023,30,0.001,31,0.699,32,0.184,33,0.614,34,1.517,35,1.456,47,0.536,55,2.522,59,3.267,95,0.113,99,0.833,101,0.009,103,0,104,0,127,0.62,138,3.198,144,3.223,148,1.519,165,0.581,185,4.884,188,4.341,216,1.362,217,1.166,227,0.517,329,3.474,359,2.554,366,2.702,371,1.353,379,2.038,380,2.202,381,2.424,404,1.331,538,3.302,596,3.88,627,2.293,660,7.151,661,4.657,662,5.507,665,4.129,666,5.507,667,5.662,668,4.129,669,4.129,670,4.129,671,4.055,672,4.492,673,4.956,674,6.434,675,5.795,676,6.979,677,2.778,682,2.752,683,4.129,684,2.778,685,5.145,686,5.361,687,4.557,688,5.185,689,4.091,690,2.752,691,2.571,692,4.118,693,2.679,694,2.633,695,2.752,696,5.067,697,2.778,698,4.866,699,2.752,700,6.886,701,4.118,702,6.611,703,2.778,704,4.368,705,2.752,706,2.778,707,2.752,708,2.778,709,2.752,710,3.109,711,2.925,712,2.752,713,6.085,714,2.778,715,2.752,716,4.129,717,4.055,718,4.129,719,2.778,720,2.656,721,2.633,722,2.165,723,2.752,724,2.752,725,2.752,726,2.778,727,2.778,728,1.922,729,2.752,730,2.778,731,2.884,732,2.752,733,2.778,736,2.893,2689,3.828,2701,2.264,3419,4.546,4953,4.95,6600,4.104,6647,4.534,6649,4.534,10432,4.872,11309,3.416,11310,3.152,13862,8.166,13863,4.908,13864,4.908,13865,7.365,13866,4.908,13867,4.908,13868,4.908,13869,4.908]],["title/modules/LessonModule.html",[425,1.808,13372,5]],["body/modules/LessonModule.html",[0,0.255,3,0.02,4,0.02,5,0.011,30,0.001,95,0.169,101,0.014,103,0.001,104,0.001,187,1.072,425,2.986,427,2.766,428,2.917,429,3.008,430,2.995,431,2.968,432,4.118,433,4.201,438,5.995,442,3.991,443,2.943,444,2.869,449,3.991,450,3.078,766,3.216,1444,4.875,1545,2.39,1962,8.15,1980,6.536,2996,10.656,3026,4.619,3027,4.276,3534,9.406,3543,3.673,3544,3.107,4940,10.656,6234,9.196,8247,10.611,8251,9.196,13372,10.535,13390,9.406,13392,6.912,13683,10.611,13870,7.482,13871,7.482,13872,7.482,13873,7.482,13874,7.482]],["title/injectables/LessonRepo.html",[105,0.89,1962,4.332]],["body/injectables/LessonRepo.html",[0,0.199,3,0.015,4,0.015,5,0.008,7,0.09,8,1.011,10,3.38,12,3.859,13,5.938,18,4.135,26,2.67,27,0.514,29,0.961,30,0.001,31,0.679,32,0.177,33,0.605,34,1.003,35,1.462,36,2.781,39,2.243,40,4.028,42,5.938,59,1.813,95,0.145,96,1.579,98,3.481,99,0.991,101,0.011,103,0.001,104,0.001,105,1.104,107,1.398,112,3.02,116,3.165,138,3.634,145,1.508,187,0.837,188,3.169,217,1.597,221,2.664,227,1.191,234,0.948,277,3.349,347,1.191,380,1.222,381,2.754,398,1.711,404,1.513,461,1.347,577,3.275,596,3.242,692,4.825,877,7.062,883,3.509,884,3.953,885,4.865,908,3.562,909,3.606,910,3.562,911,3.606,913,3.562,914,3.606,915,3.216,964,3.994,1962,5.374,2185,4.736,2689,5.873,2701,4.924,2809,3.084,3419,3.606,3639,3.994,4982,5.986,4994,4.782,5784,4.88,5786,4.146,6654,4.439,6658,4.439,6774,6.939,6844,3.806,7633,4.066,10056,7.73,10061,7.31,10062,5.396,10432,3.864,11310,5.374,13875,5.842,13876,8.368,13877,8.368,13878,8.368,13879,5.842,13880,8.368,13881,5.842,13882,5.842,13883,5.842,13884,5.842,13885,7.31,13886,5.842,13887,5.842,13888,5.842,13889,5.842,13890,5.842,13891,5.842,13892,5.842,13893,5.842,13894,5.842,13895,5.842,13896,5.842,13897,5.842,13898,5.842]],["title/injectables/LessonRule.html",[105,0.89,1963,5.438]],["body/injectables/LessonRule.html",[0,0.167,3,0.013,4,0.013,5,0.007,7,0.075,8,0.889,27,0.489,29,0.935,30,0.001,31,0.661,32,0.165,33,0.589,35,1.384,95,0.142,101,0.009,103,0,104,0,105,0.97,107,1.173,111,2.653,116,3.576,127,0.93,187,0.702,188,4.183,199,3.748,214,1.613,216,1.634,217,1.554,227,1.208,347,2.628,371,2.435,380,2.885,461,3.179,806,2.066,1828,5.475,1862,5.405,1865,7.169,1866,5.556,1871,3.026,1872,3.243,1880,5.755,1881,4.661,1890,6.998,1911,3.026,1928,4.542,1957,9.237,1959,8.492,1963,5.932,1989,4.542,2033,4.794,2056,3.295,2689,6.853,3105,4.661,3106,2.748,3352,4.946,3353,3.351,3356,4.867,3358,3.351,3359,3.295,3360,5.03,6054,3.479,6404,5.85,6666,4.282,6668,4.099,6669,6.428,13899,4.902,13900,7.358,13901,7.358,13902,7.358,13903,7.358,13904,7.358,13905,4.902,13906,7.358,13907,4.902,13908,7.358,13909,4.902,13910,4.902,13911,4.902,13912,7.358,13913,4.902,13914,7.358,13915,4.902,13916,6.797,13917,4.902,13918,4.902,13919,9.069,13920,4.902,13921,4.902,13922,7.358,13923,7.358,13924,4.902,13925,9.817,13926,8.16,13927,7.358,13928,7.358,13929,4.902,13930,4.902,13931,4.529,13932,4.902]],["title/classes/LessonScope.html",[0,0.23,13885,5.893]],["body/classes/LessonScope.html",[0,0.259,2,0.874,3,0.02,4,0.02,5,0.011,7,0.117,8,1.212,26,2.493,27,0.54,29,0.948,30,0.001,31,0.67,32,0.182,33,0.597,35,1.443,95,0.129,99,1.291,101,0.015,103,0.001,104,0.001,111,2.551,144,2.08,148,2.355,165,0.792,188,2.882,227,1.058,277,5.396,329,2.242,347,2.599,404,1.815,529,3.357,596,3.771,2432,6.694,2689,3.955,3419,4.697,5872,6.862,5873,6.862,5874,6.862,5879,6.862,5880,6.862,5881,5.297,5882,5.202,5883,5.297,5884,5.297,5893,5.202,5894,6.862,5895,5.297,5896,5.202,5897,5.297,5898,5.202,5899,6.862,6654,7.628,6991,5.982,9052,9.273,9056,9.273,9888,6.134,13885,11.139,13933,11.233,13934,9.273,13935,9.273,13936,7.029,13937,7.029,13938,6.647]],["title/injectables/LessonService.html",[105,0.89,4940,5.27]],["body/injectables/LessonService.html",[0,0.242,3,0.019,4,0.019,5,0.01,7,0.109,8,1.159,12,4.425,26,2.779,27,0.504,29,0.963,30,0.001,31,0.681,32,0.17,33,0.607,35,1.404,36,2.826,39,2.572,95,0.149,98,4.238,99,1.207,101,0.014,103,0.001,104,0.001,105,1.265,107,1.702,111,1.919,112,3.036,127,1.213,187,1.019,216,1.775,217,1.265,221,2.741,227,1.279,450,2.926,721,3.816,1444,4.634,1962,8.032,2689,6.309,2701,4.425,3543,3.491,3544,2.953,4940,7.496,4953,6.449,4955,4.286,4982,3.987,6193,9.475,6651,8.864,6652,8.864,6654,5.404,13839,6.213,13939,7.112,13940,9.595,13941,9.595,13942,7.112,13943,7.112,13944,9.595,13945,7.112,13946,9.595,13947,7.112,13948,7.112,13949,9.595,13950,7.112,13951,7.112,13952,7.112,13953,7.112,13954,7.112,13955,7.112,13956,7.112,13957,7.112,13958,9.595,13959,7.112,13960,7.112]],["title/injectables/LessonUC.html",[105,0.89,13648,5.64]],["body/injectables/LessonUC.html",[0,0.285,3,0.022,4,0.022,5,0.012,7,0.129,8,1.291,10,4.318,26,2.776,27,0.444,29,0.848,30,0.001,31,0.6,32,0.15,33,0.534,35,1.013,39,2.248,95,0.159,99,1.423,101,0.016,103,0.001,104,0.001,105,1.41,107,2.007,111,2.139,112,2.64,127,1.351,187,1.201,216,1.977,217,1.106,221,2.521,227,0.884,284,5.055,368,3.313,369,1.854,461,1.933,766,3.605,843,3.661,1062,3.661,1240,4.841,1868,5.312,1952,7.024,2701,4.931,2767,3.781,3106,4.702,3767,6.552,3830,5.312,3832,5.637,4940,10.393,4955,7.094,4982,4.702,6404,4.998,13648,8.939,13961,8.387,13962,8.387,13963,9.34,13964,8.387,13965,8.387,13966,8.387,13967,6.761,13968,8.387,13969,8.387,13970,8.387]],["title/classes/LessonUrlParams.html",[0,0.23,13657,5.27]],["body/classes/LessonUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,2701,5.405,3834,5.672,4955,7.582,13657,9.155,13971,9.724,13972,9.724]],["title/classes/LessonUrlParams-1.html",[0,0.191,905,2.329,13657,4.382]],["body/classes/LessonUrlParams-1.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,2701,5.405,3834,5.672,4955,7.582,13657,9.155,13973,9.724,13974,9.724]],["title/classes/ListOauthClientsParams.html",[0,0.23,13975,5.893]],["body/classes/ListOauthClientsParams.html",[0,0.328,2,0.823,3,0.019,4,0.019,5,0.01,7,0.11,27,0.484,30,0.001,31,0.541,32,0.163,33,0.651,47,0.849,55,2.565,56,5.246,58,7.708,95,0.124,101,0.014,103,0.001,104,0.001,165,0.761,247,4.625,361,6.699,364,2.161,368,5.143,370,4.344,371,3.812,374,2.288,376,1.68,379,2.687,467,3.271,470,4.592,471,5.178,694,5.173,1018,6.282,1021,5.131,1036,9.748,1037,10.185,3436,7.734,3437,5.083,3442,6.986,3493,5.988,5382,6.954,5394,7.532,5468,8.281,7668,7.027,7848,10.887,8210,9.108,9574,8.635,13975,8.422,13976,12.168,13977,7.162,13978,7.162,13979,7.162,13980,9.641,13981,9.641,13982,7.162,13983,7.162,13984,9.641,13985,7.162,13986,7.162,13987,7.162]],["title/classes/LocalAuthorizationBodyParams.html",[0,0.23,13988,5.893]],["body/classes/LocalAuthorizationBodyParams.html",[0,0.395,2,1.101,3,0.025,4,0.025,5,0.014,7,0.147,27,0.482,30,0.001,32,0.163,47,0.946,51,6.178,87,6.178,95,0.149,101,0.018,103,0.001,104,0.001,165,0.917,364,2.154,374,3.062,376,2.248,467,3.361,470,5.267,1001,7.45,7184,9.366,13261,8.374,13988,10.149,13989,12.502,13990,8.855,13991,8.855]],["title/injectables/LocalStrategy.html",[105,0.89,1633,5.893]],["body/injectables/LocalStrategy.html",[0,0.199,3,0.015,4,0.015,5,0.008,7,0.09,8,1.01,27,0.443,29,0.846,30,0.001,31,0.598,32,0.158,33,0.533,35,1.18,36,2.319,39,1.564,47,0.997,51,5.981,59,3.312,66,6.758,87,6.52,94,5.586,95,0.168,101,0.011,103,0.001,104,0.001,105,1.102,107,1.396,111,2.559,112,2.636,127,1.056,138,2.533,187,0.836,206,2.986,216,1.973,217,1.55,221,2.771,227,0.881,234,1.907,305,1.678,334,0.643,369,1.29,404,1.055,406,1.864,441,7.381,450,2.4,461,1.927,491,2.863,513,4.28,639,4.323,789,7.773,801,3.402,802,4.227,803,3.647,983,4.877,1083,5.389,1182,4.877,1183,5.096,1627,8.71,1633,7.302,1640,4.323,1651,4.877,1683,3.438,1717,3.746,1808,4.323,2038,8.034,4485,3.988,5974,5.446,6929,4.432,10760,5.096,10768,4.432,11438,4.877,12185,8.335,12684,4.557,12692,4.877,12695,4.877,13318,9.025,13343,5.389,13346,5.096,13348,5.389,13349,5.389,13351,5.389,13992,5.833,13993,8.359,13994,5.833,13995,9.025,13996,5.833,13997,5.833,13998,10.669,13999,5.833,14000,8.359,14001,8.359,14002,5.833,14003,8.359,14004,5.833,14005,5.833,14006,5.833,14007,5.833,14008,5.833,14009,5.833,14010,8.359,14011,5.833,14012,5.833,14013,5.833,14014,5.833,14015,5.833,14016,5.096,14017,5.833,14018,5.833,14019,5.833,14020,5.833]],["title/interfaces/Loggable.html",[334,0.743,1542,3.148]],["body/interfaces/Loggable.html",[3,0.027,4,0.027,5,0.014,7,0.155,8,1.445,27,0.418,30,0.001,35,1.216,95,0.129,101,0.019,103,0.001,104,0.001,208,3.736,334,1.109,336,2.453,1542,5.583,1543,6.635,1547,6.572,8137,6.635,8138,6.907,14021,10.065,14022,10.065]],["title/injectables/Logger.html",[105,0.89,1052,2.749]],["body/injectables/Logger.html",[0,0.232,3,0.028,4,0.018,5,0.01,7,0.105,8,1.125,27,0.525,29,0.979,30,0.001,31,0.722,32,0.177,33,0.617,35,1.444,47,0.831,95,0.153,101,0.013,103,0.001,104,0.001,105,1.229,107,1.63,111,2.284,116,4.429,127,0.861,144,1.862,148,4.039,165,0.735,187,0.976,199,4.055,216,1.26,217,1.506,277,3.73,329,2.007,336,1.66,839,3.198,1052,4.874,1327,4.511,1542,6.44,2993,4.505,5400,6.163,7661,4.741,8179,9.975,8189,5.95,8190,7.279,8191,5.49,8192,6.292,8193,5.95,8194,10.549,13396,8.607,13405,8.607,13417,6.292,13428,10.447,14023,6.811,14024,8.14,14025,9.318,14026,9.318,14027,9.318,14028,6.811,14029,9.318,14030,6.811,14031,9.318,14032,6.811,14033,6.811,14034,9.318,14035,6.811,14036,6.811,14037,6.811,14038,6.811,14039,6.292]],["title/modules/LoggerModule.html",[425,1.808,438,3.186]],["body/modules/LoggerModule.html",[0,0.26,3,0.02,4,0.02,5,0.011,30,0.001,95,0.169,101,0.015,103,0.001,104,0.001,187,1.094,204,2.621,227,0.805,234,1.24,336,1.861,369,2.225,371,2.105,425,3.017,427,2.824,428,2.978,429,3.071,430,3.057,431,3.03,432,4.16,433,4.244,438,6.5,442,4.046,443,3.004,444,2.928,449,3.071,565,5.312,789,7.682,801,4.455,837,5.661,839,3.586,1052,5.635,1053,6.069,1252,4.552,3552,5.661,7661,5.317,8173,11.44,8190,8.792,11371,6.386,14040,7.638,14041,7.638,14042,7.638,14043,7.638,14044,7.056,14045,7.638,14046,7.638,14047,7.638,14048,6.386,14049,7.638,14050,7.638,14051,7.638,14052,7.638,14053,7.638,14054,7.638,14055,7.638,14056,7.638,14057,7.638,14058,7.638,14059,7.638,14060,7.638,14061,7.638,14062,7.638,14063,7.638]],["title/classes/LoggingUtils.html",[0,0.23,8191,5.438]],["body/classes/LoggingUtils.html",[0,0.274,2,0.925,3,0.021,4,0.021,5,0.011,7,0.124,8,1.258,27,0.479,29,0.916,30,0.001,31,0.647,32,0.146,33,0.577,35,1.394,47,0.921,59,2.499,95,0.148,101,0.015,103,0.001,104,0.001,111,2.309,145,2.98,199,4.661,208,2.988,217,1.61,227,1.217,336,1.962,359,4.004,627,4.203,1062,3.514,1327,4.56,1542,6.151,1547,4.006,8191,8.396,10491,8.708,13397,11.277,13430,7.437,13431,7.437,14064,8.051,14065,10.415,14066,10.415,14067,10.415,14068,10.415,14069,8.051,14070,11.545,14071,10.415,14072,8.051,14073,10.415,14074,8.051,14075,8.051,14076,8.051,14077,10.415]],["title/controllers/LoginController.html",[481,2.63,1588,5.893]],["body/controllers/LoginController.html",[0,0.164,3,0.013,4,0.013,5,0.007,7,0.074,8,0.879,27,0.363,29,0.695,30,0.001,31,0.491,32,0.189,33,0.438,35,1.057,36,2.388,95,0.157,100,1.618,101,0.009,103,0,104,0,112,2.694,163,3.465,187,0.692,215,1.564,216,0.894,217,1.449,221,2.064,227,0.923,334,0.532,355,4.952,364,1.623,367,5.288,376,1.133,379,3.051,447,2.026,461,2.902,481,1.884,483,2.326,491,6.005,498,7.511,502,6.869,503,6.872,504,9.124,505,8.089,506,7.159,507,9.533,513,3.726,522,7.405,543,4.883,553,6.092,554,7.75,555,2.551,558,2.296,563,5.405,564,4.456,565,4.622,731,3.429,845,8.521,1134,3.248,1298,4.111,1299,4.062,1300,4.062,1301,4.298,1302,4.698,1487,2.761,1586,7.321,1588,6.358,1591,4.463,1640,3.581,1821,8.908,1822,3.429,2008,3.103,2657,6.214,2658,6.095,2954,3.501,2955,2.735,3091,5.009,3673,3.303,4533,6.622,5382,4.16,6047,6.35,6706,6.869,7339,3.363,7853,8.144,10277,5.274,12662,4.463,13259,8.148,13314,7.321,13988,8.513,14078,4.832,14079,7.278,14080,7.278,14081,8.756,14082,4.832,14083,4.832,14084,10.15,14085,4.832,14086,8.865,14087,8.756,14088,4.832,14089,4.832,14090,4.832,14091,4.832,14092,4.832,14093,4.832,14094,8.148,14095,4.832,14096,4.832,14097,4.832,14098,4.832,14099,4.832,14100,4.221,14101,4.832,14102,4.832,14103,4.832,14104,4.832,14105,8.756,14106,4.832,14107,4.832,14108,8.756,14109,8.756,14110,4.832,14111,4.832,14112,4.832,14113,4.832,14114,4.832,14115,4.832]],["title/classes/LoginDto.html",[0,0.23,1821,5.27]],["body/classes/LoginDto.html",[0,0.34,2,1.147,3,0.026,4,0.026,5,0.014,7,0.154,27,0.494,29,0.792,30,0.001,31,0.56,32,0.167,33,0.499,47,0.867,101,0.019,103,0.001,104,0.001,127,1.262,165,0.94,405,3.211,595,3.44,1703,8.554,1821,10.517,14116,9.99,14117,11.91,14118,8.352,14119,8.352]],["title/classes/LoginRequestBody.html",[0,0.23,14120,5.438]],["body/classes/LoginRequestBody.html",[0,0.297,2,0.712,3,0.016,4,0.016,5,0.009,7,0.095,27,0.511,30,0.001,32,0.173,33,0.671,47,0.799,55,2.223,95,0.13,101,0.012,103,0.001,104,0.001,116,2.007,165,0.689,204,4.227,247,3.464,277,3.495,339,8.129,340,5,344,9.625,345,7.894,347,1.78,361,5.563,364,2.284,368,5.051,369,1.93,370,4.266,371,3.775,373,4.609,374,1.981,376,1.455,379,2.329,404,1.579,461,2.013,467,2.716,471,4.3,502,3.877,506,4.041,564,2.302,565,4.609,596,3.511,728,4.295,1035,6.078,1253,2.86,1498,4.494,1510,3.877,1887,7.402,1997,6.821,2116,3.356,2298,7.227,2507,5.607,3544,3.626,4556,4.47,4638,6.821,5346,3.928,5372,10.14,5373,7.3,5374,7.3,5375,6.821,5378,4.169,5380,5.185,5381,7.627,5382,5.775,5383,7.627,5384,8.066,5385,7.627,5387,5.729,5388,8.066,5389,6.326,5390,10.132,5391,6.634,5392,8.066,5394,8.568,5395,4.713,5396,5.418,5397,5.418,5398,5.418,5399,5.729,5400,4.102,5401,6.634,5402,7.038,5403,4.845,5404,5,5405,4.713,5406,5.185,5407,4.845,5408,5.729,5409,5.185,5410,3.928,5411,5.729,5412,4.713,5413,5.729,5414,5.418,5415,5.185,5416,5.418,5417,5.729,5419,7.038,5420,5.729,14120,7.038,14121,10.105,14122,6.202,14123,6.202]],["title/classes/LoginResponse.html",[0,0.23,14086,4.888]],["body/classes/LoginResponse.html",[0,0.333,2,1.122,3,0.026,4,0.026,5,0.014,7,0.15,27,0.488,29,0.775,30,0.001,31,0.548,32,0.165,33,0.488,47,0.856,95,0.125,101,0.019,103,0.001,104,0.001,127,1.235,165,0.928,364,1.811,376,2.292,405,3.168,467,3.389,595,3.364,1703,8.473,14086,9.697,14118,8.17,14119,8.17,14124,9.772,14125,11.754]],["title/classes/LoginResponse-1.html",[0,0.191,905,2.329,14086,4.064]],["body/classes/LoginResponse-1.html",[0,0.279,2,0.653,3,0.015,4,0.015,5,0.008,7,0.087,27,0.535,29,0.451,30,0.001,31,0.319,32,0.181,33,0.656,34,2,47,0.964,70,5.602,72,3.853,77,6.099,95,0.135,101,0.011,103,0.001,104,0.001,127,0.718,137,7.64,145,3.173,150,3.01,165,0.648,290,4.737,339,6.082,346,5.516,347,1.673,349,5.428,355,4.582,361,7.166,364,2.358,367,5.918,368,3.241,369,2.129,370,2.738,371,2.906,374,1.816,376,1.333,379,2.768,461,2.685,467,3.499,470,3.457,471,5.111,522,6.235,1013,4.415,1596,6.833,1887,5.065,2282,5.516,2298,6.355,2489,3.249,3400,3.957,3544,5.202,4082,4.583,4216,6.703,5418,5.198,5425,8.051,5426,8.051,5427,8.051,5428,7.762,5431,8.412,5433,4.966,5439,8.051,5440,7.58,5448,8.051,5451,6.235,5453,5.516,5457,7.58,5458,7.58,5461,4.966,5462,5.252,5463,5.252,5464,5.252,5473,7.58,12585,6.615,12908,6.615,14086,8.702,14126,5.685,14127,8.895,14128,8.206,14129,5.685,14130,5.685,14131,5.685,14132,7.168,14133,5.685,14134,5.685,14135,8.206,14136,5.685,14137,5.685,14138,5.685,14139,8.206,14140,8.206,14141,8.206,14142,5.685,14143,5.685,14144,5.685]],["title/classes/LoginResponseMapper.html",[0,0.23,14100,5.893]],["body/classes/LoginResponseMapper.html",[0,0.325,2,1.096,3,0.025,4,0.025,5,0.013,7,0.147,8,1.399,27,0.396,29,0.757,30,0.001,31,0.535,32,0.134,33,0.477,35,1.152,95,0.148,100,3.194,101,0.018,103,0.001,104,0.001,217,1.258,227,1.005,234,1.548,627,3.885,974,5.889,1016,4.137,1703,6.412,1821,10.385,1822,6.77,14086,9.633,14100,10.12,14145,11.584,14146,11.584,14147,11.584,14148,7.976,14149,9.54]],["title/injectables/LoginUc.html",[105,0.89,1586,5.64]],["body/injectables/LoginUc.html",[0,0.301,3,0.023,4,0.023,5,0.012,7,0.136,8,1.336,27,0.459,29,0.877,30,0.001,31,0.62,32,0.155,33,0.553,35,1.069,36,2.404,95,0.162,100,2.962,101,0.017,103,0.001,104,0.001,105,1.458,107,2.118,112,2.706,127,1.118,187,1.267,215,2.864,216,1.636,217,1.458,221,2.086,227,0.932,231,5.107,234,1.436,1586,9.246,1627,9.367,1651,7.397,1703,5.947,1794,10.188,1820,7.397,1821,10.367,4623,9.661,14150,8.848,14151,11.059,14152,8.848,14153,8.848,14154,11.059,14155,8.848,14156,8.173,14157,8.848,14158,8.848,14159,8.848]],["title/injectables/Lti11EncryptionService.html",[105,0.89,14160,5.64]],["body/injectables/Lti11EncryptionService.html",[0,0.285,3,0.022,4,0.022,5,0.012,7,0.129,8,1.291,27,0.348,29,0.665,30,0.001,31,0.47,32,0.118,33,0.419,35,1.013,47,1.004,95,0.151,101,0.016,103,0.001,104,0.001,105,1.41,107,2.007,108,6.172,116,3.81,150,4.546,163,2.645,187,1.201,217,1.552,227,0.884,231,7.155,234,1.361,235,4.747,1291,5.008,1696,7.084,1812,5.952,1887,8.08,2076,5.644,2306,7.747,2955,4.747,5382,7.084,6414,6.077,14160,8.939,14161,10.692,14162,8.387,14163,9.877,14164,10.692,14165,8.387,14166,7.012,14167,10.692,14168,7.326,14169,8.387,14170,8.619,14171,8.387,14172,8.387,14173,8.387,14174,8.387,14175,8.387,14176,8.387,14177,8.387,14178,8.387]],["title/classes/Lti11ToolConfig.html",[0,0.23,7125,4.888]],["body/classes/Lti11ToolConfig.html",[0,0.258,2,0.871,3,0.02,4,0.02,5,0.011,7,0.117,27,0.554,29,0.601,30,0.001,31,0.425,32,0.192,33,0.56,47,0.972,95,0.128,101,0.014,103,0.001,104,0.001,127,0.958,165,0.79,198,3.626,200,2.47,209,4.594,238,6.067,404,1.81,405,2.699,406,2.422,595,2.61,596,3.041,1696,6.408,2076,5.919,2600,5.756,2602,6.338,2603,9.191,2605,6.622,2606,5.513,2607,6.622,2608,6.622,2610,5.38,6968,7.201,6974,7.102,6976,7.102,6978,7.201,6993,5.493,6994,6.111,6995,5.922,6996,6.338,6999,5.76,7000,6.111,7003,5.76,7004,6.111,7007,5.76,7008,6.111,7122,8.124,7125,8.985,7149,5.182,7154,7.805,14179,13.187,14180,9.25,14181,7.003,14182,7.003,14183,7.003,14184,7.003,14185,7.003,14186,6.622,14187,6.622]],["title/classes/Lti11ToolConfigCreateParams.html",[0,0.23,8456,5.64]],["body/classes/Lti11ToolConfigCreateParams.html",[0,0.331,2,0.833,3,0.019,4,0.019,5,0.01,7,0.111,27,0.542,30,0.001,32,0.189,33,0.486,47,0.973,95,0.15,101,0.014,103,0.001,104,0.001,154,5.858,165,0.767,198,3.469,200,2.363,209,4.496,238,5.934,364,2.421,374,2.317,375,3.945,376,1.701,404,1.758,467,3.51,470,5.149,471,4.137,596,2.953,1044,3.56,1696,6.268,2076,5.79,2600,5.608,2606,6.038,2626,8.854,2627,7.783,2628,5.847,2629,5.847,2630,5.847,2631,5.847,2632,5.847,5729,5.255,6968,7.044,6974,6.947,6976,6.947,6978,7.044,7122,7.947,7154,7.635,8455,5.847,8456,8.129,8463,6.336,14188,11.869,14189,6.7,14190,7.253,14191,6.7,14192,6.7,14193,6.7,14194,7.253,14195,7.253,14196,6.7,14197,8.982,14198,6.7,14199,6.7]],["title/classes/Lti11ToolConfigEntity.html",[0,0.23,8476,5.438]],["body/classes/Lti11ToolConfigEntity.html",[0,0.237,2,0.798,3,0.018,4,0.018,5,0.01,7,0.107,27,0.544,29,0.551,30,0.001,31,0.39,32,0.188,33,0.536,47,0.955,95,0.148,96,1.879,101,0.013,103,0.001,104,0.001,127,0.878,165,0.746,198,3.325,200,2.265,209,4.514,238,5.112,240,4.109,364,2.397,369,2.089,370,2.319,386,3.973,398,2.036,404,1.708,405,2.547,595,2.394,596,2.87,617,4.013,1031,3.982,1696,6.135,2076,5.666,2600,5.645,2606,5.202,2613,5.812,2614,9.709,2616,6.073,2617,6.073,2618,4.837,2619,6.073,2620,4.055,2621,3.284,6968,6.893,6974,6.799,6976,6.799,6978,6.893,6993,5.037,6994,5.604,6995,5.431,6996,5.812,6999,5.283,7000,5.604,7003,5.283,7004,5.604,7007,5.283,7008,5.604,7035,6.073,7122,7.778,7149,6.46,7154,7.472,8476,9.709,14186,6.073,14187,6.073,14200,12.932,14201,9.449,14202,6.952,14203,6.952,14204,6.952,14205,6.952,14206,6.952]],["title/classes/Lti11ToolConfigResponse.html",[0,0.23,8989,5.64]],["body/classes/Lti11ToolConfigResponse.html",[0,0.247,2,0.833,3,0.019,4,0.019,5,0.01,7,0.111,27,0.542,29,0.575,30,0.001,31,0.407,32,0.189,33,0.548,47,0.951,95,0.141,101,0.014,103,0.001,104,0.001,127,0.916,165,0.767,198,3.469,200,2.363,209,4.496,238,5.934,364,2.382,375,4.45,376,1.701,404,1.758,405,2.621,406,2.317,467,3.672,595,2.497,596,2.953,2076,5.79,2600,5.608,2606,6.038,2610,5.147,2621,3.426,2622,5.147,2635,5.847,2636,9.851,2638,6.336,2639,6.336,2640,5.847,6968,7.044,6974,6.947,6976,6.947,6978,7.044,6993,5.255,6994,5.847,6999,5.511,7000,5.847,7003,5.511,7004,5.847,7007,5.511,7008,5.847,7122,7.947,7149,4.958,7154,7.635,8989,10.217,14186,6.336,14187,6.336,14207,12.848,14208,8.982,14209,6.7,14210,6.7,14211,6.7,14212,6.336]],["title/classes/Lti11ToolConfigUpdateParams.html",[0,0.23,8913,5.64]],["body/classes/Lti11ToolConfigUpdateParams.html",[0,0.33,2,0.828,3,0.019,4,0.019,5,0.01,7,0.111,27,0.541,30,0.001,32,0.189,33,0.584,47,0.972,95,0.15,101,0.014,103,0.001,104,0.001,154,5.85,165,0.764,198,3.45,200,2.351,209,4.491,238,5.918,364,2.418,374,2.305,375,4.438,376,1.692,404,1.751,467,3.449,470,5.139,471,4.654,596,2.942,1044,3.541,1696,6.251,2076,5.774,2600,5.601,2606,6.022,2626,8.838,2627,6.875,2628,5.815,2629,5.815,2630,5.815,2631,5.815,2632,5.815,5729,7.02,6968,7.025,6974,6.929,6976,6.929,6978,7.025,7122,7.926,7154,7.614,8913,8.1,9218,6.031,9220,6.302,9222,6.302,14188,11.853,14189,6.664,14191,6.664,14193,6.664,14197,8.949,14198,6.664,14199,6.664,14213,7.214,14214,7.214,14215,7.214,14216,6.664]],["title/injectables/Lti11ToolLaunchStrategy.html",[105,0.89,14217,5.64]],["body/injectables/Lti11ToolLaunchStrategy.html",[0,0.112,3,0.009,4,0.009,5,0.005,7,0.051,8,0.651,9,1.576,26,2.057,27,0.49,29,0.937,30,0.001,31,0.729,32,0.172,33,0.59,35,1.405,36,2.142,39,2.116,47,0.816,95,0.153,99,0.559,101,0.006,103,0,104,0,105,0.711,106,9.766,107,0.789,108,3.11,110,2.756,111,2.494,112,2.61,113,4.504,114,4.504,115,4.504,116,3.766,117,5.713,118,4.504,119,4.504,120,4.504,121,4.504,122,4.343,123,4.343,124,4.504,125,4.504,126,4.504,127,0.681,129,4.871,130,7.449,132,4.388,133,2.756,134,10.265,135,4.504,136,6.16,137,3.904,138,2.339,139,6.535,140,6.472,142,2.756,143,4.504,144,3.229,145,2.543,146,5.304,148,1.667,149,2.756,150,3.191,151,4.504,153,2.756,154,1.503,155,7.812,157,2.756,158,3.954,160,6.766,161,2.756,163,3.108,164,4.504,165,0.623,167,2.057,168,2.756,170,2.657,171,2.657,173,2.756,175,2.294,176,4.504,178,5.338,179,2.756,180,4.504,181,4.999,183,2.756,184,4.504,185,2.11,187,0.472,190,2.657,191,1.831,192,0.983,198,1.576,200,1.074,201,1.726,206,1.687,207,2.657,208,1.223,209,2.717,210,4.388,211,2.657,216,1.264,217,1.558,221,1.86,227,0.72,231,3.944,234,1.917,240,1.688,241,2.879,253,2.879,268,4.977,305,1.55,331,6.841,404,0.974,461,0.76,596,3.534,667,2.529,731,2.676,1291,1.402,1298,3.208,1299,3.17,1300,3.17,1301,3.354,1302,2.891,1439,2.577,1696,4.972,1887,3.326,2076,4.593,2171,1.417,2180,4.328,2251,4.977,2646,2.879,2647,2.879,2648,2.879,2649,2.879,2650,2.879,2651,2.879,2652,2.879,2653,2.879,2654,2.879,2655,2.879,2656,2.879,2657,3.823,2658,3.75,2660,4.977,2662,9.789,2663,3.045,2668,3.045,3060,3.823,3110,1.597,3145,2.504,4092,2.253,4538,3.867,4560,2.504,4561,1.754,5102,5.508,5382,1.884,5602,2.699,5664,3.326,6938,3.049,6942,3.823,6947,3.045,6968,2.117,6974,2.088,6975,2.504,6976,2.088,7151,2.756,7154,2.294,8112,3.045,8339,2.879,8712,4.452,8836,3.46,11449,2.147,12144,7.488,12145,5.695,12168,2.756,12169,3.045,12173,2.504,12644,3.045,14160,8.239,14168,2.879,14217,4.504,14218,5.387,14219,2.657,14220,3.296,14221,3.296,14222,3.296,14223,3.296,14224,4.977,14225,2.879,14226,5.387,14227,3.296,14228,5.387,14229,3.296,14230,3.296,14231,4.977,14232,3.045,14233,3.296,14234,5.387,14235,3.296,14236,3.296,14237,3.296,14238,3.296,14239,3.296,14240,3.296,14241,2.879,14242,3.296,14243,3.296,14244,6.833,14245,3.045,14246,7.891,14247,3.296,14248,3.296,14249,3.296,14250,3.045,14251,3.045,14252,3.296,14253,3.296,14254,5.387,14255,3.296,14256,3.296,14257,3.296,14258,3.296]],["title/classes/LtiRoleMapper.html",[0,0.23,14225,5.893]],["body/classes/LtiRoleMapper.html",[0,0.299,2,1.009,3,0.023,4,0.023,5,0.012,7,0.135,8,1.33,27,0.365,29,0.697,30,0.001,31,0.493,32,0.123,33,0.439,35,1.062,95,0.141,99,1.492,101,0.017,103,0.001,104,0.001,108,6.358,116,2.845,145,3.105,198,4.204,217,1.586,227,0.926,627,3.745,696,4.534,4538,7.349,11449,5.727,11452,6.867,11453,6.679,11454,6.679,14224,12.756,14225,9.621,14232,8.12,14259,11.014,14260,8.79,14261,11.014,14262,11.014,14263,8.79,14264,8.12,14265,8.79,14266,11.014,14267,8.79,14268,11.014,14269,8.79,14270,8.79,14271,8.79,14272,11.014,14273,8.79]],["title/entities/LtiTool.html",[380,1.411,6972,5]],["body/entities/LtiTool.html",[0,0.14,3,0.011,4,0.011,5,0.006,7,0.063,26,1.341,27,0.542,30,0.001,31,0.545,32,0.184,33,0.659,47,0.969,49,3.085,95,0.115,96,1.736,97,1.747,101,0.019,103,0,104,0,116,2.079,144,1.122,145,2.31,150,2.902,165,0.507,216,0.76,227,0.433,234,0.666,236,4.615,240,4.113,329,3.45,334,0.452,347,2.387,364,2.42,369,2.974,370,4.379,371,3.696,380,1.344,381,1.352,386,7.366,394,3.671,398,1.203,399,2.516,400,1.802,402,1.689,404,0.742,405,1.107,406,1.312,540,4.655,701,1.434,853,2.087,1019,4.615,1031,3.113,1576,2.475,1680,6.118,1696,4.522,1925,2.134,2076,4.724,2136,1.644,2400,2.347,2586,2.168,2674,2.946,3110,3.833,4303,1.802,6090,2.281,6388,3.587,6413,3.433,6426,3.433,6957,6.912,6958,3.794,6959,5.371,6960,7.214,6961,5.934,6962,5.934,6963,3.794,6964,3.794,6965,5.934,6966,3.794,6967,3.794,6968,6.237,6969,5.934,6970,5.934,6971,3.794,6972,4.761,6973,6.181,6974,5.012,6975,6.012,6976,5.012,6977,5.371,6978,5.081,6979,6.181,6980,6.181,6981,5.864,6982,5.934,6983,7.309,6984,3.31,6985,3.208,6986,3.794,6987,5.615,6988,6.181,6989,5.012,6990,5.864,6991,4.715,6992,2.637,6993,2.976,6994,3.31,6995,3.208,6996,3.433,6997,3.433,6998,3.794,6999,3.12,7000,3.31,7001,3.433,7002,3.794,7003,3.12,7004,3.31,7005,3.208,7006,3.31,7007,3.12,7008,3.31,7009,3.433,7010,3.794,7011,3.433,7012,3.794,7013,3.433,7014,3.794,7015,3.794,7016,3.794,7017,3.794,7018,3.433,7019,3.794,7020,3.433,7021,3.794,7022,3.12,7023,3.31,7024,2.859,7025,3.044,7026,3.433,7027,3.794,7028,3.044,7029,3.31,14274,4.107,14275,4.107,14276,4.107,14277,4.107,14278,4.107,14279,4.107,14280,4.107,14281,4.107,14282,4.107,14283,4.107,14284,4.107,14285,4.107,14286,4.107,14287,4.107,14288,4.107,14289,4.107,14290,4.107,14291,4.107,14292,4.107,14293,4.107,14294,4.107,14295,4.107,14296,4.107]],["title/classes/LtiToolDO.html",[0,0.23,7038,4.695]],["body/classes/LtiToolDO.html",[0,0.28,2,0.657,3,0.015,4,0.015,5,0.008,7,0.088,26,2.016,27,0.571,29,0.454,30,0.001,31,0.593,32,0.193,33,0.689,34,1.414,47,1.014,95,0.124,101,0.016,103,0.001,104,0.001,127,0.722,144,2.64,150,3.543,165,0.65,236,5.634,347,2.595,404,1.49,596,1.736,1696,5.521,1857,2.445,1939,6.102,2076,5.915,2136,2.288,2586,3.018,3110,4.68,4371,4.994,5612,4.143,6090,3.176,6960,7.787,6968,6.204,6973,7.547,6974,6.119,6975,7.34,6976,6.119,6978,6.204,6979,7.547,6980,7.547,6981,7.16,6985,7.547,6987,6.855,6988,7.547,6989,6.119,6990,7.16,6991,5.757,6993,5.97,6995,4.466,6997,4.78,6999,4.344,7001,4.78,7003,4.344,7005,4.466,7007,4.344,7009,4.78,7011,4.78,7013,4.78,7018,4.78,7020,4.78,7022,4.344,7024,3.98,7026,4.78,7028,4.237,7030,8.077,7031,5.281,7032,5.281,7035,4.994,7036,4.344,7037,4.466,7038,7.8,7039,6.437,7040,4.466,7041,5.281,7042,5.281,7043,5.281,7044,5.281,7045,5.281,7046,5.281,7047,5.281,7048,4.994,7049,5.281,7050,5.281,7051,5.281,7052,5.281,7053,5.281,7054,5.281,7055,5.281,7056,5.281,7057,5.281,7058,5.281,7059,5.281,7060,5.281,14297,8.239,14298,5.717,14299,5.717,14300,5.717,14301,5.717,14302,5.717,14303,5.717,14304,5.717,14305,5.717,14306,5.717,14307,5.717,14308,5.717,14309,5.717,14310,5.717,14311,5.717,14312,5.717,14313,5.717,14314,5.717,14315,5.717,14316,5.717]],["title/classes/LtiToolFactory.html",[0,0.23,14317,6.231]],["body/classes/LtiToolFactory.html",[0,0.156,2,0.526,3,0.012,4,0.012,5,0.006,7,0.07,8,0.845,27,0.533,29,1.027,30,0.001,31,0.72,32,0.184,33,0.622,34,1.455,35,1.429,47,0.841,55,2.464,59,3.171,95,0.122,99,0.778,101,0.009,103,0,104,0,127,0.579,138,3.037,144,3.234,148,1.418,150,2.565,165,0.552,185,4.874,216,1.293,217,1.118,227,0.894,234,0.744,236,2.673,329,3.402,359,2.425,366,2.524,369,1.546,371,2.337,379,1.954,380,2.137,381,2.302,404,1.264,538,3.135,596,3.826,627,2.178,660,7.067,661,4.537,662,5.319,665,3.921,666,5.319,667,5.555,668,3.921,669,3.921,670,3.921,671,3.85,672,4.309,673,4.754,674,6.301,675,5.624,676,6.892,677,2.594,682,2.57,683,3.921,684,2.594,685,4.969,686,5.177,687,4.401,688,5.008,689,3.885,690,2.57,691,2.401,692,4.012,693,2.502,694,2.459,695,2.57,696,4.893,697,2.594,698,4.668,699,2.57,700,7.062,701,4.033,702,6.473,703,2.594,704,4.19,705,2.57,706,2.594,707,2.57,708,2.594,709,2.57,710,2.904,711,2.732,712,2.57,713,5.928,714,2.594,715,2.57,716,3.921,717,3.85,718,3.921,719,2.594,720,2.48,721,2.459,722,2.022,723,2.57,724,2.57,725,2.57,726,2.594,727,2.594,728,1.795,729,2.57,730,2.594,731,2.739,732,2.57,733,2.594,735,2.646,737,4.168,1696,3.997,2076,3.692,3110,2.221,4328,3.832,5472,2.265,6959,3.832,6960,3.695,6968,2.944,6972,5.183,6973,5.463,6974,4.43,6975,5.314,6976,4.43,6978,2.944,6979,3.581,6980,3.581,6981,3.397,6985,5.463,6987,6.017,6988,5.463,6989,2.904,6990,5.183,6991,2.732,7030,3.832,8496,6.46,8501,6.46,11022,3.483,14245,4.234,14317,7.833,14318,4.584,14319,6.993,14320,4.584,14321,6.993,14322,4.584,14323,4.584,14324,4.584,14325,4.584,14326,4.584]],["title/modules/LtiToolModule.html",[425,1.808,14327,5.64]],["body/modules/LtiToolModule.html",[0,0.306,3,0.024,4,0.024,5,0.013,30,0.001,95,0.163,101,0.017,103,0.001,104,0.001,187,1.29,425,3.26,427,3.329,428,3.512,429,3.621,430,3.605,431,3.573,432,4.496,433,4.587,442,4.496,443,3.542,444,3.453,450,3.705,766,3.871,1053,5.911,1545,2.877,4552,9.658,5277,7.26,14327,11.652,14328,9.006,14329,9.006,14330,9.006,14331,11.706,14332,8.32,14333,9.006]],["title/injectables/LtiToolRepo.html",[105,0.89,4552,4.888]],["body/injectables/LtiToolRepo.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,8,0.802,10,2.682,12,3.063,18,3.282,26,2.358,27,0.535,29,1.015,30,0.001,31,0.741,32,0.179,33,0.639,34,1.572,35,1.545,36,2.698,40,2.063,47,0.845,95,0.127,96,1.159,99,0.727,101,0.008,103,0,104,0,105,0.876,107,1.026,111,2.26,112,2.963,148,1.326,150,2.436,165,0.338,167,2.536,187,0.614,217,1.307,221,1.917,227,1.191,234,1.319,236,3.873,247,1.7,305,1.233,347,1.657,359,2.303,380,2.287,381,1.411,398,1.255,404,1.201,511,2.194,595,1.476,596,3.77,661,4.76,878,4.623,884,3.137,885,4.93,915,2.36,1696,3.796,1857,4.237,2076,3.506,2092,2.426,2383,8.746,2385,4.713,2386,4.713,2387,4.713,2388,4.713,2389,4.623,2390,4.623,2391,4.713,2392,4.623,2393,4.713,2398,3.042,2400,5.234,2401,3.042,2403,3.042,2405,2.835,2406,4.713,2407,3.042,2409,3.042,2411,4.713,2415,4.713,2417,4.464,2418,4.623,2420,3.042,2422,2.614,2423,2.614,2424,3.042,2426,3.042,2428,3.042,2429,3.042,2446,3.042,2447,6.026,2468,5.553,3110,3.217,4355,2.752,4356,3.348,4552,4.812,5766,3.106,5767,3.106,5768,3.106,5769,3.106,5770,3.106,5771,3.106,5772,3.106,5773,3.106,5774,3.106,6959,8.763,6968,2.752,6972,8.597,6973,5.188,6974,4.207,6975,5.046,6976,4.207,6977,3.583,6978,4.265,6979,5.188,6980,5.188,6981,7.769,6985,5.188,6987,7.438,6988,5.188,6989,4.207,6990,4.922,6991,3.958,7038,8.074,8768,5.553,8776,5.553,8781,3.257,8846,3.744,8850,3.959,8851,3.959,8869,3.744,8870,3.959,8874,3.959,8875,3.959,10079,3.959,11022,3.257,14334,4.286,14335,6.135,14336,6.641,14337,3.959,14338,6.641,14339,4.286,14340,4.286,14341,6.641,14342,4.286,14343,4.286,14344,4.286,14345,4.286,14346,4.286,14347,3.583,14348,4.286,14349,4.286,14350,4.286,14351,4.286,14352,4.286,14353,4.286,14354,4.286,14355,4.286,14356,4.286,14357,4.286,14358,4.286,14359,3.959,14360,4.286,14361,4.286,14362,4.286,14363,4.286,14364,4.286,14365,4.286,14366,4.286,14367,4.286,14368,4.286,14369,4.286,14370,4.286,14371,4.286,14372,4.286,14373,4.286,14374,4.286,14375,4.286,14376,4.286,14377,4.286,14378,4.286,14379,4.286,14380,4.286,14381,4.286,14382,4.286,14383,4.286,14384,4.286]],["title/injectables/LtiToolService.html",[105,0.89,14331,5.64]],["body/injectables/LtiToolService.html",[0,0.301,3,0.023,4,0.023,5,0.012,7,0.136,8,1.336,27,0.459,29,0.877,30,0.001,31,0.62,32,0.155,33,0.553,35,1.069,36,2.622,47,0.878,95,0.155,101,0.017,103,0.001,104,0.001,105,1.458,107,2.118,112,2.706,116,3.905,127,1.118,187,1.267,215,2.864,216,1.636,217,1.167,227,0.932,347,2.459,450,3.64,4552,9.615,5285,7.132,5472,4.372,6972,8.197,6981,9.367,7038,6.159,11022,6.723,14331,9.246,14332,11.145,14335,10.216,14385,12.064,14386,8.848,14387,8.848,14388,11.059,14389,8.848,14390,8.848]],["title/interfaces/Mail.html",[334,0.743,1576,4.066]],["body/interfaces/Mail.html",[3,0.021,4,0.021,5,0.011,7,0.124,30,0.001,31,0.454,32,0.182,33,0.668,47,1.038,77,5.131,101,0.015,103,0.001,104,0.001,165,0.825,334,1.454,336,1.974,404,2.212,1560,7.749,1561,6.155,1562,8.582,1563,7.945,1564,6.155,1565,4.499,1566,7.749,1567,5.869,1568,6.155,1569,5.869,1570,8.582,1571,6.155,1572,9.068,1573,7.945,1574,7.945,1575,9.068,1576,7.818,1577,9.068,1578,9.068,1579,9.297,1580,9.297]],["title/interfaces/MailAttachment.html",[334,0.743,1562,5]],["body/interfaces/MailAttachment.html",[3,0.023,4,0.023,5,0.012,7,0.132,30,0.001,31,0.702,32,0.167,47,1.037,77,5.46,101,0.016,103,0.001,104,0.001,165,0.859,334,1.475,336,2.1,404,2.264,1560,8.064,1561,6.55,1562,9.28,1563,8.267,1564,9.514,1565,6.955,1566,8.064,1567,6.246,1568,6.55,1569,6.246,1570,8.836,1571,6.55,1572,8.064,1573,8.267,1574,8.267,1575,8.064,1576,6.557,1577,6.389,1578,6.389,1579,6.55,1580,6.55]],["title/interfaces/MailContent.html",[334,0.743,1570,5]],["body/interfaces/MailContent.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,31,0.484,32,0.153,33,0.544,47,1.028,77,7.937,101,0.016,103,0.001,104,0.001,165,0.86,334,1.475,336,2.105,404,2.265,1560,9.287,1561,6.564,1562,8.845,1563,8.278,1564,6.564,1565,4.799,1566,9.287,1567,6.259,1568,6.564,1569,6.259,1570,9.287,1571,9.521,1572,8.075,1573,8.278,1574,8.278,1575,8.075,1576,6.566,1577,6.403,1578,6.403,1579,6.564,1580,6.564]],["title/modules/MailModule.html",[425,1.808,14391,5.27]],["body/modules/MailModule.html",[0,0.313,3,0.024,4,0.024,5,0.013,8,1.113,27,0.382,29,0.731,30,0.001,31,0.517,32,0.129,33,0.46,35,1.113,47,0.826,95,0.145,101,0.018,103,0.001,104,0.001,187,1.32,227,0.971,334,1.015,425,3.293,427,3.406,432,3.406,433,3.474,627,3.531,701,3.218,836,5.318,1408,6.675,1409,7.622,1412,8.127,1417,7.282,1418,7.622,1420,6.412,1423,7.702,1424,7.702,14391,9.597,14392,8.51,14393,11.199,14394,9.212,14395,9.904,14396,8.51,14397,8.51]],["title/interfaces/MailModuleOptions.html",[334,0.743,14393,5.893]],["body/interfaces/MailModuleOptions.html",[0,0.313,3,0.024,4,0.024,5,0.013,7,0.142,30,0.001,32,0.159,47,0.976,95,0.145,101,0.018,103,0.001,104,0.001,165,0.895,187,1.32,227,0.971,334,1.015,336,2.245,425,3.293,432,3.406,433,3.474,627,2.869,836,5.318,1409,6.192,1412,7.501,1417,8.454,1418,8.848,1420,6.412,1423,7.702,1424,7.702,14391,8.859,14392,8.51,14393,10.732,14395,9.904,14396,8.51,14397,8.51]],["title/injectables/MailService.html",[105,0.89,14395,5.438]],["body/injectables/MailService.html",[0,0.295,3,0.023,4,0.023,5,0.012,7,0.133,8,1.319,27,0.453,29,0.867,30,0.001,31,0.613,32,0.153,33,0.546,35,1.048,36,2.374,47,0.795,95,0.153,101,0.017,103,0.001,104,0.001,105,1.441,107,2.077,111,2.185,112,2.682,116,3.87,127,1.38,163,3.445,187,1.243,216,2.02,221,2.045,334,0.956,369,1.918,701,4.176,839,4.073,1417,5.572,1418,5.832,1427,9.543,1428,8.015,1429,10.034,1437,6.286,1438,5.832,1455,7.254,1458,7.254,1576,7.564,1745,9.133,14395,8.806,14398,8.015,14399,10.963,14400,8.676,14401,8.676,14402,8.015,14403,8.015,14404,8.015]],["title/interfaces/MailServiceOptions.html",[334,0.743,14399,5.893]],["body/interfaces/MailServiceOptions.html",[0,0.31,3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.158,36,1.98,47,0.973,95,0.157,101,0.017,103,0.001,104,0.001,105,1.485,111,2.253,112,2.043,116,2.948,127,1.151,163,2.872,165,0.889,187,1.305,216,2.083,221,2.147,334,1.003,336,2.219,369,2.014,701,3.181,839,4.276,1417,8.2,1418,8.583,1429,9.288,1437,6.6,1438,6.122,1455,7.615,1458,7.615,1576,6.787,1745,7.615,14395,7.342,14398,8.414,14399,10.678,14402,8.414,14403,8.414,14404,8.414]],["title/modules/ManagementModule.html",[425,1.808,14405,5.27]],["body/modules/ManagementModule.html",[0,0.223,3,0.017,4,0.017,5,0.009,30,0.001,95,0.176,101,0.013,103,0.001,104,0.001,187,0.941,217,1.483,347,1.338,425,2.793,427,2.427,428,2.56,429,2.64,430,2.628,431,2.605,432,4.364,433,2.476,438,5.768,442,3.653,443,2.582,444,2.517,447,4.369,449,4.521,801,3.83,802,4.758,1114,2.664,1545,2.098,1585,7.437,1810,5.736,1945,6.083,2171,2.822,2172,3.141,2173,3.028,3443,7.937,3448,8.207,3449,10.208,3456,4.66,3458,4.159,3460,6.066,3461,7.098,3843,10.208,3898,3.583,6317,7.437,7644,7.597,7649,9.538,7665,5.49,7684,9.102,7714,7.597,7718,9.843,8104,6.584,8636,4.571,9419,4.414,10026,7.597,10094,8.783,10246,7.826,10253,4.867,10261,4.867,10262,4.66,10321,4.758,11110,6.066,11111,6.066,11500,4.053,11760,5.49,11763,4.867,12816,5.736,12822,7.597,14405,10.992,14406,6.566,14407,6.566,14408,6.566,14409,6.566,14410,6.566,14411,6.566,14412,9.086,14413,6.566,14414,6.566,14415,6.566,14416,10.419,14417,5.49,14418,6.566]],["title/modules/ManagementServerModule.html",[425,1.808,14419,5.64]],["body/modules/ManagementServerModule.html",[0,0.343,3,0.02,4,0.02,5,0.011,30,0.001,32,0.107,47,0.557,87,3.782,95,0.169,96,2.724,99,1.299,101,0.021,103,0.001,104,0.001,187,1.096,217,1.009,227,0.807,234,1.242,381,2.519,398,2.241,425,3.424,427,2.829,428,2.984,429,3.077,430,3.063,431,3.036,432,2.829,433,2.886,442,4.051,443,3.01,444,2.934,449,4.813,461,1.764,511,3.918,627,2.383,701,2.673,731,2.997,778,5.144,885,5.013,953,4.986,1298,3.593,1299,3.55,1300,3.55,1301,3.756,1378,5.062,1379,4.612,1409,5.144,1412,6.665,1919,3.178,2116,4.141,2686,4.072,4808,5.232,5453,5.144,10248,7.468,10249,7.468,10250,5.545,10251,7.656,10252,5.431,10254,7.468,10258,7.301,10259,7.301,10260,7.301,10262,5.431,10272,9.096,10273,5.672,10274,5.672,10275,5.545,10317,5.327,10319,7.468,10321,5.545,10322,6.169,10323,5.545,10324,6.169,10326,7.468,11226,5.672,14405,10.323,14419,10.678,14420,7.653,14421,7.653,14422,7.07,14423,7.07,14424,6.685,14425,6.685,14426,6.398]],["title/modules/ManagementServerTestModule.html",[425,1.808,14426,5.64]],["body/modules/ManagementServerTestModule.html",[0,0.332,3,0.019,4,0.019,5,0.01,8,0.881,27,0.303,29,0.578,30,0.001,31,0.409,32,0.137,33,0.364,35,0.881,47,0.531,59,2.263,87,3.604,95,0.168,96,2.638,99,1.238,101,0.021,103,0.001,104,0.001,187,1.045,217,0.962,227,0.769,234,1.183,381,2.4,398,2.136,425,3.377,427,2.696,428,2.843,429,2.932,430,2.919,431,2.893,432,2.696,433,2.75,442,3.923,443,2.868,444,2.796,449,4.722,461,1.681,511,3.733,627,3.038,701,3.409,731,2.856,778,4.901,885,4.855,953,4.751,1298,3.424,1299,3.383,1300,3.383,1301,3.579,1378,4.824,1379,4.395,1408,5.284,1409,6.559,1412,7.275,1919,3.028,2116,3.946,2686,3.881,4808,4.985,5453,4.901,10248,7.233,10249,7.233,10250,5.284,10251,7.415,10252,5.175,10254,7.233,10258,7.071,10259,7.071,10260,7.071,10262,5.175,10272,8.924,10273,5.405,10274,5.405,10275,5.284,10317,8.521,10319,8.704,10321,5.284,10322,5.878,10323,5.284,10324,5.878,10326,7.233,11226,5.405,14405,10.214,14419,6.097,14422,9.014,14423,6.736,14424,6.37,14425,6.37,14426,10.931,14427,7.292,14428,7.292,14429,7.292]],["title/entities/Material.html",[380,1.411,11307,4.217]],["body/entities/Material.html",[0,0.22,3,0.017,4,0.017,5,0.009,7,0.099,27,0.542,30,0.001,32,0.183,33,0.558,47,1.028,95,0.115,96,1.746,101,0.021,103,0.001,104,0.001,150,4.095,165,0.709,240,4.354,334,1.138,364,2.423,379,2.574,380,1.879,381,2.126,398,1.892,399,3.518,400,2.835,404,1.168,405,1.742,406,2.064,460,3.692,1474,3.79,1910,3.052,2789,3.411,3544,4.637,3573,4.209,6090,3.589,6427,4.417,6428,4.417,6992,4.149,11307,5.617,11310,4.149,11318,7.275,11538,7.019,11539,5.402,11540,8.276,11541,9.001,11542,9.001,11543,9.001,11544,9.001,11545,9.001,11546,9.001,11547,5.402,11548,4.681,11549,5.402,11550,5.402,11551,5.208,11552,5.402,11553,5.402,11554,5.402,11555,5.402,11556,5.402,11557,5.402,11558,5.402,11559,5.402,11560,5.402,11561,5.402,11562,5.402,11563,5.402,11564,5.402,14430,6.461,14431,6.461,14432,6.461,14433,6.461,14434,6.461,14435,6.461,14436,6.461,14437,6.461,14438,6.461,14439,6.461]],["title/classes/MaterialFactory.html",[0,0.23,14440,6.231]],["body/classes/MaterialFactory.html",[0,0.172,2,0.581,3,0.013,4,0.013,5,0.007,7,0.078,8,0.909,27,0.533,29,1.029,30,0.001,31,0.694,32,0.185,33,0.618,34,1.544,35,1.468,47,0.548,55,2.547,59,3.309,95,0.097,101,0.01,103,0,104,0,127,0.639,138,3.27,144,3.251,148,1.564,150,2.762,165,0.594,185,4.845,216,1.393,217,0.667,227,0.533,329,3.505,359,2.611,366,2.784,379,2.457,380,2.23,381,2.478,404,1.361,538,3.376,596,3.903,627,2.345,660,7.186,661,4.709,662,5.589,665,4.222,666,5.589,667,5.707,668,4.222,669,4.222,670,4.222,671,4.146,672,4.573,673,5.045,674,6.492,675,5.868,676,7.015,677,2.862,682,2.835,683,4.222,684,2.862,685,5.221,686,5.44,687,4.625,688,5.262,689,4.183,690,2.835,691,2.648,692,4.164,693,2.759,694,2.713,695,2.835,696,5.142,697,2.862,698,4.954,699,2.835,700,6.937,701,4.155,702,6.669,703,2.862,704,4.446,705,2.835,706,2.862,707,2.835,708,2.862,709,2.835,710,3.203,711,3.013,712,2.835,713,6.153,714,2.862,715,2.835,716,4.222,717,4.146,718,4.222,719,2.862,720,2.736,721,2.713,722,2.23,723,2.835,724,2.835,725,2.835,726,2.862,727,2.862,728,1.98,729,2.835,730,2.862,731,2.949,732,2.835,733,2.862,736,2.98,1236,5.423,1474,1.716,3544,3.127,11307,6.664,11318,3.294,11538,3.95,11540,3.748,11541,4.076,11542,4.076,11543,4.076,11544,4.076,14440,8.312,14441,5.056,14442,4.671,14443,5.056]],["title/injectables/MaterialsRepo.html",[105,0.89,14444,6.231]],["body/injectables/MaterialsRepo.html",[0,0.276,3,0.021,4,0.021,5,0.011,7,0.124,8,1.263,10,4.223,12,4.822,18,5.167,26,2.182,27,0.526,29,0.971,30,0.001,31,0.686,32,0.172,33,0.611,34,1.39,35,1.478,36,2.517,40,3.899,49,4.077,95,0.148,101,0.015,103,0.001,104,0.001,105,1.379,107,1.939,112,2.91,187,1.16,227,0.854,380,1.694,381,3.441,404,1.89,596,3.716,692,5.113,877,7.697,883,4.384,884,4.939,885,5.761,908,4.939,909,5,910,4.939,911,5,912,5.748,913,4.939,914,5,915,4.459,3639,5.537,11307,6.536,14442,7.482,14444,9.659,14445,8.1,14446,8.1]],["title/interfaces/Meta.html",[334,0.743,10747,5]],["body/interfaces/Meta.html",[3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,32,0.181,34,1.467,47,1.021,55,2.833,101,0.025,103,0.001,104,0.001,163,2.695,165,0.854,334,1.472,336,2.083,347,1.742,564,4.632,692,3.185,1289,5.489,1293,8.39,1327,4.93,3091,3.897,4477,5.745,6461,5.414,10742,6.335,10743,6.494,10744,6.335,10745,6.335,10746,6.494,10747,9.251,10748,9.484,10749,9.484,10750,6.335,10751,6.494,10752,6.065,10753,6.335,10754,6.494,10755,6.335]],["title/classes/MetadataTypeMapper.html",[0,0.23,14447,6.231]],["body/classes/MetadataTypeMapper.html",[0,0.313,2,1.058,3,0.024,4,0.024,5,0.013,7,0.142,8,1.369,27,0.382,29,0.731,30,0.001,31,0.517,32,0.159,33,0.46,35,1.113,95,0.157,99,1.563,101,0.018,103,0.001,104,0.001,187,1.32,208,3.419,217,1.495,227,0.971,234,1.84,305,2.651,627,3.825,3218,7.501,3331,6.358,6017,7.702,6403,10.271,6470,7.702,6489,8.258,10232,7.702,11768,8.764,11771,6.094,11772,6.002,14447,10.475,14448,11.34,14449,11.34,14450,11.34,14451,8.048,14452,8.51]],["title/classes/MigrationAlreadyActivatedException.html",[0,0.23,13258,5.438]],["body/classes/MigrationAlreadyActivatedException.html",[0,0.405,2,0.864,3,0.02,4,0.02,5,0.011,7,0.116,8,1.203,27,0.414,29,0.597,30,0.001,31,0.422,32,0.105,33,0.376,35,0.909,47,0.901,52,5.183,55,1.655,59,2.335,95,0.128,101,0.023,103,0.001,104,0.001,127,0.951,187,1.078,192,3.331,214,3.914,227,1.177,383,4.902,404,2.236,461,2.575,795,5.873,1134,5.057,1238,4.832,1327,4.413,1542,5.773,1543,6.429,1545,2.404,1547,6.325,1819,6.399,2685,5.694,4442,4.928,8137,6.429,8138,6.693,8236,10.247,13245,6.065,13246,9.34,13247,5.577,13248,9.972,13249,9.942,13251,9.942,13253,6.291,13254,6.291,13255,6.065,13256,8.33,13257,5.452,13258,8.032,14453,7.524,14454,7.524]],["title/classes/MigrationBody.html",[0,0.23,13458,5.893]],["body/classes/MigrationBody.html",[0,0.356,2,0.932,3,0.022,4,0.022,5,0.011,7,0.125,27,0.481,30,0.001,32,0.162,33,0.649,52,6.021,95,0.134,101,0.015,103,0.001,104,0.001,165,0.826,192,3.87,347,2.645,364,2.148,368,5.126,369,2.869,370,4.33,371,3.577,373,6.464,374,2.593,376,1.904,379,2.671,467,3.292,471,5.21,728,5.082,2578,6.821,5380,9.69,7793,6.631,9465,7.978,11285,7.76,13458,9.146,13521,8.806,13522,8.806,13523,8.806,14455,8.116,14456,8.116,14457,8.116,14458,8.116]],["title/injectables/MigrationCheckService.html",[105,0.89,14459,5.64]],["body/injectables/MigrationCheckService.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.197,26,2.474,27,0.412,29,0.786,30,0.001,31,0.556,32,0.139,33,0.495,35,0.902,36,2.155,47,0.924,48,5.567,95,0.158,99,1.267,101,0.014,103,0.001,104,0.001,105,1.308,107,1.788,111,2.226,112,2.497,127,1.253,129,7.319,132,7.148,167,4.249,187,1.07,189,5.559,191,4.149,192,3.319,216,2.058,217,1.564,221,2.624,227,1.173,347,1.522,355,4.377,371,2.059,450,3.072,461,1.721,4442,4.91,4455,6.367,4457,6.708,4467,7.348,4561,3.974,6938,5.612,8291,5.02,8300,6.958,12145,7.735,13642,6.244,14219,6.02,14459,8.289,14460,11.13,14461,7.468,14462,9.159,14463,10.111,14464,7.468,14465,9.915,14466,7.468,14467,6.524,14468,7.992,14469,6.899,14470,6.899,14471,7.468,14472,9.915,14473,6.899]],["title/classes/MigrationDto.html",[0,0.23,13474,4.787]],["body/classes/MigrationDto.html",[0,0.335,2,1.131,3,0.026,4,0.026,5,0.014,7,0.151,27,0.49,29,0.781,30,0.001,31,0.552,32,0.166,33,0.492,47,0.86,101,0.019,103,0.001,104,0.001,127,1.244,165,0.932,355,4.973,2211,8.239,2227,8.23,4442,5.578,13474,9.516,14474,9.843,14475,11.805,14476,11.805,14477,9.093,14478,9.843]],["title/injectables/MigrationMapper.html",[105,0.89,13438,5.64]],["body/injectables/MigrationMapper.html",[0,0.313,3,0.024,4,0.024,5,0.013,7,0.142,8,1.369,27,0.382,29,0.731,30,0.001,31,0.517,32,0.129,33,0.46,35,1.113,95,0.157,100,3.084,101,0.018,103,0.001,104,0.001,105,1.495,107,2.205,116,3.977,187,1.32,217,1.215,227,0.971,234,1.495,982,4.616,1016,4.05,9465,7.388,13438,9.481,13466,10.334,13467,7.702,13468,8.048,13469,10.611,13521,7,13522,7,13523,7,13639,7.702,13641,7.702,14479,9.212,14480,9.906,14481,9.906,14482,9.212,14483,9.212,14484,9.212,14485,9.212,14486,9.212,14487,9.212]],["title/classes/MigrationMayBeCompleted.html",[0,0.23,14488,6.231]],["body/classes/MigrationMayBeCompleted.html",[0,0.307,2,1.037,3,0.024,4,0.024,5,0.013,7,0.139,8,1.352,27,0.465,29,0.716,30,0.001,31,0.506,32,0.127,33,0.451,35,1.09,52,4.188,59,2.802,95,0.116,101,0.017,103,0.001,104,0.001,127,1.141,163,2.847,192,2.692,214,3.686,215,2.922,216,1.669,227,0.951,347,2.481,795,5.32,1327,3.565,1542,5.681,1543,6.327,1545,2.884,1547,6.333,3247,5.44,4442,5.37,8137,6.327,8138,6.587,11693,8.821,11726,6.859,14488,10.344,14489,11.246,14490,8.338,14491,8.338,14492,8.338,14493,8.338,14494,8.338,14495,7.276]],["title/classes/MigrationMayNotBeCompleted.html",[0,0.23,14496,6.231]],["body/classes/MigrationMayNotBeCompleted.html",[0,0.308,2,1.039,3,0.024,4,0.024,5,0.013,7,0.139,8,1.354,27,0.465,29,0.718,30,0.001,31,0.507,32,0.127,33,0.452,35,1.093,52,4.197,59,2.808,95,0.116,101,0.017,103,0.001,104,0.001,127,1.143,163,2.853,192,2.698,214,3.691,215,2.928,216,1.673,227,0.953,347,2.484,1327,3.573,1542,5.687,1543,6.333,1545,2.89,1547,6.338,4442,5.376,8137,6.333,8138,6.593,11693,8.83,11726,6.874,14489,11.257,14490,8.357,14491,8.357,14492,8.357,14493,8.357,14494,8.357,14495,7.293,14496,10.359,14497,7.293]],["title/classes/MigrationResponse.html",[0,0.23,13469,5.438]],["body/classes/MigrationResponse.html",[0,0.248,2,0.838,3,0.019,4,0.019,5,0.01,7,0.112,27,0.523,29,0.578,30,0.001,31,0.409,32,0.193,33,0.662,52,6.206,83,4.256,95,0.093,101,0.014,103,0.001,104,0.001,127,0.921,165,0.77,185,2.856,347,1.989,364,2.269,375,4.967,376,1.711,379,2.822,467,2.623,1013,3.344,1480,6.584,2578,6.358,6146,6.358,7793,7.439,9465,8.383,10533,7.623,11285,7.233,13469,9.869,13485,8.525,13521,8.357,13522,8.357,13523,8.357,13639,9.195,13641,9.195,14498,7.292,14499,9.758,14500,9.014,14501,8.525,14502,7.292,14503,7.292,14504,7.292,14505,7.292,14506,6.736,14507,6.736,14508,6.736,14509,6.736,14510,6.736,14511,6.736,14512,6.736,14513,6.736,14514,6.736,14515,6.736]],["title/classes/MissingSchoolNumberException.html",[0,0.23,13255,5.438]],["body/classes/MissingSchoolNumberException.html",[0,0.405,2,0.864,3,0.02,4,0.02,5,0.011,7,0.116,8,1.203,27,0.414,29,0.597,30,0.001,31,0.422,32,0.105,33,0.376,35,0.909,47,0.901,52,5.183,55,1.655,59,2.335,95,0.128,101,0.023,103,0.001,104,0.001,127,0.951,187,1.078,192,3.331,214,3.914,227,1.177,383,4.902,404,2.236,461,2.575,795,5.873,1134,5.057,1238,4.832,1327,4.413,1542,5.773,1543,6.429,1545,2.404,1547,6.325,1819,6.399,2685,5.694,4442,4.928,8137,6.429,8138,6.693,8236,10.247,13245,6.065,13246,9.34,13247,5.577,13248,9.972,13249,9.942,13251,9.942,13253,6.291,13254,6.291,13255,8.032,13256,8.33,13257,5.452,13258,6.065,14516,7.524,14517,7.524]],["title/classes/MissingToolParameterValueLoggableException.html",[0,0.23,202,5.893]],["body/classes/MissingToolParameterValueLoggableException.html",[0,0.218,2,0.737,3,0.017,4,0.017,5,0.009,7,0.099,8,1.08,27,0.527,29,0.883,30,0.001,31,0.36,32,0.185,33,0.514,35,1.08,47,0.906,55,1.412,95,0.15,101,0.012,103,0.001,104,0.001,108,5.943,111,1.789,127,1.13,136,6.961,140,6.862,144,1.755,163,2.025,165,0.706,187,0.92,194,4.183,199,2.451,200,2.915,201,3.362,202,7.814,204,3.82,209,4.031,210,4.123,214,2.944,216,2.461,217,0.847,227,0.677,286,9.51,290,6.758,298,6.988,364,2.17,404,1.617,406,2.051,558,3.051,564,2.383,596,3.682,1013,5.106,1016,2.293,1238,4.123,1253,4.748,1291,2.732,1327,4.398,1472,7.955,1473,5.883,1474,3.78,1475,6.611,1479,4.183,1480,3.599,1481,4.183,1482,4.183,1483,4.183,1484,4.183,1485,4.183,1486,3.915,1487,3.669,1493,4.066,1542,4.804,1543,5.35,1545,2.051,1547,5.54,2621,3.032,3678,5.175,3888,5.015,5707,4.758,8137,5.35,8138,5.57,8530,4.123,8537,3.784,8538,3.963,8692,5.608,10369,5.93,14518,10.294,14519,10.294,14520,6.42,14521,6.42,14522,6.42,14523,6.42,14524,5.367,14525,6.42,14526,8.945,14527,6.42,14528,6.42,14529,6.42]],["title/modules/MongoMemoryDatabaseModule.html",[425,1.808,10317,4.695]],["body/modules/MongoMemoryDatabaseModule.html",[0,0.253,3,0.02,4,0.02,5,0.011,8,0.899,27,0.411,29,0.59,30,0.001,31,0.417,32,0.139,33,0.372,35,1.194,36,2.15,59,2.31,95,0.162,96,2.673,99,1.263,101,0.014,103,0.001,104,0.001,111,1.488,112,2.219,187,1.066,208,2.761,214,2.449,217,1.625,221,1.754,227,1.171,369,1.645,381,2.449,398,2.179,425,2.978,427,2.751,433,2.806,449,2.992,627,3.08,701,4.305,731,2.914,778,5.001,837,5.515,839,3.493,845,5.28,846,5.28,953,4.848,1298,3.493,1299,3.452,1300,3.452,1301,3.652,1378,4.922,1379,4.485,1408,5.391,1409,6.648,1412,7.831,4808,6.761,6706,4.651,6758,4.848,7662,7.515,10250,8.578,10252,5.28,10254,7.33,10317,7.733,10319,8.775,10323,9.181,14530,11.109,14531,11.109,14532,7.441,14533,7.441,14534,10.767,14535,7.441,14536,9.89,14537,7.441,14538,7.441,14539,7.441,14540,9.89,14541,7.441,14542,5.998,14543,7.441,14544,6.873,14545,7.441,14546,7.441,14547,9.89,14548,7.441]],["title/classes/MongoPatterns.html",[0,0.23,12539,5.64]],["body/classes/MongoPatterns.html",[0,0.318,2,1.073,3,0.025,4,0.025,5,0.013,7,0.144,27,0.388,30,0.001,72,5.369,101,0.018,103,0.001,104,0.001,144,2.553,165,0.902,329,2.752,571,7.149,574,5.185,627,3.849,777,8.69,1991,6.188,4220,7.961,5369,8.273,7652,6.974,8096,9.219,9979,9.99,10768,8.69,12539,9.562,14549,9.341,14550,12.361,14551,11.436,14552,11.436,14553,9.341,14554,11.436,14555,9.562,14556,11.436,14557,11.436,14558,10.565]],["title/classes/MoveCardBodyParams.html",[0,0.23,4028,5.893]],["body/classes/MoveCardBodyParams.html",[0,0.386,2,1.06,3,0.024,4,0.024,5,0.013,7,0.142,27,0.471,30,0.001,32,0.159,47,0.827,55,2.498,95,0.146,101,0.018,103,0.001,104,0.001,165,0.896,364,2.105,368,4.485,369,2.836,370,4.281,371,3.536,374,2.95,376,2.166,467,3.306,1000,4.856,3436,8.059,3437,6.553,3442,6.69,3822,9.345,4028,9.92,6849,8.53,14559,11.36,14560,12.298,14561,8.53,14562,9.233,14563,8.066,14564,9.233]],["title/classes/MoveColumnBodyParams.html",[0,0.23,4865,5.893]],["body/classes/MoveColumnBodyParams.html",[0,0.382,2,1.041,3,0.024,4,0.024,5,0.013,7,0.139,27,0.466,30,0.001,32,0.157,34,1.927,47,0.818,55,2.47,95,0.144,101,0.017,103,0.001,104,0.001,165,0.886,364,2.082,368,4.818,369,2.818,370,4.253,371,3.514,374,2.897,376,2.127,379,2.09,467,3.279,1000,4.802,1984,4.802,2744,5.007,3436,7.969,3437,6.434,3442,6.57,3822,9.269,3834,5.288,4865,9.809,14559,11.269,14563,7.921,14565,9.067,14566,12.198,14567,9.067,14568,9.067]],["title/classes/MoveContentElementBody.html",[0,0.23,8057,5.893]],["body/classes/MoveContentElementBody.html",[0,0.385,2,1.053,3,0.024,4,0.024,5,0.013,7,0.141,27,0.469,30,0.001,32,0.159,47,0.823,55,2.488,95,0.145,101,0.017,103,0.001,104,0.001,165,0.892,364,2.096,368,4.467,369,2.83,370,4.27,371,3.528,374,2.93,376,2.151,467,3.296,1000,4.836,2344,5.068,3436,8.025,3437,6.508,3442,6.645,3822,9.316,6854,7.667,8057,9.878,14561,8.471,14563,8.011,14569,12.26,14570,12.26,14571,9.17,14572,9.17]],["title/classes/MoveElementParams.html",[0,0.23,7224,5.64]],["body/classes/MoveElementParams.html",[0,0.412,2,1.025,3,0.024,4,0.024,5,0.013,7,0.137,27,0.462,30,0.001,32,0.156,55,2.665,72,4.191,95,0.143,100,2.988,101,0.021,103,0.001,104,0.001,165,0.878,364,2.061,374,2.852,375,4.512,376,2.094,379,2.058,467,3.506,471,4.732,1277,4.604,1382,5.51,2423,5.443,2594,3.938,2809,5.87,3436,8.997,3437,6.334,3442,8.777,3872,6.102,5437,7.463,5740,6.992,6854,7.463,7219,5.58,7224,9.297,7228,6.213,7345,7.196,9535,9.297,14573,11.189,14574,11.395,14575,8.926,14576,8.926]],["title/classes/MoveElementPositionParams.html",[0,0.23,14574,5.893]],["body/classes/MoveElementPositionParams.html",[0,0.401,2,0.965,3,0.022,4,0.022,5,0.012,7,0.129,27,0.489,30,0.001,32,0.165,33,0.535,55,2.881,72,5.027,95,0.137,100,3.584,101,0.02,103,0.001,104,0.001,165,0.845,364,2.184,374,2.685,375,4.344,376,1.971,379,2.468,467,3.444,471,4.556,1277,5.522,1382,7.273,2423,6.529,2594,4.723,2809,6.548,3433,9.89,3436,8.803,3437,5.964,3442,8.537,3872,7.319,5437,8.951,5740,6.801,6854,7.026,7219,6.693,7224,7.026,7228,8.201,7345,9.498,14573,11.459,14574,10.836,14577,8.404,14578,8.404,14579,8.404,14580,8.404]],["title/entities/News.html",[380,1.411,6731,3.818]],["body/entities/News.html",[0,0.312,3,0.011,4,0.026,5,0.006,7,0.161,9,3.184,26,1.914,27,0.509,30,0.001,31,0.514,32,0.178,33,0.565,34,1.143,47,0.915,83,2.452,95,0.145,96,2.202,101,0.019,103,0,104,0,144,1.175,165,0.783,188,2.521,192,3.264,208,1.596,227,0.453,234,1.322,240,3.638,329,1.267,334,0.474,364,2.199,369,2.622,370,3.652,380,2.076,381,1.415,386,4.656,396,3.359,398,1.259,399,2.607,400,1.887,404,1.658,405,2.473,406,1.374,461,2.523,571,5.093,574,3.694,595,1.48,617,4.703,627,1.339,672,4.141,731,3.19,769,4.855,843,2.906,844,4.962,854,4.629,1031,2.611,1298,3.825,1299,4.256,1300,3.78,1301,3.999,1302,4.371,1474,3.563,1492,4.013,1910,4.333,1916,3.947,1932,4.171,1991,2.326,2344,4.338,2572,4.276,2620,4.752,2674,4.813,2688,2.508,2744,5.539,2789,2.27,3394,4.552,3396,4.276,3397,4.404,3399,3.051,3400,2.993,3401,3.187,3415,2.761,3547,2.89,3573,2.801,4227,2.292,4319,3.267,4320,3.115,4926,3.758,4996,3.187,5011,4.725,5554,7.19,6110,3.699,6329,2.993,6407,2.654,6409,2.411,6430,2.591,6627,2.89,6633,2.654,6717,3.187,6718,3.466,6720,4.11,6721,3.466,6722,6.799,6723,5.891,6724,3.466,6725,8.199,6726,6.068,6727,5.324,6728,6.039,6729,6.799,6730,6.596,6731,7.441,6732,5.367,6733,6.51,6734,5.367,6735,5.059,6736,5.059,6737,5.891,6738,5.367,6739,3.466,6740,3.267,6741,3.466,6742,3.187,6743,3.466,6744,2.562,6745,2.654,6746,3.267,6747,3.466,6748,3.466,6749,6.365,6750,3.466,6751,6.568,6752,3.466,6753,3.466,6754,5.059,6755,3.267,6756,5.671,6757,3.359,6758,4.338,6759,3.267,6760,3.115,6761,3.267,6762,3.466,14581,4.3,14582,4.3,14583,4.3,14584,4.3,14585,4.3,14586,4.3,14587,4.3,14588,4.3,14589,4.3,14590,4.3,14591,4.3,14592,4.3]],["title/controllers/NewsController.html",[481,2.63,14593,5.893]],["body/controllers/NewsController.html",[0,0.173,3,0.014,4,0.014,5,0.007,7,0.078,8,0.915,10,4.319,27,0.444,29,0.848,30,0.001,31,0.6,32,0.15,33,0.534,34,1.3,35,1.291,36,2.694,95,0.153,100,3.885,101,0.01,103,0,104,0,112,2.937,137,5.487,165,0.598,185,4.388,187,0.73,192,2.984,215,1.649,216,0.942,217,1.635,221,2.521,227,1.127,234,0.827,264,3.206,277,4.28,364,1.982,376,1.195,380,1.584,447,2.136,461,2.748,469,2.247,481,1.986,483,2.452,491,6.471,494,4.564,513,6.83,529,3.987,543,4.528,552,3.272,555,2.689,556,2.756,557,2.78,559,2.78,561,2.78,843,3.305,883,4.196,1016,2.704,1028,7.101,1295,4.371,1871,6.177,2934,7.302,2951,6.373,2955,5.115,3396,4.863,3710,6.445,4499,4.618,4960,4.797,5367,6.105,5784,4.417,6487,6.102,6731,7.551,6771,6.995,6898,8.066,10354,8.066,12319,4.259,13656,4.259,13662,4.259,14593,6.615,14594,5.095,14595,7.061,14596,5.095,14597,5.095,14598,10.829,14599,7.573,14600,5.095,14601,4.706,14602,5.095,14603,6.995,14604,5.095,14605,7.573,14606,5.095,14607,7.573,14608,5.095,14609,8.366,14610,7.573,14611,5.095,14612,4.107,14613,4.451,14614,7.286,14615,4.706,14616,4.107,14617,4.107,14618,4.706,14619,5.095,14620,4.706,14621,4.706,14622,4.259,14623,4.706,14624,8.741,14625,4.451,14626,4.706,14627,4.706,14628,4.706,14629,4.706,14630,5.095,14631,5.095,14632,5.095,14633,5.095,14634,5.095,14635,7.573,14636,5.095]],["title/classes/NewsCrudOperationLoggable.html",[0,0.23,14637,5.893]],["body/classes/NewsCrudOperationLoggable.html",[0,0.291,2,0.982,3,0.023,4,0.023,5,0.012,7,0.131,8,1.307,26,2.605,27,0.449,29,0.678,30,0.001,31,0.479,32,0.12,33,0.427,35,1.032,39,3.346,95,0.16,99,1.451,101,0.016,103,0.001,104,0.001,111,2.375,127,1.367,163,2.695,214,3.562,216,2.196,227,0.901,415,4.664,1327,3.376,1542,5.542,1543,6.171,1545,2.731,1547,6.21,2490,10.062,6731,7.723,10381,9.484,14612,6.89,14613,7.466,14637,9.453,14638,11.874,14639,8.547,14640,8.547,14641,11.53,14642,8.547,14643,8.547,14644,7.895,14645,7.895,14646,8.547,14647,8.547]],["title/classes/NewsListResponse.html",[0,0.23,14616,5.438]],["body/classes/NewsListResponse.html",[0,0.263,2,0.602,3,0.014,4,0.03,5,0.007,7,0.081,27,0.449,29,0.416,30,0.001,31,0.515,32,0.18,33,0.541,34,1.943,47,0.875,55,2.894,56,5.45,59,2.4,70,5.673,83,2.765,95,0.145,99,0.889,101,0.015,103,0,104,0,127,0.977,145,1.353,163,3.412,165,0.61,188,1.984,192,3.376,217,1.212,359,1.817,364,1.881,375,4.116,376,1.229,379,3.053,380,2.648,404,1.398,461,2.338,467,3.509,469,2.312,475,3.874,524,3.089,538,2.35,591,3.93,592,4.054,596,3.081,618,2.23,620,3.366,622,3.366,769,3.123,1007,7.229,1008,6.179,1009,4.419,1011,2.789,1013,4.214,1014,2.572,1015,2.911,1016,1.872,1017,3.719,1018,5.038,1019,4.51,1020,3.467,1021,2.789,1022,3.719,1023,3.719,1025,3.32,1026,2.911,1031,2.478,1295,3.025,1474,3.444,1773,3.366,1848,3.522,1916,4.915,1932,3.959,2344,4.193,2450,3.32,2744,5.222,2789,2.766,2910,4.22,2911,4.22,2915,2.766,2951,3.123,3415,3.366,3469,3.884,4320,3.797,4499,3.196,4586,3.648,5554,6.658,6429,3.276,6723,4.966,6726,6.079,6727,4.93,6728,3.884,6729,6.811,6730,5.359,6731,7.164,6740,3.982,6746,3.982,6756,3.648,6902,6.397,6906,4.225,6907,4.382,6908,3.982,6911,5.038,6914,3.797,9620,3.884,11982,4.225,14616,6.234,14617,9.689,14648,4.841,14649,5.241,14650,5.241,14651,6.234,14652,8.028,14653,6.234,14654,7.408,14655,7.143,14656,7.143,14657,4.578,14658,7.143,14659,4.841,14660,4.841,14661,4.094,14662,4.841,14663,4.578,14664,6.755]],["title/classes/NewsMapper.html",[0,0.23,14612,5.438]],["body/classes/NewsMapper.html",[0,0.207,2,0.699,3,0.016,4,0.023,5,0.009,7,0.094,8,1.041,27,0.477,29,0.911,30,0.001,31,0.644,32,0.161,33,0.574,34,1.479,35,1.387,95,0.153,99,1.033,100,4.192,101,0.012,103,0.001,104,0.001,163,2.718,185,3.375,192,2.983,217,1.651,227,1.21,234,0.988,461,1.404,529,3.802,591,2.604,592,2.686,627,4.194,975,4.926,982,3.051,1474,3.396,1544,8.74,1545,1.945,1916,2.95,2344,4.135,2744,4.851,6723,6.425,6726,6.618,6727,4.624,6729,4.513,6730,6.345,6731,7.307,6898,8.77,6902,7.572,7250,7.962,10354,8.77,10356,4.909,11372,8.065,11379,8.364,11380,8.77,14609,9.095,14612,6.948,14617,8.77,14665,6.089,14666,8.619,14667,8.619,14668,8.619,14669,8.619,14670,8.619,14671,6.089,14672,8.619,14673,6.089,14674,8.619,14675,6.089,14676,8.619,14677,6.089,14678,8.619,14679,6.089,14680,5.319,14681,10.004,14682,5.319,14683,5.319,14684,6.089,14685,6.089,14686,6.089,14687,8.619,14688,6.089,14689,6.089,14690,5.625,14691,6.089,14692,6.089,14693,7.962,14694,7.962,14695,6.089,14696,6.089,14697,5.625,14698,6.089,14699,6.089,14700,6.089,14701,8.619,14702,6.089,14703,6.089,14704,6.089,14705,6.089,14706,8.619,14707,8.619,14708,6.089,14709,6.089,14710,6.089]],["title/modules/NewsModule.html",[425,1.808,14711,5.438]],["body/modules/NewsModule.html",[0,0.287,3,0.022,4,0.022,5,0.012,30,0.001,95,0.171,101,0.016,103,0.001,104,0.001,187,1.206,425,3.162,427,3.113,428,3.284,429,3.386,430,3.371,431,3.341,432,4.36,433,4.448,438,6.19,442,4.31,443,3.312,444,3.229,447,4.495,449,4.31,450,3.465,1545,2.691,1945,7.09,2767,3.797,14593,10.302,14614,11.186,14615,7.78,14711,11.237,14712,8.422,14713,8.422,14714,8.422,14715,8.422,14716,10.564,14717,8.422,14718,10.302,14719,8.422,14720,8.422,14721,8.422]],["title/injectables/NewsRepo.html",[105,0.89,14716,5.438]],["body/injectables/NewsRepo.html",[0,0.158,3,0.012,4,0.012,5,0.007,7,0.071,8,0.854,10,2.854,12,3.259,18,3.492,26,2.479,27,0.503,29,0.92,30,0.001,31,0.65,32,0.167,33,0.579,34,1.468,35,1.4,36,2.676,40,2.237,49,2.756,59,2.654,95,0.139,96,1.256,98,2.77,99,0.789,101,0.009,103,0,104,0,105,0.932,107,1.112,111,1.711,112,2.951,144,1.27,165,0.558,187,0.666,192,3.228,208,1.725,217,1.624,221,2.8,227,1.083,234,1.147,264,4.352,277,3.423,329,1.369,379,1.071,380,0.972,381,2.326,398,1.361,404,1.278,529,3.117,538,3.834,596,2.902,692,4.588,701,4.458,795,5.632,806,3.603,877,6.562,883,2.963,884,3.338,885,4.255,908,2.834,909,2.869,910,2.834,911,2.869,912,3.298,913,2.834,914,2.869,915,2.559,919,3.531,964,3.177,1041,5.308,2185,4,2432,5.694,2744,5.296,3396,6.136,3399,6.78,3850,5.697,4169,3.074,4628,3.074,4630,4.966,5346,2.944,5554,5.121,5784,4.122,6046,4.831,6110,6.013,6487,4.31,6717,6.338,6727,3.792,6731,7.347,6755,6.498,6761,6.498,6775,7.477,6785,5.238,7668,2.801,7907,4.919,9371,8.593,9842,6.529,9856,6.529,10358,3.631,12468,8.347,14716,5.697,14722,4.647,14723,8.551,14724,7.067,14725,8.551,14726,7.067,14727,7.067,14728,9.071,14729,4.647,14730,4.647,14731,4.647,14732,7.067,14733,4.647,14734,9.555,14735,4.647,14736,4.647,14737,4.647,14738,7.47,14739,7.067,14740,4.647,14741,9.555,14742,7.067,14743,4.647,14744,4.647,14745,7.067,14746,4.647,14747,4.647,14748,7.067,14749,7.067,14750,4.647,14751,4.647,14752,4.647,14753,8.551,14754,4.647,14755,4.647,14756,4.647]],["title/classes/NewsResponse.html",[0,0.23,14617,5.438]],["body/classes/NewsResponse.html",[0,0.23,2,0.505,3,0.012,4,0.032,5,0.006,7,0.068,27,0.533,29,0.349,30,0.001,31,0.562,32,0.186,33,0.551,34,2.084,47,0.936,55,1.817,56,3.259,70,3.392,83,3.186,95,0.136,99,0.746,101,0.013,103,0,104,0,127,0.855,163,2.135,165,0.534,188,2.564,192,3.558,217,1.089,359,2.348,364,2.362,375,3.765,376,1.031,379,3.04,380,2.786,404,0.794,461,2.543,467,3.393,469,1.938,475,4.138,524,3.99,538,3.035,591,4.286,592,4.421,618,1.87,620,2.822,622,2.822,769,2.618,966,2.249,1007,4.179,1008,2.398,1009,2.511,1013,5.472,1025,2.783,1026,2.441,1031,2.647,1295,3.908,1474,3.745,1480,3.796,1773,2.822,1848,4.55,1916,5.344,1932,4.751,2344,4.56,2450,4.288,2744,5.496,2789,2.319,2909,2.953,2910,5.064,2911,5.064,2914,2.822,2915,3.574,2951,4.034,3415,2.822,3469,5.018,4320,3.184,4499,4.128,4586,4.712,5554,7.262,6052,4.059,6429,2.747,6723,5.304,6726,6.63,6727,5.377,6728,3.256,6729,7.428,6730,5.845,6731,7.538,6740,3.339,6746,3.339,6756,3.058,6902,6.976,6906,5.457,6907,5.66,6908,5.144,6911,6.046,6914,4.905,9620,3.256,11982,3.542,14616,3.542,14617,9.182,14648,4.059,14651,6.658,14652,7.215,14653,6.658,14654,8.079,14655,7.629,14656,7.629,14657,3.838,14658,7.629,14659,4.059,14660,4.059,14661,3.432,14662,4.059,14663,5.914,14664,8.106,14757,4.394,14758,4.394,14759,4.394,14760,4.394,14761,4.394,14762,4.394,14763,4.394,14764,4.394,14765,4.394,14766,4.394,14767,4.394,14768,4.394,14769,4.394,14770,4.394,14771,4.394,14772,4.394]],["title/classes/NewsScope.html",[0,0.23,14738,5.893]],["body/classes/NewsScope.html",[0,0.214,2,0.723,3,0.017,4,0.017,5,0.009,7,0.097,8,1.066,26,2.305,27,0.533,29,0.876,30,0.001,31,0.619,32,0.173,33,0.552,35,1.455,83,2.656,95,0.149,96,1.703,99,1.069,101,0.012,103,0.001,104,0.001,111,2.411,144,1.722,145,1.626,148,1.949,165,0.697,217,1.344,227,1.225,234,1.432,247,2.499,277,5.204,329,1.856,347,2.077,398,1.845,404,1.596,529,4.871,596,3.531,905,2.616,1828,2.809,1924,4.786,2432,6.929,2744,2.809,3599,5.819,3601,5.078,5872,6.034,5873,6.034,5874,6.034,5879,6.034,5880,6.034,5881,4.385,5882,4.306,5883,4.385,5884,4.385,5893,4.306,5894,6.034,5895,4.385,5896,4.306,5897,4.385,5898,4.306,5899,7.549,6110,5.661,6726,5.839,6727,3.38,6730,3.674,6731,4.996,6793,7.687,7668,3.796,9371,5.266,9376,5.819,9387,4.669,9888,5.078,9897,5.503,9904,5.503,12564,7.116,12567,8.154,14728,8.902,14738,11.357,14773,10.74,14774,8.827,14775,11.043,14776,8.827,14777,11.043,14778,8.827,14779,6.299,14780,8.827,14781,6.299,14782,5.819,14783,6.299,14784,6.299,14785,6.299,14786,6.299,14787,6.299,14788,6.299,14789,6.299]],["title/interfaces/NewsTargetFilter.html",[334,0.743,14728,5.438]],["body/interfaces/NewsTargetFilter.html",[3,0.027,4,0.027,5,0.014,7,0.154,26,2.754,30,0.001,32,0.167,95,0.129,99,1.704,101,0.019,103,0.001,104,0.001,165,0.943,334,1.106,336,2.446,2744,4.477,6723,8.476,6730,7.698,9375,11.53,14728,9.63,14773,9.275,14790,10.04]],["title/injectables/NewsUc.html",[105,0.89,14614,5.438]],["body/injectables/NewsUc.html",[0,0.112,3,0.009,4,0.009,5,0.005,7,0.051,8,0.649,10,2.172,25,4.697,26,2.812,27,0.454,29,0.867,30,0.001,31,0.613,32,0.157,33,0.546,34,1.69,35,1.426,36,2.566,39,3.501,47,0.497,59,1.669,83,2.371,95,0.126,98,1.959,99,0.558,101,0.006,103,0,104,0,105,0.709,107,0.787,111,2.393,112,2.888,116,3.873,127,0.679,144,1.864,145,1.761,167,2.604,185,4.162,187,0.471,192,0.98,217,1.629,221,3.001,227,1.152,234,0.873,247,1.304,264,4.999,277,4.111,284,3.241,329,2.56,347,1.39,379,0.758,450,1.353,461,1.239,575,4.065,595,1.851,627,2.124,701,3.439,728,2.671,731,1.287,843,2.977,883,2.254,1052,4.012,1062,1.435,1295,1.898,1298,1.544,1299,1.525,1300,1.525,1545,1.05,1866,3.043,1916,5.633,1952,3.66,1953,6.588,2076,1.736,2490,2.65,2572,3.453,2744,3.874,2767,1.482,2778,5.134,2951,3.204,3091,2.451,3262,2.055,4227,2.992,4480,3.896,6487,2.005,6723,5.061,6726,6.794,6727,1.764,6730,6.377,6731,7.502,6775,4.864,6844,2.142,6845,2.65,6902,6.852,6914,2.382,8599,5.329,9345,4.967,9352,4.967,9371,8.23,9375,4.697,10356,7.004,11372,6.352,11379,6.588,11380,7.936,12016,2.568,12314,4.697,12932,2.872,12933,2.872,14614,4.334,14625,4.697,14637,2.872,14641,3.037,14644,3.037,14657,2.872,14690,3.037,14693,7.279,14694,7.279,14697,4.967,14716,7.519,14728,4.334,14791,3.288,14792,6.821,14793,5.377,14794,5.377,14795,5.377,14796,6.821,14797,3.288,14798,3.288,14799,4.967,14800,3.288,14801,3.288,14802,3.288,14803,3.288,14804,5.377,14805,5.959,14806,5.959,14807,5.377,14808,3.288,14809,5.377,14810,3.288,14811,9.327,14812,3.288,14813,5.377,14814,3.288,14815,4.967,14816,3.288,14817,5.499,14818,3.288,14819,5.377,14820,3.288,14821,3.288,14822,3.288,14823,5.377,14824,6.821,14825,3.288,14826,3.288,14827,7.88,14828,3.288,14829,5.377,14830,3.288,14831,5.377,14832,3.288,14833,3.288,14834,3.288,14835,3.288,14836,5.377,14837,3.288,14838,3.288,14839,3.288,14840,5.377,14841,6.821,14842,3.288,14843,3.288,14844,3.288,14845,3.288,14846,3.288,14847,3.288,14848,3.288,14849,3.288,14850,3.288,14851,3.288,14852,5.377,14853,3.288,14854,3.288,14855,3.288,14856,5.377,14857,3.288,14858,3.288,14859,3.288,14860,3.288,14861,3.288]],["title/classes/NewsUrlParams.html",[0,0.23,14598,5.893]],["body/classes/NewsUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,3834,5.672,6731,6.633,14598,10.238,14862,9.724,14863,12.58,14864,9.724]],["title/injectables/NexboardService.html",[105,0.89,13683,5.64]],["body/injectables/NexboardService.html",[0,0.267,3,0.021,4,0.021,5,0.011,7,0.121,8,1.237,26,2.523,27,0.425,29,0.813,30,0.001,31,0.574,32,0.16,33,0.512,34,1.347,35,0.948,36,2.226,39,3.057,47,0.967,94,3.73,95,0.155,101,0.02,103,0.001,104,0.001,105,1.351,107,1.878,111,1.57,112,2.558,127,0.992,150,2.878,163,2.475,187,1.124,204,3.514,215,2.54,216,1.451,217,1.504,221,1.85,227,1.079,234,1.273,371,2.163,379,2.786,766,3.373,784,4.142,883,3.29,1052,4.648,1053,5.361,1158,4.176,1474,4.104,1545,2.507,1984,3.356,2586,4.142,8250,6.855,8251,9.318,8255,7.249,8256,6.855,8262,7.249,8264,7.249,11313,7.13,13683,8.564,14865,7.847,14866,11.403,14867,7.847,14868,7.847,14869,7.847,14870,10.243,14871,7.847,14872,7.847,14873,7.847,14874,7.847]],["title/interfaces/NextcloudGroups.html",[334,0.743,10744,5]],["body/interfaces/NextcloudGroups.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.127,34,1.56,47,0.996,55,2.686,101,0.026,103,0.001,104,0.001,163,2.866,165,0.887,334,1.492,336,2.214,347,1.852,564,3.373,692,3.386,1289,5.836,1293,6.108,1327,3.59,3091,4.143,4477,6.108,6461,8.082,10742,6.735,10743,6.905,10744,8.334,10745,6.735,10746,6.905,10747,9.05,10748,6.905,10749,6.905,10750,6.735,10751,6.905,10752,6.449,10753,6.735,10754,6.905,10755,6.735]],["title/injectables/NextcloudStrategy.html",[105,0.89,4554,5.893]],["body/injectables/NextcloudStrategy.html",[0,0.103,3,0.008,4,0.008,5,0.004,7,0.047,8,0.608,27,0.442,29,0.789,30,0.001,31,0.638,32,0.139,33,0.497,34,1.772,35,1.247,36,2.583,39,1.35,47,0.935,55,1.832,62,2.938,72,1.426,95,0.146,99,0.515,100,2.514,101,0.006,103,0,104,0,105,0.664,107,0.727,111,2.232,112,2.795,127,0.636,158,3.233,165,0.397,167,1.16,187,0.435,192,1.502,200,0.99,201,1.591,209,2.585,214,1.658,216,1.66,217,1.617,221,2.977,227,1.002,234,0.493,247,1.205,264,4.371,284,3.036,305,0.874,379,2.069,461,1.919,493,3.827,496,1.28,500,3.443,520,3.385,524,1.79,627,2.795,661,4.702,686,2.749,728,1.189,768,5.328,784,1.603,905,1.261,956,1.979,1052,2.053,1053,3.33,1158,2.68,1238,1.95,1240,1.753,1277,5.866,1359,3.827,1515,1.95,1545,0.97,1666,2.114,1725,3.65,1916,1.471,1919,1.261,1993,2.076,2008,1.95,2296,3.574,2321,5.938,2400,1.736,2423,3.072,2450,3.19,2477,1.875,2510,3.19,2579,3.574,2657,3.574,2835,1.81,2951,1.81,2993,2.009,3091,3.423,3372,2.076,3469,4.783,3543,3.167,3544,2.68,3547,2.041,3928,6.802,3934,4.653,4477,7.339,4482,4.211,4485,3.443,4487,4.06,4488,4.06,4490,4.06,4491,4.06,4493,5.202,4496,4.06,4497,7.326,4499,7.79,4500,4.06,4504,4.06,4510,2.251,4512,2.373,4532,8.322,4534,2.448,4535,2.653,4536,8.306,4537,7.273,4552,6.89,4553,6.936,4554,4.4,4559,2.806,4560,2.308,4561,1.616,4641,2.041,5102,2.448,5382,1.736,5602,2.524,5944,1.924,5976,6.195,5985,2.041,6727,2.702,6901,2.373,6911,4.892,6938,2.851,7038,4.492,7127,3.332,7320,8.913,7659,3.935,7679,2.076,7785,2.373,8712,5.425,8836,1.95,9401,3.149,9975,1.687,11022,2.308,11042,8.898,11086,9.801,11105,4.653,11216,3.235,11378,3.282,12068,6.505,12144,7.225,12145,5.798,14524,2.539,14875,3.037,14876,7.509,14877,7.509,14878,5.037,14879,5.037,14880,5.037,14881,3.037,14882,3.037,14883,7.505,14884,8.977,14885,3.037,14886,3.827,14887,3.037,14888,3.037,14889,5.037,14890,3.037,14891,8.326,14892,7.509,14893,5.037,14894,3.037,14895,3.037,14896,5.202,14897,3.037,14898,4.4,14899,5.037,14900,7.665,14901,3.037,14902,4.211,14903,4.653,14904,4.653,14905,5.037,14906,3.037,14907,3.037,14908,3.037,14909,3.037,14910,9.95,14911,7.509,14912,3.037,14913,2.806,14914,3.037,14915,3.037,14916,3.037,14917,5.037,14918,3.037,14919,5.037,14920,6.453,14921,7.509,14922,5.037,14923,3.037,14924,2.653,14925,2.448,14926,3.037,14927,5.037,14928,3.037,14929,3.037,14930,3.037,14931,3.037,14932,3.037,14933,3.037,14934,3.037,14935,5.037,14936,3.037,14937,5.037,14938,3.037,14939,3.037,14940,3.037,14941,2.806,14942,3.037,14943,3.037,14944,3.037,14945,3.037,14946,3.037,14947,3.037,14948,3.037,14949,3.037,14950,3.037,14951,3.037,14952,3.037,14953,3.037,14954,3.037,14955,3.037,14956,3.037,14957,3.037,14958,3.037,14959,3.037,14960,5.037,14961,5.037,14962,3.037,14963,3.037,14964,3.037,14965,3.037,14966,3.037,14967,3.037,14968,3.037,14969,3.037,14970,3.037]],["title/classes/NotFoundLoggableException.html",[0,0.23,10721,5.64]],["body/classes/NotFoundLoggableException.html",[0,0.285,2,0.963,3,0.022,4,0.022,5,0.012,7,0.129,8,1.291,26,2.587,27,0.444,29,0.665,30,0.001,31,0.47,32,0.15,33,0.419,35,1.013,47,0.953,95,0.159,99,1.423,101,0.016,103,0.001,104,0.001,111,2.355,127,1.351,163,2.645,187,1.201,214,3.519,216,2.177,217,1.106,227,0.884,404,1.933,406,2.679,1327,4.223,1542,5.493,1547,6.167,2686,6.263,8137,6.442,8530,5.386,8537,4.943,8538,5.177,10371,7.326,10372,7.326,10721,8.939,14971,11.77,14972,11.77,14973,10.873,14974,8.387,14975,11.77,14976,11.77,14977,8.387,14978,11.77,14979,8.387,14980,8.387,14981,8.387,14982,8.387,14983,8.387]],["title/injectables/OAuth2ToolLaunchStrategy.html",[105,0.89,14984,5.64]],["body/injectables/OAuth2ToolLaunchStrategy.html",[0,0.164,3,0.013,4,0.013,5,0.007,7,0.074,8,0.876,9,2.3,26,2.289,27,0.528,29,1.009,30,0.001,31,0.713,32,0.182,33,0.636,35,1.536,36,2.474,39,2.341,47,0.89,95,0.134,99,0.816,101,0.009,103,0,104,0,105,0.956,106,10.526,107,1.151,108,2.776,110,4.02,111,2.612,112,2.741,113,6.063,114,6.063,115,6.063,116,4.118,117,7.3,118,6.063,119,6.063,120,6.063,121,6.063,122,5.846,123,5.846,124,6.063,125,6.063,126,6.063,133,4.02,134,10.05,135,6.063,136,7.116,137,5.255,138,3.149,139,7.189,140,7.119,142,4.02,143,6.063,144,1.982,145,2.509,146,6.535,148,2.244,149,4.02,150,3.566,151,6.063,153,4.02,155,8.904,157,4.02,158,4.374,160,7.947,161,4.02,163,3.459,164,6.063,165,0.767,167,3.333,168,4.02,170,3.876,171,3.876,173,4.02,175,3.347,176,6.063,178,6.821,179,4.02,180,6.063,181,6.158,183,4.02,184,6.063,185,2.84,187,0.689,208,1.785,209,2.497,210,3.088,211,3.876,227,0.92,404,1.311,596,3.864,731,3.807,1298,4.565,1299,4.51,1300,4.51,1301,4.772,1302,5.216,2180,5.53,2643,4.442,2646,4.201,2647,4.201,2648,4.201,2649,4.201,2650,4.201,2651,4.201,2652,4.201,2653,4.201,2654,4.201,2655,4.201,2656,4.201,2657,6.899,2658,6.767,2659,4.02,2669,4.201,14984,6.063,14985,4.808,14986,4.808,14987,4.808]],["title/classes/OAuthMigrationError.html",[0,0.23,14988,5.438]],["body/classes/OAuthMigrationError.html",[0,0.246,2,0.831,3,0.019,4,0.019,5,0.01,7,0.111,27,0.533,29,0.574,30,0.001,31,0.406,32,0.18,33,0.61,47,1.029,52,4.505,59,3.635,95,0.093,101,0.014,103,0.001,104,0.001,127,1.227,144,2.654,165,0.766,204,3.332,216,2.579,329,2.861,355,4.605,404,1.756,596,3.556,1327,4.966,1884,5.836,3888,5.656,4442,5.165,5382,5.55,6706,6.071,10950,9.114,10952,5.501,12625,6.324,13247,5.366,14988,7.828,14989,10.817,14990,9.573,14991,9.573,14992,10.737,14993,12.843,14994,12.843,14995,9.711,14996,9.711,14997,7.24,14998,7.24,14999,7.24,15000,7.24,15001,7.24,15002,6.688,15003,6.688,15004,6.688,15005,6.688,15006,7.24,15007,7.24]],["title/classes/OAuthProcessDto.html",[0,0.23,15008,5.64]],["body/classes/OAuthProcessDto.html",[0,0.325,2,1.098,3,0.025,4,0.025,5,0.014,7,0.147,27,0.518,29,0.759,30,0.001,31,0.536,32,0.175,33,0.624,47,0.946,101,0.018,103,0.001,104,0.001,127,1.208,165,0.915,1016,3.415,1683,7.361,2211,8.137,2227,7.995,5833,9.699,15008,11.122,15009,11.996,15010,9.563,15011,11.601,15012,9.563,15013,9.563,15014,9.563,15015,9.563]],["title/classes/OAuthRejectableBody.html",[0,0.23,5372,5.438]],["body/classes/OAuthRejectableBody.html",[0,0.308,2,0.749,3,0.017,4,0.017,5,0.009,7,0.1,27,0.489,30,0.001,32,0.165,33,0.654,47,0.928,55,1.99,95,0.116,101,0.012,103,0.001,104,0.001,116,2.928,165,0.714,204,4.611,361,6.708,364,2.183,368,5.172,370,4.369,371,3.823,374,2.084,376,1.53,379,2.88,467,3.276,470,4.962,471,5.185,502,5.655,506,5.893,564,3.357,565,5.919,1035,7.804,1253,4.172,1498,6.554,1510,5.655,1997,8.111,2116,4.894,2507,7.201,3436,6.419,5346,5.73,5372,7.292,5373,8.681,5374,8.681,5375,8.111,5378,6.08,5394,8.759,5395,6.873,5396,7.902,5397,7.902,5398,7.902,5400,5.983,5401,8.52,5402,9.038,5403,7.066,5404,7.292,5405,6.873,5406,7.562,5407,7.066,5409,7.562,5410,5.73,5412,6.873,5414,5.699,5415,7.562,5416,7.902,15016,11.256,15017,6.524,15018,6.524,15019,6.524,15020,6.524,15021,6.524,15022,6.524]],["title/classes/OAuthSSOError.html",[0,0.23,10950,4.787]],["body/classes/OAuthSSOError.html",[0,0.275,2,0.928,3,0.021,4,0.021,5,0.011,7,0.124,27,0.525,29,0.641,30,0.001,31,0.453,32,0.177,33,0.404,47,1.014,59,3.241,95,0.134,101,0.015,103,0.001,104,0.001,127,1.021,144,2.854,165,0.824,187,1.158,204,3.968,216,2.552,329,3.076,404,1.888,1327,5,1439,5.532,1884,8.418,3888,6.315,5382,5.968,6706,6.528,10950,7.41,14990,10.105,14991,10.105,14992,11.029,15002,7.467,15003,7.467,15004,7.467,15005,7.467,15023,12.964,15024,8.083,15025,10.442,15026,9.646,15027,9.671,15028,8.083,15029,8.083,15030,8.083,15031,7.467,15032,8.083]],["title/injectables/OAuthService.html",[105,0.89,10933,5.126]],["body/injectables/OAuthService.html",[0,0.103,3,0.008,4,0.008,5,0.004,7,0.046,8,0.606,26,1.563,27,0.453,29,0.865,30,0.001,31,0.611,32,0.153,33,0.545,35,1.284,36,2.51,47,1.022,48,5.697,52,4.157,59,2.579,95,0.157,99,0.514,100,1.013,101,0.006,103,0,104,0,105,0.662,107,0.724,111,2.344,112,2.793,127,0.634,129,4.624,132,4.133,145,1.661,150,2.748,163,0.954,167,2.457,187,0.433,189,2.815,191,1.681,192,2.234,204,1.723,216,1.907,217,1.708,221,2.799,227,1.175,231,2.898,234,1.612,305,2.156,334,0.333,347,1.935,348,6.929,355,1.19,359,1.049,369,1.11,460,4.281,461,2.065,529,1.335,576,1.783,839,1.421,1052,2.623,1053,3.322,1114,3.039,1136,2.643,1253,3.832,1436,3.495,1545,0.967,1592,6.698,1645,2.243,1648,2.243,1667,2.795,1671,2.53,1683,1.783,1687,2.299,1691,1.868,1703,5.035,1773,1.943,1813,3.638,1833,5.945,1887,3.099,1919,2.085,2171,1.3,2172,1.447,2173,1.396,2174,1.917,2211,6.925,2514,2.001,3372,3.433,3544,2.085,4458,2.243,4561,2.672,4808,3.433,4809,2.299,5378,3.375,5382,2.87,5974,1.971,6589,1.917,6872,4.386,6938,4.24,8108,2.243,8291,5.035,8300,6.644,8636,2.106,9083,5.428,9113,2.439,9717,1.891,10705,6.02,10933,3.815,10947,8.281,10950,3.563,10953,4.663,10957,2.643,10960,4.638,11007,5.622,11026,2.243,11027,2.243,11028,4.77,11083,7.146,11270,2.243,11695,2.106,11826,3.638,11858,3.815,11860,2.299,11872,2.299,12089,2.53,12145,5.464,12589,3.922,12617,3.495,12632,2.643,12900,2.439,13623,4.386,13967,2.439,14219,2.439,14459,7.936,14462,4.638,14467,2.643,14470,4.638,14524,2.53,14925,2.439,14992,6.947,15031,2.795,15033,3.026,15034,6.436,15035,6.436,15036,6.436,15037,4.638,15038,5.021,15039,5.021,15040,5.021,15041,6.436,15042,5.021,15043,7.936,15044,7.415,15045,6.878,15046,7.415,15047,3.026,15048,3.026,15049,7.491,15050,3.026,15051,3.026,15052,3.026,15053,3.026,15054,3.026,15055,5.021,15056,3.026,15057,5.021,15058,8.568,15059,3.026,15060,5.021,15061,3.026,15062,5.021,15063,3.026,15064,3.026,15065,3.026,15066,5.021,15067,3.026,15068,5.021,15069,3.026,15070,2.364,15071,2.643,15072,4.326,15073,2.643,15074,2.643,15075,3.026,15076,2.795,15077,4.048,15078,2.795,15079,3.026,15080,4.386,15081,3.026,15082,3.026,15083,3.026,15084,3.026,15085,2.795,15086,2.439,15087,3.026,15088,7.491,15089,3.026,15090,3.026,15091,4.638,15092,3.026,15093,4.638,15094,3.026,15095,3.026,15096,3.026,15097,2.795,15098,4.198,15099,3.026,15100,3.026,15101,3.026,15102,2.795,15103,3.026,15104,4.198,15105,3.026,15106,3.026,15107,3.026,15108,3.026,15109,2.795,15110,3.026,15111,3.026,15112,3.026,15113,3.026,15114,3.026,15115,3.026,15116,5.021,15117,3.026,15118,3.026,15119,2.795,15120,3.026,15121,3.026,15122,3.026,15123,3.026,15124,3.026,15125,3.026,15126,3.026,15127,3.026,15128,4.638,15129,2.795,15130,3.026,15131,3.026,15132,3.026,15133,4.638,15134,3.026,15135,5.021,15136,3.026]],["title/classes/OAuthTokenDto.html",[0,0.23,10953,4.888]],["body/classes/OAuthTokenDto.html",[0,0.317,2,1.07,3,0.025,4,0.025,5,0.013,7,0.143,27,0.534,29,0.739,30,0.001,31,0.523,32,0.18,33,0.466,47,0.979,101,0.018,103,0.001,104,0.001,127,1.178,165,0.901,348,8.3,405,3.078,595,3.209,1703,8.3,10953,9.569,14118,7.791,14119,7.791,15137,13.207,15138,9.319,15139,11.407,15140,11.42,15141,9.319,15142,9.319,15143,8.609,15144,8.609,15145,9.319,15146,9.319]],["title/classes/Oauth2AuthorizationBodyParams.html",[0,0.23,14094,5.64]],["body/classes/Oauth2AuthorizationBodyParams.html",[0,0.386,2,1.06,3,0.024,4,0.024,5,0.013,7,0.142,27,0.51,30,0.001,32,0.172,47,0.977,48,5.774,95,0.146,101,0.018,103,0.001,104,0.001,165,0.896,364,2.28,374,2.95,376,2.166,467,3.449,470,5.182,1000,4.856,1001,7.329,1253,5.672,5711,6.69,7184,9.154,11083,7.499,13261,8.066,13262,8.53,13990,8.53,13991,8.53,14094,9.494,15147,12.83]],["title/classes/Oauth2MigrationParams.html",[0,0.23,15148,5.893]],["body/classes/Oauth2MigrationParams.html",[0,0.382,2,1.041,3,0.024,4,0.024,5,0.013,7,0.139,27,0.506,30,0.001,32,0.171,47,0.972,48,5.727,95,0.144,101,0.017,103,0.001,104,0.001,165,0.886,355,5.014,364,2.261,374,2.897,376,2.127,467,3.427,470,5.14,1000,4.802,1001,7.269,1253,5.626,4442,5.624,5711,6.57,7184,9.052,11083,7.439,15148,9.809,15149,12.749,15150,9.067,15151,9.067,15152,9.067,15153,9.067]],["title/injectables/Oauth2Strategy.html",[105,0.89,1634,5.893]],["body/injectables/Oauth2Strategy.html",[0,0.243,3,0.019,4,0.019,5,0.01,7,0.11,8,1.162,27,0.399,29,0.763,30,0.001,31,0.539,32,0.163,33,0.481,35,0.862,36,2.091,47,0.52,48,5.108,66,6.092,94,5.171,95,0.174,101,0.014,103,0.001,104,0.001,105,1.268,107,1.708,111,1.428,112,2.441,127,0.902,138,4.177,167,2.725,187,1.022,206,3.654,215,2.31,216,1.779,217,1.603,221,2.565,227,0.752,234,1.561,305,2.768,334,0.786,349,4.721,367,3.435,404,1.29,406,2.28,461,2.684,491,4.721,511,3.654,513,4.924,543,3.576,738,4.12,818,9.272,1253,4.436,1508,4.039,1634,8.402,1640,5.29,1807,5.575,1808,5.29,2038,4.879,2211,4.65,4485,4.879,5378,4.797,5974,6.267,6929,5.423,6938,5.444,6943,5.575,10932,6.235,10933,9.513,10953,6.969,11083,5.865,12684,5.575,12692,5.967,12695,5.967,13330,8.885,13333,6.593,13347,6.593,14094,8.042,15104,5.967,15154,7.137,15155,7.137,15156,7.137,15157,6.593,15158,8.402,15159,7.137,15160,6.593,15161,6.593,15162,6.593,15163,6.235,15164,6.235,15165,7.137,15166,7.137,15167,7.137]],["title/classes/Oauth2ToolConfig.html",[0,0.23,7126,4.611]],["body/classes/Oauth2ToolConfig.html",[0,0.248,2,0.836,3,0.019,4,0.019,5,0.01,7,0.112,27,0.555,29,0.577,30,0.001,31,0.408,32,0.192,33,0.674,47,0.982,95,0.125,101,0.014,103,0.001,104,0.001,127,0.92,165,0.769,198,3.481,200,2.372,209,4.604,238,5.945,277,4.398,347,1.987,404,1.762,405,2.627,406,2.325,595,2.506,596,2.96,2600,5.777,2602,6.086,2603,9.068,2605,6.359,2606,5.366,2607,6.359,2608,6.359,2610,5.166,5472,5.43,6989,6.96,7022,5.531,7023,5.868,7078,4.893,7079,5.868,7123,9.333,7126,8.364,7134,6.623,7137,8.349,7139,8.144,7145,4.893,11854,4.976,11855,5.395,14180,6.724,14181,6.724,14182,6.724,14183,6.724,14184,6.724,14185,6.724,15168,13.236,15169,9.746,15170,6.359,15171,7.279,15172,6.724,15173,6.724,15174,6.724,15175,6.724,15176,6.724,15177,6.724]],["title/classes/Oauth2ToolConfigCreateParams.html",[0,0.23,8457,5.64]],["body/classes/Oauth2ToolConfigCreateParams.html",[0,0.323,2,0.803,3,0.019,4,0.019,5,0.01,7,0.107,27,0.545,30,0.001,32,0.189,33,0.577,47,0.983,95,0.148,101,0.013,103,0.001,104,0.001,154,5.903,165,0.748,198,3.342,200,2.277,209,4.519,238,5.823,277,4.308,347,1.933,364,2.433,373,5.006,374,2.233,375,4.367,376,1.639,404,1.714,467,3.481,470,5.243,471,4.58,596,2.88,1044,3.43,2600,5.652,2606,5.925,2626,8.743,2627,7.638,2628,5.633,2629,5.633,2630,5.633,2631,5.633,2632,5.633,5418,6.006,5472,5.319,5729,6.871,6989,6.817,7123,9.222,7134,6.487,7137,8.178,7139,7.977,7186,5.31,8455,5.633,8457,7.928,8463,6.105,14192,6.456,14196,6.456,15178,11.961,15179,6.456,15180,6.988,15181,6.988,15182,6.456,15183,6.456,15184,6.988,15185,6.456]],["title/classes/Oauth2ToolConfigEntity.html",[0,0.23,8475,5.438]],["body/classes/Oauth2ToolConfigEntity.html",[0,0.28,2,0.944,3,0.022,4,0.022,5,0.012,7,0.126,27,0.528,29,0.652,30,0.001,31,0.461,32,0.186,33,0.411,47,0.849,95,0.149,96,2.221,101,0.016,103,0.001,104,0.001,127,1.038,165,0.833,198,3.929,200,2.677,209,4.38,238,5.709,240,4.08,347,2.151,364,2.28,398,2.406,404,1.908,405,2.844,595,2.829,596,3.204,617,4.742,1031,2.633,2600,5.369,2606,5.809,2613,6.869,2614,10.256,2616,7.177,2617,7.177,2618,5.402,2619,7.177,2620,4.791,2621,3.881,5472,5.76,6989,7.384,7022,6.242,7023,6.623,7145,7.092,8475,10.256,11854,5.616,15170,7.177,15186,12.3,15187,10.552,15188,8.215]],["title/classes/Oauth2ToolConfigFactory.html",[0,0.23,7132,5.64]],["body/classes/Oauth2ToolConfigFactory.html",[0,0.258,2,0.441,3,0.01,4,0.01,5,0.005,7,0.059,8,0.736,27,0.509,29,0.994,30,0.001,31,0.688,32,0.182,33,0.586,34,1.047,35,1.354,47,0.444,55,2.395,59,3.108,95,0.121,101,0.018,103,0,104,0,127,0.486,136,3.812,138,2.648,144,2.975,146,2.584,148,1.189,150,1.41,154,3.456,158,1.926,165,0.481,185,5.024,195,2.584,196,2.728,200,1.252,201,2.013,209,1.323,216,1.128,217,1.596,227,1.235,236,2.242,238,4.101,277,3.766,278,2.921,279,4.418,281,2.849,290,2.219,325,2.849,329,3.207,331,2.403,359,2.115,366,2.116,371,2.378,379,1.747,380,1.586,381,2.007,404,1.56,461,0.886,471,1.636,538,2.734,596,3.676,627,1.899,660,6.605,661,4.219,662,4.837,665,3.419,666,4.837,667,5.111,668,3.419,669,3.419,670,3.419,671,3.357,672,3.852,673,4.249,674,6.269,675,5.18,676,6.578,677,2.176,682,2.155,683,3.419,684,2.176,685,4.519,686,4.708,687,4.003,688,4.554,689,3.387,690,2.155,691,2.013,692,3.731,693,2.098,694,2.062,695,2.155,696,4.45,697,2.176,698,4.173,699,2.155,700,7.359,701,3.802,702,6.103,703,2.176,704,3.013,705,2.155,706,2.176,707,2.155,708,2.176,709,2.155,712,2.155,713,5.512,714,2.176,715,2.155,716,3.419,717,3.357,718,3.419,719,2.176,720,2.08,721,2.062,722,1.696,723,2.155,724,2.155,725,2.155,726,2.176,727,2.176,728,1.505,729,2.155,730,2.176,731,2.388,732,2.155,733,2.176,735,2.219,736,2.266,737,5.141,905,1.596,1508,2.176,1696,3.485,2076,3.219,2599,2.785,2606,2.116,2609,2.676,4335,6.677,4337,2.785,4945,2.062,5472,3.013,5602,1.926,5640,2.176,5697,3.099,5702,3.003,5703,2.849,6968,2.468,6974,2.435,6976,2.435,6978,2.468,6989,2.435,6991,2.291,7117,5.098,7118,5.327,7120,3.358,7122,2.785,7123,4.52,7124,3.003,7125,2.785,7126,2.628,7127,2.543,7128,3.358,7129,3.358,7130,3.358,7131,6.621,7132,6.337,7133,5.327,7134,3.675,7135,3.099,7136,2.849,7137,2.921,7138,3.358,7139,2.849,7140,3.358,7141,3.358,7142,3.214,7143,5.327,7144,3.358,7145,2.584,7146,3.358,7147,3.358,7148,3.358,7149,2.628,7150,3.358,7151,3.214,7152,3.214,7153,3.358,7154,2.676,7155,4.633,7156,5.327,7157,6.621,7158,5.327,7159,5.327,7160,3.358,7161,3.214,7162,3.003,7163,5.098,7164,3.358,7165,3.358,7166,3.358,7167,3.358,7168,3.358,7169,5.327,7170,3.358,7171,3.214,7172,2.504,7173,3.214,7174,3.358,7175,3.358,7176,3.358,7177,3.358,15189,6.098,15190,3.844]],["title/classes/Oauth2ToolConfigResponse.html",[0,0.23,8988,5.64]],["body/classes/Oauth2ToolConfigResponse.html",[0,0.237,2,0.798,3,0.018,4,0.018,5,0.01,7,0.107,27,0.544,29,0.551,30,0.001,31,0.39,32,0.189,33,0.655,47,0.965,95,0.138,101,0.013,103,0.001,104,0.001,127,0.878,165,0.746,198,3.325,200,2.265,209,4.514,238,5.808,277,4.296,347,1.926,364,2.397,375,5.32,376,1.631,404,1.708,405,2.547,406,2.221,467,3.525,595,2.394,596,2.87,2600,5.645,2606,5.909,2610,4.933,2621,3.284,2622,4.933,2635,5.604,2636,9.709,2638,6.073,2639,6.073,2640,5.604,5472,5.304,6989,6.799,7022,5.283,7023,5.604,7078,4.673,7079,5.604,7123,9.208,7137,8.156,7139,7.956,7145,4.673,8988,10.07,11854,4.753,14208,6.422,14209,6.422,14210,6.422,14211,6.422,14212,6.073,15170,6.073,15172,6.422,15173,6.422,15174,6.422,15175,6.422,15176,6.422,15177,6.422,15191,12.932,15192,9.449]],["title/classes/Oauth2ToolConfigUpdateParams.html",[0,0.23,8920,5.64]],["body/classes/Oauth2ToolConfigUpdateParams.html",[0,0.322,2,0.798,3,0.018,4,0.018,5,0.01,7,0.107,27,0.544,30,0.001,32,0.189,33,0.621,47,0.982,95,0.148,101,0.013,103,0.001,104,0.001,154,5.896,165,0.746,198,3.325,200,2.265,209,4.514,238,5.808,277,4.296,347,1.926,364,2.431,373,4.988,374,2.221,375,4.673,376,1.631,404,1.708,467,3.417,470,5.235,471,4.901,596,2.87,1044,3.412,2600,5.645,2606,5.909,2626,8.727,2627,6.705,2628,5.604,2629,5.604,2630,5.604,2631,5.604,2632,5.604,5418,5.985,5472,5.304,5729,7.778,6989,6.799,7123,9.208,7134,6.469,7137,8.156,7139,7.956,7186,5.283,8920,7.9,9218,5.812,9220,6.073,9222,6.073,9226,6.422,14216,6.422,15178,11.947,15179,6.422,15183,6.422,15185,6.422,15193,6.952,15194,6.952,15195,6.952]],["title/injectables/OauthAdapterService.html",[105,0.89,15043,5.64]],["body/injectables/OauthAdapterService.html",[0,0.227,3,0.018,4,0.018,5,0.009,7,0.102,8,1.109,27,0.47,29,0.898,30,0.001,31,0.634,32,0.166,33,0.565,35,1.268,36,2.732,47,0.915,95,0.167,100,2.231,101,0.013,103,0.001,104,0.001,105,1.211,107,1.595,111,2.263,112,2.752,116,3.399,127,0.842,204,2.286,215,2.157,216,1.698,217,1.565,221,2.164,227,1.107,231,6.061,234,1.081,305,1.918,351,3.293,369,1.473,784,3.518,798,4.166,1052,4.28,1053,5.018,1158,3.546,1265,8.385,1266,3.809,1267,5.064,1268,4.28,1381,3.887,1545,2.129,1592,9.121,2063,6.39,2074,4.556,2076,3.518,2333,9.091,2344,2.754,2367,5.572,3544,2.768,3911,5.206,3962,5.822,6878,8.019,10883,5.372,10903,5.822,10904,5.822,10905,5.572,10906,5.822,10950,4.729,10951,5.822,10952,5.064,10957,5.822,11087,6.17,15043,7.675,15077,5.372,15102,8.48,15196,11.867,15197,6.664,15198,10.5,15199,10.5,15200,6.664,15201,9.179,15202,6.664,15203,9.179,15204,6.664,15205,6.664,15206,6.664,15207,6.664,15208,6.664,15209,9.179,15210,5.822,15211,6.156,15212,6.664,15213,6.664,15214,6.664,15215,6.664,15216,6.664,15217,9.179,15218,6.664,15219,6.664,15220,6.664,15221,9.179,15222,6.664,15223,6.664,15224,6.664,15225,6.664]],["title/modules/OauthApiModule.html",[425,1.808,15226,5.438]],["body/modules/OauthApiModule.html",[0,0.248,3,0.019,4,0.019,5,0.01,30,0.001,52,3.377,95,0.174,101,0.014,103,0.001,104,0.001,187,1.043,191,4.044,192,2.171,355,2.863,425,2.946,427,2.691,428,2.838,429,2.927,430,2.914,431,2.888,432,4.062,433,2.745,438,5.948,442,3.919,443,2.863,444,2.791,446,4.611,447,4.087,449,3.919,1545,2.325,1585,8.329,1624,9.837,1626,8.936,1645,5.395,1945,6.813,1951,8.087,2767,3.282,2769,3.597,4551,8.204,4561,5.187,10099,5.686,10923,10.528,13436,9.568,15070,5.686,15226,11.435,15227,7.279,15228,7.279,15229,7.279,15230,9.837,15231,10.528,15232,7.279,15233,9.599,15234,6.724,15235,7.279,15236,7.279]],["title/classes/OauthClientBody.html",[0,0.23,15237,5.893]],["body/classes/OauthClientBody.html",[0,0.242,2,0.538,3,0.012,4,0.012,5,0.007,7,0.072,27,0.504,30,0.001,31,0.399,32,0.17,33,0.665,34,1.22,47,0.959,95,0.123,101,0.009,103,0,104,0,116,2.302,165,0.561,208,4.03,235,4.025,277,4.516,290,4.105,349,4.704,351,3.514,361,6.792,364,2.25,368,5.259,369,1.9,370,4.442,371,3.857,374,1.497,376,1.099,379,2.798,467,3.316,470,5.016,471,5.249,535,3.847,538,4.302,574,3.224,701,2.484,745,6.569,783,4.286,1016,2.539,1044,2.3,1272,4.861,1383,3.56,1594,5.732,1596,6.099,1597,6.928,1608,3.473,1659,6.809,1680,4.861,1696,4.064,1720,5.403,2008,4.567,2116,3.847,2186,4.504,2211,4.633,2489,4.912,2503,5.732,2504,5.945,3544,5.471,4000,4.445,4082,6.928,5346,4.504,5378,8.406,5382,4.064,5394,8.058,5418,6.077,5433,7.507,5452,6.212,5453,6.449,5468,6.53,6990,6.37,9170,7.939,9172,7.507,9175,9.529,9176,6.569,10752,5.046,12585,5.732,12589,5.555,15016,11.396,15237,6.212,15238,4.685,15239,7.939,15240,7.939,15241,4.685,15242,4.685,15243,4.685,15244,7.111,15245,7.111,15246,4.685,15247,4.685,15248,4.685,15249,4.685,15250,5.945,15251,5.732,15252,6.569,15253,5.945,15254,7.111,15255,7.111,15256,7.111,15257,7.111,15258,4.685,15259,8.594,15260,4.685,15261,7.111,15262,7.111,15263,4.685,15264,8.594,15265,4.685,15266,6.569,15267,7.111,15268,7.111,15269,4.685,15270,4.685,15271,4.685,15272,4.685,15273,4.685,15274,4.685]],["title/classes/OauthConfig.html",[0,0.23,10947,4.332]],["body/classes/OauthConfig.html",[0,0.304,2,0.471,3,0.011,4,0.011,5,0.006,7,0.063,26,1.339,27,0.516,29,0.325,30,0.001,31,0.23,32,0.178,33,0.395,47,1.034,83,2.378,95,0.115,96,1.108,101,0.018,103,0,104,0,127,0.518,150,2.898,165,0.506,208,1.521,216,0.758,240,4.408,277,3.163,334,0.452,347,0.835,359,1.421,364,2.278,369,2.915,370,4.378,371,1.13,379,0.945,380,1.653,386,2.342,398,1.2,399,2.512,400,1.798,402,1.686,404,0.741,405,1.105,406,1.309,496,1.727,722,1.808,775,2.499,783,2.47,1031,2.533,1114,1.663,1252,2.442,1576,2.47,1659,2.908,1691,4.878,2113,2.596,2138,3.038,2618,3.284,2621,1.936,4293,3.47,4331,4.552,4556,4.576,5236,2.562,5472,4.417,5602,3.214,5621,2.596,5622,2.802,6090,3.563,6359,2.499,6992,2.632,7078,2.755,7134,5.388,8597,5.311,9975,2.277,10947,7.516,11026,3.038,11027,3.038,11028,3.038,11029,3.114,11072,5.402,11075,5.227,11077,5.402,11080,5.402,11083,4.819,11087,5.311,11477,3.114,11590,2.711,11733,2.908,11843,4.874,11844,3.304,11845,4.243,11846,7.456,11847,7.162,11848,4.009,11849,4.464,11850,5.148,11851,2.711,11852,2.711,11853,5.17,11854,4.385,11855,4.754,11856,3.202,11857,4.754,11858,3.114,11859,3.114,11860,3.114,11861,3.114,11862,3.202,11863,3.114,11864,3.114,11865,3.114,11866,3.202,11867,4.754,11868,3.202,11869,3.114,11870,3.202,11871,3.114,11872,3.114,11873,3.114,11874,3.202,11875,6.111,11876,3.304,11877,3.304,11878,3.304,11879,3.304,11880,3.304,11881,3.304,11882,3.304,11883,3.304,11884,3.304,11885,3.304,11886,3.304,11887,3.304,11888,3.202,11889,3.304,11890,3.304,11891,3.304,11892,3.304,11893,3.304,11894,3.304,11895,3.304,11896,3.304,11897,3.304,11898,3.304,11899,3.304,11900,3.304,11901,3.304,11902,3.304,11903,3.304,11904,3.304,11905,3.304,11906,3.038,11907,3.304,11908,3.304,11909,3.304,11910,3.304,11911,3.304,11912,3.304,11913,3.304,11914,3.304,11915,3.304,11916,3.304,11917,3.304,11918,3.304,11919,3.304,11920,3.304,11921,3.114,11922,3.304,11923,3.038,11924,3.202,11925,3.114,11926,3.202,11927,3.114,11928,3.114,11929,3.202,11930,3.114,11931,3.202,11932,3.114,11933,2.97,11934,2.97,11935,2.97,11936,3.038,11937,3.114,11938,3.304,11939,3.114,11940,3.304,11941,3.304,11942,3.304,11943,3.304,11944,3.304,11945,3.114,11946,3.202,11947,3.114,11948,3.202,15275,4.098,15276,4.098,15277,4.098,15278,4.098,15279,4.098,15280,4.098,15281,4.098,15282,4.098,15283,4.098,15284,4.098,15285,4.098,15286,4.098,15287,4.098,15288,4.098]],["title/classes/OauthConfigDto.html",[0,0.23,12202,5.126]],["body/classes/OauthConfigDto.html",[0,0.243,2,0.82,3,0.019,4,0.019,5,0.01,7,0.11,27,0.569,29,0.566,30,0.001,31,0.4,32,0.192,33,0.544,47,1.031,101,0.014,103,0.001,104,0.001,127,0.902,165,0.759,277,4.355,1691,6.715,4556,5.57,5472,5.376,7078,4.797,7134,6.557,8597,7.312,11072,7.437,11075,7.196,11077,7.437,11080,7.437,11083,6.634,11087,7.312,11854,4.879,11855,5.29,11857,5.29,11859,5.423,11861,5.423,11863,5.423,11864,5.423,11865,5.423,11867,5.29,11869,5.423,11871,5.423,11873,5.423,11875,7.437,12202,9.513,15289,13.766,15290,6.593,15291,9.618,15292,8.885,15293,6.593,15294,7.137,15295,7.137,15296,7.137,15297,7.137,15298,6.593,15299,6.593,15300,6.593,15301,7.137,15302,6.593,15303,6.593,15304,7.137,15305,6.593,15306,7.137,15307,6.593,15308,6.593,15309,6.593,15310,6.593,15311,6.593,15312,6.593,15313,6.593,15314,6.593,15315,6.593,15316,6.593,15317,6.593]],["title/classes/OauthConfigResponse.html",[0,0.23,15318,5.64]],["body/classes/OauthConfigResponse.html",[0,0.172,2,0.58,3,0.013,4,0.013,5,0.007,7,0.078,27,0.533,29,0.401,30,0.001,31,0.283,32,0.188,33,0.532,34,1.291,47,1.019,95,0.065,101,0.01,103,0,104,0,127,0.638,138,3.267,165,0.594,277,4.471,351,3.718,364,2.356,368,5.393,369,3.018,370,4.555,371,3.763,376,1.185,379,2.93,467,3.454,1013,5.829,1016,2.687,1272,5.143,1383,5.716,1594,6.065,1691,6.895,2186,7.532,2211,4.902,2635,4.071,3544,3.124,4556,5.719,5412,5.716,5472,4.923,7078,3.394,8597,6.696,11072,6.811,11075,6.59,11077,6.811,11080,6.811,11083,6.076,11087,6.696,11854,3.452,11857,3.743,11859,3.837,11861,3.837,11863,3.837,11864,3.837,11865,3.837,11867,3.743,11869,3.837,11871,3.837,11873,3.837,11875,6.811,12585,6.065,12912,6.572,14212,4.411,15210,6.572,15318,7.517,15319,12.966,15320,7.523,15321,7.523,15322,5.05,15323,5.05,15324,5.05,15325,6.95,15326,5.05,15327,5.05,15328,5.05,15329,5.05,15330,5.05,15331,5.05,15332,5.05,15333,5.05,15334,5.05,15335,5.05,15336,5.05,15337,5.05,15338,5.05,15339,5.05,15340,5.05,15341,5.05,15342,5.05,15343,5.05,15344,5.05]],["title/classes/OauthDataDto.html",[0,0.23,12617,4.695]],["body/classes/OauthDataDto.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,27,0.534,29,0.675,30,0.001,31,0.477,32,0.18,33,0.643,95,0.16,101,0.016,103,0.001,104,0.001,127,1.075,165,0.852,200,3.862,405,2.909,595,2.93,1114,4.808,8266,9.005,8281,7.862,8298,8.784,8318,6.649,8319,7.116,9332,8.587,10705,6.167,12617,8.952,12645,9.553,12647,9.908,15345,12.139,15346,8.511,15347,10.948,15348,10.792,15349,8.511,15350,8.511,15351,9.258,15352,8.511,15353,8.511,15354,7.862,15355,8.511,15356,8.511,15357,8.511,15358,8.511,15359,8.511,15360,8.511,15361,8.511]],["title/classes/OauthDataStrategyInputDto.html",[0,0.23,12622,5]],["body/classes/OauthDataStrategyInputDto.html",[0,0.306,2,1.032,3,0.024,4,0.024,5,0.013,7,0.138,27,0.527,29,0.713,30,0.001,31,0.504,32,0.178,33,0.449,47,0.925,95,0.115,101,0.017,103,0.001,104,0.001,127,1.136,163,4.122,165,0.881,348,8.166,405,3.01,595,3.094,1114,4.929,1703,8.166,4485,8.935,8318,7.02,8319,7.513,10705,6.511,12622,9.687,14118,7.513,14119,7.513,15143,8.301,15144,8.301,15345,12.073,15351,9.491,15354,8.301,15362,8.986,15363,11.167,15364,8.986,15365,8.986]],["title/classes/OauthLoginStateDto.html",[0,0.23,15366,5.438]],["body/classes/OauthLoginStateDto.html",[0,0.29,2,0.98,3,0.023,4,0.023,5,0.012,7,0.131,26,2.476,27,0.546,29,0.677,30,0.001,31,0.478,32,0.184,33,0.593,47,0.957,48,5.57,95,0.109,99,1.447,101,0.016,103,0.001,104,0.001,127,1.078,165,0.853,347,2.203,355,5.252,405,2.913,417,6.321,418,6.875,460,6.78,595,2.937,4457,7.15,4556,6.073,7882,6.321,11731,6.875,11732,6.875,11867,6.321,15058,9.563,15366,10.374,15367,13.354,15368,8.529,15369,10.807,15370,8.529,15371,8.529,15372,8.529,15373,8.529,15374,8.529,15375,8.529,15376,8.529,15377,8.529]],["title/classes/OauthLoginStateMapper.html",[0,0.23,15378,5.893]],["body/classes/OauthLoginStateMapper.html",[0,0.324,2,1.093,3,0.025,4,0.025,5,0.013,7,0.146,8,1.397,27,0.395,29,0.755,30,0.001,31,0.534,32,0.133,33,0.476,35,1.149,95,0.148,100,3.873,101,0.018,103,0.001,104,0.001,217,1.255,227,1.003,234,1.545,346,6.397,355,4.901,627,3.881,13467,7.957,15366,10.451,15378,10.105,15379,11.568,15380,9.517,15381,11.568,15382,11.568,15383,11.325,15384,9.517,15385,8.314,15386,8.314,15387,9.517]],["title/classes/OauthMigrationDto.html",[0,0.23,13466,5.438]],["body/classes/OauthMigrationDto.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,27,0.545,29,0.675,30,0.001,31,0.477,32,0.184,33,0.681,83,4.065,101,0.016,103,0.001,104,0.001,127,1.075,165,0.852,185,3.333,347,2.2,9465,8.697,13466,10.367,13485,9.428,13521,9.005,13522,9.005,13523,9.005,13639,9.908,13641,9.908,14506,7.862,14507,7.862,14508,7.862,14509,7.862,14510,7.862,14511,7.862,14512,7.862,14513,7.862,14514,7.862,14515,7.862,15388,13.348,15389,8.511,15390,10.792,15391,8.511,15392,8.511,15393,8.511,15394,8.511]],["title/modules/OauthModule.html",[425,1.808,1624,5.27]],["body/modules/OauthModule.html",[0,0.229,3,0.018,4,0.018,5,0.01,30,0.001,52,3.123,95,0.175,101,0.013,103,0.001,104,0.001,187,0.964,191,3.739,192,2.007,355,2.647,425,2.83,427,2.488,428,2.625,429,2.706,430,2.694,431,2.67,432,3.902,433,3.981,438,5.812,442,3.716,443,2.647,444,2.581,449,3.716,450,2.769,1266,3.847,1545,2.15,1623,9.918,1624,11.105,1626,8.731,1641,5.88,1645,4.989,1945,6.657,1951,7.901,2767,3.035,3956,6.212,4551,8.016,4552,8.915,4561,4.918,8104,8.915,8636,4.685,10933,10.192,10934,11.215,10954,6.218,10955,5.88,13436,9.349,15043,10.286,15070,5.258,15078,6.218,15230,9.611,15395,6.731,15396,6.731,15397,6.731,15398,6.731,15399,6.731,15400,5.88]],["title/modules/OauthProviderApiModule.html",[425,1.808,15401,5.438]],["body/modules/OauthProviderApiModule.html",[0,0.245,3,0.019,4,0.019,5,0.01,30,0.001,95,0.171,101,0.014,103,0.001,104,0.001,187,1.031,361,3.964,425,2.93,427,2.662,428,2.808,429,2.895,430,2.882,431,2.857,432,4.04,433,2.716,438,5.93,442,3.89,443,2.832,444,2.761,446,4.561,447,4.057,449,3.89,1545,2.3,1945,6.792,2767,3.246,2769,3.558,3673,4.923,4550,9.538,4551,8.179,4556,5.595,4560,5.472,4561,3.832,5382,4.115,8627,9.806,8635,4.763,15234,6.652,15401,11.457,15402,7.201,15403,7.201,15404,7.201,15405,10.495,15406,10.495,15407,10.495,15408,10.495,15409,10.495,15410,10.495,15411,10.495,15412,6.02,15413,9.547,15414,7.201,15415,6.652,15416,7.201]],["title/injectables/OauthProviderClientCrudUc.html",[105,0.89,15406,5.64]],["body/injectables/OauthProviderClientCrudUc.html",[0,0.174,3,0.014,4,0.014,5,0.007,7,0.079,8,0.917,27,0.482,29,0.89,30,0.001,31,0.629,32,0.163,33,0.561,34,2.093,35,1.294,36,2.697,47,0.954,55,2.469,56,4.825,58,6.35,59,3.112,95,0.144,101,0.01,103,0,104,0,105,1.002,107,1.224,111,2.143,112,2.939,127,0.96,144,1.398,163,3.764,165,0.599,187,0.733,216,1.981,217,1.66,221,2.875,227,1.129,277,3.04,329,1.507,351,3.753,353,6.122,361,6.571,461,2.902,491,6.475,513,5.948,559,2.791,843,2.232,1253,3.502,1952,6.234,3544,4.957,3803,4.123,5468,7.617,7135,6.122,7136,5.629,8635,5.023,9081,7.964,9106,9.492,9110,3.629,9172,6.634,9217,8.955,9574,7.114,10828,6.349,10829,6.349,10832,6.349,10836,7.573,10840,7.573,11076,6.349,15239,7.015,15240,7.015,15406,6.349,15417,9.324,15418,11.025,15419,5.114,15420,9.058,15421,4.123,15422,5.114,15423,7.015,15424,5.114,15425,7.015,15426,5.114,15427,7.015,15428,5.114,15429,4.724,15430,5.114,15431,4.724,15432,5.114,15433,7.015,15434,5.114,15435,5.114,15436,5.114,15437,10.71,15438,7.594,15439,5.114,15440,5.114,15441,9.058,15442,9.058,15443,7.594,15444,5.114,15445,5.114,15446,5.114]],["title/injectables/OauthProviderConsentFlowUc.html",[105,0.89,15407,5.64]],["body/injectables/OauthProviderConsentFlowUc.html",[0,0.181,3,0.014,4,0.014,5,0.008,7,0.082,8,0.945,27,0.473,29,0.903,30,0.001,31,0.638,32,0.16,33,0.569,35,1.315,36,2.723,39,2.486,47,0.99,95,0.151,101,0.01,103,0,104,0,105,1.032,107,1.274,111,2.541,112,2.764,127,0.989,145,2.939,148,2.421,187,0.763,216,1.447,217,1.436,221,2.41,227,1.077,234,0.864,305,1.532,335,8.24,339,3.946,348,7.32,349,6.135,350,4.451,351,2.631,353,4.292,360,8.24,361,6.479,491,5.777,513,5.233,529,4.091,543,6.502,552,3.419,559,2.905,1016,4.203,1596,7.254,2037,3.073,3710,4.715,4216,8.577,4556,2.726,4632,3.64,5370,8.547,5421,8.24,5428,8.24,8635,5.175,9081,8.08,9110,3.778,10825,8.102,10830,6.541,10837,6.834,10842,4.651,10855,6.834,10869,7.986,10871,6.834,10885,8.072,10887,5.668,12135,9.84,12136,4.918,15407,6.541,15417,9.194,15421,4.292,15447,10.872,15448,4.651,15449,8.567,15450,7.823,15451,5.324,15452,5.324,15453,5.324,15454,5.324,15455,5.324,15456,5.324,15457,7.823,15458,5.324,15459,4.451,15460,4.918,15461,7.823,15462,5.324,15463,4.918,15464,5.324,15465,5.324,15466,5.324,15467,5.324,15468,7.986,15469,5.324,15470,5.324,15471,5.324,15472,5.324,15473,5.324,15474,5.324,15475,4.159,15476,5.324]],["title/controllers/OauthProviderController.html",[481,2.63,15413,5.893]],["body/controllers/OauthProviderController.html",[0,0.113,3,0.009,4,0.009,5,0.005,7,0.051,8,0.654,10,1.34,27,0.484,29,0.909,30,0.001,31,0.642,32,0.161,33,0.572,35,1.408,36,2.893,47,0.242,95,0.155,100,1.111,101,0.006,103,0,104,0,111,1.874,112,2.967,127,0.419,185,5.075,187,0.475,216,1.732,217,1.681,221,2.585,227,1.228,264,4.364,346,2.23,349,6.537,360,7.966,361,6.515,364,2.161,376,0.778,447,1.391,481,1.294,483,1.597,491,6.445,513,6.747,529,4.953,543,6.347,552,2.131,555,1.751,556,1.795,557,1.811,559,1.811,561,6.128,1016,1.934,1426,6.921,2171,1.426,2172,1.587,2173,1.53,2211,2.162,2955,1.878,3544,3.29,3673,2.268,3710,3.265,3898,1.811,4038,2.048,4214,10.599,4533,7.459,4556,1.698,5370,6.624,5378,2.23,5421,4.366,5439,7.832,5465,5.739,7848,2.774,8635,3.583,9106,6.787,9110,2.354,10827,4.732,10828,5.739,10829,4.529,10830,4.529,10831,4.529,10832,5.739,10835,4.529,10836,5.739,10839,4.529,10840,5.739,10885,4.015,10886,4.116,10887,5.741,10888,5.216,10890,3.065,12124,9.58,12155,2.674,13497,6.341,13975,6.921,14086,4.973,14120,6.387,15237,8.633,15406,4.529,15407,4.529,15408,5.739,15409,4.529,15410,5.739,15411,5.739,15413,4.732,15417,6.189,15418,3.065,15423,3.065,15425,3.065,15427,3.065,15429,3.065,15431,3.065,15447,3.065,15449,6.341,15468,7.318,15477,11.833,15478,3.318,15479,6.341,15480,3.318,15481,3.318,15482,3.318,15483,3.318,15484,3.318,15485,3.318,15486,3.318,15487,3.318,15488,3.318,15489,3.318,15490,3.318,15491,5.416,15492,3.318,15493,3.318,15494,3.318,15495,5.416,15496,3.318,15497,3.318,15498,3.318,15499,3.318,15500,3.318,15501,3.318,15502,3.318,15503,3.318,15504,3.318,15505,3.318,15506,3.318,15507,3.318,15508,3.318,15509,6.921,15510,3.318,15511,3.318,15512,3.318,15513,3.318,15514,3.065,15515,6.864,15516,2.774,15517,3.318,15518,3.318,15519,3.318,15520,3.065,15521,3.318,15522,3.318,15523,3.318,15524,3.318,15525,3.318,15526,3.318,15527,3.318,15528,3.318,15529,3.318,15530,7.923,15531,3.318,15532,3.318,15533,3.318,15534,3.318,15535,3.318,15536,3.318,15537,3.318,15538,3.318,15539,3.318,15540,3.318,15541,3.318,15542,3.318,15543,3.318,15544,3.318,15545,3.318,15546,3.318,15547,3.318,15548,3.318,15549,3.318,15550,5.416,15551,5.416,15552,3.318,15553,3.318,15554,3.318,15555,3.318,15556,3.318,15557,3.318,15558,3.318,15559,3.318,15560,3.318,15561,3.318,15562,3.318,15563,3.318,15564,3.318,15565,2.774,15566,3.318,15567,3.318,15568,3.318,15569,3.318,15570,3.318,15571,3.318,15572,3.318,15573,3.318]],["title/injectables/OauthProviderLoginFlowService.html",[105,0.89,12143,5.438]],["body/injectables/OauthProviderLoginFlowService.html",[0,0.235,3,0.018,4,0.018,5,0.01,7,0.106,8,1.136,27,0.444,29,0.848,30,0.001,31,0.6,32,0.15,33,0.535,35,1.136,36,2.044,47,0.779,95,0.165,101,0.013,103,0.001,104,0.001,105,1.24,107,1.653,111,2.14,112,2.399,116,4.013,127,1.188,154,3.148,158,6.56,167,3.591,187,0.989,201,3.616,209,2.377,216,1.978,217,1.411,221,2.217,227,1.127,234,1.12,305,1.987,347,2.18,361,6.322,369,1.526,777,5.246,839,3.242,1919,2.867,1993,4.72,2686,3.674,4458,5.117,4630,3.588,5472,5.675,5976,8.266,5985,6.321,6972,8.512,7038,8.364,7127,6.221,8359,8.726,8361,8.726,8423,6.378,8424,6.378,8582,6.031,9136,6.031,11022,5.246,12143,7.581,12155,9.258,14331,10.366,15574,11.484,15575,6.904,15576,9.405,15577,9.405,15578,6.904,15579,6.904,15580,9.405,15581,6.904,15582,9.405,15583,6.904,15584,6.378,15585,5.772,15586,6.904,15587,6.904,15588,6.904,15589,6.904,15590,6.904,15591,6.904,15592,6.904,15593,9.405,15594,6.904]],["title/injectables/OauthProviderLoginFlowUc.html",[105,0.89,15408,5.64]],["body/injectables/OauthProviderLoginFlowUc.html",[0,0.161,3,0.013,4,0.013,5,0.007,7,0.073,8,0.865,27,0.452,29,0.865,30,0.001,31,0.611,32,0.153,33,0.545,34,0.812,35,1.251,36,2.645,47,0.961,95,0.161,99,0.803,101,0.009,103,0,104,0,105,0.944,107,1.132,111,2.562,112,2.811,127,0.905,158,5.46,187,0.677,201,2.477,209,3.566,216,1.916,217,1.605,221,2.748,227,1.149,234,1.403,305,2.487,347,1.762,349,4.737,354,7.531,355,2.817,360,7.772,361,6.232,461,2.222,529,3.813,543,5.19,574,2.144,806,3.017,843,2.064,1016,1.689,1439,2.262,1952,6.074,2767,2.132,4216,8.826,4556,3.666,4561,2.517,4630,2.458,4640,6.962,5372,7.772,5378,4.814,6938,4.053,6972,3.505,6987,3.356,6989,4.536,7038,7.586,7126,4.896,7127,3.128,8382,3.954,8635,4.737,8712,5.631,8836,4.599,9081,7.734,9110,3.356,9136,4.131,9217,3.954,10826,7.55,10831,5.988,10838,7.55,10857,6.256,10869,7.531,10873,4.131,10886,5.442,10887,6.263,11022,3.594,12143,9.125,12144,8.601,12145,6.903,12155,9.398,12156,4.131,14086,6.263,14120,9.967,14250,4.369,14251,4.369,15076,4.369,15400,4.131,15408,5.988,15417,8.843,15421,3.812,15448,4.131,15459,3.954,15463,4.369,15468,9.108,15479,7.984,15516,3.954,15595,7.162,15596,4.729,15597,4.729,15598,4.729,15599,4.729,15600,4.729,15601,4.729,15602,4.729,15603,7.162,15604,4.729,15605,4.131,15606,4.729,15607,7.162,15608,4.729,15609,4.729,15610,7.162,15611,4.729,15612,4.729,15613,4.729,15614,4.729,15615,4.729,15616,4.729,15617,3.594,15618,4.729,15619,4.729,15620,4.729,15621,4.729,15622,4.729,15623,4.729,15624,4.729,15625,4.729]],["title/injectables/OauthProviderLogoutFlowUc.html",[105,0.89,15409,5.64]],["body/injectables/OauthProviderLogoutFlowUc.html",[0,0.306,3,0.024,4,0.024,5,0.013,7,0.138,8,1.35,27,0.464,29,0.887,30,0.001,31,0.627,32,0.157,33,0.559,35,1.088,36,2.643,47,0.886,95,0.156,101,0.017,103,0.001,104,0.001,105,1.475,107,2.156,127,1.138,187,1.29,215,2.915,216,1.666,217,1.188,227,0.949,361,6.695,4216,6.269,4556,4.611,8635,7.397,9081,9.459,9110,6.391,10887,6.526,15409,9.349,15417,9.501,15421,7.26,15448,7.868,15514,11.234,15626,11.182,15627,9.006,15628,11.182,15629,9.006,15630,11.182,15631,9.006]],["title/modules/OauthProviderModule.html",[425,1.808,15405,5.64]],["body/modules/OauthProviderModule.html",[0,0.246,3,0.019,4,0.019,5,0.01,30,0.001,95,0.173,101,0.014,103,0.001,104,0.001,187,1.035,209,2.488,361,3.979,425,2.935,427,2.672,428,2.818,429,2.906,430,2.893,431,2.867,432,4.047,433,4.129,438,5.936,442,3.9,443,2.842,444,2.771,449,3.9,450,2.973,1545,2.309,1973,8.446,1981,9.548,1982,6.313,4550,9.548,4551,8.187,4556,3.7,4560,5.491,4561,3.846,8627,9.816,8628,9.548,8635,4.78,8637,6.042,12135,11.344,12143,10.938,12155,5.826,12156,6.313,14327,10.506,15400,6.313,15405,11.853,15412,6.042,15460,6.676,15584,6.676,15585,6.042,15632,7.227,15633,7.227,15634,7.227,15635,7.227,15636,7.227,15637,7.227]],["title/classes/OauthProviderRequestMapper.html",[0,0.23,15605,5.893]],["body/classes/OauthProviderRequestMapper.html",[0,0.304,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,8,1.345,27,0.371,29,0.71,30,0.001,31,0.502,32,0.125,33,0.447,35,1.08,47,0.969,59,2.777,77,5.667,95,0.143,101,0.017,103,0.001,104,0.001,199,4.844,227,0.943,344,6.989,345,6.989,349,5.918,354,9.472,358,8.264,359,4.205,361,6.131,627,3.775,4556,5.701,4640,8.529,5812,7.212,8635,5.918,8712,8.267,9110,6.349,14120,10.727,15459,7.48,15516,9.31,15605,9.728,15638,12.125,15639,8.946,15640,8.946,15641,8.946,15642,8.946]],["title/injectables/OauthProviderResponseMapper.html",[105,0.89,15410,5.64]],["body/injectables/OauthProviderResponseMapper.html",[0,0.248,3,0.019,4,0.019,5,0.01,7,0.112,8,1.177,10,2.94,27,0.508,29,0.971,30,0.001,31,0.686,32,0.172,33,0.611,35,1.478,95,0.141,101,0.014,103,0.001,104,0.001,105,1.285,107,1.742,187,1.043,227,1.289,234,1.985,339,7.224,346,4.893,349,4.815,361,6.932,974,4.493,2211,6.35,4556,6.447,5421,9.46,5439,9.812,5465,9.812,8635,4.815,9106,8.503,9110,5.166,9118,9.004,9550,6.086,10885,8.698,10886,9.568,10887,8.503,10888,8.917,14086,8.503,15410,8.149,15459,6.086,15468,9.168,15516,10.528,15643,9.746,15644,9.746,15645,9.746,15646,9.746,15647,9.746,15648,9.746,15649,7.279,15650,9.746,15651,6.724,15652,9.746,15653,7.279,15654,9.746,15655,9.746,15656,7.279,15657,7.279,15658,7.279,15659,7.279,15660,7.279]],["title/classes/OauthProviderService.html",[0,0.23,9081,4.787]],["body/classes/OauthProviderService.html",[0,0.164,2,0.555,3,0.013,4,0.013,5,0.007,7,0.074,8,0.879,9,6.769,27,0.542,29,1.029,30,0.001,31,0.727,32,0.182,33,0.648,34,1.503,35,1.578,36,3.012,47,1.032,55,2.417,56,3.503,58,5.546,59,3.245,95,0.062,100,1.618,101,0.009,103,0,104,0,163,3.073,277,3.505,335,7.856,337,8.994,351,2.388,354,7.613,461,1.678,543,6.309,3544,3.636,4216,7.937,5468,6.653,9081,5.165,9106,8.262,9574,6.214,10825,6.358,10826,6.358,10827,6.358,10828,6.085,10829,6.085,10830,6.085,10831,6.085,10832,6.085,10833,6.723,10834,9.003,10835,6.085,10836,7.321,10837,6.358,10838,6.358,10839,6.085,10840,6.085,10842,6.358,10844,6.723,10846,6.723,10848,6.723,10850,6.723,10855,6.358,10857,6.358,10859,6.723,10861,6.723,10864,6.723,10866,4.463,10869,8.908,10871,6.358,10873,6.358,10879,6.723,10881,6.723,10884,4.04,10885,3.581,10886,3.671,10887,3.501,10888,3.671,15412,11,15661,4.832,15662,4.832,15663,4.832,15664,4.832,15665,4.832,15666,4.832,15667,4.832,15668,4.832,15669,4.832,15670,4.832,15671,4.832,15672,4.832,15673,4.832,15674,4.832,15675,4.832,15676,4.832,15677,4.832]],["title/modules/OauthProviderServiceModule.html",[425,1.808,8627,5.27]],["body/modules/OauthProviderServiceModule.html",[0,0.316,3,0.025,4,0.025,5,0.013,30,0.001,95,0.165,101,0.018,103,0.001,104,0.001,187,1.332,337,6.356,425,3.307,427,3.437,428,3.625,429,3.738,430,3.721,431,3.689,432,4.216,433,4.652,442,4.585,443,3.657,444,3.565,449,3.738,836,5.367,1266,5.314,3956,7.665,4556,4.76,8221,7.065,8627,10.31,8635,7.544,9081,9.749,10822,9.962,10891,8.589,15412,9.535,15678,9.297,15679,9.297,15680,9.297,15681,9.297]],["title/injectables/OauthProviderUc.html",[105,0.89,15411,5.64]],["body/injectables/OauthProviderUc.html",[0,0.282,3,0.022,4,0.022,5,0.012,7,0.127,8,1.281,26,2.769,27,0.486,29,0.928,30,0.001,31,0.656,32,0.164,33,0.585,35,1.281,36,2.92,39,2.844,47,0.852,95,0.158,99,1.406,101,0.016,103,0.001,104,0.001,105,1.399,107,1.983,127,1.047,187,1.187,215,2.681,216,1.532,217,1.399,227,1.118,361,6.793,4556,4.241,5472,6.097,8635,7.017,9081,9.259,9110,5.878,10835,8.868,10839,8.868,10888,6.294,15411,8.868,15417,9.639,15421,6.677,15565,8.868,15682,8.283,15683,8.283,15684,10.607,15685,8.283,15686,10.607,15687,8.283,15688,8.283,15689,8.283]],["title/controllers/OauthSSOController.html",[481,2.63,15233,5.893]],["body/controllers/OauthSSOController.html",[0,0.116,3,0.009,4,0.009,5,0.005,7,0.052,8,0.668,27,0.432,29,0.826,30,0.001,31,0.584,32,0.151,33,0.52,35,1.257,36,2.403,47,0.898,52,3.24,55,0.748,59,1.056,95,0.163,100,1.139,101,0.006,103,0,104,0,111,2.347,112,2.706,127,0.43,145,0.878,148,1.711,150,2.028,185,2.735,187,0.487,204,3.691,216,1.487,217,1.57,221,1.646,227,0.736,234,1.746,264,2.341,305,2.314,334,0.375,346,8.656,347,1.127,351,1.681,355,3.163,364,1.64,367,3.871,371,0.938,376,0.798,379,1.61,447,1.426,460,1.944,461,2.185,481,1.326,483,1.637,491,4.902,511,1.742,513,5.328,529,5.648,554,3.502,555,1.796,556,1.841,557,1.856,559,1.856,561,3.811,784,3.686,806,2.329,1016,4.402,1052,1.387,1053,2.452,1062,2.413,1114,2.243,1158,3.716,1159,2.972,1439,3.34,1545,1.087,1680,2.326,1683,5.887,1693,2.844,1711,2.844,1887,2.1,1995,8.638,2038,3.779,2171,1.462,2172,1.627,2173,1.569,2211,2.216,2578,3.602,2769,1.681,3145,2.585,3710,3.332,3898,1.856,4556,4.529,4561,2.942,4808,2.326,4809,2.585,5382,1.944,5512,2.585,6489,8.606,6491,2.027,6706,2.127,6987,7.385,8836,2.185,9870,3.142,9935,6.556,10923,4.622,10950,5.706,10951,2.972,10952,2.585,10953,2.465,12303,3.142,13464,4.097,13467,2.844,13474,3.923,14925,2.742,14988,6.482,14989,3.142,15008,5.838,15027,2.844,15037,6.451,15160,3.142,15231,5.838,15233,4.829,15366,7.64,15378,2.972,15383,10.957,15385,2.972,15386,2.972,15415,3.142,15690,10.759,15691,3.402,15692,5.528,15693,6.983,15694,6.451,15695,5.528,15696,6.983,15697,5.528,15698,6.983,15699,5.528,15700,3.402,15701,3.402,15702,6.282,15703,7.025,15704,5.528,15705,3.402,15706,3.402,15707,7.025,15708,3.402,15709,3.402,15710,3.402,15711,3.402,15712,5.528,15713,3.402,15714,3.402,15715,5.528,15716,3.402,15717,3.402,15718,3.402,15719,3.402,15720,5.528,15721,3.402,15722,3.402,15723,5.528,15724,3.402,15725,4.622,15726,3.402,15727,3.142,15728,3.402,15729,3.402,15730,2.972,15731,5.528,15732,3.402,15733,2.972,15734,3.402,15735,2.742,15736,3.402,15737,3.402,15738,3.402,15739,3.402,15740,3.402,15741,3.402,15742,6.983,15743,3.402,15744,5.528,15745,5.528,15746,5.528,15747,3.402,15748,3.402,15749,3.402,15750,3.402,15751,5.528,15752,3.402,15753,3.402,15754,5.528,15755,5.528,15756,3.402,15757,3.402,15758,3.142,15759,3.402,15760,9.477,15761,3.402,15762,5.528,15763,5.107,15764,3.142,15765,3.402,15766,3.402,15767,3.402,15768,3.402,15769,3.402,15770,5.528,15771,5.528,15772,3.402,15773,5.107,15774,5.107,15775,5.528,15776,5.528,15777,2.972,15778,3.402,15779,2.972,15780,3.402,15781,2.972,15782,2.972,15783,2.972,15784,3.402,15785,3.402,15786,3.402,15787,3.402,15788,3.402,15789,3.402,15790,5.528,15791,5.528,15792,3.402,15793,3.402,15794,5.528,15795,3.402,15796,3.402,15797,3.402,15798,3.402,15799,3.402,15800,3.402,15801,3.402,15802,3.402,15803,3.402,15804,3.402,15805,3.402]],["title/interfaces/OauthTokenResponse.html",[334,0.743,15077,5.438]],["body/interfaces/OauthTokenResponse.html",[3,0.026,4,0.026,5,0.014,7,0.154,30,0.001,32,0.178,47,1.02,101,0.019,103,0.001,104,0.001,165,0.94,334,1.101,336,2.434,352,11.511,353,10.622,15009,9.229,15077,9.601,15433,12.172,15806,9.229]],["title/injectables/OauthUc.html",[105,0.89,15231,5.64]],["body/injectables/OauthUc.html",[0,0.144,3,0.011,4,0.011,5,0.006,7,0.065,8,0.792,26,2.268,27,0.408,29,0.78,30,0.001,31,0.552,32,0.138,33,0.492,35,1.097,36,2.443,39,1.131,47,0.955,48,5.808,52,4.831,59,2.499,95,0.168,99,0.716,101,0.008,102,3.31,103,0,104,0,105,0.865,107,1.01,111,2.404,112,2.738,127,0.829,145,1.089,163,1.33,167,1.611,187,0.604,189,3.678,204,3.115,216,2.079,217,1.682,221,2.878,227,0.957,234,1.474,305,1.888,334,0.465,346,4.409,347,1.641,355,4.275,425,1.759,460,6.976,461,2.093,491,3.22,513,2.16,529,3.551,559,2.302,738,2.435,982,2.114,1016,2.343,1052,3.281,1053,4.027,1114,3.684,1253,4.188,1545,1.348,1555,2.637,1627,8.056,1645,3.127,1683,5.352,1703,4.409,1991,3.549,1995,7.094,2008,4.213,2038,2.884,2211,5.245,3145,3.205,4449,8.056,4457,4.852,4556,2.16,4561,4.832,4640,6.611,5382,4.6,6047,4.274,6706,2.637,6938,3.713,8836,2.709,10932,3.685,10933,7.913,10953,5.833,10955,3.685,11024,5.485,11083,5.537,11270,3.127,11616,5.833,12145,6.629,12617,4.566,13474,6.444,13622,3.897,14524,3.527,15008,5.485,15044,8.492,15045,7.876,15046,8.492,15058,8.395,15070,3.296,15071,3.685,15072,4.409,15080,3.685,15085,3.897,15086,3.401,15104,5.485,15119,6.06,15161,3.897,15162,3.897,15163,5.731,15164,5.731,15231,5.485,15366,9.06,15383,7.932,15385,3.685,15386,3.685,15730,3.685,15735,3.401,15758,3.897,15763,6.06,15764,3.897,15773,3.897,15774,3.897,15807,4.219,15808,5.731,15809,6.56,15810,6.56,15811,8.05,15812,4.219,15813,6.56,15814,4.219,15815,3.897,15816,10.414,15817,4.219,15818,6.06,15819,6.56,15820,4.219,15821,4.219,15822,4.219,15823,3.897,15824,3.205,15825,4.219,15826,4.219,15827,4.219,15828,4.219,15829,4.219,15830,4.219,15831,4.219,15832,6.56,15833,4.219,15834,4.219,15835,4.219,15836,3.685,15837,7.032,15838,3.897,15839,3.897,15840,3.897,15841,4.219,15842,3.897,15843,3.897,15844,4.219,15845,4.219]],["title/interfaces/OcsResponse.html",[334,0.743,10745,5]],["body/interfaces/OcsResponse.html",[3,0.024,4,0.024,5,0.013,7,0.139,30,0.001,32,0.171,34,1.553,47,0.972,55,2.681,101,0.026,103,0.001,104,0.001,138,4.869,163,2.853,165,0.885,334,1.49,336,2.204,347,1.844,564,3.358,692,3.371,1289,5.81,1293,6.081,1327,3.573,3091,4.125,4477,6.081,6461,5.73,10742,6.705,10743,6.874,10744,6.705,10745,8.311,10746,9.679,10747,9.032,10748,6.874,10749,6.874,10750,6.705,10751,6.874,10752,6.42,10753,6.705,10754,6.874,10755,6.705]],["title/classes/OidcConfig.html",[0,0.23,11847,4.695]],["body/classes/OidcConfig.html",[0,0.313,2,0.498,3,0.011,4,0.011,5,0.006,7,0.067,26,1.398,27,0.483,29,0.344,30,0.001,31,0.243,32,0.17,33,0.216,47,1.034,83,2.463,95,0.118,96,1.171,101,0.019,103,0,104,0,127,0.547,150,3.003,165,0.528,208,1.608,216,0.801,240,4.408,277,1.734,334,0.477,347,0.883,359,1.502,364,2.102,369,2.925,370,4.414,371,1.194,379,0.999,380,1.712,398,1.269,399,2.622,400,1.901,402,1.782,404,0.783,405,1.168,406,1.384,496,1.825,722,1.911,775,2.642,783,2.611,1031,2.624,1114,1.758,1252,2.582,1576,2.611,1659,3.074,1691,2.674,2113,5.185,2138,3.211,2618,3.428,2621,2.046,4293,3.623,4331,4.752,4556,3.428,5236,2.708,5472,4.551,5602,3.355,5621,2.744,5622,2.962,6090,3.72,6359,2.642,6992,2.782,7078,2.912,7134,5.551,8597,2.912,9975,2.407,10947,6.761,11026,3.211,11027,3.211,11028,3.211,11029,3.292,11072,2.962,11075,2.866,11077,2.962,11080,2.962,11083,2.642,11087,2.912,11477,3.292,11590,2.866,11733,3.074,11843,5.088,11844,3.492,11845,4.43,11846,7.628,11847,8.274,11848,4.186,11849,4.661,11850,5.333,11851,2.866,11852,2.866,11853,3.492,11854,4.578,11855,4.963,11856,3.384,11857,4.963,11858,3.292,11859,3.292,11860,3.292,11861,3.292,11862,3.384,11863,3.292,11864,3.292,11865,3.292,11866,3.384,11867,4.963,11868,3.384,11869,3.292,11870,3.384,11871,3.292,11872,3.292,11873,3.292,11874,3.384,11875,6.296,11876,3.492,11877,3.492,11878,3.492,11879,3.492,11880,3.492,11881,3.492,11882,3.492,11883,3.492,11884,3.492,11885,3.492,11886,3.492,11887,3.492,11888,3.384,11889,3.492,11890,3.492,11891,3.492,11892,3.492,11893,3.492,11894,3.492,11895,3.492,11896,3.492,11897,3.492,11898,3.492,11899,3.492,11900,3.492,11901,3.492,11902,3.492,11903,3.492,11904,3.492,11905,3.492,11906,3.211,11907,3.492,11908,3.492,11909,3.492,11910,3.492,11911,3.492,11912,3.492,11913,3.492,11914,3.492,11915,3.492,11916,3.492,11917,3.492,11918,3.492,11919,3.492,11920,5.398,11921,3.292,11922,3.492,11923,3.211,11924,3.384,11925,3.292,11926,3.384,11927,3.292,11928,3.292,11929,3.384,11930,3.292,11931,3.384,11932,3.292,11933,5.931,11934,5.931,11935,5.931,11936,6.067,11937,3.292,11938,3.492,11939,3.292,11940,3.492,11941,3.492,11942,3.492,11943,3.492,11944,3.492,11945,3.292,11946,3.384,11947,3.292,11948,3.384,15846,4.332,15847,4.332,15848,4.332,15849,4.332,15850,4.332,15851,4.332,15852,4.332,15853,4.332,15854,4.332]],["title/classes/OidcConfigDto.html",[0,0.23,12869,5.27]],["body/classes/OidcConfigDto.html",[0,0.269,2,0.907,3,0.021,4,0.021,5,0.011,7,0.121,27,0.563,29,0.626,30,0.001,31,0.443,32,0.19,33,0.394,47,1.024,101,0.015,103,0.001,104,0.001,127,0.997,165,0.811,2113,7.244,2138,5.85,5472,5.651,7134,6.892,11854,5.396,11855,5.85,11857,5.85,11875,7.818,11924,6.166,11926,6.166,11929,6.166,11931,6.166,11933,8.286,11934,8.286,11935,8.286,11936,8.476,12869,10.063,15290,7.291,15292,7.291,15293,7.291,15298,7.291,15299,7.291,15300,7.291,15302,7.291,15303,7.291,15855,13.666,15856,10.564,15857,10.282,15858,7.893,15859,7.893,15860,7.893,15861,7.893,15862,7.893,15863,7.893,15864,7.893,15865,7.893,15866,7.893,15867,7.893,15868,7.893,15869,7.893,15870,7.893]],["title/classes/OidcContextResponse.html",[0,0.23,5448,5.64]],["body/classes/OidcContextResponse.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,27,0.534,30,0.001,32,0.18,33,0.694,47,0.984,95,0.138,101,0.016,103,0.001,104,0.001,165,0.852,187,1.219,359,3.742,361,7.234,364,2.384,376,1.996,467,3.693,5448,9.023,5461,11.479,15871,8.511,15872,10.948,15873,9.553,15874,10.948,15875,10.948,15876,10.948,15877,8.511,15878,8.511,15879,8.511,15880,8.511,15881,8.511,15882,8.511]],["title/classes/OidcIdentityProviderMapper.html",[0,0.23,12834,5.64]],["body/classes/OidcIdentityProviderMapper.html",[0,0.278,2,0.938,3,0.022,4,0.022,5,0.012,7,0.125,8,1.269,27,0.436,29,0.834,30,0.001,31,0.589,32,0.147,33,0.525,35,0.986,47,0.846,95,0.167,101,0.016,103,0.001,104,0.001,111,1.633,116,3.762,127,1.032,154,3.723,187,1.17,216,1.51,227,0.861,355,3.211,369,2.323,839,3.834,1415,4.921,2113,5.172,5472,4.035,5602,4.091,7134,4.921,8108,8.615,8636,5.684,9083,8.892,10351,4.921,11439,6.643,11500,7.175,11845,5.401,11847,5.684,11921,6.204,11923,7.79,11925,6.204,11927,6.204,11928,6.204,11930,6.204,11932,6.204,11933,5.916,11934,5.916,11935,5.916,12755,6.052,12834,8.787,12869,9.587,12883,10.737,12898,7.543,12900,6.582,12904,11.337,12908,6.582,12928,7.543,12999,7.543,15266,7.543,15883,11.623,15884,8.165,15885,10.51,15886,8.165,15887,8.165,15888,10.51,15889,8.165,15890,8.165,15891,8.165,15892,8.165,15893,8.165,15894,8.165,15895,8.165,15896,8.165,15897,8.165]],["title/injectables/OidcMockProvisioningStrategy.html",[105,0.89,15898,5.64]],["body/injectables/OidcMockProvisioningStrategy.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.197,27,0.462,29,0.786,30,0.001,31,0.556,32,0.139,33,0.495,35,1.344,36,2.577,47,0.544,95,0.163,100,2.5,101,0.014,103,0.001,104,0.001,105,1.308,107,1.788,112,2.497,163,2.355,167,2.851,187,1.07,217,1.468,227,1.173,234,1.806,305,2.149,348,6.664,369,1.651,404,1.792,596,3.38,854,3.768,1114,3.03,1648,5.535,1683,4.402,1708,5.411,1813,7.184,2180,6.28,2309,4.187,6863,8.289,8291,5.02,9332,8.064,10950,5.3,10952,5.675,11156,6.12,11476,6.244,11848,7.93,11850,7.251,11851,4.94,11852,4.94,12613,7.745,12614,9.558,12616,7.992,12617,8.829,12621,7.992,12622,8.788,12625,6.524,12626,7.534,12627,6.524,12630,6.899,12632,6.524,12633,6.899,12645,7.992,12649,6.02,12650,6.524,12651,6.899,15086,6.02,15898,8.289,15899,7.468,15900,7.468,15901,7.468,15902,7.468,15903,6.524,15904,7.468,15905,6.899,15906,9.915,15907,7.468]],["title/injectables/OidcProvisioningService.html",[105,0.89,15908,5.438]],["body/injectables/OidcProvisioningService.html",[0,0.128,3,0.01,4,0.01,5,0.005,7,0.058,8,0.723,26,2.38,27,0.386,29,0.738,30,0.001,31,0.605,32,0.139,33,0.465,34,1.027,35,1.028,36,2.418,39,1.604,47,0.757,48,6.11,49,1.464,51,1.855,59,1.165,64,4.547,95,0.16,99,0.637,100,1.257,101,0.007,103,0,104,0,105,0.789,107,0.899,111,2.329,112,2.659,127,0.756,129,5.255,132,4.792,145,1.545,167,4.121,187,0.538,189,5.556,191,3.324,192,2.773,200,1.223,216,1.996,217,1.644,221,2.908,227,1.096,234,1.851,247,1.489,284,2.263,305,1.08,322,3.026,369,1.65,371,1.035,383,2.446,461,2.284,734,2.167,738,3.455,818,7.533,851,1.843,852,1.843,853,1.908,854,3.765,883,2.509,905,1.559,956,2.446,1052,4.237,1277,4.796,1542,1.752,1545,1.199,1644,3.279,1807,2.933,1808,2.782,1812,2.664,1919,1.559,1993,2.566,2485,1.622,3060,2.664,3091,3.402,3110,3.615,3852,2.566,4092,2.566,4150,2.483,4227,3.412,4507,6.169,4518,2.933,4539,2.933,4561,1.998,4621,7.9,4635,2.782,6359,5.671,6367,2.523,6414,2.72,6938,5.609,6942,6.042,6945,3.026,6949,3.139,8266,7.9,8278,4.675,8280,3.139,8298,6.31,8300,2.347,8306,5.407,8599,4.675,8836,3.843,9332,6.169,9464,8.692,9473,3.139,9474,2.853,9475,5.813,9975,2.085,10577,8.849,10579,3.139,10580,3.139,10581,6.239,10667,8.692,11695,2.613,12145,6.043,12173,2.853,12645,3.026,12647,3.139,13139,2.782,13140,2.72,13337,5.003,13338,3.468,13532,8.692,14166,3.139,14219,3.026,15093,6.893,15908,4.824,15909,9.909,15910,3.754,15911,5.984,15912,5.984,15913,5.984,15914,5.984,15915,3.754,15916,5.984,15917,3.754,15918,5.984,15919,5.984,15920,3.754,15921,5.984,15922,3.754,15923,5.984,15924,3.754,15925,3.754,15926,3.754,15927,3.279,15928,3.279,15929,8.591,15930,5.984,15931,5.984,15932,3.468,15933,5.984,15934,5.984,15935,3.468,15936,3.754,15937,3.754,15938,3.754,15939,3.754,15940,3.279,15941,5.984,15942,3.468,15943,8.513,15944,3.468,15945,3.754,15946,3.279,15947,3.754,15948,7.462,15949,5.984,15950,3.754,15951,5.984,15952,3.754,15953,5.984,15954,3.754,15955,3.468,15956,3.754,15957,3.754,15958,5.984,15959,5.528,15960,3.754,15961,3.754,15962,3.754,15963,3.754,15964,3.754,15965,3.754,15966,5.984,15967,3.754,15968,5.984,15969,5.984,15970,5.984,15971,3.754,15972,3.754,15973,3.754,15974,3.754,15975,3.754,15976,3.754,15977,3.754,15978,3.754,15979,3.754,15980,3.754,15981,3.754,15982,3.754,15983,3.754,15984,5.984,15985,3.754,15986,5.984,15987,3.754]],["title/injectables/OidcProvisioningStrategy.html",[105,0.89,15988,5.893]],["body/injectables/OidcProvisioningStrategy.html",[0,0.252,3,0.02,4,0.02,5,0.01,7,0.114,8,1.19,9,5.884,27,0.49,29,0.879,30,0.001,31,0.621,32,0.155,33,0.554,35,1.338,36,2.408,95,0.162,99,1.256,100,2.477,101,0.014,103,0.001,104,0.001,105,1.3,107,1.771,112,2.485,127,0.935,145,1.91,163,2.334,187,1.06,189,5.525,192,2.938,216,1.369,217,0.976,221,2.612,227,0.78,234,1.201,284,4.46,404,1.781,406,2.364,461,2.271,596,3.365,1919,3.073,1991,4.004,1993,5.059,2171,3.18,2172,3.539,2173,3.413,2180,4.687,2309,4.149,2435,4.974,3898,4.038,6461,4.687,6938,5.577,8291,4.974,11156,6.083,11848,7.909,11850,4.821,12613,7.698,12614,8.931,12616,7.943,12617,8.223,12621,5.965,12622,7.303,12626,7.487,12627,6.464,12658,6.464,15086,5.965,15836,6.464,15903,6.464,15908,10.199,15988,8.608,15989,7.399,15990,7.399,15991,7.399,15992,7.399,15993,7.399,15994,7.399,15995,6.464,15996,7.399,15997,10.234,15998,7.399,15999,7.399,16000,7.399,16001,6.835,16002,7.399,16003,7.399,16004,7.399,16005,7.399]],["title/interfaces/Options.html",[334,0.743,701,2.356]],["body/interfaces/Options.html",[0,0.22,3,0.017,4,0.017,5,0.009,7,0.099,30,0.001,32,0.145,33,0.623,36,2.247,47,0.753,95,0.133,101,0.021,103,0.001,104,0.001,111,1.295,112,2.319,145,2.668,163,2.041,165,0.71,215,2.095,217,1.677,221,2.634,227,1.09,334,0.713,336,1.577,347,2.477,368,4.413,369,1.431,371,3.08,379,2.93,443,2.545,701,4.355,721,4.826,1910,5.741,2180,7.699,2835,3.856,3247,3.9,3262,5.623,3445,5.653,3448,6.046,3451,5.217,3457,8.849,3458,7.077,3459,3.856,3461,5.055,3462,5.86,3542,3.338,5483,5.217,5485,5.653,7644,5.41,7645,5.978,7648,5.217,7649,8.077,7651,5.978,7652,6.814,7653,9.74,7654,7.52,7656,5.978,7657,7.337,7659,8.077,7660,7.663,7661,4.504,7662,4.917,7664,5.653,7665,5.41,7666,10.847,7667,8.729,7668,6.734,7669,8.309,7670,5.653,7671,8.309,7672,8.309,7673,5.978,7674,5.978,7675,5.978,7676,9.342,7677,8.309,7678,9.551,7679,4.424,7680,7.858,7681,5.978,7682,5.978,7683,5.653]],["title/classes/Page.html",[0,0.23,1014,3.311]],["body/classes/Page.html",[0,0.325,2,1.098,3,0.025,4,0.025,5,0.014,7,0.147,27,0.518,29,0.759,30,0.001,31,0.536,32,0.175,33,0.478,55,2.927,101,0.018,103,0.001,104,0.001,127,1.208,163,4.195,165,0.915,692,4.957,1008,7.468,1009,6.63,1014,5.695,1026,5.312,16006,9.563,16007,11.601,16008,9.563,16009,8.834]],["title/classes/PageContentDto.html",[0,0.23,16010,5.27]],["body/classes/PageContentDto.html",[0,0.321,2,1.083,3,0.025,4,0.025,5,0.013,7,0.145,27,0.515,29,0.748,30,0.001,31,0.529,32,0.174,33,0.471,47,0.941,101,0.018,103,0.001,104,0.001,127,1.191,165,0.908,355,5.082,405,3.1,595,3.246,4442,5.7,16010,10.351,16011,12.923,16012,9.428,16013,10.377,16014,10.377,16015,11.502,16016,9.428,16017,8.71,16018,8.71,16019,8.71,16020,8.71]],["title/injectables/PageContentMapper.html",[105,0.89,16021,5.64]],["body/injectables/PageContentMapper.html",[0,0.317,3,0.025,4,0.025,5,0.013,7,0.143,8,1.379,27,0.387,29,0.739,30,0.001,31,0.523,32,0.131,33,0.466,35,1.125,95,0.158,100,3.12,101,0.018,103,0.001,104,0.001,105,1.506,107,2.231,187,1.335,217,1.229,227,0.982,234,1.512,355,4.491,982,4.669,1016,4.078,4442,5.038,14480,9.976,14481,9.976,16010,10.055,16013,7.791,16014,7.791,16021,9.548,16022,11.42,16023,9.319,16024,9.319,16025,11.042,16026,9.319,16027,8.609,16028,9.319,16029,9.319]],["title/classes/PageContentQueryParams.html",[0,0.23,16030,5.893]],["body/classes/PageContentQueryParams.html",[0,0.368,2,0.982,3,0.023,4,0.031,5,0.012,7,0.131,27,0.493,30,0.001,32,0.187,47,0.909,95,0.152,101,0.016,103,0.001,104,0.001,165,0.854,355,4.909,364,2.201,374,2.731,376,2.005,379,2.737,467,3.355,1000,5.078,1013,5.445,1014,5.312,1044,4.195,1114,4.39,2744,4.825,4442,5.506,6908,8.222,9713,6.193,16030,9.453,16031,12.482,16032,8.547,16033,10.373,16034,9.572,16035,9.572,16036,10.904,16037,8.547,16038,8.547,16039,10.821,16040,8.547,16041,8.547,16042,7.466,16043,8.547]],["title/classes/PageContentResponse.html",[0,0.23,16025,5.64]],["body/classes/PageContentResponse.html",[0,0.3,2,1.014,3,0.023,4,0.023,5,0.012,7,0.136,27,0.5,29,0.7,30,0.001,31,0.495,32,0.169,33,0.441,47,0.92,95,0.113,101,0.017,103,0.001,104,0.001,127,1.116,150,4.632,165,0.872,355,4.967,364,2.047,376,2.071,379,2.546,405,2.977,467,3.24,595,3.04,1013,5.064,4442,5.571,16013,10.077,16014,10.077,16017,8.155,16018,8.155,16019,8.155,16020,8.155,16025,10.87,16044,12.629,16045,8.828,16046,11.044,16047,11.044,16048,11.666,16049,11.044,16050,8.828]],["title/classes/PaginationParams.html",[0,0.23,1028,4.787]],["body/classes/PaginationParams.html",[0,0.372,2,0.999,3,0.023,4,0.023,5,0.012,7,0.134,27,0.454,30,0.001,32,0.153,33,0.628,55,2.907,56,6.23,70,5.997,95,0.14,101,0.017,103,0.001,104,0.001,144,2.99,165,0.863,247,4.34,329,3.223,364,2.028,374,2.778,375,4.856,376,2.039,379,2.521,905,4.543,907,8.742,1014,5.369,1020,7.236,1028,7.763,1034,8.032,1035,7.614,1036,9.146,1037,9.556,1038,10.105,1040,8.032,1041,6.077,1042,9.146,3437,6.17,3442,6.3,3493,7.269,5419,9.648,16051,8.695,16052,8.695,16053,8.695,16054,8.695,16055,8.695]],["title/classes/PaginationResponse.html",[0,0.23,1007,4.164]],["body/classes/PaginationResponse.html",[0,0.261,2,0.881,3,0.02,4,0.02,5,0.011,7,0.118,9,5.73,27,0.517,29,0.608,30,0.001,31,0.43,32,0.191,33,0.622,55,3.107,56,6.27,59,3.131,70,6.527,95,0.098,101,0.015,103,0.001,104,0.001,127,0.969,163,3.556,165,0.796,364,2.221,376,1.799,379,2.761,467,3.346,692,3.759,1007,6.227,1008,7.109,1013,5.493,1014,5.88,1015,5.604,1016,3.603,1018,7.805,1019,7.453,1020,6.673,1021,5.369,4586,7.022,16009,7.083,16056,7.667,16057,10.089,16058,7.667,16059,7.667,16060,7.667,16061,7.667,16062,7.667,16063,7.667,16064,7.667]],["title/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.23,203,5.893]],["body/classes/ParameterTypeNotImplementedLoggableException.html",[0,0.294,2,0.992,3,0.023,4,0.023,5,0.012,7,0.133,8,1.316,27,0.452,29,0.685,30,0.001,31,0.484,32,0.185,33,0.432,35,1.043,47,0.869,95,0.14,101,0.016,103,0.001,104,0.001,108,6.888,127,1.092,163,2.724,187,1.237,200,2.815,203,9.517,209,2.974,214,3.586,215,2.796,216,1.598,227,0.91,290,4.987,404,1.97,406,2.76,1132,6.964,1327,3.412,1542,5.569,1543,6.202,1545,2.76,1547,6.235,3218,7.894,8137,6.202,8138,6.457,8530,5.548,8537,5.092,8538,5.333,8546,7.223,8547,7.223,16065,11.933,16066,11.933,16067,8.639,16068,11.933,16069,8.639,16070,8.639,16071,8.639]],["title/classes/PatchGroupParams.html",[0,0.23,7229,5.893]],["body/classes/PatchGroupParams.html",[0,0.388,2,1.065,3,0.025,4,0.025,5,0.013,7,0.143,27,0.385,30,0.001,31,0.639,32,0.13,47,0.829,95,0.158,100,3.812,101,0.018,103,0.001,104,0.001,165,0.899,364,1.72,374,2.963,376,2.176,379,2.625,467,3.061,469,4.092,470,4.798,1277,6.628,1474,4.477,2594,5.669,6701,8.785,6916,7.478,6918,8.44,7229,9.948,16072,9.948,16073,9.276,16074,9.948,16075,9.276]],["title/classes/PatchMyAccountParams.html",[0,0.23,547,5.893]],["body/classes/PatchMyAccountParams.html",[0,0.317,2,0.784,3,0.018,4,0.018,5,0.01,7,0.105,27,0.497,30,0.001,31,0.641,32,0.168,33,0.643,47,0.962,87,5.913,95,0.146,101,0.013,103,0.001,104,0.001,165,0.736,234,2.089,364,2.218,368,5.218,369,2.92,370,4.408,371,3.641,374,2.18,376,1.6,379,2.758,461,3.045,467,3.321,468,7.287,469,3.009,470,5.042,471,5.092,472,4.586,473,8.149,474,5.704,475,3.418,476,5.704,479,5.057,547,8.149,575,5.559,851,5.218,852,5.218,853,6.081,1113,7.52,1145,7.799,1865,4.886,2951,5.559,4586,9.195,5394,7.287,16076,11.412,16077,6.822,16078,10.63,16079,10.63,16080,6.822,16081,6.822,16082,6.822,16083,6.822,16084,6.822,16085,6.822,16086,8.149,16087,6.822]],["title/classes/PatchMyPasswordParams.html",[0,0.23,518,5.893]],["body/classes/PatchMyPasswordParams.html",[0,0.367,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,27,0.448,30,0.001,32,0.151,47,0.907,87,6.789,95,0.16,101,0.016,103,0.001,104,0.001,165,0.852,234,2.022,364,2.001,368,4.923,369,2.755,370,4.158,371,3.435,374,2.719,376,1.996,379,2.488,461,2.873,467,3.186,468,9.258,469,3.754,470,4.993,472,5.721,474,7.116,475,4.264,476,9.023,518,9.428,577,6.051,11485,7.999,16076,10.948,16088,8.511,16089,11.851,16090,10.792,16091,10.792,16092,8.511,16093,8.511]],["title/classes/PatchOrderParams.html",[0,0.23,16094,5.893]],["body/classes/PatchOrderParams.html",[0,0.386,2,1.06,3,0.024,4,0.024,5,0.013,7,0.142,27,0.383,30,0.001,32,0.129,47,0.827,95,0.146,100,3.802,101,0.018,103,0.001,104,0.001,165,0.896,234,1.843,364,1.712,369,2.041,374,2.95,376,2.166,379,2.618,467,3.053,770,6.693,1000,4.856,1041,7.317,1925,5.902,1984,4.856,2185,7.262,2489,5.277,3872,7.763,4082,7.443,5418,7.193,16072,9.92,16074,9.92,16094,9.92,16095,9.233,16096,9.233,16097,10.49,16098,9.233]],["title/classes/PatchVisibilityParams.html",[0,0.23,16099,5.893]],["body/classes/PatchVisibilityParams.html",[0,0.391,2,1.08,3,0.025,4,0.025,5,0.013,7,0.145,27,0.39,30,0.001,32,0.132,95,0.147,100,3.845,101,0.018,103,0.001,104,0.001,165,0.906,347,2.341,364,1.744,369,2.539,371,3.166,373,6.063,374,3.005,376,2.206,379,2.647,467,3.087,1984,4.912,2594,5.696,4109,11.567,4825,7.18,4826,7.376,6925,8.217,16072,10.033,16074,10.033,16099,10.033,16100,9.406,16101,9.406]],["title/injectables/PermissionService.html",[105,0.89,440,5.64]],["body/injectables/PermissionService.html",[0,0.232,3,0.018,4,0.018,5,0.01,7,0.105,8,1.284,27,0.441,29,0.843,30,0.001,31,0.596,32,0.149,33,0.531,35,1.38,47,0.938,95,0.136,101,0.013,102,4.707,103,0.001,104,0.001,105,1.23,107,1.633,111,2.126,187,0.977,217,1.507,227,1.204,234,1.514,235,5.28,247,4.217,264,2.889,305,1.963,347,1.901,371,1.881,440,8.887,461,3.138,496,5.205,569,6.27,571,5.832,574,4.229,766,2.932,1019,3.979,1866,6.016,1912,6.302,1914,6.302,1915,6.302,1916,6.126,1919,2.833,1921,6.171,1926,6.302,1927,6.302,1952,5.005,1991,3.691,2477,5.758,3110,5.536,4083,6.266,4628,6.171,5402,7.52,7653,7.287,9141,7.287,9404,8.149,9999,8.617,11672,7.52,11674,5.5,11681,5.5,16102,6.822,16103,9.328,16104,9.328,16105,9.328,16106,6.822,16107,9.328,16108,6.822,16109,9.328,16110,9.328,16111,8.617,16112,9.328,16113,6.822,16114,6.822,16115,6.822,16116,6.822,16117,6.822,16118,6.822,16119,9.328,16120,6.822,16121,9.328,16122,6.822,16123,6.822]],["title/interfaces/PlainTextMailContent.html",[334,0.743,1572,5]],["body/interfaces/PlainTextMailContent.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,31,0.487,32,0.153,33,0.546,47,1.033,77,5.496,101,0.017,103,0.001,104,0.001,165,0.862,334,1.477,336,2.114,404,2.338,1560,8.097,1561,6.592,1562,8.862,1563,8.301,1564,6.592,1565,4.82,1566,8.097,1567,6.286,1568,6.592,1569,6.286,1570,9.302,1571,6.592,1572,8.862,1573,9.829,1574,9.829,1575,8.097,1576,6.584,1577,6.43,1578,6.43,1579,6.592,1580,6.592]],["title/interfaces/PreviewFileParams.html",[334,0.743,10445,5.64]],["body/interfaces/PreviewFileParams.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,31,0.484,32,0.188,33,0.544,47,1.018,55,1.901,95,0.153,101,0.021,103,0.001,104,0.001,163,2.724,165,0.86,334,1.2,336,2.105,380,1.807,982,4.328,5410,6.901,5562,6.013,6064,3.961,6082,8.073,6130,8.047,6139,8.7,6162,5.807,6170,6.403,6171,6.403,6172,6.403,9917,6.564,9994,10.101,10402,9.789,10444,7.98,10445,9.109,10446,10.946,10447,10.476]],["title/classes/PreviewParams.html",[0,0.23,6139,4.332]],["body/classes/PreviewParams.html",[0,0.45,2,0.711,3,0.016,4,0.023,5,0.012,7,0.095,26,2.501,27,0.419,30,0.001,32,0.173,33,0.599,39,1.66,47,0.963,95,0.154,99,1.051,101,0.025,103,0.001,104,0.001,150,2.271,165,0.688,204,2.124,334,0.682,347,2.058,364,1.872,369,1.928,373,4.604,374,1.978,375,4.447,376,1.453,377,5.683,379,1.427,380,1.295,467,3.681,469,2.732,470,5.05,471,4.664,565,3.269,1000,5.126,1001,6.531,1031,3.236,1044,3.04,1291,2.635,1381,3.612,2744,4.502,2915,6.099,3574,3.019,4227,2.132,5740,6.669,6064,5.026,6077,7.141,6083,6.034,6111,3.081,6114,4.233,6115,4.31,6116,4.31,6119,7.527,6122,7.928,6123,8.194,6124,8.343,6125,4.31,6126,4.233,6127,6.679,6128,4.233,6129,4.31,6130,3.977,6131,5.769,6132,4.096,6133,4.31,6134,4.31,6135,4.162,6136,4.233,6137,4.162,6138,4.162,6139,5.601,6140,4.31,6141,6.902,6142,4.31,6143,6.786,6144,5.962,6145,5.683,6146,5.683,6147,7.028,10341,8.057,10362,5.72,16124,6.192,16125,6.192,16126,6.192,16127,6.192,16128,6.192]],["title/injectables/PreviewService.html",[105,0.89,10247,5.893]],["body/injectables/PreviewService.html",[0,0.133,3,0.01,4,0.01,5,0.014,7,0.06,8,0.747,27,0.479,29,0.916,30,0.001,31,0.69,32,0.162,33,0.577,35,1.362,36,2.51,47,0.841,59,1.92,95,0.158,101,0.007,103,0,104,0,105,0.816,107,0.937,111,2.645,112,2.793,116,3.267,127,0.782,145,1.01,148,1.914,185,3.717,187,0.561,204,3.257,206,2.004,216,1.144,217,1.751,221,2.659,227,1.155,234,0.635,305,1.78,334,0.431,380,0.819,565,5.327,711,2.333,784,3.266,806,1.649,839,1.838,982,1.961,1016,3.913,1052,3.127,1053,3.866,1158,3.292,1296,2.778,1545,1.251,1565,3.437,1828,2.759,2439,2.837,2444,3.058,2686,3.292,3027,2.237,3542,3.191,3544,1.626,4614,3.156,4790,3.616,5451,5.829,6064,5.402,6082,7.97,6084,2.778,6088,6.184,6089,4.987,6101,6.184,6107,3.156,6123,5.959,6130,5.598,6139,8.266,6141,5.959,6143,4.159,6144,5.959,6162,2.631,6219,4.483,6507,6.701,8836,4.926,9495,3.42,9711,3.058,9712,2.975,9713,2.837,9734,2.725,9741,2.902,9787,3.058,9818,3.42,9914,3.42,9917,7.668,9918,2.902,9985,2.975,9994,7.027,10170,7.027,10247,5.405,10263,3.616,10402,8.559,10436,5.405,10437,6.809,10445,9.85,10446,8.816,10447,7.288,10548,2.975,11408,3.616,16129,3.915,16130,6.187,16131,6.187,16132,6.187,16133,6.187,16134,7.671,16135,6.187,16136,6.187,16137,7.671,16138,6.187,16139,3.915,16140,7.671,16141,3.915,16142,6.187,16143,3.915,16144,6.187,16145,3.915,16146,6.187,16147,3.915,16148,6.187,16149,3.915,16150,3.915,16151,3.915,16152,6.187,16153,3.915,16154,6.187,16155,3.915,16156,3.915,16157,3.915,16158,6.187,16159,3.915,16160,6.187,16161,3.616,16162,3.616,16163,3.616,16164,3.616,16165,3.915,16166,3.915,16167,3.915,16168,3.915,16169,3.915,16170,3.915,16171,3.915,16172,3.915,16173,3.915,16174,3.616,16175,3.915,16176,3.915,16177,3.915,16178,3.915,16179,6.187,16180,3.915,16181,3.915,16182,7.671,16183,3.915,16184,3.915,16185,3.915,16186,3.915,16187,3.915,16188,3.915,16189,3.915,16190,3.915,16191,3.915,16192,3.915,16193,3.915,16194,3.915,16195,3.915,16196,3.915,16197,3.915,16198,3.915]],["title/classes/PrometheusMetricsConfig.html",[0,0.23,16199,5.893]],["body/classes/PrometheusMetricsConfig.html",[0,0.229,2,0.773,3,0.018,4,0.018,5,0.01,7,0.103,8,1.116,27,0.564,30,0.001,32,0.172,35,0.813,47,0.827,55,2.5,95,0.086,101,0.013,103,0.001,104,0.001,111,2.784,116,2.992,127,1.334,145,1.737,148,2.083,165,0.729,216,2.526,227,1.297,234,1.5,347,2.734,627,3.924,884,4.366,1541,8.246,2171,2.893,2172,3.219,2173,3.104,2174,4.264,5121,6.779,9368,8.246,9549,5.426,16199,9.926,16200,6.731,16201,10.556,16202,10.556,16203,10.556,16204,10.556,16205,10.556,16206,10.556,16207,9.926,16208,10.556,16209,9.751,16210,9.751,16211,6.731,16212,6.731,16213,6.731,16214,6.731,16215,6.731,16216,6.731,16217,6.731,16218,6.731,16219,6.731,16220,6.731,16221,6.731,16222,6.731,16223,6.731,16224,6.731,16225,6.731,16226,6.731,16227,6.731,16228,6.731,16229,6.731,16230,9.243,16231,9.243,16232,9.243,16233,9.243,16234,9.243,16235,6.731,16236,6.731,16237,6.731,16238,6.731,16239,6.731,16240,11.363]],["title/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.23,16241,6.231]],["body/classes/PrometheusMetricsSetupStateLoggable.html",[0,0.226,2,0.763,3,0.018,4,0.018,5,0.009,7,0.102,8,1.106,27,0.38,29,0.527,30,0.001,31,0.372,32,0.093,33,0.332,35,0.802,95,0.145,101,0.022,103,0.001,104,0.001,127,0.839,163,2.095,214,3.014,215,2.15,216,1.228,217,1.616,227,1.105,234,1.988,329,1.957,460,5.991,549,4.623,1016,2.372,1021,3.535,1031,2.129,1052,4.831,1327,2.624,1491,3.796,1508,3.759,1538,5.802,1540,5.802,1541,5.189,1542,5.273,1543,5.448,1545,2.122,1546,7.657,1547,5.622,1725,8.878,1848,4.465,2116,3.594,2450,4.207,6491,6.247,6589,5.801,6759,5.047,7882,4.923,9368,8.827,11216,6.732,13626,4.923,15098,9.447,16199,5.802,16209,9.683,16210,9.683,16241,10.438,16242,10.482,16243,6.642,16244,6.642,16245,11.299,16246,6.642,16247,6.642,16248,5.802,16249,6.642,16250,6.642,16251,6.642,16252,12.253,16253,13.479,16254,6.642,16255,6.642,16256,6.642,16257,5.189,16258,6.642,16259,6.642,16260,9.158,16261,6.642,16262,6.642,16263,5.354,16264,6.642,16265,9.158,16266,11.853,16267,6.642,16268,6.642,16269,6.642,16270,6.642,16271,6.642,16272,6.642,16273,6.642,16274,6.642,16275,9.158,16276,6.642,16277,6.642,16278,6.642,16279,6.642,16280,6.642]],["title/classes/PropertyData.html",[0,0.23,134,5.126]],["body/classes/PropertyData.html",[0,0.308,2,1.039,3,0.024,4,0.024,5,0.013,7,0.139,27,0.529,29,0.718,30,0.001,31,0.714,32,0.179,33,0.609,47,0.928,95,0.116,101,0.017,103,0.001,104,0.001,108,7.559,127,1.143,134,9.95,144,3.331,165,0.885,207,9.824,240,2.835,331,7.963,405,3.023,595,3.115,2136,3.621,4303,3.97,7037,7.067,7076,7.564,7077,7.564,7103,7.564,16281,13.095,16282,8.357,16283,11.213,16284,9.047,16285,9.047]],["title/interfaces/ProviderConsentResponse.html",[334,0.743,10885,5]],["body/interfaces/ProviderConsentResponse.html",[3,0.02,4,0.02,5,0.011,7,0.117,30,0.001,32,0.193,33,0.709,47,1.038,70,5.985,77,7.566,95,0.129,101,0.015,103,0.001,104,0.001,165,0.792,199,4.56,334,0.838,336,1.854,337,5.202,347,2.29,356,10.434,357,10.434,359,3.896,1607,6.362,3544,4.96,4216,8.314,5423,11.034,5424,11.034,5425,9.986,5426,9.986,5427,9.986,5428,9.629,9106,8.655,10885,7.44,16286,7.609,16287,9.986,16288,7.029,16289,7.029,16290,6.647]],["title/interfaces/ProviderConsentSessionResponse.html",[334,0.743,10888,5.126]],["body/interfaces/ProviderConsentSessionResponse.html",[3,0.023,4,0.023,5,0.012,7,0.133,30,0.001,32,0.192,33,0.696,47,1.009,55,2.63,95,0.111,101,0.017,103,0.001,104,0.001,138,4.744,165,0.862,334,0.956,336,2.114,337,5.931,341,11.593,342,10.963,343,11.593,344,9.804,345,9.804,346,8.435,347,2.437,352,7.579,353,6.994,5467,8.015,10885,9.302,10888,8.301,15520,8.015,16291,12.55,16292,8.676]],["title/interfaces/ProviderLoginResponse.html",[334,0.743,10886,5.126]],["body/interfaces/ProviderLoginResponse.html",[3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,32,0.191,33,0.623,47,1.032,70,6.244,77,7.894,95,0.138,101,0.016,103,0.001,104,0.001,165,0.852,334,0.938,336,2.074,337,5.818,347,2.416,1607,7.116,3544,5.176,4216,8.675,5425,10.419,5426,10.419,5427,10.419,5428,10.046,9106,9.03,10886,8.2,14127,11.512,16287,10.419,16288,7.862,16289,7.862,16290,7.435,16293,8.511]],["title/interfaces/ProviderOidcContext.html",[334,0.743,16287,5.64]],["body/interfaces/ProviderOidcContext.html",[3,0.025,4,0.025,5,0.013,7,0.143,30,0.001,32,0.185,33,0.696,47,1.024,101,0.018,103,0.001,104,0.001,165,0.901,334,1.027,336,2.271,337,6.371,359,4.282,1864,8.609,15872,11.89,15873,10.376,15874,11.89,15875,11.89,15876,11.89,16287,9.548,16294,9.319]],["title/interfaces/ProviderRedirectResponse.html",[334,0.743,10887,4.888]],["body/interfaces/ProviderRedirectResponse.html",[3,0.028,4,0.028,5,0.015,7,0.161,30,0.001,32,0.147,47,0.945,101,0.02,103,0.001,104,0.001,165,0.966,334,1.152,336,2.548,337,7.149,10887,8.866,16295,10.457,16296,12.354]],["title/classes/ProvisioningDto.html",[0,0.23,12626,5.126]],["body/classes/ProvisioningDto.html",[0,0.34,2,1.147,3,0.026,4,0.026,5,0.014,7,0.154,27,0.494,29,0.792,30,0.001,31,0.56,32,0.167,33,0.499,47,0.867,101,0.019,103,0.001,104,0.001,127,1.262,165,0.94,8291,8.554,8294,8.727,12626,10.38,16297,9.99,16298,11.91,16299,11.91,16300,9.99]],["title/modules/ProvisioningModule.html",[425,1.808,15230,5.27]],["body/modules/ProvisioningModule.html",[0,0.235,3,0.018,4,0.018,5,0.01,30,0.001,95,0.174,101,0.013,103,0.001,104,0.001,187,0.989,191,3.835,192,2.059,425,2.867,427,2.552,428,2.692,429,2.776,430,2.764,431,2.739,432,3.954,433,4.034,437,8.798,438,5.856,442,3.781,443,2.715,444,2.647,449,3.781,1266,3.946,1545,2.206,1625,9.421,1626,8.798,1644,6.031,1951,7.962,3673,4.72,3956,6.321,4485,4.72,4551,8.078,4561,3.674,8280,5.772,10585,9.994,12610,10.366,15044,10.523,15230,11.111,15898,10.366,15908,9.994,15995,6.031,16301,6.904,16302,6.904,16303,6.904,16304,6.904,16305,10.366,16306,10.366,16307,6.904,16308,6.904,16309,6.904,16310,6.904,16311,6.904,16312,6.904]],["title/injectables/ProvisioningService.html",[105,0.89,15044,5.27]],["body/injectables/ProvisioningService.html",[0,0.197,3,0.015,4,0.015,5,0.008,7,0.089,8,1.005,27,0.513,29,0.93,30,0.001,31,0.658,32,0.169,33,0.586,35,1.361,36,2.626,47,0.951,48,3.908,95,0.155,100,1.942,101,0.011,103,0.001,104,0.001,105,1.098,107,1.388,111,2.555,112,2.824,127,1.052,144,1.585,145,1.497,148,1.795,163,2.625,165,0.657,187,0.831,216,1.968,217,1.66,221,2.296,227,1.122,234,1.727,305,1.669,329,1.709,348,7.153,661,4.103,1114,3.951,1439,2.774,1645,4.299,1703,7.153,2309,3.252,3331,5.966,4485,8.605,11101,8.507,11848,7.869,11850,6.933,11851,3.836,11852,3.836,12610,8.897,12613,6.503,12617,7.844,12622,7.218,12626,7.399,12649,4.675,15044,6.503,15045,8.499,15072,6.545,15080,5.066,15351,7.607,15824,4.407,15898,8.897,16305,8.897,16313,5.8,16314,8.325,16315,8.325,16316,8.325,16317,8.325,16318,5.358,16319,9.738,16320,9.738,16321,9.738,16322,5.8,16323,8.325,16324,5.8,16325,8.325,16326,5.8,16327,8.325,16328,5.8,16329,5.8,16330,8.325,16331,5.8,16332,8.325,16333,5.8,16334,5.8,16335,5.066,16336,5.8,16337,5.8,16338,5.8,16339,5.8,16340,5.8,16341,5.8,16342,5.8,16343,5.8,16344,5.8,16345,8.325,16346,5.8,16347,5.8,16348,5.8,16349,5.8,16350,5.8]],["title/classes/ProvisioningStrategy.html",[0,0.23,11848,4.217]],["body/classes/ProvisioningStrategy.html",[0,0.307,2,1.037,3,0.024,4,0.024,5,0.013,7,0.139,8,1.352,9,6.632,27,0.505,29,0.888,30,0.001,31,0.628,32,0.157,33,0.56,35,1.47,36,2.767,95,0.144,100,3.022,101,0.017,103,0.001,104,0.001,163,2.847,2309,5.061,11156,6.912,11848,7,11850,7.932,11851,5.971,11852,5.971,12613,8.748,12614,10.261,12616,9.027,12617,8.86,12621,9.027,12622,9.434,12626,6.859,16351,9.026,16352,9.026,16353,9.026,16354,9.026]],["title/classes/ProvisioningSystemDto.html",[0,0.23,15351,5.27]],["body/classes/ProvisioningSystemDto.html",[0,0.308,2,1.039,3,0.024,4,0.024,5,0.013,7,0.139,26,2.543,27,0.529,29,0.718,30,0.001,31,0.507,32,0.179,33,0.609,47,0.817,48,5.721,95,0.144,99,1.535,101,0.017,103,0.001,104,0.001,127,1.143,165,0.885,405,3.023,417,6.705,418,7.293,595,3.115,11848,7.618,11849,8.482,11850,7.94,11851,5.984,11852,5.984,11945,6.874,11946,7.067,11947,6.874,11948,7.067,15351,10.23,16355,13.095,16356,9.047,16357,11.213,16358,9.047,16359,9.047]],["title/classes/ProvisioningSystemInputMapper.html",[0,0.23,16335,5.893]],["body/classes/ProvisioningSystemInputMapper.html",[0,0.316,2,1.068,3,0.025,4,0.025,5,0.013,7,0.143,8,1.377,27,0.386,29,0.738,30,0.001,31,0.521,32,0.13,33,0.465,35,1.123,48,4.365,95,0.158,100,3.818,101,0.018,103,0.001,104,0.001,145,2.4,227,0.98,234,1.509,627,3.841,1114,4.627,1130,7.495,11848,5.812,11849,6.472,11850,6.058,11851,6.15,11852,6.15,15072,8.644,15351,8.909,15824,7.065,16335,9.962,16360,11.404,16361,9.297,16362,11.404,16363,11.404,16364,9.297,16365,9.297,16366,9.297,16367,9.297]],["title/classes/Pseudonym.html",[0,0.23,8712,4.395]],["body/classes/Pseudonym.html",[0,0.28,2,0.944,3,0.022,4,0.022,5,0.012,7,0.126,8,1.274,26,2.655,27,0.55,30,0.001,32,0.115,35,0.992,39,3.298,47,0.768,83,3.701,95,0.135,101,0.02,103,0.001,104,0.001,116,3.415,165,0.833,227,1.341,334,0.905,359,2.849,404,2.107,591,5.26,592,5.426,595,3.633,596,3.204,661,4.446,692,3.932,884,4.984,1854,6.154,1857,5.441,1860,7.711,2485,3.549,2586,4.337,2800,5.616,2818,5.616,2821,7.177,2823,7.177,2826,6.418,2827,6.418,7261,6.623,8568,7.25,8712,8.483,16368,7.589,16369,8.215,16370,8.215,16371,8.215,16372,8.215,16373,8.215,16374,8.215,16375,8.215,16376,7.177,16377,7.589,16378,7.589,16379,6.869]],["title/entities/PseudonymEntity.html",[380,1.411,16380,5.64]],["body/entities/PseudonymEntity.html",[0,0.282,3,0.022,4,0.022,5,0.012,7,0.128,26,2.217,27,0.486,30,0.001,32,0.164,34,1.425,39,3.421,47,0.853,49,5.175,95,0.158,96,2.871,97,3.532,99,1.409,101,0.02,103,0.001,104,0.001,165,0.924,167,3.169,240,4.091,334,0.914,364,2.171,380,2.222,381,2.732,394,6.694,398,2.431,399,4.159,402,3.415,404,1.501,405,2.237,406,2.652,415,4.53,416,5.33,618,3.532,619,6.07,4294,5.003,8568,7.523,8712,8.045,8713,7.251,8718,6.307,8719,6.94,8720,6.94,8721,6.152,8722,6.484,16380,8.88,16381,7.667,16382,8.3,16383,8.3,16384,8.3,16385,8.88]],["title/interfaces/PseudonymEntityProps.html",[334,0.743,16385,5.64]],["body/interfaces/PseudonymEntityProps.html",[0,0.282,3,0.022,4,0.022,5,0.012,7,0.128,26,2.577,30,0.001,32,0.173,33,0.531,34,2.119,39,3.5,47,0.899,49,5.292,95,0.158,96,2.871,97,3.532,99,1.409,101,0.02,103,0.001,104,0.001,165,0.924,167,3.169,240,3.869,334,0.914,336,2.022,380,2.222,394,6.694,398,2.431,399,4.159,402,3.415,404,1.501,405,2.237,406,2.652,415,4.53,416,5.33,618,3.532,619,6.07,4294,5.003,8568,7.695,8712,8.315,8718,6.307,8719,6.94,8720,6.94,8721,6.152,8722,6.484,16380,6.94,16381,7.667,16385,9.793]],["title/modules/PseudonymModule.html",[425,1.808,4550,5.126]],["body/modules/PseudonymModule.html",[0,0.302,3,0.024,4,0.024,5,0.013,30,0.001,95,0.162,101,0.017,103,0.001,104,0.001,187,1.27,425,3.237,427,3.278,428,3.457,429,3.565,430,3.549,431,3.518,432,4.464,433,4.554,442,4.453,443,3.487,444,3.4,766,3.811,1053,5.888,1545,2.833,2570,4.798,4550,10.66,8723,11.101,12144,10.617,16386,8.867,16387,8.867,16388,8.867,16389,11.101,16390,8.867]],["title/interfaces/PseudonymProps.html",[334,0.743,16376,5.893]],["body/interfaces/PseudonymProps.html",[0,0.29,3,0.023,4,0.023,5,0.012,7,0.131,26,2.845,30,0.001,32,0.18,39,3.448,47,0.907,83,4.065,95,0.138,101,0.021,103,0.001,104,0.001,165,0.852,227,1.355,334,0.938,336,2.074,359,2.951,404,2.143,591,5.5,592,5.673,1854,6.912,1857,4.615,2485,3.677,2586,4.493,2826,6.649,2827,6.649,8568,7.581,8712,8.561,16368,7.862,16376,9.428,16377,7.862,16378,7.862,16379,7.116]],["title/injectables/PseudonymService.html",[105,0.89,12144,5.126]],["body/injectables/PseudonymService.html",[0,0.155,3,0.012,4,0.012,5,0.006,7,0.07,8,0.839,11,5.604,13,4.933,27,0.5,29,0.955,30,0.001,31,0.675,32,0.169,33,0.602,34,1.747,35,1.426,36,2.896,37,5.604,39,3.164,42,4.933,47,0.955,49,1.773,83,2.092,95,0.138,96,1.229,97,1.935,99,0.772,101,0.009,103,0,104,0,105,0.917,107,1.088,111,2.606,112,3.025,116,4.021,127,0.878,145,1.794,158,6.137,167,1.736,187,0.651,201,2.382,209,4.147,216,1.286,217,1.519,221,2.227,227,1.269,234,1.869,284,4.19,305,2.719,461,1.602,591,1.945,592,2.006,738,4.871,775,2.773,806,1.916,1238,6.068,1439,2.175,2570,2.461,4150,3.008,4405,8.728,6938,6.321,7038,8.383,7127,3.008,8382,8.511,8568,2.681,8712,7.69,8718,7.179,8723,10.07,8727,6.072,8735,6.072,9599,3.165,12144,5.282,12347,6.421,14941,6.421,16389,9.337,16391,4.548,16392,6.951,16393,6.951,16394,6.951,16395,6.951,16396,6.951,16397,6.951,16398,4.548,16399,4.548,16400,6.951,16401,4.548,16402,6.951,16403,4.548,16404,4.548,16405,4.548,16406,4.548,16407,6.951,16408,4.548,16409,6.951,16410,4.548,16411,6.951,16412,4.548,16413,6.951,16414,4.548,16415,10.733,16416,4.548,16417,9.448,16418,4.548,16419,4.548,16420,6.951,16421,3.227,16422,4.548,16423,4.548,16424,4.548,16425,6.951,16426,6.951,16427,4.548,16428,4.548,16429,4.548,16430,9.448,16431,4.548,16432,4.548,16433,4.548,16434,4.548,16435,4.548]],["title/injectables/PseudonymsRepo.html",[105,0.89,16389,5.64]],["body/injectables/PseudonymsRepo.html",[0,0.184,3,0.014,4,0.014,5,0.008,7,0.083,8,0.954,13,5.606,26,2.82,27,0.503,29,0.961,30,0.001,31,0.68,32,0.17,33,0.606,34,1.356,35,1.427,36,2.828,39,3.369,42,5.606,49,2.104,95,0.132,96,1.458,97,2.296,99,0.916,101,0.01,103,0,104,0,105,1.042,107,1.291,112,2.965,127,0.682,145,1.393,167,3.016,187,0.773,215,1.746,216,0.998,217,1.657,221,2.425,227,1.277,234,2.039,380,2.535,381,1.776,591,2.307,592,2.38,661,4.82,921,7.817,1857,4.683,2395,5.88,2417,3.626,2441,4.215,2446,3.829,2459,4.511,2835,4.708,3280,3.755,3285,4.817,3348,4.349,4355,3.465,4369,4.511,4370,4.511,8568,7.407,8712,8.668,8718,6.003,8726,7.298,8727,6.901,8728,7.298,8729,7.298,8730,6.901,8731,7.298,8733,7.298,8735,6.901,8738,7.298,8740,7.298,8742,7.298,8744,7.298,8747,7.298,8748,9.503,8751,4.713,8752,4.984,8754,4.984,8756,4.713,8757,4.984,8758,6.901,8760,4.984,8761,4.984,8762,4.984,8763,4.984,8764,4.984,8765,4.984,16380,10.337,16385,8.601,16389,6.605,16436,5.395,16437,5.395,16438,5.395,16439,5.395,16440,5.395,16441,5.395,16442,5.395,16443,5.395,16444,5.395,16445,5.395,16446,5.395,16447,5.395,16448,5.395,16449,5.395,16450,5.395,16451,5.395]],["title/classes/PublicSystemListResponse.html",[0,0.23,16452,5.64]],["body/classes/PublicSystemListResponse.html",[0,0.319,2,1.078,3,0.025,4,0.025,5,0.013,7,0.144,27,0.476,29,0.744,30,0.001,31,0.526,32,0.174,33,0.469,95,0.147,101,0.018,103,0.001,104,0.001,116,3.038,127,1.186,145,2.422,163,3.906,165,0.905,364,1.74,376,2.201,467,3.083,1006,6.66,1011,4.994,1016,3.351,1026,5.213,1114,5.235,5636,8.96,16452,9.589,16453,11.442,16454,11.469,16455,10.989,16456,10.595]],["title/classes/PublicSystemResponse.html",[0,0.23,16455,5.438]],["body/classes/PublicSystemResponse.html",[0,0.234,2,0.789,3,0.018,4,0.018,5,0.01,7,0.106,27,0.514,29,0.545,30,0.001,31,0.598,32,0.187,33,0.633,34,2.059,47,0.939,95,0.12,101,0.013,103,0.001,104,0.001,127,0.868,154,5.225,165,0.74,364,2.223,367,4.511,368,5.225,369,2.924,370,4.413,371,3.646,376,1.611,379,2.765,467,3.328,618,2.923,1013,5.5,1114,5.582,2621,3.245,2640,5.537,5382,6.549,5602,5.345,5621,4.351,9975,5.206,10363,6.946,10947,6.851,11270,5.091,11845,7.934,11937,5.219,11939,5.219,13302,4.875,15318,10.028,15873,7.555,16453,11.704,16455,9.669,16457,4.875,16458,8.657,16459,9.372,16460,6.869,16461,6.869,16462,6.869,16463,6.869,16464,6.345,16465,5.743,16466,5.537,16467,5.743]],["title/modules/RabbitMQWrapperModule.html",[425,1.808,10245,5]],["body/modules/RabbitMQWrapperModule.html",[0,0.346,3,0.021,4,0.021,5,0.011,30,0.001,31,0.636,32,0.159,47,0.826,95,0.154,101,0.022,103,0.001,104,0.001,112,1.743,187,1.113,214,2.558,215,2.515,216,1.437,217,1.025,221,1.832,234,1.261,284,4.684,368,3.07,425,3.228,427,3.763,433,3.838,449,4.563,676,4.169,883,3.258,957,5.761,1272,5.313,1309,5.409,1417,4.991,1429,8.624,1437,5.631,1438,5.223,2171,3.34,2172,3.717,2173,3.584,2174,4.922,2477,4.797,2500,4.797,2508,4.991,2514,5.14,3552,5.76,4480,5.631,4632,5.313,4997,6.631,5784,4.532,6047,5.063,6334,8.702,6637,5.631,10174,7.544,10245,7.544,10246,5.409,10269,6.789,12571,6.265,12905,9.915,14534,9.915,16468,7.179,16469,10.484,16470,11.548,16471,7.179,16472,7.179,16473,6.789,16474,7.179,16475,7.179,16476,6.497,16477,7.179,16478,7.179,16479,7.179,16480,7.179,16481,7.179,16482,6.789,16483,7.179,16484,6.497,16485,7.179,16486,6.789,16487,6.789,16488,7.179,16489,7.179,16490,7.179]],["title/modules/RabbitMQWrapperTestModule.html",[425,1.808,10246,4.695]],["body/modules/RabbitMQWrapperTestModule.html",[0,0.343,3,0.02,4,0.02,5,0.011,8,0.924,27,0.318,30,0.001,31,0.632,32,0.158,35,0.924,47,0.82,95,0.153,101,0.021,103,0.001,104,0.001,112,2.26,187,1.096,214,2.519,215,2.477,216,1.415,217,1.009,221,1.804,234,1.242,284,4.612,368,3.023,425,3.209,427,3.725,433,3.8,449,4.529,676,4.106,883,3.209,957,5.703,1272,5.232,1309,5.327,1417,4.915,1429,8.56,1437,5.545,1438,5.144,2171,3.289,2172,3.66,2173,3.53,2174,4.848,2477,4.724,2500,4.724,2508,4.915,2514,5.062,3552,5.672,4480,5.545,4632,5.232,4997,6.565,5784,4.463,6047,4.986,6334,8.658,6637,5.545,10174,7.468,10245,5.672,10246,7.014,10269,6.685,12571,6.169,12905,9.841,14534,10.866,16468,7.07,16469,10.406,16470,11.491,16471,7.07,16472,7.07,16473,6.685,16474,7.07,16475,7.07,16476,6.398,16477,7.07,16478,7.07,16479,7.07,16480,7.07,16481,7.07,16482,6.685,16483,7.07,16484,6.398,16485,7.07,16486,6.685,16487,6.685,16488,7.07,16489,7.07,16490,7.07,16491,7.653]],["title/classes/ReadableStreamWithFileTypeImp.html",[0,0.23,16492,6.231]],["body/classes/ReadableStreamWithFileTypeImp.html",[0,0.285,2,0.963,3,0.022,4,0.022,5,0.018,7,0.129,27,0.444,29,0.665,30,0.001,31,0.47,32,0.174,33,0.588,95,0.151,101,0.016,103,0.001,104,0.001,127,1.06,165,0.844,214,3.519,217,1.41,227,0.884,404,1.933,405,2.882,406,2.679,595,2.888,660,4.577,731,3.284,736,4.943,1298,3.938,1299,3.891,1300,3.891,1301,4.117,1302,4.5,2086,5.838,5410,8.427,6162,8.331,8579,7.747,8622,7.747,9712,6.373,12578,7.747,16492,9.877,16493,11.77,16494,8.387,16495,11.77,16496,12.803,16497,12.395,16498,10.692,16499,12.395,16500,8.387,16501,8.387,16502,8.387,16503,8.387,16504,8.387]],["title/injectables/RecursiveDeleteVisitor.html",[105,0.89,3283,5.64]],["body/injectables/RecursiveDeleteVisitor.html",[0,0.198,3,0.015,4,0.015,5,0.008,7,0.09,8,1.009,27,0.531,29,1.014,30,0.001,31,0.717,32,0.179,33,0.639,35,1.522,36,2.925,95,0.137,96,1.574,97,2.479,99,0.989,101,0.011,103,0.001,104,0.001,105,1.101,107,1.394,111,1.67,112,3.109,127,1.055,148,2.584,187,0.834,214,1.917,216,1.544,221,2.971,1444,3.795,1857,3.571,2395,6.094,2441,4.55,2598,6.148,2697,5.958,2806,5.092,2811,3.641,2856,6.389,2861,6.968,2864,7.354,2867,7.249,2870,7.056,2873,6.665,2881,2.656,2884,7.295,2885,7.295,2886,7.295,2887,7.295,2888,7.295,2889,7.295,2891,7.714,2892,7.714,2893,7.714,2894,7.714,2895,7.714,2896,7.714,2897,7.714,3144,3.125,3280,4.054,3283,6.982,3285,5.092,3543,2.859,3544,2.419,6193,8.967,16505,11.956,16506,5.825,16507,8.351,16508,8.351,16509,5.825,16510,8.351,16511,5.825,16512,5.825,16513,8.351,16514,5.825,16515,5.825,16516,5.825,16517,5.825,16518,5.825,16519,5.825,16520,8.351,16521,5.825,16522,5.825,16523,5.825,16524,5.825,16525,5.825,16526,5.825,16527,5.825,16528,5.825,16529,5.825,16530,5.825,16531,5.825,16532,5.825,16533,5.825,16534,5.825,16535,5.825,16536,5.825,16537,5.825,16538,5.825,16539,5.825]],["title/classes/RecursiveSaveVisitor.html",[0,0.23,3312,5.893]],["body/classes/RecursiveSaveVisitor.html",[0,0.14,2,0.473,3,0.011,4,0.011,5,0.006,7,0.063,8,0.777,18,3.18,26,0.859,27,0.511,29,0.962,30,0.001,31,0.68,32,0.175,33,0.606,34,1.849,35,1.442,36,1.399,39,1.103,55,0.905,59,1.277,95,0.115,96,1.739,97,1.751,99,0.698,101,0.008,103,0,104,0,111,1.792,112,1.777,127,0.52,144,1.125,148,3.99,165,0.508,199,1.571,214,2.118,215,1.332,216,1.19,217,1.7,221,0.97,234,1.902,305,1.184,329,1.212,398,1.205,905,1.709,1474,2.69,1857,1.76,1984,1.76,2395,5.12,2405,2.722,2598,6.597,2697,5.132,2802,4.775,2809,6.405,2811,6.733,2835,3.834,2840,3.595,2843,3.595,2848,5.621,2849,5.621,2850,5.621,2851,5.621,2852,5.621,2853,5.621,2854,5.621,2855,5.38,2856,5.502,2858,5.38,2860,5.38,2861,6.001,2863,5.38,2864,6.334,2866,5.38,2867,6.243,2869,5.38,2870,6.078,2873,5.601,2880,1.968,2881,1.876,3144,7.264,3165,5.026,3168,5.187,3171,4.889,3174,5.026,3177,5.026,3180,5.026,3183,5.026,3226,3.801,3236,2.643,3239,2.572,3242,2.19,3245,2.172,3247,2.48,3280,2.864,3281,8.682,3285,3.924,3304,5.621,3305,6.151,3307,3.317,3309,3.801,3312,5.621,3331,5.023,3596,3.801,4116,3.595,4117,3.595,4118,3.44,4149,3.595,4897,3.801,4898,3.595,5573,5.944,5579,3.801,5582,3.801,5585,3.801,5587,3.801,5591,3.801,8756,3.595,16505,11.499,16540,4.115,16541,7.923,16542,6.434,16543,6.434,16544,6.434,16545,6.434,16546,6.434,16547,4.115,16548,6.434,16549,11.718,16550,4.115,16551,4.115,16552,4.115,16553,6.434,16554,4.115,16555,4.115,16556,4.115,16557,4.115,16558,4.115,16559,4.115,16560,4.115,16561,11.146,16562,4.115,16563,4.115,16564,6.434,16565,6.434,16566,6.434,16567,4.115,16568,4.115,16569,4.115,16570,10.77,16571,10.77,16572,4.115,16573,10.77,16574,4.115,16575,4.115,16576,4.115,16577,4.115,16578,4.115,16579,4.115,16580,4.115,16581,4.115,16582,4.115,16583,4.115,16584,4.115,16585,4.115,16586,4.115,16587,4.115,16588,4.115,16589,3.801,16590,4.115,16591,4.115,16592,4.115,16593,4.115,16594,4.115,16595,4.115,16596,4.115,16597,4.115]],["title/classes/RedirectResponse.html",[0,0.23,15468,5.27]],["body/classes/RedirectResponse.html",[0,0.316,2,1.068,3,0.025,4,0.025,5,0.013,7,0.143,27,0.473,29,0.738,30,0.001,31,0.521,32,0.16,33,0.465,47,0.83,95,0.119,101,0.018,103,0.001,104,0.001,127,1.175,150,4.183,165,0.9,361,6.791,364,1.724,376,2.181,379,2.143,461,2.629,467,3.066,1013,4.263,2008,7.324,2211,7.43,3247,6.873,6706,7.129,13231,9.193,15468,10.31,16296,11.395,16598,9.297,16599,11.404,16600,9.297,16601,9.297,16602,11.404,16603,9.297,16604,9.297,16605,9.297]],["title/modules/RedisModule.html",[425,1.808,16606,5.438]],["body/modules/RedisModule.html",[0,0.289,3,0.023,4,0.023,5,0.012,30,0.001,47,0.785,95,0.165,101,0.016,103,0.001,104,0.001,145,2.192,150,3.115,187,1.217,204,2.914,217,1.421,227,1.136,425,3.174,427,3.14,428,3.311,429,3.415,430,3.399,431,3.369,432,3.984,433,4.065,438,6.204,442,4.333,443,3.34,444,3.256,449,4.333,836,4.903,837,6.295,839,3.987,1052,3.462,1053,5.251,1545,2.713,2171,3.65,2172,4.062,2173,3.917,3544,4.476,3898,4.635,3901,7.845,3912,6.635,3913,9.011,3917,9.956,3918,7.845,3920,7.419,3921,7.845,3922,7.419,3923,7.419,3924,7.845,7797,9.415,16606,10.587,16607,8.493,16608,8.493,16609,8.493,16610,10.343,16611,8.493,16612,8.493]],["title/injectables/ReferenceLoader.html",[105,0.89,1964,5.438]],["body/injectables/ReferenceLoader.html",[0,0.178,3,0.014,4,0.014,5,0.007,7,0.08,8,0.932,26,2.442,27,0.449,29,0.804,30,0.001,31,0.568,32,0.164,33,0.506,35,1.108,36,2.202,39,1.401,49,3.578,95,0.15,99,0.887,101,0.01,103,0,104,0,105,1.018,107,1.251,111,2.664,112,2.538,127,0.975,144,1.429,165,0.609,187,0.749,200,1.703,208,1.94,216,2.34,217,1.21,221,2.163,227,0.967,234,1.489,305,1.504,329,1.54,334,0.576,347,1.065,359,3.748,369,2.24,441,7.135,450,2.15,461,2.115,1632,7.523,1854,4.501,1939,4.455,1940,3.311,1956,9.383,1958,7.324,1962,7.713,1964,6.222,1966,8.902,1968,9.126,1970,8.36,1973,8.073,2016,7.13,2027,7.623,2029,6.742,2092,2.958,2475,4.37,2570,7.163,3115,7.832,3218,3.458,3331,5.681,3397,3.458,4628,6.069,5283,7.671,5627,9.682,5704,4.083,5985,3.513,6539,3.972,11631,8.851,11632,4.829,11633,7.13,11634,4.829,11635,3.972,11636,7.397,11637,8.476,11638,4.829,11639,4.829,11640,4.829,11641,4.829,11642,4.829,11643,4.829,11644,4.829,11645,4.829,11646,4.829,11647,4.829,11648,4.829,11649,4.829,11650,4.829,11651,4.829,11652,4.829,11653,4.829,11654,4.829,11655,4.829,11656,4.829,11657,4.829,11658,4.829,11659,4.829,11660,7.13,11661,4.829,11662,4.829,11663,8.476,11664,7.13,11665,4.829,11666,4.829,11667,4.829,11668,7.13,16613,7.718,16614,4.566,16615,7.718,16616,5.227,16617,5.227,16618,5.227,16619,5.227]],["title/interfaces/RejectRequestBody.html",[334,0.743,10869,5.27]],["body/interfaces/RejectRequestBody.html",[3,0.025,4,0.025,5,0.013,7,0.143,30,0.001,32,0.185,33,0.696,47,1.024,55,2.717,101,0.018,103,0.001,104,0.001,165,0.901,204,4.416,334,1.027,336,2.271,337,6.371,340,7.512,1997,10.055,5373,10.761,5374,10.761,5375,10.055,10869,8.921,16620,9.319]],["title/classes/RenameBodyParams.html",[0,0.23,2950,5.438]],["body/classes/RenameBodyParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,47,0.853,95,0.161,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,3.841,369,2.591,370,3.91,371,2.68,374,3.107,376,2.281,467,3.15,469,4.29,470,4.938,1474,4.27,2950,9.447,6918,8.686,16621,9.724,16622,9.724,16623,9.724,16624,9.724]],["title/classes/RenameFileParams.html",[0,0.23,6136,4.611]],["body/classes/RenameFileParams.html",[0,0.455,2,0.758,3,0.017,4,0.024,5,0.013,7,0.101,26,2.552,27,0.274,30,0.001,32,0.166,39,1.769,47,0.981,95,0.157,99,1.12,101,0.025,103,0.001,104,0.001,150,2.42,165,0.719,204,2.264,334,0.727,347,1.858,364,1.223,369,1.459,373,4.813,374,2.108,375,4.571,376,1.548,377,5.94,379,1.521,380,1.38,467,3.709,469,2.911,470,5.152,471,4.794,565,3.483,1000,5.229,1001,6.714,1031,3.348,1044,3.239,1291,2.808,1381,3.848,2744,4.658,2915,5.514,3574,3.218,4227,2.272,5740,6.826,6064,4.181,6077,5.94,6083,6.203,6111,3.283,6114,4.511,6115,4.593,6116,4.593,6119,7.704,6122,8.089,6123,7.703,6124,7.843,6125,4.593,6126,4.511,6127,7.822,6128,4.511,6129,4.593,6130,4.238,6131,6.031,6132,4.365,6133,4.593,6134,4.593,6135,4.435,6136,6.233,6137,4.435,6138,4.435,6139,4.238,6140,4.593,6141,4.511,6142,4.593,6143,4.435,6144,4.511,6145,4.299,6146,4.299,6147,4.593,16625,6.599,16626,6.599]],["title/classes/RequestInfo.html",[0,0.23,16627,5.893]],["body/classes/RequestInfo.html",[0,0.311,2,0.762,3,0.018,4,0.018,5,0.009,7,0.102,8,1.105,27,0.508,29,0.726,30,0.001,31,0.587,32,0.172,33,0.457,35,0.801,47,0.931,55,2.013,95,0.134,101,0.02,103,0.001,104,0.001,111,2.095,127,0.838,138,2.879,144,1.813,145,1.712,165,0.722,167,2.532,217,1.655,227,0.964,234,1.7,235,6.705,238,5.667,329,1.954,359,2.3,367,5.895,576,5.392,1016,4.374,1062,2.894,1293,4.457,1313,5.18,1491,3.79,1773,4.259,1841,4.805,1848,7.589,2622,6.492,3544,3.799,3948,5.039,5375,7.147,5391,5.039,5401,5.039,6489,7.04,6491,3.952,9935,6.78,16248,5.793,16627,7.992,16628,6.126,16629,9.675,16630,9.675,16631,9.148,16632,8.451,16633,6.631,16634,6.631,16635,6.631,16636,6.631,16637,6.631,16638,8.451,16639,6.631,16640,10.943,16641,5.793,16642,6.126,16643,8.451,16644,5.544,16645,5.793,16646,8.451,16647,8.451,16648,6.126,16649,8.451,16650,6.126,16651,5.793,16652,6.126,16653,6.126,16654,8.451,16655,8.451,16656,8.451,16657,8.451,16658,6.126,16659,6.126,16660,6.126,16661,6.126,16662,6.126,16663,6.126,16664,6.126,16665,6.126,16666,6.126,16667,6.126,16668,6.126,16669,6.126,16670,6.126,16671,6.126,16672,6.126,16673,6.126,16674,6.126,16675,6.126]],["title/injectables/RequestLoggingInterceptor.html",[105,0.89,16676,6.231]],["body/injectables/RequestLoggingInterceptor.html",[0,0.267,3,0.021,4,0.021,5,0.011,7,0.121,8,1.237,27,0.425,29,0.813,30,0.001,31,0.574,32,0.144,33,0.512,35,0.948,39,2.104,95,0.165,101,0.015,103,0.001,104,0.001,105,1.351,107,1.878,127,0.992,145,2.025,150,2.878,185,3.073,187,1.124,199,2.996,204,2.692,214,2.583,215,2.54,217,1.504,227,1.079,235,4.441,367,5.489,491,5.028,513,4.017,529,3.461,731,4.465,1052,4.175,1053,5.361,1062,3.425,1268,5.039,1269,6.13,1270,5.962,1459,6.775,1545,2.507,2333,8.452,2993,5.191,3710,4.729,6332,5.816,6491,4.676,8012,7.249,8014,8.948,8016,8.948,8017,10.56,8018,10.56,8020,8.948,8021,9.462,9935,5.816,11530,8.948,16645,6.855,16676,9.462,16677,11.403,16678,7.847,16679,7.847,16680,9.462,16681,7.249,16682,7.847,16683,7.847,16684,7.847,16685,7.847,16686,7.847,16687,7.847,16688,7.249,16689,10.243,16690,7.249,16691,7.847]],["title/classes/ResolvedUserMapper.html",[0,0.23,16692,5.893]],["body/classes/ResolvedUserMapper.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,8,1.303,27,0.353,29,0.675,30,0.001,31,0.605,32,0.119,33,0.425,34,1.461,35,1.028,47,0.863,95,0.138,99,1.444,100,3.613,101,0.016,103,0.001,104,0.001,144,2.326,217,1.122,227,1.137,234,1.381,329,2.508,461,2.964,496,5.251,627,3.69,738,4.913,975,6.168,982,4.264,1130,6.861,1916,6.037,3110,5.741,4539,6.649,6931,7.435,6945,6.861,12406,7.862,12409,7.862,13139,6.308,13140,6.167,14913,7.862,15946,7.435,16692,9.428,16693,10.792,16694,9.428,16695,8.511,16696,10.419,16697,8.511,16698,8.511,16699,8.511,16700,8.511,16701,8.511,16702,8.511,16703,8.511]],["title/classes/ResolvedUserResponse.html",[0,0.23,16696,5.64]],["body/classes/ResolvedUserResponse.html",[0,0.27,2,0.91,3,0.021,4,0.021,5,0.011,7,0.122,27,0.553,30,0.001,32,0.189,34,1.966,47,0.989,83,3.651,95,0.132,101,0.02,103,0.001,104,0.001,165,0.813,214,3.393,364,2.468,376,1.859,467,3.773,496,4.827,591,4.9,592,5.054,851,5.624,852,5.624,1916,5.55,3110,5.55,4227,3.945,11383,8.31,11384,9.236,12358,6.625,16681,7.32,16696,8.618,16704,13.457,16705,7.924,16706,7.924,16707,7.924,16708,7.924,16709,7.924,16710,7.924,16711,7.924,16712,7.924]],["title/classes/ResponseInfo.html",[0,0.23,16651,5.893]],["body/classes/ResponseInfo.html",[0,0.327,2,0.82,3,0.019,4,0.019,5,0.01,7,0.11,27,0.399,29,0.566,30,0.001,31,0.539,32,0.135,33,0.357,47,0.848,55,2.393,95,0.139,101,0.021,103,0.001,104,0.001,111,1.428,127,0.902,145,1.842,165,0.759,167,2.725,217,1.688,227,1.014,234,1.765,235,6.157,238,3.862,359,2.475,367,5.604,576,5.669,1016,4.646,1062,3.115,1293,7.312,1313,5.575,1491,4.079,1773,4.583,1841,5.171,1848,7.825,2622,6.826,3544,3.994,3948,5.423,5375,7.514,5391,5.423,5401,5.423,6489,7.825,6491,4.253,9935,5.29,16248,6.235,16627,6.235,16628,6.593,16629,6.593,16630,6.593,16632,6.593,16638,6.593,16640,10.755,16641,6.235,16642,6.593,16643,8.885,16644,5.967,16645,6.235,16646,8.885,16647,8.885,16648,6.593,16649,8.885,16650,6.593,16651,8.402,16652,8.885,16653,6.593,16654,8.885,16655,8.885,16656,8.885,16657,8.885,16658,6.593,16659,6.593,16660,6.593,16661,6.593,16662,6.593,16663,6.593,16664,6.593,16665,6.593,16666,6.593,16667,6.593,16668,6.593,16669,6.593,16670,6.593,16671,6.593,16672,6.593,16673,6.593,16674,6.593,16675,6.593,16713,9.618]],["title/injectables/RestartUserLoginMigrationUc.html",[105,0.89,16714,5.64]],["body/injectables/RestartUserLoginMigrationUc.html",[0,0.221,3,0.017,4,0.017,5,0.009,7,0.1,8,1.089,27,0.43,29,0.822,30,0.001,31,0.581,32,0.145,33,0.518,35,1.089,36,2.432,39,2.417,47,0.978,52,3.012,95,0.163,99,1.102,101,0.012,103,0.001,104,0.001,105,1.189,107,1.554,111,2.238,112,2.729,127,1.139,129,6.907,132,6.651,167,2.479,189,5.054,191,3.606,192,3.088,199,3.442,204,2.227,216,2.069,217,1.366,221,2.771,227,0.684,234,1.463,305,2.594,355,5.004,461,2.876,766,2.79,795,3.827,843,2.834,1052,5.086,1542,3.03,1545,2.074,1555,4.058,1862,4.963,1868,4.112,1952,6.695,2014,6.682,2767,2.927,3769,7.042,3810,5.072,3830,4.112,3832,4.364,4227,4.448,4442,4.936,4444,5.233,4447,5.233,4448,8.634,4455,5.789,4457,6.744,4458,4.812,4459,7.042,4460,4.933,4461,5.072,4462,5.428,4464,7.042,4466,5.428,4467,4.812,4474,4.933,4475,5.428,8599,5.072,13636,5.233,16714,7.537,16715,11.189,16716,7.875,16717,6.492,16718,6.492,16719,9.015,16720,6.492,16721,5.428,16722,6.492,16723,6.492,16724,5.997,16725,5.671,16726,5.997,16727,5.671]],["title/classes/RevokeConsentParams.html",[0,0.23,15509,5.893]],["body/classes/RevokeConsentParams.html",[0,0.395,2,1.101,3,0.025,4,0.025,5,0.014,7,0.147,27,0.398,30,0.001,32,0.134,34,1.994,47,0.846,95,0.149,101,0.018,103,0.001,104,0.001,165,0.917,361,6.396,364,1.777,368,4.589,369,2.568,370,3.876,371,3.202,374,3.062,376,2.248,379,2.209,467,3.123,470,4.895,479,7.105,3544,5.528,5378,7.809,15509,10.149,16728,11.618,16729,9.585,16730,9.585]],["title/classes/RichText.html",[0,0.23,16731,5.438]],["body/classes/RichText.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,27,0.492,29,0.675,30,0.001,31,0.477,32,0.191,33,0.425,47,0.786,95,0.152,101,0.016,103,0.001,104,0.001,127,1.364,165,0.852,364,2.001,376,1.996,379,2.488,467,3.186,565,5.697,966,4.357,1013,4.949,1031,3.459,2309,6.644,2344,5.431,2594,5.497,2621,4.02,2879,9.237,2880,5.961,3242,6.844,3415,5.466,5575,7.862,11960,7.116,16731,10.367,16732,12.462,16733,8.511,16734,8.511,16735,8.511,16736,8.511,16737,8.511,16738,8.511,16739,8.511]],["title/classes/RichTextContentBody.html",[0,0.23,5542,4.611]],["body/classes/RichTextContentBody.html",[0,0.449,2,0.78,3,0.018,4,0.018,5,0.01,7,0.104,9,3.247,27,0.386,30,0.001,31,0.594,32,0.191,47,0.772,83,2.043,95,0.146,99,1.152,101,0.025,103,0.001,104,0.001,144,2.898,163,2.141,165,0.734,240,2.127,364,1.723,369,1.501,374,2.169,376,1.592,379,1.565,404,1.917,467,3.636,470,4.467,524,4.001,999,6.248,1031,2.176,1044,3.332,2344,4.382,2594,5.03,2627,4.817,2880,5.071,2915,3.583,3239,4.243,3242,6.564,3245,3.583,3774,6.582,4040,4.64,4071,4.64,4072,7.013,5504,7.248,5506,7.248,5508,7.248,5541,7.248,5542,7.248,5543,6.355,5739,4.49,5740,6.895,6850,4.817,8027,8.655,8028,7.858,8029,5.031,8032,7.524,8033,5.031,8034,8.092,8035,7.524,8036,5.031,8037,4.817,8038,4.817,8039,4.817,8040,4.817,8041,5.031,8042,5.031,8043,5.031,16740,6.788,16741,6.788,16742,6.788]],["title/classes/RichTextElement.html",[0,0.23,2867,4.332]],["body/classes/RichTextElement.html",[0,0.214,2,0.723,3,0.017,4,0.017,5,0.009,7,0.097,8,1.066,27,0.55,29,0.982,30,0.001,31,0.694,32,0.18,33,0.618,35,1.55,36,1.919,47,0.847,55,1.942,59,1.955,95,0.131,101,0.017,103,0.001,104,0.001,112,2.286,116,2.857,144,3.018,148,3.729,165,0.697,208,2.338,221,1.485,227,1.074,334,0.694,347,2.077,363,5.669,371,1.736,404,1.842,595,3.039,596,3.835,661,3.719,692,3.289,728,3.457,884,4.17,1857,3.775,1860,6.741,1984,2.694,2586,3.325,2598,6.125,2791,8.129,2794,6.542,2795,6.542,2796,6.542,2797,7.837,2798,6.542,2800,4.306,2801,5.669,2802,6.656,2804,6.542,2805,5.669,2806,6.734,2808,4.564,2809,4.66,2811,6.37,2812,4.564,2816,4.564,2818,4.306,2844,5.591,2867,5.669,2880,6.138,3242,6.919,3984,4.786,3985,4.786,3986,4.786,3995,4.167,4692,5.819,9517,4.921,16743,10.74,16744,6.299,16745,6.299,16746,6.299,16747,5.819,16748,6.299,16749,5.819,16750,6.299,16751,6.299,16752,6.299,16753,6.299,16754,8.154,16755,5.819,16756,8.154,16757,5.819,16758,5.819,16759,5.819,16760,5.503]],["title/classes/RichTextElementContent.html",[0,0.23,16761,5.64]],["body/classes/RichTextElementContent.html",[0,0.356,2,0.932,3,0.022,4,0.022,5,0.011,7,0.125,27,0.481,29,0.644,30,0.001,31,0.455,32,0.182,33,0.406,34,1.989,47,0.844,95,0.149,99,1.377,101,0.02,103,0.001,104,0.001,127,1.464,165,0.826,364,1.941,376,1.904,467,3.634,475,4.066,618,3.453,966,4.155,1031,2.601,2344,4.79,2621,3.834,2880,6.465,2910,4.429,2911,4.429,2915,4.284,3242,7.119,3403,6.167,3415,5.212,3658,7.341,3662,6.462,3666,5.759,3668,5.759,3774,6.69,4045,8.179,5506,5.548,9532,7.09,16761,10.85,16762,11.311,16763,8.116,16764,8.116,16765,6.786,16766,6.786]],["title/classes/RichTextElementContentBody.html",[0,0.23,8034,4.787]],["body/classes/RichTextElementContentBody.html",[0,0.449,2,0.776,3,0.018,4,0.018,5,0.01,7,0.104,9,3.23,27,0.385,30,0.001,31,0.593,32,0.192,47,0.675,83,2.032,95,0.146,99,1.146,101,0.025,103,0.001,104,0.001,144,2.89,145,1.743,163,2.13,165,0.731,240,2.116,364,1.717,369,1.493,374,2.158,376,1.584,379,1.557,404,2.057,467,3.633,470,4.455,524,3.981,596,2.051,999,6.227,1011,3.594,1031,2.165,1044,3.315,2344,4.928,2594,4.664,2880,3.23,2915,3.565,3239,4.222,3242,5.627,3245,3.565,3774,6.568,4040,4.617,4071,4.617,4072,6.995,5504,7.229,5506,7.779,5508,7.229,5541,7.229,5542,7.229,5543,6.333,5739,4.467,5740,6.883,6850,4.793,8027,9.139,8028,6.866,8029,5.006,8032,7.504,8033,5.006,8034,8.461,8035,7.504,8036,5.006,8037,4.793,8038,4.793,8039,4.793,8040,4.793,8041,5.006,8042,5.006,8043,5.006,9535,5.647,16767,6.754,16768,6.754]],["title/entities/RichTextElementNode.html",[380,1.411,3177,5.27]],["body/entities/RichTextElementNode.html",[0,0.285,3,0.022,4,0.022,5,0.012,7,0.129,27,0.443,30,0.001,32,0.15,47,0.856,95,0.164,96,2.262,101,0.02,103,0.001,104,0.001,165,0.843,208,3.106,217,1.104,227,0.882,240,4.009,334,0.922,364,1.979,380,2.234,381,2.755,398,2.451,404,1.93,405,2.256,617,4.831,1857,4.566,2586,4.418,2594,5.187,2598,5.427,2620,4.881,2621,3.953,2880,6.36,3144,5.729,3154,6.675,3177,8.341,3212,5.375,3234,9.328,3242,7.164,3562,6.857,3583,5.453,4090,5.625,4092,5.721,4093,5.625,16765,6.997,16766,6.997,16769,10.862,16770,8.369,16771,7.731,16772,9.328,16773,7.731,16774,7.731,16775,7.731]],["title/interfaces/RichTextElementNodeProps.html",[334,0.743,16772,5.893]],["body/interfaces/RichTextElementNodeProps.html",[0,0.291,3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,32,0.152,47,0.909,95,0.165,96,2.31,101,0.021,103,0.001,104,0.001,165,0.854,208,3.172,217,1.127,227,0.901,240,3.721,334,0.942,336,2.083,380,2.264,398,2.503,404,2.147,405,2.304,617,4.934,1857,4.628,2586,4.512,2594,3.77,2598,5.5,2620,4.985,2621,4.037,2880,6.292,3144,5.806,3154,6.765,3177,6.677,3212,5.489,3234,9.453,3242,7.316,3562,7.626,3583,5.569,4090,5.745,4092,5.843,4093,5.745,16765,7.146,16766,7.146,16769,7.895,16772,10.373,16773,7.895,16774,7.895,16775,7.895]],["title/interfaces/RichTextElementProps.html",[334,0.743,16760,5.893]],["body/interfaces/RichTextElementProps.html",[0,0.29,3,0.023,4,0.023,5,0.012,7,0.131,30,0.001,32,0.166,36,1.85,47,0.936,95,0.152,101,0.021,103,0.001,104,0.001,112,1.909,144,2.95,148,2.633,165,0.852,208,3.159,221,2.006,227,1.249,334,0.938,336,2.074,347,1.735,371,2.346,404,2.143,728,4.226,1984,3.64,2586,4.493,2791,6.836,2797,6.04,2801,5.466,2802,6.505,2805,5.466,2806,6.581,2844,7.507,2867,5.466,2880,6.285,3242,7.356,3995,5.63,9517,6.649,16743,7.862,16754,9.97,16755,7.862,16756,9.97,16757,7.862,16758,7.862,16759,7.862,16760,9.428]],["title/classes/RichTextElementResponse.html",[0,0.23,4045,5.27]],["body/classes/RichTextElementResponse.html",[0,0.343,2,0.881,3,0.02,4,0.02,5,0.011,7,0.118,27,0.517,29,0.608,30,0.001,31,0.43,32,0.189,33,0.383,34,2.136,47,0.821,95,0.145,99,1.301,101,0.019,103,0.001,104,0.001,127,1.425,165,0.796,364,2.221,376,1.799,467,3.595,475,3.842,618,3.263,966,3.925,1031,2.458,2344,5.145,2621,3.622,2880,6.396,2909,5.154,2910,5.506,2911,5.506,2914,4.924,2915,5.326,3242,6.624,3403,5.826,3415,4.924,3658,7.884,3662,6.96,3666,5.441,3668,5.441,3774,7.185,4045,9.723,5506,6.897,16761,10.016,16762,11.805,16765,6.411,16766,6.411,16776,7.667,16777,7.667,16778,7.667,16779,7.667,16780,7.667]],["title/classes/RichTextElementResponseMapper.html",[0,0.23,5522,5.893]],["body/classes/RichTextElementResponseMapper.html",[0,0.256,2,0.864,3,0.02,4,0.02,5,0.011,7,0.116,8,1.203,27,0.494,29,0.79,30,0.001,31,0.559,32,0.167,33,0.498,34,1.291,35,1.349,95,0.152,99,1.277,100,2.519,101,0.014,103,0.001,104,0.001,111,2.235,116,2.435,165,0.786,214,3.279,217,0.992,227,1.177,234,1.93,347,2.031,591,3.218,627,3.958,806,3.17,974,4.644,975,5.694,1828,4.443,2092,4.259,2344,3.11,2588,8.727,2591,8.33,2592,8.33,2594,5.807,2595,8.032,2867,8.455,2880,6.202,3242,4.004,3658,4.766,3662,6.15,3671,6.573,3679,5.577,3774,4.343,4045,9.29,4046,6.951,4047,6.291,4814,6.951,5121,7.174,5506,5.144,5520,6.291,5522,11.327,9549,9.586,9553,6.291,9554,6.573,9555,6.573,16761,8.33,16781,12.37,16782,7.524,16783,7.524,16784,7.524,16785,11.171,16786,7.524]],["title/classes/RocketChatError.html",[0,0.23,1292,5.438]],["body/classes/RocketChatError.html",[0,0.19,2,0.396,3,0.009,4,0.009,5,0.005,7,0.053,27,0.337,29,0.274,30,0.001,31,0.5,32,0.141,33,0.172,34,1.53,36,2.806,39,3.372,47,1.013,51,4.008,55,1.784,72,2.626,83,1.683,87,3.485,95,0.104,101,0.015,103,0,104,0,105,0.738,111,2.516,112,2.896,116,4.002,127,0.707,148,1.068,165,0.441,187,0.494,204,2.42,216,1.035,217,1.38,221,2.249,227,1.374,234,1.446,305,2.564,334,0.777,347,1.945,351,4.404,359,1.197,369,0.763,404,1.011,461,1.626,535,3.816,543,4.063,564,2.076,692,1.286,701,1.206,720,1.867,728,2.762,731,4.35,839,1.62,853,1.754,874,3.969,953,4.595,1016,3.407,1035,2.402,1262,8.1,1263,7.184,1264,2.886,1265,4.821,1266,1.973,1267,6.163,1268,2.217,1269,2.696,1270,2.623,1271,4.37,1272,3.824,1273,4.37,1274,4.37,1275,4.37,1276,4.509,1277,1.78,1278,3.026,1279,2.886,1280,2.886,1281,2.886,1282,2.886,1283,2.886,1284,2.886,1285,2.501,1286,2.886,1287,2.886,1288,2.886,1289,2.217,1290,7.977,1291,1.469,1292,4.509,1293,4.74,1294,2.402,1295,1.992,1296,5.005,1297,4.677,1298,5.216,1299,5.154,1300,5.154,1301,5.453,1302,6.097,1303,7.769,1304,6.311,1305,5.896,1306,2.623,1307,2.886,1308,2.886,1309,2.402,1310,2.886,1311,2.886,1312,2.886,1313,2.696,1314,2.886,1315,5.509,1316,2.782,1317,2.886,1318,2.886,1319,2.886,1320,2.782,1321,2.886,1322,2.886,1323,2.886,1324,8.401,1325,2.886,1326,2.886,1327,1.363,1328,2.886,1329,2.886,1330,2.886,1331,2.886,1332,2.886,1333,2.886,1334,2.886,1335,2.886,1336,7.977,1337,7.977,1338,2.886,1339,2.886,1340,2.886,1341,2.886,1342,2.886,1343,2.886,1344,2.359,1345,2.886,1346,2.886,1347,2.886,1348,2.886,1349,2.886,1350,2.886,1351,2.886,1352,2.886,1353,2.886,1354,2.886,1355,2.886,1356,2.886,1357,2.886,1358,2.886,1359,4.25,1360,4.677,1361,2.886,1362,2.886,1363,2.886,1364,2.886,1365,2.886,1366,2.32,1367,2.886,1368,2.886,1369,2.886,1370,4.677,1371,2.886,1372,4.677,1373,4.677,1374,2.886,1375,2.886,1376,2.623,1377,5.896,1378,4.665,1379,4.251,1380,2.886,1381,3.262,1382,5.006,1383,4.25,1384,5.509,1385,5.896,1386,5.896,1387,5.896,1388,2.696,1389,2.886,1390,2.886,1391,2.886,1392,7.451,1393,5.896,1394,5.896,1395,5.896,1396,2.886,1397,4.677,1398,4.677,1399,2.886,1400,2.886,1401,2.886,1402,2.886,1403,2.886,1404,4.677,1405,4.37,2400,1.973,16787,5.593,16788,3.451,16789,3.451]],["title/interfaces/RocketChatGroupModel.html",[334,0.743,1276,5.438]],["body/interfaces/RocketChatGroupModel.html",[0,0.194,3,0.009,4,0.009,5,0.005,7,0.054,30,0.001,31,0.461,32,0.142,34,1.548,36,2.816,39,3.387,47,1.014,51,4.063,55,1.576,72,2.676,83,1.715,87,3.541,95,0.105,101,0.016,103,0,104,0,105,0.752,111,2.371,112,2.907,116,4.022,127,0.446,138,2.475,148,1.093,165,0.45,187,0.506,204,1.956,216,1.054,217,1.392,221,2.274,227,1.379,234,1.464,305,2.595,334,0.789,336,0.861,347,2.152,351,4.457,359,1.225,369,0.781,404,0.639,461,1.652,535,3.877,543,4.12,564,2.116,692,1.317,701,1.234,720,1.912,728,2.806,731,4.383,839,1.659,853,1.796,874,4.045,953,4.669,1016,2.936,1035,2.459,1262,8.179,1263,2.848,1264,2.954,1265,4.899,1266,2.019,1267,6.248,1268,2.269,1269,2.76,1270,2.685,1271,4.453,1272,3.897,1273,4.453,1274,4.453,1275,4.453,1276,5.776,1277,4.241,1278,3.084,1279,2.954,1280,2.954,1281,2.954,1282,2.954,1283,2.954,1284,2.954,1285,2.56,1286,2.954,1287,2.954,1288,2.954,1289,5.28,1290,7.541,1291,1.503,1292,2.848,1293,2.375,1294,2.459,1295,2.04,1296,2.507,1297,2.954,1298,5.255,1299,5.193,1300,5.193,1301,5.494,1302,6.14,1303,7.823,1304,6.379,1305,5.991,1306,2.685,1307,2.954,1308,2.954,1309,2.459,1310,2.954,1311,2.954,1312,2.954,1313,2.76,1314,2.954,1315,5.598,1316,2.848,1317,2.954,1318,2.954,1319,2.954,1320,2.848,1321,2.954,1322,2.954,1323,2.954,1324,8.482,1325,2.954,1326,2.954,1327,1.396,1328,2.954,1329,2.954,1330,2.954,1331,2.954,1332,2.954,1333,2.954,1334,2.954,1335,2.954,1336,8.063,1337,8.063,1338,2.954,1339,2.954,1340,2.954,1341,2.954,1342,2.954,1343,2.954,1344,2.415,1345,2.954,1346,2.954,1347,2.954,1348,2.954,1349,2.954,1350,2.954,1351,2.954,1352,2.954,1353,2.954,1354,2.954,1355,2.954,1356,2.954,1357,2.954,1358,2.954,1359,4.331,1360,4.766,1361,2.954,1362,2.954,1363,2.954,1364,2.954,1365,2.954,1366,2.375,1367,2.954,1368,2.954,1369,2.954,1370,4.766,1371,2.954,1372,4.766,1373,4.766,1374,2.954,1375,2.954,1376,2.685,1377,5.991,1378,4.74,1379,4.319,1380,2.954,1381,3.325,1382,5.075,1383,4.331,1384,5.598,1385,5.991,1386,5.991,1387,5.991,1388,2.76,1389,2.954,1390,2.954,1391,2.954,1392,7.541,1393,5.991,1394,5.991,1395,5.991,1396,2.954,1397,4.766,1398,4.766,1399,2.954,1400,2.954,1401,2.954,1402,2.954,1403,2.954,1404,4.766,1405,4.453]],["title/modules/RocketChatModule.html",[425,1.808,16790,5.438]],["body/modules/RocketChatModule.html",[0,0.315,3,0.025,4,0.025,5,0.013,8,1.118,27,0.384,29,0.734,30,0.001,31,0.519,32,0.13,33,0.462,35,1.118,95,0.158,101,0.018,103,0.001,104,0.001,187,1.326,227,0.975,425,3.3,427,3.421,432,3.421,433,3.49,449,3.721,627,3.541,701,3.972,836,5.342,1263,9.167,1266,5.289,1271,10.031,1320,9.924,1408,6.706,1409,7.643,1412,8.143,1420,6.442,3956,7.643,16790,9.924,16791,9.255,16792,9.255,16793,8.085,16794,9.255,16795,9.255]],["title/interfaces/RocketChatOptions.html",[334,0.743,1271,5.27]],["body/interfaces/RocketChatOptions.html",[0,0.19,3,0.009,4,0.009,5,0.005,7,0.053,30,0.001,31,0.454,32,0.147,33,0.555,34,1.528,36,2.805,39,3.371,47,1.021,51,4.004,55,1.55,72,2.623,83,1.681,87,3.481,95,0.104,101,0.015,103,0,104,0,105,0.737,111,2.355,112,2.895,116,4.001,127,0.435,148,1.066,165,0.441,187,0.494,204,1.916,216,1.033,217,1.379,221,2.248,227,1.374,234,1.445,305,2.562,334,0.776,336,0.84,347,1.943,351,4.4,359,1.195,369,0.762,404,0.623,461,1.624,535,3.811,543,4.059,564,2.073,692,1.284,701,1.203,720,1.864,728,2.758,731,4.348,839,1.618,853,1.751,874,6.319,953,4.59,1016,2.893,1035,2.398,1262,8.094,1263,2.778,1264,2.881,1265,4.816,1266,1.969,1267,6.156,1268,2.213,1269,2.692,1270,2.618,1271,5.503,1272,6.087,1273,6.956,1274,6.956,1275,6.956,1276,4.503,1277,1.777,1278,3.022,1279,2.881,1280,2.881,1281,2.881,1282,2.881,1283,2.881,1284,2.881,1285,2.497,1286,2.881,1287,2.881,1288,2.881,1289,2.213,1290,7.445,1291,1.466,1292,2.778,1293,2.316,1294,2.398,1295,1.989,1296,2.445,1297,2.881,1298,5.213,1299,5.151,1300,5.151,1301,5.45,1302,6.094,1303,7.765,1304,6.306,1305,5.889,1306,2.618,1307,2.881,1308,2.881,1309,2.398,1310,2.881,1311,2.881,1312,2.881,1313,2.692,1314,2.881,1315,5.503,1316,2.778,1317,2.881,1318,2.881,1319,2.881,1320,2.778,1321,2.881,1322,2.881,1323,2.881,1324,8.395,1325,2.881,1326,2.881,1327,1.361,1328,2.881,1329,2.881,1330,2.881,1331,2.881,1332,2.881,1333,2.881,1334,2.881,1335,2.881,1336,7.971,1337,7.971,1338,2.881,1339,2.881,1340,2.881,1341,2.881,1342,2.881,1343,2.881,1344,2.355,1345,2.881,1346,2.881,1347,2.881,1348,2.881,1349,2.881,1350,2.881,1351,2.881,1352,2.881,1353,2.881,1354,2.881,1355,2.881,1356,2.881,1357,2.881,1358,2.881,1359,4.244,1360,4.67,1361,2.881,1362,2.881,1363,2.881,1364,2.881,1365,2.881,1366,2.316,1367,2.881,1368,2.881,1369,2.881,1370,4.67,1371,2.881,1372,4.67,1373,4.67,1374,2.881,1375,2.881,1376,2.618,1377,5.889,1378,4.66,1379,4.246,1380,2.881,1381,3.258,1382,5.001,1383,4.244,1384,5.503,1385,5.889,1386,5.889,1387,5.889,1388,2.692,1389,2.881,1390,2.881,1391,2.881,1392,7.445,1393,5.889,1394,5.889,1395,5.889,1396,2.881,1397,4.67,1398,4.67,1399,2.881,1400,2.881,1401,2.881,1402,2.881,1403,2.881,1404,4.67,1405,4.364]],["title/entities/Role.html",[380,1.411,496,2.842]],["body/entities/Role.html",[0,0.263,3,0.02,4,0.02,5,0.011,7,0.119,27,0.47,30,0.001,31,0.674,32,0.142,47,0.738,95,0.145,96,2.089,101,0.019,103,0.001,104,0.001,116,2.501,144,2.771,165,0.8,217,1.493,227,0.814,234,1.95,240,3.765,305,2.223,329,2.987,334,1.117,364,2.098,380,2.368,381,2.543,394,5.795,398,2.263,399,3.97,400,3.39,402,3.179,404,1.397,405,2.083,406,2.468,496,5.257,843,5.245,1019,4.506,1910,3.65,1916,6.322,2136,3.093,2678,5.533,2682,5.533,3110,6.045,4083,4.554,4303,3.39,4538,6.801,7006,6.228,8713,6.749,9620,7.515,9650,7.921,11669,8.857,11670,7.137,11671,6.46,11672,6.228,11673,6.46,11674,6.228,11675,7.137,11676,6.46,11677,7.137,11678,9.367,11679,7.137,11680,8.477,11681,6.228,16796,7.726,16797,7.726,16798,7.726,16799,7.726]],["title/classes/RoleDto.html",[0,0.23,4507,4.888]],["body/classes/RoleDto.html",[0,0.313,2,1.056,3,0.024,4,0.024,5,0.013,7,0.141,26,2.561,27,0.532,29,0.729,30,0.001,31,0.718,32,0.18,33,0.657,34,2.106,95,0.118,99,1.56,101,0.018,103,0.001,104,0.001,127,1.161,165,0.894,405,3.052,595,3.165,618,3.911,619,5.253,843,5.357,1916,5.945,2136,3.679,4303,4.033,4507,9.532,4538,6.946,9620,6.812,9650,7.18,16800,9.191,16801,11.324,16802,9.191,16803,9.191]],["title/classes/RoleMapper.html",[0,0.23,16804,5.893]],["body/classes/RoleMapper.html",[0,0.306,2,1.034,3,0.024,4,0.024,5,0.013,7,0.138,8,1.35,27,0.464,29,0.887,30,0.001,31,0.682,32,0.157,33,0.559,34,1.546,35,1.35,95,0.143,99,1.528,101,0.017,103,0.001,104,0.001,227,1.179,234,1.462,380,1.884,496,5.694,627,4.15,1916,4.363,4355,5.784,4356,7.036,4507,9.658,4518,7.036,16804,9.768,16805,9.006,16806,9.768,16807,9.349,16808,11.182,16809,9.006,16810,9.006,16811,9.349,16812,9.006,16813,9.006,16814,9.006,16815,7.868]],["title/modules/RoleModule.html",[425,1.808,1625,5.126]],["body/modules/RoleModule.html",[0,0.297,3,0.023,4,0.023,5,0.012,30,0.001,95,0.161,101,0.017,103,0.001,104,0.001,187,1.251,425,3.215,427,3.228,428,3.405,429,3.511,430,3.495,431,3.464,432,4.433,433,4.523,442,4.41,443,3.434,444,3.348,450,3.592,1625,10.64,4621,10.596,4644,7.301,16816,8.732,16817,8.732,16818,8.732,16819,11.659,16820,12.181,16821,8.732,16822,8.732]],["title/classes/RoleNameMapper.html",[0,0.23,12389,5.893]],["body/classes/RoleNameMapper.html",[0,0.285,2,0.961,3,0.022,4,0.022,5,0.012,7,0.129,8,1.29,27,0.443,29,0.847,30,0.001,31,0.695,32,0.15,33,0.534,35,1.29,95,0.137,99,1.42,101,0.016,103,0.001,104,0.001,227,1.379,305,3.072,496,4.499,529,3.692,627,4.074,975,6.102,982,4.193,2485,3.616,4442,5.187,4538,7.694,10345,11.442,11451,10.221,11452,8.341,11453,8.113,11454,8.113,12363,8.935,12389,9.328,12440,8.341,16823,11.759,16824,8.369,16825,9.864,16826,10.678,16827,8.369,16828,10.678,16829,8.369,16830,7.731,16831,7.731,16832,7.731,16833,8.369,16834,8.369,16835,8.369]],["title/classes/RoleReference.html",[0,0.23,6942,4.787]],["body/classes/RoleReference.html",[0,0.319,2,1.078,3,0.025,4,0.025,5,0.013,7,0.144,26,2.585,27,0.514,29,0.744,30,0.001,31,0.723,32,0.174,33,0.469,34,2.126,95,0.147,101,0.018,103,0.001,104,0.001,127,1.186,165,0.905,208,3.483,334,1.034,405,3.092,595,3.231,618,3.993,619,5.363,2136,3.756,3416,8.198,4303,4.118,4538,7.01,6942,9.391,16836,12.902,16837,11.469,16838,9.384]],["title/injectables/RoleRepo.html",[105,0.89,16819,5.64]],["body/injectables/RoleRepo.html",[0,0.21,3,0.016,4,0.016,5,0.009,7,0.095,8,1.052,10,3.519,12,4.018,18,4.305,26,2.286,27,0.53,29,0.976,30,0.001,31,0.726,32,0.176,33,0.615,34,1.731,35,1.487,36,3.015,40,4.193,47,0.735,55,1.36,95,0.129,99,1.049,101,0.012,103,0.001,104,0.001,105,1.149,107,1.48,112,3.044,144,1.69,165,0.688,187,0.886,217,1.444,227,1.217,329,1.822,380,1.293,381,2.868,404,1.575,496,3.671,596,3.326,692,4.88,770,5.135,877,7.179,883,3.653,884,4.115,885,5.019,908,3.77,909,5.378,910,3.77,911,3.817,913,3.77,914,3.817,915,3.404,3275,7.284,3292,7.611,3639,4.227,3911,8.556,4538,6.967,4960,5.519,8768,7.284,8776,7.284,16819,7.284,16839,6.183,16840,9.319,16841,7.611,16842,6.183,16843,6.183,16844,7.611,16845,6.183,16846,8.048,16847,6.183,16848,6.183,16849,8.712,16850,10.118,16851,8.712]],["title/injectables/RoleService.html",[105,0.89,4621,5.126]],["body/injectables/RoleService.html",[0,0.247,3,0.019,4,0.019,5,0.01,7,0.111,8,1.174,12,4.484,26,2.681,27,0.507,29,0.93,30,0.001,31,0.657,32,0.164,33,0.586,34,1.245,35,1.415,36,2.838,40,4.68,95,0.157,99,1.231,101,0.014,103,0.001,104,0.001,105,1.282,107,1.736,112,3.045,127,0.916,187,1.039,215,2.348,216,1.341,217,1.694,221,2.763,227,1.235,380,1.517,381,2.387,450,2.984,496,4.937,770,4.275,3110,3.514,3275,8.129,3292,8.494,4507,9.31,4538,6.632,4621,7.388,4960,4.594,11453,5.511,16804,6.336,16819,10.517,16841,8.494,16844,8.494,16852,7.253,16853,11.718,16854,7.253,16855,7.253,16856,7.253,16857,7.253,16858,7.253,16859,7.253,16860,7.253,16861,7.253,16862,12.579,16863,7.253,16864,7.253,16865,7.253,16866,7.253,16867,7.253,16868,7.253,16869,7.253]],["title/injectables/RoleUc.html",[105,0.89,16820,5.893]],["body/injectables/RoleUc.html",[0,0.309,3,0.024,4,0.024,5,0.013,7,0.139,8,1.356,27,0.466,29,0.891,30,0.001,31,0.63,32,0.157,33,0.561,35,1.095,36,2.848,95,0.163,99,1.539,101,0.017,103,0.001,104,0.001,105,1.481,107,2.17,112,2.736,127,1.146,187,1.299,215,2.935,216,1.677,217,1.196,227,0.956,4507,6.57,4518,7.083,4538,7.216,4621,10.145,4644,7.581,4960,5.743,16820,9.809,16841,9.809,16844,9.809,16870,9.067,16871,9.067,16872,9.067,16873,9.067,16874,9.067]],["title/injectables/RoomBoardDTOFactory.html",[105,0.89,8006,5.438]],["body/injectables/RoomBoardDTOFactory.html",[0,0.239,3,0.012,4,0.012,5,0.007,7,0.071,8,0.849,27,0.292,29,0.558,30,0.001,31,0.477,32,0.166,33,0.351,34,1.207,35,0.557,95,0.144,99,0.783,100,3.187,101,0.009,103,0.001,104,0,105,0.927,107,1.105,111,2.459,127,1.076,138,3.053,187,0.661,188,3.605,216,1.3,217,1.768,227,1.33,234,1.141,347,1.433,369,1.554,371,1.938,461,2.833,564,4.007,591,3.006,592,3.101,806,1.945,843,2.015,1041,3.905,1344,3.155,1474,2.387,1828,5.005,1865,3.682,1866,2.612,1881,2.924,1952,5.792,1984,5.451,2171,1.984,2172,2.207,2173,2.129,2344,4.462,2594,2.036,2689,4.425,2691,4.496,2693,7.822,2696,5.492,2698,6.17,2701,2.129,2709,8.567,2777,3.606,2778,3.007,3022,3.507,3050,8.951,3051,5.878,3055,5.878,3408,3.859,3418,3.213,3419,2.849,3422,3.859,3715,2.885,3733,5.633,3803,3.721,3804,3.606,3898,2.519,4533,5.132,4927,4.032,4988,3.721,6260,5.633,6789,3.859,7276,8.32,7430,3.275,7570,4.032,7910,6.141,7911,7.866,7912,4.264,7913,9.806,7914,9.957,7918,4.264,7919,4.264,7929,4.264,7930,9.973,7932,8.567,7933,4.264,7935,4.264,7940,4.264,7942,4.264,7944,4.264,7946,4.264,7948,3.344,7949,6.141,7950,6.141,7951,4.264,7952,4.264,7953,4.032,7954,6.494,7955,4.264,7956,6.494,7957,6.494,7958,4.264,7959,4.264,7960,4.264,7961,4.264,7962,4.264,7963,4.264,7964,4.264,7965,4.264,7966,4.264,7967,4.264,7968,6.494,7969,4.032,7970,4.264,7971,4.264,7972,4.264,7973,4.264,7974,7.866,7975,4.264,7976,4.264,7977,4.264,7978,4.032,7979,4.032,7980,6.494,7981,4.264,7982,4.264,7983,4.032,7984,4.032,7985,3.859,7986,4.032,7987,4.032,7988,4.264,7989,4.264,7990,4.264,7991,4.264,7992,4.264,7993,4.264,7994,4.032,7995,4.264,7996,4.264,7997,4.264,7998,4.264,7999,4.264,8000,4.264,8001,4.264,8002,4.264,8003,4.264,8004,3.859,8005,4.264,8006,5.667,8007,7.866,8008,4.264,8009,4.264,16875,4.615,16876,4.615,16877,4.615,16878,4.615]],["title/injectables/RoomBoardResponseMapper.html",[105,0.89,13374,5.64]],["body/injectables/RoomBoardResponseMapper.html",[0,0.19,3,0.015,4,0.015,5,0.008,7,0.086,8,0.979,27,0.461,29,0.443,30,0.001,31,0.535,32,0.147,33,0.279,34,1.637,35,0.675,95,0.148,99,0.949,101,0.011,103,0,104,0,105,1.069,107,1.338,111,2.595,144,2.859,165,0.64,187,0.801,188,3.07,208,2.075,217,1.727,227,1.171,234,1.939,329,3.082,564,3.009,591,4.079,592,4.207,974,3.451,975,4.633,982,2.801,1041,5.811,1344,3.822,1474,2.752,1984,5.335,2344,3.942,2691,2.453,2697,4.279,2701,2.578,2773,6.778,2775,4.367,2777,4.367,2778,3.642,3402,11.114,3405,6.778,3406,6.778,3408,4.674,3412,5.164,3418,3.891,3419,3.451,3420,5.164,3421,5.164,3422,4.674,3670,7.489,3674,4.883,3715,3.495,3729,4.883,4533,4.886,4988,4.506,7932,9.286,7948,6.911,7949,8.332,7950,8.332,7979,7.082,7983,7.082,7984,4.883,7985,4.674,7986,4.883,7987,4.883,7994,7.082,8004,4.674,9005,5.164,13374,6.778,16879,11.583,16880,9.538,16881,9.538,16882,9.538,16883,9.538,16884,5.164,16885,8.747,16886,5.164,16887,5.59,16888,5.59,16889,5.59,16890,5.59,16891,5.59,16892,5.59,16893,5.59,16894,5.59,16895,5.59,16896,9.538,16897,5.59,16898,5.59,16899,5.59,16900,7.489,16901,5.59,16902,5.59,16903,5.59,16904,8.107,16905,5.59,16906,8.107,16907,5.59,16908,5.59,16909,5.59,16910,5.59,16911,5.59,16912,5.59,16913,5.59,16914,5.59,16915,5.59,16916,5.59,16917,5.59,16918,5.59,16919,5.59,16920,5.59,16921,5.59,16922,5.59,16923,8.107,16924,5.59,16925,5.59,16926,5.59,16927,5.59,16928,5.59,16929,8.107,16930,5.59,16931,5.59,16932,5.59,16933,5.59,16934,5.59,16935,5.59]],["title/classes/RoomElementUrlParams.html",[0,0.23,16936,5.893]],["body/classes/RoomElementUrlParams.html",[0,0.379,2,1.03,3,0.024,4,0.024,5,0.013,7,0.138,27,0.463,30,0.001,32,0.156,34,2.179,47,0.925,95,0.143,101,0.017,103,0.001,104,0.001,165,0.88,364,2.067,368,5.016,369,2.807,370,4.237,371,3.5,374,2.864,376,2.103,379,2.57,467,3.263,1000,5.19,1344,8.297,2594,4.919,3834,6.504,3872,7.623,4186,9.784,5595,8.283,5597,8.283,7276,9.412,16936,9.741,16937,12.137,16938,8.966]],["title/classes/RoomUrlParams.html",[0,0.23,16939,5.893]],["body/classes/RoomUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,1344,8.6,3834,5.672,7276,8.686,16939,10.238,16940,9.724,16941,9.724]],["title/injectables/RoomsAuthorisationService.html",[105,0.89,7914,5.27]],["body/injectables/RoomsAuthorisationService.html",[0,0.236,3,0.018,4,0.018,5,0.01,7,0.107,8,1.14,27,0.478,29,0.913,30,0.001,31,0.645,32,0.161,33,0.575,35,1.39,95,0.121,99,1.178,101,0.018,103,0.001,104,0.001,105,1.245,107,1.661,187,0.994,188,5.139,217,1.518,227,1.213,234,1.126,305,1.997,347,2.635,371,2.601,461,3.199,1031,2.224,1871,4.284,1872,4.591,1928,7.665,2488,4.744,2689,5.981,2691,5.574,2701,4.946,3218,4.591,4982,3.891,4994,3.966,7914,7.373,7985,5.802,11344,4.925,16942,6.94,16943,9.438,16944,9.438,16945,9.438,16946,9.438,16947,9.438,16948,6.94,16949,9.438,16950,6.94,16951,9.438,16952,6.94,16953,9.438,16954,6.94,16955,6.94,16956,9.438,16957,9.438,16958,6.94,16959,8.245,16960,6.94,16961,11.942,16962,6.94,16963,6.94,16964,6.94,16965,9.907,16966,9.438,16967,9.438,16968,8.718]],["title/controllers/RoomsController.html",[481,2.63,13377,5.893]],["body/controllers/RoomsController.html",[0,0.185,3,0.014,4,0.014,5,0.008,7,0.084,8,0.96,27,0.456,29,0.871,30,0.001,31,0.616,32,0.154,33,0.549,35,1.327,36,2.737,95,0.165,100,3.678,101,0.01,103,0,104,0,111,2.066,112,2.969,127,0.687,185,4.851,187,0.779,206,2.785,216,1.91,217,1.513,221,2.59,227,0.99,264,4.858,364,2.036,376,1.276,447,2.281,481,2.121,483,2.618,491,6.538,513,6.925,543,5.174,552,3.493,555,2.871,556,2.943,557,2.968,558,2.585,559,2.968,561,2.968,805,4.385,1984,3.398,2934,8.408,2955,3.078,2988,7.569,3013,5.257,3026,3.357,3027,3.108,3673,3.718,3710,6.621,4533,4.789,6042,4.249,6282,4.385,6287,8.634,6495,5.024,6517,7.85,6574,7.85,7280,5.024,11763,4.031,13373,7.85,13374,6.644,13375,7.85,13377,6.942,13383,5.024,13657,8.068,13664,5.024,16094,9.022,16099,9.022,16885,4.547,16936,9.022,16939,10.999,16969,5.439,16970,9.39,16971,9.39,16972,9.39,16973,5.439,16974,5.439,16975,5.439,16976,5.439,16977,5.439,16978,5.439,16979,5.439,16980,7.947,16981,5.439,16982,5.439,16983,7.947,16984,5.439,16985,5.439,16986,7.947,16987,5.439,16988,4.385,16989,7.341,16990,5.439,16991,5.439,16992,5.439,16993,5.439,16994,5.439,16995,5.439,16996,5.439,16997,7.947,16998,5.439,16999,5.439,17000,5.439,17001,5.439,17002,5.439,17003,6.942,17004,5.439,17005,6.942,17006,5.439,17007,5.439,17008,5.439]],["title/injectables/RoomsService.html",[105,0.89,6522,5.438]],["body/injectables/RoomsService.html",[0,0.228,3,0.018,4,0.018,5,0.009,7,0.103,8,1.112,26,2.747,27,0.437,29,0.835,30,0.001,31,0.59,32,0.159,33,0.526,34,1.15,35,1.112,36,2.464,39,2.822,95,0.161,99,1.137,101,0.013,103,0.001,104,0.001,105,1.215,107,1.603,111,2.564,112,2.756,127,1.164,187,0.959,216,2.199,217,1.66,221,2.967,227,0.971,247,2.657,347,1.365,369,1.481,450,2.755,1344,8.398,1962,8.082,1984,5.382,2171,2.879,2172,3.203,2173,3.089,2697,3.535,2698,6.674,2861,4.134,2913,4.964,2994,9.327,3031,5.399,3140,5.6,3536,9.831,3898,3.655,4736,6.187,4828,10.521,4837,6.187,4840,5.851,4941,9.334,4995,6.187,6522,7.425,7969,5.851,17009,6.697,17010,9.211,17011,9.211,17012,6.697,17013,6.697,17014,9.211,17015,6.697,17016,9.211,17017,6.697,17018,6.697,17019,9.211,17020,6.697,17021,9.211,17022,11.888,17023,6.697,17024,6.697,17025,6.697,17026,6.187,17027,6.697,17028,6.697,17029,6.697,17030,6.697,17031,6.697]],["title/injectables/RoomsUc.html",[105,0.89,13375,5.64]],["body/injectables/RoomsUc.html",[0,0.201,3,0.016,4,0.016,5,0.008,7,0.091,8,1.017,26,2.903,27,0.445,29,0.85,30,0.001,31,0.601,32,0.15,33,0.536,35,1.187,36,2.563,39,3.543,95,0.156,99,1,101,0.011,103,0.001,104,0.001,105,1.111,107,1.411,111,2.359,112,2.835,127,1.064,187,0.844,188,4.465,208,2.187,216,2.181,217,1.711,221,3.089,227,0.621,234,1.367,305,2.423,347,2.003,369,1.303,441,7.403,450,2.424,461,2.471,676,5.272,1344,7.751,1958,7.191,1984,4.849,2037,3.402,2594,2.6,2994,8.998,4000,5.264,4109,9.364,4186,7.92,6521,4.927,6522,9.786,6539,7.466,6735,6.398,7276,6.241,7913,8.583,7914,8.374,7932,8.215,7953,5.148,8006,8.641,13375,7.04,17026,7.779,17032,5.893,17033,8.421,17034,8.421,17035,9.825,17036,5.893,17037,8.421,17038,5.893,17039,8.421,17040,9.825,17041,5.893,17042,5.893,17043,5.893,17044,5.893,17045,5.893,17046,9.825,17047,5.893,17048,5.893,17049,5.893,17050,8.421,17051,7.779,17052,8.421,17053,5.893,17054,5.893,17055,5.893,17056,5.893]],["title/interfaces/RpcMessage.html",[334,0.743,10185,5.27]],["body/interfaces/RpcMessage.html",[3,0.026,4,0.026,5,0.014,7,0.152,30,0.001,32,0.166,33,0.592,55,2.176,101,0.023,103,0.001,104,0.001,165,0.934,204,4.607,334,1.304,336,2.41,404,1.788,564,3.671,692,4.722,1327,5.304,7907,6.885,8203,10.587,10185,9.25,11399,9.138,11400,9.138]],["title/interfaces/Rule.html",[334,0.743,1989,4.164]],["body/interfaces/Rule.html",[3,0.023,4,0.023,5,0.012,7,0.134,8,1.326,27,0.456,29,0.871,30,0.001,31,0.616,32,0.154,33,0.549,35,1.326,59,2.716,95,0.161,99,1.485,101,0.017,103,0.001,104,0.001,199,5.053,334,0.964,336,2.132,347,2.566,359,4.657,461,3.158,692,4.931,1854,5.104,1862,7.394,1887,5.402,1928,6.78,1939,5.052,1940,5.543,1941,6.21,1942,6.65,1989,6.78,2033,7.156,3352,7.383,3356,7.266,16290,7.645,17057,8.751,17058,8.751,17059,8.751]],["title/injectables/RuleManager.html",[105,0.89,1965,5.64]],["body/injectables/RuleManager.html",[0,0.203,3,0.016,4,0.016,5,0.008,7,0.092,8,1.026,27,0.447,29,0.785,30,0.001,31,0.555,32,0.151,33,0.494,35,1.026,95,0.16,99,1.012,101,0.011,103,0.001,104,0.001,105,1.12,107,1.427,111,2.726,116,3.201,127,1.073,165,0.67,187,0.854,199,4.115,200,1.943,208,2.213,216,2.483,217,1.12,227,0.895,234,1.378,247,2.366,305,2.443,355,2.345,359,3.95,461,2.625,905,2.476,1439,2.852,1854,6.285,1862,5.933,1939,6.221,1940,3.777,1941,4.232,1942,4.531,1954,10.185,1955,10.185,1957,9.82,1959,8.775,1961,9.01,1963,9.82,1965,7.1,1967,10.185,1969,10.185,1971,9.82,1972,10.185,1974,10.185,1975,10.185,1979,5.508,1989,7.933,3218,5.617,17060,11.39,17061,5.963,17062,8.687,17063,8.492,17064,8.492,17065,5.963,17066,9.89,17067,8.492,17068,8.492,17069,5.963,17070,8.492,17071,5.963,17072,5.963,17073,5.963,17074,5.963,17075,5.963,17076,5.963,17077,5.963,17078,5.963,17079,5.963,17080,5.963,17081,5.963,17082,5.963,17083,5.963,17084,5.963,17085,5.963,17086,5.963,17087,5.963,17088,5.963,17089,5.963,17090,5.963,17091,5.963,17092,5.963,17093,8.492,17094,5.963,17095,5.963]],["title/injectables/S3ClientAdapter.html",[105,0.89,10437,5.27]],["body/injectables/S3ClientAdapter.html",[0,0.105,3,0.008,4,0.008,5,0.015,7,0.047,8,0.616,10,3.06,27,0.455,29,0.823,30,0.001,31,0.582,32,0.15,33,0.519,34,0.529,35,1.253,36,2.175,47,0.937,59,0.956,72,1.447,95,0.128,101,0.006,103,0,104,0,105,0.672,107,0.738,111,1.914,112,2.857,116,4.145,127,0.644,144,0.842,148,0.953,154,2.972,163,2.646,165,0.402,185,3.919,187,0.441,199,2.892,204,1.057,216,0.943,217,1.68,221,2.736,227,1.181,234,1.911,247,1.222,305,2.987,329,0.908,334,0.339,359,1.069,483,1.483,535,3.527,543,1.544,576,6.841,731,3.286,770,1.816,784,5.917,806,1.298,839,1.447,883,3.176,1052,2.657,1053,3.36,1062,2.225,1158,5.692,1298,3.557,1299,3.515,1300,3.515,1301,3.719,1302,4.065,1303,5.179,1304,4.312,1306,2.341,1376,3.873,1439,3.118,1440,2.106,1441,2.284,1459,6.866,1461,8.368,1545,0.984,1650,2.692,1828,4.463,1841,2.233,1865,5.012,2076,4.43,2180,3.229,2412,5.093,2422,1.879,2563,4.075,2686,1.64,2726,4.709,2835,3.038,3058,2.284,3542,3.907,3543,1.512,3544,2.707,3852,2.106,4630,2.649,5279,4.453,5410,5.316,5562,3.548,6157,5.756,6158,8.756,6160,4.109,6161,4.109,6162,5.092,6163,5.011,6166,8.079,6169,2.284,6170,2.284,6171,2.284,6172,2.284,6617,2.284,7679,3.485,7785,7.476,7809,6.618,7819,4.262,7820,2.692,7821,4.109,9401,3.187,9485,2.692,9486,2.846,9935,7.093,9985,7.272,10402,5.918,10409,2.846,10437,3.982,11551,2.484,11827,3.693,16174,4.709,17096,10.354,17097,3.081,17098,6.519,17099,5.097,17100,7.576,17101,6.519,17102,5.097,17103,5.695,17104,3.081,17105,5.097,17106,5.097,17107,3.081,17108,5.097,17109,3.081,17110,5.097,17111,3.081,17112,3.081,17113,5.097,17114,3.081,17115,5.097,17116,3.081,17117,3.081,17118,5.097,17119,3.081,17120,5.097,17121,3.081,17122,7.576,17123,5.097,17124,3.081,17125,5.097,17126,5.097,17127,5.097,17128,5.097,17129,3.081,17130,6.022,17131,2.846,17132,3.081,17133,3.081,17134,3.081,17135,3.081,17136,3.081,17137,2.692,17138,11.606,17139,8.392,17140,3.081,17141,3.081,17142,3.081,17143,3.081,17144,3.081,17145,3.081,17146,3.081,17147,3.081,17148,5.097,17149,5.097,17150,5.097,17151,3.081,17152,3.081,17153,5.097,17154,3.081,17155,3.081,17156,3.081,17157,3.081,17158,3.081,17159,5.097,17160,5.097,17161,5.097,17162,5.097,17163,5.097,17164,3.081,17165,3.081,17166,3.081,17167,5.097,17168,3.081,17169,3.081,17170,3.081,17171,3.081,17172,3.081,17173,3.081,17174,3.081,17175,3.081,17176,3.081,17177,3.081,17178,3.081,17179,3.081,17180,6.519,17181,3.081,17182,5.097,17183,3.081,17184,3.081,17185,3.081,17186,3.081,17187,3.081,17188,3.081,17189,6.519,17190,3.081,17191,5.097,17192,3.081,17193,3.081,17194,3.081,17195,3.081,17196,3.081,17197,3.081]],["title/modules/S3ClientModule.html",[425,1.808,10257,5.126]],["body/modules/S3ClientModule.html",[0,0.274,3,0.021,4,0.021,5,0.011,8,0.972,27,0.334,29,0.639,30,0.001,31,0.451,32,0.113,33,0.402,35,0.972,95,0.162,101,0.015,103,0.001,104,0.001,154,5.264,187,1.153,217,1.61,227,1.098,234,1.69,334,0.887,369,2.302,425,3.095,427,2.976,432,4.268,433,3.036,438,4.92,449,3.237,627,3.243,836,4.647,837,5.967,839,3.78,1052,4.245,1053,5.743,1412,7.637,1545,2.572,2186,6.597,6158,8.136,6163,8.363,6165,7.25,6167,7.25,6168,7.25,7809,10.085,7819,6.731,7820,7.033,7821,8.396,7850,7.437,7852,7.437,7853,5.967,10163,7.437,10257,8.772,10437,6.289,12975,7.437,17096,9.621,17198,7.437,17199,10.415,17200,8.051,17201,8.051,17202,8.051,17203,8.051,17204,8.051,17205,8.051,17206,8.051]],["title/interfaces/S3Config.html",[334,0.743,6163,4.462]],["body/interfaces/S3Config.html",[3,0.025,4,0.025,5,0.013,7,0.147,30,0.001,32,0.186,47,1.036,101,0.018,103,0.001,104,0.001,165,0.914,334,1.051,336,2.325,2186,8.219,6163,7.663,6165,9.031,6166,9.031,6167,9.031,6168,9.031,10384,7.453,10385,7.249,17207,9.54]],["title/interfaces/S3Config-1.html",[334,0.618,905,2.329,6163,3.71]],["body/interfaces/S3Config-1.html",[3,0.023,4,0.023,5,0.015,7,0.132,30,0.001,31,0.48,32,0.185,47,1.044,55,1.884,95,0.11,101,0.024,103,0.001,104,0.001,163,3.417,165,0.855,334,1.376,336,2.087,1565,4.758,2186,7.912,5410,7.529,5562,5.962,6157,6.508,6158,6.691,6159,7.161,6160,6.905,6161,6.905,6162,5.757,6163,7.168,6164,9.758,6165,8.695,6166,8.695,6167,8.695,6168,8.695,6169,6.348,6170,6.348,6171,6.348,6172,6.348]],["title/classes/SSOLoginQuery.html",[0,0.23,15703,5.893]],["body/classes/SSOLoginQuery.html",[0,0.393,2,1.088,3,0.025,4,0.025,5,0.013,7,0.146,27,0.479,30,0.001,32,0.162,33,0.647,47,0.84,52,5.77,95,0.148,101,0.018,103,0.001,104,0.001,165,0.91,347,2.351,364,2.138,373,6.089,374,3.026,376,2.222,467,3.343,470,4.86,471,5.292,15058,10.026,15703,10.076,17208,12.437,17209,9.473,17210,9.473,17211,9.473,17212,9.473,17213,9.473]],["title/interfaces/SanisGruppeResponse.html",[334,0.743,17214,5.893]],["body/interfaces/SanisGruppeResponse.html",[3,0.024,4,0.024,5,0.013,7,0.142,30,0.001,32,0.188,34,2.202,47,1.007,95,0.146,101,0.018,103,0.001,104,0.001,165,0.896,334,1.017,336,2.25,1016,3.297,1277,4.762,12674,11.208,16457,6.553,17214,9.92,17215,6.69,17216,8.53,17217,12.83,17218,12.168,17219,12.83,17220,11.208,17221,11.852,17222,8.059]],["title/interfaces/SanisGruppenResponse.html",[334,0.743,17223,5.64]],["body/interfaces/SanisGruppenResponse.html",[3,0.025,4,0.025,5,0.013,7,0.145,30,0.001,32,0.174,33,0.574,95,0.159,101,0.018,103,0.001,104,0.001,165,0.906,334,1.036,336,2.292,1016,4.428,10700,10.409,16457,6.675,17214,11.28,17215,6.816,17216,12.232,17222,8.799,17223,9.603,17224,8.689,17225,12.232,17226,12.912,17227,11.28,17228,8.689,17229,8.689]],["title/interfaces/SanisGruppenzugehoerigkeitResponse.html",[334,0.743,17227,5.893]],["body/interfaces/SanisGruppenzugehoerigkeitResponse.html",[3,0.027,4,0.027,5,0.014,7,0.157,30,0.001,32,0.144,95,0.131,101,0.02,103,0.001,104,0.001,165,0.954,334,1.129,336,2.496,496,4.316,1277,5.284,16457,7.27,17215,7.423,17222,7.27,17225,9.464,17227,10.561,17230,11.606,17231,11.606]],["title/interfaces/SanisLaufzeitResponse.html",[334,0.743,17220,5.893]],["body/interfaces/SanisLaufzeitResponse.html",[3,0.027,4,0.027,5,0.014,7,0.157,30,0.001,32,0.169,83,4.129,101,0.019,103,0.001,104,0.001,165,0.951,334,1.123,336,2.484,16457,7.233,17215,7.385,17218,9.416,17220,10.529,17232,13.263,17233,13.263]],["title/interfaces/SanisNameResponse.html",[334,0.743,17234,5.893]],["body/interfaces/SanisNameResponse.html",[3,0.027,4,0.027,5,0.014,7,0.157,30,0.001,31,0.572,32,0.169,47,0.999,101,0.019,103,0.001,104,0.001,165,0.951,334,1.123,336,2.484,16457,7.233,17215,7.385,17234,10.529,17235,13.263,17236,13.263]],["title/interfaces/SanisOrganisationResponse.html",[334,0.743,17237,5.893]],["body/interfaces/SanisOrganisationResponse.html",[3,0.026,4,0.026,5,0.014,7,0.15,30,0.001,31,0.733,32,0.183,34,2.243,47,1.03,101,0.019,103,0.001,104,0.001,165,0.926,334,1.074,336,2.375,12674,11.417,16457,6.918,17215,7.063,17237,10.253,17238,9.005,17239,13.07]],["title/interfaces/SanisPersonResponse.html",[334,0.743,17240,5.893]],["body/interfaces/SanisPersonResponse.html",[3,0.025,4,0.025,5,0.014,7,0.147,30,0.001,31,0.746,32,0.182,47,1.013,95,0.123,101,0.018,103,0.001,104,0.001,165,0.917,334,1.056,336,2.336,1016,3.423,16457,6.802,17215,6.945,17222,6.802,17234,11.353,17240,10.149,17241,8.374,17242,12.996,17243,12.996,17244,12.996]],["title/interfaces/SanisPersonenkontextResponse.html",[334,0.743,17245,5.893]],["body/interfaces/SanisPersonenkontextResponse.html",[3,0.024,4,0.024,5,0.013,7,0.139,30,0.001,32,0.184,33,0.561,34,2.188,47,0.972,95,0.156,101,0.017,103,0.001,104,0.001,165,0.886,334,0.999,336,2.209,496,3.82,1016,4.01,16457,6.434,17215,6.57,17222,8.657,17223,10.659,17224,12.105,17237,11.137,17238,12.105,17245,9.809,17246,8.376,17247,12.749,17248,12.749,17249,11.777]],["title/injectables/SanisProvisioningStrategy.html",[105,0.89,16305,5.64]],["body/injectables/SanisProvisioningStrategy.html",[0,0.21,3,0.016,4,0.016,5,0.009,7,0.095,8,1.052,27,0.479,29,0.869,30,0.001,31,0.614,32,0.154,33,0.547,34,1.061,35,1.323,36,2.193,95,0.169,99,1.049,100,2.07,101,0.012,103,0.001,104,0.001,105,1.149,107,1.48,111,2.31,112,2.59,127,1.101,145,1.596,148,2.696,150,2.268,163,1.95,187,0.886,216,1.866,217,1.523,221,1.458,227,0.918,234,1.414,305,1.779,404,1.575,596,3.064,661,2.605,1016,2.208,1114,3.535,1238,3.971,1265,8.415,1266,3.534,1268,3.971,1381,3.606,1439,4.167,1711,5.169,1887,3.817,2063,7.022,2074,4.227,2171,2.657,2172,2.957,2173,2.852,2180,3.916,2309,3.466,2334,7.023,3673,4.227,3898,3.374,3967,7.023,4538,3.499,8266,6.62,8298,6.457,9332,8.366,10705,4.48,10965,7.284,11156,5.378,11848,6.306,11850,6.573,11851,4.09,11852,4.09,12613,6.806,12614,8.829,12616,4.984,12617,8.037,12621,7.023,12622,8.118,12636,5.712,12645,8.132,12647,7.284,12649,7.023,12650,5.401,15347,9.319,15903,5.401,15908,9.923,15944,5.712,15988,8.813,15995,5.401,16001,5.712,16305,7.284,16306,9.157,17222,6.183,17250,6.183,17251,8.712,17252,6.183,17253,6.183,17254,8.048,17255,8.712,17256,6.183,17257,6.183,17258,6.183,17259,6.183,17260,6.183,17261,5.169,17262,6.183,17263,6.183,17264,6.183,17265,6.183,17266,6.183,17267,6.183,17268,6.183,17269,6.183,17270,6.183,17271,6.183,17272,6.183]],["title/interfaces/SanisResponse.html",[334,0.743,17261,5.64]],["body/interfaces/SanisResponse.html",[3,0.026,4,0.026,5,0.014,7,0.149,30,0.001,32,0.176,47,0.914,95,0.15,101,0.018,103,0.001,104,0.001,165,0.922,334,1.066,336,2.358,1016,4.173,17222,8.293,17240,11.39,17241,11.659,17245,11.39,17246,8.94,17261,9.77,17273,9.678,17274,13.038,17275,13.038]],["title/injectables/SanisResponseMapper.html",[105,0.89,16306,5.64]],["body/injectables/SanisResponseMapper.html",[0,0.179,3,0.014,4,0.029,5,0.007,7,0.081,8,0.935,27,0.486,29,0.899,30,0.001,31,0.674,32,0.164,33,0.566,35,1.307,47,0.382,95,0.15,99,0.891,100,1.757,101,0.01,103,0,104,0,105,1.021,107,1.256,111,2.266,127,0.663,144,1.434,145,2.794,165,0.611,167,4.591,187,0.752,215,1.699,216,0.971,217,1.707,227,1.294,234,1.492,329,1.546,461,1.784,696,3.992,851,2.576,852,2.576,854,4.64,974,3.239,1016,1.874,1052,4.617,1277,3.992,1291,2.233,1542,2.449,1545,1.676,2728,3.987,2993,3.471,3091,2.392,3110,2.542,4533,7.247,4538,5.746,6461,5.825,8266,8.226,8269,4.584,8270,3.889,8275,6.24,8278,9.152,8280,4.387,8291,3.527,8298,7.524,8300,4.839,8599,4.099,9017,4.847,9332,7.355,10615,4.847,10696,4.584,10700,8.727,10702,4.847,11452,6.047,11453,5.881,11454,5.881,12363,6.988,12596,7.15,12597,7.15,14264,4.847,16306,6.471,17221,4.847,17223,6.471,17230,4.584,17231,4.584,17249,4.847,17261,10.821,17276,12.024,17277,9.196,17278,7.74,17279,7.74,17280,7.74,17281,7.74,17282,7.74,17283,5.247,17284,7.74,17285,5.247,17286,7.74,17287,7.74,17288,5.247,17289,7.74,17290,5.247,17291,7.74,17292,5.247,17293,5.247,17294,5.247,17295,5.247,17296,5.247,17297,5.247,17298,5.247,17299,5.247,17300,5.247,17301,5.247,17302,5.247,17303,5.247,17304,5.247,17305,5.247,17306,5.247,17307,5.247,17308,5.247,17309,5.247,17310,5.247,17311,5.247,17312,9.196,17313,5.247,17314,7.74,17315,5.247,17316,4.847,17317,5.247,17318,5.247,17319,5.247,17320,5.247,17321,7.74,17322,5.247,17323,5.247,17324,5.247,17325,5.247,17326,5.247,17327,5.247,17328,5.247,17329,5.247,17330,5.247,17331,5.247,17332,5.247,17333,5.247]],["title/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[334,0.743,10700,5.438]],["body/interfaces/SanisSonstigeGruppenzugehoerigeResponse.html",[3,0.026,4,0.026,5,0.014,7,0.154,30,0.001,32,0.167,47,0.927,95,0.128,101,0.019,103,0.001,104,0.001,165,0.94,334,1.101,336,2.434,496,4.209,1277,5.153,10700,9.601,16457,7.089,17215,7.239,17222,7.089,17228,9.229,17229,9.229,17230,11.511,17231,11.511,17316,12.172]],["title/classes/ScanResultDto.html",[0,0.23,9811,5.64]],["body/classes/ScanResultDto.html",[0,0.32,2,1.08,3,0.025,4,0.025,5,0.013,7,0.145,27,0.515,29,0.746,30,0.001,31,0.527,32,0.174,33,0.47,47,0.836,95,0.121,101,0.018,103,0.001,104,0.001,127,1.189,165,0.906,380,1.968,405,3.096,564,4.602,595,3.239,2078,5.486,2079,6.547,6064,5.921,6085,8.078,9725,8.334,9728,6.972,9729,6.972,9811,11.071,17334,12.912,17335,9.406,17336,11.485,17337,9.406]],["title/classes/ScanResultParams.html",[0,0.23,6132,4.462]],["body/classes/ScanResultParams.html",[0,0.451,2,0.722,3,0.017,4,0.023,5,0.012,7,0.097,26,2.514,27,0.423,30,0.001,32,0.173,33,0.602,39,1.686,47,0.98,95,0.154,99,1.067,101,0.025,103,0.001,104,0.001,150,2.307,165,0.696,204,3.493,334,0.693,347,2.075,364,1.887,369,1.39,373,4.655,374,2.009,375,4.477,376,1.475,377,5.745,379,1.45,380,1.316,467,3.688,469,2.774,470,5.075,471,4.696,565,3.32,1000,5.151,1001,6.576,1031,3.263,1044,3.087,1291,2.676,1381,3.668,2744,4.54,2915,5.375,3574,3.067,4227,2.165,5740,6.708,6064,5.06,6077,7.19,6083,6.075,6111,3.129,6114,4.299,6115,4.378,6116,4.378,6119,7.571,6122,7.968,6123,7.544,6124,7.681,6125,4.378,6126,4.299,6127,6.735,6128,4.299,6129,4.378,6130,4.039,6131,5.833,6132,5.833,6133,7.087,6134,7.087,6135,4.227,6136,4.299,6137,4.227,6138,4.227,6139,4.039,6140,4.378,6141,4.299,6142,4.378,6143,4.227,6144,4.299,6145,4.098,6146,4.098,6147,4.378,17338,10.182,17339,6.289,17340,6.289,17341,6.289]],["title/entities/SchoolEntity.html",[380,1.411,844,3.058]],["body/entities/SchoolEntity.html",[0,0.291,3,0.012,4,0.012,5,0.007,7,0.132,27,0.518,30,0.001,31,0.536,32,0.173,33,0.658,47,0.92,83,2.575,95,0.139,96,1.258,101,0.02,102,2.348,103,0,104,0,144,1.272,145,1.826,165,0.675,167,1.776,234,1.148,240,3.96,329,1.371,334,0.513,347,2.096,355,1.83,359,2.453,364,2.315,369,3.009,370,4.39,371,2.635,380,1.48,381,1.531,386,6.189,398,1.363,400,2.042,402,1.914,404,0.841,405,1.254,406,1.486,483,3.405,844,3.207,854,5.189,1031,1.491,1114,2.87,1278,2.517,1294,3.239,1910,2.198,1916,4.146,2136,1.862,2433,4.609,2618,4.381,2674,5.726,2678,3.86,2682,2.539,2683,5.526,3105,4.48,3106,3.966,4287,3.302,4293,3.827,4303,2.042,4457,7.526,4926,3.262,6359,7.51,6367,6.426,6377,4.609,6423,4.313,6442,5.526,6443,3.535,6627,3.127,6744,2.773,6745,4.366,8300,5.977,8304,3.449,8305,5.702,8317,3.449,9475,7.251,9717,2.909,9975,6.253,11086,5.526,11690,5.526,11691,3.89,11692,7.264,11693,6.927,11694,6.536,11695,6.655,11696,3.751,11697,3.751,11698,3.89,11699,3.751,11700,3.89,11701,3.89,11702,5.914,11703,3.89,11704,3.89,11705,3.89,11706,3.89,11707,3.89,11708,3.89,11709,3.89,11710,3.89,11711,6.898,11712,3.89,11713,3.89,11714,7.707,11715,5.914,11716,5.914,11717,5.914,11718,5.914,11719,5.914,11720,4.924,11721,5.526,11722,3.449,11723,3.751,11724,3.89,11725,5.914,11726,3.535,11727,3.89,11728,3.89,11729,5.914,11730,3.751,11731,5.702,11732,3.751,11733,3.302,11734,3.89,17342,4.653,17343,4.653,17344,4.653,17345,4.653,17346,4.653,17347,4.653,17348,4.653,17349,4.653,17350,4.653,17351,4.653,17352,4.653,17353,4.298,17354,4.653]],["title/classes/SchoolExternalTool.html",[0,0.23,139,3.855]],["body/classes/SchoolExternalTool.html",[0,0.237,2,0.8,3,0.018,4,0.018,5,0.01,7,0.107,8,1.142,27,0.544,29,0.956,30,0.001,31,0.676,32,0.181,33,0.635,34,1.844,35,0.841,47,0.975,55,2.651,95,0.148,101,0.018,103,0.001,104,0.001,127,0.88,139,5.407,165,0.747,181,7.3,194,4.537,198,3.331,200,4.524,214,3.114,227,0.734,334,0.767,404,1.71,405,2.55,564,4.277,595,2.398,596,2.115,1939,6.653,2078,4.062,2079,4.847,2136,2.787,4227,3.968,4303,3.056,4304,4.105,4305,5.162,5290,8.179,5292,7.416,5600,5.44,5604,8.758,5612,5.046,5614,5.44,5615,4.942,5616,5.292,5623,4.607,5624,5.046,5625,6.713,5626,5.162,7108,8.096,8568,6.793,8721,5.162,8722,5.44,17355,11.458,17356,9.636,17357,9.46,17358,6.964,17359,6.964,17360,6.964,17361,6.964,17362,6.964,17363,6.964]],["title/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.23,17364,5.64]],["body/classes/SchoolExternalToolConfigurationTemplateListResponse.html",[0,0.309,2,1.044,3,0.024,4,0.024,5,0.013,7,0.14,27,0.467,29,0.721,30,0.001,31,0.51,32,0.171,33,0.454,95,0.144,101,0.017,103,0.001,104,0.001,127,1.148,145,2.346,163,4.135,165,0.887,192,2.71,200,4.157,209,4.393,364,1.685,376,2.132,467,3.023,1006,6.449,1009,6.426,1011,4.836,1026,5.048,1379,7.36,2171,5.484,2600,5.33,5636,8.784,5637,8.395,17364,9.401,17365,11.28,17366,10.915]],["title/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.23,17366,5.438]],["body/classes/SchoolExternalToolConfigurationTemplateResponse.html",[0,0.259,2,0.874,3,0.02,4,0.02,5,0.011,7,0.117,26,2.344,27,0.529,29,0.948,30,0.001,31,0.67,32,0.182,33,0.561,47,0.87,55,2.208,95,0.144,99,1.291,101,0.015,103,0.001,104,0.001,127,0.962,145,1.964,165,0.792,200,4.237,209,4.477,364,2.302,375,4.558,376,1.785,467,3.548,1011,4.049,1508,4.307,2136,3.046,2171,5.672,2600,5.676,4945,6.027,5623,5.034,5638,7.029,5639,8.776,5640,6.358,5642,9.273,5644,7.029,5645,7.029,5646,7.029,5647,9.331,5648,9.273,5649,7.029,5650,6.647,5651,6.362,5652,7.029,5655,7.029,5656,4.958,5657,7.029,5658,7.029,5659,5.945,5660,7.029,17365,12.012,17366,10.009]],["title/entities/SchoolExternalToolEntity.html",[380,1.411,5682,4.888]],["body/entities/SchoolExternalToolEntity.html",[0,0.258,3,0.02,4,0.02,5,0.011,7,0.117,27,0.495,30,0.001,32,0.167,55,2.467,95,0.159,96,2.049,101,0.019,103,0.001,104,0.001,165,0.79,192,3.556,200,4.424,209,4.106,240,3.514,334,0.835,364,2.211,369,2.637,380,2.095,381,2.495,398,2.22,399,3.921,402,3.119,404,1.371,405,2.043,406,2.422,844,5.622,1925,5.204,4287,5.38,4293,5.418,4294,4.569,4926,5.501,5292,6.956,5625,5.38,5626,5.619,5674,6.111,5680,9.423,5682,7.255,5685,6.338,5686,4.939,6429,4.739,6430,4.569,6627,5.095,7108,7.655,8472,8.464,10657,5.277,11472,8.072,11682,8.372,11683,11.455,11684,10.419,11685,7.003,11686,7.003,11687,7.003,11688,7.003,11689,7.003,17367,7.581,17368,7.581,17369,7.581,17370,7.581]],["title/classes/SchoolExternalToolFactory.html",[0,0.23,17371,6.231]],["body/classes/SchoolExternalToolFactory.html",[0,0.165,2,0.558,3,0.013,4,0.013,5,0.007,7,0.075,8,0.883,27,0.534,29,1.038,30,0.001,31,0.722,32,0.185,33,0.622,34,1.255,35,1.453,47,0.763,55,2.514,59,3.253,95,0.125,101,0.009,103,0,104,0,127,0.614,138,3.175,139,2.778,144,3.349,148,1.504,165,0.577,181,4.631,185,4.873,200,2.864,201,2.546,216,1.352,217,0.964,227,0.771,234,0.789,329,3.464,359,2.535,366,2.676,379,2.026,380,1.838,381,2.406,404,1.322,538,3.278,564,1.804,596,3.872,627,2.277,660,6.958,661,4.64,662,5.481,665,4.099,666,5.481,667,5.52,668,4.099,669,4.099,670,4.099,671,4.025,672,4.466,673,4.927,674,6.563,675,5.771,676,6.908,677,2.751,682,2.725,683,4.099,684,2.751,685,5.12,686,5.335,687,4.535,688,5.16,689,4.061,690,2.725,691,2.546,692,4.103,693,2.653,694,2.608,695,2.725,696,5.042,697,2.751,698,4.838,699,2.725,700,7.069,701,4.106,702,6.591,703,2.751,704,3.613,705,2.725,706,2.751,707,2.725,708,2.751,709,2.725,712,2.725,713,6.063,714,2.751,715,2.725,716,4.099,717,4.025,718,4.099,719,2.751,720,2.63,721,2.608,722,2.144,723,2.725,724,2.725,725,2.725,726,2.751,727,2.751,728,1.903,729,2.725,730,2.751,731,2.863,732,2.725,733,2.751,735,2.806,736,2.865,737,2.897,905,2.019,4227,3.366,4335,6.236,4337,3.522,5290,3.449,5292,2.835,5298,4.064,5697,3.918,5702,3.797,5779,3.918,8568,4.31,17356,4.064,17371,8.118,17372,7.311,17373,7.311,17374,7.311,17375,4.861,17376,4.861,17377,4.861]],["title/classes/SchoolExternalToolIdParams.html",[0,0.23,17378,5.27]],["body/classes/SchoolExternalToolIdParams.html",[0,0.396,2,1.106,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,47,0.848,95,0.149,101,0.018,103,0.001,104,0.001,165,0.919,200,4.241,209,4.012,364,1.785,368,4.602,369,2.576,370,3.213,371,3.212,374,3.077,376,2.259,467,3.132,478,6.835,1000,4.983,5641,9.077,5708,8.414,5709,8.414,7108,7.192,17378,9.102,17379,9.393]],["title/classes/SchoolExternalToolIdParams-1.html",[0,0.191,905,2.329,17378,4.382]],["body/classes/SchoolExternalToolIdParams-1.html",[0,0.399,2,1.12,3,0.026,4,0.026,5,0.014,7,0.15,26,2.628,27,0.405,30,0.001,32,0.137,95,0.161,99,1.654,101,0.019,103,0.001,104,0.001,165,0.926,200,3.824,209,4.041,364,1.807,374,3.114,376,2.287,467,3.155,478,6.918,1000,5.019,2600,5.123,5641,9.125,5711,7.063,5712,7.858,17378,9.169,17380,10.842]],["title/modules/SchoolExternalToolModule.html",[425,1.808,5719,5.27]],["body/modules/SchoolExternalToolModule.html",[0,0.291,3,0.023,4,0.023,5,0.012,30,0.001,95,0.16,101,0.016,103,0.001,104,0.001,187,1.227,200,3.873,209,2.949,425,3.186,427,3.166,428,3.34,429,3.444,430,3.428,431,3.398,432,4.394,433,4.483,442,4.357,443,3.369,444,3.284,449,4.357,766,3.681,4969,4.848,5267,9.537,5277,6.905,5718,10.001,5719,10.954,5977,10.308,7108,5.287,17381,8.565,17382,8.565,17383,8.565,17384,8.565,17385,11.628,17386,8.565]],["title/classes/SchoolExternalToolPostParams.html",[0,0.23,17387,5.64]],["body/classes/SchoolExternalToolPostParams.html",[0,0.392,2,0.919,3,0.021,4,0.021,5,0.011,7,0.123,27,0.506,29,0.913,30,0.001,32,0.185,33,0.518,47,0.887,55,2.282,95,0.156,101,0.015,103,0.001,104,0.001,165,0.819,200,4.431,209,4.345,290,4.62,364,2.258,369,1.769,374,2.557,375,4.209,376,1.877,467,3.274,470,4.85,471,4.415,1000,4.923,1508,4.53,2489,4.574,3436,7.362,4227,3.964,4945,6.177,5418,6.572,5724,7.393,5731,9.588,5732,6.691,5733,6.691,5734,6.691,5736,7.393,5737,7.393,5739,5.294,5740,5.989,7108,7.789,8568,6.786,17379,10.172,17387,8.674,17388,8.003,17389,9.584,17390,8.003,17391,8.003,17392,8.003]],["title/interfaces/SchoolExternalToolProps.html",[334,0.743,17356,5.64]],["body/interfaces/SchoolExternalToolProps.html",[0,0.264,3,0.021,4,0.021,5,0.011,7,0.119,29,0.992,30,0.001,31,0.701,32,0.183,33,0.641,34,2.067,47,1.013,55,2.75,95,0.154,101,0.019,103,0.001,104,0.001,139,4.441,165,0.803,181,7.918,194,5.063,198,3.717,200,3.316,214,2.558,227,0.819,334,0.856,336,1.894,404,1.405,405,2.095,564,4.64,1939,5.875,2078,4.532,2079,5.409,2136,3.111,4227,4.304,4303,3.41,4304,4.581,4305,5.76,5290,8.871,5292,7.622,5600,6.071,5604,5.905,5614,6.071,5615,5.515,5616,5.905,5623,5.14,5624,5.631,5625,7.223,5626,5.76,7108,4.797,8568,7.369,8721,5.76,8722,6.071,17355,6.789,17356,9.489]],["title/classes/SchoolExternalToolRefDO.html",[0,0.23,5610,5.438]],["body/classes/SchoolExternalToolRefDO.html",[0,0.313,2,1.058,3,0.024,4,0.024,5,0.013,7,0.142,27,0.51,29,0.731,30,0.001,31,0.517,32,0.172,33,0.614,47,0.934,101,0.018,103,0.001,104,0.001,127,1.164,165,0.895,200,4.469,209,4.414,405,3.057,595,3.172,4227,4.23,4304,5.43,4305,6.828,5610,10.611,5701,8.902,5844,8.51,7108,7.913,17355,11.199,17393,9.212,17394,11.34,17395,9.212,17396,9.212]],["title/injectables/SchoolExternalToolRepo.html",[105,0.89,1966,5]],["body/injectables/SchoolExternalToolRepo.html",[0,0.132,3,0.01,4,0.01,5,0.005,7,0.06,8,0.741,10,2.48,12,2.832,18,3.034,26,2.279,27,0.537,29,1.026,30,0.001,31,0.72,32,0.18,33,0.642,34,1.488,35,1.541,36,2.727,40,1.866,47,0.819,95,0.153,96,1.66,97,1.65,99,0.658,101,0.007,103,0,104,0,105,0.81,107,0.928,111,2.351,112,2.962,127,0.49,139,7.021,148,1.2,158,1.943,165,0.306,192,2.273,200,3.952,201,2.031,209,2.624,216,1.136,217,1.55,221,1.797,227,1.238,234,1.237,277,3.051,359,2.129,380,1.814,381,2.509,398,1.136,404,1.11,529,2.708,595,1.335,596,3.684,661,3.212,844,1.758,878,4.274,884,2.9,885,4.701,915,2.134,935,6.373,1052,3.534,1053,3.845,1545,1.239,1857,4.503,1966,4.551,2092,2.194,2383,8.577,2385,4.357,2386,4.357,2387,4.357,2388,4.357,2389,4.274,2390,4.274,2391,4.357,2392,4.274,2393,4.357,2394,2.809,2395,4.955,2397,4.449,2398,2.751,2400,4.955,2401,2.751,2403,2.751,2405,6.25,2406,4.357,2407,2.751,2409,2.751,2411,4.357,2415,4.357,2417,4.127,2418,4.274,2420,2.751,2422,2.364,2423,2.364,2424,2.751,2426,2.751,2428,2.751,2429,2.751,2435,2.606,2446,5.409,2447,5.65,2468,5.133,2482,3.387,4227,2.624,4355,2.49,4458,2.874,4630,3.191,5292,3.581,5682,8.789,5686,4,5743,3.387,5744,5.672,5749,5.672,5757,5.133,5766,2.809,5767,2.809,5768,2.809,5769,2.809,5770,2.809,5771,2.809,5772,2.809,5773,2.809,5774,2.809,5778,2.699,5779,6.145,5780,3.125,5781,3.387,5782,2.946,5784,3.581,5785,3.582,5786,2.751,5793,3.582,5799,3.582,5806,3.582,5807,3.582,7127,2.565,8472,2.751,8568,5.569,8780,3.582,8781,2.946,8782,3.582,11682,8.402,11684,3.387,14347,3.242,17397,10.087,17398,6.14,17399,6.14,17400,5.672,17401,9.726,17402,3.877,17403,8.779,17404,6.14,17405,3.877,17406,3.877,17407,3.877,17408,6.14,17409,3.877,17410,5.672,17411,3.877,17412,3.877,17413,3.877,17414,3.877,17415,3.877,17416,3.877,17417,3.877,17418,3.877,17419,3.125,17420,3.877,17421,3.387,17422,3.387,17423,3.877,17424,3.877]],["title/injectables/SchoolExternalToolRequestMapper.html",[105,0.89,17425,5.64]],["body/injectables/SchoolExternalToolRequestMapper.html",[0,0.281,3,0.022,4,0.022,5,0.012,7,0.127,8,1.279,27,0.44,29,0.927,30,0.001,31,0.656,32,0.149,33,0.529,35,1.279,95,0.158,101,0.016,103,0.001,104,0.001,105,1.397,107,1.978,111,2.339,144,2.259,181,7.405,187,1.184,194,5.386,200,4.321,209,4.025,227,1.232,367,3.979,982,4.142,4227,2.846,5292,4.821,5731,9.685,5778,5.754,5812,6.663,5814,10.212,5818,7.221,5820,8.857,5827,7.636,5828,7.221,5829,6.911,5830,7.221,7108,7.216,8568,4.872,17387,10.308,17425,8.857,17426,10.799,17427,10.593,17428,8.266,17429,10.593,17430,8.266,17431,10.212,17432,7.221,17433,8.266,17434,8.266,17435,8.266]],["title/classes/SchoolExternalToolResponse.html",[0,0.23,17436,5.438]],["body/classes/SchoolExternalToolResponse.html",[0,0.233,2,0.786,3,0.018,4,0.018,5,0.01,7,0.105,27,0.542,29,0.908,30,0.001,31,0.642,32,0.185,33,0.532,34,1.828,47,0.963,55,2.057,95,0.136,101,0.013,103,0.001,104,0.001,127,0.865,145,1.767,165,0.738,200,4.554,290,3.952,364,2.389,375,4.32,376,1.606,467,3.64,564,3.952,618,2.913,1011,3.643,1016,2.445,1031,2.194,1508,3.875,2078,3.992,2136,2.74,2914,4.396,4227,3.666,4304,4.035,5292,6.211,5623,4.528,5625,4.858,5640,6.027,5656,4.46,5741,5.074,5832,5.98,5833,7.817,5834,8.168,5835,5.98,5836,5.98,5837,5.98,5838,5.98,5839,8.94,5840,5.98,5841,5.98,5842,5.98,5843,5.348,5849,5.98,5850,6.324,5851,5.98,7108,8.16,8568,6.277,8721,5.074,8990,5.98,17379,10.656,17436,9.657,17437,10.465,17438,6.846,17439,6.846,17440,6.846,17441,6.846]],["title/injectables/SchoolExternalToolResponseMapper.html",[105,0.89,17442,5.64]],["body/injectables/SchoolExternalToolResponseMapper.html",[0,0.245,3,0.019,4,0.019,5,0.01,7,0.111,8,1.169,27,0.454,29,0.927,30,0.001,31,0.684,32,0.153,33,0.546,34,1.236,35,1.32,95,0.161,101,0.018,103,0.001,104,0.001,105,1.276,107,1.724,111,2.186,139,7.548,144,1.968,181,7.951,187,1.031,194,4.692,198,3.444,200,4.303,209,4.023,217,1.276,227,1.152,234,1.57,311,6.652,564,2.673,974,4.445,982,3.608,1291,3.064,2485,3.111,4227,2.479,5290,5.11,5292,4.2,5298,6.02,5299,6.652,5367,5.805,5741,5.337,5839,9.128,5855,6.652,7108,7.212,8365,5.805,8388,6.02,8392,6.02,8568,4.244,8820,6.652,8881,6.652,8882,6.652,8883,6.652,9022,6.652,9550,6.02,10752,5.11,17426,10.794,17436,9.419,17437,6.29,17442,8.09,17443,9.676,17444,9.676,17445,9.676,17446,9.676,17447,7.201,17448,9.676,17449,9.676,17450,9.137,17451,7.201,17452,7.201,17453,7.201,17454,9.676,17455,7.201,17456,7.201,17457,7.201,17458,7.201,17459,7.201,17460,7.201,17461,7.201,17462,7.201]],["title/injectables/SchoolExternalToolRule.html",[105,0.89,1967,5.64]],["body/injectables/SchoolExternalToolRule.html",[0,0.245,3,0.019,4,0.019,5,0.01,7,0.111,8,1.17,27,0.454,29,0.868,30,0.001,31,0.613,32,0.153,33,0.547,35,1.17,95,0.161,101,0.014,103,0.001,104,0.001,105,1.278,107,1.727,116,4.065,127,0.912,139,7.454,187,1.033,199,4.176,200,4.092,201,3.778,214,2.374,215,2.335,216,1.334,217,0.951,227,1.021,347,2.56,380,2.793,461,3.077,806,4.609,1862,6.437,1890,7.955,1928,7.92,1967,8.1,1989,5.98,2033,4.7,2056,6.512,3352,6.512,3353,4.932,3356,6.408,3358,4.932,3359,4.849,3360,6.623,3361,7.361,5682,9.573,5686,4.7,5779,7.81,5864,6.664,5865,6.664,5866,6.664,5867,6.664,5868,7.02,17419,5.815,17463,11.693,17464,6.664]],["title/classes/SchoolExternalToolScope.html",[0,0.23,17403,5.893]],["body/classes/SchoolExternalToolScope.html",[0,0.25,2,0.845,3,0.02,4,0.02,5,0.01,7,0.113,8,1.186,26,2.691,27,0.535,29,0.935,30,0.001,31,0.661,32,0.181,33,0.589,35,1.186,95,0.142,99,1.249,101,0.014,103,0.001,104,0.001,111,2.527,144,2.011,145,3.381,148,2.277,165,0.775,192,2.194,200,3.841,209,2.534,227,1.035,277,5.31,329,2.168,347,2.252,404,1.775,529,3.246,596,3.729,2432,6.584,4227,3.804,5682,5.332,5686,4.795,5779,5.932,5871,6.429,5872,6.712,5873,6.712,5874,6.712,5879,6.712,5880,6.712,5881,5.122,5882,5.031,5883,5.122,5884,5.122,5893,5.031,5894,6.712,5895,5.122,5896,5.031,5897,5.122,5898,5.031,5899,6.712,8568,6.512,9060,6.798,9892,8.577,9901,8.577,17397,10.206,17403,8.577,17465,9.818,17466,7.359,17467,9.818,17468,7.359]],["title/classes/SchoolExternalToolSearchListResponse.html",[0,0.23,17450,5.64]],["body/classes/SchoolExternalToolSearchListResponse.html",[0,0.311,2,1.048,3,0.024,4,0.024,5,0.013,7,0.14,27,0.468,29,0.724,30,0.001,31,0.512,32,0.172,33,0.456,95,0.145,101,0.017,103,0.001,104,0.001,127,1.154,145,2.356,163,4.141,165,0.89,192,2.722,200,4.416,209,4.213,364,1.692,376,2.141,467,3.031,1005,9.069,1006,6.478,1009,6.444,1011,4.858,1026,5.071,5636,8.809,5901,7.975,7108,7.553,17379,9.863,17436,10.926,17450,9.428]],["title/classes/SchoolExternalToolSearchParams.html",[0,0.23,17469,5.893]],["body/classes/SchoolExternalToolSearchParams.html",[0,0.4,2,1.122,3,0.026,4,0.026,5,0.014,7,0.15,27,0.406,30,0.001,32,0.137,47,0.856,95,0.151,101,0.019,103,0.001,104,0.001,165,0.928,200,4.262,209,4.047,364,1.811,374,3.122,376,2.292,467,3.16,470,4.952,1000,5.026,4227,4.34,7108,7.255,9064,8.536,9067,8.536,17379,9.475,17389,9.027,17469,10.268]],["title/injectables/SchoolExternalToolService.html",[105,0.89,5977,5]],["body/injectables/SchoolExternalToolService.html",[0,0.187,3,0.015,4,0.015,5,0.008,7,0.084,8,0.965,26,2.401,27,0.505,29,0.966,30,0.001,31,0.696,32,0.171,33,0.608,35,1.435,36,2.809,95,0.156,99,0.931,101,0.01,103,0,104,0,105,1.054,107,1.312,111,2.557,112,3.009,127,1.01,139,7.893,158,6.32,187,0.785,198,2.623,200,4.447,201,2.872,209,3.569,216,1.478,217,1.454,221,2.87,227,1.162,234,0.89,284,3.305,450,2.256,529,2.419,564,2.967,1966,8.528,2485,2.369,4227,1.888,5285,4.42,5290,7.357,5641,5.792,5778,3.817,5916,5.065,5918,5.065,5944,3.473,5976,7.739,5977,5.925,5985,3.686,7108,7.663,8370,7.605,8452,4.79,8672,4.167,9030,4.79,17401,9.577,17432,4.79,17470,11.468,17471,7.994,17472,7.994,17473,7.994,17474,7.994,17475,7.385,17476,7.994,17477,7.994,17478,5.483,17479,5.483,17480,5.483,17481,7.994,17482,5.483,17483,7.994,17484,5.483,17485,7.994,17486,5.483,17487,7.994,17488,5.483,17489,7.994,17490,7.994,17491,5.483,17492,5.483,17493,5.483,17494,5.065,17495,5.483,17496,7.994,17497,5.483,17498,5.483,17499,5.483,17500,5.483,17501,8.715,17502,5.483,17503,5.483]],["title/injectables/SchoolExternalToolUc.html",[105,0.89,17504,5.64]],["body/injectables/SchoolExternalToolUc.html",[0,0.163,3,0.013,4,0.013,5,0.007,7,0.073,8,0.872,26,2.84,27,0.472,29,0.901,30,0.001,31,0.637,32,0.159,33,0.568,34,0.82,35,1.322,36,2.73,39,3.209,47,0.633,95,0.15,99,0.811,101,0.009,103,0,104,0,105,0.952,107,1.144,111,2.273,112,2.964,127,0.912,139,7.726,187,0.685,199,4.943,200,4.306,209,2.486,216,1.793,217,1.657,221,3.025,227,1.022,234,1.412,284,4.351,524,2.817,529,3.837,766,2.054,843,3.151,1862,6.591,1868,3.028,2485,2.065,2767,2.155,3027,2.732,4227,1.646,5275,8.42,5641,9.102,5720,8.232,5778,3.327,5931,4.176,5944,7.196,5954,3.853,5963,6.307,5977,8.11,5985,3.213,5990,6.036,7108,7.22,8403,7.599,8413,4.176,8428,4.416,8429,9.613,8430,4.416,8448,9.613,8452,4.176,17385,9.499,17431,11.396,17475,6.669,17494,6.669,17501,6.669,17504,6.036,17505,11.696,17506,8.036,17507,6.669,17508,6.669,17509,8.036,17510,4.416,17511,4.78,17512,4.78,17513,4.78,17514,7.219,17515,4.78,17516,4.78,17517,7.219,17518,9.693,17519,4.78,17520,7.219,17521,4.78,17522,4.78,17523,4.78,17524,4.78,17525,7.219,17526,4.78,17527,4.78,17528,4.78,17529,4.78]],["title/injectables/SchoolExternalToolValidationService.html",[105,0.89,17385,5.64]],["body/injectables/SchoolExternalToolValidationService.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.196,27,0.462,29,0.882,30,0.001,31,0.624,32,0.156,33,0.556,35,1.196,36,2.152,55,2.789,95,0.162,101,0.014,103,0.001,104,0.001,105,1.306,107,1.784,111,2.467,112,2.494,127,1.251,139,7.394,148,3.064,158,5.571,187,1.068,200,4.376,201,3.904,209,4.079,216,1.831,217,0.983,221,1.757,234,1.21,305,2.145,494,4.493,503,5.968,558,3.543,577,4.179,2485,3.22,4945,5.313,5273,10.106,5302,5.823,5315,6.512,5974,6.452,5976,8.26,5984,5.823,5985,5.01,5991,6.886,5993,6.886,7108,7.313,8392,6.232,8408,5.823,17385,8.279,17470,10.945,17530,9.902,17531,7.454,17532,9.902,17533,12.332,17534,7.454,17535,11.12,17536,9.902,17537,7.454,17538,7.454,17539,7.454,17540,7.454,17541,7.454]],["title/classes/SchoolForGroupNotFoundLoggable.html",[0,0.23,15927,5.893]],["body/classes/SchoolForGroupNotFoundLoggable.html",[0,0.303,2,1.023,3,0.024,4,0.024,5,0.013,7,0.137,8,1.341,27,0.461,29,0.707,30,0.001,31,0.499,32,0.125,33,0.445,35,1.076,95,0.142,100,2.982,101,0.017,103,0.001,104,0.001,127,1.125,163,2.809,192,2.656,214,3.655,215,2.883,216,1.647,227,0.939,511,4.56,1277,6.856,1327,3.518,1542,5.647,1543,6.289,1545,2.845,1547,6.303,3060,6.32,8137,6.289,8138,6.547,8266,9.626,8269,7.78,15927,9.701,17542,12.1,17543,8.228,17544,8.906,17545,8.228,17546,8.228,17547,8.228,17548,7.78,17549,8.906,17550,8.906,17551,8.906]],["title/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.23,17552,6.231]],["body/classes/SchoolIdDoesNotMatchWithUserSchoolId.html",[0,0.28,2,0.945,3,0.022,4,0.022,5,0.012,7,0.127,8,1.276,26,2.569,27,0.439,29,0.653,30,0.001,31,0.462,32,0.115,33,0.411,34,2.236,35,0.994,47,0.949,59,2.555,95,0.135,99,1.397,101,0.016,103,0.001,104,0.001,111,2.334,127,1.335,163,2.596,192,3.884,214,3.477,216,2.158,227,0.868,461,2.934,577,6.902,1327,3.252,1542,5.445,1543,6.064,1545,2.63,1547,6.125,4227,4.238,4304,4.852,4442,5.147,8137,6.064,8138,6.313,11205,6.883,12374,6.636,17552,9.76,17553,10.193,17554,8.232,17555,8.232,17556,11.668,17557,8.232,17558,11.668,17559,8.232,17560,8.232,17561,8.232]],["title/classes/SchoolIdParams.html",[0,0.23,17562,5.27]],["body/classes/SchoolIdParams.html",[0,0.401,2,1.125,3,0.026,4,0.026,5,0.014,7,0.151,26,2.634,27,0.407,30,0.001,32,0.137,95,0.162,99,1.662,101,0.019,103,0.001,104,0.001,165,0.929,355,4.629,364,1.816,374,3.129,376,2.298,467,3.164,478,6.951,1000,5.034,4227,4.345,4442,5.192,5712,7.896,5725,7.896,17562,9.195,17563,11.771]],["title/classes/SchoolIdParams-1.html",[0,0.191,905,2.329,17562,4.382]],["body/classes/SchoolIdParams-1.html",[0,0.402,2,1.131,3,0.026,4,0.026,5,0.014,7,0.151,26,2.639,27,0.409,30,0.001,32,0.138,95,0.162,99,1.671,101,0.019,103,0.001,104,0.001,165,0.932,364,1.825,374,3.145,376,2.309,467,3.174,478,6.985,1000,5.049,2600,5.153,4227,4.354,5711,7.132,5712,7.935,17380,10.906,17562,9.222]],["title/classes/SchoolInMigrationError.html",[0,0.23,15158,5.893]],["body/classes/SchoolInMigrationError.html",[0,0.261,2,0.882,3,0.02,4,0.02,5,0.011,7,0.118,8,1.22,27,0.541,29,0.609,30,0.001,31,0.431,32,0.189,33,0.564,35,0.928,47,0.822,52,4.686,55,1.69,59,2.384,95,0.129,101,0.015,103,0.001,104,0.001,127,0.971,165,0.797,187,1.1,192,2.291,204,4.113,216,2.497,355,3.973,364,2.309,404,1.826,406,2.454,461,1.771,558,3.651,564,2.851,596,3.883,798,6.315,1013,5.498,1016,2.743,1253,5.205,1291,5.102,1327,4.458,1472,8.258,1473,7.118,1474,4.07,1475,7.248,1479,5.005,1480,4.307,1481,5.005,1482,5.005,1483,5.005,1484,5.005,1485,5.005,1486,4.685,1487,4.39,1493,4.866,1889,7.097,2578,5.005,3469,5.694,6896,4.933,13247,5.694,13282,8.445,15158,8.824,17564,10.101,17565,6.711,17566,7.682]],["title/classes/SchoolInUserMigrationEndLoggable.html",[0,0.23,17567,6.231]],["body/classes/SchoolInUserMigrationEndLoggable.html",[0,0.306,2,1.032,3,0.024,4,0.024,5,0.013,7,0.138,8,1.349,27,0.463,29,0.713,30,0.001,31,0.504,32,0.126,33,0.449,35,1.085,47,0.885,52,5.896,95,0.115,101,0.017,103,0.001,104,0.001,127,1.136,163,2.834,192,2.68,214,3.675,215,2.909,216,1.662,227,0.947,461,2.8,1327,3.549,1542,5.67,1543,6.314,1545,2.871,1547,6.323,3247,5.416,4442,5.359,8137,6.314,8138,6.573,11906,9.005,17553,10.613,17567,10.315,17568,8.986,17569,8.986,17570,8.986,17571,8.986,17572,8.301]],["title/classes/SchoolInUserMigrationStartLoggable.html",[0,0.23,17573,6.231]],["body/classes/SchoolInUserMigrationStartLoggable.html",[0,0.287,2,0.969,3,0.022,4,0.022,5,0.012,7,0.13,8,1.296,26,2.593,27,0.446,29,0.669,30,0.001,31,0.473,32,0.118,33,0.422,35,1.019,39,2.878,47,0.86,52,5.764,95,0.138,99,1.432,101,0.016,103,0.001,104,0.001,111,2.361,127,1.356,163,2.662,192,3.201,214,3.533,216,2.183,227,0.889,347,2.406,415,4.606,461,2.721,540,6.115,1327,3.334,1542,5.509,1543,6.135,1545,2.696,1547,6.182,1555,5.276,4442,5.207,4640,5.673,8137,6.135,8138,6.387,10368,6.803,11906,9.208,12292,10.905,17553,10.312,17572,7.796,17573,9.916,17574,7.796,17575,7.796,17576,8.439,17577,8.439,17578,8.439]],["title/classes/SchoolInfoMapper.html",[0,0.23,14680,5.893]],["body/classes/SchoolInfoMapper.html",[0,0.324,2,1.093,3,0.025,4,0.025,5,0.013,7,0.146,8,1.397,27,0.395,29,0.755,30,0.001,31,0.649,32,0.133,33,0.476,34,1.634,35,1.149,95,0.148,99,1.615,100,3.873,101,0.018,103,0.001,104,0.001,217,1.255,227,1.003,234,1.545,627,3.881,844,5.878,975,6.611,982,4.769,14651,10.451,14680,10.105,17579,11.568,17580,8.314,17581,11.568,17582,8.314,17583,9.517,17584,9.517,17585,9.517]],["title/classes/SchoolInfoResponse.html",[0,0.23,14651,5.438]],["body/classes/SchoolInfoResponse.html",[0,0.3,2,1.014,3,0.023,4,0.023,5,0.012,7,0.136,27,0.5,29,0.7,30,0.001,31,0.763,32,0.169,33,0.441,34,2.31,47,0.92,95,0.113,101,0.017,103,0.001,104,0.001,127,1.396,165,0.872,192,3.766,364,2.047,376,2.071,379,2.778,380,2.642,467,3.24,475,4.423,618,3.757,966,4.52,1013,4.048,2136,3.534,2254,7.117,2909,5.934,2910,6.027,2911,6.027,14651,10.481,17586,12.629,17587,7.712,17588,8.155,17589,8.155]],["title/classes/SchoolMigrationError.html",[0,0.23,17590,5.893]],["body/classes/SchoolMigrationError.html",[0,0.257,2,0.869,3,0.02,4,0.02,5,0.011,7,0.116,8,1.208,27,0.539,29,0.6,30,0.001,31,0.424,32,0.189,33,0.56,35,0.914,47,0.816,52,4.64,55,1.665,59,3.104,95,0.128,101,0.014,103,0.001,104,0.001,127,0.956,165,0.789,187,1.084,192,2.982,204,4.089,216,2.491,355,3.933,364,2.297,404,1.808,406,2.417,461,1.744,558,3.596,564,2.808,596,3.867,798,4.73,1013,5.465,1016,2.702,1062,3.303,1253,5.167,1291,5.071,1327,4.425,1472,8.234,1473,7.083,1474,4.046,1475,7.194,1479,4.93,1480,4.242,1481,4.93,1482,4.93,1483,4.93,1484,4.93,1485,4.93,1486,4.614,1487,4.324,1493,4.793,3876,9.31,4442,4.412,6706,4.73,6896,4.859,8536,6.326,11616,5.483,13247,5.608,13282,8.361,17565,6.61,17590,8.736,17591,9.238,17592,7.566]],["title/interfaces/SchoolMigrationFlags.html",[334,0.743,17593,6.231]],["body/interfaces/SchoolMigrationFlags.html",[3,0.027,4,0.027,5,0.014,7,0.156,30,0.001,32,0.168,52,4.705,101,0.019,103,0.001,104,0.001,165,0.948,334,1.117,336,2.471,347,2.794,355,3.988,4442,4.473,17593,11.101,17594,10.141,17595,10.141,17596,13.242,17597,13.242]],["title/injectables/SchoolMigrationService.html",[105,0.89,4449,5]],["body/injectables/SchoolMigrationService.html",[0,0.122,3,0.009,4,0.009,5,0.005,7,0.055,8,0.694,27,0.476,29,0.911,30,0.001,31,0.644,32,0.161,33,0.574,35,1.356,36,2.542,47,0.994,52,4.207,55,2.332,59,1.108,95,0.14,99,0.606,101,0.007,103,0,104,0,105,0.758,107,0.855,111,2.467,112,2.879,127,0.727,128,2.879,129,5.107,132,3.692,145,2.135,148,2.233,167,3.7,187,0.512,189,6.982,191,1.984,192,3.262,204,2.476,216,1.53,217,1.609,221,2.876,227,1.074,234,1.654,247,1.417,305,2.788,347,1.471,355,4.599,369,1.271,371,2.28,450,1.469,503,2.152,511,1.828,558,1.697,784,1.885,854,4.89,1014,4.061,1052,2.942,1053,3.669,1062,1.559,1114,2.928,1158,1.9,1238,2.293,1327,1.41,1545,1.141,2258,7.642,2268,7.642,2298,2.152,2400,3.286,2744,3.218,3091,2.621,4227,3.952,4442,5.159,4449,4.261,4455,6.544,4457,6.594,4464,5.638,4467,4.261,4470,5.022,4474,2.713,4475,2.985,4561,1.9,4579,2.879,4586,2.486,4630,1.856,4640,3.864,6896,2.293,6938,5.485,7785,2.79,8300,6.37,8836,2.293,12101,2.647,12145,6.214,12600,7.311,12604,5.311,12605,5.311,13173,2.985,13257,5.994,13642,4.807,14463,7.96,14988,6.669,15617,2.713,15837,6.304,15929,9.791,15935,3.299,17598,11.695,17599,5.749,17600,5.311,17601,5.749,17602,5.749,17603,5.749,17604,5.311,17605,5.749,17606,5.749,17607,3.299,17608,5.749,17609,9.069,17610,3.571,17611,5.749,17612,7.856,17613,3.571,17614,5.749,17615,8.273,17616,3.571,17617,5.749,17618,5.749,17619,3.571,17620,5.749,17621,3.571,17622,5.749,17623,3.571,17624,5.749,17625,3.571,17626,5.749,17627,3.571,17628,3.571,17629,5.749,17630,3.571,17631,5.749,17632,3.571,17633,3.119,17634,3.571,17635,3.571,17636,2.985,17637,2.985,17638,3.299,17639,3.119,17640,2.713,17641,3.571,17642,3.571,17643,3.571,17644,3.571,17645,3.571,17646,3.571,17647,3.571,17648,3.571,17649,5.749,17650,3.571,17651,3.571,17652,8.273,17653,6.667,17654,5.311,17655,3.571,17656,7.217,17657,3.299,17658,3.571,17659,3.571,17660,5.311,17661,3.571,17662,3.571,17663,5.749,17664,5.749,17665,3.571,17666,3.571,17667,3.571,17668,3.571,17669,5.749,17670,3.571,17671,3.571,17672,3.299,17673,3.571,17674,3.571,17675,3.571,17676,3.571,17677,3.571]],["title/entities/SchoolNews.html",[380,1.411,6755,5.126]],["body/entities/SchoolNews.html",[0,0.342,3,0.014,4,0.024,5,0.007,7,0.173,9,3.649,26,2.099,27,0.214,30,0.001,31,0.428,32,0.141,34,0.883,47,0.889,83,2.296,95,0.153,96,2.458,101,0.02,103,0,104,0,165,0.847,188,2.889,192,3.202,208,1.91,227,0.542,234,1.476,240,3.648,334,0.567,364,0.954,369,2.487,370,3.753,380,2.246,381,1.694,398,1.507,399,2.988,400,2.258,404,1.818,405,2.711,406,1.644,461,2.475,571,5.684,574,4.122,595,1.772,617,5.249,627,1.603,672,4.621,731,3.561,769,4.547,843,2.247,844,5.278,854,3.85,1031,2.446,1298,4.269,1299,4.665,1300,4.218,1301,4.463,1302,4.878,1474,3.087,1492,4.599,1910,3.604,1916,2.493,1932,3.906,1991,2.785,2344,3.758,2572,3.305,2620,5.303,2674,4.169,2688,3.002,2744,5.69,2789,2.717,3394,3.518,3396,3.305,3397,3.405,3399,3.652,3400,3.583,3401,3.815,3415,3.305,3547,3.459,3573,3.353,4227,1.772,4319,3.911,4320,3.729,4926,4.194,4996,3.815,5011,3.652,5554,6.588,6110,2.859,6329,3.583,6407,3.177,6409,2.886,6430,3.102,6627,3.459,6633,3.177,6717,3.815,6718,4.149,6720,4.71,6721,4.149,6722,6.739,6723,5.839,6724,4.149,6725,8.787,6726,5.047,6727,4.878,6728,5.655,6729,5.655,6730,6.56,6731,7.422,6732,4.149,6733,5.415,6734,4.149,6735,3.911,6736,3.911,6737,4.9,6738,4.149,6739,4.149,6740,3.911,6741,4.149,6742,3.815,6743,4.149,6744,3.067,6745,3.177,6746,3.911,6747,4.149,6748,4.149,6749,7.103,6750,4.149,6751,7.33,6752,4.149,6753,4.149,6754,5.798,6755,5.798,6756,6.329,6757,4.021,6758,4.971,6759,3.911,6760,3.729,6761,3.911,6762,4.149,17678,5.147]],["title/classes/SchoolNumberDuplicateLoggableException.html",[0,0.23,17679,5.893]],["body/classes/SchoolNumberDuplicateLoggableException.html",[0,0.292,2,0.986,3,0.023,4,0.023,5,0.012,7,0.132,8,1.31,18,4.242,27,0.45,29,0.681,30,0.001,31,0.481,32,0.152,33,0.429,35,1.037,47,0.866,55,2.75,95,0.139,101,0.016,103,0.001,104,0.001,127,1.085,163,2.707,187,1.23,192,3.548,214,3.571,215,2.778,216,1.588,227,0.905,404,1.962,406,2.742,795,5.059,1327,3.39,1542,5.553,1543,6.183,1545,2.742,1547,6.22,1661,5.592,3060,6.091,8137,6.183,8138,6.437,8300,7.438,8304,6.362,8530,5.512,8537,5.059,8538,5.298,8546,7.176,8547,7.176,8836,7.641,9465,7.752,13257,6.219,17679,9.479,17680,11.898,17681,11.898,17682,8.583,17683,8.583]],["title/classes/SchoolNumberMissingLoggableException.html",[0,0.23,17684,5.64]],["body/classes/SchoolNumberMissingLoggableException.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,8,1.303,26,2.601,27,0.448,29,0.675,30,0.001,31,0.477,32,0.151,33,0.425,35,1.028,55,2.742,95,0.152,99,1.444,101,0.016,103,0.001,104,0.001,127,1.075,163,2.684,187,1.219,192,3.218,214,3.552,215,2.755,216,1.574,227,0.897,355,4.661,404,1.951,406,2.719,1238,5.466,1327,3.362,1542,5.531,1543,6.159,1545,2.719,1547,6.201,4227,4.08,4304,5.017,4442,5.228,8137,6.159,8138,6.412,8530,5.466,8532,6.167,8537,5.017,8538,5.254,8836,7.611,13257,6.167,17591,10.948,17684,9.023,17685,11.851,17686,7.862,17687,6.861,17688,8.511]],["title/classes/SchoolParams.html",[0,0.23,13451,5.893]],["body/classes/SchoolParams.html",[0,0.398,2,1.111,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.006,47,0.851,95,0.15,101,0.018,103,0.001,104,0.001,165,0.922,192,3.484,364,1.794,368,4.616,369,2.583,370,3.899,371,3.221,374,3.092,376,2.27,379,2.231,467,3.141,1000,4.997,3834,5.644,4227,4.322,9465,7.613,13451,10.208,17689,9.678,17690,9.678]],["title/classes/SchoolRolePermission.html",[0,0.23,11711,5.438]],["body/classes/SchoolRolePermission.html",[0,0.325,2,0.645,3,0.015,4,0.015,5,0.008,7,0.147,27,0.337,30,0.001,31,0.456,32,0.114,33,0.524,47,0.909,83,2.447,95,0.149,96,1.517,101,0.021,102,2.832,103,0,104,0,145,1.449,165,0.754,167,2.143,234,0.911,240,4.069,334,0.618,347,2.364,355,2.208,359,1.947,364,1.507,369,2.975,370,4.407,371,2.241,380,1.701,386,4.647,398,1.644,400,2.463,402,2.309,404,1.015,405,1.513,406,1.793,483,2.702,844,2.545,854,4.824,1031,1.799,1114,3.299,1278,3.037,1294,3.907,1910,2.652,1916,2.719,2136,2.247,2433,5.298,2618,4.895,2674,5.486,2678,3.063,2682,3.063,2683,6.352,3105,5.151,3106,4.559,4293,4.4,4303,2.463,4457,7.385,4926,3.75,6359,7.296,6367,5.465,6377,3.657,6423,4.959,6442,6.352,6443,4.265,6744,3.345,6745,5.019,8300,5.083,8304,4.161,8305,6.555,8317,4.161,9475,6.955,9717,3.509,9975,5.823,11086,6.352,11690,6.352,11691,4.693,11692,6.179,11693,5.892,11694,5.559,11695,6.655,11696,4.525,11697,4.525,11698,4.693,11699,4.525,11700,4.693,11701,4.693,11702,6.798,11703,4.693,11704,4.693,11705,4.693,11706,4.693,11707,4.693,11708,4.693,11709,4.693,11710,4.693,11711,8.45,11712,7.993,11713,7.993,11714,7.707,11715,4.693,11716,4.693,11717,4.693,11718,4.693,11719,4.693,11720,3.907,11721,6.352,11722,4.161,11723,4.525,11724,4.693,11725,6.798,11726,4.265,11727,4.693,11728,4.693,11729,6.798,11730,4.525,11731,6.555,11732,4.525,11733,3.984,11734,4.693,17691,5.613,17692,5.613]],["title/classes/SchoolRoles.html",[0,0.23,11714,5.438]],["body/classes/SchoolRoles.html",[0,0.324,2,0.641,3,0.015,4,0.015,5,0.008,7,0.146,27,0.336,30,0.001,31,0.454,32,0.114,33,0.522,47,0.908,83,2.437,95,0.148,96,1.509,101,0.021,102,2.817,103,0,104,0,145,1.441,165,0.752,167,2.131,234,0.906,240,4.064,334,0.615,347,2.131,355,2.195,359,1.936,364,1.501,369,2.973,370,4.403,371,2.232,380,1.694,386,4.628,398,1.635,400,2.449,402,2.297,404,1.009,405,1.505,406,1.783,483,2.687,844,2.531,854,4.809,1031,1.789,1114,3.286,1278,3.02,1294,3.886,1910,2.637,1916,2.704,2136,2.234,2433,5.276,2618,4.879,2674,5.718,2678,3.046,2682,3.046,2683,6.327,3105,7.031,3106,6.224,4293,4.382,4303,2.449,4457,7.374,4926,3.735,6359,7.284,6367,5.443,6377,3.637,6423,4.939,6442,6.327,6443,4.242,6744,3.327,6745,4.999,8300,5.063,8304,4.138,8305,6.528,8317,4.138,9475,6.939,9717,3.49,9975,5.808,11086,6.327,11690,6.327,11691,4.667,11692,6.154,11693,5.868,11694,5.536,11695,6.634,11696,4.5,11697,4.5,11698,4.667,11699,4.5,11700,4.667,11701,4.667,11702,6.771,11703,4.667,11704,4.667,11705,4.667,11706,4.667,11707,4.667,11708,4.667,11709,4.667,11710,4.667,11711,8.949,11712,4.667,11713,4.667,11714,8.428,11715,4.667,11716,4.667,11717,4.667,11718,4.667,11719,4.667,11720,3.886,11721,6.327,11722,4.138,11723,4.5,11724,4.667,11725,6.771,11726,4.242,11727,4.667,11728,4.667,11729,6.771,11730,4.5,11731,6.528,11732,4.5,11733,3.961,11734,4.667,17693,5.582,17694,5.582]],["title/injectables/SchoolValidationService.html",[105,0.89,13533,5.64]],["body/injectables/SchoolValidationService.html",[0,0.272,3,0.021,4,0.021,5,0.011,7,0.123,8,1.251,27,0.477,29,0.912,30,0.001,31,0.645,32,0.161,33,0.575,35,1.251,36,2.645,47,0.582,95,0.156,99,1.356,101,0.015,103,0.001,104,0.001,105,1.366,107,1.912,111,2.301,112,2.899,116,3.723,127,1.009,167,3.956,187,1.144,189,7.476,192,3.09,204,2.74,215,2.585,216,1.477,217,1.053,221,2.443,227,1.092,234,1.296,305,2.298,322,6.439,369,1.766,450,3.286,1632,8.471,5302,6.24,5974,6.751,8648,6.977,8668,7.378,9465,7.929,11636,8.353,13533,8.663,13591,7.378,14468,6.439,17679,6.977,17695,12.17,17696,10.361,17697,7.987,17698,10.361,17699,10.361,17700,7.987,17701,7.987,17702,10.361,17703,7.987,17704,7.987]],["title/entities/SchoolYear.html",[380,1.411,9475,4.217]],["body/entities/SchoolYear.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.135,27,0.499,30,0.001,31,0.706,32,0.168,47,0.875,83,3.985,95,0.141,96,2.371,101,0.021,103,0.001,104,0.001,165,0.868,214,2.887,240,4.211,334,0.966,364,2.227,380,2.301,381,2.887,398,2.569,400,3.848,402,3.608,404,1.586,405,2.364,406,2.802,2136,3.511,2433,7.166,4303,3.848,6369,9.129,6438,7.333,6439,6.852,9475,6.876,11735,10.497,11736,8.102,11737,10.534,11738,7.662,11739,8.102,11740,8.102,17705,8.771,17706,8.771,17707,8.771]],["title/injectables/SchoolYearRepo.html",[105,0.89,13534,5.64]],["body/injectables/SchoolYearRepo.html",[0,0.251,3,0.02,4,0.02,5,0.01,7,0.113,8,1.187,10,3.97,12,4.534,18,4.858,26,2.051,27,0.525,29,0.936,30,0.001,31,0.661,32,0.165,33,0.589,34,1.265,35,1.484,36,2.671,40,3.549,49,3.833,83,2.218,95,0.142,99,1.251,101,0.014,103,0.001,104,0.001,105,1.296,107,1.765,112,2.977,167,2.815,187,1.056,217,1.296,221,1.738,227,1.036,234,1.196,380,1.542,381,3.235,404,1.777,596,3.582,692,5.036,877,7.524,883,4.122,884,4.643,885,5.502,908,4.496,909,4.551,910,4.496,911,4.551,912,5.232,913,4.496,914,4.551,915,4.059,919,5.602,3601,5.943,4230,7.286,6369,5.342,6796,5.943,9465,7.205,9475,6.913,11737,6.164,13534,8.218,17708,7.372,17709,11.796,17710,7.372,17711,7.372,17712,11.058,17713,7.372]],["title/injectables/SchoolYearService.html",[105,0.89,13532,5.64]],["body/injectables/SchoolYearService.html",[0,0.306,3,0.024,4,0.024,5,0.013,7,0.138,8,1.35,27,0.464,29,0.714,30,0.001,31,0.505,32,0.126,33,0.45,35,1.088,36,2.43,95,0.156,99,1.528,101,0.017,103,0.001,104,0.001,105,1.475,107,2.156,112,2.728,127,1.138,187,1.29,215,2.915,216,1.666,217,1.188,221,2.123,227,0.949,883,3.776,1919,3.74,1993,6.157,2485,3.891,2570,4.873,3852,6.157,4586,7.784,6359,5.492,9465,7.924,9473,7.53,9474,6.843,9475,7.603,13532,9.349,13534,11.144,17714,12.161,17715,9.006,17716,12.718,17717,9.006,17718,9.006,17719,9.006,17720,9.006]],["title/classes/Scope.html",[0,0.23,277,2.7]],["body/classes/Scope.html",[0,0.246,2,0.83,3,0.019,4,0.019,5,0.01,7,0.111,8,1.171,27,0.533,29,0.868,30,0.001,31,0.614,32,0.183,33,0.547,35,1.171,95,0.124,96,1.953,101,0.014,103,0.001,104,0.001,111,2.644,127,0.913,144,1.975,148,3.001,165,0.765,217,0.953,227,1.233,247,2.867,277,4.684,329,2.129,347,2.488,371,1.992,398,2.117,529,5.543,884,4.582,905,3.001,959,8.473,1773,4.641,2432,7.959,5872,7.484,5873,7.484,5874,7.484,5879,6.631,5880,6.631,5882,8.59,5893,6.631,5894,7.999,5896,6.631,5898,6.631,14782,10.114,17721,7.227,17722,9.699,17723,9.699,17724,7.227,17725,7.227,17726,7.227,17727,7.227,17728,7.227,17729,7.227,17730,7.227,17731,7.227,17732,9.699,17733,10.948,17734,9.699,17735,7.227,17736,7.227,17737,7.227]],["title/classes/ScopeRef.html",[0,0.23,17738,5.126]],["body/classes/ScopeRef.html",[0,0.315,2,1.063,3,0.025,4,0.025,5,0.013,7,0.142,26,2.8,27,0.511,29,0.734,30,0.001,31,0.519,32,0.173,33,0.462,34,2.262,95,0.119,99,1.571,101,0.018,103,0.001,104,0.001,127,1.169,165,0.897,277,5.441,618,3.938,2090,6.526,2381,8.884,6007,8.549,6008,10.505,6009,8.549,7078,6.221,11742,11.862,17738,8.641,17739,9.945]],["title/classes/ServerConsole.html",[0,0.23,17740,5.893]],["body/classes/ServerConsole.html",[0,0.272,2,0.919,3,0.021,4,0.021,5,0.011,7,0.123,8,1.253,27,0.478,29,0.823,30,0.001,31,0.582,32,0.145,33,0.518,35,1.253,47,0.838,95,0.133,101,0.015,103,0.001,104,0.001,127,1.011,148,3.769,215,2.59,227,1.093,235,6.893,364,1.923,379,2.909,444,3.978,1236,8.04,1491,4.574,2116,6.229,2309,6.829,3447,6.691,3448,8.186,3451,8.363,3453,8.363,3456,5.679,3457,9,3458,8.45,3459,4.769,9445,8.993,10548,9.255,17740,9.063,17741,8.003,17742,11.251,17743,10.375,17744,8.003,17745,8.003,17746,10.375,17747,9.063,17748,8.003,17749,9.584,17750,8.003,17751,8.003]],["title/modules/ServerConsoleModule.html",[425,1.808,17752,5.893]],["body/modules/ServerConsoleModule.html",[0,0.243,3,0.019,4,0.019,5,0.01,30,0.001,32,0.1,47,0.521,87,3.533,95,0.177,96,2.603,99,1.213,101,0.014,103,0.001,104,0.001,187,1.024,234,1.16,347,1.457,369,1.581,381,2.353,398,2.094,425,3.123,427,2.643,428,2.788,429,2.875,430,2.862,431,2.837,432,4.025,433,2.696,442,3.872,443,2.812,444,2.741,449,3.872,461,1.648,511,3.66,778,4.806,801,4.17,802,5.181,885,4.791,1444,6.274,1724,4.009,1810,6.246,1919,2.969,2116,3.868,2171,3.073,2172,3.42,2173,3.298,2686,3.805,3458,6.1,3459,4.261,3533,9.786,3898,3.902,4808,4.888,5453,4.806,5483,5.764,6082,5.739,7664,6.246,7811,7.523,9419,4.806,9797,6.605,10037,10.473,10248,7.137,10249,7.137,10250,5.181,10252,5.074,10253,5.299,10254,7.137,10258,6.978,10259,6.978,10260,6.978,10261,5.299,10262,5.074,10273,5.299,10274,5.299,10275,5.181,11226,5.299,11760,5.978,11763,5.299,12184,7.763,14405,9.786,14417,5.978,14425,6.246,14544,6.605,17740,8.412,17752,11.643,17753,7.15,17754,7.15,17755,7.15,17756,7.15,17757,7.15,17758,7.15,17759,7.15,17760,9.63,17761,7.15,17762,7.15]],["title/controllers/ServerController.html",[481,2.63,17763,5.64]],["body/controllers/ServerController.html",[0,0.333,3,0.026,4,0.026,5,0.014,7,0.151,8,1.422,27,0.407,30,0.001,35,1.183,47,0.857,95,0.126,101,0.019,103,0.001,104,0.001,116,3.81,187,1.403,227,1.032,329,3.468,364,1.816,447,4.107,481,4.59,535,6.369,1236,7.094,1491,5.598,2116,5.3,9368,9.195,11042,8.19,17742,12.093,17763,9.841,17764,9.795,17765,9.795]],["title/modules/ServerModule.html",[425,1.808,17766,5.64]],["body/modules/ServerModule.html",[0,0.186,3,0.009,4,0.009,5,0.005,8,0.406,27,0.227,29,0.267,30,0.001,31,0.307,32,0.077,33,0.168,35,0.406,47,0.802,52,1.561,55,1.205,72,3.751,87,1.663,95,0.175,96,1.481,99,0.571,101,0.013,103,0,104,0,111,1.598,127,0.692,145,2.566,148,1.041,187,0.482,191,1.869,192,1.003,200,1.096,214,1.803,216,1.478,217,1.16,227,0.355,234,0.889,346,4.659,347,1.628,349,2.226,355,2.155,369,0.744,371,1.51,379,0.776,381,1.107,398,0.985,425,2.778,426,7.601,427,2.953,428,1.312,429,1.353,430,1.347,431,1.335,432,1.244,433,1.269,438,4.696,442,2.203,443,1.323,444,1.29,447,3.35,449,3.212,461,0.776,511,1.723,574,2.484,627,1.048,667,1.58,701,2.421,704,1.663,722,1.484,731,1.318,778,3.683,801,1.962,839,1.58,874,2.388,885,2.726,953,2.192,1052,2.825,1053,3.543,1272,2.3,1273,2.629,1274,2.629,1275,2.629,1294,2.342,1298,1.58,1299,1.561,1300,1.561,1301,1.652,1378,2.226,1379,2.028,1409,2.262,1412,3.624,1417,2.161,1418,2.262,1438,2.262,1444,2.192,1508,1.904,1545,1.075,1576,2.028,1581,7.366,1680,2.3,1696,1.923,1724,3.072,1841,2.438,1919,2.878,2116,3.75,2171,1.446,2172,1.609,2173,1.552,2174,2.131,2298,2.028,2478,3.131,2686,1.791,2753,7.601,3462,2.192,3534,6.989,3543,2.689,3544,2.275,3900,5.267,3912,4.28,3913,8.96,4169,2.226,4510,2.494,4556,1.723,4561,2.916,4600,7.601,4808,2.3,5400,2.226,5453,2.262,6317,6.237,6491,2.005,7652,2.052,7869,1.869,8206,2.342,9611,2.388,10092,2.342,10245,6.989,10246,4.824,10248,4.061,10249,4.061,10250,2.438,10251,4.163,10252,2.388,10253,2.494,10254,4.061,10258,3.97,10259,3.97,10260,3.97,10261,2.494,10262,2.388,10272,6.071,10273,2.494,10274,2.494,10275,2.438,10276,2.712,10277,2.438,10278,2.557,10317,2.342,10319,4.061,10321,2.438,10323,2.438,10325,10.059,10326,4.061,10582,7.601,10789,2.388,11046,2.813,11156,2.077,11592,2.342,11608,5.137,11610,2.494,11763,2.494,12445,7.601,12564,2.712,12948,2.557,13160,2.712,13367,7.601,13432,7.601,13439,2.813,13644,7.601,14170,5.587,14391,2.629,14417,2.813,14711,7.601,15226,7.601,15401,7.601,15565,4.581,15585,2.813,15777,2.939,15779,2.939,15781,2.939,15782,2.939,15783,2.939,16484,2.813,16606,8.014,16610,2.939,16790,2.712,17763,7.354,17766,11.625,17767,3.365,17768,3.365,17769,7.366,17770,7.601,17771,7.601,17772,7.601,17773,7.601,17774,7.601,17775,7.601,17776,7.601,17777,3.108,17778,6.403,17779,8.711,17780,3.365,17781,6.403,17782,3.108,17783,3.108,17784,3.108,17785,3.108,17786,3.108,17787,3.108,17788,3.108,17789,3.108,17790,3.108,17791,3.108,17792,3.108,17793,3.108,17794,3.108,17795,3.108,17796,2.813,17797,3.108,17798,2.712,17799,2.712,17800,3.108,17801,3.108,17802,3.108,17803,3.108,17804,7.38,17805,3.108,17806,3.108,17807,3.108,17808,3.108,17809,3.108,17810,3.108,17811,3.108,17812,3.108,17813,3.108,17814,6.403,17815,3.108,17816,5.062,17817,6.403,17818,3.108,17819,3.108,17820,3.108,17821,3.108,17822,3.108,17823,3.108,17824,3.108,17825,3.108,17826,3.108,17827,3.108,17828,3.108,17829,2.939,17830,3.108,17831,3.108,17832,3.108,17833,3.108,17834,3.108,17835,3.108,17836,3.108,17837,5.062,17838,3.108,17839,5.062,17840,3.108,17841,5.062,17842,3.108,17843,3.108,17844,3.108,17845,4.581,17846,3.108]],["title/modules/ServerTestModule.html",[425,1.808,17845,5.64]],["body/modules/ServerTestModule.html",[0,0.18,3,0.009,4,0.009,5,0.005,8,0.39,27,0.28,29,0.42,30,0.001,31,0.378,32,0.094,33,0.265,35,0.64,47,0.791,52,1.498,55,1.166,59,1.002,72,3.66,87,1.596,95,0.174,96,1.432,99,0.548,101,0.013,103,0,104,0,111,1.559,127,0.67,145,2.521,148,0.999,187,0.463,191,1.794,192,0.963,200,1.727,214,1.744,216,1.442,217,1.135,227,0.34,234,0.86,346,4.529,347,1.589,349,2.136,355,2.084,369,0.714,371,1.461,379,0.744,381,1.063,398,0.946,425,2.734,426,7.456,427,3.611,428,1.259,429,1.299,430,1.293,431,1.281,432,1.194,433,1.218,438,4.615,442,2.13,443,1.27,444,1.238,447,3.269,449,3.134,461,0.744,511,1.653,574,3.055,627,1.65,667,1.516,701,2.723,704,1.596,722,1.425,731,1.265,778,3.562,801,1.884,839,1.516,874,2.292,885,2.636,953,2.104,1052,2.746,1053,3.457,1272,2.208,1273,2.523,1274,2.523,1275,2.523,1294,3.688,1298,1.516,1299,1.498,1300,1.498,1301,1.585,1378,2.136,1379,1.947,1408,2.34,1409,3.562,1412,4.457,1417,2.074,1418,2.171,1438,3.562,1444,2.104,1508,2.999,1545,1.032,1576,3.194,1581,7.225,1680,2.208,1696,1.846,1724,3.777,1841,2.34,1919,3.574,2116,3.645,2171,1.388,2172,1.545,2173,1.49,2174,2.046,2298,3.194,2478,4.455,2686,1.719,2753,7.456,3462,2.104,3534,6.855,3543,2.601,3544,2.201,3900,5.12,3912,4.139,3913,8.83,4169,3.505,4510,2.394,4556,1.653,4561,2.82,4600,7.456,4808,2.208,5400,2.136,5453,2.171,6317,6.118,6491,1.925,7652,3.231,7869,1.794,8206,2.248,9611,2.292,10092,2.248,10245,3.927,10246,6.8,10248,3.927,10249,3.927,10250,2.34,10251,4.026,10252,2.292,10253,2.394,10254,3.927,10258,3.839,10259,3.839,10260,3.839,10261,2.394,10262,2.292,10272,5.924,10273,2.394,10274,2.394,10275,2.34,10276,2.604,10277,2.34,10278,2.454,10317,5.991,10319,5.778,10321,2.34,10323,3.839,10325,9.96,10326,3.927,10582,7.456,10789,3.76,11046,2.7,11156,1.994,11592,3.688,11608,3.927,11610,2.394,11763,2.394,12445,7.456,12564,2.604,12948,2.454,13160,2.604,13367,7.456,13432,7.456,13439,2.7,13644,7.456,14170,5.431,14391,2.523,14417,2.7,14711,7.456,15226,7.456,15401,7.456,15565,4.43,15585,2.7,15777,2.821,15779,2.821,15781,2.821,15782,2.821,15783,2.821,16484,2.7,16606,7.875,16610,2.821,16790,2.604,17763,7.196,17766,7.196,17769,7.225,17770,7.456,17771,7.456,17772,7.456,17773,7.456,17774,7.456,17775,7.456,17776,7.456,17777,2.984,17778,6.224,17779,8.544,17781,6.224,17782,2.984,17783,2.984,17784,2.984,17785,2.984,17786,2.984,17787,2.984,17788,2.984,17789,2.984,17790,2.984,17791,2.984,17792,2.984,17793,2.984,17794,2.984,17795,2.984,17796,2.7,17797,2.984,17798,2.604,17799,2.604,17800,2.984,17801,2.984,17802,2.984,17803,2.984,17804,7.202,17805,2.984,17806,2.984,17807,2.984,17808,2.984,17809,2.984,17810,2.984,17811,2.984,17812,2.984,17813,2.984,17814,6.224,17815,2.984,17816,4.895,17817,6.224,17818,2.984,17819,2.984,17820,2.984,17821,2.984,17822,2.984,17823,2.984,17824,2.984,17825,2.984,17826,2.984,17827,2.984,17828,2.984,17829,2.821,17830,2.984,17831,2.984,17832,2.984,17833,2.984,17834,2.984,17835,2.984,17836,2.984,17837,4.895,17838,2.984,17839,4.895,17840,2.984,17841,4.895,17842,4.895,17843,4.895,17844,4.895,17845,11.602,17846,2.984,17847,3.23,17848,3.23,17849,3.23,17850,3.23]],["title/classes/SetHeightBodyParams.html",[0,0.23,4032,5.893]],["body/classes/SetHeightBodyParams.html",[0,0.401,2,1.128,3,0.026,4,0.026,5,0.014,7,0.151,27,0.408,30,0.001,32,0.138,55,2.593,95,0.151,101,0.019,103,0.001,104,0.001,165,0.93,364,1.82,368,3.879,369,2.606,370,3.933,371,3.249,374,3.137,376,2.303,467,3.169,3236,8.113,4032,10.298,17851,11.788,17852,9.819,17853,9.819,17854,9.819,17855,10.89]],["title/entities/ShareToken.html",[380,1.411,6368,4.695]],["body/entities/ShareToken.html",[0,0.229,3,0.018,4,0.018,5,0.009,7,0.162,26,2.484,27,0.51,30,0.001,32,0.172,33,0.615,34,1.153,49,4.911,83,3.174,95,0.153,96,2.496,97,2.859,101,0.018,103,0.001,104,0.001,145,2.383,165,0.729,199,3.525,227,0.973,234,1.498,240,3.853,247,2.666,334,0.74,351,5.611,364,2.28,369,2.718,370,3.788,380,1.931,381,2.212,385,7.632,398,1.968,399,3.615,402,2.764,404,1.215,405,1.811,406,2.147,411,5.106,412,5.618,421,5.25,422,5.618,701,2.347,1031,3.639,2674,4.233,3305,4.562,3333,8.502,3574,4.502,4294,4.05,4712,7.015,4714,6.767,4720,5.618,5664,5.699,5692,5.618,5693,5.417,5694,5.618,6102,4.445,6111,5.65,6368,6.426,6382,5.618,9493,4.981,9561,7.484,9566,5.618,9642,4.869,9643,4.869,9700,6.208,9701,6.208,9740,5.106,9742,5.106,11764,7.719,11765,11.636,11766,6.208,11767,9.153,11768,7.762,11769,8.87,11770,6.208,11771,4.445,11772,4.378,11773,6.208,11774,6.208,17856,6.72,17857,6.72,17858,6.72,17859,6.72,17860,6.72,17861,6.72]],["title/classes/ShareTokenBodyParams.html",[0,0.23,17862,5.893]],["body/classes/ShareTokenBodyParams.html",[0,0.331,2,0.833,3,0.019,4,0.019,5,0.01,7,0.111,27,0.542,30,0.001,32,0.176,33,0.586,34,1.669,47,0.708,55,2.578,95,0.141,101,0.014,103,0.001,104,0.001,165,0.767,192,2.899,347,1.982,359,4.064,364,2.172,368,5.158,369,2.887,370,4.357,371,3.599,373,5.133,374,2.317,376,1.701,379,2.701,467,3.285,471,4.667,494,5.86,905,4.038,1000,4.158,1031,3.116,1036,8.129,1044,3.56,1359,7.388,2543,8.904,3091,4.433,3574,5.348,3834,4.23,5380,6.064,5419,7.838,6111,5.457,6368,8.157,7780,8.129,11768,8.354,11771,4.798,11772,4.725,17855,8.982,17862,8.494,17863,9.546,17864,7.253,17865,9.581,17866,9.581,17867,7.253,17868,9.723,17869,7.253,17870,9.154,17871,7.253,17872,7.253,17873,7.253,17874,9.723,17875,8.129,17876,7.253,17877,7.253]],["title/classes/ShareTokenContextTypeMapper.html",[0,0.23,17878,5.893]],["body/classes/ShareTokenContextTypeMapper.html",[0,0.313,2,1.058,3,0.024,4,0.024,5,0.013,7,0.142,8,1.369,27,0.382,29,0.731,30,0.001,31,0.517,32,0.159,33,0.46,35,1.113,95,0.157,101,0.018,103,0.001,104,0.001,187,1.32,208,3.419,217,1.495,227,0.971,234,1.84,305,2.651,627,3.825,2027,8.004,2767,4.153,3218,7.501,3331,6.358,6017,7.702,6489,8.258,10205,9.906,10210,9.906,10225,8.048,10232,7.702,11767,10.334,11771,6.094,11772,6.002,14451,8.048,17878,9.906,17879,11.34,17880,9.212]],["title/controllers/ShareTokenController.html",[481,2.63,17881,5.64]],["body/controllers/ShareTokenController.html",[0,0.176,3,0.014,4,0.014,5,0.007,7,0.079,8,0.923,27,0.378,29,0.722,30,0.001,31,0.511,32,0.194,33,0.455,35,1.1,36,2.447,95,0.164,100,1.727,101,0.01,103,0,104,0,112,2.742,187,0.739,206,2.642,215,1.67,216,0.954,217,1.485,221,2.147,227,0.96,231,2.979,264,3.856,351,4.976,364,1.688,376,1.21,447,2.164,481,2.012,483,2.484,491,6.104,498,5.226,502,4.779,506,7.336,509,7.296,513,6.366,543,6.124,553,6.294,554,8.246,555,2.724,556,2.792,557,2.816,558,2.453,559,2.816,561,2.816,563,5.621,564,4.788,805,4.16,883,3.205,1016,3.839,1439,4.816,1469,5.057,2037,5.812,2686,4.846,2769,2.55,2926,6.919,2928,8.117,2930,3.921,2931,6.919,2934,7.336,2955,4.327,3013,3.413,3026,3.185,3027,2.949,3218,5.057,3574,2.516,3710,4.607,6042,5.972,6111,2.567,6282,4.16,6368,5.321,8210,8.795,11763,3.824,12669,6.391,13626,5.666,16988,4.16,17003,4.508,17005,4.508,17862,8.796,17865,4.508,17866,4.508,17881,6.391,17882,10.069,17883,5.16,17884,8.412,17885,8.412,17886,8.412,17887,5.16,17888,8.555,17889,7.645,17890,5.16,17891,5.16,17892,5.16,17893,5.16,17894,10.179,17895,8.796,17896,5.16,17897,5.16,17898,7.645,17899,5.16,17900,7.645,17901,5.16,17902,5.16,17903,5.16,17904,5.16,17905,5.16,17906,5.16,17907,4.508,17908,4.508,17909,7.341,17910,6.391,17911,6.391,17912,5.16,17913,5.16,17914,5.16,17915,5.16,17916,5.16,17917,5.16,17918,5.16,17919,5.16,17920,5.16,17921,5.16,17922,4.508,17923,5.16,17924,7.645,17925,5.16,17926,5.16,17927,5.16,17928,5.16,17929,5.16]],["title/classes/ShareTokenDO.html",[0,0.23,17930,5.126]],["body/classes/ShareTokenDO.html",[0,0.262,2,0.886,3,0.02,4,0.02,5,0.011,7,0.119,26,2.36,27,0.531,29,0.612,30,0.001,31,0.432,32,0.188,33,0.652,34,1.738,47,0.737,83,3.047,95,0.13,101,0.024,103,0.001,104,0.001,127,0.974,165,0.799,188,2.92,192,2.299,199,4.317,231,6.527,351,5.588,385,7.6,404,1.831,411,5.86,421,6.024,596,2.342,1031,3.246,1857,3.298,1939,6.931,2586,4.071,2691,3.384,2701,3.557,3574,3.76,4092,5.272,4714,4.596,4982,4.324,4994,4.407,5612,5.588,5664,4.76,6111,3.837,6424,4.498,7039,7.911,7040,6.024,9717,4.821,11767,8.163,11768,6.923,11769,8.833,13428,6.737,17930,9.475,17931,12.799,17932,7.711,17933,10.127,17934,9.454,17935,7.711,17936,9.115,17937,7.711,17938,7.711,17939,7.124,17940,6.447,17941,7.711,17942,7.711,17943,7.124]],["title/classes/ShareTokenFactory.html",[0,0.23,17944,6.231]],["body/classes/ShareTokenFactory.html",[0,0.299,2,1.009,3,0.023,4,0.023,5,0.012,7,0.135,8,1.33,26,2.631,27,0.365,29,0.697,30,0.001,31,0.493,32,0.123,33,0.439,34,1.89,35,1.062,49,3.427,59,2.728,95,0.162,99,1.492,101,0.017,103,0.001,104,0.001,217,1.159,227,1.161,231,5.074,234,1.787,351,5.443,404,1.991,674,6.01,676,6.454,731,3.442,734,5.074,735,5.074,2422,5.36,3058,6.515,3574,4.286,4150,5.814,6111,4.373,7142,7.349,11768,6.009,11772,5.727,17888,6.679,17930,6.679,17944,11.111,17945,11.014,17946,8.79,17947,11.014,17948,11.014,17949,8.79,17950,8.79,17951,8.79,17952,8.79,17953,7.678]],["title/classes/ShareTokenImportBodyParams.html",[0,0.23,17895,5.893]],["body/classes/ShareTokenImportBodyParams.html",[0,0.371,2,0.992,3,0.023,4,0.023,5,0.012,7,0.133,27,0.452,30,0.001,31,0.611,32,0.153,33,0.544,34,1.87,47,0.912,95,0.153,101,0.016,103,0.001,104,0.001,165,0.86,188,4.125,234,1.768,351,5.897,359,3.778,364,2.02,368,4.949,369,2.77,370,4.181,371,3.454,374,2.76,376,2.026,379,2.511,467,3.208,469,3.811,470,5.028,471,4.636,6048,10.424,6538,10.424,6916,6.964,6918,8.075,11205,9.109,11216,6.996,17863,9.322,17895,9.517,17954,8.639,17955,8.639,17956,10.894,17957,8.639,17958,8.639]],["title/interfaces/ShareTokenInfoDto.html",[334,0.743,17959,5.64]],["body/interfaces/ShareTokenInfoDto.html",[3,0.026,4,0.026,5,0.014,7,0.151,30,0.001,32,0.177,47,0.991,95,0.126,101,0.019,103,0.001,104,0.001,165,0.93,334,1.082,336,2.393,351,6.622,6111,6.519,11768,8.957,11771,6.495,11772,6.398,17959,9.856,17960,9.819,17961,9.819,17962,10.562]],["title/classes/ShareTokenInfoResponse.html",[0,0.23,17910,5.64]],["body/classes/ShareTokenInfoResponse.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,27,0.517,29,0.675,30,0.001,31,0.477,32,0.175,33,0.425,47,0.907,95,0.152,101,0.016,103,0.001,104,0.001,127,1.364,165,0.852,351,6.789,364,2.197,376,1.996,411,6.467,467,3.457,469,3.754,966,4.357,1031,2.728,2784,6.167,2787,6.747,2914,5.466,6102,5.63,6111,6.399,11768,8.792,11771,5.63,11772,5.545,17863,10.047,17910,10.752,17962,10.367,17963,8.511,17964,8.511,17965,8.511,17966,8.511,17967,8.511,17968,8.511]],["title/classes/ShareTokenInfoResponseMapper.html",[0,0.23,17907,5.893]],["body/classes/ShareTokenInfoResponseMapper.html",[0,0.319,2,1.078,3,0.033,4,0.025,5,0.013,7,0.144,8,1.385,27,0.39,29,0.744,30,0.001,31,0.526,32,0.132,33,0.469,35,1.133,95,0.147,100,3.84,101,0.018,103,0.001,104,0.001,217,1.238,227,0.989,234,1.523,351,6.121,627,3.857,974,5.793,975,6.555,982,4.702,1822,6.66,6111,4.669,14148,7.846,17907,10.019,17910,10.787,17922,8.198,17959,10.787,17962,7.565,17969,10.595,17970,11.469,17971,9.384,17972,9.384,17973,9.384]],["title/classes/ShareTokenParentTypeMapper.html",[0,0.23,17974,5.893]],["body/classes/ShareTokenParentTypeMapper.html",[0,0.311,2,1.048,3,0.024,4,0.024,5,0.013,7,0.14,8,1.362,27,0.379,29,0.724,30,0.001,31,0.512,32,0.158,33,0.456,35,1.102,95,0.157,101,0.017,103,0.001,104,0.001,187,1.308,208,3.388,217,1.487,227,0.962,234,1.83,305,2.627,627,3.81,2027,7.972,2767,4.116,3218,7.459,3331,6.322,6017,7.632,6022,6.766,6489,8.224,10205,9.85,10210,9.85,10220,8.433,10227,8.433,10232,7.632,11768,8.736,11771,6.039,11772,5.948,14451,7.975,14452,8.433,17974,9.85,17975,11.276,17976,9.129,17977,9.129]],["title/classes/ShareTokenPayloadResponse.html",[0,0.23,17978,5.893]],["body/classes/ShareTokenPayloadResponse.html",[0,0.306,2,1.034,3,0.024,4,0.024,5,0.013,7,0.138,27,0.505,29,0.714,30,0.001,31,0.505,32,0.171,33,0.45,47,0.814,95,0.143,101,0.017,103,0.001,104,0.001,127,1.138,165,0.882,231,5.199,351,6.285,364,2.073,376,2.113,467,3.419,1031,2.887,2914,5.784,3574,5.93,6096,7.036,6102,5.957,6111,6.051,11768,8.94,11771,5.957,11772,5.868,17863,9.936,17936,10.253,17978,9.768,17979,9.006,17980,11.182,17981,9.006,17982,9.006,17983,9.006,17984,8.32,17985,8.32]],["title/injectables/ShareTokenRepo.html",[105,0.89,17986,5.438]],["body/injectables/ShareTokenRepo.html",[0,0.169,3,0.013,4,0.013,5,0.007,7,0.076,8,0.896,10,2.996,12,3.422,18,3.666,26,2.468,27,0.541,29,1.025,30,0.001,31,0.725,32,0.181,33,0.646,34,1.526,35,1.561,36,2.628,40,2.386,95,0.135,96,1.34,101,0.009,103,0,104,0,105,0.978,107,1.186,111,2.366,112,2.923,145,1.915,148,1.534,165,0.702,187,0.71,199,2.833,217,1.463,221,1.168,227,1.114,231,4.283,234,1.204,351,4.878,359,2.573,380,2.211,385,4.987,398,1.452,404,1.341,595,1.707,596,3.887,661,4.983,878,5.164,884,3.505,885,5.259,915,2.729,1857,4.744,2092,2.805,2383,8.972,2385,5.265,2386,5.265,2387,5.265,2388,5.265,2389,5.164,2390,5.164,2391,5.265,2392,5.164,2393,5.265,2398,3.517,2400,5.641,2401,3.517,2403,3.517,2405,3.279,2406,5.265,2407,3.517,2409,3.517,2411,5.265,2417,3.332,2418,5.164,2420,3.517,2422,3.023,2423,3.023,2424,3.517,2426,3.517,2428,3.517,2429,3.517,2447,3.674,3574,3.618,4714,4.421,5664,4.58,5766,3.591,5767,3.591,5768,3.591,5769,3.591,5770,3.591,5771,3.591,5772,3.591,5773,3.591,5774,3.591,5796,6.854,6111,3.691,6368,8.416,8781,3.766,11764,9.615,11769,7.711,11771,3.279,11772,3.229,14337,4.579,14347,4.144,17930,8.738,17934,6.203,17936,5.981,17939,4.579,17943,4.579,17986,5.981,17987,8.892,17988,4.957,17989,7.419,17990,7.419,17991,4.957,17992,7.419,17993,4.957,17994,4.957,17995,4.957,17996,4.957,17997,4.957,17998,4.957,17999,4.957,18000,4.957,18001,4.957,18002,7.419,18003,4.957,18004,4.957,18005,4.957,18006,4.957,18007,4.957,18008,4.957]],["title/classes/ShareTokenResponse.html",[0,0.23,17911,5.64]],["body/classes/ShareTokenResponse.html",[0,0.296,2,0.999,3,0.023,4,0.023,5,0.012,7,0.134,27,0.521,29,0.69,30,0.001,31,0.488,32,0.176,33,0.598,47,0.797,83,3.292,95,0.14,101,0.017,103,0.001,104,0.001,127,1.382,165,0.863,231,7.25,234,1.411,351,6.529,364,2.219,375,4.856,376,2.039,385,8.7,411,6.607,421,6.792,467,3.479,966,4.451,15806,8.032,17863,10.111,17888,6.607,17911,10.821,17940,7.269,17978,10.455,18009,8.695,18010,8.695,18011,8.695,18012,8.695,18013,8.695,18014,8.695]],["title/classes/ShareTokenResponseMapper.html",[0,0.23,17908,5.893]],["body/classes/ShareTokenResponseMapper.html",[0,0.32,2,1.08,3,0.025,4,0.025,5,0.013,7,0.145,8,1.387,27,0.39,29,0.746,30,0.001,31,0.527,32,0.132,33,0.47,35,1.136,95,0.147,100,3.845,101,0.018,103,0.001,104,0.001,217,1.24,227,0.991,231,5.43,234,1.526,351,6.127,385,6.322,627,3.861,974,5.806,975,6.564,982,4.713,6368,6.547,11771,6.222,11772,6.128,14148,7.864,17908,10.033,17911,10.796,17930,9.811,17969,10.61,18015,11.485,18016,9.406,18017,9.406,18018,8.689]],["title/injectables/ShareTokenService.html",[105,0.89,18019,5.438]],["body/injectables/ShareTokenService.html",[0,0.209,3,0.016,4,0.016,5,0.009,7,0.094,8,1.047,27,0.478,29,0.913,30,0.001,31,0.646,32,0.172,33,0.575,35,1.318,36,2.597,59,1.904,83,1.846,95,0.157,101,0.012,103,0.001,104,0.001,105,1.143,107,1.469,111,2.509,112,2.862,127,1.095,130,8.9,138,3.763,148,1.898,167,2.343,187,0.879,190,4.946,199,3.308,216,2.129,217,1.44,221,2.817,227,1.059,231,5.799,234,0.996,307,3.836,309,5.686,329,1.808,351,5.69,385,5.824,701,3.509,3030,4.946,3031,4.946,4940,9.595,4941,9.333,5147,7.279,6368,8.55,11768,4.195,11769,9.595,11771,4.059,11772,3.998,12137,5.668,12146,5.668,17930,8.749,17934,7.245,17936,8.799,17953,5.36,17962,9.281,17986,9.901,18018,8.005,18019,6.985,18020,11.95,18021,8.665,18022,10.046,18023,8.665,18024,8.665,18025,6.136,18026,9.633,18027,8.665,18028,6.136,18029,6.136,18030,6.136,18031,8.665,18032,6.136,18033,8.665,18034,6.136,18035,5.36,18036,5.36,18037,6.136,18038,6.136,18039,6.136,18040,6.136,18041,6.136,18042,6.136,18043,6.136,18044,6.136,18045,5.668,18046,6.136,18047,5.668,18048,6.136,18049,5.668,18050,6.136]],["title/injectables/ShareTokenUC.html",[105,0.89,17909,5.438]],["body/injectables/ShareTokenUC.html",[0,0.104,3,0.008,4,0.008,5,0.004,7,0.047,8,0.611,26,2.621,27,0.464,29,0.887,30,0.001,31,0.627,32,0.165,33,0.559,34,0.868,35,1.321,36,2.43,39,3.189,47,0.984,55,1.657,59,2.338,83,2.267,95,0.148,99,0.518,100,1.022,101,0.006,103,0,104,0,105,0.667,107,0.731,111,2.625,112,2.897,127,0.639,130,6.906,138,2.197,145,1.306,148,0.945,187,0.437,188,2.453,190,2.461,199,2.876,206,1.563,216,1.763,217,1.527,221,2.917,227,1.004,231,5.756,234,1.618,305,2.742,307,4.709,309,6.553,329,2.219,347,1.535,351,5.112,368,1.998,385,2.052,461,2.075,701,2.631,731,1.981,766,1.312,843,2.827,1052,2.64,1053,3.341,1132,4.078,1298,2.375,1299,2.347,1300,2.347,1415,3.904,1439,1.46,1545,0.975,1720,2.32,1828,3.723,1865,4.714,1866,6.19,1880,1.989,1881,1.934,1952,5.114,2171,1.312,2172,1.46,2173,1.408,2563,3.163,2675,5.233,2685,1.745,2691,2.22,2701,2.333,2767,1.377,2988,4.078,2989,5.221,2995,7.242,2996,7.446,3003,5.724,3013,3.346,3026,1.885,3027,1.745,3030,2.461,3031,2.461,3066,2.667,3067,2.667,3069,2.553,3070,6.073,3218,2.02,3305,1.509,3808,4.801,3830,4.772,3898,1.666,4714,1.82,4955,4.54,4973,4.673,5147,7.725,5664,1.885,5868,2.212,6048,8.326,6111,4.742,6368,5.244,6515,7.683,6517,4.23,6537,8.038,6538,9.554,6577,4.673,6581,4.673,6585,4.419,6586,2.821,6589,4.772,6597,4.419,7780,4.23,9217,2.553,11591,2.212,11767,2.461,11768,6.516,11771,2.02,11772,1.989,13832,4.673,17865,2.667,17866,2.667,17878,2.667,17884,6.959,17885,6.959,17886,5.983,17909,4.078,17922,4.419,17930,2.32,17934,6.981,17936,7.683,17953,6.581,17959,4.23,17962,4.078,17974,2.667,17984,2.821,17985,2.821,18019,7.256,18045,6.959,18047,6.959,18049,6.959,18051,11.39,18052,3.053,18053,5.059,18054,5.059,18055,5.059,18056,5.059,18057,3.053,18058,3.053,18059,5.059,18060,3.053,18061,5.059,18062,3.053,18063,5.059,18064,3.053,18065,5.059,18066,3.053,18067,3.053,18068,3.053,18069,2.821,18070,3.053,18071,3.053,18072,3.053,18073,3.053,18074,3.053,18075,5.059,18076,3.053,18077,5.059,18078,3.053,18079,2.821,18080,3.053,18081,3.053,18082,3.053,18083,5.059,18084,3.053,18085,5.059,18086,3.053,18087,6.477,18088,3.053,18089,3.053,18090,3.053,18091,3.053,18092,3.053,18093,5.059,18094,5.059,18095,7.533,18096,3.053,18097,3.053,18098,6.477,18099,5.059,18100,3.053,18101,3.053,18102,3.053,18103,5.059,18104,3.053,18105,5.059,18106,5.059,18107,5.059,18108,3.053,18109,3.053,18110,3.053,18111,3.053,18112,3.053,18113,6.477,18114,3.053,18115,3.053,18116,3.053]],["title/classes/ShareTokenUrlParams.html",[0,0.23,17894,5.893]],["body/classes/ShareTokenUrlParams.html",[0,0.395,2,1.101,3,0.025,4,0.025,5,0.014,7,0.147,27,0.398,30,0.001,32,0.134,47,0.846,95,0.149,101,0.018,103,0.001,104,0.001,165,0.917,351,6.578,359,4.029,364,1.777,368,4.589,369,2.568,370,3.876,371,3.202,374,3.062,376,2.248,379,2.209,467,3.123,470,4.895,479,7.105,17863,9.076,17870,9.076,17894,10.149,18117,9.585,18118,11.618,18119,9.585]],["title/modules/SharingApiModule.html",[425,1.808,17769,5.27]],["body/modules/SharingApiModule.html",[0,0.343,3,0.02,4,0.02,5,0.011,30,0.001,95,0.173,101,0.019,103,0.001,104,0.001,187,1.096,425,3.209,427,2.829,428,2.984,429,3.077,430,3.063,431,3.036,432,4.425,433,3.8,438,6.151,442,4.051,443,3.01,444,2.934,447,4.723,449,4.529,766,3.289,1545,2.445,1945,7.045,2691,3.358,2701,3.53,2767,3.45,2769,3.782,3546,6.169,13371,9.651,13372,9.651,13390,9.651,17769,10.954,17881,9.418,17909,10.296,17986,8.123,18019,9.081,18026,8.123,18035,6.685,18036,6.685,18120,7.653,18121,7.653,18122,7.653,18123,10.678,18124,7.07,18125,7.07,18126,7.07]],["title/modules/SharingModule.html",[425,1.808,18123,5.64]],["body/modules/SharingModule.html",[0,0.337,3,0.02,4,0.02,5,0.011,30,0.001,95,0.172,101,0.019,103,0.001,104,0.001,187,1.068,425,3.176,427,2.756,428,2.907,429,2.997,430,2.984,431,2.957,432,4.38,433,4.194,438,6.111,442,3.981,443,2.932,444,2.858,447,4.152,449,4.471,766,3.204,1545,2.381,1945,7,2691,3.271,2701,3.438,2767,3.361,2769,3.684,3546,6.009,13371,9.589,13372,9.589,13390,9.589,17769,5.823,17881,8.279,17909,7.983,17986,10.22,18019,10.99,18026,10.22,18035,6.512,18036,6.512,18123,11.803,18124,6.886,18125,6.886,18126,6.886,18127,7.454,18128,7.454,18129,7.454,18130,7.454]],["title/classes/SingleColumnBoardResponse.html",[0,0.23,16885,5.64]],["body/classes/SingleColumnBoardResponse.html",[0,0.239,2,0.807,3,0.019,4,0.019,5,0.01,7,0.108,27,0.517,29,0.557,30,0.001,31,0.394,32,0.184,33,0.351,34,1.633,47,0.907,95,0.138,101,0.013,103,0.001,104,0.001,127,1.202,145,1.813,165,0.751,240,2.982,347,2.358,364,2.241,376,1.648,379,2.873,467,3.35,469,3.099,475,4.768,966,3.596,1011,3.738,1013,4.948,1041,6.715,1295,5.493,1344,8.264,1474,4.326,1919,2.917,1925,4.946,1984,5.733,2697,6.727,2774,9.956,2787,5.949,2789,3.708,2910,5.193,2911,5.193,3402,9.671,3715,7.556,4047,5.873,4111,6.489,4982,5.335,4994,5.438,5444,10.104,6364,6.396,6700,5.488,6704,7.434,7236,5.338,7276,8.573,7450,6.137,8004,10.106,16885,10.106,18131,7.025,18132,7.025,18133,7.025,18134,7.025,18135,7.025,18136,7.025,18137,7.025,18138,5.338,18139,7.025,18140,7.025]],["title/classes/SingleFileParams.html",[0,0.23,6135,4.534]],["body/classes/SingleFileParams.html",[0,0.455,2,0.758,3,0.017,4,0.024,5,0.013,7,0.101,26,2.616,27,0.274,30,0.001,32,0.166,39,1.769,47,0.973,95,0.157,99,1.12,101,0.025,103,0.001,104,0.001,150,2.42,165,0.719,204,2.264,334,0.727,347,1.858,364,1.223,369,1.459,373,4.813,374,2.108,375,4.571,376,1.548,377,5.94,379,1.521,380,1.38,467,3.709,469,2.911,470,5.152,471,4.794,565,3.483,1000,5.229,1001,6.714,1031,3.348,1044,3.239,1291,2.808,1381,3.848,2744,4.658,2915,5.514,3574,3.218,4227,2.272,5725,5.319,5740,6.826,6064,4.181,6077,5.94,6083,6.203,6111,3.283,6114,4.511,6115,4.593,6116,4.593,6119,7.704,6122,8.089,6123,7.703,6124,7.843,6125,4.593,6126,4.511,6127,6.91,6128,4.511,6129,4.593,6130,4.238,6131,7.453,6132,4.365,6133,4.593,6134,4.593,6135,6.128,6136,4.511,6137,4.435,6138,4.435,6139,4.238,6140,4.593,6141,4.511,6142,4.593,6143,4.435,6144,4.511,6145,4.299,6146,4.299,6147,4.593,18141,6.599]],["title/classes/SortExternalToolParams.html",[0,0.23,8924,5.64]],["body/classes/SortExternalToolParams.html",[0,0.379,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,27,0.462,30,0.001,31,0.624,32,0.156,33,0.556,34,1.911,95,0.155,101,0.021,103,0.001,104,0.001,144,2.445,165,0.879,209,3.08,329,2.636,364,2.064,374,2.858,375,4.518,376,2.098,404,2.013,469,3.946,471,4.738,596,3.382,1031,3.569,1044,4.391,2600,3.905,3032,9.472,6844,8.267,7633,6.227,8454,7.212,8924,9.31,18142,8.946,18143,10.913,18144,13.052,18145,8.946,18146,8.264,18147,7.815,18148,8.264,18149,8.946]],["title/classes/SortImportUserParams.html",[0,0.23,12275,5.64]],["body/classes/SortImportUserParams.html",[0,0.379,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,27,0.462,30,0.001,32,0.156,33,0.556,95,0.163,101,0.021,103,0.001,104,0.001,144,2.445,165,0.879,329,2.636,364,2.064,374,2.858,375,4.518,376,2.098,404,2.013,469,3.946,471,4.738,596,3.382,851,5.466,852,5.466,1031,3.569,1044,4.391,3032,9.472,4442,3.946,6844,8.267,7633,6.227,10329,7.48,12275,9.31,12387,12.058,18143,10.913,18146,8.264,18147,7.815,18148,8.264,18150,8.946,18151,8.946,18152,8.946]],["title/classes/SortingParams.html",[0,0.23,18143,5.64]],["body/classes/SortingParams.html",[0,0.379,2,1.393,3,0.024,4,0.024,5,0.013,7,0.137,9,6.069,27,0.462,30,0.001,32,0.178,33,0.556,95,0.143,101,0.017,103,0.001,104,0.001,144,2.445,165,0.879,329,2.636,364,2.248,374,2.858,375,4.518,376,2.098,471,4.738,692,4.149,728,4.361,1031,3.569,1044,4.391,3032,9.472,3618,9.31,6844,8.887,7633,7.751,10057,8.977,18143,9.31,18147,7.815,18153,8.946,18154,8.946,18155,11.136,18156,8.946,18157,8.946]],["title/injectables/StartUserLoginMigrationUc.html",[105,0.89,18158,5.64]],["body/injectables/StartUserLoginMigrationUc.html",[0,0.222,3,0.017,4,0.017,5,0.009,7,0.1,8,1.092,27,0.431,29,0.824,30,0.001,31,0.582,32,0.146,33,0.519,35,1.092,36,2.437,39,2.425,47,0.985,52,3.027,95,0.163,99,1.107,101,0.012,103,0.001,104,0.001,105,1.193,107,1.561,111,2.243,112,2.734,127,1.143,129,6.921,132,6.668,167,2.491,189,5.071,191,3.624,192,3.096,199,3.453,204,2.238,216,2.074,217,1.369,221,2.776,227,0.688,234,1.468,305,2.603,322,5.259,355,5.01,461,2.88,766,2.804,795,3.845,843,2.848,1052,5.093,1542,3.045,1545,2.084,1555,4.078,1862,4.98,1868,4.132,1952,6.704,2767,2.941,3830,4.132,3832,4.385,4227,4.386,4442,4.946,4444,5.259,4447,5.259,4448,8.647,4451,6.026,4455,5.809,4457,6.758,4458,4.835,4461,5.096,4466,7.562,4467,6.704,8599,5.096,13636,5.259,16721,5.454,16724,6.026,16725,5.699,16726,6.026,16727,5.699,17684,5.454,18158,7.562,18159,11.212,18160,9.045,18161,7.902,18162,9.045,18163,6.524,18164,9.045,18165,6.524,18166,7.292,18167,6.524,18168,6.524,18169,6.524,18170,6.524]],["title/classes/StatelessAuthorizationParams.html",[0,0.23,15707,5.893]],["body/classes/StatelessAuthorizationParams.html",[0,0.373,2,1.003,3,0.023,4,0.023,5,0.012,7,0.134,27,0.522,30,0.001,32,0.176,33,0.678,47,0.963,95,0.141,101,0.017,103,0.001,104,0.001,165,0.866,204,4.114,364,2.332,374,2.79,470,5.3,471,5.515,602,9.171,1001,6.537,1044,4.286,1253,5.531,1997,9.368,1998,11.078,1999,8.067,2001,11.078,2002,8.067,2007,8.067,2008,5.608,2009,8.067,2010,8.067,15707,9.582,18171,12.96,18172,8.732,18173,8.732,18174,8.732,18175,8.732,18176,8.732]],["title/classes/StorageProviderEncryptedStringType.html",[0,0.23,11778,5.64]],["body/classes/StorageProviderEncryptedStringType.html",[0,0.234,2,0.789,3,0.018,4,0.018,5,0.01,7,0.106,8,1.132,27,0.476,29,0.846,30,0.001,31,0.598,32,0.183,33,0.533,35,1.132,47,1.018,59,2.132,95,0.137,96,1.857,101,0.013,103,0.001,104,0.001,111,2.134,127,0.868,144,3.384,145,3.195,165,0.74,167,3.578,217,1.236,227,1.305,247,3.718,379,1.583,398,2.012,404,1.694,406,2.194,766,2.952,777,8.106,1062,4.091,1659,8.132,1812,4.875,1919,2.853,1924,8.106,2076,5.631,2171,2.952,2172,3.285,2173,3.168,2174,4.351,6414,4.977,6993,6.791,7652,5.715,8096,8.599,11204,6.791,11389,8.187,11390,8.919,11778,7.836,14166,5.743,18177,6.869,18178,8.657,18179,9.372,18180,9.372,18181,9.372,18182,9.372,18183,9.372,18184,10.667,18185,9.372,18186,6.869,18187,9.372,18188,6.869,18189,6.869,18190,6.869,18191,9.372,18192,8.657,18193,9.372,18194,6.869,18195,6.345,18196,9.372,18197,6.869,18198,6.345]],["title/entities/StorageProviderEntity.html",[380,1.411,7806,5]],["body/entities/StorageProviderEntity.html",[0,0.277,3,0.022,4,0.022,5,0.012,7,0.125,27,0.509,30,0.001,32,0.182,33,0.525,47,1.006,95,0.149,96,2.203,101,0.02,103,0.001,104,0.001,165,0.828,240,4.141,334,0.898,364,2.273,369,2.32,370,2.719,380,2.196,381,2.682,386,4.657,398,2.387,399,4.11,400,3.576,402,3.352,404,1.473,405,2.197,406,2.603,2674,3.737,4712,6.192,6165,8.536,6167,8.536,6168,9.043,7806,7.78,11116,7.119,11775,9.169,11776,7.528,11777,11.328,11778,9.708,11779,7.528,11780,7.528,11781,7.528,11782,7.528,11783,7.528,11784,7.528,11785,7.528,11786,7.528,11787,7.528,18199,8.149,18200,8.149,18201,8.149,18202,8.149]],["title/injectables/StorageProviderRepo.html",[105,0.89,7803,5.64]],["body/injectables/StorageProviderRepo.html",[0,0.252,3,0.02,4,0.02,5,0.01,7,0.114,8,1.19,10,3.98,12,4.545,18,4.869,26,2.056,27,0.536,29,0.976,30,0.001,31,0.69,32,0.172,33,0.615,34,1.27,35,1.486,36,2.674,40,3.562,49,3.842,95,0.151,96,2,97,3.149,99,1.256,101,0.014,103,0.001,104,0.001,105,1.3,107,1.771,112,2.979,127,0.935,187,1.06,216,1.369,217,0.976,227,1.039,380,1.548,381,3.243,404,1.781,432,3.643,596,3.588,692,5.039,877,7.531,883,4.132,884,4.655,885,5.512,908,4.512,909,4.568,910,4.512,911,4.568,912,5.251,913,4.512,914,4.568,915,4.074,2394,5.362,2395,6.751,2397,7.14,2435,4.974,3639,5.059,5782,5.623,7803,8.239,7806,7.303,14595,9.228,18203,7.399,18204,7.399,18205,7.399,18206,7.399,18207,7.399]],["title/classes/StringValidator.html",[0,0.23,12386,5.27]],["body/classes/StringValidator.html",[0,0.29,2,0.977,3,0.023,4,0.023,5,0.012,7,0.131,8,1.303,27,0.448,29,0.856,30,0.001,31,0.605,32,0.151,33,0.539,35,1.303,47,0.993,59,3.35,101,0.016,103,0.001,104,0.001,144,3.592,167,3.249,217,1.423,227,1.313,247,4.282,329,2.508,347,2.2,369,2.386,371,3.435,470,4.547,627,4.092,1773,5.466,1828,5.557,12386,8.431,12547,10.887,18192,7.862,18208,8.511,18209,10.792,18210,10.792,18211,8.511,18212,10.792,18213,8.511,18214,8.511,18215,8.511]],["title/entities/Submission.html",[380,1.411,2881,3.075]],["body/entities/Submission.html",[0,0.157,3,0.012,4,0.012,5,0.007,7,0.157,26,2.137,27,0.502,30,0.001,32,0.175,33,0.578,34,0.791,47,0.817,55,1.872,62,2.689,72,2.164,95,0.148,96,1.246,101,0.013,103,0,104,0,111,1.405,116,3.493,144,1.26,145,2.456,165,0.751,187,0.66,192,2.837,208,1.711,217,1.696,227,1.219,234,1.544,240,3.624,305,1.327,329,1.358,334,0.508,347,2.505,364,2.241,369,2.557,370,3.417,371,1.936,380,1.469,381,1.517,386,4.863,394,4.014,398,1.35,399,2.751,400,2.023,402,1.897,404,0.833,405,1.243,406,1.473,461,2.666,738,2.661,844,4.643,957,2.609,1218,3.272,1240,2.661,1253,2.126,1439,3.359,1910,2.178,1991,2.494,2571,3.209,2674,5.543,2678,3.833,2682,2.516,2691,5.304,2692,2.882,2881,3.88,3106,6.05,3396,2.961,3397,3.05,3684,2.585,3737,6.396,3742,6.396,3750,5.873,3752,5.873,4227,1.587,4926,3.24,6110,3.902,6404,6.893,6405,3.099,6407,2.846,6409,2.585,6425,5.089,6429,2.882,6430,2.779,6627,3.099,6628,4.259,6737,4.511,6793,3.209,6911,3.004,8686,7.23,11324,4.889,11325,4.889,11330,4.889,11331,3.209,11548,6.894,11788,5.873,11789,4.259,11790,8.79,11791,9.381,11792,6.136,11793,4.259,11794,6.489,11795,4.259,11796,4.259,11797,4.259,11798,4.259,11799,3.716,11800,4.259,11801,4.259,11802,4.259,11803,3.854,11804,4.259,11805,4.259,11806,4.259,11807,4.259,11808,4.259,11809,4.259,11810,9.461,11811,4.259,11812,4.259,11813,4.259,11814,4.259,11815,4.259,11816,4.259,11817,8.79,11818,4.259,11819,6.307,11820,3.716,11821,9.968,11822,6.489,11823,3.854,11824,6.489,11825,4.027,11826,3.34,11827,3.34,11828,3.716,11829,4.259,11830,4.259,11831,4.259,11832,4.259,11833,6.489,11834,6.489,11835,4.259,11836,4.259,11837,4.259,11838,4.259,11839,6.307,11840,3.716,11841,3.854,11842,6.489,18216,4.61,18217,4.61,18218,4.61,18219,4.61,18220,4.61,18221,4.61,18222,4.61,18223,4.61,18224,4.61,18225,4.61,18226,4.61]],["title/classes/SubmissionContainerContentBody.html",[0,0.23,5543,4.611]],["body/classes/SubmissionContainerContentBody.html",[0,0.451,2,0.796,3,0.018,4,0.018,5,0.01,7,0.106,9,3.314,27,0.288,30,0.001,31,0.601,32,0.19,47,0.686,83,2.837,95,0.147,99,1.176,101,0.025,103,0.001,104,0.001,144,2.929,163,2.185,165,0.744,240,2.171,364,1.284,369,1.532,374,2.213,376,1.625,379,1.597,404,1.937,467,3.647,470,4.515,524,4.084,999,6.336,1031,2.221,1044,3.401,2344,4.429,2594,4.727,2880,3.314,2915,3.657,3239,4.331,3242,5.702,3245,5.656,3774,6.639,4040,4.736,4071,4.736,4072,7.088,5504,7.325,5506,7.325,5508,7.325,5541,7.325,5542,6.444,5543,7.325,5739,4.583,5740,6.944,6850,4.916,8027,8.717,8028,6.987,8029,5.135,8032,7.604,8033,5.135,8034,8.161,8035,7.604,8036,5.135,8037,4.916,8038,4.916,8039,4.916,8040,4.916,8041,5.135,8042,5.135,8043,5.135,18227,6.928,18228,6.928]],["title/classes/SubmissionContainerElement.html",[0,0.23,2870,4.217]],["body/classes/SubmissionContainerElement.html",[0,0.222,2,0.749,3,0.017,4,0.017,5,0.009,7,0.1,8,1.092,27,0.543,29,0.991,30,0.001,31,0.701,32,0.181,33,0.624,35,1.538,36,1.966,55,1.99,59,2.025,83,3.544,95,0.133,101,0.017,103,0.001,104,0.001,112,2.329,116,2.928,144,2.472,148,3.644,165,0.714,208,2.421,217,0.86,221,1.538,227,0.953,334,0.719,347,2.116,363,5.809,404,1.877,595,3.114,596,3.868,661,3.811,692,3.37,728,2.555,806,2.749,884,4.273,1857,4.795,1860,6.868,1984,2.79,2598,6.655,2791,8.192,2794,6.704,2795,6.704,2796,6.704,2797,6.419,2798,6.704,2800,4.46,2801,5.809,2802,6.758,2804,6.704,2805,5.809,2806,6.837,2808,4.727,2809,4.775,2811,6.491,2812,4.727,2814,6.419,2816,4.727,2818,4.46,2844,5.73,2870,5.655,2873,5.655,2881,2.974,2882,6.188,2883,5.096,3245,5.919,3984,6.873,3985,4.957,3986,4.957,3995,4.315,4000,5.655,4681,5.699,4682,6.026,9517,5.096,16747,6.026,16749,6.026,18229,8.37,18230,6.524,18231,6.524,18232,8.356,18233,6.026,18234,6.026,18235,6.026,18236,5.699]],["title/classes/SubmissionContainerElementContent.html",[0,0.23,18237,5.64]],["body/classes/SubmissionContainerElementContent.html",[0,0.366,2,0.971,3,0.022,4,0.022,5,0.012,7,0.13,27,0.446,29,0.671,30,0.001,31,0.474,32,0.18,33,0.423,34,2.028,47,0.616,83,3.235,95,0.151,99,1.435,101,0.02,103,0.001,104,0.001,127,1.493,165,0.848,364,1.568,376,1.984,467,3.583,475,4.237,618,3.599,966,4.33,1031,2.711,2344,4.884,2621,3.995,2882,7.042,2910,4.615,2911,4.615,2915,4.464,3245,6.776,3403,6.426,3415,5.431,3658,7.485,3662,6.635,3666,6.002,3668,6.002,3774,6.821,4042,8.665,5508,5.782,9532,7.388,9533,7.813,11978,6.426,18237,10.968,18238,10.916]],["title/classes/SubmissionContainerElementContentBody.html",[0,0.23,8035,4.787]],["body/classes/SubmissionContainerElementContentBody.html",[0,0.449,2,0.776,3,0.018,4,0.018,5,0.01,7,0.104,9,3.23,27,0.385,30,0.001,31,0.593,32,0.192,47,0.675,83,2.032,95,0.146,99,1.146,101,0.025,103,0.001,104,0.001,144,2.89,145,1.743,163,2.13,165,0.731,240,2.116,364,1.717,369,1.493,374,2.158,376,1.584,379,1.557,404,2.057,467,3.633,470,4.455,524,3.981,596,2.051,999,6.227,1011,3.594,1031,2.165,1044,3.315,2344,4.928,2594,4.664,2880,3.23,2915,3.565,3239,4.222,3242,5.627,3245,3.565,3774,6.568,4040,4.617,4071,4.617,4072,6.995,5504,7.229,5506,7.229,5508,7.779,5541,7.229,5542,6.333,5543,7.229,5739,4.467,5740,6.883,6850,4.793,8027,9.139,8028,6.866,8029,5.006,8032,7.504,8033,5.006,8034,8.075,8035,8.075,8036,5.006,8037,4.793,8038,4.793,8039,4.793,8040,4.793,8041,5.006,8042,5.006,8043,5.006,9535,5.647,18239,6.754,18240,6.754]],["title/entities/SubmissionContainerElementNode.html",[380,1.411,3180,5.27]],["body/entities/SubmissionContainerElementNode.html",[0,0.301,3,0.023,4,0.023,5,0.012,7,0.136,27,0.367,30,0.001,32,0.124,83,3.63,95,0.162,96,2.392,101,0.021,103,0.001,104,0.001,165,0.873,208,3.284,217,1.167,227,0.932,240,3.78,334,0.975,364,1.64,380,2.313,381,2.912,398,2.591,404,1.999,405,2.385,617,5.107,1857,5.159,2594,4.878,2598,5.621,2620,5.16,2621,4.179,2882,6.59,3144,5.934,3154,6.913,3180,8.639,3212,5.682,3235,9.661,3245,6.672,3562,7.102,3583,5.765,4090,5.947,4093,5.947,9539,8.173,11978,6.723,11979,7.132,18241,9.246,18242,9.661,18243,8.173]],["title/interfaces/SubmissionContainerElementProps.html",[334,0.743,18236,5.893]],["body/interfaces/SubmissionContainerElementProps.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.135,30,0.001,32,0.154,36,1.906,83,3.905,95,0.154,101,0.021,103,0.001,104,0.001,112,1.968,144,2.397,148,2.714,165,0.868,208,3.255,217,1.157,221,2.068,227,1.159,334,0.966,336,2.137,347,1.788,404,2.172,728,3.434,806,3.695,1857,3.751,1984,3.751,2598,5.59,2791,6.967,2801,5.633,2802,6.629,2805,5.633,2806,6.707,2814,6.224,2844,7.611,2870,5.483,2873,6.876,2881,3.999,2882,5.227,2883,6.852,3245,6.85,3995,5.802,4000,6.876,9517,6.852,18229,7.07,18232,10.16,18233,8.102,18234,8.102,18235,8.102,18236,9.608]],["title/classes/SubmissionContainerElementResponse.html",[0,0.23,4042,5.438]],["body/classes/SubmissionContainerElementResponse.html",[0,0.347,2,0.894,3,0.021,4,0.021,5,0.011,7,0.12,27,0.519,29,0.618,30,0.001,31,0.437,32,0.19,33,0.389,34,2.147,47,0.742,83,2.343,95,0.146,99,1.321,101,0.019,103,0.001,104,0.001,127,1.436,165,0.804,364,2.234,376,1.826,467,3.565,475,3.901,618,3.313,966,3.986,1031,2.496,2344,5.17,2621,3.678,2882,7.648,2909,5.233,2910,5.561,2911,5.561,2914,5,2915,5.38,3245,5.997,3403,5.916,3415,5,3658,7.923,3662,7.012,3666,5.525,3668,5.525,3774,7.221,4042,10.084,5508,6.967,9543,7.193,9544,7.193,9545,7.193,9546,7.193,9547,7.193,11978,5.916,18237,10.076,18238,11.855]],["title/classes/SubmissionContainerElementResponseMapper.html",[0,0.23,5523,5.893]],["body/classes/SubmissionContainerElementResponseMapper.html",[0,0.26,2,0.877,3,0.02,4,0.02,5,0.011,7,0.117,8,1.215,27,0.497,29,0.798,30,0.001,31,0.564,32,0.168,33,0.503,34,1.311,35,1.359,95,0.144,99,1.296,100,2.557,101,0.015,103,0.001,104,0.001,111,2.251,116,2.472,165,0.794,214,3.312,217,1.007,227,1.186,234,1.941,347,2.051,591,3.267,627,3.975,806,3.218,974,4.715,975,5.751,978,6.673,980,5.967,1828,4.487,2092,4.323,2344,3.157,2588,8.792,2591,8.414,2592,8.414,2594,5.826,2595,8.112,2870,8.257,2882,7.408,3245,4.032,3658,4.838,3662,6.212,3679,5.661,3774,4.409,4042,9.643,5121,7.228,5508,5.222,5520,6.386,5523,11.369,9549,9.643,9550,6.386,9551,6.673,9553,6.386,9554,6.673,9555,6.673,18237,8.414,18244,11.484,18245,11.254,18246,7.638]],["title/interfaces/SubmissionContainerNodeProps.html",[334,0.743,18242,5.893]],["body/interfaces/SubmissionContainerNodeProps.html",[0,0.304,3,0.024,4,0.024,5,0.013,7,0.137,30,0.001,32,0.125,83,3.815,95,0.162,96,2.413,101,0.021,103,0.001,104,0.001,165,0.878,208,3.313,217,1.177,227,0.941,240,3.485,334,0.983,336,2.175,380,2.326,398,2.614,404,2.19,405,2.406,617,5.153,1857,5.18,2594,3.938,2598,5.652,2620,5.206,2621,4.217,2882,5.319,3144,5.966,3154,6.952,3180,6.973,3212,5.732,3235,9.714,3245,6.886,3562,7.779,3583,5.816,4090,6,4093,6,11978,6.783,11979,7.196,18241,7.463,18242,10.581,18243,8.246]],["title/classes/SubmissionContainerUrlParams.html",[0,0.23,3688,5.893]],["body/classes/SubmissionContainerUrlParams.html",[0,0.395,2,1.101,3,0.025,4,0.025,5,0.014,7,0.147,27,0.398,30,0.001,32,0.134,34,1.994,47,0.846,95,0.149,101,0.018,103,0.001,104,0.001,165,0.917,364,1.777,368,4.589,369,2.568,370,3.876,371,3.202,374,3.062,376,2.248,379,2.209,467,3.123,1000,4.968,2881,5.297,2882,6.923,3688,10.149,3834,5.59,6922,9.366,18247,10.149,18248,9.585,18249,11.549,18250,9.585]],["title/controllers/SubmissionController.html",[481,2.63,18251,5.893]],["body/controllers/SubmissionController.html",[0,0.26,3,0.02,4,0.02,5,0.011,7,0.118,8,1.217,10,4.55,27,0.418,29,0.799,30,0.001,31,0.565,32,0.141,33,0.504,35,1.217,36,2.602,95,0.167,100,2.562,101,0.015,103,0.001,104,0.001,112,2.865,185,4.411,187,1.096,206,3.918,215,2.477,216,1.415,217,1.579,221,2.375,227,1.062,234,1.242,264,4.266,364,1.868,376,1.795,447,3.209,481,2.984,483,3.684,491,6.391,513,6.765,555,4.04,556,4.141,557,4.176,559,4.176,561,4.176,1828,4.493,2769,3.782,2934,6.565,3684,5.649,13656,6.398,13662,6.398,18251,8.802,18252,7.653,18253,11.265,18254,10.458,18255,10.076,18256,7.653,18257,7.653,18258,10.009,18259,10.076,18260,7.653,18261,6.685,18262,9.418,18263,6.398,18264,7.653,18265,7.653,18266,7.653,18267,7.653,18268,7.653,18269,7.07,18270,7.653,18271,10.076,18272,7.653,18273,7.653,18274,7.653]],["title/classes/SubmissionFactory.html",[0,0.23,18275,6.231]],["body/classes/SubmissionFactory.html",[0,0.155,2,0.523,3,0.012,4,0.012,5,0.006,7,0.07,8,0.84,27,0.541,29,1.018,30,0.001,31,0.687,32,0.183,33,0.612,34,1.449,35,1.426,47,0.507,55,2.65,59,3.161,95,0.138,99,0.773,101,0.009,103,0,104,0,127,0.575,138,3.021,144,3.149,148,1.409,165,0.549,185,4.978,192,1.358,216,1.287,217,1.416,227,1.073,329,3.394,359,2.413,366,2.506,369,1.538,379,1.946,380,2.13,381,2.29,404,1.258,538,3.119,596,3.82,627,2.166,660,7.059,661,4.524,662,5.3,665,3.901,666,5.3,667,5.544,668,3.901,669,3.901,670,3.901,671,3.83,672,4.291,673,4.734,674,6.287,675,5.607,676,6.884,677,2.577,682,2.553,683,3.901,684,2.577,685,4.951,686,5.159,687,4.386,688,4.99,689,3.865,690,2.553,691,2.384,692,4.001,693,2.485,694,2.443,695,2.553,696,4.876,697,2.577,698,4.649,699,2.553,700,7.193,701,4.024,702,6.459,703,2.577,704,4.173,705,2.553,706,2.577,707,2.553,708,2.577,709,2.553,710,2.884,711,2.713,712,2.553,713,5.912,714,2.577,715,2.553,716,3.901,717,3.83,718,3.901,719,2.577,720,2.463,721,2.443,722,2.008,723,2.553,724,2.553,725,2.553,726,2.577,727,2.577,728,1.783,729,2.553,730,2.577,731,2.724,732,2.553,733,2.577,735,2.628,736,2.684,737,5.634,848,3.231,849,3.459,2691,1.998,2881,3.172,3106,3.901,3737,6.846,3742,6.846,6613,3.557,6614,3.67,6622,3.557,8686,5.286,11788,3.806,11791,5.817,18275,7.8,18276,4.553,18277,9.454,18278,6.957,18279,4.553,18280,4.553,18281,4.553,18282,6.957,18283,4.553,18284,4.553,18285,3.977,18286,4.553,18287,3.977,18288,4.553,18289,4.553,18290,4.553,18291,4.206]],["title/classes/SubmissionItem.html",[0,0.23,2873,4.217]],["body/classes/SubmissionItem.html",[0,0.207,2,0.699,3,0.016,4,0.016,5,0.009,7,0.094,8,1.041,26,2.488,27,0.547,29,0.993,30,0.001,31,0.702,32,0.181,33,0.626,35,1.538,36,1.873,39,2.916,55,1.896,59,1.89,95,0.128,99,1.033,101,0.016,103,0.001,104,0.001,112,2.244,116,2.79,144,2.973,148,3.688,165,0.68,208,2.26,221,1.436,227,1.054,334,0.671,347,2.552,363,5.535,371,1.678,404,1.809,595,2.968,596,3.802,661,3.632,692,3.212,728,3.375,731,2.384,774,4.163,884,4.071,1298,2.859,1299,2.825,1300,2.825,1301,2.989,1302,3.267,1857,3.686,1860,6.618,1984,2.604,2572,3.911,2598,6.561,2657,4.321,2658,4.239,2791,8.066,2794,6.388,2795,6.388,2796,6.388,2797,6.116,2798,6.388,2799,4.093,2800,4.163,2801,5.535,2802,6.557,2804,6.388,2805,5.535,2806,6.634,2808,4.412,2809,4.55,2811,6.801,2812,4.412,2816,4.412,2818,4.163,2844,5.459,2873,5.388,2881,2.776,3187,3.67,3247,6.557,3981,5.625,3984,4.627,3985,4.627,3986,4.627,3995,4.028,4681,5.319,7261,4.909,16379,7.206,18229,9.255,18292,5.625,18293,6.089,18294,7.962,18295,6.089,18296,6.089,18297,6.089,18298,6.089,18299,6.089,18300,6.089,18301,6.089,18302,7.962,18303,5.625,18304,5.625,18305,5.625,18306,5.091,18307,5.625,18308,5.625,18309,5.319]],["title/injectables/SubmissionItemFactory.html",[105,0.89,18310,6.231]],["body/injectables/SubmissionItemFactory.html",[0,0.323,3,0.025,4,0.025,5,0.013,7,0.146,8,1.395,27,0.394,30,0.001,34,1.63,35,1.147,39,2.545,49,3.702,83,3.476,95,0.16,101,0.018,103,0.001,104,0.001,105,1.523,107,2.273,187,1.36,227,1.001,234,2.155,371,2.617,591,4.061,592,4.188,667,6.082,734,5.481,2873,8.098,2881,4.329,2883,7.418,3247,5.723,4150,7.641,18229,9.312,18310,10.671,18311,9.495,18312,9.495]],["title/entities/SubmissionItemNode.html",[380,1.411,3183,5.27]],["body/entities/SubmissionItemNode.html",[0,0.27,3,0.021,4,0.021,5,0.011,7,0.159,26,2.534,27,0.428,30,0.001,32,0.145,39,3.255,95,0.161,96,2.146,99,1.348,101,0.02,103,0.001,104,0.001,165,0.814,204,2.724,208,2.947,217,1.047,227,0.837,240,3.805,334,0.875,347,2.337,364,1.913,380,2.159,381,2.613,398,2.325,404,1.866,405,2.14,415,4.333,416,5.099,461,2.379,617,4.583,798,4.963,803,4.963,883,3.329,960,7.056,1415,4.785,1857,4.904,1919,3.297,2508,5.099,2598,5.246,2620,4.631,2621,3.751,2881,4.706,3106,5.787,3144,5.538,3154,6.452,3183,8.063,3187,6.912,3212,5.099,3244,9.017,3247,7.319,3562,6.629,3583,5.173,4090,5.337,4091,7.335,4093,5.337,5405,7.843,7660,5.885,8686,6.033,11586,5.885,16771,7.335,18241,9.588,18313,7.94,18314,9.535,18315,9.535,18316,7.335,18317,9.017,18318,6.936,18319,7.335,18320,7.335]],["title/interfaces/SubmissionItemNodeProps.html",[334,0.743,18317,5.893]],["body/interfaces/SubmissionItemNodeProps.html",[0,0.278,3,0.022,4,0.022,5,0.012,7,0.162,26,2.652,30,0.001,32,0.148,39,3.406,95,0.163,96,2.212,99,1.389,101,0.02,103,0.001,104,0.001,165,0.83,204,2.807,208,3.037,217,1.079,227,0.862,240,3.646,334,0.901,336,1.994,347,2.503,380,2.201,398,2.396,404,2.103,405,2.206,415,4.465,416,5.255,461,1.886,617,4.723,798,5.115,803,5.115,883,3.431,960,5.593,1415,4.931,1857,4.975,1919,3.398,2508,5.255,2598,5.349,2620,4.772,2621,3.865,2881,3.73,3106,4.587,3144,5.647,3154,6.579,3183,6.392,3187,4.931,3212,5.255,3244,9.193,3247,7.658,3562,7.471,3583,5.331,4090,5.5,4093,5.5,5405,6.217,7660,6.064,8686,6.217,11586,6.064,18241,6.841,18314,7.558,18315,7.558,18316,7.558,18317,10.163,18318,7.148,18319,7.558,18320,7.558]],["title/interfaces/SubmissionItemProps.html",[334,0.743,18309,5.893]],["body/interfaces/SubmissionItemProps.html",[0,0.279,3,0.022,4,0.022,5,0.012,7,0.126,26,2.716,30,0.001,32,0.163,36,1.782,39,3.408,95,0.149,99,1.391,101,0.02,103,0.001,104,0.001,112,1.839,144,2.88,148,2.537,165,0.832,208,3.043,221,1.933,227,1.227,334,0.903,336,1.998,347,2.652,371,2.26,404,2.105,728,4.126,731,3.211,774,5.605,1298,3.849,1299,3.804,1300,3.804,1301,4.024,1302,4.399,1984,3.506,2572,5.265,2598,5.356,2657,5.818,2658,5.707,2791,6.675,2799,5.511,2801,5.265,2802,6.351,2805,5.265,2806,6.426,2844,7.376,2873,5.125,2881,3.738,3187,4.941,3247,7.663,3995,5.423,16379,8.81,18229,6.609,18292,7.574,18294,7.574,18302,9.735,18303,7.574,18304,7.574,18305,7.574,18306,6.855,18307,7.574,18308,7.574,18309,9.205]],["title/classes/SubmissionItemResponse.html",[0,0.23,3699,5.438]],["body/classes/SubmissionItemResponse.html",[0,0.278,2,0.938,3,0.022,4,0.022,5,0.012,7,0.125,27,0.527,29,0.648,30,0.001,31,0.458,32,0.178,33,0.408,34,2.179,47,0.765,95,0.149,101,0.016,103,0.001,104,0.001,127,1.328,165,0.829,347,2.142,364,2.275,376,1.915,461,1.882,467,3.601,475,4.091,618,3.475,966,4.18,2909,5.488,2910,5.736,2911,5.736,3247,7.653,3658,8.043,3662,7.175,3666,5.795,3668,5.795,3699,10.236,6922,10.479,18247,11.355,18318,7.133,18321,8.165,18322,11.73,18323,8.165,18324,8.165,18325,8.165,18326,8.165,18327,9.718,18328,8.165,18329,8.165,18330,8.165]],["title/classes/SubmissionItemResponseMapper.html",[0,0.23,3700,5.64]],["body/classes/SubmissionItemResponseMapper.html",[0,0.273,2,0.921,3,0.028,4,0.021,5,0.011,7,0.123,8,1.255,27,0.478,29,0.636,30,0.001,31,0.45,32,0.146,33,0.401,34,1.376,35,1.255,39,2.15,95,0.133,99,1.361,100,2.685,101,0.015,103,0.001,104,0.001,111,2.305,116,3.945,165,0.82,217,1.058,227,1.095,234,1.978,461,1.848,591,3.429,627,4.028,783,4.833,851,3.936,852,3.936,974,4.95,975,5.937,1828,4.632,1919,3.33,2510,5.079,2873,7.893,2881,3.656,3187,7.346,3247,4.833,3658,5.079,3662,6.412,3671,7.005,3679,5.943,3699,9.826,3700,11.008,4038,4.95,5121,7.4,9549,9.826,9574,5.691,14148,6.704,16884,7.408,18244,11.26,18322,7.408,18327,8.685,18331,10.388,18332,11.523,18333,8.019,18334,8.019,18335,8.019,18336,8.019,18337,7.408,18338,7.005,18339,8.019,18340,7.005,18341,7.408]],["title/injectables/SubmissionItemService.html",[105,0.89,3539,5.438]],["body/injectables/SubmissionItemService.html",[0,0.232,3,0.018,4,0.018,5,0.01,7,0.105,8,1.127,12,4.302,26,2.639,27,0.474,29,0.906,30,0.001,31,0.641,32,0.173,33,0.571,34,1.824,35,1.284,36,2.685,39,2.85,40,4.49,49,2.66,83,3.199,95,0.158,99,1.158,101,0.013,103,0.001,104,0.001,105,1.23,107,1.633,111,1.365,112,2.93,127,0.862,138,4.051,187,0.977,215,2.208,216,1.725,217,1.507,221,2.506,227,0.983,231,6.136,234,2.005,305,1.963,347,2.329,503,4.112,558,3.243,591,2.918,592,3.009,734,3.938,806,2.875,883,4.457,1984,2.918,2570,3.691,2594,4.689,2686,3.631,2870,7.48,2873,8.164,2951,5.559,3120,5.184,3121,8.767,3130,6.302,3247,7.212,3305,3.371,3318,5.96,3369,9.373,3539,7.52,4143,5.5,4150,4.513,5528,5.96,6793,4.749,8094,9.982,14799,6.302,18342,11.965,18343,6.822,18344,6.822,18345,6.822,18346,6.822,18347,9.328,18348,6.822,18349,6.822,18350,6.822,18351,6.822,18352,6.822,18353,9.328]],["title/injectables/SubmissionItemUc.html",[105,0.89,2760,5.64]],["body/injectables/SubmissionItemUc.html",[0,0.168,3,0.013,4,0.013,5,0.007,7,0.076,8,0.892,26,2.821,27,0.459,29,0.878,30,0.001,31,0.621,32,0.161,33,0.553,35,1.273,36,2.672,39,3.164,59,1.529,95,0.142,99,0.836,101,0.009,103,0,104,0,105,0.974,107,1.179,111,2.582,112,2.92,127,0.933,187,0.706,199,2.82,216,1.95,217,1.592,221,2.898,227,1.166,234,1.597,305,2.832,347,1.806,369,1.089,371,1.358,461,1.135,496,2.076,704,2.434,766,2.117,806,3.112,839,2.313,843,2.15,1052,4.678,1487,2.815,1545,1.574,1865,6.182,1866,2.788,1881,4.678,1919,2.046,1952,6.158,1977,3.429,1984,2.107,2014,6.566,2037,4.263,2478,2.815,2594,2.173,2598,5.833,2760,6.174,2767,2.221,2799,3.311,2811,3.08,2870,5.538,2873,6.919,2881,4.039,2882,4.401,3089,6.287,3092,8.498,3098,8.966,3115,8.316,3126,8.646,3129,3.971,3153,6.451,3187,2.969,3247,5.931,3364,4.303,3538,7.478,3539,9.252,3672,5.474,3678,5.953,3686,8.184,3767,3.848,3769,3.848,3804,3.848,3810,5.769,3830,3.12,3831,6.174,3832,3.311,4149,4.303,4180,7.739,8094,9.669,12528,3.569,17062,3.971,18249,9.739,18341,4.551,18354,11.477,18355,4.926,18356,7.385,18357,7.385,18358,9.841,18359,4.926,18360,4.926,18361,7.385,18362,4.926,18363,7.385,18364,4.926,18365,7.385,18366,4.926,18367,4.926,18368,8.184,18369,4.926,18370,4.926,18371,4.926,18372,8.859,18373,4.926,18374,4.926,18375,4.926,18376,4.926,18377,4.926,18378,4.926,18379,4.926,18380,4.926,18381,4.926,18382,4.926,18383,4.926,18384,4.926,18385,4.926,18386,4.926]],["title/classes/SubmissionItemUrlParams.html",[0,0.23,3694,5.893]],["body/classes/SubmissionItemUrlParams.html",[0,0.395,2,1.101,3,0.025,4,0.025,5,0.014,7,0.147,27,0.398,30,0.001,32,0.134,34,1.994,47,0.846,95,0.149,101,0.018,103,0.001,104,0.001,165,0.917,364,1.777,368,4.589,369,2.568,370,3.876,371,3.202,374,3.062,376,2.248,379,2.209,467,3.123,1000,4.968,2881,5.297,3187,7.002,3694,10.149,3834,5.59,6922,9.366,18247,10.149,18368,11.549,18387,9.585,18388,9.585]],["title/classes/SubmissionMapper.html",[0,0.23,18261,5.893]],["body/classes/SubmissionMapper.html",[0,0.319,2,1.078,3,0.025,4,0.025,5,0.013,7,0.144,8,1.385,27,0.39,29,0.744,30,0.001,31,0.526,32,0.132,33,0.469,34,1.611,35,1.133,95,0.147,99,1.593,100,3.84,101,0.018,103,0.001,104,0.001,217,1.238,227,0.989,234,1.523,627,3.857,982,4.702,2881,6.033,11548,6.8,11819,6.955,11839,6.955,12022,7.565,12026,7.846,12034,7.846,16589,8.669,18261,10.019,18389,9.384,18390,11.469,18391,11.469,18392,9.384,18393,10.787,18394,8.198,18395,9.384,18396,8.198,18397,9.384]],["title/injectables/SubmissionRepo.html",[105,0.89,1968,5.126]],["body/injectables/SubmissionRepo.html",[0,0.199,3,0.016,4,0.016,5,0.008,7,0.09,8,1.012,10,3.383,12,3.863,18,4.14,26,2.671,27,0.524,29,0.983,30,0.001,31,0.695,32,0.174,33,0.619,34,1.004,35,1.496,36,2.844,39,3.031,40,4.032,47,0.713,95,0.137,96,1.581,98,3.486,99,0.993,101,0.011,103,0.001,104,0.001,105,1.105,107,1.4,111,2.353,112,3.063,187,0.838,217,1.491,221,2.921,227,1.192,277,2.342,380,1.224,381,2.757,398,1.713,404,1.514,529,3.695,596,3.245,692,4.827,877,7.065,883,3.512,884,3.957,885,4.869,908,3.568,909,3.611,910,3.568,911,3.611,913,3.568,914,3.611,915,3.221,1724,3.28,1828,3.735,1919,2.43,1968,6.365,2432,3.486,2691,2.567,2881,5.523,3027,3.343,3106,3.28,3639,3.999,3684,5.486,4425,7.004,4428,7.318,5784,4.885,6370,3.999,6404,5.831,6658,4.445,11791,4.891,16965,5.404,18398,5.85,18399,8.377,18400,8.377,18401,8.377,18402,8.377,18403,5.85,18404,8.377,18405,5.85,18406,8.377,18407,5.85,18408,5.404,18409,8.377,18410,5.85,18411,5.85,18412,5.85,18413,8.377,18414,5.85,18415,5.85,18416,8.377,18417,5.85,18418,5.85,18419,5.85,18420,5.85]],["title/injectables/SubmissionRule.html",[105,0.89,1969,5.64]],["body/injectables/SubmissionRule.html",[0,0.182,3,0.014,4,0.014,5,0.008,7,0.082,8,0.948,27,0.502,29,0.959,30,0.001,31,0.678,32,0.17,33,0.604,35,1.424,95,0.14,101,0.01,103,0,104,0,105,1.036,107,1.281,111,2.658,116,3.693,127,0.676,187,0.767,199,3.913,214,1.762,215,1.732,216,1.453,217,1.504,227,1.242,347,2.403,371,2.165,380,2.144,461,3.205,806,2.255,1828,3.502,1862,5.642,1865,6.804,1866,5.8,1880,5.117,1881,4.975,1890,7.226,1911,3.304,1928,4.848,1969,6.566,1971,9.503,1989,4.848,2033,5.117,2056,3.597,2881,6.48,3352,5.279,3353,3.659,3356,5.195,3358,3.659,3359,3.597,3360,5.369,12022,4.315,18421,5.352,18422,11.408,18423,10.248,18424,10.248,18425,11.408,18426,10.248,18427,5.352,18428,7.853,18429,5.352,18430,7.853,18431,5.352,18432,7.853,18433,5.352,18434,5.352,18435,7.853,18436,5.352,18437,7.853,18438,5.352,18439,5.352,18440,5.352,18441,5.352,18442,7.853,18443,5.352,18444,7.853,18445,5.352,18446,5.352,18447,5.352,18448,7.853,18449,7.853]],["title/injectables/SubmissionService.html",[105,0.89,18450,5.438]],["body/injectables/SubmissionService.html",[0,0.268,3,0.021,4,0.021,5,0.011,7,0.121,8,1.24,10,4.147,12,4.736,26,2.736,27,0.502,29,0.96,30,0.001,31,0.679,32,0.17,33,0.605,35,1.38,36,2.798,95,0.155,98,4.694,99,1.337,101,0.015,103,0.001,104,0.001,105,1.354,107,1.886,111,2.054,112,3.016,127,1.298,187,1.128,216,1.899,217,1.039,221,2.421,227,1.082,450,3.241,1444,5.133,1968,9.782,2881,5.724,3543,3.867,3544,3.272,3684,5.757,6193,9.718,13763,5.986,18450,8.278,18451,7.878,18452,9.486,18453,7.878,18454,7.878,18455,10.269,18456,7.878,18457,10.269,18458,7.878,18459,10.269,18460,7.878,18461,6.882,18462,7.878,18463,7.878,18464,7.878,18465,7.878]],["title/classes/SubmissionStatusListResponse.html",[0,0.23,18263,5.64]],["body/classes/SubmissionStatusListResponse.html",[0,0.369,2,0.986,3,0.023,4,0.023,5,0.012,7,0.132,27,0.45,29,0.681,30,0.001,31,0.481,32,0.167,33,0.429,34,2.042,47,0.866,55,1.888,95,0.11,101,0.021,103,0.001,104,0.001,127,1.371,145,2.215,163,4.066,165,0.856,347,2.212,364,1.591,375,4.827,376,2.013,467,3.54,618,3.652,1009,6.201,1011,4.568,1026,4.768,11548,8.621,11803,7.176,11819,8.818,11823,7.176,11839,8.818,11841,7.176,18263,9.072,18393,11.312,18394,10.394,18396,10.394,18466,7.929,18467,8.583,18468,8.583,18469,7.929,18470,7.929]],["title/classes/SubmissionStatusResponse.html",[0,0.23,18393,5.64]],["body/classes/SubmissionStatusResponse.html",[0,0.345,2,0.887,3,0.02,4,0.02,5,0.011,7,0.119,27,0.542,29,0.613,30,0.001,31,0.433,32,0.186,33,0.624,34,2.142,47,0.932,55,2.231,95,0.099,101,0.019,103,0.001,104,0.001,127,1.281,163,3.198,165,0.8,347,2.449,364,2.374,375,5.062,376,1.812,467,3.634,618,3.288,966,3.956,1009,4.416,1026,4.292,11548,9.041,11803,6.46,11819,9.248,11823,6.46,11839,9.248,11841,6.46,18263,6.46,18393,11.07,18394,10.9,18396,10.9,18466,7.137,18469,7.137,18470,7.137,18471,7.726,18472,7.726,18473,7.726,18474,7.726,18475,7.726,18476,7.726,18477,7.726]],["title/injectables/SubmissionUc.html",[105,0.89,18262,5.64]],["body/injectables/SubmissionUc.html",[0,0.239,3,0.019,4,0.019,5,0.01,7,0.108,8,1.151,10,3.848,26,2.838,27,0.48,29,0.918,30,0.001,31,0.649,32,0.162,33,0.578,35,1.304,36,2.071,39,2.554,95,0.148,99,1.194,101,0.013,103,0.001,104,0.001,105,1.256,107,1.684,111,2.419,112,2.797,127,1.204,187,1.008,216,1.762,217,1.681,221,2.729,227,1.22,284,4.241,369,1.556,461,3.091,766,3.025,843,3.072,1062,3.072,1868,4.458,1928,5.881,1952,6.841,2767,3.173,2881,5.993,3684,5.341,3830,6.035,4209,5.673,12021,5.884,13763,8.207,13963,8.323,18262,7.965,18450,10.051,18452,8.801,18461,9.436,18478,7.037,18479,9.527,18480,7.037,18481,7.037,18482,7.037,18483,9.527,18484,7.037,18485,9.527,18486,7.037,18487,7.037,18488,11.575,18489,7.037,18490,7.037,18491,7.037,18492,7.037,18493,6.501,18494,9.527,18495,7.037]],["title/classes/SubmissionUrlParams.html",[0,0.23,18254,5.893]],["body/classes/SubmissionUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,2881,5.343,3834,5.672,18254,10.238,18461,10.989,18496,9.724,18497,9.724]],["title/interfaces/SuccessfulRes.html",[334,0.743,10750,5]],["body/interfaces/SuccessfulRes.html",[3,0.024,4,0.024,5,0.013,7,0.14,30,0.001,32,0.127,34,1.56,47,0.973,55,2.686,101,0.026,103,0.001,104,0.001,163,2.866,165,0.887,334,1.492,336,2.214,347,2.489,564,3.373,692,3.386,1289,8.194,1293,6.108,1327,3.59,3091,4.143,4477,6.108,6461,5.756,10742,6.735,10743,6.905,10744,6.735,10745,6.735,10746,6.905,10747,9.05,10748,6.905,10749,6.905,10750,8.334,10751,6.905,10752,6.449,10753,6.735,10754,6.905,10755,6.735]],["title/classes/SuccessfulResponse.html",[0,0.23,18498,5.893]],["body/classes/SuccessfulResponse.html",[0,0.333,2,1.122,3,0.026,4,0.026,5,0.014,7,0.15,27,0.488,29,0.775,30,0.001,31,0.548,32,0.165,33,0.488,95,0.125,101,0.019,103,0.001,104,0.001,127,1.235,165,0.928,347,2.728,364,1.811,376,2.292,467,3.389,13314,11.189,18498,10.268,18499,9.772,18500,11.754,18501,9.772,18502,9.772,18503,9.772]],["title/injectables/SymetricKeyEncryptionService.html",[105,0.89,8111,5.893]],["body/injectables/SymetricKeyEncryptionService.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.122,8,1.243,27,0.535,29,0.908,30,0.001,31,0.642,32,0.16,33,0.572,35,1.243,47,1.007,59,2.455,95,0.155,101,0.015,103,0.001,104,0.001,105,1.358,107,1.893,111,1.582,116,4.172,127,0.999,163,3.824,187,1.133,214,2.603,215,2.56,227,1.358,960,5.407,1052,4.196,1053,5.377,1545,2.527,1812,5.612,2076,6.803,2880,4.924,2993,5.231,3853,7.46,6414,5.73,6993,8.294,8110,7.306,8111,8.993,9083,7.46,11389,8.993,11390,8.607,11391,9.51,11393,9.51,12186,7.306,14166,6.612,18195,7.306,18198,7.306,18504,7.909,18505,7.909,18506,7.909,18507,7.909,18508,11.446,18509,11.446,18510,7.909,18511,7.909]],["title/entities/System.html",[380,1.411,1114,2.737]],["body/entities/System.html",[0,0.308,3,0.011,4,0.011,5,0.006,7,0.065,26,1.365,27,0.479,30,0.001,32,0.173,33,0.637,47,1.031,83,2.416,95,0.116,96,1.136,101,0.019,103,0,104,0,150,3.601,165,0.516,208,1.559,216,0.777,240,4.36,277,1.681,334,0.463,347,0.856,359,2.268,364,2.137,369,3,370,4.416,371,1.802,379,0.968,380,1.679,381,1.383,386,6.414,398,1.23,399,2.561,400,1.843,402,1.728,404,0.759,405,1.132,406,1.342,496,1.77,722,1.853,775,2.562,783,2.532,1031,2.573,1114,2.653,1252,2.503,1576,2.532,1659,2.981,1691,2.593,2113,2.661,2138,3.114,2618,3.348,2621,1.984,4293,3.538,4331,4.64,4556,3.348,5236,2.626,5472,3.231,5602,4.539,5621,2.661,5622,2.872,6090,3.632,6359,2.562,6992,2.698,7078,2.824,7134,3.941,8597,2.824,9975,2.334,10947,7.404,11026,3.114,11027,3.114,11028,3.114,11029,3.192,11072,2.872,11075,2.779,11077,2.872,11080,2.872,11083,2.562,11087,2.824,11477,3.192,11590,2.779,11733,2.981,11843,4.969,11844,3.387,11845,5.993,11846,8.54,11847,8.025,11848,5.664,11849,6.306,11850,5.903,11851,2.779,11852,2.779,11853,3.387,11854,4.47,11855,4.846,11856,3.282,11857,4.846,11858,3.192,11859,3.192,11860,3.192,11861,3.192,11862,3.282,11863,3.192,11864,3.192,11865,3.192,11866,3.282,11867,4.846,11868,3.282,11869,3.192,11870,3.282,11871,3.192,11872,3.192,11873,3.192,11874,3.282,11875,4.47,11876,3.387,11877,3.387,11878,3.387,11879,3.387,11880,3.387,11881,3.387,11882,3.387,11883,3.387,11884,3.387,11885,3.387,11886,3.387,11887,3.387,11888,3.282,11889,3.387,11890,3.387,11891,3.387,11892,3.387,11893,3.387,11894,3.387,11895,3.387,11896,3.387,11897,3.387,11898,3.387,11899,3.387,11900,3.387,11901,3.387,11902,3.387,11903,3.387,11904,3.387,11905,3.387,11906,3.114,11907,3.387,11908,3.387,11909,3.387,11910,3.387,11911,3.387,11912,3.387,11913,3.387,11914,3.387,11915,3.387,11916,3.387,11917,3.387,11918,3.387,11919,3.387,11920,3.387,11921,3.192,11922,3.387,11923,3.114,11924,3.282,11925,3.192,11926,3.282,11927,3.192,11928,3.192,11929,3.282,11930,3.192,11931,3.282,11932,3.192,11933,3.044,11934,3.044,11935,3.044,11936,3.114,11937,3.192,11938,3.387,11939,3.192,11940,3.387,11941,3.387,11942,3.387,11943,3.387,11944,3.387,11945,3.192,11946,3.282,11947,3.192,11948,3.282,18512,4.201,18513,4.201,18514,4.201,18515,4.201,18516,4.201,18517,4.201,18518,4.201,18519,4.201,18520,4.201,18521,4.201,18522,4.201]],["title/modules/SystemApiModule.html",[425,1.808,17770,5.438]],["body/modules/SystemApiModule.html",[0,0.316,3,0.025,4,0.025,5,0.013,30,0.001,95,0.165,101,0.018,103,0.001,104,0.001,187,1.329,425,3.304,427,3.429,428,3.617,429,3.73,430,3.713,431,3.68,432,4.555,433,3.498,442,4.579,443,3.648,444,3.556,446,5.876,447,4.775,449,4.579,1626,9.527,17770,11.07,18523,9.276,18524,9.276,18525,9.276,18526,11.225,18527,9.276,18528,10.765,18529,9.276,18530,9.276,18531,9.276]],["title/controllers/SystemController.html",[481,2.63,18528,5.893]],["body/controllers/SystemController.html",[0,0.219,3,0.017,4,0.017,5,0.009,7,0.099,8,1.081,27,0.372,29,0.71,30,0.001,31,0.502,32,0.17,33,0.447,35,1.465,36,2.422,72,5.231,95,0.165,101,0.012,103,0.001,104,0.001,112,2.721,163,3.514,185,3.507,187,0.921,215,2.081,216,1.189,217,1.469,221,2.111,227,0.944,264,2.722,355,4.382,364,1.66,376,1.508,379,2.568,447,2.696,481,2.507,483,3.095,498,7.617,529,2.836,538,4.015,553,6.441,554,6.526,555,3.394,563,5.528,564,3.323,694,5.978,766,2.764,890,9.734,1016,2.296,1114,4.753,1510,5.598,1661,5.834,2186,7.058,2500,6.878,2578,7.26,3091,4.083,3673,4.396,4533,6.716,4630,4.654,9975,7.051,14805,7.823,15072,7.489,15702,8.704,16452,9.316,16455,8.982,18526,8.614,18528,7.823,18532,6.43,18533,8.955,18534,6.43,18535,9.734,18536,6.43,18537,10.293,18538,6.43,18539,6.43,18540,11.142,18541,8.955,18542,6.43,18543,6.43,18544,6.43,18545,6.43,18546,6.43,18547,6.43,18548,8.272,18549,5.94,18550,6.43,18551,5.94,18552,5.617,18553,6.43,18554,6.43,18555,6.43,18556,6.43,18557,6.43,18558,6.43,18559,6.43,18560,6.43,18561,6.43,18562,6.43,18563,6.43,18564,6.43,18565,6.43]],["title/classes/SystemDto.html",[0,0.23,15072,4.534]],["body/classes/SystemDto.html",[0,0.257,2,0.869,3,0.02,4,0.02,5,0.011,7,0.116,26,2.338,27,0.559,29,0.6,30,0.001,31,0.424,32,0.193,33,0.698,34,1.923,47,0.981,95,0.144,99,1.284,101,0.014,103,0.001,104,0.001,127,0.956,150,4.109,165,0.789,347,2.038,618,3.22,1114,3.07,2621,3.574,5602,5.613,5621,4.793,6090,4.203,10947,7.194,11270,5.608,11845,7.41,11848,7.003,11849,7.798,11850,7.299,11851,5.005,11852,5.005,11937,5.749,11939,5.749,11945,5.749,11947,5.749,12202,8.512,13302,5.37,15072,8.33,16458,9.238,16465,6.326,16466,6.1,16467,6.326,18566,7.566,18567,10.348,18568,10.001,18569,7.566,18570,7.566,18571,7.566,18572,7.566,18573,7.566,18574,7.566,18575,7.566,18576,7.566,18577,6.61,18578,6.326,18579,6.99,18580,6.99,18581,6.99,18582,7.566,18583,6.99]],["title/classes/SystemFactory.html",[0,0.23,12348,5.893]],["body/classes/SystemFactory.html",[0,0.148,2,0.499,3,0.012,4,0.012,5,0.006,7,0.067,8,0.811,27,0.532,29,1.009,30,0.001,31,0.679,32,0.182,33,0.605,34,1.584,35,1.407,47,0.489,55,2.417,59,3.272,95,0.118,99,0.738,101,0.013,103,0,104,0,127,0.549,138,2.915,144,3.102,148,1.345,150,2.462,165,0.53,185,4.876,216,1.242,217,1.217,227,0.972,234,1.331,277,1.74,329,3.344,359,2.328,366,2.393,369,0.961,379,1.891,380,2.086,381,2.21,404,1.214,538,3.01,596,3.782,627,2.09,660,7,661,4.441,662,5.173,665,3.764,666,5.173,667,5.469,668,3.764,669,3.764,670,3.764,671,3.696,672,4.169,673,4.599,674,6.194,675,5.49,676,6.823,677,2.46,682,2.437,683,3.764,684,2.46,685,4.832,686,5.035,687,4.28,688,4.87,689,3.729,690,2.437,691,2.276,692,3.928,693,2.372,694,2.332,695,2.437,696,4.759,697,2.46,698,4.516,699,2.437,700,7.191,701,3.965,702,6.363,703,2.46,704,4.054,705,2.437,706,2.46,707,2.437,708,2.46,709,2.437,710,2.753,711,2.59,712,2.437,713,5.803,714,2.46,715,2.437,716,3.764,717,3.696,718,3.764,719,2.46,720,2.352,721,2.332,722,1.917,723,2.437,724,2.437,725,2.437,726,2.46,727,2.46,728,1.702,729,2.437,730,2.46,731,2.629,732,2.437,733,2.46,735,2.509,736,2.562,737,4.888,775,2.65,853,2.209,1114,3.328,1253,2.005,1691,2.683,1696,2.484,2113,2.753,3544,2.788,4556,2.225,5382,3.837,5472,3.318,5602,2.178,7134,4.046,7136,4.976,8508,7.437,8597,2.921,10947,5.268,11072,2.971,11075,2.875,11076,3.634,11077,2.971,11080,2.971,11083,2.65,11087,2.921,11590,2.875,11843,3.302,11845,2.875,11846,5.944,11847,5.71,11848,2.717,11849,3.025,11850,2.832,11851,2.875,11852,2.875,11875,6.307,11933,3.149,11934,3.149,11935,3.149,11936,3.221,12348,7.166,12908,3.504,14156,4.015,15905,4.015,18584,4.346,18585,6.202,18586,8.523,18587,8.523,18588,6.713,18589,4.346,18590,6.713,18591,4.346,18592,4.346,18593,4.346,18594,4.346,18595,4.346,18596,4.346,18597,4.346,18598,4.346,18599,4.346,18600,4.346,18601,4.346,18602,4.346,18603,4.346,18604,4.346,18605,4.346,18606,4.346,18607,4.346,18608,4.346,18609,4.346,18610,4.346]],["title/classes/SystemFilterParams.html",[0,0.23,18535,5.893]],["body/classes/SystemFilterParams.html",[0,0.378,2,1.025,3,0.024,4,0.024,5,0.013,7,0.137,27,0.462,30,0.001,32,0.189,33,0.634,95,0.162,99,1.515,101,0.017,103,0.001,104,0.001,154,4.07,165,0.878,347,2.267,364,2.061,367,5.353,373,5.87,374,2.852,375,4.914,376,2.094,377,7.245,379,2.563,469,3.938,471,5.154,1044,4.381,1114,3.622,1480,6.235,5382,6.355,9975,6.177,10363,8.242,18535,9.714,18611,8.926,18612,11.189,18613,8.926,18614,8.926,18615,9.462,18616,8.926,18617,8.926,18618,8.926]],["title/classes/SystemIdParams.html",[0,0.23,15702,5.27]],["body/classes/SystemIdParams.html",[0,0.398,2,1.111,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.006,47,0.851,48,5.894,95,0.15,101,0.018,103,0.001,104,0.001,165,0.922,364,1.794,368,4.616,369,2.583,370,3.899,371,3.221,374,3.092,376,2.27,379,2.231,467,3.141,478,6.868,480,8.94,1000,4.997,1114,4.741,3834,5.644,15702,9.129,18619,11.685]],["title/classes/SystemIdParams-1.html",[0,0.191,905,2.329,15702,4.382]],["body/classes/SystemIdParams-1.html",[0,0.403,2,1.136,3,0.026,4,0.026,5,0.014,7,0.152,26,2.645,27,0.411,30,0.001,32,0.139,48,5.95,95,0.162,99,1.679,101,0.019,103,0.001,104,0.001,165,0.934,364,1.834,374,3.16,376,2.32,467,3.183,478,7.02,1000,5.063,5711,7.167,5712,7.974,15702,9.25,18620,11.84]],["title/classes/SystemMapper.html",[0,0.23,18621,5.893]],["body/classes/SystemMapper.html",[0,0.256,2,0.864,3,0.02,4,0.02,5,0.011,7,0.116,8,1.203,27,0.464,29,0.886,30,0.001,31,0.626,32,0.167,33,0.558,34,1.291,35,1.349,95,0.143,99,1.277,101,0.014,103,0.001,104,0.001,145,3.281,150,2.76,227,1.253,234,1.617,277,3.012,380,1.574,381,2.476,627,4.149,1114,5.261,1691,4.644,2446,5.339,4355,4.832,4556,3.852,5472,3.718,5602,3.77,5798,6.951,7134,4.535,8597,5.057,8846,6.573,10947,8.327,11026,5.577,11027,5.577,11028,5.577,11029,5.717,11072,5.144,11075,4.977,11077,5.144,11080,5.144,11083,4.588,11087,5.057,11845,4.977,11848,4.704,11849,5.237,11856,5.878,11858,5.717,11860,5.717,11862,5.878,11866,5.878,11868,5.878,11870,5.878,11872,5.717,11874,5.878,11875,5.144,12202,9.036,15072,8.544,15824,5.717,16806,8.704,16807,8.33,16811,8.33,16815,6.573,18567,6.951,18577,6.573,18578,6.291,18621,8.704,18622,7.524,18623,9.964,18624,9.204,18625,7.524,18626,7.524,18627,9.964,18628,7.524,18629,7.524,18630,9.964,18631,7.524,18632,7.524,18633,7.524,18634,7.524]],["title/modules/SystemModule.html",[425,1.808,1626,4.787]],["body/modules/SystemModule.html",[0,0.29,3,0.023,4,0.023,5,0.012,30,0.001,95,0.165,101,0.016,103,0.001,104,0.001,187,1.222,425,3.18,427,3.153,428,3.326,429,3.429,430,3.414,431,3.384,432,4.385,433,4.474,442,4.345,443,3.354,444,3.27,449,4.345,450,3.509,802,6.18,817,10.271,823,9.526,1626,9.946,11440,6.663,12858,11.622,12902,7.879,14424,7.451,15045,10.072,18635,8.529,18636,8.529,18637,8.529,18638,8.529,18639,8.529,18640,7.879,18641,8.529]],["title/classes/SystemOidcMapper.html",[0,0.23,18642,5.893]],["body/classes/SystemOidcMapper.html",[0,0.266,2,0.898,3,0.021,4,0.021,5,0.011,7,0.12,8,1.234,27,0.472,29,0.903,30,0.001,31,0.638,32,0.16,33,0.569,35,1.375,47,0.829,48,4.797,95,0.131,99,1.327,101,0.015,103,0.001,104,0.001,145,3.115,227,1.272,234,1.268,380,2.381,381,3.363,627,4.179,1114,5.31,2113,4.951,5472,3.863,7134,4.711,11847,9.11,11875,5.344,11921,5.939,11923,5.793,11925,5.939,11927,5.939,11928,5.939,11930,5.939,11932,5.939,11933,5.664,11934,5.664,11935,5.664,11936,5.793,12869,10.486,15856,7.221,16806,8.925,16807,8.542,16811,8.542,16815,6.828,18578,6.535,18624,9.438,18642,8.925,18643,12.07,18644,7.816,18645,10.217,18646,7.816,18647,7.816,18648,10.217,18649,7.816,18650,7.816,18651,10.217,18652,7.816,18653,7.816,18654,7.816,18655,7.816]],["title/injectables/SystemOidcService.html",[105,0.89,12858,5.64]],["body/injectables/SystemOidcService.html",[0,0.276,3,0.022,4,0.022,5,0.011,7,0.125,8,1.264,12,4.829,26,2.555,27,0.481,29,0.83,30,0.001,31,0.587,32,0.147,33,0.523,34,1.797,35,1.264,36,2.661,40,5.039,95,0.166,99,1.377,100,2.717,101,0.015,103,0.001,104,0.001,105,1.381,107,1.943,112,2.911,127,1.026,187,1.163,215,2.627,216,1.501,217,1.528,221,2.468,227,1.103,234,1.317,305,2.335,450,3.339,510,5.881,558,3.858,823,9.404,1114,4.702,12858,8.753,12869,6.34,13321,7.09,14595,9.565,18615,6.34,18642,7.09,18656,12.244,18657,8.116,18658,8.116,18659,8.116,18660,8.116,18661,8.116,18662,8.116,18663,7.497,18664,11.589,18665,8.116,18666,7.09,18667,7.497,18668,8.116]],["title/injectables/SystemRepo.html",[105,0.89,823,4.888]],["body/injectables/SystemRepo.html",[0,0.234,3,0.018,4,0.018,5,0.01,7,0.106,8,1.132,10,3.785,12,4.322,18,4.631,26,1.956,27,0.526,29,0.951,30,0.001,31,0.673,32,0.183,33,0.599,34,1.179,35,1.495,36,2.754,40,3.306,49,3.654,95,0.147,99,1.166,101,0.013,103,0.001,104,0.001,105,1.236,107,1.644,112,3.019,187,0.984,217,0.906,227,1.124,234,1.521,277,3.751,305,1.976,307,4.294,309,6.038,329,2.024,380,1.437,381,3.085,404,1.694,596,3.48,692,4.975,731,2.69,823,6.791,877,7.389,883,3.93,884,4.427,885,5.308,908,4.189,909,4.24,910,4.189,911,4.24,912,4.875,913,4.189,914,4.24,915,3.782,919,5.219,953,4.475,1062,2.998,1114,3.802,1298,3.225,1299,3.187,1300,3.187,1301,3.372,1378,4.544,1379,4.14,5147,7.729,5786,4.875,14595,8.952,18615,8.952,18669,6.869,18670,8.657,18671,6.869,18672,8.657,18673,6.869,18674,6.869,18675,8.187,18676,6.869,18677,6.869,18678,6.869,18679,6.345,18680,6.869,18681,6.869,18682,6.869,18683,6.869,18684,9.372]],["title/classes/SystemResponseMapper.html",[0,0.23,18552,5.893]],["body/classes/SystemResponseMapper.html",[0,0.243,2,0.82,3,0.019,4,0.019,5,0.01,7,0.11,8,1.162,27,0.452,29,0.863,30,0.001,31,0.61,32,0.163,33,0.544,34,1.225,35,1.314,95,0.156,101,0.014,103,0.001,104,0.001,145,1.842,217,1.535,227,1.147,234,1.765,277,2.857,627,4.105,974,4.406,1016,2.549,1114,4.723,1691,4.406,2640,5.753,4533,4.302,4556,3.654,5472,3.527,5602,3.576,7134,4.302,8597,4.797,9551,6.235,9600,5.29,9975,3.965,10947,4.583,11072,4.879,11075,4.721,11077,4.879,11080,4.879,11083,4.352,11087,4.797,11270,5.29,11845,4.721,11875,4.879,12202,9.235,13302,5.065,15072,8.745,15305,6.593,15307,6.593,15308,6.593,15309,6.593,15310,6.593,15311,6.593,15312,6.593,15313,6.593,15314,6.593,15315,6.593,15316,6.593,15317,6.593,15318,10.698,15651,6.593,15824,5.423,16452,9.734,16455,10.315,16456,6.593,16464,6.593,16465,5.967,16466,5.753,16467,5.967,18548,8.885,18549,6.593,18552,8.402,18577,6.235,18578,5.967,18685,11.642,18686,9.618,18687,9.618,18688,9.618,18689,9.618,18690,9.618,18691,7.137,18692,9.618,18693,7.137,18694,7.137,18695,9.618,18696,7.137,18697,9.618,18698,7.137,18699,6.593]],["title/classes/SystemScope.html",[0,0.23,18675,5.893]],["body/classes/SystemScope.html",[0,0.257,2,0.869,3,0.02,4,0.02,5,0.011,7,0.116,8,1.208,27,0.547,29,0.793,30,0.001,31,0.561,32,0.174,33,0.5,35,1.497,95,0.128,99,1.284,101,0.014,103,0.001,104,0.001,111,2.547,144,2.068,148,2.341,165,0.789,167,4.277,227,1.181,277,5.39,329,2.229,347,2.283,404,1.808,529,3.338,596,3.764,1114,3.07,2432,6.676,5872,6.837,5873,6.837,5874,6.837,5879,6.837,5880,6.837,5881,5.267,5882,5.173,5883,5.267,5884,5.267,5893,5.173,5894,6.837,5895,5.267,5896,5.173,5897,5.267,5898,5.173,5899,7.658,9888,6.1,9907,9.786,10947,4.859,11846,5.483,11847,5.267,13936,6.99,13937,6.99,18585,11.009,18586,11.009,18587,11.009,18675,11.515,18700,11.918,18701,7.566]],["title/injectables/SystemService.html",[105,0.89,15045,4.888]],["body/injectables/SystemService.html",[0,0.189,3,0.015,4,0.015,5,0.008,7,0.085,8,0.974,12,3.72,18,3.986,26,2.176,27,0.46,29,0.879,30,0.001,31,0.621,32,0.18,33,0.554,34,1.384,35,1.259,36,2.655,40,3.882,59,1.723,95,0.153,99,0.942,101,0.011,103,0,104,0,105,1.064,107,1.329,111,2.216,112,2.907,127,1.019,150,2.959,187,0.795,216,1.492,217,1.253,221,3.021,227,1.257,234,1.542,305,1.597,450,2.284,510,4.023,558,2.639,802,4.023,803,3.47,823,8.373,1114,5.421,5602,4.041,9975,6.419,10947,3.565,11270,7.041,11273,7.451,11440,4.337,11845,5.336,11848,5.042,11849,5.615,12185,8.146,12187,4.641,13302,5.724,13321,4.85,13995,8.776,15045,5.845,15072,7.445,15824,4.218,16465,4.641,16466,7.659,16467,7.943,18579,7.451,18580,7.451,18581,7.451,18615,8.146,18621,4.85,18663,5.128,18666,4.85,18667,5.128,18679,7.451,18702,5.552,18703,8.066,18704,8.066,18705,5.552,18706,5.552,18707,8.066,18708,5.552,18709,8.066,18710,5.552,18711,8.066,18712,5.552,18713,5.552,18714,5.552,18715,8.066,18716,7.451,18717,5.552,18718,8.066,18719,5.552,18720,5.552,18721,5.552,18722,5.552,18723,5.552,18724,5.552,18725,8.066,18726,8.066,18727,8.066,18728,8.066,18729,8.066,18730,8.066,18731,8.066,18732,5.552,18733,5.552,18734,5.128,18735,8.066,18736,5.552,18737,9.5,18738,5.552,18739,5.552,18740,5.552,18741,5.552,18742,5.552,18743,5.552]],["title/injectables/SystemUc.html",[105,0.89,18526,5.64]],["body/injectables/SystemUc.html",[0,0.262,3,0.02,4,0.02,5,0.011,7,0.119,8,1.223,12,4.671,26,2.506,27,0.469,29,0.897,30,0.001,31,0.634,32,0.168,33,0.565,34,1.738,35,1.223,36,2.61,40,4.874,59,2.394,95,0.16,99,1.309,101,0.015,103,0.001,104,0.001,105,1.336,107,1.846,112,2.871,127,0.974,144,2.108,187,1.105,215,2.496,216,1.426,217,1.017,221,2.666,227,1.067,234,1.251,305,2.219,329,2.272,371,3.31,510,5.588,558,3.665,1114,4.588,9975,6.927,15045,9.274,15072,8.07,15824,5.86,16318,7.124,18526,8.467,18583,9.355,18612,11.092,18615,6.024,18640,7.124,18666,6.737,18670,9.355,18672,9.355,18734,7.124,18744,7.711,18745,7.711,18746,12.007,18747,7.711,18748,7.711,18749,7.124,18750,7.711,18751,7.711]],["title/classes/TargetInfoMapper.html",[0,0.23,14682,5.893]],["body/classes/TargetInfoMapper.html",[0,0.323,2,1.09,3,0.025,4,0.025,5,0.013,7,0.146,8,1.395,27,0.394,29,0.753,30,0.001,31,0.648,32,0.133,33,0.474,34,1.63,35,1.147,95,0.148,99,1.611,100,3.867,101,0.018,103,0.001,104,0.001,217,1.252,227,1.001,234,1.541,627,3.877,975,6.602,2744,4.234,6722,9.601,14652,8.295,14653,10.443,14682,10.091,17580,8.295,17582,8.295,18752,11.551,18753,11.551,18754,9.495,18755,9.495,18756,9.495]],["title/classes/TargetInfoResponse.html",[0,0.23,14653,5.438]],["body/classes/TargetInfoResponse.html",[0,0.3,2,1.014,3,0.023,4,0.023,5,0.012,7,0.136,27,0.5,29,0.7,30,0.001,31,0.763,32,0.169,33,0.441,34,2.31,47,0.92,95,0.113,101,0.017,103,0.001,104,0.001,127,1.396,165,0.872,364,2.047,376,2.071,379,2.778,380,2.642,467,3.24,475,4.423,618,3.757,966,4.52,1013,4.048,2136,3.534,2254,7.117,2744,5.631,2909,5.934,2910,6.027,2911,6.027,14653,10.481,17587,7.712,17588,8.155,17589,8.155,18757,12.629]],["title/entities/Task.html",[380,1.411,2691,2.96]],["body/entities/Task.html",[0,0.164,3,0.008,4,0.008,5,0.004,7,0.169,26,1.689,27,0.473,30,0.001,31,0.349,32,0.17,33,0.549,34,0.828,47,0.737,55,1.062,83,2.795,95,0.144,96,0.78,101,0.015,103,0,104,0,111,2.375,116,3.555,144,1.7,145,2.088,148,2.25,165,0.69,167,1.101,187,0.413,188,3.688,192,1.855,214,0.949,217,1.759,227,1.327,234,1.696,240,3.51,247,1.914,305,1.388,329,1.833,334,0.532,347,2.283,364,2.113,369,2.593,370,3.249,371,3.027,379,1.434,380,1.009,381,0.949,386,4.156,398,0.845,399,1.89,400,1.266,402,1.187,404,0.522,405,0.778,406,0.922,461,2.667,564,3.447,687,1.338,728,1.13,738,1.665,783,1.739,806,2.033,844,3.296,905,3.02,957,1.633,1019,1.682,1062,1.259,1218,2.047,1439,1.38,1661,1.879,1828,1.286,1910,1.363,1919,1.198,1932,2.47,2078,1.682,2136,1.155,2526,1.827,2674,4.791,2675,3.972,2678,3.968,2682,1.574,2687,3.057,2688,1.682,2689,3.233,2690,2.047,2691,4.71,2701,2.869,2705,5.272,2881,3.689,3106,1.617,3242,3.31,3245,3.838,3305,4.324,3396,1.853,3418,4.33,3684,5.674,3685,2.412,3714,3.995,3733,5.352,3737,3.243,3738,5.632,3739,4.81,3740,5.788,3741,6.209,3742,3.243,3753,5.861,4083,1.7,4227,1.661,4239,1.803,4284,2.412,4303,1.266,4825,1.803,4826,1.853,4926,2.226,4955,2.908,6364,4.181,6386,2.52,6391,2.665,6397,1.803,6400,2.943,6408,3.057,6409,1.617,6421,2.325,6425,2.09,6427,1.972,6428,1.972,6429,1.803,6430,1.739,6444,1.853,6624,2.52,6633,1.781,6634,1.908,6704,3.77,6727,3.337,6737,1.853,6742,2.138,7494,2.665,7652,2.943,7793,5.542,7948,2.09,9401,1.803,10657,2.008,11336,1.972,11356,1.972,11490,2.325,11799,2.325,11819,5.389,11820,2.325,11839,5.389,11840,2.325,11951,4.507,11954,3.424,11955,4.61,11956,4.507,11957,2.412,11959,2.52,11960,2.412,11961,2.52,11962,2.52,11963,2.52,11964,2.52,11965,2.52,11966,5.434,11967,5.014,11968,4.859,11969,2.52,11970,4.215,11971,2.412,11972,4.215,11973,2.52,11974,2.52,11975,2.412,11976,7.643,11977,2.52,11978,2.192,11979,2.325,11980,4.215,11981,6.352,11982,3.89,11983,6.352,11984,2.52,11985,2.52,11986,2.52,11987,4.215,11988,2.52,11989,2.52,11990,2.52,11991,2.52,11992,2.52,11993,2.52,11994,2.52,11995,2.52,11996,2.52,11997,2.52,11998,2.52,11999,2.52,12000,4.215,12001,2.52,12002,2.52,12003,2.192,12004,2.52,12005,2.52,12006,2.52,12007,2.52,12008,2.52,12009,2.52,12010,4.215,12011,2.52,12012,2.52,12013,4.215,12014,2.52,12015,4.215,12016,2.254,12017,2.412,12018,2.52,12019,6.352,12020,5.434,12021,4.034,12022,2.325,12023,5.434,12024,2.52,12025,5.434,12026,2.412,12027,4.215,12028,2.52,12029,2.52,12030,2.52,12031,5.434,12032,2.52,12033,4.215,12034,2.412,12035,2.52,12036,2.52,12037,6.352,12038,2.52,12039,2.52,12040,2.52,12041,2.52,12042,2.52,12043,2.52,12044,2.52,12045,4.215,12046,2.52,12047,2.52,12048,4.215,12049,2.52,12050,2.52,12051,2.52,12052,2.52,12053,2.412,12054,2.52,12055,6.352,12056,2.52,12057,2.52,12058,2.52,12059,2.52,12060,2.52,12061,2.52,12062,2.52,12063,2.52,12064,2.52,12065,2.412,18758,2.885,18759,2.885,18760,2.885,18761,2.885,18762,2.885,18763,2.885,18764,2.885,18765,2.885,18766,2.885,18767,2.885,18768,2.885,18769,2.885,18770,2.885,18771,2.885,18772,2.885]],["title/modules/TaskApiModule.html",[425,1.808,17771,5.438]],["body/modules/TaskApiModule.html",[0,0.267,3,0.021,4,0.021,5,0.011,30,0.001,95,0.168,101,0.015,103,0.001,104,0.001,187,1.122,425,3.054,427,2.895,428,3.054,429,3.149,430,3.135,431,3.107,432,4.212,433,2.954,442,4.113,443,3.08,444,3.003,446,4.961,447,4.289,449,4.113,450,3.222,481,3.054,1945,6.955,1958,7.838,1962,8.255,1970,8.947,2767,3.531,2769,3.87,3026,4.834,6234,9.313,6238,7.235,13390,9.527,17771,11.427,18251,9.952,18262,10.746,18773,7.832,18774,7.832,18775,7.832,18776,10.746,18777,10.746,18778,7.832,18779,9.952,18780,7.832,18781,7.832]],["title/entities/TaskBoardElement.html",[380,1.411,2702,5.438]],["body/entities/TaskBoardElement.html",[0,0.303,3,0.024,4,0.024,5,0.013,7,0.137,27,0.37,30,0.001,32,0.125,95,0.155,96,3.271,101,0.017,103,0.001,104,0.001,165,0.876,364,1.651,369,2.455,370,4.037,380,2.323,381,2.931,398,2.608,404,1.61,405,2.401,617,5.141,1299,4.132,1492,6.693,1932,4.56,1991,4.819,2620,5.194,2670,8.675,2691,5.559,2692,5.568,2693,8.046,2695,7.446,2702,8.952,2744,5.649,3022,6.768,3051,9.285,3547,5.986,4926,4.108,4928,7.78,4996,6.601,6329,6.2,6757,6.958,6758,7.235,6759,6.768,6760,6.453,11792,9.701,13653,8.228,18782,11.105,18783,8.906]],["title/controllers/TaskController.html",[481,2.63,18779,5.893]],["body/controllers/TaskController.html",[0,0.155,3,0.012,4,0.012,5,0.006,7,0.07,8,0.841,10,3.413,27,0.478,29,0.914,30,0.001,31,0.646,32,0.162,33,0.576,35,1.392,36,2.812,56,3.352,70,3.489,95,0.161,100,2.829,101,0.009,103,0,104,0,111,1.892,112,3.026,144,1.246,185,3.309,187,0.653,206,2.333,215,1.475,216,1.288,217,1.659,221,2.635,227,1.215,234,0.74,264,3.578,329,1.343,364,2.072,369,1.539,371,2.329,376,1.069,447,1.911,469,2.011,481,1.777,483,2.194,491,6.643,513,7.008,529,4.173,543,3.489,552,2.927,555,2.406,556,2.466,557,2.487,558,2.166,559,2.487,561,2.487,805,3.674,1008,3.8,1016,3.836,1028,8.552,1828,4.218,2691,3.708,2934,7.984,2955,2.58,2989,6.811,3013,3.015,3026,2.813,3027,2.605,3710,4.197,4994,2.605,6042,3.561,6282,3.674,6291,7.909,6297,4.21,6487,7.754,7793,5.992,11763,3.378,13656,3.811,13662,3.811,14595,6.601,14601,4.21,16988,3.674,16989,4.21,17003,3.982,17005,3.982,17103,6.083,18258,10.816,18776,7.064,18777,7.064,18779,6.083,18784,4.558,18785,7.806,18786,8.45,18787,6.963,18788,7.806,18789,4.558,18790,4.558,18791,4.558,18792,6.963,18793,4.558,18794,4.558,18795,4.558,18796,6.963,18797,4.558,18798,4.558,18799,4.558,18800,4.558,18801,6.963,18802,4.558,18803,4.558,18804,6.963,18805,4.558,18806,4.558,18807,6.963,18808,4.558,18809,3.982,18810,4.558,18811,4.558,18812,3.811,18813,3.674,18814,4.558,18815,4.558,18816,4.558,18817,6.963,18818,4.558,18819,4.558,18820,4.558,18821,4.558,18822,4.558,18823,9.459,18824,4.558,18825,4.558,18826,6.963,18827,10.19,18828,4.558,18829,4.558,18830,4.558,18831,4.558,18832,4.558,18833,4.558]],["title/classes/TaskCopyApiParams.html",[0,0.23,6291,5.64]],["body/classes/TaskCopyApiParams.html",[0,0.366,2,0.971,3,0.022,4,0.022,5,0.012,7,0.13,27,0.446,30,0.001,32,0.151,33,0.621,34,2.134,47,0.905,95,0.138,100,3.599,101,0.016,103,0.001,104,0.001,165,0.848,188,4.07,364,1.993,374,2.702,375,4.794,376,1.984,379,2.959,471,5.028,475,5.386,1000,5.053,1660,10.023,2563,6.72,2675,5.8,2691,5.756,2701,4.958,2910,6.785,2911,6.785,3305,6.144,4955,7.122,6050,10.862,6291,8.987,6901,8.397,10357,9.39,13666,7.813,13667,7.813,18834,9.879,18835,8.457]],["title/injectables/TaskCopyService.html",[105,0.89,2995,5.126]],["body/injectables/TaskCopyService.html",[0,0.181,3,0.014,4,0.014,5,0.007,7,0.082,8,0.943,26,1.629,27,0.452,29,0.863,30,0.001,31,0.638,32,0.176,33,0.544,35,1.233,36,1.697,47,0.387,95,0.151,99,0.901,101,0.01,103,0,104,0,105,1.03,107,1.271,111,2.569,112,2.762,127,0.987,145,2.936,185,3.998,187,0.761,188,4.308,192,1.583,216,1.713,217,1.551,221,2.682,227,0.976,234,0.862,379,1.224,450,2.184,461,2.96,564,4.222,738,3.065,1041,4.337,1062,2.318,1444,5.087,1474,1.802,1911,3.278,1970,7.918,2689,5.654,2691,5.784,2701,2.449,2985,4.439,2989,6.294,2995,5.933,2997,8.345,3003,8.935,3011,11.089,3013,7.525,3025,4.148,3026,3.278,3027,3.035,3039,4.439,3040,4.148,3041,4.28,3070,4.28,3543,3.832,3544,2.205,5369,3.41,6057,4.035,6186,9.48,6187,4.638,6191,6.821,6200,8.919,6209,6.528,6214,9.503,6216,8.089,6227,6.099,6262,4.638,6525,4.905,6537,4.28,6556,4.439,6563,4.638,6727,2.849,10164,4.638,11951,3.847,11956,3.847,13703,10.273,13733,4.905,13742,4.905,13775,4.905,18836,11.376,18837,9.26,18838,7.808,18839,4.638,18840,5.31,18841,7.808,18842,11.759,18843,5.31,18844,5.31,18845,7.808,18846,12.313,18847,5.31,18848,7.808,18849,5.31,18850,5.31,18851,5.31,18852,5.31,18853,5.31,18854,5.31,18855,5.31,18856,5.31,18857,5.31,18858,5.31,18859,4.905,18860,5.31,18861,4.905,18862,5.31,18863,5.31,18864,5.31,18865,5.31]],["title/injectables/TaskCopyUC.html",[105,0.89,18776,5.64]],["body/injectables/TaskCopyUC.html",[0,0.171,3,0.013,4,0.013,5,0.007,7,0.077,8,0.907,26,2.58,27,0.463,29,0.844,30,0.001,31,0.597,32,0.149,33,0.532,35,1.285,36,2.426,39,2.013,47,0.9,95,0.152,99,0.855,101,0.01,103,0,104,0,105,0.99,107,1.206,111,2.664,112,2.85,127,0.949,145,3.314,148,1.559,187,0.722,188,1.907,208,1.87,216,2.064,217,1.63,221,2.914,227,1.176,234,1.457,305,2.583,347,1.027,450,2.072,461,2.849,564,2.787,766,2.165,843,2.199,1062,2.199,1415,5.411,1439,2.409,1724,2.824,1865,3.933,1866,2.851,1868,3.191,1880,3.282,1952,5.339,1958,6.806,1962,7.425,1970,8.048,2027,3.282,2037,2.908,2171,2.165,2172,2.409,2173,2.323,2174,3.191,2563,3.149,2675,3.686,2686,2.681,2689,2.618,2691,2.21,2701,2.323,2767,2.271,2989,6.053,2995,8.785,2997,8.205,3003,7.561,3011,6.56,3013,3.332,3026,3.109,3027,2.879,3069,4.211,3070,4.061,3071,4.653,3550,7.013,4630,2.618,4955,4.526,6022,3.733,6250,7.506,6293,9.192,6521,4.211,6537,6.053,6540,4.653,6576,4.4,6587,4.4,6588,4.4,6589,3.191,8451,4.653,13703,9.297,13763,6.822,13829,9.192,13833,8.293,13834,4.653,13837,4.653,13838,4.653,13839,4.4,13841,6.937,13843,8.293,13846,4.653,17051,4.653,18069,6.937,18776,6.278,18866,11.561,18867,7.509,18868,7.509,18869,7.509,18870,5.037,18871,5.037,18872,7.509,18873,10.642,18874,5.037,18875,5.037,18876,7.509,18877,5.037,18878,7.509,18879,5.037,18880,4.4,18881,4.4,18882,5.037,18883,5.037,18884,5.037,18885,5.037,18886,5.037,18887,5.037,18888,5.037,18889,5.037,18890,4.4,18891,4.653]],["title/classes/TaskCreateParams.html",[0,0.23,18892,5.893]],["body/classes/TaskCreateParams.html",[0,0.316,2,0.777,3,0.018,4,0.018,5,0.01,7,0.104,27,0.511,30,0.001,31,0.593,32,0.185,33,0.659,34,1.954,47,0.936,83,4.04,95,0.146,99,1.148,101,0.013,103,0.001,104,0.001,165,0.732,188,3.512,214,3.053,359,3.949,364,2.284,368,4.498,369,2.517,370,3.094,371,2.556,374,2.161,375,4.999,376,1.587,379,3.069,467,2.493,469,2.984,470,5.027,471,5.243,475,5.705,999,7.114,1000,4.526,1474,3.148,2675,5.195,2691,5.638,2701,4.278,2778,6.043,2910,6.214,2911,6.214,3242,3.6,3245,5.587,3684,5.2,3714,6.797,4955,6.379,6905,8.102,6916,5.453,6918,6.874,8270,6.874,8455,5.453,11953,7.844,15182,6.249,18834,10.55,18892,8.102,18893,6.765,18894,8.568,18895,6.765,18896,6.249,18897,6.765,18898,8.568,18899,6.765,18900,6.765,18901,6.249]],["title/classes/TaskFactory.html",[0,0.23,18285,5.893]],["body/classes/TaskFactory.html",[0,0.15,2,0.505,3,0.012,4,0.012,5,0.006,7,0.068,8,0.818,27,0.538,29,1.011,30,0.001,31,0.691,32,0.182,33,0.607,34,1.418,35,1.412,47,0.493,55,2.428,59,3.112,95,0.136,99,0.746,101,0.008,103,0,104,0,111,2.119,127,0.856,138,2.942,144,3.114,148,1.361,165,0.535,185,4.943,192,2.464,216,1.253,217,1.503,227,1.057,234,1.341,329,3.444,359,2.35,366,2.422,369,1.498,371,2.559,379,1.905,380,2.098,381,2.23,404,1.225,461,2.441,538,3.038,596,3.792,627,2.11,660,7.015,661,4.463,662,5.205,665,3.799,666,5.205,667,5.488,668,3.799,669,3.799,670,3.799,671,3.73,672,4.2,673,4.634,674,6.218,675,5.52,676,6.839,677,2.489,682,2.466,683,3.799,684,2.489,685,4.863,686,5.067,687,4.307,688,4.901,689,3.764,690,2.466,691,2.304,692,3.947,693,2.4,694,2.36,695,2.466,696,4.789,697,2.489,698,4.55,699,2.466,700,7.146,701,3.98,702,6.388,703,2.489,704,4.084,705,2.466,706,2.489,707,2.466,708,2.489,709,2.466,710,2.786,711,2.621,712,2.466,713,5.831,714,2.489,715,2.466,716,3.799,717,3.73,718,3.799,719,2.489,720,2.38,721,2.36,722,1.94,723,2.466,724,2.466,725,2.466,726,2.489,727,2.489,728,1.722,729,2.466,730,2.489,731,2.653,732,2.466,733,2.489,735,2.539,736,2.593,737,5.533,848,3.121,849,3.342,957,2.489,1236,2.651,1911,2.715,2691,2.973,3714,5.308,5512,6.28,5513,3.842,6613,3.436,6614,3.546,6622,3.436,6727,3.635,7793,5.235,9798,6.259,11954,3.121,12003,7.055,12016,7.253,12017,7.763,18285,7.22,18291,4.063,18902,4.398,18903,4.398,18904,6.776,18905,4.398,18906,4.398,18907,4.398,18908,6.776,18909,4.398,18910,3.677]],["title/classes/TaskListResponse.html",[0,0.23,18812,5.64]],["body/classes/TaskListResponse.html",[0,0.303,2,0.733,3,0.017,4,0.017,5,0.009,7,0.098,27,0.485,29,0.506,30,0.001,31,0.623,32,0.185,33,0.584,34,1.761,47,0.937,55,2.983,56,5.824,59,2.764,70,6.062,83,3.341,95,0.142,99,1.083,100,2.136,101,0.017,103,0.001,104,0.001,127,1.125,145,1.646,163,3.684,165,0.703,208,2.367,347,1.3,359,2.212,364,2.058,371,1.758,375,4.909,376,1.496,379,2.365,404,1.61,467,3.504,469,2.814,564,3.808,565,3.367,591,4.387,592,4.526,595,2.196,596,3.372,618,2.714,620,4.097,622,4.097,1007,7.665,1008,6.603,1009,5.089,1011,3.395,1013,4.704,1014,3.131,1015,3.544,1016,2.278,1017,4.527,1018,5.802,1019,5.194,1020,4.22,1021,3.395,1022,4.527,1023,4.527,1025,4.041,1026,3.544,1491,3.646,2078,3.72,2136,2.553,2309,3.576,2344,2.637,2675,5.036,2691,4.502,2787,6.941,3245,3.367,3418,7.141,3714,4.097,3715,3.988,3728,5.142,6045,4.983,6046,4.361,6047,4.156,11967,5.142,11968,4.983,16731,8.27,18812,7.445,18813,10.212,18911,5.893,18912,6.379,18913,6.379,18914,7.179,18915,5.893,18916,5.893,18917,5.893]],["title/classes/TaskMapper.html",[0,0.23,18809,5.893]],["body/classes/TaskMapper.html",[0,0.231,2,0.778,3,0.018,4,0.018,5,0.01,7,0.104,8,1.121,27,0.44,29,0.84,30,0.001,31,0.691,32,0.16,33,0.529,34,1.163,35,1.279,95,0.136,99,1.15,100,4.127,101,0.013,103,0.001,104,0.001,185,3.636,217,1.626,227,1.116,234,1.507,371,1.868,379,2.14,564,3.446,591,2.898,592,2.989,627,4.061,975,5.307,982,3.395,2344,2.801,2675,5.199,2691,4.074,3242,3.606,3245,4.902,3418,4.717,3523,8.111,3714,5.963,4955,5.596,5031,6.26,6315,8.578,6316,8.578,7948,8.256,8983,8.111,11952,8.446,11953,8.446,11968,5.294,11975,5.666,12003,5.149,16731,7.485,16900,8.578,18809,8.111,18813,9.186,18859,8.578,18892,9.954,18918,6.776,18919,9.285,18920,9.285,18921,9.285,18922,6.776,18923,9.285,18924,9.954,18925,6.776,18926,9.285,18927,6.776,18928,5.92,18929,6.776,18930,6.776,18931,6.776,18932,9.285,18933,6.776,18934,6.776,18935,6.776,18936,6.776,18937,6.776,18938,6.776,18939,6.776,18940,6.776,18941,6.776,18942,6.776,18943,6.776,18944,6.776,18945,6.776,18946,6.776,18947,9.285,18948,6.776,18949,6.776,18950,6.776,18951,10.526,18952,9.285,18953,9.285,18954,9.285]],["title/modules/TaskModule.html",[425,1.808,13390,5]],["body/modules/TaskModule.html",[0,0.257,3,0.02,4,0.02,5,0.011,30,0.001,95,0.163,101,0.014,103,0.001,104,0.001,187,1.08,425,2.998,427,2.787,428,2.939,429,3.031,430,3.017,431,2.991,432,4.133,433,4.217,442,4.011,443,2.965,444,2.89,449,4.011,450,3.101,766,3.24,1444,4.911,1945,5.398,1958,7.756,1962,8.168,1968,9.664,1970,8.853,1977,6.944,2767,3.398,2995,10.377,3026,4.653,3027,4.308,3534,9.426,3543,3.7,3544,3.131,4941,10.377,6234,9.215,13390,10.526,18450,11.009,18955,7.538,18956,7.538,18957,7.538,18958,7.538,18959,7.538]],["title/injectables/TaskRepo.html",[105,0.89,1970,4.695]],["body/injectables/TaskRepo.html",[0,0.124,3,0.01,4,0.01,5,0.005,7,0.112,8,0.704,10,2.354,12,2.688,18,2.88,26,2.65,27,0.479,29,0.896,30,0.001,31,0.633,32,0.177,33,0.564,34,0.623,35,1.393,36,2.69,39,0.974,40,2.805,53,2.578,56,1.748,58,2.301,59,3.031,72,1.705,83,1.754,95,0.131,96,0.982,98,2.164,101,0.007,103,0,104,0,105,0.769,107,0.869,111,1.953,112,2.947,138,4.631,144,0.993,145,2.156,167,2.225,187,0.52,188,2.207,217,1.675,221,2.514,227,1.081,234,1.907,264,3.091,277,3.344,329,1.07,347,1.488,369,1.847,379,0.837,380,0.76,381,1.918,398,1.064,404,1.054,529,2.571,538,3.746,596,2.537,692,4.298,701,4.323,877,5.984,883,2.444,884,2.753,885,3.632,908,2.215,909,2.242,910,2.215,911,2.242,912,2.578,913,2.215,914,2.242,915,2,946,2.366,956,2.366,964,2.483,1014,1.783,1278,3.154,1661,2.366,1911,2.242,1970,4.057,2183,2.692,2185,4.728,2432,4.979,2510,2.301,2586,1.917,2675,3.583,2691,5.309,2701,3.853,3105,5.292,3245,3.077,3305,1.795,3577,8.963,3639,2.483,3684,2.036,4628,3.855,4630,3.794,4821,2.242,4982,3.268,4994,5.228,5784,3.399,6110,4.641,6424,4.872,6487,5.578,6654,2.76,6658,2.76,6774,7.809,6775,7.368,6805,2.692,6806,2.692,6844,2.366,7633,2.528,7660,2.692,7793,2.301,8789,3.173,8791,3.355,8796,5.092,11156,2.242,12003,2.76,16968,3.355,18138,4.429,18960,3.632,18961,5.828,18962,7.3,18963,7.3,18964,6.743,18965,5.828,18966,5.828,18967,3.632,18968,3.632,18969,3.632,18970,5.828,18971,5.384,18972,7.3,18973,3.632,18974,3.632,18975,3.355,18976,3.632,18977,5.828,18978,3.632,18979,5.828,18980,3.632,18981,3.632,18982,9.317,18983,3.632,18984,3.632,18985,3.632,18986,3.632,18987,3.632,18988,3.355,18989,3.355,18990,3.355,18991,3.355,18992,9.147,18993,3.632,18994,3.632,18995,3.632,18996,3.632,18997,3.632,18998,3.632,18999,3.632,19000,3.632,19001,3.632,19002,3.632,19003,3.632,19004,3.632,19005,3.632,19006,2.928,19007,3.632,19008,3.632,19009,3.632,19010,3.632,19011,3.632,19012,3.632,19013,3.632,19014,3.632,19015,3.632,19016,3.632,19017,3.632,19018,3.632,19019,3.632,19020,3.632,19021,3.632,19022,3.632,19023,3.632,19024,9.765,19025,7.3,19026,3.173,19027,3.173,19028,3.173,19029,3.632,19030,7.3,19031,3.632,19032,3.632,19033,3.632,19034,3.632,19035,3.632,19036,3.632,19037,3.632,19038,3.632,19039,3.632,19040,3.632,19041,5.828,19042,3.632,19043,3.632,19044,3.632,19045,3.632,19046,3.632,19047,3.632,19048,3.173,19049,3.632,19050,5.828,19051,3.632,19052,3.632,19053,3.632,19054,3.173,19055,3.632,19056,3.173,19057,3.632,19058,3.355,19059,3.037,19060,3.632,19061,3.037,19062,3.355,19063,3.632,19064,3.355,19065,3.632,19066,3.355,19067,3.632,19068,3.632]],["title/classes/TaskResponse.html",[0,0.23,18813,5.438]],["body/classes/TaskResponse.html",[0,0.278,2,0.647,3,0.015,4,0.015,5,0.008,7,0.087,27,0.549,29,0.447,30,0.001,31,0.651,32,0.191,33,0.642,34,1.913,47,0.985,55,2.108,56,3.926,70,4.086,83,3.691,95,0.135,99,0.957,100,2.731,101,0.016,103,0,104,0,127,1.031,144,2.229,163,2.572,165,0.644,208,3.027,329,2.403,347,1.662,359,2.828,364,2.431,371,1.554,375,5.15,376,1.322,379,2.761,404,1.019,467,3.6,469,2.487,564,4.136,565,4.305,591,4.766,592,4.916,595,2.808,618,2.399,620,3.62,622,3.62,966,2.886,1007,5.035,1008,3.076,1009,3.222,1025,3.571,1026,3.131,1480,3.16,1491,4.661,2078,3.288,2136,2.256,2309,4.573,2344,3.371,2675,5.47,2691,4.89,2784,5.91,2787,6.565,3245,5.059,3418,7.757,3714,6.155,3715,5.991,3728,4.544,6045,6.371,6046,5.576,6047,5.314,11967,7.725,11968,7.487,16731,8.466,18812,4.713,18813,9.889,18911,5.207,18914,7.725,18915,5.207,18916,5.207,18917,5.207,19069,5.637,19070,5.637,19071,5.637,19072,5.637,19073,5.637,19074,5.637,19075,5.637,19076,5.637,19077,5.637,19078,5.637,19079,5.637,19080,5.637,19081,5.637,19082,5.637,19083,5.637]],["title/injectables/TaskRule.html",[105,0.89,1971,5.438]],["body/injectables/TaskRule.html",[0,0.214,3,0.017,4,0.017,5,0.009,7,0.097,8,1.065,27,0.458,29,0.875,30,0.001,31,0.619,32,0.155,33,0.551,35,1.23,95,0.154,101,0.012,103,0.001,104,0.001,105,1.163,107,1.505,111,2.41,116,3.899,127,1.114,187,0.901,199,4.437,214,2.07,216,1.883,217,1.665,227,1.269,347,2.455,369,1.39,371,1.734,380,2.774,461,3.08,806,2.65,843,2.745,1828,3.932,1862,6.075,1865,6.944,1866,6.246,1880,4.098,1890,7.63,1911,3.882,1919,2.612,1928,5.443,1959,9.167,1963,9.971,1971,7.108,1989,5.443,2033,5.745,2056,4.227,2691,5.765,3305,3.108,3352,5.927,3353,4.299,3356,5.833,3358,4.299,3359,4.227,3360,6.028,6666,5.494,6667,5.494,6668,5.258,6669,7.703,6727,3.374,13919,8.145,16959,7.703,16961,8.145,19084,6.289,19085,10.194,19086,6.289,19087,8.817,19088,6.289,19089,6.289,19090,6.289,19091,6.289,19092,8.817,19093,6.289,19094,6.289,19095,6.289,19096,8.817,19097,6.289]],["title/classes/TaskScope.html",[0,0.23,18982,5.893]],["body/classes/TaskScope.html",[0,0.146,2,0.492,3,0.011,4,0.011,5,0.006,7,0.066,8,0.802,26,2.803,27,0.539,29,0.996,30,0.001,31,0.704,32,0.181,33,0.627,35,1.532,39,2.18,83,3.49,95,0.117,96,1.159,101,0.008,103,0,104,0,111,2.512,144,2.708,148,1.326,165,0.524,167,3.496,188,2.515,217,1.208,227,1.308,234,0.696,277,4.744,329,1.263,347,2.497,369,1.797,398,1.255,404,1.201,529,4.823,596,3.009,1911,2.646,2432,6.733,2586,2.263,2691,1.881,2701,3.75,3245,4.834,3601,6.555,3714,6.363,3738,5.66,5512,3.257,5872,4.54,5873,4.54,5874,4.54,5879,4.54,5880,4.54,5881,2.983,5882,2.93,5883,2.983,5884,2.983,5893,2.93,5894,4.54,5895,2.983,5896,2.93,5897,2.983,5898,2.93,5899,8.103,6110,6.584,6654,5.046,6727,5.316,6796,3.455,7793,4.207,9888,3.455,9897,3.744,9900,3.959,9904,3.744,9907,7.103,9908,6.135,13934,6.135,13935,6.135,13938,3.744,18982,11.692,19026,5.802,19027,5.802,19028,8,19048,8,19098,12.556,19099,6.641,19100,6.641,19101,6.641,19102,6.641,19103,6.641,19104,6.641,19105,6.641,19106,6.641,19107,6.641,19108,6.641,19109,6.641,19110,4.286,19111,6.641,19112,4.286,19113,6.641,19114,6.641,19115,4.286,19116,6.641,19117,6.641,19118,4.286,19119,6.641,19120,4.286,19121,6.641,19122,4.286,19123,6.641,19124,4.286,19125,6.641,19126,4.286,19127,6.641,19128,4.286,19129,4.286,19130,4.286,19131,4.286,19132,4.286,19133,4.286]],["title/injectables/TaskService.html",[105,0.89,4941,5.126]],["body/injectables/TaskService.html",[0,0.231,3,0.018,4,0.018,5,0.01,7,0.104,8,1.121,10,3.75,12,4.283,26,2.753,27,0.495,29,0.947,30,0.001,31,0.669,32,0.177,33,0.597,35,1.376,36,2.794,59,2.882,95,0.153,98,4.038,99,1.15,101,0.013,103,0.001,104,0.001,105,1.225,107,1.622,111,2.466,112,3.012,127,1.173,138,4.032,187,0.971,216,1.959,217,1.225,221,2.686,227,0.979,347,1.893,450,2.788,701,3.98,1444,4.415,1970,8.581,2439,4.91,2444,5.294,2675,5.593,2691,5.722,3543,3.326,3544,2.814,3684,3.799,4941,7.055,6110,5.158,6193,9.357,6774,8.086,6775,7.034,12003,5.149,13763,5.149,18269,6.26,18450,10.176,18493,6.26,18839,5.92,18880,5.92,18964,9.785,18975,6.26,19048,5.92,19134,6.776,19135,9.285,19136,6.776,19137,9.285,19138,6.776,19139,9.285,19140,6.776,19141,9.285,19142,6.776,19143,6.776,19144,6.776,19145,6.776,19146,6.776,19147,6.776,19148,6.776,19149,6.776]],["title/classes/TaskStatusMapper.html",[0,0.23,18928,5.893]],["body/classes/TaskStatusMapper.html",[0,0.327,2,1.104,3,0.025,4,0.025,5,0.014,7,0.148,8,1.405,27,0.399,29,0.762,30,0.001,31,0.539,32,0.135,33,0.48,35,1.16,95,0.149,99,1.631,100,3.895,101,0.018,103,0.001,104,0.001,217,1.267,227,1.013,234,1.559,564,3.566,627,3.897,975,6.649,3728,7.746,3732,10.748,3733,8.603,18914,10.088,18928,10.164,19150,11.635,19151,9.608,19152,9.608,19153,9.608,19154,9.608]],["title/classes/TaskStatusResponse.html",[0,0.23,18914,5.438]],["body/classes/TaskStatusResponse.html",[0,0.271,2,0.914,3,0.021,4,0.021,5,0.011,7,0.122,27,0.545,29,0.631,30,0.001,31,0.446,32,0.184,33,0.398,55,2.84,95,0.102,101,0.015,103,0.001,104,0.001,127,1.306,165,0.816,347,2.631,364,2.393,376,1.866,467,3.719,966,4.073,3736,7.349,3737,8.466,3738,8.767,3739,8.331,3740,8.331,3741,8.938,3742,8.466,3743,7.349,3750,6.651,3751,7.349,3752,6.651,3753,6.413,3754,7.349,3755,7.349,18834,11.139,18914,10.153,19155,7.955,19156,7.955,19157,7.955,19158,7.955,19159,7.955,19160,7.955]],["title/injectables/TaskUC.html",[105,0.89,18777,5.64]],["body/injectables/TaskUC.html",[0,0.106,3,0.008,4,0.008,5,0.004,7,0.048,8,0.622,10,2.079,26,2.678,27,0.457,29,0.852,30,0.001,31,0.602,32,0.151,33,0.537,35,1.297,36,2.655,39,2.795,59,0.968,83,2.541,95,0.108,98,3.067,99,0.529,101,0.006,103,0,104,0,105,0.679,107,0.746,111,2.486,112,2.906,127,0.65,144,1.407,187,0.447,188,3.198,216,1.562,217,1.786,221,3.025,227,1.227,234,1.692,284,1.879,305,0.897,309,1.764,347,1.721,369,0.689,371,2.103,380,0.652,450,1.282,461,2.924,529,1.375,564,4.252,574,1.413,721,1.672,738,4.404,766,1.34,843,2.246,951,2.369,1008,4.962,1016,2.725,1724,1.748,1828,3.402,1865,3.996,1868,1.974,1871,3.177,1872,3.404,1880,3.353,1881,4.163,1919,1.295,1941,2.212,1952,5.161,1958,5.866,1962,6.177,1970,6.329,2038,3.518,2185,3.72,2478,1.781,2487,2.88,2526,1.974,2689,1.62,2691,4.221,2767,1.405,3106,2.885,3245,4.458,3419,3.177,3733,3.404,3739,5.047,3830,5.349,3832,4.418,4209,4.149,4941,7.309,4982,3.685,4994,3.756,5974,2.031,6110,3.651,6122,2.062,6424,5.865,6487,7.374,6654,5.797,6769,4.496,6844,2.031,6845,4.149,7633,2.17,7668,1.879,7793,3.26,7948,2.259,7978,7.377,8783,8.95,9741,2.31,11216,2.002,13763,7.921,13963,4.496,14595,4.02,18138,2.369,18777,4.303,18785,4.754,18788,4.754,18839,2.723,18861,4.754,18880,5.741,18881,2.723,18890,6.665,18988,4.754,18989,4.754,18990,4.754,18991,4.754,19026,4.496,19027,2.723,19028,4.496,19161,3.117,19162,5.146,19163,5.146,19164,7.63,19165,5.146,19166,5.146,19167,3.117,19168,5.146,19169,3.117,19170,3.117,19171,5.146,19172,3.117,19173,5.146,19174,3.117,19175,5.146,19176,3.117,19177,5.146,19178,3.117,19179,3.117,19180,5.146,19181,8.445,19182,3.117,19183,5.146,19184,3.117,19185,5.146,19186,3.117,19187,3.117,19188,6.572,19189,5.146,19190,6.572,19191,6.572,19192,9.092,19193,5.146,19194,9.092,19195,5.146,19196,5.146,19197,7.63,19198,3.117,19199,9.092,19200,6.572,19201,7.63,19202,6.572,19203,4.754,19204,3.117,19205,3.117,19206,3.117,19207,3.117,19208,3.117,19209,3.117,19210,3.117,19211,3.117,19212,7.63,19213,5.146,19214,3.117,19215,7.63,19216,5.146,19217,5.146,19218,5.146,19219,3.117,19220,5.146,19221,3.117,19222,3.117,19223,7.63,19224,3.117,19225,3.117,19226,3.117,19227,3.117,19228,3.117,19229,3.117,19230,3.117,19231,3.117,19232,3.117,19233,3.117,19234,3.117,19235,5.146,19236,5.146,19237,3.117,19238,3.117,19239,5.146,19240,5.146,19241,3.117,19242,3.117]],["title/classes/TaskUpdateParams.html",[0,0.23,18924,5.893]],["body/classes/TaskUpdateParams.html",[0,0.316,2,0.777,3,0.018,4,0.018,5,0.01,7,0.104,27,0.511,30,0.001,31,0.593,32,0.185,33,0.659,34,1.954,47,0.936,83,4.04,95,0.146,99,1.148,101,0.013,103,0.001,104,0.001,165,0.732,188,3.512,214,3.053,359,3.949,364,2.284,368,4.498,369,2.517,370,3.094,371,2.556,374,2.161,375,4.999,376,1.587,379,3.069,467,2.493,469,2.984,470,5.027,471,5.243,475,5.705,999,7.114,1000,4.526,1474,3.148,2675,5.195,2691,5.638,2701,4.278,2778,6.043,2910,6.214,2911,6.214,3242,3.6,3245,5.587,3684,5.2,3714,6.797,4955,6.379,6905,8.102,6916,5.453,6918,6.874,8270,6.874,9218,5.656,11952,7.844,18834,10.55,18894,8.568,18896,6.249,18898,8.568,18901,6.249,18924,8.102,19243,6.765,19244,6.765,19245,6.765,19246,6.765,19247,6.765,19248,6.765]],["title/classes/TaskUrlParams.html",[0,0.23,18258,5.64]],["body/classes/TaskUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,2691,5.142,3834,5.672,13763,9.559,18258,9.798,19249,9.724,19250,9.724]],["title/classes/TaskWithStatusVo.html",[0,0.23,7948,4.888]],["body/classes/TaskWithStatusVo.html",[0,0.18,2,0.37,3,0.009,4,0.009,5,0.005,7,0.175,26,1.795,27,0.279,29,0.256,30,0.001,31,0.297,32,0.156,33,0.161,34,0.908,47,0.711,55,1.164,83,2.588,95,0.148,96,0.872,101,0.016,103,0,104,0,111,2.382,116,3.678,127,0.407,145,2.01,148,2.41,165,0.729,167,1.231,187,0.462,188,3.257,192,0.962,214,1.061,217,1.781,227,1.353,234,1.654,240,3.307,247,2.099,305,1.523,334,0.583,347,2.269,369,2.402,370,3.083,371,3.132,379,0.743,380,1.107,398,0.944,399,2.072,400,1.415,402,1.327,404,0.583,405,0.869,406,1.03,461,2.708,564,4.131,687,1.496,728,1.263,738,1.861,783,1.943,806,2.23,844,3.051,905,3.234,957,1.825,1019,1.881,1062,1.408,1218,2.288,1439,1.542,1661,2.101,1828,1.438,1910,1.523,1919,1.339,1932,2.709,2078,1.881,2136,1.291,2526,2.043,2674,3.943,2675,3.823,2678,2.888,2682,1.76,2687,3.352,2688,1.881,2689,2.75,2690,2.288,2691,5.225,2701,1.487,2705,5.603,2881,3.921,3106,1.808,3242,2.816,3245,2.793,3305,4.567,3396,2.071,3418,4.685,3684,5.473,3685,2.696,3714,2.071,3733,6.742,3737,3.557,3738,5.986,3739,5.152,3740,6.113,3741,6.558,3742,3.557,3753,6.278,4083,1.901,4227,1.11,4239,2.016,4303,1.415,4825,2.016,4826,2.071,4926,2.441,4955,1.943,6364,4.524,6397,2.016,6400,3.227,6408,3.352,6409,1.808,6421,2.599,6425,2.336,6427,2.204,6428,2.204,6429,2.016,6430,1.943,6444,2.071,6633,1.99,6634,2.133,6704,2.519,6727,1.73,6737,2.071,6742,2.39,7652,3.227,7793,4.933,7948,3.834,9401,2.016,10657,2.245,11336,2.204,11356,2.204,11490,2.599,11799,2.599,11819,5.773,11820,2.599,11839,5.773,11840,2.599,11951,2.336,11954,3.755,11955,2.39,11956,2.336,11957,2.696,11959,2.817,11960,2.696,11961,2.817,11962,2.817,11963,2.817,11964,2.817,11965,4.623,11966,5.879,11967,5.425,11968,5.258,11969,2.817,11970,2.817,11971,2.696,11972,2.817,11973,2.817,11974,2.817,11975,2.696,11976,8.073,11977,2.817,11978,2.45,11979,2.599,11980,4.623,11981,6.804,11982,4.266,11983,6.804,11984,2.817,11985,2.817,11986,2.817,11987,4.623,11988,2.817,11989,2.817,11990,2.817,11991,2.817,11992,2.817,11993,2.817,11994,2.817,11995,2.817,11996,2.817,11997,2.817,11998,2.817,11999,2.817,12000,4.623,12001,2.817,12002,2.817,12003,2.45,12004,2.817,12005,2.817,12006,2.817,12007,2.817,12008,2.817,12009,2.817,12010,4.623,12011,2.817,12012,2.817,12013,4.623,12014,2.817,12015,4.623,12016,2.519,12017,2.696,12018,2.817,12019,6.804,12020,5.879,12021,4.424,12022,2.599,12023,5.879,12024,2.817,12025,5.879,12026,2.696,12027,4.623,12028,2.817,12029,2.817,12030,2.817,12031,5.879,12032,2.817,12033,4.623,12034,2.696,12035,2.817,12036,2.817,12037,6.804,12038,2.817,12039,2.817,12040,2.817,12041,2.817,12042,2.817,12043,2.817,12044,2.817,12045,4.623,12046,2.817,12047,2.817,12048,4.623,12049,2.817,12050,2.817,12051,2.817,12052,2.817,12053,2.696,12054,2.817,12055,6.804,12056,2.817,12057,2.817,12058,2.817,12059,2.817,12060,2.817,12061,2.817,12062,2.817,12063,2.817,12064,2.817,12065,2.696,19251,5.292,19252,3.225]],["title/classes/TeamDto.html",[0,0.23,4497,4.787]],["body/classes/TeamDto.html",[0,0.361,2,0.951,3,0.022,4,0.022,5,0.012,7,0.127,26,2.442,27,0.512,29,0.657,30,0.001,31,0.692,32,0.173,33,0.414,34,2.008,39,2.221,47,0.929,95,0.106,99,1.406,100,3.551,101,0.02,103,0.001,104,0.001,127,1.047,165,0.837,379,1.909,405,3.154,415,4.52,416,5.319,425,2.844,595,2.852,618,3.525,619,4.734,1919,4.405,2136,3.315,2450,6.719,4227,2.852,4303,3.635,4304,4.882,4305,6.139,4497,9.051,4568,8.878,4635,6.139,10733,7.236,10734,7.236,11378,6.911,11635,8.06,12068,8.479,12077,6.471,13231,8.551,14900,9.946,15808,9.266,19253,7.652,19254,9.266,19255,8.868,19256,10.607,19257,8.283,19258,8.283,19259,7.652]],["title/entities/TeamEntity.html",[380,1.411,6720,4.164]],["body/entities/TeamEntity.html",[0,0.324,3,0.019,4,0.019,5,0.01,7,0.108,27,0.395,30,0.001,31,0.649,32,0.134,39,1.887,47,0.787,62,6.299,72,3.304,95,0.155,96,2.575,101,0.022,103,0.001,104,0.001,111,1.408,144,2.952,165,0.752,192,2.841,227,1.138,234,1.142,240,3.385,334,1.05,364,1.766,369,2.106,380,1.993,381,2.316,398,2.061,399,3.731,400,3.088,402,2.895,404,1.272,405,2.568,406,2.248,415,5.894,461,2.989,496,5.253,728,4.23,844,5.653,1925,4.951,2136,2.817,2222,5.347,2618,5.53,2674,3.227,3547,4.73,4227,2.423,4287,4.994,4293,5.155,4303,3.088,4304,6.367,4307,8.438,4926,5.578,6407,4.344,6409,3.945,6430,4.241,6720,5.881,6758,4.585,9736,5.099,9737,5.099,10740,5.216,10741,5.497,11378,4.585,12066,7.443,12067,5.884,12068,6.903,12069,8.875,12070,5.497,12071,7.68,12072,5.884,12073,5.884,12074,5.884,12075,5.884,12076,5.884,12077,5.497,12078,5.884,12079,5.884,19260,7.037,19261,7.037]],["title/classes/TeamFactory.html",[0,0.23,19262,6.231]],["body/classes/TeamFactory.html",[0,0.162,2,0.545,3,0.013,4,0.013,5,0.007,7,0.073,8,0.867,27,0.537,29,1.034,30,0.001,31,0.711,32,0.185,33,0.627,34,1.487,35,1.443,39,2.322,47,0.755,55,2.493,59,3.22,95,0.124,99,0.805,101,0.009,103,0,104,0,127,0.6,138,3.118,144,3.19,148,1.469,165,0.567,185,4.911,216,1.328,217,1.142,227,0.913,329,3.439,359,2.49,366,2.613,379,1.997,380,2.17,381,2.363,404,1.298,496,4.371,538,3.219,596,3.853,627,2.236,660,7.11,661,4.598,662,5.415,665,4.026,666,5.415,667,5.61,668,4.026,669,4.026,670,4.026,671,3.953,672,4.402,673,4.856,674,6.369,675,5.711,676,6.937,677,2.686,682,2.661,683,4.026,684,2.686,685,5.058,686,5.271,687,4.481,688,5.098,689,3.989,690,2.661,691,2.486,692,4.066,693,2.59,694,2.546,695,2.661,696,4.981,697,2.686,698,4.769,699,2.661,700,7.114,701,4.077,702,6.543,703,2.686,704,4.28,705,2.661,706,2.686,707,2.661,708,2.686,709,2.661,710,3.006,711,2.828,712,2.661,713,6.008,714,2.686,715,2.661,716,4.026,717,3.953,718,4.026,719,2.686,720,2.568,721,2.546,722,2.094,723,2.661,724,2.661,725,2.661,726,2.686,727,2.686,728,1.858,729,2.661,730,2.686,731,2.812,732,2.661,733,2.686,735,2.74,737,4.279,4328,3.968,4499,2.894,6720,2.93,12066,3.708,12068,6.276,12069,6.723,14896,5.789,19262,8.002,19263,4.746,19264,6.633,19265,7.181,19266,6.633,19267,4.746,19268,7.181,19269,4.746,19270,4.146,19271,4.746,19272,4.746,19273,4.746,19274,4.746,19275,4.746]],["title/injectables/TeamMapper.html",[105,0.89,4606,5.64]],["body/injectables/TeamMapper.html",[0,0.293,3,0.023,4,0.023,5,0.012,7,0.132,8,1.314,27,0.358,29,0.684,30,0.001,31,0.61,32,0.121,33,0.431,34,1.48,35,1.041,39,2.311,95,0.153,99,1.463,100,3.642,101,0.016,103,0.001,104,0.001,105,1.435,107,2.063,116,3.859,187,1.235,217,1.137,227,1.147,234,1.766,264,3.65,379,1.987,380,2.619,4227,2.968,4497,8.885,4499,6.635,4530,8.77,4568,7.573,4606,9.096,4635,6.389,6720,8.138,12068,7.883,12069,7.573,14896,6.949,14900,9.61,19276,8.62,19277,10.88,19278,10.88,19279,8.62,19280,10.05,19281,8.62,19282,8.62,19283,7.963,19284,8.62,19285,8.62,19286,8.62,19287,8.62]],["title/entities/TeamNews.html",[380,1.411,6761,5.126]],["body/entities/TeamNews.html",[0,0.342,3,0.014,4,0.024,5,0.007,7,0.173,9,3.649,26,2.099,27,0.214,30,0.001,31,0.428,32,0.141,34,0.883,47,0.889,83,2.296,95,0.153,96,2.458,101,0.02,103,0,104,0,165,0.847,188,2.889,192,3.202,208,1.91,227,0.542,234,1.476,240,3.648,334,0.567,364,0.954,369,2.487,370,3.753,380,2.246,381,1.694,398,1.507,399,2.988,400,2.258,404,1.818,405,2.711,406,1.644,461,2.475,571,5.684,574,4.122,595,1.772,617,5.249,627,1.603,672,4.621,731,3.561,769,4.547,843,2.247,844,5.1,854,3.85,1031,2.446,1298,4.269,1299,4.665,1300,4.218,1301,4.463,1302,4.878,1474,3.087,1492,4.599,1910,3.604,1916,2.493,1932,3.906,1991,2.785,2344,3.758,2572,3.305,2620,5.303,2674,4.169,2688,3.002,2744,5.69,2789,2.717,3394,3.518,3396,3.305,3397,3.405,3399,3.652,3400,3.583,3401,3.815,3415,3.305,3547,3.459,3573,3.353,4227,1.772,4319,3.911,4320,3.729,4926,4.194,4996,3.815,5011,3.652,5554,6.588,6110,2.859,6329,3.583,6407,3.177,6409,2.886,6430,3.102,6633,3.177,6717,3.815,6718,4.149,6720,5.613,6721,4.149,6722,6.739,6723,5.839,6724,4.149,6725,8.787,6726,5.047,6727,4.878,6728,5.655,6729,5.655,6730,6.56,6731,7.422,6732,4.149,6733,5.415,6734,4.149,6735,3.911,6736,3.911,6737,4.9,6738,4.149,6739,4.149,6740,3.911,6741,4.149,6742,3.815,6743,4.149,6744,3.067,6745,3.177,6746,3.911,6747,4.149,6748,4.149,6749,7.103,6750,4.149,6751,7.33,6752,4.149,6753,4.149,6754,5.798,6755,3.911,6756,6.329,6757,4.021,6758,4.971,6759,3.911,6760,3.729,6761,5.798,6762,6.151,19288,5.147]],["title/controllers/TeamNewsController.html",[481,2.63,14718,5.893]],["body/controllers/TeamNewsController.html",[0,0.255,3,0.02,4,0.02,5,0.011,7,0.115,8,1.2,27,0.311,29,0.595,30,0.001,31,0.42,32,0.105,33,0.375,35,0.905,36,2.16,72,3.519,95,0.169,100,2.51,101,0.014,103,0.001,104,0.001,112,2.501,187,1.074,215,2.426,216,1.386,217,1.471,221,1.767,227,0.79,234,1.216,264,4.208,277,4.463,364,1.39,376,1.758,447,3.143,461,2.291,469,3.307,481,2.923,483,3.608,491,5.828,494,6.72,513,6.325,529,4.919,555,3.957,556,4.056,557,4.091,559,4.091,561,4.091,1016,3.549,1028,8.426,2769,3.704,2934,6.476,3710,4.518,4499,7.534,5784,5.797,6487,7.241,6731,5.625,7668,4.518,10354,9.572,11221,6.043,11378,4.884,12319,6.267,14603,9.181,14612,6.043,14613,6.548,14614,8.989,14616,6.043,14618,6.925,14624,6.548,14625,6.548,14626,6.925,14627,6.925,14628,6.925,14629,6.925,14718,8.682,19289,9.939,19290,7.496,19291,11.15,19292,7.496,19293,10.373,19294,9.939,19295,7.496,19296,7.496,19297,6.925,19298,7.496,19299,7.496,19300,7.496]],["title/classes/TeamPermissionsBody.html",[0,0.23,4576,5.438]],["body/classes/TeamPermissionsBody.html",[0,0.37,2,0.988,3,0.023,4,0.023,5,0.012,7,0.132,10,4.81,27,0.535,30,0.001,32,0.181,95,0.139,101,0.016,103,0.001,104,0.001,165,0.857,347,2.805,364,2.392,373,6.956,374,2.748,376,2.018,467,3.542,883,4.994,1871,7.352,1872,7.878,4568,9.172,4576,8.759,7186,9.803,17888,9.049,19301,12.172,19302,8.602,19303,8.602,19304,8.602,19305,8.602,19306,8.602,19307,8.602]],["title/classes/TeamPermissionsDto.html",[0,0.23,4508,5.27]],["body/classes/TeamPermissionsDto.html",[0,0.288,2,0.973,3,0.022,4,0.022,5,0.012,7,0.13,10,4.777,27,0.545,29,0.672,30,0.001,31,0.475,32,0.184,33,0.69,101,0.016,103,0.001,104,0.001,127,1.071,165,0.849,347,2.798,405,2.901,595,2.918,883,4.959,1871,7.301,1872,7.824,4508,10.034,4511,11.649,4568,9.282,9681,7.403,9682,7.403,9683,7.403,9684,7.403,9685,7.403,9686,7.403,9687,7.403,9688,7.403,17888,8.987,19308,7.829,19309,10.763,19310,7.829,19311,7.829,19312,7.829,19313,7.829,19314,8.475,19315,8.475]],["title/injectables/TeamPermissionsMapper.html",[105,0.89,4607,5.64]],["body/injectables/TeamPermissionsMapper.html",[0,0.298,3,0.023,4,0.023,5,0.012,7,0.134,8,1.326,10,3.535,27,0.363,29,0.694,30,0.001,31,0.491,32,0.123,33,0.437,35,1.057,95,0.154,100,3.677,101,0.017,103,0.001,104,0.001,105,1.449,107,2.095,116,3.886,187,1.254,227,1.158,234,1.42,264,3.706,379,2.017,543,6.631,883,3.669,1871,5.402,1872,5.789,4508,9.835,4512,6.837,4530,8.854,4533,6.62,4568,7.645,4576,10.149,4592,7.645,4607,9.183,4610,9.595,4636,11.63,4672,8.084,17888,6.65,19280,10.146,19316,8.751,19317,10.984,19318,10.984,19319,8.751,19320,8.751,19321,8.751,19322,8.751,19323,8.751,19324,8.751,19325,8.751]],["title/classes/TeamRoleDto.html",[0,0.23,4574,5.64]],["body/classes/TeamRoleDto.html",[0,0.395,2,1.101,3,0.025,4,0.025,5,0.014,7,0.147,27,0.482,30,0.001,32,0.163,47,0.946,95,0.149,101,0.018,103,0.001,104,0.001,165,0.917,364,2.154,374,3.062,376,2.248,467,3.361,1000,5.346,3928,8.546,4568,8.702,4574,9.713,4635,9.266,5711,8.418,19301,11.549,19326,9.585,19327,9.585,19328,9.585]],["title/classes/TeamRolePermissionsDto.html",[0,0.23,4532,5.438]],["body/classes/TeamRolePermissionsDto.html",[0,0.3,2,1.012,3,0.023,4,0.023,5,0.012,7,0.135,27,0.539,29,0.699,30,0.001,31,0.494,32,0.182,33,0.44,47,0.965,101,0.017,103,0.001,104,0.001,127,1.113,165,0.87,347,2.248,405,2.973,496,5.585,595,3.033,1916,5.833,3928,8.231,3933,8.138,4477,8.91,4532,10.474,4536,10.518,4538,6.815,8296,8.138,8297,8.138,9620,6.529,9650,6.882,19308,8.138,19310,8.138,19311,10.188,19312,8.138,19313,8.138,19329,13.256,19330,8.809,19331,8.809,19332,8.809]],["title/injectables/TeamRule.html",[105,0.89,1972,5.64]],["body/injectables/TeamRule.html",[0,0.269,3,0.021,4,0.021,5,0.011,7,0.122,8,1.243,27,0.475,29,0.908,30,0.001,31,0.642,32,0.16,33,0.572,35,1.243,95,0.155,101,0.015,103,0.001,104,0.001,105,1.358,107,1.893,116,4.172,127,0.999,187,1.133,199,4.37,214,2.603,215,2.56,216,1.463,217,1.043,227,1.085,347,2.471,371,2.18,380,2.745,461,3.101,738,4.565,806,3.332,1862,6.675,1890,8.163,1911,4.882,1928,7.76,1972,8.607,1989,6.355,2033,6.708,3352,6.92,3353,5.407,3356,6.81,3358,5.407,3359,5.316,3361,6.009,6720,8.214,12069,7.166,19283,7.306,19333,7.909,19334,7.909,19335,7.909,19336,7.909,19337,10.295,19338,7.909,19339,7.909]],["title/injectables/TeamService.html",[105,0.89,19340,5.893]],["body/injectables/TeamService.html",[0,0.28,3,0.022,4,0.022,5,0.012,7,0.126,8,1.274,26,2.763,27,0.484,29,0.925,30,0.001,31,0.654,32,0.163,33,0.583,35,1.274,36,2.674,39,3.125,95,0.149,99,1.394,101,0.016,103,0.001,104,0.001,105,1.392,107,1.966,112,2.921,116,4.214,127,1.038,187,1.177,215,2.659,216,1.519,217,1.392,221,2.748,227,1.112,450,3.38,1973,8.751,6720,5.071,11378,7.595,12167,9.747,19340,9.218,19341,8.215,19342,10.552,19343,10.552,19344,8.215,19345,8.215,19346,10.552,19347,8.215,19348,10.552,19349,8.215,19350,8.215,19351,8.215,19352,8.215,19353,8.215,19354,8.215,19355,8.215]],["title/classes/TeamUrlParams.html",[0,0.23,19293,5.893]],["body/classes/TeamUrlParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,34,2.011,47,0.853,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,364,1.803,368,4.629,369,2.591,370,3.91,371,3.23,374,3.107,376,2.281,379,2.242,467,3.15,1000,5.012,3834,5.672,3928,8.6,4499,7.147,19293,10.238,19356,9.724,19357,9.724]],["title/classes/TeamUserDto.html",[0,0.23,14900,5.438]],["body/classes/TeamUserDto.html",[0,0.366,2,0.973,3,0.022,4,0.022,5,0.012,7,0.13,26,2.246,27,0.516,29,0.672,30,0.001,31,0.604,32,0.174,33,0.424,34,1.455,39,3.171,47,0.971,95,0.109,99,1.438,100,2.837,101,0.021,103,0.001,104,0.001,127,1.071,165,0.849,405,3.188,415,4.625,416,5.443,425,2.272,595,2.918,618,3.606,619,4.844,1919,3.52,2136,3.392,2450,5.368,4227,4.072,4303,3.719,4304,4.995,4305,6.281,4497,7.638,4568,8.94,4635,8.767,10733,7.403,10734,7.403,11378,5.522,11635,6.44,12068,6.141,12077,6.621,13231,6.832,14900,10.581,15808,7.403,19253,7.829,19254,7.403,19255,7.086,19259,7.829,19358,10.763,19359,8.475,19360,8.475]],["title/classes/TeamUserEntity.html",[0,0.23,12069,4.695]],["body/classes/TeamUserEntity.html",[0,0.302,2,0.729,3,0.017,4,0.017,5,0.009,7,0.098,27,0.525,29,0.812,30,0.001,31,0.654,32,0.169,33,0.511,35,1.072,39,2.743,47,0.646,62,3.703,72,2.981,95,0.149,96,2.399,101,0.021,103,0.001,104,0.001,111,2.047,127,0.802,144,3.187,148,2.746,165,0.7,192,3.304,227,1.079,234,1.03,240,2.781,334,0.978,364,1.897,369,1.403,380,1.857,398,1.859,399,3.476,400,2.786,402,2.612,404,1.148,405,2.759,406,2.028,415,5.585,461,3.085,496,5.417,595,2.186,728,4.007,844,5.828,884,4.193,1925,3.299,2136,2.541,2222,4.824,2618,5.239,2674,2.911,3547,4.267,4227,3.523,4293,4.802,4303,2.786,4304,6.032,4307,7.994,4926,5.378,6407,3.919,6409,3.559,6430,3.826,6627,6.878,6720,3.919,6758,4.136,9346,5.546,9736,4.6,9737,4.6,10740,4.705,10741,4.96,11378,4.136,12066,6.934,12067,5.308,12068,6.431,12069,8.632,12070,4.96,12071,8.933,12072,5.308,12073,5.308,12074,5.308,12075,5.308,12076,5.308,12077,4.96,12078,5.308,12079,5.308,19361,6.349,19362,6.349,19363,6.349,19364,6.349,19365,6.349,19366,6.349,19367,6.349,19368,6.349,19369,6.349,19370,6.349,19371,6.349]],["title/classes/TeamUserFactory.html",[0,0.23,19270,5.893]],["body/classes/TeamUserFactory.html",[0,0.154,2,0.52,3,0.012,4,0.012,5,0.006,7,0.07,8,0.837,27,0.532,29,1.025,30,0.001,31,0.696,32,0.184,33,0.62,34,1.444,35,1.424,39,2.872,47,0.837,55,2.453,59,3.153,95,0.137,99,0.768,101,0.009,103,0,104,0,127,0.572,138,3.008,144,3.143,148,1.401,165,0.547,185,4.86,192,3.429,216,1.281,217,1.517,227,0.887,234,0.735,329,3.388,359,2.402,366,2.492,379,1.94,380,2.125,381,2.28,404,1.252,461,2.173,496,5.069,538,3.106,596,3.815,627,2.157,660,7.052,661,4.514,662,5.285,665,3.884,666,5.285,667,5.535,668,3.884,669,3.884,670,3.884,671,3.814,672,4.276,673,4.718,674,5.847,675,5.593,676,6.876,677,2.562,682,2.538,683,3.884,684,2.562,685,4.937,686,5.144,687,4.373,688,4.976,689,3.848,690,2.538,691,2.371,692,3.992,693,2.471,694,2.429,695,2.538,696,4.862,697,2.562,698,4.632,699,2.538,700,7.044,701,4.017,702,6.448,703,2.562,704,4.158,705,2.538,706,2.562,707,2.538,708,2.562,709,2.538,710,2.868,711,2.698,712,2.538,713,5.899,714,2.562,715,2.538,716,3.884,717,3.814,718,3.884,719,2.562,720,2.449,721,2.429,722,1.997,723,2.538,724,2.538,725,2.538,726,2.562,727,2.562,728,1.773,729,2.538,730,2.562,731,2.713,732,2.538,733,2.562,735,2.613,737,4.128,848,3.213,2233,6.399,3110,4.076,4328,3.785,6613,3.537,6622,5.412,12069,4.822,18287,7.35,19264,6.399,19266,6.399,19270,7.35,19372,4.527,19373,4.527,19374,6.927,19375,4.527,19376,4.527,19377,4.527,19378,4.182,19379,4.527,19380,4.527,19381,4.527,19382,4.182,19383,4.527]],["title/modules/TeamsApiModule.html",[425,1.808,17772,5.438]],["body/modules/TeamsApiModule.html",[0,0.33,3,0.026,4,0.026,5,0.014,30,0.001,95,0.15,101,0.018,103,0.001,104,0.001,187,1.39,425,3.369,427,3.586,428,3.783,429,3.9,430,3.883,431,3.849,432,4.326,433,4.413,442,4.705,443,3.815,444,3.719,446,6.145,447,4.068,449,4.705,17772,10.938,19384,9.701,19385,9.701,19386,11.344,19387,9.701,19388,9.701]],["title/modules/TeamsModule.html",[425,1.808,19386,5.64]],["body/modules/TeamsModule.html",[0,0.317,3,0.025,4,0.025,5,0.013,30,0.001,95,0.158,101,0.018,103,0.001,104,0.001,187,1.335,425,3.31,427,3.445,428,3.634,429,3.747,430,3.73,431,3.697,432,4.565,433,4.657,442,4.592,443,3.665,444,3.573,450,3.834,766,4.005,1973,9.034,19340,12.284,19386,11.578,19389,9.319,19390,9.319,19391,9.319,19392,9.319]],["title/injectables/TeamsRepo.html",[105,0.89,1973,4.534]],["body/injectables/TeamsRepo.html",[0,0.204,3,0.016,4,0.016,5,0.008,7,0.092,8,1.031,10,3.448,12,3.937,13,6.058,18,4.219,26,2.548,27,0.518,29,0.941,30,0.001,31,0.665,32,0.171,33,0.593,34,1.465,35,1.433,36,2.798,39,2.662,40,4.109,42,6.058,49,2.342,55,1.322,62,3.504,95,0.139,96,1.624,97,2.556,99,1.02,101,0.011,103,0.001,104,0.001,105,1.126,107,1.438,111,1.986,112,2.975,144,2.333,165,0.674,187,0.861,217,1.126,221,2.878,227,1.204,234,0.975,264,2.544,284,5.145,329,2.515,371,2.353,380,1.257,381,2.81,404,1.543,461,1.968,496,5.144,596,3.284,692,4.852,877,7.12,883,3.579,884,4.033,885,4.941,890,7.457,908,3.663,909,3.708,910,3.663,911,3.708,913,3.663,914,3.708,915,3.307,921,4.565,1304,5.647,1925,4.437,1973,5.738,3110,4.135,3639,4.107,3911,4.693,4499,5.206,4628,7.153,6720,6.13,11378,7.732,12069,5.942,14896,4.843,16840,9.173,16846,7.886,16850,5.55,18408,5.55,19393,6.007,19394,7.457,19395,6.007,19396,7.457,19397,6.007,19398,6.007,19399,6.007,19400,6.007,19401,6.007,19402,6.007,19403,6.007,19404,6.007,19405,6.007,19406,6.007,19407,6.007,19408,6.007]],["title/classes/TestApiClient.html",[0,0.23,1715,5.893]],["body/classes/TestApiClient.html",[0,0.124,2,0.419,3,0.01,4,0.01,5,0.005,7,0.056,8,0.706,10,2.363,27,0.514,29,0.948,30,0.001,31,0.67,32,0.172,33,0.597,35,1.421,36,1.271,47,1.01,51,2.891,55,1.611,59,3.037,87,2.891,94,4.358,95,0.107,99,0.619,101,0.007,103,0,104,0,111,2.651,112,1.643,116,4.083,127,0.461,144,2.506,163,3.476,165,0.462,167,1.393,185,1.429,187,0.523,216,2.038,217,1.717,221,0.86,227,1.24,234,1.188,247,2.321,305,1.05,329,2.701,334,0.402,347,1.192,355,2.301,359,3.564,363,3.757,379,0.841,483,1.756,543,5.15,552,3.757,576,7.226,643,2.589,740,5.11,905,1.515,946,3.811,1016,3.494,1062,1.593,1388,4.57,1491,7.148,1683,6.059,1700,7.317,1701,11.554,1702,3.37,1703,4.921,1704,9.495,1705,5.11,1706,3.37,1707,3.37,1708,2.644,1709,3.187,1710,3.37,1711,3.05,1712,3.37,1713,3.37,1714,3.187,1715,6.396,1716,3.37,1717,2.343,1718,3.37,1719,5.404,1720,4.445,1721,5.11,1722,4.891,1723,4.716,1724,3.28,1725,7.09,1726,9.495,1727,6.764,1728,5.404,1729,5.404,1730,5.404,1731,3.37,1732,9.039,1733,3.37,1734,5.404,1735,10.444,1736,8.469,1737,10.444,1738,3.37,1739,5.404,1740,8.469,1741,3.37,1742,7.738,1743,5.404,1744,3.37,1745,6.122,1746,5.404,1747,3.37,1748,5.404,1749,5.404,1750,3.37,1751,3.37,1752,3.37,1753,3.37,1754,5.404,1755,3.37,1756,3.187,1757,5.404,1758,5.564,1759,7.738,1760,3.37,1761,5.404,1762,3.37,1763,8.469,1764,5.404,1765,5.404,1766,3.37,1767,5.404,1768,5.404,1769,3.37,1770,3.37,1771,5.404,1772,7.738,1773,2.343,1774,3.37,1775,5.404,1776,3.37,1777,3.37,1778,3.37,1779,3.37,1780,3.37,2955,3.311,4038,3.611,19409,5.85,19410,5.85,19411,5.85,19412,5.85,19413,5.85,19414,3.649,19415,3.649,19416,3.649,19417,3.649,19418,3.649,19419,9.168,19420,3.649,19421,3.649,19422,3.649,19423,3.649,19424,3.649,19425,3.649,19426,3.649,19427,3.649,19428,3.649,19429,3.649]],["title/classes/TestBootstrapConsole.html",[0,0.23,19430,6.231]],["body/classes/TestBootstrapConsole.html",[0,0.294,2,0.992,3,0.023,4,0.023,5,0.012,7,0.133,8,1.316,27,0.359,30,0.001,35,1.043,36,2.594,47,0.629,95,0.166,101,0.021,103,0.001,104,0.001,112,1.938,217,1.437,221,2.037,227,1.148,404,1.97,431,3.427,449,3.473,731,3.383,883,5.254,1236,5.207,1298,4.056,1299,4.008,1300,4.008,1301,4.24,1302,4.635,2657,6.13,2658,6.013,2659,7.223,3448,5.807,3456,6.13,3458,6.901,3459,5.148,3461,6.749,7649,6.749,17747,9.517,19430,10.064,19431,10.894,19432,10.894,19433,8.639,19434,11.933,19435,8.639,19436,7.98,19437,8.639,19438,6.564,19439,7.98,19440,8.639,19441,8.639,19442,10.894,19443,7.98,19444,8.639,19445,8.639,19446,10.894,19447,8.639,19448,7.547,19449,6.403,19450,8.639,19451,8.639]],["title/classes/TestHelper.html",[0,0.23,19452,6.231]],["body/classes/TestHelper.html",[0,0.284,2,0.959,3,0.022,4,0.022,5,0.017,7,0.128,27,0.443,30,0.001,31,0.598,47,0.776,95,0.151,101,0.016,103,0.001,104,0.001,116,3.452,144,2.915,163,2.634,165,0.841,217,1.724,227,1.124,329,3.142,334,0.92,627,4.072,2880,3.995,3544,3.468,5410,7.441,5562,5.813,6064,5.387,6162,5.614,6169,7.903,6170,6.19,6171,6.19,6172,8.707,9917,8.103,9918,6.19,9919,10.811,19452,9.851,19453,11.747,19454,7.715,19455,11.747,19456,11.747,19457,8.352,19458,8.352,19459,8.352,19460,8.352,19461,8.352,19462,8.352,19463,8.352,19464,8.352,19465,8.352]],["title/injectables/TimeoutInterceptor.html",[105,0.89,12574,5.893]],["body/injectables/TimeoutInterceptor.html",[0,0.265,3,0.021,4,0.021,5,0.011,7,0.12,8,1.232,27,0.424,29,0.809,30,0.001,31,0.572,32,0.143,33,0.51,35,0.942,55,2.502,95,0.155,101,0.015,103,0.001,104,0.001,105,1.346,107,1.867,127,0.986,187,1.117,199,2.979,204,2.676,214,2.568,215,2.525,216,1.443,217,1.346,227,1.198,234,1.656,367,4.911,379,1.798,481,3.979,494,6.15,731,4.453,806,3.287,1268,5.01,1269,6.094,1270,5.928,1459,6.75,2267,7.393,2333,8.428,3976,8.883,6339,8.226,8014,8.914,8016,8.914,8017,10.536,8018,10.536,8020,8.914,8217,5.928,9419,6.858,11249,9.426,11630,8.226,12574,8.914,12936,8.914,16680,10.504,16688,7.207,16690,7.207,16988,8.226,19466,7.801,19467,10.204,19468,9.426,19469,7.801,19470,7.801,19471,7.801,19472,10.204,19473,11.371,19474,10.204,19475,7.801,19476,10.204,19477,7.801,19478,7.801,19479,7.801,19480,7.801]],["title/classes/TimestampsResponse.html",[0,0.23,3662,4.164]],["body/classes/TimestampsResponse.html",[0,0.304,2,1.027,3,0.024,4,0.024,5,0.013,7,0.137,27,0.527,29,0.71,30,0.001,31,0.502,32,0.178,33,0.606,83,4.004,95,0.115,101,0.017,103,0.001,104,0.001,127,1.407,165,0.879,364,2.248,375,4.919,376,2.098,467,3.509,591,5.582,620,5.745,966,4.58,3662,8.057,3679,9.674,9562,9.918,9624,7.212,19481,8.946,19482,8.946,19483,8.946,19484,8.946,19485,8.946,19486,8.946]],["title/injectables/ToggleUserLoginMigrationUc.html",[105,0.89,19487,5.64]],["body/injectables/ToggleUserLoginMigrationUc.html",[0,0.218,3,0.017,4,0.017,5,0.009,7,0.098,8,1.078,27,0.427,29,0.815,30,0.001,31,0.576,32,0.144,33,0.514,35,1.078,36,2.417,39,2.393,47,0.988,95,0.162,99,1.086,101,0.012,103,0.001,104,0.001,105,1.177,107,1.532,111,2.224,112,2.717,127,1.128,129,6.864,132,6.6,167,2.443,187,0.917,189,5.004,191,3.555,192,3.064,199,3.408,204,2.195,216,2.057,217,1.355,221,2.757,227,0.674,234,1.668,305,2.957,347,2.095,355,4.986,461,2.865,766,2.75,843,2.793,1052,5.066,1542,2.986,1545,2.044,1862,4.913,1868,4.053,1952,6.669,2014,6.615,2767,2.885,3769,6.972,3810,4.999,3830,4.053,3832,4.301,4227,4.365,4442,4.905,4444,5.159,4447,5.159,4448,8.595,4455,5.732,4457,6.702,4459,6.972,4460,4.862,4461,4.999,4462,5.35,4464,6.972,4466,8.592,4467,6.615,4474,4.862,4475,5.35,11285,8.668,13636,5.159,16727,5.59,18166,7.195,19487,7.462,19488,11.119,19489,7.797,19490,6.399,19491,6.399,19492,8.925,19493,6.399,19494,5.59,19495,6.399,19496,6.399,19497,6.399]],["title/injectables/TokenGenerator.html",[105,0.89,18026,5.438]],["body/injectables/TokenGenerator.html",[0,0.333,3,0.026,4,0.026,5,0.014,7,0.15,8,1.419,27,0.406,30,0.001,35,1.18,95,0.162,101,0.019,103,0.001,104,0.001,105,1.55,107,2.339,187,1.4,217,1.289,227,1.03,351,5.808,11024,9.827,11769,9.848,11771,6.464,11772,6.367,18026,9.475,19498,11.754,19499,9.772,19500,13.08,19501,9.772,19502,9.772]],["title/classes/TokenRequestMapper.html",[0,0.23,15074,5.893]],["body/classes/TokenRequestMapper.html",[0,0.281,2,0.949,3,0.022,4,0.022,5,0.012,7,0.127,8,1.279,27,0.44,29,0.84,30,0.001,31,0.594,32,0.149,33,0.529,35,1.279,47,1.008,95,0.15,101,0.016,103,0.001,104,0.001,227,1.116,234,1.719,334,0.911,348,5.556,627,4.061,1016,2.952,1253,5.686,1592,9.939,1594,6.663,1596,5.866,1597,6.663,1598,7.221,1599,7.221,1603,7.636,1606,7.636,1607,6.911,1608,6.127,1703,5.556,5472,5.777,5812,6.663,10953,8.933,11083,7.518,15074,9.254,15077,9.939,15133,11.389,15139,7.636,15735,6.663,19503,11.69,19504,11.69,19505,10.593,19506,8.266,19507,8.266,19508,10.593,19509,8.266,19510,8.266,19511,8.266,19512,8.266]],["title/modules/ToolApiModule.html",[425,1.808,17773,5.438]],["body/modules/ToolApiModule.html",[0,0.199,3,0.016,4,0.016,5,0.008,30,0.001,95,0.176,101,0.011,103,0.001,104,0.001,108,3.377,187,0.838,191,3.25,192,3.186,199,3.198,200,4.11,209,3.369,425,2.623,427,2.163,428,2.281,429,2.352,430,2.342,431,2.321,432,3.617,433,2.206,438,5.557,442,3.368,443,2.301,444,2.243,446,3.706,447,3.512,449,3.368,450,2.407,1545,1.869,1945,6.365,1951,7.555,1981,8.939,2767,2.637,4551,7.664,4552,8.524,4561,3.113,4969,3.311,5267,8.524,5929,9.835,5985,3.932,8351,9.483,8399,9.835,8628,8.939,8637,4.891,8884,9.835,8996,9.483,9023,7.738,9188,9.835,17425,9.835,17442,9.835,17504,9.835,17773,11.471,19513,5.85,19514,5.85,19515,5.85,19516,9.835,19517,9.835,19518,8.548,19519,8.548,19520,8.548,19521,8.548,19522,8.548,19523,9.785,19524,9.785,19525,5.404,19526,5.85,19527,5.85,19528,5.85]],["title/modules/ToolConfigModule.html",[425,1.808,8628,5.126]],["body/modules/ToolConfigModule.html",[0,0.345,3,0.027,4,0.027,5,0.014,30,0.001,95,0.154,101,0.019,103,0.001,104,0.001,108,5.854,154,4.624,187,1.453,209,3.492,425,3.222,427,3.749,432,3.749,433,3.825,836,5.854,1420,7.059,8361,9.731,8628,9.131,12084,8.479,19529,10.141,19530,10.141]],["title/classes/ToolConfiguration.html",[0,0.23,12084,5.64]],["body/classes/ToolConfiguration.html",[0,0.301,2,1.016,3,0.023,4,0.023,5,0.012,7,0.136,27,0.367,30,0.001,32,0.124,47,0.878,55,2.654,95,0.113,101,0.023,103,0.001,104,0.001,108,6.384,144,2.418,165,0.873,217,1.167,329,3.258,334,0.975,347,2.798,627,3.757,2171,3.803,2172,4.232,2173,4.081,3898,4.828,8359,9.167,8361,9.603,8583,10.539,8616,10.539,11092,6.159,12080,11.145,12081,11.145,12082,11.145,12083,8.173,12084,9.246,12085,10.216,12086,10.216,12087,10.216,12088,10.216,12089,9.246,19531,8.848]],["title/controllers/ToolConfigurationController.html",[481,2.63,19519,5.893]],["body/controllers/ToolConfigurationController.html",[0,0.166,3,0.013,4,0.013,5,0.007,7,0.075,8,0.884,27,0.406,29,0.776,30,0.001,31,0.548,32,0.177,33,0.489,35,1.181,36,2.556,95,0.151,100,1.629,101,0.009,103,0,104,0,112,2.829,116,4.082,158,4.406,185,4.938,187,0.697,192,3.408,199,4.364,200,4.109,209,4.049,215,1.575,216,0.9,217,1.551,221,2.306,227,1.031,264,4.44,364,1.813,376,1.142,379,2.255,447,2.041,481,1.898,483,2.342,491,6.26,494,5.895,513,6.529,538,4.385,553,6.556,555,2.569,556,2.633,557,2.656,559,2.656,561,2.656,563,6.038,1379,7.387,2171,5.055,2485,2.102,2500,7.26,2600,4.578,2769,2.405,3710,5.895,4533,7.088,5633,8.178,5635,7.885,5706,7.641,5944,7.885,6010,8.545,8366,7.353,8380,6.393,8399,7.353,8404,8.124,8405,8.124,9988,9.036,11216,6.282,13152,4.496,13462,7.353,13464,6.518,13465,6.682,14622,4.069,14806,8.545,17364,8.178,17366,7.885,17378,7.641,17562,7.641,19519,6.393,19532,9.161,19533,8.794,19534,8.794,19535,4.867,19536,7.318,19537,7.318,19538,4.496,19539,4.867,19540,4.867,19541,7.318,19542,4.867,19543,4.867,19544,4.867,19545,7.318,19546,7.318,19547,7.318,19548,7.318,19549,4.867,19550,4.867,19551,7.318,19552,7.318,19553,4.867,19554,8.193,19555,4.251,19556,4.496,19557,4.867,19558,3.923,19559,4.496,19560,4.867,19561,4.496,19562,4.867,19563,4.867,19564,4.251,19565,4.251,19566,4.867,19567,4.867,19568,4.496,19569,4.867,19570,4.867,19571,4.251,19572,4.867]],["title/classes/ToolConfigurationMapper.html",[0,0.23,19555,5.893]],["body/classes/ToolConfigurationMapper.html",[0,0.226,2,0.764,3,0.018,4,0.018,5,0.009,7,0.102,8,1.107,27,0.469,29,0.973,30,0.001,31,0.687,32,0.159,33,0.565,35,1.366,95,0.145,101,0.013,103,0.001,104,0.001,139,3.802,158,6.586,200,2.168,209,3.612,217,1.657,227,1.192,234,1.835,276,7.391,627,4.169,982,3.333,2485,2.874,2600,5.177,2769,3.288,3673,4.548,4533,7.714,4945,4.919,5633,8.772,5635,9.56,5639,7.163,5640,5.19,5641,4.821,8365,7.391,8366,10.503,8388,5.562,8435,7.391,8593,7.391,8672,6.967,8996,5.363,9030,8.01,17364,8.772,17366,9.56,19555,8.01,19573,10.956,19574,6.653,19575,10.491,19576,10.491,19577,10.491,19578,10.491,19579,6.653,19580,6.653,19581,9.169,19582,6.653,19583,6.653,19584,10.491,19585,6.653,19586,6.653,19587,6.653,19588,6.653,19589,9.169,19590,8.47,19591,6.653,19592,6.653,19593,6.653,19594,6.653,19595,6.653,19596,6.653]],["title/controllers/ToolContextController.html",[481,2.63,19521,5.893]],["body/controllers/ToolContextController.html",[0,0.146,3,0.011,4,0.011,5,0.006,7,0.066,8,0.801,10,1.729,27,0.411,29,0.786,30,0.001,31,0.555,32,0.178,33,0.495,34,1.99,35,1.457,36,2.575,95,0.155,100,1.433,101,0.008,103,0,104,0,111,0.856,112,2.844,140,7.602,163,2.093,185,4.797,187,0.613,199,3.494,200,3.778,206,2.192,209,1.474,215,1.386,216,1.227,217,1.591,221,2.335,227,0.965,234,0.695,264,4.193,364,1.836,367,3.194,376,1.004,379,2.415,447,1.795,461,1.873,481,1.669,483,2.061,491,6.278,493,5.042,494,6.807,500,2.927,502,4.148,503,4.897,504,4.808,513,6.548,520,4.46,524,3.911,538,4.103,543,5.81,549,6.371,553,6.55,554,4.203,555,2.26,556,2.317,557,2.336,558,2.035,559,2.336,561,2.336,563,6.113,564,1.589,565,2.26,1016,4.033,1052,1.745,1053,2.943,1487,2.447,1545,1.368,2296,4.709,2450,5.147,2485,1.85,2769,2.116,2954,3.102,2955,3.756,3710,6.587,3808,4.918,4038,2.643,4714,2.551,5598,6.55,5661,7.652,5664,2.643,5706,9.256,5723,9.137,5778,2.98,5810,3.74,5817,6.793,5821,3.58,5831,9.348,5843,3.345,5852,3.74,5900,7.098,5903,7.098,5921,9.152,5929,6.793,5932,7.506,5934,7.506,5935,7.506,5936,7.506,5944,4.203,5959,3.955,8535,3.58,13463,5.797,13464,6.784,13465,7.961,19521,5.797,19532,9.152,19554,8.185,19558,3.451,19564,5.797,19565,5.797,19571,7.995,19590,3.955,19597,4.281,19598,4.281,19599,4.281,19600,3.74,19601,4.281,19602,3.74,19603,4.281,19604,4.281,19605,4.281,19606,4.281,19607,4.281,19608,4.281,19609,4.281,19610,4.281,19611,6.636,19612,4.281,19613,4.281,19614,4.281,19615,4.281,19616,4.281,19617,4.281,19618,4.281,19619,4.281,19620,4.281,19621,5.797,19622,6.793,19623,4.281,19624,6.636,19625,4.281,19626,4.281,19627,4.281,19628,4.281,19629,3.74,19630,4.281,19631,4.281,19632,4.281,19633,3.955,19634,4.281,19635,4.281,19636,4.281,19637,4.281,19638,4.281,19639,4.281,19640,4.281,19641,4.281,19642,4.281]],["title/controllers/ToolController.html",[481,2.63,19522,5.893]],["body/controllers/ToolController.html",[0,0.113,3,0.009,4,0.009,5,0.005,7,0.051,8,0.656,10,1.344,27,0.411,29,0.785,30,0.001,31,0.555,32,0.176,33,0.495,34,1.771,35,1.357,36,2.667,95,0.157,99,0.565,100,1.114,101,0.006,103,0,104,0,111,1.749,112,2.843,127,0.421,158,6.306,163,2.503,185,4.638,187,0.477,199,2.074,200,2.85,206,1.704,209,3.87,216,1.618,217,1.633,221,2.212,227,0.989,234,0.881,264,3.703,364,1.834,367,3.821,376,0.781,379,2.73,447,1.396,461,2.689,469,1.468,481,1.298,483,1.602,491,6.131,493,4.127,494,4.784,500,2.276,502,4.962,503,5.271,504,5.752,511,2.78,513,6.394,520,3.651,524,4.679,529,4.138,535,4.295,538,2.435,543,3.447,549,6.888,553,6.451,554,4.358,555,1.757,556,1.801,557,1.817,558,1.582,559,1.817,561,1.817,563,6.109,564,2.016,565,2.867,693,2.964,701,1.897,766,1.431,1014,2.666,1016,3.35,1028,5.633,1052,1.357,1053,2.409,1487,1.902,1545,1.063,2296,3.854,2432,4.1,2450,5.028,2485,1.438,2600,4.505,2672,4.962,2769,1.645,2954,2.412,2955,3.074,3710,5.655,3808,2.467,4000,4.962,4533,5.655,5067,3.935,5615,2.362,5661,6.637,5741,2.467,5944,5.54,6487,4.841,6489,5.878,6491,1.984,6775,3.353,7172,5.698,8365,4.378,8409,5.099,8437,3.075,8438,3.075,8453,6.637,8519,10.192,8520,5.752,8527,3.075,8535,6.637,8573,3.075,8772,4.127,8884,4.541,8898,4.744,8900,6.637,8924,6.637,8926,5.752,8929,6.637,8931,4.744,8985,8.319,8996,2.683,9016,4.243,9018,4.378,9021,3.075,9042,3.075,9061,6.637,9071,6.01,9072,6.01,9077,6.01,9188,5.752,9190,6.355,9191,6.355,12314,2.908,12319,4.541,13462,4.541,13464,5.884,13465,7.519,19517,5.752,19522,4.744,19538,3.075,19554,7.329,19558,2.683,19564,2.908,19565,2.908,19600,2.908,19602,4.744,19621,4.744,19622,4.541,19629,2.908,19643,3.329,19644,3.329,19645,5.431,19646,6.355,19647,3.329,19648,9.382,19649,3.329,19650,3.329,19651,3.329,19652,3.329,19653,5.431,19654,7.563,19655,3.329,19656,3.329,19657,3.329,19658,3.329,19659,3.075,19660,3.329,19661,3.329,19662,3.329,19663,3.329,19664,3.329,19665,3.329,19666,3.329,19667,3.329,19668,3.329,19669,3.329,19670,3.329,19671,3.329,19672,3.329,19673,3.329,19674,3.329,19675,3.329,19676,3.329,19677,3.329,19678,6.935,19679,3.329,19680,3.329,19681,3.329,19682,3.329,19683,3.329,19684,5.431,19685,5.017,19686,3.329,19687,3.329,19688,3.329,19689,3.329,19690,3.329,19691,3.329,19692,3.075,19693,3.075,19694,3.329,19695,3.329,19696,8.746,19697,3.329,19698,3.329,19699,3.329,19700,3.329,19701,3.329,19702,3.329,19703,3.329,19704,3.329,19705,3.329,19706,3.329,19707,3.329,19708,3.329,19709,3.329,19710,3.329,19711,3.329,19712,3.329,19713,2.908,19714,3.329,19715,3.329]],["title/controllers/ToolLaunchController.html",[481,2.63,19518,5.893]],["body/controllers/ToolLaunchController.html",[0,0.254,3,0.02,4,0.02,5,0.011,7,0.115,8,1.196,27,0.309,29,0.591,30,0.001,31,0.418,32,0.156,33,0.373,34,1.279,35,0.9,36,2.152,95,0.168,100,2.496,101,0.014,103,0.001,104,0.001,108,5.716,112,2.494,175,7.74,185,4.354,187,1.068,199,3.781,200,3.227,205,6.009,206,3.816,208,2.767,209,4.365,210,7.609,215,2.413,216,1.379,217,1.306,221,1.757,227,0.786,264,4.193,364,1.382,367,5.703,376,1.749,379,2.731,447,3.126,481,2.907,483,3.588,491,5.816,513,6.066,553,6.19,555,3.935,556,4.033,557,4.068,559,4.068,561,4.068,563,4.601,1016,3.536,2769,3.684,3710,4.493,5944,7.043,10380,6.232,13464,7.339,13465,7.524,19516,9.297,19518,8.65,19525,9.148,19554,7.736,19558,6.009,19559,6.886,19571,6.512,19716,7.454,19717,10.272,19718,7.454,19719,10.35,19720,7.454,19721,7.454,19722,7.454,19723,7.454,19724,7.454,19725,8.65,19726,8.65,19727,7.454,19728,9.148,19729,9.297,19730,7.454,19731,7.454,19732,7.454,19733,7.454]],["title/classes/ToolLaunchData.html",[0,0.23,160,4.888]],["body/classes/ToolLaunchData.html",[0,0.291,2,0.982,3,0.023,4,0.023,5,0.012,7,0.131,27,0.534,29,0.678,30,0.001,31,0.479,32,0.191,33,0.427,47,0.788,95,0.139,101,0.016,103,0.001,104,0.001,108,7.594,127,1.08,134,9.023,160,9.33,163,3.413,165,1.016,209,2.943,210,8.58,236,6.925,238,6.425,240,2.678,347,2.206,405,2.917,595,2.943,2610,6.065,2621,4.037,2622,6.065,5236,5.343,7024,5.949,7025,6.335,16282,7.895,19734,12.152,19735,10.821,19736,8.547,19737,8.547,19738,10.969,19739,8.547,19740,8.547,19741,8.547]],["title/classes/ToolLaunchMapper.html",[0,0.23,205,5.438]],["body/classes/ToolLaunchMapper.html",[0,0.235,2,0.792,3,0.018,4,0.018,5,0.01,7,0.106,8,1.134,27,0.476,29,0.91,30,0.001,31,0.644,32,0.161,33,0.573,35,1.386,95,0.137,101,0.013,103,0.001,104,0.001,108,6.932,144,2.568,146,7.714,150,3.446,175,8.625,198,3.297,205,7.573,207,8.615,208,2.558,217,1.702,227,1.266,231,5.423,234,1.119,235,5.317,236,5.479,242,6.367,244,6.367,331,4.309,627,4.193,982,3.453,1016,3.355,1291,5.11,2076,4.959,2606,6.981,2609,4.798,2662,6.021,7145,4.633,7149,4.712,7162,5.384,8509,5.763,8939,6.021,19729,9.595,19738,11.447,19742,12.008,19743,6.892,19744,9.394,19745,9.394,19746,9.394,19747,9.394,19748,9.394,19749,6.892,19750,9.394,19751,6.892,19752,6.892,19753,9.394,19754,6.892,19755,6.892,19756,9.394,19757,6.892,19758,6.892,19759,9.394,19760,6.892,19761,6.892,19762,6.892,19763,6.892,19764,6.892,19765,6.892,19766,6.892,19767,9.394,19768,6.892,19769,11.476,19770,6.892,19771,6.892]],["title/modules/ToolLaunchModule.html",[425,1.808,19772,5.64]],["body/modules/ToolLaunchModule.html",[0,0.237,3,0.018,4,0.018,5,0.01,30,0.001,95,0.172,101,0.013,103,0.001,104,0.001,108,4.02,187,0.998,191,3.869,192,2.821,199,2.659,200,3.501,209,3.699,425,2.88,427,2.574,428,2.715,429,2.8,430,2.787,431,2.763,432,3.972,433,4.052,442,3.804,443,2.739,444,2.67,449,3.804,766,2.993,1951,7.983,2641,10.392,4550,9.445,4551,8.099,4560,5.292,4561,3.706,4969,3.942,5267,9.006,5713,10.02,5718,9.445,5719,9.71,13371,9.213,14160,10.392,14217,10.392,14984,10.392,18079,6.433,19772,11.899,19773,6.964,19774,6.964,19775,6.964,19776,6.964,19777,11.277,19778,6.964,19779,6.964,19780,6.964]],["title/classes/ToolLaunchParams.html",[0,0.23,19719,5.893]],["body/classes/ToolLaunchParams.html",[0,0.394,2,1.096,3,0.025,4,0.025,5,0.013,7,0.147,27,0.396,30,0.001,32,0.134,34,1.988,47,0.844,95,0.148,101,0.018,103,0.001,104,0.001,108,6.687,165,0.914,199,4.423,200,3.775,209,3.989,364,1.768,368,4.576,369,2.561,370,3.865,371,3.193,374,3.048,376,2.238,379,2.199,467,3.114,1000,4.954,3834,5.564,5707,9.247,19719,10.12,19781,10.702,19782,9.54,19783,9.54]],["title/classes/ToolLaunchRequest.html",[0,0.23,175,4.695]],["body/classes/ToolLaunchRequest.html",[0,0.294,2,0.992,3,0.023,4,0.023,5,0.012,7,0.133,27,0.536,29,0.685,30,0.001,31,0.484,32,0.181,33,0.596,47,0.912,95,0.111,101,0.016,103,0.001,104,0.001,108,7.614,127,1.092,150,4.377,165,0.86,175,8.992,178,9.322,210,8.601,231,6.888,235,7.092,236,6.96,347,2.221,367,4.158,405,2.937,595,2.974,6090,4.799,6992,5.548,7024,6.013,7025,6.403,16644,7.223,17940,7.223,19734,12.185,19784,8.639,19785,10.894,19786,8.639,19787,8.639,19788,8.639,19789,7.98,19790,7.98]],["title/classes/ToolLaunchRequestResponse.html",[0,0.23,19729,5.64]],["body/classes/ToolLaunchRequestResponse.html",[0,0.241,2,0.812,3,0.019,4,0.019,5,0.01,7,0.109,27,0.503,29,0.561,30,0.001,31,0.397,32,0.17,33,0.638,47,0.845,95,0.123,101,0.013,103,0.001,104,0.001,108,7.209,127,0.894,144,2.613,145,1.826,150,4.444,165,0.754,178,9.466,208,2.626,209,4.3,210,8.788,231,6.995,234,1.552,235,6.858,236,6.316,347,1.949,364,2.15,367,6.011,368,4.582,369,2.114,371,3.197,376,1.659,379,2.674,405,2.577,467,3.257,595,2.436,1013,5.319,1031,3.064,2076,5.047,2577,8.877,2669,6.18,2955,5.411,6090,3.93,6927,7.708,6992,4.543,7024,4.924,7025,5.243,11221,7.708,16644,5.915,17940,5.915,19726,8.352,19729,10.131,19781,11.536,19789,6.535,19790,6.535,19791,7.074,19792,9.561,19793,7.074,19794,8.832,19795,7.074,19796,9.561,19797,7.074]],["title/injectables/ToolLaunchService.html",[105,0.89,19777,5.64]],["body/injectables/ToolLaunchService.html",[0,0.173,3,0.013,4,0.013,5,0.007,7,0.078,8,0.914,26,2.487,27,0.465,29,0.848,30,0.001,31,0.599,32,0.167,33,0.534,35,1.208,36,2.174,39,2.421,47,0.658,95,0.165,99,0.864,101,0.01,103,0,104,0,105,0.998,107,1.218,108,6.696,111,2.618,112,2.513,127,0.956,139,7.421,140,7.46,145,1.953,148,2.341,154,2.32,158,6.506,160,8.116,163,1.605,165,0.597,175,6.961,187,0.729,192,2.256,198,2.434,199,1.943,200,3.483,201,4.73,204,1.746,205,4.102,206,2.605,208,1.888,209,2.605,210,3.268,212,7.551,216,2.072,217,1.634,218,6.989,221,2.357,227,0.952,234,1.623,305,2.599,564,2.808,1439,2.434,2606,4.972,2641,9.964,3331,5.063,4485,7.307,5272,9.062,5290,5.369,5298,4.254,5641,7.246,5856,4.102,5857,4.102,5976,7.558,5977,8.302,5984,3.975,5985,5.085,5990,4.254,7549,6.989,8449,4.445,11101,7.889,14217,9.964,14984,9.964,17510,4.7,19777,6.325,19798,11.6,19799,5.088,19800,7.565,19801,7.565,19802,9.031,19803,9.031,19804,7.565,19805,7.565,19806,5.088,19807,7.565,19808,5.088,19809,5.088,19810,5.088,19811,5.088,19812,5.088,19813,4.445,19814,5.088,19815,5.088,19816,5.088,19817,5.088,19818,5.088,19819,5.088,19820,6.989,19821,5.088,19822,5.088,19823,5.088,19824,5.088,19825,5.088,19826,4.7,19827,5.088]],["title/injectables/ToolLaunchUc.html",[105,0.89,19516,5.64]],["body/injectables/ToolLaunchUc.html",[0,0.26,3,0.02,4,0.02,5,0.011,7,0.117,8,1.215,26,2.716,27,0.418,29,0.798,30,0.001,31,0.564,32,0.141,33,0.503,35,0.922,36,2.187,39,2.048,95,0.169,99,1.296,101,0.015,103,0.001,104,0.001,105,1.327,107,1.828,108,6.497,111,2.251,112,2.525,127,1.272,140,7.036,160,8.155,175,7.005,187,1.094,199,4.567,200,3.279,201,4.001,208,2.835,216,2.082,217,1.578,221,2.653,227,0.805,766,3.283,843,4.393,1862,5.54,1868,4.838,2767,3.444,3027,4.365,5275,9.646,5707,8.866,5720,9.43,5954,6.157,5957,6.673,5965,6.673,5985,5.134,19516,8.414,19717,9.296,19777,10.673,19820,9.296,19828,11.254,19829,7.638,19830,7.638,19831,7.638,19832,10.063,19833,7.638,19834,7.056,19835,7.638,19836,7.638]],["title/modules/ToolModule.html",[425,1.808,1981,5.126]],["body/modules/ToolModule.html",[0,0.25,3,0.019,4,0.019,5,0.01,30,0.001,95,0.168,101,0.014,103,0.001,104,0.001,187,1.052,192,2.19,199,2.805,200,3.597,209,4.225,210,4.717,425,2.959,427,2.715,428,2.864,429,2.953,430,2.94,431,2.914,432,4.081,433,4.163,442,3.943,443,2.889,444,2.816,449,3.943,704,3.63,766,3.157,1919,3.051,1932,3.761,1936,5.738,1977,6.826,1981,10.691,1991,3.974,2478,4.198,2570,3.974,4969,4.157,5267,7.105,5272,10.626,5713,10.965,5718,10.336,5719,10.626,5984,5.738,8628,9.593,8637,6.141,19772,11.373,19837,7.345,19838,7.345,19839,7.345,19840,7.345,19841,7.345]],["title/injectables/ToolPermissionHelper.html",[105,0.89,5275,5]],["body/injectables/ToolPermissionHelper.html",[0,0.237,3,0.018,4,0.018,5,0.01,7,0.107,8,1.141,26,2.652,27,0.446,29,0.851,30,0.001,31,0.602,32,0.15,33,0.536,35,1.141,36,2.503,39,3.331,95,0.163,99,1.18,101,0.013,103,0.001,104,0.001,105,1.246,107,1.664,111,1.89,112,2.787,116,4.021,127,1.194,129,7.109,132,6.893,139,7.264,140,7.193,187,0.996,189,5.298,191,3.862,192,3.434,199,5.062,200,3.079,201,4.949,206,3.559,216,1.286,217,1.246,221,2.715,313,6.073,321,6.422,334,0.766,461,2.474,667,3.264,839,3.264,843,5.027,1862,6.997,1919,2.887,1952,6.819,1977,4.839,2027,4.529,2767,3.134,3129,5.604,3767,5.431,3830,4.404,3832,4.673,4714,4.143,5275,7.003,5856,7.617,6015,6.073,8402,9.916,8403,9.377,8411,6.422,8413,6.073,19454,6.422,19842,11.517,19843,6.952,19844,6.952,19845,6.952,19846,6.952,19847,9.449,19848,6.952,19849,6.952]],["title/classes/ToolReference.html",[0,0.23,9016,5.27]],["body/classes/ToolReference.html",[0,0.29,2,0.98,3,0.023,4,0.023,5,0.012,7,0.131,27,0.546,29,0.677,30,0.001,31,0.478,32,0.184,33,0.593,47,0.957,95,0.109,101,0.016,103,0.001,104,0.001,127,1.078,165,0.853,198,4.079,347,2.203,564,4.403,2078,4.974,2600,5.829,3416,7.451,5290,8.418,5602,5.944,5621,5.402,5640,6.714,5656,5.557,5947,9.563,9016,10.271,9045,7.879,9046,7.879,9047,7.451,9048,9.918,9049,7.879,19850,13.354,19851,10.807,19852,10.807,19853,8.529,19854,8.529,19855,8.529,19856,8.529,19857,7.879,19858,7.879,19859,8.529]],["title/classes/ToolReferenceListResponse.html",[0,0.23,19678,5.893]],["body/classes/ToolReferenceListResponse.html",[0,0.318,2,1.073,3,0.025,4,0.025,5,0.013,7,0.144,27,0.475,29,0.741,30,0.001,31,0.524,32,0.173,33,0.467,95,0.147,101,0.018,103,0.001,104,0.001,127,1.18,145,2.411,163,4.168,165,0.902,209,3.216,364,1.732,376,2.191,467,3.074,1006,6.629,1009,6.536,1011,4.971,1026,5.189,1932,6.328,2600,5.395,5636,8.934,9018,10.979,19678,9.99,19860,11.419,19861,9.341]],["title/classes/ToolReferenceMapper.html",[0,0.23,19862,5.893]],["body/classes/ToolReferenceMapper.html",[0,0.3,2,1.014,3,0.023,4,0.023,5,0.012,7,0.136,8,1.334,27,0.366,29,0.7,30,0.001,31,0.495,32,0.124,33,0.441,35,1.066,95,0.154,101,0.017,103,0.001,104,0.001,140,7.616,158,6.645,198,4.222,199,3.371,200,2.877,201,4.624,217,1.164,227,0.93,234,1.433,274,7.712,564,4.687,627,3.753,2485,3.814,2600,4.821,5290,8.962,5602,4.423,5640,4.997,5856,7.117,5858,7.712,5947,7.117,8435,7.117,8672,6.708,9016,10.361,9048,7.381,19573,10.202,19862,9.648,19863,8.828,19864,12.052,19865,8.828,19866,8.828]],["title/classes/ToolReferenceResponse.html",[0,0.23,9018,5.438]],["body/classes/ToolReferenceResponse.html",[0,0.233,2,0.786,3,0.018,4,0.018,5,0.01,7,0.105,27,0.513,29,0.543,30,0.001,31,0.597,32,0.173,33,0.532,34,1.605,47,0.9,95,0.12,101,0.013,103,0.001,104,0.001,127,0.865,150,3.43,165,0.738,199,3.57,209,4.5,234,1.517,347,1.906,364,2.221,368,5.222,369,2.849,370,4.126,371,3.708,375,3.794,376,1.606,379,3.047,467,3.22,564,4.446,779,6.93,1031,2.194,2078,3.992,2171,2.942,2600,5.525,2914,4.396,3728,5.518,5602,5.335,5621,4.336,5640,6.027,5656,4.46,5665,9.302,5947,8.584,6927,7.537,7172,6.092,9018,9.969,9048,8.903,11221,7.537,15873,7.537,17437,10.465,19857,6.324,19858,6.324,19860,11.693,19867,6.846,19868,9.35,19869,9.35,19870,6.846,19871,6.846,19872,6.846,19873,9.35,19874,6.846,19875,8.637,19876,6.846,19877,6.846,19878,6.846,19879,6.846,19880,6.846,19881,6.846]],["title/injectables/ToolReferenceUc.html",[105,0.89,19517,5.64]],["body/injectables/ToolReferenceUc.html",[0,0.164,3,0.013,4,0.013,5,0.007,7,0.074,8,0.878,26,2.552,27,0.456,29,0.871,30,0.001,31,0.616,32,0.16,33,0.549,34,0.828,35,1.262,36,2.794,39,2.944,47,0.874,95,0.163,99,0.819,101,0.009,103,0,104,0,105,0.959,107,1.155,111,2.647,112,2.909,127,0.919,139,6.704,140,7.711,158,5.502,167,3.719,187,0.691,192,2.168,197,6.547,198,2.308,199,3.719,200,3.174,201,3.808,216,2.031,217,1.638,221,2.463,227,1.157,234,0.783,564,2.699,766,2.074,784,2.547,806,2.033,843,3.174,1062,2.106,1158,2.568,1862,4.003,1868,3.057,2037,4.198,2400,4.156,2485,2.085,2600,4.975,2767,2.176,3027,2.758,4714,5.804,5272,8.904,5275,8.448,5290,5.16,5601,6.912,5664,6.012,5720,8.259,5921,4.216,5954,3.89,5961,4.458,5967,4.458,5976,7.155,5977,8.448,5984,3.77,5985,4.888,8408,3.77,8409,8.448,8449,4.216,9016,9.705,9047,4.216,19517,6.08,19556,4.458,19633,4.458,19646,8.083,19826,4.458,19834,4.458,19862,4.216,19882,11.398,19883,4.826,19884,8.75,19885,7.272,19886,7.272,19887,7.272,19888,4.826,19889,4.826,19890,11.398,19891,4.826,19892,7.272,19893,4.826,19894,7.272,19895,4.826,19896,7.272,19897,4.826,19898,4.826,19899,4.826,19900,4.826,19901,4.826,19902,4.826,19903,4.826,19904,4.826,19905,7.272,19906,4.826,19907,4.826,19908,4.826,19909,4.826,19910,4.826,19911,4.826,19912,4.826]],["title/controllers/ToolSchoolController.html",[481,2.63,19520,5.893]],["body/controllers/ToolSchoolController.html",[0,0.147,3,0.011,4,0.011,5,0.006,7,0.066,8,0.806,10,1.742,27,0.412,29,0.788,30,0.001,31,0.557,32,0.176,33,0.497,34,1.943,35,1.404,36,2.581,95,0.157,100,1.444,101,0.008,103,0,104,0,111,1.838,112,2.848,127,0.545,139,7.32,163,2.898,185,4.551,187,0.618,192,1.99,200,3.869,206,2.208,209,2.298,216,1.7,217,1.566,221,2.343,227,0.968,264,3.891,364,1.842,367,4.423,376,1.012,379,2.526,447,1.809,461,1.882,481,1.682,483,2.076,491,6.287,493,5.072,494,5.538,500,2.949,502,4.172,503,5.99,504,6.658,511,4.18,513,6.557,520,4.486,524,5.416,529,2.944,538,2.992,543,5.823,549,6.396,553,6.57,554,4.228,555,2.277,556,2.334,557,2.354,558,2.05,559,2.354,561,2.354,563,6.135,564,1.601,565,3.523,1016,3.282,1052,1.758,1053,2.96,1487,2.465,1545,1.378,2296,4.737,2450,5.171,2485,1.863,2769,2.132,2954,3.126,2955,3.778,3710,6.334,3808,3.197,4038,2.663,4227,1.485,4533,5.538,5741,3.197,5778,3.003,5843,3.37,5944,4.228,7108,6.487,8370,7.408,9061,5.58,13447,3.985,13462,5.58,13464,4.947,13465,7.985,17254,3.985,17378,9.275,17387,9.162,17425,5.58,17431,9.573,17432,3.768,17436,8.472,17442,5.58,17450,5.58,17469,8.027,17504,6.826,17506,7.542,17507,7.542,17508,7.542,17509,7.542,19520,5.831,19532,9.18,19554,8.21,19558,3.477,19568,8.489,19600,3.768,19602,5.831,19621,5.831,19622,5.58,19629,3.768,19659,3.985,19685,3.985,19728,6.166,19913,4.314,19914,8.164,19915,4.314,19916,4.314,19917,4.314,19918,4.314,19919,4.314,19920,4.314,19921,4.314,19922,4.314,19923,4.314,19924,4.314,19925,4.314,19926,8.164,19927,4.314,19928,4.314,19929,4.314,19930,4.314,19931,4.314,19932,4.314,19933,4.314,19934,4.314,19935,4.314,19936,4.314,19937,4.314,19938,4.314,19939,4.314,19940,4.314,19941,4.314,19942,6.674,19943,4.314,19944,4.314,19945,6.674,19946,4.314,19947,4.314,19948,4.314,19949,4.314,19950,4.314]],["title/classes/ToolStatusOutdatedLoggableException.html",[0,0.23,19813,5.893]],["body/classes/ToolStatusOutdatedLoggableException.html",[0,0.285,2,0.963,3,0.022,4,0.022,5,0.012,7,0.129,8,1.291,26,2.776,27,0.444,29,0.665,30,0.001,31,0.47,32,0.15,33,0.419,35,1.013,39,3.155,95,0.151,99,1.423,101,0.016,103,0.001,104,0.001,108,6.794,111,1.678,127,1.06,163,2.645,187,1.201,209,2.888,214,3.519,215,2.715,216,1.977,227,0.884,404,1.933,406,2.679,415,4.577,461,1.933,564,4.6,1327,3.313,1542,5.493,1543,6.117,1545,2.679,1547,6.167,2685,6.727,8137,6.117,8138,6.368,8530,5.386,8532,6.077,8537,4.943,8538,5.177,8568,7.306,8721,6.216,10368,6.761,17687,6.761,19725,7.326,19726,7.326,19813,9.34,19951,11.77,19952,11.77,19953,8.387]],["title/interfaces/ToolVersion.html",[334,0.743,5292,3.934]],["body/interfaces/ToolVersion.html",[3,0.028,4,0.028,5,0.015,7,0.16,8,1.473,27,0.432,30,0.001,35,1.256,55,2.684,101,0.02,103,0.001,104,0.001,334,1.146,336,2.535,5292,7.115,5604,10.145,19954,12.199,19955,10.403,19956,10.403]],["title/classes/UnauthorizedLoggableException.html",[0,0.23,1817,5.64]],["body/classes/UnauthorizedLoggableException.html",[0,0.298,2,1.005,3,0.023,4,0.023,5,0.012,7,0.134,8,1.326,27,0.456,29,0.694,30,0.001,31,0.491,32,0.154,33,0.437,35,1.057,47,0.964,48,5.911,51,5.932,59,2.716,95,0.154,101,0.017,103,0.001,104,0.001,111,1.751,127,1.106,163,2.76,187,1.254,214,3.615,215,2.833,216,2.031,217,1.154,227,0.922,404,1.986,406,2.796,407,7.055,417,6.486,1327,4.339,1542,5.602,1547,6.264,1817,9.183,2038,8.207,8137,6.543,8530,5.62,8532,6.341,8537,5.158,8538,5.402,10371,7.645,10372,7.645,17687,7.055,19957,12.004,19958,8.751,19959,8.084]],["title/classes/UpdateElementContentBodyParams.html",[0,0.23,8037,4.787]],["body/classes/UpdateElementContentBodyParams.html",[0,0.45,2,0.784,3,0.018,4,0.018,5,0.01,7,0.105,9,3.263,27,0.283,30,0.001,31,0.596,32,0.19,47,0.679,83,2.053,95,0.146,99,1.158,101,0.025,103,0.001,104,0.001,144,2.905,145,2.408,163,3.352,165,0.736,240,2.138,364,1.265,369,1.508,374,2.18,376,1.6,379,1.573,404,1.922,467,3.639,470,4.479,524,4.021,999,6.27,1031,2.187,1044,3.349,2344,4.394,2594,4.689,2880,3.263,2915,3.601,3239,4.265,3242,5.657,3245,3.601,3774,6.596,4040,4.664,4071,4.664,4072,7.032,5504,7.267,5506,7.267,5508,7.267,5541,7.267,5542,6.377,5543,6.377,5739,4.513,5740,6.907,6850,4.841,8027,8.67,8028,6.914,8029,5.057,8032,8.109,8033,5.057,8034,8.491,8035,8.109,8036,5.057,8037,6.62,8038,6.62,8039,4.841,8040,6.62,8041,5.057,8042,5.057,8043,5.057,8458,5.96,19960,6.822,19961,6.822]],["title/classes/UpdateFlagParams.html",[0,0.23,12296,5.893]],["body/classes/UpdateFlagParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,95,0.167,101,0.019,103,0.001,104,0.001,165,0.925,347,2.389,364,1.803,373,6.187,374,3.107,376,2.281,379,2.242,461,2.242,467,3.15,520,7.877,1013,4.459,4442,5.17,10330,8.756,10363,8.686,12296,10.238,19962,10.826,19963,9.724,19964,9.724,19965,9.724]],["title/classes/UpdateMatchParams.html",[0,0.23,12288,5.893]],["body/classes/UpdateMatchParams.html",[0,0.396,2,1.106,3,0.026,4,0.026,5,0.014,7,0.148,27,0.4,30,0.001,32,0.135,39,3.358,47,0.848,95,0.167,101,0.018,103,0.001,104,0.001,165,0.919,364,1.785,374,3.077,376,2.259,379,2.22,461,2.888,467,3.132,520,7.832,1000,4.983,1013,4.416,1717,7.483,1932,5.965,4442,5.14,12288,10.179,19962,10.763,19966,9.631,19967,9.631,19968,9.631]],["title/classes/UpdateNewsParams.html",[0,0.23,14609,5.64]],["body/classes/UpdateNewsParams.html",[0,0.412,2,0.907,3,0.021,4,0.021,5,0.011,7,0.121,27,0.475,30,0.001,32,0.16,33,0.514,47,0.882,83,3.094,95,0.155,99,1.34,100,3.442,101,0.015,103,0.001,104,0.001,165,0.956,364,2.12,374,2.522,375,4.915,376,1.851,379,2.793,380,2.695,469,3.482,470,4.818,471,5.155,685,5.385,950,8.032,999,6.911,1474,4.265,1848,6.911,2344,5.193,2423,6.27,2835,6.127,3242,4.2,6046,7.029,6726,7.565,6731,7.528,6900,6.895,6906,8.289,6907,8.596,6908,7.813,6918,7.621,6919,7.291,14609,8.596,19969,12.115,19970,10.282,19971,10.282,19972,8.982,19973,7.893,19974,7.893,19975,7.893,19976,7.893,19977,7.893,19978,7.893]],["title/classes/UpdateSubmissionItemBodyParams.html",[0,0.23,3695,5.893]],["body/classes/UpdateSubmissionItemBodyParams.html",[0,0.394,2,1.096,3,0.025,4,0.025,5,0.013,7,0.147,27,0.396,30,0.001,32,0.134,95,0.148,101,0.018,103,0.001,104,0.001,165,0.914,347,2.645,364,1.768,368,4.576,369,2.561,373,6.115,374,3.048,376,2.238,379,2.199,467,3.114,2881,5.916,3247,8.012,3695,10.12,6922,9.339,6924,8.813,6925,8.334,6926,10.12,6927,9.339,6928,8.813,19979,11.584]],["title/entities/User.html",[380,1.411,461,1.555]],["body/entities/User.html",[0,0.148,3,0.012,4,0.012,5,0.006,7,0.191,27,0.54,30,0.001,32,0.181,33,0.675,34,0.748,47,0.989,83,3.507,95,0.128,96,1.177,101,0.016,103,0,104,0,116,1.41,144,1.191,165,0.868,192,3.279,214,1.434,217,1.083,227,0.459,234,1.499,240,4.105,305,1.253,329,1.283,334,0.741,347,1.674,364,2.413,369,2.953,370,4.157,380,1.932,381,1.434,386,7.12,394,2.489,396,3.403,398,1.276,399,2.633,400,1.911,402,1.792,404,0.787,405,1.174,406,1.391,461,1.55,496,3.892,844,4.526,851,4.9,852,4.9,853,5.073,854,5.037,1019,2.54,1031,1.396,1291,3.495,1910,2.057,1916,3.979,1917,3.805,2674,4.577,2678,3.67,2682,3.67,3091,1.986,3110,5.502,4083,2.567,4220,6.429,4221,7.018,4227,2.315,4232,6.24,4284,6.867,4315,3.403,4316,3.228,4926,3.101,6386,3.805,6400,4.101,6407,2.689,6429,2.723,6430,2.625,6744,2.596,6745,2.689,7155,5.11,9336,2.928,9337,3.156,9338,2.928,9339,3.156,9340,3.31,9341,3.511,9562,7.018,9624,3.511,9628,3.642,11243,6.621,11244,6.621,11245,6.621,11482,5.622,11671,3.642,11672,3.511,11673,3.642,11674,3.511,11676,3.642,11680,5.622,11681,3.511,11694,6.314,11721,3.403,11722,3.228,12070,3.403,12097,5.421,12098,4.024,12099,7.216,12100,7.018,12101,6.846,12102,7.216,12103,6.212,12104,6.212,12105,6.212,12106,6.867,12107,3.642,12108,4.024,12109,3.642,12110,4.024,12111,3.642,12112,4.024,12113,3.642,12114,4.024,12115,3.642,12116,4.024,12117,4.024,12118,6.212,19980,4.356,19981,4.356,19982,4.356,19983,4.356,19984,4.356,19985,4.356,19986,4.356,19987,4.356,19988,4.356,19989,4.356,19990,4.356,19991,4.356,19992,4.356,19993,4.356,19994,4.356,19995,4.356,19996,4.356,19997,4.356,19998,4.356]],["title/classes/UserAlreadyAssignedToImportUserError.html",[0,0.23,19999,6.231]],["body/classes/UserAlreadyAssignedToImportUserError.html",[0,0.267,2,0.901,3,0.021,4,0.021,5,0.011,7,0.121,8,1.237,27,0.544,30,0.001,32,0.188,33,0.512,35,0.948,47,0.83,55,1.726,95,0.155,101,0.015,103,0.001,104,0.001,127,1.441,165,0.808,204,4.147,216,2.507,364,2.325,404,1.852,406,2.507,461,2.361,564,2.912,596,3.906,795,6.722,1013,5.543,1016,2.802,1253,5.259,1291,3.339,1327,4.504,1472,8.292,1473,6.517,1474,4.104,1475,7.323,1479,5.113,1480,4.399,1481,5.113,1482,5.113,1483,5.113,1484,5.113,1485,5.113,1486,4.785,1488,6.13,1493,4.97,1932,4.017,3394,5.364,3465,8.564,4000,4.905,4169,5.191,9401,4.905,13340,6.855,19999,9.462,20000,10.243,20001,10.243,20002,7.847,20003,7.847,20004,10.243]],["title/interfaces/UserAndAccountParams.html",[334,0.743,855,5.64]],["body/interfaces/UserAndAccountParams.html",[0,0.233,3,0.018,4,0.018,5,0.01,26,1.951,30,0.001,47,0.872,48,4.39,49,3.646,51,4.621,94,6.437,95,0.154,99,1.162,101,0.018,103,0.001,104,0.001,111,1.87,116,3.447,185,4.957,192,2.788,217,1.724,227,1.263,334,1.173,336,1.668,404,1.69,461,3.076,627,3.73,658,5.518,734,3.952,840,8.903,841,5.98,842,5.98,843,4.995,844,4.239,845,4.858,846,4.858,847,5.98,848,8.121,849,5.202,850,9.969,851,4.59,852,4.59,853,4.752,854,4.718,855,10.583,856,5.723,857,5.98,858,8.168,859,5.98,860,5.98,861,5.98,862,8.903,863,8.168,864,8.168,865,5.723,866,9.302,867,9.302,868,5.98,869,8.168,870,8.168,871,5.723,872,5.98,873,8.168,874,6.635,875,5.723]],["title/classes/UserAndAccountTestFactory.html",[0,0.23,856,5.64]],["body/classes/UserAndAccountTestFactory.html",[0,0.19,2,0.64,3,0.015,4,0.015,5,0.008,7,0.086,8,0.977,26,1.688,27,0.46,29,0.88,30,0.001,31,0.622,32,0.171,33,0.554,35,1.34,47,0.808,48,3.798,49,3.155,51,3.998,94,6.271,95,0.142,99,0.946,101,0.015,103,0,104,0,111,2.315,116,3.082,138,4.135,144,2.856,185,5.125,192,2.412,217,1.644,227,1.169,329,3.078,334,1.049,404,1.008,461,3.041,627,4.137,658,4.494,734,3.218,840,7.962,841,10.109,842,4.87,843,5.527,844,3.668,845,3.956,846,3.956,847,4.87,848,7.414,849,4.236,850,9.328,851,3.971,852,3.971,853,4.112,854,4.082,855,11.178,856,6.764,857,7.068,858,7.068,859,7.068,860,4.87,861,8.319,862,10.422,863,7.068,864,7.068,865,4.661,866,8.319,867,8.319,868,8.319,869,7.068,870,7.068,871,4.661,872,8.319,873,7.068,874,5.741,875,4.661,20005,8.09,20006,8.09,20007,5.575,20008,5.575,20009,5.575,20010,5.575,20011,5.575,20012,5.575,20013,5.575,20014,5.575]],["title/modules/UserApiModule.html",[425,1.808,17774,5.438]],["body/modules/UserApiModule.html",[0,0.316,3,0.025,4,0.025,5,0.013,30,0.001,95,0.165,101,0.018,103,0.001,104,0.001,187,1.329,425,3.304,427,3.429,428,3.617,429,3.73,430,3.713,431,3.68,432,4.555,433,3.498,442,4.579,443,3.648,444,3.556,446,5.876,447,4.775,449,4.579,481,3.617,2769,4.584,4551,8.747,12313,10.823,17774,11.07,20015,9.276,20016,9.276,20017,9.276,20018,9.276,20019,10.765,20020,9.276]],["title/interfaces/UserBoardRoles.html",[334,0.743,3109,5.438]],["body/interfaces/UserBoardRoles.html",[0,0.277,3,0.022,4,0.022,5,0.011,7,0.125,26,2.647,30,0.001,32,0.163,34,1.396,39,3.285,95,0.134,101,0.024,102,4.103,103,0.001,104,0.001,145,2.706,165,0.827,227,1.105,334,1.155,336,1.982,359,2.82,404,1.895,521,6.556,728,3.185,843,3.55,1031,3.36,1114,3.3,1854,6.114,1857,4.483,1922,5.151,1940,5.151,2571,5.661,2586,4.293,2845,6.353,3089,5.771,3090,7.104,3091,4.779,3092,8.451,3098,10.787,3100,9.878,3101,8.451,3102,9.158,3103,6.799,3104,7.104,3105,7.348,3106,5.877,3107,7.104,3108,7.104,3109,9.878,3110,5.936,3111,6.799,3112,7.104,3113,9.158,3114,7.104]],["title/controllers/UserController.html",[481,2.63,20019,5.893]],["body/controllers/UserController.html",[0,0.262,3,0.02,4,0.02,5,0.011,7,0.119,8,1.223,27,0.42,29,0.803,30,0.001,31,0.568,32,0.142,33,0.506,35,1.223,36,2.61,95,0.167,100,2.582,101,0.015,103,0.001,104,0.001,112,2.871,185,4.428,187,1.105,206,3.948,215,2.496,216,1.426,217,1.583,221,2.387,227,1.067,234,1.251,364,1.877,376,1.809,447,3.233,461,2.606,481,3.007,483,3.712,491,6.403,513,6.678,543,5.074,552,4.952,555,4.071,556,4.172,557,4.208,559,4.208,561,4.208,1828,3.439,1916,4.906,2509,5.716,2769,3.811,2778,5.024,3110,3.736,4218,10.039,12313,9.115,16692,6.737,16696,6.447,18498,9.878,20019,8.846,20021,7.711,20022,11.307,20023,7.711,20024,10.127,20025,7.711,20026,7.711,20027,10.127,20028,7.711,20029,7.711,20030,6.737,20031,7.711,20032,7.711,20033,9.355,20034,7.711,20035,7.711,20036,7.711,20037,7.711]],["title/classes/UserDO.html",[0,0.23,6938,3.818]],["body/classes/UserDO.html",[0,0.2,2,0.676,3,0.016,4,0.016,5,0.008,7,0.09,26,2.049,27,0.571,29,0.467,30,0.001,31,0.33,32,0.193,33,0.703,34,1.444,47,1.002,83,3.734,95,0.137,101,0.011,103,0.001,104,0.001,127,0.744,165,0.664,347,1.715,404,1.521,496,2.479,591,4.198,592,4.331,596,1.787,620,3.779,622,3.779,851,4.819,852,4.819,853,4.989,854,4.954,1291,3.579,1857,2.516,1911,3.632,1932,3.013,1939,6.184,2586,3.106,3110,4.756,4220,6.834,4221,7.46,4227,3.38,4232,6.137,4304,3.469,4316,4.361,4380,5.436,5612,4.264,6744,3.507,6938,6.414,6942,6.967,7005,4.597,7036,4.471,7039,6.571,7040,4.597,7048,5.14,9336,3.955,9338,3.955,9340,4.471,11243,7.914,11244,7.914,11245,7.914,11694,6.711,11722,4.361,12099,7.669,12100,7.46,12101,7.276,12102,7.669,12106,8.208,12107,4.92,12109,4.92,12111,4.92,12113,4.92,12115,4.92,20038,5.884,20039,8.412,20040,5.884,20041,5.884,20042,5.884,20043,5.884,20044,5.884,20045,5.884,20046,5.884,20047,5.884,20048,5.884,20049,5.884,20050,5.884,20051,5.884,20052,5.884,20053,5.884,20054,5.884,20055,5.884,20056,5.884,20057,5.884,20058,5.884,20059,5.884,20060,5.884,20061,5.884,20062,5.884,20063,5.884,20064,5.884,20065,5.884,20066,5.884,20067,5.884,20068,5.884,20069,5.884,20070,5.884,20071,5.884,20072,5.884,20073,5.884,20074,5.884,20075,5.884,20076,5.884,20077,5.884,20078,5.884]],["title/injectables/UserDORepo.html",[105,0.89,20079,5.64]],["body/injectables/UserDORepo.html",[0,0.116,3,0.009,4,0.009,5,0.005,7,0.053,8,0.671,10,2.832,12,2.562,18,2.745,26,2.312,27,0.521,29,0.988,30,0.001,31,0.704,32,0.175,33,0.622,34,1.631,35,1.504,36,2.592,40,2.674,47,0.842,48,4.897,55,0.753,56,1.647,58,2.168,59,1.062,95,0.142,96,0.925,99,0.581,101,0.007,103,0,104,0,105,0.733,107,0.819,111,2.386,112,2.921,144,0.935,145,1.434,148,1.059,165,0.27,167,2.677,187,0.49,192,1.02,217,1.573,221,2.24,227,1.168,234,1.542,247,1.358,277,2.806,305,0.985,329,1.008,347,1.132,359,1.926,371,1.531,380,1.688,381,1.126,398,1.002,404,1.004,450,1.408,461,2.749,496,3.739,510,2.48,529,1.51,558,1.626,591,1.463,592,1.51,595,1.178,596,3.569,661,2.34,701,2.449,844,1.551,851,2.727,852,2.727,853,2.823,854,4.477,878,3.867,884,2.624,885,4.415,915,1.884,964,2.339,1008,3.031,1014,3.961,1062,1.494,1114,2.254,1278,1.852,1857,2.998,2092,1.937,2185,3.144,2383,8.353,2385,3.942,2386,3.942,2387,3.942,2388,3.942,2389,3.867,2390,3.867,2391,3.942,2392,3.867,2393,3.942,2398,2.428,2400,4.612,2401,2.428,2403,2.428,2405,2.264,2406,3.942,2407,2.428,2409,2.428,2411,3.942,2415,3.942,2417,3.734,2418,3.867,2420,2.428,2422,2.087,2423,2.087,2424,2.428,2426,2.428,2428,3.942,2429,2.428,2432,3.31,2446,2.428,2447,2.536,2456,2.989,3110,3.909,3273,3.161,4092,2.339,4220,3.867,4227,1.178,4232,3.473,4355,2.198,4365,2.989,4369,2.861,4370,2.861,4539,2.673,4628,5.869,4630,2.887,5757,4.644,5766,2.48,5767,2.48,5768,2.48,5769,2.48,5770,2.48,5771,2.48,5772,2.48,5773,2.48,5774,2.48,5786,2.428,6487,2.087,6556,2.861,6775,4.981,6785,7.421,6805,2.536,6806,2.536,6844,2.23,6938,6.915,6942,5.727,6943,2.673,6945,2.759,6948,2.989,7633,2.382,8425,2.989,8779,3.161,8783,4.339,8789,2.989,8795,3.161,8796,4.853,8797,3.161,8927,6.304,9181,2.861,9182,3.161,9184,3.161,9185,3.161,9186,5.131,9187,3.161,9975,3.086,10640,2.861,11243,2.759,11244,2.759,11245,2.759,11694,3.797,12097,7.661,12099,4.339,12100,4.221,12101,4.117,12102,4.339,12106,2.861,13302,2.428,13337,4.644,13538,4.853,13542,4.853,13559,3.161,13566,3.161,13570,3.161,14359,3.161,15955,3.161,17419,2.759,17421,2.989,17422,2.989,19394,4.853,19396,4.853,20079,4.644,20080,10.012,20081,5.555,20082,5.131,20083,5.555,20084,3.422,20085,3.422,20086,7.454,20087,3.422,20088,3.422,20089,5.131,20090,3.422,20091,3.422,20092,3.422,20093,3.422,20094,3.422,20095,3.422,20096,3.161,20097,4.853,20098,3.422,20099,3.422,20100,3.422,20101,3.422,20102,3.422,20103,3.422,20104,3.161,20105,3.422,20106,3.422,20107,3.422,20108,3.161,20109,6.477,20110,3.422,20111,3.161,20112,3.422,20113,5.555,20114,3.422,20115,3.422,20116,3.422,20117,3.161,20118,3.422,20119,3.161,20120,3.161,20121,3.161,20122,3.161,20123,3.422,20124,3.422,20125,3.422,20126,3.422,20127,3.161,20128,3.161,20129,3.161,20130,3.161,20131,3.161,20132,3.422,20133,3.422,20134,3.422,20135,3.422,20136,3.422,20137,3.422,20138,3.422,20139,3.422,20140,3.422,20141,3.422,20142,3.422,20143,3.422,20144,3.422,20145,3.422]],["title/classes/UserDataResponse.html",[0,0.23,18327,5.64]],["body/classes/UserDataResponse.html",[0,0.303,2,1.023,3,0.024,4,0.024,5,0.013,7,0.137,27,0.526,29,0.707,30,0.001,31,0.499,32,0.178,33,0.445,39,3.495,47,0.968,95,0.114,101,0.017,103,0.001,104,0.001,127,1.403,165,0.876,364,2.243,376,2.089,415,4.86,467,3.624,851,6.399,852,6.399,966,4.56,9336,5.986,9338,5.986,18327,10.899,20146,13.035,20147,8.906,20148,8.906,20149,8.906,20150,8.906,20151,8.906]],["title/classes/UserDoFactory.html",[0,0.23,20152,6.231]],["body/classes/UserDoFactory.html",[0,0.166,2,0.56,3,0.013,4,0.013,5,0.007,7,0.075,8,0.885,26,1.529,27,0.535,29,1.03,30,0.001,31,0.707,32,0.187,33,0.622,34,1.511,35,1.481,47,0.533,49,1.9,55,2.516,59,3.257,95,0.134,99,0.827,101,0.009,103,0,104,0,127,0.616,138,4.25,144,3.216,148,1.508,165,0.578,185,4.876,216,1.355,217,0.966,227,0.772,234,0.791,329,3.466,359,2.54,366,2.682,379,2.029,380,1.841,381,2.411,404,1.324,461,1.123,538,3.284,596,3.874,627,2.281,660,6.961,661,4.644,662,5.487,665,4.107,666,5.487,667,5.524,668,4.107,669,4.107,670,4.107,671,4.032,672,4.473,673,4.934,674,6.42,675,5.777,676,6.911,677,2.758,682,2.732,683,4.107,684,2.758,685,5.126,686,5.341,687,4.54,688,5.166,689,4.069,690,2.732,691,2.552,692,4.107,693,2.659,694,2.614,695,2.732,696,5.048,697,2.758,698,4.845,699,2.732,700,7.072,701,4.109,702,6.596,703,2.758,704,3.62,705,2.732,706,2.758,707,2.732,708,2.758,709,2.732,712,2.732,713,6.068,714,2.758,715,2.732,716,4.107,717,4.032,718,4.107,719,2.758,720,2.636,721,2.614,722,2.149,723,2.732,724,2.732,725,2.732,726,2.758,727,2.758,728,1.908,729,2.732,730,2.758,731,2.868,732,2.732,733,2.758,734,2.813,735,2.813,737,2.904,851,2.392,852,2.392,853,2.476,1857,2.084,3110,4.263,4227,1.678,4335,6.245,4337,3.531,4538,4.146,6938,2.758,6943,3.806,7599,4.256,12355,4.256,18338,4.256,18340,4.256,20152,8.13,20153,4.872,20154,7.324,20155,7.324,20156,4.872,20157,4.872]],["title/classes/UserDto.html",[0,0.23,20158,5.64]],["body/classes/UserDto.html",[0,0.234,2,0.79,3,0.018,4,0.018,5,0.01,7,0.106,26,2.505,27,0.566,29,0.546,30,0.001,31,0.386,32,0.191,33,0.69,34,1.833,47,0.98,83,3.451,95,0.088,99,1.168,101,0.013,103,0.001,104,0.001,127,0.869,144,2.565,165,0.74,329,2.764,347,1.912,380,1.439,461,2.163,618,2.928,722,3.035,738,3.972,851,5.241,852,5.241,853,5.426,854,5.387,1291,3.993,4220,7.432,4221,8.113,4227,3.676,4232,6.675,4304,4.056,4316,5.1,6744,4.1,6949,5.753,9336,4.625,9338,4.625,9340,5.228,12099,8.341,12100,8.113,12101,7.914,12102,8.341,12107,5.753,12109,5.753,12111,5.753,12113,5.753,12115,5.753,12173,5.228,12658,6.011,13139,5.1,13140,4.986,14473,6.356,17660,6.356,20158,10.034,20159,6.881,20160,9.863,20161,9.383,20162,6.881,20163,6.881,20164,6.881,20165,6.881,20166,6.881,20167,6.881,20168,6.881,20169,6.881,20170,6.881,20171,6.881,20172,6.881,20173,6.881,20174,6.881,20175,6.881,20176,6.881,20177,6.881,20178,6.881,20179,6.011,20180,6.881,20181,6.881]],["title/classes/UserFactory.html",[0,0.23,848,4.787]],["body/classes/UserFactory.html",[0,0.137,2,0.462,3,0.011,4,0.011,5,0.006,7,0.062,8,0.763,27,0.533,29,1.026,30,0.001,31,0.715,32,0.183,33,0.626,34,1.34,35,1.374,47,0.46,55,2.349,59,2.984,95,0.137,99,0.682,101,0.008,103,0,104,0,127,0.508,138,2.744,144,3.244,148,1.244,165,0.499,185,4.902,192,1.199,216,1.169,217,1.591,227,1.076,329,3.496,359,2.191,366,2.213,379,1.799,380,2.011,381,2.08,404,1.142,461,1.799,496,5.155,538,2.833,596,3.715,627,1.967,660,6.897,661,4.301,662,4.959,665,3.542,666,4.959,667,5.34,668,3.542,669,3.542,670,3.542,671,3.478,672,3.967,673,4.376,674,6.034,675,5.293,676,6.717,677,2.276,682,2.254,683,3.542,684,2.276,685,4.633,686,4.827,687,4.104,688,4.67,689,3.51,690,2.254,691,2.106,692,3.803,693,2.194,694,2.157,695,2.254,696,4.562,697,2.276,698,4.297,699,2.254,700,7.085,701,3.862,702,6.2,703,2.276,704,3.857,705,2.254,706,2.276,707,2.254,708,2.276,709,2.254,710,2.547,711,2.396,712,2.254,713,5.619,714,2.276,715,2.254,716,3.542,717,3.478,718,3.542,719,2.276,720,2.175,721,2.157,722,1.774,723,2.254,724,2.254,725,2.254,726,2.276,727,2.276,728,1.574,729,2.254,730,2.276,731,2.474,732,2.254,733,2.276,735,2.321,736,2.37,737,5.73,843,5.081,845,2.853,846,2.853,848,5.539,851,1.973,852,1.973,853,2.043,862,8.534,865,5.282,871,5.282,875,5.282,1916,5.172,2232,5.837,3110,4.945,4538,5.007,6613,3.141,6614,3.241,6622,3.141,12097,3.241,12355,3.512,18338,3.512,18340,3.512,19378,3.714,19382,8.171,20182,4.02,20183,6.318,20184,6.318,20185,6.318,20186,6.318,20187,4.02,20188,4.02,20189,4.02,20190,6.318,20191,4.02,20192,6.318,20193,4.02,20194,6.318,20195,6.318,20196,6.318,20197,4.02,20198,4.02,20199,7.805,20200,4.02]],["title/classes/UserForGroupNotFoundLoggable.html",[0,0.23,15928,5.893]],["body/classes/UserForGroupNotFoundLoggable.html",[0,0.302,2,1.021,3,0.024,4,0.024,5,0.013,7,0.137,8,1.339,27,0.46,29,0.705,30,0.001,31,0.498,32,0.125,33,0.444,35,1.073,95,0.142,100,2.975,101,0.017,103,0.001,104,0.001,127,1.123,163,2.803,214,3.65,215,2.877,216,1.644,227,0.937,461,2.048,1062,3.879,1277,6.529,1327,3.51,1542,5.642,1543,6.282,1545,2.839,1547,6.298,1724,4.982,3060,6.306,4538,5.03,6896,5.707,8137,6.282,8138,6.541,8278,9.889,8291,5.973,10577,8.426,10705,6.439,15928,9.688,17543,8.209,17545,8.209,17546,8.209,20201,12.088,20202,8.887,20203,8.887,20204,8.887]],["title/classes/UserInfoMapper.html",[0,0.23,14683,5.893]],["body/classes/UserInfoMapper.html",[0,0.322,2,1.088,3,0.025,4,0.025,5,0.013,7,0.146,8,1.393,27,0.393,29,0.751,30,0.001,31,0.531,32,0.133,33,0.473,34,1.626,35,1.144,95,0.148,99,1.608,100,3.862,101,0.018,103,0.001,104,0.001,217,1.249,227,0.998,234,1.537,461,3.058,627,3.873,738,5.468,851,4.65,852,4.65,975,6.592,982,4.746,13139,7.021,13140,6.864,14654,10.434,14683,10.076,16694,10.076,17580,8.275,17582,8.275,20205,11.535]],["title/classes/UserInfoResponse.html",[0,0.23,14654,5.438]],["body/classes/UserInfoResponse.html",[0,0.281,2,0.949,3,0.022,4,0.022,5,0.012,7,0.127,27,0.512,29,0.656,30,0.001,31,0.715,32,0.173,33,0.637,34,2.276,47,0.95,95,0.106,101,0.016,103,0.001,104,0.001,127,1.339,165,0.836,364,2.167,375,4.743,376,1.939,379,2.842,380,2.216,461,3.006,467,2.848,475,4.142,575,6.313,618,3.517,851,6.257,852,6.257,966,4.232,1145,8.857,1480,5.939,2254,6.663,2909,5.556,2910,5.781,2911,5.781,9336,5.556,9338,5.556,14654,10.275,17587,7.221,20206,12.746,20207,8.266,20208,7.636,20209,8.266]],["title/entities/UserLoginMigration.html",[380,1.411,4457,4.066]],["body/entities/UserLoginMigration.html",[0,0.233,3,0.018,4,0.018,5,0.01,7,0.105,27,0.526,30,0.001,32,0.181,33,0.644,83,3.879,95,0.147,96,1.854,101,0.018,103,0.001,104,0.001,145,2.751,165,0.739,192,3.178,216,1.268,240,3.877,355,5.07,364,2.347,369,2.85,370,4.225,371,2.58,380,1.958,381,2.257,386,6.091,398,2.008,399,3.666,400,3.009,402,2.821,404,1.24,405,1.848,406,2.191,844,5.192,1114,5.138,1717,4.404,2683,7.313,4457,5.642,4926,4.916,6429,4.287,6430,4.133,6627,6.292,10657,4.773,16034,8.592,16035,8.592,17353,6.335,17640,8.099,20210,12.891,20211,6.857,20212,8.326,20213,8.592,20214,8.326,20215,6.857,20216,6.857,20217,6.857,20218,6.857,20219,6.857,20220,6.857,20221,6.857,20222,6.857,20223,8.647,20224,6.857,20225,6.857,20226,6.857,20227,6.857,20228,6.857,20229,6.857,20230,5.99,20231,5.99,20232,5.99,20233,5.99,20234,5.99,20235,5.99,20236,5.99,20237,5.99]],["title/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.23,18166,5.438]],["body/classes/UserLoginMigrationAlreadyClosedLoggableException.html",[0,0.28,2,0.944,3,0.022,4,0.022,5,0.012,7,0.126,8,1.274,26,2.567,27,0.438,29,0.652,30,0.001,31,0.461,32,0.148,33,0.411,35,0.992,52,5.707,83,3.508,95,0.149,99,1.394,101,0.016,103,0.001,104,0.001,111,1.643,127,1.038,163,2.591,187,1.177,192,2.45,214,3.473,215,2.659,216,1.952,227,0.866,355,5.12,404,1.908,406,2.625,795,7.25,1327,3.245,1542,5.44,1543,6.058,1545,2.625,1547,6.12,1555,5.136,4442,5.142,8137,6.058,8138,6.307,8530,5.276,8532,5.953,8537,4.842,8538,5.071,8836,7.486,10022,6.418,11720,8.114,13507,6.418,17687,6.623,18166,8.506,19006,6.623,20212,9.609,20238,9.746,20239,11.656,20240,7.589,20241,8.215,20242,8.215]],["title/modules/UserLoginMigrationApiModule.html",[425,1.808,17775,5.438]],["body/modules/UserLoginMigrationApiModule.html",[0,0.235,3,0.018,4,0.018,5,0.01,30,0.001,52,3.209,95,0.173,101,0.013,103,0.001,104,0.001,187,0.991,191,3.842,192,2.062,206,3.541,349,4.575,355,4.52,425,2.87,427,2.557,428,2.697,429,2.781,430,2.768,431,2.744,432,3.958,433,2.608,438,5.859,442,3.786,443,2.72,444,2.652,446,4.381,447,3.948,449,3.786,461,1.594,1545,2.21,1585,8.205,1624,9.69,1945,6.712,1951,7.966,2767,3.118,2769,3.418,4441,10.371,4442,3.051,10099,5.403,13436,9.425,15070,5.403,15230,9.69,16021,10.371,16714,10.371,17775,11.454,17796,5.782,18158,10.371,19487,10.371,20243,6.916,20244,6.916,20245,6.916,20246,10,20247,9.352,20248,9.352,20249,9.416,20250,9.416,20251,6.916]],["title/controllers/UserLoginMigrationController.html",[481,2.63,20248,5.893]],["body/controllers/UserLoginMigrationController.html",[0,0.11,3,0.009,4,0.009,5,0.005,7,0.05,8,0.642,27,0.406,29,0.777,30,0.001,31,0.549,32,0.189,33,0.489,35,1.182,36,2.557,47,0.492,52,6.177,55,1.17,95,0.146,99,0.551,100,1.087,101,0.006,103,0,104,0,111,1.726,112,2.83,127,0.41,145,1.373,185,3.63,187,0.465,192,2.331,204,1.113,206,1.661,216,1.596,217,1.552,221,2.308,227,0.977,234,0.527,264,2.252,355,5.375,364,1.815,376,0.761,379,2.927,447,1.361,461,3.102,481,1.265,483,1.562,491,6.233,498,2.219,511,5.231,513,6.18,529,2.347,543,5.301,549,3.703,553,3.326,555,1.713,556,1.756,557,1.771,559,1.771,561,1.771,563,2.003,564,1.974,694,1.741,728,2.083,774,3.637,795,6.023,1014,2.611,1016,2.792,1114,2.158,1510,3.326,1555,4.888,1661,3.466,1683,4.609,2578,5.094,2744,2.372,2769,1.604,2955,1.837,3710,5.201,4038,2.003,4441,5.652,4442,4.508,4445,4.647,4455,6.287,4457,5.201,4459,6.108,4460,5.941,4630,4.063,5378,2.181,6637,3.855,9401,4.888,12285,4.914,13257,3.855,13463,7.538,13464,7.574,13465,5.941,13469,8.238,13474,4.797,14501,4.647,14622,6.537,14925,4.288,15148,6.83,16714,5.652,16716,4.647,17562,6.108,17636,6.537,17637,6.537,17639,6.83,17684,4.448,18158,5.652,18161,4.647,18166,6.303,18551,2.998,19006,8.776,19487,5.652,19489,5.905,19554,7.647,19561,2.998,19622,8.543,20030,2.835,20246,5.45,20248,4.647,20252,9.44,20253,2.998,20254,5.32,20255,6.245,20256,6.245,20257,6.76,20258,3.245,20259,3.245,20260,9.44,20261,5.32,20262,5.32,20263,3.245,20264,3.245,20265,6.76,20266,3.245,20267,3.245,20268,3.245,20269,9.27,20270,3.245,20271,3.245,20272,3.245,20273,6.537,20274,3.245,20275,3.245,20276,3.245,20277,3.245,20278,3.245,20279,3.245,20280,3.245,20281,3.245,20282,3.245,20283,3.245,20284,5.32,20285,6.537,20286,3.245,20287,3.245,20288,3.245,20289,6.83,20290,3.245,20291,3.245,20292,3.245,20293,4.914,20294,3.245,20295,3.245,20296,3.245,20297,3.245,20298,3.245,20299,3.245,20300,6.76,20301,2.835,20302,6.303,20303,9.176,20304,6.83,20305,3.245,20306,3.245,20307,3.245,20308,3.245,20309,3.245,20310,3.245,20311,3.245,20312,3.245,20313,3.245,20314,5.32,20315,5.32,20316,3.245,20317,6.76,20318,3.245,20319,3.245,20320,3.245,20321,3.245,20322,3.245,20323,3.245,20324,6.76,20325,3.245,20326,3.245,20327,3.245,20328,3.245,20329,3.245,20330,3.245,20331,3.245,20332,3.245,20333,3.245,20334,3.245,20335,3.245,20336,3.245,20337,3.245]],["title/classes/UserLoginMigrationDO.html",[0,0.23,4455,4.332]],["body/classes/UserLoginMigrationDO.html",[0,0.26,2,0.877,3,0.02,4,0.02,5,0.011,7,0.117,26,2.716,27,0.555,29,0.606,30,0.001,31,0.428,32,0.187,33,0.679,34,1.727,47,0.556,83,3.975,95,0.129,101,0.015,103,0.001,104,0.001,127,0.965,165,0.794,208,2.835,355,5.255,404,1.819,405,2.713,595,2.63,596,2.32,1939,6.905,4227,3.875,4304,4.502,4305,5.661,4455,7.984,5612,5.535,5616,5.804,7036,5.804,17612,8.341,17640,8.552,20212,8.792,20213,9.072,20214,8.792,20230,6.673,20231,6.673,20232,6.673,20233,6.673,20234,6.673,20235,6.673,20236,6.673,20237,6.673,20338,13.363,20339,7.638,20340,8.792,20341,10.063,20342,7.638,20343,7.638,20344,7.638,20345,7.638,20346,7.638,20347,7.638,20348,7.056,20349,7.056,20350,7.056,20351,7.056]],["title/classes/UserLoginMigrationError.html",[0,0.23,20352,5.893]],["body/classes/UserLoginMigrationError.html",[0,0.26,2,0.877,3,0.02,4,0.02,5,0.011,7,0.117,8,1.215,27,0.54,29,0.606,30,0.001,31,0.428,32,0.189,33,0.562,35,0.922,47,0.82,52,5.221,55,1.68,59,2.371,95,0.129,101,0.015,103,0.001,104,0.001,127,0.965,165,0.794,187,1.094,204,4.104,216,2.495,355,4.705,364,2.304,404,1.819,406,2.44,461,1.761,558,3.63,564,2.835,596,3.877,798,6.291,1013,5.485,1016,2.728,1253,5.191,1291,5.09,1327,4.445,1472,8.249,1473,7.105,1474,4.061,1475,7.228,1479,4.977,1480,4.282,1481,4.977,1482,4.977,1483,4.977,1484,4.977,1485,4.977,1486,4.658,1487,4.365,1493,4.838,4442,4.439,6706,4.775,6896,4.905,8536,6.386,13247,5.661,13282,8.414,17565,6.673,20238,8.414,20352,8.791,20353,7.638]],["title/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.23,4459,5.27]],["body/classes/UserLoginMigrationGracePeriodExpiredLoggableException.html",[0,0.277,2,0.934,3,0.022,4,0.022,5,0.011,7,0.125,8,1.266,26,2.557,27,0.435,29,0.645,30,0.001,31,0.456,32,0.147,33,0.406,35,0.982,52,5.685,83,3.491,95,0.149,99,1.38,101,0.016,103,0.001,104,0.001,111,1.627,127,1.028,163,2.565,187,1.165,214,3.45,215,2.632,216,1.939,227,0.857,355,5.195,404,1.895,406,2.598,461,1.875,1327,3.212,1542,5.414,1543,6.029,1545,2.598,1547,6.097,4442,5.117,4459,8.189,8137,6.029,8138,6.277,8537,4.794,8538,5.02,8836,7.45,11720,8.075,13507,6.353,14501,7.104,17636,10.245,17637,10.245,17638,7.512,17639,10.704,17640,9.311,20238,9.699,20240,7.512,20354,8.132,20355,8.132,20356,8.132,20357,8.132,20358,8.132]],["title/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.23,19494,5.893]],["body/classes/UserLoginMigrationMandatoryLoggable.html",[0,0.283,2,0.955,3,0.022,4,0.022,5,0.012,7,0.128,8,1.284,26,2.771,27,0.441,29,0.66,30,0.001,31,0.466,32,0.117,33,0.416,35,1.004,39,3.143,52,5.733,95,0.136,99,1.412,101,0.016,103,0.001,104,0.001,111,2.345,127,1.344,163,2.623,192,3.171,214,3.5,216,2.168,227,0.877,347,2.39,355,5.222,415,4.539,461,1.917,540,6.027,564,3.087,1327,3.285,1542,5.472,1543,6.093,1545,2.657,1547,6.148,4442,5.172,8137,6.093,8138,6.344,10022,6.498,10368,6.705,11285,9.159,11720,8.601,12938,7.266,13507,6.498,19494,9.291,20359,10.831,20360,8.317,20361,8.317,20362,8.317,20363,8.317]],["title/classes/UserLoginMigrationMandatoryParams.html",[0,0.23,20289,5.893]],["body/classes/UserLoginMigrationMandatoryParams.html",[0,0.401,2,1.128,3,0.026,4,0.026,5,0.014,7,0.151,27,0.408,30,0.001,32,0.138,52,5.469,95,0.151,101,0.019,103,0.001,104,0.001,165,0.93,347,2.403,355,5.153,364,1.82,373,6.223,374,3.137,376,2.303,467,3.169,4442,5.2,7186,7.461,11285,9.363,20289,10.298,20364,10.89,20365,9.819,20366,9.819]],["title/classes/UserLoginMigrationMapper.html",[0,0.23,20301,5.893]],["body/classes/UserLoginMigrationMapper.html",[0,0.282,2,0.953,3,0.022,4,0.022,5,0.012,7,0.128,8,1.283,27,0.441,29,0.843,30,0.001,31,0.596,32,0.149,33,0.531,35,1.283,39,2.225,52,3.851,95,0.15,99,1.409,101,0.016,103,0.001,104,0.001,217,1.401,227,1.119,234,1.347,355,5.22,529,5.167,627,4.065,982,4.159,1016,3.793,1857,3.55,4442,5.167,4455,7.93,17612,6.152,17640,6.307,20212,6.484,20213,6.691,20214,6.484,20273,10.324,20301,9.278,20302,9.954,20303,10.288,20340,6.484,20367,11.713,20368,7.667,20369,10.621,20370,10.621,20371,10.621,20372,8.3,20373,8.3,20374,10.621,20375,8.3,20376,8.3,20377,8.3,20378,8.3,20379,8.3,20380,8.3,20381,8.3,20382,8.3,20383,8.3]],["title/modules/UserLoginMigrationModule.html",[425,1.808,13436,5.126]],["body/modules/UserLoginMigrationModule.html",[0,0.237,3,0.018,4,0.018,5,0.01,30,0.001,95,0.166,101,0.013,103,0.001,104,0.001,187,0.999,191,3.875,192,2.08,355,3.725,425,2.883,427,2.579,428,2.72,429,2.805,430,2.792,431,2.768,432,3.975,433,4.055,437,8.825,438,5.875,442,3.808,443,2.744,444,2.675,449,3.808,450,2.87,766,2.998,1545,2.229,1626,8.825,1642,6.094,1645,5.171,1951,7.987,4442,3.077,4448,9.575,4449,10,4450,10.877,4551,8.103,4561,3.712,13436,10.815,14459,11.281,14463,9.715,15046,10.54,17796,5.833,20384,6.976,20385,6.976,20386,6.976,20387,6.976,20388,6.976]],["title/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.23,4460,5.126]],["body/classes/UserLoginMigrationNotFoundLoggableException.html",[0,0.281,2,0.947,3,0.022,4,0.022,5,0.012,7,0.127,8,1.278,26,2.766,27,0.439,29,0.654,30,0.001,31,0.463,32,0.148,33,0.412,35,0.996,52,5.715,59,2.56,95,0.15,99,1.4,101,0.016,103,0.001,104,0.001,111,1.65,127,1.042,163,2.602,187,1.182,192,2.46,214,3.482,215,2.67,216,1.957,227,0.869,355,5.212,404,1.913,406,2.635,461,1.901,1327,3.258,1542,5.45,1543,6.07,1545,2.635,1547,6.13,2686,6.215,4227,4.021,4304,4.862,4442,5.152,4460,8.039,4630,4.287,5453,5.545,8137,6.07,8138,6.319,8530,5.298,8532,5.977,8537,4.862,8538,5.092,11720,8.575,13507,6.444,14973,10.789,17686,7.62,17687,6.65,20238,9.765,20389,8.249]],["title/interfaces/UserLoginMigrationQuery.html",[334,0.743,20302,5.438]],["body/interfaces/UserLoginMigrationQuery.html",[3,0.027,4,0.027,5,0.015,7,0.158,30,0.001,32,0.144,33,0.606,39,3.567,47,0.939,52,4.777,101,0.02,103,0.001,104,0.001,165,0.957,334,1.134,336,2.509,355,4.769,4442,4.542,9069,9.512,20302,9.775,20390,10.297]],["title/injectables/UserLoginMigrationRepo.html",[105,0.89,14463,5.27]],["body/injectables/UserLoginMigrationRepo.html",[0,0.161,3,0.013,4,0.013,5,0.007,7,0.073,8,0.865,10,2.892,12,3.303,18,3.539,26,2.615,27,0.54,29,1.025,30,0.001,31,0.725,32,0.181,33,0.646,34,1.655,35,1.547,36,2.594,40,2.276,95,0.145,96,1.936,97,2.012,99,0.803,101,0.009,103,0,104,0,105,0.944,107,1.132,111,2.332,112,2.898,127,0.598,145,1.221,148,1.463,165,0.373,167,2.734,187,0.677,192,2.135,216,1.325,217,1.271,221,1.115,227,1.149,234,1.162,355,4.073,359,2.483,380,2.017,398,1.385,404,1.295,595,1.628,596,3.851,661,3.642,844,2.144,878,4.985,884,3.383,885,5.154,915,2.604,1052,3.929,1053,4.275,1114,1.919,1545,1.511,1857,3.696,2092,2.677,2383,8.902,2385,5.082,2386,5.082,2387,5.082,2388,5.082,2389,4.985,2390,4.985,2391,5.082,2392,4.985,2393,5.082,2394,3.427,2395,5.51,2397,5.189,2398,3.356,2400,5.51,2401,3.356,2403,3.356,2405,3.128,2406,5.082,2407,3.356,2409,3.356,2411,5.082,2415,5.082,2417,4.814,2418,4.985,2420,3.356,2422,2.884,2423,2.884,2424,3.356,2426,3.356,2428,3.356,2429,3.356,2435,3.179,4227,2.976,4355,3.037,4455,8.049,4457,7.334,5766,3.427,5767,3.427,5768,3.427,5769,3.427,5770,3.427,5771,3.427,5772,5.189,5773,3.427,5774,3.427,5782,3.594,8781,3.594,11696,3.812,11697,3.812,13548,4.369,13575,6.616,14463,5.595,16034,3.812,16035,3.812,17400,6.616,17410,6.616,17419,3.812,17421,4.131,17422,4.131,17612,3.505,17640,5.442,20212,5.595,20213,5.773,20214,5.595,20223,10.457,20340,3.695,20391,9.64,20392,4.729,20393,4.729,20394,4.729,20395,4.729,20396,4.729,20397,4.729,20398,4.729,20399,4.729,20400,4.729,20401,4.729,20402,4.729,20403,4.729,20404,4.729,20405,4.729,20406,4.729,20407,7.162,20408,7.162,20409,4.729,20410,4.729,20411,4.729,20412,4.729,20413,4.729]],["title/classes/UserLoginMigrationResponse.html",[0,0.23,20303,5.438]],["body/classes/UserLoginMigrationResponse.html",[0,0.231,2,0.78,3,0.018,4,0.018,5,0.01,7,0.104,27,0.524,29,0.538,30,0.001,31,0.381,32,0.177,33,0.652,34,1.957,47,0.83,52,6.232,83,4.134,95,0.087,101,0.013,103,0.001,104,0.001,127,0.858,165,0.734,355,5.403,364,2.287,368,3.672,375,4.846,376,1.592,379,2.843,405,2.506,467,2.85,595,2.337,1013,4.263,1114,4.626,1480,6.393,1555,5.811,2115,7.494,2744,4.145,3247,6.873,4442,5.673,7779,8.121,10000,7.494,17612,7.858,17636,7.772,17637,7.772,17640,8.056,20212,8.282,20213,8.547,20214,8.282,20230,5.93,20231,5.93,20232,5.93,20233,5.93,20234,5.93,20235,5.93,20236,5.93,20237,5.93,20303,9.629,20340,8.282,20348,6.27,20349,6.27,20350,6.27,20351,6.27,20414,11.88,20415,6.27,20416,9.296,20417,6.788,20418,6.788,20419,6.788,20420,6.788,20421,6.788]],["title/injectables/UserLoginMigrationRevertService.html",[105,0.89,4450,5.438]],["body/injectables/UserLoginMigrationRevertService.html",[0,0.291,3,0.023,4,0.023,5,0.012,7,0.131,8,1.307,27,0.449,29,0.858,30,0.001,31,0.607,32,0.152,33,0.541,35,1.032,36,2.352,52,5.509,95,0.16,99,1.451,101,0.016,103,0.001,104,0.001,105,1.427,107,2.046,111,2.165,112,2.664,127,1.367,129,7.705,132,7.626,187,1.224,191,4.748,192,2.549,216,2.001,221,2.551,355,5.254,461,1.97,4442,5.238,4447,6.89,4448,9.335,4450,8.723,4455,8.016,4457,5.151,11695,5.949,12841,7.146,15940,7.466,20422,10.373,20423,8.547,20424,10.821,20425,8.547,20426,10.821,20427,8.547,20428,8.547,20429,8.547]],["title/injectables/UserLoginMigrationRule.html",[105,0.89,1974,5.64]],["body/injectables/UserLoginMigrationRule.html",[0,0.265,3,0.021,4,0.021,5,0.011,7,0.12,8,1.232,27,0.472,29,0.902,30,0.001,31,0.638,32,0.159,33,0.568,35,1.232,95,0.16,101,0.015,103,0.001,104,0.001,105,1.346,107,1.867,116,4.156,127,0.986,187,1.117,199,4.341,214,2.568,215,2.525,216,1.443,217,1.346,227,1.075,347,2.617,355,4.743,380,2.776,461,3.093,806,3.287,1857,3.336,1862,6.64,1890,8.133,1928,7.445,1974,8.531,1989,6.299,2033,6.648,2056,5.244,3352,6.858,3353,5.333,3356,6.75,3358,5.333,3359,5.244,3360,6.976,3361,5.928,4455,8.521,5868,5.653,17464,7.207,20430,12.061,20431,7.801,20432,7.801,20433,7.801,20434,7.801]],["title/classes/UserLoginMigrationSearchListResponse.html",[0,0.23,20304,5.893]],["body/classes/UserLoginMigrationSearchListResponse.html",[0,0.261,2,0.881,3,0.02,4,0.02,5,0.011,7,0.118,27,0.517,29,0.608,30,0.001,31,0.43,32,0.187,33,0.622,52,4.68,55,3.056,56,6.151,59,3.131,70,6.403,95,0.145,101,0.015,103,0.001,104,0.001,127,0.969,145,1.979,163,3.925,165,0.796,355,4.895,364,2.221,376,1.799,404,1.824,461,1.767,467,2.712,469,3.382,596,3.638,1005,7.477,1006,5.441,1007,8.041,1008,6.974,1009,5.766,1011,4.08,1013,5.17,1014,3.764,1015,4.259,1016,2.738,1017,5.441,1018,6.573,1019,5.884,1020,5.072,1021,4.08,1022,5.441,1023,5.441,1025,4.857,1026,4.259,4442,4.45,9062,7.083,9063,7.083,15727,7.083,20303,10.501,20304,8.813,20414,9.32]],["title/classes/UserLoginMigrationSearchParams.html",[0,0.23,20273,5.64]],["body/classes/UserLoginMigrationSearchParams.html",[0,0.399,2,1.117,3,0.026,4,0.026,5,0.014,7,0.149,27,0.404,30,0.001,32,0.136,33,0.586,39,3.372,47,0.853,52,5.437,95,0.15,101,0.019,103,0.001,104,0.001,165,0.925,355,5.136,364,1.803,374,3.107,375,4.755,376,2.281,470,4.938,471,4.987,4442,5.17,9064,8.495,9067,8.495,20273,9.798,20364,10.826,20435,9.724]],["title/injectables/UserLoginMigrationService.html",[105,0.89,4448,4.787]],["body/injectables/UserLoginMigrationService.html",[0,0.23,3,0.009,4,0.009,5,0.005,7,0.05,8,0.643,26,2.208,27,0.473,29,0.903,30,0.001,31,0.638,32,0.16,33,0.569,35,1.347,36,2.678,39,0.871,47,0.897,48,1.525,55,1.488,59,2.099,83,2.947,95,0.136,99,0.551,101,0.006,102,1.639,103,0,104,0,105,0.702,107,0.777,111,2.354,112,2.959,127,0.673,129,4.829,132,4.344,145,2.939,148,1.005,167,3.903,187,0.465,189,5.933,191,1.804,192,2.017,204,1.826,216,1.597,217,1.664,221,3.029,227,1.176,234,1.91,235,1.838,264,3.312,305,2.668,347,2.362,355,5.104,369,0.718,450,1.336,571,2.03,574,2.413,1062,1.418,1114,1.318,1439,1.553,1645,2.407,2171,1.396,2172,1.553,2173,1.498,2478,3.042,3565,2.837,3898,1.773,4227,3.99,4442,5.112,4445,4.65,4448,3.778,4449,7.258,4455,8.252,4457,7.655,4460,2.468,4462,5.655,4464,5.284,4467,5.013,4468,4.65,4561,1.728,4630,1.688,5512,2.468,6793,3.705,6938,4.427,8836,2.086,11285,5.798,11695,2.261,12145,5.655,12168,2.716,12600,5.453,12841,2.716,13173,2.716,13449,5.909,13521,7.047,13522,7.047,13523,7.767,13620,3,13629,7.975,13635,3,13636,4.291,13642,2.716,13643,7.226,14219,2.618,14463,7.65,14468,2.618,14469,4.918,15045,7.096,15072,5.258,15940,2.837,16466,2.618,16716,4.65,17222,3.778,17607,3,17612,2.407,17653,6.248,17654,3,17672,4.918,18161,4.65,18615,2.537,18716,3,18749,3,19489,4.65,20214,2.537,20340,4.159,20422,10.124,20436,5.323,20437,5.323,20438,5.323,20439,5.323,20440,5.323,20441,5.323,20442,5.323,20443,3.248,20444,5.323,20445,3.248,20446,5.323,20447,3.248,20448,5.323,20449,3.248,20450,5.323,20451,3.248,20452,5.323,20453,3.248,20454,5.323,20455,3.248,20456,4.451,20457,3,20458,5.323,20459,3.248,20460,5.323,20461,3.248,20462,5.323,20463,3.248,20464,5.323,20465,5.323,20466,5.323,20467,5.323,20468,6.764,20469,2.618,20470,3.248,20471,5.323,20472,5.323,20473,5.323,20474,3.248,20475,5.323,20476,3.248,20477,5.323,20478,3.248,20479,3.248,20480,3.248,20481,5.323,20482,3.248,20483,3.248,20484,3.248,20485,3.248,20486,5.323,20487,3.248,20488,3.248,20489,3.248,20490,5.323,20491,4.918,20492,3.248]],["title/classes/UserLoginMigrationStartLoggable.html",[0,0.23,16721,5.64]],["body/classes/UserLoginMigrationStartLoggable.html",[0,0.293,2,0.988,3,0.023,4,0.023,5,0.012,7,0.132,8,1.312,26,2.792,27,0.451,29,0.682,30,0.001,31,0.482,32,0.121,33,0.43,35,1.039,39,3.193,52,5.804,95,0.139,99,1.46,101,0.016,103,0.001,104,0.001,111,1.721,127,1.087,163,2.713,192,3.24,214,3.576,215,2.784,216,2.009,227,0.907,355,5.182,415,4.694,540,6.233,1327,3.398,1542,5.558,1543,6.189,1545,2.748,1547,6.225,1555,5.377,4442,5.254,8137,6.189,8138,6.444,10368,6.934,11720,8.708,13507,6.72,16721,9.084,17574,7.946,17575,7.946,20359,11.002,20493,8.602]],["title/injectables/UserLoginMigrationUc.html",[105,0.89,20246,5.438]],["body/injectables/UserLoginMigrationUc.html",[0,0.128,3,0.01,4,0.01,5,0.005,7,0.058,8,0.723,26,2.511,27,0.411,29,0.786,30,0.001,31,0.556,32,0.139,33,0.495,34,0.644,35,1.123,36,2.346,39,2.894,47,0.969,52,2.776,59,2.643,95,0.158,99,0.637,100,1.257,101,0.007,103,0,104,0,105,0.789,107,0.899,111,2.329,112,2.659,127,0.756,145,1.926,148,1.162,163,2.933,167,2.849,187,0.538,189,5.214,192,3.1,204,2.921,216,1.996,217,1.371,221,2.689,227,0.786,234,1.752,247,1.489,305,2.851,349,2.483,355,4.902,461,2.144,511,1.922,529,3.292,549,4.166,564,1.393,766,1.614,784,1.982,806,1.582,843,1.639,905,1.559,954,2.782,1014,4.565,1052,3.042,1053,3.776,1062,1.639,1158,1.998,1253,3.927,1291,1.597,1327,2.948,1473,3.42,1500,4.022,1545,1.199,1627,7.706,1819,2.411,1865,3.134,1866,2.125,1881,2.378,1919,2.485,1952,5.578,1993,4.091,2037,2.167,2344,2.474,2579,2.664,2767,1.692,2880,4.072,3544,2.485,3830,2.378,3832,2.523,4227,3.412,4442,4.586,4444,3.026,4448,7.378,4449,7.706,4455,4.792,4457,5.972,4461,2.933,4463,3.468,4582,3.026,4640,6.988,8291,2.523,8300,3.741,9713,2.72,10380,3.139,10705,2.72,10721,3.139,10722,3.468,10854,5.003,10933,7.9,10953,4.336,11083,5.192,11616,6.169,12590,3.279,12617,6.473,12649,7.497,13352,5.528,13474,5.296,14039,3.468,14468,3.026,14925,4.824,14988,4.824,15044,8.122,15046,7.741,15070,2.933,15071,3.279,15086,3.026,15104,3.139,15157,3.468,15163,3.279,15164,3.279,15325,5.528,15475,2.933,15735,3.026,15815,3.468,15818,5.528,15823,3.468,15836,3.279,15837,8.657,15838,3.468,15839,5.528,15840,5.528,15842,3.468,15843,3.468,15932,3.468,15997,3.468,16010,4.675,16033,5.228,16034,6.863,16035,8.381,16036,7.437,16042,3.279,17590,3.279,17612,8.92,20246,4.824,20255,5.528,20256,5.528,20302,6.863,20352,5.228,20494,10.396,20495,5.528,20496,7.462,20497,3.754,20498,3.754,20499,5.984,20500,3.754,20501,5.984,20502,3.754,20503,5.528,20504,3.754,20505,3.754,20506,3.754,20507,3.754,20508,3.754,20509,7.462,20510,3.754,20511,3.754,20512,3.754,20513,3.754,20514,3.754,20515,8.513,20516,3.754,20517,3.754,20518,5.984,20519,3.468,20520,3.468,20521,3.754,20522,5.984,20523,5.984,20524,5.984,20525,3.754,20526,3.754,20527,3.754,20528,3.754,20529,3.754,20530,3.754,20531,3.754,20532,9.299,20533,3.754,20534,5.984,20535,3.754]],["title/classes/UserMapper.html",[0,0.23,20536,5.893]],["body/classes/UserMapper.html",[0,0.309,2,1.044,3,0.024,4,0.024,5,0.013,7,0.14,8,1.358,27,0.377,29,0.721,30,0.001,31,0.51,32,0.127,33,0.454,34,1.56,35,1.097,95,0.144,99,1.542,101,0.017,103,0.001,104,0.001,227,0.958,234,1.475,380,1.901,461,2.941,496,4.738,627,3.802,851,4.461,852,4.461,853,4.619,854,4.585,4220,6.326,4227,3.129,4232,5.681,4355,5.836,4365,7.939,6945,7.326,10640,7.598,12099,7.099,12100,6.905,12101,6.735,12102,7.099,16807,9.401,16811,9.401,17419,7.326,20120,8.395,20121,8.395,20122,8.395,20127,8.395,20128,8.395,20129,8.395,20130,8.395,20131,8.395,20158,10.667,20160,8.395,20536,9.823,20537,9.087,20538,9.087,20539,9.087,20540,9.087]],["title/classes/UserMatchListResponse.html",[0,0.23,12310,5.64]],["body/classes/UserMatchListResponse.html",[0,0.35,2,0.736,3,0.017,4,0.017,5,0.009,7,0.099,27,0.486,29,0.508,30,0.001,31,0.501,32,0.185,33,0.585,34,1.1,39,1.718,47,0.81,55,2.985,56,5.833,59,2.773,70,6.071,95,0.15,101,0.017,103,0.001,104,0.001,127,0.81,145,1.654,163,3.69,165,0.705,167,2.447,200,2.088,355,2.521,364,2.063,369,1.417,374,2.048,375,3.625,376,1.503,379,2.793,404,1.615,405,1.728,415,3.498,416,4.116,461,2.866,467,3.343,469,2.827,496,2.701,538,2.874,577,5.767,596,3.379,728,2.51,851,4.386,852,4.386,1000,3.821,1007,7.675,1008,6.613,1009,5.106,1011,3.411,1013,4.716,1014,3.146,1015,3.56,1016,2.289,1017,4.548,1018,5.821,1019,5.211,1020,4.24,1021,3.411,1022,4.548,1023,4.548,1025,4.06,1026,3.56,1031,2.864,1114,2.6,1717,7.146,3105,4.06,3106,3.593,3110,3.105,3262,4.007,4442,3.941,4960,4.06,5418,4.06,9336,4.308,9337,4.644,9338,4.308,9339,4.644,10331,4.382,10349,4.461,10350,4.548,10351,5.385,11448,4.87,11449,4.176,11468,7.47,11491,5.359,12310,7.47,12361,9.908,12363,7.816,12366,5.359,12367,5.359,12368,5.359,12369,5.359,12433,8.985,20541,8.254,20542,5.921,20543,6.409,20544,6.409,20545,5.599]],["title/classes/UserMatchMapper.html",[0,0.23,12302,5.64]],["body/classes/UserMatchMapper.html",[0,0.244,2,0.824,3,0.019,4,0.019,5,0.01,7,0.11,8,1.166,27,0.401,29,0.766,30,0.001,31,0.612,32,0.135,33,0.482,35,1.166,39,1.924,59,2.227,95,0.156,99,1.218,100,3.232,101,0.014,103,0.001,104,0.001,167,4.165,217,1.654,227,1.322,234,1.164,277,3.864,305,2.065,307,4.485,309,6.174,329,2.114,369,1.586,461,2.806,529,4.258,540,5.199,558,3.41,627,3.905,738,4.142,851,3.522,852,3.522,975,5.517,982,3.595,3105,4.545,3106,4.023,4442,4.812,4538,5.463,4539,5.605,10331,4.905,10365,9.755,11448,7.335,11449,6.289,11450,10.501,11497,9.405,12173,5.452,12302,8.071,12304,6.268,12361,9.115,12363,8.289,12386,5.605,12388,5.999,12440,5.605,13139,5.318,13140,5.199,16694,8.432,16825,8.917,16830,6.628,16831,6.628,16832,6.628,20546,10.908,20547,7.175,20548,9.653,20549,7.175,20550,7.175,20551,7.175,20552,7.175,20553,9.653,20554,7.175,20555,7.175,20556,7.175,20557,7.175,20558,9.653,20559,7.175,20560,7.175,20561,7.175,20562,7.175,20563,7.175]],["title/classes/UserMatchResponse.html",[0,0.23,12361,5.27]],["body/classes/UserMatchResponse.html",[0,0.342,2,0.706,3,0.016,4,0.016,5,0.009,7,0.094,27,0.51,29,0.487,30,0.001,31,0.564,32,0.183,33,0.502,34,1.489,39,2.695,47,0.914,55,2.212,56,4.175,70,4.346,95,0.148,101,0.017,103,0.001,104,0.001,127,0.777,163,2.736,165,0.685,167,2.346,200,2.827,355,3.412,364,2.216,369,1.918,374,1.963,375,3.52,376,1.441,379,2.756,404,1.111,405,2.338,415,3.354,416,3.946,461,3.068,467,3.303,469,2.711,496,2.589,538,3.889,577,6.459,595,2.116,728,3.397,851,5.655,852,5.655,1000,3.71,1007,5.355,1008,3.354,1009,3.512,1013,5.009,1025,3.892,1026,3.414,1031,3.501,1114,3.52,1480,3.445,1717,8.059,3105,5.495,3106,4.864,3110,4.202,3262,5.423,3834,3.584,4442,5.536,4960,5.495,5418,5.495,9336,4.13,9337,4.453,9338,4.13,9339,4.453,10331,6.873,10349,6.038,10350,6.156,10351,6.583,11448,7.64,11449,6.551,11468,7.253,11491,5.138,12310,5.138,12361,9.804,12363,8.754,12366,5.138,12367,5.138,12368,5.138,12369,5.138,12433,10.064,20541,11.593,20542,5.677,20545,7.578,20564,6.145,20565,6.145,20566,6.145,20567,6.145,20568,6.145,20569,6.145,20570,6.145]],["title/controllers/UserMigrationController.html",[481,2.63,20247,5.893]],["body/controllers/UserMigrationController.html",[0,0.284,3,0.022,4,0.022,5,0.012,7,0.128,8,1.288,27,0.347,29,0.663,30,0.001,31,0.468,32,0.117,33,0.417,35,1.009,36,2.318,52,4.947,95,0.168,100,2.796,101,0.016,102,4.214,103,0.001,104,0.001,111,1.671,112,2.635,187,1.196,206,4.276,215,2.703,216,1.972,217,1.406,221,1.969,227,0.88,355,4.62,364,1.548,376,1.959,447,3.502,461,1.925,481,3.256,483,4.02,529,3.684,555,4.409,1016,3.808,2344,4.855,2769,4.127,4442,4.704,12306,7.296,15735,6.733,16010,8.33,16021,9.822,16025,8.915,16030,10.811,20030,7.296,20246,8.596,20247,9.315,20252,9.851,20253,7.715,20571,10.663,20572,8.352,20573,10.663,20574,8.352,20575,10.663,20576,8.352,20577,8.352,20578,8.352,20579,8.352,20580,8.352,20581,8.352,20582,8.352,20583,8.352]],["title/classes/UserMigrationIsNotEnabled.html",[0,0.23,20584,6.231]],["body/classes/UserMigrationIsNotEnabled.html",[0,0.322,2,1.088,3,0.025,4,0.025,5,0.013,7,0.146,8,1.393,27,0.393,30,0.001,35,1.144,52,5.77,95,0.121,101,0.018,103,0.001,104,0.001,192,2.825,214,3.796,227,0.998,461,2.183,1134,6.367,1299,4.395,1327,3.742,1542,5.804,1543,6.464,1545,3.026,1547,6.44,4442,5.088,6589,6,8137,6.464,8138,6.729,10363,7.021,20584,10.655,20585,11.535,20586,9.473,20587,9.473,20588,9.473]],["title/classes/UserMigrationMapper.html",[0,0.23,15733,5.893]],["body/classes/UserMigrationMapper.html",[0,0.323,2,1.09,3,0.025,4,0.025,5,0.013,7,0.146,8,1.395,27,0.394,29,0.753,30,0.001,31,0.532,32,0.133,33,0.474,35,1.147,95,0.148,100,3.179,101,0.018,103,0.001,104,0.001,217,1.252,227,1.001,234,1.541,355,3.734,627,3.877,982,4.757,1016,4.125,2211,6.186,4561,5.053,13474,9.193,14480,10.091,14481,10.091,15725,11.1,15730,8.295,15733,10.091,20368,8.771,20589,11.551,20590,9.495,20591,9.495]],["title/classes/UserMigrationResponse.html",[0,0.23,15725,5.64]],["body/classes/UserMigrationResponse.html",[0,0.337,2,1.139,3,0.026,4,0.026,5,0.014,7,0.152,27,0.492,29,0.787,30,0.001,31,0.556,32,0.166,33,0.496,47,0.863,101,0.019,103,0.001,104,0.001,127,1.253,165,0.936,405,3.196,595,3.414,2211,8.265,2227,8.291,15725,11.233,20415,9.16,20592,12.685,20593,9.916,20594,9.916,20595,9.916]],["title/injectables/UserMigrationService.html",[105,0.89,15046,5.27]],["body/injectables/UserMigrationService.html",[0,0.11,3,0.009,4,0.009,5,0.005,7,0.05,8,0.64,26,1.628,27,0.488,29,0.809,30,0.001,31,0.572,32,0.162,33,0.51,35,1.232,36,2.363,47,1.013,52,1.5,55,0.711,59,1.646,66,6.887,83,0.973,85,4.876,94,4.398,95,0.151,99,0.549,101,0.006,102,1.631,103,0,104,0,105,0.699,107,0.774,111,2.654,112,2.673,127,0.67,128,2.606,129,4.815,132,3.405,144,1.843,150,2.473,154,1.474,165,0.418,167,1.234,187,0.463,189,2.973,191,1.796,192,2.326,204,1.819,216,2.315,217,1.638,221,2.626,227,1.146,234,1.907,256,2.702,305,1.94,307,2.021,309,3.815,329,2.298,355,4.794,369,0.715,461,0.745,784,1.706,818,7.081,1052,2.748,1053,3.459,1062,2.314,1114,1.311,1158,1.72,1195,2.606,1327,1.277,1545,1.033,1661,2.106,1807,2.525,1808,2.396,1919,2.202,2113,4.27,2138,2.396,2171,1.389,2172,1.546,2173,1.491,2211,4.392,2344,3.824,2400,3.03,2685,1.847,2686,1.72,3372,3.625,3544,2.202,3898,1.764,4442,5.256,4561,1.72,4579,2.606,4640,3.564,4809,2.456,5382,1.847,5453,2.173,6067,4.459,6896,2.076,6902,4.692,6938,6.653,6943,2.525,7219,3.315,7785,2.525,8291,6.858,8300,3.315,8836,2.076,9713,2.342,11270,2.396,11826,3.842,12089,2.702,12121,5.636,12145,5.959,12585,4.274,12589,4.142,12609,4.898,12900,2.606,13173,2.702,13302,2.294,13474,7.904,13623,4.632,14467,2.824,14468,2.606,14477,8.547,15045,7.081,15046,4.142,15058,6.941,15072,6.219,15091,4.898,15109,6.227,15128,6.227,15129,2.986,15617,2.456,15694,4.898,16010,7.634,16013,5.636,16014,5.636,16027,2.986,16033,5.889,16034,2.606,16035,2.606,16036,6.814,16042,2.824,17600,6.227,17604,6.227,17612,9.123,20340,6.093,20422,10.409,20457,4.898,20491,2.986,20495,4.898,20503,4.898,20596,7.8,20597,5.302,20598,5.302,20599,5.302,20600,7.8,20601,5.302,20602,3.232,20603,3.232,20604,3.232,20605,3.232,20606,5.302,20607,3.232,20608,5.302,20609,7.8,20610,3.232,20611,3.232,20612,3.232,20613,5.302,20614,3.232,20615,3.232,20616,8.611,20617,3.232,20618,6.741,20619,3.232,20620,3.232,20621,3.232,20622,3.232,20623,3.232,20624,3.232,20625,3.232,20626,6.741,20627,5.302,20628,3.232,20629,3.232,20630,3.232,20631,3.232,20632,3.232,20633,3.232,20634,3.232,20635,3.232,20636,3.232,20637,3.232,20638,3.232,20639,6.741,20640,3.232,20641,3.232,20642,3.232,20643,3.232,20644,3.232,20645,2.986,20646,3.232,20647,3.232,20648,3.232,20649,3.232,20650,3.232,20651,3.232,20652,5.302,20653,3.232,20654,3.232,20655,3.232,20656,3.232,20657,5.302,20658,3.232,20659,3.232,20660,3.232,20661,3.232,20662,3.232,20663,3.232,20664,3.232,20665,3.232,20666,3.232,20667,3.232,20668,3.232,20669,3.232,20670,3.232,20671,3.232,20672,3.232,20673,3.232]],["title/modules/UserModule.html",[425,1.808,4551,4.395]],["body/modules/UserModule.html",[0,0.269,3,0.021,4,0.021,5,0.011,30,0.001,95,0.17,101,0.015,103,0.001,104,0.001,187,1.131,191,4.385,192,2.354,425,3.066,427,2.918,428,3.078,429,3.174,430,3.159,431,3.131,432,4.227,433,4.313,437,9.141,438,6.085,441,8.385,442,4.134,443,3.104,444,3.026,449,4.134,450,3.247,1545,2.522,1625,9.788,1642,6.895,1951,8.272,4551,9.207,4615,7.291,12145,8.385,20079,10.769,20674,7.893,20675,7.893,20676,7.893,20677,7.893,20678,7.893,20679,7.291,20680,7.291,20681,7.893]],["title/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.23,15073,5.893]],["body/classes/UserNotFoundAfterProvisioningLoggableException.html",[0,0.248,2,0.836,3,0.019,4,0.019,5,0.01,7,0.112,8,1.177,26,2.449,27,0.523,29,0.577,30,0.001,31,0.408,32,0.172,33,0.364,35,0.879,47,0.974,48,5.51,59,2.259,95,0.141,99,1.235,101,0.014,103,0.001,104,0.001,111,2.198,127,1.232,144,2.664,163,2.296,165,0.769,192,2.171,204,2.497,214,3.208,216,2.494,227,0.767,329,2.872,404,1.762,406,2.325,417,5.395,461,1.678,511,5.625,596,3.564,1327,4.34,1542,5.128,1543,5.711,1545,2.325,1547,5.839,3060,5.166,3888,5.686,4630,3.783,5378,4.893,5382,5.57,6589,4.611,6706,4.55,8137,5.711,8138,5.945,8291,7.386,8294,6.359,8300,7.336,8304,5.395,8530,4.675,8532,5.274,8533,6.359,8537,4.291,8538,4.493,10705,7.062,10950,9.126,10952,5.531,14990,8.514,14991,8.514,14992,8.149,15026,6.724,15027,6.086,15073,8.514,15098,6.086,20682,10.988,20683,10.988,20684,7.279,20685,7.279,20686,7.279,20687,7.279,20688,7.279,20689,7.279]],["title/classes/UserParams.html",[0,0.23,850,5.438]],["body/classes/UserParams.html",[0,0.398,2,1.111,3,0.026,4,0.026,5,0.014,7,0.149,27,0.402,30,0.001,32,0.136,34,2.006,39,3.365,47,0.851,95,0.15,101,0.018,103,0.001,104,0.001,165,0.922,361,6.433,364,1.794,368,4.616,369,2.583,370,3.899,371,3.221,374,3.092,376,2.27,379,2.231,461,2.694,467,3.141,850,9.42,1000,4.997,3834,5.644,20690,9.678,20691,9.678]],["title/injectables/UserRepo.html",[105,0.89,441,4.113]],["body/injectables/UserRepo.html",[0,0.129,3,0.01,4,0.01,5,0.005,7,0.058,8,0.728,10,2.435,12,2.781,18,2.98,26,1.786,27,0.485,29,0.885,30,0.001,31,0.626,32,0.156,33,0.558,34,1.035,35,1.381,36,2.714,40,2.902,47,0.813,48,4.018,49,1.478,55,0.834,56,1.824,59,1.871,70,1.899,72,2.831,95,0.134,96,1.63,97,1.612,98,2.258,99,0.643,101,0.007,103,0,104,0,105,0.795,107,0.907,111,1.502,112,2.907,144,1.036,148,1.173,167,2.302,187,0.543,192,2.552,217,1.675,221,2.553,227,1.049,234,0.978,247,3.707,305,1.09,307,3.769,309,5.288,329,2.212,367,2.902,369,1.333,371,1.662,380,0.793,381,1.984,398,1.11,404,1.09,425,1.616,441,3.677,461,2.405,496,3.606,558,1.801,577,4.799,596,2.599,692,4.351,701,3.476,731,2.94,779,2.809,844,3.88,851,1.86,852,1.86,853,3.064,854,3.042,877,6.086,879,6.936,881,5.57,883,2.528,884,2.848,885,3.736,905,1.574,908,2.311,909,2.339,910,2.311,911,2.339,913,2.311,914,2.339,915,2.086,919,2.879,929,3.31,1008,2.068,1015,2.105,1062,2.632,1277,1.955,1278,4.063,1285,6.202,1298,3.525,1299,3.483,1300,3.483,1301,3.686,1302,2.033,1303,2.591,1306,2.879,1576,2.284,1919,1.574,1921,2.507,2185,3.413,2422,3.677,3091,4.26,3110,3.638,3394,4.122,4227,2.076,4628,6.18,4630,1.969,5147,6.202,5369,4.822,5784,4.992,6487,2.311,6556,3.168,6658,2.879,6774,5.329,6775,5.283,6785,4.469,6805,2.809,6806,2.809,6844,2.469,6845,4.86,7633,4.197,8686,4.581,9181,3.168,9562,2.879,9975,3.349,10061,6.559,11419,3.501,11458,9.055,11459,2.689,11486,3.31,11497,6.899,12386,2.96,12440,2.96,12527,3.501,12539,3.168,12540,3.501,12542,3.501,12547,3.31,12548,3.501,13302,2.689,13337,5.041,19394,5.267,19396,5.267,19692,3.501,19693,3.501,20082,5.57,20089,5.57,20108,3.501,20111,3.501,20117,3.501,20119,3.501,20692,3.789,20693,5.57,20694,7.509,20695,5.57,20696,3.789,20697,3.789,20698,3.789,20699,3.789,20700,3.789,20701,3.789,20702,3.789,20703,3.789,20704,3.789,20705,3.789,20706,3.789,20707,3.789,20708,3.789,20709,5.57,20710,3.789,20711,3.789,20712,6.029,20713,6.029,20714,6.029,20715,3.789,20716,3.789,20717,7.509,20718,3.789,20719,3.789,20720,3.789,20721,6.029,20722,3.789,20723,3.789,20724,3.168,20725,6.029,20726,3.789,20727,3.789,20728,6.029,20729,3.789,20730,3.789,20731,6.029,20732,6.029,20733,6.029,20734,6.029,20735,6.029,20736,6.029,20737,6.029,20738,7.509,20739,3.789,20740,3.789,20741,3.789,20742,3.789,20743,3.789,20744,3.789]],["title/injectables/UserRule.html",[105,0.89,1975,5.64]],["body/injectables/UserRule.html",[0,0.271,3,0.021,4,0.021,5,0.011,7,0.123,8,1.25,27,0.477,29,0.911,30,0.001,31,0.644,32,0.161,33,0.574,35,1.25,95,0.156,101,0.015,103,0.001,104,0.001,105,1.365,107,1.908,116,4.181,127,1.007,187,1.142,199,4.387,214,2.624,215,2.58,216,1.474,217,1.515,227,1.091,347,2.479,380,2.788,461,3.237,806,3.359,1862,6.695,1890,8.181,1911,4.921,1928,7.507,1975,8.652,1989,6.388,2033,6.742,2056,5.358,3352,6.955,3353,5.449,3356,6.845,3358,5.449,3359,5.358,3360,7.074,3361,6.057,20745,7.971,20746,7.971,20747,7.971,20748,7.971,20749,10.348]],["title/classes/UserScope.html",[0,0.23,20097,5.893]],["body/classes/UserScope.html",[0,0.208,2,0.7,3,0.016,4,0.016,5,0.009,7,0.094,8,1.042,26,2.272,27,0.536,29,0.973,30,0.001,31,0.688,32,0.181,33,0.613,35,1.481,59,3.566,83,4.113,95,0.111,99,1.035,101,0.012,103,0.001,104,0.001,111,2.386,144,1.667,145,2.965,148,1.887,165,0.681,192,1.818,227,1.211,277,5.099,329,1.797,347,2.431,371,1.681,404,1.56,450,2.509,461,1.406,529,2.69,596,3.489,1121,6.006,2432,5.967,4227,3.447,5872,5.899,5873,5.899,5874,5.899,5879,5.899,5880,5.899,5881,4.245,5882,4.169,5883,4.245,5884,4.245,5893,4.169,5894,5.899,5895,4.245,5896,4.169,5897,4.245,5898,4.169,5899,7.853,6369,7.255,6796,4.916,9892,7.537,9901,7.537,11737,9.604,12100,7.608,12101,6.395,13938,5.327,17657,10.612,20097,11.519,20104,7.971,20750,6.098,20751,8.628,20752,8.628,20753,6.098,20754,8.628,20755,6.098,20756,8.628,20757,6.098,20758,8.628,20759,6.098,20760,8.628,20761,6.098,20762,8.628]],["title/injectables/UserService.html",[105,0.89,12145,4.113]],["body/injectables/UserService.html",[0,0.139,3,0.011,4,0.011,5,0.006,7,0.063,8,0.773,12,2.953,18,3.164,26,2.563,27,0.51,29,0.974,30,0.001,31,0.689,32,0.172,33,0.614,34,1.099,35,1.463,36,2.913,39,2.116,40,3.082,47,0.894,48,4.192,59,1.269,66,4.056,94,1.944,95,0.165,99,0.694,101,0.008,102,2.064,103,0,104,0,105,0.845,107,0.979,111,2.225,112,3.066,127,0.809,148,1.981,187,0.586,216,1.793,217,1.686,221,2.696,227,1.256,234,0.664,305,1.177,336,0.997,347,1.609,369,2.143,383,2.665,441,6.269,450,1.683,461,2.865,491,3.143,529,1.804,559,2.232,701,3.119,789,6.901,801,2.385,818,7.786,853,2.079,854,2.064,1014,3.143,1195,3.297,1242,3.778,1807,3.195,1808,3.031,1913,3.573,1916,3.102,2392,4.457,2685,4.51,3091,3.598,4092,2.796,4220,2.847,4221,8.165,4507,5.718,4518,3.195,4621,8.165,4644,3.419,5602,3.208,6539,5.996,6775,5.512,6929,3.108,6938,6.857,6942,4.544,6943,3.195,6948,3.573,8425,3.573,9346,5.594,11748,3.297,12145,3.905,13139,3.031,13140,4.64,13346,3.573,13538,5.594,13542,5.594,15959,5.915,16614,3.573,20033,5.915,20079,8.984,20086,8.249,20096,3.778,20109,3.778,20158,6.598,20179,3.573,20536,3.573,20679,3.778,20680,3.778,20693,5.915,20695,5.915,20763,4.09,20764,6.404,20765,6.404,20766,6.404,20767,6.404,20768,5.915,20769,4.09,20770,6.404,20771,4.09,20772,4.09,20773,4.09,20774,4.09,20775,6.404,20776,4.09,20777,6.404,20778,4.09,20779,6.404,20780,4.09,20781,6.404,20782,4.09,20783,5.915,20784,4.09,20785,5.915,20786,8.929,20787,4.09,20788,6.404,20789,4.09,20790,6.404,20791,4.09,20792,4.09,20793,4.09,20794,4.09,20795,4.09,20796,4.09,20797,4.09,20798,4.09,20799,4.09,20800,6.404,20801,4.09,20802,4.09,20803,4.09,20804,4.09,20805,4.09,20806,6.404,20807,4.09,20808,4.09,20809,4.09,20810,4.09,20811,4.09,20812,3.778,20813,4.09,20814,3.778]],["title/injectables/UserUc.html",[105,0.89,12313,5.438]],["body/injectables/UserUc.html",[0,0.25,3,0.02,4,0.02,5,0.01,7,0.113,8,1.186,26,2.691,27,0.489,29,0.935,30,0.001,31,0.661,32,0.165,33,0.589,35,1.334,36,2.562,39,2.632,95,0.162,99,1.249,101,0.014,103,0.001,104,0.001,105,1.295,107,1.761,111,2.358,112,2.834,127,0.93,148,3.038,185,4.326,187,1.054,204,3.368,215,2.382,216,1.816,217,1.457,221,2.605,227,1.035,234,1.194,305,2.117,336,1.793,369,2.17,383,4.795,441,7.703,450,3.027,461,2.717,789,8.282,801,4.292,982,3.687,1913,6.429,1916,4.756,2685,4.206,4218,9.855,4221,8.956,6539,7.46,11748,5.932,12313,7.914,16614,6.429,20179,6.429,20768,9.069,20783,9.069,20785,9.069,20812,6.798,20814,6.798,20815,7.359,20816,9.818,20817,7.359,20818,9.818,20819,7.359,20820,7.359,20821,7.359,20822,7.359,20823,7.359,20824,7.359,20825,7.359]],["title/classes/ValidationError.html",[0,0.23,503,4.066]],["body/classes/ValidationError.html",[0,0.263,2,0.887,3,0.02,4,0.02,5,0.011,7,0.119,8,1.225,27,0.542,29,0.613,30,0.001,31,0.433,32,0.189,33,0.566,35,0.933,47,0.932,55,1.7,59,2.398,95,0.13,101,0.015,103,0.001,104,0.001,127,0.976,165,0.8,187,1.107,204,4.281,216,2.5,364,2.313,404,1.833,406,2.468,503,6.111,564,2.868,596,3.889,1013,5.51,1016,2.759,1253,5.22,1291,5.113,1327,5.058,1472,8.267,1473,7.459,1474,4.079,1475,7.268,1479,5.034,1480,4.332,1481,5.034,1482,5.034,1483,5.034,1484,5.034,1485,5.034,1486,4.712,1487,4.416,1488,6.036,1489,6.46,1492,4.657,1493,4.894,1494,6.228,1884,6.228,20826,7.726,20827,7.726,20828,7.726]],["title/classes/ValidationErrorDetailResponse.html",[0,0.23,1504,5.893]],["body/classes/ValidationErrorDetailResponse.html",[0,0.343,2,1.159,3,0.027,4,0.027,5,0.014,27,0.419,29,0.8,30,0.001,31,0.566,32,0.141,33,0.504,47,0.997,101,0.019,103,0.001,104,0.001,127,1.275,204,4.111,216,1.866,1489,8.436,1500,8.59,1504,10.466,11485,8.88,20829,11.981,20830,10.09,20831,10.09,20832,10.09]],["title/modules/ValidationModule.html",[425,1.808,6323,5.64]],["body/modules/ValidationModule.html",[0,0.344,3,0.027,4,0.027,5,0.014,30,0.001,95,0.164,101,0.019,103,0.001,104,0.001,187,1.449,425,3.217,427,3.74,432,3.74,836,5.839,6323,10.032,6336,11.084,8217,7.686,8221,7.686,10527,10.482,20833,10.116,20834,10.116,20835,10.116]],["title/entities/VideoConference.html",[380,1.411,6423,4.113]],["body/entities/VideoConference.html",[0,0.353,3,0.021,4,0.021,5,0.011,7,0.187,27,0.478,30,0.001,32,0.171,47,0.755,95,0.133,96,2.163,101,0.023,103,0.001,104,0.001,165,0.908,216,1.48,240,4.051,347,2.346,364,2.134,380,2.17,381,2.634,396,6.252,398,2.344,399,4.063,400,3.512,402,3.292,404,1.447,405,2.157,406,2.557,701,4.254,1031,2.565,2744,5.431,3401,5.932,5044,6.451,6423,6.327,6424,6.051,6730,7.103,6756,5.571,7869,4.446,7871,5.214,7890,5.471,7891,5.471,7892,5.799,11618,8.363,14661,6.252,14817,9.28,20836,11.251,20837,7.393,20838,8.825,20839,8.003,20840,8.003,20841,8.003,20842,6.991,20843,7.393,20844,7.393,20845,6.451,20846,6.691,20847,6.451,20848,6.252,20849,9.063,20850,7.393,20851,7.393,20852,7.393,20853,7.393,20854,7.393]],["title/classes/VideoConference-1.html",[0,0.191,905,2.329,6423,3.42]],["body/classes/VideoConference-1.html",[0,0.3,2,1.012,3,0.023,4,0.023,5,0.012,7,0.135,27,0.524,29,0.699,30,0.001,31,0.494,32,0.177,33,0.602,95,0.154,99,1.495,100,2.949,101,0.017,103,0.001,104,0.001,127,1.113,165,0.87,460,6.881,843,5.786,2090,6.604,2100,6.132,2106,5.192,2278,10.072,3929,9.221,6423,7.924,7869,4.893,7871,5.739,7882,6.529,7884,7.101,20855,11.351,20856,8.809,20857,11.029,20858,8.809,20859,8.924,20860,8.809,20861,8.138,20862,8.138,20863,8.809,20864,8.809,20865,8.138]],["title/modules/VideoConferenceApiModule.html",[425,1.808,17776,5.438]],["body/modules/VideoConferenceApiModule.html",[0,0.28,3,0.022,4,0.022,5,0.012,30,0.001,95,0.167,101,0.016,103,0.001,104,0.001,187,1.177,425,3.125,427,3.037,428,3.203,429,3.303,430,3.288,431,3.259,432,4.309,433,3.098,442,4.242,443,3.231,444,3.15,446,5.204,447,4.424,449,4.242,481,3.203,1945,7.045,2090,4.175,2767,3.704,2769,4.06,4551,8.483,4561,4.372,7869,4.564,7871,5.353,17776,11.383,17799,6.623,20866,8.215,20867,8.215,20868,8.215,20869,10.886,20870,10.886,20871,10.886,20872,10.886,20873,10.886,20874,9.746,20875,8.215]],["title/classes/VideoConferenceBaseResponse.html",[0,0.23,7872,5.27]],["body/classes/VideoConferenceBaseResponse.html",[0,0.379,2,1.418,3,0.02,4,0.02,5,0.011,7,0.115,27,0.492,29,0.594,30,0.001,31,0.42,32,0.166,33,0.557,47,0.811,95,0.127,99,1.27,101,0.021,102,5.987,103,0.001,104,0.001,127,0.945,150,2.744,165,0.783,234,1.926,347,2.271,404,1.795,460,6.367,564,4.135,574,5.379,701,2.613,843,5.54,1016,4.237,1289,4.805,2078,4.364,2090,6.275,2477,7.324,6090,4.156,7867,7.755,7868,9.646,7869,7.466,7870,6.536,7871,8.045,7872,10.116,7873,9.269,7875,5.685,7878,8.98,7881,6.256,7882,5.546,7883,6.256,7884,6.032,7885,6.536,7886,8.002,7887,8.672,7888,6.256,7889,5.31,7890,5.115,7891,5.115,7892,5.421,7893,6.256,20876,9.927,20877,7.482,20878,7.482]],["title/classes/VideoConferenceConfiguration.html",[0,0.23,20879,5.893]],["body/classes/VideoConferenceConfiguration.html",[0,0.288,2,0.971,3,0.022,4,0.022,5,0.012,7,0.13,27,0.446,30,0.001,32,0.151,47,0.982,95,0.151,101,0.016,103,0.001,104,0.001,144,2.938,165,0.848,329,3.481,334,0.932,347,2.191,627,4.085,1415,6.478,2090,6.005,2106,7.733,2171,3.635,2172,4.045,2173,3.901,2287,8.665,2288,9.39,2290,9.525,3898,4.615,4809,8.168,6423,7.206,7869,6.564,10474,8.397,11092,5.887,12119,9.879,12121,8.987,17799,9.525,20879,9.39,20880,10.749,20881,10.749,20882,10.749,20883,8.457,20884,10.749,20885,9.93,20886,8.457]],["title/controllers/VideoConferenceController.html",[481,2.63,20874,5.64]],["body/controllers/VideoConferenceController.html",[0,0.128,3,0.023,4,0.01,5,0.005,7,0.058,8,0.725,27,0.354,29,0.858,30,0.001,31,0.479,32,0.152,33,0.427,35,1.433,36,2.35,95,0.149,100,2.506,101,0.007,103,0,104,0,111,1.708,112,2.662,127,0.477,145,3.22,163,3.41,185,2.931,187,0.54,204,1.294,216,1.579,217,1.469,221,2.012,227,0.633,234,1.611,264,3.947,305,1.085,334,0.416,364,1.582,367,4.109,368,4.271,376,0.885,379,3.168,447,1.581,461,2.492,481,1.471,483,1.815,491,5.914,504,7.834,513,6.168,538,2.693,543,3.01,553,5.827,554,7.975,555,1.991,556,2.041,557,2.058,559,2.058,561,2.058,563,5.269,564,4.711,574,4.902,843,4.72,883,2.519,1021,4.96,1487,2.156,1494,6.881,1510,7.14,1555,5.336,1822,2.677,2090,4.737,2186,6.849,2230,8.467,2267,8.449,2282,6.674,2296,6.058,2303,5.247,2321,5.646,2450,3.805,2723,8.716,2769,1.864,2835,3.58,3060,7.673,4038,2.328,6491,2.248,7869,7.42,7871,8.387,7875,6.486,8536,7.137,9935,6.327,10381,2.866,10382,7.885,12583,3.295,17738,8.467,20838,6.185,20870,6.258,20871,6.258,20872,6.258,20873,6.258,20874,5.022,20887,8.611,20888,3.772,20889,3.772,20890,3.484,20891,11.867,20892,10.525,20893,3.772,20894,9.173,20895,3.772,20896,7.885,20897,3.772,20898,3.484,20899,3.772,20900,3.772,20901,3.772,20902,3.772,20903,3.772,20904,3.772,20905,6.007,20906,3.772,20907,3.772,20908,3.772,20909,6.881,20910,3.772,20911,6.007,20912,3.772,20913,3.153,20914,3.04,20915,2.946,20916,4.564,20917,4.564,20918,6.258,20919,6.258,20920,3.484,20921,3.772,20922,3.772,20923,8.536,20924,3.484,20925,3.772,20926,6.007,20927,3.772,20928,8.536,20929,8.536,20930,3.772,20931,3.772,20932,3.772,20933,3.772,20934,3.772,20935,3.772,20936,3.772,20937,3.772,20938,3.772,20939,3.772,20940,3.772]],["title/classes/VideoConferenceCreateParams.html",[0,0.23,20909,5.438]],["body/classes/VideoConferenceCreateParams.html",[0,0.341,2,0.871,3,0.02,4,0.02,5,0.011,7,0.117,27,0.495,30,0.001,32,0.167,33,0.659,47,0.729,95,0.144,101,0.014,103,0.001,104,0.001,150,4.375,165,0.79,329,3.303,334,0.835,346,6.73,347,2.596,364,2.211,371,2.09,373,6.296,374,2.422,375,5.031,376,1.778,379,1.747,444,3.839,471,5.277,1327,3.955,1480,4.25,1555,6.26,2090,6.302,2113,7.102,2298,6.035,2485,4.326,3091,4.565,3544,4.158,7869,7.216,7889,7.957,7890,7.665,7891,7.665,8455,6.111,8462,7.003,13234,9.25,16048,9.25,19654,8.072,20909,8.072,20941,11.455,20942,11.212,20943,11.212,20944,7.581,20945,7.581,20946,10.013,20947,8.747,20948,10.013,20949,10.013,20950,7.581,20951,7.581,20952,7.581,20953,10.013,20954,6.338,20955,6.622,20956,6.622,20957,6.622,20958,7.581]],["title/injectables/VideoConferenceCreateUc.html",[105,0.89,20870,5.64]],["body/injectables/VideoConferenceCreateUc.html",[0,0.179,3,0.014,4,0.014,5,0.007,7,0.081,8,0.935,26,2.445,27,0.47,29,0.899,30,0.001,31,0.657,32,0.159,33,0.566,35,1.307,36,2.462,47,0.825,95,0.154,99,0.891,100,1.757,101,0.01,103,0,104,0,105,1.021,107,1.256,111,2.632,112,2.754,127,0.978,145,2.374,148,1.624,187,0.752,216,1.701,217,1.428,221,2.894,227,0.553,234,1.256,277,4.914,305,1.51,334,0.578,461,1.21,496,3.261,701,4.475,766,2.255,784,4.086,883,3.245,947,4.584,1021,2.792,1158,4.119,1252,3.127,1714,8.868,2037,3.029,2089,5.737,2090,5.954,2094,5.493,2106,3.093,2107,4.099,2112,4.584,2152,9.895,2175,8.208,2190,4.099,2218,4.584,2252,8.457,2278,5.881,2280,8.607,2400,2.999,2526,3.324,4000,3.28,4227,1.807,4561,2.792,4640,6.181,6423,3.2,6938,4.381,7869,6.508,11741,8.457,12145,7.144,13931,4.847,15617,3.987,17738,9.487,20838,9.046,20848,4.099,20870,6.471,20959,9.795,20960,5.247,20961,7.74,20962,9.196,20963,7.74,20964,7.74,20965,4.387,20966,8.902,20967,5.247,20968,7.74,20969,5.247,20970,7.74,20971,5.247,20972,5.247,20973,9.051,20974,5.247,20975,7.74,20976,5.247,20977,7.74,20978,5.247,20979,4.23,20980,4.847,20981,5.247,20982,7.689,20983,5.247,20984,5.247,20985,4.847,20986,7.689,20987,4.847,20988,4.387,20989,5.247,20990,5.247,20991,9.196,20992,5.247,20993,5.247,20994,5.247,20995,5.247,20996,5.247,20997,5.247,20998,4.584,20999,5.247,21000,5.247,21001,4.584]],["title/classes/VideoConferenceDO.html",[0,0.23,21002,5.126]],["body/classes/VideoConferenceDO.html",[0,0.362,2,0.955,3,0.022,4,0.022,5,0.012,7,0.128,27,0.53,29,0.66,30,0.001,31,0.466,32,0.179,33,0.586,34,1.825,47,0.854,95,0.136,101,0.02,103,0.001,104,0.001,127,1.051,165,0.839,347,2.39,404,1.923,596,2.526,701,4.095,1857,3.557,1939,7.133,2744,5.228,5044,6.705,5612,6.027,6730,6.838,6756,5.789,7036,6.32,7039,8.308,7040,6.498,7869,4.62,7889,5.902,7890,5.686,7891,5.686,7892,6.027,14661,6.498,17739,8.69,20845,6.705,20846,6.954,20847,6.705,20848,6.498,20998,7.266,21002,9.704,21003,11.797,21004,7.683,21005,10.635,21006,9.961,21007,8.317,21008,8.317,21009,7.683,21010,7.683,21011,7.266,21012,7.683,21013,7.683,21014,7.683]],["title/controllers/VideoConferenceDeprecatedController.html",[481,2.63,21015,5.893]],["body/controllers/VideoConferenceDeprecatedController.html",[0,0.149,3,0.025,4,0.012,5,0.006,7,0.067,8,0.814,10,1.765,27,0.342,29,0.838,30,0.001,31,0.462,32,0.187,33,0.411,35,1.33,36,2.296,47,0.85,95,0.158,100,3.098,101,0.008,102,4.153,103,0,104,0,112,2.617,163,3.332,185,3.223,187,0.626,215,1.414,216,0.808,217,1.22,221,2.357,227,0.867,264,1.85,277,5.046,334,0.481,364,1.526,368,4.173,376,1.025,379,3.053,447,1.832,461,2.435,481,3.209,483,2.103,491,5.849,498,4.609,502,6.604,504,7.655,506,6.883,513,6.1,538,3.023,543,3.378,553,5.784,554,7.682,555,2.307,556,2.364,557,2.385,561,2.385,563,5.081,564,4.422,574,3.056,843,4.611,883,2.827,1439,5.266,1510,7.108,1555,4.214,1822,3.101,2037,6.356,2090,4.702,2100,3.042,2106,2.576,2230,5.123,2267,6.704,2282,5.532,2296,6.566,2303,5.889,2321,5.444,2477,4.161,2478,3.853,2685,6.292,2723,8.516,2769,2.159,2955,2.473,3060,7.497,3673,2.987,4821,2.697,6423,5.019,7867,6.43,7869,7.071,7871,7.763,7872,3.414,7889,3.101,7890,2.987,7891,2.987,8210,8.253,9369,9.848,17739,8.831,20859,3.239,20874,5.636,20887,8.547,20890,4.037,20894,9.759,20896,7.603,20898,4.037,20909,7.459,20916,6.254,20917,5.123,20920,4.037,20954,3.653,20955,3.817,20956,3.817,20957,3.817,21015,5.889,21016,4.37,21017,8.231,21018,4.37,21019,4.37,21020,4.37,21021,4.37,21022,4.37,21023,4.37,21024,4.37,21025,4.37,21026,4.37,21027,3.817,21028,4.37,21029,6.228,21030,4.37,21031,4.037,21032,4.37,21033,4.37,21034,4.37,21035,8.231,21036,8.231,21037,4.37,21038,6.742,21039,4.37,21040,3.653,21041,4.37,21042,4.037,21043,4.037,21044,4.037,21045,4.37,21046,4.37,21047,4.37,21048,4.37,21049,4.37,21050,4.37,21051,4.37]],["title/injectables/VideoConferenceEndUc.html",[105,0.89,20871,5.64]],["body/injectables/VideoConferenceEndUc.html",[0,0.241,3,0.019,4,0.019,5,0.01,7,0.109,8,1.156,26,2.423,27,0.397,29,0.759,30,0.001,31,0.537,32,0.134,33,0.478,35,0.856,36,2.081,39,1.9,47,0.697,95,0.166,99,1.203,100,2.373,101,0.014,103,0.001,104,0.001,105,1.262,107,1.696,111,2.168,112,2.432,127,1.21,154,3.231,187,1.015,216,2.005,217,1.684,221,2.858,227,0.747,234,1.759,277,4.339,305,2.039,460,4.05,461,1.634,738,4.091,766,3.046,843,3.093,2037,4.091,2089,8.034,2090,5.509,2094,5.029,2100,4.933,2106,4.177,2107,5.536,2175,8.411,2190,5.536,2278,8.821,2280,9.494,2282,6.434,4561,3.771,4640,4.763,6423,7.079,6938,5.418,7869,6.022,11741,7.478,12145,7.789,15617,5.385,17738,8.821,17798,5.713,20859,5.253,20871,8.003,20914,5.713,20915,5.536,20959,9.063,20965,5.925,20966,9.705,20973,5.925,20979,5.713,20982,8.003,20986,8.003,20988,5.925,21001,6.191,21052,7.087,21053,7.087,21054,9.572,21055,7.087,21056,6.191,21057,5.925,21058,6.191,21059,7.087,21060,7.087,21061,7.087,21062,6.547,21063,6.547]],["title/classes/VideoConferenceInfo.html",[0,0.23,20916,5.126]],["body/classes/VideoConferenceInfo.html",[0,0.268,2,0.905,3,0.021,4,0.021,5,0.011,7,0.121,27,0.552,29,0.625,30,0.001,31,0.442,32,0.18,33,0.394,34,1.762,47,0.748,49,3.072,83,3.09,95,0.146,100,2.637,101,0.015,103,0.001,104,0.001,127,0.995,144,2.807,165,0.81,234,1.666,240,3.218,329,3.025,334,0.868,364,2.387,396,6.154,399,4.741,404,1.856,591,4.391,592,4.53,596,3.982,701,3.991,1278,5.556,2090,5.219,2106,4.643,2252,6.154,2495,6.882,2497,6.882,2523,7.277,2744,4.579,3929,8.585,6423,7.851,6730,5.989,7869,6.347,7871,5.133,7892,5.708,11367,6.882,14817,6.35,20838,8.278,20855,8.971,20916,9.54,21064,7.878,21065,7.878,21066,7.878,21067,7.878,21068,7.878,21069,7.878,21070,7.878,21071,7.878,21072,7.878,21073,7.878]],["title/classes/VideoConferenceInfoResponse.html",[0,0.23,20918,5.64]],["body/classes/VideoConferenceInfoResponse.html",[0,0.287,2,0.967,3,0.022,4,0.022,5,0.012,7,0.129,27,0.489,29,0.668,30,0.001,31,0.472,32,0.165,33,0.421,95,0.151,101,0.016,103,0.001,104,0.001,127,1.064,165,0.846,364,1.987,376,1.975,379,2.718,460,7.327,467,3.17,701,4.478,1013,3.862,1031,2.699,2090,6.309,2254,6.789,2914,5.409,2915,5.659,7868,9.698,7869,7.619,7871,8.538,7873,8.375,7875,6.399,7878,10.735,7881,7.041,7882,6.242,7883,7.041,7892,6.102,7893,7.041,20208,9.903,20918,10.718,21074,9.86,21075,8.422,21076,7.78]],["title/injectables/VideoConferenceInfoUc.html",[105,0.89,20872,5.64]],["body/injectables/VideoConferenceInfoUc.html",[0,0.202,3,0.016,4,0.016,5,0.008,7,0.091,8,1.023,26,2.246,27,0.41,29,0.783,30,0.001,31,0.554,32,0.138,33,0.493,35,1.023,36,2.339,95,0.162,99,1.009,100,1.99,101,0.011,103,0.001,104,0.001,105,1.118,107,1.423,111,2.366,112,2.653,127,1.071,154,2.711,187,0.852,216,1.826,217,1.641,221,2.933,227,0.893,234,1.747,277,4.308,305,1.711,334,0.655,347,1.212,460,4.843,461,1.37,701,4.423,766,2.555,784,4.473,843,3.699,1016,3.843,1158,4.509,2037,3.432,2089,7.318,2090,5.47,2094,4.219,2106,3.504,2107,4.644,2175,8.243,2190,6.62,2252,4.644,2278,8.178,2280,8.987,2285,7.828,4561,3.164,4640,6.636,6938,4.796,7869,5.979,11741,6.62,12145,7.422,15617,4.518,17738,9.248,17798,4.793,20838,7.154,20848,4.644,20859,4.407,20872,7.085,20914,4.793,20915,4.644,20916,8.178,20954,7.085,20959,8.998,20965,4.971,20966,9.248,20973,4.971,20979,4.793,20982,8.255,20985,5.492,20986,8.998,20987,5.492,20988,7.085,21002,6.439,21006,7.959,21040,4.971,21056,5.194,21057,4.971,21058,5.194,21063,7.828,21077,5.945,21078,8.474,21079,5.945,21080,8.474,21081,5.945,21082,8.474,21083,5.945,21084,5.945,21085,5.945,21086,5.194,21087,5.194,21088,5.945,21089,5.945,21090,5.945,21091,5.945,21092,5.492,21093,5.492,21094,5.492]],["title/classes/VideoConferenceJoin.html",[0,0.23,20917,5.126]],["body/classes/VideoConferenceJoin.html",[0,0.302,2,1.018,3,0.024,4,0.024,5,0.013,7,0.136,27,0.525,29,0.703,30,0.001,31,0.497,32,0.177,33,0.443,47,0.806,95,0.142,99,1.505,100,2.969,101,0.017,103,0.001,104,0.001,127,1.12,150,4.43,165,0.874,460,6.902,843,5.796,2090,6.616,3929,9.259,6090,4.926,7869,7.376,7871,5.777,7882,6.572,7884,7.148,20855,11.373,20859,8.951,20861,8.191,20862,8.191,20865,8.191,20917,9.892,21095,8.867,21096,11.074,21097,8.867,21098,8.867,21099,8.867]],["title/classes/VideoConferenceJoinResponse.html",[0,0.23,20919,5.64]],["body/classes/VideoConferenceJoinResponse.html",[0,0.318,2,1.073,3,0.025,4,0.025,5,0.013,7,0.144,27,0.475,29,0.741,30,0.001,31,0.524,32,0.16,33,0.467,47,0.833,95,0.12,101,0.018,103,0.001,104,0.001,127,1.18,150,4.847,165,0.902,364,1.732,376,2.191,379,2.153,467,3.074,1013,4.283,2090,6.282,2230,8.69,2247,8.629,6090,5.189,7868,9.656,7869,7.341,7871,7.451,7873,8.934,7875,7.098,7888,7.809,20919,11.049,21100,11.436]],["title/injectables/VideoConferenceJoinUc.html",[105,0.89,20873,5.64]],["body/injectables/VideoConferenceJoinUc.html",[0,0.231,3,0.018,4,0.018,5,0.01,7,0.104,8,1.121,26,2.378,27,0.385,29,0.737,30,0.001,31,0.521,32,0.13,33,0.464,35,0.818,36,2.018,47,0.493,95,0.165,99,1.15,100,2.269,101,0.013,103,0.001,104,0.001,105,1.225,107,1.622,111,2.119,112,2.376,127,1.173,150,3.406,187,0.971,216,1.959,217,1.626,221,2.814,227,0.714,234,1.719,277,4.24,305,1.95,460,3.873,461,1.562,496,3.912,766,2.913,843,2.958,1415,4.084,2037,5.36,2090,5.383,2094,4.809,2106,3.994,2107,5.294,2175,4.91,2209,5.92,2229,9.253,2230,8.049,2280,9.368,4561,3.606,4640,6.241,6423,4.132,6938,5.255,7276,5.023,7869,6.33,12145,7.698,13140,4.91,15617,5.149,17738,8.658,17798,5.463,20859,5.023,20873,7.763,20914,5.463,20915,5.294,20917,9.07,20959,8.856,20965,5.666,20966,9.592,20979,5.463,20982,8.856,20986,7.763,21002,7.055,21040,5.666,21056,5.92,21057,5.666,21058,5.92,21087,9.253,21093,6.26,21101,6.776,21102,6.776,21103,9.285,21104,6.776,21105,6.776,21106,6.776,21107,6.776,21108,6.776,21109,6.776,21110,9.285,21111,6.776,21112,9.285,21113,6.776,21114,6.776,21115,6.776,21116,6.776,21117,6.776,21118,6.776]],["title/classes/VideoConferenceMapper.html",[0,0.23,20913,5.64]],["body/classes/VideoConferenceMapper.html",[0,0.232,2,0.784,3,0.018,4,0.018,5,0.01,7,0.105,8,1.127,27,0.474,29,0.906,30,0.001,31,0.641,32,0.16,33,0.571,35,1.38,95,0.162,99,1.158,101,0.02,103,0.001,104,0.001,150,2.502,185,2.672,217,1.402,227,1.204,234,1.725,334,0.752,460,5.331,627,4.186,701,2.383,843,2.978,982,3.418,1822,4.841,2027,4.445,2090,6.081,2106,4.021,2113,4.321,2175,4.943,2190,5.33,2192,5.96,2767,3.076,6022,5.057,7869,3.79,7878,8.569,7889,4.841,7890,4.664,7891,4.664,17739,5.057,20838,7.702,20859,8.47,20909,9.212,20913,7.799,20916,9.092,20917,9.092,20918,9.554,20919,9.554,20924,6.302,20954,5.704,20955,5.96,20956,5.96,20957,5.96,21040,5.704,21042,6.302,21043,6.302,21044,6.302,21057,5.704,21062,6.302,21074,5.704,21076,6.302,21086,5.96,21119,11.965,21120,6.822,21121,9.328,21122,9.328,21123,9.328,21124,9.328,21125,9.328,21126,6.822,21127,9.328,21128,6.822,21129,9.328,21130,6.822,21131,9.328,21132,6.822,21133,6.302,21134,6.302,21135,6.302,21136,6.302,21137,5.96,21138,5.96,21139,6.822,21140,6.822,21141,6.822,21142,6.822,21143,6.822,21144,6.822,21145,6.822,21146,6.822,21147,6.822]],["title/modules/VideoConferenceModule.html",[425,1.808,20869,5.64]],["body/modules/VideoConferenceModule.html",[0,0.211,3,0.016,4,0.016,5,0.009,30,0.001,95,0.175,101,0.012,103,0.001,104,0.001,154,2.828,187,0.888,191,3.445,192,1.849,334,0.683,425,2.709,427,2.293,428,2.418,429,2.494,430,2.482,431,2.461,432,4.054,433,4.136,438,5.664,442,3.51,443,2.439,444,2.378,447,3.661,449,3.51,450,2.551,481,2.418,558,2.948,766,2.666,836,5.04,1266,3.544,1420,6.078,1545,1.981,1919,4.196,1945,6.488,1951,7.701,1973,8.06,1991,5.467,1993,6.908,2090,3.152,2106,3.656,2280,10.05,2291,10.026,2293,7.627,2767,2.796,2769,3.065,3546,5,3950,10.026,3956,5.869,4551,8.331,4561,3.3,5283,5.185,7869,3.445,7871,5.689,9822,4.401,12122,7.627,13371,8.888,13626,4.597,17799,5,20869,11.819,20879,5.418,20885,5.729,20966,10.05,21015,9.581,21029,11.381,21148,6.202,21149,6.202,21150,6.202,21151,6.202,21152,10.026,21153,6.202,21154,5.729,21155,6.202,21156,6.202,21157,6.202,21158,6.202,21159,6.202,21160,8.731]],["title/classes/VideoConferenceOptions.html",[0,0.23,20838,4.888]],["body/classes/VideoConferenceOptions.html",[0,0.351,2,0.912,3,0.021,4,0.021,5,0.011,7,0.187,27,0.504,29,0.63,30,0.001,31,0.445,32,0.176,33,0.397,47,0.578,95,0.132,96,2.146,101,0.023,103,0.001,104,0.001,127,1.003,165,0.905,216,1.468,240,3.805,347,2.63,380,2.159,398,2.325,399,4.042,400,3.484,402,3.266,404,1.435,405,2.14,406,2.537,701,4.006,1031,2.545,2744,4.602,3401,5.885,5044,8.32,6423,4.842,6424,6.02,6730,6.02,6756,5.527,7869,4.411,7871,5.173,7890,7.84,7891,7.84,7892,5.753,11618,8.32,14661,6.203,14817,8.32,20836,11.627,20837,7.335,20838,9.348,20842,10.018,20843,7.335,20844,7.335,20845,6.401,20846,6.638,20847,6.401,20848,6.203,20849,9.017,20850,7.335,20851,7.335,20852,7.335,20853,7.335,20854,7.335,21161,10.321,21162,7.94,21163,7.94]],["title/classes/VideoConferenceOptionsDO.html",[0,0.23,21006,5.438]],["body/classes/VideoConferenceOptionsDO.html",[0,0.368,2,0.982,3,0.023,4,0.023,5,0.012,7,0.131,27,0.518,29,0.678,30,0.001,31,0.479,32,0.175,33,0.427,47,0.622,95,0.139,101,0.021,103,0.001,104,0.001,127,1.08,165,0.854,347,2.681,404,1.545,701,3.78,1939,6.247,2744,3.811,5044,8.723,6730,4.985,6756,5.949,7036,6.494,7039,6.677,7040,6.677,7869,4.748,7889,8.427,7890,8.118,7891,8.118,7892,6.193,14661,6.677,17739,8.02,20845,6.89,20846,7.146,20847,6.89,20848,6.677,20998,7.466,21002,8.222,21003,11.895,21004,7.895,21006,10.604,21009,7.895,21010,7.895,21011,7.466,21012,7.895,21013,7.895,21014,7.895,21164,10.821,21165,8.547,21166,8.547]],["title/classes/VideoConferenceOptionsResponse.html",[0,0.23,21074,5.64]],["body/classes/VideoConferenceOptionsResponse.html",[0,0.276,2,0.93,3,0.021,4,0.021,5,0.011,7,0.124,27,0.508,29,0.643,30,0.001,31,0.454,32,0.172,33,0.405,95,0.104,101,0.015,103,0.001,104,0.001,127,1.023,165,0.825,347,2.644,364,2.146,369,2.311,371,3.372,376,1.9,379,2.669,467,3.289,1013,5.309,2090,6.437,2218,10.688,2230,7.945,2271,11.302,2577,8.867,7868,9.895,7869,7.036,7873,8.168,7875,6.155,7889,8.216,7890,7.915,7891,7.915,12573,8.742,20845,6.529,20847,6.529,21011,7.076,21074,10.59,21167,8.1,21168,10.456,21169,12.235,21170,10.456,21171,8.1,21172,8.1,21173,10.456,21174,8.1,21175,8.1,21176,8.1]],["title/injectables/VideoConferenceRepo.html",[105,0.89,21152,5.64]],["body/injectables/VideoConferenceRepo.html",[0,0.169,3,0.013,4,0.013,5,0.007,7,0.076,8,0.896,10,2.996,12,3.422,18,3.666,26,2.468,27,0.541,29,1.025,30,0.001,31,0.725,32,0.181,33,0.646,34,1.694,35,1.561,36,2.628,40,2.386,47,0.647,95,0.142,96,1.34,99,0.841,101,0.009,103,0,104,0,105,0.978,107,1.186,111,2.366,112,2.923,148,1.534,165,0.391,187,0.71,217,1.173,221,1.168,227,1.114,234,1.204,359,2.573,380,2.211,398,1.452,404,1.341,595,1.707,596,3.887,661,4.983,701,2.591,878,5.164,884,3.505,885,5.259,915,2.729,1857,3.802,2092,2.805,2383,8.972,2385,5.265,2386,5.265,2387,5.265,2388,5.265,2389,5.164,2390,5.164,2391,5.265,2392,5.164,2393,5.265,2398,3.517,2400,5.641,2401,3.517,2403,3.517,2405,3.279,2406,5.265,2407,3.517,2409,3.517,2411,5.265,2415,5.265,2417,4.987,2418,5.164,2420,3.517,2422,3.023,2423,3.023,2424,3.517,2426,3.517,2428,3.517,2429,3.517,2447,3.674,2744,3.965,4083,4.373,4355,3.183,4821,3.06,5766,3.591,5767,3.591,5768,3.591,5769,3.591,5770,3.591,5771,3.591,5772,3.591,5773,5.376,5774,5.376,6423,7.013,6730,5.186,7889,3.517,7890,5.072,7891,5.072,8781,3.766,9369,5.796,14347,4.144,14817,3.996,17739,8.524,20842,4.33,20849,9.691,21002,8.738,21137,6.481,21138,6.481,21152,6.203,21177,8.892,21178,4.957,21179,7.419,21180,7.419,21181,4.957,21182,4.957,21183,4.957,21184,4.957,21185,4.957,21186,4.957,21187,7.419,21188,7.419,21189,4.957,21190,4.957,21191,4.957,21192,4.957,21193,4.579,21194,4.957,21195,4.957,21196,4.957,21197,4.957,21198,4.957,21199,4.957,21200,4.957,21201,4.957,21202,4.957]],["title/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.23,21027,5.893]],["body/classes/VideoConferenceResponseDeprecatedMapper.html",[0,0.261,2,0.882,3,0.02,4,0.02,5,0.011,7,0.118,8,1.22,27,0.468,29,0.895,30,0.001,31,0.633,32,0.158,33,0.564,35,1.363,95,0.154,101,0.015,102,6.451,103,0.001,104,0.001,150,2.818,227,1.189,234,1.832,460,6.45,574,4.579,627,4.166,701,2.683,843,4.926,974,4.742,1822,5.452,2090,6.093,2100,5.347,2106,4.528,2477,6.235,2478,5.773,6423,7.311,7867,9.366,7869,4.267,7871,5.005,7872,9.366,7886,9.665,16886,7.097,20913,6.423,20915,6.001,20916,9.11,20917,9.11,21027,8.824,21031,7.097,21133,7.097,21203,11.989,21204,10.101,21205,10.101,21206,10.101,21207,10.101,21208,10.101,21209,7.682,21210,10.101,21211,10.101,21212,7.682,21213,11.286,21214,11.286,21215,7.682,21216,7.682]],["title/classes/VideoConferenceScopeParams.html",[0,0.23,20892,5.893]],["body/classes/VideoConferenceScopeParams.html",[0,0.377,2,1.021,3,0.024,4,0.024,5,0.013,7,0.137,27,0.46,30,0.001,32,0.155,47,0.808,95,0.155,99,1.508,101,0.017,103,0.001,104,0.001,165,0.875,277,4.839,364,2.056,368,5,369,2.672,370,3.7,371,3.489,374,2.839,376,2.085,467,3.25,1000,4.742,1031,3.554,1044,4.362,2090,6.144,2915,5.854,5665,9.688,7869,6.715,9369,9.444,17739,9.846,20892,9.688,20941,11.167,21217,8.887,21218,8.887,21219,8.887,21220,8.887,21221,8.887,21222,8.887]],["title/injectables/VideoConferenceService.html",[105,0.89,20966,5.126]],["body/injectables/VideoConferenceService.html",[0,0.104,3,0.008,4,0.008,5,0.004,7,0.047,8,0.609,26,2.773,27,0.487,29,0.903,30,0.001,31,0.658,32,0.16,33,0.569,35,1.349,36,2.584,39,2.77,47,0.829,95,0.146,99,0.517,101,0.006,103,0,104,0,105,0.665,107,0.729,111,2.406,112,2.851,127,0.638,129,4.641,130,6.897,132,4.151,145,1.302,187,0.436,188,2.448,190,2.454,191,1.691,192,1.505,199,1.927,204,1.044,216,1.842,217,1.568,221,2.683,227,1.267,234,1.728,277,5.087,305,2.586,307,3.155,309,4.256,318,2.545,329,1.487,334,0.335,347,2.358,369,0.673,371,1.391,450,1.252,460,4.297,461,1.163,496,2.126,701,2.626,784,2.664,839,1.429,843,3.282,845,2.16,884,2.384,885,3.741,947,2.659,1092,4.219,1158,2.685,1252,1.814,1474,1.713,1822,2.16,1865,5.216,1868,1.928,1881,3.196,1916,3.131,1952,5.107,1973,6.398,2027,4.899,2037,2.913,2090,6.042,2106,1.794,2107,2.378,2113,3.196,2175,3.656,2190,2.378,2192,2.659,2526,1.928,2685,1.74,2744,1.357,2767,1.372,2880,1.456,3110,1.475,3331,4.674,3925,4.068,3940,2.545,3954,7.958,4227,1.048,4499,3.077,4538,2.856,4539,2.378,4561,1.62,4630,1.582,6222,2.659,6423,4.585,6424,1.775,6589,3.196,6720,3.115,6730,1.775,6938,2.856,6942,5.916,9369,9.805,9404,5.646,10452,2.812,11378,1.983,11449,1.983,11695,2.119,11741,3.942,11744,4.662,12069,4.499,12119,6.287,12121,5.404,12122,2.659,12145,5.804,12168,2.545,14896,4.068,15098,4.219,15946,2.659,17739,9.089,20645,4.662,20838,5.448,20859,5.573,20914,2.454,20915,2.378,20966,3.834,20973,2.545,20979,2.454,20980,2.812,20988,4.219,21001,2.659,21002,7.232,21006,2.454,21086,2.659,21087,6.568,21092,7.701,21094,2.812,21134,2.812,21135,2.812,21136,2.812,21137,4.408,21138,4.408,21152,7.958,21154,2.812,21223,11.888,21224,3.044,21225,5.046,21226,6.463,21227,5.046,21228,5.046,21229,6.463,21230,5.046,21231,6.463,21232,5.046,21233,5.046,21234,5.046,21235,5.046,21236,6.463,21237,3.044,21238,3.044,21239,5.046,21240,5.046,21241,7.519,21242,3.044,21243,3.044,21244,3.044,21245,5.046,21246,3.044,21247,5.046,21248,3.044,21249,3.044,21250,3.044,21251,5.046,21252,3.044,21253,3.044,21254,3.044,21255,5.046,21256,7.519,21257,3.044,21258,3.044,21259,3.044,21260,5.046,21261,3.044,21262,5.046,21263,3.044,21264,5.046,21265,3.044,21266,3.044,21267,3.044,21268,3.044,21269,3.044,21270,3.044,21271,3.044,21272,3.044,21273,9.518,21274,3.044,21275,3.044,21276,3.044,21277,3.044,21278,3.044,21279,3.044,21280,3.044,21281,3.044,21282,3.044,21283,3.044,21284,3.044,21285,3.044,21286,3.044,21287,3.044,21288,5.046,21289,3.044,21290,3.044,21291,3.044,21292,2.812,21293,3.044,21294,3.044,21295,3.044,21296,3.044,21297,5.046,21298,3.044,21299,3.044,21300,3.044,21301,3.044,21302,3.044,21303,3.044,21304,3.044,21305,3.044,21306,3.044,21307,3.044,21308,3.044,21309,3.044,21310,3.044,21311,5.046,21312,3.044,21313,3.044,21314,3.044,21315,5.046,21316,3.044,21317,3.044]],["title/classes/VisibilitySettingsResponse.html",[0,0.23,4106,5.64]],["body/classes/VisibilitySettingsResponse.html",[0,0.328,2,1.106,3,0.026,4,0.026,5,0.014,7,0.148,27,0.484,29,0.764,30,0.001,31,0.54,32,0.163,33,0.626,47,0.848,95,0.123,101,0.018,103,0.001,104,0.001,127,1.472,165,0.919,364,1.785,375,5.083,376,2.259,966,4.931,4106,11.144,21318,12.527,21319,9.631,21320,13.329,21321,9.631,21322,9.631,21323,9.631]],["title/dependencies.html",[428,3.169,21324,4.9]],["body/dependencies.html",[0,0.25,4,0.013,5,0.01,10,1.98,30,0.001,32,0.069,34,0.841,36,1.92,56,2.36,96,2.388,97,2.086,103,0,104,0,112,1.982,187,0.702,346,3.295,367,3.542,374,2.822,376,1.15,381,1.613,398,1.436,428,1.911,543,2.456,734,2.83,766,2.107,775,2.989,801,2.859,846,3.479,853,2.491,948,3.725,1016,1.751,1135,4.529,1183,4.282,1266,2.802,1268,3.148,1272,3.351,1437,3.552,1438,3.295,1508,2.775,1638,4.282,1640,3.633,1648,3.633,1683,2.89,1717,4.725,1812,3.479,1848,3.295,1871,3.026,1987,5.673,1990,8.218,2074,5.03,2106,2.89,2116,2.652,2172,2.345,2173,3.394,2174,3.105,2263,3.479,2412,3.83,2488,3.351,3331,2.748,3458,3.105,3459,2.921,3543,2.406,3544,4.077,3900,5.591,3910,4.282,3911,5.748,3912,8.218,4481,3.952,4969,2.775,5011,5.222,5058,3.952,5059,3.952,5378,3.295,5382,2.802,5739,3.243,6030,4.529,6325,3.83,6327,4.099,6414,3.552,6491,6.269,6728,3.633,7628,4.529,7661,3.412,7819,6.152,8190,5.748,8217,3.725,8508,3.952,8590,4.529,9436,4.282,9507,4.529,9611,8.131,10009,4.529,10252,3.479,10351,2.955,10883,3.952,11024,4.099,11592,3.412,11616,3.552,12377,3.83,12684,7.669,12755,3.633,12948,3.725,13293,4.529,14168,4.282,14542,3.952,14898,4.282,15210,4.282,15211,4.529,16161,4.529,16641,4.282,17130,4.529,17131,4.529,17747,4.282,21325,4.902,21326,7.358,21327,4.902,21328,10.52,21329,4.902,21330,4.902,21331,9.817,21332,7.358,21333,4.902,21334,4.902,21335,4.902,21336,4.902,21337,7.358,21338,4.902,21339,9.817,21340,7.358,21341,9.817,21342,4.902,21343,4.902,21344,4.902,21345,4.902,21346,4.902,21347,4.902,21348,4.902,21349,4.902,21350,4.902,21351,4.902,21352,4.902,21353,4.902,21354,4.902,21355,4.902,21356,4.902,21357,4.902,21358,4.902,21359,4.902,21360,4.902,21361,4.902,21362,4.902,21363,4.902,21364,7.358,21365,4.902,21366,4.902,21367,4.902,21368,7.358,21369,4.902,21370,4.902,21371,7.358,21372,4.902,21373,4.902,21374,4.902,21375,4.902,21376,7.358,21377,7.358,21378,4.902,21379,4.902,21380,4.902,21381,4.902,21382,4.902,21383,4.902,21384,4.902,21385,4.902,21386,4.902,21387,4.902,21388,4.902,21389,4.902,21390,4.902,21391,4.902,21392,4.902,21393,4.902,21394,4.902,21395,7.358,21396,4.902,21397,4.902,21398,4.902,21399,4.902,21400,4.902,21401,4.902,21402,4.902,21403,4.902,21404,4.282,21405,4.902,21406,4.902,21407,8.16,21408,4.902,21409,4.902,21410,4.902,21411,4.902,21412,8.833,21413,4.902,21414,4.902,21415,7.358,21416,4.902,21417,4.902,21418,4.902,21419,4.902,21420,4.902,21421,4.902,21422,4.902,21423,4.902,21424,4.902,21425,4.902,21426,4.902,21427,7.358,21428,4.529,21429,4.902,21430,4.902,21431,7.358,21432,4.902,21433,4.902,21434,4.902,21435,4.902,21436,4.902,21437,4.902,21438,4.902,21439,4.902,21440,4.902,21441,4.902,21442,4.902,21443,4.902,21444,7.358,21445,4.902,21446,4.902,21447,4.902,21448,4.529,21449,4.902,21450,4.902,21451,4.902,21452,4.902,21453,4.902,21454,4.902,21455,4.529,21456,4.529,21457,4.902,21458,4.902,21459,4.902,21460,4.902,21461,4.902,21462,4.902,21463,4.902,21464,6.797,21465,4.529,21466,4.902,21467,4.902,21468,4.902,21469,4.902,21470,4.902,21471,4.902,21472,4.902,21473,4.902,21474,4.902,21475,4.902]],["title/miscellaneous/functions.html",[20456,6.794,21476,5.181]],["body/miscellaneous/functions.html",[7,0.06,26,2.565,29,1.052,30,0.001,31,0.752,32,0.174,33,0.663,34,0.667,35,1.572,39,1.65,47,0.97,53,2.759,55,1.91,59,2.695,72,2.889,80,3.251,100,1.302,103,0,104,0,144,2.987,145,1.588,167,1.485,185,2.41,199,1.485,204,1.334,227,0.41,240,1.218,247,1.543,290,2.245,329,1.146,347,0.793,366,2.141,369,0.86,371,1.072,373,2.053,377,4.976,380,0.813,381,2.858,431,5.064,468,4.807,470,1.638,494,3.709,569,2.614,574,1.763,692,1.449,701,1.358,722,1.715,728,2.41,748,3.038,777,2.955,789,6.462,824,3.592,834,3.592,838,5.685,905,1.615,957,2.201,1015,3.419,1016,1.389,1052,2.508,1053,2.729,1252,3.667,1379,4.603,1382,5.36,1469,2.572,1491,2.222,1492,2.344,1565,3.419,1828,1.734,1925,3.969,1932,3.15,2116,3.33,2307,3.397,2309,3.45,2507,3.952,2514,2.572,2689,2.021,2691,1.706,2787,4.774,2880,4.813,3023,5.685,3024,5.376,3028,5.685,3242,4.064,3397,2.572,3543,3.021,3853,2.817,4227,2.629,4959,3.592,4969,2.201,4971,5.376,5011,7.756,5035,2.463,5097,4.837,5407,3.038,6047,2.533,6064,3.982,6082,6.281,6119,4.009,6127,2.572,6131,5.052,6139,5.577,6146,2.533,6157,2.955,6918,4.561,7228,6.044,7629,4.561,8013,3.397,8107,3.592,8113,3.592,8114,5.685,8160,3.397,8161,9.138,9387,2.882,9401,2.431,9734,7.004,9763,4.807,9764,4.807,9959,5.376,9975,2.16,9979,3.397,10348,7.055,10358,3.038,10385,4.676,10447,5.145,10547,3.592,10548,5.803,10752,2.759,11112,5.685,11187,3.592,11258,3.592,11306,2.759,11358,2.759,11630,3.135,11957,3.251,12065,3.251,12236,3.397,13235,3.592,13359,3.251,13421,3.397,16162,5.685,16163,5.685,16164,5.685,16988,4.961,19059,5.145,19061,3.251,19062,3.592,20456,3.251,21455,3.592,21476,3.592,21477,3.888,21478,6.154,21479,6.154,21480,6.154,21481,3.888,21482,6.154,21483,3.888,21484,6.154,21485,3.888,21486,3.888,21487,6.154,21488,9.461,21489,6.154,21490,10.062,21491,8.683,21492,3.888,21493,6.154,21494,8.683,21495,3.888,21496,6.154,21497,6.154,21498,3.888,21499,7.637,21500,3.888,21501,6.154,21502,3.888,21503,6.154,21504,3.888,21505,7.637,21506,3.888,21507,3.888,21508,6.154,21509,3.888,21510,6.154,21511,6.154,21512,6.154,21513,6.154,21514,3.888,21515,3.888,21516,3.888,21517,6.154,21518,3.888,21519,6.154,21520,3.888,21521,6.154,21522,3.888,21523,6.154,21524,3.888,21525,6.154,21526,6.154,21527,3.888,21528,3.888,21529,3.888,21530,3.888,21531,3.888,21532,3.888,21533,6.154,21534,3.888,21535,3.888,21536,3.888,21537,8.683,21538,3.888,21539,3.888,21540,6.154,21541,3.888,21542,3.888,21543,3.888,21544,3.888,21545,3.888,21546,3.888,21547,3.888,21548,3.888,21549,3.888,21550,6.154,21551,3.888,21552,3.397,21553,3.251,21554,6.154,21555,6.154,21556,6.154,21557,3.251,21558,7.055,21559,3.592,21560,3.888,21561,3.397,21562,3.888,21563,3.888,21564,3.592,21565,9.461,21566,10.062,21567,3.888,21568,3.888,21569,3.888,21570,3.888,21571,3.888,21572,3.888,21573,3.888,21574,3.888,21575,3.888,21576,6.154,21577,3.888,21578,3.888,21579,3.888,21580,3.888,21581,3.888,21582,6.154,21583,3.888,21584,3.888,21585,3.888,21586,7.637,21587,3.397,21588,3.888,21589,3.888,21590,3.888,21591,3.888,21592,3.888,21593,3.888,21594,3.135,21595,3.888,21596,3.888]],["title/index.html",[7,0.086,1555,3.506,21597,4.9]],["body/index.html",[30,0.001,31,0.48,34,1.034,55,2.188,102,3.04,103,0.001,104,0.001,199,2.301,200,2.788,204,2.935,234,0.978,329,1.775,367,4.118,379,1.389,428,2.349,483,4.788,511,3.085,571,5.348,574,2.732,575,3.591,576,7.36,577,3.378,671,3.317,688,3.181,722,3.774,728,2.359,769,3.591,883,4.171,946,3.926,951,4.578,956,3.926,1021,3.206,1042,5.038,1110,3.87,1114,2.445,1236,3.632,1237,4.707,1239,10.216,1252,3.591,1253,4.588,1327,2.38,1473,3.444,1474,2.045,1491,4.889,1510,5.348,1725,6.199,1848,4.05,1871,3.719,1922,3.817,1987,7.344,1991,3.26,2008,3.87,2049,8.728,2116,4.629,2171,2.59,2173,2.779,2185,3.41,2489,6.188,2507,6.953,2508,5.494,2509,6.341,2514,3.986,2526,5.419,2578,3.926,2811,6.218,3459,6.814,3462,7.054,3873,6.683,3874,8.404,3948,4.578,4013,4.578,4169,3.986,4484,4.857,4630,3.131,4969,3.41,5121,5.494,5227,5.038,5346,5.419,5389,4.366,5403,4.707,5944,3.817,6046,4.119,6145,5.574,6229,5.038,6331,4.366,6332,4.466,6491,6.452,6589,5.419,6731,4.842,6736,4.578,7309,4.466,7679,4.119,8537,3.552,8682,6.5,9309,5.264,9368,4.707,9985,8.227,10358,4.707,10789,4.276,11199,4.707,11204,6.199,11216,5.494,11250,5.264,11421,4.119,11484,6.5,12528,4.366,12589,7.77,13159,8.018,13238,6.683,13361,4.466,13626,4.466,13967,4.857,14497,4.857,14886,4.578,14902,5.038,15250,5.038,15251,4.857,16257,4.707,16263,6.896,16421,4.276,17548,5.264,19654,4.857,20724,5.038,20947,5.264,21594,4.857,21598,7.152,21599,4.578,21600,5.264,21601,5.038,21602,5.264,21603,4.857,21604,7.152,21605,6.896,21606,5.264,21607,5.264,21608,6.896,21609,5.264,21610,5.038,21611,7.903,21612,7.152,21613,5.566,21614,5.566,21615,5.566,21616,5.038,21617,7.558,21618,5.264,21619,7.903,21620,5.038,21621,5.038,21622,7.903,21623,5.264,21624,4.578,21625,5.038,21626,5.264,21627,5.264,21628,4.857,21629,5.566,21630,5.264,21631,5.566,21632,5.038,21633,4.707,21634,5.264,21635,7.903,21636,7.903,21637,8.689,21638,9.989,21639,5.264,21640,5.566,21641,7.903,21642,5.264,21643,5.566,21644,5.566,21645,5.566,21646,7.903,21647,7.903,21648,5.566,21649,5.566,21650,5.566,21651,5.038,21652,5.566,21653,4.857,21654,5.566,21655,7.152,21656,5.566,21657,5.566,21658,5.264,21659,5.566,21660,5.038]],["title/license.html",[1555,3.506,11540,4.157,21597,4.9]],["body/license.html",[0,0.041,4,0.032,5,0.003,8,0.147,27,0.051,30,0,53,2.77,55,0.495,56,1.083,72,3.595,74,0.982,76,1.125,77,0.771,79,1.965,83,0.366,87,0.602,95,0.016,103,0,104,0,111,0.244,116,3.483,148,0.377,163,0.989,192,0.363,199,0.465,227,0.128,234,1.002,240,0.382,277,0.487,309,2.21,334,0.628,336,0.764,359,3.344,363,1.445,368,1.542,380,0.471,444,0.467,460,0.696,461,1.953,494,1.89,511,0.623,520,0.819,534,1.125,535,3.34,538,1.009,543,0.61,564,0.452,565,0.643,574,4.372,575,0.726,578,1.125,685,0.638,688,2.061,701,0.425,704,1.929,711,0.726,713,0.67,721,2.456,722,1.722,731,0.477,744,0.882,766,0.967,768,0.864,772,1.064,782,1.064,783,2.353,795,0.718,836,2.985,843,3.049,905,1.901,907,2.183,954,1.668,956,4.022,957,2.21,959,1.064,960,9.034,1021,0.648,1110,5.106,1113,0.982,1114,1.857,1237,1.758,1253,5.262,1295,2.254,1300,0.565,1309,1.566,1473,0.696,1499,1.668,1507,4.795,1510,3.859,1576,0.734,1577,3.833,1594,3.69,1666,3.6,1717,1.445,1723,7.016,1724,2.189,1828,1.003,1848,2.624,1887,0.752,1888,1.064,1916,3.384,1921,5.065,1922,3.276,1991,1.217,2076,0.643,2115,0.982,2116,3.969,2156,8.063,2184,1.965,2185,1.273,2267,2.829,2282,0.819,2298,2.353,2321,1.488,2344,0.503,2400,1.286,2488,2.144,2489,3.992,2500,4.529,2503,4.595,2526,3.276,2542,2.078,2543,1.71,2563,6.382,2572,0.782,2577,3.129,2578,0.793,2579,1.597,2728,3.929,2730,7.78,2778,2.544,3018,1.064,3091,3.345,3145,0.925,3187,0.734,3262,1.406,3397,3.028,3508,4.453,3542,2.014,3543,0.598,3566,1.758,3613,4.225,3851,0.951,3870,0.982,3872,1.538,3874,0.771,3876,1.758,3940,1.018,4000,1.96,4166,1.064,4168,2.739,4169,3.421,4172,1.125,4220,1.566,4299,1.064,4480,0.882,4484,4.595,4486,1.064,4571,1.018,4630,1.169,4631,1.018,4632,1.538,4639,1.881,4825,1.406,4945,6.005,4960,1.425,4969,0.689,4997,2.544,4998,1.538,5039,1.758,5233,0.982,5346,1.425,5381,1.064,5389,2.272,5395,2.383,5410,0.771,5451,1.71,5566,3.076,5944,0.771,5999,0.848,6046,2.144,6053,2.897,6270,2.383,6327,1.018,6417,1.064,6491,1.341,6589,0.771,6617,0.903,6637,2.272,6705,3.576,6733,0.864,6760,1.63,6908,0.925,6914,0.882,6926,1.064,6927,3.147,7309,2.324,7339,3.186,7349,0.925,7779,1.064,7780,1.881,7840,2.894,8096,4.977,8270,0.903,8679,0.903,8682,2.966,9141,2.45,9387,2.894,9393,2.897,9401,3.233,9418,2.45,9725,0.819,9741,2.324,9980,0.925,10000,4.977,10358,5.982,10381,1.71,10432,0.806,10533,0.951,10541,1.965,10548,1.71,10768,1.71,10770,1.064,10854,1.018,10905,6.134,11122,1.125,11156,4.727,11168,1.064,11204,2.272,11216,2.014,11226,0.903,11240,3.998,11247,2.078,11286,1.125,11307,4.971,11484,0.925,11540,9.874,11580,0.951,11586,0.903,11592,2.717,11593,0.925,11609,1.018,11635,7.555,11738,1.064,11827,1.63,12053,1.018,12244,0.951,12528,5.062,12590,4.979,12929,1.064,12938,3.998,12939,1.125,13001,2.078,13159,0.982,13238,2.45,13257,0.882,13354,1.064,13418,0.982,13422,0.982,13440,2.225,13786,2.739,13788,2.078,14024,4.979,14132,9.126,14163,1.125,14170,3.147,14241,1.064,14495,0.982,14500,1.125,14555,3.264,14645,2.078,14815,1.125,14883,3.264,14886,2.383,15250,1.018,15253,7.083,15873,2.528,16097,1.125,16473,4.518,16482,1.064,16725,1.965,17062,0.982,17547,2.897,17633,1.064,17749,1.125,17829,1.064,17870,0.951,17875,1.881,17888,1.71,18138,2.383,18337,1.125,18537,2.897,18910,2.622,19056,1.965,19059,3.827,19061,1.018,19066,6.453,19254,1.064,19297,2.078,19449,0.903,19713,4.518,19794,2.078,19972,5.765,20260,8.238,20285,1.018,21552,1.064,21557,1.018,21558,1.125,21561,1.064,21587,1.064,21594,1.814,21609,1.064,21612,9.843,21617,4.331,21624,7.07,21625,9.076,21626,2.739,21661,8.918,21662,8.703,21663,1.218,21664,1.218,21665,3.136,21666,10.661,21667,8.427,21668,4.577,21669,1.218,21670,1.218,21671,2.25,21672,4.577,21673,3.136,21674,3.136,21675,7.657,21676,1.218,21677,1.218,21678,2.25,21679,4.228,21680,5.266,21681,2.25,21682,2.25,21683,7.595,21684,6.173,21685,1.218,21686,1.125,21687,5.171,21688,1.125,21689,7.336,21690,11.718,21691,3.136,21692,1.218,21693,1.218,21694,3.904,21695,6.6,21696,1.218,21697,6.6,21698,1.218,21699,4.577,21700,0.982,21701,1.018,21702,3.606,21703,8.471,21704,0.982,21705,1.125,21706,6.986,21707,7.336,21708,4.577,21709,7.657,21710,1.218,21711,2.25,21712,1.218,21713,1.218,21714,1.218,21715,1.218,21716,1.218,21717,1.881,21718,1.218,21719,1.218,21720,3.606,21721,1.125,21722,1.064,21723,3.136,21724,1.218,21725,1.218,21726,1.218,21727,2.25,21728,1.218,21729,1.218,21730,2.622,21731,1.125,21732,2.25,21733,2.25,21734,3.136,21735,6.648,21736,4.577,21737,4.777,21738,3.136,21739,2.25,21740,1.218,21741,1.218,21742,1.218,21743,3.136,21744,1.218,21745,1.218,21746,2.25,21747,1.218,21748,1.218,21749,1.218,21750,3.904,21751,2.25,21752,10.186,21753,3.136,21754,6.6,21755,3.41,21756,1.218,21757,2.25,21758,3.136,21759,6.6,21760,6.986,21761,1.125,21762,3.904,21763,2.25,21764,3.904,21765,1.218,21766,3.136,21767,0.982,21768,10.331,21769,2.25,21770,1.125,21771,6.173,21772,1.218,21773,3.136,21774,4.324,21775,8.471,21776,3.136,21777,2.25,21778,7.336,21779,5.171,21780,1.218,21781,2.25,21782,7.951,21783,2.25,21784,1.218,21785,1.218,21786,2.897,21787,1.218,21788,1.218,21789,1.064,21790,3.136,21791,3.904,21792,1.125,21793,1.218,21794,1.218,21795,1.064,21796,2.897,21797,3.136,21798,1.218,21799,1.218,21800,4.577,21801,1.125,21802,2.897,21803,1.218,21804,1.218,21805,1.218,21806,2.078,21807,1.218,21808,2.897,21809,1.018,21810,6.409,21811,2.25,21812,1.218,21813,1.218,21814,2.25,21815,1.218,21816,1.965,21817,3.998,21818,1.218,21819,5.7,21820,3.606,21821,1.218,21822,4.577,21823,1.218,21824,1.218,21825,1.218,21826,1.218,21827,1.218,21828,3.136,21829,1.218,21830,2.25,21831,1.218,21832,1.218,21833,1.218,21834,1.125,21835,1.218,21836,1.218,21837,3.136,21838,0.951,21839,1.218,21840,0.982,21841,1.218,21842,1.218,21843,1.218,21844,4.577,21845,1.218,21846,1.218,21847,3.136,21848,1.218,21849,1.218,21850,3.904,21851,1.218,21852,2.25,21853,1.218,21854,1.218,21855,1.218,21856,1.218,21857,1.218,21858,1.218,21859,2.25,21860,1.218,21861,1.218,21862,1.218,21863,2.25,21864,1.218,21865,1.218,21866,1.218,21867,1.218,21868,1.218,21869,2.078,21870,6.097,21871,1.218,21872,5.171,21873,1.218,21874,1.218,21875,3.136,21876,3.904,21877,3.904,21878,3.904,21879,1.218,21880,4.577,21881,3.998,21882,1.125,21883,3.136,21884,1.218,21885,2.25,21886,1.218,21887,1.965,21888,2.25,21889,3.606,21890,3.904,21891,3.136,21892,4.577,21893,1.218,21894,1.218,21895,2.897,21896,2.25,21897,1.125,21898,1.218,21899,1.125,21900,1.218,21901,1.218,21902,2.897,21903,1.218,21904,1.218,21905,2.25,21906,1.218,21907,1.218,21908,1.218,21909,3.136,21910,1.218,21911,3.136,21912,2.25,21913,5.171,21914,3.136,21915,2.25,21916,2.25,21917,2.25,21918,3.41,21919,1.965,21920,1.218,21921,1.218,21922,1.218,21923,5.171,21924,2.25,21925,1.218,21926,1.218,21927,1.218,21928,2.25,21929,1.218,21930,2.25,21931,1.218,21932,1.218,21933,4.977,21934,1.218,21935,6.777,21936,1.218,21937,1.218,21938,1.218,21939,1.218,21940,2.25,21941,1.218,21942,3.998,21943,3.904,21944,2.25,21945,1.218,21946,1.218,21947,1.218,21948,1.218,21949,1.218,21950,2.25,21951,1.218,21952,1.218,21953,1.064,21954,1.218,21955,2.25,21956,1.218,21957,1.218,21958,1.218,21959,1.218,21960,1.218,21961,1.218,21962,1.218,21963,1.218,21964,1.125,21965,1.218,21966,1.218,21967,1.218,21968,1.218,21969,4.577,21970,1.218,21971,1.218,21972,3.904,21973,1.218,21974,1.218,21975,1.218,21976,1.218,21977,1.218,21978,1.218,21979,1.218,21980,5.7,21981,2.897,21982,1.218,21983,3.904,21984,1.218,21985,1.218,21986,3.136,21987,1.218,21988,1.218,21989,3.136,21990,1.218,21991,2.25,21992,1.218,21993,1.218,21994,1.218,21995,1.218,21996,1.218,21997,1.064,21998,2.078,21999,1.218,22000,1.064,22001,2.25,22002,2.078,22003,1.218,22004,3.904,22005,1.218,22006,2.897,22007,1.218,22008,2.078,22009,3.136,22010,2.25,22011,1.218,22012,3.136,22013,5.7,22014,1.218,22015,2.25,22016,1.218,22017,2.078,22018,1.218,22019,1.218,22020,1.218,22021,3.904,22022,3.136,22023,1.218,22024,1.218,22025,1.218,22026,1.218,22027,1.218,22028,1.218,22029,2.25,22030,2.25,22031,2.25,22032,3.136,22033,1.218,22034,2.25,22035,1.125,22036,3.136,22037,1.218,22038,2.078,22039,2.25,22040,1.218,22041,1.218,22042,2.25,22043,9.943,22044,3.136,22045,1.218,22046,4.577,22047,6.986,22048,3.136,22049,1.218,22050,1.218,22051,3.904,22052,1.218,22053,3.136,22054,1.218,22055,1.218,22056,1.218,22057,1.218,22058,1.218,22059,1.218,22060,1.218,22061,1.218,22062,3.904,22063,1.218,22064,1.218,22065,3.136,22066,1.218,22067,3.136,22068,1.064,22069,2.25,22070,1.218,22071,1.218,22072,1.218,22073,1.218,22074,2.25,22075,3.136,22076,1.125,22077,1.218,22078,1.218,22079,1.218,22080,1.125,22081,1.218,22082,1.218,22083,1.218,22084,3.136,22085,2.25,22086,1.125,22087,1.218,22088,1.218,22089,3.904,22090,1.218,22091,3.136,22092,1.218,22093,1.218,22094,1.218,22095,1.218,22096,1.218,22097,3.136,22098,2.25,22099,2.25,22100,1.218,22101,2.25,22102,5.7,22103,2.25,22104,3.136,22105,3.904,22106,1.125,22107,1.125,22108,2.25,22109,1.218,22110,3.136,22111,1.218,22112,1.218,22113,1.218,22114,1.218,22115,1.218,22116,3.136,22117,2.25,22118,1.218,22119,1.218,22120,1.218,22121,1.218,22122,2.25,22123,2.25,22124,1.218,22125,2.078,22126,1.218,22127,1.125,22128,1.125,22129,1.218,22130,3.136,22131,1.218,22132,1.218,22133,1.218,22134,2.25,22135,3.136,22136,1.218,22137,1.218,22138,1.218,22139,1.218,22140,2.25,22141,1.218,22142,1.218,22143,1.218,22144,1.218,22145,1.218,22146,1.218,22147,1.218,22148,1.218,22149,1.218,22150,1.218,22151,1.218,22152,1.218,22153,1.218,22154,3.904,22155,1.218,22156,1.218,22157,2.25,22158,1.218,22159,1.125,22160,1.218,22161,1.218,22162,1.218,22163,1.218,22164,1.218,22165,1.218,22166,1.218,22167,1.218,22168,1.218,22169,1.218,22170,2.25,22171,1.218,22172,1.218,22173,1.218,22174,1.218,22175,1.064,22176,2.25,22177,1.218,22178,1.218,22179,1.218,22180,1.125,22181,1.125,22182,1.018,22183,1.218,22184,2.25,22185,1.125,22186,2.078,22187,1.218,22188,1.218,22189,3.136,22190,2.078,22191,1.218,22192,2.078,22193,2.25,22194,2.25,22195,1.125,22196,1.064,22197,1.218,22198,1.218,22199,1.125,22200,1.218,22201,1.218,22202,1.218,22203,2.25,22204,1.218,22205,3.136,22206,1.218,22207,1.218,22208,1.218,22209,1.218,22210,1.218,22211,1.218,22212,1.218,22213,1.218,22214,1.218,22215,1.218,22216,1.018,22217,1.218,22218,1.218,22219,1.218,22220,1.218,22221,1.218,22222,1.218,22223,1.218,22224,1.218,22225,1.218,22226,1.218,22227,1.218,22228,1.218,22229,1.064,22230,1.125,22231,2.25,22232,2.078,22233,1.218,22234,1.218,22235,1.218,22236,1.218,22237,1.218,22238,1.218,22239,1.218,22240,1.218,22241,1.218,22242,1.018,22243,1.218,22244,1.125,22245,0.982,22246,1.218,22247,1.218,22248,1.125,22249,1.218]],["title/modules.html",[427,3.422]],["body/modules.html",[30,0,103,0,104,0,426,3.996,427,1.832,437,3.517,438,2.341,817,3.872,1406,3.996,1581,3.872,1585,3.279,1623,3.996,1624,3.872,1625,3.766,1626,3.517,1945,2.682,1950,3.996,1951,3.183,1981,3.766,1983,3.872,2488,9.843,2500,7.601,2753,3.996,3533,3.872,3534,3.674,3950,4.144,4388,4.33,4545,4.144,4550,3.766,4551,3.229,4600,3.996,5267,3.591,5713,3.996,5718,3.766,5719,3.872,6234,3.591,6317,3.279,6321,3.996,6322,4.144,6323,4.144,7714,4.144,8104,3.591,8627,3.872,8628,3.766,10026,4.144,10037,4.144,10085,4.33,10089,3.996,10094,3.872,10245,3.674,10246,3.45,10257,3.766,10314,4.33,10317,3.45,10418,4.33,10428,4.33,10582,3.996,10585,3.996,10807,4.144,10816,4.33,12183,3.872,12184,3.996,12445,3.996,12822,4.144,13367,3.996,13371,3.674,13372,3.674,13390,3.674,13432,3.996,13436,3.766,13644,3.996,14327,4.144,14391,3.872,14405,3.872,14419,4.144,14426,4.144,14711,3.996,15226,3.996,15230,3.872,15401,3.996,15405,4.144,16606,3.996,16790,3.996,17752,4.33,17766,4.144,17769,3.872,17770,3.996,17771,3.996,17772,3.996,17773,3.996,17774,3.996,17775,3.996,17776,3.996,17845,4.144,18123,4.144,19386,4.144,19772,4.144,20869,4.144,22250,14.398,22251,14.398,22252,13.334,22253,11.374]],["title/properties.html",[165,0.641,21324,4.9]],["body/properties.html",[30,0.001,103,0.001,104,0.001,165,0.817,379,2.386,1987,6.647,2116,5.6,2485,4.471,2573,9.561,4499,6.312,7661,7.204,11540,7.671,16421,7.345,19438,7.864,22017,9.561,22248,9.561,22254,10.625,22255,9.561,22256,8.653,22257,10.35,22258,10.35,22259,10.35,22260,10.35]],["title/todo.html",[1555,3.506,1919,2.329,21597,4.9]],["body/todo.html",[0,0.19,5,0.008,30,0.001,31,0.455,32,0.114,34,1.391,36,1.215,47,0.407,72,2.625,99,0.949,100,2.714,103,0,104,0,112,2.14,127,0.706,150,2.05,165,0.441,199,3.095,204,2.781,329,3.082,336,1.362,359,1.939,367,3.902,368,2.208,380,2.56,381,1.84,425,2.978,433,2.108,444,3.108,449,2.248,461,1.869,481,2.18,483,2.691,509,4.05,524,3.295,571,3.495,574,4.743,576,5.622,667,2.625,685,2.928,701,3.332,704,2.762,722,4.899,778,3.757,779,7.069,798,3.495,839,2.625,1021,2.975,1052,2.278,1126,4.05,1134,3.757,1236,7.202,1240,5.506,1252,5.684,1285,4.05,1295,3.227,1299,3.761,1383,4.248,1491,5.979,1492,3.369,1500,3.757,1508,4.588,1683,3.295,1708,5.874,1725,5.874,1819,3.59,1828,2.493,1919,2.322,1941,7.882,1987,5.206,1991,6.855,2092,4.588,2116,3.025,2171,2.403,2173,3.739,2183,4.143,2187,3.757,2263,3.967,2478,3.195,2485,4.519,2488,3.822,2504,7.974,2507,5.206,2508,7.86,2570,3.025,2571,3.891,2769,2.762,3261,3.822,3262,3.495,3285,4.944,3462,3.642,3542,5.729,3613,4.143,3976,4.367,4038,5.004,4169,3.698,4485,3.822,4531,8.953,4556,2.862,4630,4.957,4631,6.778,4632,3.822,4825,3.495,4960,3.541,4997,3.642,5407,4.367,5998,4.883,6046,5.542,6325,6.333,6331,5.874,6334,3.891,6335,4.883,6338,4.674,6418,7.451,6727,2.999,6731,3.164,6758,3.642,6896,3.59,7652,3.409,7659,4.367,7660,4.143,7661,7.731,7662,7.247,7668,3.369,8096,4.506,8152,4.248,8159,5.753,9401,3.495,9444,6.778,9611,6.769,9971,4.674,10297,5.164,10463,5.164,10533,4.367,11156,3.451,11204,5.874,11421,3.822,11586,4.143,11592,3.891,11593,4.248,11608,4.143,11828,6.535,12670,4.674,13340,4.883,13418,4.506,14241,4.883,14555,4.674,15251,4.506,16207,4.883,16257,4.367,16421,3.967,17870,7.451,18178,5.164,19438,4.248,19449,4.143,19725,4.883,20293,5.164,21324,4.883,21448,5.164,21599,6.16,21618,4.883,21621,4.674,21660,4.674,21700,4.506,21809,4.674,21834,5.164,21953,4.883,22229,7.082,22245,4.506,22261,5.59,22262,5.59,22263,5.164,22264,4.674,22265,4.883,22266,5.164,22267,5.59,22268,5.59,22269,5.59,22270,4.674,22271,5.59,22272,5.59,22273,5.59,22274,4.674,22275,5.59,22276,5.59,22277,5.164,22278,5.59,22279,5.59,22280,5.59,22281,5.59,22282,5.59,22283,4.674,22284,4.883,22285,5.59,22286,5.59,22287,5.59,22288,5.59,22289,5.164,22290,5.59,22291,5.164,22292,5.59,22293,5.59,22294,5.59,22295,5.59,22296,5.59,22297,5.59,22298,4.883,22299,5.59,22300,5.59,22301,5.59,22302,5.59,22303,5.164,22304,5.59,22305,5.59,22306,5.59,22307,5.59,22308,5.59,22309,5.59,22310,5.59,22311,5.59,22312,9.538,22313,5.59,22314,5.59,22315,5.59,22316,5.59,22317,5.59,22318,5.59,22319,4.674,22320,8.107,22321,5.59,22322,5.59]],["title/additional-documentation/nestjs-application.html",[1014,2.356,1507,2.8,3459,2.861,3874,3.041]],["body/additional-documentation/nestjs-application.html",[5,0.014,18,1.847,30,0.001,31,0.417,33,0.298,72,1.754,78,6.343,87,1.847,95,0.048,103,0,104,0,163,3.273,185,1.463,210,2.4,240,1.171,329,1.101,336,0.911,355,1.47,359,2.068,367,1.799,368,1.476,404,0.676,425,2.276,427,2.204,443,2.345,475,1.872,511,3.809,524,2.203,574,5.036,577,2.095,627,2.316,667,4.356,704,2.946,722,4.093,744,2.708,766,1.606,774,4.076,779,5.514,781,3.264,784,1.973,803,3.727,845,2.652,948,4.53,951,4.53,956,3.885,957,3.375,1014,2.927,1021,4.937,1110,2.4,1113,3.012,1114,1.516,1236,5.592,1237,7.248,1240,3.442,1252,3.553,1253,4.561,1295,3.442,1298,3.987,1301,2.927,1427,3.264,1438,5.707,1473,3.408,1491,4.853,1507,2.179,1508,2.115,1510,4.651,1541,8.107,1555,5.308,1661,2.435,1696,3.408,1708,5.39,1722,3.124,1723,3.012,1724,5.544,1922,2.367,1941,2.652,1987,3.829,1991,2.022,2116,5.351,2171,1.606,2172,1.787,2173,3.916,2267,4.32,2317,5.208,2344,1.544,2400,3.408,2412,7.725,2478,2.136,2500,2.307,2507,3.829,2508,7.823,2509,2.77,2510,2.367,2526,2.367,2571,4.15,2572,2.4,2579,2.652,2658,2.601,2778,3.885,2835,5.06,2841,2.512,2882,2.227,3262,3.727,3457,5.178,3458,6.264,3459,6.787,3462,4.847,3542,1.927,3543,5.453,3544,1.552,3548,3.124,3550,2.919,3871,3.012,3872,2.555,3874,7.367,3900,2.839,4630,3.099,4945,2.005,4997,2.435,5233,3.012,5385,3.264,5400,3.944,5472,1.847,6047,2.435,6127,2.472,6145,2.435,6146,2.435,6222,5.208,6270,2.839,6328,3.452,6367,4.008,6414,2.708,6491,2.227,6589,2.367,6911,2.435,7652,3.636,7657,6.584,7661,6.458,7676,4.985,7679,5.805,7821,4.806,7840,6.293,8117,3.452,8537,2.203,8679,4.419,9387,4.419,9691,4.658,9971,3.124,9975,4.717,9980,2.839,10022,2.919,10277,4.32,10278,4.53,10349,2.601,10351,2.252,10768,2.839,10789,4.231,11042,3.124,11126,3.264,11156,5.241,11216,2.4,11254,3.264,11280,9.135,11284,3.452,11285,2.77,11390,3.124,11418,3.264,11421,2.555,11580,2.919,11591,4.32,11608,5.514,11610,2.77,11617,3.012,11827,2.708,11845,2.472,12377,2.919,12528,2.708,12571,3.012,12669,3.124,12906,3.264,13159,3.012,13361,2.77,13420,3.012,13422,3.012,14084,6.872,14495,7.972,14542,5.997,14886,2.839,14902,3.124,15251,3.012,15253,3.124,16207,8.105,17222,2.652,19438,6.452,19448,3.264,19449,6.877,19875,5.508,20285,3.124,20469,4.806,21407,3.452,21456,3.452,21464,3.452,21465,3.452,21598,3.124,21599,9.256,21600,5.208,21601,3.124,21603,3.012,21606,3.264,21616,6.22,21617,9.979,21637,3.264,21722,3.264,21767,3.012,21801,5.508,21808,3.452,21809,6.22,21810,5.208,21918,3.264,21933,3.012,21942,5.208,22000,3.264,22038,3.452,22080,3.452,22086,3.452,22196,5.208,22216,3.124,22252,3.452,22270,9.287,22283,4.985,22284,5.208,22298,5.208,22303,8.571,22323,3.737,22324,3.737,22325,7.757,22326,3.737,22327,3.737,22328,3.737,22329,3.737,22330,3.737,22331,5.962,22332,3.737,22333,6.499,22334,3.737,22335,3.737,22336,3.737,22337,3.737,22338,3.737,22339,3.737,22340,3.737,22341,3.737,22342,3.737,22343,3.737,22344,3.737,22345,3.737,22346,3.737,22347,3.737,22348,8.571,22349,3.452,22350,3.452,22351,3.452,22352,3.452,22353,3.452,22354,3.452,22355,3.452,22356,3.452,22357,3.737,22358,3.452,22359,3.737,22360,3.737,22361,3.737,22362,5.962,22363,3.264,22364,3.452,22365,3.264,22366,3.264,22367,3.737,22368,9.278,22369,3.737,22370,3.452,22371,3.737,22372,3.737,22373,9.889,22374,3.737,22375,3.737,22376,3.737,22377,3.737,22378,5.962,22379,8.491,22380,3.737,22381,5.962,22382,3.737,22383,5.962,22384,5.962,22385,3.737,22386,3.737,22387,8.491,22388,3.737,22389,3.737,22390,3.737,22391,3.737,22392,5.962,22393,3.737,22394,3.737,22395,3.737,22396,3.737,22397,5.962,22398,3.737,22399,3.737,22400,3.737,22401,3.452,22402,3.737,22403,3.737,22404,3.737,22405,5.962,22406,3.737,22407,3.737,22408,3.737,22409,3.737,22410,3.737,22411,3.737,22412,3.737,22413,5.962,22414,7.439,22415,3.737,22416,3.737,22417,7.439,22418,5.962,22419,3.737,22420,3.737,22421,3.737,22422,3.737,22423,3.737,22424,3.737,22425,3.737,22426,3.737,22427,5.962,22428,3.737,22429,5.962,22430,5.962,22431,3.452,22432,3.737,22433,6.872,22434,3.737,22435,3.737,22436,3.737,22437,3.452,22438,3.452,22439,3.737,22440,3.737,22441,3.737,22442,3.737,22443,3.737,22444,3.737,22445,3.737,22446,3.737]],["title/additional-documentation/nestjs-application/software-architecture.html",[1014,2.356,1507,2.8,21605,3.87,21667,4.013]],["body/additional-documentation/nestjs-application/software-architecture.html",[0,0.324,2,0.713,5,0.006,7,0.06,8,0.475,27,0.395,30,0.001,72,4.748,95,0.05,101,0.017,103,0,104,0,105,0.519,107,0.942,116,2.491,200,3.1,208,2.856,234,0.638,334,1.209,336,2.752,381,2.044,425,3.429,427,4.652,428,1.534,432,2.845,433,1.484,447,3.227,449,2.497,461,0.907,481,1.534,535,3.36,565,2.077,569,2.644,571,2.459,573,2.989,574,2.816,667,2.916,672,4.442,687,1.825,694,2.111,711,2.344,744,2.85,766,1.691,768,5.461,784,3.279,883,1.65,946,2.563,950,3.073,956,5.014,957,4.356,960,2.689,1110,2.526,1114,4.296,1126,4.5,1253,5.062,1295,3.585,1309,4.323,1417,2.526,1491,6.61,1492,2.371,1510,2.459,1724,2.206,1919,1.634,1921,2.602,1922,5.536,2086,2.738,2116,4.164,2185,3.515,2187,4.175,2282,4.175,2298,5.268,2309,3.482,2478,3.55,2485,5.565,2489,6.051,2499,3.289,2500,2.428,2503,3.171,2508,2.526,2509,2.916,2526,3.934,2543,2.989,2572,2.526,2576,3.634,2577,5.975,2578,4.047,2579,2.792,2672,2.459,2769,1.944,2778,2.563,3262,4.811,3331,3.482,3459,2.344,3542,2.029,3548,7.955,3552,4.603,3566,3.073,3613,4.603,3852,4.246,3870,3.171,3872,5.975,3874,3.934,4000,2.459,4038,2.428,4169,6.689,4220,2.738,4480,2.85,4531,5.007,4533,2.371,4571,3.289,4641,6.395,4997,5.694,5223,3.634,5346,4.874,5389,2.85,5395,2.989,5406,3.289,5410,2.492,5515,5.737,5999,4.323,6045,3.073,6047,4.047,6058,3.634,6329,2.738,6706,2.459,6707,4.5,6896,2.526,6984,3.171,7349,4.719,7652,2.399,7662,2.989,7840,2.916,8152,2.989,8682,2.989,9387,2.916,9401,4.811,9419,7.377,9474,2.989,9600,2.916,9725,2.644,9822,2.792,9975,3.45,10000,3.171,10381,2.989,10534,5.737,10548,2.989,11153,3.171,11156,3.834,11185,7.955,11204,4.5,11205,5.193,11226,4.603,11421,4.246,11590,2.602,11826,6.333,11827,2.85,11828,3.171,12133,3.289,12244,4.852,12377,3.073,12528,6.333,12573,6.434,12669,3.289,13238,4.852,13361,4.603,13413,3.073,13418,5.007,13420,3.171,13625,5.737,14024,3.437,14132,3.437,14904,3.634,15475,3.073,16086,3.437,16421,6.752,17137,5.426,17870,4.852,17875,3.289,18138,2.989,18306,6.434,18699,3.634,19006,3.171,19054,3.437,19255,3.289,19972,3.437,20285,3.289,20545,3.437,21553,3.289,21557,3.289,21561,3.437,21594,3.171,21599,2.989,21605,8.152,21607,5.426,21608,6.204,21620,3.289,21621,3.289,21624,2.989,21633,4.852,21667,5.193,21700,3.171,21701,7.955,21717,3.289,21730,3.289,21731,7.109,21737,3.634,21752,3.437,21755,5.426,21767,3.171,21774,3.289,21786,3.634,21789,3.437,21817,6.723,21838,3.073,21869,3.634,21881,3.437,21889,3.634,21918,3.437,21919,3.437,21942,5.426,22076,7.109,22127,3.634,22180,3.634,22182,6.434,22230,5.737,22242,3.289,22253,3.634,22256,3.289,22264,6.434,22274,7.955,22366,3.437,22447,3.934,22448,3.934,22449,9.515,22450,3.934,22451,3.934,22452,3.934,22453,3.934,22454,3.934,22455,8.74,22456,3.934,22457,3.634,22458,3.934,22459,3.934,22460,7.695,22461,10.384,22462,3.934,22463,3.934,22464,7.109,22465,3.934,22466,3.934,22467,3.934,22468,3.634,22469,3.934,22470,3.289,22471,3.289,22472,3.934,22473,7.695,22474,8.312,22475,5.193,22476,3.934,22477,3.934,22478,7.635,22479,3.934,22480,6.211,22481,3.437,22482,3.934,22483,6.211,22484,3.934,22485,3.934,22486,3.934,22487,3.934,22488,3.934,22489,3.934,22490,3.934,22491,3.634,22492,3.934,22493,3.934,22494,3.634,22495,3.934,22496,6.211,22497,3.634,22498,3.934,22499,3.934,22500,3.934,22501,8.074,22502,3.934,22503,3.634,22504,3.934,22505,3.934,22506,3.934,22507,3.634,22508,3.934,22509,3.934,22510,6.211,22511,3.934,22512,3.934,22513,3.934,22514,3.437,22515,3.934,22516,3.634,22517,3.934,22518,3.934,22519,3.934,22520,3.934,22521,3.634,22522,3.934,22523,3.934,22524,3.934,22525,3.934,22526,3.934,22527,5.737,22528,3.934,22529,3.934,22530,6.211,22531,6.211,22532,7.695,22533,7.695,22534,6.211,22535,6.211,22536,3.634,22537,3.934,22538,3.934,22539,3.289,22540,6.211,22541,3.934,22542,3.934,22543,3.934,22544,3.934,22545,3.437,22546,3.934,22547,3.934,22548,3.934,22549,3.934,22550,3.934,22551,6.211,22552,3.934,22553,3.634,22554,3.934]],["title/additional-documentation/nestjs-application/file-structure.html",[5,0.007,1014,2.356,1507,2.8,5221,3.75]],["body/additional-documentation/nestjs-application/file-structure.html",[0,0.374,2,0.383,3,0.009,5,0.016,9,2.599,27,0.39,30,0.001,31,0.555,32,0.076,34,0.572,36,1.181,72,4.108,95,0.07,100,3.314,101,0.018,103,0,104,0,105,0.717,112,1.544,127,0.421,154,1.519,163,2.505,165,0.543,185,1.305,192,2.053,206,4.479,208,2.555,215,1.078,217,1.047,221,1.281,227,0.725,234,1.117,235,1.886,240,1.044,309,4.952,329,0.982,331,2.083,334,0.367,336,1.324,355,1.31,359,1.885,364,1.472,368,1.316,374,2.199,380,2.071,381,3.089,425,3.349,427,4.156,428,1.299,431,1.322,432,2.009,433,3.54,441,2.032,447,2.886,449,2.185,461,1.587,481,4.025,491,2.668,494,2.008,513,2.782,535,5.586,543,1.669,569,2.239,571,2.083,574,5.616,575,1.985,577,1.868,667,1.564,672,4.447,687,1.546,696,1.718,704,3.925,722,1.47,744,3.938,766,5.159,768,4.885,769,3.239,782,2.91,839,2.552,845,2.364,883,3.33,940,5.021,951,2.531,954,2.469,956,3.541,957,1.886,1016,1.19,1021,1.773,1236,3.276,1252,5.593,1253,2.507,1285,4.988,1295,3.137,1301,1.635,1384,5.377,1405,4.246,1491,5.658,1492,4.149,1499,5.887,1500,2.239,1507,4.015,1508,1.886,1661,2.171,1683,1.964,1724,1.868,1725,4.988,1819,2.139,1828,3.069,1910,1.574,1921,2.204,1922,3.443,1923,2.785,1937,4.748,1945,1.802,1950,5.549,1952,2.916,1960,6.402,1987,7.366,2008,3.49,2092,1.886,2116,1.802,2187,3.653,2282,3.653,2298,2.008,2309,3.047,2344,2.246,2485,2.974,2489,1.904,2508,4.421,2510,5.031,2515,2.785,2516,2.91,2570,3.724,2571,2.319,2579,2.364,2672,2.083,2769,1.646,2778,4.485,2880,1.593,2955,1.886,3061,2.531,3262,3.397,3307,2.686,3331,1.868,3372,2.277,3419,2.056,3459,6.364,3542,3.55,3613,2.469,3710,2.008,3851,4.246,3852,2.277,3853,2.414,3872,3.715,3873,4.246,3874,2.11,4000,2.083,4013,4.13,4038,2.056,4166,2.91,4169,2.204,4531,4.381,4533,3.276,4556,1.706,4582,2.686,4630,1.731,4632,2.277,4960,5.031,5097,2.11,5221,2.602,5346,4.36,5389,2.414,5401,2.531,5944,2.11,5974,2.171,6000,3.077,6046,2.277,6047,2.171,6054,2.364,6325,5.377,6334,3.783,6339,2.686,6367,4.627,6731,3.896,6898,4.381,6911,3.541,7349,2.531,7601,2.531,7679,4.706,7907,2.319,8013,6.013,8101,2.785,8152,2.531,8161,2.785,8251,6.8,8682,2.531,8840,2.91,9343,3.077,9348,3.077,9387,2.469,9401,3.397,9418,2.602,9419,6.939,9420,5.549,9421,2.686,9422,2.785,9423,2.785,9427,2.91,9444,4.544,9445,2.602,9600,2.469,9611,2.364,10329,2.785,10380,2.785,10491,2.785,10767,5.021,10768,2.531,11184,2.785,11185,5.755,11216,4.421,11226,5.102,11240,2.91,11279,5.755,11483,4.544,11484,2.531,11826,4.988,12358,2.785,12377,6.835,12528,2.414,12659,2.91,12723,3.077,13238,6.204,13413,4.246,14497,2.686,14558,3.077,14620,3.077,14621,3.077,14622,2.785,14623,3.077,14624,2.91,14663,2.91,14886,2.531,14924,6.013,15475,2.602,16257,2.602,16421,2.364,16793,4.748,17062,2.686,17870,7.332,18971,3.077,21553,2.785,21587,2.91,21605,4.381,21616,2.785,21632,2.785,21633,5.377,21642,2.91,21651,5.755,21653,2.686,21658,2.91,21660,2.785,21704,2.686,21774,2.785,21789,2.91,21795,2.91,21796,3.077,21816,2.91,21820,3.077,21840,2.686,21895,3.077,21933,2.686,22000,2.91,22106,6.359,22175,2.91,22182,2.785,22199,3.077,22216,2.785,22244,3.077,22245,4.381,22256,2.785,22264,6.64,22265,6.013,22274,2.785,22319,5.755,22325,4.544,22364,3.077,22365,6.013,22366,2.91,22370,3.077,22461,7.566,22474,2.91,22475,2.785,22478,2.91,22536,3.077,22555,7.337,22556,4.748,22557,6.359,22558,3.077,22559,3.331,22560,5.435,22561,3.331,22562,9.385,22563,4.748,22564,7.942,22565,3.331,22566,3.331,22567,3.331,22568,5.435,22569,7.942,22570,3.331,22571,3.331,22572,3.331,22573,3.331,22574,5.435,22575,2.91,22576,3.331,22577,3.331,22578,3.331,22579,3.331,22580,3.331,22581,3.331,22582,3.331,22583,3.331,22584,3.331,22585,3.331,22586,3.331,22587,3.331,22588,3.331,22589,3.077,22590,3.331,22591,3.331,22592,3.331,22593,3.331,22594,3.331,22595,3.331,22596,3.331,22597,3.331,22598,3.331,22599,3.331,22600,3.331,22601,3.331,22602,3.077,22603,3.331,22604,3.331,22605,3.077,22606,5.021,22607,3.331,22608,3.331,22609,3.331,22610,3.331,22611,3.331,22612,3.331,22613,3.331,22614,3.331,22615,3.331,22616,3.331,22617,3.331,22618,3.331,22619,3.331,22620,3.331,22621,3.331,22622,3.331,22623,3.331,22624,3.331,22625,3.331,22626,3.077,22627,3.331,22628,3.331,22629,3.331,22630,3.331,22631,3.331,22632,3.077,22633,3.331,22634,3.331,22635,3.331,22636,3.331,22637,3.331,22638,3.331,22639,6.359,22640,2.91,22641,5.435,22642,3.331,22643,3.331,22644,3.331,22645,3.331,22646,3.331,22647,3.331]],["title/additional-documentation/nestjs-application/api-design.html",[1014,2.356,1491,2.743,1507,2.8,22256,4.013]],["body/additional-documentation/nestjs-application/api-design.html",[30,0.001,103,0.001,104,0.001,21997,9.716]],["title/additional-documentation/nestjs-application/logging.html",[1014,2.753,1507,3.271,6332,4.157]],["body/additional-documentation/nestjs-application/logging.html",[0,0.349,3,0.021,8,0.948,26,1.638,30,0.001,39,3.057,95,0.101,101,0.02,103,0.001,104,0.001,116,2.54,163,3.812,199,2.996,204,3.514,214,3.371,215,3.315,216,1.451,227,0.827,234,1.273,235,4.441,277,3.141,334,0.865,415,4.282,425,2.104,574,4.644,675,4.32,688,4.142,728,3.073,738,4.53,777,7.783,839,3.684,883,3.29,1052,5.565,1053,3.48,1252,4.676,1327,4.953,1500,6.885,1542,5.641,1543,5.323,1545,2.507,1547,3.904,1819,5.039,2489,4.485,2500,4.844,2514,5.191,2577,5.364,4038,4.844,4587,6.855,4632,7.796,5400,5.191,5407,6.13,6229,6.561,6332,8.959,6707,5.686,6760,5.686,7668,4.729,8159,9.296,8160,6.855,8190,6.13,10548,5.962,11185,6.561,11485,5.816,11522,8.948,11523,6.855,11568,6.13,11828,6.326,12133,6.561,13420,6.326,14048,6.561,19654,8.257,21838,6.13,21882,7.249,21933,6.326,22245,6.326,22648,7.847,22649,7.847,22650,7.847,22651,10.243,22652,7.847,22653,7.847,22654,7.847,22655,7.847,22656,7.847,22657,7.847,22658,7.847,22659,7.847,22660,7.847,22661,7.847,22662,7.847,22663,7.249,22664,7.249,22665,7.847]],["title/additional-documentation/nestjs-application/exception-handling.html",[1014,2.356,1507,2.8,1819,3.083,6331,3.478]],["body/additional-documentation/nestjs-application/exception-handling.html",[0,0.309,9,3.13,30,0.001,31,0.367,32,0.165,47,0.818,48,5.272,51,4.48,72,4.256,101,0.017,103,0.001,104,0.001,111,1.309,116,2.119,163,3.28,204,4.541,214,2.984,215,2.119,216,1.677,217,0.863,227,0.69,234,1.822,240,2.841,305,2.993,329,3.064,334,0.721,367,3.15,404,1.183,406,2.091,407,5.276,417,4.851,425,1.755,503,5.464,565,4.786,571,4.091,574,4.715,672,4.607,676,3.512,685,3.428,689,3.636,722,3.999,744,4.742,784,3.455,883,2.744,954,4.851,1016,3.238,1110,4.203,1158,3.483,1253,4.797,1327,4.818,1473,3.741,1474,2.222,1490,6.046,1491,5.181,1492,6.269,1498,6.569,1500,8.199,1507,5.287,1508,5.887,1510,4.091,1515,4.203,1542,5.692,1547,3.257,1817,5.472,1819,8.415,1826,6.046,1922,4.146,2038,4.474,2309,3.669,2505,5.472,2507,4.203,2514,4.329,2577,6.198,3061,4.973,3459,6.198,3544,2.718,3851,5.113,3870,9.504,3871,5.276,3876,8.125,4038,6.42,4582,5.276,4632,4.474,5409,5.472,5410,4.146,5451,4.973,6331,4.742,6332,6.719,6338,5.472,7848,5.472,8137,3.401,8152,7.903,8159,4.645,8210,5.113,8216,6.046,8218,5.472,8537,3.858,8538,4.04,9401,5.667,9445,5.113,10473,6.046,11485,4.851,13422,5.276,14555,5.472,19959,6.046,21598,5.472,21679,6.046,21806,6.046,21838,5.113,22002,11.956,22475,5.472,22539,5.472,22589,6.046,22666,6.046,22667,6.545,22668,9.066,22669,6.545,22670,6.545,22671,6.545,22672,6.545,22673,6.545,22674,6.545,22675,6.545,22676,6.545,22677,6.545,22678,6.545,22679,6.545,22680,6.545,22681,6.545,22682,6.046,22683,6.545,22684,6.545,22685,6.545,22686,6.545,22687,6.046,22688,6.545]],["title/additional-documentation/nestjs-application/domain-object-validation.html",[359,1.455,1014,2.059,1492,2.528,1507,2.447,2485,1.812]],["body/additional-documentation/nestjs-application/domain-object-validation.html",[0,0.304,30,0.001,103,0.001,104,0.001,116,2.896,188,3.388,334,1.227,347,1.823,359,4.526,475,5.579,574,4.056,667,4.2,685,4.685,692,3.333,704,4.421,783,5.392,957,6.303,1492,5.392,1872,5.918,1922,5.667,2187,6.013,2477,6.874,2485,5.639,2499,7.48,2507,7.151,2514,7.366,2570,4.84,2691,4.886,2881,4.079,3106,5.016,3465,7.48,5383,7.815,5389,6.482,5974,5.829,5999,6.227,7840,6.631,9419,6.013,9574,6.349,9980,8.461,11591,6.482,11826,6.482,13413,6.989,18138,6.798,21628,7.212,21735,9.31,21767,7.212,21897,8.264,22175,7.815,22185,10.287,22468,8.264,22639,12.706,22689,8.946,22690,8.946,22691,8.946,22692,8.946,22693,11.136,22694,8.946,22695,8.946,22696,8.946,22697,8.946,22698,8.946,22699,11.136,22700,8.946]],["title/additional-documentation/nestjs-application/testing.html",[1014,2.753,1507,3.271,10789,3.98]],["body/additional-documentation/nestjs-application/testing.html",[0,0.181,27,0.167,29,0.421,30,0.001,31,0.298,32,0.109,35,0.486,36,1.697,51,1.151,72,4.516,79,3.515,94,1.107,95,0.03,96,0.63,100,0.78,103,0,104,0,112,2.441,144,1.728,150,1.476,163,3.133,188,1.524,199,0.89,200,1.731,204,3.503,209,0.802,217,1.408,221,2.342,227,0.823,234,0.378,235,3.579,290,1.345,309,4.42,329,1.186,379,0.928,380,0.842,381,1.748,394,2.3,425,2.373,428,2.465,432,1.964,443,0.916,444,0.893,447,1.687,449,0.937,460,3.036,461,0.928,475,1.167,481,0.909,500,1.593,511,1.193,535,3.421,569,1.566,571,2.516,573,1.771,574,4.842,575,1.389,672,1.184,687,4.737,688,3.338,691,4.09,698,1.283,704,4.374,711,1.389,728,2.795,744,1.688,766,2.718,768,2.856,774,1.593,779,4.686,784,1.23,795,1.373,836,2.323,839,1.094,883,3.275,905,0.968,948,3.058,954,1.727,1018,1.518,1110,1.496,1114,0.945,1126,6.413,1158,2.141,1236,7.683,1237,1.82,1240,2.323,1253,4.082,1285,1.688,1295,3.65,1300,1.081,1301,1.144,1306,1.771,1420,1.622,1491,5.058,1499,1.727,1500,1.566,1508,1.319,1510,1.457,1512,3.515,1555,1.457,1659,4.487,1662,2.152,1705,2.035,1724,1.306,1725,1.688,1828,3.482,1871,1.438,1872,2.662,1921,1.541,1922,1.476,1924,1.771,1936,1.82,2048,2.035,2092,1.319,2116,2.177,2183,1.727,2185,1.319,2186,2.549,2263,1.654,2267,1.688,2317,2.035,2395,3.036,2439,4.581,2450,2.549,2477,1.438,2478,3.614,2489,4.785,2500,3.279,2507,2.584,2508,8.153,2510,1.476,2515,1.948,2518,2.035,2543,1.771,2563,1.457,2570,4.53,2571,2.801,2578,5.088,2579,4.487,2672,1.457,2684,1.688,2730,3.365,2955,1.319,3027,2.3,3091,1.062,3106,1.306,3110,1.129,3145,4.804,3285,2.454,3331,1.306,3397,1.541,3459,2.398,3462,6.814,3548,3.365,3550,1.82,3613,1.727,3852,2.751,3872,1.593,3873,1.82,3874,1.476,3976,3.144,4168,2.035,4169,2.662,4480,4.581,4556,2.06,4582,3.244,4630,1.211,4632,3.631,4638,1.82,4641,1.566,4960,1.476,4989,1.438,4997,1.518,5121,3.411,5221,5.576,5227,1.948,5346,2.549,5389,2.916,5400,1.541,5401,1.771,5403,1.82,5404,1.878,5405,1.771,5412,1.771,5437,1.948,5451,1.771,5566,2.705,5974,1.518,5994,1.948,5999,1.622,6047,2.622,6122,1.541,6329,1.622,6331,2.916,6367,1.566,6414,1.688,6418,1.82,6637,4.581,6706,1.457,6707,1.688,6717,1.727,6731,1.319,6758,3.461,6809,6.236,6896,1.496,6901,1.82,7339,1.622,7349,3.058,7629,2.983,7652,5.866,7659,1.82,7661,3.697,7670,3.515,7676,3.365,7679,2.751,7778,2.035,7907,2.801,8101,1.948,8508,7.466,9141,1.82,9387,5.291,9388,2.152,9401,4.462,9418,3.144,9419,1.566,9445,6.914,9474,1.771,9690,1.82,9980,1.771,9981,2.152,10000,3.244,10275,1.688,10278,3.058,10317,2.801,10323,5.659,10326,1.727,10359,1.948,10533,1.82,10543,2.152,10768,1.771,10769,1.878,10787,7.214,10789,7.721,10910,2.035,11199,1.82,11200,2.152,11204,1.688,11216,2.584,11279,1.948,11421,2.751,11484,3.058,11586,1.727,11591,1.688,11635,1.771,11826,2.916,12134,2.152,12528,3.849,12564,4.282,12571,1.878,12670,1.948,12929,2.035,12936,5.523,13160,1.878,13231,1.878,13354,2.035,13359,1.948,13412,3.515,13413,1.82,13420,1.878,13421,2.035,13422,1.878,13440,1.654,13626,3.937,14044,3.717,14048,3.365,14231,3.717,14664,2.035,14716,3.244,14883,3.365,15097,2.152,15475,1.82,16263,1.878,16421,3.769,16476,1.948,16486,2.035,17103,2.035,17137,2.035,17241,3.515,17875,1.948,18138,1.771,18287,2.035,18306,1.948,18910,4.441,19006,3.244,19056,3.515,19058,2.152,19064,2.152,19255,1.948,19436,3.717,19438,4.804,19439,5.841,19443,5.841,19448,5.523,19449,2.983,19713,3.515,20456,7,20469,3.244,20709,4.907,21404,2.035,21428,2.152,21557,1.948,21564,2.152,21599,3.058,21601,3.365,21608,1.878,21610,1.948,21612,3.365,21617,1.771,21624,1.771,21628,1.878,21630,2.035,21633,4.939,21653,1.878,21667,1.948,21680,2.152,21683,2.152,21686,2.152,21688,2.152,21700,1.878,21701,1.948,21704,1.878,21705,2.152,21720,2.152,21721,2.152,21735,3.365,21752,3.515,21767,4.282,21774,1.948,21792,2.152,21795,2.035,21802,2.152,21810,2.035,21817,2.035,21840,1.878,21881,2.035,21887,2.035,21919,2.035,21933,1.878,21953,2.035,21997,2.035,22107,2.152,22125,2.152,22159,2.152,22186,2.152,22190,2.152,22196,2.035,22229,2.035,22242,1.948,22264,1.948,22265,2.035,22274,4.441,22289,4.907,22291,3.717,22319,1.948,22325,7.399,22363,2.035,22431,2.152,22461,3.244,22464,2.152,22471,1.948,22474,2.035,22475,1.948,22478,3.515,22481,2.035,22494,2.152,22501,2.152,22503,2.152,22514,3.515,22516,2.152,22521,8.886,22539,3.365,22545,3.515,22553,3.717,22555,4.907,22556,2.035,22557,3.717,22558,2.152,22563,2.035,22575,3.515,22605,2.152,22606,2.152,22632,2.152,22664,2.152,22666,2.152,22682,2.152,22701,2.33,22702,2.33,22703,2.33,22704,6.323,22705,2.035,22706,2.33,22707,3.717,22708,5.311,22709,2.33,22710,4.024,22711,2.33,22712,2.33,22713,4.024,22714,2.33,22715,2.33,22716,2.33,22717,2.035,22718,2.33,22719,2.33,22720,2.33,22721,2.33,22722,2.33,22723,2.33,22724,2.33,22725,2.33,22726,2.33,22727,2.33,22728,2.33,22729,2.33,22730,6.323,22731,2.33,22732,2.152,22733,2.33,22734,2.33,22735,2.152,22736,2.33,22737,2.33,22738,7.81,22739,2.33,22740,2.33,22741,2.33,22742,2.33,22743,2.33,22744,3.717,22745,4.024,22746,7.138,22747,4.024,22748,2.33,22749,2.33,22750,2.035,22751,2.33,22752,5.311,22753,4.024,22754,4.024,22755,7.81,22756,4.024,22757,2.33,22758,2.33,22759,2.152,22760,2.035,22761,5.311,22762,2.33,22763,5.311,22764,4.024,22765,7.138,22766,4.024,22767,5.311,22768,2.33,22769,2.33,22770,2.33,22771,4.024,22772,8.372,22773,2.33,22774,2.33,22775,2.33,22776,2.33,22777,2.33,22778,2.33,22779,2.33,22780,2.33,22781,2.33,22782,2.33,22783,2.33,22784,2.33,22785,2.33,22786,2.33,22787,2.33,22788,2.33,22789,2.33,22790,4.024,22791,2.33,22792,2.152,22793,5.311,22794,2.33,22795,2.33,22796,2.33,22797,2.33,22798,5.311,22799,2.33,22800,4.024,22801,4.024,22802,2.33,22803,2.33,22804,2.33,22805,2.33,22806,2.33,22807,4.024,22808,4.024,22809,4.024,22810,5.311,22811,2.33,22812,2.33,22813,4.024,22814,4.024,22815,4.024,22816,5.311,22817,2.33,22818,2.33,22819,2.33,22820,4.024,22821,2.33,22822,4.024,22823,2.33,22824,2.33,22825,2.33,22826,4.024,22827,4.024,22828,2.33,22829,2.33,22830,2.33,22831,2.33,22832,7.138,22833,2.33,22834,5.311,22835,2.152,22836,2.035,22837,2.33,22838,2.33,22839,2.33,22840,2.33,22841,2.33,22842,2.33,22843,2.33,22844,2.33,22845,6.323,22846,2.33,22847,2.33,22848,4.024,22849,2.33,22850,4.024,22851,2.33,22852,2.33,22853,2.33,22854,2.33,22855,2.33,22856,2.33,22857,2.33,22858,2.152,22859,2.33,22860,2.33,22861,2.33,22862,2.33,22863,2.33,22864,2.33,22865,4.024,22866,2.33,22867,2.33,22868,2.33,22869,2.33,22870,2.33,22871,2.33,22872,2.33,22873,2.33,22874,2.33,22875,2.33,22876,2.33]],["title/additional-documentation/nestjs-application/vscode.html",[1014,2.753,1507,3.271,21603,4.521]],["body/additional-documentation/nestjs-application/vscode.html",[5,0.016,30,0.001,72,4.49,103,0.001,104,0.001,210,6.141,722,5.118,795,5.637,950,7.47,1021,5.089,1236,5.764,2267,6.929,2508,7.45,3459,6.914,3542,5.984,3873,7.47,3874,7.349,4630,6.029,6047,6.23,6122,6.326,6327,7.995,7840,7.088,11221,7.709,11226,7.088,14016,8.354,19438,8.815,21603,9.352,21634,10.134,21809,7.995,21899,8.834,22068,8.354,22181,8.834,22232,11.537,22263,8.834,22270,7.995,22325,7.995,22365,8.354,22401,8.834,22437,8.834,22470,7.995,22575,8.354,22640,10.134,22877,9.563,22878,9.563,22879,9.563,22880,9.563,22881,9.563,22882,9.563,22883,9.563]],["title/additional-documentation/nestjs-application/git.html",[1014,2.753,1507,3.271,21604,4.689]],["body/additional-documentation/nestjs-application/git.html",[30,0.001,31,0.419,55,2.449,72,3.506,77,4.731,103,0.001,104,0.001,154,3.405,309,4.227,329,2.2,379,1.721,444,2.863,543,3.742,569,5.02,574,3.386,722,3.294,728,2.924,957,6.299,1021,3.974,1126,5.411,1239,6.244,1253,5.133,1300,3.465,1327,2.95,1474,2.535,1722,6.244,1723,6.02,1724,5.559,1872,6.558,1921,7.362,1941,7.036,1991,4.041,2049,9.948,2185,4.227,2282,5.02,2309,4.187,2477,4.61,2489,4.268,2508,6.367,2510,4.731,2563,4.669,2572,4.796,2577,5.105,2701,3.444,2835,4.451,2880,4.742,3397,4.94,4630,3.881,4641,5.02,4997,7.251,5346,4.731,5405,5.675,5998,8.661,6334,5.198,6589,4.731,6702,5.834,6911,4.866,7601,5.675,7679,5.105,9141,5.834,9822,5.3,11199,5.834,11311,5.3,11312,5.198,11456,6.524,11483,6.244,11590,4.94,11593,5.675,11825,6.524,13359,6.244,13361,8.788,13626,5.535,13786,8.661,14805,6.524,18891,6.899,21604,9.913,21623,6.524,21628,6.02,21638,6.524,21639,6.524,21651,9.305,21655,8.289,21701,9.913,21702,6.899,21838,7.745,21840,6.02,21887,9.723,21964,6.899,22128,6.899,22245,8.972,22277,6.899,22298,8.661,22457,6.899,22470,8.289,22491,6.899,22556,8.661,22602,6.899,22835,6.899,22836,6.524,22884,7.468,22885,7.468,22886,7.468,22887,7.468,22888,7.468,22889,7.468,22890,7.468,22891,11.13,22892,7.468,22893,7.468,22894,7.468,22895,7.468,22896,7.468,22897,7.468,22898,7.468,22899,9.915,22900,7.468,22901,7.468,22902,9.915,22903,7.468,22904,7.468,22905,7.468,22906,7.468,22907,7.468,22908,7.468,22909,7.468,22910,7.468,22911,7.468,22912,7.468,22913,7.468,22914,7.468]],["title/additional-documentation/nestjs-application/keycloak.html",[773,3.602,1014,2.753,1507,3.271]],["body/additional-documentation/nestjs-application/keycloak.html",[5,0.006,18,2.232,30,0.001,31,0.6,51,3.417,53,5.963,78,8.054,87,3.417,95,0.121,101,0.018,103,0,104,0,163,3.376,235,2.557,355,1.776,363,4.441,379,1.594,432,1.67,443,1.776,444,1.732,461,1.594,538,2.025,540,5.011,569,3.036,573,3.432,574,4.268,722,3.051,728,2.708,773,8.585,774,3.088,803,2.824,883,1.894,938,3.273,954,3.348,958,5.782,960,3.088,1021,5.401,1114,1.833,1126,3.273,1134,6.328,1236,4.168,1272,3.088,1295,2.607,1381,2.634,1382,5.187,1473,3.952,1491,3.952,1500,3.036,1541,3.529,1693,5.782,1717,5.396,1724,3.877,1916,3.35,1921,4.574,2008,2.901,2048,3.946,2076,3.651,2116,6.218,2173,4.342,2185,2.557,2267,3.273,2298,2.722,2400,6.568,2412,8.977,2423,2.755,2500,2.788,2509,6.228,2510,2.861,2514,2.988,2572,2.901,2577,3.088,2658,3.144,2841,8.081,2882,6.848,2955,3.914,3091,3.831,3262,5.253,3457,5.849,3462,4.506,3544,1.876,3547,3.036,3874,2.861,3948,6.385,4480,3.273,4556,4.302,4632,3.088,5346,2.861,5395,3.432,5452,3.946,6047,2.943,6270,3.432,6326,3.641,6461,2.861,6589,4.38,6637,3.273,6706,4.323,6896,4.441,6911,2.943,7136,6.978,7657,5.963,7840,5.126,8159,4.907,8508,8.629,9419,3.036,9735,3.529,9971,3.776,10277,3.273,10351,2.722,10705,6.088,10789,5.963,11126,8.225,11156,4.269,11184,3.776,11254,3.946,11421,5.744,11439,2.581,11580,7.928,11590,2.988,11604,3.641,11617,7.59,12809,7.34,12906,7.34,12908,7.59,12912,3.946,12948,7.154,13041,3.946,13160,3.641,13162,4.173,13236,6.388,13361,6.228,14016,3.946,14495,3.641,14542,6.774,14903,4.173,15027,3.776,15253,3.776,16421,5.963,19061,3.776,19438,3.432,19449,5.126,20469,3.641,21599,3.432,21602,3.946,21617,9.425,21627,3.946,21655,3.776,21704,3.641,21722,3.946,21761,4.173,21838,5.402,21870,4.173,21902,4.173,21935,4.173,22006,4.173,22254,8.866,22270,7.872,22333,10.502,22348,9.375,22349,7.762,22350,6.388,22351,6.388,22352,6.388,22353,8.697,22354,6.388,22355,6.388,22356,8.697,22358,4.173,22433,6.388,22735,4.173,22750,3.946,22792,4.173,22915,4.517,22916,4.517,22917,4.517,22918,4.517,22919,9.415,22920,4.517,22921,4.517,22922,4.517,22923,4.517,22924,4.517,22925,6.915,22926,4.517,22927,4.517,22928,4.517,22929,4.517,22930,6.915,22931,4.517,22932,6.915,22933,6.915,22934,6.915,22935,6.915,22936,11.141,22937,6.915,22938,6.915,22939,6.915,22940,6.915,22941,4.517,22942,4.517,22943,4.517,22944,10.149,22945,6.915,22946,6.915,22947,4.517,22948,4.517,22949,6.915,22950,4.517,22951,4.517,22952,4.517,22953,4.517,22954,4.517,22955,4.517,22956,6.915,22957,4.517,22958,4.517,22959,4.517,22960,6.915,22961,6.915,22962,4.517,22963,4.517,22964,4.517,22965,4.517,22966,4.517,22967,4.517,22968,4.517,22969,4.517,22970,4.517,22971,4.517]],["title/additional-documentation/nestjs-application/rocket.chat.html",[1014,2.753,1507,3.271,22972,5.181]],["body/additional-documentation/nestjs-application/rocket.chat.html",[5,0.011,30,0.001,31,0.418,103,0.001,104,0.001,210,4.787,247,2.957,574,3.379,948,9.83,1021,3.967,1113,6.009,1114,3.024,1240,4.303,1252,5.901,1278,4.033,1294,5.189,1359,5.664,1405,7.736,1923,6.232,2116,5.358,2173,3.438,2400,8.132,2412,5.823,2477,4.601,2882,4.442,3457,5.189,3458,4.722,3462,4.857,3544,4.112,3874,4.722,6270,5.664,6908,5.664,8679,5.525,9725,5.01,10474,5.823,11610,5.525,14542,6.009,14806,6.512,14924,6.512,16793,8.65,19449,5.525,20724,6.232,21617,7.524,21840,6.009,22254,6.512,22283,6.232,22333,10.773,22471,6.232,22640,6.512,22972,10.272,22973,7.454,22974,7.454,22975,7.454,22976,7.454,22977,7.454,22978,9.902,22979,7.454,22980,7.454,22981,7.454,22982,7.454,22983,7.454,22984,7.454,22985,9.902,22986,7.454,22987,7.454,22988,7.454,22989,7.454,22990,7.454,22991,7.454,22992,7.454,22993,7.454,22994,7.454,22995,7.454,22996,7.454,22997,7.454,22998,7.454,22999,7.454,23000,7.454,23001,7.454,23002,7.454,23003,7.454,23004,7.454,23005,7.454,23006,7.454,23007,7.454,23008,7.454,23009,7.454,23010,7.454,23011,7.454,23012,7.454,23013,7.454,23014,7.454,23015,7.454,23016,7.454,23017,7.454,23018,7.454,23019,7.454,23020,7.454,23021,9.902,23022,9.902,23023,7.454,23024,7.454]],["title/additional-documentation/nestjs-application/configuration.html",[1014,2.753,1507,3.271,2171,2.411]],["body/additional-documentation/nestjs-application/configuration.html",[30,0.001,31,0.48,34,1.034,55,2.188,102,3.04,103,0.001,104,0.001,199,2.301,200,2.788,204,2.935,234,0.978,329,1.775,367,4.118,379,1.389,428,2.349,483,4.788,511,3.085,571,5.348,574,2.732,575,3.591,576,7.36,577,3.378,671,3.317,688,3.181,722,3.774,728,2.359,769,3.591,883,4.171,946,3.926,951,4.578,956,3.926,1021,3.206,1042,5.038,1110,3.87,1114,2.445,1236,3.632,1237,4.707,1239,10.216,1252,3.591,1253,4.588,1327,2.38,1473,3.444,1474,2.045,1491,4.889,1510,5.348,1725,6.199,1848,4.05,1871,3.719,1922,3.817,1987,7.344,1991,3.26,2008,3.87,2049,8.728,2116,4.629,2171,2.59,2173,2.779,2185,3.41,2489,6.188,2507,6.953,2508,5.494,2509,6.341,2514,3.986,2526,5.419,2578,3.926,2811,6.218,3459,6.814,3462,7.054,3873,6.683,3874,8.404,3948,4.578,4013,4.578,4169,3.986,4484,4.857,4630,3.131,4969,3.41,5121,5.494,5227,5.038,5346,5.419,5389,4.366,5403,4.707,5944,3.817,6046,4.119,6145,5.574,6229,5.038,6331,4.366,6332,4.466,6491,6.452,6589,5.419,6731,4.842,6736,4.578,7309,4.466,7679,4.119,8537,3.552,8682,6.5,9309,5.264,9368,4.707,9985,8.227,10358,4.707,10789,4.276,11199,4.707,11204,6.199,11216,5.494,11250,5.264,11421,4.119,11484,6.5,12528,4.366,12589,7.77,13159,8.018,13238,6.683,13361,4.466,13626,4.466,13967,4.857,14497,4.857,14886,4.578,14902,5.038,15250,5.038,15251,4.857,16257,4.707,16263,6.896,16421,4.276,17548,5.264,19654,4.857,20724,5.038,20947,5.264,21594,4.857,21598,7.152,21599,4.578,21600,5.264,21601,5.038,21602,5.264,21603,4.857,21604,7.152,21605,6.896,21606,5.264,21607,5.264,21608,6.896,21609,5.264,21610,5.038,21611,7.903,21612,7.152,21613,5.566,21614,5.566,21615,5.566,21616,5.038,21617,7.558,21618,5.264,21619,7.903,21620,5.038,21621,5.038,21622,7.903,21623,5.264,21624,4.578,21625,5.038,21626,5.264,21627,5.264,21628,4.857,21629,5.566,21630,5.264,21631,5.566,21632,5.038,21633,4.707,21634,5.264,21635,7.903,21636,7.903,21637,8.689,21638,9.989,21639,5.264,21640,5.566,21641,7.903,21642,5.264,21643,5.566,21644,5.566,21645,5.566,21646,7.903,21647,7.903,21648,5.566,21649,5.566,21650,5.566,21651,5.038,21652,5.566,21653,4.857,21654,5.566,21655,7.152,21656,5.566,21657,5.566,21658,5.264,21659,5.566,21660,5.038]],["title/additional-documentation/nestjs-application/authorisation.html",[1014,2.753,1507,3.271,3550,4.382]],["body/additional-documentation/nestjs-application/authorisation.html",[0,0.075,5,0.007,8,0.613,9,1.049,10,1.543,26,1.881,27,0.091,30,0.001,31,0.284,32,0.085,33,0.11,34,1.041,47,0.656,72,4.404,74,1.769,94,1.043,101,0.01,103,0,104,0,105,0.289,111,1.214,112,1.543,116,1.236,137,5.879,185,2.693,188,4.291,192,3.239,199,3.098,208,1.418,214,0.722,215,0.71,216,0.938,217,1.512,221,2.125,227,0.906,234,1.116,235,2.162,240,0.688,277,4.957,290,1.267,307,2.388,309,2.871,334,0.242,347,1.034,359,2.814,367,1.056,368,2.397,369,1.341,371,1.053,379,0.506,380,2.029,381,1.67,404,0.397,406,0.701,425,2.417,427,1.412,433,1.441,461,2.909,475,1.914,483,1.056,495,5.605,496,4.207,535,2.067,540,3.676,571,3.793,574,4.527,575,1.308,672,1.941,687,1.018,688,2.678,691,3.602,698,1.208,722,0.968,728,1.496,731,2.693,744,1.59,766,4.928,768,4.88,769,3.616,781,1.917,795,3.577,806,0.924,843,3.295,851,1.077,852,1.077,853,1.115,883,3.605,905,0.911,950,1.714,954,4.497,956,3.305,957,5.102,960,1.5,1021,1.168,1031,1.626,1114,3.292,1121,5.648,1123,2.027,1126,3.676,1132,4.089,1158,1.168,1240,5.204,1252,1.308,1253,1.012,1295,3.97,1304,2.527,1309,1.527,1438,4.078,1491,2.183,1500,1.475,1507,3.539,1510,1.372,1661,3.305,1665,2.027,1666,1.527,1683,1.293,1721,1.917,1724,3.856,1828,1.703,1862,1.208,1865,5.482,1866,4.272,1871,3.131,1872,3.355,1887,7.911,1888,6.008,1890,2.42,1910,2.396,1916,5.999,1921,2.527,1922,4.356,1923,1.834,1924,1.667,1925,1.985,1928,3.131,1932,2.597,1936,1.714,1942,2.902,1959,3.76,1987,1.409,1988,1.917,1989,5.79,1990,1.714,1991,3.721,2033,1.43,2056,1.475,2086,2.659,2092,2.871,2116,2.745,2155,1.475,2173,1.012,2185,1.242,2187,2.567,2298,1.322,2299,2.027,2477,3.745,2478,1.254,2485,4.766,2489,4.314,2490,4.089,2491,2.027,2500,1.354,2505,3.194,2507,1.409,2510,1.39,2514,1.451,2526,6.325,2563,3.171,2571,1.527,2572,4.848,2577,6.412,2578,3.305,2579,4.88,2594,0.968,2675,3.376,2691,0.963,2701,2.34,2744,2.262,2769,3.73,2835,1.308,2951,1.308,3061,3.854,3091,1.742,3103,1.834,3105,2.42,3106,3.402,3110,4.544,3187,1.322,3262,5.374,3331,1.23,3356,1.451,3360,2.611,3372,3.468,3396,1.409,3458,1.39,3459,2.276,3508,1.714,3542,3.547,3543,2.978,3544,0.911,3552,1.626,3613,5.097,3830,4.356,3832,3.41,3850,1.769,3852,4.701,3871,1.769,3874,4.356,4169,5.963,4209,1.769,4227,1.747,4481,1.769,4485,2.611,4486,1.917,4499,4.948,4586,1.527,4628,1.451,4630,1.14,4632,6.631,4821,1.354,4960,2.42,4989,1.354,4997,2.489,5121,4.848,5221,2.984,5395,1.667,5404,1.769,5974,2.489,5999,2.659,6046,1.5,6146,1.43,6325,1.714,6329,1.527,6334,1.527,6366,1.59,6411,1.917,6418,2.984,6491,1.308,6585,1.917,6589,3.843,6597,3.337,6598,3.529,6637,1.59,6667,1.917,6668,1.834,6707,1.59,6727,2.049,6731,4.866,6733,1.557,6735,3.854,6749,1.714,6754,1.667,6793,3.531,6856,2.027,6906,1.769,6914,2.768,7135,1.769,7219,1.372,7309,1.626,7339,1.527,7629,1.626,7652,1.338,7653,1.714,7667,3.963,7907,1.527,8152,1.667,8161,1.834,8537,1.293,8679,1.626,8840,1.917,9401,3.793,9419,4.622,9421,4.089,9474,1.667,9574,1.557,9725,1.475,9822,1.557,10170,1.769,10175,2.027,10351,3.057,10363,1.626,10381,6.165,10541,1.917,10796,4.686,11136,2.027,11153,1.769,11156,1.354,11204,4.983,11216,1.409,11279,1.834,11281,2.027,11378,2.489,11472,1.769,11485,1.626,11591,1.59,11593,1.667,11635,1.667,11826,5.469,11827,4.397,12133,4.241,12468,1.917,12573,1.834,12670,1.834,13313,3.529,13314,1.834,13357,2.027,13361,1.626,13412,1.917,13413,2.984,13418,1.769,13440,1.557,13916,2.027,13926,2.027,13967,1.769,14048,1.834,14170,3.079,14497,3.079,14883,3.194,14886,1.667,14898,1.917,15475,1.714,15942,2.027,16086,1.917,16111,2.027,16257,1.714,16263,1.769,16421,2.711,16476,1.834,16959,3.337,17062,6.085,17198,2.027,17633,1.917,18881,3.337,18890,3.337,18910,4.241,18951,2.027,19054,6.008,19059,4.241,19085,5.605,19203,2.027,19449,3.76,19468,2.027,20469,4.891,20519,2.027,20520,2.027,21193,3.529,21292,2.027,21404,7.875,21552,1.917,21553,1.834,21559,2.027,21608,3.079,21610,1.834,21620,1.834,21624,3.854,21625,1.834,21632,1.834,21633,1.714,21653,1.769,21700,3.079,21704,5.544,21717,3.194,21730,1.834,21735,3.194,21755,1.917,21770,2.027,21816,3.337,21981,2.027,21998,2.027,22068,5.301,22182,1.834,22192,2.027,22195,2.027,22216,1.834,22242,1.834,22266,2.027,22283,1.834,22284,1.917,22363,4.431,22438,2.027,22461,3.079,22470,3.194,22471,3.194,22481,1.917,22497,4.686,22507,2.027,22514,1.917,22527,3.529,22545,5.301,22563,1.917,22626,3.529,22663,2.027,22705,1.917,22707,5.605,22717,1.917,22732,2.027,22744,2.027,22750,1.917,22759,2.027,22836,1.917,22858,3.529,23025,2.194,23026,2.194,23027,3.82,23028,2.194,23029,6.068,23030,2.194,23031,2.027,23032,6.068,23033,3.82,23034,2.194,23035,2.194,23036,3.82,23037,3.82,23038,3.82,23039,2.194,23040,2.194,23041,3.82,23042,8.597,23043,2.194,23044,2.194,23045,2.194,23046,3.82,23047,2.194,23048,2.194,23049,2.194,23050,2.194,23051,2.194,23052,2.194,23053,3.82,23054,2.194,23055,2.194,23056,2.194,23057,2.194,23058,5.073,23059,2.194,23060,3.82,23061,5.073,23062,3.82,23063,3.82,23064,2.194,23065,3.82,23066,2.194,23067,2.194,23068,2.194,23069,2.194,23070,2.194,23071,2.194,23072,2.194,23073,2.194,23074,2.194,23075,2.194,23076,2.194,23077,2.194,23078,2.194,23079,2.194,23080,2.194,23081,2.194,23082,2.194,23083,2.194,23084,2.194,23085,3.82,23086,2.194,23087,2.194,23088,2.194,23089,2.194,23090,2.194,23091,2.194,23092,2.194,23093,5.073,23094,2.194,23095,2.194,23096,2.194,23097,2.194,23098,2.194,23099,2.194,23100,2.194,23101,5.073,23102,2.194,23103,6.068,23104,2.194,23105,2.194,23106,3.82,23107,2.194,23108,2.194,23109,6.068,23110,2.194,23111,2.194,23112,2.194,23113,2.194,23114,2.194,23115,2.194,23116,2.194,23117,2.194,23118,2.194,23119,3.82,23120,2.194,23121,2.194,23122,3.82,23123,2.194,23124,2.194,23125,2.194,23126,2.027,23127,2.194,23128,2.194,23129,2.194,23130,3.82,23131,2.194,23132,2.194,23133,2.194,23134,2.194,23135,2.194,23136,2.194,23137,2.194,23138,2.194,23139,2.194,23140,2.194,23141,2.194,23142,2.194,23143,2.194,23144,2.194]],["title/additional-documentation/nestjs-application/code-style.html",[1014,2.356,1253,2.214,1507,2.8,22760,4.193]],["body/additional-documentation/nestjs-application/code-style.html",[0,0.291,2,1.244,8,1.435,30,0.001,31,0.7,35,1.034,47,0.866,101,0.016,103,0.001,104,0.001,127,1.369,165,0.938,188,3.243,204,3.718,227,0.903,305,2.465,347,2.209,405,2.309,430,3.428,483,5.721,533,7.482,574,3.883,687,6.201,905,3.557,957,4.848,1240,6.255,1253,3.95,1295,6.255,1871,5.287,1922,6.864,1928,5.287,2014,6.348,2185,6.133,2309,4.802,2577,5.855,2579,6.078,3024,7.482,3264,7.161,3508,6.691,3886,7.912,5444,7.482,6463,7.482,7339,5.962,7840,6.348,10530,10.98,11156,5.287,12016,6.691,15252,7.912,21624,6.508,21730,7.161,22008,7.912,22035,7.912,22255,7.912,22319,7.161,22539,7.161,22705,7.482,22717,9.466,22760,7.482,23126,7.912,23145,8.565,23146,8.565,23147,8.565,23148,8.565,23149,8.565,23150,8.565,23151,8.565,23152,8.565]],["title/additional-documentation/nestjs-application/s3clientmodule.html",[1014,2.753,1507,3.271,10257,4.262]],["body/additional-documentation/nestjs-application/s3clientmodule.html",[0,0.371,30,0.001,31,0.484,101,0.023,103,0.001,104,0.001,105,1.139,111,1.728,127,1.092,216,1.598,217,1.437,235,4.889,351,5.384,394,4.937,425,3.199,427,3.194,432,4.027,449,3.473,569,8.021,574,5.41,728,3.383,766,3.713,883,4.568,950,6.749,957,4.889,1925,4.49,2171,3.713,2186,5.472,2187,5.807,3543,4.24,3544,4.956,4169,7.207,6163,7.207,6164,6.749,6165,6.013,6166,6.013,6167,6.013,6168,6.013,7821,10.796,10170,6.964,10271,7.223,10436,7.547,10437,6.749,11199,6.749,11418,9.517,11592,7.583,12948,6.564,16487,7.547,21717,7.223,22461,6.964,22687,7.98,23031,7.98,23153,8.639,23154,8.639,23155,8.639,23156,8.639,23157,8.639,23158,8.639,23159,11.933,23160,8.639,23161,8.639,23162,8.639,23163,8.639]]],"invertedIndex":[["",{"_index":30,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"modules.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["0",{"_index":247,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"classes/ConsentRequestBody.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"classes/DashboardEntity.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageProducer.html":{},"classes/GridElement.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"injectables/LtiToolRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/PaginationParams.html":{},"injectables/PermissionService.html":{},"injectables/RoomsService.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolMigrationService.html":{},"classes/Scope.html":{},"entities/ShareToken.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["0.0.19",{"_index":21351,"title":{},"body":{"dependencies.html":{}}}],["0.1.1",{"_index":21422,"title":{},"body":{"dependencies.html":{}}}],["0.1.13",{"_index":21449,"title":{},"body":{"dependencies.html":{}}}],["0.1.4",{"_index":21458,"title":{},"body":{"dependencies.html":{}}}],["0.14.0",{"_index":21384,"title":{},"body":{"dependencies.html":{}}}],["0.4.0",{"_index":21371,"title":{},"body":{"dependencies.html":{}}}],["0.4.11",{"_index":21359,"title":{},"body":{"dependencies.html":{}}}],["0.5.1",{"_index":21472,"title":{},"body":{"dependencies.html":{}}}],["0.5.19",{"_index":21461,"title":{},"body":{"dependencies.html":{}}}],["0.5.2",{"_index":21435,"title":{},"body":{"dependencies.html":{}}}],["0.5.4",{"_index":21426,"title":{},"body":{"dependencies.html":{}}}],["0.5.9",{"_index":21360,"title":{},"body":{"dependencies.html":{}}}],["0.6.0",{"_index":21427,"title":{},"body":{"dependencies.html":{}}}],["0.7.0",{"_index":21460,"title":{},"body":{"dependencies.html":{}}}],["0.8.0",{"_index":21366,"title":{},"body":{"dependencies.html":{}}}],["0.8.1",{"_index":21430,"title":{},"body":{"dependencies.html":{}}}],["0.9.7",{"_index":21424,"title":{},"body":{"dependencies.html":{}}}],["0000d231816abba584714c9e",{"_index":22662,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["0000dcfbfb5c7a3f00bf21ab",{"_index":5670,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["0000dcfbfb5c7a3f00bf21ab'})@ismongoid",{"_index":5666,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["05",{"_index":22659,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["0]?.id",{"_index":12805,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["1",{"_index":905,"title":{"classes/ContextExternalToolIdParams-1.html":{},"classes/FileDto-1.html":{},"classes/LessonUrlParams-1.html":{},"classes/LoginResponse-1.html":{},"interfaces/S3Config-1.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{},"classes/SystemIdParams-1.html":{},"classes/VideoConference-1.html":{}},"body":{"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/CopyHelperService.html":{},"entities/Course.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolVersionService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GridElement.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/NewsScope.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OidcProvisioningService.html":{},"classes/PaginationParams.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RuleManager.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/Scope.html":{},"classes/ShareTokenBodyParams.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["1.0.0",{"_index":21444,"title":{},"body":{"dependencies.html":{}}}],["1.0.3",{"_index":21332,"title":{},"body":{"dependencies.html":{}}}],["1.0.5",{"_index":21410,"title":{},"body":{"dependencies.html":{}}}],["1.0.56",{"_index":21398,"title":{},"body":{"dependencies.html":{}}}],["1.0a",{"_index":14168,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"dependencies.html":{}}}],["1.1",{"_index":14231,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["1.1.1",{"_index":21442,"title":{},"body":{"dependencies.html":{}}}],["1.1.4",{"_index":21450,"title":{},"body":{"dependencies.html":{}}}],["1.15.2",{"_index":21378,"title":{},"body":{"dependencies.html":{}}}],["1.17.3",{"_index":21403,"title":{},"body":{"dependencies.html":{}}}],["1.2",{"_index":22848,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["1.2.0",{"_index":21376,"title":{},"body":{"dependencies.html":{}}}],["1.21.2",{"_index":21375,"title":{},"body":{"dependencies.html":{}}}],["1.25.0",{"_index":21411,"title":{},"body":{"dependencies.html":{}}}],["1.25.1",{"_index":21353,"title":{},"body":{"dependencies.html":{}}}],["1.28.1",{"_index":21414,"title":{},"body":{"dependencies.html":{}}}],["1.3.4",{"_index":21333,"title":{},"body":{"dependencies.html":{}}}],["1.5.0",{"_index":21374,"title":{},"body":{"dependencies.html":{}}}],["1.6.0",{"_index":21380,"title":{},"body":{"dependencies.html":{}}}],["1.6.2",{"_index":21389,"title":{},"body":{"dependencies.html":{}}}],["1.9.4",{"_index":21437,"title":{},"body":{"dependencies.html":{}}}],["10",{"_index":907,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountServiceDb.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/PaginationParams.html":{},"license.html":{}}}],["10.0.1",{"_index":21345,"title":{},"body":{"dependencies.html":{}}}],["10.1.1",{"_index":21343,"title":{},"body":{"dependencies.html":{}}}],["10.2.4",{"_index":21341,"title":{},"body":{"dependencies.html":{}}}],["100",{"_index":894,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{}}}],["1000",{"_index":1841,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CourseFactory.html":{},"classes/DeleteFilesConsole.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["10000",{"_index":18908,"title":{},"body":{"classes/TaskFactory.html":{}}}],["100000",{"_index":6888,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/FileRecordFactory.html":{},"classes/JwtTestFactory.html":{}}}],["1010",{"_index":21158,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["1055",{"_index":1994,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/ContextExternalToolModule.html":{}}}],["10start",{"_index":22980,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["11",{"_index":21852,"title":{},"body":{"license.html":{}}}],["1212",{"_index":16003,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["123",{"_index":13519,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["1234",{"_index":22892,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["12345",{"_index":18593,"title":{},"body":{"classes/SystemFactory.html":{}}}],["124",{"_index":14923,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["13",{"_index":4299,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"license.html":{}}}],["13.1.0",{"_index":21445,"title":{},"body":{"dependencies.html":{}}}],["14.14",{"_index":10023,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["15",{"_index":11247,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["150",{"_index":4151,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{}}}],["15672:15672",{"_index":22335,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["15:20:30.888",{"_index":22661,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["16",{"_index":22015,"title":{},"body":{"license.html":{}}}],["172.29.173.128",{"_index":22984,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["173",{"_index":2474,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["18.5.0",{"_index":21408,"title":{},"body":{"dependencies.html":{}}}],["180px",{"_index":12164,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["19",{"_index":21663,"title":{},"body":{"license.html":{}}}],["1993",{"_index":22905,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["1996",{"_index":21858,"title":{},"body":{"license.html":{}}}],["1p0",{"_index":14238,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["2",{"_index":7339,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"controllers/LoginController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["2.'})@apiresponse({status",{"_index":14096,"title":{},"body":{"controllers/LoginController.html":{}}}],["2.0",{"_index":5452,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["2.0.0",{"_index":21382,"title":{},"body":{"dependencies.html":{}}}],["2.0.1",{"_index":21349,"title":{},"body":{"dependencies.html":{}}}],["2.0.5",{"_index":21416,"title":{},"body":{"dependencies.html":{}}}],["2.1.0",{"_index":21340,"title":{},"body":{"dependencies.html":{}}}],["2.1375.0",{"_index":21373,"title":{},"body":{"dependencies.html":{}}}],["2.19.2",{"_index":21423,"title":{},"body":{"dependencies.html":{}}}],["2.2.5",{"_index":21355,"title":{},"body":{"dependencies.html":{}}}],["2.2.6",{"_index":21438,"title":{},"body":{"dependencies.html":{}}}],["2.3.2",{"_index":21412,"title":{},"body":{"dependencies.html":{}}}],["2.8.1",{"_index":21394,"title":{},"body":{"dependencies.html":{}}}],["2.8.32",{"_index":21357,"title":{},"body":{"dependencies.html":{}}}],["2.9.0",{"_index":21381,"title":{},"body":{"dependencies.html":{}}}],["20",{"_index":21856,"title":{},"body":{"license.html":{}}}],["200",{"_index":498,"title":{},"body":{"controllers/AccountController.html":{},"classes/AxiosResponseImp.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/HydraOauthUc.html":{},"controllers/LoginController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["2007",{"_index":21665,"title":{},"body":{"license.html":{}}}],["200})@apiinternalservererrorresponse({description",{"_index":20280,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["201",{"_index":2928,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/ShareTokenController.html":{}}}],["2023",{"_index":22658,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["204",{"_index":2972,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["204})@apiresponse({status",{"_index":2936,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["21.1.2",{"_index":21334,"title":{},"body":{"dependencies.html":{}}}],["24",{"_index":6616,"title":{},"body":{"classes/CourseFactory.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["250",{"_index":3521,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["26px",{"_index":12163,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["28",{"_index":22150,"title":{},"body":{"license.html":{}}}],["2984",{"_index":10311,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["2a$10$/dsztv5o6p5piw2ewjsxw.4nhovmjgba.qnwitmuz/uvuc40b.uhu",{"_index":743,"title":{},"body":{"classes/AccountFactory.html":{}}}],["2auth",{"_index":22293,"title":{},"body":{"todo.html":{}}}],["3",{"_index":3508,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LdapService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["3.0",{"_index":22260,"title":{},"body":{"properties.html":{}}}],["3.0.0",{"_index":21339,"title":{},"body":{"dependencies.html":{}}}],["3.0.1",{"_index":21342,"title":{},"body":{"dependencies.html":{}}}],["3.0.2",{"_index":21452,"title":{},"body":{"dependencies.html":{}}}],["3.1.0",{"_index":21439,"title":{},"body":{"dependencies.html":{}}}],["3.100.0",{"_index":21325,"title":{},"body":{"dependencies.html":{}}}],["3.13.0",{"_index":21453,"title":{},"body":{"dependencies.html":{}}}],["3.2.2",{"_index":21364,"title":{},"body":{"dependencies.html":{}}}],["3.3",{"_index":15254,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["3.3.4",{"_index":21436,"title":{},"body":{"dependencies.html":{}}}],["3.8.2",{"_index":21475,"title":{},"body":{"dependencies.html":{}}}],["30",{"_index":22058,"title":{},"body":{"license.html":{}}}],["300",{"_index":13306,"title":{},"body":{"injectables/LdapService.html":{}}}],["3000:3000",{"_index":23017,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["302",{"_index":10964,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["3030/api/v3/docs",{"_index":22423,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["3030/docs",{"_index":22428,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["31",{"_index":22660,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["335",{"_index":12176,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["3532",{"_index":22906,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["389:389",{"_index":22945,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["4",{"_index":7309,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/ExternalToolLogoService.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["4.0.0",{"_index":21331,"title":{},"body":{"dependencies.html":{}}}],["4.0.1",{"_index":21443,"title":{},"body":{"dependencies.html":{}}}],["4.1.6",{"_index":21467,"title":{},"body":{"dependencies.html":{}}}],["4.13.2",{"_index":21402,"title":{},"body":{"dependencies.html":{}}}],["4.14.0",{"_index":21401,"title":{},"body":{"dependencies.html":{}}}],["4.17.19",{"_index":21420,"title":{},"body":{"dependencies.html":{}}}],["4.18.2",{"_index":21466,"title":{},"body":{"dependencies.html":{}}}],["4.2.5",{"_index":21385,"title":{},"body":{"dependencies.html":{}}}],["4.5.11",{"_index":21328,"title":{},"body":{"dependencies.html":{}}}],["4.5.16",{"_index":21327,"title":{},"body":{"dependencies.html":{}}}],["4.6.0",{"_index":21379,"title":{},"body":{"dependencies.html":{}}}],["4.x",{"_index":22328,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["400",{"_index":502,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"classes/ConsentRequestBody.html":{},"controllers/ElementController.html":{},"classes/ErrorMapper.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"controllers/ShareTokenController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["400/bad",{"_index":22677,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["401",{"_index":5416,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["4011:80",{"_index":22933,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["4023",{"_index":2051,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["403",{"_index":506,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"classes/ConsentRequestBody.html":{},"controllers/ElementController.html":{},"classes/ErrorMapper.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"controllers/ShareTokenController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["404",{"_index":509,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/ShareTokenController.html":{},"todo.html":{}}}],["409/conflict",{"_index":22675,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["4096",{"_index":6871,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["4444",{"_index":22386,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["456",{"_index":13524,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["47494638",{"_index":8580,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["5",{"_index":16482,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["5.0.0",{"_index":21368,"title":{},"body":{"dependencies.html":{}}}],["5.0.1",{"_index":21369,"title":{},"body":{"dependencies.html":{}}}],["5.0.3",{"_index":21405,"title":{},"body":{"dependencies.html":{}}}],["5.1.1",{"_index":21441,"title":{},"body":{"dependencies.html":{}}}],["5.13.20",{"_index":21425,"title":{},"body":{"dependencies.html":{}}}],["5.2.1",{"_index":21338,"title":{},"body":{"dependencies.html":{}}}],["5.4.2",{"_index":21337,"title":{},"body":{"dependencies.html":{}}}],["500",{"_index":8210,"title":{},"body":{"classes/ErrorMapper.html":{},"controllers/H5PEditorController.html":{},"classes/ListOauthClientsParams.html":{},"controllers/ShareTokenController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["501",{"_index":17900,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["5672",{"_index":22337,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["5672:5672",{"_index":22334,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["59",{"_index":12788,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["6.0.0",{"_index":21391,"title":{},"body":{"dependencies.html":{}}}],["6.1.3",{"_index":21392,"title":{},"body":{"dependencies.html":{}}}],["6.3.0",{"_index":21406,"title":{},"body":{"dependencies.html":{}}}],["6.9.7",{"_index":21446,"title":{},"body":{"dependencies.html":{}}}],["60",{"_index":6617,"title":{},"body":{"classes/CourseFactory.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/S3ClientAdapter.html":{},"license.html":{}}}],["60000",{"_index":16846,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["632",{"_index":15091,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["64",{"_index":22888,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["673",{"_index":13624,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["699615164",{"_index":22286,"title":{},"body":{"todo.html":{}}}],["6b",{"_index":21929,"title":{},"body":{"license.html":{}}}],["6d",{"_index":21948,"title":{},"body":{"license.html":{}}}],["7",{"_index":9741,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{},"injectables/TaskUC.html":{},"license.html":{}}}],["7.0.0",{"_index":21395,"title":{},"body":{"dependencies.html":{}}}],["7.1.10",{"_index":21347,"title":{},"body":{"dependencies.html":{}}}],["7.3.1",{"_index":21454,"title":{},"body":{"dependencies.html":{}}}],["789",{"_index":13525,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["8",{"_index":9993,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["8.1.0",{"_index":21387,"title":{},"body":{"dependencies.html":{}}}],["8.3.0",{"_index":21474,"title":{},"body":{"dependencies.html":{}}}],["8.8.2",{"_index":21362,"title":{},"body":{"dependencies.html":{}}}],["80",{"_index":22421,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080",{"_index":22393,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["8080:8080",{"_index":22350,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["820",{"_index":20518,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["8443:8443",{"_index":22351,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["86400000",{"_index":5513,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["885",{"_index":21160,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["89504e47",{"_index":8578,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["9.0.0",{"_index":21415,"title":{},"body":{"dependencies.html":{}}}],["9.2.0",{"_index":21336,"title":{},"body":{"dependencies.html":{}}}],["9000:9000",{"_index":22342,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001",{"_index":22347,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["9001:9001",{"_index":22343,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["91",{"_index":15590,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["9229",{"_index":22381,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["99",{"_index":1038,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["990",{"_index":9473,"title":{},"body":{"injectables/FederalStateService.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["999",{"_index":21641,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["9])+(.html|.css|.mp4|.pdf|.doc|.png|.jpg|.gif|.min.js|.js|.ico|.txt|.min.css|.ttf|.svg|.woff|.ui.l|.mf.l",{"_index":10456,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["9])+(.html|.css|.mp4|.pdf|.doc|.png|.jpg|.gif|.min.js|.js|.ico|.txt|.min.css|.ttf|.svg|.woff|.ui.l|.mf.l)')@isstring()@isnotempty",{"_index":10454,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["9]{24",{"_index":2911,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UserInfoResponse.html":{}}}],["_",{"_index":845,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/GlobalErrorFilter.html":{},"controllers/LoginController.html":{},"modules/MongoMemoryDatabaseModule.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["_${now.getdate()}_${now.gethours()}_${now.getminutes()}_${now.getseconds",{"_index":11135,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_.pick(params",{"_index":858,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["_.random(35).tostring(36)).join",{"_index":14539,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.snakecase(classname).touppercase",{"_index":10515,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.snakecase(exceptionname).touppercase",{"_index":10525,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.spec.ts",{"_index":22559,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["_.startcase(exceptionname",{"_index":10526,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.startcase(name",{"_index":10516,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["_.test.[ts|js",{"_index":22400,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["_.times(20",{"_index":14538,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["_.union(userpermissions",{"_index":20199,"title":{},"body":{"classes/UserFactory.html":{}}}],["_\\w\\d",{"_index":14551,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["__v",{"_index":9597,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_allowemptyquery",{"_index":5872,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_collectdefaultmetrics",{"_index":16201,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_collectmetricsroutemetrics",{"_index":16202,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_columnboardid",{"_index":4817,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["_contextid",{"_index":3333,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["_contexttype",{"_index":3335,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["_creatorid",{"_index":9558,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_em",{"_index":2397,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["_id",{"_index":1278,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/LessonEntity.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"classes/VideoConferenceInfo.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["_id.$oid",{"_index":11219,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["_instance",{"_index":16203,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_iscopyfrom",{"_index":9692,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_isenabled",{"_index":16204,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_lockid",{"_index":9559,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_oauthconfigcache",{"_index":13042,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["_operator",{"_index":5873,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_origintoolid",{"_index":6983,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["_ownerid",{"_index":9560,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["_parentid",{"_index":9561,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["_port",{"_index":16205,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_queries",{"_index":5874,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["_route",{"_index":16206,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["_schoolid",{"_index":9693,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["_self",{"_index":5258,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["_updatedat",{"_index":1288,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["a.getmetadata().title",{"_index":7324,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["a.ktid.localecompare(b.ktid",{"_index":17320,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["a.m",{"_index":21657,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["a.position",{"_index":3255,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["a.userid.$oid",{"_index":13227,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["aaa",{"_index":22736,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["abbreviation",{"_index":6351,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ability",{"_index":21988,"title":{},"body":{"license.html":{}}}],["aborted",{"_index":13202,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["above",{"_index":13238,"title":{},"body":{"classes/KeycloakSeedService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["absence",{"_index":21879,"title":{},"body":{"license.html":{}}}],["absolute",{"_index":11122,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["abstract",{"_index":9,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"interfaces/AuthorizableObject.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BusinessError.html":{},"entities/CourseNews.html":{},"injectables/DashboardRepo.html":{},"classes/DomainObject.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/INewsProperties.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/News.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OauthProviderService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PaginationResponse.html":{},"classes/ProvisioningStrategy.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"entities/SchoolNews.html":{},"classes/SortingParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/TeamNews.html":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["abstractaccountservice",{"_index":1,"title":{"classes/AbstractAccountService.html":{}},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:108",{"_index":1165,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:113",{"_index":1166,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:114",{"_index":1076,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:117",{"_index":1177,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:122",{"_index":1176,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:125",{"_index":1074,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:127",{"_index":1181,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:136",{"_index":1075,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:146",{"_index":1173,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:147",{"_index":1077,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:151",{"_index":1057,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:160",{"_index":1058,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:172",{"_index":1067,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:18",{"_index":1169,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:24",{"_index":1174,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:29",{"_index":1170,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:34",{"_index":1171,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:35",{"_index":1063,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:39",{"_index":1068,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:42",{"_index":1172,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:43",{"_index":1064,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:47",{"_index":1065,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:51",{"_index":1066,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:55",{"_index":1073,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:59",{"_index":1072,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:63",{"_index":1069,"title":{},"body":{"injectables/AccountService.html":{}}}],["abstractaccountservice:83",{"_index":1180,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:91",{"_index":1178,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractaccountservice:99",{"_index":1179,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["abstractbootstrapconsole",{"_index":19434,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["abstraction",{"_index":23031,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["abstraction/detail",{"_index":22462,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractions",{"_index":22499,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["abstractlaunchstrategy",{"_index":106,"title":{"injectables/AbstractLaunchStrategy.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:114",{"_index":2649,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:122",{"_index":14222,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:125",{"_index":2650,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:141",{"_index":2646,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:147",{"_index":14223,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:167",{"_index":2655,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:18",{"_index":2644,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:19",{"_index":14986,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:204",{"_index":2654,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:24",{"_index":14987,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:246",{"_index":2647,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:26",{"_index":2652,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:30",{"_index":14221,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:33",{"_index":2645,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:50",{"_index":2653,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:65",{"_index":2651,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:9",{"_index":2643,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["abstractlaunchstrategy:91",{"_index":2648,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["acacac",{"_index":6421,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["acc",{"_index":19766,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["accept",{"_index":363,"title":{},"body":{"classes/AcceptQuery.html":{},"interfaces/AuthenticationResponse.html":{},"classes/BoardComposite.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["accept(visitor",{"_index":2801,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["acceptance",{"_index":22062,"title":{},"body":{"license.html":{}}}],["acceptasync",{"_index":2794,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["acceptasync(visitor",{"_index":2805,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["acceptconsentrequest",{"_index":10825,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequest(challenge",{"_index":10842,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptconsentrequestbody",{"_index":335,"title":{"interfaces/AcceptConsentRequestBody.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["accepted",{"_index":22273,"title":{},"body":{"todo.html":{}}}],["acceptloginrequest",{"_index":10826,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["acceptloginrequest(challenge",{"_index":10844,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["acceptloginrequest(currentuserid",{"_index":15597,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["acceptloginrequestbody",{"_index":354,"title":{"interfaces/AcceptLoginRequestBody.html":{}},"body":{"interfaces/AcceptLoginRequestBody.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest",{"_index":10827,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(@param",{"_index":15553,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptlogoutrequest(challenge",{"_index":10846,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["acceptlogoutrequest(params",{"_index":15480,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["acceptquery",{"_index":360,"title":{"classes/AcceptQuery.html":{}},"body":{"classes/AcceptQuery.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["accepts",{"_index":366,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"miscellaneous/functions.html":{}}}],["access",{"_index":535,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AdminIdAndToken.html":{},"controllers/CollaborativeStorageController.html":{},"entities/Course.html":{},"classes/ErrorLoggable.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"classes/JwtExtractor.html":{},"entities/LessonEntity.html":{},"classes/OauthClientBody.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"controllers/ServerController.html":{},"controllers/ToolController.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["access,@typescript",{"_index":1305,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["access.token.claim",{"_index":13009,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["access_token",{"_index":352,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["accessed",{"_index":6736,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["accessible",{"_index":21727,"title":{},"body":{"license.html":{}}}],["accessing",{"_index":22516,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["accesskeyid",{"_index":6167,"title":{},"body":{"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IStorageProviderProperties.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"entities/StorageProviderEntity.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["accessors",{"_index":884,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardRepo.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/ClassSourceOptions.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/DatabaseManagementService.html":{},"classes/DomainObject.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"classes/Scope.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["accesstoken",{"_index":1703,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/TestApiClient.html":{},"classes/TokenRequestMapper.html":{}}}],["accesstokendto",{"_index":14157,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accesstokendto.accesstoken",{"_index":14159,"title":{},"body":{"injectables/LoginUc.html":{}}}],["accompanied",{"_index":21914,"title":{},"body":{"license.html":{}}}],["accompanies",{"_index":22227,"title":{},"body":{"license.html":{}}}],["accomplish",{"_index":21729,"title":{},"body":{"license.html":{}}}],["accord",{"_index":21878,"title":{},"body":{"license.html":{}}}],["according",{"_index":22219,"title":{},"body":{"license.html":{}}}],["account",{"_index":94,"title":{"entities/Account.html":{}},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/EtherpadService.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserListResponse.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/NexboardService.html":{},"injectables/Oauth2Strategy.html":{},"classes/TestApiClient.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["account${sequence",{"_index":747,"title":{},"body":{"classes/AccountFactory.html":{}}}],["account's",{"_index":12216,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["account.'})@apiresponse({status",{"_index":501,"title":{},"body":{"controllers/AccountController.html":{}}}],["account._id.$oid",{"_index":13240,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.activated",{"_index":644,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.attdbcaccountid",{"_index":758,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.attdbcsystemid",{"_index":760,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.attdbcuserid",{"_index":759,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["account.createdat",{"_index":640,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["account.createddate",{"_index":757,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["account.credentialhash",{"_index":645,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.email",{"_index":13097,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.expiresat",{"_index":646,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.factory",{"_index":847,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["account.firstname",{"_index":13098,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.id",{"_index":639,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountValidationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LocalStrategy.html":{}}}],["account.interface",{"_index":13220,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.interface.ts",{"_index":11502,"title":{},"body":{"interfaces/IJsonAccount.html":{}}}],["account.lastname",{"_index":13099,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["account.lasttriedfailedlogin",{"_index":647,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["account.lasttriedfailedlogin.gettime",{"_index":1840,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["account.module",{"_index":451,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["account.params.ts",{"_index":16077,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:13",{"_index":16087,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:24",{"_index":16085,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:33",{"_index":16081,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:42",{"_index":16082,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.params.ts:51",{"_index":16083,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["account.password",{"_index":648,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["account.response",{"_index":1024,"title":{},"body":{"classes/AccountSearchListResponse.html":{}}}],["account.service.abstract",{"_index":1080,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["account.systemid",{"_index":1195,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["account.systemid?.tostring",{"_index":649,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["account.test.factory.ts",{"_index":842,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:23",{"_index":20014,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:28",{"_index":20007,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:34",{"_index":20011,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:49",{"_index":20013,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.test.factory.ts:61",{"_index":20009,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["account.token",{"_index":650,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["account.updatedat",{"_index":641,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{}}}],["account.userid",{"_index":983,"title":{},"body":{"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LocalStrategy.html":{}}}],["account.userid.$oid",{"_index":13241,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["account.userid?.tostring",{"_index":642,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountValidationService.html":{}}}],["account.username",{"_index":643,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/TestApiClient.html":{}}}],["account.validation.service",{"_index":1081,"title":{},"body":{"injectables/AccountService.html":{}}}],["account?.id",{"_index":1259,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["account?.systemid?.tostring",{"_index":1260,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountapimodule",{"_index":426,"title":{"modules/AccountApiModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["accountbyidbodyparams",{"_index":455,"title":{"classes/AccountByIdBodyParams.html":{}},"body":{"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{}}}],["accountbyidparams",{"_index":477,"title":{"classes/AccountByIdParams.html":{}},"body":{"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{}}}],["accountcontroller",{"_index":448,"title":{"controllers/AccountController.html":{}},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountcopy",{"_index":20616,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountcopy.systemid",{"_index":20652,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["accountdb",{"_index":1055,"title":{},"body":{"injectables/AccountService.html":{}}}],["accountdbcaccountid",{"_index":12222,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["accountdbcuserid",{"_index":12225,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["accountdto",{"_index":66,"title":{"classes/AccountDto.html":{}},"body":{"classes/AbstractAccountService.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["accountdto.activated",{"_index":1199,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.credentialhash",{"_index":1203,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.expiresat",{"_index":1200,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.id",{"_index":1095,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["accountdto.lasttriedfailedlogin",{"_index":1201,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.password",{"_index":1097,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["accountdto.systemid",{"_index":1196,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.token",{"_index":1204,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdto.username",{"_index":1198,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountdtos",{"_index":653,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentities",{"_index":635,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["accountentities[0",{"_index":652,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentities[1",{"_index":655,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentity",{"_index":1186,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper",{"_index":624,"title":{"classes/AccountEntityToDtoMapper.html":{}},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.mapaccountstodto(accountentities",{"_index":1189,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(await",{"_index":1220,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapaccountstodto(foundaccounts",{"_index":654,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accountentitytodtomapper.mapsearchresult(accountentities",{"_index":1212,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.mapsearchresult(await",{"_index":1243,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountentitytodtomapper.maptodto(account",{"_index":1206,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["accountentitytodtomapper.maptodto(accountentity",{"_index":657,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountServiceDb.html":{}}}],["accountfactory",{"_index":658,"title":{"classes/AccountFactory.html":{}},"body":{"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountfactory.define(account",{"_index":746,"title":{},"body":{"classes/AccountFactory.html":{}}}],["accountfactory.withuser(user).build(accountparams",{"_index":860,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountid",{"_index":85,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/IdentityManagementService.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/UserMigrationService.html":{}}}],["accountid?.tostring",{"_index":1257,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accountidm",{"_index":1051,"title":{},"body":{"injectables/AccountService.html":{}}}],["accountidmtodtomapper",{"_index":748,"title":{"injectables/AccountIdmToDtoMapper.html":{}},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.html":{},"miscellaneous/functions.html":{}}}],["accountidmtodtomapper:6",{"_index":754,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["accountidmtodtomapperdb",{"_index":752,"title":{"classes/AccountIdmToDtoMapperDb.html":{}},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"modules/AccountModule.html":{}}}],["accountidmtodtomapperfactory",{"_index":838,"title":{},"body":{"modules/AccountModule.html":{},"miscellaneous/functions.html":{}}}],["accountidmtodtomapperfactory(configservice",{"_index":834,"title":{},"body":{"modules/AccountModule.html":{},"miscellaneous/functions.html":{}}}],["accountidmtodtomapperidm",{"_index":761,"title":{"classes/AccountIdmToDtoMapperIdm.html":{}},"body":{"classes/AccountIdmToDtoMapperIdm.html":{},"modules/AccountModule.html":{}}}],["accountimpl",{"_index":1047,"title":{},"body":{"injectables/AccountService.html":{}}}],["accountlookupservice",{"_index":763,"title":{"injectables/AccountLookupService.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["accountmodule",{"_index":437,"title":{"modules/AccountModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ProvisioningModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules.html":{}}}],["accountparams",{"_index":840,"title":{"interfaces/AccountParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["accountpassword",{"_index":14010,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountrepo",{"_index":820,"title":{"injectables/AccountRepo.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["accountresponse",{"_index":499,"title":{"classes/AccountResponse.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSearchListResponse.html":{}}}],["accountresponsemapper",{"_index":973,"title":{"classes/AccountResponseMapper.html":{}},"body":{"classes/AccountResponseMapper.html":{}}}],["accounts",{"_index":403,"title":{},"body":{"entities/Account.html":{},"controllers/AccountController.html":{},"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{}}}],["accounts.'})@apiresponse({status",{"_index":539,"title":{},"body":{"controllers/AccountController.html":{}}}],["accounts.filter((foundaccount",{"_index":1246,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["accounts.find((a",{"_index":13226,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["accounts.find((foundaccount",{"_index":1825,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["accounts.length",{"_index":13183,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["accounts.map((accountentity",{"_index":656,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["accounts_allowanonymousread=false",{"_index":23000,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowemailchange=false",{"_index":22999,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowrealnamechange=false",{"_index":22997,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_allowusernamechange=false",{"_index":22998,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_method=get",{"_index":23015,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_api_url=http://localhost:4000/rocketchat/authget",{"_index":22996,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_enabled=true",{"_index":22994,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_iframe_url=http://localhost:4000/rocketchat/iframe",{"_index":22995,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_activating=false",{"_index":23001,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_send_email_when_deactivating=false",{"_index":23002,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_setdefaultavatar=false",{"_index":23013,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accounts_usedefaultblockeddomainslist=false",{"_index":23003,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["accountsavedto",{"_index":64,"title":{"classes/AccountSaveDto.html":{}},"body":{"classes/AbstractAccountService.html":{},"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/OidcProvisioningService.html":{}}}],["accountsavedto:21",{"_index":615,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:26",{"_index":609,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:30",{"_index":612,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:34",{"_index":603,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:38",{"_index":613,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:42",{"_index":611,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:46",{"_index":607,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:5",{"_index":598,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:50",{"_index":605,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:54",{"_index":601,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:57",{"_index":606,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:7",{"_index":597,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsavedto:9",{"_index":599,"title":{},"body":{"classes/AccountDto.html":{}}}],["accountsearchlistresponse",{"_index":536,"title":{"classes/AccountSearchListResponse.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountSearchListResponse.html":{}}}],["accountsearchqueryparams",{"_index":530,"title":{"classes/AccountSearchQueryParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{}}}],["accountsearchtype",{"_index":1029,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["accountservice",{"_index":818,"title":{"injectables/AccountService.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AuthenticationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["accountservicedb",{"_index":821,"title":{"injectables/AccountServiceDb.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["accountserviceidm",{"_index":822,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{}}}],["accountsfile",{"_index":11509,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["accountuc",{"_index":439,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["accountuserid",{"_index":14013,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["accountvalidationservice",{"_index":819,"title":{"injectables/AccountValidationService.html":{}},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AccountValidationService.html":{}}}],["achieve",{"_index":22230,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["achieved",{"_index":22833,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["acknowledges",{"_index":21826,"title":{},"body":{"license.html":{}}}],["acquired",{"_index":22108,"title":{},"body":{"license.html":{}}}],["acr",{"_index":356,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["acr_values",{"_index":15872,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["act",{"_index":22735,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["action",{"_index":1865,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/BaseDomainObject.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/HydraAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRule.html":{},"classes/PatchMyAccountParams.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["action.enum",{"_index":1867,"title":{},"body":{"interfaces/AuthorizationContext.html":{}}}],["action.read",{"_index":1881,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonRule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskUC.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceService.html":{}}}],["action.write",{"_index":1880,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseGroupRule.html":{},"injectables/ElementUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRule.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{}}}],["actions",{"_index":22068,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.read",{"_index":2491,"title":{},"body":{"classes/BaseDomainObject.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["actions.write",{"_index":23093,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["activated",{"_index":383,"title":{},"body":{"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["activation",{"_index":459,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["active",{"_index":11590,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IntrospectResponse.html":{},"injectables/JwtStrategy.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["activities",{"_index":21766,"title":{},"body":{"license.html":{}}}],["activity",{"_index":22145,"title":{},"body":{"license.html":{}}}],["actor",{"_index":22502,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["actual",{"_index":22128,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["actually",{"_index":21964,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["adapt",{"_index":21748,"title":{},"body":{"license.html":{}}}],["adapter",{"_index":4481,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["adapter.mapper",{"_index":4517,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.mapper.ts",{"_index":4526,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.mapper.ts:16",{"_index":4529,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["adapter.module",{"_index":4609,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["adapter.module.ts",{"_index":4555,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["adapter.service",{"_index":15078,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthModule.html":{}}}],["adapter.service.ts",{"_index":15197,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:12",{"_index":15200,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:17",{"_index":15202,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:26",{"_index":15207,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapter.service.ts:40",{"_index":15205,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["adapters",{"_index":22872,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["add",{"_index":1724,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/CardController.html":{},"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GroupRoleUnknownLoggable.html":{},"modules/H5PEditorModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionRepo.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"classes/TestApiClient.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addchild",{"_index":2795,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["addchild(child",{"_index":2808,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["addclientprotocolmappers",{"_index":12844,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addclientprotocolmappers(defaultclientinternalid",{"_index":12861,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["added",{"_index":11216,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacyLogger.html":{},"injectables/NextcloudStrategy.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/TaskUC.html":{},"controllers/ToolConfigurationController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addexecutionrequest",{"_index":12925,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["addexternaloauth2datatoconfig",{"_index":9070,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addexternaloauth2datatoconfig(config",{"_index":9085,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["addgroupmoderator(groupname",{"_index":1348,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adding",{"_index":686,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/ICourseProperties.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["additional",{"_index":1507,"title":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{},"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["additionalheaders",{"_index":10876,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["additionalinfo",{"_index":12637,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["additionallaunchdataproperties",{"_index":223,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["additionally",{"_index":21632,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["additionalparameters",{"_index":13191,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["additionalpermissions",{"_index":862,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["additionalproperties",{"_index":14234,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["additionalproperties.push",{"_index":14246,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["additionaly",{"_index":22374,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["addlessons",{"_index":4933,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addlessons(builder",{"_index":4943,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addorganization",{"_index":5042,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addorganization(props",{"_index":5051,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addparameters",{"_index":113,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addparameters(propertydata",{"_index":133,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addprometheusmetricsmiddlewaresifenabled",{"_index":16264,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["addproperty",{"_index":114,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addproperty(propertydata",{"_index":142,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["addquery",{"_index":5879,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["addquery(query",{"_index":5893,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["addreferences",{"_index":10549,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addreferences(anotherreference",{"_index":7317,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["addresourcetofile",{"_index":5043,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["addresourcetofile(props",{"_index":5055,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization",{"_index":5205,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["addresourcetoorganization(props",{"_index":5069,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["address",{"_index":1113,"title":{},"body":{"injectables/AccountService.html":{},"classes/PatchMyAccountParams.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["addressed",{"_index":21745,"title":{},"body":{"license.html":{}}}],["addroom",{"_index":7253,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["addroom(room",{"_index":7274,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["adds",{"_index":11136,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["addtasks",{"_index":4934,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addtasks(builder",{"_index":4948,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["addteacherroleifadmin",{"_index":17251,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addteacherroleifadmin(externaluser",{"_index":17255,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["addtokentowhitelist",{"_index":12729,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtokentowhitelist(redisidentifier",{"_index":12737,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist",{"_index":12712,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["addtowhitelist(accountid",{"_index":12718,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["adduserids",{"_index":14950,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adduserids.tostring",{"_index":14954,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["adjust",{"_index":5281,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["adm",{"_index":5058,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["admin",{"_index":10351,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["admin_pass=huhu",{"_index":22992,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["adminaccount",{"_index":873,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["adminid",{"_index":1274,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminidandtoken",{"_index":1262,"title":{"interfaces/AdminIdAndToken.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.id",{"_index":1373,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["adminidandtoken.token",{"_index":1372,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["administration.module",{"_index":12189,"title":{},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration.module.ts",{"_index":12753,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["administration.service",{"_index":12760,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["administration.service.ts",{"_index":12763,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:21",{"_index":12780,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:26",{"_index":12787,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:35",{"_index":12784,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:39",{"_index":12781,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:43",{"_index":12782,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:47",{"_index":12783,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:57",{"_index":12786,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:62",{"_index":12785,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:66",{"_index":12779,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:7",{"_index":12789,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration.service.ts:9",{"_index":12777,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["administration/interface/keycloak",{"_index":11514,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["administration/keycloak",{"_index":12188,"title":{},"body":{"modules/IdentityManagementModule.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{}}}],["administration/service/keycloak",{"_index":12762,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["administrator",{"_index":540,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMatchMapper.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["adminpassword",{"_index":1273,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminpermissions",{"_index":20194,"title":{},"body":{"classes/UserFactory.html":{}}}],["adminstrator",{"_index":23056,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["admintoken",{"_index":1275,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["adminuser",{"_index":874,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"classes/KeycloakSeedService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["admzip",{"_index":5049,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["adopted",{"_index":21855,"title":{},"body":{"license.html":{}}}],["adversely",{"_index":21994,"title":{},"body":{"license.html":{}}}],["advised",{"_index":22215,"title":{},"body":{"license.html":{}}}],["aes",{"_index":18509,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["aes_key",{"_index":8117,"title":{},"body":{"modules/EncryptionModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["aeskey",{"_index":8114,"title":{},"body":{"modules/EncryptionModule.html":{},"miscellaneous/functions.html":{}}}],["affected",{"_index":22686,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["affecteduserid",{"_index":20653,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["affects",{"_index":11286,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["affero",{"_index":21662,"title":{},"body":{"license.html":{}}}],["affirmed",{"_index":22090,"title":{},"body":{"license.html":{}}}],["affirms",{"_index":21824,"title":{},"body":{"license.html":{}}}],["afterall",{"_index":22822,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterall(async",{"_index":22813,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterbuild",{"_index":665,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["afterbuild(afterbuildfn",{"_index":682,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["afterbuildfn",{"_index":690,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["afterduedateornone",{"_index":19027,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["afterduedateornone(duedate",{"_index":19109,"title":{},"body":{"classes/TaskScope.html":{}}}],["aftereach",{"_index":22730,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["afterwards",{"_index":22632,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["again",{"_index":6146,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/MigrationResponse.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["against",{"_index":10768,"title":{},"body":{"classes/GuardAgainst.html":{},"injectables/LocalStrategy.html":{},"classes/MongoPatterns.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["against.ts",{"_index":10762,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["against.ts:8",{"_index":10766,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["age",{"_index":23048,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["aggregate",{"_index":21902,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["aggregate.attrs",{"_index":13005,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["agility",{"_index":22451,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["agnostic",{"_index":12548,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["ago",{"_index":7781,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["agpl",{"_index":22248,"title":{},"body":{"license.html":{},"properties.html":{}}}],["agree",{"_index":22163,"title":{},"body":{"license.html":{}}}],["agreed",{"_index":22204,"title":{},"body":{"license.html":{}}}],["agreement",{"_index":22116,"title":{},"body":{"license.html":{}}}],["aims",{"_index":22447,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["aint",{"_index":22487,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ajax",{"_index":10805,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["ajv",{"_index":21361,"title":{},"body":{"dependencies.html":{}}}],["aktuelle",{"_index":4771,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["alert",{"_index":8176,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alert(loggable",{"_index":8181,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["alg",{"_index":1695,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["algorithm",{"_index":1646,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/JwtConstants.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["algorithms",{"_index":1667,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OAuthService.html":{}}}],["algorithms.includes(jwtconstants.jwtoptions.algorithm",{"_index":1681,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["alias",{"_index":11845,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"additional-documentation/nestjs-application.html":{}}}],["all('seed",{"_index":7701,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["all_entities",{"_index":10254,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["all_rules",{"_index":1978,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["allcollectionswithfilepaths",{"_index":11152,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.filter",{"_index":11160,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["allcollectionswithfilepaths.map((file",{"_index":11164,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["alleging",{"_index":22096,"title":{},"body":{"license.html":{}}}],["allforcreator",{"_index":19017,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(allforfinishedcoursesandlessonsforcreator.query",{"_index":19020,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closeddraftsforcreator.query",{"_index":19019,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforcreator.addquery(closedwithoutparentforcreator.query",{"_index":19018,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons",{"_index":19003,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.addquery(parentsfinished.query",{"_index":19004,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessons.bydraft(false",{"_index":19005,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator",{"_index":19014,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.addquery(parentsfinished.query",{"_index":19015,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allforfinishedcoursesandlessonsforcreator.bycreatorid(parentids.creatorid",{"_index":19016,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["allmappers",{"_index":12965,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allmappers.find((mapper",{"_index":12968,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["allow",{"_index":6122,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["allowed",{"_index":4000,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"injectables/ElementUc.html":{},"classes/OauthClientBody.html":{},"injectables/RoomsUc.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"controllers/ToolController.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"injectables/VideoConferenceCreateUc.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["allowedcards",{"_index":4198,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedcontexttype",{"_index":18107,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["alloweddos",{"_index":4211,"title":{},"body":{"injectables/CardUc.html":{}}}],["alloweddos.push(boarddo",{"_index":4210,"title":{},"body":{"injectables/CardUc.html":{}}}],["allowedentity.course",{"_index":23063,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["allowedentity.school",{"_index":23078,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["allowedparenttype",{"_index":18103,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["allowedstrings",{"_index":10151,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowedstrings.includes(input",{"_index":10153,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["allowemptyquery",{"_index":5880,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["allowemptyquery(isemptyqueryallowed",{"_index":5896,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["allowemptyquery(true",{"_index":8795,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["allowglobalcontext",{"_index":14544,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{}}}],["allowmodstounmuteusers",{"_index":2110,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["allows",{"_index":950,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/UpdateNewsParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["allpseudonyms",{"_index":16420,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["allrooms",{"_index":7254,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["alone",{"_index":22727,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["along",{"_index":21881,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["already",{"_index":795,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"classes/BusinessError.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FileSystemAdapter.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/NewsRepo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["altered",{"_index":4671,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["alternate",{"_index":21714,"title":{},"body":{"license.html":{}}}],["alternative",{"_index":12939,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["although",{"_index":22629,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["always",{"_index":573,"title":{},"body":{"controllers/AccountController.html":{},"classes/DomainObjectFactory.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["always_accept",{"_index":2132,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["always_deny",{"_index":2133,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["ambiguous",{"_index":19060,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["amount",{"_index":1018,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"injectables/BoardManagementUc.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"injectables/KeycloakMigrationService.html":{},"classes/ListOauthClientsParams.html":{},"classes/NewsListResponse.html":{},"classes/PaginationResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["amp",{"_index":21560,"title":{},"body":{"miscellaneous/functions.html":{}}}],["amqp",{"_index":21363,"title":{},"body":{"dependencies.html":{}}}],["amqp.module.ts",{"_index":10091,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["amqpconnection",{"_index":1429,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["amqpconnectionmanager",{"_index":16469,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["amqplib",{"_index":21365,"title":{},"body":{"dependencies.html":{}}}],["amr",{"_index":357,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["analysis",{"_index":22418,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["analytics",{"_index":21471,"title":{},"body":{"dependencies.html":{}}}],["analytics_features_messages=false",{"_index":23004,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_rooms=false",{"_index":23005,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["analytics_features_users=false",{"_index":23006,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ancestor",{"_index":3610,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestorids",{"_index":3132,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["ancestornodes",{"_index":3619,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestornodes.foreach((node",{"_index":3621,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancestors",{"_index":3608,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["ancillary",{"_index":22063,"title":{},"body":{"license.html":{}}}],["and/opr",{"_index":22770,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["and/or",{"_index":21708,"title":{},"body":{"license.html":{}}}],["annotations",{"_index":22571,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["anonymous",{"_index":6969,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["another",{"_index":15475,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anotherreference",{"_index":10563,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["antareskey",{"_index":6343,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["anti",{"_index":21843,"title":{},"body":{"license.html":{}}}],["antivirus.service",{"_index":1414,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["antivirus_service_options",{"_index":1419,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["antivirusmodule",{"_index":1406,"title":{"modules/AntivirusModule.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["antivirusmodule.forroot",{"_index":10266,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["antivirusmoduleoptions",{"_index":1410,"title":{"interfaces/AntivirusModuleOptions.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["antivirusservice",{"_index":1413,"title":{"injectables/AntivirusService.html":{}},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["antivirusservice:send",{"_index":1462,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["antivirusserviceoptions",{"_index":1430,"title":{"interfaces/AntivirusServiceOptions.html":{}},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["anyboarddo",{"_index":2598,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ElementUc.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["anycontentelementdo",{"_index":5497,"title":{},"body":{"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["anycontentelementresponse",{"_index":2597,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContentElementResponseFactory.html":{}}}],["anyelementcontentbody",{"_index":8036,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["anyentity",{"_index":917,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["anymore",{"_index":1665,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anyone",{"_index":21890,"title":{},"body":{"license.html":{}}}],["anything",{"_index":21755,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["anywhere",{"_index":22536,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["api",{"_index":1491,"title":{"additional-documentation/nestjs-application/api-design.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/BBBService.html":{},"classes/CopyApiResponse.html":{},"classes/ErrorLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TestApiClient.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["api.module",{"_index":10325,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["api.module.ts",{"_index":446,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/BoardApiModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/GroupApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LessonApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/SystemApiModule.html":{},"modules/TaskApiModule.html":{},"modules/TeamsApiModule.html":{},"modules/ToolApiModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/VideoConferenceApiModule.html":{}}}],["api.spec.ts",{"_index":22402,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v1",{"_index":21613,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3",{"_index":21614,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/docs",{"_index":22424,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["api/v3/news",{"_index":21622,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["api/v3/sso/oauth",{"_index":15130,"title":{},"body":{"injectables/OAuthService.html":{}}}],["api/v3/sso/oauth/migration",{"_index":15129,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["api_enable_cors=true",{"_index":23008,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_enable_rate_limiter_limit_calls_default=255",{"_index":22993,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["api_keys",{"_index":23051,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["api_response_time_metric_middleware_successfully_added",{"_index":16255,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["api_validation_error",{"_index":1490,"title":{},"body":{"classes/ApiValidationError.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["api_version_path",{"_index":1442,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["api_version_path}/file/download/${filerecord.id}/${encodeuricomponent(filerecord.name",{"_index":6091,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["apibadrequestresponse",{"_index":19728,"title":{},"body":{"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{}}}],["apibody",{"_index":4871,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apicreatedresponse",{"_index":19621,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiexcludeendpoint",{"_index":9941,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":9936,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiexcludeendpoint()@put(filesstorageinternalactions.updatesecuritystatus",{"_index":9939,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apiextramodels",{"_index":4039,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"controllers/ElementController.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(fileelementcontentbody",{"_index":8072,"title":{},"body":{"controllers/ElementController.html":{}}}],["apiextramodels(lti11toolconfigcreateparams",{"_index":8468,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["apiextramodels(lti11toolconfigupdateparams",{"_index":9227,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["apiextramodels(richtextelementresponse",{"_index":4070,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{}}}],["apiextramodels(submissionitemresponse",{"_index":8078,"title":{},"body":{"controllers/ElementController.html":{}}}],["apiforbiddenresponse",{"_index":19554,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apifoundresponse",{"_index":13462,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["apiinternalservererrorresponse",{"_index":20300,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apinotfoundresponse",{"_index":13463,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolContextController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiokresponse",{"_index":13464,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/OauthSSOController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apioperation",{"_index":553,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apioperation({summary",{"_index":2926,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/ShareTokenController.html":{}}}],["apiproperty",{"_index":467,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountResponse.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BusinessError.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ColumnResponse.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRefParams.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/IdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcContextResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolParams.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/TimestampsResponse.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserDataResponse.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["apiproperty()@allow",{"_index":17338,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["apiproperty()@apipropertyoptional",{"_index":7116,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["apiproperty()@decodehtmlentities",{"_index":2784,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/ColumnResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/TaskResponse.html":{}}}],["apiproperty()@ismongoid",{"_index":5725,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/FileRecordParams.html":{},"classes/SchoolIdParams.html":{},"classes/SingleFileParams.html":{}}}],["apiproperty()@isnumber",{"_index":5737,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["apiproperty()@isstring",{"_index":6117,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/DownloadFileParams.html":{}}}],["apiproperty()@isstring()@ismongoid",{"_index":17389,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["apiproperty()@isstring()@isnotempty",{"_index":16625,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["apiproperty()@matches('([a",{"_index":10451,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["apiproperty()@validatenested",{"_index":6120,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{}}}],["apiproperty({description",{"_index":1013,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BoardElementResponse.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CardSkeletonResponse.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ForbiddenOperationError.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConnectionError.html":{},"classes/LoginResponse-1.html":{},"classes/MigrationResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/OauthConfigResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RichText.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskListResponse.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["apiproperty({enum",{"_index":2914,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/ChangeLanguageParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["apiproperty({nullable",{"_index":5665,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["apiproperty({pattern",{"_index":2909,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/FileElementResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["apiproperty({type",{"_index":1011,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/BoardResponse.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileUrlParams.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/PublicSystemListResponse.html":{},"classes/RichTextElementContentBody.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/TaskListResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["apipropertyoptional",{"_index":375,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BusinessError.html":{},"classes/CardResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationResponse.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/PaginationParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SystemFilterParams.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TimestampsResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateNewsParams.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["apipropertyoptional()@decodehtmlentities",{"_index":3424,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{}}}],["apipropertyoptional()@isoptional()@isboolean",{"_index":10336,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["apipropertyoptional()@isoptional()@isstring()@isnotempty",{"_index":10334,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["apipropertyoptional()@isstring()@isoptional",{"_index":20435,"title":{},"body":{"classes/UserLoginMigrationSearchParams.html":{}}}],["apipropertyoptional({default",{"_index":20942,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["apipropertyoptional({description",{"_index":1480,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CopyApiResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ForbiddenOperationError.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConnectionError.html":{},"classes/MigrationResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsResponse.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/SystemFilterParams.html":{},"classes/TaskResponse.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchResponse.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["apipropertyoptional({enum",{"_index":10341,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/PreviewParams.html":{}}}],["apipropertyoptional({nullable",{"_index":19872,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["apipropertyoptional({type",{"_index":6052,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/NewsResponse.html":{}}}],["apiresponse",{"_index":554,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/LoginController.html":{},"controllers/OauthSSOController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apiresponsetimemetrichistogram",{"_index":16668,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetrichistogram.observe(labels",{"_index":16675,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apiresponsetimemetriclabelnames",{"_index":16654,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apitags",{"_index":555,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apitags('account",{"_index":560,"title":{},"body":{"controllers/AccountController.html":{}}}],["apitags('authentication",{"_index":14102,"title":{},"body":{"controllers/LoginController.html":{}}}],["apitags('board",{"_index":2962,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["apitags('collaborative",{"_index":4594,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["apitags('courses",{"_index":6500,"title":{},"body":{"controllers/CourseController.html":{}}}],["apitags('dashboard",{"_index":7237,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apitags('file",{"_index":9943,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["apitags('fwu",{"_index":10398,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["apitags('h5p",{"_index":10790,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["apitags('lesson",{"_index":13660,"title":{},"body":{"controllers/LessonController.html":{}}}],["apitags('news",{"_index":14618,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["apitags('oauth2",{"_index":15524,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["apitags('rooms",{"_index":16992,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apitags('school",{"_index":13470,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["apitags('sharetoken",{"_index":17912,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apitags('sso",{"_index":15738,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apitags('submission",{"_index":18264,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apitags('systems",{"_index":18554,"title":{},"body":{"controllers/SystemController.html":{}}}],["apitags('task",{"_index":18815,"title":{},"body":{"controllers/TaskController.html":{}}}],["apitags('tool",{"_index":19558,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{}}}],["apitags('user",{"_index":20029,"title":{},"body":{"controllers/UserController.html":{}}}],["apitags('userimport",{"_index":12311,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["apitags('userloginmigration",{"_index":20310,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["apitags('usermigration",{"_index":20577,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["apitags('videoconference",{"_index":20920,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["apiunauthorizedresponse",{"_index":13465,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apiunprocessableentityresponse",{"_index":19622,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["apivalidationerror",{"_index":1469,"title":{"classes/ApiValidationError.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"classes/ErrorLoggable.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"controllers/H5PEditorController.html":{},"controllers/ShareTokenController.html":{},"miscellaneous/functions.html":{}}}],["apivalidationerror(errors",{"_index":10546,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apivalidationerror.validationerrors.foreach((validationerror",{"_index":1523,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apivalidationerrorresponse",{"_index":1495,"title":{"classes/ApiValidationErrorResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/GlobalErrorFilter.html":{}}}],["apivalidationerrorresponse(error",{"_index":10518,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apivalidationerror})@apiresponse({status",{"_index":2930,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/ShareTokenController.html":{}}}],["app",{"_index":1725,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/TestApiClient.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["app.service('/nest",{"_index":22633,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["app.use(createapiresponsetimemetricmiddleware",{"_index":16268,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["app_filter",{"_index":6338,"title":{},"body":{"modules/CoreModule.html":{},"modules/ErrorModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["app_guard",{"_index":6337,"title":{},"body":{"modules/CoreModule.html":{}}}],["app_interceptor",{"_index":6335,"title":{},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"todo.html":{}}}],["app_pipe",{"_index":6336,"title":{},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{}}}],["append",{"_index":22322,"title":{},"body":{"todo.html":{}}}],["appendedattachment",{"_index":1560,"title":{"interfaces/AppendedAttachment.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["appendnotcontainedboardelements(boardelementtargets",{"_index":2739,"title":{},"body":{"entities/Board.html":{}}}],["applicable",{"_index":21759,"title":{},"body":{"license.html":{}}}],["applicaiton",{"_index":22383,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["application",{"_index":3874,"title":{"additional-documentation/nestjs-application.html":{}},"body":{"classes/BusinessError.html":{},"modules/CoreModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/LegacyLogger.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["application/json",{"_index":1709,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/CalendarService.html":{},"classes/TestApiClient.html":{}}}],["application/octet",{"_index":9513,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{}}}],["application/x",{"_index":10903,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["application/xml",{"_index":2345,"title":{},"body":{"injectables/BBBService.html":{}}}],["application/zip",{"_index":6512,"title":{},"body":{"controllers/CourseController.html":{}}}],["applications",{"_index":21598,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["applied",{"_index":11184,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["applies",{"_index":4486,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["apply",{"_index":11156,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"modules/InterceptorModule.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/TaskRepo.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["apply(data",{"_index":12616,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["applypropertiestopathparams",{"_index":115,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["applypropertiestopathparams(url",{"_index":149,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["appname",{"_index":1538,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["approach",{"_index":22831,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appropriate",{"_index":4484,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["appropriately",{"_index":21874,"title":{},"body":{"license.html":{}}}],["approve",{"_index":21173,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["approximate",{"_index":4165,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["approximates",{"_index":22223,"title":{},"body":{"license.html":{}}}],["apps/.../account.module.ts",{"_index":21477,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../decode",{"_index":21495,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../encryption.module.ts",{"_index":21498,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../federalstates.ts",{"_index":21500,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../file",{"_index":21490,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../files",{"_index":21478,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../fwu",{"_index":21481,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../generateseeddata.ts",{"_index":21507,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../h5p",{"_index":21483,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../lesson.entity.ts",{"_index":21514,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../management.app.ts",{"_index":21485,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../path.ts",{"_index":21488,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../privacy",{"_index":21516,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../promise.ts",{"_index":21511,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../roles.ts",{"_index":21502,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../sanitize",{"_index":21520,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../schools.ts",{"_index":21504,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../schoolyears.ts",{"_index":21506,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../server.app.ts",{"_index":21486,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../single",{"_index":21522,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../string",{"_index":21524,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../systems.ts",{"_index":21509,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../task.entity.ts",{"_index":21515,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../timeout.decorator.ts",{"_index":21518,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/.../utils.ts",{"_index":21492,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server",{"_index":22370,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["apps/server/doc",{"_index":22432,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src",{"_index":22436,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["apps/server/src/apps/files",{"_index":21526,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/apps/fwu",{"_index":21527,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/apps/h5p",{"_index":21528,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/apps/helpers/app",{"_index":1536,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["apps/server/src/apps/helpers/prometheus",{"_index":16242,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["apps/server/src/apps/management.app.ts",{"_index":21529,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/apps/server.app.ts",{"_index":21530,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/config/database.config.ts",{"_index":10458,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["apps/server/src/console/api",{"_index":19431,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["apps/server/src/console/console.module.ts",{"_index":17755,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["apps/server/src/console/server.console.ts",{"_index":17741,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:11",{"_index":17745,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:17",{"_index":17748,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/console/server.console.ts:6",{"_index":17744,"title":{},"body":{"classes/ServerConsole.html":{}}}],["apps/server/src/core/core.module.ts",{"_index":6324,"title":{},"body":{"modules/CoreModule.html":{}}}],["apps/server/src/core/error/dto/api",{"_index":1496,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts",{"_index":8222,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:10",{"_index":8228,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:15",{"_index":8227,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:20",{"_index":8226,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:25",{"_index":8225,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/error.response.ts:30",{"_index":8224,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["apps/server/src/core/error/dto/validation",{"_index":20829,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["apps/server/src/core/error/error.module.ts",{"_index":8215,"title":{},"body":{"modules/ErrorModule.html":{}}}],["apps/server/src/core/error/filter/global",{"_index":10462,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["apps/server/src/core/error/interface/error",{"_index":11401,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["apps/server/src/core/error/interface/feathers",{"_index":9411,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts",{"_index":8125,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:11",{"_index":8133,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:13",{"_index":8136,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:34",{"_index":8135,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:47",{"_index":8140,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:56",{"_index":8142,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/loggable/error.loggable.ts:8",{"_index":8131,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts",{"_index":8229,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:16",{"_index":8238,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:20",{"_index":8243,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:24",{"_index":8235,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/error/utils/error.utils.ts:6",{"_index":8240,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["apps/server/src/core/interceptor/interceptor.module.ts",{"_index":12570,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["apps/server/src/core/interfaces/core",{"_index":11369,"title":{},"body":{"interfaces/ICoreModuleConfig.html":{}}}],["apps/server/src/core/logger/error",{"_index":8174,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["apps/server/src/core/logger/interfaces/legacy",{"_index":11520,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts",{"_index":14021,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/loggable.ts:4",{"_index":14022,"title":{},"body":{"interfaces/Loggable.html":{}}}],["apps/server/src/core/logger/interfaces/logger",{"_index":11537,"title":{},"body":{"interfaces/ILoggerConfig.html":{}}}],["apps/server/src/core/logger/legacy",{"_index":13393,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["apps/server/src/core/logger/logger.module.ts",{"_index":14043,"title":{},"body":{"modules/LoggerModule.html":{}}}],["apps/server/src/core/logger/logger.ts",{"_index":14023,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:13",{"_index":14035,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:18",{"_index":14032,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:23",{"_index":14030,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:28",{"_index":14028,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:33",{"_index":14033,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logger.ts:9",{"_index":14026,"title":{},"body":{"injectables/Logger.html":{}}}],["apps/server/src/core/logger/logging.utils.ts",{"_index":14064,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:13",{"_index":14074,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:18",{"_index":14072,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/logger/logging.utils.ts:6",{"_index":14069,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["apps/server/src/core/validation/pipe/global",{"_index":10528,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["apps/server/src/core/validation/validation.module.ts",{"_index":20833,"title":{},"body":{"modules/ValidationModule.html":{}}}],["apps/server/src/modules/account/account",{"_index":445,"title":{},"body":{"modules/AccountApiModule.html":{},"interfaces/IAccountConfig.html":{}}}],["apps/server/src/modules/account/account.module.ts",{"_index":824,"title":{},"body":{"modules/AccountModule.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts",{"_index":482,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:31",{"_index":541,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:44",{"_index":516,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:60",{"_index":551,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:70",{"_index":545,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:84",{"_index":512,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/account.controller.ts:97",{"_index":527,"title":{},"body":{"controllers/AccountController.html":{}}}],["apps/server/src/modules/account/controller/dto/account",{"_index":456,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts",{"_index":965,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:13",{"_index":969,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:16",{"_index":972,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:19",{"_index":971,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:22",{"_index":968,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:25",{"_index":970,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/account.response.ts:3",{"_index":967,"title":{},"body":{"classes/AccountResponse.html":{}}}],["apps/server/src/modules/account/controller/dto/patch",{"_index":16076,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["apps/server/src/modules/account/mapper/account",{"_index":625,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponseMapper.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts",{"_index":876,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:10",{"_index":916,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:18",{"_index":889,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:22",{"_index":895,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:27",{"_index":891,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:31",{"_index":892,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:35",{"_index":898,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:42",{"_index":900,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:46",{"_index":896,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:50",{"_index":904,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:54",{"_index":906,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:58",{"_index":887,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:63",{"_index":888,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:73",{"_index":893,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/repo/account.repo.ts:77",{"_index":903,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["apps/server/src/modules/account/services/account",{"_index":764,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts",{"_index":6,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:10",{"_index":43,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:12",{"_index":45,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:14",{"_index":50,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:16",{"_index":65,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:18",{"_index":90,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:23",{"_index":84,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:25",{"_index":88,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:27",{"_index":28,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:29",{"_index":38,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:31",{"_index":71,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:33",{"_index":68,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:35",{"_index":93,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:39",{"_index":57,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:6",{"_index":41,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.abstract.ts:8",{"_index":61,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.ts",{"_index":1046,"title":{},"body":{"injectables/AccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.ts:17",{"_index":1054,"title":{},"body":{"injectables/AccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.ts:176",{"_index":1060,"title":{},"body":{"injectables/AccountService.html":{}}}],["apps/server/src/modules/account/services/account.service.ts:80",{"_index":1071,"title":{},"body":{"injectables/AccountService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts",{"_index":1222,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:11",{"_index":1228,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:29",{"_index":1232,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:34",{"_index":1230,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/account.validation.service.ts:8",{"_index":1226,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["apps/server/src/modules/account/services/dto/account",{"_index":984,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["apps/server/src/modules/account/services/dto/account.dto.ts",{"_index":590,"title":{},"body":{"classes/AccountDto.html":{}}}],["apps/server/src/modules/account/services/dto/account.dto.ts:9",{"_index":594,"title":{},"body":{"classes/AccountDto.html":{}}}],["apps/server/src/modules/authentication/authentication",{"_index":1587,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["apps/server/src/modules/authentication/authentication.module.ts",{"_index":1635,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["apps/server/src/modules/authentication/constants.ts",{"_index":12664,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/ldap",{"_index":13260,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/local",{"_index":13989,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts",{"_index":14124,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/login.response.ts:5",{"_index":14125,"title":{},"body":{"classes/LoginResponse.html":{}}}],["apps/server/src/modules/authentication/controllers/dto/oauth2",{"_index":15147,"title":{},"body":{"classes/Oauth2AuthorizationBodyParams.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts",{"_index":14078,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:30",{"_index":14088,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:46",{"_index":14092,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/login.controller.ts:61",{"_index":14097,"title":{},"body":{"controllers/LoginController.html":{}}}],["apps/server/src/modules/authentication/controllers/mapper/login",{"_index":14145,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["apps/server/src/modules/authentication/errors/brute",{"_index":3836,"title":{},"body":{"classes/BruteForceError.html":{}}}],["apps/server/src/modules/authentication/errors/ldap",{"_index":13280,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["apps/server/src/modules/authentication/errors/school",{"_index":17564,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["apps/server/src/modules/authentication/errors/unauthorized.loggable",{"_index":19957,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["apps/server/src/modules/authentication/guard/jwt",{"_index":12660,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["apps/server/src/modules/authentication/interface/jwt",{"_index":6893,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["apps/server/src/modules/authentication/interface/user.ts",{"_index":11381,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{}}}],["apps/server/src/modules/authentication/mapper/current",{"_index":6930,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts",{"_index":1781,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:16",{"_index":1790,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:24",{"_index":1797,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:41",{"_index":1795,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:56",{"_index":1803,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:64",{"_index":1792,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:75",{"_index":1806,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:79",{"_index":1801,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/authentication.service.ts:83",{"_index":1799,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts",{"_index":13286,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:14",{"_index":13290,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:23",{"_index":13292,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/services/ldap.service.ts:9",{"_index":13288,"title":{},"body":{"injectables/LdapService.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt",{"_index":12678,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts",{"_index":12687,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:12",{"_index":12689,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/jwt.strategy.ts:25",{"_index":12691,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts",{"_index":13317,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:16",{"_index":13322,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:28",{"_index":13331,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:56",{"_index":13328,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:68",{"_index":13326,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:75",{"_index":13324,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/ldap.strategy.ts:86",{"_index":13329,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts",{"_index":13992,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:15",{"_index":13996,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:25",{"_index":14004,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:46",{"_index":14002,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/local.strategy.ts:54",{"_index":13999,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts",{"_index":15154,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:15",{"_index":15155,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:20",{"_index":15156,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts",{"_index":14116,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/dto/login.dto.ts:2",{"_index":14117,"title":{},"body":{"classes/LoginDto.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts",{"_index":14150,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:10",{"_index":14155,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authentication/uc/login.uc.ts:7",{"_index":14153,"title":{},"body":{"injectables/LoginUc.html":{}}}],["apps/server/src/modules/authorization/authorization",{"_index":1869,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts",{"_index":1891,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:14",{"_index":1904,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:21",{"_index":1906,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:32",{"_index":1900,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:38",{"_index":1909,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.helper.ts:7",{"_index":1902,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["apps/server/src/modules/authorization/authorization.module.ts",{"_index":1976,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts",{"_index":2011,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:12",{"_index":2019,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:19",{"_index":2025,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:25",{"_index":2034,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:35",{"_index":2028,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:49",{"_index":2036,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:73",{"_index":2021,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:80",{"_index":2031,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:84",{"_index":2023,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:91",{"_index":2032,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/authorization.service.ts:95",{"_index":2030,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["apps/server/src/modules/authorization/errors/forbidden.loggable",{"_index":10367,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["apps/server/src/modules/authorization/feathers/feathers",{"_index":9342,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts",{"_index":11632,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts:40",{"_index":16615,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts:70",{"_index":16619,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts:78",{"_index":16618,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/reference.loader.ts:94",{"_index":16616,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["apps/server/src/modules/authorization/rule",{"_index":17060,"title":{},"body":{"injectables/RuleManager.html":{}}}],["apps/server/src/modules/authorization/types/authorization",{"_index":1863,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["apps/server/src/modules/authorization/types/rule.interface.ts",{"_index":17057,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/types/rule.interface.ts:6",{"_index":17059,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/authorization/types/rule.interface.ts:7",{"_index":17058,"title":{},"body":{"interfaces/Rule.html":{}}}],["apps/server/src/modules/board/board",{"_index":2761,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["apps/server/src/modules/board/board.module.ts",{"_index":3541,"title":{},"body":{"modules/BoardModule.html":{}}}],["apps/server/src/modules/board/controller/board",{"_index":3682,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts",{"_index":2917,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:34",{"_index":2947,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:51",{"_index":2942,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:69",{"_index":2953,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:84",{"_index":2938,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/board.controller.ts:94",{"_index":2933,"title":{},"body":{"controllers/BoardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts",{"_index":4004,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:112",{"_index":4019,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:132",{"_index":4015,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:46",{"_index":4026,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:67",{"_index":4030,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:82",{"_index":4034,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/card.controller.ts:97",{"_index":4037,"title":{},"body":{"controllers/CardController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts",{"_index":4852,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:35",{"_index":4867,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:50",{"_index":4870,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:65",{"_index":4863,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/column.controller.ts:76",{"_index":4860,"title":{},"body":{"controllers/ColumnController.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board",{"_index":2906,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts",{"_index":3657,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:17",{"_index":3661,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:21",{"_index":3664,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:26",{"_index":3660,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:29",{"_index":3663,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.response.ts:6",{"_index":3659,"title":{},"body":{"classes/BoardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts",{"_index":3833,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/board.url.params.ts:11",{"_index":3835,"title":{},"body":{"classes/BoardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/card",{"_index":4161,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts",{"_index":4887,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:17",{"_index":4890,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:21",{"_index":4892,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:26",{"_index":4889,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:29",{"_index":4891,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.response.ts:6",{"_index":4888,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts",{"_index":4921,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/column.url.params.ts:11",{"_index":4922,"title":{},"body":{"classes/ColumnUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/content",{"_index":5594,"title":{},"body":{"classes/ContentElementUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/move",{"_index":14559,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts",{"_index":16621,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/rename.body.params.ts:12",{"_index":16624,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/board/set",{"_index":17851,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts",{"_index":4212,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card.url.params.ts:11",{"_index":4213,"title":{},"body":{"classes/CardUrlParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card",{"_index":4079,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts",{"_index":4098,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:22",{"_index":4103,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:26",{"_index":4105,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:29",{"_index":4102,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:37",{"_index":4101,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:40",{"_index":4107,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:43",{"_index":4104,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/card.response.ts:9",{"_index":4100,"title":{},"body":{"classes/CardResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/card/create",{"_index":6848,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/card/move",{"_index":14569,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["apps/server/src/modules/board/controller/dto/card/visibility",{"_index":21318,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/create",{"_index":6853,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/element/file",{"_index":9531,"title":{},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/rich",{"_index":16762,"title":{},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/submission",{"_index":18238,"title":{},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/element/update",{"_index":8028,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/submission",{"_index":6922,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts",{"_index":19481,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:11",{"_index":19485,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:14",{"_index":19483,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:17",{"_index":19484,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/timestamps.response.ts:3",{"_index":19482,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["apps/server/src/modules/board/controller/dto/user",{"_index":20146,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts",{"_index":8044,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:46",{"_index":8059,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:67",{"_index":8064,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:82",{"_index":8055,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/element.controller.ts:97",{"_index":8051,"title":{},"body":{"controllers/ElementController.html":{}}}],["apps/server/src/modules/board/controller/mapper/base",{"_index":2589,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/board",{"_index":3669,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/card",{"_index":4113,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/column",{"_index":4895,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/content",{"_index":5514,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["apps/server/src/modules/board/controller/mapper/file",{"_index":9548,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/rich",{"_index":16781,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["apps/server/src/modules/board/controller/mapper/submission",{"_index":18244,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["apps/server/src/modules/board/repo/board",{"_index":3189,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["apps/server/src/modules/board/repo/recursive",{"_index":16505,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["apps/server/src/modules/board/service/board",{"_index":3116,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts",{"_index":4122,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:16",{"_index":4134,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:21",{"_index":4136,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:29",{"_index":4128,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:50",{"_index":4132,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:54",{"_index":4138,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:58",{"_index":4140,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:64",{"_index":4142,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:70",{"_index":4130,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/card.service.ts:9",{"_index":4126,"title":{},"body":{"injectables/CardService.html":{}}}],["apps/server/src/modules/board/service/column",{"_index":4724,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts",{"_index":4904,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:11",{"_index":4910,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:16",{"_index":4906,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:32",{"_index":4908,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:36",{"_index":4912,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:40",{"_index":4914,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/column.service.ts:8",{"_index":4905,"title":{},"body":{"injectables/ColumnService.html":{}}}],["apps/server/src/modules/board/service/content",{"_index":5530,"title":{},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{}}}],["apps/server/src/modules/board/service/submission",{"_index":18342,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts",{"_index":3756,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:102",{"_index":3802,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:111",{"_index":3775,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:122",{"_index":3791,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:134",{"_index":3798,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:143",{"_index":3800,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:152",{"_index":3782,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:161",{"_index":3770,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:18",{"_index":3768,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:30",{"_index":3786,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:39",{"_index":3788,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:48",{"_index":3779,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:57",{"_index":3796,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:66",{"_index":3777,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:76",{"_index":3784,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/board.uc.ts:85",{"_index":3794,"title":{},"body":{"injectables/BoardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts",{"_index":4175,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:17",{"_index":4181,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:28",{"_index":4192,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:39",{"_index":4184,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:58",{"_index":4187,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:67",{"_index":4195,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:84",{"_index":4182,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/card.uc.ts:92",{"_index":4190,"title":{},"body":{"injectables/CardUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts",{"_index":8082,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:11",{"_index":8084,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:23",{"_index":8089,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:35",{"_index":8087,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/element.uc.ts:71",{"_index":8085,"title":{},"body":{"injectables/ElementUc.html":{}}}],["apps/server/src/modules/board/uc/submission",{"_index":18354,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["apps/server/src/modules/class/class.module.ts",{"_index":4394,"title":{},"body":{"modules/ClassModule.html":{}}}],["apps/server/src/modules/class/domain/class",{"_index":4411,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts",{"_index":4225,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:22",{"_index":4238,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:26",{"_index":4240,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:30",{"_index":4242,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:34",{"_index":4244,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:38",{"_index":4246,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:42",{"_index":4248,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:46",{"_index":4250,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:50",{"_index":4252,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:54",{"_index":4254,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:58",{"_index":4256,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:62",{"_index":4258,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:66",{"_index":4259,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:70",{"_index":4260,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/class.do.ts:74",{"_index":4236,"title":{},"body":{"classes/Class.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts",{"_index":4334,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/domain/testing/factory/class.factory.ts:8",{"_index":4336,"title":{},"body":{"classes/ClassFactory.html":{}}}],["apps/server/src/modules/class/entity/class",{"_index":4418,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts",{"_index":4278,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:26",{"_index":4282,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:30",{"_index":4283,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:34",{"_index":4291,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:38",{"_index":4290,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:41",{"_index":4280,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:44",{"_index":4292,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:47",{"_index":4279,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:50",{"_index":4281,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:53",{"_index":4289,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:57",{"_index":4285,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/class.entity.ts:60",{"_index":4288,"title":{},"body":{"entities/ClassEntity.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts",{"_index":4324,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts:7",{"_index":4327,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts",{"_index":4424,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:10",{"_index":4427,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:13",{"_index":4429,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/classes.repo.ts:18",{"_index":4431,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts",{"_index":4341,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:26",{"_index":4353,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:43",{"_index":4349,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:47",{"_index":4351,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/repo/mapper/class.mapper.ts:7",{"_index":4347,"title":{},"body":{"classes/ClassMapper.html":{}}}],["apps/server/src/modules/class/service/class.service.ts",{"_index":4395,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:10",{"_index":4403,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:16",{"_index":4401,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/class/service/class.service.ts:7",{"_index":4399,"title":{},"body":{"injectables/ClassService.html":{}}}],["apps/server/src/modules/collaborative",{"_index":4568,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUserDto.html":{}}}],["apps/server/src/modules/copy",{"_index":6043,"title":{},"body":{"classes/CopyApiResponse.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["apps/server/src/modules/files",{"_index":6064,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/DownloadFileParams.html":{},"classes/ErrorMapper.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"classes/FileUrlParams.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/GetFileResponse.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IParentInfo.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/TestHelper.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/modules/files/entity/file",{"_index":9665,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts",{"_index":9557,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:106",{"_index":9584,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:109",{"_index":9573,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:116",{"_index":9598,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:39",{"_index":9580,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:42",{"_index":9579,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:45",{"_index":9581,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:48",{"_index":9582,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:51",{"_index":9590,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:54",{"_index":9596,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:57",{"_index":9591,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:60",{"_index":9578,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:63",{"_index":9593,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:66",{"_index":9594,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:69",{"_index":9595,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:72",{"_index":9588,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:76",{"_index":9589,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:80",{"_index":9577,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:88",{"_index":9576,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:95",{"_index":9586,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/entity/file.entity.ts:99",{"_index":9571,"title":{},"body":{"entities/FileEntity.html":{}}}],["apps/server/src/modules/files/files.module.ts",{"_index":10041,"title":{},"body":{"modules/FilesModule.html":{}}}],["apps/server/src/modules/files/job/delete",{"_index":7770,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts",{"_index":10042,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:10",{"_index":10046,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:15",{"_index":10055,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:19",{"_index":10054,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:33",{"_index":10048,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/repo/files.repo.ts:44",{"_index":10051,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["apps/server/src/modules/files/service/files.service.ts",{"_index":10070,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:23",{"_index":10075,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:6",{"_index":10073,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/service/files.service.ts:9",{"_index":10077,"title":{},"body":{"injectables/FilesService.html":{}}}],["apps/server/src/modules/files/uc/delete",{"_index":7794,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["apps/server/src/modules/fwu",{"_index":10384,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/S3Config.html":{}}}],["apps/server/src/modules/group/domain/group",{"_index":10729,"title":{},"body":{"classes/GroupUser.html":{}}}],["apps/server/src/modules/group/domain/group.ts",{"_index":10576,"title":{},"body":{"classes/Group.html":{},"interfaces/GroupProps.html":{}}}],["apps/server/src/modules/group/entity/group",{"_index":10735,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts",{"_index":10648,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:32",{"_index":10650,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:35",{"_index":10652,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:38",{"_index":10649,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:41",{"_index":10654,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:44",{"_index":10653,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/entity/group.entity.ts:47",{"_index":10651,"title":{},"body":{"entities/GroupEntity.html":{}}}],["apps/server/src/modules/group/group",{"_index":10586,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["apps/server/src/modules/group/group.module.ts",{"_index":10669,"title":{},"body":{"modules/GroupModule.html":{}}}],["apps/server/src/modules/group/repo/group",{"_index":10589,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts",{"_index":10674,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:12",{"_index":10680,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:26",{"_index":10679,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:45",{"_index":10681,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:70",{"_index":10677,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/repo/group.repo.ts:9",{"_index":10676,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["apps/server/src/modules/group/service/group.service.ts",{"_index":10709,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:12",{"_index":10716,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:22",{"_index":10715,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:28",{"_index":10720,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:34",{"_index":10718,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:40",{"_index":10714,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/group/service/group.service.ts:9",{"_index":10712,"title":{},"body":{"injectables/GroupService.html":{}}}],["apps/server/src/modules/h5p",{"_index":10773,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["apps/server/src/modules/learnroom/common",{"_index":5035,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts",{"_index":6479,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:24",{"_index":6488,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/course.controller.ts:37",{"_index":6485,"title":{},"body":{"controllers/CourseController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts",{"_index":7218,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:16",{"_index":7221,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:23",{"_index":7226,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dashboard.controller.ts:39",{"_index":7231,"title":{},"body":{"controllers/DashboardController.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course",{"_index":6695,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts",{"_index":6763,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.query.params.ts:14",{"_index":6765,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts",{"_index":6846,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/course.url.params.ts:11",{"_index":6847,"title":{},"body":{"classes/CourseUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts",{"_index":7437,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:100",{"_index":7446,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:105",{"_index":7442,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:108",{"_index":7611,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:118",{"_index":7613,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:124",{"_index":7612,"title":{},"body":{"classes/DashboardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:16",{"_index":7461,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:22",{"_index":7463,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:27",{"_index":7462,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:32",{"_index":7460,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:35",{"_index":7441,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:4",{"_index":7459,"title":{},"body":{"classes/DashboardGridSubElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:62",{"_index":7448,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:68",{"_index":7451,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:73",{"_index":7449,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:78",{"_index":7443,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:83",{"_index":7452,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:88",{"_index":7453,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:94",{"_index":7447,"title":{},"body":{"classes/DashboardGridElementResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts",{"_index":7642,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts:11",{"_index":7643,"title":{},"body":{"classes/DashboardUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson",{"_index":13665,"title":{},"body":{"classes/LessonCopyApiParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts",{"_index":13973,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts:11",{"_index":13974,"title":{},"body":{"classes/LessonUrlParams-1.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/move",{"_index":14573,"title":{},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/patch",{"_index":16072,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room",{"_index":16937,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts",{"_index":16940,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/room.url.params.ts:11",{"_index":16941,"title":{},"body":{"classes/RoomUrlParams.html":{}}}],["apps/server/src/modules/learnroom/controller/dto/single",{"_index":2774,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts",{"_index":16969,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:34",{"_index":16981,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:44",{"_index":16984,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:58",{"_index":16987,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:68",{"_index":16975,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/controller/rooms.controller.ts:79",{"_index":16978,"title":{},"body":{"controllers/RoomsController.html":{}}}],["apps/server/src/modules/learnroom/learnroom",{"_index":13376,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["apps/server/src/modules/learnroom/learnroom.module.ts",{"_index":13391,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["apps/server/src/modules/learnroom/mapper/board",{"_index":3730,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts",{"_index":6681,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/course.mapper.ts:5",{"_index":6684,"title":{},"body":{"classes/CourseMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts",{"_index":7464,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:15",{"_index":7468,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:36",{"_index":7470,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:5",{"_index":7472,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["apps/server/src/modules/learnroom/mapper/room",{"_index":16879,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["apps/server/src/modules/learnroom/service/board",{"_index":2984,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/column",{"_index":4829,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["apps/server/src/modules/learnroom/service/common",{"_index":4930,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["apps/server/src/modules/learnroom/service/course",{"_index":6516,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts",{"_index":6827,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:13",{"_index":6831,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:6",{"_index":6829,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/course.service.ts:9",{"_index":6833,"title":{},"body":{"injectables/CourseService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts",{"_index":6671,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:6",{"_index":6674,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/coursegroup.service.ts:9",{"_index":6676,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts",{"_index":17009,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:10",{"_index":17013,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:19",{"_index":17017,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/service/rooms.service.ts:33",{"_index":17015,"title":{},"body":{"injectables/RoomsService.html":{}}}],["apps/server/src/modules/learnroom/uc/course",{"_index":6575,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts",{"_index":6839,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:10",{"_index":6843,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/course.uc.ts:7",{"_index":6841,"title":{},"body":{"injectables/CourseUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts",{"_index":7614,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:13",{"_index":7620,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:26",{"_index":7622,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:41",{"_index":7624,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:57",{"_index":7626,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/dashboard.uc.ts:7",{"_index":7619,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["apps/server/src/modules/learnroom/uc/lesson",{"_index":13828,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["apps/server/src/modules/learnroom/uc/room",{"_index":7911,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts",{"_index":16942,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:11",{"_index":16950,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:17",{"_index":16948,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:24",{"_index":16954,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:45",{"_index":16952,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts",{"_index":17032,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:10",{"_index":17036,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:20",{"_index":17038,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:31",{"_index":17043,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/learnroom/uc/rooms.uc.ts:52",{"_index":17041,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["apps/server/src/modules/legacy",{"_index":9465,"title":{},"body":{"injectables/FederalStateService.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationBody.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolParams.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts",{"_index":13971,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts:11",{"_index":13972,"title":{},"body":{"classes/LessonUrlParams.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts",{"_index":13655,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/controller/lesson.controller.ts:15",{"_index":13659,"title":{},"body":{"controllers/LessonController.html":{}}}],["apps/server/src/modules/lesson/lesson",{"_index":13649,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["apps/server/src/modules/lesson/lesson.module.ts",{"_index":13874,"title":{},"body":{"modules/LessonModule.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts",{"_index":8248,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:12",{"_index":8254,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/etherpad.service.ts:9",{"_index":8252,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["apps/server/src/modules/lesson/service/lesson",{"_index":13668,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts",{"_index":13939,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:13",{"_index":13945,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:19",{"_index":13950,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:23",{"_index":13948,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:27",{"_index":13947,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/lesson.service.ts:7",{"_index":13943,"title":{},"body":{"injectables/LessonService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts",{"_index":14865,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:12",{"_index":14869,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/service/nexboard.service.ts:9",{"_index":14867,"title":{},"body":{"injectables/NexboardService.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts",{"_index":13961,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:13",{"_index":13964,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lesson/uc/lesson.uc.ts:7",{"_index":13962,"title":{},"body":{"injectables/LessonUC.html":{}}}],["apps/server/src/modules/lti",{"_index":14332,"title":{},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{}}}],["apps/server/src/modules/management/console/board",{"_index":3444,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["apps/server/src/modules/management/console/database",{"_index":7645,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["apps/server/src/modules/management/controller/database",{"_index":7685,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts",{"_index":3844,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:11",{"_index":3857,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/converter/bson.converter.ts:21",{"_index":3848,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["apps/server/src/modules/management/management",{"_index":14422,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["apps/server/src/modules/management/management.module.ts",{"_index":14409,"title":{},"body":{"modules/ManagementModule.html":{}}}],["apps/server/src/modules/management/seed",{"_index":21566,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/modules/management/uc/board",{"_index":3470,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["apps/server/src/modules/management/uc/database",{"_index":11109,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["apps/server/src/modules/news/controller/dto/create",{"_index":6899,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/filter",{"_index":10355,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts",{"_index":14648,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:101",{"_index":14764,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:106",{"_index":14760,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:111",{"_index":14772,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:116",{"_index":14759,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:12",{"_index":14757,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:121",{"_index":14771,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:126",{"_index":14763,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:129",{"_index":14649,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:51",{"_index":14762,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:56",{"_index":14770,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:61",{"_index":14758,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:66",{"_index":14761,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:73",{"_index":14765,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:78",{"_index":14766,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:85",{"_index":14769,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:91",{"_index":14768,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.response.ts:96",{"_index":14767,"title":{},"body":{"classes/NewsResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts",{"_index":14862,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/news.url.params.ts:11",{"_index":14864,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/school",{"_index":17586,"title":{},"body":{"classes/SchoolInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/target",{"_index":18757,"title":{},"body":{"classes/TargetInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts",{"_index":19356,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/team.url.params.ts:11",{"_index":19357,"title":{},"body":{"classes/TeamUrlParams.html":{}}}],["apps/server/src/modules/news/controller/dto/update",{"_index":19969,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["apps/server/src/modules/news/controller/dto/user",{"_index":20206,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts",{"_index":14594,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:27",{"_index":14597,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:41",{"_index":14602,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:62",{"_index":14606,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:72",{"_index":14611,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/news.controller.ts:90",{"_index":14600,"title":{},"body":{"controllers/NewsController.html":{}}}],["apps/server/src/modules/news/controller/team",{"_index":19289,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["apps/server/src/modules/news/loggable/news",{"_index":14638,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts",{"_index":14665,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:38",{"_index":14673,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:52",{"_index":14671,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:65",{"_index":14679,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:74",{"_index":14675,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/news.mapper.ts:9",{"_index":14677,"title":{},"body":{"classes/NewsMapper.html":{}}}],["apps/server/src/modules/news/mapper/school",{"_index":17579,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/target",{"_index":18752,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["apps/server/src/modules/news/mapper/user",{"_index":20205,"title":{},"body":{"classes/UserInfoMapper.html":{}}}],["apps/server/src/modules/news/news.module.ts",{"_index":14717,"title":{},"body":{"modules/NewsModule.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts",{"_index":14791,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:100",{"_index":14808,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:122",{"_index":14820,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:148",{"_index":14801,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:159",{"_index":14812,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:179",{"_index":14818,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:197",{"_index":14810,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:207",{"_index":14814,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:23",{"_index":14798,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:39",{"_index":14800,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/news/uc/news.uc.ts:67",{"_index":14803,"title":{},"body":{"injectables/NewsUc.html":{}}}],["apps/server/src/modules/oauth",{"_index":361,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/ChallengeParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"interfaces/GroupNameIdTuple.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"classes/OidcContextResponse.html":{},"classes/RedirectResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/UserParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts",{"_index":1996,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:11",{"_index":2000,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:15",{"_index":2003,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:19",{"_index":2004,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:23",{"_index":2005,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/authorization.params.ts:27",{"_index":2006,"title":{},"body":{"classes/AuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/sso",{"_index":17208,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["apps/server/src/modules/oauth/controller/dto/stateless",{"_index":18171,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/system",{"_index":18619,"title":{},"body":{"classes/SystemIdParams.html":{}}}],["apps/server/src/modules/oauth/controller/dto/user",{"_index":20592,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["apps/server/src/modules/oauth/controller/oauth",{"_index":15690,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["apps/server/src/modules/oauth/error/oauth",{"_index":15023,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["apps/server/src/modules/oauth/error/user",{"_index":20682,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["apps/server/src/modules/oauth/interface/oauth",{"_index":15137,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["apps/server/src/modules/oauth/mapper/oauth",{"_index":15379,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/token",{"_index":19503,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["apps/server/src/modules/oauth/mapper/user",{"_index":20589,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["apps/server/src/modules/oauth/oauth",{"_index":15232,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["apps/server/src/modules/oauth/oauth.module.ts",{"_index":15399,"title":{},"body":{"modules/OauthModule.html":{}}}],["apps/server/src/modules/oauth/service/dto/authentication",{"_index":1593,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts",{"_index":6033,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:2",{"_index":6037,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4",{"_index":6036,"title":{},"body":{"classes/CookiesDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts",{"_index":10984,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:13",{"_index":10988,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:15",{"_index":10989,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:17",{"_index":10987,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:19",{"_index":10990,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:21",{"_index":10986,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:4",{"_index":10985,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["apps/server/src/modules/oauth/service/dto/oauth",{"_index":15009,"title":{},"body":{"classes/OAuthProcessDto.html":{},"interfaces/OauthTokenResponse.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts",{"_index":11001,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:126",{"_index":11013,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:19",{"_index":11008,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:27",{"_index":11021,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:29",{"_index":11015,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:43",{"_index":11020,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:79",{"_index":11017,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/hydra.service.ts:99",{"_index":11011,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["apps/server/src/modules/oauth/service/oauth",{"_index":15196,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts",{"_index":15033,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:116",{"_index":15054,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:132",{"_index":15063,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:142",{"_index":15067,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:154",{"_index":15069,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:169",{"_index":15059,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:189",{"_index":15056,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:205",{"_index":15061,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:214",{"_index":15052,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:22",{"_index":15047,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:37",{"_index":15050,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/service/oauth.service.ts:63",{"_index":15065,"title":{},"body":{"injectables/OAuthService.html":{}}}],["apps/server/src/modules/oauth/uc/dto/oauth",{"_index":15367,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["apps/server/src/modules/oauth/uc/hydra",{"_index":10924,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts",{"_index":15807,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:142",{"_index":15814,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:26",{"_index":15812,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:40",{"_index":15822,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:66",{"_index":15820,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/oauth/uc/oauth.uc.ts:97",{"_index":15817,"title":{},"body":{"injectables/OauthUc.html":{}}}],["apps/server/src/modules/provisioning/dto/external",{"_index":8267,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalUserDto.html":{}}}],["apps/server/src/modules/provisioning/dto/oauth",{"_index":15345,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning",{"_index":16355,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts",{"_index":16297,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2",{"_index":16299,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["apps/server/src/modules/provisioning/loggable/group",{"_index":10697,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/school",{"_index":17542,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/loggable/user",{"_index":20201,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["apps/server/src/modules/provisioning/mapper/provisioning",{"_index":16360,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["apps/server/src/modules/provisioning/provisioning.module.ts",{"_index":16307,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts",{"_index":16313,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:16",{"_index":16334,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:19",{"_index":16322,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:32",{"_index":16333,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:36",{"_index":16326,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:50",{"_index":16324,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:56",{"_index":16331,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/service/provisioning.service.ts:62",{"_index":16328,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts",{"_index":16351,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:5",{"_index":16354,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:7",{"_index":16353,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/base.strategy.ts:9",{"_index":16352,"title":{},"body":{"classes/ProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv",{"_index":12594,"title":{},"body":{"classes/IservMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts",{"_index":12611,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:19",{"_index":12615,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:65",{"_index":12620,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc",{"_index":15899,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts",{"_index":15989,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts:9",{"_index":15991,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/oidc/service/oidc",{"_index":15909,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/response/sanis",{"_index":17215,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/response/sanis.response.ts",{"_index":17273,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis",{"_index":17276,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts",{"_index":17250,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:21",{"_index":17253,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:69",{"_index":17256,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["apps/server/src/modules/pseudonym/entity/external",{"_index":8710,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts",{"_index":16381,"title":{},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:18",{"_index":16382,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:21",{"_index":16383,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:24",{"_index":16384,"title":{},"body":{"entities/PseudonymEntity.html":{}}}],["apps/server/src/modules/pseudonym/pseudonym.module.ts",{"_index":16390,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["apps/server/src/modules/pseudonym/repo/external",{"_index":8724,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts",{"_index":16436,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:10",{"_index":16442,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:21",{"_index":16441,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:36",{"_index":16440,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:44",{"_index":16438,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:65",{"_index":16439,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:7",{"_index":16437,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:71",{"_index":16444,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:82",{"_index":16443,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts",{"_index":16391,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:103",{"_index":16403,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:110",{"_index":16414,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:15",{"_index":16405,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:25",{"_index":16406,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:48",{"_index":16410,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:72",{"_index":16401,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:85",{"_index":16412,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:9",{"_index":16399,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:91",{"_index":16408,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/pseudonym/service/pseudonym.service.ts:97",{"_index":16404,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["apps/server/src/modules/rocketchat/rocket",{"_index":1263,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts",{"_index":16805,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:13",{"_index":16809,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/mapper/role.mapper.ts:5",{"_index":16812,"title":{},"body":{"classes/RoleMapper.html":{}}}],["apps/server/src/modules/role/role.module.ts",{"_index":16821,"title":{},"body":{"modules/RoleModule.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts",{"_index":16800,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:4",{"_index":16802,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:6",{"_index":16803,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/dto/role.dto.ts:8",{"_index":16801,"title":{},"body":{"classes/RoleDto.html":{}}}],["apps/server/src/modules/role/service/role.service.ts",{"_index":16852,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:11",{"_index":16859,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:16",{"_index":16856,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:22",{"_index":16857,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:28",{"_index":16858,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/service/role.service.ts:8",{"_index":16855,"title":{},"body":{"injectables/RoleService.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts",{"_index":16870,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:10",{"_index":16873,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/role/uc/role.uc.ts:7",{"_index":16872,"title":{},"body":{"injectables/RoleUc.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts",{"_index":17764,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/controller/server.controller.ts:7",{"_index":17765,"title":{},"body":{"controllers/ServerController.html":{}}}],["apps/server/src/modules/server/server.config.ts",{"_index":11745,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["apps/server/src/modules/server/server.module.ts",{"_index":17777,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:152",{"_index":17780,"title":{},"body":{"modules/ServerModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:183",{"_index":17849,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/server/server.module.ts:187",{"_index":17850,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["apps/server/src/modules/sharing/controller/dto/share",{"_index":17863,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{}}}],["apps/server/src/modules/sharing/controller/share",{"_index":17882,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["apps/server/src/modules/sharing/domainobject/share",{"_index":17931,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["apps/server/src/modules/sharing/entity/share",{"_index":11765,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["apps/server/src/modules/sharing/mapper/context",{"_index":17879,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/metadata",{"_index":14448,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/parent",{"_index":17975,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["apps/server/src/modules/sharing/mapper/share",{"_index":17969,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["apps/server/src/modules/sharing/repo/share",{"_index":17987,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["apps/server/src/modules/sharing/service/share",{"_index":18020,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["apps/server/src/modules/sharing/service/token",{"_index":19498,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["apps/server/src/modules/sharing/sharing.module.ts",{"_index":18124,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["apps/server/src/modules/sharing/uc/dto/share",{"_index":17960,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{}}}],["apps/server/src/modules/sharing/uc/share",{"_index":18051,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["apps/server/src/modules/system/controller/dto/oauth",{"_index":15319,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/public",{"_index":16453,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{}}}],["apps/server/src/modules/system/controller/dto/system",{"_index":18620,"title":{},"body":{"classes/SystemIdParams-1.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts",{"_index":18611,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:10",{"_index":18617,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/dto/system.filter.params.ts:16",{"_index":18614,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["apps/server/src/modules/system/controller/mapper/system",{"_index":18685,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts",{"_index":18532,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:23",{"_index":18539,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/controller/system.controller.ts:38",{"_index":18545,"title":{},"body":{"controllers/SystemController.html":{}}}],["apps/server/src/modules/system/mapper/system",{"_index":18643,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts",{"_index":18622,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:20",{"_index":18628,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:39",{"_index":18625,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/mapper/system.mapper.ts:6",{"_index":18626,"title":{},"body":{"classes/SystemMapper.html":{}}}],["apps/server/src/modules/system/service/dto/oauth",{"_index":15289,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/oidc",{"_index":15855,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts",{"_index":18566,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:10",{"_index":18576,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:12",{"_index":18569,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:14",{"_index":18570,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:16",{"_index":18573,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:18",{"_index":18574,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:20",{"_index":18572,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:22",{"_index":18568,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:6",{"_index":18571,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/dto/system.dto.ts:8",{"_index":18575,"title":{},"body":{"classes/SystemDto.html":{}}}],["apps/server/src/modules/system/service/system",{"_index":18656,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts",{"_index":18702,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:10",{"_index":18705,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:16",{"_index":18706,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:25",{"_index":18708,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:40",{"_index":18712,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/service/system.service.ts:66",{"_index":18710,"title":{},"body":{"injectables/SystemService.html":{}}}],["apps/server/src/modules/system/system",{"_index":18527,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["apps/server/src/modules/system/system.module.ts",{"_index":18639,"title":{},"body":{"modules/SystemModule.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts",{"_index":18744,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:11",{"_index":18747,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:25",{"_index":18748,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/system/uc/system.uc.ts:8",{"_index":18745,"title":{},"body":{"injectables/SystemUc.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts",{"_index":18466,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:14",{"_index":18473,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:17",{"_index":18476,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:20",{"_index":18475,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:23",{"_index":18472,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:26",{"_index":18474,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:29",{"_index":18477,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:3",{"_index":18471,"title":{},"body":{"classes/SubmissionStatusResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:32",{"_index":18467,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.response.ts:38",{"_index":18468,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts",{"_index":18496,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/submission.url.params.ts:11",{"_index":18497,"title":{},"body":{"classes/SubmissionUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task",{"_index":18834,"title":{},"body":{"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts",{"_index":18911,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:22",{"_index":19078,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:26",{"_index":19081,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:29",{"_index":19070,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:32",{"_index":19077,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:36",{"_index":19072,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:39",{"_index":19080,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:42",{"_index":19071,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:49",{"_index":19075,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:52",{"_index":19079,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:55",{"_index":19076,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:58",{"_index":19073,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:61",{"_index":19083,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:64",{"_index":19082,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:67",{"_index":18912,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.response.ts:9",{"_index":19069,"title":{},"body":{"classes/TaskResponse.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts",{"_index":19249,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/dto/task.url.params.ts:11",{"_index":19250,"title":{},"body":{"classes/TaskUrlParams.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts",{"_index":18252,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:16",{"_index":18260,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/submission.controller.ts:30",{"_index":18256,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts",{"_index":18784,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:100",{"_index":18793,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:22",{"_index":18794,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:30",{"_index":18797,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:37",{"_index":18799,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:54",{"_index":18802,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:63",{"_index":18805,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:72",{"_index":18808,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/controller/task.controller.ts:85",{"_index":18791,"title":{},"body":{"controllers/TaskController.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts",{"_index":18389,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/submission.mapper.ts:5",{"_index":18392,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["apps/server/src/modules/task/mapper/task",{"_index":19150,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts",{"_index":18918,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:39",{"_index":18925,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:54",{"_index":18922,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/mapper/task.mapper.ts:6",{"_index":18927,"title":{},"body":{"classes/TaskMapper.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts",{"_index":18451,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:13",{"_index":18460,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:17",{"_index":18458,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:23",{"_index":18456,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/submission.service.ts:7",{"_index":18454,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["apps/server/src/modules/task/service/task",{"_index":18836,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts",{"_index":19134,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:15",{"_index":19143,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:24",{"_index":19138,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:32",{"_index":19140,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:39",{"_index":19142,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/service/task.service.ts:8",{"_index":19136,"title":{},"body":{"injectables/TaskService.html":{}}}],["apps/server/src/modules/task/task",{"_index":18778,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["apps/server/src/modules/task/task.module.ts",{"_index":18959,"title":{},"body":{"modules/TaskModule.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts",{"_index":18478,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:13",{"_index":18486,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:22",{"_index":18482,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:39",{"_index":18484,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/submission.uc.ts:7",{"_index":18481,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["apps/server/src/modules/task/uc/task",{"_index":18866,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts",{"_index":19161,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:110",{"_index":19186,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:126",{"_index":19176,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:155",{"_index":19178,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:185",{"_index":19182,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:19",{"_index":19167,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:197",{"_index":19184,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:218",{"_index":19179,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:225",{"_index":19170,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:28",{"_index":19174,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:69",{"_index":19172,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/task/uc/task.uc.ts:85",{"_index":19169,"title":{},"body":{"injectables/TaskUC.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts",{"_index":19341,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:15",{"_index":19347,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:6",{"_index":19345,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/service/team.service.ts:9",{"_index":19349,"title":{},"body":{"injectables/TeamService.html":{}}}],["apps/server/src/modules/teams/teams",{"_index":19387,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["apps/server/src/modules/teams/teams.module.ts",{"_index":19392,"title":{},"body":{"modules/TeamsModule.html":{}}}],["apps/server/src/modules/tool/common/common",{"_index":5276,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["apps/server/src/modules/tool/common/domain/custom",{"_index":7061,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntry.html":{}}}],["apps/server/src/modules/tool/common/entity/custom",{"_index":7104,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["apps/server/src/modules/tool/common/interface/external",{"_index":9068,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{}}}],["apps/server/src/modules/tool/common/interface/tool",{"_index":19954,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["apps/server/src/modules/tool/common/mapper/context",{"_index":6016,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["apps/server/src/modules/tool/common/service/common",{"_index":5284,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{}}}],["apps/server/src/modules/tool/common/uc/tool",{"_index":19842,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["apps/server/src/modules/tool/context",{"_index":5598,"title":{},"body":{"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolIdParams.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"interfaces/IContextExternalToolProperties.html":{},"controllers/ToolContextController.html":{}}}],["apps/server/src/modules/tool/external",{"_index":2600,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{},"classes/SortExternalToolParams.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{}}}],["apps/server/src/modules/tool/school",{"_index":7108,"title":{},"body":{"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"controllers/ToolSchoolController.html":{}}}],["apps/server/src/modules/tool/tool",{"_index":108,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PropertyData.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["apps/server/src/modules/tool/tool.module.ts",{"_index":19841,"title":{},"body":{"modules/ToolModule.html":{}}}],["apps/server/src/modules/user",{"_index":4442,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/OAuthMigrationError.html":{},"classes/Oauth2MigrationParams.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RoleNameMapper.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SortImportUserParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{}}}],["apps/server/src/modules/user/controller/dto/resolved",{"_index":16704,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts",{"_index":4219,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.params.ts:8",{"_index":4223,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts",{"_index":18499,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:3",{"_index":18501,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/dto/user.response.ts:9",{"_index":18502,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts",{"_index":20021,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:16",{"_index":20028,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/controller/user.controller.ts:26",{"_index":20025,"title":{},"body":{"controllers/UserController.html":{}}}],["apps/server/src/modules/user/interfaces/user",{"_index":12096,"title":{},"body":{"interfaces/IUserConfig.html":{}}}],["apps/server/src/modules/user/mapper/resolved",{"_index":16693,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts",{"_index":20537,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/mapper/user.mapper.ts:5",{"_index":20538,"title":{},"body":{"classes/UserMapper.html":{}}}],["apps/server/src/modules/user/service/user.service.ts",{"_index":20763,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:105",{"_index":20771,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:21",{"_index":20769,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:30",{"_index":20784,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:40",{"_index":20782,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:46",{"_index":20780,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:54",{"_index":20774,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:59",{"_index":20789,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:64",{"_index":20791,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:69",{"_index":20776,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:74",{"_index":20773,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:79",{"_index":20772,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:84",{"_index":20778,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/service/user.service.ts:96",{"_index":20787,"title":{},"body":{"injectables/UserService.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts",{"_index":20159,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:20",{"_index":20167,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:22",{"_index":20163,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:24",{"_index":20165,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:26",{"_index":20170,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:28",{"_index":20174,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:3",{"_index":20162,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:30",{"_index":20175,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:32",{"_index":20171,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:34",{"_index":20164,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:36",{"_index":20168,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:38",{"_index":20166,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:41",{"_index":20173,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:43",{"_index":20169,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/dto/user.dto.ts:45",{"_index":20172,"title":{},"body":{"classes/UserDto.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts",{"_index":20815,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:12",{"_index":20821,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:19",{"_index":20819,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:25",{"_index":20822,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/uc/user.uc.ts:9",{"_index":20817,"title":{},"body":{"injectables/UserUc.html":{}}}],["apps/server/src/modules/user/user",{"_index":20018,"title":{},"body":{"modules/UserApiModule.html":{}}}],["apps/server/src/modules/user/user.module.ts",{"_index":20678,"title":{},"body":{"modules/UserModule.html":{}}}],["apps/server/src/modules/video",{"_index":2090,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/Builder.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"interfaces/IBbbSettings.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ScopeRef.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{}}}],["apps/server/src/shared/common/decorators/timeout.decorator.ts",{"_index":21588,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/common/error/api",{"_index":1470,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts",{"_index":1883,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/authorization.error.ts:4",{"_index":1885,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts",{"_index":3869,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:12",{"_index":3878,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:15",{"_index":3881,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:18",{"_index":3880,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:21",{"_index":3879,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:25",{"_index":3877,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/business.error.ts:47",{"_index":3882,"title":{},"body":{"classes/BusinessError.html":{}}}],["apps/server/src/shared/common/error/entity",{"_index":8119,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["apps/server/src/shared/common/error/forbidden",{"_index":10376,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["apps/server/src/shared/common/error/user",{"_index":20000,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts",{"_index":20826,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/error/validation.error.ts:4",{"_index":20827,"title":{},"body":{"classes/ValidationError.html":{}}}],["apps/server/src/shared/common/interceptor/duration",{"_index":8011,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/interfaces/interceptor",{"_index":11498,"title":{},"body":{"interfaces/IInterceptorConfig.html":{}}}],["apps/server/src/shared/common/interceptor/request",{"_index":16677,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts",{"_index":19466,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:11",{"_index":19470,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/interceptor/timeout.interceptor.ts:14",{"_index":19471,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["apps/server/src/shared/common/loggable",{"_index":14971,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts",{"_index":6024,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/converter.util.ts:9",{"_index":6027,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["apps/server/src/shared/common/utils/guard",{"_index":10761,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts",{"_index":18208,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:10",{"_index":18211,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/common/validator/string.validator.ts:2",{"_index":18213,"title":{},"body":{"classes/StringValidator.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts",{"_index":16051,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:14",{"_index":16052,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.params.ts:8",{"_index":16053,"title":{},"body":{"classes/PaginationParams.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts",{"_index":16056,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:11",{"_index":16059,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:14",{"_index":16062,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:17",{"_index":16061,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:20",{"_index":16060,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/pagination.response.ts:3",{"_index":16058,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts",{"_index":18153,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:13",{"_index":18154,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/dto/sorting.params.ts:18",{"_index":18156,"title":{},"body":{"classes/SortingParams.html":{}}}],["apps/server/src/shared/controller/transformer/decode",{"_index":21549,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/controller/transformer/sanitize",{"_index":21590,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/controller/transformer/single",{"_index":21593,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/controller/transformer/string",{"_index":21595,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/controller/validator/privacy",{"_index":21584,"title":{},"body":{"miscellaneous/functions.html":{}}}],["apps/server/src/shared/domain/domain",{"_index":1855,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts",{"_index":2380,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/base.do.ts:5",{"_index":2382,"title":{},"body":{"classes/BaseDO.html":{}}}],["apps/server/src/shared/domain/domainobject/board/board",{"_index":2792,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts",{"_index":3980,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:12",{"_index":3990,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:16",{"_index":3992,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:20",{"_index":3994,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/card.do.ts:8",{"_index":3988,"title":{},"body":{"classes/Card.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column",{"_index":4688,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts",{"_index":4680,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:10",{"_index":4684,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/column.do.ts:6",{"_index":4683,"title":{},"body":{"classes/Column.html":{}}}],["apps/server/src/shared/domain/domainobject/board/content",{"_index":5490,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["apps/server/src/shared/domain/domainobject/board/file",{"_index":9516,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/rich",{"_index":16743,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/submission",{"_index":18229,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"interfaces/SubmissionItemProps.html":{}}}],["apps/server/src/shared/domain/domainobject/board/types/board",{"_index":2845,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardExternalReference.html":{},"interfaces/UserBoardRoles.html":{}}}],["apps/server/src/shared/domain/domainobject/external",{"_index":8307,"title":{},"body":{"classes/ExternalSource.html":{}}}],["apps/server/src/shared/domain/domainobject/legacy",{"_index":13483,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts",{"_index":7031,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:17",{"_index":14307,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:19",{"_index":14316,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:21",{"_index":14303,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:23",{"_index":14314,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:25",{"_index":14304,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:27",{"_index":14305,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:29",{"_index":14306,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:31",{"_index":14312,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:33",{"_index":14313,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:35",{"_index":14311,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:37",{"_index":14298,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:39",{"_index":14302,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:41",{"_index":14301,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:43",{"_index":14310,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:45",{"_index":14308,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:47",{"_index":14299,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:49",{"_index":14315,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:51",{"_index":14309,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:53",{"_index":14300,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:55",{"_index":14297,"title":{},"body":{"classes/LtiToolDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:6",{"_index":7034,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/ltitool.do.ts:8",{"_index":7033,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts",{"_index":16006,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:2",{"_index":16008,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/page.ts:4",{"_index":16007,"title":{},"body":{"classes/Page.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts",{"_index":16368,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:13",{"_index":16370,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:17",{"_index":16372,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:21",{"_index":16373,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:25",{"_index":16374,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/pseudonym.do.ts:29",{"_index":16375,"title":{},"body":{"classes/Pseudonym.html":{}}}],["apps/server/src/shared/domain/domainobject/role",{"_index":16836,"title":{},"body":{"classes/RoleReference.html":{}}}],["apps/server/src/shared/domain/domainobject/user",{"_index":20338,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts",{"_index":20038,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:11",{"_index":20041,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:13",{"_index":20044,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:15",{"_index":20050,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:17",{"_index":20055,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:19",{"_index":20056,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:21",{"_index":20052,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:23",{"_index":20043,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:25",{"_index":20047,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:27",{"_index":20045,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:29",{"_index":20051,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:31",{"_index":20042,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:33",{"_index":20048,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:35",{"_index":20046,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:37",{"_index":20054,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:39",{"_index":20049,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:41",{"_index":20053,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:43",{"_index":20039,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:7",{"_index":20040,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/user.do.ts:9",{"_index":20057,"title":{},"body":{"classes/UserDO.html":{}}}],["apps/server/src/shared/domain/domainobject/video",{"_index":21003,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts",{"_index":382,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:12",{"_index":397,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:15",{"_index":391,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:18",{"_index":393,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:21",{"_index":388,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:24",{"_index":395,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:27",{"_index":392,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:30",{"_index":390,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:33",{"_index":389,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/account.entity.ts:36",{"_index":387,"title":{},"body":{"entities/Account.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts",{"_index":2493,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:11",{"_index":2498,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:25",{"_index":2520,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:28",{"_index":2522,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:31",{"_index":2521,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:34",{"_index":2524,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/entity/base.entity.ts:8",{"_index":2496,"title":{},"body":{"classes/BaseEntity.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts",{"_index":3551,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:29",{"_index":3555,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:32",{"_index":3553,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:35",{"_index":3556,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:39",{"_index":3559,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:42",{"_index":3557,"title":{},"body":{"entities/BoardNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/card",{"_index":4089,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/column",{"_index":4711,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/file",{"_index":9538,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/rich",{"_index":16769,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/submission",{"_index":18241,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["apps/server/src/shared/domain/entity/boardnode/types/board",{"_index":3155,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts",{"_index":6363,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:45",{"_index":6385,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:48",{"_index":6380,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:52",{"_index":6387,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:56",{"_index":6392,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:60",{"_index":6395,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:64",{"_index":6394,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:67",{"_index":6378,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:71",{"_index":6374,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:74",{"_index":6390,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:78",{"_index":6396,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:81",{"_index":6375,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:85",{"_index":6389,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/course.entity.ts:88",{"_index":6383,"title":{},"body":{"entities/Course.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts",{"_index":6623,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:21",{"_index":6626,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:25",{"_index":6631,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:29",{"_index":6625,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/coursegroup.entity.ts:33",{"_index":6629,"title":{},"body":{"entities/CourseGroup.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts",{"_index":7252,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:100",{"_index":10573,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:108",{"_index":10562,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:117",{"_index":10568,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:138",{"_index":10572,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:14",{"_index":11434,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:142",{"_index":10575,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:16",{"_index":11436,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:161",{"_index":7272,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:163",{"_index":7270,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:165",{"_index":7271,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:167",{"_index":7273,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:169",{"_index":7294,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:176",{"_index":7300,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:18",{"_index":11435,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:180",{"_index":7269,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:193",{"_index":7288,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:197",{"_index":7292,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:20",{"_index":11432,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:201",{"_index":7286,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:213",{"_index":7283,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:22",{"_index":11431,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:221",{"_index":7298,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:231",{"_index":7307,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:24",{"_index":11437,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:240",{"_index":7304,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:255",{"_index":7279,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:266",{"_index":7277,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:272",{"_index":7275,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:278",{"_index":7285,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:286",{"_index":7291,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:298",{"_index":7302,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:307",{"_index":7296,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:38",{"_index":10558,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:40",{"_index":10561,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:42",{"_index":10560,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:52",{"_index":10557,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:60",{"_index":10566,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:64",{"_index":10565,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:68",{"_index":10567,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:72",{"_index":10564,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:76",{"_index":10559,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:78",{"_index":10571,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:8",{"_index":11433,"title":{},"body":{"interfaces/IGridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:82",{"_index":10569,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:86",{"_index":10570,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.entity.ts:90",{"_index":10574,"title":{},"body":{"classes/GridElement.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts",{"_index":7405,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:42",{"_index":7412,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:45",{"_index":7413,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:48",{"_index":7414,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:52",{"_index":7411,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:56",{"_index":7409,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:76",{"_index":7493,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/dashboard.model.entity.ts:81",{"_index":7495,"title":{},"body":{"entities/DashboardModelEntity.html":{}}}],["apps/server/src/shared/domain/entity/external",{"_index":8312,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["apps/server/src/shared/domain/entity/federal",{"_index":6341,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["apps/server/src/shared/domain/entity/import",{"_index":11446,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["apps/server/src/shared/domain/entity/legacy",{"_index":2670,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts",{"_index":11306,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:101",{"_index":13860,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:104",{"_index":13853,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:107",{"_index":13858,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:110",{"_index":13861,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:81",{"_index":11536,"title":{},"body":{"interfaces/ILessonParent.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:87",{"_index":13859,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:91",{"_index":13857,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:95",{"_index":13854,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/lesson.entity.ts:98",{"_index":13855,"title":{},"body":{"entities/LessonEntity.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts",{"_index":6958,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:101",{"_index":14278,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:33",{"_index":14285,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:36",{"_index":14296,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:39",{"_index":14281,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:42",{"_index":14294,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:45",{"_index":14282,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:48",{"_index":14283,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:51",{"_index":14284,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:54",{"_index":14290,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:58",{"_index":14293,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:65",{"_index":14289,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:68",{"_index":14275,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:71",{"_index":14280,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:74",{"_index":14279,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:77",{"_index":14274,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:85",{"_index":14286,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:89",{"_index":14276,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:92",{"_index":14295,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:95",{"_index":14287,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/ltitool.entity.ts:98",{"_index":14277,"title":{},"body":{"entities/LtiTool.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts",{"_index":11539,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:31",{"_index":14430,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:34",{"_index":14431,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:37",{"_index":14432,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:40",{"_index":14433,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:43",{"_index":14434,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:46",{"_index":14435,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:49",{"_index":14436,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:52",{"_index":14437,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:55",{"_index":14438,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/materials.entity.ts:58",{"_index":14439,"title":{},"body":{"entities/Material.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts",{"_index":6718,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:102",{"_index":17678,"title":{},"body":{"entities/SchoolNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:116",{"_index":6719,"title":{},"body":{"entities/CourseNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:127",{"_index":19288,"title":{},"body":{"entities/TeamNews.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:34",{"_index":14591,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:38",{"_index":14581,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:43",{"_index":14583,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:46",{"_index":14584,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:49",{"_index":14587,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:52",{"_index":14588,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:55",{"_index":14589,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:59",{"_index":14590,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:62",{"_index":14586,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:65",{"_index":14582,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:68",{"_index":14592,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/news.entity.ts:70",{"_index":14585,"title":{},"body":{"entities/News.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts",{"_index":11670,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:15",{"_index":16796,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:18",{"_index":16797,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/role.entity.ts:21",{"_index":16799,"title":{},"body":{"entities/Role.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts",{"_index":11691,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:100",{"_index":17354,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:103",{"_index":17344,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:47",{"_index":17692,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:50",{"_index":17691,"title":{},"body":{"classes/SchoolRolePermission.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:56",{"_index":17693,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:59",{"_index":17694,"title":{},"body":{"classes/SchoolRoles.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:66",{"_index":17343,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:69",{"_index":17345,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:72",{"_index":17346,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:75",{"_index":17342,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:78",{"_index":17350,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:81",{"_index":17347,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:84",{"_index":17348,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:87",{"_index":17352,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:90",{"_index":17349,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/school.entity.ts:93",{"_index":17351,"title":{},"body":{"entities/SchoolEntity.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts",{"_index":11736,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:13",{"_index":17706,"title":{},"body":{"entities/SchoolYear.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:16",{"_index":17707,"title":{},"body":{"entities/SchoolYear.html":{}}}],["apps/server/src/shared/domain/entity/schoolyear.entity.ts:19",{"_index":17705,"title":{},"body":{"entities/SchoolYear.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts",{"_index":11776,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:15",{"_index":18200,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:18",{"_index":18199,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:21",{"_index":18202,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/storageprovider.entity.ts:24",{"_index":18201,"title":{},"body":{"entities/StorageProviderEntity.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts",{"_index":11789,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:30",{"_index":18221,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:34",{"_index":18225,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:37",{"_index":18222,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:40",{"_index":18217,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:43",{"_index":18226,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:46",{"_index":18216,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:49",{"_index":18223,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:52",{"_index":18220,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:55",{"_index":18218,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/submission.entity.ts:58",{"_index":18219,"title":{},"body":{"entities/Submission.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts",{"_index":11844,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:102",{"_index":13270,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:105",{"_index":13271,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:108",{"_index":13269,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:111",{"_index":13278,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:114",{"_index":13275,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:117",{"_index":13276,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:120",{"_index":13277,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:123",{"_index":13273,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:126",{"_index":13274,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:153",{"_index":15846,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:166",{"_index":15848,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:169",{"_index":15849,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:172",{"_index":15851,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:175",{"_index":15847,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:178",{"_index":15853,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:18",{"_index":15275,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:181",{"_index":15852,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:184",{"_index":15854,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:187",{"_index":15850,"title":{},"body":{"classes/OidcConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:206",{"_index":18521,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:209",{"_index":18522,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:212",{"_index":18512,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:215",{"_index":18513,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:218",{"_index":18516,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:222",{"_index":18519,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:225",{"_index":18517,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:228",{"_index":18515,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:231",{"_index":18520,"title":{},"body":{"entities/System.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:36",{"_index":15277,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:39",{"_index":15278,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:42",{"_index":15280,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:45",{"_index":15285,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:48",{"_index":15279,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:51",{"_index":15288,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:54",{"_index":15276,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:57",{"_index":15286,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:60",{"_index":15287,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:63",{"_index":15284,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:66",{"_index":15283,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:69",{"_index":15281,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:72",{"_index":15282,"title":{},"body":{"classes/OauthConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:76",{"_index":13266,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:93",{"_index":13267,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:96",{"_index":13268,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/system.entity.ts:99",{"_index":13272,"title":{},"body":{"classes/LdapConfig.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts",{"_index":11957,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:16",{"_index":19252,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:18",{"_index":19251,"title":{},"body":{"classes/TaskWithStatusVo.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:35",{"_index":11958,"title":{},"body":{"interfaces/ITaskParent.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:45",{"_index":18767,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:48",{"_index":18761,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:51",{"_index":18762,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:54",{"_index":18758,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:58",{"_index":18763,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:61",{"_index":18768,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:64",{"_index":18769,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:67",{"_index":18772,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:71",{"_index":18760,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:75",{"_index":18759,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:79",{"_index":18770,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:83",{"_index":18766,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:86",{"_index":18771,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/task.entity.ts:90",{"_index":18764,"title":{},"body":{"entities/Task.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts",{"_index":12067,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:19",{"_index":19361,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:27",{"_index":19364,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:30",{"_index":19362,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:33",{"_index":19363,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:36",{"_index":19365,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:40",{"_index":19367,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:44",{"_index":19369,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:48",{"_index":19371,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:56",{"_index":19260,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/team.entity.ts:59",{"_index":19261,"title":{},"body":{"entities/TeamEntity.html":{}}}],["apps/server/src/shared/domain/entity/user",{"_index":20210,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts",{"_index":12098,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:41",{"_index":19981,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:44",{"_index":19984,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:47",{"_index":19990,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:51",{"_index":19997,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:55",{"_index":19998,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:59",{"_index":19992,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:62",{"_index":19983,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:65",{"_index":19995,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:69",{"_index":19987,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:72",{"_index":19985,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:75",{"_index":19991,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:78",{"_index":19982,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:81",{"_index":19988,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:84",{"_index":19986,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:87",{"_index":19994,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:91",{"_index":19980,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:94",{"_index":19989,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/user.entity.ts:97",{"_index":19993,"title":{},"body":{"entities/User.html":{}}}],["apps/server/src/shared/domain/entity/video",{"_index":20836,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["apps/server/src/shared/domain/interface/base",{"_index":2484,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["apps/server/src/shared/domain/interface/entity.ts",{"_index":11397,"title":{},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["apps/server/src/shared/domain/interface/find",{"_index":11429,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["apps/server/src/shared/domain/interface/learnroom.ts",{"_index":11518,"title":{},"body":{"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["apps/server/src/shared/domain/rules/board",{"_index":3350,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["apps/server/src/shared/domain/rules/context",{"_index":5863,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["apps/server/src/shared/domain/rules/course",{"_index":6661,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["apps/server/src/shared/domain/rules/course.rule.ts",{"_index":6813,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/shared/domain/rules/course.rule.ts:10",{"_index":6816,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/shared/domain/rules/course.rule.ts:16",{"_index":6815,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/shared/domain/rules/course.rule.ts:7",{"_index":6814,"title":{},"body":{"injectables/CourseRule.html":{}}}],["apps/server/src/shared/domain/rules/legacy",{"_index":13579,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts",{"_index":13899,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:16",{"_index":13911,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:22",{"_index":13910,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:38",{"_index":13913,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:51",{"_index":13915,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:57",{"_index":13917,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:69",{"_index":13909,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:75",{"_index":13907,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/lesson.rule.ts:9",{"_index":13905,"title":{},"body":{"injectables/LessonRule.html":{}}}],["apps/server/src/shared/domain/rules/school",{"_index":17463,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts",{"_index":18421,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:11",{"_index":18439,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:17",{"_index":18434,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:27",{"_index":18429,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:39",{"_index":18438,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:45",{"_index":18436,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:59",{"_index":18433,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:68",{"_index":18431,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/submission.rule.ts:8",{"_index":18427,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts",{"_index":19084,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts:16",{"_index":19090,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts:22",{"_index":19089,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts:43",{"_index":19088,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/task.rule.ts:9",{"_index":19086,"title":{},"body":{"injectables/TaskRule.html":{}}}],["apps/server/src/shared/domain/rules/team.rule.ts",{"_index":19333,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/shared/domain/rules/team.rule.ts:10",{"_index":19336,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/shared/domain/rules/team.rule.ts:14",{"_index":19335,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/shared/domain/rules/team.rule.ts:7",{"_index":19334,"title":{},"body":{"injectables/TeamRule.html":{}}}],["apps/server/src/shared/domain/rules/user",{"_index":20430,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["apps/server/src/shared/domain/rules/user.rule.ts",{"_index":20745,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/shared/domain/rules/user.rule.ts:10",{"_index":20748,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/shared/domain/rules/user.rule.ts:16",{"_index":20747,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/shared/domain/rules/user.rule.ts:7",{"_index":20746,"title":{},"body":{"injectables/UserRule.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts",{"_index":16102,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:17",{"_index":16108,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:26",{"_index":16113,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/service/permission.service.ts:51",{"_index":16106,"title":{},"body":{"injectables/PermissionService.html":{}}}],["apps/server/src/shared/domain/types/importuser.types.ts",{"_index":11494,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["apps/server/src/shared/domain/types/news.types.ts",{"_index":11373,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["apps/server/src/shared/domain/types/rich",{"_index":16732,"title":{},"body":{"classes/RichText.html":{}}}],["apps/server/src/shared/domain/types/task.types.ts",{"_index":11950,"title":{},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.module.ts",{"_index":1407,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.module.ts:13",{"_index":1411,"title":{},"body":{"modules/AntivirusModule.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts",{"_index":1425,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:14",{"_index":1431,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:20",{"_index":1435,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/antivirus/antivirus.service.ts:38",{"_index":1433,"title":{},"body":{"injectables/AntivirusService.html":{}}}],["apps/server/src/shared/infra/cache/cache.module.ts",{"_index":3907,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts",{"_index":3894,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/cache/service/cache.service.ts:7",{"_index":3896,"title":{},"body":{"injectables/CacheService.html":{}}}],["apps/server/src/shared/infra/calendar/calendar.module.ts",{"_index":3955,"title":{},"body":{"modules/CalendarModule.html":{}}}],["apps/server/src/shared/infra/calendar/dto/calendar",{"_index":3926,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["apps/server/src/shared/infra/calendar/interface/calendar",{"_index":11097,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts",{"_index":3936,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts:7",{"_index":3939,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts",{"_index":3959,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:15",{"_index":3969,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:17",{"_index":3963,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:24",{"_index":3966,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/calendar/service/calendar.service.ts:46",{"_index":3968,"title":{},"body":{"injectables/CalendarService.html":{}}}],["apps/server/src/shared/infra/collaborative",{"_index":4477,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["apps/server/src/shared/infra/console/console",{"_index":5482,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{}}}],["apps/server/src/shared/infra/database/management/database",{"_index":7719,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{}}}],["apps/server/src/shared/infra/database/mongo",{"_index":14530,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts",{"_index":11388,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:5",{"_index":11394,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.interface.ts:6",{"_index":11392,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.module.ts",{"_index":8107,"title":{},"body":{"modules/EncryptionModule.html":{},"miscellaneous/functions.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts",{"_index":18504,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:15",{"_index":18507,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:23",{"_index":18506,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/encryption/encryption.service.ts:8",{"_index":18505,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["apps/server/src/shared/infra/feathers/feathers",{"_index":9426,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["apps/server/src/shared/infra/feathers/feathers.module.ts",{"_index":9417,"title":{},"body":{"modules/FeathersModule.html":{}}}],["apps/server/src/shared/infra/file",{"_index":9956,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["apps/server/src/shared/infra/identity",{"_index":11439,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/OidcIdentityProviderMapper.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["apps/server/src/shared/infra/mail/mail.interface.ts",{"_index":1561,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["apps/server/src/shared/infra/mail/mail.module.ts",{"_index":14392,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.module.ts:11",{"_index":14394,"title":{},"body":{"modules/MailModule.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts",{"_index":14398,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:12",{"_index":14400,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/mail/mail.service.ts:18",{"_index":14401,"title":{},"body":{"injectables/MailService.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts",{"_index":16200,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:12",{"_index":16217,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:14",{"_index":16222,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:18",{"_index":16216,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:20",{"_index":16224,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:24",{"_index":16212,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:26",{"_index":16226,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:30",{"_index":16213,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:32",{"_index":16228,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:34",{"_index":16211,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:4",{"_index":16214,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:44",{"_index":16229,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:52",{"_index":16218,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:6",{"_index":16215,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/config.ts:8",{"_index":16220,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts",{"_index":16628,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:10",{"_index":16635,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:12",{"_index":16637,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:14",{"_index":16639,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:16",{"_index":16633,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32",{"_index":16713,"title":{},"body":{"classes/ResponseInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:6",{"_index":16636,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/metrics/prometheus/middleware.ts:8",{"_index":16634,"title":{},"body":{"classes/RequestInfo.html":{}}}],["apps/server/src/shared/infra/oauth",{"_index":337,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"injectables/HydraAdapter.html":{},"interfaces/IntrospectResponse.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/RejectRequestBody.html":{}}}],["apps/server/src/shared/infra/rabbitmq/exchange/files",{"_index":11359,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts",{"_index":16468,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts:51",{"_index":16491,"title":{},"body":{"modules/RabbitMQWrapperTestModule.html":{}}}],["apps/server/src/shared/infra/rabbitmq/rpc",{"_index":11399,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["apps/server/src/shared/infra/redis/redis.module.ts",{"_index":16609,"title":{},"body":{"modules/RedisModule.html":{}}}],["apps/server/src/shared/infra/s3",{"_index":6158,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config-1.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts",{"_index":2384,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:11",{"_index":2431,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:111",{"_index":2410,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:116",{"_index":2414,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:13",{"_index":2413,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:15",{"_index":2419,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:17",{"_index":2416,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:19",{"_index":2425,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:24",{"_index":2427,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:42",{"_index":2399,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:50",{"_index":2430,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:63",{"_index":2402,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:77",{"_index":2421,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:8",{"_index":2396,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:85",{"_index":2404,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.do.repo.ts:98",{"_index":2408,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts",{"_index":2569,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:13",{"_index":2580,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:16",{"_index":2585,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:18",{"_index":2581,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:22",{"_index":2584,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:26",{"_index":2582,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/base.repo.ts:30",{"_index":2583,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts",{"_index":3624,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:11",{"_index":3632,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:17",{"_index":3635,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:25",{"_index":3630,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:38",{"_index":3637,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/board/board.repo.ts:7",{"_index":3638,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["apps/server/src/shared/repo/contextexternaltool/context",{"_index":5742,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts",{"_index":6767,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:120",{"_index":6780,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:129",{"_index":6783,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:21",{"_index":6826,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:32",{"_index":6825,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:37",{"_index":6822,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:47",{"_index":6824,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:55",{"_index":6784,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:59",{"_index":6773,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:71",{"_index":6776,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:9",{"_index":6823,"title":{},"body":{"classes/CourseScope.html":{}}}],["apps/server/src/shared/repo/course/course.repo.ts:95",{"_index":6778,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts",{"_index":6650,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:19",{"_index":6653,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:26",{"_index":6656,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:9",{"_index":6657,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts",{"_index":7497,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:112",{"_index":7520,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:128",{"_index":7515,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:16",{"_index":7508,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:19",{"_index":7526,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:24",{"_index":7522,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:34",{"_index":7517,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:42",{"_index":7528,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:51",{"_index":7524,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:64",{"_index":7513,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:75",{"_index":7530,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:95",{"_index":7510,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts",{"_index":7582,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:14",{"_index":11386,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:15",{"_index":11385,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:16",{"_index":11387,"title":{},"body":{"interfaces/IDashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:20",{"_index":7586,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:24",{"_index":7592,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:30",{"_index":7594,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:36",{"_index":7588,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/dashboard/dashboard.repo.ts:42",{"_index":7590,"title":{},"body":{"injectables/DashboardRepo.html":{}}}],["apps/server/src/shared/repo/externaltool/external",{"_index":8766,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["apps/server/src/shared/repo/federalstate/federal",{"_index":9459,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts",{"_index":12454,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:11",{"_index":12469,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:27",{"_index":12467,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:34",{"_index":12463,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:52",{"_index":12465,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.repo.ts:69",{"_index":12460,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts",{"_index":12509,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:10",{"_index":12534,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:100",{"_index":12530,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:113",{"_index":12538,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:17",{"_index":12536,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:24",{"_index":12522,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:38",{"_index":12524,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:54",{"_index":12526,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:69",{"_index":12532,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/importuser/importuser.scope.ts:86",{"_index":12520,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson",{"_index":13933,"title":{},"body":{"classes/LessonScope.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts",{"_index":13875,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:13",{"_index":13879,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:23",{"_index":13881,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:41",{"_index":13883,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/lesson/lesson.repo.ts:9",{"_index":13884,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts",{"_index":14334,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:17",{"_index":14340,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:26",{"_index":14342,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:31",{"_index":14339,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/ltitool/ltitool.repo.ts:9",{"_index":14345,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts",{"_index":14445,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/materials/materials.repo.ts:7",{"_index":14446,"title":{},"body":{"injectables/MaterialsRepo.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts",{"_index":14549,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/mongo.patterns.ts:6",{"_index":14553,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["apps/server/src/shared/repo/news/news",{"_index":14773,"title":{},"body":{"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts",{"_index":14722,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:10",{"_index":14736,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:12",{"_index":14737,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:21",{"_index":14729,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:36",{"_index":14731,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:51",{"_index":14735,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/news/news.repo.ts:58",{"_index":14733,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts",{"_index":16839,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:11",{"_index":16847,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:13",{"_index":16843,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:23",{"_index":16845,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:28",{"_index":16842,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/role/role.repo.ts:7",{"_index":16848,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["apps/server/src/shared/repo/school/legacy",{"_index":13536,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["apps/server/src/shared/repo/schoolexternaltool/school",{"_index":17397,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["apps/server/src/shared/repo/scope.ts",{"_index":17721,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:11",{"_index":17724,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:13",{"_index":17723,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:20",{"_index":17729,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:31",{"_index":17726,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:35",{"_index":17727,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/scope.ts:9",{"_index":17725,"title":{},"body":{"classes/Scope.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts",{"_index":18203,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:12",{"_index":18206,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:16",{"_index":18205,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:7",{"_index":18204,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts",{"_index":18398,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:10",{"_index":18411,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:21",{"_index":18405,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:30",{"_index":18407,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:35",{"_index":18403,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/submission/submission.repo.ts:41",{"_index":18410,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["apps/server/src/shared/repo/system/system",{"_index":18700,"title":{},"body":{"classes/SystemScope.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts",{"_index":18669,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:12",{"_index":18673,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:31",{"_index":18671,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/system/system.repo.ts:8",{"_index":18674,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["apps/server/src/shared/repo/task/task",{"_index":19098,"title":{},"body":{"classes/TaskScope.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts",{"_index":18960,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:106",{"_index":18969,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:11",{"_index":18981,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:15",{"_index":18980,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:164",{"_index":18976,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:190",{"_index":18978,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:26",{"_index":18967,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/task/task.repo.ts:38",{"_index":18974,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts",{"_index":19393,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:12",{"_index":19398,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:35",{"_index":19395,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:42",{"_index":19397,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/teams/teams.repo.ts:8",{"_index":19399,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts",{"_index":18177,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:10",{"_index":18183,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:21",{"_index":18186,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/types/storageproviderencryptedstring.type.ts:36",{"_index":18188,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["apps/server/src/shared/repo/user/user",{"_index":20080,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts",{"_index":20692,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:158",{"_index":20696,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:166",{"_index":20702,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:178",{"_index":20704,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:182",{"_index":20701,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:21",{"_index":20705,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:36",{"_index":20697,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.repo.ts:48",{"_index":20700,"title":{},"body":{"injectables/UserRepo.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts",{"_index":20750,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:12",{"_index":20759,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:19",{"_index":20757,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:28",{"_index":20761,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:35",{"_index":20753,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/user/user.scope.ts:5",{"_index":20755,"title":{},"body":{"classes/UserScope.html":{}}}],["apps/server/src/shared/repo/userloginmigration/user",{"_index":20391,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["apps/server/src/shared/repo/videoconference/video",{"_index":21177,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts",{"_index":659,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts:15",{"_index":681,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/account.factory.ts:9",{"_index":679,"title":{},"body":{"classes/AccountFactory.html":{}}}],["apps/server/src/shared/testing/factory/axios",{"_index":2061,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts",{"_index":2525,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:110",{"_index":2531,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:122",{"_index":2538,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:134",{"_index":2541,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:144",{"_index":2539,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:148",{"_index":2536,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:15",{"_index":2529,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:160",{"_index":2540,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:32",{"_index":2537,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:47",{"_index":2532,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:60",{"_index":2535,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:75",{"_index":2533,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:84",{"_index":2534,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/base.factory.ts:98",{"_index":2530,"title":{},"body":{"classes/BaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts",{"_index":6601,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:12",{"_index":6605,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:19",{"_index":6606,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:26",{"_index":6608,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/course.factory.ts:33",{"_index":6611,"title":{},"body":{"classes/CourseFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts",{"_index":6645,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/coursegroup.factory.ts:8",{"_index":6646,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/board/column",{"_index":4705,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/do",{"_index":7895,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/domain",{"_index":7903,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/legacy",{"_index":13511,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/context",{"_index":5696,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/external",{"_index":7118,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["apps/server/src/shared/testing/factory/domainobject/tool/school",{"_index":17372,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/external",{"_index":8492,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts",{"_index":9794,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/filerecord.factory.ts:10",{"_index":9796,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["apps/server/src/shared/testing/factory/import",{"_index":12343,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts",{"_index":6861,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:18",{"_index":12710,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/jwt.test.factory.ts:22",{"_index":12709,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/lesson.factory.ts",{"_index":13863,"title":{},"body":{"classes/LessonFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts",{"_index":14318,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:14",{"_index":14322,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/ltitool.factory.ts:7",{"_index":14320,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["apps/server/src/shared/testing/factory/material.factory.ts",{"_index":14441,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["apps/server/src/shared/testing/factory/readable",{"_index":16493,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["apps/server/src/shared/testing/factory/share",{"_index":17945,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts",{"_index":18276,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:15",{"_index":18281,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:21",{"_index":18280,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:27",{"_index":18283,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/submission.factory.ts:9",{"_index":18279,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts",{"_index":18584,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:28",{"_index":18589,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:40",{"_index":18592,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/system.factory.ts:7",{"_index":18591,"title":{},"body":{"classes/SystemFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts",{"_index":18902,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:11",{"_index":18903,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:17",{"_index":18906,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:23",{"_index":18907,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/task.factory.ts:29",{"_index":18905,"title":{},"body":{"classes/TaskFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts",{"_index":19263,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:14",{"_index":19269,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/team.factory.ts:7",{"_index":19267,"title":{},"body":{"classes/TeamFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts",{"_index":19372,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:19",{"_index":19375,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/teamuser.factory.ts:9",{"_index":19373,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user",{"_index":841,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts",{"_index":20153,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.do.factory.ts:8",{"_index":20156,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts",{"_index":20182,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:11",{"_index":20193,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:17",{"_index":20191,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:23",{"_index":20188,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:32",{"_index":20189,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/factory/user.factory.ts:41",{"_index":20187,"title":{},"body":{"classes/UserFactory.html":{}}}],["apps/server/src/shared/testing/test",{"_index":1701,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["apps\\server\\src\\shared\\testing\\factory",{"_index":22860,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["appstartinfo",{"_index":1535,"title":{"interfaces/AppStartInfo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["appstartloggable",{"_index":1546,"title":{"classes/AppStartLoggable.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["appthis",{"_index":21615,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["arbitrary",{"_index":22649,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["arc",{"_index":2575,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["architectural",{"_index":22458,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["architecture",{"_index":21605,"title":{"additional-documentation/nestjs-application/software-architecture.html":{}},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["architecture/organizing",{"_index":22637,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["archive",{"_index":22243,"title":{},"body":{"license.html":{}}}],["archived",{"_index":6704,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ITaskParent.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["archivegroup(groupname",{"_index":1338,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["are.claim.values.regex",{"_index":13000,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["area",{"_index":23040,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["areas",{"_index":22732,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["aresubmissionspublic",{"_index":12023,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["arg",{"_index":21367,"title":{},"body":{"dependencies.html":{}}}],["args",{"_index":17747,"title":{},"body":{"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{}}}],["argument",{"_index":1306,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["argumentshost",{"_index":10475,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["arising",{"_index":22208,"title":{},"body":{"license.html":{}}}],["around",{"_index":22261,"title":{},"body":{"todo.html":{}}}],["arrange",{"_index":22125,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["arrangement",{"_index":22135,"title":{},"body":{"license.html":{}}}],["array",{"_index":1925,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BoardCopyService.html":{},"classes/CardIdsParams.html":{},"classes/CardResponse.html":{},"classes/ClassEntityFactory.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FileSystemAdapter.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/LtiTool.html":{},"classes/PatchOrderParams.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["array(length).keys()].map((_",{"_index":3524,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["array.from(modelentity.gridelements).foreach((el",{"_index":7573,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["array.isarray(boardnode",{"_index":3269,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(cardidparams.ids",{"_index":4052,"title":{},"body":{"controllers/CardController.html":{}}}],["array.isarray(collectionnamefilter",{"_index":11157,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["array.isarray(domainobjects",{"_index":2469,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(id",{"_index":2479,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["array.isarray(matches",{"_index":11479,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(permissions",{"_index":9398,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["array.isarray(props.classnames",{"_index":11465,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(props.rolenames",{"_index":11462,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["array.isarray(requiredpermissions",{"_index":1926,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["array.isarray(t",{"_index":3265,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["array.isarray(user.attributes[attributename",{"_index":13136,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["array.isarray(user.permissions",{"_index":9363,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["array.isarray(value",{"_index":13149,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["array.transformer.ts",{"_index":21523,"title":{},"body":{"miscellaneous/functions.html":{}}}],["arraybuffer",{"_index":8598,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["article",{"_index":21851,"title":{},"body":{"license.html":{}}}],["asadmin",{"_index":20183,"title":{},"body":{"classes/UserFactory.html":{}}}],["asadmin(additionalpermissions",{"_index":875,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["asc",{"_index":10057,"title":{},"body":{"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["asguest",{"_index":2231,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["asguest(isguest",{"_index":21109,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["asguest(value",{"_index":2234,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["ask",{"_index":13931,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["ask_moderator",{"_index":2134,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["asks",{"_index":5384,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["aspnetcore_environment='development",{"_index":22934,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["assert",{"_index":21705,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assets",{"_index":22080,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["assigned",{"_index":3465,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["assignemnt",{"_index":12376,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["assigning",{"_index":22605,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["assignment",{"_index":1315,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/JwtExtractor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["assignment,@typescript",{"_index":1312,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["associated",{"_index":19254,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{}}}],["associations",{"_index":666,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["associations(associations",{"_index":695,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["asstudent",{"_index":20184,"title":{},"body":{"classes/UserFactory.html":{}}}],["asstudent(additionalpermissions",{"_index":865,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["assume",{"_index":22199,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["assumption",{"_index":22226,"title":{},"body":{"license.html":{}}}],["assumptions",{"_index":22031,"title":{},"body":{"license.html":{}}}],["asteacher",{"_index":20185,"title":{},"body":{"classes/UserFactory.html":{}}}],["asteacher(additionalpermissions",{"_index":871,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["async",{"_index":112,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"injectables/FileRecordRepo.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"injectables/IdTokenService.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["asynchronous",{"_index":22769,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["atm",{"_index":1721,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["attach",{"_index":22232,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["attachment",{"_index":1569,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["attachments",{"_index":1571,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["attempt",{"_index":22041,"title":{},"body":{"license.html":{}}}],["attempted",{"_index":14523,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["attendee",{"_index":2271,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["attendeepw",{"_index":2111,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["attendees",{"_index":2255,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["attends",{"_index":12375,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["attention",{"_index":23098,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["attribute",{"_index":12236,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"miscellaneous/functions.html":{}}}],["attributename",{"_index":12233,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributes",{"_index":3945,"title":{},"body":{"injectables/CalendarMapper.html":{},"interfaces/ICalendarEvent.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["attributes.summary",{"_index":3949,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributes['x",{"_index":3947,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["attributevalue",{"_index":12238,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["attributions",{"_index":22018,"title":{},"body":{"license.html":{}}}],["aud",{"_index":6862,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["audience",{"_index":1687,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["auf",{"_index":4756,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["autenticationresponse",{"_index":1718,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["auth",{"_index":1383,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"todo.html":{}}}],["auth.guard.ts",{"_index":12661,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["auth.provider",{"_index":9394,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["auth.provider.ts",{"_index":9343,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["auth.provider.ts:13",{"_index":9349,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:16",{"_index":9357,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:26",{"_index":9359,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:38",{"_index":9353,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:55",{"_index":9351,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth.provider.ts:60",{"_index":9355,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["auth_token",{"_index":2248,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["authcode",{"_index":15049,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authconfig",{"_index":12668,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.jwtoptions",{"_index":12676,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authconfig.secret",{"_index":12675,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["authendpoint",{"_index":11072,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["authenticate",{"_index":556,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"injectables/LdapService.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["authenticate('jwt",{"_index":561,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["authenticate('jwt')@delete('auth/sessions/consent",{"_index":15510,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@delete('clients/:id",{"_index":15485,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('auth/sessions/consent",{"_index":15498,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients",{"_index":15500,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('clients/:id",{"_index":15493,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@get('consentrequest/:challenge",{"_index":15488,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('consentrequest/:challenge",{"_index":15503,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('loginrequest/:challenge",{"_index":15506,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@patch('logoutrequest/:challenge",{"_index":15481,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@post('clients",{"_index":15483,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticate('jwt')@put('clients/:id",{"_index":15512,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["authenticated",{"_index":522,"title":{},"body":{"controllers/AccountController.html":{},"classes/ConsentResponse.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{}}}],["authenticateuser",{"_index":15034,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticateuser(systemid",{"_index":15048,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticating",{"_index":22513,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["authentication",{"_index":2008,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentResponse.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/ImportUserModule.html":{},"classes/KeycloakConsole.html":{},"controllers/LoginController.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthClientBody.html":{},"injectables/OauthUc.html":{},"classes/RedirectResponse.html":{},"classes/StatelessAuthorizationParams.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["authentication.module",{"_index":1589,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["authentication/authentication",{"_index":10820,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["authentication/authentication.module",{"_index":10424,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["authentication/interface/user",{"_index":4588,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["authentication/local",{"_index":1713,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationapimodule",{"_index":1581,"title":{"modules/AuthenticationApiModule.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["authenticationcodegranttokenrequest",{"_index":1592,"title":{"classes/AuthenticationCodeGrantTokenRequest.html":{}},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/TokenRequestMapper.html":{}}}],["authenticationexecutioninforepresentation",{"_index":12891,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationflowrepresentation",{"_index":12893,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["authenticationmodule",{"_index":1585,"title":{"modules/AuthenticationModule.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementModule.html":{},"modules/OauthApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["authenticationresponse",{"_index":1700,"title":{"interfaces/AuthenticationResponse.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationresponse.accesstoken",{"_index":1780,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["authenticationservice",{"_index":1627,"title":{"injectables/AuthenticationService.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["authenticationurl",{"_index":15119,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["authenticationurl.searchparams.append('client_id",{"_index":15121,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('kc_idp_hint",{"_index":15126,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('redirect_uri",{"_index":15122,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('response_type",{"_index":15123,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('scope",{"_index":15124,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.searchparams.append('state",{"_index":15125,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authenticationurl.tostring",{"_index":15127,"title":{},"body":{"injectables/OAuthService.html":{}}}],["authguard",{"_index":12662,"title":{},"body":{"injectables/JwtAuthGuard.html":{},"controllers/LoginController.html":{}}}],["authguard('jwt",{"_index":12663,"title":{},"body":{"injectables/JwtAuthGuard.html":{}}}],["authheader",{"_index":15794,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.split",{"_index":15797,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authheader.tolowercase().startswith('bearer",{"_index":15796,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["author",{"_index":22017,"title":{},"body":{"license.html":{},"properties.html":{}}}],["authoriation",{"_index":23113,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorisation",{"_index":3550,"title":{"additional-documentation/nestjs-application/authorisation.html":{}},"body":{"modules/BoardModule.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["authorisationservice",{"_index":7913,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["authorizable",{"_index":18384,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["authorizable.service",{"_index":3806,"title":{},"body":{"injectables/BoardUc.html":{}}}],["authorizable.service.ts",{"_index":3117,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:11",{"_index":5631,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.service.ts:18",{"_index":3122,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:24",{"_index":3123,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:32",{"_index":3125,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:50",{"_index":3128,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["authorizable.service.ts:8",{"_index":5630,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizable.ts",{"_index":3090,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["authorizable.ts:30",{"_index":3094,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:34",{"_index":3096,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizable.ts:38",{"_index":3099,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["authorizableobject",{"_index":1854,"title":{"interfaces/AuthorizableObject.html":{}},"body":{"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/IRepoLoader.html":{},"injectables/LegacySchoolRule.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/ReferenceLoader.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"interfaces/UserBoardRoles.html":{}}}],["authorizablereferencetype",{"_index":2027,"title":{},"body":{"injectables/AuthorizationService.html":{},"classes/ContextTypeMapper.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IRepoLoader.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/ReferenceLoader.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/TaskCopyUC.html":{},"injectables/ToolPermissionHelper.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["authorizablereferencetype.boardnode",{"_index":10231,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.contextexternaltoolentity",{"_index":19848,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["authorizablereferencetype.course",{"_index":6022,"title":{},"body":{"classes/ContextTypeMapper.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/FilesStorageMapper.html":{},"injectables/LessonCopyUC.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/TaskCopyUC.html":{},"classes/VideoConferenceMapper.html":{}}}],["authorizablereferencetype.lesson",{"_index":10227,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.school",{"_index":10225,"title":{},"body":{"classes/FilesStorageMapper.html":{},"injectables/LegacySchoolUc.html":{},"classes/ShareTokenContextTypeMapper.html":{}}}],["authorizablereferencetype.submission",{"_index":10229,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorizablereferencetype.task",{"_index":10220,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["authorizablereferencetype.team",{"_index":21139,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["authorizablereferencetype.user",{"_index":10223,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["authorization",{"_index":1887,"title":{},"body":{"classes/AuthorizationError.html":{},"injectables/CalendarService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ContextExternalToolModule.html":{},"injectables/CourseCopyUC.html":{},"injectables/HydraOauthUc.html":{},"modules/ImportUserModule.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"interfaces/Rule.html":{},"injectables/SanisProvisioningStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorization.body.params.ts",{"_index":13261,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:12",{"_index":13265,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:13",{"_index":13990,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:17",{"_index":13262,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:21",{"_index":13263,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:7",{"_index":13264,"title":{},"body":{"classes/LdapAuthorizationBodyParams.html":{}}}],["authorization.body.params.ts:8",{"_index":13991,"title":{},"body":{"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{}}}],["authorization.helper",{"_index":1985,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{}}}],["authorization.params",{"_index":15737,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["authorization.params.ts",{"_index":18172,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:12",{"_index":18174,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:16",{"_index":18175,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:20",{"_index":18176,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.params.ts:8",{"_index":18173,"title":{},"body":{"classes/StatelessAuthorizationParams.html":{}}}],["authorization.service",{"_index":1986,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["authorization.service.ts",{"_index":9379,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:16",{"_index":9390,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:32",{"_index":9386,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:54",{"_index":9392,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization.service.ts:6",{"_index":9384,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["authorization_code",{"_index":11076,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{}}}],["authorization_operation",{"_index":1886,"title":{},"body":{"classes/AuthorizationError.html":{}}}],["authorization_timebox_ms",{"_index":12764,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorizationcontext",{"_index":1862,"title":{"interfaces/AuthorizationContext.html":{}},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"classes/ConsentResponse.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder",{"_index":1868,"title":{"classes/AuthorizationContextBuilder.html":{}},"body":{"classes/AuthorizationContextBuilder.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{},"injectables/VideoConferenceService.html":{}}}],["authorizationcontextbuilder.read",{"_index":18881,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.read([perm",{"_index":21290,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_admin",{"_index":5971,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["authorizationcontextbuilder.read([permission.context_tool_user",{"_index":19834,"title":{},"body":{"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["authorizationcontextbuilder.read([permission.filestorage_view",{"_index":23069,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.read([permission.school_tool_admin",{"_index":8429,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["authorizationcontextbuilder.read([permission.submissions_view",{"_index":18495,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.read([permission.topic_create",{"_index":13840,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["authorizationcontextbuilder.read([permissions.course_view",{"_index":23066,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write",{"_index":18890,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([perm",{"_index":21291,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["authorizationcontextbuilder.write([permission.change_team_roles",{"_index":4652,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["authorizationcontextbuilder.write([permission.context_tool_admin",{"_index":5956,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_create",{"_index":23068,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_edit",{"_index":23070,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.filestorage_remove",{"_index":23071,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.instance",{"_index":23079,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationcontextbuilder.write([permission.submissions_edit",{"_index":18492,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["authorizationcontextbuilder.write([permission.topic_view",{"_index":13969,"title":{},"body":{"injectables/LessonUC.html":{}}}],["authorizationcontextbuilder.write([permission.user_login_migration_admin",{"_index":16727,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["authorizationerror",{"_index":1882,"title":{"classes/AuthorizationError.html":{}},"body":{"classes/AuthorizationError.html":{}}}],["authorizationhelper",{"_index":1890,"title":{"injectables/AuthorizationHelper.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationloaderservice",{"_index":1935,"title":{"interfaces/AuthorizationLoaderService.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{}}}],["authorizationloaderservicegeneric",{"_index":1943,"title":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/GroupService.html":{}}}],["authorizationmodule",{"_index":1945,"title":{"modules/AuthorizationModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ImportUserModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LessonApiModule.html":{},"modules/ManagementModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/ToolApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["authorizationparams",{"_index":1995,"title":{"classes/AuthorizationParams.html":{}},"body":{"classes/AuthorizationParams.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["authorizations",{"_index":23110,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizationservice",{"_index":1952,"title":{"injectables/AuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"injectables/NewsUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PermissionService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["authorizationservice:haspermissionbyreferences",{"_index":2055,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["authorizationurl",{"_index":11933,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["authorize",{"_index":16086,"title":{},"body":{"classes/PatchMyAccountParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizeaccess",{"_index":12766,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["authorized",{"_index":1888,"title":{},"body":{"classes/AuthorizationError.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["authorizes",{"_index":22103,"title":{},"body":{"license.html":{}}}],["authorizing",{"_index":22139,"title":{},"body":{"license.html":{}}}],["authors",{"_index":22022,"title":{},"body":{"license.html":{}}}],["authparams",{"_index":10971,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["authservice",{"_index":4623,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LoginUc.html":{}}}],["authtoken",{"_index":1324,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["auto",{"_index":10349,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/KeycloakManagementController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application.html":{}}}],["automated",{"_index":22701,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["automatic",{"_index":22072,"title":{},"body":{"license.html":{}}}],["automatically",{"_index":8682,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/KeycloakConfigurationService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["autoparameters",{"_index":8669,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["autoparameters.includes(customparameter.type",{"_index":8707,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["avaible",{"_index":1942,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["available",{"_index":2500,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementOauthService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"license.html":{},"modules.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["available_languages",{"_index":11753,"title":{},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{}}}],["availabledate",{"_index":3714,"title":{},"body":{"classes/BoardTaskResponse.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{}}}],["availableon",{"_index":19028,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["availableschoolexternaltools",{"_index":8363,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["availableschoolexternaltools.map",{"_index":8390,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["availabletools",{"_index":8380,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["availabletools.foreach((externaltool",{"_index":8433,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext",{"_index":8441,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["availabletoolsforcontext.foreach((tooltemplateinfo",{"_index":8444,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["avoid",{"_index":22707,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["await",{"_index":221,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"injectables/FileRecordRepo.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"injectables/IdTokenService.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["awaited",{"_index":22771,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["awaiting_scan_status",{"_index":9719,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["awaits",{"_index":23156,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["away",{"_index":21686,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["aws",{"_index":7819,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"dependencies.html":{}}}],["axios",{"_index":2074,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"classes/FileDtoBuilder.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/SanisProvisioningStrategy.html":{},"dependencies.html":{}}}],["axiosconfig",{"_index":10965,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosheaders",{"_index":2069,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaders(props.headers",{"_index":2083,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheaderskeyvalue",{"_index":2075,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosheadervalue",{"_index":2073,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosrequestconfig",{"_index":3967,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponse",{"_index":2063,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"classes/FileDtoBuilder.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["axiosresponsefactory",{"_index":2087,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseimp",{"_index":2060,"title":{"classes/AxiosResponseImp.html":{}},"body":{"classes/AxiosResponseImp.html":{}}}],["axiosresponseprops",{"_index":2065,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["b",{"_index":2728,"title":{},"body":{"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"injectables/SanisResponseMapper.html":{},"license.html":{}}}],["b.getmetadata().title",{"_index":7326,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["b.position",{"_index":3256,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["back",{"_index":729,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["backchannel",{"_index":14141,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["backchannelsupported",{"_index":15896,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["backend",{"_index":23020,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["backendurl",{"_index":8583,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["backendurl}${filledtemplate",{"_index":8587,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["background",{"_index":9735,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["backup",{"_index":11119,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["backup/idm/keycloak",{"_index":22968,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["backup/setup/accounts.json",{"_index":12818,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["backup/setup/users.json",{"_index":12819,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["bad",{"_index":11825,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["badrequestexception",{"_index":2685,"title":{},"body":{"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/DashboardEntity.html":{},"classes/ErrorMapper.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GridElement.html":{},"controllers/H5PEditorController.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"classes/ImportUserMapper.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/ShareTokenUC.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceService.html":{}}}],["badrequestexception('dashboard",{"_index":7348,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('destination",{"_index":18099,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["badrequestexception('elements",{"_index":2722,"title":{},"body":{"entities/Board.html":{}}}],["badrequestexception('language",{"_index":20814,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["badrequestexception('this",{"_index":7334,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["badrequestexception('unknown",{"_index":20645,"title":{},"body":{"injectables/UserMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["badrequestexception(`cannot",{"_index":2834,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(`invalid",{"_index":2832,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["badrequestexception(errorobj.message",{"_index":8208,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["badrequestexception(errortype.file_name_empty",{"_index":9767,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["badrequestexception})@apiresponse({status",{"_index":10781,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["badrequestloggableexception",{"_index":22684,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["base",{"_index":2092,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BaseDORepo.html":{},"classes/BusinessError.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElementResponseMapper.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IRepoLoader.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/ReferenceLoader.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["base.do",{"_index":7036,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LegacySchoolDo.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{},"classes/UserLoginMigrationDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["base.do.repo",{"_index":13548,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["base.do.repo.ts",{"_index":2519,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["base.entity",{"_index":400,"title":{},"body":{"entities/Account.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"entities/FederalState.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["base.factory",{"_index":736,"title":{},"body":{"classes/AccountFactory.html":{},"classes/AxiosResponseImp.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/UserFactory.html":{}}}],["base.factory.ts",{"_index":7896,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["base.interface.strategy",{"_index":14906,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["base.repo",{"_index":3639,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/FederalStateRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{}}}],["base.response",{"_index":2206,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{}}}],["base.response.ts",{"_index":2102,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["base.strategy",{"_index":12627,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{}}}],["base64",{"_index":8590,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"dependencies.html":{}}}],["base64content",{"_index":1564,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["base64logo",{"_index":8594,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["base_string",{"_index":14174,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["base_url",{"_index":16655,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["based",{"_index":2526,"title":{},"body":{"classes/BaseFactory.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["basedir",{"_index":11123,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["basedo",{"_index":1939,"title":{"classes/BaseDO.html":{}},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/IRepoLoader.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"classes/LtiToolDO.html":{},"injectables/ReferenceLoader.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/UserLoginMigrationDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["basedo:5",{"_index":5612,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ExternalTool.html":{},"classes/LegacySchoolDo.html":{},"classes/LtiToolDO.html":{},"classes/SchoolExternalTool.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/UserLoginMigrationDO.html":{},"classes/VideoConferenceDO.html":{}}}],["basedomainobject",{"_index":2483,"title":{"classes/BaseDomainObject.html":{}},"body":{"classes/BaseDomainObject.html":{}}}],["basedorepo",{"_index":2383,"title":{"injectables/BaseDORepo.html":{}},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:103",{"_index":5764,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:111",{"_index":5770,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:116",{"_index":8781,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:123",{"_index":20092,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:13",{"_index":14337,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["basedorepo:19",{"_index":5772,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:23",{"_index":8771,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["basedorepo:24",{"_index":5773,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:25",{"_index":17994,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:28",{"_index":17406,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:29",{"_index":20085,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:34",{"_index":5756,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:36",{"_index":20396,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:37",{"_index":21182,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:38",{"_index":13541,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:42",{"_index":5766,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:43",{"_index":14344,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:46",{"_index":17993,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["basedorepo:50",{"_index":5774,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:51",{"_index":20395,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["basedorepo:56",{"_index":5759,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:59",{"_index":13546,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["basedorepo:60",{"_index":20091,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["basedorepo:63",{"_index":5767,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:69",{"_index":14343,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["basedorepo:74",{"_index":17412,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:77",{"_index":5771,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:82",{"_index":5765,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["basedorepo:84",{"_index":8780,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["basedorepo:85",{"_index":5768,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["basedorepo:90",{"_index":8779,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["basedorepo:98",{"_index":5769,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["baseentity",{"_index":2433,"title":{"classes/BaseEntity.html":{}},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"injectables/CopyHelperService.html":{},"injectables/DatabaseManagementService.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"injectables/LessonCopyService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{}}}],["baseentityproperties",{"_index":2434,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["baseentityproperties.includes(key",{"_index":2466,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["baseentityreference",{"_index":2502,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["baseentitywithtimestamps",{"_index":399,"title":{"classes/BaseEntityWithTimestamps.html":{}},"body":{"entities/Account.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ClassEntity.html":{},"entities/ColumnBoardTarget.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/Role.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{}}}],["baseentitywithtimestamps:25",{"_index":21068,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["baseentitywithtimestamps:28",{"_index":21070,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["baseentitywithtimestamps:31",{"_index":21069,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["baseentitywithtimestamps:34",{"_index":21071,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["basefactory",{"_index":660,"title":{"classes/BaseFactory.html":{}},"body":{"classes/AccountFactory.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory.define",{"_index":2088,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalToolEntityFactory.html":{}}}],["basefactory.define(readablestreamwithfiletypeimp",{"_index":16503,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["basefactory:110",{"_index":697,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:122",{"_index":726,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:134",{"_index":733,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:14",{"_index":7905,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["basefactory:144",{"_index":727,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:148",{"_index":714,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:15",{"_index":677,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:160",{"_index":730,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:32",{"_index":719,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:47",{"_index":703,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:60",{"_index":710,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:7",{"_index":4337,"title":{},"body":{"classes/ClassFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/UserDoFactory.html":{}}}],["basefactory:75",{"_index":706,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:84",{"_index":708,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["basefactory:98",{"_index":684,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["baseimports",{"_index":14416,"title":{},"body":{"modules/ManagementModule.html":{}}}],["basepath",{"_index":1539,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/ICollectionFilePath.html":{}}}],["basepermission",{"_index":23100,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["baserepo",{"_index":877,"title":{"injectables/BaseRepo.html":{}},"body":{"injectables/AccountRepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DashboardRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"interfaces/IDashboardRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["baserepo:13",{"_index":6655,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["baserepo:14",{"_index":18408,"title":{},"body":{"injectables/SubmissionRepo.html":{},"injectables/TeamsRepo.html":{}}}],["baserepo:15",{"_index":12461,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["baserepo:17",{"_index":13882,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["baserepo:18",{"_index":909,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["baserepo:22",{"_index":914,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["baserepo:25",{"_index":20698,"title":{},"body":{"injectables/UserRepo.html":{}}}],["baserepo:26",{"_index":911,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["baserepo:30",{"_index":912,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{}}}],["baserepo:32",{"_index":3633,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["baserepo:63",{"_index":6781,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["baseresponsemapper",{"_index":2588,"title":{"interfaces/BaseResponseMapper.html":{}},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["baseroute",{"_index":1726,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["baseurl",{"_index":238,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/CalendarService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchData.html":{}}}],["baseurl.com",{"_index":7131,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["bash",{"_index":22919,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["basic",{"_index":12929,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["basictoolconfig",{"_index":2599,"title":{"classes/BasicToolConfig.html":{}},"body":{"classes/BasicToolConfig.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigdto",{"_index":8905,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["basictoolconfigentity",{"_index":2611,"title":{"classes/BasicToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["basictoolconfigfactory",{"_index":7128,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigfactory.build",{"_index":7176,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["basictoolconfigparams",{"_index":2623,"title":{"classes/BasicToolConfigParams.html":{}},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["basictoolconfigresponse",{"_index":2633,"title":{"classes/BasicToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["basictoollaunchstrategy",{"_index":2641,"title":{"injectables/BasicToolLaunchStrategy.html":{}},"body":{"injectables/BasicToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["batch",{"_index":7787,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["batchcounter",{"_index":7825,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["batchsize",{"_index":7777,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["bbb",{"_index":2106,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{}}}],["bbbbasemeetingconfig",{"_index":2089,"title":{"classes/BBBBaseMeetingConfig.html":{}},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbbasemeetingconfig:6",{"_index":2130,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["bbbbaseresponse",{"_index":2100,"title":{"interfaces/BBBBaseResponse.html":{}},"body":{"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/VideoConference-1.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["bbbcreateconfig",{"_index":2108,"title":{"classes/BBBCreateConfig.html":{}},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbcreateconfigbuilder",{"_index":2152,"title":{"classes/BBBCreateConfigBuilder.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["bbbcreateresponse",{"_index":2195,"title":{"interfaces/BBBCreateResponse.html":{}},"body":{"interfaces/BBBCreateResponse.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfig",{"_index":2207,"title":{"classes/BBBJoinConfig.html":{}},"body":{"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{}}}],["bbbjoinconfigbuilder",{"_index":2229,"title":{"classes/BBBJoinConfigBuilder.html":{}},"body":{"classes/BBBJoinConfigBuilder.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["bbbjoinresponse",{"_index":2246,"title":{"interfaces/BBBJoinResponse.html":{}},"body":{"interfaces/BBBJoinResponse.html":{}}}],["bbbmeetinginforesponse",{"_index":2252,"title":{"interfaces/BBBMeetingInfoResponse.html":{}},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbresp",{"_index":2350,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.message",{"_index":2356,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresp.response.returncode",{"_index":2353,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbresponse",{"_index":2278,"title":{"interfaces/BBBResponse.html":{}},"body":{"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/VideoConference-1.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["bbbrole",{"_index":2175,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["bbbrole.moderator",{"_index":2190,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["bbbrole.viewer",{"_index":2192,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["bbbservice",{"_index":2280,"title":{"injectables/BBBService.html":{}},"body":{"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{}}}],["bbbservice:create",{"_index":2358,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:end",{"_index":2364,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbservice:getmeetinginfo",{"_index":2366,"title":{},"body":{"injectables/BBBService.html":{}}}],["bbbsettings",{"_index":2293,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"modules/VideoConferenceModule.html":{}}}],["bbbstatus",{"_index":2105,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/BBBService.html":{}}}],["bbbstatus.success",{"_index":2354,"title":{},"body":{"injectables/BBBService.html":{}}}],["bc",{"_index":22891,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["bcc",{"_index":1579,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["bcrypt",{"_index":1182,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LocalStrategy.html":{}}}],["bcrypt.compare(comparepassword",{"_index":1215,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcrypt.compare(enteredpassword",{"_index":14020,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["bcrypt.hash(password",{"_index":1219,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["bcryptjs",{"_index":1183,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/LocalStrategy.html":{},"dependencies.html":{}}}],["bearer",{"_index":1711,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"controllers/OauthSSOController.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/TestApiClient.html":{}}}],["become",{"_index":76,"title":{},"body":{"classes/AbstractAccountService.html":{},"license.html":{}}}],["becomes",{"_index":21726,"title":{},"body":{"license.html":{}}}],["becoming",{"_index":23034,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["beetween",{"_index":4301,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["before",{"_index":571,"title":{},"body":{"controllers/AccountController.html":{},"entities/Board.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/PermissionService.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"injectables/UserLoginMigrationService.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["beforeall",{"_index":22820,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeall(async",{"_index":22798,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforeeach",{"_index":22821,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["beforehand",{"_index":22384,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["beginning",{"_index":21642,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["behalf",{"_index":21832,"title":{},"body":{"license.html":{}}}],["behaves",{"_index":22685,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["behavior",{"_index":947,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{}}}],["behaviour",{"_index":6329,"title":{},"body":{"modules/CoreModule.html":{},"entities/CourseNews.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["behind",{"_index":19468,"title":{},"body":{"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["being",{"_index":2543,"title":{},"body":{"classes/BaseFactory.html":{},"classes/CardSkeletonResponse.html":{},"injectables/LdapStrategy.html":{},"classes/ShareTokenBodyParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["believe",{"_index":22133,"title":{},"body":{"license.html":{}}}],["belong",{"_index":4149,"title":{},"body":{"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/SubmissionItemUc.html":{}}}],["belongs",{"_index":5444,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["below",{"_index":21838,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["benefit",{"_index":21711,"title":{},"body":{"license.html":{}}}],["ber",{"_index":4801,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["berechtigungen",{"_index":4784,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["beside",{"_index":22365,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["best",{"_index":22229,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["better",{"_index":22245,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["between",{"_index":768,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["beware",{"_index":22483,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["beyond",{"_index":21904,"title":{},"body":{"license.html":{}}}],["bezeichnung",{"_index":17217,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["big",{"_index":22472,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bigbluebutton",{"_index":20946,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["bigbluebutton/api/${callname",{"_index":2379,"title":{},"body":{"injectables/BBBService.html":{}}}],["binary",{"_index":6129,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["binary'})@allow",{"_index":9663,"title":{},"body":{"classes/FileParams.html":{}}}],["bind",{"_index":13313,"title":{},"body":{"injectables/LdapService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["binding",{"_index":13360,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["bis",{"_index":17232,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["blackbox",{"_index":22710,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["block",{"_index":2048,"title":{},"body":{"injectables/AuthorizationService.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["blocked",{"_index":9715,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["blocks",{"_index":22713,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["blti",{"_index":5123,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_bundle",{"_index":5130,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["blti001_icon",{"_index":5132,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["bn",{"_index":3263,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["bn.type",{"_index":3267,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["board",{"_index":1984,"title":{"entities/Board.html":{}},"body":{"modules/AuthorizationModule.html":{},"entities/Board.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"interfaces/BoardDoBuilder.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/ContentElementService.html":{},"injectables/CourseCopyService.html":{},"classes/DtoCreator.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"modules/LearnroomApiModule.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/MoveColumnBodyParams.html":{},"injectables/NexboardService.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["board.'})@apiresponse({status",{"_index":2927,"title":{},"body":{"controllers/BoardController.html":{}}}],["board.children.map((column",{"_index":3675,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.context",{"_index":3811,"title":{},"body":{"injectables/BoardUc.html":{}}}],["board.createdat",{"_index":3681,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board.displaycolor",{"_index":16893,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.do",{"_index":2876,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["board.do.factory.ts",{"_index":4706,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.factory.ts:9",{"_index":4708,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["board.do.ts",{"_index":4689,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["board.do.ts:10",{"_index":4694,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:14",{"_index":4696,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:18",{"_index":4698,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.do.ts:6",{"_index":4693,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["board.elements.foreach((element",{"_index":16895,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.getbytargetid(elementid",{"_index":17053,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.id",{"_index":3516,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{}}}],["board.isarchived",{"_index":16894,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.module",{"_index":2768,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["board.references.getitems",{"_index":3648,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.references.init",{"_index":3647,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["board.reorderelements(orderedlist",{"_index":17056,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["board.response",{"_index":3412,"title":{},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.response.ts",{"_index":2776,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:15",{"_index":2782,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:19",{"_index":2785,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:22",{"_index":2783,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:25",{"_index":2781,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:28",{"_index":2786,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:31",{"_index":2780,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.response.ts:4",{"_index":2779,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["board.roomid",{"_index":16892,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["board.service.ts",{"_index":4725,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:130",{"_index":4733,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:18",{"_index":4729,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:25",{"_index":4740,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:31",{"_index":4741,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:37",{"_index":4743,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:42",{"_index":4731,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:57",{"_index":4738,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:61",{"_index":4746,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.service.ts:66",{"_index":4735,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["board.syncboardelementreferences(boardelementtargets",{"_index":17025,"title":{},"body":{"injectables/RoomsService.html":{}}}],["board.title",{"_index":3674,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/ColumnBoardService.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board.types",{"_index":7952,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["board.updatedat",{"_index":3680,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["board/board",{"_index":2775,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["board/board.entity.ts",{"_index":2671,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:29",{"_index":2677,"title":{},"body":{"entities/Board.html":{}}}],["board/board.entity.ts:32",{"_index":2681,"title":{},"body":{"entities/Board.html":{}}}],["board/board.response.ts",{"_index":18131,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:19",{"_index":18136,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:25",{"_index":18137,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:30",{"_index":18133,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:36",{"_index":18134,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:41",{"_index":18135,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/board.response.ts:6",{"_index":18132,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["board/boardelement.entity.ts",{"_index":3392,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:26",{"_index":3395,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/boardelement.entity.ts:30",{"_index":3393,"title":{},"body":{"entities/BoardElement.html":{}}}],["board/column",{"_index":4815,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"entities/ColumnboardBoardElement.html":{}}}],["board/lesson",{"_index":13652,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["board/task",{"_index":18782,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardapimodule",{"_index":2753,"title":{"modules/BoardApiModule.html":{}},"body":{"modules/BoardApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["boardcolumnboardresponse",{"_index":2773,"title":{"classes/BoardColumnBoardResponse.html":{}},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardcomposite",{"_index":2791,"title":{"classes/BoardComposite.html":{}},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcomposite:13",{"_index":9520,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:14",{"_index":4682,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{}}}],["boardcomposite:17",{"_index":9518,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:19",{"_index":3984,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:21",{"_index":9519,"title":{},"body":{"classes/FileElement.html":{}}}],["boardcomposite:22",{"_index":4692,"title":{},"body":{"classes/ColumnBoard.html":{},"classes/RichTextElement.html":{}}}],["boardcomposite:23",{"_index":4681,"title":{},"body":{"classes/Column.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:24",{"_index":3983,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:26",{"_index":16744,"title":{},"body":{"classes/RichTextElement.html":{}}}],["boardcomposite:27",{"_index":4690,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:28",{"_index":18293,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["boardcomposite:30",{"_index":16745,"title":{},"body":{"classes/RichTextElement.html":{}}}],["boardcomposite:31",{"_index":4691,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["boardcomposite:32",{"_index":3981,"title":{},"body":{"classes/Card.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:35",{"_index":3986,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcomposite:36",{"_index":3982,"title":{},"body":{"classes/Card.html":{}}}],["boardcomposite:39",{"_index":3985,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["boardcompositeprops",{"_index":2844,"title":{"interfaces/BoardCompositeProps.html":{}},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcompositevisitor",{"_index":2802,"title":{"interfaces/BoardCompositeVisitor.html":{}},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcompositevisitorasync",{"_index":2806,"title":{"interfaces/BoardCompositeVisitorAsync.html":{}},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["boardcontext",{"_index":2969,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse",{"_index":2905,"title":{"classes/BoardContextResponse.html":{}},"body":{"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{}}}],["boardcontextresponse(boardcontext",{"_index":2971,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontextresponse})@apiresponse({status",{"_index":2940,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardcontroller",{"_index":2762,"title":{"controllers/BoardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{}}}],["boardcopy",{"_index":3037,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyparams",{"_index":3000,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardcopyservice",{"_index":2983,"title":{"injectables/BoardCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{}}}],["boarddo",{"_index":3126,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddo.id",{"_index":3134,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boarddoauthorizable",{"_index":3089,"title":{"classes/BoardDoAuthorizable.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizable.requireduserrole",{"_index":3364,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddoauthorizable.users.find",{"_index":3363,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["boarddoauthorizable.users.find((u",{"_index":18380,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["boarddoauthorizableprops",{"_index":3111,"title":{"interfaces/BoardDoAuthorizableProps.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["boarddoauthorizableservice",{"_index":3115,"title":{"injectables/BoardDoAuthorizableService.html":{}},"body":{"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionItemUc.html":{}}}],["boarddobuilder",{"_index":3154,"title":{"interfaces/BoardDoBuilder.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boarddobuilderimpl",{"_index":3188,"title":{"classes/BoardDoBuilderImpl.html":{}},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(children).builddomainobject(boardnode",{"_index":3325,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddobuilderimpl(descendants).builddomainobject(boardnode",{"_index":3316,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boarddorepo",{"_index":3121,"title":{"injectables/BoardDoRepo.html":{}},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["boarddorule",{"_index":1954,"title":{"injectables/BoardDoRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/BoardDoRule.html":{},"injectables/RuleManager.html":{}}}],["boarddos",{"_index":4189,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddos.map((boarddo",{"_index":4206,"title":{},"body":{"injectables/CardUc.html":{}}}],["boarddoservice",{"_index":3369,"title":{"injectables/BoardDoService.html":{}},"body":{"injectables/BoardDoService.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["boardelement",{"_index":2693,"title":{"entities/BoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity",{"_index":2695,"title":{},"body":{"entities/Board.html":{},"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts",{"_index":13653,"title":{},"body":{"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["boardelement.entity.ts:13",{"_index":13654,"title":{},"body":{"entities/LessonBoardElement.html":{}}}],["boardelement.entity.ts:16",{"_index":18783,"title":{},"body":{"entities/TaskBoardElement.html":{}}}],["boardelement.ts",{"_index":4923,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelement.ts:13",{"_index":4925,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["boardelementprops",{"_index":3398,"title":{},"body":{"entities/BoardElement.html":{}}}],["boardelementreference",{"_index":2694,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{}}}],["boardelementresponse",{"_index":3402,"title":{"classes/BoardElementResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["boardelements",{"_index":3005,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelements.map((element",{"_index":3046,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardelementtarget",{"_index":2751,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets",{"_index":17024,"title":{},"body":{"injectables/RoomsService.html":{}}}],["boardelementtargets.filter(isnotcontained).map(maptoboardelement",{"_index":2747,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtargets.includes(ref.target",{"_index":2737,"title":{},"body":{"entities/Board.html":{}}}],["boardelementtype",{"_index":3022,"title":{},"body":{"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardelementtype.columnboard",{"_index":4927,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.lesson",{"_index":3055,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"entities/LessonBoardElement.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["boardelementtype.task",{"_index":3051,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/TaskBoardElement.html":{}}}],["boardexternalreference",{"_index":3295,"title":{"interfaces/BoardExternalReference.html":{}},"body":{"injectables/BoardDoRepo.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardUc.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{}}}],["boardexternalreferencetype",{"_index":2913,"title":{},"body":{"classes/BoardContextResponse.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/RoomsService.html":{}}}],["boardexternalreferencetype.course",{"_index":3140,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardManagementUc.html":{},"classes/ColumnBoardFactory.html":{},"injectables/RoomsService.html":{}}}],["boardid",{"_index":3466,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"injectables/ColumnBoardService.html":{}}}],["boardids",{"_index":4744,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["boardlessonresponse",{"_index":3406,"title":{"classes/BoardLessonResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardmanagementconsole",{"_index":3443,"title":{"classes/BoardManagementConsole.html":{}},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["boardmanagementuc",{"_index":3449,"title":{"injectables/BoardManagementUc.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ManagementModule.html":{}}}],["boardmodule",{"_index":1983,"title":{"modules/BoardModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/LearnroomModule.html":{},"modules.html":{}}}],["boardnode",{"_index":3144,"title":{"entities/BoardNode.html":{}},"body":{"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnode.ancestorids",{"_index":3343,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.caption",{"_index":3240,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.completed",{"_index":3248,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.context",{"_index":3230,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.createdat",{"_index":3228,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.duedate",{"_index":3246,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.entity",{"_index":4093,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnode.foreach((bn",{"_index":3270,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.height",{"_index":3237,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.id",{"_index":3226,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnode.inputformat",{"_index":3243,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.joinpath(props.parent.path",{"_index":3568,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.joinpath(this.path",{"_index":3580,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["boardnode.parentid",{"_index":3340,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnode.text",{"_index":3241,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.title",{"_index":3227,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.updatedat",{"_index":3229,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.usedobuilder(this",{"_index":3221,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnode.userid",{"_index":3249,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["boardnodeauthorizableservice",{"_index":11637,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["boardnodeprops",{"_index":3562,"title":{"interfaces/BoardNodeProps.html":{}},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnoderepo",{"_index":3281,"title":{"injectables/BoardNodeRepo.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["boardnodes",{"_index":3320,"title":{},"body":{"injectables/BoardDoRepo.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["boardnodes.map((boardnode",{"_index":3323,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.map((o",{"_index":3337,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodes.reduce((map",{"_index":3328,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["boardnodetype",{"_index":3212,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardnodetype.card",{"_index":3231,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["boardnodetype.column",{"_index":3223,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{}}}],["boardnodetype.column_board",{"_index":4716,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["boardnodetype.file_element",{"_index":3233,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["boardnodetype.rich_text_element",{"_index":3234,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["boardnodetype.submission_container_element",{"_index":3235,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["boardnodetype.submission_item",{"_index":3244,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["boardprops",{"_index":2703,"title":{},"body":{"entities/Board.html":{}}}],["boardrepo",{"_index":2994,"title":{"injectables/BoardRepo.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"injectables/CourseCopyService.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["boardresponse",{"_index":2956,"title":{"classes/BoardResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper",{"_index":2960,"title":{"classes/BoardResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["boardresponsemapper.maptoresponse(board",{"_index":2967,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardresponse})@apiresponse({status",{"_index":2945,"title":{},"body":{"controllers/BoardController.html":{}}}],["boardroles",{"_index":3100,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRule.html":{},"interfaces/UserBoardRoles.html":{}}}],["boardroles.editor",{"_index":3147,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boardroles.reader",{"_index":3152,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["boards",{"_index":2918,"title":{},"body":{"controllers/BoardController.html":{},"injectables/ColumnBoardService.html":{}}}],["boardstatus",{"_index":3021,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["boardstatus.elements",{"_index":3079,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["boardsubmissioncontroller",{"_index":2766,"title":{"controllers/BoardSubmissionController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["boardtask",{"_index":16901,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.availabledate",{"_index":16916,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.course",{"_index":16912,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.createdat",{"_index":16909,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.description",{"_index":16922,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.duedate",{"_index":16918,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.getparentdata",{"_index":16903,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.id",{"_index":16907,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.name",{"_index":16908,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtask.updatedat",{"_index":16910,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc",{"_index":16902,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskdesc.color",{"_index":16920,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskresponse",{"_index":3405,"title":{"classes/BoardTaskResponse.html":{}},"body":{"classes/BoardElementResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatus",{"_index":16904,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper",{"_index":3729,"title":{"classes/BoardTaskStatusMapper.html":{}},"body":{"classes/BoardTaskStatusMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusmapper.maptoresponse(status",{"_index":16905,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["boardtaskstatusresponse",{"_index":3725,"title":{"classes/BoardTaskStatusResponse.html":{}},"body":{"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{}}}],["boardtaskstatusresponse(status",{"_index":3735,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["boarduc",{"_index":2757,"title":{"injectables/BoardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"injectables/BoardUc.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["boardurlparams",{"_index":2925,"title":{"classes/BoardUrlParams.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardUrlParams.html":{}}}],["body",{"_index":543,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"injectables/HydraAdapter.html":{},"controllers/ImportUserController.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"controllers/RoomsController.html":{},"injectables/S3ClientAdapter.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TestApiClient.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["body.code",{"_index":20336,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.create",{"_index":19321,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.delete",{"_index":19322,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.destinationcourseid",{"_index":17929,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.expiresindays",{"_index":17918,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.mandatory",{"_index":20330,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.newname",{"_index":17928,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parentid",{"_index":17916,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.parenttype",{"_index":17915,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.read",{"_index":19323,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.redirecturi",{"_index":20337,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.schoolexclusive",{"_index":17917,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["body.session",{"_index":15471,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["body.share",{"_index":19324,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["body.systemid",{"_index":20335,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["body.write",{"_index":19325,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["bodyparams",{"_index":2949,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.completed",{"_index":3712,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["bodyparams.data.content",{"_index":8075,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.height",{"_index":4064,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.title",{"_index":2976,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["bodyparams.toboardid",{"_index":4878,"title":{},"body":{"controllers/ColumnController.html":{}}}],["bodyparams.tocardid",{"_index":8071,"title":{},"body":{"controllers/ElementController.html":{}}}],["bodyparams.tocolumnid",{"_index":4060,"title":{},"body":{"controllers/CardController.html":{}}}],["bodyparams.toposition",{"_index":4061,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["bodyproperties",{"_index":2660,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["bom",{"_index":21463,"title":{},"body":{"dependencies.html":{}}}],["boolean",{"_index":347,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BaseResponseMapper.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoRule.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolVersionService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"modules/FilesStorageModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/GridElement.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IAccountConfig.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtPayload.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/ManagementModule.html":{},"interfaces/Meta.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"interfaces/NextcloudGroups.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthConfig.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"interfaces/Options.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsConfig.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/Scope.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFilterParams.html":{},"classes/SystemScope.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/ToolConfiguration.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["boolean(options.verbose",{"_index":11624,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["boolean.transformer.ts",{"_index":21525,"title":{},"body":{"miscellaneous/functions.html":{}}}],["boolish",{"_index":21596,"title":{},"body":{"miscellaneous/functions.html":{}}}],["bootstrap",{"_index":431,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"classes/TestBootstrapConsole.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bootstrap.boot([process.argv0",{"_index":19451,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts",{"_index":19433,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrap.console.ts:8",{"_index":19435,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstrapconsole",{"_index":19442,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["bootstraps",{"_index":22796,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["border",{"_index":12165,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["both",{"_index":21561,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["bound",{"_index":13981,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["box",{"_index":22792,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["branch",{"_index":1239,"title":{},"body":{"injectables/AccountValidationService.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["break",{"_index":5147,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"injectables/ContentElementFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"injectables/UserRepo.html":{}}}],["breaking",{"_index":23026,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["breakout",{"_index":2256,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["breakoutrooms",{"_index":2257,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["bring",{"_index":6856,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["broadcast",{"_index":1283,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["broken",{"_index":22480,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["broker",{"_index":12906,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["brokerconfig",{"_index":18735,"title":{},"body":{"injectables/SystemService.html":{}}}],["brokering",{"_index":22925,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["browse",{"_index":22252,"title":{},"body":{"modules.html":{},"additional-documentation/nestjs-application.html":{}}}],["browser",{"_index":22250,"title":{},"body":{"modules.html":{}}}],["brute",{"_index":73,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthenticationService.html":{}}}],["bruteforceerror",{"_index":1814,"title":{"classes/BruteForceError.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["bruteforceerror(timetowait",{"_index":1846,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["bson",{"_index":734,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/BaseRepo.html":{},"classes/BoardManagementConsole.html":{},"injectables/BsonConverter.html":{},"injectables/CardService.html":{},"classes/ClassEntityFactory.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/OidcProvisioningService.html":{},"classes/ShareTokenFactory.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"dependencies.html":{}}}],["bson/ejson",{"_index":3855,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["bsonconverter",{"_index":3843,"title":{"injectables/BsonConverter.html":{}},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["bsondocuments",{"_index":3854,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["btw",{"_index":2516,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["bucket",{"_index":6166,"title":{},"body":{"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["buckets",{"_index":23157,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["buffer",{"_index":6866,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"classes/JwtTestFactory.html":{}}}],["buffer.from(externaltool.logo",{"_index":8589,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(manifest",{"_index":5099,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(newresource.content",{"_index":5080,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(resource.content",{"_index":5085,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["buffer.from(response.data",{"_index":8601,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.from(tool.logo",{"_index":8610,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.length",{"_index":8591,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buffer.tostring('base64",{"_index":8603,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["bufferencoding",{"_index":10003,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["bug",{"_index":12072,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["bugs",{"_index":22259,"title":{},"body":{"properties.html":{}}}],["build",{"_index":667,"title":{},"body":{"classes/AccountFactory.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BaseFactory.html":{},"classes/Builder.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/ContentElementFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileDtoBuilder.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordFactory.html":{},"classes/FileResponseBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/ToolPermissionHelper.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["build(file",{"_index":9915,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["build(id",{"_index":6155,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["build(name",{"_index":9500,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["build(params",{"_index":699,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["build(requiredpermissions",{"_index":1873,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["build(schoolid",{"_index":9657,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["build(type",{"_index":5495,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["build(userid",{"_index":6176,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["buildaccount",{"_index":20005,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildaccount(user",{"_index":859,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildadmin",{"_index":872,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildadmin(params",{"_index":20008,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildcard",{"_index":3157,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcard(boardnode",{"_index":3164,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren",{"_index":3193,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildchildren(boardnode",{"_index":3201,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn",{"_index":3158,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumn(boardnode",{"_index":3167,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard",{"_index":3159,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcolumnboard(boardnode",{"_index":3170,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildcopyentitydict",{"_index":6244,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["buildcopyentitydict(status",{"_index":6247,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["builddomainobject",{"_index":3194,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddomainobject(boardnode",{"_index":3205,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["builddtowithelements",{"_index":7915,"title":{},"body":{"classes/DtoCreator.html":{}}}],["builddtowithelements(elements",{"_index":7929,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["builder",{"_index":2155,"title":{"classes/Builder.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/Builder.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["builder.addorganization",{"_index":4986,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.build",{"_index":4981,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["builder.buildcard(this",{"_index":4097,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["builder.buildcolumn(this",{"_index":4886,"title":{},"body":{"entities/ColumnNode.html":{}}}],["builder.buildcolumnboard(this",{"_index":4723,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["builder.buildfileelement(this",{"_index":9542,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["builder.buildrichtextelement(this",{"_index":16775,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["builder.buildsubmissioncontainerelement(this",{"_index":18243,"title":{},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["builder.buildsubmissionitem(this",{"_index":18320,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["builder.ts",{"_index":5037,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:24",{"_index":11304,"title":{},"body":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:28",{"_index":11301,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:30",{"_index":11302,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:32",{"_index":11303,"title":{},"body":{"interfaces/ICommonCartridgeFileBuilder.html":{}}}],["builder.ts:35",{"_index":5206,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:42",{"_index":5209,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:46",{"_index":5211,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:52",{"_index":5207,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["builder.ts:63",{"_index":5048,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:65",{"_index":5050,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:67",{"_index":5047,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:69",{"_index":5046,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:73",{"_index":5053,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:79",{"_index":5056,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder.ts:88",{"_index":5057,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{}}}],["builder:2",{"_index":2161,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["builder:26",{"_index":2162,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["builder:8",{"_index":2240,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["buildfile",{"_index":5492,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildfileelement",{"_index":3160,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfileelement(boardnode",{"_index":3173,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildfromaxiosresponse",{"_index":9498,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromaxiosresponse(name",{"_index":9502,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest",{"_index":9499,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildfromrequest(fileinfo",{"_index":9504,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["buildgroupsclaim",{"_index":12139,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildgroupsclaim(teams",{"_index":12147,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["buildlist",{"_index":668,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildlist(number",{"_index":705,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildlistwitheachtype",{"_index":7119,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["buildlistwitheachtype(params",{"_index":7120,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["buildlistwithid",{"_index":669,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildlistwithid(number",{"_index":707,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildlogourl",{"_index":8550,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildlogourl(template",{"_index":8557,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["buildoptions",{"_index":702,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildrichtext",{"_index":5493,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildrichtextelement",{"_index":3161,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildrichtextelement(boardnode",{"_index":3176,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["builds",{"_index":2317,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["buildscope",{"_index":5744,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildscope(query",{"_index":5749,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["buildstudent",{"_index":861,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildstudent(params",{"_index":20010,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildsubmissioncontainer",{"_index":5494,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["buildsubmissioncontainerelement",{"_index":3162,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissioncontainerelement(boardnode",{"_index":3179,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem",{"_index":3163,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildsubmissionitem(boardnode",{"_index":3182,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["buildteacher",{"_index":868,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["buildteacher(params",{"_index":20012,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["buildtokenrequestpayload",{"_index":15035,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtokenrequestpayload(code",{"_index":15051,"title":{},"body":{"injectables/OAuthService.html":{}}}],["buildtoollaunchdatafromconcreteconfig",{"_index":117,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromconcreteconfig(userid",{"_index":153,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool",{"_index":118,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromexternaltool(externaltool",{"_index":157,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools",{"_index":119,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchdatafromtools(data",{"_index":161,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload",{"_index":120,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoollaunchrequestpayload(url",{"_index":164,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildtoolreference",{"_index":19884,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["buildtoolreference(userid",{"_index":19889,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["buildurl",{"_index":121,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildurl(toollaunchdatado",{"_index":168,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["buildwithid",{"_index":670,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildwithid(params",{"_index":709,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["buildwithid(userandaccounttestfactory.getuserparams(params",{"_index":866,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["built",{"_index":689,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["builtin",{"_index":12931,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["bundle",{"_index":22266,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["busboy",{"_index":9507,"title":{},"body":{"classes/FileDtoBuilder.html":{},"dependencies.html":{}}}],["business",{"_index":3870,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorLoggable.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["business.error",{"_index":1488,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ForbiddenOperationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/ValidationError.html":{}}}],["businesserror",{"_index":1472,"title":{"classes/BusinessError.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:12",{"_index":1479,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:15",{"_index":1484,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:18",{"_index":1483,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:21",{"_index":1482,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:25",{"_index":1481,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businesserror:47",{"_index":1485,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["businessexception",{"_index":22668,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["businesslogic",{"_index":22526,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["button",{"_index":16048,"title":{},"body":{"classes/PageContentResponse.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["byavailable",{"_index":19099,"title":{},"body":{"classes/TaskScope.html":{}}}],["byavailable(availabledate",{"_index":19111,"title":{},"body":{"classes/TaskScope.html":{}}}],["byclasses",{"_index":12510,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclasses(classes",{"_index":12519,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byclientid",{"_index":9051,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(clientid",{"_index":9054,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byclientid(query.clientid",{"_index":8793,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["bycontextid",{"_index":5875,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontextid(contextid",{"_index":5885,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype",{"_index":5876,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycontexttype(contexttype",{"_index":5887,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bycourseids",{"_index":13934,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycourseids(courseids",{"_index":13935,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{}}}],["bycreator",{"_index":14774,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreator(creatorid",{"_index":14778,"title":{},"body":{"classes/NewsScope.html":{}}}],["bycreatorid",{"_index":19100,"title":{},"body":{"classes/TaskScope.html":{}}}],["bycreatorid(creatorid",{"_index":19113,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft",{"_index":19101,"title":{},"body":{"classes/TaskScope.html":{}}}],["bydraft(isdraft",{"_index":19114,"title":{},"body":{"classes/TaskScope.html":{}}}],["byexpires",{"_index":9871,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["byfilerecordid",{"_index":9889,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfilerecordid(filerecordid",{"_index":9894,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byfinished",{"_index":19102,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfinished(userid",{"_index":19116,"title":{},"body":{"classes/TaskScope.html":{}}}],["byfirstname",{"_index":12511,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byfirstname(firstname",{"_index":12521,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byhidden",{"_index":9052,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(ishidden",{"_index":9056,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/LessonScope.html":{}}}],["byhidden(query.ishidden",{"_index":8794,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byid",{"_index":5877,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byid(id",{"_index":5889,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bylastname",{"_index":12512,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylastname(lastname",{"_index":12523,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bylessonids",{"_index":19103,"title":{},"body":{"classes/TaskScope.html":{}}}],["bylessonids(lessonids",{"_index":19117,"title":{},"body":{"classes/TaskScope.html":{}}}],["byloginname",{"_index":12513,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byloginname(loginname",{"_index":12525,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymarkedfordelete",{"_index":9890,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymarkedfordelete(ismarked",{"_index":9896,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bymatches",{"_index":12514,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["bymatches(matches",{"_index":12529,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byname",{"_index":9053,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(name",{"_index":9058,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["byname(query.name",{"_index":8792,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["byonlycreatorid",{"_index":19104,"title":{},"body":{"classes/TaskScope.html":{}}}],["byonlycreatorid(creatorid",{"_index":19119,"title":{},"body":{"classes/TaskScope.html":{}}}],["byparentid",{"_index":9891,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["byparentid(parentid",{"_index":9899,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bypassdocumentvalidation",{"_index":7755,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["bypublished",{"_index":14775,"title":{},"body":{"classes/NewsScope.html":{}}}],["byreferences",{"_index":23115,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["byrole",{"_index":12515,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byrole(rolename",{"_index":12531,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool",{"_index":12516,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschool(school",{"_index":12533,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byschoolid",{"_index":9892,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschoolid(query.schoolid",{"_index":20101,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["byschoolid(schoolid",{"_index":9901,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/UserScope.html":{}}}],["byschooltoolid",{"_index":5878,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["byschooltoolid(schooltoolid",{"_index":5891,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["bysecuritycheckrequesttoken",{"_index":9893,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bysecuritycheckrequesttoken(token",{"_index":9903,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["bytargets",{"_index":14776,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytargets(targets",{"_index":14780,"title":{},"body":{"classes/NewsScope.html":{}}}],["bytes",{"_index":10408,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["bytesrange",{"_index":10402,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["bytoolid",{"_index":17465,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["bytoolid(toolid",{"_index":17467,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["byunpublished",{"_index":14777,"title":{},"body":{"classes/NewsScope.html":{}}}],["byuseridquery",{"_index":18399,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byuseridquery(userid",{"_index":18402,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["byusermatch",{"_index":12517,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["byusermatch(user",{"_index":12535,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["c",{"_index":721,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"injectables/LessonService.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"interfaces/Options.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"license.html":{}}}],["c.id",{"_index":19194,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished",{"_index":19213,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.isfinished()).map((c",{"_index":19193,"title":{},"body":{"injectables/TaskUC.html":{}}}],["c.user",{"_index":13958,"title":{},"body":{"injectables/LessonService.html":{}}}],["cache",{"_index":3911,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/OauthAdapterService.html":{},"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{},"dependencies.html":{}}}],["cache_manager",{"_index":12727,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachedstate",{"_index":15816,"title":{},"body":{"injectables/OauthUc.html":{}}}],["cacheexpiration",{"_index":16840,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["cachemanager",{"_index":12717,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["cachemodule",{"_index":3908,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemodule.registerasync",{"_index":3915,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachemoduleoptions",{"_index":3909,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cacheservice",{"_index":3893,"title":{"injectables/CacheService.html":{}},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cacheservice.getstoretype",{"_index":3916,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cachestoretype",{"_index":3897,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachestoretype.memory",{"_index":3903,"title":{},"body":{"injectables/CacheService.html":{}}}],["cachestoretype.redis",{"_index":3902,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{}}}],["cachewrappermodule",{"_index":1623,"title":{"modules/CacheWrapperModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CacheWrapperModule.html":{},"modules/OauthModule.html":{},"modules.html":{}}}],["caf",{"_index":12550,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["cafe",{"_index":12552,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["calculatenumberofsubmitters(submissions",{"_index":12030,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["calculations",{"_index":22506,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["calendareventdto",{"_index":3925,"title":{"classes/CalendarEventDto.html":{}},"body":{"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/VideoConferenceService.html":{}}}],["calendarmapper",{"_index":3935,"title":{"injectables/CalendarMapper.html":{}},"body":{"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["calendarmodule",{"_index":3950,"title":{"modules/CalendarModule.html":{}},"body":{"modules/CalendarModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["calendarservice",{"_index":3954,"title":{"injectables/CalendarService.html":{}},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"injectables/VideoConferenceService.html":{}}}],["calendarservice:findevent",{"_index":3978,"title":{},"body":{"injectables/CalendarService.html":{}}}],["call",{"_index":691,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountValidationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakSeedService.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callable",{"_index":2318,"title":{},"body":{"injectables/BBBService.html":{}}}],["callback",{"_index":22774,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["callback_uri",{"_index":1457,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["callbackuri",{"_index":1451,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["calld",{"_index":22819,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["called",{"_index":688,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/KeycloakSeedService.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callhandler",{"_index":8018,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["calling",{"_index":16111,"title":{},"body":{"injectables/PermissionService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["callkcadminclient",{"_index":12767,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["callname",{"_index":2310,"title":{},"body":{"injectables/BBBService.html":{}}}],["calls",{"_index":16263,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["camelcase",{"_index":22604,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["can't",{"_index":1663,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cancel",{"_index":16047,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["cancelbuttonurl",{"_index":16013,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["canguestjoin",{"_index":21225,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["canguestjoin(isguest",{"_index":21240,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["caninline",{"_index":5105,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["canmap",{"_index":2591,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["canmap(element",{"_index":2592,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["cant",{"_index":22538,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["capabilities",{"_index":22395,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["caption",{"_index":3239,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["caption(value",{"_index":9526,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["card",{"_index":2856,"title":{"classes/Card.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/Column.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.'})@apiextramodels(richtextelementresponse",{"_index":4010,"title":{},"body":{"controllers/CardController.html":{}}}],["card.'})@apiresponse({status",{"_index":4017,"title":{},"body":{"controllers/CardController.html":{}}}],["card.addchild(text1",{"_index":4777,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text2",{"_index":4793,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text3",{"_index":4805,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.addchild(text4",{"_index":4812,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["card.body.params",{"_index":4873,"title":{},"body":{"controllers/ColumnController.html":{}}}],["card.body.params.ts",{"_index":6849,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:10",{"_index":14562,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.body.params.ts:13",{"_index":6852,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["card.body.params.ts:18",{"_index":14564,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["card.children.map((element",{"_index":4119,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.constructor.name",{"_index":4901,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["card.createdat",{"_index":4121,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["card.do",{"_index":2875,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["card.height",{"_index":4118,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.id",{"_index":4116,"title":{},"body":{"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.response",{"_index":4088,"title":{},"body":{"classes/CardListResponse.html":{}}}],["card.title",{"_index":4117,"title":{},"body":{"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["card.updatedat",{"_index":4120,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["cardcontroller",{"_index":2764,"title":{"controllers/CardController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/CardController.html":{}}}],["cardid",{"_index":3781,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardidparams",{"_index":4021,"title":{},"body":{"controllers/CardController.html":{}}}],["cardidparams.ids",{"_index":4053,"title":{},"body":{"controllers/CardController.html":{}}}],["cardids",{"_index":4051,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardidsparams",{"_index":4022,"title":{"classes/CardIdsParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardIdsParams.html":{}}}],["cardlistresponse",{"_index":4041,"title":{"classes/CardListResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardListResponse.html":{}}}],["cardlistresponse})@apiresponse({status",{"_index":4024,"title":{},"body":{"controllers/CardController.html":{}}}],["cardnode",{"_index":3165,"title":{"entities/CardNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["cardnodefactory",{"_index":3495,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodefactory.build",{"_index":3519,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardnodeprops",{"_index":4094,"title":{"interfaces/CardNodeProps.html":{}},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["cardprops",{"_index":4003,"title":{"interfaces/CardProps.html":{}},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["cardresponse",{"_index":4086,"title":{"classes/CardResponse.html":{}},"body":{"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper",{"_index":4048,"title":{"classes/CardResponseMapper.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"controllers/ColumnController.html":{}}}],["cardresponsemapper.maptoresponse(card",{"_index":4056,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{}}}],["cardresponses",{"_index":4055,"title":{},"body":{"controllers/CardController.html":{}}}],["cardresponse})@apiresponse({status",{"_index":4857,"title":{},"body":{"controllers/ColumnController.html":{}}}],["cards",{"_index":3232,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cards.every((card",{"_index":4147,"title":{},"body":{"injectables/CardService.html":{}}}],["cards.map((card",{"_index":3512,"title":{},"body":{"injectables/BoardManagementUc.html":{},"controllers/CardController.html":{}}}],["cardservice",{"_index":3535,"title":{"injectables/CardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{}}}],["cardskeletonresponse",{"_index":4160,"title":{"classes/CardSkeletonResponse.html":{}},"body":{"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["cardspercolumn",{"_index":3505,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["cardspercolumn.flat",{"_index":3509,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["carduc",{"_index":2758,"title":{"injectables/CardUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["cardurlparams",{"_index":4008,"title":{"classes/CardUrlParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CardUrlParams.html":{}}}],["care",{"_index":22575,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["careful",{"_index":22893,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["carefully",{"_index":22841,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cares",{"_index":22671,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["carry",{"_index":21885,"title":{},"body":{"license.html":{}}}],["cartridge",{"_index":4931,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CourseExportUc.html":{},"classes/CourseQueryParams.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IServerConfig.html":{}}}],["cartridge.config.ts",{"_index":11294,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{}}}],["cartridge/common",{"_index":5036,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["cartridge/utils",{"_index":4972,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["cartridge/utils.ts",{"_index":21544,"title":{},"body":{"miscellaneous/functions.html":{}}}],["cartridge_basiclti_link",{"_index":5114,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_bundle",{"_index":5128,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cartridge_icon",{"_index":5131,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["cascading",{"_index":5280,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["case",{"_index":309,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"entities/CourseGroup.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolRepoMapper.html":{},"interfaces/ICourseGroupProperties.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"injectables/TaskUC.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["caseinsensitivenames",{"_index":5337,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["cases",{"_index":18910,"title":{},"body":{"classes/TaskFactory.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cast",{"_index":1716,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["catch",{"_index":1158,"title":{},"body":{"injectables/AccountService.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardManagementUc.html":{},"injectables/DeleteFilesUc.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolService.html":{},"classes/GlobalErrorFilter.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapStrategy.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["catch((error",{"_index":2357,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["catch(error",{"_index":10473,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["catcherror",{"_index":1269,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/TimeoutInterceptor.html":{}}}],["catcherror((e",{"_index":1385,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["catcherror((err",{"_index":16690,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["cause",{"_index":3876,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorUtils.html":{},"injectables/JwtStrategy.html":{},"classes/SchoolMigrationError.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["causeerror",{"_index":8245,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["caution",{"_index":13411,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["cc",{"_index":1578,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"classes/CourseQueryParams.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["cease",{"_index":22045,"title":{},"body":{"license.html":{}}}],["ceating",{"_index":11374,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["centralldap",{"_index":17577,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["certain",{"_index":22008,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["cessation",{"_index":22054,"title":{},"body":{"license.html":{}}}],["ch.id",{"_index":2839,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["chaining",{"_index":22679,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["chains",{"_index":22289,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["chalk",{"_index":21383,"title":{},"body":{"dependencies.html":{}}}],["challenge",{"_index":4216,"title":{},"body":{"classes/ChallengeParams.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/HydraAdapter.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["challengeparams",{"_index":4214,"title":{"classes/ChallengeParams.html":{}},"body":{"classes/ChallengeParams.html":{},"controllers/OauthProviderController.html":{}}}],["change",{"_index":4997,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/JwtPayload.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["changed",{"_index":10022,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"additional-documentation/nestjs-application.html":{}}}],["changefinishedforuser",{"_index":19162,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changefinishedforuser(userid",{"_index":19168,"title":{},"body":{"injectables/TaskUC.html":{}}}],["changelanguage",{"_index":20022,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguage(params",{"_index":20023,"title":{},"body":{"controllers/UserController.html":{}}}],["changelanguageparams",{"_index":4218,"title":{"classes/ChangeLanguageParams.html":{}},"body":{"classes/ChangeLanguageParams.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["changes",{"_index":13361,"title":{},"body":{"injectables/LdapStrategy.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["changing",{"_index":20285,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["channel",{"_index":16480,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["chapter",{"_index":2576,"title":{},"body":{"injectables/BaseRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["character",{"_index":937,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["characterized",{"_index":21985,"title":{},"body":{"license.html":{}}}],["characters",{"_index":9979,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/MongoPatterns.html":{},"miscellaneous/functions.html":{}}}],["charge",{"_index":21695,"title":{},"body":{"license.html":{}}}],["chat",{"_index":1405,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["chat.module.ts",{"_index":16791,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.module.ts:7",{"_index":16792,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service",{"_index":16794,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["chat.service.ts",{"_index":1264,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["chat.service.ts:42",{"_index":16789,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:44",{"_index":16788,"title":{},"body":{"classes/RocketChatError.html":{}}}],["chat.service.ts:47",{"_index":16787,"title":{},"body":{"classes/RocketChatError.html":{}}}],["check",{"_index":1240,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/GuardAgainst.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/LdapStrategy.html":{},"injectables/LessonUC.html":{},"injectables/NextcloudStrategy.html":{},"entities/Submission.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["check.entity",{"_index":9601,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["check.entity.ts",{"_index":9920,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["check.entity.ts:14",{"_index":9928,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:17",{"_index":9924,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:20",{"_index":9925,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:23",{"_index":9923,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.entity.ts:26",{"_index":9922,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{}}}],["check.service.ts",{"_index":14461,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:15",{"_index":14466,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["check.service.ts:8",{"_index":14464,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["checkallpermissions",{"_index":2012,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkallpermissions(user",{"_index":2020,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkandaddprefix",{"_index":19409,"title":{},"body":{"classes/TestApiClient.html":{}}}],["checkandaddprefix(inputpath",{"_index":1761,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["checkavaiblelanguages",{"_index":20816,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavaiblelanguages(settedlanguage",{"_index":20818,"title":{},"body":{"injectables/UserUc.html":{}}}],["checkavailablelanguages",{"_index":20764,"title":{},"body":{"injectables/UserService.html":{}}}],["checkavailablelanguages(language",{"_index":20770,"title":{},"body":{"injectables/UserService.html":{}}}],["checkbrutforce",{"_index":1782,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkbrutforce(account",{"_index":1791,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["checkcontextreadpermission",{"_index":18053,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcontextreadpermission(userid",{"_index":18059,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission",{"_index":18054,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcreatepermission(userid",{"_index":18061,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkcredentials",{"_index":13318,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["checkcredentials(account",{"_index":13323,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkcredentials(enteredpassword",{"_index":13997,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["checkcustomparameterentries",{"_index":5304,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkcustomparameterentries(loadedexternaltool",{"_index":5312,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkduplicateincontext",{"_index":5973,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checkduplicateincontext(contextexternaltool",{"_index":5979,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["checked",{"_index":1664,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/HydraSsoService.html":{}}}],["checkentitypermissions",{"_index":9380,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkentitypermissions(userid",{"_index":9385,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["checkerror",{"_index":10281,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["checkerror(response",{"_index":10284,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["checkexistence",{"_index":1117,"title":{},"body":{"injectables/AccountService.html":{}}}],["checkexpired",{"_index":18021,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkexpired(sharetoken",{"_index":18027,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["checkfeatureenabled",{"_index":6577,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["checkfeatureenabled(parenttype",{"_index":18063,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkforduplicateparameters",{"_index":5305,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkforduplicateparameters(validatabletool",{"_index":5316,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkifpreviewpossible",{"_index":16130,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checkifpreviewpossible(filerecord",{"_index":16142,"title":{},"body":{"injectables/PreviewService.html":{}}}],["checking",{"_index":10530,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkinputisvalid",{"_index":23151,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["checkldapcredentials",{"_index":13287,"title":{},"body":{"injectables/LdapService.html":{}}}],["checkldapcredentials(system",{"_index":13289,"title":{},"body":{"injectables/LdapService.html":{}}}],["checklist",{"_index":21648,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checklistscontainingequalentities(first",{"_index":2725,"title":{},"body":{"entities/Board.html":{}}}],["checkofficialschoolnumbersmatch",{"_index":17599,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkofficialschoolnumbersmatch(schooldo",{"_index":17608,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["checkoneofpermissions",{"_index":2013,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoneofpermissions(user",{"_index":2022,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkoptionalparameter",{"_index":5306,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkoptionalparameter(param",{"_index":5318,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkout",{"_index":21652,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["checkparameterregex",{"_index":5307,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparameterregex(foundentry",{"_index":5321,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype",{"_index":5308,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparametertype(foundentry",{"_index":5323,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkparentwritepermission",{"_index":18055,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkparentwritepermission(userid",{"_index":18065,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["checkpermission",{"_index":2014,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["checkpermission(user",{"_index":2024,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpermission(userid",{"_index":3769,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["checkpermissionbyreferences",{"_index":2015,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpermissionbyreferences(userid",{"_index":2026,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["checkpreconditions",{"_index":18160,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checkpreconditions(userid",{"_index":18162,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["checks",{"_index":11591,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementOauthService.html":{},"classes/KeycloakConsole.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["checkscopeandvalidateparameter",{"_index":5309,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkscopeandvalidateparameter(validatabletool",{"_index":5325,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["checkshorttitle",{"_index":7337,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["checkstreamresponsive",{"_index":17099,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checkstreamresponsive(stream",{"_index":17106,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["checksum",{"_index":2308,"title":{},"body":{"injectables/BBBService.html":{}}}],["checkunique",{"_index":1128,"title":{},"body":{"injectables/AccountService.html":{}}}],["checkvalue",{"_index":13319,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkvalue(value",{"_index":13325,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["checkversionmatch",{"_index":17530,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["checkversionmatch(schoolexternaltoolversion",{"_index":17532,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["child",{"_index":2811,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoService.html":{},"classes/BoardResponseMapper.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/FileElement.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemUc.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["child.accept(this",{"_index":16566,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["child.acceptasync(this",{"_index":16539,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["child.constructor.name",{"_index":2830,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["child.id",{"_index":2840,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["childid",{"_index":3299,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["children",{"_index":2799,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/CardService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ElementUc.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{}}}],["children.length",{"_index":3258,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["children.sort((a",{"_index":3254,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["childrenmap",{"_index":3192,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["childrenmap[boardnode.pathofchildren",{"_index":3324,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["choose",{"_index":22186,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["choosing",{"_index":22188,"title":{},"body":{"license.html":{}}}],["chunk",{"_index":21447,"title":{},"body":{"dependencies.html":{}}}],["circumstances",{"_index":21836,"title":{},"body":{"license.html":{}}}],["circumvention",{"_index":21844,"title":{},"body":{"license.html":{}}}],["civil",{"_index":22225,"title":{},"body":{"license.html":{}}}],["cjs",{"_index":12757,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["cjs/keycloak",{"_index":12756,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["claim",{"_index":13001,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"license.html":{}}}],["claim.name",{"_index":13010,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["claims",{"_index":22105,"title":{},"body":{"license.html":{}}}],["class",{"_index":0,"title":{"classes/AbstractAccountService.html":{},"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BaseDO.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/ColumnUrlParams.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolSortingMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/ExternalUserDto.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"classes/HydraRedirectDto.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"classes/JwtExtractor.html":{},"classes/JwtTestFactory.html":{},"classes/KeycloakAdministration.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoggingUtils.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"classes/MigrationDto.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"classes/NewsUrlParams.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolRefDO.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"classes/TimestampsResponse.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{}},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserProperties.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"classes/SSOLoginQuery.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["class.do",{"_index":4338,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classattributenamemapping",{"_index":11918,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["classentity",{"_index":4277,"title":{"entities/ClassEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"interfaces/IClassEntityProps.html":{}}}],["classentity.id",{"_index":4439,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classentityfactory",{"_index":4323,"title":{"classes/ClassEntityFactory.html":{}},"body":{"classes/ClassEntityFactory.html":{}}}],["classentityfactory.define(classentity",{"_index":4330,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["classes",{"_index":2,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BaseDO.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/ColumnUrlParams.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolSortingMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/ExternalUserDto.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"classes/JwtExtractor.html":{},"classes/JwtTestFactory.html":{},"classes/KeycloakAdministration.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoggingUtils.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"classes/MigrationDto.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"classes/NewsUrlParams.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolRefDO.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"classes/TimestampsResponse.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["classes.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":12562,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["classesentities",{"_index":4434,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classesentities.map((classentity",{"_index":4437,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classesrepo",{"_index":4393,"title":{"injectables/ClassesRepo.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{}}}],["classfactory",{"_index":4333,"title":{"classes/ClassFactory.html":{}},"body":{"classes/ClassFactory.html":{}}}],["classfactory.define(class",{"_index":4339,"title":{},"body":{"classes/ClassFactory.html":{}}}],["classmapper",{"_index":4340,"title":{"classes/ClassMapper.html":{}},"body":{"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{}}}],["classmapper.maptodos(classes",{"_index":4433,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmapper.maptoentities(classes",{"_index":4435,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["classmodule",{"_index":4388,"title":{"modules/ClassModule.html":{}},"body":{"modules/ClassModule.html":{},"modules.html":{}}}],["classname",{"_index":9413,"title":{},"body":{"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["classnames",{"_index":11447,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{}}}],["classpathadditions",{"_index":11908,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["classprops",{"_index":4263,"title":{"interfaces/ClassProps.html":{}},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{}}}],["classserializerinterceptor",{"_index":12572,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["classservice",{"_index":4392,"title":{"injectables/ClassService.html":{}},"body":{"modules/ClassModule.html":{},"injectables/ClassService.html":{}}}],["classsourceoptions",{"_index":4261,"title":{"classes/ClassSourceOptions.html":{}},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["classsourceoptionsentity",{"_index":4286,"title":{"classes/ClassSourceOptionsEntity.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["classsourceoptionsentityprops",{"_index":4420,"title":{"interfaces/ClassSourceOptionsEntityProps.html":{}},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["classsourceoptionsprops",{"_index":4413,"title":{"interfaces/ClassSourceOptionsProps.html":{}},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["classvalidatormetadatastorage",{"_index":8126,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["clause",{"_index":955,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["clean",{"_index":9822,"title":{},"body":{"classes/FileRecordMapper.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["clean(options",{"_index":11598,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["cleans",{"_index":11596,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["cleanup",{"_index":6418,"title":{},"body":{"entities/Course.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/ICourseProperties.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cleanupinput",{"_index":13993,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanupinput(username",{"_index":14001,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["cleanuppath",{"_index":19410,"title":{},"body":{"classes/TestApiClient.html":{}}}],["cleanuppath(inputpath",{"_index":1764,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["clear",{"_index":11168,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"license.html":{}}}],["clearcollection",{"_index":7723,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearcollection(collectionname",{"_index":7731,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["clearly",{"_index":22539,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["cleartimeout(timer",{"_index":17192,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["cli",{"_index":22433,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["click",{"_index":20948,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["client",{"_index":3544,"title":{},"body":{"modules/BoardModule.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolValidationService.html":{},"classes/FileResponseBuilder.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraAdapter.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/IdParams.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/LdapService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/PreviewService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"injectables/RecursiveDeleteVisitor.html":{},"modules/RedisModule.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RevokeConsentParams.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"classes/SystemFactory.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"classes/TestHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceCreateParams.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["client.adapter",{"_index":17201,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.adapter.ts",{"_index":17097,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:111",{"_index":17119,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:134",{"_index":17121,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:155",{"_index":17109,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:179",{"_index":17114,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:199",{"_index":17116,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:21",{"_index":17105,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:226",{"_index":17107,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:32",{"_index":17112,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:49",{"_index":17117,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.adapter.ts:82",{"_index":17111,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["client.bind(username",{"_index":13309,"title":{},"body":{"injectables/LdapService.html":{}}}],["client.body.ts",{"_index":15238,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:10",{"_index":15241,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:15",{"_index":15242,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:20",{"_index":15243,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:26",{"_index":15248,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:36",{"_index":15269,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:46",{"_index":15263,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:56",{"_index":15258,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:65",{"_index":15246,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:71",{"_index":15247,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.body.ts:77",{"_index":15249,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client.getsigningkey",{"_index":15215,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["client.histogram",{"_index":16669,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["client.interface",{"_index":16288,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["client.mapper",{"_index":9660,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["client.mapper.ts",{"_index":10122,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:17",{"_index":10130,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:27",{"_index":10138,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:39",{"_index":10132,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:49",{"_index":10140,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:62",{"_index":10134,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.mapper.ts:7",{"_index":10136,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["client.module.ts",{"_index":10163,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"modules/S3ClientModule.html":{}}}],["client.module.ts:25",{"_index":17200,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["client.on('connect",{"_index":3922,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.on('error",{"_index":3920,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["client.response",{"_index":5464,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["client.send(deletioncommand",{"_index":7866,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["client.service",{"_index":6205,"title":{},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{}}}],["client.service.ts",{"_index":10101,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:11",{"_index":10107,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:16",{"_index":10109,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:23",{"_index":10113,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.service.ts:31",{"_index":10111,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["client.ts",{"_index":1702,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["client.ts:104",{"_index":19425,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:110",{"_index":19416,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:120",{"_index":19417,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:129",{"_index":19422,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:136",{"_index":19424,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:142",{"_index":19421,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:26",{"_index":19414,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:28",{"_index":19415,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:30",{"_index":19413,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:38",{"_index":19420,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:45",{"_index":19418,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:54",{"_index":19429,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:64",{"_index":19427,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:74",{"_index":19428,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client.ts:84",{"_index":19426,"title":{},"body":{"classes/TestApiClient.html":{}}}],["client/dto/copy",{"_index":6065,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["client/dto/file.dto.ts",{"_index":9487,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:10",{"_index":9492,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:12",{"_index":9489,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:6",{"_index":9490,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/dto/file.dto.ts:8",{"_index":9491,"title":{},"body":{"classes/FileDto-1.html":{}}}],["client/files",{"_index":10162,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["client/interface/index.ts",{"_index":6159,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/S3Config-1.html":{}}}],["client/interfaces/copy",{"_index":11365,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["client/interfaces/file",{"_index":11403,"title":{},"body":{"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{}}}],["client/interfaces/files",{"_index":11428,"title":{},"body":{"interfaces/IFilesStorageClientConfig.html":{}}}],["client/lib/defs/authenticationexecutioninforepresentation",{"_index":12892,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/authenticationflowrepresentation",{"_index":12894,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/clientrepresentation",{"_index":12896,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityprovidermapperrepresentation",{"_index":12897,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/identityproviderrepresentation",{"_index":12898,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["client/lib/defs/protocolmapperrepresentation",{"_index":12899,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["client/lib/defs/userrepresentation",{"_index":13094,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["client/mapper/copy",{"_index":6174,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{}}}],["client/mapper/error.mapper.ts",{"_index":8200,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["client/mapper/error.mapper.ts:6",{"_index":8204,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["client/mapper/files",{"_index":9656,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["client/s3",{"_index":17096,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["client/service/copy",{"_index":6187,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["client/service/files",{"_index":10100,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["client_id",{"_index":1596,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/HydraSsoService.html":{},"interfaces/IntrospectResponse.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/TokenRequestMapper.html":{}}}],["client_name",{"_index":5468,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/HydraAdapter.html":{},"classes/ListOauthClientsParams.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{}}}],["client_secret",{"_index":1597,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/OauthClientBody.html":{},"classes/TokenRequestMapper.html":{}}}],["client_secret_basic",{"_index":15267,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["client_secret_post",{"_index":15266,"title":{},"body":{"classes/OauthClientBody.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["clientauthmethod",{"_index":15895,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["clientid",{"_index":5472,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ISystemProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolService.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TokenRequestMapper.html":{},"additional-documentation/nestjs-application.html":{}}}],["clientinternalid",{"_index":12803,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clientname",{"_index":5470,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["clientrepresentation",{"_index":12895,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["clients",{"_index":7848,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["clients.map",{"_index":15537,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["clients.params.ts",{"_index":13977,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:16",{"_index":13982,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:27",{"_index":13985,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:36",{"_index":13978,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients.params.ts:45",{"_index":13986,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["clients_configuration_path='/tmp/config/clients",{"_index":22938,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["clientsecret",{"_index":7134,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["clientsecret.value",{"_index":12807,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["clienttype",{"_index":2276,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["clienturl",{"_index":4808,"title":{},"body":{"injectables/ColumnBoardService.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["clone",{"_index":671,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["clone(this",{"_index":712,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["clone>(this",{"_index":2562,"title":{},"body":{"classes/BaseFactory.html":{}}}],["close",{"_index":16486,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["closed",{"_index":19006,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["closed.loggable",{"_index":20239,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["closedat",{"_index":20212,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["closeddraftsforcreator",{"_index":19010,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.addquery(parentsopen.query",{"_index":19011,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.bycreatorid(parentids.creatorid",{"_index":19013,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closeddraftsforcreator.byfinished(parentids.creatorid",{"_index":19012,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons",{"_index":18999,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.addquery(parentsopen.query",{"_index":19000,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.bydraft(false",{"_index":19001,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedforopencoursesandlessons.byfinished(parentids.creatorid",{"_index":19002,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator",{"_index":19007,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byfinished(parentids.creatorid",{"_index":19008,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closedwithoutparentforcreator.byonlycreatorid(parentids.creatorid",{"_index":19009,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["closely",{"_index":22222,"title":{},"body":{"license.html":{}}}],["closemigration",{"_index":4445,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["closemigration(@currentuser",{"_index":20332,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(currentuser",{"_index":20258,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["closemigration(schoolid",{"_index":20442,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["closemigration(userid",{"_index":4452,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["closeuserloginmigrationuc",{"_index":4441,"title":{"injectables/CloseUserLoginMigrationUc.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["closing",{"_index":22855,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["cloud",{"_index":14902,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["cloud.github.io/schulcloud",{"_index":22307,"title":{},"body":{"todo.html":{}}}],["cloud/commons",{"_index":2174,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/OAuthService.html":{},"classes/PrometheusMetricsConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/TaskCopyUC.html":{},"dependencies.html":{}}}],["cloud/commons/lib",{"_index":3898,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"classes/DtoCreator.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IToolFeatures.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/RedisModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/ServerConsoleModule.html":{},"injectables/ShareTokenUC.html":{},"classes/ToolConfiguration.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["cloud/dof_app_deploy/blob/main/ansible/roles/rocketchat/templates/configmap.yml.j2#l9",{"_index":22983,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["cloud/erwin",{"_index":22354,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/node",{"_index":21418,"title":{},"body":{"dependencies.html":{}}}],["cloud/sc",{"_index":22946,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cloud/schulcloud",{"_index":22284,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["cluster_accountapimodule",{"_index":434,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountapimodule_imports",{"_index":436,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountapimodule_providers",{"_index":435,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["cluster_accountmodule",{"_index":813,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_exports",{"_index":816,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_imports",{"_index":815,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_accountmodule_providers",{"_index":814,"title":{},"body":{"modules/AccountModule.html":{}}}],["cluster_authenticationapimodule",{"_index":1582,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_imports",{"_index":1583,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationapimodule_providers",{"_index":1584,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["cluster_authenticationmodule",{"_index":1619,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_exports",{"_index":1620,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_imports",{"_index":1621,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authenticationmodule_providers",{"_index":1622,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["cluster_authorizationmodule",{"_index":1946,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_exports",{"_index":1948,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_imports",{"_index":1949,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_authorizationmodule_providers",{"_index":1947,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["cluster_boardapimodule",{"_index":2754,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_imports",{"_index":2755,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardapimodule_providers",{"_index":2756,"title":{},"body":{"modules/BoardApiModule.html":{}}}],["cluster_boardmodule",{"_index":3529,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_exports",{"_index":3530,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_imports",{"_index":3532,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_boardmodule_providers",{"_index":3531,"title":{},"body":{"modules/BoardModule.html":{}}}],["cluster_cachewrappermodule",{"_index":3904,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_exports",{"_index":3905,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_cachewrappermodule_providers",{"_index":3906,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["cluster_calendarmodule",{"_index":3951,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_exports",{"_index":3953,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_calendarmodule_providers",{"_index":3952,"title":{},"body":{"modules/CalendarModule.html":{}}}],["cluster_classmodule",{"_index":4389,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_exports",{"_index":4391,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_classmodule_providers",{"_index":4390,"title":{},"body":{"modules/ClassModule.html":{}}}],["cluster_collaborativestorageadaptermodule",{"_index":4546,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_exports",{"_index":4547,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_imports",{"_index":4548,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestorageadaptermodule_providers",{"_index":4549,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["cluster_collaborativestoragemodule",{"_index":4601,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_exports",{"_index":4602,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_imports",{"_index":4603,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_collaborativestoragemodule_providers",{"_index":4604,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["cluster_commontoolmodule",{"_index":5268,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_exports",{"_index":5271,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_imports",{"_index":5270,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_commontoolmodule_providers",{"_index":5269,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["cluster_consolewritermodule",{"_index":5479,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_exports",{"_index":5480,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_consolewritermodule_providers",{"_index":5481,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["cluster_contextexternaltoolmodule",{"_index":5714,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_exports",{"_index":5715,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_imports",{"_index":5716,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_contextexternaltoolmodule_providers",{"_index":5717,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["cluster_copyhelpermodule",{"_index":6235,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_exports",{"_index":6237,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_copyhelpermodule_providers",{"_index":6236,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["cluster_coremodule",{"_index":6318,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_exports",{"_index":6320,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_coremodule_imports",{"_index":6319,"title":{},"body":{"modules/CoreModule.html":{}}}],["cluster_databasemanagementmodule",{"_index":7715,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_exports",{"_index":7717,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_databasemanagementmodule_providers",{"_index":7716,"title":{},"body":{"modules/DatabaseManagementModule.html":{}}}],["cluster_encryptionmodule",{"_index":8105,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_encryptionmodule_imports",{"_index":8106,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["cluster_errormodule",{"_index":8213,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_errormodule_imports",{"_index":8214,"title":{},"body":{"modules/ErrorModule.html":{}}}],["cluster_externaltoolmodule",{"_index":8623,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_exports",{"_index":8626,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_imports",{"_index":8624,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_externaltoolmodule_providers",{"_index":8625,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["cluster_feathersmodule",{"_index":9414,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_exports",{"_index":9415,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_feathersmodule_providers",{"_index":9416,"title":{},"body":{"modules/FeathersModule.html":{}}}],["cluster_filesmodule",{"_index":10038,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_imports",{"_index":10039,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesmodule_providers",{"_index":10040,"title":{},"body":{"modules/FilesModule.html":{}}}],["cluster_filesstorageamqpmodule",{"_index":10086,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_imports",{"_index":10088,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageamqpmodule_providers",{"_index":10087,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{}}}],["cluster_filesstorageapimodule",{"_index":10095,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_imports",{"_index":10097,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageapimodule_providers",{"_index":10096,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["cluster_filesstorageclientmodule",{"_index":10158,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_exports",{"_index":10160,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_imports",{"_index":10159,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstorageclientmodule_providers",{"_index":10161,"title":{},"body":{"modules/FilesStorageClientModule.html":{}}}],["cluster_filesstoragemodule",{"_index":10241,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_exports",{"_index":10244,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_imports",{"_index":10243,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragemodule_providers",{"_index":10242,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["cluster_filesstoragetestmodule",{"_index":10315,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesstoragetestmodule_imports",{"_index":10316,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["cluster_filesystemmodule",{"_index":10027,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_exports",{"_index":10029,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_filesystemmodule_providers",{"_index":10028,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["cluster_fwulearningcontentsmodule",{"_index":10419,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_imports",{"_index":10420,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentsmodule_providers",{"_index":10421,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["cluster_fwulearningcontentstestmodule",{"_index":10429,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_imports",{"_index":10430,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_fwulearningcontentstestmodule_providers",{"_index":10431,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["cluster_groupapimodule",{"_index":10583,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupapimodule_imports",{"_index":10584,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["cluster_groupmodule",{"_index":10664,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_exports",{"_index":10665,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_groupmodule_providers",{"_index":10666,"title":{},"body":{"modules/GroupModule.html":{}}}],["cluster_h5peditormodule",{"_index":10808,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_imports",{"_index":10809,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditormodule_providers",{"_index":10810,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["cluster_h5peditortestmodule",{"_index":10817,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_h5peditortestmodule_imports",{"_index":10818,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["cluster_identitymanagementmodule",{"_index":12180,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_exports",{"_index":12182,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_identitymanagementmodule_imports",{"_index":12181,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["cluster_importusermodule",{"_index":12446,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_imports",{"_index":12448,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_importusermodule_providers",{"_index":12447,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["cluster_keycloakadministrationmodule",{"_index":12749,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_exports",{"_index":12751,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakadministrationmodule_providers",{"_index":12750,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["cluster_keycloakconfigurationmodule",{"_index":12823,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_exports",{"_index":12825,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_imports",{"_index":12826,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakconfigurationmodule_providers",{"_index":12824,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["cluster_keycloakmodule",{"_index":13203,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_exports",{"_index":13204,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_imports",{"_index":13205,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_keycloakmodule_providers",{"_index":13206,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["cluster_learnroomapimodule",{"_index":13368,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_imports",{"_index":13369,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroomapimodule_providers",{"_index":13370,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["cluster_learnroommodule",{"_index":13386,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_exports",{"_index":13389,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_imports",{"_index":13388,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_learnroommodule_providers",{"_index":13387,"title":{},"body":{"modules/LearnroomModule.html":{}}}],["cluster_legacyschoolapimodule",{"_index":13433,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_imports",{"_index":13435,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolapimodule_providers",{"_index":13434,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["cluster_legacyschoolmodule",{"_index":13528,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_exports",{"_index":13531,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_imports",{"_index":13530,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_legacyschoolmodule_providers",{"_index":13529,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["cluster_lessonapimodule",{"_index":13645,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_imports",{"_index":13647,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonapimodule_providers",{"_index":13646,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["cluster_lessonmodule",{"_index":13870,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_exports",{"_index":13873,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_imports",{"_index":13871,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_lessonmodule_providers",{"_index":13872,"title":{},"body":{"modules/LessonModule.html":{}}}],["cluster_loggermodule",{"_index":14040,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_exports",{"_index":14042,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_loggermodule_providers",{"_index":14041,"title":{},"body":{"modules/LoggerModule.html":{}}}],["cluster_ltitoolmodule",{"_index":14328,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_exports",{"_index":14329,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_ltitoolmodule_providers",{"_index":14330,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["cluster_managementmodule",{"_index":14406,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_imports",{"_index":14408,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementmodule_providers",{"_index":14407,"title":{},"body":{"modules/ManagementModule.html":{}}}],["cluster_managementservermodule",{"_index":14420,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservermodule_imports",{"_index":14421,"title":{},"body":{"modules/ManagementServerModule.html":{}}}],["cluster_managementservertestmodule",{"_index":14427,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_managementservertestmodule_imports",{"_index":14428,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["cluster_newsmodule",{"_index":14712,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_exports",{"_index":14715,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_imports",{"_index":14713,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_newsmodule_providers",{"_index":14714,"title":{},"body":{"modules/NewsModule.html":{}}}],["cluster_oauthapimodule",{"_index":15227,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_imports",{"_index":15228,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthapimodule_providers",{"_index":15229,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["cluster_oauthmodule",{"_index":15395,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_exports",{"_index":15398,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_imports",{"_index":15397,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthmodule_providers",{"_index":15396,"title":{},"body":{"modules/OauthModule.html":{}}}],["cluster_oauthproviderapimodule",{"_index":15402,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_imports",{"_index":15403,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthproviderapimodule_providers",{"_index":15404,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["cluster_oauthprovidermodule",{"_index":15632,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_exports",{"_index":15633,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_imports",{"_index":15634,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthprovidermodule_providers",{"_index":15635,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["cluster_oauthproviderservicemodule",{"_index":15678,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_oauthproviderservicemodule_exports",{"_index":15679,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["cluster_provisioningmodule",{"_index":16301,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_exports",{"_index":16302,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_imports",{"_index":16304,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_provisioningmodule_providers",{"_index":16303,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["cluster_pseudonymmodule",{"_index":16386,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_exports",{"_index":16387,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_pseudonymmodule_providers",{"_index":16388,"title":{},"body":{"modules/PseudonymModule.html":{}}}],["cluster_redismodule",{"_index":16607,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_redismodule_imports",{"_index":16608,"title":{},"body":{"modules/RedisModule.html":{}}}],["cluster_rolemodule",{"_index":16816,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_exports",{"_index":16818,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_rolemodule_providers",{"_index":16817,"title":{},"body":{"modules/RoleModule.html":{}}}],["cluster_schoolexternaltoolmodule",{"_index":17381,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_exports",{"_index":17382,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_imports",{"_index":17383,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_schoolexternaltoolmodule_providers",{"_index":17384,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["cluster_serverconsolemodule",{"_index":17753,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_serverconsolemodule_imports",{"_index":17754,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["cluster_servermodule",{"_index":17767,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servermodule_imports",{"_index":17768,"title":{},"body":{"modules/ServerModule.html":{}}}],["cluster_servertestmodule",{"_index":17847,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_servertestmodule_imports",{"_index":17848,"title":{},"body":{"modules/ServerTestModule.html":{}}}],["cluster_sharingapimodule",{"_index":18120,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_imports",{"_index":18121,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingapimodule_providers",{"_index":18122,"title":{},"body":{"modules/SharingApiModule.html":{}}}],["cluster_sharingmodule",{"_index":18127,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_exports",{"_index":18128,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_imports",{"_index":18130,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_sharingmodule_providers",{"_index":18129,"title":{},"body":{"modules/SharingModule.html":{}}}],["cluster_systemapimodule",{"_index":18523,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_imports",{"_index":18525,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemapimodule_providers",{"_index":18524,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["cluster_systemmodule",{"_index":18635,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_exports",{"_index":18638,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_imports",{"_index":18636,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_systemmodule_providers",{"_index":18637,"title":{},"body":{"modules/SystemModule.html":{}}}],["cluster_taskapimodule",{"_index":18773,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_imports",{"_index":18774,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskapimodule_providers",{"_index":18775,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["cluster_taskmodule",{"_index":18955,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_exports",{"_index":18957,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_imports",{"_index":18956,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_taskmodule_providers",{"_index":18958,"title":{},"body":{"modules/TaskModule.html":{}}}],["cluster_teamsapimodule",{"_index":19384,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsapimodule_imports",{"_index":19385,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["cluster_teamsmodule",{"_index":19389,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_exports",{"_index":19390,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_teamsmodule_providers",{"_index":19391,"title":{},"body":{"modules/TeamsModule.html":{}}}],["cluster_toolapimodule",{"_index":19513,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_imports",{"_index":19515,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toolapimodule_providers",{"_index":19514,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["cluster_toollaunchmodule",{"_index":19773,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_exports",{"_index":19775,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_imports",{"_index":19776,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toollaunchmodule_providers",{"_index":19774,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["cluster_toolmodule",{"_index":19837,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_exports",{"_index":19839,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_imports",{"_index":19840,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_toolmodule_providers",{"_index":19838,"title":{},"body":{"modules/ToolModule.html":{}}}],["cluster_userapimodule",{"_index":20015,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_imports",{"_index":20016,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userapimodule_providers",{"_index":20017,"title":{},"body":{"modules/UserApiModule.html":{}}}],["cluster_userloginmigrationapimodule",{"_index":20243,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_imports",{"_index":20245,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationapimodule_providers",{"_index":20244,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["cluster_userloginmigrationmodule",{"_index":20384,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_exports",{"_index":20385,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_imports",{"_index":20387,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_userloginmigrationmodule_providers",{"_index":20386,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["cluster_usermodule",{"_index":20674,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_exports",{"_index":20676,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_imports",{"_index":20675,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_usermodule_providers",{"_index":20677,"title":{},"body":{"modules/UserModule.html":{}}}],["cluster_videoconferenceapimodule",{"_index":20866,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_imports",{"_index":20867,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferenceapimodule_providers",{"_index":20868,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["cluster_videoconferencemodule",{"_index":21148,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_exports",{"_index":21150,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_imports",{"_index":21151,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["cluster_videoconferencemodule_providers",{"_index":21149,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["code",{"_index":1253,"title":{"additional-documentation/nestjs-application/code-style.html":{}},"body":{"injectables/AccountValidationService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/ConsentRequestBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/FeathersError.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISubmissionProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConnectionError.html":{},"classes/LoginRequestBody.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OAuthService.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthUc.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/StatelessAuthorizationParams.html":{},"entities/Submission.html":{},"classes/SystemFactory.html":{},"classes/TokenRequestMapper.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationError.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["code.enum",{"_index":15032,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["codebase",{"_index":22524,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["coded",{"_index":11282,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["coersion",{"_index":10536,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["cohesion",{"_index":22550,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["collaborative",{"_index":4482,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/NextcloudStrategy.html":{}}}],["collaborativestorage",{"_index":11100,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["collaborativestorageadapter",{"_index":4476,"title":{"injectables/CollaborativeStorageAdapter.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["collaborativestorageadaptermapper",{"_index":4494,"title":{"injectables/CollaborativeStorageAdapterMapper.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["collaborativestorageadaptermodule",{"_index":4545,"title":{"modules/CollaborativeStorageAdapterModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules.html":{}}}],["collaborativestoragecontroller",{"_index":4567,"title":{"controllers/CollaborativeStorageController.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["collaborativestoragemodule",{"_index":4600,"title":{"modules/CollaborativeStorageModule.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["collaborativestorageservice",{"_index":4605,"title":{"injectables/CollaborativeStorageService.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collaborativestorageuc",{"_index":4589,"title":{"injectables/CollaborativeStorageUc.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["collect",{"_index":22165,"title":{},"body":{"license.html":{}}}],["collectdefaultmetrics",{"_index":16209,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collected",{"_index":16261,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting",{"_index":16260,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_default_metrics_disabled",{"_index":16259,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collecting_metrics_route_metrics_disabled",{"_index":16262,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collection",{"_index":1910,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"entities/News.html":{},"interfaces/Options.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["collection(this",{"_index":2678,"title":{},"body":{"entities/Board.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/LessonEntity.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{}}}],["collection.deletemany",{"_index":7758,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.find({}).toarray",{"_index":7756,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.insertmany(jsondocuments",{"_index":7753,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collection.name",{"_index":7763,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionexists",{"_index":7724,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionexists(collectionname",{"_index":7733,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname",{"_index":7694,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter",{"_index":11150,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter.length",{"_index":11158,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnamefilter?.includes(collectionname",{"_index":11161,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionnames",{"_index":7761,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collectionname}.json",{"_index":11142,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionname}:${data.length",{"_index":11181,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections",{"_index":7653,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{},"injectables/PermissionService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["collections.includes(collectionname",{"_index":7765,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.includes(data.collectionname",{"_index":11176,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.length",{"_index":11175,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collections.map((collection",{"_index":7762,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["collections.map((collectionname",{"_index":11140,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport",{"_index":11210,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoexport.map(async",{"_index":11212,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed",{"_index":11189,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionstoseed.map(async",{"_index":11191,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectionswithfilepaths",{"_index":11139,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["collectmetricsroutemetrics",{"_index":16210,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["collects",{"_index":23112,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["color",{"_index":6364,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["column",{"_index":2697,"title":{"classes/Column.html":{}},"body":{"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsService.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["column.'})@apiresponse({status",{"_index":4856,"title":{},"body":{"controllers/ColumnController.html":{}}}],["column.addchild(card",{"_index":4760,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["column.body.params.ts",{"_index":14565,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:11",{"_index":14567,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.body.params.ts:19",{"_index":14568,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["column.children.map((card",{"_index":4899,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.constructor.name",{"_index":3677,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["column.createdat",{"_index":4903,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["column.do",{"_index":2877,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["column.id",{"_index":4897,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.response",{"_index":3665,"title":{},"body":{"classes/BoardResponse.html":{}}}],["column.title",{"_index":4898,"title":{},"body":{"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["column.updatedat",{"_index":4902,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["columnboard",{"_index":2861,"title":{"classes/ColumnBoard.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardResponseMapper.html":{},"injectables/BoardUc.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoomsService.html":{}}}],["columnboard.addchild(column",{"_index":4754,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["columnboard.context",{"_index":16572,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.id",{"_index":16568,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboard.title",{"_index":16569,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["columnboardboardelement",{"_index":2696,"title":{"entities/ColumnboardBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardRepo.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardelements",{"_index":3655,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["columnboardfactory",{"_index":4704,"title":{"classes/ColumnBoardFactory.html":{}},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardfactory.define(columnboard",{"_index":4710,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["columnboardid",{"_index":2777,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardids",{"_index":4837,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardids.length",{"_index":17028,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardids.map((id",{"_index":4845,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardids.push(columnboard.id",{"_index":17030,"title":{},"body":{"injectables/RoomsService.html":{}}}],["columnboardinfo",{"_index":16928,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.columnboardid",{"_index":16931,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.createdat",{"_index":16934,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.id",{"_index":16930,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.published",{"_index":16933,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.title",{"_index":16932,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardinfo.updatedat",{"_index":16935,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardmetadata",{"_index":7949,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["columnboardnode",{"_index":3171,"title":{"entities/ColumnBoardNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["columnboardnodefactory",{"_index":3496,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodefactory.build",{"_index":3501,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnboardnodeprops",{"_index":4717,"title":{"interfaces/ColumnBoardNodeProps.html":{}},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["columnboardprops",{"_index":4703,"title":{"interfaces/ColumnBoardProps.html":{}},"body":{"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{}}}],["columnboardservice",{"_index":3536,"title":{"injectables/ColumnBoardService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/RoomsService.html":{}}}],["columnboardtarget",{"_index":2698,"title":{"entities/ColumnBoardTarget.html":{}},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/ColumnboardBoardElement.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{}}}],["columnboardtarget.columnboardid",{"_index":7996,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.createdat",{"_index":7998,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.id",{"_index":7995,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.published",{"_index":8000,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.title",{"_index":7997,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtarget.updatedat",{"_index":7999,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["columnboardtargetprops",{"_index":4822,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["columnboardtargets",{"_index":4844,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["columnboardtargetservice",{"_index":4828,"title":{"injectables/ColumnBoardTargetService.html":{}},"body":{"injectables/ColumnBoardTargetService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{}}}],["columncontroller",{"_index":2763,"title":{"controllers/ColumnController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ColumnController.html":{}}}],["columnid",{"_index":3772,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{}}}],["columnnode",{"_index":3168,"title":{"entities/ColumnNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/ColumnNode.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["columnnodefactory",{"_index":3497,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnnodefactory.build",{"_index":3518,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnprops",{"_index":4687,"title":{"interfaces/ColumnProps.html":{}},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["columnresponse",{"_index":2957,"title":{"classes/ColumnResponse.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper",{"_index":2961,"title":{"classes/ColumnResponseMapper.html":{}},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{}}}],["columnresponsemapper.maptoresponse(column",{"_index":2982,"title":{},"body":{"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{}}}],["columnresponse})@apiresponse({status",{"_index":2929,"title":{},"body":{"controllers/BoardController.html":{}}}],["columns",{"_index":3224,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/ColumnController.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["columns.map((column",{"_index":3506,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["columnservice",{"_index":3537,"title":{"injectables/ColumnService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/ColumnService.html":{}}}],["columnurlparams",{"_index":4854,"title":{"classes/ColumnUrlParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{}}}],["colums",{"_index":7346,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["combination",{"_index":16476,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["combinations",{"_index":22958,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["combine",{"_index":22175,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["combined",{"_index":18138,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["combineduri",{"_index":20646,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.pathname",{"_index":20648,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combineduri.tostring",{"_index":20649,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["combines",{"_index":23142,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["come",{"_index":21552,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["comes",{"_index":18337,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"license.html":{}}}],["coming",{"_index":23059,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["command",{"_index":3457,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["command({command",{"_index":3453,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/KeycloakConsole.html":{},"classes/ServerConsole.html":{}}}],["commander",{"_index":21386,"title":{},"body":{"dependencies.html":{}}}],["commandname",{"_index":13039,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["commandoption",{"_index":11569,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["commandoutput",{"_index":17153,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["commandresponse",{"_index":19450,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["commands",{"_index":11580,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["comment",{"_index":8686,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/UserRepo.html":{}}}],["comments",{"_index":22902,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["commercial",{"_index":21967,"title":{},"body":{"license.html":{}}}],["commit",{"_index":21655,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["commitment",{"_index":22117,"title":{},"body":{"license.html":{}}}],["commits",{"_index":22899,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["committing",{"_index":21650,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["common",{"_index":4969,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/ContextExternalToolModule.html":{},"injectables/CourseExportUc.html":{},"classes/CourseQueryParams.html":{},"modules/ExternalToolModule.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["common/domain",{"_index":194,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolVersionService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["common/entity",{"_index":5685,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["common/enum",{"_index":198,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["common/interface",{"_index":5615,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"controllers/ToolController.html":{}}}],["common/service",{"_index":5984,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceUc.html":{}}}],["common/uc/tool",{"_index":5954,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["commoncartridgeexportservice",{"_index":4929,"title":{"injectables/CommonCartridgeExportService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomModule.html":{}}}],["commoncartridgefilebuilder",{"_index":4944,"title":{"classes/CommonCartridgeFileBuilder.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeintendedusetype",{"_index":4967,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeintendedusetype.assignment",{"_index":5034,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeintendedusetype.unspecified",{"_index":5010,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeltiresource",{"_index":5101,"title":{"classes/CommonCartridgeLtiResource.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeltiresource(props",{"_index":5238,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgemanifestelement",{"_index":5064,"title":{"classes/CommonCartridgeManifestElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgemetadataelement",{"_index":5166,"title":{"classes/CommonCartridgeMetadataElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["commoncartridgemetadataelement(this.metadataprops).transform",{"_index":5183,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeorganizationbuilder",{"_index":5070,"title":{"classes/CommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationbuilder(props",{"_index":5081,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement",{"_index":5068,"title":{"classes/CommonCartridgeOrganizationItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationitemelement(this.props",{"_index":5071,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeorganizationwrapperelement",{"_index":5167,"title":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["commoncartridgeorganizationwrapperelement(this.organizations).transform",{"_index":5184,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeresourceitemelement",{"_index":5066,"title":{"classes/CommonCartridgeResourceItemElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(props",{"_index":5076,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourceitemelement(resourceprops",{"_index":5073,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeresourcetype",{"_index":4968,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.lti",{"_index":5112,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeresourcetype.web_content",{"_index":5008,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgeresourcetype.web_link_v1",{"_index":5017,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcetype.web_link_v3",{"_index":5016,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeresourcewrapperelement",{"_index":5169,"title":{"classes/CommonCartridgeResourceWrapperElement.html":{}},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["commoncartridgeresourcewrapperelement(this.resources).transform",{"_index":5185,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["commoncartridgeversion",{"_index":4946,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CourseExportUc.html":{},"classes/CourseQueryParams.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["commoncartridgeversion.v_1_1_0",{"_index":5033,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commoncartridgeversion.v_1_3_0",{"_index":5015,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgewebcontentresource",{"_index":5232,"title":{"classes/CommonCartridgeWebContentResource.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["commoncartridgewebcontentresource(props",{"_index":5239,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commoncartridgeweblinkresourceelement",{"_index":5234,"title":{"classes/CommonCartridgeWebLinkResourceElement.html":{}},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commoncartridgeweblinkresourceelement(props",{"_index":5240,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["commonobject",{"_index":5113,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$.xmlns",{"_index":5134,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:blti",{"_index":5136,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticm",{"_index":5138,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xmlns:lticp",{"_index":5140,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonobject.cartridge_basiclti_link.$['xsi:schemalocation",{"_index":5142,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["commonprops",{"_index":5001,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["commontags",{"_index":5257,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["commontoolmodule",{"_index":5267,"title":{"modules/CommonToolModule.html":{}},"body":{"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["commontoolservice",{"_index":5272,"title":{"injectables/CommonToolService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceUc.html":{}}}],["commontoolvalidationservice",{"_index":5273,"title":{"injectables/CommonToolValidationService.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["commontoolvalidationservice.typecheckers[type",{"_index":5335,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["communicate",{"_index":23126,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["communication",{"_index":21816,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["community",{"_index":21682,"title":{},"body":{"license.html":{}}}],["comparator",{"_index":22608,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["comparealphabetic",{"_index":2727,"title":{},"body":{"entities/Board.html":{}}}],["compared",{"_index":22911,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["compareparameters",{"_index":9265,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["compareparameters(oldparams",{"_index":9273,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["comparepassword",{"_index":92,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["compass",{"_index":22863,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["compatible",{"_index":22340,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["compilation",{"_index":21896,"title":{},"body":{"license.html":{}}}],["compilation's",{"_index":21903,"title":{},"body":{"license.html":{}}}],["compilations",{"_index":22148,"title":{},"body":{"license.html":{}}}],["compile",{"_index":19448,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["compiler",{"_index":21805,"title":{},"body":{"license.html":{}}}],["complete",{"_index":14497,"title":{},"body":{"classes/MigrationMayNotBeCompleted.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["completed",{"_index":3247,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/BoardManagementConsole.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/ElementUc.html":{},"classes/MigrationMayBeCompleted.html":{},"interfaces/Options.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["completed(value",{"_index":18303,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["completed.loggable.ts",{"_index":14490,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:3",{"_index":14492,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completed.loggable.ts:6",{"_index":14493,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["completion",{"_index":22817,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["completly",{"_index":23111,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["complex",{"_index":13413,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["complexity",{"_index":23027,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["compliance",{"_index":22077,"title":{},"body":{"license.html":{}}}],["comply",{"_index":21831,"title":{},"body":{"license.html":{}}}],["compodoc",{"_index":22430,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["component",{"_index":5566,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["component.constructor.name",{"_index":5592,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["components",{"_index":21633,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["componentstatus",{"_index":13826,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["componenttype",{"_index":4965,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["componenttype.etherpad",{"_index":5018,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["componenttype.geogebra",{"_index":5013,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["componenttype.internal",{"_index":11321,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["componenttype.lernstore",{"_index":11322,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["componenttype.nexboard",{"_index":11323,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["componenttype.text",{"_index":5007,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["composedname",{"_index":6274,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["composite",{"_index":2846,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["composite.do",{"_index":3995,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["composite.do.ts",{"_index":2793,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["composite.do.ts:11",{"_index":2822,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:15",{"_index":2824,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:19",{"_index":2810,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:33",{"_index":2815,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:35",{"_index":2817,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:39",{"_index":2813,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:45",{"_index":2803,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:47",{"_index":2807,"title":{},"body":{"classes/BoardComposite.html":{}}}],["composite.do.ts:7",{"_index":2820,"title":{},"body":{"classes/BoardComposite.html":{}}}],["compression",{"_index":21388,"title":{},"body":{"dependencies.html":{}}}],["computer",{"_index":21762,"title":{},"body":{"license.html":{}}}],["concatenating",{"_index":14892,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["concept",{"_index":22564,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concepts",{"_index":22562,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concern",{"_index":22496,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["concerns",{"_index":22182,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["concrete",{"_index":22628,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["concurrently",{"_index":21390,"title":{},"body":{"dependencies.html":{}}}],["cond",{"_index":19095,"title":{},"body":{"injectables/TaskRule.html":{}}}],["condition",{"_index":22717,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["conditioned",{"_index":22142,"title":{},"body":{"license.html":{}}}],["conditions",{"_index":21735,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["conf",{"_index":2343,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference",{"_index":7869,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"interfaces/IVideoConferenceSettings.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["conference.'})@apiresponse({status",{"_index":20894,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference.controller.ts",{"_index":20888,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:106",{"_index":20901,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:133",{"_index":20897,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:45",{"_index":20912,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.controller.ts:78",{"_index":20907,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["conference.do.ts",{"_index":21004,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:19",{"_index":21007,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:21",{"_index":21008,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:23",{"_index":21005,"title":{},"body":{"classes/VideoConferenceDO.html":{}}}],["conference.do.ts:5",{"_index":21165,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:7",{"_index":21166,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.do.ts:9",{"_index":21164,"title":{},"body":{"classes/VideoConferenceOptionsDO.html":{}}}],["conference.entity",{"_index":21185,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.entity.ts",{"_index":20837,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:10",{"_index":21162,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:12",{"_index":21163,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:14",{"_index":21161,"title":{},"body":{"classes/VideoConferenceOptions.html":{}}}],["conference.entity.ts:31",{"_index":20840,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:34",{"_index":20841,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.entity.ts:37",{"_index":20839,"title":{},"body":{"entities/VideoConference.html":{}}}],["conference.mapper",{"_index":20915,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["conference.mapper.ts",{"_index":21120,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:31",{"_index":21126,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:38",{"_index":21128,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:44",{"_index":21132,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.mapper.ts:48",{"_index":21130,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference.module",{"_index":20875,"title":{},"body":{"modules/VideoConferenceApiModule.html":{}}}],["conference.module.ts",{"_index":21153,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo",{"_index":21156,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conference.repo.ts",{"_index":21178,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:20",{"_index":21183,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.repo.ts:28",{"_index":21181,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["conference.service.ts",{"_index":21224,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:113",{"_index":21259,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:130",{"_index":21265,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:144",{"_index":21261,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:148",{"_index":21252,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:175",{"_index":21254,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:189",{"_index":21250,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:198",{"_index":21244,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:223",{"_index":21263,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:34",{"_index":21238,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:46",{"_index":21267,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:50",{"_index":21269,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:54",{"_index":21242,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:61",{"_index":21257,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:87",{"_index":21248,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.service.ts:95",{"_index":21246,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference.ts",{"_index":20856,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:10",{"_index":20857,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:6",{"_index":20860,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference.ts:8",{"_index":20858,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["conference/bbb/bbb",{"_index":11094,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["conference/bbb/bbb.service.ts",{"_index":2281,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:107",{"_index":2314,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:136",{"_index":2305,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:14",{"_index":2292,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:150",{"_index":2323,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:167",{"_index":2316,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:21",{"_index":2327,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:25",{"_index":2329,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:29",{"_index":2331,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:39",{"_index":2295,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:61",{"_index":2312,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:72",{"_index":2320,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/bbb.service.ts:84",{"_index":2302,"title":{},"body":{"injectables/BBBService.html":{}}}],["conference/bbb/builder/bbb",{"_index":2153,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["conference/bbb/builder/builder.ts",{"_index":3863,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:2",{"_index":3865,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/builder/builder.ts:8",{"_index":3867,"title":{},"body":{"classes/Builder.html":{}}}],["conference/bbb/request/bbb",{"_index":2091,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["conference/bbb/response/bbb",{"_index":2101,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["conference/bbb/response/bbb.response.ts",{"_index":2279,"title":{},"body":{"interfaces/BBBResponse.html":{}}}],["conference/controller/dto/request/video",{"_index":20941,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["conference/controller/dto/response/video",{"_index":7868,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["conference/controller/video",{"_index":20887,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["conference/error/error",{"_index":21056,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/error/invalid",{"_index":12584,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["conference/interface/video",{"_index":12120,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["conference/mapper/vc",{"_index":21203,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["conference/mapper/video",{"_index":21119,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["conference/service/video",{"_index":21223,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["conference/uc/dto/scope",{"_index":11742,"title":{},"body":{"interfaces/IScopeInfo.html":{},"classes/ScopeRef.html":{}}}],["conference/uc/dto/video",{"_index":20855,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["conference/uc/video",{"_index":20959,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["conference/video",{"_index":17799,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["conferences",{"_index":21159,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["conferencescope",{"_index":21256,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["config",{"_index":154,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"classes/IdentityManagementOauthService.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapService.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"classes/SystemFilterParams.html":{},"modules/ToolConfigModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["config.'})@isoptional()@isboolean()@stringtoboolean",{"_index":18613,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["config.allowmodstounmuteusers",{"_index":2149,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.attendeepw",{"_index":2147,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.builder.ts",{"_index":2154,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:10",{"_index":2237,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:11",{"_index":2170,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:15",{"_index":2239,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:16",{"_index":2164,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:21",{"_index":2168,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.builder.ts:5",{"_index":2235,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["config.builder.ts:6",{"_index":2166,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["config.connectionname",{"_index":17205,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["config.do",{"_index":2608,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts",{"_index":2602,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:11",{"_index":14182,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:13",{"_index":14183,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:15",{"_index":14180,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:17",{"_index":15169,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:4",{"_index":2604,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalToolConfig.html":{}}}],["config.do.ts:5",{"_index":14181,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:6",{"_index":8341,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["config.do.ts:7",{"_index":14185,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.do.ts:9",{"_index":14184,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["config.dto",{"_index":18578,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["config.dto.ts",{"_index":15290,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:1",{"_index":15858,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:10",{"_index":15296,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:12",{"_index":15304,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:14",{"_index":15293,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:16",{"_index":15302,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:18",{"_index":15303,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:2",{"_index":15294,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:20",{"_index":15300,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:22",{"_index":15299,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:24",{"_index":15298,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:26",{"_index":15292,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/OidcConfigDto.html":{}}}],["config.dto.ts:28",{"_index":15860,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:30",{"_index":15859,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["config.dto.ts:4",{"_index":15295,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:6",{"_index":15297,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.dto.ts:8",{"_index":15301,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["config.entity",{"_index":2619,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts",{"_index":2613,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:10",{"_index":8346,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:11",{"_index":15187,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:12",{"_index":14206,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:15",{"_index":14205,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:18",{"_index":14203,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:21",{"_index":14204,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:24",{"_index":14201,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.entity.ts:6",{"_index":2615,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["config.entity.ts:7",{"_index":8347,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["config.entity.ts:8",{"_index":15188,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["config.entity.ts:9",{"_index":14202,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["config.frontchannellogouturi",{"_index":9162,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.fullname",{"_index":2221,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guest",{"_index":2226,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.guestpolicy",{"_index":2143,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.json",{"_index":22936,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["config.key",{"_index":14235,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.launch_presentation_locale",{"_index":14242,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.logouturl",{"_index":2139,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.lti_message_type",{"_index":14237,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.meetingid",{"_index":2099,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"injectables/BBBService.html":{}}}],["config.moderatorpw",{"_index":2145,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.module",{"_index":8637,"title":{},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{}}}],["config.module.ts",{"_index":19529,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["config.name",{"_index":2137,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config.params",{"_index":2631,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["config.params.ts",{"_index":2625,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:4",{"_index":8344,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.params.ts:6",{"_index":8343,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["config.privacy_permission",{"_index":14244,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.redirect",{"_index":2228,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.redirecturis",{"_index":9160,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.resource_link_id",{"_index":14239,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.response",{"_index":2640,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["config.response.ts",{"_index":2635,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:10",{"_index":2637,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["config.response.ts:13",{"_index":14209,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:16",{"_index":14212,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfigResponse.html":{}}}],["config.response.ts:19",{"_index":14210,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:22",{"_index":14211,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:23",{"_index":15329,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:25",{"_index":14208,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:28",{"_index":15192,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["config.response.ts:30",{"_index":15324,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:37",{"_index":15332,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:4",{"_index":8350,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:44",{"_index":15322,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:51",{"_index":15330,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:58",{"_index":15331,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:6",{"_index":8349,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["config.response.ts:65",{"_index":15328,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:72",{"_index":15327,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:79",{"_index":15326,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:86",{"_index":15321,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.response.ts:9",{"_index":15323,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["config.role",{"_index":2223,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.scope",{"_index":9156,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.secret",{"_index":14236,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.tokenendpointauthmethod",{"_index":9158,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["config.ts",{"_index":11092,"title":{},"body":{"interfaces/IAccountConfig.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserConfig.html":{},"classes/KeycloakAdministration.html":{},"classes/KeycloakConfiguration.html":{},"classes/ToolConfiguration.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:12",{"_index":20886,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.ts:14",{"_index":19531,"title":{},"body":{"classes/ToolConfiguration.html":{}}}],["config.ts:4",{"_index":12820,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["config.ts:5",{"_index":12747,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["config.ts:6",{"_index":20883,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["config.type",{"_index":8339,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["config.userid",{"_index":2224,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["config.welcome",{"_index":2141,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["config/development.json",{"_index":11420,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config/test.json",{"_index":11422,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["config['meta_bbb",{"_index":2151,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["configbuilder",{"_index":20991,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withguestpolicy(guestpolicy.ask_moderator",{"_index":20997,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configbuilder.withmuteonstart(true",{"_index":20999,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["configmodule",{"_index":10253,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(config",{"_index":10265,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{}}}],["configmodule.forroot(createconfigmoduleoptions(serverconfig",{"_index":14417,"title":{},"body":{"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configs",{"_index":12975,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/S3ClientModule.html":{}}}],["configs.flatmap((config",{"_index":17204,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["configservice",{"_index":789,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AuthenticationService.html":{},"controllers/CourseController.html":{},"modules/EncryptionModule.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICollectionFilePath.html":{},"modules/InterceptorModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"miscellaneous/functions.html":{}}}],["configservice.get('feature_identity_management_login_enabled",{"_index":835,"title":{},"body":{"modules/AccountModule.html":{}}}],["configservice.get('incoming_request_timeout",{"_index":12575,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["configservice.get('nest_log_level",{"_index":14050,"title":{},"body":{"modules/LoggerModule.html":{}}}],["configservice.get(aeskey",{"_index":8115,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["configtoupdate",{"_index":9211,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["configtype",{"_index":19755,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["configuration",{"_index":2171,"title":{"additional-documentation/nestjs-application/configuration.html":{}},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"injectables/CourseCopyUC.html":{},"classes/DtoCreator.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"interfaces/IToolFeatures.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/TaskCopyUC.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["configuration.console",{"_index":12833,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.console.ts",{"_index":11567,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:109",{"_index":13034,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:144",{"_index":13037,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:160",{"_index":13038,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:189",{"_index":13036,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:19",{"_index":13030,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:28",{"_index":13031,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:47",{"_index":13032,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:65",{"_index":13033,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.console.ts:87",{"_index":13040,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["configuration.controller",{"_index":12840,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.controller.ts",{"_index":13152,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:110",{"_index":19549,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:19",{"_index":13156,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration.controller.ts:39",{"_index":19543,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:61",{"_index":19539,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.controller.ts:87",{"_index":19553,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.externaltoolid",{"_index":5652,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.get",{"_index":11758,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('antivirus_exchange",{"_index":10269,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('antivirus_routing_key",{"_index":10270,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('calendar_uri",{"_index":3971,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('column_board_feedback_link",{"_index":4796,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('column_board_help_link",{"_index":4780,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('cookie__expires_seconds",{"_index":15785,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__http_only",{"_index":15778,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__same_site",{"_index":15780,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('cookie__secure",{"_index":15784,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["configuration.get('ctl_tools__external_tool_max_logo_size_in_bytes",{"_index":12088,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('enable_file_security_check",{"_index":10267,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('etherpad__pad_uri",{"_index":13796,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["configuration.get('feature_column_board_enabled",{"_index":7969,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{}}}],["configuration.get('feature_copy_service_enabled",{"_index":6587,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["configuration.get('feature_course_share_new",{"_index":18112,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_ctl_context_configuration_enabled",{"_index":12087,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_ctl_tools_tab_enabled",{"_index":12085,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_etherpad_enabled",{"_index":13778,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["configuration.get('feature_fwu_content_enabled",{"_index":10400,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["configuration.get('feature_identity_management_enabled",{"_index":11760,"title":{},"body":{"interfaces/IServerConfig.html":{},"classes/KeycloakAdministration.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["configuration.get('feature_identity_management_login_enabled",{"_index":11762,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_identity_management_store_enabled",{"_index":11761,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_imscc_course_export_enabled",{"_index":11759,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('feature_lesson_share",{"_index":18114,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_lti_tools_tab_enabled",{"_index":12086,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["configuration.get('feature_nexboard_enabled",{"_index":13780,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["configuration.get('feature_prometheus_metrics_enabled",{"_index":16235,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('feature_sanis_group_provisioning_enabled",{"_index":16001,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["configuration.get('feature_task_share",{"_index":18115,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["configuration.get('feature_videoconference_enabled",{"_index":20884,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('file_security_check_max_file_size",{"_index":11415,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__exchange",{"_index":11361,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["configuration.get('files_storage__incoming_request_timeout",{"_index":11411,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__max_file_size",{"_index":11414,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_access_key_id",{"_index":11426,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_bucket",{"_index":11425,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_endpoint",{"_index":11423,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_region",{"_index":11424,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__s3_secret_access_key",{"_index":11427,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["configuration.get('files_storage__service_base_url",{"_index":10268,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["configuration.get('host",{"_index":4809,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/HydraSsoService.html":{},"injectables/IdTokenService.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('hydra_public_uri",{"_index":10943,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["configuration.get('hydra_uri",{"_index":10893,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["configuration.get('i18n__available_languages",{"_index":11754,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('identity_management__admin_clientid",{"_index":12746,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_password",{"_index":12745,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__admin_user",{"_index":12744,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__clientid",{"_index":12743,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__tenant",{"_index":12742,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('identity_management__uri",{"_index":12741,"title":{},"body":{"classes/KeycloakAdministration.html":{}}}],["configuration.get('incoming_request_timeout_api",{"_index":11752,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('incoming_request_timeout_copy_api",{"_index":11413,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('login_block_time",{"_index":11757,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('mail_send_exchange",{"_index":16484,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('mail_send_routing_key",{"_index":17806,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('migration_end_grace_period_ms",{"_index":20466,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["configuration.get('nest_log_level",{"_index":11417,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('nextcloud_scopes",{"_index":11085,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["configuration.get('nextcloud_sociallogin_oidc_internal_name",{"_index":4566,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["configuration.get('node_env",{"_index":11756,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_default_metrics",{"_index":16238,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_collect_metrics_route_metrics",{"_index":16239,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_port",{"_index":16237,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('prometheus_metrics_route",{"_index":16236,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["configuration.get('public_backend_url",{"_index":12089,"title":{},"body":{"interfaces/IToolFeatures.html":{},"injectables/OAuthService.html":{},"classes/ToolConfiguration.html":{},"injectables/UserMigrationService.html":{}}}],["configuration.get('rabbitmq_uri",{"_index":16485,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["configuration.get('redis_uri",{"_index":3918,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["configuration.get('request_option__timeout_ms",{"_index":3973,"title":{},"body":{"injectables/CalendarService.html":{}}}],["configuration.get('rocket_chat_admin_id",{"_index":17809,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_password",{"_index":17812,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_token",{"_index":17810,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_admin_user",{"_index":17811,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('rocket_chat_uri",{"_index":17808,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('s3_key",{"_index":18190,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["configuration.get('sc_domain",{"_index":2182,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"interfaces/IServerConfig.html":{}}}],["configuration.get('sc_theme",{"_index":4807,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.get('session__expires_seconds",{"_index":17815,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__http_only",{"_index":17834,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__name",{"_index":17828,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__proxy",{"_index":17831,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__same_site",{"_index":17833,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secret",{"_index":17824,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('session__secure",{"_index":17832,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.get('videoconference_default_presentation",{"_index":20882,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_host",{"_index":20880,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get('videoconference_salt",{"_index":20881,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{}}}],["configuration.get(placeholder",{"_index":11262,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.has('column_board_feedback_link",{"_index":4794,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('column_board_help_link",{"_index":4778,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["configuration.has('redis_uri",{"_index":3901,"title":{},"body":{"injectables/CacheService.html":{},"modules/RedisModule.html":{}}}],["configuration.has('session__name",{"_index":17827,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has('session__proxy",{"_index":17830,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configuration.has(placeholder",{"_index":11261,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["configuration.logourl",{"_index":5657,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.mapper",{"_index":19557,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["configuration.mapper.ts",{"_index":19574,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:12",{"_index":19588,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:28",{"_index":19586,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:41",{"_index":19583,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.mapper.ts:60",{"_index":19580,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["configuration.module",{"_index":14410,"title":{},"body":{"modules/ManagementModule.html":{}}}],["configuration.module.ts",{"_index":12830,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["configuration.name",{"_index":5655,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.parameters",{"_index":5658,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.schoolexternaltoolid",{"_index":5654,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["configuration.service",{"_index":12837,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.service.ts",{"_index":8353,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:108",{"_index":12865,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:12",{"_index":8360,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:128",{"_index":12866,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:15",{"_index":8373,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:155",{"_index":12867,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:167",{"_index":12862,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:191",{"_index":12884,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:214",{"_index":12870,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:224",{"_index":12888,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:235",{"_index":12875,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:24",{"_index":8369,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:240",{"_index":12890,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:254",{"_index":12872,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:26",{"_index":12859,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:262",{"_index":12879,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:277",{"_index":12876,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:34",{"_index":12864,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configuration.service.ts:46",{"_index":8364,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.service.ts:77",{"_index":8375,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["configuration.uc",{"_index":11572,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["configuration.uc.ts",{"_index":8401,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:116",{"_index":8422,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:138",{"_index":8420,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:16",{"_index":13014,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:167",{"_index":8414,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:17",{"_index":8410,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:179",{"_index":8412,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:20",{"_index":13015,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:24",{"_index":13018,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:28",{"_index":8418,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:32",{"_index":13016,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.uc.ts:64",{"_index":8416,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["configuration.uc.ts:8",{"_index":13013,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configuration.version",{"_index":5660,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["configuration/console/keycloak",{"_index":11566,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configuration/controller/keycloak",{"_index":13151,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["configuration/interface/json",{"_index":11501,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["configuration/interface/keycloak",{"_index":11507,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["configuration/keycloak",{"_index":12816,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{}}}],["configuration/mapper/identity",{"_index":15883,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["configuration/service/keycloak",{"_index":12843,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["configuration/uc/keycloak",{"_index":13011,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["configurations",{"_index":11418,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["configure",{"_index":11610,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["configure(consumer",{"_index":17778,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["configure(options",{"_index":11611,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["configureaction",{"_index":12903,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.action",{"_index":12957,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.create",{"_index":12958,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.delete",{"_index":12962,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureaction.update",{"_index":12960,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureactions",{"_index":12955,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurebrokerflows",{"_index":12845,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configureclient",{"_index":12846,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configured",{"_index":14524,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["configureidentityproviders",{"_index":12847,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configurerealm",{"_index":12848,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["configures",{"_index":6326,"title":{},"body":{"modules/CoreModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["confirmed",{"_index":16091,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["confirmpassword",{"_index":16089,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["conflict",{"_index":6544,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["conflicts",{"_index":22561,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["conjunction",{"_index":22943,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["connect",{"_index":12948,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/LdapService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connect(system",{"_index":13291,"title":{},"body":{"injectables/LdapService.html":{}}}],["connected",{"_index":17548,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["connecting",{"_index":22360,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["connection",{"_index":11592,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connection.connected",{"_index":13298,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error",{"_index":13295,"title":{},"body":{"injectables/LdapService.html":{}}}],["connection.error.ts",{"_index":13281,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.error.ts:4",{"_index":13283,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["connection.managedconnection.close",{"_index":16490,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["connection.unbind",{"_index":13299,"title":{},"body":{"injectables/LdapService.html":{}}}],["connectionname",{"_index":6164,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/S3Config-1.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connections",{"_index":16487,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["connectredis",{"_index":17800,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis(session",{"_index":17818,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connectredis.redisstore",{"_index":17816,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["connects",{"_index":13157,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["consent",{"_index":339,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consent.params.ts",{"_index":16729,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.params.ts:7",{"_index":16730,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["consent.response",{"_index":16292,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consent_request",{"_index":16291,"title":{},"body":{"interfaces/ProviderConsentSessionResponse.html":{}}}],["consentflowuc",{"_index":15525,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequest",{"_index":15558,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["consentrequestbody",{"_index":5370,"title":{"classes/ConsentRequestBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["consentresponse",{"_index":5421,"title":{"classes/ConsentResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consentresponse.client?.client_id",{"_index":15466,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentresponse.requested_scope",{"_index":15465,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["consentsessionresponse",{"_index":5465,"title":{"classes/ConsentSessionResponse.html":{}},"body":{"classes/ConsentSessionResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["consequence",{"_index":22065,"title":{},"body":{"license.html":{}}}],["consequential",{"_index":22207,"title":{},"body":{"license.html":{}}}],["considerations",{"_index":22548,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["considered",{"_index":22033,"title":{},"body":{"license.html":{}}}],["consistent",{"_index":2184,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/GlobalErrorFilter.html":{},"license.html":{}}}],["console",{"_index":3458,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["console.info('info",{"_index":5489,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["console/board",{"_index":14411,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/database",{"_index":14413,"title":{},"body":{"modules/ManagementModule.html":{}}}],["console/keycloak",{"_index":12832,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["consolelogger",{"_index":13419,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["consolemodule",{"_index":17760,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["consolewriter",{"_index":3451,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{}}}],["consolewritermodule",{"_index":3533,"title":{"modules/ConsoleWriterModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["consolewriterservice",{"_index":3448,"title":{"injectables/ConsoleWriterService.html":{}},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{}}}],["conspicuously",{"_index":21873,"title":{},"body":{"license.html":{}}}],["const",{"_index":217,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextTypeMapper.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"interfaces/CreateJwtParams.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateService.html":{},"classes/FileDtoBuilder.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveSaveVisitor.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInfoMapper.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["constants",{"_index":1650,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{},"injectables/S3ClientAdapter.html":{}}}],["constitutes",{"_index":21825,"title":{},"body":{"license.html":{}}}],["constraint",{"_index":16479,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["constructor",{"_index":127,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ColumnResponse.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"injectables/CopyFilesService.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorResponse.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateService.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/LoginUc.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/MaterialFactory.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichText.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemResponse.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoResponse.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["constructor(@inject(defaultencryptionservice",{"_index":15890,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(@inject(mikroorm",{"_index":14546,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["constructor(@inject(request",{"_index":9440,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["constructor(@inject(toolfeatures",{"_index":8376,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["constructor(@inject(winston_module_provider",{"_index":8193,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["constructor(_em",{"_index":2394,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["constructor(accountdb",{"_index":1050,"title":{},"body":{"injectables/AccountService.html":{}}}],["constructor(accountrepo",{"_index":1163,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["constructor(adapter",{"_index":4620,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["constructor(amqpconnection",{"_index":1428,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{}}}],["constructor(apivalidationerror",{"_index":1502,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["constructor(app",{"_index":1728,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["constructor(authenticationservice",{"_index":13994,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["constructor(authorisation",{"_index":13830,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["constructor(authorisationservice",{"_index":16875,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["constructor(authorization",{"_index":6578,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["constructor(authorizationhelper",{"_index":3353,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["constructor(authorizationservice",{"_index":3767,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["constructor(authservice",{"_index":14152,"title":{},"body":{"injectables/LoginUc.html":{}}}],["constructor(bbbservice",{"_index":20965,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["constructor(bbbsettings",{"_index":2289,"title":{},"body":{"injectables/BBBService.html":{}}}],["constructor(boarddorepo",{"_index":3120,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["constructor(cachemanager",{"_index":12715,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["constructor(classesrepo",{"_index":4398,"title":{},"body":{"injectables/ClassService.html":{}}}],["constructor(client",{"_index":17104,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["constructor(clientid",{"_index":5469,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/IdTokenCreationLoggableException.html":{}}}],["constructor(columnboardservice",{"_index":4833,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["constructor(config",{"_index":2095,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["constructor(configuration",{"_index":5642,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["constructor(consentresponse",{"_index":5429,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["constructor(console",{"_index":13029,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["constructor(consolewriter",{"_index":3447,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ServerConsole.html":{}}}],["constructor(content",{"_index":5561,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["constructor(contextexternaltool",{"_index":14520,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["constructor(contextexternaltoolrepo",{"_index":5629,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{}}}],["constructor(contextexternaltoolservice",{"_index":5975,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["constructor(copyhelperservice",{"_index":6192,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{}}}],["constructor(county",{"_index":6345,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["constructor(courseexportservice",{"_index":6591,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["constructor(courserepo",{"_index":6521,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{},"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["constructor(courserule",{"_index":17065,"title":{},"body":{"injectables/RuleManager.html":{}}}],["constructor(courseservice",{"_index":4939,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["constructor(customkey",{"_index":18182,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["constructor(dashboardrepo",{"_index":7618,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["constructor(data",{"_index":1009,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Page.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["constructor(defaultencryptionservice",{"_index":15886,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["constructor(deletefilesuc",{"_index":7773,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["constructor(descendants",{"_index":3197,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["constructor(descriptionoroptions",{"_index":13249,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["constructor(details",{"_index":13282,"title":{},"body":{"classes/LdapConnectionError.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["constructor(domainobject",{"_index":7039,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(dto",{"_index":3929,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{}}}],["constructor(e",{"_index":1297,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["constructor(em",{"_index":3280,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/ClassesRepo.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["constructor(entityclass",{"_index":2528,"title":{},"body":{"classes/BaseFactory.html":{}}}],["constructor(entityname",{"_index":8121,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["constructor(error",{"_index":8130,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["constructor(externaltoolid",{"_index":8545,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["constructor(externaltoollogo",{"_index":8522,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["constructor(externaltoolrepo",{"_index":9080,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["constructor(externaltoolservice",{"_index":8408,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolReferenceUc.html":{}}}],["constructor(externaluserid",{"_index":20684,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["constructor(feathersauthprovider",{"_index":9383,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["constructor(feathersserviceprovider",{"_index":8250,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/NexboardService.html":{}}}],["constructor(federalstaterepo",{"_index":9469,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["constructor(field",{"_index":20831,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(file",{"_index":9479,"title":{},"body":{"classes/FileDto.html":{}}}],["constructor(filerecord",{"_index":6087,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["constructor(filesrepo",{"_index":7801,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["constructor(filesstorageservice",{"_index":10169,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["constructor(group",{"_index":17544,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["constructor(grouprepo",{"_index":10711,"title":{},"body":{"injectables/GroupService.html":{}}}],["constructor(groupuser",{"_index":20202,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["constructor(httpservice",{"_index":3962,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthAdapterService.html":{}}}],["constructor(id",{"_index":2381,"title":{},"body":{"classes/BaseDO.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/ScopeRef.html":{}}}],["constructor(idmservice",{"_index":787,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["constructor(info",{"_index":1557,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["constructor(init",{"_index":3864,"title":{},"body":{"classes/Builder.html":{}}}],["constructor(inusermigration",{"_index":14491,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["constructor(jwtservice",{"_index":1788,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["constructor(jwtvalidationadapter",{"_index":12688,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["constructor(kcadmin",{"_index":12857,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["constructor(kcadminclient",{"_index":12775,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["constructor(kcadminservice",{"_index":13044,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["constructor(key",{"_index":7032,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["constructor(ldapconfig",{"_index":11876,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["constructor(lessonrepo",{"_index":13942,"title":{},"body":{"injectables/LessonService.html":{}}}],["constructor(logger",{"_index":2993,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ErrorLogger.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"injectables/LdapService.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"injectables/NextcloudStrategy.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["constructor(loginresponse",{"_index":14128,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["constructor(logourl",{"_index":8531,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["constructor(logouturl",{"_index":12587,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["constructor(ltirepo",{"_index":11006,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["constructor(ltitoolrepo",{"_index":14386,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["constructor(ltitoolservice",{"_index":15578,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["constructor(message",{"_index":1884,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/ForbiddenOperationError.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/ValidationError.html":{}}}],["constructor(newsrepo",{"_index":14797,"title":{},"body":{"injectables/NewsUc.html":{}}}],["constructor(oauthconfig",{"_index":11853,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["constructor(oauthconfigdto",{"_index":15291,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["constructor(oauthconfigresponse",{"_index":15320,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["constructor(oauthproviderloginflowservice",{"_index":12142,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["constructor(oauthproviderservice",{"_index":15421,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["constructor(oauthservice",{"_index":10932,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["constructor(officialschoolnumber",{"_index":17682,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["constructor(oidcconfig",{"_index":11920,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["constructor(oidcconfigdto",{"_index":15857,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["constructor(oidcprovisioningservice",{"_index":15990,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["constructor(operation",{"_index":14640,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["constructor(operator",{"_index":17722,"title":{},"body":{"classes/Scope.html":{}}}],["constructor(options",{"_index":5044,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["constructor(organizationelements",{"_index":5216,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["constructor(parametertype",{"_index":16067,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["constructor(params",{"_index":13485,"title":{},"body":{"classes/LegacySchoolDo.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["constructor(payload",{"_index":17980,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["constructor(private",{"_index":215,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/BaseFactory.html":{},"controllers/BoardController.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"controllers/DashboardController.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"classes/ErrorLoggable.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateService.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"classes/IdTokenCreationLoggableException.html":{},"controllers/ImportUserController.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/LdapService.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRule.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/LtiToolService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"controllers/NewsController.html":{},"injectables/NexboardService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"interfaces/Options.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearService.html":{},"classes/ServerConsole.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRule.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"controllers/UserController.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"controllers/UserMigrationController.html":{},"injectables/UserRule.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["constructor(props",{"_index":405,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthorizableObject.html":{},"classes/AxiosResponseImp.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextRef.html":{},"classes/CookiesDto.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DomainObject.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalUserDto.html":{},"entities/FederalState.html":{},"classes/FileDto-1.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/GridElement.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OidcConfig.html":{},"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{},"classes/PropertyData.html":{},"classes/ProvisioningSystemDto.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"classes/ScanResultDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["constructor(protected",{"_index":2435,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"interfaces/IDashboardRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["constructor(provisioningdto",{"_index":16298,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["constructor(pseudonymrepo",{"_index":16398,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["constructor(readonly",{"_index":1489,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/EntityNotFoundError.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["constructor(redirectreponse",{"_index":16599,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["constructor(relation",{"_index":10699,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["constructor(repo",{"_index":6673,"title":{},"body":{"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/FilesService.html":{}}}],["constructor(req",{"_index":16632,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(request",{"_index":9451,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["constructor(requesttimeout",{"_index":19469,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["constructor(res",{"_index":16652,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["constructor(resourceelements",{"_index":5245,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["constructor(resourcename",{"_index":14974,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["constructor(resp",{"_index":7873,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["constructor(response",{"_index":5833,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/OAuthProcessDto.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["constructor(responsemapper",{"_index":17252,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["constructor(rolerepo",{"_index":16854,"title":{},"body":{"injectables/RoleService.html":{}}}],["constructor(roleservice",{"_index":16871,"title":{},"body":{"injectables/RoleUc.html":{}}}],["constructor(rulemanager",{"_index":2018,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["constructor(schoolexternaltoolrepo",{"_index":17478,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["constructor(schoolexternaltoolservice",{"_index":17510,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["constructor(schoolid",{"_index":17686,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["constructor(schoolname",{"_index":17569,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["constructor(schoolrepo",{"_index":13591,"title":{},"body":{"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["constructor(schoolservice",{"_index":128,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["constructor(schoolyearrepo",{"_index":17717,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["constructor(service",{"_index":4662,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["constructor(sharetokenservice",{"_index":18057,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["constructor(state",{"_index":16244,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["constructor(storageclient",{"_index":16139,"title":{},"body":{"injectables/PreviewService.html":{}}}],["constructor(strategy",{"_index":4492,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["constructor(submissionrepo",{"_index":18453,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["constructor(submissionservice",{"_index":18480,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["constructor(successful",{"_index":18500,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["constructor(system",{"_index":16458,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{}}}],["constructor(systemrepo",{"_index":13321,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["constructor(systemresponses",{"_index":16454,"title":{},"body":{"classes/PublicSystemListResponse.html":{}}}],["constructor(systemservice",{"_index":16318,"title":{},"body":{"injectables/ProvisioningService.html":{},"injectables/SystemUc.html":{}}}],["constructor(task",{"_index":11965,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["constructor(taskrepo",{"_index":18839,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["constructor(taskservice",{"_index":17012,"title":{},"body":{"injectables/RoomsService.html":{}}}],["constructor(teamsrepo",{"_index":19344,"title":{},"body":{"injectables/TeamService.html":{}}}],["constructor(timetowait",{"_index":3838,"title":{},"body":{"classes/BruteForceError.html":{}}}],["constructor(tokengenerator",{"_index":18025,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["constructor(toolfeatures",{"_index":8358,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{}}}],["constructor(toollaunchservice",{"_index":19830,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["constructor(toolpermissionhelper",{"_index":5937,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["constructor(toolreference",{"_index":19851,"title":{},"body":{"classes/ToolReference.html":{}}}],["constructor(toolreferenceresponse",{"_index":19868,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["constructor(total",{"_index":16057,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["constructor(type",{"_index":8223,"title":{},"body":{"classes/ErrorResponse.html":{}}}],["constructor(undefined",{"_index":966,"title":{},"body":{"classes/AccountResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BusinessError.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/CopyApiResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/NewsResponse.html":{},"classes/RichText.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TimestampsResponse.html":{},"classes/UserDataResponse.html":{},"classes/UserInfoResponse.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["constructor(user",{"_index":20161,"title":{},"body":{"classes/UserDto.html":{}}}],["constructor(userid",{"_index":10368,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["constructor(userloginmigrationid",{"_index":20240,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["constructor(userloginmigrationservice",{"_index":4447,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["constructor(usermatchschoolid",{"_index":17555,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["constructor(usermigrationdto",{"_index":14475,"title":{},"body":{"classes/MigrationDto.html":{}}}],["constructor(usermigrationservice",{"_index":20497,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["constructor(username",{"_index":19958,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{}}}],["constructor(userrepo",{"_index":16614,"title":{},"body":{"injectables/ReferenceLoader.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["constructor(userservice",{"_index":14219,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["constructor(validationerrors",{"_index":1476,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["constructor(vcsettings",{"_index":21237,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["construed",{"_index":22152,"title":{},"body":{"license.html":{}}}],["consumer",{"_index":14170,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["consumer.app.ts",{"_index":21479,"title":{},"body":{"miscellaneous/functions.html":{}}}],["consumer.authorize(requestdata",{"_index":14178,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["contact",{"_index":22239,"title":{},"body":{"license.html":{}}}],["contain",{"_index":744,"title":{},"body":{"classes/AccountFactory.html":{},"entities/Board.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["contained",{"_index":4959,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"miscellaneous/functions.html":{}}}],["container",{"_index":2882,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"controllers/BoardSubmissionController.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"injectables/SubmissionItemUc.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["container.'})@apiresponse({status",{"_index":3689,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["container.url.params.ts",{"_index":18248,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["container.url.params.ts:11",{"_index":18250,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{}}}],["containing",{"_index":15250,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["contains",{"_index":5346,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/FilterImportUserParams.html":{},"classes/ImportUserScope.html":{},"classes/LoginRequestBody.html":{},"injectables/NewsRepo.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["content",{"_index":2344,"title":{},"body":{"injectables/BBBService.html":{},"classes/BoardElementResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"controllers/CourseController.html":{},"entities/CourseNews.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"injectables/FileSystemAdapter.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/MoveContentElementBody.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/OauthAdapterService.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"entities/SchoolNews.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"entities/TeamNews.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["content.board",{"_index":13802,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["content.body.params",{"_index":8066,"title":{},"body":{"controllers/ElementController.html":{}}}],["content.body.params.ts",{"_index":8029,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["content.body.params.ts:13",{"_index":8031,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["content.body.params.ts:19",{"_index":9477,"title":{},"body":{"classes/FileContentBody.html":{}}}],["content.body.params.ts:28",{"_index":9536,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["content.body.params.ts:34",{"_index":16742,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:38",{"_index":16741,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["content.body.params.ts:47",{"_index":16767,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["content.body.params.ts:53",{"_index":18228,"title":{},"body":{"classes/SubmissionContainerContentBody.html":{}}}],["content.body.params.ts:62",{"_index":18239,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["content.body.params.ts:87",{"_index":19961,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["content.component",{"_index":5006,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.content.url",{"_index":5019,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.description",{"_index":13800,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["content.dto",{"_index":16027,"title":{},"body":{"injectables/PageContentMapper.html":{},"injectables/UserMigrationService.html":{}}}],["content.dto.ts",{"_index":16012,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:2",{"_index":16016,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.dto.ts:4",{"_index":16015,"title":{},"body":{"classes/PageContentDto.html":{}}}],["content.identifier",{"_index":5215,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["content.mapper.ts",{"_index":16023,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.mapper.ts:7",{"_index":16024,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["content.numberofdrafttasks",{"_index":7990,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.numberofplannedtasks",{"_index":7992,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["content.response.ts",{"_index":16045,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:12",{"_index":16046,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.response.ts:7",{"_index":16050,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["content.title",{"_index":5005,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"injectables/LessonCopyService.html":{}}}],["content.title}${content.content.text",{"_index":5012,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["content.url",{"_index":13797,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["content.url.replace(originaltaskid",{"_index":13768,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["content/:contentid/:file",{"_index":10802,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["content_developer",{"_index":6963,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdeveloper",{"_index":6964,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["contentdisposition",{"_index":1563,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["contentelementfactory",{"_index":3540,"title":{"injectables/ContentElementFactory.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{}}}],["contentelementid",{"_index":5596,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"injectables/ElementUc.html":{}}}],["contentelementresponsefactory",{"_index":4049,"title":{"classes/ContentElementResponseFactory.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{}}}],["contentelementresponsefactory.maptoresponse(element",{"_index":4078,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponseMapper.html":{}}}],["contentelementservice",{"_index":3538,"title":{"injectables/ContentElementService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["contentelementtype",{"_index":3774,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype'})@isenum(contentelementtype",{"_index":8030,"title":{},"body":{"classes/ElementContentBody.html":{}}}],["contentelementtype.file",{"_index":5504,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.rich_text",{"_index":5506,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementtype.submission_container",{"_index":5508,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["contentelementupdatevisitor",{"_index":5546,"title":{"classes/ContentElementUpdateVisitor.html":{}},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{}}}],["contentelementupdatevisitor(content",{"_index":5555,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["contentelementurlparams",{"_index":5593,"title":{"classes/ContentElementUrlParams.html":{}},"body":{"classes/ContentElementUrlParams.html":{},"controllers/ElementController.html":{}}}],["contentid",{"_index":1568,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["contentlength",{"_index":6171,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["contentrange",{"_index":6172,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["contents",{"_index":10432,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"license.html":{}}}],["contents.app.ts",{"_index":21482,"title":{},"body":{"miscellaneous/functions.html":{}}}],["contents.config",{"_index":10427,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["contents.controller",{"_index":10426,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.controller.ts",{"_index":10387,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.controller.ts:25",{"_index":10392,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.map((item",{"_index":13771,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["contents.module.ts",{"_index":10423,"title":{},"body":{"modules/FwuLearningContentsModule.html":{}}}],["contents.params",{"_index":10397,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents.params.ts",{"_index":10449,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.params.ts:11",{"_index":10455,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents.push(element",{"_index":13868,"title":{},"body":{"classes/LessonFactory.html":{}}}],["contents.uc",{"_index":10395,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents.uc.ts",{"_index":10435,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:15",{"_index":10439,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents.uc.ts:7",{"_index":10438,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contents/controller/dto/fwu",{"_index":10448,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["contents/controller/fwu",{"_index":10386,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["contents/fwu",{"_index":10422,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["contents/interface/config.ts",{"_index":17207,"title":{},"body":{"interfaces/S3Config.html":{}}}],["contents/uc/fwu",{"_index":10434,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["contentstatus",{"_index":13713,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["contenttype",{"_index":5562,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"interfaces/CopyFiles.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["contenttypedetector",{"_index":8574,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["contenttypedetector[imagesignature",{"_index":8614,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["context",{"_index":199,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationService.html":{},"controllers/BoardController.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ForbiddenLoggableException.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRule.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentResponse.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolUc.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["context'})@apiokresponse({description",{"_index":19538,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolController.html":{}}}],["context(context",{"_index":4700,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["context.action",{"_index":3366,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["context.builder",{"_index":23119,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["context.builder.ts",{"_index":1870,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:11",{"_index":1878,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:17",{"_index":1876,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.builder.ts:5",{"_index":1874,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["context.contextid",{"_index":18109,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["context.controller.ts",{"_index":19597,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:121",{"_index":19612,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:145",{"_index":19620,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:45",{"_index":19603,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:69",{"_index":19607,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.controller.ts:88",{"_index":19616,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["context.getclass",{"_index":19478,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.gethandler",{"_index":19477,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["context.interface",{"_index":16290,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/Rule.html":{}}}],["context.interface.ts",{"_index":1864,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"interfaces/ProviderOidcContext.html":{}}}],["context.params.ts",{"_index":5663,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:12",{"_index":5669,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.params.ts:8",{"_index":5667,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["context.reponse",{"_index":2959,"title":{},"body":{"controllers/BoardController.html":{}}}],["context.reponse.ts",{"_index":2907,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:13",{"_index":2912,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:16",{"_index":2916,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.reponse.ts:4",{"_index":2908,"title":{},"body":{"classes/BoardContextResponse.html":{}}}],["context.requiredpermissions",{"_index":3361,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["context.response",{"_index":5462,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["context.response.ts",{"_index":15871,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:12",{"_index":15879,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:15",{"_index":15880,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:19",{"_index":15882,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:6",{"_index":15877,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.response.ts:9",{"_index":15878,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["context.switchtohttp().getrequest",{"_index":16683,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["context_external_tools",{"_index":5688,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextconfigurationenabled",{"_index":12080,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["contextdo",{"_index":19846,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool",{"_index":140,"title":{"classes/ContextExternalTool.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"controllers/ToolContextController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltool'})@httpcode(httpstatus.no_content",{"_index":19606,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltool(contextexternaltooldto",{"_index":5955,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["contextexternaltool(tovalidate",{"_index":5987,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.contextref",{"_index":5997,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.contextref.id",{"_index":313,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contextexternaltool.contextref.type",{"_index":315,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltool.displayname",{"_index":5858,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ToolReferenceMapper.html":{}}}],["contextexternaltool.id",{"_index":5856,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{}}}],["contextexternaltool.parameters",{"_index":282,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["contextexternaltool.schooltoolref",{"_index":5996,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["contextexternaltool.schooltoolref.schooltoolid",{"_index":5857,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchService.html":{}}}],["contextexternaltool.toolversion",{"_index":5859,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["contextexternaltoolauthorizableservice",{"_index":5627,"title":{"injectables/ContextExternalToolAuthorizableService.html":{}},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse",{"_index":5633,"title":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":19596,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolconfigurationtemplateresponse",{"_index":5635,"title":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltoolcontextparams",{"_index":5661,"title":{"classes/ContextExternalToolContextParams.html":{}},"body":{"classes/ContextExternalToolContextParams.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{}}}],["contextexternaltooldto",{"_index":5817,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolentity",{"_index":5672,"title":{"entities/ContextExternalToolEntity.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextexternaltoolentity(props",{"_index":5783,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltoolfactory",{"_index":5695,"title":{"classes/ContextExternalToolFactory.html":{}},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolfactory.define(contextexternaltool",{"_index":5705,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["contextexternaltoolid",{"_index":5707,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchUc.html":{}}}],["contextexternaltoolidparams",{"_index":5706,"title":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{}},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolmodule",{"_index":5713,"title":{"modules/ContextExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["contextexternaltoolpostparams",{"_index":5723,"title":{"classes/ContextExternalToolPostParams.html":{}},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolprops",{"_index":5605,"title":{"interfaces/ContextExternalToolProps.html":{}},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["contextexternaltoolquery",{"_index":5750,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{}}}],["contextexternaltoolrepo",{"_index":5274,"title":{"injectables/ContextExternalToolRepo.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{}}}],["contextexternaltoolrequestmapper",{"_index":5810,"title":{"classes/ContextExternalToolRequestMapper.html":{}},"body":{"classes/ContextExternalToolRequestMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolrequestmapper.mapcontextexternaltoolrequest(body",{"_index":19624,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse",{"_index":5831,"title":{"classes/ContextExternalToolResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper",{"_index":5852,"title":{"classes/ContextExternalToolResponseMapper.html":{}},"body":{"classes/ContextExternalToolResponseMapper.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(contextexternaltool",{"_index":19638,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(createdtool",{"_index":19626,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(tool",{"_index":19634,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponsemapper.mapcontextexternaltoolresponse(updatedtool",{"_index":19642,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiunprocessableentityresponse()@apioperation({summary",{"_index":19619,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":19601,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolresponse})@apioperation({summary",{"_index":19610,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolrule",{"_index":1955,"title":{"injectables/ContextExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/RuleManager.html":{}}}],["contextexternaltools",{"_index":5921,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltools.map",{"_index":19633,"title":{},"body":{"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltoolscope",{"_index":5752,"title":{"classes/ContextExternalToolScope.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{}}}],["contextexternaltoolsearchlistresponse",{"_index":5900,"title":{"classes/ContextExternalToolSearchListResponse.html":{}},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse(mappedtools",{"_index":19635,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolsearchlistresponse})@apioperation({summary",{"_index":19615,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["contextexternaltoolservice",{"_index":5720,"title":{"injectables/ContextExternalToolService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextexternaltoolsinuse",{"_index":8368,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["contextexternaltoolsinuse.some",{"_index":8387,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["contextexternaltooltemplateinfo",{"_index":8366,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["contextexternaltooltype",{"_index":5677,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["contextexternaltooltype.course",{"_index":5808,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["contextexternaltooluc",{"_index":5929,"title":{"injectables/ContextExternalToolUc.html":{}},"body":{"injectables/ContextExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["contextexternaltoolvalidationservice",{"_index":5721,"title":{"injectables/ContextExternalToolValidationService.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["contextid",{"_index":5664,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRefParams.html":{},"injectables/ExternalToolConfigurationUc.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextparameter",{"_index":7159,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["contextref",{"_index":5601,"title":{"classes/ContextRef.html":{}},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"injectables/ToolReferenceUc.html":{}}}],["contextrefparams",{"_index":6010,"title":{"classes/ContextRefParams.html":{}},"body":{"classes/ContextRefParams.html":{},"controllers/ToolConfigurationController.html":{}}}],["contexttoolid",{"_index":5947,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["contexttype",{"_index":4714,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRefParams.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{}}}],["contexttypemapper",{"_index":6015,"title":{"classes/ContextTypeMapper.html":{}},"body":{"classes/ContextTypeMapper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["contexttypemapper.mapcontexttypetoallowedauthorizationentitytype(contextexternaltool.contextref.type",{"_index":19849,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["continue",{"_index":21991,"title":{},"body":{"license.html":{}}}],["continued",{"_index":21975,"title":{},"body":{"license.html":{}}}],["contractual",{"_index":22030,"title":{},"body":{"license.html":{}}}],["contradict",{"_index":22159,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contrast",{"_index":21688,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["contributor",{"_index":22102,"title":{},"body":{"license.html":{}}}],["contributor's",{"_index":22104,"title":{},"body":{"license.html":{}}}],["control",{"_index":19713,"title":{},"body":{"controllers/ToolController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controlled",{"_index":22107,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controller",{"_index":481,"title":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ServerController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}},"body":{"controllers/AccountController.html":{},"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LegacySchoolController.html":{},"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ServerController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controller('account",{"_index":562,"title":{},"body":{"controllers/AccountController.html":{}}}],["controller('authentication",{"_index":14103,"title":{},"body":{"controllers/LoginController.html":{}}}],["controller('board",{"_index":3701,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["controller('boards",{"_index":2963,"title":{},"body":{"controllers/BoardController.html":{}}}],["controller('cards",{"_index":4050,"title":{},"body":{"controllers/CardController.html":{}}}],["controller('collaborative",{"_index":4595,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["controller('columns",{"_index":4874,"title":{},"body":{"controllers/ColumnController.html":{}}}],["controller('courses",{"_index":6501,"title":{},"body":{"controllers/CourseController.html":{}}}],["controller('dashboard",{"_index":7238,"title":{},"body":{"controllers/DashboardController.html":{}}}],["controller('elements",{"_index":8067,"title":{},"body":{"controllers/ElementController.html":{}}}],["controller('fwu",{"_index":10399,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["controller('h5p",{"_index":10791,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["controller('lessons",{"_index":13661,"title":{},"body":{"controllers/LessonController.html":{}}}],["controller('management/database",{"_index":7706,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["controller('management/idm",{"_index":13165,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["controller('news",{"_index":14619,"title":{},"body":{"controllers/NewsController.html":{}}}],["controller('oauth2",{"_index":15523,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["controller('rooms",{"_index":16993,"title":{},"body":{"controllers/RoomsController.html":{}}}],["controller('school",{"_index":13471,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["controller('sharetoken",{"_index":17913,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["controller('sso",{"_index":15739,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["controller('submissions",{"_index":18265,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["controller('systems",{"_index":18555,"title":{},"body":{"controllers/SystemController.html":{}}}],["controller('tasks",{"_index":18816,"title":{},"body":{"controllers/TaskController.html":{}}}],["controller('team",{"_index":19296,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["controller('tools",{"_index":19559,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolLaunchController.html":{}}}],["controller('tools/context",{"_index":19623,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["controller('tools/external",{"_index":19679,"title":{},"body":{"controllers/ToolController.html":{}}}],["controller('tools/school",{"_index":19933,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["controller('user",{"_index":20030,"title":{},"body":{"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["controller('user/import",{"_index":12312,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["controller('videoconference",{"_index":21032,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["controller('videoconference2",{"_index":20921,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["controller.ts",{"_index":22574,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["controller/account.controller",{"_index":452,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["controller/api",{"_index":22870,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["controller/collaborative",{"_index":4616,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["controller/course.controller",{"_index":13379,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/dashboard.controller",{"_index":13380,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/database",{"_index":14414,"title":{},"body":{"modules/ManagementModule.html":{}}}],["controller/dto",{"_index":982,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CourseMapper.html":{},"classes/DashboardMapper.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GetFileResponse.html":{},"injectables/HydraOauthUc.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/MigrationMapper.html":{},"classes/NewsMapper.html":{},"injectables/OauthUc.html":{},"injectables/PageContentMapper.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"classes/ResolvedUserMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolInfoMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionMapper.html":{},"classes/TaskMapper.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolLaunchMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserMatchMapper.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["controller/dto/filter",{"_index":20551,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["controller/dto/password",{"_index":1002,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["controller/dto/response/video",{"_index":21133,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["controller/dto/single",{"_index":16889,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["controller/dto/target",{"_index":18754,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["controller/dto/task",{"_index":19153,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["controller/dto/team",{"_index":4672,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["controller/fwu",{"_index":10425,"title":{},"body":{"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["controller/h5p",{"_index":10813,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["controller/import",{"_index":12452,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["controller/keycloak",{"_index":12839,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["controller/legacy",{"_index":13443,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["controller/news.controller",{"_index":14719,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/oauth",{"_index":15234,"title":{},"body":{"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{}}}],["controller/rooms.controller",{"_index":13381,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["controller/server.controller",{"_index":17802,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["controller/share",{"_index":18125,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["controller/team",{"_index":14720,"title":{},"body":{"modules/NewsModule.html":{}}}],["controller/transformer/sanitize",{"_index":16737,"title":{},"body":{"classes/RichText.html":{}}}],["controller/user",{"_index":20249,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["controllers",{"_index":447,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{},"modules/AuthenticationApiModule.html":{},"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageTestModule.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"controllers/KeycloakManagementController.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"modules/ManagementModule.html":{},"controllers/NewsController.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"controllers/SubmissionController.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"modules/TeamsApiModule.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["controllers/dto",{"_index":13333,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["controllers/login.controller",{"_index":1590,"title":{},"body":{"modules/AuthenticationApiModule.html":{}}}],["convenient",{"_index":21780,"title":{},"body":{"license.html":{}}}],["convention",{"_index":22712,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["conventions",{"_index":22556,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["conversion",{"_index":797,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["convert",{"_index":767,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["converted",{"_index":796,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["convertedteamuserids",{"_index":14937,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter((userid",{"_index":14951,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.filter(boolean",{"_index":14944,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["convertedteamuserids.includes(userid",{"_index":14947,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["converter/bson.converter",{"_index":11111,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["converterutil",{"_index":2291,"title":{"injectables/ConverterUtil.html":{}},"body":{"injectables/BBBService.html":{},"injectables/ConverterUtil.html":{},"modules/VideoConferenceModule.html":{}}}],["converts",{"_index":794,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["converttodatabasevalue",{"_index":18180,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttodatabasevalue(value",{"_index":18185,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue",{"_index":18181,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["converttojsvalue(value",{"_index":18187,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["convey",{"_index":21768,"title":{},"body":{"license.html":{}}}],["conveyance",{"_index":22137,"title":{},"body":{"license.html":{}}}],["conveyed",{"_index":21986,"title":{},"body":{"license.html":{}}}],["conveying",{"_index":21775,"title":{},"body":{"license.html":{}}}],["conveys",{"_index":22029,"title":{},"body":{"license.html":{}}}],["cookie",{"_index":11046,"title":{},"body":{"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["cookie.parse(request.headers.cookie",{"_index":12685,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookie.startswith('oauth2",{"_index":11062,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["cookiedefaultoptions",{"_index":15776,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookieoptions",{"_index":15731,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["cookies",{"_index":10974,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"classes/JwtExtractor.html":{}}}],["cookies[name",{"_index":12686,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["cookiesdto",{"_index":6032,"title":{"classes/CookiesDto.html":{}},"body":{"classes/CookiesDto.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["cooperation",{"_index":21681,"title":{},"body":{"license.html":{}}}],["copied",{"_index":1660,"title":{},"body":{"modules/AuthenticationModule.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copiedcontent",{"_index":13728,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedcontentstatus",{"_index":13781,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedlesson",{"_index":13750,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedlesson.contents",{"_index":13753,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedlesson.contents.map((value",{"_index":13754,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedlesson?.contents",{"_index":13752,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedmaterials",{"_index":13730,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedmaterials.push(material",{"_index":13817,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedtask",{"_index":13766,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedtask.id",{"_index":13769,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copiedtasksstatus",{"_index":13710,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copies",{"_index":21675,"title":{},"body":{"license.html":{}}}],["copy",{"_index":2563,"title":{},"body":{"classes/BaseFactory.html":{},"classes/CopyApiResponse.html":{},"injectables/CourseCopyService.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/S3ClientAdapter.html":{},"injectables/ShareTokenUC.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyUC.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["copy(paths",{"_index":17108,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copy(userid",{"_index":9758,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["copy._id",{"_index":13790,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.content",{"_index":13789,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.params",{"_index":6297,"title":{},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{}}}],["copy.params.ts",{"_index":13666,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:14",{"_index":13667,"title":{},"body":{"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["copy.params.ts:22",{"_index":18835,"title":{},"body":{"classes/TaskCopyApiParams.html":{}}}],["copy.service",{"_index":6535,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{}}}],["copy.service.ts",{"_index":2985,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:103",{"_index":3010,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:107",{"_index":13720,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:111",{"_index":3014,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:123",{"_index":13722,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:126",{"_index":3020,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:139",{"_index":3017,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:149",{"_index":13718,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:15",{"_index":6523,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:167",{"_index":13698,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:18",{"_index":18840,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:25",{"_index":6525,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copy.service.ts:252",{"_index":13707,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:264",{"_index":13694,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:27",{"_index":13684,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:290",{"_index":13692,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:297",{"_index":13690,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:30",{"_index":2998,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:320",{"_index":13705,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:338",{"_index":13702,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:361",{"_index":13700,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:37",{"_index":13696,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:39",{"_index":3001,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:391",{"_index":13686,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:397",{"_index":13716,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:406",{"_index":13715,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:42",{"_index":18844,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:56",{"_index":6528,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:63",{"_index":18849,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:65",{"_index":3004,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.service.ts:70",{"_index":18847,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copy.service.ts:72",{"_index":6534,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:78",{"_index":6531,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copy.service.ts:82",{"_index":13712,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copy.service.ts:95",{"_index":3007,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copy.uc",{"_index":16989,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/TaskController.html":{}}}],["copy.uc.ts",{"_index":6576,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:15",{"_index":6582,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:16",{"_index":18870,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:17",{"_index":13831,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:26",{"_index":13834,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:28",{"_index":6580,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:61",{"_index":18874,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:62",{"_index":13835,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["copy.uc.ts:70",{"_index":18877,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:80",{"_index":18879,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy.uc.ts:9",{"_index":6579,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["copy.uc.ts:92",{"_index":18871,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["copy_files_of_parent",{"_index":11362,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["copyapiresponse",{"_index":6042,"title":{"classes/CopyApiResponse.html":{}},"body":{"classes/CopyApiResponse.html":{},"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copyapiresponse})@apiresponse({status",{"_index":17897,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["copyboard",{"_index":2986,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboard(params",{"_index":2999,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements",{"_index":2987,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyboardelements(boardelements",{"_index":3002,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copycourse",{"_index":6517,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourse(currentuser",{"_index":16973,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copycourse(undefined",{"_index":6524,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourse(userid",{"_index":6581,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copycourseentity",{"_index":6518,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copycourseentity(params",{"_index":6526,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copydict",{"_index":3077,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{}}}],["copydict.get(originaltaskid",{"_index":13767,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype",{"_index":3025,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.board",{"_index":3038,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copyelementtype.content",{"_index":18862,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.course",{"_index":6573,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.coursegroup_group",{"_index":6570,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.file",{"_index":6226,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyelementtype.file_group",{"_index":6232,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyelementtype.lernstore_material",{"_index":13818,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype.lernstore_material_group",{"_index":13821,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype.lesson",{"_index":3083,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{}}}],["copyelementtype.lesson_content_group",{"_index":13827,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype.ltitool_group",{"_index":6565,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.metadata",{"_index":6563,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyelementtype.submission_group",{"_index":18863,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.task",{"_index":18865,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copyelementtype.task_group",{"_index":13809,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyelementtype.time_group",{"_index":6566,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyelementtype.user_group",{"_index":6564,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copyembeddedtasklink",{"_index":13670,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyembeddedtasklink(originalelement",{"_index":13685,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyentity",{"_index":3040,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copyentity.course?.id",{"_index":6308,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyentity.id",{"_index":6306,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyetherpad",{"_index":13671,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyetherpad(originalelement",{"_index":13688,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyfiledto",{"_index":6063,"title":{"classes/CopyFileDto.html":{}},"body":{"classes/CopyFileDto.html":{},"injectables/CopyFilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{}}}],["copyfilelistresponse",{"_index":6076,"title":{"classes/CopyFileListResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{}}}],["copyfilelistresponse.map((response",{"_index":10144,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["copyfileparams",{"_index":6114,"title":{"classes/CopyFileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["copyfileresponse",{"_index":6079,"title":{"classes/CopyFileResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["copyfileresponsebuilder",{"_index":6152,"title":{"classes/CopyFileResponseBuilder.html":{}},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["copyfiles",{"_index":6157,"title":{"interfaces/CopyFiles.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"miscellaneous/functions.html":{}}}],["copyfilesofentity",{"_index":6189,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofentity(originalentity",{"_index":6195,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparent",{"_index":10102,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent(param",{"_index":10108,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["copyfilesofparent(payload",{"_index":10172,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:finished",{"_index":10302,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparent:started",{"_index":10299,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["copyfilesofparentparambuilder",{"_index":6173,"title":{"classes/CopyFilesOfParentParamBuilder.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparambuilder.build(userid",{"_index":6212,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["copyfilesofparentparams",{"_index":6137,"title":{"classes/CopyFilesOfParentParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["copyfilesofparentpayload",{"_index":6138,"title":{"classes/CopyFilesOfParentPayload.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageConsumer.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["copyfilesservice",{"_index":6186,"title":{"injectables/CopyFilesService.html":{}},"body":{"injectables/CopyFilesService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copygeogebra",{"_index":13672,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copygeogebra(originalelement",{"_index":13691,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyhelpermodule",{"_index":6234,"title":{"modules/CopyHelperModule.html":{}},"body":{"modules/CopyHelperModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LessonModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules.html":{}}}],["copyhelperservice",{"_index":2997,"title":{"injectables/CopyHelperService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copying",{"_index":6705,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"license.html":{}}}],["copyingsince",{"_index":6365,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{}}}],["copyleft",{"_index":21677,"title":{},"body":{"license.html":{}}}],["copylernstore",{"_index":13673,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylernstore(element",{"_index":13693,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylesson",{"_index":2988,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{},"injectables/ShareTokenUC.html":{}}}],["copylesson(currentuser",{"_index":16976,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copylesson(originallesson",{"_index":3006,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copylesson(params",{"_index":13695,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylesson(userid",{"_index":13832,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["copylessoncontent",{"_index":13674,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylessoncontent(content",{"_index":13697,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylinkedmaterials",{"_index":13675,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylinkedmaterials(originallesson",{"_index":13699,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylinkedtasks",{"_index":13676,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copylinkedtasks(destinationlesson",{"_index":13701,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copymapper",{"_index":6282,"title":{"classes/CopyMapper.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maplessoncopytodomain(params",{"_index":17008,"title":{},"body":{"controllers/RoomsController.html":{}}}],["copymapper.maptaskcopytodomain(params",{"_index":18832,"title":{},"body":{"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(copystatus",{"_index":17005,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["copymapper.maptoresponse(element",{"_index":6312,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copyname",{"_index":6537,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copynexboard",{"_index":13677,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copynexboard(originalelement",{"_index":13704,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copyobjectcommand",{"_index":17123,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyobjectcommandoutput",{"_index":17124,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths",{"_index":17159,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copypaths.map((p",{"_index":17169,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyprops",{"_index":1861,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["copyrequest",{"_index":17163,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyrequests",{"_index":17173,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copyright",{"_index":21666,"title":{},"body":{"license.html":{}}}],["copyrightable",{"_index":21742,"title":{},"body":{"license.html":{}}}],["copyrighted",{"_index":21835,"title":{},"body":{"license.html":{}}}],["copyrightowners",{"_index":4975,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["copysource",{"_index":17175,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["copystatus",{"_index":3013,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copystatus.copyentity",{"_index":6305,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.elements",{"_index":6309,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.status",{"_index":6304,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.title",{"_index":6302,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatus.type",{"_index":6303,"title":{},"body":{"classes/CopyMapper.html":{}}}],["copystatusenum",{"_index":6057,"title":{},"body":{"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.fail",{"_index":6228,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{}}}],["copystatusenum.not_doing",{"_index":6262,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copystatusenum.not_implemented",{"_index":6571,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["copystatusenum.partial",{"_index":6256,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["copystatusenum.success",{"_index":6227,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["copytask",{"_index":2989,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ShareTokenUC.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["copytask(currentuser",{"_index":18789,"title":{},"body":{"controllers/TaskController.html":{}}}],["copytask(originaltask",{"_index":3009,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["copytask(params",{"_index":18841,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytask(userid",{"_index":18069,"title":{},"body":{"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["copytaskentity",{"_index":18837,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytaskentity(params",{"_index":18843,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["copytextcontent",{"_index":13678,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["copytextcontent(element",{"_index":13706,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["core",{"_index":6325,"title":{},"body":{"modules/CoreModule.html":{},"controllers/H5PEditorController.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["core.autocrlf",{"_index":22914,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["core/error",{"_index":22672,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["core/logger",{"_index":1079,"title":{},"body":{"injectables/AccountService.html":{}}}],["core/logger/logger.module",{"_index":454,"title":{},"body":{"modules/AccountApiModule.html":{}}}],["coremodule",{"_index":6317,"title":{"modules/CoreModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["correct",{"_index":4582,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["correction",{"_index":22202,"title":{},"body":{"license.html":{}}}],["correctly",{"_index":22704,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["correctness",{"_index":22454,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["corresponding",{"_index":14132,"title":{},"body":{"classes/LoginResponse-1.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["cors",{"_index":21393,"title":{},"body":{"dependencies.html":{}}}],["cost",{"_index":21924,"title":{},"body":{"license.html":{}}}],["count",{"_index":5784,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/TaskRepo.html":{},"controllers/TeamNewsController.html":{},"injectables/UserRepo.html":{}}}],["counted",{"_index":98,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"injectables/FileRecordRepo.html":{},"classes/IdentityManagementService.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/UserRepo.html":{}}}],["countedimportusers",{"_index":12491,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["countednewslist",{"_index":14741,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["countedtasklist",{"_index":19024,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["counterclaim",{"_index":22094,"title":{},"body":{"license.html":{}}}],["counties",{"_index":6352,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countpipeline",{"_index":20725,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countpipeline.push",{"_index":20726,"title":{},"body":{"injectables/UserRepo.html":{}}}],["countries",{"_index":21765,"title":{},"body":{"license.html":{}}}],["country",{"_index":22130,"title":{},"body":{"license.html":{}}}],["counts",{"_index":6703,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["county",{"_index":6340,"title":{"classes/County.html":{}},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.antareskey",{"_index":6357,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.countyid",{"_index":6355,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["county.name",{"_index":6353,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["countyid",{"_index":6344,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["coupling",{"_index":22551,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["course",{"_index":188,"title":{"entities/Course.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CopyApiResponse.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/DtoCreator.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{},"entities/SchoolNews.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["course.createdat.getfullyear().tostring",{"_index":4978,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.description",{"_index":23089,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.entity",{"_index":2688,"title":{},"body":{"entities/Board.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{}}}],["course.factory",{"_index":6647,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["course.getmetadata",{"_index":6687,"title":{},"body":{"classes/CourseMapper.html":{}}}],["course.getstudentids().map((userid",{"_index":3151,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getsubstitutionteacherids().map((userid",{"_index":3149,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.getteacherids().map((userid",{"_index":3146,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["course.name",{"_index":318,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CourseCopyService.html":{},"injectables/VideoConferenceService.html":{}}}],["course.removeuser(userid",{"_index":6837,"title":{},"body":{"injectables/CourseService.html":{}}}],["course.rule",{"_index":6666,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["course.school",{"_index":23086,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["course.service",{"_index":4970,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.students.contains(user",{"_index":16958,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.substitutionteachers.contains(user",{"_index":16956,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["course.teachers",{"_index":5020,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["course.teachers.contains(user",{"_index":16957,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["coursecolumnboardtargets",{"_index":17022,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursecontroller",{"_index":6478,"title":{"controllers/CourseController.html":{}},"body":{"controllers/CourseController.html":{},"modules/LearnroomApiModule.html":{}}}],["coursecopy",{"_index":6530,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.copyingsince",{"_index":6561,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopy.name",{"_index":6572,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyparams",{"_index":6527,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursecopyservice",{"_index":6515,"title":{"injectables/CourseCopyService.html":{}},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/LearnroomModule.html":{},"injectables/ShareTokenUC.html":{}}}],["coursecopyuc",{"_index":6574,"title":{"injectables/CourseCopyUC.html":{}},"body":{"injectables/CourseCopyUC.html":{},"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["courseexportservice",{"_index":6593,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["courseexportuc",{"_index":6494,"title":{"injectables/CourseExportUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{},"modules/LearnroomApiModule.html":{}}}],["coursefactory",{"_index":6600,"title":{"classes/CourseFactory.html":{}},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.build",{"_index":6649,"title":{},"body":{"classes/CourseGroupFactory.html":{},"classes/LessonFactory.html":{}}}],["coursefactory.define(course",{"_index":6620,"title":{},"body":{"classes/CourseFactory.html":{}}}],["coursefeatures",{"_index":6381,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["coursegroup",{"_index":6404,"title":{"entities/CourseGroup.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"injectables/LessonUC.html":{},"entities/Submission.html":{},"injectables/SubmissionRepo.html":{}}}],["coursegroup.course",{"_index":13888,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["coursegroup.entity",{"_index":6405,"title":{},"body":{"entities/Course.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["coursegroup.removestudent(userid",{"_index":6679,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupfactory",{"_index":6644,"title":{"classes/CourseGroupFactory.html":{}},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupfactory.define(coursegroup",{"_index":6648,"title":{},"body":{"classes/CourseGroupFactory.html":{}}}],["coursegroupid",{"_index":11325,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["coursegroupmemberids",{"_index":11810,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["coursegrouppermission",{"_index":13900,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouppermission(user",{"_index":13906,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursegrouprepo",{"_index":1956,"title":{"injectables/CourseGroupRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["coursegrouprule",{"_index":1957,"title":{"injectables/CourseGroupRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{}}}],["coursegroups",{"_index":6366,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["coursegroups.foreach((coursegroup",{"_index":6678,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupservice",{"_index":6670,"title":{"injectables/CourseGroupService.html":{}},"body":{"injectables/CourseGroupService.html":{}}}],["coursegroupsexist",{"_index":6567,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursegroupsofuser",{"_index":18416,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["courseid",{"_index":2675,"title":{},"body":{"entities/Board.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseGroup.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"classes/CourseUrlParams.html":{},"injectables/EtherpadService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/LessonCopyApiParams.html":{},"entities/LessonEntity.html":{},"injectables/ShareTokenUC.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskService.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["courseids",{"_index":6654,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["courselessons",{"_index":17019,"title":{},"body":{"injectables/RoomsService.html":{}}}],["coursemapper",{"_index":6498,"title":{"classes/CourseMapper.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMapper.html":{}}}],["coursemapper.maptometadataresponse(course",{"_index":6505,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadata",{"_index":6686,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.copyingsince",{"_index":6694,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.displaycolor",{"_index":6691,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.id",{"_index":6688,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.shorttitle",{"_index":6690,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.startdate",{"_index":6692,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.title",{"_index":6689,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadata.untildate",{"_index":6693,"title":{},"body":{"classes/CourseMapper.html":{}}}],["coursemetadatalistresponse",{"_index":6497,"title":{"classes/CourseMetadataListResponse.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursemetadatalistresponse(courseresponses",{"_index":6506,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursemetadataresponse",{"_index":6685,"title":{"classes/CourseMetadataResponse.html":{}},"body":{"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["coursename",{"_index":3418,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/DtoCreator.html":{},"interfaces/ITaskParent.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["coursenews",{"_index":6717,"title":{"entities/CourseNews.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["coursenews(props",{"_index":6750,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["coursepermission",{"_index":13901,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursepermission(user",{"_index":13908,"title":{},"body":{"injectables/LessonRule.html":{}}}],["coursequeryparams",{"_index":6483,"title":{"classes/CourseQueryParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseQueryParams.html":{}}}],["coursereference",{"_index":4736,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/RoomsService.html":{}}}],["courserepo",{"_index":1958,"title":{"injectables/CourseRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsUc.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskUC.html":{}}}],["courseresponses",{"_index":6503,"title":{},"body":{"controllers/CourseController.html":{}}}],["courserule",{"_index":1959,"title":{"injectables/CourseRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["courses",{"_index":6424,"title":{},"body":{"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/DashboardUc.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"classes/ShareTokenDO.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceService.html":{}}}],["courses.filter((c",{"_index":19192,"title":{},"body":{"injectables/TaskUC.html":{}}}],["courses.foreach((course",{"_index":6836,"title":{},"body":{"injectables/CourseService.html":{}}}],["courses.map((course",{"_index":6504,"title":{},"body":{"controllers/CourseController.html":{}}}],["coursescope",{"_index":6786,"title":{"classes/CourseScope.html":{}},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["courseservice",{"_index":130,"title":{"injectables/CourseService.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CourseService.html":{},"modules/LearnroomModule.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/VideoConferenceService.html":{}}}],["coursestatus",{"_index":6554,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["coursetasks",{"_index":17021,"title":{},"body":{"injectables/RoomsService.html":{}}}],["courseuc",{"_index":6492,"title":{"injectables/CourseUc.html":{}},"body":{"controllers/CourseController.html":{},"injectables/CourseUc.html":{},"modules/LearnroomApiModule.html":{}}}],["courseurlparams",{"_index":6482,"title":{"classes/CourseUrlParams.html":{}},"body":{"controllers/CourseController.html":{},"classes/CourseUrlParams.html":{}}}],["court",{"_index":22158,"title":{},"body":{"license.html":{}}}],["courts",{"_index":22221,"title":{},"body":{"license.html":{}}}],["covenant",{"_index":22120,"title":{},"body":{"license.html":{}}}],["cover",{"_index":22708,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["coverage",{"_index":1237,"title":{},"body":{"injectables/AccountValidationService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["covered",{"_index":21752,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["cp",{"_index":22967,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["cr",{"_index":12945,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["crash",{"_index":13787,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["create",{"_index":883,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"modules/CacheWrapperModule.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"interfaces/FeathersService.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LegacySchoolDo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/OidcProvisioningService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RoleRepo.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"controllers/ShareTokenController.html":{},"injectables/StorageProviderRepo.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamsRepo.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["create(@currentuser",{"_index":14620,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["create(config",{"_index":2294,"title":{},"body":{"injectables/BBBService.html":{}}}],["create(context",{"_index":4730,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["create(currentuser",{"_index":14596,"title":{},"body":{"controllers/NewsController.html":{}}}],["create(currentuserid",{"_index":20968,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create(data",{"_index":9428,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["create(entity",{"_index":908,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["create(parent",{"_index":4127,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["create(path",{"_index":17110,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["create(userid",{"_index":14799,"title":{},"body":{"injectables/NewsUc.html":{},"injectables/SubmissionItemService.html":{}}}],["create.config.ts",{"_index":2109,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:23",{"_index":2128,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:25",{"_index":2122,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:27",{"_index":2126,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:29",{"_index":2124,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:31",{"_index":2129,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:33",{"_index":2123,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:35",{"_index":2127,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:37",{"_index":2121,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:39",{"_index":2125,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.config.ts:9",{"_index":2120,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["create.params.ts",{"_index":8455,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:14",{"_index":20945,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:16",{"_index":18895,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:17",{"_index":8463,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:19",{"_index":20952,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:21",{"_index":14196,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:22",{"_index":8466,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:25",{"_index":15182,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/TaskCreateParams.html":{}}}],["create.params.ts:26",{"_index":14195,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:27",{"_index":8462,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["create.params.ts:30",{"_index":14192,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:33",{"_index":18900,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:34",{"_index":14194,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:35",{"_index":15181,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:38",{"_index":14190,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{}}}],["create.params.ts:39",{"_index":15180,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:41",{"_index":18897,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:43",{"_index":15184,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{}}}],["create.params.ts:48",{"_index":8460,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:49",{"_index":18893,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:55",{"_index":8465,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:57",{"_index":18899,"title":{},"body":{"classes/TaskCreateParams.html":{}}}],["create.params.ts:59",{"_index":8461,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:63",{"_index":8464,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["create.params.ts:9",{"_index":20944,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["create.response.ts",{"_index":2196,"title":{},"body":{"interfaces/BBBCreateResponse.html":{}}}],["create.uc.ts",{"_index":20960,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:19",{"_index":20967,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:26",{"_index":20971,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:40",{"_index":20969,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:61",{"_index":20974,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:82",{"_index":20978,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create.uc.ts:86",{"_index":20976,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["create_tokens_for_users=true",{"_index":22990,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["createaccount",{"_index":12204,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createaccount(account",{"_index":12213,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createandjoin",{"_index":21017,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandjoin(currentuser",{"_index":21018,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["createandstartprometheusmetricsappifenabled",{"_index":16270,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createapiresponsetimemetricmiddleware",{"_index":16248,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["createauthenticationcodegranttokenrequestpayload",{"_index":19504,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createauthenticationcodegranttokenrequestpayload(clientid",{"_index":19506,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["createboard",{"_index":3446,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboard(courseid",{"_index":3452,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{}}}],["createboardelementfor(boardelementtarget",{"_index":2750,"title":{},"body":{"entities/Board.html":{}}}],["createboardforcourse",{"_index":3625,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createboardforcourse(courseid",{"_index":3629,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["createbucket",{"_index":17100,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createbucketcommand",{"_index":17125,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["createcard",{"_index":3757,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["createcard(urlparams",{"_index":4853,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcard(userid",{"_index":3771,"title":{},"body":{"injectables/BoardUc.html":{}}}],["createcardbodyparams",{"_index":4855,"title":{"classes/CreateCardBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["createcardbodyparams})@post(':columnid/cards",{"_index":4859,"title":{},"body":{"controllers/ColumnController.html":{}}}],["createcards",{"_index":3472,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcards(amount",{"_index":3480,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createclient",{"_index":7797,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/LdapService.html":{},"modules/RedisModule.html":{}}}],["createclient(storageprovider",{"_index":7805,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["createcollection",{"_index":7725,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcollection(collectionname",{"_index":7735,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["createcolumn",{"_index":2919,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["createcolumn(urlparams",{"_index":2924,"title":{},"body":{"controllers/BoardController.html":{}}}],["createcolumn(userid",{"_index":3776,"title":{},"body":{"injectables/BoardUc.html":{}}}],["createcolumns",{"_index":3473,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createcolumns(amount",{"_index":3482,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createconfigmoduleoptions",{"_index":10261,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["createcontentelementbodyparams",{"_index":4009,"title":{"classes/CreateContentElementBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/CreateContentElementBodyParams.html":{}}}],["createcontextexternaltool",{"_index":5932,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(currentuser",{"_index":19599,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["createcontextexternaltool(userid",{"_index":5939,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["createcopyfiles",{"_index":21487,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createcopyfiles(sourcefile",{"_index":21532,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createcourse",{"_index":6768,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["createcourse(course",{"_index":6772,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["createcourse(userid",{"_index":23091,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["created",{"_index":2450,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/ExternalToolService.html":{},"injectables/FileSystemAdapter.html":{},"classes/IdentityManagementService.html":{},"injectables/LegacyLogger.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["created.'})@apiresponse({status",{"_index":20911,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["created.id",{"_index":2453,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["createdaccountid",{"_index":13198,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdaccountid.id",{"_index":13200,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["createdat",{"_index":591,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSaveDto.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/County.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"entities/FederalState.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/ResolvedUserResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TimestampsResponse.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/VideoConferenceInfo.html":{}}}],["createdat.$date",{"_index":11220,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createdate",{"_index":2197,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createddate",{"_index":756,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["createdir",{"_index":9960,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdir(folderpath",{"_index":9969,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createdmodel",{"_index":7553,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["createdschoolexternaltool",{"_index":17501,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["createdschoolexternaltooldo",{"_index":19948,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createdto",{"_index":8007,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createdto(undefined",{"_index":16877,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["createdtool",{"_index":5959,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["createelement",{"_index":4005,"title":{},"body":{"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["createelement(urlparams",{"_index":4007,"title":{},"body":{"controllers/CardController.html":{}}}],["createelement(userid",{"_index":4183,"title":{},"body":{"injectables/CardUc.html":{}}}],["createelements",{"_index":3474,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createelements(amount",{"_index":3484,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["createemptyelements",{"_index":4123,"title":{},"body":{"injectables/CardService.html":{}}}],["createemptyelements(card",{"_index":4129,"title":{},"body":{"injectables/CardService.html":{}}}],["createentity",{"_index":2385,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["createentity(domainobject",{"_index":2398,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["createerrorloggable",{"_index":10465,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorloggable(error",{"_index":10477,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse",{"_index":10466,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponse(error",{"_index":10479,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror",{"_index":10467,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforbusinesserror(error",{"_index":10481,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror",{"_index":10468,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforfeatherserror(error",{"_index":10483,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception",{"_index":10469,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponsefornesthttpexception(exception",{"_index":10485,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createerrorresponseforunknownerror",{"_index":10470,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["createetherpad",{"_index":8249,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createetherpad(userid",{"_index":8253,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["createexternaltool",{"_index":9071,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["createexternaltool(currentuser",{"_index":19647,"title":{},"body":{"controllers/ToolController.html":{}}}],["createexternaltool(externaltool",{"_index":9087,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["createexternaltool(userid",{"_index":9194,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["createfile",{"_index":19455,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfilerecord",{"_index":21489,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createfilerecord(name",{"_index":21541,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createfileresponse",{"_index":19456,"title":{},"body":{"classes/TestHelper.html":{}}}],["createfileurlreplacements",{"_index":6190,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createfileurlreplacements(filedtos",{"_index":6197,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["createflowrequest",{"_index":12922,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["creategridelement",{"_index":7498,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategridelement(elementwithposition",{"_index":7509,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["creategroup(name",{"_index":1358,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createhttpexceptionoptions",{"_index":8230,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createhttpexceptionoptions(error",{"_index":8234,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["createidentifier",{"_index":4971,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"miscellaneous/functions.html":{}}}],["createidentifier(content._id",{"_index":5002,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(courseid",{"_index":4974,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(id",{"_index":21545,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createidentifier(lesson.id",{"_index":4987,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(lessonid)}/${createidentifier(content._id)}.html",{"_index":5004,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentifier(task.id",{"_index":5029,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["createidentityprovider",{"_index":12849,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidentityprovider(oidcconfig",{"_index":12868,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper",{"_index":12850,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidpdefaultmapper(idpalias",{"_index":12871,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["createidtoken",{"_index":12140,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createidtoken(userid",{"_index":12149,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createifnotrunning",{"_index":20961,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createifnotrunning(currentuserid",{"_index":20970,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["createiframesubject",{"_index":12141,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createiframesubject(user",{"_index":12151,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["createinstance(targetmodel",{"_index":6748,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["createjwt",{"_index":12708,"title":{},"body":{"classes/JwtTestFactory.html":{}}}],["createjwt(params",{"_index":6879,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtparams",{"_index":6860,"title":{"interfaces/CreateJwtParams.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["createjwtpayload",{"_index":1794,"title":{"interfaces/CreateJwtPayload.html":{}},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/LoginUc.html":{}}}],["createlaunchdata",{"_index":122,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchdata(userid",{"_index":171,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest",{"_index":123,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdata",{"_index":173,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["createlaunchrequest(toollaunchdatado",{"_index":12094,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["createlesson",{"_index":13876,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(lesson",{"_index":13878,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["createlesson(userid",{"_index":23095,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createlogmessageforvalidationerrors",{"_index":8127,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createlogmessageforvalidationerrors(error",{"_index":8134,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["createmessage",{"_index":13395,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessage(message",{"_index":13399,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["createmessagewithcontext",{"_index":14065,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmessagewithcontext(loggable",{"_index":14068,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["createmikroormmodule",{"_index":14540,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["createmock",{"_index":19436,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["createnewaccount",{"_index":15948,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["createnewentityfromdo",{"_index":2386,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["createnewentityfromdo(domainobject",{"_index":2401,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["createnewmigration",{"_index":20436,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewmigration(school",{"_index":20444,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["createnewsparams",{"_index":6898,"title":{"classes/CreateNewsParams.html":{}},"body":{"classes/CreateNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["createnexboard",{"_index":14866,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createnexboard(userid",{"_index":14868,"title":{},"body":{"injectables/NexboardService.html":{}}}],["createoauth2client",{"_index":10828,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["createoauth2client(currentuser",{"_index":15423,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["createoauth2client(data",{"_index":10848,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["createorupdate",{"_index":8726,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdate(domainobject",{"_index":8733,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["createorupdateboardnode",{"_index":16542,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateboardnode(boardnode",{"_index":16546,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["createorupdateidmaccount",{"_index":13174,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createorupdateidmaccount(account",{"_index":13176,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["createorupdatevideoconferenceforscopewithoptions",{"_index":21226,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["createorupdatevideoconferenceforscopewithoptions(scopeid",{"_index":21243,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["createpath",{"_index":21493,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createpath(schoolid",{"_index":21535,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createpreviewdirectorypath",{"_index":16162,"title":{},"body":{"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["createpreviewdirectorypath(filerecord.getschoolid",{"_index":16173,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewdirectorypath(schoolid",{"_index":21536,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createpreviewfilepath",{"_index":16163,"title":{},"body":{"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["createpreviewfilepath(filerecord.getschoolid",{"_index":16169,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewfilepath(schoolid",{"_index":21538,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createpreviewnamehash",{"_index":16164,"title":{},"body":{"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["createpreviewnamehash(filerecord.id",{"_index":16168,"title":{},"body":{"injectables/PreviewService.html":{}}}],["createpreviewnamehash(filerecordid",{"_index":21546,"title":{},"body":{"miscellaneous/functions.html":{}}}],["createprometheusmetricsapp",{"_index":16249,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createprometheusmetricsapp(route",{"_index":16278,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["createqueryordermap",{"_index":20081,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createqueryordermap(sort",{"_index":20083,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["createredisidentifierfromjwtdata",{"_index":12730,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createredisidentifierfromjwtdata(accountid",{"_index":12736,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["createrequest",{"_index":10282,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["createrequest(event",{"_index":10288,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["createrichtextelement",{"_index":4726,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createrichtextelement(text",{"_index":4732,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creates",{"_index":2296,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/FileSystemAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["creates3clientadapter",{"_index":17202,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["creates3clientadapter(config",{"_index":17206,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["createschoolbysuperhero(userid",{"_index":23074,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createschoolexternaltool",{"_index":17506,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(currentuser",{"_index":19915,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["createschoolexternaltool(userid",{"_index":17512,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["createsharetoken",{"_index":17884,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["createsharetoken(currentuser",{"_index":17887,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["createsharetoken(userid",{"_index":18071,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["createstudentstatusforuser(user",{"_index":12050,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createsubmissionitem",{"_index":8045,"title":{},"body":{"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["createsubmissionitem(urlparams",{"_index":8047,"title":{},"body":{"controllers/ElementController.html":{}}}],["createsubmissionitem(userid",{"_index":8086,"title":{},"body":{"injectables/ElementUc.html":{}}}],["createsubmissionitembodyparams",{"_index":6921,"title":{"classes/CreateSubmissionItemBodyParams.html":{}},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"controllers/ElementController.html":{}}}],["createsubmissionitembodyparams})@post(':contentelementid/submissions",{"_index":8050,"title":{},"body":{"controllers/ElementController.html":{}}}],["createtask",{"_index":18961,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtask(task",{"_index":18966,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["createtaskstatus",{"_index":7916,"title":{},"body":{"classes/DtoCreator.html":{}}}],["createtaskstatus(task",{"_index":7933,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["createteacherstatusforuser(user",{"_index":12041,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["createteam",{"_index":4487,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createteam(team",{"_index":4496,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["createtestingmodule",{"_index":22818,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["createtime",{"_index":2198,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["createtmpdir",{"_index":9961,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtmpdir(dirnameprefix",{"_index":9973,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["createtoken",{"_index":18022,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createtoken(payload",{"_index":18029,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["createuser(email",{"_index":1364,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createuserbyadmin(userid",{"_index":23077,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["createusermigrationdto",{"_index":20597,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusermigrationdto(urlpath",{"_index":20601,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["createusersearchindex",{"_index":11229,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["createusertoken(userid",{"_index":1328,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["createwelcomecolumnboard",{"_index":4727,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["createwelcomecolumnboard(coursereference",{"_index":4734,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["creating",{"_index":6901,"title":{},"body":{"classes/CreateNewsParams.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LessonCopyApiParams.html":{},"injectables/NextcloudStrategy.html":{},"classes/TaskCopyApiParams.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["creation",{"_index":3469,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/GlobalValidationPipe.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/SchoolInMigrationError.html":{}}}],["creationyear",{"_index":4977,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["creator",{"_index":6727,"title":{},"body":{"entities/CourseNews.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"classes/TaskFactory.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["creator'})@index",{"_index":9570,"title":{},"body":{"entities/FileEntity.html":{}}}],["creatorid",{"_index":6110,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/CourseNews.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISubmissionProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"entities/TeamNews.html":{}}}],["credential",{"_index":13105,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["credentialdata",{"_index":13192,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["credentialhash",{"_index":384,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{}}}],["credentials",{"_index":7853,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/IKeycloakSettings.html":{},"classes/IdentityManagementOauthService.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"modules/S3ClientModule.html":{}}}],["crit",{"_index":8177,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["crit(loggable",{"_index":8183,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["criteria",{"_index":533,"title":{},"body":{"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["criterion",{"_index":21788,"title":{},"body":{"license.html":{}}}],["cross",{"_index":6327,"title":{},"body":{"modules/CoreModule.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["crossing",{"_index":22635,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["crud",{"_index":2490,"title":{},"body":{"classes/BaseDomainObject.html":{},"controllers/CollaborativeStorageController.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["crud.uc",{"_index":15518,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crud.uc.ts",{"_index":15419,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:15",{"_index":15434,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:22",{"_index":15430,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:41",{"_index":15428,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:50",{"_index":15424,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:59",{"_index":15432,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:72",{"_index":15426,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crud.uc.ts:9",{"_index":15422,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["crudoperation",{"_index":14641,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["cruduc",{"_index":15527,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["crypto",{"_index":1812,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BBBService.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/LessonCopyService.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"dependencies.html":{}}}],["crypto.createhash('sha1",{"_index":2369,"title":{},"body":{"injectables/BBBService.html":{}}}],["crypto.generatekeypairsync('rsa",{"_index":6869,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["cryptojs",{"_index":14166,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(data",{"_index":18511,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.decrypt(value",{"_index":18197,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.aes.encrypt(data",{"_index":18510,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["cryptojs.aes.encrypt(value",{"_index":18194,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["cryptojs.hmacsha1(base_string",{"_index":14176,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["cryptojs.sha256(saveduser.id",{"_index":15963,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["ctltoolstabenabled",{"_index":12081,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["cumbersome",{"_index":2506,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["cure",{"_index":22057,"title":{},"body":{"license.html":{}}}],["curl",{"_index":13162,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currenlty",{"_index":16964,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["current",{"_index":4586,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollectionFilePath.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PaginationResponse.html":{},"classes/PatchMyAccountParams.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolYearService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["currentdate",{"_index":17712,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["currentdatetime",{"_index":11132,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["currentldapid",{"_index":12657,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["currently",{"_index":774,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/BaseRepo.html":{},"modules/BoardModule.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["currentredirect",{"_index":10972,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{}}}],["currentrooms",{"_index":7373,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentrooms.foreach((room",{"_index":7375,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["currentteacher",{"_index":5026,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["currentuser",{"_index":513,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/ImportUserController.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuser.schoolid",{"_index":14622,"title":{},"body":{"controllers/NewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuser.systemid",{"_index":15800,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["currentuser.userid",{"_index":3710,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/LegacySchoolController.html":{},"controllers/NewsController.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["currentuserid",{"_index":4640,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthUc.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["currentusermapper",{"_index":6929,"title":{"classes/CurrentUserMapper.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserService.html":{}}}],["currentusermapper.jwttoicurrentuser(payload",{"_index":12706,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["currentusermapper.userdotoicurrentuser(account.id",{"_index":15167,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["currentusermapper.usertoicurrentuser(account.id",{"_index":13346,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/UserService.html":{}}}],["currentyear",{"_index":11718,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["custom",{"_index":1508,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["custom_error_type",{"_index":22669,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["customarily",{"_index":21916,"title":{},"body":{"license.html":{}}}],["customary",{"_index":22172,"title":{},"body":{"license.html":{}}}],["customer",{"_index":21921,"title":{},"body":{"license.html":{}}}],["customfields",{"_index":1282,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["customizations",{"_index":17843,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["customizing",{"_index":6330,"title":{},"body":{"modules/CoreModule.html":{}}}],["customkey",{"_index":18184,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["customltiproperty",{"_index":6957,"title":{"interfaces/CustomLtiProperty.html":{}},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["customltipropertydo",{"_index":7030,"title":{"classes/CustomLtiPropertyDO.html":{}},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["customltipropertydo('key",{"_index":14324,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["customparam",{"_index":7169,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameter",{"_index":136,"title":{"classes/CustomParameter.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameter.default",{"_index":327,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regex",{"_index":8705,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.regexcomment",{"_index":8706,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.scope",{"_index":326,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some",{"_index":8697,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.some((item",{"_index":8695,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["customparameter.type",{"_index":308,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameter.type}/${contextexternaltool.contextref.type",{"_index":319,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameterdo.default",{"_index":9035,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.description",{"_index":9034,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.displayname",{"_index":9033,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.isoptional",{"_index":9041,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.name",{"_index":9032,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regex",{"_index":9036,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdo.regexcomment",{"_index":9037,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterdos",{"_index":135,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["customparameterdos.filter",{"_index":289,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["customparameterdto",{"_index":8908,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterentity",{"_index":7086,"title":{"classes/CustomParameterEntity.html":{}},"body":{"classes/CustomParameterEntity.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["customparameterentityfactory",{"_index":8506,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentityfactory.build",{"_index":8513,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["customparameterentry",{"_index":181,"title":{"classes/CustomParameterEntry.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/CustomParameterEntry.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterentryentity",{"_index":5680,"title":{"classes/CustomParameterEntryEntity.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/ExternalToolRepoMapper.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["customparameterentryparam",{"_index":5731,"title":{"classes/CustomParameterEntryParam.html":{}},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameterEntryParam.html":{},"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterentryresponse",{"_index":5839,"title":{"classes/CustomParameterEntryResponse.html":{}},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["customparameterfactory",{"_index":7117,"title":{"classes/CustomParameterFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.buildlist(number",{"_index":7170,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterfactory.define(customparameter",{"_index":7160,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterlocation",{"_index":146,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.body",{"_index":7162,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.path",{"_index":8509,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocation.query",{"_index":8939,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolLaunchMapper.html":{}}}],["customparameterlocationparams",{"_index":7188,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.body",{"_index":8940,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.path",{"_index":8937,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterlocationparams.query",{"_index":8938,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterparam",{"_index":5862,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparam.defaultvalue",{"_index":8974,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.description",{"_index":8973,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.displayname",{"_index":8972,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.isoptional",{"_index":8980,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.name",{"_index":5829,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparam.regex",{"_index":8975,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.regexcomment",{"_index":8976,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["customparameterparam.value",{"_index":5830,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams",{"_index":5820,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterparams.map",{"_index":5861,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["customparameterparams.map((customparameterparam",{"_index":5828,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["customparameterpostparams",{"_index":7178,"title":{"classes/CustomParameterPostParams.html":{}},"body":{"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["customparameterresponse",{"_index":5647,"title":{"classes/CustomParameterResponse.html":{}},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["customparameters",{"_index":275,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameters.map",{"_index":8877,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["customparameters.map((customparameterdo",{"_index":9031,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscope",{"_index":195,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.context",{"_index":281,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.global",{"_index":278,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscope.school",{"_index":279,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparameterscopetypeparams",{"_index":7194,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.context",{"_index":8935,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.global",{"_index":8933,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparameterscopetypeparams.school",{"_index":8934,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype",{"_index":196,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparametertype.auto_contextid",{"_index":312,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_contextname",{"_index":314,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_schoolid",{"_index":310,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.auto_schoolnumber",{"_index":320,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.boolean",{"_index":323,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.number",{"_index":324,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertype.string",{"_index":325,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["customparametertypeparams",{"_index":7197,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextid",{"_index":8944,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_contextname",{"_index":8945,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolid",{"_index":8946,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.auto_schoolnumber",{"_index":8947,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.boolean",{"_index":8942,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.number",{"_index":8943,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customparametertypeparams.string",{"_index":8941,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["customproviderclass.name",{"_index":13410,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["customs",{"_index":6979,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["customtoparameterlocationmapping",{"_index":19758,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["customtoparameterlocationmapping[location",{"_index":19768,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["cycle",{"_index":3549,"title":{},"body":{"modules/BoardModule.html":{}}}],["d",{"_index":6270,"title":{},"body":{"injectables/CopyHelperService.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["damages",{"_index":22205,"title":{},"body":{"license.html":{}}}],["das",{"_index":4765,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["dash",{"_index":21643,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["dashboard",{"_index":7219,"title":{},"body":{"controllers/DashboardController.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["dashboard.getelement(position",{"_index":7639,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.getid",{"_index":7473,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboard.getuserid",{"_index":7641,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.model.mapper",{"_index":7595,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboard.moveelement(from",{"_index":7638,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard.setlearnrooms(courses",{"_index":7634,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["dashboard_repo",{"_index":13385,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardcontroller",{"_index":7217,"title":{"controllers/DashboardController.html":{}},"body":{"controllers/DashboardController.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardelement",{"_index":7417,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardentity",{"_index":7251,"title":{"classes/DashboardEntity.html":{}},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IGridElement.html":{}}}],["dashboardentity(modelentity.id",{"_index":7546,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["dashboardentity(new",{"_index":7598,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardgridelementmodel",{"_index":7404,"title":{"entities/DashboardGridElementModel.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementmodelproperties",{"_index":7415,"title":{"interfaces/DashboardGridElementModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["dashboardgridelementresponse",{"_index":7436,"title":{"classes/DashboardGridElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse",{"_index":7444,"title":{"classes/DashboardGridSubElementResponse.html":{}},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["dashboardgridsubelementresponse(metadata",{"_index":7492,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardid",{"_index":7242,"title":{},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{}}}],["dashboardmapper",{"_index":7232,"title":{"classes/DashboardMapper.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardMapper.html":{}}}],["dashboardmapper.mapgridelement(elementwithposition",{"_index":7475,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maplearnroom(groupmetadata",{"_index":7491,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dashboardmapper.maptoresponse(dashboard",{"_index":7241,"title":{},"body":{"controllers/DashboardController.html":{}}}],["dashboardmodel",{"_index":7606,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardmodelentity",{"_index":7416,"title":{"entities/DashboardModelEntity.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{}}}],["dashboardmodelmapper",{"_index":7496,"title":{"injectables/DashboardModelMapper.html":{}},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardprops",{"_index":7268,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["dashboardrepo",{"_index":7581,"title":{"injectables/DashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{}}}],["dashboardresponse",{"_index":7236,"title":{"classes/DashboardResponse.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["dashboarduc",{"_index":7234,"title":{"injectables/DashboardUc.html":{}},"body":{"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"modules/LearnroomApiModule.html":{}}}],["dashboardurl",{"_index":15109,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["dashboardurl.tostring",{"_index":15116,"title":{},"body":{"injectables/OAuthService.html":{}}}],["dashboardurlparams",{"_index":7223,"title":{"classes/DashboardUrlParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/DashboardUrlParams.html":{}}}],["data",{"_index":163,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountSearchListResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"interfaces/CopyFiles.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardMapper.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ElementContentBody.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/FeathersService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElementContentBody.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileResponseBuilder.html":{},"classes/ForbiddenLoggableException.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GlobalValidationPipe.html":{},"classes/GroupRoleUnknownLoggable.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacyLogger.html":{},"controllers/LoginController.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"interfaces/Meta.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"interfaces/PreviewFileParams.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/PublicSystemListResponse.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"interfaces/SuccessfulRes.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"classes/ToolLaunchData.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceListResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["data.basepath",{"_index":1552,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.body",{"_index":17142,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentlength",{"_index":17145,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contentrange",{"_index":17146,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents.map((p",{"_index":17183,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contents?.length",{"_index":17182,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contenttype",{"_index":17144,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.contextexternaltool.contextref.id",{"_index":14229,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["data.dto.ts",{"_index":15346,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:11",{"_index":15349,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:13",{"_index":15348,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:7",{"_index":15352,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.dto.ts:9",{"_index":15350,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["data.etag",{"_index":17147,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["data.externalgroups",{"_index":16002,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalgroups.map((externalgroup",{"_index":16004,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externalschool",{"_index":15836,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.externalid",{"_index":15839,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool.officialschoolnumber",{"_index":15840,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externalschool?.officialschoolnumber",{"_index":15087,"title":{},"body":{"injectables/OAuthService.html":{}}}],["data.externaltool",{"_index":14228,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["data.externaluser",{"_index":15999,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["data.externaluser.externalid",{"_index":15086,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.externaluser?.externalid",{"_index":12652,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["data.gridelement.getcontent",{"_index":7477,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.id",{"_index":6072,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.mountsdescription",{"_index":1554,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.name",{"_index":6075,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.port",{"_index":1550,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["data.pos",{"_index":7478,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["data.response",{"_index":18329,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["data.response.ts",{"_index":20147,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:11",{"_index":20149,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:14",{"_index":20150,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:17",{"_index":20151,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.response.ts:3",{"_index":20148,"title":{},"body":{"classes/UserDataResponse.html":{}}}],["data.sourceid",{"_index":6074,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["data.system.systemid",{"_index":15997,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["data.ts",{"_index":16282,"title":{},"body":{"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["data.ts:11",{"_index":19735,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:4",{"_index":16284,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:5",{"_index":19736,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:6",{"_index":16285,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:7",{"_index":19739,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data.ts:8",{"_index":16283,"title":{},"body":{"classes/PropertyData.html":{}}}],["data.ts:9",{"_index":19737,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["data/federalstates.ts",{"_index":21567,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/generateseeddata",{"_index":11113,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["data/generateseeddata.ts",{"_index":21574,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/roles.ts",{"_index":21568,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/schools.ts",{"_index":21571,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/schoolyears.ts",{"_index":21573,"title":{},"body":{"miscellaneous/functions.html":{}}}],["data/systems.ts",{"_index":21577,"title":{},"body":{"miscellaneous/functions.html":{}}}],["database",{"_index":7652,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"modules/DatabaseManagementModule.html":{},"interfaces/GlobalConstants.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ITaskParent.html":{},"classes/KeycloakConsole.html":{},"classes/MongoPatterns.html":{},"interfaces/Options.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["database.js",{"_index":10276,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["database.module.ts",{"_index":14532,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:31",{"_index":14533,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database.module.ts:42",{"_index":14535,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/mongo",{"_index":14531,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["database/types",{"_index":10324,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["databasemanagementconsole",{"_index":7644,"title":{"classes/DatabaseManagementConsole.html":{}},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["databasemanagementcontroller",{"_index":7684,"title":{"controllers/DatabaseManagementController.html":{}},"body":{"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementmodule",{"_index":7714,"title":{"modules/DatabaseManagementModule.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["databasemanagementservice",{"_index":7718,"title":{"injectables/DatabaseManagementService.html":{}},"body":{"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["databasemanagementuc",{"_index":7649,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["dataformats",{"_index":22866,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["datamodel",{"_index":22523,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["datawithdefaults",{"_index":15442,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["date",{"_index":83,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthenticationService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/CardService.html":{},"classes/Class.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/County.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/ElementContentBody.html":{},"classes/ExternalGroupDto.html":{},"entities/FederalState.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesRepo.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/IUserProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/MigrationResponse.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/OauthConfig.html":{},"classes/OauthMigrationDto.html":{},"classes/OidcConfig.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"classes/ResolvedUserResponse.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SanisLaufzeitResponse.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"classes/TimestampsResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/UserScope.html":{},"classes/VideoConferenceInfo.html":{},"license.html":{}}}],["date().gettime",{"_index":1839,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["date(2020",{"_index":13520,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["date(date.now",{"_index":5512,"title":{},"body":{"injectables/ContentElementFactory.html":{},"classes/CourseFactory.html":{},"classes/FileRecordFactory.html":{},"controllers/OauthSSOController.html":{},"classes/TaskFactory.html":{},"classes/TaskScope.html":{},"injectables/UserLoginMigrationService.html":{}}}],["date(now.gettime",{"_index":20476,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["date(user.createdtimestamp",{"_index":13142,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["date.now",{"_index":4474,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"interfaces/CreateJwtParams.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/JwtTestFactory.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["date.setdate(date.getdate",{"_index":18111,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["days",{"_index":7780,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"license.html":{}}}],["dayssincedeletion",{"_index":7783,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["db",{"_index":779,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/DatabaseManagementService.html":{},"classes/ImportUserScope.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserRepo.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["db.service",{"_index":830,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{}}}],["db.service.ts",{"_index":1161,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:13",{"_index":1164,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:134",{"_index":1175,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db.service.ts:142",{"_index":1168,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["db_password",{"_index":10258,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"interfaces/GlobalConstants.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["db_url",{"_index":10259,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"interfaces/GlobalConstants.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["db_username",{"_index":10260,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"interfaces/GlobalConstants.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["dbc",{"_index":12221,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["dbcaccountid",{"_index":13100,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcaccountid:${accountdbcaccountid",{"_index":13116,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbcsystemid",{"_index":13102,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid",{"_index":13101,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["dbcuserid:${accountdbcuserid",{"_index":13120,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["dbildungscloud",{"_index":22254,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["dbname",{"_index":14537,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["dd",{"_index":14060,"title":{},"body":{"modules/LoggerModule.html":{}}}],["de",{"_index":7155,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"classes/Oauth2ToolConfigFactory.html":{},"entities/User.html":{}}}],["dealing",{"_index":22525,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["debug",{"_index":5400,"title":{},"body":{"classes/ConsentRequestBody.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["debug(loggable",{"_index":14027,"title":{},"body":{"injectables/Logger.html":{}}}],["debug(message",{"_index":11524,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["debugger",{"_index":21634,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["debugging",{"_index":10278,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["december",{"_index":21857,"title":{},"body":{"license.html":{}}}],["decide",{"_index":4631,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"classes/ErrorLoggable.html":{},"license.html":{},"todo.html":{}}}],["decides",{"_index":12885,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["decisions",{"_index":22490,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["declarations",{"_index":430,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["declare",{"_index":16474,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["declared",{"_index":3886,"title":{},"body":{"classes/BusinessError.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["declining",{"_index":22023,"title":{},"body":{"license.html":{}}}],["decoded",{"_index":21550,"title":{},"body":{"miscellaneous/functions.html":{}}}],["decodedjwt",{"_index":1833,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/OAuthService.html":{}}}],["decodedjwt.accountid",{"_index":1836,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodedjwt.jti",{"_index":1835,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["decodehtmlentities",{"_index":2787,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"miscellaneous/functions.html":{}}}],["decodehtmlentities()@apiproperty({description",{"_index":7450,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["decorated",{"_index":10540,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["decorator",{"_index":8161,"title":{},"body":{"classes/ErrorLoggable.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["decorator/auth.decorator",{"_index":14099,"title":{},"body":{"controllers/LoginController.html":{}}}],["decorators",{"_index":364,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"classes/BoardResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"controllers/CollaborativeStorageController.html":{},"entities/ColumnBoardNode.html":{},"entities/ColumnBoardTarget.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRefParams.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"entities/CourseGroup.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"entities/DashboardGridElementModel.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"classes/DeleteFilesConsole.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalState.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"classes/FileElementResponse.html":{},"entities/FileEntity.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"controllers/FileSecurityController.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalValidationPipe.html":{},"entities/GroupEntity.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"controllers/H5PEditorController.html":{},"classes/IdParams.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"controllers/LegacySchoolController.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"entities/LessonEntity.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"classes/OidcContextResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"entities/PseudonymEntity.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"classes/RichTextElementResponse.html":{},"entities/Role.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"entities/SubmissionItemNode.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserEntity.html":{},"classes/TimestampsResponse.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserController.html":{},"classes/UserDataResponse.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserParams.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["decoupled",{"_index":22864,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["decrypt",{"_index":11389,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decrypt(data",{"_index":11391,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["decryptedclientsecret",{"_index":15133,"title":{},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["decryptedstring",{"_index":18196,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["deemed",{"_index":21845,"title":{},"body":{"license.html":{}}}],["deepmocked",{"_index":22807,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["deeppartial",{"_index":700,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["default",{"_index":329,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolScope.html":{},"injectables/CopyHelperService.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"entities/DashboardModelEntity.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"modules/ErrorModule.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolScope.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IToolFeatures.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"injectables/Logger.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/PaginationParams.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"controllers/ServerController.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/ToolConfiguration.html":{},"entities/User.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["default...what",{"_index":6415,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["default.color",{"_index":6373,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["default.description",{"_index":6379,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["default.name",{"_index":6384,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["default.schema.json",{"_index":22330,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["default_errorcode",{"_index":14990,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["default_language",{"_index":11248,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["default_message",{"_index":14991,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["defaultclientinternalid",{"_index":12863,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultcolumns",{"_index":7308,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["defaultencryptionservice",{"_index":8108,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["defaulterror",{"_index":11573,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultmapper",{"_index":12967,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper.id",{"_index":12993,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmapper?.id",{"_index":12970,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["defaultmessage",{"_index":1493,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/IErrorType.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["defaultmikroormoptions",{"_index":10272,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["defaultoauthclientbody",{"_index":15420,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["defaultoptions",{"_index":14547,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["defaults",{"_index":1035,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ConsentRequestBody.html":{},"classes/CreateNewsParams.html":{},"injectables/FileSystemAdapter.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/PaginationParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["defaultscope",{"_index":15893,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["defaultscopes",{"_index":11936,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["defaultsecretreplacementhinttext",{"_index":11117,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["defaulttestpassword",{"_index":740,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["defaulttestpasswordhash",{"_index":742,"title":{},"body":{"classes/AccountFactory.html":{}}}],["defaultvalue",{"_index":7181,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["defaultvideoconferenceoptions",{"_index":20954,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everyattendeejoinsmuted",{"_index":20955,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.everybodyjoinsasmoderator",{"_index":20956,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defaultvideoconferenceoptions.moderatormustapprovejoinrequests",{"_index":20957,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["defective",{"_index":22198,"title":{},"body":{"license.html":{}}}],["defending",{"_index":21712,"title":{},"body":{"license.html":{}}}],["defenses",{"_index":22155,"title":{},"body":{"license.html":{}}}],["define",{"_index":672,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"entities/CourseNews.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"entities/SchoolNews.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["define(this",{"_index":715,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["defined",{"_index":27,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IGridElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"modules/RocketChatModule.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"classes/SSOLoginQuery.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["defines",{"_index":22366,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["defining",{"_index":2515,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["definition",{"_index":1499,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"modules/AuthenticationModule.html":{},"classes/ErrorResponse.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["definitions",{"_index":11226,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["delay",{"_index":11589,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["delay(ms",{"_index":13035,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["delete",{"_index":10,"title":{},"body":{"classes/AbstractAccountService.html":{},"controllers/AccountController.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardRepo.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FederalStateRepo.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacySchoolRepo.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonRepo.html":{},"injectables/LessonUC.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/RoleRepo.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SystemRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["delete(':boardid",{"_index":2977,"title":{},"body":{"controllers/BoardController.html":{}}}],["delete(':cardid",{"_index":4067,"title":{},"body":{"controllers/CardController.html":{}}}],["delete(':columnid",{"_index":4881,"title":{},"body":{"controllers/ColumnController.html":{}}}],["delete(':contentelementid",{"_index":8076,"title":{},"body":{"controllers/ElementController.html":{}}}],["delete(':contextexternaltoolid",{"_index":19628,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":19605,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["delete(':externaltoolid",{"_index":19702,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':externaltoolid')@apiforbiddenresponse({description",{"_index":19652,"title":{},"body":{"controllers/ToolController.html":{}}}],["delete(':id",{"_index":584,"title":{},"body":{"controllers/AccountController.html":{}}}],["delete(':id')@apioperation({summary",{"_index":492,"title":{},"body":{"controllers/AccountController.html":{}}}],["delete(':importuserid/match",{"_index":12282,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["delete(':lessonid",{"_index":13658,"title":{},"body":{"controllers/LessonController.html":{}}}],["delete(':newsid",{"_index":14599,"title":{},"body":{"controllers/NewsController.html":{}}}],["delete(':schoolexternaltoolid",{"_index":19946,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":19919,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["delete(':scope/:scopeid",{"_index":21049,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':scope/:scopeid')@apioperation({summary",{"_index":21022,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["delete(':submissionid",{"_index":18255,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["delete(':taskid",{"_index":18792,"title":{},"body":{"controllers/TaskController.html":{}}}],["delete('auth/sessions/consent",{"_index":15569,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete('clients/:id",{"_index":15542,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["delete(@param",{"_index":13662,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(accountid",{"_index":1056,"title":{},"body":{"injectables/AccountService.html":{}}}],["delete(board",{"_index":4737,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["delete(card",{"_index":4131,"title":{},"body":{"injectables/CardService.html":{}}}],["delete(column",{"_index":4907,"title":{},"body":{"injectables/ColumnService.html":{}}}],["delete(domainobject",{"_index":2476,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{}}}],["delete(domainobjects",{"_index":2403,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["delete(element",{"_index":5534,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["delete(entities",{"_index":910,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["delete(group",{"_index":10713,"title":{},"body":{"injectables/GroupService.html":{}}}],["delete(id",{"_index":25,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/NewsUc.html":{}}}],["delete(path",{"_index":1741,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(paths",{"_index":17113,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["delete(submission",{"_index":18455,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["delete(subpath",{"_index":1739,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["delete(task",{"_index":19137,"title":{},"body":{"injectables/TaskService.html":{}}}],["delete(urlparams",{"_index":13656,"title":{},"body":{"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{}}}],["delete(userid",{"_index":13963,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{}}}],["delete.vistor",{"_index":3311,"title":{},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{}}}],["delete.vistor.ts",{"_index":16506,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:18",{"_index":16509,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:24",{"_index":16516,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:29",{"_index":16515,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:34",{"_index":16512,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:39",{"_index":16517,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:46",{"_index":16518,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:51",{"_index":16519,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:56",{"_index":16521,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:61",{"_index":16511,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete.vistor.ts:65",{"_index":16514,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["delete_files_of_parent",{"_index":11364,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["deleteaccountbyid",{"_index":484,"title":{},"body":{"controllers/AccountController.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteaccountbyid(accountid",{"_index":12217,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["deleteaccountbyid(currentuser",{"_index":490,"title":{},"body":{"controllers/AccountController.html":{}}}],["deleteaccountbyid(id",{"_index":13075,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["deleteboard",{"_index":2920,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["deleteboard(@param",{"_index":2978,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(urlparams",{"_index":2935,"title":{},"body":{"controllers/BoardController.html":{}}}],["deleteboard(userid",{"_index":3778,"title":{},"body":{"injectables/BoardUc.html":{}}}],["deletebyexternaltoolid",{"_index":17398,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyexternaltoolid(toolid",{"_index":17404,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["deletebyid",{"_index":878,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["deletebyid(accountid",{"_index":886,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["deletebyid(id",{"_index":2407,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["deletebyschoolexternaltoolid",{"_index":5902,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":5909,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletebyschoolexternaltoolids",{"_index":5745,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":5753,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["deletebyuserid",{"_index":11,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/PseudonymService.html":{}}}],["deletebyuserid(userid",{"_index":37,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/PseudonymService.html":{}}}],["deletecard",{"_index":3758,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{}}}],["deletecard(@param",{"_index":4068,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(urlparams",{"_index":4016,"title":{},"body":{"controllers/CardController.html":{}}}],["deletecard(userid",{"_index":3780,"title":{},"body":{"injectables/BoardUc.html":{}}}],["deletecolumn",{"_index":3759,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["deletecolumn(@param",{"_index":4882,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(urlparams",{"_index":4861,"title":{},"body":{"controllers/ColumnController.html":{}}}],["deletecolumn(userid",{"_index":3783,"title":{},"body":{"injectables/BoardUc.html":{}}}],["deletecontextexternaltool",{"_index":5903,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(contextexternaltool",{"_index":5911,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["deletecontextexternaltool(currentuser",{"_index":19604,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["deletecontextexternaltool(userid",{"_index":5941,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["deleted",{"_index":500,"title":{},"body":{"controllers/AccountController.html":{},"injectables/BaseDORepo.html":{},"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["deletedat",{"_index":9562,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"interfaces/IUserProperties.html":{},"classes/TimestampsResponse.html":{},"entities/User.html":{},"injectables/UserRepo.html":{}}}],["deletedcount",{"_index":7757,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["deletedexternaltoolpseudonyms",{"_index":16426,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedfoldername",{"_index":17098,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedid",{"_index":14635,"title":{},"body":{"controllers/NewsController.html":{}}}],["deletedirectory",{"_index":17101,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedirectory(path",{"_index":17115,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletedpseudonyms",{"_index":16425,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletedsince",{"_index":6112,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["deleteelement",{"_index":4176,"title":{},"body":{"injectables/CardUc.html":{},"controllers/ElementController.html":{}}}],["deleteelement(urlparams",{"_index":8052,"title":{},"body":{"controllers/ElementController.html":{}}}],["deleteelement(userid",{"_index":4185,"title":{},"body":{"injectables/CardUc.html":{}}}],["deleteentitybyid",{"_index":2387,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["deleteentitybyid(id",{"_index":2409,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["deleteexternaltool",{"_index":9072,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["deleteexternaltool(currentuser",{"_index":19651,"title":{},"body":{"controllers/ToolController.html":{}}}],["deleteexternaltool(toolid",{"_index":9089,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["deleteexternaltool(userid",{"_index":9196,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["deleteexternaltoolpseudonymsbyuserid",{"_index":16392,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deleteexternaltoolpseudonymsbyuserid(userid",{"_index":16402,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["deletefile",{"_index":7798,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefile(file",{"_index":7810,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage",{"_index":7799,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefileinstorage(file",{"_index":7813,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletefilesconsole",{"_index":7769,"title":{"classes/DeleteFilesConsole.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{}}}],["deletefilesofparent",{"_index":10103,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent(@rabbitpayload",{"_index":10200,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["deletefilesofparent(parentid",{"_index":10110,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["deletefilesofparent(payload",{"_index":10178,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:finished",{"_index":10310,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesofparent:started",{"_index":10308,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["deletefilesuc",{"_index":7774,"title":{"injectables/DeleteFilesUc.html":{}},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["deletegroup(groupname",{"_index":1362,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteidentityprovider",{"_index":12851,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteidentityprovider(alias",{"_index":12874,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["deleteimportusersbyschool",{"_index":12455,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deleteimportusersbyschool(school",{"_index":12459,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["deletelesson",{"_index":13940,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletelesson(lesson",{"_index":13944,"title":{},"body":{"injectables/LessonService.html":{}}}],["deletemarkedfiles",{"_index":7772,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{}}}],["deletemarkedfiles(dayssincedeletion",{"_index":7776,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["deletemarkedfiles(thresholddate",{"_index":7815,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletenode",{"_index":16507,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deletenode(domainobject",{"_index":16510,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["deleteoauth2client",{"_index":10829,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["deleteoauth2client(@currentuser",{"_index":15543,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(currentuser",{"_index":15425,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["deleteoauth2client(id",{"_index":10850,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["deleteobjectcommand",{"_index":7818,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deleteobjects",{"_index":17168,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deleteobjectscommand",{"_index":17126,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["deletepreviews",{"_index":16131,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepreviews(filerecords",{"_index":16144,"title":{},"body":{"injectables/PreviewService.html":{}}}],["deletepseudonymsbyuserid",{"_index":8727,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletepseudonymsbyuserid(userid",{"_index":8735,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["deletes",{"_index":493,"title":{},"body":{"controllers/AccountController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/IdentityManagementService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool",{"_index":17507,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(currentuser",{"_index":19918,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["deleteschoolexternaltool(userid",{"_index":17514,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["deleteschoolexternaltoolbyid",{"_index":17471,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":17479,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["deletesubmissions",{"_index":19135,"title":{},"body":{"injectables/TaskService.html":{}}}],["deletesubmissions(task",{"_index":19139,"title":{},"body":{"injectables/TaskService.html":{}}}],["deleteteam",{"_index":4488,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteteam(teamid",{"_index":4500,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["deleteuser(username",{"_index":1367,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["deleteuserdatafromclasses",{"_index":4396,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromclasses(userid",{"_index":4400,"title":{},"body":{"injectables/ClassService.html":{}}}],["deleteuserdatafromcourse",{"_index":6828,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcourse(userid",{"_index":6830,"title":{},"body":{"injectables/CourseService.html":{}}}],["deleteuserdatafromcoursegroup",{"_index":6672,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromcoursegroup(userid",{"_index":6675,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["deleteuserdatafromlessons",{"_index":13941,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromlessons(userid",{"_index":13946,"title":{},"body":{"injectables/LessonService.html":{}}}],["deleteuserdatafromteams",{"_index":19342,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserdatafromteams(userid",{"_index":19346,"title":{},"body":{"injectables/TeamService.html":{}}}],["deleteuserloginmigration",{"_index":20437,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deleteuserloginmigration(userloginmigration",{"_index":20446,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["deletevisitor",{"_index":3282,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["deletewithdescendants",{"_index":3371,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deletewithdescendants(domainobject",{"_index":3374,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["deleting",{"_index":7786,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["deletion",{"_index":5279,"title":{},"body":{"modules/CommonToolModule.html":{},"classes/DeleteFilesConsole.html":{},"injectables/S3ClientAdapter.html":{}}}],["deletioncommand",{"_index":7863,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["deletions",{"_index":7838,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["dem",{"_index":4757,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["demand",{"_index":14967,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["denied",{"_index":21992,"title":{},"body":{"license.html":{}}}],["denominated",{"_index":22118,"title":{},"body":{"license.html":{}}}],["depend",{"_index":22474,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dependencies",{"_index":428,"title":{"dependencies.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"dependencies.html":{},"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["dependency",{"_index":3548,"title":{},"body":{"modules/BoardModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dependent",{"_index":22989,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["depending",{"_index":9995,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["depends",{"_index":9981,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["deployment",{"_index":13158,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["deployments",{"_index":22544,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["deprecated",{"_index":102,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ISchoolProperties.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{},"injectables/PermissionService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["deprecated.controller.ts",{"_index":21016,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:107",{"_index":21023,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:47",{"_index":21021,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.controller.ts:87",{"_index":21025,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["deprecated.response",{"_index":21031,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecated.response.ts",{"_index":7870,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:10",{"_index":20877,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:12",{"_index":20876,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecated.response.ts:25",{"_index":7894,"title":{},"body":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["deprecated.response.ts:37",{"_index":7876,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:43",{"_index":7874,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}}}],["deprecated.response.ts:8",{"_index":20878,"title":{},"body":{"classes/VideoConferenceBaseResponse.html":{}}}],["deprecatedvideoconferenceinforesponse",{"_index":7867,"title":{"classes/DeprecatedVideoConferenceInfoResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprecatedvideoconferencejoinresponse",{"_index":7886,"title":{"classes/DeprecatedVideoConferenceJoinResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["deprive",{"_index":22126,"title":{},"body":{"license.html":{}}}],["depth",{"_index":3288,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["der",{"_index":4770,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["derivecopyname",{"_index":6245,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopyname(name",{"_index":6249,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivecopystatus",{"_index":6191,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["derivecopystatus(contentstatus",{"_index":13708,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["derivecopystatus(filecopystatus",{"_index":18845,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["derivecopystatus(filedtos",{"_index":6201,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["derivecoursestatus",{"_index":6519,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivecoursestatus(originalcourse",{"_index":6529,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["derivestatusfromelements",{"_index":6246,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["derivestatusfromelements(elements",{"_index":6252,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["des",{"_index":4788,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["desc",{"_index":3618,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/SortingParams.html":{}}}],["descendant",{"_index":3609,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendant.path.match(`^${n.pathofchildren",{"_index":3617,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["descendants",{"_index":3199,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["describe",{"_index":22521,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"course",{"_index":22721,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe(\"when",{"_index":22723,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('[method",{"_index":22751,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('createcourse",{"_index":22722,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('somefunction",{"_index":22824,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["describe('when",{"_index":22752,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["described",{"_index":15252,"title":{},"body":{"classes/OauthClientBody.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["describes",{"_index":2499,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["description",{"_index":379,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ApiValidationErrorResponse.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardUrlParams.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"classes/CardIdsParams.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnUrlParams.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ConverterUtil.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"modules/CoreModule.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchParams.html":{},"modules/FeathersModule.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordParams.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"classes/FilterNewsParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/GuardAgainst.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsScope.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/IdParams.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"modules/InterceptorModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConfig.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/LtiToolFactory.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"interfaces/Options.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RenameFileParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolParams.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserInfoResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"index.html":{},"properties.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["description.a",{"_index":22695,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["descriptioncommit",{"_index":22897,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["descriptioninputformat",{"_index":11951,"title":{},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"classes/TaskWithStatusVo.html":{}}}],["descriptionoroptions",{"_index":13251,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["descriptions",{"_index":12055,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["descriptive",{"_index":11456,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["deserialize",{"_index":3845,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["deserialize(bsondocuments",{"_index":3847,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["deserializes",{"_index":3849,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["design",{"_index":22256,"title":{"additional-documentation/nestjs-application/api-design.html":{}},"body":{"properties.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["designated",{"_index":21931,"title":{},"body":{"license.html":{}}}],["designed",{"_index":21680,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["desireable",{"_index":15592,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["desired",{"_index":22750,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["destination",{"_index":6050,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["destinationcourse",{"_index":3003,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destinationcourse).then((status",{"_index":3054,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["destinationcourse.id",{"_index":13847,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["destinationcourseid",{"_index":6048,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["destinationlesson",{"_index":13703,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["destroyed",{"_index":16488,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["detail",{"_index":22180,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["detail.response",{"_index":1521,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["detail.response.ts",{"_index":20830,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detail.response.ts:1",{"_index":20832,"title":{},"body":{"classes/ValidationErrorDetailResponse.html":{}}}],["detailed",{"_index":22456,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["details",{"_index":1473,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/IdentityManagementService.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationError.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["detect",{"_index":11187,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"miscellaneous/functions.html":{}}}],["detectcontenttypeorthrow",{"_index":8551,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detectcontenttypeorthrow(imagebuffer",{"_index":8559,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["detected",{"_index":9828,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["detection",{"_index":75,"title":{},"body":{"classes/AbstractAccountService.html":{}}}],["determine",{"_index":22453,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["determinebbbrole",{"_index":21227,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["determinebbbrole(userid",{"_index":21245,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["determineinput",{"_index":16314,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determineinput(systemid",{"_index":16323,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["determinelaunchrequestmethod",{"_index":124,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinelaunchrequestmethod(properties",{"_index":176,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["determinenewroomsin",{"_index":7255,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["determinenewroomsin(rooms",{"_index":7278,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["determinestatus",{"_index":17472,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinestatus(tool",{"_index":17481,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["determinetoolconfigurationstatus",{"_index":5286,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determinetoolconfigurationstatus(externaltool",{"_index":5288,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["determining",{"_index":16097,"title":{},"body":{"classes/PatchOrderParams.html":{},"license.html":{}}}],["deubg",{"_index":22877,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["dev",{"_index":22379,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["develop",{"_index":13159,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["developer",{"_index":5404,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["developers",{"_index":21702,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["development",{"_index":11421,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"classes/KeycloakConsole.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["devices",{"_index":4170,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["dfsdfsf",{"_index":21659,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["di",{"_index":22586,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dialnumber",{"_index":2199,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["dictionary",{"_index":10248,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["didnt",{"_index":22909,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["diffenrent",{"_index":22314,"title":{},"body":{"todo.html":{}}}],["differ",{"_index":22179,"title":{},"body":{"license.html":{}}}],["different",{"_index":4169,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/NewsRepo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["differentiation",{"_index":23044,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["differently",{"_index":22014,"title":{},"body":{"license.html":{}}}],["differs",{"_index":22741,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dir",{"_index":11126,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["direct",{"_index":12905,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["direction",{"_index":21833,"title":{},"body":{"license.html":{}}}],["directions",{"_index":21937,"title":{},"body":{"license.html":{}}}],["directly",{"_index":954,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["directories",{"_index":9606,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["directory",{"_index":9971,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["dirnameprefix",{"_index":9977,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["dirpath",{"_index":10017,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["disable",{"_index":1299,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/ConsoleWriterService.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SystemRepo.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserRepo.html":{},"todo.html":{}}}],["disabled",{"_index":15098,"title":{},"body":{"injectables/OAuthService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/VideoConferenceService.html":{}}}],["disallow",{"_index":23047,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["disclaim",{"_index":21867,"title":{},"body":{"license.html":{}}}],["disclaimer",{"_index":22189,"title":{},"body":{"license.html":{}}}],["disclaiming",{"_index":22011,"title":{},"body":{"license.html":{}}}],["discovery",{"_index":2504,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"todo.html":{}}}],["discriminator",{"_index":8038,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["discriminatorcolumn",{"_index":3399,"title":{},"body":{"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CourseNews.html":{},"classes/ExternalToolConfigEntity.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["discriminatorvalue",{"_index":2620,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/CourseNews.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/INewsProperties.html":{},"entities/LessonBoardElement.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigEntity.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SchoolNews.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["discriminatory",{"_index":22140,"title":{},"body":{"license.html":{}}}],["discussed",{"_index":2574,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["discussion",{"_index":22508,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["discussion_enabled=false",{"_index":23009,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["display",{"_index":15873,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{},"classes/PublicSystemResponse.html":{},"classes/ToolReferenceResponse.html":{},"license.html":{}}}],["displayat",{"_index":6726,"title":{},"body":{"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"classes/UpdateNewsParams.html":{}}}],["displaycolor",{"_index":3715,"title":{},"body":{"classes/BoardTaskResponse.html":{},"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["displayed",{"_index":6908,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/UpdateNewsParams.html":{},"license.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["displayname",{"_index":5602,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"classes/LdapConfig.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserService.html":{}}}],["displays",{"_index":21777,"title":{},"body":{"license.html":{}}}],["disposable",{"_index":21396,"title":{},"body":{"dependencies.html":{}}}],["disposition",{"_index":6513,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["dist",{"_index":21465,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["distinguish",{"_index":14904,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["distinguished",{"_index":22733,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["distinguishing",{"_index":22183,"title":{},"body":{"license.html":{}}}],["distingush",{"_index":23049,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["distribute",{"_index":21673,"title":{},"body":{"license.html":{}}}],["distributed",{"_index":22237,"title":{},"body":{"license.html":{}}}],["distributing",{"_index":22143,"title":{},"body":{"license.html":{}}}],["distribution",{"_index":21736,"title":{},"body":{"license.html":{}}}],["dn",{"_index":4331,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["do.builder",{"_index":3190,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{}}}],["do.builder.ts",{"_index":3156,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:19",{"_index":3172,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:20",{"_index":3169,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:21",{"_index":3166,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:22",{"_index":3175,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:23",{"_index":3178,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:24",{"_index":3181,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.builder.ts:25",{"_index":3184,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["do.mapper",{"_index":12628,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["do.mapper.ts",{"_index":12595,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:13",{"_index":12602,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.mapper.ts:5",{"_index":12599,"title":{},"body":{"classes/IservMapper.html":{}}}],["do.repo",{"_index":20680,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["do.repo.ts",{"_index":3273,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/UserDORepo.html":{}}}],["do.repo.ts:11",{"_index":3284,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:141",{"_index":20084,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:151",{"_index":20093,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:18",{"_index":3291,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:25",{"_index":20094,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:26",{"_index":3289,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:33",{"_index":20087,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:39",{"_index":3293,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:53",{"_index":3303,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:65",{"_index":3296,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:71",{"_index":20090,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:75",{"_index":3298,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:79",{"_index":20088,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["do.repo.ts:82",{"_index":3301,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:87",{"_index":3306,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.repo.ts:93",{"_index":3286,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["do.rule.ts",{"_index":3351,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:11",{"_index":3357,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:17",{"_index":3355,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.rule.ts:8",{"_index":3354,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["do.service",{"_index":4143,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["do.service.ts",{"_index":3370,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:20",{"_index":3379,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:6",{"_index":3373,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["do.service.ts:9",{"_index":3375,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["dobasefactory",{"_index":4335,"title":{"classes/DoBaseFactory.html":{}},"body":{"classes/ClassFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/UserDoFactory.html":{}}}],["dobasefactory.define(basictoolconfig",{"_index":7129,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["dobasefactory.define(lti11toolconfig",{"_index":7148,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["docker",{"_index":22333,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/mongo",{"_index":22976,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["docker.io/rocketchat/rocket.chat:4.7.2envs",{"_index":23018,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["doclass",{"_index":3290,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["doclass.name",{"_index":3319,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["docs",{"_index":22302,"title":{},"body":{"todo.html":{}}}],["document",{"_index":6046,"title":{},"body":{"classes/CopyApiResponse.html":{},"classes/CreateNewsParams.html":{},"injectables/NewsRepo.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UpdateNewsParams.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["documentation",{"_index":21599,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["documented",{"_index":21997,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["documents",{"_index":3850,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doe",{"_index":18340,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["doe${sequence",{"_index":12354,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["doescourseexist",{"_index":3475,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doescourseexist(courseid",{"_index":3486,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["doesn't",{"_index":13967,"title":{},"body":{"injectables/LessonUC.html":{},"injectables/OAuthService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["doesnt",{"_index":16595,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["doing",{"_index":22505,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["domain",{"_index":2485,"title":{"additional-documentation/nestjs-application/domain-object-validation.html":{}},"body":{"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/DomainObjectFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FederalStateService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/OidcProvisioningService.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/RoleNameMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolYearService.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/VideoConferenceCreateParams.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["domain)scopes",{"_index":23055,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["domain.mapper",{"_index":10682,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["domain.mapper.ts",{"_index":10590,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:15",{"_index":10597,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:43",{"_index":10601,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:60",{"_index":10605,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:72",{"_index":10603,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:81",{"_index":10610,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain.mapper.ts:90",{"_index":10608,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["domain/class",{"_index":4354,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domain/external",{"_index":8573,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["domainentity",{"_index":7532,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["domainerror",{"_index":10312,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["domainobject",{"_index":1857,"title":{"classes/DomainObject.html":{}},"body":{"interfaces/AuthorizableObject.html":{},"injectables/BaseDORepo.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardDoBuilder.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/Class.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LtiToolDO.html":{},"injectables/LtiToolRepo.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceRepo.html":{}}}],["domainobject.acceptasync(this.deletevisitor",{"_index":3349,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["domainobject.closedat",{"_index":20381,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.context",{"_index":17942,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.context?.contextid",{"_index":18008,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.context?.contexttype",{"_index":18007,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.createdat",{"_index":20058,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.customs",{"_index":7050,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.email",{"_index":20060,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.emailsearchvalues",{"_index":20072,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.expiresat",{"_index":17943,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.externalid",{"_index":20064,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.finishedat",{"_index":20382,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.firstname",{"_index":20061,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.firstnamesearchvalues",{"_index":20068,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.forcepasswordchange",{"_index":20074,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.friendlyurl",{"_index":7056,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.frontchannel_logout_uri",{"_index":7059,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.gradelevel",{"_index":4379,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.id",{"_index":2441,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["domainobject.importhash",{"_index":20066,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.invitationlink",{"_index":4376,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.ishidden",{"_index":7060,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.islocal",{"_index":7052,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.istemplate",{"_index":7051,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.key",{"_index":7042,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.language",{"_index":20073,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastloginsystemchange",{"_index":20076,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastname",{"_index":20062,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.lastnamesearchvalues",{"_index":20070,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.ldapdn",{"_index":4380,"title":{},"body":{"classes/ClassMapper.html":{},"classes/UserDO.html":{}}}],["domainobject.logo_url",{"_index":7044,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_message_type",{"_index":7045,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.lti_version",{"_index":7046,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.mandatorysince",{"_index":20383,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.name",{"_index":4371,"title":{},"body":{"classes/ClassMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.oauthclientid",{"_index":7055,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.opennewtab",{"_index":7058,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.options",{"_index":21014,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.origintoolid",{"_index":7054,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.outdatedsince",{"_index":20077,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.payload",{"_index":17941,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["domainobject.payload.parentid",{"_index":18006,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.payload.parenttype",{"_index":18005,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["domainobject.preferences",{"_index":20075,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.previousexternalid",{"_index":20078,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.privacy_permission",{"_index":7049,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.removeuser(userid",{"_index":4408,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.resource_link_id",{"_index":7047,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.roles",{"_index":7048,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["domainobject.schoolid",{"_index":20063,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.secret",{"_index":7043,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.skipconsent",{"_index":7057,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.source",{"_index":4383,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourceoptions",{"_index":4384,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.sourcesystemid",{"_index":20378,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.startedat",{"_index":20380,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.successor",{"_index":4381,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.target",{"_index":21012,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetmodel",{"_index":21013,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["domainobject.targetsystemid",{"_index":20379,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["domainobject.teacherids.map((teacherid",{"_index":4373,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.token",{"_index":17939,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{}}}],["domainobject.updatedat",{"_index":20059,"title":{},"body":{"classes/UserDO.html":{}}}],["domainobject.url",{"_index":7041,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["domainobject.userids",{"_index":4407,"title":{},"body":{"injectables/ClassService.html":{}}}],["domainobject.userids?.map((userid",{"_index":4375,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject.year",{"_index":4377,"title":{},"body":{"classes/ClassMapper.html":{}}}],["domainobject/share",{"_index":11771,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"classes/MetadataTypeMapper.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TokenGenerator.html":{}}}],["domainobject:18",{"_index":2818,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["domainobject:8",{"_index":2800,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["domainobjectfactory",{"_index":7902,"title":{"classes/DomainObjectFactory.html":{}},"body":{"classes/DomainObjectFactory.html":{}}}],["domainobjects",{"_index":2405,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardDoRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["domainobjects.foreach((child",{"_index":16564,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["domainobjects.map((domainobject",{"_index":4386,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ClassService.html":{}}}],["domainrolenames",{"_index":20558,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles",{"_index":20556,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domainroles.map((role",{"_index":20559,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["domains",{"_index":21397,"title":{},"body":{"dependencies.html":{}}}],["domigration",{"_index":17600,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["domigration(externalid",{"_index":17611,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["domigration(userdo",{"_index":20604,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["don't",{"_index":2514,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/OAuthService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"miscellaneous/functions.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["done",{"_index":1126,"title":{},"body":{"injectables/AccountService.html":{},"classes/ErrorLoggable.html":{},"injectables/KeycloakMigrationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["dont",{"_index":18891,"title":{},"body":{"injectables/TaskCopyUC.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["dos",{"_index":2468,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["dos.map((domainobj",{"_index":2470,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["dosomethingcrazy",{"_index":22761,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z",{"_index":22766,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).catch(err",{"_index":22781,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazy(x,y,z).then(result",{"_index":22776,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["dosomethingcrazysync(wrong",{"_index":22784,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["doubtful",{"_index":21961,"title":{},"body":{"license.html":{}}}],["down",{"_index":22481,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["download_uri",{"_index":1456,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["downloadbysecuritytoken",{"_index":9932,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(@param('token",{"_index":9945,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadbysecuritytoken(token",{"_index":9934,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["downloadfileparams",{"_index":6130,"title":{"classes/DownloadFileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["downloadparams",{"_index":10446,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["downloaduri",{"_index":1449,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["downstream",{"_index":22074,"title":{},"body":{"license.html":{}}}],["draft",{"_index":12003,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"classes/TaskWithStatusVo.html":{}}}],["driven",{"_index":2573,"title":{},"body":{"injectables/BaseRepo.html":{},"properties.html":{}}}],["driver",{"_index":949,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["drivers",{"_index":962,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["drop/create",{"_index":11198,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dropcollection",{"_index":7726,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollection(collectionname",{"_index":7737,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["dropcollectionifexists(collectionname",{"_index":11166,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["dry",{"_index":22494,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dto",{"_index":100,"title":{},"body":{"classes/AbstractAccountService.html":{},"controllers/AccountController.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/BaseResponseMapper.html":{},"controllers/BoardController.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/CalendarEventDto.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"controllers/CourseController.html":{},"classes/CourseMapper.html":{},"classes/CreateNewsParams.html":{},"controllers/DashboardController.html":{},"classes/DashboardMapper.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{},"classes/FileElementResponseMapper.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/MigrationMapper.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"controllers/RoomsController.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolInfoMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionMapper.html":{},"injectables/SystemOidcService.html":{},"classes/TargetInfoMapper.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamUserDto.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateNewsParams.html":{},"controllers/UserController.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/VideoConference-1.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["dto's",{"_index":22569,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["dto.availabledate",{"_index":18941,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.bbbresponse",{"_index":20864,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["dto.builder.ts",{"_index":9497,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:13",{"_index":9506,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:19",{"_index":9503,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.builder.ts:7",{"_index":9501,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto.cancelbuttonurl",{"_index":16029,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.classes",{"_index":12418,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.cookies",{"_index":11049,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["dto.createdat",{"_index":16697,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.currentredirect",{"_index":10980,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.description",{"_index":18939,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.descriptioninputformat",{"_index":18954,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.destinationcourseid",{"_index":6307,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.displaycolor",{"_index":18945,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.duedate",{"_index":18943,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.elements",{"_index":6310,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto.enablemigrationstart",{"_index":14487,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.factory",{"_index":17045,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["dto.factory.ts",{"_index":7912,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:103",{"_index":7947,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:122",{"_index":7945,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:130",{"_index":7934,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:140",{"_index":7943,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:159",{"_index":7941,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:174",{"_index":7931,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:187",{"_index":16876,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:193",{"_index":16878,"title":{},"body":{"injectables/RoomBoardDTOFactory.html":{}}}],["dto.factory.ts:29",{"_index":7927,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:31",{"_index":7926,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:33",{"_index":7928,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:35",{"_index":7925,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:37",{"_index":7924,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:59",{"_index":7939,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:68",{"_index":7936,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:90",{"_index":7937,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.factory.ts:96",{"_index":7938,"title":{},"body":{"classes/DtoCreator.html":{}}}],["dto.firstname",{"_index":12406,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.flagged",{"_index":12425,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.groupelements",{"_index":7489,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.groupid",{"_index":7488,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["dto.id",{"_index":1130,"title":{},"body":{"injectables/AccountService.html":{},"classes/CopyMapper.html":{},"classes/DashboardMapper.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lastname",{"_index":12409,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.lessonhidden",{"_index":18949,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.lessonname",{"_index":18948,"title":{},"body":{"classes/TaskMapper.html":{}}}],["dto.loginname",{"_index":12412,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.mapper",{"_index":1234,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["dto.mapper.abstract",{"_index":755,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["dto.mapper.abstract.ts",{"_index":749,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{}}}],["dto.mapper.abstract.ts:7",{"_index":751,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{}}}],["dto.mapper.db.ts",{"_index":753,"title":{},"body":{"classes/AccountIdmToDtoMapperDb.html":{}}}],["dto.mapper.idm.ts",{"_index":762,"title":{},"body":{"classes/AccountIdmToDtoMapperIdm.html":{}}}],["dto.mapper.ts",{"_index":626,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:22",{"_index":634,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:28",{"_index":632,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.mapper.ts:5",{"_index":637,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["dto.match",{"_index":12404,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.matchedby",{"_index":20563,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["dto.matches",{"_index":12421,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.oauthmigrationfinalfinish",{"_index":14486,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationfinished",{"_index":14485,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationmandatory",{"_index":14484,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.oauthmigrationpossible",{"_index":14483,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["dto.options",{"_index":21073,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["dto.password",{"_index":1108,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.passwordstrategy",{"_index":1137,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.permission",{"_index":20865,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.permissions",{"_index":14913,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/ResolvedUserMapper.html":{}}}],["dto.proceedbuttonurl",{"_index":16028,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["dto.provisioningstrategy",{"_index":16365,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.provisioningurl",{"_index":16367,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["dto.redirect",{"_index":20591,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["dto.response",{"_index":10983,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.response.status",{"_index":10979,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["dto.role",{"_index":12415,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["dto.rolename",{"_index":14970,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.roles",{"_index":16703,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.schoolid",{"_index":16701,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.state",{"_index":20862,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["dto.systemid",{"_index":1105,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.target",{"_index":14702,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.teamid",{"_index":3934,"title":{},"body":{"classes/CalendarEventDto.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto.teamname",{"_index":14969,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["dto.title",{"_index":3932,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["dto.unpublished",{"_index":14704,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.updatedat",{"_index":16699,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["dto.updater",{"_index":14699,"title":{},"body":{"classes/NewsMapper.html":{}}}],["dto.url",{"_index":21099,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["dto.userid",{"_index":1118,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.username",{"_index":1106,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto.username.trim().tolowercase",{"_index":1107,"title":{},"body":{"injectables/AccountService.html":{}}}],["dto/board/board",{"_index":2958,"title":{},"body":{"controllers/BoardController.html":{}}}],["dto/board/set",{"_index":4043,"title":{},"body":{"controllers/CardController.html":{}}}],["dto/card/create",{"_index":4872,"title":{},"body":{"controllers/ColumnController.html":{}}}],["dto/context",{"_index":5953,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["dto/copy.response",{"_index":6301,"title":{},"body":{"classes/CopyMapper.html":{}}}],["dto/element/rich",{"_index":4046,"title":{},"body":{"controllers/CardController.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["dto/element/update",{"_index":8065,"title":{},"body":{"controllers/ElementController.html":{}}}],["dto/file.dto",{"_index":9508,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["dto/fwu",{"_index":10396,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["dto/migration.dto",{"_index":20624,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/oauth",{"_index":13622,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{}}}],["dto/oauth2",{"_index":20305,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/page",{"_index":20625,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["dto/public",{"_index":18548,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["dto/request/school",{"_index":20307,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/request/user",{"_index":20308,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["dto/response/consent",{"_index":10889,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["dto/response/video",{"_index":21030,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["dto/role.dto",{"_index":16861,"title":{},"body":{"injectables/RoleService.html":{}}}],["dto/school",{"_index":17524,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["dto/stateless",{"_index":15736,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["dto/system",{"_index":18550,"title":{},"body":{"controllers/SystemController.html":{}}}],["dto/task",{"_index":18814,"title":{},"body":{"controllers/TaskController.html":{}}}],["dto/team",{"_index":4534,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["dto/team.dto",{"_index":4646,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["dtocreator",{"_index":7910,"title":{"classes/DtoCreator.html":{}},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["dtolist",{"_index":12319,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{}}}],["dtos",{"_index":4531,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/GlobalValidationPipe.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["due",{"_index":3547,"title":{},"body":{"modules/BoardModule.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/News.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["duedate",{"_index":3245,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"classes/BoardTaskResponse.html":{},"injectables/ContentElementFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["duedate(value",{"_index":18233,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["dummy",{"_index":10779,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["dummypasswd!1",{"_index":741,"title":{},"body":{"classes/AccountFactory.html":{}}}],["dummyresponse",{"_index":10788,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["duplicate",{"_index":5994,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["duplicate.filter",{"_index":6001,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.id",{"_index":8694,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["duplicate.length",{"_index":6005,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicate.loggable",{"_index":17681,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["duplicates",{"_index":16117,"title":{},"body":{"injectables/PermissionService.html":{}}}],["duplicatetool",{"_index":6002,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.displayname",{"_index":6004,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplicatetool.id",{"_index":6003,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["duplication",{"_index":2513,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["durable",{"_index":21915,"title":{},"body":{"license.html":{}}}],["duration",{"_index":2200,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/DurationLoggingInterceptor.html":{}}}],["durationlogginginterceptor",{"_index":8010,"title":{"injectables/DurationLoggingInterceptor.html":{}},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["during",{"_index":6896,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"classes/GroupRoleUnknownLoggable.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/JwtPayload.html":{},"classes/KeycloakConsole.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserMigrationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["dwelling",{"_index":21960,"title":{},"body":{"license.html":{}}}],["dynamically",{"_index":21812,"title":{},"body":{"license.html":{}}}],["dynamicmodule",{"_index":1412,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/RocketChatModule.html":{},"modules/S3ClientModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["e",{"_index":2400,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/CustomLtiProperty.html":{},"injectables/DashboardModelMapper.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{},"injectables/NextcloudStrategy.html":{},"classes/RocketChatError.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceRepo.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["e.g",{"_index":2507,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/ConsentRequestBody.html":{},"classes/GlobalValidationPipe.html":{},"controllers/H5PEditorController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["e.property",{"_index":8157,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.response.data",{"_index":1317,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.data.errortype",{"_index":1319,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.response.statuscode",{"_index":1314,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["e.target",{"_index":8162,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["e.value",{"_index":8164,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["each",{"_index":2489,"title":{},"body":{"classes/BaseDomainObject.html":{},"classes/CardIdsParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FilterImportUserParams.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["eager",{"_index":11472,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/ImportUser.html":{},"entities/SchoolExternalToolEntity.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["earlier",{"_index":21751,"title":{},"body":{"license.html":{}}}],["ease",{"_index":23118,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["easier",{"_index":22840,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["easily",{"_index":22744,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["easy",{"_index":22449,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["eathers",{"_index":9431,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["edit",{"_index":6735,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/RoomsUc.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["editcoursebyadmin(userid",{"_index":23084,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["editor",{"_index":3101,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/UserBoardRoles.html":{}}}],["editor.app.ts",{"_index":21484,"title":{},"body":{"miscellaneous/functions.html":{}}}],["editor.config",{"_index":10815,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller",{"_index":10814,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor.controller.ts",{"_index":10775,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:33",{"_index":10785,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.controller.ts:44",{"_index":10783,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor.module",{"_index":10821,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["editor.module.ts",{"_index":10812,"title":{},"body":{"modules/H5PEditorModule.html":{}}}],["editor/controller/h5p",{"_index":10774,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["editor/h5p",{"_index":10811,"title":{},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["editusernameallowed",{"_index":12964,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["effect",{"_index":22218,"title":{},"body":{"license.html":{}}}],["effected",{"_index":21864,"title":{},"body":{"license.html":{}}}],["effective",{"_index":21846,"title":{},"body":{"license.html":{}}}],["effectively",{"_index":22234,"title":{},"body":{"license.html":{}}}],["effects",{"_index":2300,"title":{},"body":{"injectables/BBBService.html":{}}}],["efficient",{"_index":3612,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["effortless",{"_index":22706,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["efforts",{"_index":22088,"title":{},"body":{"license.html":{}}}],["einsatz",{"_index":4787,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ejson",{"_index":3859,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.deserialize(bsondocuments",{"_index":3862,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["ejson.serialize(documents",{"_index":3860,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["el",{"_index":3651,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CopyHelperService.html":{}}}],["el.getreferences()).flat",{"_index":7386,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["el.status",{"_index":6259,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["el.target.id",{"_index":2719,"title":{},"body":{"entities/Board.html":{}}}],["elapsedtimemilliseconds",{"_index":12814,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["electronic",{"_index":22240,"title":{},"body":{"license.html":{}}}],["element",{"_index":2594,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"entities/Board.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardElementResponse.html":{},"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/CopyApiResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/GridElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IGridElement.html":{},"injectables/LessonCopyService.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PatchGroupParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/RoomElementUrlParams.html":{},"injectables/RoomsUc.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/UpdateElementContentBodyParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["element.'})@apiextramodels(fileelementcontentbody",{"_index":8061,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiextramodels(submissionitemresponse)@apiresponse({status",{"_index":8048,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.'})@apiresponse({status",{"_index":8053,"title":{},"body":{"controllers/ElementController.html":{}}}],["element.accept(updater",{"_index":5556,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.boardelementtype",{"_index":3050,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.body.params.ts",{"_index":6854,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:10",{"_index":14571,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:12",{"_index":14579,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:14",{"_index":6859,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:17",{"_index":14580,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:18",{"_index":14572,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["element.body.params.ts:23",{"_index":14578,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["element.body.params.ts:25",{"_index":6857,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["element.body.params.ts:29",{"_index":14575,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.body.params.ts:33",{"_index":14576,"title":{},"body":{"classes/MoveElementParams.html":{}}}],["element.caption",{"_index":9556,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["element.constructor.name",{"_index":5528,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["element.createdat",{"_index":9555,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.do",{"_index":2878,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{}}}],["element.do.ts",{"_index":9517,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["element.do.ts:10",{"_index":16749,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:14",{"_index":16751,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:18",{"_index":16753,"title":{},"body":{"classes/RichTextElement.html":{}}}],["element.do.ts:5",{"_index":9522,"title":{},"body":{"classes/FileElement.html":{}}}],["element.do.ts:6",{"_index":16747,"title":{},"body":{"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{}}}],["element.do.ts:9",{"_index":9524,"title":{},"body":{"classes/FileElement.html":{}}}],["element.duedate",{"_index":18246,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.factory.ts",{"_index":5491,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:12",{"_index":5496,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:36",{"_index":5498,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:48",{"_index":5499,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.factory.ts:61",{"_index":5500,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["element.getreferences",{"_index":7374,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.getreferences().length",{"_index":7378,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.gridelement",{"_index":7356,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.hidden",{"_index":13783,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["element.id",{"_index":9553,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"injectables/LessonCopyService.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.inputformat",{"_index":16786,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["element.interface",{"_index":5063,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["element.interface.ts",{"_index":11296,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.interface.ts:2",{"_index":11297,"title":{},"body":{"interfaces/ICommonCartridgeElement.html":{}}}],["element.publish",{"_index":17054,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.removereference(room",{"_index":7377,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.removereferencebyindex(position.groupindex",{"_index":7399,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["element.response",{"_index":4047,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["element.response.ts",{"_index":3403,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:11",{"_index":9533,"title":{},"body":{"classes/FileElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:12",{"_index":16764,"title":{},"body":{"classes/RichTextElementContent.html":{}}}],["element.response.ts:14",{"_index":9543,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:15",{"_index":16763,"title":{},"body":{"classes/RichTextElementContent.html":{}}}],["element.response.ts:17",{"_index":3410,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.response.ts:18",{"_index":16776,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:22",{"_index":3407,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.response.ts:23",{"_index":9545,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:26",{"_index":9547,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:27",{"_index":16778,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:29",{"_index":9544,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:30",{"_index":16780,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:32",{"_index":9546,"title":{},"body":{"classes/FileElementResponse.html":{},"classes/SubmissionContainerElementResponse.html":{}}}],["element.response.ts:33",{"_index":16777,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:36",{"_index":16779,"title":{},"body":{"classes/RichTextElementResponse.html":{}}}],["element.response.ts:5",{"_index":9532,"title":{},"body":{"classes/FileElementContent.html":{},"classes/RichTextElementContent.html":{},"classes/SubmissionContainerElementContent.html":{}}}],["element.response.ts:7",{"_index":3404,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["element.service",{"_index":4144,"title":{},"body":{"injectables/CardService.html":{}}}],["element.service.ts",{"_index":5531,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:16",{"_index":5532,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:23",{"_index":5537,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:33",{"_index":5533,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:40",{"_index":5535,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:44",{"_index":5539,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.service.ts:48",{"_index":5544,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["element.status",{"_index":6314,"title":{},"body":{"classes/CopyMapper.html":{}}}],["element.target",{"_index":2709,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["element.text",{"_index":4814,"title":{},"body":{"injectables/ColumnBoardService.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["element.title",{"_index":13782,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["element.ts",{"_index":5160,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:11",{"_index":5164,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:12",{"_index":5212,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:14",{"_index":5192,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["element.ts:15",{"_index":5213,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["element.ts:19",{"_index":5165,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["element.ts:21",{"_index":5228,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:3",{"_index":5217,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.ts:38",{"_index":5229,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:42",{"_index":5230,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:46",{"_index":5231,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["element.ts:6",{"_index":5219,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["element.type",{"_index":16896,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["element.unpublish",{"_index":17055,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["element.updatedat",{"_index":9554,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["element.url.params.ts",{"_index":5595,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:11",{"_index":5597,"title":{},"body":{"classes/ContentElementUrlParams.html":{},"classes/RoomElementUrlParams.html":{}}}],["element.url.params.ts:19",{"_index":16938,"title":{},"body":{"classes/RoomElementUrlParams.html":{}}}],["element.user",{"_index":13784,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["element/rich",{"_index":4108,"title":{},"body":{"classes/CardResponse.html":{}}}],["elementcontentbody",{"_index":8027,"title":{"classes/ElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["elementcontentbody:24",{"_index":9537,"title":{},"body":{"classes/FileElementContentBody.html":{}}}],["elementcontentbody:43",{"_index":16768,"title":{},"body":{"classes/RichTextElementContentBody.html":{}}}],["elementcontentbody:58",{"_index":18240,"title":{},"body":{"classes/SubmissionContainerElementContentBody.html":{}}}],["elementcontroller",{"_index":2765,"title":{"controllers/ElementController.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/ElementController.html":{}}}],["elementcopystatus",{"_index":3085,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementcopystatus.type",{"_index":3082,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elementdata",{"_index":7476,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.copyingsince",{"_index":7484,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.displaycolor",{"_index":7481,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group",{"_index":7486,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.group.map((groupmetadata",{"_index":7490,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.groupid",{"_index":7487,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.referencedid",{"_index":7485,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.shorttitle",{"_index":7480,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementdata.title",{"_index":7479,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["elementid",{"_index":4186,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{},"injectables/ElementUc.html":{},"classes/RoomElementUrlParams.html":{},"injectables/RoomsUc.html":{}}}],["elementmapper",{"_index":5524,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmapper.maptoresponse(element",{"_index":5529,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["elementmodel",{"_index":7531,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.dashboard",{"_index":7568,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.references.set(references",{"_index":7567,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.title",{"_index":7563,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.xpos",{"_index":7558,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementmodel.ypos",{"_index":7560,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elements",{"_index":1041,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardUc.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"injectables/LessonCopyService.html":{},"injectables/NewsRepo.html":{},"classes/PaginationParams.html":{},"classes/PatchOrderParams.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/TaskCopyService.html":{}}}],["elements.enum",{"_index":5503,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["elements.filter((el",{"_index":3650,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["elements.filter((element",{"_index":7962,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.foreach((element",{"_index":7972,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["elements.length",{"_index":13825,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["elements.map((el",{"_index":6258,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elements.map((elementcopystatus",{"_index":3081,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["elements.push",{"_index":6569,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["elements.push(filecopystatus",{"_index":13744,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["elements.push(this.mapcolumnboard(element.content",{"_index":16899,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maplesson(element.content",{"_index":16898,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elements.push(this.maptask(element.content",{"_index":16897,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["elementservice",{"_index":4180,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["elementspercard",{"_index":3511,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementspercard.flat",{"_index":3514,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["elementsstatus",{"_index":13814,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["elementsstatus.push(status",{"_index":13819,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["elementsstatuses",{"_index":6257,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementsstatuses.filter((status",{"_index":6261,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["elementstoadd",{"_index":2746,"title":{},"body":{"entities/Board.html":{}}}],["elementtomove",{"_index":7362,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.getreferences",{"_index":7395,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementtomove.isgroup",{"_index":7394,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["elementuc",{"_index":2759,"title":{"injectables/ElementUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{}}}],["elementwithposition",{"_index":7511,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.x",{"_index":7559,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elementwithposition.pos.y",{"_index":7561,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["elemmatch",{"_index":10062,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["em",{"_index":3285,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/ClassesRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["em.config.options.clienturl",{"_index":22861,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["em.getreference(role",{"_index":10644,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(schoolentity",{"_index":10627,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(system",{"_index":10638,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["em.getreference(user",{"_index":10642,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["email",{"_index":853,"title":{},"body":{"interfaces/AccountParams.html":{},"injectables/AccountService.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/CustomLtiProperty.html":{},"classes/ExternalUserDto.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IJsonUser.html":{},"interfaces/IUserProperties.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"entities/LtiTool.html":{},"injectables/OidcProvisioningService.html":{},"classes/PatchMyAccountParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SystemFactory.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["emails",{"_index":22518,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["emailsearchvalues",{"_index":11245,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["embeddable",{"_index":2618,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"classes/County.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/FederalState.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/LdapConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["embedded",{"_index":4293,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["embedded(undefined",{"_index":4287,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/GroupEntity.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/TeamEntity.html":{}}}],["embedded({entity",{"_index":18514,"title":{},"body":{"entities/System.html":{}}}],["embodied",{"_index":21912,"title":{},"body":{"license.html":{}}}],["emerg",{"_index":8178,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["emerg(loggable",{"_index":8185,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["employer",{"_index":22246,"title":{},"body":{"license.html":{}}}],["empty",{"_index":1924,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/FileSystemAdapter.html":{},"classes/IdentityManagementService.html":{},"classes/NewsScope.html":{},"classes/StorageProviderEncryptedStringType.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["emptyresultquery",{"_index":14782,"title":{},"body":{"classes/NewsScope.html":{},"classes/Scope.html":{}}}],["emptyresultquerytype",{"_index":5894,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["en",{"_index":12103,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["enable",{"_index":10533,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"modules/ImportUserModule.html":{},"classes/MigrationResponse.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["enable.loggable.ts",{"_index":20586,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable.loggable.ts:4",{"_index":20587,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["enable_ldap_sync_during_migration",{"_index":11709,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enabled",{"_index":1415,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/IVideoConferenceSettings.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LessonCopyUC.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/ShareTokenUC.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/TaskCopyUC.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["enableimplicitconversion",{"_index":10538,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["enableldapsyncduringmigration",{"_index":11710,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["enablemigrationstart",{"_index":13641,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["enableoauthmigrationfeature",{"_index":20438,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enableoauthmigrationfeature(schooldo",{"_index":20448,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["enables",{"_index":21770,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["encapsulates",{"_index":4587,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/ConverterUtil.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["encoded",{"_index":2307,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FileSystemAdapter.html":{},"miscellaneous/functions.html":{}}}],["encodeuricomponent(token",{"_index":1465,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["encoding",{"_index":9959,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{},"miscellaneous/functions.html":{}}}],["encodings",{"_index":21551,"title":{},"body":{"miscellaneous/functions.html":{}}}],["encouraged",{"_index":21719,"title":{},"body":{"license.html":{}}}],["encrypt",{"_index":11390,"title":{},"body":{"interfaces/IEncryptionService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"additional-documentation/nestjs-application.html":{}}}],["encrypt(data",{"_index":11393,"title":{},"body":{"interfaces/IEncryptionService.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encrypted",{"_index":1284,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["encryptedstring",{"_index":18193,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["encryption",{"_index":12186,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.interface",{"_index":8110,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["encryption.service",{"_index":8112,"title":{},"body":{"modules/EncryptionModule.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["encryption.service.ts",{"_index":14162,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryption.service.ts:7",{"_index":14165,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["encryptionmodule",{"_index":8104,"title":{"modules/EncryptionModule.html":{}},"body":{"modules/EncryptionModule.html":{},"modules/ExternalToolModule.html":{},"modules/IdentityManagementModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/ManagementModule.html":{},"modules/OauthModule.html":{},"modules.html":{}}}],["encryptionproviderfactory",{"_index":21497,"title":{},"body":{"miscellaneous/functions.html":{}}}],["encryptionproviderfactory(configservice",{"_index":8113,"title":{},"body":{"modules/EncryptionModule.html":{},"miscellaneous/functions.html":{}}}],["encryptionservice",{"_index":9082,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["encryptpassword",{"_index":1162,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptpassword(password",{"_index":1167,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["encryptsecrets(collectionname",{"_index":11266,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["encryptsecretsinsystems(systems",{"_index":11268,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["end",{"_index":2282,"title":{},"body":{"injectables/BBBService.html":{},"classes/ConsentResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICollectionFilePath.html":{},"classes/LoginResponse-1.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["end(@currentuser",{"_index":20939,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["end(config",{"_index":2301,"title":{},"body":{"injectables/BBBService.html":{}}}],["end(currentuser",{"_index":20890,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["end(currentuserid",{"_index":21054,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.loggable.ts",{"_index":17568,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:3",{"_index":17570,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.loggable.ts:6",{"_index":17571,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["end.uc.ts",{"_index":21052,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:11",{"_index":21053,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end.uc.ts:18",{"_index":21055,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["end2end",{"_index":22882,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["enddate",{"_index":11737,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{}}}],["ended",{"_index":20949,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["endings",{"_index":22913,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["endpoint",{"_index":2186,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"controllers/H5PEditorController.html":{},"interfaces/IFileStorageConfig.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"controllers/SystemController.html":{},"controllers/VideoConferenceController.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["endpoints",{"_index":10796,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["endpointurl",{"_index":11777,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["ends",{"_index":2303,"title":{},"body":{"injectables/BBBService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["endschoolinmaintenance",{"_index":12263,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(@currentuser",{"_index":12340,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endschoolinmaintenance(currentuser",{"_index":12271,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["endtime",{"_index":2258,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["enforce",{"_index":19297,"title":{},"body":{"controllers/TeamNewsController.html":{},"license.html":{}}}],["enforces",{"_index":22742,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["enforcing",{"_index":21869,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["enities",{"_index":16810,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enities.map((entity",{"_index":16814,"title":{},"body":{"classes/RoleMapper.html":{}}}],["enrichdatafromexternaltool",{"_index":17473,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichdatafromexternaltool(tool",{"_index":17483,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichedtools",{"_index":17496,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools",{"_index":17474,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["enrichwithdatafromexternaltools(tools",{"_index":17485,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["ensure",{"_index":9387,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"classes/NewsScope.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ensureboardnodetype",{"_index":3195,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureboardnodetype(boardnode",{"_index":3211,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurecontextpermissions",{"_index":8402,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensurecontextpermissions(userid",{"_index":8411,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureleafnode",{"_index":3196,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensureleafnode(boardnode",{"_index":3214,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["ensurepermission",{"_index":9189,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensurepermission(userid",{"_index":9198,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["ensures",{"_index":21616,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ensureschoolpermissions",{"_index":8403,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensureschoolpermissions(userid",{"_index":8413,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["ensuretokeniswhitelisted",{"_index":12731,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["ensuretoolpermissions",{"_index":19885,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["ensuretoolpermissions(userid",{"_index":19892,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["entered",{"_index":22149,"title":{},"body":{"license.html":{}}}],["enteredpassword",{"_index":14000,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["entire",{"_index":21889,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["entirely",{"_index":22167,"title":{},"body":{"license.html":{}}}],["entities",{"_index":381,"title":{},"body":{"entities/Account.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"injectables/BoardRepo.html":{},"entities/CardNode.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"modules/CommonToolModule.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"entities/DashboardModelEntity.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"entities/FileElementNode.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"entities/GroupEntity.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollectionFilePath.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/LegacySchoolFactory.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{},"entities/PseudonymEntity.html":{},"injectables/PseudonymsRepo.html":{},"entities/RichTextElementNode.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/SchoolNews.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemRepo.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"entities/UserLoginMigration.html":{},"injectables/UserRepo.html":{},"entities/VideoConference.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entities.foreach((entity",{"_index":10080,"title":{},"body":{"injectables/FilesService.html":{}}}],["entities.length",{"_index":10079,"title":{},"body":{"injectables/FilesService.html":{},"injectables/LtiToolRepo.html":{}}}],["entities.map((entity",{"_index":2446,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/ClassMapper.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SystemMapper.html":{},"injectables/UserDORepo.html":{}}}],["entities.transformer.ts",{"_index":21496,"title":{},"body":{"miscellaneous/functions.html":{}}}],["entitieswithfiles",{"_index":9658,"title":{},"body":{"classes/FileParamBuilder.html":{},"classes/FilesStorageClientMapper.html":{}}}],["entitiyids",{"_index":9408,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entity",{"_index":380,"title":{"entities/Account.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"entities/CardNode.html":{},"entities/ClassEntity.html":{},"entities/ColumnBoardNode.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalState.html":{},"entities/FileElementNode.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/GroupEntity.html":{},"entities/ImportUser.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"entities/PseudonymEntity.html":{},"entities/RichTextElementNode.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"entities/SubmissionItemNode.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{}},"body":{"entities/Account.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRule.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BruteForceError.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/County.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CreateNewsParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/EntityNotFoundError.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/GetFileResponse.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{},"classes/RenameFileParams.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"classes/RoleMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolInfoResponse.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{},"classes/SingleFileParams.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemRepo.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"injectables/TeamRule.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/UpdateNewsParams.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.alias",{"_index":18630,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.closedat",{"_index":20405,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.config.type",{"_index":8841,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.contextid",{"_index":5796,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{}}}],["entity.contexttype",{"_index":18002,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.course",{"_index":6669,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["entity.coursegroup",{"_index":13928,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.createdat",{"_index":4369,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.customs",{"_index":14361,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.displayname",{"_index":5798,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.email",{"_index":20120,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.emailsearchvalues",{"_index":20126,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.expiresat",{"_index":18004,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.externalid",{"_index":10640,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.externalsource",{"_index":10633,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.factory.ts",{"_index":8493,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:21",{"_index":8502,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:28",{"_index":8499,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:38",{"_index":8504,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:50",{"_index":8500,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.factory.ts:66",{"_index":8498,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["entity.features",{"_index":13556,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{}}}],["entity.features.includes(feature",{"_index":13606,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["entity.federalstate",{"_index":13565,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.finishedat",{"_index":20406,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.firstname",{"_index":20121,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.firstnamesearchvalues",{"_index":20124,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.forcepasswordchange",{"_index":20128,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.friendlyurl",{"_index":14366,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.frontchannel_logout_uri",{"_index":14368,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.getgrid().map((elementwithposition",{"_index":7571,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getid",{"_index":7578,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.getuserid",{"_index":7580,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["entity.gradelevel",{"_index":4364,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.hidden",{"_index":13924,"title":{},"body":{"injectables/LessonRule.html":{}}}],["entity.id",{"_index":4355,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LtiToolRepo.html":{},"injectables/PseudonymsRepo.html":{},"classes/RoleMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SystemMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserMapper.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entity.importhash",{"_index":20123,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.inmaintenancesince",{"_index":13557,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.inusermigration",{"_index":13558,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.invitationlink",{"_index":4362,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.isdraft",{"_index":19093,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.ishidden",{"_index":8850,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.islocal",{"_index":14363,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.istemplate",{"_index":14362,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.key",{"_index":14353,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.language",{"_index":20127,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastloginsystemchange",{"_index":20130,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastname",{"_index":20122,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lastnamesearchvalues",{"_index":20125,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.ldapconfig?.active",{"_index":18634,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.ldapdn",{"_index":4365,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.lesson",{"_index":19096,"title":{},"body":{"injectables/TaskRule.html":{}}}],["entity.logo_url",{"_index":14355,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.logobase64",{"_index":8848,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.logourl",{"_index":8847,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.lti_message_type",{"_index":14356,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.lti_version",{"_index":14357,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.mandatorysince",{"_index":20403,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.markfordeletion",{"_index":10084,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.name",{"_index":4356,"title":{},"body":{"classes/ClassMapper.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/GroupDomainMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/RoleMapper.html":{}}}],["entity.oauthclientid",{"_index":14365,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.officialschoolnumber",{"_index":13560,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.oidcconfig",{"_index":18651,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["entity.opennewtab",{"_index":8851,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entity.options.everyattendejoinsmuted",{"_index":21196,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.everybodyjoinsasmoderator",{"_index":21195,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.options.moderatormustapprovejoinrequests",{"_index":21197,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entity.organization?.id",{"_index":10636,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.origintoolid",{"_index":14364,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.outdatedsince",{"_index":20131,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.parentid",{"_index":18001,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.parenttype",{"_index":18000,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.permissions",{"_index":16813,"title":{},"body":{"classes/RoleMapper.html":{}}}],["entity.preferences",{"_index":20129,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["entity.previousexternalid",{"_index":13559,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.privacy_permission",{"_index":14360,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.provisioningstrategy",{"_index":18631,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.provisioningurl",{"_index":18632,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.pseudonym",{"_index":8760,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.removepermissionsbyrefid(userid",{"_index":10081,"title":{},"body":{"injectables/FilesService.html":{}}}],["entity.resource_link_id",{"_index":14358,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.role.id",{"_index":10647,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.roles",{"_index":14359,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.roles.getitems().map((role",{"_index":20540,"title":{},"body":{"classes/UserMapper.html":{}}}],["entity.roles.isinitialized",{"_index":20132,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entity.school.id",{"_index":17419,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserMapper.html":{}}}],["entity.schoolid",{"_index":17464,"title":{},"body":{"injectables/SchoolExternalToolRule.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["entity.schoolid.tohexstring",{"_index":4357,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.schooltool.id",{"_index":5795,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltool.school.id",{"_index":5869,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schooltool.school?.id",{"_index":5794,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entity.schooltoolref.schoolid",{"_index":5870,"title":{},"body":{"injectables/ContextExternalToolRule.html":{}}}],["entity.schoolyear",{"_index":13561,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.secret",{"_index":14354,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.skipconsent",{"_index":14367,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entity.source",{"_index":4367,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourceoptions?.tspuid",{"_index":4368,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.sourcesystem?.id",{"_index":20401,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.startedat",{"_index":20404,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.successor?.tohexstring",{"_index":4366,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.system.id",{"_index":10641,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.systems.getitems().map((system",{"_index":13563,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.systems.isinitialized",{"_index":13562,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.target",{"_index":21193,"title":{},"body":{"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetmodel",{"_index":23106,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["entity.targetsystem.id",{"_index":20402,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entity.teacherids.map((teacherid",{"_index":4360,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.teamusers.find((teamuser",{"_index":19338,"title":{},"body":{"injectables/TeamRule.html":{}}}],["entity.token",{"_index":18003,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity.tool.id",{"_index":17418,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entity.toolid.tohexstring",{"_index":8761,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.toolversion",{"_index":5799,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entity.ts",{"_index":22568,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["entity.type",{"_index":18629,"title":{},"body":{"classes/SystemMapper.html":{}}}],["entity.updatedat",{"_index":4370,"title":{},"body":{"classes/ClassMapper.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/UserDORepo.html":{}}}],["entity.url",{"_index":8846,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{},"classes/SystemMapper.html":{}}}],["entity.user.id",{"_index":10646,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.userid.tohexstring",{"_index":8762,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entity.userids?.map((userid",{"_index":4358,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity.userloginmigration?.id",{"_index":13564,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entity.users.map((groupuser",{"_index":10628,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod",{"_index":10630,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.from",{"_index":10631,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.validperiod.until",{"_index":10632,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["entity.version",{"_index":8852,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entity.year?.tohexstring",{"_index":4363,"title":{},"body":{"classes/ClassMapper.html":{}}}],["entity/course.entity",{"_index":11375,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/import",{"_index":11496,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{}}}],["entity/role.entity",{"_index":16115,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity/school.entity",{"_index":11376,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/share",{"_index":17996,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["entity/team.entity",{"_index":11377,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["entity/user.entity",{"_index":16116,"title":{},"body":{"injectables/PermissionService.html":{}}}],["entity[key",{"_index":2467,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entity[prop",{"_index":1933,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["entity_not_found",{"_index":3840,"title":{},"body":{"classes/BruteForceError.html":{},"classes/EntityNotFoundError.html":{}}}],["entityclass",{"_index":716,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["entitydictionary",{"_index":10056,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{}}}],["entitydo",{"_index":2417,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entitydo.closedat",{"_index":20412,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.config.type",{"_index":8865,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.contextref.id",{"_index":5801,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.customs",{"_index":14377,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.displayname",{"_index":5803,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.email",{"_index":20135,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.externalid",{"_index":13566,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.features",{"_index":13567,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.federalstate",{"_index":13578,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.finishedat",{"_index":20413,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.firstname",{"_index":20136,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.forcepasswordchange",{"_index":20142,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.friendlyurl",{"_index":14382,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.frontchannel_logout_uri",{"_index":14384,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.id",{"_index":16451,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["entitydo.inmaintenancesince",{"_index":13568,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.inusermigration",{"_index":13569,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.ishidden",{"_index":8874,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.islocal",{"_index":14379,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.istemplate",{"_index":14378,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.key",{"_index":14369,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.language",{"_index":20141,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastloginsystemchange",{"_index":20144,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.lastname",{"_index":20137,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.ldapdn",{"_index":20140,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.logo",{"_index":8872,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.logo_url",{"_index":14371,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.logourl",{"_index":8871,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydo.lti_message_type",{"_index":14372,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.lti_version",{"_index":14373,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.mandatorysince",{"_index":20410,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.name",{"_index":8869,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.oauthclientid",{"_index":14381,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.officialschoolnumber",{"_index":13571,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.opennewtab",{"_index":8875,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.options.everyattendeejoinsmuted",{"_index":21201,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.everybodyjoinsasmoderator",{"_index":21200,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.options.moderatormustapprovejoinrequests",{"_index":21202,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.origintoolid",{"_index":14380,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.outdatedsince",{"_index":20145,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.preferences",{"_index":20143,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.previousexternalid",{"_index":13570,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{}}}],["entitydo.privacy_permission",{"_index":14376,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.pseudonym",{"_index":8763,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entitydo.resource_link_id",{"_index":14374,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles",{"_index":14375,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.roles.map((roleref",{"_index":20138,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitydo.schoolid",{"_index":17422,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.schooltoolref.schooltoolid",{"_index":5805,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["entitydo.schoolyear",{"_index":13572,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.secret",{"_index":14370,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.skipconsent",{"_index":14383,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["entitydo.sourcesystemid",{"_index":20408,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.startedat",{"_index":20411,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.systems",{"_index":13573,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.systems.map((systemid",{"_index":13574,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.target",{"_index":21198,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["entitydo.targetsystemid",{"_index":20409,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["entitydo.toolid",{"_index":17424,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.toolversion",{"_index":5806,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["entitydo.url",{"_index":8870,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/LtiToolRepo.html":{}}}],["entitydo.userloginmigrationid",{"_index":13576,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["entitydo.version",{"_index":8876,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["entitydos",{"_index":2428,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entitydos.map(async",{"_index":2440,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["entityfactory",{"_index":2388,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entityfactory(props",{"_index":2411,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["entityid",{"_index":26,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"interfaces/BoardExternalReference.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolIdParams-1.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DomainObject.html":{},"classes/DownloadFileParams.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateRepo.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/ImportUserRepo.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"entities/News.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewParams.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolYearRepo.html":{},"classes/ScopeRef.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleFileParams.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemIdParams-1.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamNews.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"injectables/TeamsRepo.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["entitymanager",{"_index":2395,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/ClassesRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IDashboardRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["entityname",{"_index":885,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/EntityNotFoundError.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"modules/FilesStorageModule.html":{},"classes/ForbiddenLoggableException.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["entitynotfounderror",{"_index":510,"title":{"classes/EntityNotFoundError.html":{}},"body":{"controllers/AccountController.html":{},"injectables/AccountServiceDb.html":{},"classes/EntityNotFoundError.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserDORepo.html":{}}}],["entitynotfounderror('account",{"_index":1191,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror('user",{"_index":20115,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["entitynotfounderror(`account",{"_index":1217,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["entitynotfounderror(`user",{"_index":13133,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["entitynotfounderror(system.name",{"_index":18666,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["entitypermissions",{"_index":9402,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entitypermissions.includes(p",{"_index":9406,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["entityprops",{"_index":2459,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["entityschema",{"_index":2511,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["entitytype",{"_index":14710,"title":{},"body":{"classes/NewsMapper.html":{}}}],["entitywithembeddedfiles",{"_index":6203,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["entitywithid",{"_index":2551,"title":{},"body":{"classes/BaseFactory.html":{}}}],["entries",{"_index":8820,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entries.map",{"_index":8881,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry",{"_index":5367,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/JwtStrategy.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.do.ts",{"_index":7100,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:2",{"_index":7102,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.do.ts:4",{"_index":7101,"title":{},"body":{"classes/CustomParameterEntry.html":{}}}],["entry.entity.ts",{"_index":7105,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:6",{"_index":7107,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.entity.ts:9",{"_index":7106,"title":{},"body":{"classes/CustomParameterEntryEntity.html":{}}}],["entry.name",{"_index":8882,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["entry.params",{"_index":17392,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["entry.params.ts",{"_index":7110,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:12",{"_index":7112,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.params.ts:7",{"_index":7111,"title":{},"body":{"classes/CustomParameterEntryParam.html":{}}}],["entry.response",{"_index":17438,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["entry.response.ts",{"_index":7113,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:5",{"_index":7115,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.response.ts:9",{"_index":7114,"title":{},"body":{"classes/CustomParameterEntryResponse.html":{}}}],["entry.value",{"_index":8883,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["enum",{"_index":1031,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/ChangeLanguageParams.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextTypeMapper.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFindOptions.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RenameFileParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolResponse.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"entities/System.html":{},"entities/TeamNews.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceScopeParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["enum({array",{"_index":14291,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({fieldname",{"_index":12253,"title":{},"body":{"entities/ImportUser.html":{}}}],["enum({items",{"_index":14288,"title":{},"body":{"entities/LtiTool.html":{}}}],["enum({nullable",{"_index":6382,"title":{},"body":{"entities/Course.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"entities/ShareToken.html":{}}}],["enumname",{"_index":2915,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["enums",{"_index":5061,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["env",{"_index":14542,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["env/config",{"_index":22276,"title":{},"body":{"todo.html":{}}}],["environment",{"_index":13160,"title":{},"body":{"controllers/KeycloakManagementController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["eol",{"_index":9967,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["eq",{"_index":13938,"title":{},"body":{"classes/LessonScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["equal",{"_index":19057,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["equivalent",{"_index":21828,"title":{},"body":{"license.html":{}}}],["eric",{"_index":22689,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["err",{"_index":1459,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BoardManagementUc.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/S3ClientAdapter.html":{},"injectables/TimeoutInterceptor.html":{}}}],["err.code",{"_index":22782,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["err?.cause?.name",{"_index":17165,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["err?.code",{"_index":17148,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["error",{"_index":204,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"classes/ConsentRequestBody.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"modules/CoreModule.html":{},"entities/CourseGroup.html":{},"injectables/DeleteFilesUc.html":{},"classes/DownloadFileParams.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/FeathersError.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IError.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/JwtStrategy.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"modules/LoggerModule.html":{},"classes/LoginRequestBody.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NexboardService.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"modules/RedisModule.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"injectables/S3ClientAdapter.html":{},"classes/ScanResultParams.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchService.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["error('boardnode",{"_index":3259,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["error('broken",{"_index":3048,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error('error",{"_index":11628,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('gradelevel",{"_index":4300,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["error('idm",{"_index":11574,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["error('invalid",{"_index":12440,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["error('multiple",{"_index":13118,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error('not",{"_index":2752,"title":{},"body":{"entities/Board.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["error('resource",{"_index":5241,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["error('rocket",{"_index":1404,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["error('roles",{"_index":11674,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["error('root",{"_index":3143,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["error('unexpected",{"_index":12560,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["error('unknown",{"_index":5809,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["error('user",{"_index":739,"title":{},"body":{"classes/AccountFactory.html":{}}}],["error(`${jwtconstants.jwtoptions.algorithm",{"_index":1682,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["error(`${testreqestconst.errormessage",{"_index":1778,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["error(`account",{"_index":13111,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["error(`boardcopyservice",{"_index":3062,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["error(`cannot",{"_index":5591,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["error(`duplicate",{"_index":13201,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["error(`login",{"_index":14015,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["error(`mapping",{"_index":10154,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["error(`no",{"_index":13301,"title":{},"body":{"injectables/LdapService.html":{}}}],["error(`system",{"_index":18683,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["error(json.stringify(cause",{"_index":3891,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(json.stringify(error",{"_index":8246,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["error(loggable",{"_index":8187,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["error(message",{"_index":11526,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["error(string(cause",{"_index":3892,"title":{},"body":{"classes/BusinessError.html":{}}}],["error(util.inspect(error",{"_index":10501,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.enum",{"_index":2009,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error.exception",{"_index":6399,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["error.filter",{"_index":8220,"title":{},"body":{"modules/ErrorModule.html":{}}}],["error.filter.ts",{"_index":10463,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"todo.html":{}}}],["error.filter.ts:100",{"_index":10487,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:15",{"_index":10472,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:19",{"_index":10476,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:32",{"_index":10478,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:47",{"_index":10489,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:54",{"_index":10480,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:70",{"_index":10484,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:78",{"_index":10482,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.filter.ts:90",{"_index":10486,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getresponse",{"_index":10519,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["error.getstatus",{"_index":8605,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["error.interface.ts",{"_index":9412,"title":{},"body":{"interfaces/FeathersError.html":{}}}],["error.officialschoolnumberfromsource",{"_index":20523,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.officialschoolnumberfromtarget",{"_index":20524,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["error.response",{"_index":1520,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts",{"_index":1497,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:10",{"_index":1503,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.response.ts:21",{"_index":1519,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["error.stack",{"_index":1160,"title":{},"body":{"injectables/AccountService.html":{}}}],["error.ts",{"_index":20002,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.ts:3",{"_index":20003,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["error.validationerrors.map((e",{"_index":8155,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["error/error",{"_index":20980,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{}}}],["error/id",{"_index":12157,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["error/oauth",{"_index":10951,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{}}}],["error_debug",{"_index":5373,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_description",{"_index":1997,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["error_hint",{"_index":5374,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["error_uri",{"_index":1998,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["errorcode",{"_index":14992,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["errorhandler",{"_index":15692,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorhandler(error",{"_index":15699,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorloggable",{"_index":8124,"title":{"classes/ErrorLoggable.html":{}},"body":{"classes/ErrorLoggable.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LdapStrategy.html":{}}}],["errorloggable(error",{"_index":10499,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorloggable(unknownerror",{"_index":10502,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorlogger",{"_index":8173,"title":{"injectables/ErrorLogger.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"modules/LoggerModule.html":{}}}],["errorlogmessage",{"_index":8137,"title":{},"body":{"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["errormapper",{"_index":8199,"title":{"classes/ErrorMapper.html":{}},"body":{"classes/ErrorMapper.html":{},"injectables/FilesStorageProducer.html":{}}}],["errormapper.maprpcerrorresponsetodomainerror(error",{"_index":10313,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["errormessage",{"_index":1714,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["errormessages",{"_index":8154,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errormodule",{"_index":6321,"title":{"modules/ErrorModule.html":{}},"body":{"modules/CoreModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"modules.html":{}}}],["errorobj",{"_index":8205,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorobj.status",{"_index":8207,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorredirect",{"_index":15746,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('error",{"_index":15748,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('provider",{"_index":15750,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('sourceschoolnumber",{"_index":15756,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorredirect.searchparams.append('targetschoolnumber",{"_index":15757,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["errorresponse",{"_index":1486,"title":{"classes/ErrorResponse.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["errorresponse(type",{"_index":10517,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorresponse:10",{"_index":1513,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:15",{"_index":1511,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:20",{"_index":1509,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:25",{"_index":1505,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errorresponse:30",{"_index":1506,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["errors",{"_index":1500,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{},"classes/GlobalValidationPipe.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationErrorDetailResponse.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["errors/brute",{"_index":1815,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["errors/forbidden.loggable",{"_index":2040,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["errors/ldap",{"_index":13294,"title":{},"body":{"injectables/LdapService.html":{}}}],["errors/school",{"_index":15159,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["errors/unauthorized.loggable",{"_index":1818,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["errorstatus",{"_index":20979,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["errorstatus.guests_cannot_join_conference",{"_index":21114,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["errorstatus.school_feature_disabled",{"_index":21295,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["errortype",{"_index":1296,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["errorurl",{"_index":20663,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('sourcesystem",{"_index":20665,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.searchparams.append('targetsystem",{"_index":20666,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorurl.tostring",{"_index":20667,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["errorutils",{"_index":1440,"title":{"classes/ErrorUtils.html":{}},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"classes/GlobalErrorFilter.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["errorutils.createhttpexceptionoptions(err",{"_index":1461,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["errorutils.createhttpexceptionoptions(error",{"_index":2054,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["errorutils.createhttpexceptionoptions(errorobj",{"_index":8212,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["errorutils.isbusinesserror(error",{"_index":10510,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isbusinesserror(this.error",{"_index":8150,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isfeatherserror(error",{"_index":10508,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isfeatherserror(this.error",{"_index":8148,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["errorutils.isnesthttpexception(error",{"_index":10512,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["errorutils.isnesthttpexception(this.error",{"_index":8151,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["erweitern",{"_index":4764,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["erwin",{"_index":22348,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["erwinidm",{"_index":22349,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["es",{"_index":12104,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["es256",{"_index":1674,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es384",{"_index":1675,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es512",{"_index":1676,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["es6",{"_index":21399,"title":{},"body":{"dependencies.html":{}}}],["escape",{"_index":14554,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["escaped",{"_index":11258,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"miscellaneous/functions.html":{}}}],["escapedclasses",{"_index":12561,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedfirstname",{"_index":12545,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedlastname",{"_index":12553,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedloginname",{"_index":12556,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["escapedname",{"_index":20717,"title":{},"body":{"injectables/UserRepo.html":{}}}],["escapedusername",{"_index":941,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["escapes",{"_index":936,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["eslint",{"_index":1298,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/ConsoleWriterService.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SystemRepo.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application.html":{}}}],["eslint/ban",{"_index":20721,"title":{},"body":{"injectables/UserRepo.html":{}}}],["eslint/dot",{"_index":2566,"title":{},"body":{"classes/BaseFactory.html":{}}}],["eslint/no",{"_index":1302,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/News.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{}}}],["eslint/require",{"_index":14252,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["eslint/restrict",{"_index":1378,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ErrorLoggable.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SystemRepo.html":{}}}],["eslintrc.js",{"_index":22420,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["especially",{"_index":22553,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["essential",{"_index":21802,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["etag",{"_index":6170,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["etc",{"_index":21618,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["etherpad",{"_index":8265,"title":{},"body":{"injectables/EtherpadService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["etherpad.service",{"_index":13725,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["etherpadenabled",{"_index":13777,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["etherpadpadid",{"_index":13792,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["etherpadservice",{"_index":8247,"title":{"injectables/EtherpadService.html":{}},"body":{"injectables/EtherpadService.html":{},"injectables/LessonCopyService.html":{},"modules/LessonModule.html":{}}}],["etherpaduri",{"_index":13795,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["etherpaduri}/${etherpadpadid",{"_index":13798,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["evaluate",{"_index":22673,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evaluated",{"_index":22674,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["evans",{"_index":22690,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["even",{"_index":21594,"title":{},"body":{"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["event",{"_index":3940,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/FilesStorageProducer.html":{},"injectables/VideoConferenceService.html":{},"license.html":{}}}],["event.data[0",{"_index":3946,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["event.dto",{"_index":3944,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.dto.ts",{"_index":3927,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:2",{"_index":3931,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.dto.ts:4",{"_index":3930,"title":{},"body":{"classes/CalendarEventDto.html":{}}}],["event.interface",{"_index":3942,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["event.interface.ts",{"_index":11098,"title":{},"body":{"interfaces/ICalendarEvent.html":{}}}],["event.teamid",{"_index":21306,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["event.title",{"_index":21308,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["eventid",{"_index":3965,"title":{},"body":{"injectables/CalendarService.html":{}}}],["events",{"_index":11618,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["everyattendeejoinsmuted",{"_index":7889,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everyattendejoinsmuted",{"_index":20842,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everybodyjoinsasmoderator",{"_index":7890,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{}}}],["everyone",{"_index":21671,"title":{},"body":{"license.html":{}}}],["everything",{"_index":23039,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["exact",{"_index":12244,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exactly",{"_index":20545,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exactmatch",{"_index":902,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["example",{"_index":2577,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["example'invoke",{"_index":22950,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["exampleapimodule",{"_index":22543,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplecolor",{"_index":7342,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["examplecontroller",{"_index":22542,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examplemodule",{"_index":22533,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["examples",{"_index":21559,"title":{},"body":{"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["exampleuc",{"_index":22541,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exceeded",{"_index":8615,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/HydraOauthUc.html":{}}}],["except",{"_index":14555,"title":{},"body":{"classes/MongoPatterns.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exception",{"_index":1819,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"modules/ErrorModule.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/UserLoginMigrationUc.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exception.constructor.name.replace('loggable",{"_index":10523,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.getstatus",{"_index":10520,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.loggable",{"_index":12158,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["exception.loggable.ts",{"_index":12129,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:4",{"_index":12130,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.loggable.ts:9",{"_index":12131,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["exception.message",{"_index":10521,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exception.ts",{"_index":8530,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:10",{"_index":17687,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["exception.ts:15",{"_index":14979,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exception.ts:16",{"_index":10370,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["exception.ts:17",{"_index":8533,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:20",{"_index":8617,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["exception.ts:26",{"_index":14521,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:4",{"_index":8546,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["exception.ts:5",{"_index":8532,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["exception.ts:6",{"_index":14977,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exception.ts:7",{"_index":10369,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["exception.ts:9",{"_index":8547,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["exception/not",{"_index":14972,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["exceptionfactory",{"_index":10545,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["exceptionfilter",{"_index":10464,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptionname",{"_index":10522,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["exceptions",{"_index":22002,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["exceptionshandler",{"_index":18316,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["exchange",{"_index":1417,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exchanges",{"_index":16483,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["excluded",{"_index":21952,"title":{},"body":{"license.html":{}}}],["excludedraftsofothers",{"_index":19105,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludedraftsofothers(creatorid",{"_index":19121,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers",{"_index":19106,"title":{},"body":{"classes/TaskScope.html":{}}}],["excludeunavailableofothers(creatorid",{"_index":19123,"title":{},"body":{"classes/TaskScope.html":{}}}],["excluding",{"_index":22153,"title":{},"body":{"license.html":{}}}],["exclusion",{"_index":22235,"title":{},"body":{"license.html":{}}}],["exclusive",{"_index":22112,"title":{},"body":{"license.html":{}}}],["exclusively",{"_index":17875,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["excuse",{"_index":22160,"title":{},"body":{"license.html":{}}}],["exec",{"_index":22960,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["executable",{"_index":21797,"title":{},"body":{"license.html":{}}}],["execute",{"_index":19449,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["executed",{"_index":20469,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["executeidmmethod",{"_index":1048,"title":{},"body":{"injectables/AccountService.html":{}}}],["executeidmmethod(idmcallback",{"_index":1059,"title":{},"body":{"injectables/AccountService.html":{}}}],["executes",{"_index":22373,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["executing",{"_index":21761,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["execution",{"_index":12936,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["execution.id",{"_index":12937,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executioncontext",{"_index":8017,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["executionprovider",{"_index":12934,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executionproviders",{"_index":12911,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["executions",{"_index":12935,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["exercise",{"_index":22089,"title":{},"body":{"license.html":{}}}],["exercising",{"_index":21865,"title":{},"body":{"license.html":{}}}],["exist",{"_index":1661,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/BoardManagementUc.html":{},"injectables/ExternalToolService.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ITaskParent.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"controllers/SystemController.html":{},"entities/Task.html":{},"injectables/TaskRepo.html":{},"classes/TaskWithStatusVo.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["existing",{"_index":2835,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"entities/CourseGroup.html":{},"injectables/DashboardModelMapper.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseGroupProperties.html":{},"classes/IdentityManagementService.html":{},"modules/ImportUserModule.html":{},"interfaces/JwtConstants.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/Options.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/S3ClientAdapter.html":{},"classes/UpdateNewsParams.html":{},"controllers/VideoConferenceController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["existingaccountid",{"_index":13197,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["existingaccounts",{"_index":13194,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts.length",{"_index":13195,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingaccounts[0].id",{"_index":13196,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["existingcourses",{"_index":6545,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingcourses.map((course",{"_index":6547,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["existingelements",{"_index":2717,"title":{},"body":{"entities/Board.html":{}}}],["existingentity",{"_index":10688,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["existinggroup",{"_index":15966,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinggroup.id",{"_index":15973,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinglessons",{"_index":13848,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existinglessons.map((l",{"_index":13850,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["existingmatch",{"_index":20712,"title":{},"body":{"injectables/UserRepo.html":{}}}],["existingnames",{"_index":6250,"title":{},"body":{"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["existingnames.includes(composedname",{"_index":6275,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingnames.includes(name",{"_index":6267,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["existingrooms",{"_index":7380,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingrooms.includes(room",{"_index":7383,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["existingschool",{"_index":15929,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingschool.externalid",{"_index":17651,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["existingschool.id",{"_index":15970,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existingschool.officialschoolnumber",{"_index":15935,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{}}}],["existingtargets",{"_index":4841,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtargets.find((item",{"_index":4847,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["existingtasks",{"_index":18885,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existingtasks.map((t",{"_index":18887,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["existinguser",{"_index":15093,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{}}}],["existinguser.email",{"_index":15954,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.firstname",{"_index":15950,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.lastname",{"_index":15952,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.roles",{"_index":15956,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguser.schoolid",{"_index":15957,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["existinguserloginmigration",{"_index":13629,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["existinguserloginmigration?.closedat",{"_index":13633,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["exists",{"_index":1121,"title":{},"body":{"injectables/AccountService.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"injectables/JwtStrategy.html":{},"classes/UserScope.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["existsexpertrole",{"_index":21228,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["existsexpertrole(roles",{"_index":21247,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["existssync",{"_index":10007,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["existssync(folderpath",{"_index":10015,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["exitonerror",{"_index":14051,"title":{},"body":{"modules/LoggerModule.html":{}}}],["exp",{"_index":6887,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["expect",{"_index":22514,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["expect(code).to",{"_index":22783,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazy(x,y,z)).to",{"_index":22764,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(dosomethingcrazysync(wrong",{"_index":22786,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(mockservice.getuser).tohavebeencalled",{"_index":22828,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).to",{"_index":22767,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expect(result).toequal(resultuser",{"_index":22829,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expectation",{"_index":22756,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expected",{"_index":3145,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["expecting",{"_index":22772,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["expects",{"_index":21965,"title":{},"body":{"license.html":{}}}],["expensive",{"_index":19065,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["expert",{"_index":23037,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["expiration",{"_index":6897,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtValidationAdapter.html":{}}}],["expire",{"_index":17868,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["expireafterseconds",{"_index":9740,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["expired",{"_index":17639,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["expires",{"_index":9870,"title":{},"body":{"injectables/FileRecordRepo.html":{},"controllers/OauthSSOController.html":{}}}],["expiresat",{"_index":385,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["expiresin",{"_index":1689,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{}}}],["expiresindays",{"_index":17865,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["explains",{"_index":22907,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["explanation",{"_index":23030,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["explicit",{"_index":2086,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["explicitly",{"_index":1309,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["export",{"_index":101,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["export.service",{"_index":6596,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.service.ts",{"_index":4932,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:130",{"_index":4958,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:138",{"_index":4963,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:18",{"_index":4942,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:25",{"_index":4951,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:41",{"_index":4947,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:65",{"_index":4949,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.service.ts:85",{"_index":4954,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["export.uc",{"_index":6496,"title":{},"body":{"controllers/CourseController.html":{}}}],["export.uc.ts",{"_index":6590,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:14",{"_index":6594,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["export.uc.ts:8",{"_index":6592,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["exportcollection",{"_index":7688,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(@param('collectionname",{"_index":7712,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollection(collectionname",{"_index":7691,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["exportcollections",{"_index":7646,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{}}}],["exportcollections(options",{"_index":7651,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["exportcollectionstofilesystem(collections",{"_index":11207,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportcourse",{"_index":4935,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"controllers/CourseController.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(courseid",{"_index":4950,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/CourseExportUc.html":{}}}],["exportcourse(currentuser",{"_index":6481,"title":{},"body":{"controllers/CourseController.html":{}}}],["exported",{"_index":11185,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["exportedcollections",{"_index":11211,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exportedcollections.push(`${collectionname}:${sortedbsondocuments.length",{"_index":11225,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["exporting",{"_index":22364,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["exports",{"_index":433,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["expose",{"_index":11828,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["exposed",{"_index":5406,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["exposes",{"_index":22663,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["express",{"_index":6491,"title":{},"body":{"controllers/CourseController.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalErrorFilter.html":{},"classes/JwtExtractor.html":{},"controllers/OauthSSOController.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ToolController.html":{},"controllers/VideoConferenceController.html":{},"dependencies.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["expressed",{"_index":22191,"title":{},"body":{"license.html":{}}}],["expressions",{"_index":953,"title":{},"body":{"injectables/AccountRepo.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ErrorLoggable.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SystemRepo.html":{}}}],["expressly",{"_index":22040,"title":{},"body":{"license.html":{}}}],["ext",{"_index":12578,"title":{},"body":{"interfaces/IntrospectResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["ext_official_school_missing",{"_index":17648,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_mismatch",{"_index":17674,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["ext_official_school_number_missing",{"_index":17644,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["extend",{"_index":685,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/GlobalValidationPipe.html":{},"classes/ImportUserFactory.html":{},"injectables/JwtStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UpdateNewsParams.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["extendability",{"_index":22450,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extended",{"_index":3851,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/FileSystemAdapter.html":{},"injectables/JwtValidationAdapter.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["extending",{"_index":18155,"title":{},"body":{"classes/SortingParams.html":{}}}],["extends",{"_index":404,"title":{},"body":{"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthorizationError.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"entities/ColumnboardBoardElement.html":{},"classes/ConsentRequestBody.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/County.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/FeathersError.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"classes/FileContentBody.html":{},"classes/FileElement.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalValidationPipe.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/InlineAttachment.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LocalStrategy.html":{},"classes/LoginRequestBody.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"interfaces/PlainTextMailContent.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"interfaces/RpcMessage.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenRepo.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestBootstrapConsole.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["extension",{"_index":22465,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["extensions",{"_index":21899,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["extent",{"_index":21779,"title":{},"body":{"license.html":{}}}],["external",{"_index":200,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"interfaces/BoardExternalReference.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalGroupDto.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IToolLaunchParams.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"modules/ImportUserModule.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ReferenceLoader.html":{},"injectables/RuleManager.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["external_sub",{"_index":6863,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["external_tool_logo_fetch_failed",{"_index":8534,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["external_tool_logo_fetched",{"_index":8543,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["external_tool_logo_not_found",{"_index":8548,"title":{},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}}}],["external_tool_logo_size_exceeded",{"_index":8618,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["external_tool_logo_wrong_file_type",{"_index":8620,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["external_tools",{"_index":8488,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["externalauthconfig",{"_index":12666,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["externalgroup",{"_index":15918,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalid",{"_index":15968,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.externalorganizationid",{"_index":15969,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.from",{"_index":15976,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.name",{"_index":15974,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.type",{"_index":15975,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.until",{"_index":15977,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.users.length",{"_index":15965,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroup.users.map(async",{"_index":15979,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupdto",{"_index":8266,"title":{"classes/ExternalGroupDto.html":{}},"body":{"classes/ExternalGroupDto.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalgroupid",{"_index":17549,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalgroups",{"_index":15347,"title":{},"body":{"classes/OauthDataDto.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalgroupuser",{"_index":15980,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalgroupuserdto",{"_index":8278,"title":{"classes/ExternalGroupUserDto.html":{}},"body":{"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["externalid",{"_index":854,"title":{},"body":{"interfaces/AccountParams.html":{},"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalUserDto.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/IservMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"entities/News.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["externalorganizationid",{"_index":8269,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["externalrolename",{"_index":10707,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["externalschool",{"_index":12647,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externalschool.externalid",{"_index":15931,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.name",{"_index":15933,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschool.officialschoolnumber",{"_index":15934,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externalschooldto",{"_index":8298,"title":{"classes/ExternalSchoolDto.html":{}},"body":{"classes/ExternalSchoolDto.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["externalschoolid",{"_index":13352,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["externalsource",{"_index":8306,"title":{"classes/ExternalSource.html":{}},"body":{"classes/ExternalSource.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/OidcProvisioningService.html":{}}}],["externalsource.externalid",{"_index":10637,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsource.systemid",{"_index":10639,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["externalsourceentity",{"_index":8311,"title":{"classes/ExternalSourceEntity.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["externalsourceentityprops",{"_index":8314,"title":{"interfaces/ExternalSourceEntityProps.html":{}},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["externalsub",{"_index":6891,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["externaltool",{"_index":158,"title":{"classes/ExternalTool.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["externaltool'})@httpcode(httpstatus.no_content",{"_index":19656,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltool.config",{"_index":9024,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.baseurl",{"_index":272,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["externaltool.config.clientid",{"_index":9255,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.clientsecret",{"_index":9258,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.secret",{"_index":9115,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.config.type",{"_index":9251,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.id",{"_index":8593,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolValidationService.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltool.ishidden",{"_index":8450,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.islti11config(config",{"_index":14230,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["externaltool.islti11config(externaltool.config",{"_index":9114,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(externaltool.config",{"_index":9117,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(loadedtool.config",{"_index":9250,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["externaltool.isoauth2config(tool.config",{"_index":9128,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.isoauth2config(toupdate.config",{"_index":9145,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["externaltool.logo",{"_index":8588,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{}}}],["externaltool.logourl",{"_index":8435,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.name",{"_index":8672,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.opennewtab",{"_index":274,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["externaltool.parameters",{"_index":276,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltool.parameters.filter",{"_index":8398,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltool.parameters.foreach((param",{"_index":8674,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["externaltool.url",{"_index":9029,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltool.version",{"_index":9030,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltoolconfig",{"_index":2603,"title":{"classes/ExternalToolConfig.html":{}},"body":{"classes/BasicToolConfig.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolUc.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfig:4",{"_index":2607,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfig:6",{"_index":2605,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfig.html":{}}}],["externaltoolconfigcreateparams",{"_index":2626,"title":{"classes/ExternalToolConfigCreateParams.html":{}},"body":{"classes/BasicToolConfigParams.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigcreateparams:13",{"_index":2628,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigcreateparams:9",{"_index":2630,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["externaltoolconfigdo",{"_index":9006,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["externaltoolconfigentity",{"_index":2614,"title":{"classes/ExternalToolConfigEntity.html":{}},"body":{"classes/BasicToolConfigEntity.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigentity:10",{"_index":2616,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigentity:7",{"_index":2617,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["externaltoolconfigparams",{"_index":8904,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolconfigresponse",{"_index":2636,"title":{"classes/ExternalToolConfigResponse.html":{}},"body":{"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:10",{"_index":2638,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigresponse:7",{"_index":2639,"title":{},"body":{"classes/BasicToolConfigResponse.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["externaltoolconfigurationservice",{"_index":8351,"title":{"injectables/ExternalToolConfigurationService.html":{}},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/ExternalToolModule.html":{},"modules/ToolApiModule.html":{}}}],["externaltoolconfigurationuc",{"_index":8399,"title":{"injectables/ExternalToolConfigurationUc.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["externaltoolcreate",{"_index":8898,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams",{"_index":8453,"title":{"classes/ExternalToolCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolcreateparams.config",{"_index":8962,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.ishidden",{"_index":8970,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.logourl",{"_index":8969,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.name",{"_index":8967,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.opennewtab",{"_index":8971,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.parameters",{"_index":8966,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolcreateparams.url",{"_index":8968,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltooldomapper",{"_index":19680,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolentity",{"_index":8472,"title":{"entities/ExternalToolEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolentity(props",{"_index":8787,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolentityfactory",{"_index":8491,"title":{"classes/ExternalToolEntityFactory.html":{}},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolentityfactory.define",{"_index":8511,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["externaltoolfactory",{"_index":7163,"title":{"classes/ExternalToolFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolfactory.define(externaltool",{"_index":7174,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolid",{"_index":5639,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/ToolConfigurationMapper.html":{}}}],["externaltoolidparams",{"_index":8519,"title":{"classes/ExternalToolIdParams.html":{}},"body":{"classes/ExternalToolIdParams.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo",{"_index":8520,"title":{"classes/ExternalToolLogo.html":{}},"body":{"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoService.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.contenttype",{"_index":8527,"title":{},"body":{"classes/ExternalToolLogo.html":{},"controllers/ToolController.html":{}}}],["externaltoollogo.logo",{"_index":8525,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["externaltoollogofetchedloggable",{"_index":8540,"title":{"classes/ExternalToolLogoFetchedLoggable.html":{}},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchedloggable(logourl",{"_index":8600,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception",{"_index":8528,"title":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogofetchfailedloggableexception(logourl",{"_index":8604,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception",{"_index":8544,"title":{"classes/ExternalToolLogoNotFoundLoggableException.html":{}},"body":{"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{}}}],["externaltoollogonotfoundloggableexception(toolid",{"_index":8608,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["externaltoollogoservice",{"_index":8409,"title":{"classes/ExternalToolLogoService.html":{}},"body":{"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"controllers/ToolController.html":{},"injectables/ToolReferenceUc.html":{}}}],["externaltoollogosizeexceededloggableexception",{"_index":8571,"title":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["externaltoollogowrongfiletypeloggableexception",{"_index":8572,"title":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}},"body":{"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["externaltoolmodule",{"_index":5718,"title":{"modules/ExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["externaltoolparametervalidationservice",{"_index":8631,"title":{"injectables/ExternalToolParameterValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolparams",{"_index":19648,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolprops",{"_index":7124,"title":{"interfaces/ExternalToolProps.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["externaltoolpseudonymentity",{"_index":8709,"title":{"entities/ExternalToolPseudonymEntity.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["externaltoolpseudonymentity(entityprops",{"_index":8755,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["externaltoolpseudonympromise",{"_index":16430,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolpseudonymrepo",{"_index":8723,"title":{"injectables/ExternalToolPseudonymRepo.html":{}},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{}}}],["externaltoolpseudonyms",{"_index":16417,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["externaltoolrepo",{"_index":8632,"title":{"injectables/ExternalToolRepo.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["externaltoolrepomapper",{"_index":5780,"title":{"classes/ExternalToolRepoMapper.html":{}},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentrydostoentities(entitydo.parameters",{"_index":5807,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.parameters",{"_index":5800,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapcustomparameterentryentitiestodos(entity.schoolparameters",{"_index":17420,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapdotoentityproperties(entitydo",{"_index":8799,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrepomapper.mapentitytodo(entity",{"_index":8798,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltoolrequestmapper",{"_index":8884,"title":{"injectables/ExternalToolRequestMapper.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponse",{"_index":8985,"title":{"classes/ExternalToolResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper",{"_index":8996,"title":{"injectables/ExternalToolResponseMapper.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.mapcustomparametertoresponse(externaltool.parameters",{"_index":19589,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(created",{"_index":19683,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(externaltool",{"_index":19697,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(tool",{"_index":19690,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptoexternaltoolresponse(updated",{"_index":19701,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponsemapper.maptotoolreferenceresponses(toolreferences",{"_index":19706,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":19676,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":19649,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltools",{"_index":8365,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{}}}],["externaltools.data",{"_index":8443,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["externaltools.data.filter((tool",{"_index":8378,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.find",{"_index":8391,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["externaltools.map",{"_index":19591,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["externaltools.map((tooldo",{"_index":17455,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["externaltoolscope",{"_index":8786,"title":{"classes/ExternalToolScope.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{}}}],["externaltoolsearchlistresponse",{"_index":9061,"title":{"classes/ExternalToolSearchListResponse.html":{}},"body":{"classes/ExternalToolSearchListResponse.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":19927,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["externaltoolsearchlistresponse})@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":19660,"title":{},"body":{"controllers/ToolController.html":{}}}],["externaltoolsearchparams",{"_index":8900,"title":{"classes/ExternalToolSearchParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSearchParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolsearchquery",{"_index":8772,"title":{"interfaces/ExternalToolSearchQuery.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolservice",{"_index":5976,"title":{"injectables/ExternalToolService.html":{}},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceUc.html":{}}}],["externaltoolservice.deleteexternaltool",{"_index":5282,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["externaltoolservicemapper",{"_index":8633,"title":{"injectables/ExternalToolServiceMapper.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["externaltoolsortby",{"_index":18144,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["externaltoolsortingmapper",{"_index":8784,"title":{"classes/ExternalToolSortingMapper.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{}}}],["externaltoolsortingmapper.mapdosortordertoqueryorder",{"_index":8790,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["externaltooluc",{"_index":9188,"title":{"injectables/ExternalToolUc.html":{}},"body":{"injectables/ExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdate",{"_index":8931,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams",{"_index":8929,"title":{"classes/ExternalToolUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"controllers/ToolController.html":{}}}],["externaltoolupdateparams.config",{"_index":8949,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.id",{"_index":8956,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.ishidden",{"_index":8960,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.logourl",{"_index":8959,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.name",{"_index":8957,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.opennewtab",{"_index":8961,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.parameters",{"_index":8955,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolupdateparams.url",{"_index":8958,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["externaltoolvalidationservice",{"_index":8629,"title":{"injectables/ExternalToolValidationService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["externaltoolversion",{"_index":17533,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["externaltoolversionservice",{"_index":8630,"title":{"injectables/ExternalToolVersionService.html":{}},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolVersionService.html":{}}}],["externaluser",{"_index":12645,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.email",{"_index":15953,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.externalid",{"_index":15958,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.firstname",{"_index":15949,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.lastname",{"_index":15951,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["externaluser.roles",{"_index":15944,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.includes(rolename.administrator",{"_index":17271,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluser.roles.push(rolename.teacher",{"_index":17272,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["externaluserdto",{"_index":9332,"title":{"classes/ExternalUserDto.html":{}},"body":{"classes/ExternalUserDto.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["externaluserid",{"_index":8291,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningDto.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["extra",{"_index":23105,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["extract",{"_index":11476,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["extractaccount",{"_index":13071,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractaccount(user",{"_index":13077,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue",{"_index":13072,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractattributevalue(value",{"_index":13080,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["extractids(users",{"_index":6451,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["extracting",{"_index":10543,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["extractjwt",{"_index":12693,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromauthheaderasbearertoken",{"_index":12698,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractjwt.fromextractors",{"_index":12697,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor",{"_index":12694,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["extractor.ts",{"_index":12679,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractor.ts:6",{"_index":12682,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["extractparamsfromrequest",{"_index":13320,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractparamsfromrequest(request",{"_index":13327,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["extractreferences",{"_index":2990,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extractreferences(statuses",{"_index":3012,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["extracts",{"_index":2324,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["extracttaskid",{"_index":13759,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["extracttaskid(content.url",{"_index":13765,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["extractvalidationerrordetails",{"_index":1501,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["extractvalidationerrordetails(validationerror",{"_index":1517,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["f",{"_index":713,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolService.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"license.html":{}}}],["f0",{"_index":2910,"title":{},"body":{"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LessonCopyApiParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UserInfoResponse.html":{}}}],["facilitate",{"_index":22719,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["facilitating",{"_index":22173,"title":{},"body":{"license.html":{}}}],["facilities",{"_index":21830,"title":{},"body":{"license.html":{}}}],["factories",{"_index":7670,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["factory",{"_index":676,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RoomsUc.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/ShareTokenFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["factory.define",{"_index":723,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["factory.define(generator",{"_index":2545,"title":{},"body":{"classes/BaseFactory.html":{}}}],["factory/account.factory",{"_index":1706,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["fail",{"_index":21722,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failafter",{"_index":13307,"title":{},"body":{"injectables/LdapService.html":{}}}],["failed",{"_index":798,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"classes/ApiValidationError.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"classes/LdapConnectionError.html":{},"injectables/OauthAdapterService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/UserLoginMigrationError.html":{},"todo.html":{}}}],["failing",{"_index":14016,"title":{},"body":{"injectables/LocalStrategy.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["failingfileids",{"_index":7828,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.length",{"_index":7829,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.push(result.fileid",{"_index":7836,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["failingfileids.tostring",{"_index":7841,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["fails",{"_index":11586,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["failure",{"_index":10770,"title":{},"body":{"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"license.html":{}}}],["fair",{"_index":21827,"title":{},"body":{"license.html":{}}}],["fallback",{"_index":19208,"title":{},"body":{"injectables/TaskUC.html":{}}}],["false",{"_index":371,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardUrlParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"injectables/CollaborativeStorageService.html":{},"entities/ColumnBoardTarget.html":{},"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/County.html":{},"entities/Course.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DtoCreator.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FederalState.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GlobalValidationPipe.html":{},"injectables/GroupRepo.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"classes/IdParams.html":{},"classes/IdentityManagementOauthService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapConfig.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"modules/LoggerModule.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"classes/PublicSystemResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/Scope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"injectables/SubmissionRule.html":{},"classes/SubmissionUrlParams.html":{},"entities/System.html":{},"classes/SystemIdParams.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"classes/TeamUrlParams.html":{},"injectables/TeamsRepo.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["false})@index",{"_index":9575,"title":{},"body":{"entities/FileEntity.html":{}}}],["false})@isoptional",{"_index":20951,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["false})@sanitizehtml",{"_index":16623,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["familiar",{"_index":23035,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["familienname",{"_index":17235,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["family",{"_index":21956,"title":{},"body":{"license.html":{}}}],["fantasy",{"_index":21645,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["fashion",{"_index":21749,"title":{},"body":{"license.html":{}}}],["fast",{"_index":22716,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["favicon",{"_index":21457,"title":{},"body":{"dependencies.html":{}}}],["favor",{"_index":21962,"title":{},"body":{"license.html":{}}}],["featherjs",{"_index":23109,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["feathers",{"_index":1987,"title":{},"body":{"modules/AuthorizationModule.html":{},"classes/ErrorLoggable.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{},"index.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["feathersapp",{"_index":9442,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersapp.service(path",{"_index":9449,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersauthorizationservice",{"_index":1953,"title":{"injectables/FeathersAuthorizationService.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/NewsUc.html":{}}}],["feathersauthprovider",{"_index":1960,"title":{"injectables/FeathersAuthProvider.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["featherserror",{"_index":8241,"title":{"interfaces/FeathersError.html":{}},"body":{"classes/ErrorUtils.html":{},"interfaces/FeathersError.html":{},"classes/GlobalErrorFilter.html":{}}}],["featherserror)?.type",{"_index":8244,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["feathersexpress",{"_index":9447,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersexpress.services['nest",{"_index":22630,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersjs/authentication",{"_index":21326,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/configuration",{"_index":21329,"title":{},"body":{"dependencies.html":{}}}],["feathersjs/errors",{"_index":7628,"title":{},"body":{"injectables/DashboardUc.html":{},"dependencies.html":{}}}],["feathersjs/express",{"_index":9436,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"dependencies.html":{}}}],["feathersjs/feathers",{"_index":21330,"title":{},"body":{"dependencies.html":{}}}],["feathersmodule",{"_index":1950,"title":{"modules/FeathersModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/FeathersModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersservice",{"_index":9425,"title":{"interfaces/FeathersService.html":{}},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceparams",{"_index":9429,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feathersserviceprovider",{"_index":8251,"title":{"injectables/FeathersServiceProvider.html":{}},"body":{"injectables/EtherpadService.html":{},"injectables/FeathersAuthProvider.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/LessonModule.html":{},"injectables/NexboardService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["feathersserviceresponse",{"_index":9438,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["feature",{"_index":6589,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyUC.html":{},"injectables/OAuthService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["feature/bc",{"_index":21654,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature/sc",{"_index":21644,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["feature_disabled_app_will_not_be_created",{"_index":16258,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_disabled_middlewares_will_not_be_created",{"_index":16251,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["feature_identity_management_enabled",{"_index":11442,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_login_enabled",{"_index":11443,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_identity_management_store_enabled",{"_index":11444,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_imscc_course_export_enabled",{"_index":11295,"title":{},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["feature_videoconference_enabled",{"_index":21296,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["featureenabled",{"_index":13829,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["features",{"_index":6367,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["featureundertest",{"_index":22809,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["federal",{"_index":11699,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolFactory.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["federalstate",{"_index":6359,"title":{"entities/FederalState.html":{}},"body":{"classes/County.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolYearService.html":{},"entities/System.html":{}}}],["federalstatefactory",{"_index":13513,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatefactory.build",{"_index":13526,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["federalstatenames",{"_index":15925,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstatenames.niedersachen",{"_index":15939,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["federalstaterepo",{"_index":9458,"title":{"injectables/FederalStateRepo.html":{}},"body":{"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{}}}],["federalstates",{"_index":6358,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["federalstateservice",{"_index":9464,"title":{"injectables/FederalStateService.html":{}},"body":{"injectables/FederalStateService.html":{},"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{}}}],["fee",{"_index":21883,"title":{},"body":{"license.html":{}}}],["feedback",{"_index":4802,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feedbacklink",{"_index":4795,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["feel",{"_index":1722,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["fetch",{"_index":2723,"title":{},"body":{"entities/Board.html":{},"injectables/CourseCopyService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["fetchbase64logo",{"_index":8552,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchbase64logo(logourl",{"_index":8562,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetched",{"_index":8535,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{}}}],["fetchedentity",{"_index":2455,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["fetchexternaltool",{"_index":19886,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["fetchexternaltool(schoolexternaltool",{"_index":19894,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["fetchlogo",{"_index":8553,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchlogo(externaltool",{"_index":8564,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["fetchschoolexternaltool",{"_index":19887,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["fetchschoolexternaltool(contextexternaltool",{"_index":19896,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["few",{"_index":23145,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["ffd8ffe0",{"_index":8575,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffd8ffe1",{"_index":8577,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["ffffff",{"_index":6621,"title":{},"body":{"classes/CourseFactory.html":{}}}],["field",{"_index":11485,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/LdapStrategy.html":{},"classes/PatchMyPasswordParams.html":{},"classes/ValidationErrorDetailResponse.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["fieldname",{"_index":2674,"title":{},"body":{"entities/Board.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["fields",{"_index":2183,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/HydraSsoService.html":{},"injectables/TaskRepo.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["file",{"_index":5,"title":{"interfaces/File.html":{},"additional-documentation/nestjs-application/file-structure.html":{}},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["file.bucket",{"_index":7860,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.collectionname",{"_index":11165,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["file.data",{"_index":9485,"title":{},"body":{"classes/FileDto.html":{},"classes/FileResponseBuilder.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.dto.ts",{"_index":6066,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:5",{"_index":6070,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:7",{"_index":6071,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.dto.ts:9",{"_index":6069,"title":{},"body":{"classes/CopyFileDto.html":{}}}],["file.id",{"_index":7859,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.interface",{"_index":5111,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["file.interface.ts",{"_index":11298,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:2",{"_index":11299,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.interface.ts:3",{"_index":11300,"title":{},"body":{"interfaces/ICommonCartridgeFile.html":{}}}],["file.isdirectory",{"_index":7856,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.mimetype",{"_index":9486,"title":{},"body":{"classes/FileDto.html":{},"injectables/S3ClientAdapter.html":{}}}],["file.name",{"_index":9484,"title":{},"body":{"classes/FileDto.html":{}}}],["file.storagefilename",{"_index":7862,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file.storageprovider",{"_index":7864,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["file_could_not_be_copied_hint",{"_index":6206,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filecontent",{"_index":11192,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filecontentbody",{"_index":5541,"title":{"classes/FileContentBody.html":{}},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["filecopystatus",{"_index":6216,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["filecouldnotbecopied",{"_index":6207,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedto",{"_index":6219,"title":{"classes/FileDto.html":{},"classes/FileDto-1.html":{}},"body":{"injectables/CopyFilesService.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/PreviewService.html":{}}}],["filedtobuilder",{"_index":9495,"title":{"classes/FileDtoBuilder.html":{}},"body":{"classes/FileDtoBuilder.html":{},"injectables/PreviewService.html":{}}}],["filedtobuilder.build(fileinfo.filename",{"_index":9509,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtobuilder.build(hash",{"_index":16187,"title":{},"body":{"injectables/PreviewService.html":{}}}],["filedtobuilder.build(name",{"_index":9514,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["filedtos",{"_index":6199,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map",{"_index":6225,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filedtos.map((filedto",{"_index":6218,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileelement",{"_index":2864,"title":{"classes/FileElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.caption",{"_index":5579,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelement.id",{"_index":16580,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["fileelementcontent",{"_index":9530,"title":{"classes/FileElementContent.html":{}},"body":{"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementcontentbody",{"_index":8032,"title":{"classes/FileElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["fileelementnode",{"_index":3174,"title":{"entities/FileElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["fileelementnodeprops",{"_index":9540,"title":{"interfaces/FileElementNodeProps.html":{}},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["fileelementprops",{"_index":9529,"title":{"interfaces/FileElementProps.html":{}},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["fileelementresponse",{"_index":4011,"title":{"classes/FileElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper",{"_index":5521,"title":{"classes/FileElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{}}}],["fileelementresponsemapper.getinstance",{"_index":5516,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["fileelementresponsemapper.instance",{"_index":9552,"title":{},"body":{"classes/FileElementResponseMapper.html":{}}}],["fileentity",{"_index":7811,"title":{"entities/FileEntity.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"modules/ServerConsoleModule.html":{}}}],["fileentityprops",{"_index":9603,"title":{"interfaces/FileEntityProps.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["filegroupstatus",{"_index":6231,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileid",{"_index":6230,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/DeleteFilesUc.html":{}}}],["fileinfo",{"_index":9505,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfo.mimetype",{"_index":9510,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["fileinfos",{"_index":10117,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filename",{"_index":6127,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"interfaces/ICollectionFilePath.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{}}}],["filename.split('.')[0",{"_index":11147,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filename=\"${encodeuri(fileresponse.name",{"_index":10239,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filename=\"${encodeuri(params.fwulearningcontent",{"_index":10416,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["filenameprefix",{"_index":6116,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["filenames",{"_index":9989,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filenames.map((filename",{"_index":11145,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filenamewithoutextension",{"_index":16195,"title":{},"body":{"injectables/PreviewService.html":{}}}],["filenamewithoutextension}.${format",{"_index":16198,"title":{},"body":{"injectables/PreviewService.html":{}}}],["fileownermodel",{"_index":9585,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["fileownermodel.user",{"_index":10060,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["fileparambuilder",{"_index":6204,"title":{"classes/FileParamBuilder.html":{}},"body":{"injectables/CopyFilesService.html":{},"classes/FileParamBuilder.html":{}}}],["fileparambuilder.build(copyentity.getschoolid",{"_index":6211,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparambuilder.build(originalentity.getschoolid",{"_index":6210,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["fileparams",{"_index":6128,"title":{"classes/FileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["filepath",{"_index":9994,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/GetFileResponse.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["filepermissionentity",{"_index":9583,"title":{"classes/FilePermissionEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionentityprops",{"_index":9669,"title":{"interfaces/FilePermissionEntityProps.html":{}},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filepermissionreferencemodel",{"_index":9674,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["filerecord",{"_index":6082,"title":{"entities/FileRecord.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/GetFileResponse.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"modules/ServerConsoleModule.html":{},"miscellaneous/functions.html":{}}}],["filerecord.creatorid",{"_index":6099,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.deletedsince",{"_index":6105,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.getpreviewstatus",{"_index":6107,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.id",{"_index":6088,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.mimetype",{"_index":6101,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.name",{"_index":6089,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"injectables/PreviewService.html":{}}}],["filerecord.name.split('.')[0",{"_index":16196,"title":{},"body":{"injectables/PreviewService.html":{}}}],["filerecord.parentid",{"_index":6097,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.parenttype",{"_index":6103,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecord.schoolid",{"_index":10235,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filerecord.securitycheck.status",{"_index":6095,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecord.size",{"_index":6093,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordcopy",{"_index":9760,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordcopy.securitycheck",{"_index":9762,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerecordfactory",{"_index":9793,"title":{"classes/FileRecordFactory.html":{}},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordfactory.define(filerecord",{"_index":9799,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordid",{"_index":6131,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordScope.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{}}}],["filerecordlistresponse",{"_index":6113,"title":{"classes/FileRecordListResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordlistresponse(responsefilerecords",{"_index":9820,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordlistresponse.map((record",{"_index":10142,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordmapper",{"_index":9804,"title":{"classes/FileRecordMapper.html":{}},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordmapper.maptofilerecordresponse(filerecord",{"_index":9819,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["filerecordparams",{"_index":6119,"title":{"classes/FileRecordParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{}}}],["filerecordparenttype",{"_index":6083,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileDto-1.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IParentInfo.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["filerecordparenttype'})@isenum(filerecordparenttype",{"_index":9832,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["filerecordparenttype.course",{"_index":9801,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["filerecordparenttype.lesson",{"_index":10155,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.submission",{"_index":10157,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordparenttype.task",{"_index":10156,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordrepo",{"_index":9835,"title":{"injectables/FileRecordRepo.html":{}},"body":{"injectables/FileRecordRepo.html":{},"modules/FilesStorageModule.html":{}}}],["filerecordresponse",{"_index":6086,"title":{"classes/FileRecordResponse.html":{}},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordresponse(filerecord",{"_index":9816,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["filerecordresponse.id",{"_index":10147,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.name",{"_index":10148,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecordresponse.parentid",{"_index":10149,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filerecords",{"_index":9734,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["filerecords.map((filerecord",{"_index":9818,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{},"injectables/PreviewService.html":{}}}],["filerecordscanstatus",{"_index":6108,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["filerecordscope",{"_index":9846,"title":{"classes/FileRecordScope.html":{}},"body":{"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(false",{"_index":9863,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byfilerecordid(id).bymarkedfordelete(true",{"_index":9865,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byparentid(parentid).bymarkedfordelete(false",{"_index":9866,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(false",{"_index":9868,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().byschoolid(schoolid).byparentid(parentid).bymarkedfordelete(true",{"_index":9869,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordscope().bysecuritycheckrequesttoken(token",{"_index":9872,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["filerecordsecuritycheck",{"_index":9707,"title":{"classes/FileRecordSecurityCheck.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordSecurityCheck.html":{},"modules/FilesStorageModule.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["filerequestinfo",{"_index":6181,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["fileresponse",{"_index":9919,"title":{},"body":{"classes/FileResponseBuilder.html":{},"classes/FilesStorageMapper.html":{},"classes/TestHelper.html":{}}}],["fileresponse.contentlength",{"_index":10240,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponse.contenttype",{"_index":10238,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["fileresponsebuilder",{"_index":9914,"title":{"classes/FileResponseBuilder.html":{}},"body":{"classes/FileResponseBuilder.html":{},"injectables/PreviewService.html":{}}}],["fileresponsebuilder.build(file",{"_index":16184,"title":{},"body":{"injectables/PreviewService.html":{}}}],["files",{"_index":3542,"title":{},"body":{"modules/BoardModule.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["files.console.ts",{"_index":7771,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:15",{"_index":7782,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.console.ts:6",{"_index":7775,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["files.interface",{"_index":12821,"title":{},"body":{"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["files.interface.ts",{"_index":11508,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["files.length",{"_index":7837,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.map((file",{"_index":7831,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.service",{"_index":10164,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["files.service.ts",{"_index":6188,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:17",{"_index":6194,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:23",{"_index":6196,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:42",{"_index":6198,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.service.ts:58",{"_index":6202,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["files.uc.ts",{"_index":7795,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:106",{"_index":7814,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:12",{"_index":7804,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:22",{"_index":7816,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:66",{"_index":7817,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:76",{"_index":7807,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files.uc.ts:91",{"_index":7812,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["files_storage_s3_connection",{"_index":11408,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/PreviewService.html":{}}}],["filesdto",{"_index":10141,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesecuritycheckentity",{"_index":9587,"title":{"classes/FileSecurityCheckEntity.html":{}},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckentityprops",{"_index":9921,"title":{"interfaces/FileSecurityCheckEntityProps.html":{}},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus",{"_index":9926,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycheckstatus.pending",{"_index":9927,"title":{},"body":{"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{}}}],["filesecuritycontroller",{"_index":9929,"title":{"controllers/FileSecurityController.html":{}},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filesmodule",{"_index":10037,"title":{"modules/FilesModule.html":{}},"body":{"modules/FilesModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["filesrepo",{"_index":7802,"title":{"injectables/FilesRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{}}}],["filesservice",{"_index":10069,"title":{"injectables/FilesService.html":{}},"body":{"injectables/FilesService.html":{}}}],["filesservicebaseurl",{"_index":1416,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageModule.html":{}}}],["filesstorageamqpmodule",{"_index":10085,"title":{"modules/FilesStorageAMQPModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules.html":{}}}],["filesstorageapimodule",{"_index":10094,"title":{"modules/FilesStorageApiModule.html":{}},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filesstorageclientadapterservice",{"_index":6193,"title":{"injectables/FilesStorageClientAdapterService.html":{}},"body":{"injectables/CopyFilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/LessonService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/SubmissionService.html":{},"injectables/TaskService.html":{}}}],["filesstorageclientmapper",{"_index":9659,"title":{"classes/FilesStorageClientMapper.html":{}},"body":{"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapcopyfilelistresponsetocopyfilesdto(response",{"_index":10118,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapcopyfileresponsetocopyfiledto(response",{"_index":10145,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapentitytoparenttype(parent",{"_index":9661,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["filesstorageclientmapper.mapfilerecordlistresponsetodomainfilesdto(response",{"_index":10120,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filesstorageclientmapper.mapfilerecordresponsetofiledto(record",{"_index":10143,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmapper.mapstringtoparenttype(filerecordresponse.parenttype",{"_index":10146,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["filesstorageclientmodule",{"_index":3534,"title":{"modules/FilesStorageClientModule.html":{}},"body":{"modules/BoardModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/LessonModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TaskModule.html":{},"modules.html":{}}}],["filesstorageconsumer",{"_index":10090,"title":{"injectables/FilesStorageConsumer.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"injectables/FilesStorageConsumer.html":{}}}],["filesstoragecontroller",{"_index":10098,"title":{},"body":{"modules/FilesStorageApiModule.html":{}}}],["filesstorageevents",{"_index":10187,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["filesstorageevents.copy_files_of_parent",{"_index":10193,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.delete_files_of_parent",{"_index":10199,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageevents.list_files_of_parent",{"_index":10195,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstorageexchange",{"_index":10174,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["filesstorageinternalactions",{"_index":1443,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"controllers/FileSecurityController.html":{}}}],["filesstoragemapper",{"_index":10191,"title":{"classes/FilesStorageMapper.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{}}}],["filesstoragemapper.maptofilerecordlistresponse(filerecords",{"_index":10198,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["filesstoragemapper.maptofilerecordresponse(filerecord",{"_index":10236,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["filesstoragemodule",{"_index":10089,"title":{"modules/FilesStorageModule.html":{}},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules.html":{}}}],["filesstorageproducer",{"_index":10106,"title":{"injectables/FilesStorageProducer.html":{}},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageProducer.html":{}}}],["filesstorageservice",{"_index":10170,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["filesstoragetestmodule",{"_index":10314,"title":{"modules/FilesStorageTestModule.html":{}},"body":{"modules/FilesStorageTestModule.html":{},"modules.html":{}}}],["filesstorageuc",{"_index":9942,"title":{},"body":{"controllers/FileSecurityController.html":{},"modules/FilesStorageApiModule.html":{}}}],["filestatuses",{"_index":6224,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["filestorageauthorizationcontext",{"_index":23067,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["filestorageconfig",{"_index":11409,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["filestoragemqproducer",{"_index":10105,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["filestorageservice",{"_index":16140,"title":{},"body":{"injectables/PreviewService.html":{}}}],["filesystem",{"_index":7654,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["filesystemadapter",{"_index":9955,"title":{"injectables/FileSystemAdapter.html":{}},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"interfaces/ICollectionFilePath.html":{}}}],["filesystemmodule",{"_index":10026,"title":{"modules/FileSystemModule.html":{}},"body":{"modules/FileSystemModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["filetype",{"_index":16496,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["filetyperesult",{"_index":16499,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["fileupload_enabled=false",{"_index":23010,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["fileurlparams",{"_index":6126,"title":{"classes/FileUrlParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["fileurlreplacement",{"_index":6200,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements",{"_index":6214,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["fileurlreplacements.foreach",{"_index":13775,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["fill",{"_index":22859,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["filled",{"_index":8683,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["filledpathparams",{"_index":261,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["filledpathparams.join",{"_index":271,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["filledtemplate",{"_index":8585,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["filter",{"_index":7668,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ErrorModule.html":{},"injectables/FilesRepo.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakSeedService.html":{},"classes/ListOauthClientsParams.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/Options.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["filter((data",{"_index":11174,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filter((element",{"_index":6313,"title":{},"body":{"classes/CopyMapper.html":{}}}],["filter((entity",{"_index":18655,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["filter((group",{"_index":17330,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter((key",{"_index":9185,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["filter((match",{"_index":12566,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["filter((rolename",{"_index":20561,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["filter((user",{"_index":17324,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["filter.ts",{"_index":14790,"title":{},"body":{"interfaces/NewsTargetFilter.html":{}}}],["filter/global",{"_index":8219,"title":{},"body":{"modules/ErrorModule.html":{}}}],["filterallowed",{"_index":4177,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterallowed(userid",{"_index":4188,"title":{},"body":{"injectables/CardUc.html":{}}}],["filterbypermission",{"_index":7917,"title":{},"body":{"classes/DtoCreator.html":{}}}],["filterbypermission(elements",{"_index":7935,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["filtered",{"_index":6260,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["filtered.every((status",{"_index":6264,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filtered.length",{"_index":6263,"title":{},"body":{"injectables/CopyHelperService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["filtered.some((status",{"_index":6266,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["filteredaccounts",{"_index":1245,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts.length",{"_index":1249,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredaccounts[0].id.tostring",{"_index":1256,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["filteredcollectionswithfilepaths",{"_index":11159,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredcollectionswithfilepaths.length",{"_index":11162,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["filteredpathobjects",{"_index":17185,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["filteredtoolreferences",{"_index":19905,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["filteredusers",{"_index":15986,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["filterforavailableexternaltools",{"_index":8354,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableexternaltools(externaltools",{"_index":8362,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools",{"_index":8355,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailableschoolexternaltools(schoolexternaltools",{"_index":8367,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools",{"_index":8356,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterforavailabletools(externaltools",{"_index":8371,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterimportuserparams",{"_index":10327,"title":{"classes/FilterImportUserParams.html":{}},"body":{"classes/FilterImportUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["filtermatchtype",{"_index":10340,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.auto",{"_index":12434,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.manual",{"_index":12436,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filtermatchtype.none",{"_index":12438,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["filternewsparams",{"_index":10354,"title":{"classes/FilterNewsParams.html":{}},"body":{"classes/FilterNewsParams.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["filterparametersforscope",{"_index":8357,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparametersforscope(externaltool",{"_index":8374,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["filterparams",{"_index":18541,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterparams.onlyoauth",{"_index":18560,"title":{},"body":{"controllers/SystemController.html":{}}}],["filterquery",{"_index":2432,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ContextExternalToolScope.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"injectables/SubmissionRepo.html":{},"classes/SystemScope.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["filterroletype",{"_index":10345,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/RoleNameMapper.html":{}}}],["filterroletype.admin",{"_index":16833,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.student",{"_index":16835,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filterroletype.teacher",{"_index":16834,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["filters",{"_index":6774,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/LessonRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/UserRepo.html":{}}}],["filters.availableon",{"_index":19046,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.classes",{"_index":12485,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.finished.value",{"_index":19039,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters.firstname",{"_index":12477,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.flagged",{"_index":12489,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.lastname",{"_index":12479,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.loginname",{"_index":12481,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.matches",{"_index":12487,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters.name.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":20718,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters.role",{"_index":12483,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["filters?.afterduedateornone",{"_index":19042,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.availableon",{"_index":19044,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.draft",{"_index":19050,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.finished",{"_index":19037,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.hidden",{"_index":13890,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["filters?.name",{"_index":20715,"title":{},"body":{"injectables/UserRepo.html":{}}}],["filters?.nofutureavailabledate",{"_index":19052,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["filters?.onlyactivecourses",{"_index":6802,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["filtersubmissionsbypermission",{"_index":18479,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtersubmissionsbypermission(submissions",{"_index":18483,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["filtertoolswithpermissions",{"_index":5933,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filtertoolswithpermissions(userid",{"_index":5943,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["filterundefined",{"_index":14272,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["filteruserparams",{"_index":10365,"title":{"classes/FilterUserParams.html":{}},"body":{"classes/FilterUserParams.html":{},"controllers/ImportUserController.html":{},"classes/UserMatchMapper.html":{}}}],["final",{"_index":10798,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["finally",{"_index":14500,"title":{},"body":{"classes/MigrationResponse.html":{},"license.html":{}}}],["find",{"_index":4630,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolRepo.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FileRecordRepo.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LessonCopyUC.html":{},"injectables/NewsRepo.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolMigrationService.html":{},"controllers/SystemController.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["find(@query",{"_index":18557,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(filterparams",{"_index":18534,"title":{},"body":{"controllers/SystemController.html":{}}}],["find(params",{"_index":9432,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["find(query",{"_index":5757,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["findaccountbydbcaccountid",{"_index":12205,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcaccountid(accountdbcaccountid",{"_index":12219,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid",{"_index":12206,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbydbcuserid(accountdbcuserid",{"_index":12223,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbyid",{"_index":485,"title":{},"body":{"controllers/AccountController.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountbyid(accountid",{"_index":12226,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["findaccountbyid(currentuser",{"_index":514,"title":{},"body":{"controllers/AccountController.html":{}}}],["findaccountbyid(id",{"_index":13084,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername",{"_index":12207,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findaccountsbyusername(username",{"_index":12228,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["findall",{"_index":14595,"title":{},"body":{"controllers/NewsController.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findall(currentuser",{"_index":14601,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TaskController.html":{}}}],["findall(userid",{"_index":19171,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallbyconfigtype",{"_index":8767,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbyconfigtype(type",{"_index":8774,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findallbycontext",{"_index":5904,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycontext(contextref",{"_index":5913,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findallbycourseids",{"_index":13877,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbycourseids(courseids",{"_index":13880,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["findallbyparentids",{"_index":18962,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbyparentids(parentids",{"_index":18968,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallbytask",{"_index":18452,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{}}}],["findallbytask(taskid",{"_index":18457,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findallbytask(userid",{"_index":18485,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["findallbytaskids",{"_index":18400,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbytaskids(taskids",{"_index":18404,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["findallbyuser",{"_index":6840,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuser(userid",{"_index":6842,"title":{},"body":{"injectables/CourseUc.html":{}}}],["findallbyuserid",{"_index":4425,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/SubmissionRepo.html":{}}}],["findallbyuserid(userid",{"_index":4428,"title":{},"body":{"injectables/ClassesRepo.html":{},"injectables/CourseRepo.html":{},"injectables/SubmissionRepo.html":{}}}],["findallfinished",{"_index":18785,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["findallfinished(currentuser",{"_index":18795,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallfinished(userid",{"_index":19173,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallfinishedbyparentids",{"_index":18963,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallfinishedbyparentids(parentids",{"_index":18973,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findallforstudent",{"_index":19163,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforstudent(user",{"_index":19175,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher",{"_index":6769,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/TaskUC.html":{}}}],["findallforteacher(user",{"_index":19177,"title":{},"body":{"injectables/TaskUC.html":{}}}],["findallforteacher(userid",{"_index":6777,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher",{"_index":6770,"title":{},"body":{"injectables/CourseRepo.html":{}}}],["findallforteacherorsubstituteteacher(userid",{"_index":6779,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findallforteam",{"_index":19291,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforteam(urlparams",{"_index":19292,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["findallforuser",{"_index":14792,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallforuser(userid",{"_index":14802,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findallimportusers",{"_index":12264,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallimportusers(currentuser",{"_index":12274,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallpublished",{"_index":14724,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallpublished(targets",{"_index":14727,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findalltasks",{"_index":18786,"title":{},"body":{"controllers/TaskController.html":{}}}],["findalltasks(currentuser",{"_index":18798,"title":{},"body":{"controllers/TaskController.html":{}}}],["findallunmatchedusers",{"_index":12265,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunmatchedusers(currentuser",{"_index":12277,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["findallunpublishedbyuser",{"_index":14725,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findallunpublishedbyuser(targets",{"_index":14730,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findandcount",{"_index":9837,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findandcount(scope",{"_index":9845,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findboard",{"_index":3760,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboard(userid",{"_index":3785,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboardcontext",{"_index":3761,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findboardcontext(userid",{"_index":3787,"title":{},"body":{"injectables/BoardUc.html":{}}}],["findbyclassandid",{"_index":3274,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclassandid(doclass",{"_index":3287,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findbyclientidandislocal",{"_index":14335,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(clientid",{"_index":14388,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["findbyclientidandislocal(oauthclientid",{"_index":14338,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbycourseid",{"_index":3626,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseid(courseid",{"_index":3631,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["findbycourseids",{"_index":6651,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbycourseids(courseids",{"_index":6652,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/LessonService.html":{}}}],["findbyemail",{"_index":20693,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyemail(email",{"_index":20695,"title":{},"body":{"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid",{"_index":13538,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalid(externalid",{"_index":13542,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["findbyexternalidorfail",{"_index":20082,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalidorfail(externalid",{"_index":20089,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["findbyexternalsource",{"_index":10675,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternalsource(externalid",{"_index":10678,"title":{},"body":{"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["findbyexternaltoolid",{"_index":17399,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyexternaltoolid(toolid",{"_index":17408,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["findbyfilter",{"_index":18670,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyfilter(type",{"_index":18672,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemUc.html":{}}}],["findbyid",{"_index":12,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/CourseService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceRepo.html":{}}}],["findbyid(boardid",{"_index":4739,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["findbyid(cardid",{"_index":4133,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyid(columnid",{"_index":4909,"title":{},"body":{"injectables/ColumnService.html":{}}}],["findbyid(courseid",{"_index":6832,"title":{},"body":{"injectables/CourseService.html":{}}}],["findbyid(elementid",{"_index":5536,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["findbyid(id",{"_index":40,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceRepo.html":{}}}],["findbyid(lessonid",{"_index":13949,"title":{},"body":{"injectables/LessonService.html":{}}}],["findbyid(submissionid",{"_index":18459,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["findbyid(taskid",{"_index":19141,"title":{},"body":{"injectables/TaskService.html":{}}}],["findbyids",{"_index":3275,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/CardService.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyids(cardids",{"_index":4135,"title":{},"body":{"injectables/CardService.html":{}}}],["findbyids(ids",{"_index":3292,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["findbyname",{"_index":8768,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbyname(name",{"_index":8776,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/RoleRepo.html":{}}}],["findbynames",{"_index":16841,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbynames(names",{"_index":16844,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{}}}],["findbyoauth2configclientid",{"_index":8769,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauth2configclientid(clientid",{"_index":8778,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["findbyoauthclientid",{"_index":14336,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyoauthclientid(oauthclientid",{"_index":14341,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["findbyowneruserid",{"_index":10043,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyowneruserid(owneruserid",{"_index":10047,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyparentid",{"_index":9838,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyparentid(parentid",{"_index":9848,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbypermissionrefid",{"_index":10044,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbypermissionrefid(permissionrefid",{"_index":10050,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findbyschoolid",{"_index":17400,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolid(schoolid",{"_index":17410,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["findbyschoolidandparentid",{"_index":9839,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentid(schoolid",{"_index":9850,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete",{"_index":9840,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolidandparentidandmarkedfordelete(schoolid",{"_index":9852,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbyschoolnumber",{"_index":13539,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyschoolnumber(officialschoolnumber",{"_index":13544,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["findbyscopeandscopeid",{"_index":21179,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbyscopeandscopeid(scopeid",{"_index":21180,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["findbysecuritycheckrequesttoken",{"_index":9841,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysecuritycheckrequesttoken(token",{"_index":9854,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findbysingleparent",{"_index":18964,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbysingleparent(creatorid",{"_index":18975,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskService.html":{}}}],["findbytype",{"_index":18703,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbytype(type",{"_index":18707,"title":{},"body":{"injectables/SystemService.html":{}}}],["findbyuserandtool",{"_index":16393,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findbyuserandtool(user",{"_index":14941,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/PseudonymService.html":{}}}],["findbyuserid",{"_index":13,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/LessonRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["findbyuserid(userid",{"_index":42,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/LessonRepo.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["findbyuseridandtoolid",{"_index":8728,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolid(userid",{"_index":8738,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail",{"_index":8729,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridandtoolidorfail(userid",{"_index":8740,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["findbyuseridorfail",{"_index":14,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyuseridorfail(userid",{"_index":44,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyusernameandsystemid",{"_index":15,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findbyusernameandsystemid(username",{"_index":46,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findcards",{"_index":4178,"title":{},"body":{"injectables/CardUc.html":{}}}],["findcards(userid",{"_index":4191,"title":{},"body":{"injectables/CardUc.html":{}}}],["findcontextexternaltools",{"_index":5905,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcontextexternaltools(query",{"_index":5915,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["findcurrentyear",{"_index":17709,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["finddescendants",{"_index":3587,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendants(node",{"_index":3591,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany",{"_index":3588,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddescendantsofmany(nodes",{"_index":3593,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["finddocumentsofcollection",{"_index":7727,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["finddocumentsofcollection(collectionname",{"_index":7739,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["findevent",{"_index":3961,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findevent(userid",{"_index":3964,"title":{},"body":{"injectables/CalendarService.html":{}}}],["findexistinggridelement",{"_index":7499,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistinggridelement(elementwithposition",{"_index":7512,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["findexistingtargets",{"_index":4831,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexistingtargets(columnboardids",{"_index":4835,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findexternaltool",{"_index":9190,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["findexternaltool(currentuser",{"_index":19658,"title":{},"body":{"controllers/ToolController.html":{}}}],["findexternaltool(userid",{"_index":9199,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["findexternaltoolbyid",{"_index":9073,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyid(id",{"_index":9091,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyname",{"_index":9074,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyname(name",{"_index":9093,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid",{"_index":9075,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolbyoauth2configclientid(clientid",{"_index":9095,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltoolpseudonymsbyuserid",{"_index":16394,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltoolpseudonymsbyuserid(userid",{"_index":16407,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findexternaltools",{"_index":9076,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findexternaltools(query",{"_index":9097,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["findfederalstatebyname",{"_index":9468,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findfederalstatebyname(name",{"_index":9471,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["findforcleanup",{"_index":10045,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforcleanup(thresholddate",{"_index":10053,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["findforuser",{"_index":6480,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findforuser(@currentuser",{"_index":7239,"title":{},"body":{"controllers/DashboardController.html":{}}}],["findforuser(currentuser",{"_index":6486,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DashboardController.html":{}}}],["findidsbyexternalreference",{"_index":3276,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findidsbyexternalreference(reference",{"_index":3294,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardService.html":{}}}],["findimportusers",{"_index":12456,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusers(school",{"_index":12462,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount",{"_index":12457,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["findimportusersandcount(query",{"_index":12464,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["finding",{"_index":3606,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{}}}],["findlegacyltitool",{"_index":14876,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findmany",{"_index":16,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findmany(offset",{"_index":54,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findmigrationbyschool",{"_index":20439,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyschool(schoolid",{"_index":20450,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser",{"_index":20440,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmigrationbyuser(userid",{"_index":20452,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["findmultiplebyuserid",{"_index":17,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findmultiplebyuserid(userids",{"_index":60,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["findnewsandcount",{"_index":14726,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnewsandcount(query",{"_index":14732,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["findnextcloudtool",{"_index":14877,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["findone",{"_index":6771,"title":{},"body":{"injectables/CourseRepo.html":{},"controllers/NewsController.html":{}}}],["findone(@param",{"_index":14630,"title":{},"body":{"controllers/NewsController.html":{}}}],["findone(courseid",{"_index":6782,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["findone(urlparams",{"_index":14604,"title":{},"body":{"controllers/NewsController.html":{}}}],["findonebyid",{"_index":9842,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyid(id",{"_index":9856,"title":{},"body":{"injectables/FileRecordRepo.html":{},"injectables/NewsRepo.html":{}}}],["findonebyidforuser",{"_index":14793,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidforuser(id",{"_index":14807,"title":{},"body":{"injectables/NewsUc.html":{}}}],["findonebyidmarkedfordelete",{"_index":9843,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebyidmarkedfordelete(id",{"_index":9858,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findonebytoken",{"_index":17989,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findonebytoken(token",{"_index":17990,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["findoneorfail",{"_index":9844,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfail(scope",{"_index":9860,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["findoneorfailhandler",{"_index":10273,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["findorcreatepseudonym",{"_index":16395,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatepseudonym(user",{"_index":16409,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findorcreatetargets",{"_index":4832,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findorcreatetargets(columnboardids",{"_index":4838,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["findparentofid",{"_index":3277,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findparentofid(childid",{"_index":3297,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["findpseudonymsbyuserid",{"_index":16396,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["findpseudonymsbyuserid(userid",{"_index":16411,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["finds",{"_index":890,"title":{},"body":{"injectables/AccountRepo.html":{},"controllers/SystemController.html":{},"injectables/TeamsRepo.html":{}}}],["findschoolexternaltools",{"_index":17475,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["findschoolexternaltools(query",{"_index":17487,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["findschoolexternaltools(userid",{"_index":17517,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["findstatusesbytask",{"_index":18253,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findstatusesbytask(currentuser",{"_index":18257,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["findsubmissionitems",{"_index":18356,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findsubmissionitems(userid",{"_index":18361,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["findtasksandcount",{"_index":18965,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findtasksandcount(query",{"_index":18977,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["findteambyid",{"_index":4619,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findteambyid(teamid",{"_index":4627,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["findtoolbyclientid",{"_index":15576,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["findtoolbyclientid(clientid",{"_index":15580,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["finduserafterprovisioningorthrow",{"_index":15036,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserafterprovisioningorthrow(externaluserid",{"_index":15053,"title":{},"body":{"injectables/OAuthService.html":{}}}],["finduserdatafromclasses",{"_index":4397,"title":{},"body":{"injectables/ClassService.html":{}}}],["finduserdatafromclasses(userid",{"_index":4402,"title":{},"body":{"injectables/ClassService.html":{}}}],["finduserdatafromteams",{"_index":19343,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserdatafromteams(userid",{"_index":19348,"title":{},"body":{"injectables/TeamService.html":{}}}],["finduserloginmigrationbyschool",{"_index":20255,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["finduserloginmigrationbyschool(user",{"_index":20267,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["finduserloginmigrationbyschool(userid",{"_index":20499,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["findusers",{"_index":20765,"title":{},"body":{"injectables/UserService.html":{}}}],["findusers(query",{"_index":20775,"title":{},"body":{"injectables/UserService.html":{}}}],["findvideoconferencebyscopeidandscope",{"_index":21229,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["findvideoconferencebyscopeidandscope(scopeid",{"_index":21249,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["findwithoutimportuser",{"_index":20694,"title":{},"body":{"injectables/UserRepo.html":{}}}],["findwithoutimportuser(school",{"_index":20699,"title":{},"body":{"injectables/UserRepo.html":{}}}],["fine",{"_index":22749,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["finish",{"_index":18787,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(@param",{"_index":18825,"title":{},"body":{"controllers/TaskController.html":{}}}],["finish(urlparams",{"_index":18800,"title":{},"body":{"controllers/TaskController.html":{}}}],["finishcoursecopying",{"_index":6520,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishcoursecopying(coursecopy",{"_index":6533,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finished",{"_index":7793,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{}}}],["finished(user",{"_index":18904,"title":{},"body":{"classes/TaskFactory.html":{}}}],["finishedat",{"_index":17640,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["finishedcoursecopy",{"_index":6552,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["finishedcourseids",{"_index":18990,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["finishedids",{"_index":12000,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids",{"_index":11998,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishedobjectids.map((id",{"_index":12001,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserid",{"_index":12012,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids",{"_index":12008,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finisheduserids.some((finisheduserid",{"_index":12011,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishforuser(user",{"_index":12061,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["finishing",{"_index":17638,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["first",{"_index":575,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"entities/ImportUser.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/NewsUc.html":{},"classes/PatchMyAccountParams.html":{},"classes/UserInfoResponse.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["firstbrokerloginflowalias",{"_index":15891,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["firstchar",{"_index":6465,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["firstclass",{"_index":12356,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["firstname",{"_index":851,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/ExternalUserDto.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonUser.html":{},"interfaces/INameMatch.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/PatchMyAccountParams.html":{},"classes/ResolvedUserResponse.html":{},"injectables/SanisResponseMapper.html":{},"classes/SortImportUserParams.html":{},"classes/SubmissionItemResponseMapper.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["firstname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":12546,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["firstnamesearchvalues",{"_index":11243,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["firstvaluefrom",{"_index":2334,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["firstvaluefrom(observable",{"_index":2348,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraAdapter.html":{}}}],["firstvaluefrom(respobservable",{"_index":11090,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["fishery",{"_index":735,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LtiToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/ShareTokenFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["fit",{"_index":5368,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["fitness",{"_index":22194,"title":{},"body":{"license.html":{}}}],["fix",{"_index":1941,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/TaskUC.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["fixable",{"_index":22416,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["fixed",{"_index":6760,"title":{},"body":{"entities/CourseNews.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["fixes",{"_index":22287,"title":{},"body":{"todo.html":{}}}],["fixing",{"_index":23137,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["fixme",{"_index":4996,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"modules/LearnroomApiModule.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["fixtures",{"_index":22843,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fixups",{"_index":22910,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["flag",{"_index":10363,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemFilterParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UserMigrationIsNotEnabled.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["flag.params.ts",{"_index":19963,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flag.params.ts:7",{"_index":19965,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["flagged",{"_index":10330,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/UpdateFlagParams.html":{}}}],["flags",{"_index":7667,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["flags.ts",{"_index":17595,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["flexible",{"_index":22492,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["flow",{"_index":10854,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["flow.id",{"_index":12921,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flow.service",{"_index":12156,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["flow.service.ts",{"_index":15575,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:11",{"_index":15579,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:18",{"_index":15581,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.service.ts:39",{"_index":15583,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["flow.uc",{"_index":15515,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["flow.uc.ts",{"_index":15448,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:106",{"_index":15602,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:15",{"_index":15451,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:19",{"_index":15596,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:21",{"_index":15453,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:26",{"_index":15455,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:28",{"_index":15599,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:33",{"_index":15601,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:48",{"_index":15598,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flow.uc.ts:50",{"_index":15456,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:58",{"_index":15452,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:6",{"_index":15627,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:80",{"_index":15458,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["flow.uc.ts:9",{"_index":15629,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["flow.uc.ts:94",{"_index":15604,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["flowalias",{"_index":12904,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["flows",{"_index":12917,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flows.find((tempflow",{"_index":12919,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["flush",{"_index":879,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["fn",{"_index":3489,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fn(i",{"_index":3525,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["fname",{"_index":1279,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["folder",{"_index":7679,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/Options.html":{},"injectables/S3ClientAdapter.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["folder_id",{"_index":10754,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["folderid",{"_index":14910,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foldername",{"_index":14921,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["folderpath",{"_index":9972,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["folders",{"_index":14924,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["folgendem",{"_index":4804,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["follow",{"_index":5395,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["following",{"_index":7840,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["follows",{"_index":22932,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["foo",{"_index":22435,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["foractivecourses",{"_index":6792,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forallgrouptypes",{"_index":6818,"title":{},"body":{"classes/CourseScope.html":{}}}],["forallgrouptypes(userid",{"_index":6787,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forbid",{"_index":21863,"title":{},"body":{"license.html":{}}}],["forbidden",{"_index":10380,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/ToolLaunchController.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["forbidden'})@apibadrequestresponse({description",{"_index":19724,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["forbidden_exception",{"_index":10373,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["forbidden_operation",{"_index":10379,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["forbiddenexception",{"_index":2037,"title":{},"body":{"injectables/AuthorizationService.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"classes/ErrorMapper.html":{},"classes/ForbiddenLoggableException.html":{},"controllers/H5PEditorController.html":{},"injectables/LessonCopyUC.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/RoomsUc.html":{},"controllers/ShareTokenController.html":{},"injectables/SubmissionItemUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["forbiddenexception(\"you",{"_index":15474,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["forbiddenexception('accessing",{"_index":20510,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["forbiddenexception('could",{"_index":13842,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["forbiddenexception('some",{"_index":22681,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["forbiddenexception('user",{"_index":18383,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["forbiddenexception('you",{"_index":17051,"title":{},"body":{"injectables/RoomsUc.html":{},"injectables/TaskCopyUC.html":{}}}],["forbiddenexception(`cannot",{"_index":2829,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["forbiddenexception(errorobj.message",{"_index":8209,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["forbiddenexception(errorstatus.guests_cannot_join_conference",{"_index":21091,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["forbiddenexception(errorstatus.insufficient_permission",{"_index":21001,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceService.html":{}}}],["forbiddenexception(errorstatus.school_feature_disabled",{"_index":21300,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["forbiddenexception(errorstatus.unknown_user",{"_index":21279,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["forbiddenexception})@apiresponse({status",{"_index":2931,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"controllers/ShareTokenController.html":{}}}],["forbiddenexception})@get",{"_index":4025,"title":{},"body":{"controllers/CardController.html":{}}}],["forbiddenexception})@get(':submissioncontainerid",{"_index":3691,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["forbiddenloggableexception",{"_index":2039,"title":{"classes/ForbiddenLoggableException.html":{}},"body":{"injectables/AuthorizationService.html":{},"classes/ForbiddenLoggableException.html":{}}}],["forbiddenloggableexception(user.id",{"_index":2042,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["forbiddenloggableexception(userid",{"_index":2047,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["forbiddenoperationerror",{"_index":507,"title":{"classes/ForbiddenOperationError.html":{}},"body":{"controllers/AccountController.html":{},"classes/ForbiddenOperationError.html":{},"controllers/LoginController.html":{}}}],["forbidnonwhitelisted",{"_index":10542,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["forbidunknownvalues",{"_index":10544,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["force",{"_index":74,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthenticationService.html":{},"injectables/KeycloakConfigurationService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["force.error",{"_index":1816,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["force.error.ts",{"_index":3837,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force.error.ts:5",{"_index":3839,"title":{},"body":{"classes/BruteForceError.html":{}}}],["force_subject_identifier",{"_index":358,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["forcepasswordchange",{"_index":12099,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["forcepathstyle",{"_index":7850,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["forceserverobjectid",{"_index":7754,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["forceupdate",{"_index":6147,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["forcourseid",{"_index":6819,"title":{},"body":{"classes/CourseScope.html":{}}}],["forcourseid(courseid",{"_index":6797,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["foreach((key",{"_index":9187,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["foreign",{"_index":13358,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["foreignfield",{"_index":20723,"title":{},"body":{"injectables/UserRepo.html":{}}}],["form",{"_index":10905,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"license.html":{}}}],["format",{"_index":565,"title":{},"body":{"controllers/AccountController.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/ConsentRequestBody.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"interfaces/CreateJwtParams.html":{},"classes/DownloadFileParams.html":{},"classes/ErrorResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseProperties.html":{},"classes/JwtTestFactory.html":{},"modules/LoggerModule.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/RichText.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["format.'})@apioperation({summary",{"_index":19602,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["format.'})@apiresponse({status",{"_index":505,"title":{},"body":{"controllers/AccountController.html":{},"controllers/LoginController.html":{}}}],["format.types",{"_index":11960,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/RichText.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["formatted",{"_index":776,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["formattedjwt",{"_index":1727,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["formatting",{"_index":22414,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["forms",{"_index":21908,"title":{},"body":{"license.html":{}}}],["forroot",{"_index":1408,"title":{},"body":{"modules/AntivirusModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/MailModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/RocketChatModule.html":{},"modules/ServerTestModule.html":{}}}],["forroot(options",{"_index":1409,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/RocketChatModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["forroutes",{"_index":17836,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["forteacher",{"_index":6820,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacher(userid",{"_index":6791,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher",{"_index":6821,"title":{},"body":{"classes/CourseScope.html":{}}}],["forteacherorsubstituteteacher(userid",{"_index":6790,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["forwarded",{"_index":10920,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["forwardref",{"_index":1977,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SubmissionItemUc.html":{},"modules/TaskModule.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{}}}],["found",{"_index":511,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AccountServiceDb.html":{},"classes/BruteForceError.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CommonToolValidationService.html":{},"injectables/DashboardUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraSsoService.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["found.error.ts",{"_index":8120,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.error.ts:4",{"_index":8122,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["found.exception",{"_index":8424,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["found.loggable",{"_index":14973,"title":{},"body":{"classes/NotFoundLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["found.loggable.ts",{"_index":17543,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:4",{"_index":17545,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["found.loggable.ts:7",{"_index":17546,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["foundaccount.systemid",{"_index":1247,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{}}}],["foundaccounts",{"_index":651,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/KeycloakMigrationService.html":{}}}],["foundation",{"_index":21668,"title":{},"body":{"license.html":{}}}],["foundentry",{"_index":5319,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.name",{"_index":5362,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry.value",{"_index":5359,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundentry?.value",{"_index":5356,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["foundproperty",{"_index":266,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["foundproperty.value",{"_index":269,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["foundschool",{"_index":17702,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundschool.id",{"_index":17704,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["foundtools",{"_index":14963,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools.length",{"_index":14965,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundtools[0",{"_index":14968,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["foundusers",{"_index":1235,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["foundusers.length",{"_index":1248,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["foundusers[0].id.tostring",{"_index":1254,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["frame",{"_index":10786,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["free",{"_index":1723,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["freedom",{"_index":21687,"title":{},"body":{"license.html":{}}}],["freejoin",{"_index":2277,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["freeport",{"_index":21409,"title":{},"body":{"dependencies.html":{}}}],["freuen",{"_index":4798,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["friendly",{"_index":7161,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["friendlyurl",{"_index":6988,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["from.'})@isurl({require_tld",{"_index":20950,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["from.options",{"_index":21216,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.permission",{"_index":21214,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["from.url",{"_index":21215,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["fromcookie",{"_index":12680,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromcookie(name",{"_index":12681,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["fromgroup",{"_index":10550,"title":{},"body":{"classes/GridElement.html":{}}}],["fromgroup(title",{"_index":7332,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedgroup",{"_index":10551,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedgroup(id",{"_index":7330,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["frompersistedreference",{"_index":10552,"title":{},"body":{"classes/GridElement.html":{}}}],["frompersistedreference(id",{"_index":7329,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["fromsinglereference",{"_index":10553,"title":{},"body":{"classes/GridElement.html":{}}}],["fromsinglereference(reference",{"_index":7331,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["front",{"_index":14140,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["frontchannel",{"_index":15245,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["frontchannel_logout_uri",{"_index":6990,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"injectables/ExternalToolServiceMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/OauthClientBody.html":{}}}],["frontchannellogouturi",{"_index":7137,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["fs",{"_index":10008,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.accountsfile",{"_index":13242,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.readfile(this.inputfiles.usersfile",{"_index":13244,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["fs.rm",{"_index":10021,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fsp",{"_index":10006,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["fulfil",{"_index":22869,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fulfill",{"_index":22503,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["fulfilling",{"_index":21849,"title":{},"body":{"license.html":{}}}],["fulfills",{"_index":22693,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["fulfils",{"_index":23149,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["full",{"_index":9980,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["full_path",{"_index":16656,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fullname",{"_index":2209,"title":{},"body":{"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["fullpath",{"_index":16629,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["fully",{"_index":20519,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["function",{"_index":687,"title":{},"body":{"classes/AccountFactory.html":{},"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"injectables/BoardManagementUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"modules/EncryptionModule.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"classes/ImportUserFactory.html":{},"classes/KeycloakConsole.html":{},"classes/LegacySchoolFactory.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["functional",{"_index":6328,"title":{},"body":{"modules/CoreModule.html":{},"additional-documentation/nestjs-application.html":{}}}],["functionalities",{"_index":22917,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["functionality",{"_index":19255,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["functioning",{"_index":21976,"title":{},"body":{"license.html":{}}}],["functions",{"_index":20456,"title":{"miscellaneous/functions.html":{}},"body":{"injectables/UserLoginMigrationService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["funktionen",{"_index":4769,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["further",{"_index":21933,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["fut",{"_index":22808,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["fut.somefunction",{"_index":22827,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["future",{"_index":2572,"title":{},"body":{"injectables/BaseRepo.html":{},"entities/CourseNews.html":{},"injectables/FileRecordRepo.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"entities/SchoolNews.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["fwu",{"_index":10388,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["fwu_content_s3_connection",{"_index":10440,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["fwulearningcontent",{"_index":10450,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["fwulearningcontentscontroller",{"_index":10383,"title":{"controllers/FwuLearningContentsController.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["fwulearningcontentsmodule",{"_index":10418,"title":{"modules/FwuLearningContentsModule.html":{}},"body":{"modules/FwuLearningContentsModule.html":{},"modules.html":{}}}],["fwulearningcontentstestmodule",{"_index":10428,"title":{"modules/FwuLearningContentsTestModule.html":{}},"body":{"modules/FwuLearningContentsTestModule.html":{},"modules.html":{}}}],["fwulearningcontentsuc",{"_index":10393,"title":{"injectables/FwuLearningContentsUc.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{}}}],["g",{"_index":6222,"title":{},"body":{"injectables/CopyFilesService.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application.html":{}}}],["gates",{"_index":22417,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["general",{"_index":11635,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["generall",{"_index":2492,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["generally",{"_index":21557,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["generate",{"_index":711,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"injectables/PreviewService.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["generatearray",{"_index":3476,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatearray(length",{"_index":3488,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["generatebrokersystems",{"_index":18704,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatebrokersystems(systems",{"_index":18709,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatechecksum",{"_index":2283,"title":{},"body":{"injectables/BBBService.html":{}}}],["generatechecksum(callname",{"_index":2304,"title":{},"body":{"injectables/BBBService.html":{}}}],["generateconfig",{"_index":11002,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generateconfig(oauthclientid",{"_index":11010,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["generated",{"_index":6145,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["generatedid",{"_index":2550,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedid.tohexstring",{"_index":2553,"title":{},"body":{"classes/BaseFactory.html":{}}}],["generatedsystem",{"_index":18737,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.id",{"_index":18739,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig",{"_index":18740,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.idphint",{"_index":18741,"title":{},"body":{"injectables/SystemService.html":{}}}],["generatedsystem.oauthconfig.redirecturi",{"_index":18743,"title":{},"body":{"injectables/SystemService.html":{}}}],["generateemptydashboard",{"_index":7596,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generateemptydashboard(userid",{"_index":7609,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["generatefederalstates",{"_index":21499,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generategroupfoldername",{"_index":14878,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupfoldername(teamid",{"_index":14889,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid",{"_index":14879,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generategroupid(dto",{"_index":14893,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generatejwt",{"_index":1783,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatejwt(user",{"_index":1793,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["generatelaunchrequest",{"_index":19800,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatelaunchrequest(toollaunchdata",{"_index":19805,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["generatepreview",{"_index":16132,"title":{},"body":{"injectables/PreviewService.html":{}}}],["generatepreview(params",{"_index":16146,"title":{},"body":{"injectables/PreviewService.html":{}}}],["generaterole",{"_index":21501,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generaterole(localroleseeddata",{"_index":21569,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generates",{"_index":14891,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["generateschools",{"_index":21503,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generateschools(entities",{"_index":21572,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generateschoolyears",{"_index":21505,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generateseeddata",{"_index":11112,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"miscellaneous/functions.html":{}}}],["generateseeddata((s",{"_index":11172,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["generateseeddata(injectenvvars",{"_index":21575,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generatesharetoken",{"_index":19500,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generatesystems",{"_index":21508,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generatesystems(injectenvvars",{"_index":21578,"title":{},"body":{"miscellaneous/functions.html":{}}}],["generating",{"_index":22425,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["generator",{"_index":717,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["generator.service",{"_index":18037,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["generator.service.ts",{"_index":19499,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generator.service.ts:7",{"_index":19501,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["generatorfn",{"_index":718,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["generell",{"_index":23133,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["generic",{"_index":21553,"title":{},"body":{"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["genericdata",{"_index":1290,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["geogebra",{"_index":11311,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["geschlecht",{"_index":17242,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["get('*/:fwulearningcontent",{"_index":10391,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get('/:contentid/edit",{"_index":10795,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contentid/play",{"_index":10792,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["get('/:contexttype/:contextid/references",{"_index":19704,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:contexttype/:contextid/references')@apioperation({summary",{"_index":19671,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:externaltoolid/logo",{"_index":19708,"title":{},"body":{"controllers/ToolController.html":{}}}],["get('/:externaltoolid/logo')@apioperation({summary",{"_index":19666,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':boardid",{"_index":2964,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':boardid/context",{"_index":2968,"title":{},"body":{"controllers/BoardController.html":{}}}],["get(':contextexternaltoolid",{"_index":19636,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contextexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apinotfoundresponse()@apiokresponse({description",{"_index":19609,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid",{"_index":19631,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid')@apiforbiddenresponse()@apiunauthorizedresponse()@apiokresponse({description",{"_index":19614,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["get(':contexttype/:contextid/available",{"_index":19536,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get(':courseid/export",{"_index":6484,"title":{},"body":{"controllers/CourseController.html":{}}}],["get(':externaltoolid",{"_index":19694,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':externaltoolid')@apioperation({summary",{"_index":19663,"title":{},"body":{"controllers/ToolController.html":{}}}],["get(':id",{"_index":567,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(':id')@apioperation({summary",{"_index":515,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(':newsid",{"_index":14605,"title":{},"body":{"controllers/NewsController.html":{}}}],["get(':roomid/board",{"_index":16980,"title":{},"body":{"controllers/RoomsController.html":{}}}],["get(':schoolexternaltoolid",{"_index":19938,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolexternaltoolid')@apiforbiddenresponse()@apiunauthorizedresponse()@apioperation({summary",{"_index":19923,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["get(':schoolid/migration",{"_index":13481,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':schoolid/migration')@authenticate('jwt')@apifoundresponse({description",{"_index":13452,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["get(':scope/:scopeid",{"_index":21047,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid')@apioperation({summary",{"_index":21024,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["get(':scope/:scopeid/end",{"_index":20938,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/end')@apioperation({summary",{"_index":20893,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info",{"_index":20935,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/info')@apioperation({summary",{"_index":20899,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join",{"_index":20932,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':scope/:scopeid/join')@apioperation({summary",{"_index":20903,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["get(':submissioncontainerid",{"_index":3702,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["get(':teamid/news",{"_index":19294,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["get(':token",{"_index":17921,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["get('auth/:oauthclientid",{"_index":15793,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/:oauthclientid')@authenticate('jwt",{"_index":15718,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('auth/sessions/consent",{"_index":15563,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('baseurl",{"_index":15495,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients",{"_index":15531,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('clients/:id",{"_index":15528,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('consentrequest/:challenge",{"_index":15556,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('context",{"_index":19545,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('context/:contextexternaltoolid/launch",{"_index":19730,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('context/:contextexternaltoolid/launch')@apioperation({summary",{"_index":19720,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["get('finished",{"_index":18796,"title":{},"body":{"controllers/TaskController.html":{}}}],["get('hydra/:oauthclientid",{"_index":15789,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('hydra/:oauthclientid')@authenticate('jwt",{"_index":15708,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('login/:systemid",{"_index":15704,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('loginrequest/:challenge",{"_index":15491,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["get('me",{"_index":20027,"title":{},"body":{"controllers/UserController.html":{}}}],["get('oauth",{"_index":15723,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration",{"_index":15799,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('oauth/migration')@authenticate('jwt')@apiokresponse({description",{"_index":15711,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["get('page",{"_index":20573,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["get('public",{"_index":18556,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public')@apioperation({summary",{"_index":18536,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid",{"_index":18562,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('public/:systemid')@apioperation({summary",{"_index":18543,"title":{},"body":{"controllers/SystemController.html":{}}}],["get('school",{"_index":19551,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('school/:schoolid/available",{"_index":19541,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["get('schools/:schoolid",{"_index":20319,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('schools/:schoolid')@apiforbiddenresponse()@apiokresponse({description",{"_index":20268,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get('status/task/:taskid",{"_index":18259,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["get('unassigned",{"_index":12278,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["get()@apiforbiddenresponse()@apioperation({summary",{"_index":20274,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["get()@apifoundresponse({description",{"_index":19659,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["get()@apioperation({summary",{"_index":531,"title":{},"body":{"controllers/AccountController.html":{}}}],["get(`${this.options.uri}${path",{"_index":1380,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["get(filesstorageinternalactions.downloadbysecuritytoken",{"_index":9944,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["get(flow",{"_index":10852,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["get(id",{"_index":9434,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["get(path",{"_index":1376,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/CalendarService.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{}}}],["get(req",{"_index":10389,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["get(subpath",{"_index":1734,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["get(url",{"_index":11012,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["get/post",{"_index":10806,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getadditionalerrorinfo",{"_index":12612,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadditionalerrorinfo(email",{"_index":12619,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["getadminidandtoken",{"_index":1390,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getadminuser",{"_index":12768,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getallaccounts",{"_index":12208,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getancestorids",{"_index":3278,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getancestorids(boarddo",{"_index":3300,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["getapiresponsetimemetriclabels",{"_index":16658,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getapiresponsetimemetriclabels(req",{"_index":16674,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["getasadmin(path",{"_index":1374,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getauthenticationurl",{"_index":15037,"title":{},"body":{"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{}}}],["getauthenticationurl(oauthconfig",{"_index":15055,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getauthenticationurl(session",{"_index":15701,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getavailabletoolsforcontext",{"_index":8404,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(currentuser",{"_index":19535,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforcontext(userid",{"_index":8415,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getavailabletoolsforschool",{"_index":8405,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(currentuser",{"_index":19540,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getavailabletoolsforschool(userid",{"_index":8417,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getbaseurl",{"_index":2326,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig",{"_index":2284,"title":{},"body":{"injectables/BBBService.html":{}}}],["getbbbrequestconfig(presentationurl",{"_index":2311,"title":{},"body":{"injectables/BBBService.html":{}}}],["getboard",{"_index":17033,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboard(roomid",{"_index":17037,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["getboardauthorizable",{"_index":3118,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardauthorizable(boarddo",{"_index":3124,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["getboardcontext",{"_index":2921,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardcontext(urlparams",{"_index":2939,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardobjecttitlesbyid",{"_index":4728,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardobjecttitlesbyid(boardids",{"_index":4742,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getboardskeleton",{"_index":2922,"title":{},"body":{"controllers/BoardController.html":{}}}],["getboardskeleton(urlparams",{"_index":2943,"title":{},"body":{"controllers/BoardController.html":{}}}],["getbydraftforcreatorquery",{"_index":19107,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftforcreatorquery(creatorid",{"_index":19125,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery",{"_index":19108,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbydraftquery(isdraft",{"_index":19127,"title":{},"body":{"classes/TaskScope.html":{}}}],["getbyid(externaltoolpseudonymentity.name",{"_index":8753,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["getbyid(pseudonymentity.name",{"_index":16448,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["getbytargetid(id",{"_index":2707,"title":{},"body":{"entities/Board.html":{}}}],["getcaption",{"_index":9521,"title":{},"body":{"classes/FileElement.html":{}}}],["getcards",{"_index":4006,"title":{},"body":{"controllers/CardController.html":{}}}],["getcards(currentuser",{"_index":4020,"title":{},"body":{"controllers/CardController.html":{}}}],["getchildren",{"_index":2819,"title":{},"body":{"classes/BoardComposite.html":{},"classes/BoardDoBuilderImpl.html":{}}}],["getchildren(boardnode",{"_index":3216,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["getclientid",{"_index":12769,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getclientsecret",{"_index":12770,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getcollectdefaultmetrics",{"_index":16225,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcollectionnames",{"_index":7728,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getcollectmetricsroutemetrics",{"_index":16227,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getcompleted",{"_index":18295,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["getconfigurationtemplateforcontext",{"_index":19533,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforcontext(currentuser",{"_index":19544,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool",{"_index":19534,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconfigurationtemplateforschool(currentuser",{"_index":19550,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["getconsentrequest",{"_index":10830,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(@param",{"_index":15557,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getconsentrequest(challenge",{"_index":10855,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getconsentrequest(params",{"_index":15487,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getcontent",{"_index":7311,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getcontentfile",{"_index":10801,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getcontext",{"_index":4695,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["getcontextexternaltool",{"_index":5934,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(currentuser",{"_index":19608,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltool(userid",{"_index":5946,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcontextexternaltoolbyid",{"_index":5906,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["getcontextexternaltoolbyid(contextexternaltoolid",{"_index":5917,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["getcontextexternaltoolsforcontext",{"_index":5935,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(currentuser",{"_index":19613,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["getcontextexternaltoolsforcontext(userid",{"_index":5949,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["getcopyname",{"_index":18867,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcopyname(originaltaskname",{"_index":18872,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getcoursegroupitems",{"_index":6457,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["getcoursegroupstudentids",{"_index":11809,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getcreatedat",{"_index":2821,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["getcurrentschoolyear",{"_index":17716,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["getdashboardbyid",{"_index":7583,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdashboardbyid(id",{"_index":7587,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["getdata",{"_index":12613,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(input",{"_index":12621,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getdata(systemid",{"_index":16325,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getdatabasecollection",{"_index":7729,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdatabasecollection(collectionname",{"_index":7742,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdb",{"_index":7746,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["getdefaultmaxduedate",{"_index":19164,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getdestinationcourse",{"_index":18868,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationcourse(courseid",{"_index":18876,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson",{"_index":18869,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdestinationlesson(lessonid",{"_index":18878,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["getdisplayname",{"_index":20766,"title":{},"body":{"injectables/UserService.html":{}}}],["getdisplayname(user",{"_index":20777,"title":{},"body":{"injectables/UserService.html":{}}}],["getduedate",{"_index":18230,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["geteditor",{"_index":10777,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getelement",{"_index":7256,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getelement(position",{"_index":7281,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getelements",{"_index":2710,"title":{},"body":{"entities/Board.html":{}}}],["getentityname",{"_index":915,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["getentitypermissions",{"_index":9381,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getentitypermissions(userid",{"_index":9389,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["geteol",{"_index":10004,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["getestet",{"_index":4775,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["getexternalid",{"_index":785,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalid(id",{"_index":792,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["getexternalsubclientmapperconfiguration",{"_index":12852,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getexternaltool",{"_index":9191,"title":{},"body":{"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["getexternaltool(currentuser",{"_index":19662,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltool(userid",{"_index":9201,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["getexternaltoolbinarylogo",{"_index":8554,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoolbinarylogo(toolid",{"_index":8566,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["getexternaltoollogo",{"_index":19645,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(@param",{"_index":19709,"title":{},"body":{"controllers/ToolController.html":{}}}],["getexternaltoollogo(params",{"_index":19665,"title":{},"body":{"controllers/ToolController.html":{}}}],["getfile",{"_index":6169,"title":{"interfaces/GetFile.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileResponseBuilder.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["getfileresponse",{"_index":9917,"title":{"interfaces/GetFileResponse.html":{}},"body":{"classes/FileResponseBuilder.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"classes/TestHelper.html":{}}}],["getfilesofparent",{"_index":10168,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(@rabbitpayload",{"_index":10196,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilesofparent(payload",{"_index":10180,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["getfilteredgroupusers",{"_index":15911,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfilteredgroupusers(externalgroup",{"_index":15916,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["getfinisheduserids",{"_index":11995,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getfirstopenindex",{"_index":7257,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getflowexecutionsrequest",{"_index":12923,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getflowsrequest",{"_index":12913,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getformat",{"_index":16133,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getformat(mimetype",{"_index":16148,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getfwulearningcontentparams",{"_index":10390,"title":{"classes/GetFwuLearningContentParams.html":{}},"body":{"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{}}}],["getgradedsubmissions",{"_index":12024,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getgradelevel",{"_index":4249,"title":{},"body":{"classes/Class.html":{}}}],["getgrid",{"_index":7258,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getgroupdata(groupname",{"_index":1356,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmembers(groupname",{"_index":1354,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getgroupmoderators(groupname",{"_index":1352,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getheight",{"_index":3991,"title":{},"body":{"classes/Card.html":{}}}],["gethello",{"_index":17742,"title":{},"body":{"classes/ServerConsole.html":{},"controllers/ServerController.html":{}}}],["gethosturl",{"_index":21266,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["gethydraoauthtoken",{"_index":15693,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["gethydraoauthtoken(query",{"_index":15706,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["getid",{"_index":7259,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DomainObject.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getidpmapperconfiguration",{"_index":12853,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getidpmapperconfiguration(idpalias",{"_index":12878,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["getinout",{"_index":17743,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinout(whatever",{"_index":17746,"title":{},"body":{"classes/ServerConsole.html":{}}}],["getinputformat",{"_index":16750,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getinstance",{"_index":9549,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["getinternalid",{"_index":786,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["getinternalid(id",{"_index":799,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountServiceDb.html":{}}}],["getinvitationlink",{"_index":4245,"title":{},"body":{"classes/Class.html":{}}}],["getisenabled",{"_index":16219,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getisvideoconferencefeatureenabled",{"_index":21268,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getitems",{"_index":20133,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["getjwtforuser",{"_index":15809,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtforuser(userid",{"_index":15813,"title":{},"body":{"injectables/OauthUc.html":{}}}],["getjwtfromresponse",{"_index":19411,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getjwtfromresponse(response",{"_index":1775,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getlaunchdata",{"_index":19801,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getlaunchdata(userid",{"_index":19807,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["getldapdn",{"_index":4251,"title":{},"body":{"classes/Class.html":{}}}],["getlessoncomponents",{"_index":11349,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getlessonlinkedtasks",{"_index":11350,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getlessonmaterials",{"_index":11351,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getlibrary",{"_index":10799,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getlogindata",{"_index":14151,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getlogindata(userinfo",{"_index":14154,"title":{},"body":{"injectables/LoginUc.html":{}}}],["getloginrequest",{"_index":10831,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(@param",{"_index":15545,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginrequest(challenge",{"_index":10857,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["getloginrequest(params",{"_index":15490,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["getloginurl",{"_index":20598,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getloginurl(system",{"_index":20606,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getlogmessage",{"_index":1547,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"classes/LoggingUtils.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["getmaxsubmissions",{"_index":12002,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getmeetinginfo",{"_index":2285,"title":{},"body":{"injectables/BBBService.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["getmeetinginfo(config",{"_index":2313,"title":{},"body":{"injectables/BBBService.html":{}}}],["getmeetinginfo(currentuserid",{"_index":21080,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getmetadata",{"_index":6469,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["getmetadatastorage",{"_index":8132,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getmigration",{"_index":13448,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolid",{"_index":13618,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["getmigration(schoolparams",{"_index":13450,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["getmigrationconsentpageredirect",{"_index":20599,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationconsentpageredirect(officialschoolnumber",{"_index":20608,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrationpagedetails",{"_index":20571,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(@query",{"_index":20578,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationpagedetails(pagetypequery",{"_index":20572,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["getmigrationredirecturi",{"_index":20600,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["getmigrations",{"_index":20256,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["getmigrations(user",{"_index":20272,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["getmigrations(userid",{"_index":20501,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["getname",{"_index":4237,"title":{},"body":{"classes/Class.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getnewspermissions",{"_index":14794,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnewspermissions(userid",{"_index":14809,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getnumberofdrafttasks",{"_index":11345,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getnumberofplannedtasks",{"_index":11347,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getnumberofpublishedtasks",{"_index":11341,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getoauth2client",{"_index":10832,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["getoauth2client(currentuser",{"_index":15427,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["getoauth2client(id",{"_index":10859,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["getoauthconfig",{"_index":12195,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["getoauthtoken",{"_index":10929,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getoauthtoken(oauthclientid",{"_index":10936,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["getobjectcommand",{"_index":17127,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["getobjectreference",{"_index":880,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getobjectreference(entityname",{"_index":897,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["getorconstructdashboardmodelentity",{"_index":7500,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorconstructdashboardmodelentity(entity",{"_index":7514,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["getorcreatecourseboard",{"_index":3627,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorcreatecourseboard(courseid",{"_index":3634,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["getorganization",{"_index":5208,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getpagecontent",{"_index":20495,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getpagecontent(pagetype",{"_index":20503,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["getparametervalue",{"_index":125,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparametervalue(customparameter",{"_index":179,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["getparent",{"_index":11336,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentdata",{"_index":12054,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getparentinfo",{"_index":9781,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpath",{"_index":19412,"title":{},"body":{"classes/TestApiClient.html":{}}}],["getpath(routenameinput",{"_index":1767,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["getpaths",{"_index":21510,"title":{},"body":{"miscellaneous/functions.html":{}}}],["getpaths(filerecords",{"_index":21539,"title":{},"body":{"miscellaneous/functions.html":{}}}],["getpermittedcourses",{"_index":19165,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedcourses(user",{"_index":19180,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedentities",{"_index":9382,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedentities(userid",{"_index":9391,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["getpermittedlessonids",{"_index":19222,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons",{"_index":19166,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedlessons(user",{"_index":19183,"title":{},"body":{"injectables/TaskUC.html":{}}}],["getpermittedschools",{"_index":9344,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedschools(userid",{"_index":9350,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getpermittedtargets",{"_index":9345,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getpermittedtargets(userid",{"_index":9352,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsUc.html":{}}}],["getplayer",{"_index":10778,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["getport",{"_index":16223,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["getpostloginredirecturl",{"_index":15038,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpostloginredirecturl(idtoken",{"_index":15057,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getpresentationurl",{"_index":2330,"title":{},"body":{"injectables/BBBService.html":{}}}],["getpreview",{"_index":16134,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreview(filerecord",{"_index":16150,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewfile",{"_index":16135,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewfile(params",{"_index":16152,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname",{"_index":16136,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewname(filerecord",{"_index":16154,"title":{},"body":{"injectables/PreviewService.html":{}}}],["getpreviewstatus",{"_index":9782,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getpropertyvalue",{"_index":8128,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getpropertyvalue(e",{"_index":8139,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["getprops",{"_index":1860,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/DomainObject.html":{},"classes/FileElement.html":{},"classes/Group.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["getprotectedroles",{"_index":16853,"title":{},"body":{"injectables/RoleService.html":{}}}],["getprovisioningstrategy",{"_index":16315,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getprovisioningstrategy(systemstrategy",{"_index":16327,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["getpseudonym",{"_index":16369,"title":{},"body":{"classes/Pseudonym.html":{}}}],["getpublickey",{"_index":6878,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OauthAdapterService.html":{}}}],["getpublickey(jwksuri",{"_index":15201,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["getquery",{"_index":17728,"title":{},"body":{"classes/Scope.html":{}}}],["getredirecturi",{"_index":15039,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getredirecturi(migration",{"_index":15060,"title":{},"body":{"injectables/OAuthService.html":{}}}],["getreferences",{"_index":7316,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getreferencesfromposition",{"_index":7260,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["getreferencesfromposition(position",{"_index":7289,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["getrepository",{"_index":16397,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrepository(tool",{"_index":16413,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["getrequiredpermissions",{"_index":14795,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequiredpermissions(unpublished",{"_index":14813,"title":{},"body":{"injectables/NewsUc.html":{}}}],["getrequireduserrole",{"_index":3095,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["getresolveduser",{"_index":20767,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolveduser(userid",{"_index":20779,"title":{},"body":{"injectables/UserService.html":{}}}],["getresolvedvalues",{"_index":3028,"title":{},"body":{"injectables/BoardCopyService.html":{},"miscellaneous/functions.html":{}}}],["getresolvedvalues(result",{"_index":21580,"title":{},"body":{"miscellaneous/functions.html":{}}}],["getresolvedvalues(results",{"_index":3064,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["getresources",{"_index":5210,"title":{},"body":{"classes/CommonCartridgeOrganizationBuilder.html":{}}}],["getresponse",{"_index":1475,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/LdapConnectionError.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{}}}],["getroomboard",{"_index":16970,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroomboard(urlparams",{"_index":16979,"title":{},"body":{"controllers/RoomsController.html":{}}}],["getroute",{"_index":16221,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["gets",{"_index":693,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"controllers/ToolController.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["getsalt",{"_index":2328,"title":{},"body":{"injectables/BBBService.html":{}}}],["getschemapath",{"_index":4040,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(basictoolconfigparams",{"_index":8469,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(fileelementcontentbody",{"_index":8041,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(fileelementresponse",{"_index":4074,"title":{},"body":{"controllers/CardController.html":{}}}],["getschemapath(lti11toolconfigcreateparams",{"_index":8470,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(lti11toolconfigupdateparams",{"_index":9228,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(oauth2toolconfigcreateparams",{"_index":8471,"title":{},"body":{"classes/ExternalToolCreateParams.html":{}}}],["getschemapath(oauth2toolconfigupdateparams",{"_index":9229,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["getschemapath(richtextelementcontentbody",{"_index":8042,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(richtextelementresponse",{"_index":4073,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{}}}],["getschemapath(submissioncontainerelementcontentbody",{"_index":8043,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["getschemapath(submissioncontainerelementresponse",{"_index":4075,"title":{},"body":{"controllers/CardController.html":{}}}],["getschool",{"_index":19368,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["getschoolbyexternalid",{"_index":13586,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyexternalid(externalid",{"_index":13593,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid",{"_index":13587,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyid(id",{"_index":13595,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber",{"_index":13588,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolbyschoolnumber(schoolnumber",{"_index":13597,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["getschoolexternaltool",{"_index":17508,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(currentuser",{"_index":19922,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltool(userid",{"_index":17520,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["getschoolexternaltoolbyid",{"_index":17476,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["getschoolexternaltoolbyid(schoolexternaltoolid",{"_index":17489,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["getschoolexternaltools",{"_index":19914,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolexternaltools(currentuser",{"_index":19925,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["getschoolid",{"_index":4239,"title":{},"body":{"classes/Class.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getscopeinfo",{"_index":21230,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getscopeinfo(userid",{"_index":21251,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getsecuritytoken",{"_index":9757,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["getseedfolder",{"_index":11127,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["getservice",{"_index":9450,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["getservice(path",{"_index":9441,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["getshorttitle",{"_index":6463,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["getsource",{"_index":4255,"title":{},"body":{"classes/Class.html":{}}}],["getsourceoptions",{"_index":4257,"title":{},"body":{"classes/Class.html":{}}}],["getstoretype",{"_index":3895,"title":{},"body":{"injectables/CacheService.html":{}}}],["getstudentids",{"_index":6444,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmissioncontainer",{"_index":18357,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["getsubmissioncontainer(submissioncontainerid",{"_index":18363,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["getsubmissionitems",{"_index":3685,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmissionitems(currentuser",{"_index":3687,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["getsubmittedsubmissions",{"_index":12018,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["getsubmitterids",{"_index":11829,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["getsubstitutionteacherids",{"_index":6448,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["getsuccessor",{"_index":4253,"title":{},"body":{"classes/Class.html":{}}}],["getsystem",{"_index":18533,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(@param",{"_index":18563,"title":{},"body":{"controllers/SystemController.html":{}}}],["getsystem(params",{"_index":18542,"title":{},"body":{"controllers/SystemController.html":{}}}],["gettargetfilters",{"_index":14796,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfilters(userid",{"_index":14816,"title":{},"body":{"injectables/NewsUc.html":{}}}],["gettargetfolder(toseedfolder",{"_index":11129,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["gettasksitems",{"_index":11337,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["getteacherids",{"_index":4243,"title":{},"body":{"classes/Class.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["getteammemberids",{"_index":11812,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["gettempfile",{"_index":10803,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["gettemplateforcontextexternaltool",{"_index":8406,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforcontextexternaltool(userid",{"_index":8419,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool",{"_index":8407,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["gettemplateforschoolexternaltool(userid",{"_index":8421,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["getter",{"_index":6413,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{}}}],["gettext",{"_index":16746,"title":{},"body":{"classes/RichTextElement.html":{}}}],["getting",{"_index":21597,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{}}],["gettitle",{"_index":3987,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{}}}],["gettitlesbyids",{"_index":3279,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettitlesbyids(id",{"_index":3302,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["gettoolid",{"_index":16371,"title":{},"body":{"classes/Pseudonym.html":{}}}],["gettoollaunchrequest",{"_index":19717,"title":{},"body":{"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["gettoollaunchrequest(currentuser",{"_index":19718,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["gettoollaunchrequest(userid",{"_index":19832,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["gettoolreferences",{"_index":19646,"title":{},"body":{"controllers/ToolController.html":{},"injectables/ToolReferenceUc.html":{}}}],["gettoolreferences(currentuser",{"_index":19670,"title":{},"body":{"controllers/ToolController.html":{}}}],["gettoolreferences(userid",{"_index":19898,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["gettspuid",{"_index":4415,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["gettype",{"_index":12614,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["getunitofwork",{"_index":8752,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["getupdatedat",{"_index":2823,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Class.html":{},"classes/Pseudonym.html":{}}}],["geturl",{"_index":1426,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/BBBService.html":{},"controllers/OauthProviderController.html":{}}}],["geturl(callname",{"_index":2315,"title":{},"body":{"injectables/BBBService.html":{}}}],["geturl(path",{"_index":1432,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["getuser",{"_index":9346,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/TeamUserEntity.html":{},"injectables/UserService.html":{}}}],["getuser(id",{"_index":20781,"title":{},"body":{"injectables/UserService.html":{}}}],["getuser(userid",{"_index":9354,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserattribute",{"_index":12209,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getuserattribute(userid",{"_index":12232,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["getuserid",{"_index":7261,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/Pseudonym.html":{},"classes/SubmissionItem.html":{}}}],["getuserids",{"_index":4241,"title":{},"body":{"classes/Class.html":{}}}],["getuserlist(querystring",{"_index":1332,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["getuserparams",{"_index":20006,"title":{},"body":{"classes/UserAndAccountTestFactory.html":{}}}],["getuserparams(params",{"_index":857,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["getuserroleandgueststatusbyuseridforbbb",{"_index":21231,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getuserroleandgueststatusbyuseridforbbb(userid",{"_index":21253,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["getusers",{"_index":3093,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["getuserschoolpermissions",{"_index":9347,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserschoolpermissions(userid",{"_index":9356,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getusersdashboard",{"_index":7584,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusersdashboard(userid",{"_index":7589,"title":{},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["getusertargetpermissions",{"_index":9348,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["getusertargetpermissions(userid",{"_index":9358,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["getuserwithpermissions",{"_index":2016,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/ReferenceLoader.html":{}}}],["getuserwithpermissions(userid",{"_index":2029,"title":{},"body":{"injectables/AuthorizationService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["getversion",{"_index":5604,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/ToolVersion.html":{}}}],["getvideoconferenceoptions",{"_index":21078,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getvideoconferenceoptions(scope",{"_index":21082,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["getwellknownurl",{"_index":12771,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["getyear",{"_index":4247,"title":{},"body":{"classes/Class.html":{}}}],["ghcr.io/hpi",{"_index":22353,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ghcr.io/soluto/oidc",{"_index":22940,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["gi",{"_index":14552,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["gid",{"_index":10672,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["git",{"_index":21604,"title":{"additional-documentation/nestjs-application/git.html":{}},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["git://github.com/hpi",{"_index":21417,"title":{},"body":{"dependencies.html":{}}}],["git://github.com/leeroybrun/mongoose",{"_index":21433,"title":{},"body":{"dependencies.html":{}}}],["github",{"_index":21600,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["give",{"_index":21880,"title":{},"body":{"license.html":{}}}],["given",{"_index":494,"title":{},"body":{"controllers/AccountController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CommonToolValidationService.html":{},"injectables/FileSystemAdapter.html":{},"classes/FilterUserParams.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementOauthService.html":{},"controllers/LegacySchoolController.html":{},"controllers/NewsController.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/TeamNewsController.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["givenname",{"_index":11911,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["gives",{"_index":9418,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["giving",{"_index":21886,"title":{},"body":{"license.html":{}}}],["global",{"_index":6334,"title":{},"body":{"modules/CoreModule.html":{},"modules/ErrorModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/GlobalValidationPipe.html":{},"modules/InterceptorModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["globalconstants",{"_index":10457,"title":{"interfaces/GlobalConstants.html":{}},"body":{"interfaces/GlobalConstants.html":{}}}],["globalerrorfilter",{"_index":8218,"title":{"classes/GlobalErrorFilter.html":{}},"body":{"modules/ErrorModule.html":{},"classes/GlobalErrorFilter.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["globally",{"_index":12571,"title":{},"body":{"modules/InterceptorModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["globalparameter",{"_index":7156,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["globals",{"_index":10459,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["globalsetup",{"_index":22591,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalteardown",{"_index":22592,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["globalvalidationpipe",{"_index":10527,"title":{"classes/GlobalValidationPipe.html":{}},"body":{"classes/GlobalValidationPipe.html":{},"modules/ValidationModule.html":{}}}],["gm",{"_index":16161,"title":{},"body":{"injectables/PreviewService.html":{},"dependencies.html":{}}}],["gnu",{"_index":21661,"title":{},"body":{"license.html":{}}}],["go",{"_index":20947,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["goal",{"_index":22310,"title":{},"body":{"todo.html":{}}}],["goals",{"_index":21731,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["golevelup",{"_index":22805,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["golevelup/nestjs",{"_index":1437,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"dependencies.html":{}}}],["golevelup/ts",{"_index":19437,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["gonna",{"_index":22488,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["good",{"_index":13359,"title":{},"body":{"injectables/LdapStrategy.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["governed",{"_index":22004,"title":{},"body":{"license.html":{}}}],["gpl",{"_index":21732,"title":{},"body":{"license.html":{}}}],["grace",{"_index":17636,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["graceperiodduration",{"_index":20475,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["grade",{"_index":11548,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"entities/Submission.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["gradecomment",{"_index":11790,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["graded",{"_index":3737,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["gradedsubmissions",{"_index":12025,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["gradelevel",{"_index":4231,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["grant",{"_index":1594,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"classes/TokenRequestMapper.html":{},"license.html":{}}}],["grant_access_token_audience",{"_index":341,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["grant_scope",{"_index":342,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["grant_type",{"_index":1598,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/TokenRequestMapper.html":{}}}],["grant_types",{"_index":15239,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["granted",{"_index":21819,"title":{},"body":{"license.html":{}}}],["grants",{"_index":22067,"title":{},"body":{"license.html":{}}}],["granttype",{"_index":11075,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ISystemProperties.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["graph",{"_index":22253,"title":{},"body":{"modules.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["gratis",{"_index":21932,"title":{},"body":{"license.html":{}}}],["greatest",{"_index":22228,"title":{},"body":{"license.html":{}}}],["grep",{"_index":22987,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["grid",{"_index":6701,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IGridElement.html":{},"classes/PatchGroupParams.html":{}}}],["gridarray",{"_index":7597,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["gridelement",{"_index":7321,"title":{"classes/GridElement.html":{}},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.frompersistedgroup(modelentity.id",{"_index":7540,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.fromsinglereference(referenceforindex",{"_index":7398,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.fromsinglereference(room",{"_index":7389,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelement.getcontent().title",{"_index":7564,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.getid",{"_index":7557,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.hasid",{"_index":7555,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.isgroup",{"_index":7562,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["gridelement.setgroupname(params",{"_index":7640,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["gridelementcontent",{"_index":7312,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridelements",{"_index":7428,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["gridelementwithposition",{"_index":7287,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/GridElement.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IGridElement.html":{}}}],["gridindexfromposition",{"_index":7262,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["gridindexfromposition(pos",{"_index":7293,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridposition",{"_index":7282,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["gridpositionwithgroupindex",{"_index":7290,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["group",{"_index":1277,"title":{"classes/Group.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BoardNodeRepo.html":{},"entities/CourseGroup.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/PatchGroupParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserRepo.html":{}}}],["group(props",{"_index":10685,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group(savedprops",{"_index":10694,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["group.dto",{"_index":15355,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["group.dto.ts",{"_index":8268,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:11",{"_index":8273,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:13",{"_index":8277,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:15",{"_index":8276,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:17",{"_index":8271,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:5",{"_index":8272,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:7",{"_index":8274,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.dto.ts:9",{"_index":8279,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["group.getprops",{"_index":10617,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["group.gruppe.bezeichnung",{"_index":17325,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.id",{"_index":17329,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.bis",{"_index":17328,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.laufzeit?.von",{"_index":17327,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppe.orgid",{"_index":17326,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.gruppenzugehoerigkeit.rollen",{"_index":17318,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["group.module",{"_index":10587,"title":{},"body":{"modules/GroupApiModule.html":{}}}],["group.name",{"_index":1360,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["group.params.ts",{"_index":16073,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.params.ts:14",{"_index":16075,"title":{},"body":{"classes/PatchGroupParams.html":{}}}],["group.rule",{"_index":13918,"title":{},"body":{"injectables/LessonRule.html":{}}}],["group.rule.ts",{"_index":6662,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:11",{"_index":6665,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:17",{"_index":6664,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.rule.ts:8",{"_index":6663,"title":{},"body":{"injectables/CourseGroupRule.html":{}}}],["group.sonstige_gruppenzugehoerige",{"_index":17315,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["groupapimodule",{"_index":10582,"title":{"modules/GroupApiModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["groupdata",{"_index":7343,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupdomainmapper",{"_index":10588,"title":{"classes/GroupDomainMapper.html":{}},"body":{"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapdomainobjecttoentityproperties(domainobject",{"_index":10686,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(entity",{"_index":10684,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapentitytodomainobjectproperties(savedentity",{"_index":10693,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupdomainmapper.mapgroupusertogroupuserentity(groupuser",{"_index":10625,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupelements",{"_index":7438,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["groupentity",{"_index":10600,"title":{"entities/GroupEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentity(entityprops",{"_index":10687,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["groupentityprops",{"_index":10598,"title":{"interfaces/GroupEntityProps.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{}}}],["groupentitytypes",{"_index":10611,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["groupentitytypes.class",{"_index":10614,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupentitytypestogrouptypesmapping",{"_index":10613,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupentitytypestogrouptypesmapping[entity.type",{"_index":10635,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupfolder",{"_index":14884,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupfolders",{"_index":10751,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["groupfolderscreated",{"_index":10755,"title":{"interfaces/GroupfoldersCreated.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["groupfoldersfolder",{"_index":10753,"title":{"interfaces/GroupfoldersFolder.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["groupid",{"_index":7320,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"injectables/NextcloudStrategy.html":{}}}],["groupindex",{"_index":7345,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["groupinfo",{"_index":1341,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupinfo.group._id",{"_index":1345,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["grouping",{"_index":3614,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["groupmetadata",{"_index":7340,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["groupmodule",{"_index":10585,"title":{"modules/GroupModule.html":{}},"body":{"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/ProvisioningModule.html":{},"modules.html":{}}}],["groupname",{"_index":1337,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["groupnameidtuple",{"_index":10670,"title":{"interfaces/GroupNameIdTuple.html":{}},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["groupprops",{"_index":10578,"title":{"interfaces/GroupProps.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{}}}],["grouprepo",{"_index":10668,"title":{"injectables/GroupRepo.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{}}}],["grouprolemapping",{"_index":17296,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouprolemapping[relation.rollen[0",{"_index":17331,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable",{"_index":10696,"title":{"classes/GroupRoleUnknownLoggable.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouproleunknownloggable(relation",{"_index":17332,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["groups",{"_index":6461,"title":{},"body":{"entities/Course.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SuccessfulRes.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["groupservice",{"_index":10667,"title":{"injectables/GroupService.html":{}},"body":{"modules/GroupModule.html":{},"injectables/GroupService.html":{},"injectables/OidcProvisioningService.html":{}}}],["grouptype",{"_index":17312,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping",{"_index":17299,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypemapping[group.gruppe.typ",{"_index":17313,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["grouptypes",{"_index":8275,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypes.class",{"_index":10615,"title":{},"body":{"classes/GroupDomainMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["grouptypestogroupentitytypesmapping",{"_index":10616,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["grouptypestogroupentitytypesmapping[props.type",{"_index":10621,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuser",{"_index":10577,"title":{"classes/GroupUser.html":{}},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["groupuser.roleid",{"_index":10645,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuser.userid",{"_index":10643,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["groupuserentity",{"_index":10607,"title":{"classes/GroupUserEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserentityprops",{"_index":10737,"title":{"interfaces/GroupUserEntityProps.html":{}},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{}}}],["groupuserids",{"_index":14933,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.filter((userid",{"_index":14946,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupuserids.includes(userid",{"_index":14952,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["groupusers",{"_index":10742,"title":{"interfaces/GroupUsers.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["groupvalidperiodentity",{"_index":10612,"title":{"classes/GroupValidPeriodEntity.html":{}},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["groupvalidperiodentityprops",{"_index":10757,"title":{"interfaces/GroupValidPeriodEntityProps.html":{}},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["gruppe",{"_index":17216,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["gruppen",{"_index":17224,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["gruppenzugehoerige",{"_index":17229,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["gruppenzugehoerigkeit",{"_index":17225,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["gruppenzugehoerigkeiten",{"_index":17321,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["gt",{"_index":3599,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/NewsScope.html":{}}}],["gte",{"_index":6796,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["guarantee",{"_index":782,"title":{},"body":{"injectables/AccountLookupService.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guard",{"_index":22607,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["guardagainst",{"_index":10760,"title":{"classes/GuardAgainst.html":{}},"body":{"classes/GuardAgainst.html":{},"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined",{"_index":14014,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(account.password",{"_index":14011,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(jwt",{"_index":14009,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(password",{"_index":14019,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guardagainst.nullorundefined(username",{"_index":14018,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["guards",{"_index":10767,"title":{},"body":{"classes/GuardAgainst.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["guest",{"_index":2210,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["guest:guest",{"_index":22339,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["guestpolicy",{"_index":2112,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["guests",{"_index":21115,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["guide",{"_index":22873,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["h5p",{"_index":10776,"title":{},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["h5peditorcontroller",{"_index":10772,"title":{"controllers/H5PEditorController.html":{}},"body":{"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{}}}],["h5peditormodule",{"_index":10807,"title":{"modules/H5PEditorModule.html":{}},"body":{"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["h5peditortestmodule",{"_index":10816,"title":{"modules/H5PEditorTestModule.html":{}},"body":{"modules/H5PEditorTestModule.html":{},"modules.html":{}}}],["halper",{"_index":19971,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["handed",{"_index":22697,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["handle",{"_index":3061,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handlebars",{"_index":21555,"title":{},"body":{"miscellaneous/functions.html":{}}}],["handlecolumnboardintegration",{"_index":17010,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handlecolumnboardintegration(roomid",{"_index":17014,"title":{},"body":{"injectables/RoomsService.html":{}}}],["handled",{"_index":3871,"title":{},"body":{"classes/BusinessError.html":{},"injectables/ContextExternalToolValidationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handled_at",{"_index":343,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["handleexceptions",{"_index":14054,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handleparameterstoinclude",{"_index":126,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handleparameterstoinclude(propertydata",{"_index":183,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["handler",{"_index":22299,"title":{},"body":{"todo.html":{}}}],["handlerejections",{"_index":14055,"title":{},"body":{"modules/LoggerModule.html":{}}}],["handles",{"_index":22858,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["handling",{"_index":6331,"title":{"additional-documentation/nestjs-application/exception-handling.html":{}},"body":{"modules/CoreModule.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["happen",{"_index":15097,"title":{},"body":{"injectables/OAuthService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["happened",{"_index":22627,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["hard",{"_index":11281,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasaccesstoentity",{"_index":1892,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstoentity(user",{"_index":1897,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasaccesstosubmission",{"_index":18422,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasaccesstosubmission(user",{"_index":18428,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasallpermissions",{"_index":1893,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/CourseGroupRule.html":{}}}],["hasallpermissions(user",{"_index":1901,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasallpermissionsbyrole",{"_index":1894,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasallpermissionsbyrole(role",{"_index":1903,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["hasbeenforciblyended",{"_index":2201,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasbodyproperty",{"_index":2666,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["haschangedparameternames",{"_index":9266,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameternames(oldparams",{"_index":9277,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex",{"_index":9267,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterregex(newparams",{"_index":9279,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope",{"_index":9268,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparameterscope(newparams",{"_index":9282,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes",{"_index":9269,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedparametertypes(newparams",{"_index":9284,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters",{"_index":9270,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschangedrequiredparameters(newparams",{"_index":9286,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["haschild",{"_index":2796,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["haschild(child",{"_index":2812,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["hascontextexternaltool",{"_index":8386,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["hascoursepermission",{"_index":16961,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{}}}],["hascoursereadpermission",{"_index":16943,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursereadpermission(user",{"_index":16947,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission",{"_index":16944,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hascoursewritepermission(user",{"_index":16949,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasduplicateattributes",{"_index":8638,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["hasduplicateattributes(customparameter",{"_index":8649,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["hasduplicatename",{"_index":21512,"title":{},"body":{"miscellaneous/functions.html":{}}}],["hasduplicatename(filerecords",{"_index":21547,"title":{},"body":{"miscellaneous/functions.html":{}}}],["haserror",{"_index":9773,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasexpertrole",{"_index":21232,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["hasexpertrole(userid",{"_index":21255,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["hasfeature",{"_index":13589,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hasfeature(schoolid",{"_index":13600,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["hash",{"_index":10447,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"miscellaneous/functions.html":{}}}],["hash_function",{"_index":14173,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashiterations",{"_index":13193,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["hashiterations(310000",{"_index":12812,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["hashkey",{"_index":14175,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hashkey).tostring(cryptojs.enc.base64",{"_index":14177,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["hasid",{"_index":7310,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["hasjoinedvoice",{"_index":2274,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haslessonpermission",{"_index":13919,"title":{},"body":{"injectables/LessonRule.html":{},"injectables/TaskRule.html":{}}}],["haslessonreadpermission",{"_index":16945,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["haslessonreadpermission(user",{"_index":16951,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasmatch",{"_index":12458,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmatch(user",{"_index":12466,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["hasmigrated",{"_index":14472,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["hasname",{"_index":9769,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasname(name",{"_index":9768,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasnewrequiredparameter",{"_index":9271,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewrequiredparameter(oldparams",{"_index":9288,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["hasnewspermission",{"_index":23103,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasoneofpermissions",{"_index":1895,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasoneofpermissions(user",{"_index":1905,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{}}}],["hasparent",{"_index":3581,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["hasparentpermission",{"_index":19085,"title":{},"body":{"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hasparentpermission(user",{"_index":19087,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasparentreadpermission",{"_index":13925,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasparenttaskreadaccess",{"_index":18423,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskreadaccess(user",{"_index":18430,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess",{"_index":18424,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparenttaskwriteaccess(user",{"_index":18432,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasparentwritepermission",{"_index":13927,"title":{},"body":{"injectables/LessonRule.html":{}}}],["haspath",{"_index":16631,"title":{},"body":{"classes/RequestInfo.html":{}}}],["haspath(reqroute",{"_index":16638,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["haspermission",{"_index":1928,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/RoomsAuthorisationService.html":{},"interfaces/Rule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["haspermission(user",{"_index":2033,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"interfaces/Rule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["haspermissionbyreferences",{"_index":2017,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["haspermissionbyreferences(userid",{"_index":2035,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["haspermissions",{"_index":9404,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"injectables/PermissionService.html":{},"injectables/VideoConferenceService.html":{}}}],["haspermissions(userid",{"_index":21258,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["hasreadaccess",{"_index":18425,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasreadaccess(user",{"_index":18435,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["hasrequiredpermission",{"_index":19092,"title":{},"body":{"injectables/TaskRule.html":{}}}],["hasscanstatuserror",{"_index":9772,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasscanstatuswontcheck",{"_index":9775,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["hasschoolmigrated",{"_index":17601,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrated(sourceexternalid",{"_index":17614,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser",{"_index":4470,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/SchoolMigrationService.html":{}}}],["hasschoolmigrateduser(schoolid",{"_index":17618,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["hastaskreadpermission",{"_index":16946,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hastaskreadpermission(user",{"_index":16953,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["hasuserallschoolpermissions",{"_index":16103,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserallschoolpermissions(user",{"_index":16105,"title":{},"body":{"injectables/PermissionService.html":{}}}],["hasuserjoined",{"_index":2202,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["hasusermigrated",{"_index":20490,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["hasuserpermission",{"_index":13922,"title":{},"body":{"injectables/LessonRule.html":{}}}],["hasvideo",{"_index":2275,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["haswontcheckstatus",{"_index":9776,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["haswriteaccess",{"_index":18426,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["haswriteaccess(user",{"_index":18437,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["having",{"_index":3566,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"controllers/ElementController.html":{},"injectables/LdapStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["header",{"_index":1693,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"controllers/OauthSSOController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["headerconst",{"_index":1707,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headerconst.json",{"_index":1752,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["headercookies",{"_index":11050,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["headers",{"_index":1381,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["heartened",{"_index":21718,"title":{},"body":{"license.html":{}}}],["height",{"_index":3236,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/ColumnBoardService.html":{},"classes/ColumnResponseMapper.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SetHeightBodyParams.html":{}}}],["height(height",{"_index":3999,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["height.body.params",{"_index":4044,"title":{},"body":{"controllers/CardController.html":{}}}],["height.body.params.ts",{"_index":17852,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height.body.params.ts:10",{"_index":17854,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["height=100",{"_index":5261,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hell",{"_index":6416,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["help",{"_index":5401,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["helper",{"_index":3027,"title":{},"body":{"injectables/BoardCopyService.html":{},"modules/CommonToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/FilesStorageClientModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/PreviewService.html":{},"controllers/RoomsController.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionRepo.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["helper.module",{"_index":18780,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["helper.module.ts",{"_index":6239,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service",{"_index":6241,"title":{},"body":{"modules/CopyHelperModule.html":{}}}],["helper.service.ts",{"_index":6243,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:10",{"_index":6253,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:28",{"_index":6251,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.service.ts:45",{"_index":6248,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper.ts",{"_index":19454,"title":{},"body":{"classes/TestHelper.html":{},"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:10",{"_index":19843,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:17",{"_index":19844,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:21",{"_index":19458,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper.ts:39",{"_index":19845,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["helper.ts:6",{"_index":19457,"title":{},"body":{"classes/TestHelper.html":{}}}],["helper/copy",{"_index":6238,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/TaskApiModule.html":{}}}],["helper/dto/copy.response.ts",{"_index":6044,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:17",{"_index":6056,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:22",{"_index":6060,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:29",{"_index":6061,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:34",{"_index":6051,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:41",{"_index":6059,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:47",{"_index":6055,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/dto/copy.response.ts:7",{"_index":6049,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helper/mapper/copy.mapper.ts",{"_index":6283,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:10",{"_index":6295,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:30",{"_index":6288,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/mapper/copy.mapper.ts:39",{"_index":6292,"title":{},"body":{"classes/CopyMapper.html":{}}}],["helper/service/copy",{"_index":6242,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["helper/types/copy.types",{"_index":6062,"title":{},"body":{"classes/CopyApiResponse.html":{}}}],["helpers",{"_index":22590,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["helpful",{"_index":22773,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helplink",{"_index":4779,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["helps",{"_index":22758,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["helpto",{"_index":22398,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["hendt/xml2json",{"_index":6030,"title":{},"body":{"injectables/ConverterUtil.html":{},"dependencies.html":{}}}],["here",{"_index":2510,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"modules/InterceptorModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/NextcloudStrategy.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hereafter",{"_index":22109,"title":{},"body":{"license.html":{}}}],["hex",{"_index":780,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["hh:mm:ss.sss",{"_index":14061,"title":{},"body":{"modules/LoggerModule.html":{}}}],["hidden",{"_index":3419,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/DtoCreator.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["hier",{"_index":4774,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hierarchy",{"_index":5223,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["high",{"_index":22549,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["higher",{"_index":22476,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["highly",{"_index":23041,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["hilfebereich",{"_index":4791,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["hint",{"_index":5412,"title":{},"body":{"classes/ConsentRequestBody.html":{},"injectables/CopyFilesService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthConfigResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["history",{"_index":22269,"title":{},"body":{"todo.html":{}}}],["historywindows",{"_index":22912,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["hmac",{"_index":14172,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["holder",{"_index":22047,"title":{},"body":{"license.html":{}}}],["holders",{"_index":22010,"title":{},"body":{"license.html":{}}}],["holds",{"_index":23122,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["homepage",{"_index":22257,"title":{},"body":{"properties.html":{}}}],["homework",{"_index":22567,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["homeworkid",{"_index":11793,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["homeworkid'})@index",{"_index":18224,"title":{},"body":{"entities/Submission.html":{}}}],["homeworks",{"_index":11969,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["hook",{"_index":1123,"title":{},"body":{"injectables/AccountService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hookfn",{"_index":683,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["hooks",{"_index":21404,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["hope",{"_index":6417,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"license.html":{}}}],["horizontal",{"_index":22546,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["host",{"_index":10474,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"injectables/IdTokenService.html":{},"classes/VideoConferenceConfiguration.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["host.gettype",{"_index":10495,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host.switchtohttp",{"_index":10505,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["host=http://localhost:4000",{"_index":22929,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["hosts",{"_index":21939,"title":{},"body":{"license.html":{}}}],["hosturl",{"_index":12121,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceService.html":{}}}],["hot",{"_index":22303,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["household",{"_index":21957,"title":{},"body":{"license.html":{}}}],["hpi",{"_index":2172,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/CourseCopyUC.html":{},"classes/DtoCreator.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/IToolFeatures.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/TaskCopyUC.html":{},"classes/ToolConfiguration.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["href",{"_index":5003,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["hs256",{"_index":1668,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs384",{"_index":1669,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["hs512",{"_index":1670,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["html",{"_index":5011,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{},"entities/CourseNews.html":{},"controllers/H5PEditorController.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"dependencies.html":{},"miscellaneous/functions.html":{}}}],["html.transformer",{"_index":16738,"title":{},"body":{"classes/RichText.html":{}}}],["html.transformer.ts",{"_index":21521,"title":{},"body":{"miscellaneous/functions.html":{}}}],["htmlcontent",{"_index":1573,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["htmlmailcontent",{"_index":1575,"title":{"interfaces/HtmlMailContent.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["http",{"_index":1498,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ConsentRequestBody.html":{},"classes/ErrorResponse.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["http(message",{"_index":11529,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["http(s",{"_index":23130,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["http://:4011",{"_index":22927,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://fsf.org",{"_index":21670,"title":{},"body":{"license.html":{}}}],["http://localhost:3030",{"_index":12943,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["http://localhost:3030/api/v1/sync?target=ldap",{"_index":22949,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://localhost:3030/api/v3/sso/oauth",{"_index":13055,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["http://localhost:8080",{"_index":22921,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/manifest",{"_index":5187,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p1/lom/resource",{"_index":5188,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/manifest",{"_index":5174,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://ltsc.ieee.org/xsd/imsccv1p3/lom/resource",{"_index":5176,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://mock.de",{"_index":18608,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/auth",{"_index":18597,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/jwks",{"_index":18601,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/logout",{"_index":18599,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mock.de/mock/auth/public/mocktoken",{"_index":18595,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://mockhost:3030/api/v3/sso/oauth",{"_index":18596,"title":{},"body":{"classes/SystemFactory.html":{}}}],["http://www.gnu.org/licenses",{"_index":22249,"title":{},"body":{"license.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd",{"_index":5190,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lommanifest_v1p0.xsd",{"_index":5191,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p1/lom/ccv1p1_lomresource_v1p0.xsd",{"_index":5189,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_cpextensionv1p2_v1p0.xsd",{"_index":5182,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd",{"_index":5180,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imswl_v1p3.xsd",{"_index":5264,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lommanifest_v1p0.xsd",{"_index":5181,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/profile/cc/ccv1p3/lom/ccv1p3_lomresource_v1p0.xsd",{"_index":5179,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsbasiclti_v1p0",{"_index":5137,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1",{"_index":5186,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1",{"_index":5265,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2",{"_index":5178,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1",{"_index":5172,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3",{"_index":5263,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3",{"_index":5135,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticc_v1p3.xsd",{"_index":5143,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticm_v1p0",{"_index":5139,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.imsglobal.org/xsd/imslticp_v1p0",{"_index":5141,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["http://www.w3.org/2001/xmlschema",{"_index":5120,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["httpargumenthost",{"_index":10504,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpargumenthost.getresponse",{"_index":10506,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["httpcode",{"_index":2954,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/LoginController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["httpcode(204",{"_index":2973,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["httpcode(httpstatus.no_content",{"_index":19629,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["httpcode(httpstatus.ok",{"_index":14105,"title":{},"body":{"controllers/LoginController.html":{}}}],["httpexception",{"_index":3672,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/BusinessError.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoService.html":{},"classes/GlobalErrorFilter.html":{},"injectables/SubmissionItemUc.html":{}}}],["httpexception('id",{"_index":18386,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["httpexception(`unsupported",{"_index":4900,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["httpexceptionoptions",{"_index":8236,"title":{},"body":{"classes/ErrorUtils.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["httpexceptions",{"_index":22667,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["httpmodule",{"_index":3956,"title":{},"body":{"modules/CalendarModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/ExternalToolModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/KeycloakModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/RocketChatModule.html":{},"modules/VideoConferenceModule.html":{}}}],["httponly",{"_index":15777,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["https",{"_index":10922,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["https://${scdomain",{"_index":12944,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["https://${scdomain}/api/v3/sso/oauth",{"_index":13056,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["https://dbildungscloud.de",{"_index":22258,"title":{},"body":{"properties.html":{}}}],["https://docs.nestjs.com/first",{"_index":22594,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://example.com/tool",{"_index":19796,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["https://github.com/goldbergyoni/javascript",{"_index":22875,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["https://github.com/hpi",{"_index":22283,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["https://github.com/mikro",{"_index":9736,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["https://github.com/thoughtbot/fishery",{"_index":2527,"title":{},"body":{"classes/BaseFactory.html":{}}}],["https://hpi",{"_index":22306,"title":{},"body":{"todo.html":{}}}],["https://jestjs.io",{"_index":22440,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://khalilstemmler.com/articles/software",{"_index":22636,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["https://logo.com",{"_index":7177,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://logourl.com",{"_index":8512,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["https://mikro",{"_index":22441,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://min.io",{"_index":22443,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://mock.tld/auth",{"_index":18603,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/logout",{"_index":18606,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/token",{"_index":18604,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://mock.tld/userinfo",{"_index":18605,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://nestjs.com",{"_index":22439,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://provisioningurl.de",{"_index":18610,"title":{},"body":{"classes/SystemFactory.html":{}}}],["https://stackoverflow.com/a/61909588",{"_index":22268,"title":{},"body":{"todo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/arc",{"_index":2473,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/bc",{"_index":2050,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/FilesStorageProducer.html":{}}}],["https://ticketsystem.dbildungscloud.de/browse/n21",{"_index":13623,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["https://url.com",{"_index":7175,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.basic",{"_index":7130,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.example.com",{"_index":13762,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["https://www.frontchannel.com",{"_index":7138,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.geogebra.org/m/${content.content.materialid",{"_index":5014,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["https://www.imsglobal.org/sites/default/files/profile/cc/ccv1p1/ccv1p1_imswl_v1p1.xsd",{"_index":5266,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["https://www.lti11",{"_index":7150,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.npmjs.com/package/@golevelup/nestjs",{"_index":16471,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["https://www.oauth2",{"_index":7146,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["https://www.rabbitmq.com",{"_index":22444,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["https://www.redirect.com",{"_index":7140,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["httpservice",{"_index":1265,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["httpstatus",{"_index":1487,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BoardResponseMapper.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"classes/LdapConnectionError.html":{},"controllers/LoginController.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SubmissionItemUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.bad_gateway",{"_index":13285,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["httpstatus.bad_request",{"_index":1494,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.conflict",{"_index":3887,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["httpstatus.forbidden",{"_index":10382,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.internal_server_error",{"_index":8536,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{},"controllers/VideoConferenceController.html":{}}}],["httpstatus.not_acceptable",{"_index":8102,"title":{},"body":{"injectables/ElementUc.html":{}}}],["httpstatus.not_found",{"_index":8123,"title":{},"body":{"classes/EntityNotFoundError.html":{}}}],["httpstatus.ok",{"_index":20923,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["httpstatus.too_many_requests",{"_index":3841,"title":{},"body":{"classes/BruteForceError.html":{}}}],["httpstatus.unauthorized",{"_index":1889,"title":{},"body":{"classes/AuthorizationError.html":{},"classes/SchoolInMigrationError.html":{}}}],["httpstatus.unprocessable_entity",{"_index":3678,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ElementUc.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/SubmissionItemUc.html":{}}}],["human",{"_index":5409,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["hydra",{"_index":11082,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydra_public_uri",{"_index":10926,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraadapter",{"_index":10822,"title":{"injectables/HydraAdapter.html":{}},"body":{"injectables/HydraAdapter.html":{},"modules/OauthProviderServiceModule.html":{}}}],["hydracookies",{"_index":6034,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydracookies.includes(cookie",{"_index":11063,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydracookies.push(cookie",{"_index":11064,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig",{"_index":10958,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["hydraoauthconfig.redirecturi",{"_index":10962,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["hydraoauthuc",{"_index":10923,"title":{"injectables/HydraOauthUc.html":{}},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["hydraredirectdto",{"_index":10948,"title":{"classes/HydraRedirectDto.html":{}},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["hydraredirectdto(dto",{"_index":11035,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrassoservice",{"_index":10934,"title":{"injectables/HydraSsoService.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"modules/OauthModule.html":{}}}],["hydrauc",{"_index":15740,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["hydrauri",{"_index":10824,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{}}}],["hydrauri}/.well",{"_index":11078,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/auth",{"_index":11073,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/sessions/logout",{"_index":11081,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["hydrauri}/oauth2/token",{"_index":11088,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["i...properties",{"_index":6420,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["i.name",{"_index":11237,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["iaccountconfig",{"_index":11091,"title":{"interfaces/IAccountConfig.html":{}},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["iat",{"_index":6886,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["ibbbsettings",{"_index":2290,"title":{"interfaces/IBbbSettings.html":{}},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["icalendarevent",{"_index":3938,"title":{"interfaces/ICalendarEvent.html":{}},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"interfaces/ICalendarEvent.html":{}}}],["iclassentityprops",{"_index":4296,"title":{"interfaces/IClassEntityProps.html":{}},"body":{"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"interfaces/IClassEntityProps.html":{}}}],["icollaborativestoragestrategy",{"_index":4493,"title":{"interfaces/ICollaborativeStorageStrategy.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["icollectionfilepath",{"_index":11108,"title":{"interfaces/ICollectionFilePath.html":{}},"body":{"interfaces/ICollectionFilePath.html":{}}}],["icolumnboardproperties",{"_index":4709,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["icommoncartridgeconfig",{"_index":11293,"title":{"interfaces/ICommonCartridgeConfig.html":{}},"body":{"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icommoncartridgeelement",{"_index":5062,"title":{"interfaces/ICommonCartridgeElement.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgefile",{"_index":5104,"title":{"interfaces/ICommonCartridgeFile.html":{}},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFile.html":{}}}],["icommoncartridgefilebuilder",{"_index":5038,"title":{"interfaces/ICommonCartridgeFileBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgefilebuilderoptions",{"_index":5045,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeltiresourceprops",{"_index":5106,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{}}}],["icommoncartridgemanifestprops",{"_index":5161,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["icommoncartridgemetadataprops",{"_index":5163,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{}}}],["icommoncartridgeorganizationbuilder",{"_index":5054,"title":{"interfaces/ICommonCartridgeOrganizationBuilder.html":{}},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeorganizationprops",{"_index":5052,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgeresourceprops",{"_index":4956,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["icommoncartridgewebcontentresourceprops",{"_index":4964,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["icommoncartridgeweblinkresourceprops",{"_index":5235,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["icomponentetherpadproperties",{"_index":11305,"title":{"interfaces/IComponentEtherpadProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icomponentgeogebraproperties",{"_index":11315,"title":{"interfaces/IComponentGeogebraProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icomponentinternalproperties",{"_index":11320,"title":{"interfaces/IComponentInternalProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["icomponentlernstoreproperties",{"_index":11317,"title":{"interfaces/IComponentLernstoreProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icomponentnexboardproperties",{"_index":11319,"title":{"interfaces/IComponentNexboardProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icomponentproperties",{"_index":4953,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonService.html":{}}}],["icomponenttextproperties",{"_index":11314,"title":{"interfaces/IComponentTextProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["icons",{"_index":22883,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["icontextexternaltoolproperties",{"_index":5687,"title":{"interfaces/IContextExternalToolProperties.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["icopyfiledo",{"_index":10188,"title":{"interfaces/ICopyFileDO.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["icopyfiledomainobjectprops",{"_index":6068,"title":{"interfaces/ICopyFileDomainObjectProps.html":{}},"body":{"classes/CopyFileDto.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDomainObjectProps.html":{}}}],["icopyfilesofparentparams",{"_index":10286,"title":{"interfaces/ICopyFilesOfParentParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["icopyfilesrequestinfo",{"_index":6179,"title":{"interfaces/ICopyFilesRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{}}}],["icoremoduleconfig",{"_index":11368,"title":{"interfaces/ICoreModuleConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{}}}],["icoursegroupproperties",{"_index":6632,"title":{"interfaces/ICourseGroupProperties.html":{}},"body":{"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["icourseproperties",{"_index":6410,"title":{"interfaces/ICourseProperties.html":{}},"body":{"entities/Course.html":{},"classes/CourseFactory.html":{},"interfaces/ICourseProperties.html":{}}}],["icreatenews",{"_index":11372,"title":{"interfaces/ICreateNews.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["icurrentuser",{"_index":491,"title":{"interfaces/ICurrentUser.html":{}},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"classes/CurrentUserMapper.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"controllers/ImportUserController.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["id",{"_index":34,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardUrlParams.html":{},"injectables/CalendarService.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardUrlParams.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"injectables/CopyFilesService.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateNewsParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"classes/FileDto-1.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilterNewsParams.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraAdapter.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/LoginResponse-1.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MoveColumnBodyParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningService.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemResponse.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsService.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"injectables/SchoolYearRepo.html":{},"classes/ScopeRef.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SortExternalToolParams.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemIdParams.html":{},"classes/SystemMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationDO.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["id'})@apiokresponse({description",{"_index":19721,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["id.body.params.ts",{"_index":457,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:15",{"_index":466,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:26",{"_index":464,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.body.params.ts:35",{"_index":462,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["id.id",{"_index":13104,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["id.loggable.ts",{"_index":17554,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:11",{"_index":17559,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.loggable.ts:4",{"_index":17557,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["id.params",{"_index":18551,"title":{},"body":{"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["id.params.ts",{"_index":478,"title":{},"body":{"classes/AccountByIdParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}}}],["id.params.ts:11",{"_index":480,"title":{},"body":{"classes/AccountByIdParams.html":{},"classes/SystemIdParams.html":{}}}],["id.params.ts:7",{"_index":5709,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["id.params.ts:8",{"_index":5712,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SystemIdParams-1.html":{}}}],["id.pipe.ts",{"_index":22618,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["id.token.claim",{"_index":13008,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["id.tostring",{"_index":1218,"title":{},"body":{"injectables/AccountServiceDb.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["id/authorization",{"_index":5436,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["id/challenge",{"_index":5473,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["id='${child.id",{"_index":2836,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["id_token",{"_index":353,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["id_token_hint_claims",{"_index":15874,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["idashboardmodelproperties",{"_index":7427,"title":{"interfaces/IDashboardModelProperties.html":{}},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["idashboardrepo",{"_index":7600,"title":{"interfaces/IDashboardRepo.html":{}},"body":{"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"interfaces/IDashboardRepo.html":{}}}],["idea",{"_index":2487,"title":{},"body":{"classes/BaseDomainObject.html":{},"injectables/TaskUC.html":{}}}],["idempotent",{"_index":2297,"title":{},"body":{"injectables/BBBService.html":{}}}],["identical",{"_index":12724,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["identifiable",{"_index":22132,"title":{},"body":{"license.html":{}}}],["identified",{"_index":22676,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["identifiedreference",{"_index":2501,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["identifier",{"_index":1515,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ErrorResponse.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"injectables/LdapStrategy.html":{},"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["identifiername",{"_index":14975,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["identifierref",{"_index":5129,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["identifiers",{"_index":11455,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/JwtValidationAdapter.html":{}}}],["identifies",{"_index":18118,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["identify",{"_index":5437,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["identities",{"_index":22918,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["identity",{"_index":2841,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"modules/KeycloakModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["identitymanagementmodule",{"_index":817,"title":{"modules/IdentityManagementModule.html":{}},"body":{"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/IdentityManagementModule.html":{},"modules/SystemModule.html":{},"modules.html":{}}}],["identitymanagementoauthservice",{"_index":12185,"title":{"classes/IdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["identitymanagementoauthservice:24",{"_index":13047,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:54",{"_index":13048,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementoauthservice:61",{"_index":13050,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["identitymanagementservice",{"_index":788,"title":{"classes/IdentityManagementService.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:113",{"_index":13086,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:126",{"_index":13087,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:131",{"_index":13076,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:136",{"_index":13088,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:14",{"_index":13074,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:152",{"_index":13089,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:46",{"_index":13091,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:62",{"_index":13093,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:76",{"_index":13085,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:84",{"_index":13082,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identitymanagementservice:98",{"_index":13083,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["identityprovideralias",{"_index":12998,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapper",{"_index":12997,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityprovidermapperrepresentation",{"_index":12880,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["identityproviderrepresentation",{"_index":12883,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["idm",{"_index":78,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementOauthService.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idm.service",{"_index":831,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{}}}],["idm/dev:latest",{"_index":22355,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idmaccount",{"_index":750,"title":{},"body":{"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountService.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmaccount?.idmreferenceid",{"_index":1102,"title":{},"body":{"injectables/AccountService.html":{}}}],["idmaccountproperties",{"_index":401,"title":{},"body":{"entities/Account.html":{},"classes/AccountFactory.html":{}}}],["idmaccountupdate",{"_index":12214,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["idmcallback",{"_index":1061,"title":{},"body":{"injectables/AccountService.html":{}}}],["idmoauthservice",{"_index":13995,"title":{},"body":{"injectables/LocalStrategy.html":{},"injectables/SystemService.html":{}}}],["idmreferenceid",{"_index":593,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{}}}],["idmservice",{"_index":791,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["idmuserrepresentation",{"_index":13189,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["idp",{"_index":12912,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OauthConfigResponse.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["idpalias",{"_index":12873,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["idparams",{"_index":12124,"title":{"classes/IdParams.html":{}},"body":{"classes/IdParams.html":{},"controllers/OauthProviderController.html":{}}}],["idphint",{"_index":11875,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["ids",{"_index":770,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/BaseDORepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"entities/Course.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/PatchOrderParams.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/S3ClientAdapter.html":{}}}],["ids.'})@apiresponse({status",{"_index":4023,"title":{},"body":{"controllers/CardController.html":{}}}],["ids.map((id",{"_index":2714,"title":{},"body":{"entities/Board.html":{}}}],["ids.map(async",{"_index":2480,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["ids.params.ts",{"_index":4080,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids.params.ts:10",{"_index":4084,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["ids[0",{"_index":3136,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["idtoken",{"_index":348,"title":{"interfaces/IdToken.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/TokenRequestMapper.html":{}}}],["idtoken.external_sub",{"_index":15906,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["idtoken.uuid",{"_index":12631,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["idtokencreationloggableexception",{"_index":12127,"title":{"classes/IdTokenCreationLoggableException.html":{}},"body":{"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{}}}],["idtokencreationloggableexception(clientid",{"_index":12178,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["idtokenservice",{"_index":12135,"title":{"injectables/IdTokenService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["iencryptionservice",{"_index":9083,"title":{"interfaces/IEncryptionService.html":{}},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["ientity",{"_index":2494,"title":{"interfaces/IEntity.html":{}},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ientitywithschool",{"_index":6400,"title":{"interfaces/IEntityWithSchool.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{}}}],["ientitywithtimestamps",{"_index":11398,"title":{"interfaces/IEntityWithTimestamps.html":{}},"body":{"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{}}}],["ierror",{"_index":8203,"title":{"interfaces/IError.html":{}},"body":{"classes/ErrorMapper.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["ierrortype",{"_index":3875,"title":{"interfaces/IErrorType.html":{}},"body":{"classes/BusinessError.html":{},"interfaces/IErrorType.html":{}}}],["iexternaltoolproperties",{"_index":8487,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["iexternaltoolpseudonymentityprops",{"_index":8717,"title":{"interfaces/IExternalToolPseudonymEntityProps.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["if/else",{"_index":22743,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ifederalstateproperties",{"_index":6350,"title":{"interfaces/IFederalStateProperties.html":{}},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["ifiledo",{"_index":10189,"title":{"interfaces/IFileDO.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["ifiledomainobjectprops",{"_index":9488,"title":{"interfaces/IFileDomainObjectProps.html":{}},"body":{"classes/FileDto-1.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["ifilerecordparams",{"_index":10289,"title":{"interfaces/IFileRecordParams.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["ifilerecordproperties",{"_index":9732,"title":{"interfaces/IFileRecordProperties.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ifilerecordsecuritycheckproperties",{"_index":9724,"title":{"interfaces/IFileRecordSecurityCheckProperties.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["ifilerequestinfo",{"_index":6177,"title":{"interfaces/IFileRequestInfo.html":{}},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{}}}],["ifilesstorageclientconfig",{"_index":10294,"title":{"interfaces/IFilesStorageClientConfig.html":{}},"body":{"injectables/FilesStorageProducer.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IServerConfig.html":{}}}],["ifilestorageconfig",{"_index":11404,"title":{"interfaces/IFileStorageConfig.html":{}},"body":{"interfaces/IFileStorageConfig.html":{}}}],["ifindoptions",{"_index":6775,"title":{"interfaces/IFindOptions.html":{}},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{}}}],["iframe",{"_index":10673,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{}}}],["iframe_restrict_access=false",{"_index":23014,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["iframeproperties",{"_index":12138,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["ignore",{"_index":2422,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/ImportUserScope.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["ignored",{"_index":2518,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ignoreexpiration",{"_index":12700,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["igridelement",{"_index":7284,"title":{"interfaces/IGridElement.html":{}},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["iidentitymanagementconfig",{"_index":11438,"title":{"interfaces/IIdentityManagementConfig.html":{}},"body":{"interfaces/IIdentityManagementConfig.html":{},"interfaces/IServerConfig.html":{},"injectables/LocalStrategy.html":{}}}],["iimportuserproperties",{"_index":11445,"title":{"interfaces/IImportUserProperties.html":{}},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{}}}],["iimportuserrolename",{"_index":11451,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/RoleNameMapper.html":{}}}],["iimportuserscope",{"_index":11493,"title":{"interfaces/IImportUserScope.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["iinterceptorconfig",{"_index":11370,"title":{"interfaces/IInterceptorConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/IInterceptorConfig.html":{},"modules/InterceptorModule.html":{}}}],["ijsonaccount",{"_index":11499,"title":{"interfaces/IJsonAccount.html":{}},"body":{"interfaces/IJsonAccount.html":{},"classes/KeycloakSeedService.html":{}}}],["ijsonuser",{"_index":11504,"title":{"interfaces/IJsonUser.html":{}},"body":{"interfaces/IJsonUser.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloakconfigurationinputfiles",{"_index":11506,"title":{"interfaces/IKeycloakConfigurationInputFiles.html":{}},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakSeedService.html":{}}}],["ikeycloaksettings",{"_index":11513,"title":{"interfaces/IKeycloakSettings.html":{}},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["ilearnroom",{"_index":6401,"title":{"interfaces/ILearnroom.html":{}},"body":{"entities/Course.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["ilearnroomelement",{"_index":2687,"title":{"interfaces/ILearnroomElement.html":{}},"body":{"entities/Board.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["ilegacylogger",{"_index":11519,"title":{"interfaces/ILegacyLogger.html":{}},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["ilessonparent",{"_index":6406,"title":{"interfaces/ILessonParent.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["ilessonproperties",{"_index":11309,"title":{"interfaces/ILessonProperties.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{}}}],["iloggerconfig",{"_index":11371,"title":{"interfaces/ILoggerConfig.html":{}},"body":{"interfaces/ICoreModuleConfig.html":{},"interfaces/ILoggerConfig.html":{},"modules/LoggerModule.html":{}}}],["iltitoolproperties",{"_index":6959,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["im",{"_index":4790,"title":{},"body":{"injectables/ColumnBoardService.html":{},"injectables/PreviewService.html":{}}}],["im(original.data",{"_index":16191,"title":{},"body":{"injectables/PreviewService.html":{}}}],["image/gif",{"_index":8581,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/jpeg",{"_index":8576,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["image/png",{"_index":8579,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["image/webp",{"_index":19461,"title":{},"body":{"classes/TestHelper.html":{}}}],["imagebuffer",{"_index":8561,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagebuffer.tostring('hex",{"_index":8613,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imagemagick",{"_index":16190,"title":{},"body":{"injectables/PreviewService.html":{}}}],["imagesignature",{"_index":8612,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["imateapotexception",{"_index":9437,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imateapotexception('this",{"_index":9448,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["imaterialproperties",{"_index":11538,"title":{"interfaces/IMaterialProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["imigrationoptions",{"_index":11565,"title":{"interfaces/IMigrationOptions.html":{}},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["immediately",{"_index":9424,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["immutable",{"_index":9254,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["impact",{"_index":21620,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["imperative",{"_index":22904,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["impersonated",{"_index":6955,"title":{},"body":{"classes/CurrentUserMapper.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{}}}],["impersonates",{"_index":11382,"title":{},"body":{"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{}}}],["impl",{"_index":3308,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["impl.ts",{"_index":3191,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:104",{"_index":3208,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:118",{"_index":3209,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:132",{"_index":3210,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:146",{"_index":3202,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:151",{"_index":3217,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:157",{"_index":3215,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:162",{"_index":3213,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:26",{"_index":3198,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:35",{"_index":3206,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:39",{"_index":3204,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:56",{"_index":3203,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:71",{"_index":3200,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["impl.ts:91",{"_index":3207,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["implemenation",{"_index":23138,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implement",{"_index":13418,"title":{},"body":{"injectables/LegacyLogger.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implementation",{"_index":2579,"title":{},"body":{"injectables/BaseRepo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["implementations",{"_index":22475,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["implemented",{"_index":1132,"title":{},"body":{"injectables/AccountService.html":{},"interfaces/JwtConstants.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implemented.loggable",{"_index":16066,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["implementing",{"_index":22507,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implements",{"_index":214,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthorizableObject.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"entities/ColumnBoardTarget.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRule.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardRepo.html":{},"classes/DomainObject.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"classes/FileElementResponseMapper.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"entities/ImportUser.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRule.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"entities/SchoolYear.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionRule.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"injectables/TaskRule.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["implications",{"_index":22647,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["implicit",{"_index":23032,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implicitly",{"_index":23053,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["implied",{"_index":22154,"title":{},"body":{"license.html":{}}}],["implies",{"_index":5457,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["import",{"_index":95,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["import.body.params.ts",{"_index":17954,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:13",{"_index":17958,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.body.params.ts:22",{"_index":17957,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["import.module.ts",{"_index":12451,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["import.uc",{"_index":12307,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["import/controller/dto/filter",{"_index":10328,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{}}}],["import/controller/dto/import",{"_index":12357,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{}}}],["import/controller/dto/sort",{"_index":18150,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["import/controller/dto/update",{"_index":19962,"title":{},"body":{"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{}}}],["import/controller/dto/user",{"_index":20541,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["import/controller/import",{"_index":12260,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["import/export",{"_index":22962,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["import/loggable/migration",{"_index":14489,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["import/loggable/school",{"_index":17553,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["import/loggable/user",{"_index":20585,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["import/mapper/import",{"_index":12379,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["import/mapper/match.mapper.ts",{"_index":12426,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:12",{"_index":12432,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/match.mapper.ts:5",{"_index":12430,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["import/mapper/role",{"_index":16823,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["import/mapper/user",{"_index":20546,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["import/uc/ldap",{"_index":13246,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["import/user",{"_index":12450,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["important",{"_index":569,"title":{},"body":{"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/PermissionService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["importcollection",{"_index":7689,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollection(@param('collectionname",{"_index":7709,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollection(collectionname",{"_index":7697,"title":{},"body":{"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{}}}],["importcollections",{"_index":7690,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(@query('with",{"_index":7707,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["importcollections(withindexes",{"_index":7700,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["imported",{"_index":11205,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/ShareTokenImportBodyParams.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["importeddocumentsamount",{"_index":11202,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["importhash",{"_index":12106,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["importing",{"_index":22100,"title":{},"body":{"license.html":{}}}],["imports",{"_index":449,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CoreModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"classes/TestBootstrapConsole.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["importseeddata",{"_index":13154,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["importsharetoken",{"_index":17885,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["importsharetoken(currentuser",{"_index":17893,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["importsharetoken(userid",{"_index":18073,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["importuser",{"_index":11459,"title":{"entities/ImportUser.html":{}},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"injectables/UserRepo.html":{}}}],["importuser.classnames",{"_index":12400,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.firstname",{"_index":12396,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.flagged",{"_index":12401,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.id",{"_index":12394,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.lastname",{"_index":12397,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.loginname",{"_index":12395,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.matchedby",{"_index":12403,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.rolenames.map((role",{"_index":12398,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuser.scope",{"_index":12471,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuser.user",{"_index":12402,"title":{},"body":{"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{}}}],["importuser.user).filter((user",{"_index":12497,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importusercontroller",{"_index":12259,"title":{"controllers/ImportUserController.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["importuserentities",{"_index":12493,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserentities.map((importuser",{"_index":12496,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["importuserfactory",{"_index":12342,"title":{"classes/ImportUserFactory.html":{}},"body":{"classes/ImportUserFactory.html":{}}}],["importuserfactory.define(importuser",{"_index":12350,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["importuserid",{"_index":12374,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserlist",{"_index":12317,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlist.map((importuser",{"_index":12320,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importuserlistresponse",{"_index":12308,"title":{"classes/ImportUserListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["importuserlistresponse(dtolist",{"_index":12322,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper",{"_index":12299,"title":{"classes/ImportUserMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["importusermapper.mapimportuserfilterquerytodomain(scope",{"_index":12316,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.mapsortingquerytodomain(sortingquery",{"_index":12315,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(importuser",{"_index":12321,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermapper.maptoresponse(result",{"_index":12326,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["importusermatchmapper",{"_index":12388,"title":{"classes/ImportUserMatchMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["importusermatchmapper.mapimportusermatchscopetodomain(match",{"_index":12423,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusermatchmapper.mapmatchcreatortoresponse(matchcreator",{"_index":20562,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["importusermodule",{"_index":12445,"title":{"modules/ImportUserModule.html":{}},"body":{"modules/ImportUserModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["importuserrepo",{"_index":12449,"title":{"injectables/ImportUserRepo.html":{}},"body":{"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{}}}],["importuserresponse",{"_index":12309,"title":{"classes/ImportUserResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{}}}],["importusers",{"_index":11458,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"injectables/UserRepo.html":{}}}],["importuserschoolid",{"_index":17556,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["importuserscope",{"_index":12470,"title":{"classes/ImportUserScope.html":{}},"body":{"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{}}}],["importusersortorder",{"_index":12387,"title":{},"body":{"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["importusersortorder.firstname",{"_index":12391,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importusersortorder.lastname",{"_index":12392,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["importuserurlparams",{"_index":12281,"title":{"classes/ImportUserUrlParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserUrlParams.html":{}}}],["impose",{"_index":22032,"title":{},"body":{"license.html":{}}}],["imposed",{"_index":22157,"title":{},"body":{"license.html":{}}}],["impossile",{"_index":14787,"title":{},"body":{"classes/NewsScope.html":{}}}],["improvements",{"_index":21713,"title":{},"body":{"license.html":{}}}],["improves",{"_index":22702,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["ims",{"_index":5193,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["imsbasiclti_v1p0p1.xsd",{"_index":5146,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticm_v1p0.xsd",{"_index":5145,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["imslticp_v1p0.xsd",{"_index":5144,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["in.'})@apioperation({summary",{"_index":19655,"title":{},"body":{"controllers/ToolController.html":{}}}],["in/out",{"_index":22570,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["inability",{"_index":22209,"title":{},"body":{"license.html":{}}}],["inaccurate",{"_index":22211,"title":{},"body":{"license.html":{}}}],["inamematch",{"_index":11497,"title":{"interfaces/INameMatch.html":{}},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["inc",{"_index":21669,"title":{},"body":{"license.html":{}}}],["incidental",{"_index":22206,"title":{},"body":{"license.html":{}}}],["include",{"_index":2503,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["included",{"_index":6053,"title":{},"body":{"classes/CopyApiResponse.html":{},"license.html":{}}}],["includes",{"_index":14883,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["including",{"_index":10000,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["inclusion",{"_index":21907,"title":{},"body":{"license.html":{}}}],["incoming",{"_index":10534,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["incoming_request_timeout",{"_index":11410,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{}}}],["incoming_request_timeout_copy_api",{"_index":11412,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IServerConfig.html":{}}}],["incomplete",{"_index":10797,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["incorporate",{"_index":21716,"title":{},"body":{"license.html":{}}}],["incorporated",{"_index":22174,"title":{},"body":{"license.html":{}}}],["incorporation",{"_index":21959,"title":{},"body":{"license.html":{}}}],["increase",{"_index":9309,"title":{},"body":{"injectables/ExternalToolVersionService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["increaseversionofnewtoolifnecessary",{"_index":9272,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["increaseversionofnewtoolifnecessary(oldtool",{"_index":9290,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["indefinitely",{"_index":5392,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["indemnification",{"_index":22028,"title":{},"body":{"license.html":{}}}],["independent",{"_index":21897,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["index",{"_index":7,"title":{"index.html":{}},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["index()@enum",{"_index":9705,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@enum(undefined",{"_index":3558,"title":{},"body":{"entities/BoardNode.html":{}}}],["index()@manytomany('course",{"_index":7410,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytomany('user",{"_index":6391,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{}}}],["index()@manytomany({fieldname",{"_index":19996,"title":{},"body":{"entities/User.html":{}}}],["index()@manytoone('course",{"_index":6624,"title":{},"body":{"entities/CourseGroup.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone('dashboardmodelentity",{"_index":7408,"title":{},"body":{"entities/DashboardGridElementModel.html":{}}}],["index()@manytoone('lessonentity",{"_index":18765,"title":{},"body":{"entities/Task.html":{}}}],["index()@manytoone('user",{"_index":7494,"title":{},"body":{"entities/DashboardModelEntity.html":{},"entities/Task.html":{}}}],["index()@manytoone(undefined",{"_index":6386,"title":{},"body":{"entities/Course.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["index()@property",{"_index":13856,"title":{},"body":{"entities/LessonEntity.html":{}}}],["index()@property({fieldname",{"_index":9697,"title":{},"body":{"entities/FileRecord.html":{}}}],["index()@property({nullable",{"_index":3554,"title":{},"body":{"entities/BoardNode.html":{},"entities/Course.html":{}}}],["index({options",{"_index":9700,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["index.ts",{"_index":22265,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["indexes",{"_index":7660,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/TaskRepo.html":{},"todo.html":{}}}],["indexes.filter((i",{"_index":11236,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["indicate",{"_index":22071,"title":{},"body":{"license.html":{}}}],["indicating",{"_index":6926,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["individual",{"_index":21905,"title":{},"body":{"license.html":{}}}],["individuals",{"_index":21747,"title":{},"body":{"license.html":{}}}],["industrial",{"_index":21968,"title":{},"body":{"license.html":{}}}],["ineffcient",{"_index":13233,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inestapplication",{"_index":1704,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inewsproperties",{"_index":6725,"title":{"interfaces/INewsProperties.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["inewsscope",{"_index":11380,"title":{"interfaces/INewsScope.html":{}},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["inferrable",{"_index":12378,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["info",{"_index":3,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["info(currentuser",{"_index":20898,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["info(loggable",{"_index":14029,"title":{},"body":{"injectables/Logger.html":{}}}],["info(text",{"_index":5487,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["info.dto.ts",{"_index":17961,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{}}}],["info.interface.ts",{"_index":11743,"title":{},"body":{"interfaces/IScopeInfo.html":{}}}],["info.mapper",{"_index":14681,"title":{},"body":{"classes/NewsMapper.html":{}}}],["info.mapper.ts",{"_index":17580,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.mapper.ts:5",{"_index":17582,"title":{},"body":{"classes/SchoolInfoMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/UserInfoMapper.html":{}}}],["info.reponse.ts",{"_index":17963,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:13",{"_index":17967,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:16",{"_index":17966,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:20",{"_index":17965,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.reponse.ts:5",{"_index":17964,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["info.response",{"_index":14652,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{}}}],["info.response.ts",{"_index":2254,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:11",{"_index":21075,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:13",{"_index":17588,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:14",{"_index":20208,"title":{},"body":{"classes/UserInfoResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["info.response.ts:18",{"_index":17589,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{}}}],["info.response.ts:19",{"_index":20207,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["info.response.ts:24",{"_index":20209,"title":{},"body":{"classes/UserInfoResponse.html":{}}}],["info.response.ts:3",{"_index":17587,"title":{},"body":{"classes/SchoolInfoResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/UserInfoResponse.html":{}}}],["info.ts",{"_index":11367,"title":{},"body":{"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{},"classes/VideoConferenceInfo.html":{}}}],["info.ts:6",{"_index":21064,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["info.uc.ts",{"_index":21077,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:12",{"_index":21079,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:19",{"_index":21081,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["info.uc.ts:68",{"_index":21083,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["infodto",{"_index":21037,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["infodto.state",{"_index":21039,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["inform",{"_index":21945,"title":{},"body":{"license.html":{}}}],["information",{"_index":1510,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"injectables/BBBService.html":{},"classes/ConsentRequestBody.html":{},"classes/ErrorResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["informationen",{"_index":4782,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["infra",{"_index":14418,"title":{},"body":{"modules/ManagementModule.html":{}}}],["infrastructure",{"_index":22580,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["infrastucture",{"_index":17842,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["infringe",{"_index":22069,"title":{},"body":{"license.html":{}}}],["infringed",{"_index":22097,"title":{},"body":{"license.html":{}}}],["infringement",{"_index":21758,"title":{},"body":{"license.html":{}}}],["inherit",{"_index":2505,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritance",{"_index":23036,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inheritances",{"_index":14752,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["inherited",{"_index":596,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardRepo.html":{},"classes/BruteForceError.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ConsentRequestBody.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMetadataListResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CustomParameterFactory.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"classes/FileElementContentBody.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"injectables/FilesRepo.html":{},"classes/ForbiddenOperationError.html":{},"classes/Group.html":{},"injectables/HydraAdapter.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapConnectionError.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"classes/LoginRequestBody.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContentBody.html":{},"injectables/RoleRepo.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolYearRepo.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionRepo.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["init",{"_index":3866,"title":{},"body":{"classes/Builder.html":{}}}],["initauth",{"_index":11003,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initauth(oauthconfig",{"_index":11014,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["initialdelay",{"_index":13304,"title":{},"body":{"injectables/LdapService.html":{}}}],["initialized",{"_index":16475,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["initializes3clientmap",{"_index":7800,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["initiate",{"_index":22092,"title":{},"body":{"license.html":{}}}],["initresponse",{"_index":10940,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["initresponse.config",{"_index":10976,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["inject",{"_index":839,"title":{},"body":{"modules/AccountModule.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BBBService.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/DashboardUc.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"injectables/ErrorLogger.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/InterceptorModule.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/MongoMemoryDatabaseModule.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/PreviewService.html":{},"modules/RedisModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/VideoConferenceService.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["inject('antivirus_service_options",{"_index":1447,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["inject('dashboard_repo",{"_index":7630,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["inject('icollaborativestoragestrategy",{"_index":4519,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["inject('mail_service_options",{"_index":14403,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["inject('rocket_chat_options",{"_index":1321,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["inject(bbbsettings",{"_index":2336,"title":{},"body":{"injectables/BBBService.html":{}}}],["inject(cache_manager",{"_index":12733,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["inject(defaultencryptionservice",{"_index":9113,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["inject(files_storage_s3_connection",{"_index":16165,"title":{},"body":{"injectables/PreviewService.html":{}}}],["inject(forwardref",{"_index":3129,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToolPermissionHelper.html":{}}}],["inject(fwu_content_s3_connection",{"_index":10441,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["inject(keycloakconfigurationinputfiles",{"_index":13222,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inject(keycloaksettings",{"_index":12790,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["inject(ldapencryptionservice",{"_index":11120,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["inject(redis_client",{"_index":17837,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["inject(s3_client",{"_index":17134,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(s3_config",{"_index":17135,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["inject(toolfeatures",{"_index":8582,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["inject(videoconferencesettings",{"_index":21270,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["inject(your_s3_uniq_connection_token",{"_index":23161,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injectable",{"_index":105,"title":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"injectables/IdTokenService.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IRepoLoader.html":{},"injectables/IdTokenService.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injectables",{"_index":107,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AntivirusService.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"injectables/IdTokenService.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["injected",{"_index":9420,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["injectenvvars",{"_index":21576,"title":{},"body":{"miscellaneous/functions.html":{}}}],["injectenvvars(json",{"_index":11253,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["injecting",{"_index":23153,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["injection",{"_index":13420,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["injections",{"_index":23114,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["inline",{"_index":1567,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["inlineattachment",{"_index":1566,"title":{"interfaces/InlineAttachment.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["inmaintenancesince",{"_index":11692,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["inner",{"_index":5227,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["innerpermissions",{"_index":11678,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerrole.resolvepermissions",{"_index":11679,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles",{"_index":11675,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["innerroles.foreach((innerrole",{"_index":11677,"title":{},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["input",{"_index":2309,"title":{},"body":{"injectables/BBBService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IParentInfo.html":{},"modules/InterceptorModule.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/RichText.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/ServerConsole.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["input.accesstoken",{"_index":17265,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.dto.ts",{"_index":15362,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:4",{"_index":15364,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:6",{"_index":15365,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.dto.ts:8",{"_index":15363,"title":{},"body":{"classes/OauthDataStrategyInputDto.html":{}}}],["input.mapper",{"_index":16337,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["input.mapper.ts",{"_index":16361,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.mapper.ts:6",{"_index":16364,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["input.system",{"_index":12650,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.provisioningurl",{"_index":17264,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["input.system.systemid",{"_index":12636,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["inputdto",{"_index":16345,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["inputfiles",{"_index":13211,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["inputformat",{"_index":3242,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"miscellaneous/functions.html":{}}}],["inputformat(value",{"_index":16757,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["inputformat.rich_text_ck4",{"_index":11975,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskMapper.html":{},"classes/TaskWithStatusVo.html":{}}}],["inputformat.rich_text_ck5",{"_index":3523,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/ContentElementFactory.html":{},"classes/TaskMapper.html":{}}}],["inputpath",{"_index":1763,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputpath.charat(pos",{"_index":1760,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["inputroles",{"_index":16114,"title":{},"body":{"injectables/PermissionService.html":{}}}],["insensitive",{"_index":12527,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["insertedcount",{"_index":7752,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["inside",{"_index":3873,"title":{},"body":{"classes/BusinessError.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["inspect",{"_index":22986,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["inspired",{"_index":22874,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["install",{"_index":21808,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["installation",{"_index":21972,"title":{},"body":{"license.html":{}}}],["installed",{"_index":21989,"title":{},"body":{"license.html":{}}}],["instance",{"_index":5121,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileElementResponseMapper.html":{},"classes/GlobalValidationPipe.html":{},"injectables/LegacyLogger.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instanceof",{"_index":806,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"injectables/AuthorizationHelper.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/FilesStorageClientMapper.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRule.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"injectables/NewsRepo.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/PseudonymService.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instances",{"_index":21610,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instant",{"_index":6419,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["instead",{"_index":2478,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"modules/BoardModule.html":{},"entities/CourseGroup.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionItemUc.html":{},"injectables/TaskUC.html":{},"modules/ToolModule.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["instructions",{"_index":22587,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["instructor",{"_index":6962,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["intact",{"_index":21875,"title":{},"body":{"license.html":{}}}],["integration",{"_index":10787,"title":{},"body":{"controllers/H5PEditorController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["intend",{"_index":11283,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["intended",{"_index":4166,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["intendeduse",{"_index":5009,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["intention",{"_index":21868,"title":{},"body":{"license.html":{}}}],["interact",{"_index":22242,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["interacting",{"_index":22169,"title":{},"body":{"license.html":{}}}],["interaction",{"_index":21773,"title":{},"body":{"license.html":{}}}],["interactions",{"_index":22519,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interactive",{"_index":21776,"title":{},"body":{"license.html":{}}}],["intercept",{"_index":8014,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["intercept(context",{"_index":8016,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["interceptor",{"_index":6339,"title":{},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["interceptormodule",{"_index":6322,"title":{"modules/InterceptorModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/InterceptorModule.html":{},"modules.html":{}}}],["interchange",{"_index":21917,"title":{},"body":{"license.html":{}}}],["interest",{"_index":22085,"title":{},"body":{"license.html":{}}}],["interface",{"_index":334,"title":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"interfaces/AppendedAttachment.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"interfaces/BaseResponseMapper.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardDoBuilder.html":{},"interfaces/BoardExternalReference.html":{},"interfaces/BoardNodeProps.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"interfaces/ClassProps.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"interfaces/ContextExternalToolProps.html":{},"interfaces/CopyFiles.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/ExternalToolSearchQuery.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"interfaces/File.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"interfaces/FileEntityProps.html":{},"interfaces/FilePermissionEntityProps.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/GlobalConstants.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"interfaces/IdToken.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"interfaces/Loggable.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/MailModuleOptions.html":{},"interfaces/MailServiceOptions.html":{},"interfaces/Meta.html":{},"interfaces/NewsTargetFilter.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"interfaces/RejectRequestBody.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"interfaces/ShareTokenInfoDto.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"interfaces/SuccessfulRes.html":{},"interfaces/ToolVersion.html":{},"interfaces/UserAndAccountParams.html":{},"interfaces/UserBoardRoles.html":{},"interfaces/UserLoginMigrationQuery.html":{}},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"interfaces/BaseResponseMapper.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardDoBuilder.html":{},"interfaces/BoardExternalReference.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"modules/CacheWrapperModule.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"interfaces/ClassProps.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/CommonToolService.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/CopyFileParams.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardRepo.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DomainObject.html":{},"classes/DownloadFileParams.html":{},"classes/ErrorUtils.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"interfaces/File.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"classes/KeycloakConsole.html":{},"classes/LdapConfig.html":{},"injectables/LdapStrategy.html":{},"entities/LessonEntity.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"controllers/LoginController.html":{},"entities/LtiTool.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"entities/Material.html":{},"interfaces/Meta.html":{},"entities/News.html":{},"interfaces/NewsTargetFilter.html":{},"interfaces/NextcloudGroups.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthConfig.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameFileParams.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleReference.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/SingleFileParams.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"interfaces/SuccessfulRes.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"injectables/ToolPermissionHelper.html":{},"interfaces/ToolVersion.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["interface/cache",{"_index":3899,"title":{},"body":{"injectables/CacheService.html":{}}}],["interface/calendar",{"_index":3970,"title":{},"body":{"injectables/CalendarService.html":{}}}],["interface/json",{"_index":13219,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["interface/jwt",{"_index":1820,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CurrentUserMapper.html":{},"injectables/JwtStrategy.html":{},"injectables/LoginUc.html":{}}}],["interface/keycloak",{"_index":12748,"title":{},"body":{"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["interface/learnroom",{"_index":11961,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["interface/oauth",{"_index":1607,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["interface/oidc",{"_index":16289,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["interface/page",{"_index":16042,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["interface/preview",{"_index":9711,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["interface/redis.constants",{"_index":16611,"title":{},"body":{"modules/RedisModule.html":{}}}],["interface/sso",{"_index":2007,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["interfaces",{"_index":336,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"interfaces/AppendedAttachment.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"interfaces/BBBBaseResponse.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"interfaces/BaseResponseMapper.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardDoBuilder.html":{},"interfaces/BoardExternalReference.html":{},"interfaces/BoardNodeProps.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"interfaces/ClassProps.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/CopyFileDto.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"injectables/ErrorLogger.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/ExternalToolSearchQuery.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"interfaces/File.html":{},"classes/FileDto-1.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"interfaces/FilePermissionEntityProps.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageProducer.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/GlobalConstants.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"interfaces/IdToken.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/LegacyLogger.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/MailModuleOptions.html":{},"interfaces/MailServiceOptions.html":{},"interfaces/Meta.html":{},"interfaces/NewsTargetFilter.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/Options.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"interfaces/RejectRequestBody.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"interfaces/SchoolExternalToolProps.html":{},"interfaces/SchoolMigrationFlags.html":{},"interfaces/ShareTokenInfoDto.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"interfaces/SuccessfulRes.html":{},"interfaces/ToolVersion.html":{},"interfaces/UserAndAccountParams.html":{},"interfaces/UserBoardRoles.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["interfaces/copy",{"_index":6180,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/FilesStorageClientAdapterService.html":{}}}],["interfaces/legacy",{"_index":13415,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["interfered",{"_index":21978,"title":{},"body":{"license.html":{}}}],["internal",{"_index":769,"title":{},"body":{"injectables/AccountLookupService.html":{},"entities/CourseNews.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserUrlParams.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["internal_server_error_exception",{"_index":12132,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["internalaxiosrequestconfig",{"_index":2067,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["internalid",{"_index":1184,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["internally",{"_index":17137,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["internalmeetingid",{"_index":2203,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["internalrepo",{"_index":22530,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["internalservererrorexception",{"_index":1439,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BBBService.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/CalendarService.html":{},"injectables/ClassService.html":{},"entities/Course.html":{},"injectables/CourseCopyUC.html":{},"injectables/DashboardModelMapper.html":{},"classes/ErrorMapper.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalErrorFilter.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/OAuthSSOError.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"entities/Submission.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskWithStatusVo.html":{},"injectables/ToolLaunchService.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["internalservererrorexception('cannot",{"_index":3565,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/UserLoginMigrationService.html":{}}}],["internalservererrorexception('copy",{"_index":6588,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["internalservererrorexception('courses",{"_index":6459,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["internalservererrorexception('feature",{"_index":10401,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["internalservererrorexception('import",{"_index":18113,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["internalservererrorexception('lessons",{"_index":11339,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["internalservererrorexception('multiple_matches_are_not_allowed",{"_index":17094,"title":{},"body":{"injectables/RuleManager.html":{}}}],["internalservererrorexception('provisioning",{"_index":16350,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["internalservererrorexception('s3clientadapter:copy",{"_index":17179,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:create",{"_index":17158,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:delete",{"_index":17167,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:get",{"_index":17152,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('s3clientadapter:restore",{"_index":17172,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["internalservererrorexception('submissions",{"_index":11993,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('task.finished",{"_index":11997,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["internalservererrorexception('tool",{"_index":15613,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception('unknown",{"_index":7549,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["internalservererrorexception('user",{"_index":4405,"title":{},"body":{"injectables/ClassService.html":{},"injectables/PseudonymService.html":{}}}],["internalservererrorexception(`${bbbresp.response.messagekey",{"_index":2355,"title":{},"body":{"injectables/BBBService.html":{}}}],["internalservererrorexception(`cannot",{"_index":15611,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["internalservererrorexception(`multiple",{"_index":13552,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["internalservererrorexception(`redirect",{"_index":10982,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["internalservererrorexception(errorobj.message",{"_index":8211,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["internalservererrorexception(null",{"_index":1460,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BBBService.html":{},"classes/ErrorMapper.html":{}}}],["internalservererrorexception(oauthclientid",{"_index":11070,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["internalservererrorexception})@apiresponse({status",{"_index":17899,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@get('/:contentid/edit",{"_index":10782,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get('/:contentid/play",{"_index":10784,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["internalservererrorexception})@get(':token",{"_index":17905,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservererrorexception})@post",{"_index":17891,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["internalservice",{"_index":22531,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["interpretation",{"_index":22217,"title":{},"body":{"license.html":{}}}],["interpreter",{"_index":21807,"title":{},"body":{"license.html":{}}}],["intimate",{"_index":21815,"title":{},"body":{"license.html":{}}}],["introduce",{"_index":9421,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["introduced",{"_index":22626,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["introducing",{"_index":22323,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["introduction",{"_index":22262,"title":{},"body":{"todo.html":{}}}],["introspectoauth2token",{"_index":10833,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["introspectoauth2token(token",{"_index":10861,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["introspectresponse",{"_index":10884,"title":{"interfaces/IntrospectResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"interfaces/IntrospectResponse.html":{},"classes/OauthProviderService.html":{}}}],["inusermigration",{"_index":11693,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["invalid",{"_index":504,"title":{},"body":{"controllers/AccountController.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ICollectionFilePath.html":{},"controllers/LoginController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["invalid_origin_for_logout_url",{"_index":12588,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["invalid_request",{"_index":5396,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["invalidate",{"_index":21894,"title":{},"body":{"license.html":{}}}],["invalidoriginforlogouturlloggableexception",{"_index":12583,"title":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"controllers/VideoConferenceController.html":{}}}],["invalidoriginforlogouturlloggableexception(params.logouturl",{"_index":20927,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["inversion",{"_index":22473,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["invitationlink",{"_index":4229,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["inviteusertogroup(groupname",{"_index":1346,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["ip",{"_index":22985,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipaddress",{"_index":22988,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["ipagination",{"_index":8783,"title":{"interfaces/IPagination.html":{}},"body":{"injectables/ExternalToolRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{}}}],["iparentinfo",{"_index":9733,"title":{"interfaces/IParentInfo.html":{}},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iprimarykey",{"_index":10249,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["irelatedresourceproperties",{"_index":11545,"title":{"interfaces/IRelatedResourceProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["irepoloader",{"_index":11631,"title":{"interfaces/IRepoLoader.html":{}},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["iresolveduser",{"_index":11384,"title":{"interfaces/IResolvedUser.html":{}},"body":{"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/ResolvedUserResponse.html":{}}}],["iretryoptions",{"_index":11576,"title":{"interfaces/IRetryOptions.html":{}},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["irole",{"_index":11383,"title":{"interfaces/IRole.html":{}},"body":{"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/ResolvedUserResponse.html":{}}}],["iroleproperties",{"_index":11669,"title":{"interfaces/IRoleProperties.html":{}},"body":{"interfaces/IRoleProperties.html":{},"entities/Role.html":{}}}],["irrevocable",{"_index":21821,"title":{},"body":{"license.html":{}}}],["isactive",{"_index":7968,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isallowedaschild",{"_index":2797,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["isallowedaschild(child",{"_index":18294,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["isallowedaschild(domainobject",{"_index":2814,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["isanycontentelement",{"_index":5545,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isanycontentelement(element",{"_index":5549,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["isapplicable",{"_index":3352,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"interfaces/Rule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["isapplicable(user",{"_index":3356,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"interfaces/Rule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["isarchived",{"_index":8004,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["isarray",{"_index":5418,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FilterImportUserParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["isarray()@apiproperty",{"_index":15179,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isarray()@ismongoid({each",{"_index":16096,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["isarray()@isoptional()@isstring({each",{"_index":5433,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{}}}],["isarray()@isstring({each",{"_index":5376,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["isatleastpartialsuccessfull",{"_index":6255,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isatleastpartialsuccessfull(status",{"_index":6265,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["isauthenticated",{"_index":23146,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["isauthenticationresponse",{"_index":1772,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthenticationresponse(body",{"_index":1771,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isauthorizedstudent",{"_index":18358,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["isauthorizedstudent(userid",{"_index":18365,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["isautoparameterglobal",{"_index":8639,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isautoparameterglobal(customparameter",{"_index":8651,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isbbbguest",{"_index":21311,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["isblocked",{"_index":9770,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isboolean",{"_index":373,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/ConsentRequestBody.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/LoginRequestBody.html":{},"classes/MigrationBody.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SingleFileParams.html":{},"classes/SystemFilterParams.html":{},"classes/TeamPermissionsBody.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/VideoConferenceCreateParams.html":{},"miscellaneous/functions.html":{}}}],["isboolean()@apiproperty",{"_index":7186,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/TeamPermissionsBody.html":{},"classes/UserLoginMigrationMandatoryParams.html":{}}}],["isboolean()@apiproperty({description",{"_index":6925,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["isboolean()@isoptional()@apiproperty({description",{"_index":5380,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/MigrationBody.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":365,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["isbreakout",{"_index":2259,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["isbusinesserror",{"_index":8231,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isbusinesserror(error",{"_index":8237,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["ischoolexternaltoolproperties",{"_index":11682,"title":{"interfaces/ISchoolExternalToolProperties.html":{}},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["ischoolproperties",{"_index":11690,"title":{"interfaces/ISchoolProperties.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ischoolyearproperties",{"_index":11735,"title":{"interfaces/ISchoolYearProperties.html":{}},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["isclientidunique",{"_index":9230,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["isclientidunique(externaltool",{"_index":9235,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["iscolumnboardfeatureflagactive",{"_index":7918,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["iscopeinfo",{"_index":11741,"title":{"interfaces/IScopeInfo.html":{}},"body":{"interfaces/IScopeInfo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["iscopyfrom",{"_index":9695,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["iscoursefinished",{"_index":12013,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["iscreator",{"_index":16959,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["iscustomparameternameempty",{"_index":8640,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["iscustomparameternameempty(param",{"_index":8653,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdate",{"_index":999,"title":{},"body":{"classes/AccountSaveDto.html":{},"classes/CreateNewsParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{}}}],["isdate()@apiproperty",{"_index":18227,"title":{},"body":{"classes/SubmissionContainerContentBody.html":{}}}],["isdate()@isoptional()@apipropertyoptional({description",{"_index":6905,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isdefaultvalueofvalidregex",{"_index":8641,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidregex(param",{"_index":8655,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype",{"_index":8642,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdefaultvalueofvalidtype(param",{"_index":8657,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isdirectory",{"_index":9563,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["isdraft",{"_index":3738,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskScope.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["isemail",{"_index":473,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"injectables/AccountService.html":{},"classes/PatchMyAccountParams.html":{}}}],["isemail()@isoptional()@apiproperty({description",{"_index":16080,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["isemail(dto.username",{"_index":1115,"title":{},"body":{"injectables/AccountService.html":{}}}],["isemptyqueryallowed",{"_index":5898,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["isenabled",{"_index":16208,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["isenum",{"_index":1044,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CustomParameterPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PageContentQueryParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/ScanResultParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SystemFilterParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["isenum(accountsearchtype",{"_index":1045,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["isenum(accountsearchtype)@apiproperty({description",{"_index":1030,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["isenum(contentelementtype",{"_index":6850,"title":{},"body":{"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["isenum(contentelementtype)@apiproperty({description",{"_index":6858,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isenum(customparameterlocationparams",{"_index":7201,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterlocationparams)@apiproperty",{"_index":7189,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams",{"_index":7200,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparameterscopetypeparams)@apiproperty",{"_index":7195,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams",{"_index":7202,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(customparametertypeparams)@apiproperty",{"_index":7198,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["isenum(externaltoolsortby",{"_index":18149,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isenum(filerecordparenttype",{"_index":6125,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["isenum(filtermatchtype",{"_index":10352,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(filterroletype",{"_index":10353,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isenum(importusersortorder",{"_index":18152,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isenum(inputformat",{"_index":8033,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["isenum(inputformat)@apiproperty",{"_index":16740,"title":{},"body":{"classes/RichTextContentBody.html":{}}}],["isenum(languagetype",{"_index":4224,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["isenum(ltimessagetype",{"_index":14198,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltimessagetype)@apiproperty",{"_index":14191,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission",{"_index":14199,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(ltiprivacypermission)@apiproperty",{"_index":14193,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["isenum(newstargetmodel",{"_index":6920,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["isenum(newstargetmodel)@apiproperty({enum",{"_index":6913,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isenum(pagetypes",{"_index":16043,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["isenum(previewoutputmimetypes",{"_index":6140,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["isenum(previewwidth",{"_index":6142,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["isenum(sharetokenparenttype",{"_index":17877,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sharetokenparenttype)@apiproperty({description",{"_index":17872,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isenum(sortorder",{"_index":18157,"title":{},"body":{"classes/SortingParams.html":{}}}],["isenum(ssoauthenticationerror",{"_index":2010,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isenum(subjecttypeenum",{"_index":15274,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(subjecttypeenum)@isoptional()@apiproperty({description",{"_index":15260,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(systemtypeenum",{"_index":18618,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["isenum(tokenauthmethod",{"_index":15273,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenauthmethod)@isoptional()@apiproperty({description",{"_index":15265,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["isenum(tokenendpointauthmethod",{"_index":15185,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(tokenendpointauthmethod)@apiproperty",{"_index":15183,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype",{"_index":2632,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolconfigtype)@apiproperty",{"_index":2629,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isenum(toolcontexttype",{"_index":5671,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{}}}],["isenum(toolcontexttype)@apiproperty",{"_index":5727,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({nullable",{"_index":5668,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{}}}],["isenum(toolcontexttype)@apiproperty({type",{"_index":6013,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["isenum(videoconferencescope",{"_index":21222,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["iserv",{"_index":1136,"title":{},"body":{"injectables/AccountService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{}}}],["iserverconfig",{"_index":804,"title":{"interfaces/IServerConfig.html":{}},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AuthenticationService.html":{},"interfaces/IServerConfig.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["iservlogouturl",{"_index":15112,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('id_token_hint",{"_index":15114,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.searchparams.append('post_logout_redirect_uri",{"_index":15115,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservlogouturl.tostring",{"_index":15117,"title":{},"body":{"injectables/OAuthService.html":{}}}],["iservmapper",{"_index":12593,"title":{"classes/IservMapper.html":{}},"body":{"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternalschooldto(ldapschool",{"_index":12648,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservmapper.maptoexternaluserdto(ldapuser",{"_index":12646,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["iservprovisioningstrategy",{"_index":12610,"title":{"injectables/IservProvisioningStrategy.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["iservstrategy",{"_index":16320,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["isession",{"_index":15383,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["isexpert",{"_index":21273,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["isfeatherserror",{"_index":8232,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfeatherserror(error",{"_index":8239,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isfinished",{"_index":3739,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{}}}],["isfinishedforuser",{"_index":12015,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isfinishedforuser(user",{"_index":12007,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isflagged",{"_index":12518,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isflagged(flagged",{"_index":12537,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["isfulfilled",{"_index":21513,"title":{},"body":{"miscellaneous/functions.html":{}}}],["isfulfilled(input",{"_index":21581,"title":{},"body":{"miscellaneous/functions.html":{}}}],["isglobal",{"_index":8708,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid",{"_index":8643,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isglobalparametervalid(customparameter",{"_index":8659,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isgraceperiodexpired",{"_index":4446,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraceperiodexpired(userloginmigration",{"_index":4454,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["isgraded",{"_index":11839,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isgradedforuser",{"_index":11842,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isgradedforuser(user",{"_index":11840,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isgroup",{"_index":7313,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["isguest",{"_index":21087,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["isharetokenproperties",{"_index":11764,"title":{"interfaces/IShareTokenProperties.html":{}},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{}}}],["ishidden",{"_index":6991,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/LessonScope.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ishydra",{"_index":11039,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["isinstancealive",{"_index":10834,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["isinstanceofloggable",{"_index":14066,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isinstanceofloggable(object",{"_index":14071,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["isint",{"_index":5419,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["isint()@isoptional()@apiproperty({description",{"_index":5387,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["isint()@isoptional()@ispositive()@apiproperty({description",{"_index":17867,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["isint()@min(0)@apipropertyoptional({description",{"_index":1040,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["isint()@min(1)@max(100)@apipropertyoptional({description",{"_index":1034,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{}}}],["islatest",{"_index":5287,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islatest(tool1",{"_index":5291,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["islesson",{"_index":3023,"title":{},"body":{"injectables/BoardCopyService.html":{},"miscellaneous/functions.html":{}}}],["islesson(element.target",{"_index":3056,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["islesson(reference",{"_index":11358,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"miscellaneous/functions.html":{}}}],["islisteningonly",{"_index":2273,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["islocal",{"_index":6981,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"injectables/HydraSsoService.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{}}}],["islocale",{"_index":14197,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islocale()@apiproperty",{"_index":14189,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["islti11config",{"_index":8321,"title":{},"body":{"classes/ExternalTool.html":{}}}],["islti11config(config",{"_index":8332,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["ismandatory",{"_index":17596,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ismarked",{"_index":9898,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["ismarkedfordeletion",{"_index":9626,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ismatched",{"_index":3360,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ismember",{"_index":11821,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["ismongoid",{"_index":1000,"title":{},"body":{"classes/AccountSaveDto.html":{},"classes/BoardUrlParams.html":{},"classes/CardIdsParams.html":{},"classes/CardUrlParams.html":{},"classes/ColumnUrlParams.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseUrlParams.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardUrlParams.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterNewsParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/NewsUrlParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/PageContentQueryParams.html":{},"classes/PatchOrderParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["ismongoid()@apiproperty",{"_index":5711,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{},"classes/SystemIdParams-1.html":{},"classes/TeamRoleDto.html":{}}}],["ismongoid()@apiproperty({description",{"_index":3834,"title":{},"body":{"classes/BoardUrlParams.html":{},"classes/CardUrlParams.html":{},"classes/ColumnUrlParams.html":{},"classes/ContentElementUrlParams.html":{},"classes/CourseUrlParams.html":{},"classes/DashboardUrlParams.html":{},"classes/ImportUserUrlParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/MoveColumnBodyParams.html":{},"classes/NewsUrlParams.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SchoolParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"classes/SystemIdParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{}}}],["ismongoid()@apiproperty({nullable",{"_index":5708,"title":{},"body":{"classes/ContextExternalToolIdParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams.html":{}}}],["ismongoid()@apiproperty({pattern",{"_index":6910,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/ImportUserResponse.html":{}}}],["ismongoid()@apiproperty({required",{"_index":14561,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["ismongoid({each",{"_index":4081,"title":{},"body":{"classes/CardIdsParams.html":{}}}],["isnameunique",{"_index":8644,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnameunique(externaltool",{"_index":8661,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isnan",{"_index":5334,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnan(number(val",{"_index":5332,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isnesthttpexception",{"_index":8233,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnesthttpexception(error",{"_index":8242,"title":{},"body":{"classes/ErrorUtils.html":{}}}],["isnextcloud",{"_index":15593,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool",{"_index":15577,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnextcloudtool(tool",{"_index":15582,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["isnotcontained",{"_index":2740,"title":{},"body":{"entities/Board.html":{}}}],["isnotempty",{"_index":1001,"title":{},"body":{"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CustomParameterPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isnotemptystring",{"_index":18209,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnotemptystring(value",{"_index":18210,"title":{},"body":{"classes/StringValidator.html":{}}}],["isnumber",{"_index":3436,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["isnumber()@isoptional()@apiproperty({description",{"_index":5414,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["isnumber()@min(0)@apiproperty",{"_index":3433,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@apiproperty({required",{"_index":14563,"title":{},"body":{"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty",{"_index":3430,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["isnumber()@min(0)@isoptional()@apiproperty({description",{"_index":13983,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isnumber()@min(0)@isoptional()@apipropertyoptional({description",{"_index":14577,"title":{},"body":{"classes/MoveElementPositionParams.html":{}}}],["isnumber()@min(0)@max(500)@isoptional()@apiproperty({description",{"_index":13979,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["isoauth2config",{"_index":8322,"title":{},"body":{"classes/ExternalTool.html":{}}}],["isoauth2config(config",{"_index":8334,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["isoauthconfigavailable",{"_index":12196,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["isoauthprovisioningenabledforschool",{"_index":15040,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15062,"title":{},"body":{"injectables/OAuthService.html":{}}}],["isolate",{"_index":23028,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["isolated",{"_index":22790,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isolation",{"_index":22726,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["isopen",{"_index":6602,"title":{},"body":{"classes/CourseFactory.html":{}}}],["isoptional",{"_index":471,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/BoardLessonResponse.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PatchMyAccountParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/SystemFilterParams.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["isoptional()@apiproperty",{"_index":5440,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@apiproperty({description",{"_index":5431,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/LoginResponse-1.html":{}}}],["isoptional()@isboolean",{"_index":600,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@isboolean()@apiproperty",{"_index":17210,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isboolean()@apiproperty({description",{"_index":458,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isboolean()@stringtoboolean()@apipropertyoptional({description",{"_index":10362,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/PreviewParams.html":{}}}],["isoptional()@isdate",{"_index":604,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@isdate()@apipropertyoptional({description",{"_index":19975,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isenum(externaltoolsortby)@apipropertyoptional({enum",{"_index":18145,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["isoptional()@isenum(filterroletype)@apipropertyoptional({enum",{"_index":10346,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isenum(importusersortorder)@apipropertyoptional({enum",{"_index":18151,"title":{},"body":{"classes/SortImportUserParams.html":{}}}],["isoptional()@isenum(sortorder)@apipropertyoptional({enum",{"_index":18147,"title":{},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["isoptional()@isenum(ssoauthenticationerror",{"_index":2002,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isint()@min(0)@apipropertyoptional({description",{"_index":6855,"title":{},"body":{"classes/CreateContentElementBodyParams.html":{}}}],["isoptional()@ismongoid",{"_index":610,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["isoptional()@ismongoid()@apipropertyoptional({pattern",{"_index":10357,"title":{},"body":{"classes/FilterNewsParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/TaskCopyApiParams.html":{}}}],["isoptional()@isstring",{"_index":602,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@apiproperty",{"_index":17212,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["isoptional()@isstring()@apiproperty({description",{"_index":17955,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["isoptional()@isstring()@isemail()@apiproperty({description",{"_index":465,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["isoptional()@isstring()@isenum(newstargetmodel)@apipropertyoptional({enum",{"_index":10360,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["isoptional()@isstring()@isnotempty",{"_index":1999,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["isoptional()@isstring()@isnotempty()@apipropertyoptional({type",{"_index":10332,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["isoptional()@isstring()@sanitizehtml()@apipropertyoptional({description",{"_index":19977,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoptional()@isstring()@sanitizehtml(inputformat.rich_text)@apipropertyoptional({description",{"_index":19973,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["isoutdated",{"_index":17657,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserScope.html":{}}}],["isoutdated(isoutdated",{"_index":20754,"title":{},"body":{"classes/UserScope.html":{}}}],["isoutdated(query.isoutdated",{"_index":20102,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["isowner",{"_index":20749,"title":{},"body":{"injectables/UserRule.html":{}}}],["ispending",{"_index":9778,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isplanned",{"_index":12017,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{}}}],["ispositive",{"_index":17855,"title":{},"body":{"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["ispositive()@apiproperty({required",{"_index":17853,"title":{},"body":{"classes/SetHeightBodyParams.html":{}}}],["ispossible",{"_index":17597,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["ispresenter",{"_index":2272,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["ispropertyprivacyprotected",{"_index":8129,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["ispropertyprivacyprotected(target",{"_index":8141,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["isprotecteduser",{"_index":20806,"title":{},"body":{"injectables/UserService.html":{}}}],["ispublished",{"_index":12016,"title":{},"body":{"interfaces/ITaskParent.html":{},"injectables/NewsUc.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["isregexcommentmandatoryandfilled",{"_index":8645,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexcommentmandatoryandfilled(customparameter",{"_index":8663,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid",{"_index":8646,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["isregexvalid(param",{"_index":8665,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["iss",{"_index":6864,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{}}}],["issatisfiedby(t",{"_index":22694,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["isschoolnumberunique",{"_index":17696,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isschoolnumberunique(school",{"_index":17698,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["isslash",{"_index":1759,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isslash(inputpath",{"_index":1757,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["isstring",{"_index":470,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchQueryParams.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/ChallengeParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseQueryParams.html":{},"classes/CreateNewsParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterPostParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/IdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PreviewParams.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleFileParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UserLoginMigrationSearchParams.html":{},"miscellaneous/functions.html":{}}}],["isstring()@apiproperty",{"_index":2627,"title":{},"body":{"classes/BasicToolConfigParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/RichTextContentBody.html":{}}}],["isstring()@apiproperty({description",{"_index":479,"title":{},"body":{"classes/AccountByIdParams.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ChallengeParams.html":{},"classes/IdParams.html":{},"classes/ImportUserResponse.html":{},"classes/PatchMyAccountParams.html":{},"classes/RevokeConsentParams.html":{},"classes/ShareTokenUrlParams.html":{}}}],["isstring()@apiproperty({required",{"_index":16622,"title":{},"body":{"classes/RenameBodyParams.html":{}}}],["isstring()@ismongoid()@isoptional()@apipropertyoptional({description",{"_index":18894,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@isnotempty",{"_index":614,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthorizationParams.html":{}}}],["isstring()@isnotempty()@apiproperty",{"_index":7184,"title":{},"body":{"classes/CustomParameterPostParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{}}}],["isstring()@isoptional()@apiproperty({description",{"_index":5394,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/PatchMyAccountParams.html":{}}}],["isstring()@isoptional()@apipropertyoptional",{"_index":5729,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["isstring()@isoptional()@sanitizehtml(inputformat.rich_text_ck5)@apipropertyoptional({description",{"_index":18896,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@matches(undefined)@apiproperty({description",{"_index":6764,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["isstring()@sanitizehtml()@apiproperty({description",{"_index":6916,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/PatchGroupParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["isstring()@sanitizehtml(inputformat.rich_text)@apiproperty({description",{"_index":6903,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["isstring(value",{"_index":18212,"title":{},"body":{"classes/StringValidator.html":{}}}],["isstudent",{"_index":6788,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["issubmitted",{"_index":11819,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["issubmittedforuser",{"_index":11824,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["issubmittedforuser(user",{"_index":11820,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["issubstitutionteacher",{"_index":3740,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"entities/Course.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["issuer",{"_index":1691,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["issues",{"_index":22413,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["istanbul",{"_index":3058,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/S3ClientAdapter.html":{},"classes/ShareTokenFactory.html":{}}}],["istask",{"_index":3024,"title":{},"body":{"injectables/BoardCopyService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["istask(element.target",{"_index":3052,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["istask(reference",{"_index":12065,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{}}}],["isteacher",{"_index":6789,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["isteamuser",{"_index":19337,"title":{},"body":{"injectables/TeamRule.html":{}}}],["istemplate",{"_index":6980,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["istoolstatuslatestorthrow",{"_index":19802,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istoolstatuslatestorthrow(userid",{"_index":19809,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["istorageproviderproperties",{"_index":11775,"title":{"interfaces/IStorageProviderProperties.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["isubmissionproperties",{"_index":11788,"title":{"interfaces/ISubmissionProperties.html":{}},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{}}}],["isuniqueemail",{"_index":1223,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemail(email",{"_index":1227,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount",{"_index":1224,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforaccount(email",{"_index":1229,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser",{"_index":1225,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isuniqueemailforuser(email",{"_index":1231,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["isurl",{"_index":20953,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["isuserinfinisheduser",{"_index":12010,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isuserreferenced",{"_index":1896,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isuserreferenced(user",{"_index":1907,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["isusersubmitter(user",{"_index":11836,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["isusersubstitutionteacher(user",{"_index":6455,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["isusersubstitutionteacherincourse(user",{"_index":12039,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["isvalid",{"_index":3264,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["isvaluevalidfortype",{"_index":5310,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isvaluevalidfortype(type",{"_index":5327,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["isverified",{"_index":9779,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["isvideoconferencefeatureenabled",{"_index":21236,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["isvisible",{"_index":13923,"title":{},"body":{"injectables/LessonRule.html":{}}}],["iswhitelisted",{"_index":12713,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["iswhitelisted(accountid",{"_index":12720,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["isystemproperties",{"_index":11843,"title":{"interfaces/ISystemProperties.html":{}},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{}}}],["it's",{"_index":22759,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["it(\"should",{"_index":22725,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('bad",{"_index":22763,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('good",{"_index":22765,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["it('should",{"_index":22826,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["itargetgroupproperties",{"_index":11546,"title":{"interfaces/ITargetGroupProperties.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["itask",{"_index":11949,"title":{"interfaces/ITask.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{}}}],["itaskcreate",{"_index":11953,"title":{"interfaces/ITaskCreate.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{}}}],["itaskparent",{"_index":6408,"title":{"interfaces/ITaskParent.html":{}},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["itaskproperties",{"_index":11954,"title":{"interfaces/ITaskProperties.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{}}}],["itaskstatus",{"_index":3733,"title":{"interfaces/ITaskStatus.html":{}},"body":{"classes/BoardTaskStatusMapper.html":{},"classes/DtoCreator.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"injectables/RoomBoardDTOFactory.html":{},"entities/Task.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{}}}],["itaskupdate",{"_index":11952,"title":{"interfaces/ITaskUpdate.html":{}},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{}}}],["iteamproperties",{"_index":12066,"title":{"interfaces/ITeamProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{}}}],["iteamuserproperties",{"_index":12071,"title":{"interfaces/ITeamUserProperties.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["item",{"_index":3187,"title":{},"body":{"interfaces/BoardDoBuilder.html":{},"controllers/BoardSubmissionController.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"injectables/LessonCopyService.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["item.'})@apiresponse({status",{"_index":3696,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["item.body.params.ts",{"_index":6924,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.body.params.ts:10",{"_index":6928,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["item.columnboardid",{"_index":4848,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["item.component",{"_index":13772,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["item.content",{"_index":13773,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["item.content.text",{"_index":13774,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["item.do",{"_index":2883,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"injectables/SubmissionItemFactory.html":{}}}],["item.do.ts",{"_index":18292,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["item.do.ts:10",{"_index":18298,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:14",{"_index":18299,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:18",{"_index":18301,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.do.ts:6",{"_index":18296,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["item.factory.ts",{"_index":18311,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.factory.ts:7",{"_index":18312,"title":{},"body":{"injectables/SubmissionItemFactory.html":{}}}],["item.name.tolocalelowercase",{"_index":8699,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["item.response.ts",{"_index":18321,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:14",{"_index":18325,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:17",{"_index":18326,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:20",{"_index":18324,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:23",{"_index":18328,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.response.ts:5",{"_index":18323,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["item.service",{"_index":8091,"title":{},"body":{"injectables/ElementUc.html":{}}}],["item.service.ts",{"_index":18343,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:11",{"_index":18344,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:14",{"_index":18346,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:24",{"_index":18345,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.service.ts:44",{"_index":18348,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["item.split(';')[0",{"_index":11061,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["item.uc",{"_index":2772,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["item.uc.ts",{"_index":18355,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:21",{"_index":18362,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:42",{"_index":18369,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:59",{"_index":18366,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:75",{"_index":18364,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:87",{"_index":18360,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.uc.ts:9",{"_index":18359,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item.url.params.ts",{"_index":18387,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.url.params.ts:11",{"_index":18388,"title":{},"body":{"classes/SubmissionItemUrlParams.html":{}}}],["item.userid",{"_index":18377,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["item/create",{"_index":6923,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{}}}],["item/submission",{"_index":18247,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["item/update",{"_index":19979,"title":{},"body":{"classes/UpdateSubmissionItemBodyParams.html":{}}}],["itemindex",{"_index":8696,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["items",{"_index":1019,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/CardResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"interfaces/CustomLtiProperty.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/ImportUserListResponse.html":{},"entities/LtiTool.html":{},"classes/NewsListResponse.html":{},"classes/PaginationResponse.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["items.map((item",{"_index":3706,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["itemsperpage",{"_index":10749,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["itoolfeatures",{"_index":8359,"title":{"interfaces/IToolFeatures.html":{}},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/IToolFeatures.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/ToolConfiguration.html":{}}}],["itoollaunchparams",{"_index":155,"title":{"interfaces/IToolLaunchParams.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["itoollaunchstrategy",{"_index":212,"title":{"interfaces/IToolLaunchStrategy.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/ToolLaunchService.html":{}}}],["itself",{"_index":5999,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["iupdatenews",{"_index":11379,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["iuserconfig",{"_index":11748,"title":{"interfaces/IUserConfig.html":{}},"body":{"interfaces/IServerConfig.html":{},"interfaces/IUserConfig.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["iuserloginmigration",{"_index":20223,"title":{},"body":{"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["iuserproperties",{"_index":12097,"title":{"interfaces/IUserProperties.html":{}},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"classes/UserFactory.html":{}}}],["ivborw0kggoaaaansuheugaaafqaaadicayaaaaegrpoaaaagxrfwhrtb2z0d2fyzqbbzg9izsbjbwfnzvjlywr5ccllpaaaaynpvfh0we1momnvbs5hzg9izs54bxaaaaaaadw/ehbhy2tldcbizwdpbj0i77u/iibpzd0ivzvnme1wq2voauh6cmvtek5uy3pryzlkij8+idx4onhtcg1ldgegeg1sbnm6ed0iywrvymu6bnm6bwv0ys8iihg6eg1wdgs9ikfkb2jlifhnucbdb3jliduuni1jmtqwidc5lje2mdq1mswgmjaxny8wns8wni0wmtowodoymsagicagicagij4gphjkzjpsreygeg1sbnm6cmrmpsjodhrwoi8vd3d3lnczlm9yzy8xotk5lzaylziylxjkzi1zew50yxgtbnmjij4gphjkzjpezxnjcmlwdglvbibyzgy6ywjvdxq9iiigeg1sbnm6eg1wpsjodhrwoi8vbnmuywrvymuuy29tl3hhcc8xljaviib4bwxuczp4bxbntt0iahr0cdovl25zlmfkb2jllmnvbs94yxavms4wl21tlyigeg1sbnm6c3rszwy9imh0dha6ly9ucy5hzg9izs5jb20vegfwlzeumc9zvhlwzs9szxnvdxjjzvjlzimiihhtcdpdcmvhdg9yvg9vbd0iqwrvymugughvdg9zag9wiendichnywnpbnrvc2gpiib4bxbnttpjbnn0yw5jzulepsj4bxauawlkojq2muq2q0y5rtqxmtexrtdbmtg3qkq2mdvgmufemuiwiib4bxbnttpeb2n1bwvudelepsj4bxauzglkojq2muq2q0zbrtqxmtexrtdbmtg3qkq2mdvgmufemuiwij4gphhtce1nokrlcml2zwrgcm9tihn0umvmomluc3rhbmnlsuq9inhtcc5pawq6ndyxrdzdrjdfndexmtffn0exoddcrdywnuyxquqxqjaiihn0umvmomrvy3vtzw50suq9inhtcc5kawq6ndyxrdzdrjhfndexmtffn0exoddcrdywnuyxquqxqjailz4gpc9yzgy6rgvzy3jpchrpb24+idwvcmrmoljerj4gpc94onhtcg1ldge+idw/ehbhy2tldcblbmq9iniipz45ejsraaalfuleqvr42uzdgxwjoaigyhlvgsiv4cnbu4jtgqeepis4hksepis4blseu4rjcemscmhgzpplkycmago+7z3ezs3tysus+beicfx29lyaaop2hz8baah0aecgawachqaq6aag0aeagq4achqaqkadgeahaaq6acdqaqcbdgachqaq6acaqacabdoachqaqkadaaidabdoacdqaqcbdgaidabaoaoaqacabdoainabaieoaaidabdoaibabwaeogaidabaoamaah0aeogainabaieoaah0aecga4babwaeogag0aeagq4achqaeogageahaaq6acdqaucgawachqaq6acaqacagq4achqaqkadaaidaaq6acdqaqcbdgaidaaq6acaqacabdoainabqkadaaidabdoaibabwcbdgaidabaoamaah0abdoainabgn79109abldxv9flpxblnov/doblfv7+ug77+hfvn39vb29vb78emdpg1faup2idwwvcgm3883ambbas6/yorpp414ujf+w4z+2r/12wdasol6zdl4ufa4fdvgu0gyp/x6styjd0jx8a/03gogn1cvtuyxn3eq4267cv3+t16u2jhz701lfb6dealngbt2ydz+ccddheq7lottznizy11pvahv6aeohj3erhgp12ltujzrj6e28y1cw8g/p4cgeqkbephvpq522jp3lmynvjwwe/2rbbjsq66kht/wwn4+pw3jt76lq9o76nb5jco+gw35/l/p/ijxx43/auy+2+cqpmu7+o+9zfzzihsj511nf+bmr5gt/jltz1oeicnbzh/lt8c0+rc1wwl/3ivlvkvcu3h44/krtth/lzdvfy8bblxxquej8f+6b8zieut6snviccnxm/oc5jmpchdmixqzxlk3qiustov3d8inkc6c0hkoum45pmj9zhyj+pq4hozr9qr08i8zbrzru3u4rjcs9+fwhe44nkryewu/gd+ijr04blrrzu4xh4bi1t3camgmkb4lh4m4n2/0gnrh5jqwbr1u3vzmntwrxhefszuep7ez1+tcu2v9lr+2syagv3mvcfteumzb0vml1ifz0q6/74kzf3za3km/lb/cjd56zuh4oyyuy/1nnpzhknfe9fnd/9jqr0g/1vk1d+frk/hym2d+3vx7o7g83ybtggm86ydn1g1lfzlw3lumy4/9df7mv68vwdjrbpc3sbnrlt7lru//2bztekuwv0y2t/myb+jr6kh9q0lzjk2yv+1q6jx7dsy3qf4xe9/2c/t+rqy2tmq91lrcewv4zcf/8txmzzqz2ish+sirsvvzv2ei/bhgv1uuzrzduyqjls1upyenu+doj7+f78s+lay/l3z+pwnaq6wqm9x4pt8udzi3tki7vhrdn7rovee753uyiotr+7xec4zzutpd45kvim+e3old1ih/sew3yldgu609hb4zpnvty0vugzpd11maqmgbbp6a+5rngpiwxdd1dwqxdhpse6fohc1ijkqm7khnnvjvjxhv0iroqrrxwxf2/btvty1tnazvwhap2jqesyvnqjl5s2toryc8thv1luvbd9rvk2od+t1ofz16faz3tqll89xpjktpq2srtociphtm/lswyeeaz1n7psukzpfzrvhqp0pqwuu4rovlnulzjotfue7c9drsfvu/dz8xytq5yzpl8ddluhap1rspmo9ntp2pjmpnv31tlb3vwefc8j1nwg7/yz2zmvvr0kdkygph+aelyddlrh5u6vmtq3mdxdjidhgkx7bvchepyj7x30zvwhap38fmx4vxwwbtj8t3a/quncd4sy7uhfcchgx2laz1q1n7sxl0d3a3ynbcvvpkayqsmr8niwtjrtlym4zew99y1j1wszsivjdnwljdywkihrejegd2mqa3inezhpenlzl2/uoudnckp9utxgfewe1ycguxpy2cgm2eogp4/tevvysbktm9a95bqtzcujzv10wnb5ucpokdxhoxhjnvahxqqt2td0ifrnqpnm+zszrkkoeegmeorhunl4mcoqc7chuxu4z/5kljyaqkefud8cvsutbhvos2nhefanugcevbvqhqp0livyyy0e+++3nxv5zrkgy/avfuhjtkpatq4gevyx9nnxcyqrohtozlqto8vvb9tntx16h99rhil9f8wfe+1tan5xse8tpvmdcxeuj1rwdsjq4dor+/oo4mmiprzwsonceladm9ajbc3/p8tobthyo5/6381o7hc3qsf6rtcvsjlshqp0jhvwr2ggfln9ikp31al1ks974dkc1ys04onkouv3hkvz1afahzaj92pcxcqz55aonybajtp7vgebej7bjso61pegtkkobtq8c/a7hfc3vow0pnyo6fonfnwfty3votjf9szkqg4fomrrdy9v4seaxgleqidc9jfyja8c7uxfi4kvdbkd2yh9snuo0ohzg8dwl0hiafapyy8q77vwpv1xknqhqd2vqfa9htthwdehqgecqiejz73q1cldomdwtvlq+nhgekj1i8jhtpdq4zlkdftyjq3ptakobtpjfl7d+htf6jtbv4+mervbtkq8tvxqrdcfzyel+vuuhyjtmmekx8syztxh2dahqgd0o/pqsaqdsng2fjprpljcz1chrfc1mllresotmkeco7zeimg6sotpe9s173cyu+ngxuvzdsjqmv6y337qscjetv2mzlh3p80ifxruirr1csio76xn4kphhdkcocygwtagco6y1gnle8nr38jop5z3qq4fotmk88uxgxsdo2n47elt0w4z78m/fpwz2ndqynkj9dbqtv3jlartaionvhwmiracclekpukrwulhb2uni9nugpnb307py3eem1pedtigy3t5q08tldzfvxzcbrgv7zl4j59a3njfblm0wwv5oy6ow7ru+y/2u4xn03x73na9fv05ty9lbn+n/i7xyn10zsa6aooxhr6qe8jiz2xmamsyqg37upmstweqm5ctvlnv1tfjl6mclbw6nbuogq7nkkvdt6kobbpap+dav46b3uze26h455l5rgi+smz3rjugqd/fqi/fofw+afd6cyjm/s2xci95lbfsk6jdibjktuob+bbfrnlmflo1lnljeujpdykdkmbtmnylxq308b0fqryfhqtrq86+/n1jomeyt6kobtpjokcu4ogmz9nmz5c0cyxwbfaxtse+zyahs9jf+gyco+wqhwi/dszvwh0kdc77gbo6xvci/s1pbaziqq3et8huf/q0hdhdxverhgyqaxv+fqtraxzb/ui6vfoqq4hour9qj9+stupgxl6pbxyjc+pgsddf/uwcd7fdf4urua1+ahnved0v3vwdc79fcpfvxxpq1og4mbt37wzmutzp5vng3zb889tnsmmlvnvxl/rg1d4uuf118tvgryluy/ubtwh/29ggd2dcdzn62j6w9tk+vnyo5zpmhqp0xhqw1amk1+8csvrz69fiyxv/vj1ab6ttykgmx87ftb3j9lc9etha9hf7wlxw2qdl3cdyjqqsu6pdgq4a/oueogaidabaoamaah0aeogainabaieoaah0aecga4babwaeogag0aeagq4aah0aeogageahaaq6aah0aecgawachqaq6aag0aeagq4achqaqkadgeahaaq6acdqaqcbdgachqaq6acaqacabdoachqaqkadaaidabdoacdqaqcbdgaidabaoaoaqacabdoainabaieoaah0abdoaibabwaeogag0afaoamaah0aeogageahaieoaah0aecgawachqaeogag0aeagq4achqaeogageahaaq6acdqaucgawachqaq6acaqacagq4achqaqkadaaidaaq6acdqayd+/v+aaqadxuxs75wqpqaaaabjru5erkjggg",{"_index":7173,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ivideoconferenceproperties",{"_index":20849,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["ivideoconferencesettings",{"_index":12119,"title":{"interfaces/IVideoConferenceSettings.html":{}},"body":{"interfaces/IVideoConferenceSettings.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceService.html":{}}}],["javascript",{"_index":2325,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BsonConverter.html":{}}}],["jest",{"_index":19438,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["jest.config.ts",{"_index":22422,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["jest.fn",{"_index":22837,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.resetallmocks",{"_index":22815,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.restoreallmocks",{"_index":22823,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jest.spyon",{"_index":22834,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["jira",{"_index":21639,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["job",{"_index":7778,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"modules/FilesModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["job_init_idm.yml.j2",{"_index":13161,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["john",{"_index":18338,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["john${sequence",{"_index":12353,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["join",{"_index":2230,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["join(config",{"_index":2319,"title":{},"body":{"injectables/BBBService.html":{}}}],["join(currentuser",{"_index":20902,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["join(currentuserid",{"_index":21103,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.config",{"_index":2242,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["join.config.ts",{"_index":2208,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:18",{"_index":2213,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:20",{"_index":2216,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:22",{"_index":2217,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:24",{"_index":2214,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:26",{"_index":2215,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.config.ts:8",{"_index":2212,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["join.response.ts",{"_index":2247,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["join.response.ts:5",{"_index":21100,"title":{},"body":{"classes/VideoConferenceJoinResponse.html":{}}}],["join.ts",{"_index":21095,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:5",{"_index":21098,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:7",{"_index":21097,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.ts:9",{"_index":21096,"title":{},"body":{"classes/VideoConferenceJoin.html":{}}}],["join.uc.ts",{"_index":21101,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:11",{"_index":21102,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["join.uc.ts:18",{"_index":21104,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder",{"_index":21106,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.asguest(true",{"_index":21113,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joinbuilder.withrole(bbbrole.moderator",{"_index":21111,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["joining",{"_index":20905,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["joinpath",{"_index":9962,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(...paths",{"_index":9983,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["joinpath(path",{"_index":3584,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["joins",{"_index":21169,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["jose",{"_index":21413,"title":{},"body":{"dependencies.html":{}}}],["jpeg",{"_index":8621,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["js",{"_index":6414,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/OidcProvisioningService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["json",{"_index":1708,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/TestApiClient.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["json.parse(data",{"_index":13243,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["json.parse(filecontent",{"_index":11195,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.parse(json.stringify(originalelement",{"_index":13824,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["json.replace",{"_index":11255,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.replace(/\\\\\\$/g",{"_index":11259,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify",{"_index":11163,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(collections",{"_index":7677,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["json.stringify(e.constraints",{"_index":8158,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["json.stringify(payload",{"_index":2665,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["json.stringify(response.body",{"_index":1777,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["json.stringify(signedpayload",{"_index":14258,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["json.stringify(sortedbsondocuments",{"_index":11222,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["json.stringify(where",{"_index":17762,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["jsondocuments",{"_index":3861,"title":{},"body":{"injectables/BsonConverter.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["jsondocuments.length",{"_index":7750,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["jsonwebtoken",{"_index":1648,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"interfaces/CreateJwtParams.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"dependencies.html":{}}}],["jti",{"_index":1827,"title":{},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{}}}],["jwks",{"_index":15210,"title":{},"body":{"injectables/OauthAdapterService.html":{},"classes/OauthConfigResponse.html":{},"dependencies.html":{}}}],["jwksendpoint",{"_index":11077,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["jwksrsa",{"_index":15209,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.jwksclient",{"_index":15213,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksrsa.signingkey",{"_index":15214,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwksuri",{"_index":15203,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["jwt",{"_index":1683,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/CreateJwtParams.html":{},"injectables/HydraOauthUc.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/LocalStrategy.html":{},"classes/OAuthProcessDto.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/TestApiClient.html":{},"controllers/UserLoginMigrationController.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["jwt.decode(input.idtoken",{"_index":12630,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["jwt.decode(jwttoken",{"_index":1834,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwt.sign",{"_index":6881,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwt.verify(idtoken",{"_index":15107,"title":{},"body":{"injectables/OAuthService.html":{}}}],["jwt=${jwt",{"_index":10975,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["jwtauthguard",{"_index":12659,"title":{"injectables/JwtAuthGuard.html":{}},"body":{"injectables/JwtAuthGuard.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["jwtconstants",{"_index":1649,"title":{"interfaces/JwtConstants.html":{}},"body":{"modules/AuthenticationModule.html":{},"interfaces/JwtConstants.html":{},"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions",{"_index":12702,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtconstants.jwtoptions.algorithm",{"_index":1686,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.audience",{"_index":1688,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.expiresin",{"_index":1690,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.header",{"_index":1694,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.jwtoptions.issuer",{"_index":1692,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtconstants.secret",{"_index":1697,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor",{"_index":12677,"title":{"classes/JwtExtractor.html":{}},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{}}}],["jwtextractor.fromcookie('jwt",{"_index":12699,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequest",{"_index":12696,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["jwtfromrequestfunction",{"_index":12683,"title":{},"body":{"classes/JwtExtractor.html":{}}}],["jwtfromresponse",{"_index":1754,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["jwtid",{"_index":1831,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtmodule",{"_index":1636,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmodule.register(jwtmoduleoptions",{"_index":1699,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtmoduleoptions",{"_index":1637,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["jwtoptions",{"_index":12665,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["jwtpayload",{"_index":1813,"title":{"interfaces/JwtPayload.html":{}},"body":{"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["jwtpayload.accountid",{"_index":6950,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.roles",{"_index":6952,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.schoolid",{"_index":6953,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.support",{"_index":6956,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.systemid",{"_index":6951,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtpayload.userid",{"_index":6954,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwtservice",{"_index":1789,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtstrategy",{"_index":1628,"title":{"injectables/JwtStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtStrategy.html":{}}}],["jwttestfactory",{"_index":6877,"title":{"classes/JwtTestFactory.html":{}},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["jwttoicurrentuser",{"_index":6932,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoicurrentuser(jwtpayload",{"_index":6935,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["jwttoken",{"_index":1804,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["jwtvalidationadapter",{"_index":1629,"title":{"injectables/JwtValidationAdapter.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["k",{"_index":1899,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["kann",{"_index":4773,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["kc",{"_index":12801,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.clients.addprotocolmapper",{"_index":12974,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.create(cr",{"_index":12950,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.find",{"_index":12804,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.getclientsecret",{"_index":12806,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kc.clients.listprotocolmappers",{"_index":12966,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.update",{"_index":12951,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.clients.updateprotocolmapper",{"_index":12971,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.create",{"_index":12985,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.createmapper",{"_index":12996,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.del",{"_index":12990,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.find",{"_index":12953,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.findmappers",{"_index":12991,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.update",{"_index":12988,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.identityproviders.updatemapper",{"_index":12992,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realmname",{"_index":12918,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.makerequest",{"_index":12914,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["kc.realms.update",{"_index":12808,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["kc.users.count",{"_index":13121,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create",{"_index":13096,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.create(idmuserrepresentation",{"_index":13199,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.del",{"_index":13237,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["kc.users.del(id",{"_index":13106,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.find",{"_index":13122,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kc.users.find()).filter((user",{"_index":13230,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["kc.users.findone",{"_index":13132,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.resetpassword",{"_index":13103,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["kc.users.update",{"_index":13137,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadmin",{"_index":12860,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["kcadminclient",{"_index":12778,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["kcadminservice",{"_index":13046,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["kcsettings",{"_index":12776,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.baseurl",{"_index":12792,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kcsettings.realmname",{"_index":12793,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kebab",{"_index":22896,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["keep",{"_index":11204,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/StorageProviderEncryptedStringType.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["keepdiscriminatorproperty",{"_index":8040,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["keeps",{"_index":22371,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["kennung",{"_index":17239,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{}}}],["kernel",{"_index":21803,"title":{},"body":{"license.html":{}}}],["key",{"_index":2076,"title":{},"body":{"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/CopyHelperService.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"injectables/DeleteFilesUc.html":{},"modules/EncryptionModule.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/NewsUc.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"injectables/S3ClientAdapter.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["key.getpublickey",{"_index":15216,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["keycloak",{"_index":773,"title":{"additional-documentation/nestjs-application/keycloak.html":{}},"body":{"injectables/AccountLookupService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/IdentityManagementModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["keycloak/keycloak",{"_index":12755,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/OidcIdentityProviderMapper.html":{},"dependencies.html":{}}}],["keycloak/keycloak.module",{"_index":12190,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak/service/keycloak",{"_index":12192,"title":{},"body":{"modules/IdentityManagementModule.html":{}}}],["keycloak:/tmp/realms",{"_index":22969,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["keycloakadminclient",{"_index":12754,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakadministration",{"_index":12740,"title":{"classes/KeycloakAdministration.html":{}},"body":{"classes/KeycloakAdministration.html":{}}}],["keycloakadministrationmodule",{"_index":12183,"title":{"modules/KeycloakAdministrationModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules.html":{}}}],["keycloakadministrationservice",{"_index":12752,"title":{"injectables/KeycloakAdministrationService.html":{}},"body":{"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloakadministrationservice.authorization_timebox_ms",{"_index":12815,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["keycloakconfigservice",{"_index":13012,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfiguration",{"_index":12758,"title":{"classes/KeycloakConfiguration.html":{}},"body":{"modules/KeycloakAdministrationModule.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloakinputfiles",{"_index":12842,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{}}}],["keycloakconfiguration.keycloaksettings",{"_index":12761,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{}}}],["keycloakconfigurationinputfiles",{"_index":11511,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloakconfigurationmodule",{"_index":12822,"title":{"modules/KeycloakConfigurationModule.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"modules/ManagementModule.html":{},"modules.html":{}}}],["keycloakconfigurationservice",{"_index":12827,"title":{"injectables/KeycloakConfigurationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["keycloakconfigurationuc",{"_index":11570,"title":{"injectables/KeycloakConfigurationUc.html":{}},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakconsole",{"_index":11581,"title":{"classes/KeycloakConsole.html":{}},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakconsole.retryflags",{"_index":11597,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["keycloakidentitymanagementoauthservice",{"_index":12191,"title":{"injectables/KeycloakIdentityManagementOauthService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakidentitymanagementservice",{"_index":12193,"title":{"injectables/KeycloakIdentityManagementService.html":{}},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["keycloakinputfiles",{"_index":12817,"title":{},"body":{"classes/KeycloakConfiguration.html":{}}}],["keycloakmanagementcontroller",{"_index":12831,"title":{"controllers/KeycloakManagementController.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"controllers/KeycloakManagementController.html":{}}}],["keycloakmanagementuc",{"_index":13166,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["keycloakmigrationservice",{"_index":12829,"title":{"injectables/KeycloakMigrationService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakMigrationService.html":{}}}],["keycloakmodule",{"_index":12184,"title":{"modules/KeycloakModule.html":{}},"body":{"modules/IdentityManagementModule.html":{},"modules/KeycloakModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["keycloakseedservice",{"_index":12828,"title":{"classes/KeycloakSeedService.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakSeedService.html":{}}}],["keycloaksettings",{"_index":11516,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["keycloakuser",{"_index":13109,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers",{"_index":13113,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.length",{"_index":13117,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keycloakusers.map((user",{"_index":13129,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["keypair",{"_index":6868,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.privatekey.export",{"_index":6876,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypair.publickey.export",{"_index":6873,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keypairkeyobjectresult",{"_index":6867,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["keys",{"_index":772,"title":{},"body":{"injectables/AccountLookupService.html":{},"interfaces/JwtConstants.html":{},"license.html":{}}}],["keywords",{"_index":22255,"title":{},"body":{"properties.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["kickuserfromgroup(groupname",{"_index":1340,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["kind",{"_index":21769,"title":{},"body":{"license.html":{}}}],["kinds",{"_index":21678,"title":{},"body":{"license.html":{}}}],["kiss",{"_index":22479,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["know",{"_index":21700,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["knowing",{"_index":22520,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["knowingly",{"_index":22122,"title":{},"body":{"license.html":{}}}],["knowledge",{"_index":22129,"title":{},"body":{"license.html":{}}}],["known",{"_index":11279,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["known/jwks.json",{"_index":11079,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["known/openid",{"_index":12798,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["kontinuierlich",{"_index":4766,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["ktid",{"_index":17316,"title":{},"body":{"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["kurse",{"_index":6422,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["l.course.isfinished()).map((l",{"_index":19196,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.id",{"_index":19197,"title":{},"body":{"injectables/TaskUC.html":{}}}],["l.name",{"_index":13851,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["label",{"_index":21647,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["labelnames",{"_index":16671,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["labels",{"_index":16673,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["language",{"_index":4220,"title":{},"body":{"classes/ChangeLanguageParams.html":{},"interfaces/IUserProperties.html":{},"classes/MongoPatterns.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["language_override",{"_index":11252,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["languagetype",{"_index":4221,"title":{},"body":{"classes/ChangeLanguageParams.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["languagetype})@isenum(languagetype",{"_index":4222,"title":{},"body":{"classes/ChangeLanguageParams.html":{}}}],["largely",{"_index":22740,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["larger",{"_index":21900,"title":{},"body":{"license.html":{}}}],["last",{"_index":1145,"title":{},"body":{"injectables/AccountService.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/UserInfoResponse.html":{}}}],["lastauthorizationtime",{"_index":12765,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["lastloginsystemchange",{"_index":12100,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{},"classes/UserScope.html":{}}}],["lastloginsystemchangebetweenend",{"_index":17676,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangebetweenstart",{"_index":17675,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastloginsystemchangesmallerthan",{"_index":17658,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["lastmodifytimestamp",{"_index":11901,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["lastname",{"_index":852,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/ExternalUserDto.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonUser.html":{},"interfaces/INameMatch.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/PatchMyAccountParams.html":{},"classes/ResolvedUserResponse.html":{},"injectables/SanisResponseMapper.html":{},"classes/SortImportUserParams.html":{},"classes/SubmissionItemResponseMapper.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["lastname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":12554,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["lastnamesearchvalues",{"_index":11244,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["lastsuccessfulfullsync",{"_index":11899,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["lastsuccessfulpartialsync",{"_index":11900,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["lastsyncattempt",{"_index":11898,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["lasttriedfailedlogin",{"_index":82,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["lastupdatedat",{"_index":3679,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TimestampsResponse.html":{}}}],["lastvaluefrom",{"_index":1267,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ExternalToolLogoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["lastvaluefrom(observable",{"_index":15223,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["lastvaluefrom(this.httpservice.get>(wellknownurl))).data",{"_index":13054,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["later",{"_index":3397,"title":{},"body":{"entities/BoardElement.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/ISubmissionProperties.html":{},"entities/News.html":{},"injectables/ReferenceLoader.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/TeamNews.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["latest",{"_index":14806,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/ToolConfigurationController.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["laufzeit",{"_index":17218,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["launch",{"_index":210,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["launch.controller",{"_index":19526,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch.controller.ts",{"_index":19716,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.controller.ts:29",{"_index":19727,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["launch.mapper.ts",{"_index":19743,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:24",{"_index":19749,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:29",{"_index":19754,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:34",{"_index":19751,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.mapper.ts:39",{"_index":19757,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch.module.ts",{"_index":19779,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch.params.ts",{"_index":19782,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.params.ts:7",{"_index":19783,"title":{},"body":{"classes/ToolLaunchParams.html":{}}}],["launch.service.ts",{"_index":19799,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:22",{"_index":19804,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:38",{"_index":19806,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:51",{"_index":19808,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:73",{"_index":19812,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.service.ts:88",{"_index":19810,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch.strategy",{"_index":2656,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.strategy.ts",{"_index":110,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch.strategy.ts:114",{"_index":159,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:125",{"_index":162,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:141",{"_index":141,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:167",{"_index":186,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:18",{"_index":14220,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["launch.strategy.ts:204",{"_index":182,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:23",{"_index":131,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:246",{"_index":147,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:26",{"_index":172,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:41",{"_index":156,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:46",{"_index":166,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:48",{"_index":177,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:50",{"_index":174,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:65",{"_index":169,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.strategy.ts:91",{"_index":152,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch.uc.ts",{"_index":19829,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:11",{"_index":19831,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch.uc.ts:18",{"_index":19833,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch/controller/dto/tool",{"_index":19781,"title":{},"body":{"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launch/controller/tool",{"_index":19525,"title":{},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["launch/error/missing",{"_index":14518,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["launch/error/parameter",{"_index":16065,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launch/error/tool",{"_index":19951,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launch/mapper/lti",{"_index":14259,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["launch/mapper/tool",{"_index":19742,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launch/service/lti11",{"_index":14161,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["launch/service/strategy/abstract",{"_index":109,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launch/service/strategy/basic",{"_index":2642,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["launch/service/strategy/lti11",{"_index":14218,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["launch/service/strategy/oauth2",{"_index":14985,"title":{},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["launch/service/strategy/tool",{"_index":12090,"title":{},"body":{"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{}}}],["launch/service/tool",{"_index":19798,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["launch/settings",{"_index":22282,"title":{},"body":{"todo.html":{}}}],["launch/tool",{"_index":19778,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["launch/types/property",{"_index":16281,"title":{},"body":{"classes/PropertyData.html":{}}}],["launch/types/tool",{"_index":19734,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{}}}],["launch/uc",{"_index":19527,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["launch/uc/tool",{"_index":19828,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["launch_presentation_document_target",{"_index":14240,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["launch_presentation_locale",{"_index":7154,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["launch_url",{"_index":5125,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["launchdata",{"_index":218,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ToolLaunchService.html":{}}}],["launchdata.properties.push(...additionallaunchdataproperties",{"_index":226,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launchdata.properties.push(...launchdataproperties",{"_index":225,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launchdataproperties",{"_index":220,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["launchdatatype",{"_index":19752,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["launched",{"_index":19726,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["launching",{"_index":16070,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["launchrequest",{"_index":19820,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["launchrequestmethod",{"_index":178,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.get",{"_index":2669,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["launchrequestmethod.post",{"_index":2668,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["law",{"_index":21760,"title":{},"body":{"license.html":{}}}],["laws",{"_index":21739,"title":{},"body":{"license.html":{}}}],["lawsuit",{"_index":22095,"title":{},"body":{"license.html":{}}}],["lax",{"_index":15781,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["layer",{"_index":22461,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["layered",{"_index":22634,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["layers",{"_index":22264,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["lazily",{"_index":16110,"title":{},"body":{"injectables/PermissionService.html":{}}}],["ldap",{"_index":1134,"title":{},"body":{"injectables/AccountService.html":{},"modules/ImportUserModule.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"controllers/LoginController.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/UserMigrationIsNotEnabled.html":{},"todo.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ldap'})@apiresponse({status",{"_index":14085,"title":{},"body":{"controllers/LoginController.html":{}}}],["ldap_connection_failed",{"_index":13284,"title":{},"body":{"classes/LdapConnectionError.html":{}}}],["ldap_password_encryption_key",{"_index":8118,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["ldap_univention_migration",{"_index":11703,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapactive",{"_index":18567,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{}}}],["ldapalreadypersistedexception",{"_index":13245,"title":{"classes/LdapAlreadyPersistedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["ldapauthorizationbodyparams",{"_index":13259,"title":{"classes/LdapAuthorizationBodyParams.html":{}},"body":{"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"controllers/LoginController.html":{}}}],["ldapconfig",{"_index":11846,"title":{"classes/LdapConfig.html":{}},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["ldapconfig.active",{"_index":11878,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.federalstate",{"_index":11879,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.lastmodifytimestamp",{"_index":11887,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.lastsuccessfulfullsync",{"_index":11883,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.lastsuccessfulpartialsync",{"_index":11885,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.lastsyncattempt",{"_index":11881,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.provider",{"_index":11895,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.provideroptions",{"_index":11897,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.rootpath",{"_index":11890,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.searchuser",{"_index":11892,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.searchuserpassword",{"_index":11894,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconfig.url",{"_index":11888,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["ldapconnectionerror",{"_index":13279,"title":{"classes/LdapConnectionError.html":{}},"body":{"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{}}}],["ldapdn",{"_index":4232,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"injectables/LdapStrategy.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["ldapencryptionservice",{"_index":8109,"title":{},"body":{"modules/EncryptionModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IEncryptionService.html":{}}}],["ldapid",{"_index":11482,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["ldapjs",{"_index":13293,"title":{},"body":{"injectables/LdapService.html":{},"dependencies.html":{}}}],["ldapjs.git",{"_index":21419,"title":{},"body":{"dependencies.html":{}}}],["ldaps:mock.de:389",{"_index":18602,"title":{},"body":{"classes/SystemFactory.html":{}}}],["ldapschool",{"_index":12641,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapschoolidentifier",{"_index":11715,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapservice",{"_index":1630,"title":{"injectables/LdapService.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{}}}],["ldapservice:connect",{"_index":13311,"title":{},"body":{"injectables/LdapService.html":{}}}],["ldapstrategy",{"_index":1631,"title":{"injectables/LdapStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["ldapuniventionmigrationschool",{"_index":11704,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["ldapuser",{"_index":12634,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapuser.roles.map((roleref",{"_index":12643,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ldapusermigrationexception",{"_index":13248,"title":{"classes/LdapUserMigrationException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["lead",{"_index":4171,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"injectables/LdapStrategy.html":{}}}],["leads",{"_index":19061,"title":{},"body":{"injectables/TaskRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["leaf",{"_index":3260,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["lean",{"_index":21428,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["learn",{"_index":22359,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["learner",{"_index":6961,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["learning",{"_index":10385,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/S3Config.html":{},"miscellaneous/functions.html":{}}}],["learningmodules",{"_index":5224,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["learnroom",{"_index":3546,"title":{},"body":{"modules/BoardModule.html":{},"injectables/DashboardModelMapper.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/VideoConferenceModule.html":{}}}],["learnroom.module",{"_index":13382,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["learnroomapimodule",{"_index":13367,"title":{"modules/LearnroomApiModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["learnroommetadata",{"_index":6402,"title":{},"body":{"entities/Course.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{}}}],["learnroommodule",{"_index":13371,"title":{"modules/LearnroomModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolLaunchModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["learnroomtypes",{"_index":6403,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{}}}],["learnroomtypes.course",{"_index":6470,"title":{},"body":{"entities/Course.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/ICourseProperties.html":{},"classes/MetadataTypeMapper.html":{}}}],["leave",{"_index":5998,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["leaves",{"_index":19467,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["left",{"_index":22547,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["legacy",{"_index":1252,"title":{},"body":{"injectables/AccountValidationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LoggerModule.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["legacy/deprecated",{"_index":23108,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["legacy/feathers",{"_index":22426,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/feathers/mocha",{"_index":22403,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["legacy/nest",{"_index":22311,"title":{},"body":{"todo.html":{}}}],["legacylogger",{"_index":1053,"title":{"injectables/LegacyLogger.html":{}},"body":{"injectables/AccountService.html":{},"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"modules/EncryptionModule.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/PreviewService.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["legacyschoolapimodule",{"_index":13432,"title":{"modules/LegacySchoolApiModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["legacyschoolcontroller",{"_index":13441,"title":{"controllers/LegacySchoolController.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["legacyschooldo",{"_index":189,"title":{"classes/LegacySchoolDo.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LdapStrategy.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["legacyschooldofactory",{"_index":13517,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory",{"_index":13510,"title":{"classes/LegacySchoolFactory.html":{}},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolfactory.define(legacyschooldo",{"_index":13518,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["legacyschoolmodule",{"_index":1951,"title":{"modules/LegacySchoolModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"modules/ImportUserModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["legacyschoolrepo",{"_index":1632,"title":{"injectables/LegacySchoolRepo.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"interfaces/IRepoLoader.html":{},"modules/ImportUserModule.html":{},"injectables/LdapStrategy.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolValidationService.html":{}}}],["legacyschoolrule",{"_index":1961,"title":{"injectables/LegacySchoolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/RuleManager.html":{}}}],["legacyschoolservice",{"_index":129,"title":{"injectables/LegacySchoolService.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/IservProvisioningStrategy.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["legacyschooluc",{"_index":13437,"title":{"injectables/LegacySchoolUc.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{}}}],["legal",{"_index":21707,"title":{},"body":{"license.html":{}}}],["legayschoolrule",{"_index":17066,"title":{},"body":{"injectables/RuleManager.html":{}}}],["legend",{"_index":429,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{}}}],["length",{"_index":3491,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["lernstore",{"_index":11312,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lernstore_view",{"_index":11713,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["lesson",{"_index":2701,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/DtoCreator.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["lesson({course",{"_index":23096,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["lesson.contents.foreach((content",{"_index":4990,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lesson.contents.map((c",{"_index":13957,"title":{},"body":{"injectables/LessonService.html":{}}}],["lesson.course",{"_index":16968,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/TaskRepo.html":{}}}],["lesson.course.name",{"_index":7988,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.coursegroup",{"_index":18984,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["lesson.coursename",{"_index":16927,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.createdat",{"_index":7986,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.entity",{"_index":2690,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonBoardElement.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["lesson.getlessonlinkedtasks",{"_index":13805,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lesson.getnumberofdrafttasks",{"_index":7991,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofplannedtasks",{"_index":7993,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.getnumberofpublishedtasks",{"_index":7989,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["lesson.hidden",{"_index":7985,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{}}}],["lesson.id",{"_index":7984,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.module",{"_index":13651,"title":{},"body":{"modules/LessonApiModule.html":{}}}],["lesson.name",{"_index":4988,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/DtoCreator.html":{},"injectables/LessonCopyService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofdrafttasks",{"_index":16925,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofplannedtasks",{"_index":16926,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.numberofpublishedtasks",{"_index":16924,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["lesson.position",{"_index":13734,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lesson.response",{"_index":3413,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["lesson.response.ts",{"_index":3417,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:27",{"_index":3428,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:31",{"_index":3429,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:35",{"_index":3425,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:40",{"_index":3434,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:46",{"_index":3431,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:5",{"_index":3423,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:52",{"_index":3432,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:55",{"_index":3426,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:58",{"_index":3435,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.response.ts:61",{"_index":3427,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["lesson.rule",{"_index":19091,"title":{},"body":{"injectables/TaskRule.html":{}}}],["lesson.updatedat",{"_index":7987,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lesson/task",{"_index":17956,"title":{},"body":{"classes/ShareTokenImportBodyParams.html":{}}}],["lessonapimodule",{"_index":13644,"title":{"modules/LessonApiModule.html":{}},"body":{"modules/LessonApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["lessonboardelement",{"_index":2700,"title":{"entities/LessonBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/LessonBoardElement.html":{}}}],["lessoncontroller",{"_index":13650,"title":{"controllers/LessonController.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{}}}],["lessoncopy",{"_index":13711,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopy.contents",{"_index":13745,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopy.name",{"_index":13749,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopyapiparams",{"_index":6287,"title":{"classes/LessonCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"classes/LessonCopyApiParams.html":{},"controllers/RoomsController.html":{}}}],["lessoncopyparams",{"_index":13689,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopyparentparams",{"_index":6289,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/LessonCopyUC.html":{}}}],["lessoncopyservice",{"_index":2996,"title":{"injectables/LessonCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/ShareTokenUC.html":{}}}],["lessoncopyservice.lessonstatusmetadata",{"_index":13748,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessoncopyuc",{"_index":13373,"title":{"injectables/LessonCopyUC.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/LessonCopyUC.html":{},"controllers/RoomsController.html":{}}}],["lessonelement",{"_index":3075,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["lessonelements",{"_index":3653,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["lessonentity",{"_index":2689,"title":{"entities/LessonEntity.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"classes/CopyMapper.html":{},"classes/DtoCreator.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/LessonBoardElement.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{}}}],["lessonfactory",{"_index":13862,"title":{"classes/LessonFactory.html":{}},"body":{"classes/LessonFactory.html":{}}}],["lessonfactory.define",{"_index":13864,"title":{},"body":{"classes/LessonFactory.html":{}}}],["lessonhidden",{"_index":11968,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonid",{"_index":4955,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CopyMapper.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"injectables/ShareTokenUC.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonids",{"_index":19026,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{}}}],["lessonidsoffinishedcourses",{"_index":18991,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonidsofopencourses",{"_index":18989,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessonmetadata",{"_index":7950,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["lessonmodule",{"_index":13372,"title":{"modules/LessonModule.html":{}},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["lessonname",{"_index":11967,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["lessonreadpermission",{"_index":13902,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonreadpermission(user",{"_index":13912,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonrepo",{"_index":1962,"title":{"injectables/LessonRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"interfaces/IRepoLoader.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsService.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskUC.html":{}}}],["lessonrule",{"_index":1963,"title":{"injectables/LessonRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/LessonRule.html":{},"injectables/RuleManager.html":{},"injectables/TaskRule.html":{}}}],["lessons",{"_index":4982,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"controllers/LessonController.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ShareTokenDO.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["lessons.filter((l",{"_index":19195,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.foreach((lesson",{"_index":4984,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["lessons.map((l",{"_index":19218,"title":{},"body":{"injectables/TaskUC.html":{}}}],["lessons.map((lesson",{"_index":13956,"title":{},"body":{"injectables/LessonService.html":{}}}],["lessonscope",{"_index":13885,"title":{"classes/LessonScope.html":{}},"body":{"injectables/LessonRepo.html":{},"classes/LessonScope.html":{}}}],["lessonservice",{"_index":4940,"title":{"injectables/LessonService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/ShareTokenService.html":{}}}],["lessonstatus",{"_index":13721,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonstatus.copyentity",{"_index":13751,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonstatuscontent",{"_index":13679,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonstatuscontent(elements",{"_index":13714,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonstatusmetadata",{"_index":13680,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["lessonuc",{"_index":13648,"title":{"injectables/LessonUC.html":{}},"body":{"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"injectables/LessonUC.html":{}}}],["lessonurlparams",{"_index":13657,"title":{"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{}},"body":{"controllers/LessonController.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"controllers/RoomsController.html":{}}}],["lessonwritepermission",{"_index":13903,"title":{},"body":{"injectables/LessonRule.html":{}}}],["lessonwritepermission(user",{"_index":13914,"title":{},"body":{"injectables/LessonRule.html":{}}}],["letter",{"_index":940,"title":{},"body":{"injectables/AccountRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["letters",{"_index":22889,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["letting",{"_index":21724,"title":{},"body":{"license.html":{}}}],["level",{"_index":3552,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"modules/LoggerModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["levelquery",{"_index":3598,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["levels",{"_index":14048,"title":{},"body":{"modules/LoggerModule.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["liability",{"_index":22013,"title":{},"body":{"license.html":{}}}],["liable",{"_index":21757,"title":{},"body":{"license.html":{}}}],["libraries",{"_index":21796,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["libraries/:ubername/:file",{"_index":10800,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["library",{"_index":21953,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["license",{"_index":11540,"title":{"license.html":{}},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"license.html":{},"properties.html":{}}}],["licensed",{"_index":21743,"title":{},"body":{"license.html":{}}}],["licensee",{"_index":21744,"title":{},"body":{"license.html":{}}}],["licensees",{"_index":21746,"title":{},"body":{"license.html":{}}}],["licenses",{"_index":21684,"title":{},"body":{"license.html":{}}}],["licensing",{"_index":22073,"title":{},"body":{"license.html":{}}}],["licensors",{"_index":22021,"title":{},"body":{"license.html":{}}}],["likes",{"_index":22900,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["likewise",{"_index":22066,"title":{},"body":{"license.html":{}}}],["limit",{"_index":56,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageMapper.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ListOauthClientsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"dependencies.html":{},"license.html":{}}}],["limitation",{"_index":22203,"title":{},"body":{"license.html":{}}}],["limited",{"_index":22192,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["limiting",{"_index":22012,"title":{},"body":{"license.html":{}}}],["line",{"_index":1300,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/ConsoleWriterService.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SystemRepo.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lines",{"_index":22457,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["link",{"_index":2321,"title":{},"body":{"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ColumnBoardService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/ImportUserModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{}}}],["linked",{"_index":21813,"title":{},"body":{"license.html":{}}}],["linkeditems",{"_index":13811,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkeditems.foreach((element",{"_index":13815,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkeditems.length",{"_index":13813,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkedtasks",{"_index":13804,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkedtasks.length",{"_index":13806,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkedtasks.map((element",{"_index":13807,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["linkid",{"_index":7153,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["linter",{"_index":22298,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lis_person_contact_email_primary",{"_index":14249,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["lis_person_name_full",{"_index":14247,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["liskov",{"_index":22466,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["list",{"_index":538,"title":{},"body":{"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CopyApiResponse.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FileRecordFactory.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["list.response",{"_index":18549,"title":{},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["list.response.ts",{"_index":1006,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CardListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/PublicSystemListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["list.response.ts:10",{"_index":4087,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:4",{"_index":4085,"title":{},"body":{"classes/CardListResponse.html":{}}}],["list.response.ts:5",{"_index":1010,"title":{},"body":{"classes/AccountSearchListResponse.html":{}}}],["list.response.ts:6",{"_index":5636,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/PublicSystemListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/ToolReferenceListResponse.html":{}}}],["list.response.ts:7",{"_index":9062,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["list_files_of_parent",{"_index":11363,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["listconsentsessions",{"_index":10835,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["listconsentsessions(@currentuser",{"_index":15564,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(currentuser",{"_index":15497,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["listconsentsessions(user",{"_index":10864,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["listconsentsessions(userid",{"_index":15684,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["listenercount",{"_index":2260,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["listening",{"_index":1556,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["listfilesofparent",{"_index":10104,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent(param",{"_index":10112,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["listfilesofparent(payload",{"_index":10292,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:finished",{"_index":10307,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listfilesofparent:started",{"_index":10305,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["listoauth2clients",{"_index":10836,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["listoauth2clients(currentuser",{"_index":15429,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["listoauth2clients(limit",{"_index":10866,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["listoauthclientsparams",{"_index":13975,"title":{"classes/ListOauthClientsParams.html":{}},"body":{"classes/ListOauthClientsParams.html":{},"controllers/OauthProviderController.html":{}}}],["listobjectscommand",{"_index":17128,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["listresponse",{"_index":18271,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["lists",{"_index":9988,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"controllers/ToolConfigurationController.html":{}}}],["listsequal",{"_index":2720,"title":{},"body":{"entities/Board.html":{}}}],["literal",{"_index":138,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"classes/AccountFactory.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardDoRepo.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseRepo.html":{},"classes/CustomParameterFactory.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/GridElement.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/INewsScope.html":{},"classes/ImportUserFactory.html":{},"interfaces/JwtConstants.html":{},"classes/LdapConfig.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LessonCopyService.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LocalStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfigResponse.html":{},"interfaces/OcsResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"classes/RequestInfo.html":{},"interfaces/RocketChatGroupModel.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemService.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["litigation",{"_index":22093,"title":{},"body":{"license.html":{}}}],["load",{"_index":11153,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{},"injectables/ImportUserRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["load/perf",{"_index":22275,"title":{},"body":{"todo.html":{}}}],["load/persist",{"_index":22576,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["loadaccount",{"_index":1784,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccount(username",{"_index":1796,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/LdapStrategy.html":{}}}],["loadaccounts",{"_index":13209,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["loadallcollectionsfromdatabase(targetfolder",{"_index":11137,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadallcollectionsfromfilesystem(basedir",{"_index":11143,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loadauthorizableobject",{"_index":11663,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["loadauthorizableobject(objectname",{"_index":16617,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11151,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["loaded",{"_index":4083,"title":{},"body":{"classes/CardIdsParams.html":{},"entities/Course.html":{},"injectables/ExternalToolUc.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/LessonEntity.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{},"injectables/VideoConferenceRepo.html":{}}}],["loaded.config",{"_index":9212,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loaded.version",{"_index":9213,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["loadedexternaltool",{"_index":5315,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedexternaltool.parameters",{"_index":5347,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["loadedexternaltool.version",{"_index":17540,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["loadedoauthclient",{"_index":9109,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedoauthclient.client_id",{"_index":9151,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["loadedschoolexternaltool",{"_index":5989,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["loadedschoolexternaltool.toolid",{"_index":5992,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["loadedtool",{"_index":9100,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.clientid",{"_index":9256,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loadedtool.config.type",{"_index":9252,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["loader",{"_index":1936,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"modules/ToolModule.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["loading",{"_index":23062,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["loads",{"_index":4483,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"classes/IdentityManagementService.html":{}}}],["loadtoolhierarchy",{"_index":19803,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadtoolhierarchy(schoolexternaltoolid",{"_index":19811,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["loadusers",{"_index":13210,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["local",{"_index":1717,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/KeycloakConsole.html":{},"injectables/LocalStrategy.html":{},"classes/TestApiClient.html":{},"classes/UpdateMatchParams.html":{},"entities/UserLoginMigration.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["local.hooks.hashpassword('password",{"_index":1127,"title":{},"body":{"injectables/AccountService.html":{}}}],["localauthorizationbodyparams",{"_index":13988,"title":{"classes/LocalAuthorizationBodyParams.html":{}},"body":{"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{}}}],["localcookies",{"_index":6035,"title":{},"body":{"classes/CookiesDto.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["localcookies.includes(cookie",{"_index":11065,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localcookies.push(cookie",{"_index":11066,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto",{"_index":11034,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig",{"_index":11058,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.axiosconfig.headers",{"_index":11053,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies",{"_index":11047,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.hydracookies.join",{"_index":11051,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.cookies.localcookies.join",{"_index":11052,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.currentredirect",{"_index":11059,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.referer",{"_index":11054,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response",{"_index":11056,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers",{"_index":11037,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers.location",{"_index":11036,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localdto.response.headers['set",{"_index":11045,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["localfield",{"_index":20722,"title":{},"body":{"injectables/UserRepo.html":{}}}],["localhost",{"_index":12942,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["localhost:15672",{"_index":22338,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["localhost:27017\"}]})start",{"_index":22982,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["localhost:3030",{"_index":22376,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["locally",{"_index":10277,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["localroleseeddata",{"_index":21570,"title":{},"body":{"miscellaneous/functions.html":{}}}],["localstrategy",{"_index":1633,"title":{"injectables/LocalStrategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/LocalStrategy.html":{}}}],["locate",{"_index":22645,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["located",{"_index":22557,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["location",{"_index":331,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["location.startswith('http",{"_index":11038,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["location.startswith(configuration.get('hydra_public_uri",{"_index":11040,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["locationmapping",{"_index":8936,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterdo.location",{"_index":9039,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["locationmapping[customparameterparam.location",{"_index":8978,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["locations",{"_index":11041,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["lockid",{"_index":9572,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["lodash",{"_index":846,"title":{},"body":{"interfaces/AccountParams.html":{},"injectables/BoardCopyService.html":{},"injectables/CommonToolValidationService.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/ICollectionFilePath.html":{},"modules/MongoMemoryDatabaseModule.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{},"dependencies.html":{}}}],["log",{"_index":8159,"title":{},"body":{"classes/ErrorLoggable.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/LegacyLogger.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["log(message",{"_index":11532,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["log/response",{"_index":22300,"title":{},"body":{"todo.html":{}}}],["loggable",{"_index":1542,"title":{"interfaces/Loggable.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["loggable.exception.ts",{"_index":20354,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:13",{"_index":20356,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.exception.ts:8",{"_index":20355,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["loggable.getlogmessage",{"_index":14075,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["loggable.ts",{"_index":1537,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:10",{"_index":1558,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:13",{"_index":1559,"title":{},"body":{"classes/AppStartLoggable.html":{}}}],["loggable.ts:3",{"_index":8541,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable.ts:6",{"_index":8542,"title":{},"body":{"classes/ExternalToolLogoFetchedLoggable.html":{}}}],["loggable/error.loggable",{"_index":10492,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["loggable/news",{"_index":14821,"title":{},"body":{"injectables/NewsUc.html":{}}}],["loggables",{"_index":11522,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logged",{"_index":19654,"title":{},"body":{"controllers/ToolController.html":{},"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["logger",{"_index":1052,"title":{"injectables/Logger.html":{}},"body":{"injectables/AccountService.html":{},"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.html":{},"modules/CoreModule.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"modules/RedisModule.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logger.debug",{"_index":16266,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.error(error",{"_index":3921,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.info",{"_index":16280,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["logger.info(`could",{"_index":22777,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["logger.interface",{"_index":13416,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.interface.ts",{"_index":11521,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:11",{"_index":11531,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:12",{"_index":11533,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:13",{"_index":11528,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:14",{"_index":11535,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.interface.ts:15",{"_index":11525,"title":{},"body":{"interfaces/ILegacyLogger.html":{}}}],["logger.log(msg",{"_index":3924,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["logger.service",{"_index":14046,"title":{},"body":{"modules/LoggerModule.html":{}}}],["logger.service.ts",{"_index":13394,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:22",{"_index":13398,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:26",{"_index":13404,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:30",{"_index":13409,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:34",{"_index":13401,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:38",{"_index":13403,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:42",{"_index":13402,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:50",{"_index":13406,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:54",{"_index":13400,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.service.ts:58",{"_index":13408,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["logger.setcontext(durationlogginginterceptor.name",{"_index":8022,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logger.setcontext(redismodule.name",{"_index":16612,"title":{},"body":{"modules/RedisModule.html":{}}}],["logger.setcontext(servermodule.name",{"_index":17838,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.setcontext(servertestmodule.name",{"_index":17846,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger.ts",{"_index":8175,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:12",{"_index":8186,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:17",{"_index":8182,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:22",{"_index":8184,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:27",{"_index":8188,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.ts:9",{"_index":8180,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["logger.warn",{"_index":17820,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["logger/interfaces",{"_index":8143,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logger/types",{"_index":8144,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["loggermodule",{"_index":438,"title":{"modules/LoggerModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CoreModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/ManagementModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ProvisioningModule.html":{},"modules/RedisModule.html":{},"modules/S3ClientModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/ToolApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["logging",{"_index":6332,"title":{"additional-documentation/nestjs-application/logging.html":{}},"body":{"modules/CoreModule.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["logging.error",{"_index":16691,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts",{"_index":8012,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:10",{"_index":8015,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:12",{"_index":16679,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.interceptor.ts:15",{"_index":8019,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["logging.interceptor.ts:9",{"_index":16678,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["logging.utils",{"_index":8192,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils",{"_index":8191,"title":{"classes/LoggingUtils.html":{}},"body":{"injectables/ErrorLogger.html":{},"classes/GlobalErrorFilter.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{}}}],["loggingutils.createmessagewithcontext(loggable",{"_index":8194,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/Logger.html":{}}}],["loggingutils.isinstanceofloggable(error",{"_index":10498,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["logic",{"_index":11826,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"injectables/OAuthService.html":{},"entities/Submission.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["login",{"_index":355,"title":{},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"injectables/AccountService.html":{},"classes/ChallengeParams.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ConsentResponse.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapStrategy.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"classes/OAuthMigrationError.html":{},"injectables/OAuthService.html":{},"classes/Oauth2MigrationParams.html":{},"modules/OauthApiModule.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"modules/OauthModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/RuleManager.html":{},"entities/SchoolEntity.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"controllers/SystemController.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["login(account",{"_index":1749,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["login.query.ts",{"_index":17209,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:13",{"_index":17211,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login.query.ts:8",{"_index":17213,"title":{},"body":{"classes/SSOLoginQuery.html":{}}}],["login_block_time",{"_index":1842,"title":{},"body":{"injectables/AuthenticationService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["login_challenge",{"_index":5423,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["login_hint",{"_index":15875,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["login_required",{"_index":5397,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["login_session_id",{"_index":5424,"title":{},"body":{"classes/ConsentResponse.html":{},"interfaces/ProviderConsentResponse.html":{}}}],["loginchallenge",{"_index":5443,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["logincontroller",{"_index":1588,"title":{"controllers/LoginController.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["logindto",{"_index":1821,"title":{"classes/LoginDto.html":{}},"body":{"injectables/AuthenticationService.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{}}}],["logindto.accesstoken",{"_index":14149,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["loginldap",{"_index":14079,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(@currentuser",{"_index":14107,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginldap(user",{"_index":14082,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal",{"_index":14080,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(@currentuser",{"_index":14113,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginlocal(user",{"_index":14089,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginname",{"_index":10331,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["loginname.replace(mongopatterns.regex_mongo_language_pattern_whitelist",{"_index":12557,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["loginoauth2",{"_index":14081,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginoauth2(user",{"_index":14093,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginpath",{"_index":1712,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["loginrequestbody",{"_index":14120,"title":{"classes/LoginRequestBody.html":{}},"body":{"classes/LoginRequestBody.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember",{"_index":15641,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginrequestbody.remember_for",{"_index":15642,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["loginresponse",{"_index":14086,"title":{"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["loginresponse.challenge",{"_index":15621,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponse.client.client_id",{"_index":15610,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["loginresponsemapper",{"_index":14100,"title":{"classes/LoginResponseMapper.html":{}},"body":{"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{}}}],["loginresponsemapper.maplogindtotoresponse(logindto",{"_index":14109,"title":{},"body":{"controllers/LoginController.html":{}}}],["loginsessionid",{"_index":5446,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["loginuc",{"_index":1586,"title":{"injectables/LoginUc.html":{}},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{}}}],["loginurl",{"_index":20596,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('migration",{"_index":20672,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.searchparams.append('postloginredirect",{"_index":20671,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginurl.tostring",{"_index":20673,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["loginuseruc",{"_index":22610,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["logmessage",{"_index":1543,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["logmessage.type",{"_index":8149,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["logmessagedata",{"_index":1544,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/NewsMapper.html":{}}}],["logmessagewithcontext",{"_index":14070,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["logmigrationinformation",{"_index":20496,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logmigrationinformation(userid",{"_index":20505,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["logo",{"_index":7172,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"controllers/ToolController.html":{},"classes/ToolReferenceResponse.html":{}}}],["logo.service",{"_index":9244,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["logo.service.ts",{"_index":8549,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:114",{"_index":8560,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:26",{"_index":8556,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:34",{"_index":8558,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:46",{"_index":8570,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:61",{"_index":8565,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:73",{"_index":8563,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.service.ts:97",{"_index":8567,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logo.ts",{"_index":8521,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:2",{"_index":8524,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo.ts:4",{"_index":8523,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["logo_url",{"_index":6973,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["logobase64",{"_index":8474,"title":{},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["logobinarydata",{"_index":8609,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["logourl",{"_index":5640,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/County.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoService.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["logourltemplate",{"_index":19890,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["logout",{"_index":12585,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/UserMigrationService.html":{}}}],["logoutendpoint",{"_index":11080,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["logoutflow",{"_index":15626,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflow(challenge",{"_index":15628,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logoutflowuc",{"_index":15526,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["logoutresponse",{"_index":15630,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["logouturl",{"_index":2113,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/IScopeInfo.html":{},"interfaces/ISystemProperties.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["logoutuser(authtoken",{"_index":1330,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["logs",{"_index":5407,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["lokalisierung",{"_index":17243,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["long",{"_index":5389,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["longer",{"_index":22887,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["look",{"_index":12669,"title":{},"body":{"interfaces/JwtConstants.html":{},"controllers/ShareTokenController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["looking",{"_index":13984,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["looks",{"_index":22498,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lookup",{"_index":11419,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"injectables/UserRepo.html":{}}}],["lookup.service",{"_index":833,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{}}}],["lookup.service.ts",{"_index":765,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:15",{"_index":790,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:27",{"_index":800,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookup.service.ts:44",{"_index":793,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["lookupsharetoken",{"_index":17886,"title":{},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["lookupsharetoken(currentuser",{"_index":17903,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["lookupsharetoken(userid",{"_index":18075,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["lookuptoken",{"_index":18023,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptoken(token",{"_index":18031,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname",{"_index":18024,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["lookuptokenwithparentname(token",{"_index":18033,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["loop",{"_index":10977,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["loss",{"_index":22210,"title":{},"body":{"license.html":{}}}],["losses",{"_index":22212,"title":{},"body":{"license.html":{}}}],["lot",{"_index":22839,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["low",{"_index":22552,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lower",{"_index":22477,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["lowercase",{"_index":11483,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["lt",{"_index":20762,"title":{},"body":{"classes/UserScope.html":{}}}],["lte",{"_index":3601,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/FilesRepo.html":{},"classes/NewsScope.html":{},"injectables/SchoolYearRepo.html":{},"classes/TaskScope.html":{}}}],["lti",{"_index":5102,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["lti11",{"_index":14226,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["lti11config",{"_index":8813,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.baseurl",{"_index":8854,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.key",{"_index":8859,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.launch_presentation_locale",{"_index":8864,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.lti_message_type",{"_index":8861,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.privacy_permission",{"_index":8863,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.resource_link_id",{"_index":8862,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.secret",{"_index":8860,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11config.type",{"_index":8853,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["lti11encryptionservice",{"_index":14160,"title":{"injectables/Lti11EncryptionService.html":{}},"body":{"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{}}}],["lti11toolconfig",{"_index":7125,"title":{"classes/Lti11ToolConfig.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigcreate",{"_index":8911,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigcreateparams",{"_index":8456,"title":{"classes/Lti11ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Lti11ToolConfigCreateParams.html":{}}}],["lti11toolconfigentity",{"_index":8476,"title":{"classes/Lti11ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfigEntity.html":{}}}],["lti11toolconfigfactory",{"_index":7147,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigfactory.build(customparam",{"_index":7167,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti11toolconfigresponse",{"_index":8989,"title":{"classes/Lti11ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["lti11toolconfigupdate",{"_index":8915,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["lti11toolconfigupdateparams",{"_index":8913,"title":{"classes/Lti11ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["lti11toollaunchstrategy",{"_index":14217,"title":{"injectables/Lti11ToolLaunchStrategy.html":{}},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["lti_message_type",{"_index":6974,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["lti_version",{"_index":6975,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["ltimessagetype",{"_index":7122,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltimessagetype.basic_lti_launch_request",{"_index":7152,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission",{"_index":6968,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltiprivacypermission.anonymous",{"_index":6977,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalToolEntityFactory.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{}}}],["ltiprivacypermission.email",{"_index":14248,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["ltiprivacypermission.name",{"_index":14245,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{}}}],["ltiprivacypermission.pseudonymous",{"_index":7151,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["ltirepo",{"_index":11009,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["ltirole",{"_index":14224,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{}}}],["ltirole.administrator",{"_index":14268,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.instructor",{"_index":14267,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirole.learner",{"_index":14266,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltirolemapper",{"_index":14225,"title":{"classes/LtiRoleMapper.html":{}},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{}}}],["ltirolemapper.maprolestoltiroles(rolenames",{"_index":14233,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["ltiroles",{"_index":14232,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{}}}],["ltiroles.filter",{"_index":14273,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["ltiroles.join",{"_index":14243,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["ltiroletype",{"_index":6960,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{}}}],["ltiroletype.instructor",{"_index":14325,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype.learner",{"_index":14326,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltiroletype})@property({nullable",{"_index":14292,"title":{},"body":{"entities/LtiTool.html":{}}}],["ltitool",{"_index":6972,"title":{"entities/LtiTool.html":{}},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["ltitool(props",{"_index":14348,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["ltitooldo",{"_index":7038,"title":{"classes/LtiToolDO.html":{}},"body":{"classes/CustomLtiPropertyDO.html":{},"injectables/HydraSsoService.html":{},"injectables/IdTokenService.html":{},"classes/LtiToolDO.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{}}}],["ltitoolfactory",{"_index":14317,"title":{"classes/LtiToolFactory.html":{}},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolfactory.define(ltitool",{"_index":14323,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["ltitoolmodule",{"_index":14327,"title":{"modules/LtiToolModule.html":{}},"body":{"modules/LtiToolModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["ltitoolpromise",{"_index":14961,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ltitoolrepo",{"_index":4552,"title":{"injectables/LtiToolRepo.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/HydraSsoService.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/NextcloudStrategy.html":{},"modules/OauthModule.html":{},"modules/ToolApiModule.html":{}}}],["ltitools",{"_index":6971,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["ltitoolservice",{"_index":14331,"title":{"injectables/LtiToolService.html":{}},"body":{"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["ltitoolstabenabled",{"_index":12082,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["lumieducation/h5p",{"_index":21335,"title":{},"body":{"dependencies.html":{}}}],["m=256m",{"_index":22974,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["machine",{"_index":21910,"title":{},"body":{"license.html":{}}}],["made",{"_index":13786,"title":{},"body":{"injectables/LessonCopyService.html":{},"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["magic",{"_index":15591,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["mail",{"_index":1576,"title":{"interfaces/Mail.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/ISystemProperties.html":{},"interfaces/InlineAttachment.html":{},"classes/LdapConfig.html":{},"entities/LtiTool.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"interfaces/PlainTextMailContent.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/System.html":{},"injectables/UserRepo.html":{},"license.html":{}}}],["mail.interface",{"_index":14402,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mail.service",{"_index":14396,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mail_service_options",{"_index":14397,"title":{},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailattachment",{"_index":1562,"title":{"interfaces/MailAttachment.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["mailcontent",{"_index":1570,"title":{"interfaces/MailContent.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["mailmodule",{"_index":14391,"title":{"modules/MailModule.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["mailmodule.forroot",{"_index":17805,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mailmoduleoptions",{"_index":14393,"title":{"interfaces/MailModuleOptions.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["mailservice",{"_index":14395,"title":{"injectables/MailService.html":{}},"body":{"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["mailserviceoptions",{"_index":14399,"title":{"interfaces/MailServiceOptions.html":{}},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["main",{"_index":21651,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["main.ts",{"_index":9444,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["maintain",{"_index":21936,"title":{},"body":{"license.html":{}}}],["maintainability",{"_index":22448,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["maintenance",{"_index":14494,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{}}}],["major",{"_index":21800,"title":{},"body":{"license.html":{}}}],["make",{"_index":1921,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"modules/CommonToolModule.html":{},"classes/GlobalValidationPipe.html":{},"classes/ImportUserScope.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/PermissionService.html":{},"injectables/UserRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["makes",{"_index":21840,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["making",{"_index":19972,"title":{},"body":{"classes/UpdateNewsParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["manage",{"_index":9690,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["managed",{"_index":14112,"title":{},"body":{"controllers/LoginController.html":{}}}],["managed.'})@apiresponse({status",{"_index":14091,"title":{},"body":{"controllers/LoginController.html":{}}}],["management",{"_index":803,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/LocalStrategy.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SystemService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.config.ts",{"_index":11441,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{}}}],["management.console",{"_index":14412,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.console.ts",{"_index":3445,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["management.console.ts:12",{"_index":7650,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:14",{"_index":3455,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:31",{"_index":7658,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:58",{"_index":7655,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.console.ts:7",{"_index":3450,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["management.console.ts:72",{"_index":7663,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["management.controller",{"_index":14415,"title":{},"body":{"modules/ManagementModule.html":{}}}],["management.controller.ts",{"_index":7686,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:18",{"_index":7699,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:23",{"_index":7696,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:28",{"_index":7693,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:33",{"_index":7705,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.controller.ts:9",{"_index":7702,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management.integration.spec.ts",{"_index":22953,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.module",{"_index":14424,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/SystemModule.html":{}}}],["management.module.ts",{"_index":7720,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{}}}],["management.service",{"_index":7721,"title":{},"body":{"modules/DatabaseManagementModule.html":{},"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"modules/KeycloakModule.html":{}}}],["management.service.integration.spec.tsseeding",{"_index":22955,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["management.service.ts",{"_index":7722,"title":{},"body":{"injectables/DatabaseManagementService.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:100",{"_index":12239,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:11",{"_index":7747,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:15",{"_index":7743,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:17",{"_index":12215,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:170",{"_index":13079,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:186",{"_index":13081,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.service.ts:20",{"_index":7744,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:26",{"_index":12241,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:32",{"_index":7740,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:35",{"_index":12243,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:38",{"_index":7732,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:43",{"_index":12227,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:44",{"_index":7741,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:51",{"_index":12220,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:52",{"_index":7734,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:58",{"_index":7736,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:59",{"_index":12224,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:62",{"_index":7738,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:66",{"_index":7745,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:67",{"_index":12230,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:74",{"_index":12231,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:8",{"_index":7730,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["management.service.ts:81",{"_index":12218,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:89",{"_index":12234,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["management.service.ts:9",{"_index":13073,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["management.uc",{"_index":3461,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{},"classes/TestBootstrapConsole.html":{}}}],["management.uc.ts",{"_index":3471,"title":{},"body":{"injectables/BoardManagementUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["management.uc.ts:13",{"_index":3478,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:16",{"_index":3479,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:39",{"_index":3483,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:49",{"_index":3481,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:60",{"_index":3485,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:71",{"_index":3490,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:75",{"_index":3494,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management.uc.ts:79",{"_index":3487,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["management/database",{"_index":7687,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["management/identity",{"_index":11440,"title":{},"body":{"interfaces/IIdentityManagementConfig.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{}}}],["management/idm",{"_index":13153,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["management/keycloak",{"_index":11500,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"modules/ManagementModule.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["management/keycloak/keycloak.module",{"_index":17757,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["management/keycloak/keycloak.module.ts",{"_index":13207,"title":{},"body":{"modules/KeycloakModule.html":{}}}],["management/keycloak/service/keycloak",{"_index":13041,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["managementmodule",{"_index":14405,"title":{"modules/ManagementModule.html":{}},"body":{"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["managementservermodule",{"_index":14419,"title":{"modules/ManagementServerModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["managementservertestmodule",{"_index":14426,"title":{"modules/ManagementServerTestModule.html":{}},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules.html":{}}}],["manager",{"_index":1990,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["manager.ts",{"_index":17061,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:22",{"_index":17067,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:54",{"_index":17071,"title":{},"body":{"injectables/RuleManager.html":{}}}],["manager.ts:61",{"_index":17069,"title":{},"body":{"injectables/RuleManager.html":{}}}],["mandatory",{"_index":11285,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application.html":{}}}],["mandatory.loggable.ts",{"_index":20360,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:11",{"_index":20362,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.loggable.ts:4",{"_index":20361,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["mandatory.params",{"_index":20309,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["mandatory.params.ts",{"_index":20365,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory.params.ts:7",{"_index":20366,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{}}}],["mandatory/optional",{"_index":20293,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"todo.html":{}}}],["mandatorysince",{"_index":20213,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["manifest",{"_index":5065,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["manner",{"_index":22110,"title":{},"body":{"license.html":{}}}],["manual",{"_index":10350,"title":{},"body":{"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["manually",{"_index":22664,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["manufacture",{"_index":7919,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["many",{"_index":21717,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["manytomany",{"_index":2682,"title":{},"body":{"entities/Board.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/LessonEntity.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{}}}],["manytomany('boardelement",{"_index":2679,"title":{},"body":{"entities/Board.html":{}}}],["manytomany('course",{"_index":7425,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytomany('material",{"_index":11326,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["manytomany('system",{"_index":11716,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["manytomany('user",{"_index":6425,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["manytomany({entity",{"_index":16798,"title":{},"body":{"entities/Role.html":{}}}],["manytoone",{"_index":4926,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{}}}],["manytoone('columnboardtarget",{"_index":4924,"title":{},"body":{"entities/ColumnboardBoardElement.html":{}}}],["manytoone('course",{"_index":6633,"title":{},"body":{"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{}}}],["manytoone('coursegroup",{"_index":11324,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["manytoone('dashboardmodelentity",{"_index":7426,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["manytoone('lessonentity",{"_index":11971,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/LessonBoardElement.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["manytoone('schoolyear",{"_index":11717,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["manytoone('task",{"_index":11792,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{}}}],["manytoone('teamentity",{"_index":6762,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["manytoone('user",{"_index":6737,"title":{},"body":{"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{}}}],["manytoone(undefined",{"_index":6627,"title":{},"body":{"entities/CourseGroup.html":{},"classes/ExternalSourceEntity.html":{},"entities/FileEntity.html":{},"entities/GroupEntity.html":{},"classes/GroupUserEntity.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"classes/TeamUserEntity.html":{},"entities/UserLoginMigration.html":{}}}],["map",{"_index":3331,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{},"injectables/CopyHelperService.html":{},"classes/DashboardEntity.html":{},"injectables/DeleteFilesUc.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageMapper.html":{},"classes/GridElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"injectables/LessonCopyService.html":{},"classes/MetadataTypeMapper.html":{},"injectables/ProvisioningService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["map((element",{"_index":6311,"title":{},"body":{"classes/CopyMapper.html":{}}}],["map((elementwithposition",{"_index":7474,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["map((entity",{"_index":18654,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["map((group",{"_index":17311,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((match",{"_index":12565,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["map((relation",{"_index":17322,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["map((role",{"_index":20134,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["map((rolename",{"_index":20560,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["map((teacher",{"_index":5022,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["map(async",{"_index":11177,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["map.set(key",{"_index":6279,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map.set(status.originalentity.id",{"_index":6281,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["map[node.id",{"_index":3329,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["map[node.pathofchildren",{"_index":3622,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["map[node.pathofchildren].push(desc",{"_index":3623,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["mapaccountstodto",{"_index":628,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapaccountstodto(accounts",{"_index":631,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapbasictoolconfigdotoentity",{"_index":8801,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoentity(lti11config",{"_index":8811,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigdotoresponse",{"_index":8997,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigdotoresponse(externaltoolconfigdo",{"_index":9004,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapbasictoolconfigtodo",{"_index":8802,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapbasictoolconfigtodo(lti11config",{"_index":8814,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapboardelements",{"_index":16880,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapbodytodto",{"_index":19317,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapbodytodto(body",{"_index":19318,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["mapcolumnboard",{"_index":16881,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mapcolumnboardelement",{"_index":7920,"title":{},"body":{"classes/DtoCreator.html":{}}}],["mapcolumnboardelement(element",{"_index":7940,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mapconsentresponse",{"_index":15643,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentresponse(consent",{"_index":15648,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse",{"_index":15644,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapconsentsessionstoresponse(session",{"_index":15650,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapcontenttoresource",{"_index":4936,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontenttoresource(lessonid",{"_index":4952,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcontextexternaltoolrequest",{"_index":5813,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolrequest(request",{"_index":5815,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["mapcontextexternaltoolresponse",{"_index":5853,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontextexternaltoolresponse(contextexternaltool",{"_index":5854,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["mapcontexttypetoallowedauthorizationentitytype",{"_index":6018,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["mapcontexttypetoallowedauthorizationentitytype(type",{"_index":6019,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["mapcontexttypetodotype",{"_index":5746,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetodotype(type",{"_index":5760,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype",{"_index":5747,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcontexttypetoentitytype(type",{"_index":5762,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto",{"_index":10123,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfilelistresponsetocopyfilesdto(copyfilelistresponse",{"_index":10129,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto",{"_index":10124,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcopyfileresponsetocopyfiledto(response",{"_index":10131,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapcourseteacherstocopyrightowners",{"_index":4937,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseteacherstocopyrightowners(course",{"_index":4957,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["mapcourseuserstousergroup",{"_index":3119,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcourseuserstousergroup(course",{"_index":3127,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["mapcreateacceptloginrequestbody",{"_index":15638,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreateacceptloginrequestbody(loginrequestbody",{"_index":15639,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["mapcreatenewstodomain",{"_index":14666,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreatenewstodomain(params",{"_index":14670,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapcreaterequest",{"_index":8886,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcreaterequest(externaltoolcreateparams",{"_index":8896,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapcustomparameterdostoentities",{"_index":8803,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterdostoentities(customparameters",{"_index":8816,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities",{"_index":8804,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentrydostoentities(entries",{"_index":8818,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos",{"_index":8805,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterentryentitiestodos(entries",{"_index":8821,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos",{"_index":8806,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparameterstodos(customparameters",{"_index":8823,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapcustomparametertoresponse",{"_index":8998,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapcustomparametertoresponse(customparameters",{"_index":9007,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapdashboardtoentity",{"_index":7501,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtoentity(modelentity",{"_index":7516,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel",{"_index":7502,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdashboardtomodel(entity",{"_index":7519,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapdomainobjecttoentityproperties",{"_index":8730,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(entitydo",{"_index":8742,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapdomainobjecttoentityproperties(group",{"_index":10596,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapdomaintoadapter",{"_index":4527,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoadapter(team",{"_index":4528,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["mapdomaintoresponse",{"_index":22582,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapdosortordertoqueryorder",{"_index":9178,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdosortordertoqueryorder(sort",{"_index":9179,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["mapdotoentityproperties",{"_index":2389,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["mapdotoentityproperties(domainobject",{"_index":17992,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["mapdotoentityproperties(entitydo",{"_index":2415,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["mapdotoprovideroauthclient",{"_index":9165,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdotoprovideroauthclient(name",{"_index":9166,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["mapdtotoresponse",{"_index":14480,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapdtotoresponse(dto",{"_index":14481,"title":{},"body":{"injectables/MigrationMapper.html":{},"injectables/PageContentMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["mapelementtoentity",{"_index":7503,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapelementtoentity(modelentity",{"_index":7521,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapentitytodo",{"_index":2390,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["mapentitytodo(entity",{"_index":2418,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["mapentitytodomainobject",{"_index":8731,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobject(entity",{"_index":8744,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["mapentitytodomainobjectproperties",{"_index":10591,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodomainobjectproperties(entity",{"_index":10599,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapentitytodto",{"_index":19277,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytodto(teamentity",{"_index":19278,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["mapentitytoparenttype",{"_index":10125,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapentitytoparenttype(entity",{"_index":10133,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapexternalsourceentitytoexternalsource",{"_index":10592,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourceentitytoexternalsource(entity",{"_index":10602,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity",{"_index":10593,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternalsourcetoexternalsourceentity(externalsource",{"_index":10604,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery",{"_index":8887,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapexternaltoolfilterquerytoexternaltoolsearchquery(params",{"_index":8899,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto",{"_index":10126,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordlistresponsetodomainfilesdto(filerecordlistresponse",{"_index":10135,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto",{"_index":10127,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordresponsetofiledto(filerecordresponse",{"_index":10137,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapfilerecordtofilerecordparams",{"_index":10204,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfilerecordtofilerecordparams(filerecord",{"_index":10208,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["mapfootodomain",{"_index":22583,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapfromdtotolistresponse",{"_index":18686,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotolistresponse(systems",{"_index":18689,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse",{"_index":18687,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromdtotoresponse(system",{"_index":18690,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromentitiestodtos",{"_index":16806,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitiestodtos(enities",{"_index":16808,"title":{},"body":{"classes/RoleMapper.html":{}}}],["mapfromentitiestodtos(entities",{"_index":18624,"title":{},"body":{"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["mapfromentitytodto",{"_index":16807,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromentitytodto(entity",{"_index":16811,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/UserMapper.html":{}}}],["mapfromoauthconfigdtotoresponse",{"_index":18688,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigdtotoresponse(oauthconfigdto",{"_index":18692,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["mapfromoauthconfigentitytodto",{"_index":18623,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoauthconfigentitytodto(oauthconfig",{"_index":18627,"title":{},"body":{"classes/SystemMapper.html":{}}}],["mapfromoidcconfigentitytodto",{"_index":18645,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapfromoidcconfigentitytodto(systemid",{"_index":18648,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["mapgridelement",{"_index":7465,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelement(data",{"_index":7467,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["mapgridelementtomodel",{"_index":7504,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgridelementtomodel(elementwithposition",{"_index":7523,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapgroupuserentitytogroupuser",{"_index":10594,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupuserentitytogroupuser(entity",{"_index":10606,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity",{"_index":10595,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapgroupusertogroupuserentity(groupuser",{"_index":10609,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["mapimportuserfilterquerytodomain",{"_index":12380,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportuserfilterquerytodomain(query",{"_index":12381,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["mapimportusermatchscopetodomain",{"_index":12427,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapimportusermatchscopetodomain(match",{"_index":12429,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["maplearnroom",{"_index":7466,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplearnroom(metadata",{"_index":7469,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maplesson",{"_index":16882,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maplessoncopytodomain",{"_index":6284,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessoncopytodomain(params",{"_index":6286,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maplessonelement",{"_index":7921,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maplessonelement(element",{"_index":7942,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maplogindtotoresponse",{"_index":14146,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maplogindtotoresponse(logindto",{"_index":14147,"title":{},"body":{"classes/LoginResponseMapper.html":{}}}],["maploginresponse",{"_index":15645,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maploginresponse(providerloginresponse",{"_index":15652,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["maplti11toolconfigdotoentity",{"_index":8807,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoentity(lti11config",{"_index":8827,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigdotoresponse",{"_index":8999,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigdotoresponse(externaltoolconfigdo",{"_index":9009,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maplti11toolconfigtodo",{"_index":8808,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["maplti11toolconfigtodo(lti11config",{"_index":8829,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapmatchcreatortoresponse",{"_index":12428,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapmatchcreatortoresponse(matchcreator",{"_index":12431,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["mapnewsscopetodomain",{"_index":14667,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapnewsscopetodomain(query",{"_index":14672,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapoauth2configdotoentity",{"_index":8809,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configdotoentity(oauth2config",{"_index":8831,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo",{"_index":8810,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2configtodo(oauth2config",{"_index":8834,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["mapoauth2toolconfigdotoresponse",{"_index":9000,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauth2toolconfigdotoresponse(externaltoolconfigdo",{"_index":9011,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapoauthclientresponse",{"_index":15646,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapoauthclientresponse(oauthclient",{"_index":15654,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapped",{"_index":4533,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/DtoCreator.html":{},"classes/GroupDomainMapper.html":{},"controllers/LoginController.html":{},"controllers/OauthProviderController.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"injectables/SanisResponseMapper.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapped.id",{"_index":19685,"title":{},"body":{"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["mappedcolumnboard",{"_index":16929,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedconfig",{"_index":8948,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappedcustomparameter",{"_index":8953,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["mappedelements",{"_index":7570,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["mappedelements.includes(el",{"_index":7574,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mappedentity",{"_index":18664,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["mappedlesson",{"_index":16923,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedlocation",{"_index":19767,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mappedtask",{"_index":16906,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.availabledate",{"_index":16915,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.coursename",{"_index":16913,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.description",{"_index":16921,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.displaycolor",{"_index":16919,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtask.duedate",{"_index":16917,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["mappedtools",{"_index":19590,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{}}}],["mappedtype",{"_index":19769,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["mapper",{"_index":206,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/ColumnController.html":{},"injectables/CopyFilesService.html":{},"injectables/DashboardRepo.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"interfaces/IDashboardRepo.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/Oauth2Strategy.html":{},"injectables/PreviewService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapper.canmap(element",{"_index":5526,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["mapper.interface",{"_index":5520,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["mapper.interface.ts",{"_index":2590,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:5",{"_index":2596,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.interface.ts:7",{"_index":2593,"title":{},"body":{"interfaces/BaseResponseMapper.html":{}}}],["mapper.maptoresponse(item",{"_index":3707,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["mapper.maptoresponse(submissionitem",{"_index":8081,"title":{},"body":{"controllers/ElementController.html":{}}}],["mapper.name",{"_index":12969,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mapper.ts",{"_index":22581,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mapper/account",{"_index":1233,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["mapper/course.mapper",{"_index":6499,"title":{},"body":{"controllers/CourseController.html":{}}}],["mapper/dashboard.mapper",{"_index":7233,"title":{},"body":{"controllers/DashboardController.html":{}}}],["mapper/error.mapper",{"_index":10295,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["mapper/identity",{"_index":12835,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["mapper/import",{"_index":12300,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["mapper/login",{"_index":14101,"title":{},"body":{"controllers/LoginController.html":{}}}],["mapper/migration.mapper",{"_index":13445,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{}}}],["mapper/news.mapper",{"_index":14613,"title":{},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"controllers/TeamNewsController.html":{}}}],["mapper/oauth",{"_index":15415,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/provisioning",{"_index":16336,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["mapper/role.mapper",{"_index":16860,"title":{},"body":{"injectables/RoleService.html":{}}}],["mapper/room",{"_index":13383,"title":{},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["mapper/system",{"_index":18553,"title":{},"body":{"controllers/SystemController.html":{}}}],["mapper/team.mapper",{"_index":4645,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["mapper/token",{"_index":15075,"title":{},"body":{"injectables/OAuthService.html":{}}}],["mapper/tool",{"_index":19556,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"injectables/ToolReferenceUc.html":{}}}],["mapper/user",{"_index":12303,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/OauthSSOController.html":{}}}],["mapper/user.mapper",{"_index":20793,"title":{},"body":{"injectables/UserService.html":{}}}],["mapper/vc",{"_index":21028,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["mapper/video",{"_index":20914,"title":{},"body":{"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["mapperid",{"_index":12972,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["mappers",{"_index":5515,"title":{},"body":{"classes/ContentElementResponseFactory.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mapping",{"_index":22555,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mapredirectresponse",{"_index":15647,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapredirectresponse(redirect",{"_index":15655,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["mapreferencetoentity",{"_index":7505,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetoentity(modelentity",{"_index":7525,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel",{"_index":7506,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["mapreferencetomodel(reference",{"_index":7527,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["maprequesttobasictoolconfig",{"_index":8888,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttobasictoolconfig(externaltoolconfigparams",{"_index":8902,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo",{"_index":8889,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterdo(customparameterparams",{"_index":8906,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo",{"_index":5814,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttocustomparameterentrydo(customparameterparams",{"_index":5818,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate",{"_index":8890,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigcreate(externaltoolconfigparams",{"_index":8909,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate",{"_index":8891,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttolti11toolconfigupdate(externaltoolconfigparams",{"_index":8912,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate",{"_index":8892,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigcreate(externaltoolconfigparams",{"_index":8916,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate",{"_index":8893,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprequesttooauth2toolconfigupdate(externaltoolconfigparams",{"_index":8919,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["maprolestoltiroles",{"_index":14261,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprolestoltiroles(rolenames",{"_index":14262,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["maprpcerrorresponsetodomainerror",{"_index":8201,"title":{},"body":{"classes/ErrorMapper.html":{},"injectables/FilesStorageProducer.html":{}}}],["maprpcerrorresponsetodomainerror(errorobj",{"_index":8202,"title":{},"body":{"classes/ErrorMapper.html":{}}}],["maps",{"_index":4530,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["mapsanisroletorolename",{"_index":17278,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapsanisroletorolename(source",{"_index":17282,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["mapscanresultparamstodto",{"_index":9806,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapscanresultparamstodto(scanresultparams",{"_index":9809,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["mapschoolexternaltoolrequest",{"_index":17427,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapschoolexternaltoolrequest(request",{"_index":17429,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["mapsearchparamstoquery",{"_index":20369,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchparamstoquery(searchparams",{"_index":20371,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapsearchresult",{"_index":629,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsearchresult(accountentities",{"_index":633,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{}}}],["mapsessiontodto",{"_index":15381,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsessiontodto(session",{"_index":15382,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["mapsortingquerytodomain",{"_index":8894,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapsortingquerytodomain(sortingquery",{"_index":8923,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["mapstringtoparenttype",{"_index":10128,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["mapstringtoparenttype(input",{"_index":10139,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["maptask",{"_index":16883,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["maptaskcopytodomain",{"_index":6285,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcopytodomain(params",{"_index":6290,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptaskcreatetodomain",{"_index":18919,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskcreatetodomain(params",{"_index":18921,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskelement",{"_index":7922,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptaskelement(element",{"_index":7944,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptasktowebcontentresource",{"_index":4938,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptasktowebcontentresource(task",{"_index":4962,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["maptaskupdatetodomain",{"_index":18920,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptaskupdatetodomain(params",{"_index":18923,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoallowedauthorizationentitytype",{"_index":10205,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowedauthorizationentitytype(type",{"_index":10210,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["maptoallowemetadatatype",{"_index":14449,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptoallowemetadatatype(type",{"_index":14450,"title":{},"body":{"classes/MetadataTypeMapper.html":{}}}],["maptobaseresponse",{"_index":21205,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptobaseresponse(from",{"_index":21208,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoboardelement",{"_index":2743,"title":{},"body":{"entities/Board.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse",{"_index":19575,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplatelistresponse(toolinfos",{"_index":19579,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse",{"_index":19576,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocontextexternaltoolconfigurationtemplateresponse(toolinfo",{"_index":19582,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptocustomparameterentryresponse",{"_index":17443,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptocustomparameterentryresponse(entries",{"_index":17446,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptodo",{"_index":4342,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodo(entity",{"_index":4346,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodomain",{"_index":16825,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptodomain(query",{"_index":20548,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["maptodomain(rolename",{"_index":16826,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptodos",{"_index":4343,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodos(entities",{"_index":4348,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptodto",{"_index":630,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/CalendarMapper.html":{}}}],["maptodto(account",{"_index":636,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["maptodto(event",{"_index":3937,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["maptoelementdtos",{"_index":7923,"title":{},"body":{"classes/DtoCreator.html":{}}}],["maptoelementdtos(elements",{"_index":7946,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["maptoentities",{"_index":4344,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentities(domainobjects",{"_index":4350,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity",{"_index":4345,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoentity(domainobject",{"_index":4352,"title":{},"body":{"classes/ClassMapper.html":{}}}],["maptoexternalgroupdtos",{"_index":17279,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupdtos(source",{"_index":17284,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser",{"_index":17280,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalgroupuser(relation",{"_index":17286,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto",{"_index":12596,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternalschooldto(schooldo",{"_index":12598,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptoexternalschooldto(source",{"_index":17287,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaltoolresponse",{"_index":9001,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaltoolresponse(externaltool",{"_index":9013,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptoexternaluserdto",{"_index":12597,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(source",{"_index":17289,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["maptoexternaluserdto(userdo",{"_index":12601,"title":{},"body":{"classes/IservMapper.html":{}}}],["maptofilerecordlistresponse",{"_index":9807,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordlistresponse(filerecords",{"_index":9812,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse",{"_index":9808,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptofilerecordresponse(filerecord",{"_index":9814,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["maptoinforesponse",{"_index":21206,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptoinforesponse(from",{"_index":21210,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptointernal",{"_index":16362,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptointernal(dto",{"_index":16363,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["maptojoinresponse",{"_index":21207,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptojoinresponse(from",{"_index":21211,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["maptokenresponsetodto",{"_index":19505,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokenresponsetodto(response",{"_index":19508,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["maptokeycloakidentityprovider",{"_index":15885,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptokeycloakidentityprovider(oidcconfig",{"_index":15888,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["maptologmessagedata",{"_index":14668,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptologmessagedata(news",{"_index":14674,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptometadataresponse",{"_index":6682,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptometadataresponse(course",{"_index":6683,"title":{},"body":{"classes/CourseMapper.html":{}}}],["maptoparameterlocation",{"_index":19744,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoparameterlocation(location",{"_index":19748,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptoresponse",{"_index":975,"title":{},"body":{"classes/AccountResponseMapper.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/CopyMapper.html":{},"classes/DashboardMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/ImportUserMapper.html":{},"classes/NewsMapper.html":{},"classes/ResolvedUserMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SchoolInfoMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptoresponse(account",{"_index":977,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponse(board",{"_index":3670,"title":{},"body":{"classes/BoardResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["maptoresponse(card",{"_index":4114,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["maptoresponse(column",{"_index":4896,"title":{},"body":{"classes/ColumnResponseMapper.html":{}}}],["maptoresponse(copystatus",{"_index":6294,"title":{},"body":{"classes/CopyMapper.html":{}}}],["maptoresponse(dashboard",{"_index":7471,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["maptoresponse(element",{"_index":2595,"title":{},"body":{"interfaces/BaseResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["maptoresponse(importuser",{"_index":12384,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["maptoresponse(news",{"_index":14676,"title":{},"body":{"classes/NewsMapper.html":{}}}],["maptoresponse(rolename",{"_index":16828,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["maptoresponse(schoolinfo",{"_index":17581,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["maptoresponse(sharetoken",{"_index":18015,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["maptoresponse(sharetokeninfo",{"_index":17970,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["maptoresponse(status",{"_index":3732,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{},"classes/TaskStatusMapper.html":{}}}],["maptoresponse(submissionitem",{"_index":18331,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["maptoresponse(target",{"_index":18753,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["maptoresponse(taskwithstatus",{"_index":18926,"title":{},"body":{"classes/TaskMapper.html":{}}}],["maptoresponse(user",{"_index":16694,"title":{},"body":{"classes/ResolvedUserMapper.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{}}}],["maptoresponsefromentity",{"_index":976,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoresponsefromentity(account",{"_index":979,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse",{"_index":19577,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplatelistresponse(externaltools",{"_index":19585,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse",{"_index":19578,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolconfigurationtemplateresponse(externaltool",{"_index":19587,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["maptoschoolexternaltoolresponse",{"_index":17444,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":17448,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse",{"_index":17445,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosearchlistresponse(externaltools",{"_index":17449,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["maptosinglefileparams",{"_index":10206,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptosinglefileparams(params",{"_index":10214,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostatusresponse",{"_index":18390,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostatusresponse(submission",{"_index":18391,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["maptostreamablefile",{"_index":10207,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptostreamablefile(fileresponse",{"_index":10216,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["maptotoolconfigtype",{"_index":19745,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolconfigtype(launchdatatype",{"_index":19750,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype",{"_index":19746,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchdatatype(configtype",{"_index":19753,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse",{"_index":19747,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoollaunchrequestresponse(toollaunchrequest",{"_index":19756,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["maptotoolreference",{"_index":19864,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreference(externaltool",{"_index":19865,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["maptotoolreferenceresponse",{"_index":9002,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponse(toolreference",{"_index":9015,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses",{"_index":9003,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["maptotoolreferenceresponses(toolreferences",{"_index":9019,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["mapupdatenewstodomain",{"_index":14669,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdatenewstodomain(params",{"_index":14678,"title":{},"body":{"classes/NewsMapper.html":{}}}],["mapupdaterequest",{"_index":8895,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapupdaterequest(externaltoolupdateparams",{"_index":8928,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["mapuserloginmigrationdotoresponse",{"_index":20370,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["mapuserloginmigrationdotoresponse(domainobject",{"_index":20374,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["march",{"_index":22151,"title":{},"body":{"license.html":{}}}],["marked",{"_index":7779,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["markedfordelete",{"_index":9795,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["markfilesownedbyuserfordeletion",{"_index":10071,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfilesownedbyuserfordeletion(userid",{"_index":10074,"title":{},"body":{"injectables/FilesService.html":{}}}],["markfordelete",{"_index":9763,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"miscellaneous/functions.html":{}}}],["markfordelete(filerecords",{"_index":21542,"title":{},"body":{"miscellaneous/functions.html":{}}}],["markfordeletion",{"_index":9623,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["marks",{"_index":22027,"title":{},"body":{"license.html":{}}}],["markunmigratedusersasoutdated",{"_index":17602,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["markunmigratedusersasoutdated(schoolid",{"_index":17620,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["masks",{"_index":21741,"title":{},"body":{"license.html":{}}}],["master",{"_index":22957,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["match",{"_index":577,"title":{},"body":{"controllers/AccountController.html":{},"classes/ApiValidationErrorResponse.html":{},"entities/Board.html":{},"classes/ErrorResponse.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FilesRepo.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"injectables/LessonRepo.html":{},"classes/PatchMyPasswordParams.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["match.mapper",{"_index":12304,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["match.mapper.ts",{"_index":20547,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:20",{"_index":20550,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.mapper.ts:8",{"_index":20549,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["match.params.ts",{"_index":19966,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.params.ts:7",{"_index":19968,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["match.response",{"_index":12362,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["match.response.ts",{"_index":20542,"title":{},"body":{"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["match.response.ts:19",{"_index":20570,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:22",{"_index":20567,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:25",{"_index":20565,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:28",{"_index":20566,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:35",{"_index":20569,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:41",{"_index":20568,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match.response.ts:44",{"_index":20543,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["match.response.ts:7",{"_index":20564,"title":{},"body":{"classes/UserMatchResponse.html":{}}}],["match_matchedby",{"_index":11488,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["match_userid",{"_index":11486,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/UserRepo.html":{}}}],["matchancestors",{"_index":3615,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchancestors(desc",{"_index":3620,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["matchcreator",{"_index":11450,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMatchMapper.html":{},"classes/UserMatchMapper.html":{}}}],["matchcreator.auto",{"_index":12443,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreator.manual",{"_index":12441,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchcreatorscope",{"_index":11495,"title":{},"body":{"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.auto",{"_index":12435,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.manual",{"_index":12437,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matchcreatorscope.none",{"_index":12439,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{}}}],["matched",{"_index":3885,"title":{},"body":{"classes/BusinessError.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{}}}],["matched(matchedby",{"_index":12345,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["matchedby",{"_index":11448,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["matches",{"_index":472,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"injectables/CopyHelperService.html":{},"classes/CourseQueryParams.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["matches(object.values(commoncartridgeversion).join",{"_index":6766,"title":{},"body":{"classes/CourseQueryParams.html":{}}}],["matches(passwordpattern",{"_index":476,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["matches.groups",{"_index":6271,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["matches.groups.name",{"_index":6272,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["matches.length",{"_index":11480,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matches[1",{"_index":11481,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["matching",{"_index":104,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"modules.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["matchingparameter",{"_index":296,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["matchingparameterentry",{"_index":180,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["matchingparameterentry?.value",{"_index":328,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["matchingparams",{"_index":9280,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchingparams.some((param",{"_index":9326,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["matchsinglerule",{"_index":17063,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchsinglerule(rules",{"_index":17068,"title":{},"body":{"injectables/RuleManager.html":{}}}],["matchtype",{"_index":12433,"title":{},"body":{"classes/ImportUserMatchMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["matchtype.auto",{"_index":12444,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["matchtype.manual",{"_index":12442,"title":{},"body":{"classes/ImportUserMatchMapper.html":{}}}],["material",{"_index":11307,"title":{"entities/Material.html":{}},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"license.html":{}}}],["material(element",{"_index":13816,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["materialfactory",{"_index":14440,"title":{"classes/MaterialFactory.html":{}},"body":{"classes/MaterialFactory.html":{}}}],["materialfactory.define(material",{"_index":14443,"title":{},"body":{"classes/MaterialFactory.html":{}}}],["materialgroupstatus",{"_index":13820,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["materialid",{"_index":11316,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{}}}],["materialids",{"_index":11327,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["materially",{"_index":21993,"title":{},"body":{"license.html":{}}}],["materials",{"_index":11310,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"entities/Material.html":{}}}],["materials.entity",{"_index":11308,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["materialsrepo",{"_index":14444,"title":{"injectables/MaterialsRepo.html":{}},"body":{"injectables/MaterialsRepo.html":{}}}],["materialsstatus",{"_index":13709,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["materialsstatus.push(materialgroupstatus",{"_index":13823,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["math.ceil(timedifference",{"_index":1845,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["math.floor(index",{"_index":7351,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["math.floor(math.random",{"_index":3526,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["math.round(math.random",{"_index":9800,"title":{},"body":{"classes/FileRecordFactory.html":{}}}],["matter",{"_index":22884,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["max",{"_index":3493,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["max(100",{"_index":16055,"title":{},"body":{"classes/PaginationParams.html":{}}}],["max(500",{"_index":13987,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["max_file_size",{"_index":11406,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["max_redirects",{"_index":10927,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["max_security_check_file_size",{"_index":11407,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["maxage",{"_index":17835,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["maxdelay",{"_index":13305,"title":{},"body":{"injectables/LdapService.html":{}}}],["maxexternaltoollogosizeinbytes",{"_index":8616,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["maximum",{"_index":1037,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{}}}],["maxredirects",{"_index":10967,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["maxsubmission",{"_index":12005,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["maxsubmissions",{"_index":3741,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["maxusers",{"_index":2261,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["maybe",{"_index":8838,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["md",{"_index":22304,"title":{},"body":{"todo.html":{}}}],["me(@currentuser",{"_index":20031,"title":{},"body":{"controllers/UserController.html":{}}}],["me(authtoken",{"_index":1322,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["me(currentuser",{"_index":20026,"title":{},"body":{"controllers/UserController.html":{}}}],["me(userid",{"_index":20783,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["meaning",{"_index":22035,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["meaningful",{"_index":21656,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["means",{"_index":21624,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["measure",{"_index":21848,"title":{},"body":{"license.html":{}}}],["measures",{"_index":21626,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mechanism",{"_index":22529,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["medium",{"_index":21872,"title":{},"body":{"license.html":{}}}],["meet",{"_index":21884,"title":{},"body":{"license.html":{}}}],["meeting",{"_index":2253,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{}}}],["meeting.config",{"_index":2131,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["meeting.config.ts",{"_index":2093,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:1",{"_index":2096,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting.config.ts:6",{"_index":2097,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{}}}],["meeting_id",{"_index":2249,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["meetingid",{"_index":2094,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["meetingname",{"_index":2262,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["meets",{"_index":21787,"title":{},"body":{"license.html":{}}}],["member",{"_index":1304,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ErrorLoggable.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/JwtExtractor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/TeamsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["memberids",{"_index":11833,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["memberids.some((id",{"_index":11838,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["members",{"_index":1359,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/NextcloudStrategy.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/ShareTokenBodyParams.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["memory",{"_index":10323,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["memorystore",{"_index":17823,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mention",{"_index":22908,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["mentioned",{"_index":22500,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mentor",{"_index":6965,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["menu",{"_index":21785,"title":{},"body":{"license.html":{}}}],["merchantability",{"_index":22193,"title":{},"body":{"license.html":{}}}],["mere",{"_index":21772,"title":{},"body":{"license.html":{}}}],["merge",{"_index":21660,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mergeelementintoposition",{"_index":7263,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["mergeelementintoposition(element",{"_index":7295,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["merging",{"_index":22082,"title":{},"body":{"license.html":{}}}],["merlinreference",{"_index":11318,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["message",{"_index":1327,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/AuthorizationError.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/IError.html":{},"interfaces/ILegacyLogger.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"interfaces/Meta.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"interfaces/NextcloudGroups.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"interfaces/OcsResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/RpcMessage.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"interfaces/SuccessfulRes.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceCreateParams.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["message.ts",{"_index":11400,"title":{},"body":{"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["messagekey",{"_index":2103,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["messages",{"_index":22903,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["messagewithcontext",{"_index":14077,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["met",{"_index":21823,"title":{},"body":{"license.html":{}}}],["meta",{"_index":10747,"title":{"interfaces/Meta.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["meta_bbb",{"_index":2114,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["metadata",{"_index":2263,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"classes/ErrorLoggable.html":{},"classes/GlobalValidationPipe.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["metadata.response.ts",{"_index":6696,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:28",{"_index":6712,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:33",{"_index":6715,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:38",{"_index":6713,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:43",{"_index":6711,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:48",{"_index":6714,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:5",{"_index":6709,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:53",{"_index":6716,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:58",{"_index":6710,"title":{},"body":{"classes/CourseMetadataResponse.html":{}}}],["metadata.response.ts:61",{"_index":6697,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["metadata.type",{"_index":7548,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["metadataprops",{"_index":5162,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["metadatas",{"_index":8165,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatas.some",{"_index":8169,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["metadatatypemapper",{"_index":14447,"title":{"classes/MetadataTypeMapper.html":{}},"body":{"classes/MetadataTypeMapper.html":{}}}],["method",{"_index":235,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/BBBService.html":{},"injectables/CommonCartridgeExportService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/HydraAdapter.html":{},"interfaces/ILegacyLogger.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/Lti11EncryptionService.html":{},"classes/OauthClientBody.html":{},"injectables/PermissionService.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"classes/ServerConsole.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["method.enum",{"_index":15272,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["methodes",{"_index":23131,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["methodnotallowedexception",{"_index":7906,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["methods",{"_index":8,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IGridElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementResponseMapper.html":{},"modules/RocketChatModule.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["metric",{"_index":16256,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics",{"_index":16253,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts",{"_index":16243,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:19",{"_index":16246,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["metrics.ts:22",{"_index":16247,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["micro",{"_index":23058,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["microservice",{"_index":22385,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["microservices",{"_index":23124,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["middleware",{"_index":16257,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["middlewareconsumer",{"_index":17779,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["middlewares",{"_index":16254,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["migrate",{"_index":11616,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/OauthUc.html":{},"classes/SchoolMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{},"dependencies.html":{}}}],["migrate(options",{"_index":11619,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["migrate(skip",{"_index":13017,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["migrate(start",{"_index":13178,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migrate(userjwt",{"_index":15815,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated",{"_index":14925,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"controllers/OauthSSOController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migrated.'})@apiresponse({type",{"_index":15713,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migratedaccounts",{"_index":13181,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migratedusers",{"_index":17665,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migratedusers.data.foreach((user",{"_index":17666,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrates",{"_index":20516,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrateschool",{"_index":17603,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateschool(externalid",{"_index":17622,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migrateuser",{"_index":15694,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/UserMigrationService.html":{}}}],["migrateuser(currentuserid",{"_index":20613,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migrateuser(jwt",{"_index":15710,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrateuserlogin",{"_index":20257,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrateuserlogin(jwt",{"_index":20278,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrating",{"_index":20225,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration",{"_index":52,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"modules/ImportUserModule.html":{},"classes/KeycloakConsole.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/OAuthMigrationError.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/SSOLoginQuery.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{}}}],["migration.controller",{"_index":20250,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.controller.ts",{"_index":20253,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:115",{"_index":20299,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:139",{"_index":20287,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:167",{"_index":20294,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:17",{"_index":20574,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.controller.ts:199",{"_index":20266,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:214",{"_index":20281,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:59",{"_index":20277,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.controller.ts:89",{"_index":20271,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.do.ts",{"_index":20339,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:11",{"_index":20343,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:13",{"_index":20346,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:15",{"_index":20342,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:17",{"_index":20341,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:5",{"_index":20344,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:7",{"_index":20345,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.do.ts:9",{"_index":20347,"title":{},"body":{"classes/UserLoginMigrationDO.html":{}}}],["migration.dto",{"_index":13468,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{}}}],["migration.dto.ts",{"_index":15389,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:10",{"_index":15390,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:2",{"_index":15394,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:4",{"_index":15393,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:6",{"_index":15392,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.dto.ts:8",{"_index":15391,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["migration.entity",{"_index":11697,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["migration.entity.ts",{"_index":20211,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:11",{"_index":20218,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:15",{"_index":20219,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:18",{"_index":20221,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:21",{"_index":20217,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:24",{"_index":20220,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:27",{"_index":20215,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.entity.ts:30",{"_index":20216,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["migration.error",{"_index":15160,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{}}}],["migration.error.ts",{"_index":13247,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/OAuthMigrationError.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["migration.error.ts:11",{"_index":13252,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.error.ts:12",{"_index":15001,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:14",{"_index":14995,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["migration.error.ts:17",{"_index":14516,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:22",{"_index":14517,"title":{},"body":{"classes/MissingSchoolNumberException.html":{}}}],["migration.error.ts:28",{"_index":14453,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:33",{"_index":14454,"title":{},"body":{"classes/MigrationAlreadyActivatedException.html":{}}}],["migration.error.ts:4",{"_index":17565,"title":{},"body":{"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{}}}],["migration.error.ts:6",{"_index":13250,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{}}}],["migration.mapper",{"_index":15734,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migration.mapper.ts",{"_index":20368,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{},"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:13",{"_index":20375,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.mapper.ts:5",{"_index":20590,"title":{},"body":{"classes/UserMigrationMapper.html":{}}}],["migration.mapper.ts:6",{"_index":20372,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration.module",{"_index":20251,"title":{},"body":{"modules/UserLoginMigrationApiModule.html":{}}}],["migration.module.ts",{"_index":20388,"title":{},"body":{"modules/UserLoginMigrationModule.html":{}}}],["migration.params",{"_index":20306,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migration.params.ts",{"_index":15150,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:13",{"_index":15151,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:17",{"_index":15153,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.params.ts:8",{"_index":15152,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration.repo.ts",{"_index":20392,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:10",{"_index":20393,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:15",{"_index":20397,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.repo.ts:23",{"_index":20394,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["migration.response",{"_index":15727,"title":{},"body":{"controllers/OauthSSOController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration.response.ts",{"_index":20415,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:1",{"_index":20593,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:12",{"_index":20421,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:17",{"_index":20418,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:22",{"_index":20420,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:27",{"_index":20417,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:32",{"_index":20416,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.response.ts:6",{"_index":20594,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["migration.response.ts:7",{"_index":20419,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{}}}],["migration.rule",{"_index":17075,"title":{},"body":{"injectables/RuleManager.html":{}}}],["migration.rule.ts",{"_index":20431,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:11",{"_index":20434,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:17",{"_index":20433,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.rule.ts:8",{"_index":20432,"title":{},"body":{"injectables/UserLoginMigrationRule.html":{}}}],["migration.service",{"_index":12841,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts",{"_index":13173,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:106",{"_index":17630,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:111",{"_index":20459,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:119",{"_index":20617,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:12",{"_index":17607,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:129",{"_index":20443,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:130",{"_index":17613,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:135",{"_index":20605,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:141",{"_index":17625,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:147",{"_index":17610,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:149",{"_index":20445,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:158",{"_index":17616,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:159",{"_index":20602,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:165",{"_index":17619,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:169",{"_index":20607,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:171",{"_index":20463,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:18",{"_index":13179,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:181",{"_index":20449,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:189",{"_index":20451,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:195",{"_index":20453,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:20",{"_index":17632,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:21",{"_index":20620,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:215",{"_index":20447,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:23",{"_index":20622,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:25",{"_index":20619,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:27",{"_index":20621,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:28",{"_index":17623,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:29",{"_index":20457,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration.service.ts:42",{"_index":20610,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:43",{"_index":17628,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:48",{"_index":13177,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:54",{"_index":20612,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:81",{"_index":17621,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration.service.ts:82",{"_index":20461,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:9",{"_index":13175,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["migration.service.ts:91",{"_index":20611,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.service.ts:95",{"_index":20455,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["migration.service.ts:97",{"_index":20614,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration.uc",{"_index":20576,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["migration.uc.ts",{"_index":4444,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:11",{"_index":4451,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:14",{"_index":16717,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:15",{"_index":19490,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:155",{"_index":20506,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:18",{"_index":20498,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:19",{"_index":4453,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:21",{"_index":18165,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:23",{"_index":19493,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:24",{"_index":16720,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:30",{"_index":20504,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:40",{"_index":20502,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:44",{"_index":18163,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:49",{"_index":16718,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration.uc.ts:51",{"_index":19491,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration.uc.ts:58",{"_index":4456,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration.uc.ts:60",{"_index":20500,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration.uc.ts:78",{"_index":20507,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/controller/dto/oauth2",{"_index":15149,"title":{},"body":{"classes/Oauth2MigrationParams.html":{}}}],["migration/controller/dto/request/page",{"_index":16031,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["migration/controller/dto/request/school",{"_index":17563,"title":{},"body":{"classes/SchoolIdParams.html":{}}}],["migration/controller/dto/request/user",{"_index":20364,"title":{},"body":{"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["migration/controller/dto/response/page",{"_index":16044,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["migration/controller/dto/response/user",{"_index":20414,"title":{},"body":{"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["migration/controller/user",{"_index":20252,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{}}}],["migration/error",{"_index":20658,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/error/oauth",{"_index":14989,"title":{},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{}}}],["migration/error/school",{"_index":17591,"title":{},"body":{"classes/SchoolMigrationError.html":{},"classes/SchoolNumberMissingLoggableException.html":{}}}],["migration/error/user",{"_index":20238,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["migration/loggable/user",{"_index":20359,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["migration/mapper/page",{"_index":16022,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["migration/mapper/user",{"_index":20367,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["migration/service",{"_index":15825,"title":{},"body":{"injectables/OauthUc.html":{}}}],["migration/service/dto",{"_index":15730,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/UserMigrationMapper.html":{}}}],["migration/service/dto/migration.dto.ts",{"_index":14474,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/migration.dto.ts:2",{"_index":14476,"title":{},"body":{"classes/MigrationDto.html":{}}}],["migration/service/dto/page",{"_index":16011,"title":{},"body":{"classes/PageContentDto.html":{}}}],["migration/service/dto/school",{"_index":17594,"title":{},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["migration/service/migration",{"_index":14460,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["migration/service/school",{"_index":17598,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["migration/service/user",{"_index":20422,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["migration/success",{"_index":20662,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["migration/uc/close",{"_index":4443,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["migration/uc/dto/user",{"_index":20390,"title":{},"body":{"interfaces/UserLoginMigrationQuery.html":{}}}],["migration/uc/restart",{"_index":16715,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["migration/uc/start",{"_index":18159,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["migration/uc/toggle",{"_index":19488,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["migration/uc/user",{"_index":20494,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migration/user",{"_index":17796,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationalreadyactivatedexception",{"_index":13258,"title":{"classes/MigrationAlreadyActivatedException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["migrationbody",{"_index":13458,"title":{"classes/MigrationBody.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/MigrationBody.html":{}}}],["migrationbody.oauthmigrationfinished",{"_index":13479,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationmandatory",{"_index":13478,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationbody.oauthmigrationpossible",{"_index":13477,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationcheckservice",{"_index":14459,"title":{"injectables/MigrationCheckService.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/UserLoginMigrationModule.html":{}}}],["migrationconsentredirect",{"_index":15088,"title":{},"body":{"injectables/OAuthService.html":{}}}],["migrationdto",{"_index":13474,"title":{"classes/MigrationDto.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{}}}],["migrationdto.redirect",{"_index":20531,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationdto.redirect.includes('migration/error",{"_index":20530,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["migrationerror",{"_index":15752,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromsource",{"_index":15754,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerror.officialschoolnumberfromtarget",{"_index":15755,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler",{"_index":15695,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationerrorhandler(error",{"_index":15715,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["migrationflags",{"_index":13453,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationmapper",{"_index":13438,"title":{"injectables/MigrationMapper.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{}}}],["migrationmaybecompleted",{"_index":14488,"title":{"classes/MigrationMayBeCompleted.html":{}},"body":{"classes/MigrationMayBeCompleted.html":{}}}],["migrationmaynotbecompleted",{"_index":14496,"title":{"classes/MigrationMayNotBeCompleted.html":{}},"body":{"classes/MigrationMayNotBeCompleted.html":{}}}],["migrationpage",{"_index":20312,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.data.map",{"_index":20316,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationpage.total",{"_index":20318,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse",{"_index":13469,"title":{"classes/MigrationResponse.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{}}}],["migrationresponses",{"_index":20315,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationresponse})@apiunauthorizedresponse",{"_index":13460,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrationresponse})@apiunauthorizedresponse()@apinotfoundresponse({description",{"_index":13454,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["migrations",{"_index":20254,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["migrationsflags",{"_index":13455,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["mikro",{"_index":96,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"classes/BasicToolConfigEntity.html":{},"entities/Board.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"injectables/ClassesRepo.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"classes/DoBaseFactory.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesRepo.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"modules/H5PEditorModule.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/LdapConfig.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/Scope.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mikroorm",{"_index":7662,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"injectables/FilesStorageConsumer.html":{},"modules/MongoMemoryDatabaseModule.html":{},"interfaces/Options.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["mikroorm/asynclocalstorage",{"_index":22296,"title":{},"body":{"todo.html":{}}}],["mikroormmodule",{"_index":10250,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mikroormmodule.forroot",{"_index":10275,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mikroormmodule.forrootasync",{"_index":14541,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmoduleasyncoptions",{"_index":14536,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["mikroormmodulesyncoptions",{"_index":10251,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mikroservice",{"_index":22554,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["milliseconds",{"_index":17664,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["mime",{"_index":9712,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["mimetype",{"_index":1565,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/GetFile.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{},"injectables/PreviewService.html":{},"interfaces/S3Config-1.html":{},"miscellaneous/functions.html":{}}}],["mimetype.split('/')[1",{"_index":16194,"title":{},"body":{"injectables/PreviewService.html":{}}}],["min",{"_index":3437,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/BoardManagementUc.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PaginationParams.html":{}}}],["min(0",{"_index":3442,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PaginationParams.html":{}}}],["min(1",{"_index":16054,"title":{},"body":{"classes/PaginationParams.html":{}}}],["mind",{"_index":23033,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["minimum",{"_index":1036,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/ListOauthClientsParams.html":{},"classes/PaginationParams.html":{},"classes/ShareTokenBodyParams.html":{}}}],["minio",{"_index":22331,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_password=miniouser",{"_index":22345,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minio_root_user=`miniouser",{"_index":22344,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minios3storage",{"_index":22341,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["minus",{"_index":14558,"title":{},"body":{"classes/MongoPatterns.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["minute",{"_index":13232,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["miscellaneous",{"_index":21476,"title":{"miscellaneous/functions.html":{}},"body":{"miscellaneous/functions.html":{}}}],["misrepresentation",{"_index":22019,"title":{},"body":{"license.html":{}}}],["missing",{"_index":1238,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/ClassService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/PseudonymService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberMissingLoggableException.html":{}}}],["missing.loggable",{"_index":17685,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["missing_tool_parameter_value",{"_index":14522,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["missingparameters",{"_index":294,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["missingparameters.length",{"_index":304,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["missingparameters.push(parameter",{"_index":303,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["missingschoolnumberexception",{"_index":13255,"title":{"classes/MissingSchoolNumberException.html":{}},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["missingtoolparametervalueloggableexception",{"_index":202,"title":{"classes/MissingToolParameterValueLoggableException.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["missingtoolparametervalueloggableexception(contextexternaltool",{"_index":306,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["mission",{"_index":14786,"title":{},"body":{"classes/NewsScope.html":{}}}],["missmatches",{"_index":19055,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["mixing",{"_index":13357,"title":{},"body":{"injectables/LdapStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mixwith",{"_index":21421,"title":{},"body":{"dependencies.html":{}}}],["mkdir",{"_index":10011,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdir(folderpath",{"_index":10016,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp",{"_index":10012,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mkdtemp(dirpath",{"_index":10020,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["mm",{"_index":14059,"title":{},"body":{"modules/LoggerModule.html":{}}}],["mnf:copyrightandotherrestrictions",{"_index":5200,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:description",{"_index":5202,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:general",{"_index":5196,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:lom",{"_index":5195,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:rights",{"_index":5199,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:string",{"_index":5198,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:title",{"_index":5197,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mnf:value",{"_index":5201,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["mocha",{"_index":22429,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mocha's",{"_index":22729,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mock",{"_index":8508,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/SystemFactory.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock.strategy.ts",{"_index":15901,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock/oidc",{"_index":15900,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["mock:0.6.0powershell",{"_index":22941,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock:0.6.0setup",{"_index":22942,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["mock_issuer",{"_index":18600,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mock_type",{"_index":18598,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockbaseurl",{"_index":8505,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mockcomment",{"_index":8510,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["mocked",{"_index":22832,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocking",{"_index":22793,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockreturnvalueonce",{"_index":22830,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocks",{"_index":22755,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mocksecret",{"_index":18594,"title":{},"body":{"classes/SystemFactory.html":{}}}],["mockservice",{"_index":22810,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mockservice.getuser.mockreturnvalueonce(resultuser",{"_index":22825,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["mode",{"_index":14495,"title":{},"body":{"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["model",{"_index":6914,"title":{},"body":{"classes/CreateNewsParams.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilterNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["modelentity",{"_index":7518,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["modelentity.gridelements.init",{"_index":7543,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.isinitialized",{"_index":7542,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.gridelements.remove(el",{"_index":7575,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.references.loaditems",{"_index":7535,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.title",{"_index":7541,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.user.id",{"_index":7547,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.xpos",{"_index":7538,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["modelentity.ypos",{"_index":7539,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["models",{"_index":14851,"title":{},"body":{"injectables/NewsUc.html":{}}}],["moderator",{"_index":2218,"title":{},"body":{"classes/BBBJoinConfig.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["moderatorcount",{"_index":2264,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["moderatormustapprovejoinrequests",{"_index":7891,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{}}}],["moderatorpw",{"_index":2117,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["modification",{"_index":21737,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["modifications",{"_index":21790,"title":{},"body":{"license.html":{}}}],["modified",{"_index":20260,"title":{},"body":{"controllers/UserLoginMigrationController.html":{},"license.html":{}}}],["modifies",{"_index":21888,"title":{},"body":{"license.html":{}}}],["modify",{"_index":21709,"title":{},"body":{"license.html":{}}}],["modifying",{"_index":21763,"title":{},"body":{"license.html":{}}}],["modularization",{"_index":22326,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["modularize",{"_index":18189,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["module",{"_index":425,"title":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICoreModuleConfig.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthUc.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"injectables/UserRepo.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["module.close",{"_index":22814,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(featureundertest",{"_index":22811,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.get(mockservice",{"_index":22812,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module.ts",{"_index":22585,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/application",{"_index":22791,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["module/repo",{"_index":22616,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["module/uc",{"_index":22611,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["moduleref",{"_index":22799,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(catscontroller",{"_index":22803,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["moduleref.get(sampleservice",{"_index":22802,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["modules",{"_index":427,"title":{"modules.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"injectables/ErrorLogger.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["modules/authorization/authorization.module.ts",{"_index":22623,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/feathers/feathers",{"_index":22621,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["modules/feathers/feathers.module.ts",{"_index":22622,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["moduluslength",{"_index":6870,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["moment",{"_index":14898,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["mongo",{"_index":778,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/BsonConverter.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"todo.html":{}}}],["mongo.patterns",{"_index":12540,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["mongo_url=mongodb://172.29.173.128:27030/rocketchat",{"_index":22991,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["mongod",{"_index":22332,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["mongodatabasemoduleoptions",{"_index":10319,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["mongodb",{"_index":948,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BaseFactory.html":{},"injectables/DatabaseManagementService.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["mongoexport",{"_index":11196,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongoimport",{"_index":11183,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["mongomemorydatabasemodule",{"_index":10317,"title":{"modules/MongoMemoryDatabaseModule.html":{}},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mongomemorydatabasemodule.forroot",{"_index":10326,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["mongomemoryserver",{"_index":22593,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["mongoose",{"_index":9611,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["mongopatterns",{"_index":12539,"title":{"classes/MongoPatterns.html":{}},"body":{"classes/ImportUserScope.html":{},"classes/MongoPatterns.html":{},"injectables/UserRepo.html":{}}}],["moodle",{"_index":1135,"title":{},"body":{"injectables/AccountService.html":{},"dependencies.html":{}}}],["more",{"_index":1922,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BaseRepo.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardNodeRepo.html":{},"interfaces/UserBoardRoles.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["moreover",{"_index":22055,"title":{},"body":{"license.html":{}}}],["mostly",{"_index":23127,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mount",{"_index":21619,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounted",{"_index":21611,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["mounts",{"_index":22278,"title":{},"body":{"todo.html":{}}}],["mountsdescription",{"_index":1540,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["move",{"_index":3372,"title":{},"body":{"injectables/BoardDoService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"controllers/ElementController.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["move(card",{"_index":4137,"title":{},"body":{"injectables/CardService.html":{}}}],["move(child",{"_index":3376,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["move(column",{"_index":4911,"title":{},"body":{"injectables/ColumnService.html":{}}}],["move(element",{"_index":5538,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["moveable",{"_index":23052,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["movecard",{"_index":3762,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{}}}],["movecard(urlparams",{"_index":4027,"title":{},"body":{"controllers/CardController.html":{}}}],["movecard(userid",{"_index":3789,"title":{},"body":{"injectables/BoardUc.html":{}}}],["movecardbodyparams",{"_index":4028,"title":{"classes/MoveCardBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/MoveCardBodyParams.html":{}}}],["movecolumn",{"_index":3763,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["movecolumn(urlparams",{"_index":4864,"title":{},"body":{"controllers/ColumnController.html":{}}}],["movecolumn(userid",{"_index":3792,"title":{},"body":{"injectables/BoardUc.html":{}}}],["movecolumnbodyparams",{"_index":4865,"title":{"classes/MoveColumnBodyParams.html":{}},"body":{"controllers/ColumnController.html":{},"classes/MoveColumnBodyParams.html":{}}}],["movecontentelementbody",{"_index":8057,"title":{"classes/MoveContentElementBody.html":{}},"body":{"controllers/ElementController.html":{},"classes/MoveContentElementBody.html":{}}}],["moved",{"_index":15808,"title":{},"body":{"injectables/OauthUc.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["moveelement",{"_index":4179,"title":{},"body":{"injectables/CardUc.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"controllers/ElementController.html":{}}}],["moveelement(from",{"_index":7297,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["moveelement(undefined",{"_index":7222,"title":{},"body":{"controllers/DashboardController.html":{}}}],["moveelement(urlparams",{"_index":8056,"title":{},"body":{"controllers/ElementController.html":{}}}],["moveelement(userid",{"_index":4193,"title":{},"body":{"injectables/CardUc.html":{}}}],["moveelementondashboard",{"_index":7615,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementondashboard(dashboardid",{"_index":7621,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["moveelementparams",{"_index":7224,"title":{"classes/MoveElementParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moveelementpositionparams",{"_index":14574,"title":{"classes/MoveElementPositionParams.html":{}},"body":{"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{}}}],["moves",{"_index":11615,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["movetotrash",{"_index":17102,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["movetotrash(paths",{"_index":17118,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["moving",{"_index":23136,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["mr",{"_index":18339,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["ms",{"_index":11630,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TimeoutInterceptor.html":{},"miscellaneous/functions.html":{}}}],["msg",{"_index":3923,"title":{},"body":{"modules/CacheWrapperModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/RedisModule.html":{}}}],["msgs",{"_index":1280,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["much",{"_index":22737,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["multi",{"_index":3454,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["multiple",{"_index":2187,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/GlobalValidationPipe.html":{},"classes/KeycloakSeedService.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["multivalued",{"_index":13007,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["muted",{"_index":21170,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["muteonstart",{"_index":2118,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["mutex",{"_index":21370,"title":{},"body":{"dependencies.html":{}}}],["n/a",{"_index":20532,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["n21",{"_index":1993,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/ContextExternalToolModule.html":{},"injectables/FederalStateService.html":{},"injectables/IdTokenService.html":{},"classes/LegacySchoolDo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SchoolYearService.html":{},"injectables/UserLoginMigrationUc.html":{},"modules/VideoConferenceModule.html":{}}}],["name",{"_index":31,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FilePermissionEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/InlineAttachment.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/ListOauthClientsParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config-1.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SortExternalToolParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["name${sequence",{"_index":8507,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["name.length",{"_index":9766,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["name.mapper",{"_index":12390,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["name.mapper.ts",{"_index":16824,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:12",{"_index":16827,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.mapper.ts:5",{"_index":16829,"title":{},"body":{"classes/RoleNameMapper.html":{}}}],["name.match",{"_index":6269,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["name.tolowercase",{"_index":5339,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["name.ts",{"_index":21494,"title":{},"body":{"miscellaneous/functions.html":{}}}],["named",{"_index":21653,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["namely",{"_index":22915,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nameonly",{"_index":7760,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["names",{"_index":4960,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/ContextExternalToolValidationService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"controllers/NewsController.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["namespace",{"_index":22894,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["naming",{"_index":22319,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["nanoid",{"_index":11024,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/OauthUc.html":{},"injectables/TokenGenerator.html":{},"dependencies.html":{}}}],["nanoid(12",{"_index":19502,"title":{},"body":{"injectables/TokenGenerator.html":{}}}],["nanoid(15",{"_index":11030,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["nanoid(16",{"_index":15827,"title":{},"body":{"injectables/OauthUc.html":{}}}],["narrowed",{"_index":10771,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["native",{"_index":21451,"title":{},"body":{"dependencies.html":{}}}],["nature",{"_index":21898,"title":{},"body":{"license.html":{}}}],["nbf",{"_index":12579,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["ne",{"_index":9907,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["necessary",{"_index":19056,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["need",{"_index":957,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardNodeRepo.html":{},"entities/CourseGroup.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["needed",{"_index":11827,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/S3ClientAdapter.html":{},"entities/Submission.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["neededpermission",{"_index":19181,"title":{},"body":{"injectables/TaskUC.html":{}}}],["needs",{"_index":4641,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"entities/Course.html":{},"interfaces/CreateJwtPayload.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICourseProperties.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["nest",{"_index":7661,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"interfaces/Options.html":{},"dependencies.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["nest.js",{"_index":572,"title":{},"body":{"controllers/AccountController.html":{}}}],["nest/legacy",{"_index":22309,"title":{},"body":{"todo.html":{}}}],["nest:build",{"_index":22368,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:build:all",{"_index":22372,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console",{"_index":22396,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:console:dev",{"_index":22397,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:build",{"_index":22391,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:docs:serve",{"_index":22392,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint",{"_index":22412,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:lint:fix",{"_index":22415,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:prebuild",{"_index":22367,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start",{"_index":22375,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:debug",{"_index":22380,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:dev",{"_index":22377,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:files",{"_index":22387,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:start:prod",{"_index":22382,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test",{"_index":22405,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:all",{"_index":22406,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:api",{"_index":22407,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:cov",{"_index":22409,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:debug",{"_index":22411,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:unit",{"_index":22408,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest:test:watch",{"_index":22410,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nest_log_level",{"_index":11416,"title":{},"body":{"interfaces/IFileStorageConfig.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IServerConfig.html":{}}}],["nestapp.get(rocketchatservice",{"_index":22631,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["nested",{"_index":16109,"title":{},"body":{"injectables/PermissionService.html":{}}}],["nestexpress.set('feathersapp",{"_index":9446,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["nestinterceptor",{"_index":8020,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["nestjs",{"_index":3459,"title":{"additional-documentation/nestjs-application.html":{}},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeleteFilesConsole.html":{},"modules/ErrorModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"interfaces/Options.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"classes/TestBootstrapConsole.html":{},"dependencies.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["nestjs/axios",{"_index":1266,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"classes/ExternalToolLogoService.html":{},"modules/ExternalToolModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/VideoConferenceModule.html":{},"dependencies.html":{}}}],["nestjs/cache",{"_index":3910,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"dependencies.html":{}}}],["nestjs/clithen",{"_index":22434,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["nestjs/common",{"_index":187,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"modules/AccountApiModule.html":{},"controllers/AccountController.html":{},"injectables/AccountIdmToDtoMapper.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"modules/CoreModule.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"entities/FileRecord.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"modules/RoleModule.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StorageProviderRepo.html":{},"entities/Submission.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{}}}],["nestjs/common/decorators",{"_index":15208,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["nestjs/common/decorators/core/injectable.decorator",{"_index":4458,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/HydraSsoService.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["nestjs/common/exceptions/internal",{"_index":6398,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["nestjs/common/exceptions/not",{"_index":8423,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/OauthProviderLoginFlowService.html":{}}}],["nestjs/config",{"_index":801,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountService.html":{},"injectables/AuthenticationService.html":{},"controllers/CourseController.html":{},"modules/EncryptionModule.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/InterceptorModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"dependencies.html":{}}}],["nestjs/core",{"_index":8217,"title":{},"body":{"modules/ErrorModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"modules/ValidationModule.html":{},"dependencies.html":{}}}],["nestjs/jwt",{"_index":1638,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"dependencies.html":{}}}],["nestjs/microservices",{"_index":21344,"title":{},"body":{"dependencies.html":{}}}],["nestjs/passport",{"_index":1640,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtAuthGuard.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/Oauth2Strategy.html":{},"dependencies.html":{}}}],["nestjs/platform",{"_index":21346,"title":{},"body":{"dependencies.html":{}}}],["nestjs/swagger",{"_index":376,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountResponse.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRefParams.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GetFwuLearningContentParams.html":{},"controllers/H5PEditorController.html":{},"classes/IdParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"classes/OidcContextResponse.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/RedirectResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserResponse.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolParams.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"classes/SuccessfulResponse.html":{},"controllers/SystemController.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TargetInfoResponse.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/TimestampsResponse.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"controllers/UserController.html":{},"classes/UserDataResponse.html":{},"classes/UserInfoResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserParams.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{}}}],["nestjs/testing",{"_index":19440,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["nestjs/testing.test",{"_index":22794,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nestmodule",{"_index":17781,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nestwinston",{"_index":22657,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["net",{"_index":21631,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["network",{"_index":21683,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["neuen",{"_index":4758,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["never",{"_index":7907,"title":{},"body":{"classes/DomainObjectFactory.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FilesRepo.html":{},"classes/GuardAgainst.html":{},"interfaces/IError.html":{},"injectables/LdapStrategy.html":{},"injectables/NewsRepo.html":{},"interfaces/RpcMessage.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["new",{"_index":234,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BusinessError.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CopyFileResponseBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMapper.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationMapper.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInfoMapper.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"entities/User.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserInfoMapper.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["newaccount",{"_index":1094,"title":{},"body":{"injectables/AccountService.html":{}}}],["newconfig",{"_index":12981,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfig.idphint",{"_index":12979,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs",{"_index":12886,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.foreach((newconfig",{"_index":12976,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newconfigs.some((newconfig",{"_index":12983,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["newelement",{"_index":7388,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newentity",{"_index":2448,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/GroupRepo.html":{}}}],["newentity._id",{"_index":2463,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newentity.id",{"_index":2462,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["newfactory",{"_index":2556,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newgroupname",{"_index":7344,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newid",{"_index":6220,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newid}/${name",{"_index":6223,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["newlanguage",{"_index":20786,"title":{},"body":{"injectables/UserService.html":{}}}],["newlist",{"_index":2748,"title":{},"body":{"entities/Board.html":{}}}],["newname",{"_index":6538,"title":{},"body":{"injectables/CourseCopyService.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{}}}],["newnonoptionalparamnames",{"_index":9320,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.includes(name",{"_index":9323,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparamnames.some((name",{"_index":9324,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams",{"_index":9318,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newnonoptionalparams.map((parameter",{"_index":9321,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam",{"_index":9311,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.isoptional",{"_index":9312,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.name",{"_index":9301,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.regex",{"_index":9329,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.scope",{"_index":9331,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparam.type",{"_index":9330,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams",{"_index":9274,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.filter((parameter",{"_index":9319,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.find((p",{"_index":9327,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some",{"_index":9310,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newparams.some((newparam",{"_index":9299,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newpath",{"_index":1463,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["newpropsfactory",{"_index":2554,"title":{},"body":{"classes/BaseFactory.html":{}}}],["newresource",{"_index":5075,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newresource.caninline",{"_index":5078,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["newrooms",{"_index":7368,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["newrooms.foreach((room",{"_index":7370,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["news",{"_index":6731,"title":{"entities/News.html":{}},"body":{"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/UpdateNewsParams.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["news.content",{"_index":14689,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.controller",{"_index":14721,"title":{},"body":{"modules/NewsModule.html":{}}}],["news.controller.ts",{"_index":19290,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.controller.ts:22",{"_index":19295,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["news.createdat",{"_index":14695,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.createinstance(targetmodel",{"_index":14830,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news.displayat",{"_index":14690,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.id",{"_index":14687,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.params.ts",{"_index":6900,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["news.params.ts:14",{"_index":10361,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["news.params.ts:15",{"_index":6917,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:17",{"_index":19978,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:22",{"_index":6904,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:25",{"_index":19974,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:30",{"_index":6909,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{}}}],["news.params.ts:32",{"_index":19976,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["news.params.ts:37",{"_index":6915,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.params.ts:44",{"_index":6912,"title":{},"body":{"classes/CreateNewsParams.html":{}}}],["news.permissions",{"_index":14697,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.source",{"_index":14691,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.sourcedescription",{"_index":14692,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.target.id",{"_index":14693,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.targetmodel",{"_index":14694,"title":{},"body":{"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["news.title",{"_index":14688,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updatedat",{"_index":14696,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news.updater",{"_index":14698,"title":{},"body":{"classes/NewsMapper.html":{}}}],["news[key",{"_index":14845,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news].params.ts",{"_index":22644,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news].response.dto",{"_index":22646,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["news_edit",{"_index":14847,"title":{},"body":{"injectables/NewsUc.html":{}}}],["news_sources",{"_index":14655,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["news_sources[number",{"_index":14659,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["newscontroller",{"_index":14593,"title":{"controllers/NewsController.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["newscount",{"_index":14836,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable",{"_index":14637,"title":{"classes/NewsCrudOperationLoggable.html":{}},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.create",{"_index":14832,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.delete",{"_index":14849,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newscrudoperationloggable(crudoperation.update",{"_index":14846,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsentities",{"_index":14749,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentities.filter((news",{"_index":14753,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsentity",{"_index":14745,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["newsid",{"_index":14863,"title":{},"body":{"classes/NewsUrlParams.html":{}}}],["newslist",{"_index":14625,"title":{},"body":{"controllers/NewsController.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map((news",{"_index":14628,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newslist.map(async",{"_index":14839,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newslistresponse",{"_index":14616,"title":{"classes/NewsListResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"controllers/TeamNewsController.html":{}}}],["newslistresponse(dtolist",{"_index":14629,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper",{"_index":14612,"title":{"classes/NewsMapper.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.mapcreatenewstodomain(params",{"_index":14623,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapnewsscopetodomain(scope",{"_index":14627,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["newsmapper.maptologmessagedata(this.news",{"_index":14647,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["newsmapper.maptoresponse(news",{"_index":14624,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["newsmapper.mapupdatenewstodomain(params",{"_index":14634,"title":{},"body":{"controllers/NewsController.html":{}}}],["newsmodule",{"_index":14711,"title":{"modules/NewsModule.html":{}},"body":{"modules/NewsModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["newspermission",{"_index":14811,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsrepo",{"_index":14716,"title":{"injectables/NewsRepo.html":{}},"body":{"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["newsresponse",{"_index":14617,"title":{"classes/NewsResponse.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{}}}],["newsrule",{"_index":23099,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newsscope",{"_index":14738,"title":{"classes/NewsScope.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{}}}],["newstarget",{"_index":6722,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"classes/TargetInfoMapper.html":{},"entities/TeamNews.html":{}}}],["newstargetfilter",{"_index":14728,"title":{"interfaces/NewsTargetFilter.html":{}},"body":{"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["newstargetmodel",{"_index":6723,"title":{},"body":{"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["newstargetmodel.course",{"_index":6749,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["newstargetmodel.school",{"_index":6754,"title":{},"body":{"entities/CourseNews.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["newstargetmodel.team",{"_index":6751,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["newsuc",{"_index":14614,"title":{"injectables/NewsUc.html":{}},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"controllers/TeamNewsController.html":{}}}],["newsuc.getrequiredpermissions(ispublished",{"_index":14842,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsuc.getrequiredpermissions(unpublished",{"_index":14834,"title":{},"body":{"injectables/NewsUc.html":{}}}],["newsurlparams",{"_index":14598,"title":{"classes/NewsUrlParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsUrlParams.html":{}}}],["newtool",{"_index":9291,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.parameters",{"_index":9295,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newtool.version",{"_index":9297,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["newuser",{"_index":23081,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["newvar",{"_index":1395,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["nexboard",{"_index":11313,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/NexboardService.html":{}}}],["nexboard.board",{"_index":13803,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["nexboard.id",{"_index":14873,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboard.publiclink",{"_index":14874,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboard.service",{"_index":13726,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["nexboard.url",{"_index":13801,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["nexboardenabled",{"_index":13779,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["nexboardresponse",{"_index":14870,"title":{},"body":{"injectables/NexboardService.html":{}}}],["nexboardservice",{"_index":13683,"title":{"injectables/NexboardService.html":{}},"body":{"injectables/LessonCopyService.html":{},"modules/LessonModule.html":{},"injectables/NexboardService.html":{}}}],["next",{"_index":731,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"classes/BoardResponseMapper.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ConsoleWriterService.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"entities/CourseNews.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordFactory.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalErrorFilter.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolFactory.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserFactory.html":{},"classes/TestBootstrapConsole.html":{},"injectables/TimeoutInterceptor.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserRepo.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["next.handle().pipe",{"_index":16688,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["next.handle().pipe(tap",{"_index":8024,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["nextcloud",{"_index":11086,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISchoolProperties.html":{},"injectables/NextcloudStrategy.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["nextcloud.client",{"_index":14907,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudclient",{"_index":4553,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudgroups",{"_index":10744,"title":{"interfaces/NextcloudGroups.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["nextclouds",{"_index":14905,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy",{"_index":4554,"title":{"injectables/NextcloudStrategy.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["nextcloudstrategy.generategroupfoldername(team.id",{"_index":14922,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["nextcloudtool",{"_index":14935,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["ni_",{"_index":17291,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["node",{"_index":3261,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"injectables/FileSystemAdapter.html":{},"todo.html":{}}}],["node.entity",{"_index":3186,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["node.entity.ts",{"_index":4090,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["node.entity.ts:10",{"_index":16771,"title":{},"body":{"entities/RichTextElementNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:13",{"_index":16770,"title":{},"body":{"entities/RichTextElementNode.html":{}}}],["node.entity.ts:16",{"_index":4091,"title":{},"body":{"entities/CardNode.html":{},"entities/SubmissionItemNode.html":{}}}],["node.entity.ts:19",{"_index":4715,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:22",{"_index":4713,"title":{},"body":{"entities/ColumnBoardNode.html":{}}}],["node.entity.ts:9",{"_index":9539,"title":{},"body":{"entities/FileElementNode.html":{},"entities/SubmissionContainerElementNode.html":{}}}],["node.js",{"_index":21606,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["node.level",{"_index":3600,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.pathofchildren",{"_index":3602,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo",{"_index":3309,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["node.repo.ts",{"_index":3586,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:19",{"_index":3592,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:30",{"_index":3594,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:6",{"_index":3589,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.repo.ts:9",{"_index":3590,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["node.title",{"_index":3330,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["node.usedobuilder(this",{"_index":3251,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["node:fs/promises",{"_index":13218,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["node_env",{"_index":11746,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["node_env=test",{"_index":17844,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nodeenvtype",{"_index":11751,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["nodejs.timeout",{"_index":17190,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nodeps",{"_index":21432,"title":{},"body":{"dependencies.html":{}}}],["nodeps.git",{"_index":21434,"title":{},"body":{"dependencies.html":{}}}],["nodes",{"_index":3595,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.filter((n",{"_index":3616,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nodes.map((node",{"_index":3604,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["nofutureavailabledate",{"_index":19048,"title":{},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{}}}],["non",{"_index":8096,"title":{},"body":{"injectables/ElementUc.html":{},"classes/MongoPatterns.html":{},"classes/StorageProviderEncryptedStringType.html":{},"license.html":{},"todo.html":{}}}],["noncommercially",{"_index":21927,"title":{},"body":{"license.html":{}}}],["none",{"_index":1680,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CustomLtiProperty.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"injectables/IdTokenService.html":{},"entities/LtiTool.html":{},"classes/OauthClientBody.html":{},"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["nonemptytargets",{"_index":14856,"title":{},"body":{"injectables/NewsUc.html":{}}}],["nonoptionalparamnames",{"_index":9316,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.includes(name",{"_index":9325,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparamnames.some((name",{"_index":9322,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams",{"_index":9314,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nonoptionalparams.map((parameter",{"_index":9317,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["nopasswordstrategies",{"_index":1133,"title":{},"body":{"injectables/AccountService.html":{}}}],["nopasswordstrategies.includes(dto.passwordstrategy",{"_index":1138,"title":{},"body":{"injectables/AccountService.html":{}}}],["normal",{"_index":21798,"title":{},"body":{"license.html":{}}}],["normalizepassword",{"_index":1785,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizepassword(password",{"_index":1798,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername",{"_index":1786,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normalizeusername(username",{"_index":1800,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["normally",{"_index":13788,"title":{},"body":{"injectables/LessonCopyService.html":{},"license.html":{}}}],["nosuchbucket",{"_index":17155,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["nosuchkey",{"_index":17149,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["not_found",{"_index":14980,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["notation",{"_index":2567,"title":{},"body":{"classes/BaseFactory.html":{}}}],["note",{"_index":946,"title":{},"body":{"injectables/AccountRepo.html":{},"interfaces/AuthenticationResponse.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/CardSkeletonResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/TaskRepo.html":{},"classes/TestApiClient.html":{},"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["notfinished",{"_index":19215,"title":{},"body":{"injectables/TaskUC.html":{}}}],["notfound",{"_index":7627,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["notfounderror",{"_index":14346,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfounderror(`ltitool",{"_index":14350,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["notfoundexception",{"_index":2686,"title":{},"body":{"entities/Board.html":{},"controllers/BoardController.html":{},"injectables/BoardDoRepo.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"controllers/ColumnController.html":{},"injectables/ContentElementService.html":{},"controllers/CourseController.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"injectables/FeathersAuthProvider.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GridElement.html":{},"modules/H5PEditorModule.html":{},"interfaces/IGridElement.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"injectables/SubmissionItemService.html":{},"injectables/TaskCopyUC.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserMigrationService.html":{}}}],["notfoundexception('board",{"_index":2729,"title":{},"body":{"entities/Board.html":{}}}],["notfoundexception('could",{"_index":8451,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/TaskCopyUC.html":{}}}],["notfoundexception('no",{"_index":7361,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["notfoundexception('nosuchkey",{"_index":17151,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["notfoundexception('some",{"_index":4148,"title":{},"body":{"injectables/CardService.html":{}}}],["notfoundexception(`school",{"_index":20628,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["notfoundexception(`the",{"_index":10274,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["notfoundexception(`there",{"_index":3318,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ContentElementService.html":{},"injectables/SubmissionItemService.html":{}}}],["notfoundexception(`unable",{"_index":15589,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["notfoundexception})@apibody({required",{"_index":4858,"title":{},"body":{"controllers/ColumnController.html":{},"controllers/ElementController.html":{}}}],["notfoundexception})@apiresponse({status",{"_index":17898,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notfoundexception})@get(':boardid",{"_index":2946,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@get(':boardid/context",{"_index":2941,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':boardid",{"_index":2937,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':cardid",{"_index":4018,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':columnid",{"_index":4862,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@delete(':contentelementid",{"_index":8054,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':boardid/title",{"_index":2952,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/height",{"_index":4033,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':cardid/title",{"_index":4036,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':columnid/title",{"_index":4869,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':contentelementid/content",{"_index":8063,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@httpcode(204)@patch(':submissionitemid",{"_index":3697,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["notfoundexception})@httpcode(204)@put(':cardid/position",{"_index":4029,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundexception})@httpcode(204)@put(':columnid/position",{"_index":4866,"title":{},"body":{"controllers/ColumnController.html":{}}}],["notfoundexception})@httpcode(204)@put(':contentelementid/position",{"_index":8058,"title":{},"body":{"controllers/ElementController.html":{}}}],["notfoundexception})@post(':boardid/columns",{"_index":2932,"title":{},"body":{"controllers/BoardController.html":{}}}],["notfoundexception})@post(':cardid/elements",{"_index":4014,"title":{},"body":{"controllers/CardController.html":{}}}],["notfoundloggableexception",{"_index":10721,"title":{"classes/NotFoundLoggableException.html":{}},"body":{"injectables/GroupService.html":{},"classes/NotFoundLoggableException.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["notfoundloggableexception('userloginmigration",{"_index":20513,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["notfoundloggableexception(group.name",{"_index":10724,"title":{},"body":{"injectables/GroupService.html":{}}}],["nothing",{"_index":16725,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"license.html":{}}}],["notice",{"_index":14024,"title":{},"body":{"injectables/Logger.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["notice(loggable",{"_index":14031,"title":{},"body":{"injectables/Logger.html":{}}}],["notices",{"_index":21778,"title":{},"body":{"license.html":{}}}],["notifies",{"_index":22056,"title":{},"body":{"license.html":{}}}],["notify",{"_index":22052,"title":{},"body":{"license.html":{}}}],["notimplementedexception",{"_index":3218,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IRepoLoader.html":{},"classes/MetadataTypeMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RuleManager.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('copy",{"_index":18102,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('import",{"_index":18116,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["notimplementedexception('repo_or_service_not_implement",{"_index":11662,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["notimplementedexception('rooms",{"_index":16963,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["notimplementedexception(`invalid",{"_index":3268,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["notimplementedexception(`unknown",{"_index":5510,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["notimplementedexception(`unsupported",{"_index":5527,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["notimplementedexception})@post(':token/import')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":17901,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["notmigratedusers",{"_index":17655,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notmigratedusers.data.foreach((user",{"_index":17659,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["notwithstanding",{"_index":22009,"title":{},"body":{"license.html":{}}}],["nountildate",{"_index":6794,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["november",{"_index":21664,"title":{},"body":{"license.html":{}}}],["now",{"_index":6793,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CreateNewsParams.html":{},"injectables/DurationLoggingInterceptor.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ISubmissionProperties.html":{},"classes/NewsScope.html":{},"entities/Submission.html":{},"injectables/SubmissionItemService.html":{},"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["now.getfullyear()}_",{"_index":11133,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["now.getmonth",{"_index":11134,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["nowplusdays",{"_index":18056,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["nowplusdays(days",{"_index":18077,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["now}ms",{"_index":8026,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["npm",{"_index":22270,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["npx",{"_index":22954,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["null",{"_index":167,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/CalendarService.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordScope.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ITaskParent.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"classes/SystemScope.html":{},"entities/Task.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{}}}],["nullable",{"_index":370,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountSearchQueryParams.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardUrlParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardUrlParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolIdParams.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/IdParams.html":{},"entities/ImportUser.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/MigrationBody.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"entities/News.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PublicSystemResponse.html":{},"classes/RenameBodyParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"entities/System.html":{},"classes/SystemIdParams.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolReferenceResponse.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"classes/UserParams.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["nullish",{"_index":18191,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["nullorundefined",{"_index":10763,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["nullorundefined(value",{"_index":10764,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["num",{"_index":6268,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["number",{"_index":55,"title":{},"body":{"classes/AbstractAccountService.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"classes/AuthorizationError.html":{},"classes/AxiosResponseImp.html":{},"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardLessonResponse.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnService.html":{},"classes/ConsentRequestBody.html":{},"injectables/ContentElementService.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"interfaces/CopyFiles.html":{},"classes/County.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/FeathersError.html":{},"entities/FederalState.html":{},"interfaces/File.html":{},"classes/FileElement.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GridElement.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IError.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IServerConfig.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/IToolFeatures.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"classes/LdapUserMigrationException.html":{},"classes/LegacySchoolFactory.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"interfaces/Meta.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"interfaces/OcsResponse.html":{},"classes/Page.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"interfaces/PreviewFileParams.html":{},"classes/PrometheusMetricsConfig.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"classes/RecursiveSaveVisitor.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RichTextElement.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"interfaces/RpcMessage.html":{},"interfaces/S3Config-1.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"injectables/ShareTokenUC.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"interfaces/SuccessfulRes.html":{},"classes/SystemFactory.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/ToolConfiguration.html":{},"interfaces/ToolVersion.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"classes/ValidationError.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["number(batchsize",{"_index":7791,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["number(matches.groups.number",{"_index":6273,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["number(options.skip",{"_index":11622,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["number.isnan(this.deletedat.gettime",{"_index":9627,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["numbered",{"_index":22184,"title":{},"body":{"license.html":{}}}],["numberofdrafttasks",{"_index":3420,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberoffailingfilesinbatch",{"_index":7833,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberoffilesinbatch",{"_index":7826,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofplannedtasks",{"_index":3421,"title":{},"body":{"classes/BoardLessonResponse.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofprocessedfiles",{"_index":7827,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["numberofpublishedtasks",{"_index":3422,"title":{},"body":{"classes/BoardLessonResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["numberofstudents",{"_index":6609,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["numberofsubmitters",{"_index":12037,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofsubmitterswithgrade",{"_index":12045,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["numberofteachers",{"_index":6612,"title":{},"body":{"classes/CourseFactory.html":{}}}],["numberofteammembers",{"_index":18284,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["numbers",{"_index":14556,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["numerous",{"_index":22739,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["nuxt",{"_index":22928,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["nvmrc",{"_index":22327,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["o",{"_index":7669,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["o.id",{"_index":3338,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["oauth",{"_index":5382,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"injectables/HydraAdapter.html":{},"classes/IdParams.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/ListOauthClientsParams.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"dependencies.html":{}}}],["oauth.module",{"_index":15236,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["oauth.service",{"_index":12187,"title":{},"body":{"modules/IdentityManagementModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"injectables/SystemService.html":{}}}],["oauth.service.ts",{"_index":12194,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:13",{"_index":13045,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:15",{"_index":12199,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:23",{"_index":12201,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.service.ts:50",{"_index":13049,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["oauth.service.ts:9",{"_index":12198,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["oauth.uc",{"_index":15729,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauth.uc.ts",{"_index":10925,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:14",{"_index":10935,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:23",{"_index":10945,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:25",{"_index":10944,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:27",{"_index":10937,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:47",{"_index":10946,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:49",{"_index":10942,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth.uc.ts:66",{"_index":10939,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["oauth2",{"_index":5378,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ExternalToolSearchParams.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/RevokeConsentParams.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"dependencies.html":{}}}],["oauth2')@apiokresponse({description",{"_index":20279,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["oauth2.0",{"_index":14135,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["oauth2authorizationbodyparams",{"_index":14094,"title":{"classes/Oauth2AuthorizationBodyParams.html":{}},"body":{"controllers/LoginController.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2config",{"_index":8833,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.baseurl",{"_index":8856,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.clientid",{"_index":8857,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.clientsecret",{"_index":9168,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.frontchannellogouturi",{"_index":9174,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.redirecturis",{"_index":9173,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.scope",{"_index":9169,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.skipconsent",{"_index":8858,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2config.tokenendpointauthmethod",{"_index":9171,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["oauth2config.type",{"_index":8855,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["oauth2migrationparams",{"_index":15148,"title":{"classes/Oauth2MigrationParams.html":{}},"body":{"classes/Oauth2MigrationParams.html":{},"controllers/UserLoginMigrationController.html":{}}}],["oauth2params",{"_index":7143,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2strategy",{"_index":1634,"title":{"injectables/Oauth2Strategy.html":{}},"body":{"modules/AuthenticationModule.html":{},"injectables/Oauth2Strategy.html":{}}}],["oauth2toolconfig",{"_index":7126,"title":{"classes/Oauth2ToolConfig.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauth2toolconfigcreate",{"_index":8918,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigcreateparams",{"_index":8457,"title":{"classes/Oauth2ToolConfigCreateParams.html":{}},"body":{"classes/ExternalToolCreateParams.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/Oauth2ToolConfigCreateParams.html":{}}}],["oauth2toolconfigentity",{"_index":8475,"title":{"classes/Oauth2ToolConfigEntity.html":{}},"body":{"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigEntity.html":{}}}],["oauth2toolconfigfactory",{"_index":7132,"title":{"classes/Oauth2ToolConfigFactory.html":{}},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.build(customparam",{"_index":7165,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigfactory.define(oauth2toolconfig",{"_index":7144,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["oauth2toolconfigresponse",{"_index":8988,"title":{"classes/Oauth2ToolConfigResponse.html":{}},"body":{"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["oauth2toolconfigupdate",{"_index":8922,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["oauth2toolconfigupdateparams",{"_index":8920,"title":{"classes/Oauth2ToolConfigUpdateParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["oauth2toollaunchstrategy",{"_index":14984,"title":{"injectables/OAuth2ToolLaunchStrategy.html":{}},"body":{"injectables/OAuth2ToolLaunchStrategy.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{}}}],["oauth_provisioning_enabled",{"_index":11705,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthadapterservice",{"_index":15043,"title":{"injectables/OauthAdapterService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthModule.html":{}}}],["oauthapimodule",{"_index":15226,"title":{"modules/OauthApiModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthclient",{"_index":9118,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.client_secret",{"_index":15657,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["oauthclient.frontchannel_logout_uri",{"_index":9163,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.redirect_uris",{"_index":9161,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.scope",{"_index":9157,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclient.token_endpoint_auth_method",{"_index":9159,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthclientbody",{"_index":15237,"title":{"classes/OauthClientBody.html":{}},"body":{"classes/OauthClientBody.html":{},"controllers/OauthProviderController.html":{}}}],["oauthclientid",{"_index":6987,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{}}}],["oauthclientresponse",{"_index":5439,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthconfig",{"_index":10947,"title":{"classes/OauthConfig.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{}}}],["oauthconfig.authendpoint",{"_index":11866,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientid",{"_index":11028,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.clientsecret",{"_index":11856,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.granttype",{"_index":11862,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.idphint",{"_index":11858,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.issuer",{"_index":11872,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.jwksendpoint",{"_index":11874,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.logoutendpoint",{"_index":11870,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.provider",{"_index":11868,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.redirecturi",{"_index":11029,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.responsetype",{"_index":11026,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.scope",{"_index":11027,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfig.tokenendpoint",{"_index":11860,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemMapper.html":{}}}],["oauthconfigdto",{"_index":12202,"title":{"classes/OauthConfigDto.html":{}},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/OauthConfigDto.html":{},"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.authendpoint",{"_index":15311,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientid",{"_index":15305,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.clientsecret",{"_index":15306,"title":{},"body":{"classes/OauthConfigDto.html":{}}}],["oauthconfigdto.granttype",{"_index":15309,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.idphint",{"_index":15307,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.issuer",{"_index":15316,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.jwksendpoint",{"_index":15317,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.logoutendpoint",{"_index":15315,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.provider",{"_index":15314,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.redirecturi",{"_index":15308,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.responsetype",{"_index":15312,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.scope",{"_index":15313,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigdto.tokenendpoint",{"_index":15310,"title":{},"body":{"classes/OauthConfigDto.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse",{"_index":15318,"title":{"classes/OauthConfigResponse.html":{}},"body":{"classes/OauthConfigResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["oauthconfigresponse.authendpoint",{"_index":15338,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.clientid",{"_index":15333,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.granttype",{"_index":15336,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.idphint",{"_index":15334,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.issuer",{"_index":15343,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.jwksendpoint",{"_index":15344,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.logoutendpoint",{"_index":15342,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.provider",{"_index":15341,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.redirecturi",{"_index":15335,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.responsetype",{"_index":15339,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.scope",{"_index":15340,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigresponse.tokenendpoint",{"_index":15337,"title":{},"body":{"classes/OauthConfigResponse.html":{}}}],["oauthconfigs",{"_index":9154,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["oauthdata",{"_index":12649,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.externalid",{"_index":20534,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externalschool?.officialschoolnumber",{"_index":20533,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdata.externaluser.externalid",{"_index":20535,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["oauthdatadto",{"_index":12617,"title":{"classes/OauthDataDto.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthDataDto.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthdatastrategyinputdto",{"_index":12622,"title":{"classes/OauthDataStrategyInputDto.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oauthencryptionservice",{"_index":11007,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{}}}],["oauthgranttype",{"_index":1606,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthgranttype.authorization_code_grant",{"_index":1603,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthloginstate",{"_index":15760,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.provider",{"_index":15788,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstate.state",{"_index":15762,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthloginstatedto",{"_index":15366,"title":{"classes/OauthLoginStateDto.html":{}},"body":{"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthloginstatedto(session.oauthloginstate",{"_index":15387,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["oauthloginstatemapper",{"_index":15378,"title":{"classes/OauthLoginStateMapper.html":{}},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["oauthloginstatemapper.mapsessiontodto(session",{"_index":15761,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthmigrationdto",{"_index":13466,"title":{"classes/OauthMigrationDto.html":{}},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationerror",{"_index":14988,"title":{"classes/OAuthMigrationError.html":{}},"body":{"classes/OAuthMigrationError.html":{},"controllers/OauthSSOController.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthmigrationfailed",{"_index":14996,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthmigrationfinalfinish",{"_index":13639,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["oauthmigrationfinished",{"_index":13523,"title":{},"body":{"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationBody.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthmigrationmandatory",{"_index":13521,"title":{},"body":{"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationBody.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthmigrationpossible",{"_index":13522,"title":{},"body":{"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolUc.html":{},"classes/MigrationBody.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthmodule",{"_index":1624,"title":{"modules/OauthModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["oauthprocessdto",{"_index":15008,"title":{"classes/OAuthProcessDto.html":{}},"body":{"classes/OAuthProcessDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["oauthprocessdto.jwt",{"_index":15775,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthproviderapimodule",{"_index":15401,"title":{"modules/OauthProviderApiModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["oauthproviderclientcruduc",{"_index":15406,"title":{"injectables/OauthProviderClientCrudUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderconsentflowuc",{"_index":15407,"title":{"injectables/OauthProviderConsentFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["oauthprovidercontroller",{"_index":15413,"title":{"controllers/OauthProviderController.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{}}}],["oauthproviderloginflowservice",{"_index":12143,"title":{"injectables/OauthProviderLoginFlowService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["oauthproviderloginflowuc",{"_index":15408,"title":{"injectables/OauthProviderLoginFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderlogoutflowuc",{"_index":15409,"title":{"injectables/OauthProviderLogoutFlowUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["oauthprovidermodule",{"_index":15405,"title":{"modules/OauthProviderModule.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules.html":{}}}],["oauthproviderrequestmapper",{"_index":15605,"title":{"classes/OauthProviderRequestMapper.html":{}},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{}}}],["oauthproviderrequestmapper.mapcreateacceptloginrequestbody",{"_index":15619,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthproviderresponsemapper",{"_index":15410,"title":{"injectables/OauthProviderResponseMapper.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["oauthproviderservice",{"_index":9081,"title":{"classes/OauthProviderService.html":{}},"body":{"injectables/ExternalToolService.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthproviderservice:109",{"_index":10860,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:117",{"_index":10849,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:126",{"_index":10882,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:135",{"_index":10851,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:30",{"_index":10843,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:34",{"_index":10845,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:38",{"_index":10847,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:44",{"_index":10856,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:49",{"_index":10858,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:53",{"_index":10862,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:63",{"_index":10863,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:68",{"_index":10865,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:76",{"_index":10872,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:80",{"_index":10874,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:84",{"_index":10880,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservice:92",{"_index":10867,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["oauthproviderservicemodule",{"_index":8627,"title":{"modules/OauthProviderServiceModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules.html":{}}}],["oauthprovideruc",{"_index":15411,"title":{"injectables/OauthProviderUc.html":{}},"body":{"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{}}}],["oauthprovisioningenabled",{"_index":11706,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["oauthrejectablebody",{"_index":5372,"title":{"classes/OAuthRejectableBody.html":{}},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["oauthrejectablebody:13",{"_index":5399,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:23",{"_index":5408,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:32",{"_index":5411,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:41",{"_index":5413,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthrejectablebody:50",{"_index":5417,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["oauthscope",{"_index":12154,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["oauthservice",{"_index":10933,"title":{"injectables/OAuthService.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthssocontroller",{"_index":15233,"title":{"controllers/OauthSSOController.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{}}}],["oauthssoerror",{"_index":10950,"title":{"classes/OAuthSSOError.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror('failed",{"_index":12632,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["oauthssoerror('requesting",{"_index":15224,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["oauthssoerror(`requested",{"_index":15081,"title":{},"body":{"injectables/OAuthService.html":{}}}],["oauthssoerror:10",{"_index":14997,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:11",{"_index":20685,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:4",{"_index":15000,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:5",{"_index":20688,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:6",{"_index":14999,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:7",{"_index":20687,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthssoerror:8",{"_index":14998,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["oauthssoerror:9",{"_index":20686,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["oauthsystems",{"_index":18716,"title":{},"body":{"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["oauthsystems.find((system",{"_index":20478,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["oauthtoken",{"_index":15791,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["oauthtokendto",{"_index":10953,"title":{"classes/OAuthTokenDto.html":{}},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["oauthtokenresponse",{"_index":15077,"title":{"interfaces/OauthTokenResponse.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"interfaces/OauthTokenResponse.html":{},"classes/TokenRequestMapper.html":{}}}],["oauthtokens",{"_index":10960,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{}}}],["oauthuc",{"_index":15231,"title":{"injectables/OauthUc.html":{}},"body":{"modules/OauthApiModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["obfuscated",{"_index":10547,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"miscellaneous/functions.html":{}}}],["obfuscated_subject",{"_index":12580,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["obj.id",{"_index":2843,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["object",{"_index":359,"title":{"additional-documentation/nestjs-application/domain-object-validation.html":{}},"body":{"interfaces/AcceptLoginRequestBody.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/BusinessError.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/ColumnBoardFactory.html":{},"classes/ConsentResponse.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/IntrospectResponse.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"classes/LessonFactory.html":{},"classes/LoggingUtils.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OidcConfig.html":{},"classes/OidcContextResponse.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderOidcContext.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SubmissionFactory.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["object.assign(entity",{"_index":2552,"title":{},"body":{"classes/BaseFactory.html":{}}}],["object.assign(this",{"_index":3400,"title":{},"body":{"entities/BoardElement.html":{},"classes/ConsentResponse.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"interfaces/INewsProperties.html":{},"classes/LoginResponse-1.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["object.constructor.name",{"_index":2043,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["object.defineproperty(entity",{"_index":7897,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["object.entries",{"_index":19764,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["object.entries(params",{"_index":14844,"title":{},"body":{"injectables/NewsUc.html":{}}}],["object.factory.ts",{"_index":7904,"title":{},"body":{"classes/DomainObjectFactory.html":{}}}],["object.keys(entity).foreach((key",{"_index":2465,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["object.keys(object).foreach((key",{"_index":2373,"title":{},"body":{"injectables/BBBService.html":{}}}],["object.keys(payload).length",{"_index":2664,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["object.keys(queryordermap",{"_index":9184,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["object.setprototypeof(this",{"_index":1310,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["object.ts",{"_index":1856,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/BaseDomainObject.html":{},"classes/DomainObject.html":{}}}],["object.ts:14",{"_index":7901,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:18",{"_index":7900,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:8",{"_index":7899,"title":{},"body":{"classes/DomainObject.html":{}}}],["object.ts:9",{"_index":2486,"title":{},"body":{"classes/BaseDomainObject.html":{}}}],["object.values(filerecordparenttype",{"_index":10152,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["object.values(newstargetmodel",{"_index":14657,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{}}}],["object.values(previewinputmimetypes).includes(this.mimetype",{"_index":9785,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["object.values(validationerror.constraints",{"_index":1529,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["object],[object",{"_index":2406,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["objectid",{"_index":49,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRepo.html":{},"classes/BoardManagementConsole.html":{},"injectables/CardService.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/CourseGroupRepo.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardRepo.html":{},"classes/DoBaseFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FederalStateRepo.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"entities/LtiTool.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/OidcProvisioningService.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolYearRepo.html":{},"entities/ShareToken.html":{},"classes/ShareTokenFactory.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SystemRepo.html":{},"injectables/TeamsRepo.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"injectables/UserRepo.html":{},"classes/VideoConferenceInfo.html":{}}}],["objectid().tohexstring",{"_index":4150,"title":{},"body":{"injectables/CardService.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/DoBaseFactory.html":{},"classes/FileRecordFactory.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymService.html":{},"classes/ShareTokenFactory.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{}}}],["objectid().tostring",{"_index":7599,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"classes/UserDoFactory.html":{}}}],["objectid(account.attdbcaccountid",{"_index":811,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["objectid(accountdto.systemid",{"_index":1197,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(accountdto.userid",{"_index":1194,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["objectid(domainobject.id",{"_index":2464,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["objectid(domainobject.schoolid",{"_index":4372,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.successor",{"_index":4382,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(domainobject.year",{"_index":4378,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(entitydo.toolid",{"_index":8764,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(entitydo.userid",{"_index":8765,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(id",{"_index":808,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/BaseFactory.html":{}}}],["objectid(id).tohexstring",{"_index":17951,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["objectid(owneruserid",{"_index":10059,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(parentid",{"_index":9905,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["objectid(permissionrefid",{"_index":10063,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["objectid(props.columnboardid",{"_index":4824,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["objectid(props.context.id",{"_index":4721,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["objectid(props.contextid",{"_index":11774,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["objectid(props.creatorid",{"_index":9649,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(props.iscopyfrom",{"_index":9750,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(props.lockid",{"_index":9653,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.origintoolid",{"_index":7017,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["objectid(props.ownerid",{"_index":9645,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(props.parentid",{"_index":9643,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["objectid(props.refid",{"_index":9678,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["objectid(props.schoolid",{"_index":9747,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["objectid(reference.id",{"_index":3334,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["objectid(refid",{"_index":9619,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["objectid(schoolid",{"_index":9906,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["objectid(systemid",{"_index":926,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["objectid(teacherid",{"_index":4374,"title":{},"body":{"classes/ClassMapper.html":{}}}],["objectid(toolid",{"_index":8747,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["objectid(userid",{"_index":921,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"injectables/TeamsRepo.html":{}}}],["objectid.createfromhexstring(id",{"_index":7419,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.createfromhexstring(props.id",{"_index":7429,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["objectid.isvalid(courseid",{"_index":3463,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["objectid.isvalid(id",{"_index":807,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/ImportUserRepo.html":{}}}],["objectid.isvalid(schoolid",{"_index":12542,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/UserRepo.html":{}}}],["objectid.isvalid(userid",{"_index":12544,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["objectids",{"_index":922,"title":{},"body":{"injectables/AccountRepo.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["objectids.map((id",{"_index":6454,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["objectives",{"_index":23025,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["objectname",{"_index":11664,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["objects",{"_index":3852,"title":{},"body":{"injectables/BsonConverter.html":{},"classes/DomainObjectFactory.html":{},"injectables/FederalStateService.html":{},"interfaces/ICollectionFilePath.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolYearService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["obligate",{"_index":22164,"title":{},"body":{"license.html":{}}}],["obligated",{"_index":21941,"title":{},"body":{"license.html":{}}}],["obligations",{"_index":21850,"title":{},"body":{"license.html":{}}}],["observable",{"_index":2333,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["obsolete",{"_index":20522,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["occasionally",{"_index":21926,"title":{},"body":{"license.html":{}}}],["occur",{"_index":570,"title":{},"body":{"controllers/AccountController.html":{}}}],["occurred",{"_index":4579,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["occurring",{"_index":22064,"title":{},"body":{"license.html":{}}}],["occurs",{"_index":21979,"title":{},"body":{"license.html":{}}}],["ocs",{"_index":10746,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["ocsresponse",{"_index":10745,"title":{"interfaces/OcsResponse.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["odered",{"_index":14804,"title":{},"body":{"injectables/NewsUc.html":{}}}],["offer",{"_index":21706,"title":{},"body":{"license.html":{}}}],["offered",{"_index":21947,"title":{},"body":{"license.html":{}}}],["offering",{"_index":21930,"title":{},"body":{"license.html":{}}}],["offers",{"_index":22394,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["offical",{"_index":20629,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["official",{"_index":13257,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"license.html":{}}}],["officialexternalschoolnumber",{"_index":17609,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["officialschoolnumber",{"_index":8300,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"classes/IservMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["officialschoolnumberfromsource",{"_index":14993,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["officialschoolnumberfromtarget",{"_index":14994,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["offline",{"_index":7135,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["offset",{"_index":58,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DeleteFilesUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/HydraAdapter.html":{},"injectables/ImportUserRepo.html":{},"classes/ListOauthClientsParams.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["oid",{"_index":11503,"title":{},"body":{"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{}}}],["oidc",{"_index":12908,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/LoginResponse-1.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidc.mapper",{"_index":18662,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.mapper.ts",{"_index":18644,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:12",{"_index":18649,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:26",{"_index":18646,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.mapper.ts:5",{"_index":18647,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidc.service",{"_index":12902,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{}}}],["oidc.service.ts",{"_index":18657,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:12",{"_index":18660,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:21",{"_index":18659,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc.service.ts:9",{"_index":18658,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["oidc/oidc.strategy",{"_index":17259,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc/service/oidc",{"_index":17260,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["oidc_context",{"_index":5425,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["oidcconfig",{"_index":11847,"title":{"classes/OidcConfig.html":{}},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemScope.html":{}}}],["oidcconfig.authorizationurl",{"_index":11925,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.clientid",{"_index":11921,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.clientsecret",{"_index":11922,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["oidcconfig.defaultscopes",{"_index":11932,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.idphint",{"_index":11923,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.logouturl",{"_index":11928,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.tokenurl",{"_index":11927,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig.userinfourl",{"_index":11930,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.clientsecret",{"_index":18653,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["oidcconfig?.idphint",{"_index":12984,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcconfigdto",{"_index":12869,"title":{"classes/OidcConfigDto.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["oidcconfigdto.authorizationurl",{"_index":15866,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientid",{"_index":15863,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.clientsecret",{"_index":15864,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.defaultscopes",{"_index":15870,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.idphint",{"_index":15865,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.logouturl",{"_index":15869,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.parentsystemid",{"_index":15862,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.tokenurl",{"_index":15867,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidcconfigdto.userinfourl",{"_index":15868,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["oidccontextresponse",{"_index":5448,"title":{"classes/OidcContextResponse.html":{}},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["oidcexternalsubmappername",{"_index":12909,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oidcidentityprovidermapper",{"_index":12834,"title":{"classes/OidcIdentityProviderMapper.html":{}},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["oidcinternalname",{"_index":4565,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["oidcmock__base_url",{"_index":22926,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["oidcmockprovisioningstrategy",{"_index":15898,"title":{"injectables/OidcMockProvisioningStrategy.html":{}},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{}}}],["oidcmockstrategy",{"_index":16321,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["oidcprovisioningservice",{"_index":15908,"title":{"injectables/OidcProvisioningService.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcprovisioningstrategy",{"_index":15988,"title":{"injectables/OidcProvisioningStrategy.html":{}},"body":{"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["oidcsystems",{"_index":18718,"title":{},"body":{"injectables/SystemService.html":{}}}],["oidcuserattributemappername",{"_index":12907,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["ok",{"_index":13234,"title":{},"body":{"classes/KeycloakSeedService.html":{},"classes/VideoConferenceCreateParams.html":{}}}],["okay",{"_index":19064,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["old",{"_index":6229,"title":{},"body":{"injectables/CopyFilesService.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["oldconfig.alias",{"_index":12978,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs",{"_index":12882,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.foreach((oldconfig",{"_index":12982,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["oldconfigs.some((oldconfig",{"_index":12977,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["older",{"_index":21728,"title":{},"body":{"license.html":{}}}],["oldparam.name",{"_index":9300,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams",{"_index":9276,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.every((oldparam",{"_index":9313,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((oldparam",{"_index":9298,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldparams.filter((parameter",{"_index":9315,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool",{"_index":9293,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["oldtool.parameters",{"_index":9294,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["once",{"_index":13231,"title":{},"body":{"classes/KeycloakSeedService.html":{},"classes/RedirectResponse.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["one",{"_index":9401,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ITaskParent.html":{},"injectables/JwtStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/S3ClientAdapter.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserLoginMigrationController.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["oneday",{"_index":6615,"title":{},"body":{"classes/CourseFactory.html":{}}}],["oneof",{"_index":4071,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ones",{"_index":6000,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["onetomany",{"_index":6397,"title":{},"body":{"entities/Course.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["onetomany('coursegroup",{"_index":6376,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["onetomany('dashboardgridelementmodel",{"_index":7434,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["onetomany('submission",{"_index":11972,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["onetomany('task",{"_index":11328,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["onetoone",{"_index":2683,"title":{},"body":{"entities/Board.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/UserLoginMigration.html":{}}}],["onetoone(undefined",{"_index":17353,"title":{},"body":{"entities/SchoolEntity.html":{},"entities/UserLoginMigration.html":{}}}],["onetoone({type",{"_index":2673,"title":{},"body":{"entities/Board.html":{}}}],["oneweekago",{"_index":19240,"title":{},"body":{"injectables/TaskUC.html":{}}}],["oneweekago.setdate(oneweekago.getdate",{"_index":19241,"title":{},"body":{"injectables/TaskUC.html":{}}}],["ongoing",{"_index":6708,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["onlyactivecourses",{"_index":6800,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/DashboardUc.html":{}}}],["onlyexistingreferences",{"_index":2735,"title":{},"body":{"entities/Board.html":{}}}],["onlyfactories",{"_index":7666,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["onlyoauth",{"_index":18612,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemUc.html":{}}}],["onlyreadcourses",{"_index":19234,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onlywritecoursesids",{"_index":19233,"title":{},"body":{"injectables/TaskUC.html":{}}}],["onmoduledestroy",{"_index":14534,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["onupdate",{"_index":2517,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["open",{"_index":18306,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["open/closed",{"_index":22463,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["openapi",{"_index":12377,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["opencourseids",{"_index":18988,"title":{},"body":{"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["opencourses",{"_index":19212,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opencourses.map((c",{"_index":19217,"title":{},"body":{"injectables/TaskUC.html":{}}}],["opened",{"_index":19875,"title":{},"body":{"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application.html":{}}}],["openid",{"_index":7136,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["opening",{"_index":20851,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["openinnewtab",{"_index":9048,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["openldap",{"_index":22944,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["opennewtab",{"_index":236,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["operate",{"_index":22214,"title":{},"body":{"license.html":{}}}],["operated",{"_index":21934,"title":{},"body":{"license.html":{}}}],["operates",{"_index":22703,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["operating",{"_index":21804,"title":{},"body":{"license.html":{}}}],["operation",{"_index":10381,"title":{},"body":{"classes/ForbiddenOperationError.html":{},"injectables/KeycloakMigrationService.html":{},"classes/NewsCrudOperationLoggable.html":{},"controllers/VideoConferenceController.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["operation.'})@apiresponse({status",{"_index":20895,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["operation.error.ts",{"_index":10377,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.error.ts:4",{"_index":10378,"title":{},"body":{"classes/ForbiddenOperationError.html":{}}}],["operation.loggable",{"_index":14822,"title":{},"body":{"injectables/NewsUc.html":{}}}],["operation.loggable.ts",{"_index":14639,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:13",{"_index":14643,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operation.loggable.ts:6",{"_index":14642,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["operations",{"_index":23042,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["operator",{"_index":959,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/Scope.html":{},"license.html":{}}}],["operators",{"_index":22698,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["oplogsize",{"_index":22979,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["opportunity",{"_index":22171,"title":{},"body":{"license.html":{}}}],["ops",{"_index":22297,"title":{},"body":{"todo.html":{}}}],["opt/keycloak/bin/kc.sh",{"_index":22356,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optimal",{"_index":13355,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["optimisation",{"_index":22486,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["option",{"_index":22006,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["optional",{"_index":33,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IError.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonAccount.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserProperties.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/ListOauthClientsParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchMyAccountParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichText.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateNewsParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["optional()@apiproperty",{"_index":15881,"title":{},"body":{"classes/OidcContextResponse.html":{}}}],["optionaldatathere",{"_index":22670,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["optionally",{"_index":11149,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["options",{"_index":701,"title":{"interfaces/Options.html":{}},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/ContextExternalToolFactory.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IShareTokenProperties.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"modules/MongoMemoryDatabaseModule.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"interfaces/Options.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"classes/SchoolExternalToolFactory.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{}}}],["options.collection",{"_index":7672,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.do",{"_index":4262,"title":{},"body":{"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{}}}],["options.do.ts",{"_index":4412,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["options.do.ts:12",{"_index":4416,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.do.ts:6",{"_index":4414,"title":{},"body":{"classes/ClassSourceOptions.html":{}}}],["options.enabled",{"_index":1421,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["options.entity",{"_index":4295,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["options.entity.ts",{"_index":4419,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["options.entity.ts:10",{"_index":4421,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{}}}],["options.everyattendeejoinsmuted",{"_index":20998,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.everyattendejoinsmuted",{"_index":20844,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["options.everybodyjoinsasmoderator",{"_index":20846,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.exchange",{"_index":1423,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.filesservicebaseurl",{"_index":1422,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{}}}],["options.moderatormustapprovejoinrequests",{"_index":20848,"title":{},"body":{"entities/VideoConference.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["options.onlyfactories",{"_index":7673,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options.order",{"_index":12314,"title":{},"body":{"controllers/ImportUserController.html":{},"injectables/NewsUc.html":{},"controllers/ToolController.html":{}}}],["options.response",{"_index":21076,"title":{},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["options.response.ts",{"_index":21167,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:14",{"_index":21172,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:20",{"_index":21168,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.response.ts:8",{"_index":21171,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["options.retrycount",{"_index":11602,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.retrydelay",{"_index":11603,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.routingkey",{"_index":1424,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{}}}],["options.skip",{"_index":11621,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options.ts",{"_index":11430,"title":{},"body":{"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{}}}],["options.verbose",{"_index":11623,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["options?.collection",{"_index":7671,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.context",{"_index":18039,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.exact",{"_index":13123,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.expiresat",{"_index":18040,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["options?.expiresindays",{"_index":18088,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.limit",{"_index":13125,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["options?.order",{"_index":8791,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{}}}],["options?.override",{"_index":7681,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["options?.pagination",{"_index":8789,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["options?.schoolexclusive",{"_index":18084,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["options?.skip",{"_index":13124,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["orchestrate",{"_index":23057,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["orchestrates",{"_index":22504,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["orchestration",{"_index":22545,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["order",{"_index":2185,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/ImportUserRepo.html":{},"injectables/LdapStrategy.html":{},"injectables/LessonRepo.html":{},"injectables/NewsRepo.html":{},"classes/PatchOrderParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["order._id",{"_index":8796,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["order.firstname",{"_index":20732,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.lastname",{"_index":20736,"title":{},"body":{"injectables/UserRepo.html":{}}}],["order.params.ts",{"_index":16095,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["order.params.ts:13",{"_index":16098,"title":{},"body":{"classes/PatchOrderParams.html":{}}}],["orderby",{"_index":964,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/NewsRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{}}}],["orderby(bsondocuments",{"_index":11218,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["orderedlist",{"_index":17040,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["orderquery",{"_index":20731,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.firstname",{"_index":20733,"title":{},"body":{"injectables/UserRepo.html":{}}}],["orderquery.lastname",{"_index":20737,"title":{},"body":{"injectables/UserRepo.html":{}}}],["org",{"_index":5220,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organisation",{"_index":17238,"title":{},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["organization",{"_index":4998,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["organization.organization",{"_index":5088,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organization.resources).concat(this.resources",{"_index":5090,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder",{"_index":4985,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["organizationbuilder.addresourcetoorganization(resourceprops",{"_index":4993,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationbuilder.addresourcetoorganization(this.maptasktowebcontentresource(task",{"_index":5000,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["organizationelement.transform",{"_index":5226,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationelements",{"_index":5218,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["organizationid",{"_index":10581,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["organizations",{"_index":5039,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"license.html":{}}}],["orgid",{"_index":17219,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{}}}],["origin",{"_index":2115,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{},"license.html":{}}}],["original",{"_index":5451,"title":{},"body":{"classes/ConsentResponse.html":{},"injectables/CourseCopyService.html":{},"classes/LoginResponse-1.html":{},"injectables/PreviewService.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["originalboard",{"_index":3033,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{}}}],["originalboard.getelements",{"_index":3034,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["originalcourse",{"_index":6532,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.color",{"_index":6557,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.getcoursegroupitems().length",{"_index":6568,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalcourse.name",{"_index":6549,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["originalelement",{"_index":13687,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["originalentity",{"_index":3041,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["originallesson",{"_index":3008,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallesson.course",{"_index":13845,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["originallesson.getlessonmaterials",{"_index":13812,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["originallesson.id",{"_index":3068,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{}}}],["originallessonid",{"_index":3067,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["originalschooldo",{"_index":17626,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["originaltask",{"_index":3011,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.description",{"_index":18855,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.descriptioninputformat",{"_index":18856,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.id",{"_index":3071,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltask.name",{"_index":18854,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltask.teamsubmissions",{"_index":18857,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["originaltaskid",{"_index":3070,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["originaltaskname",{"_index":18875,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["originid",{"_index":11549,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["originsystemid",{"_index":20609,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["origintool",{"_index":6982,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["origintoolid",{"_index":6985,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{}}}],["orm",{"_index":6758,"title":{},"body":{"entities/CourseNews.html":{},"injectables/DatabaseManagementService.html":{},"injectables/FilesStorageConsumer.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["orm.io",{"_index":22442,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["orm/core",{"_index":398,"title":{},"body":{"entities/Account.html":{},"injectables/AccountRepo.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"classes/BasicToolConfigEntity.html":{},"entities/Board.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DatabaseManagementService.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesRepo.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"modules/H5PEditorModule.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/LdapConfig.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LessonBoardElement.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/Scope.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"dependencies.html":{}}}],["orm/entitymanager",{"_index":22844,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["orm/issues/1230",{"_index":9738,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["orm/issues/2165",{"_index":12073,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["orm/mikro",{"_index":9737,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["orm/mongodb",{"_index":97,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"entities/ClassEntity.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardRepo.html":{},"injectables/DatabaseManagementService.html":{},"classes/DoBaseFactory.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesRepo.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LtiTool.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/ShareToken.html":{},"injectables/StorageProviderRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"dependencies.html":{}}}],["orm/nestjs",{"_index":10252,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{}}}],["orphanremoval",{"_index":6377,"title":{},"body":{"entities/Course.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/LessonEntity.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["os",{"_index":9982,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["os.eol",{"_index":10014,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["other.name.tolocalelowercase",{"_index":8700,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["otherindex",{"_index":8698,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["othermodule",{"_index":22535,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["otherparams",{"_index":18590,"title":{},"body":{"classes/SystemFactory.html":{}}}],["others",{"_index":10541,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["otherwise",{"_index":1666,"title":{},"body":{"modules/AuthenticationModule.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"injectables/NextcloudStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ours",{"_index":22600,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["out",{"_index":444,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DeleteFilesUc.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IImportUserProperties.html":{},"modules/IdentityManagementModule.html":{},"entities/ImportUser.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceCreateParams.html":{},"modules/VideoConferenceModule.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["outcome",{"_index":22718,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outdated",{"_index":19725,"title":{},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"todo.html":{}}}],["outdated.loggable",{"_index":19952,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["outdatedsince",{"_index":12101,"title":{},"body":{"interfaces/IUserProperties.html":{},"injectables/SchoolMigrationService.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{},"classes/UserScope.html":{}}}],["outer",{"_index":22745,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["outgoing",{"_index":22515,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["output",{"_index":10548,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"injectables/PreviewService.html":{},"classes/ServerConsole.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["outputformat",{"_index":6141,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["outside",{"_index":7349,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["over",{"_index":22471,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["overall",{"_index":22959,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["overenginiering",{"_index":22484,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["overridden",{"_index":14545,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["override",{"_index":2180,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BusinessError.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/DatabaseManagementConsole.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["overrideprovider(consolewriterservice",{"_index":19447,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrideprovider(databasemanagementuc",{"_index":19445,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["overrides",{"_index":8216,"title":{},"body":{"modules/ErrorModule.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["overrides/configures",{"_index":6333,"title":{},"body":{"modules/CoreModule.html":{}}}],["overriding",{"_index":22795,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["overview",{"_index":22399,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["overwrite_setting_show_setup_wizard='completed",{"_index":23016,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["overwritten",{"_index":22797,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["owned",{"_index":22106,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owner",{"_index":9574,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"injectables/HydraAdapter.html":{},"classes/ListOauthClientsParams.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"classes/SubmissionItemResponseMapper.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ownerid",{"_index":9604,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["ownership",{"_index":14663,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["owneruserid",{"_index":10049,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["owns",{"_index":18971,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["p",{"_index":2412,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/S3ClientAdapter.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["p.key",{"_index":17184,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p.name",{"_index":9328,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["p.sourcepath",{"_index":17170,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["p27030:27017",{"_index":22975,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["package",{"_index":21324,"title":{"dependencies.html":{},"properties.html":{}},"body":{"todo.html":{}}}],["packaged",{"_index":21893,"title":{},"body":{"license.html":{}}}],["packages",{"_index":22271,"title":{},"body":{"todo.html":{}}}],["packaging",{"_index":21799,"title":{},"body":{"license.html":{}}}],["pad",{"_index":8261,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["pad.data.padid",{"_index":8263,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padid",{"_index":8258,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padname",{"_index":8259,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["padresponse",{"_index":8257,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["page",{"_index":1014,"title":{"classes/Page.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}},"body":{"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/Page.html":{},"classes/PageContentQueryParams.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"injectables/SchoolMigrationService.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"injectables/UserService.html":{},"additional-documentation/nestjs-application.html":{}}}],["page([userloginmigration",{"_index":20512,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["page(entitydos",{"_index":8797,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/UserDORepo.html":{}}}],["pagecontentdto",{"_index":16010,"title":{"classes/PageContentDto.html":{}},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{}}}],["pagecontentmapper",{"_index":16021,"title":{"injectables/PageContentMapper.html":{}},"body":{"injectables/PageContentMapper.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentqueryparams",{"_index":16030,"title":{"classes/PageContentQueryParams.html":{}},"body":{"classes/PageContentQueryParams.html":{},"controllers/UserMigrationController.html":{}}}],["pagecontentresponse",{"_index":16025,"title":{"classes/PageContentResponse.html":{}},"body":{"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"controllers/UserMigrationController.html":{}}}],["paged",{"_index":537,"title":{},"body":{"controllers/AccountController.html":{}}}],["pages",{"_index":1042,"title":{},"body":{"classes/AccountSearchQueryParams.html":{},"classes/PaginationParams.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["pagetype",{"_index":16033,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypequery",{"_index":20575,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.pagetype",{"_index":20580,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.sourcesystem",{"_index":20581,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypequery.targetsystem",{"_index":20582,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["pagetypes",{"_index":16036,"title":{},"body":{"classes/PageContentQueryParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system",{"_index":20642,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_source_system_mandatory",{"_index":20644,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes.start_from_target_system",{"_index":20636,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["pagetypes})@isenum(pagetypes",{"_index":16037,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["paginate",{"_index":9374,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["pagination",{"_index":6487,"title":{},"body":{"controllers/CourseController.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["pagination.limit",{"_index":19693,"title":{},"body":{"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination.skip",{"_index":19692,"title":{},"body":{"controllers/ToolController.html":{},"injectables/UserRepo.html":{}}}],["pagination?.limit",{"_index":6806,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["pagination?.skip",{"_index":6805,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["paginationparams",{"_index":1028,"title":{"classes/PaginationParams.html":{}},"body":{"classes/AccountSearchQueryParams.html":{},"controllers/CourseController.html":{},"injectables/CourseUc.html":{},"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"classes/PaginationParams.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{}}}],["paginationparams:14",{"_index":1039,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["paginationparams:8",{"_index":1043,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["paginationresponse",{"_index":1007,"title":{"classes/PaginationResponse.html":{}},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PaginationResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["paginationresponse:12",{"_index":1012,"title":{},"body":{"classes/AccountSearchListResponse.html":{}}}],["paginationresponse:136",{"_index":14650,"title":{},"body":{"classes/NewsListResponse.html":{}}}],["paginationresponse:14",{"_index":1023,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["paginationresponse:17",{"_index":1022,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["paginationresponse:20",{"_index":1017,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["paginationresponse:51",{"_index":20544,"title":{},"body":{"classes/UserMatchListResponse.html":{}}}],["paginationresponse:63",{"_index":9803,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["paginationresponse:68",{"_index":6698,"title":{},"body":{"classes/CourseMetadataListResponse.html":{}}}],["paginationresponse:7",{"_index":9063,"title":{},"body":{"classes/ExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["paginationresponse:71",{"_index":12360,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["paginationresponse:74",{"_index":18913,"title":{},"body":{"classes/TaskListResponse.html":{}}}],["paginationresponse:91",{"_index":6081,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["pairwise",{"_index":9176,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["papaparse",{"_index":21440,"title":{},"body":{"dependencies.html":{}}}],["paper",{"_index":22241,"title":{},"body":{"license.html":{}}}],["paragraph",{"_index":22044,"title":{},"body":{"license.html":{}}}],["paragraphs",{"_index":22115,"title":{},"body":{"license.html":{}}}],["parallel",{"_index":22842,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param",{"_index":264,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BsonConverter.html":{},"controllers/CardController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"controllers/ColumnController.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalToolFactory.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesStorageClientAdapterService.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GuardAgainst.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/PermissionService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamsRepo.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('oauthclientid",{"_index":15790,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["param('scope",{"_index":21035,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('scopeid",{"_index":21036,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["param('token",{"_index":9953,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["param)).rejects.tothrow(badrequestexception",{"_index":22787,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param)).tothrow(badrequestexception",{"_index":22785,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["param.builder.ts",{"_index":6175,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.builder.ts:6",{"_index":6178,"title":{},"body":{"classes/CopyFilesOfParentParamBuilder.html":{},"classes/FileParamBuilder.html":{}}}],["param.default",{"_index":8702,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{}}}],["param.description",{"_index":8878,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.displayname",{"_index":8692,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.isoptional",{"_index":5357,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.location",{"_index":8880,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.name",{"_index":298,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["param.name.tolowercase",{"_index":5350,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["param.regex",{"_index":5364,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.regexcomment",{"_index":8879,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["param.scope",{"_index":5351,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["param.startswith",{"_index":265,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["param.type",{"_index":5363,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolVersionService.html":{}}}],["paramdisplayat",{"_index":14829,"title":{},"body":{"injectables/NewsUc.html":{}}}],["parameter",{"_index":290,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolValidationService.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"classes/LoginResponse-1.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parameter.do.ts",{"_index":7062,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:10",{"_index":7065,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:12",{"_index":7070,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:14",{"_index":7071,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:16",{"_index":7072,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:18",{"_index":7068,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:20",{"_index":7073,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:22",{"_index":7064,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:4",{"_index":7069,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:6",{"_index":7067,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.do.ts:8",{"_index":7066,"title":{},"body":{"classes/CustomParameter.html":{}}}],["parameter.entity.ts",{"_index":7089,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:10",{"_index":7093,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:13",{"_index":7092,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:16",{"_index":7091,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:19",{"_index":7096,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:22",{"_index":7097,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:25",{"_index":7098,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:28",{"_index":7094,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:31",{"_index":7099,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:34",{"_index":7090,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.entity.ts:7",{"_index":7095,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter.isoptional",{"_index":302,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolVersionService.html":{}}}],["parameter.location",{"_index":301,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["parameter.name",{"_index":288,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolVersionService.html":{}}}],["parameter.params",{"_index":8467,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["parameter.params.ts",{"_index":7180,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:13",{"_index":7191,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:18",{"_index":7185,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:23",{"_index":7183,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:28",{"_index":7182,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:33",{"_index":7192,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:38",{"_index":7193,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:42",{"_index":7196,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:46",{"_index":7190,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:50",{"_index":7199,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.params.ts:54",{"_index":7187,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["parameter.response",{"_index":5650,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["parameter.response.ts",{"_index":7204,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:10",{"_index":7210,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:13",{"_index":7208,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:16",{"_index":7207,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:19",{"_index":7206,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:22",{"_index":7211,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:25",{"_index":7212,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:28",{"_index":7213,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:31",{"_index":7209,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:34",{"_index":7214,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.response.ts:37",{"_index":7205,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["parameter.scope",{"_index":291,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ExternalToolConfigurationService.html":{}}}],["parameter/custom",{"_index":7088,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["parameter_type_not_implemented",{"_index":16069,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parameterkeys",{"_index":14525,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameternames",{"_index":286,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameternames.includes(parameter.name",{"_index":292,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["parameternames.join",{"_index":14529,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameters",{"_index":29,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardElementResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/GuardAgainst.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IGridElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichText.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"modules/RocketChatModule.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["parameters.'})@apiresponse({status",{"_index":20896,"title":{},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["parameters.map((param",{"_index":14526,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["parameterstoinclude",{"_index":184,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["parameterstoinclude.map(async",{"_index":295,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["parametertype",{"_index":16068,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parametertypenotimplementedloggableexception",{"_index":203,"title":{"classes/ParameterTypeNotImplementedLoggableException.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["parametertypenotimplementedloggableexception(customparameter.type",{"_index":330,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params",{"_index":185,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/BBBService.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/BoardCopyService.html":{},"injectables/CalendarService.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"injectables/DashboardUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRequestMapper.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordFactory.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IToolLaunchStrategy.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/JwtTestFactory.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LessonCopyService.html":{},"classes/LessonFactory.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MigrationResponse.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthMigrationDto.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/RequestLoggingInterceptor.html":{},"controllers/RoomsController.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolFactory.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["params(params",{"_index":725,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["params.append('event",{"_index":3974,"title":{},"body":{"injectables/CalendarService.html":{}}}],["params.append(key",{"_index":2374,"title":{},"body":{"injectables/BBBService.html":{}}}],["params.availabledate",{"_index":18952,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.challenge",{"_index":15550,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client",{"_index":15572,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.client_name",{"_index":15535,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.clientid",{"_index":8984,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["params.confirmpassword",{"_index":589,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.content",{"_index":14706,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.contents",{"_index":13866,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contents.foreach((element",{"_index":13867,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.contextexternaltoolid",{"_index":19571,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolLaunchController.html":{}}}],["params.contextid",{"_index":19564,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{}}}],["params.contexttype",{"_index":19565,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{}}}],["params.copyname",{"_index":13733,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["params.course",{"_index":13865,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.courseid",{"_index":6315,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.description",{"_index":18951,"title":{},"body":{"classes/TaskMapper.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["params.destinationcourse",{"_index":13732,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["params.destinationcourse.id",{"_index":13794,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["params.displayat",{"_index":14707,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.dto",{"_index":22510,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["params.duedate",{"_index":18953,"title":{},"body":{"classes/TaskMapper.html":{}}}],["params.elements",{"_index":17001,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params.enablemigrationstart",{"_index":14515,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.everyattendeejoinsmuted",{"_index":21042,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.everybodyjoinsasmoderator",{"_index":21043,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.externalid",{"_index":13498,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.externaltoolid",{"_index":19696,"title":{},"body":{"controllers/ToolController.html":{}}}],["params.features",{"_index":13499,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.federalstate",{"_index":13509,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.filerecordid",{"_index":10233,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["params.find",{"_index":297,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params.flagged",{"_index":12329,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.from",{"_index":7244,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.hidden",{"_index":13869,"title":{},"body":{"classes/LessonFactory.html":{}}}],["params.id",{"_index":13497,"title":{},"body":{"classes/LegacySchoolDo.html":{},"controllers/OauthProviderController.html":{}}}],["params.inmaintenancesince",{"_index":13500,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.interface",{"_index":211,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["params.interface.ts",{"_index":12091,"title":{},"body":{"interfaces/IToolLaunchParams.html":{}}}],["params.inusermigration",{"_index":13501,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.language",{"_index":20825,"title":{},"body":{"injectables/UserUc.html":{}}}],["params.lessonid",{"_index":6316,"title":{},"body":{"classes/CopyMapper.html":{},"classes/TaskMapper.html":{}}}],["params.limit",{"_index":15533,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.logouturl",{"_index":20924,"title":{},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.map((parameter",{"_index":287,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["params.moderatormustapprovejoinrequests",{"_index":21044,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["params.name",{"_index":8983,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/LegacySchoolDo.html":{},"classes/TaskMapper.html":{}}}],["params.oauthmigrationfinalfinish",{"_index":14513,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationfinished",{"_index":14511,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationmandatory",{"_index":14509,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.oauthmigrationpossible",{"_index":14507,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["params.officialschoolnumber",{"_index":13503,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.offset",{"_index":15534,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.originalboard",{"_index":3042,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["params.owner",{"_index":15536,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["params.password",{"_index":588,"title":{},"body":{"controllers/AccountController.html":{}}}],["params.previousexternalid",{"_index":13502,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.schoolexternaltoolid",{"_index":19568,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["params.schoolid",{"_index":19561,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["params.schoolyear",{"_index":13504,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.systemid",{"_index":15766,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["params.systems",{"_index":13506,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.target",{"_index":14826,"title":{},"body":{"injectables/NewsUc.html":{}}}],["params.targetid",{"_index":14709,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.targetmodel",{"_index":14708,"title":{},"body":{"classes/NewsMapper.html":{}}}],["params.taskid",{"_index":18267,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["params.title",{"_index":7250,"title":{},"body":{"controllers/DashboardController.html":{},"classes/NewsMapper.html":{}}}],["params.to",{"_index":7245,"title":{},"body":{"controllers/DashboardController.html":{}}}],["params.user",{"_index":13785,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["params.user.id",{"_index":13743,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["params.userid",{"_index":12325,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["params.userloginmigrationid",{"_index":13508,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["params.visibility",{"_index":16999,"title":{},"body":{"controllers/RoomsController.html":{}}}],["params?.accountid",{"_index":6889,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.aud",{"_index":6885,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.external_sub",{"_index":6890,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.iss",{"_index":6884,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.privatekey",{"_index":6892,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params?.sub",{"_index":6882,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["params].ts",{"_index":22572,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["paranoid",{"_index":1250,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["parent",{"_index":3305,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"controllers/BoardSubmissionController.html":{},"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"controllers/ElementController.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ITaskParent.html":{},"classes/LessonCopyApiParams.html":{},"entities/LessonEntity.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemService.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.addchild(card",{"_index":4152,"title":{},"body":{"injectables/CardService.html":{}}}],["parent.addchild(column",{"_index":4916,"title":{},"body":{"injectables/ColumnService.html":{}}}],["parent.addchild(element",{"_index":5551,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["parent.children.findindex((obj",{"_index":16594,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.children.foreach((child",{"_index":16593,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parent.duedate",{"_index":18353,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["parent.getstudentids",{"_index":11357,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["parent.getstudentids().length",{"_index":12006,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["parent.id",{"_index":9662,"title":{},"body":{"classes/FileParamBuilder.html":{}}}],["parent.removechild(domainobject",{"_index":3381,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["parentcourseid",{"_index":18873,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["parentdata",{"_index":16561,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.boardnode",{"_index":16570,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentdata?.position",{"_index":16571,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentid",{"_index":3574,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/SingleFileParams.html":{}}}],["parentids",{"_index":3577,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/TaskRepo.html":{}}}],["parentids.courseids",{"_index":19032,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.creatorid",{"_index":19030,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentids.lessonids",{"_index":19034,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope",{"_index":19029,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bycourseids(parentids.courseids",{"_index":19033,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.bylessonids(parentids.lessonids",{"_index":19035,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentidscope.byonlycreatorid(parentids.creatorid",{"_index":19031,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentmeetingid",{"_index":2204,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["parentname",{"_index":17962,"title":{},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["parentnode",{"_index":16549,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentparams",{"_index":13833,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentparams.courseid",{"_index":13843,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["parentpermission",{"_index":13904,"title":{},"body":{"injectables/LessonRule.html":{}}}],["parentpermission(user",{"_index":13916,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["parentpropertypath",{"_index":1518,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["parentrule",{"_index":23104,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["parents",{"_index":18970,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished",{"_index":18996,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bycourseids(parentids.finishedcourseids",{"_index":18997,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsfinished.bylessonids(parentids.lessonidsoffinishedcourses",{"_index":18998,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsmap",{"_index":16541,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["parentsopen",{"_index":18993,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bycourseids(parentids.opencourseids",{"_index":18994,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsopen.bylessonids(parentids.lessonidsofopencourses",{"_index":18995,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["parentsystemid",{"_index":15856,"title":{},"body":{"classes/OidcConfigDto.html":{},"classes/SystemOidcMapper.html":{}}}],["parenttype",{"_index":6111,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileDto-1.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleFileParams.html":{}}}],["parse",{"_index":22617,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parsed",{"_index":22643,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parseobjectidpipe",{"_index":22619,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["parser",{"_index":21377,"title":{},"body":{"dependencies.html":{}}}],["part",{"_index":12528,"title":{},"body":{"classes/ImportUserScope.html":{},"injectables/SubmissionItemUc.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["partial",{"_index":696,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"classes/FileRecordFactory.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFindOptions.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["partialfilterexpression",{"_index":11487,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["partialtype",{"_index":19970,"title":{},"body":{"classes/UpdateNewsParams.html":{}}}],["participantcount",{"_index":2265,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["particular",{"_index":19066,"title":{},"body":{"injectables/TaskRepo.html":{},"license.html":{}}}],["parties",{"_index":21771,"title":{},"body":{"license.html":{}}}],["parts",{"_index":21817,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["party",{"_index":21935,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["party's",{"_index":22083,"title":{},"body":{"license.html":{}}}],["pascalcase",{"_index":22601,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["pass",{"_index":951,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/GlobalValidationPipe.html":{},"injectables/TaskUC.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["passed",{"_index":698,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["passing",{"_index":23060,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["passport",{"_index":12684,"title":{},"body":{"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"dependencies.html":{}}}],["passportmodule",{"_index":1639,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["passportstrategy",{"_index":12692,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passportstrategy(strategy",{"_index":12695,"title":{},"body":{"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["passthrough",{"_index":6507,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/PreviewService.html":{}}}],["password",{"_index":87,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IKeycloakSettings.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/TestApiClient.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["password.'})@apiresponse({status",{"_index":526,"title":{},"body":{"controllers/AccountController.html":{}}}],["password.params.ts",{"_index":16088,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:15",{"_index":16093,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.params.ts:25",{"_index":16092,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["password.trim",{"_index":1853,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["passwordnew",{"_index":16078,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordold",{"_index":16079,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["passwordpattern",{"_index":474,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{}}}],["passwordpolicy",{"_index":12811,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["past",{"_index":6732,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["paste",{"_index":22862,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["patch",{"_index":552,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/ImportUserController.html":{},"controllers/NewsController.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/RoomsController.html":{},"controllers/TaskController.html":{},"classes/TestApiClient.html":{},"controllers/UserController.html":{}}}],["patch('/language",{"_index":20024,"title":{},"body":{"controllers/UserController.html":{}}}],["patch(':boardid/title",{"_index":2974,"title":{},"body":{"controllers/BoardController.html":{}}}],["patch(':cardid/height",{"_index":4062,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':cardid/title",{"_index":4065,"title":{},"body":{"controllers/CardController.html":{}}}],["patch(':columnid/title",{"_index":4879,"title":{},"body":{"controllers/ColumnController.html":{}}}],["patch(':contentelementid/content",{"_index":8073,"title":{},"body":{"controllers/ElementController.html":{}}}],["patch(':dashboardid/element",{"_index":7230,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':dashboardid/moveelement",{"_index":7225,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patch(':id",{"_index":582,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch(':id')@apioperation({summary",{"_index":544,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch(':importuserid/flag",{"_index":12297,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':importuserid/match",{"_index":12289,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["patch(':newsid",{"_index":14610,"title":{},"body":{"controllers/NewsController.html":{}}}],["patch(':roomid/board/order",{"_index":16986,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':roomid/elements/:elementid/visibility",{"_index":16983,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patch(':submissionitemid",{"_index":3708,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["patch(':taskid/finish",{"_index":18801,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/restore",{"_index":18804,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch(':taskid/revertpublished",{"_index":18807,"title":{},"body":{"controllers/TaskController.html":{}}}],["patch('consentrequest/:challenge",{"_index":15561,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('loginrequest/:challenge",{"_index":15548,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('logoutrequest/:challenge",{"_index":15552,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patch('me",{"_index":579,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me')@apioperation({summary",{"_index":548,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me/password",{"_index":586,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('me/password')@apioperation({summary",{"_index":519,"title":{},"body":{"controllers/AccountController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions",{"_index":4598,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch('team/:teamid/role/:roleid/permissions')@apiresponse({status",{"_index":4577,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["patch(path",{"_index":1747,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patch(subpath",{"_index":1746,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["patchconsentrequest",{"_index":15449,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["patchconsentrequest(challenge",{"_index":15454,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["patchconsentrequest(params",{"_index":15502,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchelementvisibility",{"_index":16971,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchelementvisibility(urlparams",{"_index":16982,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchgroup",{"_index":7220,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroup(urlparams",{"_index":7227,"title":{},"body":{"controllers/DashboardController.html":{}}}],["patchgroupparams",{"_index":7229,"title":{"classes/PatchGroupParams.html":{}},"body":{"controllers/DashboardController.html":{},"classes/PatchGroupParams.html":{}}}],["patching",{"_index":16074,"title":{},"body":{"classes/PatchGroupParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{}}}],["patchlanguage",{"_index":20768,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchlanguage(userid",{"_index":20785,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["patchloginrequest",{"_index":15479,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(currentuserid",{"_index":15600,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["patchloginrequest(params",{"_index":15505,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["patchmyaccountparams",{"_index":547,"title":{"classes/PatchMyAccountParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/PatchMyAccountParams.html":{}}}],["patchmypasswordparams",{"_index":518,"title":{"classes/PatchMyPasswordParams.html":{}},"body":{"controllers/AccountController.html":{},"classes/PatchMyPasswordParams.html":{}}}],["patchorderingofelements",{"_index":16972,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderingofelements(urlparams",{"_index":16985,"title":{},"body":{"controllers/RoomsController.html":{}}}],["patchorderparams",{"_index":16094,"title":{"classes/PatchOrderParams.html":{}},"body":{"classes/PatchOrderParams.html":{},"controllers/RoomsController.html":{}}}],["patchvisibilityparams",{"_index":16099,"title":{"classes/PatchVisibilityParams.html":{}},"body":{"classes/PatchVisibilityParams.html":{},"controllers/RoomsController.html":{}}}],["patent",{"_index":22043,"title":{},"body":{"license.html":{}}}],["patents",{"_index":22101,"title":{},"body":{"license.html":{}}}],["path",{"_index":576,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AntivirusService.html":{},"interfaces/AuthenticationResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/CalendarService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FileSystemAdapter.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/OAuthService.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"injectables/S3ClientAdapter.html":{},"classes/TestApiClient.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["path.join(...paths",{"_index":10025,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["path.replace(':token",{"_index":1464,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["path.slice(1",{"_index":1766,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["path.targetpath",{"_index":17177,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["path_separator",{"_index":3561,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathobjects",{"_index":17180,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathobjects.filter((p",{"_index":17186,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["pathofchildren",{"_index":3579,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pathparam",{"_index":263,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathparams",{"_index":259,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathparams.map((param",{"_index":262,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathproperties",{"_index":151,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["pathproperties.find",{"_index":267,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathproperties.length",{"_index":246,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["pathqueries",{"_index":3603,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["pathqueries.length",{"_index":3605,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["paths",{"_index":9985,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["paths.join",{"_index":17166,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((p",{"_index":17181,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["paths.map((path",{"_index":16174,"title":{},"body":{"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{}}}],["paths.map(async",{"_index":17174,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["path}${id}${path_separator",{"_index":3585,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["pattern",{"_index":475,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/BoardContextResponse.html":{},"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/ColumnResponse.html":{},"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICourseProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/LdapStrategy.html":{},"classes/LessonCopyApiParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UserInfoResponse.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["pattern.a",{"_index":22692,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["pattern.test(firstchar",{"_index":6468,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["pattern_login_from_dn",{"_index":11474,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["payload",{"_index":231,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AuthenticationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/CurrentUserMapper.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/JwtStrategy.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemService.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["payload.'})@apiresponse({status",{"_index":17896,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["payload.completed",{"_index":18349,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["payload.parentid",{"_index":17985,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.parenttype",{"_index":17984,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenUC.html":{}}}],["payload.response",{"_index":18013,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["payload.response.ts",{"_index":17979,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:11",{"_index":17983,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:14",{"_index":17982,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.response.ts:4",{"_index":17981,"title":{},"body":{"classes/ShareTokenPayloadResponse.html":{}}}],["payload.ts",{"_index":6894,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{}}}],["payload[property.name",{"_index":2663,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["payment",{"_index":22144,"title":{},"body":{"license.html":{}}}],["peer",{"_index":21943,"title":{},"body":{"license.html":{}}}],["peers",{"_index":21946,"title":{},"body":{"license.html":{}}}],["pem",{"_index":6875,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["pending",{"_index":9714,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["per",{"_index":8101,"title":{},"body":{"injectables/ElementUc.html":{},"classes/KeycloakSeedService.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["perf_hooks",{"_index":17634,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["perfectly",{"_index":22748,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["performance",{"_index":17633,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["performance.now",{"_index":17652,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["performing",{"_index":14645,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"license.html":{}}}],["period",{"_index":17637,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["period.entity",{"_index":10658,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["period.entity.ts",{"_index":10756,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["period.entity.ts:12",{"_index":10759,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["period.entity.ts:15",{"_index":10758,"title":{},"body":{"classes/GroupValidPeriodEntity.html":{}}}],["permanently",{"_index":22051,"title":{},"body":{"license.html":{}}}],["permission",{"_index":843,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"modules/CommonToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseNews.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRoleProperties.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"injectables/NewsUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/SchoolExternalToolUc.html":{},"entities/SchoolNews.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"entities/TeamNews.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserFactory.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission'})@apiresponse({status",{"_index":4583,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permission(s",{"_index":23064,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_create",{"_index":6585,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_edit",{"_index":6598,"title":{},"body":{"injectables/CourseExportUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.course_view",{"_index":7967,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["permission.create_user",{"_index":23080,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.entity",{"_index":9602,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.entity.ts",{"_index":9666,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["permission.entity.ts:18",{"_index":9673,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:21",{"_index":9675,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:24",{"_index":9676,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:27",{"_index":9672,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:30",{"_index":9671,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.entity.ts:33",{"_index":9670,"title":{},"body":{"classes/FilePermissionEntity.html":{}}}],["permission.enum",{"_index":23123,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.homework_create",{"_index":18106,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.includes('news",{"_index":14861,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.instance",{"_index":23088,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.join_meeting",{"_index":21135,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["permission.news_create",{"_index":14828,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_edit",{"_index":14824,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.news_view",{"_index":14823,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permission.nextcloud_user",{"_index":15616,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["permission.oauth_client_edit",{"_index":15441,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.oauth_client_view",{"_index":15438,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["permission.refid.equals(refobjectid",{"_index":9622,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permission.school_create",{"_index":23075,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permission.school_edit",{"_index":13628,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["permission.start_meeting",{"_index":21134,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["permission.task_dashboard_teacher_view_v3",{"_index":19188,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.task_dashboard_view_v3",{"_index":19189,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permission.tool_admin",{"_index":9206,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["permission.topic_create",{"_index":18105,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["permission.topic_edit",{"_index":13968,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.topic_view",{"_index":13966,"title":{},"body":{"injectables/LessonUC.html":{}}}],["permission.user_login_migration_admin",{"_index":4463,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["permissioncontext",{"_index":18494,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["permissioncontexts.create",{"_index":23072,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissionmap",{"_index":21283,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissionmap.get(permission.join_meeting",{"_index":21287,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissionmap.get(permission.start_meeting",{"_index":21286,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissionmapper",{"_index":4663,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionmapping",{"_index":21057,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["permissionmapping[bbbrole",{"_index":21063,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["permissionmapping[role",{"_index":21118,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["permissionrefid",{"_index":10052,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["permissions",{"_index":1916,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"entities/CourseNews.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICurrentUser.html":{},"interfaces/INewsProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/PermissionService.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/TeamNews.html":{},"classes/TeamRolePermissionsDto.html":{},"entities/User.html":{},"controllers/UserController.html":{},"classes/UserFactory.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["permissions(+share",{"_index":4585,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissions.body.params",{"_index":4592,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.body.params.ts",{"_index":19302,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:11",{"_index":19307,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:15",{"_index":19303,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:19",{"_index":19304,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:23",{"_index":19306,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.body.params.ts:7",{"_index":19305,"title":{},"body":{"classes/TeamPermissionsBody.html":{}}}],["permissions.create",{"_index":4542,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.delete",{"_index":4543,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.dto",{"_index":4512,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["permissions.dto.ts",{"_index":19308,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:10",{"_index":19309,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["permissions.dto.ts:2",{"_index":19312,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:4",{"_index":19313,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:6",{"_index":19310,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.dto.ts:8",{"_index":19311,"title":{},"body":{"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["permissions.every((p",{"_index":9405,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.filter((permission",{"_index":14860,"title":{},"body":{"injectables/NewsUc.html":{}}}],["permissions.foreach((perm",{"_index":21289,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissions.includes(p",{"_index":1918,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["permissions.length",{"_index":9399,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["permissions.mapper",{"_index":4611,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["permissions.mapper.ts",{"_index":19316,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.mapper.ts:12",{"_index":19319,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["permissions.read",{"_index":4540,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.refid",{"_index":9605,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["permissions.share",{"_index":4544,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissions.write",{"_index":4541,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{}}}],["permissionsbody",{"_index":4575,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["permissionscopemapping",{"_index":21136,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["permissionscopemapping[scope",{"_index":21285,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["permissionsdto",{"_index":4669,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["permissionservice",{"_index":440,"title":{"injectables/PermissionService.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/PermissionService.html":{}}}],["permissive",{"_index":21877,"title":{},"body":{"license.html":{}}}],["permit",{"_index":21906,"title":{},"body":{"license.html":{}}}],["permits",{"_index":21723,"title":{},"body":{"license.html":{}}}],["permitted",{"_index":21672,"title":{},"body":{"license.html":{}}}],["permittedcourses",{"_index":19223,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedlessons",{"_index":19239,"title":{},"body":{"injectables/TaskUC.html":{}}}],["permittedmatch",{"_index":20713,"title":{},"body":{"injectables/UserRepo.html":{}}}],["permittedsubmissions",{"_index":18488,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["perpetuity",{"_index":21984,"title":{},"body":{"license.html":{}}}],["persist",{"_index":6984,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"injectables/DashboardRepo.html":{},"interfaces/ICollectionFilePath.html":{},"entities/LtiTool.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["persist(entity",{"_index":7591,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush",{"_index":7585,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persistandflush(entity",{"_index":7593,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["persisted",{"_index":13254,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["persistent",{"_index":1458,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["person",{"_index":17241,"title":{},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["personal",{"_index":21955,"title":{},"body":{"license.html":{}}}],["personenkontext",{"_index":17246,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["personenkontexte",{"_index":17274,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["personenstatus",{"_index":17247,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["perspective",{"_index":23043,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pertinent",{"_index":22162,"title":{},"body":{"license.html":{}}}],["physical",{"_index":21913,"title":{},"body":{"license.html":{}}}],["physically",{"_index":21925,"title":{},"body":{"license.html":{}}}],["pid",{"_index":17275,"title":{},"body":{"interfaces/SanisResponse.html":{}}}],["piece",{"_index":22460,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["pieces",{"_index":21698,"title":{},"body":{"license.html":{}}}],["pilot",{"_index":20588,"title":{},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["pipe",{"_index":1384,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/GlobalValidationPipe.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["pipe/global",{"_index":20834,"title":{},"body":{"modules/ValidationModule.html":{}}}],["pipeline",{"_index":10061,"title":{},"body":{"injectables/FilesRepo.html":{},"injectables/LessonRepo.html":{},"injectables/UserRepo.html":{}}}],["pipeline.push",{"_index":20738,"title":{},"body":{"injectables/UserRepo.html":{}}}],["pipes",{"_index":22589,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["pkcs1",{"_index":6874,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["place",{"_index":19059,"title":{},"body":{"injectables/TaskRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["placeholder",{"_index":11118,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholder.length",{"_index":11257,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["placeholders",{"_index":11284,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["placeholdervalue",{"_index":11263,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["places",{"_index":22497,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["plain",{"_index":3853,"title":{},"body":{"injectables/BsonConverter.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/SymetricKeyEncryptionService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["plaintextcontent",{"_index":1574,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["plaintextmailcontent",{"_index":1572,"title":{"interfaces/PlainTextMailContent.html":{}},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["plaintoclass",{"_index":10218,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["plaintoclass(filerecordparams",{"_index":10234,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["player",{"_index":10794,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["please",{"_index":2477,"title":{},"body":{"injectables/BaseDORepo.html":{},"entities/Board.html":{},"classes/BoardElementResponse.html":{},"classes/BoardManagementConsole.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"injectables/FileRecordRepo.html":{},"injectables/NextcloudStrategy.html":{},"injectables/PermissionService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["plumbing",{"_index":22867,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["plus",{"_index":22087,"title":{},"body":{"license.html":{}}}],["png",{"_index":8622,"title":{},"body":{"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ReadableStreamWithFileTypeImp.html":{}}}],["point",{"_index":6906,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UpdateNewsParams.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["pointer",{"_index":22236,"title":{},"body":{"license.html":{}}}],["pointing",{"_index":3049,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["policy",{"_index":23141,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["pool",{"_index":21469,"title":{},"body":{"dependencies.html":{}}}],["populate",{"_index":4628,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/FilesRepo.html":{},"interfaces/IRepoLoader.html":{},"injectables/NewsRepo.html":{},"injectables/PermissionService.html":{},"injectables/ReferenceLoader.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["populate(tasks",{"_index":18979,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["populateboard",{"_index":3628,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populateboard(board",{"_index":3636,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["populated",{"_index":3396,"title":{},"body":{"entities/BoardElement.html":{},"entities/Course.html":{},"entities/CourseNews.html":{},"interfaces/ICourseProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["populatereferences",{"_index":18401,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populatereferences(submissions",{"_index":18409,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["populateroles",{"_index":19394,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["populateroles(roles",{"_index":19396,"title":{},"body":{"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["port",{"_index":1541,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["ported",{"_index":1124,"title":{},"body":{"injectables/AccountService.html":{}}}],["portion",{"_index":21950,"title":{},"body":{"license.html":{}}}],["pos",{"_index":1758,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/BoardCopyService.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/TestApiClient.html":{}}}],["pos.x",{"_index":7347,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["pos.y",{"_index":7350,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position",{"_index":2809,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/FileElement.html":{},"classes/GridElement.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["position.groupindex",{"_index":7393,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["position.x",{"_index":7482,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["position.y",{"_index":7483,"title":{},"body":{"classes/DashboardMapper.html":{}}}],["positionfromgridindex",{"_index":7264,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["positionfromgridindex(index",{"_index":7299,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["possesses",{"_index":21922,"title":{},"body":{"license.html":{}}}],["possession",{"_index":21891,"title":{},"body":{"license.html":{}}}],["possibility",{"_index":22216,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["possible",{"_index":2578,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/BoardElementResponse.html":{},"modules/BoardModule.html":{},"classes/MigrationBody.html":{},"classes/MigrationResponse.html":{},"controllers/OauthSSOController.html":{},"classes/SchoolInMigrationError.html":{},"controllers/SystemController.html":{},"controllers/UserLoginMigrationController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["post",{"_index":2955,"title":{},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"injectables/HydraAdapter.html":{},"controllers/ImportUserController.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LoginController.html":{},"injectables/Lti11EncryptionService.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"classes/TestApiClient.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"classes/ToolLaunchRequestResponse.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["post('/:externaltoolid",{"_index":19698,"title":{},"body":{"controllers/ToolController.html":{}}}],["post('/:externaltoolid')@apiokresponse({description",{"_index":19675,"title":{},"body":{"controllers/ToolController.html":{}}}],["post(':boardid/columns",{"_index":2980,"title":{},"body":{"controllers/BoardController.html":{}}}],["post(':cardid/elements",{"_index":4076,"title":{},"body":{"controllers/CardController.html":{}}}],["post(':columnid/cards",{"_index":4884,"title":{},"body":{"controllers/ColumnController.html":{}}}],["post(':contentelementid/submissions",{"_index":8079,"title":{},"body":{"controllers/ElementController.html":{}}}],["post(':roomid/copy",{"_index":17002,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':roomid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":16974,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post(':scope/:scopeid",{"_index":21034,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':scope/:scopeid')@apioperation({summary",{"_index":21019,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["post(':taskid/copy",{"_index":18830,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':taskid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":18790,"title":{},"body":{"controllers/TaskController.html":{}}}],["post(':token/import",{"_index":17926,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["post('clients",{"_index":15538,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["post('close",{"_index":20331,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('close')@apiunprocessableentityresponse({description",{"_index":20259,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('export",{"_index":7695,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('export/:collectionname",{"_index":7692,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('ldap",{"_index":14106,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('lessons/:lessonid/copy",{"_index":17006,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('lessons/:lessonid/copy')@requesttimeout(undefined.incoming_request_timeout_copy_api",{"_index":16977,"title":{},"body":{"controllers/RoomsController.html":{}}}],["post('local",{"_index":14111,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('migrate",{"_index":12285,"title":{},"body":{"controllers/ImportUserController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["post('oauth2",{"_index":14115,"title":{},"body":{"controllers/LoginController.html":{}}}],["post('seed",{"_index":13155,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["post('seed/:collectionname",{"_index":7698,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post('start",{"_index":20321,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('start')@apiunprocessableentityresponse({description",{"_index":20296,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["post('startsync",{"_index":12272,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('startusermigration",{"_index":12293,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["post('sync",{"_index":7704,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["post()@apicreatedresponse({description",{"_index":19600,"title":{},"body":{"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["post(`${this.options.uri}${path",{"_index":1389,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(`${this.options.uri}/api/v1/login",{"_index":1396,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["post(path",{"_index":1388,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/TestApiClient.html":{}}}],["post(subpath",{"_index":1748,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["post.params.ts",{"_index":5724,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:10",{"_index":5736,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:14",{"_index":5726,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:15",{"_index":17390,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:18",{"_index":5728,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:22",{"_index":17388,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:23",{"_index":5730,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:26",{"_index":17391,"title":{},"body":{"classes/SchoolExternalToolPostParams.html":{}}}],["post.params.ts:30",{"_index":5735,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["post.params.ts:34",{"_index":5738,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{}}}],["postasadmin(path",{"_index":1369,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["postloginredirect",{"_index":15058,"title":{},"body":{"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"classes/SSOLoginQuery.html":{},"injectables/UserMigrationService.html":{}}}],["potential",{"_index":6543,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["potentially",{"_index":23154,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["povider",{"_index":22290,"title":{},"body":{"todo.html":{}}}],["power",{"_index":21862,"title":{},"body":{"license.html":{}}}],["powershell",{"_index":22920,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["pr",{"_index":21638,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["practical",{"_index":21685,"title":{},"body":{"license.html":{}}}],["practice",{"_index":22119,"title":{},"body":{"license.html":{}}}],["practices",{"_index":22876,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["practices/layers/orm",{"_index":22295,"title":{},"body":{"todo.html":{}}}],["preamble",{"_index":21676,"title":{},"body":{"license.html":{}}}],["precise",{"_index":4172,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{}}}],["preconditions",{"_index":21601,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["predecessor",{"_index":22084,"title":{},"body":{"license.html":{}}}],["predefined",{"_index":22666,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["preexisting",{"_index":22728,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["preferences",{"_index":12102,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["preferred",{"_index":21789,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["prefetch",{"_index":16478,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefetchcount",{"_index":16481,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["prefix",{"_index":483,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AuthenticationResponse.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/ElementController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"interfaces/ISchoolProperties.html":{},"controllers/ImportUserController.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/LoginController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/SystemController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"classes/TestApiClient.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["prefixes",{"_index":11579,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["premature",{"_index":22485,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["preparation",{"_index":22747,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepare",{"_index":13412,"title":{},"body":{"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["preparebbbcreateconfigbuilder",{"_index":20962,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["preparebbbcreateconfigbuilder(scope",{"_index":20972,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["prepared",{"_index":22754,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["prepended",{"_index":21629,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prerendering",{"_index":4167,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["present",{"_index":22178,"title":{},"body":{"license.html":{}}}],["presentationurl",{"_index":2288,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["presents",{"_index":21784,"title":{},"body":{"license.html":{}}}],["preservation",{"_index":22016,"title":{},"body":{"license.html":{}}}],["preset",{"_index":20850,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["prettier",{"_index":22419,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["prevent",{"_index":2512,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{}}}],["prevented",{"_index":21977,"title":{},"body":{"license.html":{}}}],["prevention",{"_index":1847,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["preview",{"_index":6144,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["preview.resize(width",{"_index":16192,"title":{},"body":{"injectables/PreviewService.html":{}}}],["preview.stream(format",{"_index":16193,"title":{},"body":{"injectables/PreviewService.html":{}}}],["preview_not_possible_scan_status_blocked",{"_index":9722,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_scan_status_error",{"_index":9720,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_scan_status_wont_check",{"_index":9721,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_not_possible_wrong_mime_type",{"_index":9723,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["preview_possible",{"_index":9718,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewfileparams",{"_index":10445,"title":{"interfaces/PreviewFileParams.html":{}},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{}}}],["previewinputmimetypes",{"_index":9710,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewoutputmimetypes",{"_index":6123,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["previewoutputmimetypes'})@isoptional()@isenum(previewoutputmimetypes",{"_index":16125,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previewparams",{"_index":6139,"title":{"classes/PreviewParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"miscellaneous/functions.html":{}}}],["previewparams.forceupdate",{"_index":16170,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewparams.outputformat",{"_index":16182,"title":{},"body":{"injectables/PreviewService.html":{}}}],["previewservice",{"_index":10247,"title":{"injectables/PreviewService.html":{}},"body":{"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["previewstatus",{"_index":6084,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["previewstatus.awaiting_scan_status",{"_index":9789,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_not_possible_scan_status_blocked",{"_index":9784,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_not_possible_scan_status_error",{"_index":9792,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_not_possible_scan_status_wont_check",{"_index":9791,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_not_possible_wrong_mime_type",{"_index":9786,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["previewstatus.preview_possible",{"_index":9787,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/PreviewService.html":{}}}],["previewwidth",{"_index":6124,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["previewwidth'})@isoptional()@isenum(previewwidth",{"_index":16127,"title":{},"body":{"classes/PreviewParams.html":{}}}],["previous",{"_index":22086,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["previousexternalid",{"_index":11694,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{}}}],["previously",{"_index":5458,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["previousteachers",{"_index":5027,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["price",{"_index":21694,"title":{},"body":{"license.html":{}}}],["primarily",{"_index":22146,"title":{},"body":{"license.html":{}}}],["primary",{"_index":771,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{}}}],["primarykey",{"_index":2495,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/VideoConferenceInfo.html":{}}}],["principle",{"_index":22464,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["principles",{"_index":22455,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prior",{"_index":22053,"title":{},"body":{"license.html":{}}}],["privacy",{"_index":8160,"title":{},"body":{"classes/ErrorLoggable.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["privacy_permission",{"_index":6978,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["privacyprotect",{"_index":468,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/ErrorLoggable.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"miscellaneous/functions.html":{}}}],["privacyprotect()@isoptional()@isstring()@matches(passwordpattern)@apiproperty({description",{"_index":463,"title":{},"body":{"classes/AccountByIdBodyParams.html":{}}}],["privacyprotect()@isoptional()@matches(passwordpattern",{"_index":608,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{}}}],["privacyprotect()@isstring()@isoptional()@matches(passwordpattern)@apiproperty({description",{"_index":16084,"title":{},"body":{"classes/PatchMyAccountParams.html":{}}}],["privacyprotect()@isstring()@matches(passwordpattern)@apiproperty({description",{"_index":16090,"title":{},"body":{"classes/PatchMyPasswordParams.html":{}}}],["privacyprotect(validationoptions",{"_index":21585,"title":{},"body":{"miscellaneous/functions.html":{}}}],["privacyprotected",{"_index":8168,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["private",{"_index":111,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"entities/ClassEntity.html":{},"classes/ClassMapper.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRule.html":{},"classes/CourseScope.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MigrationCheckService.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"classes/Scope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["private_key_jwt",{"_index":15268,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["privatedevice",{"_index":12734,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["privatekey",{"_index":6865,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["probably",{"_index":3611,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["problem",{"_index":5403,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["problems",{"_index":22181,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["procedures",{"_index":21973,"title":{},"body":{"license.html":{}}}],["proceed",{"_index":16049,"title":{},"body":{"classes/PageContentResponse.html":{}}}],["proceedbuttonurl",{"_index":16014,"title":{},"body":{"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentResponse.html":{},"injectables/UserMigrationService.html":{}}}],["process",{"_index":6706,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"controllers/LoginController.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/RedirectResponse.html":{},"classes/SchoolMigrationError.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["process.dto.ts",{"_index":15010,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:2",{"_index":15012,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.dto.ts:4",{"_index":15011,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["process.env.mongo_test_uri}/${dbname",{"_index":14543,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["processcookies",{"_index":11004,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processcookies(setcookies",{"_index":11016,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processed",{"_index":11107,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["processing",{"_index":4580,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["processoauthlogin",{"_index":15810,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processoauthlogin(cachedstate",{"_index":15819,"title":{},"body":{"injectables/OauthUc.html":{}}}],["processredirect",{"_index":11005,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirect(dto",{"_index":11019,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["processredirectcascade",{"_index":10930,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["processredirectcascade(initresponse",{"_index":10938,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["procuring",{"_index":22136,"title":{},"body":{"license.html":{}}}],["produce",{"_index":21806,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["produces",{"_index":22656,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["product",{"_index":2156,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/Builder.html":{},"license.html":{}}}],["production",{"_index":11608,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"classes/KeycloakConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["products",{"_index":22147,"title":{},"body":{"license.html":{}}}],["profile",{"_index":13060,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["program",{"_index":21690,"title":{},"body":{"license.html":{}}}],["program's",{"_index":21871,"title":{},"body":{"license.html":{}}}],["programmer",{"_index":22247,"title":{},"body":{"license.html":{}}}],["programming",{"_index":21794,"title":{},"body":{"license.html":{}}}],["programs",{"_index":21699,"title":{},"body":{"license.html":{}}}],["progress",{"_index":6058,"title":{},"body":{"classes/CopyApiResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prohibit",{"_index":21834,"title":{},"body":{"license.html":{},"todo.html":{}}}],["prohibiting",{"_index":21859,"title":{},"body":{"license.html":{}}}],["prohibits",{"_index":22141,"title":{},"body":{"license.html":{}}}],["project",{"_index":20724,"title":{},"body":{"injectables/UserRepo.html":{},"index.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["prom",{"_index":16641,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"dependencies.html":{}}}],["prometheus",{"_index":16252,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp",{"_index":16277,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsapp.listen(prometheusmetricsappport",{"_index":16279,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsappport",{"_index":16275,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig",{"_index":16199,"title":{"classes/PrometheusMetricsConfig.html":{}},"body":{"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance",{"_index":16272,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.isenabled",{"_index":16265,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricsconfig.instance.port",{"_index":16276,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate",{"_index":16245,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.api_response_time_metric_middleware_successfully_added",{"_index":16269,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstate.feature_disabled_middlewares_will_not_be_created",{"_index":16267,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable",{"_index":16241,"title":{"classes/PrometheusMetricsSetupStateLoggable.html":{}},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_default_metrics_disabled",{"_index":16273,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.collecting_metrics_route_metrics_disabled",{"_index":16274,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prometheusmetricssetupstateloggable(prometheusmetricssetupstate.feature_disabled_app_will_not_be_created",{"_index":16271,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["prominent",{"_index":21786,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["prominently",{"_index":21781,"title":{},"body":{"license.html":{}}}],["promise",{"_index":36,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"injectables/ContentElementService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"injectables/FileRecordRepo.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MaterialsRepo.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamService.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"dependencies.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["promise((resolve",{"_index":13308,"title":{},"body":{"injectables/LdapService.html":{}}}],["promise.all",{"_index":284,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthorizationService.html":{},"injectables/DashboardModelMapper.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonUC.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PseudonymService.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{},"injectables/TeamsRepo.html":{}}}],["promise.all(adduserids.map((nextclouduserid",{"_index":14957,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(array.from(modelentity.gridelements).map(async",{"_index":7544,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(copyrequests",{"_index":17178,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["promise.all(domainobject.children.map(async",{"_index":16538,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["promise.all(gridelement.getreferences().map((ref",{"_index":7565,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(promises",{"_index":2444,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/CardUc.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/PreviewService.html":{},"injectables/TaskService.html":{}}}],["promise.all(referencemodels.map((ref",{"_index":7536,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["promise.all(removeuserids.map((nextclouduserid",{"_index":14955,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["promise.all(toolreferencespromises",{"_index":19904,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["promise.allsettled(promises",{"_index":3063,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["promise.reject",{"_index":20711,"title":{},"body":{"injectables/UserRepo.html":{}}}],["promise.reject(new",{"_index":3047,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["promise.resolve",{"_index":2659,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/FileSystemAdapter.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/TestBootstrapConsole.html":{}}}],["promise.resolve(configuration.get('hydra_uri",{"_index":15573,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["promise.resolve(dummyresponse('h5p",{"_index":10793,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["promise.resolve(false",{"_index":1214,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["promise.resolve(new",{"_index":12651,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(oauthdata",{"_index":15907,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["promise.resolve(response",{"_index":17920,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["promisefulfilledresult",{"_index":21583,"title":{},"body":{"miscellaneous/functions.html":{}}}],["promises",{"_index":2439,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BoardCopyService.html":{},"injectables/CardUc.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/PreviewService.html":{},"injectables/TaskService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["promisesettledresult",{"_index":21582,"title":{},"body":{"miscellaneous/functions.html":{}}}],["promisify",{"_index":21400,"title":{},"body":{"dependencies.html":{}}}],["prompt",{"_index":15897,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["prop",{"_index":1908,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["propagate",{"_index":21754,"title":{},"body":{"license.html":{}}}],["propagating",{"_index":22070,"title":{},"body":{"license.html":{}}}],["propagation",{"_index":21764,"title":{},"body":{"license.html":{}}}],["propaly",{"_index":12004,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["proper",{"_index":3104,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["properly",{"_index":21564,"title":{},"body":{"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["properties",{"_index":165,"title":{"properties.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AntivirusModuleOptions.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationError.html":{},"classes/AuthorizationParams.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardContextResponse.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/BoardDoBuilderImpl.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/County.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/DashboardUrlParams.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/ExternalUserDto.html":{},"interfaces/FeathersError.html":{},"entities/FederalState.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageProducer.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"entities/LessonBoardElement.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/Logger.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/MailModuleOptions.html":{},"interfaces/MailServiceOptions.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"interfaces/Meta.html":{},"classes/MigrationBody.html":{},"classes/MigrationDto.html":{},"classes/MigrationResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"classes/NewsUrlParams.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"interfaces/OauthTokenResponse.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"interfaces/RpcMessage.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemScope.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/TimestampsResponse.html":{},"classes/ToolConfiguration.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"classes/UserScope.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"classes/VisibilitySettingsResponse.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["properties.filter",{"_index":14253,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["properties.filter((property",{"_index":2661,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["properties.find((property",{"_index":14254,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["properties.some",{"_index":2667,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{}}}],["propertiestopopulate",{"_index":14723,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["property",{"_index":240,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"entities/Account.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BasicToolConfigEntity.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntryEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/ElementContentBody.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalState.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/Lti11ToolConfigEntity.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PropertyData.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/ToolLaunchData.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["property()@index",{"_index":396,"title":{},"body":{"entities/Account.html":{},"entities/ClassEntity.html":{},"entities/News.html":{},"entities/User.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{}}}],["property()@unique",{"_index":8713,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"entities/PseudonymEntity.html":{},"entities/Role.html":{}}}],["property({comment",{"_index":18313,"title":{},"body":{"entities/SubmissionItemNode.html":{}}}],["property({fieldname",{"_index":4712,"title":{},"body":{"entities/ColumnBoardNode.html":{},"entities/ColumnBoardTarget.html":{},"entities/FileEntity.html":{},"entities/FileRecord.html":{},"entities/ImportUser.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{}}}],["property({nullable",{"_index":386,"title":{},"body":{"entities/Account.html":{},"entities/BoardNode.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"entities/ContextExternalToolEntity.html":{},"entities/Course.html":{},"classes/CustomParameterEntity.html":{},"entities/DashboardGridElementModel.html":{},"entities/ExternalToolEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"classes/LdapConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"entities/News.html":{},"classes/OauthConfig.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{}}}],["property({onupdate",{"_index":2523,"title":{},"body":{"classes/BaseEntityWithTimestamps.html":{},"classes/VideoConferenceInfo.html":{}}}],["property({type",{"_index":12249,"title":{},"body":{"entities/ImportUser.html":{}}}],["property.location",{"_index":241,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["property.name",{"_index":268,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["property.value",{"_index":253,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["propertydata",{"_index":134,"title":{"classes/PropertyData.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchData.html":{}}}],["propertydata.push",{"_index":333,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["propertydecorator",{"_index":21565,"title":{},"body":{"miscellaneous/functions.html":{}}}],["propertylocation",{"_index":207,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/PropertyData.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.body",{"_index":2662,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.path",{"_index":242,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertylocation.query",{"_index":244,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ToolLaunchMapper.html":{}}}],["propertyname",{"_index":143,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["propertypath",{"_index":1525,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["propertypath.push(validationerror.property",{"_index":1527,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["props",{"_index":595,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthorizableObject.html":{},"classes/AxiosResponseImp.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoRepo.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextRef.html":{},"classes/CookiesDto.html":{},"entities/CourseNews.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"classes/DomainObject.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalUserDto.html":{},"classes/FileDto-1.html":{},"classes/FileElement.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"classes/GroupValidPeriodEntity.html":{},"classes/HydraRedirectDto.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IGridElement.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserResponse.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"injectables/LtiToolRepo.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{},"classes/PropertyData.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RichTextElement.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"entities/SchoolNews.html":{},"injectables/ShareTokenRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TeamDto.html":{},"entities/TeamNews.html":{},"classes/TeamPermissionsDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationDO.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"injectables/VideoConferenceRepo.html":{}}}],["props.abbreviation",{"_index":6361,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.accesskeyid",{"_index":11783,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.accesstoken",{"_index":14119,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.activated",{"_index":424,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.alias",{"_index":11938,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.availabledate",{"_index":11977,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.axiosconfig",{"_index":11000,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.baseurl",{"_index":2610,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/ToolLaunchData.html":{}}}],["props.bucket",{"_index":9615,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.cancelbuttonurl",{"_index":16020,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.caption",{"_index":9541,"title":{},"body":{"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{}}}],["props.classnames",{"_index":12371,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.classnames.length",{"_index":11466,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.client",{"_index":11552,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.client_id",{"_index":1610,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.client_secret",{"_index":1612,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.clientid",{"_index":15170,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.clientsecret",{"_index":15171,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["props.closedat",{"_index":20235,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.code",{"_index":1618,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.color",{"_index":6434,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["props.colums",{"_index":7352,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.comment",{"_index":11798,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.completed",{"_index":18319,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["props.config",{"_index":2085,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.content",{"_index":6739,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.contents",{"_index":11333,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["props.context.type",{"_index":4719,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["props.contextid",{"_index":5692,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.contextref",{"_index":5620,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.contexttype",{"_index":5694,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.cookies",{"_index":10997,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.copyingsince",{"_index":6440,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["props.course",{"_index":6634,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.course.school",{"_index":6635,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.coursegroup",{"_index":11331,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["props.create",{"_index":9685,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.createdat",{"_index":621,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/County.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.creator",{"_index":6742,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITaskParent.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{}}}],["props.credentialhash",{"_index":414,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.currentredirect",{"_index":10993,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.customs",{"_index":7010,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.data",{"_index":2077,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.default",{"_index":7075,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["props.defaultvalue",{"_index":7216,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["props.delete",{"_index":9687,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.deleted",{"_index":9629,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.deletedat",{"_index":9628,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.deletedsince",{"_index":9751,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.description",{"_index":6427,"title":{},"body":{"entities/Course.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Material.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.descriptioninputformat",{"_index":11974,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.displayat",{"_index":6741,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.displayname",{"_index":5622,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.duedate",{"_index":11979,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.email",{"_index":9341,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.enddate",{"_index":11740,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["props.endpointurl",{"_index":11781,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.expiresat",{"_index":422,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.externalgroups",{"_index":15361,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalid",{"_index":6745,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/TeamNews.html":{},"entities/User.html":{}}}],["props.externalorganizationid",{"_index":8289,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["props.externalschool",{"_index":15359,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externalsource",{"_index":10622,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.externaluser",{"_index":15357,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["props.externaluserid",{"_index":8295,"title":{},"body":{"classes/ExternalGroupUserDto.html":{}}}],["props.features",{"_index":6442,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.federalstate",{"_index":11734,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.filetype",{"_index":16501,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["props.finishedat",{"_index":20237,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.firstname",{"_index":9337,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/User.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.flagged",{"_index":11470,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.forcepasswordchange",{"_index":12108,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.friendlyurl",{"_index":7021,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.from",{"_index":8285,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.frontchannel_logout_uri",{"_index":7027,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.frontchannellogouturi",{"_index":15177,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.grade",{"_index":11804,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradecomment",{"_index":11806,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.graded",{"_index":11802,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.gradelevel",{"_index":4298,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.grant_type",{"_index":1616,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.grid.foreach((element",{"_index":7354,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.gridelements",{"_index":7432,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["props.height",{"_index":4096,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{}}}],["props.hidden",{"_index":11329,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["props.hydracookies",{"_index":6041,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.id",{"_index":619,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ClassEntity.html":{},"classes/ContextRef.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/FileDto-1.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["props.idmreferenceid",{"_index":1004,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["props.idtoken",{"_index":15144,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.importuserid",{"_index":12365,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.inmaintenancesince",{"_index":11724,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.inputformat",{"_index":16774,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.inusermigration",{"_index":11725,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.invitationlink",{"_index":4310,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.iscopyfrom",{"_index":9748,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.isdirectory",{"_index":9612,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.ishidden",{"_index":7029,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/LtiTool.html":{}}}],["props.islocal",{"_index":7014,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.isoptional",{"_index":7085,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.istemplate",{"_index":7012,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.key",{"_index":6994,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.language",{"_index":12110,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastloginsystemchange",{"_index":12114,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.lastname",{"_index":9339,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/User.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.lasttriedfailedlogin",{"_index":420,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.launch_presentation_locale",{"_index":14187,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["props.ldapconfig",{"_index":11944,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.ldapdn",{"_index":4315,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{}}}],["props.lesson",{"_index":11984,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.license",{"_index":11554,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.localcookies",{"_index":6039,"title":{},"body":{"classes/CookiesDto.html":{}}}],["props.location",{"_index":7077,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["props.lockid",{"_index":9651,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.loginname",{"_index":12367,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.logo",{"_index":8337,"title":{},"body":{"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.logo_url",{"_index":6998,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.logobase64",{"_index":8490,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["props.logourl",{"_index":6362,"title":{},"body":{"classes/County.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.lti_message_type",{"_index":7000,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.lti_version",{"_index":7002,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.mandatorysince",{"_index":20231,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.match",{"_index":12372,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["props.matchedby",{"_index":11468,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.materials",{"_index":11334,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["props.merlinreference",{"_index":11556,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.method",{"_index":19789,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.mimetype",{"_index":9745,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.name",{"_index":4303,"title":{},"body":{"entities/ClassEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/FederalState.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"classes/PropertyData.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{}}}],["props.oauthclientid",{"_index":7019,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.oauthconfig",{"_index":11940,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.officialschoolnumber",{"_index":8305,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.oidcconfig",{"_index":11942,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["props.opennewtab",{"_index":7025,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"entities/LtiTool.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.options",{"_index":20854,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.organization",{"_index":10663,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.organizationid",{"_index":10626,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.origintoolid",{"_index":7015,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["props.outdatedsince",{"_index":12116,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.parameters",{"_index":5624,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.parent",{"_index":3563,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.id",{"_index":3564,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parent.level",{"_index":3570,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["props.parentid",{"_index":9494,"title":{},"body":{"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.parenttype",{"_index":9493,"title":{},"body":{"classes/FileDto-1.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.password",{"_index":410,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.payload",{"_index":19790,"title":{},"body":{"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.permissions",{"_index":9650,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IRoleProperties.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.position",{"_index":3572,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["props.postloginredirect",{"_index":15376,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.preferences",{"_index":12112,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["props.previousexternalid",{"_index":11721,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{}}}],["props.privacy_permission",{"_index":7008,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.private",{"_index":11980,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.proceedbuttonurl",{"_index":16018,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["props.properties",{"_index":19741,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["props.provider",{"_index":15377,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.provisioningstrategy",{"_index":11946,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/System.html":{}}}],["props.provisioningurl",{"_index":11948,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/System.html":{}}}],["props.pseudonym",{"_index":8720,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["props.publicsubmissions",{"_index":11988,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.read",{"_index":9683,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.reason",{"_index":9728,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{}}}],["props.redirect",{"_index":20595,"title":{},"body":{"classes/UserMigrationResponse.html":{}}}],["props.redirect_uri",{"_index":1614,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["props.redirecturis",{"_index":15173,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.references.sort(this.sortreferences",{"_index":7328,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["props.referer",{"_index":10995,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.refownermodel",{"_index":9647,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.refpermmodel",{"_index":9680,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["props.refreshtoken",{"_index":15146,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["props.regex",{"_index":7081,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.regexcomment",{"_index":7083,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["props.region",{"_index":11787,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.relatedresources",{"_index":11558,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.requesttoken",{"_index":9730,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.resource_link_id",{"_index":7004,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{}}}],["props.response",{"_index":10998,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["props.role",{"_index":10741,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.roleid",{"_index":10734,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["props.rolename",{"_index":8297,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["props.rolenames",{"_index":12369,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.rolenames.length",{"_index":11463,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["props.roles",{"_index":7006,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalUserDto.html":{},"interfaces/IRoleProperties.html":{},"entities/LtiTool.html":{},"entities/Role.html":{}}}],["props.school",{"_index":6430,"title":{},"body":{"entities/Course.html":{},"entities/CourseNews.html":{},"interfaces/ICourseProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/News.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{}}}],["props.schoolid",{"_index":4305,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"classes/UserLoginMigrationDO.html":{}}}],["props.schoolparameters",{"_index":11689,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.schooltool",{"_index":5690,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["props.schooltoolid",{"_index":17396,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["props.schooltoolref",{"_index":5618,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["props.schoolyear",{"_index":11729,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.scope",{"_index":7079,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.secret",{"_index":6996,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{}}}],["props.secretaccesskey",{"_index":11785,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["props.securitycheck",{"_index":9638,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.share",{"_index":19315,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["props.sharetokens",{"_index":9640,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.size",{"_index":9613,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["props.skipconsent",{"_index":7023,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.source",{"_index":4319,"title":{},"body":{"entities/ClassEntity.html":{},"entities/CourseNews.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.sourcedescription",{"_index":6747,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.sourceoptions",{"_index":4321,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.sourcesystem",{"_index":20227,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["props.sourcesystemid",{"_index":20349,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.startdate",{"_index":6438,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["props.startedat",{"_index":20233,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.state",{"_index":15374,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["props.status",{"_index":2079,"title":{},"body":{"classes/AxiosResponseImp.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.statustext",{"_index":2081,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["props.storagefilename",{"_index":9614,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.storageprovider",{"_index":9616,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.student",{"_index":11796,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.students",{"_index":6636,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["props.subjects",{"_index":11560,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.submitted",{"_index":11801,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.successor",{"_index":4317,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.system",{"_index":8319,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["props.systemid",{"_index":418,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"classes/ExternalSource.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{}}}],["props.systems",{"_index":11727,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.tags",{"_index":11562,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.target",{"_index":3401,"title":{},"body":{"entities/BoardElement.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.targetgroups",{"_index":11564,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["props.targetmodel",{"_index":20853,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["props.targetsystem",{"_index":20229,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["props.targetsystemid",{"_index":20351,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["props.task",{"_index":11800,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teacherids",{"_index":4309,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.teamid",{"_index":19330,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teammembers",{"_index":11807,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["props.teamname",{"_index":19332,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["props.teamsubmissions",{"_index":11990,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["props.teamusers",{"_index":12077,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{}}}],["props.teamusers.map((teamuser",{"_index":12078,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.text",{"_index":16773,"title":{},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["props.thumbnail",{"_index":9635,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.thumbnailrequesttoken",{"_index":9636,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.title",{"_index":3573,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ColumnBoardTarget.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.token",{"_index":412,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["props.tokenendpointauthmethod",{"_index":15175,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["props.tool",{"_index":11687,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["props.toolid",{"_index":8722,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.toolversion",{"_index":5626,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["props.ts",{"_index":11366,"title":{},"body":{"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/IFileDomainObjectProps.html":{}}}],["props.tspuid",{"_index":4422,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["props.type",{"_index":5236,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/ContextRef.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/ToolLaunchData.html":{}}}],["props.until",{"_index":8287,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["props.untildate",{"_index":6436,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["props.updatedat",{"_index":623,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/County.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{}}}],["props.updater",{"_index":6743,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["props.url",{"_index":6992,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/LdapConfig.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["props.user",{"_index":10740,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/ImportUser.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["props.userid",{"_index":416,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"classes/DashboardEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/GridElement.html":{},"classes/GroupUser.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["props.userids",{"_index":4306,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["props.userloginmigration",{"_index":11731,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["props.username",{"_index":408,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["props.users",{"_index":8283,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.users.map",{"_index":10624,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validfrom",{"_index":10619,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.validperiod",{"_index":10661,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["props.validuntil",{"_index":10620,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["props.value",{"_index":7103,"title":{},"body":{"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/PropertyData.html":{}}}],["props.version",{"_index":8338,"title":{},"body":{"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{}}}],["props.versionkey",{"_index":9654,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["props.write",{"_index":9681,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["props.year",{"_index":4312,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["propsfactory",{"_index":662,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["propsoffactory",{"_index":2564,"title":{},"body":{"classes/BaseFactory.html":{}}}],["protect",{"_index":21587,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["protect.validator.ts",{"_index":21517,"title":{},"body":{"miscellaneous/functions.html":{}}}],["protected",{"_index":661,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AuthorizableObject.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"injectables/DashboardRepo.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"classes/Group.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IDashboardRepo.html":{},"injectables/IdTokenService.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/ProvisioningService.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymsRepo.html":{},"classes/RichTextElement.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["protectedrole.id",{"_index":20810,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles",{"_index":20804,"title":{},"body":{"injectables/UserService.html":{}}}],["protectedroles.find((protectedrole",{"_index":20809,"title":{},"body":{"injectables/UserService.html":{}}}],["protecting",{"_index":21842,"title":{},"body":{"license.html":{}}}],["protection",{"_index":21882,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["proto",{"_index":10921,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["protocol",{"_index":12947,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapper",{"_index":13003,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocolmapperrepresentation",{"_index":12877,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["protocols",{"_index":21996,"title":{},"body":{"license.html":{}}}],["prototype",{"_index":1308,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["prove",{"_index":22197,"title":{},"body":{"license.html":{}}}],["provide",{"_index":836,"title":{},"body":{"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"classes/BoardManagementConsole.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/OauthProviderServiceModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/S3ClientModule.html":{},"modules/ToolConfigModule.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceModule.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["provided",{"_index":1110,"title":{},"body":{"injectables/AccountService.html":{},"classes/BoardDoBuilderImpl.html":{},"modules/ErrorModule.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/LegacyLogger.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["provider",{"_index":4556,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"classes/ConsentRequestBody.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/LoginRequestBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthLoginStateDto.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["provider(s",{"_index":11614,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["provider.client",{"_index":15418,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.consent",{"_index":15447,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{}}}],["provider.controller",{"_index":15414,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.controller.ts",{"_index":15478,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:103",{"_index":15486,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:109",{"_index":15492,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:117",{"_index":15507,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:135",{"_index":15482,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:143",{"_index":15489,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:151",{"_index":15504,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:169",{"_index":15499,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:182",{"_index":15511,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:188",{"_index":15496,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:49",{"_index":15494,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:60",{"_index":15501,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:80",{"_index":15484,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.controller.ts:91",{"_index":15513,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.login",{"_index":12155,"title":{},"body":{"injectables/IdTokenService.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["provider.logout",{"_index":15514,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLogoutFlowUc.html":{}}}],["provider.mapper",{"_index":12836,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["provider.mapper.ts",{"_index":15884,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:6",{"_index":15887,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.mapper.ts:9",{"_index":15889,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["provider.module",{"_index":15416,"title":{},"body":{"modules/OauthProviderApiModule.html":{}}}],["provider.module.ts",{"_index":15636,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["provider.service",{"_index":10891,"title":{},"body":{"injectables/HydraAdapter.html":{},"modules/OauthProviderServiceModule.html":{}}}],["provider.service.ts",{"_index":15661,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:14",{"_index":15668,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:16",{"_index":15663,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:18",{"_index":15675,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:20",{"_index":15667,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:22",{"_index":15662,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:24",{"_index":15674,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:26",{"_index":15664,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:28",{"_index":15670,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:30",{"_index":15671,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:32",{"_index":15673,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:39",{"_index":15665,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:41",{"_index":15669,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:43",{"_index":15677,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:45",{"_index":15666,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:47",{"_index":15672,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.service.ts:49",{"_index":15676,"title":{},"body":{"classes/OauthProviderService.html":{}}}],["provider.uc",{"_index":15522,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider.uc.ts",{"_index":15682,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:10",{"_index":15685,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:15",{"_index":15687,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider.uc.ts:7",{"_index":15683,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["provider/controller/dto",{"_index":15459,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/controller/dto/request/accept.query.ts",{"_index":362,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["provider/controller/dto/request/accept.query.ts:9",{"_index":372,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["provider/controller/dto/request/challenge.params.ts",{"_index":4215,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/challenge.params.ts:11",{"_index":4217,"title":{},"body":{"classes/ChallengeParams.html":{}}}],["provider/controller/dto/request/consent",{"_index":5371,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["provider/controller/dto/request/id.params.ts",{"_index":12125,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/id.params.ts:11",{"_index":12126,"title":{},"body":{"classes/IdParams.html":{}}}],["provider/controller/dto/request/list",{"_index":13976,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["provider/controller/dto/request/login",{"_index":14121,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["provider/controller/dto/request/oauth",{"_index":15016,"title":{},"body":{"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{}}}],["provider/controller/dto/request/revoke",{"_index":16728,"title":{},"body":{"classes/RevokeConsentParams.html":{}}}],["provider/controller/dto/request/user.params.ts",{"_index":20690,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/request/user.params.ts:7",{"_index":20691,"title":{},"body":{"classes/UserParams.html":{}}}],["provider/controller/dto/response/consent",{"_index":5466,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["provider/controller/dto/response/consent.response",{"_index":15517,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/controller/dto/response/consent.response.ts",{"_index":5422,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:16",{"_index":5432,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:22",{"_index":5435,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:28",{"_index":5438,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:32",{"_index":5441,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:36",{"_index":5442,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:40",{"_index":5445,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:44",{"_index":5447,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:48",{"_index":5449,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:54",{"_index":5454,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:6",{"_index":5430,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:60",{"_index":5455,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:66",{"_index":5456,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:72",{"_index":5459,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/consent.response.ts:76",{"_index":5460,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["provider/controller/dto/response/login.response.ts",{"_index":14126,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:13",{"_index":14133,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:16",{"_index":14130,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:19",{"_index":14131,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:23",{"_index":14134,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:27",{"_index":14136,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:31",{"_index":14137,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:37",{"_index":14138,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:43",{"_index":14142,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:48",{"_index":14143,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:51",{"_index":14144,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/login.response.ts:6",{"_index":14129,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oauth",{"_index":5463,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{}}}],["provider/controller/dto/response/oidc",{"_index":5461,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OidcContextResponse.html":{}}}],["provider/controller/dto/response/redirect.response",{"_index":15519,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/controller/dto/response/redirect.response.ts",{"_index":16598,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:12",{"_index":16603,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/dto/response/redirect.response.ts:3",{"_index":16600,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["provider/controller/oauth",{"_index":15477,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["provider/dto",{"_index":9110,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{}}}],["provider/dto/interface/oidc",{"_index":16294,"title":{},"body":{"interfaces/ProviderOidcContext.html":{}}}],["provider/dto/request/accept",{"_index":338,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{}}}],["provider/dto/request/reject",{"_index":16620,"title":{},"body":{"interfaces/RejectRequestBody.html":{}}}],["provider/dto/response/consent",{"_index":15520,"title":{},"body":{"controllers/OauthProviderController.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["provider/dto/response/consent.response.ts",{"_index":16286,"title":{},"body":{"interfaces/ProviderConsentResponse.html":{}}}],["provider/dto/response/introspect.response.ts",{"_index":12577,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["provider/dto/response/login.response.ts",{"_index":16293,"title":{},"body":{"interfaces/ProviderLoginResponse.html":{}}}],["provider/dto/response/redirect.response.ts",{"_index":16295,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{}}}],["provider/error/id",{"_index":12128,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{}}}],["provider/hydra/hydra.adapter",{"_index":15681,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["provider/hydra/hydra.adapter.ts",{"_index":10823,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/hydra/hydra.adapter.ts:140",{"_index":10870,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/hydra/hydra.adapter.ts:153",{"_index":10853,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/hydra/hydra.adapter.ts:157",{"_index":10878,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/hydra/hydra.adapter.ts:23",{"_index":10841,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["provider/index",{"_index":15435,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["provider/interface/id",{"_index":350,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/interface/subject",{"_index":15270,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/interface/token",{"_index":15271,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["provider/mapper/oauth",{"_index":15516,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{}}}],["provider/oauth",{"_index":15412,"title":{},"body":{"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{}}}],["provider/service/id",{"_index":12136,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/OauthProviderConsentFlowUc.html":{}}}],["provider/service/oauth",{"_index":15574,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["provider/uc/oauth",{"_index":15417,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{}}}],["providerconsentresponse",{"_index":10885,"title":{"interfaces/ProviderConsentResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerconsentsessionresponse",{"_index":10888,"title":{"interfaces/ProviderConsentSessionResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["providerid",{"_index":12928,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["providerloginresponse",{"_index":10886,"title":{"interfaces/ProviderLoginResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroauthclient",{"_index":9106,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["provideroidccontext",{"_index":16287,"title":{"interfaces/ProviderOidcContext.html":{}},"body":{"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["provideroptions",{"_index":11905,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["providerredirectresponse",{"_index":10887,"title":{"interfaces/ProviderRedirectResponse.html":{}},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"interfaces/ProviderRedirectResponse.html":{}}}],["providers",{"_index":432,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DeleteFilesUc.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/InterceptorModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RocketChatModule.html":{},"modules/RoleModule.html":{},"modules/S3ClientModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StorageProviderRepo.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/ValidationModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["providers.foreach((provider",{"_index":7843,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["provides",{"_index":4480,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/LegacyLogger.html":{},"injectables/NewsUc.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["providing",{"_index":4571,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CoreModule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["provision",{"_index":17547,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{},"license.html":{}}}],["provisionally",{"_index":22049,"title":{},"body":{"license.html":{}}}],["provisiondata",{"_index":16316,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisiondata(oauthdata",{"_index":16330,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisionexternalgroup",{"_index":15912,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalgroup(externalgroup",{"_index":15919,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool",{"_index":15913,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternalschool(externalschool",{"_index":15921,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser",{"_index":15914,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisionexternaluser(externaluser",{"_index":15923,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning",{"_index":10705,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/OAuthService.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["provisioning.loggable",{"_index":20683,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["provisioning.service",{"_index":15995,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioning.service.ts",{"_index":15910,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:120",{"_index":15920,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:164",{"_index":15917,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:19",{"_index":15915,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:31",{"_index":15922,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.service.ts:68",{"_index":15924,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["provisioning.strategy",{"_index":11852,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{}}}],["provisioningdto",{"_index":12626,"title":{"classes/ProvisioningDto.html":{}},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{}}}],["provisioningdto.externaluserid",{"_index":16300,"title":{},"body":{"classes/ProvisioningDto.html":{}}}],["provisioningmodule",{"_index":15230,"title":{"modules/ProvisioningModule.html":{}},"body":{"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["provisioningservice",{"_index":15044,"title":{"injectables/ProvisioningService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["provisioningstrategy",{"_index":11848,"title":{"classes/ProvisioningStrategy.html":{}},"body":{"interfaces/ISystemProperties.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["provisioningstrategy:10",{"_index":15904,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:14",{"_index":15903,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:24",{"_index":12624,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:28",{"_index":12623,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:30",{"_index":17258,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:31",{"_index":15902,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{}}}],["provisioningstrategy:34",{"_index":17257,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["provisioningstrategy:5",{"_index":15993,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningstrategy:61",{"_index":12618,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["provisioningstrategy:7",{"_index":15992,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["provisioningsystemdto",{"_index":15351,"title":{"classes/ProvisioningSystemDto.html":{}},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper",{"_index":16335,"title":{"classes/ProvisioningSystemInputMapper.html":{}},"body":{"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{}}}],["provisioningsysteminputmapper.maptointernal(systemdto",{"_index":16346,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["provisioningurl",{"_index":11849,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["provisionuser",{"_index":15041,"title":{},"body":{"injectables/OAuthService.html":{}}}],["provisionuser(systemid",{"_index":15064,"title":{},"body":{"injectables/OAuthService.html":{}}}],["proxy",{"_index":17829,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"license.html":{}}}],["proxy's",{"_index":22187,"title":{},"body":{"license.html":{}}}],["ps256",{"_index":1677,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps384",{"_index":1678,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["ps512",{"_index":1679,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["pseudonym",{"_index":8712,"title":{"classes/Pseudonym.html":{}},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonym.entity.ts",{"_index":8711,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{}}}],["pseudonym.entity.ts:18",{"_index":8714,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:21",{"_index":8715,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.entity.ts:24",{"_index":8716,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{}}}],["pseudonym.pseudonym",{"_index":14251,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["pseudonym.repo.ts",{"_index":8725,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:10",{"_index":8741,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:21",{"_index":8739,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:36",{"_index":8737,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:45",{"_index":8734,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:66",{"_index":8736,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:7",{"_index":8732,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:74",{"_index":8745,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonym.repo.ts:85",{"_index":8743,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["pseudonymentity",{"_index":16380,"title":{"entities/PseudonymEntity.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymentity(entityprops",{"_index":16449,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["pseudonymentityprops",{"_index":16385,"title":{"interfaces/PseudonymEntityProps.html":{}},"body":{"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymmodule",{"_index":4550,"title":{"modules/PseudonymModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/PseudonymModule.html":{},"modules/ToolLaunchModule.html":{},"modules.html":{}}}],["pseudonymous",{"_index":6970,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["pseudonympromise",{"_index":16415,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonymprops",{"_index":16376,"title":{"interfaces/PseudonymProps.html":{}},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["pseudonymrepo",{"_index":16400,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["pseudonyms",{"_index":8718,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["pseudonymservice",{"_index":12144,"title":{"injectables/PseudonymService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{}}}],["pseudonymsrepo",{"_index":16389,"title":{"injectables/PseudonymsRepo.html":{}},"body":{"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{}}}],["public",{"_index":116,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AccountParams.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizableObject.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"classes/Card.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/CopyFileResponseBuilder.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CustomLtiProperty.html":{},"injectables/DeleteFilesUc.html":{},"classes/DomainObject.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"injectables/FilesRepo.html":{},"injectables/FilesStorageConsumer.html":{},"classes/Group.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacySchoolRule.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"injectables/MigrationMapper.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthRejectableBody.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymService.html":{},"classes/PublicSystemListResponse.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolValidationService.html":{},"controllers/ServerController.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItem.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionRule.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/Task.html":{},"injectables/TaskRule.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"controllers/ToolConfigurationController.html":{},"injectables/ToolPermissionHelper.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["publicbackendurl",{"_index":15128,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["publicclient",{"_index":12949,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["publicity",{"_index":22020,"title":{},"body":{"license.html":{}}}],["publickey",{"_index":6872,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["publiclink",{"_index":14871,"title":{},"body":{"injectables/NexboardService.html":{}}}],["publicly",{"_index":18537,"title":{},"body":{"controllers/SystemController.html":{},"license.html":{}}}],["publicservice",{"_index":22532,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["publicsubmissions",{"_index":11955,"title":{},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["publicsystemlistresponse",{"_index":16452,"title":{"classes/PublicSystemListResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publicsystemlistresponse(systemresponses",{"_index":18696,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["publicsystemresponse",{"_index":16455,"title":{"classes/PublicSystemResponse.html":{}},"body":{"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["publish",{"_index":4825,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"classes/PatchVisibilityParams.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{},"todo.html":{}}}],["published",{"_index":2778,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{},"classes/CreateNewsParams.html":{},"classes/DtoCreator.html":{},"classes/FilterNewsParams.html":{},"injectables/NewsUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"controllers/UserController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["publishedat",{"_index":21320,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["pull",{"_index":21637,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["purpose",{"_index":53,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"injectables/TaskRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["purposes",{"_index":4168,"title":{},"body":{"classes/CardSkeletonResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["pursuant",{"_index":22134,"title":{},"body":{"license.html":{}}}],["put",{"_index":4038,"title":{},"body":{"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/FileSecurityController.html":{},"injectables/HydraAdapter.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/LegacySchoolController.html":{},"controllers/OauthProviderController.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TestApiClient.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["put('/:schoolexternaltoolid",{"_index":19941,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put('/:schoolexternaltoolid')@apiokresponse({description",{"_index":19930,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["put(':cardid/position",{"_index":4057,"title":{},"body":{"controllers/CardController.html":{}}}],["put(':columnid/position",{"_index":4875,"title":{},"body":{"controllers/ColumnController.html":{}}}],["put(':contentelementid/position",{"_index":8068,"title":{},"body":{"controllers/ElementController.html":{}}}],["put(':contextexternaltoolid",{"_index":19639,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':contextexternaltoolid')@apiokresponse({description",{"_index":19618,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["put(':schoolid/migration",{"_index":13473,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':schoolid/migration')@authenticate('jwt')@apiokresponse({description",{"_index":13459,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["put(':scope/:scopeid/start",{"_index":20922,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put(':scope/:scopeid/start')@apioperation({summary",{"_index":20910,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["put('clients/:id",{"_index":15540,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["put('mandatory",{"_index":20328,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('mandatory')@apinotfoundresponse({description",{"_index":20290,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart",{"_index":20325,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put('restart')@apinotfoundresponse({description",{"_index":20283,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["put(filesstorageinternalactions.updatesecuritystatus",{"_index":9951,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["put(flow",{"_index":10868,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["put(path",{"_index":1744,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["put(subpath",{"_index":1743,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["putting",{"_index":22361,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["pw",{"_index":6895,"title":{},"body":{"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/JwtPayload.html":{}}}],["pwd/backup/idm/keycloak:/tmp/realms",{"_index":22352,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["pwd/backup/idm/oidcmock:/tmp/config",{"_index":22939,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["p{extended_pictographic}/u",{"_index":6467,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["q",{"_index":13115,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["qs",{"_index":10883,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["qs.stringify(data",{"_index":13069,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["qualify",{"_index":22061,"title":{},"body":{"license.html":{}}}],["quality",{"_index":22196,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["quarkus",{"_index":22965,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["quay.io/minio/minio",{"_index":22346,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["queries",{"_index":12564,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["queries.length",{"_index":12567,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/NewsScope.html":{}}}],["query",{"_index":529,"title":{},"body":{"controllers/AccountController.html":{},"controllers/CardController.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"controllers/CourseController.html":{},"classes/CourseScope.html":{},"controllers/DashboardController.html":{},"controllers/DatabaseManagementController.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"classes/FileRecordScope.html":{},"classes/GlobalValidationPipe.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakConsole.html":{},"classes/LessonScope.html":{},"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RoleNameMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/Scope.html":{},"injectables/SubmissionRepo.html":{},"controllers/SystemController.html":{},"classes/SystemScope.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserDORepo.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{}}}],["query('usecentralldap",{"_index":12338,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["query('x",{"_index":7246,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query('y",{"_index":7247,"title":{},"body":{"controllers/DashboardController.html":{}}}],["query.accept",{"_index":15463,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["query.classes",{"_index":12419,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.code",{"_index":15773,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.error",{"_index":15774,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.firstname",{"_index":12407,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.flagged",{"_index":12424,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.lastloginsystemchangebetweenend",{"_index":20106,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastloginsystemchangebetweenstart",{"_index":20105,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["query.lastname",{"_index":12410,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.loginname",{"_index":12413,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match",{"_index":12420,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.match.map((match",{"_index":12422,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.migration",{"_index":15767,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.name",{"_index":20553,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["query.postloginredirect",{"_index":15768,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["query.role",{"_index":12414,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["query.schoolid",{"_index":17494,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["query.state",{"_index":15763,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["query.targetid",{"_index":14703,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.targetmodel",{"_index":14701,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.ts",{"_index":9069,"title":{},"body":{"interfaces/ExternalToolSearchQuery.html":{},"interfaces/UserLoginMigrationQuery.html":{}}}],["query.type",{"_index":20096,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["query.unpublished",{"_index":14705,"title":{},"body":{"classes/NewsMapper.html":{}}}],["query.userid",{"_index":20509,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["query/body",{"_index":22642,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["query/empty",{"_index":17730,"title":{},"body":{"classes/Scope.html":{}}}],["queryfiltermatch",{"_index":20714,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryfiltermatch.$or",{"_index":20720,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryoptions",{"_index":6804,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ImportUserRepo.html":{}}}],["queryordermap",{"_index":6785,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["queryordermap[key",{"_index":9186,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["queryordernumeric",{"_index":20706,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.asc",{"_index":20735,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryordernumeric.desc",{"_index":20734,"title":{},"body":{"injectables/UserRepo.html":{}}}],["queryparams",{"_index":250,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"controllers/CourseController.html":{}}}],["queryparams.append('checksum",{"_index":2377,"title":{},"body":{"injectables/BBBService.html":{}}}],["queryparams.append(property.name",{"_index":252,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["queryparams.tostring",{"_index":255,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["queryparams.version",{"_index":6510,"title":{},"body":{"controllers/CourseController.html":{}}}],["queryproperties",{"_index":243,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["queryproperties.foreach((property",{"_index":251,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["queryproperties.length",{"_index":249,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["querys",{"_index":10279,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{}}}],["querystring",{"_index":2367,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/OauthAdapterService.html":{}}}],["querystring.stringify",{"_index":10913,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{}}}],["querystring.stringify(payload",{"_index":15218,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["queue",{"_index":10175,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq",{"_index":1438,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rabbitmq#usage",{"_index":16472,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmq:3.8.9",{"_index":22336,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmq_url",{"_index":22329,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["rabbitmqmodule",{"_index":16470,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqmodule.forroot(rabbitmqmodule",{"_index":16477,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["rabbitmqwrappermodule",{"_index":10245,"title":{"modules/RabbitMQWrapperModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rabbitmqwrappertestmodule",{"_index":10246,"title":{"modules/RabbitMQWrapperTestModule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementModule.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rabbitpayload",{"_index":10182,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["rabbitrpc",{"_index":10183,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["rabbitrpc({exchange",{"_index":10173,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["random",{"_index":3477,"title":{},"body":{"injectables/BoardManagementUc.html":{},"injectables/FileSystemAdapter.html":{}}}],["random(min",{"_index":3492,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["randombytes",{"_index":13724,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["randombytes(12).tostring('hex",{"_index":13791,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["randomuuid",{"_index":1811,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["range",{"_index":10409,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"injectables/S3ClientAdapter.html":{}}}],["ranges",{"_index":10407,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["rawaxiosrequestheaders",{"_index":10877,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["rawfiledocument",{"_index":10068,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments",{"_index":10064,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawfilesdocuments.map((rawfiledocument",{"_index":10066,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["rawlessondocument",{"_index":13898,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments",{"_index":13894,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rawlessonsdocuments.map((rawlessondocument",{"_index":13896,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["rc",{"_index":11584,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["rd",{"_index":11588,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["re",{"_index":958,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BoardNodeRepo.html":{},"classes/ExternalToolScope.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["reachable",{"_index":11575,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["react",{"_index":22452,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["read",{"_index":1871,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/LessonRule.html":{},"controllers/NewsController.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/TaskUC.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"dependencies.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["read(requiredpermissions",{"_index":1875,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["readable",{"_index":5410,"title":{},"body":{"classes/ConsentRequestBody.html":{},"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/PreviewFileParams.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["readable.from('abc",{"_index":16504,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readable.from(text",{"_index":19460,"title":{},"body":{"classes/TestHelper.html":{}}}],["readablestreamwithfiletype",{"_index":16495,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypefactory",{"_index":16502,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeimp",{"_index":16492,"title":{"classes/ReadableStreamWithFileTypeImp.html":{}},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readablestreamwithfiletypeprops",{"_index":16497,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["readcourseids",{"_index":19231,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses",{"_index":19227,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readcourses.map((c",{"_index":19232,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readdir",{"_index":9963,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readdir(folderpath",{"_index":9986,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["reader",{"_index":3102,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["readfile",{"_index":9964,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readfile(filepath",{"_index":9990,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["readily",{"_index":22124,"title":{},"body":{"license.html":{}}}],["reading",{"_index":22000,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["readlessons",{"_index":19236,"title":{},"body":{"injectables/TaskUC.html":{}}}],["readonly",{"_index":216,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"entities/Account.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"injectables/BoardNodeRepo.html":{},"controllers/BoardSubmissionController.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CalendarService.html":{},"controllers/CardController.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRule.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorResponse.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FederalStateService.html":{},"classes/FileRecordFactory.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IErrorType.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISystemProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRule.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"controllers/LoginController.html":{},"injectables/LoginUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolService.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/MaterialFactory.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthConfig.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"injectables/TaskRule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserController.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRule.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"entities/VideoConference.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["ready",{"_index":13168,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["real",{"_index":22363,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["really",{"_index":6411,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["realm",{"_index":12809,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["realmname",{"_index":11515,"title":{},"body":{"interfaces/IKeycloakSettings.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows",{"_index":12915,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions",{"_index":12924,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["realmname}/authentication/flows/{flowalias}/executions/execution",{"_index":12926,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["reason",{"_index":9725,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reasonable",{"_index":21923,"title":{},"body":{"license.html":{}}}],["reasons",{"_index":18699,"title":{},"body":{"classes/SystemResponseMapper.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["receipt",{"_index":22059,"title":{},"body":{"license.html":{}}}],["receive",{"_index":21697,"title":{},"body":{"license.html":{}}}],["received",{"_index":12590,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/UserLoginMigrationUc.html":{},"license.html":{}}}],["receives",{"_index":22075,"title":{},"body":{"license.html":{}}}],["receiving",{"_index":22138,"title":{},"body":{"license.html":{}}}],["recieved",{"_index":22806,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["recieving",{"_index":22522,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["recipient",{"_index":21983,"title":{},"body":{"license.html":{}}}],["recipient's",{"_index":22131,"title":{},"body":{"license.html":{}}}],["recipients",{"_index":1577,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{},"license.html":{}}}],["recognized",{"_index":21792,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["recommend",{"_index":22836,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["recommendations",{"_index":22881,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["recommended",{"_index":22879,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["reconnect",{"_index":13303,"title":{},"body":{"injectables/LdapService.html":{}}}],["reconsidered",{"_index":13356,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["record",{"_index":1291,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardNodeRepo.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContextTypeMapper.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"classes/ForbiddenOperationError.html":{},"classes/GroupDomainMapper.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IUserProperties.html":{},"classes/LdapConnectionError.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultParams.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"classes/SingleFileParams.html":{},"classes/ToolLaunchMapper.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationError.html":{}}}],["record.mapper.ts",{"_index":9805,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:11",{"_index":9813,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:23",{"_index":9810,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.mapper.ts:5",{"_index":9815,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["record.ts",{"_index":21491,"title":{},"body":{"miscellaneous/functions.html":{}}}],["recording",{"_index":2266,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["recursive",{"_index":3310,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/CopyApiResponse.html":{}}}],["recursivedeletevisitor",{"_index":3283,"title":{"injectables/RecursiveDeleteVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"modules/BoardModule.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["recursively",{"_index":9999,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"injectables/PermissionService.html":{}}}],["recursivesavevisitor",{"_index":3312,"title":{"classes/RecursiveSaveVisitor.html":{}},"body":{"injectables/BoardDoRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["recursivesavevisitor(this.em",{"_index":3345,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["red",{"_index":22288,"title":{},"body":{"todo.html":{}}}],["redirect",{"_index":2211,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/RedirectResponse.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{}}}],["redirect_to",{"_index":16296,"title":{},"body":{"interfaces/ProviderRedirectResponse.html":{},"classes/RedirectResponse.html":{}}}],["redirect_uri",{"_index":1599,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/HydraSsoService.html":{},"classes/TokenRequestMapper.html":{}}}],["redirect_uris",{"_index":9172,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["redirectreponse",{"_index":16601,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectreponse.redirect_to",{"_index":16605,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redirectresponse",{"_index":15468,"title":{"classes/RedirectResponse.html":{}},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/RedirectResponse.html":{}}}],["redirects",{"_index":15325,"title":{},"body":{"classes/OauthConfigResponse.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi",{"_index":11083,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/OAuthService.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["redirecturi.tostring",{"_index":15132,"title":{},"body":{"injectables/OAuthService.html":{}}}],["redirecturis",{"_index":7139,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["redirecturl",{"_index":16602,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["redis",{"_index":3912,"title":{},"body":{"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{}}}],["redis_client",{"_index":16610,"title":{},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redis_uri",{"_index":17822,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisclient",{"_index":3913,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redisidentifier",{"_index":12735,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["redismodule",{"_index":16606,"title":{"modules/RedisModule.html":{}},"body":{"modules/RedisModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["redisstore",{"_index":17817,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["redistribute",{"_index":22231,"title":{},"body":{"license.html":{}}}],["redisurl",{"_index":3917,"title":{},"body":{"modules/CacheWrapperModule.html":{},"modules/RedisModule.html":{}}}],["reduce",{"_index":23143,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["reduce((acc",{"_index":19765,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["reduce((previousteachers",{"_index":5025,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["redundant",{"_index":21562,"title":{},"body":{"miscellaneous/functions.html":{}}}],["ref",{"_index":4072,"title":{},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["ref.do.ts",{"_index":17393,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:2",{"_index":17395,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.do.ts:4",{"_index":17394,"title":{},"body":{"classes/SchoolExternalToolRefDO.html":{}}}],["ref.params.ts",{"_index":6011,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:13",{"_index":6012,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.params.ts:9",{"_index":6014,"title":{},"body":{"classes/ContextRefParams.html":{}}}],["ref.target",{"_index":2742,"title":{},"body":{"entities/Board.html":{}}}],["ref.ts",{"_index":6007,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:4",{"_index":6009,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["ref.ts:6",{"_index":6008,"title":{},"body":{"classes/ContextRef.html":{},"classes/ScopeRef.html":{}}}],["refactor",{"_index":7601,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{},"injectables/IdTokenService.html":{},"modules/LearnroomApiModule.html":{},"injectables/LegacySchoolUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["refactoring",{"_index":9474,"title":{},"body":{"injectables/FederalStateService.html":{},"classes/LegacySchoolDo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["refer",{"_index":3409,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["reference",{"_index":1932,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardElement.html":{},"injectables/ColumnBoardService.html":{},"classes/ConsentResponse.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ITaskParent.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/LessonEntity.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamNews.html":{},"modules/ToolModule.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UpdateMatchParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserDO.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.contains(user",{"_index":1934,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["reference.getmetadata",{"_index":7336,"title":{},"body":{"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["reference.loader",{"_index":1988,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["reference.mapper",{"_index":19900,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.mapper.ts",{"_index":19863,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.mapper.ts:6",{"_index":19866,"title":{},"body":{"classes/ToolReferenceMapper.html":{}}}],["reference.response",{"_index":19861,"title":{},"body":{"classes/ToolReferenceListResponse.html":{}}}],["reference.response.ts",{"_index":19867,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:13",{"_index":19874,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:16",{"_index":19871,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:19",{"_index":19876,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:27",{"_index":19869,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.response.ts:6",{"_index":19870,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["reference.ts",{"_index":3416,"title":{},"body":{"interfaces/BoardExternalReference.html":{},"classes/RoleReference.html":{},"classes/ToolReference.html":{}}}],["reference.ts:10",{"_index":19856,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:12",{"_index":19852,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:4",{"_index":19853,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:5",{"_index":16838,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:6",{"_index":19855,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.ts:7",{"_index":16837,"title":{},"body":{"classes/RoleReference.html":{}}}],["reference.ts:8",{"_index":19854,"title":{},"body":{"classes/ToolReference.html":{}}}],["reference.type",{"_index":3336,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["reference.uc.ts",{"_index":19883,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:16",{"_index":19888,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:26",{"_index":19899,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:51",{"_index":19891,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:83",{"_index":19893,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:95",{"_index":19897,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["reference.uc.ts:99",{"_index":19895,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["referenced",{"_index":3394,"title":{},"body":{"entities/BoardElement.html":{},"classes/CardSkeletonResponse.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/INewsProperties.html":{},"injectables/ImportUserRepo.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"injectables/UserRepo.html":{}}}],["referencedentities",{"_index":4436,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["referencedid",{"_index":7319,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceforindex",{"_index":7396,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referenceids",{"_index":2680,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["referenceloader",{"_index":1964,"title":{"injectables/ReferenceLoader.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["referencemodels",{"_index":7534,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["references",{"_index":2672,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/GridElement.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"modules/ImportUserModule.html":{},"controllers/ToolController.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["references.filter((ref",{"_index":2736,"title":{},"body":{"entities/Board.html":{}}}],["references.push(lessonelement",{"_index":3076,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.push(taskelement",{"_index":3074,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["references.some((ref",{"_index":2741,"title":{},"body":{"entities/Board.html":{}}}],["references[position.groupindex",{"_index":7397,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["referer",{"_index":10973,"title":{},"body":{"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["referring",{"_index":21693,"title":{},"body":{"license.html":{}}}],["refers",{"_index":21738,"title":{},"body":{"license.html":{}}}],["refid",{"_index":9667,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refined",{"_index":22885,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reflect",{"_index":21448,"title":{},"body":{"dependencies.html":{},"todo.html":{}}}],["reflector",{"_index":19473,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["reflector.get('timeout",{"_index":19476,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["refobjectid",{"_index":9618,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["refownermodel",{"_index":9564,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["refpermmodel",{"_index":9668,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["refrain",{"_index":22166,"title":{},"body":{"license.html":{}}}],["refresh_token",{"_index":15433,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"interfaces/OauthTokenResponse.html":{}}}],["refreshtimeout",{"_index":17191,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["refreshtoken",{"_index":15139,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/TokenRequestMapper.html":{}}}],["regard",{"_index":22005,"title":{},"body":{"license.html":{}}}],["regarding",{"_index":21627,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["regardless",{"_index":21892,"title":{},"body":{"license.html":{}}}],["regenerate",{"_index":21818,"title":{},"body":{"license.html":{}}}],["regex",{"_index":5369,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/CopyFilesService.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ImportUserScope.html":{},"injectables/LessonCopyService.html":{},"classes/MongoPatterns.html":{},"injectables/TaskCopyService.html":{},"injectables/UserRepo.html":{}}}],["regex_mongo_language_pattern_whitelist",{"_index":14550,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["regexcomment",{"_index":7063,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["regexp",{"_index":6208,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`${sourceid",{"_index":6221,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["regexp(`^${email.replace(/\\w/g",{"_index":20744,"title":{},"body":{"injectables/UserRepo.html":{}}}],["regexp(param.regex",{"_index":8701,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(param.regex).test(foundentry.value",{"_index":5365,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["regexp(param.regex).test(param.default",{"_index":8703,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["regexp(searchusername",{"_index":963,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["region",{"_index":6165,"title":{},"body":{"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IStorageProviderProperties.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"entities/StorageProviderEntity.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["register",{"_index":17198,"title":{},"body":{"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["register(configs",{"_index":17199,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["registerparentdata",{"_index":16543,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerparentdata(parent",{"_index":16548,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["registerstrategy",{"_index":16317,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["registerstrategy(strategy",{"_index":16332,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["regular",{"_index":952,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["reinstated",{"_index":22048,"title":{},"body":{"license.html":{}}}],["reject",{"_index":10910,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/LdapService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reject(new",{"_index":13316,"title":{},"body":{"injectables/LdapService.html":{}}}],["rejectable.body",{"_index":5420,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rejectable.body.ts",{"_index":15017,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:13",{"_index":15018,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:23",{"_index":15019,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:32",{"_index":15020,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:41",{"_index":15021,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectable.body.ts:50",{"_index":15022,"title":{},"body":{"classes/OAuthRejectableBody.html":{}}}],["rejectconsentrequest",{"_index":10837,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectconsentrequest(challenge",{"_index":10871,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest",{"_index":10838,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectloginrequest(challenge",{"_index":10873,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{}}}],["rejectrequestbody",{"_index":10869,"title":{"interfaces/RejectRequestBody.html":{}},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"interfaces/RejectRequestBody.html":{}}}],["rejects",{"_index":18305,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["related",{"_index":6911,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"classes/KeycloakConsole.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"entities/Submission.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["relatedresources",{"_index":11541,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["relation",{"_index":10702,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{},"injectables/SanisResponseMapper.html":{}}}],["relation.ktid",{"_index":17333,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["relations",{"_index":9691,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relationship",{"_index":12053,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{}}}],["relationtype",{"_index":11550,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["relative",{"_index":11043,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{}}}],["release",{"_index":22854,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["released",{"_index":21733,"title":{},"body":{"license.html":{}}}],["releasing",{"_index":21725,"title":{},"body":{"license.html":{}}}],["relevant",{"_index":21887,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["relicensing",{"_index":21734,"title":{},"body":{"license.html":{}}}],["reload",{"_index":16207,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["relying",{"_index":22123,"title":{},"body":{"license.html":{}}}],["remain",{"_index":21940,"title":{},"body":{"license.html":{}}}],["remains",{"_index":21691,"title":{},"body":{"license.html":{}}}],["remember",{"_index":344,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["remember_for",{"_index":345,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["remembered",{"_index":5390,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["rememberfor",{"_index":5388,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{}}}],["remote",{"_index":22168,"title":{},"body":{"license.html":{}}}],["remotely",{"_index":22170,"title":{},"body":{"license.html":{}}}],["removal",{"_index":22007,"title":{},"body":{"license.html":{}}}],["remove",{"_index":1991,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"entities/CourseNews.html":{},"classes/DeleteFilesConsole.html":{},"injectables/FilesStorageConsumer.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"modules/InterceptorModule.html":{},"classes/KeycloakConsole.html":{},"modules/LearnroomApiModule.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PermissionService.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"modules/ToolModule.html":{},"modules/VideoConferenceModule.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["removechild",{"_index":2798,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["removechild(child",{"_index":2816,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["removed",{"_index":80,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AuthorizationService.html":{},"injectables/FilesStorageProducer.html":{},"miscellaneous/functions.html":{}}}],["removedeletedreferences(boardelementtargets",{"_index":2734,"title":{},"body":{"entities/Board.html":{}}}],["removedirrecursive",{"_index":9965,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removedirrecursive(folderpath",{"_index":9996,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["removefeature",{"_index":13590,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefeature(schoolid",{"_index":13602,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["removefromposition",{"_index":7265,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removefromposition(position",{"_index":7301,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removefromwhitelist",{"_index":12714,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removefromwhitelist(accountid",{"_index":12725,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["removegroupmoderator(groupname",{"_index":1350,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["removejwtfromwhitelist",{"_index":1787,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removejwtfromwhitelist(jwttoken",{"_index":1802,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["removematch",{"_index":12266,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removematch(urlparams",{"_index":12280,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["removepassword",{"_index":1131,"title":{},"body":{"injectables/AccountService.html":{}}}],["removepermissionsbyrefid(refid",{"_index":9617,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["removeprotectedentityfields",{"_index":2391,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["removeprotectedentityfields(entity",{"_index":2420,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["removereference",{"_index":10554,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereference(reference",{"_index":7315,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex",{"_index":10555,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removereferencebyindex(index",{"_index":7314,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removeroomsnotinlist",{"_index":7266,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["removeroomsnotinlist(roomlist",{"_index":7303,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["removes",{"_index":9998,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["removesecrets(collectionname",{"_index":11287,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromstorageproviders(storageproviders",{"_index":11290,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removesecretsfromsystems(systems",{"_index":11292,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["removestudent(userid",{"_index":6642,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["removesubstitutionteacher(userid",{"_index":6476,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["removeteacher(userid",{"_index":6474,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["removeuser",{"_index":4226,"title":{},"body":{"classes/Class.html":{}}}],["removeuser(userid",{"_index":4235,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["removeuserids",{"_index":14945,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserids.tostring",{"_index":14949,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["removeuserpermissionstoanyfiles",{"_index":10072,"title":{},"body":{"injectables/FilesService.html":{}}}],["removeuserpermissionstoanyfiles(userid",{"_index":10076,"title":{},"body":{"injectables/FilesService.html":{}}}],["removing",{"_index":21592,"title":{},"body":{"miscellaneous/functions.html":{}}}],["rename",{"_index":8839,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["renamebodyparams",{"_index":2950,"title":{"classes/RenameBodyParams.html":{}},"body":{"controllers/BoardController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/RenameBodyParams.html":{}}}],["renamed",{"_index":14926,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["renamefileparams",{"_index":6136,"title":{"classes/RenameFileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["renamegroupondashboard",{"_index":7616,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["renamegroupondashboard(dashboardid",{"_index":7623,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["rendered",{"_index":21558,"title":{},"body":{"miscellaneous/functions.html":{},"license.html":{}}}],["reorderboardelements",{"_index":17034,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderboardelements(roomid",{"_index":17039,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["reorderelements(ids",{"_index":2712,"title":{},"body":{"entities/Board.html":{}}}],["reordering",{"_index":2724,"title":{},"body":{"entities/Board.html":{}}}],["repair",{"_index":22201,"title":{},"body":{"license.html":{}}}],["repeat",{"_index":22493,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["repeatcommand",{"_index":13028,"title":{},"body":{"classes/KeycloakConsole.html":{}}}],["repeatcommand(commandname",{"_index":11626,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["repeats",{"_index":14425,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{}}}],["repetitions",{"_index":11627,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["replace",{"_index":2475,"title":{},"body":{"injectables/BaseDORepo.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["replace('exception",{"_index":10524,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["replace(/\\\\n/g",{"_index":13431,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["replaced",{"_index":2571,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"interfaces/UserBoardRoles.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["replacement",{"_index":6209,"title":{},"body":{"injectables/CopyFilesService.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["replacemypassword",{"_index":486,"title":{},"body":{"controllers/AccountController.html":{}}}],["replacemypassword(currentuser",{"_index":517,"title":{},"body":{"controllers/AccountController.html":{}}}],["replaceurlsincontents",{"_index":13681,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["replaceurlsincontents(contents",{"_index":13717,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["replicaset",{"_index":22973,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replikaset",{"_index":22292,"title":{},"body":{"todo.html":{}}}],["replset",{"_index":22977,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["replyto",{"_index":1580,"title":{},"body":{"interfaces/AppendedAttachment.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"interfaces/PlainTextMailContent.html":{}}}],["repo",{"_index":2570,"title":{},"body":{"injectables/BaseRepo.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/BoardDoService.html":{},"modules/BoardModule.html":{},"injectables/CardService.html":{},"modules/ClassModule.html":{},"injectables/ClassService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/DeleteFilesUc.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"modules/FilesModule.html":{},"injectables/FilesService.html":{},"modules/FilesStorageModule.html":{},"modules/GroupModule.html":{},"injectables/GroupService.html":{},"interfaces/IRepoLoader.html":{},"modules/LegacySchoolModule.html":{},"modules/PseudonymModule.html":{},"injectables/PseudonymService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolYearService.html":{},"injectables/SubmissionItemService.html":{},"modules/ToolModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["repo.integration.spec",{"_index":6810,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["repo.integration.spec.js",{"_index":22847,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repo.ts",{"_index":22579,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["repo/account.repo",{"_index":826,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["repo/recursive",{"_index":3545,"title":{},"body":{"modules/BoardModule.html":{}}}],["repo/share",{"_index":18035,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["repoloader",{"_index":11665,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.populate",{"_index":11667,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["repoloader.repo.findbyid(objectid",{"_index":11668,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["report",{"_index":7676,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["reported",{"_index":22678,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["reporting",{"_index":22886,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reports",{"_index":22857,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["repos",{"_index":5283,"title":{},"body":{"modules/CommonToolModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"modules/VideoConferenceModule.html":{}}}],["repositories",{"_index":22274,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["repository",{"_index":16421,"title":{},"body":{"injectables/PseudonymService.html":{},"index.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["repository.createorupdate(pseudonym",{"_index":16424,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repository.findbyuseridandtoolid(user.id",{"_index":16423,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["repotype",{"_index":11633,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["represent",{"_index":21970,"title":{},"body":{"license.html":{}}}],["representation",{"_index":781,"title":{},"body":{"injectables/AccountLookupService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["represents",{"_index":5415,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["req",{"_index":9935,"title":{},"body":{"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/OauthSSOController.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"injectables/S3ClientAdapter.html":{},"controllers/VideoConferenceController.html":{}}}],["req.baseurl",{"_index":16646,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.header('range",{"_index":10403,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.headers.authorization",{"_index":15795,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["req.headers.origin",{"_index":20926,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["req.method",{"_index":16645,"title":{},"body":{"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{}}}],["req.on('close",{"_index":9947,"title":{},"body":{"controllers/FileSecurityController.html":{},"controllers/FwuLearningContentsController.html":{}}}],["req.params",{"_index":16686,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.params[0]}/${params.fwulearningcontent",{"_index":10404,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["req.query",{"_index":16687,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.route.path",{"_index":16650,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["req.url",{"_index":16685,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["req.user",{"_index":16684,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["reqinfo",{"_index":16659,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.baseurl",{"_index":16664,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.fullpath",{"_index":16665,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.method",{"_index":16663,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqinfo.routepath",{"_index":16666,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["reqroute",{"_index":16640,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["request",{"_index":367,"title":{},"body":{"classes/AcceptQuery.html":{},"controllers/AccountController.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"controllers/CollaborativeStorageController.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"controllers/FileSecurityController.html":{},"injectables/FilesStorageClientAdapterService.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/ILegacyLogger.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/JwtExtractor.html":{},"injectables/LdapStrategy.html":{},"controllers/LoginController.html":{},"classes/LoginResponse-1.html":{},"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{},"classes/PublicSystemResponse.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SystemFilterParams.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserRepo.html":{},"controllers/VideoConferenceController.html":{},"dependencies.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["request'})@apiresponse({status",{"_index":4581,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["request(method",{"_index":10875,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["request.body",{"_index":13347,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["request.body.ts",{"_index":340,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"interfaces/RejectRequestBody.html":{}}}],["request.body.ts:10",{"_index":5379,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:14",{"_index":14122,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:20",{"_index":5386,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.body.ts:24",{"_index":14123,"title":{},"body":{"classes/LoginRequestBody.html":{}}}],["request.body.ts:30",{"_index":5393,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["request.contextid",{"_index":5823,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.contexttype",{"_index":5824,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.displayname",{"_index":5825,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper",{"_index":15076,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["request.mapper.ts",{"_index":5812,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:113",{"_index":8903,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:117",{"_index":8910,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:123",{"_index":8914,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:129",{"_index":8917,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:135",{"_index":8921,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:141",{"_index":8907,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:158",{"_index":8925,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:17",{"_index":17428,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:170",{"_index":8901,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:21",{"_index":19509,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:23",{"_index":5819,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:5",{"_index":15640,"title":{},"body":{"classes/OauthProviderRequestMapper.html":{}}}],["request.mapper.ts:6",{"_index":19507,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["request.mapper.ts:60",{"_index":8930,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.mapper.ts:7",{"_index":5816,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.mapper.ts:8",{"_index":17430,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.mapper.ts:87",{"_index":8897,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["request.response.ts",{"_index":19791,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:10",{"_index":19793,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:16",{"_index":19797,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:23",{"_index":19795,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.response.ts:30",{"_index":19792,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{}}}],["request.schoolid",{"_index":17434,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.schooltoolid",{"_index":5822,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.toolid",{"_index":17433,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request.toolversion",{"_index":5826,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{}}}],["request.ts",{"_index":19784,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:10",{"_index":19785,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:4",{"_index":19786,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:6",{"_index":19788,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.ts:8",{"_index":19787,"title":{},"body":{"classes/ToolLaunchRequest.html":{}}}],["request.user.user",{"_index":22280,"title":{},"body":{"todo.html":{}}}],["request.version",{"_index":17435,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{}}}],["request/bbb",{"_index":2241,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["request/response",{"_index":22641,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["request_denied",{"_index":5398,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{}}}],["request_url",{"_index":5426,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requestauthcode",{"_index":10931,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthcode(userid",{"_index":10941,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["requestauthtoken",{"_index":15696,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestauthtoken(currentuser",{"_index":15717,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["requestdata",{"_index":14169,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requested",{"_index":5453,"title":{},"body":{"classes/ConsentResponse.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"classes/LoginResponse-1.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/OauthClientBody.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserMigrationService.html":{}}}],["requested_access_token_audience",{"_index":5427,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requested_scope",{"_index":5428,"title":{},"body":{"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["requesthandler",{"_index":16643,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo",{"_index":16627,"title":{"classes/RequestInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requestinfo(req",{"_index":16660,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["requesting",{"_index":15256,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["requestloggingbody",{"_index":11530,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["requestlogginginterceptor",{"_index":16676,"title":{"injectables/RequestLoggingInterceptor.html":{}},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["requestmapper",{"_index":19934,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["requestmethod",{"_index":228,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["requestoptions",{"_index":14167,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["requests",{"_index":12573,"title":{},"body":{"modules/InterceptorModule.html":{},"classes/VideoConferenceOptionsResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requesttimeout",{"_index":16988,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{},"injectables/TimeoutInterceptor.html":{},"miscellaneous/functions.html":{}}}],["requesttimeout(ms",{"_index":21589,"title":{},"body":{"miscellaneous/functions.html":{}}}],["requesttimeout(serverconfig().incoming_request_timeout_copy_api",{"_index":17003,"title":{},"body":{"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["requesttimeoutexception",{"_index":19472,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["requesttoken",{"_index":1436,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"entities/FileRecord.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/OAuthService.html":{}}}],["requesttoken(code",{"_index":15066,"title":{},"body":{"injectables/OAuthService.html":{}}}],["requesturl",{"_index":5450,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["require",{"_index":11240,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["require('../../../../../src/services/authentication/configuration",{"_index":12667,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["require('../../../../config/globals",{"_index":10460,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["require('rimraf",{"_index":10010,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["require_tld",{"_index":20958,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["required",{"_index":368,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountSearchQueryParams.html":{},"classes/BoardUrlParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"controllers/ColumnController.html":{},"classes/ColumnUrlParams.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/ElementController.html":{},"classes/ExternalToolIdParams.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdParams.html":{},"classes/ImportUserUrlParams.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakConsole.html":{},"injectables/LdapStrategy.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/MigrationBody.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"interfaces/Options.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RenameBodyParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolParams.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"classes/SystemIdParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserParams.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceScopeParams.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["required.'})@apiresponse({status",{"_index":497,"title":{},"body":{"controllers/AccountController.html":{}}}],["requiredemptyelement",{"_index":4158,"title":{},"body":{"injectables/CardService.html":{}}}],["requiredemptyelements",{"_index":3773,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardService.html":{},"controllers/ColumnController.html":{},"classes/CreateCardBodyParams.html":{}}}],["requiredpermissions",{"_index":1866,"title":{},"body":{"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ForbiddenLoggableException.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRule.html":{},"injectables/NewsUc.html":{},"injectables/PermissionService.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/ShareTokenUC.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiredpermissions.every((p",{"_index":1914,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.length",{"_index":1927,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["requiredpermissions.some((p",{"_index":1929,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["requireduserrole",{"_index":3092,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["requireduserrole(userroleenum",{"_index":3114,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["requirement",{"_index":12938,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"license.html":{}}}],["requirements",{"_index":21942,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["requires",{"_index":8679,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/GlobalValidationPipe.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["requiring",{"_index":21750,"title":{},"body":{"license.html":{}}}],["res",{"_index":6489,"title":{},"body":{"controllers/CourseController.html":{},"controllers/DatabaseManagementController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraSsoService.html":{},"classes/MetadataTypeMapper.html":{},"controllers/OauthSSOController.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"controllers/ToolController.html":{}}}],["res.contenttype",{"_index":9950,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.cookie",{"_index":1719,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["res.cookie('jwt",{"_index":15786,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.data.destroy",{"_index":9948,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["res.redirect(errorredirect.tostring",{"_index":15751,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(oauthprocessdto.redirect",{"_index":15787,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(redirect",{"_index":15769,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.redirect(response.redirect",{"_index":15804,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["res.send(externaltoollogo.logo",{"_index":19715,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.set",{"_index":10406,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.setheader('cache",{"_index":19712,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.setheader('content",{"_index":19711,"title":{},"body":{"controllers/ToolController.html":{}}}],["res.status(httpstatus.ok",{"_index":10412,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.status(httpstatus.partial_content",{"_index":10411,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["res.statuscode",{"_index":16653,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resave",{"_index":17825,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["reset",{"_index":443,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"classes/DatabaseManagementConsole.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"interfaces/Options.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["resetlastauthorizationtime",{"_index":12772,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["resetoauthconfigcache",{"_index":13043,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resinfo",{"_index":16661,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resinfo.statuscode",{"_index":16667,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["resizeandconvert",{"_index":16137,"title":{},"body":{"injectables/PreviewService.html":{}}}],["resizeandconvert(original",{"_index":16156,"title":{},"body":{"injectables/PreviewService.html":{}}}],["resolve",{"_index":5402,"title":{},"body":{"classes/ConsentRequestBody.html":{},"injectables/ExternalToolService.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"injectables/PermissionService.html":{}}}],["resolve(client",{"_index":13315,"title":{},"body":{"injectables/LdapService.html":{}}}],["resolved",{"_index":3018,"title":{},"body":{"injectables/BoardCopyService.html":{},"interfaces/ICollectionFilePath.html":{},"license.html":{}}}],["resolvedtools",{"_index":9126,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolvedtools.filter((tool",{"_index":9133,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["resolveduser",{"_index":20033,"title":{},"body":{"controllers/UserController.html":{},"injectables/UserService.html":{}}}],["resolvedusermapper",{"_index":16692,"title":{"classes/ResolvedUserMapper.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"controllers/UserController.html":{}}}],["resolvedusermapper.maptoresponse(user",{"_index":20034,"title":{},"body":{"controllers/UserController.html":{}}}],["resolveduserresponse",{"_index":16696,"title":{"classes/ResolvedUserResponse.html":{}},"body":{"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"controllers/UserController.html":{}}}],["resolvefilenameduplicates",{"_index":21519,"title":{},"body":{"miscellaneous/functions.html":{}}}],["resolvefilenameduplicates(filename",{"_index":21548,"title":{},"body":{"miscellaneous/functions.html":{}}}],["resolvepermissions",{"_index":11672,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["resolvepermissions(user",{"_index":16107,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles",{"_index":16104,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolvepermissionsbyroles(inputroles",{"_index":16112,"title":{},"body":{"injectables/PermissionService.html":{}}}],["resolveplaceholder(placeholder",{"_index":11260,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["resolverepo",{"_index":16613,"title":{},"body":{"injectables/ReferenceLoader.html":{}}}],["resolverepo(type",{"_index":11660,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["resolves",{"_index":12468,"title":{},"body":{"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["resolvetokenrequest",{"_index":15198,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resolvetokenrequest(observable",{"_index":15204,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["resource",{"_index":5067,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"controllers/ToolController.html":{}}}],["resource.'})@apiunauthorizedresponse({description",{"_index":19653,"title":{},"body":{"controllers/ToolController.html":{}}}],["resource.caninline",{"_index":5084,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resource.ts",{"_index":5103,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:15",{"_index":5254,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:16",{"_index":5107,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:18",{"_index":5255,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:19",{"_index":5108,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:22",{"_index":5249,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:23",{"_index":5109,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource.ts:26",{"_index":5250,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:30",{"_index":5251,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["resource.ts:61",{"_index":5256,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["resource.ts:81",{"_index":5110,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["resource_link_id",{"_index":6976,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["resourceelement.transform",{"_index":5248,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceelements",{"_index":5246,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["resourceid",{"_index":14976,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourcename",{"_index":14978,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["resourceownerpasswordgrant",{"_index":12197,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceownerpasswordgrant(username",{"_index":12200,"title":{},"body":{"classes/IdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["resourceprops",{"_index":4991,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["resources",{"_index":4989,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["resp",{"_index":7875,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.data",{"_index":2352,"title":{},"body":{"injectables/BBBService.html":{}}}],["resp.everyattendeejoinsmuted",{"_index":21174,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.everybodyjoinsasmoderator",{"_index":21175,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.moderatormustapprovejoinrequests",{"_index":21176,"title":{},"body":{"classes/VideoConferenceOptionsResponse.html":{}}}],["resp.options",{"_index":7893,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.permission",{"_index":7885,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["resp.state",{"_index":7883,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["resp.url",{"_index":7888,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["respect",{"_index":21866,"title":{},"body":{"license.html":{}}}],["respective",{"_index":22682,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["respobservable",{"_index":11089,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["respond",{"_index":22315,"title":{},"body":{"todo.html":{}}}],["responds",{"_index":14603,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["responsability",{"_index":22495,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response",{"_index":1016,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AuthenticationResponse.html":{},"classes/AuthorizationError.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"controllers/BoardController.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CopyFileListResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"controllers/ElementController.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileDtoBuilder.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConnectionError.html":{},"classes/LoginResponseMapper.html":{},"injectables/MigrationMapper.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/OAuthProcessDto.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/PageContentMapper.html":{},"classes/PaginationResponse.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PublicSystemListResponse.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{},"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"injectables/TaskUC.html":{},"controllers/TeamNewsController.html":{},"classes/TestApiClient.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"controllers/ToolSchoolController.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceBaseResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["response.access_token",{"_index":19512,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.authorization_endpoint",{"_index":13063,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.body",{"_index":1779,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["response.builder.ts",{"_index":6154,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{},"classes/FileResponseBuilder.html":{}}}],["response.builder.ts:4",{"_index":6156,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["response.builder.ts:5",{"_index":9916,"title":{},"body":{"classes/FileResponseBuilder.html":{}}}],["response.config",{"_index":8992,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.contentlength",{"_index":10417,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contentrange",{"_index":10410,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contenttype",{"_index":10415,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.contextid",{"_index":5846,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.contexttype",{"_index":5847,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.data",{"_index":9515,"title":{},"body":{"classes/FileDtoBuilder.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{}}}],["response.data.access_token",{"_index":13070,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.data.destroy",{"_index":10413,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["response.displayname",{"_index":5848,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.dto",{"_index":22511,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["response.end_session_endpoint",{"_index":13064,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.factory",{"_index":4115,"title":{},"body":{"classes/CardResponseMapper.html":{}}}],["response.factory.ts",{"_index":2062,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:10",{"_index":5519,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:14",{"_index":2068,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:16",{"_index":2071,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ContentElementResponseFactory.html":{}}}],["response.factory.ts:18",{"_index":2072,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:20",{"_index":2070,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.factory.ts:22",{"_index":2066,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["response.headers['content",{"_index":9511,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["response.id",{"_index":5843,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["response.id_token",{"_index":19510,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.ishidden",{"_index":8993,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.issuer",{"_index":13061,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwks_uri",{"_index":13065,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.jwt",{"_index":15014,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.logourl",{"_index":5851,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.mapper",{"_index":3673,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/ContentElementResponseFactory.html":{},"modules/LearnroomApiModule.html":{},"controllers/LoginController.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthProviderController.html":{},"modules/ProvisioningModule.html":{},"controllers/RoomsController.html":{},"injectables/SanisProvisioningStrategy.html":{},"controllers/SystemController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["response.mapper.ts",{"_index":974,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/LoginResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:102",{"_index":9020,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:110",{"_index":9017,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:14",{"_index":21209,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:15",{"_index":16884,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:16",{"_index":978,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:17",{"_index":16784,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:18",{"_index":18691,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:19",{"_index":15656,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:20",{"_index":5855,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["response.mapper.ts:21",{"_index":21212,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:23",{"_index":15649,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:27",{"_index":9550,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:28",{"_index":16782,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:29",{"_index":16886,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["response.mapper.ts:32",{"_index":15651,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:34",{"_index":17281,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:38",{"_index":17288,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:40",{"_index":15653,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["response.mapper.ts:41",{"_index":17447,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["response.mapper.ts:46",{"_index":9014,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:47",{"_index":16888,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:5",{"_index":14148,"title":{},"body":{"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:53",{"_index":17290,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:6",{"_index":980,"title":{},"body":{"classes/AccountResponseMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponseMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/FileElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["response.mapper.ts:64",{"_index":17283,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:68",{"_index":17285,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["response.mapper.ts:7",{"_index":3671,"title":{},"body":{"classes/BoardResponseMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["response.mapper.ts:73",{"_index":9005,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["response.mapper.ts:77",{"_index":9010,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:8",{"_index":9551,"title":{},"body":{"classes/FileElementResponseMapper.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["response.mapper.ts:81",{"_index":9012,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:85",{"_index":9008,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["response.mapper.ts:9",{"_index":16783,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["response.mapper.ts:93",{"_index":16887,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["response.message",{"_index":10304,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["response.name",{"_index":8990,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/FilesStorageClientMapper.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.opennewtab",{"_index":8994,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.parameters",{"_index":5849,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.redirect",{"_index":15015,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["response.refresh_token",{"_index":19511,"title":{},"body":{"classes/TokenRequestMapper.html":{}}}],["response.schoolid",{"_index":17440,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.schooltoolid",{"_index":5845,"title":{},"body":{"classes/ContextExternalToolResponse.html":{}}}],["response.set",{"_index":6511,"title":{},"body":{"controllers/CourseController.html":{}}}],["response.sourceid",{"_index":10150,"title":{},"body":{"classes/FilesStorageClientMapper.html":{}}}],["response.state",{"_index":21090,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["response.status",{"_index":17441,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.status(errorresponse.code).json(errorresponse",{"_index":10507,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["response.subject",{"_index":15473,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["response.token_endpoint",{"_index":13062,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["response.toolid",{"_index":17439,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{}}}],["response.toolversion",{"_index":5850,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["response.ts",{"_index":16457,"title":{},"body":{"classes/PublicSystemResponse.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["response.ts:10",{"_index":16462,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:17",{"_index":16463,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:24",{"_index":16460,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:31",{"_index":16461,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.ts:39",{"_index":16459,"title":{},"body":{"classes/PublicSystemResponse.html":{}}}],["response.url",{"_index":8991,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response.version",{"_index":8995,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["response?.data",{"_index":1387,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["response].ts",{"_index":22573,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["response_type",{"_index":11025,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["response_types",{"_index":15240,"title":{},"body":{"classes/OauthClientBody.html":{},"injectables/OauthProviderClientCrudUc.html":{}}}],["responsedata",{"_index":15221,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsefilerecords",{"_index":9817,"title":{},"body":{"classes/FileRecordMapper.html":{},"classes/FilesStorageMapper.html":{}}}],["responseinfo",{"_index":16651,"title":{"classes/ResponseInfo.html":{}},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responseinfo(res",{"_index":16662,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsejson",{"_index":1399,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.authtoken",{"_index":1401,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsejson.data.userid",{"_index":1400,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["responsemapper",{"_index":17254,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{},"controllers/ToolSchoolController.html":{}}}],["responses",{"_index":10752,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"classes/OauthClientBody.html":{},"interfaces/OcsResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"interfaces/SuccessfulRes.html":{},"miscellaneous/functions.html":{}}}],["responsetime",{"_index":16642,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetime((req",{"_index":16672,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["responsetoken",{"_index":15102,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["responsetoken.data",{"_index":15225,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetokenobservable",{"_index":15219,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["responsetype",{"_index":8597,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["responsibilities",{"_index":22638,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["responsibility",{"_index":22459,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["responsible",{"_index":22076,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["ressources",{"_index":22369,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["resssource",{"_index":22316,"title":{},"body":{"todo.html":{}}}],["rest",{"_index":8013,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["restart",{"_index":20261,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restarted",{"_index":14501,"title":{},"body":{"classes/MigrationResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["restartmigration",{"_index":16716,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(@currentuser",{"_index":20326,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(currentuser",{"_index":20282,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["restartmigration(schoolid",{"_index":20454,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["restartmigration(userid",{"_index":16719,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["restartuserloginmigrationuc",{"_index":16714,"title":{"injectables/RestartUserLoginMigrationUc.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["restmethod",{"_index":22951,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["restore",{"_index":17103,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"controllers/TaskController.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["restore(@param",{"_index":18828,"title":{},"body":{"controllers/TaskController.html":{}}}],["restore(paths",{"_index":17120,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["restore(urlparams",{"_index":18803,"title":{},"body":{"controllers/TaskController.html":{}}}],["restored",{"_index":22838,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["restoreforuser(user",{"_index":12063,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["restricted",{"_index":12932,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["restricting",{"_index":21860,"title":{},"body":{"license.html":{}}}],["restriction",{"_index":22036,"title":{},"body":{"license.html":{}}}],["restrictions",{"_index":22034,"title":{},"body":{"license.html":{}}}],["result",{"_index":1828,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardUc.html":{},"classes/ColumnResponseMapper.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/CopyFilesService.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyUC.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DatabaseManagementService.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/GridElement.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonRule.html":{},"classes/NewsScope.html":{},"injectables/PreviewService.html":{},"classes/RichTextElementResponseMapper.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/S3ClientAdapter.html":{},"injectables/ShareTokenUC.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"controllers/UserController.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["result.dto.ts",{"_index":17335,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:4",{"_index":17337,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.dto.ts:6",{"_index":17336,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["result.push",{"_index":12980,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["result.push(room",{"_index":7384,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["result.query",{"_index":17731,"title":{},"body":{"classes/Scope.html":{}}}],["result.reduce((alloweddos",{"_index":4208,"title":{},"body":{"injectables/CardUc.html":{}}}],["result.success",{"_index":7835,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["result[sortby",{"_index":12393,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["resultelement",{"_index":7364,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["resulting",{"_index":21720,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["results",{"_index":103,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"modules.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/api-design.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["results.foreach((result",{"_index":7834,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["results.map((account",{"_index":13126,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["results.push(mapped",{"_index":7974,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["resultuser",{"_index":20709,"title":{},"body":{"injectables/UserRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ret",{"_index":1092,"title":{},"body":{"injectables/AccountService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LegacySchoolService.html":{},"injectables/VideoConferenceService.html":{}}}],["ret.attdbcaccountid",{"_index":13147,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcsystemid",{"_index":13143,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.attdbcuserid",{"_index":13145,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["ret.id",{"_index":1096,"title":{},"body":{"injectables/AccountService.html":{}}}],["retaccountid",{"_index":13184,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["retains",{"_index":21987,"title":{},"body":{"license.html":{}}}],["retried",{"_index":11587,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrieve",{"_index":14607,"title":{},"body":{"controllers/NewsController.html":{}}}],["retry",{"_index":11585,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrycount",{"_index":11577,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retrydelay",{"_index":11578,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["retryflags",{"_index":11583,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["return",{"_index":227,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"entities/CourseNews.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CreateJwtParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["returncode",{"_index":2104,"title":{},"body":{"interfaces/BBBBaseResponse.html":{}}}],["returned",{"_index":694,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/ListOauthClientsParams.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"controllers/UserLoginMigrationController.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["returned.'})@apiokresponse({description",{"_index":20275,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["returning",{"_index":6045,"title":{},"body":{"classes/CopyApiResponse.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["returnmap",{"_index":21288,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["returnmap.set(perm",{"_index":21293,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["returns",{"_index":35,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"controllers/AccountController.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"modules/AntivirusModule.html":{},"injectables/AntivirusService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"injectables/BBBService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalTool.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileResponseBuilder.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IGridElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ITaskParent.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/JwtExtractor.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"controllers/LessonController.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"modules/MailModule.html":{},"injectables/MailService.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthLoginStateMapper.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PageContentMapper.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"modules/RabbitMQWrapperTestModule.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementResponseMapper.html":{},"modules/RocketChatModule.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"controllers/SystemController.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamPermissionsMapper.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"injectables/TimeoutInterceptor.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["retvalue",{"_index":22762,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["reuse",{"_index":5383,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["reused",{"_index":22588,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["revalidate",{"_index":19714,"title":{},"body":{"controllers/ToolController.html":{}}}],["revert",{"_index":13235,"title":{},"body":{"classes/KeycloakSeedService.html":{},"miscellaneous/functions.html":{}}}],["revert.service.ts",{"_index":20423,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:13",{"_index":20427,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revert.service.ts:7",{"_index":20425,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["reverted",{"_index":21563,"title":{},"body":{"miscellaneous/functions.html":{}}}],["revertpublished",{"_index":18788,"title":{},"body":{"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["revertpublished(urlparams",{"_index":18806,"title":{},"body":{"controllers/TaskController.html":{}}}],["revertpublished(userid",{"_index":19185,"title":{},"body":{"injectables/TaskUC.html":{}}}],["revertuserloginmigration",{"_index":20424,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["revertuserloginmigration(userloginmigration",{"_index":20426,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["review",{"_index":22901,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["reviewers",{"_index":21649,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["reviewing",{"_index":22220,"title":{},"body":{"license.html":{}}}],["revised",{"_index":22176,"title":{},"body":{"license.html":{}}}],["revokeconsentparams",{"_index":15509,"title":{"classes/RevokeConsentParams.html":{}},"body":{"controllers/OauthProviderController.html":{},"classes/RevokeConsentParams.html":{}}}],["revokeconsentsession",{"_index":10839,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{}}}],["revokeconsentsession(@currentuser",{"_index":15570,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(currentuser",{"_index":15508,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["revokeconsentsession(user",{"_index":10879,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["revokeconsentsession(userid",{"_index":15686,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["revokematch",{"_index":11492,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["rewindsequence",{"_index":673,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["rfc6749",{"_index":15255,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["rich",{"_index":2879,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/RichText.html":{}}}],["richtext",{"_index":16731,"title":{"classes/RichText.html":{}},"body":{"classes/RichText.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["richtextcontentbody",{"_index":5542,"title":{"classes/RichTextContentBody.html":{}},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["richtextelement",{"_index":2867,"title":{"classes/RichTextElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"injectables/ColumnBoardService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelement.id",{"_index":16583,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.inputformat",{"_index":5585,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelement.text",{"_index":5582,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["richtextelementcontent",{"_index":16761,"title":{"classes/RichTextElementContent.html":{}},"body":{"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementcontentbody",{"_index":8034,"title":{"classes/RichTextElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["richtextelementnode",{"_index":3177,"title":{"entities/RichTextElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementnodefactory",{"_index":3498,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodefactory.build",{"_index":3522,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["richtextelementnodeprops",{"_index":16772,"title":{"interfaces/RichTextElementNodeProps.html":{}},"body":{"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{}}}],["richtextelementprops",{"_index":16760,"title":{"interfaces/RichTextElementProps.html":{}},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["richtextelementresponse",{"_index":4045,"title":{"classes/RichTextElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/CardResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper",{"_index":5522,"title":{"classes/RichTextElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/RichTextElementResponseMapper.html":{}}}],["richtextelementresponsemapper.getinstance",{"_index":5517,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["richtextelementresponsemapper.instance",{"_index":16785,"title":{},"body":{"classes/RichTextElementResponseMapper.html":{}}}],["richtext})@decodehtmlentities",{"_index":19074,"title":{},"body":{"classes/TaskResponse.html":{}}}],["right",{"_index":21981,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rights",{"_index":21703,"title":{},"body":{"license.html":{}}}],["rimraf",{"_index":10009,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"dependencies.html":{}}}],["rimraf.sync(folderpath",{"_index":10024,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["risk",{"_index":22195,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rmq",{"_index":10497,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["ro",{"_index":1286,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocket",{"_index":16793,"title":{},"body":{"modules/RocketChatModule.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket.chat",{"_index":22972,"title":{"additional-documentation/nestjs-application/rocket.chat.html":{}},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat",{"_index":11701,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["rocket_chat_admin_password=huhudbildungscloud",{"_index":23024,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_admin_user=admin",{"_index":23023,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocket_chat_options",{"_index":16795,"title":{},"body":{"modules/RocketChatModule.html":{}}}],["rocket_chat_uri=\"http://localhost:3000",{"_index":23022,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchat",{"_index":1294,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/ISchoolProperties.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchat_service_enabled=true",{"_index":23021,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rocketchaterror",{"_index":1292,"title":{"classes/RocketChatError.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror(e",{"_index":1386,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchaterror.prototype",{"_index":1311,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatgroupmodel",{"_index":1276,"title":{"interfaces/RocketChatGroupModel.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatmodule",{"_index":16790,"title":{"modules/RocketChatModule.html":{}},"body":{"modules/RocketChatModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["rocketchatmodule.forroot",{"_index":17807,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["rocketchatoptions",{"_index":1271,"title":{"interfaces/RocketChatOptions.html":{}},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["rocketchatservice",{"_index":1320,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{}}}],["role",{"_index":496,"title":{"entities/Role.html":{}},"body":{"controllers/AccountController.html":{},"injectables/AuthorizationHelper.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/CurrentUserMapper.html":{},"classes/FilterImportUserParams.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"injectables/JwtStrategy.html":{},"classes/LdapConfig.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/PermissionService.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"entities/Role.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"injectables/SubmissionItemUc.html":{},"entities/System.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserFactory.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["role.entity",{"_index":12070,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["role.factory",{"_index":20198,"title":{},"body":{"classes/UserFactory.html":{}}}],["role.id",{"_index":6945,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMapper.html":{}}}],["role.mapper.ts",{"_index":14260,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.mapper.ts:13",{"_index":14263,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["role.name",{"_index":4539,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/UserDORepo.html":{},"classes/UserMatchMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["role.params",{"_index":4593,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["role.params.ts",{"_index":19326,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:11",{"_index":19327,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.params.ts:7",{"_index":19328,"title":{},"body":{"classes/TeamRoleDto.html":{}}}],["role.resolvepermissions",{"_index":1917,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["role.roles.isinitialized(true",{"_index":19406,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roleadmin",{"_index":11916,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roleattributenamemapping",{"_index":11913,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roledto",{"_index":4507,"title":{"classes/RoleDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["roledtos",{"_index":16862,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolefactory",{"_index":19378,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["rolefactory.build",{"_index":19380,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["rolefactory.buildwithid",{"_index":19382,"title":{},"body":{"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["roleid",{"_index":4635,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupUser.html":{},"injectables/OidcProvisioningService.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUserDto.html":{}}}],["roleids",{"_index":20160,"title":{},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{}}}],["rolemapper",{"_index":16804,"title":{"classes/RoleMapper.html":{}},"body":{"classes/RoleMapper.html":{},"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(entities",{"_index":16869,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitiestodtos(roles",{"_index":16867,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapper.mapfromentitytodto(entity",{"_index":16865,"title":{},"body":{"injectables/RoleService.html":{}}}],["rolemapping",{"_index":14264,"title":{},"body":{"classes/LtiRoleMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolemapping[rolename",{"_index":14271,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolemapping[source.personenkontexte[0].rolle",{"_index":17309,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["rolemodule",{"_index":1625,"title":{"modules/RoleModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/ProvisioningModule.html":{},"modules/RoleModule.html":{},"modules/UserModule.html":{},"modules.html":{}}}],["rolename",{"_index":4538,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRoleProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserMatchMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["rolename.administrator",{"_index":11452,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolename.enum",{"_index":23121,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["rolename.student",{"_index":11454,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolename.superhero",{"_index":14269,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolename.teacher",{"_index":11453,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"classes/LtiRoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleService.html":{},"injectables/SanisResponseMapper.html":{}}}],["rolename.teamexpert",{"_index":21281,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["rolename.user",{"_index":14265,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenamemapper",{"_index":12389,"title":{"classes/RoleNameMapper.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/RoleNameMapper.html":{}}}],["rolenamemapper.maptodomain(query.role",{"_index":12416,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenamemapper.maptoresponse(role",{"_index":12399,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["rolenames",{"_index":11449,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/VideoConferenceService.html":{}}}],["rolenames.includes(rolename.expert",{"_index":21282,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["rolenames.map((rolename",{"_index":14270,"title":{},"body":{"classes/LtiRoleMapper.html":{}}}],["rolenosc",{"_index":11917,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["rolepermissions",{"_index":12118,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roleref",{"_index":20808,"title":{},"body":{"injectables/UserService.html":{}}}],["roleref.id",{"_index":6948,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["roleref.name",{"_index":12644,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["rolereference",{"_index":6942,"title":{"classes/RoleReference.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/RoleReference.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceService.html":{}}}],["rolerefs",{"_index":15943,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolerepo",{"_index":16819,"title":{"injectables/RoleRepo.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{}}}],["roles",{"_index":3110,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalUserDto.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/IservMapper.html":{},"interfaces/JwtPayload.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PermissionService.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"entities/Role.html":{},"injectables/RoleService.html":{},"injectables/SanisResponseMapper.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["roles.foreach((role",{"_index":12117,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["roles.length",{"_index":15983,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["roles.map((role",{"_index":15946,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["roles.map(async",{"_index":19405,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["roles[0].id",{"_index":15984,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["rolesandpermissions",{"_index":16119,"title":{},"body":{"injectables/PermissionService.html":{}}}],["roleservice",{"_index":4621,"title":{"injectables/RoleService.html":{}},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/OidcProvisioningService.html":{},"modules/RoleModule.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["rolestudent",{"_index":11914,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roleteacher",{"_index":11915,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roletype",{"_index":11909,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["roleuc",{"_index":16820,"title":{"injectables/RoleUc.html":{}},"body":{"modules/RoleModule.html":{},"injectables/RoleUc.html":{}}}],["rollback",{"_index":17162,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["rollbackmigration",{"_index":17604,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["rollbackmigration(originalschooldo",{"_index":17624,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["rollbackmigration(userdocopy",{"_index":20615,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["rolle",{"_index":17248,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{}}}],["rollen",{"_index":17230,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["rom",{"_index":21990,"title":{},"body":{"license.html":{}}}],["room",{"_index":7276,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsUc.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["roomboarddto",{"_index":7932,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.html":{}}}],["roomboarddtofactory",{"_index":8006,"title":{"injectables/RoomBoardDTOFactory.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["roomboardelementdto",{"_index":7930,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["roomboardelementtypes",{"_index":3408,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.column_board",{"_index":7994,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.lesson",{"_index":7983,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardelementtypes.task",{"_index":7979,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{}}}],["roomboardresponsemapper",{"_index":13374,"title":{"injectables/RoomBoardResponseMapper.html":{}},"body":{"modules/LearnroomApiModule.html":{},"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{}}}],["roomelementurlparams",{"_index":16936,"title":{"classes/RoomElementUrlParams.html":{}},"body":{"classes/RoomElementUrlParams.html":{},"controllers/RoomsController.html":{}}}],["roomid",{"_index":1344,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/DtoCreator.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["roomlist",{"_index":7305,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["roomlist.includes(room",{"_index":7376,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["roomname",{"_index":1336,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["rooms",{"_index":7280,"title":{},"body":{"classes/DashboardEntity.html":{},"controllers/RoomsController.html":{}}}],["rooms.authorisation.service",{"_index":7953,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsUc.html":{}}}],["rooms.foreach((room",{"_index":7382,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["rooms.service",{"_index":6536,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["roomsauthorisationservice",{"_index":7914,"title":{"injectables/RoomsAuthorisationService.html":{}},"body":{"classes/DtoCreator.html":{},"modules/LearnroomApiModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{}}}],["roomscontroller",{"_index":13377,"title":{"controllers/RoomsController.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{}}}],["roomsservice",{"_index":6522,"title":{"injectables/RoomsService.html":{}},"body":{"injectables/CourseCopyService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["roomsuc",{"_index":13375,"title":{"injectables/RoomsUc.html":{}},"body":{"modules/LearnroomApiModule.html":{},"controllers/RoomsController.html":{},"injectables/RoomsUc.html":{}}}],["roomurlparams",{"_index":16939,"title":{"classes/RoomUrlParams.html":{}},"body":{"classes/RoomUrlParams.html":{},"controllers/RoomsController.html":{}}}],["root",{"_index":2509,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"controllers/UserController.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["rootboarddo",{"_index":3137,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rootboarddo.context?.type",{"_index":3139,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rooted",{"_index":5222,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["rootid",{"_index":3135,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["rootpath",{"_index":11902,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["route",{"_index":9368,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"controllers/ServerController.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["route_path",{"_index":16657,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routename",{"_index":1768,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["routenameinput",{"_index":19423,"title":{},"body":{"classes/TestApiClient.html":{}}}],["routepath",{"_index":16630,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["routes",{"_index":21621,"title":{},"body":{"index.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["routingkey",{"_index":1418,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["royalty",{"_index":22091,"title":{},"body":{"license.html":{}}}],["rpcmessage",{"_index":10185,"title":{"interfaces/RpcMessage.html":{}},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{},"interfaces/IError.html":{},"interfaces/RpcMessage.html":{}}}],["rs.initiate({\"_id",{"_index":22981,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs0",{"_index":22978,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["rs256",{"_index":1671,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{},"injectables/OAuthService.html":{}}}],["rs384",{"_index":1672,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rs512",{"_index":1673,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["rsa",{"_index":15211,"title":{},"body":{"injectables/OauthAdapterService.html":{},"dependencies.html":{}}}],["rss",{"_index":6728,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"dependencies.html":{}}}],["rule",{"_index":1989,"title":{"interfaces/Rule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rule(val",{"_index":5336,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["rule.haspermission(user",{"_index":2045,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["rule.isapplicable(user",{"_index":17091,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rulemanager",{"_index":1965,"title":{"injectables/RuleManager.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/RuleManager.html":{}}}],["rules",{"_index":17062,"title":{},"body":{"injectables/RuleManager.html":{},"injectables/SubmissionItemUc.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["rules.length",{"_index":17093,"title":{},"body":{"injectables/RuleManager.html":{}}}],["rules[0",{"_index":17095,"title":{},"body":{"injectables/RuleManager.html":{}}}],["run",{"_index":21617,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["runner",{"_index":22789,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["running",{"_index":2267,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/TimeoutInterceptor.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["running.'})@apiresponse({status",{"_index":20904,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["runs",{"_index":21609,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["runtime",{"_index":1662,"title":{},"body":{"modules/AuthenticationModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["rxjs",{"_index":1268,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ExternalToolLogoService.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/TimeoutInterceptor.html":{},"dependencies.html":{}}}],["rxjs/operators",{"_index":1270,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/TimeoutInterceptor.html":{}}}],["s",{"_index":1850,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/BoardDoRepo.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["s3",{"_index":7821,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3_client",{"_index":17132,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3_config",{"_index":17133,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3client",{"_index":7809,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["s3clientadapter",{"_index":10437,"title":{"injectables/S3ClientAdapter.html":{}},"body":{"injectables/FwuLearningContentsUc.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientadapter(s3client",{"_index":17203,"title":{},"body":{"modules/S3ClientModule.html":{}}}],["s3clientadapter:createbucket",{"_index":17141,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientadapter:deletedirectory",{"_index":17188,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["s3clientmap",{"_index":7796,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["s3clientmodule",{"_index":10257,"title":{"modules/S3ClientModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/S3ClientModule.html":{},"modules.html":{}}}],["s3clientmodule.register",{"_index":23155,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3clientmodule.register([s3config",{"_index":10271,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["s3config",{"_index":6163,"title":{"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{}},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["safest",{"_index":22233,"title":{},"body":{"license.html":{}}}],["safety",{"_index":21630,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sale",{"_index":22099,"title":{},"body":{"license.html":{}}}],["salt",{"_index":2287,"title":{},"body":{"injectables/BBBService.html":{},"interfaces/IBbbSettings.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/VideoConferenceConfiguration.html":{}}}],["same",{"_index":2298,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/VideoConferenceCreateParams.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sameschool",{"_index":9361,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["samesite",{"_index":15779,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["saml",{"_index":22916,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["sample",{"_index":9445,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/ServerConsole.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["samplecontroller",{"_index":22800,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["samples",{"_index":22606,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservice",{"_index":22801,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["sampleservicemethod(username",{"_index":22688,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["sampleucmethod(user",{"_index":22653,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["sanatizeusername",{"_index":1104,"title":{},"body":{"injectables/AccountService.html":{}}}],["sanis",{"_index":17222,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"injectables/UserLoginMigrationService.html":{},"additional-documentation/nestjs-application.html":{}}}],["sanis_client_id",{"_index":22362,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sanisgrouprole",{"_index":17231,"title":{},"body":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisgrouprole.student",{"_index":17298,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouprole.teacher",{"_index":17297,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype",{"_index":17221,"title":{},"body":{"interfaces/SanisGruppeResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgrouptype.class",{"_index":17300,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgroupusers",{"_index":17314,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenresponse",{"_index":17223,"title":{"interfaces/SanisGruppenResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisgruppenzugehoerigkeitresponse",{"_index":17227,"title":{"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{}}}],["sanisgrupperesponse",{"_index":17214,"title":{"interfaces/SanisGruppeResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{}}}],["sanislaufzeitresponse",{"_index":17220,"title":{"interfaces/SanisLaufzeitResponse.html":{}},"body":{"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{}}}],["sanisnameresponse",{"_index":17234,"title":{"interfaces/SanisNameResponse.html":{}},"body":{"interfaces/SanisNameResponse.html":{},"interfaces/SanisPersonResponse.html":{}}}],["sanisorganisationresponse",{"_index":17237,"title":{"interfaces/SanisOrganisationResponse.html":{}},"body":{"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{}}}],["sanispersonenkontextresponse",{"_index":17245,"title":{"interfaces/SanisPersonenkontextResponse.html":{}},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanispersonresponse",{"_index":17240,"title":{"interfaces/SanisPersonResponse.html":{}},"body":{"interfaces/SanisPersonResponse.html":{},"interfaces/SanisResponse.html":{}}}],["sanisprovisioningstrategy",{"_index":16305,"title":{"injectables/SanisProvisioningStrategy.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/SanisProvisioningStrategy.html":{}}}],["sanisresponse",{"_index":17261,"title":{"interfaces/SanisResponse.html":{}},"body":{"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisresponsemapper",{"_index":16306,"title":{"injectables/SanisResponseMapper.html":{}},"body":{"modules/ProvisioningModule.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole",{"_index":17249,"title":{},"body":{"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lehr",{"_index":17292,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.leit",{"_index":17294,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.lern",{"_index":17293,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanisrole.orgadmin",{"_index":17295,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sanissonstigegruppenzugehoerigeresponse",{"_index":10700,"title":{"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}},"body":{"classes/GroupRoleUnknownLoggable.html":{},"interfaces/SanisGruppenResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sanisstrategy",{"_index":16319,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["sanissystem",{"_index":20477,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanissystem.id",{"_index":20481,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["sanitization",{"_index":21554,"title":{},"body":{"miscellaneous/functions.html":{}}}],["sanitize",{"_index":21455,"title":{},"body":{"dependencies.html":{},"miscellaneous/functions.html":{}}}],["sanitizehtml",{"_index":6918,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/PatchGroupParams.html":{},"classes/RenameBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/UpdateNewsParams.html":{},"miscellaneous/functions.html":{}}}],["sanitizehtml(inputformat",{"_index":21591,"title":{},"body":{"miscellaneous/functions.html":{}}}],["sanitizehtml(inputformat.rich_text",{"_index":6919,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/UpdateNewsParams.html":{}}}],["sanitizehtml(inputformat.rich_text_ck5",{"_index":18901,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sanitizer",{"_index":22267,"title":{},"body":{"todo.html":{}}}],["sanitizerichtext",{"_index":5575,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RichText.html":{}}}],["sanitizerichtext(content",{"_index":16739,"title":{},"body":{"classes/RichText.html":{}}}],["sanitizerichtext(this.content.text",{"_index":5583,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["sanitizestring",{"_index":21233,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["sanitizestring(text",{"_index":21260,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["sanitizing",{"_index":22512,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["satisfied",{"_index":9397,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["satisfies",{"_index":532,"title":{},"body":{"controllers/AccountController.html":{}}}],["satisfy",{"_index":9393,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"license.html":{}}}],["save",{"_index":18,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"injectables/ImportUserRepo.html":{},"classes/KeycloakSeedService.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/SchoolYearRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["save(accountdto",{"_index":63,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["save(domainobject",{"_index":3304,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/GroupRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["save(entities",{"_index":913,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseRepo.html":{},"injectables/BoardRepo.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"injectables/FederalStateRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/MaterialsRepo.html":{},"injectables/NewsRepo.html":{},"injectables/RoleRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/SystemRepo.html":{},"injectables/TaskRepo.html":{},"injectables/TeamsRepo.html":{},"injectables/UserRepo.html":{}}}],["save(entitydo",{"_index":2424,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["save(group",{"_index":10717,"title":{},"body":{"injectables/GroupService.html":{}}}],["save(school",{"_index":13604,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["save(systemdto",{"_index":18711,"title":{},"body":{"injectables/SystemService.html":{}}}],["save(user",{"_index":20788,"title":{},"body":{"injectables/UserService.html":{}}}],["save.dto",{"_index":616,"title":{},"body":{"classes/AccountDto.html":{}}}],["save.dto.ts",{"_index":985,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:13",{"_index":988,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:17",{"_index":996,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:21",{"_index":998,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:26",{"_index":993,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:30",{"_index":995,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:34",{"_index":989,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:38",{"_index":997,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:42",{"_index":994,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:46",{"_index":992,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:50",{"_index":990,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:54",{"_index":987,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:57",{"_index":986,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.dto.ts:9",{"_index":991,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["save.visitor",{"_index":3313,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["save.visitor.ts",{"_index":16540,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:107",{"_index":16558,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:122",{"_index":16559,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:136",{"_index":16560,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:150",{"_index":16554,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:157",{"_index":16550,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:165",{"_index":16547,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:31",{"_index":16545,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:35",{"_index":16551,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:49",{"_index":16556,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:64",{"_index":16555,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:78",{"_index":16552,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["save.visitor.ts:93",{"_index":16557,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["saveall",{"_index":2392,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceRepo.html":{}}}],["saveall(entitydos",{"_index":2426,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["saveall(users",{"_index":20790,"title":{},"body":{"injectables/UserService.html":{}}}],["saveallusersmatches",{"_index":12267,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(@currentuser",{"_index":12336,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["saveallusersmatches(currentuser",{"_index":12284,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["savecontextexternaltool",{"_index":5907,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["savecontextexternaltool(contextexternaltool",{"_index":5919,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saved",{"_index":5963,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["savedcontextexternaltool",{"_index":5924,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["saveddomainobject",{"_index":8758,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["saveddos",{"_index":2436,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["saveddos[0",{"_index":2438,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["savedentity",{"_index":10689,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedgroup",{"_index":10726,"title":{},"body":{"injectables/GroupService.html":{}}}],["savedmigration",{"_index":20467,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["savedpassword",{"_index":13998,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["savedprops",{"_index":10692,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["savedschool",{"_index":15941,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["saveduser",{"_index":15959,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserService.html":{}}}],["saveduser.id",{"_index":15962,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["savedusers",{"_index":20800,"title":{},"body":{"injectables/UserService.html":{}}}],["saveschoolexternaltool",{"_index":17477,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveschoolexternaltool(schoolexternaltool",{"_index":17490,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["saveuninitialized",{"_index":17826,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["savevideoconference",{"_index":21234,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["savevideoconference(videoconference",{"_index":21262,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["savevisitor",{"_index":3344,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savevisitor.save(domainobject",{"_index":3347,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["savewithoutflush",{"_index":881,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/UserRepo.html":{}}}],["savewithoutflush(account",{"_index":899,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["savewithoutflush(user",{"_index":20703,"title":{},"body":{"injectables/UserRepo.html":{}}}],["savewithvalidation",{"_index":1049,"title":{},"body":{"injectables/AccountService.html":{}}}],["savewithvalidation(dto",{"_index":1070,"title":{},"body":{"injectables/AccountService.html":{}}}],["saying",{"_index":21938,"title":{},"body":{"license.html":{}}}],["sc",{"_index":3948,"title":{},"body":{"injectables/CalendarMapper.html":{},"interfaces/ICalendarEvent.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sc_api_response_time_in_seconds",{"_index":16670,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["sc_domain",{"_index":11747,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["sc_theme",{"_index":4806,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["scan",{"_index":9830,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanned",{"_index":9727,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanresult",{"_index":9821,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.reason",{"_index":9825,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresult.status",{"_index":9824,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultdto",{"_index":9811,"title":{"classes/ScanResultDto.html":{}},"body":{"classes/FileRecordMapper.html":{},"controllers/FileSecurityController.html":{},"classes/ScanResultDto.html":{}}}],["scanresultparams",{"_index":6132,"title":{"classes/ScanResultParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"controllers/FileSecurityController.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["scanresultparams.error",{"_index":9829,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_detected",{"_index":9823,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scanresultparams.virus_signature",{"_index":9826,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["scans",{"_index":11148,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["scanstatus",{"_index":6085,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{}}}],["scanstatus.blocked",{"_index":9771,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.error",{"_index":9774,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.pending",{"_index":9726,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.verified",{"_index":9780,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scanstatus.wont_check",{"_index":9777,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["scdomain",{"_index":12940,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["scenario",{"_index":22746,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["scenarios",{"_index":22738,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["schema",{"_index":4013,"title":{},"body":{"controllers/CardController.html":{},"classes/CommonCartridgeMetadataElement.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["schema.ts",{"_index":22577,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemas",{"_index":22578,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["schemaversion",{"_index":5194,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["school",{"_index":192,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AccountParams.html":{},"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolValidationService.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/FeathersAuthProvider.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapAlreadyPersistedException.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"modules/ProvisioningModule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"injectables/SchoolValidationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserFactory.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["school'})@apiokresponse({description",{"_index":19542,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["school(params",{"_index":23076,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["school(value",{"_index":12075,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["school._id",{"_index":12541,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["school.controller",{"_index":13444,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.controller.ts",{"_index":13447,"title":{},"body":{"controllers/LegacySchoolController.html":{},"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:102",{"_index":19921,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:122",{"_index":19917,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:29",{"_index":13461,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:47",{"_index":19928,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:52",{"_index":13456,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school.controller.ts:62",{"_index":19924,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.controller.ts:80",{"_index":19932,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["school.do.ts",{"_index":13484,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:11",{"_index":13489,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:13",{"_index":13490,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:15",{"_index":13493,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:17",{"_index":13491,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:19",{"_index":13492,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:21",{"_index":13495,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:23",{"_index":13488,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:26",{"_index":13494,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:28",{"_index":13496,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:31",{"_index":13486,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.do.ts:9",{"_index":13487,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["school.dto",{"_index":15353,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["school.dto.ts",{"_index":8299,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:2",{"_index":8302,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:4",{"_index":8303,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.dto.ts:6",{"_index":8301,"title":{},"body":{"classes/ExternalSchoolDto.html":{}}}],["school.entity",{"_index":6407,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{}}}],["school.factory",{"_index":6614,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/UserFactory.html":{}}}],["school.factory.ts",{"_index":13512,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["school.features",{"_index":13607,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.filter((f",{"_index":13609,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features.includes(feature",{"_index":13608,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.features?.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":15100,"title":{},"body":{"injectables/OAuthService.html":{}}}],["school.id",{"_index":14468,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolValidationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["school.module",{"_index":13442,"title":{},"body":{"modules/LegacySchoolApiModule.html":{}}}],["school.module.ts",{"_index":13535,"title":{},"body":{"modules/LegacySchoolModule.html":{}}}],["school.name",{"_index":15932,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["school.officialschoolnumber",{"_index":322,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolValidationService.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["school.previousexternalid",{"_index":13363,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.previousexternalid}/${username}`.tolowercase",{"_index":13366,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["school.repo.ts",{"_index":13537,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:12",{"_index":13540,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:17",{"_index":13547,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:21",{"_index":13543,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.repo.ts:28",{"_index":13545,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["school.rule.ts",{"_index":13580,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:12",{"_index":13581,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:15",{"_index":13583,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.rule.ts:21",{"_index":13582,"title":{},"body":{"injectables/LegacySchoolRule.html":{}}}],["school.schoolyear",{"_index":20111,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.service.ts",{"_index":13585,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:10",{"_index":13592,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:16",{"_index":13601,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:21",{"_index":13603,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:29",{"_index":13596,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:35",{"_index":13594,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:41",{"_index":13598,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.service.ts:47",{"_index":13605,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school.systems",{"_index":13337,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["school.systems.includes(systemid",{"_index":13338,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/OidcProvisioningService.html":{}}}],["school.systems.push(systemid",{"_index":15936,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school.systems?.filter((systemid",{"_index":20480,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["school.uc.ts",{"_index":13616,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:16",{"_index":13617,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:26",{"_index":13621,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school.uc.ts:77",{"_index":13619,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school/controller/dto/migration.body.ts",{"_index":14455,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:12",{"_index":14458,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:21",{"_index":14457,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.body.ts:30",{"_index":14456,"title":{},"body":{"classes/MigrationBody.html":{}}}],["school/controller/dto/migration.response.ts",{"_index":14498,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:14",{"_index":14504,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:20",{"_index":14503,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:26",{"_index":14502,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:31",{"_index":14499,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/migration.response.ts:8",{"_index":14505,"title":{},"body":{"classes/MigrationResponse.html":{}}}],["school/controller/dto/school.params.ts",{"_index":17689,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/dto/school.params.ts:11",{"_index":17690,"title":{},"body":{"classes/SchoolParams.html":{}}}],["school/controller/legacy",{"_index":13446,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["school/error/school",{"_index":17680,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school/legacy",{"_index":13439,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["school/mapper/migration.mapper.ts",{"_index":14479,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/mapper/migration.mapper.ts:7",{"_index":14482,"title":{},"body":{"injectables/MigrationMapper.html":{}}}],["school/repo/schoolyear.repo.ts",{"_index":17708,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:11",{"_index":17710,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/repo/schoolyear.repo.ts:7",{"_index":17711,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["school/service/federal",{"_index":9466,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["school/service/legacy",{"_index":13584,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["school/service/school",{"_index":17714,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["school/service/validation/school",{"_index":17695,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["school/types",{"_index":15926,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["school/uc/dto/oauth",{"_index":15388,"title":{},"body":{"classes/OauthMigrationDto.html":{}}}],["school/uc/legacy",{"_index":13615,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["school?.id",{"_index":16000,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["school_external_tools",{"_index":11685,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["school_in_migration",{"_index":17566,"title":{},"body":{"classes/SchoolInMigrationError.html":{}}}],["school_migration_failed",{"_index":17592,"title":{},"body":{"classes/SchoolMigrationError.html":{}}}],["school_number_duplicate",{"_index":17683,"title":{},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{}}}],["school_number_missing",{"_index":17688,"title":{},"body":{"classes/SchoolNumberMissingLoggableException.html":{}}}],["schooldo",{"_index":12600,"title":{},"body":{"classes/IservMapper.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schooldo.externalid",{"_index":12604,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.features",{"_index":20486,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.includes(schoolfeatures.oauth_provisioning_enabled",{"_index":20487,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.features.push(schoolfeatures.oauth_provisioning_enabled",{"_index":20488,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schooldo.name",{"_index":12603,"title":{},"body":{"classes/IservMapper.html":{}}}],["schooldo.officialschoolnumber",{"_index":12605,"title":{},"body":{"classes/IservMapper.html":{},"injectables/SchoolMigrationService.html":{}}}],["schooldo.previousexternalid",{"_index":17671,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems",{"_index":17669,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldo.systems.push(targetsystemid",{"_index":17670,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooldocopy",{"_index":17641,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolentity",{"_index":844,"title":{"entities/SchoolEntity.html":{}},"body":{"interfaces/AccountParams.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/LegacySchoolRepo.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolInfoMapper.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserRepo.html":{}}}],["schoolentity(props",{"_index":13555,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolexclusive",{"_index":17866,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{}}}],["schoolexternal",{"_index":17377,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltool",{"_index":139,"title":{"classes/SchoolExternalTool.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ToolConfigurationMapper.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltool'})@httpcode(httpstatus.no_content",{"_index":19920,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltool.id",{"_index":8388,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolService.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltool.name",{"_index":17458,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.parameters",{"_index":280,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["schoolexternaltool.schoolid",{"_index":311,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.status",{"_index":17461,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltool.toolid",{"_index":8392,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolexternaltool.toolversion",{"_index":17460,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse",{"_index":17364,"title":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplatelistresponse(mappedtools",{"_index":19593,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltoolconfigurationtemplateresponse",{"_index":17366,"title":{"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["schoolexternaltooldto",{"_index":17431,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolentity",{"_index":5682,"title":{"entities/SchoolExternalToolEntity.html":{}},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{}}}],["schoolexternaltoolentity(props",{"_index":17415,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["schoolexternaltoolfactory",{"_index":17371,"title":{"classes/SchoolExternalToolFactory.html":{}},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolfactory.define(schoolexternaltool",{"_index":17376,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["schoolexternaltoolid",{"_index":5641,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/ToolConfigurationMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["schoolexternaltoolidparams",{"_index":17378,"title":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{}},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolids",{"_index":5755,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolmodule",{"_index":5719,"title":{"modules/SchoolExternalToolModule.html":{}},"body":{"modules/ContextExternalToolModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["schoolexternaltoolparams",{"_index":19926,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolparams.schoolid",{"_index":19936,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolpostparams",{"_index":17387,"title":{"classes/SchoolExternalToolPostParams.html":{}},"body":{"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolprops",{"_index":17356,"title":{"interfaces/SchoolExternalToolProps.html":{}},"body":{"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["schoolexternaltoolquery",{"_index":17401,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolqueryinput",{"_index":17518,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["schoolexternaltoolrefdo",{"_index":5610,"title":{"classes/SchoolExternalToolRefDO.html":{}},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["schoolexternaltoolrepo",{"_index":1966,"title":{"injectables/SchoolExternalToolRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"injectables/ExternalToolService.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolService.html":{}}}],["schoolexternaltoolrequestmapper",{"_index":17425,"title":{"injectables/SchoolExternalToolRequestMapper.html":{}},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse",{"_index":17436,"title":{"classes/SchoolExternalToolResponse.html":{}},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponsemapper",{"_index":17442,"title":{"injectables/SchoolExternalToolResponseMapper.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunauthorizedresponse()@apibadrequestresponse({type",{"_index":19931,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolresponse})@apiforbiddenresponse()@apiunprocessableentityresponse()@apiunauthorizedresponse()@apiresponse({status",{"_index":19916,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolrule",{"_index":1967,"title":{"injectables/SchoolExternalToolRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["schoolexternaltools",{"_index":8370,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltools.filter",{"_index":8384,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["schoolexternaltools.map",{"_index":9140,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["schoolexternaltoolscope",{"_index":17403,"title":{"classes/SchoolExternalToolScope.html":{}},"body":{"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{}}}],["schoolexternaltoolsearchlistresponse",{"_index":17450,"title":{"classes/SchoolExternalToolSearchListResponse.html":{}},"body":{"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolsearchlistresponse(responses",{"_index":17457,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["schoolexternaltoolsearchparams",{"_index":17469,"title":{"classes/SchoolExternalToolSearchParams.html":{}},"body":{"classes/SchoolExternalToolSearchParams.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolservice",{"_index":5977,"title":{"injectables/SchoolExternalToolService.html":{}},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceUc.html":{}}}],["schoolexternaltoolsinuse",{"_index":8427,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltoolsinuse.map",{"_index":8431,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["schoolexternaltooluc",{"_index":17504,"title":{"injectables/SchoolExternalToolUc.html":{}},"body":{"injectables/SchoolExternalToolUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["schoolexternaltoolvalidationservice",{"_index":17385,"title":{"injectables/SchoolExternalToolValidationService.html":{}},"body":{"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolexternaltoolversion",{"_index":17535,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["schoolfactory",{"_index":6613,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.build",{"_index":6622,"title":{},"body":{"classes/CourseFactory.html":{},"classes/ImportUserFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserFactory.html":{}}}],["schoolfactory.buildwithid",{"_index":19383,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["schoolfeatureenabled",{"_index":21297,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["schoolfeatures",{"_index":11695,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["schoolfeatures.enable_ldap_sync_during_migration",{"_index":20472,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["schoolfeatures.oauth_provisioning_enabled",{"_index":15940,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["schoolfeatures.videoconference",{"_index":21299,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["schoolforgroupnotfoundloggable",{"_index":15927,"title":{"classes/SchoolForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["schoolforgroupnotfoundloggable(externalgroup",{"_index":15971,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["schoolid",{"_index":4227,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/DownloadFileParams.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/FeathersAuthProvider.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"interfaces/IdToken.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtPayload.html":{},"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"entities/News.html":{},"injectables/NewsUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserResponse.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolSchoolController.html":{},"entities/User.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["schoolid'})@index",{"_index":6628,"title":{},"body":{"entities/CourseGroup.html":{},"entities/Submission.html":{}}}],["schooliddoesnotmatchwithuserschoolid",{"_index":17552,"title":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["schoolidparams",{"_index":17562,"title":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{}},"body":{"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"controllers/ToolConfigurationController.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolinfo",{"_index":17583,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.id",{"_index":17584,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfo.name",{"_index":17585,"title":{},"body":{"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper",{"_index":14680,"title":{"classes/SchoolInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/SchoolInfoMapper.html":{}}}],["schoolinfomapper.maptoresponse(news.school",{"_index":14685,"title":{},"body":{"classes/NewsMapper.html":{}}}],["schoolinforesponse",{"_index":14651,"title":{"classes/SchoolInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{}}}],["schoolinmigrationerror",{"_index":15158,"title":{"classes/SchoolInMigrationError.html":{}},"body":{"injectables/Oauth2Strategy.html":{},"classes/SchoolInMigrationError.html":{}}}],["schoolinusermigrationendloggable",{"_index":17567,"title":{"classes/SchoolInUserMigrationEndLoggable.html":{}},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{}}}],["schoolinusermigrationstartloggable",{"_index":17573,"title":{"classes/SchoolInUserMigrationStartLoggable.html":{}},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["schoolmigrated",{"_index":17649,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schoolmigrationerror",{"_index":17590,"title":{"classes/SchoolMigrationError.html":{}},"body":{"classes/SchoolMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationerror(details",{"_index":20527,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["schoolmigrationflags",{"_index":17593,"title":{"interfaces/SchoolMigrationFlags.html":{}},"body":{"interfaces/SchoolMigrationFlags.html":{}}}],["schoolmigrationservice",{"_index":4449,"title":{"injectables/SchoolMigrationService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/OauthUc.html":{},"injectables/SchoolMigrationService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schoolname",{"_index":11906,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/System.html":{}}}],["schoolnews",{"_index":6755,"title":{"entities/SchoolNews.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["schoolnews(props",{"_index":6753,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["schoolnumber",{"_index":13599,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["schoolnumber_prefix_regex",{"_index":17277,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["schoolnumberduplicateloggableexception",{"_index":17679,"title":{"classes/SchoolNumberDuplicateLoggableException.html":{}},"body":{"classes/SchoolNumberDuplicateLoggableException.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolnumberduplicateloggableexception(school.officialschoolnumber",{"_index":17701,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["schoolnumbermissingloggableexception",{"_index":17684,"title":{"classes/SchoolNumberMissingLoggableException.html":{}},"body":{"classes/SchoolNumberMissingLoggableException.html":{},"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{}}}],["schoolnumbermissingloggableexception(schoolid",{"_index":18170,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["schoolnumbermissingloggableexception})@apiokresponse({description",{"_index":20297,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["schoolparameter",{"_index":7158,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["schoolparameters",{"_index":11684,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["schoolparams",{"_index":13451,"title":{"classes/SchoolParams.html":{}},"body":{"controllers/LegacySchoolController.html":{},"classes/SchoolParams.html":{}}}],["schoolparams.schoolid",{"_index":13476,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolrepo",{"_index":11636,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolrolepermission",{"_index":11711,"title":{"classes/SchoolRolePermission.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolroles",{"_index":11714,"title":{"classes/SchoolRoles.html":{}},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolrule",{"_index":23101,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["schools",{"_index":9717,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/OAuthService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/ShareTokenDO.html":{}}}],["schools[0",{"_index":13553,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["schoolservice",{"_index":132,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["schooltomigrate",{"_index":15837,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["schooltomigrate(currentuserid",{"_index":17627,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["schooltool",{"_index":5675,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["schooltool.school",{"_index":5787,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["schooltoolid",{"_index":5701,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["schooltoolref",{"_index":5603,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["schooltype",{"_index":11547,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["schooluc",{"_index":13472,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["schoolvalidationservice",{"_index":13533,"title":{"injectables/SchoolValidationService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/SchoolValidationService.html":{}}}],["schoolyear",{"_index":9475,"title":{"entities/SchoolYear.html":{}},"body":{"injectables/FederalStateService.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/OidcProvisioningService.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyear.entity",{"_index":11698,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["schoolyear.factory",{"_index":13516,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearfactory",{"_index":13515,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearfactory.build",{"_index":13527,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["schoolyearrepo",{"_index":13534,"title":{"injectables/SchoolYearRepo.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{}}}],["schoolyearservice",{"_index":13532,"title":{"injectables/SchoolYearService.html":{}},"body":{"modules/LegacySchoolModule.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolYearService.html":{}}}],["schould",{"_index":6907,"title":{},"body":{"classes/CreateNewsParams.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UpdateNewsParams.html":{}}}],["schul",{"_index":2173,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/ColumnBoardService.html":{},"injectables/CourseCopyUC.html":{},"classes/DtoCreator.html":{},"modules/FilesStorageModule.html":{},"controllers/FwuLearningContentsController.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"interfaces/IToolFeatures.html":{},"injectables/IdTokenService.html":{},"classes/KeycloakAdministration.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PrometheusMetricsConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"modules/RedisModule.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsService.html":{},"injectables/SanisProvisioningStrategy.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/TaskCopyUC.html":{},"classes/ToolConfiguration.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceConfiguration.html":{},"dependencies.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["schulcloud",{"_index":11042,"title":{},"body":{"injectables/HydraSsoService.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ServerController.html":{},"additional-documentation/nestjs-application.html":{}}}],["schulcloudnextcloud",{"_index":15594,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["scope",{"_index":277,"title":{"classes/Scope.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ConsentRequestBody.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolServiceMapper.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"controllers/ImportUserController.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"interfaces/IntrospectResponse.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/LegacyLogger.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/Logger.html":{},"classes/LoginRequestBody.html":{},"controllers/NewsController.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderService.html":{},"classes/OidcConfig.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"injectables/SubmissionRepo.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"controllers/TeamNewsController.html":{},"injectables/UserDORepo.html":{},"classes/UserMatchMapper.html":{},"classes/UserScope.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope)roles",{"_index":23054,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scope.addquery(allforcreator.query",{"_index":19023,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(allforfinishedcoursesandlessons.query",{"_index":19022,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(closedforopencoursesandlessons.query",{"_index":19021,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.addquery(parentidscope.query",{"_index":19036,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.afterduedateornone(filters.afterduedateornone",{"_index":19043,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.allowemptyquery(true",{"_index":5793,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byavailable(filters?.availableon",{"_index":19047,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byclasses(filters.classes",{"_index":12486,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bycontextid(query.context?.id",{"_index":5791,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycontexttype(query.context?.type",{"_index":5792,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bycourseids([courseid",{"_index":19049,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.bycourseids(courseids",{"_index":13889,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.bycreator(creatorid",{"_index":14744,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bydraft(false",{"_index":19041,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfinished(filters.finished.userid",{"_index":19038,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.byfirstname(filters.firstname",{"_index":12478,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byhidden(filters.hidden",{"_index":13891,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["scope.byid(query.id",{"_index":5789,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bylastname(filters.lastname",{"_index":12480,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byloginname(filters.loginname",{"_index":12482,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bymatches(filters.matches",{"_index":12488,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.bypublished",{"_index":14740,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byrole(filters.role",{"_index":12484,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschool(school",{"_index":12476,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.byschoolid(query.schoolid",{"_index":17416,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byschooltoolid(query.schooltoolref?.schooltoolid",{"_index":5790,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["scope.bytargets(targets",{"_index":14739,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.bytoolid(query.toolid",{"_index":17417,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["scope.byunpublished",{"_index":14743,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["scope.byusermatch(user",{"_index":12474,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.enum",{"_index":21010,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["scope.excludedraftsofothers(creatorid",{"_index":19051,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludedraftsofothers(parentids.creatorid",{"_index":19040,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.excludeunavailableofothers(parentids.creatorid",{"_index":19045,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.foractivecourses",{"_index":6803,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forallgrouptypes(userid",{"_index":6801,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forcourseid(courseid",{"_index":6812,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacher(userid",{"_index":6808,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.forteacherorsubstituteteacher(userid",{"_index":6811,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["scope.id",{"_index":20982,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.isflagged(true",{"_index":12490,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["scope.name",{"_index":20555,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["scope.nofutureavailabledate",{"_index":19053,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["scope.params.ts",{"_index":21217,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:12",{"_index":21221,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.params.ts:8",{"_index":21219,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["scope.query",{"_index":5786,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/LessonRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SystemRepo.html":{},"injectables/UserDORepo.html":{}}}],["scope.request",{"_index":9439,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["scope.scope",{"_index":20986,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scope.target",{"_index":14853,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope.targetid",{"_index":19298,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.targetmodel",{"_index":19300,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["scope.transient",{"_index":13417,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["scope.ts",{"_index":9888,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:10",{"_index":13937,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:13",{"_index":9895,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:15",{"_index":18701,"title":{},"body":{"classes/SystemScope.html":{}}}],["scope.ts:17",{"_index":19120,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:19",{"_index":9902,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["scope.ts:25",{"_index":9904,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:31",{"_index":9897,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/NewsScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:37",{"_index":14779,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:39",{"_index":19118,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:45",{"_index":19115,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:5",{"_index":13936,"title":{},"body":{"classes/LessonScope.html":{},"classes/SystemScope.html":{}}}],["scope.ts:52",{"_index":19122,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:60",{"_index":19112,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:66",{"_index":19129,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:7",{"_index":9900,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["scope.ts:73",{"_index":19124,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:8",{"_index":14781,"title":{},"body":{"classes/NewsScope.html":{}}}],["scope.ts:83",{"_index":19110,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:89",{"_index":19128,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.ts:95",{"_index":19126,"title":{},"body":{"classes/TaskScope.html":{}}}],["scope.withldapconfig",{"_index":18678,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoauthconfig",{"_index":18680,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope.withoidcconfig",{"_index":18682,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["scope:11",{"_index":5883,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:13",{"_index":5881,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:31",{"_index":5895,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:35",{"_index":5897,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope:9",{"_index":5884,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scope?.target",{"_index":14850,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scope?.unpublished",{"_index":14833,"title":{},"body":{"injectables/NewsUc.html":{}}}],["scoped",{"_index":19221,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopeid",{"_index":9369,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/IScopeInfo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{}}}],["scopeinfo",{"_index":20973,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["scopeinfo.logouturl",{"_index":20996,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["scopeinfo.scopeid",{"_index":20988,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["scopemapping",{"_index":8932,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterdo.scope",{"_index":9038,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["scopemapping[customparameterparam.scope",{"_index":8977,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["scopename",{"_index":11744,"title":{},"body":{"interfaces/IScopeInfo.html":{},"injectables/VideoConferenceService.html":{}}}],["scopeoperator",{"_index":5882,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["scopeparams",{"_index":20891,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopeparams.scope",{"_index":20929,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopepermission",{"_index":19220,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scopepermissions",{"_index":19219,"title":{},"body":{"injectables/TaskUC.html":{}}}],["scoperef",{"_index":17738,"title":{"classes/ScopeRef.html":{}},"body":{"classes/ScopeRef.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["scoperef(scopeparams.scopeid",{"_index":20928,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["scopes",{"_index":137,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/ConsentResponse.html":{},"injectables/IdTokenService.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"controllers/NewsController.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["scopes.includes(oauthscope.email",{"_index":12172,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.groups",{"_index":12166,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.includes(oauthscope.profile",{"_index":12174,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["scopes.map(async",{"_index":285,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["scopes/rules/permissions/user",{"_index":23139,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["scripts",{"_index":21809,"title":{},"body":{"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["sdk",{"_index":21372,"title":{},"body":{"dependencies.html":{}}}],["sdk/client",{"_index":7820,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{}}}],["sdk/lib",{"_index":17131,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["search",{"_index":1005,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"interfaces/ExternalToolSearchQuery.html":{},"classes/IdentityManagementService.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["search.params.ts",{"_index":9064,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.params.ts:13",{"_index":9066,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["search.params.ts:8",{"_index":9067,"title":{},"body":{"classes/ExternalToolSearchParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["search.query.params.ts",{"_index":1027,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["search.query.params.ts:14",{"_index":1032,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["search.query.params.ts:22",{"_index":1033,"title":{},"body":{"classes/AccountSearchQueryParams.html":{}}}],["searchability",{"_index":22648,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["searchaccounts",{"_index":487,"title":{},"body":{"controllers/AccountController.html":{}}}],["searchaccounts(currentuser",{"_index":528,"title":{},"body":{"controllers/AccountController.html":{}}}],["searchbyusername",{"_index":882,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchbyusername(username",{"_index":901,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchbyusernameexactmatch",{"_index":19,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernameexactmatch(username",{"_index":67,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernamepartialmatch",{"_index":20,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["searchbyusernamepartialmatch(username",{"_index":69,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["searches",{"_index":19611,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["searching",{"_index":12551,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["searchoptions",{"_index":12229,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["searchparams",{"_index":20373,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchparams.userid",{"_index":20377,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["searchquery",{"_index":8982,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["searchuser",{"_index":11903,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["searchusername",{"_index":943,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["searchuserpassword",{"_index":11904,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["second",{"_index":2726,"title":{},"body":{"entities/Board.html":{},"injectables/S3ClientAdapter.html":{}}}],["secondarily",{"_index":21756,"title":{},"body":{"license.html":{}}}],["secondary",{"_index":21710,"title":{},"body":{"license.html":{}}}],["secondchar",{"_index":6466,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["seconds",{"_index":5391,"title":{},"body":{"classes/ConsentRequestBody.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"classes/LoginRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["secret",{"_index":1696,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/JwtConstants.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthClientBody.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SystemFactory.html":{},"additional-documentation/nestjs-application.html":{}}}],["secret.value",{"_index":14257,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["secretaccesskey",{"_index":6168,"title":{},"body":{"interfaces/CopyFiles.html":{},"injectables/DeleteFilesUc.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IStorageProviderProperties.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"entities/StorageProviderEntity.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["secretdata",{"_index":13190,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["secretorkey",{"_index":12701,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["secrets",{"_index":11280,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{}}}],["section",{"_index":15253,"title":{},"body":{"classes/OauthClientBody.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sections",{"_index":21909,"title":{},"body":{"license.html":{}}}],["secure",{"_index":15783,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["secure_launch_url",{"_index":5127,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["security",{"_index":9600,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"classes/SystemResponseMapper.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["security.controller.ts",{"_index":9931,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:15",{"_index":9937,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["security.controller.ts:29",{"_index":9940,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["securitycheck",{"_index":9565,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["securitycheck.requesttoken",{"_index":9739,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["securitycheckstatus",{"_index":6109,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["see",{"_index":722,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ApiValidationError.html":{},"injectables/AuthorizationService.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordFactory.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalValidationPipe.html":{},"modules/H5PEditorModule.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserFactory.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SchoolExternalToolFactory.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionFactory.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seed",{"_index":7657,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"classes/KeycloakSeedService.html":{},"interfaces/Options.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["seed(options",{"_index":11605,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["seed.service",{"_index":12838,"title":{},"body":{"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{}}}],["seed.service.ts",{"_index":13208,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:12",{"_index":13212,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:18",{"_index":13217,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:33",{"_index":13213,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:52",{"_index":13214,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:86",{"_index":13215,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seed.service.ts:91",{"_index":13216,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["seedcollections",{"_index":7647,"title":{},"body":{"classes/DatabaseManagementConsole.html":{}}}],["seedcollections(options",{"_index":7656,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["seeddata",{"_index":22731,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["seeddatabasecollectionsfromfactories(collections",{"_index":11171,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeddatabasecollectionsfromfilesystem(collections",{"_index":11186,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeded",{"_index":13163,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["seededcollectionswithamount",{"_index":11182,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seededcollectionswithamount.push(`${collectionname}:${importeddocumentsamount",{"_index":11206,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["seeding",{"_index":13236,"title":{},"body":{"classes/KeycloakSeedService.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["seeds",{"_index":11604,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["seems",{"_index":22305,"title":{},"body":{"todo.html":{}}}],["segregation",{"_index":22469,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sehr",{"_index":4800,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["select",{"_index":23102,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["selectconfigureaction",{"_index":12854,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selectconfigureaction(newconfigs",{"_index":12881,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["selected",{"_index":13340,"title":{},"body":{"injectables/LdapStrategy.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"todo.html":{}}}],["selectedrules",{"_index":17089,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule",{"_index":17064,"title":{},"body":{"injectables/RuleManager.html":{}}}],["selectrule(user",{"_index":17070,"title":{},"body":{"injectables/RuleManager.html":{}}}],["self",{"_index":23046,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sell",{"_index":22114,"title":{},"body":{"license.html":{}}}],["selling",{"_index":22098,"title":{},"body":{"license.html":{}}}],["semiconductor",{"_index":21740,"title":{},"body":{"license.html":{}}}],["senario",{"_index":22753,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["send",{"_index":1427,"title":{},"body":{"injectables/AntivirusService.html":{},"injectables/MailService.html":{},"additional-documentation/nestjs-application.html":{}}}],["send(data",{"_index":1745,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/TestApiClient.html":{}}}],["send(params",{"_index":1753,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["send(requesttoken",{"_index":1434,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["sendauthenticationcodetokenrequest",{"_index":15199,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendauthenticationcodetokenrequest(tokenendpoint",{"_index":15206,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["sendhttpresponse",{"_index":10471,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sendhttpresponse(error",{"_index":10488,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["sending",{"_index":22517,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["sense",{"_index":1923,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sensible",{"_index":18540,"title":{},"body":{"controllers/SystemController.html":{}}}],["sent",{"_index":18898,"title":{},"body":{"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["sentence",{"_index":1512,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["separable",{"_index":21949,"title":{},"body":{"license.html":{}}}],["separate",{"_index":13422,"title":{},"body":{"injectables/LegacyLogger.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["separated",{"_index":15251,"title":{},"body":{"classes/OauthClientBody.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["separately",{"_index":21895,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["seperate",{"_index":21608,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seperated",{"_index":22527,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["seperation",{"_index":21607,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["sequence",{"_index":674,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/ShareTokenFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["sequence}@example.com",{"_index":12355,"title":{},"body":{"classes/ImportUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["sequence}displayname",{"_index":18609,"title":{},"body":{"classes/SystemFactory.html":{}}}],["serialization",{"_index":18178,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"todo.html":{}}}],["serialize",{"_index":3846,"title":{},"body":{"injectables/BsonConverter.html":{},"interfaces/ICollectionFilePath.html":{}}}],["serialize(documents",{"_index":3856,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serializedprimarykey",{"_index":2497,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/VideoConferenceInfo.html":{}}}],["serializes",{"_index":3858,"title":{},"body":{"injectables/BsonConverter.html":{}}}],["serve",{"_index":21456,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["served",{"_index":22427,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server",{"_index":2116,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/ConsentRequestBody.html":{},"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"injectables/LegacyLogger.html":{},"injectables/LessonCopyService.html":{},"classes/LoginRequestBody.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/OAuthRejectableBody.html":{},"classes/OauthClientBody.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"properties.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["server.config",{"_index":17803,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["server.console",{"_index":17761,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["server.module.ts",{"_index":14423,"title":{},"body":{"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["server.module.ts:36",{"_index":14429,"title":{},"body":{"modules/ManagementServerTestModule.html":{}}}],["server/blob/main/apps/server/src/modules/authorization/readme.md",{"_index":22446,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/config/readme.md",{"_index":22445,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["server/blob/main/src/services/lesson/hooks/index.js#l232",{"_index":23132,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["server/overview.html",{"_index":22308,"title":{},"body":{"todo.html":{}}}],["server/pull/2729#pullrequestreview",{"_index":22285,"title":{},"body":{"todo.html":{}}}],["server/server.config",{"_index":832,"title":{},"body":{"modules/AccountModule.html":{},"injectables/AccountService.html":{}}}],["server_options_path='/tmp/config/server",{"_index":22935,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["serverconfig",{"_index":11763,"title":{},"body":{"interfaces/IServerConfig.html":{},"modules/ManagementModule.html":{},"controllers/RoomsController.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["serverconsole",{"_index":17740,"title":{"classes/ServerConsole.html":{}},"body":{"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{}}}],["serverconsolemodule",{"_index":17752,"title":{"modules/ServerConsoleModule.html":{}},"body":{"modules/ServerConsoleModule.html":{},"modules.html":{}}}],["servercontroller",{"_index":17763,"title":{"controllers/ServerController.html":{}},"body":{"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servermodule",{"_index":17766,"title":{"modules/ServerModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["servermodules",{"_index":17804,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["servers",{"_index":21721,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["servertestmodule",{"_index":17845,"title":{"modules/ServerTestModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules.html":{}}}],["serves",{"_index":21801,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["service",{"_index":766,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"modules/ClassModule.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageUc.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/GroupModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonModule.html":{},"injectables/LessonUC.html":{},"modules/LtiToolModule.html":{},"injectables/NexboardService.html":{},"injectables/PermissionService.html":{},"modules/PseudonymModule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"modules/SchoolExternalToolModule.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"controllers/SystemController.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskUC.html":{},"modules/TeamsModule.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolController.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolReferenceUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{},"dependencies.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["service(logic",{"_index":23135,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["service.create(data",{"_index":8262,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["service.find",{"_index":9372,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.get",{"_index":22625,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.get(userid",{"_index":9367,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["service.mapper",{"_index":9111,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["service.mapper.ts",{"_index":9164,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.mapper.ts:7",{"_index":9167,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{}}}],["service.module.ts",{"_index":15680,"title":{},"body":{"modules/OauthProviderServiceModule.html":{}}}],["service.provider",{"_index":8256,"title":{},"body":{"injectables/EtherpadService.html":{},"modules/FeathersModule.html":{},"injectables/NexboardService.html":{}}}],["service.provider.ts",{"_index":9427,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.provider.ts:13",{"_index":9435,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:19",{"_index":9433,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:24",{"_index":9430,"title":{},"body":{"interfaces/FeathersService.html":{}}}],["service.provider.ts:38",{"_index":9452,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.provider.ts:41",{"_index":9453,"title":{},"body":{"injectables/FeathersServiceProvider.html":{}}}],["service.ts",{"_index":1937,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["service.ts:10",{"_index":1944,"title":{},"body":{"interfaces/AuthorizationLoaderServiceGeneric.html":{}}}],["service.ts:5",{"_index":1938,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{}}}],["service/board",{"_index":3805,"title":{},"body":{"injectables/BoardUc.html":{}}}],["service/cache.service",{"_index":3914,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["service/common",{"_index":6595,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["service/copy",{"_index":6240,"title":{},"body":{"modules/CopyHelperModule.html":{},"modules/FilesStorageClientModule.html":{}}}],["service/dto",{"_index":15735,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/TokenRequestMapper.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["service/dto/page",{"_index":16026,"title":{},"body":{"injectables/PageContentMapper.html":{}}}],["service/files",{"_index":10165,"title":{},"body":{"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{}}}],["service/hydra.service",{"_index":10954,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{}}}],["service/id",{"_index":15637,"title":{},"body":{"modules/OauthProviderModule.html":{}}}],["service/keycloak",{"_index":12759,"title":{},"body":{"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationUc.html":{},"modules/KeycloakModule.html":{}}}],["service/oauth",{"_index":15400,"title":{},"body":{"modules/OauthModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["service/oauth.service",{"_index":10955,"title":{},"body":{"injectables/HydraOauthUc.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{}}}],["service/oidc",{"_index":15994,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["service/preview.service",{"_index":10264,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["service/provisioning.service",{"_index":16310,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["service/rooms.service",{"_index":17044,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["service/strategy",{"_index":19780,"title":{},"body":{"modules/ToolLaunchModule.html":{}}}],["service/submission",{"_index":8090,"title":{},"body":{"injectables/ElementUc.html":{}}}],["service/system",{"_index":18641,"title":{},"body":{"modules/SystemModule.html":{}}}],["service/user.service",{"_index":20681,"title":{},"body":{"modules/UserModule.html":{}}}],["servicedto",{"_index":19280,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["serviceoptions",{"_index":18083,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.context",{"_index":18085,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoptions.expiresat",{"_index":18089,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["serviceoutputtypes",{"_index":17129,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["services",{"_index":9419,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"modules/LearnroomApiModule.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"injectables/TimeoutInterceptor.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["services/account",{"_index":829,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/account.service",{"_index":827,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/account.validation.service",{"_index":828,"title":{},"body":{"modules/AccountModule.html":{}}}],["services/authentication.service",{"_index":1651,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/LoginUc.html":{}}}],["services/dto/account.dto",{"_index":638,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{}}}],["services/dto/team",{"_index":19320,"title":{},"body":{"injectables/TeamPermissionsMapper.html":{}}}],["services/dto/team.dto",{"_index":19281,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["services/ldap.service",{"_index":1652,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/LdapStrategy.html":{}}}],["serviceunavailableexception",{"_index":13164,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["servicing",{"_index":22200,"title":{},"body":{"license.html":{}}}],["session",{"_index":346,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderResponseMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/VideoConferenceCreateParams.html":{},"dependencies.html":{}}}],["session.consent_request.challenge",{"_index":15660,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_id",{"_index":15658,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.consent_request.client?.client_name",{"_index":15659,"title":{},"body":{"injectables/OauthProviderResponseMapper.html":{}}}],["session.destroy((err",{"_index":15744,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["session.oauthloginstate",{"_index":15758,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["session.response",{"_index":10890,"title":{},"body":{"injectables/HydraAdapter.html":{},"controllers/OauthProviderController.html":{}}}],["session.response.ts",{"_index":5467,"title":{},"body":{"classes/ConsentSessionResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{}}}],["session.response.ts:13",{"_index":5475,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:16",{"_index":5476,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:19",{"_index":5474,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session.response.ts:4",{"_index":5471,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["session_id",{"_index":14127,"title":{},"body":{"classes/LoginResponse-1.html":{},"interfaces/ProviderLoginResponse.html":{}}}],["session_token",{"_index":2250,"title":{},"body":{"interfaces/BBBJoinResponse.html":{}}}],["sessionduration",{"_index":17814,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessionhandler",{"_index":15697,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessionhandler(session",{"_index":15720,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sessions",{"_index":15565,"title":{},"body":{"controllers/OauthProviderController.html":{},"injectables/OauthProviderUc.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["sessions.map",{"_index":15567,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["set",{"_index":728,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BaseFactory.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"classes/FileRecordFactory.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"modules/InterceptorModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LoginRequestBody.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MigrationBody.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SortingParams.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SystemFactory.html":{},"entities/Task.html":{},"classes/TaskFactory.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"miscellaneous/functions.html":{},"index.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["set('authorization",{"_index":1742,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(caseinsensitivenames",{"_index":5341,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["set(headerconst.accept",{"_index":1751,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["set(memberids",{"_index":11835,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["set(permissions",{"_index":11681,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/PermissionService.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["set(tasksubmitterids",{"_index":12036,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["setcaption(value",{"_index":9523,"title":{},"body":{"classes/FileElement.html":{}}}],["setcompleted(value",{"_index":18297,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setcontext",{"_index":13396,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcontext(context",{"_index":4697,"title":{},"body":{"classes/ColumnBoard.html":{}}}],["setcontext(name",{"_index":13405,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["setcookies",{"_index":11018,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setcookies.foreach((item",{"_index":11060,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["setduedate(value",{"_index":18231,"title":{},"body":{"classes/SubmissionContainerElement.html":{}}}],["setgroupname",{"_index":10556,"title":{},"body":{"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setgroupname(newgroupname",{"_index":7318,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setheight(height",{"_index":3993,"title":{},"body":{"classes/Card.html":{}}}],["setheightbodyparams",{"_index":4032,"title":{"classes/SetHeightBodyParams.html":{}},"body":{"controllers/CardController.html":{},"classes/SetHeightBodyParams.html":{}}}],["setinputformat(value",{"_index":16752,"title":{},"body":{"classes/RichTextElement.html":{}}}],["setlearnrooms",{"_index":7267,"title":{},"body":{"classes/DashboardEntity.html":{}}}],["setlearnrooms(rooms",{"_index":7306,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["setmatch",{"_index":12268,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(urlparams",{"_index":12287,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["setmatch(user",{"_index":11489,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["setmigration",{"_index":13449,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolid",{"_index":13620,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigration(schoolparams",{"_index":13457,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["setmigrationmandatory",{"_index":19489,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(currentuser",{"_index":20288,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["setmigrationmandatory(schoolid",{"_index":20458,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["setmigrationmandatory(userid",{"_index":19492,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["setname(name",{"_index":9765,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["setpasswordpolicy",{"_index":12773,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["setrequireduserrole(userroleenum",{"_index":3097,"title":{},"body":{"classes/BoardDoAuthorizable.html":{}}}],["sets",{"_index":4638,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ConsentRequestBody.html":{},"classes/IdentityManagementService.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["setschool(value",{"_index":19370,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setstrategy",{"_index":4489,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["setstrategy(strategy",{"_index":4502,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["settedlanguage",{"_index":20820,"title":{},"body":{"injectables/UserUc.html":{}}}],["settext(value",{"_index":16748,"title":{},"body":{"classes/RichTextElement.html":{}}}],["settimeout",{"_index":17193,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["settimeout(resolve",{"_index":11629,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["setting",{"_index":6759,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["settings",{"_index":22640,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["settings.interface",{"_index":2335,"title":{},"body":{"injectables/BBBService.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{}}}],["settings.interface.ts",{"_index":11095,"title":{},"body":{"interfaces/IBbbSettings.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/IVideoConferenceSettings.html":{}}}],["settings.response",{"_index":4110,"title":{},"body":{"classes/CardResponse.html":{}}}],["settings.response.ts",{"_index":21319,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:3",{"_index":21321,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settings.response.ts:9",{"_index":21322,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["settitle(title",{"_index":3989,"title":{},"body":{"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{}}}],["setup",{"_index":3462,"title":{},"body":{"classes/BoardManagementConsole.html":{},"classes/DatabaseManagementConsole.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICollectionFilePath.html":{},"modules/InterceptorModule.html":{},"interfaces/Options.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["setup:db",{"_index":22931,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm",{"_index":22358,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:configure",{"_index":22971,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setup:idm:seed",{"_index":22970,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["setuppath",{"_index":11188,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["setupsessions",{"_index":17813,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["setupsessions(consumer",{"_index":17839,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["setuser(value",{"_index":19366,"title":{},"body":{"classes/TeamUserEntity.html":{}}}],["setuserattribute",{"_index":12210,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserattribute(userid",{"_index":12237,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["setuserid(value",{"_index":18300,"title":{},"body":{"classes/SubmissionItem.html":{}}}],["setuserstatus(authtoken",{"_index":1325,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["sha",{"_index":2368,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.digest('hex",{"_index":2372,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha.update(callname",{"_index":2370,"title":{},"body":{"injectables/BBBService.html":{}}}],["sha1",{"_index":2306,"title":{},"body":{"injectables/BBBService.html":{},"injectables/Lti11EncryptionService.html":{}}}],["shall",{"_index":16473,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{}}}],["share",{"_index":17888,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenResponse.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"license.html":{}}}],["shared",{"_index":17870,"title":{},"body":{"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/common",{"_index":558,"title":{},"body":{"controllers/AccountController.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationErrorResponse.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"classes/BruteForceError.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CurrentUserMapper.html":{},"controllers/ElementController.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICoreModuleConfig.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapConnectionError.html":{},"controllers/LoginController.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"controllers/RoomsController.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"controllers/ShareTokenController.html":{},"injectables/SubmissionItemService.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"controllers/TaskController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{},"modules/VideoConferenceModule.html":{}}}],["shared/common/loggable",{"_index":10722,"title":{},"body":{"injectables/GroupService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["shared/common/utils",{"_index":2332,"title":{},"body":{"injectables/BBBService.html":{}}}],["shared/common/utils/guard",{"_index":14005,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["shared/controller",{"_index":469,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseUc.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PreviewParams.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SystemFilterParams.html":{},"controllers/TaskController.html":{},"classes/TaskCreateParams.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolController.html":{},"classes/UpdateNewsParams.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["shared/controller/index",{"_index":378,"title":{},"body":{"classes/AcceptQuery.html":{}}}],["shared/controller/transformer",{"_index":10364,"title":{},"body":{"classes/FilterNewsParams.html":{}}}],["shared/core",{"_index":22595,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/domain",{"_index":99,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"modules/AccountApiModule.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AuthenticationResponse.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"interfaces/BaseResponseMapper.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardContextResponse.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ChangeLanguageParams.html":{},"entities/ClassEntity.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CurrentUserMapper.html":{},"classes/DashboardMapper.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/ExternalGroupUserDto.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"classes/FileContentBody.html":{},"classes/FileDto-1.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterNewsParams.html":{},"classes/ForbiddenLoggableException.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/IScopeInfo.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MetadataTypeMapper.html":{},"injectables/MigrationCheckService.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PreviewParams.html":{},"classes/ProvisioningSystemDto.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"classes/ResolvedUserMapper.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"injectables/SchoolValidationService.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/ScopeRef.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TeamDto.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateNewsParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"todo.html":{}}}],["shared/domain/domain",{"_index":1940,"title":{},"body":{"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"injectables/AuthorizationService.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/DomainObjectFactory.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"interfaces/UserBoardRoles.html":{}}}],["shared/domain/domainobject",{"_index":4092,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"classes/CurrentUserMapper.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OidcProvisioningService.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/ShareTokenDO.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["shared/domain/domainobject/base.do",{"_index":5614,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["shared/domain/domainobject/board/submission",{"_index":3185,"title":{},"body":{"interfaces/BoardDoBuilder.html":{}}}],["shared/domain/domainobject/ltitool.do",{"_index":11022,"title":{},"body":{"injectables/HydraSsoService.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["shared/domain/domainobject/page",{"_index":8425,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["shared/domain/domainobject/user.do",{"_index":6943,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/Oauth2Strategy.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["shared/domain/entity",{"_index":1911,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/BaseRepo.html":{},"injectables/CopyHelperService.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskCopyService.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TeamRule.html":{},"classes/UserDO.html":{},"injectables/UserRule.html":{}}}],["shared/domain/entity/account.entity",{"_index":918,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["shared/domain/entity/base.entity",{"_index":4294,"title":{},"body":{"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/ShareToken.html":{}}}],["shared/domain/entity/external",{"_index":10655,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["shared/domain/entity/ltitool.entity",{"_index":7035,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/LtiToolDO.html":{}}}],["shared/domain/entity/materials.entity",{"_index":14442,"title":{},"body":{"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{}}}],["shared/domain/entity/school.entity",{"_index":10657,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ITaskParent.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/UserLoginMigration.html":{}}}],["shared/domain/entity/system.entity",{"_index":20222,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["shared/domain/entity/user",{"_index":11696,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["shared/domain/entity/video",{"_index":21184,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["shared/domain/index",{"_index":15436,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["shared/domain/interface",{"_index":4821,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"entities/Course.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"injectables/TaskRepo.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["shared/domain/interface/permission.enum",{"_index":13836,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["shared/domain/interface/system",{"_index":11851,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{}}}],["shared/domain/interface/video",{"_index":21009,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["shared/domain/rules",{"_index":1979,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{}}}],["shared/domain/rules/context",{"_index":17072,"title":{},"body":{"injectables/RuleManager.html":{}}}],["shared/domain/rules/user",{"_index":17074,"title":{},"body":{"injectables/RuleManager.html":{}}}],["shared/domain/types",{"_index":2586,"title":{},"body":{"injectables/BaseRepo.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/BoardExternalReference.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ContentElementFactory.html":{},"injectables/CopyHelperService.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/DashboardEntity.html":{},"injectables/EtherpadService.html":{},"classes/GridElement.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"classes/LegacySchoolDo.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"injectables/NexboardService.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/ShareTokenDO.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDO.html":{}}}],["shared/domain/types/entity",{"_index":11770,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["shared/domain/types/input",{"_index":11959,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["shared/domain/types/session",{"_index":15385,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["shared/infra/antivirus/antivirus.module",{"_index":10255,"title":{},"body":{"modules/FilesStorageModule.html":{}}}],["shared/infra/cache",{"_index":1641,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/OauthModule.html":{}}}],["shared/infra/cache/interface/cache",{"_index":12728,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["shared/infra/calendar",{"_index":21154,"title":{},"body":{"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["shared/infra/calendar/dto/calendar",{"_index":3943,"title":{},"body":{"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/interface/calendar",{"_index":3941,"title":{},"body":{"injectables/CalendarMapper.html":{}}}],["shared/infra/calendar/mapper/calendar.mapper",{"_index":3958,"title":{},"body":{"modules/CalendarModule.html":{},"injectables/CalendarService.html":{}}}],["shared/infra/calendar/service/calendar.service",{"_index":3957,"title":{},"body":{"modules/CalendarModule.html":{}}}],["shared/infra/collaborative",{"_index":4514,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{}}}],["shared/infra/console",{"_index":3456,"title":{},"body":{"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"modules/ManagementModule.html":{},"classes/ServerConsole.html":{},"classes/TestBootstrapConsole.html":{}}}],["shared/infra/console/console",{"_index":7664,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["shared/infra/database",{"_index":10321,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/database/mongo",{"_index":10322,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{}}}],["shared/infra/encryption",{"_index":8636,"title":{},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"modules/KeycloakModule.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"modules/OauthModule.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["shared/infra/feathers",{"_index":1980,"title":{},"body":{"modules/AuthorizationModule.html":{},"injectables/FeathersAuthProvider.html":{},"modules/LessonModule.html":{}}}],["shared/infra/feathers/feathers",{"_index":8255,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["shared/infra/file",{"_index":11110,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"modules/ManagementModule.html":{}}}],["shared/infra/identity",{"_index":802,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"interfaces/IServerConfig.html":{},"injectables/LocalStrategy.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{}}}],["shared/infra/mail",{"_index":17782,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/metrics",{"_index":16250,"title":{},"body":{"classes/PrometheusMetricsSetupStateLoggable.html":{}}}],["shared/infra/oauth",{"_index":8635,"title":{},"body":{"modules/ExternalToolModule.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{}}}],["shared/infra/rabbitmq",{"_index":8206,"title":{},"body":{"classes/ErrorMapper.html":{},"classes/FileDto-1.html":{},"classes/FileRecordFactory.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/rabbitmq/rabbitmq.module",{"_index":10256,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{}}}],["shared/infra/rabbitmq/rpc",{"_index":10186,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{}}}],["shared/infra/redis",{"_index":17783,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["shared/infra/s3",{"_index":9918,"title":{},"body":{"classes/FileResponseBuilder.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/IFileStorageConfig.html":{},"injectables/PreviewService.html":{},"classes/TestHelper.html":{}}}],["shared/pipes",{"_index":22620,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/repo",{"_index":450,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/AccountValidationService.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoAuthorizableService.html":{},"modules/BoardModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/FederalStateService.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"injectables/HydraSsoService.html":{},"interfaces/IRepoLoader.html":{},"injectables/IdTokenService.html":{},"modules/ImportUserModule.html":{},"injectables/LdapStrategy.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/LocalStrategy.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolService.html":{},"injectables/MigrationCheckService.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"modules/OauthModule.html":{},"modules/OauthProviderModule.html":{},"injectables/ReferenceLoader.html":{},"modules/RoleModule.html":{},"injectables/RoleService.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/SubmissionService.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"injectables/TeamService.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"injectables/UserDORepo.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{},"modules/UserModule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["shared/repo/base.do.repo",{"_index":14347,"title":{},"body":{"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["shared/repo/base.repo",{"_index":919,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/FilesRepo.html":{},"injectables/ImportUserRepo.html":{},"injectables/NewsRepo.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SystemRepo.html":{},"injectables/UserRepo.html":{}}}],["shared/repo/ltitool",{"_index":4559,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/NextcloudStrategy.html":{}}}],["shared/repo/scope",{"_index":9060,"title":{},"body":{"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["shared/repo/storageprovider",{"_index":7822,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{}}}],["shared/repo/system/system",{"_index":18676,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["shared/repo/types/storageproviderencryptedstring.type",{"_index":11779,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["shared/repo/user/user",{"_index":20679,"title":{},"body":{"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["shared/repo/videoconference/video",{"_index":21155,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["shared/testing",{"_index":3499,"title":{},"body":{"injectables/BoardManagementUc.html":{},"classes/ClassFactory.html":{}}}],["shared/testing/factory/base.factory",{"_index":4328,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/LtiToolFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/role.factory",{"_index":19379,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/school.factory",{"_index":19376,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/testing/factory/teamuser.factory",{"_index":19271,"title":{},"body":{"classes/TeamFactory.html":{}}}],["shared/testing/factory/user.factory",{"_index":19377,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["shared/types",{"_index":14644,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{}}}],["shared/utils",{"_index":22596,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators",{"_index":22614,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["shared/validators/text.validator.ts",{"_index":22599,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sharetoken",{"_index":6368,"title":{"entities/ShareToken.html":{}},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetoken(props",{"_index":17998,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["sharetoken.context",{"_index":18095,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.expiresat",{"_index":18018,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{}}}],["sharetoken.payload",{"_index":18017,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetoken.payload.parentid",{"_index":18098,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetoken.payload.parenttype",{"_index":18045,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetoken.token",{"_index":18016,"title":{},"body":{"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenbodyparams",{"_index":17862,"title":{"classes/ShareTokenBodyParams.html":{}},"body":{"classes/ShareTokenBodyParams.html":{},"controllers/ShareTokenController.html":{}}}],["sharetokencontext",{"_index":17934,"title":{},"body":{"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype",{"_index":11767,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttype.school",{"_index":18086,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper",{"_index":17878,"title":{"classes/ShareTokenContextTypeMapper.html":{}},"body":{"classes/ShareTokenContextTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokencontexttypemapper.maptoallowedauthorizationentitytype(context.contexttype",{"_index":18108,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokencontroller",{"_index":17881,"title":{"controllers/ShareTokenController.html":{}},"body":{"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokendo",{"_index":17930,"title":{"classes/ShareTokenDO.html":{}},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenfactory",{"_index":17944,"title":{"classes/ShareTokenFactory.html":{}},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenfactory.define",{"_index":17952,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["sharetokenimportbodyparams",{"_index":17895,"title":{"classes/ShareTokenImportBodyParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenImportBodyParams.html":{}}}],["sharetokeninfo",{"_index":17922,"title":{},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninfo.parentname",{"_index":17973,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.parenttype",{"_index":17972,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfo.token",{"_index":17971,"title":{},"body":{"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninfodto",{"_index":17959,"title":{"interfaces/ShareTokenInfoDto.html":{}},"body":{"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokeninforesponse",{"_index":17910,"title":{"classes/ShareTokenInfoResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper",{"_index":17907,"title":{"classes/ShareTokenInfoResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenInfoResponseMapper.html":{}}}],["sharetokeninforesponsemapper.maptoresponse(sharetokeninfo",{"_index":17925,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokeninforesponse})@apiresponse({status",{"_index":17904,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenparenttype",{"_index":11768,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"classes/MetadataTypeMapper.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.course",{"_index":17953,"title":{},"body":{"classes/ShareTokenFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.lesson",{"_index":18047,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttype.task",{"_index":18049,"title":{},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper",{"_index":17974,"title":{"classes/ShareTokenParentTypeMapper.html":{}},"body":{"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(parenttype",{"_index":18110,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenparenttypemapper.maptoallowedauthorizationentitytype(payload.parenttype",{"_index":18104,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["sharetokenpayload",{"_index":17936,"title":{},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["sharetokenpayloadresponse",{"_index":17978,"title":{"classes/ShareTokenPayloadResponse.html":{}},"body":{"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["sharetokenpayloadresponse(payload",{"_index":18014,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["sharetokenrepo",{"_index":17986,"title":{"injectables/ShareTokenRepo.html":{}},"body":{"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenresponse",{"_index":17911,"title":{"classes/ShareTokenResponse.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper",{"_index":17908,"title":{"classes/ShareTokenResponseMapper.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenResponseMapper.html":{}}}],["sharetokenresponsemapper.maptoresponse(sharetoken",{"_index":17919,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokenresponse})@apiresponse({status",{"_index":17890,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["sharetokens",{"_index":9566,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["sharetokenservice",{"_index":18019,"title":{"injectables/ShareTokenService.html":{}},"body":{"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenstring",{"_index":11769,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/TokenGenerator.html":{}}}],["sharetokenuc",{"_index":17909,"title":{"injectables/ShareTokenUC.html":{}},"body":{"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["sharetokenurlparams",{"_index":17894,"title":{"classes/ShareTokenUrlParams.html":{}},"body":{"controllers/ShareTokenController.html":{},"classes/ShareTokenUrlParams.html":{}}}],["sharingapimodule",{"_index":17769,"title":{"modules/SharingApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["sharingmodule",{"_index":18123,"title":{"modules/SharingModule.html":{}},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules.html":{}}}],["shit",{"_index":6412,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["short",{"_index":6702,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["shorter",{"_index":22890,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["shortid",{"_index":21431,"title":{},"body":{"dependencies.html":{}}}],["shorttitle",{"_index":6471,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IGridElement.html":{}}}],["shouldincrementversion",{"_index":9302,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["shouldskipconsent",{"_index":15595,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldskipconsent(tool",{"_index":15603,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["shouldusermigrate",{"_index":14462,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{}}}],["shouldusermigrate(externaluserid",{"_index":14465,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["show",{"_index":14805,"title":{},"body":{"injectables/NewsUc.html":{},"controllers/SystemController.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["show_outdated_users",{"_index":11707,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["showoutdatedusers",{"_index":11708,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["sid",{"_index":14139,"title":{},"body":{"classes/LoginResponse-1.html":{}}}],["side",{"_index":2299,"title":{},"body":{"injectables/BBBService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sideeffects",{"_index":23150,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["sign",{"_index":14163,"title":{},"body":{"injectables/Lti11EncryptionService.html":{},"license.html":{}}}],["sign(key",{"_index":14164,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["signalgorithm",{"_index":1685,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signature_method",{"_index":14171,"title":{},"body":{"injectables/Lti11EncryptionService.html":{}}}],["signedpayload",{"_index":14255,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["significant",{"_index":21971,"title":{},"body":{"license.html":{}}}],["signing",{"_index":1684,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["signoptions",{"_index":1647,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["similar",{"_index":21730,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["simple",{"_index":22478,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["simplicity",{"_index":22321,"title":{},"body":{"todo.html":{}}}],["simplification",{"_index":22560,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["simplify",{"_index":22757,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["simply",{"_index":21628,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["simultaneously",{"_index":22161,"title":{},"body":{"license.html":{}}}],["sind",{"_index":4789,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["single",{"_index":3262,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/ElementController.html":{},"classes/GlobalValidationPipe.html":{},"injectables/NewsUc.html":{},"interfaces/Options.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["single(bn",{"_index":3271,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single(boardnode",{"_index":3272,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["single:latestdocker",{"_index":22947,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["single:latestthe",{"_index":22948,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["singlecolumnboardresponse",{"_index":16885,"title":{"classes/SingleColumnBoardResponse.html":{}},"body":{"injectables/RoomBoardResponseMapper.html":{},"controllers/RoomsController.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["singlefileparams",{"_index":6135,"title":{"classes/SingleFileParams.html":{}},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageMapper.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["singlevaluetoarraytransformer",{"_index":10348,"title":{},"body":{"classes/FilterImportUserParams.html":{},"miscellaneous/functions.html":{}}}],["situations",{"_index":23029,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["six",{"_index":9978,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["size",{"_index":1015,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/DeleteFilesConsole.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolSearchListResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/PaginationResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{}}}],["sizetype",{"_index":7435,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["skeleton",{"_index":2944,"title":{},"body":{"controllers/BoardController.html":{}}}],["skeleton.response",{"_index":4893,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["skeleton.response.ts",{"_index":4162,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:12",{"_index":4164,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:18",{"_index":4173,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skeleton.response.ts:3",{"_index":4163,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["skip",{"_index":70,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ConsentResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageMapper.html":{},"interfaces/IFindOptions.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IPagination.html":{},"interfaces/IRetryOptions.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"classes/LoginResponse-1.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{}}}],["skipconsent",{"_index":6989,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["skipped",{"_index":1020,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/GlobalValidationPipe.html":{},"classes/ImportUserListResponse.html":{},"classes/NewsListResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{}}}],["slash",{"_index":22313,"title":{},"body":{"todo.html":{}}}],["slow",{"_index":11200,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["small",{"_index":22470,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sn",{"_index":11912,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["socketio",{"_index":21459,"title":{},"body":{"dependencies.html":{}}}],["software",{"_index":21667,"title":{"additional-documentation/nestjs-application/software-architecture.html":{}},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sold",{"_index":21958,"title":{},"body":{"license.html":{}}}],["sole",{"_index":21829,"title":{},"body":{"license.html":{}}}],["solely",{"_index":21837,"title":{},"body":{"license.html":{}}}],["solution",{"_index":3103,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["solutions",{"_index":22244,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["solve",{"_index":19054,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["somemethod",{"_index":22680,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["someotherservice",{"_index":22534,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["something",{"_index":12133,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["sometimes",{"_index":23128,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sonstige",{"_index":17228,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{}}}],["sonstige_gruppenzugehoerige",{"_index":17226,"title":{},"body":{"interfaces/SanisGruppenResponse.html":{}}}],["soon",{"_index":23038,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sort",{"_index":9181,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sort((a",{"_index":17319,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["sort.id",{"_index":9182,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{},"injectables/UserDORepo.html":{}}}],["sort.name",{"_index":9183,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sort.params.ts",{"_index":18142,"title":{},"body":{"classes/SortExternalToolParams.html":{}}}],["sortby",{"_index":3032,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortby(resolved",{"_index":3087,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder",{"_index":2991,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbyoriginalorder(resolved",{"_index":3016,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos",{"_index":3086,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortbypos.map",{"_index":3088,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["sortedbsondocuments",{"_index":11217,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["sortedchildren",{"_index":3253,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["sortexternaltoolparams",{"_index":8924,"title":{"classes/SortExternalToolParams.html":{}},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/SortExternalToolParams.html":{},"controllers/ToolController.html":{}}}],["sortimportuserparams",{"_index":12275,"title":{"classes/SortImportUserParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/SortImportUserParams.html":{}}}],["sorting",{"_index":18972,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["sorting.mapper.ts",{"_index":9177,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.mapper.ts:7",{"_index":9180,"title":{},"body":{"classes/ExternalToolSortingMapper.html":{}}}],["sorting.ts",{"_index":22281,"title":{},"body":{"todo.html":{}}}],["sortingparams",{"_index":18143,"title":{"classes/SortingParams.html":{}},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{}}}],["sortingparams:14",{"_index":18146,"title":{},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingparams:18",{"_index":18148,"title":{},"body":{"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{}}}],["sortingquery",{"_index":8926,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"controllers/ToolController.html":{}}}],["sortingquery.sortorder",{"_index":8981,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ImportUserMapper.html":{}}}],["sortorder",{"_index":6844,"title":{},"body":{"injectables/CourseUc.html":{},"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"injectables/LessonRepo.html":{},"injectables/NewsUc.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.asc",{"_index":7633,"title":{},"body":{"injectables/DashboardUc.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FileRecordRepo.html":{},"injectables/LessonRepo.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["sortorder.desc",{"_index":6845,"title":{},"body":{"injectables/CourseUc.html":{},"injectables/FileRecordRepo.html":{},"injectables/NewsUc.html":{},"injectables/TaskUC.html":{},"injectables/UserRepo.html":{}}}],["sortordermap",{"_index":8927,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IFindOptions.html":{},"interfaces/IPagination.html":{},"classes/ImportUserMapper.html":{},"injectables/UserDORepo.html":{}}}],["sortreferences",{"_index":7322,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["source",{"_index":4,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"modules/AccountApiModule.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"modules/AuthenticationApiModule.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizableObject.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"modules/AuthorizationModule.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"modules/BoardApiModule.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"modules/BoardModule.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"modules/CalendarModule.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"modules/ClassModule.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"modules/CommonToolModule.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"modules/CopyHelperModule.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"modules/CoreModule.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/DatabaseManagementModule.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"modules/ErrorModule.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{},"classes/FileUrlParams.html":{},"modules/FilesModule.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"modules/GroupApiModule.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"modules/GroupModule.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICoreModuleConfig.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"modules/IdentityManagementModule.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"modules/InterceptorModule.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtAuthGuard.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"modules/KeycloakAdministrationModule.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"modules/KeycloakConfigurationModule.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LegacyLogger.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"modules/LessonModule.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"interfaces/Loggable.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"modules/LtiToolModule.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"modules/OauthProviderServiceModule.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"modules/PseudonymModule.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"modules/RoleModule.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"modules/SystemModule.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"modules/TaskApiModule.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/TokenGenerator.html":{},"classes/TokenRequestMapper.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"interfaces/ToolVersion.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"modules/UserApiModule.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"modules/ValidationModule.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"license.html":{}}}],["source.entity",{"_index":10656,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["source.entity.ts",{"_index":8313,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{}}}],["source.entity.ts:13",{"_index":8316,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.entity.ts:16",{"_index":8315,"title":{},"body":{"classes/ExternalSourceEntity.html":{}}}],["source.person.name.familienname",{"_index":17306,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.person.name.vorname",{"_index":17305,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].gruppen",{"_index":17310,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].id",{"_index":17317,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.id.tostring",{"_index":17304,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.kennung.replace",{"_index":17301,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.personenkontexte[0].organisation.name",{"_index":17303,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.pid",{"_index":17308,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["source.ts",{"_index":8308,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:2",{"_index":8310,"title":{},"body":{"classes/ExternalSource.html":{}}}],["source.ts:4",{"_index":8309,"title":{},"body":{"classes/ExternalSource.html":{}}}],["sourcecode",{"_index":22566,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["sourcedescription",{"_index":6729,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["sourceexternalid",{"_index":17617,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["sourcefile",{"_index":21534,"title":{},"body":{"miscellaneous/functions.html":{}}}],["sourcefilerecordid",{"_index":21537,"title":{},"body":{"miscellaneous/functions.html":{}}}],["sourceid",{"_index":6067,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"injectables/CopyFilesService.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"injectables/UserMigrationService.html":{}}}],["sourceoptions",{"_index":4234,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["sourceparent",{"_index":3386,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourceparent.removechild(child",{"_index":3388,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["sourcepath",{"_index":6160,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["sources",{"_index":22378,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sourceschoolnumber",{"_index":20525,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["sourcesystem",{"_index":16034,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemid",{"_index":20340,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl",{"_index":20637,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcesystemloginurl.tostring",{"_index":20640,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["sourcetype",{"_index":14658,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["space",{"_index":745,"title":{},"body":{"classes/AccountFactory.html":{},"classes/OauthClientBody.html":{}}}],["spalten",{"_index":4759,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["spare",{"_index":21920,"title":{},"body":{"license.html":{}}}],["sparse",{"_index":6426,"title":{},"body":{"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"interfaces/ICourseProperties.html":{},"entities/LtiTool.html":{}}}],["speak",{"_index":21692,"title":{},"body":{"license.html":{}}}],["spec.ts",{"_index":22401,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["special",{"_index":21998,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["specialized",{"_index":22468,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specific",{"_index":1295,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BoardElementResponse.html":{},"controllers/CollaborativeStorageController.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FilterNewsParams.html":{},"classes/IdentityManagementService.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SingleColumnBoardResponse.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["specifically",{"_index":21679,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["specification",{"_index":22639,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specifications",{"_index":22699,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["specified",{"_index":4639,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/GuardAgainst.html":{},"license.html":{}}}],["specifies",{"_index":19794,"title":{},"body":{"classes/ToolLaunchRequestResponse.html":{},"license.html":{}}}],["specify",{"_index":22185,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["spies",{"_index":22816,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["spirit",{"_index":22177,"title":{},"body":{"license.html":{}}}],["split",{"_index":13625,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["splitting",{"_index":23134,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["sql",{"_index":961,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["squashed",{"_index":22898,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["src",{"_index":22565,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["src/config",{"_index":10262,"title":{},"body":{"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/core",{"_index":10092,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IServerConfig.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/core/error/dto/error.response",{"_index":3883,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/interface",{"_index":3884,"title":{},"body":{"classes/BusinessError.html":{}}}],["src/core/error/loggable/error.loggable",{"_index":13332,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["src/core/error/utils",{"_index":1441,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"classes/ErrorMapper.html":{},"injectables/LdapService.html":{},"injectables/S3ClientAdapter.html":{}}}],["src/core/logger",{"_index":1545,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"injectables/BaseDORepo.html":{},"modules/BoardApiModule.html":{},"injectables/BoardCopyService.html":{},"modules/BoardModule.html":{},"injectables/BoardUc.html":{},"modules/CacheWrapperModule.html":{},"injectables/CardUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolUc.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/DurationLoggingInterceptor.html":{},"injectables/ElementUc.html":{},"modules/EncryptionModule.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolRepo.html":{},"injectables/ExternalToolService.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/IdTokenCreationLoggableException.html":{},"modules/ImportUserModule.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"modules/KeycloakModule.html":{},"classes/LdapAlreadyPersistedException.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"modules/LessonModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsMapper.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"modules/UserLoginMigrationApiModule.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"modules/UserLoginMigrationModule.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["src/core/logger/interfaces",{"_index":10371,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/core/logger/logger.module",{"_index":825,"title":{},"body":{"modules/AccountModule.html":{}}}],["src/core/logger/logging.utils",{"_index":10490,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["src/core/logger/types",{"_index":10372,"title":{},"body":{"classes/ForbiddenLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{}}}],["src/imports",{"_index":12732,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["src/modules",{"_index":11749,"title":{},"body":{"interfaces/IServerConfig.html":{},"modules/KeycloakConfigurationModule.html":{}}}],["src/modules/account",{"_index":1642,"title":{},"body":{"modules/AuthenticationModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{}}}],["src/modules/account/account",{"_index":17784,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/account/account.module",{"_index":16308,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["src/modules/account/services/account.service",{"_index":1807,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["src/modules/account/services/dto",{"_index":1808,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{}}}],["src/modules/account/services/dto/account.dto",{"_index":981,"title":{},"body":{"classes/AccountResponseMapper.html":{}}}],["src/modules/authentication",{"_index":559,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserService.html":{},"controllers/VideoConferenceController.html":{}}}],["src/modules/authentication/authentication",{"_index":17785,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/authentication/authentication.module",{"_index":10099,"title":{},"body":{"modules/FilesStorageApiModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/OauthApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{}}}],["src/modules/authentication/decorator/auth.decorator",{"_index":557,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/FwuLearningContentsController.html":{},"controllers/H5PEditorController.html":{},"controllers/ImportUserController.html":{},"controllers/LegacySchoolController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/OauthProviderController.html":{},"controllers/OauthSSOController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["src/modules/authentication/interface",{"_index":21026,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["src/modules/authentication/interface/user",{"_index":16681,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserResponse.html":{}}}],["src/modules/authentication/mapper",{"_index":20792,"title":{},"body":{"injectables/UserService.html":{}}}],["src/modules/authentication/services/authentication.service",{"_index":15823,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/authentication/strategy/jwt",{"_index":1809,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["src/modules/authorization",{"_index":2767,"title":{},"body":{"modules/BoardApiModule.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"modules/CommonToolModule.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"modules/ContextExternalToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{},"modules/FilesStorageApiModule.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/GroupService.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.html":{},"modules/LessonApiModule.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonUC.html":{},"modules/NewsModule.html":{},"injectables/NewsUc.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceMapper.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["src/modules/authorization/authorization.helper",{"_index":3358,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["src/modules/authorization/authorization.service",{"_index":3803,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"classes/DtoCreator.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["src/modules/authorization/types",{"_index":3359,"title":{},"body":{"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextTypeMapper.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/TeamRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{}}}],["src/modules/authorization/types/action.enum",{"_index":3804,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/SubmissionItemUc.html":{}}}],["src/modules/board",{"_index":4840,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{},"modules/LearnroomModule.html":{},"injectables/RoomsService.html":{}}}],["src/modules/board/board",{"_index":17786,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/board/service",{"_index":11634,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["src/modules/class/entity",{"_index":4329,"title":{},"body":{"classes/ClassEntityFactory.html":{}}}],["src/modules/collaborative",{"_index":4510,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/copy",{"_index":3026,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"modules/FilesStorageClientModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"modules/LessonModule.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"injectables/ShareTokenUC.html":{},"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{}}}],["src/modules/database",{"_index":22849,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["src/modules/files",{"_index":1444,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/BoardCopyService.html":{},"classes/FileRecordFactory.html":{},"injectables/LessonCopyService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["src/modules/files/entity",{"_index":17758,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["src/modules/group",{"_index":8280,"title":{},"body":{"classes/ExternalGroupDto.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/SanisResponseMapper.html":{}}}],["src/modules/group/group",{"_index":17787,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/learnroom",{"_index":18079,"title":{},"body":{"injectables/ShareTokenUC.html":{},"modules/ToolLaunchModule.html":{}}}],["src/modules/learnroom/common",{"_index":11750,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["src/modules/learnroom/controller/dto/lesson/lesson",{"_index":6296,"title":{},"body":{"classes/CopyMapper.html":{}}}],["src/modules/learnroom/learnroom",{"_index":17788,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/learnroom/service",{"_index":190,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/VideoConferenceService.html":{}}}],["src/modules/learnroom/types",{"_index":3411,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["src/modules/legacy",{"_index":191,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"modules/AuthorizationModule.html":{},"modules/CommonToolModule.html":{},"modules/ImportUserModule.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"injectables/ToolPermissionHelper.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["src/modules/lesson",{"_index":13378,"title":{},"body":{"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LessonCopyUC.html":{}}}],["src/modules/lesson/lesson",{"_index":17789,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/lesson/service",{"_index":3030,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["src/modules/lesson/types",{"_index":6298,"title":{},"body":{"classes/CopyMapper.html":{}}}],["src/modules/lti",{"_index":15584,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{}}}],["src/modules/management/management.module",{"_index":17759,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["src/modules/management/uc/database",{"_index":19441,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["src/modules/news",{"_index":17790,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/oauth",{"_index":349,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/oauth/controller/dto/authorization.params",{"_index":11023,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["src/modules/oauth/controller/dto/user",{"_index":15726,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["src/modules/oauth/error/oauth",{"_index":12625,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["src/modules/oauth/oauth",{"_index":17791,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/oauth/oauth.module",{"_index":1643,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["src/modules/oauth/service/dto/cookies.dto",{"_index":10991,"title":{},"body":{"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{}}}],["src/modules/oauth/service/dto/hydra.redirect.dto",{"_index":10949,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{}}}],["src/modules/oauth/service/oauth.service",{"_index":15157,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/oauth/uc/hydra",{"_index":15728,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["src/modules/provisioning",{"_index":15070,"title":{},"body":{"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/provisioning/dto",{"_index":15071,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["src/modules/pseudonym",{"_index":4560,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolLaunchModule.html":{}}}],["src/modules/pseudonym/service",{"_index":15606,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["src/modules/rocketchat",{"_index":17792,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/role",{"_index":1644,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{}}}],["src/modules/role/role.module",{"_index":4615,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/UserModule.html":{}}}],["src/modules/role/service/dto/role.dto",{"_index":4518,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/OidcProvisioningService.html":{},"classes/RoleMapper.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["src/modules/role/service/role.service",{"_index":4644,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"modules/RoleModule.html":{},"injectables/RoleUc.html":{},"injectables/UserService.html":{}}}],["src/modules/role/uc/role.uc",{"_index":16822,"title":{},"body":{"modules/RoleModule.html":{}}}],["src/modules/server",{"_index":1810,"title":{},"body":{"injectables/AuthenticationService.html":{},"modules/ManagementModule.html":{},"modules/ServerConsoleModule.html":{}}}],["src/modules/server/server.config",{"_index":805,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/KeycloakConfigurationService.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/TaskController.html":{}}}],["src/modules/sharing/domainobject/share",{"_index":17950,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["src/modules/sharing/sharing.module",{"_index":17793,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/system",{"_index":1645,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{}}}],["src/modules/system/controller/dto/oauth",{"_index":16464,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["src/modules/system/controller/dto/system.filter.params",{"_index":18546,"title":{},"body":{"controllers/SystemController.html":{}}}],["src/modules/system/controller/system.controller",{"_index":18529,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["src/modules/system/mapper/system",{"_index":18661,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["src/modules/system/mapper/system.mapper",{"_index":18713,"title":{},"body":{"injectables/SystemService.html":{}}}],["src/modules/system/service",{"_index":12900,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OAuthService.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/UserMigrationService.html":{}}}],["src/modules/system/service/dto",{"_index":12203,"title":{},"body":{"classes/IdentityManagementOauthService.html":{}}}],["src/modules/system/service/dto/oauth",{"_index":18577,"title":{},"body":{"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["src/modules/system/service/dto/oidc",{"_index":18650,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["src/modules/system/service/dto/system.dto",{"_index":15824,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["src/modules/system/service/system",{"_index":12901,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["src/modules/system/service/system.service",{"_index":18640,"title":{},"body":{"modules/SystemModule.html":{},"injectables/SystemUc.html":{}}}],["src/modules/system/system",{"_index":17794,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/system/system.module",{"_index":16309,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["src/modules/system/uc/system.uc",{"_index":18530,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["src/modules/task",{"_index":13392,"title":{},"body":{"modules/LearnroomModule.html":{},"modules/LessonModule.html":{}}}],["src/modules/task/controller/dto/task",{"_index":6299,"title":{},"body":{"classes/CopyMapper.html":{}}}],["src/modules/task/service",{"_index":3031,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{}}}],["src/modules/task/service/task",{"_index":13723,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["src/modules/task/task",{"_index":17795,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/task/types",{"_index":6300,"title":{},"body":{"classes/CopyMapper.html":{}}}],["src/modules/teams/teams",{"_index":17801,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/teams/teams.module",{"_index":19388,"title":{},"body":{"modules/TeamsApiModule.html":{}}}],["src/modules/tool",{"_index":1982,"title":{},"body":{"modules/AuthorizationModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{}}}],["src/modules/tool/common/domain",{"_index":5702,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["src/modules/tool/common/entity",{"_index":8837,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["src/modules/tool/common/enum",{"_index":5703,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolScope.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["src/modules/tool/common/enum/tool",{"_index":5776,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["src/modules/tool/common/interface",{"_index":8785,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["src/modules/tool/context",{"_index":5704,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["src/modules/tool/external",{"_index":7127,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["src/modules/tool/school",{"_index":5779,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{}}}],["src/modules/tool/tool",{"_index":15585,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{},"modules/OauthProviderModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/user",{"_index":4561,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"modules/LegacySchoolApiModule.html":{},"injectables/LegacySchoolUc.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"modules/ProvisioningModule.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMigrationMapper.html":{},"injectables/UserMigrationService.html":{},"modules/VideoConferenceApiModule.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["src/modules/user/service/user",{"_index":20095,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["src/modules/user/uc/dto/user.dto",{"_index":20539,"title":{},"body":{"classes/UserMapper.html":{}}}],["src/modules/user/user",{"_index":17797,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["src/modules/video",{"_index":17798,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["src/shared/domain/entity/lesson.entity",{"_index":4966,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["src/shared/domain/types",{"_index":20623,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["src/shared/infra/rabbitmq",{"_index":10190,"title":{},"body":{"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{}}}],["sso",{"_index":15027,"title":{},"body":{"classes/OAuthSSOError.html":{},"controllers/OauthSSOController.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["sso.controller",{"_index":15235,"title":{},"body":{"modules/OauthApiModule.html":{}}}],["sso.controller.ts",{"_index":15691,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:120",{"_index":15724,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:153",{"_index":15709,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:163",{"_index":15719,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:184",{"_index":15714,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:48",{"_index":15700,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:66",{"_index":15716,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:84",{"_index":15721,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.controller.ts:99",{"_index":15705,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["sso.error",{"_index":10952,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/OAuthMigrationError.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso.error.ts",{"_index":15024,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:11",{"_index":15025,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:5",{"_index":15030,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:7",{"_index":15029,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso.error.ts:9",{"_index":15028,"title":{},"body":{"classes/OAuthSSOError.html":{}}}],["sso_auth_code_step",{"_index":10957,"title":{},"body":{"injectables/HydraOauthUc.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{}}}],["sso_internal_error",{"_index":15082,"title":{},"body":{"injectables/OAuthService.html":{}}}],["sso_jwt_problem",{"_index":12633,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcMockProvisioningStrategy.html":{}}}],["sso_user_not_found_after_provisioning",{"_index":20689,"title":{},"body":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["sso_user_notfound",{"_index":12640,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["ssoauthenticationerror",{"_index":2001,"title":{},"body":{"classes/AuthorizationParams.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["ssoerror",{"_index":15743,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerror.errorcode",{"_index":15749,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["ssoerrorcode",{"_index":15031,"title":{},"body":{"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_jwt_problem",{"_index":15108,"title":{},"body":{"injectables/OAuthService.html":{}}}],["ssoerrorcode.sso_oauth_login_failed",{"_index":15026,"title":{},"body":{"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["ssologinquery",{"_index":15703,"title":{"classes/SSOLoginQuery.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/SSOLoginQuery.html":{}}}],["stack",{"_index":8537,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["stand",{"_index":4772,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["standard",{"_index":21791,"title":{},"body":{"license.html":{}}}],["standards",{"_index":21793,"title":{},"body":{"license.html":{}}}],["start",{"_index":1021,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/DeleteFilesConsole.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/ImportUserListResponse.html":{},"injectables/KeycloakMigrationService.html":{},"classes/ListOauthClientsParams.html":{},"classes/NewsListResponse.html":{},"classes/PaginationResponse.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/TaskListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["start(req",{"_index":20908,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["start.loggable.ts",{"_index":17574,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:11",{"_index":17576,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["start.loggable.ts:4",{"_index":17575,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["start.loggable.ts:7",{"_index":20493,"title":{},"body":{"classes/UserLoginMigrationStartLoggable.html":{}}}],["startdate",{"_index":6369,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"classes/UserScope.html":{}}}],["started",{"_index":1555,"title":{"index.html":{},"license.html":{},"todo.html":{}},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/OauthUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["startedat",{"_index":20214,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startet",{"_index":23125,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["starting",{"_index":21602,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["startmigration",{"_index":18161,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationService.html":{}}}],["startmigration(@currentuser",{"_index":20322,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(currentuser",{"_index":20295,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["startmigration(schoolid",{"_index":20460,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["startmigration(userid",{"_index":18164,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["startoauthauthorizationcodeflow",{"_index":15698,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthauthorizationcodeflow(session",{"_index":15722,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["startoauthlogin",{"_index":15811,"title":{},"body":{"injectables/OauthUc.html":{}}}],["startoauthlogin(session",{"_index":15821,"title":{},"body":{"injectables/OauthUc.html":{}}}],["starts",{"_index":14084,"title":{},"body":{"controllers/LoginController.html":{},"additional-documentation/nestjs-application.html":{}}}],["startschoolinusermigration",{"_index":12269,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["startschoolinusermigration(currentuser",{"_index":12291,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["starttime",{"_index":2268,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{},"injectables/SchoolMigrationService.html":{}}}],["startup",{"_index":22956,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["startuserloginmigrationuc",{"_index":18158,"title":{"injectables/StartUserLoginMigrationUc.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["state",{"_index":460,"title":{},"body":{"classes/AccountByIdBodyParams.html":{},"classes/AuthorizationParams.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"injectables/HydraSsoService.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"injectables/OAuthService.html":{},"classes/OauthLoginStateDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["state.dto",{"_index":15386,"title":{},"body":{"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["state.dto.ts",{"_index":15368,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:10",{"_index":15370,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:12",{"_index":15369,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:4",{"_index":15372,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:6",{"_index":15373,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.dto.ts:8",{"_index":15371,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["state.entity",{"_index":11700,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["state.entity.ts",{"_index":6342,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["state.entity.ts:14",{"_index":6346,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:21",{"_index":6349,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:23",{"_index":6348,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:25",{"_index":6347,"title":{},"body":{"classes/County.html":{}}}],["state.entity.ts:31",{"_index":9457,"title":{},"body":{"entities/FederalState.html":{}}}],["state.entity.ts:34",{"_index":9454,"title":{},"body":{"entities/FederalState.html":{}}}],["state.entity.ts:37",{"_index":9456,"title":{},"body":{"entities/FederalState.html":{}}}],["state.entity.ts:40",{"_index":9455,"title":{},"body":{"entities/FederalState.html":{}}}],["state.enum",{"_index":20861,"title":{},"body":{"classes/VideoConference-1.html":{},"classes/VideoConferenceJoin.html":{}}}],["state.factory",{"_index":13514,"title":{},"body":{"classes/LegacySchoolFactory.html":{}}}],["state.mapper",{"_index":15732,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["state.mapper.ts",{"_index":15380,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.mapper.ts:5",{"_index":15384,"title":{},"body":{"classes/OauthLoginStateMapper.html":{}}}],["state.repo.ts",{"_index":9460,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:12",{"_index":9461,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.repo.ts:8",{"_index":9462,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["state.response",{"_index":7881,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{}}}],["state.service.ts",{"_index":9467,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:10",{"_index":9472,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["state.service.ts:6",{"_index":9470,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["stated",{"_index":21822,"title":{},"body":{"license.html":{}}}],["statelessauthorizationparams",{"_index":15707,"title":{"classes/StatelessAuthorizationParams.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/StatelessAuthorizationParams.html":{}}}],["statemapping",{"_index":21140,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statemapping[state",{"_index":21147,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["statement",{"_index":22038,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["static",{"_index":627,"title":{},"body":{"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"classes/AccountResponseMapper.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/BaseFactory.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponseMapper.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/CardResponseMapper.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponseMapper.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextTypeMapper.html":{},"classes/CopyFileResponseBuilder.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyMapper.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMapper.html":{},"entities/CourseNews.html":{},"interfaces/CreateJwtParams.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"classes/DashboardMapper.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorMapper.html":{},"classes/ErrorUtils.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElementResponseMapper.html":{},"classes/FileParamBuilder.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordMapper.html":{},"classes/FileResponseBuilder.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/IGridElement.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IToolFeatures.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/IservMapper.html":{},"classes/JwtExtractor.html":{},"classes/JwtTestFactory.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LessonCopyService.html":{},"classes/LessonFactory.html":{},"classes/LoggingUtils.html":{},"classes/LoginResponseMapper.html":{},"classes/LtiRoleMapper.html":{},"classes/LtiToolFactory.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"classes/MetadataTypeMapper.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/ResolvedUserMapper.html":{},"classes/RichTextElementResponseMapper.html":{},"modules/RocketChatModule.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"modules/S3ClientModule.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolInfoMapper.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenResponseMapper.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/SubmissionMapper.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"classes/TargetInfoMapper.html":{},"classes/TaskFactory.html":{},"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamUserFactory.html":{},"classes/TestHelper.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolConfigurationMapper.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolReferenceMapper.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserInfoMapper.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserMapper.html":{},"classes/UserMatchMapper.html":{},"classes/UserMigrationMapper.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"additional-documentation/nestjs-application.html":{}}}],["stating",{"_index":21876,"title":{},"body":{"license.html":{}}}],["statistics_reporting=false",{"_index":23007,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["status",{"_index":564,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/AxiosResponseImp.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"controllers/CardController.html":{},"controllers/CollaborativeStorageController.html":{},"controllers/ColumnController.html":{},"classes/ConsentRequestBody.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"injectables/CourseCopyService.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DtoCreator.html":{},"controllers/ElementController.html":{},"classes/EntityNotFoundError.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolResponseMapper.html":{},"entities/FileRecord.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"classes/ForbiddenOperationError.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IError.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"classes/LdapConnectionError.html":{},"injectables/LessonCopyService.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"interfaces/Meta.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"interfaces/NextcloudGroups.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/OcsResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"interfaces/RpcMessage.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"controllers/ShareTokenController.html":{},"interfaces/SuccessfulRes.html":{},"controllers/SystemController.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/ValidationError.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"license.html":{}}}],["status.copyentity",{"_index":3044,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CopyHelperService.html":{}}}],["status.elements?.foreach((elementstatus",{"_index":6277,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.enum",{"_index":2107,"title":{},"body":{"interfaces/BBBBaseResponse.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["status.mapper",{"_index":18929,"title":{},"body":{"classes/TaskMapper.html":{}}}],["status.mapper.ts",{"_index":19151,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.mapper.ts:5",{"_index":19152,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["status.originalentity",{"_index":6280,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["status.response",{"_index":3728,"title":{},"body":{"classes/BoardTaskResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["status.response.ts",{"_index":3736,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:14",{"_index":19160,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:17",{"_index":19159,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:20",{"_index":19155,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:21",{"_index":3749,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:23",{"_index":19156,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:24",{"_index":3748,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:26",{"_index":19158,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:27",{"_index":3744,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:29",{"_index":19157,"title":{},"body":{"classes/TaskStatusResponse.html":{}}}],["status.response.ts:3",{"_index":3743,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["status.response.ts:30",{"_index":3745,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:33",{"_index":3747,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status.response.ts:36",{"_index":3746,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{}}}],["status_code",{"_index":5375,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"interfaces/RejectRequestBody.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["statuscode",{"_index":1293,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SuccessfulRes.html":{}}}],["statusdto",{"_index":18932,"title":{},"body":{"classes/TaskMapper.html":{}}}],["statuses",{"_index":3015,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statuses.foreach((status",{"_index":3072,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["statusmapping",{"_index":9022,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["statusmapping[schoolexternaltool.status",{"_index":17462,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["statusmapping[toolreference.status",{"_index":9050,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["statustext",{"_index":2064,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["stay",{"_index":22491,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["stemming",{"_index":11251,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["steps",{"_index":21704,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["stepsexample",{"_index":23061,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stepshow",{"_index":23073,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["stick",{"_index":22709,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["still",{"_index":6707,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["stop",{"_index":11249,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/TimeoutInterceptor.html":{}}}],["stopped",{"_index":16726,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["storage",{"_index":3543,"title":{},"body":{"modules/BoardModule.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"classes/CopyFileDto.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"injectables/CopyFilesService.html":{},"classes/ErrorMapper.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageClientModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFilesStorageClientConfig.html":{},"injectables/LessonCopyService.html":{},"modules/LessonModule.html":{},"injectables/LessonService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/RecursiveDeleteVisitor.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SubmissionService.html":{},"injectables/TaskCopyService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storage'})@apiresponse({status",{"_index":4578,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.adapter",{"_index":4562,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage.adapter.ts",{"_index":4479,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:15",{"_index":4495,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:30",{"_index":4503,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:40",{"_index":4509,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:49",{"_index":4501,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:58",{"_index":4498,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.adapter.ts:67",{"_index":4505,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage.app.ts",{"_index":21480,"title":{},"body":{"miscellaneous/functions.html":{}}}],["storage.config",{"_index":10263,"title":{},"body":{"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["storage.config.ts",{"_index":11405,"title":{},"body":{"interfaces/IFileStorageConfig.html":{}}}],["storage.const",{"_index":1446,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"controllers/FileSecurityController.html":{}}}],["storage.consumer.ts",{"_index":10167,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:13",{"_index":10171,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:29",{"_index":10177,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:46",{"_index":10181,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.consumer.ts:61",{"_index":10179,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage.controller",{"_index":4617,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage.controller.ts",{"_index":4570,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.controller.ts:33",{"_index":4584,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage.mapper.ts",{"_index":10203,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:15",{"_index":10211,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:33",{"_index":10215,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:39",{"_index":10209,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:49",{"_index":10213,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:53",{"_index":10212,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.mapper.ts:65",{"_index":10217,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage.module",{"_index":10093,"title":{},"body":{"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{}}}],["storage.module.ts",{"_index":4608,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"modules/FilesStorageModule.html":{}}}],["storage.params.ts",{"_index":6115,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["storage.params.ts:102",{"_index":6183,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:105",{"_index":6184,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.params.ts:11",{"_index":9834,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:112",{"_index":16126,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:117",{"_index":16128,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:125",{"_index":16124,"title":{},"body":{"classes/PreviewParams.html":{}}}],["storage.params.ts:15",{"_index":9831,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:19",{"_index":9833,"title":{},"body":{"classes/FileRecordParams.html":{}}}],["storage.params.ts:26",{"_index":10036,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:31",{"_index":10033,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:35",{"_index":10035,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["storage.params.ts:41",{"_index":9664,"title":{},"body":{"classes/FileParams.html":{}}}],["storage.params.ts:47",{"_index":7909,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:51",{"_index":7908,"title":{},"body":{"classes/DownloadFileParams.html":{}}}],["storage.params.ts:57",{"_index":17340,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:61",{"_index":17341,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:65",{"_index":17339,"title":{},"body":{"classes/ScanResultParams.html":{}}}],["storage.params.ts:71",{"_index":18141,"title":{},"body":{"classes/SingleFileParams.html":{}}}],["storage.params.ts:78",{"_index":16626,"title":{},"body":{"classes/RenameFileParams.html":{}}}],["storage.params.ts:84",{"_index":6182,"title":{},"body":{"classes/CopyFilesOfParentParams.html":{}}}],["storage.params.ts:90",{"_index":6121,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.params.ts:94",{"_index":6118,"title":{},"body":{"classes/CopyFileParams.html":{}}}],["storage.params.ts:99",{"_index":6185,"title":{},"body":{"classes/CopyFilesOfParentPayload.html":{}}}],["storage.producer",{"_index":10114,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{},"modules/FilesStorageClientModule.html":{}}}],["storage.producer.ts",{"_index":10280,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:20",{"_index":10283,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:31",{"_index":10287,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:43",{"_index":10293,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:55",{"_index":10291,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:69",{"_index":10285,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.producer.ts:77",{"_index":10290,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["storage.response.ts",{"_index":6078,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["storage.response.ts:22",{"_index":9878,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:26",{"_index":9880,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:29",{"_index":9881,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:32",{"_index":9886,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:35",{"_index":9884,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:38",{"_index":9885,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:41",{"_index":9876,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:44",{"_index":9879,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:47",{"_index":9882,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:50",{"_index":9883,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:53",{"_index":9877,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:56",{"_index":9802,"title":{},"body":{"classes/FileRecordListResponse.html":{}}}],["storage.response.ts:6",{"_index":9875,"title":{},"body":{"classes/FileRecordResponse.html":{}}}],["storage.response.ts:66",{"_index":6148,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:74",{"_index":6149,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:77",{"_index":6151,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:81",{"_index":6150,"title":{},"body":{"classes/CopyFileResponse.html":{}}}],["storage.response.ts:84",{"_index":6080,"title":{},"body":{"classes/CopyFileListResponse.html":{}}}],["storage.service",{"_index":4614,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"injectables/PreviewService.html":{}}}],["storage.service.ts",{"_index":4618,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:13",{"_index":4624,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:31",{"_index":4629,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:42",{"_index":4637,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:60",{"_index":4626,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:64",{"_index":4625,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.service.ts:68",{"_index":4633,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["storage.ts",{"_index":11360,"title":{},"body":{"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{}}}],["storage.uc",{"_index":4591,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage.uc.ts",{"_index":4660,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:21",{"_index":4670,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:34",{"_index":4666,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:38",{"_index":4665,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:42",{"_index":4667,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage.uc.ts:9",{"_index":4664,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage/collaborative",{"_index":4478,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{}}}],["storage/controller/collaborative",{"_index":4569,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["storage/controller/dto/file",{"_index":6077,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["storage/controller/dto/scan",{"_index":17334,"title":{},"body":{"classes/ScanResultDto.html":{}}}],["storage/controller/dto/team",{"_index":19301,"title":{},"body":{"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{}}}],["storage/controller/file",{"_index":9930,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["storage/controller/files",{"_index":10166,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["storage/dto/file.dto.ts",{"_index":9478,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:10",{"_index":9483,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:12",{"_index":9481,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:14",{"_index":9482,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/file.dto.ts:3",{"_index":9480,"title":{},"body":{"classes/FileDto.html":{}}}],["storage/dto/team",{"_index":19329,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["storage/entity",{"_index":9797,"title":{},"body":{"classes/FileRecordFactory.html":{},"modules/ServerConsoleModule.html":{}}}],["storage/entity/filerecord.entity.ts",{"_index":9689,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["storage/entity/filerecord.entity.ts:103",{"_index":9702,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:106",{"_index":9709,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:109",{"_index":9704,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:112",{"_index":9703,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:115",{"_index":9708,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:119",{"_index":9706,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:123",{"_index":9698,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:130",{"_index":9694,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:137",{"_index":9699,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:144",{"_index":9696,"title":{},"body":{"entities/FileRecord.html":{}}}],["storage/entity/filerecord.entity.ts:44",{"_index":9913,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:47",{"_index":9911,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:50",{"_index":9912,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:53",{"_index":9910,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/entity/filerecord.entity.ts:56",{"_index":9909,"title":{},"body":{"classes/FileRecordSecurityCheck.html":{}}}],["storage/files",{"_index":1445,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"interfaces/IFileStorageConfig.html":{}}}],["storage/helper",{"_index":3029,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["storage/helper/file",{"_index":21540,"title":{},"body":{"miscellaneous/functions.html":{}}}],["storage/helper/path.ts",{"_index":21531,"title":{},"body":{"miscellaneous/functions.html":{}}}],["storage/helper/promise.ts",{"_index":21579,"title":{},"body":{"miscellaneous/functions.html":{}}}],["storage/helper/test",{"_index":19453,"title":{},"body":{"classes/TestHelper.html":{}}}],["storage/interface/interfaces.ts",{"_index":10444,"title":{},"body":{"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{}}}],["storage/mapper/collaborative",{"_index":4516,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/mapper/copy",{"_index":6153,"title":{},"body":{"classes/CopyFileResponseBuilder.html":{}}}],["storage/mapper/file",{"_index":9496,"title":{},"body":{"classes/FileDtoBuilder.html":{},"classes/FileRecordMapper.html":{},"classes/FileResponseBuilder.html":{}}}],["storage/mapper/files",{"_index":10202,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["storage/mapper/team",{"_index":4610,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["storage/mapper/team.mapper",{"_index":4612,"title":{},"body":{"modules/CollaborativeStorageModule.html":{}}}],["storage/mapper/team.mapper.ts",{"_index":19276,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/mapper/team.mapper.ts:12",{"_index":19279,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["storage/repo/filerecord",{"_index":9887,"title":{},"body":{"classes/FileRecordScope.html":{}}}],["storage/repo/filerecord.repo.ts",{"_index":9836,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:13",{"_index":9857,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:20",{"_index":9859,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:27",{"_index":9849,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:34",{"_index":9851,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:45",{"_index":9853,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:56",{"_index":9855,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:65",{"_index":9847,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:81",{"_index":9861,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/repo/filerecord.repo.ts:9",{"_index":9862,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["storage/service/preview.service.ts",{"_index":16129,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:112",{"_index":16157,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:133",{"_index":16149,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:139",{"_index":16155,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:17",{"_index":16141,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:26",{"_index":16151,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:50",{"_index":16145,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:64",{"_index":16143,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:71",{"_index":16159,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:87",{"_index":16153,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/service/preview.service.ts:97",{"_index":16147,"title":{},"body":{"injectables/PreviewService.html":{}}}],["storage/services/collaborative",{"_index":4613,"title":{},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["storage/services/dto/team",{"_index":4511,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"classes/TeamPermissionsDto.html":{}}}],["storage/services/dto/team.dto",{"_index":4513,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/services/dto/team.dto.ts",{"_index":19253,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:11",{"_index":19258,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:13",{"_index":19256,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/services/dto/team.dto.ts:23",{"_index":19360,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:25",{"_index":19359,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:27",{"_index":19358,"title":{},"body":{"classes/TeamUserDto.html":{}}}],["storage/services/dto/team.dto.ts:9",{"_index":19257,"title":{},"body":{"classes/TeamDto.html":{}}}],["storage/strategy/base.interface.strategy",{"_index":4515,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["storage/strategy/base.interface.strategy.ts",{"_index":11099,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:12",{"_index":11106,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:14",{"_index":11103,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:16",{"_index":11102,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/base.interface.strategy.ts:18",{"_index":11104,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.client",{"_index":4557,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.interface.ts",{"_index":10743,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy",{"_index":4558,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts",{"_index":14875,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:129",{"_index":14901,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:158",{"_index":14888,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:172",{"_index":14887,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:192",{"_index":14890,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:202",{"_index":14894,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:21",{"_index":14881,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:38",{"_index":14897,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:59",{"_index":14885,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:75",{"_index":14882,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/strategy/nextcloud/nextcloud.strategy.ts:98",{"_index":14895,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["storage/uc/collaborative",{"_index":4659,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["storage:debug",{"_index":22389,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:dev",{"_index":22388,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storage:prod",{"_index":22390,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["storageclient",{"_index":10436,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{},"injectables/PreviewService.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["storagefilename",{"_index":7861,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageprovider",{"_index":7808,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"injectables/FilesRepo.html":{}}}],["storageprovider.accesskeyid",{"_index":7854,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageprovider.endpointurl",{"_index":7849,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.region",{"_index":7851,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["storageprovider.secretaccesskey",{"_index":7855,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"interfaces/ICollectionFilePath.html":{}}}],["storageproviderencryptedstringtype",{"_index":11778,"title":{"classes/StorageProviderEncryptedStringType.html":{}},"body":{"interfaces/IStorageProviderProperties.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviderentity",{"_index":7806,"title":{"entities/StorageProviderEntity.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{}}}],["storageproviderid",{"_index":9592,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["storageproviderrepo",{"_index":7803,"title":{"injectables/StorageProviderRepo.html":{}},"body":{"injectables/DeleteFilesUc.html":{},"modules/FilesModule.html":{},"injectables/StorageProviderRepo.html":{}}}],["storageproviders",{"_index":11116,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["storageproviders.foreach((storageprovider",{"_index":11291,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storageproviderscollectionname",{"_index":11115,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["storagestrategy",{"_index":4563,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["store",{"_index":3900,"title":{},"body":{"injectables/CacheService.html":{},"modules/CacheWrapperModule.html":{},"injectables/JwtValidationAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["store.getclient",{"_index":3919,"title":{},"body":{"modules/CacheWrapperModule.html":{}}}],["stored",{"_index":19873,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["strategies",{"_index":11101,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/ProvisioningService.html":{},"injectables/ToolLaunchService.html":{}}}],["strategy",{"_index":4485,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthDataStrategyInputDto.html":{},"modules/ProvisioningModule.html":{},"injectables/ProvisioningService.html":{},"injectables/ToolLaunchService.html":{},"todo.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["strategy.apply(oauthdata",{"_index":16348,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.createlaunchdata(userid",{"_index":19825,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.createlaunchrequest(toollaunchdata",{"_index":19821,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["strategy.getdata(input",{"_index":16344,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["strategy.interface",{"_index":213,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["strategy.interface.ts",{"_index":12092,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:6",{"_index":12093,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy.interface.ts:8",{"_index":12095,"title":{},"body":{"interfaces/IToolLaunchStrategy.html":{}}}],["strategy/jwt",{"_index":1653,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/jwt.strategy",{"_index":1655,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/ldap.strategy",{"_index":1656,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/local.strategy",{"_index":1657,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oauth2.strategy",{"_index":1658,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["strategy/oidc/service/oidc",{"_index":16311,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["strategy/sanis/response",{"_index":10704,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["strategy/sanis/sanis",{"_index":16312,"title":{},"body":{"modules/ProvisioningModule.html":{}}}],["stream",{"_index":6162,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"classes/FileDto.html":{},"classes/FileDtoBuilder.html":{},"classes/FileRecordFactory.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"interfaces/PreviewFileParams.html":{},"injectables/PreviewService.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{},"classes/TestHelper.html":{}}}],["stream.destroy",{"_index":17196,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["stream.on('data",{"_index":17197,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["streamablefile",{"_index":6490,"title":{},"body":{"controllers/CourseController.html":{},"controllers/FileSecurityController.html":{},"classes/FilesStorageMapper.html":{},"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(fileresponse.data",{"_index":10237,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["streamablefile(res.data",{"_index":9949,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["streamablefile(response.data",{"_index":10414,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["streamablefile(result",{"_index":6514,"title":{},"body":{"controllers/CourseController.html":{}}}],["strict",{"_index":15782,"title":{},"body":{"controllers/OauthSSOController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["string",{"_index":47,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountDto.html":{},"classes/AccountFactory.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"interfaces/AppendedAttachment.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"modules/CacheWrapperModule.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"classes/CardIdsParams.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"interfaces/ClassProps.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/County.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseUrlParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"modules/EncryptionModule.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolResponse.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"classes/FilesStorageClientMapper.html":{},"modules/FilesStorageModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"modules/FwuLearningContentsModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeFile.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"interfaces/Meta.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"classes/PageContentDto.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"controllers/ServerController.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{},"classes/ShareTokenResponse.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemUrlParams.html":{},"injectables/SubmissionRepo.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemIdParams.html":{},"classes/SystemOidcMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"entities/TeamNews.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"classes/TestBootstrapConsole.html":{},"classes/TestHelper.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserInfoResponse.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["string'})@allow",{"_index":10034,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string'})@isstring()@isnotempty",{"_index":10032,"title":{},"body":{"classes/FileUrlParams.html":{}}}],["string(object[key",{"_index":2375,"title":{},"body":{"injectables/BBBService.html":{}}}],["string).split",{"_index":11755,"title":{},"body":{"interfaces/IServerConfig.html":{}}}],["string).tostring(cryptojs.enc.base64",{"_index":15964,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["stringifiedmessage",{"_index":13397,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["stringifiedmessage(message",{"_index":13407,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stringifymessage",{"_index":14067,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["stringifymessage(message",{"_index":14073,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["strings",{"_index":777,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/LegacyLogger.html":{},"classes/MongoPatterns.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["stringtoboolean",{"_index":377,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterNewsParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"classes/SystemFilterParams.html":{},"miscellaneous/functions.html":{}}}],["stringvalidator",{"_index":12386,"title":{"classes/StringValidator.html":{}},"body":{"classes/ImportUserMapper.html":{},"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"classes/UserMatchMapper.html":{},"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(escapedclasses",{"_index":12563,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedfirstname",{"_index":12549,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedlastname",{"_index":12555,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedloginname",{"_index":12558,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["stringvalidator.isnotemptystring(escapedname",{"_index":20719,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(filters.name",{"_index":20716,"title":{},"body":{"injectables/UserRepo.html":{}}}],["stringvalidator.isnotemptystring(query.classes",{"_index":12417,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.firstname",{"_index":12405,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.lastname",{"_index":12408,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.loginname",{"_index":12411,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["stringvalidator.isnotemptystring(query.name",{"_index":20554,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["stringvalidator.isstring(value",{"_index":18214,"title":{},"body":{"classes/StringValidator.html":{}}}],["string}${additionalinfo",{"_index":12639,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["string}/api/v3/sso/hydra/${oauthclientid",{"_index":11084,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["strip",{"_index":21462,"title":{},"body":{"dependencies.html":{}}}],["strong",{"_index":9422,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["strongly",{"_index":22835,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["structure",{"_index":5221,"title":{"additional-documentation/nestjs-application/file-structure.html":{}},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CopyApiResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["structured",{"_index":22558,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["structures",{"_index":13414,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["stubstitution",{"_index":6452,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["stucture",{"_index":22279,"title":{},"body":{"todo.html":{}}}],["student",{"_index":3106,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/LessonRule.html":{},"injectables/LessonUC.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SubmissionRepo.html":{},"entities/Task.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["student_list",{"_index":11712,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentaccount",{"_index":863,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentid",{"_index":11794,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["studentids",{"_index":6445,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["studentobjectids",{"_index":6639,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentobjectids.map((id",{"_index":6641,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["studentpermissions",{"_index":20195,"title":{},"body":{"classes/UserFactory.html":{}}}],["students",{"_index":6370,"title":{},"body":{"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"injectables/SubmissionRepo.html":{}}}],["studentswithid",{"_index":6603,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentswithid(numberofstudents",{"_index":6607,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["studentuser",{"_index":864,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["studentvisibility",{"_index":11702,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["studentwithid",{"_index":18277,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["studio",{"_index":21636,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["stuff",{"_index":21658,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["style",{"_index":22760,"title":{"additional-documentation/nestjs-application/code-style.html":{}},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["style=\"height",{"_index":12162,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["sub",{"_index":6054,"title":{},"body":{"classes/CopyApiResponse.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/IntrospectResponse.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["sub)class",{"_index":23148,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["subclass",{"_index":16160,"title":{},"body":{"injectables/PreviewService.html":{}}}],["subdividing",{"_index":22081,"title":{},"body":{"license.html":{}}}],["subelements",{"_index":7445,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["subject",{"_index":77,"title":{},"body":{"classes/AbstractAccountService.html":{},"interfaces/AcceptLoginRequestBody.html":{},"interfaces/AppendedAttachment.html":{},"injectables/AuthenticationService.html":{},"classes/ConsentResponse.html":{},"interfaces/HtmlMailContent.html":{},"interfaces/InlineAttachment.html":{},"classes/LoginResponse-1.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"classes/OauthProviderRequestMapper.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"license.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["subject_type",{"_index":9175,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["subject_types_supported",{"_index":15262,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjects",{"_index":11542,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["subjecttype",{"_index":15261,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["subjecttypeenum",{"_index":15259,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["sublicenses",{"_index":22111,"title":{},"body":{"license.html":{}}}],["sublicensing",{"_index":21839,"title":{},"body":{"license.html":{}}}],["submission",{"_index":2881,"title":{"entities/Submission.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"controllers/BoardSubmissionController.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"entities/CourseGroup.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["submission.completed",{"_index":16590,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submission.controller.ts",{"_index":3683,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:32",{"_index":3692,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.controller.ts:48",{"_index":3698,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["submission.coursegroup?.name",{"_index":18397,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.entity",{"_index":11964,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.getsubmitterids",{"_index":12034,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.grade",{"_index":18395,"title":{},"body":{"classes/SubmissionMapper.html":{}}}],["submission.id",{"_index":16589,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionMapper.html":{}}}],["submission.isgraded",{"_index":12026,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isgradedforuser(user",{"_index":12029,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmitted",{"_index":12022,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRule.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.issubmittedforuser(user",{"_index":12028,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submission.isusersubmitter(user",{"_index":18444,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.service",{"_index":19144,"title":{},"body":{"injectables/TaskService.html":{}}}],["submission.task",{"_index":18449,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.task.aresubmissionspublic",{"_index":18447,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["submission.teammembers",{"_index":11814,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["submission.userid",{"_index":16591,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainer",{"_index":8094,"title":{},"body":{"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainer.addchild(submissionitem",{"_index":18350,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["submissioncontainer.children",{"_index":18373,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissioncontainer.children.every((child",{"_index":8097,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainer.children.find",{"_index":8099,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissioncontainercontentbody",{"_index":5543,"title":{"classes/SubmissionContainerContentBody.html":{}},"body":{"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ElementContentBody.html":{},"injectables/ElementUc.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["submissioncontainerelement",{"_index":2870,"title":{"classes/SubmissionContainerElement.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"injectables/CardUc.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ElementUc.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainerelement.duedate",{"_index":5587,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelement.id",{"_index":16586,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["submissioncontainerelementcontent",{"_index":18237,"title":{"classes/SubmissionContainerElementContent.html":{}},"body":{"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementcontentbody",{"_index":8035,"title":{"classes/SubmissionContainerElementContentBody.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["submissioncontainerelementcontentbody)@apiresponse({status",{"_index":8062,"title":{},"body":{"controllers/ElementController.html":{}}}],["submissioncontainerelementnode",{"_index":3180,"title":{"entities/SubmissionContainerElementNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerelementprops",{"_index":18236,"title":{"interfaces/SubmissionContainerElementProps.html":{}},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["submissioncontainerelementresponse",{"_index":4042,"title":{"classes/SubmissionContainerElementResponse.html":{}},"body":{"controllers/CardController.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponse)@apiresponse({status",{"_index":4012,"title":{},"body":{"controllers/CardController.html":{}}}],["submissioncontainerelementresponsemapper",{"_index":5523,"title":{"classes/SubmissionContainerElementResponseMapper.html":{}},"body":{"classes/ContentElementResponseFactory.html":{},"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerelementresponsemapper.getinstance",{"_index":5518,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["submissioncontainerelementresponsemapper.instance",{"_index":18245,"title":{},"body":{"classes/SubmissionContainerElementResponseMapper.html":{}}}],["submissioncontainerid",{"_index":18249,"title":{},"body":{"classes/SubmissionContainerUrlParams.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissioncontainernodeprops",{"_index":18242,"title":{"interfaces/SubmissionContainerNodeProps.html":{}},"body":{"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{}}}],["submissioncontainerurlparams",{"_index":3688,"title":{"classes/SubmissionContainerUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionContainerUrlParams.html":{}}}],["submissioncontroller",{"_index":18251,"title":{"controllers/SubmissionController.html":{}},"body":{"controllers/SubmissionController.html":{},"modules/TaskApiModule.html":{}}}],["submissionfactory",{"_index":18275,"title":{"classes/SubmissionFactory.html":{}},"body":{"classes/SubmissionFactory.html":{}}}],["submissionfactory.define(submission",{"_index":18289,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["submissionid",{"_index":18461,"title":{},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{}}}],["submissionitem",{"_index":2873,"title":{"classes/SubmissionItem.html":{}},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/ContentElementUpdateVisitor.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitem).userid",{"_index":8100,"title":{},"body":{"injectables/ElementUc.html":{}}}],["submissionitem.completed",{"_index":18333,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.createdat",{"_index":18336,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.id",{"_index":18334,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.updatedat",{"_index":18335,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitem.userid",{"_index":18341,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemfactory",{"_index":18310,"title":{"injectables/SubmissionItemFactory.html":{}},"body":{"injectables/SubmissionItemFactory.html":{}}}],["submissionitemid",{"_index":18368,"title":{},"body":{"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionitemnode",{"_index":3183,"title":{"entities/SubmissionItemNode.html":{}},"body":{"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/RecursiveSaveVisitor.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemnodeprops",{"_index":18317,"title":{"interfaces/SubmissionItemNodeProps.html":{}},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submissionitemprops",{"_index":18309,"title":{"interfaces/SubmissionItemProps.html":{}},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["submissionitemresponse",{"_index":3699,"title":{"classes/SubmissionItemResponse.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponsemapper",{"_index":3700,"title":{"classes/SubmissionItemResponseMapper.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponsemapper.getinstance",{"_index":3705,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["submissionitemresponsemapper.instance",{"_index":18332,"title":{},"body":{"classes/SubmissionItemResponseMapper.html":{}}}],["submissionitemresponse})@apiresponse({status",{"_index":8049,"title":{},"body":{"controllers/ElementController.html":{}}}],["submissionitems",{"_index":18372,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitems.every((child",{"_index":18374,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitems.filter((item",{"_index":18376,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["submissionitemservice",{"_index":3539,"title":{"injectables/SubmissionItemService.html":{}},"body":{"modules/BoardModule.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemuc",{"_index":2760,"title":{"injectables/SubmissionItemUc.html":{}},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["submissionitemurlparams",{"_index":3694,"title":{"classes/SubmissionItemUrlParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/SubmissionItemUrlParams.html":{}}}],["submissionmapper",{"_index":18261,"title":{"classes/SubmissionMapper.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionMapper.html":{}}}],["submissionmapper.maptostatusresponse(submission",{"_index":18270,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrepo",{"_index":1968,"title":{"injectables/SubmissionRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"modules/TaskModule.html":{}}}],["submissionresponses",{"_index":18268,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionrule",{"_index":1969,"title":{"injectables/SubmissionRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{}}}],["submissions",{"_index":3684,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Submission.html":{},"controllers/SubmissionController.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"classes/TaskCreateParams.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.coursegroup",{"_index":18985,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["submissions.filter((submission",{"_index":12021,"title":{},"body":{"interfaces/ITaskParent.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.foreach((submission",{"_index":12032,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissions.map((submission",{"_index":18269,"title":{},"body":{"controllers/SubmissionController.html":{},"injectables/TaskService.html":{}}}],["submissions.some((submission",{"_index":12027,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submissionservice",{"_index":18450,"title":{"injectables/SubmissionService.html":{}},"body":{"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{}}}],["submissionstatuslistresponse",{"_index":18263,"title":{"classes/SubmissionStatusListResponse.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionstatuslistresponse(submissionresponses",{"_index":18272,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["submissionstatusresponse",{"_index":18393,"title":{"classes/SubmissionStatusResponse.html":{}},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submissionuc",{"_index":18262,"title":{"injectables/SubmissionUc.html":{}},"body":{"controllers/SubmissionController.html":{},"injectables/SubmissionUc.html":{},"modules/TaskApiModule.html":{}}}],["submissionurlparams",{"_index":18254,"title":{"classes/SubmissionUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"classes/SubmissionUrlParams.html":{}}}],["submitted",{"_index":3742,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["submittedsubmissions",{"_index":12020,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitterids",{"_index":12033,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["submitters",{"_index":18394,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["submitting",{"_index":18315,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["submittingcoursegroupname",{"_index":18396,"title":{},"body":{"classes/SubmissionMapper.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["subpath",{"_index":19419,"title":{},"body":{"classes/TestApiClient.html":{}}}],["subpermissions",{"_index":16121,"title":{},"body":{"injectables/PermissionService.html":{}}}],["subprograms",{"_index":21814,"title":{},"body":{"license.html":{}}}],["subsection",{"_index":21928,"title":{},"body":{"license.html":{}}}],["subset",{"_index":5385,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"additional-documentation/nestjs-application.html":{}}}],["subsitution",{"_index":3108,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["substantial",{"_index":21966,"title":{},"body":{"license.html":{}}}],["substantially",{"_index":22079,"title":{},"body":{"license.html":{}}}],["substitution",{"_index":22467,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["substitution_teacher",{"_index":3107,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["substitutionids",{"_index":6393,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["substitutionteacherids",{"_index":6449,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["substitutionteachers",{"_index":6371,"title":{},"body":{"entities/Course.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"interfaces/ICourseProperties.html":{}}}],["subtypes",{"_index":8039,"title":{},"body":{"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["succeed",{"_index":22779,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["succesfully",{"_index":15712,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["success",{"_index":1289,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/IdentityManagementOauthService.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"interfaces/SuccessfulRes.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["successful",{"_index":13314,"title":{},"body":{"injectables/LdapService.html":{},"controllers/LoginController.html":{},"classes/SuccessfulResponse.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["successful.'})@apiresponse({status",{"_index":14087,"title":{},"body":{"controllers/LoginController.html":{}}}],["successfully",{"_index":549,"title":{},"body":{"controllers/AccountController.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/DeleteFilesUc.html":{},"classes/IdentityManagementService.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["successfully.'})@apiresponse({status",{"_index":525,"title":{},"body":{"controllers/AccountController.html":{}}}],["successfully.'})@apiunauthorizedresponse({description",{"_index":19668,"title":{},"body":{"controllers/ToolController.html":{}}}],["successfulres",{"_index":10750,"title":{"interfaces/SuccessfulRes.html":{}},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["successfulresponse",{"_index":18498,"title":{"classes/SuccessfulResponse.html":{}},"body":{"classes/SuccessfulResponse.html":{},"controllers/UserController.html":{}}}],["successfulresponse(result",{"_index":20037,"title":{},"body":{"controllers/UserController.html":{}}}],["successor",{"_index":4233,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["such",{"_index":2730,"title":{},"body":{"entities/Board.html":{},"injectables/DashboardUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sue",{"_index":22121,"title":{},"body":{"license.html":{}}}],["suffice",{"_index":21974,"title":{},"body":{"license.html":{}}}],["sufficient",{"_index":9388,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["suffix",{"_index":22320,"title":{},"body":{"todo.html":{}}}],["suggested",{"_index":22263,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["suggests",{"_index":22691,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["suitable",{"_index":11071,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["suites",{"_index":22404,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["sum",{"_index":20727,"title":{},"body":{"injectables/UserRepo.html":{}}}],["summary",{"_index":563,"title":{},"body":{"controllers/AccountController.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/ElementController.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICalendarEvent.html":{},"controllers/LoginController.html":{},"controllers/ShareTokenController.html":{},"controllers/SystemController.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["super",{"_index":406,"title":{},"body":{"entities/Account.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationError.html":{},"classes/AuthorizationError.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigResponse.html":{},"entities/Board.html":{},"entities/BoardElement.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"entities/ClassEntity.html":{},"entities/ColumnBoardTarget.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/EntityNotFoundError.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalValidationPipe.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/HydraAdapter.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"entities/ImportUser.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolDo.html":{},"entities/LessonEntity.html":{},"injectables/LocalStrategy.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"entities/Material.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"entities/News.html":{},"classes/NotFoundLoggableException.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/ValidationError.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["super('ldap",{"_index":13256,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super('ldapalreadypersisted",{"_index":13253,"title":{},"body":{"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MissingSchoolNumberException.html":{}}}],["super(_em",{"_index":5782,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/FilesRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/StorageProviderRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["super(config",{"_index":2135,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBJoinConfig.html":{}}}],["super(domainobject.id",{"_index":7040,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{},"classes/ShareTokenDO.html":{},"classes/UserDO.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["super(dto",{"_index":21072,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["super(e.response.statustext",{"_index":1307,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["super(message",{"_index":15002,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["super(oidcprovisioningservice",{"_index":17262,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["super(props",{"_index":617,"title":{},"body":{"classes/AccountDto.html":{},"classes/BasicToolConfigEntity.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/ColumnboardBoardElement.html":{},"entities/CourseNews.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/INewsProperties.html":{},"entities/LessonBoardElement.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/News.html":{},"classes/Oauth2ToolConfigEntity.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SchoolNews.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["super(props.id",{"_index":5616,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/UserLoginMigrationDO.html":{}}}],["super(resp",{"_index":7887,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["super(schoolservice",{"_index":14227,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["super(total",{"_index":1025,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["super(type",{"_index":1522,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["super.build",{"_index":2194,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["super.findbyid(id",{"_index":6658,"title":{},"body":{"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/LessonRepo.html":{},"injectables/SubmissionRepo.html":{},"injectables/TaskRepo.html":{},"injectables/UserRepo.html":{}}}],["superhero",{"_index":495,"title":{},"body":{"controllers/AccountController.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["superhero.'})@apiresponse({status",{"_index":508,"title":{},"body":{"controllers/AccountController.html":{}}}],["supertest",{"_index":1705,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["supertest(this.app.gethttpserver",{"_index":1740,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest(this.app.gethttpserver()).get(path).set('authorization",{"_index":1738,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supertest.test",{"_index":1735,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["supplement",{"_index":22001,"title":{},"body":{"license.html":{}}}],["support",{"_index":2488,"title":{},"body":{"classes/BaseDomainObject.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/RoomsAuthorisationService.html":{},"dependencies.html":{},"license.html":{},"modules.html":{},"todo.html":{}}}],["support_${objectid",{"_index":12673,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["supported",{"_index":1720,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/HydraSsoService.html":{},"classes/OauthClientBody.html":{},"injectables/ShareTokenUC.html":{},"classes/TestApiClient.html":{}}}],["supporting",{"_index":22324,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["supports",{"_index":2542,"title":{},"body":{"classes/BaseFactory.html":{},"license.html":{}}}],["supportuserid",{"_index":12671,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["sure",{"_index":9141,"title":{},"body":{"injectables/ExternalToolService.html":{},"classes/GlobalValidationPipe.html":{},"injectables/PermissionService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["surrender",{"_index":22156,"title":{},"body":{"license.html":{}}}],["survive",{"_index":22037,"title":{},"body":{"license.html":{}}}],["sustained",{"_index":22213,"title":{},"body":{"license.html":{}}}],["svg",{"_index":22251,"title":{},"body":{"modules.html":{}}}],["swagger",{"_index":21407,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["switch",{"_index":307,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/ContentElementFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"classes/ImportUserScope.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/SystemRepo.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["switching",{"_index":20520,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["symbol('bbbsettings",{"_index":11096,"title":{},"body":{"interfaces/IBbbSettings.html":{}}}],["symbol('defaultencryptionservice",{"_index":11395,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('keycloakconfigurationinputfiles",{"_index":11512,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{}}}],["symbol('keycloaksettings",{"_index":11517,"title":{},"body":{"interfaces/IKeycloakSettings.html":{}}}],["symbol('ldapencryptionservice",{"_index":11396,"title":{},"body":{"interfaces/IEncryptionService.html":{}}}],["symbol('toolfeatures",{"_index":12083,"title":{},"body":{"interfaces/IToolFeatures.html":{},"classes/ToolConfiguration.html":{}}}],["symbol('videoconferencesettings",{"_index":12123,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{}}}],["symetrickeyencryptionservice",{"_index":8111,"title":{"injectables/SymetricKeyEncryptionService.html":{}},"body":{"modules/EncryptionModule.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["symetrickeyencryptionservice(logger",{"_index":8116,"title":{},"body":{"modules/EncryptionModule.html":{}}}],["sync",{"_index":7659,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"modules/ImportUserModule.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/Options.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["sync_mode",{"_index":15894,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["syncboardelementreferences(boardelementtargets",{"_index":2731,"title":{},"body":{"entities/Board.html":{}}}],["syncindexes",{"_index":7648,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["syncmode",{"_index":12999,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/OidcIdentityProviderMapper.html":{}}}],["syntax",{"_index":12933,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/NewsUc.html":{}}}],["sysmes",{"_index":1287,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["system",{"_index":1114,"title":{"entities/System.html":{}},"body":{"injectables/AccountService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"modules/ManagementModule.html":{},"injectables/OAuthService.html":{},"classes/OauthConfig.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"classes/PageContentQueryParams.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserMigrationService.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["system'})@ismongoid",{"_index":16039,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["system.'})@apiresponse({status",{"_index":18544,"title":{},"body":{"controllers/SystemController.html":{}}}],["system.'})@isoptional()@isenum(systemtypeenum",{"_index":18616,"title":{},"body":{"classes/SystemFilterParams.html":{}}}],["system.adapter",{"_index":10031,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.adapter.ts",{"_index":9958,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:12",{"_index":9968,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:18",{"_index":10005,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:26",{"_index":9970,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:36",{"_index":9987,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:48",{"_index":10002,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:57",{"_index":9991,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:68",{"_index":9974,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:78",{"_index":9997,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.adapter.ts:84",{"_index":9984,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["system.alias",{"_index":16466,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["system.displayname",{"_index":16467,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.dto",{"_index":15354,"title":{},"body":{"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["system.dto.ts",{"_index":16356,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:5",{"_index":16359,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:7",{"_index":16358,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.dto.ts:9",{"_index":16357,"title":{},"body":{"classes/ProvisioningSystemDto.html":{}}}],["system.entity",{"_index":8317,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/ImportUser.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["system.factory",{"_index":12349,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["system.id",{"_index":13302,"title":{},"body":{"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserDORepo.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{}}}],["system.ldapactive",{"_index":18583,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemUc.html":{}}}],["system.ldapconfig",{"_index":11276,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.ldapconfig.searchuserpassword",{"_index":11277,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.module",{"_index":18531,"title":{},"body":{"modules/SystemApiModule.html":{}}}],["system.module.ts",{"_index":10030,"title":{},"body":{"modules/FileSystemModule.html":{}}}],["system.oauthconfig",{"_index":11270,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/UserMigrationService.html":{}}}],["system.oauthconfig.clientsecret",{"_index":11271,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oauthconfig.provider",{"_index":15830,"title":{},"body":{"injectables/OauthUc.html":{}}}],["system.oauthconfig?.provider",{"_index":15111,"title":{},"body":{"injectables/OAuthService.html":{}}}],["system.oidcconfig",{"_index":11273,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"injectables/SystemService.html":{}}}],["system.oidcconfig.clientsecret",{"_index":11274,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["system.oidcconfig.idphint",{"_index":18742,"title":{},"body":{"injectables/SystemService.html":{}}}],["system.provisioningstrategy",{"_index":18580,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.provisioningurl",{"_index":18581,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system.type",{"_index":16465,"title":{},"body":{"classes/PublicSystemResponse.html":{},"classes/SystemDto.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{}}}],["system.url",{"_index":18579,"title":{},"body":{"classes/SystemDto.html":{},"injectables/SystemService.html":{}}}],["system/file",{"_index":9957,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"modules/FileSystemModule.html":{}}}],["system?.id",{"_index":20669,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["systemapimodule",{"_index":17770,"title":{"modules/SystemApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SystemApiModule.html":{},"modules.html":{}}}],["systemcontroller",{"_index":18528,"title":{"controllers/SystemController.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{}}}],["systemdto",{"_index":15072,"title":{"classes/SystemDto.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["systemdto.alias",{"_index":18726,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.displayname",{"_index":18727,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.id",{"_index":18723,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.oauthconfig",{"_index":18728,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningstrategy",{"_index":18729,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.provisioningurl",{"_index":18730,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.type",{"_index":18725,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdto.url",{"_index":18731,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemdtos",{"_index":18558,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemfactory",{"_index":12348,"title":{"classes/SystemFactory.html":{}},"body":{"classes/ImportUserFactory.html":{},"classes/SystemFactory.html":{}}}],["systemfactory.build",{"_index":12351,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["systemfactory.define(system",{"_index":18607,"title":{},"body":{"classes/SystemFactory.html":{}}}],["systemfilterparams",{"_index":18535,"title":{"classes/SystemFilterParams.html":{}},"body":{"controllers/SystemController.html":{},"classes/SystemFilterParams.html":{}}}],["systemid",{"_index":48,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/ExternalSource.html":{},"classes/GroupDomainMapper.html":{},"injectables/GroupRepo.html":{},"injectables/GroupService.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/JwtPayload.html":{},"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolService.html":{},"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemOidcMapper.html":{},"classes/UnauthorizedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["systemidparams",{"_index":15702,"title":{"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}},"body":{"controllers/OauthSSOController.html":{},"controllers/SystemController.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{}}}],["systemids",{"_index":20479,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemids[0",{"_index":20482,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["systemlistresponse",{"_index":18695,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemmapper",{"_index":18621,"title":{"classes/SystemMapper.html":{}},"body":{"classes/SystemMapper.html":{},"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitiestodtos(systems",{"_index":18722,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromentitytodto(system",{"_index":18715,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemmapper.mapfromoauthconfigentitytodto(entity.oauthconfig",{"_index":18633,"title":{},"body":{"classes/SystemMapper.html":{}}}],["systemmodule",{"_index":1626,"title":{"modules/SystemModule.html":{}},"body":{"modules/AuthenticationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/ProvisioningModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules.html":{}}}],["systemoidcmapper",{"_index":18642,"title":{"classes/SystemOidcMapper.html":{}},"body":{"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitiestodtos(system",{"_index":18668,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromentitytodto(system",{"_index":18665,"title":{},"body":{"injectables/SystemOidcService.html":{}}}],["systemoidcmapper.mapfromoidcconfigentitytodto(entity.id",{"_index":18652,"title":{},"body":{"classes/SystemOidcMapper.html":{}}}],["systemoidcservice",{"_index":12858,"title":{"injectables/SystemOidcService.html":{}},"body":{"injectables/KeycloakConfigurationService.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{}}}],["systemprovisioningstrategy",{"_index":11850,"title":{},"body":{"interfaces/ISystemProperties.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/SanisProvisioningStrategy.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.iserv",{"_index":12629,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.oidc",{"_index":15905,"title":{},"body":{"injectables/OidcMockProvisioningStrategy.html":{},"classes/SystemFactory.html":{}}}],["systemprovisioningstrategy.sanis",{"_index":17263,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["systemprovisioningstrategy.undefined",{"_index":16366,"title":{},"body":{"classes/ProvisioningSystemInputMapper.html":{}}}],["systemrepo",{"_index":823,"title":{"injectables/SystemRepo.html":{}},"body":{"modules/AccountModule.html":{},"modules/AuthenticationModule.html":{},"modules/ImportUserModule.html":{},"injectables/LdapStrategy.html":{},"modules/SystemModule.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{}}}],["systemresponse",{"_index":18697,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper",{"_index":18552,"title":{"classes/SystemResponseMapper.html":{}},"body":{"controllers/SystemController.html":{},"classes/SystemResponseMapper.html":{}}}],["systemresponsemapper.mapfromdtotolistresponse(systemdtos",{"_index":18561,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromdtotoresponse(systemdto",{"_index":18565,"title":{},"body":{"controllers/SystemController.html":{}}}],["systemresponsemapper.mapfromoauthconfigdtotoresponse(system.oauthconfig",{"_index":18698,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systemresponses",{"_index":16456,"title":{},"body":{"classes/PublicSystemListResponse.html":{},"classes/SystemResponseMapper.html":{}}}],["systems",{"_index":9975,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/NextcloudStrategy.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/OidcProvisioningService.html":{},"classes/PublicSystemResponse.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemFilterParams.html":{},"classes/SystemResponseMapper.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["systems.'})@apiresponse({status",{"_index":18538,"title":{},"body":{"controllers/SystemController.html":{}}}],["systems.filter((system",{"_index":18734,"title":{},"body":{"injectables/SystemService.html":{},"injectables/SystemUc.html":{}}}],["systems.foreach((system",{"_index":11269,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systems.getitems().find((system",{"_index":20119,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["systems.map",{"_index":18693,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["systems.map((system",{"_index":18738,"title":{},"body":{"injectables/SystemService.html":{}}}],["systemscollectionname",{"_index":11114,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["systemscope",{"_index":18675,"title":{"classes/SystemScope.html":{}},"body":{"injectables/SystemRepo.html":{},"classes/SystemScope.html":{}}}],["systemservice",{"_index":15045,"title":{"injectables/SystemService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{},"modules/SystemModule.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["systemstrategy",{"_index":16329,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["systemtype",{"_index":18746,"title":{},"body":{"injectables/SystemUc.html":{}}}],["systemtypeenum",{"_index":18615,"title":{},"body":{"classes/SystemFilterParams.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["systemtypeenum.ldap",{"_index":18677,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemtypeenum.oauth",{"_index":18679,"title":{},"body":{"injectables/SystemRepo.html":{},"injectables/SystemService.html":{}}}],["systemtypeenum.oidc",{"_index":18681,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["systemuc",{"_index":18526,"title":{"injectables/SystemUc.html":{}},"body":{"modules/SystemApiModule.html":{},"controllers/SystemController.html":{},"injectables/SystemUc.html":{}}}],["t",{"_index":692,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthorizableObject.html":{},"injectables/AuthorizationHelper.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBResponse.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BoardComposite.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"injectables/BoardRepo.html":{},"classes/Builder.html":{},"classes/Card.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ConverterUtil.html":{},"injectables/CopyFilesService.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseRepo.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/FederalStateRepo.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"injectables/FileRecordRepo.html":{},"injectables/FilesRepo.html":{},"classes/GlobalErrorFilter.html":{},"classes/Group.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"injectables/HydraAdapter.html":{},"interfaces/IError.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/KeycloakConsole.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"injectables/NewsRepo.html":{},"interfaces/NextcloudGroups.html":{},"classes/Oauth2ToolConfigFactory.html":{},"interfaces/OcsResponse.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"classes/Pseudonym.html":{},"classes/RichTextElement.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoleRepo.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolYearRepo.html":{},"classes/SortingParams.html":{},"injectables/StorageProviderRepo.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionRepo.html":{},"interfaces/SuccessfulRes.html":{},"classes/SystemFactory.html":{},"injectables/SystemRepo.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["t.name",{"_index":18888,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["tab",{"_index":11221,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"controllers/TeamNewsController.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["table",{"_index":14903,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["tablename",{"_index":402,"title":{},"body":{"entities/Account.html":{},"entities/Board.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/ClassEntity.html":{},"entities/ContextExternalToolEntity.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/CustomLtiProperty.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"entities/FederalState.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/Role.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"entities/ShareToken.html":{},"entities/StorageProviderEntity.html":{},"entities/Submission.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["tags",{"_index":11543,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["take",{"_index":11484,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["takes",{"_index":19058,"title":{},"body":{"injectables/TaskRepo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tangible",{"_index":21954,"title":{},"body":{"license.html":{}}}],["tap",{"_index":8021,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{},"injectables/RequestLoggingInterceptor.html":{}}}],["target",{"_index":2744,"title":{},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"injectables/BoardRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"entities/ColumnboardBoardElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"classes/DownloadFileParams.html":{},"classes/ErrorLoggable.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilterNewsParams.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICreateNews.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/LessonBoardElement.html":{},"classes/MoveColumnBodyParams.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/PageContentQueryParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SingleFileParams.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["target._id.tostring",{"_index":9377,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["target.constructor",{"_index":8167,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["target.entity",{"_index":2699,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/ColumnboardBoardElement.html":{}}}],["target.entity.ts",{"_index":4816,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:21",{"_index":4820,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:32",{"_index":4819,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.entity.ts:35",{"_index":4818,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["target.id",{"_index":18755,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.name",{"_index":18756,"title":{},"body":{"classes/TargetInfoMapper.html":{}}}],["target.service",{"_index":17018,"title":{},"body":{"injectables/RoomsService.html":{}}}],["target.service.ts",{"_index":4830,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:11",{"_index":4839,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:33",{"_index":4836,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.service.ts:8",{"_index":4834,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target.targetids",{"_index":14785,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.targetids.length",{"_index":14858,"title":{},"body":{"injectables/NewsUc.html":{}}}],["target.targetmodel",{"_index":14783,"title":{},"body":{"classes/NewsScope.html":{}}}],["target.title",{"_index":4849,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["target:in",{"_index":14784,"title":{},"body":{"classes/NewsScope.html":{}}}],["target_model_values",{"_index":14656,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["targetboard",{"_index":3817,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/ColumnService.html":{}}}],["targetboardid",{"_index":3793,"title":{},"body":{"injectables/BoardUc.html":{}}}],["targetcard",{"_index":4204,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContentElementService.html":{}}}],["targetcardid",{"_index":4194,"title":{},"body":{"injectables/CardUc.html":{}}}],["targetcolumn",{"_index":3824,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardService.html":{}}}],["targetcolumnid",{"_index":3790,"title":{},"body":{"injectables/BoardUc.html":{}}}],["targetelement",{"_index":7401,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetelement.addreferences(element.getreferences",{"_index":7402,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["targetexternalid",{"_index":17615,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["targetfile",{"_index":21533,"title":{},"body":{"miscellaneous/functions.html":{}}}],["targetfolder",{"_index":11130,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["targetgroups",{"_index":11544,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{}}}],["targetid",{"_index":6902,"title":{},"body":{"classes/CreateNewsParams.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetids",{"_index":9375,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{}}}],["targetinfomapper",{"_index":14682,"title":{"classes/TargetInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/TargetInfoMapper.html":{}}}],["targetinfomapper.maptoresponse(news.target",{"_index":14684,"title":{},"body":{"classes/NewsMapper.html":{}}}],["targetinforesponse",{"_index":14653,"title":{"classes/TargetInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{}}}],["targetmodel",{"_index":6730,"title":{},"body":{"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["targetmodels",{"_index":14817,"title":{},"body":{"injectables/NewsUc.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.courses",{"_index":21188,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.events",{"_index":21187,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodels.map(async",{"_index":14854,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targetmodelsmapping",{"_index":21186,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[entitydo.targetmodel",{"_index":21199,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetmodelsmapping[videoconferencescope",{"_index":21192,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["targetparent",{"_index":3377,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.addchild(child",{"_index":3390,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.haschild(child",{"_index":3384,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparent.removechild(child",{"_index":3385,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["targetparentinfo",{"_index":9759,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["targetpath",{"_index":6161,"title":{},"body":{"interfaces/CopyFiles.html":{},"interfaces/File.html":{},"interfaces/GetFile.html":{},"injectables/S3ClientAdapter.html":{},"interfaces/S3Config-1.html":{}}}],["targetpermissions",{"_index":9366,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["targetposition",{"_index":3378,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/BoardUc.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["targets",{"_index":9371,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{}}}],["targets.filter((target",{"_index":14857,"title":{},"body":{"injectables/NewsUc.html":{}}}],["targets.map((target",{"_index":9376,"title":{},"body":{"injectables/FeathersAuthProvider.html":{},"classes/NewsScope.html":{}}}],["targetschoolnumber",{"_index":20526,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["targetsystem",{"_index":16035,"title":{},"body":{"classes/PageContentQueryParams.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetsystemid",{"_index":17612,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["targetsystemloginurl",{"_index":20634,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["targetsystemloginurl.tostring",{"_index":20639,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["task",{"_index":2691,"title":{"entities/Task.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CopyMapper.html":{},"classes/DtoCreator.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageClientMapper.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"classes/LessonCopyApiParams.html":{},"entities/LessonEntity.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ShareTokenDO.html":{},"injectables/ShareTokenUC.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionRepo.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["task's",{"_index":22696,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["task.availabledate",{"_index":18942,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.course",{"_index":16965,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{},"injectables/SubmissionRepo.html":{}}}],["task.createdat",{"_index":18937,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.createstudentstatusforuser(this.user",{"_index":7982,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createstudentstatusforuser(user",{"_index":19202,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.createteacherstatusforuser(this.user",{"_index":7981,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["task.createteacherstatusforuser(user",{"_index":19201,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.creator",{"_index":16960,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.description",{"_index":18859,"title":{},"body":{"injectables/TaskCopyService.html":{},"classes/TaskMapper.html":{}}}],["task.description.replace(regex",{"_index":18860,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["task.descriptioninputformat",{"_index":18940,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.duedate",{"_index":18944,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.entity",{"_index":2692,"title":{},"body":{"entities/Board.html":{},"entities/BoardElement.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{},"entities/TaskBoardElement.html":{}}}],["task.factory",{"_index":18286,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["task.finishforuser(user",{"_index":19206,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.getparentdata",{"_index":18931,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.id",{"_index":18934,"title":{},"body":{"classes/TaskMapper.html":{}}}],["task.isdraft",{"_index":11346,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["task.isplanned",{"_index":11348,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["task.ispublished",{"_index":11344,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{},"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson",{"_index":16962,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["task.lesson.course",{"_index":18419,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.lesson.coursegroup.course",{"_index":18420,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["task.module",{"_index":18781,"title":{},"body":{"modules/TaskApiModule.html":{}}}],["task.name",{"_index":5031,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/TaskMapper.html":{}}}],["task.name}${task.description",{"_index":5032,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["task.response",{"_index":3414,"title":{},"body":{"classes/BoardElementResponse.html":{}}}],["task.response.ts",{"_index":3713,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:15",{"_index":3723,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:19",{"_index":3724,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:22",{"_index":3717,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:25",{"_index":3722,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:29",{"_index":3718,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:33",{"_index":3720,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:36",{"_index":3721,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:39",{"_index":3719,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:42",{"_index":3727,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:45",{"_index":3726,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.response.ts:5",{"_index":3716,"title":{},"body":{"classes/BoardTaskResponse.html":{}}}],["task.restoreforuser(user",{"_index":19207,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.rule",{"_index":18440,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["task.submissions.getitems",{"_index":19149,"title":{},"body":{"injectables/TaskService.html":{}}}],["task.unpublish",{"_index":19211,"title":{},"body":{"injectables/TaskUC.html":{}}}],["task.updatedat",{"_index":18938,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskapimodule",{"_index":17771,"title":{"modules/TaskApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TaskApiModule.html":{},"modules.html":{}}}],["taskboardelement",{"_index":2702,"title":{"entities/TaskBoardElement.html":{}},"body":{"entities/Board.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardRepo.html":{},"entities/TaskBoardElement.html":{}}}],["taskcontroller",{"_index":18779,"title":{"controllers/TaskController.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{}}}],["taskcopy",{"_index":18846,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopy.name",{"_index":18864,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyapiparams",{"_index":6291,"title":{"classes/TaskCopyApiParams.html":{}},"body":{"classes/CopyMapper.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{}}}],["taskcopyparams",{"_index":18842,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["taskcopyparentparams",{"_index":6293,"title":{},"body":{"classes/CopyMapper.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcopyservice",{"_index":2995,"title":{"injectables/TaskCopyService.html":{}},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{}}}],["taskcopyuc",{"_index":18776,"title":{"injectables/TaskCopyUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskCopyUC.html":{}}}],["taskcourse",{"_index":16911,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcourse.name",{"_index":16914,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskcreateparams",{"_index":18892,"title":{"classes/TaskCreateParams.html":{}},"body":{"classes/TaskCreateParams.html":{},"classes/TaskMapper.html":{}}}],["taskdesc",{"_index":18930,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.color",{"_index":18946,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.courseid",{"_index":18936,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.coursename",{"_index":18935,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonhidden",{"_index":18950,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskdesc.lessonname",{"_index":18947,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskelement",{"_index":3073,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["taskelements",{"_index":3649,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["taskfactory",{"_index":18285,"title":{"classes/TaskFactory.html":{}},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["taskfactory.build",{"_index":18290,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["taskfactory.define(task",{"_index":18909,"title":{},"body":{"classes/TaskFactory.html":{}}}],["taskgroupstatus",{"_index":13808,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["taskid",{"_index":13763,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/SubmissionService.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TaskUrlParams.html":{}}}],["taskidentifier",{"_index":5028,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskidentifier}/${taskidentifier}.html",{"_index":5030,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["taskids",{"_index":18406,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["tasklistresponse",{"_index":18812,"title":{"classes/TaskListResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["tasklistresponse(taskresponses",{"_index":18824,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmapper",{"_index":18809,"title":{"classes/TaskMapper.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskMapper.html":{}}}],["taskmapper.maptoresponse(task",{"_index":18823,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskmodule",{"_index":13390,"title":{"modules/TaskModule.html":{}},"body":{"modules/LearnroomModule.html":{},"modules/LessonModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules.html":{}}}],["taskparentdescriptions",{"_index":11966,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskparentpermission",{"_index":16955,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["taskrepo",{"_index":1970,"title":{"injectables/TaskRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{},"modules/TaskApiModule.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"modules/TaskModule.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["taskresponse",{"_index":18813,"title":{"classes/TaskResponse.html":{}},"body":{"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{}}}],["taskresponses",{"_index":18821,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskrule",{"_index":1971,"title":{"injectables/TaskRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{}}}],["tasks",{"_index":4994,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/RoomsAuthorisationService.html":{},"classes/ShareTokenDO.html":{},"classes/SingleColumnBoardResponse.html":{},"controllers/TaskController.html":{},"injectables/TaskRepo.html":{},"injectables/TaskUC.html":{}}}],["tasks.filter((task",{"_index":11343,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["tasks.foreach((task",{"_index":4999,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["tasks.map((task",{"_index":19200,"title":{},"body":{"injectables/TaskUC.html":{}}}],["taskscope",{"_index":18982,"title":{"classes/TaskScope.html":{}},"body":{"injectables/TaskRepo.html":{},"classes/TaskScope.html":{}}}],["taskscope('$or",{"_index":18992,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["taskservice",{"_index":4941,"title":{"injectables/TaskService.html":{}},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{},"injectables/ShareTokenService.html":{},"modules/TaskModule.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["taskstatus.mapper",{"_index":16890,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["taskstatus.mapper.ts",{"_index":3731,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatus.mapper.ts:5",{"_index":3734,"title":{},"body":{"classes/BoardTaskStatusMapper.html":{}}}],["taskstatusmapper",{"_index":18928,"title":{"classes/TaskStatusMapper.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskStatusMapper.html":{}}}],["taskstatusmapper.maptoresponse(status",{"_index":18933,"title":{},"body":{"classes/TaskMapper.html":{}}}],["taskstatusresponse",{"_index":18914,"title":{"classes/TaskStatusResponse.html":{}},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{}}}],["taskstatusresponse(status",{"_index":19154,"title":{},"body":{"classes/TaskStatusMapper.html":{}}}],["tasksubmitterids",{"_index":12031,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskswithstatus",{"_index":18818,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskswithstatus.map((task",{"_index":18822,"title":{},"body":{"controllers/TaskController.html":{}}}],["taskuc",{"_index":18777,"title":{"injectables/TaskUC.html":{}},"body":{"modules/TaskApiModule.html":{},"controllers/TaskController.html":{},"injectables/TaskUC.html":{}}}],["taskupdateparams",{"_index":18924,"title":{"classes/TaskUpdateParams.html":{}},"body":{"classes/TaskMapper.html":{},"classes/TaskUpdateParams.html":{}}}],["taskurlparams",{"_index":18258,"title":{"classes/TaskUrlParams.html":{}},"body":{"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"classes/TaskUrlParams.html":{}}}],["taskwithstatus",{"_index":16900,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{},"classes/TaskMapper.html":{}}}],["taskwithstatusvo",{"_index":7948,"title":{"classes/TaskWithStatusVo.html":{}},"body":{"classes/DtoCreator.html":{},"interfaces/ITaskParent.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"entities/Task.html":{},"classes/TaskMapper.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{}}}],["taskwithstatusvo(task",{"_index":7978,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/TaskUC.html":{}}}],["taskwithstatusvos",{"_index":19199,"title":{},"body":{"injectables/TaskUC.html":{}}}],["teacher",{"_index":3105,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/FilterImportUserParams.html":{},"interfaces/ISchoolProperties.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/LessonRule.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/TaskRepo.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["teacher.firstname",{"_index":5023,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher.lastname",{"_index":5024,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["teacher_student_visibility__is_configurable",{"_index":11093,"title":{},"body":{"interfaces/IAccountConfig.html":{},"interfaces/IServerConfig.html":{}}}],["teacheraccount",{"_index":869,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teacherid",{"_index":11970,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["teacherid.tohexstring",{"_index":4361,"title":{},"body":{"classes/ClassMapper.html":{}}}],["teacherids",{"_index":4228,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"entities/Course.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{}}}],["teacherpermissions",{"_index":20196,"title":{},"body":{"classes/UserFactory.html":{}}}],["teachers",{"_index":4961,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"interfaces/ICourseProperties.html":{}}}],["teacherswithid",{"_index":6604,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacherswithid(numberofteachers",{"_index":6610,"title":{},"body":{"classes/CourseFactory.html":{}}}],["teacheruser",{"_index":870,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["teaching_assistant",{"_index":6966,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["teachingassistant",{"_index":6967,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["team",{"_index":4499,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"controllers/TeamNewsController.html":{},"classes/TeamUrlParams.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{},"properties.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["team.entity",{"_index":6721,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["team.id",{"_index":4535,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.name",{"_index":4537,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{}}}],["team.teamusers",{"_index":14920,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.find",{"_index":21276,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["team.teamusers.length",{"_index":14931,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["team.teamusers.map(async",{"_index":19401,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["team.userids",{"_index":19351,"title":{},"body":{"injectables/TeamService.html":{}}}],["team.userids.filter((u",{"_index":19352,"title":{},"body":{"injectables/TeamService.html":{}}}],["teamadmin",{"_index":4643,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamdto",{"_index":4497,"title":{"classes/TeamDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{}}}],["teamentity",{"_index":6720,"title":{"entities/TeamEntity.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"injectables/IdTokenService.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["teamentity.id",{"_index":19286,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.name",{"_index":19287,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamentity.teamusers.map",{"_index":19282,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamfactory",{"_index":19262,"title":{"classes/TeamFactory.html":{}},"body":{"classes/TeamFactory.html":{}}}],["teamfactory.define(teamentity",{"_index":19274,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamid",{"_index":3928,"title":{},"body":{"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"classes/TeamUrlParams.html":{}}}],["teammapper",{"_index":4606,"title":{"injectables/TeamMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/TeamMapper.html":{}}}],["teammemberids",{"_index":11817,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids",{"_index":11815,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammemberobjectids.map((id",{"_index":11818,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["teammembers",{"_index":11791,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionRepo.html":{}}}],["teammemberswithid",{"_index":18278,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teammemberswithid(numberofteammembers",{"_index":18282,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["teamname",{"_index":4536,"title":{},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamnews",{"_index":6761,"title":{"entities/TeamNews.html":{}},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["teamnews(props",{"_index":6752,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["teamnewscontroller",{"_index":14718,"title":{"controllers/TeamNewsController.html":{}},"body":{"modules/NewsModule.html":{},"controllers/TeamNewsController.html":{}}}],["teamowner",{"_index":4642,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teampermissions",{"_index":4636,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsbody",{"_index":4576,"title":{"classes/TeamPermissionsBody.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamPermissionsBody.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsdto",{"_index":4508,"title":{"classes/TeamPermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"injectables/CollaborativeStorageService.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teampermissionsmapper",{"_index":4607,"title":{"injectables/TeamPermissionsMapper.html":{}},"body":{"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageUc.html":{},"injectables/TeamPermissionsMapper.html":{}}}],["teamrole",{"_index":4573,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.roleid",{"_index":4675,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamrole.teamid",{"_index":4674,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["teamroledto",{"_index":4574,"title":{"classes/TeamRoleDto.html":{}},"body":{"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/TeamRoleDto.html":{}}}],["teamrolepermissionsdto",{"_index":4532,"title":{"classes/TeamRolePermissionsDto.html":{}},"body":{"injectables/CollaborativeStorageAdapterMapper.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["teamrule",{"_index":1972,"title":{"injectables/TeamRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/TeamRule.html":{}}}],["teams",{"_index":11378,"title":{},"body":{"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"injectables/IdTokenService.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["teams.foreach((team",{"_index":19350,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.length",{"_index":19355,"title":{},"body":{"injectables/TeamService.html":{}}}],["teams.map((team",{"_index":12175,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["teamsapimodule",{"_index":17772,"title":{"modules/TeamsApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/TeamsApiModule.html":{},"modules.html":{}}}],["teamservice",{"_index":19340,"title":{"injectables/TeamService.html":{}},"body":{"injectables/TeamService.html":{},"modules/TeamsModule.html":{}}}],["teamsmapper",{"_index":4622,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["teamsmodule",{"_index":19386,"title":{"modules/TeamsModule.html":{}},"body":{"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules.html":{}}}],["teamsrepo",{"_index":1973,"title":{"injectables/TeamsRepo.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/CollaborativeStorageModule.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/IRepoLoader.html":{},"injectables/IdTokenService.html":{},"modules/OauthProviderModule.html":{},"injectables/ReferenceLoader.html":{},"injectables/TeamService.html":{},"modules/TeamsModule.html":{},"injectables/TeamsRepo.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["teamstorageuc",{"_index":4596,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["teamsubmissions",{"_index":11956,"title":{},"body":{"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"classes/TaskWithStatusVo.html":{}}}],["teamurlparams",{"_index":19293,"title":{"classes/TeamUrlParams.html":{}},"body":{"controllers/TeamNewsController.html":{},"classes/TeamUrlParams.html":{}}}],["teamuser",{"_index":14896,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["teamuser.role.id",{"_index":19284,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.role.name",{"_index":21280,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["teamuser.school.id",{"_index":19285,"title":{},"body":{"injectables/TeamMapper.html":{}}}],["teamuser.user.id",{"_index":19283,"title":{},"body":{"injectables/TeamMapper.html":{},"injectables/TeamRule.html":{}}}],["teamuserdto",{"_index":14900,"title":{"classes/TeamUserDto.html":{}},"body":{"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{}}}],["teamuserentity",{"_index":12069,"title":{"classes/TeamUserEntity.html":{}},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamRule.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["teamuserentity(teamuser",{"_index":12079,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamuserfactory",{"_index":19270,"title":{"classes/TeamUserFactory.html":{}},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["teamuserfactory.buildwithid",{"_index":19275,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamuserfactory.define(teamuserentity",{"_index":19381,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["teamuserfactory.withroleanduserid(role",{"_index":19272,"title":{},"body":{"classes/TeamFactory.html":{}}}],["teamusers",{"_index":12068,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"injectables/NextcloudStrategy.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{}}}],["teamusers(value",{"_index":12076,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["teamusers.map(async",{"_index":14938,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["teardown",{"_index":22291,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tech",{"_index":22438,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["technical",{"_index":8152,"title":{},"body":{"classes/ErrorLoggable.html":{},"injectables/LdapStrategy.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["technological",{"_index":21847,"title":{},"body":{"license.html":{}}}],["tell",{"_index":22431,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tells",{"_index":5381,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"license.html":{}}}],["temp",{"_index":9976,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["temp/:file",{"_index":10804,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["tempflow.alias",{"_index":12920,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["template",{"_index":1379,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/SystemRepo.html":{},"controllers/ToolConfigurationController.html":{},"miscellaneous/functions.html":{}}}],["template')@apiunauthorizedresponse()@apiforbiddenresponse()@apioperation({summary",{"_index":19547,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["template.replace(/\\{id\\}/g",{"_index":8586,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["template.response",{"_index":5637,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{}}}],["template.response.ts",{"_index":5638,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:10",{"_index":5649,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:13",{"_index":5646,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:16",{"_index":5645,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:19",{"_index":5648,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:22",{"_index":5643,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["template.response.ts:7",{"_index":5644,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["temporary",{"_index":521,"title":{},"body":{"controllers/AccountController.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/KeycloakIdentityManagementService.html":{},"interfaces/UserBoardRoles.html":{}}}],["tempted",{"_index":23117,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["term",{"_index":21820,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["terminal",{"_index":22922,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["terminate",{"_index":22042,"title":{},"body":{"license.html":{}}}],["terminated",{"_index":22060,"title":{},"body":{"license.html":{}}}],["terminates",{"_index":22050,"title":{},"body":{"license.html":{}}}],["termination",{"_index":22039,"title":{},"body":{"license.html":{}}}],["terms",{"_index":21625,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["test",{"_index":1236,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"controllers/H5PEditorController.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IServerConfig.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"classes/MaterialFactory.html":{},"classes/ServerConsole.html":{},"controllers/ServerController.html":{},"classes/TaskFactory.html":{},"classes/TestBootstrapConsole.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["test.createtestingmodule",{"_index":19443,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["test.module.ts",{"_index":10318,"title":{},"body":{"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:30",{"_index":10320,"title":{},"body":{"modules/FilesStorageTestModule.html":{}}}],["test.module.ts:31",{"_index":10819,"title":{},"body":{"modules/H5PEditorTestModule.html":{}}}],["test.module.ts:37",{"_index":10433,"title":{},"body":{"modules/FwuLearningContentsTestModule.html":{}}}],["test/test",{"_index":19432,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["testapiclient",{"_index":1715,"title":{"classes/TestApiClient.html":{}},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testbootstrapconsole",{"_index":19430,"title":{"classes/TestBootstrapConsole.html":{}},"body":{"classes/TestBootstrapConsole.html":{}}}],["testcase",{"_index":22714,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testdata",{"_index":22734,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tested",{"_index":6809,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testhelper",{"_index":19452,"title":{"classes/TestHelper.html":{}},"body":{"classes/TestHelper.html":{}}}],["testing",{"_index":10789,"title":{"additional-documentation/nestjs-application/testing.html":{}},"body":{"controllers/H5PEditorController.html":{},"modules/InterceptorModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["testing'})@apiresponse({status",{"_index":10780,"title":{},"body":{"controllers/H5PEditorController.html":{}}}],["testingmodule",{"_index":19439,"title":{},"body":{"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["testkcconnection",{"_index":12774,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["testmodule",{"_index":22850,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.close",{"_index":22856,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(entitymanager",{"_index":22853,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(mikroorm",{"_index":22852,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testmodule.get(newsrepo",{"_index":22851,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["testname",{"_index":19464,"title":{},"body":{"classes/TestHelper.html":{}}}],["testreqestconst",{"_index":1710,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.accesstoken",{"_index":1774,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.loginpath",{"_index":1750,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testreqestconst.prefix",{"_index":1733,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["testrequestinstance",{"_index":1737,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["tests",{"_index":2508,"title":{},"body":{"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/IFileStorageConfig.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"index.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["testtag",{"_index":19463,"title":{},"body":{"classes/TestHelper.html":{}}}],["testtext",{"_index":19459,"title":{},"body":{"classes/TestHelper.html":{}}}],["testuser",{"_index":6883,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["text",{"_index":2880,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"injectables/ColumnBoardService.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"injectables/FileSystemAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/TestHelper.html":{},"classes/UpdateElementContentBodyParams.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["text(value",{"_index":16755,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["text.length",{"_index":19462,"title":{},"body":{"classes/TestHelper.html":{}}}],["text.replace(/[^\\da",{"_index":21301,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["text.replace(regex",{"_index":13776,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["text.types.ts",{"_index":16733,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:14",{"_index":16735,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:20",{"_index":16736,"title":{},"body":{"classes/RichText.html":{}}}],["text.types.ts:5",{"_index":16734,"title":{},"body":{"classes/RichText.html":{}}}],["text.validator.ts",{"_index":22612,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["text1",{"_index":4761,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text2",{"_index":4781,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text3",{"_index":4797,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["text4",{"_index":4810,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["textutils",{"_index":22597,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["textvalidator",{"_index":22613,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["tha",{"_index":3607,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["that's",{"_index":938,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["themself",{"_index":23144,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["themselves",{"_index":22804,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["then((pseudonymdo",{"_index":14942,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["then((resp",{"_index":2349,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["there's",{"_index":19063,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["therefore",{"_index":6637,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"controllers/UserLoginMigrationController.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["things",{"_index":21701,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["think",{"_index":22563,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["third",{"_index":21870,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["this(entityclass",{"_index":2546,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this._allowemptyquery",{"_index":17733,"title":{},"body":{"classes/Scope.html":{}}}],["this._collectdefaultmetrics",{"_index":16233,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._collectmetricsroutemetrics",{"_index":16234,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._columnboardid",{"_index":4823,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._columnboardid.tohexstring",{"_index":4827,"title":{},"body":{"entities/ColumnBoardTarget.html":{}}}],["this._contextid",{"_index":4720,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contextid.tohexstring",{"_index":4722,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._contextid?.tohexstring",{"_index":11773,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._contexttype",{"_index":4718,"title":{},"body":{"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{}}}],["this._creatorid",{"_index":9648,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._creatorid.tohexstring",{"_index":9609,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._em.aggregate(fileentity",{"_index":10065,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.aggregate(lessonentity",{"_index":13895,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.aggregate(user",{"_index":20728,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.assign(fetchedentity",{"_index":2457,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.create(this.entityname",{"_index":2451,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.find(account",{"_index":924,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.find(coursegroup",{"_index":18417,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.find(fileentity",{"_index":10058,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.find(ltitool",{"_index":14349,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.find(role",{"_index":16851,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.find(storageproviderentity",{"_index":18207,"title":{},"body":{"injectables/StorageProviderRepo.html":{}}}],["this._em.find(system",{"_index":18684,"title":{},"body":{"injectables/SystemRepo.html":{}}}],["this._em.find(teamentity",{"_index":19404,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.find(this.entityname",{"_index":935,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.find(user",{"_index":20117,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findandcount",{"_index":944,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["this._em.findandcount(course",{"_index":6807,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findandcount(coursegroup",{"_index":6660,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.findandcount(filerecord",{"_index":9873,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findandcount(importuser",{"_index":12494,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findandcount(lessonentity",{"_index":13892,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.findandcount(news",{"_index":14750,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findandcount(schoolentity",{"_index":13551,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findandcount(task",{"_index":19067,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.findandcount(this.entityname",{"_index":18413,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.findandcount(user",{"_index":20108,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.findone(account",{"_index":920,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findone(board",{"_index":3642,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findone(importuser",{"_index":12475,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findone(ltitool",{"_index":14352,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findone(schoolentity",{"_index":13549,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.findone(this.entityname",{"_index":8788,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["this._em.findone(userloginmigration",{"_index":20399,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.findoneorfail",{"_index":5788,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.findoneorfail(account",{"_index":925,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.findoneorfail(board",{"_index":3646,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.findoneorfail(course",{"_index":3644,"title":{},"body":{"injectables/BoardRepo.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.findoneorfail(federalstate",{"_index":9463,"title":{},"body":{"injectables/FederalStateRepo.html":{}}}],["this._em.findoneorfail(filerecord",{"_index":9874,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this._em.findoneorfail(importuser",{"_index":12472,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.findoneorfail(ltitool",{"_index":14351,"title":{},"body":{"injectables/LtiToolRepo.html":{}}}],["this._em.findoneorfail(news",{"_index":14746,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.findoneorfail(role",{"_index":16849,"title":{},"body":{"injectables/RoleRepo.html":{}}}],["this._em.findoneorfail(schoolyear",{"_index":17713,"title":{},"body":{"injectables/SchoolYearRepo.html":{}}}],["this._em.findoneorfail(sharetoken",{"_index":17999,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["this._em.findoneorfail(teamentity",{"_index":19400,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.findoneorfail(this.entityname",{"_index":2456,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{},"injectables/UserDORepo.html":{}}}],["this._em.findoneorfail(videoconference",{"_index":21191,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["this._em.flush",{"_index":929,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/BaseDORepo.html":{},"injectables/UserRepo.html":{}}}],["this._em.getreference(entityname",{"_index":927,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.getreference(externaltoolentity",{"_index":17423,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.getreference(role",{"_index":20139,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.getreference(schoolentity",{"_index":17421,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(schoolexternaltoolentity",{"_index":5804,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this._em.getreference(system",{"_index":13575,"title":{},"body":{"injectables/LegacySchoolRepo.html":{},"injectables/UserLoginMigrationRepo.html":{}}}],["this._em.getreference(userloginmigration",{"_index":13577,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this._em.map(fileentity",{"_index":10067,"title":{},"body":{"injectables/FilesRepo.html":{}}}],["this._em.map(lessonentity",{"_index":13897,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.map(user",{"_index":20741,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.nativedelete(importuser",{"_index":12499,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.nativedelete(this.entityname",{"_index":2482,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this._em.persist(account",{"_index":928,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.persistandflush(board",{"_index":3645,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.persistandflush(entities",{"_index":2445,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/BaseRepo.html":{}}}],["this._em.populate(columnboardelements",{"_index":3656,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(course",{"_index":6799,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this._em.populate(coursegroup",{"_index":6659,"title":{},"body":{"injectables/CourseGroupRepo.html":{}}}],["this._em.populate(coursenews",{"_index":14756,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(importuser.user",{"_index":12473,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(lesson",{"_index":13887,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(lessonelements",{"_index":3654,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(lessons",{"_index":13893,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this._em.populate(newsentities",{"_index":14751,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(newsentity",{"_index":14747,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(role",{"_index":19407,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(schoolnews",{"_index":14754,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(submissions",{"_index":18418,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this._em.populate(taskelements",{"_index":3652,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this._em.populate(tasks",{"_index":18983,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this._em.populate(teamnews",{"_index":14755,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this._em.populate(teamuser",{"_index":19402,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this._em.populate(user",{"_index":20707,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.populate(userentity",{"_index":20110,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this._em.populate(usermatches",{"_index":12498,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this._em.populate(users",{"_index":20743,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this._em.remove(entities",{"_index":2472,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this._em.removeandflush(account",{"_index":934,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this._em.removeandflush(entities",{"_index":2587,"title":{},"body":{"injectables/BaseRepo.html":{}}}],["this._id",{"_index":7418,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this._instance",{"_index":16240,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._iscopyfrom",{"_index":9749,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._iscopyfrom?.tohexstring",{"_index":9744,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._isenabled",{"_index":16230,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._lockid",{"_index":9652,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._lockid?.tohexstring",{"_index":9610,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._oauthconfigcache",{"_index":13051,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this._operator",{"_index":17732,"title":{},"body":{"classes/Scope.html":{}}}],["this._origintoolid",{"_index":7016,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._origintoolid?.tohexstring",{"_index":6986,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"entities/LtiTool.html":{}}}],["this._ownerid",{"_index":9644,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._ownerid.tohexstring",{"_index":9608,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._parentid",{"_index":9642,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._parentid.tohexstring",{"_index":9742,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this._parentid?.tohexstring",{"_index":9607,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this._port",{"_index":16232,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._queries",{"_index":17735,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.length",{"_index":17734,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries.push(query",{"_index":17737,"title":{},"body":{"classes/Scope.html":{}}}],["this._queries[0",{"_index":17736,"title":{},"body":{"classes/Scope.html":{}}}],["this._route",{"_index":16231,"title":{},"body":{"classes/PrometheusMetricsConfig.html":{}}}],["this._schoolid",{"_index":9746,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this._schoolid.tohexstring",{"_index":9743,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.abbreviation",{"_index":6360,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.acceptconsentrequest",{"_index":15464,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.acceptloginrequest(currentuserid",{"_index":15608,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.accesskeyid",{"_index":11782,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.accesstoken",{"_index":14118,"title":{},"body":{"classes/LoginDto.html":{},"classes/LoginResponse.html":{},"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.accountdb.delete(accountid",{"_index":1151,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.deletebyuserid(userid",{"_index":1155,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.findmany(offset",{"_index":1157,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.save(accountdto",{"_index":1093,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.updatelasttriedfailedlogin(accountid",{"_index":1144,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.updatepassword(accountid",{"_index":1148,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountdb.updateusername(accountid",{"_index":1140,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.delete(accountid",{"_index":1153,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.deletebyuserid(userid",{"_index":1156,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.save(newaccount",{"_index":1100,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.updatelasttriedfailedlogin(accountid",{"_index":1147,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.updatepassword(accountid",{"_index":1149,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountidm.updateusername(accountid",{"_index":1142,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl",{"_index":1084,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findbyid(id",{"_index":1085,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findbyuserid(userid",{"_index":1087,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findbyuseridorfail(userid",{"_index":1088,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findbyusernameandsystemid(username",{"_index":1089,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.findmultiplebyuserid(userids",{"_index":1086,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.searchbyusernameexactmatch(username",{"_index":1091,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.searchbyusernamepartialmatch(username",{"_index":1090,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountimpl.validatepassword(account",{"_index":1150,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.accountlookupservice.getinternalid(id",{"_index":1216,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyid(internalid",{"_index":1209,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.deletebyuserid(userid",{"_index":1210,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyid(accountid",{"_index":1261,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyid(internalid",{"_index":1187,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findbyuserid(userid",{"_index":1190,"title":{},"body":{"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{}}}],["this.accountrepo.findbyusernameandsystemid(username",{"_index":1192,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmany(offset",{"_index":1221,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.findmultiplebyuserid(userids",{"_index":1188,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.save(account",{"_index":1205,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(email",{"_index":1244,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.accountrepo.searchbyusernameexactmatch(username",{"_index":1213,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountrepo.searchbyusernamepartialmatch(username",{"_index":1211,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.accountservice.findbyuserid(user.id",{"_index":15165,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["this.accountservice.findbyuseridorfail(currentuserid",{"_index":20650,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.findbyuseridorfail(userid",{"_index":20797,"title":{},"body":{"injectables/UserService.html":{}}}],["this.accountservice.findbyusernameandsystemid(username",{"_index":1823,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.findmany(skip",{"_index":13182,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.accountservice.save(account",{"_index":20661,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.save(accountcopy",{"_index":20656,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.accountservice.savewithvalidation",{"_index":15961,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.accountservice.searchbyusernameexactmatch(username",{"_index":1824,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountservice.updatelasttriedfailedlogin(id",{"_index":1851,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.accountuc.deleteaccountbyid(currentuser",{"_index":585,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.findaccountbyid(currentuser",{"_index":568,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.replacemytemporarypassword(currentuser.userid",{"_index":587,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.searchaccounts(currentuser",{"_index":566,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.updateaccountbyid(currentuser",{"_index":583,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountuc.updatemyaccount(currentuser.userid",{"_index":581,"title":{},"body":{"controllers/AccountController.html":{}}}],["this.accountvalidationservice.isuniqueemail(dto.username",{"_index":1129,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.activated",{"_index":423,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{}}}],["this.active",{"_index":11877,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.adapter.createteam(team",{"_index":4657,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.deleteteam(teamid",{"_index":4656,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteam(team",{"_index":4658,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.adapter.updateteampermissionsforrole",{"_index":4653,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.addclientprotocolmappers(defaultclientinternalid",{"_index":12952,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.addexternaloauth2datatoconfig(tool.config",{"_index":9129,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.addlessons(builder",{"_index":4979,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addparameters(propertydata",{"_index":283,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.addproperty(propertydata",{"_index":300,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.addquery",{"_index":5899,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/ExternalToolScope.html":{},"classes/FileRecordScope.html":{},"classes/ImportUserScope.html":{},"classes/LessonScope.html":{},"classes/NewsScope.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SystemScope.html":{},"classes/TaskScope.html":{},"classes/UserScope.html":{}}}],["this.addquery(emptyresultquery",{"_index":14788,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(queries[0",{"_index":14789,"title":{},"body":{"classes/NewsScope.html":{}}}],["this.addquery(query",{"_index":9908,"title":{},"body":{"classes/FileRecordScope.html":{},"classes/TaskScope.html":{}}}],["this.addroom(room",{"_index":7371,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.addtasks(builder",{"_index":4980,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.addteacherroleifadmin(externaluser",{"_index":17268,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.adminidandtoken",{"_index":1392,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.alias",{"_index":11937,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{}}}],["this.allowmodstounmuteusers",{"_index":2148,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.allrooms",{"_index":7381,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.amqpconnection.publish",{"_index":1453,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.amqpconnection.publish(this.options.exchange",{"_index":14404,"title":{},"body":{"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.amqpconnection.request",{"_index":10300,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.amqpconnectionmanager.getconnections().map((connection",{"_index":16489,"title":{},"body":{"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{}}}],["this.ancestorids.length",{"_index":3582,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.ancestorids[this.ancestorids.length",{"_index":3576,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.antareskey",{"_index":6356,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.app",{"_index":1729,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.appendnotcontainedboardelements(boardelementtargets",{"_index":2733,"title":{},"body":{"entities/Board.html":{}}}],["this.applypropertiestopathparams(url",{"_index":248,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.attendeepw",{"_index":2146,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.aud",{"_index":12672,"title":{},"body":{"interfaces/JwtConstants.html":{}}}],["this.authendpoint",{"_index":11865,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.authenticationservice.checkbrutforce(account",{"_index":13343,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.generatejwt(currentuser",{"_index":15845,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.authenticationservice.loadaccount",{"_index":13365,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(`${externalschoolid}/${username}`.tolowercase",{"_index":13362,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.authenticationservice.loadaccount(username",{"_index":14007,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizepassword(password",{"_index":13349,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.normalizeusername(username",{"_index":13348,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authenticationservice.removejwtfromwhitelist(userjwt",{"_index":15843,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.authenticationservice.updatelasttriedfailedlogin(account.id",{"_index":13351,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{}}}],["this.authorisation.checkpermissionbyreferences",{"_index":13846,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisation.getuserwithpermissions(userid",{"_index":13838,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisation.haspermission(user",{"_index":13841,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.authorisationservice",{"_index":7956,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorisationservice.hascoursewritepermission(user",{"_index":17050,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.authorisationservice.haspermission(this.user",{"_index":7966,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.authorization.checkpermissionbyreferences(userid",{"_index":6584,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["this.authorizationhelper.hasaccesstoentity",{"_index":6817,"title":{},"body":{"injectables/CourseRule.html":{}}}],["this.authorizationhelper.hasaccesstoentity(user",{"_index":6667,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationhelper.hasallpermissions(user",{"_index":2056,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/BoardDoRule.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseRule.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SubmissionRule.html":{},"injectables/TaskRule.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationhelper.hasallpermissionsbyrole(isteamuser.role",{"_index":19339,"title":{},"body":{"injectables/TeamRule.html":{}}}],["this.authorizationhelper.hasoneofpermissions(user",{"_index":2057,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.authorizationservice.checkallpermissions(user",{"_index":9217,"title":{},"body":{"injectables/ExternalToolUc.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/ShareTokenUC.html":{}}}],["this.authorizationservice.checkentitypermissions",{"_index":14843,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkentitypermissions(userid",{"_index":14827,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.checkoneofpermissions(user",{"_index":19187,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.checkpermission",{"_index":18491,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.authorizationservice.checkpermission(user",{"_index":3832,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ElementUc.html":{},"injectables/LessonUC.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.checkpermissionbyreferences",{"_index":19847,"title":{},"body":{"injectables/ToolPermissionHelper.html":{}}}],["this.authorizationservice.checkpermissionbyreferences(userid",{"_index":6597,"title":{},"body":{"injectables/CourseExportUc.html":{},"injectables/ShareTokenUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.getentitypermissions(userid",{"_index":14859,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getpermittedentities(userid",{"_index":14855,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuser.userid",{"_index":15437,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(currentuserid",{"_index":15615,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.authorizationservice.getuserwithpermissions(userid",{"_index":3830,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/LessonUC.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasallpermissions(user",{"_index":19203,"title":{},"body":{"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.hasoneofpermissions(user",{"_index":19210,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.authorizationservice.haspermission(user",{"_index":4209,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.haspermission(userid",{"_index":23065,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.haspermissionbyreferences(userid",{"_index":21292,"title":{},"body":{"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationservice.haspermissions(user",{"_index":23087,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.authorizationurl",{"_index":11924,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.authorizeaccess",{"_index":12794,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.authservice.checkpermission",{"_index":4650,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.authservice.checkpermissionbyreferences(userid",{"_index":13627,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.authservice.generatejwt(userinfo",{"_index":14158,"title":{},"body":{"injectables/LoginUc.html":{}}}],["this.authservice.getuserwithpermissions(currentuserid",{"_index":4651,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.availabledate",{"_index":11976,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.axiosconfig",{"_index":10999,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.basepath",{"_index":11125,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.baseroute",{"_index":1730,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.baseurl",{"_index":2622,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/CalendarService.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchData.html":{}}}],["this.bbbresponse",{"_index":20863,"title":{},"body":{"classes/VideoConference-1.html":{}}}],["this.bbbservice.create(configbuilder.build",{"_index":20993,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.end(config",{"_index":21061,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.bbbservice.getmeetinginfo(config",{"_index":21085,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.bbbservice.getmeetinginfo(new",{"_index":20981,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.bbbservice.join(joinbuilder.build",{"_index":21117,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.bbbsettings.host",{"_index":2337,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.presentationurl",{"_index":2339,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.bbbsettings.salt",{"_index":2338,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.board",{"_index":7955,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.board.getelements",{"_index":7958,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.boardcopyservice.copyboard",{"_index":6551,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo",{"_index":3831,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["this.boarddoauthorizableservice.getboardauthorizable(boarddo).then((boarddoauthorizable",{"_index":4207,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.boarddorepo.delete(domainobject",{"_index":3383,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findbyclassandid(card",{"_index":4145,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findbyclassandid(column",{"_index":4915,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findbyclassandid(columnboard",{"_index":4747,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findbyid(elementid",{"_index":5548,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findbyid(id",{"_index":3130,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.findbyid(rootid",{"_index":3138,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.boarddorepo.findbyids(cardids",{"_index":4146,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findidsbyexternalreference(reference",{"_index":4748,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.findparentofid(card.id",{"_index":4156,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.findparentofid(child.id",{"_index":3387,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(column.id",{"_index":4919,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.findparentofid(domainobject.id",{"_index":3380,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.findparentofid(element.id",{"_index":5557,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.findparentofid(submissionitem.id",{"_index":18352,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.getancestorids(boarddo",{"_index":3133,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.boarddorepo.gettitlesbyids(boardids",{"_index":4750,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(board",{"_index":4753,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(card",{"_index":4157,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddorepo.save(column",{"_index":4920,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddorepo.save(columnboard",{"_index":4751,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddorepo.save(element",{"_index":5558,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(parent.children",{"_index":3382,"title":{},"body":{"injectables/BoardDoService.html":{},"injectables/CardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementService.html":{}}}],["this.boarddorepo.save(sourceparent.children",{"_index":3389,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorepo.save(submissioncontainer.children",{"_index":18351,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["this.boarddorepo.save(targetparent.children",{"_index":3391,"title":{},"body":{"injectables/BoardDoService.html":{}}}],["this.boarddorule",{"_index":17086,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.boarddoservice.deletewithdescendants(board",{"_index":4752,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.boarddoservice.deletewithdescendants(card",{"_index":4154,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.deletewithdescendants(column",{"_index":4917,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.deletewithdescendants(element",{"_index":5552,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boarddoservice.move(card",{"_index":4155,"title":{},"body":{"injectables/CardService.html":{}}}],["this.boarddoservice.move(column",{"_index":4918,"title":{},"body":{"injectables/ColumnService.html":{}}}],["this.boarddoservice.move(element",{"_index":5553,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.boardelementtype",{"_index":4928,"title":{},"body":{"entities/ColumnboardBoardElement.html":{},"entities/LessonBoardElement.html":{},"entities/TaskBoardElement.html":{}}}],["this.boardmanagementuc.createboard(courseid",{"_index":3467,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.boardnodeauthorizableservice",{"_index":11657,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.boardnoderepo",{"_index":3346,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(boarddo.id",{"_index":3342,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(childid",{"_index":3339,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(id",{"_index":3314,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.findbyid(parent.id",{"_index":16563,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.boardnoderepo.finddescendants(boardnode",{"_index":3315,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardnoderepo.finddescendantsofmany(boardnodes",{"_index":3322,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.boardrepo.findbycourseid(course.id",{"_index":17052,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.findbycourseid(courseid",{"_index":6541,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.boardrepo.findbycourseid(roomid",{"_index":17047,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(board",{"_index":17026,"title":{},"body":{"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{}}}],["this.boardrepo.save(boardcopy",{"_index":3045,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.boarduc.createcard(currentuser.userid",{"_index":4885,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.createcolumn(currentuser.userid",{"_index":2981,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deleteboard(currentuser.userid",{"_index":2979,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.deletecard(currentuser.userid",{"_index":4069,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.deletecolumn(currentuser.userid",{"_index":4883,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.findboard(currentuser.userid",{"_index":2965,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.findboardcontext(currentuser.userid",{"_index":2970,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.movecard(currentuser.userid",{"_index":4058,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.movecolumn(currentuser.userid",{"_index":4876,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.boarduc.updateboardtitle(currentuser.userid",{"_index":2975,"title":{},"body":{"controllers/BoardController.html":{}}}],["this.boarduc.updatecardheight(currentuser.userid",{"_index":4063,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.updatecardtitle(currentuser.userid",{"_index":4066,"title":{},"body":{"controllers/CardController.html":{}}}],["this.boarduc.updatecolumntitle(currentuser.userid",{"_index":4880,"title":{},"body":{"controllers/ColumnController.html":{}}}],["this.bsonconverter.deserialize(bsondocuments",{"_index":11197,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bsonconverter.serialize(jsondocuments",{"_index":11215,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.bucket",{"_index":9632,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.build",{"_index":7157,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["this.build(params",{"_index":2549,"title":{},"body":{"classes/BaseFactory.html":{},"classes/DoBaseFactory.html":{}}}],["this.build(requiredpermissions",{"_index":1879,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["this.buildchildren(boardnode",{"_index":3225,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.buildcopyentitydict(elementstatus).foreach((el",{"_index":6278,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.builddtowithelements(mappedelements",{"_index":7961,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.buildfile",{"_index":5505,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildgroupsclaim(teams",{"_index":12171,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.buildrichtext",{"_index":5507,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildscope(query",{"_index":5785,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["this.buildsubmissioncontainer",{"_index":5509,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["this.buildtokenrequestpayload(code",{"_index":15101,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.buildtoollaunchdatafromconcreteconfig",{"_index":224,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.buildtoollaunchdatafromexternaltool(data.externaltool",{"_index":219,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.buildtoollaunchdatafromtools(data",{"_index":222,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.buildtoollaunchrequestpayload(url",{"_index":232,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.buildtoolreference(userid",{"_index":19902,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.buildurl(toollaunchdata",{"_index":230,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.byuseridquery(userid",{"_index":18415,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.cacheexpiration",{"_index":16850,"title":{},"body":{"injectables/RoleRepo.html":{},"injectables/TeamsRepo.html":{}}}],["this.cachemanager.del(redisidentifier",{"_index":12739,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.cacheservice.getstoretype",{"_index":12738,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["this.calculatenumberofsubmitters(gradedsubmissions",{"_index":12046,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calculatenumberofsubmitters(submittedsubmissions",{"_index":12044,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.calendarmapper.maptodto(resp.data",{"_index":3977,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.calendarservice.findevent(userid",{"_index":21305,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.callkcadminclient",{"_index":12802,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.cancelbuttonurl",{"_index":16019,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.caption",{"_index":9534,"title":{},"body":{"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{}}}],["this.cardid",{"_index":4174,"title":{},"body":{"classes/CardSkeletonResponse.html":{}}}],["this.cards",{"_index":4894,"title":{},"body":{"classes/ColumnResponse.html":{}}}],["this.cardservice.create(column",{"_index":3821,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.cardservice.delete(card",{"_index":3829,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.cardservice.findbyid(cardid",{"_index":3823,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{}}}],["this.cardservice.findbyid(targetcardid",{"_index":4205,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.findbyids(cardids",{"_index":4197,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.cardservice.move(card",{"_index":3826,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.cardservice.updateheight(card",{"_index":3827,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.cardservice.updatetitle(card",{"_index":3828,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.carduc.createelement(currentuser.userid",{"_index":4077,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.deleteelement(currentuser.userid",{"_index":8077,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.carduc.findcards(currentuser.userid",{"_index":4054,"title":{},"body":{"controllers/CardController.html":{}}}],["this.carduc.moveelement",{"_index":8069,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.cause",{"_index":3890,"title":{},"body":{"classes/BusinessError.html":{}}}],["this.challenge",{"_index":5478,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.checkandaddprefix(baseroute",{"_index":1731,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkandaddprefix(routenameinput",{"_index":1769,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.checkavaiblelanguages(params.language",{"_index":20824,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.checkavailablelanguages(newlanguage",{"_index":20811,"title":{},"body":{"injectables/UserService.html":{}}}],["this.checkcontextreadpermission(userid",{"_index":18087,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcreatepermission(userid",{"_index":18094,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkcredentials(account",{"_index":13345,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkcredentials(password",{"_index":14012,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.checkduplicateincontext(contextexternaltool",{"_index":5988,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["this.checkerror(response",{"_index":10303,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.checkexpired(sharetoken",{"_index":18043,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.checkfeatureenabled",{"_index":6583,"title":{},"body":{"injectables/CourseCopyUC.html":{}}}],["this.checkfeatureenabled(payload.parenttype",{"_index":18081,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkfeatureenabled(sharetoken.payload.parenttype",{"_index":18093,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkifpreviewpossible(filerecord",{"_index":16167,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.checklistscontainingequalentities(reorderedids",{"_index":2721,"title":{},"body":{"entities/Board.html":{}}}],["this.checkofficialschoolnumbersmatch(schooldo",{"_index":17646,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.checkoptionalparameter(param",{"_index":5353,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparameterregex(foundentry",{"_index":5355,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparametertype(foundentry",{"_index":5354,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkparentwritepermission(userid",{"_index":18082,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.checkpermission(userid",{"_index":3810,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/ElementUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SubmissionItemUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.checkpreconditions(userid",{"_index":18168,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.checkscopeandvalidateparameter(validatabletool",{"_index":5348,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.checkstreamresponsive(stream",{"_index":17143,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.checkvalue(account.userid",{"_index":13342,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(school.externalid",{"_index":13353,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkvalue(user.ldapdn",{"_index":13344,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.checkversionmatch(schoolexternaltool.toolversion",{"_index":17539,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.children.filter((ch",{"_index":2838,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.length",{"_index":2831,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.some((obj",{"_index":2842,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.children.splice(position",{"_index":2837,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.childrenmap[boardnode.path",{"_index":3219,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.path].push(boardnode",{"_index":3220,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.childrenmap[boardnode.pathofchildren",{"_index":3252,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.classesrepo.findallbyuserid(userid",{"_index":4404,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classesrepo.updatemany(updatedclasses",{"_index":4409,"title":{},"body":{"injectables/ClassService.html":{}}}],["this.classnames",{"_index":12370,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.classnames.push(...props.classnames",{"_index":11467,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.classvalidatormetadatastorage.gettargetvalidationmetadatas",{"_index":8166,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.cleanupinput(username",{"_index":14006,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.cleanuppath(this.baseroute",{"_index":1770,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.client",{"_index":11551,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"injectables/S3ClientAdapter.html":{}}}],["this.client.addaccesstogroupfolder(folderid",{"_index":14929,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.addusertogroup(nextclouduserid",{"_index":14958,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.changegroupfoldername(folderid",{"_index":14927,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroup(groupid",{"_index":14918,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.creategroupfolder(foldername",{"_index":14928,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroup(groupid",{"_index":14915,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.deletegroupfolder(folderid",{"_index":14916,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupfolderidforgroupid(groupid",{"_index":14911,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.findgroupid(nextcloudstrategy.generategroupid(dto",{"_index":14909,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getgroupusers(groupid",{"_index":14934,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(pseudonymdo.pseudonym",{"_index":14943,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(team.id",{"_index":14917,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.getnamewithprefix(teamid",{"_index":14914,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.oidcinternalname",{"_index":14960,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.removeuserfromgroup(nextclouduserid",{"_index":14956,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.renamegroup(groupid",{"_index":14932,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client.send(req",{"_index":17139,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.client.setgrouppermissions(groupid",{"_index":14912,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.client_id",{"_index":1609,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/ConsentSessionResponse.html":{}}}],["this.client_name",{"_index":5477,"title":{},"body":{"classes/ConsentSessionResponse.html":{}}}],["this.client_secret",{"_index":1611,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.clientid",{"_index":11854,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.clientsecret",{"_index":11855,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.clienturl",{"_index":15742,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.clone(newpropsfactory",{"_index":2557,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.closedat",{"_index":20234,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.closedat.toisostring",{"_index":20242,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["this.closeuserloginmigrationuc.closemigration",{"_index":20333,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.code",{"_index":1617,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.color",{"_index":6435,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.columnboardid",{"_index":2788,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{}}}],["this.columnboardservice.createwelcomecolumnboard(coursereference",{"_index":17029,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.delete(board",{"_index":3812,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findbyid(boardid",{"_index":3809,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findbyid(targetboardid",{"_index":3818,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardservice.findidsbyexternalreference(coursereference",{"_index":17027,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columnboardservice.getboardobjecttitlesbyid(columnboardids",{"_index":4843,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.columnboardservice.updatetitle(board",{"_index":3813,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnboardtargetservice.findorcreatetargets(columnboardids",{"_index":17031,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.columns",{"_index":3667,"title":{},"body":{"classes/BoardResponse.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.columnservice.create(board",{"_index":3814,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.delete(column",{"_index":3816,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.findbyid(columnid",{"_index":3815,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.findbyid(targetcolumnid",{"_index":3825,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.move(column",{"_index":3819,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.columnservice.updatetitle(column",{"_index":3820,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.comment",{"_index":11797,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.commontoolservice.determinetoolconfigurationstatus",{"_index":19826,"title":{},"body":{"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.commontoolvalidationservice.checkcustomparameterentries(loadedexternaltool",{"_index":5993,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.checkforduplicateparameters(schoolexternaltool",{"_index":17538,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["this.commontoolvalidationservice.isvaluevalidfortype(param.type",{"_index":8704,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.compareparameters(oldtool.parameters",{"_index":9296,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.completed",{"_index":18318,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.config",{"_index":2084,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{}}}],["this.config.bucket",{"_index":17138,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.config.bucket}/${path.sourcepath",{"_index":17176,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.configservice.get('available_languages').includes(language",{"_index":20813,"title":{},"body":{"injectables/UserService.html":{}}}],["this.configservice.get('available_languages').includes(settedlanguage",{"_index":20823,"title":{},"body":{"injectables/UserUc.html":{}}}],["this.configservice.get('feature_identity_management_login_enabled",{"_index":1083,"title":{},"body":{"injectables/AccountService.html":{},"injectables/LocalStrategy.html":{}}}],["this.configservice.get('feature_identity_management_store_enabled",{"_index":809,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{}}}],["this.configservice.get('feature_imscc_course_export_enabled",{"_index":6508,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.configservice.get('incoming_request_timeout_copy_api",{"_index":10298,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.configservice.get('login_block_time",{"_index":1844,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.configservice.get('sc_domain",{"_index":12941,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.configservice.get(placeholder",{"_index":11264,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.connect(system",{"_index":13297,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.consentflowuc.getconsentrequest(params.challenge",{"_index":15559,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.consentflowuc.patchconsentrequest",{"_index":15562,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.console.info('connected",{"_index":11595,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`cleaned",{"_index":11601,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`configured",{"_index":11613,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`migrated",{"_index":11625,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.console.info(`seeded",{"_index":11607,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.consolewriter.info('error",{"_index":3464,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info('schulcloud",{"_index":17750,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`error",{"_index":3528,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.consolewriter.info(`input",{"_index":17751,"title":{},"body":{"classes/ServerConsole.html":{}}}],["this.consolewriter.info(`success",{"_index":3468,"title":{},"body":{"classes/BoardManagementConsole.html":{}}}],["this.consolewriter.info(report",{"_index":7678,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.constructor",{"_index":1756,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/BaseFactory.html":{},"classes/TestApiClient.html":{}}}],["this.content",{"_index":3415,"title":{},"body":{"classes/BoardElementResponse.html":{},"classes/ContentElementUpdateVisitor.html":{},"entities/CourseNews.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/RichText.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"entities/SchoolNews.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"entities/TeamNews.html":{}}}],["this.content.caption",{"_index":5580,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.content.duedate",{"_index":5588,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.content.inputformat",{"_index":5584,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.contentelementfactory.build(contentelementtype.rich_text",{"_index":4813,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.contentelementfactory.build(type",{"_index":5550,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["this.contentelementservice.create(card",{"_index":4159,"title":{},"body":{"injectables/CardService.html":{}}}],["this.contents",{"_index":11332,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.contenttype",{"_index":8526,"title":{},"body":{"classes/ExternalToolLogo.html":{}}}],["this.context",{"_index":13428,"title":{},"body":{"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"classes/ShareTokenDO.html":{}}}],["this.context.action",{"_index":10374,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.context.requiredpermissions.join",{"_index":10375,"title":{},"body":{"classes/ForbiddenLoggableException.html":{}}}],["this.contextexternaltool.id",{"_index":14528,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.contextexternaltoolauthorizableservice",{"_index":11659,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltool",{"_index":5928,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.delete(contextexternaltools",{"_index":5927,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.deletebyschoolexternaltoolids(schoolexternaltoolids",{"_index":9142,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find",{"_index":5926,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.find(query",{"_index":5922,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(contextexternaltoolid",{"_index":5923,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrepo.findbyid(id",{"_index":5632,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{}}}],["this.contextexternaltoolrepo.save(contextexternaltool",{"_index":5925,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["this.contextexternaltoolrule",{"_index":17087,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.contextexternaltoolservice.deletebyschoolexternaltoolid(schoolexternaltoolid",{"_index":17527,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.contextexternaltoolservice.deletecontextexternaltool(tool",{"_index":5966,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.findallbycontext",{"_index":5967,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.contextexternaltoolservice.findcontextexternaltools",{"_index":5995,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["this.contextexternaltoolservice.getcontextexternaltoolbyid",{"_index":5965,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{}}}],["this.contextexternaltoolservice.getcontextexternaltoolbyid(contexttoolid",{"_index":5970,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.savecontextexternaltool",{"_index":5960,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolservice.savecontextexternaltool(updated",{"_index":5964,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltooluc.createcontextexternaltool",{"_index":19625,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.deletecontextexternaltool(currentuser.userid",{"_index":19630,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltool",{"_index":19637,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.getcontextexternaltoolsforcontext",{"_index":19632,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltooluc.updatecontextexternaltool",{"_index":19641,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.contextexternaltoolvalidationservice.validate(contextexternaltooldto",{"_index":5958,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextexternaltoolvalidationservice.validate(updated",{"_index":5962,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.contextid",{"_index":5691,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.contextref",{"_index":5619,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.contexttoolid",{"_index":19857,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.contexttype",{"_index":5693,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["this.converterutil.xml2object",{"_index":2351,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.converterutil.xml2object>(resp.data",{"_index":2363,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.cookies",{"_index":10996,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.copy(copypaths",{"_index":17161,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.copyboardelements(boardelements",{"_index":3035,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copycourse(userid",{"_index":18097,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copycourseentity",{"_index":6550,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyfilesservice.copyfilesofentity",{"_index":13742,"title":{},"body":{"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.buildcopyentitydict(boardstatus",{"_index":3078,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copyhelperservice.buildcopyentitydict(status",{"_index":13739,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(newname",{"_index":6548,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.copyhelperservice.derivecopyname(originallesson.name",{"_index":13852,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.copyhelperservice.derivecopyname(originaltaskname",{"_index":18889,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.copyhelperservice.derivestatusfromelements(copiedtasksstatus",{"_index":13810,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(elements",{"_index":3039,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/CourseCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/TaskCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(elementsstatus",{"_index":13822,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copyhelperservice.derivestatusfromelements(filestatuses",{"_index":6233,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.copyingsince",{"_index":6441,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"interfaces/ICourseProperties.html":{}}}],["this.copylesson(element.target",{"_index":3057,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copylesson(userid",{"_index":18100,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copylessoncontent(lesson.contents",{"_index":13729,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copylinkedmaterials(lesson",{"_index":13731,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copylinkedtasks(lessoncopy",{"_index":13736,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.copytask(element.target",{"_index":3053,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.copytask(userid",{"_index":18101,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.copytaskentity(params",{"_index":18851,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.countyid",{"_index":6354,"title":{},"body":{"classes/County.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{}}}],["this.course",{"_index":2705,"title":{},"body":{"entities/Board.html":{},"entities/CourseGroup.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.color",{"_index":12060,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.id",{"_index":12057,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isfinished",{"_index":12014,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.isusersubstitutionteacher(user",{"_index":12040,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.name",{"_index":12056,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.course.school.id",{"_index":11354,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.coursecopyservice.copycourse",{"_index":6586,"title":{},"body":{"injectables/CourseCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.coursecopyuc.copycourse(currentuser.userid",{"_index":17004,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.courseexportservice.exportcourse(courseid",{"_index":6599,"title":{},"body":{"injectables/CourseExportUc.html":{}}}],["this.courseexportuc.exportcourse(urlparams.courseid",{"_index":6509,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.coursegroup",{"_index":11330,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ISubmissionProperties.html":{},"entities/LessonEntity.html":{},"entities/Submission.html":{}}}],["this.coursegroup.getstudentids",{"_index":11811,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.coursegroup.school.id",{"_index":11355,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.coursegrouppermission(user",{"_index":13929,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegrouprepo",{"_index":11643,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.coursegrouprule",{"_index":17078,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.coursegrouprule.haspermission(user",{"_index":13932,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.coursegroups.getitems",{"_index":6462,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.coursegroups.isinitialized(true",{"_index":6458,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.courseid",{"_index":18916,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursename",{"_index":18915,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.coursepermission(user",{"_index":13930,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.courserepo",{"_index":11641,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.courserepo.createcourse(coursecopy",{"_index":6560,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserepo.findallbyuserid",{"_index":7632,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.courserepo.findallbyuserid(user.id",{"_index":19225,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findallbyuserid(userid",{"_index":6546,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/CourseUc.html":{}}}],["this.courserepo.findallforteacherorsubstituteteacher(user.id",{"_index":19224,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.courserepo.findbyid(courseid",{"_index":6540,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.courserepo.findbyid(parentparams.courseid",{"_index":13844,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.courserepo.findbyid(rootboarddo.context.id",{"_index":3141,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.courserepo.findone(roomid",{"_index":17046,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.courserepo.save(coursecopy",{"_index":6562,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.courserule",{"_index":17077,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.courserule.haspermission(user",{"_index":6668,"title":{},"body":{"injectables/CourseGroupRule.html":{},"injectables/LessonRule.html":{},"injectables/TaskRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.findbyid(contextexternaltool.contextref.id",{"_index":317,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.courseservice.findbyid(courseid",{"_index":4973,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/ShareTokenUC.html":{}}}],["this.courseservice.findbyid(scopeid",{"_index":21303,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.courseservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18046,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.courseservice.getcourse(params.courseid",{"_index":23085,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.save(course",{"_index":23090,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseservice.savecourse(course",{"_index":23094,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.courseuc.findallbyuser(currentuser.userid",{"_index":6502,"title":{},"body":{"controllers/CourseController.html":{}}}],["this.create",{"_index":9686,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.create(currentuserid",{"_index":20983,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.create(path",{"_index":17157,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createboardelementfor(target",{"_index":2745,"title":{},"body":{"entities/Board.html":{}}}],["this.createboardforcourse(courseid",{"_index":3643,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.createbucket",{"_index":17156,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.createcards(this.random(1",{"_index":3507,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createclient(provider",{"_index":7845,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.createcolumns(3",{"_index":3503,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createdat",{"_index":620,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountSaveDto.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/County.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TimestampsResponse.html":{},"classes/UserDO.html":{}}}],["this.createelements(1",{"_index":3513,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.createemptyelements(card",{"_index":4153,"title":{},"body":{"injectables/CardService.html":{}}}],["this.createentity(domainobject",{"_index":2442,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createerrorloggable(error",{"_index":10493,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponse(error",{"_index":10503,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforbusinesserror(error",{"_index":10511,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforfeatherserror(error",{"_index":10509,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponsefornesthttpexception(error",{"_index":10513,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createerrorresponseforunknownerror",{"_index":10514,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.createfile(contentrange",{"_index":19465,"title":{},"body":{"classes/TestHelper.html":{}}}],["this.createfileurlreplacements(filedtos",{"_index":6215,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.creategridelement(elementwithposition",{"_index":7554,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.createidentityprovider(configureaction.config",{"_index":12959,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(idpalias",{"_index":12995,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createidpdefaultmapper(oidcconfig.idphint",{"_index":12987,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.createiframesubject(user",{"_index":12170,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.createlogmessageforvalidationerrors(this.error",{"_index":8147,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.createnewentityfromdo(domainobj",{"_index":2471,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewentityfromdo(domainobject",{"_index":2449,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.createnewmigration(schooldo",{"_index":20464,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.createorupdateboardnode(boardnode",{"_index":16573,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.createorupdateidmaccount(account",{"_index":13185,"title":{},"body":{"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.createqueryordermap(options?.order",{"_index":20100,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.createrequest(filesstorageevents.copy_files_of_parent",{"_index":10301,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.createrequest(filesstorageevents.delete_files_of_parent",{"_index":10309,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.createrequest(filesstorageevents.list_files_of_parent",{"_index":10306,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.createrichtextelement",{"_index":4762,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["this.createstatus",{"_index":19209,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.createtaskstatus(task",{"_index":7977,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.createusermigrationdto",{"_index":20657,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.createusersearchindex",{"_index":11227,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.creator",{"_index":11982,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.creatorid",{"_index":6098,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.credentialhash",{"_index":413,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.cruduc.createoauth2client(currentuser",{"_index":15539,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.deleteoauth2client(currentuser",{"_index":15544,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.getoauth2client(currentuser",{"_index":15529,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.listoauth2clients",{"_index":15532,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.cruduc.updateoauth2client(currentuser",{"_index":15541,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.currentredirect",{"_index":10992,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.customs",{"_index":7009,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.dashboard",{"_index":7423,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.dashboardrepo.getdashboardbyid(dashboardid",{"_index":7636,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.getusersdashboard(userid",{"_index":7631,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboardrepo.persistandflush(dashboard",{"_index":7635,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.dashboarduc.getusersdashboard(currentuser.userid",{"_index":7240,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.moveelementondashboard",{"_index":7243,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboarduc.renamegroupondashboard",{"_index":7248,"title":{},"body":{"controllers/DashboardController.html":{}}}],["this.dashboardurl",{"_index":20643,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.data",{"_index":1026,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"classes/AxiosResponseImp.html":{},"classes/CardListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileDto.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Page.html":{},"classes/PublicSystemListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.databasemanagementservice.clearcollection(collectionname",{"_index":11169,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.collectionexists(collectionname",{"_index":11167,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.createcollection(collectionname",{"_index":11170,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.finddocumentsofcollection(collectionname",{"_index":11213,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getcollectionnames",{"_index":11138,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.getdatabasecollection('users",{"_index":11231,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.importcollection",{"_index":11203,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementservice.syncindexes",{"_index":11228,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem",{"_index":7711,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem([collectionname",{"_index":7713,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.exportcollectionstofilesystem(filter",{"_index":7682,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfactories(filter",{"_index":7674,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem",{"_index":7708,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem([collectionname",{"_index":7710,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["this.databasemanagementuc.seeddatabasecollectionsfromfilesystem(filter",{"_index":7675,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["this.databasemanagementuc.syncindexes",{"_index":7683,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"interfaces/Options.html":{}}}],["this.db.collection(collectionname",{"_index":7749,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.createcollection(collectionname",{"_index":7766,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.dropcollection(collectionname",{"_index":7767,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.db.listcollections(undefined",{"_index":7759,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.default",{"_index":7074,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{}}}],["this.default_errorcode",{"_index":15005,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.default_message",{"_index":15003,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.defaultencryptionservice.decrypt(oidcconfig.clientsecret",{"_index":15892,"title":{},"body":{"classes/OidcIdentityProviderMapper.html":{}}}],["this.defaultencryptionservice.encrypt(system.oauthconfig.clientsecret",{"_index":11272,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultencryptionservice.encrypt(system.oidcconfig.clientsecret",{"_index":11275,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.defaultoauthclientbody",{"_index":15443,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.defaultscopes",{"_index":11931,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.defaultvalue",{"_index":7215,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["this.delete",{"_index":9688,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.delete(account",{"_index":932,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.delete(deleteobjects",{"_index":17171,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(filteredpathobjects",{"_index":17187,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.delete(paths",{"_index":17164,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deleted",{"_index":9625,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.deletedat",{"_index":9624,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IUserProperties.html":{},"classes/TimestampsResponse.html":{},"entities/User.html":{}}}],["this.deletedfoldername}/${path",{"_index":17160,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.deletedsince",{"_index":6104,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.deleteentitybyid(entityid",{"_index":2481,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.deleteexternaltoolpseudonymsbyuserid(userid",{"_index":16428,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletefile(file",{"_index":7832,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefileinstorage(file",{"_index":7857,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.deletefilesuc.deletemarkedfiles(thresholddate",{"_index":7790,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.deleteidentityprovider(configureaction.alias",{"_index":12963,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.deletenode(card",{"_index":16526,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(column",{"_index":16524,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(columnboard",{"_index":16522,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(fileelement",{"_index":16529,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(richtextelement",{"_index":16531,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submission",{"_index":16535,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletenode(submissioncontainerelement",{"_index":16533,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.deletepseudonymsbyuserid(userid",{"_index":16427,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.deletesubmissions(task",{"_index":19147,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.derivecopyname(composedname",{"_index":6276,"title":{},"body":{"injectables/CopyHelperService.html":{}}}],["this.derivecopystatus",{"_index":13737,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.derivecopystatus(filecopystatus",{"_index":18853,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.derivecopystatus(filedtos",{"_index":6217,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.derivecoursestatus(originalcourse",{"_index":6555,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.description",{"_index":6428,"title":{},"body":{"entities/Course.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Material.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.descriptioninputformat",{"_index":11973,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.details",{"_index":3889,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{}}}],["this.detectcontenttypeorthrow(buffer",{"_index":8602,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.detectcontenttypeorthrow(logobinarydata",{"_index":8611,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.determinebbbrole(userid",{"_index":21310,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.determineinput(systemid",{"_index":16342,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.determinelaunchrequestmethod(toollaunchdata.properties",{"_index":229,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.determinenewroomsin(rooms",{"_index":7369,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.determinestatus(tool",{"_index":17499,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.displayat",{"_index":6740,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["this.displaycolor",{"_index":6700,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.displayname",{"_index":5621,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolResponse.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.doescourseexist(courseid",{"_index":3500,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.domigration(externalid",{"_index":17642,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.domigration(userdo",{"_index":20651,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.dropcollectionifexists(collectionname",{"_index":11179,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.duedate",{"_index":11978,"title":{},"body":{"interfaces/ITaskParent.html":{},"classes/SubmissionContainerElementContent.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponse.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.elements",{"_index":4111,"title":{},"body":{"classes/CardResponse.html":{},"classes/SingleColumnBoardResponse.html":{}}}],["this.elementservice.create(card",{"_index":4200,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.delete(element",{"_index":4203,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.findbyid",{"_index":18385,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.elementservice.findbyid(contentelementid",{"_index":8095,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementservice.findbyid(elementid",{"_index":4202,"title":{},"body":{"injectables/CardUc.html":{},"injectables/ElementUc.html":{}}}],["this.elementservice.move(element",{"_index":4201,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.elementservice.update(element",{"_index":8093,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.elementuc.createsubmissionitem",{"_index":8080,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.elementuc.updateelementcontent(currentuser.userid",{"_index":8074,"title":{},"body":{"controllers/ElementController.html":{}}}],["this.em",{"_index":8751,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.assign(existing",{"_index":8756,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.assign(existingentity",{"_index":10690,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.find(boardnode",{"_index":3321,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/BoardNodeRepo.html":{}}}],["this.em.find(classentity",{"_index":4432,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.find(columnboardnode",{"_index":3332,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.em.find(columnboardtarget",{"_index":4851,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.find(externaltoolpseudonymentity",{"_index":8750,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.find(pseudonymentity",{"_index":16447,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findone(dashboardgridelementmodel",{"_index":7556,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.findone(dashboardmodelentity",{"_index":7577,"title":{},"body":{"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findone(externaltoolpseudonymentity",{"_index":8749,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findone(groupentity",{"_index":10683,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.findone(pseudonymentity",{"_index":16446,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(boardnode",{"_index":3597,"title":{},"body":{"injectables/BoardNodeRepo.html":{}}}],["this.em.findoneorfail(course",{"_index":3527,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.findoneorfail(dashboardmodelentity",{"_index":7607,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.findoneorfail(externaltoolpseudonymentity",{"_index":8746,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.findoneorfail(pseudonymentity",{"_index":16445,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.findoneorfail(user",{"_index":7579,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.flush",{"_index":3348,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/GroupRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.getconnection('write').getdb",{"_index":7748,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.em.getreference(classentity",{"_index":4438,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.getunitofwork().getbyid(boardnode.name",{"_index":3596,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["this.em.nativedelete(externaltoolpseudonymentity",{"_index":8759,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{}}}],["this.em.nativedelete(pseudonymentity",{"_index":16450,"title":{},"body":{"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(boardnode",{"_index":16597,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.em.persist(entity",{"_index":8757,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.em.persist(modelentity",{"_index":7603,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persist(newentity",{"_index":10691,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.em.persist(target",{"_index":4850,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.em.persistandflush(board",{"_index":3502,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(cards",{"_index":3510,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(columns",{"_index":3504,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(data",{"_index":11180,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.em.persistandflush(elements",{"_index":3515,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.em.persistandflush(modelentity",{"_index":7605,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.em.persistandflush(referencedentities",{"_index":4440,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["this.em.remove(el",{"_index":7576,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.em.remove(this.em.getreference(boardnode",{"_index":16537,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.em.removeandflush(entity",{"_index":10695,"title":{},"body":{"injectables/GroupRepo.html":{}}}],["this.email",{"_index":9340,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.emailsearchvalues",{"_index":20071,"title":{},"body":{"classes/UserDO.html":{}}}],["this.enablemigrationstart",{"_index":14514,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.enableoauthmigrationfeature(schooldo",{"_index":20465,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.encoding",{"_index":10013,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.encryptionservice.encrypt(externaltool.config.secret",{"_index":9116,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.encryptpassword(accountdto.password",{"_index":1202,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptpassword(password",{"_index":1208,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.encryptsecrets(collectionname",{"_index":11201,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(data",{"_index":11178,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.encryptsecretsinsystems(jsondocuments",{"_index":11267,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.enddate",{"_index":11739,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["this.endpointurl",{"_index":11780,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.enrichdatafromexternaltool(createdschoolexternaltool",{"_index":17503,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichdatafromexternaltool(tool",{"_index":17497,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.enrichwithdatafromexternaltools(schoolexternaltools",{"_index":17495,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.ensureboardnodetype(this.getchildren(boardnode",{"_index":3222,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurecontextpermissions(userid",{"_index":8439,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.ensureleafnode(boardnode",{"_index":3238,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.ensurepermission(userid",{"_index":9205,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.ensureschoolpermissions(userid",{"_index":8430,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.ensuretoolpermissions(userid",{"_index":19907,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.entityclass",{"_index":2565,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityclass(props",{"_index":2548,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.entityfactory(entityprops",{"_index":2461,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.entityname",{"_index":945,"title":{},"body":{"injectables/AccountRepo.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ForbiddenLoggableException.html":{}}}],["this.error",{"_index":8146,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.errorcode",{"_index":15004,"title":{},"body":{"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{}}}],["this.errorhandler(error",{"_index":15770,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.errortype",{"_index":1318,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.etherpadservice.createetherpad",{"_index":13793,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.everyattendeejoinsmuted",{"_index":21011,"title":{},"body":{"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.everyattendejoinsmuted",{"_index":20843,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["this.everybodyjoinsasmoderator",{"_index":20845,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.executeidmmethod(async",{"_index":1098,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.existsexpertrole(user.roles",{"_index":21274,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.expiresat",{"_index":421,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{}}}],["this.externalgroups",{"_index":15360,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalid",{"_index":6744,"title":{},"body":{"entities/CourseNews.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/LegacySchoolDo.html":{},"entities/News.html":{},"entities/SchoolEntity.html":{},"entities/SchoolNews.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/TeamNews.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.externalorganizationid",{"_index":8288,"title":{},"body":{"classes/ExternalGroupDto.html":{}}}],["this.externalschool",{"_index":15358,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externalsource",{"_index":10659,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableexternaltools",{"_index":8442,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailableschoolexternaltools",{"_index":8440,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterforavailabletools",{"_index":8432,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope",{"_index":8445,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationservice.filterparametersforscope(externaltool",{"_index":8434,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforcontext",{"_index":19563,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.getavailabletoolsforschool",{"_index":19560,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforcontextexternaltool",{"_index":19570,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltoolconfigurationuc.gettemplateforschoolexternaltool",{"_index":19567,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["this.externaltooldomapper.mapcreaterequest(externaltoolparams",{"_index":19681,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapexternaltoolfilterquerytoexternaltoolsearchquery(filterquery",{"_index":19687,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapsortingquerytodomain(sortingquery",{"_index":19686,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooldomapper.mapupdaterequest(externaltoolparams",{"_index":19699,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolid",{"_index":5651,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.externaltoollogoservice.buildlogourl",{"_index":8436,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoollogoservice.buildlogourl(logourltemplate",{"_index":19911,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.externaltoollogoservice.fetchlogo(externaltool",{"_index":9207,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoollogoservice.getexternaltoolbinarylogo",{"_index":19710,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoollogoservice.validatelogosize(externaltool",{"_index":9248,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolparametervalidationservice.validatecommon(externaltool",{"_index":9245,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolpseudonymrepo",{"_index":16434,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":16433,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolpseudonymrepo.findbyuserid(userid",{"_index":16431,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.externaltoolrepo.deletebyid(toolid",{"_index":9144,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.find(query",{"_index":9125,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyid(id",{"_index":9134,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyname(name",{"_index":9137,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.findbyoauth2configclientid(clientid",{"_index":9138,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(externaltool",{"_index":9121,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolrepo.save(toupdate",{"_index":9124,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaltoolservice.createexternaltool(externaltool",{"_index":9209,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.deleteexternaltool(toolid",{"_index":9216,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.findexternaltoolbyid",{"_index":5991,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyid(schoolexternaltool.toolid",{"_index":8449,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.externaltoolservice.findexternaltoolbyid(tool.toolid",{"_index":17498,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.externaltoolservice.findexternaltoolbyid(toolid",{"_index":8606,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyname",{"_index":14959,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.externaltoolservice.findexternaltoolbyname(externaltool.name",{"_index":8693,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid",{"_index":15587,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.externaltoolservice.findexternaltoolbyoauth2configclientid(externaltool.config.clientid",{"_index":9263,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.externaltoolservice.findexternaltools",{"_index":8426,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["this.externaltoolservice.findexternaltools(query",{"_index":9215,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltoolservice.updateexternaltool(toupdate",{"_index":9214,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.externaltooluc.createexternaltool(currentuser.userid",{"_index":19682,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.deleteexternaltool(currentuser.userid",{"_index":19703,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.findexternaltool(currentuser.userid",{"_index":19688,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.getexternaltool",{"_index":19695,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltooluc.updateexternaltool",{"_index":19700,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.externaltoolversionservice.increaseversionofnewtoolifnecessary(loadedtool",{"_index":9123,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.externaluser",{"_index":15356,"title":{},"body":{"classes/OauthDataDto.html":{}}}],["this.externaluserid",{"_index":8294,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ProvisioningDto.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.extractaccount(account",{"_index":13127,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakuser",{"_index":13112,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(keycloakusers[0",{"_index":13119,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractaccount(user",{"_index":13130,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcaccountid",{"_index":13148,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcsystemid",{"_index":13144,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractattributevalue(user.attributes?.dbcuserid",{"_index":13146,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.extractids(this.students",{"_index":6446,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.extractids(this.substitutionteachers",{"_index":6450,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.extractids(this.teachers",{"_index":6447,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.extractparamsfromrequest(request",{"_index":13334,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.extractreferences(elements",{"_index":3036,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.extractvalidationerrordetails(childerror",{"_index":1534,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.extractvalidationerrordetails(validationerror",{"_index":1524,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.factory.createdto",{"_index":17049,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.feathersauthprovider.getpermittedschools(userid",{"_index":9409,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getpermittedtargets(userid",{"_index":9410,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getuserschoolpermissions(userid",{"_index":9395,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersauthprovider.getusertargetpermissions(userid",{"_index":9396,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.feathersserviceprovider.getservice('/etherpad/pads",{"_index":8260,"title":{},"body":{"injectables/EtherpadService.html":{}}}],["this.feathersserviceprovider.getservice('/nexboard/boards",{"_index":14872,"title":{},"body":{"injectables/NexboardService.html":{}}}],["this.feathersserviceprovider.getservice('users",{"_index":9378,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`${targetmodel}/:scopeid/userpermissions",{"_index":9365,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`/users/:scopeid/${targetmodel",{"_index":9370,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.feathersserviceprovider.getservice(`path",{"_index":22624,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.featureenabled",{"_index":13837,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.features",{"_index":6443,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.federalstate",{"_index":11733,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolDo.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/System.html":{}}}],["this.federalstaterepo.findbyname(name",{"_index":9476,"title":{},"body":{"injectables/FederalStateService.html":{}}}],["this.federalstateservice.findfederalstatebyname",{"_index":15938,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.fetchbase64logo(externaltool.logourl",{"_index":8595,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.fetchexternaltool(schoolexternaltool",{"_index":19909,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.fetchschoolexternaltool(contextexternaltool",{"_index":19908,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.filesrepo.delete(file",{"_index":7858,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesrepo.findforcleanup(thresholddate",{"_index":7830,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.filesstorageclientadapterservice.copyfilesofparent(copyfilesofparentparams",{"_index":6213,"title":{},"body":{"injectables/CopyFilesService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(fileelement.id",{"_index":16528,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(lesson.id",{"_index":13951,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(submission.id",{"_index":18464,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.filesstorageclientadapterservice.deletefilesofparent(task.id",{"_index":19146,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.filesstorageservice.copyfilesofparent(userid",{"_index":10194,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.deletefilesofparent(payload",{"_index":10201,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageservice.getfilerecordsofparent(payload.parentid",{"_index":10197,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.filesstorageuc.downloadbysecuritytoken(token",{"_index":9946,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filesstorageuc.updatesecuritystatus(token",{"_index":9954,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["this.filestoragemqproducer.copyfilesofparent(param",{"_index":10116,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.deletefilesofparent(parentid",{"_index":10121,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestoragemqproducer.listfilesofparent(param",{"_index":10119,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.filestorageservice.download(filerecord",{"_index":16185,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.filesystemadapter.createdir(targetfolder",{"_index":11209,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.eol",{"_index":11224,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(__dirname",{"_index":11124,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(basedir",{"_index":11146,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(targetfolder",{"_index":11141,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.joinpath(this.basedir",{"_index":11128,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readdir(basedir",{"_index":11144,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.readfile(filepath",{"_index":11193,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filesystemadapter.writefile(filepath",{"_index":11223,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.filetype",{"_index":16500,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["this.filterallowed(userid",{"_index":4199,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.filterbypermission(elements",{"_index":7959,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.filtersubmissionsbypermission(submissions",{"_index":18489,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.filtertoolswithpermissions(userid",{"_index":5969,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["this.findallforstudent(user",{"_index":19204,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findallforteacher(user",{"_index":19205,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.findalltasks(currentuser",{"_index":18817,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.findandcount(scope",{"_index":9867,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findbyexternalid(externalid",{"_index":20114,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.findbyid(accountid",{"_index":931,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findbyid(boardnode.parentid",{"_index":3341,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbyid(id",{"_index":3317,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["this.findbynames([rolename.administrator",{"_index":16863,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.findbyuserid(dto.userid",{"_index":1119,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.findbyuserid(userid",{"_index":933,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.findexistinggridelement(elementwithposition",{"_index":7550,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.findexistingtargets(columnboardids",{"_index":4842,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["this.findexternaltoolpseudonymsbyuserid(userid",{"_index":16419,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findimportusersandcount(scope.query",{"_index":12492,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["this.findlegacyltitool",{"_index":14962,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findmigrationbyschool(schoolid",{"_index":20489,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.findnewsandcount(scope.query",{"_index":14742,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.findnextcloudtool",{"_index":14936,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.findoneorfail(scope",{"_index":9864,"title":{},"body":{"injectables/FileRecordRepo.html":{}}}],["this.findpseudonymsbyuserid(userid",{"_index":16418,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.findtasksandcount(scope.query",{"_index":19025,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.findteambyid(teamid",{"_index":4654,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.finduserafterprovisioningorthrow(externaluserid",{"_index":15095,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.findvideoconferencebyscopeidandscope(scopeid",{"_index":21314,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.finishcoursecopying(coursecopy",{"_index":6553,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.finished",{"_index":11996,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.add(user",{"_index":12062,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.getidentifiers('_id",{"_index":11999,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.remove(user",{"_index":12064,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finished.set(props.finished",{"_index":11986,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.finishedat",{"_index":20236,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.finishedat.toisostring",{"_index":20358,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["this.firstname",{"_index":9336,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDto.html":{},"classes/UserInfoResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.firstnamesearchvalues",{"_index":20067,"title":{},"body":{"classes/UserDO.html":{}}}],["this.flagged",{"_index":11471,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.forcepasswordchange",{"_index":12107,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.formattedjwt",{"_index":1732,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.friendlyurl",{"_index":7020,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.from",{"_index":8284,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.frontchannel_logout_uri",{"_index":7026,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.frontchannellogouturi",{"_index":15176,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.fullname",{"_index":2220,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.fullpath",{"_index":16647,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.fwulearningcontentsuc.get(path",{"_index":10405,"title":{},"body":{"controllers/FwuLearningContentsController.html":{}}}],["this.generatearray(amount",{"_index":3517,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.generatebrokersystems([system",{"_index":18714,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatebrokersystems(systems",{"_index":18721,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.generatechecksum(callname",{"_index":2376,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.generatepreview(params",{"_index":16180,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.generatepreview(previewfileparams",{"_index":16171,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.get('/api/v1/me",{"_index":1323,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.get('/events",{"_index":3975,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.get('consent",{"_index":10898,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.get('login",{"_index":10899,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.get(`${oauthconfig.authendpoint}?${query",{"_index":11033,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(location",{"_index":11057,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.get(path",{"_index":1375,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getadditionalerrorinfo(idtoken.email",{"_index":12638,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.getadminidandtoken",{"_index":1370,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.info?roomname=${groupname",{"_index":1357,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.members?roomname=${groupname",{"_index":1355,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/groups.moderators?roomname=${groupname",{"_index":1353,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getasadmin(`/api/v1/users.list?${querystring",{"_index":1333,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getbbbrequestconfig(this.presentationurl",{"_index":2346,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getboardauthorizable(boarddo",{"_index":3131,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.getbydraftforcreatorquery(creatorid",{"_index":19131,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(false",{"_index":19132,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(isdraft",{"_index":19130,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getbydraftquery(true",{"_index":19133,"title":{},"body":{"classes/TaskScope.html":{}}}],["this.getchildren(boardnode",{"_index":3257,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getchildren(boardnode).map((node",{"_index":3250,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["this.getcollectionnames",{"_index":7764,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getcopyname(originaltask.name",{"_index":18884,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getcoursegroupstudentids",{"_index":11832,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.getdatabasecollection(collectionname",{"_index":7751,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.getdefaultmaxduedate",{"_index":19214,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getdestinationcourse(parentparams.courseid",{"_index":18882,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getdestinationlesson(parentparams.lessonid",{"_index":18883,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.getelement(position",{"_index":7392,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getelementbytargetid(id",{"_index":2708,"title":{},"body":{"entities/Board.html":{}}}],["this.getelements().map((el",{"_index":2718,"title":{},"body":{"entities/Board.html":{}}}],["this.getentitypermissions(userid",{"_index":9403,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["this.getexternalsubclientmapperconfiguration",{"_index":12973,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getfilteredgroupusers(externalgroup",{"_index":15972,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.getfinisheduserids",{"_index":12009,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getfirstopenindex",{"_index":7387,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getformat(mimetype",{"_index":16189,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getformat(outputformat",{"_index":16197,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getgradedsubmissions",{"_index":12043,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getgroupdata(groupname",{"_index":1342,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.getid",{"_index":7341,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getidpmapperconfiguration(idpalias",{"_index":12994,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.getinternalid(accountdto.id",{"_index":1193,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(accountid",{"_index":1207,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getinternalid(id",{"_index":1185,"title":{},"body":{"injectables/AccountServiceDb.html":{}}}],["this.getjwtforuser(user.id",{"_index":15834,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.getjwtfromresponse(response",{"_index":1755,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getloginurl(sourcesystem",{"_index":20638,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getloginurl(targetsystem",{"_index":20635,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.getmaxsubmissions",{"_index":12047,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getmeetinginfo(new",{"_index":2359,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.getnewspermissions(userid",{"_index":14840,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getoauthconfig",{"_index":13067,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.getorconstructdashboardmodelentity(entity",{"_index":7569,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.getorcreatecourseboard(courseid",{"_index":3640,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.getparametervalue",{"_index":299,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.getparent",{"_index":11356,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getpath(subpath",{"_index":1736,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.getpermittedcourses(user",{"_index":19190,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedlessons(user",{"_index":19191,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.getpermittedtargets(userid",{"_index":14835,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.getpostloginredirecturl",{"_index":15096,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getpreviewfile(params",{"_index":16179,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getpreviewname(filerecord",{"_index":16181,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.getpropertyvalue(e",{"_index":8156,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.getprovisioningstrategy(oauthdata.system.provisioningstrategy",{"_index":16347,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getprovisioningstrategy(system.provisioningstrategy",{"_index":16343,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.getredirecturi(migration",{"_index":15118,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.getreferencesfromposition(from",{"_index":7363,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.getrepository(tool",{"_index":16422,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getrepository(tool).findbyuseridandtoolidorfail(user.id",{"_index":16416,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.getscopeinfo(userid",{"_index":21309,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.getseedfolder",{"_index":11131,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.getshorttitle",{"_index":6472,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.getsubmissioncontainer(submissioncontainerid",{"_index":18371,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.getsubmissionitems",{"_index":12019,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmittedsubmissions",{"_index":12042,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.getsubmitterids",{"_index":11837,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.gettargetfilters(userid",{"_index":14852,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.gettargetfolder(toseedfolder",{"_index":11208,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.gettasksitems",{"_index":11342,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.getteammemberids",{"_index":11831,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.geturl('create",{"_index":2341,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('end",{"_index":2361,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('getmeetinginfo",{"_index":2365,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl('join",{"_index":2360,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.geturl(filesstorageinternalactions.downloadbysecuritytoken",{"_index":1450,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.geturl(filesstorageinternalactions.updatesecuritystatus",{"_index":1452,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.getuser(userid",{"_index":9360,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["this.getuserwithpermissions(userid",{"_index":2052,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.getvideoconferenceoptions(scope",{"_index":21084,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.grade",{"_index":11803,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.gradecomment",{"_index":11805,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.graded",{"_index":3752,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.gradelevel",{"_index":4314,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.grant_type",{"_index":1615,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.granttype",{"_index":11861,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.grid",{"_index":7353,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(key",{"_index":7379,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.delete(this.gridindexfromposition(position",{"_index":7400,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(i",{"_index":7391,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(key",{"_index":7359,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.get(this.gridindexfromposition(position",{"_index":7360,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].foreach((key",{"_index":7372,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.keys()].map((key",{"_index":7357,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(index",{"_index":7390,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(element.pos",{"_index":7355,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.set(this.gridindexfromposition(position",{"_index":7403,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.grid.values",{"_index":7385,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.gridelements",{"_index":7458,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.gridelements.set(props.gridelements",{"_index":7433,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.group.externalid",{"_index":17550,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.group.externalorganizationid",{"_index":17551,"title":{},"body":{"classes/SchoolForGroupNotFoundLoggable.html":{}}}],["this.groupelements",{"_index":7457,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.groupid",{"_index":7456,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.grouprepo.delete(group",{"_index":10728,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyexternalsource(externalid",{"_index":10725,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.findbyid(id",{"_index":10723,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.grouprepo.save(group",{"_index":10727,"title":{},"body":{"injectables/GroupService.html":{}}}],["this.groupservice.findbyexternalsource",{"_index":15967,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupservice.save(group",{"_index":15978,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.groupuser.externaluserid",{"_index":20203,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.groupuser.rolename",{"_index":20204,"title":{},"body":{"classes/UserForGroupNotFoundLoggable.html":{}}}],["this.guest",{"_index":2225,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["this.guestpolicy",{"_index":2142,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.handlecolumnboardintegration(roomid",{"_index":17023,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.handleparameterstoinclude",{"_index":293,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["this.hasaccesstosubmission(user",{"_index":18441,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haschangedparameternames(oldparams",{"_index":9305,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterregex(newparams",{"_index":9306,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparameterscope(newparams",{"_index":9308,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedparametertypes(newparams",{"_index":9307,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschangedrequiredparameters(oldparams",{"_index":9304,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.haschild(child",{"_index":2833,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.hascoursereadpermission(user",{"_index":16966,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hascoursewritepermission(user",{"_index":16967,"title":{},"body":{"injectables/RoomsAuthorisationService.html":{}}}],["this.hasduplicateattributes(externaltool.parameters",{"_index":8673,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.hasexpertrole(userid",{"_index":21312,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.hasnewrequiredparameter(oldparams",{"_index":9303,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["this.hasparent",{"_index":3575,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.hasparentpermission(user",{"_index":19094,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.hasparenttaskreadaccess(user",{"_index":18446,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasparenttaskwriteaccess(user",{"_index":18445,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.haspath(req.route",{"_index":16648,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.haspermission(user",{"_index":2041,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.haspermissionbyreferences(userid",{"_index":2046,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.haspermissions",{"_index":21284,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.hasreadaccess(user",{"_index":18443,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.hasscanstatuswontcheck",{"_index":9790,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.hasschoolmigrated(externalid",{"_index":17650,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.haswriteaccess(user",{"_index":18442,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.headers",{"_index":2082,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.height",{"_index":4095,"title":{},"body":{"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"classes/CardResponse.html":{},"classes/CardSkeletonResponse.html":{}}}],["this.hidden",{"_index":3438,"title":{},"body":{"classes/BoardLessonResponse.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.host",{"_index":12159,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.hosturl",{"_index":20626,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.hosturl}/courses/${scopeid}?activetab=tools",{"_index":21304,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.hosturl}/teams/${event.teamid}?activetab=events",{"_index":21307,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.host}${location",{"_index":11044,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.httpservice",{"_index":1377,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.httpservice.get(input.system.provisioningurl",{"_index":17266,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.httpservice.get(logourl",{"_index":8596,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.httpservice.get(url",{"_index":2362,"title":{},"body":{"injectables/BBBService.html":{},"injectables/HydraSsoService.html":{}}}],["this.httpservice.get(url.tostring",{"_index":3979,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.httpservice.post(tokenendpoint",{"_index":15220,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.httpservice.post(url",{"_index":2347,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.httpservice.request",{"_index":10919,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.httpstatus",{"_index":8539,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{}}}],["this.hydracookies",{"_index":6040,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.hydrassoservice.generateconfig(oauthclientid",{"_index":10959,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.initauth(hydraoauthconfig",{"_index":10969,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrassoservice.processredirect(dto",{"_index":10978,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.hydrauc.getoauthtoken(oauthclientid",{"_index":15792,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.hydrauc.requestauthcode(currentuser.userid",{"_index":15798,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.hydrauri",{"_index":10892,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/clients",{"_index":10915,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/clients/${id",{"_index":10914,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/health/alive",{"_index":10908,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/requests/${flow}/${action}?${flow}_challenge=${challenge",{"_index":10917,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/requests/${flow}?${flow}_challenge=${challenge",{"_index":10918,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/requests/logout/accept?logout_challenge=${challenge",{"_index":10896,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/sessions/consent?subject=${user",{"_index":10909,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/auth/sessions/consent?subject=${user}&client=${client",{"_index":10911,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.hydrauri}/oauth2/introspect",{"_index":10901,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.id",{"_index":618,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/BaseDO.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardLessonResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/CardResponse.html":{},"entities/ClassEntity.html":{},"classes/ColumnResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextRef.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ExternalToolResponse.html":{},"classes/FileDto-1.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/GridElement.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"classes/LegacySchoolDo.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/PublicSystemResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/ScopeRef.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"classes/SystemDto.html":{},"classes/TargetInfoResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"classes/UserDto.html":{},"classes/UserInfoResponse.html":{}}}],["this.identifiername",{"_index":14982,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.idmoauthservice.getoauthconfig",{"_index":18736,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.isoauthconfigavailable",{"_index":18733,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.idmoauthservice.resourceownerpasswordgrant(username",{"_index":14008,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.idmreferenceid",{"_index":1003,"title":{},"body":{"classes/AccountSaveDto.html":{}}}],["this.idmservice.findaccountbydbcaccountid(id.tostring",{"_index":812,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.idmservice.findaccountbyid(id",{"_index":810,"title":{},"body":{"injectables/AccountLookupService.html":{}}}],["this.idphint",{"_index":11857,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.idtoken",{"_index":15143,"title":{},"body":{"classes/OAuthTokenDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.idtokenservice.createidtoken(userid",{"_index":15470,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.iframeproperties",{"_index":12160,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.importhash",{"_index":20065,"title":{},"body":{"classes/UserDO.html":{}}}],["this.importuserid",{"_index":12364,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.importuserschoolid",{"_index":17561,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.info.appname",{"_index":1548,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.basepath",{"_index":1551,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.mountsdescription",{"_index":1553,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.info.port",{"_index":1549,"title":{},"body":{"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{}}}],["this.initializes3clientmap",{"_index":7824,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.injectenvvars(filecontent",{"_index":11194,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.injectenvvars(s",{"_index":11173,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.inmaintenancesince",{"_index":11723,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.inner",{"_index":5237,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.caninline",{"_index":5242,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.content",{"_index":5243,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inner.transform",{"_index":5244,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{}}}],["this.inputformat",{"_index":16766,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.inusermigration",{"_index":11726,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.invitationlink",{"_index":4311,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.isallowedaschild(child",{"_index":2828,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.isarchived",{"_index":18140,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.isauthenticationresponse(response.body",{"_index":1776,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isauthorizedstudent(userid",{"_index":18375,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.isautoparameterglobal(param",{"_index":8680,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isblocked",{"_index":9783,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.isclientidunique(externaltool",{"_index":9260,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.iscolumnboardfeatureflagactive",{"_index":7965,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.iscustomparameternameempty(param",{"_index":8675,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidregex(param",{"_index":8690,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdefaultvalueofvalidtype(param",{"_index":8689,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isdirectory",{"_index":9630,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.isdraft",{"_index":3753,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskStatusResponse.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isfinished",{"_index":3755,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.isfinishedforuser(user",{"_index":12048,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isglobalparametervalid(param",{"_index":8677,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isgraceperiodexpired(userloginmigration",{"_index":4465,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.isgraded",{"_index":11841,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.isgradedforuser(user",{"_index":12052,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isgroup",{"_index":7333,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.ishidden",{"_index":7028,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.islatest(contextexternaltool",{"_index":5297,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islatest(schoolexternaltool",{"_index":5296,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["this.islocal",{"_index":7013,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.isnameunique(externaltool",{"_index":8670,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isoauthprovisioningenabledforschool(officialschoolnumber",{"_index":15089,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.isoptional",{"_index":7084,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.ispending",{"_index":9788,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.ispropertyprivacyprotected(e.target",{"_index":8163,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["this.isregexcommentmandatoryandfilled(param",{"_index":8684,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isregexvalid(param",{"_index":8687,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["this.isschoolnumberunique(school",{"_index":17700,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.isslash(inputpath",{"_index":1762,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.isslash(path",{"_index":1765,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"classes/TestApiClient.html":{}}}],["this.issubmitted",{"_index":11823,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.issubmittedforuser(user",{"_index":12051,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.issubstitutionteacher",{"_index":3754,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.issuer",{"_index":11871,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.isteacher",{"_index":7980,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.istemplate",{"_index":7011,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.istoolstatuslatestorthrow(userid",{"_index":19823,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.isuniqueemail(email",{"_index":1258,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["this.isuserreferenced(user",{"_index":1931,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["this.isusersubmitter(user",{"_index":11822,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.isusersubstitutionteacherincourse(user",{"_index":12049,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.isvaluevalidfortype(param.type",{"_index":5360,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.isverified",{"_index":9761,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.isvideoconferencefeatureenabled",{"_index":21294,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.joinpath(os.tmpdir",{"_index":10018,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["this.jwksendpoint",{"_index":11873,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.jwt",{"_index":15013,"title":{},"body":{"classes/OAuthProcessDto.html":{}}}],["this.jwtservice.sign(user",{"_index":1829,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.addtowhitelist(user.accountid",{"_index":1832,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.jwtvalidationadapter.iswhitelisted(accountid",{"_index":12705,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["this.jwtvalidationadapter.removefromwhitelist(decodedjwt.accountid",{"_index":1837,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["this.kcadmin.callkcadminclient",{"_index":12910,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getadminuser",{"_index":13229,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.kcadmin.getclientid",{"_index":12946,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.kcadmin.setpasswordpolicy",{"_index":13023,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadmin.testkcconnection",{"_index":13019,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.kcadminclient",{"_index":12795,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.auth(this.kcsettings.credentials",{"_index":12796,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminclient.callkcadminclient",{"_index":13095,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.del",{"_index":13131,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.find",{"_index":13128,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.callkcadminclient()).users.findone",{"_index":13110,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["this.kcadminclient.setconfig",{"_index":12791,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcadminservice.getclientid",{"_index":13057,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getclientsecret",{"_index":13059,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.getwellknownurl",{"_index":13053,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcadminservice.testkcconnection",{"_index":13066,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.kcsettings.baseurl}/realms/${this.kcsettings.realmname}/.well",{"_index":12797,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.clientid",{"_index":12800,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.credentials.username",{"_index":12799,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.kcsettings.realmname",{"_index":12810,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.key",{"_index":6993,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.key).tostring",{"_index":18195,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.key).tostring(cryptojs.enc.utf8",{"_index":18198,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"injectables/SymetricKeyEncryptionService.html":{}}}],["this.keycloakconfigservice.configurebrokerflows",{"_index":13025,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureclient",{"_index":13024,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configureidentityproviders",{"_index":13027,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigservice.configurerealm",{"_index":13026,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakconfigurationuc.check",{"_index":11594,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.clean",{"_index":11600,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.configure",{"_index":11612,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.migrate",{"_index":11620,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakconfigurationuc.seed",{"_index":11606,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.keycloakmanagementuc.check",{"_index":13169,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.configure",{"_index":13170,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmanagementuc.seed",{"_index":13171,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.keycloakmigrationservice.migrate(skip",{"_index":13022,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.clean",{"_index":13020,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.keycloakseedservice.seed",{"_index":13021,"title":{},"body":{"injectables/KeycloakConfigurationUc.html":{}}}],["this.language",{"_index":12109,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastauthorizationtime",{"_index":12813,"title":{},"body":{"injectables/KeycloakAdministrationService.html":{}}}],["this.lastloginsystemchange",{"_index":12113,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.lastmodifytimestamp",{"_index":11886,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.lastname",{"_index":9338,"title":{},"body":{"classes/ExternalUserDto.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDataResponse.html":{},"classes/UserDto.html":{},"classes/UserInfoResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.lastnamesearchvalues",{"_index":20069,"title":{},"body":{"classes/UserDO.html":{}}}],["this.lastsuccessfulfullsync",{"_index":11882,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.lastsuccessfulpartialsync",{"_index":11884,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.lastsyncattempt",{"_index":11880,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.lasttriedfailedlogin",{"_index":419,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.lastupdatedat",{"_index":19486,"title":{},"body":{"classes/TimestampsResponse.html":{}}}],["this.launch_presentation_locale",{"_index":14186,"title":{},"body":{"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{}}}],["this.ldapactive",{"_index":18582,"title":{},"body":{"classes/SystemDto.html":{}}}],["this.ldapconfig",{"_index":11943,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.ldapdn",{"_index":4316,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.ldapdn?.match(pattern_login_from_dn",{"_index":11478,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.ldapencryptionservice.encrypt",{"_index":11278,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.ldapservice.checkldapcredentials(system",{"_index":13350,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.legacylogger.debug",{"_index":9130,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.legayschoolrule",{"_index":17083,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lesson",{"_index":11983,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.hidden",{"_index":12059,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lesson.name",{"_index":12058,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.lessoncopyservice.copylesson",{"_index":3066,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyUC.html":{},"injectables/ShareTokenUC.html":{}}}],["this.lessoncopyservice.updatecopiedembeddedtasks(elementcopystatus",{"_index":3084,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.lessoncopyuc.copylesson",{"_index":17007,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.lessonhidden",{"_index":18917,"title":{},"body":{"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{}}}],["this.lessonreadpermission(user",{"_index":13920,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.lessonrepo",{"_index":11649,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.lessonrepo.createlesson(lessoncopy",{"_index":13735,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.lessonrepo.delete(lesson",{"_index":13952,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids([originallesson.course.id",{"_index":13849,"title":{},"body":{"injectables/LessonCopyUC.html":{}}}],["this.lessonrepo.findallbycourseids([roomid",{"_index":17020,"title":{},"body":{"injectables/RoomsService.html":{}}}],["this.lessonrepo.findallbycourseids(courseids",{"_index":13953,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.findallbycourseids(readcourseids",{"_index":19238,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findallbycourseids(writecourseids",{"_index":19237,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.lessonrepo.findbyid(lessonid",{"_index":13839,"title":{},"body":{"injectables/LessonCopyUC.html":{},"injectables/LessonService.html":{},"injectables/TaskCopyUC.html":{}}}],["this.lessonrepo.findbyid(params.originallessonid",{"_index":13727,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.lessonrepo.findbyuserid(userid",{"_index":13954,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrepo.save(lessoncopy",{"_index":13738,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.lessonrepo.save(updatedlessons",{"_index":13959,"title":{},"body":{"injectables/LessonService.html":{}}}],["this.lessonrule",{"_index":17079,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.lessonrule.haspermission(user",{"_index":19097,"title":{},"body":{"injectables/TaskRule.html":{}}}],["this.lessonservice.deletelesson(lesson",{"_index":13970,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbycourseids([courseid",{"_index":4983,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.lessonservice.findbyid(lessonid",{"_index":13965,"title":{},"body":{"injectables/LessonUC.html":{}}}],["this.lessonservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18048,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lessonservice.savelesson(lesson",{"_index":23097,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.lessonuc.delete(currentuser.userid",{"_index":13663,"title":{},"body":{"controllers/LessonController.html":{}}}],["this.lessonwritepermission(user",{"_index":13921,"title":{},"body":{"injectables/LessonRule.html":{}}}],["this.level",{"_index":3569,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.license",{"_index":11553,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.limit",{"_index":16064,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.loadaccount(username",{"_index":13341,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.loadaccounts",{"_index":13225,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.loadallcollectionsfromdatabase(folder",{"_index":11155,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadallcollectionsfromfilesystem(folder",{"_index":11154,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loadcollectionsavailablefromsourceandfilterbycollectionnames",{"_index":11190,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.loader.getuserwithpermissions(userid",{"_index":2059,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.loader.loadauthorizableobject(entityname",{"_index":2053,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.loadtoolhierarchy(schoolexternaltoolid",{"_index":19822,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.loadusers",{"_index":13224,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["this.localcookies",{"_index":6038,"title":{},"body":{"classes/CookiesDto.html":{}}}],["this.location",{"_index":7076,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/PropertyData.html":{}}}],["this.logger",{"_index":17841,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.logger.alert(message",{"_index":8196,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.crit(message",{"_index":8197,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.debug",{"_index":3808,"title":{},"body":{"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/FilesStorageConsumer.html":{},"injectables/FilesStorageProducer.html":{},"injectables/ShareTokenUC.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["this.logger.debug('[ldap",{"_index":13312,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug('usersearcindex",{"_index":11239,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.debug(`adding",{"_index":14953,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`contextexternaltool",{"_index":19627,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["this.logger.debug(`created",{"_index":2452,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.logger.debug(`deleted",{"_index":1154,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(`deleting",{"_index":1152,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(`externaltool",{"_index":19684,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.logger.debug(`generating",{"_index":15833,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`oauth",{"_index":15831,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.debug(`removing",{"_index":14948,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.debug(`saved",{"_index":1101,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(`saving",{"_index":1099,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(`schoolexternaltool",{"_index":19945,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.logger.debug(`updated",{"_index":1143,"title":{},"body":{"injectables/AccountService.html":{},"injectables/BaseDORepo.html":{}}}],["this.logger.debug(`updating",{"_index":1141,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.debug(err",{"_index":13310,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.debug(message",{"_index":14039,"title":{},"body":{"injectables/Logger.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.logger.debug(new",{"_index":19496,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.logger.debug(this.createmessage(message",{"_index":13425,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.emerg(message",{"_index":8195,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error('could",{"_index":8264,"title":{},"body":{"injectables/EtherpadService.html":{},"injectables/NexboardService.html":{}}}],["this.logger.error(`${err.message",{"_index":17140,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.error(`migration",{"_index":13187,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.error(`the",{"_index":7839,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.error(err",{"_index":13172,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.error(error",{"_index":1159,"title":{},"body":{"injectables/AccountService.html":{},"injectables/DeleteFilesUc.html":{},"controllers/OauthSSOController.html":{}}}],["this.logger.error(loggable",{"_index":10494,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.logger.error(message",{"_index":8198,"title":{},"body":{"injectables/ErrorLogger.html":{}}}],["this.logger.error(this.createmessage(result",{"_index":13427,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.http(logging",{"_index":16689,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.info",{"_index":13364,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.logger.info(message",{"_index":14038,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.info(new",{"_index":8599,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"injectables/NewsUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SanisResponseMapper.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["this.logger.info(this.createmessage(message",{"_index":13423,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.log",{"_index":7785,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["this.logger.log('before",{"_index":8023,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log('cleanup",{"_index":7792,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.log(`${oauthconfig.authendpoint}?${query",{"_index":11031,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(`...migrated",{"_index":13188,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`after",{"_index":8025,"title":{},"body":{"injectables/DurationLoggingInterceptor.html":{}}}],["this.logger.log(`could",{"_index":17150,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(`initialized",{"_index":7846,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.log(`migration",{"_index":13186,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.log(`stream",{"_index":17194,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.log(axiosconfig",{"_index":11032,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(err",{"_index":15745,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.log(localdto",{"_index":11055,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.logger.log(new",{"_index":22654,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.notice(message",{"_index":14037,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.notice(this.createmessage(message",{"_index":13426,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.logger.setcontext(`${context.getclass().name}::${context.gethandler().name",{"_index":16682,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{}}}],["this.logger.setcontext(accountservice.name",{"_index":1082,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.logger.setcontext(boarduc.name",{"_index":3807,"title":{},"body":{"injectables/BoardUc.html":{}}}],["this.logger.setcontext(carduc.name",{"_index":4196,"title":{},"body":{"injectables/CardUc.html":{}}}],["this.logger.setcontext(collaborativestorageadapter.name",{"_index":4520,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.logger.setcontext(collaborativestoragecontroller.name",{"_index":4597,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.logger.setcontext(collaborativestorageservice.name",{"_index":4647,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.logger.setcontext(databasemanagementuc.name",{"_index":11121,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.setcontext(deletefilesconsole.name",{"_index":7784,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["this.logger.setcontext(deletefilesuc.name",{"_index":7823,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.logger.setcontext(elementuc.name",{"_index":8092,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.logger.setcontext(filesstorageclientadapterservice.name",{"_index":10115,"title":{},"body":{"injectables/FilesStorageClientAdapterService.html":{}}}],["this.logger.setcontext(filesstorageconsumer.name",{"_index":10192,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["this.logger.setcontext(filesstorageproducer.name",{"_index":10296,"title":{},"body":{"injectables/FilesStorageProducer.html":{}}}],["this.logger.setcontext(fwulearningcontentsuc.name",{"_index":10442,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.logger.setcontext(hydraoauthuc.name",{"_index":10956,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.logger.setcontext(keycloakconsole.name",{"_index":11582,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.logger.setcontext(keycloakmanagementcontroller.name",{"_index":13167,"title":{},"body":{"controllers/KeycloakManagementController.html":{}}}],["this.logger.setcontext(keycloakmigrationservice.name",{"_index":13180,"title":{},"body":{"injectables/KeycloakMigrationService.html":{}}}],["this.logger.setcontext(ldapservice.name",{"_index":13296,"title":{},"body":{"injectables/LdapService.html":{}}}],["this.logger.setcontext(newsuc.name",{"_index":14825,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.logger.setcontext(nextcloudstrategy.name",{"_index":14908,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.setcontext(oauthadapterservice.name",{"_index":15212,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.logger.setcontext(oauthservice.name",{"_index":15079,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.logger.setcontext(oauthssocontroller.name",{"_index":15741,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.logger.setcontext(oauthuc.name",{"_index":15826,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.logger.setcontext(previewservice.name",{"_index":16166,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.setcontext(restartuserloginmigrationuc.name",{"_index":16722,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(s3clientadapter.name",{"_index":17136,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["this.logger.setcontext(sharetokenuc.name",{"_index":18080,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.logger.setcontext(startuserloginmigrationuc.name",{"_index":18167,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.logger.setcontext(submissionitemuc.name",{"_index":18370,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.logger.setcontext(youruc.name",{"_index":22652,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["this.logger.warn",{"_index":14966,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.logger.warn('no",{"_index":18508,"title":{},"body":{"injectables/SymetricKeyEncryptionService.html":{}}}],["this.logger.warn(`boardcopyservice",{"_index":3059,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.logger.warn(`completemigration",{"_index":17662,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(`could",{"_index":16177,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.warn(`placeholder",{"_index":11265,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.logger.warn(`restartmigration",{"_index":17668,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.logger.warn(error",{"_index":16176,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.logger.warning(message",{"_index":14036,"title":{},"body":{"injectables/Logger.html":{}}}],["this.logger.warning(this.createmessage(message",{"_index":13424,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.loginname",{"_index":12366,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.loginuc.getlogindata(user",{"_index":14108,"title":{},"body":{"controllers/LoginController.html":{}}}],["this.loginurl",{"_index":20641,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.logmigrationinformation",{"_index":20528,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logmigrationinformation(currentuserid",{"_index":20515,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.logo",{"_index":8336,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["this.logo_url",{"_index":6997,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.logobase64",{"_index":8489,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["this.logourl",{"_index":5656,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolResponse.html":{},"classes/County.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"entities/FederalState.html":{},"interfaces/IFederalStateProperties.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.logoutendpoint",{"_index":11869,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.logoutflowuc.logoutflow(params.challenge",{"_index":15554,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.logouturl",{"_index":2138,"title":{},"body":{"classes/BBBCreateConfig.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{},"injectables/UserMigrationService.html":{}}}],["this.lookuptoken(token",{"_index":18044,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.lti11encryptionservice.sign(key.value",{"_index":14256,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{}}}],["this.lti_message_type",{"_index":6999,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.lti_version",{"_index":7001,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.ltirepo.findbyoauthclientid(oauthclientid",{"_index":11067,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.ltitoolrepo.findbyclientidandislocal(clientid",{"_index":14390,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["this.ltitoolrepo.findbyname(this.client.oidcinternalname",{"_index":14964,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.ltitoolservice.findbyclientidandislocal(clientid",{"_index":15588,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.mandatory",{"_index":20363,"title":{},"body":{"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["this.mandatorysince",{"_index":20230,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.mapbasictoolconfigdotoentity(entitydo.config",{"_index":8866,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapbasictoolconfigdotoresponse(externaltool.config",{"_index":9025,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapbasictoolconfigtodo(entity.config",{"_index":8842,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapboardelements(board",{"_index":16891,"title":{},"body":{"injectables/RoomBoardResponseMapper.html":{}}}],["this.mapcolumnboardelement(element",{"_index":7976,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.mapcontenttoresource(lesson.id",{"_index":4992,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcontexttypetodotype(entity.contexttype",{"_index":5797,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcontexttypetoentitytype(entitydo.contextref.type",{"_index":5802,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["this.mapcourseteacherstocopyrightowners(course",{"_index":4976,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{}}}],["this.mapcourseuserstousergroup(course",{"_index":3142,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["this.mapcustomparameterdostoentities(entitydo.parameters",{"_index":8873,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparameterstodos(entity.parameters",{"_index":8849,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapcustomparametertoresponse",{"_index":9028,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapdomainobjecttoentityproperties(domainobject",{"_index":8754,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapdotoentityproperties(domainobject",{"_index":2460,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.mapelementtoentity(e",{"_index":7545,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapentitytodo(entity",{"_index":2447,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["this.mapentitytodo(school",{"_index":13550,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(schools[0",{"_index":13554,"title":{},"body":{"injectables/LegacySchoolRepo.html":{}}}],["this.mapentitytodo(userentity",{"_index":20113,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.mapentitytodo(userloginmigration",{"_index":20400,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["this.mapentitytodomainobject(entity",{"_index":8748,"title":{},"body":{"injectables/ExternalToolPseudonymRepo.html":{},"injectables/PseudonymsRepo.html":{}}}],["this.mapexternalsourceentitytoexternalsource(entity.externalsource",{"_index":10634,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapexternalsourcetoexternalsourceentity(props.externalsource",{"_index":10623,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.mapfromdtotoresponse(system",{"_index":18694,"title":{},"body":{"classes/SystemResponseMapper.html":{}}}],["this.mapfromentitytodto(entity",{"_index":16815,"title":{},"body":{"classes/RoleMapper.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{}}}],["this.mapgridelementtomodel(elementwithposition",{"_index":7572,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapgroupuserentitytogroupuser(groupuser",{"_index":10629,"title":{},"body":{"classes/GroupDomainMapper.html":{}}}],["this.maplessonelement(element",{"_index":7975,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maplti11toolconfigdotoentity(entitydo.config",{"_index":8868,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.maplti11toolconfigdotoresponse(externaltool.config",{"_index":9026,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.maplti11toolconfigtodo(entity.config",{"_index":8844,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configdotoentity(entitydo.config",{"_index":8867,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2configtodo(entity.config",{"_index":8843,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["this.mapoauth2toolconfigdotoresponse(externaltool.config",{"_index":9027,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.mapper.mapdashboardtoentity(dashboardmodel",{"_index":7608,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtoentity(modelentity",{"_index":7604,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdashboardtomodel(entity",{"_index":7602,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.mapper.mapdotoprovideroauthclient",{"_index":9119,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.mapper.maptoresponse(board",{"_index":16995,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.mappers.find((mapper",{"_index":5525,"title":{},"body":{"classes/ContentElementResponseFactory.html":{}}}],["this.mapreferencetoentity(ref",{"_index":7537,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.mapreferencetomodel(ref",{"_index":7566,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolcreateparams.config",{"_index":8963,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttobasictoolconfig(externaltoolupdateparams.config",{"_index":8950,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterdo",{"_index":8954,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(contextexternaltool.parameters",{"_index":5860,"title":{},"body":{"classes/ContextExternalToolResponseMapper.html":{}}}],["this.maprequesttocustomparameterentrydo(request.parameters",{"_index":5827,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigcreate(externaltoolcreateparams.config",{"_index":8964,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttolti11toolconfigupdate(externaltoolupdateparams.config",{"_index":8951,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigcreate(externaltoolcreateparams.config",{"_index":8965,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.maprequesttooauth2toolconfigupdate(externaltoolupdateparams.config",{"_index":8952,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["this.mapsanisroletorolename(source",{"_index":17307,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.maptaskelement(element",{"_index":7973,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":19595,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptocustomparameterentryresponse(schoolexternaltool.parameters",{"_index":17459,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptodo(entity",{"_index":4385,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoelementdtos(filtered",{"_index":7960,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.maptoentity(domainobject",{"_index":4387,"title":{},"body":{"classes/ClassMapper.html":{}}}],["this.maptoexternalgroupuser(relation",{"_index":17323,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":19592,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["this.maptoschoolexternaltoolresponse(tooldo",{"_index":17456,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["this.maptotoolreferenceresponse(toolreference",{"_index":9044,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["this.match",{"_index":12373,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{}}}],["this.matchedby",{"_index":11491,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.matchsinglerule(selectedrules",{"_index":17092,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.materials.getitems",{"_index":11353,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.materials.isinitialized(true",{"_index":11352,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.materials.set(props.materials",{"_index":11335,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.max_redirects",{"_index":10981,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.maxexternaltoollogosizeinbytes",{"_index":8619,"title":{},"body":{"classes/ExternalToolLogoSizeExceededLoggableException.html":{}}}],["this.maxsubmissions",{"_index":3751,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"classes/TaskStatusResponse.html":{}}}],["this.meetingid",{"_index":2098,"title":{},"body":{"classes/BBBBaseMeetingConfig.html":{},"classes/BBBCreateConfig.html":{}}}],["this.mergeelementintoposition(elementtomove",{"_index":7365,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.merlinreference",{"_index":11555,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.message",{"_index":3888,"title":{},"body":{"classes/BusinessError.html":{},"classes/ErrorResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.metadataprops.version",{"_index":5171,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["this.method",{"_index":16644,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.migrationcheckservice.shouldusermigrate",{"_index":15090,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.migrationerrorhandler(error",{"_index":15805,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.migrationmapper.mapdtotoresponse(migrationdto",{"_index":13480,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.mimetype",{"_index":6100,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.moderatormustapprovejoinrequests",{"_index":20847,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["this.moderatorpw",{"_index":2144,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.name",{"_index":2136,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"entities/ClassEntity.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/County.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"entities/FederalState.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/LessonEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/PropertyData.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleReference.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/SchoolYear.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{}}}],["this.name.length",{"_index":6464,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.newsrepo.delete(news",{"_index":14848,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallpublished(targets",{"_index":14838,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findallunpublishedbyuser(targets",{"_index":14837,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.findonebyid(id",{"_index":14841,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsrepo.save(news",{"_index":14831,"title":{},"body":{"injectables/NewsUc.html":{}}}],["this.newsuc.create",{"_index":14621,"title":{},"body":{"controllers/NewsController.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["this.newsuc.delete(urlparams.newsid",{"_index":14636,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.findallforuser",{"_index":14626,"title":{},"body":{"controllers/NewsController.html":{},"controllers/TeamNewsController.html":{}}}],["this.newsuc.findonebyidforuser(urlparams.newsid",{"_index":14631,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.newsuc.update",{"_index":14632,"title":{},"body":{"controllers/NewsController.html":{}}}],["this.nexboardservice.createnexboard(params.user.id",{"_index":13799,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.nowplusdays(options.expiresindays",{"_index":18090,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.numberofdrafttasks",{"_index":3440,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofplannedtasks",{"_index":3441,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.numberofpublishedtasks",{"_index":3439,"title":{},"body":{"classes/BoardLessonResponse.html":{}}}],["this.oauthadapterservice.getpublickey(oauthconfig.jwksendpoint",{"_index":15106,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthadapterservice.sendauthenticationcodetokenrequest",{"_index":15103,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthclientid",{"_index":7018,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.oauthconfig",{"_index":11939,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"entities/System.html":{},"classes/SystemDto.html":{}}}],["this.oauthencryptionservice.decrypt(clientsecret",{"_index":13068,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.decrypt(oauthconfig.clientsecret",{"_index":15134,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.oauthencryptionservice.encrypt(await",{"_index":13058,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["this.oauthencryptionservice.encrypt(tool.secret",{"_index":11074,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.oauthmigrationfinalfinish",{"_index":14512,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationfinished",{"_index":14510,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationmandatory",{"_index":14508,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthmigrationpossible",{"_index":14506,"title":{},"body":{"classes/MigrationResponse.html":{},"classes/OauthMigrationDto.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid",{"_index":15612,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowservice.findtoolbyclientid(clientid",{"_index":12177,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.oauthproviderloginflowservice.isnextcloudtool(tool",{"_index":15614,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderloginflowuc.getloginrequest(params.challenge",{"_index":15546,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderloginflowuc.patchloginrequest",{"_index":15549,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentresponse(consentrequest",{"_index":15560,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapconsentsessionstoresponse(session",{"_index":15568,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.maploginresponse(loginresponse",{"_index":15547,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapoauthclientresponse(client",{"_index":15530,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirect",{"_index":15555,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderresponsemapper.mapredirectresponse(redirectresponse",{"_index":15551,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthproviderservice.acceptconsentrequest",{"_index":15472,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.acceptloginrequest",{"_index":15620,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.acceptlogoutrequest(challenge",{"_index":15631,"title":{},"body":{"injectables/OauthProviderLogoutFlowUc.html":{}}}],["this.oauthproviderservice.createoauth2client(datawithdefaults",{"_index":15444,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.createoauth2client(oauthclient",{"_index":9120,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.deleteoauth2client(id",{"_index":15446,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.getconsentrequest(challenge",{"_index":15461,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.getloginrequest(challenge",{"_index":15607,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.getoauth2client",{"_index":9148,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(config.clientid",{"_index":9155,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthproviderservice.getoauth2client(id",{"_index":15440,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.listconsentsessions(userid",{"_index":15688,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.listoauth2clients",{"_index":15439,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.rejectconsentrequest",{"_index":15469,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.oauthproviderservice.rejectloginrequest",{"_index":15625,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.oauthproviderservice.revokeconsentsession(userid",{"_index":15689,"title":{},"body":{"injectables/OauthProviderUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(id",{"_index":15445,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{}}}],["this.oauthproviderservice.updateoauth2client(loadedoauthclient.client_id",{"_index":9152,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.oauthprovideruc.listconsentsessions",{"_index":15566,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthprovideruc.revokeconsentsession(currentuser.userid",{"_index":15571,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["this.oauthservice.authenticateuser",{"_index":15835,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(systemid",{"_index":15161,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.authenticateuser(targetsystemid",{"_index":20514,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.oauthservice.getauthenticationurl(system.oauthconfig",{"_index":15829,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.getredirecturi(userloginmigration",{"_index":15832,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.oauthservice.provisionuser",{"_index":15162,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{}}}],["this.oauthservice.requesttoken",{"_index":10961,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthservice.validatetoken(oauthtokens.idtoken",{"_index":10963,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.oauthuc.migrate(jwt",{"_index":15802,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.processoauthlogin",{"_index":15772,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.oauthuc.startoauthlogin",{"_index":15765,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.officialschoolnumber",{"_index":8304,"title":{},"body":{"classes/ExternalSchoolDto.html":{},"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["this.officialschoolnumberfromsource",{"_index":15006,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.officialschoolnumberfromtarget",{"_index":15007,"title":{},"body":{"classes/OAuthMigrationError.html":{}}}],["this.oidcconfig",{"_index":11941,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.oidcidentityprovidermapper.maptokeycloakidentityprovider(oidcconfig",{"_index":12986,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.oidcprovisioningservice.provisionexternalgroup(externalgroup",{"_index":16005,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternalschool(data.externalschool",{"_index":15996,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.oidcprovisioningservice.provisionexternaluser",{"_index":15998,"title":{},"body":{"injectables/OidcProvisioningStrategy.html":{}}}],["this.openinnewtab",{"_index":19858,"title":{},"body":{"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{}}}],["this.opennewtab",{"_index":7024,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.operation",{"_index":14646,"title":{},"body":{"classes/NewsCrudOperationLoggable.html":{}}}],["this.options",{"_index":7892,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.options.adminid",{"_index":1393,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminpassword",{"_index":1398,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.admintoken",{"_index":1394,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.adminuser",{"_index":1397,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.copyrightowners",{"_index":5094,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.creationyear",{"_index":5095,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.enabled",{"_index":1448,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.options.exchange",{"_index":1454,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.options.filesservicebaseurl",{"_index":1467,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["this.options.identifier",{"_index":5092,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.module",{"_index":19444,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["this.options.routingkey",{"_index":1455,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{}}}],["this.options.title",{"_index":5093,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.options.uri",{"_index":1403,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.options.version",{"_index":5096,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organization",{"_index":10662,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.organizationelements.map((organizationelement",{"_index":5225,"title":{},"body":{"classes/CommonCartridgeOrganizationWrapperElement.html":{}}}],["this.organizations.flatmap((organization",{"_index":5089,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.map((organization",{"_index":5087,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.organizations.push(organizationbuilder",{"_index":5083,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.origin",{"_index":12592,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["this.origintoolid",{"_index":7053,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/LtiToolDO.html":{}}}],["this.orm.close",{"_index":14548,"title":{},"body":{"modules/MongoMemoryDatabaseModule.html":{}}}],["this.orm.getschemagenerator().ensureindexes",{"_index":7768,"title":{},"body":{"injectables/DatabaseManagementService.html":{}}}],["this.outdatedsince",{"_index":12115,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.pagecontentmapper.mapdtotoresponse(content",{"_index":20583,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.parameters",{"_index":5623,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["this.parameters.map((param",{"_index":14527,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["this.parametertype",{"_index":16071,"title":{},"body":{"classes/ParameterTypeNotImplementedLoggableException.html":{}}}],["this.params",{"_index":7142,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ShareTokenFactory.html":{}}}],["this.params(params",{"_index":737,"title":{},"body":{"classes/AccountFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LtiToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["this.parentid",{"_index":6096,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto-1.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/ShareTokenPayloadResponse.html":{}}}],["this.parentname",{"_index":17968,"title":{},"body":{"classes/ShareTokenInfoResponse.html":{}}}],["this.parentpermission(user",{"_index":13926,"title":{},"body":{"injectables/LessonRule.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.parentsmap.get(card.id",{"_index":16577,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(column.id",{"_index":16575,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(columnboard.id",{"_index":16567,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(fileelement.id",{"_index":16579,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(richtextelement.id",{"_index":16582,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submission.id",{"_index":16588,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.get(submissioncontainerelement.id",{"_index":16585,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsmap.set(child.id",{"_index":16596,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.parentsystemid",{"_index":15861,"title":{},"body":{"classes/OidcConfigDto.html":{}}}],["this.parenttype",{"_index":6102,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileDto-1.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenPayloadResponse.html":{}}}],["this.password",{"_index":409,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{}}}],["this.path",{"_index":3567,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.path.split(path_separator).filter((id",{"_index":3578,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{}}}],["this.payload",{"_index":17940,"title":{},"body":{"classes/ShareTokenDO.html":{},"classes/ShareTokenResponse.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["this.permission",{"_index":7884,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{}}}],["this.permissionmapper.mapbodytodto(permissionsdto",{"_index":4676,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.permissions",{"_index":9620,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IRoleProperties.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.permissions.filter((permission",{"_index":9621,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.persistandflush(dashboard",{"_index":7610,"title":{},"body":{"injectables/DashboardRepo.html":{},"interfaces/IDashboardRepo.html":{}}}],["this.populate([task",{"_index":18987,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populate(tasks",{"_index":19068,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.populateboard(board",{"_index":3641,"title":{},"body":{"injectables/BoardRepo.html":{}}}],["this.populatereferences([submission",{"_index":18412,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populatereferences(submissions",{"_index":18414,"title":{},"body":{"injectables/SubmissionRepo.html":{}}}],["this.populateroles([teamuser.role",{"_index":19403,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(role.roles.getitems",{"_index":19408,"title":{},"body":{"injectables/TeamsRepo.html":{}}}],["this.populateroles(user.roles.getitems",{"_index":20708,"title":{},"body":{"injectables/UserRepo.html":{}}}],["this.populateroles(userentity.roles.getitems",{"_index":20112,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["this.position",{"_index":3571,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.positionfromgridindex(key",{"_index":7358,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.post('/api/v1/logout",{"_index":1331,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post('/api/v1/users.setstatus",{"_index":1326,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.post(path",{"_index":1371,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.addmoderator",{"_index":1349,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.archive",{"_index":1339,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.create",{"_index":1361,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.delete",{"_index":1363,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.invite",{"_index":1347,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.kick",{"_index":1343,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.removemoderator",{"_index":1351,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/groups.unarchive",{"_index":1335,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.create",{"_index":1365,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.createtoken",{"_index":1329,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postasadmin('/api/v1/users.delete",{"_index":1368,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.postloginredirect",{"_index":15375,"title":{},"body":{"classes/OauthLoginStateDto.html":{}}}],["this.preferences",{"_index":12111,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{}}}],["this.preparebbbcreateconfigbuilder(scope",{"_index":20992,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.previewstatus",{"_index":6106,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.previousexternalid",{"_index":11722,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"interfaces/IUserProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/User.html":{},"classes/UserDO.html":{}}}],["this.privacy_permission",{"_index":7007,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.private",{"_index":11981,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.proceedbuttonurl",{"_index":16017,"title":{},"body":{"classes/PageContentDto.html":{},"classes/PageContentResponse.html":{}}}],["this.processcookies(localdto.response.headers['set",{"_index":11048,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["this.processredirectcascade(initresponse",{"_index":10970,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.product",{"_index":3868,"title":{},"body":{"classes/Builder.html":{}}}],["this.product.allowmodstounmuteusers",{"_index":2193,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.attendeepw",{"_index":2191,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.guest",{"_index":2243,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.guestpolicy",{"_index":2178,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.logouturl",{"_index":2176,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.moderatorpw",{"_index":2189,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.muteonstart",{"_index":2179,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product.role",{"_index":2244,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.userid",{"_index":2245,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["this.product.welcome",{"_index":2177,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.product['meta_bbb",{"_index":2181,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["this.properties",{"_index":19740,"title":{},"body":{"classes/ToolLaunchData.html":{}}}],["this.propertiestopopulate",{"_index":14748,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["this.props",{"_index":1858,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/DomainObject.html":{}}}],["this.props.caption",{"_index":9525,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["this.props.children",{"_index":2825,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{}}}],["this.props.completed",{"_index":18302,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.context",{"_index":4699,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["this.props.copyrightowners",{"_index":5204,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.createdat",{"_index":2826,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.creationyear",{"_index":5203,"title":{},"body":{"classes/CommonCartridgeMetadataElement.html":{}}}],["this.props.description",{"_index":5124,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["this.props.duedate",{"_index":18232,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["this.props.gradelevel",{"_index":4270,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.height",{"_index":3998,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["this.props.href",{"_index":5159,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.html",{"_index":5252,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.id",{"_index":1859,"title":{},"body":{"interfaces/AuthorizableObject.html":{},"classes/DomainObject.html":{}}}],["this.props.identifier",{"_index":5157,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.inputformat",{"_index":16756,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.intendeduse",{"_index":5253,"title":{},"body":{"classes/CommonCartridgeWebContentResource.html":{}}}],["this.props.invitationlink",{"_index":4268,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.ldapdn",{"_index":4271,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.name",{"_index":4264,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.pseudonym",{"_index":16377,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.requireduserrole",{"_index":3113,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.resources.map",{"_index":5072,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.resources.map((content",{"_index":5214,"title":{},"body":{"classes/CommonCartridgeOrganizationItemElement.html":{}}}],["this.props.resources.push(props",{"_index":5077,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.props.schoolid",{"_index":4265,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.source",{"_index":4273,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.sourceoptions",{"_index":4274,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.successor",{"_index":4272,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.teacherids",{"_index":4267,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.text",{"_index":16754,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["this.props.title",{"_index":3996,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.toolid",{"_index":16378,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.tspuid",{"_index":4417,"title":{},"body":{"classes/ClassSourceOptions.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["this.props.type",{"_index":5158,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.updatedat",{"_index":2827,"title":{},"body":{"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{}}}],["this.props.url",{"_index":5126,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.userid",{"_index":16379,"title":{},"body":{"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["this.props.userids",{"_index":4266,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.userids?.filter((userid1",{"_index":4275,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.props.users",{"_index":3112,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"interfaces/UserBoardRoles.html":{}}}],["this.props.version",{"_index":5133,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["this.props.year",{"_index":4269,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["this.propsfactory",{"_index":2544,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.afterbuild(afterbuildfn",{"_index":2555,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.associations(associations",{"_index":2558,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.build(params",{"_index":2547,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.params(params",{"_index":2559,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.rewindsequence",{"_index":2561,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory.transient(transient",{"_index":2560,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.propsfactory['sequence",{"_index":2568,"title":{},"body":{"classes/BaseFactory.html":{}}}],["this.provider",{"_index":11867,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.provideroptions",{"_index":11896,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.provisioningservice.getdata",{"_index":20517,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.provisioningservice.getdata(systemid",{"_index":15085,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{}}}],["this.provisioningservice.provisiondata(data",{"_index":15094,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.provisioningstrategy",{"_index":11945,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/System.html":{},"classes/SystemDto.html":{}}}],["this.provisioningurl",{"_index":11947,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/ProvisioningSystemDto.html":{},"entities/System.html":{},"classes/SystemDto.html":{}}}],["this.pseudonym",{"_index":8719,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{}}}],["this.pseudonymrepo",{"_index":16435,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.deletepseudonymsbyuserid(userid",{"_index":16432,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymrepo.findbyuserid(userid",{"_index":16429,"title":{},"body":{"injectables/PseudonymService.html":{}}}],["this.pseudonymservice",{"_index":14940,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.pseudonymservice.findbyuserandtool(user",{"_index":12179,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["this.pseudonymservice.findorcreatepseudonym(user",{"_index":14250,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.publicbackendurl",{"_index":20627,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.publicsubmissions",{"_index":11987,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.published",{"_index":2790,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/ColumnBoardTarget.html":{}}}],["this.publishedat",{"_index":21323,"title":{},"body":{"classes/VisibilitySettingsResponse.html":{}}}],["this.put('consent",{"_index":10894,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.put('login",{"_index":10895,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.random(50",{"_index":3520,"title":{},"body":{"injectables/BoardManagementUc.html":{}}}],["this.read",{"_index":9684,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.reason",{"_index":9729,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ScanResultDto.html":{}}}],["this.redirect",{"_index":2227,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/MigrationDto.html":{},"classes/OAuthProcessDto.html":{},"classes/UserMigrationResponse.html":{}}}],["this.redirect_to",{"_index":16604,"title":{},"body":{"classes/RedirectResponse.html":{}}}],["this.redirect_uri",{"_index":1613,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["this.redirecturi",{"_index":11863,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.redirecturis",{"_index":15172,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.redisclient",{"_index":17840,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["this.references",{"_index":7327,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.getitems",{"_index":2711,"title":{},"body":{"entities/Board.html":{}}}],["this.references.length",{"_index":7335,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.references.set(elements",{"_index":2715,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(newlist",{"_index":2749,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(onlyexistingreferences",{"_index":2738,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(props.references",{"_index":2704,"title":{},"body":{"entities/Board.html":{}}}],["this.references.set(references",{"_index":7422,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.referer",{"_index":10994,"title":{},"body":{"classes/HydraRedirectDto.html":{}}}],["this.refid",{"_index":9677,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refownermodel",{"_index":9646,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.refpermmodel",{"_index":9679,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{}}}],["this.refreshtoken",{"_index":15145,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["this.regex",{"_index":7080,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.regexcomment",{"_index":7082,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{}}}],["this.region",{"_index":11786,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.registerparentdata(parent",{"_index":16565,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.registerstrategy(iservstrategy",{"_index":16339,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(oidcmockstrategy",{"_index":16340,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.registerstrategy(sanisstrategy",{"_index":16338,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.rejectconsentrequest(challenge",{"_index":15467,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.rejectloginrequest(challenge",{"_index":15609,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.relatedresources",{"_index":11557,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.relation.ktid",{"_index":10706,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.relation.rollen[0",{"_index":10708,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["this.removedeletedreferences(boardelementtargets",{"_index":2732,"title":{},"body":{"entities/Board.html":{}}}],["this.removefromposition(from",{"_index":7366,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removeprotectedentityfields(newentity",{"_index":2454,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.removeroomsnotinlist(rooms",{"_index":7367,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.removesecrets(collectionname",{"_index":11214,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromstorageproviders(jsondocuments",{"_index":11289,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.removesecretsfromsystems(jsondocuments",{"_index":11288,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.repeatcommand",{"_index":11599,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["this.replaceurlsincontents(lessoncopy.contents",{"_index":13746,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.repo.findallbyuserid(userid",{"_index":6835,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyid(courseid",{"_index":6834,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.findbyowneruserid(userid",{"_index":10083,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbypermissionrefid(userid",{"_index":10078,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repo.findbyuserid(userid",{"_index":6677,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(coursegroups",{"_index":6680,"title":{},"body":{"injectables/CourseGroupService.html":{}}}],["this.repo.save(courses",{"_index":6838,"title":{},"body":{"injectables/CourseService.html":{}}}],["this.repo.save(entities",{"_index":10082,"title":{},"body":{"injectables/FilesService.html":{}}}],["this.repos.get(type",{"_index":11661,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.boardnode",{"_index":11656,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.contextexternaltoolentity",{"_index":11658,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.course",{"_index":11640,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.coursegroup",{"_index":11642,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.lesson",{"_index":11648,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.school",{"_index":11646,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.schoolexternaltoolentity",{"_index":11654,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.submission",{"_index":11652,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.task",{"_index":11638,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.team",{"_index":11650,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.repos.set(authorizablereferencetype.user",{"_index":11644,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.request",{"_index":10900,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.request('delete",{"_index":10916,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.request('get",{"_index":10907,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.request('put",{"_index":10897,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["this.request.app.get('feathersapp",{"_index":9443,"title":{},"body":{"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{}}}],["this.requestmapper.mapschoolexternaltoolrequest(body",{"_index":19942,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.requesttimeout",{"_index":19480,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["this.requesttoken",{"_index":9731,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.requesttoken(authcode",{"_index":15083,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.resizeandconvert(original",{"_index":16186,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.resolvepermissions(user",{"_index":16123,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(innerroles",{"_index":16122,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolvepermissionsbyroles(user.roles.getitems",{"_index":16120,"title":{},"body":{"injectables/PermissionService.html":{}}}],["this.resolveplaceholder(placeholder.substring(2",{"_index":11256,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["this.resolverepo(objectname",{"_index":11666,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.resolvetokenrequest(responsetokenobservable",{"_index":15222,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["this.resource_link_id",{"_index":7003,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.resourceelements.map((resourceelement",{"_index":5247,"title":{},"body":{"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["this.resourceid",{"_index":14983,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resourcename",{"_index":14981,"title":{},"body":{"classes/NotFoundLoggableException.html":{}}}],["this.resources.push(resource",{"_index":5086,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.response",{"_index":1316,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/HydraRedirectDto.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.responsemapper.maptoexternalgroupdtos(axiosresponse.data",{"_index":17270,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternalschooldto(axiosresponse.data",{"_index":17269,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoexternaluserdto(axiosresponse.data",{"_index":17267,"title":{},"body":{"injectables/SanisProvisioningStrategy.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(createdschoolexternaltooldo",{"_index":19950,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(schoolexternaltool",{"_index":19940,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptoschoolexternaltoolresponse(updated",{"_index":19944,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsemapper.maptosearchlistresponse(found",{"_index":19937,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.responsetype",{"_index":11864,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.restartuserloginmigrationuc.restartmigration",{"_index":20327,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.role",{"_index":2222,"title":{},"body":{"classes/BBBJoinConfig.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["this.roleid",{"_index":10733,"title":{},"body":{"classes/GroupUser.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.roleids",{"_index":20176,"title":{},"body":{"classes/UserDto.html":{}}}],["this.rolename",{"_index":8296,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.rolenames",{"_index":12368,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["this.rolenames.push(...props.rolenames",{"_index":11464,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.rolerepo.findbyid(id",{"_index":16864,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbyids(ids",{"_index":16866,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.rolerepo.findbynames(names",{"_index":16868,"title":{},"body":{"injectables/RoleService.html":{}}}],["this.roles",{"_index":7005,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/ExternalUserDto.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/UserDO.html":{}}}],["this.roles.getitems",{"_index":11676,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.isinitialized(true",{"_index":11673,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roles.set(props.roles",{"_index":11671,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["this.roleservice.findbyid(roleid",{"_index":4655,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.roleservice.findbynames([externalgroupuser.rolename",{"_index":15982,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(externaluser.roles",{"_index":15945,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.roleservice.findbynames(names",{"_index":16874,"title":{},"body":{"injectables/RoleUc.html":{}}}],["this.roleservice.getprotectedroles",{"_index":20805,"title":{},"body":{"injectables/UserService.html":{}}}],["this.rollbackmigration(schooldocopy",{"_index":17643,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.rollbackmigration(userdocopy",{"_index":20654,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.room",{"_index":7954,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.color",{"_index":8002,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.id",{"_index":8001,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.isfinished",{"_index":8005,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.name",{"_index":8003,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.substitutionteachers.contains(this.user",{"_index":7971,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.room.teachers.contains(this.user",{"_index":7970,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomid",{"_index":18139,"title":{},"body":{"classes/SingleColumnBoardResponse.html":{}}}],["this.roomsauthorisationservice",{"_index":7957,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.haslessonreadpermission(this.user",{"_index":7964,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsauthorisationservice.hastaskreadpermission(this.user",{"_index":7963,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.roomsservice.updateboard(board",{"_index":17048,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["this.roomsservice.updateboard(originalboard",{"_index":6542,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["this.roomsuc.getboard(urlparams.roomid",{"_index":16994,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.reorderboardelements(urlparams.roomid",{"_index":17000,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.roomsuc.updatevisibilityofboardelement",{"_index":16996,"title":{},"body":{"controllers/RoomsController.html":{}}}],["this.rootpath",{"_index":11889,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.routepath",{"_index":16649,"title":{},"body":{"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{}}}],["this.rulemanager.selectrule(user",{"_index":2044,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["this.rules",{"_index":17076,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.rules.filter((rule",{"_index":17090,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.s3clientmap.get(storageprovider.id",{"_index":7865,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.set(provider.id",{"_index":7844,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.s3clientmap.size",{"_index":7847,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.salt",{"_index":2371,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.save(dto",{"_index":1139,"title":{},"body":{"injectables/AccountService.html":{}}}],["this.save(this.create(course",{"_index":6798,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["this.save(this.create(lesson",{"_index":13886,"title":{},"body":{"injectables/LessonRepo.html":{}}}],["this.save(this.create(task",{"_index":18986,"title":{},"body":{"injectables/TaskRepo.html":{}}}],["this.saveall([entitydo",{"_index":2437,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.savevideoconference(vcdo",{"_index":21316,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.school",{"_index":6429,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{}}}],["this.school.id",{"_index":11490,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ITaskParent.html":{},"entities/ImportUser.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.schoolexternaltoolid",{"_index":5653,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["this.schoolexternaltoolrepo",{"_index":11655,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolexternaltoolrepo.deletebyexternaltoolid(toolid",{"_index":9143,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.deletebyid(schoolexternaltoolid",{"_index":17500,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.find",{"_index":17493,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyexternaltoolid(toolid",{"_index":9139,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.findbyid(schoolexternaltoolid",{"_index":17492,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrepo.save(schoolexternaltool",{"_index":17502,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["this.schoolexternaltoolrule",{"_index":17085,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.schoolexternaltoolservice.deleteschoolexternaltoolbyid(schoolexternaltoolid",{"_index":17528,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.findschoolexternaltools",{"_index":8428,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.getschoolexternaltoolbyid",{"_index":5990,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchService.html":{}}}],["this.schoolexternaltoolservice.getschoolexternaltoolbyid(contextexternaltool.schooltoolref.schooltoolid",{"_index":19912,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool",{"_index":17526,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltoolservice.saveschoolexternaltool(updated",{"_index":17529,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolexternaltooluc.createschoolexternaltool",{"_index":19949,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.deleteschoolexternaltool(currentuser.userid",{"_index":19947,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.findschoolexternaltools(currentuser.userid",{"_index":19935,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.getschoolexternaltool",{"_index":19939,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltooluc.updateschoolexternaltool",{"_index":19943,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["this.schoolexternaltoolvalidationservice.validate(schoolexternaltool",{"_index":17525,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["this.schoolid",{"_index":4304,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/UserDO.html":{},"classes/UserDto.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["this.schoolmigrationservice.hasschoolmigrateduser(schoolid",{"_index":4471,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.markunmigratedusersasoutdated(schoolid",{"_index":4473,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.schoolmigrationservice.migrateschool",{"_index":20529,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.migrateschool(data.externalschool.externalid",{"_index":15841,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.schoolmigrationservice.schooltomigrate",{"_index":15838,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.schoolmigrationservice.unmarkoutdatedusers(schoolid",{"_index":13635,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolmigrationservice.validategraceperiod(existinguserloginmigration",{"_index":13631,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.schoolname",{"_index":17572,"title":{},"body":{"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.schoolnumber_prefix_regex",{"_index":17302,"title":{},"body":{"injectables/SanisResponseMapper.html":{}}}],["this.schoolparameters",{"_index":11688,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.schoolrepo",{"_index":11647,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.schoolrepo.findbyexternalid(externalid",{"_index":13612,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(id",{"_index":13611,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyid(schoolid",{"_index":13336,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.findbyschoolnumber(school.officialschoolnumber",{"_index":17703,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["this.schoolrepo.findbyschoolnumber(schoolnumber",{"_index":13613,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrepo.save(school",{"_index":13610,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolrule.haspermission(user",{"_index":23107,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschool(params.schoolid",{"_index":23092,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.getschoolbyexternalid",{"_index":15930,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.schoolservice.getschoolbyid(ldapuser.schoolid",{"_index":12642,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.schoolservice.getschoolbyid(schoolexternaltool.schoolid",{"_index":321,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/ToolPermissionHelper.html":{}}}],["this.schoolservice.getschoolbyid(schoolid",{"_index":13636,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.getschoolbyid(userdo.schoolid",{"_index":17645,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber",{"_index":17647,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.getschoolbyschoolnumber(officialschoolnumber",{"_index":14467,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{},"injectables/UserMigrationService.html":{}}}],["this.schoolservice.hasfeature(schoolid",{"_index":21298,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.schoolservice.removefeature(schoolid",{"_index":20471,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.schoolservice.removefeature(userloginmigration.schoolid",{"_index":20428,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.schoolservice.save(originalschooldo",{"_index":17673,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.schoolservice.save(school",{"_index":15942,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.schoolservice.save(schooldo",{"_index":17672,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.schooltool",{"_index":5689,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["this.schooltoolid",{"_index":5844,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["this.schooltoolref",{"_index":5617,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{}}}],["this.schooluc.getmigration(schoolparams.schoolid",{"_index":13482,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schooluc.setmigration",{"_index":13475,"title":{},"body":{"controllers/LegacySchoolController.html":{}}}],["this.schoolvalidationservice.validate(school",{"_index":13614,"title":{},"body":{"injectables/LegacySchoolService.html":{}}}],["this.schoolyear",{"_index":11730,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.schoolyearrepo.findcurrentyear",{"_index":17720,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["this.schoolyearservice.getcurrentschoolyear",{"_index":15937,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.scope",{"_index":7078,"title":{},"body":{"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"classes/ScopeRef.html":{},"entities/System.html":{}}}],["this.searchbyusername(username",{"_index":930,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["this.searchuser",{"_index":11891,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.searchuserpassword",{"_index":11893,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.secret",{"_index":6995,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{}}}],["this.secretaccesskey",{"_index":11784,"title":{},"body":{"interfaces/IStorageProviderProperties.html":{},"entities/StorageProviderEntity.html":{}}}],["this.securitycheck",{"_index":9639,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.reason",{"_index":9754,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.requesttoken",{"_index":9756,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.status",{"_index":9753,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheck.updatedat",{"_index":9755,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.securitycheckstatus",{"_index":6094,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.selectconfigureaction(newconfigs",{"_index":12956,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.sendhttpresponse(error",{"_index":10496,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["this.service.createteam(team",{"_index":4678,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.deleteteam(teamid",{"_index":4677,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteam(team",{"_index":4679,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.service.updateteampermissionsforrole",{"_index":4673,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["this.sessionhandler(session",{"_index":15771,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["this.setmatch(props.user",{"_index":11469,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["this.share",{"_index":19314,"title":{},"body":{"classes/TeamPermissionsDto.html":{}}}],["this.sharetokenrepo.findonebytoken(token",{"_index":18042,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokenrepo.save(sharetoken",{"_index":18041,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.sharetokens",{"_index":9641,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.sharetokenservice.createtoken(payload",{"_index":18091,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptoken(token",{"_index":18096,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenservice.lookuptokenwithparentname(token",{"_index":18092,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["this.sharetokenuc.createsharetoken",{"_index":17914,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.importsharetoken",{"_index":17927,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.sharetokenuc.lookupsharetoken(currentuser.userid",{"_index":17923,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["this.shorttitle",{"_index":6699,"title":{},"body":{"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.shouldskipconsent(tool",{"_index":15618,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["this.size",{"_index":6092,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["this.skip",{"_index":16063,"title":{},"body":{"classes/PaginationResponse.html":{}}}],["this.skipconsent",{"_index":7022,"title":{},"body":{"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.sortbyoriginalorder(resolved",{"_index":3065,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.source",{"_index":4320,"title":{},"body":{"entities/ClassEntity.html":{},"entities/CourseNews.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["this.sourcedescription",{"_index":6746,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["this.sourceid",{"_index":6073,"title":{},"body":{"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{}}}],["this.sourceoptions",{"_index":4322,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.sourcesystem",{"_index":20226,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["this.sourcesystemid",{"_index":20348,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.stack",{"_index":8538,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenLoggableException.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/NotFoundLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.startdate",{"_index":6439,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{}}}],["this.startedat",{"_index":20232,"title":{},"body":{"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.startuserloginmigrationuc.startmigration",{"_index":20323,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.state",{"_index":7882,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/OauthLoginStateDto.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{}}}],["this.status",{"_index":2078,"title":{},"body":{"classes/AxiosResponseImp.html":{},"classes/BoardTaskResponse.html":{},"classes/CopyApiResponse.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"classes/ScanResultDto.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"entities/Task.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/TaskWithStatusVo.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceResponse.html":{},"classes/VideoConferenceBaseResponse.html":{}}}],["this.statuscode",{"_index":1313,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.statustext",{"_index":2080,"title":{},"body":{"classes/AxiosResponseImp.html":{}}}],["this.storageclient.create(filepath",{"_index":16188,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.deletedirectory(path",{"_index":16175,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.get(filepath",{"_index":16183,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.storageclient.get(path",{"_index":10443,"title":{},"body":{"injectables/FwuLearningContentsUc.html":{}}}],["this.storagefilename",{"_index":9631,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageprovider",{"_index":9633,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.storageproviderrepo.findall",{"_index":7842,"title":{},"body":{"injectables/DeleteFilesUc.html":{}}}],["this.strategies",{"_index":19814,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(externaltool.config.type",{"_index":19824,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.get(systemstrategy",{"_index":16349,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.get(toolconfigtype",{"_index":19819,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(strategy.gettype",{"_index":16341,"title":{},"body":{"injectables/ProvisioningService.html":{}}}],["this.strategies.set(toolconfigtype.basic",{"_index":19815,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.lti11",{"_index":19816,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategies.set(toolconfigtype.oauth2",{"_index":19817,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["this.strategy",{"_index":4521,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.createteam(team",{"_index":4524,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.deleteteam(teamid",{"_index":4523,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteam(team",{"_index":4525,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.strategy.updateteampermissionsforrole(this.mapper.mapdomaintoadapter(team",{"_index":4522,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["this.stringifiedmessage(message",{"_index":13429,"title":{},"body":{"injectables/LegacyLogger.html":{}}}],["this.stringifymessage(message",{"_index":14076,"title":{},"body":{"classes/LoggingUtils.html":{}}}],["this.student",{"_index":11795,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.student.id",{"_index":11830,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.students",{"_index":6638,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.getidentifiers('_id",{"_index":6640,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.remove((u",{"_index":6643,"title":{},"body":{"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{}}}],["this.students.set(props.students",{"_index":6431,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{}}}],["this.subjects",{"_index":11559,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.submissionitemservice.create(userid",{"_index":8103,"title":{},"body":{"injectables/ElementUc.html":{}}}],["this.submissionitemservice.findbyid(submissionitemid",{"_index":18378,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemservice.update(submissionitem",{"_index":18379,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["this.submissionitemuc.findsubmissionitems(currentuser.userid",{"_index":3703,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionitemuc.updatesubmissionitem",{"_index":3709,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["this.submissionrepo",{"_index":11653,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.submissionrepo.delete(submission",{"_index":18465,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findallbytaskids([taskid",{"_index":18463,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrepo.findbyid(submissionid",{"_index":18462,"title":{},"body":{"injectables/SubmissionService.html":{}}}],["this.submissionrule",{"_index":17084,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.submissions",{"_index":11991,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.getitems",{"_index":11994,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.isinitialized(true",{"_index":11992,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissions.set(props.submissions",{"_index":11985,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.submissionservice.delete(submission",{"_index":18493,"title":{},"body":{"injectables/SubmissionUc.html":{},"injectables/TaskService.html":{}}}],["this.submissionservice.findallbytask(taskid",{"_index":18487,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionservice.findbyid(submissionid",{"_index":18490,"title":{},"body":{"injectables/SubmissionUc.html":{}}}],["this.submissionuc.delete(currentuser.userid",{"_index":18273,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submissionuc.findallbytask(currentuser.userid",{"_index":18266,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["this.submitted",{"_index":3750,"title":{},"body":{"classes/BoardTaskStatusResponse.html":{},"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{},"classes/TaskStatusResponse.html":{}}}],["this.submitters",{"_index":18469,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.submittingcoursegroupname",{"_index":18470,"title":{},"body":{"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{}}}],["this.substitutionteachers.contains(user",{"_index":6456,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.substitutionteachers.remove((u",{"_index":6477,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.substitutionteachers.set(props.substitutionteachers",{"_index":6433,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.successful",{"_index":18503,"title":{},"body":{"classes/SuccessfulResponse.html":{}}}],["this.successor",{"_index":4318,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.system",{"_index":8318,"title":{},"body":{"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{}}}],["this.systemid",{"_index":417,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"classes/ExternalSource.html":{},"classes/OauthLoginStateDto.html":{},"classes/ProvisioningSystemDto.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.systemoidcservice.findall",{"_index":12954,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.systemrepo.findall",{"_index":18720,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oauth",{"_index":18717,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(systemtypeenum.oidc",{"_index":18667,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyfilter(type",{"_index":18719,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(id",{"_index":18663,"title":{},"body":{"injectables/SystemOidcService.html":{},"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemdto.id",{"_index":18724,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systemrepo.findbyid(systemid",{"_index":13335,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["this.systemrepo.save(system",{"_index":18732,"title":{},"body":{"injectables/SystemService.html":{}}}],["this.systems",{"_index":13505,"title":{},"body":{"classes/LegacySchoolDo.html":{}}}],["this.systems.set(props.systems",{"_index":11728,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.systemservice.findbyid(id",{"_index":18751,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemservice.findbyid(sourceid",{"_index":20632,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbyid(systemid",{"_index":15080,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"injectables/ProvisioningService.html":{}}}],["this.systemservice.findbyid(targetid",{"_index":20633,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.systemservice.findbytype(systemtypeenum.oauth",{"_index":18749,"title":{},"body":{"injectables/SystemUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.systemservice.findbytype(type",{"_index":18750,"title":{},"body":{"injectables/SystemUc.html":{}}}],["this.systemuc.findbyfilter(filterparams.type",{"_index":18559,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.systemuc.findbyid(params.systemid",{"_index":18564,"title":{},"body":{"controllers/SystemController.html":{}}}],["this.tags",{"_index":11561,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.target",{"_index":14661,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.targetgroups",{"_index":11563,"title":{},"body":{"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{}}}],["this.targetid",{"_index":14660,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.targetmodel",{"_index":6756,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"entities/VideoConference.html":{},"classes/VideoConferenceDO.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{}}}],["this.targetsystem",{"_index":20228,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["this.targetsystemid",{"_index":20350,"title":{},"body":{"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationResponse.html":{}}}],["this.task",{"_index":11799,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.taskcopyservice.copytask",{"_index":3069,"title":{},"body":{"injectables/BoardCopyService.html":{},"injectables/LessonCopyService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TaskCopyUC.html":{}}}],["this.taskcopyuc.copytask",{"_index":18831,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskrepo",{"_index":11639,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.taskrepo.createtask(taskcopy",{"_index":18858,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.delete(task",{"_index":19148,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.findallbyparentids",{"_index":19216,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findallfinishedbyparentids",{"_index":19198,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskrepo.findbyid(params.originaltaskid",{"_index":18850,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.taskrepo.findbyid(taskid",{"_index":18880,"title":{},"body":{"injectables/TaskCopyUC.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrepo.findbysingleparent",{"_index":18886,"title":{},"body":{"injectables/TaskCopyUC.html":{}}}],["this.taskrepo.findbysingleparent(creatorid",{"_index":19145,"title":{},"body":{"injectables/TaskService.html":{}}}],["this.taskrepo.save(task",{"_index":18861,"title":{},"body":{"injectables/TaskCopyService.html":{},"injectables/TaskUC.html":{}}}],["this.taskrule",{"_index":17080,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.taskrule.haspermission(user",{"_index":18448,"title":{},"body":{"injectables/SubmissionRule.html":{}}}],["this.tasks.getitems",{"_index":11340,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.tasks.isinitialized(true",{"_index":11338,"title":{},"body":{"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"entities/LessonEntity.html":{}}}],["this.taskservice.delete(task",{"_index":19242,"title":{},"body":{"injectables/TaskUC.html":{}}}],["this.taskservice.findbyid(sharetoken.payload.parentid)).name",{"_index":18050,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.taskservice.findbysingleparent(userid",{"_index":4995,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/RoomsService.html":{}}}],["this.taskuc.changefinishedforuser(currentuser.userid",{"_index":18826,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.delete(currentuser.userid",{"_index":18833,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findall(currentuser.userid",{"_index":18820,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.findallfinished(currentuser.userid",{"_index":18819,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.taskuc.revertpublished(currentuser.userid",{"_index":18829,"title":{},"body":{"controllers/TaskController.html":{}}}],["this.teacherids",{"_index":4308,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.teachers.remove((u",{"_index":6475,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.teachers.set(props.teachers",{"_index":6432,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["this.teamid",{"_index":3933,"title":{},"body":{"classes/CalendarEventDto.html":{},"classes/TeamRolePermissionsDto.html":{}}}],["this.teammembers",{"_index":11813,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.getidentifiers('_id",{"_index":11816,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teammembers.set(props.teammembers",{"_index":11808,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["this.teamname",{"_index":19331,"title":{},"body":{"classes/TeamRolePermissionsDto.html":{}}}],["this.teamrule",{"_index":17081,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.teamsmapper.mapentitytodto(await",{"_index":4648,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo",{"_index":11651,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.teamsrepo.findbyid(scopeid",{"_index":21275,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.teamsrepo.findbyid(teamid",{"_index":4649,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["this.teamsrepo.findbyuserid(userid",{"_index":12167,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/TeamService.html":{}}}],["this.teamsrepo.save(teams",{"_index":19354,"title":{},"body":{"injectables/TeamService.html":{}}}],["this.teamstorageuc.updateuserpermissionsforrole(currentuser.userid",{"_index":4599,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["this.teamsubmissions",{"_index":11989,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["this.teamusers",{"_index":19259,"title":{},"body":{"classes/TeamDto.html":{},"classes/TeamUserDto.html":{}}}],["this.text",{"_index":16765,"title":{},"body":{"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{}}}],["this.throwifnotmoderator(bbbrole",{"_index":20989,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.thrownothandled(card",{"_index":5578,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(column",{"_index":5577,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(columnboard",{"_index":5576,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(fileelement",{"_index":5581,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(richtextelement",{"_index":5586,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(submission",{"_index":5590,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thrownothandled(submissioncontainerelement",{"_index":5589,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["this.thumbnail",{"_index":9634,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.thumbnailrequesttoken",{"_index":9637,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.timeout",{"_index":10297,"title":{},"body":{"injectables/FilesStorageProducer.html":{},"todo.html":{}}}],["this.timeout(10000",{"_index":22775,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["this.timeoutms",{"_index":3972,"title":{},"body":{"injectables/CalendarService.html":{}}}],["this.timestamps",{"_index":3668,"title":{},"body":{"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["this.timetowait",{"_index":3842,"title":{},"body":{"classes/BruteForceError.html":{}}}],["this.title",{"_index":2789,"title":{},"body":{"classes/BoardColumnBoardResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"classes/CardResponse.html":{},"entities/ColumnBoardTarget.html":{},"classes/ColumnResponse.html":{},"classes/CopyApiResponse.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/ErrorResponse.html":{},"classes/GridElement.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"entities/Material.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"classes/SingleColumnBoardResponse.html":{},"entities/TeamNews.html":{}}}],["this.title.substring(0",{"_index":7338,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["this.toggleuserloginmigrationuc.setmigrationmandatory",{"_index":20329,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.token",{"_index":411,"title":{},"body":{"entities/Account.html":{},"classes/AccountSaveDto.html":{},"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["this.tokenendpoint",{"_index":11859,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["this.tokenendpointauthmethod",{"_index":15174,"title":{},"body":{"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigResponse.html":{}}}],["this.tokengenerator.generatesharetoken",{"_index":18038,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["this.tokenurl",{"_index":11926,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.tool",{"_index":11686,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["this.toolfeatures.backendurl",{"_index":8584,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolfeatures.contextconfigurationenabled",{"_index":8385,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["this.toolfeatures.ctltoolstabenabled",{"_index":15586,"title":{},"body":{"injectables/OauthProviderLoginFlowService.html":{}}}],["this.toolfeatures.maxexternaltoollogosizeinbytes",{"_index":8592,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["this.toolid",{"_index":8721,"title":{},"body":{"entities/ExternalToolPseudonymEntity.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["this.toollaunchservice.generatelaunchrequest(toollaunchdata",{"_index":19836,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchservice.getlaunchdata(userid",{"_index":19835,"title":{},"body":{"injectables/ToolLaunchUc.html":{}}}],["this.toollaunchuc.gettoollaunchrequest",{"_index":19732,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions",{"_index":5961,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["this.toolpermissionhelper.ensurecontextpermissions(userid",{"_index":5957,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolLaunchUc.html":{}}}],["this.toolpermissionhelper.ensureschoolpermissions(userid",{"_index":8448,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["this.toolreferenceuc.gettoolreferences",{"_index":19705,"title":{},"body":{"controllers/ToolController.html":{}}}],["this.toolvalidationservice.validatecreate(externaltool",{"_index":9208,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolvalidationservice.validateupdate(toolid",{"_index":9210,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["this.toolversion",{"_index":5625,"title":{},"body":{"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextExternalToolResponse.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["this.toparams(config",{"_index":2342,"title":{},"body":{"injectables/BBBService.html":{}}}],["this.total",{"_index":16009,"title":{},"body":{"classes/Page.html":{},"classes/PaginationResponse.html":{}}}],["this.tovideoconferencestateresponse(videoconferenceinfo.state",{"_index":21144,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["this.trygetprevieworgenerate(previewfileparams",{"_index":16172,"title":{},"body":{"injectables/PreviewService.html":{}}}],["this.tspuid",{"_index":4423,"title":{},"body":{"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{}}}],["this.type",{"_index":2621,"title":{},"body":{"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/BoardContextResponse.html":{},"classes/BoardElementResponse.html":{},"classes/BusinessError.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"classes/ContextRef.html":{},"classes/CopyApiResponse.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterResponse.html":{},"classes/ErrorResponse.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/FileElementContent.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"classes/FileElementResponse.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/PublicSystemResponse.html":{},"classes/RichText.html":{},"classes/RichTextElementContent.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"entities/SubmissionContainerElementNode.html":{},"classes/SubmissionContainerElementResponse.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/ToolLaunchData.html":{}}}],["this.uc.getpagecontent",{"_index":20579,"title":{},"body":{"controllers/UserMigrationController.html":{}}}],["this.until",{"_index":8286,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{}}}],["this.untildate",{"_index":6437,"title":{},"body":{"entities/Course.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"interfaces/ICourseProperties.html":{}}}],["this.updatecopiedembeddedtaskid(value",{"_index":13755,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.updatecopiedembeddedtasks(status",{"_index":13741,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["this.updatecopiedembeddedtasksoflessons(status",{"_index":3043,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["this.updatedat",{"_index":622,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"classes/County.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"classes/UserDO.html":{}}}],["this.updateentity(domainobject",{"_index":2443,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["this.updateexistinggridelement(existing",{"_index":7552,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["this.updateexistingmigration(existinguserloginmigration",{"_index":20474,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.updatefileurls(taskcopy",{"_index":18852,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["this.updateidentityprovider(configureaction.config",{"_index":12961,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updateoauth2toolconfig(toupdate",{"_index":9122,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateoauthclientorthrow(loadedoauthclient",{"_index":9150,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["this.updateorcreateidpdefaultmapper(oidcconfig.idphint",{"_index":12989,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["this.updater",{"_index":14662,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{}}}],["this.updateteamusersingroup(groupid",{"_index":14919,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.url",{"_index":6090,"title":{},"body":{"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordResponse.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/LdapConfig.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"entities/Material.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{}}}],["this.usecentralldap",{"_index":17578,"title":{},"body":{"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["this.user",{"_index":7430,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"classes/DtoCreator.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["this.userdata",{"_index":18330,"title":{},"body":{"classes/SubmissionItemResponse.html":{}}}],["this.userdorepo.find(query",{"_index":20802,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyexternalid(externalid",{"_index":20803,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.findbyid(id",{"_index":20798,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.save(user",{"_index":20799,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userdorepo.saveall(users",{"_index":20801,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userid",{"_index":415,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/BBBJoinConfig.html":{},"classes/DashboardEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GridElement.html":{},"classes/GroupUser.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IGridElement.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/NewsCrudOperationLoggable.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserDataResponse.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["this.userids",{"_index":4307,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["this.userimportuc.endschoolinmaintenance(currentuser.userid",{"_index":12341,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.findallimportusers(currentuser.userid",{"_index":12318,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.removematch(currentuser.userid",{"_index":12327,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.saveallusersmatches(currentuser.userid",{"_index":12337,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.setmatch(currentuser.userid",{"_index":12323,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.startschoolinusermigration(currentuser.userid",{"_index":12339,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userimportuc.updateflag(currentuser.userid",{"_index":12328,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.userinfourl",{"_index":11929,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"entities/System.html":{}}}],["this.userloginmigration",{"_index":11732,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/OauthLoginStateDto.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["this.userloginmigrationid",{"_index":13507,"title":{},"body":{"classes/LegacySchoolDo.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["this.userloginmigrationrepo.delete(userloginmigration",{"_index":20492,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid",{"_index":14469,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.findbyschoolid(schoolid",{"_index":17653,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigration",{"_index":20468,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrepo.save(userloginmigrationdo",{"_index":20473,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["this.userloginmigrationrevertservice.revertuserloginmigration(updateduserloginmigration",{"_index":4472,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationrule",{"_index":17088,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.userloginmigrationservice.closemigration",{"_index":4469,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.deleteuserloginmigration(userloginmigration",{"_index":20429,"title":{},"body":{"injectables/UserLoginMigrationRevertService.html":{}}}],["this.userloginmigrationservice.findmigrationbyschool",{"_index":4461,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.findmigrationbyschool(schoolid",{"_index":13630,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.findmigrationbyuser",{"_index":20511,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.restartmigration(schoolid",{"_index":16723,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.setmigration",{"_index":13632,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["this.userloginmigrationservice.setmigrationmandatory(schoolid",{"_index":19495,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["this.userloginmigrationservice.startmigration(schoolid",{"_index":18169,"title":{},"body":{"injectables/StartUserLoginMigrationUc.html":{}}}],["this.userloginmigrationuc.finduserloginmigrationbyschool",{"_index":20320,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.getmigrations",{"_index":20313,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.userloginmigrationuc.migrate(jwt",{"_index":20334,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["this.usermatchschoolid",{"_index":17560,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["this.usermigrationservice.getmigrationconsentpageredirect",{"_index":15092,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.usermigrationservice.getpagecontent",{"_index":20508,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["this.usermigrationservice.migrateuser",{"_index":15842,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["this.username",{"_index":407,"title":{},"body":{"entities/Account.html":{},"classes/AccountResponse.html":{},"classes/AccountSaveDto.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["this.userrepo",{"_index":11645,"title":{},"body":{"interfaces/IRepoLoader.html":{},"injectables/ReferenceLoader.html":{}}}],["this.userrepo.findbyemail(email",{"_index":1242,"title":{},"body":{"injectables/AccountValidationService.html":{},"injectables/UserService.html":{}}}],["this.userrepo.findbyid(accountuserid",{"_index":14017,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["this.userrepo.findbyid(id",{"_index":20795,"title":{},"body":{"injectables/UserService.html":{}}}],["this.userrepo.findbyid(userid",{"_index":6539,"title":{},"body":{"injectables/CourseCopyService.html":{},"interfaces/IRepoLoader.html":{},"injectables/LdapStrategy.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsUc.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrepo.save(user",{"_index":20812,"title":{},"body":{"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["this.userrule",{"_index":17082,"title":{},"body":{"injectables/RuleManager.html":{}}}],["this.users",{"_index":8282,"title":{},"body":{"classes/ExternalGroupDto.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.userservice.findbyemail(email",{"_index":12654,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid",{"_index":12635,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["this.userservice.findbyexternalid(externalgroupuser.externaluserid",{"_index":15981,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluser.externalid",{"_index":15947,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.findbyexternalid(externaluserid",{"_index":14470,"title":{},"body":{"injectables/MigrationCheckService.html":{},"injectables/OAuthService.html":{}}}],["this.userservice.findbyid(currentuserid",{"_index":15617,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.userservice.findbyid(teamuser.userid",{"_index":14939,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["this.userservice.findbyid(userid",{"_index":12168,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/VideoConferenceService.html":{}}}],["this.userservice.findusers",{"_index":17656,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.getdisplayname(user",{"_index":12169,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["this.userservice.getresolveduser(userid",{"_index":15844,"title":{},"body":{"injectables/OauthUc.html":{}}}],["this.userservice.save(newuser",{"_index":23083,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["this.userservice.save(user",{"_index":15960,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["this.userservice.save(userdo",{"_index":20660,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.save(userdocopy",{"_index":20655,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["this.userservice.saveall(migratedusers.data",{"_index":17667,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.userservice.saveall(notmigratedusers.data",{"_index":17661,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["this.useruc.findallunmatchedusers(currentuser.userid",{"_index":12332,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["this.useruc.me(currentuser.userid",{"_index":20032,"title":{},"body":{"controllers/UserController.html":{}}}],["this.useruc.patchlanguage(currentuser.userid",{"_index":20036,"title":{},"body":{"controllers/UserController.html":{}}}],["this.validate(props",{"_index":4302,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.validatelti11config(externaltool",{"_index":9247,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateoauth2config(externaltool",{"_index":9246,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["this.validateparameter(param",{"_index":5352,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["this.validatereordering(ids",{"_index":2713,"title":{},"body":{"entities/Board.html":{}}}],["this.validaterocketchatconfig",{"_index":1391,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["this.validatestatus",{"_index":10968,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["this.validatesubject(currentuser",{"_index":15462,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["this.validatetoken(oauthtokens.idtoken",{"_index":15084,"title":{},"body":{"injectables/OAuthService.html":{}}}],["this.validateusersmatch(dashboard",{"_index":7637,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["this.validationerrors.push(new",{"_index":1530,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["this.validperiod",{"_index":10660,"title":{},"body":{"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["this.value",{"_index":7037,"title":{},"body":{"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/LtiToolDO.html":{},"classes/PropertyData.html":{}}}],["this.vcsettings.enabled",{"_index":21272,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.vcsettings.hosturl",{"_index":21271,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.verifyfeaturesenabled(user.schoolid",{"_index":20984,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.version",{"_index":5659,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["this.versionkey",{"_index":9655,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["this.videoconferencecreateuc.createifnotrunning(currentuser.userid",{"_index":20931,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceenduc.end(currentuser.userid",{"_index":20940,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferenceinfouc.getmeetinginfo(currentuser.userid",{"_index":20936,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferencejoinuc.join(currentuser.userid",{"_index":20933,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["this.videoconferencerepo.findbyscopeandscopeid(scopeid",{"_index":21313,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.videoconferencerepo.save(videoconference",{"_index":21317,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["this.videoconferenceservice.canguestjoin(isguest",{"_index":21089,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.createorupdatevideoconferenceforscopewithoptions(scope.id",{"_index":20990,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.determinebbbrole",{"_index":20987,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.determinebbbrole(userid",{"_index":21060,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.findvideoconferencebyscopeidandscope",{"_index":21093,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(currentuserid",{"_index":20985,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.getscopeinfo(userid",{"_index":21059,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{}}}],["this.videoconferenceservice.getuserroleandgueststatusbyuseridforbbb",{"_index":21105,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.hasexpertrole",{"_index":21088,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{}}}],["this.videoconferenceservice.sanitizestring(`${user.firstname",{"_index":21107,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceservice.sanitizestring(scopeinfo.title",{"_index":20994,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(schoolid",{"_index":21000,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["this.videoconferenceservice.throwonfeaturesdisabled(user.schoolid",{"_index":21058,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["this.videoconferenceuc.create(currentuser",{"_index":21041,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.end(currentuser",{"_index":21050,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.getmeetinginfo(currentuser",{"_index":21038,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.videoconferenceuc.join(currentuser",{"_index":21045,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["this.visibilitysettings",{"_index":4112,"title":{},"body":{"classes/CardResponse.html":{}}}],["this.visitchildren(card",{"_index":16578,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(column",{"_index":16576,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(columnboard",{"_index":16574,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(fileelement",{"_index":16581,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(richtextelement",{"_index":16584,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(submission",{"_index":16592,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildren(submissioncontainerelement",{"_index":16587,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["this.visitchildrenasync(card",{"_index":16527,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(column",{"_index":16525,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(columnboard",{"_index":16523,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(fileelement",{"_index":16530,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(richtextelement",{"_index":16532,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submission",{"_index":16536,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.visitchildrenasync(submissioncontainerelement",{"_index":16534,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["this.welcome",{"_index":2140,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["this.write",{"_index":9682,"title":{},"body":{"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"classes/TeamPermissionsDto.html":{}}}],["this.xmlbuilder",{"_index":5074,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject",{"_index":5091,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.xmlbuilder.buildobject(commonobject",{"_index":5156,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["this.xpos",{"_index":7420,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.xposition",{"_index":7454,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.year",{"_index":4313,"title":{},"body":{"entities/ClassEntity.html":{},"interfaces/IClassEntityProps.html":{}}}],["this.ypos",{"_index":7421,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["this.yposition",{"_index":7455,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{}}}],["this.zipbuilder",{"_index":5082,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile('imsmanifest.xml",{"_index":5098,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.addfile(props.href",{"_index":5079,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this.zipbuilder.tobufferpromise",{"_index":5100,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["this['meta_bbb",{"_index":2150,"title":{},"body":{"classes/BBBCreateConfig.html":{}}}],["those",{"_index":21810,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["though",{"_index":22003,"title":{},"body":{"license.html":{}}}],["thoughtbot/fishery",{"_index":724,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["thr",{"_index":15244,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["threads_enabled=false",{"_index":23012,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["three",{"_index":21919,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["thresholddate",{"_index":7788,"title":{},"body":{"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"injectables/FilesRepo.html":{}}}],["thresholddate.setdate(thresholddate.getdate",{"_index":7789,"title":{},"body":{"classes/DeleteFilesConsole.html":{}}}],["through",{"_index":21774,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["throw",{"_index":305,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BBBService.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponseMapper.html":{},"injectables/CalendarService.html":{},"injectables/CardService.html":{},"entities/ClassEntity.html":{},"injectables/ClassService.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"classes/ColumnResponseMapper.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolValidationService.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyUC.html":{},"classes/CurrentUserMapper.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardUc.html":{},"classes/DomainObjectFactory.html":{},"injectables/ElementUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FilesStorageClientMapper.html":{},"classes/FilesStorageMapper.html":{},"injectables/FilesStorageProducer.html":{},"controllers/FwuLearningContentsController.html":{},"classes/GridElement.html":{},"injectables/GroupService.html":{},"classes/GuardAgainst.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/IUserProperties.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserScope.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/JwtStrategy.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LocalStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/LtiToolRepo.html":{},"classes/MetadataTypeMapper.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthAdapterService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PermissionService.html":{},"injectables/PreviewService.html":{},"injectables/ProvisioningService.html":{},"injectables/PseudonymService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleNameMapper.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SchoolValidationService.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchService.html":{},"entities/User.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["throwerror",{"_index":16680,"title":{},"body":{"injectables/RequestLoggingInterceptor.html":{},"injectables/TimeoutInterceptor.html":{}}}],["throwifnotmoderator",{"_index":20963,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwifnotmoderator(role",{"_index":20975,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["throwing",{"_index":23152,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["thrown",{"_index":10769,"title":{},"body":{"classes/GuardAgainst.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["thrownothandled",{"_index":5560,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["thrownothandled(component",{"_index":5564,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["throwonfeaturesdisabled",{"_index":21235,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["throwonfeaturesdisabled(schoolid",{"_index":21264,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["throws",{"_index":2340,"title":{},"body":{"injectables/BBBService.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/GuardAgainst.html":{},"classes/IdentityManagementOauthService.html":{},"controllers/KeycloakManagementController.html":{}}}],["thumbnail",{"_index":9567,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["thumbnailrequesttoken",{"_index":9568,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["thus",{"_index":79,"title":{},"body":{"classes/AbstractAccountService.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["ticket",{"_index":2049,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/FilesStorageProducer.html":{},"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["ticketsystem.dbildungscloud.de",{"_index":21640,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["time",{"_index":1848,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/CreateNewsParams.html":{},"injectables/JwtValidationAdapter.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/UpdateNewsParams.html":{},"dependencies.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["timedifference",{"_index":1838,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["timeout",{"_index":3976,"title":{},"body":{"injectables/CalendarService.html":{},"injectables/FilesStorageProducer.html":{},"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timeout(timeoutvalue",{"_index":19479,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeouterror",{"_index":19474,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor",{"_index":12574,"title":{"injectables/TimeoutInterceptor.html":{}},"body":{"modules/InterceptorModule.html":{},"injectables/TimeoutInterceptor.html":{}}}],["timeoutinterceptor(timeout",{"_index":12576,"title":{},"body":{"modules/InterceptorModule.html":{}}}],["timeoutms",{"_index":3960,"title":{},"body":{"injectables/CalendarService.html":{}}}],["timeouts",{"_index":22780,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["timeoutvalue",{"_index":19475,"title":{},"body":{"injectables/TimeoutInterceptor.html":{}}}],["timer",{"_index":17189,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["times",{"_index":2188,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{}}}],["timestamp",{"_index":14664,"title":{},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["timestamps",{"_index":3658,"title":{},"body":{"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["timestamps.response",{"_index":3666,"title":{},"body":{"classes/BoardResponse.html":{},"classes/CardResponse.html":{},"classes/ColumnResponse.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionItemResponse.html":{}}}],["timestampsresponse",{"_index":3662,"title":{"classes/TimestampsResponse.html":{}},"body":{"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"classes/FileElementContent.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/TimestampsResponse.html":{}}}],["timetowait",{"_index":1843,"title":{},"body":{"injectables/AuthenticationService.html":{},"classes/BruteForceError.html":{}}}],["timouts",{"_index":22768,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["tiny",{"_index":21468,"title":{},"body":{"dependencies.html":{}}}],["title",{"_index":1474,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/AuthorizationError.html":{},"classes/BoardColumnBoardResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"injectables/BoardUc.html":{},"classes/BruteForceError.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/CopyApiResponse.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CreateNewsParams.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"classes/DashboardResponse.html":{},"classes/DtoCreator.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"controllers/H5PEditorController.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IErrorType.html":{},"interfaces/IGridElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/ITargetGroupProperties.html":{},"classes/LdapConnectionError.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NexboardService.html":{},"classes/PatchGroupParams.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RenameBodyParams.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"classes/SingleColumnBoardResponse.html":{},"injectables/TaskCopyService.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"entities/TeamNews.html":{},"classes/UpdateNewsParams.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserLoginMigrationError.html":{},"classes/ValidationError.html":{},"injectables/VideoConferenceService.html":{},"index.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["title(title",{"_index":3997,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{},"interfaces/ColumnProps.html":{}}}],["title=\"username",{"_index":12161,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["titlea",{"_index":7323,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titleb",{"_index":7325,"title":{},"body":{"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{}}}],["titlemap",{"_index":4749,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["titlesmap",{"_index":3327,"title":{},"body":{"injectables/BoardDoRepo.html":{},"injectables/ColumnBoardTargetService.html":{}}}],["titlesmap[id",{"_index":4846,"title":{},"body":{"injectables/ColumnBoardTargetService.html":{}}}],["tls",{"_index":7852,"title":{},"body":{"injectables/DeleteFilesUc.html":{},"modules/S3ClientModule.html":{}}}],["tmp/config/users",{"_index":22952,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms",{"_index":22961,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"powershell",{"_index":22923,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"setup",{"_index":22924,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["tmp/realms\"to",{"_index":22357,"title":{},"body":{"additional-documentation/nestjs-application.html":{}}}],["tmpdirpath",{"_index":10019,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["toarray",{"_index":5021,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"injectables/DatabaseManagementService.html":{}}}],["toboardid",{"_index":14566,"title":{},"body":{"classes/MoveColumnBodyParams.html":{}}}],["tocardid",{"_index":14570,"title":{},"body":{"classes/MoveContentElementBody.html":{}}}],["tocolumnid",{"_index":14560,"title":{},"body":{"classes/MoveCardBodyParams.html":{}}}],["todo",{"_index":1919,"title":{"todo.html":{}},"body":{"injectables/AuthorizationHelper.html":{},"modules/AuthorizationModule.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"modules/BoardModule.html":{},"injectables/BoardNodeRepo.html":{},"controllers/CardController.html":{},"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"entities/Course.html":{},"interfaces/CreateJwtPayload.html":{},"injectables/DashboardRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/FederalStateService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"injectables/IdTokenService.html":{},"entities/ImportUser.html":{},"classes/ImportUserScope.html":{},"modules/InterceptorModule.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PermissionService.html":{},"injectables/SchoolYearService.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"entities/Task.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"classes/TeamUserDto.html":{},"modules/ToolModule.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["todos",{"_index":23140,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["together",{"_index":10359,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["toggleuserloginmigrationuc",{"_index":19487,"title":{"injectables/ToggleUserLoginMigrationUc.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["token",{"_index":351,"title":{},"body":{"interfaces/AcceptConsentRequestBody.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordScope.html":{},"controllers/FileSecurityController.html":{},"injectables/HydraAdapter.html":{},"interfaces/IShareTokenProperties.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/JwtExtractor.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"entities/ShareToken.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"injectables/TokenGenerator.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["token.'})@apiresponse({status",{"_index":17889,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.body.params.ts",{"_index":17864,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:13",{"_index":17873,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:21",{"_index":17871,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:32",{"_index":17869,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.body.params.ts:41",{"_index":17876,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["token.controller",{"_index":18126,"title":{},"body":{"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.controller.ts",{"_index":17883,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:40",{"_index":17892,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:67",{"_index":17906,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.controller.ts:86",{"_index":17902,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["token.do",{"_index":11772,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"classes/MetadataTypeMapper.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenFactory.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"injectables/TokenGenerator.html":{}}}],["token.do.factory.ts",{"_index":17946,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.factory.ts:9",{"_index":17949,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["token.do.ts",{"_index":17932,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:27",{"_index":17938,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:29",{"_index":17937,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:31",{"_index":17935,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.do.ts:33",{"_index":17933,"title":{},"body":{"classes/ShareTokenDO.html":{}}}],["token.dto.ts",{"_index":15138,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:2",{"_index":15141,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:4",{"_index":15142,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.dto.ts:6",{"_index":15140,"title":{},"body":{"classes/OAuthTokenDto.html":{}}}],["token.entity",{"_index":17997,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.entity.ts",{"_index":11766,"title":{},"body":{"interfaces/IShareTokenProperties.html":{},"entities/ShareToken.html":{}}}],["token.entity.ts:19",{"_index":17861,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:22",{"_index":17860,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:25",{"_index":17857,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:32",{"_index":17858,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:35",{"_index":17856,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.entity.ts:43",{"_index":17859,"title":{},"body":{"entities/ShareToken.html":{}}}],["token.repo",{"_index":18036,"title":{},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{}}}],["token.repo.ts",{"_index":17988,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:17",{"_index":17991,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.repo.ts:9",{"_index":17995,"title":{},"body":{"injectables/ShareTokenRepo.html":{}}}],["token.request.ts",{"_index":1595,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:10",{"_index":1604,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:12",{"_index":1600,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:4",{"_index":1601,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:6",{"_index":1602,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.request.ts:8",{"_index":1605,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{}}}],["token.response.ts",{"_index":15806,"title":{},"body":{"interfaces/OauthTokenResponse.html":{},"classes/ShareTokenResponse.html":{}}}],["token.response.ts:12",{"_index":18012,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:15",{"_index":18011,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:18",{"_index":18010,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.response.ts:4",{"_index":18009,"title":{},"body":{"classes/ShareTokenResponse.html":{}}}],["token.service",{"_index":15460,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{},"modules/OauthProviderModule.html":{}}}],["token.service.ts",{"_index":12137,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/ShareTokenService.html":{}}}],["token.service.ts:14",{"_index":12153,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:16",{"_index":12146,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/ShareTokenService.html":{}}}],["token.service.ts:25",{"_index":18030,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:28",{"_index":12150,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:42",{"_index":18032,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:49",{"_index":12148,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:50",{"_index":18034,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.service.ts:59",{"_index":12152,"title":{},"body":{"injectables/IdTokenService.html":{}}}],["token.service.ts:70",{"_index":18028,"title":{},"body":{"injectables/ShareTokenService.html":{}}}],["token.ts",{"_index":10671,"title":{},"body":{"interfaces/GroupNameIdTuple.html":{},"interfaces/IdToken.html":{}}}],["token.uc.ts",{"_index":18052,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:129",{"_index":18067,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:137",{"_index":18068,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:148",{"_index":18070,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:164",{"_index":18066,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:186",{"_index":18060,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:194",{"_index":18062,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:215",{"_index":18078,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:221",{"_index":18064,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:23",{"_index":18058,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:37",{"_index":18072,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:65",{"_index":18076,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.uc.ts:87",{"_index":18074,"title":{},"body":{"injectables/ShareTokenUC.html":{}}}],["token.url.params.ts",{"_index":18117,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token.url.params.ts:11",{"_index":18119,"title":{},"body":{"classes/ShareTokenUrlParams.html":{}}}],["token=${token}&scope=${scope",{"_index":10902,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["token_endpoint_auth_method",{"_index":9170,"title":{},"body":{"injectables/ExternalToolServiceMapper.html":{},"classes/OauthClientBody.html":{}}}],["token_type",{"_index":12581,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["token_use",{"_index":12582,"title":{},"body":{"interfaces/IntrospectResponse.html":{}}}],["tokenauthmethod",{"_index":15264,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokendto",{"_index":15104,"title":{},"body":{"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.accesstoken",{"_index":15164,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokendto.idtoken",{"_index":15163,"title":{},"body":{"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["tokenendpoint",{"_index":11087,"title":{},"body":{"injectables/HydraSsoService.html":{},"interfaces/ISystemProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OidcConfig.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"classes/SystemResponseMapper.html":{}}}],["tokenendpointauthmethod",{"_index":7123,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolService.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["tokenendpointauthmethod.client_secret_post",{"_index":7141,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["tokengenerator",{"_index":18026,"title":{"injectables/TokenGenerator.html":{}},"body":{"injectables/ShareTokenService.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"injectables/TokenGenerator.html":{}}}],["tokenrequestmapper",{"_index":15074,"title":{"classes/TokenRequestMapper.html":{}},"body":{"injectables/OAuthService.html":{},"classes/TokenRequestMapper.html":{}}}],["tokenrequestmapper.createauthenticationcodegranttokenrequestpayload",{"_index":15136,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestmapper.maptokenresponsetodto(responsetoken",{"_index":15105,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokenrequestpayload",{"_index":15135,"title":{},"body":{"injectables/OAuthService.html":{}}}],["tokens",{"_index":15257,"title":{},"body":{"classes/OauthClientBody.html":{}}}],["tokenurl",{"_index":11934,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["tomorrow",{"_index":5511,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["took",{"_index":17663,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["tool",{"_index":209,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"modules/ContextExternalToolModule.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"modules/ExternalToolModule.html":{},"injectables/ExternalToolParameterValidationService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"injectables/HydraSsoService.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"modules/OauthProviderModule.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"injectables/PseudonymService.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"modules/SchoolExternalToolModule.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SortExternalToolParams.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"modules/ToolLaunchModule.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"modules/ToolModule.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tool'})@apifoundresponse({description",{"_index":19548,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tool'})@isstring()@isoptional",{"_index":9065,"title":{},"body":{"classes/ExternalToolSearchParams.html":{}}}],["tool.'})@apiokresponse({description",{"_index":19667,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool.config",{"_index":15623,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.config.clientid",{"_index":9131,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.config.skipconsent",{"_index":15624,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.do.ts",{"_index":5600,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{}}}],["tool.do.ts:22",{"_index":5611,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:23",{"_index":17358,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:24",{"_index":5607,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:25",{"_index":17361,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:26",{"_index":5608,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:27",{"_index":17360,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:28",{"_index":5609,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:29",{"_index":17359,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:30",{"_index":5606,"title":{},"body":{"classes/ContextExternalTool.html":{},"classes/ExternalTool.html":{}}}],["tool.do.ts:31",{"_index":17362,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:32",{"_index":8330,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:33",{"_index":17357,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:34",{"_index":8327,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:36",{"_index":8326,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:38",{"_index":8324,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:40",{"_index":8329,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:41",{"_index":5613,"title":{},"body":{"classes/ContextExternalTool.html":{}}}],["tool.do.ts:42",{"_index":8325,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:44",{"_index":8328,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:45",{"_index":17363,"title":{},"body":{"classes/SchoolExternalTool.html":{}}}],["tool.do.ts:46",{"_index":8323,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:62",{"_index":8331,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:66",{"_index":8335,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.do.ts:70",{"_index":8333,"title":{},"body":{"classes/ExternalTool.html":{}}}],["tool.entity.ts",{"_index":5674,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"entities/ExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:13",{"_index":8482,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:16",{"_index":8485,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:17",{"_index":17369,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:19",{"_index":8480,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:20",{"_index":17367,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:22",{"_index":8479,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:23",{"_index":17368,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:24",{"_index":5683,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:25",{"_index":8477,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:26",{"_index":17370,"title":{},"body":{"entities/SchoolExternalToolEntity.html":{}}}],["tool.entity.ts:27",{"_index":5676,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:28",{"_index":8484,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:30",{"_index":5678,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:31",{"_index":8478,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:33",{"_index":5679,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:34",{"_index":8483,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:36",{"_index":5681,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.entity.ts:37",{"_index":8486,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool.entity.ts:39",{"_index":5684,"title":{},"body":{"entities/ContextExternalToolEntity.html":{}}}],["tool.factory.ts",{"_index":5697,"title":{},"body":{"classes/ContextExternalToolFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:100",{"_index":8516,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:107",{"_index":8515,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:29",{"_index":15190,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["tool.factory.ts:65",{"_index":7121,"title":{},"body":{"classes/CustomParameterFactory.html":{}}}],["tool.factory.ts:7",{"_index":17375,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["tool.factory.ts:86",{"_index":8518,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.factory.ts:9",{"_index":5700,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["tool.factory.ts:93",{"_index":8517,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["tool.id",{"_index":8382,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/IdTokenService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{}}}],["tool.ishidden",{"_index":8379,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tool.logo",{"_index":8607,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["tool.module",{"_index":19528,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool.module.ts",{"_index":5277,"title":{},"body":{"modules/CommonToolModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/ExternalToolModule.html":{},"modules/LtiToolModule.html":{},"modules/SchoolExternalToolModule.html":{}}}],["tool.name",{"_index":9136,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.oauthclientid",{"_index":11068,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.repo.mapper.ts",{"_index":8800,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:112",{"_index":8812,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:119",{"_index":8832,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:128",{"_index":8828,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:141",{"_index":8824,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:159",{"_index":8817,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:177",{"_index":8822,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:187",{"_index":8819,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:22",{"_index":8826,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:53",{"_index":8815,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:60",{"_index":8835,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:69",{"_index":8830,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.mapper.ts:82",{"_index":8825,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["tool.repo.ts",{"_index":5743,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:114",{"_index":5763,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:123",{"_index":5761,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:14",{"_index":8770,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:19",{"_index":8782,"title":{},"body":{"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:24",{"_index":17413,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:25",{"_index":5748,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:27",{"_index":8777,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:30",{"_index":5775,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:32",{"_index":17409,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:36",{"_index":8775,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:38",{"_index":5754,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.repo.ts:41",{"_index":17411,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:45",{"_index":5758,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:50",{"_index":17405,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:54",{"_index":8773,"title":{},"body":{"injectables/ExternalToolRepo.html":{}}}],["tool.repo.ts:55",{"_index":17407,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:64",{"_index":17402,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool.repo.ts:70",{"_index":5751,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool.response",{"_index":5901,"title":{},"body":{"classes/ContextExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{}}}],["tool.response.ts",{"_index":5832,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:10",{"_index":5841,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:13",{"_index":5835,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:16",{"_index":5836,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:19",{"_index":5837,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:22",{"_index":5840,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:25",{"_index":5842,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:28",{"_index":5834,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.response.ts:31",{"_index":8987,"title":{},"body":{"classes/ExternalToolResponse.html":{}}}],["tool.response.ts:7",{"_index":5838,"title":{},"body":{"classes/ContextExternalToolResponse.html":{},"classes/ExternalToolResponse.html":{},"classes/SchoolExternalToolResponse.html":{}}}],["tool.rule",{"_index":17073,"title":{},"body":{"injectables/RuleManager.html":{}}}],["tool.rule.ts",{"_index":5864,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:12",{"_index":5867,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:18",{"_index":5866,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.rule.ts:9",{"_index":5865,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"injectables/SchoolExternalToolRule.html":{}}}],["tool.scope",{"_index":5781,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{}}}],["tool.scope.ts",{"_index":5871,"title":{},"body":{"classes/ContextExternalToolScope.html":{},"classes/ExternalToolScope.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:12",{"_index":9055,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:13",{"_index":17468,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:15",{"_index":5892,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:19",{"_index":9057,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:22",{"_index":5886,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:30",{"_index":5888,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.scope.ts:5",{"_index":9059,"title":{},"body":{"classes/ExternalToolScope.html":{}}}],["tool.scope.ts:6",{"_index":17466,"title":{},"body":{"classes/SchoolExternalToolScope.html":{}}}],["tool.scope.ts:7",{"_index":5890,"title":{},"body":{"classes/ContextExternalToolScope.html":{}}}],["tool.secret",{"_index":11069,"title":{},"body":{"injectables/HydraSsoService.html":{}}}],["tool.service",{"_index":5986,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["tool.service.ts",{"_index":5285,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ExternalToolService.html":{},"injectables/LtiToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:10",{"_index":5289,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:103",{"_index":9090,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:11",{"_index":5916,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:118",{"_index":9104,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:131",{"_index":9108,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:143",{"_index":9086,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:16",{"_index":9084,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:17",{"_index":5918,"title":{},"body":{"injectables/ContextExternalToolService.html":{},"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:22",{"_index":17488,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:23",{"_index":5920,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:26",{"_index":5294,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool.service.ts:28",{"_index":9088,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:29",{"_index":5910,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:32",{"_index":17486,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:39",{"_index":5912,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:40",{"_index":17484,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:43",{"_index":5914,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:44",{"_index":9101,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:51",{"_index":9098,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:52",{"_index":17482,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:6",{"_index":14387,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:60",{"_index":17480,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:64",{"_index":17491,"title":{},"body":{"injectables/SchoolExternalToolService.html":{}}}],["tool.service.ts:78",{"_index":9092,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:8",{"_index":5908,"title":{},"body":{"injectables/ContextExternalToolService.html":{}}}],["tool.service.ts:9",{"_index":14389,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool.service.ts:93",{"_index":9094,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.service.ts:98",{"_index":9096,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tool.skipconsent",{"_index":15622,"title":{},"body":{"injectables/OauthProviderLoginFlowUc.html":{}}}],["tool.types",{"_index":5778,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool.uc.ts",{"_index":5931,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:10",{"_index":9193,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:11",{"_index":17511,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:12",{"_index":5938,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:18",{"_index":9195,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:19",{"_index":17519,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:21",{"_index":5940,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:30",{"_index":17513,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:31",{"_index":9204,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:39",{"_index":5952,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:47",{"_index":17516,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:52",{"_index":9200,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:59",{"_index":17515,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:63",{"_index":9202,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:64",{"_index":5942,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:70",{"_index":9197,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:73",{"_index":17521,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:77",{"_index":5950,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolUc.html":{}}}],["tool.uc.ts:83",{"_index":17523,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool.uc.ts:87",{"_index":5948,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool.uc.ts:96",{"_index":5945,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/context",{"_index":5722,"title":{},"body":{"modules/ContextExternalToolModule.html":{}}}],["tool/controller",{"_index":19523,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/controller/dto",{"_index":5741,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool/controller/dto/context",{"_index":5662,"title":{},"body":{"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/custom",{"_index":7109,"title":{},"body":{"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{}}}],["tool/controller/dto/request/config/basic",{"_index":2624,"title":{},"body":{"classes/BasicToolConfigParams.html":{}}}],["tool/controller/dto/request/config/external",{"_index":8342,"title":{},"body":{"classes/ExternalToolConfigCreateParams.html":{}}}],["tool/controller/dto/request/config/lti11",{"_index":14188,"title":{},"body":{"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/config/oauth2",{"_index":15178,"title":{},"body":{"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["tool/controller/dto/request/context",{"_index":5710,"title":{},"body":{"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextRefParams.html":{}}}],["tool/controller/dto/request/custom",{"_index":7179,"title":{},"body":{"classes/CustomParameterPostParams.html":{}}}],["tool/controller/dto/request/external",{"_index":8454,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SortExternalToolParams.html":{}}}],["tool/controller/dto/request/school",{"_index":17380,"title":{},"body":{"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolIdParams-1.html":{}}}],["tool/controller/dto/response/config/basic",{"_index":2634,"title":{},"body":{"classes/BasicToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/external",{"_index":8348,"title":{},"body":{"classes/ExternalToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/lti11",{"_index":14207,"title":{},"body":{"classes/Lti11ToolConfigResponse.html":{}}}],["tool/controller/dto/response/config/oauth2",{"_index":15191,"title":{},"body":{"classes/Oauth2ToolConfigResponse.html":{}}}],["tool/controller/dto/response/context",{"_index":5634,"title":{},"body":{"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/response/custom",{"_index":7203,"title":{},"body":{"classes/CustomParameterResponse.html":{}}}],["tool/controller/dto/response/external",{"_index":8986,"title":{},"body":{"classes/ExternalToolResponse.html":{},"classes/ExternalToolSearchListResponse.html":{}}}],["tool/controller/dto/response/school",{"_index":17365,"title":{},"body":{"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{}}}],["tool/controller/dto/response/tool",{"_index":19860,"title":{},"body":{"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["tool/controller/dto/school",{"_index":17379,"title":{},"body":{"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{}}}],["tool/controller/tool",{"_index":19532,"title":{},"body":{"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolSchoolController.html":{}}}],["tool/controller/tool.controller.ts",{"_index":19643,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:106",{"_index":19664,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:125",{"_index":19677,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:147",{"_index":19657,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:167",{"_index":19673,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:191",{"_index":19669,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:58",{"_index":19650,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/controller/tool.controller.ts:78",{"_index":19661,"title":{},"body":{"controllers/ToolController.html":{}}}],["tool/domain",{"_index":201,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ContextExternalTool.html":{},"classes/ContextExternalToolFactory.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CustomParameterFactory.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IToolLaunchParams.html":{},"injectables/IdTokenService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"injectables/NextcloudStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PseudonymService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["tool/domain/config/basic",{"_index":2601,"title":{},"body":{"classes/BasicToolConfig.html":{}}}],["tool/domain/config/external",{"_index":8340,"title":{},"body":{"classes/ExternalToolConfig.html":{}}}],["tool/domain/config/lti11",{"_index":14179,"title":{},"body":{"classes/Lti11ToolConfig.html":{}}}],["tool/domain/config/oauth2",{"_index":15168,"title":{},"body":{"classes/Oauth2ToolConfig.html":{}}}],["tool/domain/context",{"_index":5599,"title":{},"body":{"classes/ContextExternalTool.html":{},"interfaces/ContextExternalToolProps.html":{},"classes/ContextRef.html":{}}}],["tool/domain/external",{"_index":8320,"title":{},"body":{"classes/ExternalTool.html":{},"classes/ExternalToolLogo.html":{},"interfaces/ExternalToolProps.html":{}}}],["tool/domain/school",{"_index":17355,"title":{},"body":{"classes/SchoolExternalTool.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{}}}],["tool/domain/tool",{"_index":19850,"title":{},"body":{"classes/ToolReference.html":{}}}],["tool/entity",{"_index":5686,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ExternalToolEntityFactory.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSortingMapper.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{}}}],["tool/entity/config/basic",{"_index":2612,"title":{},"body":{"classes/BasicToolConfigEntity.html":{}}}],["tool/entity/config/external",{"_index":8345,"title":{},"body":{"classes/ExternalToolConfigEntity.html":{}}}],["tool/entity/config/lti11",{"_index":14200,"title":{},"body":{"classes/Lti11ToolConfigEntity.html":{}}}],["tool/entity/config/oauth2",{"_index":15186,"title":{},"body":{"classes/Oauth2ToolConfigEntity.html":{}}}],["tool/entity/context",{"_index":5673,"title":{},"body":{"entities/ContextExternalToolEntity.html":{},"interfaces/IContextExternalToolProperties.html":{}}}],["tool/entity/custom",{"_index":7087,"title":{},"body":{"classes/CustomParameterEntity.html":{}}}],["tool/entity/external",{"_index":8473,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["tool/entity/school",{"_index":11683,"title":{},"body":{"interfaces/ISchoolExternalToolProperties.html":{},"entities/SchoolExternalToolEntity.html":{}}}],["tool/external",{"_index":8634,"title":{},"body":{"modules/ExternalToolModule.html":{}}}],["tool/loggable/external",{"_index":8529,"title":{},"body":{"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{}}}],["tool/lti",{"_index":14333,"title":{},"body":{"modules/LtiToolModule.html":{}}}],["tool/mapper",{"_index":9023,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"modules/ToolApiModule.html":{}}}],["tool/mapper/context",{"_index":5811,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponseMapper.html":{}}}],["tool/mapper/external",{"_index":8885,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["tool/mapper/school",{"_index":17426,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["tool/mapper/tool",{"_index":19573,"title":{},"body":{"classes/ToolConfigurationMapper.html":{},"classes/ToolReferenceMapper.html":{}}}],["tool/school",{"_index":17386,"title":{},"body":{"modules/SchoolExternalToolModule.html":{}}}],["tool/service",{"_index":5985,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"interfaces/IRepoLoader.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/ReferenceLoader.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"modules/ToolApiModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["tool/service/context",{"_index":5628,"title":{},"body":{"injectables/ContextExternalToolAuthorizableService.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{}}}],["tool/service/external",{"_index":8352,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{}}}],["tool/service/lti",{"_index":14385,"title":{},"body":{"injectables/LtiToolService.html":{}}}],["tool/service/school",{"_index":17470,"title":{},"body":{"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolValidationService.html":{}}}],["tool/uc",{"_index":19524,"title":{},"body":{"modules/ToolApiModule.html":{}}}],["tool/uc/context",{"_index":5930,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tool/uc/dto/context",{"_index":5777,"title":{},"body":{"injectables/ContextExternalToolRepo.html":{}}}],["tool/uc/dto/school",{"_index":17414,"title":{},"body":{"injectables/SchoolExternalToolRepo.html":{}}}],["tool/uc/external",{"_index":8400,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolUc.html":{}}}],["tool/uc/school",{"_index":17505,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["tool/uc/tool",{"_index":19882,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["tool1",{"_index":5295,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool1.getversion",{"_index":5300,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2",{"_index":5293,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool2.getversion",{"_index":5301,"title":{},"body":{"injectables/CommonToolService.html":{}}}],["tool_clientid_duplicate",{"_index":9261,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientid_immutable",{"_index":9257,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_clientsecret_missing",{"_index":9259,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_param_auto_requires_global",{"_index":8681,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_regex",{"_index":8691,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_default_required",{"_index":8678,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_duplicate",{"_index":5344,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regex_invalid",{"_index":8688,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_regexcomment",{"_index":8685,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_required",{"_index":5358,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_param_type_mismatch",{"_index":5361,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{}}}],["tool_param_value_regex",{"_index":5366,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["tool_secret_missing",{"_index":9262,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_status_outdated",{"_index":19953,"title":{},"body":{"classes/ToolStatusOutdatedLoggableException.html":{}}}],["tool_type_immutable",{"_index":9253,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["tool_version_mismatch",{"_index":17541,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["tool_with_name_exists",{"_index":6006,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["toolapimodule",{"_index":17773,"title":{"modules/ToolApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/ToolApiModule.html":{},"modules.html":{}}}],["toolconfigmodule",{"_index":8628,"title":{"modules/ToolConfigModule.html":{}},"body":{"modules/ExternalToolModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolConfigModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolconfigtype",{"_index":2606,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["toolconfigtype.basic",{"_index":2609,"title":{},"body":{"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["toolconfigtype.lti11",{"_index":7149,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/ToolLaunchMapper.html":{}}}],["toolconfigtype.oauth2",{"_index":7145,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/ToolLaunchMapper.html":{}}}],["toolconfigtypetotoollaunchdatatypemapping",{"_index":19759,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfigtypetotoollaunchdatatypemapping[configtype",{"_index":19770,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toolconfiguration",{"_index":12084,"title":{"classes/ToolConfiguration.html":{}},"body":{"interfaces/IToolFeatures.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{}}}],["toolconfiguration.toolfeatures",{"_index":19530,"title":{},"body":{"modules/ToolConfigModule.html":{}}}],["toolconfigurationcontroller",{"_index":19519,"title":{"controllers/ToolConfigurationController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper",{"_index":19555,"title":{"classes/ToolConfigurationMapper.html":{}},"body":{"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":19566,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptocontextexternaltoolconfigurationtemplateresponse(tool",{"_index":19572,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplatelistresponse(availabletools",{"_index":19562,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationmapper.maptoschoolexternaltoolconfigurationtemplateresponse(tool",{"_index":19569,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["toolconfigurationstatus",{"_index":5290,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolconfigurationstatus.latest",{"_index":5298,"title":{},"body":{"injectables/CommonToolService.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["toolconfigurationstatus.outdated",{"_index":5299,"title":{},"body":{"injectables/CommonToolService.html":{},"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolconfigurationstatus.unknown",{"_index":17453,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolconfigurationstatusresponse",{"_index":17437,"title":{},"body":{"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/ToolReferenceResponse.html":{}}}],["toolconfigurationstatusresponse.latest",{"_index":17451,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolconfigurationstatusresponse.outdated",{"_index":17452,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolconfigurationstatusresponse.unknown",{"_index":17454,"title":{},"body":{"injectables/SchoolExternalToolResponseMapper.html":{}}}],["toolcontextcontroller",{"_index":19521,"title":{"controllers/ToolContextController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolContextController.html":{}}}],["toolcontexttype",{"_index":197,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolScope.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolcontexttype.course",{"_index":316,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextTypeMapper.html":{}}}],["toolcontroller",{"_index":19522,"title":{"controllers/ToolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolController.html":{}}}],["toolfeatures",{"_index":8361,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/IToolFeatures.html":{},"injectables/OauthProviderLoginFlowService.html":{},"modules/ToolConfigModule.html":{},"classes/ToolConfiguration.html":{}}}],["toolid",{"_index":8568,"title":{},"body":{"classes/ExternalToolLogoService.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/ExternalToolValidationService.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["toolidsinuse",{"_index":8372,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{}}}],["toolidsinuse.includes(tool.id",{"_index":8383,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolinfo",{"_index":19584,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos",{"_index":19581,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["toolinfos.map",{"_index":19594,"title":{},"body":{"classes/ToolConfigurationMapper.html":{}}}],["tooling",{"_index":22788,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["toollaunchcontroller",{"_index":19518,"title":{"controllers/ToolLaunchController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{}}}],["toollaunchdata",{"_index":160,"title":{"classes/ToolLaunchData.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ToolLaunchData.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchdata.opennewtab",{"_index":237,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchdata.properties",{"_index":233,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchdatado",{"_index":170,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{}}}],["toollaunchdatado.properties.filter",{"_index":239,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchdatatype",{"_index":19738,"title":{},"body":{"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.basic",{"_index":19760,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.lti11",{"_index":19761,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatype.oauth2",{"_index":19762,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping",{"_index":19763,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchdatatypetotoolconfigtypemapping[launchdatatype",{"_index":19771,"title":{},"body":{"classes/ToolLaunchMapper.html":{}}}],["toollaunchmapper",{"_index":205,"title":{"classes/ToolLaunchMapper.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptoparameterlocation(customparameterlocation",{"_index":332,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchmapper.maptotoolconfigtype(toollaunchdata.type",{"_index":19818,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toollaunchmapper.maptotoollaunchdatatype(externaltool.config.type",{"_index":273,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["toollaunchmapper.maptotoollaunchrequestresponse(toollaunchrequest",{"_index":19733,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchmodule",{"_index":19772,"title":{"modules/ToolLaunchModule.html":{}},"body":{"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toollaunchparams",{"_index":19719,"title":{"classes/ToolLaunchParams.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchParams.html":{}}}],["toollaunchrequest",{"_index":175,"title":{"classes/ToolLaunchRequest.html":{}},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BasicToolLaunchStrategy.html":{},"interfaces/IToolLaunchStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchrequestresponse",{"_index":19729,"title":{"classes/ToolLaunchRequestResponse.html":{}},"body":{"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{}}}],["toollaunchrequestresponse})@apiunauthorizedresponse({description",{"_index":19722,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["toollaunchservice",{"_index":19777,"title":{"injectables/ToolLaunchService.html":{}},"body":{"modules/ToolLaunchModule.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{}}}],["toollaunchuc",{"_index":19516,"title":{"injectables/ToolLaunchUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolLaunchController.html":{},"injectables/ToolLaunchUc.html":{}}}],["toolmodule",{"_index":1981,"title":{"modules/ToolModule.html":{}},"body":{"modules/AuthorizationModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthProviderModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolModule.html":{},"modules.html":{}}}],["toolpermissionhelper",{"_index":5275,"title":{"injectables/ToolPermissionHelper.html":{}},"body":{"modules/CommonToolModule.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolref",{"_index":8395,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolref.externaltool.ishidden",{"_index":8397,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolreference",{"_index":9016,"title":{"classes/ToolReference.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"controllers/ToolController.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreference.contexttoolid",{"_index":9045,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.displayname",{"_index":9046,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.logourl",{"_index":9047,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreference.openinnewtab",{"_index":9049,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"classes/ToolReference.html":{}}}],["toolreference.status",{"_index":19859,"title":{},"body":{"classes/ToolReference.html":{}}}],["toolreferencelistresponse",{"_index":19678,"title":{"classes/ToolReferenceListResponse.html":{}},"body":{"controllers/ToolController.html":{},"classes/ToolReferenceListResponse.html":{}}}],["toolreferencelistresponse(toolreferenceresponses",{"_index":19707,"title":{},"body":{"controllers/ToolController.html":{}}}],["toolreferencelistresponse})@apiforbiddenresponse({description",{"_index":19672,"title":{},"body":{"controllers/ToolController.html":{}}}],["toolreferencemapper",{"_index":19862,"title":{"classes/ToolReferenceMapper.html":{}},"body":{"classes/ToolReferenceMapper.html":{},"injectables/ToolReferenceUc.html":{}}}],["toolreferencemapper.maptotoolreference",{"_index":19910,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceresponse",{"_index":9018,"title":{"classes/ToolReferenceResponse.html":{}},"body":{"injectables/ExternalToolResponseMapper.html":{},"controllers/ToolController.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.contexttoolid",{"_index":19877,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.displayname",{"_index":19879,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.logourl",{"_index":19878,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.openinnewtab",{"_index":19880,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponse.status",{"_index":19881,"title":{},"body":{"classes/ToolReferenceResponse.html":{}}}],["toolreferenceresponses",{"_index":9042,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"controllers/ToolController.html":{}}}],["toolreferences",{"_index":9021,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{},"controllers/ToolController.html":{}}}],["toolreferences.map((toolreference",{"_index":9043,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["toolreferencespromises",{"_index":19901,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull",{"_index":19903,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceswithnull.filter",{"_index":19906,"title":{},"body":{"injectables/ToolReferenceUc.html":{}}}],["toolreferenceuc",{"_index":19517,"title":{"injectables/ToolReferenceUc.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolController.html":{},"injectables/ToolReferenceUc.html":{}}}],["tools",{"_index":5944,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"controllers/ToolConfigurationController.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["tools')@apiforbiddenresponse()@apioperation({summary",{"_index":19537,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools.data",{"_index":9132,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.data.map",{"_index":19689,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools.data.map(async",{"_index":9127,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tools.filter((tool",{"_index":5972,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["tools.map(async",{"_index":8452,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{}}}],["tools.total",{"_index":19691,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/:contextexternaltoolid/configuration",{"_index":19546,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/:schoolexternaltoolid/configuration",{"_index":19552,"title":{},"body":{"controllers/ToolConfigurationController.html":{}}}],["tools/context",{"_index":19598,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["tools/external",{"_index":19644,"title":{},"body":{"controllers/ToolController.html":{}}}],["tools/school",{"_index":19913,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["tools/{id}/logo",{"_index":8438,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolController.html":{}}}],["toolschoolcontroller",{"_index":19520,"title":{"controllers/ToolSchoolController.html":{}},"body":{"modules/ToolApiModule.html":{},"controllers/ToolSchoolController.html":{}}}],["toolstatusoutdatedloggableexception",{"_index":19813,"title":{"classes/ToolStatusOutdatedLoggableException.html":{}},"body":{"injectables/ToolLaunchService.html":{},"classes/ToolStatusOutdatedLoggableException.html":{}}}],["toolstatusoutdatedloggableexception(userid",{"_index":19827,"title":{},"body":{"injectables/ToolLaunchService.html":{}}}],["toolswithpermission",{"_index":5968,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["toolswithschooltool",{"_index":8389,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["toolswithschooltool.filter",{"_index":8394,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["tooltemplateinfo.externaltool",{"_index":8446,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["tooltemplateinfo.externaltool.logourl",{"_index":8447,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{}}}],["toolvalidationservice",{"_index":9192,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["toolversion",{"_index":5292,"title":{"interfaces/ToolVersion.html":{}},"body":{"injectables/CommonToolService.html":{},"classes/ContextExternalTool.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ExternalTool.html":{},"interfaces/ExternalToolProps.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"classes/SchoolExternalTool.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"interfaces/SchoolExternalToolProps.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"interfaces/ToolVersion.html":{}}}],["toomodule",{"_index":1992,"title":{},"body":{"modules/AuthorizationModule.html":{}}}],["top",{"_index":23019,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["toparams",{"_index":2286,"title":{},"body":{"injectables/BBBService.html":{}}}],["toparams(object",{"_index":2322,"title":{},"body":{"injectables/BBBService.html":{}}}],["topic",{"_index":22966,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["toplevel",{"_index":12930,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["toposition",{"_index":3822,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{},"injectables/CardUc.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{}}}],["toseedfolder",{"_index":7680,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/Options.html":{}}}],["tostring",{"_index":1251,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["total",{"_index":1008,"title":{},"body":{"classes/AccountSearchListResponse.html":{},"injectables/BaseDORepo.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileResponse.html":{},"controllers/CourseController.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordResponse.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/Page.html":{},"classes/PaginationResponse.html":{},"controllers/TaskController.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"injectables/TaskUC.html":{},"injectables/UserDORepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"injectables/UserRepo.html":{}}}],["total.length",{"_index":20729,"title":{},"body":{"injectables/UserRepo.html":{}}}],["total[0].count",{"_index":20730,"title":{},"body":{"injectables/UserRepo.html":{}}}],["totalitems",{"_index":10748,"title":{},"body":{"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/Meta.html":{},"interfaces/NextcloudGroups.html":{},"interfaces/OcsResponse.html":{},"interfaces/SuccessfulRes.html":{}}}],["tothrow",{"_index":10765,"title":{},"body":{"classes/GuardAgainst.html":{}}}],["touching",{"_index":23120,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["toupdate",{"_index":9102,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{}}}],["toupdate.config",{"_index":9147,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.config.clientid",{"_index":9149,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdate.name",{"_index":9146,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["toupdateoauthclient",{"_index":9107,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["tovalidate",{"_index":5983,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["tovideoconferenceinforesponse",{"_index":21121,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceinforesponse(videoconferenceinfo",{"_index":21125,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse",{"_index":21122,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencejoinresponse(videoconferencejoin",{"_index":21127,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions",{"_index":21123,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferenceoptions(params",{"_index":21129,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse",{"_index":21124,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["tovideoconferencestateresponse(state",{"_index":21131,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["trace",{"_index":11527,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["trade",{"_index":22025,"title":{},"body":{"license.html":{}}}],["trademark",{"_index":22024,"title":{},"body":{"license.html":{}}}],["trademarks",{"_index":22026,"title":{},"body":{"license.html":{}}}],["transaction",{"_index":21980,"title":{},"body":{"license.html":{}}}],["transfer",{"_index":11609,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{}}}],["transferred",{"_index":21982,"title":{},"body":{"license.html":{}}}],["transferring",{"_index":22078,"title":{},"body":{"license.html":{}}}],["transform",{"_index":5097,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/ICommonCartridgeElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["transform:true",{"_index":10537,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transformer",{"_index":5739,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FilesStorageMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{},"dependencies.html":{}}}],["transformoptions",{"_index":10535,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["transient",{"_index":675,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["transient(transient",{"_index":732,"title":{},"body":{"classes/AccountFactory.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["transition",{"_index":22963,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["transitioning",{"_index":22665,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["translate",{"_index":21623,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["transmission",{"_index":21944,"title":{},"body":{"license.html":{}}}],["transparent",{"_index":18179,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{}}}],["transports",{"_index":14052,"title":{},"body":{"modules/LoggerModule.html":{}}}],["trash",{"_index":17122,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["treated",{"_index":578,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["treating",{"_index":22871,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["treaty",{"_index":21854,"title":{},"body":{"license.html":{}}}],["tried",{"_index":1146,"title":{},"body":{"injectables/AccountService.html":{}}}],["tries",{"_index":22724,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["trigger",{"_index":22930,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["trim",{"_index":12547,"title":{},"body":{"classes/ImportUserScope.html":{},"classes/StringValidator.html":{},"injectables/UserRepo.html":{}}}],["trimpassword",{"_index":1125,"title":{},"body":{"injectables/AccountService.html":{}}}],["trimslash",{"_index":257,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["trimslash.split",{"_index":260,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["trivial",{"_index":22482,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["true",{"_index":369,"title":{},"body":{"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"injectables/AccountLookupService.html":{},"modules/AccountModule.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"classes/BBBCreateConfigBuilder.html":{},"entities/Board.html":{},"injectables/BoardDoRule.html":{},"entities/BoardElement.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/BoardUrlParams.html":{},"classes/CardIdsParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"entities/ClassEntity.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"injectables/CollaborativeStorageService.html":{},"entities/ColumnBoardTarget.html":{},"classes/ColumnUrlParams.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomParameterEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"injectables/DatabaseManagementService.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolConfigEntity.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolIdParams.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolUpdateParams.html":{},"entities/FederalState.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"modules/FilesStorageModule.html":{},"classes/FilterImportUserParams.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalValidationPipe.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"injectables/GroupRepo.html":{},"modules/H5PEditorModule.html":{},"injectables/HydraOauthUc.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"classes/IdParams.html":{},"classes/IdentityManagementOauthService.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapConfig.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"injectables/LocalStrategy.html":{},"modules/LoggerModule.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigEntity.html":{},"entities/LtiTool.html":{},"classes/LtiToolFactory.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"classes/MigrationBody.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"entities/News.html":{},"classes/NewsUrlParams.html":{},"injectables/OAuthService.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigResponse.html":{},"injectables/OauthProviderLoginFlowService.html":{},"classes/OidcConfig.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"interfaces/Options.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/PublicSystemResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"modules/S3ClientModule.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleFileParams.html":{},"entities/StorageProviderEntity.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemIdParams.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserEntity.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"entities/UserLoginMigration.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/VideoConferenceOptionsResponse.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["true})@apiproperty({description",{"_index":4082,"title":{},"body":{"classes/CardIdsParams.html":{},"classes/ConsentResponse.html":{},"classes/LoginResponse-1.html":{},"classes/OauthClientBody.html":{},"classes/PatchOrderParams.html":{}}}],["true})@apiproperty({oneof",{"_index":19960,"title":{},"body":{"classes/UpdateElementContentBodyParams.html":{}}}],["true})@apiproperty({required",{"_index":5434,"title":{},"body":{"classes/ConsentResponse.html":{}}}],["true})@enum",{"_index":18518,"title":{},"body":{"entities/System.html":{}}}],["true})@index",{"_index":4284,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"entities/Task.html":{},"entities/User.html":{}}}],["true})@isarray()@isoptional()@apipropertyoptional({type",{"_index":5733,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["true})@ismongoid",{"_index":21220,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["true})@isoptional()@apiproperty({description",{"_index":5377,"title":{},"body":{"classes/ConsentRequestBody.html":{}}}],["true})@isoptional()@apipropertyoptional({required",{"_index":6851,"title":{},"body":{"classes/CreateCardBodyParams.html":{}}}],["true})@isoptional()@isenum(filtermatchtype",{"_index":10342,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@singlevaluetoarraytransformer()@isarray",{"_index":10343,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["true})@unique({options",{"_index":6388,"title":{},"body":{"entities/Course.html":{},"entities/ImportUser.html":{},"entities/LtiTool.html":{}}}],["try",{"_index":784,"title":{},"body":{"injectables/AccountLookupService.html":{},"injectables/AccountService.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardManagementUc.html":{},"injectables/DeleteFilesUc.html":{},"injectables/EtherpadService.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolService.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakAdministrationService.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"controllers/KeycloakManagementController.html":{},"injectables/KeycloakMigrationService.html":{},"injectables/LdapStrategy.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthAdapterService.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["try/catch",{"_index":20521,"title":{},"body":{"injectables/UserLoginMigrationUc.html":{}}}],["tryfindbyid",{"_index":10710,"title":{},"body":{"injectables/GroupService.html":{}}}],["tryfindbyid(id",{"_index":10719,"title":{},"body":{"injectables/GroupService.html":{}}}],["trygetprevieworgenerate",{"_index":16138,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trygetprevieworgenerate(params",{"_index":16158,"title":{},"body":{"injectables/PreviewService.html":{}}}],["trying",{"_index":6460,"title":{},"body":{"entities/Course.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"injectables/LdapStrategy.html":{},"entities/LessonEntity.html":{}}}],["ts",{"_index":1285,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/ImportUserScope.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/UserRepo.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["tspuid",{"_index":4332,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{}}}],["ttl",{"_index":17819,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["tvalue",{"_index":12235,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["two",{"_index":13354,"title":{},"body":{"injectables/LdapStrategy.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["typ",{"_index":12674,"title":{},"body":{"interfaces/JwtConstants.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisOrganisationResponse.html":{}}}],["type",{"_index":32,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"interfaces/AcceptConsentRequestBody.html":{},"interfaces/AcceptLoginRequestBody.html":{},"classes/AcceptQuery.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"controllers/AccountController.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"injectables/AccountIdmToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountLookupService.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchListResponse.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"classes/AuthenticationCodeGrantTokenRequest.html":{},"modules/AuthenticationModule.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/AuthorizationContext.html":{},"classes/AuthorizationContextBuilder.html":{},"classes/AuthorizationError.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/AuthorizationLoaderService.html":{},"interfaces/AuthorizationLoaderServiceGeneric.html":{},"classes/AuthorizationParams.html":{},"injectables/AuthorizationService.html":{},"classes/AxiosResponseImp.html":{},"classes/BBBBaseMeetingConfig.html":{},"interfaces/BBBBaseResponse.html":{},"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{},"interfaces/BBBCreateResponse.html":{},"classes/BBBJoinConfig.html":{},"classes/BBBJoinConfigBuilder.html":{},"interfaces/BBBJoinResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"interfaces/BBBResponse.html":{},"injectables/BBBService.html":{},"classes/BaseDO.html":{},"injectables/BaseDORepo.html":{},"classes/BaseDomainObject.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BaseRepo.html":{},"interfaces/BaseResponseMapper.html":{},"classes/BasicToolConfig.html":{},"classes/BasicToolConfigEntity.html":{},"classes/BasicToolConfigParams.html":{},"classes/BasicToolConfigResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardContextResponse.html":{},"controllers/BoardController.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/BoardDoBuilder.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardDoService.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"interfaces/BoardExternalReference.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardRepo.html":{},"classes/BoardResponse.html":{},"classes/BoardResponseMapper.html":{},"controllers/BoardSubmissionController.html":{},"classes/BoardTaskResponse.html":{},"classes/BoardTaskStatusMapper.html":{},"classes/BoardTaskStatusResponse.html":{},"injectables/BoardUc.html":{},"classes/BoardUrlParams.html":{},"classes/BruteForceError.html":{},"injectables/BsonConverter.html":{},"classes/Builder.html":{},"classes/BusinessError.html":{},"classes/CalendarEventDto.html":{},"injectables/CalendarMapper.html":{},"injectables/CalendarService.html":{},"classes/Card.html":{},"controllers/CardController.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"injectables/CardService.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CardUc.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageAdapterMapper.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"injectables/ColumnBoardTargetService.html":{},"controllers/ColumnController.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"classes/ColumnResponse.html":{},"classes/ColumnResponseMapper.html":{},"injectables/ColumnService.html":{},"classes/ColumnUrlParams.html":{},"entities/ColumnboardBoardElement.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"injectables/CommonToolService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"injectables/ConsoleWriterService.html":{},"injectables/ContentElementFactory.html":{},"classes/ContentElementResponseFactory.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalTool.html":{},"injectables/ContextExternalToolAuthorizableService.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"entities/ContextExternalToolEntity.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"interfaces/ContextExternalToolProps.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"injectables/ContextExternalToolRule.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/ContextRef.html":{},"classes/ContextRefParams.html":{},"classes/ContextTypeMapper.html":{},"injectables/ConverterUtil.html":{},"classes/CookiesDto.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFileResponseBuilder.html":{},"interfaces/CopyFiles.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{},"classes/County.html":{},"entities/Course.html":{},"controllers/CourseController.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupRule.html":{},"injectables/CourseGroupService.html":{},"classes/CourseMapper.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"entities/CourseNews.html":{},"classes/CourseQueryParams.html":{},"injectables/CourseRepo.html":{},"injectables/CourseRule.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"interfaces/CreateJwtParams.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CurrentUserMapper.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameter.html":{},"classes/CustomParameterEntity.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/CustomParameterPostParams.html":{},"classes/CustomParameterResponse.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DashboardResponse.html":{},"injectables/DashboardUc.html":{},"classes/DashboardUrlParams.html":{},"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"injectables/DatabaseManagementService.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObject.html":{},"classes/DomainObjectFactory.html":{},"classes/DownloadFileParams.html":{},"classes/DtoCreator.html":{},"injectables/DurationLoggingInterceptor.html":{},"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorLoggable.html":{},"injectables/ErrorLogger.html":{},"classes/ErrorMapper.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"injectables/EtherpadService.html":{},"classes/ExternalGroupDto.html":{},"classes/ExternalGroupUserDto.html":{},"classes/ExternalSchoolDto.html":{},"classes/ExternalSource.html":{},"classes/ExternalSourceEntity.html":{},"interfaces/ExternalSourceEntityProps.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolConfig.html":{},"classes/ExternalToolConfigCreateParams.html":{},"classes/ExternalToolConfigEntity.html":{},"classes/ExternalToolConfigResponse.html":{},"injectables/ExternalToolConfigurationService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolLogo.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"injectables/ExternalToolParameterValidationService.html":{},"interfaces/ExternalToolProps.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"classes/ExternalToolSearchParams.html":{},"interfaces/ExternalToolSearchQuery.html":{},"injectables/ExternalToolService.html":{},"injectables/ExternalToolServiceMapper.html":{},"classes/ExternalToolSortingMapper.html":{},"injectables/ExternalToolUc.html":{},"classes/ExternalToolUpdateParams.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/ExternalUserDto.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"interfaces/FeathersError.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/FederalState.html":{},"injectables/FederalStateRepo.html":{},"injectables/FederalStateService.html":{},"interfaces/File.html":{},"classes/FileContentBody.html":{},"classes/FileDto.html":{},"classes/FileDto-1.html":{},"classes/FileDtoBuilder.html":{},"classes/FileElement.html":{},"classes/FileElementContent.html":{},"classes/FileElementContentBody.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FileElementResponse.html":{},"classes/FileElementResponseMapper.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FileParamBuilder.html":{},"classes/FileParams.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordParams.html":{},"injectables/FileRecordRepo.html":{},"classes/FileRecordResponse.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileResponseBuilder.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"controllers/FileSecurityController.html":{},"injectables/FileSystemAdapter.html":{},"classes/FileUrlParams.html":{},"injectables/FilesRepo.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageClientAdapterService.html":{},"classes/FilesStorageClientMapper.html":{},"injectables/FilesStorageConsumer.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageModule.html":{},"injectables/FilesStorageProducer.html":{},"modules/FilesStorageTestModule.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/ForbiddenLoggableException.html":{},"classes/ForbiddenOperationError.html":{},"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"interfaces/GetFile.html":{},"interfaces/GetFileResponse.html":{},"classes/GetFwuLearningContentParams.html":{},"interfaces/GlobalConstants.html":{},"classes/GlobalErrorFilter.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupNameIdTuple.html":{},"interfaces/GroupProps.html":{},"injectables/GroupRepo.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/GroupService.html":{},"classes/GroupUser.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/GroupUsers.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"interfaces/HtmlMailContent.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"classes/HydraRedirectDto.html":{},"injectables/HydraSsoService.html":{},"interfaces/IAccountConfig.html":{},"interfaces/IBbbSettings.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/ICommonCartridgeConfig.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/IContextExternalToolProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICreateNews.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IEncryptionService.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IError.html":{},"interfaces/IErrorType.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileDomainObjectProps.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IFileRequestInfo.html":{},"interfaces/IFileStorageConfig.html":{},"interfaces/IFilesStorageClientConfig.html":{},"interfaces/IFindOptions.html":{},"interfaces/IGridElement.html":{},"interfaces/IIdentityManagementConfig.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/IInterceptorConfig.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IJsonUser.html":{},"interfaces/IKeycloakConfigurationInputFiles.html":{},"interfaces/IKeycloakSettings.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ILoggerConfig.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/INewsScope.html":{},"interfaces/IPagination.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISchoolExternalToolProperties.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/ISchoolYearProperties.html":{},"interfaces/IScopeInfo.html":{},"interfaces/IServerConfig.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/IStorageProviderProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolFeatures.html":{},"interfaces/IToolLaunchParams.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IUserConfig.html":{},"interfaces/IUserProperties.html":{},"interfaces/IVideoConferenceSettings.html":{},"classes/IdParams.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/ImportUserMatchMapper.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"interfaces/InlineAttachment.html":{},"interfaces/IntrospectResponse.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtConstants.html":{},"classes/JwtExtractor.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"classes/JwtTestFactory.html":{},"injectables/JwtValidationAdapter.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LdapConfig.html":{},"classes/LdapConnectionError.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"controllers/LegacySchoolController.html":{},"classes/LegacySchoolDo.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"entities/LessonBoardElement.html":{},"controllers/LessonController.html":{},"classes/LessonCopyApiParams.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"classes/LessonScope.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"injectables/Logger.html":{},"classes/LoggingUtils.html":{},"controllers/LoginController.html":{},"classes/LoginDto.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse.html":{},"classes/LoginResponse-1.html":{},"classes/LoginResponseMapper.html":{},"injectables/LoginUc.html":{},"injectables/Lti11EncryptionService.html":{},"classes/Lti11ToolConfig.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigEntity.html":{},"classes/Lti11ToolConfigResponse.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"injectables/LtiToolService.html":{},"interfaces/Mail.html":{},"interfaces/MailAttachment.html":{},"interfaces/MailContent.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"injectables/MailService.html":{},"interfaces/MailServiceOptions.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/MaterialsRepo.html":{},"interfaces/Meta.html":{},"classes/MetadataTypeMapper.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationBody.html":{},"injectables/MigrationCheckService.html":{},"classes/MigrationDto.html":{},"injectables/MigrationMapper.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MigrationResponse.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsCrudOperationLoggable.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"classes/NewsScope.html":{},"interfaces/NewsTargetFilter.html":{},"injectables/NewsUc.html":{},"classes/NewsUrlParams.html":{},"injectables/NexboardService.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"classes/NotFoundLoggableException.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthProcessDto.html":{},"classes/OAuthRejectableBody.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/OAuthTokenDto.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfig.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigEntity.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/Oauth2ToolConfigResponse.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"injectables/OauthAdapterService.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OauthConfigDto.html":{},"classes/OauthConfigResponse.html":{},"classes/OauthDataDto.html":{},"classes/OauthDataStrategyInputDto.html":{},"classes/OauthLoginStateDto.html":{},"classes/OauthLoginStateMapper.html":{},"classes/OauthMigrationDto.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthProviderController.html":{},"injectables/OauthProviderLoginFlowService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthProviderLogoutFlowUc.html":{},"classes/OauthProviderRequestMapper.html":{},"injectables/OauthProviderResponseMapper.html":{},"classes/OauthProviderService.html":{},"injectables/OauthProviderUc.html":{},"controllers/OauthSSOController.html":{},"interfaces/OauthTokenResponse.html":{},"injectables/OauthUc.html":{},"interfaces/OcsResponse.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcContextResponse.html":{},"classes/OidcIdentityProviderMapper.html":{},"injectables/OidcMockProvisioningStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"classes/Page.html":{},"classes/PageContentDto.html":{},"injectables/PageContentMapper.html":{},"classes/PageContentQueryParams.html":{},"classes/PageContentResponse.html":{},"classes/PaginationParams.html":{},"classes/PaginationResponse.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"injectables/PermissionService.html":{},"interfaces/PlainTextMailContent.html":{},"interfaces/PreviewFileParams.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"classes/PropertyData.html":{},"interfaces/ProviderConsentResponse.html":{},"interfaces/ProviderConsentSessionResponse.html":{},"interfaces/ProviderLoginResponse.html":{},"interfaces/ProviderOidcContext.html":{},"interfaces/ProviderRedirectResponse.html":{},"classes/ProvisioningDto.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningStrategy.html":{},"classes/ProvisioningSystemDto.html":{},"classes/ProvisioningSystemInputMapper.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"classes/PublicSystemResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"interfaces/RejectRequestBody.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResolvedUserMapper.html":{},"classes/ResolvedUserResponse.html":{},"classes/ResponseInfo.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RevokeConsentParams.html":{},"classes/RichText.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContent.html":{},"classes/RichTextElementContentBody.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RichTextElementResponse.html":{},"classes/RichTextElementResponseMapper.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"modules/RocketChatModule.html":{},"interfaces/RocketChatOptions.html":{},"entities/Role.html":{},"classes/RoleDto.html":{},"classes/RoleMapper.html":{},"classes/RoleNameMapper.html":{},"classes/RoleReference.html":{},"injectables/RoleRepo.html":{},"injectables/RoleService.html":{},"injectables/RoleUc.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"injectables/RoomsAuthorisationService.html":{},"controllers/RoomsController.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"interfaces/RpcMessage.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/S3ClientAdapter.html":{},"modules/S3ClientModule.html":{},"interfaces/S3Config.html":{},"interfaces/S3Config-1.html":{},"classes/SSOLoginQuery.html":{},"interfaces/SanisGruppeResponse.html":{},"interfaces/SanisGruppenResponse.html":{},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{},"interfaces/SanisLaufzeitResponse.html":{},"interfaces/SanisNameResponse.html":{},"interfaces/SanisOrganisationResponse.html":{},"interfaces/SanisPersonResponse.html":{},"interfaces/SanisPersonenkontextResponse.html":{},"injectables/SanisProvisioningStrategy.html":{},"interfaces/SanisResponse.html":{},"injectables/SanisResponseMapper.html":{},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{},"classes/ScanResultDto.html":{},"classes/ScanResultParams.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalTool.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"entities/SchoolExternalToolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"interfaces/SchoolExternalToolProps.html":{},"classes/SchoolExternalToolRefDO.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"classes/SchoolExternalToolResponse.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"classes/SchoolExternalToolSearchParams.html":{},"injectables/SchoolExternalToolService.html":{},"injectables/SchoolExternalToolUc.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolInfoMapper.html":{},"classes/SchoolInfoResponse.html":{},"classes/SchoolMigrationError.html":{},"interfaces/SchoolMigrationFlags.html":{},"injectables/SchoolMigrationService.html":{},"entities/SchoolNews.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/SchoolParams.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/SchoolValidationService.html":{},"entities/SchoolYear.html":{},"injectables/SchoolYearRepo.html":{},"injectables/SchoolYearService.html":{},"classes/Scope.html":{},"classes/ScopeRef.html":{},"classes/ServerConsole.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SetHeightBodyParams.html":{},"entities/ShareToken.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenContextTypeMapper.html":{},"controllers/ShareTokenController.html":{},"classes/ShareTokenDO.html":{},"classes/ShareTokenFactory.html":{},"classes/ShareTokenImportBodyParams.html":{},"interfaces/ShareTokenInfoDto.html":{},"classes/ShareTokenInfoResponse.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"classes/ShareTokenPayloadResponse.html":{},"injectables/ShareTokenRepo.html":{},"classes/ShareTokenResponse.html":{},"classes/ShareTokenResponseMapper.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/StorageProviderEntity.html":{},"injectables/StorageProviderRepo.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContent.html":{},"classes/SubmissionContainerElementContentBody.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionContainerElementResponse.html":{},"classes/SubmissionContainerElementResponseMapper.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionContainerUrlParams.html":{},"controllers/SubmissionController.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionMapper.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionService.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SubmissionStatusResponse.html":{},"injectables/SubmissionUc.html":{},"classes/SubmissionUrlParams.html":{},"interfaces/SuccessfulRes.html":{},"classes/SuccessfulResponse.html":{},"injectables/SymetricKeyEncryptionService.html":{},"entities/System.html":{},"controllers/SystemController.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"injectables/SystemOidcService.html":{},"injectables/SystemRepo.html":{},"classes/SystemResponseMapper.html":{},"classes/SystemScope.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TargetInfoMapper.html":{},"classes/TargetInfoResponse.html":{},"entities/Task.html":{},"entities/TaskBoardElement.html":{},"controllers/TaskController.html":{},"classes/TaskCopyApiParams.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskCreateParams.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"injectables/TaskRule.html":{},"classes/TaskScope.html":{},"injectables/TaskService.html":{},"classes/TaskStatusMapper.html":{},"classes/TaskStatusResponse.html":{},"injectables/TaskUC.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"classes/TeamRoleDto.html":{},"classes/TeamRolePermissionsDto.html":{},"injectables/TeamRule.html":{},"injectables/TeamService.html":{},"classes/TeamUrlParams.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"injectables/TimeoutInterceptor.html":{},"classes/TimestampsResponse.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/TokenRequestMapper.html":{},"classes/ToolConfiguration.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchData.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchParams.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"classes/ToolReference.html":{},"classes/ToolReferenceListResponse.html":{},"classes/ToolReferenceMapper.html":{},"classes/ToolReferenceResponse.html":{},"injectables/ToolReferenceUc.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UnauthorizedLoggableException.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"classes/UserAndAccountTestFactory.html":{},"interfaces/UserBoardRoles.html":{},"controllers/UserController.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDataResponse.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"entities/UserLoginMigration.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationResponse.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"classes/ValidationError.html":{},"classes/ValidationErrorDetailResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceConfiguration.html":{},"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceOptionsDO.html":{},"classes/VideoConferenceOptionsResponse.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{},"classes/VisibilitySettingsResponse.html":{},"dependencies.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["type']?.tostring",{"_index":9512,"title":{},"body":{"classes/FileDtoBuilder.html":{}}}],["type.enum",{"_index":1608,"title":{},"body":{"classes/AuthenticationCodeGrantTokenRequest.html":{},"injectables/CacheService.html":{},"entities/ContextExternalToolEntity.html":{},"injectables/ContextExternalToolRepo.html":{},"interfaces/IContextExternalToolProperties.html":{},"injectables/JwtValidationAdapter.html":{},"classes/OauthClientBody.html":{},"classes/TokenRequestMapper.html":{}}}],["type.factory.ts",{"_index":16494,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.factory.ts:11",{"_index":16498,"title":{},"body":{"classes/ReadableStreamWithFileTypeImp.html":{}}}],["type.includes(bn.type",{"_index":3266,"title":{},"body":{"classes/BoardDoBuilderImpl.html":{}}}],["type.interface.ts",{"_index":11402,"title":{},"body":{"interfaces/IErrorType.html":{}}}],["type.mapper.ts",{"_index":6017,"title":{},"body":{"classes/ContextTypeMapper.html":{},"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.mapper.ts:6",{"_index":14451,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["type.mapper.ts:9",{"_index":6020,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["type.query.param.ts",{"_index":16032,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:12",{"_index":16040,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:16",{"_index":16041,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["type.query.param.ts:8",{"_index":16038,"title":{},"body":{"classes/PageContentQueryParams.html":{}}}],["typecheckers",{"_index":5303,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["typedefinitions",{"_index":22528,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["typemapping",{"_index":6021,"title":{},"body":{"classes/ContextTypeMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"injectables/ExternalToolResponseMapper.html":{}}}],["typemapping[customparameterdo.type",{"_index":9040,"title":{},"body":{"injectables/ExternalToolResponseMapper.html":{}}}],["typemapping[customparameterparam.type",{"_index":8979,"title":{},"body":{"injectables/ExternalToolRequestMapper.html":{}}}],["typemapping[type",{"_index":6023,"title":{},"body":{"classes/ContextTypeMapper.html":{}}}],["typeof",{"_index":1773,"title":{},"body":{"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"classes/BusinessError.html":{},"injectables/CardUc.html":{},"classes/DashboardEntity.html":{},"classes/GridElement.html":{},"injectables/HydraSsoService.html":{},"interfaces/IGridElement.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/OAuthService.html":{},"classes/RequestInfo.html":{},"classes/ResponseInfo.html":{},"classes/Scope.html":{},"classes/StringValidator.html":{},"classes/TestApiClient.html":{}}}],["types",{"_index":208,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"interfaces/AuthorizableObject.html":{},"classes/AuthorizationContextBuilder.html":{},"injectables/AuthorizationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"entities/BoardElement.html":{},"classes/BoardElementResponse.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"classes/Card.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"interfaces/CardProps.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnNode.html":{},"interfaces/ColumnProps.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"classes/DomainObject.html":{},"classes/FileElement.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"interfaces/FileElementProps.html":{},"classes/FilesStorageMapper.html":{},"classes/ForbiddenLoggableException.html":{},"classes/Group.html":{},"interfaces/GroupProps.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IRepoLoader.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/LdapConfig.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"interfaces/Loggable.html":{},"classes/LoggingUtils.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/MetadataTypeMapper.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/ReferenceLoader.html":{},"classes/RichTextElement.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"interfaces/RichTextElementProps.html":{},"classes/RoleReference.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/RoomsUc.html":{},"injectables/RuleManager.html":{},"entities/SchoolNews.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElement.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerElementProps.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"classes/SubmissionItem.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"entities/System.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"entities/TeamNews.html":{},"controllers/ToolLaunchController.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"classes/UserLoginMigrationDO.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["types.enum",{"_index":9713,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/PageContentQueryParams.html":{},"injectables/PreviewService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["types.get(type",{"_index":10232,"title":{},"body":{"classes/FilesStorageMapper.html":{},"classes/MetadataTypeMapper.html":{},"classes/ShareTokenContextTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(filerecordparenttype.boardnode",{"_index":10230,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.course",{"_index":10221,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.lesson",{"_index":10226,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.school",{"_index":10224,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.submission",{"_index":10228,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.task",{"_index":10219,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(filerecordparenttype.user",{"_index":10222,"title":{},"body":{"classes/FilesStorageMapper.html":{}}}],["types.set(sharetokencontexttype.school",{"_index":17880,"title":{},"body":{"classes/ShareTokenContextTypeMapper.html":{}}}],["types.set(sharetokenparenttype.course",{"_index":14452,"title":{},"body":{"classes/MetadataTypeMapper.html":{},"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.lesson",{"_index":17976,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types.set(sharetokenparenttype.task",{"_index":17977,"title":{},"body":{"classes/ShareTokenParentTypeMapper.html":{}}}],["types/any",{"_index":5501,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["types/board",{"_index":3560,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{}}}],["types/cache",{"_index":21348,"title":{},"body":{"dependencies.html":{}}}],["types/connect",{"_index":21350,"title":{},"body":{"dependencies.html":{}}}],["types/content",{"_index":5502,"title":{},"body":{"injectables/ContentElementFactory.html":{}}}],["types/copy.types",{"_index":6254,"title":{},"body":{"injectables/CopyHelperService.html":{},"classes/CopyMapper.html":{}}}],["types/entity",{"_index":11962,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/gm",{"_index":21352,"title":{},"body":{"dependencies.html":{}}}],["types/ldapjs",{"_index":21354,"title":{},"body":{"dependencies.html":{}}}],["types/news.types",{"_index":6724,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["types/redis",{"_index":21356,"title":{},"body":{"dependencies.html":{}}}],["types/room",{"_index":7951,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["types/task.types",{"_index":11963,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["types/xml2js",{"_index":21358,"title":{},"body":{"dependencies.html":{}}}],["typescript",{"_index":1301,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/AxiosResponseImp.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/CourseNews.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"injectables/FilesStorageConsumer.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/H5PEditorModule.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/INewsProperties.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"entities/News.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/ReadableStreamWithFileTypeImp.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"injectables/SystemRepo.html":{},"entities/TeamNews.html":{},"classes/TestBootstrapConsole.html":{},"injectables/UserRepo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["typical",{"_index":21963,"title":{},"body":{"license.html":{}}}],["typing",{"_index":9423,"title":{},"body":{"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["u",{"_index":720,"title":{},"body":{"classes/AccountFactory.html":{},"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SubmissionFactory.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{}}}],["u.id",{"_index":6473,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{}}}],["u.userid",{"_index":18381,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["u.userid.id",{"_index":19353,"title":{},"body":{"injectables/TeamService.html":{}}}],["uc",{"_index":2769,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"classes/DeleteFilesConsole.html":{},"controllers/ElementController.html":{},"injectables/ExternalToolRequestMapper.html":{},"controllers/FileSecurityController.html":{},"modules/FilesModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LessonApiModule.html":{},"controllers/LessonController.html":{},"modules/OauthApiModule.html":{},"modules/OauthProviderApiModule.html":{},"controllers/OauthSSOController.html":{},"controllers/ShareTokenController.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"controllers/SubmissionController.html":{},"modules/TaskApiModule.html":{},"controllers/TeamNewsController.html":{},"controllers/ToolConfigurationController.html":{},"classes/ToolConfigurationMapper.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolLaunchController.html":{},"controllers/ToolSchoolController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"controllers/UserMigrationController.html":{},"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["uc.ts",{"_index":22584,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["uc/account.uc",{"_index":453,"title":{},"body":{"modules/AccountApiModule.html":{},"controllers/AccountController.html":{}}}],["uc/board",{"_index":3460,"title":{},"body":{"classes/BoardManagementConsole.html":{},"modules/ManagementModule.html":{}}}],["uc/collaborative",{"_index":4590,"title":{},"body":{"controllers/CollaborativeStorageController.html":{},"modules/CollaborativeStorageModule.html":{}}}],["uc/course",{"_index":6495,"title":{},"body":{"controllers/CourseController.html":{},"controllers/RoomsController.html":{}}}],["uc/course.uc",{"_index":6493,"title":{},"body":{"controllers/CourseController.html":{}}}],["uc/dashboard.uc",{"_index":7235,"title":{},"body":{"controllers/DashboardController.html":{}}}],["uc/database",{"_index":7665,"title":{},"body":{"classes/DatabaseManagementConsole.html":{},"controllers/DatabaseManagementController.html":{},"modules/ManagementModule.html":{},"interfaces/Options.html":{}}}],["uc/dto",{"_index":1822,"title":{},"body":{"injectables/AuthenticationService.html":{},"injectables/ExternalToolConfigurationService.html":{},"controllers/LoginController.html":{},"classes/LoginResponseMapper.html":{},"classes/ShareTokenInfoResponseMapper.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["uc/dto/context",{"_index":5821,"title":{},"body":{"classes/ContextExternalToolRequestMapper.html":{},"injectables/ContextExternalToolService.html":{},"injectables/ContextExternalToolValidationService.html":{},"controllers/ToolContextController.html":{}}}],["uc/dto/oauth",{"_index":13467,"title":{},"body":{"controllers/LegacySchoolController.html":{},"injectables/MigrationMapper.html":{},"classes/OauthLoginStateMapper.html":{},"controllers/OauthSSOController.html":{}}}],["uc/dto/school",{"_index":17432,"title":{},"body":{"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolService.html":{},"controllers/ToolSchoolController.html":{}}}],["uc/dto/user",{"_index":20376,"title":{},"body":{"classes/UserLoginMigrationMapper.html":{}}}],["uc/dto/user.dto",{"_index":20794,"title":{},"body":{"injectables/UserService.html":{}}}],["uc/element.uc",{"_index":2770,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{},"controllers/ElementController.html":{}}}],["uc/fwu",{"_index":10394,"title":{},"body":{"controllers/FwuLearningContentsController.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{}}}],["uc/keycloak",{"_index":11571,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"modules/KeycloakConfigurationModule.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{}}}],["uc/lesson",{"_index":16990,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/login.uc",{"_index":1591,"title":{},"body":{"modules/AuthenticationApiModule.html":{},"controllers/LoginController.html":{}}}],["uc/news.uc",{"_index":14615,"title":{},"body":{"controllers/NewsController.html":{},"modules/NewsModule.html":{}}}],["uc/oauth",{"_index":15521,"title":{},"body":{"controllers/OauthProviderController.html":{}}}],["uc/rooms.uc",{"_index":16991,"title":{},"body":{"controllers/RoomsController.html":{}}}],["uc/submission",{"_index":2771,"title":{},"body":{"modules/BoardApiModule.html":{},"controllers/BoardSubmissionController.html":{}}}],["uc/system.uc",{"_index":18547,"title":{},"body":{"controllers/SystemController.html":{}}}],["uc/task",{"_index":18810,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/task.uc",{"_index":18811,"title":{},"body":{"controllers/TaskController.html":{}}}],["uc/tool",{"_index":5278,"title":{},"body":{"modules/CommonToolModule.html":{}}}],["uc/user",{"_index":12306,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{},"controllers/UserMigrationController.html":{}}}],["ucs",{"_index":13384,"title":{},"body":{"modules/LearnroomApiModule.html":{}}}],["ui",{"_index":21464,"title":{},"body":{"dependencies.html":{},"additional-documentation/nestjs-application.html":{}}}],["ui_locales",{"_index":15876,"title":{},"body":{"classes/OidcContextResponse.html":{},"interfaces/ProviderOidcContext.html":{}}}],["ui_use_real_name=true",{"_index":23011,"title":{},"body":{"additional-documentation/nestjs-application/rocket.chat.html":{}}}],["uid",{"_index":11477,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"interfaces/ISystemProperties.html":{},"entities/ImportUser.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["uid=(.+?),/i",{"_index":11475,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uid=[^,]*${escapedloginname",{"_index":12559,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["uid=john${sequence},cn=schueler,cn=users,ou=1,dc=training,dc=ucs",{"_index":12352,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["uid=loginname",{"_index":11473,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["uk",{"_index":12105,"title":{},"body":{"interfaces/IUserProperties.html":{},"entities/User.html":{}}}],["um",{"_index":4767,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unable",{"_index":3060,"title":{},"body":{"injectables/BoardCopyService.html":{},"classes/GroupRoleUnknownLoggable.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["unambiguous",{"_index":1514,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["unarchivegroup(groupname",{"_index":1334,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["unauthorized",{"_index":19731,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized'})@apiforbiddenresponse({description",{"_index":19723,"title":{},"body":{"controllers/ToolLaunchController.html":{}}}],["unauthorized_exception",{"_index":19959,"title":{},"body":{"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedexception",{"_index":2038,"title":{},"body":{"injectables/AuthorizationService.html":{},"injectables/FeathersAuthorizationService.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"injectables/LocalStrategy.html":{},"injectables/Oauth2Strategy.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/TaskUC.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedexception('insufficient",{"_index":9407,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('missing",{"_index":9400,"title":{},"body":{"injectables/FeathersAuthorizationService.html":{}}}],["unauthorizedexception('no",{"_index":15166,"title":{},"body":{"injectables/Oauth2Strategy.html":{}}}],["unauthorizedexception('oauth",{"_index":15759,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unauthorizedexception('unauthorized",{"_index":12707,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["unauthorizedexception('user",{"_index":13300,"title":{},"body":{"injectables/LdapService.html":{}}}],["unauthorizedexception(`invalid",{"_index":15764,"title":{},"body":{"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{}}}],["unauthorizedexception(`school",{"_index":13339,"title":{},"body":{"injectables/LdapStrategy.html":{}}}],["unauthorizedloggableexception",{"_index":1817,"title":{"classes/UnauthorizedLoggableException.html":{}},"body":{"injectables/AuthenticationService.html":{},"classes/UnauthorizedLoggableException.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["unauthorizedloggableexception(username",{"_index":1826,"title":{},"body":{"injectables/AuthenticationService.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["und",{"_index":4785,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["undefined",{"_index":145,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/AppStartInfo.html":{},"classes/AppStartLoggable.html":{},"injectables/AuthenticationService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"injectables/BoardCopyService.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardManagementUc.html":{},"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"injectables/BoardNodeRepo.html":{},"classes/BoardResponse.html":{},"classes/BusinessError.html":{},"classes/CardIdsParams.html":{},"classes/CardListResponse.html":{},"classes/CardResponse.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"classes/ClassSourceOptions.html":{},"classes/ClassSourceOptionsEntity.html":{},"interfaces/ClassSourceOptionsEntityProps.html":{},"interfaces/ClassSourceOptionsProps.html":{},"classes/ColumnBoardFactory.html":{},"classes/ColumnResponse.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolScope.html":{},"classes/ContextExternalToolSearchListResponse.html":{},"classes/CopyApiResponse.html":{},"classes/CopyFileDto.html":{},"classes/CopyFileListResponse.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"entities/CourseGroup.html":{},"classes/CourseMetadataListResponse.html":{},"interfaces/CustomLtiProperty.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"classes/DatabaseManagementConsole.html":{},"classes/ErrorUtils.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolLogoService.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"classes/ExternalToolSortingMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileElementContentBody.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"injectables/FilesStorageConsumer.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"classes/GuardAgainst.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDomainObjectProps.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISchoolProperties.html":{},"interfaces/IShareTokenProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"classes/LoggingUtils.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiRoleMapper.html":{},"entities/LtiTool.html":{},"classes/NewsListResponse.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"interfaces/Options.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"classes/ProvisioningSystemInputMapper.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/PublicSystemListResponse.html":{},"modules/RedisModule.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"classes/RichTextElementContentBody.html":{},"injectables/SanisProvisioningStrategy.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolResponse.html":{},"classes/SchoolExternalToolScope.html":{},"classes/SchoolExternalToolSearchListResponse.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/ShareToken.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleColumnBoardResponse.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/Submission.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionStatusListResponse.html":{},"classes/SystemMapper.html":{},"classes/SystemOidcMapper.html":{},"classes/SystemResponseMapper.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"classes/TaskWithStatusVo.html":{},"classes/ToolLaunchRequestResponse.html":{},"injectables/ToolLaunchService.html":{},"classes/ToolReferenceListResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserDORepo.html":{},"entities/UserLoginMigration.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserScope.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{}}}],["undefined})@apiproperty({oneof",{"_index":8459,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{}}}],["undefined})@apiresponse({status",{"_index":3690,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{}}}],["undefined})@isboolean()@isoptional",{"_index":20943,"title":{},"body":{"classes/VideoConferenceCreateParams.html":{}}}],["undefined})@property({nullable",{"_index":9701,"title":{},"body":{"entities/FileRecord.html":{},"entities/ShareToken.html":{}}}],["undefined})@type(undefined",{"_index":5734,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["undefined})@userequestcontext",{"_index":10176,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["under",{"_index":21612,"title":{},"body":{"index.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["understand",{"_index":22705,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{}}}],["unexpected",{"_index":22778,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unfamiliar",{"_index":22715,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["unhandled",{"_index":8153,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["unicode",{"_index":939,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["unique",{"_index":394,"title":{},"body":{"entities/Account.html":{},"classes/ApiValidationErrorResponse.html":{},"entities/Board.html":{},"injectables/ContextExternalToolValidationService.html":{},"entities/Course.html":{},"interfaces/CustomLtiProperty.html":{},"classes/ErrorResponse.html":{},"entities/ExternalToolEntity.html":{},"entities/ExternalToolPseudonymEntity.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IRoleProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/IUserProperties.html":{},"entities/ImportUser.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakSeedService.html":{},"entities/LtiTool.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"entities/Role.html":{},"entities/Submission.html":{},"entities/User.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["unique()@property",{"_index":8481,"title":{},"body":{"entities/ExternalToolEntity.html":{}}}],["uniqueids",{"_index":12035,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniqueids.length",{"_index":12038,"title":{},"body":{"interfaces/ITaskParent.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["uniquemember",{"_index":11919,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["uniquememberids",{"_index":11834,"title":{},"body":{"interfaces/ISubmissionProperties.html":{},"entities/Submission.html":{}}}],["uniquenames",{"_index":5340,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquenames.size",{"_index":5342,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["uniquepermissions",{"_index":11680,"title":{},"body":{"interfaces/IRoleProperties.html":{},"interfaces/IUserProperties.html":{},"entities/Role.html":{},"entities/User.html":{}}}],["unit",{"_index":22325,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["unittests",{"_index":22865,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["universal",{"_index":21470,"title":{},"body":{"dependencies.html":{}}}],["unknown",{"_index":1062,"title":{},"body":{"injectables/AccountService.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthorizationHelper.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BoardRepo.html":{},"injectables/BsonConverter.html":{},"classes/BusinessError.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnBoardTargetService.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"injectables/ContextExternalToolUc.html":{},"injectables/CourseCopyService.html":{},"injectables/DatabaseManagementService.html":{},"classes/ErrorLoggable.html":{},"classes/ErrorUtils.html":{},"controllers/FileSecurityController.html":{},"injectables/FwuLearningContentsUc.html":{},"classes/GlobalErrorFilter.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GuardAgainst.html":{},"controllers/H5PEditorController.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"injectables/LessonUC.html":{},"classes/LoggingUtils.html":{},"injectables/NewsUc.html":{},"controllers/OauthSSOController.html":{},"classes/RequestInfo.html":{},"injectables/RequestLoggingInterceptor.html":{},"classes/ResponseInfo.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"classes/StorageProviderEncryptedStringType.html":{},"injectables/SubmissionUc.html":{},"injectables/SystemRepo.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskWithStatusVo.html":{},"classes/TestApiClient.html":{},"injectables/ToolReferenceUc.html":{},"injectables/UserDORepo.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{},"injectables/UserRepo.html":{}}}],["unknown.loggable.ts",{"_index":10698,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:4",{"_index":10701,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknown.loggable.ts:7",{"_index":10703,"title":{},"body":{"classes/GroupRoleUnknownLoggable.html":{}}}],["unknownerror",{"_index":10500,"title":{},"body":{"classes/GlobalErrorFilter.html":{}}}],["unless",{"_index":21969,"title":{},"body":{"license.html":{}}}],["unlimited",{"_index":534,"title":{},"body":{"controllers/AccountController.html":{},"license.html":{}}}],["unmarkfordelete",{"_index":9764,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"miscellaneous/functions.html":{}}}],["unmarkfordelete(filerecords",{"_index":21543,"title":{},"body":{"miscellaneous/functions.html":{}}}],["unmarkoutdatedusers",{"_index":17605,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmarkoutdatedusers(schoolid",{"_index":17629,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["unmodified",{"_index":21753,"title":{},"body":{"license.html":{}}}],["unnecessary",{"_index":21841,"title":{},"body":{"license.html":{}}}],["unpacking",{"_index":21999,"title":{},"body":{"license.html":{}}}],["unprocessableentityexception",{"_index":8836,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PreviewService.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception('cannot",{"_index":14930,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["unprocessableentityexception('current",{"_index":15801,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["unprocessableentityexception(`could",{"_index":9135,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`requested",{"_index":15828,"title":{},"body":{"injectables/OauthUc.html":{}}}],["unprocessableentityexception(`school",{"_index":17654,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["unprocessableentityexception(`system",{"_index":20668,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["unprocessableentityexception(`the",{"_index":9153,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["unprocessableentityexception(`unknown",{"_index":8845,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{}}}],["unprocessableentityexception(errortype.preview_not_possible",{"_index":16178,"title":{},"body":{"injectables/PreviewService.html":{}}}],["unpublish",{"_index":4826,"title":{},"body":{"entities/ColumnBoardTarget.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/ITaskParent.html":{},"entities/LessonEntity.html":{},"classes/PatchVisibilityParams.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{}}}],["unpublished",{"_index":10356,"title":{},"body":{"classes/FilterNewsParams.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"classes/NewsMapper.html":{},"injectables/NewsUc.html":{}}}],["unreachable",{"_index":1241,"title":{},"body":{"injectables/AccountValidationService.html":{},"classes/KeycloakSeedService.html":{}}}],["unresponsive",{"_index":17195,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["uns",{"_index":4799,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["unsafe",{"_index":1303,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/BaseFactory.html":{},"classes/ErrorLoggable.html":{},"interfaces/ICollectionFilePath.html":{},"classes/ImportUserFactory.html":{},"classes/JwtExtractor.html":{},"injectables/JwtValidationAdapter.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/UserRepo.html":{}}}],["unsupported",{"_index":3676,"title":{},"body":{"classes/BoardResponseMapper.html":{}}}],["unter",{"_index":4803,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["until",{"_index":8270,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/GroupDomainMapper.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"injectables/SanisResponseMapper.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"license.html":{}}}],["untildate",{"_index":6372,"title":{},"body":{"entities/Course.html":{},"injectables/CourseCopyService.html":{},"classes/CourseFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/ICourseProperties.html":{}}}],["untildateinfuture",{"_index":6795,"title":{},"body":{"injectables/CourseRepo.html":{},"classes/CourseScope.html":{}}}],["unused",{"_index":2657,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/TestBootstrapConsole.html":{}}}],["unusedtools",{"_index":8393,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unusedtools.filter",{"_index":8396,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["unwanted",{"_index":19062,"title":{},"body":{"injectables/TaskRepo.html":{},"miscellaneous/functions.html":{}}}],["up",{"_index":13626,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"classes/PrometheusMetricsSetupStateLoggable.html":{},"controllers/ShareTokenController.html":{},"modules/VideoConferenceModule.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["update",{"_index":2951,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/ColumnController.html":{},"injectables/ContentElementService.html":{},"classes/ContentElementUpdateVisitor.html":{},"controllers/ElementController.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IImportUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakMigrationService.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"classes/PatchMyAccountParams.html":{},"injectables/SubmissionItemService.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["update(element",{"_index":5540,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update(id",{"_index":14819,"title":{},"body":{"injectables/NewsUc.html":{}}}],["update(submissionitem",{"_index":18347,"title":{},"body":{"injectables/SubmissionItemService.html":{}}}],["update(urlparams",{"_index":14608,"title":{},"body":{"controllers/NewsController.html":{}}}],["update.params.ts",{"_index":9218,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/TaskUpdateParams.html":{}}}],["update.params.ts:16",{"_index":19244,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:17",{"_index":9220,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:21",{"_index":9223,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:22",{"_index":14216,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:25",{"_index":19247,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:26",{"_index":9226,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:27",{"_index":14215,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:31",{"_index":9222,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:33",{"_index":19248,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:35",{"_index":14214,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:36",{"_index":15194,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:39",{"_index":14213,"title":{},"body":{"classes/Lti11ToolConfigUpdateParams.html":{}}}],["update.params.ts:40",{"_index":15193,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:41",{"_index":19245,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:44",{"_index":15195,"title":{},"body":{"classes/Oauth2ToolConfigUpdateParams.html":{}}}],["update.params.ts:49",{"_index":19243,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:52",{"_index":9219,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:57",{"_index":19246,"title":{},"body":{"classes/TaskUpdateParams.html":{}}}],["update.params.ts:59",{"_index":9225,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:63",{"_index":9221,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.params.ts:67",{"_index":9224,"title":{},"body":{"classes/ExternalToolUpdateParams.html":{}}}],["update.visitor",{"_index":5547,"title":{},"body":{"injectables/ContentElementService.html":{}}}],["update.visitor.ts",{"_index":5559,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:18",{"_index":5563,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:24",{"_index":5569,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:28",{"_index":5568,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:32",{"_index":5567,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:36",{"_index":5570,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:44",{"_index":5571,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:53",{"_index":5572,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:61",{"_index":5574,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["update.visitor.ts:65",{"_index":5565,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{}}}],["updateaccount",{"_index":12211,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccount(accountid",{"_index":12240,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccount(id",{"_index":13090,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountbyid",{"_index":488,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountbyid(currentuser",{"_index":542,"title":{},"body":{"controllers/AccountController.html":{}}}],["updateaccountpassword",{"_index":12212,"title":{},"body":{"classes/IdentityManagementService.html":{},"injectables/KeycloakIdentityManagementService.html":{}}}],["updateaccountpassword(accountid",{"_index":12242,"title":{},"body":{"classes/IdentityManagementService.html":{}}}],["updateaccountpassword(id",{"_index":13092,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["updateboard",{"_index":17011,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboard(board",{"_index":17016,"title":{},"body":{"injectables/RoomsService.html":{}}}],["updateboardtitle",{"_index":2923,"title":{},"body":{"controllers/BoardController.html":{},"injectables/BoardUc.html":{}}}],["updateboardtitle(urlparams",{"_index":2948,"title":{},"body":{"controllers/BoardController.html":{}}}],["updateboardtitle(userid",{"_index":3795,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecardheight",{"_index":3764,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{}}}],["updatecardheight(urlparams",{"_index":4031,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardheight(userid",{"_index":3797,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecardtitle",{"_index":3765,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/CardController.html":{}}}],["updatecardtitle(urlparams",{"_index":4035,"title":{},"body":{"controllers/CardController.html":{}}}],["updatecardtitle(userid",{"_index":3799,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecolumntitle",{"_index":3766,"title":{},"body":{"injectables/BoardUc.html":{},"controllers/ColumnController.html":{}}}],["updatecolumntitle(urlparams",{"_index":4868,"title":{},"body":{"controllers/ColumnController.html":{}}}],["updatecolumntitle(userid",{"_index":3801,"title":{},"body":{"injectables/BoardUc.html":{}}}],["updatecontextexternaltool",{"_index":5936,"title":{},"body":{"injectables/ContextExternalToolUc.html":{},"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(currentuser",{"_index":19617,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["updatecontextexternaltool(userid",{"_index":5951,"title":{},"body":{"injectables/ContextExternalToolUc.html":{}}}],["updatecopiedembeddedtaskid",{"_index":13669,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatecopiedembeddedtasks",{"_index":13682,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatecopiedembeddedtasks(lessonstatus",{"_index":13719,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatecopiedembeddedtasksoflessons",{"_index":2992,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatecopiedembeddedtasksoflessons(boardstatus",{"_index":3019,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updated",{"_index":524,"title":{},"body":{"controllers/AccountController.html":{},"injectables/BaseDORepo.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/ContextExternalToolUc.html":{},"classes/ElementContentBody.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/IdentityManagementService.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"injectables/NextcloudStrategy.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateElementContentBodyParams.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{}}}],["updated.'})@apiresponse({status",{"_index":550,"title":{},"body":{"controllers/AccountController.html":{}}}],["updated.id",{"_index":2458,"title":{},"body":{"injectables/BaseDORepo.html":{}}}],["updatedat",{"_index":592,"title":{},"body":{"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BoardColumnBoardResponse.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardTaskResponse.html":{},"injectables/CardService.html":{},"classes/Class.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{},"injectables/ContentElementFactory.html":{},"classes/County.html":{},"injectables/CourseUc.html":{},"classes/DtoCreator.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"entities/FederalState.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IEntity.html":{},"interfaces/IEntityWithSchool.html":{},"interfaces/IEntityWithTimestamps.html":{},"interfaces/IFederalStateProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"classes/Pseudonym.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/ResolvedUserResponse.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/SubmissionItemFactory.html":{},"injectables/SubmissionItemService.html":{},"classes/TaskListResponse.html":{},"classes/TaskMapper.html":{},"classes/TaskResponse.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/VideoConferenceInfo.html":{}}}],["updatedclasses",{"_index":4406,"title":{},"body":{"injectables/ClassService.html":{}}}],["updatedclasses.length",{"_index":4410,"title":{},"body":{"injectables/ClassService.html":{}}}],["updateded",{"_index":13770,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatedelements",{"_index":3080,"title":{},"body":{"injectables/BoardCopyService.html":{}}}],["updatedlessons",{"_index":13955,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedlessons.length",{"_index":13960,"title":{},"body":{"injectables/LessonService.html":{}}}],["updatedmodel",{"_index":7551,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updatedstatus",{"_index":13740,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatedstatus.status",{"_index":13747,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["updatedtool",{"_index":19640,"title":{},"body":{"controllers/ToolContextController.html":{}}}],["updateduserloginmigration",{"_index":4468,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["updateduserloginmigration.closedat",{"_index":13634,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.finishedat",{"_index":13640,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.mandatorysince",{"_index":13638,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateduserloginmigration.startedat",{"_index":13637,"title":{},"body":{"injectables/LegacySchoolUc.html":{}}}],["updateelement",{"_index":8046,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelement(urlparams",{"_index":8060,"title":{},"body":{"controllers/ElementController.html":{}}}],["updateelementcontent",{"_index":8083,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontent(userid",{"_index":8088,"title":{},"body":{"injectables/ElementUc.html":{}}}],["updateelementcontentbodyparams",{"_index":8037,"title":{"classes/UpdateElementContentBodyParams.html":{}},"body":{"classes/ElementContentBody.html":{},"controllers/ElementController.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["updateentity",{"_index":2393,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["updateentity(domainobject",{"_index":2429,"title":{},"body":{"injectables/BaseDORepo.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{}}}],["updateexecutionrequest",{"_index":12927,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateexistinggridelement",{"_index":7507,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistinggridelement(elementmodel",{"_index":7529,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["updateexistingmigration",{"_index":20441,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexistingmigration(userloginmigrationdo",{"_index":20462,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["updateexternaltool",{"_index":9077,"title":{},"body":{"injectables/ExternalToolService.html":{},"injectables/ExternalToolUc.html":{},"controllers/ToolController.html":{}}}],["updateexternaltool(currentuser",{"_index":19674,"title":{},"body":{"controllers/ToolController.html":{}}}],["updateexternaltool(toupdate",{"_index":9099,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateexternaltool(userid",{"_index":9203,"title":{},"body":{"injectables/ExternalToolUc.html":{}}}],["updatefileurls",{"_index":18838,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updatefileurls(task",{"_index":18848,"title":{},"body":{"injectables/TaskCopyService.html":{}}}],["updateflag",{"_index":12270,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflag(urlparams",{"_index":12295,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["updateflagparams",{"_index":12296,"title":{"classes/UpdateFlagParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateFlagParams.html":{}}}],["updateheight",{"_index":4124,"title":{},"body":{"injectables/CardService.html":{}}}],["updateheight(card",{"_index":4139,"title":{},"body":{"injectables/CardService.html":{}}}],["updateidentityprovider",{"_index":12855,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateidentityprovider(oidcconfig",{"_index":12887,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updatelasttriedfailedlogin",{"_index":21,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AuthenticationService.html":{}}}],["updatelasttriedfailedlogin(accountid",{"_index":81,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updatelasttriedfailedlogin(id",{"_index":1805,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["updatemany",{"_index":4426,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatemany(classes",{"_index":4430,"title":{},"body":{"injectables/ClassesRepo.html":{}}}],["updatematchparams",{"_index":12288,"title":{"classes/UpdateMatchParams.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UpdateMatchParams.html":{}}}],["updatemyaccount",{"_index":489,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatemyaccount(@currentuser",{"_index":580,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatemyaccount(currentuser",{"_index":546,"title":{},"body":{"controllers/AccountController.html":{}}}],["updatenewsparams",{"_index":14609,"title":{"classes/UpdateNewsParams.html":{}},"body":{"controllers/NewsController.html":{},"classes/NewsMapper.html":{},"classes/UpdateNewsParams.html":{}}}],["updateoauth2client",{"_index":10840,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{},"classes/OauthProviderService.html":{}}}],["updateoauth2client(currentuser",{"_index":15431,"title":{},"body":{"injectables/OauthProviderClientCrudUc.html":{},"controllers/OauthProviderController.html":{}}}],["updateoauth2client(id",{"_index":10881,"title":{},"body":{"injectables/HydraAdapter.html":{},"classes/OauthProviderService.html":{}}}],["updateoauth2toolconfig",{"_index":9078,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauth2toolconfig(toupdate",{"_index":9103,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow",{"_index":9079,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateoauthclientorthrow(loadedoauthclient",{"_index":9105,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["updateorcreateidpdefaultmapper",{"_index":12856,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updateorcreateidpdefaultmapper(idpalias",{"_index":12889,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["updatepassword",{"_index":22,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updatepassword(accountid",{"_index":86,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updater",{"_index":5554,"title":{},"body":{"injectables/ContentElementService.html":{},"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"classes/NewsResponse.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["updaterid",{"_index":6738,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["updates",{"_index":520,"title":{},"body":{"controllers/AccountController.html":{},"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/ContextExternalToolValidationService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"interfaces/ICollectionFilePath.html":{},"injectables/NextcloudStrategy.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"license.html":{}}}],["updateschoolexternaltool",{"_index":17509,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{},"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(currentuser",{"_index":19929,"title":{},"body":{"controllers/ToolSchoolController.html":{}}}],["updateschoolexternaltool(userid",{"_index":17522,"title":{},"body":{"injectables/SchoolExternalToolUc.html":{}}}],["updatesecuritycheckstatus(status",{"_index":9752,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["updatesecuritystatus",{"_index":9933,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(@body",{"_index":9952,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesecuritystatus(scanresultdto",{"_index":9938,"title":{},"body":{"controllers/FileSecurityController.html":{}}}],["updatesubmissionitem",{"_index":3686,"title":{},"body":{"controllers/BoardSubmissionController.html":{},"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitem(currentuser",{"_index":3693,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["updatesubmissionitem(userid",{"_index":18367,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["updatesubmissionitembodyparams",{"_index":3695,"title":{"classes/UpdateSubmissionItemBodyParams.html":{}},"body":{"controllers/BoardSubmissionController.html":{},"classes/UpdateSubmissionItemBodyParams.html":{}}}],["updateteam",{"_index":4490,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteam(team",{"_index":4504,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole",{"_index":4491,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(currentuser",{"_index":4572,"title":{},"body":{"controllers/CollaborativeStorageController.html":{}}}],["updateteampermissionsforrole(currentuserid",{"_index":4634,"title":{},"body":{"injectables/CollaborativeStorageService.html":{}}}],["updateteampermissionsforrole(dto",{"_index":11105,"title":{},"body":{"interfaces/ICollaborativeStorageStrategy.html":{},"injectables/NextcloudStrategy.html":{}}}],["updateteampermissionsforrole(team",{"_index":4506,"title":{},"body":{"injectables/CollaborativeStorageAdapter.html":{}}}],["updateteamusersingroup",{"_index":14880,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updateteamusersingroup(groupid",{"_index":14899,"title":{},"body":{"injectables/NextcloudStrategy.html":{}}}],["updatetitle",{"_index":4125,"title":{},"body":{"injectables/CardService.html":{},"injectables/ColumnBoardService.html":{},"injectables/ColumnService.html":{}}}],["updatetitle(board",{"_index":4745,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["updatetitle(card",{"_index":4141,"title":{},"body":{"injectables/CardService.html":{}}}],["updatetitle(column",{"_index":4913,"title":{},"body":{"injectables/ColumnService.html":{}}}],["updateusername",{"_index":23,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updateusername(accountid",{"_index":89,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["updateuserpermissionsforrole",{"_index":4661,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updateuserpermissionsforrole(currentuserid",{"_index":4668,"title":{},"body":{"injectables/CollaborativeStorageUc.html":{}}}],["updatevisibilityofboardelement",{"_index":17035,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updatevisibilityofboardelement(roomid",{"_index":17042,"title":{},"body":{"injectables/RoomsUc.html":{}}}],["updating",{"_index":2423,"title":{},"body":{"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/ContextExternalToolRepo.html":{},"injectables/ExternalToolRepo.html":{},"interfaces/ICreateNews.html":{},"interfaces/INewsScope.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LtiToolRepo.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/NextcloudStrategy.html":{},"injectables/SchoolExternalToolRepo.html":{},"injectables/ShareTokenRepo.html":{},"classes/UpdateNewsParams.html":{},"injectables/UserDORepo.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/VideoConferenceRepo.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["updator/creator",{"_index":14734,"title":{},"body":{"injectables/NewsRepo.html":{}}}],["upload",{"_index":17130,"title":{},"body":{"injectables/S3ClientAdapter.html":{},"dependencies.html":{}}}],["upload.done",{"_index":17154,"title":{},"body":{"injectables/S3ClientAdapter.html":{}}}],["upper",{"_index":13980,"title":{},"body":{"classes/ListOauthClientsParams.html":{}}}],["uppercase",{"_index":22602,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["uppercase_snake_case",{"_index":1516,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ErrorResponse.html":{}}}],["uri",{"_index":1272,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfigResponse.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["url",{"_index":150,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{},"interfaces/BBBJoinResponse.html":{},"injectables/BBBService.html":{},"injectables/BasicToolLaunchStrategy.html":{},"modules/CacheWrapperModule.html":{},"injectables/CalendarService.html":{},"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ConsentResponse.html":{},"classes/CopyFileListResponse.html":{},"classes/CopyFileParams.html":{},"classes/CopyFileResponse.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterFactory.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DownloadFileParams.html":{},"classes/ExternalTool.html":{},"classes/ExternalToolCreateParams.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileParams.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordResponse.html":{},"classes/FileUrlParams.html":{},"interfaces/GlobalConstants.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraSsoService.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMaterialProperties.html":{},"interfaces/IRelatedResourceProperties.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITargetGroupProperties.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"classes/LdapConfig.html":{},"injectables/LdapService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11EncryptionService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"entities/Material.html":{},"classes/MaterialFactory.html":{},"injectables/NexboardService.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/OauthConfig.html":{},"controllers/OauthSSOController.html":{},"classes/OidcConfig.html":{},"classes/PageContentResponse.html":{},"classes/PreviewParams.html":{},"classes/RedirectResponse.html":{},"modules/RedisModule.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{},"entities/System.html":{},"classes/SystemDto.html":{},"classes/SystemFactory.html":{},"classes/SystemMapper.html":{},"injectables/SystemService.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequest.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"injectables/UserMigrationService.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["url('/dashboard",{"_index":15110,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url('/login",{"_index":15747,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url('/migration",{"_index":20630,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url('/migration/error",{"_index":15753,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["url(`${api_version_path}${newpath",{"_index":1466,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["url(`${this.hydrauri}/clients",{"_index":10912,"title":{},"body":{"injectables/HydraAdapter.html":{}}}],["url(`api/v3/sso/login/${system.id",{"_index":20670,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(baseurl",{"_index":245,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["url(oauthconfig.authendpoint",{"_index":15120,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(params.logouturl).origin",{"_index":20925,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["url(path",{"_index":15131,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(system.oauthconfig.logoutendpoint",{"_index":15113,"title":{},"body":{"injectables/OAuthService.html":{}}}],["url(this.baseurl",{"_index":2378,"title":{},"body":{"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url(this.logouturl).origin",{"_index":12591,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url(this.publicbackendurl",{"_index":20647,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url(url",{"_index":13761,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["url(urlpath",{"_index":20664,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url.href",{"_index":1468,"title":{},"body":{"injectables/AntivirusService.html":{},"interfaces/AntivirusServiceOptions.html":{}}}],["url.loggable",{"_index":12586,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{}}}],["url.pathname",{"_index":270,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["url.pathname.replace(/(^\\/)|(\\/$)/g",{"_index":258,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{}}}],["url.search",{"_index":254,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{},"injectables/HydraAdapter.html":{}}}],["url.searchparams.append('origin",{"_index":20631,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["url.tostring",{"_index":256,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/HydraAdapter.html":{},"injectables/UserMigrationService.html":{}}}],["urlencoded",{"_index":10906,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["urlencodedpayload",{"_index":15217,"title":{},"body":{"injectables/OauthAdapterService.html":{}}}],["urlobject",{"_index":13760,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["urlobject.pathname.split('/')[2",{"_index":13764,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["urlparamkeys",{"_index":12916,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["urlparams",{"_index":2934,"title":{},"body":{"controllers/BoardController.html":{},"controllers/BoardSubmissionController.html":{},"controllers/CardController.html":{},"controllers/ColumnController.html":{},"controllers/CourseController.html":{},"controllers/DashboardController.html":{},"controllers/ElementController.html":{},"controllers/ImportUserController.html":{},"controllers/LessonController.html":{},"controllers/NewsController.html":{},"controllers/RoomsController.html":{},"controllers/ShareTokenController.html":{},"controllers/SubmissionController.html":{},"controllers/TaskController.html":{},"controllers/TeamNewsController.html":{}}}],["urlparams.boardid",{"_index":2966,"title":{},"body":{"controllers/BoardController.html":{}}}],["urlparams.cardid",{"_index":4059,"title":{},"body":{"controllers/CardController.html":{}}}],["urlparams.columnid",{"_index":4877,"title":{},"body":{"controllers/ColumnController.html":{}}}],["urlparams.contentelementid",{"_index":8070,"title":{},"body":{"controllers/ElementController.html":{}}}],["urlparams.dashboardid",{"_index":7249,"title":{},"body":{"controllers/DashboardController.html":{}}}],["urlparams.elementid",{"_index":16998,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.importuserid",{"_index":12324,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["urlparams.lessonid",{"_index":13664,"title":{},"body":{"controllers/LessonController.html":{},"controllers/RoomsController.html":{}}}],["urlparams.newsid",{"_index":14633,"title":{},"body":{"controllers/NewsController.html":{}}}],["urlparams.roomid",{"_index":16997,"title":{},"body":{"controllers/RoomsController.html":{}}}],["urlparams.submissioncontainerid",{"_index":3704,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.submissionid",{"_index":18274,"title":{},"body":{"controllers/SubmissionController.html":{}}}],["urlparams.submissionitemid",{"_index":3711,"title":{},"body":{"controllers/BoardSubmissionController.html":{}}}],["urlparams.taskid",{"_index":18827,"title":{},"body":{"controllers/TaskController.html":{}}}],["urlparams.teamid",{"_index":19299,"title":{},"body":{"controllers/TeamNewsController.html":{}}}],["urlparams.token",{"_index":17924,"title":{},"body":{"controllers/ShareTokenController.html":{}}}],["urlpath",{"_index":20603,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["urls",{"_index":12589,"title":{},"body":{"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"injectables/OAuthService.html":{},"classes/OauthClientBody.html":{},"injectables/UserMigrationService.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["urlsafe",{"_index":21473,"title":{},"body":{"dependencies.html":{}}}],["urlsearchparams",{"_index":193,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"injectables/BBBService.html":{},"injectables/CalendarService.html":{}}}],["usable",{"_index":17874,"title":{},"body":{"classes/ShareTokenBodyParams.html":{}}}],["usage",{"_index":8840,"title":{},"body":{"classes/ExternalToolRepoMapper.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["use",{"_index":574,"title":{},"body":{"controllers/AccountController.html":{},"injectables/BaseDORepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"injectables/BoardNodeRepo.html":{},"injectables/CopyFilesService.html":{},"entities/CourseNews.html":{},"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/DomainObjectFactory.html":{},"injectables/ErrorLogger.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FileSystemAdapter.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"classes/GlobalValidationPipe.html":{},"modules/H5PEditorModule.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"injectables/LdapStrategy.html":{},"modules/LearnroomApiModule.html":{},"injectables/LegacyLogger.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"classes/OauthClientBody.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/PermissionService.html":{},"entities/SchoolNews.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/TaskUC.html":{},"entities/TeamNews.html":{},"injectables/UserLoginMigrationService.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/rocket.chat.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{},"additional-documentation/nestjs-application/code-style.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["usecase",{"_index":22501,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usecases",{"_index":22540,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["usecentralldap",{"_index":12292,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{}}}],["useclass",{"_index":8221,"title":{},"body":{"modules/ErrorModule.html":{},"modules/IdentityManagementModule.html":{},"modules/InterceptorModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ValidationModule.html":{}}}],["used",{"_index":72,"title":{},"body":{"classes/AbstractAccountService.html":{},"interfaces/AdminIdAndToken.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/CardSkeletonResponse.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/ConsentResponse.html":{},"injectables/ErrorLogger.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"controllers/H5PEditorController.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LoginResponse-1.html":{},"classes/MongoPatterns.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"injectables/NextcloudStrategy.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"entities/Submission.html":{},"controllers/SystemController.html":{},"injectables/TaskRepo.html":{},"entities/TeamEntity.html":{},"controllers/TeamNewsController.html":{},"classes/TeamUserEntity.html":{},"injectables/UserRepo.html":{},"miscellaneous/functions.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["usedglobals",{"_index":10461,"title":{},"body":{"interfaces/GlobalConstants.html":{}}}],["usedobuilder(builder",{"_index":3583,"title":{},"body":{"entities/BoardNode.html":{},"interfaces/BoardNodeProps.html":{},"entities/CardNode.html":{},"interfaces/CardNodeProps.html":{},"entities/ColumnBoardNode.html":{},"interfaces/ColumnBoardNodeProps.html":{},"entities/ColumnNode.html":{},"entities/FileElementNode.html":{},"interfaces/FileElementNodeProps.html":{},"entities/RichTextElementNode.html":{},"interfaces/RichTextElementNodeProps.html":{},"entities/SubmissionContainerElementNode.html":{},"interfaces/SubmissionContainerNodeProps.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["useexisting",{"_index":4564,"title":{},"body":{"modules/CollaborativeStorageAdapterModule.html":{}}}],["usefactory",{"_index":837,"title":{},"body":{"modules/AccountModule.html":{},"modules/CacheWrapperModule.html":{},"modules/EncryptionModule.html":{},"modules/InterceptorModule.html":{},"modules/LoggerModule.html":{},"modules/MongoMemoryDatabaseModule.html":{},"modules/RedisModule.html":{},"modules/S3ClientModule.html":{}}}],["useful",{"_index":22238,"title":{},"body":{"license.html":{}}}],["useguards",{"_index":14098,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('ldap",{"_index":14104,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('local",{"_index":14110,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(authguard('oauth2",{"_index":14114,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('ldap')@apioperation({summary",{"_index":14083,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('local')@apioperation({summary",{"_index":14090,"title":{},"body":{"controllers/LoginController.html":{}}}],["useguards(undefined)@httpcode(httpstatus.ok)@post('oauth2')@apioperation({summary",{"_index":14095,"title":{},"body":{"controllers/LoginController.html":{}}}],["user",{"_index":461,"title":{"entities/User.html":{}},"body":{"classes/AccountByIdBodyParams.html":{},"controllers/AccountController.html":{},"classes/AccountFactory.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationHelper.html":{},"injectables/AuthorizationService.html":{},"injectables/BoardCopyService.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CardUc.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"controllers/CollaborativeStorageController.html":{},"injectables/CollaborativeStorageService.html":{},"injectables/CollaborativeStorageUc.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"injectables/ContextExternalToolRule.html":{},"injectables/ContextExternalToolUc.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRule.html":{},"entities/CourseNews.html":{},"injectables/CourseRule.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"classes/DtoCreator.html":{},"injectables/ElementUc.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"modules/FilesStorageModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"interfaces/IComponentEtherpadProperties.html":{},"interfaces/IComponentGeogebraProperties.html":{},"interfaces/IComponentInternalProperties.html":{},"interfaces/IComponentLernstoreProperties.html":{},"interfaces/IComponentNexboardProperties.html":{},"interfaces/IComponentTextProperties.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/ILessonParent.html":{},"interfaces/ILessonProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/INewsProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/IRepoLoader.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITask.html":{},"interfaces/ITaskCreate.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITaskProperties.html":{},"interfaces/ITaskStatus.html":{},"interfaces/ITaskUpdate.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IUserProperties.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserMapper.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/ImportUserUrlParams.html":{},"injectables/IservProvisioningStrategy.html":{},"interfaces/JwtPayload.html":{},"injectables/JwtStrategy.html":{},"injectables/KeycloakConfigurationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAlreadyPersistedException.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LdapUserMigrationException.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LessonCopyService.html":{},"injectables/LessonCopyUC.html":{},"entities/LessonEntity.html":{},"injectables/LessonRepo.html":{},"injectables/LessonRule.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"controllers/LoginController.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"classes/MigrationAlreadyActivatedException.html":{},"injectables/MigrationCheckService.html":{},"classes/MissingSchoolNumberException.html":{},"entities/News.html":{},"controllers/NewsController.html":{},"classes/NewsListResponse.html":{},"classes/NewsMapper.html":{},"classes/NewsResponse.html":{},"injectables/NewsUc.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"injectables/PermissionService.html":{},"injectables/PseudonymService.html":{},"classes/RedirectResponse.html":{},"injectables/ReferenceLoader.html":{},"classes/ResolvedUserMapper.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomBoardDTOFactory.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/RoomsUc.html":{},"interfaces/Rule.html":{},"injectables/RuleManager.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolExternalToolRule.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolMigrationError.html":{},"entities/SchoolNews.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenUC.html":{},"injectables/StartUserLoginMigrationUc.html":{},"entities/Submission.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRule.html":{},"injectables/SubmissionUc.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"injectables/TaskRule.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"controllers/TeamNewsController.html":{},"injectables/TeamRule.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"injectables/ToolPermissionHelper.html":{},"controllers/ToolSchoolController.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"entities/User.html":{},"classes/UserAlreadyAssignedToImportUserError.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"controllers/UserController.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{},"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"controllers/UserMigrationController.html":{},"classes/UserMigrationIsNotEnabled.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"classes/UserParams.html":{},"injectables/UserRepo.html":{},"injectables/UserRule.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["user's",{"_index":15476,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["user'})@isboolean",{"_index":19964,"title":{},"body":{"classes/UpdateFlagParams.html":{}}}],["user'})@ismongoid",{"_index":19967,"title":{},"body":{"classes/UpdateMatchParams.html":{}}}],["user(params",{"_index":23082,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(props",{"_index":20099,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user(s",{"_index":23050,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["user(value",{"_index":12074,"title":{},"body":{"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{}}}],["user.'})@apiresponse({status",{"_index":523,"title":{},"body":{"controllers/AccountController.html":{}}}],["user._id",{"_index":12543,"title":{},"body":{"classes/ImportUserScope.html":{}}}],["user._id.$oid",{"_index":13228,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.accountid",{"_index":1830,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["user.attribute",{"_index":13002,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["user.attributes",{"_index":13134,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.attributes[attributename",{"_index":13135,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.business",{"_index":20001,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user.controller",{"_index":12453,"title":{},"body":{"modules/ImportUserModule.html":{}}}],["user.controller.ts",{"_index":12261,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:102",{"_index":12286,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:107",{"_index":12294,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:115",{"_index":12273,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:32",{"_index":12276,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:50",{"_index":12290,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:62",{"_index":12283,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:73",{"_index":12298,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.controller.ts:85",{"_index":12279,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.createdat",{"_index":16698,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.createdtimestamp",{"_index":13141,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["user.dto",{"_index":8281,"title":{},"body":{"classes/ExternalGroupDto.html":{},"classes/OauthDataDto.html":{}}}],["user.dto.ts",{"_index":8290,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:10",{"_index":9334,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:12",{"_index":9333,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.dto.ts:4",{"_index":8293,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:6",{"_index":8292,"title":{},"body":{"classes/ExternalGroupUserDto.html":{},"classes/ExternalUserDto.html":{}}}],["user.dto.ts:8",{"_index":9335,"title":{},"body":{"classes/ExternalUserDto.html":{}}}],["user.email",{"_index":12173,"title":{},"body":{"injectables/IdTokenService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{},"classes/UserMatchMapper.html":{}}}],["user.entity",{"_index":6409,"title":{},"body":{"entities/Course.html":{},"entities/CourseGroup.html":{},"entities/CourseNews.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"interfaces/IImportUserScope.html":{},"interfaces/INameMatch.html":{},"interfaces/INewsProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"entities/ImportUser.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/Submission.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"entities/TeamEntity.html":{},"entities/TeamNews.html":{},"classes/TeamUserEntity.html":{}}}],["user.entity.ts",{"_index":10736,"title":{},"body":{"classes/GroupUserEntity.html":{},"interfaces/GroupUserEntityProps.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["user.entity.ts:102",{"_index":12258,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:109",{"_index":12254,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:112",{"_index":12250,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:13",{"_index":10739,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:16",{"_index":10738,"title":{},"body":{"classes/GroupUserEntity.html":{}}}],["user.entity.ts:54",{"_index":12256,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:57",{"_index":12257,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:60",{"_index":12252,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:76",{"_index":12247,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:79",{"_index":12248,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:82",{"_index":12251,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:88",{"_index":12246,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:91",{"_index":12255,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.entity.ts:94",{"_index":12245,"title":{},"body":{"entities/ImportUser.html":{}}}],["user.externalid",{"_index":12658,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{},"injectables/OidcProvisioningStrategy.html":{},"classes/UserDto.html":{}}}],["user.factory",{"_index":849,"title":{},"body":{"interfaces/AccountParams.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["user.factory.ts",{"_index":12344,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.factory.ts:10",{"_index":12346,"title":{},"body":{"classes/ImportUserFactory.html":{}}}],["user.firstname",{"_index":13139,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserService.html":{}}}],["user.forcepasswordchange",{"_index":20180,"title":{},"body":{"classes/UserDto.html":{}}}],["user.id",{"_index":738,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AuthorizationHelper.html":{},"injectables/BoardDoRule.html":{},"classes/CurrentUserMapper.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITaskParent.html":{},"injectables/IdTokenService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/PseudonymService.html":{},"classes/ResolvedUserMapper.html":{},"entities/Submission.html":{},"entities/Task.html":{},"injectables/TaskCopyService.html":{},"injectables/TaskUC.html":{},"classes/TaskWithStatusVo.html":{},"injectables/TeamRule.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/VideoConferenceEndUc.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["user.interface",{"_index":13221,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["user.interface.ts",{"_index":11505,"title":{},"body":{"interfaces/IJsonUser.html":{}}}],["user.language",{"_index":20179,"title":{},"body":{"classes/UserDto.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.lastloginsystemchange",{"_index":14473,"title":{},"body":{"injectables/MigrationCheckService.html":{},"classes/UserDto.html":{}}}],["user.lastname",{"_index":13140,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{},"injectables/OidcProvisioningService.html":{},"classes/ResolvedUserMapper.html":{},"classes/UserDto.html":{},"classes/UserInfoMapper.html":{},"classes/UserMatchMapper.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["user.ldapdn",{"_index":20178,"title":{},"body":{"classes/UserDto.html":{}}}],["user.mapper",{"_index":12301,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user.mapper.ts",{"_index":6931,"title":{},"body":{"classes/CurrentUserMapper.html":{},"classes/ImportUserMapper.html":{},"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:17",{"_index":12383,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:19",{"_index":6939,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:32",{"_index":12385,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:33",{"_index":6936,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.mapper.ts:49",{"_index":12382,"title":{},"body":{"classes/ImportUserMapper.html":{}}}],["user.mapper.ts:5",{"_index":16695,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.mapper.ts:9",{"_index":6941,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.module",{"_index":20020,"title":{},"body":{"modules/UserApiModule.html":{}}}],["user.outdatedsince",{"_index":17660,"title":{},"body":{"injectables/SchoolMigrationService.html":{},"classes/UserDto.html":{}}}],["user.params",{"_index":20552,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.params.ts",{"_index":10329,"title":{},"body":{"classes/FilterImportUserParams.html":{},"classes/FilterUserParams.html":{},"classes/SortImportUserParams.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.params.ts:12",{"_index":10366,"title":{},"body":{"classes/FilterUserParams.html":{}}}],["user.params.ts:21",{"_index":10335,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:27",{"_index":10338,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:33",{"_index":10339,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:40",{"_index":10344,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:45",{"_index":10337,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:54",{"_index":10333,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.params.ts:59",{"_index":10347,"title":{},"body":{"classes/FilterImportUserParams.html":{}}}],["user.permissions",{"_index":9364,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.preferences",{"_index":20181,"title":{},"body":{"classes/UserDto.html":{}}}],["user.repo.ts",{"_index":22615,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.resolvepermissions",{"_index":1913,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{}}}],["user.response.ts",{"_index":12358,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ResolvedUserResponse.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.response.ts:11",{"_index":16708,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:14",{"_index":16707,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:17",{"_index":16705,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:20",{"_index":16712,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:23",{"_index":16710,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:25",{"_index":12504,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:26",{"_index":16709,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:29",{"_index":16711,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.response.ts:31",{"_index":12506,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:37",{"_index":12502,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:43",{"_index":12505,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:50",{"_index":12508,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:53",{"_index":12501,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:56",{"_index":12507,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:61",{"_index":12503,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:64",{"_index":12359,"title":{},"body":{"classes/ImportUserListResponse.html":{}}}],["user.response.ts:7",{"_index":12500,"title":{},"body":{"classes/ImportUserResponse.html":{}}}],["user.response.ts:8",{"_index":16706,"title":{},"body":{"classes/ResolvedUserResponse.html":{}}}],["user.roleids",{"_index":20177,"title":{},"body":{"classes/UserDto.html":{}}}],["user.roles",{"_index":15955,"title":{},"body":{"injectables/OidcProvisioningService.html":{},"injectables/UserDORepo.html":{}}}],["user.roles.getitems",{"_index":20035,"title":{},"body":{"controllers/UserController.html":{}}}],["user.roles.getitems().map((role",{"_index":6944,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["user.roles.getitems(true",{"_index":20557,"title":{},"body":{"classes/UserMatchMapper.html":{}}}],["user.roles.isinitialized(true",{"_index":16118,"title":{},"body":{"injectables/PermissionService.html":{}}}],["user.roles.map((roleref",{"_index":6947,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["user.roles.some",{"_index":20807,"title":{},"body":{"injectables/UserService.html":{}}}],["user.school",{"_index":6556,"title":{},"body":{"injectables/CourseCopyService.html":{},"injectables/TaskCopyService.html":{},"injectables/UserDORepo.html":{},"injectables/UserRepo.html":{}}}],["user.school.id",{"_index":5868,"title":{},"body":{"injectables/ContextExternalToolRule.html":{},"classes/CurrentUserMapper.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/LegacySchoolRule.html":{},"injectables/SchoolExternalToolRule.html":{},"injectables/ShareTokenUC.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["user.school.schoolyear?.enddate",{"_index":6559,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.schoolyear?.startdate",{"_index":6558,"title":{},"body":{"injectables/CourseCopyService.html":{}}}],["user.school.tostring",{"_index":16702,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.schoolid",{"_index":6949,"title":{},"body":{"classes/CurrentUserMapper.html":{},"injectables/IdTokenService.html":{},"injectables/OidcProvisioningService.html":{},"classes/UserDto.html":{}}}],["user.schoolid.tostring",{"_index":9362,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["user.scope",{"_index":20098,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["user.ts",{"_index":10730,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:4",{"_index":10732,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.ts:6",{"_index":10731,"title":{},"body":{"classes/GroupUser.html":{}}}],["user.uc.ts",{"_index":22609,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["user.updatedat",{"_index":16700,"title":{},"body":{"classes/ResolvedUserMapper.html":{}}}],["user.url.params.ts",{"_index":12568,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.url.params.ts:11",{"_index":12569,"title":{},"body":{"classes/ImportUserUrlParams.html":{}}}],["user.userid",{"_index":20314,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["user.username",{"_index":13138,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"classes/KeycloakSeedService.html":{}}}],["user/account",{"_index":12703,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["user/import",{"_index":12262,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["user?.lastloginsystemchange",{"_index":14471,"title":{},"body":{"injectables/MigrationCheckService.html":{}}}],["user_already_assigned_to_import_user_error",{"_index":20004,"title":{},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["user_id",{"_index":2251,"title":{},"body":{"interfaces/BBBJoinResponse.html":{},"injectables/Lti11ToolLaunchStrategy.html":{}}}],["user_login_migration_already_closed",{"_index":20241,"title":{},"body":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}}}],["user_login_migration_grace_period_expired",{"_index":20357,"title":{},"body":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["user_login_migration_not_found",{"_index":20389,"title":{},"body":{"classes/UserLoginMigrationNotFoundLoggableException.html":{}}}],["user_login_migrations",{"_index":20224,"title":{},"body":{"entities/UserLoginMigration.html":{}}}],["user_migration_failed",{"_index":20353,"title":{},"body":{"classes/UserLoginMigrationError.html":{}}}],["useralreadyassignedtoimportusererror",{"_index":19999,"title":{"classes/UserAlreadyAssignedToImportUserError.html":{}},"body":{"classes/UserAlreadyAssignedToImportUserError.html":{}}}],["userandaccountparams",{"_index":855,"title":{"interfaces/UserAndAccountParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userandaccounttestfactory",{"_index":856,"title":{"classes/UserAndAccountTestFactory.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userandaccounttestfactory.buildaccount(user",{"_index":867,"title":{},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{}}}],["userapimodule",{"_index":17774,"title":{"modules/UserApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserApiModule.html":{},"modules.html":{}}}],["userattributenamemapping",{"_index":11910,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["userboardrole",{"_index":3362,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.editor",{"_index":3367,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.roles.includes(boardroles.reader",{"_index":3368,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardrole.userroleenum",{"_index":3365,"title":{},"body":{"injectables/BoardDoRule.html":{}}}],["userboardroles",{"_index":3109,"title":{"interfaces/UserBoardRoles.html":{}},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"interfaces/UserBoardRoles.html":{}}}],["usercontroller",{"_index":20019,"title":{"controllers/UserController.html":{}},"body":{"modules/UserApiModule.html":{},"controllers/UserController.html":{}}}],["usercount",{"_index":13223,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["userdata",{"_index":18322,"title":{},"body":{"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{}}}],["userdataresponse",{"_index":18327,"title":{"classes/UserDataResponse.html":{}},"body":{"classes/SubmissionItemResponse.html":{},"classes/SubmissionItemResponseMapper.html":{},"classes/UserDataResponse.html":{}}}],["userdo",{"_index":6938,"title":{"classes/UserDO.html":{}},"body":{"classes/CurrentUserMapper.html":{},"injectables/IdTokenService.html":{},"classes/IservMapper.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/OidcProvisioningStrategy.html":{},"injectables/PseudonymService.html":{},"injectables/SchoolMigrationService.html":{},"classes/UserDO.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["userdo.email",{"_index":12608,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.externalid",{"_index":12609,"title":{},"body":{"classes/IservMapper.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.firstname",{"_index":12606,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.lastloginsystemchange",{"_index":20491,"title":{},"body":{"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{}}}],["userdo.lastname",{"_index":12607,"title":{},"body":{"classes/IservMapper.html":{}}}],["userdo.previousexternalid",{"_index":20659,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocopy",{"_index":20618,"title":{},"body":{"injectables/UserMigrationService.html":{}}}],["userdocument",{"_index":20742,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments",{"_index":20739,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdocuments.map((userdocument",{"_index":20740,"title":{},"body":{"injectables/UserRepo.html":{}}}],["userdofactory",{"_index":20152,"title":{"classes/UserDoFactory.html":{}},"body":{"classes/UserDoFactory.html":{}}}],["userdofactory.define(userdo",{"_index":20157,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["userdorepo",{"_index":20079,"title":{"injectables/UserDORepo.html":{}},"body":{"injectables/UserDORepo.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{}}}],["userdotoicurrentuser",{"_index":6933,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["userdotoicurrentuser(accountid",{"_index":6937,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["userdto",{"_index":20158,"title":{"classes/UserDto.html":{}},"body":{"classes/UserDto.html":{},"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["userentity",{"_index":20109,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userentitys",{"_index":20116,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userentitys.find((user",{"_index":20118,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["userequestcontext",{"_index":10184,"title":{},"body":{"injectables/FilesStorageConsumer.html":{}}}],["userfactory",{"_index":848,"title":{"classes/UserFactory.html":{}},"body":{"interfaces/AccountParams.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamUserFactory.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserFactory.html":{}}}],["userfactory.build",{"_index":18291,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TaskFactory.html":{}}}],["userfactory.buildlistwithid(numberofstudents",{"_index":6618,"title":{},"body":{"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{}}}],["userfactory.buildlistwithid(numberofteachers",{"_index":6619,"title":{},"body":{"classes/CourseFactory.html":{}}}],["userfactory.buildlistwithid(numberofteammembers",{"_index":18288,"title":{},"body":{"classes/SubmissionFactory.html":{}}}],["userfactory.buildwithid",{"_index":18287,"title":{},"body":{"classes/SubmissionFactory.html":{},"classes/TeamUserFactory.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["userfactory.define(user",{"_index":20200,"title":{},"body":{"classes/UserFactory.html":{}}}],["userforgroupnotfoundloggable",{"_index":15928,"title":{"classes/UserForGroupNotFoundLoggable.html":{}},"body":{"injectables/OidcProvisioningService.html":{},"classes/UserForGroupNotFoundLoggable.html":{}}}],["userforgroupnotfoundloggable(externalgroupuser",{"_index":15985,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["userid",{"_index":39,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AbstractLaunchStrategy.html":{},"entities/Account.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"injectables/AccountValidationService.html":{},"interfaces/AdminIdAndToken.html":{},"injectables/AuthorizationService.html":{},"classes/BBBJoinConfig.html":{},"interfaces/BBBMeetingInfoResponse.html":{},"injectables/BasicToolLaunchStrategy.html":{},"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardDoRule.html":{},"injectables/BoardUc.html":{},"injectables/CalendarService.html":{},"injectables/CardUc.html":{},"classes/Class.html":{},"interfaces/ClassProps.html":{},"injectables/ClassService.html":{},"injectables/ClassesRepo.html":{},"injectables/CloseUserLoginMigrationUc.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContextExternalToolUc.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParamBuilder.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"injectables/CopyFilesService.html":{},"classes/CopyMapper.html":{},"entities/Course.html":{},"injectables/CourseCopyService.html":{},"injectables/CourseCopyUC.html":{},"injectables/CourseExportUc.html":{},"entities/CourseGroup.html":{},"injectables/CourseGroupRepo.html":{},"injectables/CourseGroupService.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"injectables/CourseService.html":{},"injectables/CourseUc.html":{},"interfaces/CreateJwtPayload.html":{},"classes/CurrentUserMapper.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"injectables/DashboardRepo.html":{},"injectables/DashboardUc.html":{},"classes/DownloadFileParams.html":{},"injectables/ElementUc.html":{},"injectables/EtherpadService.html":{},"injectables/ExternalToolConfigurationUc.html":{},"entities/ExternalToolPseudonymEntity.html":{},"injectables/ExternalToolPseudonymRepo.html":{},"injectables/ExternalToolUc.html":{},"injectables/FeathersAuthProvider.html":{},"injectables/FeathersAuthorizationService.html":{},"classes/FileParams.html":{},"entities/FileRecord.html":{},"classes/FileRecordParams.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileUrlParams.html":{},"injectables/FilesService.html":{},"injectables/FilesStorageConsumer.html":{},"classes/ForbiddenLoggableException.html":{},"classes/GridElement.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupNameIdTuple.html":{},"classes/GroupUser.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICopyFilesRequestInfo.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IDashboardRepo.html":{},"interfaces/IExternalToolPseudonymEntityProps.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/IJsonAccount.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRole.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"interfaces/IToolLaunchStrategy.html":{},"interfaces/IdToken.html":{},"classes/IdTokenCreationLoggableException.html":{},"injectables/IdTokenService.html":{},"classes/IdentityManagementService.html":{},"classes/ImportUserScope.html":{},"interfaces/JwtConstants.html":{},"interfaces/JwtPayload.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolUc.html":{},"injectables/LessonCopyUC.html":{},"injectables/LessonRepo.html":{},"injectables/LessonService.html":{},"injectables/LessonUC.html":{},"injectables/LocalStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/NewsCrudOperationLoggable.html":{},"injectables/NewsUc.html":{},"injectables/NexboardService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"injectables/OauthProviderUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/PreviewParams.html":{},"classes/Pseudonym.html":{},"entities/PseudonymEntity.html":{},"interfaces/PseudonymEntityProps.html":{},"interfaces/PseudonymProps.html":{},"injectables/PseudonymService.html":{},"injectables/PseudonymsRepo.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RenameFileParams.html":{},"injectables/RequestLoggingInterceptor.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/RoomsService.html":{},"injectables/RoomsUc.html":{},"classes/ScanResultParams.html":{},"injectables/SchoolExternalToolUc.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"injectables/ShareTokenUC.html":{},"classes/SingleFileParams.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemFactory.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SubmissionItemResponseMapper.html":{},"injectables/SubmissionItemService.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SubmissionRepo.html":{},"injectables/SubmissionUc.html":{},"injectables/TaskCopyUC.html":{},"injectables/TaskRepo.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"classes/TeamDto.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"injectables/TeamMapper.html":{},"injectables/TeamService.html":{},"classes/TeamUserDto.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/ToolLaunchService.html":{},"injectables/ToolLaunchUc.html":{},"injectables/ToolPermissionHelper.html":{},"injectables/ToolReferenceUc.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UpdateMatchParams.html":{},"interfaces/UserBoardRoles.html":{},"classes/UserDataResponse.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationMapper.html":{},"interfaces/UserLoginMigrationQuery.html":{},"classes/UserLoginMigrationSearchParams.html":{},"injectables/UserLoginMigrationService.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceService.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["userid(value",{"_index":18304,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["userid).buildwithid",{"_index":19273,"title":{},"body":{"classes/TeamFactory.html":{}}}],["userid)?.userroleenum",{"_index":18382,"title":{},"body":{"injectables/SubmissionItemUc.html":{}}}],["userid.tohexstring",{"_index":4359,"title":{},"body":{"classes/ClassMapper.html":{}}}],["userid.tostring",{"_index":9373,"title":{},"body":{"injectables/FeathersAuthProvider.html":{}}}],["userid1",{"_index":4276,"title":{},"body":{"classes/Class.html":{},"interfaces/ClassProps.html":{}}}],["userid?.tostring",{"_index":1255,"title":{},"body":{"injectables/AccountValidationService.html":{}}}],["userids",{"_index":62,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"injectables/ClassesRepo.html":{},"entities/Course.html":{},"entities/CourseGroup.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISubmissionProperties.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"injectables/NextcloudStrategy.html":{},"entities/Submission.html":{},"entities/TeamEntity.html":{},"classes/TeamUserEntity.html":{},"injectables/TeamsRepo.html":{}}}],["userids'})@index",{"_index":6630,"title":{},"body":{"entities/CourseGroup.html":{}}}],["userids.map((id",{"_index":923,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["userimportuc",{"_index":12305,"title":{},"body":{"controllers/ImportUserController.html":{},"modules/ImportUserModule.html":{}}}],["userinfo",{"_index":14156,"title":{},"body":{"injectables/LoginUc.html":{},"classes/SystemFactory.html":{}}}],["userinfo.token.claim",{"_index":13006,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["userinfomapper",{"_index":14683,"title":{"classes/UserInfoMapper.html":{}},"body":{"classes/NewsMapper.html":{},"classes/UserInfoMapper.html":{}}}],["userinfomapper.maptoresponse(news.creator",{"_index":14686,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinfomapper.maptoresponse(news.updater",{"_index":14700,"title":{},"body":{"classes/NewsMapper.html":{}}}],["userinforesponse",{"_index":14654,"title":{"classes/UserInfoResponse.html":{}},"body":{"classes/NewsListResponse.html":{},"classes/NewsResponse.html":{},"classes/UserInfoMapper.html":{},"classes/UserInfoResponse.html":{}}}],["userinfourl",{"_index":11935,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/OidcConfigDto.html":{},"classes/OidcIdentityProviderMapper.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"classes/SystemOidcMapper.html":{}}}],["userinteam",{"_index":21277,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["userinteam.user.id",{"_index":21278,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["userjwt",{"_index":15818,"title":{},"body":{"injectables/OauthUc.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userlist",{"_index":12331,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userlist.map((user",{"_index":12333,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["userloginmigration",{"_index":4457,"title":{"entities/UserLoginMigration.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"interfaces/ISchoolProperties.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"classes/OauthLoginStateDto.html":{},"injectables/OauthUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"entities/SchoolEntity.html":{},"injectables/SchoolMigrationService.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"entities/UserLoginMigration.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigration(props",{"_index":20398,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigration.closedat",{"_index":4467,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.finishedat",{"_index":4464,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.finishedat.gettime",{"_index":4475,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.id",{"_index":4466,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigration.mandatorysince",{"_index":13643,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigration.school",{"_index":11719,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{}}}],["userloginmigration.startedat",{"_index":13642,"title":{},"body":{"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationalreadyclosedloggableexception",{"_index":18166,"title":{"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{}},"body":{"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiokresponse({description",{"_index":20292,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationalreadyclosedloggableexception})@apiunprocessableentityresponse({description",{"_index":20262,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationapimodule",{"_index":17775,"title":{"modules/UserLoginMigrationApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules.html":{}}}],["userloginmigrationcontroller",{"_index":20248,"title":{"controllers/UserLoginMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationdo",{"_index":4455,"title":{"classes/UserLoginMigrationDO.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/MigrationCheckService.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/SchoolMigrationService.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationDO.html":{},"classes/UserLoginMigrationMapper.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationRule.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationdo.closedat",{"_index":20484,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationdo.finishedat",{"_index":20485,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationdo.startedat",{"_index":20483,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationerror",{"_index":20352,"title":{"classes/UserLoginMigrationError.html":{}},"body":{"classes/UserLoginMigrationError.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception",{"_index":4459,"title":{"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apinotfoundresponse({description",{"_index":20263,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiokresponse({description",{"_index":20286,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationgraceperiodexpiredloggableexception})@apiunprocessableentityresponse({description",{"_index":20291,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationid",{"_index":11720,"title":{},"body":{"interfaces/ISchoolProperties.html":{},"classes/LegacySchoolDo.html":{},"injectables/LegacySchoolRepo.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["userloginmigrationmandatoryloggable",{"_index":19494,"title":{"classes/UserLoginMigrationMandatoryLoggable.html":{}},"body":{"injectables/ToggleUserLoginMigrationUc.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{}}}],["userloginmigrationmandatoryloggable(userid",{"_index":19497,"title":{},"body":{"injectables/ToggleUserLoginMigrationUc.html":{}}}],["userloginmigrationmandatoryparams",{"_index":20289,"title":{"classes/UserLoginMigrationMandatoryParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMandatoryParams.html":{}}}],["userloginmigrationmapper",{"_index":20301,"title":{"classes/UserLoginMigrationMapper.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{}}}],["userloginmigrationmapper.mapsearchparamstoquery(params",{"_index":20311,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(migrationdto",{"_index":20324,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmapper.mapuserloginmigrationdotoresponse(userloginmigration",{"_index":20317,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationmodule",{"_index":13436,"title":{"modules/UserLoginMigrationModule.html":{}},"body":{"modules/LegacySchoolApiModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules.html":{}}}],["userloginmigrationnotfoundloggableexception",{"_index":4460,"title":{"classes/UserLoginMigrationNotFoundLoggableException.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationnotfoundloggableexception(schoolid",{"_index":4462,"title":{},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiokresponse({description",{"_index":20264,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationnotfoundloggableexception})@apiunprocessableentityresponse({description",{"_index":20284,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationprops",{"_index":20407,"title":{},"body":{"injectables/UserLoginMigrationRepo.html":{}}}],["userloginmigrationquery",{"_index":20302,"title":{"interfaces/UserLoginMigrationQuery.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"interfaces/UserLoginMigrationQuery.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationrepo",{"_index":14463,"title":{"injectables/UserLoginMigrationRepo.html":{}},"body":{"injectables/MigrationCheckService.html":{},"injectables/SchoolMigrationService.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationrepo.save",{"_index":20470,"title":{},"body":{"injectables/UserLoginMigrationService.html":{}}}],["userloginmigrationresponse",{"_index":20303,"title":{"classes/UserLoginMigrationResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationResponse.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationresponse})@apiforbiddenresponse",{"_index":20298,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apinotfoundresponse({description",{"_index":20270,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationresponse})@apiunauthorizedresponse()@apiforbiddenresponse",{"_index":20265,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationrevertservice",{"_index":4450,"title":{"injectables/UserLoginMigrationRevertService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{}}}],["userloginmigrationrule",{"_index":1974,"title":{"injectables/UserLoginMigrationRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserLoginMigrationRule.html":{}}}],["userloginmigrations",{"_index":20269,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchlistresponse",{"_index":20304,"title":{"classes/UserLoginMigrationSearchListResponse.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationSearchListResponse.html":{}}}],["userloginmigrationsearchlistresponse})@apiinternalservererrorresponse({description",{"_index":20276,"title":{},"body":{"controllers/UserLoginMigrationController.html":{}}}],["userloginmigrationsearchparams",{"_index":20273,"title":{"classes/UserLoginMigrationSearchParams.html":{}},"body":{"controllers/UserLoginMigrationController.html":{},"classes/UserLoginMigrationMapper.html":{},"classes/UserLoginMigrationSearchParams.html":{}}}],["userloginmigrationservice",{"_index":4448,"title":{"injectables/UserLoginMigrationService.html":{}},"body":{"injectables/CloseUserLoginMigrationUc.html":{},"injectables/LegacySchoolUc.html":{},"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"injectables/ToggleUserLoginMigrationUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationRevertService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{}}}],["userloginmigrationstartloggable",{"_index":16721,"title":{"classes/UserLoginMigrationStartLoggable.html":{}},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{},"classes/UserLoginMigrationStartLoggable.html":{}}}],["userloginmigrationstartloggable(userid",{"_index":16724,"title":{},"body":{"injectables/RestartUserLoginMigrationUc.html":{},"injectables/StartUserLoginMigrationUc.html":{}}}],["userloginmigrationuc",{"_index":20246,"title":{"injectables/UserLoginMigrationUc.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserLoginMigrationController.html":{},"injectables/UserLoginMigrationUc.html":{},"controllers/UserMigrationController.html":{}}}],["usermapper",{"_index":20536,"title":{"classes/UserMapper.html":{}},"body":{"classes/UserMapper.html":{},"injectables/UserService.html":{}}}],["usermapper.mapfromentitytodto(userentity",{"_index":20796,"title":{},"body":{"injectables/UserService.html":{}}}],["usermatches",{"_index":12495,"title":{},"body":{"injectables/ImportUserRepo.html":{}}}],["usermatchlistresponse",{"_index":12310,"title":{"classes/UserMatchListResponse.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchlistresponse(dtolist",{"_index":12335,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper",{"_index":12302,"title":{"classes/UserMatchMapper.html":{}},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{},"classes/UserMatchMapper.html":{}}}],["usermatchmapper.maptodomain(scope",{"_index":12330,"title":{},"body":{"controllers/ImportUserController.html":{}}}],["usermatchmapper.maptoresponse(user",{"_index":12334,"title":{},"body":{"controllers/ImportUserController.html":{},"classes/ImportUserMapper.html":{}}}],["usermatchresponse",{"_index":12361,"title":{"classes/UserMatchResponse.html":{}},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["usermatchschoolid",{"_index":17558,"title":{},"body":{"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{}}}],["usermigrationcontroller",{"_index":20247,"title":{"controllers/UserMigrationController.html":{}},"body":{"modules/UserLoginMigrationApiModule.html":{},"controllers/UserMigrationController.html":{}}}],["usermigrationdto",{"_index":14477,"title":{},"body":{"classes/MigrationDto.html":{},"injectables/UserMigrationService.html":{}}}],["usermigrationdto.redirect",{"_index":14478,"title":{},"body":{"classes/MigrationDto.html":{}}}],["usermigrationisnotenabled",{"_index":20584,"title":{"classes/UserMigrationIsNotEnabled.html":{}},"body":{"classes/UserMigrationIsNotEnabled.html":{}}}],["usermigrationmapper",{"_index":15733,"title":{"classes/UserMigrationMapper.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{}}}],["usermigrationmapper.mapdtotoresponse(migration",{"_index":15803,"title":{},"body":{"controllers/OauthSSOController.html":{}}}],["usermigrationresponse",{"_index":15725,"title":{"classes/UserMigrationResponse.html":{}},"body":{"controllers/OauthSSOController.html":{},"classes/UserMigrationMapper.html":{},"classes/UserMigrationResponse.html":{}}}],["usermigrationservice",{"_index":15046,"title":{"injectables/UserMigrationService.html":{}},"body":{"injectables/OAuthService.html":{},"injectables/OauthUc.html":{},"modules/UserLoginMigrationModule.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserMigrationService.html":{}}}],["usermodel",{"_index":13004,"title":{},"body":{"injectables/KeycloakConfigurationService.html":{}}}],["usermodule",{"_index":4551,"title":{"modules/UserModule.html":{}},"body":{"modules/CollaborativeStorageAdapterModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/ProvisioningModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["username",{"_index":51,"title":{},"body":{"classes/AbstractAccountService.html":{},"entities/Account.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountDto.html":{},"classes/AccountEntityToDtoMapper.html":{},"classes/AccountFactory.html":{},"classes/AccountIdmToDtoMapperDb.html":{},"classes/AccountIdmToDtoMapperIdm.html":{},"interfaces/AccountParams.html":{},"injectables/AccountRepo.html":{},"classes/AccountResponse.html":{},"classes/AccountResponseMapper.html":{},"classes/AccountSaveDto.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"interfaces/AdminIdAndToken.html":{},"interfaces/AuthenticationResponse.html":{},"injectables/AuthenticationService.html":{},"interfaces/IJsonAccount.html":{},"interfaces/IKeycloakSettings.html":{},"classes/IdentityManagementOauthService.html":{},"classes/IdentityManagementService.html":{},"interfaces/IntrospectResponse.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"classes/LdapAuthorizationBodyParams.html":{},"injectables/LdapService.html":{},"injectables/LdapStrategy.html":{},"classes/LocalAuthorizationBodyParams.html":{},"injectables/LocalStrategy.html":{},"injectables/OidcProvisioningService.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"classes/TestApiClient.html":{},"classes/UnauthorizedLoggableException.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["username.replace(/[^(\\p{l}\\p{n})]/gu",{"_index":942,"title":{},"body":{"injectables/AccountRepo.html":{}}}],["username.trim().tolowercase",{"_index":1852,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["usernames",{"_index":1112,"title":{},"body":{"injectables/AccountService.html":{}}}],["usernotfoundafterprovisioningloggableexception",{"_index":15073,"title":{"classes/UserNotFoundAfterProvisioningLoggableException.html":{}},"body":{"injectables/OAuthService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["usernotfoundafterprovisioningloggableexception(externaluserid",{"_index":15099,"title":{},"body":{"injectables/OAuthService.html":{}}}],["userparams",{"_index":850,"title":{"classes/UserParams.html":{}},"body":{"interfaces/AccountParams.html":{},"interfaces/UserAndAccountParams.html":{},"classes/UserAndAccountTestFactory.html":{},"classes/UserParams.html":{}}}],["userpathadditions",{"_index":11907,"title":{},"body":{"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"entities/System.html":{}}}],["userpermissions",{"_index":20197,"title":{},"body":{"classes/UserFactory.html":{}}}],["userquery",{"_index":20086,"title":{},"body":{"injectables/UserDORepo.html":{},"injectables/UserService.html":{}}}],["userrefprops",{"_index":1898,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrefprops.some((prop",{"_index":1930,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["userrepo",{"_index":441,"title":{"injectables/UserRepo.html":{}},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"injectables/AccountValidationService.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"injectables/CourseCopyService.html":{},"interfaces/IRepoLoader.html":{},"modules/ImportUserModule.html":{},"injectables/LdapStrategy.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"injectables/LocalStrategy.html":{},"injectables/ReferenceLoader.html":{},"injectables/RoomsUc.html":{},"modules/UserModule.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["userrepresentation",{"_index":13078,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{}}}],["userrole",{"_index":12363,"title":{},"body":{"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/RoleNameMapper.html":{},"injectables/SanisResponseMapper.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"classes/UserMatchResponse.html":{}}}],["userrole.admin",{"_index":16830,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.student",{"_index":16832,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userrole.teacher",{"_index":16831,"title":{},"body":{"classes/RoleNameMapper.html":{},"classes/UserMatchMapper.html":{}}}],["userroleenum",{"_index":3098,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{},"interfaces/UserBoardRoles.html":{}}}],["userroleenum.student",{"_index":3153,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{},"injectables/ElementUc.html":{},"injectables/SubmissionItemUc.html":{}}}],["userroleenum.substitution_teacher",{"_index":3150,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userroleenum.teacher",{"_index":3148,"title":{},"body":{"injectables/BoardDoAuthorizableService.html":{}}}],["userrule",{"_index":1975,"title":{"injectables/UserRule.html":{}},"body":{"modules/AuthorizationModule.html":{},"injectables/RuleManager.html":{},"injectables/UserRule.html":{}}}],["users",{"_index":3091,"title":{},"body":{"classes/BoardDoAuthorizable.html":{},"interfaces/BoardDoAuthorizableProps.html":{},"injectables/BoardDoAuthorizableService.html":{},"injectables/CollaborativeStorageService.html":{},"entities/Course.html":{},"classes/ExternalGroupDto.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"interfaces/GroupProps.html":{},"interfaces/GroupUsers.html":{},"interfaces/GroupfoldersCreated.html":{},"interfaces/GroupfoldersFolder.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ICurrentUser.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IMigrationOptions.html":{},"interfaces/IParentInfo.html":{},"interfaces/IResolvedUser.html":{},"interfaces/IRetryOptions.html":{},"interfaces/IRole.html":{},"interfaces/IUserProperties.html":{},"modules/ImportUserModule.html":{},"injectables/ImportUserRepo.html":{},"injectables/JwtValidationAdapter.html":{},"classes/KeycloakConsole.html":{},"controllers/KeycloakManagementController.html":{},"classes/KeycloakSeedService.html":{},"controllers/LoginController.html":{},"interfaces/Meta.html":{},"injectables/NewsUc.html":{},"interfaces/NextcloudGroups.html":{},"injectables/NextcloudStrategy.html":{},"interfaces/OcsResponse.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SanisResponseMapper.html":{},"injectables/SchoolMigrationService.html":{},"classes/ShareTokenBodyParams.html":{},"interfaces/SuccessfulRes.html":{},"controllers/SystemController.html":{},"entities/User.html":{},"interfaces/UserBoardRoles.html":{},"injectables/UserRepo.html":{},"injectables/UserService.html":{},"classes/VideoConferenceCreateParams.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["users.filter((groupuser",{"_index":15987,"title":{},"body":{"injectables/OidcProvisioningService.html":{}}}],["users.find",{"_index":13114,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.find((user",{"_index":20710,"title":{},"body":{"injectables/UserRepo.html":{}}}],["users.getidentifiers('_id",{"_index":6453,"title":{},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{}}}],["users.length",{"_index":13239,"title":{},"body":{"classes/KeycloakSeedService.html":{}}}],["users.resetpassword",{"_index":13108,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users.total",{"_index":17677,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["users.update",{"_index":13107,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["users_configuration_path='/tmp/config/users",{"_index":22937,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["userscollection",{"_index":11230,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.createindex",{"_index":11242,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.dropindex('usersearchindex",{"_index":11241,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexes",{"_index":11234,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscollection.indexexists('usersearchindex",{"_index":11233,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userscope",{"_index":20097,"title":{"classes/UserScope.html":{}},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["userscount",{"_index":1281,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["usersearchindex",{"_index":11235,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindex[0].key?.schoolid",{"_index":11238,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["usersearchindexexists",{"_index":11232,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["userservice",{"_index":12145,"title":{"injectables/UserService.html":{}},"body":{"injectables/IdTokenService.html":{},"injectables/IservProvisioningStrategy.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/MigrationCheckService.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OAuthService.html":{},"injectables/OauthProviderLoginFlowUc.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserMigrationService.html":{},"modules/UserModule.html":{},"injectables/UserService.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"injectables/VideoConferenceService.html":{}}}],["usersfile",{"_index":11510,"title":{},"body":{"interfaces/IKeycloakConfigurationInputFiles.html":{},"classes/KeycloakConfiguration.html":{}}}],["userspermissions",{"_index":1912,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["userspermissions.includes(p",{"_index":1915,"title":{},"body":{"injectables/AuthorizationHelper.html":{},"injectables/PermissionService.html":{}}}],["usersubmissionexists",{"_index":8098,"title":{},"body":{"injectables/ElementUc.html":{}}}],["userswithemail",{"_index":12653,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail.length",{"_index":12655,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["userswithemail[0",{"_index":12656,"title":{},"body":{"injectables/IservProvisioningStrategy.html":{}}}],["usertoicurrentuser",{"_index":6934,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["usertoicurrentuser(accountid",{"_index":6940,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["useruc",{"_index":12313,"title":{"injectables/UserUc.html":{}},"body":{"controllers/ImportUserController.html":{},"modules/UserApiModule.html":{},"controllers/UserController.html":{},"injectables/UserUc.html":{}}}],["userwithpermissions",{"_index":2058,"title":{},"body":{"injectables/AuthorizationService.html":{}}}],["uses",{"_index":13440,"title":{},"body":{"modules/LegacySchoolApiModule.html":{},"controllers/LegacySchoolController.html":{},"modules/LegacySchoolModule.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LegacySchoolRule.html":{},"injectables/LegacySchoolService.html":{},"injectables/LegacySchoolUc.html":{},"license.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["usevalue",{"_index":1420,"title":{},"body":{"modules/AntivirusModule.html":{},"interfaces/AntivirusModuleOptions.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/MailModule.html":{},"interfaces/MailModuleOptions.html":{},"modules/RocketChatModule.html":{},"modules/ToolConfigModule.html":{},"modules/VideoConferenceModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usevalue(createmock",{"_index":19446,"title":{},"body":{"classes/TestBootstrapConsole.html":{}}}],["using",{"_index":704,"title":{},"body":{"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/BaseFactory.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ColumnBoardFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"modules/FeathersModule.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"classes/FileRecordFactory.html":{},"classes/ImportUserFactory.html":{},"modules/InterceptorModule.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolFactory.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"classes/SubmissionFactory.html":{},"injectables/SubmissionItemUc.html":{},"classes/SystemFactory.html":{},"classes/TaskFactory.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"modules/ToolModule.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["usually",{"_index":5405,"title":{},"body":{"classes/ConsentRequestBody.html":{},"classes/LoginRequestBody.html":{},"classes/OAuthRejectableBody.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["utf",{"_index":9992,"title":{},"body":{"injectables/FileSystemAdapter.html":{},"classes/KeycloakSeedService.html":{}}}],["util",{"_index":10491,"title":{},"body":{"classes/GlobalErrorFilter.html":{},"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["util.inspect(message).replace(/\\n/g",{"_index":13430,"title":{},"body":{"injectables/LegacyLogger.html":{},"classes/LoggingUtils.html":{}}}],["utilities",{"_index":14044,"title":{},"body":{"modules/LoggerModule.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["utilities.format.nestlike",{"_index":14063,"title":{},"body":{"modules/LoggerModule.html":{}}}],["utils",{"_index":3307,"title":{},"body":{"injectables/BoardDoRepo.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/GlobalErrorFilter.html":{},"classes/RecursiveSaveVisitor.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["utils.asarray(domainobject",{"_index":16562,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["utils.asarray(id",{"_index":3326,"title":{},"body":{"injectables/BoardDoRepo.html":{}}}],["utils/error.utils",{"_index":8145,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["uuid",{"_index":775,"title":{},"body":{"injectables/AccountLookupService.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"interfaces/ISystemProperties.html":{},"classes/ImportUserFactory.html":{},"injectables/IservProvisioningStrategy.html":{},"classes/LdapConfig.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"injectables/PseudonymService.html":{},"entities/System.html":{},"classes/SystemFactory.html":{},"dependencies.html":{}}}],["uuidv4",{"_index":12347,"title":{},"body":{"classes/ImportUserFactory.html":{},"injectables/PseudonymService.html":{}}}],["v",{"_index":11617,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["v3",{"_index":22312,"title":{},"body":{"todo.html":{}}}],["v3/index",{"_index":22317,"title":{},"body":{"todo.html":{}}}],["v3/tools/external",{"_index":8437,"title":{},"body":{"injectables/ExternalToolConfigurationUc.html":{},"controllers/ToolController.html":{}}}],["v4",{"_index":9599,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"interfaces/FileSecurityCheckEntityProps.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/ImportUserFactory.html":{},"injectables/PseudonymService.html":{}}}],["val",{"_index":5328,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["valid",{"_index":783,"title":{},"body":{"injectables/AccountLookupService.html":{},"modules/AuthenticationModule.html":{},"entities/Board.html":{},"classes/BoardManagementConsole.html":{},"classes/GlobalValidationPipe.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{},"classes/GroupValidPeriodEntity.html":{},"interfaces/GroupValidPeriodEntityProps.html":{},"interfaces/ISystemProperties.html":{},"interfaces/ITaskParent.html":{},"classes/LdapConfig.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/SubmissionItemResponseMapper.html":{},"entities/System.html":{},"entities/Task.html":{},"classes/TaskWithStatusVo.html":{},"license.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["validatabletool",{"_index":5313,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.id",{"_index":5345,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.find",{"_index":5349,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.length",{"_index":5343,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatabletool.parameters.map",{"_index":5338,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validate",{"_index":5974,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{},"modules/InterceptorModule.html":{},"injectables/JwtStrategy.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacySchoolService.html":{},"injectables/LocalStrategy.html":{},"injectables/OAuthService.html":{},"injectables/Oauth2Strategy.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{},"injectables/TaskUC.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["validate(payload",{"_index":12690,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["validate(props",{"_index":4297,"title":{},"body":{"entities/ClassEntity.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/IClassEntityProps.html":{}}}],["validate(request",{"_index":13330,"title":{},"body":{"injectables/LdapStrategy.html":{},"injectables/Oauth2Strategy.html":{}}}],["validate(school",{"_index":17699,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validate(schoolexternaltool",{"_index":17536,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validate(tovalidate",{"_index":5981,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validate(username",{"_index":14003,"title":{},"body":{"injectables/LocalStrategy.html":{}}}],["validatecommon",{"_index":8647,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecommon(externaltool",{"_index":8667,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validatecreate",{"_index":9231,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatecreate(externaltool",{"_index":9236,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatecredentials",{"_index":1122,"title":{},"body":{"injectables/AccountService.html":{}}}],["validated",{"_index":12723,"title":{},"body":{"injectables/JwtValidationAdapter.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["validategraceperiod",{"_index":17606,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validategraceperiod(userloginmigration",{"_index":17631,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validatelogosize",{"_index":8555,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelogosize(externaltool",{"_index":8569,"title":{},"body":{"classes/ExternalToolLogoService.html":{}}}],["validatelti11config",{"_index":9232,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatelti11config(externaltool",{"_index":9238,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validatenested",{"_index":5740,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SingleFileParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["validatenested()@apiproperty",{"_index":9535,"title":{},"body":{"classes/FileElementContentBody.html":{},"classes/MoveElementParams.html":{},"classes/RichTextElementContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{}}}],["validatenested()@type(undefined",{"_index":8458,"title":{},"body":{"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/UpdateElementContentBodyParams.html":{}}}],["validatenested({each",{"_index":5732,"title":{},"body":{"classes/ContextExternalToolPostParams.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/SchoolExternalToolPostParams.html":{}}}],["validateoauth2config",{"_index":9233,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateoauth2config(externaltool",{"_index":9239,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateorreject",{"_index":1078,"title":{},"body":{"injectables/AccountService.html":{}}}],["validateorreject(dto",{"_index":1103,"title":{},"body":{"injectables/AccountService.html":{}}}],["validateparameter",{"_index":5311,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validateparameter(param",{"_index":5330,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validatepassword",{"_index":24,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["validatepassword(account",{"_index":91,"title":{},"body":{"classes/AbstractAccountService.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{}}}],["validatereordering(reorderedids",{"_index":2716,"title":{},"body":{"entities/Board.html":{}}}],["validaterocketchatconfig",{"_index":1402,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["validatestatus",{"_index":10928,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["validatesubject",{"_index":15450,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatesubject(currentuser",{"_index":15457,"title":{},"body":{"injectables/OauthProviderConsentFlowUc.html":{}}}],["validatetoken",{"_index":15042,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validatetoken(idtoken",{"_index":15068,"title":{},"body":{"injectables/OAuthService.html":{}}}],["validateupdate",{"_index":9234,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateupdate(toolid",{"_index":9241,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validateusername",{"_index":1111,"title":{},"body":{"injectables/AccountService.html":{}}}],["validateusersmatch",{"_index":7617,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validateusersmatch(dashboard",{"_index":7625,"title":{},"body":{"injectables/DashboardUc.html":{}}}],["validating",{"_index":12722,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation",{"_index":1492,"title":{"additional-documentation/nestjs-application/domain-object-validation.html":{}},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/BusinessError.html":{},"modules/CoreModule.html":{},"entities/CourseNews.html":{},"classes/ErrorLoggable.html":{},"classes/GlobalValidationPipe.html":{},"interfaces/INewsProperties.html":{},"injectables/LegacySchoolService.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{},"classes/ValidationError.html":{},"miscellaneous/functions.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["validation.adapter",{"_index":1654,"title":{},"body":{"modules/AuthenticationModule.html":{},"injectables/AuthenticationService.html":{},"injectables/JwtStrategy.html":{}}}],["validation.adapter.ts",{"_index":12711,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:13",{"_index":12716,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:25",{"_index":12721,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:30",{"_index":12719,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.adapter.ts:36",{"_index":12726,"title":{},"body":{"injectables/JwtValidationAdapter.html":{}}}],["validation.error.ts",{"_index":1471,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.error.ts:4",{"_index":1477,"title":{},"body":{"classes/ApiValidationError.html":{}}}],["validation.pipe",{"_index":20835,"title":{},"body":{"modules/ValidationModule.html":{}}}],["validation.pipe.ts",{"_index":10529,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.pipe.ts:12",{"_index":10532,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validation.service",{"_index":9243,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts",{"_index":5302,"title":{},"body":{"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:10",{"_index":8648,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:108",{"_index":8656,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:118",{"_index":8658,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:128",{"_index":8664,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:13",{"_index":5978,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:136",{"_index":8660,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:14",{"_index":5333,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:148",{"_index":8652,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:15",{"_index":17537,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:16",{"_index":8668,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:18",{"_index":9237,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:21",{"_index":5982,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:24",{"_index":5329,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:27",{"_index":17534,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:28",{"_index":9242,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:32",{"_index":5317,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:37",{"_index":5980,"title":{},"body":{"injectables/ContextExternalToolValidationService.html":{}}}],["validation.service.ts:45",{"_index":5314,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:53",{"_index":5326,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:60",{"_index":9240,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:65",{"_index":5331,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:7",{"_index":17697,"title":{},"body":{"injectables/SchoolValidationService.html":{}}}],["validation.service.ts:72",{"_index":8654,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation.service.ts:73",{"_index":5320,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:76",{"_index":8662,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:81",{"_index":5324,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:86",{"_index":8650,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{}}}],["validation.service.ts:89",{"_index":5322,"title":{},"body":{"injectables/CommonToolValidationService.html":{}}}],["validation.service.ts:9",{"_index":17531,"title":{},"body":{"injectables/SchoolExternalToolValidationService.html":{}}}],["validation.service.ts:95",{"_index":8666,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validation_error",{"_index":20828,"title":{},"body":{"classes/ValidationError.html":{}}}],["validationerror",{"_index":503,"title":{"classes/ValidationError.html":{}},"body":{"controllers/AccountController.html":{},"injectables/AccountService.html":{},"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/CurrentUserMapper.html":{},"classes/ErrorLoggable.html":{},"injectables/ExternalToolParameterValidationService.html":{},"injectables/ExternalToolValidationService.html":{},"classes/GlobalValidationPipe.html":{},"controllers/LoginController.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"injectables/SubmissionItemService.html":{},"controllers/ToolContextController.html":{},"controllers/ToolController.html":{},"controllers/ToolSchoolController.html":{},"classes/ValidationError.html":{},"additional-documentation/nestjs-application/exception-handling.html":{}}}],["validationerror('account",{"_index":1120,"title":{},"body":{"injectables/AccountService.html":{}}}],["validationerror('grace_period_expired",{"_index":17635,"title":{},"body":{"injectables/SchoolMigrationService.html":{}}}],["validationerror('no",{"_index":1109,"title":{},"body":{"injectables/AccountService.html":{}}}],["validationerror('user",{"_index":6946,"title":{},"body":{"classes/CurrentUserMapper.html":{}}}],["validationerror('username",{"_index":1116,"title":{},"body":{"injectables/AccountService.html":{}}}],["validationerror(`tool_id_mismatch",{"_index":9249,"title":{},"body":{"injectables/ExternalToolValidationService.html":{}}}],["validationerror(`tool_name_duplicate",{"_index":8671,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror(`tool_param_name",{"_index":8676,"title":{},"body":{"injectables/ExternalToolParameterValidationService.html":{}}}],["validationerror.children",{"_index":1532,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.children.foreach((childerror",{"_index":1533,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.constraints",{"_index":1528,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerror.property",{"_index":1526,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrordetailresponse",{"_index":1504,"title":{"classes/ValidationErrorDetailResponse.html":{}},"body":{"classes/ApiValidationErrorResponse.html":{},"classes/ValidationErrorDetailResponse.html":{}}}],["validationerrordetailresponse(propertypath",{"_index":1531,"title":{},"body":{"classes/ApiValidationErrorResponse.html":{}}}],["validationerrorlogmessage",{"_index":8138,"title":{},"body":{"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"classes/ExternalToolLogoFetchedLoggable.html":{},"classes/ExternalToolLogoNotFoundLoggableException.html":{},"classes/ExternalToolLogoSizeExceededLoggableException.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/GroupRoleUnknownLoggable.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapUserMigrationException.html":{},"interfaces/Loggable.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/ParameterTypeNotImplementedLoggableException.html":{},"classes/SchoolForGroupNotFoundLoggable.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInUserMigrationEndLoggable.html":{},"classes/SchoolInUserMigrationStartLoggable.html":{},"classes/SchoolNumberDuplicateLoggableException.html":{},"classes/SchoolNumberMissingLoggableException.html":{},"classes/ToolStatusOutdatedLoggableException.html":{},"classes/UserForGroupNotFoundLoggable.html":{},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{},"classes/UserLoginMigrationMandatoryLoggable.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationStartLoggable.html":{},"classes/UserMigrationIsNotEnabled.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{}}}],["validationerrors",{"_index":1478,"title":{},"body":{"classes/ApiValidationError.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/ErrorLoggable.html":{}}}],["validationmetadata",{"_index":8170,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.context?.privacyprotected",{"_index":8172,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmetadata.propertyname",{"_index":8171,"title":{},"body":{"classes/ErrorLoggable.html":{}}}],["validationmodule",{"_index":6323,"title":{"modules/ValidationModule.html":{}},"body":{"modules/CoreModule.html":{},"modules/ValidationModule.html":{},"modules.html":{}}}],["validationoptions",{"_index":21586,"title":{},"body":{"miscellaneous/functions.html":{}}}],["validationpipe",{"_index":10531,"title":{},"body":{"classes/GlobalValidationPipe.html":{}}}],["validator",{"_index":374,"title":{},"body":{"classes/AcceptQuery.html":{},"classes/AccountByIdBodyParams.html":{},"classes/AccountByIdParams.html":{},"classes/AccountSaveDto.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"classes/AuthorizationParams.html":{},"classes/BasicToolConfigParams.html":{},"classes/BoardLessonResponse.html":{},"classes/BoardUrlParams.html":{},"classes/CardIdsParams.html":{},"classes/CardUrlParams.html":{},"classes/ChallengeParams.html":{},"classes/ChangeLanguageParams.html":{},"classes/ColumnUrlParams.html":{},"classes/ConsentRequestBody.html":{},"classes/ConsentResponse.html":{},"classes/ConsentSessionResponse.html":{},"classes/ContentElementUrlParams.html":{},"classes/ContextExternalToolContextParams.html":{},"classes/ContextExternalToolIdParams.html":{},"classes/ContextExternalToolIdParams-1.html":{},"classes/ContextExternalToolPostParams.html":{},"classes/ContextRefParams.html":{},"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/CourseQueryParams.html":{},"classes/CourseUrlParams.html":{},"classes/CreateCardBodyParams.html":{},"classes/CreateContentElementBodyParams.html":{},"classes/CreateNewsParams.html":{},"classes/CreateSubmissionItemBodyParams.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterPostParams.html":{},"classes/DashboardUrlParams.html":{},"classes/DownloadFileParams.html":{},"classes/ElementContentBody.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolIdParams.html":{},"classes/ExternalToolSearchParams.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElementContentBody.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/FilterImportUserParams.html":{},"classes/FilterNewsParams.html":{},"classes/FilterUserParams.html":{},"classes/GetFwuLearningContentParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/IdParams.html":{},"classes/ImportUserListResponse.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserUrlParams.html":{},"classes/LdapAuthorizationBodyParams.html":{},"classes/LessonCopyApiParams.html":{},"classes/LessonUrlParams.html":{},"classes/LessonUrlParams-1.html":{},"classes/ListOauthClientsParams.html":{},"classes/LocalAuthorizationBodyParams.html":{},"classes/LoginRequestBody.html":{},"classes/LoginResponse-1.html":{},"classes/Lti11ToolConfigCreateParams.html":{},"classes/Lti11ToolConfigUpdateParams.html":{},"classes/MigrationBody.html":{},"classes/MoveCardBodyParams.html":{},"classes/MoveColumnBodyParams.html":{},"classes/MoveContentElementBody.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/NewsUrlParams.html":{},"classes/OAuthRejectableBody.html":{},"classes/Oauth2AuthorizationBodyParams.html":{},"classes/Oauth2MigrationParams.html":{},"classes/Oauth2ToolConfigCreateParams.html":{},"classes/Oauth2ToolConfigUpdateParams.html":{},"classes/OauthClientBody.html":{},"classes/PageContentQueryParams.html":{},"classes/PaginationParams.html":{},"classes/PatchGroupParams.html":{},"classes/PatchMyAccountParams.html":{},"classes/PatchMyPasswordParams.html":{},"classes/PatchOrderParams.html":{},"classes/PatchVisibilityParams.html":{},"classes/PreviewParams.html":{},"classes/RenameBodyParams.html":{},"classes/RenameFileParams.html":{},"classes/RevokeConsentParams.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElementContentBody.html":{},"classes/RoomElementUrlParams.html":{},"classes/RoomUrlParams.html":{},"classes/SSOLoginQuery.html":{},"classes/ScanResultParams.html":{},"classes/SchoolExternalToolIdParams.html":{},"classes/SchoolExternalToolIdParams-1.html":{},"classes/SchoolExternalToolPostParams.html":{},"classes/SchoolExternalToolSearchParams.html":{},"classes/SchoolIdParams.html":{},"classes/SchoolIdParams-1.html":{},"classes/SchoolParams.html":{},"classes/SetHeightBodyParams.html":{},"classes/ShareTokenBodyParams.html":{},"classes/ShareTokenImportBodyParams.html":{},"classes/ShareTokenUrlParams.html":{},"classes/SingleFileParams.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StatelessAuthorizationParams.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElementContentBody.html":{},"classes/SubmissionContainerUrlParams.html":{},"classes/SubmissionItemUrlParams.html":{},"classes/SubmissionUrlParams.html":{},"classes/SystemFilterParams.html":{},"classes/SystemIdParams.html":{},"classes/SystemIdParams-1.html":{},"classes/TaskCopyApiParams.html":{},"classes/TaskCreateParams.html":{},"classes/TaskUpdateParams.html":{},"classes/TaskUrlParams.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamRoleDto.html":{},"classes/TeamUrlParams.html":{},"classes/ToolLaunchParams.html":{},"classes/UpdateElementContentBodyParams.html":{},"classes/UpdateFlagParams.html":{},"classes/UpdateMatchParams.html":{},"classes/UpdateNewsParams.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"classes/UserLoginMigrationMandatoryParams.html":{},"classes/UserLoginMigrationSearchParams.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchResponse.html":{},"classes/UserParams.html":{},"classes/VideoConferenceCreateParams.html":{},"classes/VideoConferenceScopeParams.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/file-structure.html":{}}}],["validators",{"_index":22598,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["validfrom",{"_index":10579,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["validjwt",{"_index":6880,"title":{},"body":{"interfaces/CreateJwtParams.html":{},"classes/JwtTestFactory.html":{}}}],["validperiod",{"_index":10618,"title":{},"body":{"classes/GroupDomainMapper.html":{},"entities/GroupEntity.html":{},"interfaces/GroupEntityProps.html":{}}}],["validuntil",{"_index":10580,"title":{},"body":{"classes/Group.html":{},"classes/GroupDomainMapper.html":{},"interfaces/GroupProps.html":{},"injectables/OidcProvisioningService.html":{}}}],["value",{"_index":144,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"classes/AccountSearchQueryParams.html":{},"injectables/AccountService.html":{},"injectables/AccountServiceDb.html":{},"classes/ApiValidationErrorResponse.html":{},"classes/BBBCreateConfigBuilder.html":{},"classes/BBBJoinConfigBuilder.html":{},"classes/BaseEntityWithTimestamps.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardDoBuilderImpl.html":{},"classes/BoardManagementConsole.html":{},"injectables/BoardManagementUc.html":{},"classes/CardSkeletonResponse.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageService.html":{},"classes/ColumnBoardFactory.html":{},"injectables/ColumnBoardService.html":{},"entities/ColumnBoardTarget.html":{},"classes/CommonCartridgeFileBuilder.html":{},"injectables/CommonToolValidationService.html":{},"classes/ConsentResponse.html":{},"classes/ContentElementResponseFactory.html":{},"classes/ContextExternalToolFactory.html":{},"classes/ContextExternalToolRequestMapper.html":{},"classes/ContextExternalToolResponse.html":{},"classes/ContextExternalToolResponseMapper.html":{},"classes/ContextExternalToolScope.html":{},"injectables/CopyHelperService.html":{},"entities/Course.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"injectables/CourseRepo.html":{},"classes/CourseScope.html":{},"interfaces/CustomLtiProperty.html":{},"classes/CustomLtiPropertyDO.html":{},"classes/CustomParameterEntry.html":{},"classes/CustomParameterEntryEntity.html":{},"classes/CustomParameterEntryParam.html":{},"classes/CustomParameterEntryResponse.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"entities/DashboardGridElementModel.html":{},"entities/DashboardModelEntity.html":{},"classes/DeleteFilesConsole.html":{},"injectables/DeleteFilesUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"classes/ElementContentBody.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolCreateParams.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"injectables/ExternalToolParameterValidationService.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolScope.html":{},"classes/ExternalToolUpdateParams.html":{},"classes/FileContentBody.html":{},"classes/FileElement.html":{},"classes/FileElementContentBody.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"classes/FilePermissionEntity.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"classes/FileSecurityCheckEntity.html":{},"injectables/FilesStorageProducer.html":{},"classes/FilterUserParams.html":{},"classes/GlobalValidationPipe.html":{},"classes/GridElement.html":{},"classes/GuardAgainst.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"injectables/HydraSsoService.html":{},"interfaces/IClassEntityProps.html":{},"interfaces/ICollectionFilePath.html":{},"interfaces/IGridElement.html":{},"interfaces/ITeamProperties.html":{},"interfaces/ITeamUserProperties.html":{},"classes/IdentityManagementService.html":{},"entities/ImportUser.html":{},"classes/ImportUserFactory.html":{},"injectables/ImportUserRepo.html":{},"classes/ImportUserResponse.html":{},"classes/ImportUserScope.html":{},"classes/KeycloakAdministration.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConfiguration.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementService.html":{},"injectables/KeycloakMigrationService.html":{},"classes/KeycloakSeedService.html":{},"injectables/LdapStrategy.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolService.html":{},"injectables/LessonCopyService.html":{},"entities/LessonEntity.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"injectables/Logger.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"entities/LtiTool.html":{},"classes/LtiToolDO.html":{},"classes/LtiToolFactory.html":{},"classes/MaterialFactory.html":{},"classes/MissingToolParameterValueLoggableException.html":{},"classes/MongoPatterns.html":{},"entities/News.html":{},"injectables/NewsRepo.html":{},"classes/NewsScope.html":{},"injectables/NewsUc.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/PaginationParams.html":{},"classes/PropertyData.html":{},"injectables/ProvisioningService.html":{},"classes/RecursiveSaveVisitor.html":{},"injectables/ReferenceLoader.html":{},"classes/RequestInfo.html":{},"classes/ResolvedUserMapper.html":{},"classes/RichTextContentBody.html":{},"classes/RichTextElement.html":{},"classes/RichTextElementContentBody.html":{},"interfaces/RichTextElementProps.html":{},"entities/Role.html":{},"injectables/RoleRepo.html":{},"injectables/RoomBoardResponseMapper.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisResponseMapper.html":{},"entities/SchoolEntity.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRequestMapper.html":{},"injectables/SchoolExternalToolResponseMapper.html":{},"classes/SchoolExternalToolScope.html":{},"classes/Scope.html":{},"classes/SortExternalToolParams.html":{},"classes/SortImportUserParams.html":{},"classes/SortingParams.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"entities/Submission.html":{},"classes/SubmissionContainerContentBody.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionContainerElementContentBody.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SystemFactory.html":{},"classes/SystemScope.html":{},"injectables/SystemUc.html":{},"entities/Task.html":{},"controllers/TaskController.html":{},"classes/TaskFactory.html":{},"injectables/TaskRepo.html":{},"classes/TaskResponse.html":{},"classes/TaskScope.html":{},"injectables/TaskUC.html":{},"entities/TeamEntity.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/TeamsRepo.html":{},"classes/TestApiClient.html":{},"classes/TestHelper.html":{},"classes/ToolConfiguration.html":{},"classes/ToolLaunchMapper.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/UpdateElementContentBodyParams.html":{},"entities/User.html":{},"classes/UserAndAccountTestFactory.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserDto.html":{},"classes/UserFactory.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"classes/VideoConferenceConfiguration.html":{},"classes/VideoConferenceInfo.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["value.component",{"_index":13756,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["value.content",{"_index":13757,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["value.content.url",{"_index":13758,"title":{},"body":{"injectables/LessonCopyService.html":{}}}],["value.length",{"_index":18192,"title":{},"body":{"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{}}}],["value.loggable",{"_index":14519,"title":{},"body":{"classes/MissingToolParameterValueLoggableException.html":{}}}],["value.trim().length",{"_index":18215,"title":{},"body":{"classes/StringValidator.html":{}}}],["value[0",{"_index":13150,"title":{},"body":{"injectables/KeycloakIdentityManagementService.html":{}}}],["values",{"_index":1659,"title":{},"body":{"modules/AuthenticationModule.html":{},"interfaces/ISystemProperties.html":{},"classes/LdapConfig.html":{},"injectables/LdapStrategy.html":{},"classes/OauthClientBody.html":{},"classes/OauthConfig.html":{},"classes/OidcConfig.html":{},"classes/StorageProviderEncryptedStringType.html":{},"entities/System.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["var",{"_index":11254,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["variable",{"_index":17821,"title":{},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{}}}],["variables",{"_index":22603,"title":{},"body":{"additional-documentation/nestjs-application/file-structure.html":{}}}],["various",{"_index":22509,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["vars",{"_index":2658,"title":{},"body":{"injectables/BasicToolLaunchStrategy.html":{},"classes/DomainObjectFactory.html":{},"injectables/FilesStorageConsumer.html":{},"controllers/LoginController.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/TestBootstrapConsole.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["vcdo",{"_index":21092,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["vcdo.options",{"_index":21094,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceService.html":{}}}],["vcsettings",{"_index":21239,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["verbatim",{"_index":21674,"title":{},"body":{"license.html":{}}}],["verbose",{"_index":11568,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"injectables/KeycloakConfigurationUc.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakMigrationService.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["verified",{"_index":1366,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{}}}],["verify",{"_index":22845,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyfeaturesenabled",{"_index":20964,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifyfeaturesenabled(schoolid",{"_index":20977,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["verifying",{"_index":22846,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["verifyoptions",{"_index":1698,"title":{},"body":{"modules/AuthenticationModule.html":{}}}],["version",{"_index":4945,"title":{},"body":{"injectables/CommonCartridgeExportService.html":{},"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeOrganizationItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"classes/ContextExternalToolConfigurationTemplateResponse.html":{},"injectables/CourseExportUc.html":{},"classes/CourseQueryParams.html":{},"classes/CustomParameterFactory.html":{},"classes/ExternalTool.html":{},"entities/ExternalToolEntity.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"interfaces/ExternalToolProps.html":{},"classes/ExternalToolRepoMapper.html":{},"injectables/ExternalToolRequestMapper.html":{},"classes/ExternalToolResponse.html":{},"injectables/ExternalToolResponseMapper.html":{},"injectables/ExternalToolUc.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"classes/Oauth2ToolConfigFactory.html":{},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{},"classes/SchoolExternalToolPostParams.html":{},"injectables/SchoolExternalToolValidationService.html":{},"classes/ToolConfigurationMapper.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["version.interface.ts",{"_index":19955,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.interface.ts:2",{"_index":19956,"title":{},"body":{"interfaces/ToolVersion.html":{}}}],["version.service",{"_index":9112,"title":{},"body":{"injectables/ExternalToolService.html":{}}}],["version.service.ts",{"_index":9264,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:16",{"_index":9275,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:32",{"_index":9289,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:39",{"_index":9278,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:52",{"_index":9287,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:60",{"_index":9281,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:68",{"_index":9285,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:7",{"_index":9292,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["version.service.ts:76",{"_index":9283,"title":{},"body":{"injectables/ExternalToolVersionService.html":{}}}],["versionkey",{"_index":9569,"title":{},"body":{"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{}}}],["versionnumber",{"_index":5170,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["versions",{"_index":21689,"title":{},"body":{"license.html":{}}}],["vertrauensstufe",{"_index":17244,"title":{},"body":{"interfaces/SanisPersonResponse.html":{}}}],["very",{"_index":11199,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"index.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["via",{"_index":6047,"title":{},"body":{"classes/CopyApiResponse.html":{},"controllers/KeycloakManagementController.html":{},"controllers/LoginController.html":{},"injectables/OauthUc.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"classes/TaskListResponse.html":{},"classes/TaskResponse.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["video",{"_index":7871,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"modules/VideoConferenceApiModule.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfo.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceJoin.html":{},"classes/VideoConferenceJoinResponse.html":{},"modules/VideoConferenceModule.html":{},"classes/VideoConferenceOptions.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconference",{"_index":6423,"title":{"entities/VideoConference.html":{},"classes/VideoConference-1.html":{}},"body":{"entities/Course.html":{},"interfaces/ICourseProperties.html":{},"interfaces/ISchoolProperties.html":{},"entities/SchoolEntity.html":{},"classes/SchoolRolePermission.html":{},"classes/SchoolRoles.html":{},"entities/VideoConference.html":{},"classes/VideoConference-1.html":{},"classes/VideoConferenceConfiguration.html":{},"injectables/VideoConferenceCreateUc.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconference(props",{"_index":21190,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconference.options.everybodyjoinsasmoderator",{"_index":21110,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference.options.moderatormustapprovejoinrequests",{"_index":21112,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["videoconference2",{"_index":20889,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconference:31",{"_index":21066,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:34",{"_index":21067,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconference:6",{"_index":21065,"title":{},"body":{"classes/VideoConferenceInfo.html":{}}}],["videoconferenceapimodule",{"_index":17776,"title":{"modules/VideoConferenceApiModule.html":{}},"body":{"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules.html":{}}}],["videoconferencebaseresponse",{"_index":7872,"title":{"classes/VideoConferenceBaseResponse.html":{}},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencebaseresponse:10",{"_index":7879,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:12",{"_index":7877,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferencebaseresponse:8",{"_index":7880,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{}}}],["videoconferenceconfiguration",{"_index":20879,"title":{"classes/VideoConferenceConfiguration.html":{}},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.bbb",{"_index":20885,"title":{},"body":{"classes/VideoConferenceConfiguration.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferenceconfiguration.videoconference",{"_index":21157,"title":{},"body":{"modules/VideoConferenceModule.html":{}}}],["videoconferencecontroller",{"_index":20874,"title":{"controllers/VideoConferenceController.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencecreateparams",{"_index":20909,"title":{"classes/VideoConferenceCreateParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceCreateParams.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencecreateuc",{"_index":20870,"title":{"injectables/VideoConferenceCreateUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{}}}],["videoconferencedeprecatedcontroller",{"_index":21015,"title":{"controllers/VideoConferenceDeprecatedController.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedeprecateduc",{"_index":21029,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"modules/VideoConferenceModule.html":{}}}],["videoconferencedo",{"_index":21002,"title":{"classes/VideoConferenceDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferenceenduc",{"_index":20871,"title":{"injectables/VideoConferenceEndUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceEndUc.html":{}}}],["videoconferenceinfo",{"_index":20916,"title":{"classes/VideoConferenceInfo.html":{}},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferenceinforesponse",{"_index":20918,"title":{"classes/VideoConferenceInfoResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferenceinforesponse})@apiresponse({status",{"_index":20900,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferenceinfouc",{"_index":20872,"title":{"injectables/VideoConferenceInfoUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceInfoUc.html":{}}}],["videoconferencejoin",{"_index":20917,"title":{"classes/VideoConferenceJoin.html":{}},"body":{"controllers/VideoConferenceController.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencejoin.url",{"_index":21146,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse",{"_index":20919,"title":{"classes/VideoConferenceJoinResponse.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceJoinResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencejoinresponse})@apiresponse({status",{"_index":20906,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencejoinuc",{"_index":20873,"title":{"injectables/VideoConferenceJoinUc.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceJoinUc.html":{}}}],["videoconferencemapper",{"_index":20913,"title":{"classes/VideoConferenceMapper.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemapper.tovideoconferenceinforesponse(dto",{"_index":20937,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencejoinresponse(dto",{"_index":20934,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferenceoptions(params",{"_index":20930,"title":{},"body":{"controllers/VideoConferenceController.html":{}}}],["videoconferencemapper.tovideoconferencestateresponse(from.state",{"_index":21213,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferencemodule",{"_index":20869,"title":{"modules/VideoConferenceModule.html":{}},"body":{"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{},"modules.html":{}}}],["videoconferenceoptions",{"_index":20838,"title":{"classes/VideoConferenceOptions.html":{}},"body":{"entities/VideoConference.html":{},"controllers/VideoConferenceController.html":{},"injectables/VideoConferenceCreateUc.html":{},"classes/VideoConferenceInfo.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptions.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferenceoptionsdo",{"_index":21006,"title":{"classes/VideoConferenceOptionsDO.html":{}},"body":{"classes/VideoConferenceDO.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferenceoptionsdo(options",{"_index":21315,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["videoconferenceoptionsresponse",{"_index":21074,"title":{"classes/VideoConferenceOptionsResponse.html":{}},"body":{"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsResponse.html":{}}}],["videoconferenceoptionsresponse(videoconferenceinfo.options",{"_index":21145,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencerepo",{"_index":21152,"title":{"injectables/VideoConferenceRepo.html":{}},"body":{"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferenceresponsedeprecatedmapper",{"_index":21027,"title":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptobaseresponse(dto",{"_index":21051,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptoinforesponse(dto",{"_index":21048,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsedeprecatedmapper.maptojoinresponse(dto",{"_index":21046,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferenceresponsemapper",{"_index":21204,"title":{},"body":{"classes/VideoConferenceResponseDeprecatedMapper.html":{}}}],["videoconferences",{"_index":20852,"title":{},"body":{"entities/VideoConference.html":{},"classes/VideoConferenceOptions.html":{}}}],["videoconferencescope",{"_index":17739,"title":{},"body":{"classes/ScopeRef.html":{},"classes/VideoConferenceDO.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"classes/VideoConferenceMapper.html":{},"classes/VideoConferenceOptionsDO.html":{},"injectables/VideoConferenceRepo.html":{},"classes/VideoConferenceScopeParams.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencescope'})@isenum(videoconferencescope",{"_index":21218,"title":{},"body":{"classes/VideoConferenceScopeParams.html":{}}}],["videoconferencescope.course",{"_index":21137,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencescope.event",{"_index":21138,"title":{},"body":{"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceRepo.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencescopeparams",{"_index":20892,"title":{"classes/VideoConferenceScopeParams.html":{}},"body":{"controllers/VideoConferenceController.html":{},"classes/VideoConferenceScopeParams.html":{}}}],["videoconferenceservice",{"_index":20966,"title":{"injectables/VideoConferenceService.html":{}},"body":{"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencesettings",{"_index":12122,"title":{},"body":{"interfaces/IVideoConferenceSettings.html":{},"modules/VideoConferenceModule.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencestate",{"_index":20859,"title":{},"body":{"classes/VideoConference-1.html":{},"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceEndUc.html":{},"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceJoin.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencestate.finished",{"_index":21062,"title":{},"body":{"injectables/VideoConferenceEndUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestate.not_started",{"_index":21086,"title":{},"body":{"injectables/VideoConferenceInfoUc.html":{},"classes/VideoConferenceMapper.html":{},"injectables/VideoConferenceService.html":{}}}],["videoconferencestate.running",{"_index":21040,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{},"injectables/VideoConferenceInfoUc.html":{},"injectables/VideoConferenceJoinUc.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse",{"_index":7878,"title":{},"body":{"classes/DeprecatedVideoConferenceInfoResponse.html":{},"classes/DeprecatedVideoConferenceJoinResponse.html":{},"classes/VideoConferenceBaseResponse.html":{},"classes/VideoConferenceInfoResponse.html":{},"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.finished",{"_index":21143,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.not_started",{"_index":21141,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferencestateresponse.running",{"_index":21142,"title":{},"body":{"classes/VideoConferenceMapper.html":{}}}],["videoconferenceuc",{"_index":21033,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["videoconferencingscopemapping",{"_index":21189,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videoconferencingscopemapping[entity.targetmodel",{"_index":21194,"title":{},"body":{"injectables/VideoConferenceRepo.html":{}}}],["videocount",{"_index":2269,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["view",{"_index":14815,"title":{},"body":{"injectables/NewsUc.html":{},"license.html":{}}}],["viewer",{"_index":2219,"title":{},"body":{"classes/BBBJoinConfig.html":{}}}],["viewers",{"_index":6734,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{}}}],["violates",{"_index":21995,"title":{},"body":{"license.html":{}}}],["violation",{"_index":22046,"title":{},"body":{"license.html":{}}}],["virtuals",{"_index":21429,"title":{},"body":{"dependencies.html":{}}}],["virus",{"_index":9827,"title":{},"body":{"classes/FileRecordMapper.html":{}}}],["virus_detected",{"_index":6133,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["virus_signature",{"_index":6134,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"classes/PreviewParams.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["visibilities",{"_index":22294,"title":{},"body":{"todo.html":{}}}],["visibility",{"_index":4109,"title":{},"body":{"classes/CardResponse.html":{},"classes/PatchVisibilityParams.html":{},"injectables/RoomsUc.html":{}}}],["visibility.params.ts",{"_index":16100,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibility.params.ts:12",{"_index":16101,"title":{},"body":{"classes/PatchVisibilityParams.html":{}}}],["visibilitysettings",{"_index":4099,"title":{},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{}}}],["visibilitysettingsresponse",{"_index":4106,"title":{"classes/VisibilitySettingsResponse.html":{}},"body":{"classes/CardResponse.html":{},"classes/CardResponseMapper.html":{},"classes/VisibilitySettingsResponse.html":{}}}],["visible",{"_index":6733,"title":{},"body":{"entities/CourseNews.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardResponse.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TeamNews.html":{},"license.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["visibletools",{"_index":8377,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visibletools.filter",{"_index":8381,"title":{},"body":{"injectables/ExternalToolConfigurationService.html":{}}}],["visitcard",{"_index":2848,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcard(card",{"_index":2855,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcardasync",{"_index":2891,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcardasync(card",{"_index":2886,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildren",{"_index":16544,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildren(parent",{"_index":16553,"title":{},"body":{"classes/RecursiveSaveVisitor.html":{}}}],["visitchildrenasync",{"_index":16508,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitchildrenasync(domainobject",{"_index":16513,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumn",{"_index":2849,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumn(column",{"_index":2858,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnasync",{"_index":2892,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnasync(column",{"_index":2885,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboard",{"_index":2850,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboard(columnboard",{"_index":2860,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitcolumnboardasync",{"_index":2893,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitcolumnboardasync(columnboard",{"_index":2884,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelement",{"_index":2851,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelement(fileelement",{"_index":2863,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitfileelementasync",{"_index":2894,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitfileelementasync(fileelement",{"_index":2887,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitor",{"_index":2804,"title":{},"body":{"classes/BoardComposite.html":{},"classes/Card.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/FileElement.html":{},"classes/RichTextElement.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionItem.html":{}}}],["visitor.ts",{"_index":2847,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:10",{"_index":2862,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:11",{"_index":2859,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:12",{"_index":2857,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:13",{"_index":2865,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:14",{"_index":2868,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:15",{"_index":2871,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:16",{"_index":2874,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{}}}],["visitor.ts:20",{"_index":2900,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:21",{"_index":2899,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:22",{"_index":2898,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:23",{"_index":2901,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:24",{"_index":2902,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:25",{"_index":2903,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.ts:26",{"_index":2904,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitor.visitcard(this",{"_index":4001,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcardasync(this",{"_index":4002,"title":{},"body":{"classes/Card.html":{},"interfaces/CardProps.html":{}}}],["visitor.visitcolumn(this",{"_index":4685,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnasync(this",{"_index":4686,"title":{},"body":{"classes/Column.html":{},"interfaces/ColumnProps.html":{}}}],["visitor.visitcolumnboard(this",{"_index":4701,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitcolumnboardasync(this",{"_index":4702,"title":{},"body":{"classes/ColumnBoard.html":{},"interfaces/ColumnBoardProps.html":{}}}],["visitor.visitfileelement(this",{"_index":9527,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitfileelementasync(this",{"_index":9528,"title":{},"body":{"classes/FileElement.html":{},"interfaces/FileElementProps.html":{}}}],["visitor.visitrichtextelement(this",{"_index":16758,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitrichtextelementasync(this",{"_index":16759,"title":{},"body":{"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{}}}],["visitor.visitsubmissioncontainerelement(this",{"_index":18234,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissioncontainerelementasync(this",{"_index":18235,"title":{},"body":{"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{}}}],["visitor.visitsubmissionitem(this",{"_index":18307,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitor.visitsubmissionitemasync(this",{"_index":18308,"title":{},"body":{"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{}}}],["visitrichtextelement",{"_index":2852,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelement(richtextelement",{"_index":2866,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitrichtextelementasync",{"_index":2895,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitrichtextelementasync(richtextelement",{"_index":2888,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelement",{"_index":2853,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelement(submissioncontainerelement",{"_index":2869,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissioncontainerelementasync",{"_index":2896,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissioncontainerelementasync(submissioncontainerelement",{"_index":2889,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitem",{"_index":2854,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submission",{"_index":5573,"title":{},"body":{"classes/ContentElementUpdateVisitor.html":{},"classes/RecursiveSaveVisitor.html":{}}}],["visitsubmissionitem(submissionitem",{"_index":2872,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visitsubmissionitemasync",{"_index":2897,"title":{},"body":{"interfaces/BoardCompositeVisitorAsync.html":{},"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(submission",{"_index":16520,"title":{},"body":{"injectables/RecursiveDeleteVisitor.html":{}}}],["visitsubmissionitemasync(submissionitem",{"_index":2890,"title":{},"body":{"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{}}}],["visual",{"_index":21635,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["vo",{"_index":11457,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["voicebridge",{"_index":2205,"title":{},"body":{"interfaces/BBBCreateResponse.html":{},"interfaces/BBBMeetingInfoResponse.html":{}}}],["voiceparticipantcount",{"_index":2270,"title":{},"body":{"interfaces/BBBMeetingInfoResponse.html":{}}}],["void",{"_index":148,"title":{},"body":{"injectables/AbstractLaunchStrategy.html":{},"classes/AccountFactory.html":{},"injectables/AccountRepo.html":{},"injectables/AccountService.html":{},"interfaces/AdminIdAndToken.html":{},"classes/ApiValidationErrorResponse.html":{},"injectables/AuthenticationService.html":{},"injectables/AuthorizationService.html":{},"injectables/BaseDORepo.html":{},"classes/BaseFactory.html":{},"injectables/BasicToolLaunchStrategy.html":{},"entities/Board.html":{},"classes/BoardComposite.html":{},"interfaces/BoardCompositeProps.html":{},"interfaces/BoardCompositeVisitor.html":{},"interfaces/BoardCompositeVisitorAsync.html":{},"classes/BoardDoAuthorizable.html":{},"classes/BoardDoBuilderImpl.html":{},"injectables/BoardManagementUc.html":{},"classes/Card.html":{},"interfaces/CardProps.html":{},"classes/Class.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"injectables/CollaborativeStorageAdapter.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"interfaces/ColumnBoardProps.html":{},"entities/ColumnBoardTarget.html":{},"interfaces/ColumnProps.html":{},"injectables/CommonToolValidationService.html":{},"injectables/ConsoleWriterService.html":{},"classes/ContentElementUpdateVisitor.html":{},"classes/ContextExternalToolFactory.html":{},"injectables/ContextExternalToolRepo.html":{},"classes/ContextExternalToolScope.html":{},"entities/Course.html":{},"injectables/CourseCopyUC.html":{},"classes/CourseFactory.html":{},"entities/CourseGroup.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseScope.html":{},"classes/CustomParameterFactory.html":{},"classes/DashboardEntity.html":{},"injectables/DashboardUc.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/ErrorLogger.html":{},"injectables/ExternalToolConfigurationService.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoService.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolScope.html":{},"injectables/ExternalToolValidationService.html":{},"injectables/ExternalToolVersionService.html":{},"classes/FileElement.html":{},"interfaces/FileElementProps.html":{},"entities/FileEntity.html":{},"interfaces/FileEntityProps.html":{},"entities/FileRecord.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordScope.html":{},"classes/FileRecordSecurityCheck.html":{},"injectables/FilesStorageProducer.html":{},"classes/GlobalErrorFilter.html":{},"classes/GridElement.html":{},"injectables/HydraSsoService.html":{},"interfaces/ICourseGroupProperties.html":{},"interfaces/ICourseProperties.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IGridElement.html":{},"interfaces/ILearnroom.html":{},"interfaces/ILearnroomElement.html":{},"interfaces/ILegacyLogger.html":{},"interfaces/IParentInfo.html":{},"interfaces/ITaskParent.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserScope.html":{},"injectables/KeycloakAdministrationService.html":{},"classes/KeycloakConsole.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"injectables/LegacySchoolRepo.html":{},"injectables/LessonCopyUC.html":{},"classes/LessonFactory.html":{},"classes/LessonScope.html":{},"injectables/Logger.html":{},"injectables/Lti11ToolLaunchStrategy.html":{},"classes/LtiToolFactory.html":{},"injectables/LtiToolRepo.html":{},"classes/MaterialFactory.html":{},"classes/NewsScope.html":{},"injectables/OAuth2ToolLaunchStrategy.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"controllers/OauthSSOController.html":{},"injectables/PreviewService.html":{},"classes/PrometheusMetricsConfig.html":{},"injectables/ProvisioningService.html":{},"injectables/RecursiveDeleteVisitor.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/RichTextElementProps.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"injectables/S3ClientAdapter.html":{},"injectables/SanisProvisioningStrategy.html":{},"classes/SchoolExternalToolFactory.html":{},"injectables/SchoolExternalToolRepo.html":{},"classes/SchoolExternalToolScope.html":{},"injectables/SchoolExternalToolValidationService.html":{},"injectables/SchoolMigrationService.html":{},"classes/Scope.html":{},"classes/ServerConsole.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"injectables/ShareTokenRepo.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/SubmissionContainerElement.html":{},"interfaces/SubmissionContainerElementProps.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"interfaces/SubmissionItemProps.html":{},"classes/SystemFactory.html":{},"classes/SystemScope.html":{},"entities/Task.html":{},"injectables/TaskCopyUC.html":{},"classes/TaskFactory.html":{},"classes/TaskScope.html":{},"classes/TaskWithStatusVo.html":{},"classes/TeamFactory.html":{},"classes/TeamUserEntity.html":{},"classes/TeamUserFactory.html":{},"injectables/ToolLaunchService.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"injectables/UserLoginMigrationRepo.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"injectables/UserUc.html":{},"injectables/VideoConferenceCreateUc.html":{},"injectables/VideoConferenceRepo.html":{},"license.html":{}}}],["volume",{"_index":21901,"title":{},"body":{"license.html":{}}}],["von",{"_index":17233,"title":{},"body":{"interfaces/SanisLaufzeitResponse.html":{}}}],["vorname",{"_index":17236,"title":{},"body":{"interfaces/SanisNameResponse.html":{}}}],["vs",{"_index":12670,"title":{},"body":{"interfaces/JwtConstants.html":{},"todo.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["vscode",{"_index":21603,"title":{"additional-documentation/nestjs-application/vscode.html":{}},"body":{"index.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["vscode/extensions.json",{"_index":22880,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/lauch",{"_index":22318,"title":{},"body":{"todo.html":{}}}],["vscode/launch.default.json",{"_index":22437,"title":{},"body":{"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/vscode.html":{}}}],["vscode/settings.default.json",{"_index":22878,"title":{},"body":{"additional-documentation/nestjs-application/vscode.html":{}}}],["vue.js",{"_index":21556,"title":{},"body":{"miscellaneous/functions.html":{}}}],["wait",{"_index":1849,"title":{},"body":{"injectables/AuthenticationService.html":{}}}],["waiting",{"_index":21116,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["waitingroomenabled",{"_index":21241,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["waive",{"_index":21861,"title":{},"body":{"license.html":{}}}],["waiver",{"_index":22224,"title":{},"body":{"license.html":{}}}],["want",{"_index":4632,"title":{},"body":{"injectables/CollaborativeStorageService.html":{},"injectables/OauthProviderConsentFlowUc.html":{},"modules/RabbitMQWrapperModule.html":{},"modules/RabbitMQWrapperTestModule.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/logging.html":{},"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["warn",{"_index":11523,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["warn(message",{"_index":11534,"title":{},"body":{"interfaces/ILegacyLogger.html":{},"injectables/LegacyLogger.html":{}}}],["warning",{"_index":14025,"title":{},"body":{"injectables/Logger.html":{}}}],["warning(loggable",{"_index":14034,"title":{},"body":{"injectables/Logger.html":{}}}],["warranties",{"_index":21783,"title":{},"body":{"license.html":{}}}],["warranty",{"_index":21782,"title":{},"body":{"license.html":{}}}],["watch",{"_index":22301,"title":{},"body":{"todo.html":{}}}],["way",{"_index":3613,"title":{},"body":{"injectables/BoardNodeRepo.html":{},"injectables/LdapStrategy.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["ways",{"_index":21911,"title":{},"body":{"license.html":{}}}],["web",{"_index":5233,"title":{},"body":{"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebContentResource.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{}}}],["weblink",{"_index":5262,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["weights",{"_index":11246,"title":{},"body":{"interfaces/ICollectionFilePath.html":{}}}],["weird",{"_index":6757,"title":{},"body":{"entities/CourseNews.html":{},"interfaces/INewsProperties.html":{},"entities/News.html":{},"entities/SchoolNews.html":{},"entities/TaskBoardElement.html":{},"entities/TeamNews.html":{}}}],["welcome",{"_index":2119,"title":{},"body":{"classes/BBBCreateConfig.html":{},"classes/BBBCreateConfigBuilder.html":{}}}],["well",{"_index":21767,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["wellknownurl",{"_index":13052,"title":{},"body":{"injectables/KeycloakIdentityManagementOauthService.html":{}}}],["went",{"_index":12134,"title":{},"body":{"classes/IdTokenCreationLoggableException.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["werden",{"_index":4776,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wether",{"_index":23147,"title":{},"body":{"additional-documentation/nestjs-application/code-style.html":{}}}],["whatever",{"_index":17749,"title":{},"body":{"classes/ServerConsole.html":{},"license.html":{}}}],["whereas",{"_index":22537,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wherelastloginsystemchangeisbetween",{"_index":20104,"title":{},"body":{"injectables/UserDORepo.html":{},"classes/UserScope.html":{}}}],["wherelastloginsystemchangeisbetween(startdate",{"_index":20756,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan",{"_index":20751,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(date",{"_index":20758,"title":{},"body":{"classes/UserScope.html":{}}}],["wherelastloginsystemchangesmallerthan(query.lastloginsystemchangesmallerthan",{"_index":20103,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["wherever",{"_index":13421,"title":{},"body":{"injectables/LegacyLogger.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["whether",{"_index":6927,"title":{},"body":{"classes/CreateSubmissionItemBodyParams.html":{},"classes/ToolLaunchRequestResponse.html":{},"classes/ToolReferenceResponse.html":{},"classes/UpdateSubmissionItemBodyParams.html":{},"license.html":{}}}],["whitelist",{"_index":10539,"title":{},"body":{"classes/GlobalValidationPipe.html":{},"injectables/JwtStrategy.html":{},"injectables/JwtValidationAdapter.html":{}}}],["whitelisted",{"_index":12704,"title":{},"body":{"injectables/JwtStrategy.html":{}}}],["whitespace",{"_index":14557,"title":{},"body":{"classes/MongoPatterns.html":{}}}],["whole",{"_index":14886,"title":{},"body":{"injectables/NextcloudStrategy.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["whos",{"_index":18314,"title":{},"body":{"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{}}}],["whose",{"_index":21951,"title":{},"body":{"license.html":{}}}],["wichtige",{"_index":4768,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["widely",{"_index":21795,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["widespread",{"_index":21715,"title":{},"body":{"license.html":{}}}],["width",{"_index":6143,"title":{},"body":{"classes/CopyFileParams.html":{},"classes/CopyFilesOfParentParams.html":{},"classes/CopyFilesOfParentPayload.html":{},"classes/DownloadFileParams.html":{},"classes/FileParams.html":{},"classes/FileRecordParams.html":{},"classes/FileUrlParams.html":{},"injectables/IdTokenService.html":{},"classes/PreviewParams.html":{},"injectables/PreviewService.html":{},"classes/RenameFileParams.html":{},"classes/ScanResultParams.html":{},"classes/SingleFileParams.html":{}}}],["width=100",{"_index":5260,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["wildfly",{"_index":22964,"title":{},"body":{"additional-documentation/nestjs-application/keycloak.html":{}}}],["willkommen",{"_index":4755,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["window",{"_index":14241,"title":{},"body":{"injectables/Lti11ToolLaunchStrategy.html":{},"license.html":{},"todo.html":{}}}],["windowfeatures",{"_index":5259,"title":{},"body":{"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["windows",{"_index":22277,"title":{},"body":{"todo.html":{},"additional-documentation/nestjs-application/git.html":{}}}],["winston",{"_index":8190,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{},"modules/LoggerModule.html":{},"dependencies.html":{},"additional-documentation/nestjs-application/logging.html":{}}}],["winston.config.syslog.levels",{"_index":14049,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.combine",{"_index":14056,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.ms",{"_index":14062,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.format.timestamp",{"_index":14057,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston.transports.console",{"_index":14053,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winston_module_provider",{"_index":8189,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonlogger",{"_index":8179,"title":{},"body":{"injectables/ErrorLogger.html":{},"injectables/LegacyLogger.html":{},"injectables/Logger.html":{}}}],["winstonmodule",{"_index":14045,"title":{},"body":{"modules/LoggerModule.html":{}}}],["winstonmodule.forrootasync",{"_index":14047,"title":{},"body":{"modules/LoggerModule.html":{}}}],["wip",{"_index":21646,"title":{},"body":{"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["wipo",{"_index":21853,"title":{},"body":{"license.html":{}}}],["wir",{"_index":4763,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["wired",{"_index":22868,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wish",{"_index":21696,"title":{},"body":{"license.html":{}}}],["withbase64logo",{"_index":7171,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withbasicconfig",{"_index":8494,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withcredentials",{"_index":10966,"title":{},"body":{"injectables/HydraOauthUc.html":{}}}],["withcustomparameters",{"_index":8514,"title":{},"body":{"classes/ExternalToolFactory.html":{}}}],["withcustomparameters(number",{"_index":7168,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata",{"_index":15189,"title":{},"body":{"classes/Oauth2ToolConfigFactory.html":{}}}],["withexternaldata(oauth2params",{"_index":7133,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withguestpolicy",{"_index":2157,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withguestpolicy(guestpolicy",{"_index":2163,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withid",{"_index":17947,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["withid(id",{"_index":17948,"title":{},"body":{"classes/ShareTokenFactory.html":{}}}],["within",{"_index":3872,"title":{},"body":{"classes/BusinessError.html":{},"injectables/CommonCartridgeExportService.html":{},"injectables/ContextExternalToolValidationService.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/PatchOrderParams.html":{},"classes/RoomElementUrlParams.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["withindexes",{"_index":7703,"title":{},"body":{"controllers/DatabaseManagementController.html":{}}}],["withldapconfig",{"_index":18585,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withldapconfig(otherparams",{"_index":18588,"title":{},"body":{"classes/SystemFactory.html":{}}}],["withlogouturl",{"_index":2158,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(logouturl",{"_index":2165,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withlogouturl(options.logouturl",{"_index":20995,"title":{},"body":{"injectables/VideoConferenceCreateUc.html":{}}}],["withlti11config",{"_index":8495,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withlti11config(customparam",{"_index":7166,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withmuteonstart",{"_index":2159,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withmuteonstart(value",{"_index":2167,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withname",{"_index":8496,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withname(name",{"_index":8501,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/LtiToolFactory.html":{}}}],["withoauth2config",{"_index":8497,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{}}}],["withoauth2config(clientid",{"_index":8503,"title":{},"body":{"classes/ExternalToolEntityFactory.html":{}}}],["withoauth2config(customparam",{"_index":7164,"title":{},"body":{"classes/CustomParameterFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/Oauth2ToolConfigFactory.html":{}}}],["withoauthclientid",{"_index":14319,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthclientid(oauthclientid",{"_index":14321,"title":{},"body":{"classes/LtiToolFactory.html":{}}}],["withoauthconfig",{"_index":18586,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["withoidcconfig",{"_index":18587,"title":{},"body":{"classes/SystemFactory.html":{},"classes/SystemScope.html":{}}}],["without",{"_index":956,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BBBCreateConfigBuilder.html":{},"injectables/BBBService.html":{},"interfaces/CreateJwtPayload.html":{},"interfaces/JwtPayload.html":{},"injectables/NextcloudStrategy.html":{},"injectables/OidcProvisioningService.html":{},"injectables/TaskRepo.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/file-structure.html":{},"additional-documentation/nestjs-application/configuration.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["without/succeeds",{"_index":22272,"title":{},"body":{"todo.html":{}}}],["withoutcontext",{"_index":4707,"title":{},"body":{"classes/ColumnBoardFactory.html":{}}}],["withoutdatedsince",{"_index":20752,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(date",{"_index":20760,"title":{},"body":{"classes/UserScope.html":{}}}],["withoutdatedsince(query.outdatedsince",{"_index":20107,"title":{},"body":{"injectables/UserDORepo.html":{}}}],["withrole",{"_index":2232,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/UserFactory.html":{}}}],["withrole(role",{"_index":20190,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrole(value",{"_index":2236,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withroleanduserid",{"_index":19264,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withroleanduserid(role",{"_index":19266,"title":{},"body":{"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{}}}],["withrolebyname",{"_index":20186,"title":{},"body":{"classes/UserFactory.html":{}}}],["withrolebyname(name",{"_index":20192,"title":{},"body":{"classes/UserFactory.html":{}}}],["withroles",{"_index":20154,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withroles(roles",{"_index":20155,"title":{},"body":{"classes/UserDoFactory.html":{}}}],["withschoolexternaltoolref",{"_index":5698,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolexternaltoolref(schooltoolid",{"_index":5699,"title":{},"body":{"classes/ContextExternalToolFactory.html":{}}}],["withschoolid",{"_index":17373,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withschoolid(schoolid",{"_index":17374,"title":{},"body":{"classes/SchoolExternalToolFactory.html":{}}}],["withsystemid",{"_index":663,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withsystemid(id",{"_index":678,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withteamuser",{"_index":19265,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withteamuser(teamuser",{"_index":19268,"title":{},"body":{"classes/TeamFactory.html":{}}}],["withuser",{"_index":664,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuser(user",{"_index":680,"title":{},"body":{"classes/AccountFactory.html":{}}}],["withuserid",{"_index":2233,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{},"classes/TeamUserFactory.html":{}}}],["withuserid(currentuserid",{"_index":21108,"title":{},"body":{"injectables/VideoConferenceJoinUc.html":{}}}],["withuserid(userid",{"_index":19374,"title":{},"body":{"classes/TeamUserFactory.html":{}}}],["withuserid(value",{"_index":2238,"title":{},"body":{"classes/BBBJoinConfigBuilder.html":{}}}],["withuserids",{"_index":4325,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withuserids(userids",{"_index":4326,"title":{},"body":{"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{}}}],["withwelcome",{"_index":2160,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["withwelcome(welcome",{"_index":2169,"title":{},"body":{"classes/BBBCreateConfigBuilder.html":{}}}],["wont_check",{"_index":9716,"title":{},"body":{"entities/FileRecord.html":{},"classes/FileRecordSecurityCheck.html":{},"interfaces/ICopyFileDO.html":{},"interfaces/ICopyFilesOfParentParams.html":{},"interfaces/IFileDO.html":{},"interfaces/IFileRecordParams.html":{},"interfaces/IFileRecordProperties.html":{},"interfaces/IFileRecordSecurityCheckProperties.html":{},"interfaces/IParentInfo.html":{}}}],["word",{"_index":22683,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{}}}],["words",{"_index":11250,"title":{},"body":{"interfaces/ICollectionFilePath.html":{},"index.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["work",{"_index":960,"title":{},"body":{"injectables/AccountRepo.html":{},"classes/BaseEntity.html":{},"classes/BaseEntityWithTimestamps.html":{},"interfaces/FeathersService.html":{},"injectables/FeathersServiceProvider.html":{},"entities/SubmissionItemNode.html":{},"interfaces/SubmissionItemNodeProps.html":{},"injectables/SymetricKeyEncryptionService.html":{},"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{},"additional-documentation/nestjs-application/keycloak.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["work's",{"_index":21811,"title":{},"body":{"license.html":{}}}],["worker",{"_index":8008,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["worker.manufacture",{"_index":8009,"title":{},"body":{"classes/DtoCreator.html":{},"injectables/RoomBoardDTOFactory.html":{}}}],["working",{"_index":11593,"title":{},"body":{"interfaces/IMigrationOptions.html":{},"interfaces/IRetryOptions.html":{},"classes/KeycloakConsole.html":{},"license.html":{},"todo.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["workings",{"_index":22711,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["works",{"_index":10358,"title":{},"body":{"classes/FilterNewsParams.html":{},"injectables/NewsRepo.html":{},"miscellaneous/functions.html":{},"index.html":{},"license.html":{},"additional-documentation/nestjs-application/configuration.html":{}}}],["worldwide",{"_index":22113,"title":{},"body":{"license.html":{}}}],["wouldn't",{"_index":1920,"title":{},"body":{"injectables/AuthorizationHelper.html":{}}}],["wrap",{"_index":2684,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["wrap(dashboard).toreference",{"_index":7424,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrap(modelentity).init",{"_index":7533,"title":{},"body":{"injectables/DashboardModelMapper.html":{}}}],["wrap(props.course).toreference",{"_index":2706,"title":{},"body":{"entities/Board.html":{}}}],["wrap(props.school).toreference",{"_index":11460,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.system).toreference",{"_index":11461,"title":{},"body":{"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrap(props.user).toreference",{"_index":7431,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["wrapped",{"_index":22720,"title":{},"body":{"additional-documentation/nestjs-application/testing.html":{}}}],["wrappedreference",{"_index":2676,"title":{},"body":{"entities/Board.html":{},"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"interfaces/IDashboardModelProperties.html":{},"interfaces/IImportUserProperties.html":{},"entities/ImportUser.html":{}}}],["wrapper",{"_index":5168,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeOrganizationWrapperElement.html":{},"classes/CommonCartridgeResourceWrapperElement.html":{}}}],["writable",{"_index":7898,"title":{},"body":{"classes/DoBaseFactory.html":{}}}],["write",{"_index":1872,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{},"classes/FilePermissionEntity.html":{},"interfaces/FilePermissionEntityProps.html":{},"injectables/FileSystemAdapter.html":{},"injectables/LessonRule.html":{},"injectables/RoomsAuthorisationService.html":{},"injectables/TaskUC.html":{},"classes/TeamPermissionsBody.html":{},"classes/TeamPermissionsDto.html":{},"injectables/TeamPermissionsMapper.html":{},"additional-documentation/nestjs-application/domain-object-validation.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/git.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["write(requiredpermissions",{"_index":1877,"title":{},"body":{"classes/AuthorizationContextBuilder.html":{}}}],["write/read",{"_index":23045,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writecourseids",{"_index":19229,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses",{"_index":19226,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.includes(c",{"_index":19228,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writecourses.map((c",{"_index":19230,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writefile",{"_index":9966,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writefile(filepath",{"_index":10001,"title":{},"body":{"injectables/FileSystemAdapter.html":{}}}],["writelessons",{"_index":19235,"title":{},"body":{"injectables/TaskUC.html":{}}}],["writen",{"_index":23129,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["writer.module",{"_index":17756,"title":{},"body":{"modules/ServerConsoleModule.html":{}}}],["writer.module.ts",{"_index":5484,"title":{},"body":{"modules/ConsoleWriterModule.html":{}}}],["writer.service",{"_index":5485,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{}}}],["writer.service.ts",{"_index":5486,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer.service.ts:5",{"_index":5488,"title":{},"body":{"injectables/ConsoleWriterService.html":{}}}],["writer/console",{"_index":5483,"title":{},"body":{"modules/ConsoleWriterModule.html":{},"injectables/ConsoleWriterService.html":{},"classes/DatabaseManagementConsole.html":{},"interfaces/Options.html":{},"modules/ServerConsoleModule.html":{}}}],["writing",{"_index":22190,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/testing.html":{}}}],["written",{"_index":21918,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["wrong",{"_index":7629,"title":{},"body":{"injectables/DashboardUc.html":{},"classes/ErrorLoggable.html":{},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/InvalidOriginForLogoutUrlLoggableException.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/testing.html":{},"additional-documentation/nestjs-application/authorisation.html":{}}}],["wrongly",{"_index":23116,"title":{},"body":{"additional-documentation/nestjs-application/authorisation.html":{}}}],["www",{"_index":10904,"title":{},"body":{"injectables/HydraAdapter.html":{},"injectables/KeycloakIdentityManagementOauthService.html":{},"injectables/OauthAdapterService.html":{}}}],["wünsche",{"_index":4811,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["x",{"_index":1382,"title":{},"body":{"interfaces/AdminIdAndToken.html":{},"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"classes/DomainObjectFactory.html":{},"classes/GridElement.html":{},"injectables/HydraAdapter.html":{},"interfaces/ICalendarEvent.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"classes/RocketChatError.html":{},"interfaces/RocketChatGroupModel.html":{},"interfaces/RocketChatOptions.html":{},"miscellaneous/functions.html":{},"additional-documentation/nestjs-application/keycloak.html":{}}}],["xml",{"_index":6028,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2js",{"_index":5060,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["xml2json",{"_index":6029,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2json(xml",{"_index":6031,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object",{"_index":6025,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xml2object(xml",{"_index":6026,"title":{},"body":{"injectables/ConverterUtil.html":{}}}],["xmlbuilder",{"_index":5040,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"classes/CommonCartridgeResourceItemElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["xmlns",{"_index":5115,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xmlns:blti",{"_index":5116,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:ext",{"_index":5177,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:lticm",{"_index":5117,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:lticp",{"_index":5118,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xmlns:mnf",{"_index":5173,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:res",{"_index":5175,"title":{},"body":{"classes/CommonCartridgeManifestElement.html":{}}}],["xmlns:xsi",{"_index":5119,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xpos",{"_index":7406,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["xposition",{"_index":7439,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["xsd/imsbasiclti_v1p0",{"_index":5149,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticc_v1p0",{"_index":5148,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticm_v1p0",{"_index":5150,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/imslticp_v1p0",{"_index":5151,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd",{"_index":5153,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticc_v1p0.xsd",{"_index":5152,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticm_v1p0.xsd",{"_index":5154,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsd/lti/ltiv1p0/imslticp_v1p0.xsd",{"_index":5155,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{}}}],["xsi:schemalocation",{"_index":5122,"title":{},"body":{"classes/CommonCartridgeLtiResource.html":{},"classes/CommonCartridgeManifestElement.html":{},"classes/CommonCartridgeWebLinkResourceElement.html":{}}}],["xxxx",{"_index":22895,"title":{},"body":{"additional-documentation/nestjs-application/git.html":{}}}],["y",{"_index":7228,"title":{},"body":{"controllers/DashboardController.html":{},"classes/DashboardEntity.html":{},"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"injectables/DashboardModelMapper.html":{},"classes/DashboardResponse.html":{},"classes/GridElement.html":{},"interfaces/IGridElement.html":{},"classes/MoveElementParams.html":{},"classes/MoveElementPositionParams.html":{},"miscellaneous/functions.html":{}}}],["yagni",{"_index":22489,"title":{},"body":{"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yagni.more",{"_index":22700,"title":{},"body":{"additional-documentation/nestjs-application/domain-object-validation.html":{}}}],["year",{"_index":4230,"title":{},"body":{"classes/Class.html":{},"entities/ClassEntity.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/ClassMapper.html":{},"interfaces/ClassProps.html":{},"interfaces/IClassEntityProps.html":{},"injectables/SchoolYearRepo.html":{}}}],["year.service.ts",{"_index":17715,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:10",{"_index":17719,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["year.service.ts:6",{"_index":17718,"title":{},"body":{"injectables/SchoolYearService.html":{}}}],["years",{"_index":11738,"title":{},"body":{"interfaces/ISchoolYearProperties.html":{},"entities/SchoolYear.html":{},"license.html":{}}}],["yes",{"_index":59,"title":{},"body":{"classes/AbstractAccountService.html":{},"classes/AccountFactory.html":{},"classes/AccountSearchListResponse.html":{},"injectables/AccountValidationService.html":{},"injectables/AuthenticationService.html":{},"classes/AuthorizationError.html":{},"classes/BaseDO.html":{},"classes/BaseFactory.html":{},"classes/BoardComposite.html":{},"injectables/BoardDoRepo.html":{},"injectables/BoardDoService.html":{},"injectables/BoardNodeRepo.html":{},"injectables/BoardUc.html":{},"classes/BusinessError.html":{},"classes/Card.html":{},"injectables/CardService.html":{},"injectables/CardUc.html":{},"classes/ClassEntityFactory.html":{},"classes/ClassFactory.html":{},"classes/Column.html":{},"classes/ColumnBoard.html":{},"classes/ColumnBoardFactory.html":{},"controllers/ColumnController.html":{},"injectables/ColumnService.html":{},"classes/CommonCartridgeMetadataElement.html":{},"classes/ContextExternalToolFactory.html":{},"classes/CopyFileListResponse.html":{},"classes/CourseFactory.html":{},"classes/CourseGroupFactory.html":{},"classes/CourseMetadataListResponse.html":{},"classes/CourseMetadataResponse.html":{},"injectables/CourseRepo.html":{},"injectables/CourseUc.html":{},"classes/CurrentUserMapper.html":{},"classes/CustomParameterFactory.html":{},"classes/DoBaseFactory.html":{},"classes/DomainObjectFactory.html":{},"injectables/ElementUc.html":{},"classes/EntityNotFoundError.html":{},"classes/ErrorResponse.html":{},"classes/ErrorUtils.html":{},"classes/ExternalToolEntityFactory.html":{},"classes/ExternalToolFactory.html":{},"classes/ExternalToolLogoFetchFailedLoggableException.html":{},"injectables/ExternalToolRepo.html":{},"classes/ExternalToolSearchListResponse.html":{},"injectables/ExternalToolService.html":{},"interfaces/FeathersService.html":{},"classes/FileElement.html":{},"classes/FileRecordFactory.html":{},"classes/FileRecordListResponse.html":{},"classes/FileRecordMapper.html":{},"injectables/FileRecordRepo.html":{},"classes/FilesStorageMapper.html":{},"modules/FilesStorageTestModule.html":{},"classes/ForbiddenOperationError.html":{},"modules/FwuLearningContentsTestModule.html":{},"injectables/FwuLearningContentsUc.html":{},"modules/H5PEditorTestModule.html":{},"injectables/HydraAdapter.html":{},"injectables/HydraOauthUc.html":{},"interfaces/ILegacyLogger.html":{},"classes/IdTokenCreationLoggableException.html":{},"classes/IdentityManagementService.html":{},"controllers/ImportUserController.html":{},"classes/ImportUserFactory.html":{},"classes/ImportUserListResponse.html":{},"injectables/ImportUserRepo.html":{},"classes/JwtTestFactory.html":{},"injectables/KeycloakConfigurationService.html":{},"injectables/KeycloakConfigurationUc.html":{},"injectables/KeycloakIdentityManagementService.html":{},"classes/LdapAlreadyPersistedException.html":{},"classes/LdapConnectionError.html":{},"injectables/LegacyLogger.html":{},"classes/LegacySchoolFactory.html":{},"classes/LessonFactory.html":{},"injectables/LessonRepo.html":{},"injectables/LocalStrategy.html":{},"classes/LoggingUtils.html":{},"classes/LtiToolFactory.html":{},"modules/ManagementServerTestModule.html":{},"classes/MaterialFactory.html":{},"classes/MigrationAlreadyActivatedException.html":{},"classes/MigrationMayBeCompleted.html":{},"classes/MigrationMayNotBeCompleted.html":{},"classes/MissingSchoolNumberException.html":{},"modules/MongoMemoryDatabaseModule.html":{},"classes/NewsListResponse.html":{},"injectables/NewsRepo.html":{},"injectables/NewsUc.html":{},"classes/OAuthMigrationError.html":{},"classes/OAuthSSOError.html":{},"injectables/OAuthService.html":{},"classes/Oauth2ToolConfigFactory.html":{},"injectables/OauthProviderClientCrudUc.html":{},"classes/OauthProviderRequestMapper.html":{},"classes/OauthProviderService.html":{},"controllers/OauthSSOController.html":{},"injectables/OauthUc.html":{},"injectables/OidcProvisioningService.html":{},"classes/PaginationResponse.html":{},"injectables/PreviewService.html":{},"classes/RecursiveSaveVisitor.html":{},"classes/RichTextElement.html":{},"interfaces/Rule.html":{},"injectables/S3ClientAdapter.html":{},"classes/SchoolExternalToolFactory.html":{},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{},"classes/SchoolInMigrationError.html":{},"classes/SchoolMigrationError.html":{},"injectables/SchoolMigrationService.html":{},"modules/ServerTestModule.html":{},"classes/ShareTokenFactory.html":{},"injectables/ShareTokenService.html":{},"injectables/ShareTokenUC.html":{},"classes/StorageProviderEncryptedStringType.html":{},"classes/StringValidator.html":{},"classes/SubmissionContainerElement.html":{},"classes/SubmissionFactory.html":{},"classes/SubmissionItem.html":{},"injectables/SubmissionItemUc.html":{},"injectables/SymetricKeyEncryptionService.html":{},"classes/SystemFactory.html":{},"injectables/SystemService.html":{},"injectables/SystemUc.html":{},"classes/TaskFactory.html":{},"classes/TaskListResponse.html":{},"injectables/TaskRepo.html":{},"injectables/TaskService.html":{},"injectables/TaskUC.html":{},"classes/TeamFactory.html":{},"classes/TeamUserFactory.html":{},"classes/TestApiClient.html":{},"classes/UnauthorizedLoggableException.html":{},"injectables/UserDORepo.html":{},"classes/UserDoFactory.html":{},"classes/UserFactory.html":{},"classes/UserLoginMigrationError.html":{},"classes/UserLoginMigrationNotFoundLoggableException.html":{},"classes/UserLoginMigrationSearchListResponse.html":{},"injectables/UserLoginMigrationService.html":{},"injectables/UserLoginMigrationUc.html":{},"classes/UserMatchListResponse.html":{},"classes/UserMatchMapper.html":{},"injectables/UserMigrationService.html":{},"classes/UserNotFoundAfterProvisioningLoggableException.html":{},"injectables/UserRepo.html":{},"classes/UserScope.html":{},"injectables/UserService.html":{},"classes/ValidationError.html":{},"miscellaneous/functions.html":{}}}],["yesterday",{"_index":9798,"title":{},"body":{"classes/FileRecordFactory.html":{},"classes/TaskFactory.html":{}}}],["yet.'})@apiresponse({status",{"_index":21020,"title":{},"body":{"controllers/VideoConferenceDeprecatedController.html":{}}}],["your.config.ts",{"_index":23158,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.module.ts",{"_index":23162,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your.service.ts",{"_index":23160,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["your_s3_uniq_connection_token",{"_index":23159,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourloggable",{"_index":22650,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourloggable(userid",{"_index":22655,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["yourmodule",{"_index":23163,"title":{},"body":{"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["yourself",{"_index":22127,"title":{},"body":{"license.html":{},"additional-documentation/nestjs-application/software-architecture.html":{}}}],["yourservice",{"_index":22687,"title":{},"body":{"additional-documentation/nestjs-application/exception-handling.html":{},"additional-documentation/nestjs-application/s3clientmodule.html":{}}}],["youruc",{"_index":22651,"title":{},"body":{"additional-documentation/nestjs-application/logging.html":{}}}],["ypos",{"_index":7407,"title":{},"body":{"entities/DashboardGridElementModel.html":{},"interfaces/DashboardGridElementModelProperties.html":{},"entities/DashboardModelEntity.html":{},"injectables/DashboardModelMapper.html":{},"interfaces/IDashboardModelProperties.html":{}}}],["yposition",{"_index":7440,"title":{},"body":{"classes/DashboardGridElementResponse.html":{},"classes/DashboardGridSubElementResponse.html":{},"classes/DashboardMapper.html":{},"classes/DashboardResponse.html":{}}}],["yyyy",{"_index":14058,"title":{},"body":{"modules/LoggerModule.html":{}}}],["z",{"_index":21302,"title":{},"body":{"injectables/VideoConferenceService.html":{}}}],["z]|[0",{"_index":10453,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{}}}],["za",{"_index":10452,"title":{},"body":{"classes/GetFwuLearningContentParams.html":{},"injectables/VideoConferenceService.html":{}}}],["zip",{"_index":5059,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{},"dependencies.html":{}}}],["zipbuilder",{"_index":5041,"title":{},"body":{"classes/CommonCartridgeFileBuilder.html":{},"classes/CommonCartridgeOrganizationBuilder.html":{},"interfaces/ICommonCartridgeFileBuilder.html":{},"interfaces/ICommonCartridgeOrganizationBuilder.html":{}}}],["zoom",{"_index":442,"title":{},"body":{"modules/AccountApiModule.html":{},"modules/AccountModule.html":{},"modules/AuthenticationApiModule.html":{},"modules/AuthenticationModule.html":{},"modules/AuthorizationModule.html":{},"modules/BoardApiModule.html":{},"modules/BoardModule.html":{},"modules/CacheWrapperModule.html":{},"modules/CalendarModule.html":{},"modules/ClassModule.html":{},"modules/CollaborativeStorageAdapterModule.html":{},"modules/CollaborativeStorageModule.html":{},"modules/CommonToolModule.html":{},"modules/ConsoleWriterModule.html":{},"modules/ContextExternalToolModule.html":{},"modules/CopyHelperModule.html":{},"modules/CoreModule.html":{},"modules/DatabaseManagementModule.html":{},"modules/EncryptionModule.html":{},"modules/ErrorModule.html":{},"modules/ExternalToolModule.html":{},"modules/FeathersModule.html":{},"modules/FileSystemModule.html":{},"modules/FilesModule.html":{},"modules/FilesStorageAMQPModule.html":{},"modules/FilesStorageApiModule.html":{},"modules/FilesStorageClientModule.html":{},"modules/FilesStorageModule.html":{},"modules/FilesStorageTestModule.html":{},"modules/FwuLearningContentsModule.html":{},"modules/FwuLearningContentsTestModule.html":{},"modules/GroupApiModule.html":{},"modules/GroupModule.html":{},"modules/H5PEditorModule.html":{},"modules/H5PEditorTestModule.html":{},"modules/IdentityManagementModule.html":{},"modules/ImportUserModule.html":{},"modules/KeycloakAdministrationModule.html":{},"modules/KeycloakConfigurationModule.html":{},"modules/KeycloakModule.html":{},"modules/LearnroomApiModule.html":{},"modules/LearnroomModule.html":{},"modules/LegacySchoolApiModule.html":{},"modules/LegacySchoolModule.html":{},"modules/LessonApiModule.html":{},"modules/LessonModule.html":{},"modules/LoggerModule.html":{},"modules/LtiToolModule.html":{},"modules/ManagementModule.html":{},"modules/ManagementServerModule.html":{},"modules/ManagementServerTestModule.html":{},"modules/NewsModule.html":{},"modules/OauthApiModule.html":{},"modules/OauthModule.html":{},"modules/OauthProviderApiModule.html":{},"modules/OauthProviderModule.html":{},"modules/OauthProviderServiceModule.html":{},"modules/ProvisioningModule.html":{},"modules/PseudonymModule.html":{},"modules/RedisModule.html":{},"modules/RoleModule.html":{},"modules/SchoolExternalToolModule.html":{},"modules/ServerConsoleModule.html":{},"modules/ServerModule.html":{},"modules/ServerTestModule.html":{},"modules/SharingApiModule.html":{},"modules/SharingModule.html":{},"modules/SystemApiModule.html":{},"modules/SystemModule.html":{},"modules/TaskApiModule.html":{},"modules/TaskModule.html":{},"modules/TeamsApiModule.html":{},"modules/TeamsModule.html":{},"modules/ToolApiModule.html":{},"modules/ToolLaunchModule.html":{},"modules/ToolModule.html":{},"modules/UserApiModule.html":{},"modules/UserLoginMigrationApiModule.html":{},"modules/UserLoginMigrationModule.html":{},"modules/UserModule.html":{},"modules/VideoConferenceApiModule.html":{},"modules/VideoConferenceModule.html":{}}}],["zu",{"_index":4783,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zum",{"_index":4786,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}],["zusammengefasst",{"_index":4792,"title":{},"body":{"injectables/ColumnBoardService.html":{}}}]],"pipeline":["stemmer"]}, + "store": {"classes/AbstractAccountService.html":{"url":"classes/AbstractAccountService.html","title":"class - AbstractAccountService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AbstractAccountService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account.service.abstract.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n delete\n \n \n Abstract\n deleteByUserId\n \n \n Abstract\n findById\n \n \n Abstract\n findByUserId\n \n \n Abstract\n findByUserIdOrFail\n \n \n Abstract\n findByUsernameAndSystemId\n \n \n Abstract\n findMany\n \n \n Abstract\n findMultipleByUserId\n \n \n Abstract\n save\n \n \n Abstract\n searchByUsernameExactMatch\n \n \n Abstract\n searchByUsernamePartialMatch\n \n \n Abstract\n updateLastTriedFailedLogin\n \n \n Abstract\n updatePassword\n \n \n Abstract\n updateUsername\n \n \n Abstract\n validatePassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n delete\n \n \n \n \n \n \n \n delete(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findByUserIdOrFail\n \n \n \n \n \n \n \n findByUserIdOrFail(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findByUsernameAndSystemId\n \n \n \n \n \n \n \n findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findMany\n \n \n \n \n \n \n For migration purpose only\n \n \n \n \n \n findMany(offset?: number, limit?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n offset\n \n number\n \n\n \n Yes\n \n\n\n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findMultipleByUserId\n \n \n \n \n \n \n \n findMultipleByUserId(userIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n save\n \n \n \n \n \n \n \n save(accountDto: AccountSaveDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDto\n \n AccountSaveDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n searchByUsernameExactMatch\n \n \n \n \n \n \n \n searchByUsernameExactMatch(userName: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n searchByUsernamePartialMatch\n \n \n \n \n \n \n \n searchByUsernamePartialMatch(userName: string, skip: number, limit: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateLastTriedFailedLogin\n \n \n \n \n \n \n Used for brute force detection, but will become subject to IDM thus be removed.\n \n \n \n \n \n updateLastTriedFailedLogin(accountId: EntityId, lastTriedFailedLogin: Date)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n lastTriedFailedLogin\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updatePassword\n \n \n \n \n \n \n \n updatePassword(accountId: EntityId, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateUsername\n \n \n \n \n \n \n \n updateUsername(accountId: EntityId, username: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n validatePassword\n \n \n \n \n \n \n \n validatePassword(account: AccountDto, comparePassword: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.abstract.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n comparePassword\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Counted, EntityId } from '@shared/domain';\nimport { AccountDto, AccountSaveDto } from './dto';\n\nexport abstract class AbstractAccountService {\n\tabstract findById(id: EntityId): Promise;\n\n\tabstract findMultipleByUserId(userIds: EntityId[]): Promise;\n\n\tabstract findByUserId(userId: EntityId): Promise;\n\n\tabstract findByUserIdOrFail(userId: EntityId): Promise;\n\n\tabstract findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId): Promise;\n\n\tabstract save(accountDto: AccountSaveDto): Promise;\n\n\tabstract updateUsername(accountId: EntityId, username: string): Promise;\n\n\t/**\n\t * @deprecated Used for brute force detection, but will become subject to IDM thus be removed.\n\t */\n\tabstract updateLastTriedFailedLogin(accountId: EntityId, lastTriedFailedLogin: Date): Promise;\n\n\tabstract updatePassword(accountId: EntityId, password: string): Promise;\n\n\tabstract delete(id: EntityId): Promise;\n\n\tabstract deleteByUserId(userId: EntityId): Promise;\n\n\tabstract searchByUsernamePartialMatch(userName: string, skip: number, limit: number): Promise>;\n\n\tabstract searchByUsernameExactMatch(userName: string): Promise>;\n\n\tabstract validatePassword(account: AccountDto, comparePassword: string): Promise;\n\t/**\n\t * @deprecated For migration purpose only\n\t */\n\tabstract findMany(offset?: number, limit?: number): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AbstractLaunchStrategy.html":{"url":"injectables/AbstractLaunchStrategy.html","title":"injectable - AbstractLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AbstractLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n Private\n addProperty\n \n \n Private\n applyPropertiesToPathParams\n \n \n Public\n Abstract\n buildToolLaunchDataFromConcreteConfig\n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n Public\n Abstract\n buildToolLaunchRequestPayload\n \n \n Private\n buildUrl\n \n \n Public\n Async\n createLaunchData\n \n \n Public\n createLaunchRequest\n \n \n Public\n Abstract\n determineLaunchRequestMethod\n \n \n Private\n Async\n getParameterValue\n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, courseService: CourseService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n \n \n \n \n \n addParameters(propertyData: PropertyData[], customParameterDOs: CustomParameter[], scopes: literal type[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n customParameterDOs\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n scopes\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n addProperty\n \n \n \n \n \n \n \n addProperty(propertyData: PropertyData[], propertyName: string, value: string | undefined, customParameterLocation: CustomParameterLocation)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:246\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n propertyName\n \n string\n \n\n \n No\n \n\n\n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n customParameterLocation\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n applyPropertiesToPathParams\n \n \n \n \n \n \n \n applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n URL\n \n\n \n No\n \n\n\n \n \n pathProperties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Abstract\n buildToolLaunchDataFromConcreteConfig\n \n \n \n \n \n \n \n buildToolLaunchDataFromConcreteConfig(userId: EntityId, config: IToolLaunchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n config\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n \n \n \n \n \n buildToolLaunchDataFromExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:114\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n \n \n \n \n \n buildToolLaunchDataFromTools(data: IToolLaunchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:125\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Abstract\n buildToolLaunchRequestPayload\n \n \n \n \n \n \n \n buildToolLaunchRequestPayload(url: string, properties: PropertyData[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildUrl\n \n \n \n \n \n \n \n buildUrl(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createLaunchData\n \n \n \n \n \n \n \n createLaunchData(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n createLaunchRequest\n \n \n \n \n \n \n \n createLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Abstract\n determineLaunchRequestMethod\n \n \n \n \n \n \n \n determineLaunchRequestMethod(properties: PropertyData[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LaunchRequestMethod\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getParameterValue\n \n \n \n \n \n \n \n getParameterValue(customParameter: CustomParameter, matchingParameterEntry: CustomParameterEntry | undefined, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:204\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n matchingParameterEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n \n \n \n handleParametersToInclude(propertyData: PropertyData[], parametersToInclude: CustomParameter[], params: CustomParameterEntry[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/abstract-launch.strategy.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n parametersToInclude\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n params\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, EntityId, LegacySchoolDo } from '@shared/domain';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { URLSearchParams } from 'url';\nimport { CustomParameter, CustomParameterEntry } from '../../../common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tToolContextType,\n} from '../../../common/enum';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\nimport { ExternalTool } from '../../../external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { MissingToolParameterValueLoggableException, ParameterTypeNotImplementedLoggableException } from '../../error';\nimport { ToolLaunchMapper } from '../../mapper';\nimport { LaunchRequestMethod, PropertyData, PropertyLocation, ToolLaunchData, ToolLaunchRequest } from '../../types';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\nimport { IToolLaunchStrategy } from './tool-launch-strategy.interface';\n\n@Injectable()\nexport abstract class AbstractLaunchStrategy implements IToolLaunchStrategy {\n\tconstructor(private readonly schoolService: LegacySchoolService, private readonly courseService: CourseService) {}\n\n\tpublic async createLaunchData(userId: EntityId, data: IToolLaunchParams): Promise {\n\t\tconst launchData: ToolLaunchData = this.buildToolLaunchDataFromExternalTool(data.externalTool);\n\n\t\tconst launchDataProperties: PropertyData[] = await this.buildToolLaunchDataFromTools(data);\n\t\tconst additionalLaunchDataProperties: PropertyData[] = await this.buildToolLaunchDataFromConcreteConfig(\n\t\t\tuserId,\n\t\t\tdata\n\t\t);\n\n\t\tlaunchData.properties.push(...launchDataProperties);\n\t\tlaunchData.properties.push(...additionalLaunchDataProperties);\n\n\t\treturn launchData;\n\t}\n\n\tpublic abstract buildToolLaunchDataFromConcreteConfig(\n\t\tuserId: EntityId,\n\t\tconfig: IToolLaunchParams\n\t): Promise;\n\n\tpublic abstract buildToolLaunchRequestPayload(url: string, properties: PropertyData[]): string | null;\n\n\tpublic abstract determineLaunchRequestMethod(properties: PropertyData[]): LaunchRequestMethod;\n\n\tpublic createLaunchRequest(toolLaunchData: ToolLaunchData): ToolLaunchRequest {\n\t\tconst requestMethod: LaunchRequestMethod = this.determineLaunchRequestMethod(toolLaunchData.properties);\n\t\tconst url: string = this.buildUrl(toolLaunchData);\n\t\tconst payload: string | null = this.buildToolLaunchRequestPayload(url, toolLaunchData.properties);\n\n\t\tconst toolLaunchRequest: ToolLaunchRequest = new ToolLaunchRequest({\n\t\t\tmethod: requestMethod,\n\t\t\turl,\n\t\t\tpayload: payload ?? undefined,\n\t\t\topenNewTab: toolLaunchData.openNewTab,\n\t\t});\n\n\t\treturn toolLaunchRequest;\n\t}\n\n\tprivate buildUrl(toolLaunchDataDO: ToolLaunchData): string {\n\t\tconst { baseUrl } = toolLaunchDataDO;\n\n\t\tconst pathProperties: PropertyData[] = toolLaunchDataDO.properties.filter(\n\t\t\t(property: PropertyData) => property.location === PropertyLocation.PATH\n\t\t);\n\t\tconst queryProperties: PropertyData[] = toolLaunchDataDO.properties.filter(\n\t\t\t(property: PropertyData) => property.location === PropertyLocation.QUERY\n\t\t);\n\n\t\tconst url = new URL(baseUrl);\n\n\t\tif (pathProperties.length > 0) {\n\t\t\tthis.applyPropertiesToPathParams(url, pathProperties);\n\t\t}\n\n\t\tif (queryProperties.length > 0) {\n\t\t\tconst queryParams: URLSearchParams = new URLSearchParams();\n\t\t\tqueryProperties.forEach((property: PropertyData) => queryParams.append(property.name, property.value));\n\n\t\t\turl.search += queryParams.toString();\n\t\t}\n\n\t\treturn url.toString();\n\t}\n\n\tprivate applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[]): void {\n\t\tconst trimSlash: string = url.pathname.replace(/(^\\/)|(\\/$)/g, '');\n\t\tconst pathParams: string[] = trimSlash.split('/');\n\n\t\tconst filledPathParams: string[] = pathParams.map((param: string): string => {\n\t\t\tlet pathParam: string = param;\n\n\t\t\tif (param.startsWith(':')) {\n\t\t\t\tconst foundProperty: PropertyData | undefined = pathProperties.find(\n\t\t\t\t\t(property: PropertyData) => param === `:${property.name}`\n\t\t\t\t);\n\n\t\t\t\tif (foundProperty) {\n\t\t\t\t\tpathParam = foundProperty.value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn pathParam;\n\t\t});\n\n\t\turl.pathname = filledPathParams.join('/');\n\t}\n\n\tprivate buildToolLaunchDataFromExternalTool(externalTool: ExternalTool): ToolLaunchData {\n\t\tconst launchData = new ToolLaunchData({\n\t\t\tbaseUrl: externalTool.config.baseUrl,\n\t\t\ttype: ToolLaunchMapper.mapToToolLaunchDataType(externalTool.config.type),\n\t\t\tproperties: [],\n\t\t\topenNewTab: externalTool.openNewTab,\n\t\t});\n\n\t\treturn launchData;\n\t}\n\n\tprivate async buildToolLaunchDataFromTools(data: IToolLaunchParams): Promise {\n\t\tconst propertyData: PropertyData[] = [];\n\t\tconst { externalTool, schoolExternalTool, contextExternalTool } = data;\n\t\tconst customParameters = externalTool.parameters || [];\n\n\t\tconst scopes: { scope: CustomParameterScope; params: CustomParameterEntry[] }[] = [\n\t\t\t{ scope: CustomParameterScope.GLOBAL, params: customParameters },\n\t\t\t{ scope: CustomParameterScope.SCHOOL, params: schoolExternalTool.parameters || [] },\n\t\t\t{ scope: CustomParameterScope.CONTEXT, params: contextExternalTool.parameters || [] },\n\t\t];\n\n\t\tawait this.addParameters(propertyData, customParameters, scopes, schoolExternalTool, contextExternalTool);\n\n\t\treturn propertyData;\n\t}\n\n\tprivate async addParameters(\n\t\tpropertyData: PropertyData[],\n\t\tcustomParameterDOs: CustomParameter[],\n\t\tscopes: { scope: CustomParameterScope; params: CustomParameterEntry[] }[],\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tawait Promise.all(\n\t\t\tscopes.map(async ({ scope, params }): Promise => {\n\t\t\t\tconst parameterNames: string[] = params.map((parameter: CustomParameterEntry) => parameter.name);\n\n\t\t\t\tconst parametersToInclude: CustomParameter[] = customParameterDOs.filter(\n\t\t\t\t\t(parameter: CustomParameter) => parameter.scope === scope && parameterNames.includes(parameter.name)\n\t\t\t\t);\n\n\t\t\t\tawait this.handleParametersToInclude(\n\t\t\t\t\tpropertyData,\n\t\t\t\t\tparametersToInclude,\n\t\t\t\t\tparams,\n\t\t\t\t\tschoolExternalTool,\n\t\t\t\t\tcontextExternalTool\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate async handleParametersToInclude(\n\t\tpropertyData: PropertyData[],\n\t\tparametersToInclude: CustomParameter[],\n\t\tparams: CustomParameterEntry[],\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tconst missingParameters: CustomParameter[] = [];\n\n\t\tawait Promise.all(\n\t\t\tparametersToInclude.map(async (parameter): Promise => {\n\t\t\t\tconst matchingParameter: CustomParameterEntry | undefined = params.find(\n\t\t\t\t\t(param: CustomParameterEntry) => param.name === parameter.name\n\t\t\t\t);\n\n\t\t\t\tconst value: string | undefined = await this.getParameterValue(\n\t\t\t\t\tparameter,\n\t\t\t\t\tmatchingParameter,\n\t\t\t\t\tschoolExternalTool,\n\t\t\t\t\tcontextExternalTool\n\t\t\t\t);\n\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\tthis.addProperty(propertyData, parameter.name, value, parameter.location);\n\t\t\t\t}\n\n\t\t\t\tif (value === undefined && !parameter.isOptional) {\n\t\t\t\t\tmissingParameters.push(parameter);\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\tif (missingParameters.length > 0) {\n\t\t\tthrow new MissingToolParameterValueLoggableException(contextExternalTool, missingParameters);\n\t\t}\n\t}\n\n\tprivate async getParameterValue(\n\t\tcustomParameter: CustomParameter,\n\t\tmatchingParameterEntry: CustomParameterEntry | undefined,\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): Promise {\n\t\tswitch (customParameter.type) {\n\t\t\tcase CustomParameterType.AUTO_SCHOOLID: {\n\t\t\t\treturn schoolExternalTool.schoolId;\n\t\t\t}\n\t\t\tcase CustomParameterType.AUTO_CONTEXTID: {\n\t\t\t\treturn contextExternalTool.contextRef.id;\n\t\t\t}\n\t\t\tcase CustomParameterType.AUTO_CONTEXTNAME: {\n\t\t\t\tif (contextExternalTool.contextRef.type === ToolContextType.COURSE) {\n\t\t\t\t\tconst course: Course = await this.courseService.findById(contextExternalTool.contextRef.id);\n\n\t\t\t\t\treturn course.name;\n\t\t\t\t}\n\n\t\t\t\tthrow new ParameterTypeNotImplementedLoggableException(\n\t\t\t\t\t`${customParameter.type}/${contextExternalTool.contextRef.type as string}`\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase CustomParameterType.AUTO_SCHOOLNUMBER: {\n\t\t\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolExternalTool.schoolId);\n\n\t\t\t\treturn school.officialSchoolNumber;\n\t\t\t}\n\t\t\tcase CustomParameterType.BOOLEAN:\n\t\t\tcase CustomParameterType.NUMBER:\n\t\t\tcase CustomParameterType.STRING: {\n\t\t\t\treturn customParameter.scope === CustomParameterScope.GLOBAL\n\t\t\t\t\t? customParameter.default\n\t\t\t\t\t: matchingParameterEntry?.value;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow new ParameterTypeNotImplementedLoggableException(customParameter.type);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate addProperty(\n\t\tpropertyData: PropertyData[],\n\t\tpropertyName: string,\n\t\tvalue: string | undefined,\n\t\tcustomParameterLocation: CustomParameterLocation\n\t): void {\n\t\tconst location: PropertyLocation = ToolLaunchMapper.mapToParameterLocation(customParameterLocation);\n\n\t\tif (value) {\n\t\t\tpropertyData.push({\n\t\t\t\tname: propertyName,\n\t\t\t\tvalue,\n\t\t\t\tlocation,\n\t\t\t});\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AcceptConsentRequestBody.html":{"url":"interfaces/AcceptConsentRequestBody.html","title":"interface - AcceptConsentRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AcceptConsentRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/request/accept-consent-request.body.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n grant_access_token_audience\n \n \n \n Optional\n \n grant_scope\n \n \n \n Optional\n \n handled_at\n \n \n \n Optional\n \n remember\n \n \n \n Optional\n \n remember_for\n \n \n \n Optional\n \n session\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n grant_access_token_audience\n \n \n \n \n \n \n \n \n grant_access_token_audience: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n grant_scope\n \n \n \n \n \n \n \n \n grant_scope: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n handled_at\n \n \n \n \n \n \n \n \n handled_at: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember\n \n \n \n \n \n \n \n \n remember: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember_for\n \n \n \n \n \n \n \n \n remember_for: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n session\n \n \n \n \n \n \n \n \n session: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { IdToken } from '@src/modules/oauth-provider/interface/id-token';\n\nexport interface AcceptConsentRequestBody {\n\tgrant_access_token_audience?: string[];\n\n\tgrant_scope?: string[];\n\n\thandled_at?: string;\n\n\tremember?: boolean;\n\n\tremember_for?: number;\n\n\tsession?: {\n\t\taccess_token?: string;\n\n\t\tid_token?: IdToken;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AcceptLoginRequestBody.html":{"url":"interfaces/AcceptLoginRequestBody.html","title":"interface - AcceptLoginRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AcceptLoginRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/request/accept-login-request.body.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n acr\n \n \n \n Optional\n \n amr\n \n \n \n Optional\n \n context\n \n \n \n Optional\n \n force_subject_identifier\n \n \n \n Optional\n \n remember\n \n \n \n Optional\n \n remember_for\n \n \n \n Optional\n \n subject\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n acr\n \n \n \n \n \n \n \n \n acr: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n amr\n \n \n \n \n \n \n \n \n amr: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n context: object\n\n \n \n\n\n \n \n Type : object\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n force_subject_identifier\n \n \n \n \n \n \n \n \n force_subject_identifier: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember\n \n \n \n \n \n \n \n \n remember: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember_for\n \n \n \n \n \n \n \n \n remember_for: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n \n \n subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface AcceptLoginRequestBody {\n\tsubject?: string;\n\n\tacr?: string;\n\n\tamr?: string[];\n\n\tcontext?: object;\n\n\tforce_subject_identifier?: string;\n\n\tremember?: boolean;\n\n\tremember_for?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AcceptQuery.html":{"url":"classes/AcceptQuery.html","title":"class - AcceptQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AcceptQuery\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/accept.query.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n accept\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@StringToBoolean()@ApiPropertyOptional({description: 'Accepts the login request.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/accept.query.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsBoolean } from 'class-validator';\nimport { ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller/index';\n\nexport class AcceptQuery {\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({ description: 'Accepts the login request.', required: true, nullable: false })\n\taccept!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Account.html":{"url":"entities/Account.html","title":"entity - Account","body":"\n \n\n\n\n\n\n\n\n Entities\n Account\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/account.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n Optional\n credentialHash\n \n \n \n Optional\n expiresAt\n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n Optional\n password\n \n \n \n Optional\n systemId\n \n \n \n Optional\n token\n \n \n \n Optional\n userId\n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n credentialHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n systemId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, unique: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/account.entity.ts:12\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property, Index } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport type IdmAccountProperties = Readonly>;\n\n@Entity({ tableName: 'accounts' })\n@Index({ properties: ['userId', 'systemId'] })\nexport class Account extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Index()\n\tusername!: string;\n\n\t@Property({ nullable: true })\n\tpassword?: string;\n\n\t@Property({ nullable: true })\n\ttoken?: string;\n\n\t@Property({ nullable: true })\n\tcredentialHash?: string;\n\n\t@Property({ nullable: true, unique: false })\n\tuserId?: ObjectId;\n\n\t@Property({ nullable: true })\n\tsystemId?: ObjectId;\n\n\t@Property({ nullable: true })\n\tlasttriedFailedLogin?: Date;\n\n\t@Property({ nullable: true })\n\texpiresAt?: Date;\n\n\t@Property({ nullable: true })\n\tactivated?: boolean;\n\n\tconstructor(props: IdmAccountProperties) {\n\t\tsuper();\n\t\tthis.username = props.username;\n\t\tthis.password = props.password;\n\t\tthis.token = props.token;\n\t\tthis.credentialHash = props.credentialHash;\n\t\tthis.userId = props.userId;\n\t\tthis.systemId = props.systemId;\n\t\tthis.lasttriedFailedLogin = props.lasttriedFailedLogin;\n\t\tthis.expiresAt = props.expiresAt;\n\t\tthis.activated = props.activated;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AccountApiModule.html":{"url":"modules/AccountApiModule.html","title":"module - AccountApiModule","body":"\n \n\n\n\n\n Modules\n AccountApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AccountApiModule\n\n\n\ncluster_AccountApiModule_providers\n\n\n\ncluster_AccountApiModule_imports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nAccountApiModule\n\nAccountApiModule\n\nAccountApiModule -->\n\nAccountModule->AccountApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAccountApiModule -->\n\nLoggerModule->AccountApiModule\n\n\n\n\n\nAccountUc\n\nAccountUc\n\nAccountApiModule -->\n\nAccountUc->AccountApiModule\n\n\n\n\n\nPermissionService\n\nPermissionService\n\nAccountApiModule -->\n\nPermissionService->AccountApiModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAccountApiModule -->\n\nUserRepo->AccountApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/account/account-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n AccountUc\n \n \n PermissionService\n \n \n UserRepo\n \n \n \n \n Controllers\n \n \n AccountController\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { PermissionService } from '@shared/domain';\nimport { UserRepo } from '@shared/repo';\nimport { AccountModule } from './account.module';\nimport { AccountController } from './controller/account.controller';\nimport { AccountUc } from './uc/account.uc';\nimport { LoggerModule } from '../../core/logger/logger.module';\n\n@Module({\n\timports: [AccountModule, LoggerModule],\n\tproviders: [UserRepo, PermissionService, AccountUc],\n\tcontrollers: [AccountController],\n\texports: [],\n})\nexport class AccountApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountByIdBodyParams.html":{"url":"classes/AccountByIdBodyParams.html","title":"class - AccountByIdBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountByIdBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account-by-id.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Optional\n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()@ApiProperty({description: 'The new activation state of the user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-by-id.body.params.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsOptional()@IsString()@Matches(passwordPattern)@ApiProperty({description: 'The new password for the user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-by-id.body.params.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsEmail()@ApiProperty({description: 'The new user name for the user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-by-id.body.params.ts:15\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PrivacyProtect } from '@shared/controller';\nimport { IsBoolean, IsString, IsOptional, Matches, IsEmail } from 'class-validator';\nimport { passwordPattern } from './password-pattern';\n\nexport class AccountByIdBodyParams {\n\t@IsOptional()\n\t@IsString()\n\t@IsEmail()\n\t@ApiProperty({\n\t\tdescription: 'The new user name for the user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tusername?: string;\n\n\t@PrivacyProtect()\n\t@IsOptional()\n\t@IsString()\n\t@Matches(passwordPattern)\n\t@ApiProperty({\n\t\tdescription: 'The new password for the user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tpassword?: string;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@ApiProperty({\n\t\tdescription: 'The new activation state of the user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tactivated?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountByIdParams.html":{"url":"classes/AccountByIdParams.html","title":"class - AccountByIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountByIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account-by-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The id for the account.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-by-id.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class AccountByIdParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The id for the account.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tid!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/AccountController.html":{"url":"controllers/AccountController.html","title":"controller - AccountController","body":"\n \n\n\n\n\n\n\n Controllers\n AccountController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/account.controller.ts\n \n\n \n Prefix\n \n \n account\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteAccountById\n \n \n \n \n \n \n \n \n Async\n findAccountById\n \n \n \n \n \n \n \n \n Async\n replaceMyPassword\n \n \n \n \n \n \n \n Async\n searchAccounts\n \n \n \n \n \n \n \n \n Async\n updateAccountById\n \n \n \n \n \n \n \n \n Async\n updateMyAccount\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteAccountById\n \n \n \n \n \n \n \n deleteAccountById(currentUser: ICurrentUser, params: AccountByIdParams)\n \n \n\n \n \n Decorators : \n \n @Delete(':id')@ApiOperation({summary: 'Deletes an account with given id. Superhero role is REQUIRED.'})@ApiResponse({status: 200, type: AccountResponse, description: 'Returns deleted account.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n AccountByIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountById\n \n \n \n \n \n \n \n findAccountById(currentUser: ICurrentUser, params: AccountByIdParams)\n \n \n\n \n \n Decorators : \n \n @Get(':id')@ApiOperation({summary: 'Returns an account with given id. Superhero role is REQUIRED.'})@ApiResponse({status: 200, type: AccountResponse, description: 'Returns the account.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n AccountByIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n replaceMyPassword\n \n \n \n \n \n \n \n replaceMyPassword(currentUser: ICurrentUser, params: PatchMyPasswordParams)\n \n \n\n \n \n Decorators : \n \n @Patch('me/password')@ApiOperation({summary: 'Updates the the temporary account password for the authenticated user.'})@ApiResponse({status: 200, description: 'Updated the temporary password successfully.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid password.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account or user not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n PatchMyPasswordParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchAccounts\n \n \n \n \n \n \n \n searchAccounts(currentUser: ICurrentUser, query: AccountSearchQueryParams)\n \n \n\n \n \n Decorators : \n \n @Get()@ApiOperation({summary: 'Returns all accounts which satisfies the given criteria. For unlimited access Superhero role is REQUIRED.'})@ApiResponse({status: 200, type: AccountSearchListResponse, description: 'Returns a paged list of accounts.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'User is not a superhero or administrator.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n query\n \n AccountSearchQueryParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateAccountById\n \n \n \n \n \n \n \n updateAccountById(currentUser: ICurrentUser, params: AccountByIdParams, body: AccountByIdBodyParams)\n \n \n\n \n \n Decorators : \n \n @Patch(':id')@ApiOperation({summary: 'Updates an account with given id. Superhero role is REQUIRED.'})@ApiResponse({status: 200, type: AccountResponse, description: 'Returns updated account.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n AccountByIdParams\n \n\n \n No\n \n\n\n \n \n body\n \n AccountByIdBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateMyAccount\n \n \n \n \n \n \n \n updateMyAccount(currentUser: ICurrentUser, params: PatchMyAccountParams)\n \n \n\n \n \n Decorators : \n \n @Patch('me')@ApiOperation({summary: 'Updates an account for the authenticated user.'})@ApiResponse({status: 200, description: 'Account was successfully updated.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid password.'})@ApiResponse({status: 404, type: EntityNotFoundError, description: 'Account not found.'})\n \n \n\n \n \n Defined in apps/server/src/modules/account/controller/account.controller.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n PatchMyAccountParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, Param, Patch, Query } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { EntityNotFoundError, ForbiddenOperationError, ValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { AccountUc } from '../uc/account.uc';\nimport {\n\tAccountByIdBodyParams,\n\tAccountByIdParams,\n\tAccountResponse,\n\tAccountSearchListResponse,\n\tAccountSearchQueryParams,\n\tPatchMyAccountParams,\n\tPatchMyPasswordParams,\n} from './dto';\n\n@ApiTags('Account')\n@Authenticate('jwt')\n@Controller('account')\nexport class AccountController {\n\tconstructor(private readonly accountUc: AccountUc) {}\n\n\t@Get()\n\t@ApiOperation({\n\t\tsummary:\n\t\t\t'Returns all accounts which satisfies the given criteria. For unlimited access Superhero role is REQUIRED.',\n\t})\n\t@ApiResponse({ status: 200, type: AccountSearchListResponse, description: 'Returns a paged list of accounts.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'User is not a superhero or administrator.' })\n\tasync searchAccounts(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() query: AccountSearchQueryParams\n\t): Promise {\n\t\treturn this.accountUc.searchAccounts(currentUser, query);\n\t}\n\n\t@Get(':id')\n\t@ApiOperation({ summary: 'Returns an account with given id. Superhero role is REQUIRED.' })\n\t@ApiResponse({ status: 200, type: AccountResponse, description: 'Returns the account.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account not found.' })\n\tasync findAccountById(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: AccountByIdParams\n\t): Promise {\n\t\treturn this.accountUc.findAccountById(currentUser, params);\n\t}\n\n\t// IMPORTANT!!!\n\t// updateMyAccount has to occur before updateAccountById, because Nest.js\n\t// will always use the first path match and me will be treated as a path parameter\n\t@Patch('me')\n\t@ApiOperation({ summary: 'Updates an account for the authenticated user.' })\n\t@ApiResponse({ status: 200, description: 'Account was successfully updated.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid password.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account not found.' })\n\tasync updateMyAccount(@CurrentUser() currentUser: ICurrentUser, @Body() params: PatchMyAccountParams): Promise {\n\t\treturn this.accountUc.updateMyAccount(currentUser.userId, params);\n\t}\n\n\t@Patch(':id')\n\t@ApiOperation({ summary: 'Updates an account with given id. Superhero role is REQUIRED.' })\n\t@ApiResponse({ status: 200, type: AccountResponse, description: 'Returns updated account.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account not found.' })\n\tasync updateAccountById(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: AccountByIdParams,\n\t\t@Body() body: AccountByIdBodyParams\n\t): Promise {\n\t\treturn this.accountUc.updateAccountById(currentUser, params, body);\n\t}\n\n\t@Delete(':id')\n\t@ApiOperation({ summary: 'Deletes an account with given id. Superhero role is REQUIRED.' })\n\t@ApiResponse({ status: 200, type: AccountResponse, description: 'Returns deleted account.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'User is not a superhero.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account not found.' })\n\tasync deleteAccountById(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: AccountByIdParams\n\t): Promise {\n\t\treturn this.accountUc.deleteAccountById(currentUser, params);\n\t}\n\n\t@Patch('me/password')\n\t@ApiOperation({ summary: 'Updates the the temporary account password for the authenticated user.' })\n\t@ApiResponse({ status: 200, description: 'Updated the temporary password successfully.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid password.' })\n\t@ApiResponse({ status: 404, type: EntityNotFoundError, description: 'Account or user not found.' })\n\tasync replaceMyPassword(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() params: PatchMyPasswordParams\n\t): Promise {\n\t\treturn this.accountUc.replaceMyTemporaryPassword(currentUser.userId, params.password, params.confirmPassword);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountDto.html":{"url":"classes/AccountDto.html","title":"class - AccountDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/dto/account.dto.ts\n \n\n\n\n \n Extends\n \n \n AccountSaveDto\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n createdAt\n \n \n Readonly\n id\n \n \n Readonly\n updatedAt\n \n \n \n \n Optional\n activated\n \n \n \n \n Optional\n credentialHash\n \n \n \n \n Optional\n expiresAt\n \n \n \n Optional\n idmReferenceId\n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n Optional\n password\n \n \n \n \n Optional\n systemId\n \n \n \n \n Optional\n token\n \n \n \n \n Optional\n userId\n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AccountDto)\n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account.dto.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n AccountDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:7\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:5\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:9\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:54\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n credentialHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:34\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:50\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n idmReferenceId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:57\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:46\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsOptional()@Matches(passwordPattern)\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:26\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:42\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:30\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:38\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()\n \n \n \n \n \n Inherited from AccountSaveDto\n\n \n \n \n \n Defined in AccountSaveDto:21\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { AccountSaveDto } from './account-save.dto';\n\nexport class AccountDto extends AccountSaveDto {\n\treadonly id: EntityId;\n\n\treadonly createdAt: Date;\n\n\treadonly updatedAt: Date;\n\n\tconstructor(props: AccountDto) {\n\t\tsuper(props);\n\t\tthis.id = props.id;\n\t\tthis.createdAt = props.createdAt;\n\t\tthis.updatedAt = props.updatedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountEntityToDtoMapper.html":{"url":"classes/AccountEntityToDtoMapper.html","title":"class - AccountEntityToDtoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountEntityToDtoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-entity-to-dto.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapAccountsToDto\n \n \n Static\n mapSearchResult\n \n \n Static\n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapAccountsToDto\n \n \n \n \n \n \n \n mapAccountsToDto(accounts: Account[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-entity-to-dto.mapper.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accounts\n \n Account[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapSearchResult\n \n \n \n \n \n \n \n mapSearchResult(accountEntities: [Account[], number])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-entity-to-dto.mapper.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountEntities\n \n [Account[], number]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Counted\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToDto\n \n \n \n \n \n \n \n mapToDto(account: Account)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-entity-to-dto.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n Account\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Account, Counted } from '@shared/domain';\nimport { AccountDto } from '../services/dto/account.dto';\n\nexport class AccountEntityToDtoMapper {\n\tstatic mapToDto(account: Account): AccountDto {\n\t\treturn new AccountDto({\n\t\t\tid: account.id,\n\t\t\tcreatedAt: account.createdAt,\n\t\t\tupdatedAt: account.updatedAt,\n\t\t\tuserId: account.userId?.toString(),\n\t\t\tusername: account.username,\n\t\t\tactivated: account.activated,\n\t\t\tcredentialHash: account.credentialHash,\n\t\t\texpiresAt: account.expiresAt,\n\t\t\tlasttriedFailedLogin: account.lasttriedFailedLogin,\n\t\t\tpassword: account.password,\n\t\t\tsystemId: account.systemId?.toString(),\n\t\t\ttoken: account.token,\n\t\t});\n\t}\n\n\tstatic mapSearchResult(accountEntities: [Account[], number]): Counted {\n\t\tconst foundAccounts = accountEntities[0];\n\t\tconst accountDtos: AccountDto[] = AccountEntityToDtoMapper.mapAccountsToDto(foundAccounts);\n\t\treturn [accountDtos, accountEntities[1]];\n\t}\n\n\tstatic mapAccountsToDto(accounts: Account[]): AccountDto[] {\n\t\treturn accounts.map((accountEntity) => AccountEntityToDtoMapper.mapToDto(accountEntity));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountFactory.html":{"url":"classes/AccountFactory.html","title":"class - AccountFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/account.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withSystemId\n \n \n withUser\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withSystemId\n \n \n \n \n \n \nwithSystemId(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/account.factory.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withUser\n \n \n \n \n \n \nwithUser(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/account.factory.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Account, EntityId, IdmAccountProperties, User } from '@shared/domain';\n\nimport { ObjectId } from 'bson';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\n\nclass AccountFactory extends BaseFactory {\n\twithSystemId(id: EntityId | ObjectId): this {\n\t\tconst params: DeepPartial = { systemId: id };\n\n\t\treturn this.params(params);\n\t}\n\n\twithUser(user: User): this {\n\t\tif (!user.id) {\n\t\t\tthrow new Error('User does not have an id.');\n\t\t}\n\n\t\tconst params: DeepPartial = { userId: user.id };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const defaultTestPassword = 'DummyPasswd!1';\nexport const defaultTestPasswordHash = '$2a$10$/DsztV5o6P5piW2eWJsxw.4nHovmJGBA.QNwiTmuZ/uvUc40b.Uhu';\n// !!! important username should not be contain a space !!!\nexport const accountFactory = AccountFactory.define(Account, ({ sequence }) => {\n\treturn {\n\t\tusername: `account${sequence}`,\n\t\tpassword: defaultTestPasswordHash,\n\t\tuserId: new ObjectId(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountIdmToDtoMapper.html":{"url":"injectables/AccountIdmToDtoMapper.html","title":"injectable - AccountIdmToDtoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountIdmToDtoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-idm-to-dto.mapper.abstract.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n mapToDto\n \n \n \n \n \n \n \n mapToDto(account: IdmAccount)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-idm-to-dto.mapper.abstract.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IdmAccount\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { IdmAccount } from '@shared/domain';\nimport { AccountDto } from '../services/dto/account.dto';\n\n@Injectable()\nexport abstract class AccountIdmToDtoMapper {\n\tabstract mapToDto(account: IdmAccount): AccountDto;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountIdmToDtoMapperDb.html":{"url":"classes/AccountIdmToDtoMapperDb.html","title":"class - AccountIdmToDtoMapperDb","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountIdmToDtoMapperDb\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-idm-to-dto.mapper.db.ts\n \n\n\n\n \n Extends\n \n \n AccountIdmToDtoMapper\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapToDto\n \n \n \n \n \n \nmapToDto(account: IdmAccount)\n \n \n\n\n \n \n Inherited from AccountIdmToDtoMapper\n\n \n \n \n \n Defined in AccountIdmToDtoMapper:6\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IdmAccount\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { IdmAccount } from '@shared/domain';\nimport { AccountDto } from '../services/dto/account.dto';\nimport { AccountIdmToDtoMapper } from './account-idm-to-dto.mapper.abstract';\n\nexport class AccountIdmToDtoMapperDb extends AccountIdmToDtoMapper {\n\tmapToDto(account: IdmAccount): AccountDto {\n\t\tconst createdDate = account.createdDate ? account.createdDate : new Date();\n\t\treturn new AccountDto({\n\t\t\tid: account.attDbcAccountId ?? '',\n\t\t\tidmReferenceId: account.id,\n\t\t\tuserId: account.attDbcUserId,\n\t\t\tsystemId: account.attDbcSystemId,\n\t\t\tusername: account.username ?? '',\n\t\t\tcreatedAt: createdDate,\n\t\t\tupdatedAt: createdDate,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountIdmToDtoMapperIdm.html":{"url":"classes/AccountIdmToDtoMapperIdm.html","title":"class - AccountIdmToDtoMapperIdm","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountIdmToDtoMapperIdm\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-idm-to-dto.mapper.idm.ts\n \n\n\n\n \n Extends\n \n \n AccountIdmToDtoMapper\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapToDto\n \n \n \n \n \n \nmapToDto(account: IdmAccount)\n \n \n\n\n \n \n Inherited from AccountIdmToDtoMapper\n\n \n \n \n \n Defined in AccountIdmToDtoMapper:6\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IdmAccount\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { IdmAccount } from '@shared/domain';\nimport { AccountDto } from '../services/dto/account.dto';\nimport { AccountIdmToDtoMapper } from './account-idm-to-dto.mapper.abstract';\n\nexport class AccountIdmToDtoMapperIdm extends AccountIdmToDtoMapper {\n\tmapToDto(account: IdmAccount): AccountDto {\n\t\tconst createdDate = account.createdDate ? account.createdDate : new Date();\n\t\treturn new AccountDto({\n\t\t\tid: account.id,\n\t\t\tidmReferenceId: undefined,\n\t\t\tuserId: account.attDbcUserId,\n\t\t\tsystemId: account.attDbcSystemId,\n\t\t\tusername: account.username ?? '',\n\t\t\tcreatedAt: createdDate,\n\t\t\tupdatedAt: createdDate,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountLookupService.html":{"url":"injectables/AccountLookupService.html","title":"injectable - AccountLookupService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountLookupService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account-lookup.service.ts\n \n\n\n \n Description\n \n \n Service to convert between internal and external ids.\nThe external ids are the primary keys from the IDM (Keycloak), currently they are UUID formatted strings.\nThe internal ids are the primary keys from the mongo db, currently they are BSON object ids or their hex string representation.\nIMPORTANT: This service will not guarantee that the id is valid, it will only try to convert it.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getExternalId\n \n \n Async\n getInternalId\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(idmService: IdentityManagementService, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/account/services/account-lookup.service.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n idmService\n \n \n IdentityManagementService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getExternalId\n \n \n \n \n \n \n \n getExternalId(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account-lookup.service.ts:44\n \n \n\n\n \n \n Converts an internal id to the external id, if the id is already an external id, it will be returned as is.\nIMPORTANT: This method will not guarantee that the id is valid, it will only try to convert it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n the id the should be converted to the external id.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the converted id or null if conversion failed.\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n getInternalId\n \n \n \n \n \n \n \n getInternalId(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account-lookup.service.ts:27\n \n \n\n\n \n \n Converts an external id to the internal id, if the id is already an internal id, it will be returned as is.\nIMPORTANT: This method will not guarantee that the id is valid, it will only try to convert it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n the id the should be converted to the internal id.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the converted id or null if conversion failed.\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId } from '@shared/domain';\nimport { IdentityManagementService } from '@shared/infra/identity-management';\nimport { IServerConfig } from '@src/modules/server/server.config';\nimport { ObjectId } from 'bson';\n\n/**\n * Service to convert between internal and external ids.\n * The external ids are the primary keys from the IDM (Keycloak), currently they are UUID formatted strings.\n * The internal ids are the primary keys from the mongo db, currently they are BSON object ids or their hex string representation.\n * IMPORTANT: This service will not guarantee that the id is valid, it will only try to convert it.\n */\n@Injectable()\nexport class AccountLookupService {\n\tconstructor(\n\t\tprivate readonly idmService: IdentityManagementService,\n\t\tprivate readonly configService: ConfigService\n\t) {}\n\n\t/**\n\t * Converts an external id to the internal id, if the id is already an internal id, it will be returned as is.\n\t * IMPORTANT: This method will not guarantee that the id is valid, it will only try to convert it.\n\t * @param id the id the should be converted to the internal id.\n\t * @returns the converted id or null if conversion failed.\n\t */\n\tasync getInternalId(id: EntityId | ObjectId): Promise {\n\t\tif (id instanceof ObjectId || ObjectId.isValid(id)) {\n\t\t\treturn new ObjectId(id);\n\t\t}\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED') === true) {\n\t\t\tconst account = await this.idmService.findAccountById(id);\n\t\t\treturn new ObjectId(account.attDbcAccountId);\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Converts an internal id to the external id, if the id is already an external id, it will be returned as is.\n\t * IMPORTANT: This method will not guarantee that the id is valid, it will only try to convert it.\n\t * @param id the id the should be converted to the external id.\n\t * @returns the converted id or null if conversion failed.\n\t */\n\tasync getExternalId(id: EntityId | ObjectId): Promise {\n\t\tif (!(id instanceof ObjectId) && !ObjectId.isValid(id)) {\n\t\t\treturn id;\n\t\t}\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED') === true) {\n\t\t\tconst account = await this.idmService.findAccountByDbcAccountId(id.toString());\n\t\t\treturn account.id;\n\t\t}\n\t\treturn null;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AccountModule.html":{"url":"modules/AccountModule.html","title":"module - AccountModule","body":"\n \n\n\n\n\n Modules\n AccountModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AccountModule\n\n\n\ncluster_AccountModule_providers\n\n\n\ncluster_AccountModule_imports\n\n\n\ncluster_AccountModule_exports\n\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\n\n\nAccountModule\n\nAccountModule\n\nAccountModule -->\n\nIdentityManagementModule->AccountModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAccountModule -->\n\nLoggerModule->AccountModule\n\n\n\n\n\nAccountService \n\nAccountService \n\nAccountService -->\n\nAccountModule->AccountService \n\n\n\n\n\nAccountValidationService \n\nAccountValidationService \n\nAccountValidationService -->\n\nAccountModule->AccountValidationService \n\n\n\n\n\nAccountLookupService\n\nAccountLookupService\n\nAccountModule -->\n\nAccountLookupService->AccountModule\n\n\n\n\n\nAccountRepo\n\nAccountRepo\n\nAccountModule -->\n\nAccountRepo->AccountModule\n\n\n\n\n\nAccountService\n\nAccountService\n\nAccountModule -->\n\nAccountService->AccountModule\n\n\n\n\n\nAccountServiceDb\n\nAccountServiceDb\n\nAccountModule -->\n\nAccountServiceDb->AccountModule\n\n\n\n\n\nAccountServiceIdm\n\nAccountServiceIdm\n\nAccountModule -->\n\nAccountServiceIdm->AccountModule\n\n\n\n\n\nAccountValidationService\n\nAccountValidationService\n\nAccountModule -->\n\nAccountValidationService->AccountModule\n\n\n\n\n\nPermissionService\n\nPermissionService\n\nAccountModule -->\n\nPermissionService->AccountModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nAccountModule -->\n\nSystemRepo->AccountModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAccountModule -->\n\nUserRepo->AccountModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/account/account.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n AccountLookupService\n \n \n AccountRepo\n \n \n AccountService\n \n \n AccountServiceDb\n \n \n AccountServiceIdm\n \n \n AccountValidationService\n \n \n PermissionService\n \n \n SystemRepo\n \n \n UserRepo\n \n \n \n \n Imports\n \n \n IdentityManagementModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n AccountService\n \n \n AccountValidationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { PermissionService } from '@shared/domain';\nimport { SystemRepo, UserRepo } from '@shared/repo';\nimport { IdentityManagementModule } from '@shared/infra/identity-management';\nimport { LoggerModule } from '@src/core/logger/logger.module';\nimport { AccountRepo } from './repo/account.repo';\nimport { AccountService } from './services/account.service';\nimport { AccountValidationService } from './services/account.validation.service';\nimport { AccountServiceDb } from './services/account-db.service';\nimport { AccountServiceIdm } from './services/account-idm.service';\nimport { AccountIdmToDtoMapper, AccountIdmToDtoMapperDb, AccountIdmToDtoMapperIdm } from './mapper';\nimport { IServerConfig } from '../server/server.config';\nimport { AccountLookupService } from './services/account-lookup.service';\n\nfunction accountIdmToDtoMapperFactory(configService: ConfigService): AccountIdmToDtoMapper {\n\tif (configService.get('FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED') === true) {\n\t\treturn new AccountIdmToDtoMapperIdm();\n\t}\n\treturn new AccountIdmToDtoMapperDb();\n}\n\n@Module({\n\timports: [IdentityManagementModule, LoggerModule],\n\tproviders: [\n\t\tUserRepo,\n\t\tSystemRepo,\n\t\tPermissionService,\n\t\tAccountRepo,\n\t\tAccountServiceDb,\n\t\tAccountServiceIdm,\n\t\tAccountService,\n\t\tAccountLookupService,\n\t\tAccountValidationService,\n\t\t{\n\t\t\tprovide: AccountIdmToDtoMapper,\n\t\t\tuseFactory: accountIdmToDtoMapperFactory,\n\t\t\tinject: [ConfigService],\n\t\t},\n\t],\n\texports: [AccountService, AccountValidationService],\n})\nexport class AccountModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AccountParams.html":{"url":"interfaces/AccountParams.html","title":"interface - AccountParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AccountParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user-and-account.test.factory.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n systemId\n \n \n \n Optional\n \n username\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n systemId\n \n \n \n \n \n \n \n \n systemId: EntityId | ObjectId\n\n \n \n\n\n \n \n Type : EntityId | ObjectId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n \n \n username: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Account, EntityId, Permission, SchoolEntity, User } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport _ from 'lodash';\nimport { accountFactory } from './account.factory';\nimport { userFactory } from './user.factory';\n\ninterface UserParams {\n\tfirstName?: string;\n\tlastName?: string;\n\temail?: string;\n\tschool?: SchoolEntity;\n\texternalId?: string;\n}\n\ninterface AccountParams {\n\tusername?: string;\n\tsystemId?: EntityId | ObjectId;\n}\n\nexport interface UserAndAccountParams extends UserParams, AccountParams {}\n\nexport class UserAndAccountTestFactory {\n\tprivate static getUserParams(params: UserAndAccountParams): UserParams {\n\t\tconst userParams = _.pick(params, 'firstName', 'lastName', 'email', 'school', 'externalId');\n\t\treturn userParams;\n\t}\n\n\tprivate static buildAccount(user: User, params: UserAndAccountParams = {}): Account {\n\t\tconst accountParams = _.pick(params, 'username', 'systemId');\n\t\tconst account = accountFactory.withUser(user).build(accountParams);\n\t\treturn account;\n\t}\n\n\tpublic static buildStudent(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): {\n\t\tstudentAccount: Account;\n\t\tstudentUser: User;\n\t} {\n\t\tconst user = userFactory\n\t\t\t.asStudent(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { studentAccount: account, studentUser: user };\n\t}\n\n\tpublic static buildTeacher(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { teacherAccount: Account; teacherUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asTeacher(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { teacherAccount: account, teacherUser: user };\n\t}\n\n\tpublic static buildAdmin(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { adminAccount: Account; adminUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asAdmin(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { adminAccount: account, adminUser: user };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountRepo.html":{"url":"injectables/AccountRepo.html","title":"injectable - AccountRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/repo/account.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteById\n \n \n Async\n deleteByUserId\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdOrFail\n \n \n Async\n findByUsernameAndSystemId\n \n \n Async\n findMany\n \n \n Async\n findMultipleByUserId\n \n \n Async\n flush\n \n \n getObjectReference\n \n \n saveWithoutFlush\n \n \n Private\n Async\n searchByUsername\n \n \n Async\n searchByUsernameExactMatch\n \n \n Async\n searchByUsernamePartialMatch\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n \n deleteById(accountId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:18\n \n \n\n\n \n \n Finds an account by user id.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n userId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n the user id\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdOrFail\n \n \n \n \n \n \n \n findByUserIdOrFail(userId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUsernameAndSystemId\n \n \n \n \n \n \n \n findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMany\n \n \n \n \n \n \n For migration purpose only\n \n \n \n \n \n findMany(offset: number, limit: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n offset\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 100\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMultipleByUserId\n \n \n \n \n \n \n \n findMultipleByUserId(userIds: EntityId[] | ObjectId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n EntityId[] | ObjectId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n flush\n \n \n \n \n \n \n \n flush()\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:46\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n getObjectReference\n \n \n \n \n \n \ngetObjectReference(entityName: EntityName, id: Primary | Primary[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:35\n \n \n\n \n \n Type parameters :\n \n Entity\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityName\n \n EntityName\n \n\n \n No\n \n\n\n \n \n id\n \n Primary | Primary[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Entity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n saveWithoutFlush\n \n \n \n \n \n \nsaveWithoutFlush(account: Account)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n Account\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n searchByUsername\n \n \n \n \n \n \n \n searchByUsername(username: string, offset: number, limit: number, exactMatch: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n offset\n \n number\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n No\n \n\n\n \n \n exactMatch\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernameExactMatch\n \n \n \n \n \n \n \n searchByUsernameExactMatch(username: string, skip: number, limit: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n skip\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 1\n \n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernamePartialMatch\n \n \n \n \n \n \n \n searchByUsernamePartialMatch(username: string, skip: number, limit: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n skip\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 10\n \n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/account/repo/account.repo.ts:10\n \n \n\n \n \n\n \n\n\n \n import { AnyEntity, EntityName, Primary } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Account } from '@shared/domain/entity/account.entity';\nimport { BaseRepo } from '@shared/repo/base.repo';\n\n@Injectable()\nexport class AccountRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Account;\n\t}\n\n\t/**\n\t * Finds an account by user id.\n\t * @param userId the user id\n\t */\n\tasync findByUserId(userId: EntityId | ObjectId): Promise {\n\t\treturn this._em.findOne(Account, { userId: new ObjectId(userId) });\n\t}\n\n\tasync findMultipleByUserId(userIds: EntityId[] | ObjectId[]): Promise {\n\t\tconst objectIds = userIds.map((id: EntityId | ObjectId) => new ObjectId(id));\n\t\treturn this._em.find(Account, { userId: objectIds });\n\t}\n\n\tasync findByUserIdOrFail(userId: EntityId | ObjectId): Promise {\n\t\treturn this._em.findOneOrFail(Account, { userId: new ObjectId(userId) });\n\t}\n\n\tasync findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId): Promise {\n\t\treturn this._em.findOne(Account, { username, systemId: new ObjectId(systemId) });\n\t}\n\n\tgetObjectReference>(\n\t\tentityName: EntityName,\n\t\tid: Primary | Primary[]\n\t): Entity {\n\t\treturn this._em.getReference(entityName, id);\n\t}\n\n\tsaveWithoutFlush(account: Account): void {\n\t\tthis._em.persist(account);\n\t}\n\n\tasync flush(): Promise {\n\t\tawait this._em.flush();\n\t}\n\n\tasync searchByUsernameExactMatch(username: string, skip = 0, limit = 1): Promise {\n\t\treturn this.searchByUsername(username, skip, limit, true);\n\t}\n\n\tasync searchByUsernamePartialMatch(username: string, skip = 0, limit = 10): Promise {\n\t\treturn this.searchByUsername(username, skip, limit, false);\n\t}\n\n\tasync deleteById(accountId: EntityId | ObjectId): Promise {\n\t\tconst account = await this.findById(accountId);\n\t\treturn this.delete(account);\n\t}\n\n\tasync deleteByUserId(userId: EntityId): Promise {\n\t\tconst account = await this.findByUserId(userId);\n\t\tif (account) {\n\t\t\tawait this._em.removeAndFlush(account);\n\t\t}\n\t}\n\n\t/**\n\t * @deprecated For migration purpose only\n\t */\n\tasync findMany(offset = 0, limit = 100): Promise {\n\t\treturn this._em.find(this.entityName, {}, { offset, limit });\n\t}\n\n\tprivate async searchByUsername(\n\t\tusername: string,\n\t\toffset: number,\n\t\tlimit: number,\n\t\texactMatch: boolean\n\t): Promise {\n\t\t// escapes every character, that's not a unicode letter or number\n\t\tconst escapedUsername = username.replace(/[^(\\p{L}\\p{N})]/gu, '\\\\$&');\n\t\tconst searchUsername = exactMatch ? `^${escapedUsername}$` : escapedUsername;\n\t\treturn this._em.findAndCount(\n\t\t\tthis.entityName,\n\t\t\t{\n\t\t\t\t// NOTE: The default behavior of the MongoDB driver allows\n\t\t\t\t// to pass regular expressions directly into the where clause\n\t\t\t\t// without the need of using the $re operator, this will NOT\n\t\t\t\t// work with SQL drivers\n\t\t\t\tusername: new RegExp(searchUsername, 'i'),\n\t\t\t},\n\t\t\t{\n\t\t\t\toffset,\n\t\t\t\tlimit,\n\t\t\t\torderBy: { username: 1 },\n\t\t\t}\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountResponse.html":{"url":"classes/AccountResponse.html","title":"class - AccountResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n id\n \n \n \n Optional\n updatedAt\n \n \n \n Optional\n userId\n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: AccountResponse)\n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n AccountResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account.response.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class AccountResponse {\n\tconstructor({ id, username, userId, activated, updatedAt }: AccountResponse) {\n\t\tthis.id = id;\n\t\tthis.username = username;\n\t\tthis.userId = userId;\n\t\tthis.activated = activated;\n\t\tthis.updatedAt = updatedAt;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tusername: string;\n\n\t@ApiProperty()\n\tuserId?: string;\n\n\t@ApiProperty()\n\tactivated?: boolean;\n\n\t@ApiProperty()\n\tupdatedAt?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountResponseMapper.html":{"url":"classes/AccountResponseMapper.html","title":"class - AccountResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/mapper/account-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n Static\n mapToResponseFromEntity\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(account: AccountDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-response.mapper.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponseFromEntity\n \n \n \n \n \n \n \n mapToResponseFromEntity(account: Account)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/mapper/account-response.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n Account\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Account } from '@shared/domain';\nimport { AccountDto } from '@src/modules/account/services/dto/account.dto';\nimport { AccountResponse } from '../controller/dto';\n\nexport class AccountResponseMapper {\n\tstatic mapToResponseFromEntity(account: Account): AccountResponse {\n\t\treturn new AccountResponse({\n\t\t\tid: account.id,\n\t\t\tuserId: account.userId?.toString(),\n\t\t\tactivated: account.activated,\n\t\t\tusername: account.username,\n\t\t\tupdatedAt: account.updatedAt,\n\t\t});\n\t}\n\n\tstatic mapToResponse(account: AccountDto): AccountResponse {\n\t\treturn new AccountResponse({\n\t\t\tid: account.id,\n\t\t\tuserId: account.userId,\n\t\t\tactivated: account.activated,\n\t\t\tusername: account.username,\n\t\t\tupdatedAt: account.updatedAt,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountSaveDto.html":{"url":"classes/AccountSaveDto.html","title":"class - AccountSaveDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountSaveDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/dto/account-save.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n Readonly\n Optional\n createdAt\n \n \n \n \n Optional\n credentialHash\n \n \n \n \n Optional\n expiresAt\n \n \n \n \n Readonly\n Optional\n id\n \n \n \n Optional\n idmReferenceId\n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n Optional\n password\n \n \n \n \n Optional\n systemId\n \n \n \n \n Optional\n token\n \n \n \n \n Readonly\n Optional\n updatedAt\n \n \n \n \n Optional\n userId\n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AccountSaveDto)\n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:57\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n AccountSaveDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n activated\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n credentialHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n idmReferenceId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n lasttriedFailedLogin\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsOptional()@Matches(passwordPattern)\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/account/services/dto/account-save.dto.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PrivacyProtect } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { IsBoolean, IsDate, IsMongoId, IsNotEmpty, IsOptional, IsString, Matches } from 'class-validator';\nimport { passwordPattern } from '../../controller/dto/password-pattern';\n\nexport class AccountSaveDto {\n\t@IsOptional()\n\t@IsMongoId()\n\treadonly id?: EntityId;\n\n\t@IsOptional()\n\t@IsDate()\n\treadonly createdAt?: Date;\n\n\t@IsOptional()\n\t@IsDate()\n\treadonly updatedAt?: Date;\n\n\t@IsString()\n\t@IsNotEmpty()\n\tusername: string;\n\n\t@PrivacyProtect()\n\t@IsOptional()\n\t@Matches(passwordPattern)\n\tpassword?: string;\n\n\t@IsOptional()\n\t@IsString()\n\ttoken?: string;\n\n\t@IsOptional()\n\t@IsString()\n\tcredentialHash?: string;\n\n\t@IsOptional()\n\t@IsMongoId()\n\tuserId?: EntityId;\n\n\t@IsOptional()\n\t@IsMongoId()\n\tsystemId?: EntityId;\n\n\t@IsOptional()\n\t@IsDate()\n\tlasttriedFailedLogin?: Date;\n\n\t@IsOptional()\n\t@IsDate()\n\texpiresAt?: Date;\n\n\t@IsOptional()\n\t@IsBoolean()\n\tactivated?: boolean;\n\n\t@IsOptional()\n\tidmReferenceId?: string;\n\n\tconstructor(props: AccountSaveDto) {\n\t\tthis.id = props.id;\n\t\tthis.createdAt = props.createdAt;\n\t\tthis.updatedAt = props.updatedAt;\n\t\tthis.username = props.username;\n\t\tthis.password = props.password;\n\t\tthis.token = props.token;\n\t\tthis.credentialHash = props.credentialHash;\n\t\tthis.userId = props.userId;\n\t\tthis.systemId = props.systemId;\n\t\tthis.lasttriedFailedLogin = props.lasttriedFailedLogin;\n\t\tthis.expiresAt = props.expiresAt;\n\t\tthis.activated = props.activated;\n\t\tthis.idmReferenceId = props.idmReferenceId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountSearchListResponse.html":{"url":"classes/AccountSearchListResponse.html","title":"class - AccountSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account-search-list.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: AccountResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-search-list.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n AccountResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : AccountResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { AccountResponse } from './account.response';\n\nexport class AccountSearchListResponse extends PaginationResponse {\n\tconstructor(data: AccountResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [AccountResponse] })\n\tdata: AccountResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AccountSearchQueryParams.html":{"url":"classes/AccountSearchQueryParams.html","title":"class - AccountSearchQueryParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AccountSearchQueryParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/account-search.query.params.ts\n \n\n\n\n \n Extends\n \n \n PaginationParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n type\n \n \n \n \n value\n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n Optional\n skip\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : AccountSearchType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(AccountSearchType)@ApiProperty({description: 'The search criteria.', enum: AccountSearchType, required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-search.query.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The search value.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/account-search.query.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 10\n \n \n \n \n Decorators : \n \n \n @IsInt()@Min(1)@Max(100)@ApiPropertyOptional({description: 'Page limit, defaults to 10.', minimum: 1, maximum: 99})\n \n \n \n \n \n Inherited from PaginationParams\n\n \n \n \n \n Defined in PaginationParams:14\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 0\n \n \n \n \n Decorators : \n \n \n @IsInt()@Min(0)@ApiPropertyOptional({description: 'Number of elements (not pages) to be skipped'})\n \n \n \n \n \n Inherited from PaginationParams\n\n \n \n \n \n Defined in PaginationParams:8\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsEnum, IsString } from 'class-validator';\nimport { PaginationParams } from '@shared/controller';\nimport { AccountSearchType } from './account-search-type';\n\nexport class AccountSearchQueryParams extends PaginationParams {\n\t@IsEnum(AccountSearchType)\n\t@ApiProperty({\n\t\tdescription: 'The search criteria.',\n\t\tenum: AccountSearchType,\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttype!: AccountSearchType;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The search value.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tvalue!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountService.html":{"url":"injectables/AccountService.html","title":"injectable - AccountService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account.service.ts\n \n\n\n\n \n Extends\n \n \n AbstractAccountService\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n accountImpl\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n deleteByUserId\n \n \n Private\n Async\n executeIdmMethod\n \n \n Async\n findById\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdOrFail\n \n \n Async\n findByUsernameAndSystemId\n \n \n Async\n findMany\n \n \n Async\n findMultipleByUserId\n \n \n Async\n save\n \n \n Async\n saveWithValidation\n \n \n Async\n searchByUsernameExactMatch\n \n \n Async\n searchByUsernamePartialMatch\n \n \n Async\n updateLastTriedFailedLogin\n \n \n Async\n updatePassword\n \n \n Async\n updateUsername\n \n \n Async\n validatePassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(accountDb: AccountServiceDb, accountIdm: AccountServiceIdm, configService: ConfigService, accountValidationService: AccountValidationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/account/services/account.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDb\n \n \n AccountServiceDb\n \n \n \n No\n \n \n \n \n accountIdm\n \n \n AccountServiceIdm\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n accountValidationService\n \n \n AccountValidationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(accountId: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:151\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:160\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n executeIdmMethod\n \n \n \n \n \n \n \n executeIdmMethod(idmCallback: () => void)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.ts:176\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idmCallback\n \n function\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:43\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdOrFail\n \n \n \n \n \n \n \n findByUserIdOrFail(userId: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:47\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUsernameAndSystemId\n \n \n \n \n \n \n \n findByUsernameAndSystemId(username: string, systemId: string | ObjectId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:51\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMany\n \n \n \n \n \n \n For migration purpose only\n \n \n \n \n \n findMany(offset: number, limit: number)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:172\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n offset\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 100\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMultipleByUserId\n \n \n \n \n \n \n \n findMultipleByUserId(userIds: string[])\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(accountDto: AccountSaveDto)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDto\n \n AccountSaveDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveWithValidation\n \n \n \n \n \n \n \n saveWithValidation(dto: AccountSaveDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.service.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n AccountSaveDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernameExactMatch\n \n \n \n \n \n \n \n searchByUsernameExactMatch(userName: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:59\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernamePartialMatch\n \n \n \n \n \n \n \n searchByUsernamePartialMatch(userName: string, skip: number, limit: number)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:55\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateLastTriedFailedLogin\n \n \n \n \n \n \n \n updateLastTriedFailedLogin(accountId: string, lastTriedFailedLogin: Date)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:125\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n lastTriedFailedLogin\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updatePassword\n \n \n \n \n \n \n \n updatePassword(accountId: string, password: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:136\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateUsername\n \n \n \n \n \n \n \n updateUsername(accountId: string, username: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:114\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validatePassword\n \n \n \n \n \n \n \n validatePassword(account: AccountDto, comparePassword: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:147\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n comparePassword\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n accountImpl\n \n \n \n \n \n \n Type : AbstractAccountService\n\n \n \n \n \n Defined in apps/server/src/modules/account/services/account.service.ts:17\n \n \n\n\n \n \n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { ValidationError } from '@shared/common';\nimport { Counted } from '@shared/domain';\nimport { isEmail, validateOrReject } from 'class-validator';\nimport { LegacyLogger } from '../../../core/logger';\nimport { IServerConfig } from '../../server/server.config';\nimport { AccountServiceDb } from './account-db.service';\nimport { AccountServiceIdm } from './account-idm.service';\nimport { AbstractAccountService } from './account.service.abstract';\nimport { AccountValidationService } from './account.validation.service';\nimport { AccountDto, AccountSaveDto } from './dto';\n\n@Injectable()\nexport class AccountService extends AbstractAccountService {\n\tprivate readonly accountImpl: AbstractAccountService;\n\n\tconstructor(\n\t\tprivate readonly accountDb: AccountServiceDb,\n\t\tprivate readonly accountIdm: AccountServiceIdm,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly accountValidationService: AccountValidationService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tsuper();\n\t\tthis.logger.setContext(AccountService.name);\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED') === true) {\n\t\t\tthis.accountImpl = accountIdm;\n\t\t} else {\n\t\t\tthis.accountImpl = accountDb;\n\t\t}\n\t}\n\n\tasync findById(id: string): Promise {\n\t\treturn this.accountImpl.findById(id);\n\t}\n\n\tasync findMultipleByUserId(userIds: string[]): Promise {\n\t\treturn this.accountImpl.findMultipleByUserId(userIds);\n\t}\n\n\tasync findByUserId(userId: string): Promise {\n\t\treturn this.accountImpl.findByUserId(userId);\n\t}\n\n\tasync findByUserIdOrFail(userId: string): Promise {\n\t\treturn this.accountImpl.findByUserIdOrFail(userId);\n\t}\n\n\tasync findByUsernameAndSystemId(username: string, systemId: string | ObjectId): Promise {\n\t\treturn this.accountImpl.findByUsernameAndSystemId(username, systemId);\n\t}\n\n\tasync searchByUsernamePartialMatch(userName: string, skip: number, limit: number): Promise> {\n\t\treturn this.accountImpl.searchByUsernamePartialMatch(userName, skip, limit);\n\t}\n\n\tasync searchByUsernameExactMatch(userName: string): Promise> {\n\t\treturn this.accountImpl.searchByUsernameExactMatch(userName);\n\t}\n\n\tasync save(accountDto: AccountSaveDto): Promise {\n\t\tconst ret = await this.accountDb.save(accountDto);\n\t\tconst newAccount: AccountSaveDto = {\n\t\t\t...accountDto,\n\t\t\tid: accountDto.id,\n\t\t\tidmReferenceId: ret.id,\n\t\t\tpassword: accountDto.password,\n\t\t};\n\t\tconst idmAccount = await this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Saving account with accountID ${ret.id} ...`);\n\t\t\tconst account = await this.accountIdm.save(newAccount);\n\t\t\tthis.logger.debug(`Saved account with accountID ${ret.id}`);\n\t\t\treturn account;\n\t\t});\n\t\treturn { ...ret, idmReferenceId: idmAccount?.idmReferenceId };\n\t}\n\n\tasync saveWithValidation(dto: AccountSaveDto): Promise {\n\t\tawait validateOrReject(dto);\n\t\t// sanatizeUsername ✔\n\t\tif (!dto.systemId) {\n\t\t\tdto.username = dto.username.trim().toLowerCase();\n\t\t}\n\t\tif (!dto.systemId && !dto.password) {\n\t\t\tthrow new ValidationError('No password provided');\n\t\t}\n\t\t// validateUserName ✔\n\t\t// usernames must be an email address, if they are not from an external system\n\t\tif (!dto.systemId && !isEmail(dto.username)) {\n\t\t\tthrow new ValidationError('Username is not an email');\n\t\t}\n\t\t// checkExistence ✔\n\t\tif (dto.userId && (await this.findByUserId(dto.userId))) {\n\t\t\tthrow new ValidationError('Account already exists');\n\t\t}\n\t\t// validateCredentials hook will not be ported ✔\n\t\t// trimPassword hook will be done by class-validator ✔\n\t\t// local.hooks.hashPassword('password'), will be done by account service ✔\n\t\t// checkUnique ✔\n\t\tif (!(await this.accountValidationService.isUniqueEmail(dto.username, dto.userId, dto.id, dto.systemId))) {\n\t\t\tthrow new ValidationError('Username already exists');\n\t\t}\n\t\t// removePassword hook is not implemented\n\t\t// const noPasswordStrategies = ['ldap', 'moodle', 'iserv'];\n\t\t// if (dto.passwordStrategy && noPasswordStrategies.includes(dto.passwordStrategy)) {\n\t\t// \tdto.password = undefined;\n\t\t// }\n\n\t\tawait this.save(dto);\n\t}\n\n\tasync updateUsername(accountId: string, username: string): Promise {\n\t\tconst ret = await this.accountDb.updateUsername(accountId, username);\n\t\tconst idmAccount = await this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Updating username for account with accountID ${accountId} ...`);\n\t\t\tconst account = await this.accountIdm.updateUsername(accountId, username);\n\t\t\tthis.logger.debug(`Updated username for account with accountID ${accountId}`);\n\t\t\treturn account;\n\t\t});\n\t\treturn { ...ret, idmReferenceId: idmAccount?.idmReferenceId };\n\t}\n\n\tasync updateLastTriedFailedLogin(accountId: string, lastTriedFailedLogin: Date): Promise {\n\t\tconst ret = await this.accountDb.updateLastTriedFailedLogin(accountId, lastTriedFailedLogin);\n\t\tconst idmAccount = await this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Updating last tried failed login for account with accountID ${accountId} ...`);\n\t\t\tconst account = await this.accountIdm.updateLastTriedFailedLogin(accountId, lastTriedFailedLogin);\n\t\t\tthis.logger.debug(`Updated last tried failed login for account with accountID ${accountId}`);\n\t\t\treturn account;\n\t\t});\n\t\treturn { ...ret, idmReferenceId: idmAccount?.idmReferenceId };\n\t}\n\n\tasync updatePassword(accountId: string, password: string): Promise {\n\t\tconst ret = await this.accountDb.updatePassword(accountId, password);\n\t\tconst idmAccount = await this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Updating password for account with accountID ${accountId} ...`);\n\t\t\tconst account = await this.accountIdm.updatePassword(accountId, password);\n\t\t\tthis.logger.debug(`Updated password for account with accountID ${accountId}`);\n\t\t\treturn account;\n\t\t});\n\t\treturn { ...ret, idmReferenceId: idmAccount?.idmReferenceId };\n\t}\n\n\tasync validatePassword(account: AccountDto, comparePassword: string): Promise {\n\t\treturn this.accountImpl.validatePassword(account, comparePassword);\n\t}\n\n\tasync delete(accountId: string): Promise {\n\t\tawait this.accountDb.delete(accountId);\n\t\tawait this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Deleting account with accountId ${accountId} ...`);\n\t\t\tawait this.accountIdm.delete(accountId);\n\t\t\tthis.logger.debug(`Deleted account with accountId ${accountId}`);\n\t\t});\n\t}\n\n\tasync deleteByUserId(userId: string): Promise {\n\t\tawait this.accountDb.deleteByUserId(userId);\n\t\tawait this.executeIdmMethod(async () => {\n\t\t\tthis.logger.debug(`Deleting account with userId ${userId} ...`);\n\t\t\tawait this.accountIdm.deleteByUserId(userId);\n\t\t\tthis.logger.debug(`Deleted account with userId ${userId}`);\n\t\t});\n\t}\n\n\t/**\n\t * @deprecated For migration purpose only\n\t */\n\tasync findMany(offset = 0, limit = 100): Promise {\n\t\treturn this.accountDb.findMany(offset, limit);\n\t}\n\n\tprivate async executeIdmMethod(idmCallback: () => Promise) {\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED') === true) {\n\t\t\ttry {\n\t\t\t\treturn await idmCallback();\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error) {\n\t\t\t\t\tthis.logger.error(error, error.stack);\n\t\t\t\t} else {\n\t\t\t\t\tthis.logger.error(error);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountServiceDb.html":{"url":"injectables/AccountServiceDb.html","title":"injectable - AccountServiceDb","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountServiceDb\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account-db.service.ts\n \n\n\n\n \n Extends\n \n \n AbstractAccountService\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n deleteByUserId\n \n \n Private\n encryptPassword\n \n \n Async\n findById\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdOrFail\n \n \n Async\n findByUsernameAndSystemId\n \n \n Async\n findMany\n \n \n Async\n findMultipleByUserId\n \n \n Private\n Async\n getInternalId\n \n \n Async\n save\n \n \n Async\n searchByUsernameExactMatch\n \n \n Async\n searchByUsernamePartialMatch\n \n \n Async\n updateLastTriedFailedLogin\n \n \n Async\n updatePassword\n \n \n Async\n updateUsername\n \n \n validatePassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(accountRepo: AccountRepo, accountLookupService: AccountLookupService)\n \n \n \n \n Defined in apps/server/src/modules/account/services/account-db.service.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountRepo\n \n \n AccountRepo\n \n \n \n No\n \n \n \n \n accountLookupService\n \n \n AccountLookupService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(id: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:108\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:113\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n encryptPassword\n \n \n \n \n \n \n \n encryptPassword(password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account-db.service.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:29\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdOrFail\n \n \n \n \n \n \n \n findByUserIdOrFail(userId: EntityId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:34\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUsernameAndSystemId\n \n \n \n \n \n \n \n findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMany\n \n \n \n \n \n \n \n findMany(offset: number, limit: number)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:146\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n offset\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n limit\n \n number\n \n\n \n No\n \n\n \n 100\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMultipleByUserId\n \n \n \n \n \n \n \n findMultipleByUserId(userIds: EntityId[])\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getInternalId\n \n \n \n \n \n \n \n getInternalId(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account-db.service.ts:134\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(accountDto: AccountSaveDto)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:47\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDto\n \n AccountSaveDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernameExactMatch\n \n \n \n \n \n \n \n searchByUsernameExactMatch(userName: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:122\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n searchByUsernamePartialMatch\n \n \n \n \n \n \n \n searchByUsernamePartialMatch(userName: string, skip: number, limit: number)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:117\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userName\n \n string\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateLastTriedFailedLogin\n \n \n \n \n \n \n \n updateLastTriedFailedLogin(accountId: EntityId, lastTriedFailedLogin: Date)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:91\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n lastTriedFailedLogin\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updatePassword\n \n \n \n \n \n \n \n updatePassword(accountId: EntityId, password: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:99\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateUsername\n \n \n \n \n \n \n \n updateUsername(accountId: EntityId, username: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:83\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n validatePassword\n \n \n \n \n \n \nvalidatePassword(account: AccountDto, comparePassword: string)\n \n \n\n\n \n \n Inherited from AbstractAccountService\n\n \n \n \n \n Defined in AbstractAccountService:127\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n comparePassword\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport bcrypt from 'bcryptjs';\nimport { EntityNotFoundError } from '@shared/common';\nimport { Account, Counted, EntityId } from '@shared/domain';\nimport { AccountRepo } from '../repo/account.repo';\nimport { AccountEntityToDtoMapper } from '../mapper';\nimport { AccountDto, AccountSaveDto } from './dto';\nimport { AbstractAccountService } from './account.service.abstract';\nimport { AccountLookupService } from './account-lookup.service';\n\n@Injectable()\nexport class AccountServiceDb extends AbstractAccountService {\n\tconstructor(private readonly accountRepo: AccountRepo, private readonly accountLookupService: AccountLookupService) {\n\t\tsuper();\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst internalId = await this.getInternalId(id);\n\t\tconst accountEntity = await this.accountRepo.findById(internalId);\n\t\treturn AccountEntityToDtoMapper.mapToDto(accountEntity);\n\t}\n\n\tasync findMultipleByUserId(userIds: EntityId[]): Promise {\n\t\tconst accountEntities = await this.accountRepo.findMultipleByUserId(userIds);\n\t\treturn AccountEntityToDtoMapper.mapAccountsToDto(accountEntities);\n\t}\n\n\tasync findByUserId(userId: EntityId): Promise {\n\t\tconst accountEntity = await this.accountRepo.findByUserId(userId);\n\t\treturn accountEntity ? AccountEntityToDtoMapper.mapToDto(accountEntity) : null;\n\t}\n\n\tasync findByUserIdOrFail(userId: EntityId): Promise {\n\t\tconst accountEntity = await this.accountRepo.findByUserId(userId);\n\t\tif (!accountEntity) {\n\t\t\tthrow new EntityNotFoundError('Account');\n\t\t}\n\t\treturn AccountEntityToDtoMapper.mapToDto(accountEntity);\n\t}\n\n\tasync findByUsernameAndSystemId(username: string, systemId: EntityId | ObjectId): Promise {\n\t\tconst accountEntity = await this.accountRepo.findByUsernameAndSystemId(username, systemId);\n\t\treturn accountEntity ? AccountEntityToDtoMapper.mapToDto(accountEntity) : null;\n\t}\n\n\tasync save(accountDto: AccountSaveDto): Promise {\n\t\tlet account: Account;\n\t\tif (accountDto.id) {\n\t\t\tconst internalId = await this.getInternalId(accountDto.id);\n\t\t\taccount = await this.accountRepo.findById(internalId);\n\t\t\taccount.userId = new ObjectId(accountDto.userId);\n\t\t\taccount.systemId = accountDto.systemId ? new ObjectId(accountDto.systemId) : undefined;\n\t\t\taccount.username = accountDto.username;\n\t\t\taccount.activated = accountDto.activated;\n\t\t\taccount.expiresAt = accountDto.expiresAt;\n\t\t\taccount.lasttriedFailedLogin = accountDto.lasttriedFailedLogin;\n\t\t\tif (accountDto.password) {\n\t\t\t\taccount.password = await this.encryptPassword(accountDto.password);\n\t\t\t}\n\t\t\taccount.credentialHash = accountDto.credentialHash;\n\t\t\taccount.token = accountDto.token;\n\n\t\t\tawait this.accountRepo.save(account);\n\t\t} else {\n\t\t\taccount = new Account({\n\t\t\t\tuserId: new ObjectId(accountDto.userId),\n\t\t\t\tsystemId: accountDto.systemId ? new ObjectId(accountDto.systemId) : undefined,\n\t\t\t\tusername: accountDto.username,\n\t\t\t\tactivated: accountDto.activated,\n\t\t\t\texpiresAt: accountDto.expiresAt,\n\t\t\t\tlasttriedFailedLogin: accountDto.lasttriedFailedLogin,\n\t\t\t\tpassword: accountDto.password ? await this.encryptPassword(accountDto.password) : undefined,\n\t\t\t\ttoken: accountDto.token,\n\t\t\t\tcredentialHash: accountDto.credentialHash,\n\t\t\t});\n\n\t\t\tawait this.accountRepo.save(account);\n\t\t}\n\t\treturn AccountEntityToDtoMapper.mapToDto(account);\n\t}\n\n\tasync updateUsername(accountId: EntityId, username: string): Promise {\n\t\tconst internalId = await this.getInternalId(accountId);\n\t\tconst account = await this.accountRepo.findById(internalId);\n\t\taccount.username = username;\n\t\tawait this.accountRepo.save(account);\n\t\treturn AccountEntityToDtoMapper.mapToDto(account);\n\t}\n\n\tasync updateLastTriedFailedLogin(accountId: EntityId, lastTriedFailedLogin: Date): Promise {\n\t\tconst internalId = await this.getInternalId(accountId);\n\t\tconst account = await this.accountRepo.findById(internalId);\n\t\taccount.lasttriedFailedLogin = lastTriedFailedLogin;\n\t\tawait this.accountRepo.save(account);\n\t\treturn AccountEntityToDtoMapper.mapToDto(account);\n\t}\n\n\tasync updatePassword(accountId: EntityId, password: string): Promise {\n\t\tconst internalId = await this.getInternalId(accountId);\n\t\tconst account = await this.accountRepo.findById(internalId);\n\t\taccount.password = await this.encryptPassword(password);\n\n\t\tawait this.accountRepo.save(account);\n\t\treturn AccountEntityToDtoMapper.mapToDto(account);\n\t}\n\n\tasync delete(id: EntityId): Promise {\n\t\tconst internalId = await this.getInternalId(id);\n\t\treturn this.accountRepo.deleteById(internalId);\n\t}\n\n\tasync deleteByUserId(userId: EntityId): Promise {\n\t\treturn this.accountRepo.deleteByUserId(userId);\n\t}\n\n\tasync searchByUsernamePartialMatch(userName: string, skip: number, limit: number): Promise> {\n\t\tconst accountEntities = await this.accountRepo.searchByUsernamePartialMatch(userName, skip, limit);\n\t\treturn AccountEntityToDtoMapper.mapSearchResult(accountEntities);\n\t}\n\n\tasync searchByUsernameExactMatch(userName: string): Promise> {\n\t\tconst accountEntities = await this.accountRepo.searchByUsernameExactMatch(userName);\n\t\treturn AccountEntityToDtoMapper.mapSearchResult(accountEntities);\n\t}\n\n\tvalidatePassword(account: AccountDto, comparePassword: string): Promise {\n\t\tif (!account.password) {\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\t\treturn bcrypt.compare(comparePassword, account.password);\n\t}\n\n\tprivate async getInternalId(id: EntityId | ObjectId): Promise {\n\t\tconst internalId = await this.accountLookupService.getInternalId(id);\n\t\tif (!internalId) {\n\t\t\tthrow new EntityNotFoundError(`Account with id ${id.toString()} not found`);\n\t\t}\n\t\treturn internalId;\n\t}\n\n\tprivate encryptPassword(password: string): Promise {\n\t\treturn bcrypt.hash(password, 10);\n\t}\n\n\tasync findMany(offset = 0, limit = 100): Promise {\n\t\treturn AccountEntityToDtoMapper.mapAccountsToDto(await this.accountRepo.findMany(offset, limit));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AccountValidationService.html":{"url":"injectables/AccountValidationService.html","title":"injectable - AccountValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AccountValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/services/account.validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n isUniqueEmail\n \n \n Async\n isUniqueEmailForAccount\n \n \n Async\n isUniqueEmailForUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(accountRepo: AccountRepo, userRepo: UserRepo)\n \n \n \n \n Defined in apps/server/src/modules/account/services/account.validation.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountRepo\n \n \n AccountRepo\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n isUniqueEmail\n \n \n \n \n \n \n \n isUniqueEmail(email: string, userId?: EntityId, accountId?: EntityId, systemId?: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.validation.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n accountId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n isUniqueEmailForAccount\n \n \n \n \n \n \n \n isUniqueEmailForAccount(email: string, accountId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.validation.service.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n accountId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n isUniqueEmailForUser\n \n \n \n \n \n \n \n isUniqueEmailForUser(email: string, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/account/services/account.validation.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { UserRepo } from '@shared/repo';\nimport { AccountEntityToDtoMapper } from '../mapper/account-entity-to-dto.mapper';\nimport { AccountRepo } from '../repo/account.repo';\n\n@Injectable()\nexport class AccountValidationService {\n\tconstructor(private accountRepo: AccountRepo, private userRepo: UserRepo) {}\n\n\tasync isUniqueEmail(email: string, userId?: EntityId, accountId?: EntityId, systemId?: EntityId): Promise {\n\t\tconst [foundUsers, [accounts]] = await Promise.all([\n\t\t\t// Test coverage: Missing branch null check; unreachable\n\t\t\tthis.userRepo.findByEmail(email),\n\t\t\tAccountEntityToDtoMapper.mapSearchResult(await this.accountRepo.searchByUsernameExactMatch(email)),\n\t\t]);\n\n\t\tconst filteredAccounts = accounts.filter((foundAccount) => foundAccount.systemId === systemId);\n\n\t\treturn !(\n\t\t\tfoundUsers.length > 1 ||\n\t\t\tfilteredAccounts.length > 1 ||\n\t\t\t// paranoid 'toString': legacy code may call userId or accountId as ObjectID\n\t\t\t(foundUsers.length === 1 && foundUsers[0].id.toString() !== userId?.toString()) ||\n\t\t\t(filteredAccounts.length === 1 && filteredAccounts[0].id.toString() !== accountId?.toString())\n\t\t);\n\t}\n\n\tasync isUniqueEmailForUser(email: string, userId: EntityId): Promise {\n\t\tconst account = await this.accountRepo.findByUserId(userId);\n\t\treturn this.isUniqueEmail(email, userId, account?.id, account?.systemId?.toString());\n\t}\n\n\tasync isUniqueEmailForAccount(email: string, accountId: EntityId): Promise {\n\t\tconst account = await this.accountRepo.findById(accountId);\n\t\treturn this.isUniqueEmail(email, account.userId?.toString(), account.id, account?.systemId?.toString());\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AdminIdAndToken.html":{"url":"interfaces/AdminIdAndToken.html","title":"interface - AdminIdAndToken","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AdminIdAndToken\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n token\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n \n \n token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { lastValueFrom } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport interface RocketChatOptions {\n\turi?: string;\n\tadminUser?: string;\n\tadminPassword?: string;\n\tadminId?: string;\n\tadminToken?: string;\n}\n\nexport interface RocketChatGroupModel {\n\tgroup: {\n\t\t_id: string;\n\t\tname: string;\n\t\tfname: string;\n\t\tt: string;\n\t\tmsgs: number;\n\t\tusersCount: number;\n\t\tu: {\n\t\t\t_id: string;\n\t\t\tusername: string;\n\t\t};\n\t\tcustomfields: object;\n\t\tbroadcast: boolean;\n\t\tencrypted: boolean;\n\t\tts: Date;\n\t\tro: boolean;\n\t\tdefaults: boolean;\n\t\tsysmes: boolean;\n\t\t_updatedAt: Date;\n\t};\n\tsuccess: boolean;\n}\n\ntype GenericData = Record;\n\nexport class RocketChatError extends Error {\n\tprivate statusCode: number;\n\n\tprivate response: GenericData;\n\n\t// rocketchat specific error type\n\tprivate errorType: string;\n\n\tconstructor(e: any) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument\n\t\tsuper(e.response.statusText);\n\n\t\t// Set the prototype explicitly.\n\t\tObject.setPrototypeOf(this, RocketChatError.prototype);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\tthis.statusCode = e.response.statusCode;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.response = e.response.data;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.errorType = e.response.data.errorType;\n\t}\n}\n\ninterface AdminIdAndToken {\n\tid: string;\n\ttoken: string;\n}\n\n@Injectable()\nexport class RocketChatService {\n\tprivate adminIdAndToken?: AdminIdAndToken;\n\n\tconstructor(\n\t\t@Inject('ROCKET_CHAT_OPTIONS') private readonly options: RocketChatOptions,\n\t\tprivate readonly httpService: HttpService\n\t) {}\n\n\tpublic async me(authToken: string, userId: string): Promise {\n\t\treturn this.get('/api/v1/me', authToken, userId);\n\t}\n\n\tpublic async setUserStatus(authToken: string, userId: string, status: string): Promise {\n\t\treturn this.post('/api/v1/users.setStatus', authToken, userId, {\n\t\t\tmessage: '',\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic async createUserToken(userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.createToken', {\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async logoutUser(authToken: string, userId: string): Promise {\n\t\treturn this.post('/api/v1/logout', authToken, userId, {});\n\t}\n\n\tpublic async getUserList(queryString: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/users.list?${queryString}`);\n\t}\n\n\tpublic async unarchiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.unarchive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async archiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.archive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async kickUserFromGroup(groupName: string, userId: string): Promise {\n\t\tconst groupInfo: RocketChatGroupModel = await this.getGroupData(groupName);\n\n\t\treturn this.postAsAdmin('/api/v1/groups.kick', {\n\t\t\troomId: groupInfo.group._id,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async inviteUserToGroup(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.invite', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async addGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.addModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async removeGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.removeModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async getGroupModerators(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.moderators?roomName=${groupName}`);\n\t}\n\n\tpublic async getGroupMembers(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.members?roomName=${groupName}`);\n\t}\n\n\tprivate async getGroupData(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.info?roomName=${groupName}`);\n\t}\n\n\tpublic async createGroup(name: string, members: string[]): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.create', {\n\t\t\tname,\n\t\t\tmembers,\n\t\t});\n\t}\n\n\tpublic async deleteGroup(groupName: string): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.delete', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async createUser(email: string, password: string, username: string, name: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.create', {\n\t\t\temail,\n\t\t\tpassword,\n\t\t\tusername,\n\t\t\tname,\n\t\t\tverified: true,\n\t\t});\n\t}\n\n\tpublic async deleteUser(username: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.delete', {\n\t\t\tusername,\n\t\t});\n\t}\n\n\tprivate async postAsAdmin(path: string, body: GenericData): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.post(path, adminIdAndToken.token, adminIdAndToken.id, body);\n\t}\n\n\tprivate async getAsAdmin(path: string): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.get(path, adminIdAndToken.token, adminIdAndToken.id);\n\t}\n\n\tprivate async get(path: string, authToken: string, userId: string): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.get(`${this.options.uri}${path}`, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as Type;\n\t}\n\n\tprivate async post(path: string, authToken: string, userId: string, body: GenericData): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}${path}`, body, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as GenericData;\n\t}\n\n\tprivate async getAdminIdAndToken(): Promise {\n\t\tthis.validateRocketChatConfig();\n\n\t\tif (this.adminIdAndToken) {\n\t\t\treturn this.adminIdAndToken;\n\t\t}\n\n\t\tif (this.options.adminId && this.options.adminToken) {\n\t\t\tconst newVar = { id: this.options.adminId, token: this.options.adminToken } as AdminIdAndToken;\n\t\t\tthis.adminIdAndToken = newVar;\n\t\t\treturn newVar;\n\t\t}\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}/api/v1/login`, {\n\t\t\t\t\tuser: this.options.adminUser,\n\t\t\t\t\tpassword: this.options.adminPassword,\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst responseJson = response?.data;\n\t\tthis.adminIdAndToken = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tid: responseJson.data.userId as string,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\ttoken: responseJson.data.authToken as string,\n\t\t} as AdminIdAndToken;\n\t\treturn this.adminIdAndToken;\n\t}\n\n\tprivate validateRocketChatConfig(): void {\n\t\tif (!this.options.uri) {\n\t\t\tthrow new Error('rocket chat uri not set');\n\t\t}\n\t\tif (!(this.options.adminId && this.options.adminToken) && !(this.options.adminUser && this.options.adminPassword)) {\n\t\t\tthrow new Error('rocket chat adminId and adminToken OR adminUser and adminPassword must be set');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AntivirusModule.html":{"url":"modules/AntivirusModule.html","title":"module - AntivirusModule","body":"\n \n\n\n\n\n Modules\n AntivirusModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/antivirus/antivirus.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options: AntivirusModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.module.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n AntivirusModuleOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Module, DynamicModule } from '@nestjs/common';\nimport { AntivirusService } from './antivirus.service';\n\ninterface AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\n@Module({})\nexport class AntivirusModule {\n\tstatic forRoot(options: AntivirusModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: AntivirusModule,\n\t\t\tproviders: [\n\t\t\t\tAntivirusService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'ANTIVIRUS_SERVICE_OPTIONS',\n\t\t\t\t\tuseValue: {\n\t\t\t\t\t\tenabled: options.enabled,\n\t\t\t\t\t\tfilesServiceBaseUrl: options.filesServiceBaseUrl,\n\t\t\t\t\t\texchange: options.exchange,\n\t\t\t\t\t\troutingKey: options.routingKey,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [AntivirusService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AntivirusModuleOptions.html":{"url":"interfaces/AntivirusModuleOptions.html","title":"interface - AntivirusModuleOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AntivirusModuleOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/antivirus/antivirus.module.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n enabled\n \n \n \n \n exchange\n \n \n \n \n filesServiceBaseUrl\n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n enabled\n \n \n \n \n \n \n \n \n enabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n exchange\n \n \n \n \n \n \n \n \n exchange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n filesServiceBaseUrl\n \n \n \n \n \n \n \n \n filesServiceBaseUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n routingKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Module, DynamicModule } from '@nestjs/common';\nimport { AntivirusService } from './antivirus.service';\n\ninterface AntivirusModuleOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\n@Module({})\nexport class AntivirusModule {\n\tstatic forRoot(options: AntivirusModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: AntivirusModule,\n\t\t\tproviders: [\n\t\t\t\tAntivirusService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'ANTIVIRUS_SERVICE_OPTIONS',\n\t\t\t\t\tuseValue: {\n\t\t\t\t\t\tenabled: options.enabled,\n\t\t\t\t\t\tfilesServiceBaseUrl: options.filesServiceBaseUrl,\n\t\t\t\t\t\texchange: options.exchange,\n\t\t\t\t\t\troutingKey: options.routingKey,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [AntivirusService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AntivirusService.html":{"url":"injectables/AntivirusService.html","title":"injectable - AntivirusService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AntivirusService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/antivirus/antivirus.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n getUrl\n \n \n Public\n Async\n send\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, options: AntivirusServiceOptions)\n \n \n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.service.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n amqpConnection\n \n \n AmqpConnection\n \n \n \n No\n \n \n \n \n options\n \n \n AntivirusServiceOptions\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n getUrl\n \n \n \n \n \n \n \n getUrl(path: string, token: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.service.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n send\n \n \n \n \n \n \n \n send(requestToken: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/antivirus/antivirus.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n requestToken\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { API_VERSION_PATH, FilesStorageInternalActions } from '@src/modules/files-storage/files-storage.const';\n\ninterface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\n@Injectable()\nexport class AntivirusService {\n\tconstructor(\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\t@Inject('ANTIVIRUS_SERVICE_OPTIONS') private readonly options: AntivirusServiceOptions\n\t) {}\n\n\tpublic async send(requestToken: string | undefined): Promise {\n\t\ttry {\n\t\t\tif (this.options.enabled && requestToken) {\n\t\t\t\tconst downloadUri = this.getUrl(FilesStorageInternalActions.downloadBySecurityToken, requestToken);\n\t\t\t\tconst callbackUri = this.getUrl(FilesStorageInternalActions.updateSecurityStatus, requestToken);\n\n\t\t\t\tawait this.amqpConnection.publish(\n\t\t\t\t\tthis.options.exchange,\n\t\t\t\t\tthis.options.routingKey,\n\t\t\t\t\t{ download_uri: downloadUri, callback_uri: callbackUri },\n\t\t\t\t\t{ persistent: true }\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(err, 'AntivirusService:send'));\n\t\t}\n\t}\n\n\tprivate getUrl(path: string, token: string): string {\n\t\tconst newPath = path.replace(':token', encodeURIComponent(token));\n\t\tconst url = new URL(`${API_VERSION_PATH}${newPath}`, this.options.filesServiceBaseUrl);\n\n\t\treturn url.href;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AntivirusServiceOptions.html":{"url":"interfaces/AntivirusServiceOptions.html","title":"interface - AntivirusServiceOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AntivirusServiceOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/antivirus/antivirus.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n enabled\n \n \n \n \n exchange\n \n \n \n \n filesServiceBaseUrl\n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n enabled\n \n \n \n \n \n \n \n \n enabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n exchange\n \n \n \n \n \n \n \n \n exchange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n filesServiceBaseUrl\n \n \n \n \n \n \n \n \n filesServiceBaseUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n routingKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { API_VERSION_PATH, FilesStorageInternalActions } from '@src/modules/files-storage/files-storage.const';\n\ninterface AntivirusServiceOptions {\n\tenabled: boolean;\n\tfilesServiceBaseUrl: string;\n\texchange: string;\n\troutingKey: string;\n}\n\n@Injectable()\nexport class AntivirusService {\n\tconstructor(\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\t@Inject('ANTIVIRUS_SERVICE_OPTIONS') private readonly options: AntivirusServiceOptions\n\t) {}\n\n\tpublic async send(requestToken: string | undefined): Promise {\n\t\ttry {\n\t\t\tif (this.options.enabled && requestToken) {\n\t\t\t\tconst downloadUri = this.getUrl(FilesStorageInternalActions.downloadBySecurityToken, requestToken);\n\t\t\t\tconst callbackUri = this.getUrl(FilesStorageInternalActions.updateSecurityStatus, requestToken);\n\n\t\t\t\tawait this.amqpConnection.publish(\n\t\t\t\t\tthis.options.exchange,\n\t\t\t\t\tthis.options.routingKey,\n\t\t\t\t\t{ download_uri: downloadUri, callback_uri: callbackUri },\n\t\t\t\t\t{ persistent: true }\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(err, 'AntivirusService:send'));\n\t\t}\n\t}\n\n\tprivate getUrl(path: string, token: string): string {\n\t\tconst newPath = path.replace(':token', encodeURIComponent(token));\n\t\tconst url = new URL(`${API_VERSION_PATH}${newPath}`, this.options.filesServiceBaseUrl);\n\n\t\treturn url.href;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ApiValidationError.html":{"url":"classes/ApiValidationError.html","title":"class - ApiValidationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ApiValidationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/api-validation.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(validationErrors: ValidationError[])\n \n \n \n \n Defined in apps/server/src/shared/common/error/api-validation.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n validationErrors\n \n \n ValidationError[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus, ValidationError } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class ApiValidationError extends BusinessError {\n\tconstructor(readonly validationErrors: ValidationError[] = []) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'API_VALIDATION_ERROR',\n\t\t\t\ttitle: 'API Validation Error',\n\t\t\t\tdefaultMessage: 'API validation failed, see validationErrors for details',\n\t\t\t},\n\t\t\tHttpStatus.BAD_REQUEST\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ApiValidationErrorResponse.html":{"url":"classes/ApiValidationErrorResponse.html","title":"class - ApiValidationErrorResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ApiValidationErrorResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/dto/api-validation-error.response.ts\n \n\n\n \n Description\n \n \n HTTP response definition for api validation errors.\n\n \n\n \n Extends\n \n \n ErrorResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n validationErrors\n \n \n Readonly\n code\n \n \n Readonly\n Optional\n details\n \n \n Readonly\n message\n \n \n Readonly\n title\n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n extractValidationErrorDetails\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(apiValidationError: ApiValidationError)\n \n \n \n \n Defined in apps/server/src/core/error/dto/api-validation-error.response.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n apiValidationError\n \n \n ApiValidationError\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n validationErrors\n \n \n \n \n \n \n Type : ValidationErrorDetailResponse[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Defined in apps/server/src/core/error/dto/api-validation-error.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:25\n\n \n \n\n \n \n Must match HTTP error code\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:30\n\n \n \n\n \n \n Additional custom details about the error\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:20\n\n \n \n\n \n \n Additional custom information about the error\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:15\n\n \n \n\n \n \n Description about the type, unique by type, format: Sentence case\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ErrorResponse\n\n \n \n \n \n Defined in ErrorResponse:10\n\n \n \n\n \n \n Unambiguous error identifier, format: UPPERCASE_SNAKE_CASE\n\n \n \n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n extractValidationErrorDetails\n \n \n \n \n \n \n \n extractValidationErrorDetails(validationError: ValidationError, parentPropertyPath: string[])\n \n \n\n\n \n \n Defined in apps/server/src/core/error/dto/api-validation-error.response.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n validationError\n \n ValidationError\n \n\n \n No\n \n\n \n \n\n \n \n parentPropertyPath\n \n string[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ValidationError } from '@nestjs/common';\nimport { ApiValidationError } from '@shared/common';\nimport { ErrorResponse } from './error.response';\nimport { ValidationErrorDetailResponse } from './validation-error-detail.response';\n\n/**\n * HTTP response definition for api validation errors.\n */\nexport class ApiValidationErrorResponse extends ErrorResponse {\n\tvalidationErrors: ValidationErrorDetailResponse[] = [];\n\n\tconstructor(apiValidationError: ApiValidationError) {\n\t\tconst { type, title, message, code } = apiValidationError;\n\t\tsuper(type, title, message, code);\n\n\t\tapiValidationError.validationErrors.forEach((validationError: ValidationError) => {\n\t\t\tthis.extractValidationErrorDetails(validationError);\n\t\t});\n\t}\n\n\tprivate extractValidationErrorDetails(validationError: ValidationError, parentPropertyPath: string[] = []): void {\n\t\tconst propertyPath: string[] = [...parentPropertyPath];\n\t\tif (validationError.property) {\n\t\t\tpropertyPath.push(validationError.property);\n\t\t}\n\n\t\tif (validationError.constraints) {\n\t\t\tconst errors: string[] = Object.values(validationError.constraints);\n\t\t\tthis.validationErrors.push(new ValidationErrorDetailResponse(propertyPath, errors));\n\t\t}\n\n\t\tif (validationError.children) {\n\t\t\tvalidationError.children.forEach((childError: ValidationError) =>\n\t\t\t\tthis.extractValidationErrorDetails(childError, propertyPath)\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AppStartInfo.html":{"url":"interfaces/AppStartInfo.html","title":"interface - AppStartInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AppStartInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/apps/helpers/app-start-loggable.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n appName\n \n \n \n Optional\n \n basePath\n \n \n \n Optional\n \n mountsDescription\n \n \n \n Optional\n \n port\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n appName\n \n \n \n \n \n \n \n \n appName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n basePath\n \n \n \n \n \n \n \n \n basePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n mountsDescription\n \n \n \n \n \n \n \n \n mountsDescription: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n port\n \n \n \n \n \n \n \n \n port: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Loggable, LogMessage, LogMessageData } from '@src/core/logger';\n\ninterface AppStartInfo {\n\tappName: string;\n\tport?: number;\n\tbasePath?: string;\n\tmountsDescription?: string;\n}\n\nexport class AppStartLoggable implements Loggable {\n\tconstructor(private readonly info: AppStartInfo) {}\n\n\tgetLogMessage(): LogMessage {\n\t\tconst data: LogMessageData = { appName: this.info.appName };\n\n\t\tif (this.info.port !== undefined) {\n\t\t\tdata.port = this.info.port;\n\t\t}\n\n\t\tif (this.info.basePath !== undefined) {\n\t\t\tdata.basePath = this.info.basePath;\n\t\t}\n\n\t\tif (this.info.mountsDescription !== undefined) {\n\t\t\tdata.mountsDescription = this.info.mountsDescription;\n\t\t}\n\n\t\treturn {\n\t\t\tmessage: 'Successfully started listening...',\n\t\t\tdata,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AppStartLoggable.html":{"url":"classes/AppStartLoggable.html","title":"class - AppStartLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AppStartLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/apps/helpers/app-start-loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(info: AppStartInfo)\n \n \n \n \n Defined in apps/server/src/apps/helpers/app-start-loggable.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n info\n \n \n AppStartInfo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/apps/helpers/app-start-loggable.ts:13\n \n \n\n\n \n \n\n \n Returns : LogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Loggable, LogMessage, LogMessageData } from '@src/core/logger';\n\ninterface AppStartInfo {\n\tappName: string;\n\tport?: number;\n\tbasePath?: string;\n\tmountsDescription?: string;\n}\n\nexport class AppStartLoggable implements Loggable {\n\tconstructor(private readonly info: AppStartInfo) {}\n\n\tgetLogMessage(): LogMessage {\n\t\tconst data: LogMessageData = { appName: this.info.appName };\n\n\t\tif (this.info.port !== undefined) {\n\t\t\tdata.port = this.info.port;\n\t\t}\n\n\t\tif (this.info.basePath !== undefined) {\n\t\t\tdata.basePath = this.info.basePath;\n\t\t}\n\n\t\tif (this.info.mountsDescription !== undefined) {\n\t\t\tdata.mountsDescription = this.info.mountsDescription;\n\t\t}\n\n\t\treturn {\n\t\t\tmessage: 'Successfully started listening...',\n\t\t\tdata,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AppendedAttachment.html":{"url":"interfaces/AppendedAttachment.html","title":"interface - AppendedAttachment","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AppendedAttachment\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n \n Extends\n \n \n MailAttachment\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contentDisposition\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contentDisposition\n \n \n \n \n \n \n \n \n contentDisposition: \n\n \n \n\n\n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AuthenticationApiModule.html":{"url":"modules/AuthenticationApiModule.html","title":"module - AuthenticationApiModule","body":"\n \n\n\n\n\n Modules\n AuthenticationApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AuthenticationApiModule\n\n\n\ncluster_AuthenticationApiModule_imports\n\n\n\ncluster_AuthenticationApiModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nAuthenticationApiModule\n\nAuthenticationApiModule\n\nAuthenticationApiModule -->\n\nAuthenticationModule->AuthenticationApiModule\n\n\n\n\n\nLoginUc\n\nLoginUc\n\nAuthenticationApiModule -->\n\nLoginUc->AuthenticationApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/authentication/authentication-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n LoginUc\n \n \n \n \n Controllers\n \n \n LoginController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthenticationModule } from './authentication.module';\nimport { LoginController } from './controllers/login.controller';\nimport { LoginUc } from './uc/login.uc';\n\n@Module({\n\timports: [AuthenticationModule],\n\tproviders: [LoginUc],\n\tcontrollers: [LoginController],\n\texports: [],\n})\nexport class AuthenticationApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AuthenticationCodeGrantTokenRequest.html":{"url":"classes/AuthenticationCodeGrantTokenRequest.html","title":"class - AuthenticationCodeGrantTokenRequest","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthenticationCodeGrantTokenRequest\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n client_id\n \n \n client_secret\n \n \n code\n \n \n grant_type\n \n \n redirect_uri\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AuthenticationCodeGrantTokenRequest)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n AuthenticationCodeGrantTokenRequest\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n client_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n client_secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n grant_type\n \n \n \n \n \n \n Type : OAuthGrantType.AUTHORIZATION_CODE_GRANT\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n redirect_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/authentication-code-grant-token.request.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { OAuthGrantType } from '../../interface/oauth-grant-type.enum';\n\nexport class AuthenticationCodeGrantTokenRequest {\n\tclient_id: string;\n\n\tclient_secret: string;\n\n\tredirect_uri: string;\n\n\tgrant_type: OAuthGrantType.AUTHORIZATION_CODE_GRANT;\n\n\tcode: string;\n\n\tconstructor(props: AuthenticationCodeGrantTokenRequest) {\n\t\tthis.client_id = props.client_id;\n\t\tthis.client_secret = props.client_secret;\n\t\tthis.redirect_uri = props.redirect_uri;\n\t\tthis.grant_type = props.grant_type;\n\t\tthis.code = props.code;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AuthenticationModule.html":{"url":"modules/AuthenticationModule.html","title":"module - AuthenticationModule","body":"\n \n\n\n\n\n Modules\n AuthenticationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AuthenticationModule\n\n\n\ncluster_AuthenticationModule_exports\n\n\n\ncluster_AuthenticationModule_imports\n\n\n\ncluster_AuthenticationModule_providers\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\nAuthenticationModule -->\n\nAccountModule->AuthenticationModule\n\n\n\n\n\nCacheWrapperModule\n\nCacheWrapperModule\n\nAuthenticationModule -->\n\nCacheWrapperModule->AuthenticationModule\n\n\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\nAuthenticationModule -->\n\nIdentityManagementModule->AuthenticationModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAuthenticationModule -->\n\nLoggerModule->AuthenticationModule\n\n\n\n\n\nOauthModule\n\nOauthModule\n\nAuthenticationModule -->\n\nOauthModule->AuthenticationModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nAuthenticationModule -->\n\nRoleModule->AuthenticationModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nAuthenticationModule -->\n\nSystemModule->AuthenticationModule\n\n\n\n\n\nAuthenticationService \n\nAuthenticationService \n\nAuthenticationService -->\n\nAuthenticationModule->AuthenticationService \n\n\n\n\n\nAuthenticationService\n\nAuthenticationService\n\nAuthenticationModule -->\n\nAuthenticationService->AuthenticationModule\n\n\n\n\n\nJwtStrategy\n\nJwtStrategy\n\nAuthenticationModule -->\n\nJwtStrategy->AuthenticationModule\n\n\n\n\n\nJwtValidationAdapter\n\nJwtValidationAdapter\n\nAuthenticationModule -->\n\nJwtValidationAdapter->AuthenticationModule\n\n\n\n\n\nLdapService\n\nLdapService\n\nAuthenticationModule -->\n\nLdapService->AuthenticationModule\n\n\n\n\n\nLdapStrategy\n\nLdapStrategy\n\nAuthenticationModule -->\n\nLdapStrategy->AuthenticationModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nAuthenticationModule -->\n\nLegacySchoolRepo->AuthenticationModule\n\n\n\n\n\nLocalStrategy\n\nLocalStrategy\n\nAuthenticationModule -->\n\nLocalStrategy->AuthenticationModule\n\n\n\n\n\nOauth2Strategy\n\nOauth2Strategy\n\nAuthenticationModule -->\n\nOauth2Strategy->AuthenticationModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nAuthenticationModule -->\n\nSystemRepo->AuthenticationModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAuthenticationModule -->\n\nUserRepo->AuthenticationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/authentication/authentication.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n AuthenticationService\n \n \n JwtStrategy\n \n \n JwtValidationAdapter\n \n \n LdapService\n \n \n LdapStrategy\n \n \n LegacySchoolRepo\n \n \n LocalStrategy\n \n \n Oauth2Strategy\n \n \n SystemRepo\n \n \n UserRepo\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n CacheWrapperModule\n \n \n IdentityManagementModule\n \n \n LoggerModule\n \n \n OauthModule\n \n \n RoleModule\n \n \n SystemModule\n \n \n \n \n Exports\n \n \n AuthenticationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { JwtModule, JwtModuleOptions } from '@nestjs/jwt';\nimport { PassportModule } from '@nestjs/passport';\nimport { CacheWrapperModule } from '@shared/infra/cache';\nimport { IdentityManagementModule } from '@shared/infra/identity-management';\nimport { LegacySchoolRepo, SystemRepo, UserRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@src/modules/account';\nimport { OauthModule } from '@src/modules/oauth/oauth.module';\nimport { RoleModule } from '@src/modules/role';\nimport { SystemModule } from '@src/modules/system';\nimport { Algorithm, SignOptions } from 'jsonwebtoken';\nimport { jwtConstants } from './constants';\nimport { AuthenticationService } from './services/authentication.service';\nimport { LdapService } from './services/ldap.service';\nimport { JwtValidationAdapter } from './strategy/jwt-validation.adapter';\nimport { JwtStrategy } from './strategy/jwt.strategy';\nimport { LdapStrategy } from './strategy/ldap.strategy';\nimport { LocalStrategy } from './strategy/local.strategy';\nimport { Oauth2Strategy } from './strategy/oauth2.strategy';\n\n// values copied from Algorithm definition. Type does not exist at runtime and can't be checked anymore otherwise\nconst algorithms = [\n\t'HS256',\n\t'HS384',\n\t'HS512',\n\t'RS256',\n\t'RS384',\n\t'RS512',\n\t'ES256',\n\t'ES384',\n\t'ES512',\n\t'PS256',\n\t'PS384',\n\t'PS512',\n\t'none',\n];\n\nif (!algorithms.includes(jwtConstants.jwtOptions.algorithm)) {\n\tthrow new Error(`${jwtConstants.jwtOptions.algorithm} is not a valid JWT signing algorithm`);\n}\nconst signAlgorithm = jwtConstants.jwtOptions.algorithm as Algorithm;\n\nconst signOptions: SignOptions = {\n\talgorithm: signAlgorithm,\n\taudience: jwtConstants.jwtOptions.audience,\n\texpiresIn: jwtConstants.jwtOptions.expiresIn,\n\tissuer: jwtConstants.jwtOptions.issuer,\n\theader: { ...jwtConstants.jwtOptions.header, alg: signAlgorithm },\n};\nconst jwtModuleOptions: JwtModuleOptions = {\n\tsecret: jwtConstants.secret,\n\tsignOptions,\n\tverifyOptions: signOptions,\n};\n@Module({\n\timports: [\n\t\tLoggerModule,\n\t\tPassportModule,\n\t\tJwtModule.register(jwtModuleOptions),\n\t\tAccountModule,\n\t\tSystemModule,\n\t\tOauthModule,\n\t\tRoleModule,\n\t\tIdentityManagementModule,\n\t\tCacheWrapperModule,\n\t],\n\tproviders: [\n\t\tJwtStrategy,\n\t\tJwtValidationAdapter,\n\t\tUserRepo,\n\t\tSystemRepo,\n\t\tLegacySchoolRepo,\n\t\tLocalStrategy,\n\t\tAuthenticationService,\n\t\tLdapService,\n\t\tLdapStrategy,\n\t\tOauth2Strategy,\n\t],\n\texports: [AuthenticationService],\n})\nexport class AuthenticationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthenticationResponse.html":{"url":"interfaces/AuthenticationResponse.html","title":"interface - AuthenticationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthenticationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/test-api-client.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accessToken\n \n \n \n \n \n \n \n \n accessToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { INestApplication } from '@nestjs/common';\nimport { Account } from '@shared/domain';\nimport supertest, { Response } from 'supertest';\nimport { defaultTestPassword } from './factory/account.factory';\n\ninterface AuthenticationResponse {\n\taccessToken: string;\n}\n\nconst headerConst = {\n\taccept: 'accept',\n\tjson: 'application/json',\n};\n\nconst testReqestConst = {\n\tprefix: 'Bearer',\n\tloginPath: '/authentication/local',\n\taccessToken: 'accessToken',\n\terrorMessage: 'TestApiClient: Can not cast to local AutenticationResponse:',\n};\n\n/**\n * Note res.cookie is not supported atm, feel free to add this\n */\nexport class TestApiClient {\n\tprivate readonly app: INestApplication;\n\n\tprivate readonly baseRoute: string;\n\n\tprivate readonly formattedJwt: string;\n\n\tconstructor(app: INestApplication, baseRoute: string, jwt?: string) {\n\t\tthis.app = app;\n\t\tthis.baseRoute = this.checkAndAddPrefix(baseRoute);\n\t\tthis.formattedJwt = `${testReqestConst.prefix} ${jwt || ''}`;\n\t}\n\n\tpublic get(subPath?: string): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer()).get(path).set('authorization', this.formattedJwt);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic delete(subPath?: string): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.delete(path)\n\t\t\t.set('authorization', this.formattedJwt);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic put(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.put(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic patch(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.patch(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic post(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.post(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic async login(account: Account): Promise {\n\t\tconst path = testReqestConst.loginPath;\n\t\tconst params: { username: string; password: string } = {\n\t\t\tusername: account.username,\n\t\t\tpassword: defaultTestPassword,\n\t\t};\n\t\tconst response = await supertest(this.app.getHttpServer())\n\t\t\t.post(path)\n\t\t\t.set(headerConst.accept, headerConst.json)\n\t\t\t.send(params);\n\n\t\tconst jwtFromResponse = this.getJwtFromResponse(response);\n\n\t\treturn new (this.constructor as new (app: INestApplication, baseRoute: string, jwt?: string) => this)(\n\t\t\tthis.app,\n\t\t\tthis.baseRoute,\n\t\t\tjwtFromResponse\n\t\t);\n\t}\n\n\tprivate isSlash(inputPath: string, pos: number): boolean {\n\t\tconst isSlash = inputPath.charAt(pos) === '/';\n\n\t\treturn isSlash;\n\t}\n\n\tprivate checkAndAddPrefix(inputPath = '/'): string {\n\t\tlet path = '';\n\t\tif (!this.isSlash(inputPath, 0)) {\n\t\t\tpath = '/';\n\t\t}\n\t\tpath += inputPath;\n\n\t\treturn path;\n\t}\n\n\tprivate cleanupPath(inputPath: string): string {\n\t\tlet path = inputPath;\n\t\tif (this.isSlash(path, 0) && this.isSlash(path, 1)) {\n\t\t\tpath = path.slice(1);\n\t\t}\n\n\t\treturn path;\n\t}\n\n\tprivate getPath(routeNameInput = ''): string {\n\t\tconst routeName = this.checkAndAddPrefix(routeNameInput);\n\t\tconst path = this.cleanupPath(this.baseRoute + routeName);\n\n\t\treturn path;\n\t}\n\n\tprivate isAuthenticationResponse(body: unknown): body is AuthenticationResponse {\n\t\tconst isAuthenticationResponse = typeof body === 'object' && body !== null && testReqestConst.accessToken in body;\n\n\t\treturn isAuthenticationResponse;\n\t}\n\n\tprivate getJwtFromResponse(response: Response): string {\n\t\tif (!this.isAuthenticationResponse(response.body)) {\n\t\t\tconst body = JSON.stringify(response.body);\n\t\t\tthrow new Error(`${testReqestConst.errorMessage} ${body}`);\n\t\t}\n\t\tconst authenticationResponse = response.body;\n\t\tconst jwt = authenticationResponse.accessToken;\n\n\t\treturn jwt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AuthenticationService.html":{"url":"injectables/AuthenticationService.html","title":"injectable - AuthenticationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AuthenticationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/services/authentication.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n checkBrutForce\n \n \n Async\n generateJwt\n \n \n Async\n loadAccount\n \n \n normalizePassword\n \n \n normalizeUsername\n \n \n Async\n removeJwtFromWhitelist\n \n \n Async\n updateLastTriedFailedLogin\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(jwtService: JwtService, jwtValidationAdapter: JwtValidationAdapter, accountService: AccountService, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwtService\n \n \n JwtService\n \n \n \n No\n \n \n \n \n jwtValidationAdapter\n \n \n JwtValidationAdapter\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n checkBrutForce\n \n \n \n \n \n \ncheckBrutForce(account: AccountDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n generateJwt\n \n \n \n \n \n \n \n generateJwt(user: CreateJwtPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n CreateJwtPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loadAccount\n \n \n \n \n \n \n \n loadAccount(username: string, systemId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n normalizePassword\n \n \n \n \n \n \nnormalizePassword(password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:83\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n normalizeUsername\n \n \n \n \n \n \nnormalizeUsername(username: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeJwtFromWhitelist\n \n \n \n \n \n \n \n removeJwtFromWhitelist(jwtToken: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwtToken\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateLastTriedFailedLogin\n \n \n \n \n \n \n \n updateLastTriedFailedLogin(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/authentication.service.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { JwtService } from '@nestjs/jwt';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { JwtValidationAdapter } from '@src/modules/authentication/strategy/jwt-validation.adapter';\nimport type { IServerConfig } from '@src/modules/server';\nimport { randomUUID } from 'crypto';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { BruteForceError } from '../errors/brute-force.error';\nimport { UnauthorizedLoggableException } from '../errors/unauthorized.loggable-exception';\nimport { CreateJwtPayload } from '../interface/jwt-payload';\nimport { LoginDto } from '../uc/dto';\n\n@Injectable()\nexport class AuthenticationService {\n\tconstructor(\n\t\tprivate readonly jwtService: JwtService,\n\t\tprivate readonly jwtValidationAdapter: JwtValidationAdapter,\n\t\tprivate readonly accountService: AccountService,\n\t\tprivate readonly configService: ConfigService\n\t) {}\n\n\tasync loadAccount(username: string, systemId?: string): Promise {\n\t\tlet account: AccountDto | undefined | null;\n\n\t\tif (systemId) {\n\t\t\taccount = await this.accountService.findByUsernameAndSystemId(username, systemId);\n\t\t} else {\n\t\t\tconst [accounts] = await this.accountService.searchByUsernameExactMatch(username);\n\t\t\taccount = accounts.find((foundAccount) => foundAccount.systemId == null);\n\t\t}\n\n\t\tif (!account) {\n\t\t\tthrow new UnauthorizedLoggableException(username, systemId);\n\t\t}\n\n\t\treturn account;\n\t}\n\n\tasync generateJwt(user: CreateJwtPayload): Promise {\n\t\tconst jti = randomUUID();\n\n\t\tconst result: LoginDto = new LoginDto({\n\t\t\taccessToken: this.jwtService.sign(user, {\n\t\t\t\tsubject: user.accountId,\n\t\t\t\tjwtid: jti,\n\t\t\t}),\n\t\t});\n\n\t\tawait this.jwtValidationAdapter.addToWhitelist(user.accountId, jti);\n\n\t\treturn result;\n\t}\n\n\tasync removeJwtFromWhitelist(jwtToken: string): Promise {\n\t\tconst decodedJwt: JwtPayload | null = jwt.decode(jwtToken, { json: true });\n\n\t\tif (decodedJwt && decodedJwt.jti && decodedJwt.accountId && typeof decodedJwt.accountId === 'string') {\n\t\t\tawait this.jwtValidationAdapter.removeFromWhitelist(decodedJwt.accountId, decodedJwt.jti);\n\t\t}\n\t}\n\n\tcheckBrutForce(account: AccountDto): void {\n\t\tif (account.lasttriedFailedLogin) {\n\t\t\tconst timeDifference = (new Date().getTime() - account.lasttriedFailedLogin.getTime()) / 1000;\n\n\t\t\tif (timeDifference ('LOGIN_BLOCK_TIME')) {\n\t\t\t\tconst timeToWait = this.configService.get('LOGIN_BLOCK_TIME') - Math.ceil(timeDifference);\n\t\t\t\tthrow new BruteForceError(timeToWait, `Brute Force Prevention! Time to wait: ${timeToWait} s`);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync updateLastTriedFailedLogin(id: string): Promise {\n\t\tawait this.accountService.updateLastTriedFailedLogin(id, new Date());\n\t}\n\n\tnormalizeUsername(username: string): string {\n\t\treturn username.trim().toLowerCase();\n\t}\n\n\tnormalizePassword(password: string): string {\n\t\treturn password.trim();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthorizableObject.html":{"url":"interfaces/AuthorizableObject.html","title":"interface - AuthorizableObject","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthorizableObject\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domain-object.ts\n \n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from './types';\n\nexport interface AuthorizableObject {\n\tget id(): EntityId;\n}\n\nexport abstract class DomainObject implements AuthorizableObject {\n\tprotected props: T;\n\n\tconstructor(props: T) {\n\t\tthis.props = props;\n\t}\n\n\tpublic get id(): EntityId {\n\t\treturn this.props.id;\n\t}\n\n\tpublic getProps(): T {\n\t\tconst copyProps = { ...this.props };\n\n\t\treturn copyProps;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthorizationContext.html":{"url":"interfaces/AuthorizationContext.html","title":"interface - AuthorizationContext","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthorizationContext\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/types/authorization-context.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n action\n \n \n \n \n requiredPermissions\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n action\n \n \n \n \n \n \n \n \n action: Action\n\n \n \n\n\n \n \n Type : Action\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n requiredPermissions\n \n \n \n \n \n \n \n \n requiredPermissions: Permission[]\n\n \n \n\n\n \n \n Type : Permission[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Permission } from '@shared/domain';\nimport { Action } from './action.enum';\n\nexport interface AuthorizationContext {\n\taction: Action;\n\trequiredPermissions: Permission[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AuthorizationContextBuilder.html":{"url":"classes/AuthorizationContextBuilder.html","title":"class - AuthorizationContextBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthorizationContextBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/authorization-context.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n build\n \n \n Static\n read\n \n \n Static\n write\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n build\n \n \n \n \n \n \n \n build(requiredPermissions: Permission[], action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization-context.builder.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n requiredPermissions\n \n Permission[]\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizationContext\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n read\n \n \n \n \n \n \n \n read(requiredPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization-context.builder.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n requiredPermissions\n \n Permission[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizationContext\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n write\n \n \n \n \n \n \n \n write(requiredPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization-context.builder.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n requiredPermissions\n \n Permission[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizationContext\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { AuthorizationContext, Action } from './types';\n\nexport class AuthorizationContextBuilder {\n\tprivate static build(requiredPermissions: Permission[], action: Action): AuthorizationContext {\n\t\tconst context = { requiredPermissions, action };\n\n\t\treturn context;\n\t}\n\n\tstatic write(requiredPermissions: Permission[]): AuthorizationContext {\n\t\tconst context = this.build(requiredPermissions, Action.write);\n\n\t\treturn context;\n\t}\n\n\tstatic read(requiredPermissions: Permission[]): AuthorizationContext {\n\t\tconst context = this.build(requiredPermissions, Action.read);\n\n\t\treturn context;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AuthorizationError.html":{"url":"classes/AuthorizationError.html","title":"class - AuthorizationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthorizationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/authorization.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message?: string, details?: Record)\n \n \n \n \n Defined in apps/server/src/shared/common/error/authorization.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n Yes\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class AuthorizationError extends BusinessError {\n\tconstructor(message?: string, details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'AUTHORIZATION_OPERATION',\n\t\t\t\ttitle: 'Authorization Error',\n\t\t\t\tdefaultMessage: message ?? 'The action could not be authorized.',\n\t\t\t},\n\t\t\tHttpStatus.UNAUTHORIZED,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AuthorizationHelper.html":{"url":"injectables/AuthorizationHelper.html","title":"injectable - AuthorizationHelper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AuthorizationHelper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/authorization.helper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasAccessToEntity\n \n \n Public\n hasAllPermissions\n \n \n Public\n hasAllPermissionsByRole\n \n \n Public\n hasOneOfPermissions\n \n \n Private\n isUserReferenced\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasAccessToEntity\n \n \n \n \n \n \n \n hasAccessToEntity(user: User, entity: T, userRefProps: K[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:32\n \n \n\n \n \n Type parameters :\n \n T\n K\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n userRefProps\n \n K[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasAllPermissions\n \n \n \n \n \n \n \n hasAllPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasAllPermissionsByRole\n \n \n \n \n \n \n \n hasAllPermissionsByRole(role: Role, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n Role\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasOneOfPermissions\n \n \n \n \n \n \n \n hasOneOfPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isUserReferenced\n \n \n \n \n \n \n \n isUserReferenced(user: User, entity: T, prop: K)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.helper.ts:38\n \n \n\n \n \n Type parameters :\n \n T\n K\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n prop\n \n K\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Collection } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { Role, User } from '@shared/domain/entity';\n\n@Injectable()\nexport class AuthorizationHelper {\n\tpublic hasAllPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\tconst usersPermissions = user.resolvePermissions();\n\t\tconst hasAllPermissions = requiredPermissions.every((p) => usersPermissions.includes(p));\n\n\t\treturn hasAllPermissions;\n\t}\n\n\tpublic hasAllPermissionsByRole(role: Role, requiredPermissions: string[]): boolean {\n\t\tconst permissions = role.resolvePermissions();\n\t\tconst hasAllPermissions = requiredPermissions.every((p) => permissions.includes(p));\n\n\t\treturn hasAllPermissions;\n\t}\n\n\tpublic hasOneOfPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\t// TODO: Wouldn't it make more sense to return true for an empty permissions-array?\n\t\tif (!Array.isArray(requiredPermissions) || requiredPermissions.length === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst permissions = user.resolvePermissions();\n\t\tconst hasPermission = requiredPermissions.some((p) => permissions.includes(p));\n\n\t\treturn hasPermission;\n\t}\n\n\tpublic hasAccessToEntity(user: User, entity: T, userRefProps: K[]): boolean {\n\t\tconst result = userRefProps.some((prop) => this.isUserReferenced(user, entity, prop));\n\n\t\treturn result;\n\t}\n\n\tprivate isUserReferenced(user: User, entity: T, prop: K) {\n\t\tlet result = false;\n\n\t\tconst reference = entity[prop];\n\n\t\tif (reference instanceof Collection) {\n\t\t\tresult = reference.contains(user);\n\t\t} else if (reference instanceof User) {\n\t\t\tresult = reference === user;\n\t\t} else {\n\t\t\tresult = (reference as unknown as string) === user.id;\n\t\t}\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthorizationLoaderService.html":{"url":"interfaces/AuthorizationLoaderService.html","title":"interface - AuthorizationLoaderService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthorizationLoaderService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/types/authorization-loader-service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n findById\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n findById\n \n \n \n \n \n \nfindById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/types/authorization-loader-service.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BaseDO, EntityId } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object'; // fix import when it is avaible\n\nexport interface AuthorizationLoaderService {\n\tfindById(id: EntityId): Promise;\n}\n\nexport interface AuthorizationLoaderServiceGeneric\n\textends AuthorizationLoaderService {\n\tfindById(id: EntityId): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/AuthorizationLoaderServiceGeneric.html":{"url":"interfaces/AuthorizationLoaderServiceGeneric.html","title":"interface - AuthorizationLoaderServiceGeneric","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n AuthorizationLoaderServiceGeneric\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/types/authorization-loader-service.ts\n \n\n\n\n \n Extends\n \n \n AuthorizationLoaderService\n \n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n findById\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n findById\n \n \n \n \n \n \nfindById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/types/authorization-loader-service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BaseDO, EntityId } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object'; // fix import when it is avaible\n\nexport interface AuthorizationLoaderService {\n\tfindById(id: EntityId): Promise;\n}\n\nexport interface AuthorizationLoaderServiceGeneric\n\textends AuthorizationLoaderService {\n\tfindById(id: EntityId): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/AuthorizationModule.html":{"url":"modules/AuthorizationModule.html","title":"module - AuthorizationModule","body":"\n \n\n\n\n\n Modules\n AuthorizationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_AuthorizationModule\n\n\n\ncluster_AuthorizationModule_providers\n\n\n\ncluster_AuthorizationModule_exports\n\n\n\ncluster_AuthorizationModule_imports\n\n\n\n\nFeathersModule\n\nFeathersModule\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nAuthorizationModule -->\n\nFeathersModule->AuthorizationModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nAuthorizationModule -->\n\nLegacySchoolModule->AuthorizationModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nAuthorizationModule -->\n\nLoggerModule->AuthorizationModule\n\n\n\n\n\nAuthorizationService \n\nAuthorizationService \n\nAuthorizationService -->\n\nAuthorizationModule->AuthorizationService \n\n\n\n\n\nFeathersAuthorizationService \n\nFeathersAuthorizationService \n\nFeathersAuthorizationService -->\n\nAuthorizationModule->FeathersAuthorizationService \n\n\n\n\n\nAuthorizationHelper\n\nAuthorizationHelper\n\nAuthorizationModule -->\n\nAuthorizationHelper->AuthorizationModule\n\n\n\n\n\nAuthorizationService\n\nAuthorizationService\n\nAuthorizationModule -->\n\nAuthorizationService->AuthorizationModule\n\n\n\n\n\nBoardDoRule\n\nBoardDoRule\n\nAuthorizationModule -->\n\nBoardDoRule->AuthorizationModule\n\n\n\n\n\nContextExternalToolRule\n\nContextExternalToolRule\n\nAuthorizationModule -->\n\nContextExternalToolRule->AuthorizationModule\n\n\n\n\n\nCourseGroupRepo\n\nCourseGroupRepo\n\nAuthorizationModule -->\n\nCourseGroupRepo->AuthorizationModule\n\n\n\n\n\nCourseGroupRule\n\nCourseGroupRule\n\nAuthorizationModule -->\n\nCourseGroupRule->AuthorizationModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nAuthorizationModule -->\n\nCourseRepo->AuthorizationModule\n\n\n\n\n\nCourseRule\n\nCourseRule\n\nAuthorizationModule -->\n\nCourseRule->AuthorizationModule\n\n\n\n\n\nFeathersAuthProvider\n\nFeathersAuthProvider\n\nAuthorizationModule -->\n\nFeathersAuthProvider->AuthorizationModule\n\n\n\n\n\nFeathersAuthorizationService\n\nFeathersAuthorizationService\n\nAuthorizationModule -->\n\nFeathersAuthorizationService->AuthorizationModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nAuthorizationModule -->\n\nLegacySchoolRepo->AuthorizationModule\n\n\n\n\n\nLegacySchoolRule\n\nLegacySchoolRule\n\nAuthorizationModule -->\n\nLegacySchoolRule->AuthorizationModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nAuthorizationModule -->\n\nLessonRepo->AuthorizationModule\n\n\n\n\n\nLessonRule\n\nLessonRule\n\nAuthorizationModule -->\n\nLessonRule->AuthorizationModule\n\n\n\n\n\nReferenceLoader\n\nReferenceLoader\n\nAuthorizationModule -->\n\nReferenceLoader->AuthorizationModule\n\n\n\n\n\nRuleManager\n\nRuleManager\n\nAuthorizationModule -->\n\nRuleManager->AuthorizationModule\n\n\n\n\n\nSchoolExternalToolRepo\n\nSchoolExternalToolRepo\n\nAuthorizationModule -->\n\nSchoolExternalToolRepo->AuthorizationModule\n\n\n\n\n\nSchoolExternalToolRule\n\nSchoolExternalToolRule\n\nAuthorizationModule -->\n\nSchoolExternalToolRule->AuthorizationModule\n\n\n\n\n\nSubmissionRepo\n\nSubmissionRepo\n\nAuthorizationModule -->\n\nSubmissionRepo->AuthorizationModule\n\n\n\n\n\nSubmissionRule\n\nSubmissionRule\n\nAuthorizationModule -->\n\nSubmissionRule->AuthorizationModule\n\n\n\n\n\nTaskRepo\n\nTaskRepo\n\nAuthorizationModule -->\n\nTaskRepo->AuthorizationModule\n\n\n\n\n\nTaskRule\n\nTaskRule\n\nAuthorizationModule -->\n\nTaskRule->AuthorizationModule\n\n\n\n\n\nTeamRule\n\nTeamRule\n\nAuthorizationModule -->\n\nTeamRule->AuthorizationModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nAuthorizationModule -->\n\nTeamsRepo->AuthorizationModule\n\n\n\n\n\nUserLoginMigrationRule\n\nUserLoginMigrationRule\n\nAuthorizationModule -->\n\nUserLoginMigrationRule->AuthorizationModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nAuthorizationModule -->\n\nUserRepo->AuthorizationModule\n\n\n\n\n\nUserRule\n\nUserRule\n\nAuthorizationModule -->\n\nUserRule->AuthorizationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/authorization/authorization.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n AuthorizationHelper\n \n \n AuthorizationService\n \n \n BoardDoRule\n \n \n ContextExternalToolRule\n \n \n CourseGroupRepo\n \n \n CourseGroupRule\n \n \n CourseRepo\n \n \n CourseRule\n \n \n FeathersAuthProvider\n \n \n FeathersAuthorizationService\n \n \n LegacySchoolRepo\n \n \n LegacySchoolRule\n \n \n LessonRepo\n \n \n LessonRule\n \n \n ReferenceLoader\n \n \n RuleManager\n \n \n SchoolExternalToolRepo\n \n \n SchoolExternalToolRule\n \n \n SubmissionRepo\n \n \n SubmissionRule\n \n \n TaskRepo\n \n \n TaskRule\n \n \n TeamRule\n \n \n TeamsRepo\n \n \n UserLoginMigrationRule\n \n \n UserRepo\n \n \n UserRule\n \n \n \n \n Imports\n \n \n FeathersModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n AuthorizationService\n \n \n FeathersAuthorizationService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { ALL_RULES } from '@shared/domain/rules';\nimport { FeathersModule } from '@shared/infra/feathers';\nimport {\n\tCourseGroupRepo,\n\tCourseRepo,\n\tLessonRepo,\n\tSchoolExternalToolRepo,\n\tLegacySchoolRepo,\n\tSubmissionRepo,\n\tTaskRepo,\n\tTeamsRepo,\n\tUserRepo,\n} from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { ToolModule } from '@src/modules/tool';\nimport { BoardModule } from '../board';\nimport { AuthorizationHelper } from './authorization.helper';\nimport { AuthorizationService } from './authorization.service';\nimport { FeathersAuthorizationService, FeathersAuthProvider } from './feathers';\nimport { ReferenceLoader } from './reference.loader';\nimport { RuleManager } from './rule-manager';\n\n@Module({\n\t// TODO: remove forwardRef to TooModule N21-1055\n\timports: [\n\t\tFeathersModule,\n\t\tLoggerModule,\n\t\tLegacySchoolModule,\n\t\tforwardRef(() => ToolModule),\n\t\tforwardRef(() => BoardModule),\n\t],\n\tproviders: [\n\t\tFeathersAuthorizationService,\n\t\tFeathersAuthProvider,\n\t\tAuthorizationService,\n\t\t...ALL_RULES,\n\t\tReferenceLoader,\n\t\tUserRepo,\n\t\tCourseRepo,\n\t\tCourseGroupRepo,\n\t\tTaskRepo,\n\t\tLegacySchoolRepo,\n\t\tLessonRepo,\n\t\tTeamsRepo,\n\t\tSubmissionRepo,\n\t\tSchoolExternalToolRepo,\n\t\tRuleManager,\n\t\tAuthorizationHelper,\n\t],\n\texports: [FeathersAuthorizationService, AuthorizationService],\n})\nexport class AuthorizationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AuthorizationParams.html":{"url":"classes/AuthorizationParams.html","title":"class - AuthorizationParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AuthorizationParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/authorization.params.ts\n \n\n \n Deprecated\n \n \n \n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n code\n \n \n \n \n Optional\n error\n \n \n \n \n Optional\n error_description\n \n \n \n \n Optional\n error_uri\n \n \n \n \n state\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : SSOAuthenticationError\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SSOAuthenticationError)\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/authorization.params.ts:27\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';\nimport { SSOAuthenticationError } from '../../interface/sso-authentication-error.enum';\n\n/**\n * @deprecated\n */\nexport class AuthorizationParams {\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tcode?: string;\n\n\t@IsOptional()\n\t@IsEnum(SSOAuthenticationError)\n\terror?: SSOAuthenticationError;\n\n\t@IsOptional()\n\t@IsString()\n\terror_description?: string;\n\n\t@IsOptional()\n\t@IsString()\n\terror_uri?: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\tstate!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/AuthorizationService.html":{"url":"injectables/AuthorizationService.html","title":"injectable - AuthorizationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n AuthorizationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/authorization.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n checkAllPermissions\n \n \n Public\n checkOneOfPermissions\n \n \n Public\n checkPermission\n \n \n Public\n Async\n checkPermissionByReferences\n \n \n Public\n Async\n getUserWithPermissions\n \n \n Public\n hasAllPermissions\n \n \n Public\n hasOneOfPermissions\n \n \n Public\n hasPermission\n \n \n Public\n Async\n hasPermissionByReferences\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ruleManager: RuleManager, loader: ReferenceLoader, authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ruleManager\n \n \n RuleManager\n \n \n \n No\n \n \n \n \n loader\n \n \n ReferenceLoader\n \n \n \n No\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n checkAllPermissions\n \n \n \n \n \n \n \n checkAllPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n checkOneOfPermissions\n \n \n \n \n \n \n \n checkOneOfPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n checkPermission\n \n \n \n \n \n \n \n checkPermission(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n AuthorizableObject | BaseDO\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n checkPermissionByReferences\n \n \n \n \n \n \n \n \n \n \n \n \n checkPermissionByReferences(userId: EntityId, entityName: AuthorizableReferenceType, entityId: EntityId, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n entityName\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n entityId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getUserWithPermissions\n \n \n \n \n \n \n \n getUserWithPermissions(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasAllPermissions\n \n \n \n \n \n \n \n hasAllPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasOneOfPermissions\n \n \n \n \n \n \n \n hasOneOfPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n AuthorizableObject | BaseDO\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n hasPermissionByReferences\n \n \n \n \n \n \n \n \n \n \n \n \n hasPermissionByReferences(userId: EntityId, entityName: AuthorizableReferenceType, entityId: EntityId, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/authorization.service.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n entityName\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n entityId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable, UnauthorizedException } from '@nestjs/common';\nimport { BaseDO, EntityId, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { AuthorizationHelper } from './authorization.helper';\nimport { ForbiddenLoggableException } from './errors/forbidden.loggable-exception';\nimport { ReferenceLoader } from './reference.loader';\nimport { RuleManager } from './rule-manager';\nimport { AuthorizableReferenceType, AuthorizationContext } from './types';\n\n@Injectable()\nexport class AuthorizationService {\n\tconstructor(\n\t\tprivate readonly ruleManager: RuleManager,\n\t\tprivate readonly loader: ReferenceLoader,\n\t\tprivate readonly authorizationHelper: AuthorizationHelper\n\t) {}\n\n\tpublic checkPermission(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext): void {\n\t\tif (!this.hasPermission(user, object, context)) {\n\t\t\tthrow new ForbiddenLoggableException(user.id, object.constructor.name, context);\n\t\t}\n\t}\n\n\tpublic hasPermission(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext): boolean {\n\t\tconst rule = this.ruleManager.selectRule(user, object, context);\n\t\tconst hasPermission = rule.hasPermission(user, object, context);\n\n\t\treturn hasPermission;\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tpublic async checkPermissionByReferences(\n\t\tuserId: EntityId,\n\t\tentityName: AuthorizableReferenceType,\n\t\tentityId: EntityId,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tif (!(await this.hasPermissionByReferences(userId, entityName, entityId, context))) {\n\t\t\tthrow new ForbiddenLoggableException(userId, entityName, context);\n\t\t}\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tpublic async hasPermissionByReferences(\n\t\tuserId: EntityId,\n\t\tentityName: AuthorizableReferenceType,\n\t\tentityId: EntityId,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\t// TODO: This try-catch-block should be removed. See ticket: https://ticketsystem.dbildungscloud.de/browse/BC-4023\n\t\ttry {\n\t\t\tconst [user, object] = await Promise.all([\n\t\t\t\tthis.getUserWithPermissions(userId),\n\t\t\t\tthis.loader.loadAuthorizableObject(entityName, entityId),\n\t\t\t]);\n\t\t\tconst rule = this.ruleManager.selectRule(user, object, context);\n\t\t\tconst hasPermission = rule.hasPermission(user, object, context);\n\n\t\t\treturn hasPermission;\n\t\t} catch (error) {\n\t\t\tthrow new ForbiddenException(\n\t\t\t\tnull,\n\t\t\t\tErrorUtils.createHttpExceptionOptions(error, 'AuthorizationService:hasPermissionByReferences')\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic checkAllPermissions(user: User, requiredPermissions: string[]): void {\n\t\tif (!this.authorizationHelper.hasAllPermissions(user, requiredPermissions)) {\n\t\t\t// TODO: Should be ForbiddenException\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\t}\n\n\tpublic hasAllPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\treturn this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n\t}\n\n\tpublic checkOneOfPermissions(user: User, requiredPermissions: string[]): void {\n\t\tif (!this.authorizationHelper.hasOneOfPermissions(user, requiredPermissions)) {\n\t\t\t// TODO: Should be ForbiddenException\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\t}\n\n\tpublic hasOneOfPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\treturn this.authorizationHelper.hasOneOfPermissions(user, requiredPermissions);\n\t}\n\n\tpublic async getUserWithPermissions(userId: EntityId): Promise {\n\t\tconst userWithPermissions = await this.loader.getUserWithPermissions(userId);\n\n\t\treturn userWithPermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/AxiosResponseImp.html":{"url":"classes/AxiosResponseImp.html","title":"class - AxiosResponseImp","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n AxiosResponseImp\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/axios-response.factory.ts\n \n\n\n\n\n \n Implements\n \n \n AxiosResponse\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n config\n \n \n data\n \n \n headers\n \n \n status\n \n \n statusText\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: AxiosResponseProps)\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n AxiosResponseProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : InternalAxiosRequestConfig<>\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n headers\n \n \n \n \n \n \n Type : AxiosHeaders\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n statusText\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/axios-response.factory.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { AxiosHeaderValue, AxiosHeaders, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { BaseFactory } from './base.factory';\n\nexport type AxiosHeadersKeyValue = { [key: string]: AxiosHeaderValue };\ntype AxiosResponseProps = {\n\tdata: T;\n\tstatus: number;\n\tstatusText: string;\n\theaders: AxiosHeadersKeyValue;\n\tconfig: InternalAxiosRequestConfig;\n};\n\nclass AxiosResponseImp implements AxiosResponse {\n\tdata: T;\n\n\tstatus: number;\n\n\tstatusText: string;\n\n\theaders: AxiosHeaders;\n\n\tconfig: InternalAxiosRequestConfig;\n\n\tconstructor(props: AxiosResponseProps) {\n\t\tthis.data = props.data;\n\t\tthis.status = props.status;\n\t\tthis.statusText = props.statusText;\n\t\tthis.headers = new AxiosHeaders(props.headers);\n\t\tthis.config = props.config;\n\t}\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const axiosResponseFactory = BaseFactory.define, AxiosResponseProps>(\n\tAxiosResponseImp,\n\t() => {\n\t\treturn {\n\t\t\tdata: '',\n\t\t\tstatus: 200,\n\t\t\tstatusText: '',\n\t\t\theaders: new AxiosHeaders(),\n\t\t\tconfig: { headers: new AxiosHeaders() },\n\t\t};\n\t}\n);\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBBaseMeetingConfig.html":{"url":"classes/BBBBaseMeetingConfig.html","title":"class - BBBBaseMeetingConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBBaseMeetingConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/request/bbb-base-meeting.config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n meetingID\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(config: BBBBaseMeetingConfig)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-base-meeting.config.ts:1\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n \n BBBBaseMeetingConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-base-meeting.config.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class BBBBaseMeetingConfig {\n\tconstructor(config: BBBBaseMeetingConfig) {\n\t\tthis.meetingID = config.meetingID;\n\t}\n\n\tmeetingID: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBBaseResponse.html":{"url":"interfaces/BBBBaseResponse.html","title":"interface - BBBBaseResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBBaseResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb-base.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n message\n \n \n \n \n messageKey\n \n \n \n \n returncode\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n message\n \n \n \n \n \n \n \n \n message: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n messageKey\n \n \n \n \n \n \n \n \n messageKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n returncode\n \n \n \n \n \n \n \n \n returncode: BBBStatus\n\n \n \n\n\n \n \n Type : BBBStatus\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBStatus } from './bbb-status.enum';\n\nexport interface BBBBaseResponse {\n\treturncode: BBBStatus;\n\tmessageKey: string;\n\tmessage: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBCreateConfig.html":{"url":"classes/BBBCreateConfig.html","title":"class - BBBCreateConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBCreateConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseMeetingConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n allowModsToUnmuteUsers\n \n \n Optional\n attendeePW\n \n \n Optional\n guestPolicy\n \n \n Optional\n logoutURL\n \n \n Optional\n meta_bbb-origin-server-name\n \n \n Optional\n moderatorPW\n \n \n Optional\n muteOnStart\n \n \n name\n \n \n Optional\n welcome\n \n \n meetingID\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(config: BBBCreateConfig)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n \n BBBCreateConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n allowModsToUnmuteUsers\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n attendeePW\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n guestPolicy\n \n \n \n \n \n \n Type : GuestPolicy\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logoutURL\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n meta_bbb-origin-server-name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n moderatorPW\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n muteOnStart\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n welcome\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-create.config.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BBBBaseMeetingConfig\n\n \n \n \n \n Defined in BBBBaseMeetingConfig:6\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { BBBBaseMeetingConfig } from './bbb-base-meeting.config';\n\nexport enum GuestPolicy {\n\tALWAYS_ACCEPT = 'ALWAYS_ACCEPT',\n\tALWAYS_DENY = 'ALWAYS_DENY',\n\tASK_MODERATOR = 'ASK_MODERATOR',\n}\n\nexport class BBBCreateConfig extends BBBBaseMeetingConfig {\n\tconstructor(config: BBBCreateConfig) {\n\t\tsuper(config);\n\t\tthis.name = config.name;\n\t\tthis.meetingID = config.meetingID;\n\t\tthis.logoutURL = config.logoutURL;\n\t\tthis.welcome = config.welcome;\n\t\tthis.guestPolicy = config.guestPolicy;\n\t\tthis.moderatorPW = config.moderatorPW;\n\t\tthis.attendeePW = config.attendeePW;\n\t\tthis.allowModsToUnmuteUsers = config.allowModsToUnmuteUsers;\n\t\tthis['meta_bbb-origin-server-name'] = config['meta_bbb-origin-server-name'];\n\t}\n\n\tname: string;\n\n\tattendeePW?: string;\n\n\tmoderatorPW?: string;\n\n\tlogoutURL?: string;\n\n\twelcome?: string;\n\n\tguestPolicy?: GuestPolicy;\n\n\tmuteOnStart?: boolean;\n\n\tallowModsToUnmuteUsers?: boolean;\n\n\t'meta_bbb-origin-server-name'?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBCreateConfigBuilder.html":{"url":"classes/BBBCreateConfigBuilder.html","title":"class - BBBCreateConfigBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBCreateConfigBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts\n \n\n\n\n \n Extends\n \n \n Builder\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n build\n \n \n withGuestPolicy\n \n \n withLogoutUrl\n \n \n withMuteOnStart\n \n \n withWelcome\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from Builder\n\n \n \n \n \n Defined in Builder:2\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \n \n build()\n \n \n\n\n \n \n Inherited from Builder\n\n \n \n \n \n Defined in Builder:26\n\n \n \n\n\n \n \n\n \n Returns : BBBCreateConfig\n\n \n \n \n \n \n \n \n \n \n \n \n withGuestPolicy\n \n \n \n \n \n \nwithGuestPolicy(guestPolicy: GuestPolicy)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n guestPolicy\n \n GuestPolicy\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withLogoutUrl\n \n \n \n \n \n \nwithLogoutUrl(logoutUrl: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoutUrl\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withMuteOnStart\n \n \n \n \n \n \nwithMuteOnStart(value: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withWelcome\n \n \n \n \n \n \nwithWelcome(welcome: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-create-config.builder.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n welcome\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { BBBCreateConfig, BBBRole, GuestPolicy } from '../request';\nimport { Builder } from './builder';\n\nexport class BBBCreateConfigBuilder extends Builder {\n\twithLogoutUrl(logoutUrl: string): BBBCreateConfigBuilder {\n\t\tthis.product.logoutURL = logoutUrl;\n\t\treturn this;\n\t}\n\n\twithWelcome(welcome: string): BBBCreateConfigBuilder {\n\t\tthis.product.welcome = welcome;\n\t\treturn this;\n\t}\n\n\twithGuestPolicy(guestPolicy: GuestPolicy): BBBCreateConfigBuilder {\n\t\tthis.product.guestPolicy = guestPolicy;\n\t\treturn this;\n\t}\n\n\twithMuteOnStart(value: boolean): BBBCreateConfigBuilder {\n\t\tthis.product.muteOnStart = value;\n\t\treturn this;\n\t}\n\n\toverride build(): BBBCreateConfig {\n\t\tthis.product['meta_bbb-origin-server-name'] = Configuration.get('SC_DOMAIN') as string;\n\n\t\t// Deprecated fields from BBB that have to be set to a consistent value, in order to call the create endpoint multiple times without error\n\t\tthis.product.moderatorPW = BBBRole.MODERATOR;\n\t\tthis.product.attendeePW = BBBRole.VIEWER;\n\n\t\tthis.product.allowModsToUnmuteUsers = true;\n\n\t\treturn super.build();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBCreateResponse.html":{"url":"interfaces/BBBCreateResponse.html","title":"interface - BBBCreateResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBCreateResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb-create.response.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseResponse\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createDate\n \n \n \n \n createTime\n \n \n \n \n dialNumber\n \n \n \n \n duration\n \n \n \n \n hasBeenForciblyEnded\n \n \n \n \n hasUserJoined\n \n \n \n \n internalMeetingID\n \n \n \n \n meetingID\n \n \n \n \n parentMeetingID\n \n \n \n \n voiceBridge\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createDate\n \n \n \n \n \n \n \n \n createDate: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n createTime\n \n \n \n \n \n \n \n \n createTime: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n dialNumber\n \n \n \n \n \n \n \n \n dialNumber: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n duration\n \n \n \n \n \n \n \n \n duration: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hasBeenForciblyEnded\n \n \n \n \n \n \n \n \n hasBeenForciblyEnded: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hasUserJoined\n \n \n \n \n \n \n \n \n hasUserJoined: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n internalMeetingID\n \n \n \n \n \n \n \n \n internalMeetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n \n \n meetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentMeetingID\n \n \n \n \n \n \n \n \n parentMeetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n voiceBridge\n \n \n \n \n \n \n \n \n voiceBridge: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBBaseResponse } from './bbb-base.response';\n\nexport interface BBBCreateResponse extends BBBBaseResponse {\n\tmeetingID: string;\n\tinternalMeetingID: string;\n\tparentMeetingID: string;\n\tcreateTime: number;\n\tvoiceBridge: number;\n\tdialNumber: string;\n\tcreateDate: string;\n\thasUserJoined: boolean;\n\tduration: number;\n\thasBeenForciblyEnded: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBJoinConfig.html":{"url":"classes/BBBJoinConfig.html","title":"class - BBBJoinConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBJoinConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseMeetingConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n fullName\n \n \n Optional\n guest\n \n \n Optional\n redirect\n \n \n role\n \n \n Optional\n userID\n \n \n meetingID\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(config: BBBJoinConfig)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n \n BBBJoinConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n fullName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n guest\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n redirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : BBBRole\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n userID\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/request/bbb-join.config.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BBBBaseMeetingConfig\n\n \n \n \n \n Defined in BBBBaseMeetingConfig:6\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { BBBBaseMeetingConfig } from './bbb-base-meeting.config';\n\nexport enum BBBRole {\n\tMODERATOR = 'MODERATOR',\n\tVIEWER = 'VIEWER',\n}\n\nexport class BBBJoinConfig extends BBBBaseMeetingConfig {\n\tconstructor(config: BBBJoinConfig) {\n\t\tsuper(config);\n\t\tthis.fullName = config.fullName;\n\t\tthis.role = config.role;\n\t\tthis.userID = config.userID;\n\t\tthis.guest = config.guest;\n\t\tthis.redirect = config.redirect;\n\t}\n\n\tfullName: string;\n\n\trole: BBBRole;\n\n\tuserID?: string;\n\n\tguest?: boolean;\n\n\tredirect?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BBBJoinConfigBuilder.html":{"url":"classes/BBBJoinConfigBuilder.html","title":"class - BBBJoinConfigBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BBBJoinConfigBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/builder/bbb-join-config.builder.ts\n \n\n\n\n \n Extends\n \n \n Builder\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n asGuest\n \n \n withRole\n \n \n withUserId\n \n \n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from Builder\n\n \n \n \n \n Defined in Builder:2\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n asGuest\n \n \n \n \n \n \nasGuest(value: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-join-config.builder.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBJoinConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withRole\n \n \n \n \n \n \nwithRole(value: BBBRole)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-join-config.builder.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n BBBRole\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBJoinConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withUserId\n \n \n \n \n \n \nwithUserId(value: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/bbb-join-config.builder.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBJoinConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild()\n \n \n\n\n \n \n Inherited from Builder\n\n \n \n \n \n Defined in Builder:8\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BBBJoinConfig, BBBRole } from '../request/bbb-join.config';\nimport { Builder } from './builder';\n\nexport class BBBJoinConfigBuilder extends Builder {\n\tasGuest(value: boolean): BBBJoinConfigBuilder {\n\t\tthis.product.guest = value;\n\t\treturn this;\n\t}\n\n\twithRole(value: BBBRole): BBBJoinConfigBuilder {\n\t\tthis.product.role = value;\n\t\treturn this;\n\t}\n\n\twithUserId(value: string): BBBJoinConfigBuilder {\n\t\tthis.product.userID = value;\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBJoinResponse.html":{"url":"interfaces/BBBJoinResponse.html","title":"interface - BBBJoinResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBJoinResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb-join.response.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseResponse\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n auth_token\n \n \n \n \n meeting_id\n \n \n \n \n session_token\n \n \n \n \n url\n \n \n \n \n user_id\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n auth_token\n \n \n \n \n \n \n \n \n auth_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n meeting_id\n \n \n \n \n \n \n \n \n meeting_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n session_token\n \n \n \n \n \n \n \n \n session_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user_id\n \n \n \n \n \n \n \n \n user_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBBaseResponse } from './bbb-base.response';\n\nexport interface BBBJoinResponse extends BBBBaseResponse {\n\tmeeting_id: string;\n\tuser_id: string;\n\tauth_token: string;\n\tsession_token: string;\n\turl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBMeetingInfoResponse.html":{"url":"interfaces/BBBMeetingInfoResponse.html","title":"interface - BBBMeetingInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBMeetingInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb-meeting-info.response.ts\n \n\n\n\n \n Extends\n \n \n BBBBaseResponse\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n attendees\n \n \n \n Optional\n \n breakout\n \n \n \n Optional\n \n breakoutRooms\n \n \n \n \n createDate\n \n \n \n \n createTime\n \n \n \n \n dialNumber\n \n \n \n \n duration\n \n \n \n \n endTime\n \n \n \n \n hasBeenForciblyEnded\n \n \n \n \n hasUserJoined\n \n \n \n \n internalMeetingID\n \n \n \n \n isBreakout\n \n \n \n \n listenerCount\n \n \n \n \n maxUsers\n \n \n \n \n meetingID\n \n \n \n \n meetingName\n \n \n \n \n metadata\n \n \n \n \n moderatorCount\n \n \n \n \n participantCount\n \n \n \n \n recording\n \n \n \n \n running\n \n \n \n \n startTime\n \n \n \n \n videoCount\n \n \n \n \n voiceBridge\n \n \n \n \n voiceParticipantCount\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n attendees\n \n \n \n \n \n \n \n \n attendees: literal type[]\n\n \n \n\n\n \n \n Type : literal type[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n breakout\n \n \n \n \n \n \n \n \n breakout: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n breakoutRooms\n \n \n \n \n \n \n \n \n breakoutRooms: literal type[]\n\n \n \n\n\n \n \n Type : literal type[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n createDate\n \n \n \n \n \n \n \n \n createDate: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n createTime\n \n \n \n \n \n \n \n \n createTime: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n dialNumber\n \n \n \n \n \n \n \n \n dialNumber: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n duration\n \n \n \n \n \n \n \n \n duration: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n endTime\n \n \n \n \n \n \n \n \n endTime: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hasBeenForciblyEnded\n \n \n \n \n \n \n \n \n hasBeenForciblyEnded: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hasUserJoined\n \n \n \n \n \n \n \n \n hasUserJoined: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n internalMeetingID\n \n \n \n \n \n \n \n \n internalMeetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isBreakout\n \n \n \n \n \n \n \n \n isBreakout: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n listenerCount\n \n \n \n \n \n \n \n \n listenerCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n maxUsers\n \n \n \n \n \n \n \n \n maxUsers: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n meetingID\n \n \n \n \n \n \n \n \n meetingID: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n meetingName\n \n \n \n \n \n \n \n \n meetingName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n metadata\n \n \n \n \n \n \n \n \n metadata: \n\n \n \n\n\n\n\n\n\n\n \n \n \n \n \n \n \n moderatorCount\n \n \n \n \n \n \n \n \n moderatorCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n participantCount\n \n \n \n \n \n \n \n \n participantCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n recording\n \n \n \n \n \n \n \n \n recording: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n running\n \n \n \n \n \n \n \n \n running: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n startTime\n \n \n \n \n \n \n \n \n startTime: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n videoCount\n \n \n \n \n \n \n \n \n videoCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n voiceBridge\n \n \n \n \n \n \n \n \n voiceBridge: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n voiceParticipantCount\n \n \n \n \n \n \n \n \n voiceParticipantCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBBaseResponse } from './bbb-base.response';\n\nexport interface BBBMeetingInfoResponse extends BBBBaseResponse {\n\tmeetingName: string;\n\tmeetingID: string;\n\tinternalMeetingID: string;\n\tcreateTime: number;\n\tcreateDate: string;\n\tvoiceBridge: number;\n\tdialNumber: string;\n\trunning: boolean;\n\tduration: number;\n\thasUserJoined: boolean;\n\trecording: boolean;\n\thasBeenForciblyEnded: boolean;\n\tstartTime: number;\n\tendTime: number;\n\tparticipantCount: number;\n\tlistenerCount: number;\n\tvoiceParticipantCount: number;\n\tvideoCount: number;\n\tmaxUsers: number;\n\tmoderatorCount: number;\n\tattendees: {\n\t\tattendee: {\n\t\t\tuserID: string;\n\t\t\tfullName: string;\n\t\t\trole: string;\n\t\t\tisPresenter: boolean;\n\t\t\tisListeningOnly: boolean;\n\t\t\thasJoinedVoice: boolean;\n\t\t\thasVideo: boolean;\n\t\t\tclientType: string;\n\t\t};\n\t}[];\n\tmetadata: unknown;\n\tisBreakout: boolean;\n\tbreakoutRooms?: {\n\t\tbreakout: string;\n\t}[];\n\tbreakout?: {\n\t\tparentMeetingID: string;\n\t\tsequence: number;\n\t\tfreeJoin: boolean;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BBBResponse.html":{"url":"interfaces/BBBResponse.html","title":"interface - BBBResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BBBResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/response/bbb.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n response\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n response\n \n \n \n \n \n \n \n \n response: T\n\n \n \n\n\n \n \n Type : T\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BBBBaseResponse } from './bbb-base.response';\n\nexport interface BBBResponse {\n\tresponse: T;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BBBService.html":{"url":"injectables/BBBService.html","title":"injectable - BBBService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BBBService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/bbb.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n create\n \n \n end\n \n \n Protected\n generateChecksum\n \n \n getBbbRequestConfig\n \n \n getMeetingInfo\n \n \n Protected\n getUrl\n \n \n Async\n join\n \n \n Protected\n toParams\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n baseUrl\n \n \n salt\n \n \n presentationUrl\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbSettings: IBbbSettings, httpService: HttpService, converterUtil: ConverterUtil)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbSettings\n \n \n IBbbSettings\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n converterUtil\n \n \n ConverterUtil\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(config: BBBCreateConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:39\n \n \n\n\n \n \n Creates a new BBB Meeting. The create call is idempotent: you can call it multiple times with the same parameters without side effects.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n BBBCreateConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n end\n \n \n \n \n \n \nend(config: BBBBaseMeetingConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:84\n \n \n\n\n \n \n Ends a BBB Meeting.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n BBBBaseMeetingConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n generateChecksum\n \n \n \n \n \n \n \n generateChecksum(callName: string, queryParams: URLSearchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:136\n \n \n\n\n \n \n Returns a SHA1 encoded checksum for the input parameters.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n callName\n \n string\n \n\n \n No\n \n\n\n \n \n queryParams\n \n URLSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getBbbRequestConfig\n \n \n \n \n \n \ngetBbbRequestConfig(presentationUrl: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n presentationUrl\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getMeetingInfo\n \n \n \n \n \n \ngetMeetingInfo(config: BBBBaseMeetingConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:107\n \n \n\n\n \n \n Returns information about a BBB Meeting.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n BBBBaseMeetingConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n getUrl\n \n \n \n \n \n \n \n getUrl(callName: string, queryParams: URLSearchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:167\n \n \n\n\n \n \n Builds the url for BBB.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n callName\n \n string\n \n\n \n No\n \n\n\n \n Name of the BBB api function.\n\n \n \n \n queryParams\n \n URLSearchParams\n \n\n \n No\n \n\n\n \n Parameters for the endpoint.\n\n \n \n \n \n \n \n \n \n Returns : string\n\n \n \n A callable url.\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n join\n \n \n \n \n \n \n \n join(config: BBBJoinConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:72\n \n \n\n\n \n \n Creates a join link to a BBB Meeting.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n BBBJoinConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n The join url\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n toParams\n \n \n \n \n \n \n \n toParams(object: BBBCreateConfig | BBBBaseMeetingConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:150\n \n \n\n\n \n \n Extracts fields from a javascript object and builds a URLSearchParams object from it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n object\n \n BBBCreateConfig | BBBBaseMeetingConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : URLSearchParams\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n baseUrl\n \n \n\n \n \n getbaseUrl()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:21\n \n \n\n \n \n \n \n \n \n \n salt\n \n \n\n \n \n getsalt()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:25\n \n \n\n \n \n \n \n \n \n \n presentationUrl\n \n \n\n \n \n getpresentationUrl()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/bbb.service.ts:29\n \n \n\n \n \n\n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { ConverterUtil } from '@shared/common/utils';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { AxiosResponse } from 'axios';\nimport crypto from 'crypto';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { URL, URLSearchParams } from 'url';\nimport { BbbSettings, IBbbSettings } from './bbb-settings.interface';\nimport { BBBBaseMeetingConfig, BBBCreateConfig, BBBJoinConfig } from './request';\nimport { BBBBaseResponse, BBBCreateResponse, BBBMeetingInfoResponse, BBBResponse, BBBStatus } from './response';\n\n@Injectable()\nexport class BBBService {\n\tconstructor(\n\t\t@Inject(BbbSettings) private readonly bbbSettings: IBbbSettings,\n\t\tprivate readonly httpService: HttpService,\n\t\tprivate readonly converterUtil: ConverterUtil\n\t) {}\n\n\tprotected get baseUrl(): string {\n\t\treturn this.bbbSettings.host;\n\t}\n\n\tprotected get salt(): string {\n\t\treturn this.bbbSettings.salt;\n\t}\n\n\tprotected get presentationUrl(): string {\n\t\treturn this.bbbSettings.presentationUrl;\n\t}\n\n\t/**\n\t * Creates a new BBB Meeting. The create call is idempotent: you can call it multiple times with the same parameters without side effects.\n\t * @param {BBBCreateConfig} config\n\t * @returns {Promise>}\n\t * @throws {InternalServerErrorException}\n\t */\n\tcreate(config: BBBCreateConfig): Promise> {\n\t\tconst url: string = this.getUrl('create', this.toParams(config));\n\t\tconst conf = { headers: { 'Content-Type': 'application/xml' } };\n\t\tconst data = this.getBbbRequestConfig(this.presentationUrl);\n\t\tconst observable: Observable> = this.httpService.post(url, data, conf);\n\n\t\treturn firstValueFrom(observable)\n\t\t\t.then((resp: AxiosResponse) => {\n\t\t\t\tconst bbbResp = this.converterUtil.xml2object | BBBResponse>(\n\t\t\t\t\tresp.data\n\t\t\t\t);\n\t\t\t\tif (bbbResp.response.returncode !== BBBStatus.SUCCESS) {\n\t\t\t\t\tthrow new InternalServerErrorException(`${bbbResp.response.messageKey}: ${bbbResp.response.message}`);\n\t\t\t\t}\n\t\t\t\treturn bbbResp as BBBResponse;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthrow new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(error, 'BBBService:create'));\n\t\t\t});\n\t}\n\n\t// it should be a private method\n\tgetBbbRequestConfig(presentationUrl: string): string {\n\t\tif (presentationUrl === '') return '';\n\t\treturn ``;\n\t}\n\n\t/**\n\t * Creates a join link to a BBB Meeting.\n\t * @param {BBBJoinConfig} config\n\t * @returns {Promise} The join url\n\t * @throws {InternalServerErrorException}\n\t */\n\tasync join(config: BBBJoinConfig): Promise {\n\t\tawait this.getMeetingInfo(new BBBBaseMeetingConfig({ meetingID: config.meetingID }));\n\n\t\treturn this.getUrl('join', this.toParams(config));\n\t}\n\n\t/**\n\t * Ends a BBB Meeting.\n\t * @param {BBBBaseMeetingConfig} config\n\t * @returns {BBBResponse}\n\t * @throws {InternalServerErrorException}\n\t */\n\tend(config: BBBBaseMeetingConfig): Promise> {\n\t\tconst url: string = this.getUrl('end', this.toParams(config));\n\t\tconst observable: Observable> = this.httpService.get(url);\n\n\t\treturn firstValueFrom(observable)\n\t\t\t.then((resp: AxiosResponse) => {\n\t\t\t\tconst bbbResp = this.converterUtil.xml2object>(resp.data);\n\t\t\t\tif (bbbResp.response.returncode !== BBBStatus.SUCCESS) {\n\t\t\t\t\tthrow new InternalServerErrorException(`${bbbResp.response.messageKey}: ${bbbResp.response.message}`);\n\t\t\t\t}\n\t\t\t\treturn bbbResp;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthrow new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(error, 'BBBService:end'));\n\t\t\t});\n\t}\n\n\t/**\n\t * Returns information about a BBB Meeting.\n\t * @param {BBBBaseMeetingConfig} config\n\t * @returns {Promise}\n\t * @throws {InternalServerErrorException}\n\t */\n\tgetMeetingInfo(config: BBBBaseMeetingConfig): Promise> {\n\t\tconst url: string = this.getUrl('getMeetingInfo', this.toParams(config));\n\t\tconst observable: Observable> = this.httpService.get(url);\n\n\t\treturn firstValueFrom(observable)\n\t\t\t.then((resp: AxiosResponse) => {\n\t\t\t\tconst bbbResp = this.converterUtil.xml2object | BBBResponse\n\t\t\t\t>(resp.data);\n\t\t\t\tif (bbbResp.response.returncode !== BBBStatus.SUCCESS) {\n\t\t\t\t\tthrow new InternalServerErrorException(`${bbbResp.response.messageKey}: ${bbbResp.response.message}`);\n\t\t\t\t}\n\t\t\t\treturn bbbResp as BBBResponse;\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t\tnull,\n\t\t\t\t\tErrorUtils.createHttpExceptionOptions(error, 'BBBService:getMeetingInfo')\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\t// should be private\n\t/**\n\t * Returns a SHA1 encoded checksum for the input parameters.\n\t * @param {string} callName\n\t * @param {URLSearchParams} queryParams\n\t * @returns {string}\n\t */\n\tprotected generateChecksum(callName: string, queryParams: URLSearchParams): string {\n\t\tconst queryString: string = queryParams.toString();\n\t\tconst sha = crypto.createHash('sha1');\n\t\tsha.update(callName + queryString + this.salt);\n\t\tconst checksum: string = sha.digest('hex');\n\t\treturn checksum;\n\t}\n\n\t// should be private\n\t/**\n\t * Extracts fields from a javascript object and builds a URLSearchParams object from it.\n\t * @param {object} object\n\t * @returns {URLSearchParams}\n\t */\n\tprotected toParams(object: BBBCreateConfig | BBBBaseMeetingConfig): URLSearchParams {\n\t\tconst params: URLSearchParams = new URLSearchParams();\n\t\tObject.keys(object).forEach((key) => {\n\t\t\tif (key) {\n\t\t\t\tparams.append(key, String(object[key]));\n\t\t\t}\n\t\t});\n\t\treturn params;\n\t}\n\n\t// should be private\n\t/**\n\t * Builds the url for BBB.\n\t * @param callName Name of the BBB api function.\n\t * @param queryParams Parameters for the endpoint.\n\t * @returns {string} A callable url.\n\t */\n\tprotected getUrl(callName: string, queryParams: URLSearchParams): string {\n\t\tconst checksum: string = this.generateChecksum(callName, queryParams);\n\t\tqueryParams.append('checksum', checksum);\n\n\t\tconst url: URL = new URL(this.baseUrl);\n\t\turl.pathname = `/bigbluebutton/api/${callName}`;\n\t\turl.search = queryParams.toString();\n\n\t\treturn url.toString();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseDO.html":{"url":"classes/BaseDO.html","title":"class - BaseDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/base.do.ts\n \n\n \n Deprecated\n \n \n \n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Protected\n constructor(id?: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/base.do.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/base.do.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export abstract class BaseDO {\n\tid?: string;\n\n\tprotected constructor(id?: string) {\n\t\tthis.id = id;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BaseDORepo.html":{"url":"injectables/BaseDORepo.html","title":"injectable - BaseDORepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BaseDORepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/base.do.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Abstract\n entityFactory\n \n \n Async\n findById\n \n \n Protected\n Abstract\n mapDOToEntityProperties\n \n \n Protected\n Abstract\n mapEntityToDO\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:98\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n entityFactory\n \n \n \n \n \n \n \n entityFactory(props: P)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n P\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:116\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Abstract\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(entityDO: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : P\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Abstract\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: E)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:77\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/base.do.repo.ts:11\n \n \n\n \n \n\n \n\n\n \n import { EntityName, FilterQuery } from '@mikro-orm/core';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BaseDO, BaseEntity, baseEntityProperties, EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\n\n@Injectable()\nexport abstract class BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {}\n\n\tabstract get entityName(): EntityName;\n\n\tabstract entityFactory(props: P): E;\n\n\tprotected abstract mapEntityToDO(entity: E): DO;\n\n\tprotected abstract mapDOToEntityProperties(entityDO: DO): P;\n\n\tasync save(entityDo: DO): Promise {\n\t\tconst savedDos: DO[] = await this.saveAll([entityDo]);\n\t\treturn savedDos[0];\n\t}\n\n\tasync saveAll(entityDos: DO[]): Promise {\n\t\tconst promises: Promise[] = entityDos.map(async (domainObject: DO): Promise => {\n\t\t\tlet entity: E;\n\t\t\tif (!domainObject.id) {\n\t\t\t\tentity = this.createEntity(domainObject);\n\t\t\t} else {\n\t\t\t\tentity = await this.updateEntity(domainObject);\n\t\t\t}\n\t\t\treturn entity;\n\t\t});\n\n\t\tconst entities: E[] = await Promise.all(promises);\n\t\tawait this._em.persistAndFlush(entities);\n\n\t\tconst savedDos: DO[] = entities.map((entity) => this.mapEntityToDO(entity));\n\t\treturn savedDos;\n\t}\n\n\tprivate createEntity(domainObject: DO): E {\n\t\tconst newEntity: E = this.createNewEntityFromDO(domainObject);\n\n\t\tconst created: E = this._em.create(this.entityName, newEntity);\n\t\tthis.logger.debug(`Created new entity with id ${created.id}`);\n\t\treturn created;\n\t}\n\n\tprivate async updateEntity(domainObject: DO): Promise {\n\t\tconst newEntity: E = this.createNewEntityFromDO(domainObject);\n\n\t\tthis.removeProtectedEntityFields(newEntity);\n\n\t\tconst fetchedEntity: E = await this._em.findOneOrFail(this.entityName, {\n\t\t\tid: domainObject.id,\n\t\t} as FilterQuery);\n\t\tconst updated: E = this._em.assign(fetchedEntity, newEntity);\n\t\tthis.logger.debug(`Updated entity with id ${updated.id}`);\n\t\treturn updated;\n\t}\n\n\tprotected createNewEntityFromDO(domainObject: DO) {\n\t\tconst entityProps: P = this.mapDOToEntityProperties(domainObject);\n\t\tconst newEntity: E = this.entityFactory(entityProps);\n\n\t\tif (domainObject.id) {\n\t\t\tnewEntity.id = domainObject.id;\n\t\t\tnewEntity._id = new ObjectId(domainObject.id);\n\t\t}\n\t\treturn newEntity;\n\t}\n\n\t/**\n\t * Ignore base entity properties when updating entity\n\t */\n\tprivate removeProtectedEntityFields(entity: E) {\n\t\tObject.keys(entity).forEach((key) => {\n\t\t\tif (baseEntityProperties.includes(key)) {\n\t\t\t\tdelete entity[key];\n\t\t\t}\n\t\t});\n\t}\n\n\tasync delete(domainObjects: DO[] | DO): Promise {\n\t\tconst dos: DO[] = Array.isArray(domainObjects) ? domainObjects : [domainObjects];\n\n\t\tconst entities: E[] = dos.map((domainObj: DO): E => this.createNewEntityFromDO(domainObj));\n\n\t\tthis._em.remove(entities);\n\t\tawait this._em.flush();\n\t}\n\n\t// TODO: https://ticketsystem.dbildungscloud.de/browse/ARC-173 replace with delete(domainObject: DO)\n\t/**\n\t * @deprecated Please use {@link delete} instead\n\t */\n\tasync deleteById(id: EntityId | EntityId[]): Promise {\n\t\tconst ids: string[] = Array.isArray(id) ? id : [id];\n\n\t\tlet total = 0;\n\t\tconst promises: Promise[] = ids.map(async (entityId: string): Promise => {\n\t\t\tconst deleted: number = await this.deleteEntityById(entityId);\n\t\t\ttotal += deleted;\n\t\t});\n\n\t\tawait Promise.all(promises);\n\t\treturn total;\n\t}\n\n\tprivate deleteEntityById(id: EntityId): Promise {\n\t\tconst promise: Promise = this._em.nativeDelete(this.entityName, { id } as FilterQuery);\n\t\treturn promise;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst entity: E = await this._em.findOneOrFail(this.entityName, { id } as FilterQuery);\n\t\treturn this.mapEntityToDO(entity);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseDomainObject.html":{"url":"classes/BaseDomainObject.html","title":"class - BaseDomainObject","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseDomainObject\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/base-domain-object.ts\n \n\n \n Deprecated\n \n \n \n \n\n\n\n \n Implements\n \n \n AuthorizableObject\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Abstract\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/interface/base-domain-object.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { AuthorizableObject } from '../domain-object';\n\n// idea support for each CRUD action like Actions.read as abstract class, to have a generall interface\n\n/**\n * @deprecated\n */\nexport abstract class BaseDomainObject implements AuthorizableObject {\n\tabstract id: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseEntity.html":{"url":"classes/BaseEntity.html","title":"class - BaseEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/base.entity.ts\n \n\n\n\n\n \n Implements\n \n \n IEntity\n AuthorizableObject\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _id\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @PrimaryKey()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @SerializedPrimaryKey()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PrimaryKey, Property, SerializedPrimaryKey } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport type { AuthorizableObject } from '../domain-object';\nimport type { IEntity } from '../interface';\n\nexport abstract class BaseEntity implements IEntity, AuthorizableObject {\n\t@PrimaryKey()\n\t_id!: ObjectId;\n\n\t@SerializedPrimaryKey()\n\tid!: string;\n}\n\n/**\n * Describes the properties available for entities when used as @IdentifiedReference\n */\nexport type BaseEntityReference = 'id' | '_id';\n\n// NOTE we have to include BaseEntityWithTimestamps in the entity discovery if we inherit from BaseEntity.\n// that can be cumbersome e.g. in tests. that's why we define it as a root class here.\n// TODO check if we can use EntitySchema to prevent code duplication (decorators don't work for defining properties btw.)\n\nexport abstract class BaseEntityWithTimestamps implements AuthorizableObject {\n\t@PrimaryKey()\n\t_id!: ObjectId;\n\n\t@SerializedPrimaryKey()\n\tid!: string;\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property({ onUpdate: () => new Date() })\n\tupdatedAt = new Date();\n}\n\n// These fields are explicitly ignored when updating an entity. See base.do.repo.ts.\nexport const baseEntityProperties = ['id', '_id', 'updatedAt', 'createdAt'];\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseEntityWithTimestamps.html":{"url":"classes/BaseEntityWithTimestamps.html","title":"class - BaseEntityWithTimestamps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseEntityWithTimestamps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/base.entity.ts\n \n\n\n\n\n \n Implements\n \n \n AuthorizableObject\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n createdAt\n \n \n \n id\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _id\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @PrimaryKey()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @SerializedPrimaryKey()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property({onUpdate: () => })\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/base.entity.ts:34\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PrimaryKey, Property, SerializedPrimaryKey } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport type { AuthorizableObject } from '../domain-object';\nimport type { IEntity } from '../interface';\n\nexport abstract class BaseEntity implements IEntity, AuthorizableObject {\n\t@PrimaryKey()\n\t_id!: ObjectId;\n\n\t@SerializedPrimaryKey()\n\tid!: string;\n}\n\n/**\n * Describes the properties available for entities when used as @IdentifiedReference\n */\nexport type BaseEntityReference = 'id' | '_id';\n\n// NOTE we have to include BaseEntityWithTimestamps in the entity discovery if we inherit from BaseEntity.\n// that can be cumbersome e.g. in tests. that's why we define it as a root class here.\n// TODO check if we can use EntitySchema to prevent code duplication (decorators don't work for defining properties btw.)\n\nexport abstract class BaseEntityWithTimestamps implements AuthorizableObject {\n\t@PrimaryKey()\n\t_id!: ObjectId;\n\n\t@SerializedPrimaryKey()\n\tid!: string;\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property({ onUpdate: () => new Date() })\n\tupdatedAt = new Date();\n}\n\n// These fields are explicitly ignored when updating an entity. See base.do.repo.ts.\nexport const baseEntityProperties = ['id', '_id', 'updatedAt', 'createdAt'];\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BaseFactory.html":{"url":"classes/BaseFactory.html","title":"class - BaseFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BaseFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/base.factory.ts\n \n\n\n \n Description\n \n \n Entity factory based on thoughtbot/fishery\nhttps://github.com/thoughtbot/fishery\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(EntityClass: literal type, propsFactory: Factory)\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n EntityClass\n \n \n literal type\n \n \n \n No\n \n \n \n \n propsFactory\n \n \n Factory\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:15\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:98\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:110\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:47\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:75\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:60\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:148\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:32\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:122\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:144\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:160\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/base.factory.ts:134\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BuildOptions, DeepPartial, Factory, GeneratorFn, HookFn } from 'fishery';\nimport { ObjectId } from 'mongodb';\n\n/**\n * Entity factory based on thoughtbot/fishery\n * https://github.com/thoughtbot/fishery\n *\n * @template T The entity to be built\n * @template U The properties interface of the entity\n * @template I The transient parameters that your factory supports\n * @template C The class of the factory object being created.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class BaseFactory {\n\tprotected readonly propsFactory: Factory;\n\n\tconstructor(private readonly EntityClass: { new (props: U): T }, propsFactory: Factory) {\n\t\tthis.propsFactory = propsFactory;\n\t}\n\n\t/**\n\t * Define a factory\n\t * @template T The entity to be built\n\t * @template U The properties interface of the entity\n\t * @template I The transient parameters that your factory supports\n\t * @template C The class of the factory object being created.\n\t * @param EntityClass The constructor of the entity to be built.\n\t * @param generator Your factory function - see `Factory.define()` in thoughtbot/fishery\n\t * @returns\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic define>(\n\t\tthis: new (EntityClass: { new (props: U): T }, propsFactory: Factory) => F,\n\t\tEntityClass: { new (props: U): T },\n\t\tgenerator: GeneratorFn\n\t): F {\n\t\tconst propsFactory = Factory.define(generator);\n\t\tconst factory = new this(EntityClass, propsFactory);\n\t\treturn factory;\n\t}\n\n\t/**\n\t * Build an entity using your factory\n\t * @param params\n\t * @returns an entity\n\t */\n\tbuild(params?: DeepPartial, options: BuildOptions = {}): T {\n\t\tconst props = this.propsFactory.build(params, options);\n\t\tconst entity = new this.EntityClass(props);\n\n\t\treturn entity;\n\t}\n\n\t/**\n\t * Build an entity using your factory and generate a id for it.\n\t * @param params\n\t * @param id\n\t * @returns an entity\n\t */\n\tbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions = {}): T {\n\t\tconst entity = this.build(params, options);\n\t\tconst generatedId = new ObjectId(id);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst entityWithId = Object.assign(entity as any, { _id: generatedId, id: generatedId.toHexString() });\n\n\t\treturn entityWithId as T;\n\t}\n\n\t/**\n\t * Build a list of entities using your factory\n\t * @param number\n\t * @param params\n\t * @returns a list of entities\n\t */\n\tbuildList(number: number, params?: DeepPartial, options: BuildOptions = {}): T[] {\n\t\tconst list: T[] = [];\n\t\tfor (let i = 0; i , options: BuildOptions = {}): T[] {\n\t\tconst list: T[] = [];\n\t\tfor (let i = 0; i ): this {\n\t\tconst newPropsFactory = this.propsFactory.afterBuild(afterBuildFn);\n\t\tconst newFactory = this.clone(newPropsFactory);\n\n\t\treturn newFactory;\n\t}\n\n\t/**\n\t * Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\t * @param associations\n\t * @returns a new factory\n\t */\n\tassociations(associations: Partial): this {\n\t\tconst newPropsFactory = this.propsFactory.associations(associations);\n\t\tconst newFactory = this.clone(newPropsFactory);\n\n\t\treturn newFactory;\n\t}\n\n\t/**\n\t * Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\t * @param params\n\t * @returns a new factory\n\t */\n\tparams(params: DeepPartial): this {\n\t\tconst newPropsFactory = this.propsFactory.params(params);\n\t\tconst newFactory = this.clone(newPropsFactory);\n\n\t\treturn newFactory;\n\t}\n\n\t/**\n\t * Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\t * @param transient - transient params\n\t * @returns a new factory\n\t */\n\ttransient(transient: Partial): this {\n\t\tconst newPropsFactory = this.propsFactory.transient(transient);\n\t\tconst newFactory = this.clone(newPropsFactory);\n\n\t\treturn newFactory;\n\t}\n\n\t/**\n\t * Set sequence back to its default value\n\t */\n\trewindSequence(): void {\n\t\tthis.propsFactory.rewindSequence();\n\t}\n\n\tprotected clone>(this: F, propsFactory: Factory): F {\n\t\tconst copy = new (this.constructor as {\n\t\t\tnew (EntityClass: { new (props: U): T }, propsOfFactory: Factory): F;\n\t\t})(this.EntityClass, propsFactory);\n\n\t\treturn copy;\n\t}\n\n\t/**\n\t * Get the next sequence value\n\t * @returns the next sequence value\n\t */\n\tprotected sequence(): number {\n\t\t// eslint-disable-next-line @typescript-eslint/dot-notation\n\t\treturn this.propsFactory['sequence']();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BaseRepo.html":{"url":"injectables/BaseRepo.html","title":"injectable - BaseRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BaseRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/base.repo.ts\n \n\n\n \n Description\n \n \n This repo will be replaced in the future by a more domain driven repo, which is currently discussed in the arc chapter.\nAn example for a possible implementation is the BaseDORepo.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager)\n \n \n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/base.repo.ts:16\n \n \n\n \n \n\n \n\n\n \n import { EntityName, FilterQuery } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BaseEntity } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { ObjectId } from 'bson';\n\n/**\n * This repo will be replaced in the future by a more domain driven repo, which is currently discussed in the arc chapter.\n * An example for a possible implementation is the {@link BaseDORepo}.\n */\n@Injectable()\nexport abstract class BaseRepo {\n\tconstructor(protected readonly _em: EntityManager) {}\n\n\tabstract get entityName(): EntityName;\n\n\tcreate(entity: T): T {\n\t\treturn this._em.create(this.entityName, entity);\n\t}\n\n\tasync save(entities: T | T[]): Promise {\n\t\tawait this._em.persistAndFlush(entities);\n\t}\n\n\tasync delete(entities: T | T[]): Promise {\n\t\tawait this._em.removeAndFlush(entities);\n\t}\n\n\tasync findById(id: EntityId | ObjectId): Promise {\n\t\tconst promise: Promise = this._em.findOneOrFail(this.entityName, id as FilterQuery);\n\t\treturn promise;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BaseResponseMapper.html":{"url":"interfaces/BaseResponseMapper.html","title":"interface - BaseResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BaseResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/base-mapper.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n mapToResponse\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n \n \ncanMap(element: T)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/base-mapper.interface.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: T)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/base-mapper.interface.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AnyContentElementResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import type { AnyBoardDo } from '@shared/domain';\nimport type { AnyContentElementResponse } from '../dto';\n\nexport interface BaseResponseMapper {\n\tmapToResponse(element: T): AnyContentElementResponse;\n\n\tcanMap(element: T): boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BasicToolConfig.html":{"url":"classes/BasicToolConfig.html","title":"class - BasicToolConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BasicToolConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/config/basic-tool-config.do.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n baseUrl\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: BasicToolConfig)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/basic-tool-config.do.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n BasicToolConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:4\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigType } from '../../../common/enum';\nimport { ExternalToolConfig } from './external-tool-config.do';\n\nexport class BasicToolConfig extends ExternalToolConfig {\n\tconstructor(props: BasicToolConfig) {\n\t\tsuper({\n\t\t\ttype: ToolConfigType.BASIC,\n\t\t\tbaseUrl: props.baseUrl,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BasicToolConfigEntity.html":{"url":"classes/BasicToolConfigEntity.html","title":"class - BasicToolConfigEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BasicToolConfigEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/config/basic-tool-config.entity.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigEntity\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: BasicToolConfigEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/basic-tool-config.entity.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n BasicToolConfigEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable } from '@mikro-orm/core';\nimport { ToolConfigType } from '../../../common/enum';\nimport { ExternalToolConfigEntity } from './external-tool-config.entity';\n\n@Embeddable({ discriminatorValue: ToolConfigType.BASIC })\nexport class BasicToolConfigEntity extends ExternalToolConfigEntity {\n\tconstructor(props: BasicToolConfigEntity) {\n\t\tsuper(props);\n\t\tthis.type = ToolConfigType.BASIC;\n\t\tthis.baseUrl = props.baseUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BasicToolConfigParams.html":{"url":"classes/BasicToolConfigParams.html","title":"class - BasicToolConfigParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BasicToolConfigParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/basic-tool-config.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\nimport { ToolConfigType } from '../../../../../common/enum';\n\nexport class BasicToolConfigParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BasicToolConfigResponse.html":{"url":"classes/BasicToolConfigResponse.html","title":"class - BasicToolConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BasicToolConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/config/basic-tool-config.response.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: BasicToolConfigResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/basic-tool-config.response.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n BasicToolConfigResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigResponse } from './external-tool-config.response';\n\nexport class BasicToolConfigResponse extends ExternalToolConfigResponse {\n\t@ApiProperty()\n\ttype: ToolConfigType;\n\n\t@ApiProperty()\n\tbaseUrl: string;\n\n\tconstructor(props: BasicToolConfigResponse) {\n\t\tsuper();\n\t\tthis.type = ToolConfigType.BASIC;\n\t\tthis.baseUrl = props.baseUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BasicToolLaunchStrategy.html":{"url":"injectables/BasicToolLaunchStrategy.html","title":"injectable - BasicToolLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BasicToolLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/basic-tool-launch.strategy.ts\n \n\n\n\n \n Extends\n \n \n AbstractLaunchStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n \n buildToolLaunchDataFromConcreteConfig\n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n Public\n \n determineLaunchRequestMethod\n \n \n Private\n Async\n addParameters\n \n \n Private\n addProperty\n \n \n Private\n applyPropertiesToPathParams\n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n Private\n buildUrl\n \n \n Public\n Async\n createLaunchData\n \n \n Public\n createLaunchRequest\n \n \n Private\n Async\n getParameterValue\n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n \n buildToolLaunchDataFromConcreteConfig\n \n \n \n \n \n \n \n buildToolLaunchDataFromConcreteConfig(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:9\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n \n \n \n \n \n buildToolLaunchRequestPayload(url: string, properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n determineLaunchRequestMethod\n \n \n \n \n \n \n \n determineLaunchRequestMethod(properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:33\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LaunchRequestMethod\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n \n \n \n \n \n addParameters(propertyData: PropertyData[], customParameterDOs: CustomParameter[], scopes: literal type[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:141\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n customParameterDOs\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n scopes\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n addProperty\n \n \n \n \n \n \n \n addProperty(propertyData: PropertyData[], propertyName: string, value: string | undefined, customParameterLocation: CustomParameterLocation)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:246\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n propertyName\n \n string\n \n\n \n No\n \n\n\n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n customParameterLocation\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n applyPropertiesToPathParams\n \n \n \n \n \n \n \n applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:91\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n URL\n \n\n \n No\n \n\n\n \n \n pathProperties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n \n \n \n \n \n buildToolLaunchDataFromExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:114\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n \n \n \n \n \n buildToolLaunchDataFromTools(data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:125\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildUrl\n \n \n \n \n \n \n \n buildUrl(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:65\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createLaunchData\n \n \n \n \n \n \n \n createLaunchData(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n createLaunchRequest\n \n \n \n \n \n \n \n createLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getParameterValue\n \n \n \n \n \n \n \n getParameterValue(customParameter: CustomParameter, matchingParameterEntry: CustomParameterEntry | undefined, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:204\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n matchingParameterEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n \n \n \n handleParametersToInclude(propertyData: PropertyData[], parametersToInclude: CustomParameter[], params: CustomParameterEntry[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:167\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n parametersToInclude\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n params\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { LaunchRequestMethod, PropertyData, PropertyLocation } from '../../types';\nimport { AbstractLaunchStrategy } from './abstract-launch.strategy';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\n\n@Injectable()\nexport class BasicToolLaunchStrategy extends AbstractLaunchStrategy {\n\tpublic override buildToolLaunchDataFromConcreteConfig(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tuserId: EntityId,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tdata: IToolLaunchParams\n\t): Promise {\n\t\treturn Promise.resolve([]);\n\t}\n\n\tpublic override buildToolLaunchRequestPayload(url: string, properties: PropertyData[]): string | null {\n\t\tconst bodyProperties = properties.filter((property: PropertyData) => property.location === PropertyLocation.BODY);\n\t\tconst payload: Record = {};\n\n\t\tfor (const property of bodyProperties) {\n\t\t\tpayload[property.name] = property.value;\n\t\t}\n\n\t\tif (Object.keys(payload).length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn JSON.stringify(payload);\n\t}\n\n\tpublic override determineLaunchRequestMethod(properties: PropertyData[]): LaunchRequestMethod {\n\t\tconst hasBodyProperty: boolean = properties.some(\n\t\t\t(property: PropertyData) => property.location === PropertyLocation.BODY\n\t\t);\n\n\t\tconst launchRequestMethod: LaunchRequestMethod = hasBodyProperty\n\t\t\t? LaunchRequestMethod.POST\n\t\t\t: LaunchRequestMethod.GET;\n\n\t\treturn launchRequestMethod;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Board.html":{"url":"entities/Board.html","title":"entity - Board","body":"\n \n\n\n\n\n\n\n\n Entities\n Board\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/board.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n course\n \n \n \n references\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n course\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @OneToOne({type: 'Course', fieldName: 'courseId', wrappedReference: true, unique: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/board.entity.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n references\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('BoardElement', undefined, {fieldName: 'referenceIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/board.entity.ts:32\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, IdentifiedReference, ManyToMany, OneToOne, wrap } from '@mikro-orm/core';\nimport { BadRequestException, NotFoundException } from '@nestjs/common';\nimport { ILearnroomElement } from '../../interface';\nimport { EntityId } from '../../types';\nimport { BaseEntityWithTimestamps } from '../base.entity';\nimport type { Course } from '../course.entity';\nimport { LessonEntity } from '../lesson.entity';\nimport { Task } from '../task.entity';\nimport { BoardElement, BoardElementReference } from './boardelement.entity';\nimport { ColumnboardBoardElement } from './column-board-boardelement';\nimport { ColumnBoardTarget } from './column-board-target.entity';\nimport { LessonBoardElement } from './lesson-boardelement.entity';\nimport { TaskBoardElement } from './task-boardelement.entity';\n\nexport type BoardProps = {\n\treferences: BoardElement[];\n\tcourse: Course;\n};\n\n@Entity({ tableName: 'board' })\nexport class Board extends BaseEntityWithTimestamps {\n\tconstructor(props: BoardProps) {\n\t\tsuper();\n\t\tthis.references.set(props.references);\n\t\tthis.course = wrap(props.course).toReference();\n\t}\n\n\t@OneToOne({ type: 'Course', fieldName: 'courseId', wrappedReference: true, unique: true })\n\tcourse: IdentifiedReference;\n\n\t@ManyToMany('BoardElement', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\tgetByTargetId(id: EntityId): ILearnroomElement {\n\t\tconst element = this.getElementByTargetId(id);\n\t\treturn element.target;\n\t}\n\n\tgetElements() {\n\t\treturn this.references.getItems();\n\t}\n\n\treorderElements(ids: EntityId[]) {\n\t\tthis.validateReordering(ids);\n\n\t\tconst elements = ids.map((id) => this.getElementByTargetId(id));\n\n\t\tthis.references.set(elements);\n\t}\n\n\tprivate validateReordering(reorderedIds: EntityId[]) {\n\t\tconst existingElements = this.getElements().map((el) => el.target.id);\n\t\tconst listsEqual = this.checkListsContainingEqualEntities(reorderedIds, existingElements);\n\t\tif (!listsEqual) {\n\t\t\tthrow new BadRequestException('elements did not match. please fetch the elements of the board before reordering');\n\t\t}\n\t}\n\n\tprivate checkListsContainingEqualEntities(first: EntityId[], second: EntityId[]): boolean {\n\t\tconst compareAlphabetic = (a, b) => (a el.target.id === id);\n\t\tif (!element) throw new NotFoundException('board does not contain such element');\n\t\treturn element;\n\t}\n\n\tsyncBoardElementReferences(boardElementTargets: BoardElementReference[]) {\n\t\tthis.removeDeletedReferences(boardElementTargets);\n\t\tthis.appendNotContainedBoardElements(boardElementTargets);\n\t}\n\n\tprivate removeDeletedReferences(boardElementTargets: BoardElementReference[]) {\n\t\tconst references = this.references.getItems();\n\t\tconst onlyExistingReferences = references.filter((ref) => boardElementTargets.includes(ref.target));\n\t\tthis.references.set(onlyExistingReferences);\n\t}\n\n\tprivate appendNotContainedBoardElements(boardElementTargets: BoardElementReference[]): void {\n\t\tconst references = this.references.getItems();\n\t\tconst isNotContained = (element: BoardElementReference) => !references.some((ref) => ref.target === element);\n\t\tconst mapToBoardElement = (target: BoardElementReference) => this.createBoardElementFor(target);\n\n\t\tconst elementsToAdd = boardElementTargets.filter(isNotContained).map(mapToBoardElement);\n\t\tconst newList = [...elementsToAdd, ...references];\n\t\tthis.references.set(newList);\n\t}\n\n\tprivate createBoardElementFor(boardElementTarget: BoardElementReference): BoardElement {\n\t\tif (boardElementTarget instanceof Task) {\n\t\t\treturn new TaskBoardElement({ target: boardElementTarget });\n\t\t}\n\t\tif (boardElementTarget instanceof LessonEntity) {\n\t\t\treturn new LessonBoardElement({ target: boardElementTarget });\n\t\t}\n\t\tif (boardElementTarget instanceof ColumnBoardTarget) {\n\t\t\treturn new ColumnboardBoardElement({ target: boardElementTarget });\n\t\t}\n\t\tthrow new Error('not a valid boardElementReference');\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/BoardApiModule.html":{"url":"modules/BoardApiModule.html","title":"module - BoardApiModule","body":"\n \n\n\n\n\n Modules\n BoardApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_BoardApiModule\n\n\n\ncluster_BoardApiModule_imports\n\n\n\ncluster_BoardApiModule_providers\n\n\n\n\nBoardModule\n\nBoardModule\n\n\n\nBoardApiModule\n\nBoardApiModule\n\nBoardApiModule -->\n\nBoardModule->BoardApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nBoardApiModule -->\n\nLoggerModule->BoardApiModule\n\n\n\n\n\nBoardUc\n\nBoardUc\n\nBoardApiModule -->\n\nBoardUc->BoardApiModule\n\n\n\n\n\nCardUc\n\nCardUc\n\nBoardApiModule -->\n\nCardUc->BoardApiModule\n\n\n\n\n\nElementUc\n\nElementUc\n\nBoardApiModule -->\n\nElementUc->BoardApiModule\n\n\n\n\n\nSubmissionItemUc\n\nSubmissionItemUc\n\nBoardApiModule -->\n\nSubmissionItemUc->BoardApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/board/board-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardUc\n \n \n CardUc\n \n \n ElementUc\n \n \n SubmissionItemUc\n \n \n \n \n Controllers\n \n \n BoardController\n \n \n ColumnController\n \n \n CardController\n \n \n ElementController\n \n \n BoardSubmissionController\n \n \n \n \n Imports\n \n \n BoardModule\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { BoardModule } from './board.module';\nimport {\n\tBoardController,\n\tBoardSubmissionController,\n\tCardController,\n\tColumnController,\n\tElementController,\n} from './controller';\nimport { BoardUc, CardUc } from './uc';\nimport { ElementUc } from './uc/element.uc';\nimport { SubmissionItemUc } from './uc/submission-item.uc';\n\n@Module({\n\timports: [BoardModule, LoggerModule, forwardRef(() => AuthorizationModule)],\n\tcontrollers: [BoardController, ColumnController, CardController, ElementController, BoardSubmissionController],\n\tproviders: [BoardUc, CardUc, ElementUc, SubmissionItemUc],\n})\nexport class BoardApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardColumnBoardResponse.html":{"url":"classes/BoardColumnBoardResponse.html","title":"class - BoardColumnBoardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardColumnBoardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n columnBoardId\n \n \n \n createdAt\n \n \n \n id\n \n \n \n published\n \n \n \n \n title\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardColumnBoardResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardColumnBoardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n columnBoardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n published\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-column-board.response.ts:28\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\n\nexport class BoardColumnBoardResponse {\n\tconstructor({ id, columnBoardId, title, published, createdAt, updatedAt }: BoardColumnBoardResponse) {\n\t\tthis.id = id;\n\t\tthis.columnBoardId = columnBoardId;\n\t\tthis.title = title;\n\t\tthis.published = published;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\ttitle: string;\n\n\t@ApiProperty()\n\tpublished: boolean;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\tcolumnBoardId: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardComposite.html":{"url":"classes/BoardComposite.html","title":"class - BoardComposite","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardComposite\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/board-composite.do.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n accept\n \n \n Abstract\n acceptAsync\n \n \n addChild\n \n \n hasChild\n \n \n Abstract\n isAllowedAsChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n children\n \n \n createdAt\n \n \n updatedAt\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n accept\n \n \n \n \n \n \n \n accept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n isAllowedAsChild\n \n \n \n \n \n \n \n isAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n children\n \n \n\n \n \n getchildren()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:7\n \n \n\n \n \n \n \n \n \n \n createdAt\n \n \n\n \n \n getcreatedAt()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:11\n \n \n\n \n \n \n \n \n \n \n updatedAt\n \n \n\n \n \n getupdatedAt()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/board-composite.do.ts:15\n \n \n\n \n \n\n \n\n\n \n import { BadRequestException, ForbiddenException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { DomainObject } from '@shared/domain/domain-object'; // fix import if it is avaible\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport abstract class BoardComposite extends DomainObject {\n\tget children(): AnyBoardDo[] {\n\t\treturn this.props.children ?? [];\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n\n\taddChild(child: AnyBoardDo, position?: number): void {\n\t\tif (!this.isAllowedAsChild(child)) {\n\t\t\tthrow new ForbiddenException(`Cannot add child of type '${child.constructor.name}'`);\n\t\t}\n\t\tposition = position ?? this.children.length;\n\t\tif (position this.children.length) {\n\t\t\tthrow new BadRequestException(`Invalid child position '${position}'`);\n\t\t}\n\t\tif (this.hasChild(child)) {\n\t\t\tthrow new BadRequestException(`Cannot add existing child id='${child.id}'`);\n\t\t}\n\t\tthis.children.splice(position, 0, child);\n\t}\n\n\tabstract isAllowedAsChild(domainObject: AnyBoardDo): boolean;\n\n\tremoveChild(child: AnyBoardDo): void {\n\t\tthis.props.children = this.children.filter((ch) => ch.id !== child.id);\n\t}\n\n\thasChild(child: AnyBoardDo): boolean {\n\t\t// TODO check by object identity instead of id\n\t\tconst exists = this.children.some((obj) => obj.id === child.id);\n\t\treturn exists;\n\t}\n\n\tabstract accept(visitor: BoardCompositeVisitor): void;\n\n\tabstract acceptAsync(visitor: BoardCompositeVisitorAsync): Promise;\n}\n\nexport interface BoardCompositeProps {\n\tid: EntityId;\n\tchildren?: AnyBoardDo[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardCompositeProps.html":{"url":"interfaces/BoardCompositeProps.html","title":"interface - BoardCompositeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardCompositeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/board-composite.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n children\n \n \n \n \n createdAt\n \n \n \n \n id\n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n children\n \n \n \n \n \n \n \n \n children: AnyBoardDo[]\n\n \n \n\n\n \n \n Type : AnyBoardDo[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BadRequestException, ForbiddenException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { DomainObject } from '@shared/domain/domain-object'; // fix import if it is avaible\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport abstract class BoardComposite extends DomainObject {\n\tget children(): AnyBoardDo[] {\n\t\treturn this.props.children ?? [];\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n\n\taddChild(child: AnyBoardDo, position?: number): void {\n\t\tif (!this.isAllowedAsChild(child)) {\n\t\t\tthrow new ForbiddenException(`Cannot add child of type '${child.constructor.name}'`);\n\t\t}\n\t\tposition = position ?? this.children.length;\n\t\tif (position this.children.length) {\n\t\t\tthrow new BadRequestException(`Invalid child position '${position}'`);\n\t\t}\n\t\tif (this.hasChild(child)) {\n\t\t\tthrow new BadRequestException(`Cannot add existing child id='${child.id}'`);\n\t\t}\n\t\tthis.children.splice(position, 0, child);\n\t}\n\n\tabstract isAllowedAsChild(domainObject: AnyBoardDo): boolean;\n\n\tremoveChild(child: AnyBoardDo): void {\n\t\tthis.props.children = this.children.filter((ch) => ch.id !== child.id);\n\t}\n\n\thasChild(child: AnyBoardDo): boolean {\n\t\t// TODO check by object identity instead of id\n\t\tconst exists = this.children.some((obj) => obj.id === child.id);\n\t\treturn exists;\n\t}\n\n\tabstract accept(visitor: BoardCompositeVisitor): void;\n\n\tabstract acceptAsync(visitor: BoardCompositeVisitorAsync): Promise;\n}\n\nexport interface BoardCompositeProps {\n\tid: EntityId;\n\tchildren?: AnyBoardDo[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardCompositeVisitor.html":{"url":"interfaces/BoardCompositeVisitor.html","title":"interface - BoardCompositeVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardCompositeVisitor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n visitCard\n \n \n \n \n visitColumn\n \n \n \n \n visitColumnBoard\n \n \n \n \n visitFileElement\n \n \n \n \n visitRichTextElement\n \n \n \n \n visitSubmissionContainerElement\n \n \n \n \n visitSubmissionItem\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n visitCard\n \n \n \n \n \n \nvisitCard(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumn\n \n \n \n \n \n \nvisitColumn(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnBoard\n \n \n \n \n \n \nvisitColumnBoard(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitFileElement\n \n \n \n \n \n \nvisitFileElement(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitRichTextElement\n \n \n \n \n \n \nvisitRichTextElement(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionContainerElement\n \n \n \n \n \n \nvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionItem\n \n \n \n \n \n \nvisitSubmissionItem(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import type { Card } from '../card.do';\nimport type { ColumnBoard } from '../column-board.do';\nimport type { Column } from '../column.do';\nimport type { FileElement } from '../file-element.do';\nimport { RichTextElement } from '../rich-text-element.do';\nimport { SubmissionContainerElement } from '../submission-container-element.do';\nimport { SubmissionItem } from '../submission-item.do';\n\nexport interface BoardCompositeVisitor {\n\tvisitColumnBoard(columnBoard: ColumnBoard): void;\n\tvisitColumn(column: Column): void;\n\tvisitCard(card: Card): void;\n\tvisitFileElement(fileElement: FileElement): void;\n\tvisitRichTextElement(richTextElement: RichTextElement): void;\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void;\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void;\n}\n\nexport interface BoardCompositeVisitorAsync {\n\tvisitColumnBoardAsync(columnBoard: ColumnBoard): Promise;\n\tvisitColumnAsync(column: Column): Promise;\n\tvisitCardAsync(card: Card): Promise;\n\tvisitFileElementAsync(fileElement: FileElement): Promise;\n\tvisitRichTextElementAsync(richTextElement: RichTextElement): Promise;\n\tvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise;\n\tvisitSubmissionItemAsync(submissionItem: SubmissionItem): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardCompositeVisitorAsync.html":{"url":"interfaces/BoardCompositeVisitorAsync.html","title":"interface - BoardCompositeVisitorAsync","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardCompositeVisitorAsync\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n visitCardAsync\n \n \n \n \n visitColumnAsync\n \n \n \n \n visitColumnBoardAsync\n \n \n \n \n visitFileElementAsync\n \n \n \n \n visitRichTextElementAsync\n \n \n \n \n visitSubmissionContainerElementAsync\n \n \n \n \n visitSubmissionItemAsync\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n visitCardAsync\n \n \n \n \n \n \nvisitCardAsync(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnAsync\n \n \n \n \n \n \nvisitColumnAsync(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnBoardAsync\n \n \n \n \n \n \nvisitColumnBoardAsync(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitFileElementAsync\n \n \n \n \n \n \nvisitFileElementAsync(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitRichTextElementAsync\n \n \n \n \n \n \nvisitRichTextElementAsync(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionContainerElementAsync\n \n \n \n \n \n \nvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionItemAsync\n \n \n \n \n \n \nvisitSubmissionItemAsync(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-composite-visitor.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import type { Card } from '../card.do';\nimport type { ColumnBoard } from '../column-board.do';\nimport type { Column } from '../column.do';\nimport type { FileElement } from '../file-element.do';\nimport { RichTextElement } from '../rich-text-element.do';\nimport { SubmissionContainerElement } from '../submission-container-element.do';\nimport { SubmissionItem } from '../submission-item.do';\n\nexport interface BoardCompositeVisitor {\n\tvisitColumnBoard(columnBoard: ColumnBoard): void;\n\tvisitColumn(column: Column): void;\n\tvisitCard(card: Card): void;\n\tvisitFileElement(fileElement: FileElement): void;\n\tvisitRichTextElement(richTextElement: RichTextElement): void;\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void;\n\tvisitSubmissionItem(submissionItem: SubmissionItem): void;\n}\n\nexport interface BoardCompositeVisitorAsync {\n\tvisitColumnBoardAsync(columnBoard: ColumnBoard): Promise;\n\tvisitColumnAsync(column: Column): Promise;\n\tvisitCardAsync(card: Card): Promise;\n\tvisitFileElementAsync(fileElement: FileElement): Promise;\n\tvisitRichTextElementAsync(richTextElement: RichTextElement): Promise;\n\tvisitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise;\n\tvisitSubmissionItemAsync(submissionItem: SubmissionItem): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardContextResponse.html":{"url":"classes/BoardContextResponse.html","title":"class - BoardContextResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardContextResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/board-context.reponse.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardContextResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board-context.reponse.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardContextResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board-context.reponse.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : BoardExternalReferenceType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: BoardExternalReferenceType, enumName: 'BoardExternalReferenceType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board-context.reponse.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { BoardExternalReferenceType } from '@shared/domain';\n\nexport class BoardContextResponse {\n\tconstructor({ id, type }: BoardContextResponse) {\n\t\tthis.id = id;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({ enum: BoardExternalReferenceType, enumName: 'BoardExternalReferenceType' })\n\ttype: BoardExternalReferenceType;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/BoardController.html":{"url":"controllers/BoardController.html","title":"controller - BoardController","body":"\n \n\n\n\n\n\n\n Controllers\n BoardController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/board.controller.ts\n \n\n \n Prefix\n \n \n boards\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createColumn\n \n \n \n \n \n \n \n \n \n Async\n deleteBoard\n \n \n \n \n \n \n \n \n Async\n getBoardContext\n \n \n \n \n \n \n \n \n Async\n getBoardSkeleton\n \n \n \n \n \n \n \n \n \n Async\n updateBoardTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createColumn\n \n \n \n \n \n \n \n createColumn(urlParams: BoardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new column on a board.'})@ApiResponse({status: 201, type: ColumnResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Post(':boardId/columns')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:94\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteBoard\n \n \n \n \n \n \n \n deleteBoard(urlParams: BoardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Delete a board.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Delete(':boardId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getBoardContext\n \n \n \n \n \n \n \n getBoardContext(urlParams: BoardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get the context of a board.'})@ApiResponse({status: 200, type: BoardContextResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Get(':boardId/context')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getBoardSkeleton\n \n \n \n \n \n \n \n getBoardSkeleton(urlParams: BoardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get the skeleton of a a board.'})@ApiResponse({status: 200, type: BoardResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Get(':boardId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateBoardTitle\n \n \n \n \n \n \n \n updateBoardTitle(urlParams: BoardUrlParams, bodyParams: RenameBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update the title of a board.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':boardId/title')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board.controller.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n BoardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n RenameBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tGet,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\n} from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { BoardUc } from '../uc';\nimport { BoardResponse, BoardUrlParams, ColumnResponse, RenameBodyParams } from './dto';\nimport { BoardContextResponse } from './dto/board/board-context.reponse';\nimport { BoardResponseMapper, ColumnResponseMapper } from './mapper';\n\n@ApiTags('Board')\n@Authenticate('jwt')\n@Controller('boards')\nexport class BoardController {\n\tconstructor(private readonly boardUc: BoardUc) {}\n\n\t@ApiOperation({ summary: 'Get the skeleton of a a board.' })\n\t@ApiResponse({ status: 200, type: BoardResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@Get(':boardId')\n\tasync getBoardSkeleton(\n\t\t@Param() urlParams: BoardUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst board = await this.boardUc.findBoard(currentUser.userId, urlParams.boardId);\n\n\t\tconst response = BoardResponseMapper.mapToResponse(board);\n\n\t\treturn response;\n\t}\n\n\t@ApiOperation({ summary: 'Get the context of a board.' })\n\t@ApiResponse({ status: 200, type: BoardContextResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@Get(':boardId/context')\n\tasync getBoardContext(\n\t\t@Param() urlParams: BoardUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst boardContext = await this.boardUc.findBoardContext(currentUser.userId, urlParams.boardId);\n\n\t\tconst response = new BoardContextResponse(boardContext);\n\n\t\treturn response;\n\t}\n\n\t@ApiOperation({ summary: 'Update the title of a board.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':boardId/title')\n\tasync updateBoardTitle(\n\t\t@Param() urlParams: BoardUrlParams,\n\t\t@Body() bodyParams: RenameBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.updateBoardTitle(currentUser.userId, urlParams.boardId, bodyParams.title);\n\t}\n\n\t@ApiOperation({ summary: 'Delete a board.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Delete(':boardId')\n\tasync deleteBoard(@Param() urlParams: BoardUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.boardUc.deleteBoard(currentUser.userId, urlParams.boardId);\n\t}\n\n\t@ApiOperation({ summary: 'Create a new column on a board.' })\n\t@ApiResponse({ status: 201, type: ColumnResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@Post(':boardId/columns')\n\tasync createColumn(\n\t\t@Param() urlParams: BoardUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst column = await this.boardUc.createColumn(currentUser.userId, urlParams.boardId);\n\n\t\tconst response = ColumnResponseMapper.mapToResponse(column);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardCopyService.html":{"url":"injectables/BoardCopyService.html","title":"injectable - BoardCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardCopyService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/board-copy.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyBoard\n \n \n Private\n Async\n copyBoardElements\n \n \n Private\n Async\n copyLesson\n \n \n Private\n Async\n copyTask\n \n \n Private\n extractReferences\n \n \n Private\n sortByOriginalOrder\n \n \n Private\n updateCopiedEmbeddedTasksOfLessons\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, boardRepo: BoardRepo, taskCopyService: TaskCopyService, lessonCopyService: LessonCopyService, copyHelperService: CopyHelperService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n boardRepo\n \n \n BoardRepo\n \n \n \n No\n \n \n \n \n taskCopyService\n \n \n TaskCopyService\n \n \n \n No\n \n \n \n \n lessonCopyService\n \n \n LessonCopyService\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyBoard\n \n \n \n \n \n \n \n copyBoard(params: BoardCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n BoardCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyBoardElements\n \n \n \n \n \n \n \n copyBoardElements(boardElements: BoardElement[], user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardElements\n \n BoardElement[]\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n destinationCourse\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(originalLesson: LessonEntity, user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalLesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n destinationCourse\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(originalTask: Task, user: User, destinationCourse: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalTask\n \n Task\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n destinationCourse\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n extractReferences\n \n \n \n \n \n \n \n extractReferences(statuses: CopyStatus[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n statuses\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardElement[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n sortByOriginalOrder\n \n \n \n \n \n \n \n sortByOriginalOrder(resolved: [])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:139\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n resolved\n \n []\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n updateCopiedEmbeddedTasksOfLessons\n \n \n \n \n \n \n \n updateCopiedEmbeddedTasksOfLessons(boardStatus: CopyStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/board-copy.service.ts:126\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tBoard,\n\tBoardElement,\n\tBoardElementType,\n\tCourse,\n\tisLesson,\n\tisTask,\n\tLessonEntity,\n\tLessonBoardElement,\n\tTask,\n\tTaskBoardElement,\n\tUser,\n} from '@shared/domain';\nimport { BoardRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { CopyElementType, CopyHelperService, CopyStatus } from '@src/modules/copy-helper';\nimport { getResolvedValues } from '@src/modules/files-storage/helper';\nimport { LessonCopyService } from '@src/modules/lesson/service';\nimport { TaskCopyService } from '@src/modules/task/service';\nimport { sortBy } from 'lodash';\n\ntype BoardCopyParams = {\n\toriginalBoard: Board;\n\tdestinationCourse: Course;\n\tuser: User;\n};\n\n@Injectable()\nexport class BoardCopyService {\n\tconstructor(\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly boardRepo: BoardRepo,\n\t\tprivate readonly taskCopyService: TaskCopyService,\n\t\tprivate readonly lessonCopyService: LessonCopyService,\n\t\tprivate readonly copyHelperService: CopyHelperService\n\t) {}\n\n\tasync copyBoard(params: BoardCopyParams): Promise {\n\t\tconst { originalBoard, user, destinationCourse } = params;\n\n\t\tconst boardElements: BoardElement[] = originalBoard.getElements();\n\t\tconst elements: CopyStatus[] = await this.copyBoardElements(boardElements, user, destinationCourse);\n\t\tconst references: BoardElement[] = this.extractReferences(elements);\n\n\t\tlet boardCopy: Board = new Board({ references, course: destinationCourse });\n\t\tlet status: CopyStatus = {\n\t\t\ttitle: 'board',\n\t\t\ttype: CopyElementType.BOARD,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\tcopyEntity: boardCopy,\n\t\t\toriginalEntity: params.originalBoard,\n\t\t\telements,\n\t\t};\n\n\t\tstatus = this.updateCopiedEmbeddedTasksOfLessons(status);\n\t\tif (status.copyEntity) {\n\t\t\tboardCopy = status.copyEntity as Board;\n\t\t}\n\t\tawait this.boardRepo.save(boardCopy);\n\n\t\treturn status;\n\t}\n\n\tprivate async copyBoardElements(\n\t\tboardElements: BoardElement[],\n\t\tuser: User,\n\t\tdestinationCourse: Course\n\t): Promise {\n\t\tconst promises: Promise[] = boardElements.map((element, pos) => {\n\t\t\tif (element.target === undefined) {\n\t\t\t\treturn Promise.reject(new Error('Broken boardelement - not pointing to any target entity'));\n\t\t\t}\n\n\t\t\tif (element.boardElementType === BoardElementType.Task && isTask(element.target)) {\n\t\t\t\treturn this.copyTask(element.target, user, destinationCourse).then((status) => [pos, status]);\n\t\t\t}\n\n\t\t\tif (element.boardElementType === BoardElementType.Lesson && isLesson(element.target)) {\n\t\t\t\treturn this.copyLesson(element.target, user, destinationCourse).then((status) => [pos, status]);\n\t\t\t}\n\n\t\t\t/* istanbul ignore next */\n\t\t\tthis.logger.warn(`BoardCopyService unable to handle boardElementType.`);\n\t\t\t/* istanbul ignore next */\n\t\t\treturn Promise.reject(new Error(`BoardCopyService unable to handle boardElementType.`));\n\t\t});\n\n\t\tconst results = await Promise.allSettled(promises);\n\t\tconst resolved: Array = getResolvedValues(results);\n\t\tconst statuses: CopyStatus[] = this.sortByOriginalOrder(resolved);\n\t\treturn statuses;\n\t}\n\n\tprivate async copyLesson(originalLesson: LessonEntity, user: User, destinationCourse: Course): Promise {\n\t\treturn this.lessonCopyService.copyLesson({\n\t\t\toriginalLessonId: originalLesson.id,\n\t\t\tuser,\n\t\t\tdestinationCourse,\n\t\t});\n\t}\n\n\tprivate async copyTask(originalTask: Task, user: User, destinationCourse: Course): Promise {\n\t\treturn this.taskCopyService.copyTask({\n\t\t\toriginalTaskId: originalTask.id,\n\t\t\tuser,\n\t\t\tdestinationCourse,\n\t\t});\n\t}\n\n\tprivate extractReferences(statuses: CopyStatus[]): BoardElement[] {\n\t\tconst references: BoardElement[] = [];\n\t\tstatuses.forEach((status) => {\n\t\t\tif (status.copyEntity instanceof Task) {\n\t\t\t\tconst taskElement = new TaskBoardElement({ target: status.copyEntity });\n\t\t\t\treferences.push(taskElement);\n\t\t\t}\n\t\t\tif (status.copyEntity instanceof LessonEntity) {\n\t\t\t\tconst lessonElement = new LessonBoardElement({ target: status.copyEntity });\n\t\t\t\treferences.push(lessonElement);\n\t\t\t}\n\t\t});\n\t\treturn references;\n\t}\n\n\tprivate updateCopiedEmbeddedTasksOfLessons(boardStatus: CopyStatus): CopyStatus {\n\t\tconst copyDict = this.copyHelperService.buildCopyEntityDict(boardStatus);\n\t\tconst elements = boardStatus.elements ?? [];\n\t\tconst updatedElements = elements.map((elementCopyStatus) => {\n\t\t\tif (elementCopyStatus.type === CopyElementType.LESSON) {\n\t\t\t\treturn this.lessonCopyService.updateCopiedEmbeddedTasks(elementCopyStatus, copyDict);\n\t\t\t}\n\t\t\treturn elementCopyStatus;\n\t\t});\n\t\tboardStatus.elements = updatedElements;\n\t\treturn boardStatus;\n\t}\n\n\tprivate sortByOriginalOrder(resolved: [number, CopyStatus][]): CopyStatus[] {\n\t\tconst sortByPos = sortBy(resolved, ([pos]) => pos);\n\t\tconst statuses = sortByPos.map(([, status]) => status);\n\t\treturn statuses;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardDoAuthorizable.html":{"url":"classes/BoardDoAuthorizable.html","title":"class - BoardDoAuthorizable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardDoAuthorizable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n users\n \n \n requiredUserRole\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n users\n \n \n\n \n \n getusers()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts:30\n \n \n\n \n \n \n \n \n \n \n requiredUserRole\n \n \n\n \n \n getrequiredUserRole()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts:34\n \n \n\n \n \n setrequiredUserRole(userRoleEnum: UserRoleEnum | undefined)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts:38\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userRoleEnum\n \n \n UserRoleEnum | undefined\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { EntityId } from '@shared/domain/types';\n\nexport enum BoardRoles {\n\tEDITOR = 'editor',\n\tREADER = 'reader',\n}\n/**\n\tdeprecated: This is a temporary solution. This will be replaced with a more proper permission system.\n*/\nexport enum UserRoleEnum {\n\tTEACHER = 'teacher',\n\tSTUDENT = 'student',\n\tSUBSTITUTION_TEACHER = 'subsitution teacher',\n}\n\nexport interface UserBoardRoles {\n\troles: BoardRoles[];\n\tuserId: EntityId;\n\tuserRoleEnum: UserRoleEnum;\n}\n\nexport interface BoardDoAuthorizableProps extends AuthorizableObject {\n\tid: EntityId;\n\tusers: UserBoardRoles[];\n\trequiredUserRole?: UserRoleEnum;\n}\n\nexport class BoardDoAuthorizable extends DomainObject {\n\tget users(): UserBoardRoles[] {\n\t\treturn this.props.users;\n\t}\n\n\tget requiredUserRole(): UserRoleEnum | undefined {\n\t\treturn this.props.requiredUserRole;\n\t}\n\n\tset requiredUserRole(userRoleEnum: UserRoleEnum | undefined) {\n\t\tthis.props.requiredUserRole = userRoleEnum;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardDoAuthorizableProps.html":{"url":"interfaces/BoardDoAuthorizableProps.html","title":"interface - BoardDoAuthorizableProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardDoAuthorizableProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts\n \n\n\n\n \n Extends\n \n \n AuthorizableObject\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n Optional\n \n requiredUserRole\n \n \n \n \n users\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n requiredUserRole\n \n \n \n \n \n \n \n \n requiredUserRole: UserRoleEnum\n\n \n \n\n\n \n \n Type : UserRoleEnum\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n users: UserBoardRoles[]\n\n \n \n\n\n \n \n Type : UserBoardRoles[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { EntityId } from '@shared/domain/types';\n\nexport enum BoardRoles {\n\tEDITOR = 'editor',\n\tREADER = 'reader',\n}\n/**\n\tdeprecated: This is a temporary solution. This will be replaced with a more proper permission system.\n*/\nexport enum UserRoleEnum {\n\tTEACHER = 'teacher',\n\tSTUDENT = 'student',\n\tSUBSTITUTION_TEACHER = 'subsitution teacher',\n}\n\nexport interface UserBoardRoles {\n\troles: BoardRoles[];\n\tuserId: EntityId;\n\tuserRoleEnum: UserRoleEnum;\n}\n\nexport interface BoardDoAuthorizableProps extends AuthorizableObject {\n\tid: EntityId;\n\tusers: UserBoardRoles[];\n\trequiredUserRole?: UserRoleEnum;\n}\n\nexport class BoardDoAuthorizable extends DomainObject {\n\tget users(): UserBoardRoles[] {\n\t\treturn this.props.users;\n\t}\n\n\tget requiredUserRole(): UserRoleEnum | undefined {\n\t\treturn this.props.requiredUserRole;\n\t}\n\n\tset requiredUserRole(userRoleEnum: UserRoleEnum | undefined) {\n\t\tthis.props.requiredUserRole = userRoleEnum;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardDoAuthorizableService.html":{"url":"injectables/BoardDoAuthorizableService.html","title":"injectable - BoardDoAuthorizableService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoAuthorizableService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/board-do-authorizable.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n getBoardAuthorizable\n \n \n Private\n mapCourseUsersToUsergroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, courseRepo: CourseRepo)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do-authorizable.service.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-authorizable.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getBoardAuthorizable\n \n \n \n \n \n \n \n getBoardAuthorizable(boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-authorizable.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapCourseUsersToUsergroup\n \n \n \n \n \n \n \n mapCourseUsersToUsergroup(course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do-authorizable.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserBoardRoles[]\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tBoardDoAuthorizable,\n\tBoardExternalReferenceType,\n\tBoardRoles,\n\tColumnBoard,\n\tCourse,\n\tEntityId,\n\tUserBoardRoles,\n\tUserRoleEnum,\n} from '@shared/domain';\nimport { CourseRepo } from '@shared/repo';\nimport { AuthorizationLoaderService } from '@src/modules/authorization';\nimport { BoardDoRepo } from '../repo';\n\n@Injectable()\nexport class BoardDoAuthorizableService implements AuthorizationLoaderService {\n\tconstructor(\n\t\t@Inject(forwardRef(() => BoardDoRepo)) private readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly courseRepo: CourseRepo\n\t) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst boardDo = await this.boardDoRepo.findById(id, 1);\n\t\tconst { users } = await this.getBoardAuthorizable(boardDo);\n\t\tconst boardDoAuthorizable = new BoardDoAuthorizable({ users, id });\n\n\t\treturn boardDoAuthorizable;\n\t}\n\n\tasync getBoardAuthorizable(boardDo: AnyBoardDo): Promise {\n\t\tconst ancestorIds = await this.boardDoRepo.getAncestorIds(boardDo);\n\t\tconst ids = [...ancestorIds, boardDo.id];\n\t\tconst rootId = ids[0];\n\t\tconst rootBoardDo = await this.boardDoRepo.findById(rootId, 1);\n\t\tif (rootBoardDo instanceof ColumnBoard) {\n\t\t\tif (rootBoardDo.context?.type === BoardExternalReferenceType.Course) {\n\t\t\t\tconst course = await this.courseRepo.findById(rootBoardDo.context.id);\n\t\t\t\tconst users = this.mapCourseUsersToUsergroup(course);\n\t\t\t\treturn new BoardDoAuthorizable({ users, id: boardDo.id });\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new Error('root boardnode was expected to be a ColumnBoard');\n\t\t}\n\n\t\treturn new BoardDoAuthorizable({ users: [], id: boardDo.id });\n\t}\n\n\tprivate mapCourseUsersToUsergroup(course: Course): UserBoardRoles[] {\n\t\tconst users = [\n\t\t\t...course.getTeacherIds().map((userId) => {\n\t\t\t\treturn { userId, roles: [BoardRoles.EDITOR], userRoleEnum: UserRoleEnum.TEACHER };\n\t\t\t}),\n\t\t\t...course.getSubstitutionTeacherIds().map((userId) => {\n\t\t\t\treturn { userId, roles: [BoardRoles.EDITOR], userRoleEnum: UserRoleEnum.SUBSTITUTION_TEACHER };\n\t\t\t}),\n\t\t\t...course.getStudentIds().map((userId) => {\n\t\t\t\treturn { userId, roles: [BoardRoles.READER], userRoleEnum: UserRoleEnum.STUDENT };\n\t\t\t}),\n\t\t];\n\t\treturn users;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardDoBuilder.html":{"url":"interfaces/BoardDoBuilder.html","title":"interface - BoardDoBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardDoBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n buildCard\n \n \n \n \n buildColumn\n \n \n \n \n buildColumnBoard\n \n \n \n \n buildFileElement\n \n \n \n \n buildRichTextElement\n \n \n \n \n buildSubmissionContainerElement\n \n \n \n \n buildSubmissionItem\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n buildCard\n \n \n \n \n \n \nbuildCard(boardNode: CardNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n CardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Card\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildColumn\n \n \n \n \n \n \nbuildColumn(boardNode: ColumnNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n ColumnNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Column\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildColumnBoard\n \n \n \n \n \n \nbuildColumnBoard(boardNode: ColumnBoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n ColumnBoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ColumnBoard\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildFileElement\n \n \n \n \n \n \nbuildFileElement(boardNode: FileElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n FileElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildRichTextElement\n \n \n \n \n \n \nbuildRichTextElement(boardNode: RichTextElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n RichTextElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RichTextElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildSubmissionContainerElement\n \n \n \n \n \n \nbuildSubmissionContainerElement(boardNode: SubmissionContainerElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n SubmissionContainerElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionContainerElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildSubmissionItem\n \n \n \n \n \n \nbuildSubmissionItem(boardNode: SubmissionItemNode)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/types/board-do.builder.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n SubmissionItemNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionItem\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { SubmissionItem } from '@shared/domain/domainobject/board/submission-item.do';\nimport type {\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n} from '../../../domainobject';\nimport type { CardNode } from '../card-node.entity';\nimport type { ColumnBoardNode } from '../column-board-node.entity';\nimport type { ColumnNode } from '../column-node.entity';\nimport type { FileElementNode } from '../file-element-node.entity';\nimport type { RichTextElementNode } from '../rich-text-element-node.entity';\nimport type { SubmissionContainerElementNode } from '../submission-container-element-node.entity';\nimport type { SubmissionItemNode } from '../submission-item-node.entity';\n\nexport interface BoardDoBuilder {\n\tbuildColumnBoard(boardNode: ColumnBoardNode): ColumnBoard;\n\tbuildColumn(boardNode: ColumnNode): Column;\n\tbuildCard(boardNode: CardNode): Card;\n\tbuildFileElement(boardNode: FileElementNode): FileElement;\n\tbuildRichTextElement(boardNode: RichTextElementNode): RichTextElement;\n\tbuildSubmissionContainerElement(boardNode: SubmissionContainerElementNode): SubmissionContainerElement;\n\tbuildSubmissionItem(boardNode: SubmissionItemNode): SubmissionItem;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardDoBuilderImpl.html":{"url":"classes/BoardDoBuilderImpl.html","title":"class - BoardDoBuilderImpl","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardDoBuilderImpl\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/board-do.builder-impl.ts\n \n\n\n\n\n \n Implements\n \n \n BoardDoBuilder\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n childrenMap\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n buildCard\n \n \n buildChildren\n \n \n Public\n buildColumn\n \n \n Public\n buildColumnBoard\n \n \n Public\n buildDomainObject\n \n \n Public\n buildFileElement\n \n \n Public\n buildRichTextElement\n \n \n Public\n buildSubmissionContainerElement\n \n \n Public\n buildSubmissionItem\n \n \n ensureBoardNodeType\n \n \n ensureLeafNode\n \n \n getChildren\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(descendants: BoardNode[])\n \n \n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n descendants\n \n \n BoardNode[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n childrenMap\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Default value : {}\n \n \n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:26\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n buildCard\n \n \n \n \n \n \n \n buildCard(boardNode: CardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n CardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Card\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildChildren\n \n \n \n \n \n \nbuildChildren(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:146\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildColumn\n \n \n \n \n \n \n \n buildColumn(boardNode: ColumnNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n ColumnNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Column\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildColumnBoard\n \n \n \n \n \n \n \n buildColumnBoard(boardNode: ColumnBoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n ColumnBoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ColumnBoard\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildDomainObject\n \n \n \n \n \n \n \n buildDomainObject(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:35\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildFileElement\n \n \n \n \n \n \n \n buildFileElement(boardNode: FileElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n FileElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildRichTextElement\n \n \n \n \n \n \n \n buildRichTextElement(boardNode: RichTextElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:104\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n RichTextElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RichTextElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildSubmissionContainerElement\n \n \n \n \n \n \n \n buildSubmissionContainerElement(boardNode: SubmissionContainerElementNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:118\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n SubmissionContainerElementNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionContainerElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n buildSubmissionItem\n \n \n \n \n \n \n \n buildSubmissionItem(boardNode: SubmissionItemNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:132\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n SubmissionItemNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionItem\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ensureBoardNodeType\n \n \n \n \n \n \nensureBoardNodeType(boardNode: BoardNode | BoardNode[], type: BoardNodeType | BoardNodeType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:162\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode | BoardNode[]\n \n\n \n No\n \n\n\n \n \n type\n \n BoardNodeType | BoardNodeType[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ensureLeafNode\n \n \n \n \n \n \nensureLeafNode(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:157\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getChildren\n \n \n \n \n \n \ngetChildren(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.builder-impl.ts:151\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardNode[]\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport type {\n\tBoardDoBuilder,\n\tBoardNode,\n\tCardNode,\n\tColumnBoardNode,\n\tColumnNode,\n\tFileElementNode,\n\tRichTextElementNode,\n\tSubmissionContainerElementNode,\n\tSubmissionItemNode,\n} from '@shared/domain';\nimport {\n\tAnyBoardDo,\n\tBoardNodeType,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\n\nexport class BoardDoBuilderImpl implements BoardDoBuilder {\n\tprivate childrenMap: Record = {};\n\n\tconstructor(descendants: BoardNode[] = []) {\n\t\tfor (const boardNode of descendants) {\n\t\t\tthis.childrenMap[boardNode.path] ||= [];\n\t\t\tthis.childrenMap[boardNode.path].push(boardNode);\n\t\t}\n\t}\n\n\tpublic buildDomainObject(boardNode: BoardNode): T {\n\t\treturn boardNode.useDoBuilder(this) as T;\n\t}\n\n\tpublic buildColumnBoard(boardNode: ColumnBoardNode): ColumnBoard {\n\t\tthis.ensureBoardNodeType(this.getChildren(boardNode), BoardNodeType.COLUMN);\n\n\t\tconst columns = this.buildChildren(boardNode);\n\n\t\tconst columnBoard = new ColumnBoard({\n\t\t\tid: boardNode.id,\n\t\t\ttitle: boardNode.title ?? '',\n\t\t\tchildren: columns,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t\tcontext: boardNode.context,\n\t\t});\n\n\t\treturn columnBoard;\n\t}\n\n\tpublic buildColumn(boardNode: ColumnNode): Column {\n\t\tthis.ensureBoardNodeType(this.getChildren(boardNode), BoardNodeType.CARD);\n\n\t\tconst cards = this.buildChildren(boardNode);\n\n\t\tconst column = new Column({\n\t\t\tid: boardNode.id,\n\t\t\ttitle: boardNode.title ?? '',\n\t\t\tchildren: cards,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn column;\n\t}\n\n\tpublic buildCard(boardNode: CardNode): Card {\n\t\tthis.ensureBoardNodeType(this.getChildren(boardNode), [\n\t\t\tBoardNodeType.FILE_ELEMENT,\n\t\t\tBoardNodeType.RICH_TEXT_ELEMENT,\n\t\t\tBoardNodeType.SUBMISSION_CONTAINER_ELEMENT,\n\t\t]);\n\n\t\tconst elements = this.buildChildren(boardNode);\n\n\t\tconst card = new Card({\n\t\t\tid: boardNode.id,\n\t\t\ttitle: boardNode.title ?? '',\n\t\t\theight: boardNode.height,\n\t\t\tchildren: elements,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn card;\n\t}\n\n\tpublic buildFileElement(boardNode: FileElementNode): FileElement {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element = new FileElement({\n\t\t\tid: boardNode.id,\n\t\t\tcaption: boardNode.caption,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn element;\n\t}\n\n\tpublic buildRichTextElement(boardNode: RichTextElementNode): RichTextElement {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element = new RichTextElement({\n\t\t\tid: boardNode.id,\n\t\t\ttext: boardNode.text,\n\t\t\tinputFormat: boardNode.inputFormat,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn element;\n\t}\n\n\tpublic buildSubmissionContainerElement(boardNode: SubmissionContainerElementNode): SubmissionContainerElement {\n\t\tthis.ensureBoardNodeType(this.getChildren(boardNode), [BoardNodeType.SUBMISSION_ITEM]);\n\t\tconst elements = this.buildChildren(boardNode);\n\n\t\tconst element = new SubmissionContainerElement({\n\t\t\tid: boardNode.id,\n\t\t\tdueDate: boardNode.dueDate,\n\t\t\tchildren: elements,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t});\n\t\treturn element;\n\t}\n\n\tpublic buildSubmissionItem(boardNode: SubmissionItemNode): SubmissionItem {\n\t\tthis.ensureLeafNode(boardNode);\n\n\t\tconst element = new SubmissionItem({\n\t\t\tid: boardNode.id,\n\t\t\tcreatedAt: boardNode.createdAt,\n\t\t\tupdatedAt: boardNode.updatedAt,\n\t\t\tcompleted: boardNode.completed,\n\t\t\tuserId: boardNode.userId,\n\t\t\tchildren: [],\n\t\t});\n\t\treturn element;\n\t}\n\n\tbuildChildren(boardNode: BoardNode): T[] {\n\t\tconst children = this.getChildren(boardNode).map((node) => node.useDoBuilder(this));\n\t\treturn children as T[];\n\t}\n\n\tgetChildren(boardNode: BoardNode): BoardNode[] {\n\t\tconst children = this.childrenMap[boardNode.pathOfChildren] || [];\n\t\tconst sortedChildren = children.sort((a, b) => a.position - b.position);\n\t\treturn sortedChildren;\n\t}\n\n\tensureLeafNode(boardNode: BoardNode) {\n\t\tconst children = this.getChildren(boardNode);\n\t\tif (children.length !== 0) throw new Error('BoardNode is a leaf node but children were provided.');\n\t}\n\n\tensureBoardNodeType(boardNode: BoardNode | BoardNode[], type: BoardNodeType | BoardNodeType[]) {\n\t\tconst single = (bn: BoardNode, t: BoardNodeType | BoardNodeType[]) => {\n\t\t\tconst isValid = Array.isArray(t) ? type.includes(bn.type) : t === bn.type;\n\t\t\tif (!isValid) {\n\t\t\t\tthrow new NotImplementedException(`Invalid node type '${bn.type}'`);\n\t\t\t}\n\t\t};\n\n\t\tif (Array.isArray(boardNode)) {\n\t\t\tboardNode.forEach((bn) => single(bn, type));\n\t\t} else {\n\t\t\tsingle(boardNode, type);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardDoRepo.html":{"url":"injectables/BoardDoRepo.html","title":"injectable - BoardDoRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/board-do.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n findByClassAndId\n \n \n Async\n findById\n \n \n Async\n findByIds\n \n \n Async\n findIdsByExternalReference\n \n \n Async\n findParentOfId\n \n \n Async\n getAncestorIds\n \n \n Async\n getTitlesByIds\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, boardNodeRepo: BoardNodeRepo, deleteVisitor: RecursiveDeleteVisitor)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n boardNodeRepo\n \n \n BoardNodeRepo\n \n \n \n No\n \n \n \n \n deleteVisitor\n \n \n RecursiveDeleteVisitor\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:93\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByClassAndId\n \n \n \n \n \n \n \n findByClassAndId(doClass: literal type, id: EntityId, depth?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:26\n \n \n\n \n \n Type parameters :\n \n S\n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n doClass\n \n literal type\n \n\n \n No\n \n\n\n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n depth\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, depth?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n depth\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByIds\n \n \n \n \n \n \n \n findByIds(ids: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ids\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findIdsByExternalReference\n \n \n \n \n \n \n \n findIdsByExternalReference(reference: BoardExternalReference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n BoardExternalReference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findParentOfId\n \n \n \n \n \n \n \n findParentOfId(childId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n childId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getAncestorIds\n \n \n \n \n \n \n \n getAncestorIds(boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getTitlesByIds\n \n \n \n \n \n \n \n getTitlesByIds(id: EntityId[] | EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId[] | EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(domainObject: AnyBoardDo | AnyBoardDo[], parent?: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-do.repo.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo | AnyBoardDo[]\n \n\n \n No\n \n\n\n \n \n parent\n \n AnyBoardDo\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Utils } from '@mikro-orm/core';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable, NotFoundException } from '@nestjs/common';\nimport { AnyBoardDo, BoardExternalReference, BoardNode, ColumnBoardNode, EntityId } from '@shared/domain';\nimport { BoardDoBuilderImpl } from './board-do.builder-impl';\nimport { BoardNodeRepo } from './board-node.repo';\nimport { RecursiveDeleteVisitor } from './recursive-delete.vistor';\nimport { RecursiveSaveVisitor } from './recursive-save.visitor';\n\n@Injectable()\nexport class BoardDoRepo {\n\tconstructor(\n\t\tprivate readonly em: EntityManager,\n\t\tprivate readonly boardNodeRepo: BoardNodeRepo,\n\t\tprivate readonly deleteVisitor: RecursiveDeleteVisitor\n\t) {}\n\n\tasync findById(id: EntityId, depth?: number): Promise {\n\t\tconst boardNode = await this.boardNodeRepo.findById(id);\n\t\tconst descendants = await this.boardNodeRepo.findDescendants(boardNode, depth);\n\t\tconst domainObject = new BoardDoBuilderImpl(descendants).buildDomainObject(boardNode);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByClassAndId(\n\t\tdoClass: { new (props: S): T },\n\t\tid: EntityId,\n\t\tdepth?: number\n\t): Promise {\n\t\tconst domainObject = await this.findById(id, depth);\n\t\tif (!(domainObject instanceof doClass)) {\n\t\t\tthrow new NotFoundException(`There is no '${doClass.name}' with this id`);\n\t\t}\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByIds(ids: EntityId[]): Promise {\n\t\tconst boardNodes = await this.em.find(BoardNode, { id: { $in: ids } });\n\n\t\tconst childrenMap = await this.boardNodeRepo.findDescendantsOfMany(boardNodes);\n\n\t\tconst domainObjects = boardNodes.map((boardNode) => {\n\t\t\tconst children = childrenMap[boardNode.pathOfChildren];\n\t\t\tconst domainObject = new BoardDoBuilderImpl(children).buildDomainObject(boardNode);\n\t\t\treturn domainObject;\n\t\t});\n\n\t\treturn domainObjects;\n\t}\n\n\tasync getTitlesByIds(id: EntityId[] | EntityId): Promise> {\n\t\tconst ids = Utils.asArray(id);\n\t\tconst boardNodes = await this.em.find(BoardNode, { id: { $in: ids } });\n\n\t\tconst titlesMap = boardNodes.reduce((map, node) => {\n\t\t\tmap[node.id] = node.title ?? '';\n\t\t\treturn map;\n\t\t}, {});\n\n\t\treturn titlesMap;\n\t}\n\n\tasync findIdsByExternalReference(reference: BoardExternalReference): Promise {\n\t\tconst boardNodes = await this.em.find(ColumnBoardNode, {\n\t\t\t_contextId: new ObjectId(reference.id),\n\t\t\t_contextType: reference.type,\n\t\t});\n\t\tconst ids = boardNodes.map((o) => o.id);\n\n\t\treturn ids;\n\t}\n\n\tasync findParentOfId(childId: EntityId): Promise {\n\t\tconst boardNode = await this.boardNodeRepo.findById(childId);\n\t\tconst domainObject = boardNode.parentId ? this.findById(boardNode.parentId) : undefined;\n\n\t\treturn domainObject;\n\t}\n\n\tasync getAncestorIds(boardDo: AnyBoardDo): Promise {\n\t\tconst boardNode = await this.boardNodeRepo.findById(boardDo.id);\n\t\treturn boardNode.ancestorIds;\n\t}\n\n\tasync save(domainObject: AnyBoardDo | AnyBoardDo[], parent?: AnyBoardDo): Promise {\n\t\tconst saveVisitor = new RecursiveSaveVisitor(this.em, this.boardNodeRepo);\n\t\tawait saveVisitor.save(domainObject, parent);\n\t\tawait this.em.flush();\n\t}\n\n\tasync delete(domainObject: AnyBoardDo): Promise {\n\t\tawait domainObject.acceptAsync(this.deleteVisitor);\n\t\tawait this.em.flush();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardDoRule.html":{"url":"injectables/BoardDoRule.html","title":"injectable - BoardDoRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/board-do.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/board-do.rule.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, boardDoAuthorizable: BoardDoAuthorizable, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/board-do.rule.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n boardDoAuthorizable\n \n BoardDoAuthorizable\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, boardDoAuthorizable: BoardDoAuthorizable)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/board-do.rule.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n boardDoAuthorizable\n \n BoardDoAuthorizable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { BoardDoAuthorizable, BoardRoles } from '../domainobject';\nimport { User } from '../entity';\n\n@Injectable()\nexport class BoardDoRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, boardDoAuthorizable: BoardDoAuthorizable): boolean {\n\t\tconst isMatched = boardDoAuthorizable instanceof BoardDoAuthorizable;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, boardDoAuthorizable: BoardDoAuthorizable, context: AuthorizationContext): boolean {\n\t\tconst hasPermission = this.authorizationHelper.hasAllPermissions(user, context.requiredPermissions);\n\t\tif (hasPermission === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst userBoardRole = boardDoAuthorizable.users.find(({ userId }) => userId === user.id);\n\t\tif (!userBoardRole) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (boardDoAuthorizable.requiredUserRole && boardDoAuthorizable.requiredUserRole !== userBoardRole.userRoleEnum) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (context.action === Action.write && userBoardRole.roles.includes(BoardRoles.EDITOR)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (\n\t\t\tcontext.action === Action.read &&\n\t\t\t(userBoardRole.roles.includes(BoardRoles.EDITOR) || userBoardRole.roles.includes(BoardRoles.READER))\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardDoService.html":{"url":"injectables/BoardDoService.html","title":"injectable - BoardDoService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardDoService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/board-do.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteWithDescendants\n \n \n Async\n move\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo)\n \n \n \n \n Defined in apps/server/src/modules/board/service/board-do.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteWithDescendants\n \n \n \n \n \n \n \n deleteWithDescendants(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n move\n \n \n \n \n \n \n \n move(child: AnyBoardDo, targetParent: AnyBoardDo, targetPosition?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/board-do.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n targetParent\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AnyBoardDo } from '@shared/domain';\nimport { BoardDoRepo } from '../repo';\n\n@Injectable()\nexport class BoardDoService {\n\tconstructor(private readonly boardDoRepo: BoardDoRepo) {}\n\n\tasync deleteWithDescendants(domainObject: AnyBoardDo): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(domainObject.id);\n\n\t\tif (parent) {\n\t\t\tparent.removeChild(domainObject);\n\t\t\tawait this.boardDoRepo.save(parent.children, parent);\n\t\t}\n\n\t\tawait this.boardDoRepo.delete(domainObject);\n\t}\n\n\tasync move(child: AnyBoardDo, targetParent: AnyBoardDo, targetPosition?: number): Promise {\n\t\tif (targetParent.hasChild(child)) {\n\t\t\ttargetParent.removeChild(child);\n\t\t} else {\n\t\t\tconst sourceParent = await this.boardDoRepo.findParentOfId(child.id);\n\t\t\tif (sourceParent) {\n\t\t\t\tsourceParent.removeChild(child);\n\t\t\t\tawait this.boardDoRepo.save(sourceParent.children, sourceParent);\n\t\t\t}\n\t\t}\n\t\ttargetParent.addChild(child, targetPosition);\n\t\tawait this.boardDoRepo.save(targetParent.children, targetParent);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/BoardElement.html":{"url":"entities/BoardElement.html","title":"entity - BoardElement","body":"\n \n\n\n\n\n\n\n\n Entities\n BoardElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/boardelement.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n boardElementType\n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n boardElementType\n \n \n \n \n \n \n Type : BoardElementType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/boardelement.entity.ts:30\n \n \n\n \n \n name of a collection which is referenced in target\n\n \n \n\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : BoardElementReference\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/boardelement.entity.ts:26\n \n \n\n \n \n id reference to a collection populated later with name\n\n \n \n\n \n \n\n \n\n\n \n import { Entity, Enum } from '@mikro-orm/core';\nimport { EntityId } from '../../types';\nimport { BaseEntityWithTimestamps } from '../base.entity';\nimport { LessonEntity } from '../lesson.entity';\nimport { Task } from '../task.entity';\nimport { ColumnBoardTarget } from './column-board-target.entity';\n\nexport type BoardElementReference = Task | LessonEntity | ColumnBoardTarget;\n\nexport enum BoardElementType {\n\t'Task' = 'task',\n\t'Lesson' = 'lesson',\n\t'ColumnBoard' = 'columnboard',\n}\n\nexport type BoardElementProps = {\n\ttarget: EntityId | BoardElementReference;\n};\n\n@Entity({\n\tdiscriminatorColumn: 'boardElementType',\n\tabstract: true,\n})\nexport abstract class BoardElement extends BaseEntityWithTimestamps {\n\t/** id reference to a collection populated later with name */\n\ttarget!: BoardElementReference;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\tboardElementType!: BoardElementType;\n\n\tconstructor(props: BoardElementProps) {\n\t\tsuper();\n\t\tObject.assign(this, { target: props.target });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardElementResponse.html":{"url":"classes/BoardElementResponse.html","title":"class - BoardElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-element.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : BoardTaskResponse | BoardLessonResponse | BoardColumnBoardResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Content of the Board, either: a task or a lesson specific for the board'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-element.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : RoomBoardElementTypes\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'the type of the element in the content. For possible types, please refer to the enum', enum: RoomBoardElementTypes})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-element.response.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { RoomBoardElementTypes } from '@src/modules/learnroom/types';\nimport { BoardColumnBoardResponse } from './board-column-board.response';\nimport { BoardLessonResponse } from './board-lesson.response';\nimport { BoardTaskResponse } from './board-task.response';\n\nexport class BoardElementResponse {\n\tconstructor({ type, content }: BoardElementResponse) {\n\t\tthis.type = type;\n\t\tthis.content = content;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'the type of the element in the content. For possible types, please refer to the enum',\n\t\tenum: RoomBoardElementTypes,\n\t})\n\ttype: RoomBoardElementTypes;\n\n\t@ApiProperty({\n\t\tdescription: 'Content of the Board, either: a task or a lesson specific for the board',\n\t})\n\tcontent: BoardTaskResponse | BoardLessonResponse | BoardColumnBoardResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardExternalReference.html":{"url":"interfaces/BoardExternalReference.html","title":"interface - BoardExternalReference","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardExternalReference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-external-reference.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n type\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: BoardExternalReferenceType\n\n \n \n\n\n \n \n Type : BoardExternalReferenceType\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain/types';\n\nexport enum BoardExternalReferenceType {\n\t'Course' = 'course',\n}\n\nexport interface BoardExternalReference {\n\ttype: BoardExternalReferenceType;\n\tid: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardLessonResponse.html":{"url":"classes/BoardLessonResponse.html","title":"class - BoardLessonResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardLessonResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n courseName\n \n \n \n createdAt\n \n \n \n hidden\n \n \n \n id\n \n \n \n \n name\n \n \n \n \n \n \n Optional\n numberOfDraftTasks\n \n \n \n \n \n \n Optional\n numberOfPlannedTasks\n \n \n \n \n \n numberOfPublishedTasks\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardLessonResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardLessonResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n courseName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n hidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:61\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n numberOfDraftTasks\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n numberOfPlannedTasks\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n numberOfPublishedTasks\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-lesson.response.ts:58\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { IsNumber, IsOptional, Min } from 'class-validator';\n\nexport class BoardLessonResponse {\n\tconstructor({\n\t\tid,\n\t\tname,\n\t\thidden,\n\t\tnumberOfPublishedTasks,\n\t\tnumberOfDraftTasks,\n\t\tnumberOfPlannedTasks,\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t}: BoardLessonResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t\tthis.hidden = hidden;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.numberOfPublishedTasks = numberOfPublishedTasks;\n\t\tthis.numberOfDraftTasks = numberOfDraftTasks;\n\t\tthis.numberOfPlannedTasks = numberOfPlannedTasks;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\t@DecodeHtmlEntities()\n\tcourseName?: string;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\tnumberOfPublishedTasks: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiProperty()\n\tnumberOfDraftTasks?: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiProperty()\n\tnumberOfPlannedTasks?: number;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\thidden: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardManagementConsole.html":{"url":"classes/BoardManagementConsole.html","title":"class - BoardManagementConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardManagementConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/console/board-management.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n createBoard\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consoleWriter: ConsoleWriterService, boardManagementUc: BoardManagementUc)\n \n \n \n \n Defined in apps/server/src/modules/management/console/board-management.console.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consoleWriter\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n boardManagementUc\n \n \n BoardManagementUc\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n createBoard\n \n \n \n \n \n \n \n createBoard(courseId: string)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'create-board [courseId]', description: 'create a multi-column-board'})\n \n \n\n \n \n Defined in apps/server/src/modules/management/console/board-management.console.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n courseId\n \n string\n \n\n \n No\n \n\n \n ''\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console';\nimport { ObjectId } from 'bson';\nimport { Command, Console } from 'nestjs-console';\nimport { BoardManagementUc } from '../uc/board-management.uc';\n\n@Console({ command: 'board', description: 'board setup console' })\nexport class BoardManagementConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService, private boardManagementUc: BoardManagementUc) {}\n\n\t@Command({\n\t\tcommand: 'create-board [courseId]',\n\t\tdescription: 'create a multi-column-board',\n\t})\n\tasync createBoard(courseId = ''): Promise {\n\t\tif (!ObjectId.isValid(courseId)) {\n\t\t\tthis.consoleWriter.info('Error: please provide a valid courseId this board should be assigned to.');\n\t\t\treturn;\n\t\t}\n\n\t\tconst boardId = await this.boardManagementUc.createBoard(courseId);\n\t\tif (boardId) {\n\t\t\tthis.consoleWriter.info(`Success: board creation is completed! The new boardId is \"${boardId ?? ''}\"`);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardManagementUc.html":{"url":"injectables/BoardManagementUc.html","title":"injectable - BoardManagementUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardManagementUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/uc/board-management.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createBoard\n \n \n Private\n createCards\n \n \n Private\n createColumns\n \n \n Private\n createElements\n \n \n Private\n Async\n doesCourseExist\n \n \n Private\n generateArray\n \n \n Private\n random\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consoleWriter: ConsoleWriterService, em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consoleWriter\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createBoard\n \n \n \n \n \n \n \n createBoard(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createCards\n \n \n \n \n \n \n \n createCards(amount: number, parent: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n amount\n \n number\n \n\n \n No\n \n\n\n \n \n parent\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardNode[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createColumns\n \n \n \n \n \n \n \n createColumns(amount: number, parent: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n amount\n \n number\n \n\n \n No\n \n\n\n \n \n parent\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardNode[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createElements\n \n \n \n \n \n \n \n createElements(amount: number, parent: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n amount\n \n number\n \n\n \n No\n \n\n\n \n \n parent\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardNode[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n doesCourseExist\n \n \n \n \n \n \n \n doesCourseExist(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n \n ''\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n generateArray\n \n \n \n \n \n \n \n generateArray(length: number, fn: (i: number) => void)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:71\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n length\n \n number\n \n\n \n No\n \n\n\n \n \n fn\n \n function\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n random\n \n \n \n \n \n \n \n random(min: number, max: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/uc/board-management.uc.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n min\n \n number\n \n\n \n No\n \n\n\n \n \n max\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : number\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BoardExternalReferenceType, BoardNode, Course, EntityId, InputFormat } from '@shared/domain';\nimport { ConsoleWriterService } from '@shared/infra/console';\nimport {\n\tcardNodeFactory,\n\tcolumnBoardNodeFactory,\n\tcolumnNodeFactory,\n\trichTextElementNodeFactory,\n} from '@shared/testing';\n\n@Injectable()\nexport class BoardManagementUc {\n\tconstructor(private consoleWriter: ConsoleWriterService, private em: EntityManager) {}\n\n\tasync createBoard(courseId: EntityId): Promise {\n\t\tif (!(await this.doesCourseExist(courseId))) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst context = { type: BoardExternalReferenceType.Course, id: courseId };\n\t\tconst board = columnBoardNodeFactory.build({ context });\n\t\tawait this.em.persistAndFlush(board);\n\n\t\tconst columns = this.createColumns(3, board);\n\t\tawait this.em.persistAndFlush(columns);\n\n\t\tconst cardsPerColumn = columns.map((column) => this.createCards(this.random(1, 3), column));\n\t\tconst cards = cardsPerColumn.flat();\n\t\tawait this.em.persistAndFlush(cards);\n\n\t\tconst elementsPerCard = cards.map((card) => this.createElements(1, card));\n\t\tconst elements = elementsPerCard.flat();\n\t\tawait this.em.persistAndFlush(elements);\n\n\t\treturn board.id;\n\t}\n\n\tprivate createColumns(amount: number, parent: BoardNode): BoardNode[] {\n\t\treturn this.generateArray(amount, (i) =>\n\t\t\tcolumnNodeFactory.build({\n\t\t\t\tparent,\n\t\t\t\ttitle: `Column ${i + 1}`,\n\t\t\t\tposition: i,\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate createCards(amount: number, parent: BoardNode): BoardNode[] {\n\t\treturn this.generateArray(amount, (i) =>\n\t\t\tcardNodeFactory.build({\n\t\t\t\tparent,\n\t\t\t\ttitle: `Card ${i + 1}`,\n\t\t\t\theight: this.random(50, 250),\n\t\t\t\tposition: i,\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate createElements(amount: number, parent: BoardNode): BoardNode[] {\n\t\treturn this.generateArray(amount, (i) =>\n\t\t\trichTextElementNodeFactory.build({\n\t\t\t\tparent,\n\t\t\t\ttext: `Text ${i + 1}`,\n\t\t\t\tinputFormat: InputFormat.RICH_TEXT_CK5,\n\t\t\t\tposition: i,\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate generateArray(length: number, fn: (i: number) => T) {\n\t\treturn [...Array(length).keys()].map((_, i) => fn(i));\n\t}\n\n\tprivate random(min: number, max: number): number {\n\t\treturn Math.floor(Math.random() * (max + min - 1) + min);\n\t}\n\n\tprivate async doesCourseExist(courseId: EntityId = ''): Promise {\n\t\ttry {\n\t\t\tawait this.em.findOneOrFail(Course, courseId);\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\tthis.consoleWriter.info(`Error: course does not exist (courseId: \"${courseId}\")`);\n\t\t}\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/BoardModule.html":{"url":"modules/BoardModule.html","title":"module - BoardModule","body":"\n \n\n\n\n\n Modules\n BoardModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_BoardModule\n\n\n\ncluster_BoardModule_exports\n\n\n\ncluster_BoardModule_providers\n\n\n\ncluster_BoardModule_imports\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\n\n\nBoardModule\n\nBoardModule\n\nBoardModule -->\n\nConsoleWriterModule->BoardModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nBoardModule -->\n\nFilesStorageClientModule->BoardModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nBoardModule -->\n\nLoggerModule->BoardModule\n\n\n\n\n\nBoardDoAuthorizableService \n\nBoardDoAuthorizableService \n\nBoardDoAuthorizableService -->\n\nBoardModule->BoardDoAuthorizableService \n\n\n\n\n\nCardService \n\nCardService \n\nCardService -->\n\nBoardModule->CardService \n\n\n\n\n\nColumnBoardService \n\nColumnBoardService \n\nColumnBoardService -->\n\nBoardModule->ColumnBoardService \n\n\n\n\n\nColumnService \n\nColumnService \n\nColumnService -->\n\nBoardModule->ColumnService \n\n\n\n\n\nContentElementService \n\nContentElementService \n\nContentElementService -->\n\nBoardModule->ContentElementService \n\n\n\n\n\nSubmissionItemService \n\nSubmissionItemService \n\nSubmissionItemService -->\n\nBoardModule->SubmissionItemService \n\n\n\n\n\nBoardDoAuthorizableService\n\nBoardDoAuthorizableService\n\nBoardModule -->\n\nBoardDoAuthorizableService->BoardModule\n\n\n\n\n\nBoardDoRepo\n\nBoardDoRepo\n\nBoardModule -->\n\nBoardDoRepo->BoardModule\n\n\n\n\n\nBoardDoService\n\nBoardDoService\n\nBoardModule -->\n\nBoardDoService->BoardModule\n\n\n\n\n\nBoardNodeRepo\n\nBoardNodeRepo\n\nBoardModule -->\n\nBoardNodeRepo->BoardModule\n\n\n\n\n\nCardService\n\nCardService\n\nBoardModule -->\n\nCardService->BoardModule\n\n\n\n\n\nColumnBoardService\n\nColumnBoardService\n\nBoardModule -->\n\nColumnBoardService->BoardModule\n\n\n\n\n\nColumnService\n\nColumnService\n\nBoardModule -->\n\nColumnService->BoardModule\n\n\n\n\n\nContentElementFactory\n\nContentElementFactory\n\nBoardModule -->\n\nContentElementFactory->BoardModule\n\n\n\n\n\nContentElementService\n\nContentElementService\n\nBoardModule -->\n\nContentElementService->BoardModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nBoardModule -->\n\nCourseRepo->BoardModule\n\n\n\n\n\nRecursiveDeleteVisitor\n\nRecursiveDeleteVisitor\n\nBoardModule -->\n\nRecursiveDeleteVisitor->BoardModule\n\n\n\n\n\nSubmissionItemService\n\nSubmissionItemService\n\nBoardModule -->\n\nSubmissionItemService->BoardModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/board/board.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardDoAuthorizableService\n \n \n BoardDoRepo\n \n \n BoardDoService\n \n \n BoardNodeRepo\n \n \n CardService\n \n \n ColumnBoardService\n \n \n ColumnService\n \n \n ContentElementFactory\n \n \n ContentElementService\n \n \n CourseRepo\n \n \n RecursiveDeleteVisitor\n \n \n SubmissionItemService\n \n \n \n \n Imports\n \n \n ConsoleWriterModule\n \n \n FilesStorageClientModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n BoardDoAuthorizableService\n \n \n CardService\n \n \n ColumnBoardService\n \n \n ColumnService\n \n \n ContentElementService\n \n \n SubmissionItemService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ContentElementFactory } from '@shared/domain';\nimport { ConsoleWriterModule } from '@shared/infra/console';\nimport { CourseRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { FilesStorageClientModule } from '../files-storage-client';\nimport { BoardDoRepo, BoardNodeRepo } from './repo';\nimport { RecursiveDeleteVisitor } from './repo/recursive-delete.vistor';\nimport {\n\tBoardDoAuthorizableService,\n\tBoardDoService,\n\tCardService,\n\tColumnBoardService,\n\tColumnService,\n\tContentElementService,\n\tSubmissionItemService,\n} from './service';\n\n@Module({\n\timports: [ConsoleWriterModule, FilesStorageClientModule, LoggerModule],\n\tproviders: [\n\t\tBoardDoAuthorizableService,\n\t\tBoardDoRepo,\n\t\tBoardDoService,\n\t\tBoardNodeRepo,\n\t\tCardService,\n\t\tColumnBoardService,\n\t\tColumnService,\n\t\tContentElementService,\n\t\tContentElementFactory,\n\t\tCourseRepo, // TODO: import learnroom module instead. This is currently not possible due to dependency cycle with authorisation service\n\t\tRecursiveDeleteVisitor,\n\t\tSubmissionItemService,\n\t],\n\texports: [\n\t\tBoardDoAuthorizableService,\n\t\tCardService,\n\t\tColumnBoardService,\n\t\tColumnService,\n\t\tContentElementService,\n\t\tSubmissionItemService,\n\t],\n})\nexport class BoardModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/BoardNode.html":{"url":"entities/BoardNode.html","title":"entity - BoardNode","body":"\n \n\n\n\n\n\n\n\n Entities\n BoardNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n level\n \n \n \n \n path\n \n \n \n position\n \n \n \n Optional\n title\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n level\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n path\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Index()@Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n position\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : BoardNodeType\n\n \n \n \n \n Decorators : \n \n \n @Index()@Enum(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts:39\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { AnyBoardDo } from '../../domainobject';\nimport { EntityId } from '../../types';\nimport { BaseEntityWithTimestamps } from '../base.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\nconst PATH_SEPARATOR = ',';\n\n@Entity({ tableName: 'boardnodes', discriminatorColumn: 'type' })\nexport abstract class BoardNode extends BaseEntityWithTimestamps {\n\tconstructor(props: BoardNodeProps) {\n\t\tsuper();\n\t\tif (props.parent && props.parent.id == null) {\n\t\t\tthrow new InternalServerErrorException('Cannot create board node with a parent having no id');\n\t\t}\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.path = props.parent ? BoardNode.joinPath(props.parent.path, props.parent.id) : PATH_SEPARATOR;\n\t\tthis.level = props.parent ? props.parent.level + 1 : 0;\n\t\tthis.position = props.position ?? 0;\n\t\tthis.title = props.title;\n\t}\n\n\t@Index()\n\t@Property({ nullable: false })\n\tpath: string;\n\n\t@Property({ nullable: false })\n\tlevel: number;\n\n\t@Property({ nullable: false })\n\tposition: number;\n\n\t@Index()\n\t@Enum(() => BoardNodeType)\n\ttype!: BoardNodeType;\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\tget parentId(): EntityId | undefined {\n\t\tconst parentId = this.hasParent() ? this.ancestorIds[this.ancestorIds.length - 1] : undefined;\n\t\treturn parentId;\n\t}\n\n\tget ancestorIds(): EntityId[] {\n\t\tconst parentIds = this.path.split(PATH_SEPARATOR).filter((id) => id !== '');\n\t\treturn parentIds;\n\t}\n\n\tget pathOfChildren(): string {\n\t\treturn BoardNode.joinPath(this.path, this.id);\n\t}\n\n\thasParent() {\n\t\treturn this.ancestorIds.length > 0;\n\t}\n\n\tabstract useDoBuilder(builder: BoardDoBuilder): AnyBoardDo;\n\n\tstatic joinPath(path: string, id: EntityId) {\n\t\treturn `${path}${id}${PATH_SEPARATOR}`;\n\t}\n}\n\nexport interface BoardNodeProps {\n\tid?: EntityId;\n\tparent?: BoardNode;\n\tposition?: number;\n\ttitle?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/BoardNodeProps.html":{"url":"interfaces/BoardNodeProps.html","title":"interface - BoardNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n BoardNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/boardnode.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n Optional\n \n parent\n \n \n \n Optional\n \n position\n \n \n \n Optional\n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parent\n \n \n \n \n \n \n \n \n parent: BoardNode\n\n \n \n\n\n \n \n Type : BoardNode\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n position\n \n \n \n \n \n \n \n \n position: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { AnyBoardDo } from '../../domainobject';\nimport { EntityId } from '../../types';\nimport { BaseEntityWithTimestamps } from '../base.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\nconst PATH_SEPARATOR = ',';\n\n@Entity({ tableName: 'boardnodes', discriminatorColumn: 'type' })\nexport abstract class BoardNode extends BaseEntityWithTimestamps {\n\tconstructor(props: BoardNodeProps) {\n\t\tsuper();\n\t\tif (props.parent && props.parent.id == null) {\n\t\t\tthrow new InternalServerErrorException('Cannot create board node with a parent having no id');\n\t\t}\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.path = props.parent ? BoardNode.joinPath(props.parent.path, props.parent.id) : PATH_SEPARATOR;\n\t\tthis.level = props.parent ? props.parent.level + 1 : 0;\n\t\tthis.position = props.position ?? 0;\n\t\tthis.title = props.title;\n\t}\n\n\t@Index()\n\t@Property({ nullable: false })\n\tpath: string;\n\n\t@Property({ nullable: false })\n\tlevel: number;\n\n\t@Property({ nullable: false })\n\tposition: number;\n\n\t@Index()\n\t@Enum(() => BoardNodeType)\n\ttype!: BoardNodeType;\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\tget parentId(): EntityId | undefined {\n\t\tconst parentId = this.hasParent() ? this.ancestorIds[this.ancestorIds.length - 1] : undefined;\n\t\treturn parentId;\n\t}\n\n\tget ancestorIds(): EntityId[] {\n\t\tconst parentIds = this.path.split(PATH_SEPARATOR).filter((id) => id !== '');\n\t\treturn parentIds;\n\t}\n\n\tget pathOfChildren(): string {\n\t\treturn BoardNode.joinPath(this.path, this.id);\n\t}\n\n\thasParent() {\n\t\treturn this.ancestorIds.length > 0;\n\t}\n\n\tabstract useDoBuilder(builder: BoardDoBuilder): AnyBoardDo;\n\n\tstatic joinPath(path: string, id: EntityId) {\n\t\treturn `${path}${id}${PATH_SEPARATOR}`;\n\t}\n}\n\nexport interface BoardNodeProps {\n\tid?: EntityId;\n\tparent?: BoardNode;\n\tposition?: number;\n\ttitle?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardNodeRepo.html":{"url":"injectables/BoardNodeRepo.html","title":"injectable - BoardNodeRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardNodeRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/board-node.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findDescendants\n \n \n Async\n findDescendantsOfMany\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/board-node.repo.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-node.repo.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findDescendants\n \n \n \n \n \n \n \n findDescendants(node: BoardNode, depth?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-node.repo.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n node\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n depth\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findDescendantsOfMany\n \n \n \n \n \n \n \n findDescendantsOfMany(nodes: BoardNode[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/board-node.repo.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n nodes\n \n BoardNode[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BoardNode, EntityId } from '@shared/domain';\n\n@Injectable()\nexport class BoardNodeRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tlet entity = this.em.getUnitOfWork().getById(BoardNode.name, id);\n\t\tif (entity) {\n\t\t\treturn entity;\n\t\t}\n\n\t\tentity = await this.em.findOneOrFail(BoardNode, id);\n\t\treturn entity;\n\t}\n\n\tasync findDescendants(node: BoardNode, depth?: number): Promise {\n\t\tconst levelQuery = depth !== undefined ? { $gt: node.level, $lte: node.level + depth } : { $gt: node.level };\n\n\t\tconst descendants = await this.em.find(BoardNode, {\n\t\t\tpath: { $re: `^${node.pathOfChildren}` },\n\t\t\tlevel: levelQuery,\n\t\t});\n\n\t\treturn descendants;\n\t}\n\n\tasync findDescendantsOfMany(nodes: BoardNode[]): Promise> {\n\t\tconst pathQueries = nodes.map((node) => {\n\t\t\treturn { path: { $re: `^${node.pathOfChildren}` } };\n\t\t});\n\n\t\tconst map: Record = {};\n\t\tif (pathQueries.length === 0) {\n\t\t\treturn map;\n\t\t}\n\n\t\tconst descendants = await this.em.find(BoardNode, {\n\t\t\t$or: pathQueries,\n\t\t});\n\n\t\t// this is for finding tha ancestors of a descendant\n\t\t// we use this to group the descendants by ancestor\n\t\t// TODO we probably need a more efficient way to do the grouping\n\t\tconst matchAncestors = (descendant: BoardNode): BoardNode[] => {\n\t\t\tconst result = nodes.filter((n) => descendant.path.match(`^${n.pathOfChildren}`));\n\t\t\treturn result;\n\t\t};\n\n\t\tfor (const desc of descendants) {\n\t\t\tconst ancestorNodes = matchAncestors(desc);\n\t\t\tancestorNodes.forEach((node) => {\n\t\t\t\tmap[node.pathOfChildren] ||= [];\n\t\t\t\tmap[node.pathOfChildren].push(desc);\n\t\t\t});\n\t\t}\n\t\treturn map;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardRepo.html":{"url":"injectables/BoardRepo.html","title":"injectable - BoardRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/board/board.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n createBoardForCourse\n \n \n Async\n findByCourseId\n \n \n Async\n findById\n \n \n Private\n Async\n getOrCreateCourseBoard\n \n \n Private\n Async\n populateBoard\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n createBoardForCourse\n \n \n \n \n \n \n \n createBoardForCourse(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByCourseId\n \n \n \n \n \n \n \n findByCourseId(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:32\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getOrCreateCourseBoard\n \n \n \n \n \n \n \n getOrCreateCourseBoard(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateBoard\n \n \n \n \n \n \n \n populateBoard(board: Board)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n Board\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/board/board.repo.ts:7\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Board, ColumnboardBoardElement, Course, EntityId, LessonBoardElement, TaskBoardElement } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class BoardRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Board;\n\t}\n\n\tasync findByCourseId(courseId: EntityId): Promise {\n\t\tconst board = await this.getOrCreateCourseBoard(courseId);\n\t\tawait this.populateBoard(board);\n\t\treturn board;\n\t}\n\n\tprivate async getOrCreateCourseBoard(courseId: EntityId): Promise {\n\t\tlet board = await this._em.findOne(Board, { course: courseId });\n\t\tif (!board) {\n\t\t\tboard = await this.createBoardForCourse(courseId);\n\t\t}\n\t\treturn board;\n\t}\n\n\tprivate async createBoardForCourse(courseId: EntityId): Promise {\n\t\tconst course = await this._em.findOneOrFail(Course, courseId);\n\t\tconst board = new Board({ course, references: [] });\n\t\tawait this._em.persistAndFlush(board);\n\t\treturn board;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst board = await this._em.findOneOrFail(Board, { id });\n\t\tawait this.populateBoard(board);\n\t\treturn board;\n\t}\n\n\tprivate async populateBoard(board: Board) {\n\t\tawait board.references.init();\n\t\tconst elements = board.references.getItems();\n\t\tconst taskElements = elements.filter((el) => el instanceof TaskBoardElement);\n\t\tawait this._em.populate(taskElements, ['target']);\n\t\tconst lessonElements = elements.filter((el) => el instanceof LessonBoardElement);\n\t\tawait this._em.populate(lessonElements, ['target']);\n\t\tconst columnBoardElements = elements.filter((el) => el instanceof ColumnboardBoardElement);\n\t\tawait this._em.populate(columnBoardElements, ['target']);\n\t\treturn board;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardResponse.html":{"url":"classes/BoardResponse.html","title":"class - BoardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/board.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n columns\n \n \n \n id\n \n \n \n timestamps\n \n \n \n \n Optional\n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n columns\n \n \n \n \n \n \n Type : ColumnResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.response.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { ColumnResponse } from './column.response';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class BoardResponse {\n\tconstructor({ id, title, columns, timestamps }: BoardResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.columns = columns;\n\t\tthis.timestamps = timestamps;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\ttype: [ColumnResponse],\n\t})\n\tcolumns: ColumnResponse[];\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardResponseMapper.html":{"url":"classes/BoardResponseMapper.html","title":"class - BoardResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/board-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(board: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/board-response.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, HttpStatus } from '@nestjs/common';\nimport { Column, ColumnBoard } from '@shared/domain';\nimport { BoardResponse, TimestampsResponse } from '../dto';\nimport { ColumnResponseMapper } from './column-response.mapper';\n\nexport class BoardResponseMapper {\n\tstatic mapToResponse(board: ColumnBoard): BoardResponse {\n\t\tconst result = new BoardResponse({\n\t\t\tid: board.id,\n\t\t\ttitle: board.title,\n\t\t\tcolumns: board.children.map((column) => {\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tif (!(column instanceof Column)) {\n\t\t\t\t\tthrow new HttpException(\n\t\t\t\t\t\t`unsupported child type: ${column.constructor.name}`,\n\t\t\t\t\t\tHttpStatus.UNPROCESSABLE_ENTITY\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn ColumnResponseMapper.mapToResponse(column);\n\t\t\t}),\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: board.updatedAt, createdAt: board.createdAt }),\n\t\t});\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/BoardSubmissionController.html":{"url":"controllers/BoardSubmissionController.html","title":"controller - BoardSubmissionController","body":"\n \n\n\n\n\n\n\n Controllers\n BoardSubmissionController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/board-submission.controller.ts\n \n\n \n Prefix\n \n \n board-submissions\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n Async\n getSubmissionItems\n \n \n \n \n \n \n \n \n \n Async\n updateSubmissionItem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSubmissionItems\n \n \n \n \n \n \n \n getSubmissionItems(currentUser: ICurrentUser, urlParams: SubmissionContainerUrlParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get a list of submission items by their parent container.'})@ApiResponse({status: 200, type: undefined})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@Get(':submissionContainerId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board-submission.controller.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n SubmissionContainerUrlParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSubmissionItem\n \n \n \n \n \n \n \n updateSubmissionItem(currentUser: ICurrentUser, urlParams: SubmissionItemUrlParams, bodyParams: UpdateSubmissionItemBodyParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update a single submission item.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':submissionItemId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/board-submission.controller.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n SubmissionItemUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n UpdateSubmissionItemBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, ForbiddenException, Get, HttpCode, NotFoundException, Param, Patch } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CardUc } from '../uc';\nimport { ElementUc } from '../uc/element.uc';\nimport { SubmissionItemUc } from '../uc/submission-item.uc';\nimport {\n\tSubmissionContainerUrlParams,\n\tSubmissionItemResponse,\n\tSubmissionItemUrlParams,\n\tUpdateSubmissionItemBodyParams,\n} from './dto';\nimport { SubmissionItemResponseMapper } from './mapper';\n\n@ApiTags('Board Submission')\n@Authenticate('jwt')\n@Controller('board-submissions')\nexport class BoardSubmissionController {\n\tconstructor(\n\t\tprivate readonly cardUc: CardUc,\n\t\tprivate readonly elementUc: ElementUc,\n\t\tprivate readonly submissionItemUc: SubmissionItemUc\n\t) {}\n\n\t@ApiOperation({ summary: 'Get a list of submission items by their parent container.' })\n\t@ApiResponse({ status: 200, type: [SubmissionItemResponse] })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@Get(':submissionContainerId')\n\tasync getSubmissionItems(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: SubmissionContainerUrlParams\n\t): Promise {\n\t\tconst items = await this.submissionItemUc.findSubmissionItems(currentUser.userId, urlParams.submissionContainerId);\n\t\tconst mapper = SubmissionItemResponseMapper.getInstance();\n\t\treturn items.map((item) => mapper.mapToResponse(item));\n\t}\n\n\t@ApiOperation({ summary: 'Update a single submission item.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':submissionItemId')\n\tasync updateSubmissionItem(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: SubmissionItemUrlParams,\n\t\t@Body() bodyParams: UpdateSubmissionItemBodyParams\n\t) {\n\t\tawait this.submissionItemUc.updateSubmissionItem(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.submissionItemId,\n\t\t\tbodyParams.completed\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardTaskResponse.html":{"url":"classes/BoardTaskResponse.html","title":"class - BoardTaskResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardTaskResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n Optional\n courseName\n \n \n \n createdAt\n \n \n \n \n Optional\n description\n \n \n \n Optional\n displayColor\n \n \n \n Optional\n dueDate\n \n \n \n id\n \n \n \n \n name\n \n \n \n status\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardTaskResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardTaskResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n courseName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : BoardTaskStatusResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task.response.ts:42\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { BoardTaskStatusResponse } from './board-task-status.response';\n\nexport class BoardTaskResponse {\n\tconstructor({ id, name, createdAt, updatedAt, status }: BoardTaskResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.status = status;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tavailableDate?: Date;\n\n\t@ApiPropertyOptional()\n\tdueDate?: Date;\n\n\t@ApiPropertyOptional()\n\t@DecodeHtmlEntities()\n\tcourseName?: string;\n\n\t@ApiPropertyOptional()\n\t@DecodeHtmlEntities()\n\tdescription?: string;\n\n\t@ApiPropertyOptional()\n\tdisplayColor?: string;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\tstatus: BoardTaskStatusResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardTaskStatusMapper.html":{"url":"classes/BoardTaskStatusMapper.html","title":"class - BoardTaskStatusMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardTaskStatusMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/mapper/board-taskStatus.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(status: ITaskStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/board-taskStatus.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n status\n \n ITaskStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BoardTaskStatusResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ITaskStatus } from '@shared/domain';\nimport { BoardTaskStatusResponse } from '../controller/dto';\n\nexport class BoardTaskStatusMapper {\n\tstatic mapToResponse(status: ITaskStatus): BoardTaskStatusResponse {\n\t\tconst dto = new BoardTaskStatusResponse(status);\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardTaskStatusResponse.html":{"url":"classes/BoardTaskStatusResponse.html","title":"class - BoardTaskStatusResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardTaskStatusResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n graded\n \n \n \n isDraft\n \n \n \n isFinished\n \n \n \n isSubstitutionTeacher\n \n \n \n maxSubmissions\n \n \n \n submitted\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: BoardTaskStatusResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n BoardTaskStatusResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n isDraft\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n isFinished\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n isSubstitutionTeacher\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n maxSubmissions\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board-task-status.response.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class BoardTaskStatusResponse {\n\tconstructor({\n\t\tsubmitted,\n\t\tmaxSubmissions,\n\t\tgraded,\n\t\tisDraft,\n\t\tisSubstitutionTeacher,\n\t\tisFinished,\n\t}: BoardTaskStatusResponse) {\n\t\tthis.submitted = submitted;\n\t\tthis.maxSubmissions = maxSubmissions;\n\t\tthis.graded = graded;\n\t\tthis.isDraft = isDraft;\n\t\tthis.isSubstitutionTeacher = isSubstitutionTeacher;\n\t\tthis.isFinished = isFinished;\n\t}\n\n\t@ApiProperty()\n\tsubmitted: number;\n\n\t@ApiProperty()\n\tmaxSubmissions: number;\n\n\t@ApiProperty()\n\tgraded: number;\n\n\t@ApiProperty()\n\tisDraft: boolean;\n\n\t@ApiProperty()\n\tisSubstitutionTeacher: boolean;\n\n\t@ApiProperty()\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BoardUc.html":{"url":"injectables/BoardUc.html","title":"injectable - BoardUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BoardUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/board.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n Async\n createCard\n \n \n Async\n createColumn\n \n \n Async\n deleteBoard\n \n \n Async\n deleteCard\n \n \n Async\n deleteColumn\n \n \n Async\n findBoard\n \n \n Async\n findBoardContext\n \n \n Async\n moveCard\n \n \n Async\n moveColumn\n \n \n Async\n updateBoardTitle\n \n \n Async\n updateCardHeight\n \n \n Async\n updateCardTitle\n \n \n Async\n updateColumnTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, cardService: CardService, columnBoardService: ColumnBoardService, columnService: ColumnService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n cardService\n \n \n CardService\n \n \n \n No\n \n \n \n \n columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \n \n \n \n columnService\n \n \n ColumnService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:161\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createCard\n \n \n \n \n \n \n \n createCard(userId: EntityId, columnId: EntityId, requiredEmptyElements?: ContentElementType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n requiredEmptyElements\n \n ContentElementType[]\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createColumn\n \n \n \n \n \n \n \n createColumn(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteBoard\n \n \n \n \n \n \n \n deleteBoard(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteCard\n \n \n \n \n \n \n \n deleteCard(userId: EntityId, cardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:152\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteColumn\n \n \n \n \n \n \n \n deleteColumn(userId: EntityId, columnId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBoard\n \n \n \n \n \n \n \n findBoard(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBoardContext\n \n \n \n \n \n \n \n findBoardContext(userId: EntityId, boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveCard\n \n \n \n \n \n \n \n moveCard(userId: EntityId, cardId: EntityId, targetColumnId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetColumnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveColumn\n \n \n \n \n \n \n \n moveColumn(userId: EntityId, columnId: EntityId, targetBoardId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetBoardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateBoardTitle\n \n \n \n \n \n \n \n updateBoardTitle(userId: EntityId, boardId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:57\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardHeight\n \n \n \n \n \n \n \n updateCardHeight(userId: EntityId, cardId: EntityId, height: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:134\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n height\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardTitle\n \n \n \n \n \n \n \n updateCardTitle(userId: EntityId, cardId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:143\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateColumnTitle\n \n \n \n \n \n \n \n updateColumnTitle(userId: EntityId, columnId: EntityId, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/board.uc.ts:102\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tBoardExternalReference,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tContentElementType,\n\tEntityId,\n} from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport { CardService, ColumnBoardService, ColumnService } from '../service';\nimport { BoardDoAuthorizableService } from '../service/board-do-authorizable.service';\n\n@Injectable()\nexport class BoardUc {\n\tconstructor(\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly cardService: CardService,\n\t\tprivate readonly columnBoardService: ColumnBoardService,\n\t\tprivate readonly columnService: ColumnService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(BoardUc.name);\n\t}\n\n\tasync findBoard(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'findBoard', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.read);\n\n\t\treturn board;\n\t}\n\n\tasync findBoardContext(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'findBoardContext', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.read);\n\n\t\treturn board.context;\n\t}\n\n\tasync deleteBoard(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteBoard', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tawait this.columnBoardService.delete(board);\n\t}\n\n\tasync updateBoardTitle(userId: EntityId, boardId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateBoardTitle', userId, boardId, title });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tawait this.columnBoardService.updateTitle(board, title);\n\t}\n\n\tasync createColumn(userId: EntityId, boardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'createColumn', userId, boardId });\n\n\t\tconst board = await this.columnBoardService.findById(boardId);\n\t\tawait this.checkPermission(userId, board, Action.write);\n\n\t\tconst column = await this.columnService.create(board);\n\t\treturn column;\n\t}\n\n\tasync deleteColumn(userId: EntityId, columnId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteColumn', userId, columnId });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.write);\n\n\t\tawait this.columnService.delete(column);\n\t}\n\n\tasync moveColumn(\n\t\tuserId: EntityId,\n\t\tcolumnId: EntityId,\n\t\ttargetBoardId: EntityId,\n\t\ttargetPosition: number\n\t): Promise {\n\t\tthis.logger.debug({ action: 'moveColumn', userId, columnId, targetBoardId, targetPosition });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tconst targetBoard = await this.columnBoardService.findById(targetBoardId);\n\n\t\tawait this.checkPermission(userId, column, Action.write);\n\t\tawait this.checkPermission(userId, targetBoard, Action.write);\n\n\t\tawait this.columnService.move(column, targetBoard, targetPosition);\n\t}\n\n\tasync updateColumnTitle(userId: EntityId, columnId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateColumnTitle', userId, columnId, title });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.write);\n\n\t\tawait this.columnService.updateTitle(column, title);\n\t}\n\n\tasync createCard(userId: EntityId, columnId: EntityId, requiredEmptyElements?: ContentElementType[]): Promise {\n\t\tthis.logger.debug({ action: 'createCard', userId, columnId });\n\n\t\tconst column = await this.columnService.findById(columnId);\n\t\tawait this.checkPermission(userId, column, Action.read);\n\n\t\tconst card = await this.cardService.create(column, requiredEmptyElements);\n\n\t\treturn card;\n\t}\n\n\tasync moveCard(userId: EntityId, cardId: EntityId, targetColumnId: EntityId, targetPosition: number): Promise {\n\t\tthis.logger.debug({ action: 'moveCard', userId, cardId, targetColumnId, toPosition: targetPosition });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tconst targetColumn = await this.columnService.findById(targetColumnId);\n\n\t\tawait this.checkPermission(userId, card, Action.write);\n\t\tawait this.checkPermission(userId, targetColumn, Action.write);\n\n\t\tawait this.cardService.move(card, targetColumn, targetPosition);\n\t}\n\n\tasync updateCardHeight(userId: EntityId, cardId: EntityId, height: number): Promise {\n\t\tthis.logger.debug({ action: 'updateCardHeight', userId, cardId, height });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.updateHeight(card, height);\n\t}\n\n\tasync updateCardTitle(userId: EntityId, cardId: EntityId, title: string): Promise {\n\t\tthis.logger.debug({ action: 'updateCardTitle', userId, cardId, title });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.updateTitle(card, title);\n\t}\n\n\tasync deleteCard(userId: EntityId, cardId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteCard', userId, cardId });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tawait this.cardService.delete(card);\n\t}\n\n\tprivate async checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tconst context = { action, requiredPermissions: [] };\n\n\t\treturn this.authorizationService.checkPermission(user, boardDoAuthorizable, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BoardUrlParams.html":{"url":"classes/BoardUrlParams.html","title":"class - BoardUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BoardUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/board.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n boardId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n boardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the board.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/board.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class BoardUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the board.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tboardId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BruteForceError.html":{"url":"classes/BruteForceError.html","title":"class - BruteForceError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BruteForceError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/errors/brute-force.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n timeToWait\n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(timeToWait: number, message: string)\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/brute-force.error.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n timeToWait\n \n \n number\n \n \n \n No\n \n \n \n \n message\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n timeToWait\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/brute-force.error.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class BruteForceError extends BusinessError {\n\treadonly timeToWait: number;\n\n\tconstructor(timeToWait: number, message: string) {\n\t\tsuper(\n\t\t\t{ type: 'ENTITY_NOT_FOUND', title: 'Entity Not Found', defaultMessage: message },\n\t\t\tHttpStatus.TOO_MANY_REQUESTS,\n\t\t\t{\n\t\t\t\ttimeToWait,\n\t\t\t}\n\t\t);\n\t\tthis.timeToWait = timeToWait;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/BsonConverter.html":{"url":"injectables/BsonConverter.html","title":"injectable - BsonConverter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n BsonConverter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/converter/bson.converter.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n deserialize\n \n \n serialize\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n deserialize\n \n \n \n \n \n \ndeserialize(bsonDocuments: [])\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/converter/bson.converter.ts:21\n \n \n\n\n \n \n Deserializes documents from Extended JSON JavaScript objects to plain JavaScript objects.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n bsonDocuments\n \n []\n \n\n \n No\n \n\n\n \n mongo-bson/ejson objects\n\n \n \n \n \n \n \n \n \n Returns : []\n\n \n \n mongo-json documents\n\n \n \n \n \n \n \n \n \n \n \n \n serialize\n \n \n \n \n \n \nserialize(documents: [])\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/converter/bson.converter.ts:11\n \n \n\n\n \n \n Serializes documents from plain JavaScript objects to Extended JSON JavaScript objects.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n documents\n \n []\n \n\n \n No\n \n\n\n \n mongo-json documents\n\n \n \n \n \n \n \n \n \n Returns : []\n\n \n \n mongo-bson/ejson objects\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EJSON } from 'bson';\n\n@Injectable()\nexport class BsonConverter {\n\t/**\n\t * Serializes documents from plain JavaScript objects to Extended JSON JavaScript objects.\n\t * @param documents mongo-json documents\n\t * @returns mongo-bson/ejson objects\n\t */\n\tserialize(documents: unknown[]): unknown[] {\n\t\tconst bsonDocuments = EJSON.serialize(documents) as unknown[];\n\t\treturn bsonDocuments;\n\t}\n\n\t/**\n\t * Deserializes documents from Extended JSON JavaScript objects to plain JavaScript objects.\n\t * @param bsonDocuments mongo-bson/ejson objects\n\t * @returns mongo-json documents\n\t */\n\tdeserialize(bsonDocuments: unknown[]): unknown[] {\n\t\tconst jsonDocuments = EJSON.deserialize(bsonDocuments) as unknown[];\n\t\treturn jsonDocuments;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Builder.html":{"url":"classes/Builder.html","title":"class - Builder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Builder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/builder/builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(init: T)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/builder.ts:2\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n init\n \n \n T\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n product\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/builder.ts:2\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild()\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/bbb/builder/builder.ts:8\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n export class Builder {\n\tprotected readonly product: T;\n\n\tconstructor(init: T) {\n\t\tthis.product = init;\n\t}\n\n\tbuild(): T {\n\t\treturn this.product;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/BusinessError.html":{"url":"classes/BusinessError.html","title":"class - BusinessError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n BusinessError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/business.error.ts\n \n\n\n \n Description\n \n \n Abstract base class for business errors, errors that are handled\nwithin a client or inside the application.\n\n \n\n \n Extends\n \n \n HttpException\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Protected\n constructor(undefined: IErrorType, code: HttpStatus, details?: Record, cause?)\n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:25\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n IErrorType\n \n \n \n No\n \n \n \n \n code\n \n \n HttpStatus\n \n \n \n No\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n cause\n \n \n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:15\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/error/business.error.ts:47\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, HttpStatus } from '@nestjs/common';\nimport { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ErrorResponse } from '@src/core/error/dto/error.response';\nimport { IErrorType } from '@src/core/error/interface';\n\n/**\n * Abstract base class for business errors, errors that are handled\n * within a client or inside the application.\n */\nexport abstract class BusinessError extends HttpException {\n\t@ApiProperty({ description: 'The response status code.' })\n\treadonly code: number;\n\n\t@ApiProperty({ description: 'The error type.' })\n\treadonly type: string;\n\n\t@ApiProperty({ description: 'The error title.' })\n\treadonly title: string;\n\n\t@ApiProperty({ description: 'The error message.' })\n\treadonly message: string;\n\n\t@ApiPropertyOptional({ description: 'The error details.' })\n\t// Is not matched by type validation because HttpException is already declared\n\treadonly details?: Record;\n\n\tprotected constructor(\n\t\t{ type, title, defaultMessage }: IErrorType,\n\t\tcode: HttpStatus = HttpStatus.CONFLICT,\n\t\tdetails?: Record,\n\t\tcause?: unknown\n\t) {\n\t\tsuper({ code, type, title, message: defaultMessage }, code);\n\t\tthis.code = code;\n\t\tthis.type = type;\n\t\tthis.title = title;\n\t\tthis.message = defaultMessage;\n\t\tthis.details = details;\n\n\t\tif (cause instanceof Error) {\n\t\t\tthis.cause = cause;\n\t\t} else if (cause !== undefined) {\n\t\t\tthis.cause = typeof cause === 'object' ? new Error(JSON.stringify(cause)) : new Error(String(cause));\n\t\t}\n\t}\n\n\toverride getResponse(): ErrorResponse {\n\t\tconst errorResponse: ErrorResponse = new ErrorResponse(\n\t\t\tthis.type,\n\t\t\tthis.title,\n\t\t\tthis.message,\n\t\t\tthis.code,\n\t\t\tthis.details\n\t\t);\n\n\t\treturn errorResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CacheService.html":{"url":"injectables/CacheService.html","title":"injectable - CacheService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CacheService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/cache/service/cache.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getStoreType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getStoreType\n \n \n \n \n \n \ngetStoreType()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/cache/service/cache.service.ts:7\n \n \n\n\n \n \n\n \n Returns : CacheStoreType\n\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport { CacheStoreType } from '../interface/cache-store-type.enum';\n\n@Injectable()\nexport class CacheService {\n\tgetStoreType(): CacheStoreType {\n\t\treturn Configuration.has('REDIS_URI') ? CacheStoreType.REDIS : CacheStoreType.MEMORY;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CacheWrapperModule.html":{"url":"modules/CacheWrapperModule.html","title":"module - CacheWrapperModule","body":"\n \n\n\n\n\n Modules\n CacheWrapperModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CacheWrapperModule\n\n\n\ncluster_CacheWrapperModule_exports\n\n\n\ncluster_CacheWrapperModule_providers\n\n\n\n\nCacheService \n\nCacheService \n\n\n\nCacheWrapperModule\n\nCacheWrapperModule\n\nCacheService -->\n\nCacheWrapperModule->CacheService \n\n\n\n\n\nCacheService\n\nCacheService\n\nCacheWrapperModule -->\n\nCacheService->CacheWrapperModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/cache/cache.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CacheService\n \n \n \n \n Exports\n \n \n CacheService\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { CacheModule, CacheModuleOptions } from '@nestjs/cache-manager';\nimport { Module } from '@nestjs/common';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { create } from 'cache-manager-redis-store';\nimport { RedisClient } from 'redis';\nimport { CacheStoreType } from './interface';\nimport { CacheService } from './service/cache.service';\n\n@Module({\n\timports: [\n\t\tCacheModule.registerAsync({\n\t\t\tuseFactory: (cacheService: CacheService, logger: LegacyLogger): CacheModuleOptions => {\n\t\t\t\tif (cacheService.getStoreType() === CacheStoreType.REDIS) {\n\t\t\t\t\tconst redisUrl: string = Configuration.get('REDIS_URI') as string;\n\t\t\t\t\tconst store = create({ url: redisUrl });\n\t\t\t\t\tconst client: RedisClient = store.getClient();\n\n\t\t\t\t\tclient.on('error', (error) => logger.error(error));\n\t\t\t\t\tclient.on('connect', (msg) => logger.log(msg));\n\n\t\t\t\t\treturn { store };\n\t\t\t\t}\n\t\t\t\treturn {};\n\t\t\t},\n\t\t\tinject: [CacheService, LegacyLogger],\n\t\t\timports: [LoggerModule, CacheWrapperModule],\n\t\t}),\n\t],\n\tproviders: [CacheService],\n\texports: [CacheModule, CacheService],\n})\nexport class CacheWrapperModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CalendarEventDto.html":{"url":"classes/CalendarEventDto.html","title":"class - CalendarEventDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CalendarEventDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/dto/calendar-event.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n teamId\n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dto: CalendarEventDto)\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/dto/calendar-event.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n \n CalendarEventDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n teamId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/dto/calendar-event.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/dto/calendar-event.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class CalendarEventDto {\n\ttitle: string;\n\n\tteamId: string;\n\n\tconstructor(dto: CalendarEventDto) {\n\t\tthis.title = dto.title;\n\t\tthis.teamId = dto.teamId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CalendarMapper.html":{"url":"injectables/CalendarMapper.html","title":"injectable - CalendarMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CalendarMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapToDto\n \n \n \n \n \n \nmapToDto(event: ICalendarEvent)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/calendar/mapper/calendar.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n event\n \n ICalendarEvent\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CalendarEventDto\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ICalendarEvent } from '@shared/infra/calendar/interface/calendar-event.interface';\nimport { Injectable } from '@nestjs/common';\nimport { CalendarEventDto } from '@shared/infra/calendar/dto/calendar-event.dto';\n\n@Injectable()\nexport class CalendarMapper {\n\tmapToDto(event: ICalendarEvent): CalendarEventDto {\n\t\tconst { attributes } = event.data[0];\n\t\treturn new CalendarEventDto({\n\t\t\tteamId: attributes['x-sc-teamid'],\n\t\t\ttitle: attributes.summary,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CalendarModule.html":{"url":"modules/CalendarModule.html","title":"module - CalendarModule","body":"\n \n\n\n\n\n Modules\n CalendarModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CalendarModule\n\n\n\ncluster_CalendarModule_providers\n\n\n\ncluster_CalendarModule_exports\n\n\n\n\nCalendarService \n\nCalendarService \n\n\n\nCalendarModule\n\nCalendarModule\n\nCalendarService -->\n\nCalendarModule->CalendarService \n\n\n\n\n\nCalendarMapper\n\nCalendarMapper\n\nCalendarModule -->\n\nCalendarMapper->CalendarModule\n\n\n\n\n\nCalendarService\n\nCalendarService\n\nCalendarModule -->\n\nCalendarService->CalendarModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/calendar/calendar.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CalendarMapper\n \n \n CalendarService\n \n \n \n \n Exports\n \n \n CalendarService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { HttpModule } from '@nestjs/axios';\nimport { CalendarService } from '@shared/infra/calendar/service/calendar.service';\nimport { CalendarMapper } from '@shared/infra/calendar/mapper/calendar.mapper';\n\n@Module({\n\timports: [HttpModule],\n\tproviders: [CalendarMapper, CalendarService],\n\texports: [CalendarService],\n})\nexport class CalendarModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CalendarService.html":{"url":"injectables/CalendarService.html","title":"injectable - CalendarService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CalendarService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/service/calendar.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n baseURL\n \n \n Private\n Readonly\n timeoutMs\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findEvent\n \n \n Private\n get\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(httpService: HttpService, calendarMapper: CalendarMapper)\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n calendarMapper\n \n \n CalendarMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findEvent\n \n \n \n \n \n \n \n findEvent(userId: EntityId, eventId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n eventId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n get\n \n \n \n \n \n \n \n get(path: string, queryParams: URLSearchParams, config: AxiosRequestConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n queryParams\n \n URLSearchParams\n \n\n \n No\n \n\n\n \n \n config\n \n AxiosRequestConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Observable>\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n baseURL\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n timeoutMs\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/infra/calendar/service/calendar.service.ts:17\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpService } from '@nestjs/axios';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { CalendarEventDto } from '@shared/infra/calendar/dto/calendar-event.dto';\nimport { CalendarMapper } from '@shared/infra/calendar/mapper/calendar.mapper';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { URL, URLSearchParams } from 'url';\nimport { ICalendarEvent } from '../interface/calendar-event.interface';\n\n@Injectable()\nexport class CalendarService {\n\tprivate readonly baseURL: string;\n\n\tprivate readonly timeoutMs: number;\n\n\tconstructor(private readonly httpService: HttpService, private readonly calendarMapper: CalendarMapper) {\n\t\tthis.baseURL = Configuration.get('CALENDAR_URI') as string;\n\t\tthis.timeoutMs = Configuration.get('REQUEST_OPTION__TIMEOUT_MS') as number;\n\t}\n\n\tasync findEvent(userId: EntityId, eventId: EntityId): Promise {\n\t\tconst params = new URLSearchParams();\n\t\tparams.append('event-id', eventId);\n\n\t\treturn firstValueFrom(\n\t\t\tthis.get('/events', params, {\n\t\t\t\theaders: {\n\t\t\t\t\tAuthorization: userId,\n\t\t\t\t\tAccept: 'Application/json',\n\t\t\t\t},\n\t\t\t\ttimeout: this.timeoutMs,\n\t\t\t})\n\t\t)\n\t\t\t.then((resp: AxiosResponse) => this.calendarMapper.mapToDto(resp.data))\n\t\t\t.catch((error) => {\n\t\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t\tnull,\n\t\t\t\t\tErrorUtils.createHttpExceptionOptions(error, 'CalendarService:findEvent')\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tprivate get(\n\t\tpath: string,\n\t\tqueryParams: URLSearchParams,\n\t\tconfig: AxiosRequestConfig\n\t): Observable> {\n\t\tconst url: URL = new URL(this.baseURL);\n\t\turl.pathname = path;\n\t\turl.search = queryParams.toString();\n\t\treturn this.httpService.get(url.toString(), config);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Card.html":{"url":"classes/Card.html","title":"class - Card","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Card\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/card.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n height\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:32\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:36\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n\n \n \n gettitle()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/card.do.ts:8\n \n \n\n \n \n settitle(title: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/card.do.ts:12\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n height\n \n \n\n \n \n getheight()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/card.do.ts:16\n \n \n\n \n \n setheight(height: number)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/card.do.ts:20\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n height\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { FileElement } from './file-element.do';\nimport { RichTextElement } from './rich-text-element.do';\nimport { SubmissionContainerElement } from './submission-container-element.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class Card extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tget height(): number {\n\t\treturn this.props.height;\n\t}\n\n\tset height(height: number) {\n\t\tthis.props.height = height;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed =\n\t\t\tdomainObject instanceof FileElement ||\n\t\t\tdomainObject instanceof RichTextElement ||\n\t\t\tdomainObject instanceof SubmissionContainerElement;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitCard(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitCardAsync(this);\n\t}\n}\n\nexport interface CardProps extends BoardCompositeProps {\n\ttitle: string;\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/CardController.html":{"url":"controllers/CardController.html","title":"controller - CardController","body":"\n \n\n\n\n\n\n\n Controllers\n CardController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/card.controller.ts\n \n\n \n Prefix\n \n \n cards\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createElement\n \n \n \n \n \n \n \n \n \n Async\n deleteCard\n \n \n \n \n \n \n \n Async\n getCards\n \n \n \n \n \n \n \n \n \n Async\n moveCard\n \n \n \n \n \n \n \n \n \n Async\n updateCardHeight\n \n \n \n \n \n \n \n \n \n Async\n updateCardTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createElement\n \n \n \n \n \n \n \n createElement(urlParams: CardUrlParams, bodyParams: CreateContentElementBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new element on a card.'})@ApiExtraModels(RichTextElementResponse, FileElementResponse, SubmissionContainerElementResponse)@ApiResponse({status: 201, schema: undefined})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@Post(':cardId/elements')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:132\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n CreateContentElementBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteCard\n \n \n \n \n \n \n \n deleteCard(urlParams: CardUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Delete a single card.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Delete(':cardId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:112\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getCards\n \n \n \n \n \n \n \n getCards(currentUser: ICurrentUser, cardIdParams: CardIdsParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Get a list of cards by their ids.'})@ApiResponse({status: 200, type: CardListResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@Get()\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n cardIdParams\n \n CardIdsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveCard\n \n \n \n \n \n \n \n moveCard(urlParams: CardUrlParams, bodyParams: MoveCardBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Move a single card.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Put(':cardId/position')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:67\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n MoveCardBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardHeight\n \n \n \n \n \n \n \n updateCardHeight(urlParams: CardUrlParams, bodyParams: SetHeightBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update the height of a single card.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':cardId/height')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n SetHeightBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateCardTitle\n \n \n \n \n \n \n \n updateCardTitle(urlParams: CardUrlParams, bodyParams: RenameBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update the title of a single card.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':cardId/title')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/card.controller.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n CardUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n RenameBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tGet,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\n\tPut,\n\tQuery,\n} from '@nestjs/common';\nimport { ApiExtraModels, ApiOperation, ApiResponse, ApiTags, getSchemaPath } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { BoardUc, CardUc } from '../uc';\nimport {\n\tAnyContentElementResponse,\n\tCardIdsParams,\n\tCardListResponse,\n\tCardUrlParams,\n\tCreateContentElementBodyParams,\n\tFileElementResponse,\n\tMoveCardBodyParams,\n\tRenameBodyParams,\n\tSubmissionContainerElementResponse,\n} from './dto';\nimport { SetHeightBodyParams } from './dto/board/set-height.body.params';\nimport { RichTextElementResponse } from './dto/element/rich-text-element.response';\nimport { CardResponseMapper, ContentElementResponseFactory } from './mapper';\n\n@ApiTags('Board Card')\n@Authenticate('jwt')\n@Controller('cards')\nexport class CardController {\n\tconstructor(private readonly boardUc: BoardUc, private readonly cardUc: CardUc) {}\n\n\t@ApiOperation({ summary: 'Get a list of cards by their ids.' })\n\t@ApiResponse({ status: 200, type: CardListResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@Get()\n\tasync getCards(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() cardIdParams: CardIdsParams\n\t): Promise {\n\t\tconst cardIds = Array.isArray(cardIdParams.ids) ? cardIdParams.ids : [cardIdParams.ids];\n\t\tconst cards = await this.cardUc.findCards(currentUser.userId, cardIds);\n\t\tconst cardResponses = cards.map((card) => CardResponseMapper.mapToResponse(card));\n\n\t\tconst result = new CardListResponse({\n\t\t\tdata: cardResponses,\n\t\t});\n\t\treturn result;\n\t}\n\n\t@ApiOperation({ summary: 'Move a single card.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Put(':cardId/position')\n\tasync moveCard(\n\t\t@Param() urlParams: CardUrlParams,\n\t\t@Body() bodyParams: MoveCardBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.moveCard(currentUser.userId, urlParams.cardId, bodyParams.toColumnId, bodyParams.toPosition);\n\t}\n\n\t@ApiOperation({ summary: 'Update the height of a single card.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':cardId/height')\n\tasync updateCardHeight(\n\t\t@Param() urlParams: CardUrlParams,\n\t\t@Body() bodyParams: SetHeightBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.updateCardHeight(currentUser.userId, urlParams.cardId, bodyParams.height);\n\t}\n\n\t@ApiOperation({ summary: 'Update the title of a single card.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':cardId/title')\n\tasync updateCardTitle(\n\t\t@Param() urlParams: CardUrlParams,\n\t\t@Body() bodyParams: RenameBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.updateCardTitle(currentUser.userId, urlParams.cardId, bodyParams.title);\n\t}\n\n\t@ApiOperation({ summary: 'Delete a single card.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Delete(':cardId')\n\tasync deleteCard(@Param() urlParams: CardUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.boardUc.deleteCard(currentUser.userId, urlParams.cardId);\n\t}\n\n\t@ApiOperation({ summary: 'Create a new element on a card.' })\n\t@ApiExtraModels(RichTextElementResponse, FileElementResponse, SubmissionContainerElementResponse)\n\t@ApiResponse({\n\t\tstatus: 201,\n\t\tschema: {\n\t\t\toneOf: [\n\t\t\t\t{ $ref: getSchemaPath(RichTextElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(FileElementResponse) },\n\t\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementResponse) },\n\t\t\t],\n\t\t},\n\t})\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@Post(':cardId/elements')\n\tasync createElement(\n\t\t@Param() urlParams: CardUrlParams, // TODO add type-property ?\n\t\t@Body() bodyParams: CreateContentElementBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst { type, toPosition } = bodyParams;\n\t\tconst element = await this.cardUc.createElement(currentUser.userId, urlParams.cardId, type, toPosition);\n\t\tconst response = ContentElementResponseFactory.mapToResponse(element);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardIdsParams.html":{"url":"classes/CardIdsParams.html","title":"class - CardIdsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardIdsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/card-ids.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n ids\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n ids\n \n \n \n \n \n \n Type : string[] | string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId({each: true})@ApiProperty({description: 'Array of Ids to be loaded', type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card-ids.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class CardIdsParams {\n\t@IsMongoId({ each: true })\n\t@ApiProperty({\n\t\tdescription: 'Array of Ids to be loaded',\n\t\ttype: [String],\n\t})\n\tids!: string[] | string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardListResponse.html":{"url":"classes/CardListResponse.html","title":"class - CardListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/card-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: CardListResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card-list.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n CardListResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : CardResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card-list.response.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { CardResponse } from './card.response';\n\nexport class CardListResponse {\n\tconstructor({ data }: CardListResponse) {\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CardResponse] })\n\tdata: CardResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/CardNode.html":{"url":"entities/CardNode.html","title":"entity - CardNode","body":"\n \n\n\n\n\n\n\n\n Entities\n CardNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/card-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n height\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/card-node.entity.ts:16\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { Card } from '@shared/domain/domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.CARD })\nexport class CardNode extends BoardNode {\n\tconstructor(props: CardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.CARD;\n\t\tthis.height = props.height;\n\t}\n\n\t@Property()\n\theight: number;\n\n\tuseDoBuilder(builder: BoardDoBuilder): Card {\n\t\tconst domainObject = builder.buildCard(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface CardNodeProps extends BoardNodeProps {\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CardNodeProps.html":{"url":"interfaces/CardNodeProps.html","title":"interface - CardNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CardNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/card-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n height\n \n \n \n \n \n \n \n \n height: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { Card } from '@shared/domain/domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.CARD })\nexport class CardNode extends BoardNode {\n\tconstructor(props: CardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.CARD;\n\t\tthis.height = props.height;\n\t}\n\n\t@Property()\n\theight: number;\n\n\tuseDoBuilder(builder: BoardDoBuilder): Card {\n\t\tconst domainObject = builder.buildCard(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface CardNodeProps extends BoardNodeProps {\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CardProps.html":{"url":"interfaces/CardProps.html","title":"interface - CardProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CardProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/card.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n height\n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n height\n \n \n \n \n \n \n \n \n height: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { FileElement } from './file-element.do';\nimport { RichTextElement } from './rich-text-element.do';\nimport { SubmissionContainerElement } from './submission-container-element.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class Card extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tget height(): number {\n\t\treturn this.props.height;\n\t}\n\n\tset height(height: number) {\n\t\tthis.props.height = height;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed =\n\t\t\tdomainObject instanceof FileElement ||\n\t\t\tdomainObject instanceof RichTextElement ||\n\t\t\tdomainObject instanceof SubmissionContainerElement;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitCard(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitCardAsync(this);\n\t}\n}\n\nexport interface CardProps extends BoardCompositeProps {\n\ttitle: string;\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardResponse.html":{"url":"classes/CardResponse.html","title":"class - CardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/card.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n elements\n \n \n \n height\n \n \n \n id\n \n \n \n timestamps\n \n \n \n \n Optional\n title\n \n \n \n visibilitySettings\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: CardResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n CardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n elements\n \n \n \n \n \n \n Type : AnyContentElementResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'array', items: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n visibilitySettings\n \n \n \n \n \n \n Type : VisibilitySettingsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/card.response.ts:40\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { AnyContentElementResponse } from '../element';\nimport { RichTextElementResponse } from '../element/rich-text-element.response';\nimport { TimestampsResponse } from '../timestamps.response';\nimport { VisibilitySettingsResponse } from './visibility-settings.response';\n\n@ApiExtraModels(RichTextElementResponse)\nexport class CardResponse {\n\tconstructor({ id, title, height, elements, visibilitySettings, timestamps }: CardResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.height = height;\n\t\tthis.elements = elements;\n\t\tthis.visibilitySettings = visibilitySettings;\n\t\tthis.timestamps = timestamps;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiPropertyOptional()\n\t@DecodeHtmlEntities()\n\ttitle?: string;\n\n\t@ApiProperty()\n\theight: number;\n\n\t@ApiProperty({\n\t\ttype: 'array',\n\t\titems: {\n\t\t\toneOf: [{ $ref: getSchemaPath(RichTextElementResponse) }],\n\t\t},\n\t})\n\telements: AnyContentElementResponse[];\n\n\t@ApiProperty()\n\tvisibilitySettings: VisibilitySettingsResponse;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardResponseMapper.html":{"url":"classes/CardResponseMapper.html","title":"class - CardResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/card-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/card-response.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CardResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Card } from '@shared/domain';\nimport { CardResponse, TimestampsResponse, VisibilitySettingsResponse } from '../dto';\nimport { ContentElementResponseFactory } from './content-element-response.factory';\n\nexport class CardResponseMapper {\n\tstatic mapToResponse(card: Card): CardResponse {\n\t\tconst result = new CardResponse({\n\t\t\tid: card.id,\n\t\t\ttitle: card.title,\n\t\t\theight: card.height,\n\t\t\telements: card.children.map((element) => ContentElementResponseFactory.mapToResponse(element)),\n\t\t\tvisibilitySettings: new VisibilitySettingsResponse({}),\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: card.updatedAt, createdAt: card.createdAt }),\n\t\t});\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CardService.html":{"url":"injectables/CardService.html","title":"injectable - CardService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CardService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/card.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Private\n Async\n createEmptyElements\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n findByIds\n \n \n Async\n move\n \n \n Async\n updateHeight\n \n \n Async\n updateTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService, contentElementService: ContentElementService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n contentElementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(parent: Column, requiredEmptyElements?: ContentElementType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n Column\n \n\n \n No\n \n\n\n \n \n requiredEmptyElements\n \n ContentElementType[]\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createEmptyElements\n \n \n \n \n \n \n \n createEmptyElements(card: Card, requiredEmptyElements: ContentElementType[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n requiredEmptyElements\n \n ContentElementType[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(cardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByIds\n \n \n \n \n \n \n \n findByIds(cardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n cardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n move\n \n \n \n \n \n \n \n move(card: Card, targetColumn: Column, targetPosition?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n targetColumn\n \n Column\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateHeight\n \n \n \n \n \n \n \n updateHeight(card: Card, height: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n height\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTitle\n \n \n \n \n \n \n \n updateTitle(card: Card, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/card.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotFoundException } from '@nestjs/common';\nimport { Card, Column, ContentElementType, EntityId } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\nimport { ContentElementService } from './content-element.service';\n\n@Injectable()\nexport class CardService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly boardDoService: BoardDoService,\n\t\tprivate readonly contentElementService: ContentElementService\n\t) {}\n\n\tasync findById(cardId: EntityId): Promise {\n\t\tconst card = await this.boardDoRepo.findByClassAndId(Card, cardId);\n\t\treturn card;\n\t}\n\n\tasync findByIds(cardIds: EntityId[]): Promise {\n\t\tconst cards = await this.boardDoRepo.findByIds(cardIds);\n\t\tif (cards.every((card) => card instanceof Card)) {\n\t\t\treturn cards as Card[];\n\t\t}\n\t\tthrow new NotFoundException('some ids do not belong to a card');\n\t}\n\n\tasync create(parent: Column, requiredEmptyElements?: ContentElementType[]): Promise {\n\t\tconst card = new Card({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: '',\n\t\t\theight: 150,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\tparent.addChild(card);\n\n\t\tawait this.boardDoRepo.save(parent.children, parent);\n\n\t\tif (requiredEmptyElements) {\n\t\t\tawait this.createEmptyElements(card, requiredEmptyElements);\n\t\t}\n\n\t\treturn card;\n\t}\n\n\tasync delete(card: Card): Promise {\n\t\tawait this.boardDoService.deleteWithDescendants(card);\n\t}\n\n\tasync move(card: Card, targetColumn: Column, targetPosition?: number): Promise {\n\t\tawait this.boardDoService.move(card, targetColumn, targetPosition);\n\t}\n\n\tasync updateHeight(card: Card, height: number): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(card.id);\n\t\tcard.height = height;\n\t\tawait this.boardDoRepo.save(card, parent);\n\t}\n\n\tasync updateTitle(card: Card, title: string): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(card.id);\n\t\tcard.title = title;\n\t\tawait this.boardDoRepo.save(card, parent);\n\t}\n\n\tprivate async createEmptyElements(card: Card, requiredEmptyElements: ContentElementType[]): Promise {\n\t\tfor await (const requiredEmptyElement of requiredEmptyElements) {\n\t\t\tawait this.contentElementService.create(card, requiredEmptyElement);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardSkeletonResponse.html":{"url":"classes/CardSkeletonResponse.html","title":"class - CardSkeletonResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardSkeletonResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/card-skeleton.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n cardId\n \n \n \n height\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: CardSkeletonResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/card-skeleton.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n CardSkeletonResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n cardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/card-skeleton.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The approximate height of the referenced card. Intended to be used for prerendering purposes. Note, that different devices can lead to this value not being precise'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/card-skeleton.response.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class CardSkeletonResponse {\n\tconstructor({ cardId, height }: CardSkeletonResponse) {\n\t\tthis.cardId = cardId;\n\t\tthis.height = height;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tcardId: string;\n\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'The approximate height of the referenced card. Intended to be used for prerendering purposes. Note, that different devices can lead to this value not being precise',\n\t})\n\theight: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CardUc.html":{"url":"injectables/CardUc.html","title":"injectable - CardUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CardUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/card.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n Async\n createElement\n \n \n Async\n deleteElement\n \n \n Private\n Async\n filterAllowed\n \n \n Async\n findCards\n \n \n Async\n moveElement\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, cardService: CardService, elementService: ContentElementService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n cardService\n \n \n CardService\n \n \n \n No\n \n \n \n \n elementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createElement\n \n \n \n \n \n \n \n createElement(userId: EntityId, cardId: EntityId, type: ContentElementType, toPosition?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n type\n \n ContentElementType\n \n\n \n No\n \n\n\n \n \n toPosition\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteElement\n \n \n \n \n \n \n \n deleteElement(userId: EntityId, elementId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n filterAllowed\n \n \n \n \n \n \n \n filterAllowed(userId: EntityId, boardDos: T[], action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:92\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDos\n \n T[]\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findCards\n \n \n \n \n \n \n \n findCards(userId: EntityId, cardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n cardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveElement\n \n \n \n \n \n \n \n moveElement(userId: EntityId, elementId: EntityId, targetCardId: EntityId, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/card.uc.ts:67\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetCardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tCard,\n\tContentElementType,\n\tEntityId,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n} from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport { BoardDoAuthorizableService, CardService, ContentElementService } from '../service';\n\n@Injectable()\nexport class CardUc {\n\tconstructor(\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly cardService: CardService,\n\t\tprivate readonly elementService: ContentElementService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(CardUc.name);\n\t}\n\n\tasync findCards(userId: EntityId, cardIds: EntityId[]): Promise {\n\t\tthis.logger.debug({ action: 'findCards', userId, cardIds });\n\n\t\tconst cards = await this.cardService.findByIds(cardIds);\n\t\tconst allowedCards = await this.filterAllowed(userId, cards, Action.read);\n\n\t\treturn allowedCards;\n\t}\n\n\t// --- elements ---\n\n\tasync createElement(\n\t\tuserId: EntityId,\n\t\tcardId: EntityId,\n\t\ttype: ContentElementType,\n\t\ttoPosition?: number\n\t): Promise {\n\t\tthis.logger.debug({ action: 'createElement', userId, cardId, type });\n\n\t\tconst card = await this.cardService.findById(cardId);\n\t\tawait this.checkPermission(userId, card, Action.write);\n\n\t\tconst element = await this.elementService.create(card, type);\n\t\tif (toPosition !== undefined && typeof toPosition === 'number') {\n\t\t\tawait this.elementService.move(element, card, toPosition);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tasync deleteElement(userId: EntityId, elementId: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteElement', userId, elementId });\n\n\t\tconst element = await this.elementService.findById(elementId);\n\t\tawait this.checkPermission(userId, element, Action.write);\n\n\t\tawait this.elementService.delete(element);\n\t}\n\n\tasync moveElement(\n\t\tuserId: EntityId,\n\t\telementId: EntityId,\n\t\ttargetCardId: EntityId,\n\t\ttargetPosition: number\n\t): Promise {\n\t\tthis.logger.debug({ action: 'moveCard', userId, elementId, targetCardId, targetPosition });\n\n\t\tconst element = await this.elementService.findById(elementId);\n\t\tconst targetCard = await this.cardService.findById(targetCardId);\n\n\t\tawait this.checkPermission(userId, element, Action.write);\n\t\tawait this.checkPermission(userId, targetCard, Action.write);\n\n\t\tawait this.elementService.move(element, targetCard, targetPosition);\n\t}\n\n\tprivate async checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tconst context = { action, requiredPermissions: [] };\n\n\t\treturn this.authorizationService.checkPermission(user, boardDoAuthorizable, context);\n\t}\n\n\tprivate async filterAllowed(userId: EntityId, boardDos: T[], action: Action): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tconst context = { action, requiredPermissions: [] };\n\t\tconst promises = boardDos.map((boardDo) =>\n\t\t\tthis.boardDoAuthorizableService.getBoardAuthorizable(boardDo).then((boardDoAuthorizable) => {\n\t\t\t\treturn { boardDoAuthorizable, boardDo };\n\t\t\t})\n\t\t);\n\t\tconst result = await Promise.all(promises);\n\n\t\tconst allowed = result.reduce((allowedDos: T[], { boardDoAuthorizable, boardDo }) => {\n\t\t\tif (this.authorizationService.hasPermission(user, boardDoAuthorizable, context)) {\n\t\t\t\tallowedDos.push(boardDo);\n\t\t\t}\n\t\t\treturn allowedDos;\n\t\t}, []);\n\n\t\treturn allowed;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CardUrlParams.html":{"url":"classes/CardUrlParams.html","title":"class - CardUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CardUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n cardId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n cardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the card.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class CardUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the card.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcardId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ChallengeParams.html":{"url":"classes/ChallengeParams.html","title":"class - ChallengeParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ChallengeParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/challenge.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n challenge\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n challenge\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The login challenge.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/challenge.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ChallengeParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The login challenge.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tchallenge!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ChangeLanguageParams.html":{"url":"classes/ChangeLanguageParams.html","title":"class - ChangeLanguageParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ChangeLanguageParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/controller/dto/user.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n language\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n language\n \n \n \n \n \n \n Type : LanguageType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: LanguageType})@IsEnum(LanguageType)\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/user.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { LanguageType } from '@shared/domain';\nimport { IsEnum } from 'class-validator';\n\nexport class ChangeLanguageParams {\n\t@ApiProperty({ enum: LanguageType })\n\t@IsEnum(LanguageType)\n\tlanguage!: LanguageType;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Class.html":{"url":"classes/Class.html","title":"class - Class","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Class\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/class.do.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n removeUser\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n name\n \n \n schoolId\n \n \n userIds\n \n \n teacherIds\n \n \n invitationLink\n \n \n year\n \n \n gradeLevel\n \n \n ldapDN\n \n \n successor\n \n \n source\n \n \n sourceOptions\n \n \n createdAt\n \n \n updatedAt\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n removeUser\n \n \n \n \n \n \n \n removeUser(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n name\n \n \n\n \n \n getname()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:22\n \n \n\n \n \n \n \n \n \n \n schoolId\n \n \n\n \n \n getschoolId()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:26\n \n \n\n \n \n \n \n \n \n \n userIds\n \n \n\n \n \n getuserIds()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:30\n \n \n\n \n \n \n \n \n \n \n teacherIds\n \n \n\n \n \n getteacherIds()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:34\n \n \n\n \n \n \n \n \n \n \n invitationLink\n \n \n\n \n \n getinvitationLink()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:38\n \n \n\n \n \n \n \n \n \n \n year\n \n \n\n \n \n getyear()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:42\n \n \n\n \n \n \n \n \n \n \n gradeLevel\n \n \n\n \n \n getgradeLevel()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:46\n \n \n\n \n \n \n \n \n \n \n ldapDN\n \n \n\n \n \n getldapDN()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:50\n \n \n\n \n \n \n \n \n \n \n successor\n \n \n\n \n \n getsuccessor()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:54\n \n \n\n \n \n \n \n \n \n \n source\n \n \n\n \n \n getsource()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:58\n \n \n\n \n \n \n \n \n \n \n sourceOptions\n \n \n\n \n \n getsourceOptions()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:62\n \n \n\n \n \n \n \n \n \n \n createdAt\n \n \n\n \n \n getcreatedAt()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:66\n \n \n\n \n \n \n \n \n \n \n updatedAt\n \n \n\n \n \n getupdatedAt()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class.do.ts:70\n \n \n\n \n \n\n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { AuthorizableObject, DomainObject } from '../../../shared/domain/domain-object';\nimport { ClassSourceOptions } from './class-source-options.do';\n\nexport interface ClassProps extends AuthorizableObject {\n\tname: string;\n\tschoolId: EntityId;\n\tuserIds?: EntityId[];\n\tteacherIds: EntityId[];\n\tinvitationLink?: string;\n\tyear?: EntityId;\n\tgradeLevel?: number;\n\tldapDN?: string;\n\tsuccessor?: EntityId;\n\tsource?: string;\n\tsourceOptions?: ClassSourceOptions;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport class Class extends DomainObject {\n\tget name(): string {\n\t\treturn this.props.name;\n\t}\n\n\tget schoolId(): EntityId {\n\t\treturn this.props.schoolId;\n\t}\n\n\tget userIds(): EntityId[] | undefined {\n\t\treturn this.props.userIds;\n\t}\n\n\tget teacherIds(): EntityId[] {\n\t\treturn this.props.teacherIds;\n\t}\n\n\tget invitationLink(): string | undefined {\n\t\treturn this.props.invitationLink;\n\t}\n\n\tget year(): EntityId | undefined {\n\t\treturn this.props.year;\n\t}\n\n\tget gradeLevel(): number | undefined {\n\t\treturn this.props.gradeLevel;\n\t}\n\n\tget ldapDN(): string | undefined {\n\t\treturn this.props.ldapDN;\n\t}\n\n\tget successor(): EntityId | undefined {\n\t\treturn this.props.successor;\n\t}\n\n\tget source(): string | undefined {\n\t\treturn this.props.source;\n\t}\n\n\tget sourceOptions(): ClassSourceOptions | undefined {\n\t\treturn this.props.sourceOptions;\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n\n\tpublic removeUser(userId: string) {\n\t\tthis.props.userIds = this.props.userIds?.filter((userId1) => userId1 !== userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ClassEntity.html":{"url":"entities/ClassEntity.html","title":"entity - ClassEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ClassEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/class.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n gradeLevel\n \n \n \n Optional\n invitationLink\n \n \n \n Optional\n ldapDN\n \n \n \n name\n \n \n \n \n schoolId\n \n \n \n \n Optional\n source\n \n \n \n Optional\n sourceOptions\n \n \n \n Optional\n successor\n \n \n \n \n teacherIds\n \n \n \n \n Optional\n userIds\n \n \n \n Optional\n year\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n gradeLevel\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n invitationLink\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n ldapDN\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n source\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceOptions\n \n \n \n \n \n \n Type : ClassSourceOptionsEntity\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {object: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n successor\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n teacherIds\n \n \n \n \n \n \n Type : ObjectId[]\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n userIds\n \n \n \n \n \n \n Type : ObjectId[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n year\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class.entity.ts:44\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain';\nimport { ClassSourceOptionsEntity } from './class-source-options.entity';\n\nexport interface IClassEntityProps {\n\tid?: EntityId;\n\tname: string;\n\tschoolId: ObjectId;\n\tuserIds?: ObjectId[];\n\tteacherIds: ObjectId[];\n\tinvitationLink?: string;\n\tyear?: ObjectId;\n\tgradeLevel?: number;\n\tldapDN?: string;\n\tsuccessor?: ObjectId;\n\tsource?: string;\n\tsourceOptions?: ClassSourceOptionsEntity;\n}\n\n@Entity({ tableName: 'classes' })\n@Index({ properties: ['year', 'ldapDN'] })\nexport class ClassEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\t@Index()\n\tschoolId: ObjectId;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tuserIds?: ObjectId[];\n\n\t@Property()\n\t@Index()\n\tteacherIds: ObjectId[];\n\n\t@Property({ nullable: true })\n\tinvitationLink?: string;\n\n\t@Property({ nullable: true })\n\tyear?: ObjectId;\n\n\t@Property({ nullable: true })\n\tgradeLevel?: number;\n\n\t@Property({ nullable: true })\n\tldapDN?: string;\n\n\t@Property({ nullable: true })\n\tsuccessor?: ObjectId;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tsource?: string;\n\n\t@Embedded(() => ClassSourceOptionsEntity, { object: true, nullable: true })\n\tsourceOptions?: ClassSourceOptionsEntity;\n\n\tprivate validate(props: IClassEntityProps) {\n\t\tif (props.gradeLevel !== undefined && (props.gradeLevel 13)) {\n\t\t\tthrow new Error('gradeLevel must be value beetween 1 and 13');\n\t\t}\n\t}\n\n\tconstructor(props: IClassEntityProps) {\n\t\tsuper();\n\t\tthis.validate(props);\n\n\t\tif (props.id !== undefined) {\n\t\t\tthis.id = props.id;\n\t\t}\n\n\t\tthis.name = props.name;\n\t\tthis.schoolId = props.schoolId;\n\n\t\tif (props.userIds !== undefined) {\n\t\t\tthis.userIds = props.userIds;\n\t\t}\n\n\t\tthis.teacherIds = props.teacherIds;\n\n\t\tif (props.invitationLink !== undefined) {\n\t\t\tthis.invitationLink = props.invitationLink;\n\t\t}\n\n\t\tif (props.year !== undefined) {\n\t\t\tthis.year = props.year;\n\t\t}\n\t\tif (props.gradeLevel !== undefined) {\n\t\t\tthis.gradeLevel = props.gradeLevel;\n\t\t}\n\t\tif (props.ldapDN !== undefined) {\n\t\t\tthis.ldapDN = props.ldapDN;\n\t\t}\n\n\t\tif (props.successor !== undefined) {\n\t\t\tthis.successor = props.successor;\n\t\t}\n\n\t\tif (props.source !== undefined) {\n\t\t\tthis.source = props.source;\n\t\t}\n\n\t\tif (props.sourceOptions !== undefined) {\n\t\t\tthis.sourceOptions = props.sourceOptions;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassEntityFactory.html":{"url":"classes/ClassEntityFactory.html","title":"class - ClassEntityFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassEntityFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withUserIds\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withUserIds\n \n \n \n \n \n \nwithUserIds(userIds: ObjectId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/entity/testing/factory/class.entity.factory.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n ObjectId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { DeepPartial } from 'fishery';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\nimport { ClassEntity, ClassSourceOptionsEntity, IClassEntityProps } from '@src/modules/class/entity';\nimport { ObjectId } from 'bson';\n\nclass ClassEntityFactory extends BaseFactory {\n\twithUserIds(userIds: ObjectId[]): this {\n\t\tconst params: DeepPartial = {\n\t\t\tuserIds,\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const classEntityFactory = ClassEntityFactory.define(ClassEntity, ({ sequence }) => {\n\treturn {\n\t\tname: `name-${sequence}`,\n\t\tschoolId: new ObjectId(),\n\t\tuserIds: new Array(),\n\t\tteacherIds: [new ObjectId(), new ObjectId()],\n\t\tinvitationLink: `link-${sequence}`,\n\t\tyear: new ObjectId(),\n\t\tgradeLevel: sequence,\n\t\tldapDN: `dn-${sequence}`,\n\t\tsuccessor: new ObjectId(),\n\t\tsource: `source-${sequence}`,\n\t\tsourceOptions: new ClassSourceOptionsEntity({ tspUid: `id-${sequence}` }),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassFactory.html":{"url":"classes/ClassFactory.html","title":"class - ClassFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/testing/factory/class.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withUserIds\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withUserIds\n \n \n \n \n \n \nwithUserIds(userIds: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/domain/testing/factory/class.factory.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userIds\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { DoBaseFactory } from '@shared/testing';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { DeepPartial } from 'fishery';\nimport { Class, ClassProps } from '../../class.do';\nimport { ClassSourceOptions } from '../../class-source-options.do';\n\nclass ClassFactory extends DoBaseFactory {\n\twithUserIds(userIds: string[]): this {\n\t\tconst params: DeepPartial = {\n\t\t\tuserIds,\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const classFactory = ClassFactory.define(Class, ({ sequence }) => {\n\treturn {\n\t\tid: new ObjectId().toHexString(),\n\t\tname: `name-${sequence}`,\n\t\tschoolId: new ObjectId().toHexString(),\n\t\tuserIds: [new ObjectId().toHexString(), new ObjectId().toHexString()],\n\t\tteacherIds: [new ObjectId().toHexString(), new ObjectId().toHexString()],\n\t\tinvitationLink: `link-${sequence}`,\n\t\tyear: new ObjectId().toHexString(),\n\t\tgradeLevel: sequence,\n\t\tldapDN: `dn-${sequence}`,\n\t\tsuccessor: new ObjectId().toHexString(),\n\t\tsource: `source-${sequence}`,\n\t\tsourceOptions: new ClassSourceOptions({ tspUid: `id-${sequence}` }),\n\t\tcreatedAt: new Date(),\n\t\tupdatedAt: new Date(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassMapper.html":{"url":"classes/ClassMapper.html","title":"class - ClassMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/repo/mapper/class.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n mapToDO\n \n \n Static\n mapToDOs\n \n \n Static\n mapToEntities\n \n \n Private\n Static\n mapToEntity\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n mapToDO\n \n \n \n \n \n \n \n mapToDO(entity: ClassEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/mapper/class.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ClassEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Class\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToDOs\n \n \n \n \n \n \n \n mapToDOs(entities: ClassEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/mapper/class.mapper.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n ClassEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Class[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToEntities\n \n \n \n \n \n \n \n mapToEntities(domainObjects: Class[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/mapper/class.mapper.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n Class[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ClassEntity[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapToEntity\n \n \n \n \n \n \n \n mapToEntity(domainObject: Class)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/mapper/class.mapper.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Class\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ClassEntity\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Class } from '../../domain';\nimport { ClassSourceOptions } from '../../domain/class-source-options.do';\nimport { ClassEntity } from '../../entity';\n\nexport class ClassMapper {\n\tprivate static mapToDO(entity: ClassEntity): Class {\n\t\treturn new Class({\n\t\t\tid: entity.id,\n\t\t\tname: entity.name,\n\t\t\tschoolId: entity.schoolId.toHexString(),\n\t\t\tuserIds: entity.userIds?.map((userId) => userId.toHexString()),\n\t\t\tteacherIds: entity.teacherIds.map((teacherId) => teacherId.toHexString()),\n\t\t\tinvitationLink: entity.invitationLink,\n\t\t\tyear: entity.year?.toHexString(),\n\t\t\tgradeLevel: entity.gradeLevel,\n\t\t\tldapDN: entity.ldapDN,\n\t\t\tsuccessor: entity.successor?.toHexString(),\n\t\t\tsource: entity.source,\n\t\t\tsourceOptions: new ClassSourceOptions({ tspUid: entity.sourceOptions?.tspUid }),\n\t\t\tcreatedAt: entity.createdAt,\n\t\t\tupdatedAt: entity.updatedAt,\n\t\t});\n\t}\n\n\tprivate static mapToEntity(domainObject: Class): ClassEntity {\n\t\treturn new ClassEntity({\n\t\t\tid: domainObject.id,\n\t\t\tname: domainObject.name,\n\t\t\tschoolId: new ObjectId(domainObject.schoolId),\n\t\t\tteacherIds: domainObject.teacherIds.map((teacherId) => new ObjectId(teacherId)),\n\t\t\tuserIds: domainObject.userIds?.map((userId) => new ObjectId(userId)),\n\t\t\tinvitationLink: domainObject.invitationLink,\n\t\t\tyear: domainObject.year !== undefined ? new ObjectId(domainObject.year) : undefined,\n\t\t\tgradeLevel: domainObject.gradeLevel,\n\t\t\tldapDN: domainObject.ldapDN,\n\t\t\tsuccessor: domainObject.successor !== undefined ? new ObjectId(domainObject.successor) : undefined,\n\t\t\tsource: domainObject.source,\n\t\t\tsourceOptions: domainObject.sourceOptions,\n\t\t});\n\t}\n\n\tstatic mapToDOs(entities: ClassEntity[]): Class[] {\n\t\treturn entities.map((entity) => this.mapToDO(entity));\n\t}\n\n\tstatic mapToEntities(domainObjects: Class[]): ClassEntity[] {\n\t\treturn domainObjects.map((domainObject) => this.mapToEntity(domainObject));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ClassModule.html":{"url":"modules/ClassModule.html","title":"module - ClassModule","body":"\n \n\n\n\n\n Modules\n ClassModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ClassModule\n\n\n\ncluster_ClassModule_providers\n\n\n\ncluster_ClassModule_exports\n\n\n\n\nClassService \n\nClassService \n\n\n\nClassModule\n\nClassModule\n\nClassService -->\n\nClassModule->ClassService \n\n\n\n\n\nClassService\n\nClassService\n\nClassModule -->\n\nClassService->ClassModule\n\n\n\n\n\nClassesRepo\n\nClassesRepo\n\nClassModule -->\n\nClassesRepo->ClassModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/class/class.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ClassService\n \n \n ClassesRepo\n \n \n \n \n Exports\n \n \n ClassService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ClassService } from './service';\nimport { ClassesRepo } from './repo';\n\n@Module({\n\tproviders: [ClassService, ClassesRepo],\n\texports: [ClassService],\n})\nexport class ClassModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ClassProps.html":{"url":"interfaces/ClassProps.html","title":"interface - ClassProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ClassProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/class.do.ts\n \n\n\n\n \n Extends\n \n \n AuthorizableObject\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n Optional\n \n gradeLevel\n \n \n \n Optional\n \n invitationLink\n \n \n \n Optional\n \n ldapDN\n \n \n \n \n name\n \n \n \n \n schoolId\n \n \n \n Optional\n \n source\n \n \n \n Optional\n \n sourceOptions\n \n \n \n Optional\n \n successor\n \n \n \n \n teacherIds\n \n \n \n \n updatedAt\n \n \n \n Optional\n \n userIds\n \n \n \n Optional\n \n year\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n gradeLevel\n \n \n \n \n \n \n \n \n gradeLevel: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n invitationLink\n \n \n \n \n \n \n \n \n invitationLink: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ldapDN\n \n \n \n \n \n \n \n \n ldapDN: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sourceOptions\n \n \n \n \n \n \n \n \n sourceOptions: ClassSourceOptions\n\n \n \n\n\n \n \n Type : ClassSourceOptions\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n successor\n \n \n \n \n \n \n \n \n successor: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n teacherIds\n \n \n \n \n \n \n \n \n teacherIds: EntityId[]\n\n \n \n\n\n \n \n Type : EntityId[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userIds\n \n \n \n \n \n \n \n \n userIds: EntityId[]\n\n \n \n\n\n \n \n Type : EntityId[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n year\n \n \n \n \n \n \n \n \n year: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { AuthorizableObject, DomainObject } from '../../../shared/domain/domain-object';\nimport { ClassSourceOptions } from './class-source-options.do';\n\nexport interface ClassProps extends AuthorizableObject {\n\tname: string;\n\tschoolId: EntityId;\n\tuserIds?: EntityId[];\n\tteacherIds: EntityId[];\n\tinvitationLink?: string;\n\tyear?: EntityId;\n\tgradeLevel?: number;\n\tldapDN?: string;\n\tsuccessor?: EntityId;\n\tsource?: string;\n\tsourceOptions?: ClassSourceOptions;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport class Class extends DomainObject {\n\tget name(): string {\n\t\treturn this.props.name;\n\t}\n\n\tget schoolId(): EntityId {\n\t\treturn this.props.schoolId;\n\t}\n\n\tget userIds(): EntityId[] | undefined {\n\t\treturn this.props.userIds;\n\t}\n\n\tget teacherIds(): EntityId[] {\n\t\treturn this.props.teacherIds;\n\t}\n\n\tget invitationLink(): string | undefined {\n\t\treturn this.props.invitationLink;\n\t}\n\n\tget year(): EntityId | undefined {\n\t\treturn this.props.year;\n\t}\n\n\tget gradeLevel(): number | undefined {\n\t\treturn this.props.gradeLevel;\n\t}\n\n\tget ldapDN(): string | undefined {\n\t\treturn this.props.ldapDN;\n\t}\n\n\tget successor(): EntityId | undefined {\n\t\treturn this.props.successor;\n\t}\n\n\tget source(): string | undefined {\n\t\treturn this.props.source;\n\t}\n\n\tget sourceOptions(): ClassSourceOptions | undefined {\n\t\treturn this.props.sourceOptions;\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n\n\tpublic removeUser(userId: string) {\n\t\tthis.props.userIds = this.props.userIds?.filter((userId1) => userId1 !== userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ClassService.html":{"url":"injectables/ClassService.html","title":"injectable - ClassService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ClassService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/service/class.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromClasses\n \n \n Public\n Async\n findUserDataFromClasses\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(classesRepo: ClassesRepo)\n \n \n \n \n Defined in apps/server/src/modules/class/service/class.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n classesRepo\n \n \n ClassesRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromClasses\n \n \n \n \n \n \n \n deleteUserDataFromClasses(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/service/class.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findUserDataFromClasses\n \n \n \n \n \n \n \n findUserDataFromClasses(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/service/class.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ClassesRepo } from '../repo';\nimport { Class } from '../domain';\n\n@Injectable()\nexport class ClassService {\n\tconstructor(private readonly classesRepo: ClassesRepo) {}\n\n\tpublic async findUserDataFromClasses(userId: EntityId): Promise {\n\t\tconst classes = await this.classesRepo.findAllByUserId(userId);\n\n\t\treturn classes;\n\t}\n\n\tpublic async deleteUserDataFromClasses(userId: EntityId): Promise {\n\t\tif (!userId) {\n\t\t\tthrow new InternalServerErrorException('User id is missing');\n\t\t}\n\n\t\tconst domainObjects = await this.classesRepo.findAllByUserId(userId);\n\n\t\tconst updatedClasses: Class[] = domainObjects.map((domainObject) => {\n\t\t\tif (domainObject.userIds !== undefined) {\n\t\t\t\tdomainObject.removeUser(userId);\n\t\t\t}\n\t\t\treturn domainObject;\n\t\t});\n\n\t\tawait this.classesRepo.updateMany(updatedClasses);\n\n\t\treturn updatedClasses.length;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassSourceOptions.html":{"url":"classes/ClassSourceOptions.html","title":"class - ClassSourceOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassSourceOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/class-source-options.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n tspUid\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ClassSourceOptionsProps)\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class-source-options.do.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ClassSourceOptionsProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : ClassSourceOptionsProps\n\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class-source-options.do.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n tspUid\n \n \n\n \n \n gettspUid()\n \n \n \n \n Defined in apps/server/src/modules/class/domain/class-source-options.do.ts:12\n \n \n\n \n \n\n \n\n\n \n export interface ClassSourceOptionsProps {\n\ttspUid?: string;\n}\n\nexport class ClassSourceOptions {\n\tprotected props: ClassSourceOptionsProps;\n\n\tconstructor(props: ClassSourceOptionsProps) {\n\t\tthis.props = props;\n\t}\n\n\tget tspUid(): string | undefined {\n\t\treturn this.props.tspUid;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ClassSourceOptionsEntity.html":{"url":"classes/ClassSourceOptionsEntity.html","title":"class - ClassSourceOptionsEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ClassSourceOptionsEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/class-source-options.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n tspUid\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ClassSourceOptionsEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/class/entity/class-source-options.entity.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ClassSourceOptionsEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n tspUid\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/class/entity/class-source-options.entity.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\nexport interface ClassSourceOptionsEntityProps {\n\ttspUid?: string;\n}\n\n@Embeddable()\nexport class ClassSourceOptionsEntity {\n\t@Property({ nullable: true })\n\ttspUid?: string;\n\n\tconstructor(props: ClassSourceOptionsEntityProps) {\n\t\tif (props.tspUid !== undefined) {\n\t\t\tthis.tspUid = props.tspUid;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ClassSourceOptionsEntityProps.html":{"url":"interfaces/ClassSourceOptionsEntityProps.html","title":"interface - ClassSourceOptionsEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ClassSourceOptionsEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/class-source-options.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n tspUid\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n tspUid\n \n \n \n \n \n \n \n \n tspUid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\nexport interface ClassSourceOptionsEntityProps {\n\ttspUid?: string;\n}\n\n@Embeddable()\nexport class ClassSourceOptionsEntity {\n\t@Property({ nullable: true })\n\ttspUid?: string;\n\n\tconstructor(props: ClassSourceOptionsEntityProps) {\n\t\tif (props.tspUid !== undefined) {\n\t\t\tthis.tspUid = props.tspUid;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ClassSourceOptionsProps.html":{"url":"interfaces/ClassSourceOptionsProps.html","title":"interface - ClassSourceOptionsProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ClassSourceOptionsProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/domain/class-source-options.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n tspUid\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n tspUid\n \n \n \n \n \n \n \n \n tspUid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface ClassSourceOptionsProps {\n\ttspUid?: string;\n}\n\nexport class ClassSourceOptions {\n\tprotected props: ClassSourceOptionsProps;\n\n\tconstructor(props: ClassSourceOptionsProps) {\n\t\tthis.props = props;\n\t}\n\n\tget tspUid(): string | undefined {\n\t\treturn this.props.tspUid;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ClassesRepo.html":{"url":"injectables/ClassesRepo.html","title":"injectable - ClassesRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ClassesRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/repo/classes.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAllByUserId\n \n \n Async\n updateMany\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, mapper: ClassMapper)\n \n \n \n \n Defined in apps/server/src/modules/class/repo/classes.repo.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n mapper\n \n \n ClassMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAllByUserId\n \n \n \n \n \n \n \n findAllByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/classes.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateMany\n \n \n \n \n \n \n \n updateMany(classes: Class[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/class/repo/classes.repo.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n classes\n \n Class[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\n\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { ClassEntity } from '../entity';\nimport { Class } from '../domain';\nimport { ClassMapper } from './mapper';\n\n@Injectable()\nexport class ClassesRepo {\n\tconstructor(private readonly em: EntityManager, private readonly mapper: ClassMapper) {}\n\n\tasync findAllByUserId(userId: EntityId): Promise {\n\t\tconst classes: ClassEntity[] = await this.em.find(ClassEntity, { userIds: new ObjectId(userId) });\n\t\treturn ClassMapper.mapToDOs(classes);\n\t}\n\n\tasync updateMany(classes: Class[]): Promise {\n\t\tconst classesEntities = ClassMapper.mapToEntities(classes);\n\t\tconst referencedEntities = classesEntities.map((classEntity) => this.em.getReference(ClassEntity, classEntity.id));\n\n\t\tawait this.em.persistAndFlush(referencedEntities);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CloseUserLoginMigrationUc.html":{"url":"injectables/CloseUserLoginMigrationUc.html","title":"injectable - CloseUserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CloseUserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/close-user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n closeMigration\n \n \n Private\n isGracePeriodExpired\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, schoolMigrationService: SchoolMigrationService, userLoginMigrationRevertService: UserLoginMigrationRevertService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/close-user-login-migration.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n userLoginMigrationRevertService\n \n \n UserLoginMigrationRevertService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n closeMigration\n \n \n \n \n \n \n \n closeMigration(userId: EntityId, schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/close-user-login-migration.uc.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isGracePeriodExpired\n \n \n \n \n \n \n \n isGracePeriodExpired(userLoginMigration: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/close-user-login-migration.uc.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { EntityId, Permission, User, UserLoginMigrationDO } from '@shared/domain';\nimport { Action, AuthorizationService } from '@src/modules/authorization';\nimport {\n\tUserLoginMigrationGracePeriodExpiredLoggableException,\n\tUserLoginMigrationNotFoundLoggableException,\n} from '../error';\nimport { SchoolMigrationService, UserLoginMigrationRevertService, UserLoginMigrationService } from '../service';\n\n@Injectable()\nexport class CloseUserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService,\n\t\tprivate readonly userLoginMigrationRevertService: UserLoginMigrationRevertService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tasync closeMigration(userId: EntityId, schoolId: EntityId): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t}\n\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tthis.authorizationService.checkPermission(user, userLoginMigration, {\n\t\t\trequiredPermissions: [Permission.USER_LOGIN_MIGRATION_ADMIN],\n\t\t\taction: Action.write,\n\t\t});\n\n\t\tif (userLoginMigration.finishedAt && this.isGracePeriodExpired(userLoginMigration)) {\n\t\t\tthrow new UserLoginMigrationGracePeriodExpiredLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.finishedAt\n\t\t\t);\n\t\t} else if (userLoginMigration.closedAt) {\n\t\t\treturn userLoginMigration;\n\t\t} else {\n\t\t\tconst updatedUserLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationService.closeMigration(\n\t\t\t\tschoolId\n\t\t\t);\n\n\t\t\tconst hasSchoolMigratedUser: boolean = await this.schoolMigrationService.hasSchoolMigratedUser(schoolId);\n\n\t\t\tif (!hasSchoolMigratedUser) {\n\t\t\t\tawait this.userLoginMigrationRevertService.revertUserLoginMigration(updatedUserLoginMigration);\n\t\t\t} else {\n\t\t\t\tawait this.schoolMigrationService.markUnmigratedUsersAsOutdated(schoolId);\n\t\t\t}\n\n\t\t\treturn updatedUserLoginMigration;\n\t\t}\n\t}\n\n\tprivate isGracePeriodExpired(userLoginMigration: UserLoginMigrationDO): boolean {\n\t\tconst isGracePeriodExpired: boolean =\n\t\t\t!!userLoginMigration.finishedAt && Date.now() >= userLoginMigration.finishedAt.getTime();\n\n\t\treturn isGracePeriodExpired;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CollaborativeStorageAdapter.html":{"url":"injectables/CollaborativeStorageAdapter.html","title":"injectable - CollaborativeStorageAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CollaborativeStorageAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts\n \n\n\n \n Description\n \n \n Provides an Adapter to an external collaborative storage.\nIt loads an appropriate strategy and applies that to the given data.\n\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n strategy\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n createTeam\n \n \n deleteTeam\n \n \n setStrategy\n \n \n updateTeam\n \n \n updateTeamPermissionsForRole\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(strategy: ICollaborativeStorageStrategy, mapper: CollaborativeStorageAdapterMapper, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n strategy\n \n \n ICollaborativeStorageStrategy\n \n \n \n No\n \n \n \n \n mapper\n \n \n CollaborativeStorageAdapterMapper\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n \n \ncreateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:58\n \n \n\n\n \n \n Creates a team in the collaborative storage\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n The team DTO\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteTeam\n \n \n \n \n \n \ndeleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:49\n \n \n\n\n \n \n Deletes a team in the collaborative storage\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n The team id\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setStrategy\n \n \n \n \n \n \nsetStrategy(strategy: ICollaborativeStorageStrategy)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:30\n \n \n\n\n \n \n Set the strategy that should be used by the adapter\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n strategy\n \n ICollaborativeStorageStrategy\n \n\n \n No\n \n\n\n \n The strategy\n\n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeam\n \n \n \n \n \n \nupdateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:67\n \n \n\n\n \n \n Updates a team in the collaborative storage\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n The team DTO\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n \n \nupdateTeamPermissionsForRole(team: TeamDto, role: RoleDto, permissions: TeamPermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:40\n \n \n\n\n \n \n Update the Permissions for a given Role in the given Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n The Team DTO\n\n \n \n \n role\n \n RoleDto\n \n\n \n No\n \n\n\n \n The Role DTO\n\n \n \n \n permissions\n \n TeamPermissionsDto\n \n\n \n No\n \n\n\n \n The permissions to set\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n strategy\n \n \n \n \n \n \n Type : ICollaborativeStorageStrategy\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/collaborative-storage.adapter.ts:15\n \n \n\n\n \n \n\n\n \n\n\n \n import { TeamPermissionsDto } from '@src/modules/collaborative-storage/services/dto/team-permissions.dto';\nimport { TeamDto } from '@src/modules/collaborative-storage/services/dto/team.dto';\nimport { ICollaborativeStorageStrategy } from '@shared/infra/collaborative-storage/strategy/base.interface.strategy';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { CollaborativeStorageAdapterMapper } from '@shared/infra/collaborative-storage/mapper/collaborative-storage-adapter.mapper';\nimport { LegacyLogger } from '@src/core/logger';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\n\n/**\n * Provides an Adapter to an external collaborative storage.\n * It loads an appropriate strategy and applies that to the given data.\n */\n@Injectable()\nexport class CollaborativeStorageAdapter {\n\tstrategy: ICollaborativeStorageStrategy;\n\n\tconstructor(\n\t\t@Inject('ICollaborativeStorageStrategy') strategy: ICollaborativeStorageStrategy,\n\t\tprivate mapper: CollaborativeStorageAdapterMapper,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(CollaborativeStorageAdapter.name);\n\t\tthis.strategy = strategy;\n\t}\n\n\t/**\n\t * Set the strategy that should be used by the adapter\n\t * @param strategy The strategy\n\t */\n\tsetStrategy(strategy: ICollaborativeStorageStrategy) {\n\t\tthis.strategy = strategy;\n\t}\n\n\t/**\n\t * Update the Permissions for a given Role in the given Team\n\t * @param team The Team DTO\n\t * @param role The Role DTO\n\t * @param permissions The permissions to set\n\t */\n\tupdateTeamPermissionsForRole(team: TeamDto, role: RoleDto, permissions: TeamPermissionsDto): Promise {\n\t\treturn this.strategy.updateTeamPermissionsForRole(this.mapper.mapDomainToAdapter(team, role, permissions));\n\t}\n\n\t/**\n\t * Deletes a team in the collaborative storage\n\t *\n\t * @param teamId The team id\n\t */\n\tdeleteTeam(teamId: string): Promise {\n\t\treturn this.strategy.deleteTeam(teamId);\n\t}\n\n\t/**\n\t * Creates a team in the collaborative storage\n\t *\n\t * @param team The team DTO\n\t */\n\tcreateTeam(team: TeamDto): Promise {\n\t\treturn this.strategy.createTeam(team);\n\t}\n\n\t/**\n\t * Updates a team in the collaborative storage\n\t *\n\t * @param team The team DTO\n\t */\n\tupdateTeam(team: TeamDto): Promise {\n\t\treturn this.strategy.updateTeam(team);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CollaborativeStorageAdapterMapper.html":{"url":"injectables/CollaborativeStorageAdapterMapper.html","title":"injectable - CollaborativeStorageAdapterMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CollaborativeStorageAdapterMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/mapper/collaborative-storage-adapter.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapDomainToAdapter\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapDomainToAdapter\n \n \n \n \n \n \n \n mapDomainToAdapter(team: TeamDto, role: RoleDto, permissions: TeamPermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/mapper/collaborative-storage-adapter.mapper.ts:16\n \n \n\n\n \n \n Maps the Domain DTOs to an appropriate adapter DTO\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n The Team DTO\n\n \n \n \n role\n \n RoleDto\n \n\n \n No\n \n\n\n \n The Role DTO\n\n \n \n \n permissions\n \n TeamPermissionsDto\n \n\n \n No\n \n\n\n \n The Permissions DTO\n\n \n \n \n \n \n \n \n \n Returns : TeamRolePermissionsDto\n\n \n \n The mapped adapter DTO\n\n \n \n \n \n \n\n\n \n\n\n \n import { TeamPermissionsDto } from '@src/modules/collaborative-storage/services/dto/team-permissions.dto';\nimport { TeamDto } from '@src/modules/collaborative-storage/services/dto/team.dto';\nimport { Injectable } from '@nestjs/common';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\nimport { TeamRolePermissionsDto } from '../dto/team-role-permissions.dto';\n\n@Injectable()\nexport class CollaborativeStorageAdapterMapper {\n\t/**\n\t * Maps the Domain DTOs to an appropriate adapter DTO\n\t * @param team The Team DTO\n\t * @param role The Role DTO\n\t * @param permissions The Permissions DTO\n\t * @return The mapped adapter DTO\n\t */\n\tpublic mapDomainToAdapter(team: TeamDto, role: RoleDto, permissions: TeamPermissionsDto): TeamRolePermissionsDto {\n\t\treturn new TeamRolePermissionsDto({\n\t\t\tteamId: team.id,\n\t\t\tteamName: team.name,\n\t\t\troleName: role.name,\n\t\t\tpermissions: [\n\t\t\t\t!!permissions.read,\n\t\t\t\t!!permissions.write,\n\t\t\t\t!!permissions.create,\n\t\t\t\t!!permissions.delete,\n\t\t\t\t!!permissions.share,\n\t\t\t],\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CollaborativeStorageAdapterModule.html":{"url":"modules/CollaborativeStorageAdapterModule.html","title":"module - CollaborativeStorageAdapterModule","body":"\n \n\n\n\n\n Modules\n CollaborativeStorageAdapterModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CollaborativeStorageAdapterModule\n\n\n\ncluster_CollaborativeStorageAdapterModule_exports\n\n\n\ncluster_CollaborativeStorageAdapterModule_imports\n\n\n\ncluster_CollaborativeStorageAdapterModule_providers\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageAdapterModule -->\n\nLoggerModule->CollaborativeStorageAdapterModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nCollaborativeStorageAdapterModule -->\n\nPseudonymModule->CollaborativeStorageAdapterModule\n\n\n\n\n\nToolModule\n\nToolModule\n\nCollaborativeStorageAdapterModule -->\n\nToolModule->CollaborativeStorageAdapterModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nCollaborativeStorageAdapterModule -->\n\nUserModule->CollaborativeStorageAdapterModule\n\n\n\n\n\nCollaborativeStorageAdapter \n\nCollaborativeStorageAdapter \n\nCollaborativeStorageAdapter -->\n\nCollaborativeStorageAdapterModule->CollaborativeStorageAdapter \n\n\n\n\n\nCollaborativeStorageAdapter\n\nCollaborativeStorageAdapter\n\nCollaborativeStorageAdapterModule -->\n\nCollaborativeStorageAdapter->CollaborativeStorageAdapterModule\n\n\n\n\n\nCollaborativeStorageAdapterMapper\n\nCollaborativeStorageAdapterMapper\n\nCollaborativeStorageAdapterModule -->\n\nCollaborativeStorageAdapterMapper->CollaborativeStorageAdapterModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nCollaborativeStorageAdapterModule -->\n\nLtiToolRepo->CollaborativeStorageAdapterModule\n\n\n\n\n\nNextcloudClient\n\nNextcloudClient\n\nCollaborativeStorageAdapterModule -->\n\nNextcloudClient->CollaborativeStorageAdapterModule\n\n\n\n\n\nNextcloudStrategy\n\nNextcloudStrategy\n\nCollaborativeStorageAdapterModule -->\n\nNextcloudStrategy->CollaborativeStorageAdapterModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/collaborative-storage-adapter.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CollaborativeStorageAdapter\n \n \n CollaborativeStorageAdapterMapper\n \n \n LtiToolRepo\n \n \n NextcloudClient\n \n \n NextcloudStrategy\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n PseudonymModule\n \n \n ToolModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n CollaborativeStorageAdapter\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpModule } from '@nestjs/axios';\nimport { Module, Provider } from '@nestjs/common';\nimport { CollaborativeStorageAdapterMapper } from '@shared/infra/collaborative-storage/mapper/collaborative-storage-adapter.mapper';\nimport { NextcloudClient } from '@shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.client';\nimport { NextcloudStrategy } from '@shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy';\nimport { LtiToolRepo } from '@shared/repo/ltitool/';\nimport { LoggerModule } from '@src/core/logger';\nimport { ToolModule } from '@src/modules/tool';\nimport { PseudonymModule } from '@src/modules/pseudonym';\nimport { UserModule } from '@src/modules/user';\nimport { CollaborativeStorageAdapter } from './collaborative-storage.adapter';\n\nconst storageStrategy: Provider = {\n\tprovide: 'ICollaborativeStorageStrategy',\n\tuseExisting: NextcloudStrategy,\n};\n\n@Module({\n\timports: [HttpModule, LoggerModule, ToolModule, PseudonymModule, UserModule],\n\tproviders: [\n\t\tCollaborativeStorageAdapter,\n\t\tCollaborativeStorageAdapterMapper,\n\t\tLtiToolRepo,\n\t\tNextcloudStrategy,\n\t\tNextcloudClient,\n\t\tstorageStrategy,\n\t\t{\n\t\t\tprovide: 'oidcInternalName',\n\t\t\tuseValue: Configuration.get('NEXTCLOUD_SOCIALLOGIN_OIDC_INTERNAL_NAME') as string,\n\t\t},\n\t],\n\texports: [CollaborativeStorageAdapter],\n})\nexport class CollaborativeStorageAdapterModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/CollaborativeStorageController.html":{"url":"controllers/CollaborativeStorageController.html","title":"controller - CollaborativeStorageController","body":"\n \n\n\n\n\n\n\n Controllers\n CollaborativeStorageController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/controller/collaborative-storage.controller.ts\n \n\n \n Prefix\n \n \n collaborative-storage\n \n\n\n \n Description\n \n \n Class for providing access to an external collaborative storage.\n\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n \n \n \n updateTeamPermissionsForRole(currentUser: ICurrentUser, teamRole: TeamRoleDto, permissionsBody: TeamPermissionsBody)\n \n \n\n \n \n Decorators : \n \n @Patch('team/:teamId/role/:roleId/permissions')@ApiResponse({status: 200, description: 'Updates the permissions for a team in the external collaborative storage'})@ApiResponse({status: 400, description: 'An error occurred while processing the request'})@ApiResponse({status: 403, description: 'User does not have the correct permission'})@ApiResponse({status: 404, description: 'Team or Role not found!'})\n \n \n\n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/collaborative-storage.controller.ts:33\n \n \n\n\n \n \n Updates the CRUD Permissions(+Share) for a specific Role in a Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n The current User\n\n \n \n \n teamRole\n \n TeamRoleDto\n \n\n \n No\n \n\n\n \n Encapsulates the Team and Role to be updated\n\n \n \n \n permissionsBody\n \n TeamPermissionsBody\n \n\n \n No\n \n\n\n \n The new Permissions\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { Body, Controller, Param, Patch } from '@nestjs/common';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '../../authentication/interface/user';\nimport { CollaborativeStorageUc } from '../uc/collaborative-storage.uc';\nimport { TeamPermissionsBody } from './dto/team-permissions.body.params';\nimport { TeamRoleDto } from './dto/team-role.params';\n\n/**\n * Class for providing access to an external collaborative storage.\n *\n */\n@ApiTags('Collaborative-Storage')\n@Authenticate('jwt')\n@Controller('collaborative-storage')\nexport class CollaborativeStorageController {\n\tconstructor(private readonly teamStorageUc: CollaborativeStorageUc, private logger: LegacyLogger) {\n\t\tthis.logger.setContext(CollaborativeStorageController.name);\n\t}\n\n\t/**\n\t * Updates the CRUD Permissions(+Share) for a specific Role in a Team\n\t * @param currentUser The current User\n\t * @param teamRole Encapsulates the Team and Role to be updated\n\t * @param permissionsBody The new Permissions\n\t */\n\t@Patch('team/:teamId/role/:roleId/permissions')\n\t@ApiResponse({ status: 200, description: 'Updates the permissions for a team in the external collaborative storage' })\n\t@ApiResponse({ status: 400, description: 'An error occurred while processing the request' })\n\t@ApiResponse({ status: 403, description: 'User does not have the correct permission' })\n\t@ApiResponse({ status: 404, description: 'Team or Role not found!' })\n\tupdateTeamPermissionsForRole(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() teamRole: TeamRoleDto,\n\t\t@Body() permissionsBody: TeamPermissionsBody\n\t): Promise {\n\t\treturn this.teamStorageUc.updateUserPermissionsForRole(currentUser.userId, teamRole, permissionsBody);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CollaborativeStorageModule.html":{"url":"modules/CollaborativeStorageModule.html","title":"module - CollaborativeStorageModule","body":"\n \n\n\n\n\n Modules\n CollaborativeStorageModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CollaborativeStorageModule\n\n\n\ncluster_CollaborativeStorageModule_exports\n\n\n\ncluster_CollaborativeStorageModule_imports\n\n\n\ncluster_CollaborativeStorageModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule -->\n\nAuthorizationModule->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageAdapterModule\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageAdapterModule->CollaborativeStorageModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCollaborativeStorageModule -->\n\nLoggerModule->CollaborativeStorageModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nCollaborativeStorageModule -->\n\nRoleModule->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageUc \n\nCollaborativeStorageUc \n\nCollaborativeStorageUc -->\n\nCollaborativeStorageModule->CollaborativeStorageUc \n\n\n\n\n\nCollaborativeStorageService\n\nCollaborativeStorageService\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageService->CollaborativeStorageModule\n\n\n\n\n\nCollaborativeStorageUc\n\nCollaborativeStorageUc\n\nCollaborativeStorageModule -->\n\nCollaborativeStorageUc->CollaborativeStorageModule\n\n\n\n\n\nTeamMapper\n\nTeamMapper\n\nCollaborativeStorageModule -->\n\nTeamMapper->CollaborativeStorageModule\n\n\n\n\n\nTeamPermissionsMapper\n\nTeamPermissionsMapper\n\nCollaborativeStorageModule -->\n\nTeamPermissionsMapper->CollaborativeStorageModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nCollaborativeStorageModule -->\n\nTeamsRepo->CollaborativeStorageModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/collaborative-storage/collaborative-storage.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CollaborativeStorageService\n \n \n CollaborativeStorageUc\n \n \n TeamMapper\n \n \n TeamPermissionsMapper\n \n \n TeamsRepo\n \n \n \n \n Controllers\n \n \n CollaborativeStorageController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CollaborativeStorageAdapterModule\n \n \n LoggerModule\n \n \n RoleModule\n \n \n \n \n Exports\n \n \n CollaborativeStorageUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CollaborativeStorageAdapterModule } from '@shared/infra/collaborative-storage/collaborative-storage-adapter.module';\nimport { TeamsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { TeamPermissionsMapper } from '@src/modules/collaborative-storage/mapper/team-permissions.mapper';\nimport { TeamMapper } from '@src/modules/collaborative-storage/mapper/team.mapper';\nimport { CollaborativeStorageService } from '@src/modules/collaborative-storage/services/collaborative-storage.service';\nimport { RoleModule } from '@src/modules/role/role.module';\nimport { CollaborativeStorageController } from './controller/collaborative-storage.controller';\nimport { CollaborativeStorageUc } from './uc/collaborative-storage.uc';\n\n@Module({\n\timports: [CollaborativeStorageAdapterModule, AuthorizationModule, LoggerModule, RoleModule],\n\tproviders: [TeamsRepo, CollaborativeStorageUc, CollaborativeStorageService, TeamPermissionsMapper, TeamMapper],\n\tcontrollers: [CollaborativeStorageController],\n\texports: [CollaborativeStorageUc],\n})\nexport class CollaborativeStorageModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CollaborativeStorageService.html":{"url":"injectables/CollaborativeStorageService.html","title":"injectable - CollaborativeStorageService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CollaborativeStorageService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n createTeam\n \n \n deleteTeam\n \n \n Async\n findTeamById\n \n \n updateTeam\n \n \n Async\n updateTeamPermissionsForRole\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(adapter: CollaborativeStorageAdapter, roleService: RoleService, teamsMapper: TeamMapper, teamsRepo: TeamsRepo, authService: AuthorizationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n adapter\n \n \n CollaborativeStorageAdapter\n \n \n \n No\n \n \n \n \n roleService\n \n \n RoleService\n \n \n \n No\n \n \n \n \n teamsMapper\n \n \n TeamMapper\n \n \n \n No\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n authService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n \n \ncreateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteTeam\n \n \n \n \n \n \ndeleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findTeamById\n \n \n \n \n \n \n \n findTeamById(teamId: EntityId, populate)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:31\n \n \n\n\n \n \n Find a Team by its Id and return the DTO\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n Description\n \n \n \n \n teamId\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n The TeamId\n\n \n \n \n populate\n \n \n\n \n No\n \n\n \n false\n \n\n \n Decide, if you want to populate the Users in the Entity\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n The mapped DTO\n\n \n \n \n \n \n \n \n \n \n \n \n updateTeam\n \n \n \n \n \n \nupdateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTeamPermissionsForRole\n \n \n \n \n \n \n \n updateTeamPermissionsForRole(currentUserId: string, teamId: string, roleId: string, teamPermissions: TeamPermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/services/collaborative-storage.service.ts:42\n \n \n\n\n \n \n Sets the Permissions for the specified Role in a Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n The current User. Needs to be either the teamowner or an teamadmin\n\n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n The TeamId\n\n \n \n \n roleId\n \n string\n \n\n \n No\n \n\n\n \n The RoleId\n\n \n \n \n teamPermissions\n \n TeamPermissionsDto\n \n\n \n No\n \n\n\n \n The new Permissions\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { CollaborativeStorageAdapter } from '@shared/infra/collaborative-storage';\nimport { TeamsRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { RoleService } from '@src/modules/role/service/role.service';\nimport { TeamMapper } from '../mapper/team.mapper';\nimport { TeamPermissionsDto } from './dto/team-permissions.dto';\nimport { TeamDto } from './dto/team.dto';\n\n@Injectable()\nexport class CollaborativeStorageService {\n\tconstructor(\n\t\tprivate adapter: CollaborativeStorageAdapter,\n\t\tprivate roleService: RoleService,\n\t\tprivate teamsMapper: TeamMapper,\n\t\tprivate teamsRepo: TeamsRepo,\n\t\tprivate authService: AuthorizationService,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(CollaborativeStorageService.name);\n\t}\n\n\t/**\n\t * Find a Team by its Id and return the DTO\n\t * @param teamId The TeamId\n\t * @param populate Decide, if you want to populate the Users in the Entity\n\t * @return The mapped DTO\n\t */\n\tasync findTeamById(teamId: EntityId, populate = false): Promise {\n\t\treturn this.teamsMapper.mapEntityToDto(await this.teamsRepo.findById(teamId, populate));\n\t}\n\n\t/**\n\t * Sets the Permissions for the specified Role in a Team\n\t * @param currentUserId The current User. Needs to be either the teamowner or an teamadmin\n\t * @param teamId The TeamId\n\t * @param roleId The RoleId\n\t * @param teamPermissions The new Permissions\n\t */\n\tasync updateTeamPermissionsForRole(\n\t\tcurrentUserId: string,\n\t\tteamId: string,\n\t\troleId: string,\n\t\tteamPermissions: TeamPermissionsDto\n\t): Promise {\n\t\tthis.authService.checkPermission(\n\t\t\tawait this.authService.getUserWithPermissions(currentUserId),\n\t\t\tawait this.teamsRepo.findById(teamId, true),\n\t\t\tAuthorizationContextBuilder.write([Permission.CHANGE_TEAM_ROLES])\n\t\t);\n\t\treturn this.adapter.updateTeamPermissionsForRole(\n\t\t\tawait this.findTeamById(teamId, true),\n\t\t\tawait this.roleService.findById(roleId),\n\t\t\tteamPermissions\n\t\t);\n\t}\n\n\tdeleteTeam(teamId: string): Promise {\n\t\treturn this.adapter.deleteTeam(teamId);\n\t}\n\n\tcreateTeam(team: TeamDto): Promise {\n\t\treturn this.adapter.createTeam(team);\n\t}\n\n\tupdateTeam(team: TeamDto): Promise {\n\t\treturn this.adapter.updateTeam(team);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CollaborativeStorageUc.html":{"url":"injectables/CollaborativeStorageUc.html","title":"injectable - CollaborativeStorageUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CollaborativeStorageUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n createTeam\n \n \n deleteTeam\n \n \n updateTeam\n \n \n Async\n updateUserPermissionsForRole\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(service: CollaborativeStorageService, permissionMapper: TeamPermissionsMapper)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n service\n \n \n CollaborativeStorageService\n \n \n \n No\n \n \n \n \n permissionMapper\n \n \n TeamPermissionsMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n \n \ncreateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteTeam\n \n \n \n \n \n \ndeleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeam\n \n \n \n \n \n \nupdateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateUserPermissionsForRole\n \n \n \n \n \n \n \n updateUserPermissionsForRole(currentUserId: string, teamRole: TeamRoleDto, permissionsDto: TeamPermissionsBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/uc/collaborative-storage.uc.ts:21\n \n \n\n\n \n \n Sets the Permissions for the specified Role in a Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n The current User. Needs to be either the teamowner or an teamadmin\n\n \n \n \n teamRole\n \n TeamRoleDto\n \n\n \n No\n \n\n\n \n The Team and Role to be altered\n\n \n \n \n permissionsDto\n \n TeamPermissionsBody\n \n\n \n No\n \n\n\n \n The new permissions\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CollaborativeStorageService } from '@src/modules/collaborative-storage/services/collaborative-storage.service';\nimport { TeamPermissionsMapper } from '@src/modules/collaborative-storage/mapper/team-permissions.mapper';\nimport { TeamDto } from '@src/modules/collaborative-storage/services/dto/team.dto';\nimport { TeamPermissionsBody } from '../controller/dto/team-permissions.body.params';\nimport { TeamRoleDto } from '../controller/dto/team-role.params';\n\n@Injectable()\nexport class CollaborativeStorageUc {\n\tconstructor(\n\t\tprivate readonly service: CollaborativeStorageService,\n\t\tprivate readonly permissionMapper: TeamPermissionsMapper\n\t) {}\n\n\t/**\n\t * Sets the Permissions for the specified Role in a Team\n\t * @param currentUserId The current User. Needs to be either the teamowner or an teamadmin\n\t * @param teamRole The Team and Role to be altered\n\t * @param permissionsDto The new permissions\n\t */\n\tasync updateUserPermissionsForRole(\n\t\tcurrentUserId: string,\n\t\tteamRole: TeamRoleDto,\n\t\tpermissionsDto: TeamPermissionsBody\n\t): Promise {\n\t\treturn this.service.updateTeamPermissionsForRole(\n\t\t\tcurrentUserId,\n\t\t\tteamRole.teamId,\n\t\t\tteamRole.roleId,\n\t\t\tthis.permissionMapper.mapBodyToDto(permissionsDto)\n\t\t);\n\t}\n\n\tdeleteTeam(teamId: string): Promise {\n\t\treturn this.service.deleteTeam(teamId);\n\t}\n\n\tcreateTeam(team: TeamDto): Promise {\n\t\treturn this.service.createTeam(team);\n\t}\n\n\tupdateTeam(team: TeamDto): Promise {\n\t\treturn this.service.updateTeam(team);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Column.html":{"url":"classes/Column.html","title":"class - Column","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Column\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/column.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:23\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n\n \n \n gettitle()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column.do.ts:6\n \n \n\n \n \n settitle(title: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { Card } from './card.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class Column extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof Card;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitColumn(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitColumnAsync(this);\n\t}\n}\n\nexport interface ColumnProps extends BoardCompositeProps {\n\ttitle: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnBoard.html":{"url":"classes/ColumnBoard.html","title":"class - ColumnBoard","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnBoard\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/column-board.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n context\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:27\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n title\n \n \n\n \n \n gettitle()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column-board.do.ts:6\n \n \n\n \n \n settitle(title: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column-board.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n context\n \n \n\n \n \n getcontext()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column-board.do.ts:14\n \n \n\n \n \n setcontext(context: BoardExternalReference)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/column-board.do.ts:18\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n context\n \n \n BoardExternalReference\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { Column } from './column.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync, BoardExternalReference } from './types';\n\nexport class ColumnBoard extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tget context(): BoardExternalReference {\n\t\treturn this.props.context;\n\t}\n\n\tset context(context: BoardExternalReference) {\n\t\tthis.props.context = context;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof Column;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitColumnBoard(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitColumnBoardAsync(this);\n\t}\n}\n\nexport interface ColumnBoardProps extends BoardCompositeProps {\n\ttitle: string;\n\tcontext: BoardExternalReference;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnBoardFactory.html":{"url":"classes/ColumnBoardFactory.html","title":"class - ColumnBoardFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnBoardFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/board/column-board.do.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withoutContext\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withoutContext\n \n \n \n \n \n \nwithoutContext()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/board/column-board.do.factory.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BoardExternalReferenceType, ColumnBoard, ColumnBoardProps } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport { BaseFactory } from '../../base.factory';\n\nexport type IColumnBoardProperties = Readonly;\n\nclass ColumnBoardFactory extends BaseFactory {\n\twithoutContext(): this {\n\t\tconst params = { context: undefined };\n\t\treturn this.params(params);\n\t}\n}\nexport const columnBoardFactory = ColumnBoardFactory.define(ColumnBoard, ({ sequence }) => {\n\treturn {\n\t\tid: new ObjectId().toHexString(),\n\t\ttitle: `column board #${sequence}`,\n\t\tchildren: [],\n\t\tcreatedAt: new Date(),\n\t\tupdatedAt: new Date(),\n\t\tcontext: {\n\t\t\ttype: BoardExternalReferenceType.Course,\n\t\t\tid: new ObjectId().toHexString(),\n\t\t},\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ColumnBoardNode.html":{"url":"entities/ColumnBoardNode.html","title":"entity - ColumnBoardNode","body":"\n \n\n\n\n\n\n\n\n Entities\n ColumnBoardNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/column-board-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _contextId\n \n \n \n _contextType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _contextId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'context'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/column-board-node.entity.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n _contextType\n \n \n \n \n \n \n Type : BoardExternalReferenceType\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'contextType'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/column-board-node.entity.ts:19\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo, BoardExternalReference, BoardExternalReferenceType } from '@shared/domain/domainobject';\nimport { ObjectId } from 'bson';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.COLUMN_BOARD })\nexport class ColumnBoardNode extends BoardNode {\n\tconstructor(props: ColumnBoardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.COLUMN_BOARD;\n\n\t\tthis._contextType = props.context.type;\n\t\tthis._contextId = new ObjectId(props.context.id);\n\t}\n\n\t@Property({ fieldName: 'contextType' })\n\t_contextType: BoardExternalReferenceType;\n\n\t@Property({ fieldName: 'context' })\n\t_contextId: ObjectId;\n\n\tget context(): BoardExternalReference {\n\t\treturn {\n\t\t\ttype: this._contextType,\n\t\t\tid: this._contextId.toHexString(),\n\t\t};\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildColumnBoard(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface ColumnBoardNodeProps extends BoardNodeProps {\n\tcontext: BoardExternalReference;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ColumnBoardNodeProps.html":{"url":"interfaces/ColumnBoardNodeProps.html","title":"interface - ColumnBoardNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ColumnBoardNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/column-board-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n context: BoardExternalReference\n\n \n \n\n\n \n \n Type : BoardExternalReference\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo, BoardExternalReference, BoardExternalReferenceType } from '@shared/domain/domainobject';\nimport { ObjectId } from 'bson';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.COLUMN_BOARD })\nexport class ColumnBoardNode extends BoardNode {\n\tconstructor(props: ColumnBoardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.COLUMN_BOARD;\n\n\t\tthis._contextType = props.context.type;\n\t\tthis._contextId = new ObjectId(props.context.id);\n\t}\n\n\t@Property({ fieldName: 'contextType' })\n\t_contextType: BoardExternalReferenceType;\n\n\t@Property({ fieldName: 'context' })\n\t_contextId: ObjectId;\n\n\tget context(): BoardExternalReference {\n\t\treturn {\n\t\t\ttype: this._contextType,\n\t\t\tid: this._contextId.toHexString(),\n\t\t};\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildColumnBoard(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface ColumnBoardNodeProps extends BoardNodeProps {\n\tcontext: BoardExternalReference;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ColumnBoardProps.html":{"url":"interfaces/ColumnBoardProps.html","title":"interface - ColumnBoardProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ColumnBoardProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/column-board.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n context\n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n context: BoardExternalReference\n\n \n \n\n\n \n \n Type : BoardExternalReference\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { Column } from './column.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync, BoardExternalReference } from './types';\n\nexport class ColumnBoard extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tget context(): BoardExternalReference {\n\t\treturn this.props.context;\n\t}\n\n\tset context(context: BoardExternalReference) {\n\t\tthis.props.context = context;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof Column;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitColumnBoard(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitColumnBoardAsync(this);\n\t}\n}\n\nexport interface ColumnBoardProps extends BoardCompositeProps {\n\ttitle: string;\n\tcontext: BoardExternalReference;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ColumnBoardService.html":{"url":"injectables/ColumnBoardService.html","title":"injectable - ColumnBoardService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnBoardService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/column-board.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Private\n createRichTextElement\n \n \n Async\n createWelcomeColumnBoard\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n findIdsByExternalReference\n \n \n Async\n getBoardObjectTitlesById\n \n \n Async\n updateTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService, contentElementFactory: ContentElementFactory)\n \n \n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n contentElementFactory\n \n \n ContentElementFactory\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(context: BoardExternalReference, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n context\n \n BoardExternalReference\n \n\n \n No\n \n\n \n \n\n \n \n title\n \n string\n \n\n \n No\n \n\n \n ''\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createRichTextElement\n \n \n \n \n \n \n \n createRichTextElement(text: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:130\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RichTextElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createWelcomeColumnBoard\n \n \n \n \n \n \n \n createWelcomeColumnBoard(courseReference: BoardExternalReference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseReference\n \n BoardExternalReference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(board: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:57\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(boardId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findIdsByExternalReference\n \n \n \n \n \n \n \n findIdsByExternalReference(reference: BoardExternalReference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n BoardExternalReference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getBoardObjectTitlesById\n \n \n \n \n \n \n \n getBoardObjectTitlesById(boardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTitle\n \n \n \n \n \n \n \n updateTitle(board: ColumnBoard, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column-board.service.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tBoardExternalReference,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tContentElementFactory,\n\tContentElementType,\n\tEntityId,\n\tRichTextElement,\n} from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\n\n@Injectable()\nexport class ColumnBoardService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly boardDoService: BoardDoService,\n\t\tprivate readonly contentElementFactory: ContentElementFactory\n\t) {}\n\n\tasync findById(boardId: EntityId): Promise {\n\t\tconst board = await this.boardDoRepo.findByClassAndId(ColumnBoard, boardId);\n\n\t\treturn board;\n\t}\n\n\tasync findIdsByExternalReference(reference: BoardExternalReference): Promise {\n\t\tconst ids = this.boardDoRepo.findIdsByExternalReference(reference);\n\n\t\treturn ids;\n\t}\n\n\tasync getBoardObjectTitlesById(boardIds: EntityId[]): Promise> {\n\t\tconst titleMap = this.boardDoRepo.getTitlesByIds(boardIds);\n\t\treturn titleMap;\n\t}\n\n\tasync create(context: BoardExternalReference, title = ''): Promise {\n\t\tconst columnBoard = new ColumnBoard({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tcontext,\n\t\t});\n\n\t\tawait this.boardDoRepo.save(columnBoard);\n\n\t\treturn columnBoard;\n\t}\n\n\tasync delete(board: ColumnBoard): Promise {\n\t\tawait this.boardDoService.deleteWithDescendants(board);\n\t}\n\n\tasync updateTitle(board: ColumnBoard, title: string): Promise {\n\t\tboard.title = title;\n\t\tawait this.boardDoRepo.save(board);\n\t}\n\n\tasync createWelcomeColumnBoard(courseReference: BoardExternalReference) {\n\t\tconst columnBoard = new ColumnBoard({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: '',\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tcontext: courseReference,\n\t\t});\n\n\t\tconst column = new Column({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: '',\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tcolumnBoard.addChild(column);\n\n\t\tconst card = new Card({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: 'Willkommen auf dem neuen Spalten-Board! 🥳',\n\t\t\theight: 150,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\t\tcolumn.addChild(card);\n\n\t\tconst text1 = this.createRichTextElement(\n\t\t\t'Wir erweitern das Board kontinuierlich um wichtige Funktionen. Der aktuelle Stand kann hier getestet werden. '\n\t\t);\n\t\tcard.addChild(text1);\n\n\t\tif (Configuration.has('COLUMN_BOARD_HELP_LINK')) {\n\t\t\tconst helplink = Configuration.get('COLUMN_BOARD_HELP_LINK') as string;\n\t\t\tconst text2 = this.createRichTextElement(\n\t\t\t\t` Wichtige Informationen zu Berechtigungen und Informationen zum Einsatz des Boards sind im Hilfebereich zusammengefasst.`\n\t\t\t);\n\t\t\tcard.addChild(text2);\n\t\t}\n\n\t\tif (Configuration.has('COLUMN_BOARD_FEEDBACK_LINK')) {\n\t\t\tconst feedbacklink = Configuration.get('COLUMN_BOARD_FEEDBACK_LINK') as string;\n\t\t\tconst text3 = this.createRichTextElement(\n\t\t\t\t`Wir freuen uns sehr über Feedback zum Board unter folgendem Link.`\n\t\t\t);\n\t\t\tcard.addChild(text3);\n\t\t}\n\n\t\tconst SC_THEME = Configuration.get('SC_THEME') as string;\n\t\tif (SC_THEME !== 'default') {\n\t\t\tconst clientUrl = Configuration.get('HOST') as string;\n\t\t\tconst text4 = this.createRichTextElement(\n\t\t\t\t`Wir freuen uns über Feedback und Wünsche.`\n\t\t\t);\n\t\t\tcard.addChild(text4);\n\t\t}\n\n\t\tawait this.boardDoRepo.save(columnBoard);\n\n\t\treturn columnBoard;\n\t}\n\n\tprivate createRichTextElement(text: string): RichTextElement {\n\t\tconst element: RichTextElement = this.contentElementFactory.build(ContentElementType.RICH_TEXT) as RichTextElement;\n\t\telement.text = text;\n\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ColumnBoardTarget.html":{"url":"entities/ColumnBoardTarget.html","title":"entity - ColumnBoardTarget","body":"\n \n\n\n\n\n\n\n\n Entities\n ColumnBoardTarget\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _columnBoardId\n \n \n \n published\n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _columnBoardId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'columnBoard'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n published\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/column-board-target.entity.ts:21\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '@shared/domain/types';\nimport { ObjectId } from 'bson';\nimport { BaseEntityWithTimestamps } from '../base.entity';\n\ntype ColumnBoardTargetProps = {\n\tcolumnBoardId: EntityId;\n\ttitle?: string;\n};\n\n@Entity()\nexport class ColumnBoardTarget extends BaseEntityWithTimestamps implements ILearnroomElement {\n\tconstructor(props: ColumnBoardTargetProps) {\n\t\tsuper();\n\t\tthis._columnBoardId = new ObjectId(props.columnBoardId);\n\t\tthis.title = props.title ?? '';\n\t}\n\n\t@Property()\n\ttitle: string;\n\n\tpublish(): void {\n\t\tthis.published = true;\n\t}\n\n\tunpublish(): void {\n\t\tthis.published = false;\n\t}\n\n\t@Property()\n\tpublished = false;\n\n\t@Property({ fieldName: 'columnBoard' })\n\t_columnBoardId: ObjectId;\n\n\tget columnBoardId(): EntityId {\n\t\treturn this._columnBoardId.toHexString();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ColumnBoardTargetService.html":{"url":"injectables/ColumnBoardTargetService.html","title":"injectable - ColumnBoardTargetService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnBoardTargetService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/column-board-target.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n findExistingTargets\n \n \n Async\n findOrCreateTargets\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(columnBoardService: ColumnBoardService, em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/column-board-target.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n findExistingTargets\n \n \n \n \n \n \n \n findExistingTargets(columnBoardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/column-board-target.service.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOrCreateTargets\n \n \n \n \n \n \n \n findOrCreateTargets(columnBoardIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/column-board-target.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoardIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { ColumnBoardTarget, EntityId } from '@shared/domain';\nimport { ColumnBoardService } from '@src/modules/board';\n\n@Injectable()\nexport class ColumnBoardTargetService {\n\tconstructor(private readonly columnBoardService: ColumnBoardService, private readonly em: EntityManager) {}\n\n\tasync findOrCreateTargets(columnBoardIds: EntityId[]): Promise {\n\t\tconst existingTargets = await this.findExistingTargets(columnBoardIds);\n\n\t\tconst titlesMap = await this.columnBoardService.getBoardObjectTitlesById(columnBoardIds);\n\n\t\tconst columnBoardTargets = columnBoardIds.map((id) => {\n\t\t\tconst title = titlesMap[id] ?? '';\n\t\t\tlet target = existingTargets.find((item) => item.columnBoardId === id);\n\t\t\tif (target) {\n\t\t\t\ttarget.title = title;\n\t\t\t} else {\n\t\t\t\ttarget = new ColumnBoardTarget({ columnBoardId: id, title });\n\t\t\t}\n\t\t\tthis.em.persist(target);\n\t\t\treturn target;\n\t\t});\n\n\t\tawait this.em.flush();\n\n\t\treturn columnBoardTargets;\n\t}\n\n\tprivate async findExistingTargets(columnBoardIds: EntityId[]): Promise {\n\t\tconst existingTargets = await this.em.find(ColumnBoardTarget, {\n\t\t\t_columnBoardId: { $in: columnBoardIds },\n\t\t} as unknown as FilterQuery);\n\n\t\treturn existingTargets;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ColumnController.html":{"url":"controllers/ColumnController.html","title":"controller - ColumnController","body":"\n \n\n\n\n\n\n\n Controllers\n ColumnController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/column.controller.ts\n \n\n \n Prefix\n \n \n columns\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createCard\n \n \n \n \n \n \n \n \n \n Async\n deleteColumn\n \n \n \n \n \n \n \n \n \n Async\n moveColumn\n \n \n \n \n \n \n \n \n \n Async\n updateColumnTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createCard\n \n \n \n \n \n \n \n createCard(urlParams: ColumnUrlParams, currentUser: ICurrentUser, createCardBodyParams?: CreateCardBodyParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new card on a column.'})@ApiResponse({status: 201, type: CardResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@ApiBody({required: false, type: CreateCardBodyParams})@Post(':columnId/cards')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/column.controller.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ColumnUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n createCardBodyParams\n \n CreateCardBodyParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteColumn\n \n \n \n \n \n \n \n deleteColumn(urlParams: ColumnUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Delete a single column.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Delete(':columnId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/column.controller.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ColumnUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveColumn\n \n \n \n \n \n \n \n moveColumn(urlParams: ColumnUrlParams, bodyParams: MoveColumnBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Move a single column.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Put(':columnId/position')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/column.controller.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ColumnUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n MoveColumnBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateColumnTitle\n \n \n \n \n \n \n \n updateColumnTitle(urlParams: ColumnUrlParams, bodyParams: RenameBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update the title of a single column.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':columnId/title')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/column.controller.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ColumnUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n RenameBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\n\tPut,\n} from '@nestjs/common';\nimport { ApiBody, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { BoardUc } from '../uc';\nimport { CardResponse, ColumnUrlParams, MoveColumnBodyParams, RenameBodyParams } from './dto';\nimport { CardResponseMapper } from './mapper';\nimport { CreateCardBodyParams } from './dto/card/create-card.body.params';\n\n@ApiTags('Board Column')\n@Authenticate('jwt')\n@Controller('columns')\nexport class ColumnController {\n\tconstructor(private readonly boardUc: BoardUc) {}\n\n\t@ApiOperation({ summary: 'Move a single column.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Put(':columnId/position')\n\tasync moveColumn(\n\t\t@Param() urlParams: ColumnUrlParams,\n\t\t@Body() bodyParams: MoveColumnBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.moveColumn(currentUser.userId, urlParams.columnId, bodyParams.toBoardId, bodyParams.toPosition);\n\t}\n\n\t@ApiOperation({ summary: 'Update the title of a single column.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':columnId/title')\n\tasync updateColumnTitle(\n\t\t@Param() urlParams: ColumnUrlParams,\n\t\t@Body() bodyParams: RenameBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.boardUc.updateColumnTitle(currentUser.userId, urlParams.columnId, bodyParams.title);\n\t}\n\n\t@ApiOperation({ summary: 'Delete a single column.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Delete(':columnId')\n\tasync deleteColumn(@Param() urlParams: ColumnUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.boardUc.deleteColumn(currentUser.userId, urlParams.columnId);\n\t}\n\n\t@ApiOperation({ summary: 'Create a new card on a column.' })\n\t@ApiResponse({ status: 201, type: CardResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@ApiBody({ required: false, type: CreateCardBodyParams })\n\t@Post(':columnId/cards')\n\tasync createCard(\n\t\t@Param() urlParams: ColumnUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() createCardBodyParams?: CreateCardBodyParams\n\t): Promise {\n\t\tconst { requiredEmptyElements } = createCardBodyParams || {};\n\t\tconst card = await this.boardUc.createCard(currentUser.userId, urlParams.columnId, requiredEmptyElements);\n\n\t\tconst response = CardResponseMapper.mapToResponse(card);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ColumnNode.html":{"url":"entities/ColumnNode.html","title":"entity - ColumnNode","body":"\n \n\n\n\n\n\n\n\n Entities\n ColumnNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/column-node.entity.ts\n \n\n\n\n\n\n \n\n\n \n import { Entity } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder } from './types';\nimport { BoardNodeType } from './types/board-node-type';\n\n@Entity({ discriminatorValue: BoardNodeType.COLUMN })\nexport class ColumnNode extends BoardNode {\n\tconstructor(props: BoardNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.COLUMN;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildColumn(this);\n\t\treturn domainObject;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ColumnProps.html":{"url":"interfaces/ColumnProps.html","title":"interface - ColumnProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ColumnProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/column.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { Card } from './card.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class Column extends BoardComposite {\n\tget title(): string {\n\t\treturn this.props.title;\n\t}\n\n\tset title(title: string) {\n\t\tthis.props.title = title;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof Card;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitColumn(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitColumnAsync(this);\n\t}\n}\n\nexport interface ColumnProps extends BoardCompositeProps {\n\ttitle: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnResponse.html":{"url":"classes/ColumnResponse.html","title":"class - ColumnResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/column.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n cards\n \n \n \n id\n \n \n \n timestamps\n \n \n \n \n Optional\n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: ColumnResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n ColumnResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n cards\n \n \n \n \n \n \n Type : CardSkeletonResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.response.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { CardSkeletonResponse } from './card-skeleton.response';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class ColumnResponse {\n\tconstructor({ id, title, cards, timestamps }: ColumnResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.cards = cards;\n\t\tthis.timestamps = timestamps;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\ttype: [CardSkeletonResponse],\n\t})\n\tcards: CardSkeletonResponse[];\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnResponseMapper.html":{"url":"classes/ColumnResponseMapper.html","title":"class - ColumnResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/column-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/column-response.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ColumnResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, HttpStatus } from '@nestjs/common';\nimport { Card, Column } from '@shared/domain';\nimport { CardSkeletonResponse, ColumnResponse, TimestampsResponse } from '../dto';\n\nexport class ColumnResponseMapper {\n\tstatic mapToResponse(column: Column): ColumnResponse {\n\t\tconst result = new ColumnResponse({\n\t\t\tid: column.id,\n\t\t\ttitle: column.title,\n\t\t\tcards: column.children.map((card) => {\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tif (!(card instanceof Card)) {\n\t\t\t\t\tthrow new HttpException(`unsupported child type: ${card.constructor.name}`, HttpStatus.UNPROCESSABLE_ENTITY);\n\t\t\t\t}\n\t\t\t\treturn new CardSkeletonResponse({\n\t\t\t\t\tcardId: card.id,\n\t\t\t\t\theight: card.height,\n\t\t\t\t});\n\t\t\t}),\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: column.updatedAt, createdAt: column.createdAt }),\n\t\t});\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ColumnService.html":{"url":"injectables/ColumnService.html","title":"injectable - ColumnService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ColumnService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/column.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n move\n \n \n Async\n updateTitle\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(parent: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(columnId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n move\n \n \n \n \n \n \n \n move(column: Column, targetBoard: ColumnBoard, targetPosition?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n targetBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTitle\n \n \n \n \n \n \n \n updateTitle(column: Column, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/column.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Column, ColumnBoard, EntityId } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\n\n@Injectable()\nexport class ColumnService {\n\tconstructor(private readonly boardDoRepo: BoardDoRepo, private readonly boardDoService: BoardDoService) {}\n\n\tasync findById(columnId: EntityId): Promise {\n\t\tconst column = await this.boardDoRepo.findByClassAndId(Column, columnId);\n\t\treturn column;\n\t}\n\n\tasync create(parent: ColumnBoard): Promise {\n\t\tconst column = new Column({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttitle: '',\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\tparent.addChild(column);\n\n\t\tawait this.boardDoRepo.save(parent.children, parent);\n\n\t\treturn column;\n\t}\n\n\tasync delete(column: Column): Promise {\n\t\tawait this.boardDoService.deleteWithDescendants(column);\n\t}\n\n\tasync move(column: Column, targetBoard: ColumnBoard, targetPosition?: number): Promise {\n\t\tawait this.boardDoService.move(column, targetBoard, targetPosition);\n\t}\n\n\tasync updateTitle(column: Column, title: string): Promise {\n\t\tconst parent = await this.boardDoRepo.findParentOfId(column.id);\n\t\tcolumn.title = title;\n\t\tawait this.boardDoRepo.save(column, parent);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ColumnUrlParams.html":{"url":"classes/ColumnUrlParams.html","title":"class - ColumnUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ColumnUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/column.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n columnId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n columnId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the column.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/column.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class ColumnUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the column.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcolumnId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ColumnboardBoardElement.html":{"url":"entities/ColumnboardBoardElement.html","title":"entity - ColumnboardBoardElement","body":"\n \n\n\n\n\n\n\n\n Entities\n ColumnboardBoardElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/column-board-boardelement.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : ColumnBoardTarget\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('ColumnBoardTarget')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/column-board-boardelement.ts:13\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { BoardElement, BoardElementType } from './boardelement.entity';\nimport { ColumnBoardTarget } from './column-board-target.entity';\n\n@Entity({ discriminatorValue: BoardElementType.ColumnBoard })\nexport class ColumnboardBoardElement extends BoardElement {\n\tconstructor(props: { target: ColumnBoardTarget }) {\n\t\tsuper(props);\n\t\tthis.boardElementType = BoardElementType.ColumnBoard;\n\t}\n\n\t@ManyToOne('ColumnBoardTarget')\n\ttarget!: ColumnBoardTarget;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CommonCartridgeExportService.html":{"url":"injectables/CommonCartridgeExportService.html","title":"injectable - CommonCartridgeExportService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CommonCartridgeExportService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n addLessons\n \n \n Private\n Async\n addTasks\n \n \n Async\n exportCourse\n \n \n Private\n mapContentToResource\n \n \n Private\n mapCourseTeachersToCopyrightOwners\n \n \n Private\n mapTaskToWebContentResource\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseService: CourseService, lessonService: LessonService, taskService: TaskService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n lessonService\n \n \n LessonService\n \n \n \n No\n \n \n \n \n taskService\n \n \n TaskService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n addLessons\n \n \n \n \n \n \n \n addLessons(builder: CommonCartridgeFileBuilder, version: CommonCartridgeVersion, courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n builder\n \n CommonCartridgeFileBuilder\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n addTasks\n \n \n \n \n \n \n \n addTasks(builder: CommonCartridgeFileBuilder, version: CommonCartridgeVersion, courseId: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n builder\n \n CommonCartridgeFileBuilder\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n \n \n \n \n exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapContentToResource\n \n \n \n \n \n \n \n mapContentToResource(lessonId: string, content: IComponentProperties, version: CommonCartridgeVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonId\n \n string\n \n\n \n No\n \n\n\n \n \n content\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeResourceProps | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapCourseTeachersToCopyrightOwners\n \n \n \n \n \n \n \n mapCourseTeachersToCopyrightOwners(course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:130\n \n \n\n\n \n \n This method gets the course as parameter and maps the contained teacher names within the teachers Collection to a string.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n string\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n mapTaskToWebContentResource\n \n \n \n \n \n \n \n mapTaskToWebContentResource(task: Task, version: CommonCartridgeVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/common-cartridge-export.service.ts:138\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeWebContentResourceProps\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, EntityId, IComponentProperties, Task } from '@shared/domain';\nimport { LessonService } from '@src/modules/lesson/service';\nimport { ComponentType } from '@src/shared/domain/entity/lesson.entity';\nimport { TaskService } from '@src/modules/task/service';\nimport {\n\tCommonCartridgeFileBuilder,\n\tCommonCartridgeIntendedUseType,\n\tCommonCartridgeResourceType,\n\tCommonCartridgeVersion,\n\tICommonCartridgeResourceProps,\n\tICommonCartridgeWebContentResourceProps,\n} from '../common-cartridge';\nimport { CourseService } from './course.service';\nimport { createIdentifier } from '../common-cartridge/utils';\n\n@Injectable()\nexport class CommonCartridgeExportService {\n\tconstructor(\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly lessonService: LessonService,\n\t\tprivate readonly taskService: TaskService\n\t) {}\n\n\tasync exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion): Promise {\n\t\tconst course = await this.courseService.findById(courseId);\n\t\tconst builder = new CommonCartridgeFileBuilder({\n\t\t\tidentifier: createIdentifier(courseId),\n\t\t\ttitle: course.name,\n\t\t\tversion,\n\t\t\tcopyrightOwners: this.mapCourseTeachersToCopyrightOwners(course),\n\t\t\tcreationYear: course.createdAt.getFullYear().toString(),\n\t\t});\n\n\t\tawait this.addLessons(builder, version, courseId);\n\t\tawait this.addTasks(builder, version, courseId, userId);\n\n\t\treturn builder.build();\n\t}\n\n\tprivate async addLessons(\n\t\tbuilder: CommonCartridgeFileBuilder,\n\t\tversion: CommonCartridgeVersion,\n\t\tcourseId: EntityId\n\t): Promise {\n\t\tconst [lessons] = await this.lessonService.findByCourseIds([courseId]);\n\n\t\tlessons.forEach((lesson) => {\n\t\t\tconst organizationBuilder = builder.addOrganization({\n\t\t\t\tversion,\n\t\t\t\tidentifier: createIdentifier(lesson.id),\n\t\t\t\ttitle: lesson.name,\n\t\t\t\tresources: [],\n\t\t\t});\n\n\t\t\tlesson.contents.forEach((content) => {\n\t\t\t\tconst resourceProps = this.mapContentToResource(lesson.id, content, version);\n\t\t\t\tif (resourceProps) {\n\t\t\t\t\torganizationBuilder.addResourceToOrganization(resourceProps);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate async addTasks(\n\t\tbuilder: CommonCartridgeFileBuilder,\n\t\tversion: CommonCartridgeVersion,\n\t\tcourseId: EntityId,\n\t\tuserId: EntityId\n\t): Promise {\n\t\tconst [tasks] = await this.taskService.findBySingleParent(userId, courseId);\n\t\tconst organizationBuilder = builder.addOrganization({\n\t\t\tversion,\n\t\t\tidentifier: createIdentifier(),\n\t\t\t// FIXME: change the title for tasks organization\n\t\t\ttitle: '',\n\t\t\tresources: [],\n\t\t});\n\n\t\ttasks.forEach((task) => {\n\t\t\torganizationBuilder.addResourceToOrganization(this.mapTaskToWebContentResource(task, version));\n\t\t});\n\t}\n\n\tprivate mapContentToResource(\n\t\tlessonId: string,\n\t\tcontent: IComponentProperties,\n\t\tversion: CommonCartridgeVersion\n\t): ICommonCartridgeResourceProps | undefined {\n\t\tconst commonProps = {\n\t\t\tversion,\n\t\t\tidentifier: createIdentifier(content._id),\n\t\t\thref: `${createIdentifier(lessonId)}/${createIdentifier(content._id)}.html`,\n\t\t\ttitle: content.title,\n\t\t};\n\n\t\tif (content.component === ComponentType.TEXT) {\n\t\t\treturn {\n\t\t\t\tversion,\n\t\t\t\tidentifier: createIdentifier(content._id),\n\t\t\t\thref: `${createIdentifier(lessonId)}/${createIdentifier(content._id)}.html`,\n\t\t\t\ttitle: content.title,\n\t\t\t\ttype: CommonCartridgeResourceType.WEB_CONTENT,\n\t\t\t\tintendedUse: CommonCartridgeIntendedUseType.UNSPECIFIED,\n\t\t\t\thtml: `${content.title}${content.content.text}`,\n\t\t\t};\n\t\t}\n\n\t\tif (content.component === ComponentType.GEOGEBRA) {\n\t\t\tconst url = `https://www.geogebra.org/m/${content.content.materialId}`;\n\t\t\treturn version === CommonCartridgeVersion.V_1_3_0\n\t\t\t\t? { ...commonProps, type: CommonCartridgeResourceType.WEB_LINK_V3, url }\n\t\t\t\t: { ...commonProps, type: CommonCartridgeResourceType.WEB_LINK_V1, url };\n\t\t}\n\n\t\tif (content.component === ComponentType.ETHERPAD) {\n\t\t\treturn version === CommonCartridgeVersion.V_1_3_0\n\t\t\t\t? { ...commonProps, type: CommonCartridgeResourceType.WEB_LINK_V3, url: content.content.url }\n\t\t\t\t: { ...commonProps, type: CommonCartridgeResourceType.WEB_LINK_V1, url: content.content.url };\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * This method gets the course as parameter and maps the contained teacher names within the teachers Collection to a string.\n\t * @param Course\n\t * @return string\n\t * */\n\tprivate mapCourseTeachersToCopyrightOwners(course: Course): string {\n\t\tconst result = course.teachers\n\t\t\t.toArray()\n\t\t\t.map((teacher) => `${teacher.firstName} ${teacher.lastName}`)\n\t\t\t.reduce((previousTeachers, currentTeacher) => `${previousTeachers}, ${currentTeacher}`);\n\t\treturn result;\n\t}\n\n\tprivate mapTaskToWebContentResource(\n\t\ttask: Task,\n\t\tversion: CommonCartridgeVersion\n\t): ICommonCartridgeWebContentResourceProps {\n\t\tconst taskIdentifier = createIdentifier(task.id);\n\t\treturn {\n\t\t\tversion,\n\t\t\tidentifier: taskIdentifier,\n\t\t\thref: `${taskIdentifier}/${taskIdentifier}.html`,\n\t\t\ttitle: task.name,\n\t\t\ttype: CommonCartridgeResourceType.WEB_CONTENT,\n\t\t\thtml: `${task.name}${task.description}`,\n\t\t\tintendedUse:\n\t\t\t\tversion === CommonCartridgeVersion.V_1_1_0\n\t\t\t\t\t? CommonCartridgeIntendedUseType.UNSPECIFIED\n\t\t\t\t\t: CommonCartridgeIntendedUseType.ASSIGNMENT,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeFileBuilder.html":{"url":"classes/CommonCartridgeFileBuilder.html","title":"class - CommonCartridgeFileBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeFileBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeFileBuilder\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n organizations\n \n \n Private\n Readonly\n resources\n \n \n Private\n Readonly\n xmlBuilder\n \n \n Private\n Readonly\n zipBuilder\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n addOrganization\n \n \n addResourceToFile\n \n \n Async\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(options: ICommonCartridgeFileBuilderOptions)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:69\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n \n ICommonCartridgeFileBuilderOptions\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n organizations\n \n \n \n \n \n \n Default value : new Array()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:67\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n resources\n \n \n \n \n \n \n Default value : new Array()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n xmlBuilder\n \n \n \n \n \n \n Default value : new Builder()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n zipBuilder\n \n \n \n \n \n \n Default value : new AdmZip()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:65\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n addOrganization\n \n \n \n \n \n \naddOrganization(props: ICommonCartridgeOrganizationProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeOrganizationProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeOrganizationBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addResourceToFile\n \n \n \n \n \n \naddResourceToFile(props: ICommonCartridgeResourceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeResourceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeFileBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n build\n \n \n \n \n \n \n \n build()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:88\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import AdmZip from 'adm-zip';\nimport { Builder } from 'xml2js';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeManifestElement } from './common-cartridge-manifest-element';\nimport {\n\tCommonCartridgeResourceItemElement,\n\tICommonCartridgeResourceProps,\n} from './common-cartridge-resource-item-element';\nimport {\n\tCommonCartridgeOrganizationItemElement,\n\tICommonCartridgeOrganizationProps,\n} from './common-cartridge-organization-item-element';\n\nexport type ICommonCartridgeFileBuilderOptions = {\n\tidentifier: string;\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport interface ICommonCartridgeOrganizationBuilder {\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder;\n}\n\nexport interface ICommonCartridgeFileBuilder {\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder;\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder;\n\n\tbuild(): Promise;\n}\n\nclass CommonCartridgeOrganizationBuilder implements ICommonCartridgeOrganizationBuilder {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeOrganizationProps,\n\t\tprivate readonly xmlBuilder: Builder,\n\t\tprivate readonly zipBuilder: AdmZip\n\t) {}\n\n\tget organization(): ICommonCartridgeElement {\n\t\treturn new CommonCartridgeOrganizationItemElement(this.props);\n\t}\n\n\tget resources(): ICommonCartridgeElement[] {\n\t\treturn this.props.resources.map(\n\t\t\t(resourceProps) => new CommonCartridgeResourceItemElement(resourceProps, this.xmlBuilder)\n\t\t);\n\t}\n\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst newResource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tthis.props.resources.push(props);\n\t\tif (!newResource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(newResource.content()));\n\t\t}\n\t\treturn this;\n\t}\n}\n\nexport class CommonCartridgeFileBuilder implements ICommonCartridgeFileBuilder {\n\tprivate readonly xmlBuilder = new Builder();\n\n\tprivate readonly zipBuilder = new AdmZip();\n\n\tprivate readonly organizations = new Array();\n\n\tprivate readonly resources = new Array();\n\n\tconstructor(private readonly options: ICommonCartridgeFileBuilderOptions) {}\n\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst organizationBuilder = new CommonCartridgeOrganizationBuilder(props, this.xmlBuilder, this.zipBuilder);\n\t\tthis.organizations.push(organizationBuilder);\n\t\treturn organizationBuilder;\n\t}\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder {\n\t\tconst resource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tif (!resource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(resource.content()));\n\t\t}\n\t\tthis.resources.push(resource);\n\t\treturn this;\n\t}\n\n\tasync build(): Promise {\n\t\tconst organizations = this.organizations.map((organization) => organization.organization);\n\t\tconst resources = this.organizations.flatMap((organization) => organization.resources).concat(this.resources);\n\t\tconst manifest = this.xmlBuilder.buildObject(\n\t\t\tnew CommonCartridgeManifestElement(\n\t\t\t\t{\n\t\t\t\t\tidentifier: this.options.identifier,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: this.options.title,\n\t\t\t\t\tcopyrightOwners: this.options.copyrightOwners,\n\t\t\t\t\tcreationYear: this.options.creationYear,\n\t\t\t\t\tversion: this.options.version,\n\t\t\t\t},\n\t\t\t\torganizations,\n\t\t\t\tresources\n\t\t\t).transform()\n\t\t);\n\t\tthis.zipBuilder.addFile('imsmanifest.xml', Buffer.from(manifest));\n\t\treturn this.zipBuilder.toBufferPromise();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeLtiResource.html":{"url":"classes/CommonCartridgeLtiResource.html","title":"class - CommonCartridgeLtiResource","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeLtiResource\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n ICommonCartridgeFile\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n canInline\n \n \n content\n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeLtiResourceProps, xmlBuilder: Builder)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeLtiResourceProps\n \n \n \n No\n \n \n \n \n xmlBuilder\n \n \n Builder\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts:19\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts:23\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-lti-resource.ts:81\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Builder } from 'xml2js';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeFile } from './common-cartridge-file.interface';\nimport { CommonCartridgeResourceType, CommonCartridgeVersion } from './common-cartridge-enums';\n\nexport type ICommonCartridgeLtiResourceProps = {\n\ttype: CommonCartridgeResourceType.LTI;\n\tversion: CommonCartridgeVersion;\n\tidentifier: string;\n\thref: string;\n\ttitle: string;\n\tdescription?: string;\n\turl: string;\n};\n\nexport class CommonCartridgeLtiResource implements ICommonCartridgeElement, ICommonCartridgeFile {\n\tconstructor(private readonly props: ICommonCartridgeLtiResourceProps, private readonly xmlBuilder: Builder) {}\n\n\tcanInline(): boolean {\n\t\treturn false;\n\t}\n\n\tcontent(): string {\n\t\tconst commonObject = {\n\t\t\tcartridge_basiclti_link: {\n\t\t\t\t$: {\n\t\t\t\t\txmlns: '',\n\t\t\t\t\t'xmlns:blti': '',\n\t\t\t\t\t'xmlns:lticm': '',\n\t\t\t\t\t'xmlns:lticp': '',\n\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t'xsi:schemaLocation': '',\n\t\t\t\t},\n\t\t\t\tblti: {\n\t\t\t\t\ttitle: this.props.title,\n\t\t\t\t\tdescription: this.props.description,\n\t\t\t\t\tlaunch_url: this.props.url,\n\t\t\t\t\tsecure_launch_url: this.props.url,\n\t\t\t\t\tcartridge_bundle: {\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\tidentifierref: 'BLTI001_Bundle',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcartridge_icon: {\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\tidentifierref: 'BLTI001_Icon',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tswitch (this.props.version) {\n\t\t\tcase CommonCartridgeVersion.V_1_3_0:\n\t\t\t\tcommonObject.cartridge_basiclti_link.$.xmlns = 'http://www.imsglobal.org/xsd/imslticc_v1p3';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:blti'] = 'http://www.imsglobal.org/xsd/imsbasiclti_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:lticm'] = 'http://www.imsglobal.org/xsd/imslticm_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:lticp'] = 'http://www.imsglobal.org/xsd/imslticp_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xsi:schemaLocation'] =\n\t\t\t\t\t'http://www.imsglobal.org/xsd/imslticc_v1p3 http://www.imsglobal.org/xsd/imslticc_v1p3.xsd' +\n\t\t\t\t\t'http://www.imsglobal.org/xsd/imslticp_v1p0 imslticp_v1p0.xsd' +\n\t\t\t\t\t'http://www.imsglobal.org/xsd/imslticm_v1p0 imslticm_v1p0.xsd' +\n\t\t\t\t\t'http://www.imsglobal.org/xsd/imsbasiclti_v1p0 imsbasiclti_v1p0p1.xsd\"';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcommonObject.cartridge_basiclti_link.$.xmlns = '/xsd/imslticc_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:blti'] = '/xsd/imsbasiclti_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:lticm'] = '/xsd/imslticm_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xmlns:lticp'] = '/xsd/imslticp_v1p0';\n\t\t\t\tcommonObject.cartridge_basiclti_link.$['xsi:schemaLocation'] =\n\t\t\t\t\t'/xsd/imslticc_v1p0 /xsd/lti/ltiv1p0/imslticc_v1p0.xsd' +\n\t\t\t\t\t'/xsd/imsbasiclti_v1p0 /xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd' +\n\t\t\t\t\t'/xsd/imslticm_v1p0 /xsd/lti/ltiv1p0/imslticm_v1p0.xsd' +\n\t\t\t\t\t'/xsd/imslticp_v1p0 /xsd/lti/ltiv1p0/imslticp_v1p0.xsd\"';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn this.xmlBuilder.buildObject(commonObject);\n\t}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\t$: {\n\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\ttype: this.props.type,\n\t\t\t},\n\t\t\tfile: {\n\t\t\t\t$: {\n\t\t\t\t\thref: this.props.href,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeManifestElement.html":{"url":"classes/CommonCartridgeManifestElement.html","title":"class - CommonCartridgeManifestElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeManifestElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-manifest-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeManifestProps, metadataProps: ICommonCartridgeMetadataProps, organizations: ICommonCartridgeElement[], resources: ICommonCartridgeElement[])\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-manifest-element.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeManifestProps\n \n \n \n No\n \n \n \n \n metadataProps\n \n \n ICommonCartridgeMetadataProps\n \n \n \n No\n \n \n \n \n organizations\n \n \n ICommonCartridgeElement[]\n \n \n \n No\n \n \n \n \n resources\n \n \n ICommonCartridgeElement[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-manifest-element.ts:19\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeMetadataElement, ICommonCartridgeMetadataProps } from './common-cartridge-metadata-element';\nimport { CommonCartridgeOrganizationWrapperElement } from './common-cartridge-organization-wrapper-element';\nimport { CommonCartridgeResourceWrapperElement } from './common-cartridge-resource-wrapper-element';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\n\nexport type ICommonCartridgeManifestProps = {\n\tidentifier: string;\n};\n\nexport class CommonCartridgeManifestElement implements ICommonCartridgeElement {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeManifestProps,\n\t\tprivate readonly metadataProps: ICommonCartridgeMetadataProps,\n\t\tprivate readonly organizations: ICommonCartridgeElement[],\n\t\tprivate readonly resources: ICommonCartridgeElement[]\n\t) {}\n\n\ttransform(): Record {\n\t\tconst versionNumber = this.metadataProps.version;\n\t\tswitch (versionNumber) {\n\t\t\tcase CommonCartridgeVersion.V_1_3_0:\n\t\t\t\treturn {\n\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\t\t\t\txmlns: 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',\n\t\t\t\t\t\t\t'xmlns:mnf': 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',\n\t\t\t\t\t\t\t'xmlns:res': 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',\n\t\t\t\t\t\t\t'xmlns:ext': 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2',\n\t\t\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t\t\t'xsi:schemaLocation':\n\t\t\t\t\t\t\t\t'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lomresource_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1 http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lommanifest_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p3/imscp_extensionv1p2 http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_cpextensionv1p2_v1p0.xsd',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmetadata: new CommonCartridgeMetadataElement(this.metadataProps).transform(),\n\t\t\t\t\t\torganizations: new CommonCartridgeOrganizationWrapperElement(this.organizations).transform(),\n\t\t\t\t\t\tresources: new CommonCartridgeResourceWrapperElement(this.resources).transform(),\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\tdefault:\n\t\t\t\treturn {\n\t\t\t\t\tmanifest: {\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\t\t\t\txmlns: 'http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1',\n\t\t\t\t\t\t\t'xmlns:mnf': 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/manifest',\n\t\t\t\t\t\t\t'xmlns:res': 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource',\n\t\t\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t\t\t'xsi:schemaLocation':\n\t\t\t\t\t\t\t\t'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource http://www.imsglobal.org/profile/cc/ccv1p1/LOM/ccv1p1_lomresource_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1 http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd ' +\n\t\t\t\t\t\t\t\t'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/manifest http://www.imsglobal.org/profile/cc/ccv1p1/LOM/ccv1p1_lommanifest_v1p0.xsd ',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmetadata: new CommonCartridgeMetadataElement(this.metadataProps).transform(),\n\t\t\t\t\t\torganizations: new CommonCartridgeOrganizationWrapperElement(this.organizations).transform(),\n\t\t\t\t\t\tresources: new CommonCartridgeResourceWrapperElement(this.resources).transform(),\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeMetadataElement.html":{"url":"classes/CommonCartridgeMetadataElement.html","title":"class - CommonCartridgeMetadataElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeMetadataElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-metadata-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeMetadataProps)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-metadata-element.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeMetadataProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-metadata-element.ts:14\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\n\nexport type ICommonCartridgeMetadataProps = {\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport class CommonCartridgeMetadataElement implements ICommonCartridgeElement {\n\tconstructor(private readonly props: ICommonCartridgeMetadataProps) {}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\tschema: 'IMS Common Cartridge',\n\t\t\tschemaversion: this.props.version,\n\t\t\t'mnf:lom': {\n\t\t\t\t'mnf:general': {\n\t\t\t\t\t'mnf:title': {\n\t\t\t\t\t\t'mnf:string': this.props.title,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'mnf:rights': {\n\t\t\t\t\t'mnf:copyrightAndOtherRestrictions': {\n\t\t\t\t\t\t'mnf:value': 'yes',\n\t\t\t\t\t},\n\t\t\t\t\t'mnf:description': {\n\t\t\t\t\t\t'mnf:string': `${this.props.creationYear} ${this.props.copyrightOwners}`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeOrganizationBuilder.html":{"url":"classes/CommonCartridgeOrganizationBuilder.html","title":"class - CommonCartridgeOrganizationBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeOrganizationBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeOrganizationBuilder\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n addResourceToOrganization\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n organization\n \n \n resources\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeOrganizationProps, xmlBuilder: Builder, zipBuilder: AdmZip)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:35\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeOrganizationProps\n \n \n \n No\n \n \n \n \n xmlBuilder\n \n \n Builder\n \n \n \n No\n \n \n \n \n zipBuilder\n \n \n AdmZip\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n addResourceToOrganization\n \n \n \n \n \n \naddResourceToOrganization(props: ICommonCartridgeResourceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeResourceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeOrganizationBuilder\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n organization\n \n \n\n \n \n getorganization()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:42\n \n \n\n \n \n \n \n \n \n \n resources\n \n \n\n \n \n getresources()\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:46\n \n \n\n \n \n\n \n\n\n \n import AdmZip from 'adm-zip';\nimport { Builder } from 'xml2js';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeManifestElement } from './common-cartridge-manifest-element';\nimport {\n\tCommonCartridgeResourceItemElement,\n\tICommonCartridgeResourceProps,\n} from './common-cartridge-resource-item-element';\nimport {\n\tCommonCartridgeOrganizationItemElement,\n\tICommonCartridgeOrganizationProps,\n} from './common-cartridge-organization-item-element';\n\nexport type ICommonCartridgeFileBuilderOptions = {\n\tidentifier: string;\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport interface ICommonCartridgeOrganizationBuilder {\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder;\n}\n\nexport interface ICommonCartridgeFileBuilder {\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder;\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder;\n\n\tbuild(): Promise;\n}\n\nclass CommonCartridgeOrganizationBuilder implements ICommonCartridgeOrganizationBuilder {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeOrganizationProps,\n\t\tprivate readonly xmlBuilder: Builder,\n\t\tprivate readonly zipBuilder: AdmZip\n\t) {}\n\n\tget organization(): ICommonCartridgeElement {\n\t\treturn new CommonCartridgeOrganizationItemElement(this.props);\n\t}\n\n\tget resources(): ICommonCartridgeElement[] {\n\t\treturn this.props.resources.map(\n\t\t\t(resourceProps) => new CommonCartridgeResourceItemElement(resourceProps, this.xmlBuilder)\n\t\t);\n\t}\n\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst newResource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tthis.props.resources.push(props);\n\t\tif (!newResource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(newResource.content()));\n\t\t}\n\t\treturn this;\n\t}\n}\n\nexport class CommonCartridgeFileBuilder implements ICommonCartridgeFileBuilder {\n\tprivate readonly xmlBuilder = new Builder();\n\n\tprivate readonly zipBuilder = new AdmZip();\n\n\tprivate readonly organizations = new Array();\n\n\tprivate readonly resources = new Array();\n\n\tconstructor(private readonly options: ICommonCartridgeFileBuilderOptions) {}\n\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst organizationBuilder = new CommonCartridgeOrganizationBuilder(props, this.xmlBuilder, this.zipBuilder);\n\t\tthis.organizations.push(organizationBuilder);\n\t\treturn organizationBuilder;\n\t}\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder {\n\t\tconst resource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tif (!resource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(resource.content()));\n\t\t}\n\t\tthis.resources.push(resource);\n\t\treturn this;\n\t}\n\n\tasync build(): Promise {\n\t\tconst organizations = this.organizations.map((organization) => organization.organization);\n\t\tconst resources = this.organizations.flatMap((organization) => organization.resources).concat(this.resources);\n\t\tconst manifest = this.xmlBuilder.buildObject(\n\t\t\tnew CommonCartridgeManifestElement(\n\t\t\t\t{\n\t\t\t\t\tidentifier: this.options.identifier,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: this.options.title,\n\t\t\t\t\tcopyrightOwners: this.options.copyrightOwners,\n\t\t\t\t\tcreationYear: this.options.creationYear,\n\t\t\t\t\tversion: this.options.version,\n\t\t\t\t},\n\t\t\t\torganizations,\n\t\t\t\tresources\n\t\t\t).transform()\n\t\t);\n\t\tthis.zipBuilder.addFile('imsmanifest.xml', Buffer.from(manifest));\n\t\treturn this.zipBuilder.toBufferPromise();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeOrganizationItemElement.html":{"url":"classes/CommonCartridgeOrganizationItemElement.html","title":"class - CommonCartridgeOrganizationItemElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeOrganizationItemElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-item-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeOrganizationProps)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-item-element.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeOrganizationProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-item-element.ts:15\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeResourceProps } from './common-cartridge-resource-item-element';\nimport { createIdentifier } from './utils';\n\nexport type ICommonCartridgeOrganizationProps = {\n\tidentifier: string;\n\ttitle: string;\n\tversion: string;\n\tresources: ICommonCartridgeResourceProps[];\n};\n\nexport class CommonCartridgeOrganizationItemElement implements ICommonCartridgeElement {\n\tconstructor(private readonly props: ICommonCartridgeOrganizationProps) {}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\t$: {\n\t\t\t\tidentifier: this.props.identifier,\n\t\t\t},\n\t\t\ttitle: this.props.title,\n\t\t\titem: this.props.resources.map((content) => {\n\t\t\t\treturn {\n\t\t\t\t\t$: {\n\t\t\t\t\t\tidentifier: createIdentifier(),\n\t\t\t\t\t\tidentifierref: content.identifier,\n\t\t\t\t\t},\n\t\t\t\t\ttitle: content.title,\n\t\t\t\t};\n\t\t\t}),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeOrganizationWrapperElement.html":{"url":"classes/CommonCartridgeOrganizationWrapperElement.html","title":"class - CommonCartridgeOrganizationWrapperElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeOrganizationWrapperElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-wrapper-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(organizationElements: ICommonCartridgeElement[])\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-wrapper-element.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n organizationElements\n \n \n ICommonCartridgeElement[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-organization-wrapper-element.ts:6\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\n\nexport class CommonCartridgeOrganizationWrapperElement implements ICommonCartridgeElement {\n\tconstructor(private readonly organizationElements: ICommonCartridgeElement[]) {}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\torganization: [\n\t\t\t\t{\n\t\t\t\t\t$: {\n\t\t\t\t\t\tidentifier: 'org-1',\n\t\t\t\t\t\tstructure: 'rooted-hierarchy',\n\t\t\t\t\t},\n\t\t\t\t\titem: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\t\tidentifier: 'LearningModules',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\titem: this.organizationElements.map((organizationElement) => organizationElement.transform()),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeResourceItemElement.html":{"url":"classes/CommonCartridgeResourceItemElement.html","title":"class - CommonCartridgeResourceItemElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeResourceItemElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n ICommonCartridgeFile\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n inner\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n canInline\n \n \n content\n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeResourceProps, xmlBuilder: Builder)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeResourceProps\n \n \n \n No\n \n \n \n \n xmlBuilder\n \n \n Builder\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n inner\n \n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:21\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:38\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:42\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-item-element.ts:46\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Builder } from 'xml2js';\nimport { CommonCartridgeLtiResource, ICommonCartridgeLtiResourceProps } from './common-cartridge-lti-resource';\nimport {\n\tCommonCartridgeWebContentResource,\n\tICommonCartridgeWebContentResourceProps,\n} from './common-cartridge-web-content-resource';\nimport {\n\tCommonCartridgeWebLinkResourceElement,\n\tICommonCartridgeWebLinkResourceProps,\n} from './common-cartridge-web-link-resource';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeFile } from './common-cartridge-file.interface';\nimport { CommonCartridgeResourceType } from './common-cartridge-enums';\n\nexport type ICommonCartridgeResourceProps =\n\t| ICommonCartridgeLtiResourceProps\n\t| ICommonCartridgeWebContentResourceProps\n\t| ICommonCartridgeWebLinkResourceProps;\n\nexport class CommonCartridgeResourceItemElement implements ICommonCartridgeElement, ICommonCartridgeFile {\n\tprivate readonly inner: ICommonCartridgeElement & ICommonCartridgeFile;\n\n\tconstructor(props: ICommonCartridgeResourceProps, xmlBuilder: Builder) {\n\t\tif (props.type === CommonCartridgeResourceType.LTI) {\n\t\t\tthis.inner = new CommonCartridgeLtiResource(props, xmlBuilder);\n\t\t} else if (props.type === CommonCartridgeResourceType.WEB_CONTENT) {\n\t\t\tthis.inner = new CommonCartridgeWebContentResource(props);\n\t\t} else if (\n\t\t\tprops.type === CommonCartridgeResourceType.WEB_LINK_V1 ||\n\t\t\tprops.type === CommonCartridgeResourceType.WEB_LINK_V3\n\t\t) {\n\t\t\tthis.inner = new CommonCartridgeWebLinkResourceElement(props, xmlBuilder);\n\t\t} else {\n\t\t\tthrow new Error('Resource type is unknown!');\n\t\t}\n\t}\n\n\tcanInline(): boolean {\n\t\treturn this.inner.canInline();\n\t}\n\n\tcontent(): string {\n\t\treturn this.inner.content();\n\t}\n\n\ttransform(): Record {\n\t\treturn this.inner.transform();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeResourceWrapperElement.html":{"url":"classes/CommonCartridgeResourceWrapperElement.html","title":"class - CommonCartridgeResourceWrapperElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeResourceWrapperElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-wrapper-element.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resourceElements: ICommonCartridgeElement[])\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-wrapper-element.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resourceElements\n \n \n ICommonCartridgeElement[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-resource-wrapper-element.ts:6\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\n\nexport class CommonCartridgeResourceWrapperElement implements ICommonCartridgeElement {\n\tconstructor(private readonly resourceElements: ICommonCartridgeElement[]) {}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\tresource: this.resourceElements.map((resourceElement) => resourceElement.transform()),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeWebContentResource.html":{"url":"classes/CommonCartridgeWebContentResource.html","title":"class - CommonCartridgeWebContentResource","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeWebContentResource\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n ICommonCartridgeFile\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n canInline\n \n \n content\n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeWebContentResourceProps)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeWebContentResourceProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts:22\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts:26\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-content-resource.ts:30\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeFile } from './common-cartridge-file.interface';\nimport {\n\tCommonCartridgeIntendedUseType,\n\tCommonCartridgeResourceType,\n\tCommonCartridgeVersion,\n} from './common-cartridge-enums';\n\nexport type ICommonCartridgeWebContentResourceProps = {\n\ttype: CommonCartridgeResourceType.WEB_CONTENT;\n\tversion: CommonCartridgeVersion;\n\tidentifier: string;\n\thref: string;\n\ttitle: string;\n\thtml: string;\n\tintendedUse?: CommonCartridgeIntendedUseType;\n};\n\nexport class CommonCartridgeWebContentResource implements ICommonCartridgeElement, ICommonCartridgeFile {\n\tconstructor(private readonly props: ICommonCartridgeWebContentResourceProps) {}\n\n\tcanInline(): boolean {\n\t\treturn false;\n\t}\n\n\tcontent(): string {\n\t\treturn this.props.html;\n\t}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\t$: {\n\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\ttype: this.props.type,\n\t\t\t\tintendeduse: this.props.intendedUse ?? CommonCartridgeIntendedUseType.UNSPECIFIED,\n\t\t\t},\n\t\t\tfile: {\n\t\t\t\t$: {\n\t\t\t\t\thref: this.props.href,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CommonCartridgeWebLinkResourceElement.html":{"url":"classes/CommonCartridgeWebLinkResourceElement.html","title":"class - CommonCartridgeWebLinkResourceElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CommonCartridgeWebLinkResourceElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts\n \n\n\n\n\n \n Implements\n \n \n ICommonCartridgeElement\n ICommonCartridgeFile\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n canInline\n \n \n content\n \n \n transform\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ICommonCartridgeWebLinkResourceProps, xmlBuilder: Builder)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ICommonCartridgeWebLinkResourceProps\n \n \n \n No\n \n \n \n \n xmlBuilder\n \n \n Builder\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts:18\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts:22\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-web-link-resource.ts:61\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Builder } from 'xml2js';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { ICommonCartridgeFile } from './common-cartridge-file.interface';\nimport { CommonCartridgeResourceType, CommonCartridgeVersion } from './common-cartridge-enums';\n\nexport type ICommonCartridgeWebLinkResourceProps = {\n\ttype: CommonCartridgeResourceType.WEB_LINK_V1 | CommonCartridgeResourceType.WEB_LINK_V3;\n\tversion: CommonCartridgeVersion;\n\tidentifier: string;\n\thref: string;\n\ttitle: string;\n\turl: string;\n};\n\nexport class CommonCartridgeWebLinkResourceElement implements ICommonCartridgeElement, ICommonCartridgeFile {\n\tconstructor(private readonly props: ICommonCartridgeWebLinkResourceProps, private readonly xmlBuilder: Builder) {}\n\n\tcanInline(): boolean {\n\t\treturn false;\n\t}\n\n\tcontent(): string {\n\t\tconst commonTags = {\n\t\t\ttitle: this.props.title,\n\t\t\turl: {\n\t\t\t\t$: {\n\t\t\t\t\thref: this.props.url,\n\t\t\t\t\ttarget: '_self',\n\t\t\t\t\twindowFeatures: 'width=100, height=100',\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tswitch (this.props.version) {\n\t\t\tcase CommonCartridgeVersion.V_1_3_0:\n\t\t\t\treturn this.xmlBuilder.buildObject({\n\t\t\t\t\twebLink: {\n\t\t\t\t\t\t...commonTags,\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\txmlns: 'http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3',\n\t\t\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t\t\t'xsi:schemaLocation':\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p3/imswl_v1p3 http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imswl_v1p3.xsd',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\tdefault:\n\t\t\t\treturn this.xmlBuilder.buildObject({\n\t\t\t\t\twebLink: {\n\t\t\t\t\t\t...commonTags,\n\t\t\t\t\t\t$: {\n\t\t\t\t\t\t\txmlns: 'http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1',\n\t\t\t\t\t\t\t'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t\t\t\t\t\t\t'xsi:schemaLocation':\n\t\t\t\t\t\t\t\t'http://www.imsglobal.org/xsd/imsccv1p1/imswl_v1p1 https://www.imsglobal.org/sites/default/files/profile/cc/ccv1p1/ccv1p1_imswl_v1p1.xsd',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t}\n\t}\n\n\ttransform(): Record {\n\t\treturn {\n\t\t\t$: {\n\t\t\t\tidentifier: this.props.identifier,\n\t\t\t\ttype: this.props.type,\n\t\t\t},\n\t\t\tfile: {\n\t\t\t\t$: {\n\t\t\t\t\thref: this.props.href,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CommonToolModule.html":{"url":"modules/CommonToolModule.html","title":"module - CommonToolModule","body":"\n \n\n\n\n\n Modules\n CommonToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CommonToolModule\n\n\n\ncluster_CommonToolModule_providers\n\n\n\ncluster_CommonToolModule_imports\n\n\n\ncluster_CommonToolModule_exports\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\n\n\nCommonToolModule\n\nCommonToolModule\n\nCommonToolModule -->\n\nLegacySchoolModule->CommonToolModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCommonToolModule -->\n\nLoggerModule->CommonToolModule\n\n\n\n\n\nCommonToolService \n\nCommonToolService \n\nCommonToolService -->\n\nCommonToolModule->CommonToolService \n\n\n\n\n\nCommonToolValidationService \n\nCommonToolValidationService \n\nCommonToolValidationService -->\n\nCommonToolModule->CommonToolValidationService \n\n\n\n\n\nContextExternalToolRepo \n\nContextExternalToolRepo \n\nContextExternalToolRepo -->\n\nCommonToolModule->ContextExternalToolRepo \n\n\n\n\n\nSchoolExternalToolRepo \n\nSchoolExternalToolRepo \n\nSchoolExternalToolRepo -->\n\nCommonToolModule->SchoolExternalToolRepo \n\n\n\n\n\nToolPermissionHelper \n\nToolPermissionHelper \n\nToolPermissionHelper -->\n\nCommonToolModule->ToolPermissionHelper \n\n\n\n\n\nCommonToolService\n\nCommonToolService\n\nCommonToolModule -->\n\nCommonToolService->CommonToolModule\n\n\n\n\n\nCommonToolValidationService\n\nCommonToolValidationService\n\nCommonToolModule -->\n\nCommonToolValidationService->CommonToolModule\n\n\n\n\n\nContextExternalToolRepo\n\nContextExternalToolRepo\n\nCommonToolModule -->\n\nContextExternalToolRepo->CommonToolModule\n\n\n\n\n\nSchoolExternalToolRepo\n\nSchoolExternalToolRepo\n\nCommonToolModule -->\n\nSchoolExternalToolRepo->CommonToolModule\n\n\n\n\n\nToolPermissionHelper\n\nToolPermissionHelper\n\nCommonToolModule -->\n\nToolPermissionHelper->CommonToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/common/common-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CommonToolService\n \n \n CommonToolValidationService\n \n \n ContextExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n ToolPermissionHelper\n \n \n \n \n Imports\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n CommonToolService\n \n \n CommonToolValidationService\n \n \n ContextExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n ToolPermissionHelper\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { ContextExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { CommonToolService, CommonToolValidationService } from './service';\nimport { ToolPermissionHelper } from './uc/tool-permission-helper';\n\n@Module({\n\timports: [LoggerModule, forwardRef(() => AuthorizationModule), LegacySchoolModule],\n\t// TODO: make deletion of entities cascading, adjust ExternalToolService.deleteExternalTool and remove the repos from here\n\tproviders: [\n\t\tCommonToolService,\n\t\tCommonToolValidationService,\n\t\tToolPermissionHelper,\n\t\tSchoolExternalToolRepo,\n\t\tContextExternalToolRepo,\n\t],\n\texports: [\n\t\tCommonToolService,\n\t\tCommonToolValidationService,\n\t\tToolPermissionHelper,\n\t\tSchoolExternalToolRepo,\n\t\tContextExternalToolRepo,\n\t],\n})\nexport class CommonToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CommonToolService.html":{"url":"injectables/CommonToolService.html","title":"injectable - CommonToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CommonToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/service/common-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n determineToolConfigurationStatus\n \n \n Private\n isLatest\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n determineToolConfigurationStatus\n \n \n \n \n \n \ndetermineToolConfigurationStatus(externalTool: ExternalTool, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolConfigurationStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isLatest\n \n \n \n \n \n \n \n isLatest(tool1: ToolVersion, tool2: ToolVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool1\n \n ToolVersion\n \n\n \n No\n \n\n\n \n \n tool2\n \n ToolVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ToolConfigurationStatus } from '../enum';\nimport { ToolVersion } from '../interface';\n\n@Injectable()\nexport class CommonToolService {\n\tdetermineToolConfigurationStatus(\n\t\texternalTool: ExternalTool,\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): ToolConfigurationStatus {\n\t\tif (\n\t\t\tthis.isLatest(schoolExternalTool, externalTool) &&\n\t\t\tthis.isLatest(contextExternalTool, schoolExternalTool) &&\n\t\t\tthis.isLatest(contextExternalTool, externalTool)\n\t\t) {\n\t\t\treturn ToolConfigurationStatus.LATEST;\n\t\t}\n\n\t\treturn ToolConfigurationStatus.OUTDATED;\n\t}\n\n\tprivate isLatest(tool1: ToolVersion, tool2: ToolVersion): boolean {\n\t\treturn tool1.getVersion() >= tool2.getVersion();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CommonToolValidationService.html":{"url":"injectables/CommonToolValidationService.html","title":"injectable - CommonToolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CommonToolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/service/common-tool-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n typeCheckers\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n checkCustomParameterEntries\n \n \n Public\n checkForDuplicateParameters\n \n \n Private\n checkOptionalParameter\n \n \n Private\n checkParameterRegex\n \n \n Private\n checkParameterType\n \n \n Private\n checkScopeAndValidateParameter\n \n \n Public\n isValueValidForType\n \n \n Private\n validateParameter\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n checkCustomParameterEntries\n \n \n \n \n \n \n \n checkCustomParameterEntries(loadedExternalTool: ExternalTool, validatableTool: ValidatableTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loadedExternalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n validatableTool\n \n ValidatableTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n checkForDuplicateParameters\n \n \n \n \n \n \n \n checkForDuplicateParameters(validatableTool: ValidatableTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n validatableTool\n \n ValidatableTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkOptionalParameter\n \n \n \n \n \n \n \n checkOptionalParameter(param: CustomParameter, foundEntry: CustomParameterEntry | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n foundEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkParameterRegex\n \n \n \n \n \n \n \n checkParameterRegex(foundEntry: CustomParameterEntry, param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:89\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n foundEntry\n \n CustomParameterEntry\n \n\n \n No\n \n\n\n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkParameterType\n \n \n \n \n \n \n \n checkParameterType(foundEntry: CustomParameterEntry, param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n foundEntry\n \n CustomParameterEntry\n \n\n \n No\n \n\n\n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkScopeAndValidateParameter\n \n \n \n \n \n \n \n checkScopeAndValidateParameter(validatableTool: ValidatableTool, param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n validatableTool\n \n ValidatableTool\n \n\n \n No\n \n\n\n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isValueValidForType\n \n \n \n \n \n \n \n isValueValidForType(type: CustomParameterType, val: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n CustomParameterType\n \n\n \n No\n \n\n\n \n \n val\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n validateParameter\n \n \n \n \n \n \n \n validateParameter(param: CustomParameter, foundEntry: CustomParameterEntry | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n foundEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n typeCheckers\n \n \n \n \n \n \n Default value : {\n\t\t[CustomParameterType.STRING]: () => true,\n\t\t[CustomParameterType.NUMBER]: (val: string | undefined) => !isNaN(Number(val)),\n\t\t[CustomParameterType.BOOLEAN]: (val: string | undefined) => val === 'true' || val === 'false',\n\t\t[CustomParameterType.AUTO_CONTEXTID]: () => false,\n\t\t[CustomParameterType.AUTO_CONTEXTNAME]: () => false,\n\t\t[CustomParameterType.AUTO_SCHOOLID]: () => false,\n\t\t[CustomParameterType.AUTO_SCHOOLNUMBER]: () => false,\n\t}\n \n \n \n \n Defined in apps/server/src/modules/tool/common/service/common-tool-validation.service.ts:14\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { isNaN } from 'lodash';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { CustomParameter, CustomParameterEntry } from '../domain';\nimport { CustomParameterScope, CustomParameterType } from '../enum';\n\nexport type ValidatableTool = SchoolExternalTool | ContextExternalTool;\n\n@Injectable()\nexport class CommonToolValidationService {\n\tprivate static typeCheckers: { [key in CustomParameterType]: (val: string) => boolean } = {\n\t\t[CustomParameterType.STRING]: () => true,\n\t\t[CustomParameterType.NUMBER]: (val: string | undefined) => !isNaN(Number(val)),\n\t\t[CustomParameterType.BOOLEAN]: (val: string | undefined) => val === 'true' || val === 'false',\n\t\t[CustomParameterType.AUTO_CONTEXTID]: () => false,\n\t\t[CustomParameterType.AUTO_CONTEXTNAME]: () => false,\n\t\t[CustomParameterType.AUTO_SCHOOLID]: () => false,\n\t\t[CustomParameterType.AUTO_SCHOOLNUMBER]: () => false,\n\t};\n\n\tpublic isValueValidForType(type: CustomParameterType, val: string): boolean {\n\t\tconst rule = CommonToolValidationService.typeCheckers[type];\n\n\t\tconst isValid: boolean = rule(val);\n\n\t\treturn isValid;\n\t}\n\n\tpublic checkForDuplicateParameters(validatableTool: ValidatableTool): void {\n\t\tconst caseInsensitiveNames: string[] = validatableTool.parameters.map(({ name }: CustomParameterEntry) =>\n\t\t\tname.toLowerCase()\n\t\t);\n\n\t\tconst uniqueNames: Set = new Set(caseInsensitiveNames);\n\t\tif (uniqueNames.size !== validatableTool.parameters.length) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_param_duplicate: The tool ${validatableTool.id ?? ''} contains multiple of the same custom parameters.`\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic checkCustomParameterEntries(loadedExternalTool: ExternalTool, validatableTool: ValidatableTool): void {\n\t\tif (loadedExternalTool.parameters) {\n\t\t\tfor (const param of loadedExternalTool.parameters) {\n\t\t\t\tthis.checkScopeAndValidateParameter(validatableTool, param);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate checkScopeAndValidateParameter(validatableTool: ValidatableTool, param: CustomParameter): void {\n\t\tconst foundEntry: CustomParameterEntry | undefined = validatableTool.parameters.find(\n\t\t\t({ name }: CustomParameterEntry): boolean => name.toLowerCase() === param.name.toLowerCase()\n\t\t);\n\n\t\tif (param.scope === CustomParameterScope.SCHOOL && validatableTool instanceof SchoolExternalTool) {\n\t\t\tthis.validateParameter(param, foundEntry);\n\t\t} else if (param.scope === CustomParameterScope.CONTEXT && validatableTool instanceof ContextExternalTool) {\n\t\t\tthis.validateParameter(param, foundEntry);\n\t\t}\n\t}\n\n\tprivate validateParameter(param: CustomParameter, foundEntry: CustomParameterEntry | undefined): void {\n\t\tthis.checkOptionalParameter(param, foundEntry);\n\t\tif (foundEntry) {\n\t\t\tthis.checkParameterType(foundEntry, param);\n\t\t\tthis.checkParameterRegex(foundEntry, param);\n\t\t}\n\t}\n\n\tprivate checkOptionalParameter(param: CustomParameter, foundEntry: CustomParameterEntry | undefined): void {\n\t\tif (!foundEntry?.value && !param.isOptional) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_param_required: The parameter with name ${param.name} is required but not found in the tool.`\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate checkParameterType(foundEntry: CustomParameterEntry, param: CustomParameter): void {\n\t\tif (foundEntry.value !== undefined && !this.isValueValidForType(param.type, foundEntry.value)) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_param_type_mismatch: The value of parameter with name ${foundEntry.name} should be of type ${param.type}.`\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate checkParameterRegex(foundEntry: CustomParameterEntry, param: CustomParameter): void {\n\t\tif (param.regex && !new RegExp(param.regex).test(foundEntry.value ?? '')) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_param_value_regex: The given entry for the parameter with name ${foundEntry.name} does not fit the regex.`\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ConsentRequestBody.html":{"url":"classes/ConsentRequestBody.html","title":"class - ConsentRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ConsentRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/consent-request.body.ts\n \n\n\n\n \n Extends\n \n \n OAuthRejectableBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n grant_scope\n \n \n \n \n \n Optional\n remember\n \n \n \n \n \n Optional\n remember_for\n \n \n \n \n \n Optional\n error\n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n Optional\n status_code\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n grant_scope\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsString({each: true})@IsOptional()@ApiProperty({description: 'The Oauth2 client id.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/consent-request.body.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n remember\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Remember, if set to true, tells the oauth provider to remember this consent authorization and reuse it if the same client asks the same user for the same, or a subset of, scope.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/consent-request.body.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n remember_for\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsInt()@IsOptional()@ApiProperty({description: 'RememberFor sets how long the consent authorization should be remembered for in seconds. If set to 0, the authorization will be remembered indefinitely.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/consent-request.body.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The error should follow the OAuth2 error format (e.g. invalid_request, login_required). Defaults to request_denied.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Debug contains information to help resolve the problem as a developer. Usually not exposed to the public but only in the server logs.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:23\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Description of the error in a human readable format.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:32\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Hint to help resolve the error.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:41\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n status_code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@IsOptional()@ApiProperty({description: 'Represents the HTTP status code of the error (e.g. 401 or 403). Defaults to 400.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:50\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsArray, IsBoolean, IsInt, IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { OAuthRejectableBody } from './oauth-rejectable.body';\n\nexport class ConsentRequestBody extends OAuthRejectableBody {\n\t@IsArray()\n\t@IsString({ each: true })\n\t@IsOptional()\n\t@ApiProperty({ description: 'The Oauth2 client id.', required: false, nullable: false })\n\tgrant_scope?: string[];\n\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Remember, if set to true, tells the oauth provider to remember this consent authorization and reuse it if the same client asks the same user for the same, or a subset of, scope.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tremember?: boolean;\n\n\t@IsInt()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'RememberFor sets how long the consent authorization should be remembered for in seconds. If set to 0, the authorization will be remembered indefinitely.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tremember_for?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ConsentResponse.html":{"url":"classes/ConsentResponse.html","title":"class - ConsentResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ConsentResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n acr\n \n \n \n \n \n \n Optional\n amr\n \n \n \n challenge\n \n \n \n \n Optional\n client\n \n \n \n \n Optional\n context\n \n \n \n \n Optional\n login_challenge\n \n \n \n \n Optional\n login_session_id\n \n \n \n \n Optional\n oidc_context\n \n \n \n \n Optional\n request_url\n \n \n \n \n \n \n Optional\n requested_access_token_audience\n \n \n \n \n \n \n Optional\n requested_scope\n \n \n \n \n Optional\n skip\n \n \n \n \n Optional\n subject\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consentResponse: ConsentResponse)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consentResponse\n \n \n ConsentResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n acr\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'ACR represents the Authentication AuthorizationContext Class Reference value for this authentication session'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n amr\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n challenge\n \n \n \n \n \n \n Type : string | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Is the id/authorization challenge of the consent authorization request. It is used to identify the session.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n client\n \n \n \n \n \n \n Type : OauthClientResponse\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n context\n \n \n \n \n \n \n Type : object\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n login_challenge\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'LoginChallenge is the login challenge this consent challenge belongs to.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n login_session_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'LoginSessionID is the login session ID.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n oidc_context\n \n \n \n \n \n \n Type : OidcContextResponse\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n request_url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'RequestUrl is the original OAuth 2.0 Authorization URL requested by the OAuth 2.0 client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n requested_access_token_audience\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n requested_scope\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The request scopes of the login request.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'Skip, if true, implies that the client has requested the same scopes from the same user previously.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n subject\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'Subject is the user id of the end-user that is authenticated.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent.response.ts:76\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsArray, IsOptional, IsString } from 'class-validator';\nimport { OidcContextResponse } from '@src/modules/oauth-provider/controller/dto/response/oidc-context.response';\nimport { OauthClientResponse } from '@src/modules/oauth-provider/controller/dto/response/oauth-client.response';\n\nexport class ConsentResponse {\n\tconstructor(consentResponse: ConsentResponse) {\n\t\tObject.assign(this, consentResponse);\n\t}\n\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'ACR represents the Authentication AuthorizationContext Class Reference value for this authentication session',\n\t})\n\tacr?: string;\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ required: false, nullable: false })\n\tamr?: string[];\n\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Is the id/authorization challenge of the consent authorization request. It is used to identify the session.',\n\t})\n\tchallenge: string | undefined;\n\n\t@IsOptional()\n\t@ApiProperty()\n\tclient?: OauthClientResponse;\n\n\t@IsOptional()\n\t@ApiProperty()\n\tcontext?: object;\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'LoginChallenge is the login challenge this consent challenge belongs to.' })\n\tlogin_challenge?: string;\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'LoginSessionID is the login session ID.' })\n\tlogin_session_id?: string;\n\n\t@IsOptional()\n\t@ApiProperty()\n\toidc_context?: OidcContextResponse;\n\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'RequestUrl is the original OAuth 2.0 Authorization URL requested by the OAuth 2.0 client.',\n\t})\n\trequest_url?: string;\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ required: false, nullable: false })\n\trequested_access_token_audience?: string[];\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The request scopes of the login request.', required: false, nullable: false })\n\trequested_scope?: string[];\n\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Skip, if true, implies that the client has requested the same scopes from the same user previously.',\n\t})\n\tskip?: boolean;\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'Subject is the user id of the end-user that is authenticated.' })\n\tsubject?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ConsentSessionResponse.html":{"url":"classes/ConsentSessionResponse.html","title":"class - ConsentSessionResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ConsentSessionResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n challenge\n \n \n \n \n Optional\n client_id\n \n \n \n Optional\n client_name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(clientId: string | undefined, clientName: string | undefined, challenge: string | undefined)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n clientName\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n challenge\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n challenge\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id/challenge of the consent authorization request.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n client_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'The id of the client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The name of the client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/consent-session.response.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsOptional } from 'class-validator';\n\nexport class ConsentSessionResponse {\n\tconstructor(clientId: string | undefined, clientName: string | undefined, challenge: string | undefined) {\n\t\tthis.client_id = clientId;\n\t\tthis.client_name = clientName;\n\t\tthis.challenge = challenge;\n\t}\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'The id of the client.' })\n\tclient_id?: string;\n\n\t@ApiProperty({ description: 'The name of the client.' })\n\tclient_name?: string;\n\n\t@ApiProperty({ description: 'The id/challenge of the consent authorization request.' })\n\tchallenge?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ConsoleWriterModule.html":{"url":"modules/ConsoleWriterModule.html","title":"module - ConsoleWriterModule","body":"\n \n\n\n\n\n Modules\n ConsoleWriterModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ConsoleWriterModule\n\n\n\ncluster_ConsoleWriterModule_exports\n\n\n\ncluster_ConsoleWriterModule_providers\n\n\n\n\nConsoleWriterService \n\nConsoleWriterService \n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\nConsoleWriterService -->\n\nConsoleWriterModule->ConsoleWriterService \n\n\n\n\n\nConsoleWriterService\n\nConsoleWriterService\n\nConsoleWriterModule -->\n\nConsoleWriterService->ConsoleWriterModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/console/console-writer/console-writer.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ConsoleWriterService\n \n \n \n \n Exports\n \n \n ConsoleWriterService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConsoleWriterService } from './console-writer.service';\n\n@Module({\n\tproviders: [ConsoleWriterService],\n\texports: [ConsoleWriterService],\n})\nexport class ConsoleWriterModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ConsoleWriterService.html":{"url":"injectables/ConsoleWriterService.html","title":"injectable - ConsoleWriterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ConsoleWriterService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/console/console-writer/console-writer.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n info\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n info\n \n \n \n \n \n \ninfo(text: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/console/console-writer/console-writer.service.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\n\n@Injectable()\nexport class ConsoleWriterService {\n\tinfo(text: string): void {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.info('Info:', text);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContentElementFactory.html":{"url":"injectables/ContentElementFactory.html","title":"injectable - ContentElementFactory","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContentElementFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/content-element.factory.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n build\n \n \n Private\n buildFile\n \n \n Private\n buildRichText\n \n \n Private\n buildSubmissionContainer\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(type: ContentElementType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ContentElementType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AnyContentElementDo\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildFile\n \n \n \n \n \n \n \n buildFile()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:36\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n buildRichText\n \n \n \n \n \n \n \n buildRichText()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:48\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n buildSubmissionContainer\n \n \n \n \n \n \n \n buildSubmissionContainer()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/content-element.factory.ts:61\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { InputFormat } from '@shared/domain/types';\nimport { ObjectId } from 'bson';\nimport { FileElement } from './file-element.do';\nimport { RichTextElement } from './rich-text-element.do';\nimport { SubmissionContainerElement } from './submission-container-element.do';\nimport { AnyContentElementDo } from './types/any-content-element-do';\nimport { ContentElementType } from './types/content-elements.enum';\n\n@Injectable()\nexport class ContentElementFactory {\n\tbuild(type: ContentElementType): AnyContentElementDo {\n\t\tlet element!: AnyContentElementDo;\n\n\t\tswitch (type) {\n\t\t\tcase ContentElementType.FILE:\n\t\t\t\telement = this.buildFile();\n\t\t\t\tbreak;\n\t\t\tcase ContentElementType.RICH_TEXT:\n\t\t\t\telement = this.buildRichText();\n\t\t\t\tbreak;\n\t\t\tcase ContentElementType.SUBMISSION_CONTAINER:\n\t\t\t\telement = this.buildSubmissionContainer();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (!element) {\n\t\t\tthrow new NotImplementedException(`unknown type ${type} of element`);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tprivate buildFile() {\n\t\tconst element = new FileElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcaption: '',\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\treturn element;\n\t}\n\n\tprivate buildRichText() {\n\t\tconst element = new RichTextElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\ttext: '',\n\t\t\tinputFormat: InputFormat.RICH_TEXT_CK5,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\treturn element;\n\t}\n\n\tprivate buildSubmissionContainer() {\n\t\tconst tomorrow = new Date(Date.now() + 86400000);\n\t\tconst element = new SubmissionContainerElement({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tdueDate: tomorrow,\n\t\t\tchildren: [],\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t});\n\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContentElementResponseFactory.html":{"url":"classes/ContentElementResponseFactory.html","title":"class - ContentElementResponseFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContentElementResponseFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/content-element-response.factory.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n mappers\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n mappers\n \n \n \n \n \n \n Type : BaseResponseMapper[]\n\n \n \n \n \n Default value : [\n\t\tFileElementResponseMapper.getInstance(),\n\t\tRichTextElementResponseMapper.getInstance(),\n\t\tSubmissionContainerElementResponseMapper.getInstance(),\n\t]\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.factory.ts:10\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(element: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/content-element-response.factory.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AnyContentElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { AnyBoardDo } from '@shared/domain';\nimport { AnyContentElementResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\nimport { FileElementResponseMapper } from './file-element-response.mapper';\nimport { RichTextElementResponseMapper } from './rich-text-element-response.mapper';\nimport { SubmissionContainerElementResponseMapper } from './submission-container-element-response.mapper';\n\nexport class ContentElementResponseFactory {\n\tprivate static mappers: BaseResponseMapper[] = [\n\t\tFileElementResponseMapper.getInstance(),\n\t\tRichTextElementResponseMapper.getInstance(),\n\t\tSubmissionContainerElementResponseMapper.getInstance(),\n\t];\n\n\tstatic mapToResponse(element: AnyBoardDo): AnyContentElementResponse {\n\t\tconst elementMapper = this.mappers.find((mapper) => mapper.canMap(element));\n\n\t\tif (!elementMapper) {\n\t\t\tthrow new NotImplementedException(`unsupported element type: ${element.constructor.name}`);\n\t\t}\n\n\t\tconst result = elementMapper.mapToResponse(element);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContentElementService.html":{"url":"injectables/ContentElementService.html","title":"injectable - ContentElementService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContentElementService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/content-element.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n move\n \n \n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService, contentElementFactory: ContentElementFactory)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n contentElementFactory\n \n \n ContentElementFactory\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(parent: Card, type: ContentElementType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n Card\n \n\n \n No\n \n\n\n \n \n type\n \n ContentElementType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(element: AnyContentElementDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(elementId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n move\n \n \n \n \n \n \n \n move(element: AnyContentElementDo, targetCard: Card, targetPosition: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \n targetCard\n \n Card\n \n\n \n No\n \n\n\n \n \n targetPosition\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n update\n \n \n \n \n \n \n \n update(element: AnyContentElementDo, content: FileContentBody | RichTextContentBody | SubmissionContainerContentBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element.service.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n AnyContentElementDo\n \n\n \n No\n \n\n\n \n \n content\n \n FileContentBody | RichTextContentBody | SubmissionContainerContentBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotFoundException } from '@nestjs/common';\nimport {\n\tAnyContentElementDo,\n\tCard,\n\tContentElementFactory,\n\tContentElementType,\n\tEntityId,\n\tisAnyContentElement,\n} from '@shared/domain';\nimport { FileContentBody, RichTextContentBody, SubmissionContainerContentBody } from '../controller/dto';\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\nimport { ContentElementUpdateVisitor } from './content-element-update.visitor';\n\n@Injectable()\nexport class ContentElementService {\n\tconstructor(\n\t\tprivate readonly boardDoRepo: BoardDoRepo,\n\t\tprivate readonly boardDoService: BoardDoService,\n\t\tprivate readonly contentElementFactory: ContentElementFactory\n\t) {}\n\n\tasync findById(elementId: EntityId): Promise {\n\t\tconst element = await this.boardDoRepo.findById(elementId);\n\n\t\tif (!isAnyContentElement(element)) {\n\t\t\tthrow new NotFoundException(`There is no '${element.constructor.name}' with this id`);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tasync create(parent: Card, type: ContentElementType): Promise {\n\t\tconst element = this.contentElementFactory.build(type);\n\t\tparent.addChild(element);\n\t\tawait this.boardDoRepo.save(parent.children, parent);\n\t\treturn element;\n\t}\n\n\tasync delete(element: AnyContentElementDo): Promise {\n\t\tawait this.boardDoService.deleteWithDescendants(element);\n\t}\n\n\tasync move(element: AnyContentElementDo, targetCard: Card, targetPosition: number): Promise {\n\t\tawait this.boardDoService.move(element, targetCard, targetPosition);\n\t}\n\n\tasync update(\n\t\telement: AnyContentElementDo,\n\t\tcontent: FileContentBody | RichTextContentBody | SubmissionContainerContentBody\n\t): Promise {\n\t\tconst updater = new ContentElementUpdateVisitor(content);\n\t\telement.accept(updater);\n\t\tconst parent = await this.boardDoRepo.findParentOfId(element.id);\n\t\tawait this.boardDoRepo.save(element, parent);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContentElementUpdateVisitor.html":{"url":"classes/ContentElementUpdateVisitor.html","title":"class - ContentElementUpdateVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContentElementUpdateVisitor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/content-element-update.visitor.ts\n \n\n\n\n\n \n Implements\n \n \n BoardCompositeVisitor\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n content\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n throwNotHandled\n \n \n visitCard\n \n \n visitColumn\n \n \n visitColumnBoard\n \n \n visitFileElement\n \n \n visitRichTextElement\n \n \n visitSubmissionContainerElement\n \n \n visitSubmissionItem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(content: ContentType)\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n content\n \n \n ContentType\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n content\n \n \n \n \n \n \n Type : ContentType\n\n \n \n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:18\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n throwNotHandled\n \n \n \n \n \n \n \n throwNotHandled(component: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n component\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitCard\n \n \n \n \n \n \nvisitCard(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumn\n \n \n \n \n \n \nvisitColumn(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnBoard\n \n \n \n \n \n \nvisitColumnBoard(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitFileElement\n \n \n \n \n \n \nvisitFileElement(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitRichTextElement\n \n \n \n \n \n \nvisitRichTextElement(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionContainerElement\n \n \n \n \n \n \nvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionItem\n \n \n \n \n \n \nvisitSubmissionItem(submission: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/content-element-update.visitor.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { sanitizeRichText } from '@shared/controller';\nimport {\n\tAnyBoardDo,\n\tBoardCompositeVisitor,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { FileContentBody, RichTextContentBody, SubmissionContainerContentBody } from '../controller/dto';\n\ntype ContentType = FileContentBody | RichTextContentBody | SubmissionContainerContentBody;\n\nexport class ContentElementUpdateVisitor implements BoardCompositeVisitor {\n\tprivate readonly content: ContentType;\n\n\tconstructor(content: ContentType) {\n\t\tthis.content = content;\n\t}\n\n\tvisitColumnBoard(columnBoard: ColumnBoard): void {\n\t\tthis.throwNotHandled(columnBoard);\n\t}\n\n\tvisitColumn(column: Column): void {\n\t\tthis.throwNotHandled(column);\n\t}\n\n\tvisitCard(card: Card): void {\n\t\tthis.throwNotHandled(card);\n\t}\n\n\tvisitFileElement(fileElement: FileElement): void {\n\t\tif (this.content instanceof FileContentBody) {\n\t\t\tfileElement.caption = this.content.caption;\n\t\t} else {\n\t\t\tthis.throwNotHandled(fileElement);\n\t\t}\n\t}\n\n\tvisitRichTextElement(richTextElement: RichTextElement): void {\n\t\tif (this.content instanceof RichTextContentBody) {\n\t\t\trichTextElement.text = sanitizeRichText(this.content.text, this.content.inputFormat);\n\t\t\trichTextElement.inputFormat = this.content.inputFormat;\n\t\t} else {\n\t\t\tthis.throwNotHandled(richTextElement);\n\t\t}\n\t}\n\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void {\n\t\tif (this.content instanceof SubmissionContainerContentBody) {\n\t\t\tsubmissionContainerElement.dueDate = this.content.dueDate;\n\t\t} else {\n\t\t\tthis.throwNotHandled(submissionContainerElement);\n\t\t}\n\t}\n\n\tvisitSubmissionItem(submission: SubmissionItem): void {\n\t\tthis.throwNotHandled(submission);\n\t}\n\n\tprivate throwNotHandled(component: AnyBoardDo) {\n\t\tthrow new Error(`Cannot update element of type: '${component.constructor.name}'`);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContentElementUrlParams.html":{"url":"classes/ContentElementUrlParams.html","title":"class - ContentElementUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContentElementUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/content-element.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contentElementId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contentElementId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the element.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/content-element.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class ContentElementUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the element.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcontentElementId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalTool.html":{"url":"classes/ContextExternalTool.html","title":"class - ContextExternalTool","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalTool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n \n Implements\n \n \n ToolVersion\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n contextRef\n \n \n Optional\n displayName\n \n \n parameters\n \n \n schoolToolRef\n \n \n toolVersion\n \n \n Optional\n id\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getVersion\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ContextExternalToolProps)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ContextExternalToolProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n contextRef\n \n \n \n \n \n \n Type : ContextRef\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntry[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n schoolToolRef\n \n \n \n \n \n \n Type : SchoolExternalToolRefDO\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \ngetVersion()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts:41\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolVersion } from '../../common/interface';\nimport { SchoolExternalToolRefDO } from '../../school-external-tool/domain';\nimport { ContextRef } from './context-ref';\n\nexport interface ContextExternalToolProps {\n\tid?: string;\n\n\tschoolToolRef: SchoolExternalToolRefDO;\n\n\tcontextRef: ContextRef;\n\n\tdisplayName?: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n}\n\nexport class ContextExternalTool extends BaseDO implements ToolVersion {\n\tschoolToolRef: SchoolExternalToolRefDO;\n\n\tcontextRef: ContextRef;\n\n\tdisplayName?: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tconstructor(props: ContextExternalToolProps) {\n\t\tsuper(props.id);\n\t\tthis.schoolToolRef = props.schoolToolRef;\n\t\tthis.contextRef = props.contextRef;\n\t\tthis.displayName = props.displayName;\n\t\tthis.parameters = props.parameters;\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolAuthorizableService.html":{"url":"injectables/ContextExternalToolAuthorizableService.html","title":"injectable - ContextExternalToolAuthorizableService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolAuthorizableService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalToolRepo: ContextExternalToolRepo)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalToolRepo\n \n \n ContextExternalToolRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-authorizable.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AuthorizationLoaderService } from '@src/modules/authorization';\nimport { EntityId } from '@shared/domain';\nimport { ContextExternalToolRepo } from '@shared/repo';\nimport { Injectable } from '@nestjs/common';\nimport { ContextExternalTool } from '../domain';\n\n@Injectable()\nexport class ContextExternalToolAuthorizableService implements AuthorizationLoaderService {\n\tconstructor(private readonly contextExternalToolRepo: ContextExternalToolRepo) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolRepo.findById(id);\n\n\t\treturn contextExternalTool;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolConfigurationTemplateListResponse.html":{"url":"classes/ContextExternalToolConfigurationTemplateListResponse.html","title":"class - ContextExternalToolConfigurationTemplateListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolConfigurationTemplateListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ContextExternalToolConfigurationTemplateResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ContextExternalToolConfigurationTemplateResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ContextExternalToolConfigurationTemplateResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContextExternalToolConfigurationTemplateResponse } from './context-external-tool-configuration-template.response';\n\nexport class ContextExternalToolConfigurationTemplateListResponse {\n\t@ApiProperty({ type: [ContextExternalToolConfigurationTemplateResponse] })\n\tdata: ContextExternalToolConfigurationTemplateResponse[];\n\n\tconstructor(data: ContextExternalToolConfigurationTemplateResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolConfigurationTemplateResponse.html":{"url":"classes/ContextExternalToolConfigurationTemplateResponse.html","title":"class - ContextExternalToolConfigurationTemplateResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolConfigurationTemplateResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n externalToolId\n \n \n \n Optional\n logoUrl\n \n \n \n name\n \n \n \n parameters\n \n \n \n schoolExternalToolId\n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(configuration: ContextExternalToolConfigurationTemplateResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n configuration\n \n \n ContextExternalToolConfigurationTemplateResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n externalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/context-external-tool-configuration-template.response.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { CustomParameterResponse } from './custom-parameter.response';\n\nexport class ContextExternalToolConfigurationTemplateResponse {\n\t@ApiProperty()\n\texternalToolId: EntityId;\n\n\t@ApiProperty()\n\tschoolExternalToolId: EntityId;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ApiProperty({ type: [CustomParameterResponse] })\n\tparameters: CustomParameterResponse[];\n\n\t@ApiProperty()\n\tversion: number;\n\n\tconstructor(configuration: ContextExternalToolConfigurationTemplateResponse) {\n\t\tthis.externalToolId = configuration.externalToolId;\n\t\tthis.schoolExternalToolId = configuration.schoolExternalToolId;\n\t\tthis.name = configuration.name;\n\t\tthis.logoUrl = configuration.logoUrl;\n\t\tthis.parameters = configuration.parameters;\n\t\tthis.version = configuration.version;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolContextParams.html":{"url":"classes/ContextExternalToolContextParams.html","title":"class - ContextExternalToolContextParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolContextParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-context.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n contextType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, example: '0000dcfbfb5c7a3f00bf21ab'})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-context.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolContextType)@ApiProperty({nullable: false, required: true, example: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-context.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsEnum, IsMongoId } from 'class-validator';\nimport { ToolContextType } from '../../../common/enum';\n\nexport class ContextExternalToolContextParams {\n\t@ApiProperty({ nullable: false, required: true, example: '0000dcfbfb5c7a3f00bf21ab' })\n\t@IsMongoId()\n\tcontextId!: string;\n\n\t@IsEnum(ToolContextType)\n\t@ApiProperty({ nullable: false, required: true, example: ToolContextType.COURSE })\n\tcontextType!: ToolContextType;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ContextExternalToolEntity.html":{"url":"entities/ContextExternalToolEntity.html","title":"entity - ContextExternalToolEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ContextExternalToolEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextId\n \n \n \n contextType\n \n \n \n Optional\n displayName\n \n \n \n parameters\n \n \n \n schoolTool\n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ContextExternalToolType\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolTool\n \n \n \n \n \n \n Type : SchoolExternalToolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts:39\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { CustomParameterEntryEntity } from '../../common/entity';\nimport { SchoolExternalToolEntity } from '../../school-external-tool/entity';\nimport { ContextExternalToolType } from './context-external-tool-type.enum';\n\nexport interface IContextExternalToolProperties {\n\tschoolTool: SchoolExternalToolEntity;\n\n\tcontextId: string;\n\n\tcontextType: ContextExternalToolType;\n\n\tdisplayName?: string;\n\n\tparameters?: CustomParameterEntryEntity[];\n\n\ttoolVersion: number;\n}\n\n@Entity({ tableName: 'context_external_tools' })\nexport class ContextExternalToolEntity extends BaseEntityWithTimestamps {\n\t@ManyToOne()\n\tschoolTool: SchoolExternalToolEntity;\n\n\t@Property()\n\tcontextId: string;\n\n\t@Property()\n\tcontextType: ContextExternalToolType;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Embedded(() => CustomParameterEntryEntity, { array: true })\n\tparameters: CustomParameterEntryEntity[];\n\n\t@Property()\n\ttoolVersion: number;\n\n\tconstructor(props: IContextExternalToolProperties) {\n\t\tsuper();\n\t\tthis.schoolTool = props.schoolTool;\n\t\tthis.contextId = props.contextId;\n\t\tthis.contextType = props.contextType;\n\t\tthis.displayName = props.displayName;\n\t\tthis.parameters = props.parameters ?? [];\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolFactory.html":{"url":"classes/ContextExternalToolFactory.html","title":"class - ContextExternalToolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/context-external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withSchoolExternalToolRef\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withSchoolExternalToolRef\n \n \n \n \n \n \nwithSchoolExternalToolRef(schoolToolId: string, schoolId?: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/context-external-tool.factory.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolToolId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string | undefined\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { CustomParameterEntry } from '@src/modules/tool/common/domain';\nimport { ToolContextType } from '@src/modules/tool/common/enum';\nimport { ContextExternalTool, ContextExternalToolProps } from '@src/modules/tool/context-external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nclass ContextExternalToolFactory extends DoBaseFactory {\n\twithSchoolExternalToolRef(schoolToolId: string, schoolId?: string | undefined): this {\n\t\tconst params: DeepPartial = {\n\t\t\tschoolToolRef: { schoolToolId, schoolId },\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const contextExternalToolFactory = ContextExternalToolFactory.define(ContextExternalTool, ({ sequence }) => {\n\treturn {\n\t\tschoolToolRef: { schoolToolId: `schoolToolId-${sequence}`, schoolId: 'schoolId' },\n\t\tcontextRef: { id: new ObjectId().toHexString(), type: ToolContextType.COURSE },\n\t\tdisplayName: 'My Course Tool 1',\n\t\tparameters: [new CustomParameterEntry({ name: 'param', value: 'value' })],\n\t\ttoolVersion: 1,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolIdParams.html":{"url":"classes/ContextExternalToolIdParams.html","title":"class - ContextExternalToolIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-id.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ContextExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty({ nullable: false, required: true })\n\tcontextExternalToolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolIdParams-1.html":{"url":"classes/ContextExternalToolIdParams-1.html","title":"class - ContextExternalToolIdParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/context-external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/context-external-tool-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class ContextExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tcontextExternalToolId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ContextExternalToolModule.html":{"url":"modules/ContextExternalToolModule.html","title":"module - ContextExternalToolModule","body":"\n \n\n\n\n\n Modules\n ContextExternalToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ContextExternalToolModule\n\n\n\ncluster_ContextExternalToolModule_exports\n\n\n\ncluster_ContextExternalToolModule_imports\n\n\n\ncluster_ContextExternalToolModule_providers\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nContextExternalToolModule\n\nContextExternalToolModule\n\nContextExternalToolModule -->\n\nCommonToolModule->ContextExternalToolModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nContextExternalToolModule -->\n\nExternalToolModule->ContextExternalToolModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nContextExternalToolModule -->\n\nLoggerModule->ContextExternalToolModule\n\n\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nContextExternalToolModule -->\n\nSchoolExternalToolModule->ContextExternalToolModule\n\n\n\n\n\nContextExternalToolAuthorizableService \n\nContextExternalToolAuthorizableService \n\nContextExternalToolAuthorizableService -->\n\nContextExternalToolModule->ContextExternalToolAuthorizableService \n\n\n\n\n\nContextExternalToolService \n\nContextExternalToolService \n\nContextExternalToolService -->\n\nContextExternalToolModule->ContextExternalToolService \n\n\n\n\n\nContextExternalToolValidationService \n\nContextExternalToolValidationService \n\nContextExternalToolValidationService -->\n\nContextExternalToolModule->ContextExternalToolValidationService \n\n\n\n\n\nContextExternalToolAuthorizableService\n\nContextExternalToolAuthorizableService\n\nContextExternalToolModule -->\n\nContextExternalToolAuthorizableService->ContextExternalToolModule\n\n\n\n\n\nContextExternalToolService\n\nContextExternalToolService\n\nContextExternalToolModule -->\n\nContextExternalToolService->ContextExternalToolModule\n\n\n\n\n\nContextExternalToolValidationService\n\nContextExternalToolValidationService\n\nContextExternalToolModule -->\n\nContextExternalToolValidationService->ContextExternalToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/context-external-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ContextExternalToolAuthorizableService\n \n \n ContextExternalToolService\n \n \n ContextExternalToolValidationService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n ExternalToolModule\n \n \n LoggerModule\n \n \n SchoolExternalToolModule\n \n \n \n \n Exports\n \n \n ContextExternalToolAuthorizableService\n \n \n ContextExternalToolService\n \n \n ContextExternalToolValidationService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ExternalToolModule } from '../external-tool';\nimport { SchoolExternalToolModule } from '../school-external-tool';\nimport {\n\tContextExternalToolAuthorizableService,\n\tContextExternalToolService,\n\tContextExternalToolValidationService,\n} from './service';\nimport { CommonToolModule } from '../common';\n\n@Module({\n\t// TODO: remove authorization module here N21-1055\n\timports: [\n\t\tCommonToolModule,\n\t\tExternalToolModule,\n\t\tSchoolExternalToolModule,\n\t\tLoggerModule,\n\t\tforwardRef(() => AuthorizationModule),\n\t],\n\tproviders: [ContextExternalToolService, ContextExternalToolValidationService, ContextExternalToolAuthorizableService],\n\texports: [ContextExternalToolService, ContextExternalToolValidationService, ContextExternalToolAuthorizableService],\n})\nexport class ContextExternalToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolPostParams.html":{"url":"classes/ContextExternalToolPostParams.html","title":"class - ContextExternalToolPostParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolPostParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n contextType\n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n schoolToolId\n \n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolContextType)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryParam[]\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested({each: true})@IsArray()@IsOptional()@ApiPropertyOptional({type: undefined})@Type(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n schoolToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsNumber()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-post.params.ts:34\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsEnum, IsMongoId, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { CustomParameterEntryParam } from '../../../school-external-tool/controller/dto';\nimport { ToolContextType } from '../../../common/enum';\n\nexport class ContextExternalToolPostParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolToolId!: string;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tcontextId!: string;\n\n\t@IsEnum(ToolContextType)\n\t@ApiProperty()\n\tcontextType!: ToolContextType;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tdisplayName?: string;\n\n\t@ValidateNested({ each: true })\n\t@IsArray()\n\t@IsOptional()\n\t@ApiPropertyOptional({ type: [CustomParameterEntryParam] })\n\t@Type(() => CustomParameterEntryParam)\n\tparameters?: CustomParameterEntryParam[];\n\n\t@ApiProperty()\n\t@IsNumber()\n\ttoolVersion!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ContextExternalToolProps.html":{"url":"interfaces/ContextExternalToolProps.html","title":"interface - ContextExternalToolProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ContextExternalToolProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/domain/context-external-tool.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextRef\n \n \n \n Optional\n \n displayName\n \n \n \n Optional\n \n id\n \n \n \n \n parameters\n \n \n \n \n schoolToolRef\n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextRef\n \n \n \n \n \n \n \n \n contextRef: ContextRef\n\n \n \n\n\n \n \n Type : ContextRef\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n \n \n displayName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n \n \n parameters: CustomParameterEntry[]\n\n \n \n\n\n \n \n Type : CustomParameterEntry[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolToolRef\n \n \n \n \n \n \n \n \n schoolToolRef: SchoolExternalToolRefDO\n\n \n \n\n\n \n \n Type : SchoolExternalToolRefDO\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n toolVersion: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolVersion } from '../../common/interface';\nimport { SchoolExternalToolRefDO } from '../../school-external-tool/domain';\nimport { ContextRef } from './context-ref';\n\nexport interface ContextExternalToolProps {\n\tid?: string;\n\n\tschoolToolRef: SchoolExternalToolRefDO;\n\n\tcontextRef: ContextRef;\n\n\tdisplayName?: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n}\n\nexport class ContextExternalTool extends BaseDO implements ToolVersion {\n\tschoolToolRef: SchoolExternalToolRefDO;\n\n\tcontextRef: ContextRef;\n\n\tdisplayName?: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tconstructor(props: ContextExternalToolProps) {\n\t\tsuper(props.id);\n\t\tthis.schoolToolRef = props.schoolToolRef;\n\t\tthis.contextRef = props.contextRef;\n\t\tthis.displayName = props.displayName;\n\t\tthis.parameters = props.parameters;\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolRepo.html":{"url":"injectables/ContextExternalToolRepo.html","title":"injectable - ContextExternalToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n buildScope\n \n \n Async\n deleteBySchoolExternalToolIds\n \n \n entityFactory\n \n \n Async\n find\n \n \n Public\n \n Async\n findById\n \n \n Private\n mapContextTypeToDoType\n \n \n Private\n mapContextTypeToEntityType\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:25\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n buildScope\n \n \n \n \n \n \n \n buildScope(query: ContextExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ContextExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteBySchoolExternalToolIds\n \n \n \n \n \n \n \n deleteBySchoolExternalToolIds(schoolExternalToolIds: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolIds\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IContextExternalToolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:34\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IContextExternalToolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(query: ContextExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ContextExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:56\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapContextTypeToDoType\n \n \n \n \n \n \n \n mapContextTypeToDoType(type: ContextExternalToolType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:123\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ContextExternalToolType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolContextType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapContextTypeToEntityType\n \n \n \n \n \n \n \n mapContextTypeToEntityType(type: ToolContextType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:114\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: ContextExternalTool)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:103\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IContextExternalToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: ContextExternalToolEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:82\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ContextExternalToolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.repo.ts:30\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { BaseDORepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ToolContextType } from '@src/modules/tool/common/enum/tool-context-type.enum';\nimport { ContextExternalTool, ContextRef } from '@src/modules/tool/context-external-tool/domain';\nimport {\n\tContextExternalToolEntity,\n\tContextExternalToolType,\n\tIContextExternalToolProperties,\n} from '@src/modules/tool/context-external-tool/entity';\nimport { ContextExternalToolQuery } from '@src/modules/tool/context-external-tool/uc/dto/context-external-tool.types';\nimport { SchoolExternalToolRefDO } from '@src/modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolEntity } from '@src/modules/tool/school-external-tool/entity';\nimport { EntityId } from '../../domain';\nimport { ExternalToolRepoMapper } from '../externaltool';\nimport { ContextExternalToolScope } from './context-external-tool.scope';\n\n@Injectable()\nexport class ContextExternalToolRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn ContextExternalToolEntity;\n\t}\n\n\tentityFactory(props: IContextExternalToolProperties): ContextExternalToolEntity {\n\t\treturn new ContextExternalToolEntity(props);\n\t}\n\n\tasync deleteBySchoolExternalToolIds(schoolExternalToolIds: string[]): Promise {\n\t\tconst count: Promise = this._em.nativeDelete(this.entityName, {\n\t\t\tschoolTool: { $in: schoolExternalToolIds },\n\t\t});\n\t\treturn count;\n\t}\n\n\tasync find(query: ContextExternalToolQuery): Promise {\n\t\tconst scope: ContextExternalToolScope = this.buildScope(query);\n\n\t\tconst entities: ContextExternalToolEntity[] = await this._em.find(this.entityName, scope.query, {\n\t\t\tpopulate: ['schoolTool.school'],\n\t\t});\n\n\t\tconst dos: ContextExternalTool[] = entities.map((entity: ContextExternalToolEntity) => this.mapEntityToDO(entity));\n\t\treturn dos;\n\t}\n\n\tpublic override async findById(id: EntityId): Promise {\n\t\tconst entity: ContextExternalToolEntity = await this._em.findOneOrFail(\n\t\t\tthis.entityName,\n\t\t\t{ id },\n\t\t\t{\n\t\t\t\tpopulate: ['schoolTool.school'],\n\t\t\t}\n\t\t);\n\n\t\tconst mapped: ContextExternalTool = this.mapEntityToDO(entity);\n\n\t\treturn mapped;\n\t}\n\n\tprivate buildScope(query: ContextExternalToolQuery): ContextExternalToolScope {\n\t\tconst scope: ContextExternalToolScope = new ContextExternalToolScope();\n\n\t\tscope.byId(query.id);\n\t\tscope.bySchoolToolId(query.schoolToolRef?.schoolToolId);\n\t\tscope.byContextId(query.context?.id);\n\t\tscope.byContextType(query.context?.type);\n\t\tscope.allowEmptyQuery(true);\n\n\t\treturn scope;\n\t}\n\n\tmapEntityToDO(entity: ContextExternalToolEntity): ContextExternalTool {\n\t\tconst schoolToolRef: SchoolExternalToolRefDO = new SchoolExternalToolRefDO({\n\t\t\tschoolId: entity.schoolTool.school?.id,\n\t\t\tschoolToolId: entity.schoolTool.id,\n\t\t});\n\n\t\tconst contextRef: ContextRef = new ContextRef({\n\t\t\tid: entity.contextId,\n\t\t\ttype: this.mapContextTypeToDoType(entity.contextType),\n\t\t});\n\n\t\treturn new ContextExternalTool({\n\t\t\tid: entity.id,\n\t\t\tschoolToolRef,\n\t\t\tcontextRef,\n\t\t\tdisplayName: entity.displayName,\n\t\t\ttoolVersion: entity.toolVersion,\n\t\t\tparameters: ExternalToolRepoMapper.mapCustomParameterEntryEntitiesToDOs(entity.parameters),\n\t\t});\n\t}\n\n\tmapDOToEntityProperties(entityDO: ContextExternalTool): IContextExternalToolProperties {\n\t\treturn {\n\t\t\tcontextId: entityDO.contextRef.id,\n\t\t\tcontextType: this.mapContextTypeToEntityType(entityDO.contextRef.type),\n\t\t\tdisplayName: entityDO.displayName,\n\t\t\tschoolTool: this._em.getReference(SchoolExternalToolEntity, entityDO.schoolToolRef.schoolToolId),\n\t\t\ttoolVersion: entityDO.toolVersion,\n\t\t\tparameters: ExternalToolRepoMapper.mapCustomParameterEntryDOsToEntities(entityDO.parameters),\n\t\t};\n\t}\n\n\tprivate mapContextTypeToEntityType(type: ToolContextType): ContextExternalToolType {\n\t\tswitch (type) {\n\t\t\tcase ToolContextType.COURSE:\n\t\t\t\treturn ContextExternalToolType.COURSE;\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Unknown ToolContextType');\n\t\t}\n\t}\n\n\tprivate mapContextTypeToDoType(type: ContextExternalToolType): ToolContextType {\n\t\tswitch (type) {\n\t\t\tcase ContextExternalToolType.COURSE:\n\t\t\t\treturn ToolContextType.COURSE;\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Unknown ContextExternalToolType');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolRequestMapper.html":{"url":"classes/ContextExternalToolRequestMapper.html","title":"class - ContextExternalToolRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-request.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapContextExternalToolRequest\n \n \n Private\n Static\n mapRequestToCustomParameterEntryDO\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapContextExternalToolRequest\n \n \n \n \n \n \n \n mapContextExternalToolRequest(request: ContextExternalToolPostParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-request.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n ContextExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapRequestToCustomParameterEntryDO\n \n \n \n \n \n \n \n mapRequestToCustomParameterEntryDO(customParameterParams: CustomParameterEntryParam[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-request.mapper.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntry[]\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContextExternalToolPostParams } from '../controller/dto';\nimport { CustomParameterEntryParam } from '../../school-external-tool/controller/dto';\nimport { ContextExternalToolDto } from '../uc/dto/context-external-tool.types';\nimport { CustomParameterEntry } from '../../common/domain';\n\nexport class ContextExternalToolRequestMapper {\n\tstatic mapContextExternalToolRequest(request: ContextExternalToolPostParams): ContextExternalToolDto {\n\t\treturn {\n\t\t\tid: '',\n\t\t\tschoolToolRef: {\n\t\t\t\tschoolToolId: request.schoolToolId,\n\t\t\t},\n\t\t\tcontextRef: {\n\t\t\t\tid: request.contextId,\n\t\t\t\ttype: request.contextType,\n\t\t\t},\n\t\t\tdisplayName: request.displayName,\n\t\t\ttoolVersion: request.toolVersion,\n\t\t\tparameters: this.mapRequestToCustomParameterEntryDO(request.parameters ?? []),\n\t\t};\n\t}\n\n\tprivate static mapRequestToCustomParameterEntryDO(\n\t\tcustomParameterParams: CustomParameterEntryParam[]\n\t): CustomParameterEntry[] {\n\t\treturn customParameterParams.map((customParameterParam: CustomParameterEntryParam) => {\n\t\t\treturn {\n\t\t\t\tname: customParameterParam.name,\n\t\t\t\tvalue: customParameterParam.value,\n\t\t\t};\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolResponse.html":{"url":"classes/ContextExternalToolResponse.html","title":"class - ContextExternalToolResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextId\n \n \n \n contextType\n \n \n \n Optional\n displayName\n \n \n \n id\n \n \n \n Optional\n logoUrl\n \n \n \n parameters\n \n \n \n schoolToolId\n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(response: ContextExternalToolResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:28\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n \n ContextExternalToolResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ToolContextType})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryResponse[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool.response.ts:25\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { CustomParameterEntryResponse } from '../../../school-external-tool/controller/dto';\nimport { ToolContextType } from '../../../common/enum';\n\nexport class ContextExternalToolResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tschoolToolId: string;\n\n\t@ApiProperty()\n\tcontextId: string;\n\n\t@ApiProperty({ enum: ToolContextType })\n\tcontextType: ToolContextType;\n\n\t@ApiPropertyOptional()\n\tdisplayName?: string;\n\n\t@ApiProperty({ type: [CustomParameterEntryResponse] })\n\tparameters: CustomParameterEntryResponse[] = [];\n\n\t@ApiProperty()\n\ttoolVersion: number;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\tconstructor(response: ContextExternalToolResponse) {\n\t\tthis.id = response.id;\n\t\tthis.schoolToolId = response.schoolToolId;\n\t\tthis.contextId = response.contextId;\n\t\tthis.contextType = response.contextType;\n\t\tthis.displayName = response.displayName;\n\t\tthis.parameters = response.parameters;\n\t\tthis.toolVersion = response.toolVersion;\n\t\tthis.logoUrl = response.logoUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolResponseMapper.html":{"url":"classes/ContextExternalToolResponseMapper.html","title":"class - ContextExternalToolResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapContextExternalToolResponse\n \n \n Private\n Static\n mapRequestToCustomParameterEntryDO\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapContextExternalToolResponse\n \n \n \n \n \n \n \n mapContextExternalToolResponse(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-response.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapRequestToCustomParameterEntryDO\n \n \n \n \n \n \n \n mapRequestToCustomParameterEntryDO(customParameterParams: CustomParameterEntryParam[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/mapper/context-external-tool-response.mapper.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntryResponse[]\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameterEntryParam, CustomParameterEntryResponse } from '../../school-external-tool/controller/dto';\nimport { ContextExternalToolResponse } from '../controller/dto';\nimport { ContextExternalTool } from '../domain';\n\nexport class ContextExternalToolResponseMapper {\n\tstatic mapContextExternalToolResponse(contextExternalTool: ContextExternalTool): ContextExternalToolResponse {\n\t\tconst mapped: ContextExternalToolResponse = new ContextExternalToolResponse({\n\t\t\tid: contextExternalTool.id ?? '',\n\t\t\tcontextId: contextExternalTool.contextRef.id,\n\t\t\tcontextType: contextExternalTool.contextRef.type,\n\t\t\tschoolToolId: contextExternalTool.schoolToolRef.schoolToolId,\n\t\t\tdisplayName: contextExternalTool.displayName,\n\t\t\ttoolVersion: contextExternalTool.toolVersion,\n\t\t\tparameters: this.mapRequestToCustomParameterEntryDO(contextExternalTool.parameters),\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tprivate static mapRequestToCustomParameterEntryDO(\n\t\tcustomParameterParams: CustomParameterEntryParam[]\n\t): CustomParameterEntryResponse[] {\n\t\tconst mapped: CustomParameterEntryResponse[] = customParameterParams.map(\n\t\t\t(customParameterParam: CustomParameterEntryParam) => {\n\t\t\t\tconst customParameterEntryResponse: CustomParameterEntryResponse = new CustomParameterEntryResponse({\n\t\t\t\t\tname: customParameterParam.name,\n\t\t\t\t\tvalue: customParameterParam.value,\n\t\t\t\t});\n\n\t\t\t\treturn customParameterEntryResponse;\n\t\t\t}\n\t\t);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolRule.html":{"url":"injectables/ContextExternalToolRule.html","title":"injectable - ContextExternalToolRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/context-external-tool.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/context-external-tool.rule.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: ContextExternalToolEntity | ContextExternalTool, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/context-external-tool.rule.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n ContextExternalToolEntity | ContextExternalTool\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: ContextExternalToolEntity | ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/context-external-tool.rule.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n ContextExternalToolEntity | ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { ContextExternalTool } from '@src/modules/tool/context-external-tool/domain';\nimport { ContextExternalToolEntity } from '@src/modules/tool/context-external-tool/entity';\nimport { User } from '../entity';\n\n@Injectable()\nexport class ContextExternalToolRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: ContextExternalToolEntity | ContextExternalTool): boolean {\n\t\tconst isMatched: boolean = entity instanceof ContextExternalToolEntity || entity instanceof ContextExternalTool;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(\n\t\tuser: User,\n\t\tentity: ContextExternalToolEntity | ContextExternalTool,\n\t\tcontext: AuthorizationContext\n\t): boolean {\n\t\tlet hasPermission: boolean;\n\t\tif (entity instanceof ContextExternalToolEntity) {\n\t\t\thasPermission =\n\t\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t\tuser.school.id === entity.schoolTool.school.id;\n\t\t} else {\n\t\t\thasPermission =\n\t\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t\tuser.school.id === entity.schoolToolRef.schoolId;\n\t\t}\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolScope.html":{"url":"classes/ContextExternalToolScope.html","title":"class - ContextExternalToolScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byContextId\n \n \n byContextType\n \n \n byId\n \n \n bySchoolToolId\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byContextId\n \n \n \n \n \n \nbyContextId(contextId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byContextType\n \n \n \n \n \n \nbyContextType(contextType: ToolContextType | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextType\n \n ToolContextType | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byId\n \n \n \n \n \n \nbyId(id: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n bySchoolToolId\n \n \n \n \n \n \nbySchoolToolId(schoolToolId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/contextexternaltool/context-external-tool.scope.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolToolId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Scope } from '@shared/repo';\nimport { EntityId } from '@shared/domain';\nimport { ToolContextType } from '@src/modules/tool/common/enum';\nimport { ContextExternalToolEntity } from '@src/modules/tool/context-external-tool/entity';\n\nexport class ContextExternalToolScope extends Scope {\n\tbyId(id: EntityId | undefined): ContextExternalToolScope {\n\t\tif (id !== undefined) {\n\t\t\tthis.addQuery({ id });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tbySchoolToolId(schoolToolId: EntityId | undefined): ContextExternalToolScope {\n\t\tif (schoolToolId !== undefined) {\n\t\t\tthis.addQuery({ schoolTool: schoolToolId });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyContextId(contextId: EntityId | undefined): ContextExternalToolScope {\n\t\tif (contextId !== undefined) {\n\t\t\tthis.addQuery({ contextId });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tbyContextType(contextType: ToolContextType | undefined): ContextExternalToolScope {\n\t\tif (contextType !== undefined) {\n\t\t\tthis.addQuery({ contextType });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextExternalToolSearchListResponse.html":{"url":"classes/ContextExternalToolSearchListResponse.html","title":"class - ContextExternalToolSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextExternalToolSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-search-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ContextExternalToolResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-search-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ContextExternalToolResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ContextExternalToolResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/dto/context-external-tool-search-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContextExternalToolResponse } from './context-external-tool.response';\n\nexport class ContextExternalToolSearchListResponse {\n\t@ApiProperty({ type: [ContextExternalToolResponse] })\n\tdata: ContextExternalToolResponse[];\n\n\tconstructor(data: ContextExternalToolResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolService.html":{"url":"injectables/ContextExternalToolService.html","title":"injectable - ContextExternalToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteBySchoolExternalToolId\n \n \n Async\n deleteContextExternalTool\n \n \n Async\n findAllByContext\n \n \n Async\n findContextExternalTools\n \n \n Async\n getContextExternalToolById\n \n \n Async\n saveContextExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalToolRepo: ContextExternalToolRepo)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalToolRepo\n \n \n ContextExternalToolRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteBySchoolExternalToolId\n \n \n \n \n \n \n \n deleteBySchoolExternalToolId(schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteContextExternalTool\n \n \n \n \n \n \n \n deleteContextExternalTool(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByContext\n \n \n \n \n \n \n \n findAllByContext(contextRef: ContextRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextRef\n \n ContextRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findContextExternalTools\n \n \n \n \n \n \n \n findContextExternalTools(query: ContextExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ContextExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalToolById\n \n \n \n \n \n \n \n getContextExternalToolById(contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveContextExternalTool\n \n \n \n \n \n \n \n saveContextExternalTool(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ContextExternalToolRepo } from '@shared/repo';\nimport { ContextExternalToolQuery } from '../uc/dto/context-external-tool.types';\nimport { ContextExternalTool, ContextRef } from '../domain';\n\n@Injectable()\nexport class ContextExternalToolService {\n\tconstructor(private readonly contextExternalToolRepo: ContextExternalToolRepo) {}\n\n\tasync findContextExternalTools(query: ContextExternalToolQuery): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolRepo.find(query);\n\n\t\treturn contextExternalTools;\n\t}\n\n\tasync getContextExternalToolById(contextExternalToolId: EntityId): Promise {\n\t\tconst tool: ContextExternalTool = await this.contextExternalToolRepo.findById(contextExternalToolId);\n\n\t\treturn tool;\n\t}\n\n\tasync saveContextExternalTool(contextExternalTool: ContextExternalTool): Promise {\n\t\tconst savedContextExternalTool: ContextExternalTool = await this.contextExternalToolRepo.save(contextExternalTool);\n\n\t\treturn savedContextExternalTool;\n\t}\n\n\tasync deleteBySchoolExternalToolId(schoolExternalToolId: EntityId) {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolRepo.find({\n\t\t\tschoolToolRef: {\n\t\t\t\tschoolToolId: schoolExternalToolId,\n\t\t\t},\n\t\t});\n\n\t\tawait this.contextExternalToolRepo.delete(contextExternalTools);\n\t}\n\n\tasync deleteContextExternalTool(contextExternalTool: ContextExternalTool): Promise {\n\t\tawait this.contextExternalToolRepo.delete(contextExternalTool);\n\t}\n\n\tasync findAllByContext(contextRef: ContextRef): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolRepo.find({\n\t\t\tcontext: contextRef,\n\t\t});\n\n\t\treturn contextExternalTools;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolUc.html":{"url":"injectables/ContextExternalToolUc.html","title":"injectable - ContextExternalToolUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createContextExternalTool\n \n \n Async\n deleteContextExternalTool\n \n \n Private\n Async\n filterToolsWithPermissions\n \n \n Async\n getContextExternalTool\n \n \n Async\n getContextExternalToolsForContext\n \n \n Async\n updateContextExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolPermissionHelper: ToolPermissionHelper, contextExternalToolService: ContextExternalToolService, contextExternalToolValidationService: ContextExternalToolValidationService, authorizationService: AuthorizationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n contextExternalToolValidationService\n \n \n ContextExternalToolValidationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createContextExternalTool\n \n \n \n \n \n \n \n createContextExternalTool(userId: EntityId, contextExternalToolDto: ContextExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolDto\n \n ContextExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteContextExternalTool\n \n \n \n \n \n \n \n deleteContextExternalTool(userId: EntityId, contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n filterToolsWithPermissions\n \n \n \n \n \n \n \n filterToolsWithPermissions(userId: EntityId, tools: ContextExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:96\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n tools\n \n ContextExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalTool\n \n \n \n \n \n \n \n getContextExternalTool(userId: EntityId, contextToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalToolsForContext\n \n \n \n \n \n \n \n getContextExternalToolsForContext(userId: EntityId, contextType: ToolContextType, contextId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextType\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n contextId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateContextExternalTool\n \n \n \n \n \n \n \n updateContextExternalTool(userId: EntityId, contextExternalToolId: EntityId, contextExternalToolDto: ContextExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/uc/context-external-tool.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolDto\n \n ContextExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission, User } from '@shared/domain';\nimport { AuthorizationContext, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ContextExternalToolService, ContextExternalToolValidationService } from '../service';\nimport { ContextExternalToolDto } from './dto/context-external-tool.types';\nimport { ContextExternalTool, ContextRef } from '../domain';\nimport { ToolContextType } from '../../common/enum';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class ContextExternalToolUc {\n\tconstructor(\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly contextExternalToolValidationService: ContextExternalToolValidationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {}\n\n\tasync createContextExternalTool(\n\t\tuserId: EntityId,\n\t\tcontextExternalToolDto: ContextExternalToolDto\n\t): Promise {\n\t\tconst contextExternalTool = new ContextExternalTool(contextExternalToolDto);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tawait this.contextExternalToolValidationService.validate(contextExternalToolDto);\n\n\t\tconst createdTool: ContextExternalTool = await this.contextExternalToolService.saveContextExternalTool(\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\treturn createdTool;\n\t}\n\n\tasync updateContextExternalTool(\n\t\tuserId: EntityId,\n\t\tcontextExternalToolId: EntityId,\n\t\tcontextExternalToolDto: ContextExternalToolDto\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = new ContextExternalTool(contextExternalToolDto);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(\n\t\t\tuserId,\n\t\t\tcontextExternalTool,\n\t\t\tAuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN])\n\t\t);\n\n\t\tconst updated: ContextExternalTool = new ContextExternalTool({\n\t\t\t...contextExternalTool,\n\t\t\tid: contextExternalToolId,\n\t\t});\n\n\t\tawait this.contextExternalToolValidationService.validate(updated);\n\n\t\tconst saved: ContextExternalTool = await this.contextExternalToolService.saveContextExternalTool(updated);\n\n\t\treturn saved;\n\t}\n\n\tasync deleteContextExternalTool(userId: EntityId, contextExternalToolId: EntityId): Promise {\n\t\tconst tool: ContextExternalTool = await this.contextExternalToolService.getContextExternalToolById(\n\t\t\tcontextExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, tool, context);\n\n\t\tconst promise: Promise = this.contextExternalToolService.deleteContextExternalTool(tool);\n\n\t\treturn promise;\n\t}\n\n\tasync getContextExternalToolsForContext(userId: EntityId, contextType: ToolContextType, contextId: string) {\n\t\tconst tools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tnew ContextRef({ id: contextId, type: contextType })\n\t\t);\n\n\t\tconst toolsWithPermission: ContextExternalTool[] = await this.filterToolsWithPermissions(userId, tools);\n\n\t\treturn toolsWithPermission;\n\t}\n\n\tasync getContextExternalTool(userId: EntityId, contextToolId: EntityId) {\n\t\tconst tool: ContextExternalTool = await this.contextExternalToolService.getContextExternalToolById(contextToolId);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, tool, context);\n\n\t\treturn tool;\n\t}\n\n\tprivate async filterToolsWithPermissions(\n\t\tuserId: EntityId,\n\t\ttools: ContextExternalTool[]\n\t): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tconst toolsWithPermission: ContextExternalTool[] = tools.filter((tool) =>\n\t\t\tthis.authorizationService.hasPermission(user, tool, context)\n\t\t);\n\n\t\treturn toolsWithPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ContextExternalToolValidationService.html":{"url":"injectables/ContextExternalToolValidationService.html","title":"injectable - ContextExternalToolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ContextExternalToolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkDuplicateInContext\n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalToolService: ContextExternalToolService, externalToolService: ExternalToolService, schoolExternalToolService: SchoolExternalToolService, commonToolValidationService: CommonToolValidationService)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n commonToolValidationService\n \n \n CommonToolValidationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkDuplicateInContext\n \n \n \n \n \n \n \n checkDuplicateInContext(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(toValidate: ContextExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/service/context-external-tool-validation.service.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toValidate\n \n ContextExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { CommonToolValidationService } from '../../common/service';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ContextExternalTool } from '../domain';\nimport { ContextExternalToolDto } from '../uc/dto/context-external-tool.types';\nimport { ContextExternalToolService } from './context-external-tool.service';\n\n@Injectable()\nexport class ContextExternalToolValidationService {\n\tconstructor(\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly commonToolValidationService: CommonToolValidationService\n\t) {}\n\n\tasync validate(toValidate: ContextExternalToolDto): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = new ContextExternalTool(toValidate);\n\n\t\tawait this.checkDuplicateInContext(contextExternalTool);\n\n\t\tconst loadedSchoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tconst loadedExternalTool: ExternalTool = await this.externalToolService.findExternalToolById(\n\t\t\tloadedSchoolExternalTool.toolId\n\t\t);\n\n\t\tthis.commonToolValidationService.checkCustomParameterEntries(loadedExternalTool, contextExternalTool);\n\t}\n\n\tprivate async checkDuplicateInContext(contextExternalTool: ContextExternalTool) {\n\t\tlet duplicate: ContextExternalTool[] = await this.contextExternalToolService.findContextExternalTools({\n\t\t\tschoolToolRef: contextExternalTool.schoolToolRef,\n\t\t\tcontext: contextExternalTool.contextRef,\n\t\t});\n\n\t\t// Only leave tools that are not the currently handled tool itself (for updates) or ones with the same name\n\t\tduplicate = duplicate.filter(\n\t\t\t(duplicateTool) =>\n\t\t\t\tduplicateTool.id !== contextExternalTool.id && duplicateTool.displayName === contextExternalTool.displayName\n\t\t);\n\n\t\tif (duplicate.length > 0) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_with_name_exists: A tool with the same name is already assigned to this course. Tool names must be unique within a course.`\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextRef.html":{"url":"classes/ContextRef.html","title":"class - ContextRef","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextRef\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/domain/context-ref.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ContextRef)\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-ref.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ContextRef\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-ref.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/context-external-tool/domain/context-ref.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolContextType } from '../../common/enum';\n\nexport class ContextRef {\n\tid: string;\n\n\ttype: ToolContextType;\n\n\tconstructor(props: ContextRef) {\n\t\tthis.id = props.id;\n\t\tthis.type = props.type;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextRefParams.html":{"url":"classes/ContextRefParams.html","title":"class - ContextRefParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextRefParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/context-ref.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n contextType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/context-ref.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n Type : ToolContextType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolContextType)@ApiProperty({type: ToolContextType})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/context-ref.params.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsEnum, IsMongoId } from 'class-validator';\nimport { ToolContextType } from '../../../../common/enum';\n\nexport class ContextRefParams {\n\t@IsEnum(ToolContextType)\n\t@ApiProperty({ type: ToolContextType })\n\tcontextType!: ToolContextType;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\tcontextId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ContextTypeMapper.html":{"url":"classes/ContextTypeMapper.html","title":"class - ContextTypeMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ContextTypeMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/mapper/context-type.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapContextTypeToAllowedAuthorizationEntityType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapContextTypeToAllowedAuthorizationEntityType\n \n \n \n \n \n \n \n mapContextTypeToAllowedAuthorizationEntityType(type: ToolContextType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/mapper/context-type.mapper.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizableReferenceType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { AuthorizableReferenceType } from '@src/modules/authorization/types';\nimport { ToolContextType } from '../enum';\n\nconst typeMapping: Record = {\n\t[ToolContextType.COURSE]: AuthorizableReferenceType.Course,\n};\n\nexport class ContextTypeMapper {\n\tstatic mapContextTypeToAllowedAuthorizationEntityType(type: ToolContextType): AuthorizableReferenceType {\n\t\treturn typeMapping[type];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ConverterUtil.html":{"url":"injectables/ConverterUtil.html","title":"injectable - ConverterUtil","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ConverterUtil\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/utils/converter.util.ts\n \n\n\n \n Description\n \n \n This class encapsulates\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n xml2object\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n xml2object\n \n \n \n \n \n \nxml2object(xml: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/utils/converter.util.ts:9\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n xml\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport xml2json from '@hendt/xml2json';\n\n/**\n * This class encapsulates\n */\n@Injectable()\nexport class ConverterUtil {\n\txml2object(xml: string): T {\n\t\treturn xml2json(xml) as T;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CookiesDto.html":{"url":"classes/CookiesDto.html","title":"class - CookiesDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CookiesDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/cookies.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n hydraCookies\n \n \n localCookies\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CookiesDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CookiesDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n hydraCookies\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/cookies.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n localCookies\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/cookies.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class CookiesDto {\n\thydraCookies: string[];\n\n\tlocalCookies: string[];\n\n\tconstructor(props: CookiesDto) {\n\t\tthis.localCookies = props.localCookies;\n\t\tthis.hydraCookies = props.hydraCookies;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyApiResponse.html":{"url":"classes/CopyApiResponse.html","title":"class - CopyApiResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyApiResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/copy-helper/dto/copy.response.ts\n \n\n\n \n Description\n \n \n DTO for returning a copy status document via api.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n destinationCourseId\n \n \n \n Optional\n elements\n \n \n \n Optional\n id\n \n \n \n status\n \n \n \n Optional\n title\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: CopyApiResponse)\n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n CopyApiResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n destinationCourseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Id of destination course'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n elements\n \n \n \n \n \n \n Type : CopyApiResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({type: undefined, description: 'List of included sub elements with recursive type structure'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Id of copied element'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : CopyStatusEnum\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string', enum: CopyStatusEnum, description: 'Copy progress status of copied element'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Title of copied element'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CopyElementType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string', enum: CopyElementType, description: 'Type of copied element'})\n \n \n \n \n \n Defined in apps/server/src/modules/copy-helper/dto/copy.response.ts:29\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { CopyElementType, CopyStatusEnum } from '@src/modules/copy-helper/types/copy.types';\n\n/**\n * DTO for returning a copy status document via api.\n */\nexport class CopyApiResponse {\n\tconstructor({ title, type, status }: CopyApiResponse) {\n\t\tif (title) this.title = title;\n\t\tthis.type = type;\n\t\tthis.status = status;\n\t}\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Id of copied element',\n\t})\n\tid?: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Title of copied element',\n\t})\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\ttype: 'string',\n\t\tenum: CopyElementType,\n\t\tdescription: 'Type of copied element',\n\t})\n\ttype: CopyElementType;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Id of destination course',\n\t})\n\tdestinationCourseId?: string;\n\n\t@ApiProperty({\n\t\ttype: 'string',\n\t\tenum: CopyStatusEnum,\n\t\tdescription: 'Copy progress status of copied element',\n\t})\n\tstatus: CopyStatusEnum;\n\n\t@ApiPropertyOptional({\n\t\ttype: [CopyApiResponse],\n\t\tdescription: 'List of included sub elements with recursive type structure',\n\t})\n\telements?: CopyApiResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileDto.html":{"url":"classes/CopyFileDto.html","title":"class - CopyFileDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n id\n \n \n name\n \n \n sourceId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ICopyFileDomainObjectProps)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ICopyFileDomainObjectProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId | undefined\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n sourceId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/copy-file.dto.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ICopyFileDomainObjectProps } from '../interfaces';\n\nexport class CopyFileDto {\n\tid?: EntityId | undefined;\n\n\tsourceId: EntityId;\n\n\tname: string;\n\n\tconstructor(data: ICopyFileDomainObjectProps) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileListResponse.html":{"url":"classes/CopyFileListResponse.html","title":"class - CopyFileListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:84\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n CopyFileResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : CopyFileResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:91\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { FileRecord, FileRecordParentType, PreviewStatus, ScanStatus } from '../../entity';\nimport { API_VERSION_PATH } from '../../files-storage.const';\n\nexport class FileRecordResponse {\n\tconstructor(fileRecord: FileRecord) {\n\t\tthis.id = fileRecord.id;\n\t\tthis.name = fileRecord.name;\n\t\tthis.url = `${API_VERSION_PATH}/file/download/${fileRecord.id}/${encodeURIComponent(fileRecord.name)}`;\n\t\tthis.size = fileRecord.size;\n\t\tthis.securityCheckStatus = fileRecord.securityCheck.status;\n\t\tthis.parentId = fileRecord.parentId;\n\t\tthis.creatorId = fileRecord.creatorId;\n\t\tthis.mimeType = fileRecord.mimeType;\n\t\tthis.parentType = fileRecord.parentType;\n\t\tthis.deletedSince = fileRecord.deletedSince;\n\t\tthis.previewStatus = fileRecord.getPreviewStatus();\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiProperty()\n\tparentId: string;\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty({ enum: ScanStatus, enumName: 'FileRecordScanStatus' })\n\tsecurityCheckStatus: ScanStatus;\n\n\t@ApiProperty()\n\tsize: number;\n\n\t@ApiProperty()\n\tcreatorId: string;\n\n\t@ApiProperty()\n\tmimeType: string;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\tparentType: FileRecordParentType;\n\n\t@ApiProperty({ enum: PreviewStatus, enumName: 'PreviewStatus' })\n\tpreviewStatus: PreviewStatus;\n\n\t@ApiPropertyOptional()\n\tdeletedSince?: Date;\n}\n\nexport class FileRecordListResponse extends PaginationResponse {\n\tconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [FileRecordResponse] })\n\tdata: FileRecordResponse[];\n}\n\nexport class CopyFileResponse {\n\tconstructor(data: CopyFileResponse) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n\n\t@ApiPropertyOptional()\n\tid?: string;\n\n\t@ApiProperty()\n\tsourceId: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n}\n\nexport class CopyFileListResponse extends PaginationResponse {\n\tconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CopyFileResponse] })\n\tdata: CopyFileResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileParams.html":{"url":"classes/CopyFileParams.html","title":"class - CopyFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n fileNamePrefix\n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileNamePrefix\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:94\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : FileRecordParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@ValidateNested()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:90\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileResponse.html":{"url":"classes/CopyFileResponse.html","title":"class - CopyFileResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n name\n \n \n \n sourceId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: CopyFileResponse)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:66\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n CopyFileResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:74\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:81\n \n \n\n\n \n \n \n \n \n \n \n \n \n sourceId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:77\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { FileRecord, FileRecordParentType, PreviewStatus, ScanStatus } from '../../entity';\nimport { API_VERSION_PATH } from '../../files-storage.const';\n\nexport class FileRecordResponse {\n\tconstructor(fileRecord: FileRecord) {\n\t\tthis.id = fileRecord.id;\n\t\tthis.name = fileRecord.name;\n\t\tthis.url = `${API_VERSION_PATH}/file/download/${fileRecord.id}/${encodeURIComponent(fileRecord.name)}`;\n\t\tthis.size = fileRecord.size;\n\t\tthis.securityCheckStatus = fileRecord.securityCheck.status;\n\t\tthis.parentId = fileRecord.parentId;\n\t\tthis.creatorId = fileRecord.creatorId;\n\t\tthis.mimeType = fileRecord.mimeType;\n\t\tthis.parentType = fileRecord.parentType;\n\t\tthis.deletedSince = fileRecord.deletedSince;\n\t\tthis.previewStatus = fileRecord.getPreviewStatus();\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiProperty()\n\tparentId: string;\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty({ enum: ScanStatus, enumName: 'FileRecordScanStatus' })\n\tsecurityCheckStatus: ScanStatus;\n\n\t@ApiProperty()\n\tsize: number;\n\n\t@ApiProperty()\n\tcreatorId: string;\n\n\t@ApiProperty()\n\tmimeType: string;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\tparentType: FileRecordParentType;\n\n\t@ApiProperty({ enum: PreviewStatus, enumName: 'PreviewStatus' })\n\tpreviewStatus: PreviewStatus;\n\n\t@ApiPropertyOptional()\n\tdeletedSince?: Date;\n}\n\nexport class FileRecordListResponse extends PaginationResponse {\n\tconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [FileRecordResponse] })\n\tdata: FileRecordResponse[];\n}\n\nexport class CopyFileResponse {\n\tconstructor(data: CopyFileResponse) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n\n\t@ApiPropertyOptional()\n\tid?: string;\n\n\t@ApiProperty()\n\tsourceId: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n}\n\nexport class CopyFileListResponse extends PaginationResponse {\n\tconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CopyFileResponse] })\n\tdata: CopyFileResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFileResponseBuilder.html":{"url":"classes/CopyFileResponseBuilder.html","title":"class - CopyFileResponseBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFileResponseBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/copy-file-response.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(id: string, sourceId: string, name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/copy-file-response.builder.ts:4\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n sourceId\n \n string\n \n\n \n No\n \n\n\n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyFileResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CopyFileResponse } from '../controller/dto';\n\nexport class CopyFileResponseBuilder {\n\tpublic static build(id: string, sourceId: string, name: string): CopyFileResponse {\n\t\tconst copyFileResponse = new CopyFileResponse({ id, sourceId, name });\n\n\t\treturn copyFileResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CopyFiles.html":{"url":"interfaces/CopyFiles.html","title":"interface - CopyFiles","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CopyFiles\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/interface/index.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n sourcePath\n \n \n \n \n targetPath\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n sourcePath\n \n \n \n \n \n \n \n \n sourcePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n targetPath\n \n \n \n \n \n \n \n \n targetPath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\n\nexport interface S3Config {\n\tconnectionName: string;\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\nexport interface GetFile {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n}\n\nexport interface CopyFiles {\n\tsourcePath: string;\n\ttargetPath: string;\n}\n\nexport interface File {\n\tdata: Readable;\n\tname: string;\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFilesOfParentParamBuilder.html":{"url":"classes/CopyFilesOfParentParamBuilder.html","title":"class - CopyFilesOfParentParamBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFilesOfParentParamBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/mapper/copy-files-of-parent-param.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(userId: EntityId, source: IFileRequestInfo, target: IFileRequestInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/copy-files-of-parent-param.builder.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n source\n \n IFileRequestInfo\n \n\n \n No\n \n\n\n \n \n target\n \n IFileRequestInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICopyFilesRequestInfo\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { IFileRequestInfo } from '../interfaces';\nimport { ICopyFilesRequestInfo } from '../interfaces/copy-file-request-info';\n\nexport class CopyFilesOfParentParamBuilder {\n\tstatic build(userId: EntityId, source: IFileRequestInfo, target: IFileRequestInfo): ICopyFilesRequestInfo {\n\t\tconst fileRequestInfo = {\n\t\t\tuserId,\n\t\t\tsource,\n\t\t\ttarget,\n\t\t};\n\n\t\treturn fileRequestInfo;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFilesOfParentParams.html":{"url":"classes/CopyFilesOfParentParams.html","title":"class - CopyFilesOfParentParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFilesOfParentParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : FileRecordParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@ValidateNested()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:84\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyFilesOfParentPayload.html":{"url":"classes/CopyFilesOfParentPayload.html","title":"class - CopyFilesOfParentPayload","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyFilesOfParentPayload\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n source\n \n \n \n target\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n source\n \n \n \n \n \n \n Type : FileRecordParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:102\n \n \n\n\n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : FileRecordParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:105\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:99\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CopyFilesService.html":{"url":"injectables/CopyFilesService.html","title":"injectable - CopyFilesService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CopyFilesService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/service/copy-files.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyFilesOfEntity\n \n \n Private\n createFileUrlReplacements\n \n \n Private\n deriveCopyStatus\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(copyHelperService: CopyHelperService, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/copy-files.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyFilesOfEntity\n \n \n \n \n \n \n \n copyFilesOfEntity(originalEntity: T, copyEntity: T, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/copy-files.service.ts:23\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalEntity\n \n T\n \n\n \n No\n \n\n\n \n \n copyEntity\n \n T\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createFileUrlReplacements\n \n \n \n \n \n \n \n createFileUrlReplacements(fileDtos: CopyFileDto[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/copy-files.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileDtos\n \n CopyFileDto[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileUrlReplacement[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deriveCopyStatus\n \n \n \n \n \n \n \n deriveCopyStatus(fileDtos: CopyFileDto[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/copy-files.service.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileDtos\n \n CopyFileDto[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@src/modules/copy-helper';\nimport { CopyFileDto } from '../dto';\nimport { EntityWithEmbeddedFiles } from '../interfaces';\nimport { CopyFilesOfParentParamBuilder, FileParamBuilder } from '../mapper';\nimport { FilesStorageClientAdapterService } from './files-storage-client.service';\n\nconst FILE_COULD_NOT_BE_COPIED_HINT = 'fileCouldNotBeCopied';\n\nexport type FileUrlReplacement = {\n\tregex: RegExp;\n\treplacement: string;\n};\n\n@Injectable()\nexport class CopyFilesService {\n\tconstructor(\n\t\tprivate readonly copyHelperService: CopyHelperService,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync copyFilesOfEntity(\n\t\toriginalEntity: T,\n\t\tcopyEntity: T,\n\t\tuserId: EntityId\n\t): Promise {\n\t\tconst source = FileParamBuilder.build(originalEntity.getSchoolId(), originalEntity);\n\t\tconst target = FileParamBuilder.build(copyEntity.getSchoolId(), copyEntity);\n\t\tconst copyFilesOfParentParams = CopyFilesOfParentParamBuilder.build(userId, source, target);\n\n\t\tconst fileDtos = await this.filesStorageClientAdapterService.copyFilesOfParent(copyFilesOfParentParams);\n\t\tconst fileUrlReplacements = this.createFileUrlReplacements(fileDtos);\n\t\tconst fileCopyStatus = this.deriveCopyStatus(fileDtos);\n\n\t\treturn { fileUrlReplacements, fileCopyStatus };\n\t}\n\n\tprivate createFileUrlReplacements(fileDtos: CopyFileDto[]): FileUrlReplacement[] {\n\t\treturn fileDtos.map((fileDto): FileUrlReplacement => {\n\t\t\tconst { sourceId, id, name } = fileDto;\n\n\t\t\t// use hint as id replacement, if file could not be copied\n\t\t\tconst newId = id ?? FILE_COULD_NOT_BE_COPIED_HINT;\n\n\t\t\tconst fileUrlReplacement: FileUrlReplacement = {\n\t\t\t\tregex: new RegExp(`${sourceId}.+?\"`, 'g'),\n\t\t\t\treplacement: `${newId}/${name}\"`,\n\t\t\t};\n\n\t\t\treturn fileUrlReplacement;\n\t\t});\n\t}\n\n\tprivate deriveCopyStatus(fileDtos: CopyFileDto[]): CopyStatus {\n\t\tconst fileStatuses: CopyStatus[] = fileDtos.map(({ sourceId, id, name }) => {\n\t\t\tconst result = {\n\t\t\t\ttype: CopyElementType.FILE,\n\t\t\t\tstatus: id ? CopyStatusEnum.SUCCESS : CopyStatusEnum.FAIL,\n\t\t\t\ttitle: name ?? `(old fileid: ${sourceId})`,\n\t\t\t};\n\t\t\treturn result;\n\t\t});\n\n\t\tconst fileGroupStatus = {\n\t\t\ttype: CopyElementType.FILE_GROUP,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(fileStatuses),\n\t\t\telements: fileStatuses,\n\t\t};\n\t\treturn fileGroupStatus;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CopyHelperModule.html":{"url":"modules/CopyHelperModule.html","title":"module - CopyHelperModule","body":"\n \n\n\n\n\n Modules\n CopyHelperModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CopyHelperModule\n\n\n\ncluster_CopyHelperModule_providers\n\n\n\ncluster_CopyHelperModule_exports\n\n\n\n\nCopyHelperService \n\nCopyHelperService \n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\nCopyHelperService -->\n\nCopyHelperModule->CopyHelperService \n\n\n\n\n\nCopyHelperService\n\nCopyHelperService\n\nCopyHelperModule -->\n\nCopyHelperService->CopyHelperModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/copy-helper/copy-helper.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CopyHelperService\n \n \n \n \n Exports\n \n \n CopyHelperService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CopyHelperService } from './service/copy-helper.service';\n\n@Module({\n\tproviders: [CopyHelperService],\n\texports: [CopyHelperService],\n})\nexport class CopyHelperModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CopyHelperService.html":{"url":"injectables/CopyHelperService.html","title":"injectable - CopyHelperService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CopyHelperService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/copy-helper/service/copy-helper.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n buildCopyEntityDict\n \n \n deriveCopyName\n \n \n deriveStatusFromElements\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n buildCopyEntityDict\n \n \n \n \n \n \nbuildCopyEntityDict(status: CopyStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/service/copy-helper.service.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n status\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Map\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deriveCopyName\n \n \n \n \n \n \nderiveCopyName(name: string, existingNames: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/service/copy-helper.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n existingNames\n \n string[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deriveStatusFromElements\n \n \n \n \n \n \nderiveStatusFromElements(elements: CopyStatus[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/service/copy-helper.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatusEnum\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { BaseEntity } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { CopyStatus, CopyStatusEnum } from '../types/copy.types';\n\nconst isAtLeastPartialSuccessfull = (status) => status === CopyStatusEnum.PARTIAL || status === CopyStatusEnum.SUCCESS;\n\n@Injectable()\nexport class CopyHelperService {\n\tderiveStatusFromElements(elements: CopyStatus[]): CopyStatusEnum {\n\t\tconst elementsStatuses = elements.map((el) => el.status);\n\n\t\tconst filtered = elementsStatuses.filter((status) => status !== CopyStatusEnum.NOT_DOING);\n\n\t\tif (filtered.length > 0) {\n\t\t\tif (filtered.every((status) => !isAtLeastPartialSuccessfull(status))) {\n\t\t\t\treturn CopyStatusEnum.FAIL;\n\t\t\t}\n\n\t\t\tif (filtered.some((status) => status !== CopyStatusEnum.SUCCESS)) {\n\t\t\t\treturn CopyStatusEnum.PARTIAL;\n\t\t\t}\n\t\t}\n\n\t\treturn CopyStatusEnum.SUCCESS;\n\t}\n\n\tderiveCopyName(name: string, existingNames: string[] = []): string {\n\t\tif (!existingNames.includes(name)) {\n\t\t\treturn name;\n\t\t}\n\t\tlet num = 1;\n\t\tconst matches = name.match(/^(?.*) \\((?\\d+)\\)$/);\n\t\tif (matches && matches.groups) {\n\t\t\tname = matches.groups.name;\n\t\t\tnum = Number(matches.groups.number) + 1;\n\t\t}\n\t\tconst composedName = `${name} (${num})`;\n\t\tif (existingNames.includes(composedName)) {\n\t\t\treturn this.deriveCopyName(composedName, existingNames);\n\t\t}\n\t\treturn composedName;\n\t}\n\n\tbuildCopyEntityDict(status: CopyStatus): Map {\n\t\tconst map = new Map();\n\t\tstatus.elements?.forEach((elementStatus: CopyStatus) => {\n\t\t\tthis.buildCopyEntityDict(elementStatus).forEach((el, key) => map.set(key, el));\n\t\t});\n\t\tif (status.originalEntity && status.copyEntity) {\n\t\t\tmap.set(status.originalEntity.id, status.copyEntity);\n\t\t}\n\t\treturn map;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CopyMapper.html":{"url":"classes/CopyMapper.html","title":"class - CopyMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CopyMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/copy-helper/mapper/copy.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapLessonCopyToDomain\n \n \n Static\n mapTaskCopyToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapLessonCopyToDomain\n \n \n \n \n \n \n \n mapLessonCopyToDomain(params: LessonCopyApiParams, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/mapper/copy.mapper.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n LessonCopyApiParams\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LessonCopyParentParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapTaskCopyToDomain\n \n \n \n \n \n \n \n mapTaskCopyToDomain(params: TaskCopyApiParams, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/mapper/copy.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskCopyApiParams\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskCopyParentParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(copyStatus: CopyStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/copy-helper/mapper/copy.mapper.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n copyStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyApiResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, LessonEntity, Task } from '@shared/domain';\nimport { LessonCopyApiParams } from '@src/modules/learnroom/controller/dto/lesson/lesson-copy.params';\nimport { LessonCopyParentParams } from '@src/modules/lesson/types';\nimport { TaskCopyApiParams } from '@src/modules/task/controller/dto/task-copy.params';\nimport { TaskCopyParentParams } from '@src/modules/task/types';\nimport { CopyApiResponse } from '../dto/copy.response';\nimport { CopyStatus, CopyStatusEnum } from '../types/copy.types';\n\nexport class CopyMapper {\n\tstatic mapToResponse(copyStatus: CopyStatus): CopyApiResponse {\n\t\tconst dto = new CopyApiResponse({\n\t\t\ttitle: copyStatus.title,\n\t\t\ttype: copyStatus.type,\n\t\t\tstatus: copyStatus.status,\n\t\t});\n\n\t\tif (copyStatus.copyEntity) {\n\t\t\tconst copyEntity = copyStatus.copyEntity as LessonEntity | Task;\n\t\t\tdto.id = copyEntity.id;\n\t\t\tdto.destinationCourseId = copyEntity.course?.id;\n\t\t}\n\t\tif (copyStatus.status !== CopyStatusEnum.SUCCESS && copyStatus.elements) {\n\t\t\tdto.elements = copyStatus.elements\n\t\t\t\t.map((element) => CopyMapper.mapToResponse(element))\n\t\t\t\t.filter((element) => element.status !== CopyStatusEnum.SUCCESS);\n\t\t}\n\t\treturn dto;\n\t}\n\n\tstatic mapLessonCopyToDomain(params: LessonCopyApiParams, userId: EntityId): LessonCopyParentParams {\n\t\tconst dto = {\n\t\t\tcourseId: params.courseId,\n\t\t\tuserId,\n\t\t};\n\n\t\treturn dto;\n\t}\n\n\tstatic mapTaskCopyToDomain(params: TaskCopyApiParams, userId: EntityId): TaskCopyParentParams {\n\t\tconst dto = {\n\t\t\tcourseId: params.courseId,\n\t\t\tlessonId: params.lessonId,\n\t\t\tuserId,\n\t\t};\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/CoreModule.html":{"url":"modules/CoreModule.html","title":"module - CoreModule","body":"\n \n\n\n\n\n Modules\n CoreModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_CoreModule\n\n\n\ncluster_CoreModule_imports\n\n\n\ncluster_CoreModule_exports\n\n\n\n\nErrorModule\n\nErrorModule\n\n\n\nCoreModule\n\nCoreModule\n\nCoreModule -->\n\nErrorModule->CoreModule\n\n\n\n\n\nInterceptorModule\n\nInterceptorModule\n\nCoreModule -->\n\nInterceptorModule->CoreModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nCoreModule -->\n\nLoggerModule->CoreModule\n\n\n\n\n\nValidationModule\n\nValidationModule\n\nCoreModule -->\n\nValidationModule->CoreModule\n\n\n\n\n\nLoggerModule \n\nLoggerModule \n\nLoggerModule -->\n\nCoreModule->LoggerModule \n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/core.module.ts\n \n\n\n\n \n Description\n \n \n The core module configures the cross-functional application behaviour by customizing error handling providing and logging.\nOverrides/Configures global APP_INTERCEPTOR, APP_PIPE, APP_GUARD, APP_FILTER\n\n \n\n\n \n \n \n Imports\n \n \n ErrorModule\n \n \n InterceptorModule\n \n \n LoggerModule\n \n \n ValidationModule\n \n \n \n \n Exports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ErrorModule } from './error';\nimport { InterceptorModule } from './interceptor';\nimport { LoggerModule } from './logger';\nimport { ValidationModule } from './validation';\n\n/**\n * The core module configures the cross-functional application behaviour by customizing error handling providing and logging.\n * Overrides/Configures global APP_INTERCEPTOR, APP_PIPE, APP_GUARD, APP_FILTER\n */\n@Module({\n\timports: [LoggerModule, ErrorModule, ValidationModule, InterceptorModule],\n\texports: [LoggerModule],\n})\nexport class CoreModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/County.html":{"url":"classes/County.html","title":"class - County","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n County\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/federal-state.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n antaresKey\n \n \n countyId\n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(county: County)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n county\n \n \n County\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n antaresKey\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n countyId\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IFederalStateProperties {\n\tname: string;\n\tabbreviation: string;\n\tlogoUrl: string;\n\tcounties?: County[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n@Embeddable()\nexport class County {\n\tconstructor(county: County) {\n\t\tthis.name = county.name;\n\t\tthis.countyId = county.countyId;\n\t\tthis.antaresKey = county.antaresKey;\n\t}\n\n\tname: string;\n\n\tcountyId: number;\n\n\tantaresKey: string;\n}\n\n@Entity({ tableName: 'federalstates' })\nexport class FederalState extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\tabbreviation: string;\n\n\t@Property()\n\tlogoUrl: string;\n\n\t@Embedded(() => County, { array: true, nullable: true })\n\tcounties?: County[];\n\n\tconstructor(props: IFederalStateProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.abbreviation = props.abbreviation;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.updatedAt = props.updatedAt;\n\t\tthis.createdAt = props.createdAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Course.html":{"url":"entities/Course.html","title":"entity - Course","body":"\n \n\n\n\n\n\n\n\n Entities\n Course\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/course.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n color\n \n \n \n Optional\n copyingSince\n \n \n \n courseGroups\n \n \n \n description\n \n \n \n Optional\n features\n \n \n \n name\n \n \n \n \n school\n \n \n \n \n Optional\n shareToken\n \n \n \n Optional\n startDate\n \n \n \n \n students\n \n \n \n \n substitutionTeachers\n \n \n \n \n teachers\n \n \n \n \n Optional\n untilDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n color\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : DEFAULT.color\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:71\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:81\n \n \n\n\n \n \n \n \n \n \n \n \n \n courseGroups\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @OneToMany('CourseGroup', 'course', {orphanRemoval: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:67\n \n \n\n\n \n \n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : DEFAULT.description\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n features\n \n \n \n \n \n \n Type : CourseFeatures[]\n\n \n \n \n \n Decorators : \n \n \n @Enum({nullable: true, array: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:88\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : DEFAULT.name\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne(undefined, {fieldName: 'schoolId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n shareToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Unique({options: undefined})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:85\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n startDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:74\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n students\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('User', undefined, {fieldName: 'userIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n substitutionTeachers\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('User', undefined, {fieldName: 'substitutionIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:64\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n teachers\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('User', undefined, {fieldName: 'teacherIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n untilDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Index()@Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/course.entity.ts:78\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Enum, Index, ManyToMany, ManyToOne, OneToMany, Property, Unique } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common/exceptions/internal-server-error.exception';\nimport { IEntityWithSchool, ILearnroom } from '@shared/domain/interface';\nimport { EntityId, LearnroomMetadata, LearnroomTypes } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport type { ILessonParent } from './lesson.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { ITaskParent } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ICourseProperties {\n\tname?: string;\n\tdescription?: string;\n\tschool: SchoolEntity;\n\tstudents?: User[];\n\tteachers?: User[];\n\tsubstitutionTeachers?: User[];\n\t// TODO: color format\n\tcolor?: string;\n\tstartDate?: Date;\n\tuntilDate?: Date;\n\tcopyingSince?: Date;\n\tfeatures?: CourseFeatures[];\n}\n\n// that is really really shit default handling :D constructor, getter, js default, em default...what the hell\n// i hope it can cleanup with adding schema instant of I...Properties.\nconst DEFAULT = {\n\tcolor: '#ACACAC',\n\tname: 'Kurse',\n\tdescription: '',\n};\n\nconst enum CourseFeatures {\n\tVIDEOCONFERENCE = 'videoconference',\n}\n\n@Entity({ tableName: 'courses' })\nexport class Course\n\textends BaseEntityWithTimestamps\n\timplements ILearnroom, IEntityWithSchool, ITaskParent, ILessonParent\n{\n\t@Property()\n\tname: string = DEFAULT.name;\n\n\t@Property()\n\tdescription: string = DEFAULT.description;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'userIds' })\n\tstudents = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'teacherIds' })\n\tteachers = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'substitutionIds' })\n\tsubstitutionTeachers = new Collection(this);\n\n\t@OneToMany('CourseGroup', 'course', { orphanRemoval: true })\n\tcourseGroups = new Collection(this);\n\n\t// TODO: string color format\n\t@Property()\n\tcolor: string = DEFAULT.color;\n\n\t@Property({ nullable: true })\n\tstartDate?: Date;\n\n\t@Index()\n\t@Property({ nullable: true })\n\tuntilDate?: Date;\n\n\t@Property({ nullable: true })\n\tcopyingSince?: Date;\n\n\t@Property({ nullable: true })\n\t@Unique({ options: { sparse: true } })\n\tshareToken?: string;\n\n\t@Enum({ nullable: true, array: true })\n\tfeatures?: CourseFeatures[];\n\n\tconstructor(props: ICourseProperties) {\n\t\tsuper();\n\t\tif (props.name) this.name = props.name;\n\t\tif (props.description) this.description = props.description;\n\t\tthis.school = props.school;\n\t\tthis.students.set(props.students || []);\n\t\tthis.teachers.set(props.teachers || []);\n\t\tthis.substitutionTeachers.set(props.substitutionTeachers || []);\n\t\tif (props.color) this.color = props.color;\n\t\tif (props.untilDate) this.untilDate = props.untilDate;\n\t\tif (props.startDate) this.startDate = props.startDate;\n\t\tif (props.copyingSince) this.copyingSince = props.copyingSince;\n\t\tif (props.features) this.features = props.features;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = this.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = this.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = this.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate extractIds(users: Collection): EntityId[] {\n\t\tif (!users) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t`Students, teachers or stubstitution is undefined. The course needs to be populated`\n\t\t\t);\n\t\t}\n\n\t\tconst objectIds = users.getIdentifiers('_id');\n\t\tconst ids = objectIds.map((id): string => id.toString());\n\n\t\treturn ids;\n\t}\n\n\tpublic isUserSubstitutionTeacher(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.substitutionTeachers.contains(user);\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic getCourseGroupItems(): CourseGroup[] {\n\t\tif (!this.courseGroups.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Courses trying to access their course groups that are not loaded.');\n\t\t}\n\t\tconst courseGroups = this.courseGroups.getItems();\n\n\t\treturn courseGroups;\n\t}\n\n\tgetShortTitle(): string {\n\t\tif (this.name.length === 1) {\n\t\t\treturn this.name;\n\t\t}\n\t\tconst [firstChar, secondChar] = [...this.name];\n\t\tconst pattern = /\\p{Extended_Pictographic}/u;\n\t\tif (pattern.test(firstChar)) {\n\t\t\treturn firstChar;\n\t\t}\n\t\treturn firstChar + secondChar;\n\t}\n\n\tpublic getMetadata(): LearnroomMetadata {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\ttype: LearnroomTypes.Course,\n\t\t\ttitle: this.name,\n\t\t\tshortTitle: this.getShortTitle(),\n\t\t\tdisplayColor: this.color,\n\t\t\tuntilDate: this.untilDate,\n\t\t\tstartDate: this.startDate,\n\t\t\tcopyingSince: this.copyingSince,\n\t\t};\n\t}\n\n\tpublic isFinished(): boolean {\n\t\tif (!this.untilDate) {\n\t\t\treturn false;\n\t\t}\n\t\tconst isFinished = this.untilDate u.id === userId);\n\t}\n\n\tprivate removeTeacher(userId: EntityId): void {\n\t\tthis.teachers.remove((u) => u.id === userId);\n\t}\n\n\tprivate removeSubstitutionTeacher(userId: EntityId): void {\n\t\tthis.substitutionTeachers.remove((u) => u.id === userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/CourseController.html":{"url":"controllers/CourseController.html","title":"controller - CourseController","body":"\n \n\n\n\n\n\n\n Controllers\n CourseController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/course.controller.ts\n \n\n \n Prefix\n \n \n courses\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n Async\n findForUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n \n \n \n \n exportCourse(currentUser: ICurrentUser, urlParams: CourseUrlParams, queryParams: CourseQueryParams, response: Response)\n \n \n\n \n \n Decorators : \n \n @Get(':courseId/export')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/course.controller.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n CourseUrlParams\n \n\n \n No\n \n\n\n \n \n queryParams\n \n CourseQueryParams\n \n\n \n No\n \n\n\n \n \n response\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findForUser\n \n \n \n \n \n \n \n findForUser(currentUser: ICurrentUser, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/course.controller.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, NotFoundException, Param, Query, Res, StreamableFile } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { PaginationParams } from '@shared/controller/';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Response } from 'express';\nimport { ConfigService } from '@nestjs/config';\nimport { CourseUc } from '../uc/course.uc';\nimport { CourseExportUc } from '../uc/course-export.uc';\nimport { CourseMetadataListResponse, CourseUrlParams, CourseQueryParams } from './dto';\nimport { CourseMapper } from '../mapper/course.mapper';\n\n@ApiTags('Courses')\n@Authenticate('jwt')\n@Controller('courses')\nexport class CourseController {\n\tconstructor(\n\t\tprivate readonly courseUc: CourseUc,\n\t\tprivate readonly courseExportUc: CourseExportUc,\n\t\tprivate readonly configService: ConfigService\n\t) {}\n\n\t@Get()\n\tasync findForUser(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\tconst [courses, total] = await this.courseUc.findAllByUser(currentUser.userId, pagination);\n\t\tconst courseResponses = courses.map((course) => CourseMapper.mapToMetadataResponse(course));\n\t\tconst { skip, limit } = pagination;\n\n\t\tconst result = new CourseMetadataListResponse(courseResponses, total, skip, limit);\n\t\treturn result;\n\t}\n\n\t@Get(':courseId/export')\n\tasync exportCourse(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: CourseUrlParams,\n\t\t@Query() queryParams: CourseQueryParams,\n\t\t@Res({ passthrough: true }) response: Response\n\t): Promise {\n\t\tif (!this.configService.get('FEATURE_IMSCC_COURSE_EXPORT_ENABLED')) throw new NotFoundException();\n\t\tconst result = await this.courseExportUc.exportCourse(urlParams.courseId, currentUser.userId, queryParams.version);\n\t\tresponse.set({\n\t\t\t'Content-Type': 'application/zip',\n\t\t\t'Content-Disposition': 'attachment;',\n\t\t});\n\t\treturn new StreamableFile(result);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseCopyService.html":{"url":"injectables/CourseCopyService.html","title":"injectable - CourseCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseCopyService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/course-copy.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyCourse\n \n \n Private\n Async\n copyCourseEntity\n \n \n Private\n deriveCourseStatus\n \n \n Private\n Async\n finishCourseCopying\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRepo: CourseRepo, boardRepo: BoardRepo, roomsService: RoomsService, boardCopyService: BoardCopyService, copyHelperService: CopyHelperService, userRepo: UserRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n boardRepo\n \n \n BoardRepo\n \n \n \n No\n \n \n \n \n roomsService\n \n \n RoomsService\n \n \n \n No\n \n \n \n \n boardCopyService\n \n \n BoardCopyService\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyCourse\n \n \n \n \n \n \n \n copyCourse(undefined: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyCourseEntity\n \n \n \n \n \n \n \n copyCourseEntity(params: CourseCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n CourseCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deriveCourseStatus\n \n \n \n \n \n \n \n deriveCourseStatus(originalCourse: Course, courseCopy: Course, boardStatus: CopyStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalCourse\n \n Course\n \n\n \n No\n \n\n\n \n \n courseCopy\n \n Course\n \n\n \n No\n \n\n\n \n \n boardStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n finishCourseCopying\n \n \n \n \n \n \n \n finishCourseCopying(courseCopy: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course-copy.service.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseCopy\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, EntityId, User } from '@shared/domain';\nimport { BoardRepo, CourseRepo, UserRepo } from '@shared/repo';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@src/modules/copy-helper';\nimport { BoardCopyService } from './board-copy.service';\nimport { RoomsService } from './rooms.service';\n\ntype CourseCopyParams = {\n\toriginalCourse: Course;\n\tuser: User;\n\tcopyName?: string;\n};\n\n@Injectable()\nexport class CourseCopyService {\n\tconstructor(\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly boardRepo: BoardRepo,\n\t\tprivate readonly roomsService: RoomsService,\n\t\tprivate readonly boardCopyService: BoardCopyService,\n\t\tprivate readonly copyHelperService: CopyHelperService,\n\t\tprivate readonly userRepo: UserRepo\n\t) {}\n\n\tasync copyCourse({\n\t\tuserId,\n\t\tcourseId,\n\t\tnewName,\n\t}: {\n\t\tuserId: EntityId;\n\t\tcourseId: EntityId;\n\t\tnewName?: string | undefined;\n\t}): Promise {\n\t\tconst user: User = await this.userRepo.findById(userId, true);\n\n\t\t// fetch original course and board\n\t\tconst originalCourse = await this.courseRepo.findById(courseId);\n\t\tlet originalBoard = await this.boardRepo.findByCourseId(courseId);\n\t\toriginalBoard = await this.roomsService.updateBoard(originalBoard, courseId, userId);\n\n\t\t// handle potential name conflict\n\t\tconst [existingCourses] = await this.courseRepo.findAllByUserId(userId);\n\t\tconst existingNames = existingCourses.map((course: Course) => course.name);\n\t\tconst copyName = this.copyHelperService.deriveCopyName(newName || originalCourse.name, existingNames);\n\n\t\t// copy course and board\n\t\tconst courseCopy = await this.copyCourseEntity({ user, originalCourse, copyName });\n\t\tconst boardStatus = await this.boardCopyService.copyBoard({ originalBoard, destinationCourse: courseCopy, user });\n\t\tconst finishedCourseCopy = await this.finishCourseCopying(courseCopy);\n\n\t\tconst courseStatus = this.deriveCourseStatus(originalCourse, finishedCourseCopy, boardStatus);\n\n\t\treturn courseStatus;\n\t}\n\n\tprivate async copyCourseEntity(params: CourseCopyParams): Promise {\n\t\tconst { originalCourse, user, copyName } = params;\n\t\tconst courseCopy = new Course({\n\t\t\tschool: user.school,\n\t\t\tname: copyName,\n\t\t\tcolor: originalCourse.color,\n\t\t\tteachers: [user],\n\t\t\tstartDate: user.school.schoolYear?.startDate,\n\t\t\tuntilDate: user.school.schoolYear?.endDate,\n\t\t\tcopyingSince: new Date(),\n\t\t});\n\n\t\tawait this.courseRepo.createCourse(courseCopy);\n\t\treturn courseCopy;\n\t}\n\n\tprivate async finishCourseCopying(courseCopy: Course) {\n\t\tdelete courseCopy.copyingSince;\n\t\tawait this.courseRepo.save(courseCopy);\n\t\treturn courseCopy;\n\t}\n\n\tprivate deriveCourseStatus(originalCourse: Course, courseCopy: Course, boardStatus: CopyStatus): CopyStatus {\n\t\tconst elements = [\n\t\t\t{\n\t\t\t\ttype: CopyElementType.METADATA,\n\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.USER_GROUP,\n\t\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.LTITOOL_GROUP,\n\t\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.TIME_GROUP,\n\t\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t\t},\n\t\t\tboardStatus,\n\t\t];\n\n\t\tconst courseGroupsExist = originalCourse.getCourseGroupItems().length > 0;\n\t\tif (courseGroupsExist) {\n\t\t\telements.push({ type: CopyElementType.COURSEGROUP_GROUP, status: CopyStatusEnum.NOT_IMPLEMENTED });\n\t\t}\n\n\t\tconst status = {\n\t\t\ttitle: courseCopy.name,\n\t\t\ttype: CopyElementType.COURSE,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\tcopyEntity: courseCopy,\n\t\t\toriginalEntity: originalCourse,\n\t\t\telements,\n\t\t};\n\t\treturn status;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseCopyUC.html":{"url":"injectables/CourseCopyUC.html","title":"injectable - CourseCopyUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseCopyUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/course-copy.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkFeatureEnabled\n \n \n Async\n copyCourse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorization: AuthorizationService, courseCopyService: CourseCopyService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course-copy.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorization\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n courseCopyService\n \n \n CourseCopyService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkFeatureEnabled\n \n \n \n \n \n \n \n checkFeatureEnabled()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/course-copy.uc.ts:28\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n copyCourse\n \n \n \n \n \n \n \n copyCourse(userId: EntityId, courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/course-copy.uc.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { Action, AuthorizableReferenceType, AuthorizationService } from '@src/modules/authorization';\nimport { CopyStatus } from '@src/modules/copy-helper';\nimport { CourseCopyService } from '../service';\n\n@Injectable()\nexport class CourseCopyUC {\n\tconstructor(\n\t\tprivate readonly authorization: AuthorizationService,\n\t\tprivate readonly courseCopyService: CourseCopyService\n\t) {}\n\n\tasync copyCourse(userId: EntityId, courseId: EntityId): Promise {\n\t\tthis.checkFeatureEnabled();\n\n\t\tawait this.authorization.checkPermissionByReferences(userId, AuthorizableReferenceType.Course, courseId, {\n\t\t\taction: Action.write,\n\t\t\trequiredPermissions: [Permission.COURSE_CREATE],\n\t\t});\n\n\t\tconst result = await this.courseCopyService.copyCourse({ userId, courseId });\n\n\t\treturn result;\n\t}\n\n\tprivate checkFeatureEnabled() {\n\t\tconst enabled = Configuration.get('FEATURE_COPY_SERVICE_ENABLED') as boolean;\n\t\tif (!enabled) {\n\t\t\tthrow new InternalServerErrorException('Copy Feature not enabled');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseExportUc.html":{"url":"injectables/CourseExportUc.html","title":"injectable - CourseExportUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseExportUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/course-export.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseExportService: CommonCartridgeExportService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course-export.uc.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseExportService\n \n \n CommonCartridgeExportService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n exportCourse\n \n \n \n \n \n \n \n exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/course-export.uc.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n version\n \n CommonCartridgeVersion\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { Action, AuthorizableReferenceType, AuthorizationService } from '@src/modules/authorization';\nimport { CommonCartridgeVersion } from '../common-cartridge';\nimport { CommonCartridgeExportService } from '../service/common-cartridge-export.service';\n\n@Injectable()\nexport class CourseExportUc {\n\tconstructor(\n\t\tprivate readonly courseExportService: CommonCartridgeExportService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tasync exportCourse(courseId: EntityId, userId: EntityId, version: CommonCartridgeVersion): Promise {\n\t\tawait this.authorizationService.checkPermissionByReferences(userId, AuthorizableReferenceType.Course, courseId, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [Permission.COURSE_EDIT],\n\t\t});\n\t\treturn this.courseExportService.exportCourse(courseId, userId, version);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseFactory.html":{"url":"classes/CourseFactory.html","title":"class - CourseFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/course.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n isFinished\n \n \n isOpen\n \n \n studentsWithId\n \n \n teachersWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n isFinished\n \n \n \n \n \n \nisFinished()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/course.factory.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n isOpen\n \n \n \n \n \n \nisOpen()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/course.factory.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n studentsWithId\n \n \n \n \n \n \nstudentsWithId(numberOfStudents: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/course.factory.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n numberOfStudents\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n teachersWithId\n \n \n \n \n \n \nteachersWithId(numberOfTeachers: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/course.factory.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n numberOfTeachers\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { DeepPartial } from 'fishery';\n\nimport { Course, ICourseProperties } from '@shared/domain';\n\nimport { schoolFactory } from './school.factory';\nimport { BaseFactory } from './base.factory';\nimport { userFactory } from './user.factory';\n\nconst oneDay = 24 * 60 * 60 * 1000;\n\nclass CourseFactory extends BaseFactory {\n\tisFinished(): this {\n\t\tconst untilDate = new Date(Date.now() - oneDay);\n\t\tconst params: DeepPartial = { untilDate };\n\n\t\treturn this.params(params);\n\t}\n\n\tisOpen(): this {\n\t\tconst untilDate = new Date(Date.now() + oneDay);\n\t\tconst params: DeepPartial = { untilDate };\n\n\t\treturn this.params(params);\n\t}\n\n\tstudentsWithId(numberOfStudents: number): this {\n\t\tconst students = userFactory.buildListWithId(numberOfStudents);\n\t\tconst params: DeepPartial = { students };\n\n\t\treturn this.params(params);\n\t}\n\n\tteachersWithId(numberOfTeachers: number): this {\n\t\tconst teachers = userFactory.buildListWithId(numberOfTeachers);\n\t\tconst params: DeepPartial = { teachers };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const courseFactory = CourseFactory.define(Course, ({ sequence }) => {\n\treturn {\n\t\tname: `course #${sequence}`,\n\t\tdescription: `course #${sequence} description`,\n\t\tcolor: '#FFFFFF',\n\t\tschool: schoolFactory.build(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/CourseGroup.html":{"url":"entities/CourseGroup.html","title":"entity - CourseGroup","body":"\n \n\n\n\n\n\n\n\n Entities\n CourseGroup\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/coursegroup.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n course\n \n \n \n name\n \n \n \n \n school\n \n \n \n \n students\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n course\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('Course', {fieldName: 'courseId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/coursegroup.entity.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/coursegroup.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'schoolId'})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/coursegroup.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n students\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('User', undefined, {fieldName: 'userIds'})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/coursegroup.entity.ts:25\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property } from '@mikro-orm/core';\nimport { IEntityWithSchool } from '../interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { ILessonParent } from './lesson.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { ITaskParent } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ICourseGroupProperties {\n\tname: string;\n\tcourse: Course;\n\tstudents?: User[];\n}\n\n@Entity({ tableName: 'coursegroups' })\n@Index({ properties: ['school', 'course'] })\nexport class CourseGroup extends BaseEntityWithTimestamps implements IEntityWithSchool, ITaskParent, ILessonParent {\n\t@Property()\n\tname: string;\n\n\t@ManyToMany('User', undefined, { fieldName: 'userIds' })\n\t@Index()\n\tstudents = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\t@Index()\n\tschool: SchoolEntity;\n\n\tconstructor(props: ICourseGroupProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.course = props.course;\n\t\tthis.school = props.course.school;\n\t\tif (props.students) this.students.set(props.students);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tlet studentIds: EntityId[] = [];\n\n\t\t// A not existing course group can be referenced in a submission.\n\t\t// Therefore we need to handle this case instead of returning an error here.\n\t\tif (this.students) {\n\t\t\tconst studentObjectIds = this.students.getIdentifiers('_id');\n\t\t\tstudentIds = studentObjectIds.map((id): string => id.toString());\n\t\t}\n\n\t\treturn studentIds;\n\t}\n\n\tpublic removeStudent(userId: EntityId): void {\n\t\tthis.students.remove((u) => u.id === userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseGroupFactory.html":{"url":"classes/CourseGroupFactory.html","title":"class - CourseGroupFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseGroupFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/coursegroup.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n studentsWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n studentsWithId\n \n \n \n \n \n \nstudentsWithId(numberOfStudents: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/coursegroup.factory.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n numberOfStudents\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CourseGroup, ICourseGroupProperties } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport { courseFactory } from './course.factory';\nimport { BaseFactory } from './base.factory';\nimport { userFactory } from './user.factory';\n\nclass CourseGroupFactory extends BaseFactory {\n\tstudentsWithId(numberOfStudents: number): this {\n\t\tconst students = userFactory.buildListWithId(numberOfStudents);\n\t\tconst params: DeepPartial = { students };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const courseGroupFactory = CourseGroupFactory.define(CourseGroup, ({ sequence }) => {\n\treturn {\n\t\tname: `courseGroup #${sequence}`,\n\t\tcourse: courseFactory.build(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseGroupRepo.html":{"url":"injectables/CourseGroupRepo.html","title":"injectable - CourseGroupRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseGroupRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findByCourseIds\n \n \n Async\n findById\n \n \n Async\n findByUserId\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findByCourseIds\n \n \n \n \n \n \n \n findByCourseIds(courseIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: string)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:13\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/coursegroup/coursegroup.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\n\nimport { Counted, EntityId, CourseGroup } from '@shared/domain';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class CourseGroupRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn CourseGroup;\n\t}\n\n\tasync findById(id: string): Promise {\n\t\tconst courseGroup = await super.findById(id);\n\t\tawait this._em.populate(courseGroup, ['course']);\n\t\treturn courseGroup;\n\t}\n\n\tasync findByCourseIds(courseIds: EntityId[]): Promise> {\n\t\tconst [courseGroups, count] = await this._em.findAndCount(CourseGroup, {\n\t\t\tcourse: { $in: courseIds },\n\t\t});\n\t\treturn [courseGroups, count];\n\t}\n\n\tasync findByUserId(userId: EntityId): Promise> {\n\t\tconst [courseGroups, count] = await this._em.findAndCount(CourseGroup, {\n\t\t\tstudents: new ObjectId(userId),\n\t\t});\n\t\treturn [courseGroups, count];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseGroupRule.html":{"url":"injectables/CourseGroupRule.html","title":"injectable - CourseGroupRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseGroupRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/course-group.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper, courseRule: CourseRule)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/course-group.rule.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n courseRule\n \n \n CourseRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: CourseGroup, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/course-group.rule.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n CourseGroup\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: CourseGroup)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/course-group.rule.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n CourseGroup\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CourseGroup, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { CourseRule } from './course.rule';\n\n@Injectable()\nexport class CourseGroupRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper, private readonly courseRule: CourseRule) {}\n\n\tpublic isApplicable(user: User, entity: CourseGroup): boolean {\n\t\tconst isMatched = entity instanceof CourseGroup;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: CourseGroup, context: AuthorizationContext): boolean {\n\t\tconst { requiredPermissions } = context;\n\n\t\tconst hasAllPermissions = this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n\t\tconst hasPermission =\n\t\t\tthis.authorizationHelper.hasAccessToEntity(user, entity, ['students']) ||\n\t\t\tthis.courseRule.hasPermission(user, entity.course, { action: Action.write, requiredPermissions: [] });\n\n\t\treturn hasAllPermissions && hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseGroupService.html":{"url":"injectables/CourseGroupService.html","title":"injectable - CourseGroupService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseGroupService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/coursegroup.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromCourseGroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(repo: CourseGroupRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/coursegroup.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n repo\n \n \n CourseGroupRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromCourseGroup\n \n \n \n \n \n \n \n deleteUserDataFromCourseGroup(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/coursegroup.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { CourseGroupRepo } from '@shared/repo';\n\n@Injectable()\nexport class CourseGroupService {\n\tconstructor(private readonly repo: CourseGroupRepo) {}\n\n\tpublic async deleteUserDataFromCourseGroup(userId: EntityId): Promise {\n\t\tconst [courseGroups, count] = await this.repo.findByUserId(userId);\n\n\t\tcourseGroups.forEach((courseGroup) => courseGroup.removeStudent(userId));\n\n\t\tawait this.repo.save(courseGroups);\n\n\t\treturn count;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseMapper.html":{"url":"classes/CourseMapper.html","title":"class - CourseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/mapper/course.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToMetadataResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToMetadataResponse\n \n \n \n \n \n \n \n mapToMetadataResponse(course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/course.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseMetadataResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Course } from '@shared/domain';\nimport { CourseMetadataResponse } from '../controller/dto';\n\nexport class CourseMapper {\n\tstatic mapToMetadataResponse(course: Course): CourseMetadataResponse {\n\t\tconst courseMetadata = course.getMetadata();\n\t\tconst dto = new CourseMetadataResponse(\n\t\t\tcourseMetadata.id,\n\t\t\tcourseMetadata.title,\n\t\t\tcourseMetadata.shortTitle,\n\t\t\tcourseMetadata.displayColor,\n\t\t\tcourseMetadata.startDate,\n\t\t\tcourseMetadata.untilDate,\n\t\t\tcourseMetadata.copyingSince\n\t\t);\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseMetadataListResponse.html":{"url":"classes/CourseMetadataListResponse.html","title":"class - CourseMetadataListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseMetadataListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: CourseMetadataResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:61\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n CourseMetadataResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : CourseMetadataResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:68\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\n\nexport class CourseMetadataResponse {\n\tconstructor(\n\t\tid: EntityId,\n\t\ttitle: string,\n\t\tshortTitle: string,\n\t\tdisplayColor: string,\n\t\tstartDate?: Date,\n\t\tuntilDate?: Date,\n\t\tcopyingSince?: Date\n\t) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.startDate = startDate;\n\t\tthis.untilDate = untilDate;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Start date of the course',\n\t})\n\tstartDate?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'End date of the course. After this the course counts as archived',\n\t})\n\tuntilDate?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class CourseMetadataListResponse extends PaginationResponse {\n\tconstructor(data: CourseMetadataResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CourseMetadataResponse] })\n\tdata: CourseMetadataResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseMetadataResponse.html":{"url":"classes/CourseMetadataResponse.html","title":"class - CourseMetadataResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseMetadataResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n displayColor\n \n \n \n id\n \n \n \n shortTitle\n \n \n \n Optional\n startDate\n \n \n \n title\n \n \n \n Optional\n untilDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(id: EntityId, title: string, shortTitle: string, displayColor: string, startDate?: Date, untilDate?: Date, copyingSince?: Date)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n \n EntityId\n \n \n \n No\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n shortTitle\n \n \n string\n \n \n \n No\n \n \n \n \n displayColor\n \n \n string\n \n \n \n No\n \n \n \n \n startDate\n \n \n Date\n \n \n \n Yes\n \n \n \n \n untilDate\n \n \n Date\n \n \n \n Yes\n \n \n \n \n copyingSince\n \n \n Date\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Start of the copying process if it is still ongoing - otherwise property is not set.'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Color of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the Grid element', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n shortTitle\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Short title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n startDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Start date of the course'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n untilDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'End date of the course. After this the course counts as archived'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course-metadata.response.ts:53\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\n\nexport class CourseMetadataResponse {\n\tconstructor(\n\t\tid: EntityId,\n\t\ttitle: string,\n\t\tshortTitle: string,\n\t\tdisplayColor: string,\n\t\tstartDate?: Date,\n\t\tuntilDate?: Date,\n\t\tcopyingSince?: Date\n\t) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.startDate = startDate;\n\t\tthis.untilDate = untilDate;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Start date of the course',\n\t})\n\tstartDate?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'End date of the course. After this the course counts as archived',\n\t})\n\tuntilDate?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class CourseMetadataListResponse extends PaginationResponse {\n\tconstructor(data: CourseMetadataResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CourseMetadataResponse] })\n\tdata: CourseMetadataResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/CourseNews.html":{"url":"entities/CourseNews.html","title":"entity - CourseNews","body":"\n \n\n\n\n\n\n\n\n Entities\n CourseNews\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('Course', {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:116\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseQueryParams.html":{"url":"classes/CourseQueryParams.html","title":"class - CourseQueryParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseQueryParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/course.query.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : CommonCartridgeVersion\n\n \n \n \n \n Decorators : \n \n \n @IsString()@Matches(undefined)@ApiProperty({description: 'The version of CC export', required: true, nullable: false, enum: CommonCartridgeVersion})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course.query.params.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsString, Matches } from 'class-validator';\nimport { CommonCartridgeVersion } from '../../common-cartridge';\n\nexport class CourseQueryParams {\n\t@IsString()\n\t@Matches(Object.values(CommonCartridgeVersion).join('|'))\n\t@ApiProperty({\n\t\tdescription: 'The version of CC export',\n\t\trequired: true,\n\t\tnullable: false,\n\t\tenum: CommonCartridgeVersion,\n\t})\n\tversion!: CommonCartridgeVersion;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseRepo.html":{"url":"injectables/CourseRepo.html","title":"injectable - CourseRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/course/course.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createCourse\n \n \n Async\n findAllByUserId\n \n \n Async\n findAllForTeacher\n \n \n Async\n findAllForTeacherOrSubstituteTeacher\n \n \n Async\n findById\n \n \n Async\n findOne\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createCourse\n \n \n \n \n \n \n \n createCourse(course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByUserId\n \n \n \n \n \n \n \n findAllByUserId(userId: EntityId, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllForTeacher\n \n \n \n \n \n \n \n findAllForTeacher(userId: EntityId, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllForTeacherOrSubstituteTeacher\n \n \n \n \n \n \n \n findAllForTeacherOrSubstituteTeacher(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:120\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, populate)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n populate\n \n \n\n \n No\n \n\n \n true\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOne\n \n \n \n \n \n \n \n findOne(courseId: EntityId, userId?: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:55\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\n\nimport { Counted, Course, EntityId, IFindOptions } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\nimport { Scope } from '../scope';\n\nclass CourseScope extends Scope {\n\tforAllGroupTypes(userId: EntityId): CourseScope {\n\t\tconst isStudent = { students: userId };\n\t\tconst isTeacher = { teachers: userId };\n\t\tconst isSubstitutionTeacher = { substitutionTeachers: userId };\n\n\t\tif (userId) {\n\t\t\tthis.addQuery({ $or: [isStudent, isTeacher, isSubstitutionTeacher] });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tforTeacherOrSubstituteTeacher(userId: EntityId): CourseScope {\n\t\tconst isTeacher = { teachers: userId };\n\t\tconst isSubstitutionTeacher = { substitutionTeachers: userId };\n\n\t\tif (userId) {\n\t\t\tthis.addQuery({ $or: [isTeacher, isSubstitutionTeacher] });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tforTeacher(userId: EntityId): CourseScope {\n\t\tthis.addQuery({ teachers: userId });\n\t\treturn this;\n\t}\n\n\tforActiveCourses(): CourseScope {\n\t\tconst now = new Date();\n\t\tconst noUntilDate = { untilDate: { $exists: false } } as FilterQuery;\n\t\tconst untilDateInFuture = { untilDate: { $gte: now } };\n\n\t\tthis.addQuery({ $or: [noUntilDate, untilDateInFuture] });\n\n\t\treturn this;\n\t}\n\n\tforCourseId(courseId: EntityId): CourseScope {\n\t\tthis.addQuery({ id: courseId });\n\t\treturn this;\n\t}\n}\n\n@Injectable()\nexport class CourseRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Course;\n\t}\n\n\tasync createCourse(course: Course): Promise {\n\t\treturn this.save(this.create(course));\n\t}\n\n\tasync findById(id: EntityId, populate = true): Promise {\n\t\tconst course = await super.findById(id);\n\t\tif (populate) {\n\t\t\tawait this._em.populate(course, ['courseGroups', 'teachers']);\n\t\t}\n\t\treturn course;\n\t}\n\n\tasync findAllByUserId(\n\t\tuserId: EntityId,\n\t\tfilters?: { onlyActiveCourses?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forAllGroupTypes(userId);\n\n\t\tif (filters?.onlyActiveCourses) {\n\t\t\tscope.forActiveCourses();\n\t\t}\n\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query, queryOptions);\n\n\t\treturn [courses, count];\n\t}\n\n\tasync findAllForTeacher(\n\t\tuserId: EntityId,\n\t\tfilters?: { onlyActiveCourses?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forTeacher(userId);\n\n\t\tif (filters?.onlyActiveCourses) {\n\t\t\tscope.forActiveCourses();\n\t\t}\n\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query, queryOptions);\n\n\t\treturn [courses, count];\n\t}\n\n\t// not tested in repo.integration.spec\n\tasync findAllForTeacherOrSubstituteTeacher(userId: EntityId): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forTeacherOrSubstituteTeacher(userId);\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query);\n\n\t\treturn [courses, count];\n\t}\n\n\tasync findOne(courseId: EntityId, userId?: EntityId): Promise {\n\t\tconst scope = new CourseScope();\n\t\tscope.forCourseId(courseId);\n\t\tif (userId) scope.forAllGroupTypes(userId);\n\n\t\tconst course = await this._em.findOneOrFail(Course, scope.query);\n\n\t\treturn course;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseRule.html":{"url":"injectables/CourseRule.html","title":"injectable - CourseRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/course.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/course.rule.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: Course, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/course.rule.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Course\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: Course)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/course.rule.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\n\n@Injectable()\nexport class CourseRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: Course): boolean {\n\t\tconst isMatched = entity instanceof Course;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: Course, context: AuthorizationContext): boolean {\n\t\tconst { action, requiredPermissions } = context;\n\t\tconst hasPermission =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, requiredPermissions) &&\n\t\t\tthis.authorizationHelper.hasAccessToEntity(\n\t\t\t\tuser,\n\t\t\t\tentity,\n\t\t\t\taction === Action.read ? ['teachers', 'substitutionTeachers', 'students'] : ['teachers', 'substitutionTeachers']\n\t\t\t);\n\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseScope.html":{"url":"classes/CourseScope.html","title":"class - CourseScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/course/course.repo.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n forActiveCourses\n \n \n forAllGroupTypes\n \n \n forCourseId\n \n \n forTeacher\n \n \n forTeacherOrSubstituteTeacher\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n forActiveCourses\n \n \n \n \n \n \nforActiveCourses()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:37\n \n \n\n\n \n \n\n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n forAllGroupTypes\n \n \n \n \n \n \nforAllGroupTypes(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n forCourseId\n \n \n \n \n \n \nforCourseId(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n forTeacher\n \n \n \n \n \n \nforTeacher(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n forTeacherOrSubstituteTeacher\n \n \n \n \n \n \nforTeacherOrSubstituteTeacher(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/course/course.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CourseScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\n\nimport { Counted, Course, EntityId, IFindOptions } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\nimport { Scope } from '../scope';\n\nclass CourseScope extends Scope {\n\tforAllGroupTypes(userId: EntityId): CourseScope {\n\t\tconst isStudent = { students: userId };\n\t\tconst isTeacher = { teachers: userId };\n\t\tconst isSubstitutionTeacher = { substitutionTeachers: userId };\n\n\t\tif (userId) {\n\t\t\tthis.addQuery({ $or: [isStudent, isTeacher, isSubstitutionTeacher] });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tforTeacherOrSubstituteTeacher(userId: EntityId): CourseScope {\n\t\tconst isTeacher = { teachers: userId };\n\t\tconst isSubstitutionTeacher = { substitutionTeachers: userId };\n\n\t\tif (userId) {\n\t\t\tthis.addQuery({ $or: [isTeacher, isSubstitutionTeacher] });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tforTeacher(userId: EntityId): CourseScope {\n\t\tthis.addQuery({ teachers: userId });\n\t\treturn this;\n\t}\n\n\tforActiveCourses(): CourseScope {\n\t\tconst now = new Date();\n\t\tconst noUntilDate = { untilDate: { $exists: false } } as FilterQuery;\n\t\tconst untilDateInFuture = { untilDate: { $gte: now } };\n\n\t\tthis.addQuery({ $or: [noUntilDate, untilDateInFuture] });\n\n\t\treturn this;\n\t}\n\n\tforCourseId(courseId: EntityId): CourseScope {\n\t\tthis.addQuery({ id: courseId });\n\t\treturn this;\n\t}\n}\n\n@Injectable()\nexport class CourseRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Course;\n\t}\n\n\tasync createCourse(course: Course): Promise {\n\t\treturn this.save(this.create(course));\n\t}\n\n\tasync findById(id: EntityId, populate = true): Promise {\n\t\tconst course = await super.findById(id);\n\t\tif (populate) {\n\t\t\tawait this._em.populate(course, ['courseGroups', 'teachers']);\n\t\t}\n\t\treturn course;\n\t}\n\n\tasync findAllByUserId(\n\t\tuserId: EntityId,\n\t\tfilters?: { onlyActiveCourses?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forAllGroupTypes(userId);\n\n\t\tif (filters?.onlyActiveCourses) {\n\t\t\tscope.forActiveCourses();\n\t\t}\n\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query, queryOptions);\n\n\t\treturn [courses, count];\n\t}\n\n\tasync findAllForTeacher(\n\t\tuserId: EntityId,\n\t\tfilters?: { onlyActiveCourses?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forTeacher(userId);\n\n\t\tif (filters?.onlyActiveCourses) {\n\t\t\tscope.forActiveCourses();\n\t\t}\n\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query, queryOptions);\n\n\t\treturn [courses, count];\n\t}\n\n\t// not tested in repo.integration.spec\n\tasync findAllForTeacherOrSubstituteTeacher(userId: EntityId): Promise> {\n\t\tconst scope = new CourseScope();\n\t\tscope.forTeacherOrSubstituteTeacher(userId);\n\n\t\tconst [courses, count] = await this._em.findAndCount(Course, scope.query);\n\n\t\treturn [courses, count];\n\t}\n\n\tasync findOne(courseId: EntityId, userId?: EntityId): Promise {\n\t\tconst scope = new CourseScope();\n\t\tscope.forCourseId(courseId);\n\t\tif (userId) scope.forAllGroupTypes(userId);\n\n\t\tconst course = await this._em.findOneOrFail(Course, scope.query);\n\n\t\treturn course;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseService.html":{"url":"injectables/CourseService.html","title":"injectable - CourseService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/course.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromCourse\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(repo: CourseRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/course.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n repo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromCourse\n \n \n \n \n \n \n \n deleteUserDataFromCourse(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course.service.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(courseId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/course.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CourseRepo } from '@shared/repo';\nimport { Course, EntityId } from '@shared/domain';\n\n@Injectable()\nexport class CourseService {\n\tconstructor(private readonly repo: CourseRepo) {}\n\n\tasync findById(courseId: EntityId): Promise {\n\t\treturn this.repo.findById(courseId);\n\t}\n\n\tpublic async deleteUserDataFromCourse(userId: EntityId): Promise {\n\t\tconst [courses, count] = await this.repo.findAllByUserId(userId);\n\n\t\tcourses.forEach((course: Course) => course.removeUser(userId));\n\n\t\tawait this.repo.save(courses);\n\n\t\treturn count;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/CourseUc.html":{"url":"injectables/CourseUc.html","title":"injectable - CourseUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n CourseUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/course.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n findAllByUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRepo: CourseRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/course.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n findAllByUser\n \n \n \n \n \n \nfindAllByUser(userId: EntityId, options?: PaginationParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/course.uc.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n options\n \n PaginationParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { PaginationParams } from '@shared/controller/';\nimport { Counted, Course, EntityId, SortOrder } from '@shared/domain';\nimport { CourseRepo } from '@shared/repo';\n\n@Injectable()\nexport class CourseUc {\n\tconstructor(private readonly courseRepo: CourseRepo) {}\n\n\tfindAllByUser(userId: EntityId, options?: PaginationParams): Promise> {\n\t\treturn this.courseRepo.findAllByUserId(userId, {}, { pagination: options, order: { updatedAt: SortOrder.desc } });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CourseUrlParams.html":{"url":"classes/CourseUrlParams.html","title":"class - CourseUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CourseUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/course.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n courseId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the course', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/course.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class CourseUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the course',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcourseId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CreateCardBodyParams.html":{"url":"classes/CreateCardBodyParams.html","title":"class - CreateCardBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CreateCardBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/create-card.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n requiredEmptyElements\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n requiredEmptyElements\n \n \n \n \n \n \n Type : ContentElementType[]\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ContentElementType, {each: true})@IsOptional()@ApiPropertyOptional({required: false, isArray: true, enum: ContentElementType})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/create-card.body.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { IsEnum, IsOptional } from 'class-validator';\n\nexport class CreateCardBodyParams {\n\t@IsEnum(ContentElementType, { each: true })\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\trequired: false,\n\t\tisArray: true,\n\t\tenum: ContentElementType,\n\t})\n\trequiredEmptyElements?: ContentElementType[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CreateContentElementBodyParams.html":{"url":"classes/CreateContentElementBodyParams.html","title":"class - CreateContentElementBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CreateContentElementBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/create-content-element.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n toPosition\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n toPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsInt()@Min(0)@ApiPropertyOptional({description: 'to bring element to a specific position, default is last position', type: Number, required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/create-content-element.body.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ContentElementType)@ApiProperty({description: 'The type of element', enum: ContentElementType, required: true, nullable: false, enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/create-content-element.body.params.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { IsEnum, IsInt, IsOptional, Min } from 'class-validator';\n\nexport class CreateContentElementBodyParams {\n\t@IsEnum(ContentElementType)\n\t@ApiProperty({\n\t\tdescription: 'The type of element',\n\t\tenum: ContentElementType,\n\t\trequired: true,\n\t\tnullable: false,\n\t\tenumName: 'ContentElementType',\n\t})\n\ttype!: ContentElementType;\n\n\t@IsOptional()\n\t@IsInt()\n\t@Min(0)\n\t@ApiPropertyOptional({\n\t\tdescription: 'to bring element to a specific position, default is last position',\n\t\ttype: Number,\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\ttoPosition?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CreateJwtParams.html":{"url":"interfaces/CreateJwtParams.html","title":"interface - CreateJwtParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CreateJwtParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/jwt.test.factory.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n accountId\n \n \n \n Optional\n \n aud\n \n \n \n Optional\n \n external_sub\n \n \n \n Optional\n \n iss\n \n \n \n Optional\n \n privateKey\n \n \n \n Optional\n \n sub\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accountId\n \n \n \n \n \n \n \n \n accountId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n aud\n \n \n \n \n \n \n \n \n aud: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n external_sub\n \n \n \n \n \n \n \n \n external_sub: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n iss\n \n \n \n \n \n \n \n \n iss: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n privateKey\n \n \n \n \n \n \n \n \n privateKey: string | Buffer\n\n \n \n\n\n \n \n Type : string | Buffer\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sub\n \n \n \n \n \n \n \n \n sub: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import jwt from 'jsonwebtoken';\nimport crypto, { KeyPairKeyObjectResult } from 'crypto';\n\nconst keyPair: KeyPairKeyObjectResult = crypto.generateKeyPairSync('rsa', { modulusLength: 4096 });\nconst publicKey: string | Buffer = keyPair.publicKey.export({ type: 'pkcs1', format: 'pem' });\nconst privateKey: string | Buffer = keyPair.privateKey.export({ type: 'pkcs1', format: 'pem' });\n\ninterface CreateJwtParams {\n\tprivateKey?: string | Buffer;\n\tsub?: string;\n\tiss?: string;\n\taud?: string;\n\taccountId?: string;\n\texternal_sub?: string;\n}\n\nexport class JwtTestFactory {\n\tpublic static getPublicKey(): string | Buffer {\n\t\treturn publicKey;\n\t}\n\n\tpublic static createJwt(params?: CreateJwtParams): string {\n\t\tconst validJwt = jwt.sign(\n\t\t\t{\n\t\t\t\tsub: params?.sub ?? 'testUser',\n\t\t\t\tiss: params?.iss ?? 'issuer',\n\t\t\t\taud: params?.aud ?? 'audience',\n\t\t\t\tjti: 'jti',\n\t\t\t\tiat: Date.now(),\n\t\t\t\texp: Date.now() + 100000,\n\t\t\t\taccountId: params?.accountId ?? 'accountId',\n\t\t\t\texternal_sub: params?.external_sub ?? 'externalSub',\n\t\t\t},\n\t\t\tparams?.privateKey ?? privateKey,\n\t\t\t{\n\t\t\t\talgorithm: 'RS256',\n\t\t\t}\n\t\t);\n\t\treturn validJwt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CreateJwtPayload.html":{"url":"interfaces/CreateJwtPayload.html","title":"interface - CreateJwtPayload","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CreateJwtPayload\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/jwt-payload.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accountId\n \n \n \n \n roles\n \n \n \n \n schoolId\n \n \n \n Optional\n \n support\n \n \n \n Optional\n \n systemId\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accountId\n \n \n \n \n \n \n \n \n accountId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n support\n \n \n \n \n \n \n \n \n support: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n \n \n systemId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface CreateJwtPayload {\n\taccountId: string;\n\tuserId: string;\n\tschoolId: string;\n\troles: string[];\n\tsystemId?: string; // without this the user needs to change his PW during first login\n\tsupport?: boolean;\n}\n\nexport interface JwtPayload extends CreateJwtPayload {\n\t/** audience */\n\taud: string;\n\t/** expiration in // TODO\n\t *\n\t */\n\texp: number;\n\tiat: number;\n\t/** issuer */\n\tiss: string;\n\tjti: string;\n\n\t/** // TODO\n\t *\n\t */\n\tsub: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CreateNewsParams.html":{"url":"classes/CreateNewsParams.html","title":"class - CreateNewsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CreateNewsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/create-news.params.ts\n \n\n\n \n Description\n \n \n DTO for creating a news document.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n Optional\n displayAt\n \n \n \n \n targetId\n \n \n \n \n targetModel\n \n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml(InputFormat.RICH_TEXT)@ApiProperty({description: 'Content of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n displayAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'The point in time from when the News entity schould be displayed. Defaults to now so that the news is published'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n targetId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({pattern: '[a-f0-9]{24}', description: 'Specific target id to which the News entity is related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(NewsTargetModel)@ApiProperty({enum: NewsTargetModel, description: 'Target model to which the News entity is related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'Title of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/create-news.params.ts:15\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsDate, IsEnum, IsMongoId, IsOptional, IsString } from 'class-validator';\nimport { InputFormat, NewsTargetModel } from '@shared/domain';\nimport { SanitizeHtml } from '@shared/controller';\n\n/**\n * DTO for creating a news document.\n */\nexport class CreateNewsParams {\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'Title of the News entity',\n\t})\n\ttitle!: string;\n\n\t@IsString()\n\t@SanitizeHtml(InputFormat.RICH_TEXT)\n\t@ApiProperty({\n\t\tdescription: 'Content of the News entity',\n\t})\n\tcontent!: string;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription:\n\t\t\t'The point in time from when the News entity schould be displayed. Defaults to now so that the news is published',\n\t})\n\tdisplayAt?: Date;\n\n\t@IsEnum(NewsTargetModel)\n\t@ApiProperty({\n\t\tenum: NewsTargetModel,\n\t\tdescription: 'Target model to which the News entity is related',\n\t})\n\ttargetModel!: string;\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Specific target id to which the News entity is related',\n\t})\n\ttargetId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CreateSubmissionItemBodyParams.html":{"url":"classes/CreateSubmissionItemBodyParams.html","title":"class - CreateSubmissionItemBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CreateSubmissionItemBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/create-submission-item.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n completed\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n completed\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty({description: 'Boolean indicating whether the submission is completed.', required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/create-submission-item.body.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class CreateSubmissionItemBodyParams {\n\t@IsBoolean()\n\t@ApiProperty({\n\t\tdescription: 'Boolean indicating whether the submission is completed.',\n\t\trequired: true,\n\t})\n\tcompleted!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CurrentUserMapper.html":{"url":"classes/CurrentUserMapper.html","title":"class - CurrentUserMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CurrentUserMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/mapper/current-user.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n jwtToICurrentUser\n \n \n Static\n userDoToICurrentUser\n \n \n Static\n userToICurrentUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n jwtToICurrentUser\n \n \n \n \n \n \n \n jwtToICurrentUser(jwtPayload: JwtPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.mapper.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwtPayload\n \n JwtPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICurrentUser\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n userDoToICurrentUser\n \n \n \n \n \n \n \n userDoToICurrentUser(accountId: string, user: UserDO, systemId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.mapper.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : ICurrentUser\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n userToICurrentUser\n \n \n \n \n \n \n \n userToICurrentUser(accountId: string, user: User, systemId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/mapper/current-user.mapper.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : ICurrentUser\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ValidationError } from '@shared/common';\nimport { Role, User } from '@shared/domain';\nimport { RoleReference } from '@shared/domain/domainobject';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { ICurrentUser } from '../interface';\nimport { JwtPayload } from '../interface/jwt-payload';\n\nexport class CurrentUserMapper {\n\tstatic userToICurrentUser(accountId: string, user: User, systemId?: string): ICurrentUser {\n\t\treturn {\n\t\t\taccountId,\n\t\t\tsystemId,\n\t\t\troles: user.roles.getItems().map((role: Role) => role.id),\n\t\t\tschoolId: user.school.id,\n\t\t\tuserId: user.id,\n\t\t};\n\t}\n\n\tstatic userDoToICurrentUser(accountId: string, user: UserDO, systemId?: string): ICurrentUser {\n\t\tif (!user.id) {\n\t\t\tthrow new ValidationError('user has no ID');\n\t\t}\n\n\t\treturn {\n\t\t\taccountId,\n\t\t\tsystemId,\n\t\t\troles: user.roles.map((roleRef: RoleReference) => roleRef.id),\n\t\t\tschoolId: user.schoolId,\n\t\t\tuserId: user.id,\n\t\t};\n\t}\n\n\tstatic jwtToICurrentUser(jwtPayload: JwtPayload): ICurrentUser {\n\t\treturn {\n\t\t\taccountId: jwtPayload.accountId,\n\t\t\tsystemId: jwtPayload.systemId,\n\t\t\troles: jwtPayload.roles,\n\t\t\tschoolId: jwtPayload.schoolId,\n\t\t\tuserId: jwtPayload.userId,\n\t\t\timpersonated: jwtPayload.support,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/CustomLtiProperty.html":{"url":"interfaces/CustomLtiProperty.html","title":"interface - CustomLtiProperty","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n CustomLtiProperty\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/ltitool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n key\n \n \n \n \n value\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n key\n \n \n \n \n \n \n \n \n key: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n value\n \n \n \n \n \n \n \n \n value: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport type ILtiToolProperties = Readonly>;\n\nexport enum LtiRoleType {\n\tLEARNER = 'Learner',\n\tINSTRUCTOR = 'Instructor',\n\tCONTENT_DEVELOPER = 'ContentDeveloper',\n\tADMINISTRATOR = 'Administrator',\n\tMENTOR = 'Mentor',\n\tTEACHING_ASSISTANT = 'TeachingAssistant',\n}\n\nexport enum LtiPrivacyPermission {\n\tANONYMOUS = 'anonymous',\n\tEMAIL = 'e-mail',\n\tNAME = 'name',\n\tPUBLIC = 'public',\n\tPSEUDONYMOUS = 'pseudonymous',\n}\n\nexport interface CustomLtiProperty {\n\tkey: string;\n\tvalue: string;\n}\n\n@Entity({ tableName: 'ltitools' })\nexport class LtiTool extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\turl: string;\n\n\t@Property({ nullable: true })\n\tkey: string;\n\n\t@Property({ nullable: false, default: 'none' })\n\tsecret: string;\n\n\t@Property({ nullable: true })\n\tlogo_url?: string;\n\n\t@Property({ nullable: true })\n\tlti_message_type?: string;\n\n\t@Property({ nullable: true })\n\tlti_version?: string;\n\n\t@Property({ nullable: true })\n\tresource_link_id?: string;\n\n\t@Enum({ array: true, items: () => LtiRoleType })\n\t@Property({ nullable: true })\n\troles?: LtiRoleType[];\n\n\t@Enum({\n\t\titems: () => LtiPrivacyPermission,\n\t\tdefault: LtiPrivacyPermission.ANONYMOUS,\n\t\tnullable: false,\n\t})\n\tprivacy_permission: LtiPrivacyPermission;\n\n\t@Property({ nullable: false })\n\tcustoms: CustomLtiProperty[];\n\n\t@Property({ nullable: false, default: false })\n\tisTemplate: boolean;\n\n\t@Property({ nullable: true })\n\tisLocal?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'originTool' })\n\t_originToolId?: ObjectId;\n\n\t@Property({ persist: false, getter: true })\n\tget originToolId(): EntityId | undefined {\n\t\treturn this._originToolId?.toHexString();\n\t}\n\n\t@Property({ nullable: true })\n\toAuthClientId?: string;\n\n\t@Property({ nullable: true })\n\t@Unique({ options: { sparse: true } })\n\tfriendlyUrl?: string;\n\n\t@Property({ nullable: true })\n\tskipConsent?: boolean;\n\n\t@Property({ nullable: false, default: false })\n\topenNewTab: boolean;\n\n\t@Property({ nullable: true })\n\tfrontchannel_logout_uri?: string;\n\n\t@Property({ nullable: false, default: false })\n\tisHidden: boolean;\n\n\tconstructor(props: ILtiToolProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.key = props.key || 'none';\n\t\tthis.secret = props.secret || 'none';\n\t\tthis.logo_url = props.logo_url;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.lti_version = props.lti_version;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.roles = props.roles || [];\n\t\tthis.privacy_permission = props.privacy_permission || LtiPrivacyPermission.ANONYMOUS;\n\t\tthis.customs = props.customs || [];\n\t\tthis.isTemplate = props.isTemplate || false;\n\t\tthis.isLocal = props.isLocal;\n\t\tif (props.originToolId !== undefined) {\n\t\t\tthis._originToolId = new ObjectId(props.originToolId);\n\t\t}\n\t\tthis.oAuthClientId = props.oAuthClientId;\n\t\tthis.friendlyUrl = props.friendlyUrl;\n\t\tthis.skipConsent = props.skipConsent;\n\t\tthis.openNewTab = props.openNewTab || false;\n\t\tthis.frontchannel_logout_uri = props.frontchannel_logout_uri;\n\t\tthis.isHidden = props.isHidden || false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomLtiPropertyDO.html":{"url":"classes/CustomLtiPropertyDO.html","title":"class - CustomLtiPropertyDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomLtiPropertyDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/ltitool.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n key\n \n \n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(key: string, value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n key\n \n \n string\n \n \n \n No\n \n \n \n \n value\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LtiPrivacyPermission, LtiRoleType } from '@shared/domain/entity/ltitool.entity';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseDO } from './base.do';\n\nexport class CustomLtiPropertyDO {\n\tkey: string;\n\n\tvalue: string;\n\n\tconstructor(key: string, value: string) {\n\t\tthis.key = key;\n\t\tthis.value = value;\n\t}\n}\n\nexport class LtiToolDO extends BaseDO {\n\tname: string;\n\n\turl: string;\n\n\tkey: string;\n\n\tsecret: string;\n\n\tlogo_url?: string;\n\n\tlti_message_type?: string;\n\n\tlti_version?: string;\n\n\tresource_link_id?: string;\n\n\troles: LtiRoleType[];\n\n\tprivacy_permission: LtiPrivacyPermission;\n\n\tcustoms: CustomLtiPropertyDO[];\n\n\tisTemplate: boolean;\n\n\tisLocal?: boolean;\n\n\toriginToolId?: EntityId;\n\n\toAuthClientId?: string;\n\n\tfriendlyUrl?: string;\n\n\tskipConsent?: boolean;\n\n\topenNewTab: boolean;\n\n\tfrontchannel_logout_uri?: string;\n\n\tisHidden: boolean;\n\n\tconstructor(domainObject: LtiToolDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.name = domainObject.name;\n\t\tthis.url = domainObject.url;\n\t\tthis.key = domainObject.key;\n\t\tthis.secret = domainObject.secret;\n\t\tthis.logo_url = domainObject.logo_url;\n\t\tthis.lti_message_type = domainObject.lti_message_type;\n\t\tthis.lti_version = domainObject.lti_version;\n\t\tthis.resource_link_id = domainObject.resource_link_id;\n\t\tthis.roles = domainObject.roles;\n\t\tthis.privacy_permission = domainObject.privacy_permission;\n\t\tthis.customs = domainObject.customs;\n\t\tthis.isTemplate = domainObject.isTemplate;\n\t\tthis.isLocal = domainObject.isLocal;\n\t\tthis.originToolId = domainObject.originToolId;\n\t\tthis.oAuthClientId = domainObject.oAuthClientId;\n\t\tthis.friendlyUrl = domainObject.friendlyUrl;\n\t\tthis.skipConsent = domainObject.skipConsent;\n\t\tthis.openNewTab = domainObject.openNewTab;\n\t\tthis.frontchannel_logout_uri = domainObject.frontchannel_logout_uri;\n\t\tthis.isHidden = domainObject.isHidden;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameter.html":{"url":"classes/CustomParameter.html","title":"class - CustomParameter","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/domain/custom-parameter.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n default\n \n \n Optional\n description\n \n \n displayName\n \n \n isOptional\n \n \n location\n \n \n name\n \n \n Optional\n regex\n \n \n Optional\n regexComment\n \n \n scope\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameter)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameter\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n default\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n isOptional\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n location\n \n \n \n \n \n \n Type : CustomParameterLocation\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : CustomParameterScope\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CustomParameterType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter.do.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { CustomParameterScope, CustomParameterLocation, CustomParameterType } from '../enum';\n\nexport class CustomParameter {\n\tname: string;\n\n\tdisplayName: string;\n\n\tdescription?: string;\n\n\tdefault?: string;\n\n\tregex?: string;\n\n\tregexComment?: string;\n\n\tscope: CustomParameterScope;\n\n\tlocation: CustomParameterLocation;\n\n\ttype: CustomParameterType;\n\n\tisOptional: boolean;\n\n\tconstructor(props: CustomParameter) {\n\t\tthis.name = props.name;\n\t\tthis.displayName = props.displayName;\n\t\tthis.description = props.description;\n\t\tthis.default = props.default;\n\t\tthis.location = props.location;\n\t\tthis.scope = props.scope;\n\t\tthis.type = props.type;\n\t\tthis.regex = props.regex;\n\t\tthis.regexComment = props.regexComment;\n\t\tthis.isOptional = props.isOptional;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntity.html":{"url":"classes/CustomParameterEntity.html","title":"class - CustomParameterEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n default\n \n \n \n Optional\n description\n \n \n \n displayName\n \n \n \n isOptional\n \n \n \n location\n \n \n \n name\n \n \n \n Optional\n regex\n \n \n \n Optional\n regexComment\n \n \n \n scope\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:34\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n default\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n isOptional\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n location\n \n \n \n \n \n \n Type : CustomParameterLocation\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : CustomParameterScope\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CustomParameterType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/custom-parameter/custom-parameter.entity.ts:31\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { CustomParameterLocation, CustomParameterScope, CustomParameterType } from '../../../common/enum';\n\n@Embeddable()\nexport class CustomParameterEntity {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tdisplayName: string;\n\n\t@Property({ nullable: true })\n\tdescription?: string;\n\n\t@Property({ nullable: true })\n\tdefault?: string;\n\n\t@Property({ nullable: true })\n\tregex?: string;\n\n\t@Property({ nullable: true })\n\tregexComment?: string;\n\n\t@Enum()\n\tscope: CustomParameterScope;\n\n\t@Enum()\n\tlocation: CustomParameterLocation;\n\n\t@Enum()\n\ttype: CustomParameterType;\n\n\t@Property()\n\tisOptional: boolean;\n\n\tconstructor(props: CustomParameterEntity) {\n\t\tthis.name = props.name;\n\t\tthis.displayName = props.displayName;\n\t\tthis.description = props.description;\n\t\tthis.default = props.default;\n\t\tthis.location = props.location;\n\t\tthis.scope = props.scope;\n\t\tthis.type = props.type;\n\t\tthis.regex = props.regex;\n\t\tthis.regexComment = props.regexComment;\n\t\tthis.isOptional = props.isOptional;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntry.html":{"url":"classes/CustomParameterEntry.html","title":"class - CustomParameterEntry","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntry\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/domain/custom-parameter-entry.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n name\n \n \n Optional\n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterEntry)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter-entry.do.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterEntry\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter-entry.do.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/common/domain/custom-parameter-entry.do.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class CustomParameterEntry {\n\tname: string;\n\n\tvalue?: string;\n\n\tconstructor(props: CustomParameterEntry) {\n\t\tthis.name = props.name;\n\t\tthis.value = props.value;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntryEntity.html":{"url":"classes/CustomParameterEntryEntity.html","title":"class - CustomParameterEntryEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntryEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/entity/custom-parameter-entry.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n Optional\n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterEntryEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/entity/custom-parameter-entry.entity.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterEntryEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/common/entity/custom-parameter-entry.entity.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/common/entity/custom-parameter-entry.entity.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\n@Embeddable()\nexport class CustomParameterEntryEntity {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tvalue?: string;\n\n\tconstructor(props: CustomParameterEntryEntity) {\n\t\tthis.name = props.name;\n\t\tthis.value = props.value;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntryParam.html":{"url":"classes/CustomParameterEntryParam.html","title":"class - CustomParameterEntryParam","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntryParam\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n Optional\n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.params.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsOptional, IsString } from 'class-validator';\n\nexport class CustomParameterEntryParam {\n\t@IsString()\n\t@ApiProperty()\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tvalue?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterEntryResponse.html":{"url":"classes/CustomParameterEntryResponse.html","title":"class - CustomParameterEntryResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterEntryResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n \n Optional\n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterEntryResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.response.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterEntryResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.response.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/custom-parameter-entry.response.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class CustomParameterEntryResponse {\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiProperty()\n\t@ApiPropertyOptional()\n\tvalue?: string;\n\n\tconstructor(props: CustomParameterEntryResponse) {\n\t\tthis.name = props.name;\n\t\tthis.value = props.value;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterFactory.html":{"url":"classes/CustomParameterFactory.html","title":"class - CustomParameterFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n buildListWithEachType\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n buildListWithEachType\n \n \n \n \n \n \nbuildListWithEachType(params?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameter[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameter } from '@src/modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@src/modules/tool/external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nexport const basicToolConfigFactory = DoBaseFactory.define(BasicToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.BASIC,\n\t\tbaseUrl: 'https://www.basic-baseUrl.com/',\n\t};\n});\n\nclass Oauth2ToolConfigFactory extends DoBaseFactory {\n\twithExternalData(oauth2Params?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tclientSecret: 'clientSecret',\n\t\t\tscope: 'offline openid',\n\t\t\tfrontchannelLogoutUri: 'https://www.frontchannel.com/',\n\t\t\tredirectUris: ['https://www.redirect.com/'],\n\t\t\ttokenEndpointAuthMethod: TokenEndpointAuthMethod.CLIENT_SECRET_POST,\n\t\t};\n\n\t\treturn this.params({ ...params, ...oauth2Params });\n\t}\n}\n\nexport const oauth2ToolConfigFactory = Oauth2ToolConfigFactory.define(Oauth2ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.OAUTH2,\n\t\tbaseUrl: 'https://www.oauth2-baseUrl.com/',\n\t\tclientId: 'clientId',\n\t\tskipConsent: false,\n\t};\n});\n\nexport const lti11ToolConfigFactory = DoBaseFactory.define(Lti11ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.LTI11,\n\t\tbaseUrl: 'https://www.lti11-baseUrl.com/',\n\t\tkey: 'key',\n\t\tsecret: 'secret',\n\t\tprivacy_permission: LtiPrivacyPermission.PSEUDONYMOUS,\n\t\tlti_message_type: LtiMessageType.BASIC_LTI_LAUNCH_REQUEST,\n\t\tresource_link_id: 'linkId',\n\t\tlaunch_presentation_locale: 'de-DE',\n\t};\n});\n\nclass CustomParameterFactory extends DoBaseFactory {\n\tbuildListWithEachType(params?: DeepPartial): CustomParameter[] {\n\t\tconst globalParameter = this.build({ ...params, scope: CustomParameterScope.GLOBAL });\n\t\tconst schoolParameter = this.build({ ...params, scope: CustomParameterScope.SCHOOL });\n\t\tconst contextParameter = this.build({ ...params, scope: CustomParameterScope.CONTEXT });\n\n\t\treturn [globalParameter, schoolParameter, contextParameter];\n\t}\n}\n\nexport const customParameterFactory = CustomParameterFactory.define(CustomParameter, ({ sequence }) => {\n\treturn {\n\t\tname: `custom-parameter-${sequence}`,\n\t\tdisplayName: 'User Friendly Name',\n\t\ttype: CustomParameterType.STRING,\n\t\tscope: CustomParameterScope.SCHOOL,\n\t\tlocation: CustomParameterLocation.BODY,\n\t\tisOptional: false,\n\t};\n});\n\nclass ExternalToolFactory extends DoBaseFactory {\n\twithOauth2Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: oauth2ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLti11Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: lti11ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithCustomParameters(number: number, customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tparameters: customParameterFactory.buildList(number, customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBase64Logo(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tlogo: 'iVBORw0KGgoAAAANSUhEUgAAAfQAAADICAYAAAAeGRPoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUQ2Q0Y5RTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUQ2Q0ZBRTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYxRDZDRjdFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYxRDZDRjhFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz45EjsrAAALfUlEQVR42uzdgXWjOAIGYHLvGsiV4CnBU4JTgqeEpIS4hKSEpIS4BLsEu4RJCeMScmhGzPplkyCMAGO+7z3ezs3tYsuS+BEIcfX29lYAAOP2Hz8BAAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAIdABDoAIBABwAEOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAQCBDgAIdAAQ6ACAQAcABDoAINABQKADAAIdABDoAIBABwCBDgAIdABAoAMAAh0ABDoAINABgN79109AbldXV9flPxblNov/DOblFv7+UG77+HfVn39vb29vB78emdpg1fauP2iDwWvcgm3883aMbbAs6/yorPP414ujf+W4z+2r/12WdasOL6zdl4Ufa4fdvGu0gyp/x6sTyjD0jx8a/03GOgn1cVtuyxN3EQ4267CV3+t16u2jhz701lfb6DEAlnGbt2yDz+ccDDHEq7LOTtzNIZY11PVaHV6AEOhj3ErhgP12LtuJZRj6e28y1cW8g/p4CgeqKbePHvpQ522jp3LMYnvJWWe/2rbBjsq66Kht/wwn4+pw3Jt76LQ9o76NB5jco+Gw35/l/p/iJXx43/auy+2+CqPMu7+O+9zFzziHsj511Nf+Bmr5GT/jlTZ1OEICnbZh/lT8c0+rC1WwL/3ivLvkvCu3h44/KrTth/LzdvFy8BBlXXQUeJ8F+6b8zIeuT6SnVIcCnXM/oC5jmPchdMiXqZxlk3QiuStOv3d8inkc6c0HKOum45Pmj9zHYJ+pQ4HOZR9Qr08I8zBRZRu3U4RJcs9+fWHe44nkRyeWu/gd+ijr04BlrRzU4Xh4bI1T3CaMGMKB4LH4M4N2/0Gnrh5JqWbr1u3vzmNtwrxhEFSzuEP7ez1+TCu2v9lR+2syagv3mvcfteuMZb0vml1ifz0q6/74KZF3Za3Km/Lb/cjd56ZUh4OYyuy/1NnPZhknfe9fNd/9JQR0g/1Vk1d+frK/hym2D+3vX7O7G83YbtgGm86yDn1g1lFZlw3Lumy4/9Df7mv68VwdjrBPC3SBnrlT7lru//2BZtekUwv0y2t/MYB+JR6kH9q0lzjK2yV+1q6jx7dSy3qf4Xe9/2C/t+rQY2tMQ91lrceWV4zCf/8tXmZzqZ2iSH+SIrSVVZv2Ei/BhgV1UuZrzDuYqJlS1upyeNu+doj7+F78s+LaY/l3z+pwnAQ6WQM9x4pT8UDzI3TKi7vHRdN7rovEe753uYIotr+7xEC4zzUTPD45kvIM+E3Old1iH/sew3ylDgU609Hb4zPnvtY0vUgZPd11MaqMgbBP6A+5RngPiWXdd1DWQxdhPsE6FOhc1IjKqm7kHNnVjVjXHV0iroQrRXWXf2/btvtY1tnAZVWHAp2JqesYVnQjl5S2tOryC8THv1LuVbd9rvk2od+t1OFZ16FAZ3TqLl89XPJKTPQ2srtOCIPHtm/lSwyEEAZ1n7PsuKzPfZRVHQp0pqWuU4ROvLnUlZjoTfUe7C9DrsfvU/dZ8xYTq5YZPl8dDluHAp1RSpmo9ntp2Pjmpnv31TlB3VWefc8j1nWG7/yZ2ZmVVR0KdKYgPh+aelYdDlRh5u6vMtQ3MdxdjidHGKx7bvchePYJ7X30ZVWHAp38FmX4vXWwbTJ8t3A/qunCD4sY7uHFCCHgX2LAz1Q1n7SXL0d3A3ynbcvvPKayqsMR8nIWTjrTLYM4zEw99Y1J1WSZsIVJdNWLJdYWkiHREJegD2Mqa3ineZHpEnLZL2/UoUDnckP9uTxgFEWe1yCGUXpY2CGM2EOgP4/teVvySbktM9A95bqTzcUJZV10WNb5UCPOKdXhOXHJnVahXqQt2tD0IFRNqPNM+zSZRKkOEegMEOrhUnl4mcoqc7CHUXu4z/5kljyAQKefUD8cvSUtBHvOS2nhefaNUGcEvBVQHQp0LivYyy0E+++3NxV5ZrKGy/AvfuHJtKPatQ4Gevyx9nnxCyqrOhToZLQtO8VVB9tNTx16H99rHIL9f8Wfe+1tAn5xSe8tpvMDcxeuJ1RWdSjQ4dOR+/oo4MMIPrzWsOnCEladm9AJbc3/P8TobtHyO5/6381O7Hc3qSf6RTcvSJlSHQp0Jhvwr2GGfLn9iKP31Al1KS974DKc1Ys04onkouV3HkVZ1aFAhzaj92pCXcqz55aOnYbaJTp7vgebEj7bjso61peGTKkOBTq8C/a7hFC3VOw0pNyO6fONfnWftY3vOTjF9szKqg4FOmRRdy9v4SeaxgleQiDc9jFyja8C7uxFI4kvDbkd2yh9SnUo0OHzg8DWL0HiAfapyy8Q77vWPV1xKNqHQd2VqfA9HtThWdehQGecQieJZ73Q1cldOMDWTVLq+nHGEKJ1I8jHtpdq4zLKdftYjq3PTakOBTpjFl7D+hTf6JTbV4+meRvbtKQ8TvXQRdCFZYeL+vuuhyJtMmeKx8SyztXh2dahQGd0o/PQSaqDSng2fJPrPljcz1cHrFc1MLlResotmKeco7zEIMg6sotPe9S173Cyu+ngxUVzdSjQmV6Y337QScJEtV2mzlh3P80IfXruirR1CsIo76XN4kPhhDKcoCYGwTaGcO6y1gnle8nR38JoP5Z3qQ4FOtMK88UXgXsdO2N47elt0w4Z78m/FPWz2NdqYnKj9DBqTV3JLARTaIONVhWMIRACclekPUkRwulHB2UNI9nUgPnb307py3EEm1pedTiGY3T5Q08tlDZfVXZcBrGv7zL4j59a3njfblM0Wwv5OY6ow7ru+y/2u4xn03X73na9Fv05tY9Lbn+n/I7xYN10zsa6aoOxHR6qE8jiz2XmamsyQg37uPmsTWeqm5cTvlNV1tfjl6MclbW6nbUoGq7nkKvdT6kOBbpAP+dAv46B3uZe26H455L5rGi+SMz3rjugQD/fQI/fOfW+aFd6CYJM/S2XcI95lbFsk6jDIbjkTuoB+BBfrNLmflO1lnLjEUJpdYkdkMbtMNyLXQ308b0FQRyFhqtRQ86+/n1JOmeYT6kOBTpjOKCu4oGmz9nmz5c0cYXWbfAxtsE+ZyaHS9jf+gyCo+WQhwi/dSzvWh0KdC77gBo6xvci/S1pbaziQQ3et8HUF/q0HdHdxVeRHgYqaxV+fQTRaxzB/ui6vFOqQ4HOuR9Qj9+StupgxL6PBxYjc+pGsDdF/uWCD7Fdf4uruA1+AhNved0V3VwdC79fCPFvxxPq1OG4mBT37wZmUtzp5VnG3zb889TnSMMlvnVXl/rG1D4uuf118TvGRYluY/ubtWh/29gGD2dcdzn62j6W9Tk+VnYO5ZpMHQp0xhQW1aMk1+8Csvrz69FIYxv/vJ1aB6TTYKgmX87ftb3j9lc9eTHa9hf7WlXW2Qdl3cdyjqqsU6pDgQ4A/OUeOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4AAh0AEOgAgEAHAAQ6AAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAh0ABDoAIBABwAEOgAg0AFAoAMAAh0AEOgAgEAHAIEOAAh0AECgAwACHQAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAYD+/V+AAQADXuXS75wQpQAAAABJRU5ErkJggg==',\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const externalToolFactory = ExternalToolFactory.define(ExternalTool, ({ sequence }) => {\n\treturn {\n\t\tname: `external-tool-${sequence}`,\n\t\turl: 'https://url.com/',\n\t\tconfig: basicToolConfigFactory.build(),\n\t\tlogoUrl: 'https://logo.com/',\n\t\tisHidden: false,\n\t\topenNewTab: false,\n\t\tversion: 1,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterPostParams.html":{"url":"classes/CustomParameterPostParams.html","title":"class - CustomParameterPostParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterPostParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n defaultValue\n \n \n \n \n \n Optional\n description\n \n \n \n \n \n displayName\n \n \n \n \n isOptional\n \n \n \n \n location\n \n \n \n \n \n name\n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n scope\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n defaultValue\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n isOptional\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n location\n \n \n \n \n \n \n Type : CustomParameterLocationParams\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(CustomParameterLocationParams)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : CustomParameterScopeTypeParams\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(CustomParameterScopeTypeParams)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CustomParameterTypeParams\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(CustomParameterTypeParams)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/custom-parameter.params.ts:50\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsBoolean, IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';\nimport {\n\tCustomParameterLocationParams,\n\tCustomParameterScopeTypeParams,\n\tCustomParameterTypeParams,\n} from '../../../../common/enum';\n\nexport class CustomParameterPostParams {\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tname!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tdisplayName!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tdescription?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tdefaultValue?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tregex?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tregexComment?: string;\n\n\t@IsEnum(CustomParameterScopeTypeParams)\n\t@ApiProperty()\n\tscope!: CustomParameterScopeTypeParams;\n\n\t@IsEnum(CustomParameterLocationParams)\n\t@ApiProperty()\n\tlocation!: CustomParameterLocationParams;\n\n\t@IsEnum(CustomParameterTypeParams)\n\t@ApiProperty()\n\ttype!: CustomParameterTypeParams;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tisOptional!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/CustomParameterResponse.html":{"url":"classes/CustomParameterResponse.html","title":"class - CustomParameterResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n CustomParameterResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n defaultValue\n \n \n \n Optional\n description\n \n \n \n displayName\n \n \n \n isOptional\n \n \n \n location\n \n \n \n name\n \n \n \n Optional\n regex\n \n \n \n Optional\n regexComment\n \n \n \n scope\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: CustomParameterResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:37\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n CustomParameterResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n defaultValue\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n isOptional\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n location\n \n \n \n \n \n \n Type : CustomParameterLocationParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: CustomParameterLocationParams})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n regex\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n regexComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : CustomParameterScopeTypeParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: CustomParameterScopeTypeParams})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : CustomParameterTypeParams\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: CustomParameterTypeParams})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/custom-parameter.response.ts:34\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport {\n\tCustomParameterLocationParams,\n\tCustomParameterScopeTypeParams,\n\tCustomParameterTypeParams,\n} from '../../../../common/enum';\n\nexport class CustomParameterResponse {\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiProperty()\n\tdisplayName: string;\n\n\t@ApiPropertyOptional()\n\tdescription?: string;\n\n\t@ApiPropertyOptional()\n\tdefaultValue?: string;\n\n\t@ApiPropertyOptional()\n\tregex?: string;\n\n\t@ApiPropertyOptional()\n\tregexComment?: string;\n\n\t@ApiProperty({ enum: CustomParameterScopeTypeParams })\n\tscope: CustomParameterScopeTypeParams;\n\n\t@ApiProperty({ enum: CustomParameterLocationParams })\n\tlocation: CustomParameterLocationParams;\n\n\t@ApiProperty({ enum: CustomParameterTypeParams })\n\ttype: CustomParameterTypeParams;\n\n\t@ApiProperty()\n\tisOptional: boolean;\n\n\tconstructor(props: CustomParameterResponse) {\n\t\tthis.name = props.name;\n\t\tthis.displayName = props.displayName;\n\t\tthis.description = props.description;\n\t\tthis.defaultValue = props.defaultValue;\n\t\tthis.location = props.location;\n\t\tthis.scope = props.scope;\n\t\tthis.type = props.type;\n\t\tthis.regex = props.regex;\n\t\tthis.regexComment = props.regexComment;\n\t\tthis.isOptional = props.isOptional;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/DashboardController.html":{"url":"controllers/DashboardController.html","title":"controller - DashboardController","body":"\n \n\n\n\n\n\n\n Controllers\n DashboardController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dashboard.controller.ts\n \n\n \n Prefix\n \n \n dashboard\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n findForUser\n \n \n \n Async\n moveElement\n \n \n \n Async\n patchGroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n findForUser\n \n \n \n \n \n \n \n findForUser(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/dashboard.controller.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveElement\n \n \n \n \n \n \n \n moveElement(undefined: DashboardUrlParams, params: MoveElementParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':dashboardId/moveElement')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/dashboard.controller.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n DashboardUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n MoveElementParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchGroup\n \n \n \n \n \n \n \n patchGroup(urlParams: DashboardUrlParams, x: number, y: number, params: PatchGroupParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':dashboardId/element')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/dashboard.controller.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n DashboardUrlParams\n \n\n \n No\n \n\n\n \n \n x\n \n number\n \n\n \n No\n \n\n\n \n \n y\n \n number\n \n\n \n No\n \n\n\n \n \n params\n \n PatchGroupParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Patch, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { DashboardMapper } from '../mapper/dashboard.mapper';\nimport { DashboardUc } from '../uc/dashboard.uc';\nimport { DashboardResponse, DashboardUrlParams, MoveElementParams, PatchGroupParams } from './dto';\n\n@ApiTags('Dashboard')\n@Authenticate('jwt')\n@Controller('dashboard')\nexport class DashboardController {\n\tconstructor(private readonly dashboardUc: DashboardUc) {}\n\n\t@Get()\n\tasync findForUser(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst dashboard = await this.dashboardUc.getUsersDashboard(currentUser.userId);\n\t\tconst dto = DashboardMapper.mapToResponse(dashboard);\n\t\treturn dto;\n\t}\n\n\t@Patch(':dashboardId/moveElement')\n\tasync moveElement(\n\t\t@Param() { dashboardId }: DashboardUrlParams,\n\t\t@Body() params: MoveElementParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst dashboard = await this.dashboardUc.moveElementOnDashboard(\n\t\t\tdashboardId,\n\t\t\tparams.from,\n\t\t\tparams.to,\n\t\t\tcurrentUser.userId\n\t\t);\n\t\tconst dto = DashboardMapper.mapToResponse(dashboard);\n\t\treturn dto;\n\t}\n\n\t@Patch(':dashboardId/element')\n\tasync patchGroup(\n\t\t@Param() urlParams: DashboardUrlParams,\n\t\t@Query('x') x: number,\n\t\t@Query('y') y: number,\n\t\t@Body() params: PatchGroupParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst dashboard = await this.dashboardUc.renameGroupOnDashboard(\n\t\t\turlParams.dashboardId,\n\t\t\t{ x, y },\n\t\t\tparams.title,\n\t\t\tcurrentUser.userId\n\t\t);\n\t\tconst dto = DashboardMapper.mapToResponse(dashboard);\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardEntity.html":{"url":"classes/DashboardEntity.html","title":"class - DashboardEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n columns\n \n \n grid\n \n \n id\n \n \n userId\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n addRoom\n \n \n Private\n allRooms\n \n \n Private\n determineNewRoomsIn\n \n \n getElement\n \n \n Private\n getFirstOpenIndex\n \n \n getGrid\n \n \n getId\n \n \n Private\n getReferencesFromPosition\n \n \n getUserId\n \n \n Private\n gridIndexFromPosition\n \n \n Private\n mergeElementIntoPosition\n \n \n moveElement\n \n \n Private\n positionFromGridIndex\n \n \n Private\n removeFromPosition\n \n \n Private\n removeRoomsNotInList\n \n \n setLearnRooms\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(id: string, props: DashboardProps)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:180\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n \n string\n \n \n \n No\n \n \n \n \n props\n \n \n DashboardProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n columns\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:163\n \n \n\n\n \n \n \n \n \n \n \n \n grid\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:165\n \n \n\n\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:161\n \n \n\n\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:167\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n addRoom\n \n \n \n \n \n \n \n addRoom(room: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:272\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n room\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n allRooms\n \n \n \n \n \n \n \n allRooms()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:266\n \n \n\n\n \n \n\n \n Returns : ILearnroom[]\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n determineNewRoomsIn\n \n \n \n \n \n \n \n determineNewRoomsIn(rooms: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:255\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n rooms\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ILearnroom[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getElement\n \n \n \n \n \n \ngetElement(position: GridPosition)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:213\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n position\n \n GridPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IGridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getFirstOpenIndex\n \n \n \n \n \n \n \n getFirstOpenIndex()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:278\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n \n \n \n \n \n \n getGrid\n \n \n \n \n \n \ngetGrid()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:201\n \n \n\n\n \n \n\n \n Returns : GridElementWithPosition[]\n\n \n \n \n \n \n \n \n \n \n \n \n getId\n \n \n \n \n \n \ngetId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:193\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n getReferencesFromPosition\n \n \n \n \n \n \n \n getReferencesFromPosition(position: GridPositionWithGroupIndex)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:286\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n position\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IGridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getUserId\n \n \n \n \n \n \ngetUserId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:197\n \n \n\n\n \n \n\n \n Returns : EntityId\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n gridIndexFromPosition\n \n \n \n \n \n \n \n gridIndexFromPosition(pos: GridPosition)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:169\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pos\n \n GridPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : number\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mergeElementIntoPosition\n \n \n \n \n \n \n \n mergeElementIntoPosition(element: IGridElement, position: GridPosition)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:307\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n IGridElement\n \n\n \n No\n \n\n\n \n \n position\n \n GridPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IGridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n moveElement\n \n \n \n \n \n \nmoveElement(from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:221\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n from\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n to\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElementWithPosition\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n positionFromGridIndex\n \n \n \n \n \n \n \n positionFromGridIndex(index: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:176\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n index\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridPosition\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeFromPosition\n \n \n \n \n \n \n \n removeFromPosition(position: GridPositionWithGroupIndex)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:298\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n position\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeRoomsNotInList\n \n \n \n \n \n \n \n removeRoomsNotInList(roomList: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:240\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomList\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setLearnRooms\n \n \n \n \n \n \nsetLearnRooms(rooms: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:231\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n rooms\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException, BadRequestException } from '@nestjs/common';\nimport { EntityId, LearnroomMetadata } from '@shared/domain/types';\nimport { ILearnroom } from '@shared/domain/interface';\n\nconst defaultColumns = 4;\n\nexport interface IGridElement {\n\thasId(): boolean;\n\n\tgetId: () => EntityId | undefined;\n\n\tgetContent: () => GridElementContent;\n\n\tisGroup(): boolean;\n\n\tremoveReferenceByIndex(index: number): void;\n\n\tremoveReference(reference: ILearnroom): void;\n\n\tgetReferences(): ILearnroom[];\n\n\taddReferences(anotherReference: ILearnroom[]): void;\n\n\tsetGroupName(newGroupName: string): void;\n}\n\nexport type GridElementContent = {\n\treferencedId?: string;\n\ttitle?: string;\n\tshortTitle: string;\n\tdisplayColor: string;\n\tgroup?: LearnroomMetadata[];\n\tgroupId?: string;\n\tcopyingSince?: Date;\n};\n\nexport class GridElement implements IGridElement {\n\tid?: EntityId;\n\n\ttitle?: string;\n\n\tprivate sortReferences = (a: ILearnroom, b: ILearnroom) => {\n\t\tconst titleA = a.getMetadata().title;\n\t\tconst titleB = b.getMetadata().title;\n\t\tif (titleA titleB) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t};\n\n\tprivate constructor(props: { id?: EntityId; title?: string; references: ILearnroom[] }) {\n\t\tif (props.id) this.id = props.id;\n\t\tif (props.title) this.title = props.title;\n\t\tthis.references = props.references.sort(this.sortReferences);\n\t}\n\n\tstatic FromPersistedReference(id: EntityId, reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ id, references: [reference] });\n\t}\n\n\tstatic FromPersistedGroup(id: EntityId, title: string | undefined, group: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ id, title, references: group });\n\t}\n\n\tstatic FromSingleReference(reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ references: [reference] });\n\t}\n\n\tstatic FromGroup(title: string, references: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ title, references });\n\t}\n\n\treferences: ILearnroom[];\n\n\thasId(): boolean {\n\t\treturn !!this.id;\n\t}\n\n\tgetId(): EntityId | undefined {\n\t\treturn this.id;\n\t}\n\n\tgetReferences(): ILearnroom[] {\n\t\treturn this.references;\n\t}\n\n\tremoveReferenceByIndex(index: number): void {\n\t\tif (!this.isGroup()) {\n\t\t\tthrow new BadRequestException('this element is not a group.');\n\t\t}\n\t\tif (index > 0 && this.references.length reference.getMetadata());\n\t\tconst checkShortTitle = this.title ? this.title.substring(0, 2) : '';\n\t\tconst groupMetadata = {\n\t\t\tgroupId: this.getId(),\n\t\t\ttitle: this.title,\n\t\t\tshortTitle: checkShortTitle,\n\t\t\tdisplayColor: 'exampleColor',\n\t\t\tgroup: groupData,\n\t\t};\n\t\treturn groupMetadata;\n\t}\n\n\tisGroup(): boolean {\n\t\treturn this.references.length > 1;\n\t}\n\n\tsetGroupName(newGroupName: string): void {\n\t\tif (!this.isGroup()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.title = newGroupName;\n\t}\n}\n\nexport type GridPosition = { x: number; y: number };\nexport type GridPositionWithGroupIndex = { x: number; y: number; groupIndex?: number };\n\nexport type GridElementWithPosition = {\n\tgridElement: IGridElement;\n\tpos: GridPosition;\n};\n\nexport type DashboardProps = { colums?: number; grid: GridElementWithPosition[]; userId: EntityId };\n\nexport class DashboardEntity {\n\tid: EntityId;\n\n\tcolumns: number;\n\n\tgrid: Map;\n\n\tuserId: EntityId;\n\n\tprivate gridIndexFromPosition(pos: GridPosition): number {\n\t\tif (pos.x > this.columns) {\n\t\t\tthrow new BadRequestException('dashboard element position is outside the grid.');\n\t\t}\n\t\treturn this.columns * pos.y + pos.x;\n\t}\n\n\tprivate positionFromGridIndex(index: number): GridPosition {\n\t\tconst y = Math.floor(index / this.columns);\n\t\tconst x = index % this.columns;\n\t\treturn { x, y };\n\t}\n\n\tconstructor(id: string, props: DashboardProps) {\n\t\tthis.columns = props.colums || defaultColumns;\n\t\tthis.grid = new Map();\n\t\tprops.grid.forEach((element) => {\n\t\t\tthis.grid.set(this.gridIndexFromPosition(element.pos), element.gridElement);\n\t\t});\n\t\tthis.id = id;\n\t\tthis.userId = props.userId;\n\t\tObject.assign(this, {});\n\t}\n\n\tgetId(): string {\n\t\treturn this.id;\n\t}\n\n\tgetUserId(): EntityId {\n\t\treturn this.userId;\n\t}\n\n\tgetGrid(): GridElementWithPosition[] {\n\t\tconst result = [...this.grid.keys()].map((key) => {\n\t\t\tconst position = this.positionFromGridIndex(key);\n\t\t\tconst value = this.grid.get(key) as IGridElement;\n\t\t\treturn {\n\t\t\t\tpos: position,\n\t\t\t\tgridElement: value,\n\t\t\t};\n\t\t});\n\t\treturn result;\n\t}\n\n\tgetElement(position: GridPosition): IGridElement {\n\t\tconst element = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (!element) {\n\t\t\tthrow new NotFoundException('no element at grid position');\n\t\t}\n\t\treturn element;\n\t}\n\n\tmoveElement(from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex): GridElementWithPosition {\n\t\tconst elementToMove = this.getReferencesFromPosition(from);\n\t\tconst resultElement = this.mergeElementIntoPosition(elementToMove, to);\n\t\tthis.removeFromPosition(from);\n\t\treturn {\n\t\t\tpos: to,\n\t\t\tgridElement: resultElement,\n\t\t};\n\t}\n\n\tsetLearnRooms(rooms: ILearnroom[]): void {\n\t\tthis.removeRoomsNotInList(rooms);\n\t\tconst newRooms = this.determineNewRoomsIn(rooms);\n\n\t\tnewRooms.forEach((room) => {\n\t\t\tthis.addRoom(room);\n\t\t});\n\t}\n\n\tprivate removeRoomsNotInList(roomList: ILearnroom[]): void {\n\t\t[...this.grid.keys()].forEach((key) => {\n\t\t\tconst element = this.grid.get(key) as IGridElement;\n\t\t\tconst currentRooms = element.getReferences();\n\t\t\tcurrentRooms.forEach((room) => {\n\t\t\t\tif (!roomList.includes(room)) {\n\t\t\t\t\telement.removeReference(room);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (element.getReferences().length === 0) {\n\t\t\t\tthis.grid.delete(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate determineNewRoomsIn(rooms: ILearnroom[]): ILearnroom[] {\n\t\tconst result: ILearnroom[] = [];\n\t\tconst existingRooms = this.allRooms();\n\t\trooms.forEach((room) => {\n\t\t\tif (!existingRooms.includes(room)) {\n\t\t\t\tresult.push(room);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tprivate allRooms(): ILearnroom[] {\n\t\tconst elements = [...this.grid.values()];\n\t\tconst references = elements.map((el) => el.getReferences()).flat();\n\t\treturn references;\n\t}\n\n\tprivate addRoom(room: ILearnroom): void {\n\t\tconst index = this.getFirstOpenIndex();\n\t\tconst newElement = GridElement.FromSingleReference(room);\n\t\tthis.grid.set(index, newElement);\n\t}\n\n\tprivate getFirstOpenIndex(): number {\n\t\tlet i = 0;\n\t\twhile (this.grid.get(i) !== undefined) {\n\t\t\ti += 1;\n\t\t}\n\t\treturn i;\n\t}\n\n\tprivate getReferencesFromPosition(position: GridPositionWithGroupIndex): IGridElement {\n\t\tconst elementToMove = this.getElement(position);\n\n\t\tif (typeof position.groupIndex === 'number' && elementToMove.isGroup()) {\n\t\t\tconst references = elementToMove.getReferences();\n\t\t\tconst referenceForIndex = references[position.groupIndex];\n\t\t\treturn GridElement.FromSingleReference(referenceForIndex);\n\t\t}\n\n\t\treturn elementToMove;\n\t}\n\n\tprivate removeFromPosition(position: GridPositionWithGroupIndex): void {\n\t\tconst element = this.getElement(position);\n\t\tif (typeof position.groupIndex === 'number') {\n\t\t\telement.removeReferenceByIndex(position.groupIndex);\n\t\t} else {\n\t\t\tthis.grid.delete(this.gridIndexFromPosition(position));\n\t\t}\n\t}\n\n\tprivate mergeElementIntoPosition(element: IGridElement, position: GridPosition): IGridElement {\n\t\tconst targetElement = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (targetElement) {\n\t\t\ttargetElement.addReferences(element.getReferences());\n\t\t\treturn targetElement;\n\t\t}\n\t\tthis.grid.set(this.gridIndexFromPosition(position), element);\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/DashboardGridElementModel.html":{"url":"entities/DashboardGridElementModel.html","title":"entity - DashboardGridElementModel","body":"\n \n\n\n\n\n\n\n\n Entities\n DashboardGridElementModel\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.model.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n dashboard\n \n \n \n \n references\n \n \n \n Optional\n title\n \n \n \n xPos\n \n \n \n yPos\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n dashboard\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('DashboardModelEntity', {wrappedReference: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n references\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('Course', undefined, {fieldName: 'referenceIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n xPos\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n yPos\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:48\n \n \n\n\n \n \n\n \n\n\n \n import {\n\tCollection,\n\tEntity,\n\tIdentifiedReference,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToMany,\n\tProperty,\n\twrap,\n} from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { Course } from './course.entity';\nimport { User } from './user.entity';\n\nexport interface DashboardGridElementModelProperties {\n\tid?: string;\n\ttitle?: string;\n\txPos: number;\n\tyPos: number;\n\treferences: Course[];\n\tdashboard: DashboardModelEntity;\n}\n\n@Entity({ tableName: 'dashboardelement' })\nexport class DashboardGridElementModel extends BaseEntityWithTimestamps {\n\tconstructor({ id, title, xPos, yPos, references, dashboard }: DashboardGridElementModelProperties) {\n\t\tsuper();\n\t\tif (id) {\n\t\t\tthis._id = ObjectId.createFromHexString(id);\n\t\t\tthis.id = id;\n\t\t}\n\t\tthis.title = title;\n\t\tthis.xPos = xPos;\n\t\tthis.yPos = yPos;\n\t\tthis.references.set(references);\n\t\tthis.dashboard = wrap(dashboard).toReference();\n\t}\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\t@Property()\n\txPos: number;\n\n\t@Property()\n\tyPos: number;\n\n\t@Index()\n\t@ManyToMany('Course', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('DashboardModelEntity', { wrappedReference: true })\n\tdashboard: IdentifiedReference;\n}\n\nexport interface IDashboardModelProperties {\n\tid: string;\n\tuser: User;\n\tgridElements?: DashboardGridElementModel[];\n}\n\n@Entity({ tableName: 'dashboard' })\nexport class DashboardModelEntity extends BaseEntityWithTimestamps {\n\tconstructor(props: IDashboardModelProperties) {\n\t\tsuper();\n\t\tthis._id = ObjectId.createFromHexString(props.id);\n\t\tthis.id = props.id;\n\t\tthis.user = wrap(props.user).toReference();\n\t\tif (props.gridElements) this.gridElements.set(props.gridElements);\n\t}\n\n\t@OneToMany('DashboardGridElementModel', 'dashboard')\n\tgridElements: Collection = new Collection(this);\n\n\t// userId\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'userId', wrappedReference: true })\n\tuser: IdentifiedReference;\n\n\t// sizetype\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/DashboardGridElementModelProperties.html":{"url":"interfaces/DashboardGridElementModelProperties.html","title":"interface - DashboardGridElementModelProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n DashboardGridElementModelProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.model.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dashboard\n \n \n \n Optional\n \n id\n \n \n \n \n references\n \n \n \n Optional\n \n title\n \n \n \n \n xPos\n \n \n \n \n yPos\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n dashboard\n \n \n \n \n \n \n \n \n dashboard: DashboardModelEntity\n\n \n \n\n\n \n \n Type : DashboardModelEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n references\n \n \n \n \n \n \n \n \n references: Course[]\n\n \n \n\n\n \n \n Type : Course[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n xPos\n \n \n \n \n \n \n \n \n xPos: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n yPos\n \n \n \n \n \n \n \n \n yPos: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import {\n\tCollection,\n\tEntity,\n\tIdentifiedReference,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToMany,\n\tProperty,\n\twrap,\n} from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { Course } from './course.entity';\nimport { User } from './user.entity';\n\nexport interface DashboardGridElementModelProperties {\n\tid?: string;\n\ttitle?: string;\n\txPos: number;\n\tyPos: number;\n\treferences: Course[];\n\tdashboard: DashboardModelEntity;\n}\n\n@Entity({ tableName: 'dashboardelement' })\nexport class DashboardGridElementModel extends BaseEntityWithTimestamps {\n\tconstructor({ id, title, xPos, yPos, references, dashboard }: DashboardGridElementModelProperties) {\n\t\tsuper();\n\t\tif (id) {\n\t\t\tthis._id = ObjectId.createFromHexString(id);\n\t\t\tthis.id = id;\n\t\t}\n\t\tthis.title = title;\n\t\tthis.xPos = xPos;\n\t\tthis.yPos = yPos;\n\t\tthis.references.set(references);\n\t\tthis.dashboard = wrap(dashboard).toReference();\n\t}\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\t@Property()\n\txPos: number;\n\n\t@Property()\n\tyPos: number;\n\n\t@Index()\n\t@ManyToMany('Course', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('DashboardModelEntity', { wrappedReference: true })\n\tdashboard: IdentifiedReference;\n}\n\nexport interface IDashboardModelProperties {\n\tid: string;\n\tuser: User;\n\tgridElements?: DashboardGridElementModel[];\n}\n\n@Entity({ tableName: 'dashboard' })\nexport class DashboardModelEntity extends BaseEntityWithTimestamps {\n\tconstructor(props: IDashboardModelProperties) {\n\t\tsuper();\n\t\tthis._id = ObjectId.createFromHexString(props.id);\n\t\tthis.id = props.id;\n\t\tthis.user = wrap(props.user).toReference();\n\t\tif (props.gridElements) this.gridElements.set(props.gridElements);\n\t}\n\n\t@OneToMany('DashboardGridElementModel', 'dashboard')\n\tgridElements: Collection = new Collection(this);\n\n\t// userId\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'userId', wrappedReference: true })\n\tuser: IdentifiedReference;\n\n\t// sizetype\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardGridElementResponse.html":{"url":"classes/DashboardGridElementResponse.html","title":"class - DashboardGridElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardGridElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n displayColor\n \n \n \n Optional\n groupElements\n \n \n \n Optional\n groupId\n \n \n \n Optional\n id\n \n \n \n shortTitle\n \n \n \n \n Optional\n title\n \n \n \n xPosition\n \n \n \n yPosition\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: DashboardGridElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:35\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n DashboardGridElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n copyingSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Start of the copying process if it is still ongoing - otherwise property is not set.'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:105\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Color of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:78\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n groupElements\n \n \n \n \n \n \n Type : DashboardGridSubElementResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined, description: 'List of all subelements in the group'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:100\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n groupId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the group element', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:94\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the Grid element', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:62\n \n \n\n\n \n \n \n \n \n \n \n \n \n shortTitle\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Short title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:73\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @DecodeHtmlEntities()@ApiProperty({description: 'Title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:68\n \n \n\n\n \n \n \n \n \n \n \n \n \n xPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'X position of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:83\n \n \n\n\n \n \n \n \n \n \n \n \n \n yPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Y position of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:88\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\n\nexport class DashboardGridSubElementResponse {\n\tconstructor({ id, title, shortTitle, displayColor }: DashboardGridSubElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n}\n\nexport class DashboardGridElementResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tshortTitle,\n\t\tdisplayColor,\n\t\txPosition,\n\t\tyPosition,\n\t\tgroupId,\n\t\tgroupElements,\n\t\tcopyingSince = undefined,\n\t}: DashboardGridElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.xPosition = xPosition;\n\t\tthis.yPosition = yPosition;\n\t\tthis.groupId = groupId;\n\t\tthis.groupElements = groupElements;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid?: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiProperty({\n\t\tdescription: 'X position of the Grid element',\n\t})\n\txPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'Y position of the Grid element',\n\t})\n\tyPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the group element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tgroupId?: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridSubElementResponse],\n\t\tdescription: 'List of all subelements in the group',\n\t})\n\tgroupElements?: DashboardGridSubElementResponse[];\n\n\t@ApiProperty({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class DashboardResponse {\n\tconstructor({ id, gridElements }: DashboardResponse) {\n\t\tthis.id = id;\n\t\tthis.gridElements = gridElements;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Dashboard entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridElementResponse],\n\t\tdescription: 'List of all elements visible on the dashboard',\n\t})\n\tgridElements: DashboardGridElementResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardGridSubElementResponse.html":{"url":"classes/DashboardGridSubElementResponse.html","title":"class - DashboardGridSubElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardGridSubElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n displayColor\n \n \n \n id\n \n \n \n shortTitle\n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: DashboardGridSubElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n DashboardGridSubElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Color of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the Grid element', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n shortTitle\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Short title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @DecodeHtmlEntities()@ApiProperty({description: 'Title of the Grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\n\nexport class DashboardGridSubElementResponse {\n\tconstructor({ id, title, shortTitle, displayColor }: DashboardGridSubElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n}\n\nexport class DashboardGridElementResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tshortTitle,\n\t\tdisplayColor,\n\t\txPosition,\n\t\tyPosition,\n\t\tgroupId,\n\t\tgroupElements,\n\t\tcopyingSince = undefined,\n\t}: DashboardGridElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.xPosition = xPosition;\n\t\tthis.yPosition = yPosition;\n\t\tthis.groupId = groupId;\n\t\tthis.groupElements = groupElements;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid?: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiProperty({\n\t\tdescription: 'X position of the Grid element',\n\t})\n\txPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'Y position of the Grid element',\n\t})\n\tyPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the group element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tgroupId?: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridSubElementResponse],\n\t\tdescription: 'List of all subelements in the group',\n\t})\n\tgroupElements?: DashboardGridSubElementResponse[];\n\n\t@ApiProperty({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class DashboardResponse {\n\tconstructor({ id, gridElements }: DashboardResponse) {\n\t\tthis.id = id;\n\t\tthis.gridElements = gridElements;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Dashboard entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridElementResponse],\n\t\tdescription: 'List of all elements visible on the dashboard',\n\t})\n\tgridElements: DashboardGridElementResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardMapper.html":{"url":"classes/DashboardMapper.html","title":"class - DashboardMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n mapGridElement\n \n \n Private\n Static\n mapLearnroom\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n mapGridElement\n \n \n \n \n \n \n \n mapGridElement(data: GridElementWithPosition)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DashboardGridElementResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapLearnroom\n \n \n \n \n \n \n \n mapLearnroom(metadata: LearnroomMetadata)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n metadata\n \n LearnroomMetadata\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DashboardGridSubElementResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(dashboard: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/dashboard.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboard\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DashboardResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { DashboardEntity, GridElementWithPosition, LearnroomMetadata } from '@shared/domain';\nimport { DashboardResponse, DashboardGridElementResponse, DashboardGridSubElementResponse } from '../controller/dto';\n\nexport class DashboardMapper {\n\tstatic mapToResponse(dashboard: DashboardEntity): DashboardResponse {\n\t\tconst dto = new DashboardResponse({\n\t\t\tid: dashboard.getId(),\n\t\t\tgridElements: dashboard\n\t\t\t\t.getGrid()\n\t\t\t\t.map((elementWithPosition) => DashboardMapper.mapGridElement(elementWithPosition)),\n\t\t});\n\t\treturn dto;\n\t}\n\n\tprivate static mapGridElement(data: GridElementWithPosition): DashboardGridElementResponse {\n\t\tconst elementData = data.gridElement.getContent();\n\t\tconst position = data.pos;\n\t\tconst dto = new DashboardGridElementResponse({\n\t\t\ttitle: elementData.title,\n\t\t\tshortTitle: elementData.shortTitle,\n\t\t\tdisplayColor: elementData.displayColor,\n\t\t\txPosition: position.x,\n\t\t\tyPosition: position.y,\n\t\t\tcopyingSince: elementData.copyingSince ?? undefined,\n\t\t});\n\t\tif (elementData.referencedId) {\n\t\t\tdto.id = elementData.referencedId;\n\t\t}\n\t\tif (elementData.group && elementData.groupId) {\n\t\t\tdto.groupId = elementData.groupId;\n\t\t\tdto.groupElements = elementData.group.map((groupMetadata) => DashboardMapper.mapLearnroom(groupMetadata));\n\t\t}\n\t\treturn dto;\n\t}\n\n\tprivate static mapLearnroom(metadata: LearnroomMetadata): DashboardGridSubElementResponse {\n\t\treturn new DashboardGridSubElementResponse(metadata);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/DashboardModelEntity.html":{"url":"entities/DashboardModelEntity.html","title":"entity - DashboardModelEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n DashboardModelEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.model.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n gridElements\n \n \n \n \n user\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n gridElements\n \n \n \n \n \n \n Type : Collection\n\n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @OneToMany('DashboardGridElementModel', 'dashboard')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:76\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('User', {fieldName: 'userId', wrappedReference: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.model.entity.ts:81\n \n \n\n\n \n \n\n \n\n\n \n import {\n\tCollection,\n\tEntity,\n\tIdentifiedReference,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToMany,\n\tProperty,\n\twrap,\n} from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { Course } from './course.entity';\nimport { User } from './user.entity';\n\nexport interface DashboardGridElementModelProperties {\n\tid?: string;\n\ttitle?: string;\n\txPos: number;\n\tyPos: number;\n\treferences: Course[];\n\tdashboard: DashboardModelEntity;\n}\n\n@Entity({ tableName: 'dashboardelement' })\nexport class DashboardGridElementModel extends BaseEntityWithTimestamps {\n\tconstructor({ id, title, xPos, yPos, references, dashboard }: DashboardGridElementModelProperties) {\n\t\tsuper();\n\t\tif (id) {\n\t\t\tthis._id = ObjectId.createFromHexString(id);\n\t\t\tthis.id = id;\n\t\t}\n\t\tthis.title = title;\n\t\tthis.xPos = xPos;\n\t\tthis.yPos = yPos;\n\t\tthis.references.set(references);\n\t\tthis.dashboard = wrap(dashboard).toReference();\n\t}\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\t@Property()\n\txPos: number;\n\n\t@Property()\n\tyPos: number;\n\n\t@Index()\n\t@ManyToMany('Course', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('DashboardModelEntity', { wrappedReference: true })\n\tdashboard: IdentifiedReference;\n}\n\nexport interface IDashboardModelProperties {\n\tid: string;\n\tuser: User;\n\tgridElements?: DashboardGridElementModel[];\n}\n\n@Entity({ tableName: 'dashboard' })\nexport class DashboardModelEntity extends BaseEntityWithTimestamps {\n\tconstructor(props: IDashboardModelProperties) {\n\t\tsuper();\n\t\tthis._id = ObjectId.createFromHexString(props.id);\n\t\tthis.id = props.id;\n\t\tthis.user = wrap(props.user).toReference();\n\t\tif (props.gridElements) this.gridElements.set(props.gridElements);\n\t}\n\n\t@OneToMany('DashboardGridElementModel', 'dashboard')\n\tgridElements: Collection = new Collection(this);\n\n\t// userId\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'userId', wrappedReference: true })\n\tuser: IdentifiedReference;\n\n\t// sizetype\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DashboardModelMapper.html":{"url":"injectables/DashboardModelMapper.html","title":"injectable - DashboardModelMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DashboardModelMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n createGridElement\n \n \n Private\n Async\n findExistingGridElement\n \n \n Private\n Async\n getOrConstructDashboardModelEntity\n \n \n Async\n mapDashboardToEntity\n \n \n Async\n mapDashboardToModel\n \n \n Async\n mapElementToEntity\n \n \n Async\n mapGridElementToModel\n \n \n Async\n mapReferenceToEntity\n \n \n mapReferenceToModel\n \n \n Private\n Async\n updateExistingGridElement\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n createGridElement\n \n \n \n \n \n \n \n createGridElement(elementWithPosition: GridElementWithPosition, dashboard: DashboardModelEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementWithPosition\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n dashboard\n \n DashboardModelEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findExistingGridElement\n \n \n \n \n \n \n \n findExistingGridElement(elementWithPosition: GridElementWithPosition)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementWithPosition\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getOrConstructDashboardModelEntity\n \n \n \n \n \n \n \n getOrConstructDashboardModelEntity(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:128\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapDashboardToEntity\n \n \n \n \n \n \n \n mapDashboardToEntity(modelEntity: DashboardModelEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n modelEntity\n \n DashboardModelEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapDashboardToModel\n \n \n \n \n \n \n \n mapDashboardToModel(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:112\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapElementToEntity\n \n \n \n \n \n \n \n mapElementToEntity(modelEntity: DashboardGridElementModel)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n modelEntity\n \n DashboardGridElementModel\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapGridElementToModel\n \n \n \n \n \n \n \n mapGridElementToModel(elementWithPosition: GridElementWithPosition, dashboard: DashboardModelEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementWithPosition\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n dashboard\n \n DashboardModelEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n mapReferenceToEntity\n \n \n \n \n \n \n \n mapReferenceToEntity(modelEntity: Course)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n modelEntity\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapReferenceToModel\n \n \n \n \n \n \nmapReferenceToModel(reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Course\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateExistingGridElement\n \n \n \n \n \n \n \n updateExistingGridElement(elementModel: DashboardGridElementModel, elementWithPosition: GridElementWithPosition, dashboard: DashboardModelEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.model.mapper.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elementModel\n \n DashboardGridElementModel\n \n\n \n No\n \n\n\n \n \n elementWithPosition\n \n GridElementWithPosition\n \n\n \n No\n \n\n\n \n \n dashboard\n \n DashboardModelEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { wrap, EntityManager } from '@mikro-orm/core';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport {\n\tDashboardEntity,\n\tGridElement,\n\tGridElementWithPosition,\n\tILearnroom,\n\tLearnroomTypes,\n\tDashboardGridElementModel,\n\tDashboardModelEntity,\n\tCourse,\n\tUser,\n} from '@shared/domain';\n\n@Injectable()\nexport class DashboardModelMapper {\n\tconstructor(protected readonly em: EntityManager) {}\n\n\tasync mapReferenceToEntity(modelEntity: Course): Promise {\n\t\tconst domainEntity = await wrap(modelEntity).init();\n\t\treturn domainEntity;\n\t}\n\n\tasync mapElementToEntity(modelEntity: DashboardGridElementModel): Promise {\n\t\tconst referenceModels = await modelEntity.references.loadItems();\n\t\tconst references = await Promise.all(referenceModels.map((ref) => this.mapReferenceToEntity(ref)));\n\t\tconst result = {\n\t\t\tpos: { x: modelEntity.xPos, y: modelEntity.yPos },\n\t\t\tgridElement: GridElement.FromPersistedGroup(modelEntity.id, modelEntity.title, references),\n\t\t};\n\t\treturn result;\n\t}\n\n\tasync mapDashboardToEntity(modelEntity: DashboardModelEntity): Promise {\n\t\tif (!modelEntity.gridElements.isInitialized()) {\n\t\t\tawait modelEntity.gridElements.init();\n\t\t}\n\t\tconst grid = await Promise.all(Array.from(modelEntity.gridElements).map(async (e) => this.mapElementToEntity(e)));\n\t\treturn new DashboardEntity(modelEntity.id, { grid, userId: modelEntity.user.id });\n\t}\n\n\tmapReferenceToModel(reference: ILearnroom): Course {\n\t\tconst metadata = reference.getMetadata();\n\t\tif (metadata.type === LearnroomTypes.Course) {\n\t\t\tconst course = reference as Course;\n\t\t\treturn course;\n\t\t}\n\t\tthrow new InternalServerErrorException('unknown learnroom type');\n\t}\n\n\tasync mapGridElementToModel(\n\t\telementWithPosition: GridElementWithPosition,\n\t\tdashboard: DashboardModelEntity\n\t): Promise {\n\t\tconst existing = await this.findExistingGridElement(elementWithPosition);\n\t\tif (existing) {\n\t\t\tconst updatedModel = this.updateExistingGridElement(existing, elementWithPosition, dashboard);\n\t\t\treturn updatedModel;\n\t\t}\n\t\tconst createdModel = await this.createGridElement(elementWithPosition, dashboard);\n\t\treturn createdModel;\n\t}\n\n\tprivate async findExistingGridElement(\n\t\telementWithPosition: GridElementWithPosition\n\t): Promise {\n\t\tconst { gridElement } = elementWithPosition;\n\t\tif (gridElement.hasId()) {\n\t\t\tconst existing = await this.em.findOne(DashboardGridElementModel, gridElement.getId() as string);\n\t\t\tif (existing) return existing;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tprivate async updateExistingGridElement(\n\t\telementModel: DashboardGridElementModel,\n\t\telementWithPosition: GridElementWithPosition,\n\t\tdashboard: DashboardModelEntity\n\t): Promise {\n\t\telementModel.xPos = elementWithPosition.pos.x;\n\t\telementModel.yPos = elementWithPosition.pos.y;\n\t\tconst { gridElement } = elementWithPosition;\n\n\t\tif (gridElement.isGroup()) {\n\t\t\telementModel.title = gridElement.getContent().title;\n\t\t}\n\n\t\tconst references = await Promise.all(gridElement.getReferences().map((ref) => this.mapReferenceToModel(ref)));\n\t\telementModel.references.set(references);\n\n\t\telementModel.dashboard = wrap(dashboard).toReference();\n\t\treturn elementModel;\n\t}\n\n\tprivate async createGridElement(\n\t\telementWithPosition: GridElementWithPosition,\n\t\tdashboard: DashboardModelEntity\n\t): Promise {\n\t\tconst { gridElement } = elementWithPosition;\n\t\tconst references = await Promise.all(gridElement.getReferences().map((ref) => this.mapReferenceToModel(ref)));\n\t\tconst elementModel = new DashboardGridElementModel({\n\t\t\tid: gridElement.getId(),\n\t\t\txPos: elementWithPosition.pos.x,\n\t\t\tyPos: elementWithPosition.pos.y,\n\t\t\treferences,\n\t\t\tdashboard,\n\t\t});\n\n\t\treturn elementModel;\n\t}\n\n\tasync mapDashboardToModel(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.getOrConstructDashboardModelEntity(entity);\n\t\tconst mappedElements = await Promise.all(\n\t\t\tentity.getGrid().map((elementWithPosition) => this.mapGridElementToModel(elementWithPosition, modelEntity))\n\t\t);\n\n\t\tArray.from(modelEntity.gridElements).forEach((el) => {\n\t\t\tif (!mappedElements.includes(el)) {\n\t\t\t\tmodelEntity.gridElements.remove(el);\n\t\t\t\tthis.em.remove(el);\n\t\t\t}\n\t\t});\n\n\t\treturn modelEntity;\n\t}\n\n\tprivate async getOrConstructDashboardModelEntity(entity: DashboardEntity): Promise {\n\t\tconst existing = await this.em.findOne(DashboardModelEntity, entity.getId());\n\t\tif (existing) {\n\t\t\treturn existing;\n\t\t}\n\t\tconst user = await this.em.findOneOrFail(User, entity.getUserId());\n\t\treturn new DashboardModelEntity({ id: entity.getId(), user, gridElements: [] });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DashboardRepo.html":{"url":"injectables/DashboardRepo.html","title":"injectable - DashboardRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DashboardRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/dashboard/dashboard.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getDashboardById\n \n \n Async\n getUsersDashboard\n \n \n Async\n persist\n \n \n Async\n persistAndFlush\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, mapper: DashboardModelMapper)\n \n \n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:20\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n mapper\n \n \n DashboardModelMapper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getDashboardById\n \n \n \n \n \n \n \n getDashboardById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUsersDashboard\n \n \n \n \n \n \n \n getUsersDashboard(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n persist\n \n \n \n \n \n \n \n persist(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n persistAndFlush\n \n \n \n \n \n \n \n persistAndFlush(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, DashboardEntity, GridElementWithPosition, DashboardModelEntity } from '@shared/domain';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { DashboardModelMapper } from './dashboard.model.mapper';\n\nconst generateEmptyDashboard = (userId: EntityId) => {\n\tconst gridArray: GridElementWithPosition[] = [];\n\n\tconst dashboard = new DashboardEntity(new ObjectId().toString(), { grid: gridArray, userId });\n\treturn dashboard;\n};\n\nexport interface IDashboardRepo {\n\tgetUsersDashboard(userId: EntityId): Promise;\n\tgetDashboardById(id: EntityId): Promise;\n\tpersistAndFlush(entity: DashboardEntity): Promise;\n}\n\n@Injectable()\nexport class DashboardRepo implements IDashboardRepo {\n\tconstructor(protected readonly em: EntityManager, protected readonly mapper: DashboardModelMapper) {}\n\n\t// ToDo: refactor this to be in an abstract class (see baseRepo)\n\tasync persist(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.mapper.mapDashboardToModel(entity);\n\t\tthis.em.persist(modelEntity);\n\t\treturn this.mapper.mapDashboardToEntity(modelEntity);\n\t}\n\n\tasync persistAndFlush(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.mapper.mapDashboardToModel(entity);\n\t\tawait this.em.persistAndFlush(modelEntity);\n\t\treturn this.mapper.mapDashboardToEntity(modelEntity);\n\t}\n\n\tasync getDashboardById(id: EntityId): Promise {\n\t\tconst dashboardModel = await this.em.findOneOrFail(DashboardModelEntity, id);\n\t\tconst dashboard = await this.mapper.mapDashboardToEntity(dashboardModel);\n\t\treturn dashboard;\n\t}\n\n\tasync getUsersDashboard(userId: EntityId): Promise {\n\t\tconst dashboardModel = await this.em.findOne(DashboardModelEntity, { user: userId });\n\t\tif (dashboardModel) {\n\t\t\treturn this.mapper.mapDashboardToEntity(dashboardModel);\n\t\t}\n\n\t\tconst dashboard = generateEmptyDashboard(userId);\n\t\tawait this.persistAndFlush(dashboard);\n\n\t\treturn dashboard;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardResponse.html":{"url":"classes/DashboardResponse.html","title":"class - DashboardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n gridElements\n \n \n \n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: DashboardResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:108\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n DashboardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n gridElements\n \n \n \n \n \n \n Type : DashboardGridElementResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined, description: 'List of all elements visible on the dashboard'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:124\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the Dashboard entity', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.response.ts:118\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\n\nexport class DashboardGridSubElementResponse {\n\tconstructor({ id, title, shortTitle, displayColor }: DashboardGridSubElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n}\n\nexport class DashboardGridElementResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tshortTitle,\n\t\tdisplayColor,\n\t\txPosition,\n\t\tyPosition,\n\t\tgroupId,\n\t\tgroupElements,\n\t\tcopyingSince = undefined,\n\t}: DashboardGridElementResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.shortTitle = shortTitle;\n\t\tthis.displayColor = displayColor;\n\t\tthis.xPosition = xPosition;\n\t\tthis.yPosition = yPosition;\n\t\tthis.groupId = groupId;\n\t\tthis.groupElements = groupElements;\n\t\tthis.copyingSince = copyingSince;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Grid element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid?: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Grid element',\n\t})\n\ttitle?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Short title of the Grid element',\n\t})\n\tshortTitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Grid element',\n\t})\n\tdisplayColor: string;\n\n\t@ApiProperty({\n\t\tdescription: 'X position of the Grid element',\n\t})\n\txPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'Y position of the Grid element',\n\t})\n\tyPosition: number;\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the group element',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tgroupId?: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridSubElementResponse],\n\t\tdescription: 'List of all subelements in the group',\n\t})\n\tgroupElements?: DashboardGridSubElementResponse[];\n\n\t@ApiProperty({\n\t\tdescription: 'Start of the copying process if it is still ongoing - otherwise property is not set.',\n\t})\n\tcopyingSince?: Date;\n}\n\nexport class DashboardResponse {\n\tconstructor({ id, gridElements }: DashboardResponse) {\n\t\tthis.id = id;\n\t\tthis.gridElements = gridElements;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the Dashboard entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\ttype: [DashboardGridElementResponse],\n\t\tdescription: 'List of all elements visible on the dashboard',\n\t})\n\tgridElements: DashboardGridElementResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DashboardUc.html":{"url":"injectables/DashboardUc.html","title":"injectable - DashboardUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DashboardUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/dashboard.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getUsersDashboard\n \n \n Async\n moveElementOnDashboard\n \n \n Async\n renameGroupOnDashboard\n \n \n Private\n validateUsersMatch\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dashboardRepo: IDashboardRepo, courseRepo: CourseRepo)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboardRepo\n \n \n IDashboardRepo\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getUsersDashboard\n \n \n \n \n \n \n \n getUsersDashboard(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveElementOnDashboard\n \n \n \n \n \n \n \n moveElementOnDashboard(dashboardId: EntityId, from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n from\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n to\n \n GridPositionWithGroupIndex\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n renameGroupOnDashboard\n \n \n \n \n \n \n \n renameGroupOnDashboard(dashboardId: EntityId, position: GridPosition, params: string, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboardId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n position\n \n GridPosition\n \n\n \n No\n \n\n\n \n \n params\n \n string\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n validateUsersMatch\n \n \n \n \n \n \n \n validateUsersMatch(dashboard: DashboardEntity, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/dashboard.uc.ts:57\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dashboard\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, Inject, NotFoundException } from '@nestjs/common';\nimport { DashboardEntity, EntityId, GridPositionWithGroupIndex, GridPosition, SortOrder } from '@shared/domain';\nimport { IDashboardRepo, CourseRepo } from '@shared/repo';\n// import { NotFound } from '@feathersjs/errors'; // wrong import? see NotFoundException\n\n@Injectable()\nexport class DashboardUc {\n\tconstructor(\n\t\t@Inject('DASHBOARD_REPO') private readonly dashboardRepo: IDashboardRepo,\n\t\tprivate readonly courseRepo: CourseRepo\n\t) {}\n\n\tasync getUsersDashboard(userId: EntityId): Promise {\n\t\tconst dashboard = await this.dashboardRepo.getUsersDashboard(userId);\n\t\tconst [courses] = await this.courseRepo.findAllByUserId(\n\t\t\tuserId,\n\t\t\t{ onlyActiveCourses: true },\n\t\t\t{ order: { name: SortOrder.asc } }\n\t\t);\n\n\t\tdashboard.setLearnRooms(courses);\n\t\tawait this.dashboardRepo.persistAndFlush(dashboard);\n\t\treturn dashboard;\n\t}\n\n\tasync moveElementOnDashboard(\n\t\tdashboardId: EntityId,\n\t\tfrom: GridPositionWithGroupIndex,\n\t\tto: GridPositionWithGroupIndex,\n\t\tuserId: EntityId\n\t): Promise {\n\t\tconst dashboard = await this.dashboardRepo.getDashboardById(dashboardId);\n\t\tthis.validateUsersMatch(dashboard, userId);\n\n\t\tdashboard.moveElement(from, to);\n\n\t\tawait this.dashboardRepo.persistAndFlush(dashboard);\n\t\treturn dashboard;\n\t}\n\n\tasync renameGroupOnDashboard(\n\t\tdashboardId: EntityId,\n\t\tposition: GridPosition,\n\t\tparams: string,\n\t\tuserId: EntityId\n\t): Promise {\n\t\tconst dashboard = await this.dashboardRepo.getDashboardById(dashboardId);\n\t\tthis.validateUsersMatch(dashboard, userId);\n\n\t\tconst gridElement = dashboard.getElement(position);\n\t\tgridElement.setGroupName(params);\n\n\t\tawait this.dashboardRepo.persistAndFlush(dashboard);\n\t\treturn dashboard;\n\t}\n\n\tprivate validateUsersMatch(dashboard: DashboardEntity, userId: EntityId) {\n\t\tif (dashboard.getUserId() !== userId) {\n\t\t\tthrow new NotFoundException('no such dashboard found');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DashboardUrlParams.html":{"url":"classes/DashboardUrlParams.html","title":"class - DashboardUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DashboardUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n dashboardId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n dashboardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the dashboard.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/dashboard.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class DashboardUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the dashboard.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tdashboardId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DatabaseManagementConsole.html":{"url":"classes/DatabaseManagementConsole.html","title":"class - DatabaseManagementConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DatabaseManagementConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/console/database-management.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n exportCollections\n \n \n \n Async\n seedCollections\n \n \n \n Async\n syncIndexes\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consoleWriter: ConsoleWriterService, databaseManagementUc: DatabaseManagementUc)\n \n \n \n \n Defined in apps/server/src/modules/management/console/database-management.console.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consoleWriter\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n databaseManagementUc\n \n \n DatabaseManagementUc\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n exportCollections\n \n \n \n \n \n \n \n exportCollections(options: Options)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'export', options: undefined, description: 'export database collections to filesystem'})\n \n \n\n \n \n Defined in apps/server/src/modules/management/console/database-management.console.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n Options\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n seedCollections\n \n \n \n \n \n \n \n seedCollections(options: Options)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'seed', options: undefined, description: 'reset database collections with seed data from filesystem'})\n \n \n\n \n \n Defined in apps/server/src/modules/management/console/database-management.console.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n Options\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n syncIndexes\n \n \n \n \n \n \n \n syncIndexes()\n \n \n\n \n \n Decorators : \n \n @Command({command: 'sync-indexes', options: undefined, description: 'sync indexes from nest and mikroorm'})\n \n \n\n \n \n Defined in apps/server/src/modules/management/console/database-management.console.ts:72\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console/console-writer/console-writer.service';\nimport { Command, Console } from 'nestjs-console';\nimport { DatabaseManagementUc } from '../uc/database-management.uc';\n\ninterface Options {\n\tcollection?: string;\n\toverride?: boolean;\n\tonlyfactories?: boolean;\n}\n\n@Console({ command: 'database', description: 'database setup console' })\nexport class DatabaseManagementConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService, private databaseManagementUc: DatabaseManagementUc) {}\n\n\t@Command({\n\t\tcommand: 'seed',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --onlyfactories',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'seed from factories only',\n\t\t\t},\n\t\t],\n\t\tdescription: 'reset database collections with seed data from filesystem',\n\t})\n\tasync seedCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\n\t\tconst collections = options.onlyfactories\n\t\t\t? await this.databaseManagementUc.seedDatabaseCollectionsFromFactories(filter)\n\t\t\t: await this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem(filter);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'export',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --override',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'optional export collections to setup folder and override existing files',\n\t\t\t},\n\t\t],\n\t\tdescription: 'export database collections to filesystem',\n\t})\n\tasync exportCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\t\tconst toSeedFolder = options?.override ? true : undefined;\n\t\tconst collections = await this.databaseManagementUc.exportCollectionsToFileSystem(filter, toSeedFolder);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'sync-indexes',\n\t\toptions: [],\n\t\tdescription: 'sync indexes from nest and mikroorm',\n\t})\n\tasync syncIndexes(): Promise {\n\t\tawait this.databaseManagementUc.syncIndexes();\n\t\tconst report = 'sync of indexes is completed';\n\t\tthis.consoleWriter.info(report);\n\t\treturn report;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/DatabaseManagementController.html":{"url":"controllers/DatabaseManagementController.html","title":"controller - DatabaseManagementController","body":"\n \n\n\n\n\n\n\n Controllers\n DatabaseManagementController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/controller/database-management.controller.ts\n \n\n \n Prefix\n \n \n management/database\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n exportCollection\n \n \n \n Async\n exportCollections\n \n \n \n Async\n importCollection\n \n \n \n Async\n importCollections\n \n \n \n syncIndexes\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n exportCollection\n \n \n \n \n \n \n \n exportCollection(collectionName: string)\n \n \n\n \n \n Decorators : \n \n @Post('export/:collectionName')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n exportCollections\n \n \n \n \n \n \n \n exportCollections()\n \n \n\n \n \n Decorators : \n \n @Post('export')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:23\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importCollection\n \n \n \n \n \n \n \n importCollection(collectionName: string)\n \n \n\n \n \n Decorators : \n \n @Post('seed/:collectionName')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importCollections\n \n \n \n \n \n \n \n importCollections(withIndexes: boolean)\n \n \n\n \n \n Decorators : \n \n @All('seed')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n withIndexes\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n syncIndexes\n \n \n \n \n \n \n \n syncIndexes()\n \n \n\n \n \n Decorators : \n \n @Post('sync-indexes')\n \n \n\n \n \n Defined in apps/server/src/modules/management/controller/database-management.controller.ts:33\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n\n\n \n import { Controller, Param, Post, All, Query } from '@nestjs/common';\nimport { DatabaseManagementUc } from '../uc/database-management.uc';\n\n@Controller('management/database')\nexport class DatabaseManagementController {\n\tconstructor(private databaseManagementUc: DatabaseManagementUc) {}\n\n\t@All('seed')\n\tasync importCollections(@Query('with-indexes') withIndexes: boolean): Promise {\n\t\tconst res = await this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem();\n\t\tif (withIndexes) {\n\t\t\tawait this.databaseManagementUc.syncIndexes();\n\t\t}\n\t\treturn res;\n\t}\n\n\t@Post('seed/:collectionName')\n\tasync importCollection(@Param('collectionName') collectionName: string): Promise {\n\t\treturn this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem([collectionName]);\n\t}\n\n\t@Post('export')\n\tasync exportCollections(): Promise {\n\t\treturn this.databaseManagementUc.exportCollectionsToFileSystem();\n\t}\n\n\t@Post('export/:collectionName')\n\tasync exportCollection(@Param('collectionName') collectionName: string): Promise {\n\t\treturn this.databaseManagementUc.exportCollectionsToFileSystem([collectionName]);\n\t}\n\n\t@Post('sync-indexes')\n\tsyncIndexes() {\n\t\treturn this.databaseManagementUc.syncIndexes();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/DatabaseManagementModule.html":{"url":"modules/DatabaseManagementModule.html","title":"module - DatabaseManagementModule","body":"\n \n\n\n\n\n Modules\n DatabaseManagementModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_DatabaseManagementModule\n\n\n\ncluster_DatabaseManagementModule_providers\n\n\n\ncluster_DatabaseManagementModule_exports\n\n\n\n\nDatabaseManagementService \n\nDatabaseManagementService \n\n\n\nDatabaseManagementModule\n\nDatabaseManagementModule\n\nDatabaseManagementService -->\n\nDatabaseManagementModule->DatabaseManagementService \n\n\n\n\n\nDatabaseManagementService\n\nDatabaseManagementService\n\nDatabaseManagementModule -->\n\nDatabaseManagementService->DatabaseManagementModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/database/management/database-management.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n DatabaseManagementService\n \n \n \n \n Exports\n \n \n DatabaseManagementService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { DatabaseManagementService } from './database-management.service';\n\n@Module({\n\tproviders: [DatabaseManagementService],\n\texports: [DatabaseManagementService],\n})\nexport class DatabaseManagementModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DatabaseManagementService.html":{"url":"injectables/DatabaseManagementService.html","title":"injectable - DatabaseManagementService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DatabaseManagementService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/database/management/database-management.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n clearCollection\n \n \n Async\n collectionExists\n \n \n Async\n createCollection\n \n \n Async\n dropCollection\n \n \n Async\n findDocumentsOfCollection\n \n \n Async\n getCollectionNames\n \n \n getDatabaseCollection\n \n \n Async\n importCollection\n \n \n Async\n syncIndexes\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n db\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, orm: MikroORM)\n \n \n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n orm\n \n \n MikroORM\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n clearCollection\n \n \n \n \n \n \n \n clearCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n collectionExists\n \n \n \n \n \n \n \n collectionExists(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createCollection\n \n \n \n \n \n \n \n createCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n dropCollection\n \n \n \n \n \n \n \n dropCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findDocumentsOfCollection\n \n \n \n \n \n \n \n findDocumentsOfCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getCollectionNames\n \n \n \n \n \n \n \n getCollectionNames()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:44\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n getDatabaseCollection\n \n \n \n \n \n \ngetDatabaseCollection(collectionName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Collection\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importCollection\n \n \n \n \n \n \n \n importCollection(collectionName: string, jsonDocuments: [])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n collectionName\n \n string\n \n\n \n No\n \n\n\n \n \n jsonDocuments\n \n []\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n syncIndexes\n \n \n \n \n \n \n \n syncIndexes()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:66\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n db\n \n \n\n \n \n getdb()\n \n \n \n \n Defined in apps/server/src/shared/infra/database/management/database-management.service.ts:11\n \n \n\n \n \n\n \n\n\n \n import { BaseEntity } from '@shared/domain';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { Collection, Db } from 'mongodb';\nimport { MikroORM } from '@mikro-orm/core';\n\n@Injectable()\nexport class DatabaseManagementService {\n\tconstructor(private em: EntityManager, private readonly orm: MikroORM) {}\n\n\tprivate get db(): Db {\n\t\treturn this.em.getConnection('write').getDb();\n\t}\n\n\tgetDatabaseCollection(collectionName: string): Collection {\n\t\tconst collection = this.db.collection(collectionName);\n\t\treturn collection;\n\t}\n\n\tasync importCollection(collectionName: string, jsonDocuments: unknown[]): Promise {\n\t\tif (jsonDocuments.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst collection = this.getDatabaseCollection(collectionName);\n\t\tconst { insertedCount } = await collection.insertMany(jsonDocuments as BaseEntity[], {\n\t\t\tforceServerObjectId: true,\n\t\t\tbypassDocumentValidation: true,\n\t\t});\n\t\treturn insertedCount;\n\t}\n\n\tasync findDocumentsOfCollection(collectionName: string): Promise {\n\t\tconst collection = this.getDatabaseCollection(collectionName);\n\t\tconst documents = (await collection.find({}).toArray()) as unknown[];\n\t\treturn documents;\n\t}\n\n\tasync clearCollection(collectionName: string): Promise {\n\t\tconst collection = this.getDatabaseCollection(collectionName);\n\t\tconst { deletedCount } = await collection.deleteMany({});\n\t\treturn deletedCount || 0;\n\t}\n\n\tasync getCollectionNames(): Promise {\n\t\tconst collections = (await this.db.listCollections(undefined, { nameOnly: true }).toArray()) as unknown[] as {\n\t\t\tname: string;\n\t\t}[];\n\t\tconst collectionNames = collections.map((collection) => collection.name);\n\t\treturn collectionNames;\n\t}\n\n\tasync collectionExists(collectionName: string): Promise {\n\t\tconst collections = await this.getCollectionNames();\n\t\tconst result = collections.includes(collectionName);\n\t\treturn result;\n\t}\n\n\tasync createCollection(collectionName: string): Promise {\n\t\tawait this.db.createCollection(collectionName);\n\t}\n\n\tasync dropCollection(collectionName: string): Promise {\n\t\tawait this.db.dropCollection(collectionName);\n\t}\n\n\tasync syncIndexes(): Promise {\n\t\treturn this.orm.getSchemaGenerator().ensureIndexes();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DeleteFilesConsole.html":{"url":"classes/DeleteFilesConsole.html","title":"class - DeleteFilesConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DeleteFilesConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/job/delete-files.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteMarkedFiles\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(deleteFilesUc: DeleteFilesUc, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/files/job/delete-files.console.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n deleteFilesUc\n \n \n DeleteFilesUc\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n deleteMarkedFiles\n \n \n \n \n \n \n \n deleteMarkedFiles(daysSinceDeletion: number, batchSize: number)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'cleanup-job [batchSize]', description: 'cleanup job to remove files that were marked for deletion days ago'})\n \n \n\n \n \n Defined in apps/server/src/modules/files/job/delete-files.console.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n daysSinceDeletion\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n batchSize\n \n number\n \n\n \n No\n \n\n \n 1000\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Command, Console } from 'nestjs-console';\nimport { LegacyLogger } from '@src/core/logger';\nimport { DeleteFilesUc } from '../uc';\n\n@Console({ command: 'files', description: 'file deletion console' })\nexport class DeleteFilesConsole {\n\tconstructor(private deleteFilesUc: DeleteFilesUc, private logger: LegacyLogger) {\n\t\tthis.logger.setContext(DeleteFilesConsole.name);\n\t}\n\n\t@Command({\n\t\tcommand: 'cleanup-job [batchSize]',\n\t\tdescription: 'cleanup job to remove files that were marked for deletion days ago',\n\t})\n\tasync deleteMarkedFiles(daysSinceDeletion: number, batchSize = 1000): Promise {\n\t\tthis.logger.log(\n\t\t\t`Start cleanup job: Deleting files that were marked for deletion at least ${daysSinceDeletion} days ago; batch size: ${batchSize}`\n\t\t);\n\t\tconst thresholdDate = new Date();\n\t\tthresholdDate.setDate(thresholdDate.getDate() - daysSinceDeletion);\n\n\t\tawait this.deleteFilesUc.deleteMarkedFiles(thresholdDate, Number(batchSize));\n\t\tthis.logger.log('cleanup job finished');\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DeleteFilesUc.html":{"url":"injectables/DeleteFilesUc.html","title":"injectable - DeleteFilesUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DeleteFilesUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/uc/delete-files.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n s3ClientMap\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createClient\n \n \n Private\n Async\n deleteFile\n \n \n Private\n Async\n deleteFileInStorage\n \n \n Public\n Async\n deleteMarkedFiles\n \n \n Private\n Async\n initializeS3ClientMap\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(filesRepo: FilesRepo, storageProviderRepo: StorageProviderRepo, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n filesRepo\n \n \n FilesRepo\n \n \n \n No\n \n \n \n \n storageProviderRepo\n \n \n StorageProviderRepo\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createClient\n \n \n \n \n \n \n \n createClient(storageProvider: StorageProviderEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n storageProvider\n \n StorageProviderEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : S3Client\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteFile\n \n \n \n \n \n \n \n deleteFile(file: FileEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n file\n \n FileEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteFileInStorage\n \n \n \n \n \n \n \n deleteFileInStorage(file: FileEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n file\n \n FileEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n deleteMarkedFiles\n \n \n \n \n \n \n \n deleteMarkedFiles(thresholdDate: Date, batchSize: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n thresholdDate\n \n Date\n \n\n \n No\n \n\n\n \n \n batchSize\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n initializeS3ClientMap\n \n \n \n \n \n \n \n initializeS3ClientMap()\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:66\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n s3ClientMap\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/files/uc/delete-files.uc.ts:12\n \n \n\n\n \n \n\n\n \n\n\n \n import { DeleteObjectCommand, S3Client } from '@aws-sdk/client-s3';\nimport { Injectable } from '@nestjs/common';\nimport { StorageProviderEntity } from '@shared/domain';\nimport { StorageProviderRepo } from '@shared/repo/storageprovider';\nimport { LegacyLogger } from '@src/core/logger';\nimport { FilesRepo } from '../repo';\nimport { FileEntity } from '../entity';\n\n@Injectable()\nexport class DeleteFilesUc {\n\tprivate s3ClientMap: Map = new Map();\n\n\tconstructor(\n\t\tprivate readonly filesRepo: FilesRepo,\n\t\tprivate readonly storageProviderRepo: StorageProviderRepo,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(DeleteFilesUc.name);\n\t}\n\n\tpublic async deleteMarkedFiles(thresholdDate: Date, batchSize: number): Promise {\n\t\tawait this.initializeS3ClientMap();\n\n\t\tlet batchCounter = 0;\n\t\tlet numberOfFilesInBatch = 0;\n\t\tlet numberOfProcessedFiles = 0;\n\t\tconst failingFileIds: string[] = [];\n\n\t\tdo {\n\t\t\tconst offset = failingFileIds.length;\n\t\t\tconst files = await this.filesRepo.findForCleanup(thresholdDate, batchSize, offset);\n\n\t\t\tconst promises = files.map((file) => this.deleteFile(file));\n\t\t\tconst results = await Promise.all(promises);\n\n\t\t\tlet numberOfFailingFilesInBatch = 0;\n\n\t\t\tresults.forEach((result) => {\n\t\t\t\tif (!result.success) {\n\t\t\t\t\tfailingFileIds.push(result.fileId);\n\t\t\t\t\tnumberOfFailingFilesInBatch += 1;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tnumberOfFilesInBatch = files.length;\n\t\t\tnumberOfProcessedFiles += files.length;\n\t\t\tbatchCounter += 1;\n\n\t\t\tthis.logger.log(\n\t\t\t\t`Finished batch ${batchCounter} with ${numberOfFilesInBatch} files and ${numberOfFailingFilesInBatch} failed deletions`\n\t\t\t);\n\t\t} while (numberOfFilesInBatch > 0);\n\n\t\tthis.logger.log(\n\t\t\t`${\n\t\t\t\tnumberOfProcessedFiles - failingFileIds.length\n\t\t\t} out of ${numberOfProcessedFiles} files were successfully deleted`\n\t\t);\n\n\t\tif (failingFileIds.length > 0) {\n\t\t\tthis.logger.error(`the following files could not be deleted: ${failingFileIds.toString()}`);\n\t\t}\n\t}\n\n\tprivate async initializeS3ClientMap() {\n\t\tconst providers = await this.storageProviderRepo.findAll();\n\n\t\tproviders.forEach((provider) => {\n\t\t\tthis.s3ClientMap.set(provider.id, this.createClient(provider));\n\t\t});\n\n\t\tthis.logger.log(`Initialized s3ClientMap with ${this.s3ClientMap.size} clients.`);\n\t}\n\n\tprivate createClient(storageProvider: StorageProviderEntity): S3Client {\n\t\tconst client = new S3Client({\n\t\t\tendpoint: storageProvider.endpointUrl,\n\t\t\tforcePathStyle: true,\n\t\t\tregion: storageProvider.region,\n\t\t\ttls: true,\n\t\t\tcredentials: {\n\t\t\t\taccessKeyId: storageProvider.accessKeyId,\n\t\t\t\tsecretAccessKey: storageProvider.secretAccessKey,\n\t\t\t},\n\t\t});\n\n\t\treturn client;\n\t}\n\n\tprivate async deleteFile(file: FileEntity): Promise {\n\t\ttry {\n\t\t\tif (!file.isDirectory) {\n\t\t\t\tawait this.deleteFileInStorage(file);\n\t\t\t}\n\t\t\tawait this.filesRepo.delete(file);\n\n\t\t\treturn { fileId: file.id, success: true };\n\t\t} catch (error) {\n\t\t\tthis.logger.error(error);\n\n\t\t\treturn { fileId: file.id, success: false };\n\t\t}\n\t}\n\n\tprivate async deleteFileInStorage(file: FileEntity) {\n\t\tconst bucket = file.bucket as string;\n\t\tconst storageFileName = file.storageFileName as string;\n\t\tconst deletionCommand = new DeleteObjectCommand({ Bucket: bucket, Key: storageFileName });\n\n\t\tconst storageProvider = file.storageProvider as StorageProviderEntity;\n\t\tconst client = this.s3ClientMap.get(storageProvider.id) as S3Client;\n\n\t\tawait client.send(deletionCommand);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DeprecatedVideoConferenceInfoResponse.html":{"url":"classes/DeprecatedVideoConferenceInfoResponse.html","title":"class - DeprecatedVideoConferenceInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DeprecatedVideoConferenceInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts\n \n\n \n Deprecated\n \n \n Please use new video conference response classes\n \n\n\n \n Extends\n \n \n VideoConferenceBaseResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n options\n \n \n permission\n \n \n state\n \n \n Optional\n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: DeprecatedVideoConferenceInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:43\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n DeprecatedVideoConferenceInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n options\n \n \n \n \n \n \n Type : literal type\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceStateResponse\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n status\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:8\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceStateResponse } from './video-conference-state.response';\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class VideoConferenceBaseResponse {\n\tstatus?: string;\n\n\tstate: VideoConferenceStateResponse;\n\n\tpermission: Permission;\n\n\tconstructor(resp: VideoConferenceBaseResponse) {\n\t\tthis.status = 'SUCCESS';\n\t\tthis.state = resp.state;\n\t\tthis.permission = resp.permission;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceJoinResponse extends VideoConferenceBaseResponse {\n\turl?: string;\n\n\tconstructor(resp: DeprecatedVideoConferenceJoinResponse) {\n\t\tsuper(resp);\n\t\tthis.url = resp.url;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceInfoResponse extends VideoConferenceBaseResponse {\n\toptions?: {\n\t\teveryAttendeeJoinsMuted: boolean;\n\n\t\teverybodyJoinsAsModerator: boolean;\n\n\t\tmoderatorMustApproveJoinRequests: boolean;\n\t};\n\n\tconstructor(resp: DeprecatedVideoConferenceInfoResponse) {\n\t\tsuper(resp);\n\t\tthis.options = resp.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DeprecatedVideoConferenceJoinResponse.html":{"url":"classes/DeprecatedVideoConferenceJoinResponse.html","title":"class - DeprecatedVideoConferenceJoinResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DeprecatedVideoConferenceJoinResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts\n \n\n \n Deprecated\n \n \n Please use new video conference response classes\n \n\n\n \n Extends\n \n \n VideoConferenceBaseResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n url\n \n \n permission\n \n \n state\n \n \n Optional\n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: DeprecatedVideoConferenceJoinResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:25\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n DeprecatedVideoConferenceJoinResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceStateResponse\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n status\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from VideoConferenceBaseResponse\n\n \n \n \n \n Defined in VideoConferenceBaseResponse:8\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceStateResponse } from './video-conference-state.response';\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class VideoConferenceBaseResponse {\n\tstatus?: string;\n\n\tstate: VideoConferenceStateResponse;\n\n\tpermission: Permission;\n\n\tconstructor(resp: VideoConferenceBaseResponse) {\n\t\tthis.status = 'SUCCESS';\n\t\tthis.state = resp.state;\n\t\tthis.permission = resp.permission;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceJoinResponse extends VideoConferenceBaseResponse {\n\turl?: string;\n\n\tconstructor(resp: DeprecatedVideoConferenceJoinResponse) {\n\t\tsuper(resp);\n\t\tthis.url = resp.url;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceInfoResponse extends VideoConferenceBaseResponse {\n\toptions?: {\n\t\teveryAttendeeJoinsMuted: boolean;\n\n\t\teverybodyJoinsAsModerator: boolean;\n\n\t\tmoderatorMustApproveJoinRequests: boolean;\n\t};\n\n\tconstructor(resp: DeprecatedVideoConferenceInfoResponse) {\n\t\tsuper(resp);\n\t\tthis.options = resp.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DoBaseFactory.html":{"url":"classes/DoBaseFactory.html","title":"class - DoBaseFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DoBaseFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/do-base.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BuildOptions, DeepPartial } from 'fishery';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseFactory } from '../base.factory';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class DoBaseFactory extends BaseFactory {\n\toverride buildWithId(params?: DeepPartial, id?: string, options: BuildOptions = {}): T {\n\t\tconst entity: T = this.build(params, options);\n\t\tObject.defineProperty(entity, 'id', { value: id ?? new ObjectId().toHexString(), writable: true });\n\n\t\treturn entity;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DomainObject.html":{"url":"classes/DomainObject.html","title":"class - DomainObject","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DomainObject\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domain-object.ts\n \n\n\n\n\n \n Implements\n \n \n AuthorizableObject\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n id\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: T)\n \n \n \n \n Defined in apps/server/src/shared/domain/domain-object.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n T\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domain-object.ts:8\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domain-object.ts:18\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n id\n \n \n\n \n \n getid()\n \n \n \n \n Defined in apps/server/src/shared/domain/domain-object.ts:14\n \n \n\n \n \n\n \n\n\n \n import { EntityId } from './types';\n\nexport interface AuthorizableObject {\n\tget id(): EntityId;\n}\n\nexport abstract class DomainObject implements AuthorizableObject {\n\tprotected props: T;\n\n\tconstructor(props: T) {\n\t\tthis.props = props;\n\t}\n\n\tpublic get id(): EntityId {\n\t\treturn this.props.id;\n\t}\n\n\tpublic getProps(): T {\n\t\tconst copyProps = { ...this.props };\n\n\t\treturn copyProps;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DomainObjectFactory.html":{"url":"classes/DomainObjectFactory.html","title":"class - DomainObjectFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DomainObjectFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/domain-object.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { MethodNotAllowedException } from '@nestjs/common';\nimport { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { BuildOptions, DeepPartial } from 'fishery';\nimport { BaseFactory } from '../base.factory';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class DomainObjectFactory,\n\tU extends AuthorizableObject = T extends DomainObject ? X : never,\n\tI = any,\n\tC = U\n> extends BaseFactory {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\toverride buildWithId(params?: DeepPartial, id?: string, options: BuildOptions = {}): T {\n\t\tthrow new MethodNotAllowedException(\n\t\t\t'Domain Objects are always generated with an id. Use .build({ id: ... }) to set an id.'\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DownloadFileParams.html":{"url":"classes/DownloadFileParams.html","title":"class - DownloadFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DownloadFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n fileRecordId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n fileRecordId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:47\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/DtoCreator.html":{"url":"classes/DtoCreator.html","title":"class - DtoCreator","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n DtoCreator\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n authorisationService\n \n \n board\n \n \n room\n \n \n roomsAuthorisationService\n \n \n user\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n buildDTOWithElements\n \n \n Private\n createTaskStatus\n \n \n Private\n filterByPermission\n \n \n Private\n isColumnBoardFeatureFlagActive\n \n \n Private\n isTeacher\n \n \n manufacture\n \n \n Private\n mapColumnBoardElement\n \n \n Private\n mapLessonElement\n \n \n Private\n mapTaskElement\n \n \n Private\n mapToElementDTOs\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: literal type)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:37\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n literal type\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n authorisationService\n \n \n \n \n \n \n Type : AuthorizationService\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n board\n \n \n \n \n \n \n Type : Board\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n room\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n roomsAuthorisationService\n \n \n \n \n \n \n Type : RoomsAuthorisationService\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:33\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n buildDTOWithElements\n \n \n \n \n \n \n \n buildDTOWithElements(elements: RoomBoardElementDTO[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:174\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n RoomBoardElementDTO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardDTO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createTaskStatus\n \n \n \n \n \n \n \n createTaskStatus(task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:130\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ITaskStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n filterByPermission\n \n \n \n \n \n \n \n filterByPermission(elements: BoardElement[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n BoardElement[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isColumnBoardFeatureFlagActive\n \n \n \n \n \n \n \n isColumnBoardFeatureFlagActive()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:90\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n isTeacher\n \n \n \n \n \n \n \n isTeacher()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:96\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n manufacture\n \n \n \n \n \n \nmanufacture()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:59\n \n \n\n\n \n \n\n \n Returns : RoomBoardDTO\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n mapColumnBoardElement\n \n \n \n \n \n \n \n mapColumnBoardElement(element: BoardElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:159\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n BoardElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardElementDTO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapLessonElement\n \n \n \n \n \n \n \n mapLessonElement(element: BoardElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:140\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n BoardElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardElementDTO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapTaskElement\n \n \n \n \n \n \n \n mapTaskElement(element: BoardElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n BoardElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardElementDTO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapToElementDTOs\n \n \n \n \n \n \n \n mapToElementDTOs(elements: BoardElement[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n BoardElement[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : {}\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tBoard,\n\tBoardElement,\n\tBoardElementType,\n\tColumnboardBoardElement,\n\tColumnBoardTarget,\n\tCourse,\n\tITaskStatus,\n\tLessonEntity,\n\tPermission,\n\tTask,\n\tTaskWithStatusVo,\n\tUser,\n} from '@shared/domain';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport {\n\tColumnBoardMetaData,\n\tLessonMetaData,\n\tRoomBoardDTO,\n\tRoomBoardElementDTO,\n\tRoomBoardElementTypes,\n} from '../types/room-board.types';\nimport { RoomsAuthorisationService } from './rooms.authorisation.service';\n\nclass DtoCreator {\n\troom: Course;\n\n\tboard: Board;\n\n\tuser: User;\n\n\tauthorisationService: AuthorizationService;\n\n\troomsAuthorisationService: RoomsAuthorisationService;\n\n\tconstructor({\n\t\troom,\n\t\tboard,\n\t\tuser,\n\t\tauthorisationService,\n\t\troomsAuthorisationService,\n\t}: {\n\t\troom: Course;\n\t\tboard: Board;\n\t\tuser: User;\n\t\tauthorisationService: AuthorizationService;\n\t\troomsAuthorisationService: RoomsAuthorisationService;\n\t}) {\n\t\tthis.room = room;\n\t\tthis.board = board;\n\t\tthis.user = user;\n\t\tthis.authorisationService = authorisationService;\n\t\tthis.roomsAuthorisationService = roomsAuthorisationService;\n\t}\n\n\tmanufacture(): RoomBoardDTO {\n\t\tconst elements = this.board.getElements();\n\t\tconst filtered = this.filterByPermission(elements);\n\n\t\tconst mappedElements = this.mapToElementDTOs(filtered);\n\t\tconst dto = this.buildDTOWithElements(mappedElements);\n\t\treturn dto;\n\t}\n\n\tprivate filterByPermission(elements: BoardElement[]) {\n\t\tconst filtered = elements.filter((element) => {\n\t\t\tlet result = false;\n\t\t\tif (element.boardElementType === BoardElementType.Task) {\n\t\t\t\tresult = this.roomsAuthorisationService.hasTaskReadPermission(this.user, element.target as Task);\n\t\t\t}\n\n\t\t\tif (element.boardElementType === BoardElementType.Lesson) {\n\t\t\t\tresult = this.roomsAuthorisationService.hasLessonReadPermission(this.user, element.target as LessonEntity);\n\t\t\t}\n\n\t\t\tif (element instanceof ColumnboardBoardElement && this.isColumnBoardFeatureFlagActive()) {\n\t\t\t\tresult = this.authorisationService.hasPermission(this.user, this.room, {\n\t\t\t\t\taction: Action.read,\n\t\t\t\t\trequiredPermissions: [Permission.COURSE_VIEW],\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\t\treturn filtered;\n\t}\n\n\tprivate isColumnBoardFeatureFlagActive() {\n\t\tconst isActive = (Configuration.get('FEATURE_COLUMN_BOARD_ENABLED') as boolean) === true;\n\n\t\treturn isActive;\n\t}\n\n\tprivate isTeacher(): boolean {\n\t\tif (this.room.teachers.contains(this.user) || this.room.substitutionTeachers.contains(this.user)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate mapToElementDTOs(elements: BoardElement[]) {\n\t\tconst results: RoomBoardElementDTO[] = [];\n\t\telements.forEach((element) => {\n\t\t\tif (element.boardElementType === BoardElementType.Task) {\n\t\t\t\tconst mapped = this.mapTaskElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t\tif (element.boardElementType === BoardElementType.Lesson) {\n\t\t\t\tconst mapped = this.mapLessonElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t\tif (element.boardElementType === BoardElementType.ColumnBoard) {\n\t\t\t\tconst mapped = this.mapColumnBoardElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t}\n\n\tprivate mapTaskElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst task = element.target as Task;\n\t\tconst status = this.createTaskStatus(task);\n\n\t\tconst content = new TaskWithStatusVo(task, status);\n\t\treturn { type: RoomBoardElementTypes.TASK, content };\n\t}\n\n\tprivate createTaskStatus(task: Task): ITaskStatus {\n\t\tlet status: ITaskStatus;\n\t\tif (this.isTeacher()) {\n\t\t\tstatus = task.createTeacherStatusForUser(this.user);\n\t\t} else {\n\t\t\tstatus = task.createStudentStatusForUser(this.user);\n\t\t}\n\t\treturn status;\n\t}\n\n\tprivate mapLessonElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst type = RoomBoardElementTypes.LESSON;\n\t\tconst lesson = element.target as LessonEntity;\n\t\tconst content: LessonMetaData = {\n\t\t\tid: lesson.id,\n\t\t\tname: lesson.name,\n\t\t\thidden: lesson.hidden,\n\t\t\tcreatedAt: lesson.createdAt,\n\t\t\tupdatedAt: lesson.updatedAt,\n\t\t\tcourseName: lesson.course.name,\n\t\t\tnumberOfPublishedTasks: lesson.getNumberOfPublishedTasks(),\n\t\t};\n\t\tif (this.isTeacher()) {\n\t\t\tcontent.numberOfDraftTasks = lesson.getNumberOfDraftTasks();\n\t\t\tcontent.numberOfPlannedTasks = lesson.getNumberOfPlannedTasks();\n\t\t}\n\t\treturn { type, content };\n\t}\n\n\tprivate mapColumnBoardElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst type = RoomBoardElementTypes.COLUMN_BOARD;\n\t\tconst columnBoardTarget = element.target as ColumnBoardTarget;\n\t\tconst content: ColumnBoardMetaData = {\n\t\t\tid: columnBoardTarget.id,\n\t\t\tcolumnBoardId: columnBoardTarget.columnBoardId,\n\t\t\ttitle: columnBoardTarget.title,\n\t\t\tcreatedAt: columnBoardTarget.createdAt,\n\t\t\tupdatedAt: columnBoardTarget.updatedAt,\n\t\t\tpublished: columnBoardTarget.published,\n\t\t};\n\n\t\treturn { type, content };\n\t}\n\n\tprivate buildDTOWithElements(elements: RoomBoardElementDTO[]): RoomBoardDTO {\n\t\tconst dto = {\n\t\t\troomId: this.room.id,\n\t\t\tdisplayColor: this.room.color,\n\t\t\ttitle: this.room.name,\n\t\t\telements,\n\t\t\tisArchived: this.room.isFinished(),\n\t\t};\n\t\treturn dto;\n\t}\n}\n\n@Injectable()\nexport class RoomBoardDTOFactory {\n\tconstructor(\n\t\tprivate readonly authorisationService: AuthorizationService,\n\t\tprivate readonly roomsAuthorisationService: RoomsAuthorisationService\n\t) {}\n\n\tcreateDTO({ room, board, user }: { room: Course; board: Board; user: User }): RoomBoardDTO {\n\t\tconst worker = new DtoCreator({\n\t\t\troom,\n\t\t\tboard,\n\t\t\tuser,\n\t\t\tauthorisationService: this.authorisationService,\n\t\t\troomsAuthorisationService: this.roomsAuthorisationService,\n\t\t});\n\t\tconst result = worker.manufacture();\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/DurationLoggingInterceptor.html":{"url":"injectables/DurationLoggingInterceptor.html","title":"injectable - DurationLoggingInterceptor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n DurationLoggingInterceptor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/interceptor/duration-logging.interceptor.ts\n \n\n\n \n Description\n \n \n This interceptor is logging the duration of a REST call.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n intercept\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/common/interceptor/duration-logging.interceptor.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n intercept\n \n \n \n \n \n \nintercept(context: ExecutionContext, next: CallHandler)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/interceptor/duration-logging.interceptor.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n context\n \n ExecutionContext\n \n\n \n No\n \n\n\n \n \n next\n \n CallHandler\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Observable<>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\n/**\n * This interceptor is logging the duration of a REST call.\n */\n@Injectable()\nexport class DurationLoggingInterceptor implements NestInterceptor {\n\tconstructor(private logger: LegacyLogger) {\n\t\tlogger.setContext(DurationLoggingInterceptor.name);\n\t}\n\n\tintercept(context: ExecutionContext, next: CallHandler): Observable {\n\t\tthis.logger.log('Before...');\n\t\tconst now = Date.now();\n\t\treturn next.handle().pipe(tap(() => this.logger.log(`After... ${Date.now() - now}ms`)));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ElementContentBody.html":{"url":"classes/ElementContentBody.html","title":"class - ElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ElementContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ContentElementType, description: 'the type of the updated element', enumName: 'ContentElementType'})@IsEnum(ContentElementType)\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ElementController.html":{"url":"controllers/ElementController.html","title":"controller - ElementController","body":"\n \n\n\n\n\n\n\n Controllers\n ElementController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/element.controller.ts\n \n\n \n Prefix\n \n \n elements\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSubmissionItem\n \n \n \n \n \n \n \n \n \n Async\n deleteElement\n \n \n \n \n \n \n \n \n \n Async\n moveElement\n \n \n \n \n \n \n \n \n \n \n Async\n updateElement\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSubmissionItem\n \n \n \n \n \n \n \n createSubmissionItem(urlParams: ContentElementUrlParams, bodyParams: CreateSubmissionItemBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a new submission item having parent a submission container element.'})@ApiExtraModels(SubmissionItemResponse)@ApiResponse({status: 201, type: SubmissionItemResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@ApiBody({required: true, type: CreateSubmissionItemBodyParams})@Post(':contentElementId/submissions')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.controller.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ContentElementUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n CreateSubmissionItemBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteElement\n \n \n \n \n \n \n \n deleteElement(urlParams: ContentElementUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Delete a single content element.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Delete(':contentElementId')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.controller.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ContentElementUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n moveElement\n \n \n \n \n \n \n \n moveElement(urlParams: ContentElementUrlParams, bodyParams: MoveContentElementBody, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Move a single content element.'})@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Put(':contentElementId/position')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.controller.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ContentElementUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n MoveContentElementBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateElement\n \n \n \n \n \n \n \n updateElement(urlParams: ContentElementUrlParams, bodyParams: UpdateElementContentBodyParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Update a single content element.'})@ApiExtraModels(FileElementContentBody, RichTextElementContentBody, SubmissionContainerElementContentBody)@ApiResponse({status: 204})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@HttpCode(204)@Patch(':contentElementId/content')\n \n \n\n \n \n Defined in apps/server/src/modules/board/controller/element.controller.ts:67\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ContentElementUrlParams\n \n\n \n No\n \n\n\n \n \n bodyParams\n \n UpdateElementContentBodyParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tHttpCode,\n\tNotFoundException,\n\tParam,\n\tPatch,\n\tPost,\n\tPut,\n} from '@nestjs/common';\nimport { ApiBody, ApiExtraModels, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CardUc } from '../uc';\nimport { ElementUc } from '../uc/element.uc';\nimport {\n\tContentElementUrlParams,\n\tCreateSubmissionItemBodyParams,\n\tMoveContentElementBody,\n\tSubmissionItemResponse,\n} from './dto';\nimport {\n\tFileElementContentBody,\n\tRichTextElementContentBody,\n\tSubmissionContainerElementContentBody,\n\tUpdateElementContentBodyParams,\n} from './dto/element/update-element-content.body.params';\nimport { SubmissionItemResponseMapper } from './mapper';\n\n@ApiTags('Board Element')\n@Authenticate('jwt')\n@Controller('elements')\nexport class ElementController {\n\tconstructor(private readonly cardUc: CardUc, private readonly elementUc: ElementUc) {}\n\n\t@ApiOperation({ summary: 'Move a single content element.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Put(':contentElementId/position')\n\tasync moveElement(\n\t\t@Param() urlParams: ContentElementUrlParams,\n\t\t@Body() bodyParams: MoveContentElementBody,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.cardUc.moveElement(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.contentElementId,\n\t\t\tbodyParams.toCardId,\n\t\t\tbodyParams.toPosition\n\t\t);\n\t}\n\n\t@ApiOperation({ summary: 'Update a single content element.' })\n\t@ApiExtraModels(FileElementContentBody, RichTextElementContentBody, SubmissionContainerElementContentBody)\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Patch(':contentElementId/content')\n\tasync updateElement(\n\t\t@Param() urlParams: ContentElementUrlParams,\n\t\t@Body() bodyParams: UpdateElementContentBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.elementUc.updateElementContent(currentUser.userId, urlParams.contentElementId, bodyParams.data.content);\n\t}\n\n\t@ApiOperation({ summary: 'Delete a single content element.' })\n\t@ApiResponse({ status: 204 })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@HttpCode(204)\n\t@Delete(':contentElementId')\n\tasync deleteElement(\n\t\t@Param() urlParams: ContentElementUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.cardUc.deleteElement(currentUser.userId, urlParams.contentElementId);\n\t}\n\n\t@ApiOperation({ summary: 'Create a new submission item having parent a submission container element.' })\n\t@ApiExtraModels(SubmissionItemResponse)\n\t@ApiResponse({ status: 201, type: SubmissionItemResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@ApiBody({ required: true, type: CreateSubmissionItemBodyParams })\n\t@Post(':contentElementId/submissions')\n\tasync createSubmissionItem(\n\t\t@Param() urlParams: ContentElementUrlParams,\n\t\t@Body() bodyParams: CreateSubmissionItemBodyParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst submissionItem = await this.elementUc.createSubmissionItem(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.contentElementId,\n\t\t\tbodyParams.completed\n\t\t);\n\t\tconst mapper = SubmissionItemResponseMapper.getInstance();\n\t\tconst response = mapper.mapToResponse(submissionItem);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ElementUc.html":{"url":"injectables/ElementUc.html","title":"injectable - ElementUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ElementUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/element.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n Async\n createSubmissionItem\n \n \n Async\n updateElementContent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, elementService: ContentElementService, submissionItemService: SubmissionItemService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/element.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n elementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n submissionItemService\n \n \n SubmissionItemService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.uc.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n requiredUserRole\n \n UserRoleEnum\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSubmissionItem\n \n \n \n \n \n \n \n createSubmissionItem(userId: EntityId, contentElementId: EntityId, completed: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.uc.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contentElementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n completed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateElementContent\n \n \n \n \n \n \n \n updateElementContent(userId: EntityId, elementId: EntityId, content: FileContentBody | RichTextContentBody | SubmissionContainerContentBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/element.uc.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n content\n \n FileContentBody | RichTextContentBody | SubmissionContainerContentBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, HttpException, HttpStatus, Inject, Injectable } from '@nestjs/common';\nimport { AnyBoardDo, EntityId, SubmissionContainerElement, SubmissionItem, UserRoleEnum } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport { FileContentBody, RichTextContentBody, SubmissionContainerContentBody } from '../controller/dto';\nimport { BoardDoAuthorizableService, ContentElementService } from '../service';\nimport { SubmissionItemService } from '../service/submission-item.service';\n\n@Injectable()\nexport class ElementUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly elementService: ContentElementService,\n\t\tprivate readonly submissionItemService: SubmissionItemService,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tthis.logger.setContext(ElementUc.name);\n\t}\n\n\tasync updateElementContent(\n\t\tuserId: EntityId,\n\t\telementId: EntityId,\n\t\tcontent: FileContentBody | RichTextContentBody | SubmissionContainerContentBody\n\t) {\n\t\tconst element = await this.elementService.findById(elementId);\n\n\t\tawait this.checkPermission(userId, element, Action.write);\n\n\t\tawait this.elementService.update(element, content);\n\t}\n\n\tasync createSubmissionItem(\n\t\tuserId: EntityId,\n\t\tcontentElementId: EntityId,\n\t\tcompleted: boolean\n\t): Promise {\n\t\tconst submissionContainer = (await this.elementService.findById(contentElementId)) as SubmissionContainerElement;\n\n\t\tif (!(submissionContainer instanceof SubmissionContainerElement))\n\t\t\tthrow new HttpException(\n\t\t\t\t'Cannot create submission-item for non submission-container-element',\n\t\t\t\tHttpStatus.UNPROCESSABLE_ENTITY\n\t\t\t);\n\n\t\tif (!submissionContainer.children.every((child) => child instanceof SubmissionItem))\n\t\t\tthrow new HttpException(\n\t\t\t\t'Children of submission-container-element must be of type submission-item',\n\t\t\t\tHttpStatus.UNPROCESSABLE_ENTITY\n\t\t\t);\n\n\t\tconst userSubmissionExists = submissionContainer.children.find(\n\t\t\t(item) => (item as SubmissionItem).userId === userId\n\t\t);\n\t\tif (userSubmissionExists) {\n\t\t\tthrow new HttpException(\n\t\t\t\t'User is not allowed to have multiple submission-items per submission-container-element',\n\t\t\t\tHttpStatus.NOT_ACCEPTABLE\n\t\t\t);\n\t\t}\n\n\t\tawait this.checkPermission(userId, submissionContainer, Action.read, UserRoleEnum.STUDENT);\n\n\t\tconst submissionItem = await this.submissionItemService.create(userId, submissionContainer, { completed });\n\n\t\treturn submissionItem;\n\t}\n\n\tprivate async checkPermission(\n\t\tuserId: EntityId,\n\t\tboardDo: AnyBoardDo,\n\t\taction: Action,\n\t\trequiredUserRole?: UserRoleEnum\n\t): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tif (requiredUserRole) boardDoAuthorizable.requiredUserRole = requiredUserRole;\n\t\tconst context = { action, requiredPermissions: [] };\n\n\t\treturn this.authorizationService.checkPermission(user, boardDoAuthorizable, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/EncryptionModule.html":{"url":"modules/EncryptionModule.html","title":"module - EncryptionModule","body":"\n \n\n\n\n\n Modules\n EncryptionModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_EncryptionModule\n\n\n\ncluster_EncryptionModule_imports\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nEncryptionModule -->\n\nLoggerModule->EncryptionModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/encryption/encryption.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { DefaultEncryptionService, LdapEncryptionService } from './encryption.interface';\nimport { SymetricKeyEncryptionService } from './encryption.service';\n\nfunction encryptionProviderFactory(configService: ConfigService, logger: LegacyLogger, aesKey: string) {\n\tconst key = configService.get(aesKey);\n\treturn new SymetricKeyEncryptionService(logger, key);\n}\n\n@Module({\n\timports: [LoggerModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: DefaultEncryptionService,\n\t\t\tuseFactory: (configService: ConfigService, logger: LegacyLogger) =>\n\t\t\t\tencryptionProviderFactory(configService, logger, 'AES_KEY'),\n\t\t\tinject: [ConfigService, LegacyLogger],\n\t\t},\n\t\t{\n\t\t\tprovide: LdapEncryptionService,\n\t\t\tuseFactory: (configService: ConfigService, logger: LegacyLogger) =>\n\t\t\t\tencryptionProviderFactory(configService, logger, 'LDAP_PASSWORD_ENCRYPTION_KEY'),\n\t\t\tinject: [ConfigService, LegacyLogger],\n\t\t},\n\t],\n\texports: [DefaultEncryptionService, LdapEncryptionService],\n})\nexport class EncryptionModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/EntityNotFoundError.html":{"url":"classes/EntityNotFoundError.html","title":"class - EntityNotFoundError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n EntityNotFoundError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/entity-not-found.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(entityName: string, details?: Record)\n \n \n \n \n Defined in apps/server/src/shared/common/error/entity-not-found.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityName\n \n \n string\n \n \n \n No\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class EntityNotFoundError extends BusinessError {\n\tconstructor(readonly entityName: string, details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'ENTITY_NOT_FOUND',\n\t\t\t\ttitle: 'Entity Not Found',\n\t\t\t\tdefaultMessage: `${entityName} entity not found.`,\n\t\t\t},\n\t\t\tHttpStatus.NOT_FOUND,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ErrorLoggable.html":{"url":"classes/ErrorLoggable.html","title":"class - ErrorLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ErrorLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/loggable/error.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n classValidatorMetadataStorage\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createLogMessageForValidationErrors\n \n \n getLogMessage\n \n \n Private\n getPropertyValue\n \n \n Private\n isPropertyPrivacyProtected\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(error: Error)\n \n \n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n \n Error\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n classValidatorMetadataStorage\n \n \n \n \n \n \n Default value : getMetadataStorage()\n \n \n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:11\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createLogMessageForValidationErrors\n \n \n \n \n \n \n \n createLogMessageForValidationErrors(error: ApiValidationError)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n ApiValidationError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : { validationErrors: any; type: string; }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:13\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n getPropertyValue\n \n \n \n \n \n \n \n getPropertyValue(e: ValidationError)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n e\n \n ValidationError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isPropertyPrivacyProtected\n \n \n \n \n \n \n \n isPropertyPrivacyProtected(target: Record, property: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/loggable/error.loggable.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n target\n \n Record\n \n\n \n No\n \n\n\n \n \n property\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ApiValidationError } from '@shared/common';\nimport { getMetadataStorage } from 'class-validator';\nimport { ValidationError } from '@nestjs/common';\nimport { Loggable } from '../../logger/interfaces';\nimport { ErrorLogMessage, ValidationErrorLogMessage } from '../../logger/types';\nimport { ErrorUtils } from '../utils/error.utils';\n\nexport class ErrorLoggable implements Loggable {\n\tconstructor(private readonly error: Error) {}\n\n\tprivate readonly classValidatorMetadataStorage = getMetadataStorage();\n\n\tgetLogMessage(): ErrorLogMessage | ValidationErrorLogMessage {\n\t\tlet logMessage: ErrorLogMessage | ValidationErrorLogMessage = {\n\t\t\terror: this.error,\n\t\t\ttype: '',\n\t\t};\n\n\t\tif (this.error instanceof ApiValidationError) {\n\t\t\tlogMessage = this.createLogMessageForValidationErrors(this.error);\n\t\t} else if (ErrorUtils.isFeathersError(this.error)) {\n\t\t\tlogMessage.type = 'Feathers Error';\n\t\t} else if (ErrorUtils.isBusinessError(this.error)) {\n\t\t\tlogMessage.type = 'Business Error';\n\t\t} else if (ErrorUtils.isNestHttpException(this.error)) {\n\t\t\tlogMessage.type = 'Technical Error';\n\t\t} else {\n\t\t\tlogMessage.type = 'Unhandled or Unknown Error';\n\t\t}\n\n\t\treturn logMessage;\n\t}\n\n\tprivate createLogMessageForValidationErrors(error: ApiValidationError) {\n\t\tconst errorMessages = error.validationErrors.map((e) => {\n\t\t\tconst value = this.getPropertyValue(e);\n\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\tconst message = `Wrong property value for '${e.property}' got '${value}' : ${JSON.stringify(e.constraints)}`;\n\t\t\treturn message;\n\t\t});\n\t\treturn {\n\t\t\tvalidationErrors: errorMessages,\n\t\t\ttype: 'API Validation Error',\n\t\t};\n\t}\n\n\tprivate getPropertyValue(e: ValidationError): unknown {\n\t\t// we can only log a value if we can decide if it is privacy protected\n\t\t// that has to be done using the target metadata of class-validator (see @PrivacyProtect decorator)\n\t\tif (e.target && !this.isPropertyPrivacyProtected(e.target, e.property)) {\n\t\t\treturn e.value;\n\t\t}\n\t\treturn '######';\n\t}\n\n\tprivate isPropertyPrivacyProtected(target: Record, property: string): boolean {\n\t\tconst metadatas = this.classValidatorMetadataStorage.getTargetValidationMetadatas(\n\t\t\ttarget.constructor,\n\t\t\t'',\n\t\t\ttrue,\n\t\t\ttrue\n\t\t);\n\n\t\tconst privacyProtected = metadatas.some(\n\t\t\t(validationMetadata) =>\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tvalidationMetadata.propertyName === property && validationMetadata.context?.privacyProtected\n\t\t);\n\n\t\treturn privacyProtected;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ErrorLogger.html":{"url":"injectables/ErrorLogger.html","title":"injectable - ErrorLogger","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ErrorLogger\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/error-logger.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n alert\n \n \n crit\n \n \n emerg\n \n \n error\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: WinstonLogger)\n \n \n \n \n Defined in apps/server/src/core/logger/error-logger.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n WinstonLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n alert\n \n \n \n \n \n \nalert(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/error-logger.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n crit\n \n \n \n \n \n \ncrit(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/error-logger.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n emerg\n \n \n \n \n \n \nemerg(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/error-logger.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n error\n \n \n \n \n \n \nerror(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/error-logger.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable } from '@nestjs/common';\nimport { WINSTON_MODULE_PROVIDER } from 'nest-winston';\nimport { Logger as WinstonLogger } from 'winston';\nimport { Loggable } from './interfaces';\nimport { LoggingUtils } from './logging.utils';\n\n// ErrorLogger may only be used in the ErrorModule. Do not use it in other modules!\n@Injectable()\nexport class ErrorLogger {\n\tconstructor(@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: WinstonLogger) {}\n\n\temerg(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable);\n\t\tthis.logger.emerg(message);\n\t}\n\n\talert(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable);\n\t\tthis.logger.alert(message);\n\t}\n\n\tcrit(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable);\n\t\tthis.logger.crit(message);\n\t}\n\n\terror(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable);\n\t\tthis.logger.error(message);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ErrorMapper.html":{"url":"classes/ErrorMapper.html","title":"class - ErrorMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ErrorMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/mapper/error.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapRpcErrorResponseToDomainError\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapRpcErrorResponseToDomainError\n \n \n \n \n \n \n \n mapRpcErrorResponseToDomainError(errorObj: IError)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/error.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n errorObj\n \n IError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BadRequestException | ForbiddenException | InternalServerErrorException\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, ForbiddenException, InternalServerErrorException } from '@nestjs/common';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { IError } from '@shared/infra/rabbitmq';\n\nexport class ErrorMapper {\n\tstatic mapRpcErrorResponseToDomainError(\n\t\terrorObj: IError\n\t): BadRequestException | ForbiddenException | InternalServerErrorException {\n\t\tlet error: BadRequestException | ForbiddenException | InternalServerErrorException;\n\t\tif (errorObj.status === 400) {\n\t\t\terror = new BadRequestException(errorObj.message);\n\t\t} else if (errorObj.status === 403) {\n\t\t\terror = new ForbiddenException(errorObj.message);\n\t\t} else if (errorObj.status === 500) {\n\t\t\terror = new InternalServerErrorException(errorObj.message);\n\t\t} else {\n\t\t\terror = new InternalServerErrorException(null, ErrorUtils.createHttpExceptionOptions(errorObj));\n\t\t}\n\n\t\treturn error;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ErrorModule.html":{"url":"modules/ErrorModule.html","title":"module - ErrorModule","body":"\n \n\n\n\n\n Modules\n ErrorModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ErrorModule\n\n\n\ncluster_ErrorModule_imports\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nErrorModule\n\nErrorModule\n\nErrorModule -->\n\nLoggerModule->ErrorModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/error/error.module.ts\n \n\n\n\n \n Description\n \n \n Overrides the default global Exception Filter of NestJS provided by @APP_FILTER\n\n \n\n\n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { APP_FILTER } from '@nestjs/core';\nimport { LoggerModule } from '../logger';\nimport { GlobalErrorFilter } from './filter/global-error.filter';\n\n/**\n * Overrides the default global Exception Filter of NestJS provided by @APP_FILTER\n */\n@Module({\n\timports: [LoggerModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: APP_FILTER,\n\t\t\tuseClass: GlobalErrorFilter,\n\t\t},\n\t],\n})\nexport class ErrorModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ErrorResponse.html":{"url":"classes/ErrorResponse.html","title":"class - ErrorResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ErrorResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/dto/error.response.ts\n \n\n\n \n Description\n \n \n HTTP response definition for errors.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n code\n \n \n Readonly\n Optional\n details\n \n \n Readonly\n message\n \n \n Readonly\n title\n \n \n Readonly\n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(type: string, title: string, message: string, code: number, details?: Record)\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n \n string\n \n \n \n No\n \n \n \n \n title\n \n \n string\n \n \n \n No\n \n \n \n \n message\n \n \n string\n \n \n \n No\n \n \n \n \n code\n \n \n number\n \n \n \n No\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:25\n \n \n\n \n \n Must match HTTP error code\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:30\n \n \n\n \n \n Additional custom details about the error\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:20\n \n \n\n \n \n Additional custom information about the error\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:15\n \n \n\n \n \n Description about the type, unique by type, format: Sentence case\n\n \n \n\n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/core/error/dto/error.response.ts:10\n \n \n\n \n \n Unambiguous error identifier, format: UPPERCASE_SNAKE_CASE\n\n \n \n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\n\n/**\n * HTTP response definition for errors.\n */\nexport class ErrorResponse {\n\t/**\n\t * Unambiguous error identifier, format: UPPERCASE_SNAKE_CASE\n\t */\n\treadonly type: string;\n\n\t/**\n\t * Description about the type, unique by type, format: Sentence case\n\t */\n\treadonly title: string;\n\n\t/**\n\t * Additional custom information about the error\n\t */\n\treadonly message: string;\n\n\t/**\n\t * Must match HTTP error code\n\t */\n\treadonly code: number;\n\n\t/**\n\t * Additional custom details about the error\n\t */\n\treadonly details?: Record;\n\n\tconstructor(\n\t\ttype: string,\n\t\ttitle: string,\n\t\tmessage: string,\n\t\tcode: number = HttpStatus.CONFLICT,\n\t\tdetails?: Record\n\t) {\n\t\tthis.type = type;\n\t\tthis.title = title;\n\t\tthis.message = message;\n\t\tthis.code = code;\n\t\tthis.details = details;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ErrorUtils.html":{"url":"classes/ErrorUtils.html","title":"class - ErrorUtils","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ErrorUtils\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/utils/error.utils.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n createHttpExceptionOptions\n \n \n Static\n isBusinessError\n \n \n Static\n isFeathersError\n \n \n Static\n isNestHttpException\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n createHttpExceptionOptions\n \n \n \n \n \n \n \n createHttpExceptionOptions(error, description?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/utils/error.utils.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n \n\n \n No\n \n\n\n \n \n description\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : HttpExceptionOptions\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isBusinessError\n \n \n \n \n \n \n \n isBusinessError(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/utils/error.utils.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BusinessError\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isFeathersError\n \n \n \n \n \n \n \n isFeathersError(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/utils/error.utils.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FeathersError\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isNestHttpException\n \n \n \n \n \n \n \n isNestHttpException(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/utils/error.utils.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : HttpException\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, HttpExceptionOptions } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\nimport { FeathersError } from '../interface';\n\nexport class ErrorUtils {\n\tstatic isFeathersError(error: unknown): error is FeathersError {\n\t\tlet isFeathersError = false;\n\n\t\tif (error instanceof Error && 'type' in error) {\n\t\t\tisFeathersError = (error as FeathersError)?.type === 'FeathersError';\n\t\t}\n\n\t\treturn isFeathersError;\n\t}\n\n\tstatic isBusinessError(error: unknown): error is BusinessError {\n\t\treturn error instanceof BusinessError;\n\t}\n\n\tstatic isNestHttpException(error: unknown): error is HttpException {\n\t\treturn error instanceof HttpException;\n\t}\n\n\tstatic createHttpExceptionOptions(error: unknown, description?: string): HttpExceptionOptions {\n\t\tlet causeError: Error | undefined;\n\n\t\tif (error instanceof Error) {\n\t\t\tcauseError = error;\n\t\t} else {\n\t\t\tcauseError = error ? new Error(JSON.stringify(error)) : undefined;\n\t\t}\n\n\t\treturn { cause: causeError, description };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/EtherpadService.html":{"url":"injectables/EtherpadService.html","title":"injectable - EtherpadService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n EtherpadService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/service/etherpad.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createEtherpad\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(feathersServiceProvider: FeathersServiceProvider, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/etherpad.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n feathersServiceProvider\n \n \n FeathersServiceProvider\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createEtherpad\n \n \n \n \n \n \n \n createEtherpad(userId: EntityId, courseId: string, title: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/etherpad.service.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n string\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain/types';\nimport { FeathersServiceProvider } from '@shared/infra/feathers/feathers-service.provider';\nimport { LegacyLogger } from '@src/core/logger';\n\nexport type PadResponse = { data: { padID: string } };\n\n@Injectable()\nexport class EtherpadService {\n\tconstructor(private readonly feathersServiceProvider: FeathersServiceProvider, private logger: LegacyLogger) {}\n\n\tasync createEtherpad(userId: EntityId, courseId: string, title: string): Promise {\n\t\tconst data = {\n\t\t\tcourseId,\n\t\t\tpadName: title,\n\t\t};\n\t\ttry {\n\t\t\tconst service = this.feathersServiceProvider.getService('/etherpad/pads');\n\t\t\tconst pad = (await service.create(data, { account: { userId } })) as PadResponse;\n\t\t\treturn pad.data.padID;\n\t\t} catch (error) {\n\t\t\tthis.logger.error('Could not create new Etherpad', error);\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalGroupDto.html":{"url":"classes/ExternalGroupDto.html","title":"class - ExternalGroupDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalGroupDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/external-group.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalId\n \n \n Optional\n externalOrganizationId\n \n \n from\n \n \n name\n \n \n type\n \n \n until\n \n \n users\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalGroupDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalGroupDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n externalOrganizationId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n from\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : GroupTypes\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n until\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : ExternalGroupUserDto[]\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group.dto.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { GroupTypes } from '@src/modules/group';\nimport { ExternalGroupUserDto } from './external-group-user.dto';\n\nexport class ExternalGroupDto {\n\texternalId: string;\n\n\tname: string;\n\n\tusers: ExternalGroupUserDto[];\n\n\tfrom: Date;\n\n\tuntil: Date;\n\n\ttype: GroupTypes;\n\n\texternalOrganizationId?: string;\n\n\tconstructor(props: ExternalGroupDto) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.name = props.name;\n\t\tthis.users = props.users;\n\t\tthis.from = props.from;\n\t\tthis.until = props.until;\n\t\tthis.type = props.type;\n\t\tthis.externalOrganizationId = props.externalOrganizationId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalGroupUserDto.html":{"url":"classes/ExternalGroupUserDto.html","title":"class - ExternalGroupUserDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalGroupUserDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/external-group-user.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalUserId\n \n \n roleName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalGroupUserDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group-user.dto.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalGroupUserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalUserId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group-user.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n roleName\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-group-user.dto.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { RoleName } from '@shared/domain';\n\nexport class ExternalGroupUserDto {\n\texternalUserId: string;\n\n\troleName: RoleName;\n\n\tconstructor(props: ExternalGroupUserDto) {\n\t\tthis.externalUserId = props.externalUserId;\n\t\tthis.roleName = props.roleName;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalSchoolDto.html":{"url":"classes/ExternalSchoolDto.html","title":"class - ExternalSchoolDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalSchoolDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/external-school.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalId\n \n \n name\n \n \n Optional\n officialSchoolNumber\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalSchoolDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-school.dto.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalSchoolDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-school.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-school.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n officialSchoolNumber\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-school.dto.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class ExternalSchoolDto {\n\texternalId: string;\n\n\tname: string;\n\n\tofficialSchoolNumber?: string;\n\n\tconstructor(props: ExternalSchoolDto) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.name = props.name;\n\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalSource.html":{"url":"classes/ExternalSource.html","title":"class - ExternalSource","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalSource\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/external-source.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalId\n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalSource)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/external-source.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalSource\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/external-source.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/external-source.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class ExternalSource {\n\texternalId: string;\n\n\tsystemId: string;\n\n\tconstructor(props: ExternalSource) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.systemId = props.systemId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalSourceEntity.html":{"url":"classes/ExternalSourceEntity.html","title":"class - ExternalSourceEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalSourceEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/external-source.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n system\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalSourceEntityProps)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/external-source.entity.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalSourceEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/external-source.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n Type : System\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/external-source.entity.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, ManyToOne, Property } from '@mikro-orm/core';\nimport { System } from './system.entity';\n\nexport interface ExternalSourceEntityProps {\n\texternalId: string;\n\n\tsystem: System;\n}\n\n@Embeddable()\nexport class ExternalSourceEntity {\n\t@Property()\n\texternalId: string;\n\n\t@ManyToOne(() => System)\n\tsystem: System;\n\n\tconstructor(props: ExternalSourceEntityProps) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.system = props.system;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalSourceEntityProps.html":{"url":"interfaces/ExternalSourceEntityProps.html","title":"interface - ExternalSourceEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalSourceEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/external-source.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n externalId\n \n \n \n \n system\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n \n \n system: System\n\n \n \n\n\n \n \n Type : System\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, ManyToOne, Property } from '@mikro-orm/core';\nimport { System } from './system.entity';\n\nexport interface ExternalSourceEntityProps {\n\texternalId: string;\n\n\tsystem: System;\n}\n\n@Embeddable()\nexport class ExternalSourceEntity {\n\t@Property()\n\texternalId: string;\n\n\t@ManyToOne(() => System)\n\tsystem: System;\n\n\tconstructor(props: ExternalSourceEntityProps) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.system = props.system;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalTool.html":{"url":"classes/ExternalTool.html","title":"class - ExternalTool","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalTool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n \n Implements\n \n \n ToolVersion\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n config\n \n \n isHidden\n \n \n Optional\n logo\n \n \n Optional\n logoUrl\n \n \n name\n \n \n openNewTab\n \n \n Optional\n parameters\n \n \n Optional\n url\n \n \n version\n \n \n Optional\n id\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getVersion\n \n \n Static\n isLti11Config\n \n \n Static\n isOauth2Config\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalToolProps)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:46\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalToolProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logo\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameter[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \ngetVersion()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:62\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n \n \n \n \n \n \n Static\n isLti11Config\n \n \n \n \n \n \n \n isLti11Config(config: ExternalToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n ExternalToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfig\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isOauth2Config\n \n \n \n \n \n \n \n isOauth2Config(config: ExternalToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n ExternalToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfig\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { ToolVersion } from '../../common/interface';\nimport { Oauth2ToolConfig, BasicToolConfig, Lti11ToolConfig, ExternalToolConfig } from './config';\nimport { CustomParameter } from '../../common/domain';\nimport { ToolConfigType } from '../../common/enum';\n\nexport interface ExternalToolProps {\n\tid?: string;\n\n\tname: string;\n\n\turl?: string;\n\n\tlogoUrl?: string;\n\n\tlogo?: string;\n\n\tconfig: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig;\n\n\tparameters?: CustomParameter[];\n\n\tisHidden: boolean;\n\n\topenNewTab: boolean;\n\n\tversion: number;\n}\n\nexport class ExternalTool extends BaseDO implements ToolVersion {\n\tname: string;\n\n\turl?: string;\n\n\tlogoUrl?: string;\n\n\tlogo?: string;\n\n\tconfig: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig;\n\n\tparameters?: CustomParameter[];\n\n\tisHidden: boolean;\n\n\topenNewTab: boolean;\n\n\tversion: number;\n\n\tconstructor(props: ExternalToolProps) {\n\t\tsuper(props.id);\n\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.logo = props.logo;\n\t\tthis.config = props.config;\n\t\tthis.parameters = props.parameters;\n\t\tthis.isHidden = props.isHidden;\n\t\tthis.openNewTab = props.openNewTab;\n\t\tthis.version = props.version;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.version;\n\t}\n\n\tstatic isOauth2Config(config: ExternalToolConfig): config is Oauth2ToolConfig {\n\t\treturn ToolConfigType.OAUTH2 === config.type;\n\t}\n\n\tstatic isLti11Config(config: ExternalToolConfig): config is Lti11ToolConfig {\n\t\treturn ToolConfigType.LTI11 === config.type;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolConfig.html":{"url":"classes/ExternalToolConfig.html","title":"class - ExternalToolConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/config/external-tool-config.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n baseUrl\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalToolConfig)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/external-tool-config.do.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalToolConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/external-tool-config.do.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/external-tool-config.do.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigType } from '../../../common/enum';\n\nexport abstract class ExternalToolConfig {\n\ttype: ToolConfigType;\n\n\tbaseUrl: string;\n\n\tconstructor(props: ExternalToolConfig) {\n\t\tthis.type = props.type;\n\t\tthis.baseUrl = props.baseUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolConfigCreateParams.html":{"url":"classes/ExternalToolConfigCreateParams.html","title":"class - ExternalToolConfigCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolConfigCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/external-tool-config.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Abstract\n baseUrl\n \n \n Abstract\n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/external-tool-config.params.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Abstract\n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/external-tool-config.params.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigType } from '../../../../../common/enum';\n\nexport abstract class ExternalToolConfigCreateParams {\n\tabstract type: ToolConfigType;\n\n\tabstract baseUrl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolConfigEntity.html":{"url":"classes/ExternalToolConfigEntity.html","title":"class - ExternalToolConfigEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolConfigEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/config/external-tool-config.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalToolConfigEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/external-tool-config.entity.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalToolConfigEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/external-tool-config.entity.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/external-tool-config.entity.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { ToolConfigType } from '../../../common/enum';\n\n@Embeddable({ abstract: true, discriminatorColumn: 'type' })\nexport abstract class ExternalToolConfigEntity {\n\t@Enum()\n\ttype: ToolConfigType;\n\n\t@Property()\n\tbaseUrl: string;\n\n\tconstructor(props: ExternalToolConfigEntity) {\n\t\tthis.type = props.type;\n\t\tthis.baseUrl = props.baseUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolConfigResponse.html":{"url":"classes/ExternalToolConfigResponse.html","title":"class - ExternalToolConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/config/external-tool-config.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Abstract\n baseUrl\n \n \n Abstract\n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/external-tool-config.response.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Abstract\n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/external-tool-config.response.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigType } from '../../../../../common/enum';\n\nexport abstract class ExternalToolConfigResponse {\n\tabstract type: ToolConfigType;\n\n\tabstract baseUrl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolConfigurationService.html":{"url":"injectables/ExternalToolConfigurationService.html","title":"injectable - ExternalToolConfigurationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolConfigurationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n filterForAvailableExternalTools\n \n \n Public\n filterForAvailableSchoolExternalTools\n \n \n Public\n filterForAvailableTools\n \n \n Public\n filterParametersForScope\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolFeatures: IToolFeatures)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolFeatures\n \n \n IToolFeatures\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n filterForAvailableExternalTools\n \n \n \n \n \n \n \n filterForAvailableExternalTools(externalTools: ExternalTool[], availableSchoolExternalTools: SchoolExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTools\n \n ExternalTool[]\n \n\n \n No\n \n\n\n \n \n availableSchoolExternalTools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolTemplateInfo[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n filterForAvailableSchoolExternalTools\n \n \n \n \n \n \n \n filterForAvailableSchoolExternalTools(schoolExternalTools: SchoolExternalTool[], contextExternalToolsInUse: ContextExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n contextExternalToolsInUse\n \n ContextExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalTool[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n filterForAvailableTools\n \n \n \n \n \n \n \n filterForAvailableTools(externalTools: Page, toolIdsInUse: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTools\n \n Page\n \n\n \n No\n \n\n\n \n \n toolIdsInUse\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalTool[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n filterParametersForScope\n \n \n \n \n \n \n \n filterParametersForScope(externalTool: ExternalTool, scope: CustomParameterScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-configuration.service.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n scope\n \n CustomParameterScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable } from '@nestjs/common';\nimport { EntityId, Page } from '@shared/domain';\nimport { IToolFeatures, ToolFeatures } from '../../tool-config';\nimport { ExternalTool } from '../domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { CustomParameterScope } from '../../common/enum';\nimport { CustomParameter } from '../../common/domain';\nimport { ContextExternalToolTemplateInfo } from '../uc/dto';\n\n@Injectable()\nexport class ExternalToolConfigurationService {\n\tconstructor(@Inject(ToolFeatures) private readonly toolFeatures: IToolFeatures) {}\n\n\tpublic filterForAvailableTools(externalTools: Page, toolIdsInUse: EntityId[]): ExternalTool[] {\n\t\tconst visibleTools: ExternalTool[] = externalTools.data.filter((tool: ExternalTool): boolean => !tool.isHidden);\n\n\t\tconst availableTools: ExternalTool[] = visibleTools.filter(\n\t\t\t(tool: ExternalTool): boolean => !!tool.id && !toolIdsInUse.includes(tool.id)\n\t\t);\n\t\treturn availableTools;\n\t}\n\n\tpublic filterForAvailableSchoolExternalTools(\n\t\tschoolExternalTools: SchoolExternalTool[],\n\t\tcontextExternalToolsInUse: ContextExternalTool[]\n\t): SchoolExternalTool[] {\n\t\tconst availableSchoolExternalTools: SchoolExternalTool[] = schoolExternalTools.filter(\n\t\t\t(schoolExternalTool: SchoolExternalTool): boolean => {\n\t\t\t\tif (this.toolFeatures.contextConfigurationEnabled) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tconst hasContextExternalTool: boolean = contextExternalToolsInUse.some(\n\t\t\t\t\t(contextExternalTool: ContextExternalTool) =>\n\t\t\t\t\t\tcontextExternalTool.schoolToolRef.schoolToolId === schoolExternalTool.id\n\t\t\t\t);\n\n\t\t\t\treturn !hasContextExternalTool;\n\t\t\t}\n\t\t);\n\n\t\treturn availableSchoolExternalTools;\n\t}\n\n\tpublic filterForAvailableExternalTools(\n\t\texternalTools: ExternalTool[],\n\t\tavailableSchoolExternalTools: SchoolExternalTool[]\n\t): ContextExternalToolTemplateInfo[] {\n\t\tconst toolsWithSchoolTool: (ContextExternalToolTemplateInfo | null)[] = availableSchoolExternalTools.map(\n\t\t\t(schoolExternalTool: SchoolExternalTool) => {\n\t\t\t\tconst externalTool: ExternalTool | undefined = externalTools.find(\n\t\t\t\t\t(tool: ExternalTool) => schoolExternalTool.toolId === tool.id\n\t\t\t\t);\n\n\t\t\t\tif (!externalTool) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\texternalTool,\n\t\t\t\t\tschoolExternalTool,\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\n\t\tconst unusedTools: ContextExternalToolTemplateInfo[] = toolsWithSchoolTool.filter(\n\t\t\t(toolRef): toolRef is ContextExternalToolTemplateInfo => !!toolRef\n\t\t);\n\t\tconst availableTools: ContextExternalToolTemplateInfo[] = unusedTools.filter(\n\t\t\t(toolRef): toolRef is ContextExternalToolTemplateInfo => !toolRef.externalTool.isHidden\n\t\t);\n\n\t\treturn availableTools;\n\t}\n\n\tpublic filterParametersForScope(externalTool: ExternalTool, scope: CustomParameterScope) {\n\t\tif (externalTool.parameters) {\n\t\t\texternalTool.parameters = externalTool.parameters.filter(\n\t\t\t\t(parameter: CustomParameter) => parameter.scope === scope\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolConfigurationUc.html":{"url":"injectables/ExternalToolConfigurationUc.html","title":"injectable - ExternalToolConfigurationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolConfigurationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n ensureContextPermissions\n \n \n Private\n Async\n ensureSchoolPermissions\n \n \n Public\n Async\n getAvailableToolsForContext\n \n \n Public\n Async\n getAvailableToolsForSchool\n \n \n Public\n Async\n getTemplateForContextExternalTool\n \n \n Public\n Async\n getTemplateForSchoolExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService, toolPermissionHelper: ToolPermissionHelper, externalToolConfigurationService: ExternalToolConfigurationService, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n externalToolConfigurationService\n \n \n ExternalToolConfigurationService\n \n \n \n No\n \n \n \n \n externalToolLogoService\n \n \n ExternalToolLogoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n ensureContextPermissions\n \n \n \n \n \n \n \n ensureContextPermissions(userId: EntityId, tools: ContextExternalTool[], context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:179\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n tools\n \n ContextExternalTool[]\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n ensureSchoolPermissions\n \n \n \n \n \n \n \n ensureSchoolPermissions(userId: EntityId, tools: SchoolExternalTool[], context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n tools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForContext\n \n \n \n \n \n \n \n getAvailableToolsForContext(userId: EntityId, schoolId: EntityId, contextId: EntityId, contextType: ToolContextType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextType\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForSchool\n \n \n \n \n \n \n \n getAvailableToolsForSchool(userId: EntityId, schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getTemplateForContextExternalTool\n \n \n \n \n \n \n \n getTemplateForContextExternalTool(userId: EntityId, contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:138\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getTemplateForSchoolExternalTool\n \n \n \n \n \n \n \n getTemplateForSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool-configuration.uc.ts:116\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { NotFoundException } from '@nestjs/common/exceptions/not-found.exception';\nimport { EntityId, Permission } from '@shared/domain';\nimport { Page } from '@shared/domain/domainobject/page';\nimport { AuthorizationContext, AuthorizationContextBuilder } from '@src/modules/authorization';\nimport { CustomParameterScope, ToolContextType } from '../../common/enum';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolLogoService, ExternalToolService, ExternalToolConfigurationService } from '../service';\nimport { ContextExternalToolTemplateInfo } from './dto';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class ExternalToolConfigurationUc {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\t@Inject(forwardRef(() => ToolPermissionHelper))\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper,\n\t\tprivate readonly externalToolConfigurationService: ExternalToolConfigurationService,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tpublic async getAvailableToolsForSchool(userId: EntityId, schoolId: EntityId): Promise {\n\t\tconst externalTools: Page = await this.externalToolService.findExternalTools({});\n\n\t\tconst schoolExternalToolsInUse: SchoolExternalTool[] = await this.schoolExternalToolService.findSchoolExternalTools(\n\t\t\t{\n\t\t\t\tschoolId,\n\t\t\t}\n\t\t);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.ensureSchoolPermissions(userId, schoolExternalToolsInUse, context);\n\n\t\tconst toolIdsInUse: EntityId[] = schoolExternalToolsInUse.map(\n\t\t\t(schoolExternalTool: SchoolExternalTool): EntityId => schoolExternalTool.toolId\n\t\t);\n\n\t\tconst availableTools: ExternalTool[] = this.externalToolConfigurationService.filterForAvailableTools(\n\t\t\texternalTools,\n\t\t\ttoolIdsInUse\n\t\t);\n\n\t\tavailableTools.forEach((externalTool) => {\n\t\t\tthis.externalToolConfigurationService.filterParametersForScope(externalTool, CustomParameterScope.SCHOOL);\n\t\t});\n\n\t\tavailableTools.forEach((externalTool) => {\n\t\t\texternalTool.logoUrl = this.externalToolLogoService.buildLogoUrl(\n\t\t\t\t'/v3/tools/external-tools/{id}/logo',\n\t\t\t\texternalTool\n\t\t\t);\n\t\t});\n\n\t\treturn availableTools;\n\t}\n\n\tpublic async getAvailableToolsForContext(\n\t\tuserId: EntityId,\n\t\tschoolId: EntityId,\n\t\tcontextId: EntityId,\n\t\tcontextType: ToolContextType\n\t): Promise {\n\t\tconst [externalTools, schoolExternalTools, contextExternalToolsInUse]: [\n\t\t\tPage,\n\t\t\tSchoolExternalTool[],\n\t\t\tContextExternalTool[]\n\t\t] = await Promise.all([\n\t\t\tthis.externalToolService.findExternalTools({}),\n\t\t\tthis.schoolExternalToolService.findSchoolExternalTools({\n\t\t\t\tschoolId,\n\t\t\t}),\n\t\t\tthis.contextExternalToolService.findContextExternalTools({\n\t\t\t\tcontext: { id: contextId, type: contextType },\n\t\t\t}),\n\t\t]);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.ensureContextPermissions(userId, contextExternalToolsInUse, context);\n\n\t\tconst availableSchoolExternalTools: SchoolExternalTool[] =\n\t\t\tthis.externalToolConfigurationService.filterForAvailableSchoolExternalTools(\n\t\t\t\tschoolExternalTools,\n\t\t\t\tcontextExternalToolsInUse\n\t\t\t);\n\n\t\tconst availableToolsForContext: ContextExternalToolTemplateInfo[] =\n\t\t\tthis.externalToolConfigurationService.filterForAvailableExternalTools(\n\t\t\t\texternalTools.data,\n\t\t\t\tavailableSchoolExternalTools\n\t\t\t);\n\n\t\tavailableToolsForContext.forEach((toolTemplateInfo) => {\n\t\t\tthis.externalToolConfigurationService.filterParametersForScope(\n\t\t\t\ttoolTemplateInfo.externalTool,\n\t\t\t\tCustomParameterScope.CONTEXT\n\t\t\t);\n\t\t});\n\n\t\tavailableToolsForContext.forEach((toolTemplateInfo) => {\n\t\t\ttoolTemplateInfo.externalTool.logoUrl = this.externalToolLogoService.buildLogoUrl(\n\t\t\t\t'/v3/tools/external-tools/{id}/logo',\n\t\t\t\ttoolTemplateInfo.externalTool\n\t\t\t);\n\t\t});\n\n\t\treturn availableToolsForContext;\n\t}\n\n\tpublic async getTemplateForSchoolExternalTool(\n\t\tuserId: EntityId,\n\t\tschoolExternalToolId: EntityId\n\t): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tschoolExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findExternalToolById(schoolExternalTool.toolId);\n\n\t\tif (externalTool.isHidden) {\n\t\t\tthrow new NotFoundException('Could not find the Tool Template');\n\t\t}\n\n\t\tthis.externalToolConfigurationService.filterParametersForScope(externalTool, CustomParameterScope.SCHOOL);\n\n\t\treturn externalTool;\n\t}\n\n\tpublic async getTemplateForContextExternalTool(\n\t\tuserId: EntityId,\n\t\tcontextExternalToolId: EntityId\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolService.getContextExternalToolById(\n\t\t\tcontextExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tcontextExternalTool.schoolToolRef.schoolToolId\n\t\t);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findExternalToolById(schoolExternalTool.toolId);\n\n\t\tif (externalTool.isHidden) {\n\t\t\tthrow new NotFoundException('Could not find the Tool Template');\n\t\t}\n\n\t\tthis.externalToolConfigurationService.filterParametersForScope(externalTool, CustomParameterScope.CONTEXT);\n\n\t\treturn {\n\t\t\texternalTool,\n\t\t\tschoolExternalTool,\n\t\t};\n\t}\n\n\tprivate async ensureSchoolPermissions(\n\t\tuserId: EntityId,\n\t\ttools: SchoolExternalTool[],\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tawait Promise.all(\n\t\t\ttools.map(async (tool: SchoolExternalTool) =>\n\t\t\t\tthis.toolPermissionHelper.ensureSchoolPermissions(userId, tool, context)\n\t\t\t)\n\t\t);\n\t}\n\n\tprivate async ensureContextPermissions(\n\t\tuserId: EntityId,\n\t\ttools: ContextExternalTool[],\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tawait Promise.all(\n\t\t\ttools.map(async (tool: ContextExternalTool) =>\n\t\t\t\tthis.toolPermissionHelper.ensureContextPermissions(userId, tool, context)\n\t\t\t)\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolCreateParams.html":{"url":"classes/ExternalToolCreateParams.html","title":"class - ExternalToolCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n config\n \n \n \n \n isHidden\n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n name\n \n \n \n \n openNewTab\n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n Optional\n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : Lti11ToolConfigCreateParams | Oauth2ToolConfigCreateParams | BasicToolConfigParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@Type(undefined, {keepDiscriminatorProperty: true, discriminator: undefined})@ApiProperty({oneOf: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:59\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterPostParams[]\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested({each: true})@IsArray()@IsOptional()@ApiPropertyOptional({type: undefined})@Type(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-create.params.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsBoolean, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { ToolConfigType } from '../../../../common/enum';\nimport {\n\tBasicToolConfigParams,\n\tExternalToolConfigCreateParams,\n\tLti11ToolConfigCreateParams,\n\tOauth2ToolConfigCreateParams,\n} from './config';\nimport { CustomParameterPostParams } from './custom-parameter.params';\n\n@ApiExtraModels(Lti11ToolConfigCreateParams, Oauth2ToolConfigCreateParams, BasicToolConfigParams)\nexport class ExternalToolCreateParams {\n\t@IsString()\n\t@ApiProperty()\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\turl?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ValidateNested()\n\t@Type(/* istanbul ignore next */ () => ExternalToolConfigCreateParams, {\n\t\tkeepDiscriminatorProperty: true,\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: Lti11ToolConfigCreateParams, name: ToolConfigType.LTI11 },\n\t\t\t\t{ value: Oauth2ToolConfigCreateParams, name: ToolConfigType.OAUTH2 },\n\t\t\t\t{ value: BasicToolConfigParams, name: ToolConfigType.BASIC },\n\t\t\t],\n\t\t},\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(BasicToolConfigParams) },\n\t\t\t{ $ref: getSchemaPath(Lti11ToolConfigCreateParams) },\n\t\t\t{ $ref: getSchemaPath(Oauth2ToolConfigCreateParams) },\n\t\t],\n\t})\n\tconfig!: Lti11ToolConfigCreateParams | Oauth2ToolConfigCreateParams | BasicToolConfigParams;\n\n\t@ValidateNested({ each: true })\n\t@IsArray()\n\t@IsOptional()\n\t@ApiPropertyOptional({ type: [CustomParameterPostParams] })\n\t@Type(/* istanbul ignore next */ () => CustomParameterPostParams)\n\tparameters?: CustomParameterPostParams[];\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tisHidden!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\topenNewTab!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ExternalToolEntity.html":{"url":"entities/ExternalToolEntity.html","title":"entity - ExternalToolEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ExternalToolEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n isHidden\n \n \n \n Optional\n logoBase64\n \n \n \n Optional\n logoUrl\n \n \n \n \n name\n \n \n \n openNewTab\n \n \n \n Optional\n parameters\n \n \n \n Optional\n url\n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : BasicToolConfigEntity | Oauth2ToolConfigEntity | Lti11ToolConfigEntity\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoBase64\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Unique()@Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/external-tool.entity.ts:37\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, Property, Unique } from '@mikro-orm/core';\n\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { CustomParameterEntity } from './custom-parameter';\nimport { BasicToolConfigEntity, Lti11ToolConfigEntity, Oauth2ToolConfigEntity } from './config';\n\nexport type IExternalToolProperties = Readonly>;\n\n@Entity({ tableName: 'external_tools' })\nexport class ExternalToolEntity extends BaseEntityWithTimestamps {\n\t@Unique()\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\tlogoUrl?: string;\n\n\t@Property({ nullable: true })\n\tlogoBase64?: string;\n\n\t@Embedded(() => [BasicToolConfigEntity, Oauth2ToolConfigEntity, Lti11ToolConfigEntity])\n\tconfig: BasicToolConfigEntity | Oauth2ToolConfigEntity | Lti11ToolConfigEntity;\n\n\t@Embedded(() => CustomParameterEntity, { array: true, nullable: true })\n\tparameters?: CustomParameterEntity[];\n\n\t@Property()\n\tisHidden: boolean;\n\n\t@Property()\n\topenNewTab: boolean;\n\n\t@Property()\n\tversion: number;\n\n\tconstructor(props: IExternalToolProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.logoBase64 = props.logoBase64;\n\t\tthis.config = props.config;\n\t\tthis.parameters = props.parameters;\n\t\tthis.isHidden = props.isHidden;\n\t\tthis.openNewTab = props.openNewTab;\n\t\tthis.version = props.version;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolEntityFactory.html":{"url":"classes/ExternalToolEntityFactory.html","title":"class - ExternalToolEntityFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolEntityFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/external-tool-entity.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withBase64Logo\n \n \n withBasicConfig\n \n \n withLti11Config\n \n \n withName\n \n \n withOauth2Config\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withBase64Logo\n \n \n \n \n \n \nwithBase64Logo()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n withBasicConfig\n \n \n \n \n \n \nwithBasicConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n withLti11Config\n \n \n \n \n \n \nwithLti11Config()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n withName\n \n \n \n \n \n \nwithName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOauth2Config\n \n \n \n \n \n \nwithOauth2Config(clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/external-tool-entity.factory.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tToolConfigType,\n} from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfigEntity,\n\tCustomParameterEntity,\n\tExternalToolEntity,\n\tIExternalToolProperties,\n\tLti11ToolConfigEntity,\n\tOauth2ToolConfigEntity,\n} from '@src/modules/tool/external-tool/entity';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\n\nexport class ExternalToolEntityFactory extends BaseFactory {\n\twithName(name: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tname,\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBasicConfig(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: new BasicToolConfigEntity({\n\t\t\t\ttype: ToolConfigType.BASIC,\n\t\t\t\tbaseUrl: 'mockBaseUrl',\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithOauth2Config(clientId: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: new Oauth2ToolConfigEntity({\n\t\t\t\ttype: ToolConfigType.OAUTH2,\n\t\t\t\tbaseUrl: 'mockBaseUrl',\n\t\t\t\tclientId,\n\t\t\t\tskipConsent: false,\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLti11Config(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: new Lti11ToolConfigEntity({\n\t\t\t\ttype: ToolConfigType.BASIC,\n\t\t\t\tbaseUrl: 'mockBaseUrl',\n\t\t\t\tkey: 'key',\n\t\t\t\tlti_message_type: LtiMessageType.BASIC_LTI_LAUNCH_REQUEST,\n\t\t\t\tresource_link_id: 'resource_link_id',\n\t\t\t\tsecret: 'secret',\n\t\t\t\tprivacy_permission: LtiPrivacyPermission.ANONYMOUS,\n\t\t\t\tlaunch_presentation_locale: 'de-DE',\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBase64Logo(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tlogoBase64:\n\t\t\t\t'iVBORw0KGgoAAAANSUhEUgAAAfQAAADICAYAAAAeGRPoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUQ2Q0Y5RTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUQ2Q0ZBRTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYxRDZDRjdFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYxRDZDRjhFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz45EjsrAAALfUlEQVR42uzdgXWjOAIGYHLvGsiV4CnBU4JTgqeEpIS4hKSEpIS4BLsEu4RJCeMScmhGzPplkyCMAGO+7z3ezs3tYsuS+BEIcfX29lYAAOP2Hz8BAAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAIdABDoAIBABwAEOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAQCBDgAIdAAQ6ACAQAcABDoAINABQKADAAIdABDoAIBABwCBDgAIdABAoAMAAh0ABDoAINABgN79109AbldXV9flPxblNov/DOblFv7+UG77+HfVn39vb29vB78emdpg1fauP2iDwWvcgm3883aMbbAs6/yorPP414ujf+W4z+2r/12WdasOL6zdl4Ufa4fdvGu0gyp/x6sTyjD0jx8a/03GOgn1cVtuyxN3EQ4267CV3+t16u2jhz701lfb6DEAlnGbt2yDz+ccDDHEq7LOTtzNIZY11PVaHV6AEOhj3ErhgP12LtuJZRj6e28y1cW8g/p4CgeqKbePHvpQ522jp3LMYnvJWWe/2rbBjsq66Kht/wwn4+pw3Jt76LQ9o76NB5jco+Gw35/l/p/iJXx43/auy+2+CqPMu7+O+9zFzziHsj511Nf+Bmr5GT/jlTZ1OEICnbZh/lT8c0+rC1WwL/3ivLvkvCu3h44/KrTth/LzdvFy8BBlXXQUeJ8F+6b8zIeuT6SnVIcCnXM/oC5jmPchdMiXqZxlk3QiuStOv3d8inkc6c0HKOum45Pmj9zHYJ+pQ4HOZR9Qr08I8zBRZRu3U4RJcs9+fWHe44nkRyeWu/gd+ijr04BlrRzU4Xh4bI1T3CaMGMKB4LH4M4N2/0Gnrh5JqWbr1u3vzmNtwrxhEFSzuEP7ez1+TCu2v9lR+2syagv3mvcfteuMZb0vml1ifz0q6/74KZF3Za3Km/Lb/cjd56ZUh4OYyuy/1NnPZhknfe9fNd/9JQR0g/1Vk1d+frK/hym2D+3vX7O7G83YbtgGm86yDn1g1lFZlw3Lumy4/9Df7mv68VwdjrBPC3SBnrlT7lru//2BZtekUwv0y2t/MYB+JR6kH9q0lzjK2yV+1q6jx7dSy3qf4Xe9/2C/t+rQY2tMQ91lrceWV4zCf/8tXmZzqZ2iSH+SIrSVVZv2Ei/BhgV1UuZrzDuYqJlS1upyeNu+doj7+F78s+LaY/l3z+pwnAQ6WQM9x4pT8UDzI3TKi7vHRdN7rovEe753uYIotr+7xEC4zzUTPD45kvIM+E3Old1iH/sew3ylDgU609Hb4zPnvtY0vUgZPd11MaqMgbBP6A+5RngPiWXdd1DWQxdhPsE6FOhc1IjKqm7kHNnVjVjXHV0iroQrRXWXf2/btvtY1tnAZVWHAp2JqesYVnQjl5S2tOryC8THv1LuVbd9rvk2od+t1OFZ16FAZ3TqLl89XPJKTPQ2srtOCIPHtm/lSwyEEAZ1n7PsuKzPfZRVHQp0pqWuU4ROvLnUlZjoTfUe7C9DrsfvU/dZ8xYTq5YZPl8dDluHAp1RSpmo9ntp2Pjmpnv31TlB3VWefc8j1nWG7/yZ2ZmVVR0KdKYgPh+aelYdDlRh5u6vMtQ3MdxdjidHGKx7bvchePYJ7X30ZVWHAp38FmX4vXWwbTJ8t3A/qunCD4sY7uHFCCHgX2LAz1Q1n7SXL0d3A3ynbcvvPKayqsMR8nIWTjrTLYM4zEw99Y1J1WSZsIVJdNWLJdYWkiHREJegD2Mqa3ineZHpEnLZL2/UoUDnckP9uTxgFEWe1yCGUXpY2CGM2EOgP4/teVvySbktM9A95bqTzcUJZV10WNb5UCPOKdXhOXHJnVahXqQt2tD0IFRNqPNM+zSZRKkOEegMEOrhUnl4mcoqc7CHUXu4z/5kljyAQKefUD8cvSUtBHvOS2nhefaNUGcEvBVQHQp0LivYyy0E+++3NxV5ZrKGy/AvfuHJtKPatQ4Gevyx9nnxCyqrOhToZLQtO8VVB9tNTx16H99rHIL9f8Wfe+1tAn5xSe8tpvMDcxeuJ1RWdSjQ4dOR+/oo4MMIPrzWsOnCEladm9AJbc3/P8TobtHyO5/6381O7Hc3qSf6RTcvSJlSHQp0Jhvwr2GGfLn9iKP31Al1KS974DKc1Ys04onkouV3HkVZ1aFAhzaj92pCXcqz55aOnYbaJTp7vgebEj7bjso61peGTKkOBTq8C/a7hFC3VOw0pNyO6fONfnWftY3vOTjF9szKqg4FOmRRdy9v4SeaxgleQiDc9jFyja8C7uxFI4kvDbkd2yh9SnUo0OHzg8DWL0HiAfapyy8Q77vWPV1xKNqHQd2VqfA9HtThWdehQGecQieJZ73Q1cldOMDWTVLq+nHGEKJ1I8jHtpdq4zLKdftYjq3PTakOBTpjFl7D+hTf6JTbV4+meRvbtKQ8TvXQRdCFZYeL+vuuhyJtMmeKx8SyztXh2dahQGd0o/PQSaqDSng2fJPrPljcz1cHrFc1MLlResotmKeco7zEIMg6sotPe9S173Cyu+ngxUVzdSjQmV6Y337QScJEtV2mzlh3P80IfXruirR1CsIo76XN4kPhhDKcoCYGwTaGcO6y1gnle8nR38JoP5Z3qQ4FOtMK88UXgXsdO2N47elt0w4Z78m/FPWz2NdqYnKj9DBqTV3JLARTaIONVhWMIRACclekPUkRwulHB2UNI9nUgPnb307py3EEm1pedTiGY3T5Q08tlDZfVXZcBrGv7zL4j59a3njfblM0Wwv5OY6ow7ru+y/2u4xn03X73na9Fv05tY9Lbn+n/I7xYN10zsa6aoOxHR6qE8jiz2XmamsyQg37uPmsTWeqm5cTvlNV1tfjl6MclbW6nbUoGq7nkKvdT6kOBbpAP+dAv46B3uZe26H455L5rGi+SMz3rjugQD/fQI/fOfW+aFd6CYJM/S2XcI95lbFsk6jDIbjkTuoB+BBfrNLmflO1lnLjEUJpdYkdkMbtMNyLXQ308b0FQRyFhqtRQ86+/n1JOmeYT6kOBTpjOKCu4oGmz9nmz5c0cYXWbfAxtsE+ZyaHS9jf+gyCo+WQhwi/dSzvWh0KdC77gBo6xvci/S1pbaziQQ3et8HUF/q0HdHdxVeRHgYqaxV+fQTRaxzB/ui6vFOqQ4HOuR9Qj9+StupgxL6PBxYjc+pGsDdF/uWCD7Fdf4uruA1+AhNved0V3VwdC79fCPFvxxPq1OG4mBT37wZmUtzp5VnG3zb889TnSMMlvnVXl/rG1D4uuf118TvGRYluY/ubtWh/29gGD2dcdzn62j6W9Tk+VnYO5ZpMHQp0xhQW1aMk1+8Csvrz69FIYxv/vJ1aB6TTYKgmX87ftb3j9lc9eTHa9hf7WlXW2Qdl3cdyjqqsU6pDgQ4A/OUeOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4AAh0AEOgAgEAHAAQ6AAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAh0ABDoAIBABwAEOgAg0AFAoAMAAh0AEOgAgEAHAIEOAAh0AECgAwACHQAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAYD+/V+AAQADXuXS75wQpQAAAABJRU5ErkJggg==',\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const customParameterEntityFactory = BaseFactory.define(\n\tCustomParameterEntity,\n\t({ sequence }) => {\n\t\treturn {\n\t\t\tname: `name${sequence}`,\n\t\t\tdisplayName: `User Friendly Name ${sequence}`,\n\t\t\tdescription: 'This is a mock parameter.',\n\t\t\tdefault: 'default',\n\t\t\tlocation: CustomParameterLocation.PATH,\n\t\t\tregex: 'regex',\n\t\t\tregexComment: 'mockComment',\n\t\t\tscope: CustomParameterScope.SCHOOL,\n\t\t\ttype: CustomParameterType.STRING,\n\t\t\tisOptional: false,\n\t\t};\n\t}\n);\n\nexport const externalToolEntityFactory = ExternalToolEntityFactory.define(\n\tExternalToolEntity,\n\t({ sequence }): IExternalToolProperties => {\n\t\treturn {\n\t\t\tname: `external-tool-${sequence}`,\n\t\t\turl: '',\n\t\t\tlogoUrl: 'https://logourl.com',\n\t\t\tconfig: new BasicToolConfigEntity({\n\t\t\t\ttype: ToolConfigType.BASIC,\n\t\t\t\tbaseUrl: 'mockBaseUrl',\n\t\t\t}),\n\t\t\tparameters: [customParameterEntityFactory.build()],\n\t\t\tisHidden: false,\n\t\t\topenNewTab: true,\n\t\t\tversion: 1,\n\t\t};\n\t}\n);\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolFactory.html":{"url":"classes/ExternalToolFactory.html","title":"class - ExternalToolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withBase64Logo\n \n \n withCustomParameters\n \n \n withLti11Config\n \n \n withOauth2Config\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withBase64Logo\n \n \n \n \n \n \nwithBase64Logo()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:107\n \n \n\n\n \n \n \n \n \n \n \n \n withCustomParameters\n \n \n \n \n \n \nwithCustomParameters(number: number, customParam?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n\n \n \n customParam\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withLti11Config\n \n \n \n \n \n \nwithLti11Config(customParam?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:93\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParam\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOauth2Config\n \n \n \n \n \n \nwithOauth2Config(customParam?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParam\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameter } from '@src/modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@src/modules/tool/external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nexport const basicToolConfigFactory = DoBaseFactory.define(BasicToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.BASIC,\n\t\tbaseUrl: 'https://www.basic-baseUrl.com/',\n\t};\n});\n\nclass Oauth2ToolConfigFactory extends DoBaseFactory {\n\twithExternalData(oauth2Params?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tclientSecret: 'clientSecret',\n\t\t\tscope: 'offline openid',\n\t\t\tfrontchannelLogoutUri: 'https://www.frontchannel.com/',\n\t\t\tredirectUris: ['https://www.redirect.com/'],\n\t\t\ttokenEndpointAuthMethod: TokenEndpointAuthMethod.CLIENT_SECRET_POST,\n\t\t};\n\n\t\treturn this.params({ ...params, ...oauth2Params });\n\t}\n}\n\nexport const oauth2ToolConfigFactory = Oauth2ToolConfigFactory.define(Oauth2ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.OAUTH2,\n\t\tbaseUrl: 'https://www.oauth2-baseUrl.com/',\n\t\tclientId: 'clientId',\n\t\tskipConsent: false,\n\t};\n});\n\nexport const lti11ToolConfigFactory = DoBaseFactory.define(Lti11ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.LTI11,\n\t\tbaseUrl: 'https://www.lti11-baseUrl.com/',\n\t\tkey: 'key',\n\t\tsecret: 'secret',\n\t\tprivacy_permission: LtiPrivacyPermission.PSEUDONYMOUS,\n\t\tlti_message_type: LtiMessageType.BASIC_LTI_LAUNCH_REQUEST,\n\t\tresource_link_id: 'linkId',\n\t\tlaunch_presentation_locale: 'de-DE',\n\t};\n});\n\nclass CustomParameterFactory extends DoBaseFactory {\n\tbuildListWithEachType(params?: DeepPartial): CustomParameter[] {\n\t\tconst globalParameter = this.build({ ...params, scope: CustomParameterScope.GLOBAL });\n\t\tconst schoolParameter = this.build({ ...params, scope: CustomParameterScope.SCHOOL });\n\t\tconst contextParameter = this.build({ ...params, scope: CustomParameterScope.CONTEXT });\n\n\t\treturn [globalParameter, schoolParameter, contextParameter];\n\t}\n}\n\nexport const customParameterFactory = CustomParameterFactory.define(CustomParameter, ({ sequence }) => {\n\treturn {\n\t\tname: `custom-parameter-${sequence}`,\n\t\tdisplayName: 'User Friendly Name',\n\t\ttype: CustomParameterType.STRING,\n\t\tscope: CustomParameterScope.SCHOOL,\n\t\tlocation: CustomParameterLocation.BODY,\n\t\tisOptional: false,\n\t};\n});\n\nclass ExternalToolFactory extends DoBaseFactory {\n\twithOauth2Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: oauth2ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLti11Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: lti11ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithCustomParameters(number: number, customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tparameters: customParameterFactory.buildList(number, customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBase64Logo(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tlogo: 'iVBORw0KGgoAAAANSUhEUgAAAfQAAADICAYAAAAeGRPoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUQ2Q0Y5RTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUQ2Q0ZBRTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYxRDZDRjdFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYxRDZDRjhFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz45EjsrAAALfUlEQVR42uzdgXWjOAIGYHLvGsiV4CnBU4JTgqeEpIS4hKSEpIS4BLsEu4RJCeMScmhGzPplkyCMAGO+7z3ezs3tYsuS+BEIcfX29lYAAOP2Hz8BAAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAIdABDoAIBABwAEOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAQCBDgAIdAAQ6ACAQAcABDoAINABQKADAAIdABDoAIBABwCBDgAIdABAoAMAAh0ABDoAINABgN79109AbldXV9flPxblNov/DOblFv7+UG77+HfVn39vb29vB78emdpg1fauP2iDwWvcgm3883aMbbAs6/yorPP414ujf+W4z+2r/12WdasOL6zdl4Ufa4fdvGu0gyp/x6sTyjD0jx8a/03GOgn1cVtuyxN3EQ4267CV3+t16u2jhz701lfb6DEAlnGbt2yDz+ccDDHEq7LOTtzNIZY11PVaHV6AEOhj3ErhgP12LtuJZRj6e28y1cW8g/p4CgeqKbePHvpQ522jp3LMYnvJWWe/2rbBjsq66Kht/wwn4+pw3Jt76LQ9o76NB5jco+Gw35/l/p/iJXx43/auy+2+CqPMu7+O+9zFzziHsj511Nf+Bmr5GT/jlTZ1OEICnbZh/lT8c0+rC1WwL/3ivLvkvCu3h44/KrTth/LzdvFy8BBlXXQUeJ8F+6b8zIeuT6SnVIcCnXM/oC5jmPchdMiXqZxlk3QiuStOv3d8inkc6c0HKOum45Pmj9zHYJ+pQ4HOZR9Qr08I8zBRZRu3U4RJcs9+fWHe44nkRyeWu/gd+ijr04BlrRzU4Xh4bI1T3CaMGMKB4LH4M4N2/0Gnrh5JqWbr1u3vzmNtwrxhEFSzuEP7ez1+TCu2v9lR+2syagv3mvcfteuMZb0vml1ifz0q6/74KZF3Za3Km/Lb/cjd56ZUh4OYyuy/1NnPZhknfe9fNd/9JQR0g/1Vk1d+frK/hym2D+3vX7O7G83YbtgGm86yDn1g1lFZlw3Lumy4/9Df7mv68VwdjrBPC3SBnrlT7lru//2BZtekUwv0y2t/MYB+JR6kH9q0lzjK2yV+1q6jx7dSy3qf4Xe9/2C/t+rQY2tMQ91lrceWV4zCf/8tXmZzqZ2iSH+SIrSVVZv2Ei/BhgV1UuZrzDuYqJlS1upyeNu+doj7+F78s+LaY/l3z+pwnAQ6WQM9x4pT8UDzI3TKi7vHRdN7rovEe753uYIotr+7xEC4zzUTPD45kvIM+E3Old1iH/sew3ylDgU609Hb4zPnvtY0vUgZPd11MaqMgbBP6A+5RngPiWXdd1DWQxdhPsE6FOhc1IjKqm7kHNnVjVjXHV0iroQrRXWXf2/btvtY1tnAZVWHAp2JqesYVnQjl5S2tOryC8THv1LuVbd9rvk2od+t1OFZ16FAZ3TqLl89XPJKTPQ2srtOCIPHtm/lSwyEEAZ1n7PsuKzPfZRVHQp0pqWuU4ROvLnUlZjoTfUe7C9DrsfvU/dZ8xYTq5YZPl8dDluHAp1RSpmo9ntp2Pjmpnv31TlB3VWefc8j1nWG7/yZ2ZmVVR0KdKYgPh+aelYdDlRh5u6vMtQ3MdxdjidHGKx7bvchePYJ7X30ZVWHAp38FmX4vXWwbTJ8t3A/qunCD4sY7uHFCCHgX2LAz1Q1n7SXL0d3A3ynbcvvPKayqsMR8nIWTjrTLYM4zEw99Y1J1WSZsIVJdNWLJdYWkiHREJegD2Mqa3ineZHpEnLZL2/UoUDnckP9uTxgFEWe1yCGUXpY2CGM2EOgP4/teVvySbktM9A95bqTzcUJZV10WNb5UCPOKdXhOXHJnVahXqQt2tD0IFRNqPNM+zSZRKkOEegMEOrhUnl4mcoqc7CHUXu4z/5kljyAQKefUD8cvSUtBHvOS2nhefaNUGcEvBVQHQp0LivYyy0E+++3NxV5ZrKGy/AvfuHJtKPatQ4Gevyx9nnxCyqrOhToZLQtO8VVB9tNTx16H99rHIL9f8Wfe+1tAn5xSe8tpvMDcxeuJ1RWdSjQ4dOR+/oo4MMIPrzWsOnCEladm9AJbc3/P8TobtHyO5/6381O7Hc3qSf6RTcvSJlSHQp0Jhvwr2GGfLn9iKP31Al1KS974DKc1Ys04onkouV3HkVZ1aFAhzaj92pCXcqz55aOnYbaJTp7vgebEj7bjso61peGTKkOBTq8C/a7hFC3VOw0pNyO6fONfnWftY3vOTjF9szKqg4FOmRRdy9v4SeaxgleQiDc9jFyja8C7uxFI4kvDbkd2yh9SnUo0OHzg8DWL0HiAfapyy8Q77vWPV1xKNqHQd2VqfA9HtThWdehQGecQieJZ73Q1cldOMDWTVLq+nHGEKJ1I8jHtpdq4zLKdftYjq3PTakOBTpjFl7D+hTf6JTbV4+meRvbtKQ8TvXQRdCFZYeL+vuuhyJtMmeKx8SyztXh2dahQGd0o/PQSaqDSng2fJPrPljcz1cHrFc1MLlResotmKeco7zEIMg6sotPe9S173Cyu+ngxUVzdSjQmV6Y337QScJEtV2mzlh3P80IfXruirR1CsIo76XN4kPhhDKcoCYGwTaGcO6y1gnle8nR38JoP5Z3qQ4FOtMK88UXgXsdO2N47elt0w4Z78m/FPWz2NdqYnKj9DBqTV3JLARTaIONVhWMIRACclekPUkRwulHB2UNI9nUgPnb307py3EEm1pedTiGY3T5Q08tlDZfVXZcBrGv7zL4j59a3njfblM0Wwv5OY6ow7ru+y/2u4xn03X73na9Fv05tY9Lbn+n/I7xYN10zsa6aoOxHR6qE8jiz2XmamsyQg37uPmsTWeqm5cTvlNV1tfjl6MclbW6nbUoGq7nkKvdT6kOBbpAP+dAv46B3uZe26H455L5rGi+SMz3rjugQD/fQI/fOfW+aFd6CYJM/S2XcI95lbFsk6jDIbjkTuoB+BBfrNLmflO1lnLjEUJpdYkdkMbtMNyLXQ308b0FQRyFhqtRQ86+/n1JOmeYT6kOBTpjOKCu4oGmz9nmz5c0cYXWbfAxtsE+ZyaHS9jf+gyCo+WQhwi/dSzvWh0KdC77gBo6xvci/S1pbaziQQ3et8HUF/q0HdHdxVeRHgYqaxV+fQTRaxzB/ui6vFOqQ4HOuR9Qj9+StupgxL6PBxYjc+pGsDdF/uWCD7Fdf4uruA1+AhNved0V3VwdC79fCPFvxxPq1OG4mBT37wZmUtzp5VnG3zb889TnSMMlvnVXl/rG1D4uuf118TvGRYluY/ubtWh/29gGD2dcdzn62j6W9Tk+VnYO5ZpMHQp0xhQW1aMk1+8Csvrz69FIYxv/vJ1aB6TTYKgmX87ftb3j9lc9eTHa9hf7WlXW2Qdl3cdyjqqsU6pDgQ4A/OUeOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4AAh0AEOgAgEAHAAQ6AAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAh0ABDoAIBABwAEOgAg0AFAoAMAAh0AEOgAgEAHAIEOAAh0AECgAwACHQAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAYD+/V+AAQADXuXS75wQpQAAAABJRU5ErkJggg==',\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const externalToolFactory = ExternalToolFactory.define(ExternalTool, ({ sequence }) => {\n\treturn {\n\t\tname: `external-tool-${sequence}`,\n\t\turl: 'https://url.com/',\n\t\tconfig: basicToolConfigFactory.build(),\n\t\tlogoUrl: 'https://logo.com/',\n\t\tisHidden: false,\n\t\topenNewTab: false,\n\t\tversion: 1,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolIdParams.html":{"url":"classes/ExternalToolIdParams.html","title":"class - ExternalToolIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n externalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n externalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-id.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty({ nullable: false, required: true })\n\texternalToolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogo.html":{"url":"classes/ExternalToolLogo.html","title":"class - ExternalToolLogo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/external-tool-logo.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n contentType\n \n \n logo\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolLogo: ExternalToolLogo)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool-logo.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolLogo\n \n \n ExternalToolLogo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n contentType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool-logo.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n logo\n \n \n \n \n \n \n Type : Buffer\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/external-tool-logo.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class ExternalToolLogo {\n\tlogo: Buffer;\n\n\tcontentType: string;\n\n\tconstructor(externalToolLogo: ExternalToolLogo) {\n\t\tthis.logo = externalToolLogo.logo;\n\t\tthis.contentType = externalToolLogo.contentType;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoFetchFailedLoggableException.html":{"url":"classes/ExternalToolLogoFetchFailedLoggableException.html","title":"class - ExternalToolLogoFetchFailedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoFetchFailedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logoUrl: string, httpStatus?: HttpStatus)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoUrl\n \n \n string\n \n \n \n No\n \n \n \n \n httpStatus\n \n \n HttpStatus\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetch-failed-loggable-exception.ts:17\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { BusinessError } from '@shared/common';\n\nexport class ExternalToolLogoFetchFailedLoggableException extends BusinessError implements Loggable {\n\tconstructor(private readonly logoUrl: string, private readonly httpStatus?: HttpStatus) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'EXTERNAL_TOOL_LOGO_FETCH_FAILED',\n\t\t\t\ttitle: 'External tool logo fetch failed.',\n\t\t\t\tdefaultMessage: 'External tool logo could not been fetched.',\n\t\t\t},\n\t\t\tHttpStatus.INTERNAL_SERVER_ERROR\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_FETCH_FAILED',\n\t\t\tmessage: 'External tool logo could not been fetched',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tlogoUrl: this.logoUrl,\n\t\t\t\thttpStatus: this.httpStatus,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoFetchedLoggable.html":{"url":"classes/ExternalToolLogoFetchedLoggable.html","title":"class - ExternalToolLogoFetchedLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoFetchedLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetched-loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logoUrl: string)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetched-loggable.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoUrl\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-fetched-loggable.ts:6\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ExternalToolLogoFetchedLoggable implements Loggable {\n\tconstructor(private readonly logoUrl: string) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_FETCHED',\n\t\t\tmessage: 'External tool logo was fetched',\n\t\t\tdata: {\n\t\t\t\tlogoUrl: this.logoUrl,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoNotFoundLoggableException.html":{"url":"classes/ExternalToolLogoNotFoundLoggableException.html","title":"class - ExternalToolLogoNotFoundLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoNotFoundLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-not-found-loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n NotFoundException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolId: string)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-not-found-loggable-exception.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolId\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-not-found-loggable-exception.ts:9\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ExternalToolLogoNotFoundLoggableException extends NotFoundException implements Loggable {\n\tconstructor(private readonly externalToolId: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_NOT_FOUND',\n\t\t\tmessage: 'External tool logo not found',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\texternalToolId: this.externalToolId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoService.html":{"url":"classes/ExternalToolLogoService.html","title":"class - ExternalToolLogoService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n buildLogoUrl\n \n \n Private\n detectContentTypeOrThrow\n \n \n Private\n Async\n fetchBase64Logo\n \n \n Async\n fetchLogo\n \n \n Async\n getExternalToolBinaryLogo\n \n \n validateLogoSize\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolFeatures: IToolFeatures, logger: Logger, httpService: HttpService, externalToolService: ExternalToolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolFeatures\n \n \n IToolFeatures\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n buildLogoUrl\n \n \n \n \n \n \nbuildLogoUrl(template: string, externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n template\n \n string\n \n\n \n No\n \n\n\n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n detectContentTypeOrThrow\n \n \n \n \n \n \n \n detectContentTypeOrThrow(imageBuffer: Buffer)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:114\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n imageBuffer\n \n Buffer\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n fetchBase64Logo\n \n \n \n \n \n \n \n fetchBase64Logo(logoUrl: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoUrl\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n fetchLogo\n \n \n \n \n \n \n \n fetchLogo(externalTool: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getExternalToolBinaryLogo\n \n \n \n \n \n \n \n getExternalToolBinaryLogo(toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n validateLogoSize\n \n \n \n \n \n \nvalidateLogoSize(externalTool: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-logo.service.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpException, Inject } from '@nestjs/common';\nimport { AxiosResponse } from 'axios';\nimport { lastValueFrom } from 'rxjs';\nimport { HttpService } from '@nestjs/axios';\nimport { Logger } from '@src/core/logger';\nimport { EntityId } from '@shared/domain';\nimport { ExternalTool } from '../domain';\nimport {\n\tExternalToolLogoFetchedLoggable,\n\tExternalToolLogoNotFoundLoggableException,\n\tExternalToolLogoSizeExceededLoggableException,\n\tExternalToolLogoWrongFileTypeLoggableException,\n\tExternalToolLogoFetchFailedLoggableException,\n} from '../loggable';\nimport { IToolFeatures, ToolFeatures } from '../../tool-config';\nimport { ExternalToolLogo } from '../domain/external-tool-logo';\nimport { ExternalToolService } from './external-tool.service';\n\nconst contentTypeDetector: Record = {\n\tffd8ffe0: 'image/jpeg',\n\tffd8ffe1: 'image/jpeg',\n\t'89504e47': 'image/png',\n\t'47494638': 'image/gif',\n};\n\nexport class ExternalToolLogoService {\n\tconstructor(\n\t\t@Inject(ToolFeatures) private readonly toolFeatures: IToolFeatures,\n\t\tprivate readonly logger: Logger,\n\t\tprivate readonly httpService: HttpService,\n\t\tprivate readonly externalToolService: ExternalToolService\n\t) {}\n\n\tbuildLogoUrl(template: string, externalTool: ExternalTool): string | undefined {\n\t\tconst { logo, id } = externalTool;\n\t\tconst backendUrl = this.toolFeatures.backEndUrl;\n\n\t\tif (logo) {\n\t\t\tconst filledTemplate = template.replace(/\\{id\\}/g, id || '');\n\t\t\treturn `${backendUrl}${filledTemplate}`;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tvalidateLogoSize(externalTool: Partial): void {\n\t\tif (!externalTool.logo) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst buffer: Buffer = Buffer.from(externalTool.logo, 'base64');\n\n\t\tif (buffer.length > this.toolFeatures.maxExternalToolLogoSizeInBytes) {\n\t\t\tthrow new ExternalToolLogoSizeExceededLoggableException(\n\t\t\t\texternalTool.id,\n\t\t\t\tthis.toolFeatures.maxExternalToolLogoSizeInBytes\n\t\t\t);\n\t\t}\n\t}\n\n\tasync fetchLogo(externalTool: Partial): Promise {\n\t\tif (externalTool.logoUrl) {\n\t\t\tconst base64Logo: string = await this.fetchBase64Logo(externalTool.logoUrl);\n\n\t\t\tif (base64Logo) {\n\t\t\t\treturn base64Logo;\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate async fetchBase64Logo(logoUrl: string): Promise {\n\t\ttry {\n\t\t\tconst response: AxiosResponse = await lastValueFrom(\n\t\t\t\tthis.httpService.get(logoUrl, { responseType: 'arraybuffer' })\n\t\t\t);\n\t\t\tthis.logger.info(new ExternalToolLogoFetchedLoggable(logoUrl));\n\n\t\t\tconst buffer: Buffer = Buffer.from(response.data);\n\t\t\tthis.detectContentTypeOrThrow(buffer);\n\n\t\t\tconst logoBase64: string = buffer.toString('base64');\n\n\t\t\treturn logoBase64;\n\t\t} catch (error) {\n\t\t\tif (error instanceof ExternalToolLogoWrongFileTypeLoggableException) {\n\t\t\t\tthrow new ExternalToolLogoWrongFileTypeLoggableException();\n\t\t\t} else if (error instanceof HttpException) {\n\t\t\t\tthrow new ExternalToolLogoFetchFailedLoggableException(logoUrl, error.getStatus());\n\t\t\t} else {\n\t\t\t\tthrow new ExternalToolLogoFetchFailedLoggableException(logoUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync getExternalToolBinaryLogo(toolId: EntityId): Promise {\n\t\tconst tool: ExternalTool = await this.externalToolService.findExternalToolById(toolId);\n\n\t\tif (!tool.logo) {\n\t\t\tthrow new ExternalToolLogoNotFoundLoggableException(toolId);\n\t\t}\n\n\t\tconst logoBinaryData: Buffer = Buffer.from(tool.logo, 'base64');\n\n\t\tconst externalToolLogo: ExternalToolLogo = new ExternalToolLogo({\n\t\t\tcontentType: this.detectContentTypeOrThrow(logoBinaryData),\n\t\t\tlogo: logoBinaryData,\n\t\t});\n\n\t\treturn externalToolLogo;\n\t}\n\n\tprivate detectContentTypeOrThrow(imageBuffer: Buffer): string {\n\t\tconst imageSignature: string = imageBuffer.toString('hex', 0, 4);\n\n\t\tconst contentType: string | ExternalToolLogoWrongFileTypeLoggableException =\n\t\t\tcontentTypeDetector[imageSignature] || new ExternalToolLogoWrongFileTypeLoggableException();\n\n\t\tif (contentType instanceof ExternalToolLogoWrongFileTypeLoggableException) {\n\t\t\tthrow new ExternalToolLogoWrongFileTypeLoggableException();\n\t\t}\n\n\t\treturn contentType;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoSizeExceededLoggableException.html":{"url":"classes/ExternalToolLogoSizeExceededLoggableException.html","title":"class - ExternalToolLogoSizeExceededLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoSizeExceededLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolId: string | undefined, maxExternalToolLogoSizeInBytes: number)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolId\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n maxExternalToolLogoSizeInBytes\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-size-exceeded-loggable-exception.ts:20\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ExternalToolLogoSizeExceededLoggableException extends BusinessError implements Loggable {\n\tconstructor(\n\t\tprivate readonly externalToolId: string | undefined,\n\t\tprivate readonly maxExternalToolLogoSizeInBytes: number\n\t) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'EXTERNAL_TOOL_LOGO_SIZE_EXCEEDED',\n\t\t\t\ttitle: 'External tool logo size exceeded.',\n\t\t\t\tdefaultMessage: 'External tool logo size exceeded.',\n\t\t\t},\n\t\t\tHttpStatus.BAD_REQUEST\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_SIZE_EXCEEDED',\n\t\t\tmessage: 'External tool logo size exceeded',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\texternalToolId: this.externalToolId,\n\t\t\t\tmaxExternalToolLogoSizeInBytes: this.maxExternalToolLogoSizeInBytes,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolLogoWrongFileTypeLoggableException.html":{"url":"classes/ExternalToolLogoWrongFileTypeLoggableException.html","title":"class - ExternalToolLogoWrongFileTypeLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolLogoWrongFileTypeLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor()\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts:5\n \n \n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/loggable/external-tool-logo-wrong-file-type-loggable-exception.ts:17\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BusinessError } from '@shared/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { HttpStatus } from '@nestjs/common';\n\nexport class ExternalToolLogoWrongFileTypeLoggableException extends BusinessError implements Loggable {\n\tconstructor() {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'EXTERNAL_TOOL_LOGO_WRONG_FILE_TYPE',\n\t\t\t\ttitle: 'External tool logo wrong file type.',\n\t\t\t\tdefaultMessage: 'External tool logo has the wrong file type. Only JPEG and PNG files are supported.',\n\t\t\t},\n\t\t\tHttpStatus.BAD_REQUEST\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'EXTERNAL_TOOL_LOGO_WRONG_FILE_TYPE',\n\t\t\tmessage: 'External tool logo has the wrong file type. Only JPEG and PNG files are supported.',\n\t\t\tstack: this.stack,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ExternalToolModule.html":{"url":"modules/ExternalToolModule.html","title":"module - ExternalToolModule","body":"\n \n\n\n\n\n Modules\n ExternalToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ExternalToolModule\n\n\n\ncluster_ExternalToolModule_imports\n\n\n\ncluster_ExternalToolModule_providers\n\n\n\ncluster_ExternalToolModule_exports\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nExternalToolModule -->\n\nCommonToolModule->ExternalToolModule\n\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nExternalToolModule -->\n\nEncryptionModule->ExternalToolModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nExternalToolModule -->\n\nLoggerModule->ExternalToolModule\n\n\n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nExternalToolModule -->\n\nOauthProviderServiceModule->ExternalToolModule\n\n\n\n\n\nToolConfigModule\n\nToolConfigModule\n\nExternalToolModule -->\n\nToolConfigModule->ExternalToolModule\n\n\n\n\n\nExternalToolConfigurationService \n\nExternalToolConfigurationService \n\nExternalToolConfigurationService -->\n\nExternalToolModule->ExternalToolConfigurationService \n\n\n\n\n\nExternalToolLogoService \n\nExternalToolLogoService \n\nExternalToolLogoService -->\n\nExternalToolModule->ExternalToolLogoService \n\n\n\n\n\nExternalToolService \n\nExternalToolService \n\nExternalToolService -->\n\nExternalToolModule->ExternalToolService \n\n\n\n\n\nExternalToolValidationService \n\nExternalToolValidationService \n\nExternalToolValidationService -->\n\nExternalToolModule->ExternalToolValidationService \n\n\n\n\n\nExternalToolVersionService \n\nExternalToolVersionService \n\nExternalToolVersionService -->\n\nExternalToolModule->ExternalToolVersionService \n\n\n\n\n\nExternalToolConfigurationService\n\nExternalToolConfigurationService\n\nExternalToolModule -->\n\nExternalToolConfigurationService->ExternalToolModule\n\n\n\n\n\nExternalToolParameterValidationService\n\nExternalToolParameterValidationService\n\nExternalToolModule -->\n\nExternalToolParameterValidationService->ExternalToolModule\n\n\n\n\n\nExternalToolRepo\n\nExternalToolRepo\n\nExternalToolModule -->\n\nExternalToolRepo->ExternalToolModule\n\n\n\n\n\nExternalToolService\n\nExternalToolService\n\nExternalToolModule -->\n\nExternalToolService->ExternalToolModule\n\n\n\n\n\nExternalToolServiceMapper\n\nExternalToolServiceMapper\n\nExternalToolModule -->\n\nExternalToolServiceMapper->ExternalToolModule\n\n\n\n\n\nExternalToolValidationService\n\nExternalToolValidationService\n\nExternalToolModule -->\n\nExternalToolValidationService->ExternalToolModule\n\n\n\n\n\nExternalToolVersionService\n\nExternalToolVersionService\n\nExternalToolModule -->\n\nExternalToolVersionService->ExternalToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/external-tool/external-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ExternalToolConfigurationService\n \n \n ExternalToolParameterValidationService\n \n \n ExternalToolRepo\n \n \n ExternalToolService\n \n \n ExternalToolServiceMapper\n \n \n ExternalToolValidationService\n \n \n ExternalToolVersionService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n EncryptionModule\n \n \n LoggerModule\n \n \n OauthProviderServiceModule\n \n \n ToolConfigModule\n \n \n \n \n Exports\n \n \n ExternalToolConfigurationService\n \n \n ExternalToolLogoService\n \n \n ExternalToolService\n \n \n ExternalToolValidationService\n \n \n ExternalToolVersionService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { OauthProviderServiceModule } from '@shared/infra/oauth-provider';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { ExternalToolRepo } from '@shared/repo';\nimport { ToolConfigModule } from '../tool-config.module';\nimport {\n\tExternalToolConfigurationService,\n\tExternalToolLogoService,\n\tExternalToolParameterValidationService,\n\tExternalToolService,\n\tExternalToolServiceMapper,\n\tExternalToolValidationService,\n\tExternalToolVersionService,\n} from './service';\nimport { CommonToolModule } from '../common';\n\n@Module({\n\timports: [CommonToolModule, ToolConfigModule, LoggerModule, OauthProviderServiceModule, EncryptionModule, HttpModule],\n\tproviders: [\n\t\tExternalToolService,\n\t\tExternalToolServiceMapper,\n\t\tExternalToolParameterValidationService,\n\t\tExternalToolValidationService,\n\t\tExternalToolVersionService,\n\t\tExternalToolConfigurationService,\n\t\tExternalToolLogoService,\n\t\tExternalToolRepo,\n\t],\n\texports: [\n\t\tExternalToolService,\n\t\tExternalToolValidationService,\n\t\tExternalToolVersionService,\n\t\tExternalToolConfigurationService,\n\t\tExternalToolLogoService,\n\t],\n})\nexport class ExternalToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolParameterValidationService.html":{"url":"injectables/ExternalToolParameterValidationService.html","title":"injectable - ExternalToolParameterValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolParameterValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n hasDuplicateAttributes\n \n \n Private\n isAutoParameterGlobal\n \n \n Private\n isCustomParameterNameEmpty\n \n \n Private\n isDefaultValueOfValidRegex\n \n \n Private\n isDefaultValueOfValidType\n \n \n Private\n isGlobalParameterValid\n \n \n Private\n Async\n isNameUnique\n \n \n Private\n isRegexCommentMandatoryAndFilled\n \n \n Private\n isRegexValid\n \n \n Async\n validateCommon\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, commonToolValidationService: CommonToolValidationService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n commonToolValidationService\n \n \n CommonToolValidationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n hasDuplicateAttributes\n \n \n \n \n \n \n \n hasDuplicateAttributes(customParameter: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isAutoParameterGlobal\n \n \n \n \n \n \n \n isAutoParameterGlobal(customParameter: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:148\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isCustomParameterNameEmpty\n \n \n \n \n \n \n \n isCustomParameterNameEmpty(param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isDefaultValueOfValidRegex\n \n \n \n \n \n \n \n isDefaultValueOfValidRegex(param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:108\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isDefaultValueOfValidType\n \n \n \n \n \n \n \n isDefaultValueOfValidType(param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:118\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isGlobalParameterValid\n \n \n \n \n \n \n \n isGlobalParameterValid(customParameter: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:136\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n isNameUnique\n \n \n \n \n \n \n \n isNameUnique(externalTool: ExternalTool | Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool | Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isRegexCommentMandatoryAndFilled\n \n \n \n \n \n \n \n isRegexCommentMandatoryAndFilled(customParameter: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:128\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isRegexValid\n \n \n \n \n \n \n \n isRegexValid(param: CustomParameter)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validateCommon\n \n \n \n \n \n \n \n validateCommon(externalTool: ExternalTool | Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-parameter-validation.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool | Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { CustomParameter } from '../../common/domain';\nimport { autoParameters, CustomParameterScope } from '../../common/enum';\nimport { CommonToolValidationService } from '../../common/service';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolService } from './external-tool.service';\n\n@Injectable()\nexport class ExternalToolParameterValidationService {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly commonToolValidationService: CommonToolValidationService\n\t) {}\n\n\tasync validateCommon(externalTool: ExternalTool | Partial): Promise {\n\t\tif (!(await this.isNameUnique(externalTool))) {\n\t\t\tthrow new ValidationError(`tool_name_duplicate: The tool name \"${externalTool.name || ''}\" is already used.`);\n\t\t}\n\n\t\tif (externalTool.parameters) {\n\t\t\tif (this.hasDuplicateAttributes(externalTool.parameters)) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`tool_param_duplicate: The tool ${externalTool.name || ''} contains multiple of the same custom parameters.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\texternalTool.parameters.forEach((param: CustomParameter) => {\n\t\t\t\tif (this.isCustomParameterNameEmpty(param)) {\n\t\t\t\t\tthrow new ValidationError(`tool_param_name: A custom parameter is missing a name.`);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isGlobalParameterValid(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_default_required: The custom parameter \"${param.name}\" is a global parameter and requires a default value.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isAutoParameterGlobal(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_auto_requires_global: The custom parameter \"${param.name}\" with type \"${param.type}\" must have the scope \"global\", since it is automatically filled.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isRegexCommentMandatoryAndFilled(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_regexComment: The custom parameter \"${param.name}\" parameter is missing a regex comment.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isRegexValid(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_regex_invalid: The custom Parameter \"${param.name}\" has an invalid regex.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isDefaultValueOfValidType(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_type_mismatch: The default value of the custom parameter \"${param.name}\" should be of type \"${param.type}\".`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!this.isDefaultValueOfValidRegex(param)) {\n\t\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t\t`tool_param_default_regex: The default value of a the custom parameter \"${param.name}\" does not match its regex.`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate isCustomParameterNameEmpty(param: CustomParameter): boolean {\n\t\treturn !param.name || !param.displayName;\n\t}\n\n\tprivate async isNameUnique(externalTool: ExternalTool | Partial): Promise {\n\t\tif (!externalTool.name) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst duplicate: ExternalTool | null = await this.externalToolService.findExternalToolByName(externalTool.name);\n\n\t\treturn duplicate == null || duplicate.id === externalTool.id;\n\t}\n\n\tprivate hasDuplicateAttributes(customParameter: CustomParameter[]): boolean {\n\t\treturn customParameter.some((item, itemIndex) =>\n\t\t\tcustomParameter.some(\n\t\t\t\t(other, otherIndex) =>\n\t\t\t\t\titemIndex !== otherIndex && item.name.toLocaleLowerCase() === other.name.toLocaleLowerCase()\n\t\t\t)\n\t\t);\n\t}\n\n\tprivate isRegexValid(param: CustomParameter): boolean {\n\t\tif (param.regex) {\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-new\n\t\t\t\tnew RegExp(param.regex);\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate isDefaultValueOfValidRegex(param: CustomParameter): boolean {\n\t\tif (param.regex && param.default) {\n\t\t\tconst isValid: boolean = new RegExp(param.regex).test(param.default);\n\n\t\t\treturn isValid;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate isDefaultValueOfValidType(param: CustomParameter): boolean {\n\t\tif (param.default) {\n\t\t\tconst isValid: boolean = this.commonToolValidationService.isValueValidForType(param.type, param.default);\n\n\t\t\treturn isValid;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate isRegexCommentMandatoryAndFilled(customParameter: CustomParameter): boolean {\n\t\tif (customParameter.regex && !customParameter.regexComment) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate isGlobalParameterValid(customParameter: CustomParameter): boolean {\n\t\tif (customParameter.scope !== CustomParameterScope.GLOBAL) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (autoParameters.includes(customParameter.type) || customParameter.default) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate isAutoParameterGlobal(customParameter: CustomParameter): boolean {\n\t\tif (!autoParameters.includes(customParameter.type)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst isGlobal: boolean = customParameter.scope === CustomParameterScope.GLOBAL;\n\n\t\treturn isGlobal;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalToolProps.html":{"url":"interfaces/ExternalToolProps.html","title":"interface - ExternalToolProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalToolProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/external-tool.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n Optional\n \n id\n \n \n \n \n isHidden\n \n \n \n Optional\n \n logo\n \n \n \n Optional\n \n logoUrl\n \n \n \n \n name\n \n \n \n \n openNewTab\n \n \n \n Optional\n \n parameters\n \n \n \n Optional\n \n url\n \n \n \n \n version\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n config\n \n \n \n \n \n \n \n \n config: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig\n\n \n \n\n\n \n \n Type : BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n \n \n isHidden: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n logo\n \n \n \n \n \n \n \n \n logo: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n logoUrl\n \n \n \n \n \n \n \n \n logoUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n \n \n openNewTab: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n \n \n parameters: CustomParameter[]\n\n \n \n\n\n \n \n Type : CustomParameter[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n \n \n version: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { ToolVersion } from '../../common/interface';\nimport { Oauth2ToolConfig, BasicToolConfig, Lti11ToolConfig, ExternalToolConfig } from './config';\nimport { CustomParameter } from '../../common/domain';\nimport { ToolConfigType } from '../../common/enum';\n\nexport interface ExternalToolProps {\n\tid?: string;\n\n\tname: string;\n\n\turl?: string;\n\n\tlogoUrl?: string;\n\n\tlogo?: string;\n\n\tconfig: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig;\n\n\tparameters?: CustomParameter[];\n\n\tisHidden: boolean;\n\n\topenNewTab: boolean;\n\n\tversion: number;\n}\n\nexport class ExternalTool extends BaseDO implements ToolVersion {\n\tname: string;\n\n\turl?: string;\n\n\tlogoUrl?: string;\n\n\tlogo?: string;\n\n\tconfig: BasicToolConfig | Lti11ToolConfig | Oauth2ToolConfig;\n\n\tparameters?: CustomParameter[];\n\n\tisHidden: boolean;\n\n\topenNewTab: boolean;\n\n\tversion: number;\n\n\tconstructor(props: ExternalToolProps) {\n\t\tsuper(props.id);\n\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.logo = props.logo;\n\t\tthis.config = props.config;\n\t\tthis.parameters = props.parameters;\n\t\tthis.isHidden = props.isHidden;\n\t\tthis.openNewTab = props.openNewTab;\n\t\tthis.version = props.version;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.version;\n\t}\n\n\tstatic isOauth2Config(config: ExternalToolConfig): config is Oauth2ToolConfig {\n\t\treturn ToolConfigType.OAUTH2 === config.type;\n\t}\n\n\tstatic isLti11Config(config: ExternalToolConfig): config is Lti11ToolConfig {\n\t\treturn ToolConfigType.LTI11 === config.type;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ExternalToolPseudonymEntity.html":{"url":"entities/ExternalToolPseudonymEntity.html","title":"entity - ExternalToolPseudonymEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n ExternalToolPseudonymEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n pseudonym\n \n \n \n toolId\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Unique()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts:24\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain';\n\nexport interface IExternalToolPseudonymEntityProps {\n\tid?: EntityId;\n\tpseudonym: string;\n\ttoolId: ObjectId;\n\tuserId: ObjectId;\n}\n\n@Entity({ tableName: 'external-tool-pseudonyms' })\n@Unique({ properties: ['userId', 'toolId'] })\nexport class ExternalToolPseudonymEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tpseudonym: string;\n\n\t@Property()\n\ttoolId: ObjectId;\n\n\t@Property()\n\tuserId: ObjectId;\n\n\tconstructor(props: IExternalToolPseudonymEntityProps) {\n\t\tsuper();\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.pseudonym = props.pseudonym;\n\t\tthis.toolId = props.toolId;\n\t\tthis.userId = props.userId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolPseudonymRepo.html":{"url":"injectables/ExternalToolPseudonymRepo.html","title":"injectable - ExternalToolPseudonymRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolPseudonymRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createOrUpdate\n \n \n Async\n deletePseudonymsByUserId\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdAndToolId\n \n \n Async\n findByUserIdAndToolIdOrFail\n \n \n Protected\n mapDomainObjectToEntityProperties\n \n \n Protected\n mapEntityToDomainObject\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createOrUpdate\n \n \n \n \n \n \n \n createOrUpdate(domainObject: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deletePseudonymsByUserId\n \n \n \n \n \n \n \n deletePseudonymsByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdAndToolId\n \n \n \n \n \n \n \n findByUserIdAndToolId(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdAndToolIdOrFail\n \n \n \n \n \n \n \n findByUserIdAndToolIdOrFail(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDomainObjectToEntityProperties\n \n \n \n \n \n \n \n mapDomainObjectToEntityProperties(entityDO: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IExternalToolPseudonymEntityProps\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDomainObject\n \n \n \n \n \n \n \n mapEntityToDomainObject(entity: ExternalToolPseudonymEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/external-tool-pseudonym.repo.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ExternalToolPseudonymEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Pseudonym\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId, Pseudonym } from '@shared/domain';\nimport { ExternalToolPseudonymEntity, IExternalToolPseudonymEntityProps } from '../entity';\n\n@Injectable()\nexport class ExternalToolPseudonymRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findByUserIdAndToolIdOrFail(userId: EntityId, toolId: EntityId): Promise {\n\t\tconst entity: ExternalToolPseudonymEntity = await this.em.findOneOrFail(ExternalToolPseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t\ttoolId: new ObjectId(toolId),\n\t\t});\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByUserIdAndToolId(userId: EntityId, toolId: EntityId): Promise {\n\t\tconst entity: ExternalToolPseudonymEntity | null = await this.em.findOne(ExternalToolPseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t\ttoolId: new ObjectId(toolId),\n\t\t});\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByUserId(userId: EntityId): Promise {\n\t\tconst entities: ExternalToolPseudonymEntity[] = await this.em.find(ExternalToolPseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t});\n\t\tconst pseudonyms: Pseudonym[] = entities.map((entity) => this.mapEntityToDomainObject(entity));\n\n\t\treturn pseudonyms;\n\t}\n\n\tasync createOrUpdate(domainObject: Pseudonym): Promise {\n\t\tconst existing: ExternalToolPseudonymEntity | undefined = this.em\n\t\t\t.getUnitOfWork()\n\t\t\t.getById(ExternalToolPseudonymEntity.name, domainObject.id);\n\n\t\tconst entityProps: IExternalToolPseudonymEntityProps = this.mapDomainObjectToEntityProperties(domainObject);\n\t\tlet entity: ExternalToolPseudonymEntity = new ExternalToolPseudonymEntity(entityProps);\n\n\t\tif (existing) {\n\t\t\tentity = this.em.assign(existing, entity);\n\t\t} else {\n\t\t\tthis.em.persist(entity);\n\t\t}\n\n\t\tawait this.em.flush();\n\n\t\tconst savedDomainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn savedDomainObject;\n\t}\n\n\tasync deletePseudonymsByUserId(userId: EntityId): Promise {\n\t\tconst promise: Promise = this.em.nativeDelete(ExternalToolPseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t});\n\n\t\treturn promise;\n\t}\n\n\tprotected mapEntityToDomainObject(entity: ExternalToolPseudonymEntity): Pseudonym {\n\t\treturn new Pseudonym({\n\t\t\tid: entity.id,\n\t\t\tpseudonym: entity.pseudonym,\n\t\t\ttoolId: entity.toolId.toHexString(),\n\t\t\tuserId: entity.userId.toHexString(),\n\t\t\tcreatedAt: entity.createdAt,\n\t\t\tupdatedAt: entity.updatedAt,\n\t\t});\n\t}\n\n\tprotected mapDomainObjectToEntityProperties(entityDO: Pseudonym): IExternalToolPseudonymEntityProps {\n\t\treturn {\n\t\t\tpseudonym: entityDO.pseudonym,\n\t\t\ttoolId: new ObjectId(entityDO.toolId),\n\t\t\tuserId: new ObjectId(entityDO.userId),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolRepo.html":{"url":"injectables/ExternalToolRepo.html","title":"injectable - ExternalToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/externaltool/external-tool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n find\n \n \n Async\n findAllByConfigType\n \n \n Async\n findByName\n \n \n Async\n findByOAuth2ConfigClientId\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IExternalToolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:23\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IExternalToolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalToolEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(query: ExternalToolSearchQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ExternalToolSearchQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByConfigType\n \n \n \n \n \n \n \n findAllByConfigType(type: ToolConfigType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ToolConfigType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByName\n \n \n \n \n \n \n \n findByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByOAuth2ConfigClientId\n \n \n \n \n \n \n \n findByOAuth2ConfigClientId(clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: ExternalTool)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:90\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IExternalToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: ExternalToolEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ExternalToolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.ts:19\n \n \n\n \n \n\n \n\n\n \n import { EntityName, QueryOrderMap } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { IFindOptions, IPagination, Page, SortOrder } from '@shared/domain';\nimport { BaseDORepo, ExternalToolRepoMapper, ExternalToolSortingMapper, Scope } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ToolConfigType } from '@src/modules/tool/common/enum';\nimport { ExternalToolSearchQuery } from '@src/modules/tool/common/interface';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { ExternalToolEntity, IExternalToolProperties } from '@src/modules/tool/external-tool/entity';\nimport { ExternalToolScope } from './external-tool.scope';\n\n@Injectable()\nexport class ExternalToolRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn ExternalToolEntity;\n\t}\n\n\tentityFactory(props: IExternalToolProperties): ExternalToolEntity {\n\t\treturn new ExternalToolEntity(props);\n\t}\n\n\tasync findByName(name: string): Promise {\n\t\tconst entity: ExternalToolEntity | null = await this._em.findOne(this.entityName, { name });\n\t\tif (entity !== null) {\n\t\t\tconst domainObject: ExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t}\n\t\treturn null;\n\t}\n\n\tasync findAllByConfigType(type: ToolConfigType): Promise {\n\t\tconst entities: ExternalToolEntity[] = await this._em.find(this.entityName, { config: { type } });\n\t\tconst domainObjects: ExternalTool[] = entities.map((entity: ExternalToolEntity): ExternalTool => {\n\t\t\tconst domainObject: ExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t});\n\t\treturn domainObjects;\n\t}\n\n\tasync findByOAuth2ConfigClientId(clientId: string): Promise {\n\t\tconst entity: ExternalToolEntity | null = await this._em.findOne(this.entityName, { config: { clientId } });\n\t\tif (entity !== null) {\n\t\t\tconst domainObject: ExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t}\n\t\treturn null;\n\t}\n\n\tasync find(query: ExternalToolSearchQuery, options?: IFindOptions): Promise> {\n\t\tconst pagination: IPagination = options?.pagination || {};\n\t\tconst order: QueryOrderMap = ExternalToolSortingMapper.mapDOSortOrderToQueryOrder(\n\t\t\toptions?.order || {}\n\t\t);\n\t\tconst scope: Scope = new ExternalToolScope()\n\t\t\t.byName(query.name)\n\t\t\t.byClientId(query.clientId)\n\t\t\t.byHidden(query.isHidden)\n\t\t\t.allowEmptyQuery(true);\n\n\t\tif (order._id == null) {\n\t\t\torder._id = SortOrder.asc;\n\t\t}\n\n\t\tconst [entities, total]: [ExternalToolEntity[], number] = await this._em.findAndCount(\n\t\t\tExternalToolEntity,\n\t\t\tscope.query,\n\t\t\t{\n\t\t\t\toffset: pagination?.skip,\n\t\t\t\tlimit: pagination?.limit,\n\t\t\t\torderBy: order,\n\t\t\t}\n\t\t);\n\n\t\tconst entityDos: ExternalTool[] = entities.map((entity) => this.mapEntityToDO(entity));\n\t\tconst page: Page = new Page(entityDos, total);\n\t\treturn page;\n\t}\n\n\tmapEntityToDO(entity: ExternalToolEntity): ExternalTool {\n\t\tconst domainObject = ExternalToolRepoMapper.mapEntityToDO(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tmapDOToEntityProperties(entityDO: ExternalTool): IExternalToolProperties {\n\t\tconst entity = ExternalToolRepoMapper.mapDOToEntityProperties(entityDO);\n\n\t\treturn entity;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolRepoMapper.html":{"url":"classes/ExternalToolRepoMapper.html","title":"class - ExternalToolRepoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolRepoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapBasicToolConfigDOToEntity\n \n \n Static\n mapBasicToolConfigToDO\n \n \n Static\n mapCustomParameterDOsToEntities\n \n \n Static\n mapCustomParameterEntryDOsToEntities\n \n \n Static\n mapCustomParameterEntryEntitiesToDOs\n \n \n Static\n mapCustomParametersToDOs\n \n \n Static\n mapDOToEntityProperties\n \n \n Static\n mapEntityToDO\n \n \n Static\n mapLti11ToolConfigDOToEntity\n \n \n Static\n mapLti11ToolConfigToDO\n \n \n Static\n mapOauth2ConfigDOToEntity\n \n \n Static\n mapOauth2ConfigToDO\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapBasicToolConfigDOToEntity\n \n \n \n \n \n \n \n mapBasicToolConfigDOToEntity(lti11Config: BasicToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:112\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lti11Config\n \n BasicToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BasicToolConfigEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapBasicToolConfigToDO\n \n \n \n \n \n \n \n mapBasicToolConfigToDO(lti11Config: BasicToolConfigEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lti11Config\n \n BasicToolConfigEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BasicToolConfig\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParameterDOsToEntities\n \n \n \n \n \n \n \n mapCustomParameterDOsToEntities(customParameters: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:159\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameters\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntity[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParameterEntryDOsToEntities\n \n \n \n \n \n \n \n mapCustomParameterEntryDOsToEntities(entries: CustomParameterEntry[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:187\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entries\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntryEntity[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParameterEntryEntitiesToDOs\n \n \n \n \n \n \n \n mapCustomParameterEntryEntitiesToDOs(entries: CustomParameterEntryEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:177\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entries\n \n CustomParameterEntryEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntry[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParametersToDOs\n \n \n \n \n \n \n \n mapCustomParametersToDOs(customParameters: CustomParameterEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameters\n \n CustomParameterEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameter[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(entityDO: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IExternalToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: ExternalToolEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ExternalToolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapLti11ToolConfigDOToEntity\n \n \n \n \n \n \n \n mapLti11ToolConfigDOToEntity(lti11Config: Lti11ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:128\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lti11Config\n \n Lti11ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfigEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapLti11ToolConfigToDO\n \n \n \n \n \n \n \n mapLti11ToolConfigToDO(lti11Config: Lti11ToolConfigEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lti11Config\n \n Lti11ToolConfigEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfig\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapOauth2ConfigDOToEntity\n \n \n \n \n \n \n \n mapOauth2ConfigDOToEntity(oauth2Config: Oauth2ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:119\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauth2Config\n \n Oauth2ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfigEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapOauth2ConfigToDO\n \n \n \n \n \n \n \n mapOauth2ConfigToDO(oauth2Config: Oauth2ToolConfigEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.repo.mapper.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauth2Config\n \n Oauth2ToolConfigEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfig\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { CustomParameter, CustomParameterEntry } from '@src/modules/tool/common/domain';\nimport { CustomParameterEntryEntity } from '@src/modules/tool/common/entity';\nimport { ToolConfigType } from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@src/modules/tool/external-tool/domain';\nimport {\n\tBasicToolConfigEntity,\n\tCustomParameterEntity,\n\tExternalToolEntity,\n\tIExternalToolProperties,\n\tLti11ToolConfigEntity,\n\tOauth2ToolConfigEntity,\n} from '@src/modules/tool/external-tool/entity';\n\n// TODO: maybe rename because of usage in external tool repo and school external tool repo\nexport class ExternalToolRepoMapper {\n\tstatic mapEntityToDO(entity: ExternalToolEntity): ExternalTool {\n\t\tlet config: BasicToolConfig | Oauth2ToolConfig | Lti11ToolConfig;\n\t\tswitch (entity.config.type) {\n\t\t\tcase ToolConfigType.BASIC:\n\t\t\t\tconfig = this.mapBasicToolConfigToDO(entity.config as BasicToolConfig);\n\t\t\t\tbreak;\n\t\t\tcase ToolConfigType.OAUTH2:\n\t\t\t\tconfig = this.mapOauth2ConfigToDO(entity.config as Oauth2ToolConfig);\n\t\t\t\tbreak;\n\t\t\tcase ToolConfigType.LTI11:\n\t\t\t\tconfig = this.mapLti11ToolConfigToDO(entity.config as Lti11ToolConfig);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tthrow new UnprocessableEntityException(`Unknown config type.`);\n\t\t}\n\n\t\treturn new ExternalTool({\n\t\t\tid: entity.id,\n\t\t\tname: entity.name,\n\t\t\turl: entity.url,\n\t\t\tlogoUrl: entity.logoUrl,\n\t\t\tlogo: entity.logoBase64,\n\t\t\tconfig,\n\t\t\tparameters: this.mapCustomParametersToDOs(entity.parameters || []),\n\t\t\tisHidden: entity.isHidden,\n\t\t\topenNewTab: entity.openNewTab,\n\t\t\tversion: entity.version,\n\t\t});\n\t}\n\n\tstatic mapBasicToolConfigToDO(lti11Config: BasicToolConfigEntity): BasicToolConfig {\n\t\treturn new BasicToolConfig({\n\t\t\ttype: lti11Config.type,\n\t\t\tbaseUrl: lti11Config.baseUrl,\n\t\t});\n\t}\n\n\tstatic mapOauth2ConfigToDO(oauth2Config: Oauth2ToolConfigEntity): Oauth2ToolConfig {\n\t\treturn new Oauth2ToolConfig({\n\t\t\ttype: oauth2Config.type,\n\t\t\tbaseUrl: oauth2Config.baseUrl,\n\t\t\tclientId: oauth2Config.clientId,\n\t\t\tskipConsent: oauth2Config.skipConsent,\n\t\t});\n\t}\n\n\tstatic mapLti11ToolConfigToDO(lti11Config: Lti11ToolConfigEntity): Lti11ToolConfig {\n\t\treturn new Lti11ToolConfig({\n\t\t\ttype: lti11Config.type,\n\t\t\tbaseUrl: lti11Config.baseUrl,\n\t\t\tkey: lti11Config.key,\n\t\t\tsecret: lti11Config.secret,\n\t\t\tlti_message_type: lti11Config.lti_message_type,\n\t\t\tresource_link_id: lti11Config.resource_link_id,\n\t\t\tprivacy_permission: lti11Config.privacy_permission,\n\t\t\tlaunch_presentation_locale: lti11Config.launch_presentation_locale,\n\t\t});\n\t}\n\n\tstatic mapDOToEntityProperties(entityDO: ExternalTool): IExternalToolProperties {\n\t\tlet config: BasicToolConfigEntity | Oauth2ToolConfigEntity | Lti11ToolConfigEntity;\n\t\tswitch (entityDO.config.type) {\n\t\t\tcase ToolConfigType.BASIC:\n\t\t\t\tconfig = this.mapBasicToolConfigDOToEntity(entityDO.config as BasicToolConfig);\n\t\t\t\tbreak;\n\t\t\tcase ToolConfigType.OAUTH2:\n\t\t\t\tconfig = this.mapOauth2ConfigDOToEntity(entityDO.config as Oauth2ToolConfig);\n\t\t\t\tbreak;\n\t\t\tcase ToolConfigType.LTI11:\n\t\t\t\tconfig = this.mapLti11ToolConfigDOToEntity(entityDO.config as Lti11ToolConfig);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t/* istanbul ignore next */\n\t\t\t\tthrow new UnprocessableEntityException(`Unknown config type.`);\n\t\t}\n\n\t\treturn {\n\t\t\tname: entityDO.name,\n\t\t\turl: entityDO.url,\n\t\t\tlogoUrl: entityDO.logoUrl,\n\t\t\tlogoBase64: entityDO.logo,\n\t\t\tconfig,\n\t\t\tparameters: this.mapCustomParameterDOsToEntities(entityDO.parameters ?? []),\n\t\t\tisHidden: entityDO.isHidden,\n\t\t\topenNewTab: entityDO.openNewTab,\n\t\t\tversion: entityDO.version,\n\t\t};\n\t}\n\n\tstatic mapBasicToolConfigDOToEntity(lti11Config: BasicToolConfig): BasicToolConfigEntity {\n\t\treturn new BasicToolConfigEntity({\n\t\t\ttype: lti11Config.type,\n\t\t\tbaseUrl: lti11Config.baseUrl,\n\t\t});\n\t}\n\n\tstatic mapOauth2ConfigDOToEntity(oauth2Config: Oauth2ToolConfig): Oauth2ToolConfigEntity {\n\t\treturn new Oauth2ToolConfigEntity({\n\t\t\ttype: oauth2Config.type,\n\t\t\tbaseUrl: oauth2Config.baseUrl,\n\t\t\tclientId: oauth2Config.clientId,\n\t\t\tskipConsent: oauth2Config.skipConsent,\n\t\t});\n\t}\n\n\tstatic mapLti11ToolConfigDOToEntity(lti11Config: Lti11ToolConfig): Lti11ToolConfigEntity {\n\t\treturn new Lti11ToolConfigEntity({\n\t\t\ttype: lti11Config.type,\n\t\t\tbaseUrl: lti11Config.baseUrl,\n\t\t\tkey: lti11Config.key,\n\t\t\tsecret: lti11Config.secret,\n\t\t\tlti_message_type: lti11Config.lti_message_type,\n\t\t\tresource_link_id: lti11Config.resource_link_id,\n\t\t\tprivacy_permission: lti11Config.privacy_permission,\n\t\t\tlaunch_presentation_locale: lti11Config.launch_presentation_locale,\n\t\t});\n\t}\n\n\tstatic mapCustomParametersToDOs(customParameters: CustomParameterEntity[]): CustomParameter[] {\n\t\treturn customParameters.map(\n\t\t\t(param: CustomParameterEntity) =>\n\t\t\t\tnew CustomParameter({\n\t\t\t\t\tname: param.name,\n\t\t\t\t\tdisplayName: param.displayName,\n\t\t\t\t\tdescription: param.description,\n\t\t\t\t\tdefault: param.default,\n\t\t\t\t\tregex: param.regex,\n\t\t\t\t\tregexComment: param.regexComment,\n\t\t\t\t\tscope: param.scope,\n\t\t\t\t\tlocation: param.location,\n\t\t\t\t\ttype: param.type,\n\t\t\t\t\tisOptional: param.isOptional,\n\t\t\t\t})\n\t\t);\n\t}\n\n\tstatic mapCustomParameterDOsToEntities(customParameters: CustomParameter[]): CustomParameterEntity[] {\n\t\treturn customParameters.map(\n\t\t\t(param: CustomParameter) =>\n\t\t\t\tnew CustomParameterEntity({\n\t\t\t\t\tname: param.name,\n\t\t\t\t\tdisplayName: param.displayName,\n\t\t\t\t\tdescription: param.description,\n\t\t\t\t\tdefault: param.default,\n\t\t\t\t\tregex: param.regex,\n\t\t\t\t\tregexComment: param.regexComment,\n\t\t\t\t\tscope: param.scope,\n\t\t\t\t\tlocation: param.location,\n\t\t\t\t\ttype: param.type,\n\t\t\t\t\tisOptional: param.isOptional,\n\t\t\t\t})\n\t\t);\n\t}\n\n\tstatic mapCustomParameterEntryEntitiesToDOs(entries: CustomParameterEntryEntity[]): CustomParameterEntry[] {\n\t\treturn entries.map(\n\t\t\t(entry: CustomParameterEntryEntity): CustomParameterEntry =>\n\t\t\t\tnew CustomParameterEntry({\n\t\t\t\t\tname: entry.name,\n\t\t\t\t\tvalue: entry.value,\n\t\t\t\t})\n\t\t);\n\t}\n\n\tstatic mapCustomParameterEntryDOsToEntities(entries: CustomParameterEntry[]): CustomParameterEntryEntity[] {\n\t\treturn entries.map(\n\t\t\t(entry: CustomParameterEntryEntity): CustomParameterEntry =>\n\t\t\t\tnew CustomParameterEntryEntity({\n\t\t\t\t\tname: entry.name,\n\t\t\t\t\tvalue: entry.value,\n\t\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolRequestMapper.html":{"url":"injectables/ExternalToolRequestMapper.html","title":"injectable - ExternalToolRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapCreateRequest\n \n \n mapExternalToolFilterQueryToExternalToolSearchQuery\n \n \n Private\n mapRequestToBasicToolConfig\n \n \n Private\n mapRequestToCustomParameterDO\n \n \n Private\n mapRequestToLti11ToolConfigCreate\n \n \n Private\n mapRequestToLti11ToolConfigUpdate\n \n \n Private\n mapRequestToOauth2ToolConfigCreate\n \n \n Private\n mapRequestToOauth2ToolConfigUpdate\n \n \n mapSortingQueryToDomain\n \n \n Public\n mapUpdateRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapCreateRequest\n \n \n \n \n \n \n \n mapCreateRequest(externalToolCreateParams: ExternalToolCreateParams, version: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n externalToolCreateParams\n \n ExternalToolCreateParams\n \n\n \n No\n \n\n \n \n\n \n \n version\n \n number\n \n\n \n No\n \n\n \n 1\n \n\n \n \n \n \n \n \n \n Returns : ExternalToolCreate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapExternalToolFilterQueryToExternalToolSearchQuery\n \n \n \n \n \n \nmapExternalToolFilterQueryToExternalToolSearchQuery(params: ExternalToolSearchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:170\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ExternalToolSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalToolSearchQuery\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToBasicToolConfig\n \n \n \n \n \n \n \n mapRequestToBasicToolConfig(externalToolConfigParams: BasicToolConfigParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:113\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n BasicToolConfigParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BasicToolConfigDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToCustomParameterDO\n \n \n \n \n \n \n \n mapRequestToCustomParameterDO(customParameterParams: CustomParameterPostParams[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameterParams\n \n CustomParameterPostParams[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToLti11ToolConfigCreate\n \n \n \n \n \n \n \n mapRequestToLti11ToolConfigCreate(externalToolConfigParams: Lti11ToolConfigCreateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:117\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n Lti11ToolConfigCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfigCreate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToLti11ToolConfigUpdate\n \n \n \n \n \n \n \n mapRequestToLti11ToolConfigUpdate(externalToolConfigParams: Lti11ToolConfigUpdateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:123\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n Lti11ToolConfigUpdateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfigUpdate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToOauth2ToolConfigCreate\n \n \n \n \n \n \n \n mapRequestToOauth2ToolConfigCreate(externalToolConfigParams: Oauth2ToolConfigCreateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n Oauth2ToolConfigCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfigCreate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapRequestToOauth2ToolConfigUpdate\n \n \n \n \n \n \n \n mapRequestToOauth2ToolConfigUpdate(externalToolConfigParams: Oauth2ToolConfigUpdateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:135\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigParams\n \n Oauth2ToolConfigUpdateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfigUpdate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapSortingQueryToDomain\n \n \n \n \n \n \nmapSortingQueryToDomain(sortingQuery: SortExternalToolParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:158\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sortingQuery\n \n SortExternalToolParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SortOrderMap | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n mapUpdateRequest\n \n \n \n \n \n \n \n mapUpdateRequest(externalToolUpdateParams: ExternalToolUpdateParams, version: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-request.mapper.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n externalToolUpdateParams\n \n ExternalToolUpdateParams\n \n\n \n No\n \n\n \n \n\n \n \n version\n \n number\n \n\n \n No\n \n\n \n 1\n \n\n \n \n \n \n \n \n \n Returns : ExternalToolUpdate\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SortOrderMap } from '@shared/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterLocationParams,\n\tCustomParameterScope,\n\tCustomParameterScopeTypeParams,\n\tCustomParameterType,\n\tCustomParameterTypeParams,\n} from '../../common/enum';\nimport {\n\tBasicToolConfigParams,\n\tCustomParameterPostParams,\n\tExternalToolCreateParams,\n\tExternalToolSearchParams,\n\tExternalToolUpdateParams,\n\tLti11ToolConfigCreateParams,\n\tLti11ToolConfigUpdateParams,\n\tOauth2ToolConfigCreateParams,\n\tOauth2ToolConfigUpdateParams,\n\tSortExternalToolParams,\n} from '../controller/dto';\nimport {\n\tBasicToolConfigDto,\n\tCustomParameterDto,\n\tExternalToolCreate,\n\tExternalToolUpdate,\n\tLti11ToolConfigCreate,\n\tLti11ToolConfigUpdate,\n\tOauth2ToolConfigCreate,\n\tOauth2ToolConfigUpdate,\n} from '../uc';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolSearchQuery } from '../../common/interface';\n\nconst scopeMapping: Record = {\n\t[CustomParameterScopeTypeParams.GLOBAL]: CustomParameterScope.GLOBAL,\n\t[CustomParameterScopeTypeParams.SCHOOL]: CustomParameterScope.SCHOOL,\n\t[CustomParameterScopeTypeParams.CONTEXT]: CustomParameterScope.CONTEXT,\n};\n\nconst locationMapping: Record = {\n\t[CustomParameterLocationParams.PATH]: CustomParameterLocation.PATH,\n\t[CustomParameterLocationParams.QUERY]: CustomParameterLocation.QUERY,\n\t[CustomParameterLocationParams.BODY]: CustomParameterLocation.BODY,\n};\n\nconst typeMapping: Record = {\n\t[CustomParameterTypeParams.STRING]: CustomParameterType.STRING,\n\t[CustomParameterTypeParams.BOOLEAN]: CustomParameterType.BOOLEAN,\n\t[CustomParameterTypeParams.NUMBER]: CustomParameterType.NUMBER,\n\t[CustomParameterTypeParams.AUTO_CONTEXTID]: CustomParameterType.AUTO_CONTEXTID,\n\t[CustomParameterTypeParams.AUTO_CONTEXTNAME]: CustomParameterType.AUTO_CONTEXTNAME,\n\t[CustomParameterTypeParams.AUTO_SCHOOLID]: CustomParameterType.AUTO_SCHOOLID,\n\t[CustomParameterTypeParams.AUTO_SCHOOLNUMBER]: CustomParameterType.AUTO_SCHOOLNUMBER,\n};\n\n@Injectable()\nexport class ExternalToolRequestMapper {\n\tpublic mapUpdateRequest(externalToolUpdateParams: ExternalToolUpdateParams, version = 1): ExternalToolUpdate {\n\t\tlet mappedConfig: BasicToolConfigDto | Lti11ToolConfigUpdate | Oauth2ToolConfigUpdate;\n\t\tif (externalToolUpdateParams.config instanceof BasicToolConfigParams) {\n\t\t\tmappedConfig = this.mapRequestToBasicToolConfig(externalToolUpdateParams.config);\n\t\t} else if (externalToolUpdateParams.config instanceof Lti11ToolConfigUpdateParams) {\n\t\t\tmappedConfig = this.mapRequestToLti11ToolConfigUpdate(externalToolUpdateParams.config);\n\t\t} else {\n\t\t\tmappedConfig = this.mapRequestToOauth2ToolConfigUpdate(externalToolUpdateParams.config);\n\t\t}\n\n\t\tconst mappedCustomParameter: CustomParameterDto[] = this.mapRequestToCustomParameterDO(\n\t\t\texternalToolUpdateParams.parameters ?? []\n\t\t);\n\n\t\treturn {\n\t\t\tid: externalToolUpdateParams.id,\n\t\t\tname: externalToolUpdateParams.name,\n\t\t\turl: externalToolUpdateParams.url,\n\t\t\tlogoUrl: externalToolUpdateParams.logoUrl,\n\t\t\tconfig: mappedConfig,\n\t\t\tparameters: mappedCustomParameter,\n\t\t\tisHidden: externalToolUpdateParams.isHidden,\n\t\t\topenNewTab: externalToolUpdateParams.openNewTab,\n\t\t\tversion,\n\t\t};\n\t}\n\n\tpublic mapCreateRequest(externalToolCreateParams: ExternalToolCreateParams, version = 1): ExternalToolCreate {\n\t\tlet mappedConfig: BasicToolConfigDto | Lti11ToolConfigCreate | Oauth2ToolConfigCreate;\n\t\tif (externalToolCreateParams.config instanceof BasicToolConfigParams) {\n\t\t\tmappedConfig = this.mapRequestToBasicToolConfig(externalToolCreateParams.config);\n\t\t} else if (externalToolCreateParams.config instanceof Lti11ToolConfigCreateParams) {\n\t\t\tmappedConfig = this.mapRequestToLti11ToolConfigCreate(externalToolCreateParams.config);\n\t\t} else {\n\t\t\tmappedConfig = this.mapRequestToOauth2ToolConfigCreate(externalToolCreateParams.config);\n\t\t}\n\n\t\tconst mappedCustomParameter: CustomParameterDto[] = this.mapRequestToCustomParameterDO(\n\t\t\texternalToolCreateParams.parameters ?? []\n\t\t);\n\n\t\treturn {\n\t\t\tname: externalToolCreateParams.name,\n\t\t\turl: externalToolCreateParams.url,\n\t\t\tlogoUrl: externalToolCreateParams.logoUrl,\n\t\t\tconfig: mappedConfig,\n\t\t\tparameters: mappedCustomParameter,\n\t\t\tisHidden: externalToolCreateParams.isHidden,\n\t\t\topenNewTab: externalToolCreateParams.openNewTab,\n\t\t\tversion,\n\t\t};\n\t}\n\n\tprivate mapRequestToBasicToolConfig(externalToolConfigParams: BasicToolConfigParams): BasicToolConfigDto {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToLti11ToolConfigCreate(\n\t\texternalToolConfigParams: Lti11ToolConfigCreateParams\n\t): Lti11ToolConfigCreate {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToLti11ToolConfigUpdate(\n\t\texternalToolConfigParams: Lti11ToolConfigUpdateParams\n\t): Lti11ToolConfigUpdate {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToOauth2ToolConfigCreate(\n\t\texternalToolConfigParams: Oauth2ToolConfigCreateParams\n\t): Oauth2ToolConfigCreate {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToOauth2ToolConfigUpdate(\n\t\texternalToolConfigParams: Oauth2ToolConfigUpdateParams\n\t): Oauth2ToolConfigUpdate {\n\t\treturn { ...externalToolConfigParams };\n\t}\n\n\tprivate mapRequestToCustomParameterDO(customParameterParams: CustomParameterPostParams[]): CustomParameterDto[] {\n\t\treturn customParameterParams.map((customParameterParam: CustomParameterPostParams) => {\n\t\t\treturn {\n\t\t\t\tname: customParameterParam.name,\n\t\t\t\tdisplayName: customParameterParam.displayName,\n\t\t\t\tdescription: customParameterParam.description,\n\t\t\t\tdefault: customParameterParam.defaultValue,\n\t\t\t\tregex: customParameterParam.regex,\n\t\t\t\tregexComment: customParameterParam.regexComment,\n\t\t\t\tscope: scopeMapping[customParameterParam.scope],\n\t\t\t\tlocation: locationMapping[customParameterParam.location],\n\t\t\t\ttype: typeMapping[customParameterParam.type],\n\t\t\t\tisOptional: customParameterParam.isOptional,\n\t\t\t};\n\t\t});\n\t}\n\n\tmapSortingQueryToDomain(sortingQuery: SortExternalToolParams): SortOrderMap | undefined {\n\t\tconst { sortBy } = sortingQuery;\n\t\tif (sortBy == null) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst result: SortOrderMap = {\n\t\t\t[sortBy]: sortingQuery.sortOrder,\n\t\t};\n\t\treturn result;\n\t}\n\n\tmapExternalToolFilterQueryToExternalToolSearchQuery(params: ExternalToolSearchParams): ExternalToolSearchQuery {\n\t\tconst searchQuery: ExternalToolSearchQuery = {\n\t\t\tname: params.name,\n\t\t\tclientId: params.clientId,\n\t\t};\n\n\t\treturn searchQuery;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolResponse.html":{"url":"classes/ExternalToolResponse.html","title":"class - ExternalToolResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n config\n \n \n \n id\n \n \n \n isHidden\n \n \n \n Optional\n logoUrl\n \n \n \n name\n \n \n \n openNewTab\n \n \n \n parameters\n \n \n \n Optional\n url\n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(response: ExternalToolResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:31\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n \n ExternalToolResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : BasicToolConfigResponse | Oauth2ToolConfigResponse | Lti11ToolConfigResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool.response.ts:31\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { BasicToolConfigResponse, Oauth2ToolConfigResponse, Lti11ToolConfigResponse } from './config';\nimport { CustomParameterResponse } from './custom-parameter.response';\n\nexport class ExternalToolResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\turl?: string;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ApiProperty()\n\tconfig: BasicToolConfigResponse | Oauth2ToolConfigResponse | Lti11ToolConfigResponse;\n\n\t@ApiProperty()\n\tparameters: CustomParameterResponse[];\n\n\t@ApiProperty()\n\tisHidden: boolean;\n\n\t@ApiProperty()\n\topenNewTab: boolean;\n\n\t@ApiProperty()\n\tversion: number;\n\n\tconstructor(response: ExternalToolResponse) {\n\t\tthis.id = response.id;\n\t\tthis.name = response.name;\n\t\tthis.url = response.url;\n\t\tthis.logoUrl = response.logoUrl;\n\t\tthis.config = response.config;\n\t\tthis.parameters = response.parameters;\n\t\tthis.isHidden = response.isHidden;\n\t\tthis.openNewTab = response.openNewTab;\n\t\tthis.version = response.version;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolResponseMapper.html":{"url":"injectables/ExternalToolResponseMapper.html","title":"injectable - ExternalToolResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n mapBasicToolConfigDOToResponse\n \n \n Static\n mapCustomParameterToResponse\n \n \n Private\n Static\n mapLti11ToolConfigDOToResponse\n \n \n Private\n Static\n mapOauth2ToolConfigDOToResponse\n \n \n Static\n mapToExternalToolResponse\n \n \n Private\n Static\n mapToToolReferenceResponse\n \n \n Static\n mapToToolReferenceResponses\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n mapBasicToolConfigDOToResponse\n \n \n \n \n \n \n \n mapBasicToolConfigDOToResponse(externalToolConfigDO: BasicToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigDO\n \n BasicToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BasicToolConfigResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCustomParameterToResponse\n \n \n \n \n \n \n \n mapCustomParameterToResponse(customParameters: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameters\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterResponse[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapLti11ToolConfigDOToResponse\n \n \n \n \n \n \n \n mapLti11ToolConfigDOToResponse(externalToolConfigDO: Lti11ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigDO\n \n Lti11ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Lti11ToolConfigResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapOauth2ToolConfigDOToResponse\n \n \n \n \n \n \n \n mapOauth2ToolConfigDOToResponse(externalToolConfigDO: Oauth2ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolConfigDO\n \n Oauth2ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Oauth2ToolConfigResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToExternalToolResponse\n \n \n \n \n \n \n \n mapToExternalToolResponse(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalToolResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n mapToToolReferenceResponse\n \n \n \n \n \n \n \n mapToToolReferenceResponse(toolReference: ToolReference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolReference\n \n ToolReference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolReferenceResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToToolReferenceResponses\n \n \n \n \n \n \n \n mapToToolReferenceResponses(toolReferences: ToolReference[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/external-tool-response.mapper.ts:102\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolReferences\n \n ToolReference[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolReferenceResponse[]\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CustomParameter } from '../../common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterLocationParams,\n\tCustomParameterScope,\n\tCustomParameterScopeTypeParams,\n\tCustomParameterType,\n\tCustomParameterTypeParams,\n} from '../../common/enum';\nimport { statusMapping } from '../../school-external-tool/mapper';\nimport {\n\tBasicToolConfigResponse,\n\tCustomParameterResponse,\n\tExternalToolResponse,\n\tLti11ToolConfigResponse,\n\tOauth2ToolConfigResponse,\n\tToolReferenceResponse,\n} from '../controller/dto';\nimport { BasicToolConfig, ExternalTool, Lti11ToolConfig, Oauth2ToolConfig, ToolReference } from '../domain';\n\nconst scopeMapping: Record = {\n\t[CustomParameterScope.GLOBAL]: CustomParameterScopeTypeParams.GLOBAL,\n\t[CustomParameterScope.SCHOOL]: CustomParameterScopeTypeParams.SCHOOL,\n\t[CustomParameterScope.CONTEXT]: CustomParameterScopeTypeParams.CONTEXT,\n};\n\nconst locationMapping: Record = {\n\t[CustomParameterLocation.PATH]: CustomParameterLocationParams.PATH,\n\t[CustomParameterLocation.QUERY]: CustomParameterLocationParams.QUERY,\n\t[CustomParameterLocation.BODY]: CustomParameterLocationParams.BODY,\n};\n\nconst typeMapping: Record = {\n\t[CustomParameterType.STRING]: CustomParameterTypeParams.STRING,\n\t[CustomParameterType.BOOLEAN]: CustomParameterTypeParams.BOOLEAN,\n\t[CustomParameterType.NUMBER]: CustomParameterTypeParams.NUMBER,\n\t[CustomParameterType.AUTO_CONTEXTID]: CustomParameterTypeParams.AUTO_CONTEXTID,\n\t[CustomParameterType.AUTO_CONTEXTNAME]: CustomParameterTypeParams.AUTO_CONTEXTNAME,\n\t[CustomParameterType.AUTO_SCHOOLID]: CustomParameterTypeParams.AUTO_SCHOOLID,\n\t[CustomParameterType.AUTO_SCHOOLNUMBER]: CustomParameterTypeParams.AUTO_SCHOOLNUMBER,\n};\n\n@Injectable()\nexport class ExternalToolResponseMapper {\n\tstatic mapToExternalToolResponse(externalTool: ExternalTool): ExternalToolResponse {\n\t\tlet mappedConfig: BasicToolConfigResponse | Lti11ToolConfigResponse | Oauth2ToolConfigResponse;\n\t\tif (externalTool.config instanceof BasicToolConfig) {\n\t\t\tmappedConfig = this.mapBasicToolConfigDOToResponse(externalTool.config);\n\t\t} else if (externalTool.config instanceof Lti11ToolConfig) {\n\t\t\tmappedConfig = this.mapLti11ToolConfigDOToResponse(externalTool.config);\n\t\t} else {\n\t\t\tmappedConfig = this.mapOauth2ToolConfigDOToResponse(externalTool.config);\n\t\t}\n\n\t\tconst mappedCustomParameter: CustomParameterResponse[] = this.mapCustomParameterToResponse(\n\t\t\texternalTool.parameters ?? []\n\t\t);\n\n\t\treturn new ExternalToolResponse({\n\t\t\tid: externalTool.id ?? '',\n\t\t\tname: externalTool.name,\n\t\t\turl: externalTool.url,\n\t\t\tlogoUrl: externalTool.logoUrl,\n\t\t\tconfig: mappedConfig,\n\t\t\tparameters: mappedCustomParameter,\n\t\t\tisHidden: externalTool.isHidden,\n\t\t\topenNewTab: externalTool.openNewTab,\n\t\t\tversion: externalTool.version,\n\t\t});\n\t}\n\n\tprivate static mapBasicToolConfigDOToResponse(externalToolConfigDO: BasicToolConfig): BasicToolConfigResponse {\n\t\treturn new BasicToolConfigResponse({ ...externalToolConfigDO });\n\t}\n\n\tprivate static mapLti11ToolConfigDOToResponse(externalToolConfigDO: Lti11ToolConfig): Lti11ToolConfigResponse {\n\t\treturn new Lti11ToolConfigResponse({ ...externalToolConfigDO });\n\t}\n\n\tprivate static mapOauth2ToolConfigDOToResponse(externalToolConfigDO: Oauth2ToolConfig): Oauth2ToolConfigResponse {\n\t\treturn new Oauth2ToolConfigResponse({ ...externalToolConfigDO });\n\t}\n\n\tstatic mapCustomParameterToResponse(customParameters: CustomParameter[]): CustomParameterResponse[] {\n\t\treturn customParameters.map((customParameterDO: CustomParameter) => {\n\t\t\treturn {\n\t\t\t\tname: customParameterDO.name,\n\t\t\t\tdisplayName: customParameterDO.displayName,\n\t\t\t\tdescription: customParameterDO.description,\n\t\t\t\tdefaultValue: customParameterDO.default,\n\t\t\t\tregex: customParameterDO.regex,\n\t\t\t\tregexComment: customParameterDO.regexComment,\n\t\t\t\tscope: scopeMapping[customParameterDO.scope],\n\t\t\t\tlocation: locationMapping[customParameterDO.location],\n\t\t\t\ttype: typeMapping[customParameterDO.type],\n\t\t\t\tisOptional: customParameterDO.isOptional,\n\t\t\t};\n\t\t});\n\t}\n\n\tstatic mapToToolReferenceResponses(toolReferences: ToolReference[]): ToolReferenceResponse[] {\n\t\tconst toolReferenceResponses: ToolReferenceResponse[] = toolReferences.map((toolReference: ToolReference) =>\n\t\t\tthis.mapToToolReferenceResponse(toolReference)\n\t\t);\n\n\t\treturn toolReferenceResponses;\n\t}\n\n\tprivate static mapToToolReferenceResponse(toolReference: ToolReference): ToolReferenceResponse {\n\t\tconst response = new ToolReferenceResponse({\n\t\t\tcontextToolId: toolReference.contextToolId,\n\t\t\tdisplayName: toolReference.displayName,\n\t\t\tlogoUrl: toolReference.logoUrl,\n\t\t\topenInNewTab: toolReference.openInNewTab,\n\t\t\tstatus: statusMapping[toolReference.status],\n\t\t});\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolScope.html":{"url":"classes/ExternalToolScope.html","title":"class - ExternalToolScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/externaltool/external-tool.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byClientId\n \n \n byHidden\n \n \n byName\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byClientId\n \n \n \n \n \n \nbyClientId(clientId: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.scope.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byHidden\n \n \n \n \n \n \nbyHidden(isHidden: boolean | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.scope.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isHidden\n \n boolean | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byName\n \n \n \n \n \n \nbyName(name: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool.scope.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Scope } from '@shared/repo/scope';\nimport { ExternalToolEntity } from '@src/modules/tool/external-tool/entity';\n\nexport class ExternalToolScope extends Scope {\n\tbyName(name: string | undefined): this {\n\t\tif (name) {\n\t\t\tthis.addQuery({ name: { $re: name } });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyClientId(clientId: string | undefined): this {\n\t\tif (clientId) {\n\t\t\tthis.addQuery({ config: { clientId } });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyHidden(isHidden: boolean | undefined): this {\n\t\tif (isHidden !== undefined) {\n\t\t\tthis.addQuery({ isHidden });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolSearchListResponse.html":{"url":"classes/ExternalToolSearchListResponse.html","title":"class - ExternalToolSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool-search-list.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ExternalToolResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/external-tool-search-list.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ExternalToolResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ExternalToolResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:7\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PaginationResponse } from '@shared/controller';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { ExternalToolResponse } from './external-tool.response';\n\nexport class ExternalToolSearchListResponse extends PaginationResponse {\n\t@ApiProperty({ type: [ExternalToolResponse] })\n\tdata: ExternalToolResponse[];\n\n\tconstructor(data: ExternalToolResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolSearchParams.html":{"url":"classes/ExternalToolSearchParams.html","title":"class - ExternalToolSearchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolSearchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-search.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n clientId\n \n \n \n \n \n Optional\n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'OAuth2 client id of the external tool'})@IsString()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-search.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Name of the external tool'})@IsString()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-search.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsOptional, IsString } from 'class-validator';\n\nexport class ExternalToolSearchParams {\n\t@ApiPropertyOptional({ description: 'Name of the external tool' })\n\t@IsString()\n\t@IsOptional()\n\tname?: string;\n\n\t@ApiPropertyOptional({ description: 'OAuth2 client id of the external tool' })\n\t@IsString()\n\t@IsOptional()\n\tclientId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ExternalToolSearchQuery.html":{"url":"interfaces/ExternalToolSearchQuery.html","title":"interface - ExternalToolSearchQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ExternalToolSearchQuery\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/interface/external-tool-search-query.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n clientId\n \n \n \n Optional\n \n isHidden\n \n \n \n Optional\n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n clientId\n \n \n \n \n \n \n \n \n clientId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n \n \n isHidden: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface ExternalToolSearchQuery {\n\tname?: string;\n\n\tclientId?: string;\n\n\tisHidden?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolService.html":{"url":"injectables/ExternalToolService.html","title":"injectable - ExternalToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n addExternalOauth2DataToConfig\n \n \n Async\n createExternalTool\n \n \n Async\n deleteExternalTool\n \n \n Async\n findExternalToolById\n \n \n findExternalToolByName\n \n \n findExternalToolByOAuth2ConfigClientId\n \n \n Async\n findExternalTools\n \n \n Async\n updateExternalTool\n \n \n Private\n Async\n updateOauth2ToolConfig\n \n \n Private\n Async\n updateOauthClientOrThrow\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolRepo: ExternalToolRepo, oauthProviderService: OauthProviderService, mapper: ExternalToolServiceMapper, schoolExternalToolRepo: SchoolExternalToolRepo, contextExternalToolRepo: ContextExternalToolRepo, encryptionService: IEncryptionService, legacyLogger: LegacyLogger, externalToolVersionService: ExternalToolVersionService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolRepo\n \n \n ExternalToolRepo\n \n \n \n No\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n mapper\n \n \n ExternalToolServiceMapper\n \n \n \n No\n \n \n \n \n schoolExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n \n No\n \n \n \n \n contextExternalToolRepo\n \n \n ContextExternalToolRepo\n \n \n \n No\n \n \n \n \n encryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n legacyLogger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n externalToolVersionService\n \n \n ExternalToolVersionService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n addExternalOauth2DataToConfig\n \n \n \n \n \n \n \n addExternalOauth2DataToConfig(config: Oauth2ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:143\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n config\n \n Oauth2ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createExternalTool\n \n \n \n \n \n \n \n createExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteExternalTool\n \n \n \n \n \n \n \n deleteExternalTool(toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findExternalToolById\n \n \n \n \n \n \n \n findExternalToolById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n findExternalToolByName\n \n \n \n \n \n \nfindExternalToolByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:93\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n findExternalToolByOAuth2ConfigClientId\n \n \n \n \n \n \nfindExternalToolByOAuth2ConfigClientId(clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:98\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findExternalTools\n \n \n \n \n \n \n \n findExternalTools(query: ExternalToolSearchQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n ExternalToolSearchQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateExternalTool\n \n \n \n \n \n \n \n updateExternalTool(toUpdate: ExternalTool, loadedTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toUpdate\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n loadedTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateOauth2ToolConfig\n \n \n \n \n \n \n \n updateOauth2ToolConfig(toUpdate: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:118\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toUpdate\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateOauthClientOrThrow\n \n \n \n \n \n \n \n updateOauthClientOrThrow(loadedOauthClient: ProviderOauthClient, toUpdateOauthClient: ProviderOauthClient, toUpdate: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool.service.ts:131\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loadedOauthClient\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n toUpdateOauthClient\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n toUpdate\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, IFindOptions, Page } from '@shared/domain';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { ProviderOauthClient } from '@shared/infra/oauth-provider/dto';\nimport { ContextExternalToolRepo, ExternalToolRepo, SchoolExternalToolRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { TokenEndpointAuthMethod } from '../../common/enum';\nimport { ExternalToolSearchQuery } from '../../common/interface';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ExternalTool, Oauth2ToolConfig } from '../domain';\nimport { ExternalToolServiceMapper } from './external-tool-service.mapper';\nimport { ExternalToolVersionService } from './external-tool-version.service';\n\n@Injectable()\nexport class ExternalToolService {\n\tconstructor(\n\t\tprivate readonly externalToolRepo: ExternalToolRepo,\n\t\tprivate readonly oauthProviderService: OauthProviderService,\n\t\tprivate readonly mapper: ExternalToolServiceMapper,\n\t\tprivate readonly schoolExternalToolRepo: SchoolExternalToolRepo,\n\t\tprivate readonly contextExternalToolRepo: ContextExternalToolRepo,\n\t\t@Inject(DefaultEncryptionService) private readonly encryptionService: IEncryptionService,\n\t\tprivate readonly legacyLogger: LegacyLogger,\n\t\tprivate readonly externalToolVersionService: ExternalToolVersionService\n\t) {}\n\n\tasync createExternalTool(externalTool: ExternalTool): Promise {\n\t\tif (ExternalTool.isLti11Config(externalTool.config) && externalTool.config.secret) {\n\t\t\texternalTool.config.secret = this.encryptionService.encrypt(externalTool.config.secret);\n\t\t} else if (ExternalTool.isOauth2Config(externalTool.config)) {\n\t\t\tconst oauthClient: ProviderOauthClient = this.mapper.mapDoToProviderOauthClient(\n\t\t\t\texternalTool.name,\n\t\t\t\texternalTool.config\n\t\t\t);\n\n\t\t\tawait this.oauthProviderService.createOAuth2Client(oauthClient);\n\t\t}\n\n\t\tconst created: ExternalTool = await this.externalToolRepo.save(externalTool);\n\t\treturn created;\n\t}\n\n\tasync updateExternalTool(toUpdate: ExternalTool, loadedTool: ExternalTool): Promise {\n\t\tawait this.updateOauth2ToolConfig(toUpdate);\n\t\tthis.externalToolVersionService.increaseVersionOfNewToolIfNecessary(loadedTool, toUpdate);\n\t\tconst externalTool: ExternalTool = await this.externalToolRepo.save(toUpdate);\n\t\treturn externalTool;\n\t}\n\n\tasync findExternalTools(\n\t\tquery: ExternalToolSearchQuery,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst tools: Page = await this.externalToolRepo.find(query, options);\n\n\t\tconst resolvedTools: (ExternalTool | undefined)[] = await Promise.all(\n\t\t\ttools.data.map(async (tool: ExternalTool): Promise => {\n\t\t\t\tif (ExternalTool.isOauth2Config(tool.config)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait this.addExternalOauth2DataToConfig(tool.config);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tthis.legacyLogger.debug(\n\t\t\t\t\t\t\t`Could not resolve oauth2Config of tool with clientId ${tool.config.clientId}. It will be filtered out.`\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn tool;\n\t\t\t})\n\t\t);\n\n\t\ttools.data = resolvedTools.filter((tool) => tool !== undefined) as ExternalTool[];\n\n\t\treturn tools;\n\t}\n\n\tasync findExternalToolById(id: EntityId): Promise {\n\t\tconst tool: ExternalTool = await this.externalToolRepo.findById(id);\n\t\tif (ExternalTool.isOauth2Config(tool.config)) {\n\t\t\ttry {\n\t\t\t\tawait this.addExternalOauth2DataToConfig(tool.config);\n\t\t\t} catch (e) {\n\t\t\t\tthis.legacyLogger.debug(\n\t\t\t\t\t`Could not resolve oauth2Config of tool with clientId ${tool.config.clientId}. It will be filtered out.`\n\t\t\t\t);\n\t\t\t\tthrow new UnprocessableEntityException(`Could not resolve oauth2Config of tool ${tool.name}.`);\n\t\t\t}\n\t\t}\n\t\treturn tool;\n\t}\n\n\tfindExternalToolByName(name: string): Promise {\n\t\tconst externalTool: Promise = this.externalToolRepo.findByName(name);\n\t\treturn externalTool;\n\t}\n\n\tfindExternalToolByOAuth2ConfigClientId(clientId: string): Promise {\n\t\tconst externalTool: Promise = this.externalToolRepo.findByOAuth2ConfigClientId(clientId);\n\t\treturn externalTool;\n\t}\n\n\tasync deleteExternalTool(toolId: EntityId): Promise {\n\t\tconst schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolRepo.findByExternalToolId(toolId);\n\t\tconst schoolExternalToolIds: string[] = schoolExternalTools.map(\n\t\t\t(schoolExternalTool: SchoolExternalTool): string =>\n\t\t\t\t// We can be sure that the repo returns the id\n\t\t\t\tschoolExternalTool.id as string\n\t\t);\n\n\t\tawait Promise.all([\n\t\t\tthis.contextExternalToolRepo.deleteBySchoolExternalToolIds(schoolExternalToolIds),\n\t\t\tthis.schoolExternalToolRepo.deleteByExternalToolId(toolId),\n\t\t\tthis.externalToolRepo.deleteById(toolId),\n\t\t]);\n\t}\n\n\tprivate async updateOauth2ToolConfig(toUpdate: ExternalTool) {\n\t\tif (ExternalTool.isOauth2Config(toUpdate.config)) {\n\t\t\tconst toUpdateOauthClient: ProviderOauthClient = this.mapper.mapDoToProviderOauthClient(\n\t\t\t\ttoUpdate.name,\n\t\t\t\ttoUpdate.config\n\t\t\t);\n\t\t\tconst loadedOauthClient: ProviderOauthClient = await this.oauthProviderService.getOAuth2Client(\n\t\t\t\ttoUpdate.config.clientId\n\t\t\t);\n\t\t\tawait this.updateOauthClientOrThrow(loadedOauthClient, toUpdateOauthClient, toUpdate);\n\t\t}\n\t}\n\n\tprivate async updateOauthClientOrThrow(\n\t\tloadedOauthClient: ProviderOauthClient,\n\t\ttoUpdateOauthClient: ProviderOauthClient,\n\t\ttoUpdate: ExternalTool\n\t) {\n\t\tif (loadedOauthClient && loadedOauthClient.client_id) {\n\t\t\tawait this.oauthProviderService.updateOAuth2Client(loadedOauthClient.client_id, toUpdateOauthClient);\n\t\t} else {\n\t\t\tthrow new UnprocessableEntityException(`The oAuthConfigs clientId of tool ${toUpdate.name}\" does not exist`);\n\t\t}\n\t}\n\n\tprivate async addExternalOauth2DataToConfig(config: Oauth2ToolConfig) {\n\t\tconst oauthClient: ProviderOauthClient = await this.oauthProviderService.getOAuth2Client(config.clientId);\n\n\t\tconfig.scope = oauthClient.scope;\n\t\tconfig.tokenEndpointAuthMethod = oauthClient.token_endpoint_auth_method as TokenEndpointAuthMethod;\n\t\tconfig.redirectUris = oauthClient.redirect_uris;\n\t\tconfig.frontchannelLogoutUri = oauthClient.frontchannel_logout_uri;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolServiceMapper.html":{"url":"injectables/ExternalToolServiceMapper.html","title":"injectable - ExternalToolServiceMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolServiceMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-service.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapDoToProviderOauthClient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapDoToProviderOauthClient\n \n \n \n \n \n \nmapDoToProviderOauthClient(name: string, oauth2Config: Oauth2ToolConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-service.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n oauth2Config\n \n Oauth2ToolConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ProviderOauthClient\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ProviderOauthClient } from '@shared/infra/oauth-provider/dto';\nimport { Injectable } from '@nestjs/common';\nimport { Oauth2ToolConfig } from '../domain';\n\n@Injectable()\nexport class ExternalToolServiceMapper {\n\tmapDoToProviderOauthClient(name: string, oauth2Config: Oauth2ToolConfig): ProviderOauthClient {\n\t\treturn {\n\t\t\tclient_name: name,\n\t\t\tclient_id: oauth2Config.clientId,\n\t\t\tclient_secret: oauth2Config.clientSecret,\n\t\t\tscope: oauth2Config.scope,\n\t\t\ttoken_endpoint_auth_method: oauth2Config.tokenEndpointAuthMethod,\n\t\t\tredirect_uris: oauth2Config.redirectUris,\n\t\t\tfrontchannel_logout_uri: oauth2Config.frontchannelLogoutUri,\n\t\t\tsubject_type: 'pairwise',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolSortingMapper.html":{"url":"classes/ExternalToolSortingMapper.html","title":"class - ExternalToolSortingMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolSortingMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/externaltool/external-tool-sorting.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapDOSortOrderToQueryOrder\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapDOSortOrderToQueryOrder\n \n \n \n \n \n \n \n mapDOSortOrderToQueryOrder(sort: SortOrderMap)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/externaltool/external-tool-sorting.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sort\n \n SortOrderMap\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : QueryOrderMap\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { QueryOrderMap } from '@mikro-orm/core';\nimport { SortOrderMap } from '@shared/domain';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { ExternalToolEntity } from '@src/modules/tool/external-tool/entity';\n\nexport class ExternalToolSortingMapper {\n\tstatic mapDOSortOrderToQueryOrder(sort: SortOrderMap): QueryOrderMap {\n\t\tconst queryOrderMap: QueryOrderMap = {\n\t\t\t_id: sort.id,\n\t\t\tname: sort.name,\n\t\t};\n\t\tObject.keys(queryOrderMap)\n\t\t\t.filter((key) => queryOrderMap[key] === undefined)\n\t\t\t.forEach((key) => delete queryOrderMap[key]);\n\t\treturn queryOrderMap;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolUc.html":{"url":"injectables/ExternalToolUc.html","title":"injectable - ExternalToolUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createExternalTool\n \n \n Async\n deleteExternalTool\n \n \n Private\n Async\n ensurePermission\n \n \n Async\n findExternalTool\n \n \n Async\n getExternalTool\n \n \n Async\n updateExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, authorizationService: AuthorizationService, toolValidationService: ExternalToolValidationService, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n toolValidationService\n \n \n ExternalToolValidationService\n \n \n \n No\n \n \n \n \n externalToolLogoService\n \n \n ExternalToolLogoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createExternalTool\n \n \n \n \n \n \n \n createExternalTool(userId: EntityId, externalToolCreate: ExternalToolCreate)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n externalToolCreate\n \n ExternalToolCreate\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteExternalTool\n \n \n \n \n \n \n \n deleteExternalTool(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n ensurePermission\n \n \n \n \n \n \n \n ensurePermission(userId: EntityId, permission: Permission)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n permission\n \n Permission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findExternalTool\n \n \n \n \n \n \n \n findExternalTool(userId: EntityId, query: ExternalToolSearchQuery, options: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n query\n \n ExternalToolSearchQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getExternalTool\n \n \n \n \n \n \n \n getExternalTool(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateExternalTool\n \n \n \n \n \n \n \n updateExternalTool(userId: EntityId, toolId: string, externalTool: ExternalToolUpdate)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/external-tool.uc.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n string\n \n\n \n No\n \n\n\n \n \n externalTool\n \n ExternalToolUpdate\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, IFindOptions, Page, Permission, User } from '@shared/domain';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { ExternalToolSearchQuery } from '../../common/interface';\nimport { ExternalTool, ExternalToolConfig } from '../domain';\nimport { ExternalToolLogoService, ExternalToolService, ExternalToolValidationService } from '../service';\nimport { ExternalToolCreate, ExternalToolUpdate } from './dto';\n\n@Injectable()\nexport class ExternalToolUc {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly toolValidationService: ExternalToolValidationService,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tasync createExternalTool(userId: EntityId, externalToolCreate: ExternalToolCreate): Promise {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\tconst externalTool = new ExternalTool({ ...externalToolCreate });\n\t\texternalTool.logo = await this.externalToolLogoService.fetchLogo(externalTool);\n\n\t\tawait this.toolValidationService.validateCreate(externalTool);\n\n\t\tconst tool: ExternalTool = await this.externalToolService.createExternalTool(externalTool);\n\n\t\treturn tool;\n\t}\n\n\tasync updateExternalTool(userId: EntityId, toolId: string, externalTool: ExternalToolUpdate): Promise {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\texternalTool.logo = await this.externalToolLogoService.fetchLogo(externalTool);\n\n\t\tawait this.toolValidationService.validateUpdate(toolId, externalTool);\n\n\t\tconst loaded: ExternalTool = await this.externalToolService.findExternalToolById(toolId);\n\t\tconst configToUpdate: ExternalToolConfig = { ...loaded.config, ...externalTool.config };\n\t\tconst toUpdate: ExternalTool = new ExternalTool({\n\t\t\t...loaded,\n\t\t\t...externalTool,\n\t\t\tconfig: configToUpdate,\n\t\t\tversion: loaded.version,\n\t\t});\n\n\t\tconst saved: ExternalTool = await this.externalToolService.updateExternalTool(toUpdate, loaded);\n\n\t\treturn saved;\n\t}\n\n\tasync findExternalTool(\n\t\tuserId: EntityId,\n\t\tquery: ExternalToolSearchQuery,\n\t\toptions: IFindOptions\n\t): Promise> {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\tconst tools: Page = await this.externalToolService.findExternalTools(query, options);\n\t\treturn tools;\n\t}\n\n\tasync getExternalTool(userId: EntityId, toolId: EntityId): Promise {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\tconst tool: ExternalTool = await this.externalToolService.findExternalToolById(toolId);\n\t\treturn tool;\n\t}\n\n\tasync deleteExternalTool(userId: EntityId, toolId: EntityId): Promise {\n\t\tawait this.ensurePermission(userId, Permission.TOOL_ADMIN);\n\n\t\tconst promise: Promise = this.externalToolService.deleteExternalTool(toolId);\n\t\treturn promise;\n\t}\n\n\tprivate async ensurePermission(userId: EntityId, permission: Permission) {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [permission]);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalToolUpdateParams.html":{"url":"classes/ExternalToolUpdateParams.html","title":"class - ExternalToolUpdateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalToolUpdateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n config\n \n \n \n \n id\n \n \n \n \n isHidden\n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n name\n \n \n \n \n openNewTab\n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n Optional\n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n config\n \n \n \n \n \n \n Type : Lti11ToolConfigUpdateParams | Oauth2ToolConfigUpdateParams | BasicToolConfigParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@Type(undefined, {keepDiscriminatorProperty: true, discriminator: undefined})@ApiProperty({oneOf: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:67\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterPostParams[]\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested({each: true})@IsArray()@IsOptional()@ApiPropertyOptional({type: undefined})@Type(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:59\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-update.params.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiExtraModels, ApiProperty, ApiPropertyOptional, getSchemaPath } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsBoolean, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { ToolConfigType } from '../../../../common/enum';\nimport {\n\tBasicToolConfigParams,\n\tExternalToolConfigCreateParams,\n\tLti11ToolConfigUpdateParams,\n\tOauth2ToolConfigUpdateParams,\n} from './config';\nimport { CustomParameterPostParams } from './custom-parameter.params';\n\n@ApiExtraModels(Lti11ToolConfigUpdateParams, Oauth2ToolConfigUpdateParams, BasicToolConfigParams)\nexport class ExternalToolUpdateParams {\n\t@IsString()\n\t@ApiProperty()\n\tid!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\turl?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ValidateNested()\n\t@Type(/* istanbul ignore next */ () => ExternalToolConfigCreateParams, {\n\t\tkeepDiscriminatorProperty: true,\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: Lti11ToolConfigUpdateParams, name: ToolConfigType.LTI11 },\n\t\t\t\t{ value: Oauth2ToolConfigUpdateParams, name: ToolConfigType.OAUTH2 },\n\t\t\t\t{ value: BasicToolConfigParams, name: ToolConfigType.BASIC },\n\t\t\t],\n\t\t},\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(BasicToolConfigParams) },\n\t\t\t{ $ref: getSchemaPath(Lti11ToolConfigUpdateParams) },\n\t\t\t{ $ref: getSchemaPath(Oauth2ToolConfigUpdateParams) },\n\t\t],\n\t})\n\tconfig!: Lti11ToolConfigUpdateParams | Oauth2ToolConfigUpdateParams | BasicToolConfigParams;\n\n\t@ValidateNested({ each: true })\n\t@IsArray()\n\t@IsOptional()\n\t@ApiPropertyOptional({ type: [CustomParameterPostParams] })\n\t@Type(/* istanbul ignore next */ () => CustomParameterPostParams)\n\tparameters?: CustomParameterPostParams[];\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tisHidden!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\topenNewTab!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolValidationService.html":{"url":"injectables/ExternalToolValidationService.html","title":"injectable - ExternalToolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n isClientIdUnique\n \n \n Async\n validateCreate\n \n \n Private\n validateLti11Config\n \n \n Private\n Async\n validateOauth2Config\n \n \n Async\n validateUpdate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, externalToolParameterValidationService: ExternalToolParameterValidationService, toolFeatures: IToolFeatures, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n externalToolParameterValidationService\n \n \n ExternalToolParameterValidationService\n \n \n \n No\n \n \n \n \n toolFeatures\n \n \n IToolFeatures\n \n \n \n No\n \n \n \n \n externalToolLogoService\n \n \n ExternalToolLogoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n isClientIdUnique\n \n \n \n \n \n \n \n isClientIdUnique(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validateCreate\n \n \n \n \n \n \n \n validateCreate(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n validateLti11Config\n \n \n \n \n \n \n \n validateLti11Config(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n validateOauth2Config\n \n \n \n \n \n \n \n validateOauth2Config(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validateUpdate\n \n \n \n \n \n \n \n validateUpdate(toolId: string, externalTool: Partial)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-validation.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n string\n \n\n \n No\n \n\n\n \n \n externalTool\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { IToolFeatures, ToolFeatures } from '../../tool-config';\nimport { ExternalTool } from '../domain';\nimport { ExternalToolParameterValidationService } from './external-tool-parameter-validation.service';\nimport { ExternalToolService } from './external-tool.service';\nimport { ExternalToolLogoService } from './external-tool-logo.service';\n\n@Injectable()\nexport class ExternalToolValidationService {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly externalToolParameterValidationService: ExternalToolParameterValidationService,\n\t\t@Inject(ToolFeatures) private readonly toolFeatures: IToolFeatures,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tasync validateCreate(externalTool: ExternalTool): Promise {\n\t\tawait this.externalToolParameterValidationService.validateCommon(externalTool);\n\n\t\tawait this.validateOauth2Config(externalTool);\n\n\t\tthis.validateLti11Config(externalTool);\n\n\t\tthis.externalToolLogoService.validateLogoSize(externalTool);\n\t}\n\n\tasync validateUpdate(toolId: string, externalTool: Partial): Promise {\n\t\tif (toolId !== externalTool.id) {\n\t\t\tthrow new ValidationError(`tool_id_mismatch: The tool has no id or it does not match the path parameter.`);\n\t\t}\n\n\t\tawait this.externalToolParameterValidationService.validateCommon(externalTool);\n\n\t\tconst loadedTool: ExternalTool = await this.externalToolService.findExternalToolById(toolId);\n\t\tif (\n\t\t\tExternalTool.isOauth2Config(loadedTool.config) &&\n\t\t\texternalTool.config &&\n\t\t\texternalTool.config.type !== loadedTool.config.type\n\t\t) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_type_immutable: The Config Type of the tool ${externalTool.name || ''} is immutable.`\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\texternalTool.config &&\n\t\t\tExternalTool.isOauth2Config(externalTool.config) &&\n\t\t\tExternalTool.isOauth2Config(loadedTool.config) &&\n\t\t\texternalTool.config.clientId !== loadedTool.config.clientId\n\t\t) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_clientId_immutable: The Client Id of the tool ${externalTool.name || ''} is immutable.`\n\t\t\t);\n\t\t}\n\n\t\tthis.externalToolLogoService.validateLogoSize(externalTool);\n\t}\n\n\tprivate async validateOauth2Config(externalTool: ExternalTool): Promise {\n\t\tif (ExternalTool.isOauth2Config(externalTool.config)) {\n\t\t\tif (!externalTool.config.clientSecret) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`tool_clientSecret_missing: The Client Secret of the tool ${externalTool.name || ''} is missing.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!(await this.isClientIdUnique(externalTool))) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`tool_clientId_duplicate: The Client Id of the tool ${externalTool.name || ''} is already used.`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate validateLti11Config(externalTool: ExternalTool): void {\n\t\tif (ExternalTool.isLti11Config(externalTool.config)) {\n\t\t\tif (!externalTool.config.secret) {\n\t\t\t\tthrow new ValidationError(\n\t\t\t\t\t`tool_secret_missing: The secret of the LTI tool ${externalTool.name || ''} is missing.`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async isClientIdUnique(externalTool: ExternalTool): Promise {\n\t\tlet duplicate: ExternalTool | null = null;\n\t\tif (ExternalTool.isOauth2Config(externalTool.config)) {\n\t\t\tduplicate = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(externalTool.config.clientId);\n\t\t}\n\t\treturn duplicate == null || duplicate.id === externalTool.id;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ExternalToolVersionService.html":{"url":"injectables/ExternalToolVersionService.html","title":"injectable - ExternalToolVersionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ExternalToolVersionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n compareParameters\n \n \n Private\n hasChangedParameterNames\n \n \n Private\n hasChangedParameterRegex\n \n \n Private\n hasChangedParameterScope\n \n \n Private\n hasChangedParameterTypes\n \n \n Private\n hasChangedRequiredParameters\n \n \n Private\n hasNewRequiredParameter\n \n \n increaseVersionOfNewToolIfNecessary\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n compareParameters\n \n \n \n \n \n \n \n compareParameters(oldParams: CustomParameter[], newParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oldParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedParameterNames\n \n \n \n \n \n \n \n hasChangedParameterNames(oldParams: CustomParameter[], newParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oldParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedParameterRegex\n \n \n \n \n \n \n \n hasChangedParameterRegex(newParams: CustomParameter[], matchingParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n matchingParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedParameterScope\n \n \n \n \n \n \n \n hasChangedParameterScope(newParams: CustomParameter[], matchingParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:76\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n matchingParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedParameterTypes\n \n \n \n \n \n \n \n hasChangedParameterTypes(newParams: CustomParameter[], matchingParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n matchingParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasChangedRequiredParameters\n \n \n \n \n \n \n \n hasChangedRequiredParameters(newParams: CustomParameter[], matchingParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n matchingParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasNewRequiredParameter\n \n \n \n \n \n \n \n hasNewRequiredParameter(oldParams: CustomParameter[], newParams: CustomParameter[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oldParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n newParams\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n increaseVersionOfNewToolIfNecessary\n \n \n \n \n \n \nincreaseVersionOfNewToolIfNecessary(oldTool: ExternalTool, newTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/service/external-tool-version.service.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oldTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n newTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ExternalTool } from '../domain';\nimport { CustomParameter } from '../../common/domain';\n\n@Injectable()\nexport class ExternalToolVersionService {\n\tincreaseVersionOfNewToolIfNecessary(oldTool: ExternalTool, newTool: ExternalTool): void {\n\t\tif (!oldTool.parameters || !newTool.parameters) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.compareParameters(oldTool.parameters, newTool.parameters)) {\n\t\t\tnewTool.version += 1;\n\t\t}\n\t}\n\n\tprivate compareParameters(oldParams: CustomParameter[], newParams: CustomParameter[]): boolean {\n\t\tconst matchingParams: CustomParameter[] = oldParams.filter((oldParam) =>\n\t\t\tnewParams.some((newParam) => oldParam.name === newParam.name)\n\t\t);\n\n\t\tconst shouldIncrementVersion =\n\t\t\tthis.hasNewRequiredParameter(oldParams, newParams) ||\n\t\t\tthis.hasChangedRequiredParameters(oldParams, newParams) ||\n\t\t\tthis.hasChangedParameterNames(oldParams, newParams) ||\n\t\t\tthis.hasChangedParameterRegex(newParams, matchingParams) ||\n\t\t\tthis.hasChangedParameterTypes(newParams, matchingParams) ||\n\t\t\tthis.hasChangedParameterScope(newParams, matchingParams);\n\n\t\treturn shouldIncrementVersion;\n\t}\n\n\tprivate hasNewRequiredParameter(oldParams: CustomParameter[], newParams: CustomParameter[]): boolean {\n\t\tconst increase = newParams.some(\n\t\t\t(newParam) => !newParam.isOptional && oldParams.every((oldParam) => oldParam.name !== newParam.name)\n\t\t);\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedParameterNames(oldParams: CustomParameter[], newParams: CustomParameter[]): boolean {\n\t\tconst nonOptionalParams = oldParams.filter((parameter) => !parameter.isOptional);\n\t\tconst nonOptionalParamNames = nonOptionalParams.map((parameter) => parameter.name);\n\n\t\tconst newNonOptionalParams = newParams.filter((parameter) => !parameter.isOptional);\n\t\tconst newNonOptionalParamNames = newNonOptionalParams.map((parameter) => parameter.name);\n\n\t\tconst increase =\n\t\t\tnonOptionalParamNames.some((name) => !newNonOptionalParamNames.includes(name)) ||\n\t\t\tnewNonOptionalParamNames.some((name) => !nonOptionalParamNames.includes(name));\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedRequiredParameters(newParams: CustomParameter[], matchingParams: CustomParameter[]): boolean {\n\t\tconst increase = matchingParams.some((param) => {\n\t\t\tconst newParam = newParams.find((p) => p.name === param.name);\n\t\t\treturn newParam && param.isOptional !== newParam.isOptional;\n\t\t});\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedParameterRegex(newParams: CustomParameter[], matchingParams: CustomParameter[]): boolean {\n\t\tconst increase = matchingParams.some((param) => {\n\t\t\tconst newParam = newParams.find((p) => p.name === param.name);\n\t\t\treturn newParam && param.regex !== newParam.regex;\n\t\t});\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedParameterTypes(newParams: CustomParameter[], matchingParams: CustomParameter[]): boolean {\n\t\tconst increase = matchingParams.some((param) => {\n\t\t\tconst newParam = newParams.find((p) => p.name === param.name);\n\t\t\treturn newParam && param.type !== newParam.type;\n\t\t});\n\t\treturn increase;\n\t}\n\n\tprivate hasChangedParameterScope(newParams: CustomParameter[], matchingParams: CustomParameter[]): boolean {\n\t\tconst increase = matchingParams.some((param) => {\n\t\t\tconst newParam = newParams.find((p) => p.name === param.name);\n\t\t\treturn newParam && param.scope !== newParam.scope;\n\t\t});\n\t\treturn increase;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ExternalUserDto.html":{"url":"classes/ExternalUserDto.html","title":"class - ExternalUserDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ExternalUserDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/external-user.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n email\n \n \n externalId\n \n \n Optional\n firstName\n \n \n Optional\n lastName\n \n \n Optional\n roles\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ExternalUserDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ExternalUserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n roles\n \n \n \n \n \n \n Type : RoleName[]\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/external-user.dto.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { RoleName } from '@shared/domain';\n\nexport class ExternalUserDto {\n\texternalId: string;\n\n\tfirstName?: string;\n\n\tlastName?: string;\n\n\temail?: string;\n\n\troles?: RoleName[];\n\n\tconstructor(props: ExternalUserDto) {\n\t\tthis.externalId = props.externalId;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tthis.roles = props.roles;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FeathersAuthProvider.html":{"url":"injectables/FeathersAuthProvider.html","title":"injectable - FeathersAuthProvider","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FeathersAuthProvider\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getPermittedSchools\n \n \n Async\n getPermittedTargets\n \n \n Private\n Async\n getUser\n \n \n Async\n getUserSchoolPermissions\n \n \n Async\n getUserTargetPermissions\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(feathersServiceProvider: FeathersServiceProvider)\n \n \n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n feathersServiceProvider\n \n \n FeathersServiceProvider\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getPermittedSchools\n \n \n \n \n \n \n \n getPermittedSchools(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:55\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getPermittedTargets\n \n \n \n \n \n \n \n getPermittedTargets(userId: EntityId, targetModel: NewsTargetModel, permissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getUser\n \n \n \n \n \n \n \n getUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserSchoolPermissions\n \n \n \n \n \n \n \n getUserSchoolPermissions(userId: EntityId, schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise | never\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserTargetPermissions\n \n \n \n \n \n \n \n getUserTargetPermissions(userId: EntityId, targetModel: NewsTargetModel, targetId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-auth.provider.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n targetId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotFoundException } from '@nestjs/common';\nimport { BaseEntity, EntityId, NewsTargetModel } from '@shared/domain';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { FeathersServiceProvider } from '@shared/infra/feathers';\n\ninterface User {\n\t_id: ObjectId;\n\tschoolId: ObjectId;\n\tpermissions: string[];\n}\n\n@Injectable()\nexport class FeathersAuthProvider {\n\tconstructor(private feathersServiceProvider: FeathersServiceProvider) {}\n\n\tasync getUserSchoolPermissions(userId: EntityId, schoolId: EntityId): Promise | never {\n\t\tconst user = await this.getUser(userId);\n\t\t// test user is school member\n\t\tconst sameSchool = user.schoolId.toString() === schoolId;\n\t\tif (sameSchool && Array.isArray(user.permissions)) {\n\t\t\treturn user.permissions;\n\t\t}\n\t\treturn [];\n\t}\n\n\tasync getUserTargetPermissions(\n\t\tuserId: EntityId,\n\t\ttargetModel: NewsTargetModel,\n\t\ttargetId: EntityId\n\t): Promise {\n\t\tconst service = this.feathersServiceProvider.getService(`${targetModel}/:scopeId/userPermissions/`);\n\t\tconst targetPermissions = (await service.get(userId, {\n\t\t\troute: { scopeId: targetId },\n\t\t})) as string[];\n\t\treturn targetPermissions;\n\t}\n\n\tasync getPermittedTargets(\n\t\tuserId: EntityId,\n\t\ttargetModel: NewsTargetModel,\n\t\tpermissions: string[]\n\t): Promise {\n\t\tconst service = this.feathersServiceProvider.getService(`/users/:scopeId/${targetModel}`);\n\t\tconst targets = (await service.find({\n\t\t\troute: { scopeId: userId.toString() },\n\t\t\tquery: {\n\t\t\t\tpermissions,\n\t\t\t},\n\t\t\tpaginate: false,\n\t\t})) as BaseEntity[];\n\t\tconst targetIds = targets.map((target) => target._id.toString());\n\t\treturn targetIds;\n\t}\n\n\tasync getPermittedSchools(userId: EntityId): Promise {\n\t\tconst user = await this.getUser(userId);\n\t\treturn [user.schoolId.toString()] as EntityId[];\n\t}\n\n\tprivate async getUser(userId: EntityId): Promise {\n\t\tconst service = this.feathersServiceProvider.getService('users');\n\t\tconst user = (await service.get(userId)) as User;\n\t\tif (user == null) throw new NotFoundException();\n\t\treturn user;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FeathersAuthorizationService.html":{"url":"injectables/FeathersAuthorizationService.html","title":"injectable - FeathersAuthorizationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FeathersAuthorizationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkEntityPermissions\n \n \n Async\n getEntityPermissions\n \n \n Async\n getPermittedEntities\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(feathersAuthProvider: FeathersAuthProvider)\n \n \n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n feathersAuthProvider\n \n \n FeathersAuthProvider\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkEntityPermissions\n \n \n \n \n \n \n \n checkEntityPermissions(userId: EntityId, targetModel: NewsTargetModel, targetId: EntityId, permissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts:32\n \n \n\n\n \n \n Ensure that a user has sufficient permissions for a specific entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n targetId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getEntityPermissions\n \n \n \n \n \n \n \n getEntityPermissions(userId: EntityId, targetModel: NewsTargetModel, targetId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts:16\n \n \n\n\n \n \n Get all permissions a user has for a specific entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n targetId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n The list of entity permissions for the user\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n getPermittedEntities\n \n \n \n \n \n \n \n getPermittedEntities(userId: EntityId, targetModel: NewsTargetModel, permissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/feathers/feathers-authorization.service.ts:54\n \n \n\n\n \n \n Get all entities for which a user has specific permissions\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModel\n \n NewsTargetModel\n \n\n \n No\n \n\n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n The list of ids of all entities that satisfy the provided permissions for the user\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { EntityId, NewsTargetModel } from '@shared/domain';\nimport { FeathersAuthProvider } from './feathers-auth.provider';\n\n@Injectable()\nexport class FeathersAuthorizationService {\n\tconstructor(private feathersAuthProvider: FeathersAuthProvider) {}\n\n\t/**\n\t * Get all permissions a user has for a specific entity\n\t * @param userId\n\t * @param targetModel\n\t * @param targetId\n\t * @returns The list of entity permissions for the user\n\t */\n\tasync getEntityPermissions(userId: EntityId, targetModel: NewsTargetModel, targetId: EntityId): Promise {\n\t\tconst permissions =\n\t\t\ttargetModel === NewsTargetModel.School\n\t\t\t\t? await this.feathersAuthProvider.getUserSchoolPermissions(userId, targetId)\n\t\t\t\t: await this.feathersAuthProvider.getUserTargetPermissions(userId, targetModel, targetId);\n\t\treturn permissions;\n\t}\n\n\t/**\n\t * Ensure that a user has sufficient permissions for a specific entity\n\t * @param userId\n\t * @param targetModel\n\t * @param targetId\n\t * @param permissions\n\t * @throws UnauthorizedException if the permissions are not satisfied\n\t */\n\tasync checkEntityPermissions(\n\t\tuserId: EntityId,\n\t\ttargetModel: NewsTargetModel,\n\t\ttargetId: EntityId,\n\t\tpermissions: string[]\n\t): Promise {\n\t\tif (!Array.isArray(permissions) || permissions.length === 0)\n\t\t\tthrow new UnauthorizedException('missing at least one permission to be checked');\n\t\tconst entityPermissions = await this.getEntityPermissions(userId, targetModel, targetId);\n\t\tconst hasPermissions = permissions.every((p) => entityPermissions.includes(p));\n\t\tif (!hasPermissions) {\n\t\t\tthrow new UnauthorizedException('Insufficient permissions');\n\t\t}\n\t}\n\n\t/**\n\t * Get all entities for which a user has specific permissions\n\t * @param userId\n\t * @param targetModel\n\t * @param permissions\n\t * @returns The list of ids of all entities that satisfy the provided permissions for the user\n\t */\n\tasync getPermittedEntities(\n\t\tuserId: EntityId,\n\t\ttargetModel: NewsTargetModel,\n\t\tpermissions: string[]\n\t): Promise {\n\t\tconst entitiyIds =\n\t\t\ttargetModel === NewsTargetModel.School\n\t\t\t\t? await this.feathersAuthProvider.getPermittedSchools(userId)\n\t\t\t\t: await this.feathersAuthProvider.getPermittedTargets(userId, targetModel, permissions);\n\n\t\treturn entitiyIds;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FeathersError.html":{"url":"interfaces/FeathersError.html","title":"interface - FeathersError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FeathersError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/interface/feathers-error.interface.ts\n \n\n\n\n \n Extends\n \n \n Error\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n className\n \n \n \n \n code\n \n \n \n \n type\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n className\n \n \n \n \n \n \n \n \n className: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n code\n \n \n \n \n \n \n \n \n code: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface FeathersError extends Error {\n\tcode: number;\n\tclassName: string;\n\ttype: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FeathersModule.html":{"url":"modules/FeathersModule.html","title":"module - FeathersModule","body":"\n \n\n\n\n\n Modules\n FeathersModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FeathersModule\n\n\n\ncluster_FeathersModule_exports\n\n\n\ncluster_FeathersModule_providers\n\n\n\n\nFeathersServiceProvider \n\nFeathersServiceProvider \n\n\n\nFeathersModule\n\nFeathersModule\n\nFeathersServiceProvider -->\n\nFeathersModule->FeathersServiceProvider \n\n\n\n\n\nFeathersServiceProvider\n\nFeathersServiceProvider\n\nFeathersModule -->\n\nFeathersServiceProvider->FeathersModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/feathers/feathers.module.ts\n \n\n\n\n \n Description\n \n \n This Module gives access to legacy feathers services. It is request based injected.\nIntroduce strong typing immediately when using this modules service.\n\n \n\n\n \n \n \n Providers\n \n \n FeathersServiceProvider\n \n \n \n \n Exports\n \n \n FeathersServiceProvider\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { FeathersServiceProvider } from './feathers-service.provider';\n\n/**\n * This Module gives access to legacy feathers services. It is request based injected.\n * Introduce strong typing immediately when using this modules service.\n */\n@Module({\n\tproviders: [FeathersServiceProvider],\n\texports: [FeathersServiceProvider],\n})\nexport class FeathersModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FeathersService.html":{"url":"interfaces/FeathersService.html","title":"interface - FeathersService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FeathersService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/feathers/feathers-service.provider.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n find\n \n \n \n \n get\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \n \n \n \n \n \ncreate(data?: FeathersServiceParams, params?: FeathersServiceParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n FeathersServiceParams\n \n\n \n Yes\n \n\n\n \n \n params\n \n FeathersServiceParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n find\n \n \n \n \n \n \n Access legacy eathers service find method\n \n \n \n \nfind(params?: FeathersServiceParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n FeathersServiceParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n get\n \n \n \n \n \n \n Access legacy eathers service get method\n \n \n \n \nget(id: string, params?: FeathersServiceParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n params\n \n FeathersServiceParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Application } from '@feathersjs/express';\nimport { ImATeapotException, Inject, Injectable, Scope } from '@nestjs/common';\nimport { REQUEST } from '@nestjs/core';\nimport { Request } from 'express';\n\nexport interface FeathersService {\n\t/**\n\t *\n\t * @param id\n\t * @param params\n\t * @deprecated Access legacy eathers service get method\n\t */\n\tget(id: string, params?: FeathersServiceParams): Promise;\n\t/**\n\t *\n\t * @param params\n\t * @deprecated Access legacy eathers service find method\n\t */\n\tfind(params?: FeathersServiceParams): Promise;\n\t/**\n\t *\n\t * @deprecated\n\t */\n\tcreate(data?: FeathersServiceParams, params?: FeathersServiceParams): Promise;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FeathersServiceParams = Record;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FeathersServiceResponse = Record | any[];\n\n/**\n * This Service gives access to legacy feathers services. It is request based injected.\n * IMPORTANT: Introduce strong typing immediately when using this modules service.\n */\n@Injectable({ scope: Scope.REQUEST })\nexport class FeathersServiceProvider {\n\tconstructor(@Inject(REQUEST) private request: Request) {}\n\n\tgetService(path: string): FeathersService {\n\t\tconst feathersApp = this.request.app.get('feathersApp') as Application;\n\t\tif (feathersApp == null) {\n\t\t\t// missing a feathers instance defined in module definition\n\t\t\t// see main.ts how it might work\n\t\t\t// sample: nestExpress.set('feathersApp', feathersExpress);\n\t\t\tthrow new ImATeapotException('this action requires a feathers instance available');\n\t\t}\n\t\tconst service = feathersApp.service(path) as FeathersService;\n\t\treturn service;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FeathersServiceProvider.html":{"url":"injectables/FeathersServiceProvider.html","title":"injectable - FeathersServiceProvider","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FeathersServiceProvider\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/feathers/feathers-service.provider.ts\n \n\n\n \n Description\n \n \n This Service gives access to legacy feathers services. It is request based injected.\nIMPORTANT: Introduce strong typing immediately when using this modules service.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getService\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(request: Request)\n \n \n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:38\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n \n Request\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getService\n \n \n \n \n \n \ngetService(path: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/feathers/feathers-service.provider.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FeathersService\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Application } from '@feathersjs/express';\nimport { ImATeapotException, Inject, Injectable, Scope } from '@nestjs/common';\nimport { REQUEST } from '@nestjs/core';\nimport { Request } from 'express';\n\nexport interface FeathersService {\n\t/**\n\t *\n\t * @param id\n\t * @param params\n\t * @deprecated Access legacy eathers service get method\n\t */\n\tget(id: string, params?: FeathersServiceParams): Promise;\n\t/**\n\t *\n\t * @param params\n\t * @deprecated Access legacy eathers service find method\n\t */\n\tfind(params?: FeathersServiceParams): Promise;\n\t/**\n\t *\n\t * @deprecated\n\t */\n\tcreate(data?: FeathersServiceParams, params?: FeathersServiceParams): Promise;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FeathersServiceParams = Record;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type FeathersServiceResponse = Record | any[];\n\n/**\n * This Service gives access to legacy feathers services. It is request based injected.\n * IMPORTANT: Introduce strong typing immediately when using this modules service.\n */\n@Injectable({ scope: Scope.REQUEST })\nexport class FeathersServiceProvider {\n\tconstructor(@Inject(REQUEST) private request: Request) {}\n\n\tgetService(path: string): FeathersService {\n\t\tconst feathersApp = this.request.app.get('feathersApp') as Application;\n\t\tif (feathersApp == null) {\n\t\t\t// missing a feathers instance defined in module definition\n\t\t\t// see main.ts how it might work\n\t\t\t// sample: nestExpress.set('feathersApp', feathersExpress);\n\t\t\tthrow new ImATeapotException('this action requires a feathers instance available');\n\t\t}\n\t\tconst service = feathersApp.service(path) as FeathersService;\n\t\treturn service;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/FederalState.html":{"url":"entities/FederalState.html","title":"entity - FederalState","body":"\n \n\n\n\n\n\n\n\n Entities\n FederalState\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/federal-state.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n abbreviation\n \n \n \n Optional\n counties\n \n \n \n logoUrl\n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n abbreviation\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n counties\n \n \n \n \n \n \n Type : County[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/federal-state.entity.ts:31\n \n \n\n\n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IFederalStateProperties {\n\tname: string;\n\tabbreviation: string;\n\tlogoUrl: string;\n\tcounties?: County[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n@Embeddable()\nexport class County {\n\tconstructor(county: County) {\n\t\tthis.name = county.name;\n\t\tthis.countyId = county.countyId;\n\t\tthis.antaresKey = county.antaresKey;\n\t}\n\n\tname: string;\n\n\tcountyId: number;\n\n\tantaresKey: string;\n}\n\n@Entity({ tableName: 'federalstates' })\nexport class FederalState extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\tabbreviation: string;\n\n\t@Property()\n\tlogoUrl: string;\n\n\t@Embedded(() => County, { array: true, nullable: true })\n\tcounties?: County[];\n\n\tconstructor(props: IFederalStateProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.abbreviation = props.abbreviation;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.updatedAt = props.updatedAt;\n\t\tthis.createdAt = props.createdAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FederalStateRepo.html":{"url":"injectables/FederalStateRepo.html","title":"injectable - FederalStateRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FederalStateRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/federalstate/federal-state.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n findByName\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n findByName\n \n \n \n \n \n \nfindByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/federalstate/federal-state.repo.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/federalstate/federal-state.repo.ts:8\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { FederalState } from '@shared/domain';\nimport { EntityName } from '@mikro-orm/core';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class FederalStateRepo extends BaseRepo {\n\tget entityName(): EntityName {\n\t\treturn FederalState;\n\t}\n\n\tfindByName(name: string): Promise {\n\t\treturn this._em.findOneOrFail(FederalState, { name });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FederalStateService.html":{"url":"injectables/FederalStateService.html","title":"injectable - FederalStateService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FederalStateService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/service/federal-state.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findFederalStateByName\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(federalStateRepo: FederalStateRepo)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/service/federal-state.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n federalStateRepo\n \n \n FederalStateRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findFederalStateByName\n \n \n \n \n \n \n \n findFederalStateByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/federal-state.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { FederalStateRepo } from '@shared/repo';\nimport { FederalState } from '@shared/domain';\n\n@Injectable()\nexport class FederalStateService {\n\tconstructor(private readonly federalStateRepo: FederalStateRepo) {}\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tasync findFederalStateByName(name: string): Promise {\n\t\tconst federalState: FederalState = await this.federalStateRepo.findByName(name);\n\n\t\treturn federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/File.html":{"url":"interfaces/File.html","title":"interface - File","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n File\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/interface/index.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n data: Readable\n\n \n \n\n\n \n \n Type : Readable\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n \n \n mimeType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\n\nexport interface S3Config {\n\tconnectionName: string;\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\nexport interface GetFile {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n}\n\nexport interface CopyFiles {\n\tsourcePath: string;\n\ttargetPath: string;\n}\n\nexport interface File {\n\tdata: Readable;\n\tname: string;\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileContentBody.html":{"url":"classes/FileContentBody.html","title":"class - FileContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n caption\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileDto.html":{"url":"classes/FileDto.html","title":"class - FileDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/dto/file.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n data\n \n \n mimeType\n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(file: FileDto)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/dto/file.dto.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n file\n \n \n FileDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : Readable\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/dto/file.dto.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/dto/file.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/dto/file.dto.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Readable } from 'stream';\n\nexport class FileDto {\n\tconstructor(file: FileDto) {\n\t\tthis.name = file.name;\n\t\tthis.data = file.data;\n\t\tthis.mimeType = file.mimeType;\n\t}\n\n\tname: string;\n\n\tdata: Readable;\n\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileDto-1.html":{"url":"classes/FileDto-1.html","title":"class - FileDto-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/dto/file.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n name\n \n \n parentId\n \n \n parentType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: IFileDomainObjectProps)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n IFileDomainObjectProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : FileRecordParentType\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/dto/file.dto.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { IFileDomainObjectProps } from '../interfaces';\n\nexport class FileDto {\n\tid: EntityId;\n\n\tname: string;\n\n\tparentType: FileRecordParentType;\n\n\tparentId: EntityId;\n\n\tconstructor(props: IFileDomainObjectProps) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t\tthis.parentType = props.parentType;\n\t\tthis.parentId = props.parentId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileDtoBuilder.html":{"url":"classes/FileDtoBuilder.html","title":"class - FileDtoBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileDtoBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/file-dto.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n Static\n buildFromAxiosResponse\n \n \n Static\n buildFromRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(name: string, data: Readable, mimeType: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-dto.builder.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n data\n \n Readable\n \n\n \n No\n \n\n\n \n \n mimeType\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildFromAxiosResponse\n \n \n \n \n \n \n \n buildFromAxiosResponse(name: string, response: AxiosResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-dto.builder.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n response\n \n AxiosResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildFromRequest\n \n \n \n \n \n \n \n buildFromRequest(fileInfo: FileInfo, data: Readable)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-dto.builder.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileInfo\n \n FileInfo\n \n\n \n No\n \n\n\n \n \n data\n \n Readable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { AxiosResponse } from 'axios';\nimport { FileInfo } from 'busboy';\nimport { Readable } from 'stream';\nimport { FileDto } from '../dto/file.dto';\n\nexport class FileDtoBuilder {\n\tpublic static build(name: string, data: Readable, mimeType: string): FileDto {\n\t\tconst file = new FileDto({ name, data, mimeType });\n\n\t\treturn file;\n\t}\n\n\tpublic static buildFromRequest(fileInfo: FileInfo, data: Readable): FileDto {\n\t\tconst file = FileDtoBuilder.build(fileInfo.filename, data, fileInfo.mimeType);\n\n\t\treturn file;\n\t}\n\n\tpublic static buildFromAxiosResponse(name: string, response: AxiosResponse): FileDto {\n\t\tconst mimeType = response.headers['Content-Type']?.toString() || 'application/octet-stream';\n\t\tconst file = FileDtoBuilder.build(name, response.data, mimeType);\n\n\t\treturn file;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElement.html":{"url":"classes/FileElement.html","title":"class - FileElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/file-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n caption\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:17\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:21\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild()\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:13\n\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n caption\n \n \n\n \n \n getcaption()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/file-element.do.ts:5\n \n \n\n \n \n setcaption(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/file-element.do.ts:9\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class FileElement extends BoardComposite {\n\tget caption(): string {\n\t\treturn this.props.caption;\n\t}\n\n\tset caption(value: string) {\n\t\tthis.props.caption = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitFileElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitFileElementAsync(this);\n\t}\n}\n\nexport interface FileElementProps extends BoardCompositeProps {\n\tcaption: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElementContent.html":{"url":"classes/FileElementContent.html","title":"class - FileElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElementContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/file-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n caption\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: FileElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n FileElementContent\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class FileElementContent {\n\tconstructor({ caption }: FileElementContent) {\n\t\tthis.caption = caption;\n\t}\n\n\t@ApiProperty()\n\tcaption: string;\n}\n\nexport class FileElementResponse {\n\tconstructor({ id, content, timestamps, type }: FileElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.FILE;\n\n\t@ApiProperty()\n\tcontent: FileElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElementContentBody.html":{"url":"classes/FileElementContentBody.html","title":"class - FileElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElementContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n \n Extends\n \n \n ElementContentBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : FileContentBody\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.FILE\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from ElementContentBody\n\n \n \n \n \n Defined in ElementContentBody:24\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/FileElementNode.html":{"url":"entities/FileElementNode.html","title":"entity - FileElementNode","body":"\n \n\n\n\n\n\n\n\n Entities\n FileElementNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/file-element-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n caption\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/file-element-node.entity.ts:9\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.FILE_ELEMENT })\nexport class FileElementNode extends BoardNode {\n\t@Property()\n\tcaption: string;\n\n\tconstructor(props: FileElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.FILE_ELEMENT;\n\t\tthis.caption = props.caption;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildFileElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface FileElementNodeProps extends BoardNodeProps {\n\tcaption: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FileElementNodeProps.html":{"url":"interfaces/FileElementNodeProps.html","title":"interface - FileElementNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FileElementNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/file-element-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n caption\n \n \n \n \n \n \n \n \n caption: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.FILE_ELEMENT })\nexport class FileElementNode extends BoardNode {\n\t@Property()\n\tcaption: string;\n\n\tconstructor(props: FileElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.FILE_ELEMENT;\n\t\tthis.caption = props.caption;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildFileElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface FileElementNodeProps extends BoardNodeProps {\n\tcaption: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FileElementProps.html":{"url":"interfaces/FileElementProps.html","title":"interface - FileElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FileElementProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/file-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n caption\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n caption\n \n \n \n \n \n \n \n \n caption: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class FileElement extends BoardComposite {\n\tget caption(): string {\n\t\treturn this.props.caption;\n\t}\n\n\tset caption(value: string) {\n\t\tthis.props.caption = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitFileElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitFileElementAsync(this);\n\t}\n}\n\nexport interface FileElementProps extends BoardCompositeProps {\n\tcaption: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElementResponse.html":{"url":"classes/FileElementResponse.html","title":"class - FileElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/file-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n id\n \n \n \n timestamps\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: FileElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n FileElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : FileElementContent\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.FILE\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ContentElementType, enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/file-element.response.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class FileElementContent {\n\tconstructor({ caption }: FileElementContent) {\n\t\tthis.caption = caption;\n\t}\n\n\t@ApiProperty()\n\tcaption: string;\n}\n\nexport class FileElementResponse {\n\tconstructor({ id, content, timestamps, type }: FileElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.FILE;\n\n\t@ApiProperty()\n\tcontent: FileElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileElementResponseMapper.html":{"url":"classes/FileElementResponseMapper.html","title":"class - FileElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileElementResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts\n \n\n\n\n\n \n Implements\n \n \n BaseResponseMapper\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n canMap\n \n \n Static\n getInstance\n \n \n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n \n \n Type : FileElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts:6\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n \n \ncanMap(element: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n getInstance\n \n \n \n \n \n \n \n getInstance()\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Returns : FileElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/file-element-response.mapper.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, FileElement } from '@shared/domain';\nimport { FileElementContent, FileElementResponse, TimestampsResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class FileElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: FileElementResponseMapper;\n\n\tpublic static getInstance(): FileElementResponseMapper {\n\t\tif (!FileElementResponseMapper.instance) {\n\t\t\tFileElementResponseMapper.instance = new FileElementResponseMapper();\n\t\t}\n\n\t\treturn FileElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: FileElement): FileElementResponse {\n\t\tconst result = new FileElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.FILE,\n\t\t\tcontent: new FileElementContent({ caption: element.caption }),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: FileElement): boolean {\n\t\treturn element instanceof FileElement;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/FileEntity.html":{"url":"entities/FileEntity.html","title":"entity - FileEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n FileEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n _creatorId\n \n \n \n Optional\n _lockId\n \n \n \n \n _ownerId\n \n \n \n \n Optional\n _parentId\n \n \n \n Optional\n bucket\n \n \n \n deleted\n \n \n \n Optional\n deletedAt\n \n \n \n isDirectory\n \n \n \n name\n \n \n \n permissions\n \n \n \n refOwnerModel\n \n \n \n securityCheck\n \n \n \n \n shareTokens\n \n \n \n Optional\n size\n \n \n \n Optional\n storageFileName\n \n \n \n Optional\n storageProvider\n \n \n \n Optional\n thumbnail\n \n \n \n Optional\n thumbnailRequestToken\n \n \n \n Optional\n type\n \n \n \n Optional\n versionKey\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n _creatorId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'creator'})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:99\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n _lockId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'lockId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:109\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n _ownerId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'owner', nullable: false})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:88\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n _parentId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'parent', nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:80\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n bucket\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n deleted\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n deletedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n isDirectory\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : FilePermissionEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:106\n \n \n\n\n \n \n \n \n \n \n \n \n \n refOwnerModel\n \n \n \n \n \n \n Type : FileOwnerModel\n\n \n \n \n \n Decorators : \n \n \n @Enum({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:95\n \n \n\n\n \n \n \n \n \n \n \n \n \n securityCheck\n \n \n \n \n \n \n Type : FileSecurityCheckEntity\n\n \n \n \n \n Default value : new FileSecurityCheckEntity({})\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {object: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n shareTokens\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:76\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n size\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n storageFileName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n storageProvider\n \n \n \n \n \n \n Type : StorageProviderEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'storageProviderId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n thumbnail\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n thumbnailRequestToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : uuid()\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n versionKey\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: '__v', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file.entity.ts:116\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { v4 as uuid } from 'uuid';\nimport { EntityId, StorageProviderEntity } from '@shared/domain';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { FileOwnerModel } from '../domain';\nimport { FileSecurityCheckEntity } from './file-security-check.entity';\nimport { FilePermissionEntity } from './file-permission.entity';\n\nexport interface FileEntityProps {\n\tcreatedAt?: Date;\n\tupdatedAt?: Date;\n\tdeletedAt?: Date;\n\tdeleted?: boolean;\n\tisDirectory?: boolean;\n\tname: string;\n\tsize?: number;\n\ttype?: string;\n\tstorageFileName?: string;\n\tbucket?: string;\n\tstorageProvider?: StorageProviderEntity;\n\tthumbnail?: string;\n\tthumbnailRequestToken?: string;\n\tsecurityCheck?: FileSecurityCheckEntity;\n\tshareTokens?: string[];\n\tparentId?: EntityId;\n\townerId: EntityId;\n\trefOwnerModel: FileOwnerModel;\n\tcreatorId: EntityId;\n\tpermissions: FilePermissionEntity[];\n\tlockId?: EntityId;\n\tversionKey?: number;\n}\n\n@Entity({ collection: 'files' })\n@Index({ options: { 'permissions.refId': 1 } })\nexport class FileEntity extends BaseEntityWithTimestamps {\n\t@Property({ nullable: true })\n\tdeletedAt?: Date;\n\n\t@Property()\n\tdeleted = false;\n\n\t@Property()\n\tisDirectory = false;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tsize?: number; // not for directories\n\n\t@Property({ nullable: true })\n\ttype?: string;\n\n\t@Property({ nullable: true })\n\tstorageFileName?: string; // not for directories\n\n\t@Property({ nullable: true })\n\tbucket?: string; // not for directories\n\n\t@ManyToOne(() => StorageProviderEntity, { fieldName: 'storageProviderId', nullable: true })\n\tstorageProvider?: StorageProviderEntity; // not for directories\n\n\t@Property({ nullable: true })\n\tthumbnail?: string;\n\n\t@Property({ nullable: true })\n\tthumbnailRequestToken?: string = uuid();\n\n\t@Embedded(() => FileSecurityCheckEntity, { object: true, nullable: false })\n\tsecurityCheck: FileSecurityCheckEntity = new FileSecurityCheckEntity({});\n\n\t@Property({ nullable: true })\n\t@Index()\n\tshareTokens: string[] = [];\n\n\t@Property({ fieldName: 'parent', nullable: true })\n\t@Index()\n\t_parentId?: ObjectId;\n\n\tget parentId(): EntityId | undefined {\n\t\treturn this._parentId?.toHexString();\n\t}\n\n\t@Property({ fieldName: 'owner', nullable: false })\n\t@Index()\n\t_ownerId: ObjectId;\n\n\tget ownerId(): EntityId {\n\t\treturn this._ownerId.toHexString();\n\t}\n\n\t@Enum({ nullable: false })\n\trefOwnerModel: FileOwnerModel;\n\n\t@Property({ fieldName: 'creator' })\n\t@Index()\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Embedded(() => FilePermissionEntity, { array: true, nullable: false })\n\tpermissions: FilePermissionEntity[];\n\n\t@Property({ fieldName: 'lockId', nullable: true })\n\t_lockId?: ObjectId;\n\n\tget lockId(): EntityId | undefined {\n\t\treturn this._lockId?.toHexString();\n\t}\n\n\t@Property({ fieldName: '__v', nullable: true })\n\tversionKey?: number; // mongoose model version key\n\n\tprivate validate(props: FileEntityProps) {\n\t\tif (props.isDirectory) return;\n\n\t\tif (!props.size || !props.storageFileName || !props.bucket || !props.storageProvider) {\n\t\t\tthrow new Error(\n\t\t\t\t'files that are not directories always need a size, a storage file name, a bucket, and a storage provider.'\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic removePermissionsByRefId(refId: EntityId): void {\n\t\tconst refObjectId = new ObjectId(refId);\n\n\t\tthis.permissions = this.permissions.filter((permission) => !permission.refId.equals(refObjectId));\n\t}\n\n\tpublic markForDeletion(): void {\n\t\tthis.deletedAt = new Date();\n\t\tthis.deleted = true;\n\t}\n\n\tpublic isMarkedForDeletion(): boolean {\n\t\treturn this.deleted && this.deletedAt !== undefined && !Number.isNaN(this.deletedAt.getTime());\n\t}\n\n\tconstructor(props: FileEntityProps) {\n\t\tsuper();\n\n\t\tthis.validate(props);\n\n\t\tif (props.createdAt !== undefined) {\n\t\t\tthis.createdAt = props.createdAt;\n\t\t}\n\n\t\tif (props.updatedAt !== undefined) {\n\t\t\tthis.updatedAt = props.updatedAt;\n\t\t}\n\n\t\tthis.deletedAt = props.deletedAt;\n\n\t\tif (props.deleted !== undefined) {\n\t\t\tthis.deleted = props.deleted;\n\t\t}\n\n\t\tif (props.isDirectory !== undefined) {\n\t\t\tthis.isDirectory = props.isDirectory;\n\t\t}\n\n\t\tthis.name = props.name;\n\t\tthis.size = props.size;\n\t\tthis.type = props.type;\n\t\tthis.storageFileName = props.storageFileName;\n\t\tthis.bucket = props.bucket;\n\t\tthis.storageProvider = props.storageProvider;\n\t\tthis.thumbnail = props.thumbnail;\n\n\t\tif (props.thumbnailRequestToken !== undefined) {\n\t\t\tthis.thumbnailRequestToken = props.thumbnailRequestToken;\n\t\t}\n\n\t\tif (props.securityCheck !== undefined) {\n\t\t\tthis.securityCheck = props.securityCheck;\n\t\t}\n\n\t\tif (props.shareTokens !== undefined) {\n\t\t\tthis.shareTokens = props.shareTokens;\n\t\t}\n\n\t\tif (props.parentId !== undefined) {\n\t\t\tthis._parentId = new ObjectId(props.parentId);\n\t\t}\n\n\t\tthis._ownerId = new ObjectId(props.ownerId);\n\t\tthis.refOwnerModel = props.refOwnerModel;\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis.permissions = props.permissions;\n\n\t\tif (props.lockId !== undefined) {\n\t\t\tthis._lockId = new ObjectId(props.lockId);\n\t\t}\n\n\t\tif (props.versionKey !== undefined) {\n\t\t\tthis.versionKey = props.versionKey;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FileEntityProps.html":{"url":"interfaces/FileEntityProps.html","title":"interface - FileEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FileEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n bucket\n \n \n \n Optional\n \n createdAt\n \n \n \n \n creatorId\n \n \n \n Optional\n \n deleted\n \n \n \n Optional\n \n deletedAt\n \n \n \n Optional\n \n isDirectory\n \n \n \n Optional\n \n lockId\n \n \n \n \n name\n \n \n \n \n ownerId\n \n \n \n Optional\n \n parentId\n \n \n \n \n permissions\n \n \n \n \n refOwnerModel\n \n \n \n Optional\n \n securityCheck\n \n \n \n Optional\n \n shareTokens\n \n \n \n Optional\n \n size\n \n \n \n Optional\n \n storageFileName\n \n \n \n Optional\n \n storageProvider\n \n \n \n Optional\n \n thumbnail\n \n \n \n Optional\n \n thumbnailRequestToken\n \n \n \n Optional\n \n type\n \n \n \n Optional\n \n updatedAt\n \n \n \n Optional\n \n versionKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bucket\n \n \n \n \n \n \n \n \n bucket: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n creatorId\n \n \n \n \n \n \n \n \n creatorId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n deleted\n \n \n \n \n \n \n \n \n deleted: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n deletedAt\n \n \n \n \n \n \n \n \n deletedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n isDirectory\n \n \n \n \n \n \n \n \n isDirectory: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lockId\n \n \n \n \n \n \n \n \n lockId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ownerId\n \n \n \n \n \n \n \n \n ownerId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n \n \n permissions: FilePermissionEntity[]\n\n \n \n\n\n \n \n Type : FilePermissionEntity[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n refOwnerModel\n \n \n \n \n \n \n \n \n refOwnerModel: FileOwnerModel\n\n \n \n\n\n \n \n Type : FileOwnerModel\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n securityCheck\n \n \n \n \n \n \n \n \n securityCheck: FileSecurityCheckEntity\n\n \n \n\n\n \n \n Type : FileSecurityCheckEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n shareTokens\n \n \n \n \n \n \n \n \n shareTokens: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n \n \n size: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n storageFileName\n \n \n \n \n \n \n \n \n storageFileName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n storageProvider\n \n \n \n \n \n \n \n \n storageProvider: StorageProviderEntity\n\n \n \n\n\n \n \n Type : StorageProviderEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n thumbnail\n \n \n \n \n \n \n \n \n thumbnail: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n thumbnailRequestToken\n \n \n \n \n \n \n \n \n thumbnailRequestToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n versionKey\n \n \n \n \n \n \n \n \n versionKey: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { v4 as uuid } from 'uuid';\nimport { EntityId, StorageProviderEntity } from '@shared/domain';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { FileOwnerModel } from '../domain';\nimport { FileSecurityCheckEntity } from './file-security-check.entity';\nimport { FilePermissionEntity } from './file-permission.entity';\n\nexport interface FileEntityProps {\n\tcreatedAt?: Date;\n\tupdatedAt?: Date;\n\tdeletedAt?: Date;\n\tdeleted?: boolean;\n\tisDirectory?: boolean;\n\tname: string;\n\tsize?: number;\n\ttype?: string;\n\tstorageFileName?: string;\n\tbucket?: string;\n\tstorageProvider?: StorageProviderEntity;\n\tthumbnail?: string;\n\tthumbnailRequestToken?: string;\n\tsecurityCheck?: FileSecurityCheckEntity;\n\tshareTokens?: string[];\n\tparentId?: EntityId;\n\townerId: EntityId;\n\trefOwnerModel: FileOwnerModel;\n\tcreatorId: EntityId;\n\tpermissions: FilePermissionEntity[];\n\tlockId?: EntityId;\n\tversionKey?: number;\n}\n\n@Entity({ collection: 'files' })\n@Index({ options: { 'permissions.refId': 1 } })\nexport class FileEntity extends BaseEntityWithTimestamps {\n\t@Property({ nullable: true })\n\tdeletedAt?: Date;\n\n\t@Property()\n\tdeleted = false;\n\n\t@Property()\n\tisDirectory = false;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tsize?: number; // not for directories\n\n\t@Property({ nullable: true })\n\ttype?: string;\n\n\t@Property({ nullable: true })\n\tstorageFileName?: string; // not for directories\n\n\t@Property({ nullable: true })\n\tbucket?: string; // not for directories\n\n\t@ManyToOne(() => StorageProviderEntity, { fieldName: 'storageProviderId', nullable: true })\n\tstorageProvider?: StorageProviderEntity; // not for directories\n\n\t@Property({ nullable: true })\n\tthumbnail?: string;\n\n\t@Property({ nullable: true })\n\tthumbnailRequestToken?: string = uuid();\n\n\t@Embedded(() => FileSecurityCheckEntity, { object: true, nullable: false })\n\tsecurityCheck: FileSecurityCheckEntity = new FileSecurityCheckEntity({});\n\n\t@Property({ nullable: true })\n\t@Index()\n\tshareTokens: string[] = [];\n\n\t@Property({ fieldName: 'parent', nullable: true })\n\t@Index()\n\t_parentId?: ObjectId;\n\n\tget parentId(): EntityId | undefined {\n\t\treturn this._parentId?.toHexString();\n\t}\n\n\t@Property({ fieldName: 'owner', nullable: false })\n\t@Index()\n\t_ownerId: ObjectId;\n\n\tget ownerId(): EntityId {\n\t\treturn this._ownerId.toHexString();\n\t}\n\n\t@Enum({ nullable: false })\n\trefOwnerModel: FileOwnerModel;\n\n\t@Property({ fieldName: 'creator' })\n\t@Index()\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Embedded(() => FilePermissionEntity, { array: true, nullable: false })\n\tpermissions: FilePermissionEntity[];\n\n\t@Property({ fieldName: 'lockId', nullable: true })\n\t_lockId?: ObjectId;\n\n\tget lockId(): EntityId | undefined {\n\t\treturn this._lockId?.toHexString();\n\t}\n\n\t@Property({ fieldName: '__v', nullable: true })\n\tversionKey?: number; // mongoose model version key\n\n\tprivate validate(props: FileEntityProps) {\n\t\tif (props.isDirectory) return;\n\n\t\tif (!props.size || !props.storageFileName || !props.bucket || !props.storageProvider) {\n\t\t\tthrow new Error(\n\t\t\t\t'files that are not directories always need a size, a storage file name, a bucket, and a storage provider.'\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic removePermissionsByRefId(refId: EntityId): void {\n\t\tconst refObjectId = new ObjectId(refId);\n\n\t\tthis.permissions = this.permissions.filter((permission) => !permission.refId.equals(refObjectId));\n\t}\n\n\tpublic markForDeletion(): void {\n\t\tthis.deletedAt = new Date();\n\t\tthis.deleted = true;\n\t}\n\n\tpublic isMarkedForDeletion(): boolean {\n\t\treturn this.deleted && this.deletedAt !== undefined && !Number.isNaN(this.deletedAt.getTime());\n\t}\n\n\tconstructor(props: FileEntityProps) {\n\t\tsuper();\n\n\t\tthis.validate(props);\n\n\t\tif (props.createdAt !== undefined) {\n\t\t\tthis.createdAt = props.createdAt;\n\t\t}\n\n\t\tif (props.updatedAt !== undefined) {\n\t\t\tthis.updatedAt = props.updatedAt;\n\t\t}\n\n\t\tthis.deletedAt = props.deletedAt;\n\n\t\tif (props.deleted !== undefined) {\n\t\t\tthis.deleted = props.deleted;\n\t\t}\n\n\t\tif (props.isDirectory !== undefined) {\n\t\t\tthis.isDirectory = props.isDirectory;\n\t\t}\n\n\t\tthis.name = props.name;\n\t\tthis.size = props.size;\n\t\tthis.type = props.type;\n\t\tthis.storageFileName = props.storageFileName;\n\t\tthis.bucket = props.bucket;\n\t\tthis.storageProvider = props.storageProvider;\n\t\tthis.thumbnail = props.thumbnail;\n\n\t\tif (props.thumbnailRequestToken !== undefined) {\n\t\t\tthis.thumbnailRequestToken = props.thumbnailRequestToken;\n\t\t}\n\n\t\tif (props.securityCheck !== undefined) {\n\t\t\tthis.securityCheck = props.securityCheck;\n\t\t}\n\n\t\tif (props.shareTokens !== undefined) {\n\t\t\tthis.shareTokens = props.shareTokens;\n\t\t}\n\n\t\tif (props.parentId !== undefined) {\n\t\t\tthis._parentId = new ObjectId(props.parentId);\n\t\t}\n\n\t\tthis._ownerId = new ObjectId(props.ownerId);\n\t\tthis.refOwnerModel = props.refOwnerModel;\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis.permissions = props.permissions;\n\n\t\tif (props.lockId !== undefined) {\n\t\t\tthis._lockId = new ObjectId(props.lockId);\n\t\t}\n\n\t\tif (props.versionKey !== undefined) {\n\t\t\tthis.versionKey = props.versionKey;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileParamBuilder.html":{"url":"classes/FileParamBuilder.html","title":"class - FileParamBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileParamBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/mapper/files-storage-param.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(schoolId: EntityId, parent: EntitiesWithFiles)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-param.builder.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parent\n \n EntitiesWithFiles\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IFileRequestInfo\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { EntitiesWithFiles, IFileRequestInfo } from '../interfaces';\nimport { FilesStorageClientMapper } from './files-storage-client.mapper';\n\nexport class FileParamBuilder {\n\tstatic build(schoolId: EntityId, parent: EntitiesWithFiles): IFileRequestInfo {\n\t\tconst parentType = FilesStorageClientMapper.mapEntityToParentType(parent);\n\t\tconst fileRequestInfo = {\n\t\t\tparentType,\n\t\t\tschoolId,\n\t\t\tparentId: parent.id,\n\t\t};\n\n\t\treturn fileRequestInfo;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileParams.html":{"url":"classes/FileParams.html","title":"class - FileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n file\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n file\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string', format: 'binary'})@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:41\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilePermissionEntity.html":{"url":"classes/FilePermissionEntity.html","title":"class - FilePermissionEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilePermissionEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file-permission.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n create\n \n \n \n delete\n \n \n \n read\n \n \n \n refId\n \n \n \n refPermModel\n \n \n \n write\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: FilePermissionEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:33\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n FilePermissionEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n delete\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n read\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n refId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n refPermModel\n \n \n \n \n \n \n Type : FilePermissionReferenceModel\n\n \n \n \n \n Decorators : \n \n \n @Enum({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n write\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-permission.entity.ts:24\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { FilePermissionReferenceModel } from '../domain';\n\nexport interface FilePermissionEntityProps {\n\trefId: EntityId;\n\trefPermModel: FilePermissionReferenceModel;\n\twrite?: boolean;\n\tread?: boolean;\n\tcreate?: boolean;\n\tdelete?: boolean;\n}\n\n@Embeddable()\nexport class FilePermissionEntity {\n\t@Property({ nullable: false })\n\trefId: ObjectId;\n\n\t@Enum({ nullable: false })\n\trefPermModel: FilePermissionReferenceModel;\n\n\t@Property()\n\twrite = true;\n\n\t@Property()\n\tread = true;\n\n\t@Property()\n\tcreate = true;\n\n\t@Property()\n\tdelete = true;\n\n\tconstructor(props: FilePermissionEntityProps) {\n\t\tthis.refId = new ObjectId(props.refId);\n\t\tthis.refPermModel = props.refPermModel;\n\n\t\tif (props.write !== undefined) {\n\t\t\tthis.write = props.write;\n\t\t}\n\n\t\tif (props.read !== undefined) {\n\t\t\tthis.read = props.read;\n\t\t}\n\n\t\tif (props.create !== undefined) {\n\t\t\tthis.create = props.create;\n\t\t}\n\n\t\tif (props.delete !== undefined) {\n\t\t\tthis.delete = props.delete;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FilePermissionEntityProps.html":{"url":"interfaces/FilePermissionEntityProps.html","title":"interface - FilePermissionEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FilePermissionEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file-permission.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n create\n \n \n \n Optional\n \n delete\n \n \n \n Optional\n \n read\n \n \n \n \n refId\n \n \n \n \n refPermModel\n \n \n \n Optional\n \n write\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n create\n \n \n \n \n \n \n \n \n create: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n delete\n \n \n \n \n \n \n \n \n delete: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n read\n \n \n \n \n \n \n \n \n read: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n refId\n \n \n \n \n \n \n \n \n refId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n refPermModel\n \n \n \n \n \n \n \n \n refPermModel: FilePermissionReferenceModel\n\n \n \n\n\n \n \n Type : FilePermissionReferenceModel\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n write\n \n \n \n \n \n \n \n \n write: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { FilePermissionReferenceModel } from '../domain';\n\nexport interface FilePermissionEntityProps {\n\trefId: EntityId;\n\trefPermModel: FilePermissionReferenceModel;\n\twrite?: boolean;\n\tread?: boolean;\n\tcreate?: boolean;\n\tdelete?: boolean;\n}\n\n@Embeddable()\nexport class FilePermissionEntity {\n\t@Property({ nullable: false })\n\trefId: ObjectId;\n\n\t@Enum({ nullable: false })\n\trefPermModel: FilePermissionReferenceModel;\n\n\t@Property()\n\twrite = true;\n\n\t@Property()\n\tread = true;\n\n\t@Property()\n\tcreate = true;\n\n\t@Property()\n\tdelete = true;\n\n\tconstructor(props: FilePermissionEntityProps) {\n\t\tthis.refId = new ObjectId(props.refId);\n\t\tthis.refPermModel = props.refPermModel;\n\n\t\tif (props.write !== undefined) {\n\t\t\tthis.write = props.write;\n\t\t}\n\n\t\tif (props.read !== undefined) {\n\t\t\tthis.read = props.read;\n\t\t}\n\n\t\tif (props.create !== undefined) {\n\t\t\tthis.create = props.create;\n\t\t}\n\n\t\tif (props.delete !== undefined) {\n\t\t\tthis.delete = props.delete;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/FileRecord.html":{"url":"entities/FileRecord.html","title":"entity - FileRecord","body":"\n \n\n\n\n\n\n\n\n Entities\n FileRecord\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n \n Description\n \n \n Note: The file record entity will not manage any entity relations by itself.\nThat's why we do not map any relations in the entity class\nand instead just use the plain object ids.\n\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _creatorId\n \n \n \n Optional\n _isCopyFrom\n \n \n \n \n _parentId\n \n \n \n _schoolId\n \n \n \n \n Optional\n deletedSince\n \n \n \n mimeType\n \n \n \n name\n \n \n \n \n parentType\n \n \n \n securityCheck\n \n \n \n size\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n _creatorId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'creator'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:130\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n _isCopyFrom\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'isCopyFrom', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:144\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n _parentId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Index()@Property({fieldName: 'parent'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:123\n \n \n\n\n \n \n \n \n \n \n \n \n \n _schoolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'school'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:137\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n deletedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Index({options: undefined})@Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:103\n \n \n\n\n \n \n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:112\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:109\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : FileRecordParentType\n\n \n \n \n \n Decorators : \n \n \n @Index()@Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:119\n \n \n\n\n \n \n \n \n \n \n \n \n \n securityCheck\n \n \n \n \n \n \n Type : FileRecordSecurityCheck\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {object: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:115\n \n \n\n\n \n \n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:106\n \n \n\n\n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordFactory.html":{"url":"classes/FileRecordFactory.html","title":"class - FileRecordFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/filerecord.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n markedForDelete\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n markedForDelete\n \n \n \n \n \n \nmarkedForDelete()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/filerecord.factory.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { FileRecord, FileRecordSecurityCheck, IFileRecordProperties } from '@src/modules/files-storage/entity';\nimport { ObjectId } from 'bson';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\n\nconst yesterday = new Date(Date.now() - 86400000);\n\nclass FileRecordFactory extends BaseFactory {\n\tmarkedForDelete(): this {\n\t\tconst params: DeepPartial = { deletedSince: yesterday };\n\t\treturn this.params(params);\n\t}\n}\n\nexport const fileRecordFactory = FileRecordFactory.define(FileRecord, ({ sequence }) => {\n\treturn {\n\t\tsize: Math.round(Math.random() * 100000),\n\t\tname: `file-record #${sequence}`,\n\t\tmimeType: 'application/octet-stream',\n\t\tsecurityCheck: new FileRecordSecurityCheck({}),\n\t\tparentType: FileRecordParentType.Course,\n\t\tparentId: new ObjectId().toHexString(),\n\t\tcreatorId: new ObjectId().toHexString(),\n\t\tschoolId: new ObjectId().toHexString(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordListResponse.html":{"url":"classes/FileRecordListResponse.html","title":"class - FileRecordListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:56\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n FileRecordResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : FileRecordResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:63\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { FileRecord, FileRecordParentType, PreviewStatus, ScanStatus } from '../../entity';\nimport { API_VERSION_PATH } from '../../files-storage.const';\n\nexport class FileRecordResponse {\n\tconstructor(fileRecord: FileRecord) {\n\t\tthis.id = fileRecord.id;\n\t\tthis.name = fileRecord.name;\n\t\tthis.url = `${API_VERSION_PATH}/file/download/${fileRecord.id}/${encodeURIComponent(fileRecord.name)}`;\n\t\tthis.size = fileRecord.size;\n\t\tthis.securityCheckStatus = fileRecord.securityCheck.status;\n\t\tthis.parentId = fileRecord.parentId;\n\t\tthis.creatorId = fileRecord.creatorId;\n\t\tthis.mimeType = fileRecord.mimeType;\n\t\tthis.parentType = fileRecord.parentType;\n\t\tthis.deletedSince = fileRecord.deletedSince;\n\t\tthis.previewStatus = fileRecord.getPreviewStatus();\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiProperty()\n\tparentId: string;\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty({ enum: ScanStatus, enumName: 'FileRecordScanStatus' })\n\tsecurityCheckStatus: ScanStatus;\n\n\t@ApiProperty()\n\tsize: number;\n\n\t@ApiProperty()\n\tcreatorId: string;\n\n\t@ApiProperty()\n\tmimeType: string;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\tparentType: FileRecordParentType;\n\n\t@ApiProperty({ enum: PreviewStatus, enumName: 'PreviewStatus' })\n\tpreviewStatus: PreviewStatus;\n\n\t@ApiPropertyOptional()\n\tdeletedSince?: Date;\n}\n\nexport class FileRecordListResponse extends PaginationResponse {\n\tconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [FileRecordResponse] })\n\tdata: FileRecordResponse[];\n}\n\nexport class CopyFileResponse {\n\tconstructor(data: CopyFileResponse) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n\n\t@ApiPropertyOptional()\n\tid?: string;\n\n\t@ApiProperty()\n\tsourceId: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n}\n\nexport class CopyFileListResponse extends PaginationResponse {\n\tconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CopyFileResponse] })\n\tdata: CopyFileResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordMapper.html":{"url":"classes/FileRecordMapper.html","title":"class - FileRecordMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/file-record.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapScanResultParamsToDto\n \n \n Static\n mapToFileRecordListResponse\n \n \n Static\n mapToFileRecordResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapScanResultParamsToDto\n \n \n \n \n \n \n \n mapScanResultParamsToDto(scanResultParams: ScanResultParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-record.mapper.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scanResultParams\n \n ScanResultParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ScanResultDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToFileRecordListResponse\n \n \n \n \n \n \n \n mapToFileRecordListResponse(fileRecords: FileRecord[], total: number, skip?: number, limit?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-record.mapper.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecords\n \n FileRecord[]\n \n\n \n No\n \n\n\n \n \n total\n \n number\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n Yes\n \n\n\n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToFileRecordResponse\n \n \n \n \n \n \n \n mapToFileRecordResponse(fileRecord: FileRecord)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-record.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FileRecordListResponse, FileRecordResponse, ScanResultDto, ScanResultParams } from '../controller/dto';\nimport { FileRecord, ScanStatus } from '../entity';\n\nexport class FileRecordMapper {\n\tstatic mapToFileRecordResponse(fileRecord: FileRecord): FileRecordResponse {\n\t\tconst fileRecordResponse = new FileRecordResponse(fileRecord);\n\n\t\treturn fileRecordResponse;\n\t}\n\n\tstatic mapToFileRecordListResponse(\n\t\tfileRecords: FileRecord[],\n\t\ttotal: number,\n\t\tskip?: number,\n\t\tlimit?: number\n\t): FileRecordListResponse {\n\t\tconst responseFileRecords = fileRecords.map((fileRecord) => FileRecordMapper.mapToFileRecordResponse(fileRecord));\n\t\tconst response = new FileRecordListResponse(responseFileRecords, total, skip, limit);\n\n\t\treturn response;\n\t}\n\n\tstatic mapScanResultParamsToDto(scanResultParams: ScanResultParams): ScanResultDto {\n\t\tconst scanResult = new ScanResultDto({\n\t\t\tstatus: ScanStatus.VERIFIED,\n\t\t\treason: 'Clean',\n\t\t});\n\n\t\tif (scanResultParams.virus_detected) {\n\t\t\tscanResult.status = ScanStatus.BLOCKED;\n\t\t\tscanResult.reason = scanResultParams.virus_signature ?? 'Virus detected';\n\t\t} else if (scanResultParams.error) {\n\t\t\tscanResult.status = ScanStatus.ERROR;\n\t\t\tscanResult.reason = scanResultParams.error;\n\t\t} else if (scanResultParams.virus_detected === undefined || scanResultParams.error === '') {\n\t\t\tscanResult.status = ScanStatus.ERROR;\n\t\t\tscanResult.reason = 'No scan result';\n\t\t}\n\n\t\treturn scanResult;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordParams.html":{"url":"classes/FileRecordParams.html","title":"class - FileRecordParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : FileRecordParentType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: FileRecordParentType, enumName: 'FileRecordParentType'})@IsEnum(FileRecordParentType)\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FileRecordRepo.html":{"url":"injectables/FileRecordRepo.html","title":"injectable - FileRecordRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FileRecordRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/repo/filerecord.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n findAndCount\n \n \n Async\n findByParentId\n \n \n Async\n findBySchoolIdAndParentId\n \n \n Async\n findBySchoolIdAndParentIdAndMarkedForDelete\n \n \n Async\n findBySecurityCheckRequestToken\n \n \n Async\n findOneById\n \n \n Async\n findOneByIdMarkedForDelete\n \n \n Private\n Async\n findOneOrFail\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n findAndCount\n \n \n \n \n \n \n \n findAndCount(scope: FileRecordScope, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scope\n \n FileRecordScope\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByParentId\n \n \n \n \n \n \n \n findByParentId(parentId: EntityId, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolIdAndParentId\n \n \n \n \n \n \n \n findBySchoolIdAndParentId(schoolId: EntityId, parentId: EntityId, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolIdAndParentIdAndMarkedForDelete\n \n \n \n \n \n \n \n findBySchoolIdAndParentIdAndMarkedForDelete(schoolId: EntityId, parentId: EntityId, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySecurityCheckRequestToken\n \n \n \n \n \n \n \n findBySecurityCheckRequestToken(token: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOneById\n \n \n \n \n \n \n \n findOneById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOneByIdMarkedForDelete\n \n \n \n \n \n \n \n findOneByIdMarkedForDelete(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findOneOrFail\n \n \n \n \n \n \n \n findOneOrFail(scope: FileRecordScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scope\n \n FileRecordScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, IFindOptions, SortOrder } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo';\nimport { FileRecord } from '../entity';\nimport { FileRecordScope } from './filerecord-scope';\n\n@Injectable()\nexport class FileRecordRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn FileRecord;\n\t}\n\n\tasync findOneById(id: EntityId): Promise {\n\t\tconst scope = new FileRecordScope().byFileRecordId(id).byMarkedForDelete(false);\n\t\tconst fileRecord = await this.findOneOrFail(scope);\n\n\t\treturn fileRecord;\n\t}\n\n\tasync findOneByIdMarkedForDelete(id: EntityId): Promise {\n\t\tconst scope = new FileRecordScope().byFileRecordId(id).byMarkedForDelete(true);\n\t\tconst fileRecord = await this.findOneOrFail(scope);\n\n\t\treturn fileRecord;\n\t}\n\n\tasync findByParentId(parentId: EntityId, options?: IFindOptions): Promise> {\n\t\tconst scope = new FileRecordScope().byParentId(parentId).byMarkedForDelete(false);\n\t\tconst result = await this.findAndCount(scope, options);\n\n\t\treturn result;\n\t}\n\n\tasync findBySchoolIdAndParentId(\n\t\tschoolId: EntityId,\n\t\tparentId: EntityId,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new FileRecordScope().bySchoolId(schoolId).byParentId(parentId).byMarkedForDelete(false);\n\t\tconst result = await this.findAndCount(scope, options);\n\n\t\treturn result;\n\t}\n\n\tasync findBySchoolIdAndParentIdAndMarkedForDelete(\n\t\tschoolId: EntityId,\n\t\tparentId: EntityId,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new FileRecordScope().bySchoolId(schoolId).byParentId(parentId).byMarkedForDelete(true);\n\t\tconst result = await this.findAndCount(scope, options);\n\n\t\treturn result;\n\t}\n\n\tasync findBySecurityCheckRequestToken(token: string): Promise {\n\t\t// Must also find expires in future. Please do not add .byExpires().\n\t\tconst scope = new FileRecordScope().bySecurityCheckRequestToken(token);\n\n\t\tconst fileRecord = await this.findOneOrFail(scope);\n\n\t\treturn fileRecord;\n\t}\n\n\tprivate async findAndCount(\n\t\tscope: FileRecordScope,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst { pagination } = options || {};\n\t\tconst order = { createdAt: SortOrder.desc, id: SortOrder.asc };\n\n\t\tconst [fileRecords, count] = await this._em.findAndCount(FileRecord, scope.query, {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order,\n\t\t});\n\n\t\treturn [fileRecords, count];\n\t}\n\n\tprivate async findOneOrFail(scope: FileRecordScope): Promise {\n\t\tconst fileRecord = await this._em.findOneOrFail(FileRecord, scope.query);\n\n\t\treturn fileRecord;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordResponse.html":{"url":"classes/FileRecordResponse.html","title":"class - FileRecordResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n creatorId\n \n \n \n Optional\n deletedSince\n \n \n \n id\n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n parentId\n \n \n \n parentType\n \n \n \n previewStatus\n \n \n \n securityCheckStatus\n \n \n \n size\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(fileRecord: FileRecord)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n \n FileRecord\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n creatorId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n deletedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : FileRecordParentType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: FileRecordParentType, enumName: 'FileRecordParentType'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n previewStatus\n \n \n \n \n \n \n Type : PreviewStatus\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: PreviewStatus, enumName: 'PreviewStatus'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n securityCheckStatus\n \n \n \n \n \n \n Type : ScanStatus\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ScanStatus, enumName: 'FileRecordScanStatus'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.response.ts:32\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { FileRecord, FileRecordParentType, PreviewStatus, ScanStatus } from '../../entity';\nimport { API_VERSION_PATH } from '../../files-storage.const';\n\nexport class FileRecordResponse {\n\tconstructor(fileRecord: FileRecord) {\n\t\tthis.id = fileRecord.id;\n\t\tthis.name = fileRecord.name;\n\t\tthis.url = `${API_VERSION_PATH}/file/download/${fileRecord.id}/${encodeURIComponent(fileRecord.name)}`;\n\t\tthis.size = fileRecord.size;\n\t\tthis.securityCheckStatus = fileRecord.securityCheck.status;\n\t\tthis.parentId = fileRecord.parentId;\n\t\tthis.creatorId = fileRecord.creatorId;\n\t\tthis.mimeType = fileRecord.mimeType;\n\t\tthis.parentType = fileRecord.parentType;\n\t\tthis.deletedSince = fileRecord.deletedSince;\n\t\tthis.previewStatus = fileRecord.getPreviewStatus();\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiProperty()\n\tparentId: string;\n\n\t@ApiProperty()\n\turl: string;\n\n\t@ApiProperty({ enum: ScanStatus, enumName: 'FileRecordScanStatus' })\n\tsecurityCheckStatus: ScanStatus;\n\n\t@ApiProperty()\n\tsize: number;\n\n\t@ApiProperty()\n\tcreatorId: string;\n\n\t@ApiProperty()\n\tmimeType: string;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\tparentType: FileRecordParentType;\n\n\t@ApiProperty({ enum: PreviewStatus, enumName: 'PreviewStatus' })\n\tpreviewStatus: PreviewStatus;\n\n\t@ApiPropertyOptional()\n\tdeletedSince?: Date;\n}\n\nexport class FileRecordListResponse extends PaginationResponse {\n\tconstructor(data: FileRecordResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [FileRecordResponse] })\n\tdata: FileRecordResponse[];\n}\n\nexport class CopyFileResponse {\n\tconstructor(data: CopyFileResponse) {\n\t\tthis.id = data.id;\n\t\tthis.sourceId = data.sourceId;\n\t\tthis.name = data.name;\n\t}\n\n\t@ApiPropertyOptional()\n\tid?: string;\n\n\t@ApiProperty()\n\tsourceId: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n}\n\nexport class CopyFileListResponse extends PaginationResponse {\n\tconstructor(data: CopyFileResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [CopyFileResponse] })\n\tdata: CopyFileResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordScope.html":{"url":"classes/FileRecordScope.html","title":"class - FileRecordScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/repo/filerecord-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byFileRecordId\n \n \n byMarkedForDelete\n \n \n byParentId\n \n \n bySchoolId\n \n \n bySecurityCheckRequestToken\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byFileRecordId\n \n \n \n \n \n \nbyFileRecordId(fileRecordId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byMarkedForDelete\n \n \n \n \n \n \nbyMarkedForDelete(isMarked)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n Default value\n \n \n \n \n isMarked\n\n \n No\n \n\n \n true\n \n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byParentId\n \n \n \n \n \n \nbyParentId(parentId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n bySchoolId\n \n \n \n \n \n \nbySchoolId(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n bySecurityCheckRequestToken\n \n \n \n \n \n \nbySecurityCheckRequestToken(token: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/repo/filerecord-scope.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { Scope } from '@shared/repo';\nimport { FileRecord } from '../entity';\n\nexport class FileRecordScope extends Scope {\n\tbyParentId(parentId: EntityId): FileRecordScope {\n\t\tthis.addQuery({ _parentId: new ObjectId(parentId) });\n\n\t\treturn this;\n\t}\n\n\tbyFileRecordId(fileRecordId: EntityId): FileRecordScope {\n\t\tthis.addQuery({ id: fileRecordId });\n\n\t\treturn this;\n\t}\n\n\tbySchoolId(schoolId: EntityId): FileRecordScope {\n\t\tthis.addQuery({ _schoolId: new ObjectId(schoolId) });\n\n\t\treturn this;\n\t}\n\n\tbySecurityCheckRequestToken(token: string): FileRecordScope {\n\t\tthis.addQuery({ securityCheck: { requestToken: token } });\n\n\t\treturn this;\n\t}\n\n\tbyMarkedForDelete(isMarked = true): FileRecordScope {\n\t\tconst query = isMarked ? { deletedSince: { $ne: null } } : { deletedSince: null };\n\t\tthis.addQuery(query);\n\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileRecordSecurityCheck.html":{"url":"classes/FileRecordSecurityCheck.html","title":"class - FileRecordSecurityCheck","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileRecordSecurityCheck\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n reason\n \n \n \n Optional\n requestToken\n \n \n \n status\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: IFileRecordSecurityCheckProperties)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:56\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n IFileRecordSecurityCheckProperties\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n \n reason\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'not yet scanned'\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n requestToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : uuid()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ScanStatus\n\n \n \n \n \n Default value : ScanStatus.PENDING\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/entity/filerecord.entity.ts:56\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileResponseBuilder.html":{"url":"classes/FileResponseBuilder.html","title":"class - FileResponseBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileResponseBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/file-response.builder.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n build\n \n \n \n \n \n \n \n build(file: GetFile, name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/file-response.builder.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n file\n \n GetFile\n \n\n \n No\n \n\n\n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GetFileResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { GetFile } from '@shared/infra/s3-client';\nimport { GetFileResponse } from '../interface';\n\nexport class FileResponseBuilder {\n\tpublic static build(file: GetFile, name: string): GetFileResponse {\n\t\tconst fileResponse = { ...file, data: file.data, name };\n\n\t\treturn fileResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileSecurityCheckEntity.html":{"url":"classes/FileSecurityCheckEntity.html","title":"class - FileSecurityCheckEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileSecurityCheckEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file-security-check.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n reason\n \n \n \n Optional\n requestToken\n \n \n \n status\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: FileSecurityCheckEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n FileSecurityCheckEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n reason\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'not yet scanned'\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n requestToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : uuid()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : FileSecurityCheckStatus\n\n \n \n \n \n Default value : FileSecurityCheckStatus.PENDING\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/files/entity/file-security-check.entity.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { v4 as uuid } from 'uuid';\nimport { FileSecurityCheckStatus } from '../domain';\n\nexport interface FileSecurityCheckEntityProps {\n\tstatus?: FileSecurityCheckStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n\n@Embeddable()\nexport class FileSecurityCheckEntity {\n\t@Enum()\n\tstatus: FileSecurityCheckStatus = FileSecurityCheckStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: FileSecurityCheckEntityProps) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/FileSecurityCheckEntityProps.html":{"url":"interfaces/FileSecurityCheckEntityProps.html","title":"interface - FileSecurityCheckEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n FileSecurityCheckEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/entity/file-security-check.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n reason\n \n \n \n Optional\n \n requestToken\n \n \n \n Optional\n \n status\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n reason\n \n \n \n \n \n \n \n \n reason: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n requestToken\n \n \n \n \n \n \n \n \n requestToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: FileSecurityCheckStatus\n\n \n \n\n\n \n \n Type : FileSecurityCheckStatus\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { v4 as uuid } from 'uuid';\nimport { FileSecurityCheckStatus } from '../domain';\n\nexport interface FileSecurityCheckEntityProps {\n\tstatus?: FileSecurityCheckStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n\n@Embeddable()\nexport class FileSecurityCheckEntity {\n\t@Enum()\n\tstatus: FileSecurityCheckStatus = FileSecurityCheckStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: FileSecurityCheckEntityProps) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/FileSecurityController.html":{"url":"controllers/FileSecurityController.html","title":"controller - FileSecurityController","body":"\n \n\n\n\n\n\n\n Controllers\n FileSecurityController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/file-security.controller.ts\n \n\n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n downloadBySecurityToken\n \n \n \n \n Async\n updateSecurityStatus\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n downloadBySecurityToken\n \n \n \n \n \n \n \n downloadBySecurityToken(token: string, req: Request)\n \n \n\n \n \n Decorators : \n \n @ApiExcludeEndpoint()@Get(FilesStorageInternalActions.downloadBySecurityToken)\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/file-security.controller.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n req\n \n Request\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSecurityStatus\n \n \n \n \n \n \n \n updateSecurityStatus(scanResultDto: ScanResultParams, token: string)\n \n \n\n \n \n Decorators : \n \n @ApiExcludeEndpoint()@Put(FilesStorageInternalActions.updateSecurityStatus)\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/file-security.controller.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scanResultDto\n \n ScanResultParams\n \n\n \n No\n \n\n\n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Put, Req, StreamableFile } from '@nestjs/common';\nimport { ApiExcludeEndpoint, ApiTags } from '@nestjs/swagger';\nimport { Request } from 'express';\nimport { FilesStorageInternalActions } from '../files-storage.const';\nimport { FilesStorageUC } from '../uc';\nimport { ScanResultParams } from './dto';\n\n@ApiTags('file-security')\n@Controller()\nexport class FileSecurityController {\n\tconstructor(private readonly filesStorageUC: FilesStorageUC) {}\n\n\t@ApiExcludeEndpoint()\n\t@Get(FilesStorageInternalActions.downloadBySecurityToken)\n\tasync downloadBySecurityToken(@Param('token') token: string, @Req() req: Request) {\n\t\tconst res = await this.filesStorageUC.downloadBySecurityToken(token);\n\t\treq.on('close', () => {\n\t\t\tres.data.destroy();\n\t\t});\n\n\t\treturn new StreamableFile(res.data, {\n\t\t\ttype: res.contentType,\n\t\t\tdisposition: `attachment;`,\n\t\t});\n\t}\n\n\t@ApiExcludeEndpoint()\n\t@Put(FilesStorageInternalActions.updateSecurityStatus)\n\tasync updateSecurityStatus(@Body() scanResultDto: ScanResultParams, @Param('token') token: string) {\n\t\tawait this.filesStorageUC.updateSecurityStatus(token, scanResultDto);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FileSystemAdapter.html":{"url":"injectables/FileSystemAdapter.html","title":"injectable - FileSystemAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FileSystemAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/file-system/file-system.adapter.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n encoding\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createDir\n \n \n Async\n createTmpDir\n \n \n joinPath\n \n \n Async\n readDir\n \n \n Async\n readFile\n \n \n Async\n removeDirRecursive\n \n \n Async\n writeFile\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n EOL\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor()\n \n \n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:12\n \n \n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createDir\n \n \n \n \n \n \n \n createDir(folderPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:26\n \n \n\n\n \n \n creates a directory if not already exists\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n folderPath\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createTmpDir\n \n \n \n \n \n \n \n createTmpDir(dirNamePrefix: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:68\n \n \n\n\n \n \n Creates a folder in systems temp path.\nThe dirNamePrefix given will be extended by six random characters.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dirNamePrefix\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n full path string to temp folder, format depends on os\n\n \n \n \n \n \n \n \n \n \n \n \n joinPath\n \n \n \n \n \n \njoinPath(...paths: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n readDir\n \n \n \n \n \n \n \n readDir(folderPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:36\n \n \n\n\n \n \n Lists filenames of given folderPath\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n folderPath\n \n string\n \n\n \n No\n \n\n\n \n path to an existing folder\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n string array of filenames\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n readFile\n \n \n \n \n \n \n \n readFile(filePath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:57\n \n \n\n\n \n \n Read file from filesystem with given encoding, defaults to utf-8\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n filePath\n \n string\n \n\n \n No\n \n\n\n \n path to existing file, format depending on os\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n file content as encoded text\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n removeDirRecursive\n \n \n \n \n \n \n \n removeDirRecursive(folderPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:78\n \n \n\n\n \n \n Removes the given folder recursively including content when not empty.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n folderPath\n \n string\n \n\n \n No\n \n\n\n \n path to an existing folder, format depending on\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n writeFile\n \n \n \n \n \n \n \n writeFile(filePath: string, text: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:48\n \n \n\n\n \n \n Write text to file, will override existing files.\nThe folder in which the file will be created must exist.\nThe path format depends on os\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n filePath\n \n string\n \n\n \n No\n \n\n\n \n path to a file\n\n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n encoding\n \n \n \n \n \n \n Type : BufferEncoding\n\n \n \n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:12\n \n \n\n\n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n EOL\n \n \n\n \n \n getEOL()\n \n \n \n \n Defined in apps/server/src/shared/infra/file-system/file-system.adapter.ts:18\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { promises as fsp, existsSync } from 'fs';\nimport os from 'os';\nimport path from 'path';\n\nimport rimraf = require('rimraf');\n\nconst { mkdir, readdir, writeFile, readFile, mkdtemp } = fsp;\n\n@Injectable()\nexport class FileSystemAdapter {\n\tprivate encoding: BufferEncoding;\n\n\tconstructor() {\n\t\tthis.encoding = 'utf-8';\n\t}\n\n\tget EOL(): string {\n\t\treturn os.EOL;\n\t}\n\n\t/**\n\t * creates a directory if not already exists\n\t * @param folderPath\n\t */\n\tasync createDir(folderPath: string): Promise {\n\t\tconst exists = existsSync(folderPath);\n\t\tif (!exists) await mkdir(folderPath);\n\t}\n\n\t/**\n\t * Lists filenames of given folderPath\n\t * @param folderPath path to an existing folder\n\t * @returns string array of filenames\n\t */\n\tasync readDir(folderPath: string): Promise {\n\t\tconst filenames = await readdir(folderPath, { encoding: this.encoding });\n\t\treturn filenames;\n\t}\n\n\t/**\n\t * Write text to file, will override existing files.\n\t * The folder in which the file will be created must exist.\n\t * The path format depends on os\n\t * @param filePath path to a file\n\t * @param text\n\t */\n\tasync writeFile(filePath: string, text: string): Promise {\n\t\tawait writeFile(filePath, text);\n\t}\n\n\t/**\n\t * Read file from filesystem with given encoding, defaults to utf-8\n\t * @param filePath path to existing file, format depending on os\n\t * @returns file content as encoded text\n\t */\n\tasync readFile(filePath: string): Promise {\n\t\tconst text = await readFile(filePath, this.encoding);\n\t\treturn text;\n\t}\n\n\t/**\n\t * Creates a folder in systems temp path.\n\t * The dirNamePrefix given will be extended by six random characters.\n\t * @param dirNamePrefix\n\t * @returns full path string to temp folder, format depends on os\n\t */\n\tasync createTmpDir(dirNamePrefix: string): Promise {\n\t\tconst dirPath = this.joinPath(os.tmpdir(), dirNamePrefix);\n\t\tconst tmpDirPath = await mkdtemp(dirPath);\n\t\treturn tmpDirPath;\n\t}\n\n\t/**\n\t * Removes the given folder recursively including content when not empty.\n\t * @param folderPath path to an existing folder, format depending on\n\t */\n\tasync removeDirRecursive(folderPath: string): Promise {\n\t\t// fs.rm changed in node 14.14, use rimraf instead\n\t\trimraf.sync(folderPath);\n\t\treturn Promise.resolve();\n\t}\n\n\tjoinPath(...paths: string[]): string {\n\t\treturn path.join(...paths);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FileSystemModule.html":{"url":"modules/FileSystemModule.html","title":"module - FileSystemModule","body":"\n \n\n\n\n\n Modules\n FileSystemModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FileSystemModule\n\n\n\ncluster_FileSystemModule_providers\n\n\n\ncluster_FileSystemModule_exports\n\n\n\n\nFileSystemAdapter \n\nFileSystemAdapter \n\n\n\nFileSystemModule\n\nFileSystemModule\n\nFileSystemAdapter -->\n\nFileSystemModule->FileSystemAdapter \n\n\n\n\n\nFileSystemAdapter\n\nFileSystemAdapter\n\nFileSystemModule -->\n\nFileSystemAdapter->FileSystemModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/file-system/file-system.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FileSystemAdapter\n \n \n \n \n Exports\n \n \n FileSystemAdapter\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { FileSystemAdapter } from './file-system.adapter';\n\n@Module({\n\tproviders: [FileSystemAdapter],\n\texports: [FileSystemAdapter],\n})\nexport class FileSystemModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FileUrlParams.html":{"url":"classes/FileUrlParams.html","title":"class - FileUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FileUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n Optional\n headers\n \n \n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string'})@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n headers\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string'})@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: 'string'})@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesModule.html":{"url":"modules/FilesModule.html","title":"module - FilesModule","body":"\n \n\n\n\n\n Modules\n FilesModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesModule\n\n\n\ncluster_FilesModule_imports\n\n\n\ncluster_FilesModule_providers\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nFilesModule\n\nFilesModule\n\nFilesModule -->\n\nLoggerModule->FilesModule\n\n\n\n\n\nDeleteFilesUc\n\nDeleteFilesUc\n\nFilesModule -->\n\nDeleteFilesUc->FilesModule\n\n\n\n\n\nFilesRepo\n\nFilesRepo\n\nFilesModule -->\n\nFilesRepo->FilesModule\n\n\n\n\n\nStorageProviderRepo\n\nStorageProviderRepo\n\nFilesModule -->\n\nStorageProviderRepo->FilesModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files/files.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n DeleteFilesUc\n \n \n FilesRepo\n \n \n StorageProviderRepo\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { StorageProviderRepo } from '@shared/repo/storageprovider';\nimport { LoggerModule } from '@src/core/logger';\nimport { DeleteFilesConsole } from './job';\nimport { DeleteFilesUc } from './uc';\nimport { FilesRepo } from './repo';\n\n@Module({\n\timports: [LoggerModule],\n\tproviders: [DeleteFilesConsole, DeleteFilesUc, FilesRepo, StorageProviderRepo],\n})\nexport class FilesModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesRepo.html":{"url":"injectables/FilesRepo.html","title":"injectable - FilesRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/repo/files.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n findByOwnerUserId\n \n \n Public\n Async\n findByPermissionRefId\n \n \n Public\n Async\n findForCleanup\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n findByOwnerUserId\n \n \n \n \n \n \n \n findByOwnerUserId(ownerUserId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ownerUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByPermissionRefId\n \n \n \n \n \n \n \n findByPermissionRefId(permissionRefId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n permissionRefId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findForCleanup\n \n \n \n \n \n \n \n findForCleanup(thresholdDate: Date, batchSize: number, offset: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n thresholdDate\n \n Date\n \n\n \n No\n \n\n\n \n \n batchSize\n \n number\n \n\n \n No\n \n\n\n \n \n offset\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/files/repo/files.repo.ts:15\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityDictionary } from '@mikro-orm/core';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { FileOwnerModel } from '../domain';\nimport { FileEntity } from '../entity';\n\n@Injectable()\nexport class FilesRepo extends BaseRepo {\n\tconstructor(protected readonly _em: EntityManager) {\n\t\tsuper(_em);\n\t}\n\n\tget entityName() {\n\t\treturn FileEntity;\n\t}\n\n\tpublic async findForCleanup(thresholdDate: Date, batchSize: number, offset: number): Promise {\n\t\tconst filter = { deletedAt: { $lte: thresholdDate } };\n\t\tconst options = {\n\t\t\torderBy: { id: 'asc' },\n\t\t\tlimit: batchSize,\n\t\t\toffset,\n\t\t\tpopulate: ['storageProvider'] as never[],\n\t\t};\n\n\t\tconst files = await this._em.find(FileEntity, filter, options);\n\n\t\treturn files as FileEntity[];\n\t}\n\n\tpublic async findByOwnerUserId(ownerUserId: EntityId): Promise {\n\t\tconst filter = {\n\t\t\towner: new ObjectId(ownerUserId),\n\t\t\trefOwnerModel: FileOwnerModel.USER,\n\t\t};\n\n\t\tconst files = await this._em.find(FileEntity, filter);\n\n\t\treturn files as FileEntity[];\n\t}\n\n\tpublic async findByPermissionRefId(permissionRefId: EntityId): Promise {\n\t\tconst pipeline = [\n\t\t\t{\n\t\t\t\t$match: {\n\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t$elemMatch: {\n\t\t\t\t\t\t\trefId: new ObjectId(permissionRefId),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\n\t\tconst rawFilesDocuments = await this._em.aggregate(FileEntity, pipeline);\n\n\t\tconst files = rawFilesDocuments.map((rawFileDocument) =>\n\t\t\tthis._em.map(FileEntity, rawFileDocument as EntityDictionary)\n\t\t);\n\n\t\treturn files;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesService.html":{"url":"injectables/FilesService.html","title":"injectable - FilesService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files/service/files.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n markFilesOwnedByUserForDeletion\n \n \n Async\n removeUserPermissionsToAnyFiles\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(repo: FilesRepo)\n \n \n \n \n Defined in apps/server/src/modules/files/service/files.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n repo\n \n \n FilesRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n markFilesOwnedByUserForDeletion\n \n \n \n \n \n \n \n markFilesOwnedByUserForDeletion(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/service/files.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeUserPermissionsToAnyFiles\n \n \n \n \n \n \n \n removeUserPermissionsToAnyFiles(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files/service/files.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { FilesRepo } from '../repo';\n\n@Injectable()\nexport class FilesService {\n\tconstructor(private readonly repo: FilesRepo) {}\n\n\tasync removeUserPermissionsToAnyFiles(userId: EntityId): Promise {\n\t\tconst entities = await this.repo.findByPermissionRefId(userId);\n\n\t\tif (entities.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tentities.forEach((entity) => entity.removePermissionsByRefId(userId));\n\n\t\tawait this.repo.save(entities);\n\n\t\treturn entities.length;\n\t}\n\n\tasync markFilesOwnedByUserForDeletion(userId: EntityId): Promise {\n\t\tconst entities = await this.repo.findByOwnerUserId(userId);\n\n\t\tif (entities.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tentities.forEach((entity) => entity.markForDeletion());\n\n\t\tawait this.repo.save(entities);\n\n\t\treturn entities.length;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageAMQPModule.html":{"url":"modules/FilesStorageAMQPModule.html","title":"module - FilesStorageAMQPModule","body":"\n \n\n\n\n\n Modules\n FilesStorageAMQPModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageAMQPModule\n\n\n\ncluster_FilesStorageAMQPModule_providers\n\n\n\ncluster_FilesStorageAMQPModule_imports\n\n\n\n\nCoreModule\n\nCoreModule\n\n\n\nFilesStorageAMQPModule\n\nFilesStorageAMQPModule\n\nFilesStorageAMQPModule -->\n\nCoreModule->FilesStorageAMQPModule\n\n\n\n\n\nFilesStorageModule\n\nFilesStorageModule\n\nFilesStorageAMQPModule -->\n\nFilesStorageModule->FilesStorageAMQPModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageAMQPModule -->\n\nLoggerModule->FilesStorageAMQPModule\n\n\n\n\n\nFilesStorageConsumer\n\nFilesStorageConsumer\n\nFilesStorageAMQPModule -->\n\nFilesStorageConsumer->FilesStorageAMQPModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage-amqp.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FilesStorageConsumer\n \n \n \n \n Imports\n \n \n CoreModule\n \n \n FilesStorageModule\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { FilesStorageConsumer } from './controller';\nimport { FilesStorageModule } from './files-storage.module';\n\n@Module({\n\timports: [FilesStorageModule, CoreModule, LoggerModule],\n\tproviders: [FilesStorageConsumer],\n})\nexport class FilesStorageAMQPModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageApiModule.html":{"url":"modules/FilesStorageApiModule.html","title":"module - FilesStorageApiModule","body":"\n \n\n\n\n\n Modules\n FilesStorageApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageApiModule\n\n\n\ncluster_FilesStorageApiModule_providers\n\n\n\ncluster_FilesStorageApiModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nFilesStorageApiModule -->\n\nAuthenticationModule->FilesStorageApiModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFilesStorageApiModule -->\n\nAuthorizationModule->FilesStorageApiModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFilesStorageApiModule -->\n\nCoreModule->FilesStorageApiModule\n\n\n\n\n\nFilesStorageModule\n\nFilesStorageModule\n\nFilesStorageApiModule -->\n\nFilesStorageModule->FilesStorageApiModule\n\n\n\n\n\nFilesStorageUC\n\nFilesStorageUC\n\nFilesStorageApiModule -->\n\nFilesStorageUC->FilesStorageApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FilesStorageUC\n \n \n \n \n Controllers\n \n \n FilesStorageController\n \n \n FileSecurityController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageModule\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { CoreModule } from '@src/core';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { FileSecurityController, FilesStorageController } from './controller';\nimport { FilesStorageModule } from './files-storage.module';\nimport { FilesStorageUC } from './uc';\n\n@Module({\n\timports: [AuthorizationModule, FilesStorageModule, AuthenticationModule, CoreModule, HttpModule],\n\tcontrollers: [FilesStorageController, FileSecurityController],\n\tproviders: [FilesStorageUC],\n})\nexport class FilesStorageApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesStorageClientAdapterService.html":{"url":"injectables/FilesStorageClientAdapterService.html","title":"injectable - FilesStorageClientAdapterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesStorageClientAdapterService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyFilesOfParent\n \n \n Async\n deleteFilesOfParent\n \n \n Async\n listFilesOfParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, fileStorageMQProducer: FilesStorageProducer)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n fileStorageMQProducer\n \n \n FilesStorageProducer\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyFilesOfParent\n \n \n \n \n \n \n \n copyFilesOfParent(param: ICopyFilesRequestInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n ICopyFilesRequestInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteFilesOfParent\n \n \n \n \n \n \n \n deleteFilesOfParent(parentId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listFilesOfParent\n \n \n \n \n \n \n \n listFilesOfParent(param: IFileRequestInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage-client.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n param\n \n IFileRequestInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { CopyFileDto, FileDto } from '../dto';\nimport { IFileRequestInfo } from '../interfaces';\nimport { ICopyFilesRequestInfo } from '../interfaces/copy-file-request-info';\nimport { FilesStorageClientMapper } from '../mapper';\nimport { FilesStorageProducer } from './files-storage.producer';\n\n@Injectable()\nexport class FilesStorageClientAdapterService {\n\tconstructor(private logger: LegacyLogger, private readonly fileStorageMQProducer: FilesStorageProducer) {\n\t\tthis.logger.setContext(FilesStorageClientAdapterService.name);\n\t}\n\n\tasync copyFilesOfParent(param: ICopyFilesRequestInfo): Promise {\n\t\tconst response = await this.fileStorageMQProducer.copyFilesOfParent(param);\n\t\tconst fileInfos = FilesStorageClientMapper.mapCopyFileListResponseToCopyFilesDto(response);\n\n\t\treturn fileInfos;\n\t}\n\n\tasync listFilesOfParent(param: IFileRequestInfo): Promise {\n\t\tconst response = await this.fileStorageMQProducer.listFilesOfParent(param);\n\n\t\tconst fileInfos = FilesStorageClientMapper.mapfileRecordListResponseToDomainFilesDto(response);\n\n\t\treturn fileInfos;\n\t}\n\n\tasync deleteFilesOfParent(parentId: EntityId): Promise {\n\t\tconst response = await this.fileStorageMQProducer.deleteFilesOfParent(parentId);\n\n\t\tconst fileInfos = FilesStorageClientMapper.mapfileRecordListResponseToDomainFilesDto(response);\n\n\t\treturn fileInfos;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilesStorageClientMapper.html":{"url":"classes/FilesStorageClientMapper.html","title":"class - FilesStorageClientMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilesStorageClientMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapCopyFileListResponseToCopyFilesDto\n \n \n Static\n mapCopyFileResponseToCopyFileDto\n \n \n Static\n mapEntityToParentType\n \n \n Static\n mapfileRecordListResponseToDomainFilesDto\n \n \n Static\n mapFileRecordResponseToFileDto\n \n \n Static\n mapStringToParentType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapCopyFileListResponseToCopyFilesDto\n \n \n \n \n \n \n \n mapCopyFileListResponseToCopyFilesDto(copyFileListResponse: ICopyFileDomainObjectProps[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n copyFileListResponse\n \n ICopyFileDomainObjectProps[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyFileDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapCopyFileResponseToCopyFileDto\n \n \n \n \n \n \n \n mapCopyFileResponseToCopyFileDto(response: ICopyFileDomainObjectProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n ICopyFileDomainObjectProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapEntityToParentType\n \n \n \n \n \n \n \n mapEntityToParentType(entity: EntitiesWithFiles)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n EntitiesWithFiles\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordParentType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapfileRecordListResponseToDomainFilesDto\n \n \n \n \n \n \n \n mapfileRecordListResponseToDomainFilesDto(fileRecordListResponse: IFileDomainObjectProps[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecordListResponse\n \n IFileDomainObjectProps[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFileRecordResponseToFileDto\n \n \n \n \n \n \n \n mapFileRecordResponseToFileDto(fileRecordResponse: IFileDomainObjectProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecordResponse\n \n IFileDomainObjectProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapStringToParentType\n \n \n \n \n \n \n \n mapStringToParentType(input: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/mapper/files-storage-client.mapper.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordParentType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LessonEntity, Submission, Task } from '@shared/domain';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\nimport { CopyFileDto, FileDto } from '../dto';\nimport { EntitiesWithFiles, ICopyFileDomainObjectProps, IFileDomainObjectProps } from '../interfaces';\n\nexport class FilesStorageClientMapper {\n\tstatic mapfileRecordListResponseToDomainFilesDto(fileRecordListResponse: IFileDomainObjectProps[]): FileDto[] {\n\t\tconst filesDto = fileRecordListResponse.map((record: IFileDomainObjectProps) => {\n\t\t\tconst fileDto = FilesStorageClientMapper.mapFileRecordResponseToFileDto(record);\n\n\t\t\treturn fileDto;\n\t\t});\n\n\t\treturn filesDto;\n\t}\n\n\tstatic mapCopyFileListResponseToCopyFilesDto(copyFileListResponse: ICopyFileDomainObjectProps[]): CopyFileDto[] {\n\t\tconst filesDto = copyFileListResponse.map((response) => {\n\t\t\tconst fileDto = FilesStorageClientMapper.mapCopyFileResponseToCopyFileDto(response);\n\n\t\t\treturn fileDto;\n\t\t});\n\n\t\treturn filesDto;\n\t}\n\n\tstatic mapFileRecordResponseToFileDto(fileRecordResponse: IFileDomainObjectProps) {\n\t\tconst parentType = FilesStorageClientMapper.mapStringToParentType(fileRecordResponse.parentType);\n\t\tconst fileDto = new FileDto({\n\t\t\tid: fileRecordResponse.id,\n\t\t\tname: fileRecordResponse.name,\n\t\t\tparentType,\n\t\t\tparentId: fileRecordResponse.parentId,\n\t\t});\n\n\t\treturn fileDto;\n\t}\n\n\tstatic mapCopyFileResponseToCopyFileDto(response: ICopyFileDomainObjectProps) {\n\t\tconst dto = new CopyFileDto({\n\t\t\tid: response.id,\n\t\t\tsourceId: response.sourceId,\n\t\t\tname: response.name,\n\t\t});\n\n\t\treturn dto;\n\t}\n\n\tstatic mapStringToParentType(input: string): FileRecordParentType {\n\t\tlet response: FileRecordParentType;\n\t\tconst allowedStrings = Object.values(FileRecordParentType);\n\n\t\tif (allowedStrings.includes(input as FileRecordParentType)) {\n\t\t\tresponse = input as FileRecordParentType;\n\t\t} else {\n\t\t\tthrow new Error(`Mapping type is not supported. ${input}`);\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tstatic mapEntityToParentType(entity: EntitiesWithFiles): FileRecordParentType {\n\t\tif (entity instanceof LessonEntity) return FileRecordParentType.Lesson;\n\n\t\tif (entity instanceof Task) return FileRecordParentType.Task;\n\n\t\tif (entity instanceof Submission) return FileRecordParentType.Submission;\n\n\t\tthrow new Error(`Mapping type is not supported.`);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageClientModule.html":{"url":"modules/FilesStorageClientModule.html","title":"module - FilesStorageClientModule","body":"\n \n\n\n\n\n Modules\n FilesStorageClientModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageClientModule\n\n\n\ncluster_FilesStorageClientModule_imports\n\n\n\ncluster_FilesStorageClientModule_exports\n\n\n\ncluster_FilesStorageClientModule_providers\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nFilesStorageClientModule -->\n\nCopyHelperModule->FilesStorageClientModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageClientModule -->\n\nLoggerModule->FilesStorageClientModule\n\n\n\n\n\nCopyFilesService \n\nCopyFilesService \n\nCopyFilesService -->\n\nFilesStorageClientModule->CopyFilesService \n\n\n\n\n\nFilesStorageClientAdapterService \n\nFilesStorageClientAdapterService \n\nFilesStorageClientAdapterService -->\n\nFilesStorageClientModule->FilesStorageClientAdapterService \n\n\n\n\n\nCopyFilesService\n\nCopyFilesService\n\nFilesStorageClientModule -->\n\nCopyFilesService->FilesStorageClientModule\n\n\n\n\n\nFilesStorageClientAdapterService\n\nFilesStorageClientAdapterService\n\nFilesStorageClientModule -->\n\nFilesStorageClientAdapterService->FilesStorageClientModule\n\n\n\n\n\nFilesStorageProducer\n\nFilesStorageProducer\n\nFilesStorageClientModule -->\n\nFilesStorageProducer->FilesStorageClientModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage-client/files-storage-client.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CopyFilesService\n \n \n FilesStorageClientAdapterService\n \n \n FilesStorageProducer\n \n \n \n \n Imports\n \n \n CopyHelperModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n CopyFilesService\n \n \n FilesStorageClientAdapterService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { CopyFilesService } from './service/copy-files.service';\nimport { FilesStorageClientAdapterService } from './service/files-storage-client.service';\nimport { FilesStorageProducer } from './service/files-storage.producer';\n\n@Module({\n\timports: [LoggerModule, CopyHelperModule],\n\tproviders: [FilesStorageClientAdapterService, CopyFilesService, FilesStorageProducer],\n\texports: [FilesStorageClientAdapterService, CopyFilesService],\n})\nexport class FilesStorageClientModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesStorageConsumer.html":{"url":"injectables/FilesStorageConsumer.html","title":"injectable - FilesStorageConsumer","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesStorageConsumer\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/files-storage.consumer.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Public\n Async\n copyFilesOfParent\n \n \n \n \n Public\n Async\n deleteFilesOfParent\n \n \n \n \n Public\n Async\n getFilesOfParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(filesStorageService: FilesStorageService, logger: LegacyLogger, orm: MikroORM)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n filesStorageService\n \n \n FilesStorageService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n orm\n \n \n MikroORM\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Public\n Async\n copyFilesOfParent\n \n \n \n \n \n \n \n copyFilesOfParent(payload: CopyFilesOfParentPayload)\n \n \n\n \n \n Decorators : \n \n @RabbitRPC({exchange: FilesStorageExchange, routingKey: undefined, queue: undefined})@UseRequestContext()\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n CopyFilesOfParentPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n deleteFilesOfParent\n \n \n \n \n \n \n \n deleteFilesOfParent(payload: EntityId)\n \n \n\n \n \n Decorators : \n \n @RabbitRPC({exchange: FilesStorageExchange, routingKey: undefined, queue: undefined})@UseRequestContext()\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getFilesOfParent\n \n \n \n \n \n \n \n getFilesOfParent(payload: FileRecordParams)\n \n \n\n \n \n Decorators : \n \n @RabbitRPC({exchange: FilesStorageExchange, routingKey: undefined, queue: undefined})@UseRequestContext()\n \n \n\n \n \n Defined in apps/server/src/modules/files-storage/controller/files-storage.consumer.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n FileRecordParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { RabbitPayload, RabbitRPC } from '@golevelup/nestjs-rabbitmq';\nimport { MikroORM, UseRequestContext } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { RpcMessage } from '@shared/infra/rabbitmq/rpc-message';\nimport { LegacyLogger } from '@src/core/logger';\nimport { FilesStorageEvents, FilesStorageExchange, ICopyFileDO, IFileDO } from '@src/shared/infra/rabbitmq';\nimport { FilesStorageMapper } from '../mapper';\nimport { FilesStorageService } from '../service/files-storage.service';\nimport { CopyFilesOfParentPayload, FileRecordParams } from './dto';\n\n@Injectable()\nexport class FilesStorageConsumer {\n\tconstructor(\n\t\tprivate readonly filesStorageService: FilesStorageService,\n\t\tprivate logger: LegacyLogger,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tprivate readonly orm: MikroORM // don't remove it, we need it for @UseRequestContext\n\t) {\n\t\tthis.logger.setContext(FilesStorageConsumer.name);\n\t}\n\n\t@RabbitRPC({\n\t\texchange: FilesStorageExchange,\n\t\troutingKey: FilesStorageEvents.COPY_FILES_OF_PARENT,\n\t\tqueue: FilesStorageEvents.COPY_FILES_OF_PARENT,\n\t})\n\t@UseRequestContext()\n\tpublic async copyFilesOfParent(\n\t\t@RabbitPayload() payload: CopyFilesOfParentPayload\n\t): Promise> {\n\t\tthis.logger.debug({ action: 'copyFilesOfParent', payload });\n\n\t\tconst { userId, source, target } = payload;\n\t\tconst [response] = await this.filesStorageService.copyFilesOfParent(userId, source, { target });\n\n\t\treturn { message: response };\n\t}\n\n\t@RabbitRPC({\n\t\texchange: FilesStorageExchange,\n\t\troutingKey: FilesStorageEvents.LIST_FILES_OF_PARENT,\n\t\tqueue: FilesStorageEvents.LIST_FILES_OF_PARENT,\n\t})\n\t@UseRequestContext()\n\tpublic async getFilesOfParent(@RabbitPayload() payload: FileRecordParams): Promise> {\n\t\tthis.logger.debug({ action: 'getFilesOfParent', payload });\n\n\t\tconst [fileRecords, total] = await this.filesStorageService.getFileRecordsOfParent(payload.parentId);\n\t\tconst response = FilesStorageMapper.mapToFileRecordListResponse(fileRecords, total);\n\n\t\treturn { message: response.data };\n\t}\n\n\t@RabbitRPC({\n\t\texchange: FilesStorageExchange,\n\t\troutingKey: FilesStorageEvents.DELETE_FILES_OF_PARENT,\n\t\tqueue: FilesStorageEvents.DELETE_FILES_OF_PARENT,\n\t})\n\t@UseRequestContext()\n\tpublic async deleteFilesOfParent(@RabbitPayload() payload: EntityId): Promise> {\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent', payload });\n\n\t\tconst [fileRecords, total] = await this.filesStorageService.deleteFilesOfParent(payload);\n\t\tconst response = FilesStorageMapper.mapToFileRecordListResponse(fileRecords, total);\n\n\t\treturn { message: response.data };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilesStorageMapper.html":{"url":"classes/FilesStorageMapper.html","title":"class - FilesStorageMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilesStorageMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFileRecordToFileRecordParams\n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n Static\n mapToFileRecordListResponse\n \n \n Static\n mapToFileRecordResponse\n \n \n Static\n mapToSingleFileParams\n \n \n Static\n mapToStreamableFile\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFileRecordToFileRecordParams\n \n \n \n \n \n \n \n mapFileRecordToFileRecordParams(fileRecord: FileRecord)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n \n \n \n mapToAllowedAuthorizationEntityType(type: FileRecordParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n FileRecordParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizableReferenceType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToFileRecordListResponse\n \n \n \n \n \n \n \n mapToFileRecordListResponse(fileRecords: FileRecord[], total: number, skip?: number, limit?: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecords\n \n FileRecord[]\n \n\n \n No\n \n\n\n \n \n total\n \n number\n \n\n \n No\n \n\n\n \n \n skip\n \n number\n \n\n \n Yes\n \n\n\n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToFileRecordResponse\n \n \n \n \n \n \n \n mapToFileRecordResponse(fileRecord: FileRecord)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecordResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToSingleFileParams\n \n \n \n \n \n \n \n mapToSingleFileParams(params: DownloadFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DownloadFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SingleFileParams\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToStreamableFile\n \n \n \n \n \n \n \n mapToStreamableFile(fileResponse: GetFileResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/mapper/files-storage.mapper.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileResponse\n \n GetFileResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : StreamableFile\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException, StreamableFile } from '@nestjs/common';\nimport { AuthorizableReferenceType } from '@src/modules/authorization';\nimport { plainToClass } from 'class-transformer';\nimport {\n\tDownloadFileParams,\n\tFileRecordListResponse,\n\tFileRecordParams,\n\tFileRecordResponse,\n\tSingleFileParams,\n} from '../controller/dto';\nimport { FileRecord, FileRecordParentType } from '../entity';\nimport { GetFileResponse } from '../interface';\n\nexport class FilesStorageMapper {\n\tstatic mapToAllowedAuthorizationEntityType(type: FileRecordParentType): AuthorizableReferenceType {\n\t\tconst types: Map = new Map();\n\t\ttypes.set(FileRecordParentType.Task, AuthorizableReferenceType.Task);\n\t\ttypes.set(FileRecordParentType.Course, AuthorizableReferenceType.Course);\n\t\ttypes.set(FileRecordParentType.User, AuthorizableReferenceType.User);\n\t\ttypes.set(FileRecordParentType.School, AuthorizableReferenceType.School);\n\t\ttypes.set(FileRecordParentType.Lesson, AuthorizableReferenceType.Lesson);\n\t\ttypes.set(FileRecordParentType.Submission, AuthorizableReferenceType.Submission);\n\t\ttypes.set(FileRecordParentType.BoardNode, AuthorizableReferenceType.BoardNode);\n\n\t\tconst res = types.get(type);\n\n\t\tif (!res) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\treturn res;\n\t}\n\n\tstatic mapToSingleFileParams(params: DownloadFileParams): SingleFileParams {\n\t\tconst singleFileParams = { fileRecordId: params.fileRecordId };\n\n\t\treturn singleFileParams;\n\t}\n\n\tstatic mapFileRecordToFileRecordParams(fileRecord: FileRecord): FileRecordParams {\n\t\tconst fileRecordParams = plainToClass(FileRecordParams, {\n\t\t\tschoolId: fileRecord.schoolId,\n\t\t\tparentId: fileRecord.parentId,\n\t\t\tparentType: fileRecord.parentType,\n\t\t});\n\n\t\treturn fileRecordParams;\n\t}\n\n\tstatic mapToFileRecordResponse(fileRecord: FileRecord): FileRecordResponse {\n\t\treturn new FileRecordResponse(fileRecord);\n\t}\n\n\tstatic mapToFileRecordListResponse(\n\t\tfileRecords: FileRecord[],\n\t\ttotal: number,\n\t\tskip?: number,\n\t\tlimit?: number\n\t): FileRecordListResponse {\n\t\tconst responseFileRecords = fileRecords.map((fileRecord) => FilesStorageMapper.mapToFileRecordResponse(fileRecord));\n\n\t\tconst response = new FileRecordListResponse(responseFileRecords, total, skip, limit);\n\t\treturn response;\n\t}\n\n\tstatic mapToStreamableFile(fileResponse: GetFileResponse): StreamableFile {\n\t\tconst streamableFile = new StreamableFile(fileResponse.data, {\n\t\t\ttype: fileResponse.contentType,\n\t\t\tdisposition: `inline; filename=\"${encodeURI(fileResponse.name)}\"`,\n\t\t\tlength: fileResponse.contentLength,\n\t\t});\n\n\t\treturn streamableFile;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageModule.html":{"url":"modules/FilesStorageModule.html","title":"module - FilesStorageModule","body":"\n \n\n\n\n\n Modules\n FilesStorageModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageModule\n\n\n\ncluster_FilesStorageModule_providers\n\n\n\ncluster_FilesStorageModule_imports\n\n\n\ncluster_FilesStorageModule_exports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFilesStorageModule\n\nFilesStorageModule\n\nFilesStorageModule -->\n\nAuthenticationModule->FilesStorageModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFilesStorageModule -->\n\nAuthorizationModule->FilesStorageModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFilesStorageModule -->\n\nCoreModule->FilesStorageModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nFilesStorageModule -->\n\nFilesStorageApiModule->FilesStorageModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageModule -->\n\nLoggerModule->FilesStorageModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nFilesStorageModule -->\n\nRabbitMQWrapperModule->FilesStorageModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nFilesStorageModule -->\n\nRabbitMQWrapperTestModule->FilesStorageModule\n\n\n\n\n\nFilesStorageService \n\nFilesStorageService \n\nFilesStorageService -->\n\nFilesStorageModule->FilesStorageService \n\n\n\n\n\nPreviewService \n\nPreviewService \n\nPreviewService -->\n\nFilesStorageModule->PreviewService \n\n\n\n\n\nFileRecordRepo\n\nFileRecordRepo\n\nFilesStorageModule -->\n\nFileRecordRepo->FilesStorageModule\n\n\n\n\n\nFilesStorageService\n\nFilesStorageService\n\nFilesStorageModule -->\n\nFilesStorageService->FilesStorageModule\n\n\n\n\n\nPreviewService\n\nPreviewService\n\nFilesStorageModule -->\n\nPreviewService->FilesStorageModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FileRecordRepo\n \n \n FilesStorageService\n \n \n PreviewService\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n Exports\n \n \n FilesStorageService\n \n \n PreviewService\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { AntivirusModule } from '@shared/infra/antivirus/antivirus.module';\nimport { RabbitMQWrapperModule } from '@shared/infra/rabbitmq/rabbitmq.module';\nimport { S3ClientModule } from '@shared/infra/s3-client';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME, createConfigModuleOptions } from '@src/config';\nimport { LoggerModule } from '@src/core/logger';\nimport { FileRecord, FileRecordSecurityCheck } from './entity';\nimport { config, s3Config } from './files-storage.config';\nimport { FileRecordRepo } from './repo';\nimport { FilesStorageService } from './service/files-storage.service';\nimport { PreviewService } from './service/preview.service';\n\nconst imports = [\n\tLoggerModule,\n\tConfigModule.forRoot(createConfigModuleOptions(config)),\n\tAntivirusModule.forRoot({\n\t\tenabled: Configuration.get('ENABLE_FILE_SECURITY_CHECK') as boolean,\n\t\tfilesServiceBaseUrl: Configuration.get('FILES_STORAGE__SERVICE_BASE_URL') as string,\n\t\texchange: Configuration.get('ANTIVIRUS_EXCHANGE') as string,\n\t\troutingKey: Configuration.get('ANTIVIRUS_ROUTING_KEY') as string,\n\t}),\n\tS3ClientModule.register([s3Config]),\n];\nconst providers = [FilesStorageService, PreviewService, FileRecordRepo];\n\nconst defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\n@Module({\n\timports: [\n\t\t...imports,\n\t\tRabbitMQWrapperModule,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\ttype: 'mongo',\n\t\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: [...ALL_ENTITIES, FileRecord, FileRecordSecurityCheck],\n\n\t\t\t// debug: true, // use it for locally debugging of querys\n\t\t}),\n\t],\n\tproviders,\n\texports: [FilesStorageService, PreviewService],\n})\nexport class FilesStorageModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FilesStorageProducer.html":{"url":"injectables/FilesStorageProducer.html","title":"injectable - FilesStorageProducer","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FilesStorageProducer\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/service/files-storage.producer.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n timeout\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkError\n \n \n Async\n copyFilesOfParent\n \n \n Private\n createRequest\n \n \n Async\n deleteFilesOfParent\n \n \n Async\n listFilesOfParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, amqpConnection: AmqpConnection, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:20\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n amqpConnection\n \n \n AmqpConnection\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkError\n \n \n \n \n \n \n \n checkError(response: RpcMessage<>)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n RpcMessage<>\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n copyFilesOfParent\n \n \n \n \n \n \n \n copyFilesOfParent(payload: ICopyFilesOfParentParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n ICopyFilesOfParentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createRequest\n \n \n \n \n \n \n \n createRequest(event: FilesStorageEvents, payload: IFileRecordParams | ICopyFilesOfParentParams | EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n event\n \n FilesStorageEvents\n \n\n \n No\n \n\n\n \n \n payload\n \n IFileRecordParams | ICopyFilesOfParentParams | EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : { exchange: any; routingKey: FilesStorageEvents; payload: any; timeout: number; }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteFilesOfParent\n \n \n \n \n \n \n \n deleteFilesOfParent(payload: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:55\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listFilesOfParent\n \n \n \n \n \n \n \n listFilesOfParent(payload: IFileRecordParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n IFileRecordParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n timeout\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 0\n \n \n \n \n Defined in apps/server/src/modules/files-storage-client/service/files-storage.producer.ts:20\n \n \n\n\n \n \n\n\n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId } from '@shared/domain';\nimport { RpcMessage } from '@shared/infra/rabbitmq/rpc-message';\nimport { LegacyLogger } from '@src/core/logger';\nimport {\n\tFilesStorageEvents,\n\tFilesStorageExchange,\n\tICopyFileDO,\n\tICopyFilesOfParentParams,\n\tIFileDO,\n\tIFileRecordParams,\n} from '@src/shared/infra/rabbitmq';\nimport { IFilesStorageClientConfig } from '../interfaces';\nimport { ErrorMapper } from '../mapper/error.mapper';\n\n@Injectable()\nexport class FilesStorageProducer {\n\tprivate readonly timeout = 0;\n\n\tconstructor(\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\tprivate readonly configService: ConfigService\n\t) {\n\t\tthis.logger.setContext(FilesStorageProducer.name);\n\t\tthis.timeout = this.configService.get('INCOMING_REQUEST_TIMEOUT_COPY_API');\n\t}\n\n\tasync copyFilesOfParent(payload: ICopyFilesOfParentParams): Promise {\n\t\tthis.logger.debug({ action: 'copyFilesOfParent:started', payload });\n\t\tconst response = await this.amqpConnection.request>(\n\t\t\tthis.createRequest(FilesStorageEvents.COPY_FILES_OF_PARENT, payload)\n\t\t);\n\n\t\tthis.logger.debug({ action: 'copyFilesOfParent:finished', payload });\n\n\t\tthis.checkError(response);\n\t\treturn response.message || [];\n\t}\n\n\tasync listFilesOfParent(payload: IFileRecordParams): Promise {\n\t\tthis.logger.debug({ action: 'listFilesOfParent:started', payload });\n\t\tconst response = await this.amqpConnection.request>(\n\t\t\tthis.createRequest(FilesStorageEvents.LIST_FILES_OF_PARENT, payload)\n\t\t);\n\n\t\tthis.logger.debug({ action: 'listFilesOfParent:finished', payload });\n\n\t\tthis.checkError(response);\n\t\treturn response.message || [];\n\t}\n\n\tasync deleteFilesOfParent(payload: EntityId): Promise {\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent:started', payload });\n\t\tconst response = await this.amqpConnection.request>(\n\t\t\tthis.createRequest(FilesStorageEvents.DELETE_FILES_OF_PARENT, payload)\n\t\t);\n\n\t\tthis.logger.debug({ action: 'deleteFilesOfParent:finished', payload });\n\n\t\tthis.checkError(response);\n\t\treturn response.message || [];\n\t}\n\n\t// need to be fixed with https://ticketsystem.dbildungscloud.de/browse/BC-2984\n\t// mapRpcErrorResponseToDomainError should also removed with this ticket\n\tprivate checkError(response: RpcMessage) {\n\t\tconst { error } = response;\n\t\tif (error) {\n\t\t\tconst domainError = ErrorMapper.mapRpcErrorResponseToDomainError(error);\n\t\t\tthrow domainError;\n\t\t}\n\t}\n\n\tprivate createRequest(event: FilesStorageEvents, payload: IFileRecordParams | ICopyFilesOfParentParams | EntityId) {\n\t\treturn {\n\t\t\texchange: FilesStorageExchange,\n\t\t\troutingKey: event,\n\t\t\tpayload,\n\t\t\ttimeout: this.timeout,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FilesStorageTestModule.html":{"url":"modules/FilesStorageTestModule.html","title":"module - FilesStorageTestModule","body":"\n \n\n\n\n\n Modules\n FilesStorageTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FilesStorageTestModule\n\n\n\ncluster_FilesStorageTestModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFilesStorageTestModule\n\nFilesStorageTestModule\n\nFilesStorageTestModule -->\n\nAuthenticationModule->FilesStorageTestModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFilesStorageTestModule -->\n\nAuthorizationModule->FilesStorageTestModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFilesStorageTestModule -->\n\nCoreModule->FilesStorageTestModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nFilesStorageTestModule -->\n\nFilesStorageApiModule->FilesStorageTestModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFilesStorageTestModule -->\n\nLoggerModule->FilesStorageTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nFilesStorageTestModule -->\n\nMongoMemoryDatabaseModule->FilesStorageTestModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nFilesStorageTestModule -->\n\nRabbitMQWrapperTestModule->FilesStorageTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/files-storage/files-storage-test.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n MongoMemoryDatabaseModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/files-storage-test.module.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { DynamicModule, Module } from '@nestjs/common';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq/rabbitmq.module';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { FileRecord } from './entity';\nimport { FilesStorageApiModule } from './files-storage-api.module';\n\nconst imports = [\n\tFilesStorageApiModule,\n\tMongoMemoryDatabaseModule.forRoot({ entities: [...ALL_ENTITIES, FileRecord] }),\n\tRabbitMQWrapperTestModule,\n\tAuthorizationModule,\n\tAuthenticationModule,\n\tCoreModule,\n\tLoggerModule,\n];\nconst controllers = [];\nconst providers = [];\n@Module({\n\timports,\n\tcontrollers,\n\tproviders,\n})\nexport class FilesStorageTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: FilesStorageTestModule,\n\t\t\timports: [...imports, MongoMemoryDatabaseModule.forRoot({ ...options })],\n\t\t\tcontrollers,\n\t\t\tproviders,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilterImportUserParams.html":{"url":"classes/FilterImportUserParams.html","title":"class - FilterImportUserParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilterImportUserParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n classes\n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n Optional\n flagged\n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Optional\n loginName\n \n \n \n \n \n \n \n Optional\n match\n \n \n \n \n \n Optional\n role\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n classes\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsNotEmpty()@ApiPropertyOptional({type: String})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:54\n \n \n\n \n \n filter available classes for contains\n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n flagged\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsBoolean()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n loginName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n match\n \n \n \n \n \n \n Type : FilterMatchType[]\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({enum: FilterMatchType, isArray: true})@IsOptional()@IsEnum(FilterMatchType, {each: true})@SingleValueToArrayTransformer()@IsArray()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n role\n \n \n \n \n \n \n Type : FilterRoleType\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(FilterRoleType)@ApiPropertyOptional({enum: FilterRoleType})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-import-user.params.ts:59\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { SingleValueToArrayTransformer } from '@shared/controller';\nimport { IsArray, IsBoolean, IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';\n\nexport enum FilterMatchType {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n\tNONE = 'none',\n}\nexport enum FilterRoleType {\n\tSTUDENT = 'student',\n\tTEACHER = 'teacher',\n\tADMIN = 'admin',\n}\n\nexport class FilterImportUserParams {\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tfirstName?: string;\n\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tlastName?: string;\n\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tloginName?: string;\n\n\t@ApiPropertyOptional({ enum: FilterMatchType, isArray: true })\n\t@IsOptional()\n\t@IsEnum(FilterMatchType, { each: true })\n\t@SingleValueToArrayTransformer()\n\t@IsArray()\n\tmatch?: FilterMatchType[];\n\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsBoolean()\n\tflagged?: boolean;\n\n\t/**\n\t * filter available classes for contains\n\t */\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiPropertyOptional({ type: String })\n\tclasses?: string;\n\n\t@IsOptional()\n\t@IsEnum(FilterRoleType)\n\t@ApiPropertyOptional({ enum: FilterRoleType })\n\trole?: FilterRoleType;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilterNewsParams.html":{"url":"classes/FilterNewsParams.html","title":"class - FilterNewsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilterNewsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/filter-news.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n targetId\n \n \n \n \n \n \n Optional\n targetModel\n \n \n \n \n \n \n Optional\n unpublished\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n targetId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()@ApiPropertyOptional({pattern: '[a-f0-9]{24}', description: 'Specific target id to which the news are related (works only together with targetModel)'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/filter-news.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n targetModel\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsEnum(NewsTargetModel)@ApiPropertyOptional({enum: NewsTargetModel, description: 'Target model to which the news are related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/filter-news.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n unpublished\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()@StringToBoolean()@ApiPropertyOptional({description: 'Flag that filters if the news should be published or not'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/filter-news.params.ts:30\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsBoolean, IsEnum, IsMongoId, IsOptional, IsString } from 'class-validator';\nimport { StringToBoolean } from '@shared/controller/transformer';\nimport { NewsTargetModel } from '@shared/domain';\n\nexport class FilterNewsParams {\n\t@IsOptional()\n\t@IsString()\n\t@IsEnum(NewsTargetModel)\n\t@ApiPropertyOptional({\n\t\tenum: NewsTargetModel,\n\t\tdescription: 'Target model to which the news are related',\n\t})\n\ttargetModel?: string;\n\n\t@IsOptional()\n\t@IsMongoId()\n\t@ApiPropertyOptional({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Specific target id to which the news are related (works only together with targetModel)',\n\t})\n\ttargetId?: string;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Flag that filters if the news should be published or not',\n\t})\n\tunpublished?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/FilterUserParams.html":{"url":"classes/FilterUserParams.html","title":"class - FilterUserParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n FilterUserParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/filter-user.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/filter-user.params.ts:12\n \n \n\n \n \n filter firstname or lastname for given value\n\n \n \n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsNotEmpty, IsOptional, IsString } from 'class-validator';\n\nexport class FilterUserParams {\n\t/**\n\t * filter firstname or lastname for given value\n\t */\n\t@ApiPropertyOptional()\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tname?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ForbiddenLoggableException.html":{"url":"classes/ForbiddenLoggableException.html","title":"class - ForbiddenLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ForbiddenLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/errors/forbidden.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n ForbiddenException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, entityName: string, context: AuthorizationContext)\n \n \n \n \n Defined in apps/server/src/modules/authorization/errors/forbidden.loggable-exception.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n entityName\n \n \n string\n \n \n \n No\n \n \n \n \n context\n \n \n AuthorizationContext\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/errors/forbidden.loggable-exception.ts:16\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ForbiddenException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Loggable } from '@src/core/logger/interfaces';\nimport { ErrorLogMessage } from '@src/core/logger/types';\nimport { AuthorizationContext } from '../types';\n\nexport class ForbiddenLoggableException extends ForbiddenException implements Loggable {\n\tconstructor(\n\t\tprivate readonly userId: EntityId,\n\t\tprivate readonly entityName: string,\n\t\tprivate readonly context: AuthorizationContext\n\t) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): ErrorLogMessage {\n\t\tconst message: ErrorLogMessage = {\n\t\t\ttype: 'FORBIDDEN_EXCEPTION',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\tentityName: this.entityName,\n\t\t\t\taction: this.context.action,\n\t\t\t\trequiredPermissions: this.context.requiredPermissions.join(','),\n\t\t\t},\n\t\t};\n\n\t\treturn message;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ForbiddenOperationError.html":{"url":"classes/ForbiddenOperationError.html","title":"class - ForbiddenOperationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ForbiddenOperationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/forbidden-operation.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message?: string, details?: Record)\n \n \n \n \n Defined in apps/server/src/shared/common/error/forbidden-operation.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n Yes\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class ForbiddenOperationError extends BusinessError {\n\tconstructor(message?: string, details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'FORBIDDEN_OPERATION',\n\t\t\t\ttitle: 'Forbidden Operation Error',\n\t\t\t\tdefaultMessage: message ?? 'A forbidden operation error occurred.',\n\t\t\t},\n\t\t\tHttpStatus.FORBIDDEN,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/FwuLearningContentsController.html":{"url":"controllers/FwuLearningContentsController.html","title":"controller - FwuLearningContentsController","body":"\n \n\n\n\n\n\n\n Controllers\n FwuLearningContentsController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/controller/fwu-learning-contents.controller.ts\n \n\n \n Prefix\n \n \n fwu\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n get\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n get\n \n \n \n \n \n \n \n get(req: Request, res: Response, params: GetFwuLearningContentParams)\n \n \n\n \n \n Decorators : \n \n @Get('*/:fwuLearningContent')\n \n \n\n \n \n Defined in apps/server/src/modules/fwu-learning-contents/controller/fwu-learning-contents.controller.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n req\n \n Request\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n params\n \n GetFwuLearningContentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport {\n\tController,\n\tGet,\n\tHttpStatus,\n\tInternalServerErrorException,\n\tParam,\n\tReq,\n\tRes,\n\tStreamableFile,\n} from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { Authenticate } from '@src/modules/authentication/decorator/auth.decorator';\nimport { Request, Response } from 'express';\nimport { FwuLearningContentsUc } from '../uc/fwu-learning-contents.uc';\nimport { GetFwuLearningContentParams } from './dto/fwu-learning-contents.params';\n\n@ApiTags('fwu')\n@Authenticate('jwt')\n@Controller('fwu')\nexport class FwuLearningContentsController {\n\tconstructor(private readonly fwuLearningContentsUc: FwuLearningContentsUc) {}\n\n\t@Get('*/:fwuLearningContent')\n\tasync get(\n\t\t@Req() req: Request,\n\t\t@Res({ passthrough: true }) res: Response,\n\t\t@Param() params: GetFwuLearningContentParams\n\t): Promise {\n\t\tif (!Configuration.get('FEATURE_FWU_CONTENT_ENABLED')) {\n\t\t\tthrow new InternalServerErrorException('Feature FWU content is not enabled.');\n\t\t}\n\t\tconst bytesRange = req.header('Range');\n\t\tconst path = `${req.params[0]}/${params.fwuLearningContent}`;\n\t\tconst response = await this.fwuLearningContentsUc.get(path, bytesRange);\n\n\t\tif (bytesRange) {\n\t\t\tres.set({\n\t\t\t\t'Accept-Ranges': 'bytes',\n\t\t\t\t'Content-Range': response.contentRange,\n\t\t\t});\n\n\t\t\tres.status(HttpStatus.PARTIAL_CONTENT);\n\t\t} else {\n\t\t\tres.status(HttpStatus.OK);\n\t\t}\n\n\t\treq.on('close', () => response.data.destroy());\n\n\t\treturn new StreamableFile(response.data, {\n\t\t\ttype: response.contentType,\n\t\t\tdisposition: `inline; filename=\"${encodeURI(params.fwuLearningContent)}\"`,\n\t\t\tlength: response.contentLength,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FwuLearningContentsModule.html":{"url":"modules/FwuLearningContentsModule.html","title":"module - FwuLearningContentsModule","body":"\n \n\n\n\n\n Modules\n FwuLearningContentsModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FwuLearningContentsModule\n\n\n\ncluster_FwuLearningContentsModule_imports\n\n\n\ncluster_FwuLearningContentsModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFwuLearningContentsModule\n\nFwuLearningContentsModule\n\nFwuLearningContentsModule -->\n\nAuthenticationModule->FwuLearningContentsModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFwuLearningContentsModule -->\n\nAuthorizationModule->FwuLearningContentsModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFwuLearningContentsModule -->\n\nCoreModule->FwuLearningContentsModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFwuLearningContentsModule -->\n\nLoggerModule->FwuLearningContentsModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nFwuLearningContentsModule -->\n\nRabbitMQWrapperModule->FwuLearningContentsModule\n\n\n\n\n\nS3ClientModule\n\nS3ClientModule\n\nFwuLearningContentsModule -->\n\nS3ClientModule->FwuLearningContentsModule\n\n\n\n\n\nFwuLearningContentsUc\n\nFwuLearningContentsUc\n\nFwuLearningContentsModule -->\n\nFwuLearningContentsUc->FwuLearningContentsModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/fwu-learning-contents.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FwuLearningContentsUc\n \n \n \n \n Controllers\n \n \n FwuLearningContentsController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperModule\n \n \n S3ClientModule\n \n \n \n \n \n\n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { HttpModule } from '@nestjs/axios';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { Account, Role, SchoolEntity, SchoolYear, System, User } from '@shared/domain';\nimport { RabbitMQWrapperModule } from '@shared/infra/rabbitmq';\nimport { S3ClientModule } from '@shared/infra/s3-client';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME, createConfigModuleOptions } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { FwuLearningContentsController } from './controller/fwu-learning-contents.controller';\nimport { config, s3Config } from './fwu-learning-contents.config';\nimport { FwuLearningContentsUc } from './uc/fwu-learning-contents.uc';\n\nconst defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\n@Module({\n\timports: [\n\t\tAuthorizationModule,\n\t\tAuthenticationModule,\n\t\tCoreModule,\n\t\tLoggerModule,\n\t\tHttpModule,\n\t\tRabbitMQWrapperModule,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\ttype: 'mongo',\n\t\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: [User, Account, Role, SchoolEntity, System, SchoolYear],\n\n\t\t\t// debug: true, // use it for locally debugging of querys\n\t\t}),\n\t\tConfigModule.forRoot(createConfigModuleOptions(config)),\n\t\tS3ClientModule.register([s3Config]),\n\t],\n\tcontrollers: [FwuLearningContentsController],\n\tproviders: [FwuLearningContentsUc],\n})\nexport class FwuLearningContentsModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/FwuLearningContentsTestModule.html":{"url":"modules/FwuLearningContentsTestModule.html","title":"module - FwuLearningContentsTestModule","body":"\n \n\n\n\n\n Modules\n FwuLearningContentsTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_FwuLearningContentsTestModule\n\n\n\ncluster_FwuLearningContentsTestModule_imports\n\n\n\ncluster_FwuLearningContentsTestModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nFwuLearningContentsTestModule\n\nFwuLearningContentsTestModule\n\nFwuLearningContentsTestModule -->\n\nAuthenticationModule->FwuLearningContentsTestModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nFwuLearningContentsTestModule -->\n\nAuthorizationModule->FwuLearningContentsTestModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nFwuLearningContentsTestModule -->\n\nCoreModule->FwuLearningContentsTestModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nFwuLearningContentsTestModule -->\n\nLoggerModule->FwuLearningContentsTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nFwuLearningContentsTestModule -->\n\nMongoMemoryDatabaseModule->FwuLearningContentsTestModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nFwuLearningContentsTestModule -->\n\nRabbitMQWrapperTestModule->FwuLearningContentsTestModule\n\n\n\n\n\nS3ClientModule\n\nS3ClientModule\n\nFwuLearningContentsTestModule -->\n\nS3ClientModule->FwuLearningContentsTestModule\n\n\n\n\n\nFwuLearningContentsUc\n\nFwuLearningContentsUc\n\nFwuLearningContentsTestModule -->\n\nFwuLearningContentsUc->FwuLearningContentsTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/fwu-learning-contents-test.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n FwuLearningContentsUc\n \n \n \n \n Controllers\n \n \n FwuLearningContentsController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n LoggerModule\n \n \n MongoMemoryDatabaseModule\n \n \n RabbitMQWrapperTestModule\n \n \n S3ClientModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/fwu-learning-contents/fwu-learning-contents-test.module.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { DynamicModule, Module } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { Account, Role, SchoolEntity, SchoolYear, System, User } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq';\nimport { S3ClientModule } from '@shared/infra/s3-client';\nimport { createConfigModuleOptions } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { FwuLearningContentsController } from './controller/fwu-learning-contents.controller';\nimport { config, s3Config } from './fwu-learning-contents.config';\nimport { FwuLearningContentsUc } from './uc/fwu-learning-contents.uc';\n\nconst imports = [\n\tMongoMemoryDatabaseModule.forRoot({ entities: [User, Account, Role, SchoolEntity, System, SchoolYear] }),\n\tAuthorizationModule,\n\tAuthenticationModule,\n\tConfigModule.forRoot(createConfigModuleOptions(config)),\n\tHttpModule,\n\tCoreModule,\n\tLoggerModule,\n\tRabbitMQWrapperTestModule,\n\tS3ClientModule.register([s3Config]),\n];\nconst controllers = [FwuLearningContentsController];\nconst providers = [FwuLearningContentsUc];\n@Module({\n\timports,\n\tcontrollers,\n\tproviders,\n})\nexport class FwuLearningContentsTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: FwuLearningContentsTestModule,\n\t\t\timports: [...imports, MongoMemoryDatabaseModule.forRoot({ ...options })],\n\t\t\tcontrollers,\n\t\t\tproviders,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/FwuLearningContentsUc.html":{"url":"injectables/FwuLearningContentsUc.html","title":"injectable - FwuLearningContentsUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n FwuLearningContentsUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/uc/fwu-learning-contents.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n get\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, storageClient: S3ClientAdapter)\n \n \n \n \n Defined in apps/server/src/modules/fwu-learning-contents/uc/fwu-learning-contents.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n storageClient\n \n \n S3ClientAdapter\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n get\n \n \n \n \n \n \n \n get(path: string, bytesRange?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/fwu-learning-contents/uc/fwu-learning-contents.uc.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n bytesRange\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable } from '@nestjs/common';\nimport { S3ClientAdapter } from '@shared/infra/s3-client';\nimport { LegacyLogger } from '@src/core/logger';\nimport { FWU_CONTENT_S3_CONNECTION } from '../fwu-learning-contents.config';\n\n@Injectable()\nexport class FwuLearningContentsUc {\n\tconstructor(\n\t\tprivate logger: LegacyLogger,\n\t\t@Inject(FWU_CONTENT_S3_CONNECTION) private readonly storageClient: S3ClientAdapter\n\t) {\n\t\tthis.logger.setContext(FwuLearningContentsUc.name);\n\t}\n\n\tasync get(path: string, bytesRange?: string) {\n\t\tconst response = await this.storageClient.get(path, bytesRange);\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GetFile.html":{"url":"interfaces/GetFile.html","title":"interface - GetFile","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GetFile\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/interface/index.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n contentLength\n \n \n \n Optional\n \n contentRange\n \n \n \n Optional\n \n contentType\n \n \n \n \n data\n \n \n \n Optional\n \n etag\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contentLength\n \n \n \n \n \n \n \n \n contentLength: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contentRange\n \n \n \n \n \n \n \n \n contentRange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contentType\n \n \n \n \n \n \n \n \n contentType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n data: Readable\n\n \n \n\n\n \n \n Type : Readable\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n etag\n \n \n \n \n \n \n \n \n etag: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\n\nexport interface S3Config {\n\tconnectionName: string;\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\nexport interface GetFile {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n}\n\nexport interface CopyFiles {\n\tsourcePath: string;\n\ttargetPath: string;\n}\n\nexport interface File {\n\tdata: Readable;\n\tname: string;\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GetFileResponse.html":{"url":"interfaces/GetFileResponse.html","title":"interface - GetFileResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GetFileResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/interface/interfaces.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n contentLength\n \n \n \n Optional\n \n contentRange\n \n \n \n Optional\n \n contentType\n \n \n \n \n data\n \n \n \n Optional\n \n etag\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contentLength\n \n \n \n \n \n \n \n \n contentLength: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contentRange\n \n \n \n \n \n \n \n \n contentRange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contentType\n \n \n \n \n \n \n \n \n contentType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n data: Readable\n\n \n \n\n\n \n \n Type : Readable\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n etag\n \n \n \n \n \n \n \n \n etag: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\nimport type { DownloadFileParams, PreviewParams } from '../controller/dto';\nimport { FileRecord } from '../entity';\n\nexport interface GetFileResponse {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n\tname: string;\n}\n\nexport interface PreviewFileParams {\n\tfileRecord: FileRecord;\n\tdownloadParams: DownloadFileParams;\n\tpreviewParams: PreviewParams;\n\thash: string;\n\tfilePath: string;\n\tbytesRange?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GetFwuLearningContentParams.html":{"url":"classes/GetFwuLearningContentParams.html","title":"class - GetFwuLearningContentParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GetFwuLearningContentParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/controller/dto/fwu-learning-contents.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n fwuLearningContent\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n fwuLearningContent\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@Matches('([A-Za-z]|[0-9])+(.html|.css|.mp4|.pdf|.doc|.png|.jpg|.gif|.min.js|.js|.ico|.txt|.min.css|.ttf|.svg|.woff|.ui.l|.mf.l)')@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/fwu-learning-contents/controller/dto/fwu-learning-contents.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsNotEmpty, IsString, Matches } from 'class-validator';\n\nexport class GetFwuLearningContentParams {\n\t@ApiProperty()\n\t@Matches(\n\t\t'([A-Za-z]|[0-9])+(.html|.css|.mp4|.pdf|.doc|.png|.jpg|.gif|.min.js|.js|.ico|.txt|.min.css|.ttf|.svg|.woff|.ui.l|.mf.l)'\n\t)\n\t@IsString()\n\t@IsNotEmpty()\n\tfwuLearningContent!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GlobalConstants.html":{"url":"interfaces/GlobalConstants.html","title":"interface - GlobalConstants","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GlobalConstants\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/config/database.config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n DB_PASSWORD\n \n \n \n \n DB_URL\n \n \n \n Optional\n \n DB_USERNAME\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n DB_PASSWORD\n \n \n \n \n \n \n \n \n DB_PASSWORD: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n DB_URL\n \n \n \n \n \n \n \n \n DB_URL: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n DB_USERNAME\n \n \n \n \n \n \n \n \n DB_USERNAME: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import globals = require('../../../../config/globals');\n\ninterface GlobalConstants {\n\tDB_URL: string;\n\tDB_PASSWORD?: string;\n\tDB_USERNAME?: string;\n}\n\nconst usedGlobals: GlobalConstants = globals;\n\n/** Database URL */\nexport const { DB_URL, DB_PASSWORD, DB_USERNAME } = usedGlobals;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GlobalErrorFilter.html":{"url":"classes/GlobalErrorFilter.html","title":"class - GlobalErrorFilter","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GlobalErrorFilter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/filter/global-error.filter.ts\n \n\n\n\n\n \n Implements\n \n \n ExceptionFilter\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n catch\n \n \n Private\n createErrorLoggable\n \n \n Private\n createErrorResponse\n \n \n Private\n createErrorResponseForBusinessError\n \n \n Private\n createErrorResponseForFeathersError\n \n \n Private\n createErrorResponseForNestHttpException\n \n \n Private\n createErrorResponseForUnknownError\n \n \n Private\n sendHttpResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: ErrorLogger)\n \n \n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n ErrorLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n catch\n \n \n \n \n \n \ncatch(error: T, host: ArgumentsHost)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n T\n \n\n \n No\n \n\n\n \n \n host\n \n ArgumentsHost\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void | RpcMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorLoggable\n \n \n \n \n \n \n \n createErrorLoggable(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Loggable\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponse\n \n \n \n \n \n \n \n createErrorResponse(error)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n error\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ErrorResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponseForBusinessError\n \n \n \n \n \n \n \n createErrorResponseForBusinessError(error: BusinessError)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n BusinessError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ErrorResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponseForFeathersError\n \n \n \n \n \n \n \n createErrorResponseForFeathersError(error: FeathersError)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n FeathersError\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponseForNestHttpException\n \n \n \n \n \n \n \n createErrorResponseForNestHttpException(exception: HttpException)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:90\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n exception\n \n HttpException\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ErrorResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createErrorResponseForUnknownError\n \n \n \n \n \n \n \n createErrorResponseForUnknownError()\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:100\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n sendHttpResponse\n \n \n \n \n \n \n \n sendHttpResponse(error: T, host: ArgumentsHost)\n \n \n\n\n \n \n Defined in apps/server/src/core/error/filter/global-error.filter.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n T\n \n\n \n No\n \n\n\n \n \n host\n \n ArgumentsHost\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ArgumentsHost, Catch, ExceptionFilter, HttpException, InternalServerErrorException } from '@nestjs/common';\nimport { ApiValidationError, BusinessError } from '@shared/common';\nimport { IError, RpcMessage } from '@shared/infra/rabbitmq/rpc-message';\nimport { ErrorLogger, Loggable } from '@src/core/logger';\nimport { LoggingUtils } from '@src/core/logger/logging.utils';\nimport { Response } from 'express';\nimport _ from 'lodash';\nimport util from 'util';\nimport { ApiValidationErrorResponse, ErrorResponse } from '../dto';\nimport { FeathersError } from '../interface';\nimport { ErrorLoggable } from '../loggable/error.loggable';\nimport { ErrorUtils } from '../utils';\n\n@Catch()\nexport class GlobalErrorFilter implements ExceptionFilter {\n\tconstructor(private readonly logger: ErrorLogger) {}\n\n\t// eslint-disable-next-line consistent-return\n\tcatch(error: T, host: ArgumentsHost): void | RpcMessage {\n\t\tconst loggable = this.createErrorLoggable(error);\n\t\tthis.logger.error(loggable);\n\n\t\tconst contextType = host.getType();\n\n\t\tif (contextType === 'http') {\n\t\t\tthis.sendHttpResponse(error, host);\n\t\t} else if (contextType === 'rmq') {\n\t\t\treturn { message: undefined, error };\n\t\t}\n\t}\n\n\tprivate createErrorLoggable(error: unknown): Loggable {\n\t\tlet loggable: Loggable;\n\n\t\tif (LoggingUtils.isInstanceOfLoggable(error)) {\n\t\t\tloggable = error;\n\t\t} else if (error instanceof Error) {\n\t\t\tloggable = new ErrorLoggable(error);\n\t\t} else {\n\t\t\tconst unknownError = new Error(util.inspect(error));\n\t\t\tloggable = new ErrorLoggable(unknownError);\n\t\t}\n\n\t\treturn loggable;\n\t}\n\n\tprivate sendHttpResponse(error: T, host: ArgumentsHost): void {\n\t\tconst errorResponse = this.createErrorResponse(error);\n\t\tconst httpArgumentHost = host.switchToHttp();\n\t\tconst response = httpArgumentHost.getResponse();\n\t\tresponse.status(errorResponse.code).json(errorResponse);\n\t}\n\n\tprivate createErrorResponse(error: unknown): ErrorResponse {\n\t\tlet response: ErrorResponse;\n\n\t\tif (ErrorUtils.isFeathersError(error)) {\n\t\t\tresponse = this.createErrorResponseForFeathersError(error);\n\t\t} else if (ErrorUtils.isBusinessError(error)) {\n\t\t\tresponse = this.createErrorResponseForBusinessError(error);\n\t\t} else if (ErrorUtils.isNestHttpException(error)) {\n\t\t\tresponse = this.createErrorResponseForNestHttpException(error);\n\t\t} else {\n\t\t\tresponse = this.createErrorResponseForUnknownError();\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tprivate createErrorResponseForFeathersError(error: FeathersError) {\n\t\tconst { code, className, name, message } = error;\n\t\tconst type = _.snakeCase(className).toUpperCase();\n\t\tconst title = _.startCase(name);\n\n\t\treturn new ErrorResponse(type, title, message, code);\n\t}\n\n\tprivate createErrorResponseForBusinessError(error: BusinessError): ErrorResponse {\n\t\tlet response: ErrorResponse;\n\n\t\tif (error instanceof ApiValidationError) {\n\t\t\tresponse = new ApiValidationErrorResponse(error);\n\t\t} else {\n\t\t\tresponse = error.getResponse();\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tprivate createErrorResponseForNestHttpException(exception: HttpException): ErrorResponse {\n\t\tconst code = exception.getStatus();\n\t\tconst msg = exception.message || 'Some error occurred';\n\t\tconst exceptionName = exception.constructor.name.replace('Loggable', '').replace('Exception', '');\n\t\tconst type = _.snakeCase(exceptionName).toUpperCase();\n\t\tconst title = _.startCase(exceptionName);\n\n\t\treturn new ErrorResponse(type, title, msg, code);\n\t}\n\n\tprivate createErrorResponseForUnknownError(): ErrorResponse {\n\t\tconst error = new InternalServerErrorException();\n\t\tconst response = this.createErrorResponseForNestHttpException(error);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GlobalValidationPipe.html":{"url":"classes/GlobalValidationPipe.html","title":"class - GlobalValidationPipe","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GlobalValidationPipe\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/validation/pipe/global-validation.pipe.ts\n \n\n\n \n Description\n \n \n \nGlobal Pipe setup\n\nValidation of DTOs will base on type-checking\nwhich is enabled by default. To you might use\nthe class-validator decorators to extend\nvalidation.\n\n \n\n \n Extends\n \n \n ValidationPipe\n \n\n\n\n\n \n Constructor\n \n \n \n \nconstructor()\n \n \n \n \n Defined in apps/server/src/core/validation/pipe/global-validation.pipe.ts:12\n \n \n\n \n \n\n\n\n\n\n\n\n\n\n \n\n\n \n import { ValidationError, ValidationPipe } from '@nestjs/common';\nimport { ApiValidationError } from '@shared/common';\n\n/** *********************************************\n * Global Pipe setup\n * **********************************************\n * Validation of DTOs will base on type-checking\n * which is enabled by default. To you might use\n * the class-validator decorators to extend\n * validation.\n */\nexport class GlobalValidationPipe extends ValidationPipe {\n\tconstructor() {\n\t\tsuper({\n\t\t\t// enable DTO instance creation for incoming data\n\t\t\ttransform: true,\n\t\t\ttransformOptions: {\n\t\t\t\t// enable type coersion, requires transform:true\n\t\t\t\tenableImplicitConversion: true,\n\t\t\t},\n\t\t\twhitelist: true, // only pass valid @ApiProperty-decorated DTO properties, remove others\n\t\t\tforbidNonWhitelisted: false, // additional params are just skipped (required when extracting multiple DTO from single query)\n\t\t\tforbidUnknownValues: true,\n\t\t\texceptionFactory: (errors: ValidationError[]) => new ApiValidationError(errors),\n\t\t\tvalidationError: {\n\t\t\t\t// make sure target (DTO) is set on validation error\n\t\t\t\t// we need this to be able to get DTO metadata for checking if a value has to be the obfuscated on output\n\t\t\t\t// see e.g. ErrorLoggable\n\t\t\t\ttarget: true,\n\t\t\t\tvalue: true,\n\t\t\t},\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GridElement.html":{"url":"classes/GridElement.html","title":"class - GridElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GridElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.entity.ts\n \n\n\n\n\n \n Implements\n \n \n IGridElement\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n id\n \n \n references\n \n \n Private\n sortReferences\n \n \n Optional\n title\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n addReferences\n \n \n Static\n FromGroup\n \n \n Static\n FromPersistedGroup\n \n \n Static\n FromPersistedReference\n \n \n Static\n FromSingleReference\n \n \n getContent\n \n \n getId\n \n \n getReferences\n \n \n hasId\n \n \n isGroup\n \n \n removeReference\n \n \n removeReferenceByIndex\n \n \n setGroupName\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Private\n constructor(props: literal type)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:52\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n literal type\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n references\n \n \n \n \n \n \n Type : ILearnroom[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:76\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n sortReferences\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:40\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n addReferences\n \n \n \n \n \n \naddReferences(anotherReference: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:108\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n anotherReference\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n FromGroup\n \n \n \n \n \n \n \n FromGroup(title: string, references: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n references\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n FromPersistedGroup\n \n \n \n \n \n \n \n FromPersistedGroup(id: EntityId, title: string | undefined, group: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n group\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n FromPersistedReference\n \n \n \n \n \n \n \n FromPersistedReference(id: EntityId, reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n FromSingleReference\n \n \n \n \n \n \n \n FromSingleReference(reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GridElement\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getContent\n \n \n \n \n \n \ngetContent()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:117\n \n \n\n\n \n \n\n \n Returns : GridElementContent\n\n \n \n \n \n \n \n \n \n \n \n \n getId\n \n \n \n \n \n \ngetId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:82\n \n \n\n\n \n \n\n \n Returns : EntityId | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n getReferences\n \n \n \n \n \n \ngetReferences()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:86\n \n \n\n\n \n \n\n \n Returns : ILearnroom[]\n\n \n \n \n \n \n \n \n \n \n \n \n hasId\n \n \n \n \n \n \nhasId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:78\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n isGroup\n \n \n \n \n \n \nisGroup()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:138\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n removeReference\n \n \n \n \n \n \nremoveReference(reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeReferenceByIndex\n \n \n \n \n \n \nremoveReferenceByIndex(index: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:90\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n index\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setGroupName\n \n \n \n \n \n \nsetGroupName(newGroupName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newGroupName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException, BadRequestException } from '@nestjs/common';\nimport { EntityId, LearnroomMetadata } from '@shared/domain/types';\nimport { ILearnroom } from '@shared/domain/interface';\n\nconst defaultColumns = 4;\n\nexport interface IGridElement {\n\thasId(): boolean;\n\n\tgetId: () => EntityId | undefined;\n\n\tgetContent: () => GridElementContent;\n\n\tisGroup(): boolean;\n\n\tremoveReferenceByIndex(index: number): void;\n\n\tremoveReference(reference: ILearnroom): void;\n\n\tgetReferences(): ILearnroom[];\n\n\taddReferences(anotherReference: ILearnroom[]): void;\n\n\tsetGroupName(newGroupName: string): void;\n}\n\nexport type GridElementContent = {\n\treferencedId?: string;\n\ttitle?: string;\n\tshortTitle: string;\n\tdisplayColor: string;\n\tgroup?: LearnroomMetadata[];\n\tgroupId?: string;\n\tcopyingSince?: Date;\n};\n\nexport class GridElement implements IGridElement {\n\tid?: EntityId;\n\n\ttitle?: string;\n\n\tprivate sortReferences = (a: ILearnroom, b: ILearnroom) => {\n\t\tconst titleA = a.getMetadata().title;\n\t\tconst titleB = b.getMetadata().title;\n\t\tif (titleA titleB) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t};\n\n\tprivate constructor(props: { id?: EntityId; title?: string; references: ILearnroom[] }) {\n\t\tif (props.id) this.id = props.id;\n\t\tif (props.title) this.title = props.title;\n\t\tthis.references = props.references.sort(this.sortReferences);\n\t}\n\n\tstatic FromPersistedReference(id: EntityId, reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ id, references: [reference] });\n\t}\n\n\tstatic FromPersistedGroup(id: EntityId, title: string | undefined, group: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ id, title, references: group });\n\t}\n\n\tstatic FromSingleReference(reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ references: [reference] });\n\t}\n\n\tstatic FromGroup(title: string, references: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ title, references });\n\t}\n\n\treferences: ILearnroom[];\n\n\thasId(): boolean {\n\t\treturn !!this.id;\n\t}\n\n\tgetId(): EntityId | undefined {\n\t\treturn this.id;\n\t}\n\n\tgetReferences(): ILearnroom[] {\n\t\treturn this.references;\n\t}\n\n\tremoveReferenceByIndex(index: number): void {\n\t\tif (!this.isGroup()) {\n\t\t\tthrow new BadRequestException('this element is not a group.');\n\t\t}\n\t\tif (index > 0 && this.references.length reference.getMetadata());\n\t\tconst checkShortTitle = this.title ? this.title.substring(0, 2) : '';\n\t\tconst groupMetadata = {\n\t\t\tgroupId: this.getId(),\n\t\t\ttitle: this.title,\n\t\t\tshortTitle: checkShortTitle,\n\t\t\tdisplayColor: 'exampleColor',\n\t\t\tgroup: groupData,\n\t\t};\n\t\treturn groupMetadata;\n\t}\n\n\tisGroup(): boolean {\n\t\treturn this.references.length > 1;\n\t}\n\n\tsetGroupName(newGroupName: string): void {\n\t\tif (!this.isGroup()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.title = newGroupName;\n\t}\n}\n\nexport type GridPosition = { x: number; y: number };\nexport type GridPositionWithGroupIndex = { x: number; y: number; groupIndex?: number };\n\nexport type GridElementWithPosition = {\n\tgridElement: IGridElement;\n\tpos: GridPosition;\n};\n\nexport type DashboardProps = { colums?: number; grid: GridElementWithPosition[]; userId: EntityId };\n\nexport class DashboardEntity {\n\tid: EntityId;\n\n\tcolumns: number;\n\n\tgrid: Map;\n\n\tuserId: EntityId;\n\n\tprivate gridIndexFromPosition(pos: GridPosition): number {\n\t\tif (pos.x > this.columns) {\n\t\t\tthrow new BadRequestException('dashboard element position is outside the grid.');\n\t\t}\n\t\treturn this.columns * pos.y + pos.x;\n\t}\n\n\tprivate positionFromGridIndex(index: number): GridPosition {\n\t\tconst y = Math.floor(index / this.columns);\n\t\tconst x = index % this.columns;\n\t\treturn { x, y };\n\t}\n\n\tconstructor(id: string, props: DashboardProps) {\n\t\tthis.columns = props.colums || defaultColumns;\n\t\tthis.grid = new Map();\n\t\tprops.grid.forEach((element) => {\n\t\t\tthis.grid.set(this.gridIndexFromPosition(element.pos), element.gridElement);\n\t\t});\n\t\tthis.id = id;\n\t\tthis.userId = props.userId;\n\t\tObject.assign(this, {});\n\t}\n\n\tgetId(): string {\n\t\treturn this.id;\n\t}\n\n\tgetUserId(): EntityId {\n\t\treturn this.userId;\n\t}\n\n\tgetGrid(): GridElementWithPosition[] {\n\t\tconst result = [...this.grid.keys()].map((key) => {\n\t\t\tconst position = this.positionFromGridIndex(key);\n\t\t\tconst value = this.grid.get(key) as IGridElement;\n\t\t\treturn {\n\t\t\t\tpos: position,\n\t\t\t\tgridElement: value,\n\t\t\t};\n\t\t});\n\t\treturn result;\n\t}\n\n\tgetElement(position: GridPosition): IGridElement {\n\t\tconst element = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (!element) {\n\t\t\tthrow new NotFoundException('no element at grid position');\n\t\t}\n\t\treturn element;\n\t}\n\n\tmoveElement(from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex): GridElementWithPosition {\n\t\tconst elementToMove = this.getReferencesFromPosition(from);\n\t\tconst resultElement = this.mergeElementIntoPosition(elementToMove, to);\n\t\tthis.removeFromPosition(from);\n\t\treturn {\n\t\t\tpos: to,\n\t\t\tgridElement: resultElement,\n\t\t};\n\t}\n\n\tsetLearnRooms(rooms: ILearnroom[]): void {\n\t\tthis.removeRoomsNotInList(rooms);\n\t\tconst newRooms = this.determineNewRoomsIn(rooms);\n\n\t\tnewRooms.forEach((room) => {\n\t\t\tthis.addRoom(room);\n\t\t});\n\t}\n\n\tprivate removeRoomsNotInList(roomList: ILearnroom[]): void {\n\t\t[...this.grid.keys()].forEach((key) => {\n\t\t\tconst element = this.grid.get(key) as IGridElement;\n\t\t\tconst currentRooms = element.getReferences();\n\t\t\tcurrentRooms.forEach((room) => {\n\t\t\t\tif (!roomList.includes(room)) {\n\t\t\t\t\telement.removeReference(room);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (element.getReferences().length === 0) {\n\t\t\t\tthis.grid.delete(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate determineNewRoomsIn(rooms: ILearnroom[]): ILearnroom[] {\n\t\tconst result: ILearnroom[] = [];\n\t\tconst existingRooms = this.allRooms();\n\t\trooms.forEach((room) => {\n\t\t\tif (!existingRooms.includes(room)) {\n\t\t\t\tresult.push(room);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tprivate allRooms(): ILearnroom[] {\n\t\tconst elements = [...this.grid.values()];\n\t\tconst references = elements.map((el) => el.getReferences()).flat();\n\t\treturn references;\n\t}\n\n\tprivate addRoom(room: ILearnroom): void {\n\t\tconst index = this.getFirstOpenIndex();\n\t\tconst newElement = GridElement.FromSingleReference(room);\n\t\tthis.grid.set(index, newElement);\n\t}\n\n\tprivate getFirstOpenIndex(): number {\n\t\tlet i = 0;\n\t\twhile (this.grid.get(i) !== undefined) {\n\t\t\ti += 1;\n\t\t}\n\t\treturn i;\n\t}\n\n\tprivate getReferencesFromPosition(position: GridPositionWithGroupIndex): IGridElement {\n\t\tconst elementToMove = this.getElement(position);\n\n\t\tif (typeof position.groupIndex === 'number' && elementToMove.isGroup()) {\n\t\t\tconst references = elementToMove.getReferences();\n\t\t\tconst referenceForIndex = references[position.groupIndex];\n\t\t\treturn GridElement.FromSingleReference(referenceForIndex);\n\t\t}\n\n\t\treturn elementToMove;\n\t}\n\n\tprivate removeFromPosition(position: GridPositionWithGroupIndex): void {\n\t\tconst element = this.getElement(position);\n\t\tif (typeof position.groupIndex === 'number') {\n\t\t\telement.removeReferenceByIndex(position.groupIndex);\n\t\t} else {\n\t\t\tthis.grid.delete(this.gridIndexFromPosition(position));\n\t\t}\n\t}\n\n\tprivate mergeElementIntoPosition(element: IGridElement, position: GridPosition): IGridElement {\n\t\tconst targetElement = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (targetElement) {\n\t\t\ttargetElement.addReferences(element.getReferences());\n\t\t\treturn targetElement;\n\t\t}\n\t\tthis.grid.set(this.gridIndexFromPosition(position), element);\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Group.html":{"url":"classes/Group.html","title":"class - Group","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Group\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/domain/group.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, ExternalSource } from '@shared/domain';\nimport { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { GroupTypes } from './group-types';\nimport { GroupUser } from './group-user';\n\nexport interface GroupProps extends AuthorizableObject {\n\tid: EntityId;\n\n\tname: string;\n\n\ttype: GroupTypes;\n\n\tvalidFrom?: Date;\n\n\tvalidUntil?: Date;\n\n\texternalSource?: ExternalSource;\n\n\tusers: GroupUser[];\n\n\torganizationId?: string;\n}\n\nexport class Group extends DomainObject {}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/GroupApiModule.html":{"url":"modules/GroupApiModule.html","title":"module - GroupApiModule","body":"\n \n\n\n\n\n Modules\n GroupApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_GroupApiModule\n\n\n\ncluster_GroupApiModule_imports\n\n\n\n\nGroupModule\n\nGroupModule\n\n\n\nGroupApiModule\n\nGroupApiModule\n\nGroupApiModule -->\n\nGroupModule->GroupApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/group/group-api.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n GroupModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { GroupModule } from './group.module';\n\n@Module({\n\timports: [GroupModule],\n})\nexport class GroupApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupDomainMapper.html":{"url":"classes/GroupDomainMapper.html","title":"class - GroupDomainMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupDomainMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/repo/group-domain.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapDomainObjectToEntityProperties\n \n \n Static\n mapEntityToDomainObjectProperties\n \n \n Static\n mapExternalSourceEntityToExternalSource\n \n \n Static\n mapExternalSourceToExternalSourceEntity\n \n \n Static\n mapGroupUserEntityToGroupUser\n \n \n Static\n mapGroupUserToGroupUserEntity\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapDomainObjectToEntityProperties\n \n \n \n \n \n \n \n mapDomainObjectToEntityProperties(group: Group, em: EntityManager)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n group\n \n Group\n \n\n \n No\n \n\n\n \n \n em\n \n EntityManager\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupEntityProps\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapEntityToDomainObjectProperties\n \n \n \n \n \n \n \n mapEntityToDomainObjectProperties(entity: GroupEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n GroupEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupProps\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapExternalSourceEntityToExternalSource\n \n \n \n \n \n \n \n mapExternalSourceEntityToExternalSource(entity: ExternalSourceEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ExternalSourceEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalSource\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapExternalSourceToExternalSourceEntity\n \n \n \n \n \n \n \n mapExternalSourceToExternalSourceEntity(externalSource: ExternalSource, em: EntityManager)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalSource\n \n ExternalSource\n \n\n \n No\n \n\n\n \n \n em\n \n EntityManager\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalSourceEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapGroupUserEntityToGroupUser\n \n \n \n \n \n \n \n mapGroupUserEntityToGroupUser(entity: GroupUserEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:90\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n GroupUserEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupUser\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapGroupUserToGroupUserEntity\n \n \n \n \n \n \n \n mapGroupUserToGroupUserEntity(groupUser: GroupUser, em: EntityManager)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group-domain.mapper.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n groupUser\n \n GroupUser\n \n\n \n No\n \n\n\n \n \n em\n \n EntityManager\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupUserEntity\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { ExternalSource, ExternalSourceEntity, Role, SchoolEntity, System, User } from '@shared/domain';\nimport { Group, GroupProps, GroupTypes, GroupUser } from '../domain';\nimport { GroupEntity, GroupEntityProps, GroupEntityTypes, GroupUserEntity, GroupValidPeriodEntity } from '../entity';\n\nconst GroupEntityTypesToGroupTypesMapping: Record = {\n\t[GroupEntityTypes.CLASS]: GroupTypes.CLASS,\n};\n\nconst GroupTypesToGroupEntityTypesMapping: Record = {\n\t[GroupTypes.CLASS]: GroupEntityTypes.CLASS,\n};\n\nexport class GroupDomainMapper {\n\tstatic mapDomainObjectToEntityProperties(group: Group, em: EntityManager): GroupEntityProps {\n\t\tconst props: GroupProps = group.getProps();\n\n\t\tlet validPeriod: GroupValidPeriodEntity | undefined;\n\t\tif (props.validFrom && props.validUntil) {\n\t\t\tvalidPeriod = new GroupValidPeriodEntity({\n\t\t\t\tfrom: props.validFrom,\n\t\t\t\tuntil: props.validUntil,\n\t\t\t});\n\t\t}\n\n\t\tconst mapped: GroupEntityProps = {\n\t\t\tid: props.id,\n\t\t\tname: props.name,\n\t\t\ttype: GroupTypesToGroupEntityTypesMapping[props.type],\n\t\t\texternalSource: props.externalSource\n\t\t\t\t? this.mapExternalSourceToExternalSourceEntity(props.externalSource, em)\n\t\t\t\t: undefined,\n\t\t\tusers: props.users.map(\n\t\t\t\t(groupUser): GroupUserEntity => GroupDomainMapper.mapGroupUserToGroupUserEntity(groupUser, em)\n\t\t\t),\n\t\t\tvalidPeriod,\n\t\t\torganization: props.organizationId ? em.getReference(SchoolEntity, props.organizationId) : undefined,\n\t\t};\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapEntityToDomainObjectProperties(entity: GroupEntity): GroupProps {\n\t\tconst mapped: GroupProps = {\n\t\t\tid: entity.id,\n\t\t\tusers: entity.users.map((groupUser): GroupUser => this.mapGroupUserEntityToGroupUser(groupUser)),\n\t\t\tvalidFrom: entity.validPeriod ? entity.validPeriod.from : undefined,\n\t\t\tvalidUntil: entity.validPeriod ? entity.validPeriod.until : undefined,\n\t\t\texternalSource: entity.externalSource\n\t\t\t\t? this.mapExternalSourceEntityToExternalSource(entity.externalSource)\n\t\t\t\t: undefined,\n\t\t\ttype: GroupEntityTypesToGroupTypesMapping[entity.type],\n\t\t\tname: entity.name,\n\t\t\torganizationId: entity.organization?.id,\n\t\t};\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapExternalSourceToExternalSourceEntity(\n\t\texternalSource: ExternalSource,\n\t\tem: EntityManager\n\t): ExternalSourceEntity {\n\t\tconst mapped = new ExternalSourceEntity({\n\t\t\texternalId: externalSource.externalId,\n\t\t\tsystem: em.getReference(System, externalSource.systemId),\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapExternalSourceEntityToExternalSource(entity: ExternalSourceEntity): ExternalSource {\n\t\tconst mapped = new ExternalSource({\n\t\t\texternalId: entity.externalId,\n\t\t\tsystemId: entity.system.id,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapGroupUserToGroupUserEntity(groupUser: GroupUser, em: EntityManager): GroupUserEntity {\n\t\tconst mapped = new GroupUserEntity({\n\t\t\tuser: em.getReference(User, groupUser.userId),\n\t\t\trole: em.getReference(Role, groupUser.roleId),\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapGroupUserEntityToGroupUser(entity: GroupUserEntity): GroupUser {\n\t\tconst mapped = new GroupUser({\n\t\t\tuserId: entity.user.id,\n\t\t\troleId: entity.role.id,\n\t\t});\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/GroupEntity.html":{"url":"entities/GroupEntity.html","title":"entity - GroupEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n GroupEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalSource\n \n \n \n name\n \n \n \n Optional\n organization\n \n \n \n type\n \n \n \n users\n \n \n \n Optional\n validPeriod\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n externalSource\n \n \n \n \n \n \n Type : ExternalSourceEntity\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n organization\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : GroupEntityTypes\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n Type : GroupUserEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true})\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n validPeriod\n \n \n \n \n \n \n Type : GroupValidPeriodEntity\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group.entity.ts:41\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, Enum, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { ExternalSourceEntity } from '@shared/domain/entity/external-source.entity';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { EntityId } from '@shared/domain/types';\nimport { GroupUserEntity } from './group-user.entity';\nimport { GroupValidPeriodEntity } from './group-valid-period.entity';\n\nexport enum GroupEntityTypes {\n\tCLASS = 'class',\n}\n\nexport interface GroupEntityProps {\n\tid?: EntityId;\n\n\tname: string;\n\n\ttype: GroupEntityTypes;\n\n\texternalSource?: ExternalSourceEntity;\n\n\tvalidPeriod?: GroupValidPeriodEntity;\n\n\tusers: GroupUserEntity[];\n\n\torganization?: SchoolEntity;\n}\n\n@Entity({ tableName: 'groups' })\nexport class GroupEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Enum()\n\ttype: GroupEntityTypes;\n\n\t@Embedded(() => ExternalSourceEntity, { nullable: true })\n\texternalSource?: ExternalSourceEntity;\n\n\t@Embedded(() => GroupValidPeriodEntity, { nullable: true })\n\tvalidPeriod?: GroupValidPeriodEntity;\n\n\t@Embedded(() => GroupUserEntity, { array: true })\n\tusers: GroupUserEntity[];\n\n\t@ManyToOne(() => SchoolEntity, { nullable: true })\n\torganization?: SchoolEntity;\n\n\tconstructor(props: GroupEntityProps) {\n\t\tsuper();\n\t\tif (props.id) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.name = props.name;\n\t\tthis.type = props.type;\n\t\tthis.externalSource = props.externalSource;\n\t\tthis.validPeriod = props.validPeriod;\n\t\tthis.users = props.users;\n\t\tthis.organization = props.organization;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupEntityProps.html":{"url":"interfaces/GroupEntityProps.html","title":"interface - GroupEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n externalSource\n \n \n \n Optional\n \n id\n \n \n \n \n name\n \n \n \n Optional\n \n organization\n \n \n \n \n type\n \n \n \n \n users\n \n \n \n Optional\n \n validPeriod\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n externalSource\n \n \n \n \n \n \n \n \n externalSource: ExternalSourceEntity\n\n \n \n\n\n \n \n Type : ExternalSourceEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n organization\n \n \n \n \n \n \n \n \n organization: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: GroupEntityTypes\n\n \n \n\n\n \n \n Type : GroupEntityTypes\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n users: GroupUserEntity[]\n\n \n \n\n\n \n \n Type : GroupUserEntity[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n validPeriod\n \n \n \n \n \n \n \n \n validPeriod: GroupValidPeriodEntity\n\n \n \n\n\n \n \n Type : GroupValidPeriodEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, Enum, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { ExternalSourceEntity } from '@shared/domain/entity/external-source.entity';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { EntityId } from '@shared/domain/types';\nimport { GroupUserEntity } from './group-user.entity';\nimport { GroupValidPeriodEntity } from './group-valid-period.entity';\n\nexport enum GroupEntityTypes {\n\tCLASS = 'class',\n}\n\nexport interface GroupEntityProps {\n\tid?: EntityId;\n\n\tname: string;\n\n\ttype: GroupEntityTypes;\n\n\texternalSource?: ExternalSourceEntity;\n\n\tvalidPeriod?: GroupValidPeriodEntity;\n\n\tusers: GroupUserEntity[];\n\n\torganization?: SchoolEntity;\n}\n\n@Entity({ tableName: 'groups' })\nexport class GroupEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Enum()\n\ttype: GroupEntityTypes;\n\n\t@Embedded(() => ExternalSourceEntity, { nullable: true })\n\texternalSource?: ExternalSourceEntity;\n\n\t@Embedded(() => GroupValidPeriodEntity, { nullable: true })\n\tvalidPeriod?: GroupValidPeriodEntity;\n\n\t@Embedded(() => GroupUserEntity, { array: true })\n\tusers: GroupUserEntity[];\n\n\t@ManyToOne(() => SchoolEntity, { nullable: true })\n\torganization?: SchoolEntity;\n\n\tconstructor(props: GroupEntityProps) {\n\t\tsuper();\n\t\tif (props.id) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.name = props.name;\n\t\tthis.type = props.type;\n\t\tthis.externalSource = props.externalSource;\n\t\tthis.validPeriod = props.validPeriod;\n\t\tthis.users = props.users;\n\t\tthis.organization = props.organization;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/GroupModule.html":{"url":"modules/GroupModule.html","title":"module - GroupModule","body":"\n \n\n\n\n\n Modules\n GroupModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_GroupModule\n\n\n\ncluster_GroupModule_exports\n\n\n\ncluster_GroupModule_providers\n\n\n\n\nGroupService \n\nGroupService \n\n\n\nGroupModule\n\nGroupModule\n\nGroupService -->\n\nGroupModule->GroupService \n\n\n\n\n\nGroupRepo\n\nGroupRepo\n\nGroupModule -->\n\nGroupRepo->GroupModule\n\n\n\n\n\nGroupService\n\nGroupService\n\nGroupModule -->\n\nGroupService->GroupModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/group/group.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n GroupRepo\n \n \n GroupService\n \n \n \n \n Exports\n \n \n GroupService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { GroupRepo } from './repo';\nimport { GroupService } from './service';\n\n@Module({\n\tproviders: [GroupRepo, GroupService],\n\texports: [GroupService],\n})\nexport class GroupModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupNameIdTuple.html":{"url":"interfaces/GroupNameIdTuple.html","title":"interface - GroupNameIdTuple","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupNameIdTuple\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/interface/id-token.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n displayName\n \n \n \n \n gid\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n displayName\n \n \n \n \n \n \n \n \n displayName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n gid\n \n \n \n \n \n \n \n \n gid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IdToken {\n\tiframe?: string;\n\temail?: string;\n\tname?: string;\n\tuserId?: string;\n\tschoolId: string;\n\tgroups?: GroupNameIdTuple[];\n}\n\nexport interface GroupNameIdTuple {\n\tdisplayName: string;\n\tgid: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupProps.html":{"url":"interfaces/GroupProps.html","title":"interface - GroupProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/domain/group.ts\n \n\n\n\n \n Extends\n \n \n AuthorizableObject\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n externalSource\n \n \n \n \n id\n \n \n \n \n name\n \n \n \n Optional\n \n organizationId\n \n \n \n \n type\n \n \n \n \n users\n \n \n \n Optional\n \n validFrom\n \n \n \n Optional\n \n validUntil\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n externalSource\n \n \n \n \n \n \n \n \n externalSource: ExternalSource\n\n \n \n\n\n \n \n Type : ExternalSource\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n organizationId\n \n \n \n \n \n \n \n \n organizationId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: GroupTypes\n\n \n \n\n\n \n \n Type : GroupTypes\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n users: GroupUser[]\n\n \n \n\n\n \n \n Type : GroupUser[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n validFrom\n \n \n \n \n \n \n \n \n validFrom: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n validUntil\n \n \n \n \n \n \n \n \n validUntil: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { EntityId, ExternalSource } from '@shared/domain';\nimport { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { GroupTypes } from './group-types';\nimport { GroupUser } from './group-user';\n\nexport interface GroupProps extends AuthorizableObject {\n\tid: EntityId;\n\n\tname: string;\n\n\ttype: GroupTypes;\n\n\tvalidFrom?: Date;\n\n\tvalidUntil?: Date;\n\n\texternalSource?: ExternalSource;\n\n\tusers: GroupUser[];\n\n\torganizationId?: string;\n}\n\nexport class Group extends DomainObject {}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/GroupRepo.html":{"url":"injectables/GroupRepo.html","title":"injectable - GroupRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n GroupRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/repo/group.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n findByExternalSource\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObject: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Group\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalSource\n \n \n \n \n \n \n \n findByExternalSource(externalId: string, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(domainObject: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/repo/group.repo.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Group\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain/types';\nimport { Group, GroupProps } from '../domain';\nimport { GroupEntity, GroupEntityProps } from '../entity';\nimport { GroupDomainMapper } from './group-domain.mapper';\n\n@Injectable()\nexport class GroupRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst entity: GroupEntity | null = await this.em.findOne(GroupEntity, { id });\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst props: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(entity);\n\n\t\tconst domainObject: Group = new Group(props);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByExternalSource(externalId: string, systemId: EntityId): Promise {\n\t\tconst entity: GroupEntity | null = await this.em.findOne(GroupEntity, {\n\t\t\texternalSource: {\n\t\t\t\texternalId,\n\t\t\t\tsystem: systemId,\n\t\t\t},\n\t\t});\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst props: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(entity);\n\n\t\tconst domainObject: Group = new Group(props);\n\n\t\treturn domainObject;\n\t}\n\n\tasync save(domainObject: Group): Promise {\n\t\tconst entityProps: GroupEntityProps = GroupDomainMapper.mapDomainObjectToEntityProperties(domainObject, this.em);\n\n\t\tconst newEntity: GroupEntity = new GroupEntity(entityProps);\n\n\t\tconst existingEntity: GroupEntity | null = await this.em.findOne(GroupEntity, { id: domainObject.id });\n\n\t\tlet savedEntity: GroupEntity;\n\t\tif (existingEntity) {\n\t\t\tsavedEntity = this.em.assign(existingEntity, newEntity);\n\t\t} else {\n\t\t\tthis.em.persist(newEntity);\n\n\t\t\tsavedEntity = newEntity;\n\t\t}\n\n\t\tawait this.em.flush();\n\n\t\tconst savedProps: GroupProps = GroupDomainMapper.mapEntityToDomainObjectProperties(savedEntity);\n\n\t\tconst savedDomainObject: Group = new Group(savedProps);\n\n\t\treturn savedDomainObject;\n\t}\n\n\tasync delete(domainObject: Group): Promise {\n\t\tconst entity: GroupEntity | null = await this.em.findOne(GroupEntity, { id: domainObject.id });\n\n\t\tif (!entity) {\n\t\t\treturn false;\n\t\t}\n\n\t\tawait this.em.removeAndFlush(entity);\n\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupRoleUnknownLoggable.html":{"url":"classes/GroupRoleUnknownLoggable.html","title":"class - GroupRoleUnknownLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupRoleUnknownLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/loggable/group-role-unknown.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(relation: SanisSonstigeGruppenzugehoerigeResponse)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/loggable/group-role-unknown.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n relation\n \n \n SanisSonstigeGruppenzugehoerigeResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/loggable/group-role-unknown.loggable.ts:7\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { SanisSonstigeGruppenzugehoerigeResponse } from '../strategy/sanis/response';\n\nexport class GroupRoleUnknownLoggable implements Loggable {\n\tconstructor(private readonly relation: SanisSonstigeGruppenzugehoerigeResponse) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Unable to add unknown user to group during provisioning.',\n\t\t\tdata: {\n\t\t\t\texternalUserId: this.relation.ktid,\n\t\t\t\texternalRoleName: this.relation.rollen[0],\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/GroupService.html":{"url":"injectables/GroupService.html","title":"injectable - GroupService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n GroupService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/service/group.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n findByExternalSource\n \n \n Async\n findById\n \n \n Async\n save\n \n \n Async\n tryFindById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(groupRepo: GroupRepo)\n \n \n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n groupRepo\n \n \n GroupRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(group: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n group\n \n Group\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalSource\n \n \n \n \n \n \n \n findByExternalSource(externalId: string, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(group: Group)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n group\n \n Group\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n tryFindById\n \n \n \n \n \n \n \n tryFindById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/group/service/group.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { EntityId } from '@shared/domain';\nimport { AuthorizationLoaderServiceGeneric } from '@src/modules/authorization';\nimport { Group } from '../domain';\nimport { GroupRepo } from '../repo';\n\n@Injectable()\nexport class GroupService implements AuthorizationLoaderServiceGeneric {\n\tconstructor(private readonly groupRepo: GroupRepo) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst group: Group | null = await this.groupRepo.findById(id);\n\n\t\tif (!group) {\n\t\t\tthrow new NotFoundLoggableException(Group.name, 'id', id);\n\t\t}\n\n\t\treturn group;\n\t}\n\n\tasync findByExternalSource(externalId: string, systemId: EntityId): Promise {\n\t\tconst group: Group | null = await this.groupRepo.findByExternalSource(externalId, systemId);\n\n\t\treturn group;\n\t}\n\n\tasync tryFindById(id: EntityId): Promise {\n\t\tconst group: Group | null = await this.groupRepo.findById(id);\n\n\t\treturn group;\n\t}\n\n\tasync save(group: Group): Promise {\n\t\tconst savedGroup: Group = await this.groupRepo.save(group);\n\n\t\treturn savedGroup;\n\t}\n\n\tasync delete(group: Group): Promise {\n\t\tawait this.groupRepo.delete(group);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupUser.html":{"url":"classes/GroupUser.html","title":"class - GroupUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/domain/group-user.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n roleId\n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: GroupUser)\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group-user.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n GroupUser\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n roleId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group-user.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/group/domain/group-user.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport class GroupUser {\n\tuserId: EntityId;\n\n\troleId: EntityId;\n\n\tconstructor(props: GroupUser) {\n\t\tthis.userId = props.userId;\n\t\tthis.roleId = props.roleId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupUserEntity.html":{"url":"classes/GroupUserEntity.html","title":"class - GroupUserEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupUserEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group-user.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n user\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: GroupUserEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-user.entity.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n GroupUserEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : Role\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-user.entity.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-user.entity.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, ManyToOne } from '@mikro-orm/core';\nimport { Role, User } from '@shared/domain/entity';\n\nexport interface GroupUserEntityProps {\n\tuser: User;\n\n\trole: Role;\n}\n\n@Embeddable()\nexport class GroupUserEntity {\n\t@ManyToOne(() => User)\n\tuser: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\tconstructor(props: GroupUserEntityProps) {\n\t\tthis.user = props.user;\n\t\tthis.role = props.role;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupUserEntityProps.html":{"url":"interfaces/GroupUserEntityProps.html","title":"interface - GroupUserEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupUserEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group-user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n \n user\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n role\n \n \n \n \n \n \n \n \n role: Role\n\n \n \n\n\n \n \n Type : Role\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n \n \n user: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, ManyToOne } from '@mikro-orm/core';\nimport { Role, User } from '@shared/domain/entity';\n\nexport interface GroupUserEntityProps {\n\tuser: User;\n\n\trole: Role;\n}\n\n@Embeddable()\nexport class GroupUserEntity {\n\t@ManyToOne(() => User)\n\tuser: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\tconstructor(props: GroupUserEntityProps) {\n\t\tthis.user = props.user;\n\t\tthis.role = props.role;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupUsers.html":{"url":"interfaces/GroupUsers.html","title":"interface - GroupUsers","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupUsers\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n users\n \n \n \n \n \n \n \n \n users: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GroupValidPeriodEntity.html":{"url":"classes/GroupValidPeriodEntity.html","title":"class - GroupValidPeriodEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GroupValidPeriodEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group-valid-period.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n from\n \n \n \n until\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: GroupValidPeriodEntityProps)\n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-valid-period.entity.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n GroupValidPeriodEntityProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n from\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-valid-period.entity.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n until\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/group/entity/group-valid-period.entity.ts:15\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\nexport interface GroupValidPeriodEntityProps {\n\tfrom: Date;\n\n\tuntil: Date;\n}\n\n@Embeddable()\nexport class GroupValidPeriodEntity {\n\t@Property()\n\tfrom: Date;\n\n\t@Property()\n\tuntil: Date;\n\n\tconstructor(props: GroupValidPeriodEntityProps) {\n\t\tthis.from = props.from;\n\t\tthis.until = props.until;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupValidPeriodEntityProps.html":{"url":"interfaces/GroupValidPeriodEntityProps.html","title":"interface - GroupValidPeriodEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupValidPeriodEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/group/entity/group-valid-period.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n from\n \n \n \n \n until\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n from\n \n \n \n \n \n \n \n \n from: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n until\n \n \n \n \n \n \n \n \n until: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\n\nexport interface GroupValidPeriodEntityProps {\n\tfrom: Date;\n\n\tuntil: Date;\n}\n\n@Embeddable()\nexport class GroupValidPeriodEntity {\n\t@Property()\n\tfrom: Date;\n\n\t@Property()\n\tuntil: Date;\n\n\tconstructor(props: GroupValidPeriodEntityProps) {\n\t\tthis.from = props.from;\n\t\tthis.until = props.until;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupfoldersCreated.html":{"url":"interfaces/GroupfoldersCreated.html","title":"interface - GroupfoldersCreated","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupfoldersCreated\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/GroupfoldersFolder.html":{"url":"interfaces/GroupfoldersFolder.html","title":"interface - GroupfoldersFolder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n GroupfoldersFolder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n folder_id\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n folder_id\n \n \n \n \n \n \n \n \n folder_id: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/GuardAgainst.html":{"url":"classes/GuardAgainst.html","title":"class - GuardAgainst","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n GuardAgainst\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/utils/guard-against.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n nullOrUndefined\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n nullOrUndefined\n \n \n \n \n \n \n \n nullOrUndefined(value: T | null | undefined, toThrow)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/utils/guard-against.ts:8\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n Guards against null or undefined and throws specified exception.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n value\n \n T | null | undefined\n \n\n \n No\n \n\n\n \n The value to check.\n\n \n \n \n toThrow\n \n \n\n \n No\n \n\n\n \n The exception to be thrown on failure.\n\n \n \n \n \n \n \n \n \n Returns : T | never\n\n \n \n The narrowed value or throws.\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n export class GuardAgainst {\n\t/**\n\t * Guards against null or undefined and throws specified exception.\n\t * @param value The value to check.\n\t * @param toThrow The exception to be thrown on failure.\n\t * @returns The narrowed value or throws.\n\t */\n\tstatic nullOrUndefined(value: T | null | undefined, toThrow: unknown): T | never {\n\t\tif (value === null || value === undefined) {\n\t\t\tthrow toThrow;\n\t\t}\n\t\treturn value;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/H5PEditorController.html":{"url":"controllers/H5PEditorController.html","title":"controller - H5PEditorController","body":"\n \n\n\n\n\n\n\n Controllers\n H5PEditorController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts\n \n\n \n Prefix\n \n \n h5p-editor\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getEditor\n \n \n \n \n \n \n \n \n Async\n getPlayer\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getEditor\n \n \n \n \n \n \n \n getEditor()\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Return dummy HTML for testing'})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 400, type: BadRequestException})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 500, type: InternalServerErrorException})@Get('/:contentId/edit')\n \n \n\n \n \n Defined in apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts:44\n \n \n\n\n \n \n\n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getPlayer\n \n \n \n \n \n \n \n getPlayer()\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Return dummy HTML for testing'})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 400, type: BadRequestException})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 500, type: InternalServerErrorException})@Get('/:contentId/play')\n \n \n\n \n \n Defined in apps/server/src/modules/h5p-editor/controller/h5p-editor.controller.ts:33\n \n \n\n\n \n \n\n \n Returns : unknown\n\n \n \n \n \n \n \n\n\n \n import { BadRequestException, Controller, ForbiddenException, Get, InternalServerErrorException } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError } from '@shared/common';\nimport { Authenticate } from '@src/modules/authentication/decorator/auth.decorator';\n\n// Dummy html response so we can test i-frame integration\nconst dummyResponse = (title: string) => `\n\n\n\n \n \n \n ${title}\n\n\n ${title}\n This response can be used for testing\n\n\n`;\n\n@ApiTags('h5p-editor')\n@Authenticate('jwt')\n@Controller('h5p-editor')\nexport class H5PEditorController {\n\t@ApiOperation({ summary: 'Return dummy HTML for testing' })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 400, type: BadRequestException })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Get('/:contentId/play')\n\tasync getPlayer() {\n\t\t// Dummy Response\n\t\treturn Promise.resolve(dummyResponse('H5P Player Dummy'));\n\t}\n\n\t@ApiOperation({ summary: 'Return dummy HTML for testing' })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 400, type: BadRequestException })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Get('/:contentId/edit')\n\tasync getEditor() {\n\t\t// Dummy Response\n\t\treturn Promise.resolve(dummyResponse('H5P Editor Dummy'));\n\t}\n\n\t// Other Endpoints (incomplete list), paths not final\n\t// - getLibrary \t\t\t(e.g. GET `/libraries/:uberName/:file(*)`)\n\t// - getContentFile \t\t\t(e.g. GET `/content/:contentId/:file(*)`)\n\t// - getTempFile \t\t\t(e.g. GET `/temp/:file(*)`)\n\t// - ajax endpoint for h5p \t\t(e.g. GET/POST `/ajax/*`)\n\t// - static files from h5p-core\t(e.g. GET `/core/*`)\n\t// - static files for editor\t(e.g. GET `/editor/*`)\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/H5PEditorModule.html":{"url":"modules/H5PEditorModule.html","title":"module - H5PEditorModule","body":"\n \n\n\n\n\n Modules\n H5PEditorModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_H5PEditorModule\n\n\n\ncluster_H5PEditorModule_imports\n\n\n\ncluster_H5PEditorModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nH5PEditorModule\n\nH5PEditorModule\n\nH5PEditorModule -->\n\nAuthenticationModule->H5PEditorModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nH5PEditorModule -->\n\nAuthorizationModule->H5PEditorModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nH5PEditorModule -->\n\nCoreModule->H5PEditorModule\n\n\n\n\n\nLogger\n\nLogger\n\nH5PEditorModule -->\n\nLogger->H5PEditorModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/h5p-editor/h5p-editor.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n Logger\n \n \n \n \n Controllers\n \n \n H5PEditorController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n \n \n \n\n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { Account, Role, SchoolEntity, SchoolYear, System, User } from '@shared/domain';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME, createConfigModuleOptions } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { H5PEditorController } from './controller/h5p-editor.controller';\nimport { config } from './h5p-editor.config';\n\nconst defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\nconst imports = [\n\tAuthenticationModule,\n\tAuthorizationModule,\n\tCoreModule,\n\tMikroOrmModule.forRoot({\n\t\t...defaultMikroOrmOptions,\n\t\ttype: 'mongo',\n\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\tclientUrl: DB_URL,\n\t\tpassword: DB_PASSWORD,\n\t\tuser: DB_USERNAME,\n\t\tentities: [User, Account, Role, SchoolEntity, System, SchoolYear],\n\n\t\t// debug: true, // use it for locally debugging of querys\n\t}),\n\tConfigModule.forRoot(createConfigModuleOptions(config)),\n];\n\nconst controllers = [H5PEditorController];\n\nconst providers = [Logger];\n\n@Module({\n\timports,\n\tcontrollers,\n\tproviders,\n})\nexport class H5PEditorModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/H5PEditorTestModule.html":{"url":"modules/H5PEditorTestModule.html","title":"module - H5PEditorTestModule","body":"\n \n\n\n\n\n Modules\n H5PEditorTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_H5PEditorTestModule\n\n\n\ncluster_H5PEditorTestModule_imports\n\n\n\n\nAuthenticationApiModule\n\nAuthenticationApiModule\n\n\n\nH5PEditorTestModule\n\nH5PEditorTestModule\n\nH5PEditorTestModule -->\n\nAuthenticationApiModule->H5PEditorTestModule\n\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\nH5PEditorTestModule -->\n\nAuthenticationModule->H5PEditorTestModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nH5PEditorTestModule -->\n\nAuthorizationModule->H5PEditorTestModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nH5PEditorTestModule -->\n\nCoreModule->H5PEditorTestModule\n\n\n\n\n\nH5PEditorModule\n\nH5PEditorModule\n\nH5PEditorTestModule -->\n\nH5PEditorModule->H5PEditorTestModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nH5PEditorTestModule -->\n\nLoggerModule->H5PEditorTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nH5PEditorTestModule -->\n\nMongoMemoryDatabaseModule->H5PEditorTestModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nH5PEditorTestModule -->\n\nRabbitMQWrapperTestModule->H5PEditorTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/h5p-editor/h5p-editor-test.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n AuthenticationApiModule\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n H5PEditorModule\n \n \n LoggerModule\n \n \n MongoMemoryDatabaseModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/h5p-editor/h5p-editor-test.module.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { DynamicModule, Module } from '@nestjs/common';\nimport { Account, Role, SchoolEntity, SchoolYear, User } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq';\nimport { CoreModule } from '@src/core';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { AuthenticationApiModule } from '../authentication/authentication-api.module';\nimport { H5PEditorModule } from './h5p-editor.module';\n\nconst imports = [\n\tH5PEditorModule,\n\tMongoMemoryDatabaseModule.forRoot({ entities: [Account, Role, SchoolEntity, SchoolYear, User] }),\n\tAuthenticationApiModule,\n\tAuthorizationModule,\n\tAuthenticationModule,\n\tCoreModule,\n\tLoggerModule,\n\tRabbitMQWrapperTestModule,\n];\nconst controllers = [];\nconst providers = [];\n@Module({\n\timports,\n\tcontrollers,\n\tproviders,\n})\nexport class H5PEditorTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: H5PEditorTestModule,\n\t\t\timports: [...imports, MongoMemoryDatabaseModule.forRoot({ ...options })],\n\t\t\tcontrollers,\n\t\t\tproviders,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/HtmlMailContent.html":{"url":"interfaces/HtmlMailContent.html","title":"interface - HtmlMailContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n HtmlMailContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n \n Extends\n \n \n MailContent\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n htmlContent\n \n \n \n Optional\n \n plainTextContent\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n htmlContent\n \n \n \n \n \n \n \n \n htmlContent: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n plainTextContent\n \n \n \n \n \n \n \n \n plainTextContent: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/HydraAdapter.html":{"url":"injectables/HydraAdapter.html","title":"injectable - HydraAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n HydraAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts\n \n\n\n\n \n Extends\n \n \n OauthProviderService\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n hydraUri\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n acceptConsentRequest\n \n \n acceptLoginRequest\n \n \n Async\n acceptLogoutRequest\n \n \n createOAuth2Client\n \n \n deleteOAuth2Client\n \n \n Protected\n Async\n get\n \n \n getConsentRequest\n \n \n getLoginRequest\n \n \n getOAuth2Client\n \n \n introspectOAuth2Token\n \n \n isInstanceAlive\n \n \n listConsentSessions\n \n \n listOAuth2Clients\n \n \n Protected\n Async\n put\n \n \n rejectConsentRequest\n \n \n rejectLoginRequest\n \n \n Protected\n Async\n request\n \n \n revokeConsentSession\n \n \n updateOAuth2Client\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(httpService: HttpService)\n \n \n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n acceptConsentRequest\n \n \n \n \n \n \nacceptConsentRequest(challenge: string, body: AcceptConsentRequestBody)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptConsentRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n acceptLoginRequest\n \n \n \n \n \n \nacceptLoginRequest(challenge: string, body: AcceptLoginRequestBody)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:34\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptLoginRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptLogoutRequest\n \n \n \n \n \n \n \n acceptLogoutRequest(challenge: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:38\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createOAuth2Client\n \n \n \n \n \n \ncreateOAuth2Client(data: ProviderOauthClient)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:117\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteOAuth2Client\n \n \n \n \n \n \ndeleteOAuth2Client(id: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:135\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n get\n \n \n \n \n \n \n \n get(flow: string, challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:153\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n flow\n \n string\n \n\n \n No\n \n\n\n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getConsentRequest\n \n \n \n \n \n \ngetConsentRequest(challenge: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:44\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getLoginRequest\n \n \n \n \n \n \ngetLoginRequest(challenge: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:49\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getOAuth2Client\n \n \n \n \n \n \ngetOAuth2Client(id: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:109\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n introspectOAuth2Token\n \n \n \n \n \n \nintrospectOAuth2Token(token: string, scope: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:53\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n scope\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isInstanceAlive\n \n \n \n \n \n \nisInstanceAlive()\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:63\n\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n listConsentSessions\n \n \n \n \n \n \nlistConsentSessions(user: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:68\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n listOAuth2Clients\n \n \n \n \n \n \nlistOAuth2Clients(limit?: number, offset?: number, client_name?: string, owner?: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:92\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n offset\n \n number\n \n\n \n Yes\n \n\n\n \n \n client_name\n \n string\n \n\n \n Yes\n \n\n\n \n \n owner\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n put\n \n \n \n \n \n \n \n put(flow: string, action: string, challenge: string, body: AcceptConsentRequestBody | AcceptLoginRequestBody | RejectRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:140\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n flow\n \n string\n \n\n \n No\n \n\n\n \n \n action\n \n string\n \n\n \n No\n \n\n\n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptConsentRequestBody | AcceptLoginRequestBody | RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rejectConsentRequest\n \n \n \n \n \n \nrejectConsentRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:76\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rejectLoginRequest\n \n \n \n \n \n \nrejectLoginRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:80\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n request\n \n \n \n \n \n \n \n request(method: Method, url: string, data?, additionalHeaders: RawAxiosRequestHeaders)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:157\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n method\n \n Method\n \n\n \n No\n \n\n \n \n\n \n \n url\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n data\n \n \n\n \n Yes\n \n\n \n \n\n \n \n additionalHeaders\n \n RawAxiosRequestHeaders\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n revokeConsentSession\n \n \n \n \n \n \nrevokeConsentSession(user: string, client: string)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n string\n \n\n \n No\n \n\n\n \n \n client\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateOAuth2Client\n \n \n \n \n \n \nupdateOAuth2Client(id: string, data: ProviderOauthClient)\n \n \n\n\n \n \n Inherited from OauthProviderService\n\n \n \n \n \n Defined in OauthProviderService:126\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n hydraUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/oauth-provider/hydra/hydra.adapter.ts:23\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpService } from '@nestjs/axios';\nimport { Injectable } from '@nestjs/common';\nimport { AxiosResponse, Method, RawAxiosRequestHeaders } from 'axios';\nimport QueryString from 'qs';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { URL } from 'url';\nimport {\n\tAcceptConsentRequestBody,\n\tAcceptLoginRequestBody,\n\tIntrospectResponse,\n\tProviderConsentResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n\tRejectRequestBody,\n} from '../dto';\nimport { ProviderConsentSessionResponse } from '../dto/response/consent-session.response';\nimport { OauthProviderService } from '../oauth-provider.service';\n\n@Injectable()\nexport class HydraAdapter extends OauthProviderService {\n\tprivate readonly hydraUri: string;\n\n\tconstructor(private readonly httpService: HttpService) {\n\t\tsuper();\n\t\tthis.hydraUri = Configuration.get('HYDRA_URI') as string;\n\t}\n\n\tacceptConsentRequest(challenge: string, body: AcceptConsentRequestBody): Promise {\n\t\treturn this.put('consent', 'accept', challenge, body);\n\t}\n\n\tacceptLoginRequest(challenge: string, body: AcceptLoginRequestBody): Promise {\n\t\treturn this.put('login', 'accept', challenge, body);\n\t}\n\n\tasync acceptLogoutRequest(challenge: string): Promise {\n\t\tconst url = `${this.hydraUri}/oauth2/auth/requests/logout/accept?logout_challenge=${challenge}`;\n\t\tconst response: Promise = this.request('PUT', url);\n\t\treturn response;\n\t}\n\n\tgetConsentRequest(challenge: string): Promise {\n\t\tconst response: Promise = this.get('consent', challenge);\n\t\treturn response;\n\t}\n\n\tgetLoginRequest(challenge: string): Promise {\n\t\treturn this.get('login', challenge);\n\t}\n\n\tintrospectOAuth2Token(token: string, scope: string): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'POST',\n\t\t\t`${this.hydraUri}/oauth2/introspect`,\n\t\t\t`token=${token}&scope=${scope}`,\n\t\t\t{ 'Content-Type': 'application/x-www-form-urlencoded' }\n\t\t);\n\t\treturn response;\n\t}\n\n\tisInstanceAlive(): Promise {\n\t\tconst response: Promise = this.request('GET', `${this.hydraUri}/health/alive`);\n\t\treturn response;\n\t}\n\n\tlistConsentSessions(user: string): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'GET',\n\t\t\t`${this.hydraUri}/oauth2/auth/sessions/consent?subject=${user}`\n\t\t);\n\t\treturn response;\n\t}\n\n\trejectConsentRequest(challenge: string, body: RejectRequestBody): Promise {\n\t\treturn this.put('consent', 'reject', challenge, body);\n\t}\n\n\trejectLoginRequest(challenge: string, body: RejectRequestBody): Promise {\n\t\treturn this.put('login', 'reject', challenge, body);\n\t}\n\n\trevokeConsentSession(user: string, client: string): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'DELETE',\n\t\t\t`${this.hydraUri}/oauth2/auth/sessions/consent?subject=${user}&client=${client}`\n\t\t);\n\t\treturn response;\n\t}\n\n\tlistOAuth2Clients(\n\t\tlimit?: number,\n\t\toffset?: number,\n\t\tclient_name?: string,\n\t\towner?: string\n\t): Promise {\n\t\tconst url: URL = new URL(`${this.hydraUri}/clients`);\n\t\turl.search = QueryString.stringify({\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tclient_name,\n\t\t\towner,\n\t\t});\n\t\tconst response: Promise = this.request('GET', url.toString());\n\t\treturn response;\n\t}\n\n\tgetOAuth2Client(id: string): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'GET',\n\t\t\t`${this.hydraUri}/clients/${id}`\n\t\t);\n\t\treturn response;\n\t}\n\n\tcreateOAuth2Client(data: ProviderOauthClient): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'POST',\n\t\t\t`${this.hydraUri}/clients`,\n\t\t\tdata\n\t\t);\n\t\treturn response;\n\t}\n\n\tupdateOAuth2Client(id: string, data: ProviderOauthClient): Promise {\n\t\tconst response: Promise = this.request(\n\t\t\t'PUT',\n\t\t\t`${this.hydraUri}/clients/${id}`,\n\t\t\tdata\n\t\t);\n\t\treturn response;\n\t}\n\n\tdeleteOAuth2Client(id: string): Promise {\n\t\tconst response: Promise = this.request('DELETE', `${this.hydraUri}/clients/${id}`);\n\t\treturn response;\n\t}\n\n\tprotected async put(\n\t\tflow: string,\n\t\taction: string,\n\t\tchallenge: string,\n\t\tbody: AcceptConsentRequestBody | AcceptLoginRequestBody | RejectRequestBody\n\t): Promise {\n\t\treturn this.request(\n\t\t\t'PUT',\n\t\t\t`${this.hydraUri}/oauth2/auth/requests/${flow}/${action}?${flow}_challenge=${challenge}`,\n\t\t\tbody\n\t\t);\n\t}\n\n\tprotected async get(flow: string, challenge: string): Promise {\n\t\treturn this.request('GET', `${this.hydraUri}/oauth2/auth/requests/${flow}?${flow}_challenge=${challenge}`);\n\t}\n\n\tprotected async request(\n\t\tmethod: Method,\n\t\turl: string,\n\t\tdata?: unknown,\n\t\tadditionalHeaders: RawAxiosRequestHeaders = {}\n\t): Promise {\n\t\tconst observable: Observable> = this.httpService.request({\n\t\t\turl,\n\t\t\tmethod,\n\t\t\theaders: {\n\t\t\t\t'X-Forwarded-Proto': 'https',\n\t\t\t\t...additionalHeaders,\n\t\t\t},\n\t\t\tdata,\n\t\t});\n\t\tconst response: AxiosResponse = await firstValueFrom(observable);\n\t\treturn response.data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/HydraOauthUc.html":{"url":"injectables/HydraOauthUc.html","title":"injectable - HydraOauthUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n HydraOauthUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n HYDRA_PUBLIC_URI\n \n \n Private\n Readonly\n MAX_REDIRECTS\n \n \n Protected\n validateStatus\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getOauthToken\n \n \n Private\n Async\n processRedirectCascade\n \n \n Async\n requestAuthCode\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthService: OAuthService, hydraSsoService: HydraSsoService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthService\n \n \n OAuthService\n \n \n \n No\n \n \n \n \n hydraSsoService\n \n \n HydraSsoService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getOauthToken\n \n \n \n \n \n \n \n getOauthToken(oauthClientId: string, code?: string, error?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n code\n \n string\n \n\n \n Yes\n \n\n\n \n \n error\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n processRedirectCascade\n \n \n \n \n \n \n \n processRedirectCascade(initResponse: AxiosResponse, jwt: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n initResponse\n \n AxiosResponse\n \n\n \n No\n \n\n\n \n \n jwt\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n requestAuthCode\n \n \n \n \n \n \n \n requestAuthCode(userId: string, jwt: string, oauthClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n jwt\n \n string\n \n\n \n No\n \n\n\n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n HYDRA_PUBLIC_URI\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : Configuration.get('HYDRA_PUBLIC_URI') as string\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n MAX_REDIRECTS\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 10\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n Protected\n validateStatus\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/hydra-oauth.uc.ts:47\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { OauthConfig } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { HydraRedirectDto } from '@src/modules/oauth/service/dto/hydra.redirect.dto';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { AuthorizationParams } from '../controller/dto';\nimport { OAuthSSOError } from '../error/oauth-sso.error';\nimport { OAuthTokenDto } from '../interface';\nimport { HydraSsoService } from '../service/hydra.service';\nimport { OAuthService } from '../service/oauth.service';\n\n@Injectable()\nexport class HydraOauthUc {\n\tconstructor(\n\t\tprivate readonly oauthService: OAuthService,\n\t\tprivate readonly hydraSsoService: HydraSsoService,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(HydraOauthUc.name);\n\t}\n\n\tprivate readonly MAX_REDIRECTS: number = 10;\n\n\tprivate readonly HYDRA_PUBLIC_URI: string = Configuration.get('HYDRA_PUBLIC_URI') as string;\n\n\tasync getOauthToken(oauthClientId: string, code?: string, error?: string): Promise {\n\t\tif (error || !code) {\n\t\t\tthrow new OAuthSSOError(\n\t\t\t\t'Authorization Query Object has no authorization code or error',\n\t\t\t\terror || 'sso_auth_code_step'\n\t\t\t);\n\t\t}\n\t\tconst hydraOauthConfig: OauthConfig = await this.hydraSsoService.generateConfig(oauthClientId);\n\n\t\tconst oauthTokens: OAuthTokenDto = await this.oauthService.requestToken(\n\t\t\tcode,\n\t\t\thydraOauthConfig,\n\t\t\thydraOauthConfig.redirectUri\n\t\t);\n\n\t\tawait this.oauthService.validateToken(oauthTokens.idToken, hydraOauthConfig);\n\n\t\treturn oauthTokens;\n\t}\n\n\tprotected validateStatus = (status: number): boolean => status === 200 || status === 302;\n\n\tasync requestAuthCode(userId: string, jwt: string, oauthClientId: string): Promise {\n\t\tconst hydraOauthConfig: OauthConfig = await this.hydraSsoService.generateConfig(oauthClientId);\n\t\tconst axiosConfig: AxiosRequestConfig = {\n\t\t\theaders: {},\n\t\t\twithCredentials: true,\n\t\t\tmaxRedirects: 0,\n\t\t\tvalidateStatus: this.validateStatus,\n\t\t};\n\n\t\tconst initResponse = await this.hydraSsoService.initAuth(hydraOauthConfig, axiosConfig);\n\n\t\tconst response: AxiosResponse = await this.processRedirectCascade(initResponse, jwt);\n\n\t\tconst authParams: AuthorizationParams = response.data as AuthorizationParams;\n\t\treturn authParams;\n\t}\n\n\tprivate async processRedirectCascade(\n\t\tinitResponse: AxiosResponse,\n\t\tjwt: string\n\t): Promise> {\n\t\tlet dto = new HydraRedirectDto({\n\t\t\tcurrentRedirect: 0,\n\t\t\treferer: '',\n\t\t\tcookies: { localCookies: [`jwt=${jwt}`], hydraCookies: [] },\n\t\t\tresponse: initResponse,\n\t\t\taxiosConfig: initResponse.config,\n\t\t});\n\n\t\tdo {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tdto = await this.hydraSsoService.processRedirect(dto);\n\t\t} while (dto.response.status === 302 && dto.currentRedirect = this.MAX_REDIRECTS) {\n\t\t\tthrow new InternalServerErrorException(`Redirect limit of ${this.MAX_REDIRECTS} exceeded.`);\n\t\t}\n\t\treturn dto.response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/HydraRedirectDto.html":{"url":"classes/HydraRedirectDto.html","title":"class - HydraRedirectDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n HydraRedirectDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n axiosConfig\n \n \n cookies\n \n \n currentRedirect\n \n \n referer\n \n \n response\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: HydraRedirectDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n HydraRedirectDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n axiosConfig\n \n \n \n \n \n \n Type : AxiosRequestConfig\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n cookies\n \n \n \n \n \n \n Type : CookiesDto\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n currentRedirect\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n referer\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n response\n \n \n \n \n \n \n Type : AxiosResponse\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/hydra.redirect.dto.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { CookiesDto } from '@src/modules/oauth/service/dto/cookies.dto';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\n\nexport class HydraRedirectDto {\n\tconstructor(props: HydraRedirectDto) {\n\t\tthis.currentRedirect = props.currentRedirect;\n\t\tthis.referer = props.referer;\n\t\tthis.cookies = props.cookies;\n\t\tthis.response = props.response;\n\t\tthis.axiosConfig = props.axiosConfig;\n\t}\n\n\tcurrentRedirect: number;\n\n\treferer: string;\n\n\tcookies: CookiesDto;\n\n\tresponse: AxiosResponse;\n\n\taxiosConfig: AxiosRequestConfig;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/HydraSsoService.html":{"url":"injectables/HydraSsoService.html","title":"injectable - HydraSsoService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n HydraSsoService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/hydra.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n HOST\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n generateConfig\n \n \n Private\n get\n \n \n Async\n initAuth\n \n \n Protected\n processCookies\n \n \n Async\n processRedirect\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ltiRepo: LtiToolRepo, httpService: HttpService, oAuthEncryptionService: IEncryptionService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ltiRepo\n \n \n LtiToolRepo\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n oAuthEncryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n generateConfig\n \n \n \n \n \n \n \n generateConfig(oauthClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:99\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n get\n \n \n \n \n \n \n \n get(url: string, axiosConfig: AxiosRequestConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:126\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n axiosConfig\n \n AxiosRequestConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n initAuth\n \n \n \n \n \n \n \n initAuth(oauthConfig: OauthConfig, axiosConfig: AxiosRequestConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n axiosConfig\n \n AxiosRequestConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n processCookies\n \n \n \n \n \n \n \n processCookies(setCookies: string[], cookies: CookiesDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n setCookies\n \n string[]\n \n\n \n No\n \n\n\n \n \n cookies\n \n CookiesDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CookiesDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n processRedirect\n \n \n \n \n \n \n \n processRedirect(dto: HydraRedirectDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n HydraRedirectDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n HOST\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : Configuration.get('HOST') as string\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/hydra.service.ts:27\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpService } from '@nestjs/axios';\nimport { Inject, InternalServerErrorException } from '@nestjs/common';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { OauthConfig } from '@shared/domain';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthorizationParams } from '@src/modules/oauth/controller/dto/authorization.params';\nimport { CookiesDto } from '@src/modules/oauth/service/dto/cookies.dto';\nimport { HydraRedirectDto } from '@src/modules/oauth/service/dto/hydra.redirect.dto';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { nanoid } from 'nanoid';\nimport QueryString from 'qs';\nimport { Observable, firstValueFrom } from 'rxjs';\n\n@Injectable()\nexport class HydraSsoService {\n\tconstructor(\n\t\tprivate readonly ltiRepo: LtiToolRepo,\n\t\tprivate readonly httpService: HttpService,\n\t\t@Inject(DefaultEncryptionService) private readonly oAuthEncryptionService: IEncryptionService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {}\n\n\tprivate readonly HOST: string = Configuration.get('HOST') as string;\n\n\tasync initAuth(oauthConfig: OauthConfig, axiosConfig: AxiosRequestConfig): Promise {\n\t\tconst query = QueryString.stringify({\n\t\t\tresponse_type: oauthConfig.responseType,\n\t\t\tscope: oauthConfig.scope,\n\t\t\tclient_id: oauthConfig.clientId,\n\t\t\tredirect_uri: oauthConfig.redirectUri,\n\t\t\tstate: nanoid(15),\n\t\t});\n\t\tthis.logger.log(`${oauthConfig.authEndpoint}?${query}`);\n\t\tthis.logger.log(axiosConfig);\n\t\tconst res: Promise = this.get(`${oauthConfig.authEndpoint}?${query}`, axiosConfig);\n\t\treturn res;\n\t}\n\n\tasync processRedirect(dto: HydraRedirectDto): Promise {\n\t\tconst localDto: HydraRedirectDto = new HydraRedirectDto(dto);\n\t\tlet location = '';\n\n\t\tif (typeof localDto.response.headers.location === 'string') {\n\t\t\t({ location } = localDto.response.headers);\n\t\t}\n\n\t\tconst isLocal = !location.startsWith('http');\n\t\tconst isHydra = location.startsWith(Configuration.get('HYDRA_PUBLIC_URI') as string);\n\n\t\t// locations of schulcloud cookies are a relative path\n\t\tif (isLocal) {\n\t\t\tlocation = `${this.HOST}${location}`;\n\t\t}\n\n\t\tif (localDto.response.headers['set-cookie']) {\n\t\t\tlocalDto.cookies = this.processCookies(localDto.response.headers['set-cookie'], dto.cookies);\n\t\t}\n\n\t\tconst headerCookies: string = isHydra\n\t\t\t? localDto.cookies.hydraCookies.join('; ')\n\t\t\t: localDto.cookies.localCookies.join('; ');\n\n\t\tlocalDto.axiosConfig.headers = {\n\t\t\tReferer: localDto.referer,\n\t\t\tCookie: headerCookies,\n\t\t};\n\t\tthis.logger.log(localDto);\n\t\tlocalDto.response = await this.get(location, localDto.axiosConfig);\n\t\tlocalDto.referer = location;\n\t\tlocalDto.currentRedirect += 1;\n\n\t\treturn localDto;\n\t}\n\n\tprotected processCookies(setCookies: string[], cookies: CookiesDto): CookiesDto {\n\t\tconst { localCookies } = cookies;\n\t\tconst { hydraCookies } = cookies;\n\n\t\tsetCookies.forEach((item: string): void => {\n\t\t\tconst cookie: string = item.split(';')[0];\n\t\t\tif (cookie.startsWith('oauth2') && !hydraCookies.includes(cookie)) {\n\t\t\t\thydraCookies.push(cookie);\n\t\t\t} else if (!localCookies.includes(cookie)) {\n\t\t\t\tlocalCookies.push(cookie);\n\t\t\t}\n\t\t});\n\n\t\tconst cookiesDto = new CookiesDto({\n\t\t\tlocalCookies,\n\t\t\thydraCookies,\n\t\t});\n\t\treturn cookiesDto;\n\t}\n\n\tasync generateConfig(oauthClientId: string): Promise {\n\t\tconst tool: LtiToolDO = await this.ltiRepo.findByOauthClientId(oauthClientId);\n\n\t\t// Needs to be checked, because the fields can be undefined\n\t\tif (!tool.oAuthClientId || !tool.secret) {\n\t\t\tthrow new InternalServerErrorException(oauthClientId, 'Suitable tool not found!');\n\t\t}\n\n\t\tconst hydraUri: string = Configuration.get('HYDRA_PUBLIC_URI') as string;\n\t\tconst hydraOauthConfig = new OauthConfig({\n\t\t\tauthEndpoint: `${hydraUri}/oauth2/auth`,\n\t\t\tclientId: tool.oAuthClientId,\n\t\t\tclientSecret: this.oAuthEncryptionService.encrypt(tool.secret),\n\t\t\tgrantType: 'authorization_code',\n\t\t\tissuer: `${hydraUri}/`,\n\t\t\tjwksEndpoint: `${hydraUri}/.well-known/jwks.json`,\n\t\t\tlogoutEndpoint: `${hydraUri}/oauth2/sessions/logout`,\n\t\t\tprovider: 'hydra',\n\t\t\tredirectUri: `${Configuration.get('HOST') as string}/api/v3/sso/hydra/${oauthClientId}`,\n\t\t\tresponseType: 'code',\n\t\t\tscope: Configuration.get('NEXTCLOUD_SCOPES') as string, // Only Nextcloud is currently supported\n\t\t\ttokenEndpoint: `${hydraUri}/oauth2/token`,\n\t\t});\n\n\t\treturn hydraOauthConfig;\n\t}\n\n\tprivate get(url: string, axiosConfig: AxiosRequestConfig): Promise {\n\t\tconst respObservable: Observable = this.httpService.get(url, axiosConfig);\n\t\tconst res: Promise = firstValueFrom(respObservable);\n\t\treturn res;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IAccountConfig.html":{"url":"interfaces/IAccountConfig.html","title":"interface - IAccountConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IAccountConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/account-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n LOGIN_BLOCK_TIME\n \n \n \n \n TEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n LOGIN_BLOCK_TIME\n \n \n \n \n \n \n \n \n LOGIN_BLOCK_TIME: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n TEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE\n \n \n \n \n \n \n \n \n TEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IAccountConfig {\n\tLOGIN_BLOCK_TIME: number;\n\tTEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IBbbSettings.html":{"url":"interfaces/IBbbSettings.html","title":"interface - IBbbSettings","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IBbbSettings\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/bbb/bbb-settings.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n host\n \n \n \n \n presentationUrl\n \n \n \n \n salt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n host\n \n \n \n \n \n \n \n \n host: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n presentationUrl\n \n \n \n \n \n \n \n \n presentationUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n salt\n \n \n \n \n \n \n \n \n salt: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export const BbbSettings = Symbol('BbbSettings');\n\nexport interface IBbbSettings {\n\thost: string;\n\tsalt: string;\n\tpresentationUrl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICalendarEvent.html":{"url":"interfaces/ICalendarEvent.html","title":"interface - ICalendarEvent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICalendarEvent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/calendar/interface/calendar-event.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n data\n \n \n \n \n \n \n \n \n data: literal type[]\n\n \n \n\n\n \n \n Type : literal type[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface ICalendarEvent {\n\tdata: {\n\t\tattributes: {\n\t\t\tsummary: string;\n\t\t\t'x-sc-teamid': string;\n\t\t};\n\t}[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IClassEntityProps.html":{"url":"interfaces/IClassEntityProps.html","title":"interface - IClassEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IClassEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/class/entity/class.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n gradeLevel\n \n \n \n Optional\n \n id\n \n \n \n Optional\n \n invitationLink\n \n \n \n Optional\n \n ldapDN\n \n \n \n \n name\n \n \n \n \n schoolId\n \n \n \n Optional\n \n source\n \n \n \n Optional\n \n sourceOptions\n \n \n \n Optional\n \n successor\n \n \n \n \n teacherIds\n \n \n \n Optional\n \n userIds\n \n \n \n Optional\n \n year\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n gradeLevel\n \n \n \n \n \n \n \n \n gradeLevel: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n invitationLink\n \n \n \n \n \n \n \n \n invitationLink: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ldapDN\n \n \n \n \n \n \n \n \n ldapDN: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sourceOptions\n \n \n \n \n \n \n \n \n sourceOptions: ClassSourceOptionsEntity\n\n \n \n\n\n \n \n Type : ClassSourceOptionsEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n successor\n \n \n \n \n \n \n \n \n successor: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n teacherIds\n \n \n \n \n \n \n \n \n teacherIds: ObjectId[]\n\n \n \n\n\n \n \n Type : ObjectId[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userIds\n \n \n \n \n \n \n \n \n userIds: ObjectId[]\n\n \n \n\n\n \n \n Type : ObjectId[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n year\n \n \n \n \n \n \n \n \n year: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain';\nimport { ClassSourceOptionsEntity } from './class-source-options.entity';\n\nexport interface IClassEntityProps {\n\tid?: EntityId;\n\tname: string;\n\tschoolId: ObjectId;\n\tuserIds?: ObjectId[];\n\tteacherIds: ObjectId[];\n\tinvitationLink?: string;\n\tyear?: ObjectId;\n\tgradeLevel?: number;\n\tldapDN?: string;\n\tsuccessor?: ObjectId;\n\tsource?: string;\n\tsourceOptions?: ClassSourceOptionsEntity;\n}\n\n@Entity({ tableName: 'classes' })\n@Index({ properties: ['year', 'ldapDN'] })\nexport class ClassEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\t@Index()\n\tschoolId: ObjectId;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tuserIds?: ObjectId[];\n\n\t@Property()\n\t@Index()\n\tteacherIds: ObjectId[];\n\n\t@Property({ nullable: true })\n\tinvitationLink?: string;\n\n\t@Property({ nullable: true })\n\tyear?: ObjectId;\n\n\t@Property({ nullable: true })\n\tgradeLevel?: number;\n\n\t@Property({ nullable: true })\n\tldapDN?: string;\n\n\t@Property({ nullable: true })\n\tsuccessor?: ObjectId;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tsource?: string;\n\n\t@Embedded(() => ClassSourceOptionsEntity, { object: true, nullable: true })\n\tsourceOptions?: ClassSourceOptionsEntity;\n\n\tprivate validate(props: IClassEntityProps) {\n\t\tif (props.gradeLevel !== undefined && (props.gradeLevel 13)) {\n\t\t\tthrow new Error('gradeLevel must be value beetween 1 and 13');\n\t\t}\n\t}\n\n\tconstructor(props: IClassEntityProps) {\n\t\tsuper();\n\t\tthis.validate(props);\n\n\t\tif (props.id !== undefined) {\n\t\t\tthis.id = props.id;\n\t\t}\n\n\t\tthis.name = props.name;\n\t\tthis.schoolId = props.schoolId;\n\n\t\tif (props.userIds !== undefined) {\n\t\t\tthis.userIds = props.userIds;\n\t\t}\n\n\t\tthis.teacherIds = props.teacherIds;\n\n\t\tif (props.invitationLink !== undefined) {\n\t\t\tthis.invitationLink = props.invitationLink;\n\t\t}\n\n\t\tif (props.year !== undefined) {\n\t\t\tthis.year = props.year;\n\t\t}\n\t\tif (props.gradeLevel !== undefined) {\n\t\t\tthis.gradeLevel = props.gradeLevel;\n\t\t}\n\t\tif (props.ldapDN !== undefined) {\n\t\t\tthis.ldapDN = props.ldapDN;\n\t\t}\n\n\t\tif (props.successor !== undefined) {\n\t\t\tthis.successor = props.successor;\n\t\t}\n\n\t\tif (props.source !== undefined) {\n\t\t\tthis.source = props.source;\n\t\t}\n\n\t\tif (props.sourceOptions !== undefined) {\n\t\t\tthis.sourceOptions = props.sourceOptions;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICollaborativeStorageStrategy.html":{"url":"interfaces/ICollaborativeStorageStrategy.html","title":"interface - ICollaborativeStorageStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICollaborativeStorageStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts\n \n\n\n \n Description\n \n \n base interface for all CollaborativeStorage Strategies\n\n \n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n deleteTeam\n \n \n \n \n updateTeam\n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n createTeam\n \n \n \n \n \n \ncreateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteTeam\n \n \n \n \n \n \ndeleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeam\n \n \n \n \n \n \nupdateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateTeamPermissionsForRole\n \n \n \n \n \n \nupdateTeamPermissionsForRole(dto: TeamRolePermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/base.interface.strategy.ts:12\n \n \n\n\n \n \n Updates The Permissions for the given Role in the given Team\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n dto\n \n TeamRolePermissionsDto\n \n\n \n No\n \n\n\n \n The DTO to be processed\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { TeamDto } from '@src/modules/collaborative-storage/services/dto/team.dto';\nimport { TeamRolePermissionsDto } from '../dto/team-role-permissions.dto';\n\n/**\n * base interface for all CollaborativeStorage Strategies\n */\nexport interface ICollaborativeStorageStrategy {\n\t/**\n\t * Updates The Permissions for the given Role in the given Team\n\t * @param dto The DTO to be processed\n\t */\n\tupdateTeamPermissionsForRole(dto: TeamRolePermissionsDto): Promise;\n\n\tdeleteTeam(teamId: string): Promise;\n\n\tcreateTeam(team: TeamDto): Promise;\n\n\tupdateTeam(team: TeamDto): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICollectionFilePath.html":{"url":"interfaces/ICollectionFilePath.html","title":"interface - ICollectionFilePath","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICollectionFilePath\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/uc/database-management.uc.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n collectionName\n \n \n \n \n filePath\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n collectionName\n \n \n \n \n \n \n \n \n collectionName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n filePath\n \n \n \n \n \n \n \n \n filePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { StorageProviderEntity, System } from '@shared/domain';\nimport { DatabaseManagementService } from '@shared/infra/database';\nimport { DefaultEncryptionService, IEncryptionService, LdapEncryptionService } from '@shared/infra/encryption';\nimport { FileSystemAdapter } from '@shared/infra/file-system';\nimport { LegacyLogger } from '@src/core/logger';\nimport { orderBy } from 'lodash';\nimport { BsonConverter } from '../converter/bson.converter';\nimport { generateSeedData } from '../seed-data/generateSeedData';\n\nexport interface ICollectionFilePath {\n\tfilePath: string;\n\tcollectionName: string;\n}\n\nconst systemsCollectionName = 'systems';\nconst storageprovidersCollectionName = 'storageproviders';\n\nconst defaultSecretReplacementHintText = 'replace with secret placeholder';\n\n@Injectable()\nexport class DatabaseManagementUc {\n\t/**\n\t * relative path to seed data folder based of location of this file.\n\t */\n\tprivate basePath = '../../../../../../backup';\n\n\tconstructor(\n\t\tprivate fileSystemAdapter: FileSystemAdapter,\n\t\tprivate databaseManagementService: DatabaseManagementService,\n\t\tprivate bsonConverter: BsonConverter,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate em: EntityManager,\n\t\t@Inject(DefaultEncryptionService) private readonly defaultEncryptionService: IEncryptionService,\n\t\t@Inject(LdapEncryptionService) private readonly ldapEncryptionService: IEncryptionService\n\t) {\n\t\tthis.logger.setContext(DatabaseManagementUc.name);\n\t}\n\n\t/**\n\t * absolute path reference for seed data base folder.\n\t */\n\tprivate get baseDir(): string {\n\t\tconst folderPath = this.fileSystemAdapter.joinPath(__dirname, this.basePath);\n\t\treturn folderPath;\n\t}\n\n\t/**\n\t * setup dir with json files\n\t */\n\tprivate getSeedFolder() {\n\t\treturn this.fileSystemAdapter.joinPath(this.baseDir, 'setup');\n\t}\n\n\t/**\n\t * export folder name based on current date\n\t * @returns\n\t */\n\tprivate getTargetFolder(toSeedFolder?: boolean) {\n\t\tif (toSeedFolder === true) {\n\t\t\tconst targetFolder = this.getSeedFolder();\n\t\t\treturn targetFolder;\n\t\t}\n\t\tconst now = new Date();\n\t\tconst currentDateTime = `${now.getFullYear()}_${\n\t\t\tnow.getMonth() + 1\n\t\t}_${now.getDate()}_${now.getHours()}_${now.getMinutes()}_${now.getSeconds()}`;\n\t\tconst targetFolder = this.fileSystemAdapter.joinPath(this.baseDir, currentDateTime);\n\t\treturn targetFolder;\n\t}\n\n\t/**\n\t * Loads all collection names from database and adds related file paths.\n\t * @returns {ICollectionFilePath}\n\t */\n\tprivate async loadAllCollectionsFromDatabase(targetFolder: string): Promise {\n\t\tconst collections = await this.databaseManagementService.getCollectionNames();\n\t\tconst collectionsWithFilePaths = collections.map((collectionName) => {\n\t\t\treturn {\n\t\t\t\tfilePath: this.fileSystemAdapter.joinPath(targetFolder, `${collectionName}.json`),\n\t\t\t\tcollectionName,\n\t\t\t};\n\t\t});\n\t\treturn collectionsWithFilePaths;\n\t}\n\n\t/**\n\t * Loads all collection names and file paths from backup files.\n\t * @returns {ICollectionFilePath}\n\t */\n\tprivate async loadAllCollectionsFromFilesystem(baseDir: string): Promise {\n\t\tconst filenames = await this.fileSystemAdapter.readDir(baseDir);\n\t\tconst collectionsWithFilePaths = filenames.map((fileName) => {\n\t\t\treturn {\n\t\t\t\tfilePath: this.fileSystemAdapter.joinPath(baseDir, fileName),\n\t\t\t\tcollectionName: fileName.split('.')[0],\n\t\t\t};\n\t\t});\n\t\treturn collectionsWithFilePaths;\n\t}\n\n\t/**\n\t * Scans for existing collections and optionally filters them based on \n\t * @param source\n\t * @param collectionNameFilter\n\t * @returns {ICollectionFilePath} the filtered collection names and related file paths\n\t */\n\tprivate async loadCollectionsAvailableFromSourceAndFilterByCollectionNames(\n\t\tsource: 'files' | 'database',\n\t\tfolder: string,\n\t\tcollectionNameFilter?: string[]\n\t) {\n\t\tlet allCollectionsWithFilePaths: ICollectionFilePath[] = [];\n\n\t\t// load all available collections from source\n\t\tif (source === 'files') {\n\t\t\tallCollectionsWithFilePaths = await this.loadAllCollectionsFromFilesystem(folder);\n\t\t} else {\n\t\t\t// source === 'database'\n\t\t\tallCollectionsWithFilePaths = await this.loadAllCollectionsFromDatabase(folder);\n\t\t}\n\n\t\t// when a collection name filter is given, apply it and check\n\t\tif (Array.isArray(collectionNameFilter) && collectionNameFilter.length > 0) {\n\t\t\tconst filteredCollectionsWithFilePaths = allCollectionsWithFilePaths.filter(({ collectionName }) =>\n\t\t\t\tcollectionNameFilter?.includes(collectionName)\n\t\t\t);\n\n\t\t\tif (filteredCollectionsWithFilePaths.length !== collectionNameFilter.length) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`At least one collectionName of ${JSON.stringify(\n\t\t\t\t\t\tcollectionNameFilter\n\t\t\t\t\t)} is invalid. Collection names available in '${source}' are: ${JSON.stringify(\n\t\t\t\t\t\tallCollectionsWithFilePaths.map((file) => file.collectionName)\n\t\t\t\t\t)}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn filteredCollectionsWithFilePaths;\n\t\t}\n\n\t\treturn allCollectionsWithFilePaths;\n\t}\n\n\tprivate async dropCollectionIfExists(collectionName: string) {\n\t\tconst collectionExists = await this.databaseManagementService.collectionExists(collectionName);\n\t\tif (collectionExists) {\n\t\t\t// clear existing documents, if collection exists\n\t\t\tawait this.databaseManagementService.clearCollection(collectionName);\n\t\t} else {\n\t\t\t// create collection\n\t\t\tawait this.databaseManagementService.createCollection(collectionName);\n\t\t}\n\t}\n\n\tasync seedDatabaseCollectionsFromFactories(collections?: string[]): Promise {\n\t\tconst promises = generateSeedData((s: string) => this.injectEnvVars(s))\n\t\t\t.filter((data) => {\n\t\t\t\tif (collections && collections.length > 0) {\n\t\t\t\t\treturn collections.includes(data.collectionName);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t\t.map(async ({ collectionName, data }) => {\n\t\t\t\tif (collectionName === systemsCollectionName) {\n\t\t\t\t\tthis.encryptSecretsInSystems(data as System[]);\n\t\t\t\t}\n\t\t\t\tawait this.dropCollectionIfExists(collectionName);\n\n\t\t\t\tawait this.em.persistAndFlush(data);\n\n\t\t\t\treturn `${collectionName}:${data.length}`;\n\t\t\t});\n\n\t\tconst seededCollectionsWithAmount = await Promise.all(promises);\n\n\t\treturn seededCollectionsWithAmount;\n\t}\n\n\t/**\n\t * Imports all or filtered from filesystem as bson to database.\n\t * The behaviour should match $ mongoimport\n\t * @param collections optional filter applied on existing collections\n\t * @returns the list of collection names exported\n\t */\n\tasync seedDatabaseCollectionsFromFileSystem(collections?: string[]): Promise {\n\t\t// detect collections to seed based on filesystem data\n\t\tconst setupPath = this.getSeedFolder();\n\t\tconst collectionsToSeed = await this.loadCollectionsAvailableFromSourceAndFilterByCollectionNames(\n\t\t\t'files',\n\t\t\tsetupPath,\n\t\t\tcollections\n\t\t);\n\n\t\tconst seededCollectionsWithAmount: string[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcollectionsToSeed.map(async ({ filePath, collectionName }) => {\n\t\t\t\t// load text from backup file\n\t\t\t\tlet fileContent = await this.fileSystemAdapter.readFile(filePath);\n\n\t\t\t\tif (collectionName === systemsCollectionName || collectionName === storageprovidersCollectionName) {\n\t\t\t\t\tfileContent = this.injectEnvVars(fileContent);\n\t\t\t\t}\n\n\t\t\t\t// create bson-objects from text\n\t\t\t\tconst bsonDocuments = JSON.parse(fileContent) as unknown[];\n\t\t\t\t// deserialize bson (format of mongoexport) to json documents we can import to mongo\n\t\t\t\tconst jsonDocuments = this.bsonConverter.deserialize(bsonDocuments);\n\n\t\t\t\t// hint: collection drop/create is very slow, delete all documents instead\n\t\t\t\tconst collectionExists = await this.databaseManagementService.collectionExists(collectionName);\n\t\t\t\tif (collectionExists) {\n\t\t\t\t\t// clear existing documents, if collection exists\n\t\t\t\t\tawait this.databaseManagementService.clearCollection(collectionName);\n\t\t\t\t} else {\n\t\t\t\t\t// create collection\n\t\t\t\t\tawait this.databaseManagementService.createCollection(collectionName);\n\t\t\t\t}\n\n\t\t\t\tthis.encryptSecrets(collectionName, jsonDocuments);\n\n\t\t\t\t// import backup data into database collection\n\t\t\t\tconst importedDocumentsAmount = await this.databaseManagementService.importCollection(\n\t\t\t\t\tcollectionName,\n\t\t\t\t\tjsonDocuments\n\t\t\t\t);\n\t\t\t\t// keep collection name and number of imported documents\n\t\t\t\tseededCollectionsWithAmount.push(`${collectionName}:${importedDocumentsAmount}`);\n\t\t\t})\n\t\t);\n\t\treturn seededCollectionsWithAmount;\n\t}\n\n\t/**\n\t * Exports all or defined from database as bson to filesystem.\n\t * The behaviour should match $ mongoexport\n\t * @param collections optional filter applied on existing collections\n\t * @param toSeedFolder optional override existing seed data files\n\t * @returns the list of collection names exported\n\t */\n\tasync exportCollectionsToFileSystem(collections?: string[], toSeedFolder?: boolean): Promise {\n\t\tconst targetFolder = this.getTargetFolder(toSeedFolder);\n\t\tawait this.fileSystemAdapter.createDir(targetFolder);\n\t\t// detect collections to export based on database collections\n\t\tconst collectionsToExport = await this.loadCollectionsAvailableFromSourceAndFilterByCollectionNames(\n\t\t\t'database',\n\t\t\ttargetFolder,\n\t\t\tcollections\n\t\t);\n\t\tconst exportedCollections: string[] = [];\n\n\t\tawait Promise.all(\n\t\t\tcollectionsToExport.map(async ({ filePath, collectionName }) => {\n\t\t\t\t// load json documents from collection\n\t\t\t\tconst jsonDocuments = await this.databaseManagementService.findDocumentsOfCollection(collectionName);\n\t\t\t\tthis.removeSecrets(collectionName, jsonDocuments);\n\t\t\t\t// serialize to bson (format of mongoexport)\n\t\t\t\tconst bsonDocuments = this.bsonConverter.serialize(jsonDocuments);\n\t\t\t\t// sort results to have 'new' data added at documents end\n\t\t\t\tconst sortedBsonDocuments = orderBy(bsonDocuments, ['_id.$oid', 'createdAt.$date'], ['asc', 'asc']);\n\t\t\t\t// convert to text\n\t\t\t\tconst TAB = '\t';\n\t\t\t\tconst json = JSON.stringify(sortedBsonDocuments, undefined, TAB);\n\t\t\t\t// persist to filesystem\n\t\t\t\tawait this.fileSystemAdapter.writeFile(filePath, json + this.fileSystemAdapter.EOL);\n\t\t\t\t// keep collection name and number of exported documents\n\t\t\t\texportedCollections.push(`${collectionName}:${sortedBsonDocuments.length}`);\n\t\t\t})\n\t\t);\n\t\treturn exportedCollections;\n\t}\n\n\t/**\n\t * Updates the indexes in the database based on definitions in entities\n\t */\n\tasync syncIndexes(): Promise {\n\t\tawait this.createUserSearchIndex();\n\t\treturn this.databaseManagementService.syncIndexes();\n\t}\n\n\tprivate async createUserSearchIndex(): Promise {\n\t\tconst usersCollection = this.databaseManagementService.getDatabaseCollection('users');\n\t\tconst userSearchIndexExists = await usersCollection.indexExists('userSearchIndex');\n\t\tconst indexes = await usersCollection.indexes();\n\n\t\tif (userSearchIndexExists) {\n\t\t\tconst userSearchIndex = indexes.filter((i) => i.name === 'userSearchIndex');\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (userSearchIndex[0].key?.schoolId === 1) {\n\t\t\t\tthis.logger.debug('userSearcIndex does not require update');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait usersCollection.dropIndex('userSearchIndex');\n\t\t}\n\n\t\tawait usersCollection.createIndex(\n\t\t\t{\n\t\t\t\tfirstName: 'text',\n\t\t\t\tlastName: 'text',\n\t\t\t\temail: 'text',\n\t\t\t\tfirstNameSearchValues: 'text',\n\t\t\t\tlastNameSearchValues: 'text',\n\t\t\t\temailSearchValues: 'text',\n\t\t\t\tschoolId: 1,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'userSearchIndex',\n\t\t\t\tweights: {\n\t\t\t\t\tfirstName: 15,\n\t\t\t\t\tlastName: 15,\n\t\t\t\t\temail: 15,\n\t\t\t\t\tfirstNameSearchValues: 3,\n\t\t\t\t\tlastNameSearchValues: 3,\n\t\t\t\t\temailSearchValues: 2,\n\t\t\t\t},\n\t\t\t\tdefault_language: 'none', // no stop words and no stemming,\n\t\t\t\tlanguage_override: 'de',\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate injectEnvVars(json: string): string {\n\t\t// replace ${VAR} with VAR content\n\t\tjson = json.replace(/(?\n\t\t\tthis.resolvePlaceholder(placeholder.substring(2, placeholder.length - 1))\n\t\t);\n\t\t// replace \\$ with $ (escaped placeholder sequence)\n\t\tjson = json.replace(/\\\\\\$/g, '$');\n\t\treturn json;\n\t}\n\n\tprivate resolvePlaceholder(placeholder: string) {\n\t\tif (Configuration.has(placeholder)) {\n\t\t\treturn Configuration.get(placeholder) as string;\n\t\t}\n\t\tconst placeholderValue = this.configService.get(placeholder);\n\t\tif (placeholderValue) {\n\t\t\treturn placeholderValue;\n\t\t}\n\t\tthis.logger.warn(`Placeholder \"${placeholder}\" could not be resolved!`);\n\t\treturn '';\n\t}\n\n\tprivate encryptSecrets(collectionName: string, jsonDocuments: unknown[]) {\n\t\tif (collectionName === systemsCollectionName) {\n\t\t\tthis.encryptSecretsInSystems(jsonDocuments as System[]);\n\t\t}\n\t}\n\n\tprivate encryptSecretsInSystems(systems: System[]) {\n\t\tsystems.forEach((system) => {\n\t\t\tif (system.oauthConfig) {\n\t\t\t\tsystem.oauthConfig.clientSecret = this.defaultEncryptionService.encrypt(system.oauthConfig.clientSecret);\n\t\t\t}\n\t\t\tif (system.oidcConfig) {\n\t\t\t\tsystem.oidcConfig.clientSecret = this.defaultEncryptionService.encrypt(system.oidcConfig.clientSecret);\n\t\t\t}\n\t\t\tif (system.ldapConfig) {\n\t\t\t\tsystem.ldapConfig.searchUserPassword = this.ldapEncryptionService.encrypt(\n\t\t\t\t\tsystem.ldapConfig.searchUserPassword as string\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t\treturn systems;\n\t}\n\n\t/**\n\t * Removes all known secrets (hard coded) from the export.\n\t * Manual replacement with the intend placeholders or value is mandatory.\n\t * Currently this affects system and storageproviders collections.\n\t */\n\tprivate removeSecrets(collectionName: string, jsonDocuments: unknown[]) {\n\t\tif (collectionName === systemsCollectionName) {\n\t\t\tthis.removeSecretsFromSystems(jsonDocuments as System[]);\n\t\t}\n\t\tif (collectionName === storageprovidersCollectionName) {\n\t\t\tthis.removeSecretsFromStorageproviders(jsonDocuments as StorageProviderEntity[]);\n\t\t}\n\t}\n\n\tprivate removeSecretsFromStorageproviders(storageProviders: StorageProviderEntity[]) {\n\t\tstorageProviders.forEach((storageProvider) => {\n\t\t\tstorageProvider.accessKeyId = defaultSecretReplacementHintText;\n\t\t\tstorageProvider.secretAccessKey = defaultSecretReplacementHintText;\n\t\t});\n\t}\n\n\tprivate removeSecretsFromSystems(systems: System[]) {\n\t\tsystems.forEach((system) => {\n\t\t\tif (system.oauthConfig) {\n\t\t\t\tsystem.oauthConfig.clientSecret = defaultSecretReplacementHintText;\n\t\t\t}\n\t\t\tif (system.oidcConfig) {\n\t\t\t\tsystem.oidcConfig.clientSecret = defaultSecretReplacementHintText;\n\t\t\t}\n\t\t\tif (system.ldapConfig) {\n\t\t\t\tsystem.ldapConfig.searchUserPassword = defaultSecretReplacementHintText;\n\t\t\t}\n\t\t});\n\t\treturn systems;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeConfig.html":{"url":"interfaces/ICommonCartridgeConfig.html","title":"interface - ICommonCartridgeConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge.config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n FEATURE_IMSCC_COURSE_EXPORT_ENABLED\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n FEATURE_IMSCC_COURSE_EXPORT_ENABLED\n \n \n \n \n \n \n \n \n FEATURE_IMSCC_COURSE_EXPORT_ENABLED: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface ICommonCartridgeConfig {\n\tFEATURE_IMSCC_COURSE_EXPORT_ENABLED: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeElement.html":{"url":"interfaces/ICommonCartridgeElement.html","title":"interface - ICommonCartridgeElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-element.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n transform\n \n \n \n \n \n \ntransform()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-element.interface.ts:2\n \n \n\n\n \n \n\n \n Returns : Record\n\n \n \n \n \n \n\n\n \n\n\n \n export interface ICommonCartridgeElement {\n\ttransform(): Record;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeFile.html":{"url":"interfaces/ICommonCartridgeFile.html","title":"interface - ICommonCartridgeFile","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeFile\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n content\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n canInline\n \n \n \n \n \n \ncanInline()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file.interface.ts:2\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \ncontent()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file.interface.ts:3\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n\n\n \n\n\n \n export interface ICommonCartridgeFile {\n\tcanInline(): boolean;\n\tcontent(): string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeFileBuilder.html":{"url":"interfaces/ICommonCartridgeFileBuilder.html","title":"interface - ICommonCartridgeFileBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeFileBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n addOrganization\n \n \n \n \n addResourceToFile\n \n \n \n \n build\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n addOrganization\n \n \n \n \n \n \naddOrganization(props: ICommonCartridgeOrganizationProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeOrganizationProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeOrganizationBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addResourceToFile\n \n \n \n \n \n \naddResourceToFile(props: ICommonCartridgeResourceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeResourceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeFileBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:32\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n\n\n \n import AdmZip from 'adm-zip';\nimport { Builder } from 'xml2js';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeManifestElement } from './common-cartridge-manifest-element';\nimport {\n\tCommonCartridgeResourceItemElement,\n\tICommonCartridgeResourceProps,\n} from './common-cartridge-resource-item-element';\nimport {\n\tCommonCartridgeOrganizationItemElement,\n\tICommonCartridgeOrganizationProps,\n} from './common-cartridge-organization-item-element';\n\nexport type ICommonCartridgeFileBuilderOptions = {\n\tidentifier: string;\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport interface ICommonCartridgeOrganizationBuilder {\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder;\n}\n\nexport interface ICommonCartridgeFileBuilder {\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder;\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder;\n\n\tbuild(): Promise;\n}\n\nclass CommonCartridgeOrganizationBuilder implements ICommonCartridgeOrganizationBuilder {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeOrganizationProps,\n\t\tprivate readonly xmlBuilder: Builder,\n\t\tprivate readonly zipBuilder: AdmZip\n\t) {}\n\n\tget organization(): ICommonCartridgeElement {\n\t\treturn new CommonCartridgeOrganizationItemElement(this.props);\n\t}\n\n\tget resources(): ICommonCartridgeElement[] {\n\t\treturn this.props.resources.map(\n\t\t\t(resourceProps) => new CommonCartridgeResourceItemElement(resourceProps, this.xmlBuilder)\n\t\t);\n\t}\n\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst newResource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tthis.props.resources.push(props);\n\t\tif (!newResource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(newResource.content()));\n\t\t}\n\t\treturn this;\n\t}\n}\n\nexport class CommonCartridgeFileBuilder implements ICommonCartridgeFileBuilder {\n\tprivate readonly xmlBuilder = new Builder();\n\n\tprivate readonly zipBuilder = new AdmZip();\n\n\tprivate readonly organizations = new Array();\n\n\tprivate readonly resources = new Array();\n\n\tconstructor(private readonly options: ICommonCartridgeFileBuilderOptions) {}\n\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst organizationBuilder = new CommonCartridgeOrganizationBuilder(props, this.xmlBuilder, this.zipBuilder);\n\t\tthis.organizations.push(organizationBuilder);\n\t\treturn organizationBuilder;\n\t}\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder {\n\t\tconst resource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tif (!resource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(resource.content()));\n\t\t}\n\t\tthis.resources.push(resource);\n\t\treturn this;\n\t}\n\n\tasync build(): Promise {\n\t\tconst organizations = this.organizations.map((organization) => organization.organization);\n\t\tconst resources = this.organizations.flatMap((organization) => organization.resources).concat(this.resources);\n\t\tconst manifest = this.xmlBuilder.buildObject(\n\t\t\tnew CommonCartridgeManifestElement(\n\t\t\t\t{\n\t\t\t\t\tidentifier: this.options.identifier,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: this.options.title,\n\t\t\t\t\tcopyrightOwners: this.options.copyrightOwners,\n\t\t\t\t\tcreationYear: this.options.creationYear,\n\t\t\t\t\tversion: this.options.version,\n\t\t\t\t},\n\t\t\t\torganizations,\n\t\t\t\tresources\n\t\t\t).transform()\n\t\t);\n\t\tthis.zipBuilder.addFile('imsmanifest.xml', Buffer.from(manifest));\n\t\treturn this.zipBuilder.toBufferPromise();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICommonCartridgeOrganizationBuilder.html":{"url":"interfaces/ICommonCartridgeOrganizationBuilder.html","title":"interface - ICommonCartridgeOrganizationBuilder","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICommonCartridgeOrganizationBuilder\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n addResourceToOrganization\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n addResourceToOrganization\n \n \n \n \n \n \naddResourceToOrganization(props: ICommonCartridgeResourceProps)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/common-cartridge/common-cartridge-file-builder.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ICommonCartridgeResourceProps\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICommonCartridgeOrganizationBuilder\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import AdmZip from 'adm-zip';\nimport { Builder } from 'xml2js';\nimport { CommonCartridgeVersion } from './common-cartridge-enums';\nimport { ICommonCartridgeElement } from './common-cartridge-element.interface';\nimport { CommonCartridgeManifestElement } from './common-cartridge-manifest-element';\nimport {\n\tCommonCartridgeResourceItemElement,\n\tICommonCartridgeResourceProps,\n} from './common-cartridge-resource-item-element';\nimport {\n\tCommonCartridgeOrganizationItemElement,\n\tICommonCartridgeOrganizationProps,\n} from './common-cartridge-organization-item-element';\n\nexport type ICommonCartridgeFileBuilderOptions = {\n\tidentifier: string;\n\ttitle: string;\n\tcopyrightOwners: string;\n\tcreationYear: string;\n\tversion: CommonCartridgeVersion;\n};\n\nexport interface ICommonCartridgeOrganizationBuilder {\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder;\n}\n\nexport interface ICommonCartridgeFileBuilder {\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder;\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder;\n\n\tbuild(): Promise;\n}\n\nclass CommonCartridgeOrganizationBuilder implements ICommonCartridgeOrganizationBuilder {\n\tconstructor(\n\t\tprivate readonly props: ICommonCartridgeOrganizationProps,\n\t\tprivate readonly xmlBuilder: Builder,\n\t\tprivate readonly zipBuilder: AdmZip\n\t) {}\n\n\tget organization(): ICommonCartridgeElement {\n\t\treturn new CommonCartridgeOrganizationItemElement(this.props);\n\t}\n\n\tget resources(): ICommonCartridgeElement[] {\n\t\treturn this.props.resources.map(\n\t\t\t(resourceProps) => new CommonCartridgeResourceItemElement(resourceProps, this.xmlBuilder)\n\t\t);\n\t}\n\n\taddResourceToOrganization(props: ICommonCartridgeResourceProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst newResource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tthis.props.resources.push(props);\n\t\tif (!newResource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(newResource.content()));\n\t\t}\n\t\treturn this;\n\t}\n}\n\nexport class CommonCartridgeFileBuilder implements ICommonCartridgeFileBuilder {\n\tprivate readonly xmlBuilder = new Builder();\n\n\tprivate readonly zipBuilder = new AdmZip();\n\n\tprivate readonly organizations = new Array();\n\n\tprivate readonly resources = new Array();\n\n\tconstructor(private readonly options: ICommonCartridgeFileBuilderOptions) {}\n\n\taddOrganization(props: ICommonCartridgeOrganizationProps): ICommonCartridgeOrganizationBuilder {\n\t\tconst organizationBuilder = new CommonCartridgeOrganizationBuilder(props, this.xmlBuilder, this.zipBuilder);\n\t\tthis.organizations.push(organizationBuilder);\n\t\treturn organizationBuilder;\n\t}\n\n\taddResourceToFile(props: ICommonCartridgeResourceProps): ICommonCartridgeFileBuilder {\n\t\tconst resource = new CommonCartridgeResourceItemElement(props, this.xmlBuilder);\n\t\tif (!resource.canInline()) {\n\t\t\tthis.zipBuilder.addFile(props.href, Buffer.from(resource.content()));\n\t\t}\n\t\tthis.resources.push(resource);\n\t\treturn this;\n\t}\n\n\tasync build(): Promise {\n\t\tconst organizations = this.organizations.map((organization) => organization.organization);\n\t\tconst resources = this.organizations.flatMap((organization) => organization.resources).concat(this.resources);\n\t\tconst manifest = this.xmlBuilder.buildObject(\n\t\t\tnew CommonCartridgeManifestElement(\n\t\t\t\t{\n\t\t\t\t\tidentifier: this.options.identifier,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttitle: this.options.title,\n\t\t\t\t\tcopyrightOwners: this.options.copyrightOwners,\n\t\t\t\t\tcreationYear: this.options.creationYear,\n\t\t\t\t\tversion: this.options.version,\n\t\t\t\t},\n\t\t\t\torganizations,\n\t\t\t\tresources\n\t\t\t).transform()\n\t\t);\n\t\tthis.zipBuilder.addFile('imsmanifest.xml', Buffer.from(manifest));\n\t\treturn this.zipBuilder.toBufferPromise();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentEtherpadProperties.html":{"url":"interfaces/IComponentEtherpadProperties.html","title":"interface - IComponentEtherpadProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentEtherpadProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n description\n \n \n \n \n title\n \n \n \n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentGeogebraProperties.html":{"url":"interfaces/IComponentGeogebraProperties.html","title":"interface - IComponentGeogebraProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentGeogebraProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n materialId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n materialId\n \n \n \n \n \n \n \n \n materialId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentInternalProperties.html":{"url":"interfaces/IComponentInternalProperties.html","title":"interface - IComponentInternalProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentInternalProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentLernstoreProperties.html":{"url":"interfaces/IComponentLernstoreProperties.html","title":"interface - IComponentLernstoreProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentLernstoreProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n resources\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n resources\n \n \n \n \n \n \n \n \n resources: literal type[]\n\n \n \n\n\n \n \n Type : literal type[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentNexboardProperties.html":{"url":"interfaces/IComponentNexboardProperties.html","title":"interface - IComponentNexboardProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentNexboardProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n board\n \n \n \n \n description\n \n \n \n \n title\n \n \n \n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n board\n \n \n \n \n \n \n \n \n board: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IComponentTextProperties.html":{"url":"interfaces/IComponentTextProperties.html","title":"interface - IComponentTextProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IComponentTextProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n text\n \n \n \n \n \n \n \n \n text: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IContextExternalToolProperties.html":{"url":"interfaces/IContextExternalToolProperties.html","title":"interface - IContextExternalToolProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IContextExternalToolProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/entity/context-external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextId\n \n \n \n \n contextType\n \n \n \n Optional\n \n displayName\n \n \n \n Optional\n \n parameters\n \n \n \n \n schoolTool\n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextId\n \n \n \n \n \n \n \n \n contextId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n \n \n contextType: ContextExternalToolType\n\n \n \n\n\n \n \n Type : ContextExternalToolType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n \n \n displayName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n \n \n parameters: CustomParameterEntryEntity[]\n\n \n \n\n\n \n \n Type : CustomParameterEntryEntity[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n schoolTool\n \n \n \n \n \n \n \n \n schoolTool: SchoolExternalToolEntity\n\n \n \n\n\n \n \n Type : SchoolExternalToolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n toolVersion: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { CustomParameterEntryEntity } from '../../common/entity';\nimport { SchoolExternalToolEntity } from '../../school-external-tool/entity';\nimport { ContextExternalToolType } from './context-external-tool-type.enum';\n\nexport interface IContextExternalToolProperties {\n\tschoolTool: SchoolExternalToolEntity;\n\n\tcontextId: string;\n\n\tcontextType: ContextExternalToolType;\n\n\tdisplayName?: string;\n\n\tparameters?: CustomParameterEntryEntity[];\n\n\ttoolVersion: number;\n}\n\n@Entity({ tableName: 'context_external_tools' })\nexport class ContextExternalToolEntity extends BaseEntityWithTimestamps {\n\t@ManyToOne()\n\tschoolTool: SchoolExternalToolEntity;\n\n\t@Property()\n\tcontextId: string;\n\n\t@Property()\n\tcontextType: ContextExternalToolType;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Embedded(() => CustomParameterEntryEntity, { array: true })\n\tparameters: CustomParameterEntryEntity[];\n\n\t@Property()\n\ttoolVersion: number;\n\n\tconstructor(props: IContextExternalToolProperties) {\n\t\tsuper();\n\t\tthis.schoolTool = props.schoolTool;\n\t\tthis.contextId = props.contextId;\n\t\tthis.contextType = props.contextType;\n\t\tthis.displayName = props.displayName;\n\t\tthis.parameters = props.parameters ?? [];\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICopyFileDO.html":{"url":"interfaces/ICopyFileDO.html","title":"interface - ICopyFileDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICopyFileDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/exchange/files-storage.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n \n name\n \n \n \n \n sourceId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n sourceId\n \n \n \n \n \n \n \n \n sourceId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { EntityId } from '@shared/domain';\n\nexport const FilesStorageExchange = Configuration.get('FILES_STORAGE__EXCHANGE') as string;\n\nexport enum FilesStorageEvents {\n\t'COPY_FILES_OF_PARENT' = 'copy-files-of-parent',\n\t'LIST_FILES_OF_PARENT' = 'list-files-of-parent',\n\t'DELETE_FILES_OF_PARENT' = 'delete-files-of-parent',\n}\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport interface ICopyFilesOfParentParams {\n\tuserId: EntityId;\n\tsource: IFileRecordParams;\n\ttarget: IFileRecordParams;\n}\n\nexport interface IFileRecordParams {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\nexport interface ICopyFileDO {\n\tid?: EntityId;\n\tsourceId: EntityId;\n\tname: string;\n}\n\nexport interface IFileDO {\n\tid: string;\n\tname: string;\n\tparentId: string;\n\tsecurityCheckStatus: ScanStatus;\n\tsize: number;\n\tcreatorId: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tdeletedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICopyFileDomainObjectProps.html":{"url":"interfaces/ICopyFileDomainObjectProps.html","title":"interface - ICopyFileDomainObjectProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICopyFileDomainObjectProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/copy-file-domain-object-props.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n \n name\n \n \n \n \n sourceId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId | undefined\n\n \n \n\n\n \n \n Type : EntityId | undefined\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n sourceId\n \n \n \n \n \n \n \n \n sourceId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface ICopyFileDomainObjectProps {\n\tid?: EntityId | undefined;\n\tsourceId: EntityId;\n\tname: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICopyFilesOfParentParams.html":{"url":"interfaces/ICopyFilesOfParentParams.html","title":"interface - ICopyFilesOfParentParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICopyFilesOfParentParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/exchange/files-storage.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n source\n \n \n \n \n target\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: IFileRecordParams\n\n \n \n\n\n \n \n Type : IFileRecordParams\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: IFileRecordParams\n\n \n \n\n\n \n \n Type : IFileRecordParams\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { EntityId } from '@shared/domain';\n\nexport const FilesStorageExchange = Configuration.get('FILES_STORAGE__EXCHANGE') as string;\n\nexport enum FilesStorageEvents {\n\t'COPY_FILES_OF_PARENT' = 'copy-files-of-parent',\n\t'LIST_FILES_OF_PARENT' = 'list-files-of-parent',\n\t'DELETE_FILES_OF_PARENT' = 'delete-files-of-parent',\n}\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport interface ICopyFilesOfParentParams {\n\tuserId: EntityId;\n\tsource: IFileRecordParams;\n\ttarget: IFileRecordParams;\n}\n\nexport interface IFileRecordParams {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\nexport interface ICopyFileDO {\n\tid?: EntityId;\n\tsourceId: EntityId;\n\tname: string;\n}\n\nexport interface IFileDO {\n\tid: string;\n\tname: string;\n\tparentId: string;\n\tsecurityCheckStatus: ScanStatus;\n\tsize: number;\n\tcreatorId: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tdeletedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICopyFilesRequestInfo.html":{"url":"interfaces/ICopyFilesRequestInfo.html","title":"interface - ICopyFilesRequestInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICopyFilesRequestInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/copy-file-request-info.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n source\n \n \n \n \n target\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: IFileRequestInfo\n\n \n \n\n\n \n \n Type : IFileRequestInfo\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: IFileRequestInfo\n\n \n \n\n\n \n \n Type : IFileRequestInfo\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { IFileRequestInfo } from './file-request-info';\n\nexport interface ICopyFilesRequestInfo {\n\tuserId: EntityId;\n\tsource: IFileRequestInfo;\n\ttarget: IFileRequestInfo;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICoreModuleConfig.html":{"url":"interfaces/ICoreModuleConfig.html","title":"interface - ICoreModuleConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICoreModuleConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/interfaces/core-module-config.ts\n \n\n\n\n \n Extends\n \n \n IInterceptorConfig\n \n\n\n\n\n \n\n\n \n import { IInterceptorConfig } from '@shared/common';\nimport { ILoggerConfig } from '../logger';\n\nexport interface ICoreModuleConfig extends IInterceptorConfig, ILoggerConfig {}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICourseGroupProperties.html":{"url":"interfaces/ICourseGroupProperties.html","title":"interface - ICourseGroupProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICourseGroupProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/coursegroup.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n course\n \n \n \n \n name\n \n \n \n Optional\n \n students\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n course\n \n \n \n \n \n \n \n \n course: Course\n\n \n \n\n\n \n \n Type : Course\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n students\n \n \n \n \n \n \n \n \n students: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property } from '@mikro-orm/core';\nimport { IEntityWithSchool } from '../interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { ILessonParent } from './lesson.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { ITaskParent } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ICourseGroupProperties {\n\tname: string;\n\tcourse: Course;\n\tstudents?: User[];\n}\n\n@Entity({ tableName: 'coursegroups' })\n@Index({ properties: ['school', 'course'] })\nexport class CourseGroup extends BaseEntityWithTimestamps implements IEntityWithSchool, ITaskParent, ILessonParent {\n\t@Property()\n\tname: string;\n\n\t@ManyToMany('User', undefined, { fieldName: 'userIds' })\n\t@Index()\n\tstudents = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\t@Index()\n\tschool: SchoolEntity;\n\n\tconstructor(props: ICourseGroupProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.course = props.course;\n\t\tthis.school = props.course.school;\n\t\tif (props.students) this.students.set(props.students);\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tlet studentIds: EntityId[] = [];\n\n\t\t// A not existing course group can be referenced in a submission.\n\t\t// Therefore we need to handle this case instead of returning an error here.\n\t\tif (this.students) {\n\t\t\tconst studentObjectIds = this.students.getIdentifiers('_id');\n\t\t\tstudentIds = studentObjectIds.map((id): string => id.toString());\n\t\t}\n\n\t\treturn studentIds;\n\t}\n\n\tpublic removeStudent(userId: EntityId): void {\n\t\tthis.students.remove((u) => u.id === userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICourseProperties.html":{"url":"interfaces/ICourseProperties.html","title":"interface - ICourseProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICourseProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/course.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n color\n \n \n \n Optional\n \n copyingSince\n \n \n \n Optional\n \n description\n \n \n \n Optional\n \n features\n \n \n \n Optional\n \n name\n \n \n \n \n school\n \n \n \n Optional\n \n startDate\n \n \n \n Optional\n \n students\n \n \n \n Optional\n \n substitutionTeachers\n \n \n \n Optional\n \n teachers\n \n \n \n Optional\n \n untilDate\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n color\n \n \n \n \n \n \n \n \n color: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n copyingSince\n \n \n \n \n \n \n \n \n copyingSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n features\n \n \n \n \n \n \n \n \n features: CourseFeatures[]\n\n \n \n\n\n \n \n Type : CourseFeatures[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n startDate\n \n \n \n \n \n \n \n \n startDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n students\n \n \n \n \n \n \n \n \n students: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n substitutionTeachers\n \n \n \n \n \n \n \n \n substitutionTeachers: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n teachers\n \n \n \n \n \n \n \n \n teachers: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n untilDate\n \n \n \n \n \n \n \n \n untilDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Enum, Index, ManyToMany, ManyToOne, OneToMany, Property, Unique } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common/exceptions/internal-server-error.exception';\nimport { IEntityWithSchool, ILearnroom } from '@shared/domain/interface';\nimport { EntityId, LearnroomMetadata, LearnroomTypes } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport type { ILessonParent } from './lesson.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { ITaskParent } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ICourseProperties {\n\tname?: string;\n\tdescription?: string;\n\tschool: SchoolEntity;\n\tstudents?: User[];\n\tteachers?: User[];\n\tsubstitutionTeachers?: User[];\n\t// TODO: color format\n\tcolor?: string;\n\tstartDate?: Date;\n\tuntilDate?: Date;\n\tcopyingSince?: Date;\n\tfeatures?: CourseFeatures[];\n}\n\n// that is really really shit default handling :D constructor, getter, js default, em default...what the hell\n// i hope it can cleanup with adding schema instant of I...Properties.\nconst DEFAULT = {\n\tcolor: '#ACACAC',\n\tname: 'Kurse',\n\tdescription: '',\n};\n\nconst enum CourseFeatures {\n\tVIDEOCONFERENCE = 'videoconference',\n}\n\n@Entity({ tableName: 'courses' })\nexport class Course\n\textends BaseEntityWithTimestamps\n\timplements ILearnroom, IEntityWithSchool, ITaskParent, ILessonParent\n{\n\t@Property()\n\tname: string = DEFAULT.name;\n\n\t@Property()\n\tdescription: string = DEFAULT.description;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'userIds' })\n\tstudents = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'teacherIds' })\n\tteachers = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'substitutionIds' })\n\tsubstitutionTeachers = new Collection(this);\n\n\t@OneToMany('CourseGroup', 'course', { orphanRemoval: true })\n\tcourseGroups = new Collection(this);\n\n\t// TODO: string color format\n\t@Property()\n\tcolor: string = DEFAULT.color;\n\n\t@Property({ nullable: true })\n\tstartDate?: Date;\n\n\t@Index()\n\t@Property({ nullable: true })\n\tuntilDate?: Date;\n\n\t@Property({ nullable: true })\n\tcopyingSince?: Date;\n\n\t@Property({ nullable: true })\n\t@Unique({ options: { sparse: true } })\n\tshareToken?: string;\n\n\t@Enum({ nullable: true, array: true })\n\tfeatures?: CourseFeatures[];\n\n\tconstructor(props: ICourseProperties) {\n\t\tsuper();\n\t\tif (props.name) this.name = props.name;\n\t\tif (props.description) this.description = props.description;\n\t\tthis.school = props.school;\n\t\tthis.students.set(props.students || []);\n\t\tthis.teachers.set(props.teachers || []);\n\t\tthis.substitutionTeachers.set(props.substitutionTeachers || []);\n\t\tif (props.color) this.color = props.color;\n\t\tif (props.untilDate) this.untilDate = props.untilDate;\n\t\tif (props.startDate) this.startDate = props.startDate;\n\t\tif (props.copyingSince) this.copyingSince = props.copyingSince;\n\t\tif (props.features) this.features = props.features;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst studentIds = this.extractIds(this.students);\n\t\treturn studentIds;\n\t}\n\n\tpublic getTeacherIds(): EntityId[] {\n\t\tconst teacherIds = this.extractIds(this.teachers);\n\t\treturn teacherIds;\n\t}\n\n\tpublic getSubstitutionTeacherIds(): EntityId[] {\n\t\tconst substitutionTeacherIds = this.extractIds(this.substitutionTeachers);\n\t\treturn substitutionTeacherIds;\n\t}\n\n\tprivate extractIds(users: Collection): EntityId[] {\n\t\tif (!users) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t`Students, teachers or stubstitution is undefined. The course needs to be populated`\n\t\t\t);\n\t\t}\n\n\t\tconst objectIds = users.getIdentifiers('_id');\n\t\tconst ids = objectIds.map((id): string => id.toString());\n\n\t\treturn ids;\n\t}\n\n\tpublic isUserSubstitutionTeacher(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.substitutionTeachers.contains(user);\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic getCourseGroupItems(): CourseGroup[] {\n\t\tif (!this.courseGroups.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Courses trying to access their course groups that are not loaded.');\n\t\t}\n\t\tconst courseGroups = this.courseGroups.getItems();\n\n\t\treturn courseGroups;\n\t}\n\n\tgetShortTitle(): string {\n\t\tif (this.name.length === 1) {\n\t\t\treturn this.name;\n\t\t}\n\t\tconst [firstChar, secondChar] = [...this.name];\n\t\tconst pattern = /\\p{Extended_Pictographic}/u;\n\t\tif (pattern.test(firstChar)) {\n\t\t\treturn firstChar;\n\t\t}\n\t\treturn firstChar + secondChar;\n\t}\n\n\tpublic getMetadata(): LearnroomMetadata {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\ttype: LearnroomTypes.Course,\n\t\t\ttitle: this.name,\n\t\t\tshortTitle: this.getShortTitle(),\n\t\t\tdisplayColor: this.color,\n\t\t\tuntilDate: this.untilDate,\n\t\t\tstartDate: this.startDate,\n\t\t\tcopyingSince: this.copyingSince,\n\t\t};\n\t}\n\n\tpublic isFinished(): boolean {\n\t\tif (!this.untilDate) {\n\t\t\treturn false;\n\t\t}\n\t\tconst isFinished = this.untilDate u.id === userId);\n\t}\n\n\tprivate removeTeacher(userId: EntityId): void {\n\t\tthis.teachers.remove((u) => u.id === userId);\n\t}\n\n\tprivate removeSubstitutionTeacher(userId: EntityId): void {\n\t\tthis.substitutionTeachers.remove((u) => u.id === userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICreateNews.html":{"url":"interfaces/ICreateNews.html","title":"interface - ICreateNews","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICreateNews\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/news.types.ts\n \n\n\n \n Description\n \n \n news interface for ceating news\n\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n Optional\n \n displayAt\n \n \n \n \n target\n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n content\n \n \n \n \n \n \n \n \n content: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n \n \n displayAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from './entity-id';\nimport type { Course } from '../entity/course.entity';\nimport type { SchoolEntity } from '../entity/school.entity';\nimport type { TeamEntity } from '../entity/team.entity';\n\nexport enum NewsTargetModel {\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Team' = 'teams',\n}\n\n/** news interface for ceating news */\nexport interface ICreateNews {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt?: Date;\n\ttarget: { targetModel: NewsTargetModel; targetId: EntityId };\n}\n\n/** news interface for updating news */\nexport type IUpdateNews = Partial;\n\n/** interface for finding news with optional targetId */\nexport interface INewsScope {\n\ttarget?: { targetModel: NewsTargetModel; targetId?: EntityId };\n\tunpublished?: boolean;\n}\n\nexport type NewsTarget = SchoolEntity | TeamEntity | Course;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ICurrentUser.html":{"url":"interfaces/ICurrentUser.html","title":"interface - ICurrentUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ICurrentUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/user.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accountId\n \n \n \n Optional\n \n impersonated\n \n \n \n \n roles\n \n \n \n \n schoolId\n \n \n \n Optional\n \n systemId\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accountId\n \n \n \n \n \n \n \n \n accountId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n account id as EntityId\n\n \n \n \n \n \n \n \n \n \n impersonated\n \n \n \n \n \n \n \n \n impersonated: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n True if a support member impersonates the user\n\n \n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: EntityId[]\n\n \n \n\n\n \n \n Type : EntityId[]\n\n \n \n\n\n\n\n\n \n \n users role ids as EntityId[]\n\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n users schoolId as EntityId\n\n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n \n \n systemId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n true if user is provided by external system -> no pw change in first login\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n authenticated users id\n\n \n \n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface IRole {\n\tname: string;\n\n\tid: string;\n}\n\nexport interface IResolvedUser {\n\tfirstName: string;\n\n\tlastName: string;\n\n\tid: string;\n\n\tcreatedAt: Date;\n\n\tupdatedAt: Date;\n\n\troles: IRole[];\n\n\tpermissions: string[];\n\n\tschoolId: string;\n}\n\nexport interface ICurrentUser {\n\t/** authenticated users id */\n\tuserId: EntityId;\n\t/** users role ids as EntityId[] */\n\troles: EntityId[];\n\t/** users schoolId as EntityId */\n\tschoolId: EntityId;\n\t/** account id as EntityId */\n\taccountId: EntityId;\n\n\t/** true if user is provided by external system -> no pw change in first login */\n\tsystemId?: EntityId;\n\n\t/** True if a support member impersonates the user */\n\timpersonated?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IDashboardModelProperties.html":{"url":"interfaces/IDashboardModelProperties.html","title":"interface - IDashboardModelProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IDashboardModelProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.model.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n gridElements\n \n \n \n \n id\n \n \n \n \n user\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n gridElements\n \n \n \n \n \n \n \n \n gridElements: DashboardGridElementModel[]\n\n \n \n\n\n \n \n Type : DashboardGridElementModel[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n \n \n user: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import {\n\tCollection,\n\tEntity,\n\tIdentifiedReference,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToMany,\n\tProperty,\n\twrap,\n} from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { Course } from './course.entity';\nimport { User } from './user.entity';\n\nexport interface DashboardGridElementModelProperties {\n\tid?: string;\n\ttitle?: string;\n\txPos: number;\n\tyPos: number;\n\treferences: Course[];\n\tdashboard: DashboardModelEntity;\n}\n\n@Entity({ tableName: 'dashboardelement' })\nexport class DashboardGridElementModel extends BaseEntityWithTimestamps {\n\tconstructor({ id, title, xPos, yPos, references, dashboard }: DashboardGridElementModelProperties) {\n\t\tsuper();\n\t\tif (id) {\n\t\t\tthis._id = ObjectId.createFromHexString(id);\n\t\t\tthis.id = id;\n\t\t}\n\t\tthis.title = title;\n\t\tthis.xPos = xPos;\n\t\tthis.yPos = yPos;\n\t\tthis.references.set(references);\n\t\tthis.dashboard = wrap(dashboard).toReference();\n\t}\n\n\t@Property({ nullable: true })\n\ttitle?: string;\n\n\t@Property()\n\txPos: number;\n\n\t@Property()\n\tyPos: number;\n\n\t@Index()\n\t@ManyToMany('Course', undefined, { fieldName: 'referenceIds' })\n\treferences = new Collection(this);\n\n\t@Index()\n\t@ManyToOne('DashboardModelEntity', { wrappedReference: true })\n\tdashboard: IdentifiedReference;\n}\n\nexport interface IDashboardModelProperties {\n\tid: string;\n\tuser: User;\n\tgridElements?: DashboardGridElementModel[];\n}\n\n@Entity({ tableName: 'dashboard' })\nexport class DashboardModelEntity extends BaseEntityWithTimestamps {\n\tconstructor(props: IDashboardModelProperties) {\n\t\tsuper();\n\t\tthis._id = ObjectId.createFromHexString(props.id);\n\t\tthis.id = props.id;\n\t\tthis.user = wrap(props.user).toReference();\n\t\tif (props.gridElements) this.gridElements.set(props.gridElements);\n\t}\n\n\t@OneToMany('DashboardGridElementModel', 'dashboard')\n\tgridElements: Collection = new Collection(this);\n\n\t// userId\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'userId', wrappedReference: true })\n\tuser: IdentifiedReference;\n\n\t// sizetype\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IDashboardRepo.html":{"url":"interfaces/IDashboardRepo.html","title":"interface - IDashboardRepo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IDashboardRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/dashboard/dashboard.repo.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getDashboardById\n \n \n \n \n getUsersDashboard\n \n \n \n \n persistAndFlush\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getDashboardById\n \n \n \n \n \n \ngetDashboardById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getUsersDashboard\n \n \n \n \n \n \ngetUsersDashboard(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n persistAndFlush\n \n \n \n \n \n \npersistAndFlush(entity: DashboardEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/dashboard/dashboard.repo.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n DashboardEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, DashboardEntity, GridElementWithPosition, DashboardModelEntity } from '@shared/domain';\nimport { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { DashboardModelMapper } from './dashboard.model.mapper';\n\nconst generateEmptyDashboard = (userId: EntityId) => {\n\tconst gridArray: GridElementWithPosition[] = [];\n\n\tconst dashboard = new DashboardEntity(new ObjectId().toString(), { grid: gridArray, userId });\n\treturn dashboard;\n};\n\nexport interface IDashboardRepo {\n\tgetUsersDashboard(userId: EntityId): Promise;\n\tgetDashboardById(id: EntityId): Promise;\n\tpersistAndFlush(entity: DashboardEntity): Promise;\n}\n\n@Injectable()\nexport class DashboardRepo implements IDashboardRepo {\n\tconstructor(protected readonly em: EntityManager, protected readonly mapper: DashboardModelMapper) {}\n\n\t// ToDo: refactor this to be in an abstract class (see baseRepo)\n\tasync persist(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.mapper.mapDashboardToModel(entity);\n\t\tthis.em.persist(modelEntity);\n\t\treturn this.mapper.mapDashboardToEntity(modelEntity);\n\t}\n\n\tasync persistAndFlush(entity: DashboardEntity): Promise {\n\t\tconst modelEntity = await this.mapper.mapDashboardToModel(entity);\n\t\tawait this.em.persistAndFlush(modelEntity);\n\t\treturn this.mapper.mapDashboardToEntity(modelEntity);\n\t}\n\n\tasync getDashboardById(id: EntityId): Promise {\n\t\tconst dashboardModel = await this.em.findOneOrFail(DashboardModelEntity, id);\n\t\tconst dashboard = await this.mapper.mapDashboardToEntity(dashboardModel);\n\t\treturn dashboard;\n\t}\n\n\tasync getUsersDashboard(userId: EntityId): Promise {\n\t\tconst dashboardModel = await this.em.findOne(DashboardModelEntity, { user: userId });\n\t\tif (dashboardModel) {\n\t\t\treturn this.mapper.mapDashboardToEntity(dashboardModel);\n\t\t}\n\n\t\tconst dashboard = generateEmptyDashboard(userId);\n\t\tawait this.persistAndFlush(dashboard);\n\n\t\treturn dashboard;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IEncryptionService.html":{"url":"interfaces/IEncryptionService.html","title":"interface - IEncryptionService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IEncryptionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/encryption/encryption.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n decrypt\n \n \n \n \n encrypt\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n decrypt\n \n \n \n \n \n \ndecrypt(data: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.interface.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n encrypt\n \n \n \n \n \n \nencrypt(data: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.interface.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n export const DefaultEncryptionService = Symbol('DefaultEncryptionService');\nexport const LdapEncryptionService = Symbol('LdapEncryptionService');\n\nexport interface IEncryptionService {\n\tencrypt(data: string): string;\n\tdecrypt(data: string): string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IEntity.html":{"url":"interfaces/IEntity.html","title":"interface - IEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n \n id\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n _id\n \n \n \n \n \n \n \n \n _id: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\n\nexport interface IEntity {\n\t_id: ObjectId;\n\tid: string;\n}\n\nexport interface IEntityWithTimestamps extends IEntity {\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport interface IEntityWithSchool extends IEntity {\n\tschool: SchoolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IEntityWithSchool.html":{"url":"interfaces/IEntityWithSchool.html","title":"interface - IEntityWithSchool","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IEntityWithSchool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/entity.ts\n \n\n\n\n \n Extends\n \n \n IEntity\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\n\nexport interface IEntity {\n\t_id: ObjectId;\n\tid: string;\n}\n\nexport interface IEntityWithTimestamps extends IEntity {\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport interface IEntityWithSchool extends IEntity {\n\tschool: SchoolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IEntityWithTimestamps.html":{"url":"interfaces/IEntityWithTimestamps.html","title":"interface - IEntityWithTimestamps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IEntityWithTimestamps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/entity.ts\n \n\n\n\n \n Extends\n \n \n IEntity\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\n\nexport interface IEntity {\n\t_id: ObjectId;\n\tid: string;\n}\n\nexport interface IEntityWithTimestamps extends IEntity {\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport interface IEntityWithSchool extends IEntity {\n\tschool: SchoolEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IError.html":{"url":"interfaces/IError.html","title":"interface - IError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/rpc-message.ts\n \n\n\n\n \n Extends\n \n \n Error\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n message\n \n \n \n Optional\n \n status\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n message\n \n \n \n \n \n \n \n \n message: never\n\n \n \n\n\n \n \n Type : never\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IError extends Error {\n\tstatus?: number;\n\tmessage: never;\n}\nexport interface RpcMessage {\n\tmessage: T;\n\terror?: IError;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IErrorType.html":{"url":"interfaces/IErrorType.html","title":"interface - IErrorType","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IErrorType\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/interface/error-type.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n defaultMessage\n \n \n \n \n title\n \n \n \n \n type\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n defaultMessage\n \n \n \n \n \n \n \n \n defaultMessage: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IErrorType {\n\treadonly type: string;\n\treadonly title: string;\n\treadonly defaultMessage: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IExternalToolPseudonymEntityProps.html":{"url":"interfaces/IExternalToolPseudonymEntityProps.html","title":"interface - IExternalToolPseudonymEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IExternalToolPseudonymEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/entity/external-tool-pseudonym.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n \n pseudonym\n \n \n \n \n toolId\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n \n \n pseudonym: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n \n \n toolId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain';\n\nexport interface IExternalToolPseudonymEntityProps {\n\tid?: EntityId;\n\tpseudonym: string;\n\ttoolId: ObjectId;\n\tuserId: ObjectId;\n}\n\n@Entity({ tableName: 'external-tool-pseudonyms' })\n@Unique({ properties: ['userId', 'toolId'] })\nexport class ExternalToolPseudonymEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tpseudonym: string;\n\n\t@Property()\n\ttoolId: ObjectId;\n\n\t@Property()\n\tuserId: ObjectId;\n\n\tconstructor(props: IExternalToolPseudonymEntityProps) {\n\t\tsuper();\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.pseudonym = props.pseudonym;\n\t\tthis.toolId = props.toolId;\n\t\tthis.userId = props.userId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFederalStateProperties.html":{"url":"interfaces/IFederalStateProperties.html","title":"interface - IFederalStateProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFederalStateProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/federal-state.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n abbreviation\n \n \n \n Optional\n \n counties\n \n \n \n \n createdAt\n \n \n \n \n logoUrl\n \n \n \n \n name\n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n abbreviation\n \n \n \n \n \n \n \n \n abbreviation: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n counties\n \n \n \n \n \n \n \n \n counties: County[]\n\n \n \n\n\n \n \n Type : County[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n logoUrl\n \n \n \n \n \n \n \n \n logoUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IFederalStateProperties {\n\tname: string;\n\tabbreviation: string;\n\tlogoUrl: string;\n\tcounties?: County[];\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\n@Embeddable()\nexport class County {\n\tconstructor(county: County) {\n\t\tthis.name = county.name;\n\t\tthis.countyId = county.countyId;\n\t\tthis.antaresKey = county.antaresKey;\n\t}\n\n\tname: string;\n\n\tcountyId: number;\n\n\tantaresKey: string;\n}\n\n@Entity({ tableName: 'federalstates' })\nexport class FederalState extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\tabbreviation: string;\n\n\t@Property()\n\tlogoUrl: string;\n\n\t@Embedded(() => County, { array: true, nullable: true })\n\tcounties?: County[];\n\n\tconstructor(props: IFederalStateProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.abbreviation = props.abbreviation;\n\t\tthis.logoUrl = props.logoUrl;\n\t\tthis.updatedAt = props.updatedAt;\n\t\tthis.createdAt = props.createdAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileDO.html":{"url":"interfaces/IFileDO.html","title":"interface - IFileDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/exchange/files-storage.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n creatorId\n \n \n \n Optional\n \n deletedSince\n \n \n \n \n id\n \n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n securityCheckStatus\n \n \n \n \n size\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n creatorId\n \n \n \n \n \n \n \n \n creatorId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n deletedSince\n \n \n \n \n \n \n \n \n deletedSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n \n \n mimeType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n securityCheckStatus\n \n \n \n \n \n \n \n \n securityCheckStatus: ScanStatus\n\n \n \n\n\n \n \n Type : ScanStatus\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n \n \n size: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { EntityId } from '@shared/domain';\n\nexport const FilesStorageExchange = Configuration.get('FILES_STORAGE__EXCHANGE') as string;\n\nexport enum FilesStorageEvents {\n\t'COPY_FILES_OF_PARENT' = 'copy-files-of-parent',\n\t'LIST_FILES_OF_PARENT' = 'list-files-of-parent',\n\t'DELETE_FILES_OF_PARENT' = 'delete-files-of-parent',\n}\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport interface ICopyFilesOfParentParams {\n\tuserId: EntityId;\n\tsource: IFileRecordParams;\n\ttarget: IFileRecordParams;\n}\n\nexport interface IFileRecordParams {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\nexport interface ICopyFileDO {\n\tid?: EntityId;\n\tsourceId: EntityId;\n\tname: string;\n}\n\nexport interface IFileDO {\n\tid: string;\n\tname: string;\n\tparentId: string;\n\tsecurityCheckStatus: ScanStatus;\n\tsize: number;\n\tcreatorId: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tdeletedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileDomainObjectProps.html":{"url":"interfaces/IFileDomainObjectProps.html","title":"interface - IFileDomainObjectProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileDomainObjectProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/file-domain-object-props.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n name\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\n\nexport interface IFileDomainObjectProps {\n\tid: EntityId;\n\tname: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileRecordParams.html":{"url":"interfaces/IFileRecordParams.html","title":"interface - IFileRecordParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileRecordParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/exchange/files-storage.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { EntityId } from '@shared/domain';\n\nexport const FilesStorageExchange = Configuration.get('FILES_STORAGE__EXCHANGE') as string;\n\nexport enum FilesStorageEvents {\n\t'COPY_FILES_OF_PARENT' = 'copy-files-of-parent',\n\t'LIST_FILES_OF_PARENT' = 'list-files-of-parent',\n\t'DELETE_FILES_OF_PARENT' = 'delete-files-of-parent',\n}\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport interface ICopyFilesOfParentParams {\n\tuserId: EntityId;\n\tsource: IFileRecordParams;\n\ttarget: IFileRecordParams;\n}\n\nexport interface IFileRecordParams {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\nexport interface ICopyFileDO {\n\tid?: EntityId;\n\tsourceId: EntityId;\n\tname: string;\n}\n\nexport interface IFileDO {\n\tid: string;\n\tname: string;\n\tparentId: string;\n\tsecurityCheckStatus: ScanStatus;\n\tsize: number;\n\tcreatorId: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tdeletedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileRecordProperties.html":{"url":"interfaces/IFileRecordProperties.html","title":"interface - IFileRecordProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileRecordProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n creatorId\n \n \n \n Optional\n \n deletedSince\n \n \n \n Optional\n \n isCopyFrom\n \n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n size\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n creatorId\n \n \n \n \n \n \n \n \n creatorId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n deletedSince\n \n \n \n \n \n \n \n \n deletedSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n isCopyFrom\n \n \n \n \n \n \n \n \n isCopyFrom: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n \n \n mimeType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n size\n \n \n \n \n \n \n \n \n size: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileRecordSecurityCheckProperties.html":{"url":"interfaces/IFileRecordSecurityCheckProperties.html","title":"interface - IFileRecordSecurityCheckProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileRecordSecurityCheckProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n reason\n \n \n \n Optional\n \n requestToken\n \n \n \n Optional\n \n status\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n reason\n \n \n \n \n \n \n \n \n reason: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n requestToken\n \n \n \n \n \n \n \n \n requestToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: ScanStatus\n\n \n \n\n\n \n \n Type : ScanStatus\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileRequestInfo.html":{"url":"interfaces/IFileRequestInfo.html","title":"interface - IFileRequestInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileRequestInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/file-request-info.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { FileRecordParentType } from '@shared/infra/rabbitmq';\n\nexport interface IFileRequestInfo {\n\tschoolId: EntityId;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFileStorageConfig.html":{"url":"interfaces/IFileStorageConfig.html","title":"interface - IFileStorageConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFileStorageConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/files-storage.config.ts\n \n\n\n\n \n Extends\n \n \n ICoreModuleConfig\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n MAX_FILE_SIZE\n \n \n \n \n MAX_SECURITY_CHECK_FILE_SIZE\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n MAX_FILE_SIZE\n \n \n \n \n \n \n \n \n MAX_FILE_SIZE: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n MAX_SECURITY_CHECK_FILE_SIZE\n \n \n \n \n \n \n \n \n MAX_SECURITY_CHECK_FILE_SIZE: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { S3Config } from '@shared/infra/s3-client';\nimport { ICoreModuleConfig } from '@src/core';\n\nexport const FILES_STORAGE_S3_CONNECTION = 'FILES_STORAGE_S3_CONNECTION';\nexport interface IFileStorageConfig extends ICoreModuleConfig {\n\tMAX_FILE_SIZE: number;\n\tMAX_SECURITY_CHECK_FILE_SIZE: number;\n}\n\nconst fileStorageConfig: IFileStorageConfig = {\n\tINCOMING_REQUEST_TIMEOUT: Configuration.get('FILES_STORAGE__INCOMING_REQUEST_TIMEOUT') as number,\n\tINCOMING_REQUEST_TIMEOUT_COPY_API: Configuration.get('INCOMING_REQUEST_TIMEOUT_COPY_API') as number,\n\tMAX_FILE_SIZE: Configuration.get('FILES_STORAGE__MAX_FILE_SIZE') as number,\n\tMAX_SECURITY_CHECK_FILE_SIZE: Configuration.get('FILE_SECURITY_CHECK_MAX_FILE_SIZE') as number,\n\tNEST_LOG_LEVEL: Configuration.get('NEST_LOG_LEVEL') as string,\n};\n\n// The configurations lookup\n// config/development.json for development\n// config/test.json for tests\nexport const s3Config: S3Config = {\n\tconnectionName: FILES_STORAGE_S3_CONNECTION,\n\tendpoint: Configuration.get('FILES_STORAGE__S3_ENDPOINT') as string,\n\tregion: Configuration.get('FILES_STORAGE__S3_REGION') as string,\n\tbucket: Configuration.get('FILES_STORAGE__S3_BUCKET') as string,\n\taccessKeyId: Configuration.get('FILES_STORAGE__S3_ACCESS_KEY_ID') as string,\n\tsecretAccessKey: Configuration.get('FILES_STORAGE__S3_SECRET_ACCESS_KEY') as string,\n};\n\nexport const config = () => fileStorageConfig;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFilesStorageClientConfig.html":{"url":"interfaces/IFilesStorageClientConfig.html","title":"interface - IFilesStorageClientConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFilesStorageClientConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage-client/interfaces/files-storage-client-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API\n \n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IFilesStorageClientConfig {\n\tINCOMING_REQUEST_TIMEOUT_COPY_API: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IFindOptions.html":{"url":"interfaces/IFindOptions.html","title":"interface - IFindOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IFindOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/find-options.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n order\n \n \n \n Optional\n \n pagination\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n order\n \n \n \n \n \n \n \n \n order: SortOrderMap\n\n \n \n\n\n \n \n Type : SortOrderMap\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n pagination\n \n \n \n \n \n \n \n \n pagination: IPagination\n\n \n \n\n\n \n \n Type : IPagination\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IPagination {\n\tskip?: number;\n\tlimit?: number;\n}\n\nexport enum SortOrder {\n\tasc = 'asc',\n\tdesc = 'desc',\n}\n\nexport type SortOrderMap = Partial>;\n\nexport interface IFindOptions {\n\tpagination?: IPagination;\n\torder?: SortOrderMap;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IGridElement.html":{"url":"interfaces/IGridElement.html","title":"interface - IGridElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IGridElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/dashboard.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n getContent\n \n \n \n \n getId\n \n \n \n \n \n \n \n Methods\n \n \n \n \n \n \n \n addReferences\n \n \n \n \n getReferences\n \n \n \n \n hasId\n \n \n \n \n isGroup\n \n \n \n \n removeReference\n \n \n \n \n removeReferenceByIndex\n \n \n \n \n setGroupName\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n addReferences\n \n \n \n \n \n \naddReferences(anotherReference: ILearnroom[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n anotherReference\n \n ILearnroom[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getReferences\n \n \n \n \n \n \ngetReferences()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:20\n \n \n\n\n \n \n\n \n Returns : ILearnroom[]\n\n \n \n \n \n \n \n \n \n \n \n \n hasId\n \n \n \n \n \n \nhasId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:8\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n isGroup\n \n \n \n \n \n \nisGroup()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:14\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n removeReference\n \n \n \n \n \n \nremoveReference(reference: ILearnroom)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n reference\n \n ILearnroom\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeReferenceByIndex\n \n \n \n \n \n \nremoveReferenceByIndex(index: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n index\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setGroupName\n \n \n \n \n \n \nsetGroupName(newGroupName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/dashboard.entity.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newGroupName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n Properties\n \n \n \n \n \n getContent\n \n \n \n \n \n \n \n \n getContent: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n getId\n \n \n \n \n \n \n \n \n getId: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { NotFoundException, BadRequestException } from '@nestjs/common';\nimport { EntityId, LearnroomMetadata } from '@shared/domain/types';\nimport { ILearnroom } from '@shared/domain/interface';\n\nconst defaultColumns = 4;\n\nexport interface IGridElement {\n\thasId(): boolean;\n\n\tgetId: () => EntityId | undefined;\n\n\tgetContent: () => GridElementContent;\n\n\tisGroup(): boolean;\n\n\tremoveReferenceByIndex(index: number): void;\n\n\tremoveReference(reference: ILearnroom): void;\n\n\tgetReferences(): ILearnroom[];\n\n\taddReferences(anotherReference: ILearnroom[]): void;\n\n\tsetGroupName(newGroupName: string): void;\n}\n\nexport type GridElementContent = {\n\treferencedId?: string;\n\ttitle?: string;\n\tshortTitle: string;\n\tdisplayColor: string;\n\tgroup?: LearnroomMetadata[];\n\tgroupId?: string;\n\tcopyingSince?: Date;\n};\n\nexport class GridElement implements IGridElement {\n\tid?: EntityId;\n\n\ttitle?: string;\n\n\tprivate sortReferences = (a: ILearnroom, b: ILearnroom) => {\n\t\tconst titleA = a.getMetadata().title;\n\t\tconst titleB = b.getMetadata().title;\n\t\tif (titleA titleB) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t};\n\n\tprivate constructor(props: { id?: EntityId; title?: string; references: ILearnroom[] }) {\n\t\tif (props.id) this.id = props.id;\n\t\tif (props.title) this.title = props.title;\n\t\tthis.references = props.references.sort(this.sortReferences);\n\t}\n\n\tstatic FromPersistedReference(id: EntityId, reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ id, references: [reference] });\n\t}\n\n\tstatic FromPersistedGroup(id: EntityId, title: string | undefined, group: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ id, title, references: group });\n\t}\n\n\tstatic FromSingleReference(reference: ILearnroom): GridElement {\n\t\treturn new GridElement({ references: [reference] });\n\t}\n\n\tstatic FromGroup(title: string, references: ILearnroom[]): GridElement {\n\t\treturn new GridElement({ title, references });\n\t}\n\n\treferences: ILearnroom[];\n\n\thasId(): boolean {\n\t\treturn !!this.id;\n\t}\n\n\tgetId(): EntityId | undefined {\n\t\treturn this.id;\n\t}\n\n\tgetReferences(): ILearnroom[] {\n\t\treturn this.references;\n\t}\n\n\tremoveReferenceByIndex(index: number): void {\n\t\tif (!this.isGroup()) {\n\t\t\tthrow new BadRequestException('this element is not a group.');\n\t\t}\n\t\tif (index > 0 && this.references.length reference.getMetadata());\n\t\tconst checkShortTitle = this.title ? this.title.substring(0, 2) : '';\n\t\tconst groupMetadata = {\n\t\t\tgroupId: this.getId(),\n\t\t\ttitle: this.title,\n\t\t\tshortTitle: checkShortTitle,\n\t\t\tdisplayColor: 'exampleColor',\n\t\t\tgroup: groupData,\n\t\t};\n\t\treturn groupMetadata;\n\t}\n\n\tisGroup(): boolean {\n\t\treturn this.references.length > 1;\n\t}\n\n\tsetGroupName(newGroupName: string): void {\n\t\tif (!this.isGroup()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.title = newGroupName;\n\t}\n}\n\nexport type GridPosition = { x: number; y: number };\nexport type GridPositionWithGroupIndex = { x: number; y: number; groupIndex?: number };\n\nexport type GridElementWithPosition = {\n\tgridElement: IGridElement;\n\tpos: GridPosition;\n};\n\nexport type DashboardProps = { colums?: number; grid: GridElementWithPosition[]; userId: EntityId };\n\nexport class DashboardEntity {\n\tid: EntityId;\n\n\tcolumns: number;\n\n\tgrid: Map;\n\n\tuserId: EntityId;\n\n\tprivate gridIndexFromPosition(pos: GridPosition): number {\n\t\tif (pos.x > this.columns) {\n\t\t\tthrow new BadRequestException('dashboard element position is outside the grid.');\n\t\t}\n\t\treturn this.columns * pos.y + pos.x;\n\t}\n\n\tprivate positionFromGridIndex(index: number): GridPosition {\n\t\tconst y = Math.floor(index / this.columns);\n\t\tconst x = index % this.columns;\n\t\treturn { x, y };\n\t}\n\n\tconstructor(id: string, props: DashboardProps) {\n\t\tthis.columns = props.colums || defaultColumns;\n\t\tthis.grid = new Map();\n\t\tprops.grid.forEach((element) => {\n\t\t\tthis.grid.set(this.gridIndexFromPosition(element.pos), element.gridElement);\n\t\t});\n\t\tthis.id = id;\n\t\tthis.userId = props.userId;\n\t\tObject.assign(this, {});\n\t}\n\n\tgetId(): string {\n\t\treturn this.id;\n\t}\n\n\tgetUserId(): EntityId {\n\t\treturn this.userId;\n\t}\n\n\tgetGrid(): GridElementWithPosition[] {\n\t\tconst result = [...this.grid.keys()].map((key) => {\n\t\t\tconst position = this.positionFromGridIndex(key);\n\t\t\tconst value = this.grid.get(key) as IGridElement;\n\t\t\treturn {\n\t\t\t\tpos: position,\n\t\t\t\tgridElement: value,\n\t\t\t};\n\t\t});\n\t\treturn result;\n\t}\n\n\tgetElement(position: GridPosition): IGridElement {\n\t\tconst element = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (!element) {\n\t\t\tthrow new NotFoundException('no element at grid position');\n\t\t}\n\t\treturn element;\n\t}\n\n\tmoveElement(from: GridPositionWithGroupIndex, to: GridPositionWithGroupIndex): GridElementWithPosition {\n\t\tconst elementToMove = this.getReferencesFromPosition(from);\n\t\tconst resultElement = this.mergeElementIntoPosition(elementToMove, to);\n\t\tthis.removeFromPosition(from);\n\t\treturn {\n\t\t\tpos: to,\n\t\t\tgridElement: resultElement,\n\t\t};\n\t}\n\n\tsetLearnRooms(rooms: ILearnroom[]): void {\n\t\tthis.removeRoomsNotInList(rooms);\n\t\tconst newRooms = this.determineNewRoomsIn(rooms);\n\n\t\tnewRooms.forEach((room) => {\n\t\t\tthis.addRoom(room);\n\t\t});\n\t}\n\n\tprivate removeRoomsNotInList(roomList: ILearnroom[]): void {\n\t\t[...this.grid.keys()].forEach((key) => {\n\t\t\tconst element = this.grid.get(key) as IGridElement;\n\t\t\tconst currentRooms = element.getReferences();\n\t\t\tcurrentRooms.forEach((room) => {\n\t\t\t\tif (!roomList.includes(room)) {\n\t\t\t\t\telement.removeReference(room);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (element.getReferences().length === 0) {\n\t\t\t\tthis.grid.delete(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate determineNewRoomsIn(rooms: ILearnroom[]): ILearnroom[] {\n\t\tconst result: ILearnroom[] = [];\n\t\tconst existingRooms = this.allRooms();\n\t\trooms.forEach((room) => {\n\t\t\tif (!existingRooms.includes(room)) {\n\t\t\t\tresult.push(room);\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tprivate allRooms(): ILearnroom[] {\n\t\tconst elements = [...this.grid.values()];\n\t\tconst references = elements.map((el) => el.getReferences()).flat();\n\t\treturn references;\n\t}\n\n\tprivate addRoom(room: ILearnroom): void {\n\t\tconst index = this.getFirstOpenIndex();\n\t\tconst newElement = GridElement.FromSingleReference(room);\n\t\tthis.grid.set(index, newElement);\n\t}\n\n\tprivate getFirstOpenIndex(): number {\n\t\tlet i = 0;\n\t\twhile (this.grid.get(i) !== undefined) {\n\t\t\ti += 1;\n\t\t}\n\t\treturn i;\n\t}\n\n\tprivate getReferencesFromPosition(position: GridPositionWithGroupIndex): IGridElement {\n\t\tconst elementToMove = this.getElement(position);\n\n\t\tif (typeof position.groupIndex === 'number' && elementToMove.isGroup()) {\n\t\t\tconst references = elementToMove.getReferences();\n\t\t\tconst referenceForIndex = references[position.groupIndex];\n\t\t\treturn GridElement.FromSingleReference(referenceForIndex);\n\t\t}\n\n\t\treturn elementToMove;\n\t}\n\n\tprivate removeFromPosition(position: GridPositionWithGroupIndex): void {\n\t\tconst element = this.getElement(position);\n\t\tif (typeof position.groupIndex === 'number') {\n\t\t\telement.removeReferenceByIndex(position.groupIndex);\n\t\t} else {\n\t\t\tthis.grid.delete(this.gridIndexFromPosition(position));\n\t\t}\n\t}\n\n\tprivate mergeElementIntoPosition(element: IGridElement, position: GridPosition): IGridElement {\n\t\tconst targetElement = this.grid.get(this.gridIndexFromPosition(position));\n\t\tif (targetElement) {\n\t\t\ttargetElement.addReferences(element.getReferences());\n\t\t\treturn targetElement;\n\t\t}\n\t\tthis.grid.set(this.gridIndexFromPosition(position), element);\n\t\treturn element;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IIdentityManagementConfig.html":{"url":"interfaces/IIdentityManagementConfig.html","title":"interface - IIdentityManagementConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IIdentityManagementConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management.config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_ENABLED\n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED\n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_ENABLED\n \n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_ENABLED: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED\n \n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED\n \n \n \n \n \n \n \n \n FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IIdentityManagementConfig {\n\tFEATURE_IDENTITY_MANAGEMENT_ENABLED: boolean;\n\tFEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED: boolean;\n\tFEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IImportUserProperties.html":{"url":"interfaces/IImportUserProperties.html","title":"interface - IImportUserProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IImportUserProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/import-user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n classNames\n \n \n \n \n email\n \n \n \n \n externalId\n \n \n \n \n firstName\n \n \n \n Optional\n \n flagged\n \n \n \n \n lastName\n \n \n \n \n ldapDn\n \n \n \n Optional\n \n matchedBy\n \n \n \n Optional\n \n roleNames\n \n \n \n \n school\n \n \n \n \n system\n \n \n \n Optional\n \n user\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n classNames\n \n \n \n \n \n \n \n \n classNames: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n \n \n email: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n \n \n flagged: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ldapDn\n \n \n \n \n \n \n \n \n ldapDn: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n matchedBy\n \n \n \n \n \n \n \n \n matchedBy: MatchCreator\n\n \n \n\n\n \n \n Type : MatchCreator\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n roleNames\n \n \n \n \n \n \n \n \n roleNames: IImportUserRoleName[]\n\n \n \n\n\n \n \n Type : IImportUserRoleName[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n \n \n system: System\n\n \n \n\n\n \n \n Type : System\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n \n \n user: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, IdentifiedReference, ManyToOne, Property, Unique, wrap } from '@mikro-orm/core';\nimport { IEntityWithSchool, RoleName } from '../interface';\nimport { BaseEntityReference, BaseEntityWithTimestamps } from './base.entity';\nimport { SchoolEntity } from './school.entity';\nimport { System } from './system.entity';\nimport type { User } from './user.entity';\n\nexport type IImportUserRoleName = RoleName.ADMINISTRATOR | RoleName.TEACHER | RoleName.STUDENT;\n\nexport interface IImportUserProperties {\n\t// references\n\tschool: SchoolEntity;\n\tsystem: System;\n\t// external identifiers\n\tldapDn: string;\n\texternalId: string;\n\t// descriptive properties\n\tfirstName: string;\n\tlastName: string;\n\temail: string; // TODO VO\n\troleNames?: IImportUserRoleName[];\n\tclassNames?: string[];\n\tuser?: User;\n\tmatchedBy?: MatchCreator;\n\tflagged?: boolean;\n}\n\nexport enum MatchCreator {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n}\n\n@Entity({ tableName: 'importusers' })\n@Unique({ properties: ['school', 'externalId'] })\n@Unique({ properties: ['school', 'ldapDn'] })\n@Unique({ properties: ['school', 'email'] })\nexport class ImportUser extends BaseEntityWithTimestamps implements IEntityWithSchool {\n\tconstructor(props: IImportUserProperties) {\n\t\tsuper();\n\t\tthis.school = wrap(props.school).toReference();\n\t\tthis.system = wrap(props.system).toReference();\n\t\tthis.ldapDn = props.ldapDn;\n\t\tthis.externalId = props.externalId;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tif (Array.isArray(props.roleNames) && props.roleNames.length > 0) this.roleNames.push(...props.roleNames);\n\t\tif (Array.isArray(props.classNames) && props.classNames.length > 0) this.classNames.push(...props.classNames);\n\t\tif (props.user && props.matchedBy) this.setMatch(props.user, props.matchedBy);\n\t\tif (props.flagged && props.flagged === true) this.flagged = true;\n\t}\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId', wrappedReference: true, eager: true })\n\tschool: IdentifiedReference;\n\n\t@ManyToOne(() => 'System', { wrappedReference: true })\n\tsystem: IdentifiedReference;\n\n\t@Property()\n\tldapDn: string;\n\n\t/**\n\t * extracts the login name out of the dn which has the login name in 'uid=LOGINNAME,[...]'\n\t * */\n\tget loginName(): string | null {\n\t\tconst PATTERN_LOGIN_FROM_DN = /^uid=(.+?),/i; // extract uid from dn\n\t\tconst matches = this.ldapDn?.match(PATTERN_LOGIN_FROM_DN);\n\t\tif (Array.isArray(matches) && matches.length >= 2) {\n\t\t\tconst loginName = matches[1]; // 0: full match, 1: first group match\n\t\t\treturn loginName;\n\t\t}\n\t\treturn null;\n\t}\n\n\t@Property({ fieldName: 'ldapId' })\n\texternalId: string;\n\n\t@Property()\n\tfirstName: string;\n\n\t@Property()\n\tlastName: string;\n\n\t@Property()\n\t/**\n\t * Lowercase email string\n\t */\n\temail: string;\n\n\t@Enum({ fieldName: 'roles' })\n\troleNames: IImportUserRoleName[] = [];\n\n\t@Property()\n\tclassNames: string[] = [];\n\n\t/**\n\t * Update user-match together with matchedBy, take the field as read-only\n\t * @read\n\t */\n\t@ManyToOne('User', { fieldName: 'match_userId', eager: true, nullable: true })\n\t@Unique({ options: { partialFilterExpression: { match_userId: { $type: 'objectId' } } } })\n\tuser?: User;\n\n\t/**\n\t * References who set the user, take the field as read-only\n\t * @private\n\t */\n\t@Enum({ fieldName: 'match_matchedBy', nullable: true })\n\tmatchedBy?: MatchCreator;\n\n\t@Property({ type: Boolean })\n\tflagged = false;\n\n\tsetMatch(user: User, matchedBy: MatchCreator) {\n\t\tif (this.school.id !== user.school.id) {\n\t\t\tthrow new Error('not same school');\n\t\t}\n\t\tthis.user = user;\n\t\tthis.matchedBy = matchedBy;\n\t}\n\n\trevokeMatch() {\n\t\tthis.user = undefined;\n\t\tthis.matchedBy = undefined;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IImportUserScope.html":{"url":"interfaces/IImportUserScope.html","title":"interface - IImportUserScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IImportUserScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/importuser.types.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n classes\n \n \n \n Optional\n \n firstName\n \n \n \n Optional\n \n flagged\n \n \n \n Optional\n \n lastName\n \n \n \n Optional\n \n loginName\n \n \n \n Optional\n \n matches\n \n \n \n Optional\n \n role\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n classes\n \n \n \n \n \n \n \n \n classes: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n \n \n flagged: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n loginName\n \n \n \n \n \n \n \n \n loginName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n matches\n \n \n \n \n \n \n \n \n matches: MatchCreatorScope[]\n\n \n \n\n\n \n \n Type : MatchCreatorScope[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n \n \n role: IImportUserRoleName\n\n \n \n\n\n \n \n Type : IImportUserRoleName\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import type { IImportUserRoleName } from '../entity/import-user.entity';\n\nexport enum MatchCreatorScope {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n\tNONE = 'none',\n}\n\nexport interface IImportUserScope {\n\tfirstName?: string;\n\tlastName?: string;\n\tloginName?: string;\n\tmatches?: MatchCreatorScope[];\n\tflagged?: boolean;\n\trole?: IImportUserRoleName;\n\tclasses?: string;\n}\n\nexport interface INameMatch {\n\t/**\n\t * Match filter for lastName or firstName\n\t */\n\tname?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IInterceptorConfig.html":{"url":"interfaces/IInterceptorConfig.html","title":"interface - IInterceptorConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IInterceptorConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/interceptor/interfaces/interceptor-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT\n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT\n \n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API\n \n \n \n \n \n \n \n \n INCOMING_REQUEST_TIMEOUT_COPY_API: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IInterceptorConfig {\n\tINCOMING_REQUEST_TIMEOUT: number;\n\tINCOMING_REQUEST_TIMEOUT_COPY_API: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IJsonAccount.html":{"url":"interfaces/IJsonAccount.html","title":"interface - IJsonAccount","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IJsonAccount\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/interface/json-account.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n \n password\n \n \n \n Optional\n \n systemId\n \n \n \n \n userId\n \n \n \n \n username\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n _id\n \n \n \n \n \n \n \n \n _id: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n password\n \n \n \n \n \n \n \n \n password: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n \n \n systemId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n \n \n username: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IJsonAccount {\n\t_id: {\n\t\t$oid: string;\n\t};\n\tusername: string;\n\tpassword: string;\n\tsystemId?: string;\n\tuserId: {\n\t\t$oid: string;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IJsonUser.html":{"url":"interfaces/IJsonUser.html","title":"interface - IJsonUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IJsonUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/interface/json-user.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n _id\n \n \n \n \n email\n \n \n \n \n firstName\n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n _id\n \n \n \n \n \n \n \n \n _id: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n \n \n email: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IJsonUser {\n\t_id: {\n\t\t$oid: string;\n\t};\n\tfirstName: string;\n\tlastName: string;\n\temail: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IKeycloakConfigurationInputFiles.html":{"url":"interfaces/IKeycloakConfigurationInputFiles.html","title":"interface - IKeycloakConfigurationInputFiles","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IKeycloakConfigurationInputFiles\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/interface/keycloak-configuration-input-files.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accountsFile\n \n \n \n \n usersFile\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accountsFile\n \n \n \n \n \n \n \n \n accountsFile: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n usersFile\n \n \n \n \n \n \n \n \n usersFile: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export const KeycloakConfigurationInputFiles = Symbol('KeycloakConfigurationInputFiles');\n\nexport interface IKeycloakConfigurationInputFiles {\n\taccountsFile: string;\n\tusersFile: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IKeycloakSettings.html":{"url":"interfaces/IKeycloakSettings.html","title":"interface - IKeycloakSettings","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IKeycloakSettings\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-administration/interface/keycloak-settings.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n clientId\n \n \n \n \n credentials\n \n \n \n \n realmName\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n \n \n baseUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n \n \n clientId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n credentials\n \n \n \n \n \n \n \n \n credentials: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n realmName\n \n \n \n \n \n \n \n \n realmName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export const KeycloakSettings = Symbol('KeycloakSettings');\n\nexport interface IKeycloakSettings {\n\tbaseUrl: string;\n\trealmName: string;\n\tclientId: string;\n\tcredentials: {\n\t\tusername: string;\n\t\tpassword: string;\n\t\tgrantType: 'password';\n\t\tclientId: string;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILearnroom.html":{"url":"interfaces/ILearnroom.html","title":"interface - ILearnroom","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILearnroom\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/learnroom.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n getMetadata\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n getMetadata\n \n \n \n \n \n \n \n \n getMetadata: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { LearnroomMetadata } from '@shared/domain/types';\n\nexport interface ILearnroom {\n\tgetMetadata: () => LearnroomMetadata;\n}\n\nexport interface ILearnroomElement {\n\tpublish: () => void;\n\tunpublish: () => void;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILearnroomElement.html":{"url":"interfaces/ILearnroomElement.html","title":"interface - ILearnroomElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILearnroomElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/learnroom.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n publish\n \n \n \n \n unpublish\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n publish\n \n \n \n \n \n \n \n \n publish: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n unpublish\n \n \n \n \n \n \n \n \n unpublish: function\n\n \n \n\n\n \n \n Type : function\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { LearnroomMetadata } from '@shared/domain/types';\n\nexport interface ILearnroom {\n\tgetMetadata: () => LearnroomMetadata;\n}\n\nexport interface ILearnroomElement {\n\tpublish: () => void;\n\tunpublish: () => void;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILegacyLogger.html":{"url":"interfaces/ILegacyLogger.html","title":"interface - ILegacyLogger","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILegacyLogger\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/interfaces/legacy-logger.interface.ts\n \n\n \n Deprecated\n \n \n The new logger for loggables should be used.\n \n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n debug\n \n \n \n \n error\n \n \n \n \n http\n \n \n \n \n log\n \n \n \n \n warn\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n debug\n \n \n \n \n \n \ndebug(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n error\n \n \n \n \n \n \nerror(message, trace?: string, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n trace\n \n string\n \n\n \n Yes\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n http\n \n \n \n \n \n \nhttp(message: RequestLoggingBody, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n RequestLoggingBody\n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n log\n \n \n \n \n \n \nlog(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n warn\n \n \n \n \n \n \nwarn(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/legacy-logger.interface.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n export type RequestLoggingBody = {\n\tuserId?: string;\n\trequest: { url: string; method: string; params: unknown; query: unknown };\n\terror: unknown | undefined;\n};\n\n/**\n * @deprecated The new logger for loggables should be used.\n */\nexport interface ILegacyLogger {\n\thttp(message: RequestLoggingBody, context?: string): void;\n\tlog(message: unknown, context?: string): void;\n\terror(message: unknown, trace?: string, context?: string): void;\n\twarn(message: unknown, context?: string): void;\n\tdebug(message: unknown, context?: string): void;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILessonParent.html":{"url":"interfaces/ILessonParent.html","title":"interface - ILessonParent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILessonParent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getStudentIds\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getStudentIds\n \n \n \n \n \n \ngetStudentIds()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:81\n \n \n\n\n \n \n\n \n Returns : EntityId[]\n\n \n \n \n \n \n\n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILessonProperties.html":{"url":"interfaces/ILessonProperties.html","title":"interface - ILessonProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILessonProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contents\n \n \n \n \n course\n \n \n \n Optional\n \n courseGroup\n \n \n \n \n hidden\n \n \n \n Optional\n \n materials\n \n \n \n \n name\n \n \n \n Optional\n \n position\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contents\n \n \n \n \n \n \n \n \n contents: IComponentProperties[] | \n\n \n \n\n\n \n \n Type : IComponentProperties[] | \n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n course\n \n \n \n \n \n \n \n \n course: Course\n\n \n \n\n\n \n \n Type : Course\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n courseGroup\n \n \n \n \n \n \n \n \n courseGroup: CourseGroup\n\n \n \n\n\n \n \n Type : CourseGroup\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n hidden\n \n \n \n \n \n \n \n \n hidden: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n materials\n \n \n \n \n \n \n \n \n materials: Material[]\n\n \n \n\n\n \n \n Type : Material[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n position\n \n \n \n \n \n \n \n \n position: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ILoggerConfig.html":{"url":"interfaces/ILoggerConfig.html","title":"interface - ILoggerConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ILoggerConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/interfaces/logger-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n NEST_LOG_LEVEL\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n NEST_LOG_LEVEL\n \n \n \n \n \n \n \n \n NEST_LOG_LEVEL: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface ILoggerConfig {\n\tNEST_LOG_LEVEL: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IMaterialProperties.html":{"url":"interfaces/IMaterialProperties.html","title":"interface - IMaterialProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IMaterialProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/materials.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n client\n \n \n \n Optional\n \n description\n \n \n \n \n license\n \n \n \n Optional\n \n merlinReference\n \n \n \n \n relatedResources\n \n \n \n \n subjects\n \n \n \n \n tags\n \n \n \n \n targetGroups\n \n \n \n \n title\n \n \n \n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n client\n \n \n \n \n \n \n \n \n client: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n license\n \n \n \n \n \n \n \n \n license: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n merlinReference\n \n \n \n \n \n \n \n \n merlinReference: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n relatedResources\n \n \n \n \n \n \n \n \n relatedResources: IRelatedResourceProperties[]\n\n \n \n\n\n \n \n Type : IRelatedResourceProperties[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n subjects\n \n \n \n \n \n \n \n \n subjects: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n tags\n \n \n \n \n \n \n \n \n tags: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n targetGroups\n \n \n \n \n \n \n \n \n targetGroups: ITargetGroupProperties[]\n\n \n \n\n\n \n \n Type : ITargetGroupProperties[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ITargetGroupProperties {\n\tstate?: string;\n\tschoolType?: string;\n\tgrade?: string;\n}\n\nexport interface IRelatedResourceProperties {\n\toriginId?: string;\n\trelationType?: string;\n}\n\nexport interface IMaterialProperties {\n\tclient: string;\n\tdescription?: string;\n\tlicense: string[];\n\tmerlinReference?: string;\n\trelatedResources: IRelatedResourceProperties[];\n\tsubjects: string[];\n\ttags: string[];\n\ttargetGroups: ITargetGroupProperties[];\n\ttitle: string;\n\turl: string;\n}\n\n@Entity({ collection: 'materials' })\nexport class Material extends BaseEntityWithTimestamps {\n\t@Property()\n\tclient: string;\n\n\t@Property()\n\tdescription?: string;\n\n\t@Property()\n\tlicense: string[];\n\n\t@Property()\n\tmerlinReference?: string;\n\n\t@Property()\n\trelatedResources: IRelatedResourceProperties[] | [];\n\n\t@Property()\n\tsubjects: string[] | [];\n\n\t@Property()\n\ttags: string[] | [];\n\n\t@Property()\n\ttargetGroups: ITargetGroupProperties[] | [];\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\turl: string;\n\n\tconstructor(props: IMaterialProperties) {\n\t\tsuper();\n\t\tthis.client = props.client;\n\t\tthis.description = props.description || '';\n\t\tthis.license = props.license;\n\t\tthis.merlinReference = props.merlinReference || '';\n\t\tthis.relatedResources = props.relatedResources;\n\t\tthis.subjects = props.subjects;\n\t\tthis.tags = props.tags;\n\t\tthis.targetGroups = props.targetGroups;\n\t\tthis.title = props.title;\n\t\tthis.url = props.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IMigrationOptions.html":{"url":"interfaces/IMigrationOptions.html","title":"interface - IMigrationOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IMigrationOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n query\n \n \n \n Optional\n \n skip\n \n \n \n Optional\n \n verbose\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n query\n \n \n \n \n \n \n \n \n query: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n \n \n skip: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n verbose\n \n \n \n \n \n \n \n \n verbose: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Command, CommandOption, Console } from 'nestjs-console';\nimport { KeycloakConfigurationUc } from '../uc/keycloak-configuration.uc';\n\nconst defaultError = new Error('IDM is not reachable or authentication failed.');\n\ninterface IRetryOptions {\n\tretryCount?: number;\n\tretryDelay?: number;\n}\n\ninterface IMigrationOptions {\n\tskip?: number;\n\tquery?: string;\n\tverbose?: boolean;\n}\n@Console({ command: 'idm', description: 'Prefixes all Identity Management (IDM) related console commands.' })\nexport class KeycloakConsole {\n\tconstructor(\n\t\tprivate readonly console: ConsoleWriterService,\n\t\tprivate readonly keycloakConfigurationUc: KeycloakConfigurationUc,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(KeycloakConsole.name);\n\t}\n\n\tstatic retryFlags: CommandOption[] = [\n\t\t{\n\t\t\tflags: '-rc, --retry-count ',\n\t\t\tdescription: 'If the command fails, it will be retried this number of times. Default is no retry.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 1,\n\t\t},\n\t\t{\n\t\t\tflags: '-rd, --retry-delay ',\n\t\t\tdescription: 'If \"retry\" is active, this delay is used between each retry. Default is 10 seconds.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 10,\n\t\t},\n\t];\n\n\t/**\n\t * For local development. Checks if connection to IDM is working.\n\t */\n\t@Command({ command: 'check', description: 'Test the connection to the IDM.' })\n\tasync check(): Promise {\n\t\tif (await this.keycloakConfigurationUc.check()) {\n\t\t\tthis.console.info('Connected to IDM');\n\t\t} else {\n\t\t\tthrow defaultError;\n\t\t}\n\t}\n\n\t/**\n\t * For local development. Cleans user from IDM\n\t *\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'clean',\n\t\tdescription: 'Remove all users from the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync clean(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'clean',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.clean();\n\t\t\t\tthis.console.info(`Cleaned ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For local development. Seeds user into IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'seed',\n\t\tdescription: 'Add all seed users to the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync seed(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'seed',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.seed();\n\t\t\t\tthis.console.info(`Seeded ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * Used in production and for local development to transfer configuration to keycloak.\n\t *\n\t */\n\t@Command({\n\t\tcommand: 'configure',\n\t\tdescription: 'Configures Keycloak identity providers.',\n\t\toptions: [...KeycloakConsole.retryFlags],\n\t})\n\tasync configure(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'configure',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.configure();\n\t\t\t\tthis.console.info(`Configured ${count} identity provider(s).`);\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For migration purpose. Moves all database accounts to the IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'migrate',\n\t\tdescription: 'Add all database users to the IDM.',\n\t\toptions: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '-s, --skip',\n\t\t\t\tdescription: 'Skip the first \"s\" accounts during migration. Default 0.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: undefined,\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-v, --verbose',\n\t\t\t\tdescription: 'Log all events. Default is false.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: false,\n\t\t\t},\n\t\t],\n\t})\n\tasync migrate(options: IRetryOptions & IMigrationOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'migrate',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.migrate(\n\t\t\t\t\toptions.skip ? Number(options.skip) : undefined,\n\t\t\t\t\toptions.verbose ? Boolean(options.verbose) : false\n\t\t\t\t);\n\t\t\t\tthis.console.info(`Migrated ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\tprivate async repeatCommand(commandName: string, command: () => Promise, count = 1, delay = 10): Promise {\n\t\tlet repetitions = 0;\n\t\tlet error = new Error('error could be thrown if count is {\n\t\t\tsetTimeout(resolve, ms);\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/INameMatch.html":{"url":"interfaces/INameMatch.html","title":"interface - INameMatch","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n INameMatch\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/importuser.types.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n Match filter for lastName or firstName\n\n \n \n \n \n \n \n\n\n \n import type { IImportUserRoleName } from '../entity/import-user.entity';\n\nexport enum MatchCreatorScope {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n\tNONE = 'none',\n}\n\nexport interface IImportUserScope {\n\tfirstName?: string;\n\tlastName?: string;\n\tloginName?: string;\n\tmatches?: MatchCreatorScope[];\n\tflagged?: boolean;\n\trole?: IImportUserRoleName;\n\tclasses?: string;\n}\n\nexport interface INameMatch {\n\t/**\n\t * Match filter for lastName or firstName\n\t */\n\tname?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/INewsProperties.html":{"url":"interfaces/INewsProperties.html","title":"interface - INewsProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n INewsProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n \n creator\n \n \n \n \n displayAt\n \n \n \n Optional\n \n externalId\n \n \n \n \n school\n \n \n \n Optional\n \n source\n \n \n \n Optional\n \n sourceDescription\n \n \n \n \n target\n \n \n \n \n title\n \n \n \n Optional\n \n updater\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n content\n \n \n \n \n \n \n \n \n content: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n \n \n creator: EntityId | User\n\n \n \n\n\n \n \n Type : EntityId | User\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n \n \n displayAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: EntityId | SchoolEntity\n\n \n \n\n\n \n \n Type : EntityId | SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n source\n \n \n \n \n \n \n \n \n source: \"internal\" | \"rss\"\n\n \n \n\n\n \n \n Type : \"internal\" | \"rss\"\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sourceDescription\n \n \n \n \n \n \n \n \n sourceDescription: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: EntityId | NewsTarget\n\n \n \n\n\n \n \n Type : EntityId | NewsTarget\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updater\n \n \n \n \n \n \n \n \n updater: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/INewsScope.html":{"url":"interfaces/INewsScope.html","title":"interface - INewsScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n INewsScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/news.types.ts\n \n\n\n \n Description\n \n \n interface for finding news with optional targetId\n\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n target\n \n \n \n Optional\n \n unpublished\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n target\n \n \n \n \n \n \n \n \n target: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n unpublished\n \n \n \n \n \n \n \n \n unpublished: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from './entity-id';\nimport type { Course } from '../entity/course.entity';\nimport type { SchoolEntity } from '../entity/school.entity';\nimport type { TeamEntity } from '../entity/team.entity';\n\nexport enum NewsTargetModel {\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Team' = 'teams',\n}\n\n/** news interface for ceating news */\nexport interface ICreateNews {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt?: Date;\n\ttarget: { targetModel: NewsTargetModel; targetId: EntityId };\n}\n\n/** news interface for updating news */\nexport type IUpdateNews = Partial;\n\n/** interface for finding news with optional targetId */\nexport interface INewsScope {\n\ttarget?: { targetModel: NewsTargetModel; targetId?: EntityId };\n\tunpublished?: boolean;\n}\n\nexport type NewsTarget = SchoolEntity | TeamEntity | Course;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IPagination.html":{"url":"interfaces/IPagination.html","title":"interface - IPagination","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IPagination\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/interface/find-options.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n limit\n \n \n \n Optional\n \n skip\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n limit\n \n \n \n \n \n \n \n \n limit: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n \n \n skip: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IPagination {\n\tskip?: number;\n\tlimit?: number;\n}\n\nexport enum SortOrder {\n\tasc = 'asc',\n\tdesc = 'desc',\n}\n\nexport type SortOrderMap = Partial>;\n\nexport interface IFindOptions {\n\tpagination?: IPagination;\n\torder?: SortOrderMap;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IParentInfo.html":{"url":"interfaces/IParentInfo.html","title":"interface - IParentInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IParentInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/entity/filerecord.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: FileRecordParentType\n\n \n \n\n\n \n \n Type : FileRecordParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BadRequestException } from '@nestjs/common';\nimport { BaseEntityWithTimestamps, EntityId } from '@shared/domain';\nimport { v4 as uuid } from 'uuid';\nimport { ErrorType } from '../error';\nimport { PreviewInputMimeTypes } from '../interface/preview-input-mime-types.enum';\n\nexport enum ScanStatus {\n\tPENDING = 'pending',\n\tVERIFIED = 'verified',\n\tBLOCKED = 'blocked',\n\tWONT_CHECK = 'wont_check',\n\tERROR = 'error',\n}\n\nexport enum FileRecordParentType {\n\t'User' = 'users',\n\t'School' = 'schools',\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n\t'Submission' = 'submissions',\n\t'BoardNode' = 'boardnodes',\n}\n\nexport enum PreviewStatus {\n\tPREVIEW_POSSIBLE = 'preview_possible',\n\tAWAITING_SCAN_STATUS = 'awaiting_scan_status',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR = 'preview_not_possible_scan_status_error',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK = 'preview_not_possible_scan_status_wont_check',\n\tPREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED = 'preview_not_possible_scan_status_blocked',\n\tPREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE = 'preview_not_possible_wrong_mime_type',\n}\n\nexport interface IFileRecordSecurityCheckProperties {\n\tstatus?: ScanStatus;\n\treason?: string;\n\trequestToken?: string;\n}\n@Embeddable()\nexport class FileRecordSecurityCheck {\n\t@Enum()\n\tstatus: ScanStatus = ScanStatus.PENDING;\n\n\t@Property()\n\treason = 'not yet scanned';\n\n\t@Property()\n\trequestToken?: string = uuid();\n\n\t@Property()\n\tcreatedAt = new Date();\n\n\t@Property()\n\tupdatedAt = new Date();\n\n\tconstructor(props: IFileRecordSecurityCheckProperties) {\n\t\tif (props.status !== undefined) {\n\t\t\tthis.status = props.status;\n\t\t}\n\t\tif (props.reason !== undefined) {\n\t\t\tthis.reason = props.reason;\n\t\t}\n\t\tif (props.requestToken !== undefined) {\n\t\t\tthis.requestToken = props.requestToken;\n\t\t}\n\t}\n}\n\nexport interface IFileRecordProperties {\n\tsize: number;\n\tname: string;\n\tmimeType: string;\n\tparentType: FileRecordParentType;\n\tparentId: EntityId;\n\tcreatorId: EntityId;\n\tschoolId: EntityId;\n\tdeletedSince?: Date;\n\tisCopyFrom?: EntityId;\n}\n\ninterface IParentInfo {\n\tschoolId: EntityId;\n\tparentId: EntityId;\n\tparentType: FileRecordParentType;\n}\n\n// TODO: IEntityWithSchool\n\n/**\n * Note: The file record entity will not manage any entity relations by itself.\n * That's why we do not map any relations in the entity class\n * and instead just use the plain object ids.\n */\n@Entity({ tableName: 'filerecords' })\n@Index({ properties: ['_schoolId', '_parentId'], options: { background: true } })\n// https://github.com/mikro-orm/mikro-orm/issues/1230\n@Index({ options: { 'securityCheck.requestToken': 1 } })\nexport class FileRecord extends BaseEntityWithTimestamps {\n\t@Index({ options: { expireAfterSeconds: 7 * 24 * 60 * 60 } })\n\t@Property({ nullable: true })\n\tdeletedSince?: Date;\n\n\t@Property()\n\tsize: number;\n\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tmimeType: string; // TODO mime-type enum?\n\n\t@Embedded(() => FileRecordSecurityCheck, { object: true, nullable: false })\n\tsecurityCheck: FileRecordSecurityCheck;\n\n\t@Index()\n\t@Enum()\n\tparentType: FileRecordParentType;\n\n\t@Index()\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'creator' })\n\t_creatorId: ObjectId;\n\n\tget creatorId(): EntityId {\n\t\treturn this._creatorId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'school' })\n\t_schoolId: ObjectId;\n\n\tget schoolId(): EntityId {\n\t\treturn this._schoolId.toHexString();\n\t}\n\n\t@Property({ fieldName: 'isCopyFrom', nullable: true })\n\t_isCopyFrom?: ObjectId;\n\n\tget isCopyFrom(): EntityId | undefined {\n\t\tconst result = this._isCopyFrom?.toHexString();\n\n\t\treturn result;\n\t}\n\n\tconstructor(props: IFileRecordProperties) {\n\t\tsuper();\n\t\tthis.size = props.size;\n\t\tthis.name = props.name;\n\t\tthis.mimeType = props.mimeType;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis._creatorId = new ObjectId(props.creatorId);\n\t\tthis._schoolId = new ObjectId(props.schoolId);\n\t\tif (props.isCopyFrom) {\n\t\t\tthis._isCopyFrom = new ObjectId(props.isCopyFrom);\n\t\t}\n\t\tthis.securityCheck = new FileRecordSecurityCheck({});\n\t\tthis.deletedSince = props.deletedSince;\n\t}\n\n\tpublic updateSecurityCheckStatus(status: ScanStatus, reason: string): void {\n\t\tthis.securityCheck.status = status;\n\t\tthis.securityCheck.reason = reason;\n\t\tthis.securityCheck.updatedAt = new Date();\n\t\tthis.securityCheck.requestToken = undefined;\n\t}\n\n\tpublic getSecurityToken(): string | undefined {\n\t\treturn this.securityCheck.requestToken;\n\t}\n\n\tpublic copy(userId: EntityId, targetParentInfo: IParentInfo): FileRecord {\n\t\tconst { size, name, mimeType, id } = this;\n\t\tconst { parentType, parentId, schoolId } = targetParentInfo;\n\n\t\tconst fileRecordCopy = new FileRecord({\n\t\t\tsize,\n\t\t\tname,\n\t\t\tmimeType,\n\t\t\tparentType,\n\t\t\tparentId,\n\t\t\tcreatorId: userId,\n\t\t\tschoolId,\n\t\t\tisCopyFrom: id,\n\t\t});\n\n\t\tif (this.isVerified()) {\n\t\t\tfileRecordCopy.securityCheck = this.securityCheck;\n\t\t}\n\n\t\treturn fileRecordCopy;\n\t}\n\n\tpublic markForDelete(): void {\n\t\tthis.deletedSince = new Date();\n\t}\n\n\tpublic unmarkForDelete(): void {\n\t\tthis.deletedSince = undefined;\n\t}\n\n\tpublic setName(name: string): void {\n\t\tif (name.length === 0) {\n\t\t\tthrow new BadRequestException(ErrorType.FILE_NAME_EMPTY);\n\t\t}\n\n\t\tthis.name = name;\n\t}\n\n\tpublic hasName(name: string): boolean {\n\t\tconst hasName = this.name === name;\n\n\t\treturn hasName;\n\t}\n\n\tpublic getName(): string {\n\t\treturn this.name;\n\t}\n\n\tpublic isBlocked(): boolean {\n\t\tconst isBlocked = this.securityCheck.status === ScanStatus.BLOCKED;\n\n\t\treturn isBlocked;\n\t}\n\n\tpublic hasScanStatusError(): boolean {\n\t\tconst hasError = this.securityCheck.status === ScanStatus.ERROR;\n\n\t\treturn hasError;\n\t}\n\n\tpublic hasScanStatusWontCheck(): boolean {\n\t\tconst hasWontCheckStatus = this.securityCheck.status === ScanStatus.WONT_CHECK;\n\n\t\treturn hasWontCheckStatus;\n\t}\n\n\tpublic isPending(): boolean {\n\t\tconst isPending = this.securityCheck.status === ScanStatus.PENDING;\n\n\t\treturn isPending;\n\t}\n\n\tpublic isVerified(): boolean {\n\t\tconst isVerified = this.securityCheck.status === ScanStatus.VERIFIED;\n\n\t\treturn isVerified;\n\t}\n\n\tpublic getParentInfo(): IParentInfo {\n\t\tconst { parentId, parentType, schoolId } = this;\n\n\t\treturn { parentId, parentType, schoolId };\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.schoolId;\n\t}\n\n\tpublic getPreviewStatus(): PreviewStatus {\n\t\tif (this.isBlocked()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_BLOCKED;\n\t\t}\n\n\t\tif (!Object.values(PreviewInputMimeTypes).includes(this.mimeType)) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_WRONG_MIME_TYPE;\n\t\t}\n\n\t\tif (this.isVerified()) {\n\t\t\treturn PreviewStatus.PREVIEW_POSSIBLE;\n\t\t}\n\n\t\tif (this.isPending()) {\n\t\t\treturn PreviewStatus.AWAITING_SCAN_STATUS;\n\t\t}\n\n\t\tif (this.hasScanStatusWontCheck()) {\n\t\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_WONT_CHECK;\n\t\t}\n\n\t\treturn PreviewStatus.PREVIEW_NOT_POSSIBLE_SCAN_STATUS_ERROR;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRelatedResourceProperties.html":{"url":"interfaces/IRelatedResourceProperties.html","title":"interface - IRelatedResourceProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRelatedResourceProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/materials.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n originId\n \n \n \n Optional\n \n relationType\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n originId\n \n \n \n \n \n \n \n \n originId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n relationType\n \n \n \n \n \n \n \n \n relationType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ITargetGroupProperties {\n\tstate?: string;\n\tschoolType?: string;\n\tgrade?: string;\n}\n\nexport interface IRelatedResourceProperties {\n\toriginId?: string;\n\trelationType?: string;\n}\n\nexport interface IMaterialProperties {\n\tclient: string;\n\tdescription?: string;\n\tlicense: string[];\n\tmerlinReference?: string;\n\trelatedResources: IRelatedResourceProperties[];\n\tsubjects: string[];\n\ttags: string[];\n\ttargetGroups: ITargetGroupProperties[];\n\ttitle: string;\n\turl: string;\n}\n\n@Entity({ collection: 'materials' })\nexport class Material extends BaseEntityWithTimestamps {\n\t@Property()\n\tclient: string;\n\n\t@Property()\n\tdescription?: string;\n\n\t@Property()\n\tlicense: string[];\n\n\t@Property()\n\tmerlinReference?: string;\n\n\t@Property()\n\trelatedResources: IRelatedResourceProperties[] | [];\n\n\t@Property()\n\tsubjects: string[] | [];\n\n\t@Property()\n\ttags: string[] | [];\n\n\t@Property()\n\ttargetGroups: ITargetGroupProperties[] | [];\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\turl: string;\n\n\tconstructor(props: IMaterialProperties) {\n\t\tsuper();\n\t\tthis.client = props.client;\n\t\tthis.description = props.description || '';\n\t\tthis.license = props.license;\n\t\tthis.merlinReference = props.merlinReference || '';\n\t\tthis.relatedResources = props.relatedResources;\n\t\tthis.subjects = props.subjects;\n\t\tthis.tags = props.tags;\n\t\tthis.targetGroups = props.targetGroups;\n\t\tthis.title = props.title;\n\t\tthis.url = props.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRepoLoader.html":{"url":"interfaces/IRepoLoader.html","title":"interface - IRepoLoader","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRepoLoader\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/reference.loader.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n populate\n \n \n \n \n repo\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n populate\n \n \n \n \n \n \n \n \n populate: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n repo\n \n \n \n \n \n \n \n \n repo: RepoType\n\n \n \n\n\n \n \n Type : RepoType\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { BaseDO, EntityId, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport {\n\tCourseGroupRepo,\n\tCourseRepo,\n\tLessonRepo,\n\tSchoolExternalToolRepo,\n\tLegacySchoolRepo,\n\tSubmissionRepo,\n\tTaskRepo,\n\tTeamsRepo,\n\tUserRepo,\n} from '@shared/repo';\nimport { BoardDoAuthorizableService } from '@src/modules/board/service';\nimport { ContextExternalToolAuthorizableService } from '@src/modules/tool/context-external-tool/service';\nimport { AuthorizableReferenceType } from './types';\n\n// replace later with general \"base\" do-repo\ntype RepoType =\n\t| TaskRepo\n\t| CourseRepo\n\t| UserRepo\n\t| LegacySchoolRepo\n\t| LessonRepo\n\t| TeamsRepo\n\t| CourseGroupRepo\n\t| SubmissionRepo\n\t| SchoolExternalToolRepo\n\t| BoardDoAuthorizableService\n\t| ContextExternalToolAuthorizableService;\n\ninterface IRepoLoader {\n\trepo: RepoType;\n\tpopulate?: boolean;\n}\n\n@Injectable()\nexport class ReferenceLoader {\n\tprivate repos: Map = new Map();\n\n\tconstructor(\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly courseGroupRepo: CourseGroupRepo,\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly schoolRepo: LegacySchoolRepo,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly teamsRepo: TeamsRepo,\n\t\tprivate readonly submissionRepo: SubmissionRepo,\n\t\tprivate readonly schoolExternalToolRepo: SchoolExternalToolRepo,\n\t\tprivate readonly boardNodeAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly contextExternalToolAuthorizableService: ContextExternalToolAuthorizableService\n\t) {\n\t\tthis.repos.set(AuthorizableReferenceType.Task, { repo: this.taskRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Course, { repo: this.courseRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.CourseGroup, { repo: this.courseGroupRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.User, { repo: this.userRepo, populate: true });\n\t\tthis.repos.set(AuthorizableReferenceType.School, { repo: this.schoolRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Lesson, { repo: this.lessonRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Team, { repo: this.teamsRepo, populate: true });\n\t\tthis.repos.set(AuthorizableReferenceType.Submission, { repo: this.submissionRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.SchoolExternalToolEntity, { repo: this.schoolExternalToolRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.BoardNode, { repo: this.boardNodeAuthorizableService });\n\t\tthis.repos.set(AuthorizableReferenceType.ContextExternalToolEntity, {\n\t\t\trepo: this.contextExternalToolAuthorizableService,\n\t\t});\n\t}\n\n\tprivate resolveRepo(type: AuthorizableReferenceType): IRepoLoader {\n\t\tconst repo = this.repos.get(type);\n\t\tif (repo) {\n\t\t\treturn repo;\n\t\t}\n\t\tthrow new NotImplementedException('REPO_OR_SERVICE_NOT_IMPLEMENT');\n\t}\n\n\tasync loadAuthorizableObject(\n\t\tobjectName: AuthorizableReferenceType,\n\t\tobjectId: EntityId\n\t): Promise {\n\t\tconst repoLoader: IRepoLoader = this.resolveRepo(objectName);\n\n\t\tlet object: AuthorizableObject | BaseDO;\n\t\tif (repoLoader.populate) {\n\t\t\tobject = await repoLoader.repo.findById(objectId, true);\n\t\t} else {\n\t\t\tobject = await repoLoader.repo.findById(objectId);\n\t\t}\n\n\t\treturn object;\n\t}\n\n\tasync getUserWithPermissions(userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\n\t\treturn user;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IResolvedUser.html":{"url":"interfaces/IResolvedUser.html","title":"interface - IResolvedUser","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IResolvedUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/user.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n firstName\n \n \n \n \n id\n \n \n \n \n lastName\n \n \n \n \n permissions\n \n \n \n \n roles\n \n \n \n \n schoolId\n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n \n \n permissions: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: IRole[]\n\n \n \n\n\n \n \n Type : IRole[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface IRole {\n\tname: string;\n\n\tid: string;\n}\n\nexport interface IResolvedUser {\n\tfirstName: string;\n\n\tlastName: string;\n\n\tid: string;\n\n\tcreatedAt: Date;\n\n\tupdatedAt: Date;\n\n\troles: IRole[];\n\n\tpermissions: string[];\n\n\tschoolId: string;\n}\n\nexport interface ICurrentUser {\n\t/** authenticated users id */\n\tuserId: EntityId;\n\t/** users role ids as EntityId[] */\n\troles: EntityId[];\n\t/** users schoolId as EntityId */\n\tschoolId: EntityId;\n\t/** account id as EntityId */\n\taccountId: EntityId;\n\n\t/** true if user is provided by external system -> no pw change in first login */\n\tsystemId?: EntityId;\n\n\t/** True if a support member impersonates the user */\n\timpersonated?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRetryOptions.html":{"url":"interfaces/IRetryOptions.html","title":"interface - IRetryOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRetryOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n retryCount\n \n \n \n Optional\n \n retryDelay\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n retryCount\n \n \n \n \n \n \n \n \n retryCount: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n retryDelay\n \n \n \n \n \n \n \n \n retryDelay: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Command, CommandOption, Console } from 'nestjs-console';\nimport { KeycloakConfigurationUc } from '../uc/keycloak-configuration.uc';\n\nconst defaultError = new Error('IDM is not reachable or authentication failed.');\n\ninterface IRetryOptions {\n\tretryCount?: number;\n\tretryDelay?: number;\n}\n\ninterface IMigrationOptions {\n\tskip?: number;\n\tquery?: string;\n\tverbose?: boolean;\n}\n@Console({ command: 'idm', description: 'Prefixes all Identity Management (IDM) related console commands.' })\nexport class KeycloakConsole {\n\tconstructor(\n\t\tprivate readonly console: ConsoleWriterService,\n\t\tprivate readonly keycloakConfigurationUc: KeycloakConfigurationUc,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(KeycloakConsole.name);\n\t}\n\n\tstatic retryFlags: CommandOption[] = [\n\t\t{\n\t\t\tflags: '-rc, --retry-count ',\n\t\t\tdescription: 'If the command fails, it will be retried this number of times. Default is no retry.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 1,\n\t\t},\n\t\t{\n\t\t\tflags: '-rd, --retry-delay ',\n\t\t\tdescription: 'If \"retry\" is active, this delay is used between each retry. Default is 10 seconds.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 10,\n\t\t},\n\t];\n\n\t/**\n\t * For local development. Checks if connection to IDM is working.\n\t */\n\t@Command({ command: 'check', description: 'Test the connection to the IDM.' })\n\tasync check(): Promise {\n\t\tif (await this.keycloakConfigurationUc.check()) {\n\t\t\tthis.console.info('Connected to IDM');\n\t\t} else {\n\t\t\tthrow defaultError;\n\t\t}\n\t}\n\n\t/**\n\t * For local development. Cleans user from IDM\n\t *\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'clean',\n\t\tdescription: 'Remove all users from the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync clean(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'clean',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.clean();\n\t\t\t\tthis.console.info(`Cleaned ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For local development. Seeds user into IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'seed',\n\t\tdescription: 'Add all seed users to the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync seed(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'seed',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.seed();\n\t\t\t\tthis.console.info(`Seeded ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * Used in production and for local development to transfer configuration to keycloak.\n\t *\n\t */\n\t@Command({\n\t\tcommand: 'configure',\n\t\tdescription: 'Configures Keycloak identity providers.',\n\t\toptions: [...KeycloakConsole.retryFlags],\n\t})\n\tasync configure(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'configure',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.configure();\n\t\t\t\tthis.console.info(`Configured ${count} identity provider(s).`);\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For migration purpose. Moves all database accounts to the IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'migrate',\n\t\tdescription: 'Add all database users to the IDM.',\n\t\toptions: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '-s, --skip',\n\t\t\t\tdescription: 'Skip the first \"s\" accounts during migration. Default 0.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: undefined,\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-v, --verbose',\n\t\t\t\tdescription: 'Log all events. Default is false.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: false,\n\t\t\t},\n\t\t],\n\t})\n\tasync migrate(options: IRetryOptions & IMigrationOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'migrate',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.migrate(\n\t\t\t\t\toptions.skip ? Number(options.skip) : undefined,\n\t\t\t\t\toptions.verbose ? Boolean(options.verbose) : false\n\t\t\t\t);\n\t\t\t\tthis.console.info(`Migrated ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\tprivate async repeatCommand(commandName: string, command: () => Promise, count = 1, delay = 10): Promise {\n\t\tlet repetitions = 0;\n\t\tlet error = new Error('error could be thrown if count is {\n\t\t\tsetTimeout(resolve, ms);\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRole.html":{"url":"interfaces/IRole.html","title":"interface - IRole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/user.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface IRole {\n\tname: string;\n\n\tid: string;\n}\n\nexport interface IResolvedUser {\n\tfirstName: string;\n\n\tlastName: string;\n\n\tid: string;\n\n\tcreatedAt: Date;\n\n\tupdatedAt: Date;\n\n\troles: IRole[];\n\n\tpermissions: string[];\n\n\tschoolId: string;\n}\n\nexport interface ICurrentUser {\n\t/** authenticated users id */\n\tuserId: EntityId;\n\t/** users role ids as EntityId[] */\n\troles: EntityId[];\n\t/** users schoolId as EntityId */\n\tschoolId: EntityId;\n\t/** account id as EntityId */\n\taccountId: EntityId;\n\n\t/** true if user is provided by external system -> no pw change in first login */\n\tsystemId?: EntityId;\n\n\t/** True if a support member impersonates the user */\n\timpersonated?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IRoleProperties.html":{"url":"interfaces/IRoleProperties.html","title":"interface - IRoleProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IRoleProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/role.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n Optional\n \n permissions\n \n \n \n Optional\n \n roles\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: RoleName\n\n \n \n\n\n \n \n Type : RoleName\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n \n \n permissions: Permission[]\n\n \n \n\n\n \n \n Type : Permission[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: Role[]\n\n \n \n\n\n \n \n Type : Role[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, ManyToMany, Property, Unique } from '@mikro-orm/core';\nimport { Permission, RoleName } from '../interface';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IRoleProperties {\n\tpermissions?: Permission[];\n\troles?: Role[];\n\tname: RoleName;\n}\n\n@Entity({ tableName: 'roles' })\nexport class Role extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tname: RoleName;\n\n\t@Property()\n\tpermissions: Permission[] = [];\n\n\t@ManyToMany({ entity: 'Role' })\n\troles = new Collection(this);\n\n\tconstructor(props: IRoleProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.permissions) this.permissions = props.permissions;\n\t\tif (props.roles) this.roles.set(props.roles);\n\t}\n\n\tpublic resolvePermissions(): string[] {\n\t\tif (!this.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\n\t\tlet permissions: string[] = [...this.permissions];\n\n\t\tconst innerRoles = this.roles.getItems();\n\t\tinnerRoles.forEach((innerRole) => {\n\t\t\tconst innerPermissions = innerRole.resolvePermissions();\n\t\t\tpermissions = [...permissions, ...innerPermissions];\n\t\t});\n\n\t\tconst uniquePermissions = [...new Set(permissions)];\n\n\t\treturn uniquePermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISchoolExternalToolProperties.html":{"url":"interfaces/ISchoolExternalToolProperties.html","title":"interface - ISchoolExternalToolProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISchoolExternalToolProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n school\n \n \n \n Optional\n \n schoolParameters\n \n \n \n \n tool\n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolParameters\n \n \n \n \n \n \n \n \n schoolParameters: CustomParameterEntryEntity[]\n\n \n \n\n\n \n \n Type : CustomParameterEntryEntity[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n tool\n \n \n \n \n \n \n \n \n tool: ExternalToolEntity\n\n \n \n\n\n \n \n Type : ExternalToolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n toolVersion: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { CustomParameterEntryEntity } from '../../common/entity';\nimport { ExternalToolEntity } from '../../external-tool/entity';\n\nexport interface ISchoolExternalToolProperties {\n\ttool: ExternalToolEntity;\n\tschool: SchoolEntity;\n\tschoolParameters?: CustomParameterEntryEntity[];\n\ttoolVersion: number;\n}\n\n@Entity({ tableName: 'school_external_tools' })\nexport class SchoolExternalToolEntity extends BaseEntityWithTimestamps {\n\t@ManyToOne()\n\ttool: ExternalToolEntity;\n\n\t@ManyToOne(() => SchoolEntity, { eager: true })\n\tschool: SchoolEntity;\n\n\t@Embedded(() => CustomParameterEntryEntity, { array: true })\n\tschoolParameters: CustomParameterEntryEntity[];\n\n\t@Property()\n\ttoolVersion: number;\n\n\tconstructor(props: ISchoolExternalToolProperties) {\n\t\tsuper();\n\t\tthis.tool = props.tool;\n\t\tthis.school = props.school;\n\t\tthis.schoolParameters = props.schoolParameters ?? [];\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISchoolProperties.html":{"url":"interfaces/ISchoolProperties.html","title":"interface - ISchoolProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISchoolProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/school.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n _id\n \n \n \n Optional\n \n externalId\n \n \n \n Optional\n \n features\n \n \n \n \n federalState\n \n \n \n Optional\n \n inMaintenanceSince\n \n \n \n Optional\n \n inUserMigration\n \n \n \n \n name\n \n \n \n Optional\n \n officialSchoolNumber\n \n \n \n Optional\n \n previousExternalId\n \n \n \n Optional\n \n schoolYear\n \n \n \n Optional\n \n systems\n \n \n \n Optional\n \n userLoginMigration\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n _id\n \n \n \n \n \n \n \n \n _id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n features\n \n \n \n \n \n \n \n \n features: SchoolFeatures[]\n\n \n \n\n\n \n \n Type : SchoolFeatures[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n federalState\n \n \n \n \n \n \n \n \n federalState: FederalState\n\n \n \n\n\n \n \n Type : FederalState\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n inMaintenanceSince\n \n \n \n \n \n \n \n \n inMaintenanceSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n inUserMigration\n \n \n \n \n \n \n \n \n inUserMigration: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n officialSchoolNumber\n \n \n \n \n \n \n \n \n officialSchoolNumber: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n previousExternalId\n \n \n \n \n \n \n \n \n previousExternalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n schoolYear\n \n \n \n \n \n \n \n \n schoolYear: SchoolYear\n\n \n \n\n\n \n \n Type : SchoolYear\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n systems\n \n \n \n \n \n \n \n \n systems: System[]\n\n \n \n\n\n \n \n Type : System[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n userLoginMigration\n \n \n \n \n \n \n \n \n userLoginMigration: UserLoginMigration\n\n \n \n\n\n \n \n Type : UserLoginMigration\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import {\n\tCollection,\n\tEmbeddable,\n\tEmbedded,\n\tEntity,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToOne,\n\tProperty,\n} from '@mikro-orm/core';\nimport { UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYear } from './schoolyear.entity';\nimport { System } from './system.entity';\nimport { FederalState } from './federal-state.entity';\n\nexport enum SchoolFeatures {\n\tROCKET_CHAT = 'rocketChat',\n\tVIDEOCONFERENCE = 'videoconference',\n\tNEXTCLOUD = 'nextcloud',\n\tSTUDENTVISIBILITY = 'studentVisibility', // deprecated\n\tLDAP_UNIVENTION_MIGRATION = 'ldapUniventionMigrationSchool',\n\tOAUTH_PROVISIONING_ENABLED = 'oauthProvisioningEnabled',\n\tSHOW_OUTDATED_USERS = 'showOutdatedUsers',\n\tENABLE_LDAP_SYNC_DURING_MIGRATION = 'enableLdapSyncDuringMigration',\n}\n\nexport interface ISchoolProperties {\n\t_id?: string;\n\texternalId?: string;\n\tinMaintenanceSince?: Date;\n\tinUserMigration?: boolean;\n\tpreviousExternalId?: string;\n\tname: string;\n\tofficialSchoolNumber?: string;\n\tsystems?: System[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYear;\n\tuserLoginMigration?: UserLoginMigration;\n\tfederalState: FederalState;\n}\n\n@Embeddable()\nexport class SchoolRolePermission {\n\t@Property({ nullable: true })\n\tSTUDENT_LIST?: boolean;\n\n\t@Property({ nullable: true })\n\tLERNSTORE_VIEW?: boolean;\n}\n\n@Embeddable()\nexport class SchoolRoles {\n\t@Property({ nullable: true, fieldName: 'student' })\n\tstudent?: SchoolRolePermission;\n\n\t@Property({ nullable: true, fieldName: 'teacher' })\n\tteacher?: SchoolRolePermission;\n}\n\n@Entity({ tableName: 'schools' })\n@Index({ properties: ['externalId', 'systems'] })\nexport class SchoolEntity extends BaseEntity {\n\t@Property({ nullable: true })\n\tfeatures?: SchoolFeatures[];\n\n\t@Property({ nullable: true })\n\tinMaintenanceSince?: Date;\n\n\t@Property({ nullable: true })\n\tinUserMigration?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'ldapSchoolIdentifier' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tofficialSchoolNumber?: string;\n\n\t@ManyToMany('System', undefined, { fieldName: 'systems' })\n\tsystems = new Collection(this);\n\n\t@Embedded(() => SchoolRoles, { object: true, nullable: true, prefix: false })\n\tpermissions?: SchoolRoles;\n\n\t@ManyToOne('SchoolYear', { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYear;\n\n\t@OneToOne(() => UserLoginMigration, (userLoginMigration: UserLoginMigration) => userLoginMigration.school, {\n\t\torphanRemoval: true,\n\t\tnullable: true,\n\t\tfieldName: 'userLoginMigrationId',\n\t})\n\tuserLoginMigration?: UserLoginMigration;\n\n\t@ManyToOne(() => FederalState, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalState;\n\n\tconstructor(props: ISchoolProperties) {\n\t\tsuper();\n\t\tif (props.externalId) {\n\t\t\tthis.externalId = props.externalId;\n\t\t}\n\t\tif (props.previousExternalId) {\n\t\t\tthis.previousExternalId = props.previousExternalId;\n\t\t}\n\t\tthis.inMaintenanceSince = props.inMaintenanceSince;\n\t\tif (props.inUserMigration !== null) {\n\t\t\tthis.inUserMigration = props.inUserMigration;\n\t\t}\n\t\tthis.name = props.name;\n\t\tif (props.officialSchoolNumber) {\n\t\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t\t}\n\t\tif (props.systems) {\n\t\t\tthis.systems.set(props.systems);\n\t\t}\n\t\tif (props.features) {\n\t\t\tthis.features = props.features;\n\t\t}\n\t\tif (props.schoolYear) {\n\t\t\tthis.schoolYear = props.schoolYear;\n\t\t}\n\t\tif (props.userLoginMigration) {\n\t\t\tthis.userLoginMigration = props.userLoginMigration;\n\t\t}\n\t\tthis.federalState = props.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISchoolYearProperties.html":{"url":"interfaces/ISchoolYearProperties.html","title":"interface - ISchoolYearProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISchoolYearProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/schoolyear.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n endDate\n \n \n \n \n name\n \n \n \n \n startDate\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n endDate\n \n \n \n \n \n \n \n \n endDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n startDate\n \n \n \n \n \n \n \n \n startDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntity } from './base.entity';\n\nexport interface ISchoolYearProperties {\n\tname: string;\n\tstartDate: Date;\n\tendDate: Date;\n}\n\n@Entity({ tableName: 'years' })\nexport class SchoolYear extends BaseEntity implements ISchoolYearProperties {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tstartDate: Date;\n\n\t@Property()\n\tendDate: Date;\n\n\tconstructor(props: ISchoolYearProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.startDate = props.startDate;\n\t\tthis.endDate = props.endDate;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IScopeInfo.html":{"url":"interfaces/IScopeInfo.html","title":"interface - IScopeInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IScopeInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/scope-info.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n logoutUrl\n \n \n \n \n scopeId\n \n \n \n \n scopeName\n \n \n \n \n title\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n logoutUrl\n \n \n \n \n \n \n \n \n logoutUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n scopeId\n \n \n \n \n \n \n \n \n scopeId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n scopeName\n \n \n \n \n \n \n \n \n scopeName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n \n \n title: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport interface IScopeInfo {\n\tscopeId: EntityId;\n\n\tscopeName: string;\n\n\ttitle: string;\n\n\tlogoutUrl: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IServerConfig.html":{"url":"interfaces/IServerConfig.html","title":"interface - IServerConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IServerConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/server/server.config.ts\n \n\n\n\n \n Extends\n \n \n ICoreModuleConfig\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n NODE_ENV\n \n \n \n \n SC_DOMAIN\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n NODE_ENV\n \n \n \n \n \n \n \n \n NODE_ENV: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n SC_DOMAIN\n \n \n \n \n \n \n \n \n SC_DOMAIN: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport type { IIdentityManagementConfig } from '@shared/infra/identity-management';\nimport type { ICoreModuleConfig } from '@src/core';\nimport type { IAccountConfig, IFilesStorageClientConfig, IUserConfig } from '@src/modules/';\nimport type { ICommonCartridgeConfig } from '@src/modules/learnroom/common-cartridge';\n\nexport enum NodeEnvType {\n\tTEST = 'test',\n\tDEVELOPMENT = 'development',\n\tPRODUCTION = 'production',\n\tMIGRATION = 'migration',\n}\n\nexport interface IServerConfig\n\textends ICoreModuleConfig,\n\t\tIUserConfig,\n\t\tIFilesStorageClientConfig,\n\t\tIAccountConfig,\n\t\tIIdentityManagementConfig,\n\t\tICommonCartridgeConfig {\n\tNODE_ENV: string;\n\tSC_DOMAIN: string;\n}\n\nconst config: IServerConfig = {\n\tSC_DOMAIN: Configuration.get('SC_DOMAIN') as string,\n\tINCOMING_REQUEST_TIMEOUT: Configuration.get('INCOMING_REQUEST_TIMEOUT_API') as number,\n\tINCOMING_REQUEST_TIMEOUT_COPY_API: Configuration.get('INCOMING_REQUEST_TIMEOUT_COPY_API') as number,\n\tNEST_LOG_LEVEL: Configuration.get('NEST_LOG_LEVEL') as string,\n\tAVAILABLE_LANGUAGES: (Configuration.get('I18N__AVAILABLE_LANGUAGES') as string).split(','),\n\tNODE_ENV: Configuration.get('NODE_ENV') as NodeEnvType,\n\tLOGIN_BLOCK_TIME: Configuration.get('LOGIN_BLOCK_TIME') as number,\n\tTEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE: Configuration.get(\n\t\t'TEACHER_STUDENT_VISIBILITY__IS_CONFIGURABLE'\n\t) as boolean,\n\tFEATURE_IMSCC_COURSE_EXPORT_ENABLED: Configuration.get('FEATURE_IMSCC_COURSE_EXPORT_ENABLED') as boolean,\n\tFEATURE_IDENTITY_MANAGEMENT_ENABLED: Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean,\n\tFEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED: Configuration.get('FEATURE_IDENTITY_MANAGEMENT_STORE_ENABLED') as boolean,\n\tFEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED: Configuration.get('FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED') as boolean,\n};\n\nexport const serverConfig = () => config;\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IShareTokenProperties.html":{"url":"interfaces/IShareTokenProperties.html","title":"interface - IShareTokenProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IShareTokenProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/entity/share-token.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n contextId\n \n \n \n Optional\n \n contextType\n \n \n \n Optional\n \n expiresAt\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n token\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextId\n \n \n \n \n \n \n \n \n contextId: EntityId | ObjectId\n\n \n \n\n\n \n \n Type : EntityId | ObjectId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n contextType\n \n \n \n \n \n \n \n \n contextType: ShareTokenContextType\n\n \n \n\n\n \n \n Type : ShareTokenContextType\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n expiresAt\n \n \n \n \n \n \n \n \n expiresAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n \n \n parentId: EntityId | ObjectId\n\n \n \n\n\n \n \n Type : EntityId | ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: ShareTokenParentType\n\n \n \n\n\n \n \n Type : ShareTokenParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n \n \n token: ShareTokenString\n\n \n \n\n\n \n \n Type : ShareTokenString\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain/types/entity-id';\nimport { ShareTokenContextType, ShareTokenParentType, ShareTokenString } from '../domainobject/share-token.do';\n\nexport interface IShareTokenProperties {\n\ttoken: ShareTokenString;\n\tparentType: ShareTokenParentType;\n\tparentId: EntityId | ObjectId;\n\tcontextType?: ShareTokenContextType;\n\tcontextId?: EntityId | ObjectId;\n\texpiresAt?: Date;\n}\n\n@Entity({ tableName: 'sharetokens' })\nexport class ShareToken extends BaseEntityWithTimestamps {\n\t@Property()\n\ttoken: ShareTokenString;\n\n\t@Enum()\n\tparentType: ShareTokenParentType;\n\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Enum({ nullable: true })\n\tcontextType?: ShareTokenContextType;\n\n\t@Property({ fieldName: 'context', nullable: true })\n\t_contextId?: ObjectId;\n\n\tget contextId(): EntityId | undefined {\n\t\treturn this._contextId?.toHexString();\n\t}\n\n\t@Index({ options: { expireAfterSeconds: 0 } })\n\t@Property({ nullable: true })\n\texpiresAt?: Date;\n\n\tconstructor(props: IShareTokenProperties) {\n\t\tsuper();\n\t\tthis.token = props.token;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis.contextType = props.contextType;\n\t\tif (props.contextId !== undefined) {\n\t\t\tthis._contextId = new ObjectId(props.contextId);\n\t\t}\n\t\tthis.expiresAt = props.expiresAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IStorageProviderProperties.html":{"url":"interfaces/IStorageProviderProperties.html","title":"interface - IStorageProviderProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IStorageProviderProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/storageprovider.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessKeyId\n \n \n \n \n endpointUrl\n \n \n \n Optional\n \n region\n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accessKeyId\n \n \n \n \n \n \n \n \n accessKeyId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n endpointUrl\n \n \n \n \n \n \n \n \n endpointUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n region\n \n \n \n \n \n \n \n \n region: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n secretAccessKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { StorageProviderEncryptedStringType } from '@shared/repo/types/StorageProviderEncryptedString.type';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IStorageProviderProperties {\n\tendpointUrl: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n\tregion?: string;\n}\n\n@Entity({ tableName: 'storageproviders' })\nexport class StorageProviderEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tendpointUrl: string;\n\n\t@Property()\n\taccessKeyId: string;\n\n\t@Property({ fieldName: 'secretAccessKey', type: StorageProviderEncryptedStringType })\n\tsecretAccessKey: string;\n\n\t@Property({ nullable: true })\n\tregion?: string;\n\n\tconstructor(props: IStorageProviderProperties) {\n\t\tsuper();\n\t\tthis.endpointUrl = props.endpointUrl;\n\t\tthis.accessKeyId = props.accessKeyId;\n\t\tthis.secretAccessKey = props.secretAccessKey;\n\t\tthis.region = props.region;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISubmissionProperties.html":{"url":"interfaces/ISubmissionProperties.html","title":"interface - ISubmissionProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISubmissionProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/submission.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n comment\n \n \n \n Optional\n \n courseGroup\n \n \n \n Optional\n \n grade\n \n \n \n Optional\n \n gradeComment\n \n \n \n Optional\n \n graded\n \n \n \n \n school\n \n \n \n \n student\n \n \n \n Optional\n \n submitted\n \n \n \n \n task\n \n \n \n Optional\n \n teamMembers\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n comment\n \n \n \n \n \n \n \n \n comment: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n courseGroup\n \n \n \n \n \n \n \n \n courseGroup: CourseGroup\n\n \n \n\n\n \n \n Type : CourseGroup\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n grade\n \n \n \n \n \n \n \n \n grade: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n gradeComment\n \n \n \n \n \n \n \n \n gradeComment: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \n \n \n graded: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n student\n \n \n \n \n \n \n \n \n student: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n \n \n submitted: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n task\n \n \n \n \n \n \n \n \n task: Task\n\n \n \n\n\n \n \n Type : Task\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n teamMembers\n \n \n \n \n \n \n \n \n teamMembers: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property, Unique } from '@mikro-orm/core';\n\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { CourseGroup } from './coursegroup.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { Task } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ISubmissionProperties {\n\tschool: SchoolEntity;\n\ttask: Task;\n\tstudent: User;\n\tcourseGroup?: CourseGroup;\n\tteamMembers?: User[];\n\tcomment: string;\n\tsubmitted?: boolean;\n\tgraded?: boolean;\n\tgrade?: number;\n\tgradeComment?: string;\n}\n\n@Entity({ tableName: 'submissions' })\n@Index({ properties: ['student', 'teamMembers'] })\n@Unique({ properties: ['student', 'task'] })\nexport class Submission extends BaseEntityWithTimestamps {\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\t@Index()\n\tschool: SchoolEntity;\n\n\t@ManyToOne('Task', { fieldName: 'homeworkId' })\n\t@Index()\n\ttask: Task;\n\n\t@ManyToOne('User', { fieldName: 'studentId' })\n\tstudent: User;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@ManyToMany('User', undefined, { fieldName: 'teamMembers' })\n\tteamMembers = new Collection(this);\n\n\t@Property({ nullable: true })\n\tcomment?: string;\n\n\t@Property()\n\tsubmitted: boolean;\n\n\t@Property()\n\tgraded: boolean;\n\n\t@Property({ nullable: true })\n\tgrade?: number;\n\n\t@Property({ nullable: true })\n\tgradeComment?: string;\n\n\tconstructor(props: ISubmissionProperties) {\n\t\tsuper();\n\t\tthis.school = props.school;\n\t\tthis.student = props.student;\n\t\tthis.comment = props.comment;\n\t\tthis.task = props.task;\n\t\tthis.submitted = props.submitted || false;\n\t\tthis.graded = props.graded || false;\n\t\tthis.grade = props.grade;\n\t\tthis.gradeComment = props.gradeComment;\n\t\tthis.courseGroup = props.courseGroup;\n\n\t\tif (props.teamMembers !== undefined) {\n\t\t\tthis.teamMembers.set(props.teamMembers);\n\t\t}\n\t}\n\n\tprivate getCourseGroupStudentIds(): EntityId[] {\n\t\tlet courseGroupMemberIds: EntityId[] = [];\n\n\t\tif (this.courseGroup) {\n\t\t\tcourseGroupMemberIds = this.courseGroup.getStudentIds();\n\t\t}\n\n\t\treturn courseGroupMemberIds;\n\t}\n\n\tprivate getTeamMemberIds(): EntityId[] {\n\t\tif (!this.teamMembers) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'Submission.teamMembers is undefined. The submission need to be populated.'\n\t\t\t);\n\t\t}\n\n\t\tconst teamMemberObjectIds = this.teamMembers.getIdentifiers('_id');\n\t\tconst teamMemberIds = teamMemberObjectIds.map((id): string => id.toString());\n\n\t\treturn teamMemberIds;\n\t}\n\n\tpublic isSubmitted(): boolean {\n\t\treturn this.submitted;\n\t}\n\n\tpublic isSubmittedForUser(user: User): boolean {\n\t\tconst isMember = this.isUserSubmitter(user);\n\t\tconst isSubmitted = this.isSubmitted();\n\t\tconst isSubmittedForUser = isMember && isSubmitted;\n\n\t\treturn isSubmittedForUser;\n\t}\n\n\t// Bad that the logic is needed to expose the userIds, but is used in task for now.\n\t// Check later if it can be replaced and remove all related code.\n\tpublic getSubmitterIds(): EntityId[] {\n\t\tconst creatorId = this.student.id;\n\t\tconst teamMemberIds = this.getTeamMemberIds();\n\t\tconst courseGroupMemberIds = this.getCourseGroupStudentIds();\n\t\tconst memberIds = [creatorId, ...teamMemberIds, ...courseGroupMemberIds];\n\n\t\tconst uniqueMemberIds = [...new Set(memberIds)];\n\n\t\treturn uniqueMemberIds;\n\t}\n\n\tpublic isUserSubmitter(user: User): boolean {\n\t\tconst memberIds = this.getSubmitterIds();\n\t\tconst isMember = memberIds.some((id) => id === user.id);\n\n\t\treturn isMember;\n\t}\n\n\tpublic isGraded(): boolean {\n\t\treturn this.graded;\n\t}\n\n\tpublic isGradedForUser(user: User): boolean {\n\t\tconst isMember = this.isUserSubmitter(user);\n\t\tconst isGraded = this.isGraded();\n\t\tconst isGradedForUser = isMember && isGraded;\n\n\t\treturn isGradedForUser;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ISystemProperties.html":{"url":"interfaces/ISystemProperties.html","title":"interface - ISystemProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ISystemProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n alias\n \n \n \n Optional\n \n displayName\n \n \n \n Optional\n \n ldapConfig\n \n \n \n Optional\n \n oauthConfig\n \n \n \n Optional\n \n oidcConfig\n \n \n \n Optional\n \n provisioningStrategy\n \n \n \n Optional\n \n provisioningUrl\n \n \n \n \n type\n \n \n \n Optional\n \n url\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n alias\n \n \n \n \n \n \n \n \n alias: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n \n \n displayName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ldapConfig\n \n \n \n \n \n \n \n \n ldapConfig: LdapConfig\n\n \n \n\n\n \n \n Type : LdapConfig\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n oauthConfig\n \n \n \n \n \n \n \n \n oauthConfig: OauthConfig\n\n \n \n\n\n \n \n Type : OauthConfig\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n oidcConfig\n \n \n \n \n \n \n \n \n oidcConfig: OidcConfig\n\n \n \n\n\n \n \n Type : OidcConfig\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n provisioningStrategy\n \n \n \n \n \n \n \n \n provisioningStrategy: SystemProvisioningStrategy\n\n \n \n\n\n \n \n Type : SystemProvisioningStrategy\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n provisioningUrl\n \n \n \n \n \n \n \n \n provisioningUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n \n \n type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n \n \n url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITargetGroupProperties.html":{"url":"interfaces/ITargetGroupProperties.html","title":"interface - ITargetGroupProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITargetGroupProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/materials.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n grade\n \n \n \n Optional\n \n schoolType\n \n \n \n Optional\n \n state\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n grade\n \n \n \n \n \n \n \n \n grade: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n schoolType\n \n \n \n \n \n \n \n \n schoolType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n \n \n state: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ITargetGroupProperties {\n\tstate?: string;\n\tschoolType?: string;\n\tgrade?: string;\n}\n\nexport interface IRelatedResourceProperties {\n\toriginId?: string;\n\trelationType?: string;\n}\n\nexport interface IMaterialProperties {\n\tclient: string;\n\tdescription?: string;\n\tlicense: string[];\n\tmerlinReference?: string;\n\trelatedResources: IRelatedResourceProperties[];\n\tsubjects: string[];\n\ttags: string[];\n\ttargetGroups: ITargetGroupProperties[];\n\ttitle: string;\n\turl: string;\n}\n\n@Entity({ collection: 'materials' })\nexport class Material extends BaseEntityWithTimestamps {\n\t@Property()\n\tclient: string;\n\n\t@Property()\n\tdescription?: string;\n\n\t@Property()\n\tlicense: string[];\n\n\t@Property()\n\tmerlinReference?: string;\n\n\t@Property()\n\trelatedResources: IRelatedResourceProperties[] | [];\n\n\t@Property()\n\tsubjects: string[] | [];\n\n\t@Property()\n\ttags: string[] | [];\n\n\t@Property()\n\ttargetGroups: ITargetGroupProperties[] | [];\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\turl: string;\n\n\tconstructor(props: IMaterialProperties) {\n\t\tsuper();\n\t\tthis.client = props.client;\n\t\tthis.description = props.description || '';\n\t\tthis.license = props.license;\n\t\tthis.merlinReference = props.merlinReference || '';\n\t\tthis.relatedResources = props.relatedResources;\n\t\tthis.subjects = props.subjects;\n\t\tthis.tags = props.tags;\n\t\tthis.targetGroups = props.targetGroups;\n\t\tthis.title = props.title;\n\t\tthis.url = props.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITask.html":{"url":"interfaces/ITask.html","title":"interface - ITask","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITask\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n availableDate\n \n \n \n Optional\n \n description\n \n \n \n Optional\n \n descriptionInputFormat\n \n \n \n Optional\n \n dueDate\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n availableDate\n \n \n \n \n \n \n \n \n availableDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n \n \n description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n descriptionInputFormat\n \n \n \n \n \n \n \n \n descriptionInputFormat: InputFormat\n\n \n \n\n\n \n \n Type : InputFormat\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n dueDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskCreate.html":{"url":"interfaces/ITaskCreate.html","title":"interface - ITaskCreate","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskCreate\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n \n Extends\n \n \n ITask\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n courseId\n \n \n \n Optional\n \n lessonId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n courseId\n \n \n \n \n \n \n \n \n courseId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lessonId\n \n \n \n \n \n \n \n \n lessonId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskParent.html":{"url":"interfaces/ITaskParent.html","title":"interface - ITaskParent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskParent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/task.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getStudentIds\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getStudentIds\n \n \n \n \n \n \ngetStudentIds()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:35\n \n \n\n\n \n \n\n \n Returns : EntityId[]\n\n \n \n \n \n \n\n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { InputFormat } from '@shared/domain/types/input-format.types';\nimport type { IEntityWithSchool } from '../interface';\nimport type { ILearnroomElement } from '../interface/learnroom';\nimport type { EntityId } from '../types/entity-id';\nimport type { ITaskProperties, ITaskStatus } from '../types/task.types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { LessonEntity } from './lesson.entity';\nimport type { Submission } from './submission.entity';\nimport { User } from './user.entity';\n\nexport class TaskWithStatusVo {\n\ttask!: Task;\n\n\tstatus!: ITaskStatus;\n\n\tconstructor(task: Task, status: ITaskStatus) {\n\t\tthis.task = task;\n\t\tthis.status = status;\n\t}\n}\n\nexport type TaskParentDescriptions = {\n\tcourseName: string;\n\tcourseId: string;\n\tlessonName: string;\n\tlessonHidden: boolean;\n\tcolor: string;\n};\n\nexport interface ITaskParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'homeworks' })\n@Index({ properties: ['private', 'dueDate', 'finished'] })\n@Index({ properties: ['id', 'private'] })\n@Index({ properties: ['finished', 'course'] })\n@Index({ properties: ['finished', 'course'] })\nexport class Task extends BaseEntityWithTimestamps implements ILearnroomElement, IEntityWithSchool {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tdescription: string;\n\n\t@Property()\n\tdescriptionInputFormat: InputFormat;\n\n\t@Property({ nullable: true })\n\tavailableDate?: Date;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdueDate?: Date;\n\n\t@Property()\n\tprivate = true;\n\n\t@Property({ nullable: true })\n\tpublicSubmissions?: boolean;\n\n\t@Property({ nullable: true })\n\tteamSubmissions?: boolean;\n\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'teacherId' })\n\tcreator: User;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId', nullable: true })\n\tcourse?: Course;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToOne('LessonEntity', { fieldName: 'lessonId', nullable: true })\n\tlesson?: LessonEntity; // In database exist also null, but it can not set.\n\n\t@OneToMany('Submission', 'task')\n\tsubmissions = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'archived' })\n\tfinished = new Collection(this);\n\n\tconstructor(props: ITaskProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.description = props.description || '';\n\t\tthis.descriptionInputFormat = props.descriptionInputFormat || InputFormat.RICH_TEXT_CK4;\n\t\tthis.availableDate = props.availableDate;\n\t\tthis.dueDate = props.dueDate;\n\n\t\tif (props.private !== undefined) this.private = props.private;\n\t\tthis.creator = props.creator;\n\t\tthis.course = props.course;\n\t\tthis.school = props.school;\n\t\tthis.lesson = props.lesson;\n\t\tthis.submissions.set(props.submissions || []);\n\t\tthis.finished.set(props.finished || []);\n\t\tthis.publicSubmissions = props.publicSubmissions || false;\n\t\tthis.teamSubmissions = props.teamSubmissions || false;\n\t}\n\n\tprivate getSubmissionItems(): Submission[] {\n\t\tif (!this.submissions || !this.submissions.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Submissions items are not loaded.');\n\t\t}\n\t\tconst submissions = this.submissions.getItems();\n\n\t\treturn submissions;\n\t}\n\n\tprivate getFinishedUserIds(): EntityId[] {\n\t\tif (!this.finished) {\n\t\t\tthrow new InternalServerErrorException('Task.finished is undefined. The task need to be populated.');\n\t\t}\n\n\t\tconst finishedObjectIds = this.finished.getIdentifiers('_id');\n\t\tconst finishedIds = finishedObjectIds.map((id): string => id.toString());\n\n\t\treturn finishedIds;\n\t}\n\n\tprivate getParent(): ITaskParent | User {\n\t\tconst parent = this.lesson || this.course || this.creator;\n\n\t\treturn parent;\n\t}\n\n\tprivate getMaxSubmissions(): number {\n\t\tconst parent = this.getParent();\n\t\t// For draft (user as parent) propaly user is not a student, but for maxSubmission one is valid result\n\t\tconst maxSubmissions = parent instanceof User ? 1 : parent.getStudentIds().length;\n\n\t\treturn maxSubmissions;\n\t}\n\n\tprivate isFinishedForUser(user: User): boolean {\n\t\tconst finishedUserIds = this.getFinishedUserIds();\n\t\tconst isUserInFinishedUser = finishedUserIds.some((finishedUserId) => finishedUserId === user.id);\n\n\t\tconst isCourseFinished = this.course ? this.course.isFinished() : false;\n\n\t\tconst isFinishedForUser = isUserInFinishedUser || isCourseFinished;\n\n\t\treturn isFinishedForUser;\n\t}\n\n\tpublic isDraft(): boolean {\n\t\t// private can be undefined in the database\n\t\treturn !!this.private;\n\t}\n\n\tpublic isPublished(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic isPlanned(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate getSubmittedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst submittedSubmissions = submissions.filter((submission) => submission.isSubmitted());\n\n\t\treturn submittedSubmissions;\n\t}\n\n\tpublic areSubmissionsPublic(): boolean {\n\t\tconst areSubmissionsPublic = !!this.publicSubmissions;\n\n\t\treturn areSubmissionsPublic;\n\t}\n\n\tprivate getGradedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst gradedSubmissions = submissions.filter((submission) => submission.isGraded());\n\n\t\treturn gradedSubmissions;\n\t}\n\n\tprivate isSubmittedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isSubmitted = submissions.some((submission) => submission.isSubmittedForUser(user));\n\n\t\treturn isSubmitted;\n\t}\n\n\tprivate isGradedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isGraded = submissions.some((submission) => submission.isGradedForUser(user));\n\n\t\treturn isGraded;\n\t}\n\n\tprivate calculateNumberOfSubmitters(submissions: Submission[]): number {\n\t\tlet taskSubmitterIds: EntityId[] = [];\n\n\t\tsubmissions.forEach((submission) => {\n\t\t\tconst submitterIds = submission.getSubmitterIds();\n\t\t\ttaskSubmitterIds = [...taskSubmitterIds, ...submitterIds];\n\t\t});\n\n\t\tconst uniqueIds = [...new Set(taskSubmitterIds)];\n\t\tconst numberOfSubmitters = uniqueIds.length;\n\n\t\treturn numberOfSubmitters;\n\t}\n\n\tprivate isUserSubstitutionTeacherInCourse(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.course ? this.course.isUserSubstitutionTeacher(user) : false;\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic createTeacherStatusForUser(user: User): ITaskStatus {\n\t\tconst submittedSubmissions = this.getSubmittedSubmissions();\n\t\tconst gradedSubmissions = this.getGradedSubmissions();\n\n\t\tconst numberOfSubmitters = this.calculateNumberOfSubmitters(submittedSubmissions);\n\t\tconst numberOfSubmittersWithGrade = this.calculateNumberOfSubmitters(gradedSubmissions);\n\t\tconst maxSubmissions = this.getMaxSubmissions();\n\t\tconst isDraft = this.isDraft();\n\t\tconst isFinished = this.isFinishedForUser(user);\n\t\tconst isSubstitutionTeacher = this.isUserSubstitutionTeacherInCourse(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: numberOfSubmitters,\n\t\t\tgraded: numberOfSubmittersWithGrade,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\tpublic createStudentStatusForUser(user: User): ITaskStatus {\n\t\tconst isSubmitted = this.isSubmittedForUser(user);\n\t\tconst isGraded = this.isGradedForUser(user);\n\t\tconst maxSubmissions = 1;\n\t\tconst isDraft = this.isDraft();\n\t\tconst isSubstitutionTeacher = false;\n\t\tconst isFinished = this.isFinishedForUser(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: isSubmitted ? 1 : 0,\n\t\t\tgraded: isGraded ? 1 : 0,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\t// TODO: based on the parent relationship\n\tpublic getParentData(): TaskParentDescriptions {\n\t\tlet descriptions: TaskParentDescriptions;\n\t\tif (this.course) {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: this.course.name,\n\t\t\t\tcourseId: this.course.id,\n\t\t\t\tlessonName: this.lesson ? this.lesson.name : '',\n\t\t\t\tlessonHidden: this.lesson ? this.lesson.hidden : false,\n\t\t\t\tcolor: this.course.color,\n\t\t\t};\n\t\t} else {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: '',\n\t\t\t\tcourseId: '',\n\t\t\t\tlessonName: '',\n\t\t\t\tlessonHidden: false,\n\t\t\t\tcolor: '#ACACAC',\n\t\t\t};\n\t\t}\n\n\t\treturn descriptions;\n\t}\n\n\tpublic finishForUser(user: User): void {\n\t\tthis.finished.add(user);\n\t}\n\n\tpublic restoreForUser(user: User): void {\n\t\tthis.finished.remove(user);\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.school.id;\n\t}\n\n\tpublic publish(): void {\n\t\tthis.private = false;\n\t\tthis.availableDate = new Date();\n\t}\n\n\tpublic unpublish(): void {\n\t\tthis.private = true;\n\t}\n}\n\nexport function isTask(reference: unknown): reference is Task {\n\treturn reference instanceof Task;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskProperties.html":{"url":"interfaces/ITaskProperties.html","title":"interface - ITaskProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n \n Extends\n \n \n ITask\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n course\n \n \n \n \n creator\n \n \n \n Optional\n \n finished\n \n \n \n Optional\n \n lesson\n \n \n \n Optional\n \n private\n \n \n \n Optional\n \n publicSubmissions\n \n \n \n \n school\n \n \n \n Optional\n \n submissions\n \n \n \n Optional\n \n teamSubmissions\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n course\n \n \n \n \n \n \n \n \n course: Course\n\n \n \n\n\n \n \n Type : Course\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n \n \n creator: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n finished\n \n \n \n \n \n \n \n \n finished: User[]\n\n \n \n\n\n \n \n Type : User[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lesson\n \n \n \n \n \n \n \n \n lesson: LessonEntity\n\n \n \n\n\n \n \n Type : LessonEntity\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n private\n \n \n \n \n \n \n \n \n private: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n publicSubmissions\n \n \n \n \n \n \n \n \n publicSubmissions: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n submissions\n \n \n \n \n \n \n \n \n submissions: Submission[]\n\n \n \n\n\n \n \n Type : Submission[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n teamSubmissions\n \n \n \n \n \n \n \n \n teamSubmissions: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskStatus.html":{"url":"interfaces/ITaskStatus.html","title":"interface - ITaskStatus","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskStatus\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n graded\n \n \n \n \n isDraft\n \n \n \n \n isFinished\n \n \n \n \n isSubstitutionTeacher\n \n \n \n \n maxSubmissions\n \n \n \n \n submitted\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n graded\n \n \n \n \n \n \n \n \n graded: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isDraft\n \n \n \n \n \n \n \n \n isDraft: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isFinished\n \n \n \n \n \n \n \n \n isFinished: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isSubstitutionTeacher\n \n \n \n \n \n \n \n \n isSubstitutionTeacher: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n maxSubmissions\n \n \n \n \n \n \n \n \n maxSubmissions: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n \n \n submitted: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITaskUpdate.html":{"url":"interfaces/ITaskUpdate.html","title":"interface - ITaskUpdate","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITaskUpdate\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/task.types.ts\n \n\n\n\n \n Extends\n \n \n ITask\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n courseId\n \n \n \n Optional\n \n lessonId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n courseId\n \n \n \n \n \n \n \n \n courseId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lessonId\n \n \n \n \n \n \n \n \n lessonId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import type { Course, InputFormat, LessonEntity, SchoolEntity, Submission, User } from '@shared/domain/';\n\ninterface ITask {\n\tname: string;\n\tdescription?: string;\n\tdescriptionInputFormat?: InputFormat;\n\tavailableDate?: Date;\n\tdueDate?: Date;\n}\n\nexport interface ITaskUpdate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskCreate extends ITask {\n\tcourseId?: string;\n\tlessonId?: string;\n}\n\nexport interface ITaskProperties extends ITask {\n\tcourse?: Course;\n\tlesson?: LessonEntity;\n\tcreator: User;\n\tschool: SchoolEntity;\n\tfinished?: User[];\n\tprivate?: boolean;\n\tsubmissions?: Submission[];\n\tpublicSubmissions?: boolean;\n\tteamSubmissions?: boolean;\n}\n\nexport interface ITaskStatus {\n\tsubmitted: number;\n\tmaxSubmissions: number;\n\tgraded: number;\n\tisDraft: boolean;\n\tisSubstitutionTeacher: boolean;\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITeamProperties.html":{"url":"interfaces/ITeamProperties.html","title":"interface - ITeamProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITeamProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/team.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n Optional\n \n teamUsers\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n teamUsers\n \n \n \n \n \n \n \n \n teamUsers: TeamUserEntity[]\n\n \n \n\n\n \n \n Type : TeamUserEntity[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\nimport { User } from './user.entity';\n\nexport interface ITeamProperties {\n\tname: string;\n\tteamUsers?: TeamUserEntity[];\n}\n\nexport interface ITeamUserProperties {\n\tuser: User;\n\trole: Role;\n\tschool: SchoolEntity;\n}\n\n@Embeddable()\nexport class TeamUserEntity {\n\tconstructor(props: ITeamUserProperties) {\n\t\tthis.userId = props.user;\n\t\tthis.role = props.role;\n\t\tthis.schoolId = props.school;\n\t}\n\n\t@ManyToOne(() => User)\n\tuserId: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\t@ManyToOne(() => SchoolEntity)\n\tprivate schoolId: SchoolEntity;\n\n\t// fieldName cannot be used in ManyToOne on Embeddable due to a mikro-orm bug (https://github.com/mikro-orm/mikro-orm/issues/2165)\n\tget user(): User {\n\t\treturn this.userId;\n\t}\n\n\tset user(value: User) {\n\t\tthis.userId = value;\n\t}\n\n\tget school(): SchoolEntity {\n\t\treturn this.schoolId;\n\t}\n\n\tset school(value: SchoolEntity) {\n\t\tthis.schoolId = value;\n\t}\n}\n\n@Entity({ tableName: 'teams' })\nexport class TeamEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Embedded(() => TeamUserEntity, { array: true })\n\tuserIds: TeamUserEntity[];\n\n\tget teamUsers(): TeamUserEntity[] {\n\t\treturn this.userIds;\n\t}\n\n\tset teamUsers(value: TeamUserEntity[]) {\n\t\tthis.userIds = value;\n\t}\n\n\tconstructor(props: ITeamProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.userIds = props.teamUsers ? props.teamUsers.map((teamUser) => new TeamUserEntity(teamUser)) : [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ITeamUserProperties.html":{"url":"interfaces/ITeamUserProperties.html","title":"interface - ITeamUserProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ITeamUserProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/team.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n \n school\n \n \n \n \n user\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n role\n \n \n \n \n \n \n \n \n role: Role\n\n \n \n\n\n \n \n Type : Role\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n user\n \n \n \n \n \n \n \n \n user: User\n\n \n \n\n\n \n \n Type : User\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Embeddable, Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\nimport { User } from './user.entity';\n\nexport interface ITeamProperties {\n\tname: string;\n\tteamUsers?: TeamUserEntity[];\n}\n\nexport interface ITeamUserProperties {\n\tuser: User;\n\trole: Role;\n\tschool: SchoolEntity;\n}\n\n@Embeddable()\nexport class TeamUserEntity {\n\tconstructor(props: ITeamUserProperties) {\n\t\tthis.userId = props.user;\n\t\tthis.role = props.role;\n\t\tthis.schoolId = props.school;\n\t}\n\n\t@ManyToOne(() => User)\n\tuserId: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\t@ManyToOne(() => SchoolEntity)\n\tprivate schoolId: SchoolEntity;\n\n\t// fieldName cannot be used in ManyToOne on Embeddable due to a mikro-orm bug (https://github.com/mikro-orm/mikro-orm/issues/2165)\n\tget user(): User {\n\t\treturn this.userId;\n\t}\n\n\tset user(value: User) {\n\t\tthis.userId = value;\n\t}\n\n\tget school(): SchoolEntity {\n\t\treturn this.schoolId;\n\t}\n\n\tset school(value: SchoolEntity) {\n\t\tthis.schoolId = value;\n\t}\n}\n\n@Entity({ tableName: 'teams' })\nexport class TeamEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Embedded(() => TeamUserEntity, { array: true })\n\tuserIds: TeamUserEntity[];\n\n\tget teamUsers(): TeamUserEntity[] {\n\t\treturn this.userIds;\n\t}\n\n\tset teamUsers(value: TeamUserEntity[]) {\n\t\tthis.userIds = value;\n\t}\n\n\tconstructor(props: ITeamProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.userIds = props.teamUsers ? props.teamUsers.map((teamUser) => new TeamUserEntity(teamUser)) : [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IToolFeatures.html":{"url":"interfaces/IToolFeatures.html","title":"interface - IToolFeatures","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IToolFeatures\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n backEndUrl\n \n \n \n \n contextConfigurationEnabled\n \n \n \n \n ctlToolsTabEnabled\n \n \n \n \n ltiToolsTabEnabled\n \n \n \n \n maxExternalToolLogoSizeInBytes\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n backEndUrl\n \n \n \n \n \n \n \n \n backEndUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n contextConfigurationEnabled\n \n \n \n \n \n \n \n \n contextConfigurationEnabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ctlToolsTabEnabled\n \n \n \n \n \n \n \n \n ctlToolsTabEnabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ltiToolsTabEnabled\n \n \n \n \n \n \n \n \n ltiToolsTabEnabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n maxExternalToolLogoSizeInBytes\n \n \n \n \n \n \n \n \n maxExternalToolLogoSizeInBytes: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\n\nexport const ToolFeatures = Symbol('ToolFeatures');\n\nexport interface IToolFeatures {\n\tctlToolsTabEnabled: boolean;\n\tltiToolsTabEnabled: boolean;\n\tcontextConfigurationEnabled: boolean;\n\tmaxExternalToolLogoSizeInBytes: number;\n\tbackEndUrl: string;\n}\n\nexport default class ToolConfiguration {\n\tstatic toolFeatures: IToolFeatures = {\n\t\tctlToolsTabEnabled: Configuration.get('FEATURE_CTL_TOOLS_TAB_ENABLED') as boolean,\n\t\tltiToolsTabEnabled: Configuration.get('FEATURE_LTI_TOOLS_TAB_ENABLED') as boolean,\n\t\tcontextConfigurationEnabled: Configuration.get('FEATURE_CTL_CONTEXT_CONFIGURATION_ENABLED') as boolean,\n\t\tmaxExternalToolLogoSizeInBytes: Configuration.get('CTL_TOOLS__EXTERNAL_TOOL_MAX_LOGO_SIZE_IN_BYTES') as number,\n\t\tbackEndUrl: Configuration.get('PUBLIC_BACKEND_URL') as string,\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IToolLaunchParams.html":{"url":"interfaces/IToolLaunchParams.html","title":"interface - IToolLaunchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IToolLaunchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/tool-launch-params.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextExternalTool\n \n \n \n \n externalTool\n \n \n \n \n schoolExternalTool\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contextExternalTool\n \n \n \n \n \n \n \n \n contextExternalTool: ContextExternalTool\n\n \n \n\n\n \n \n Type : ContextExternalTool\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n externalTool\n \n \n \n \n \n \n \n \n externalTool: ExternalTool\n\n \n \n\n\n \n \n Type : ExternalTool\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolExternalTool\n \n \n \n \n \n \n \n \n schoolExternalTool: SchoolExternalTool\n\n \n \n\n\n \n \n Type : SchoolExternalTool\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ExternalTool } from '../../../external-tool/domain';\nimport { SchoolExternalTool } from '../../../school-external-tool/domain';\nimport { ContextExternalTool } from '../../../context-external-tool/domain';\n\nexport interface IToolLaunchParams {\n\texternalTool: ExternalTool;\n\n\tschoolExternalTool: SchoolExternalTool;\n\n\tcontextExternalTool: ContextExternalTool;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IToolLaunchStrategy.html":{"url":"interfaces/IToolLaunchStrategy.html","title":"interface - IToolLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IToolLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/tool-launch-strategy.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n createLaunchData\n \n \n \n \n createLaunchRequest\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n createLaunchData\n \n \n \n \n \n \ncreateLaunchData(userId: EntityId, params: IToolLaunchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/tool-launch-strategy.interface.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n params\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createLaunchRequest\n \n \n \n \n \n \ncreateLaunchRequest(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/tool-launch-strategy.interface.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ToolLaunchData, ToolLaunchRequest } from '../../types';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\n\nexport interface IToolLaunchStrategy {\n\tcreateLaunchData(userId: EntityId, params: IToolLaunchParams): Promise;\n\n\tcreateLaunchRequest(toolLaunchDataDO: ToolLaunchData): ToolLaunchRequest;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IUserConfig.html":{"url":"interfaces/IUserConfig.html","title":"interface - IUserConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IUserConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/interfaces/user-config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n AVAILABLE_LANGUAGES\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n AVAILABLE_LANGUAGES\n \n \n \n \n \n \n \n \n AVAILABLE_LANGUAGES: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IUserConfig {\n\tAVAILABLE_LANGUAGES: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IUserProperties.html":{"url":"interfaces/IUserProperties.html","title":"interface - IUserProperties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IUserProperties\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n deletedAt\n \n \n \n \n email\n \n \n \n Optional\n \n externalId\n \n \n \n \n firstName\n \n \n \n Optional\n \n forcePasswordChange\n \n \n \n Optional\n \n language\n \n \n \n Optional\n \n lastLoginSystemChange\n \n \n \n \n lastName\n \n \n \n Optional\n \n ldapDn\n \n \n \n Optional\n \n outdatedSince\n \n \n \n Optional\n \n preferences\n \n \n \n Optional\n \n previousExternalId\n \n \n \n \n roles\n \n \n \n \n school\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n deletedAt\n \n \n \n \n \n \n \n \n deletedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n \n \n email: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n \n \n externalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n \n \n firstName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n forcePasswordChange\n \n \n \n \n \n \n \n \n forcePasswordChange: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n language\n \n \n \n \n \n \n \n \n language: LanguageType\n\n \n \n\n\n \n \n Type : LanguageType\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lastLoginSystemChange\n \n \n \n \n \n \n \n \n lastLoginSystemChange: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n \n \n lastName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n ldapDn\n \n \n \n \n \n \n \n \n ldapDn: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n outdatedSince\n \n \n \n \n \n \n \n \n outdatedSince: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n preferences\n \n \n \n \n \n \n \n \n preferences: Record\n\n \n \n\n\n \n \n Type : Record\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n previousExternalId\n \n \n \n \n \n \n \n \n previousExternalId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: Role[]\n\n \n \n\n\n \n \n Type : Role[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n \n \n school: SchoolEntity\n\n \n \n\n\n \n \n Type : SchoolEntity\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property } from '@mikro-orm/core';\nimport { IEntityWithSchool } from '../interface';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\n\nexport enum LanguageType {\n\tDE = 'de',\n\tEN = 'en',\n\tES = 'es',\n\tUK = 'uk',\n}\n\nexport interface IUserProperties {\n\temail: string;\n\tfirstName: string;\n\tlastName: string;\n\tschool: SchoolEntity;\n\troles: Role[];\n\tldapDn?: string;\n\texternalId?: string;\n\tlanguage?: LanguageType;\n\tforcePasswordChange?: boolean;\n\tpreferences?: Record;\n\tdeletedAt?: Date;\n\tlastLoginSystemChange?: Date;\n\toutdatedSince?: Date;\n\tpreviousExternalId?: string;\n}\n\n@Entity({ tableName: 'users' })\n@Index({ properties: ['id', 'email'] })\n@Index({ properties: ['firstName', 'lastName'] })\n@Index({ properties: ['externalId', 'school'] })\n@Index({ properties: ['school', 'ldapDn'] })\n@Index({ properties: ['school', 'roles'] })\nexport class User extends BaseEntityWithTimestamps implements IEntityWithSchool {\n\t@Property()\n\t@Index()\n\t// @Unique()\n\temail: string;\n\n\t@Property()\n\tfirstName: string;\n\n\t@Property()\n\tlastName: string;\n\n\t@Index()\n\t@ManyToMany({ fieldName: 'roles', entity: () => Role })\n\troles = new Collection(this);\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tldapDn?: string;\n\n\t@Property({ nullable: true, fieldName: 'ldapId' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property({ nullable: true })\n\t@Index()\n\timportHash?: string;\n\n\t@Property({ nullable: true })\n\tfirstNameSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\tlastNameSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\temailSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\tlanguage?: LanguageType;\n\n\t@Property({ nullable: true })\n\tforcePasswordChange?: boolean;\n\n\t@Property({ nullable: true })\n\tpreferences?: Record;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdeletedAt?: Date;\n\n\t@Property({ nullable: true })\n\tlastLoginSystemChange?: Date;\n\n\t@Property({ nullable: true })\n\toutdatedSince?: Date;\n\n\tconstructor(props: IUserProperties) {\n\t\tsuper();\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tthis.school = props.school;\n\t\tthis.roles.set(props.roles);\n\t\tthis.ldapDn = props.ldapDn;\n\t\tthis.externalId = props.externalId;\n\t\tthis.forcePasswordChange = props.forcePasswordChange;\n\t\tthis.language = props.language;\n\t\tthis.preferences = props.preferences ?? {};\n\t\tthis.deletedAt = props.deletedAt;\n\t\tthis.lastLoginSystemChange = props.lastLoginSystemChange;\n\t\tthis.outdatedSince = props.outdatedSince;\n\t\tthis.previousExternalId = props.previousExternalId;\n\t}\n\n\tpublic resolvePermissions(): string[] {\n\t\tif (!this.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\n\t\tlet permissions: string[] = [];\n\n\t\tconst roles = this.roles.getItems();\n\t\troles.forEach((role) => {\n\t\t\tconst rolePermissions = role.resolvePermissions();\n\t\t\tpermissions = [...permissions, ...rolePermissions];\n\t\t});\n\n\t\tconst uniquePermissions = [...new Set(permissions)];\n\n\t\treturn uniquePermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IVideoConferenceSettings.html":{"url":"interfaces/IVideoConferenceSettings.html","title":"interface - IVideoConferenceSettings","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IVideoConferenceSettings\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/interface/video-conference-settings.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n bbb\n \n \n \n \n enabled\n \n \n \n \n hostUrl\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bbb\n \n \n \n \n \n \n \n \n bbb: IBbbSettings\n\n \n \n\n\n \n \n Type : IBbbSettings\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n enabled\n \n \n \n \n \n \n \n \n enabled: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hostUrl\n \n \n \n \n \n \n \n \n hostUrl: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { IBbbSettings } from '../bbb';\n\nexport const VideoConferenceSettings = Symbol('VideoConferenceSettings');\n\nexport interface IVideoConferenceSettings {\n\tenabled: boolean;\n\thostUrl: string;\n\tbbb: IBbbSettings;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IdParams.html":{"url":"classes/IdParams.html","title":"class - IdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The Oauth Client Id.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/id.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class IdParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The Oauth Client Id.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tid!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IdToken.html":{"url":"interfaces/IdToken.html","title":"interface - IdToken","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IdToken\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/interface/id-token.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n email\n \n \n \n Optional\n \n groups\n \n \n \n Optional\n \n iframe\n \n \n \n Optional\n \n name\n \n \n \n \n schoolId\n \n \n \n Optional\n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n email\n \n \n \n \n \n \n \n \n email: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n groups\n \n \n \n \n \n \n \n \n groups: GroupNameIdTuple[]\n\n \n \n\n\n \n \n Type : GroupNameIdTuple[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n iframe\n \n \n \n \n \n \n \n \n iframe: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IdToken {\n\tiframe?: string;\n\temail?: string;\n\tname?: string;\n\tuserId?: string;\n\tschoolId: string;\n\tgroups?: GroupNameIdTuple[];\n}\n\nexport interface GroupNameIdTuple {\n\tdisplayName: string;\n\tgid: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IdTokenCreationLoggableException.html":{"url":"classes/IdTokenCreationLoggableException.html","title":"class - IdTokenCreationLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IdTokenCreationLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/error/id-token-creation-exception.loggable.ts\n \n\n\n\n \n Extends\n \n \n InternalServerErrorException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(clientId: string, userId?: string)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/error/id-token-creation-exception.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n \n string\n \n \n \n No\n \n \n \n \n userId\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/error/id-token-creation-exception.loggable.ts:9\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { InternalServerErrorException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable } from '@src/core/logger';\n\nexport class IdTokenCreationLoggableException extends InternalServerErrorException implements Loggable {\n\tconstructor(private readonly clientId: string, private readonly userId?: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): ErrorLogMessage {\n\t\tconst message = {\n\t\t\ttype: 'INTERNAL_SERVER_ERROR_EXCEPTION',\n\t\t\tmessage: 'Something went wrong for id token creation. Tool could not be found.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\tclientId: this.clientId,\n\t\t\t},\n\t\t};\n\n\t\treturn message;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/IdTokenService.html":{"url":"injectables/IdTokenService.html","title":"injectable - IdTokenService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n IdTokenService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/service/id-token.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n host\n \n \n Protected\n iFrameProperties\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n buildGroupsClaim\n \n \n Async\n createIdToken\n \n \n Private\n Async\n createIframeSubject\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderLoginFlowService: OauthProviderLoginFlowService, pseudonymService: PseudonymService, teamsRepo: TeamsRepo, userService: UserService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderLoginFlowService\n \n \n OauthProviderLoginFlowService\n \n \n \n No\n \n \n \n \n pseudonymService\n \n \n PseudonymService\n \n \n \n No\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n buildGroupsClaim\n \n \n \n \n \n \n \n buildGroupsClaim(teams: TeamEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teams\n \n TeamEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : GroupNameIdTuple[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createIdToken\n \n \n \n \n \n \n \n createIdToken(userId: string, scopes: string[], clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n scopes\n \n string[]\n \n\n \n No\n \n\n\n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createIframeSubject\n \n \n \n \n \n \n \n createIframeSubject(user: UserDO, clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n host\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n Protected\n iFrameProperties\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/service/id-token.service.ts:16\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport { LtiToolDO, Pseudonym, TeamEntity, UserDO } from '@shared/domain';\nimport { TeamsRepo } from '@shared/repo';\nimport { PseudonymService } from '@src/modules/pseudonym';\nimport { UserService } from '@src/modules/user';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { GroupNameIdTuple, IdToken, OauthScope } from '../interface';\nimport { OauthProviderLoginFlowService } from './oauth-provider.login-flow.service';\nimport { IdTokenCreationLoggableException } from '../error/id-token-creation-exception.loggable';\n\n@Injectable()\nexport class IdTokenService {\n\tprivate readonly host: string;\n\n\tprotected iFrameProperties: string;\n\n\tconstructor(\n\t\tprivate readonly oauthProviderLoginFlowService: OauthProviderLoginFlowService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly teamsRepo: TeamsRepo,\n\t\tprivate readonly userService: UserService\n\t) {\n\t\tthis.host = Configuration.get('HOST') as string;\n\t\tthis.iFrameProperties = 'title=\"username\" style=\"height: 26px; width: 180px; border: none;\"';\n\t}\n\n\tasync createIdToken(userId: string, scopes: string[], clientId: string): Promise {\n\t\tlet teams: TeamEntity[] = [];\n\t\tif (scopes.includes(OauthScope.GROUPS)) {\n\t\t\tteams = await this.teamsRepo.findByUserId(userId);\n\t\t}\n\n\t\tconst user: UserDO = await this.userService.findById(userId);\n\t\tconst name: string = await this.userService.getDisplayName(user);\n\t\tconst iframe: string | undefined = await this.createIframeSubject(user, clientId);\n\t\tconst groups: GroupNameIdTuple[] = this.buildGroupsClaim(teams);\n\n\t\treturn {\n\t\t\tiframe,\n\t\t\temail: scopes.includes(OauthScope.EMAIL) ? user.email : undefined,\n\t\t\tname: scopes.includes(OauthScope.PROFILE) ? name : undefined,\n\t\t\tuserId: scopes.includes(OauthScope.PROFILE) ? user.id : undefined,\n\t\t\tschoolId: user.schoolId,\n\t\t\tgroups: scopes.includes(OauthScope.GROUPS) ? groups : undefined,\n\t\t};\n\t}\n\n\tprivate buildGroupsClaim(teams: TeamEntity[]): GroupNameIdTuple[] {\n\t\treturn teams.map((team: TeamEntity): GroupNameIdTuple => {\n\t\t\treturn {\n\t\t\t\tgid: team.id,\n\t\t\t\tdisplayName: team.name,\n\t\t\t};\n\t\t});\n\t}\n\n\t// TODO N21-335 How we can refactor the iframe in the id token?\n\tprivate async createIframeSubject(user: UserDO, clientId: string): Promise {\n\t\tconst tool: ExternalTool | LtiToolDO = await this.oauthProviderLoginFlowService.findToolByClientId(clientId);\n\n\t\tif (!tool.id) {\n\t\t\tthrow new IdTokenCreationLoggableException(clientId, user.id);\n\t\t}\n\n\t\tconst pseudonym: Pseudonym = await this.pseudonymService.findByUserAndTool(user, tool);\n\n\t\treturn ``;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/IdentityManagementModule.html":{"url":"modules/IdentityManagementModule.html","title":"module - IdentityManagementModule","body":"\n \n\n\n\n\n Modules\n IdentityManagementModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_IdentityManagementModule\n\n\n\ncluster_IdentityManagementModule_imports\n\n\n\ncluster_IdentityManagementModule_exports\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\nIdentityManagementModule -->\n\nEncryptionModule->IdentityManagementModule\n\n\n\n\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationModule\n\nIdentityManagementModule -->\n\nKeycloakAdministrationModule->IdentityManagementModule\n\n\n\n\n\nKeycloakModule\n\nKeycloakModule\n\nIdentityManagementModule -->\n\nKeycloakModule->IdentityManagementModule\n\n\n\n\n\nIdentityManagementOauthService \n\nIdentityManagementOauthService \n\nIdentityManagementOauthService -->\n\nIdentityManagementModule->IdentityManagementOauthService \n\n\n\n\n\nIdentityManagementService \n\nIdentityManagementService \n\nIdentityManagementService -->\n\nIdentityManagementModule->IdentityManagementService \n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n EncryptionModule\n \n \n KeycloakAdministrationModule\n \n \n KeycloakModule\n \n \n \n \n Exports\n \n \n IdentityManagementOauthService\n \n \n IdentityManagementService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { EncryptionModule } from '../encryption';\nimport { IdentityManagementOauthService } from './identity-management-oauth.service';\nimport { IdentityManagementService } from './identity-management.service';\nimport { KeycloakAdministrationModule } from './keycloak-administration/keycloak-administration.module';\nimport { KeycloakModule } from './keycloak/keycloak.module';\nimport { KeycloakIdentityManagementOauthService } from './keycloak/service/keycloak-identity-management-oauth.service';\nimport { KeycloakIdentityManagementService } from './keycloak/service/keycloak-identity-management.service';\n\n@Module({\n\timports: [KeycloakModule, KeycloakAdministrationModule, HttpModule, EncryptionModule],\n\tproviders: [\n\t\t{ provide: IdentityManagementService, useClass: KeycloakIdentityManagementService },\n\t\t{ provide: IdentityManagementOauthService, useClass: KeycloakIdentityManagementOauthService },\n\t],\n\texports: [IdentityManagementService, IdentityManagementOauthService],\n})\nexport class IdentityManagementModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IdentityManagementOauthService.html":{"url":"classes/IdentityManagementOauthService.html","title":"class - IdentityManagementOauthService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IdentityManagementOauthService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n getOauthConfig\n \n \n Abstract\n isOauthConfigAvailable\n \n \n Abstract\n resourceOwnerPasswordGrant\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n getOauthConfig\n \n \n \n \n \n \n \n getOauthConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts:9\n \n \n\n\n \n \n Returns the oauth config of the IDM.\n\n\n \n \n \n Returns : Promise\n\n \n \n the oauth config of the IDM.\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n isOauthConfigAvailable\n \n \n \n \n \n \n \n isOauthConfigAvailable()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts:15\n \n \n\n\n \n \n Checks if the IDM oauth config is available.\n\n\n \n \n \n Returns : Promise\n\n \n \n true if the IDM oauth config is available, false otherwise.\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n resourceOwnerPasswordGrant\n \n \n \n \n \n \n \n resourceOwnerPasswordGrant(username: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management-oauth.service.ts:23\n \n \n\n\n \n \n Checks the given credentials with the IDM and returns an JWT on success.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n the username of the account to check.\n\n \n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n the password of the account to check.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the JWT as string or undefined on failure.\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OauthConfigDto } from '@src/modules/system/service/dto';\n\nexport abstract class IdentityManagementOauthService {\n\t/**\n\t * Returns the oauth config of the IDM.\n\t * @returns the oauth config of the IDM.\n\t * @throws an error if the IDM oauth config is not available.\n\t */\n\tabstract getOauthConfig(): Promise;\n\n\t/**\n\t * Checks if the IDM oauth config is available.\n\t * @returns true if the IDM oauth config is available, false otherwise.\n\t */\n\tabstract isOauthConfigAvailable(): Promise;\n\n\t/**\n\t * Checks the given credentials with the IDM and returns an JWT on success.\n\t * @param username the username of the account to check.\n\t * @param password the password of the account to check.\n\t * @returns the JWT as string or undefined on failure.\n\t */\n\tabstract resourceOwnerPasswordGrant(username: string, password: string): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IdentityManagementService.html":{"url":"classes/IdentityManagementService.html","title":"class - IdentityManagementService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IdentityManagementService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/identity-management.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n createAccount\n \n \n Abstract\n deleteAccountById\n \n \n Abstract\n findAccountByDbcAccountId\n \n \n Abstract\n findAccountByDbcUserId\n \n \n Abstract\n findAccountById\n \n \n Abstract\n findAccountsByUsername\n \n \n Abstract\n getAllAccounts\n \n \n Abstract\n getUserAttribute\n \n \n Abstract\n setUserAttribute\n \n \n Abstract\n updateAccount\n \n \n Abstract\n updateAccountPassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n createAccount\n \n \n \n \n \n \n \n createAccount(account: IdmAccountUpdate, password?: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:17\n \n \n\n\n \n \n Create a new account in the identity management.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n account\n \n IdmAccountUpdate\n \n\n \n No\n \n\n\n \n the account's details\n\n \n \n \n password\n \n string | undefined\n \n\n \n Yes\n \n\n\n \n the account's password (optional)\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account id if created successfully\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n deleteAccountById\n \n \n \n \n \n \n \n deleteAccountById(accountId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:81\n \n \n\n\n \n \n Deletes an account from the identity management.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be deleted.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the accounts id if deleted successfully\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findAccountByDbcAccountId\n \n \n \n \n \n \n \n findAccountByDbcAccountId(accountDbcAccountId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:51\n \n \n\n\n \n \n Load a specific account by its dbc account id.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountDbcAccountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be loaded.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account if exists\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findAccountByDbcUserId\n \n \n \n \n \n \n \n findAccountByDbcUserId(accountDbcUserId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:59\n \n \n\n\n \n \n Load a specific account by its dbc user id.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountDbcUserId\n \n string\n \n\n \n No\n \n\n\n \n the account to be loaded.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account if exists\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findAccountById\n \n \n \n \n \n \n \n findAccountById(accountId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:43\n \n \n\n\n \n \n Load a specific account by its id.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be loaded.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account if exists\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n findAccountsByUsername\n \n \n \n \n \n \n \n findAccountsByUsername(username: string, options?: SearchOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:67\n \n \n\n\n \n \n Loads the account with the specific username.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n of the account to be loaded.\n\n \n \n \n options\n \n SearchOptions\n \n\n \n Yes\n \n\n\n \n the search options to be applied.\n\n \n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n the found accounts (might be empty).\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getAllAccounts\n \n \n \n \n \n \n \n getAllAccounts()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:74\n \n \n\n\n \n \n Load all accounts.\n\n\n \n \n \n Returns : Promise\n\n \n \n an array of all accounts (might be empty)\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getUserAttribute\n \n \n \n \n \n \n \n getUserAttribute(userId: string, attributeName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:89\n \n \n\n \n \n Type parameters :\n \n TValue\n \n \n \n\n \n \n Gets an attribute value of a specific user.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n the id of the user to get an attribute value.\n\n \n \n \n attributeName\n \n string\n \n\n \n No\n \n\n\n \n the name of the attribute to get.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the attribute value if exists, null otherwise.\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n setUserAttribute\n \n \n \n \n \n \n \n setUserAttribute(userId: string, attributeName: string, attributeValue: TValue)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:100\n \n \n\n \n \n Type parameters :\n \n TValue\n \n \n \n\n \n \n Sets an attribute value of a specific user.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n the id of the user to set an attribute value.\n\n \n \n \n attributeName\n \n string\n \n\n \n No\n \n\n\n \n the name of the attribute to set.\n\n \n \n \n attributeValue\n \n TValue\n \n\n \n No\n \n\n\n \n the value of the attribute to set.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateAccount\n \n \n \n \n \n \n \n updateAccount(accountId: string, account: IdmAccountUpdate)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:26\n \n \n\n\n \n \n Update an existing account's details.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be updated.\n\n \n \n \n account\n \n IdmAccountUpdate\n \n\n \n No\n \n\n\n \n the account data to be applied.\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account id if updated successfully\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateAccountPassword\n \n \n \n \n \n \n \n updateAccountPassword(accountId: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/identity-management.service.ts:35\n \n \n\n\n \n \n Update an existing account's password.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n the account to be updated.\n\n \n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n the new password (clear).\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n the account id if updated successfully\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Counted, IdmAccount, IdmAccountUpdate } from '@shared/domain';\n\nexport type SearchOptions = {\n\texact?: boolean;\n\tskip?: number;\n\tlimit?: number;\n};\n\nexport abstract class IdentityManagementService {\n\t/**\n\t * Create a new account in the identity management.\n\t *\n\t * @param account the account's details\n\t * @param [password] the account's password (optional)\n\t * @returns the account id if created successfully\n\t */\n\tabstract createAccount(account: IdmAccountUpdate, password?: string | undefined): Promise;\n\n\t/**\n\t * Update an existing account's details.\n\t *\n\t * @param accountId the account to be updated.\n\t * @param account the account data to be applied.\n\t * @returns the account id if updated successfully\n\t */\n\tabstract updateAccount(accountId: string, account: IdmAccountUpdate): Promise;\n\n\t/**\n\t * Update an existing account's password.\n\t *\n\t * @param accountId the account to be updated.\n\t * @param password the new password (clear).\n\t * @returns the account id if updated successfully\n\t */\n\tabstract updateAccountPassword(accountId: string, password: string): Promise;\n\n\t/**\n\t * Load a specific account by its id.\n\t *\n\t * @param accountId the account to be loaded.\n\t * @returns the account if exists\n\t */\n\tabstract findAccountById(accountId: string): Promise;\n\n\t/**\n\t * Load a specific account by its dbc account id.\n\t *\n\t * @param accountDbcAccountId the account to be loaded.\n\t * @returns the account if exists\n\t */\n\tabstract findAccountByDbcAccountId(accountDbcAccountId: string): Promise;\n\n\t/**\n\t * Load a specific account by its dbc user id.\n\t *\n\t * @param accountDbcUserId the account to be loaded.\n\t * @returns the account if exists\n\t */\n\tabstract findAccountByDbcUserId(accountDbcUserId: string): Promise;\n\n\t/**\n\t * Loads the account with the specific username.\n\t * @param username of the account to be loaded.\n\t * @param options the search options to be applied.\n\t * @returns the found accounts (might be empty).\n\t */\n\tabstract findAccountsByUsername(username: string, options?: SearchOptions): Promise>;\n\n\t/**\n\t * Load all accounts.\n\t *\n\t * @returns an array of all accounts (might be empty)\n\t */\n\tabstract getAllAccounts(): Promise;\n\n\t/**\n\t * Deletes an account from the identity management.\n\t * @param accountId the account to be deleted.\n\t * @returns the accounts id if deleted successfully\n\t */\n\tabstract deleteAccountById(accountId: string): Promise;\n\n\t/**\n\t * Gets an attribute value of a specific user.\n\t * @param userId the id of the user to get an attribute value.\n\t * @param attributeName the name of the attribute to get.\n\t * @returns the attribute value if exists, null otherwise.\n\t */\n\tabstract getUserAttribute(\n\t\tuserId: string,\n\t\tattributeName: string\n\t): Promise;\n\n\t/**\n\t * Sets an attribute value of a specific user.\n\t * @param userId the id of the user to set an attribute value.\n\t * @param attributeName the name of the attribute to set.\n\t * @param attributeValue the value of the attribute to set.\n\t */\n\tabstract setUserAttribute(\n\t\tuserId: string,\n\t\tattributeName: string,\n\t\tattributeValue: TValue\n\t): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ImportUser.html":{"url":"entities/ImportUser.html","title":"entity - ImportUser","body":"\n \n\n\n\n\n\n\n\n Entities\n ImportUser\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/import-user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n classNames\n \n \n \n email\n \n \n \n externalId\n \n \n \n firstName\n \n \n \n flagged\n \n \n \n lastName\n \n \n \n ldapDn\n \n \n \n Optional\n matchedBy\n \n \n \n roleNames\n \n \n \n school\n \n \n \n system\n \n \n \n \n Optional\n user\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n classNames\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:94\n \n \n\n\n \n \n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:88\n \n \n\n\n \n \n \n \n \n \n \n \n \n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'ldapId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:76\n \n \n\n\n \n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:79\n \n \n\n\n \n \n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Property({type: Boolean})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:112\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:82\n \n \n\n\n \n \n \n \n \n \n \n \n \n ldapDn\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n matchedBy\n \n \n \n \n \n \n Type : MatchCreator\n\n \n \n \n \n Decorators : \n \n \n @Enum({fieldName: 'match_matchedBy', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:109\n \n \n\n \n \n References who set the user, take the field as read-only\n\n \n \n\n \n \n \n \n \n \n \n \n \n roleNames\n \n \n \n \n \n \n Type : IImportUserRoleName[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @Enum({fieldName: 'roles'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:91\n \n \n\n\n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'schoolId', wrappedReference: true, eager: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n Type : IdentifiedReference\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {wrappedReference: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n user\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('User', {fieldName: 'match_userId', eager: true, nullable: true})@Unique({options: undefined})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/import-user.entity.ts:102\n \n \n\n \n \n Update user-match together with matchedBy, take the field as read-only\n\n \n \n\n \n \n\n \n\n\n \n import { Entity, Enum, IdentifiedReference, ManyToOne, Property, Unique, wrap } from '@mikro-orm/core';\nimport { IEntityWithSchool, RoleName } from '../interface';\nimport { BaseEntityReference, BaseEntityWithTimestamps } from './base.entity';\nimport { SchoolEntity } from './school.entity';\nimport { System } from './system.entity';\nimport type { User } from './user.entity';\n\nexport type IImportUserRoleName = RoleName.ADMINISTRATOR | RoleName.TEACHER | RoleName.STUDENT;\n\nexport interface IImportUserProperties {\n\t// references\n\tschool: SchoolEntity;\n\tsystem: System;\n\t// external identifiers\n\tldapDn: string;\n\texternalId: string;\n\t// descriptive properties\n\tfirstName: string;\n\tlastName: string;\n\temail: string; // TODO VO\n\troleNames?: IImportUserRoleName[];\n\tclassNames?: string[];\n\tuser?: User;\n\tmatchedBy?: MatchCreator;\n\tflagged?: boolean;\n}\n\nexport enum MatchCreator {\n\tAUTO = 'auto',\n\tMANUAL = 'admin',\n}\n\n@Entity({ tableName: 'importusers' })\n@Unique({ properties: ['school', 'externalId'] })\n@Unique({ properties: ['school', 'ldapDn'] })\n@Unique({ properties: ['school', 'email'] })\nexport class ImportUser extends BaseEntityWithTimestamps implements IEntityWithSchool {\n\tconstructor(props: IImportUserProperties) {\n\t\tsuper();\n\t\tthis.school = wrap(props.school).toReference();\n\t\tthis.system = wrap(props.system).toReference();\n\t\tthis.ldapDn = props.ldapDn;\n\t\tthis.externalId = props.externalId;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tif (Array.isArray(props.roleNames) && props.roleNames.length > 0) this.roleNames.push(...props.roleNames);\n\t\tif (Array.isArray(props.classNames) && props.classNames.length > 0) this.classNames.push(...props.classNames);\n\t\tif (props.user && props.matchedBy) this.setMatch(props.user, props.matchedBy);\n\t\tif (props.flagged && props.flagged === true) this.flagged = true;\n\t}\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId', wrappedReference: true, eager: true })\n\tschool: IdentifiedReference;\n\n\t@ManyToOne(() => 'System', { wrappedReference: true })\n\tsystem: IdentifiedReference;\n\n\t@Property()\n\tldapDn: string;\n\n\t/**\n\t * extracts the login name out of the dn which has the login name in 'uid=LOGINNAME,[...]'\n\t * */\n\tget loginName(): string | null {\n\t\tconst PATTERN_LOGIN_FROM_DN = /^uid=(.+?),/i; // extract uid from dn\n\t\tconst matches = this.ldapDn?.match(PATTERN_LOGIN_FROM_DN);\n\t\tif (Array.isArray(matches) && matches.length >= 2) {\n\t\t\tconst loginName = matches[1]; // 0: full match, 1: first group match\n\t\t\treturn loginName;\n\t\t}\n\t\treturn null;\n\t}\n\n\t@Property({ fieldName: 'ldapId' })\n\texternalId: string;\n\n\t@Property()\n\tfirstName: string;\n\n\t@Property()\n\tlastName: string;\n\n\t@Property()\n\t/**\n\t * Lowercase email string\n\t */\n\temail: string;\n\n\t@Enum({ fieldName: 'roles' })\n\troleNames: IImportUserRoleName[] = [];\n\n\t@Property()\n\tclassNames: string[] = [];\n\n\t/**\n\t * Update user-match together with matchedBy, take the field as read-only\n\t * @read\n\t */\n\t@ManyToOne('User', { fieldName: 'match_userId', eager: true, nullable: true })\n\t@Unique({ options: { partialFilterExpression: { match_userId: { $type: 'objectId' } } } })\n\tuser?: User;\n\n\t/**\n\t * References who set the user, take the field as read-only\n\t * @private\n\t */\n\t@Enum({ fieldName: 'match_matchedBy', nullable: true })\n\tmatchedBy?: MatchCreator;\n\n\t@Property({ type: Boolean })\n\tflagged = false;\n\n\tsetMatch(user: User, matchedBy: MatchCreator) {\n\t\tif (this.school.id !== user.school.id) {\n\t\t\tthrow new Error('not same school');\n\t\t}\n\t\tthis.user = user;\n\t\tthis.matchedBy = matchedBy;\n\t}\n\n\trevokeMatch() {\n\t\tthis.user = undefined;\n\t\tthis.matchedBy = undefined;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ImportUserController.html":{"url":"controllers/ImportUserController.html","title":"controller - ImportUserController","body":"\n \n\n\n\n\n\n\n Controllers\n ImportUserController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/import-user.controller.ts\n \n\n \n Prefix\n \n \n user/import\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n endSchoolInMaintenance\n \n \n \n Async\n findAllImportUsers\n \n \n \n Async\n findAllUnmatchedUsers\n \n \n \n Async\n removeMatch\n \n \n \n Async\n saveAllUsersMatches\n \n \n \n Async\n setMatch\n \n \n \n Async\n startSchoolInUserMigration\n \n \n \n Async\n updateFlag\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n endSchoolInMaintenance\n \n \n \n \n \n \n \n endSchoolInMaintenance(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Post('startSync')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:115\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllImportUsers\n \n \n \n \n \n \n \n findAllImportUsers(currentUser: ICurrentUser, scope: FilterImportUserParams, sortingQuery: SortImportUserParams, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n FilterImportUserParams\n \n\n \n No\n \n\n\n \n \n sortingQuery\n \n SortImportUserParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllUnmatchedUsers\n \n \n \n \n \n \n \n findAllUnmatchedUsers(currentUser: ICurrentUser, scope: FilterUserParams, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get('unassigned')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n FilterUserParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeMatch\n \n \n \n \n \n \n \n removeMatch(urlParams: ImportUserUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':importUserId/match')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ImportUserUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAllUsersMatches\n \n \n \n \n \n \n \n saveAllUsersMatches(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Post('migrate')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:102\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMatch\n \n \n \n \n \n \n \n setMatch(urlParams: ImportUserUrlParams, currentUser: ICurrentUser, params: UpdateMatchParams)\n \n \n\n \n \n Decorators : \n \n @Patch(':importUserId/match')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ImportUserUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n UpdateMatchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startSchoolInUserMigration\n \n \n \n \n \n \n \n startSchoolInUserMigration(currentUser: ICurrentUser, useCentralLdap?: boolean)\n \n \n\n \n \n Decorators : \n \n @Post('startUserMigration')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:107\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n useCentralLdap\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateFlag\n \n \n \n \n \n \n \n updateFlag(urlParams: ImportUserUrlParams, currentUser: ICurrentUser, params: UpdateFlagParams)\n \n \n\n \n \n Decorators : \n \n @Patch(':importUserId/flag')\n \n \n\n \n \n Defined in apps/server/src/modules/user-import/controller/import-user.controller.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n ImportUserUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n UpdateFlagParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\n\nimport { PaginationParams } from '@shared/controller';\nimport { IFindOptions, ImportUser, User } from '@shared/domain';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ICurrentUser } from '@src/modules/authentication';\n\nimport { ImportUserMapper } from '../mapper/import-user.mapper';\nimport { UserMatchMapper } from '../mapper/user-match.mapper';\nimport { UserImportUc } from '../uc/user-import.uc';\n\nimport {\n\tFilterImportUserParams,\n\tFilterUserParams,\n\tImportUserListResponse,\n\tImportUserResponse,\n\tImportUserUrlParams,\n\tSortImportUserParams,\n\tUpdateFlagParams,\n\tUpdateMatchParams,\n\tUserMatchListResponse,\n} from './dto';\n\n@ApiTags('UserImport')\n@Authenticate('jwt')\n@Controller('user/import')\nexport class ImportUserController {\n\tconstructor(private readonly userImportUc: UserImportUc, private readonly userUc: UserImportUc) {}\n\n\t@Get()\n\tasync findAllImportUsers(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() scope: FilterImportUserParams,\n\t\t@Query() sortingQuery: SortImportUserParams,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\tconst options: IFindOptions = { pagination };\n\t\toptions.order = ImportUserMapper.mapSortingQueryToDomain(sortingQuery);\n\t\tconst query = ImportUserMapper.mapImportUserFilterQueryToDomain(scope);\n\t\tconst [importUserList, count] = await this.userImportUc.findAllImportUsers(currentUser.userId, query, options);\n\t\tconst { skip, limit } = pagination;\n\t\tconst dtoList = importUserList.map((importUser) => ImportUserMapper.mapToResponse(importUser));\n\t\tconst response = new ImportUserListResponse(dtoList, count, skip, limit);\n\n\t\treturn response;\n\t}\n\n\t@Patch(':importUserId/match')\n\tasync setMatch(\n\t\t@Param() urlParams: ImportUserUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() params: UpdateMatchParams\n\t): Promise {\n\t\tconst result = await this.userImportUc.setMatch(currentUser.userId, urlParams.importUserId, params.userId);\n\t\tconst response = ImportUserMapper.mapToResponse(result);\n\n\t\treturn response;\n\t}\n\n\t@Delete(':importUserId/match')\n\tasync removeMatch(\n\t\t@Param() urlParams: ImportUserUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst result = await this.userImportUc.removeMatch(currentUser.userId, urlParams.importUserId);\n\t\tconst response = ImportUserMapper.mapToResponse(result);\n\n\t\treturn response;\n\t}\n\n\t@Patch(':importUserId/flag')\n\tasync updateFlag(\n\t\t@Param() urlParams: ImportUserUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() params: UpdateFlagParams\n\t): Promise {\n\t\tconst result = await this.userImportUc.updateFlag(currentUser.userId, urlParams.importUserId, params.flagged);\n\t\tconst response = ImportUserMapper.mapToResponse(result);\n\n\t\treturn response;\n\t}\n\n\t@Get('unassigned')\n\tasync findAllUnmatchedUsers(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() scope: FilterUserParams,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\tconst options: IFindOptions = { pagination };\n\n\t\tconst query = UserMatchMapper.mapToDomain(scope);\n\t\tconst [userList, total] = await this.userUc.findAllUnmatchedUsers(currentUser.userId, query, options);\n\t\tconst { skip, limit } = pagination;\n\t\tconst dtoList = userList.map((user) => UserMatchMapper.mapToResponse(user));\n\t\tconst response = new UserMatchListResponse(dtoList, total, skip, limit);\n\n\t\treturn response as unknown as UserMatchListResponse;\n\t}\n\n\t@Post('migrate')\n\tasync saveAllUsersMatches(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.userImportUc.saveAllUsersMatches(currentUser.userId);\n\t}\n\n\t@Post('startUserMigration')\n\tasync startSchoolInUserMigration(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query('useCentralLdap') useCentralLdap?: boolean\n\t): Promise {\n\t\tawait this.userImportUc.startSchoolInUserMigration(currentUser.userId, useCentralLdap);\n\t}\n\n\t@Post('startSync')\n\tasync endSchoolInMaintenance(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tawait this.userImportUc.endSchoolInMaintenance(currentUser.userId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserFactory.html":{"url":"classes/ImportUserFactory.html","title":"class - ImportUserFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/import-user.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n matched\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n matched\n \n \n \n \n \n \nmatched(matchedBy: MatchCreator, user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/import-user.factory.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n matchedBy\n \n MatchCreator\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { v4 as uuidv4 } from 'uuid';\n\nimport { IImportUserProperties, IImportUserRoleName, ImportUser, MatchCreator, RoleName, User } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\nimport { schoolFactory } from './school.factory';\nimport { systemFactory } from './system.factory';\n\nclass ImportUserFactory extends BaseFactory {\n\tmatched(matchedBy: MatchCreator, user: User): this {\n\t\tconst params: DeepPartial = { matchedBy, user };\n\t\treturn this.params(params);\n\t}\n}\n\nexport const importUserFactory = ImportUserFactory.define(ImportUser, ({ sequence }) => {\n\treturn {\n\t\tschool: schoolFactory.build(),\n\t\tsystem: systemFactory.build(),\n\t\tldapDn: `uid=john${sequence},cn=schueler,cn=users,ou=1,dc=training,dc=ucs`,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\texternalId: uuidv4() as unknown as string,\n\t\tfirstName: `John${sequence}`,\n\t\tlastName: `Doe${sequence}`,\n\t\temail: `user-${sequence}@example.com`,\n\t\troleNames: [RoleName.STUDENT as IImportUserRoleName],\n\t\tclassNames: ['firstClass'],\n\t\tflagged: false,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserListResponse.html":{"url":"classes/ImportUserListResponse.html","title":"class - ImportUserListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/import-user.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ImportUserResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:64\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ImportUserResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ImportUserResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:71\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { IsMongoId, IsString } from 'class-validator';\nimport { UserMatchResponse } from './user-match.response';\nimport { UserRole } from './user-role';\n\nexport class ImportUserResponse {\n\tconstructor(props: ImportUserResponse) {\n\t\tthis.importUserId = props.importUserId;\n\t\tthis.loginName = props.loginName;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.roleNames = props.roleNames;\n\t\tthis.classNames = props.classNames;\n\t\tif (props.match != null) this.match = props.match;\n\t\tif (props.flagged === true) this.flagged = true;\n\t}\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'id reference to a import user',\n\t})\n\t// no school, system\n\timportUserId: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'login name from external system',\n\t})\n\tloginName: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'external systems user firstname',\n\t})\n\tfirstName: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'external systems user lastname',\n\t})\n\tlastName: string;\n\n\t@ApiProperty({\n\t\tdescription: 'list of user roles from external system: student, teacher, admin',\n\t\tenum: UserRole,\n\t\tisArray: true,\n\t})\n\troleNames: UserRole[];\n\n\t@ApiProperty({ description: 'names of classes the user attends from external system' })\n\tclassNames: string[];\n\n\t@ApiPropertyOptional({ description: 'assignemnt to a local user account', type: UserMatchResponse })\n\tmatch?: UserMatchResponse;\n\n\t// explicit type is needed for OpenAPI generator\n\t// eslint-disable-next-line @typescript-eslint/no-inferrable-types\n\t@ApiProperty({ description: 'manual flag to apply it as filter' })\n\tflagged: boolean = false;\n}\n\nexport class ImportUserListResponse extends PaginationResponse {\n\tconstructor(data: ImportUserResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [ImportUserResponse] })\n\tdata: ImportUserResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserMapper.html":{"url":"classes/ImportUserMapper.html","title":"class - ImportUserMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/mapper/import-user.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapImportUserFilterQueryToDomain\n \n \n Static\n mapSortingQueryToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapImportUserFilterQueryToDomain\n \n \n \n \n \n \n \n mapImportUserFilterQueryToDomain(query: FilterImportUserParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/import-user.mapper.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterImportUserParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapSortingQueryToDomain\n \n \n \n \n \n \n \n mapSortingQueryToDomain(sortingQuery: SortImportUserParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/import-user.mapper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sortingQuery\n \n SortImportUserParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SortOrderMap | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(importUser: ImportUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/import-user.mapper.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n importUser\n \n ImportUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException } from '@nestjs/common';\nimport { StringValidator } from '@shared/common';\nimport { ImportUser, IImportUserScope, SortOrderMap } from '@shared/domain';\nimport {\n\tImportUserResponse,\n\tFilterImportUserParams,\n\tImportUserSortOrder,\n\tSortImportUserParams,\n} from '../controller/dto';\n\nimport { ImportUserMatchMapper } from './match.mapper';\n\nimport { RoleNameMapper } from './role-name.mapper';\nimport { UserMatchMapper } from './user-match.mapper';\n\nexport class ImportUserMapper {\n\tstatic mapSortingQueryToDomain(sortingQuery: SortImportUserParams): SortOrderMap | undefined {\n\t\tconst { sortBy } = sortingQuery;\n\t\tif (sortBy == null) return undefined;\n\t\tconst result: SortOrderMap = {};\n\t\tswitch (sortBy) {\n\t\t\tcase ImportUserSortOrder.FIRSTNAME:\n\t\t\tcase ImportUserSortOrder.LASTNAME:\n\t\t\t\tresult[sortBy] = sortingQuery.sortOrder;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new BadRequestException();\n\t\t}\n\t\treturn result;\n\t}\n\n\tstatic mapToResponse(importUser: ImportUser): ImportUserResponse {\n\t\tconst dto = new ImportUserResponse({\n\t\t\timportUserId: importUser.id,\n\t\t\tloginName: importUser.loginName || '',\n\t\t\tfirstName: importUser.firstName,\n\t\t\tlastName: importUser.lastName,\n\t\t\troleNames: importUser.roleNames.map((role) => RoleNameMapper.mapToResponse(role)),\n\t\t\tclassNames: importUser.classNames,\n\t\t\tflagged: importUser.flagged,\n\t\t});\n\t\tif (importUser.user != null && importUser.matchedBy) {\n\t\t\tconst { user } = importUser;\n\t\t\tdto.match = UserMatchMapper.mapToResponse(user, importUser.matchedBy);\n\t\t}\n\t\treturn dto;\n\t}\n\n\tstatic mapImportUserFilterQueryToDomain(query: FilterImportUserParams): IImportUserScope {\n\t\tconst dto: IImportUserScope = {};\n\t\tif (StringValidator.isNotEmptyString(query.firstName)) dto.firstName = query.firstName;\n\t\tif (StringValidator.isNotEmptyString(query.lastName)) dto.lastName = query.lastName;\n\t\tif (StringValidator.isNotEmptyString(query.loginName)) dto.loginName = query.loginName;\n\t\tif (query.role != null) {\n\t\t\tdto.role = RoleNameMapper.mapToDomain(query.role);\n\t\t}\n\t\tif (StringValidator.isNotEmptyString(query.classes)) dto.classes = query.classes;\n\t\tif (query.match) {\n\t\t\tdto.matches = query.match.map((match) => ImportUserMatchMapper.mapImportUserMatchScopeToDomain(match));\n\t\t}\n\t\tif (query.flagged === true) dto.flagged = true;\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserMatchMapper.html":{"url":"classes/ImportUserMatchMapper.html","title":"class - ImportUserMatchMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserMatchMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/mapper/match.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapImportUserMatchScopeToDomain\n \n \n Static\n mapMatchCreatorToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapImportUserMatchScopeToDomain\n \n \n \n \n \n \n \n mapImportUserMatchScopeToDomain(match: FilterMatchType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/match.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n match\n \n FilterMatchType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : MatchCreatorScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapMatchCreatorToResponse\n \n \n \n \n \n \n \n mapMatchCreatorToResponse(matchCreator: MatchCreator)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/match.mapper.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n matchCreator\n \n MatchCreator\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : MatchType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { MatchCreator, MatchCreatorScope } from '@shared/domain';\nimport { MatchType, FilterMatchType } from '../controller/dto';\n\nexport class ImportUserMatchMapper {\n\tstatic mapImportUserMatchScopeToDomain(match: FilterMatchType): MatchCreatorScope {\n\t\tif (match === FilterMatchType.AUTO) return MatchCreatorScope.AUTO;\n\t\tif (match === FilterMatchType.MANUAL) return MatchCreatorScope.MANUAL;\n\t\tif (match === FilterMatchType.NONE) return MatchCreatorScope.NONE;\n\t\tthrow Error('invalid match from filter query');\n\t}\n\n\tstatic mapMatchCreatorToResponse(matchCreator: MatchCreator): MatchType {\n\t\tswitch (matchCreator) {\n\t\t\tcase MatchCreator.MANUAL:\n\t\t\t\treturn MatchType.MANUAL;\n\t\t\tcase MatchCreator.AUTO:\n\t\t\tdefault:\n\t\t\t\treturn MatchType.AUTO;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ImportUserModule.html":{"url":"modules/ImportUserModule.html","title":"module - ImportUserModule","body":"\n \n\n\n\n\n Modules\n ImportUserModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ImportUserModule\n\n\n\ncluster_ImportUserModule_providers\n\n\n\ncluster_ImportUserModule_imports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nImportUserModule\n\nImportUserModule\n\nImportUserModule -->\n\nAccountModule->ImportUserModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nImportUserModule -->\n\nAuthorizationModule->ImportUserModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nImportUserModule -->\n\nLegacySchoolModule->ImportUserModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nImportUserModule -->\n\nLoggerModule->ImportUserModule\n\n\n\n\n\nImportUserRepo\n\nImportUserRepo\n\nImportUserModule -->\n\nImportUserRepo->ImportUserModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nImportUserModule -->\n\nLegacySchoolRepo->ImportUserModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nImportUserModule -->\n\nSystemRepo->ImportUserModule\n\n\n\n\n\nUserImportUc\n\nUserImportUc\n\nImportUserModule -->\n\nUserImportUc->ImportUserModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nImportUserModule -->\n\nUserRepo->ImportUserModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user-import/user-import.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ImportUserRepo\n \n \n LegacySchoolRepo\n \n \n SystemRepo\n \n \n UserImportUc\n \n \n UserRepo\n \n \n \n \n Controllers\n \n \n ImportUserController\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ImportUserRepo, LegacySchoolRepo, SystemRepo, UserRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { AccountModule } from '../account';\nimport { AuthorizationModule } from '../authorization';\nimport { ImportUserController } from './controller/import-user.controller';\nimport { UserImportUc } from './uc/user-import.uc';\n\n@Module({\n\timports: [LoggerModule, AccountModule, LegacySchoolModule, AuthorizationModule],\n\tcontrollers: [ImportUserController],\n\tproviders: [UserImportUc, ImportUserRepo, LegacySchoolRepo, SystemRepo, UserRepo],\n\texports: [],\n})\n/**\n * Module to provide user migration,\n * to link existing users with ldap references to enable\n * external authentication and sync.\n */\nexport class ImportUserModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ImportUserRepo.html":{"url":"injectables/ImportUserRepo.html","title":"injectable - ImportUserRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ImportUserRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/importuser/importuser.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteImportUsersBySchool\n \n \n Async\n findById\n \n \n Async\n findImportUsers\n \n \n Private\n Async\n findImportUsersAndCount\n \n \n Async\n hasMatch\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteImportUsersBySchool\n \n \n \n \n \n \n \n deleteImportUsersBySchool(school: SchoolEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:15\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findImportUsers\n \n \n \n \n \n \n \n findImportUsers(school: SchoolEntity, filters: IImportUserScope, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n school\n \n SchoolEntity\n \n\n \n No\n \n\n \n \n\n \n \n filters\n \n IImportUserScope\n \n\n \n No\n \n\n \n {}\n \n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n \n \n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findImportUsersAndCount\n \n \n \n \n \n \n \n findImportUsersAndCount(query: FilterQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n hasMatch\n \n \n \n \n \n \n \n hasMatch(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:27\n \n \n\n\n \n \n resolves with importusers matched with a local user account\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.repo.ts:11\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\n\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { Counted, EntityId, IFindOptions, IImportUserScope, ImportUser, SchoolEntity, User } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { ImportUserScope } from './importuser.scope';\n\n@Injectable()\nexport class ImportUserRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn ImportUser;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tif (!ObjectId.isValid(id)) throw new Error('invalid id');\n\t\tconst importUser = await this._em.findOneOrFail(ImportUser, { id });\n\t\tif (importUser.user != null) {\n\t\t\tawait this._em.populate(importUser.user, ['roles']);\n\t\t}\n\t\treturn importUser;\n\t}\n\n\t/**\n\t * resolves with importusers matched with a local user account\n\t */\n\tasync hasMatch(user: User): Promise {\n\t\tconst scope = new ImportUserScope();\n\t\tscope.byUserMatch(user);\n\t\tconst importUser = await this._em.findOne(ImportUser, scope.query);\n\t\treturn importUser;\n\t}\n\n\tasync findImportUsers(\n\t\tschool: SchoolEntity,\n\t\tfilters: IImportUserScope = {},\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new ImportUserScope();\n\t\tscope.bySchool(school);\n\t\tif (filters.firstName != null) scope.byFirstName(filters.firstName);\n\t\tif (filters.lastName != null) scope.byLastName(filters.lastName);\n\t\tif (filters.loginName != null) scope.byLoginName(filters.loginName);\n\t\tif (filters.role != null) scope.byRole(filters.role);\n\t\tif (filters.classes != null) scope.byClasses(filters.classes);\n\t\tif (filters.matches != null) scope.byMatches(filters.matches);\n\t\tif (filters.flagged === true) scope.isFlagged(true);\n\t\tconst countedImportUsers = await this.findImportUsersAndCount(scope.query, options);\n\t\treturn countedImportUsers;\n\t}\n\n\tprivate async findImportUsersAndCount(\n\t\tquery: FilterQuery,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst { pagination, order } = options || {};\n\t\tconst queryOptions = {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t};\n\t\tconst [importUserEntities, count] = await this._em.findAndCount(ImportUser, query, queryOptions);\n\t\tconst userMatches = importUserEntities.map((importUser) => importUser.user).filter((user) => user != null);\n\t\t// load role names of referenced users\n\t\tawait this._em.populate(userMatches as User[], ['roles']);\n\t\treturn [importUserEntities, count];\n\t}\n\n\tasync deleteImportUsersBySchool(school: SchoolEntity): Promise {\n\t\tawait this._em.nativeDelete(ImportUser, { school });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserResponse.html":{"url":"classes/ImportUserResponse.html","title":"class - ImportUserResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/import-user.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n classNames\n \n \n \n \n firstName\n \n \n \n flagged\n \n \n \n \n importUserId\n \n \n \n \n lastName\n \n \n \n \n loginName\n \n \n \n Optional\n match\n \n \n \n roleNames\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ImportUserResponse)\n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ImportUserResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n classNames\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'names of classes the user attends from external system'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'external systems user firstname'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'manual flag to apply it as filter'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:61\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n importUserId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({pattern: '[a-f0-9]{24}', description: 'id reference to a import user'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'external systems user lastname'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n loginName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'login name from external system'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n match\n \n \n \n \n \n \n Type : UserMatchResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'assignemnt to a local user account', type: UserMatchResponse})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n roleNames\n \n \n \n \n \n \n Type : UserRole[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'list of user roles from external system: student, teacher, admin', enum: UserRole, isArray: true})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.response.ts:50\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { IsMongoId, IsString } from 'class-validator';\nimport { UserMatchResponse } from './user-match.response';\nimport { UserRole } from './user-role';\n\nexport class ImportUserResponse {\n\tconstructor(props: ImportUserResponse) {\n\t\tthis.importUserId = props.importUserId;\n\t\tthis.loginName = props.loginName;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.roleNames = props.roleNames;\n\t\tthis.classNames = props.classNames;\n\t\tif (props.match != null) this.match = props.match;\n\t\tif (props.flagged === true) this.flagged = true;\n\t}\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'id reference to a import user',\n\t})\n\t// no school, system\n\timportUserId: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'login name from external system',\n\t})\n\tloginName: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'external systems user firstname',\n\t})\n\tfirstName: string;\n\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'external systems user lastname',\n\t})\n\tlastName: string;\n\n\t@ApiProperty({\n\t\tdescription: 'list of user roles from external system: student, teacher, admin',\n\t\tenum: UserRole,\n\t\tisArray: true,\n\t})\n\troleNames: UserRole[];\n\n\t@ApiProperty({ description: 'names of classes the user attends from external system' })\n\tclassNames: string[];\n\n\t@ApiPropertyOptional({ description: 'assignemnt to a local user account', type: UserMatchResponse })\n\tmatch?: UserMatchResponse;\n\n\t// explicit type is needed for OpenAPI generator\n\t// eslint-disable-next-line @typescript-eslint/no-inferrable-types\n\t@ApiProperty({ description: 'manual flag to apply it as filter' })\n\tflagged: boolean = false;\n}\n\nexport class ImportUserListResponse extends PaginationResponse {\n\tconstructor(data: ImportUserResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [ImportUserResponse] })\n\tdata: ImportUserResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserScope.html":{"url":"classes/ImportUserScope.html","title":"class - ImportUserScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/importuser/importuser.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byClasses\n \n \n byFirstName\n \n \n byLastName\n \n \n byLoginName\n \n \n byMatches\n \n \n byRole\n \n \n bySchool\n \n \n byUserMatch\n \n \n isFlagged\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byClasses\n \n \n \n \n \n \nbyClasses(classes: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n classes\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byFirstName\n \n \n \n \n \n \nbyFirstName(firstName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n firstName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byLastName\n \n \n \n \n \n \nbyLastName(lastName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lastName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byLoginName\n \n \n \n \n \n \nbyLoginName(loginName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:54\n \n \n\n\n \n \n filters the login name case insensitive for contains which is part of the dn\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loginName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byMatches\n \n \n \n \n \n \nbyMatches(matches: MatchCreatorScope[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n matches\n \n MatchCreatorScope[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : this\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byRole\n \n \n \n \n \n \nbyRole(roleName: RoleName)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleName\n \n RoleName\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n bySchool\n \n \n \n \n \n \nbySchool(school: SchoolEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byUserMatch\n \n \n \n \n \n \nbyUserMatch(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ImportUserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isFlagged\n \n \n \n \n \n \nisFlagged(flagged)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/importuser/importuser.scope.ts:113\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n Default value\n \n \n \n \n flagged\n\n \n No\n \n\n \n true\n \n\n \n \n \n \n \n \n \n Returns : this\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { StringValidator } from '@shared/common';\nimport { ImportUser, MatchCreatorScope, RoleName, SchoolEntity, User } from '@shared/domain';\nimport { MongoPatterns } from '../mongo.patterns';\nimport { Scope } from '../scope';\n\nexport class ImportUserScope extends Scope {\n\tbySchool(school: SchoolEntity): ImportUserScope {\n\t\tconst schoolId = school._id;\n\t\tif (!ObjectId.isValid(schoolId)) throw new Error('invalid school id');\n\t\tthis.addQuery({ school });\n\t\treturn this;\n\t}\n\n\tbyUserMatch(user: User): ImportUserScope {\n\t\tconst userId = user._id;\n\t\tif (!ObjectId.isValid(userId)) throw new Error('invalid user match id');\n\t\tthis.addQuery({ user });\n\t\treturn this;\n\t}\n\n\tbyFirstName(firstName: string): ImportUserScope {\n\t\tconst escapedFirstName = firstName.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t// TODO make db agnostic\n\t\tif (StringValidator.isNotEmptyString(escapedFirstName, true))\n\t\t\tthis.addQuery({\n\t\t\t\tfirstName: {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t$regex: escapedFirstName,\n\t\t\t\t\t$options: 'i',\n\t\t\t\t},\n\t\t\t});\n\t\treturn this;\n\t}\n\n\tbyLastName(lastName: string): ImportUserScope {\n\t\t// TODO filter does not find café when searching with cafe\n\t\tconst escapedLastName = lastName.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t// TODO make db agnostic\n\t\tif (StringValidator.isNotEmptyString(escapedLastName, true))\n\t\t\tthis.addQuery({\n\t\t\t\tlastName: {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t$regex: escapedLastName,\n\t\t\t\t\t$options: 'i',\n\t\t\t\t},\n\t\t\t});\n\t\treturn this;\n\t}\n\n\t/** filters the login name case insensitive for contains which is part of the dn */\n\tbyLoginName(loginName: string): ImportUserScope {\n\t\t// TODO filter does not find café when searching with cafe\n\t\tconst escapedLoginName = loginName.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t// TODO make db agnostic\n\t\tif (StringValidator.isNotEmptyString(escapedLoginName, true))\n\t\t\tthis.addQuery({\n\t\t\t\tldapDn: {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t$regex: `^uid=[^,]*${escapedLoginName}[^,]*,`,\n\t\t\t\t\t$options: 'i',\n\t\t\t\t},\n\t\t\t});\n\t\treturn this;\n\t}\n\n\tbyRole(roleName: RoleName): ImportUserScope {\n\t\tswitch (roleName) {\n\t\t\tcase RoleName.ADMINISTRATOR:\n\t\t\t\tthis.addQuery({ roleNames: { $in: [RoleName.ADMINISTRATOR] } });\n\t\t\t\tbreak;\n\t\t\tcase RoleName.STUDENT:\n\t\t\t\tthis.addQuery({ roleNames: { $in: [RoleName.STUDENT] } });\n\t\t\t\tbreak;\n\t\t\tcase RoleName.TEACHER:\n\t\t\t\tthis.addQuery({ roleNames: { $in: [RoleName.TEACHER] } });\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error('unexpected role name');\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyClasses(classes: string): ImportUserScope {\n\t\tconst escapedClasses = classes.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t// TODO make db agnostic\n\t\tif (StringValidator.isNotEmptyString(escapedClasses, true))\n\t\t\tthis.addQuery({\n\t\t\t\tclassNames: {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t$regex: escapedClasses,\n\t\t\t\t\t$options: 'i',\n\t\t\t\t},\n\t\t\t});\n\t\treturn this;\n\t}\n\n\tbyMatches(matches: MatchCreatorScope[]) {\n\t\tconst queries = matches\n\t\t\t.map((match) => {\n\t\t\t\tif (match === MatchCreatorScope.MANUAL) return { matchedBy: 'admin' };\n\t\t\t\tif (match === MatchCreatorScope.AUTO) return { matchedBy: 'auto' };\n\t\t\t\tif (match === MatchCreatorScope.NONE) return { matchedBy: null };\n\t\t\t\treturn null;\n\t\t\t})\n\t\t\t.filter((match) => match != null);\n\t\tif (queries.length > 0) this.addQuery({ $or: queries as FilterQuery[] });\n\t\treturn this;\n\t}\n\n\tisFlagged(flagged = true) {\n\t\tif (flagged === true) this.addQuery({ flagged: true });\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ImportUserUrlParams.html":{"url":"classes/ImportUserUrlParams.html","title":"class - ImportUserUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ImportUserUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/import-user.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n importUserId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n importUserId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of an importuser object, that matches an internal user with an external user.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/import-user.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class ImportUserUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of an importuser object, that matches an internal user with an external user.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\timportUserId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/InlineAttachment.html":{"url":"interfaces/InlineAttachment.html","title":"interface - InlineAttachment","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n InlineAttachment\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n \n Extends\n \n \n MailAttachment\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contentDisposition\n \n \n \n \n contentId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n contentDisposition\n \n \n \n \n \n \n \n \n contentDisposition: \n\n \n \n\n\n\n\n\n\n\n \n \n \n \n \n \n \n contentId\n \n \n \n \n \n \n \n \n contentId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/InterceptorModule.html":{"url":"modules/InterceptorModule.html","title":"module - InterceptorModule","body":"\n \n\n\n\n\n Modules\n InterceptorModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/interceptor/interceptor.module.ts\n \n\n\n\n \n Description\n \n \n \nGlobal Interceptor setup\n\nHere, we globally apply\n\nvalidate input data using @ClassSerializerInterceptor\nset a timeout for requests using @TimeoutInterceptor\n\n\n \n\n\n \n \n \n \n\n\n \n\n\n \n import { ClassSerializerInterceptor, Module } from '@nestjs/common';\nimport { APP_INTERCEPTOR } from '@nestjs/core';\nimport { IInterceptorConfig, TimeoutInterceptor } from '@shared/common';\nimport { ConfigService } from '@nestjs/config';\n\n/** *********************************************\n * Global Interceptor setup\n * **********************************************\n * Here, we globally apply\n * - validate input data using @ClassSerializerInterceptor\n * - set a timeout for requests using @TimeoutInterceptor\n */\n@Module({\n\tproviders: [\n\t\t{\n\t\t\tprovide: APP_INTERCEPTOR,\n\t\t\tuseClass: ClassSerializerInterceptor,\n\t\t},\n\t\t{\n\t\t\tprovide: APP_INTERCEPTOR, // TODO remove (for testing)\n\t\t\tuseFactory: (configService: ConfigService) => {\n\t\t\t\tconst timeout = configService.get('INCOMING_REQUEST_TIMEOUT');\n\t\t\t\treturn new TimeoutInterceptor(timeout);\n\t\t\t},\n\t\t\tinject: [ConfigService],\n\t\t},\n\t],\n})\nexport class InterceptorModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/IntrospectResponse.html":{"url":"interfaces/IntrospectResponse.html","title":"interface - IntrospectResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n IntrospectResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/introspect.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n active\n \n \n \n Optional\n \n aud\n \n \n \n Optional\n \n client_id\n \n \n \n Optional\n \n exp\n \n \n \n Optional\n \n ext\n \n \n \n Optional\n \n iat\n \n \n \n Optional\n \n iss\n \n \n \n Optional\n \n nbf\n \n \n \n Optional\n \n obfuscated_subject\n \n \n \n Optional\n \n scope\n \n \n \n Optional\n \n sub\n \n \n \n Optional\n \n token_type\n \n \n \n Optional\n \n token_use\n \n \n \n Optional\n \n username\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n active\n \n \n \n \n \n \n \n \n active: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n aud\n \n \n \n \n \n \n \n \n aud: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n client_id\n \n \n \n \n \n \n \n \n client_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n exp\n \n \n \n \n \n \n \n \n exp: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ext\n \n \n \n \n \n \n \n \n ext: object\n\n \n \n\n\n \n \n Type : object\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n iat\n \n \n \n \n \n \n \n \n iat: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n iss\n \n \n \n \n \n \n \n \n iss: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n nbf\n \n \n \n \n \n \n \n \n nbf: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n obfuscated_subject\n \n \n \n \n \n \n \n \n obfuscated_subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n \n \n scope: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n sub\n \n \n \n \n \n \n \n \n sub: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n token_type\n \n \n \n \n \n \n \n \n token_type: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n token_use\n \n \n \n \n \n \n \n \n token_use: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n \n \n username: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface IntrospectResponse {\n\tactive: boolean;\n\n\taud?: string[];\n\n\tclient_id?: string;\n\n\texp?: number;\n\n\text?: object;\n\n\tiat?: number;\n\n\tiss?: string;\n\n\tnbf?: number;\n\n\tobfuscated_subject?: string;\n\n\tscope?: string;\n\n\tsub?: string;\n\n\ttoken_type?: string;\n\n\ttoken_use?: string;\n\n\tusername?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/InvalidOriginForLogoutUrlLoggableException.html":{"url":"classes/InvalidOriginForLogoutUrlLoggableException.html","title":"class - InvalidOriginForLogoutUrlLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n InvalidOriginForLogoutUrlLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/error/invalid-origin-for-logout-url.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BadRequestException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logoutUrl: string, origin: string | undefined)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/error/invalid-origin-for-logout-url.loggable-exception.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logoutUrl\n \n \n string\n \n \n \n No\n \n \n \n \n origin\n \n \n string | undefined\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/error/invalid-origin-for-logout-url.loggable-exception.ts:9\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class InvalidOriginForLogoutUrlLoggableException extends BadRequestException implements Loggable {\n\tconstructor(private readonly logoutUrl: string, private readonly origin: string | undefined) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'INVALID_ORIGIN_FOR_LOGOUT_URL',\n\t\t\tmessage: 'The provided logoutUrl is from the wrong domain. Only URLs from the origin of the request can be used.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\treceived: new URL(this.logoutUrl).origin,\n\t\t\t\texpected: this.origin,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/IservMapper.html":{"url":"classes/IservMapper.html","title":"class - IservMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n IservMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/iserv/iserv-do.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToExternalSchoolDto\n \n \n Static\n mapToExternalUserDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToExternalSchoolDto\n \n \n \n \n \n \n \n mapToExternalSchoolDto(schoolDO: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/iserv/iserv-do.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalSchoolDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToExternalUserDto\n \n \n \n \n \n \n \n mapToExternalUserDto(userDO: UserDO, roleNames: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/iserv/iserv-do.mapper.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userDO\n \n UserDO\n \n\n \n No\n \n\n\n \n \n roleNames\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalUserDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LegacySchoolDo, RoleName, UserDO } from '@shared/domain';\nimport { ExternalSchoolDto, ExternalUserDto } from '../../dto';\n\nexport class IservMapper {\n\tstatic mapToExternalSchoolDto(schoolDO: LegacySchoolDo): ExternalSchoolDto {\n\t\treturn new ExternalSchoolDto({\n\t\t\tname: schoolDO.name,\n\t\t\texternalId: schoolDO.externalId || '',\n\t\t\tofficialSchoolNumber: schoolDO.officialSchoolNumber,\n\t\t});\n\t}\n\n\tstatic mapToExternalUserDto(userDO: UserDO, roleNames: RoleName[]): ExternalUserDto {\n\t\treturn new ExternalUserDto({\n\t\t\tfirstName: userDO.firstName,\n\t\t\tlastName: userDO.lastName,\n\t\t\temail: userDO.email,\n\t\t\troles: roleNames,\n\t\t\texternalId: userDO.externalId || '',\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/IservProvisioningStrategy.html":{"url":"injectables/IservProvisioningStrategy.html","title":"injectable - IservProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n IservProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts\n \n\n\n\n \n Extends\n \n \n ProvisioningStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n apply\n \n \n Async\n getAdditionalErrorInfo\n \n \n \n Async\n getData\n \n \n getType\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, userService: UserService)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:61\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getAdditionalErrorInfo\n \n \n \n \n \n \n \n getAdditionalErrorInfo(email: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/iserv/iserv.strategy.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:28\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getType\n \n \n \n \n \n \ngetType()\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:24\n\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { LegacySchoolDo, RoleName, RoleReference, User, UserDO } from '@shared/domain';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { OAuthSSOError } from '@src/modules/oauth/error/oauth-sso.error';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserService } from '@src/modules/user';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport {\n\tExternalSchoolDto,\n\tExternalUserDto,\n\tOauthDataDto,\n\tOauthDataStrategyInputDto,\n\tProvisioningDto,\n} from '../../dto';\nimport { ProvisioningStrategy } from '../base.strategy';\nimport { IservMapper } from './iserv-do.mapper';\n\n@Injectable()\nexport class IservProvisioningStrategy extends ProvisioningStrategy {\n\tconstructor(private readonly schoolService: LegacySchoolService, private readonly userService: UserService) {\n\t\tsuper();\n\t}\n\n\tgetType(): SystemProvisioningStrategy {\n\t\treturn SystemProvisioningStrategy.ISERV;\n\t}\n\n\toverride async getData(input: OauthDataStrategyInputDto): Promise {\n\t\tconst idToken: JwtPayload | null = jwt.decode(input.idToken, { json: true });\n\n\t\tif (!idToken || !idToken.uuid) {\n\t\t\tthrow new OAuthSSOError('Failed to extract uuid', 'sso_jwt_problem');\n\t\t}\n\n\t\tconst ldapUser: UserDO | null = await this.userService.findByExternalId(\n\t\t\tidToken.uuid as string,\n\t\t\tinput.system.systemId\n\t\t);\n\t\tif (!ldapUser) {\n\t\t\tconst additionalInfo: string = await this.getAdditionalErrorInfo(idToken.email as string | undefined);\n\t\t\tthrow new OAuthSSOError(\n\t\t\t\t`Failed to find user with Id ${idToken.uuid as string}${additionalInfo}`,\n\t\t\t\t'sso_user_notfound'\n\t\t\t);\n\t\t}\n\n\t\tconst ldapSchool: LegacySchoolDo = await this.schoolService.getSchoolById(ldapUser.schoolId);\n\t\tconst roleNames: RoleName[] = ldapUser.roles.map((roleRef: RoleReference): RoleName => roleRef.name);\n\n\t\tconst externalUser: ExternalUserDto = IservMapper.mapToExternalUserDto(ldapUser, roleNames);\n\t\tconst externalSchool: ExternalSchoolDto = IservMapper.mapToExternalSchoolDto(ldapSchool);\n\n\t\tconst oauthData: OauthDataDto = new OauthDataDto({\n\t\t\tsystem: input.system,\n\t\t\texternalUser,\n\t\t\texternalSchool,\n\t\t});\n\t\treturn oauthData;\n\t}\n\n\toverride apply(data: OauthDataDto): Promise {\n\t\treturn Promise.resolve(new ProvisioningDto({ externalUserId: data.externalUser?.externalId }));\n\t}\n\n\tasync getAdditionalErrorInfo(email: string | undefined): Promise {\n\t\tif (email) {\n\t\t\tconst usersWithEmail: User[] = await this.userService.findByEmail(email);\n\t\t\tif (usersWithEmail.length > 0) {\n\t\t\t\tconst user: User = usersWithEmail[0];\n\t\t\t\treturn ` [schoolId: ${user.school.id}, currentLdapId: ${user.externalId ?? ''}]`;\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/JwtAuthGuard.html":{"url":"injectables/JwtAuthGuard.html","title":"injectable - JwtAuthGuard","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n JwtAuthGuard\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/guard/jwt-auth.guard.ts\n \n\n\n\n\n\n\n\n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthGuard } from '@nestjs/passport';\n\n@Injectable()\nexport class JwtAuthGuard extends AuthGuard('jwt') {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/JwtConstants.html":{"url":"interfaces/JwtConstants.html","title":"interface - JwtConstants","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n JwtConstants\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/constants.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n jwtOptions\n \n \n \n \n secret\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n jwtOptions\n \n \n \n \n \n \n \n \n jwtOptions: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n \n \n secret: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import externalAuthConfig = require('../../../../../src/services/authentication/configuration');\n\nconst { authConfig } = externalAuthConfig;\n\n/*\n\tTODO: look at existing keys, vs implemented keys\n\tsupport: true,\n\tsupportUserId,\n\taccountId,\n\tuserId,\n\tiat,\n\texp,\n\taud: this.aud,\n\tiss: 'feathers',\n\tsub: accountId,\n\tjti: `support_${ObjectId()}`,\n*/\nexport interface JwtConstants {\n\tsecret: string;\n\tjwtOptions: {\n\t\theader: { typ: string };\n\t\taudience: string;\n\t\tissuer: string;\n\t\talgorithm: string;\n\t\texpiresIn: string;\n\t};\n}\n\nexport const jwtConstants: JwtConstants = {\n\tsecret: authConfig.secret as string,\n\tjwtOptions: authConfig.jwtOptions,\n};\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/JwtExtractor.html":{"url":"classes/JwtExtractor.html","title":"class - JwtExtractor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n JwtExtractor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/jwt-extractor.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n fromCookie\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n fromCookie\n \n \n \n \n \n \n \n fromCookie(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-extractor.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : JwtFromRequestFunction\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Request } from 'express';\nimport { JwtFromRequestFunction } from 'passport-jwt';\nimport cookie from 'cookie';\n\nexport class JwtExtractor {\n\tstatic fromCookie(name: string): JwtFromRequestFunction {\n\t\treturn (request: Request) => {\n\t\t\tlet token: string | null = null;\n\t\t\tconst cookies = cookie.parse(request.headers.cookie || '');\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (cookies && cookies[name]) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\ttoken = cookies[name];\n\t\t\t}\n\t\t\treturn token;\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/JwtPayload.html":{"url":"interfaces/JwtPayload.html","title":"interface - JwtPayload","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n JwtPayload\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/interface/jwt-payload.ts\n \n\n\n\n \n Extends\n \n \n CreateJwtPayload\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n aud\n \n \n \n \n exp\n \n \n \n \n iat\n \n \n \n \n iss\n \n \n \n \n jti\n \n \n \n \n sub\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n aud\n \n \n \n \n \n \n \n \n aud: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n audience\n\n \n \n \n \n \n \n \n \n \n exp\n \n \n \n \n \n \n \n \n exp: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n expiration in // TODO\n\n \n \n \n \n \n \n \n \n \n iat\n \n \n \n \n \n \n \n \n iat: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n iss\n \n \n \n \n \n \n \n \n iss: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n issuer\n\n \n \n \n \n \n \n \n \n \n jti\n \n \n \n \n \n \n \n \n jti: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n sub\n \n \n \n \n \n \n \n \n sub: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n // TODO\n\n \n \n \n \n \n \n\n\n \n export interface CreateJwtPayload {\n\taccountId: string;\n\tuserId: string;\n\tschoolId: string;\n\troles: string[];\n\tsystemId?: string; // without this the user needs to change his PW during first login\n\tsupport?: boolean;\n}\n\nexport interface JwtPayload extends CreateJwtPayload {\n\t/** audience */\n\taud: string;\n\t/** expiration in // TODO\n\t *\n\t */\n\texp: number;\n\tiat: number;\n\t/** issuer */\n\tiss: string;\n\tjti: string;\n\n\t/** // TODO\n\t *\n\t */\n\tsub: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/JwtStrategy.html":{"url":"injectables/JwtStrategy.html","title":"injectable - JwtStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n JwtStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/jwt.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(jwtValidationAdapter: JwtValidationAdapter)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt.strategy.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwtValidationAdapter\n \n \n JwtValidationAdapter\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(payload: JwtPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt.strategy.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n JwtPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { PassportStrategy } from '@nestjs/passport';\nimport { ExtractJwt, Strategy } from 'passport-jwt';\nimport { jwtConstants } from '../constants';\nimport { ICurrentUser } from '../interface';\nimport { JwtPayload } from '../interface/jwt-payload';\nimport { CurrentUserMapper } from '../mapper';\nimport { JwtExtractor } from './jwt-extractor';\nimport { JwtValidationAdapter } from './jwt-validation.adapter';\n\n@Injectable()\nexport class JwtStrategy extends PassportStrategy(Strategy) {\n\tconstructor(private readonly jwtValidationAdapter: JwtValidationAdapter) {\n\t\tsuper({\n\t\t\tjwtFromRequest: ExtractJwt.fromExtractors([\n\t\t\t\tExtractJwt.fromAuthHeaderAsBearerToken(),\n\t\t\t\tJwtExtractor.fromCookie('jwt'),\n\t\t\t]),\n\t\t\tignoreExpiration: false,\n\t\t\tsecretOrKey: jwtConstants.secret,\n\t\t\t...jwtConstants.jwtOptions,\n\t\t});\n\t}\n\n\tasync validate(payload: JwtPayload): Promise {\n\t\tconst { accountId, jti } = payload;\n\t\t// check user exists\n\t\ttry {\n\t\t\t// TODO: check user/account is active and has one role\n\t\t\t// check jwt is whitelisted and extend whitelist entry\n\t\t\tawait this.jwtValidationAdapter.isWhitelisted(accountId, jti);\n\t\t\tconst currentUser = CurrentUserMapper.jwtToICurrentUser(payload);\n\t\t\treturn currentUser;\n\t\t} catch (err) {\n\t\t\tthrow new UnauthorizedException('Unauthorized.', { cause: err as Error });\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/JwtTestFactory.html":{"url":"classes/JwtTestFactory.html","title":"class - JwtTestFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n JwtTestFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/jwt.test.factory.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n createJwt\n \n \n Static\n getPublicKey\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n createJwt\n \n \n \n \n \n \n \n createJwt(params?: CreateJwtParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/jwt.test.factory.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n CreateJwtParams\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n getPublicKey\n \n \n \n \n \n \n \n getPublicKey()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/jwt.test.factory.ts:18\n \n \n\n\n \n \n\n \n Returns : string | Buffer\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import jwt from 'jsonwebtoken';\nimport crypto, { KeyPairKeyObjectResult } from 'crypto';\n\nconst keyPair: KeyPairKeyObjectResult = crypto.generateKeyPairSync('rsa', { modulusLength: 4096 });\nconst publicKey: string | Buffer = keyPair.publicKey.export({ type: 'pkcs1', format: 'pem' });\nconst privateKey: string | Buffer = keyPair.privateKey.export({ type: 'pkcs1', format: 'pem' });\n\ninterface CreateJwtParams {\n\tprivateKey?: string | Buffer;\n\tsub?: string;\n\tiss?: string;\n\taud?: string;\n\taccountId?: string;\n\texternal_sub?: string;\n}\n\nexport class JwtTestFactory {\n\tpublic static getPublicKey(): string | Buffer {\n\t\treturn publicKey;\n\t}\n\n\tpublic static createJwt(params?: CreateJwtParams): string {\n\t\tconst validJwt = jwt.sign(\n\t\t\t{\n\t\t\t\tsub: params?.sub ?? 'testUser',\n\t\t\t\tiss: params?.iss ?? 'issuer',\n\t\t\t\taud: params?.aud ?? 'audience',\n\t\t\t\tjti: 'jti',\n\t\t\t\tiat: Date.now(),\n\t\t\t\texp: Date.now() + 100000,\n\t\t\t\taccountId: params?.accountId ?? 'accountId',\n\t\t\t\texternal_sub: params?.external_sub ?? 'externalSub',\n\t\t\t},\n\t\t\tparams?.privateKey ?? privateKey,\n\t\t\t{\n\t\t\t\talgorithm: 'RS256',\n\t\t\t}\n\t\t);\n\t\treturn validJwt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/JwtValidationAdapter.html":{"url":"injectables/JwtValidationAdapter.html","title":"injectable - JwtValidationAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n JwtValidationAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n addToWhitelist\n \n \n Async\n isWhitelisted\n \n \n Async\n removeFromWhitelist\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(cacheManager: Cache, cacheService: CacheService)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n cacheManager\n \n \n Cache\n \n \n \n No\n \n \n \n \n cacheService\n \n \n CacheService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n addToWhitelist\n \n \n \n \n \n \n \n addToWhitelist(accountId: string, jti: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n jti\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n isWhitelisted\n \n \n \n \n \n \n \n isWhitelisted(accountId: string, jti: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts:25\n \n \n\n\n \n \n When validating a jwt it must be added to a whitelist, here we check this.\nWhen the jwt is validated, the expiration time will be extended with this call.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n users account id\n\n \n \n \n jti\n \n string\n \n\n \n No\n \n\n\n \n jwt id (here required to make jwt identifiers identical in redis)\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeFromWhitelist\n \n \n \n \n \n \n \n removeFromWhitelist(accountId: string, jti: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/jwt-validation.adapter.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountId\n \n string\n \n\n \n No\n \n\n\n \n \n jti\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { CACHE_MANAGER } from '@nestjs/cache-manager';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { CacheService } from '@shared/infra/cache';\nimport { CacheStoreType } from '@shared/infra/cache/interface/cache-store-type.enum';\nimport {\n\taddTokenToWhitelist,\n\tcreateRedisIdentifierFromJwtData,\n\tensureTokenIsWhitelisted,\n} from '@src/imports-from-feathers';\nimport { Cache } from 'cache-manager';\n\n@Injectable()\nexport class JwtValidationAdapter {\n\tconstructor(\n\t\t@Inject(CACHE_MANAGER) private readonly cacheManager: Cache,\n\t\tprivate readonly cacheService: CacheService\n\t) {}\n\n\t/**\n\t * When validating a jwt it must be added to a whitelist, here we check this.\n\t * When the jwt is validated, the expiration time will be extended with this call.\n\t * @param accountId users account id\n\t * @param jti jwt id (here required to make jwt identifiers identical in redis)\n\t */\n\tasync isWhitelisted(accountId: string, jti: string): Promise {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\tawait ensureTokenIsWhitelisted({ accountId, jti, privateDevice: false });\n\t}\n\n\tasync addToWhitelist(accountId: string, jti: string): Promise {\n\t\tconst redisIdentifier = createRedisIdentifierFromJwtData(accountId, jti);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\tawait addTokenToWhitelist(redisIdentifier);\n\t}\n\n\tasync removeFromWhitelist(accountId: string, jti: string): Promise {\n\t\tif (this.cacheService.getStoreType() === CacheStoreType.REDIS) {\n\t\t\tconst redisIdentifier: string = createRedisIdentifierFromJwtData(accountId, jti);\n\t\t\tawait this.cacheManager.del(redisIdentifier);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/KeycloakAdministration.html":{"url":"classes/KeycloakAdministration.html","title":"class - KeycloakAdministration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n KeycloakAdministration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-administration/keycloak-config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n keycloakSettings\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n keycloakSettings\n \n \n \n \n \n \n Default value : (Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean)\n\t\t? ({\n\t\t\t\tbaseUrl: Configuration.get('IDENTITY_MANAGEMENT__URI') as string,\n\t\t\t\trealmName: Configuration.get('IDENTITY_MANAGEMENT__TENANT') as string,\n\t\t\t\tclientId: Configuration.get('IDENTITY_MANAGEMENT__CLIENTID') as string,\n\t\t\t\tcredentials: {\n\t\t\t\t\tgrantType: 'password',\n\t\t\t\t\tusername: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_USER') as string,\n\t\t\t\t\tpassword: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_PASSWORD') as string,\n\t\t\t\t\tclientId: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_CLIENTID') as string,\n\t\t\t\t},\n\t\t } as IKeycloakSettings)\n\t\t: ({} as IKeycloakSettings)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/keycloak-config.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { IKeycloakSettings } from './interface/keycloak-settings.interface';\n\nexport default class KeycloakAdministration {\n\tstatic keycloakSettings = (Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean)\n\t\t? ({\n\t\t\t\tbaseUrl: Configuration.get('IDENTITY_MANAGEMENT__URI') as string,\n\t\t\t\trealmName: Configuration.get('IDENTITY_MANAGEMENT__TENANT') as string,\n\t\t\t\tclientId: Configuration.get('IDENTITY_MANAGEMENT__CLIENTID') as string,\n\t\t\t\tcredentials: {\n\t\t\t\t\tgrantType: 'password',\n\t\t\t\t\tusername: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_USER') as string,\n\t\t\t\t\tpassword: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_PASSWORD') as string,\n\t\t\t\t\tclientId: Configuration.get('IDENTITY_MANAGEMENT__ADMIN_CLIENTID') as string,\n\t\t\t\t},\n\t\t } as IKeycloakSettings)\n\t\t: ({} as IKeycloakSettings);\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/KeycloakAdministrationModule.html":{"url":"modules/KeycloakAdministrationModule.html","title":"module - KeycloakAdministrationModule","body":"\n \n\n\n\n\n Modules\n KeycloakAdministrationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_KeycloakAdministrationModule\n\n\n\ncluster_KeycloakAdministrationModule_providers\n\n\n\ncluster_KeycloakAdministrationModule_exports\n\n\n\n\nKeycloakAdministrationService \n\nKeycloakAdministrationService \n\n\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationService -->\n\nKeycloakAdministrationModule->KeycloakAdministrationService \n\n\n\n\n\nKeycloakAdministrationService\n\nKeycloakAdministrationService\n\nKeycloakAdministrationModule -->\n\nKeycloakAdministrationService->KeycloakAdministrationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-administration/keycloak-administration.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n KeycloakAdministrationService\n \n \n \n \n Exports\n \n \n KeycloakAdministrationService\n \n \n \n \n \n\n\n \n\n\n \n import KeycloakAdminClient from '@keycloak/keycloak-admin-client-cjs/keycloak-admin-client-cjs-index';\nimport { Module } from '@nestjs/common';\nimport { KeycloakSettings } from './interface/keycloak-settings.interface';\nimport KeycloakConfiguration from './keycloak-config';\nimport { KeycloakAdministrationService } from './service/keycloak-administration.service';\n\n@Module({\n\tcontrollers: [],\n\tproviders: [\n\t\tKeycloakAdminClient,\n\t\t{\n\t\t\tprovide: KeycloakSettings,\n\t\t\tuseValue: KeycloakConfiguration.keycloakSettings,\n\t\t},\n\t\tKeycloakAdministrationService,\n\t],\n\texports: [KeycloakAdministrationService],\n})\nexport class KeycloakAdministrationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakAdministrationService.html":{"url":"injectables/KeycloakAdministrationService.html","title":"injectable - KeycloakAdministrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakAdministrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n AUTHORIZATION_TIMEBOX_MS\n \n \n Private\n lastAuthorizationTime\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n authorizeAccess\n \n \n Public\n Async\n callKcAdminClient\n \n \n Public\n getAdminUser\n \n \n Public\n getClientId\n \n \n Public\n Async\n getClientSecret\n \n \n Public\n getWellKnownUrl\n \n \n Public\n resetLastAuthorizationTime\n \n \n Public\n Async\n setPasswordPolicy\n \n \n Public\n Async\n testKcConnection\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Public\n constructor(kcAdminClient: KeycloakAdminClient, kcSettings: IKeycloakSettings)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdminClient\n \n \n KeycloakAdminClient\n \n \n \n No\n \n \n \n \n kcSettings\n \n \n IKeycloakSettings\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n authorizeAccess\n \n \n \n \n \n \n \n authorizeAccess()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:66\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n callKcAdminClient\n \n \n \n \n \n \n \n callKcAdminClient()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:21\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n getAdminUser\n \n \n \n \n \n \n \n getAdminUser()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:39\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n getClientId\n \n \n \n \n \n \n \n getClientId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:43\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getClientSecret\n \n \n \n \n \n \n \n getClientSecret()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:47\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n getWellKnownUrl\n \n \n \n \n \n \n \n getWellKnownUrl()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:35\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n resetLastAuthorizationTime\n \n \n \n \n \n \n \n resetLastAuthorizationTime()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:62\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n setPasswordPolicy\n \n \n \n \n \n \n \n setPasswordPolicy()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:57\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n testKcConnection\n \n \n \n \n \n \n \n testKcConnection()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:26\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n AUTHORIZATION_TIMEBOX_MS\n \n \n \n \n \n \n Default value : 59 * 1000\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n lastAuthorizationTime\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 0\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-administration/service/keycloak-administration.service.ts:7\n \n \n\n\n \n \n\n\n \n\n\n \n import KeycloakAdminClient from '@keycloak/keycloak-admin-client-cjs/keycloak-admin-client-cjs-index';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { IKeycloakSettings, KeycloakSettings } from '../interface/keycloak-settings.interface';\n\n@Injectable()\nexport class KeycloakAdministrationService {\n\tprivate lastAuthorizationTime = 0;\n\n\tprivate static AUTHORIZATION_TIMEBOX_MS = 59 * 1000;\n\n\tpublic constructor(\n\t\tprivate readonly kcAdminClient: KeycloakAdminClient,\n\t\t@Inject(KeycloakSettings) private readonly kcSettings: IKeycloakSettings\n\t) {\n\t\tthis.kcAdminClient.setConfig({\n\t\t\tbaseUrl: kcSettings.baseUrl,\n\t\t\trealmName: kcSettings.realmName,\n\t\t});\n\t}\n\n\tpublic async callKcAdminClient(): Promise {\n\t\tawait this.authorizeAccess();\n\t\treturn this.kcAdminClient;\n\t}\n\n\tpublic async testKcConnection(): Promise {\n\t\ttry {\n\t\t\tawait this.kcAdminClient.auth(this.kcSettings.credentials);\n\t\t} catch (err) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic getWellKnownUrl(): string {\n\t\treturn `${this.kcSettings.baseUrl}/realms/${this.kcSettings.realmName}/.well-known/openid-configuration`;\n\t}\n\n\tpublic getAdminUser(): string {\n\t\treturn this.kcSettings.credentials.username;\n\t}\n\n\tpublic getClientId(): string {\n\t\treturn this.kcSettings.clientId;\n\t}\n\n\tpublic async getClientSecret(): Promise {\n\t\tconst kc = await this.callKcAdminClient();\n\t\tconst clientInternalId = (await kc.clients.find({ clientId: this.kcSettings.clientId }))[0]?.id;\n\t\tif (clientInternalId) {\n\t\t\tconst clientSecret = await kc.clients.getClientSecret({ id: clientInternalId });\n\t\t\treturn clientSecret.value ?? '';\n\t\t}\n\t\treturn '';\n\t}\n\n\tpublic async setPasswordPolicy() {\n\t\tconst kc = await this.callKcAdminClient();\n\t\tawait kc.realms.update({ realm: this.kcSettings.realmName }, { passwordPolicy: 'hashIterations(310000)' });\n\t}\n\n\tpublic resetLastAuthorizationTime(): void {\n\t\tthis.lastAuthorizationTime = 0;\n\t}\n\n\tprivate async authorizeAccess() {\n\t\tconst elapsedTimeMilliseconds = new Date().getTime() - this.lastAuthorizationTime;\n\t\tif (elapsedTimeMilliseconds > KeycloakAdministrationService.AUTHORIZATION_TIMEBOX_MS) {\n\t\t\tawait this.kcAdminClient.auth(this.kcSettings.credentials);\n\t\t\tthis.lastAuthorizationTime = new Date().getTime();\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/KeycloakConfiguration.html":{"url":"classes/KeycloakConfiguration.html","title":"class - KeycloakConfiguration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n KeycloakConfiguration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/keycloak-config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n keycloakInputFiles\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n keycloakInputFiles\n \n \n \n \n \n \n Type : IKeycloakConfigurationInputFiles\n\n \n \n \n \n Default value : {\n\t\taccountsFile: './backup/setup/accounts.json',\n\t\tusersFile: './backup/setup/users.json',\n\t}\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/keycloak-config.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IKeycloakConfigurationInputFiles } from './interface/keycloak-configuration-input-files.interface';\n\nexport default class KeycloakConfiguration {\n\tstatic keycloakInputFiles: IKeycloakConfigurationInputFiles = {\n\t\taccountsFile: './backup/setup/accounts.json',\n\t\tusersFile: './backup/setup/users.json',\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/KeycloakConfigurationModule.html":{"url":"modules/KeycloakConfigurationModule.html","title":"module - KeycloakConfigurationModule","body":"\n \n\n\n\n\n Modules\n KeycloakConfigurationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_KeycloakConfigurationModule\n\n\n\ncluster_KeycloakConfigurationModule_providers\n\n\n\ncluster_KeycloakConfigurationModule_exports\n\n\n\ncluster_KeycloakConfigurationModule_imports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nKeycloakConfigurationModule\n\nKeycloakConfigurationModule\n\nKeycloakConfigurationModule -->\n\nAccountModule->KeycloakConfigurationModule\n\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\nKeycloakConfigurationModule -->\n\nConsoleWriterModule->KeycloakConfigurationModule\n\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nKeycloakConfigurationModule -->\n\nEncryptionModule->KeycloakConfigurationModule\n\n\n\n\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationModule\n\nKeycloakConfigurationModule -->\n\nKeycloakAdministrationModule->KeycloakConfigurationModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nKeycloakConfigurationModule -->\n\nLoggerModule->KeycloakConfigurationModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nKeycloakConfigurationModule -->\n\nSystemModule->KeycloakConfigurationModule\n\n\n\n\n\nKeycloakConfigurationService \n\nKeycloakConfigurationService \n\nKeycloakConfigurationService -->\n\nKeycloakConfigurationModule->KeycloakConfigurationService \n\n\n\n\n\nKeycloakConsole \n\nKeycloakConsole \n\nKeycloakConsole -->\n\nKeycloakConfigurationModule->KeycloakConsole \n\n\n\n\n\nKeycloakSeedService \n\nKeycloakSeedService \n\nKeycloakSeedService -->\n\nKeycloakConfigurationModule->KeycloakSeedService \n\n\n\n\n\nKeycloakConfigurationService\n\nKeycloakConfigurationService\n\nKeycloakConfigurationModule -->\n\nKeycloakConfigurationService->KeycloakConfigurationModule\n\n\n\n\n\nKeycloakConfigurationUc\n\nKeycloakConfigurationUc\n\nKeycloakConfigurationModule -->\n\nKeycloakConfigurationUc->KeycloakConfigurationModule\n\n\n\n\n\nKeycloakMigrationService\n\nKeycloakMigrationService\n\nKeycloakConfigurationModule -->\n\nKeycloakMigrationService->KeycloakConfigurationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/keycloak-configuration.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n KeycloakConfigurationService\n \n \n KeycloakConfigurationUc\n \n \n KeycloakMigrationService\n \n \n \n \n Controllers\n \n \n KeycloakManagementController\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n ConsoleWriterModule\n \n \n EncryptionModule\n \n \n KeycloakAdministrationModule\n \n \n LoggerModule\n \n \n SystemModule\n \n \n \n \n Exports\n \n \n KeycloakConfigurationService\n \n \n KeycloakConsole\n \n \n KeycloakSeedService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { ConsoleWriterModule } from '@shared/infra/console';\nimport { AccountModule, SystemModule } from '@src/modules';\nimport { KeycloakAdministrationModule } from '../keycloak-administration/keycloak-administration.module';\nimport { KeycloakConsole } from './console/keycloak-configuration.console';\nimport { KeycloakConfigurationInputFiles } from './interface/keycloak-configuration-input-files.interface';\nimport KeycloakConfiguration from './keycloak-config';\nimport { OidcIdentityProviderMapper } from './mapper/identity-provider.mapper';\nimport { KeycloakConfigurationService } from './service/keycloak-configuration.service';\nimport { KeycloakSeedService } from './service/keycloak-seed.service';\nimport { KeycloakConfigurationUc } from './uc/keycloak-configuration.uc';\nimport { KeycloakManagementController } from './controller/keycloak-configuration.controller';\nimport { KeycloakMigrationService } from './service/keycloak-migration.service';\n\n@Module({\n\timports: [\n\t\tKeycloakAdministrationModule,\n\t\tLoggerModule,\n\t\tEncryptionModule,\n\t\tConsoleWriterModule,\n\t\tSystemModule,\n\t\tAccountModule,\n\t],\n\tcontrollers: [KeycloakManagementController],\n\tproviders: [\n\t\t{\n\t\t\tprovide: KeycloakConfigurationInputFiles,\n\t\t\tuseValue: KeycloakConfiguration.keycloakInputFiles,\n\t\t},\n\t\tOidcIdentityProviderMapper,\n\t\tKeycloakConfigurationUc,\n\t\tKeycloakConfigurationService,\n\t\tKeycloakMigrationService,\n\t\tKeycloakSeedService,\n\t\tKeycloakConsole,\n\t],\n\texports: [KeycloakConsole, KeycloakConfigurationService, KeycloakSeedService],\n})\nexport class KeycloakConfigurationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakConfigurationService.html":{"url":"injectables/KeycloakConfigurationService.html","title":"injectable - KeycloakConfigurationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakConfigurationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n addClientProtocolMappers\n \n \n Public\n Async\n configureBrokerFlows\n \n \n Public\n Async\n configureClient\n \n \n Public\n Async\n configureIdentityProviders\n \n \n Async\n configureRealm\n \n \n Private\n Async\n createIdentityProvider\n \n \n Private\n Async\n createIdpDefaultMapper\n \n \n Private\n Async\n deleteIdentityProvider\n \n \n Private\n getExternalSubClientMapperConfiguration\n \n \n Private\n getIdpMapperConfiguration\n \n \n Private\n selectConfigureAction\n \n \n Private\n Async\n updateIdentityProvider\n \n \n Private\n Async\n updateOrCreateIdpDefaultMapper\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdmin: KeycloakAdministrationService, configService: ConfigService, oidcIdentityProviderMapper: OidcIdentityProviderMapper, systemOidcService: SystemOidcService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdmin\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n oidcIdentityProviderMapper\n \n \n OidcIdentityProviderMapper\n \n \n \n No\n \n \n \n \n systemOidcService\n \n \n SystemOidcService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n addClientProtocolMappers\n \n \n \n \n \n \n \n addClientProtocolMappers(defaultClientInternalId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n defaultClientInternalId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n configureBrokerFlows\n \n \n \n \n \n \n \n configureBrokerFlows()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:34\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n configureClient\n \n \n \n \n \n \n \n configureClient()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:108\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n configureIdentityProviders\n \n \n \n \n \n \n \n configureIdentityProviders()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:128\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n configureRealm\n \n \n \n \n \n \n \n configureRealm()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:155\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createIdentityProvider\n \n \n \n \n \n \n \n createIdentityProvider(oidcConfig: OidcConfigDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:214\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfig\n \n OidcConfigDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createIdpDefaultMapper\n \n \n \n \n \n \n \n createIdpDefaultMapper(idpAlias: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:254\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idpAlias\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteIdentityProvider\n \n \n \n \n \n \n \n deleteIdentityProvider(alias: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:235\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n alias\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getExternalSubClientMapperConfiguration\n \n \n \n \n \n \n \n getExternalSubClientMapperConfiguration()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:277\n \n \n\n\n \n \n\n \n Returns : ProtocolMapperRepresentation\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n getIdpMapperConfiguration\n \n \n \n \n \n \n \n getIdpMapperConfiguration(idpAlias: string, id?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:262\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idpAlias\n \n string\n \n\n \n No\n \n\n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : IdentityProviderMapperRepresentation\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n selectConfigureAction\n \n \n \n \n \n \n \n selectConfigureAction(newConfigs: OidcConfigDto[], oldConfigs: IdentityProviderRepresentation[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:191\n \n \n\n\n \n \n decides for each system if it needs to be added, updated or deleted in keycloak\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n newConfigs\n \n OidcConfigDto[]\n \n\n \n No\n \n\n\n \n \n oldConfigs\n \n IdentityProviderRepresentation[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : {}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateIdentityProvider\n \n \n \n \n \n \n \n updateIdentityProvider(oidcConfig: OidcConfigDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:224\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfig\n \n OidcConfigDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateOrCreateIdpDefaultMapper\n \n \n \n \n \n \n \n updateOrCreateIdpDefaultMapper(idpAlias: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-configuration.service.ts:240\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idpAlias\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import AuthenticationExecutionInfoRepresentation from '@keycloak/keycloak-admin-client/lib/defs/authenticationExecutionInfoRepresentation';\nimport AuthenticationFlowRepresentation from '@keycloak/keycloak-admin-client/lib/defs/authenticationFlowRepresentation';\nimport ClientRepresentation from '@keycloak/keycloak-admin-client/lib/defs/clientRepresentation';\nimport IdentityProviderMapperRepresentation from '@keycloak/keycloak-admin-client/lib/defs/identityProviderMapperRepresentation';\nimport IdentityProviderRepresentation from '@keycloak/keycloak-admin-client/lib/defs/identityProviderRepresentation';\nimport ProtocolMapperRepresentation from '@keycloak/keycloak-admin-client/lib/defs/protocolMapperRepresentation';\nimport { Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { IServerConfig } from '@src/modules/server/server.config';\nimport { OidcConfigDto } from '@src/modules/system/service';\nimport { SystemOidcService } from '@src/modules/system/service/system-oidc.service';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\nimport { OidcIdentityProviderMapper } from '../mapper/identity-provider.mapper';\n\nenum ConfigureAction {\n\tCREATE = 'create',\n\tUPDATE = 'update',\n\tDELETE = 'delete',\n}\n\nconst flowAlias = 'Direct Broker Flow';\nconst oidcUserAttributeMapperName = 'OIDC User Attribute Mapper';\nconst oidcExternalSubMapperName = 'External Sub Mapper';\n\n@Injectable()\nexport class KeycloakConfigurationService {\n\tconstructor(\n\t\tprivate readonly kcAdmin: KeycloakAdministrationService,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly oidcIdentityProviderMapper: OidcIdentityProviderMapper,\n\t\tprivate readonly systemOidcService: SystemOidcService\n\t) {}\n\n\tpublic async configureBrokerFlows(): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst executionProviders = ['idp-create-user-if-unique', 'idp-auto-link'];\n\t\tconst getFlowsRequest = kc.realms.makeRequest({\n\t\t\tmethod: 'GET',\n\t\t\tpath: '/{realmName}/authentication/flows',\n\t\t\turlParamKeys: ['realmName'],\n\t\t});\n\t\tconst flows = await getFlowsRequest({ realmName: kc.realmName });\n\t\tconst flow = flows.find((tempFlow) => tempFlow.alias === flowAlias);\n\t\tif (flow && flow.id) {\n\t\t\treturn;\n\t\t}\n\t\tconst createFlowRequest = kc.realms.makeRequest({\n\t\t\tmethod: 'POST',\n\t\t\tpath: '/{realmName}/authentication/flows',\n\t\t\turlParamKeys: ['realmName'],\n\t\t});\n\t\tconst getFlowExecutionsRequest = kc.realms.makeRequest({\n\t\t\tmethod: 'GET',\n\t\t\tpath: '/{realmName}/authentication/flows/{flowAlias}/executions',\n\t\t\turlParamKeys: ['realmName', 'flowAlias'],\n\t\t});\n\t\tconst addExecutionRequest = kc.realms.makeRequest(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\tpath: '/{realmName}/authentication/flows/{flowAlias}/executions/execution',\n\t\t\t\turlParamKeys: ['realmName', 'flowAlias'],\n\t\t\t}\n\t\t);\n\t\tconst updateExecutionRequest = kc.realms.makeRequest({\n\t\t\tmethod: 'PUT',\n\t\t\tpath: '/{realmName}/authentication/flows/{flowAlias}/executions',\n\t\t\turlParamKeys: ['realmName', 'flowAlias'],\n\t\t});\n\t\tawait createFlowRequest({\n\t\t\trealmName: kc.realmName,\n\t\t\talias: flowAlias,\n\t\t\tdescription: 'First broker login which automatically creates or maps accounts.',\n\t\t\tproviderId: 'basic-flow',\n\t\t\ttopLevel: true,\n\t\t\tbuiltIn: false,\n\t\t});\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const executionProvider of executionProviders) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tawait addExecutionRequest({\n\t\t\t\trealmName: kc.realmName,\n\t\t\t\tflowAlias,\n\t\t\t\tprovider: executionProvider,\n\t\t\t});\n\t\t}\n\t\tconst executions = await getFlowExecutionsRequest({\n\t\t\trealmName: kc.realmName,\n\t\t\tflowAlias,\n\t\t});\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const execution of executions) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tawait updateExecutionRequest({\n\t\t\t\trealmName: kc.realmName,\n\t\t\t\tflowAlias,\n\t\t\t\tid: execution.id,\n\t\t\t\trequirement: 'ALTERNATIVE',\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic async configureClient(): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst scDomain = this.configService.get('SC_DOMAIN');\n\t\tconst redirectUri = scDomain === 'localhost' ? 'http://localhost:3030/' : `https://${scDomain}/`;\n\t\tconst cr: ClientRepresentation = {\n\t\t\tclientId: this.kcAdmin.getClientId(),\n\t\t\tenabled: true,\n\t\t\tprotocol: 'openid-connect',\n\t\t\tpublicClient: false,\n\t\t\tredirectUris: [`${redirectUri}*`],\n\t\t};\n\t\tlet defaultClientInternalId = (await kc.clients.find({ clientId: this.kcAdmin.getClientId() }))[0]?.id;\n\t\tif (!defaultClientInternalId) {\n\t\t\t({ id: defaultClientInternalId } = await kc.clients.create(cr));\n\t\t} else {\n\t\t\tawait kc.clients.update({ id: defaultClientInternalId }, cr);\n\t\t}\n\t\tawait this.addClientProtocolMappers(defaultClientInternalId);\n\t}\n\n\tpublic async configureIdentityProviders(): Promise {\n\t\tlet count = 0;\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst oldConfigs = await kc.identityProviders.find();\n\t\tconst newConfigs = await this.systemOidcService.findAll();\n\t\tconst configureActions = this.selectConfigureAction(newConfigs, oldConfigs);\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const configureAction of configureActions) {\n\t\t\tif (configureAction.action === ConfigureAction.CREATE) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tawait this.createIdentityProvider(configureAction.config);\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tif (configureAction.action === ConfigureAction.UPDATE) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tawait this.updateIdentityProvider(configureAction.config);\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t\tif (configureAction.action === ConfigureAction.DELETE) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tawait this.deleteIdentityProvider(configureAction.alias);\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n\n\tasync configureRealm(): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tawait kc.realms.update(\n\t\t\t{\n\t\t\t\trealm: kc.realmName,\n\t\t\t},\n\t\t\t{\n\t\t\t\teditUsernameAllowed: true,\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate async addClientProtocolMappers(defaultClientInternalId: string) {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst allMappers = await kc.clients.listProtocolMappers({ id: defaultClientInternalId });\n\t\tconst defaultMapper = allMappers.find((mapper) => mapper.name === oidcExternalSubMapperName);\n\t\tif (defaultMapper?.id) {\n\t\t\tawait kc.clients.updateProtocolMapper(\n\t\t\t\t{ id: defaultClientInternalId, mapperId: defaultMapper?.id },\n\t\t\t\t{ ...this.getExternalSubClientMapperConfiguration(), id: defaultMapper?.id }\n\t\t\t);\n\t\t} else {\n\t\t\tawait kc.clients.addProtocolMapper(\n\t\t\t\t{ id: defaultClientInternalId },\n\t\t\t\tthis.getExternalSubClientMapperConfiguration()\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * decides for each system if it needs to be added, updated or deleted in keycloak\n\t *\n\t * @param newConfigs\n\t * @param oldConfigs\n\t * @returns\n\t */\n\tprivate selectConfigureAction(newConfigs: OidcConfigDto[], oldConfigs: IdentityProviderRepresentation[]) {\n\t\tconst result = [] as (\n\t\t\t| { action: ConfigureAction.CREATE; config: OidcConfigDto }\n\t\t\t| { action: ConfigureAction.UPDATE; config: OidcConfigDto }\n\t\t\t| { action: ConfigureAction.DELETE; alias: string }\n\t\t)[];\n\t\t// updating or creating configs\n\t\tnewConfigs.forEach((newConfig) => {\n\t\t\tif (oldConfigs.some((oldConfig) => oldConfig.alias === newConfig.idpHint)) {\n\t\t\t\tresult.push({ action: ConfigureAction.UPDATE, config: newConfig });\n\t\t\t} else {\n\t\t\t\tresult.push({ action: ConfigureAction.CREATE, config: newConfig });\n\t\t\t}\n\t\t});\n\t\t// deleting configs\n\t\toldConfigs.forEach((oldConfig) => {\n\t\t\tif (!newConfigs.some((newConfig) => newConfig.idpHint === oldConfig.alias)) {\n\t\t\t\tresult.push({ action: ConfigureAction.DELETE, alias: oldConfig.alias as string });\n\t\t\t}\n\t\t});\n\t\treturn result;\n\t}\n\n\tprivate async createIdentityProvider(oidcConfig: OidcConfigDto): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tif (oidcConfig && oidcConfig?.idpHint) {\n\t\t\tawait kc.identityProviders.create(\n\t\t\t\tthis.oidcIdentityProviderMapper.mapToKeycloakIdentityProvider(oidcConfig, flowAlias)\n\t\t\t);\n\t\t\tawait this.createIdpDefaultMapper(oidcConfig.idpHint);\n\t\t}\n\t}\n\n\tprivate async updateIdentityProvider(oidcConfig: OidcConfigDto): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tif (oidcConfig && oidcConfig?.idpHint) {\n\t\t\tawait kc.identityProviders.update(\n\t\t\t\t{ alias: oidcConfig.idpHint },\n\t\t\t\tthis.oidcIdentityProviderMapper.mapToKeycloakIdentityProvider(oidcConfig, flowAlias)\n\t\t\t);\n\t\t\tawait this.updateOrCreateIdpDefaultMapper(oidcConfig.idpHint);\n\t\t}\n\t}\n\n\tprivate async deleteIdentityProvider(alias: string): Promise {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tawait kc.identityProviders.del({ alias });\n\t}\n\n\tprivate async updateOrCreateIdpDefaultMapper(idpAlias: string) {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst allMappers = await kc.identityProviders.findMappers({ alias: idpAlias });\n\t\tconst defaultMapper = allMappers.find((mapper) => mapper.name === oidcUserAttributeMapperName);\n\t\tif (defaultMapper?.id) {\n\t\t\tawait kc.identityProviders.updateMapper(\n\t\t\t\t{ alias: idpAlias, id: defaultMapper.id },\n\t\t\t\tthis.getIdpMapperConfiguration(idpAlias, defaultMapper.id)\n\t\t\t);\n\t\t} else {\n\t\t\tawait this.createIdpDefaultMapper(idpAlias);\n\t\t}\n\t}\n\n\tprivate async createIdpDefaultMapper(idpAlias: string) {\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tawait kc.identityProviders.createMapper({\n\t\t\talias: idpAlias,\n\t\t\tidentityProviderMapper: this.getIdpMapperConfiguration(idpAlias),\n\t\t});\n\t}\n\n\tprivate getIdpMapperConfiguration(idpAlias: string, id?: string): IdentityProviderMapperRepresentation {\n\t\treturn {\n\t\t\tid,\n\t\t\tname: oidcUserAttributeMapperName,\n\t\t\tidentityProviderAlias: idpAlias,\n\t\t\tidentityProviderMapper: 'oidc-user-attribute-idp-mapper',\n\t\t\tconfig: {\n\t\t\t\tsyncMode: 'FORCE',\n\t\t\t\t'are.claim.values.regex': false,\n\t\t\t\tclaim: 'sub',\n\t\t\t\t'user.attribute': 'external_sub',\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate getExternalSubClientMapperConfiguration(): ProtocolMapperRepresentation {\n\t\treturn {\n\t\t\tname: oidcExternalSubMapperName,\n\t\t\tprotocol: 'openid-connect',\n\t\t\tprotocolMapper: 'oidc-usermodel-attribute-mapper',\n\t\t\tconfig: {\n\t\t\t\t'aggregate.attrs': false,\n\t\t\t\t'userinfo.token.claim': true,\n\t\t\t\tmultivalued: false,\n\t\t\t\t'user.attribute': 'external_sub',\n\t\t\t\t'id.token.claim': true,\n\t\t\t\t'access.token.claim': true,\n\t\t\t\t'claim.name': 'external_sub',\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakConfigurationUc.html":{"url":"injectables/KeycloakConfigurationUc.html","title":"injectable - KeycloakConfigurationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakConfigurationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n check\n \n \n Public\n Async\n clean\n \n \n Async\n configure\n \n \n Public\n Async\n migrate\n \n \n Public\n Async\n seed\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdmin: KeycloakAdministrationService, keycloakConfigService: KeycloakConfigurationService, keycloakSeedService: KeycloakSeedService, keycloakMigrationService: KeycloakMigrationService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdmin\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n keycloakConfigService\n \n \n KeycloakConfigurationService\n \n \n \n No\n \n \n \n \n keycloakSeedService\n \n \n KeycloakSeedService\n \n \n \n No\n \n \n \n \n keycloakMigrationService\n \n \n KeycloakMigrationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n check\n \n \n \n \n \n \n \n check()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:16\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n clean\n \n \n \n \n \n \n \n clean()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:20\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n configure\n \n \n \n \n \n \n \n configure()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:32\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n migrate\n \n \n \n \n \n \n \n migrate(skip?: number, verbose?: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n skip\n \n number\n \n\n \n Yes\n \n\n\n \n \n verbose\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n seed\n \n \n \n \n \n \n \n seed()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/uc/keycloak-configuration.uc.ts:24\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\nimport { KeycloakConfigurationService } from '../service/keycloak-configuration.service';\nimport { KeycloakSeedService } from '../service/keycloak-seed.service';\nimport { KeycloakMigrationService } from '../service/keycloak-migration.service';\n\n@Injectable()\nexport class KeycloakConfigurationUc {\n\tconstructor(\n\t\tprivate readonly kcAdmin: KeycloakAdministrationService,\n\t\tprivate readonly keycloakConfigService: KeycloakConfigurationService,\n\t\tprivate readonly keycloakSeedService: KeycloakSeedService,\n\t\tprivate readonly keycloakMigrationService: KeycloakMigrationService\n\t) {}\n\n\tpublic async check(): Promise {\n\t\treturn this.kcAdmin.testKcConnection();\n\t}\n\n\tpublic async clean(): Promise {\n\t\treturn this.keycloakSeedService.clean();\n\t}\n\n\tpublic async seed(): Promise {\n\t\treturn this.keycloakSeedService.seed();\n\t}\n\n\tpublic async migrate(skip?: number, verbose?: boolean): Promise {\n\t\treturn this.keycloakMigrationService.migrate(skip, verbose);\n\t}\n\n\tasync configure(): Promise {\n\t\tawait this.kcAdmin.setPasswordPolicy();\n\t\tawait this.keycloakConfigService.configureClient();\n\t\tawait this.keycloakConfigService.configureBrokerFlows();\n\t\tawait this.keycloakConfigService.configureRealm();\n\t\treturn this.keycloakConfigService.configureIdentityProviders();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/KeycloakConsole.html":{"url":"classes/KeycloakConsole.html","title":"class - KeycloakConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n KeycloakConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n retryFlags\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n check\n \n \n \n Async\n clean\n \n \n \n Async\n configure\n \n \n Private\n delay\n \n \n \n Async\n migrate\n \n \n Private\n Async\n repeatCommand\n \n \n \n Async\n seed\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(console: ConsoleWriterService, keycloakConfigurationUc: KeycloakConfigurationUc, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n console\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n keycloakConfigurationUc\n \n \n KeycloakConfigurationUc\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n retryFlags\n \n \n \n \n \n \n Type : CommandOption[]\n\n \n \n \n \n Default value : [\n\t\t{\n\t\t\tflags: '-rc, --retry-count ',\n\t\t\tdescription: 'If the command fails, it will be retried this number of times. Default is no retry.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 1,\n\t\t},\n\t\t{\n\t\t\tflags: '-rd, --retry-delay ',\n\t\t\tdescription: 'If \"retry\" is active, this delay is used between each retry. Default is 10 seconds.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 10,\n\t\t},\n\t]\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:28\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n check\n \n \n \n \n \n \n \n check()\n \n \n\n \n \n Decorators : \n \n @Command({command: 'check', description: 'Test the connection to the IDM.'})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:47\n \n \n\n\n \n \n For local development. Checks if connection to IDM is working.\n\n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n clean\n \n \n \n \n \n \n \n clean(options: IRetryOptions)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'clean', description: 'Remove all users from the IDM.', options: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:65\n \n \n\n\n \n \n For local development. Cleans user from IDM\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n IRetryOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n configure\n \n \n \n \n \n \n \n configure(options: IRetryOptions)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'configure', description: 'Configures Keycloak identity providers.', options: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:109\n \n \n\n\n \n \n Used in production and for local development to transfer configuration to keycloak.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n IRetryOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n delay\n \n \n \n \n \n \n \n delay(ms: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:189\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ms\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrate\n \n \n \n \n \n \n \n migrate(options)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'migrate', description: 'Add all database users to the IDM.', options: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:144\n \n \n\n\n \n \n For migration purpose. Moves all database accounts to the IDM\n\n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n options\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n repeatCommand\n \n \n \n \n \n \n \n repeatCommand(commandName: string, command: () => void, count: number, delay: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:160\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n commandName\n \n string\n \n\n \n No\n \n\n \n \n\n \n \n command\n \n function\n \n\n \n No\n \n\n \n \n\n \n \n count\n \n number\n \n\n \n No\n \n\n \n 1\n \n\n \n \n delay\n \n number\n \n\n \n No\n \n\n \n 10\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n seed\n \n \n \n \n \n \n \n seed(options: IRetryOptions)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'seed', description: 'Add all seed users to the IDM.', options: undefined})\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/console/keycloak-configuration.console.ts:87\n \n \n\n\n \n \n For local development. Seeds user into IDM\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n IRetryOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Command, CommandOption, Console } from 'nestjs-console';\nimport { KeycloakConfigurationUc } from '../uc/keycloak-configuration.uc';\n\nconst defaultError = new Error('IDM is not reachable or authentication failed.');\n\ninterface IRetryOptions {\n\tretryCount?: number;\n\tretryDelay?: number;\n}\n\ninterface IMigrationOptions {\n\tskip?: number;\n\tquery?: string;\n\tverbose?: boolean;\n}\n@Console({ command: 'idm', description: 'Prefixes all Identity Management (IDM) related console commands.' })\nexport class KeycloakConsole {\n\tconstructor(\n\t\tprivate readonly console: ConsoleWriterService,\n\t\tprivate readonly keycloakConfigurationUc: KeycloakConfigurationUc,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(KeycloakConsole.name);\n\t}\n\n\tstatic retryFlags: CommandOption[] = [\n\t\t{\n\t\t\tflags: '-rc, --retry-count ',\n\t\t\tdescription: 'If the command fails, it will be retried this number of times. Default is no retry.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 1,\n\t\t},\n\t\t{\n\t\t\tflags: '-rd, --retry-delay ',\n\t\t\tdescription: 'If \"retry\" is active, this delay is used between each retry. Default is 10 seconds.',\n\t\t\trequired: false,\n\t\t\tdefaultValue: 10,\n\t\t},\n\t];\n\n\t/**\n\t * For local development. Checks if connection to IDM is working.\n\t */\n\t@Command({ command: 'check', description: 'Test the connection to the IDM.' })\n\tasync check(): Promise {\n\t\tif (await this.keycloakConfigurationUc.check()) {\n\t\t\tthis.console.info('Connected to IDM');\n\t\t} else {\n\t\t\tthrow defaultError;\n\t\t}\n\t}\n\n\t/**\n\t * For local development. Cleans user from IDM\n\t *\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'clean',\n\t\tdescription: 'Remove all users from the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync clean(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'clean',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.clean();\n\t\t\t\tthis.console.info(`Cleaned ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For local development. Seeds user into IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'seed',\n\t\tdescription: 'Add all seed users to the IDM.',\n\t\toptions: KeycloakConsole.retryFlags,\n\t})\n\tasync seed(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'seed',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.seed();\n\t\t\t\tthis.console.info(`Seeded ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * Used in production and for local development to transfer configuration to keycloak.\n\t *\n\t */\n\t@Command({\n\t\tcommand: 'configure',\n\t\tdescription: 'Configures Keycloak identity providers.',\n\t\toptions: [...KeycloakConsole.retryFlags],\n\t})\n\tasync configure(options: IRetryOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'configure',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.configure();\n\t\t\t\tthis.console.info(`Configured ${count} identity provider(s).`);\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\t/**\n\t * For migration purpose. Moves all database accounts to the IDM\n\t * @param options\n\t */\n\t@Command({\n\t\tcommand: 'migrate',\n\t\tdescription: 'Add all database users to the IDM.',\n\t\toptions: [\n\t\t\t...KeycloakConsole.retryFlags,\n\t\t\t{\n\t\t\t\tflags: '-s, --skip',\n\t\t\t\tdescription: 'Skip the first \"s\" accounts during migration. Default 0.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: undefined,\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-v, --verbose',\n\t\t\t\tdescription: 'Log all events. Default is false.',\n\t\t\t\trequired: false,\n\t\t\t\tdefaultValue: false,\n\t\t\t},\n\t\t],\n\t})\n\tasync migrate(options: IRetryOptions & IMigrationOptions): Promise {\n\t\tawait this.repeatCommand(\n\t\t\t'migrate',\n\t\t\tasync () => {\n\t\t\t\tconst count = await this.keycloakConfigurationUc.migrate(\n\t\t\t\t\toptions.skip ? Number(options.skip) : undefined,\n\t\t\t\t\toptions.verbose ? Boolean(options.verbose) : false\n\t\t\t\t);\n\t\t\t\tthis.console.info(`Migrated ${count} users into IDM`);\n\t\t\t\treturn count;\n\t\t\t},\n\t\t\toptions.retryCount,\n\t\t\toptions.retryDelay\n\t\t);\n\t}\n\n\tprivate async repeatCommand(commandName: string, command: () => Promise, count = 1, delay = 10): Promise {\n\t\tlet repetitions = 0;\n\t\tlet error = new Error('error could be thrown if count is {\n\t\t\tsetTimeout(resolve, ms);\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakIdentityManagementOauthService.html":{"url":"injectables/KeycloakIdentityManagementOauthService.html","title":"injectable - KeycloakIdentityManagementOauthService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakIdentityManagementOauthService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management-oauth.service.ts\n \n\n\n\n \n Extends\n \n \n IdentityManagementOauthService\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _oauthConfigCache\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getOauthConfig\n \n \n Async\n isOauthConfigAvailable\n \n \n resetOauthConfigCache\n \n \n Async\n resourceOwnerPasswordGrant\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdminService: KeycloakAdministrationService, configService: ConfigService, httpService: HttpService, oAuthEncryptionService: IEncryptionService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management-oauth.service.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdminService\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n oAuthEncryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getOauthConfig\n \n \n \n \n \n \n \n getOauthConfig()\n \n \n\n\n \n \n Inherited from IdentityManagementOauthService\n\n \n \n \n \n Defined in IdentityManagementOauthService:24\n\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n isOauthConfigAvailable\n \n \n \n \n \n \n \n isOauthConfigAvailable()\n \n \n\n\n \n \n Inherited from IdentityManagementOauthService\n\n \n \n \n \n Defined in IdentityManagementOauthService:54\n\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n resetOauthConfigCache\n \n \n \n \n \n \nresetOauthConfigCache()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management-oauth.service.ts:50\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n resourceOwnerPasswordGrant\n \n \n \n \n \n \n \n resourceOwnerPasswordGrant(username: string, password: string)\n \n \n\n\n \n \n Inherited from IdentityManagementOauthService\n\n \n \n \n \n Defined in IdentityManagementOauthService:61\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _oauthConfigCache\n \n \n \n \n \n \n Type : OauthConfigDto | undefined\n\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management-oauth.service.ts:13\n \n \n\n\n \n \n\n\n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { OauthConfigDto } from '@src/modules/system/service';\nimport qs from 'qs';\nimport { lastValueFrom } from 'rxjs';\nimport { IdentityManagementOauthService } from '../../identity-management-oauth.service';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\n\n@Injectable()\nexport class KeycloakIdentityManagementOauthService extends IdentityManagementOauthService {\n\tprivate _oauthConfigCache: OauthConfigDto | undefined;\n\n\tconstructor(\n\t\tprivate readonly kcAdminService: KeycloakAdministrationService,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly httpService: HttpService,\n\t\t@Inject(DefaultEncryptionService) private readonly oAuthEncryptionService: IEncryptionService\n\t) {\n\t\tsuper();\n\t}\n\n\tasync getOauthConfig(): Promise {\n\t\tif (this._oauthConfigCache) {\n\t\t\treturn this._oauthConfigCache;\n\t\t}\n\t\tconst wellKnownUrl = this.kcAdminService.getWellKnownUrl();\n\t\tconst response = (await lastValueFrom(this.httpService.get>(wellKnownUrl))).data;\n\t\tconst scDomain = this.configService.get('SC_DOMAIN') || '';\n\t\tconst redirectUri =\n\t\t\tscDomain === 'localhost' ? 'http://localhost:3030/api/v3/sso/oauth/' : `https://${scDomain}/api/v3/sso/oauth/`;\n\t\tthis._oauthConfigCache = new OauthConfigDto({\n\t\t\tclientId: this.kcAdminService.getClientId(),\n\t\t\tclientSecret: this.oAuthEncryptionService.encrypt(await this.kcAdminService.getClientSecret()),\n\t\t\tprovider: 'oauth',\n\t\t\tredirectUri,\n\t\t\tresponseType: 'code',\n\t\t\tgrantType: 'authorization_code',\n\t\t\tscope: 'openid profile email',\n\t\t\tissuer: response.issuer as string,\n\t\t\ttokenEndpoint: response.token_endpoint as string,\n\t\t\tauthEndpoint: response.authorization_endpoint as string,\n\t\t\tlogoutEndpoint: response.end_session_endpoint as string,\n\t\t\tjwksEndpoint: response.jwks_uri as string,\n\t\t});\n\t\treturn this._oauthConfigCache;\n\t}\n\n\tresetOauthConfigCache(): void {\n\t\tthis._oauthConfigCache = undefined;\n\t}\n\n\tasync isOauthConfigAvailable(): Promise {\n\t\tif (this._oauthConfigCache) {\n\t\t\treturn true;\n\t\t}\n\t\treturn this.kcAdminService.testKcConnection();\n\t}\n\n\tasync resourceOwnerPasswordGrant(username: string, password: string): Promise {\n\t\tconst { clientId, clientSecret, tokenEndpoint } = await this.getOauthConfig();\n\t\tconst data = {\n\t\t\tusername,\n\t\t\tpassword,\n\t\t\tgrant_type: 'password',\n\t\t\tclient_id: clientId,\n\t\t\tclient_secret: this.oAuthEncryptionService.decrypt(clientSecret),\n\t\t};\n\t\ttry {\n\t\t\tconst response = await lastValueFrom(\n\t\t\t\tthis.httpService.request({\n\t\t\t\t\tmethod: 'post',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\n\t\t\t\t\t},\n\t\t\t\t\turl: tokenEndpoint,\n\t\t\t\t\tdata: qs.stringify(data),\n\t\t\t\t})\n\t\t\t);\n\t\t\treturn response.data.access_token;\n\t\t} catch (err) {\n\t\t\treturn undefined;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakIdentityManagementService.html":{"url":"injectables/KeycloakIdentityManagementService.html","title":"injectable - KeycloakIdentityManagementService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakIdentityManagementService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts\n \n\n\n\n \n Extends\n \n \n IdentityManagementService\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createAccount\n \n \n Async\n deleteAccountById\n \n \n Private\n extractAccount\n \n \n Private\n extractAttributeValue\n \n \n Async\n findAccountByDbcAccountId\n \n \n Async\n findAccountByDbcUserId\n \n \n Async\n findAccountById\n \n \n Async\n findAccountsByUsername\n \n \n Async\n getAllAccounts\n \n \n Async\n getUserAttribute\n \n \n Async\n setUserAttribute\n \n \n Async\n updateAccount\n \n \n Async\n updateAccountPassword\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \n Public\n constructor(kcAdminClient: KeycloakAdministrationService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdminClient\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createAccount\n \n \n \n \n \n \n \n createAccount(account: IdmAccount, password?: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IdmAccount\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteAccountById\n \n \n \n \n \n \n \n deleteAccountById(id: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:131\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n extractAccount\n \n \n \n \n \n \n \n extractAccount(user: UserRepresentation)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts:170\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserRepresentation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IdmAccount\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n extractAttributeValue\n \n \n \n \n \n \n \n extractAttributeValue(value)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.ts:186\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n value\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountByDbcAccountId\n \n \n \n \n \n \n \n findAccountByDbcAccountId(accountDbcAccountId: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDbcAccountId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountByDbcUserId\n \n \n \n \n \n \n \n findAccountByDbcUserId(accountDbcUserId: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n accountDbcUserId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountById\n \n \n \n \n \n \n \n findAccountById(id: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:76\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAccountsByUsername\n \n \n \n \n \n \n \n findAccountsByUsername(username: string, options?: SearchOptions)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:113\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n options\n \n SearchOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getAllAccounts\n \n \n \n \n \n \n \n getAllAccounts()\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:126\n\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserAttribute\n \n \n \n \n \n \n \n getUserAttribute(userId: string, attributeName: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:136\n\n \n \n\n \n \n Type parameters :\n \n TValue\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n attributeName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setUserAttribute\n \n \n \n \n \n \n \n setUserAttribute(userId: string, attributeName: string, attributeValue: TValue)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:152\n\n \n \n\n \n \n Type parameters :\n \n TValue\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n attributeName\n \n string\n \n\n \n No\n \n\n\n \n \n attributeValue\n \n TValue\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateAccount\n \n \n \n \n \n \n \n updateAccount(id: string, account: IdmAccountUpdate)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:46\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n account\n \n IdmAccountUpdate\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateAccountPassword\n \n \n \n \n \n \n \n updateAccountPassword(id: string, password: string)\n \n \n\n\n \n \n Inherited from IdentityManagementService\n\n \n \n \n \n Defined in IdentityManagementService:62\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation';\nimport { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport { Counted, IdmAccount, IdmAccountUpdate } from '@shared/domain';\nimport { IdentityManagementService, SearchOptions } from '../../identity-management.service';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\n\n@Injectable()\nexport class KeycloakIdentityManagementService extends IdentityManagementService {\n\tpublic constructor(private readonly kcAdminClient: KeycloakAdministrationService) {\n\t\tsuper();\n\t}\n\n\tasync createAccount(account: IdmAccount, password?: string): Promise {\n\t\tconst kc = await this.kcAdminClient.callKcAdminClient();\n\t\tconst id = await kc.users.create({\n\t\t\tusername: account.username,\n\t\t\temail: account.email,\n\t\t\tfirstName: account.firstName,\n\t\t\tlastName: account.lastName,\n\t\t\tenabled: true,\n\t\t\tattributes: {\n\t\t\t\tdbcAccountId: account.attDbcAccountId,\n\t\t\t\tdbcUserId: account.attDbcUserId,\n\t\t\t\tdbcSystemId: account.attDbcSystemId,\n\t\t\t},\n\t\t});\n\t\tif (id && password) {\n\t\t\ttry {\n\t\t\t\tawait kc.users.resetPassword({\n\t\t\t\t\tid: id.id,\n\t\t\t\t\tcredential: {\n\t\t\t\t\t\ttemporary: false,\n\t\t\t\t\t\ttype: 'password',\n\t\t\t\t\t\tvalue: password,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tawait kc.users.del(id);\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\t\treturn id.id;\n\t}\n\n\tasync updateAccount(id: string, account: IdmAccountUpdate): Promise {\n\t\tawait (\n\t\t\tawait this.kcAdminClient.callKcAdminClient()\n\t\t).users.update(\n\t\t\t{ id },\n\t\t\t{\n\t\t\t\tusername: account.username,\n\t\t\t\temail: account.email,\n\t\t\t\tfirstName: account.firstName,\n\t\t\t\tlastName: account.lastName,\n\t\t\t\tenabled: true,\n\t\t\t}\n\t\t);\n\t\treturn id;\n\t}\n\n\tasync updateAccountPassword(id: string, password: string): Promise {\n\t\tawait (\n\t\t\tawait this.kcAdminClient.callKcAdminClient()\n\t\t).users.resetPassword({\n\t\t\tid,\n\t\t\tcredential: {\n\t\t\t\ttemporary: false,\n\t\t\t\ttype: 'password',\n\t\t\t\tvalue: password,\n\t\t\t},\n\t\t});\n\t\treturn id;\n\t}\n\n\tasync findAccountById(id: string): Promise {\n\t\tconst keycloakUser = await (await this.kcAdminClient.callKcAdminClient()).users.findOne({ id });\n\t\tif (!keycloakUser) {\n\t\t\tthrow new Error(`Account '${id}' not found`);\n\t\t}\n\t\treturn this.extractAccount(keycloakUser);\n\t}\n\n\tasync findAccountByDbcAccountId(accountDbcAccountId: string): Promise {\n\t\tconst keycloakUsers = await (\n\t\t\tawait this.kcAdminClient.callKcAdminClient()\n\t\t).users.find({ q: `dbcAccountId:${accountDbcAccountId} }` });\n\t\tif (keycloakUsers.length > 1) {\n\t\t\tthrow new Error('Multiple accounts for the same id!');\n\t\t}\n\t\tif (keycloakUsers.length === 0) {\n\t\t\tthrow new Error(`Account '${accountDbcAccountId}' not found`);\n\t\t}\n\n\t\treturn this.extractAccount(keycloakUsers[0]);\n\t}\n\n\tasync findAccountByDbcUserId(accountDbcUserId: string): Promise {\n\t\tconst keycloakUsers = await (\n\t\t\tawait this.kcAdminClient.callKcAdminClient()\n\t\t).users.find({ q: `dbcUserId:${accountDbcUserId} }` });\n\n\t\tif (keycloakUsers.length > 1) {\n\t\t\tthrow new Error('Multiple accounts for the same id!');\n\t\t}\n\t\tif (keycloakUsers.length === 0) {\n\t\t\tthrow new Error(`Account '${accountDbcUserId}' not found`);\n\t\t}\n\n\t\treturn this.extractAccount(keycloakUsers[0]);\n\t}\n\n\tasync findAccountsByUsername(username: string, options?: SearchOptions): Promise> {\n\t\tconst kc = await this.kcAdminClient.callKcAdminClient();\n\t\tconst total = await kc.users.count({ username });\n\t\tconst results = await kc.users.find({\n\t\t\tusername,\n\t\t\texact: options?.exact,\n\t\t\tfirst: options?.skip,\n\t\t\tmax: options?.limit,\n\t\t});\n\t\tconst accounts = results.map((account) => this.extractAccount(account));\n\t\treturn [accounts, total];\n\t}\n\n\tasync getAllAccounts(): Promise {\n\t\tconst keycloakUsers = await (await this.kcAdminClient.callKcAdminClient()).users.find();\n\t\treturn keycloakUsers.map((user: UserRepresentation) => this.extractAccount(user));\n\t}\n\n\tasync deleteAccountById(id: string): Promise {\n\t\tawait (await this.kcAdminClient.callKcAdminClient()).users.del({ id });\n\t\treturn id;\n\t}\n\n\tasync getUserAttribute(\n\t\tuserId: string,\n\t\tattributeName: string\n\t): Promise {\n\t\tconst kc = await this.kcAdminClient.callKcAdminClient();\n\t\tconst user = await kc.users.findOne({ id: userId });\n\t\tif (!user) {\n\t\t\tthrow new EntityNotFoundError(`User '${userId}' not found`);\n\t\t}\n\t\tif (user.attributes && user.attributes[attributeName] && Array.isArray(user.attributes[attributeName])) {\n\t\t\tconst [value] = (user.attributes[attributeName] as TValue[]) || null;\n\t\t\treturn value;\n\t\t}\n\t\treturn null;\n\t}\n\n\tasync setUserAttribute(\n\t\tuserId: string,\n\t\tattributeName: string,\n\t\tattributeValue: TValue\n\t): Promise {\n\t\tconst kc = await this.kcAdminClient.callKcAdminClient();\n\t\tconst user = await kc.users.findOne({ id: userId });\n\t\tif (!user) {\n\t\t\tthrow new EntityNotFoundError(`User '${userId}' not found`);\n\t\t}\n\t\tif (user.attributes) {\n\t\t\tuser.attributes[attributeName] = attributeValue;\n\t\t} else {\n\t\t\tuser.attributes = { [attributeName]: attributeValue };\n\t\t}\n\t\tawait kc.users.update({ id: userId }, user);\n\t}\n\n\tprivate extractAccount(user: UserRepresentation): IdmAccount {\n\t\tconst ret: IdmAccount = {\n\t\t\tid: user.id ?? '',\n\t\t\tusername: user.username,\n\t\t\temail: user.email,\n\t\t\tfirstName: user.firstName,\n\t\t\tlastName: user.lastName,\n\t\t\tcreatedDate: user.createdTimestamp ? new Date(user.createdTimestamp) : undefined,\n\t\t};\n\t\tret.attDbcSystemId = this.extractAttributeValue(user.attributes?.dbcSystemId);\n\t\tret.attDbcUserId = this.extractAttributeValue(user.attributes?.dbcUserId);\n\t\tret.attDbcAccountId = this.extractAttributeValue(user.attributes?.dbcAccountId);\n\n\t\treturn ret;\n\t}\n\n\tprivate extractAttributeValue(value: unknown): string {\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value[0] as string;\n\t\t}\n\t\treturn value as string;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/KeycloakManagementController.html":{"url":"controllers/KeycloakManagementController.html","title":"controller - KeycloakManagementController","body":"\n \n\n\n\n\n\n\n Controllers\n KeycloakManagementController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/controller/keycloak-configuration.controller.ts\n \n\n \n Prefix\n \n \n management/idm\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n importSeedData\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n importSeedData\n \n \n \n \n \n \n \n importSeedData()\n \n \n\n \n \n Decorators : \n \n @Post('seed')\n \n \n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/controller/keycloak-configuration.controller.ts:19\n \n \n\n\n \n \n This connects to IDM, seeds the test users and seeds the identity providers.\nUsed by auto-deployment for develop environment (job_init_idm.yml.j2) via cURL\n\n\n \n \n \n Returns : Promise\n\n \n \n The number of seeded users\n\n \n \n \n \n \n \n\n\n \n import { Controller, Post, ServiceUnavailableException } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { KeycloakConfigurationUc } from '../uc/keycloak-configuration.uc';\n\n@Controller('management/idm')\nexport class KeycloakManagementController {\n\tconstructor(private readonly keycloakManagementUc: KeycloakConfigurationUc, private readonly logger: LegacyLogger) {\n\t\tthis.logger.setContext(KeycloakManagementController.name);\n\t}\n\n\t/**\n\t * This connects to IDM, seeds the test users and seeds the identity providers.\n\t * Used by auto-deployment for develop environment (job_init_idm.yml.j2) via cURL\n\t *\n\t * @returns The number of seeded users\n\t * @throws ServiceUnavailableException if IDM is not ready.\n\t */\n\t@Post('seed')\n\tasync importSeedData(): Promise {\n\t\tif (await this.keycloakManagementUc.check()) {\n\t\t\ttry {\n\t\t\t\tawait this.keycloakManagementUc.configure();\n\t\t\t\treturn await this.keycloakManagementUc.seed();\n\t\t\t} catch (err) {\n\t\t\t\tthis.logger.error(err);\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t\tthrow new ServiceUnavailableException();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/KeycloakMigrationService.html":{"url":"injectables/KeycloakMigrationService.html","title":"injectable - KeycloakMigrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n KeycloakMigrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-migration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n createOrUpdateIdmAccount\n \n \n Async\n migrate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdmin: KeycloakAdministrationService, accountService: AccountService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-migration.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdmin\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n createOrUpdateIdmAccount\n \n \n \n \n \n \n \n createOrUpdateIdmAccount(account: AccountDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-migration.service.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrate\n \n \n \n \n \n \n \n migrate(start: number, verbose)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-migration.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n start\n \n number\n \n\n \n No\n \n\n \n 0\n \n\n \n \n verbose\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation';\nimport { Injectable } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\n\n@Injectable()\nexport class KeycloakMigrationService {\n\tconstructor(\n\t\tprivate readonly kcAdmin: KeycloakAdministrationService,\n\t\tprivate readonly accountService: AccountService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(KeycloakMigrationService.name);\n\t}\n\n\tasync migrate(start = 0, verbose = false): Promise {\n\t\tconst amount = 100;\n\t\tlet skip = start;\n\t\tlet foundAccounts = 1;\n\t\tlet migratedAccounts = 0;\n\t\tlet accounts: AccountDto[] = [];\n\t\twhile (foundAccounts > 0) {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\taccounts = await this.accountService.findMany(skip, amount);\n\t\t\tfoundAccounts = accounts.length;\n\t\t\tfor (const account of accounts) {\n\t\t\t\ttry {\n\t\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\t\tconst retAccountId = await this.createOrUpdateIdmAccount(account);\n\t\t\t\t\tmigratedAccounts += 1;\n\t\t\t\t\tif (verbose) {\n\t\t\t\t\t\tthis.logger.log(`Migration of account ${account.id} done, new id is ${retAccountId}.`);\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\tthis.logger.error(`Migration of account ${account.id} failed.`, err);\n\t\t\t\t}\n\t\t\t}\n\t\t\tskip += foundAccounts;\n\t\t\tif (!verbose) {\n\t\t\t\tthis.logger.log(`...migrated ${skip} accounts.`);\n\t\t\t}\n\t\t}\n\t\treturn migratedAccounts;\n\t}\n\n\tprivate async createOrUpdateIdmAccount(account: AccountDto): Promise {\n\t\tconst idmUserRepresentation: UserRepresentation = {\n\t\t\tusername: account.username,\n\t\t\tenabled: true,\n\t\t\tcredentials: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'password',\n\t\t\t\t\tsecretData: `{\"value\": \"${account.password ?? ''}\", \"salt\": \"\", \"additionalParameters\": {}}`,\n\t\t\t\t\tcredentialData: '{ \"hashIterations\": 10, \"algorithm\": \"bcrypt\", \"additionalParameters\": {}}',\n\t\t\t\t},\n\t\t\t],\n\t\t\tattributes: {\n\t\t\t\tdbcAccountId: account.id,\n\t\t\t\tdbcUserId: account.userId,\n\t\t\t\tdbcSystemId: account.systemId,\n\t\t\t},\n\t\t};\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst existingAccounts = await kc.users.find({ username: account.username, exact: true });\n\t\tif (existingAccounts.length === 1 && existingAccounts[0].id) {\n\t\t\tconst existingAccountId = existingAccounts[0].id;\n\t\t\tawait kc.users.update({ id: existingAccountId }, idmUserRepresentation);\n\t\t\treturn existingAccountId;\n\t\t}\n\t\tif (existingAccounts.length === 0) {\n\t\t\tconst createdAccountId = await kc.users.create(idmUserRepresentation);\n\t\t\treturn createdAccountId.id;\n\t\t}\n\t\tthrow Error(`Duplicate username ${account.username} update operation aborted.`);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/KeycloakModule.html":{"url":"modules/KeycloakModule.html","title":"module - KeycloakModule","body":"\n \n\n\n\n\n Modules\n KeycloakModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_KeycloakModule\n\n\n\ncluster_KeycloakModule_exports\n\n\n\ncluster_KeycloakModule_imports\n\n\n\ncluster_KeycloakModule_providers\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\n\n\nKeycloakModule\n\nKeycloakModule\n\nKeycloakModule -->\n\nEncryptionModule->KeycloakModule\n\n\n\n\n\nKeycloakAdministrationModule\n\nKeycloakAdministrationModule\n\nKeycloakModule -->\n\nKeycloakAdministrationModule->KeycloakModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nKeycloakModule -->\n\nLoggerModule->KeycloakModule\n\n\n\n\n\nKeycloakIdentityManagementOauthService \n\nKeycloakIdentityManagementOauthService \n\nKeycloakIdentityManagementOauthService -->\n\nKeycloakModule->KeycloakIdentityManagementOauthService \n\n\n\n\n\nKeycloakIdentityManagementService \n\nKeycloakIdentityManagementService \n\nKeycloakIdentityManagementService -->\n\nKeycloakModule->KeycloakIdentityManagementService \n\n\n\n\n\nKeycloakIdentityManagementOauthService\n\nKeycloakIdentityManagementOauthService\n\nKeycloakModule -->\n\nKeycloakIdentityManagementOauthService->KeycloakModule\n\n\n\n\n\nKeycloakIdentityManagementService\n\nKeycloakIdentityManagementService\n\nKeycloakModule -->\n\nKeycloakIdentityManagementService->KeycloakModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak/keycloak.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n KeycloakIdentityManagementOauthService\n \n \n KeycloakIdentityManagementService\n \n \n \n \n Imports\n \n \n EncryptionModule\n \n \n KeycloakAdministrationModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n KeycloakIdentityManagementOauthService\n \n \n KeycloakIdentityManagementService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { LoggerModule } from '@src/core/logger';\nimport { KeycloakAdministrationModule } from '../keycloak-administration/keycloak-administration.module';\nimport { KeycloakIdentityManagementOauthService } from './service/keycloak-identity-management-oauth.service';\nimport { KeycloakIdentityManagementService } from './service/keycloak-identity-management.service';\n\n@Module({\n\timports: [LoggerModule, EncryptionModule, HttpModule, KeycloakAdministrationModule],\n\tproviders: [KeycloakIdentityManagementService, KeycloakIdentityManagementOauthService],\n\texports: [KeycloakIdentityManagementService, KeycloakIdentityManagementOauthService],\n})\nexport class KeycloakModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/KeycloakSeedService.html":{"url":"classes/KeycloakSeedService.html","title":"class - KeycloakSeedService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n KeycloakSeedService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n clean\n \n \n Private\n Async\n createOrUpdateIdmAccount\n \n \n Private\n Async\n loadAccounts\n \n \n Private\n Async\n loadUsers\n \n \n Async\n seed\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(kcAdmin: KeycloakAdministrationService, inputFiles: IKeycloakConfigurationInputFiles)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n kcAdmin\n \n \n KeycloakAdministrationService\n \n \n \n No\n \n \n \n \n inputFiles\n \n \n IKeycloakConfigurationInputFiles\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n clean\n \n \n \n \n \n \n \n clean()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:33\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createOrUpdateIdmAccount\n \n \n \n \n \n \n \n createOrUpdateIdmAccount(account: IJsonAccount, user: IJsonUser)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n IJsonAccount\n \n\n \n No\n \n\n\n \n \n user\n \n IJsonUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n loadAccounts\n \n \n \n \n \n \n \n loadAccounts()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:86\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n loadUsers\n \n \n \n \n \n \n \n loadUsers()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:91\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n seed\n \n \n \n \n \n \n \n seed()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/service/keycloak-seed.service.ts:18\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import UserRepresentation from '@keycloak/keycloak-admin-client/lib/defs/userRepresentation';\nimport { Inject } from '@nestjs/common';\nimport fs from 'node:fs/promises';\nimport { IJsonAccount } from '../interface/json-account.interface';\nimport { IJsonUser } from '../interface/json-user.interface';\nimport { KeycloakAdministrationService } from '../../keycloak-administration/service/keycloak-administration.service';\nimport {\n\tKeycloakConfigurationInputFiles,\n\tIKeycloakConfigurationInputFiles,\n} from '../interface/keycloak-configuration-input-files.interface';\n\nexport class KeycloakSeedService {\n\tconstructor(\n\t\tprivate readonly kcAdmin: KeycloakAdministrationService,\n\t\t@Inject(KeycloakConfigurationInputFiles) private readonly inputFiles: IKeycloakConfigurationInputFiles\n\t) {}\n\n\tasync seed(): Promise {\n\t\tlet userCount = 0;\n\t\tconst users = await this.loadUsers();\n\t\tconst accounts = await this.loadAccounts();\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const user of users) {\n\t\t\tconst account = accounts.find((a) => a.userId.$oid === user._id.$oid);\n\t\t\tif (account) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tuserCount += (await this.createOrUpdateIdmAccount(account, user)) ? 1 : 0;\n\t\t\t}\n\t\t}\n\t\treturn userCount;\n\t}\n\n\tpublic async clean(): Promise {\n\t\tlet kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst adminUser = this.kcAdmin.getAdminUser();\n\t\tconst users = (await kc.users.find()).filter((user) => user.username !== adminUser);\n\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const user of users) {\n\t\t\t// needs to be called once per minute. To be save we call it in the loop. Ineffcient but ok, since only used to locally revert seeding\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tkc = await this.kcAdmin.callKcAdminClient();\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tawait kc.users.del({\n\t\t\t\t// can not be undefined, see filter above\n\t\t\t\tid: user.id ?? '',\n\t\t\t});\n\t\t}\n\t\treturn users.length;\n\t}\n\n\tprivate async createOrUpdateIdmAccount(account: IJsonAccount, user: IJsonUser): Promise {\n\t\tconst idmUserRepresentation: UserRepresentation = {\n\t\t\tusername: account.username,\n\t\t\tfirstName: user.firstName,\n\t\t\tlastName: user.lastName,\n\t\t\temail: user.email,\n\t\t\tenabled: true,\n\t\t\tcredentials: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'password',\n\t\t\t\t\tsecretData: `{\"value\": \"${account.password}\", \"salt\": \"\", \"additionalParameters\": {}}`,\n\t\t\t\t\tcredentialData: '{ \"hashIterations\": 10, \"algorithm\": \"bcrypt\", \"additionalParameters\": {}}',\n\t\t\t\t},\n\t\t\t],\n\t\t\tattributes: {\n\t\t\t\tdbcAccountId: account._id.$oid,\n\t\t\t\tdbcUserId: account.userId.$oid,\n\t\t\t\tdbcSystemId: account.systemId,\n\t\t\t},\n\t\t};\n\t\tconst kc = await this.kcAdmin.callKcAdminClient();\n\t\tconst existingAccounts = await kc.users.find({ username: account.username, exact: true });\n\t\tif (existingAccounts.length === 1 && existingAccounts[0].id) {\n\t\t\tawait kc.users.update({ id: existingAccounts[0].id }, idmUserRepresentation);\n\t\t\treturn true;\n\t\t}\n\t\tif (existingAccounts.length === 0) {\n\t\t\tawait kc.users.create(idmUserRepresentation);\n\t\t\treturn true;\n\t\t}\n\t\t// else, unreachable, multiple accounts for same username (unique)\n\t\treturn false;\n\t}\n\n\tprivate async loadAccounts(): Promise {\n\t\tconst data = await fs.readFile(this.inputFiles.accountsFile, { encoding: 'utf-8' });\n\t\treturn JSON.parse(data) as IJsonAccount[];\n\t}\n\n\tprivate async loadUsers(): Promise {\n\t\tconst data = await fs.readFile(this.inputFiles.usersFile, { encoding: 'utf-8' });\n\t\treturn JSON.parse(data) as IJsonUser[];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapAlreadyPersistedException.html":{"url":"classes/LdapAlreadyPersistedException.html","title":"class - LdapAlreadyPersistedException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapAlreadyPersistedException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts\n \n\n\n\n \n Extends\n \n \n LdapUserMigrationException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(descriptionOrOptions?: string | HttpExceptionOptions)\n \n \n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n descriptionOrOptions\n \n \n string | HttpExceptionOptions\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:11\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, HttpExceptionOptions } from '@nestjs/common';\nimport { ErrorLogMessage, LogMessage, Loggable, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class LdapUserMigrationException extends BadRequestException {}\n\nexport class LdapAlreadyPersistedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('ldapAlreadyPersisted', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'LDAP is already Persisted',\n\t\t};\n\t}\n}\nexport class MissingSchoolNumberException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school is missing a official school number',\n\t\t};\n\t}\n}\nexport class MigrationAlreadyActivatedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration is already activated for this school',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapAuthorizationBodyParams.html":{"url":"classes/LdapAuthorizationBodyParams.html","title":"class - LdapAuthorizationBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapAuthorizationBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n schoolId\n \n \n \n \n systemId\n \n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/ldap-authorization.body.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNotEmpty, IsString } from 'class-validator';\n\nexport class LdapAuthorizationBodyParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tsystemId!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tusername!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tpassword!: string;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\tschoolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapConfig.html":{"url":"classes/LdapConfig.html","title":"class - LdapConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n active\n \n \n \n Optional\n federalState\n \n \n \n Optional\n lastModifyTimestamp\n \n \n \n Optional\n lastSuccessfulFullSync\n \n \n \n Optional\n lastSuccessfulPartialSync\n \n \n \n Optional\n lastSyncAttempt\n \n \n \n Optional\n provider\n \n \n \n Optional\n providerOptions\n \n \n \n Optional\n rootPath\n \n \n \n Optional\n searchUser\n \n \n \n Optional\n searchUserPassword\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ldapConfig: Readonly)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:76\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ldapConfig\n \n \n Readonly\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n active\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:93\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n federalState\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:96\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastModifyTimestamp\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:108\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastSuccessfulFullSync\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:102\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastSuccessfulPartialSync\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:105\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastSyncAttempt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:99\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:123\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n providerOptions\n \n \n \n \n \n \n Type : literal type\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:126\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n rootPath\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:114\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n searchUser\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:117\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n searchUserPassword\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:120\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:111\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapConnectionError.html":{"url":"classes/LdapConnectionError.html","title":"class - LdapConnectionError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapConnectionError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/errors/ldap-connection.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(details?: Record)\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/ldap-connection.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class LdapConnectionError extends BusinessError {\n\tconstructor(details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'LDAP_CONNECTION_FAILED',\n\t\t\t\ttitle: 'LDAP connection failed',\n\t\t\t\tdefaultMessage: 'LDAP connection failed',\n\t\t\t},\n\t\t\tHttpStatus.BAD_GATEWAY,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LdapService.html":{"url":"injectables/LdapService.html","title":"injectable - LdapService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LdapService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/services/ldap.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkLdapCredentials\n \n \n Private\n connect\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/authentication/services/ldap.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkLdapCredentials\n \n \n \n \n \n \n \n checkLdapCredentials(system: System, username: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/ldap.service.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n System\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n connect\n \n \n \n \n \n \n \n connect(system: System, username: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/services/ldap.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n System\n \n\n \n No\n \n\n\n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { System } from '@shared/domain';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Client, createClient } from 'ldapjs';\nimport { LdapConnectionError } from '../errors/ldap-connection.error';\n\n@Injectable()\nexport class LdapService {\n\tconstructor(private readonly logger: LegacyLogger) {\n\t\tthis.logger.setContext(LdapService.name);\n\t}\n\n\tasync checkLdapCredentials(system: System, username: string, password: string): Promise {\n\t\tconst connection = await this.connect(system, username, password);\n\t\tif (connection.connected) {\n\t\t\tconnection.unbind();\n\t\t\treturn;\n\t\t}\n\t\tthrow new UnauthorizedException('User could not authenticate');\n\t}\n\n\tprivate connect(system: System, username: string, password: string): Promise {\n\t\tconst { ldapConfig } = system;\n\t\tif (!ldapConfig) {\n\t\t\tthrow Error(`no LDAP config found in system ${system.id}`);\n\t\t}\n\t\tconst client: Client = createClient({\n\t\t\turl: ldapConfig.url,\n\t\t\treconnect: {\n\t\t\t\tinitialDelay: 100,\n\t\t\t\tmaxDelay: 300,\n\t\t\t\tfailAfter: 3,\n\t\t\t},\n\t\t});\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tclient.on('connect', () => {\n\t\t\t\tclient.bind(username, password, (err) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tthis.logger.debug(err);\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tnew UnauthorizedException(\n\t\t\t\t\t\t\t\t'User could not authenticate',\n\t\t\t\t\t\t\t\tErrorUtils.createHttpExceptionOptions(err, 'LdapService:connect')\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.logger.debug('[LDAP] Bind successful');\n\t\t\t\t\t\tresolve(client);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tclient.on('error', (err) => {\n\t\t\t\treject(new LdapConnectionError({ error: err }));\n\t\t\t});\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LdapStrategy.html":{"url":"injectables/LdapStrategy.html","title":"injectable - LdapStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LdapStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/ldap.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkCredentials\n \n \n Private\n checkValue\n \n \n Private\n extractParamsFromRequest\n \n \n Private\n Async\n loadAccount\n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemRepo: SystemRepo, schoolRepo: LegacySchoolRepo, ldapService: LdapService, authenticationService: AuthenticationService, userRepo: UserRepo, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemRepo\n \n \n SystemRepo\n \n \n \n No\n \n \n \n \n schoolRepo\n \n \n LegacySchoolRepo\n \n \n \n No\n \n \n \n \n ldapService\n \n \n LdapService\n \n \n \n No\n \n \n \n \n authenticationService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkCredentials\n \n \n \n \n \n \n \n checkCredentials(account: AccountDto, system: System, ldapDn: string, password: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n system\n \n System\n \n\n \n No\n \n\n\n \n \n ldapDn\n \n string\n \n\n \n No\n \n\n\n \n \n password\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkValue\n \n \n \n \n \n \n \n checkValue(value: T | null | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:68\n \n \n\n \n \n Type parameters :\n \n T\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n T | null | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T | never\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n extractParamsFromRequest\n \n \n \n \n \n \n \n extractParamsFromRequest(request: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Required\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n loadAccount\n \n \n \n \n \n \n \n loadAccount(username: string, systemId: string, school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(request: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/ldap.strategy.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { PassportStrategy } from '@nestjs/passport';\nimport { LegacySchoolDo, System, User } from '@shared/domain';\nimport { LegacySchoolRepo, SystemRepo, UserRepo } from '@shared/repo';\nimport { ErrorLoggable } from '@src/core/error/loggable/error.loggable';\nimport { Logger } from '@src/core/logger';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { Strategy } from 'passport-custom';\nimport { LdapAuthorizationBodyParams } from '../controllers/dto';\nimport { ICurrentUser } from '../interface';\nimport { CurrentUserMapper } from '../mapper';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { LdapService } from '../services/ldap.service';\n\n@Injectable()\nexport class LdapStrategy extends PassportStrategy(Strategy, 'ldap') {\n\tconstructor(\n\t\tprivate readonly systemRepo: SystemRepo,\n\t\tprivate readonly schoolRepo: LegacySchoolRepo,\n\t\tprivate readonly ldapService: LdapService,\n\t\tprivate readonly authenticationService: AuthenticationService,\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tsuper();\n\t}\n\n\tasync validate(request: { body: LdapAuthorizationBodyParams }): Promise {\n\t\tconst { username, password, systemId, schoolId } = this.extractParamsFromRequest(request);\n\n\t\tconst system: System = await this.systemRepo.findById(systemId);\n\n\t\tconst school: LegacySchoolDo = await this.schoolRepo.findById(schoolId);\n\n\t\tif (!school.systems || !school.systems.includes(systemId)) {\n\t\t\tthrow new UnauthorizedException(`School ${schoolId} does not have the selected system ${systemId}`);\n\t\t}\n\n\t\tconst account: AccountDto = await this.loadAccount(username, system.id, school);\n\n\t\tconst userId: string = this.checkValue(account.userId);\n\n\t\tthis.authenticationService.checkBrutForce(account);\n\n\t\tconst user: User = await this.userRepo.findById(userId);\n\n\t\tconst ldapDn: string = this.checkValue(user.ldapDn);\n\n\t\tawait this.checkCredentials(account, system, ldapDn, password);\n\n\t\tconst currentUser: ICurrentUser = CurrentUserMapper.userToICurrentUser(account.id, user, systemId);\n\n\t\treturn currentUser;\n\t}\n\n\tprivate extractParamsFromRequest(request: {\n\t\tbody: LdapAuthorizationBodyParams;\n\t}): Required {\n\t\tconst { systemId, schoolId } = request.body;\n\t\tlet { username, password } = request.body;\n\n\t\tusername = this.authenticationService.normalizeUsername(username);\n\t\tpassword = this.authenticationService.normalizePassword(password);\n\n\t\treturn { username, password, systemId, schoolId };\n\t}\n\n\tprivate checkValue(value: T | null | undefined): T | never {\n\t\tif (value === null || value === undefined) {\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\t\treturn value;\n\t}\n\n\tprivate async checkCredentials(account: AccountDto, system: System, ldapDn: string, password: string): Promise {\n\t\ttry {\n\t\t\tawait this.ldapService.checkLdapCredentials(system, ldapDn, password);\n\t\t} catch (error) {\n\t\t\tif (error instanceof UnauthorizedException) {\n\t\t\t\tawait this.authenticationService.updateLastTriedFailedLogin(account.id);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate async loadAccount(username: string, systemId: string, school: LegacySchoolDo): Promise {\n\t\tconst externalSchoolId = this.checkValue(school.externalId);\n\n\t\tlet account: AccountDto;\n\n\t\t// TODO having to check for two values in order to find an account is not optimal and should be changed.\n\t\t// The way the name field of Accounts is used for LDAP should be reconsidered, since\n\t\t// mixing the login name with a technical id from a foreign system is not a good pattern.\n\t\t// Binding the login name to an identifier from a foreign system or an identifier of a school can lead to\n\t\t// accounts not being found when the identifier changes.\n\t\ttry {\n\t\t\taccount = await this.authenticationService.loadAccount(`${externalSchoolId}/${username}`.toLowerCase(), systemId);\n\t\t} catch (err: unknown) {\n\t\t\tif (school.previousExternalId) {\n\t\t\t\tthis.logger.info(\n\t\t\t\t\tnew ErrorLoggable(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`Could not find LDAP account with externalSchoolId ${externalSchoolId} for user ${username}. Trying to use the previousExternalId ${school.previousExternalId} next...`\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\taccount = await this.authenticationService.loadAccount(\n\t\t\t\t\t`${school.previousExternalId}/${username}`.toLowerCase(),\n\t\t\t\t\tsystemId\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\n\t\treturn account;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LdapUserMigrationException.html":{"url":"classes/LdapUserMigrationException.html","title":"class - LdapUserMigrationException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LdapUserMigrationException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts\n \n\n\n\n \n Extends\n \n \n BadRequestException\n \n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, HttpExceptionOptions } from '@nestjs/common';\nimport { ErrorLogMessage, LogMessage, Loggable, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class LdapUserMigrationException extends BadRequestException {}\n\nexport class LdapAlreadyPersistedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('ldapAlreadyPersisted', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'LDAP is already Persisted',\n\t\t};\n\t}\n}\nexport class MissingSchoolNumberException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school is missing a official school number',\n\t\t};\n\t}\n}\nexport class MigrationAlreadyActivatedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration is already activated for this school',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LearnroomApiModule.html":{"url":"modules/LearnroomApiModule.html","title":"module - LearnroomApiModule","body":"\n \n\n\n\n\n Modules\n LearnroomApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LearnroomApiModule\n\n\n\ncluster_LearnroomApiModule_imports\n\n\n\ncluster_LearnroomApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nLearnroomApiModule\n\nLearnroomApiModule\n\nLearnroomApiModule -->\n\nAuthorizationModule->LearnroomApiModule\n\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\nLearnroomApiModule -->\n\nCopyHelperModule->LearnroomApiModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nLearnroomApiModule -->\n\nLearnroomModule->LearnroomApiModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nLearnroomApiModule -->\n\nLessonModule->LearnroomApiModule\n\n\n\n\n\nBoardRepo\n\nBoardRepo\n\nLearnroomApiModule -->\n\nBoardRepo->LearnroomApiModule\n\n\n\n\n\nCourseCopyUC\n\nCourseCopyUC\n\nLearnroomApiModule -->\n\nCourseCopyUC->LearnroomApiModule\n\n\n\n\n\nCourseExportUc\n\nCourseExportUc\n\nLearnroomApiModule -->\n\nCourseExportUc->LearnroomApiModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nLearnroomApiModule -->\n\nCourseRepo->LearnroomApiModule\n\n\n\n\n\nCourseUc\n\nCourseUc\n\nLearnroomApiModule -->\n\nCourseUc->LearnroomApiModule\n\n\n\n\n\nDashboardModelMapper\n\nDashboardModelMapper\n\nLearnroomApiModule -->\n\nDashboardModelMapper->LearnroomApiModule\n\n\n\n\n\nDashboardUc\n\nDashboardUc\n\nLearnroomApiModule -->\n\nDashboardUc->LearnroomApiModule\n\n\n\n\n\nLessonCopyUC\n\nLessonCopyUC\n\nLearnroomApiModule -->\n\nLessonCopyUC->LearnroomApiModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nLearnroomApiModule -->\n\nLessonRepo->LearnroomApiModule\n\n\n\n\n\nRoomBoardDTOFactory\n\nRoomBoardDTOFactory\n\nLearnroomApiModule -->\n\nRoomBoardDTOFactory->LearnroomApiModule\n\n\n\n\n\nRoomBoardResponseMapper\n\nRoomBoardResponseMapper\n\nLearnroomApiModule -->\n\nRoomBoardResponseMapper->LearnroomApiModule\n\n\n\n\n\nRoomsAuthorisationService\n\nRoomsAuthorisationService\n\nLearnroomApiModule -->\n\nRoomsAuthorisationService->LearnroomApiModule\n\n\n\n\n\nRoomsUc\n\nRoomsUc\n\nLearnroomApiModule -->\n\nRoomsUc->LearnroomApiModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nLearnroomApiModule -->\n\nUserRepo->LearnroomApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/learnroom/learnroom-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardRepo\n \n \n CourseCopyUC\n \n \n CourseExportUc\n \n \n CourseRepo\n \n \n CourseUc\n \n \n DashboardModelMapper\n \n \n DashboardUc\n \n \n LessonCopyUC\n \n \n LessonRepo\n \n \n RoomBoardDTOFactory\n \n \n RoomBoardResponseMapper\n \n \n RoomsAuthorisationService\n \n \n RoomsUc\n \n \n UserRepo\n \n \n \n \n Controllers\n \n \n DashboardController\n \n \n CourseController\n \n \n RoomsController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CopyHelperModule\n \n \n LearnroomModule\n \n \n LessonModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { BoardRepo, CourseRepo, DashboardModelMapper, DashboardRepo, LessonRepo, UserRepo } from '@shared/repo';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { LessonModule } from '@src/modules/lesson';\nimport { CourseController } from './controller/course.controller';\nimport { DashboardController } from './controller/dashboard.controller';\nimport { RoomsController } from './controller/rooms.controller';\nimport { LearnroomModule } from './learnroom.module';\nimport { RoomBoardResponseMapper } from './mapper/room-board-response.mapper';\nimport {\n\tCourseCopyUC,\n\tCourseExportUc,\n\tCourseUc,\n\tDashboardUc,\n\tLessonCopyUC,\n\tRoomBoardDTOFactory,\n\tRoomsAuthorisationService,\n\tRoomsUc,\n} from './uc';\n\n@Module({\n\timports: [AuthorizationModule, LessonModule, CopyHelperModule, LearnroomModule],\n\tcontrollers: [DashboardController, CourseController, RoomsController],\n\tproviders: [\n\t\tDashboardUc,\n\t\tCourseUc,\n\t\tRoomsUc,\n\t\tRoomBoardResponseMapper,\n\t\tRoomBoardDTOFactory,\n\t\tLessonCopyUC,\n\t\tCourseCopyUC,\n\t\tRoomsAuthorisationService,\n\t\tCourseExportUc,\n\t\t// FIXME Refactor UCs to use services and remove these imports\n\t\t{\n\t\t\tprovide: 'DASHBOARD_REPO',\n\t\t\tuseClass: DashboardRepo,\n\t\t},\n\t\tDashboardModelMapper,\n\t\tCourseRepo,\n\t\tUserRepo,\n\t\tBoardRepo,\n\t\tLessonRepo,\n\t],\n})\nexport class LearnroomApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LearnroomModule.html":{"url":"modules/LearnroomModule.html","title":"module - LearnroomModule","body":"\n \n\n\n\n\n Modules\n LearnroomModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LearnroomModule\n\n\n\ncluster_LearnroomModule_providers\n\n\n\ncluster_LearnroomModule_imports\n\n\n\ncluster_LearnroomModule_exports\n\n\n\n\nBoardModule\n\nBoardModule\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nLearnroomModule -->\n\nBoardModule->LearnroomModule\n\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\nLearnroomModule -->\n\nCopyHelperModule->LearnroomModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nLearnroomModule -->\n\nLessonModule->LearnroomModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nLearnroomModule -->\n\nLoggerModule->LearnroomModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nLearnroomModule -->\n\nTaskModule->LearnroomModule\n\n\n\n\n\nCommonCartridgeExportService \n\nCommonCartridgeExportService \n\nCommonCartridgeExportService -->\n\nLearnroomModule->CommonCartridgeExportService \n\n\n\n\n\nCourseCopyService \n\nCourseCopyService \n\nCourseCopyService -->\n\nLearnroomModule->CourseCopyService \n\n\n\n\n\nCourseService \n\nCourseService \n\nCourseService -->\n\nLearnroomModule->CourseService \n\n\n\n\n\nRoomsService \n\nRoomsService \n\nRoomsService -->\n\nLearnroomModule->RoomsService \n\n\n\n\n\nBoardCopyService\n\nBoardCopyService\n\nLearnroomModule -->\n\nBoardCopyService->LearnroomModule\n\n\n\n\n\nBoardRepo\n\nBoardRepo\n\nLearnroomModule -->\n\nBoardRepo->LearnroomModule\n\n\n\n\n\nColumnBoardTargetService\n\nColumnBoardTargetService\n\nLearnroomModule -->\n\nColumnBoardTargetService->LearnroomModule\n\n\n\n\n\nCommonCartridgeExportService\n\nCommonCartridgeExportService\n\nLearnroomModule -->\n\nCommonCartridgeExportService->LearnroomModule\n\n\n\n\n\nCourseCopyService\n\nCourseCopyService\n\nLearnroomModule -->\n\nCourseCopyService->LearnroomModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nLearnroomModule -->\n\nCourseRepo->LearnroomModule\n\n\n\n\n\nCourseService\n\nCourseService\n\nLearnroomModule -->\n\nCourseService->LearnroomModule\n\n\n\n\n\nDashboardModelMapper\n\nDashboardModelMapper\n\nLearnroomModule -->\n\nDashboardModelMapper->LearnroomModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nLearnroomModule -->\n\nLessonRepo->LearnroomModule\n\n\n\n\n\nRoomsService\n\nRoomsService\n\nLearnroomModule -->\n\nRoomsService->LearnroomModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nLearnroomModule -->\n\nUserRepo->LearnroomModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/learnroom/learnroom.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardCopyService\n \n \n BoardRepo\n \n \n ColumnBoardTargetService\n \n \n CommonCartridgeExportService\n \n \n CourseCopyService\n \n \n CourseRepo\n \n \n CourseService\n \n \n DashboardModelMapper\n \n \n LessonRepo\n \n \n RoomsService\n \n \n UserRepo\n \n \n \n \n Imports\n \n \n BoardModule\n \n \n CopyHelperModule\n \n \n LessonModule\n \n \n LoggerModule\n \n \n TaskModule\n \n \n \n \n Exports\n \n \n CommonCartridgeExportService\n \n \n CourseCopyService\n \n \n CourseService\n \n \n RoomsService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { BoardRepo, CourseRepo, DashboardModelMapper, DashboardRepo, LessonRepo, UserRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { BoardModule } from '@src/modules/board';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { LessonModule } from '@src/modules/lesson';\nimport { TaskModule } from '@src/modules/task';\nimport {\n\tBoardCopyService,\n\tColumnBoardTargetService,\n\tCommonCartridgeExportService,\n\tCourseCopyService,\n\tCourseService,\n\tRoomsService,\n} from './service';\n\n@Module({\n\timports: [LessonModule, TaskModule, CopyHelperModule, BoardModule, LoggerModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: 'DASHBOARD_REPO',\n\t\t\tuseClass: DashboardRepo,\n\t\t},\n\t\tDashboardModelMapper,\n\t\tCourseRepo,\n\t\tLessonRepo,\n\t\tBoardRepo,\n\t\tUserRepo,\n\t\tBoardCopyService,\n\t\tCourseCopyService,\n\t\tRoomsService,\n\t\tCourseService,\n\t\tCommonCartridgeExportService,\n\t\tColumnBoardTargetService,\n\t],\n\texports: [CourseCopyService, CourseService, RoomsService, CommonCartridgeExportService],\n})\nexport class LearnroomModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacyLogger.html":{"url":"injectables/LegacyLogger.html","title":"injectable - LegacyLogger","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacyLogger\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/legacy-logger.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n context\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createMessage\n \n \n debug\n \n \n error\n \n \n http\n \n \n log\n \n \n setContext\n \n \n Private\n stringifiedMessage\n \n \n warn\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: WinstonLogger)\n \n \n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n WinstonLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createMessage\n \n \n \n \n \n \n \n createMessage(message, context?: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string | undefined\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : { message: any; context: string; }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n debug\n \n \n \n \n \n \ndebug(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n error\n \n \n \n \n \n \nerror(message, trace?, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n trace\n \n \n\n \n Yes\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n http\n \n \n \n \n \n \nhttp(message: RequestLoggingBody, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n RequestLoggingBody\n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n log\n \n \n \n \n \n \nlog(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setContext\n \n \n \n \n \n \nsetContext(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n stringifiedMessage\n \n \n \n \n \n \n \n stringifiedMessage(message)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n message\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n warn\n \n \n \n \n \n \nwarn(message, context?: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n context\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : ''\n \n \n \n \n Defined in apps/server/src/core/logger/legacy-logger.service.ts:22\n \n \n\n \n \n This Logger Service can be injected into every Class,\nuse setContext() with CustomProviderClass.name that will be added to every log.\nIt implements @ILegacyLogger which provides the logger methods.\nCAUTION: PREPARE STRINGS AS LOG DATA, DO NOT LOG COMPLEX DATA STRUCTURES\n\n \n \n\n \n \n\n\n \n\n\n \n import { Inject, Injectable, Scope } from '@nestjs/common';\nimport { WINSTON_MODULE_PROVIDER } from 'nest-winston';\nimport util from 'util';\nimport { Logger as WinstonLogger } from 'winston';\nimport { RequestLoggingBody } from './interfaces';\nimport { ILegacyLogger } from './interfaces/legacy-logger.interface';\n\n@Injectable({ scope: Scope.TRANSIENT })\n/**\n * @deprecated The new logger for loggables should be used.\n * Default logger for server application.\n * Must implement ILegacyLogger but must not extend ConsoleLogger (this can be changed).\n * Transient injection: Wherever injected, a separate instance will be created, that can be provided with a custom context.\n */\nexport class LegacyLogger implements ILegacyLogger {\n\t/**\n\t * This Logger Service can be injected into every Class,\n\t * use setContext() with CustomProviderClass.name that will be added to every log.\n\t * It implements @ILegacyLogger which provides the logger methods.\n\t * CAUTION: PREPARE STRINGS AS LOG DATA, DO NOT LOG COMPLEX DATA STRUCTURES\n\t */\n\tprivate context = '';\n\n\tconstructor(@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: WinstonLogger) {}\n\n\tlog(message: unknown, context?: string): void {\n\t\tthis.logger.info(this.createMessage(message, context));\n\t}\n\n\twarn(message: unknown, context?: string): void {\n\t\tthis.logger.warning(this.createMessage(message, context));\n\t}\n\n\tdebug(message: unknown, context?: string): void {\n\t\tthis.logger.debug(this.createMessage(message, context));\n\t}\n\n\thttp(message: RequestLoggingBody, context?: string): void {\n\t\tthis.logger.notice(this.createMessage(message, context));\n\t}\n\n\terror(message: unknown, trace?: unknown, context?: string): void {\n\t\tconst result = {\n\t\t\tmessage,\n\t\t\ttrace,\n\t\t};\n\t\tthis.logger.error(this.createMessage(result, context));\n\t}\n\n\tsetContext(name: string) {\n\t\tthis.context = name;\n\t}\n\n\tprivate createMessage(message: unknown, context?: string | undefined) {\n\t\treturn { message: this.stringifiedMessage(message), context: context || this.context };\n\t}\n\n\tprivate stringifiedMessage(message: unknown) {\n\t\tconst stringifiedMessage = util.inspect(message).replace(/\\n/g, '').replace(/\\\\n/g, '');\n\t\treturn stringifiedMessage;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LegacySchoolApiModule.html":{"url":"modules/LegacySchoolApiModule.html","title":"module - LegacySchoolApiModule","body":"\n \n\n\n\n\n Modules\n LegacySchoolApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LegacySchoolApiModule\n\n\n\ncluster_LegacySchoolApiModule_providers\n\n\n\ncluster_LegacySchoolApiModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nLegacySchoolApiModule\n\nLegacySchoolApiModule\n\nLegacySchoolApiModule -->\n\nAuthorizationModule->LegacySchoolApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nLegacySchoolApiModule -->\n\nLegacySchoolModule->LegacySchoolApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nLegacySchoolApiModule -->\n\nLoggerModule->LegacySchoolApiModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nLegacySchoolApiModule -->\n\nUserLoginMigrationModule->LegacySchoolApiModule\n\n\n\n\n\nLegacySchoolUc\n\nLegacySchoolUc\n\nLegacySchoolApiModule -->\n\nLegacySchoolUc->LegacySchoolApiModule\n\n\n\n\n\nMigrationMapper\n\nMigrationMapper\n\nLegacySchoolApiModule -->\n\nMigrationMapper->LegacySchoolApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/legacy-school/legacy-school-api.module.ts\n \n\n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n \n \n \n Providers\n \n \n LegacySchoolUc\n \n \n MigrationMapper\n \n \n \n \n Controllers\n \n \n LegacySchoolController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n UserLoginMigrationModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { LoggerModule } from '@src/core/logger';\nimport { UserLoginMigrationModule } from '@src/modules/user-login-migration';\nimport { LegacySchoolUc } from './uc';\nimport { LegacySchoolModule } from './legacy-school.module';\nimport { LegacySchoolController } from './controller/legacy-school.controller';\nimport { MigrationMapper } from './mapper/migration.mapper';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Module({\n\timports: [LegacySchoolModule, AuthorizationModule, LoggerModule, UserLoginMigrationModule],\n\tcontrollers: [LegacySchoolController],\n\tproviders: [LegacySchoolUc, MigrationMapper],\n})\nexport class LegacySchoolApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/LegacySchoolController.html":{"url":"controllers/LegacySchoolController.html","title":"controller - LegacySchoolController","body":"\n \n\n\n\n\n\n\n Controllers\n LegacySchoolController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/controller/legacy-school.controller.ts\n \n\n \n Prefix\n \n \n school\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigration\n \n \n \n \n \n \n Async\n setMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigration\n \n \n \n \n \n \n \n getMigration(schoolParams: SchoolParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get(':schoolId/migration')@Authenticate('jwt')@ApiFoundResponse({description: 'Migrationflags have been found.', type: MigrationResponse})@ApiUnauthorizedResponse()@ApiNotFoundResponse({description: 'Migrationsflags could not be found for the given school'})\n \n \n\n \n \n Defined in apps/server/src/modules/legacy-school/controller/legacy-school.controller.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolParams\n \n SchoolParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigration\n \n \n \n \n \n \n \n setMigration(schoolParams: SchoolParams, migrationBody: MigrationBody, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Put(':schoolId/migration')@Authenticate('jwt')@ApiOkResponse({description: 'New migrationflags set', type: MigrationResponse})@ApiUnauthorizedResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/legacy-school/controller/legacy-school.controller.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolParams\n \n SchoolParams\n \n\n \n No\n \n\n\n \n \n migrationBody\n \n MigrationBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Put } from '@nestjs/common';\nimport {\n\tApiFoundResponse,\n\tApiNotFoundResponse,\n\tApiOkResponse,\n\tApiTags,\n\tApiUnauthorizedResponse,\n} from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { MigrationMapper } from '../mapper/migration.mapper';\nimport { OauthMigrationDto } from '../uc/dto/oauth-migration.dto';\nimport { LegacySchoolUc } from '../uc';\nimport { MigrationBody, MigrationResponse, SchoolParams } from './dto';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@ApiTags('School')\n@Authenticate('jwt')\n@Controller('school')\nexport class LegacySchoolController {\n\tconstructor(private readonly schoolUc: LegacySchoolUc, private readonly migrationMapper: MigrationMapper) {}\n\n\t@Put(':schoolId/migration')\n\t@Authenticate('jwt')\n\t@ApiOkResponse({ description: 'New migrationflags set', type: MigrationResponse })\n\t@ApiUnauthorizedResponse()\n\tasync setMigration(\n\t\t@Param() schoolParams: SchoolParams,\n\t\t@Body() migrationBody: MigrationBody,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst migrationDto: OauthMigrationDto = await this.schoolUc.setMigration(\n\t\t\tschoolParams.schoolId,\n\t\t\t!!migrationBody.oauthMigrationPossible,\n\t\t\t!!migrationBody.oauthMigrationMandatory,\n\t\t\t!!migrationBody.oauthMigrationFinished,\n\t\t\tcurrentUser.userId\n\t\t);\n\n\t\tconst result: MigrationResponse = this.migrationMapper.mapDtoToResponse(migrationDto);\n\n\t\treturn result;\n\t}\n\n\t@Get(':schoolId/migration')\n\t@Authenticate('jwt')\n\t@ApiFoundResponse({ description: 'Migrationflags have been found.', type: MigrationResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiNotFoundResponse({ description: 'Migrationsflags could not be found for the given school' })\n\tasync getMigration(\n\t\t@Param() schoolParams: SchoolParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst migrationDto: OauthMigrationDto = await this.schoolUc.getMigration(schoolParams.schoolId, currentUser.userId);\n\n\t\tconst result: MigrationResponse = this.migrationMapper.mapDtoToResponse(migrationDto);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LegacySchoolDo.html":{"url":"classes/LegacySchoolDo.html","title":"class - LegacySchoolDo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LegacySchoolDo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/legacy-school.do.ts\n \n\n \n Deprecated\n \n \n because it extends the deprecated BaseDO.\n \n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n externalId\n \n \n Optional\n features\n \n \n federalState\n \n \n Optional\n inMaintenanceSince\n \n \n Optional\n inUserMigration\n \n \n name\n \n \n Optional\n officialSchoolNumber\n \n \n Optional\n previousExternalId\n \n \n Optional\n schoolYear\n \n \n Optional\n systems\n \n \n Optional\n userLoginMigrationId\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(params: LegacySchoolDo)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:31\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n \n LegacySchoolDo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n features\n \n \n \n \n \n \n Type : SchoolFeatures[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n federalState\n \n \n \n \n \n \n Type : FederalState\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n inMaintenanceSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n inUserMigration\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n officialSchoolNumber\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n previousExternalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n schoolYear\n \n \n \n \n \n \n Type : SchoolYear\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n systems\n \n \n \n \n \n \n Type : EntityId[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n userLoginMigrationId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/legacy-school.do.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { FederalState, SchoolFeatures, SchoolYear } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseDO } from './base.do';\n\n/**\n * @deprecated because it extends the deprecated BaseDO.\n */\nexport class LegacySchoolDo extends BaseDO {\n\texternalId?: string;\n\n\tinMaintenanceSince?: Date;\n\n\tinUserMigration?: boolean;\n\n\tpreviousExternalId?: string;\n\n\tname: string;\n\n\tofficialSchoolNumber?: string;\n\n\tsystems?: EntityId[];\n\n\tfeatures?: SchoolFeatures[];\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tschoolYear?: SchoolYear;\n\n\tuserLoginMigrationId?: EntityId;\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tfederalState: FederalState;\n\n\tconstructor(params: LegacySchoolDo) {\n\t\tsuper();\n\t\tthis.id = params.id;\n\t\tthis.externalId = params.externalId;\n\t\tthis.features = params.features;\n\t\tthis.inMaintenanceSince = params.inMaintenanceSince;\n\t\tthis.inUserMigration = params.inUserMigration;\n\t\tthis.name = params.name;\n\t\tthis.previousExternalId = params.previousExternalId;\n\t\tthis.officialSchoolNumber = params.officialSchoolNumber;\n\t\tthis.schoolYear = params.schoolYear;\n\t\tthis.systems = params.systems;\n\t\tthis.userLoginMigrationId = params.userLoginMigrationId;\n\t\tthis.federalState = params.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LegacySchoolFactory.html":{"url":"classes/LegacySchoolFactory.html","title":"class - LegacySchoolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LegacySchoolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/legacy-school.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LegacySchoolDo } from '@shared/domain';\nimport { federalStateFactory } from '../federal-state.factory';\nimport { schoolYearFactory } from '../schoolyear.factory';\nimport { DoBaseFactory } from './do-base.factory';\n\nclass LegacySchoolFactory extends DoBaseFactory {}\n\nexport const legacySchoolDoFactory = LegacySchoolFactory.define(LegacySchoolDo, ({ sequence }) => {\n\treturn {\n\t\tname: `schoolName-${sequence}`,\n\t\texternalId: '123',\n\t\tfeatures: [],\n\t\tinMaintenanceSince: new Date(2020, 1),\n\t\tinUserMigration: true,\n\t\toauthMigrationMandatory: new Date(2020, 1),\n\t\toauthMigrationPossible: new Date(2020, 1),\n\t\toauthMigrationFinished: new Date(2020, 1),\n\t\tpreviousExternalId: '456',\n\t\tofficialSchoolNumber: '789',\n\t\tsystems: [],\n\t\tfederalState: federalStateFactory.build(),\n\t\tschoolYear: schoolYearFactory.build(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LegacySchoolModule.html":{"url":"modules/LegacySchoolModule.html","title":"module - LegacySchoolModule","body":"\n \n\n\n\n\n Modules\n LegacySchoolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LegacySchoolModule\n\n\n\ncluster_LegacySchoolModule_providers\n\n\n\ncluster_LegacySchoolModule_imports\n\n\n\ncluster_LegacySchoolModule_exports\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nLegacySchoolModule -->\n\nLoggerModule->LegacySchoolModule\n\n\n\n\n\nFederalStateService \n\nFederalStateService \n\nFederalStateService -->\n\nLegacySchoolModule->FederalStateService \n\n\n\n\n\nLegacySchoolService \n\nLegacySchoolService \n\nLegacySchoolService -->\n\nLegacySchoolModule->LegacySchoolService \n\n\n\n\n\nSchoolYearService \n\nSchoolYearService \n\nSchoolYearService -->\n\nLegacySchoolModule->SchoolYearService \n\n\n\n\n\nFederalStateRepo\n\nFederalStateRepo\n\nLegacySchoolModule -->\n\nFederalStateRepo->LegacySchoolModule\n\n\n\n\n\nFederalStateService\n\nFederalStateService\n\nLegacySchoolModule -->\n\nFederalStateService->LegacySchoolModule\n\n\n\n\n\nLegacySchoolRepo\n\nLegacySchoolRepo\n\nLegacySchoolModule -->\n\nLegacySchoolRepo->LegacySchoolModule\n\n\n\n\n\nLegacySchoolService\n\nLegacySchoolService\n\nLegacySchoolModule -->\n\nLegacySchoolService->LegacySchoolModule\n\n\n\n\n\nSchoolValidationService\n\nSchoolValidationService\n\nLegacySchoolModule -->\n\nSchoolValidationService->LegacySchoolModule\n\n\n\n\n\nSchoolYearRepo\n\nSchoolYearRepo\n\nLegacySchoolModule -->\n\nSchoolYearRepo->LegacySchoolModule\n\n\n\n\n\nSchoolYearService\n\nSchoolYearService\n\nLegacySchoolModule -->\n\nSchoolYearService->LegacySchoolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/legacy-school/legacy-school.module.ts\n \n\n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n \n \n \n Providers\n \n \n FederalStateRepo\n \n \n FederalStateService\n \n \n LegacySchoolRepo\n \n \n LegacySchoolService\n \n \n SchoolValidationService\n \n \n SchoolYearRepo\n \n \n SchoolYearService\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n FederalStateService\n \n \n LegacySchoolService\n \n \n SchoolYearService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { FederalStateRepo, LegacySchoolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { SchoolYearRepo } from './repo';\nimport { FederalStateService, LegacySchoolService, SchoolValidationService, SchoolYearService } from './service';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Module({\n\timports: [LoggerModule],\n\tproviders: [\n\t\tLegacySchoolRepo,\n\t\tLegacySchoolService,\n\t\tSchoolYearService,\n\t\tSchoolYearRepo,\n\t\tFederalStateService,\n\t\tFederalStateRepo,\n\t\tSchoolValidationService,\n\t],\n\texports: [LegacySchoolService, SchoolYearService, FederalStateService],\n})\nexport class LegacySchoolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacySchoolRepo.html":{"url":"injectables/LegacySchoolRepo.html","title":"injectable - LegacySchoolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacySchoolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/school/legacy-school.repo.ts\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findByExternalId\n \n \n Async\n findBySchoolNumber\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/school/legacy-school.repo.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: ISchoolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:38\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ISchoolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalId\n \n \n \n \n \n \n \n findByExternalId(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/school/legacy-school.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolNumber\n \n \n \n \n \n \n \n findBySchoolNumber(officialSchoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/school/legacy-school.repo.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: LegacySchoolDo)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:59\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ISchoolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: SchoolEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LegacySchoolDo\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/school/legacy-school.repo.ts:17\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId, ISchoolProperties, LegacySchoolDo, SchoolEntity, System, UserLoginMigration } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { BaseDORepo } from '../base.do.repo';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Injectable()\nexport class LegacySchoolRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn SchoolEntity;\n\t}\n\n\tasync findByExternalId(externalId: string, systemId: string): Promise {\n\t\tconst school: SchoolEntity | null = await this._em.findOne(SchoolEntity, { externalId, systems: systemId });\n\n\t\tconst schoolDo: LegacySchoolDo | null = school ? this.mapEntityToDO(school) : null;\n\t\treturn schoolDo;\n\t}\n\n\tasync findBySchoolNumber(officialSchoolNumber: string): Promise {\n\t\tconst [schools, count] = await this._em.findAndCount(SchoolEntity, { officialSchoolNumber });\n\t\tif (count > 1) {\n\t\t\tthrow new InternalServerErrorException(`Multiple schools found for officialSchoolNumber ${officialSchoolNumber}`);\n\t\t}\n\n\t\tconst schoolDo: LegacySchoolDo | null = schools[0] ? this.mapEntityToDO(schools[0]) : null;\n\t\treturn schoolDo;\n\t}\n\n\tentityFactory(props: ISchoolProperties): SchoolEntity {\n\t\treturn new SchoolEntity(props);\n\t}\n\n\tmapEntityToDO(entity: SchoolEntity): LegacySchoolDo {\n\t\treturn new LegacySchoolDo({\n\t\t\tid: entity.id,\n\t\t\texternalId: entity.externalId,\n\t\t\tfeatures: entity.features,\n\t\t\tinMaintenanceSince: entity.inMaintenanceSince,\n\t\t\tinUserMigration: entity.inUserMigration,\n\t\t\tname: entity.name,\n\t\t\tpreviousExternalId: entity.previousExternalId,\n\t\t\tofficialSchoolNumber: entity.officialSchoolNumber,\n\t\t\tschoolYear: entity.schoolYear,\n\t\t\tsystems: entity.systems.isInitialized() ? entity.systems.getItems().map((system: System) => system.id) : [],\n\t\t\tuserLoginMigrationId: entity.userLoginMigration?.id,\n\t\t\tfederalState: entity.federalState,\n\t\t});\n\t}\n\n\tmapDOToEntityProperties(entityDO: LegacySchoolDo): ISchoolProperties {\n\t\treturn {\n\t\t\texternalId: entityDO.externalId,\n\t\t\tfeatures: entityDO.features,\n\t\t\tinMaintenanceSince: entityDO.inMaintenanceSince,\n\t\t\tinUserMigration: entityDO.inUserMigration,\n\t\t\tname: entityDO.name,\n\t\t\tpreviousExternalId: entityDO.previousExternalId,\n\t\t\tofficialSchoolNumber: entityDO.officialSchoolNumber,\n\t\t\tschoolYear: entityDO.schoolYear,\n\t\t\tsystems: entityDO.systems\n\t\t\t\t? entityDO.systems.map((systemId: EntityId) => this._em.getReference(System, systemId))\n\t\t\t\t: [],\n\t\t\tuserLoginMigration: entityDO.userLoginMigrationId\n\t\t\t\t? this._em.getReference(UserLoginMigration, entityDO.userLoginMigrationId)\n\t\t\t\t: undefined,\n\t\t\tfederalState: entityDO.federalState,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacySchoolRule.html":{"url":"injectables/LegacySchoolRule.html","title":"injectable - LegacySchoolRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacySchoolRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/legacy-school.rule.ts\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/legacy-school.rule.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: LegacySchoolDo, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/legacy-school.rule.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, object: AuthorizableObject | BaseDO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/legacy-school.rule.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n AuthorizableObject | BaseDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { BaseDO, LegacySchoolDo } from '@shared/domain';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { AuthorizableObject } from '../domain-object';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Injectable()\nexport class LegacySchoolRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, object: AuthorizableObject | BaseDO): boolean {\n\t\tconst isMatched = object instanceof LegacySchoolDo;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: LegacySchoolDo, context: AuthorizationContext): boolean {\n\t\tconst hasPermission =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) && user.school.id === entity.id;\n\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacySchoolService.html":{"url":"injectables/LegacySchoolService.html","title":"injectable - LegacySchoolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacySchoolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/service/legacy-school.service.ts\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getSchoolByExternalId\n \n \n Async\n getSchoolById\n \n \n Async\n getSchoolBySchoolNumber\n \n \n Async\n hasFeature\n \n \n Async\n removeFeature\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolRepo: LegacySchoolRepo, schoolValidationService: SchoolValidationService)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolRepo\n \n \n LegacySchoolRepo\n \n \n \n No\n \n \n \n \n schoolValidationService\n \n \n SchoolValidationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getSchoolByExternalId\n \n \n \n \n \n \n \n getSchoolByExternalId(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolById\n \n \n \n \n \n \n \n getSchoolById(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolBySchoolNumber\n \n \n \n \n \n \n \n getSchoolBySchoolNumber(schoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n hasFeature\n \n \n \n \n \n \n \n hasFeature(schoolId: EntityId, feature: SchoolFeatures)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n feature\n \n SchoolFeatures\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n removeFeature\n \n \n \n \n \n \n \n removeFeature(schoolId: EntityId, feature: SchoolFeatures)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n feature\n \n SchoolFeatures\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(school: LegacySchoolDo, validate)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/legacy-school.service.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n \n \n\n \n \n validate\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, SchoolFeatures } from '@shared/domain';\nimport { LegacySchoolRepo } from '@shared/repo';\nimport { SchoolValidationService } from './validation';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Injectable()\nexport class LegacySchoolService {\n\tconstructor(\n\t\tprivate readonly schoolRepo: LegacySchoolRepo,\n\t\tprivate readonly schoolValidationService: SchoolValidationService\n\t) {}\n\n\tasync hasFeature(schoolId: EntityId, feature: SchoolFeatures): Promise {\n\t\tconst entity: LegacySchoolDo = await this.schoolRepo.findById(schoolId);\n\t\treturn entity.features ? entity.features.includes(feature) : false;\n\t}\n\n\tasync removeFeature(schoolId: EntityId, feature: SchoolFeatures): Promise {\n\t\tconst school: LegacySchoolDo = await this.schoolRepo.findById(schoolId);\n\t\tif (school.features && school.features.includes(feature)) {\n\t\t\tschool.features = school.features.filter((f: SchoolFeatures) => f !== feature);\n\t\t\tawait this.schoolRepo.save(school);\n\t\t}\n\t}\n\n\tasync getSchoolById(id: string): Promise {\n\t\tconst schoolDO: LegacySchoolDo = await this.schoolRepo.findById(id);\n\n\t\treturn schoolDO;\n\t}\n\n\tasync getSchoolByExternalId(externalId: string, systemId: string): Promise {\n\t\tconst schoolDO: LegacySchoolDo | null = await this.schoolRepo.findByExternalId(externalId, systemId);\n\n\t\treturn schoolDO;\n\t}\n\n\tasync getSchoolBySchoolNumber(schoolNumber: string): Promise {\n\t\tconst schoolDO: LegacySchoolDo | null = await this.schoolRepo.findBySchoolNumber(schoolNumber);\n\n\t\treturn schoolDO;\n\t}\n\n\tasync save(school: LegacySchoolDo, validate = false): Promise {\n\t\tif (validate) {\n\t\t\tawait this.schoolValidationService.validate(school);\n\t\t}\n\n\t\tconst ret: LegacySchoolDo = await this.schoolRepo.save(school);\n\n\t\treturn ret;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LegacySchoolUc.html":{"url":"injectables/LegacySchoolUc.html","title":"injectable - LegacySchoolUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LegacySchoolUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts\n \n\n \n Deprecated\n \n \n because it uses the deprecated LegacySchoolDo.\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getMigration\n \n \n Async\n setMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, authService: AuthorizationService, schoolMigrationService: SchoolMigrationService, userLoginMigrationService: UserLoginMigrationService, userLoginMigrationRevertService: UserLoginMigrationRevertService)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n authService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n userLoginMigrationRevertService\n \n \n UserLoginMigrationRevertService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getMigration\n \n \n \n \n \n \n \n getMigration(schoolId: string, userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts:77\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigration\n \n \n \n \n \n \n \n setMigration(schoolId: string, oauthMigrationPossible: boolean, oauthMigrationMandatory: boolean, oauthMigrationFinished: boolean, userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/uc/legacy-school.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n oauthMigrationPossible\n \n boolean\n \n\n \n No\n \n\n\n \n \n oauthMigrationMandatory\n \n boolean\n \n\n \n No\n \n\n\n \n \n oauthMigrationFinished\n \n boolean\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Permission, LegacySchoolDo, UserLoginMigrationDO } from '@shared/domain';\nimport { Action, AuthorizableReferenceType, AuthorizationService } from '@src/modules/authorization';\nimport {\n\tSchoolMigrationService,\n\tUserLoginMigrationRevertService,\n\tUserLoginMigrationService,\n} from '@src/modules/user-login-migration';\nimport { LegacySchoolService } from '../service';\nimport { OauthMigrationDto } from './dto/oauth-migration.dto';\n\n/**\n * @deprecated because it uses the deprecated LegacySchoolDo.\n */\n@Injectable()\nexport class LegacySchoolUc {\n\tconstructor(\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly authService: AuthorizationService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService,\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly userLoginMigrationRevertService: UserLoginMigrationRevertService\n\t) {}\n\n\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-673 Refactor this and split it up\n\tasync setMigration(\n\t\tschoolId: string,\n\t\toauthMigrationPossible: boolean,\n\t\toauthMigrationMandatory: boolean,\n\t\toauthMigrationFinished: boolean,\n\t\tuserId: string\n\t): Promise {\n\t\tawait this.authService.checkPermissionByReferences(userId, AuthorizableReferenceType.School, schoolId, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [Permission.SCHOOL_EDIT],\n\t\t});\n\n\t\tconst existingUserLoginMigration: UserLoginMigrationDO | null =\n\t\t\tawait this.userLoginMigrationService.findMigrationBySchool(schoolId);\n\n\t\tif (existingUserLoginMigration) {\n\t\t\tthis.schoolMigrationService.validateGracePeriod(existingUserLoginMigration);\n\t\t}\n\n\t\tconst updatedUserLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationService.setMigration(\n\t\t\tschoolId,\n\t\t\toauthMigrationPossible,\n\t\t\toauthMigrationMandatory,\n\t\t\toauthMigrationFinished\n\t\t);\n\n\t\tif (!existingUserLoginMigration?.closedAt && updatedUserLoginMigration.closedAt) {\n\t\t\tconst hasSchoolMigratedUser = await this.schoolMigrationService.hasSchoolMigratedUser(schoolId);\n\n\t\t\tif (!hasSchoolMigratedUser) {\n\t\t\t\tawait this.userLoginMigrationRevertService.revertUserLoginMigration(updatedUserLoginMigration);\n\t\t\t} else {\n\t\t\t\tawait this.schoolMigrationService.markUnmigratedUsersAsOutdated(schoolId);\n\t\t\t}\n\t\t} else if (existingUserLoginMigration?.closedAt && !updatedUserLoginMigration.closedAt) {\n\t\t\tawait this.schoolMigrationService.unmarkOutdatedUsers(schoolId);\n\t\t}\n\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst migrationDto: OauthMigrationDto = new OauthMigrationDto({\n\t\t\toauthMigrationPossible: !updatedUserLoginMigration.closedAt ? updatedUserLoginMigration.startedAt : undefined,\n\t\t\toauthMigrationMandatory: updatedUserLoginMigration.mandatorySince,\n\t\t\toauthMigrationFinished: updatedUserLoginMigration.closedAt,\n\t\t\toauthMigrationFinalFinish: updatedUserLoginMigration.finishedAt,\n\t\t\tenableMigrationStart: !!school.officialSchoolNumber,\n\t\t});\n\n\t\treturn migrationDto;\n\t}\n\n\tasync getMigration(schoolId: string, userId: string): Promise {\n\t\tawait this.authService.checkPermissionByReferences(userId, AuthorizableReferenceType.School, schoolId, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [Permission.SCHOOL_EDIT],\n\t\t});\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst migrationDto: OauthMigrationDto = new OauthMigrationDto({\n\t\t\toauthMigrationPossible:\n\t\t\t\tuserLoginMigration && !userLoginMigration.closedAt ? userLoginMigration.startedAt : undefined,\n\t\t\toauthMigrationMandatory: userLoginMigration ? userLoginMigration.mandatorySince : undefined,\n\t\t\toauthMigrationFinished: userLoginMigration ? userLoginMigration.closedAt : undefined,\n\t\t\toauthMigrationFinalFinish: userLoginMigration ? userLoginMigration.finishedAt : undefined,\n\t\t\tenableMigrationStart: !!school.officialSchoolNumber,\n\t\t});\n\n\t\treturn migrationDto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LessonApiModule.html":{"url":"modules/LessonApiModule.html","title":"module - LessonApiModule","body":"\n \n\n\n\n\n Modules\n LessonApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LessonApiModule\n\n\n\ncluster_LessonApiModule_providers\n\n\n\ncluster_LessonApiModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nLessonApiModule\n\nLessonApiModule\n\nLessonApiModule -->\n\nAuthorizationModule->LessonApiModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nLessonApiModule -->\n\nLessonModule->LessonApiModule\n\n\n\n\n\nLessonUC\n\nLessonUC\n\nLessonApiModule -->\n\nLessonUC->LessonApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/lesson/lesson-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n LessonUC\n \n \n \n \n Controllers\n \n \n LessonController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LessonModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { LessonController } from './controller';\nimport { LessonModule } from './lesson.module';\nimport { LessonUC } from './uc';\n\n@Module({\n\timports: [LessonModule, AuthorizationModule],\n\tcontrollers: [LessonController],\n\tproviders: [LessonUC],\n})\nexport class LessonApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/LessonBoardElement.html":{"url":"entities/LessonBoardElement.html","title":"entity - LessonBoardElement","body":"\n \n\n\n\n\n\n\n\n Entities\n LessonBoardElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/lesson-boardelement.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : LessonEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('LessonEntity')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/lesson-boardelement.entity.ts:13\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { LessonEntity } from '../lesson.entity';\nimport { BoardElement, BoardElementType } from './boardelement.entity';\n\n@Entity({ discriminatorValue: BoardElementType.Lesson })\nexport class LessonBoardElement extends BoardElement {\n\tconstructor(props: { target: LessonEntity }) {\n\t\tsuper(props);\n\t\tthis.boardElementType = BoardElementType.Lesson;\n\t}\n\n\t@ManyToOne('LessonEntity')\n\ttarget!: LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/LessonController.html":{"url":"controllers/LessonController.html","title":"controller - LessonController","body":"\n \n\n\n\n\n\n\n Controllers\n LessonController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/controller/lesson.controller.ts\n \n\n \n Prefix\n \n \n lessons\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(urlParams: LessonUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':lessonId')\n \n \n\n \n \n Defined in apps/server/src/modules/lesson/controller/lesson.controller.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n LessonUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Delete, Param } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { LessonUC } from '../uc';\nimport { LessonUrlParams } from './dto';\n\n@ApiTags('Lesson')\n@Authenticate('jwt')\n@Controller('lessons')\nexport class LessonController {\n\tconstructor(private readonly lessonUC: LessonUC) {}\n\n\t@Delete(':lessonId')\n\tasync delete(@Param() urlParams: LessonUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst result = await this.lessonUC.delete(currentUser.userId, urlParams.lessonId);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonCopyApiParams.html":{"url":"classes/LessonCopyApiParams.html","title":"class - LessonCopyApiParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonCopyApiParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/lesson/lesson-copy.params.ts\n \n\n\n \n Description\n \n \n DTO for creating a task copy.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()@ApiPropertyOptional({pattern: '[a-f0-9]{24}', description: 'Destination course parent Id the lesson is copied to'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/lesson/lesson-copy.params.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsMongoId, IsOptional } from 'class-validator';\n\n/**\n * DTO for creating a task copy.\n */\nexport class LessonCopyApiParams {\n\t@IsOptional()\n\t@IsMongoId()\n\t@ApiPropertyOptional({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Destination course parent Id the lesson is copied to',\n\t})\n\tcourseId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonCopyService.html":{"url":"injectables/LessonCopyService.html","title":"injectable - LessonCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonCopyService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/service/lesson-copy.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n updateCopiedEmbeddedTaskId\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n copyEmbeddedTaskLink\n \n \n Private\n Async\n copyEtherpad\n \n \n Private\n Static\n copyGeogebra\n \n \n Private\n copyLernStore\n \n \n Async\n copyLesson\n \n \n Private\n Async\n copyLessonContent\n \n \n Private\n copyLinkedMaterials\n \n \n Private\n Async\n copyLinkedTasks\n \n \n Private\n Async\n copyNexboard\n \n \n Private\n copyTextContent\n \n \n Private\n deriveCopyStatus\n \n \n Private\n lessonStatusContent\n \n \n Private\n Static\n lessonStatusMetadata\n \n \n Private\n replaceUrlsInContents\n \n \n updateCopiedEmbeddedTasks\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(copyHelperService: CopyHelperService, taskCopyService: TaskCopyService, etherpadService: EtherpadService, nexboardService: NexboardService, lessonRepo: LessonRepo, copyFilesService: CopyFilesService)\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:27\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n taskCopyService\n \n \n TaskCopyService\n \n \n \n No\n \n \n \n \n etherpadService\n \n \n EtherpadService\n \n \n \n No\n \n \n \n \n nexboardService\n \n \n NexboardService\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n copyFilesService\n \n \n CopyFilesService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n copyEmbeddedTaskLink\n \n \n \n \n \n \n \n copyEmbeddedTaskLink(originalElement: IComponentProperties)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:391\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalElement\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyEtherpad\n \n \n \n \n \n \n \n copyEtherpad(originalElement: IComponentProperties, params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:297\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalElement\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n copyGeogebra\n \n \n \n \n \n \n \n copyGeogebra(originalElement: IComponentProperties)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:290\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalElement\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n copyLernStore\n \n \n \n \n \n \n \n copyLernStore(element: IComponentProperties)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:264\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyLessonContent\n \n \n \n \n \n \n \n copyLessonContent(content: IComponentProperties[], params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n content\n \n IComponentProperties[]\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n copyLinkedMaterials\n \n \n \n \n \n \n \n copyLinkedMaterials(originalLesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:361\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalLesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyLinkedTasks\n \n \n \n \n \n \n \n copyLinkedTasks(destinationLesson: LessonEntity, lesson: LessonEntity, params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:338\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n destinationLesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n lesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyNexboard\n \n \n \n \n \n \n \n copyNexboard(originalElement: IComponentProperties, params: LessonCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:320\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalElement\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n copyTextContent\n \n \n \n \n \n \n \n copyTextContent(element: IComponentProperties)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:252\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n IComponentProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deriveCopyStatus\n \n \n \n \n \n \n \n deriveCopyStatus(contentStatus: CopyStatus[], materialsStatus: CopyStatus[], copiedTasksStatus: CopyStatus[], lessonCopy: LessonEntity, originalLesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contentStatus\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n materialsStatus\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n copiedTasksStatus\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n lessonCopy\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n originalLesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : { status: CopyStatus; elements: {}; }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n lessonStatusContent\n \n \n \n \n \n \n \n lessonStatusContent(elements: CopyStatus[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:406\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n elements\n \n CopyStatus[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n lessonStatusMetadata\n \n \n \n \n \n \n \n lessonStatusMetadata()\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:397\n \n \n\n\n \n \n\n \n Returns : CopyStatus[]\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n replaceUrlsInContents\n \n \n \n \n \n \n \n replaceUrlsInContents(contents: IComponentProperties[], fileUrlReplacements: FileUrlReplacement[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:149\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contents\n \n IComponentProperties[]\n \n\n \n No\n \n\n\n \n \n fileUrlReplacements\n \n FileUrlReplacement[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IComponentProperties[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n updateCopiedEmbeddedTasks\n \n \n \n \n \n \nupdateCopiedEmbeddedTasks(lessonStatus: CopyStatus, copyDict: Map)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:107\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n copyDict\n \n Map\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n updateCopiedEmbeddedTaskId\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/lesson-copy.service.ts:123\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tBaseEntity,\n\tComponentType,\n\tEntityId,\n\tIComponentEtherpadProperties,\n\tIComponentGeogebraProperties,\n\tIComponentLernstoreProperties,\n\tIComponentNexboardProperties,\n\tIComponentProperties,\n\tIComponentTextProperties,\n\tLessonEntity,\n\tMaterial,\n} from '@shared/domain';\nimport { LessonRepo } from '@shared/repo';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@src/modules/copy-helper';\nimport { CopyFilesService } from '@src/modules/files-storage-client';\nimport { FileUrlReplacement } from '@src/modules/files-storage-client/service/copy-files.service';\nimport { TaskCopyService } from '@src/modules/task/service/task-copy.service';\nimport { randomBytes } from 'crypto';\nimport { LessonCopyParams } from '../types';\nimport { EtherpadService } from './etherpad.service';\nimport { NexboardService } from './nexboard.service';\n\n@Injectable()\nexport class LessonCopyService {\n\tconstructor(\n\t\tprivate readonly copyHelperService: CopyHelperService,\n\t\tprivate readonly taskCopyService: TaskCopyService,\n\t\tprivate readonly etherpadService: EtherpadService,\n\t\tprivate readonly nexboardService: NexboardService,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly copyFilesService: CopyFilesService\n\t) {}\n\n\tasync copyLesson(params: LessonCopyParams): Promise {\n\t\tconst lesson: LessonEntity = await this.lessonRepo.findById(params.originalLessonId);\n\t\tconst { copiedContent, contentStatus } = await this.copyLessonContent(lesson.contents, params);\n\t\tconst { copiedMaterials, materialsStatus } = this.copyLinkedMaterials(lesson);\n\n\t\tconst lessonCopy = new LessonEntity({\n\t\t\tcourse: params.destinationCourse,\n\t\t\thidden: true,\n\t\t\tname: params.copyName ?? lesson.name,\n\t\t\tposition: lesson.position,\n\t\t\tcontents: copiedContent,\n\t\t\tmaterials: copiedMaterials,\n\t\t});\n\n\t\tawait this.lessonRepo.createLesson(lessonCopy);\n\n\t\tconst copiedTasksStatus: CopyStatus[] = await this.copyLinkedTasks(lessonCopy, lesson, params);\n\n\t\tconst { status, elements } = this.deriveCopyStatus(\n\t\t\tcontentStatus,\n\t\t\tmaterialsStatus,\n\t\t\tcopiedTasksStatus,\n\t\t\tlessonCopy,\n\t\t\tlesson\n\t\t);\n\n\t\tawait this.lessonRepo.save(lessonCopy);\n\t\tconst copyDict = this.copyHelperService.buildCopyEntityDict(status);\n\t\tconst updatedStatus = this.updateCopiedEmbeddedTasks(status, copyDict);\n\n\t\tconst { fileUrlReplacements, fileCopyStatus } = await this.copyFilesService.copyFilesOfEntity(\n\t\t\tlesson,\n\t\t\tlessonCopy,\n\t\t\tparams.user.id\n\t\t);\n\n\t\telements.push(fileCopyStatus);\n\t\tlessonCopy.contents = this.replaceUrlsInContents(lessonCopy.contents, fileUrlReplacements);\n\n\t\tupdatedStatus.status = this.copyHelperService.deriveStatusFromElements(elements);\n\t\tawait this.lessonRepo.save(lessonCopy);\n\n\t\treturn updatedStatus;\n\t}\n\n\tprivate deriveCopyStatus(\n\t\tcontentStatus: CopyStatus[],\n\t\tmaterialsStatus: CopyStatus[],\n\t\tcopiedTasksStatus: CopyStatus[],\n\t\tlessonCopy: LessonEntity,\n\t\toriginalLesson: LessonEntity\n\t) {\n\t\tconst elements: CopyStatus[] = [\n\t\t\t...LessonCopyService.lessonStatusMetadata(),\n\t\t\t...contentStatus,\n\t\t\t...materialsStatus,\n\t\t\t...copiedTasksStatus,\n\t\t];\n\n\t\tconst status: CopyStatus = {\n\t\t\ttitle: lessonCopy.name,\n\t\t\ttype: CopyElementType.LESSON,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\tcopyEntity: lessonCopy,\n\t\t\toriginalEntity: originalLesson,\n\t\t\telements,\n\t\t};\n\t\treturn { status, elements };\n\t}\n\n\tupdateCopiedEmbeddedTasks(lessonStatus: CopyStatus, copyDict: Map): CopyStatus {\n\t\tconst copiedLesson = lessonStatus.copyEntity as LessonEntity;\n\n\t\tif (copiedLesson?.contents === undefined) {\n\t\t\treturn lessonStatus;\n\t\t}\n\n\t\tcopiedLesson.contents = copiedLesson.contents.map((value: IComponentProperties) =>\n\t\t\tthis.updateCopiedEmbeddedTaskId(value, copyDict)\n\t\t);\n\n\t\tlessonStatus.copyEntity = copiedLesson;\n\n\t\treturn lessonStatus;\n\t}\n\n\tprivate updateCopiedEmbeddedTaskId = (\n\t\tvalue: IComponentProperties,\n\t\tcopyDict: Map\n\t): IComponentProperties => {\n\t\tif (value.component !== ComponentType.INTERNAL || value.content === undefined || value.content.url === undefined) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst { content } = value;\n\t\tconst extractTaskId = (url: string) => {\n\t\t\tconst urlObject = new URL(url, 'https://www.example.com');\n\t\t\tconst taskId = urlObject.pathname.split('/')[2];\n\t\t\treturn taskId;\n\t\t};\n\n\t\tconst originalTaskId = extractTaskId(content.url);\n\t\tconst copiedTask = copyDict.get(originalTaskId);\n\t\tif (!copiedTask) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst url = content.url.replace(originalTaskId, copiedTask.id);\n\t\tconst updateded = { ...value, content: { url } };\n\t\treturn updateded;\n\t};\n\n\tprivate replaceUrlsInContents(\n\t\tcontents: IComponentProperties[],\n\t\tfileUrlReplacements: FileUrlReplacement[]\n\t): IComponentProperties[] {\n\t\tcontents = contents.map((item: IComponentProperties) => {\n\t\t\tif (item.component === 'text' && item.content && 'text' in item.content && item.content.text) {\n\t\t\t\tlet { text } = item.content;\n\t\t\t\tfileUrlReplacements.forEach(({ regex, replacement }) => {\n\t\t\t\t\ttext = text.replace(regex, replacement);\n\t\t\t\t});\n\t\t\t\titem.content.text = text;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\n\t\treturn contents;\n\t}\n\n\tprivate async copyLessonContent(\n\t\tcontent: IComponentProperties[],\n\t\tparams: LessonCopyParams\n\t): Promise {\n\t\tconst etherpadEnabled = Configuration.get('FEATURE_ETHERPAD_ENABLED') as boolean;\n\t\tconst nexboardEnabled = Configuration.get('FEATURE_NEXBOARD_ENABLED') as boolean;\n\t\tconst copiedContent: IComponentProperties[] = [];\n\t\tconst copiedContentStatus: CopyStatus[] = [];\n\t\tfor (let i = 0; i {\n\t\t\t\tconst result = {\n\t\t\t\t\tclient,\n\t\t\t\t\tdescription,\n\t\t\t\t\tmerlinReference,\n\t\t\t\t\ttitle,\n\t\t\t\t\turl,\n\t\t\t\t};\n\t\t\t\treturn result;\n\t\t\t}\n\t\t);\n\n\t\tconst lernstore = {\n\t\t\ttitle: element.title,\n\t\t\thidden: element.hidden,\n\t\t\tcomponent: ComponentType.LERNSTORE,\n\t\t\tuser: element.user, // TODO should be params.user - but that made the server crash, but property is normally undefined\n\t\t\tcontent: {\n\t\t\t\tresources,\n\t\t\t},\n\t\t};\n\t\treturn lernstore as IComponentProperties;\n\t}\n\n\tprivate static copyGeogebra(originalElement: IComponentProperties): IComponentProperties {\n\t\tconst copy = { ...originalElement, hidden: true } as IComponentProperties;\n\t\tcopy.content = { ...copy.content, materialId: '' } as IComponentGeogebraProperties;\n\t\tdelete copy._id;\n\t\treturn copy;\n\t}\n\n\tprivate async copyEtherpad(\n\t\toriginalElement: IComponentProperties,\n\t\tparams: LessonCopyParams\n\t): Promise {\n\t\tconst copy = { ...originalElement } as IComponentProperties;\n\t\tdelete copy._id;\n\t\tconst content = { ...copy.content, url: '' } as IComponentEtherpadProperties;\n\t\tcontent.title = randomBytes(12).toString('hex');\n\n\t\tconst etherpadPadId = await this.etherpadService.createEtherpad(\n\t\t\tparams.user.id,\n\t\t\tparams.destinationCourse.id,\n\t\t\tcontent.title\n\t\t);\n\t\tif (etherpadPadId) {\n\t\t\tconst etherpadUri = Configuration.get('ETHERPAD__PAD_URI') as string;\n\t\t\tcontent.url = `${etherpadUri}/${etherpadPadId}`;\n\t\t\tcopy.content = content;\n\t\t\treturn copy;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate async copyNexboard(\n\t\toriginalElement: IComponentProperties,\n\t\tparams: LessonCopyParams\n\t): Promise {\n\t\tconst copy = { ...originalElement } as IComponentProperties;\n\t\tdelete copy._id;\n\t\tconst content = { ...copy.content, url: '', board: '' } as IComponentNexboardProperties;\n\n\t\tconst nexboard = await this.nexboardService.createNexboard(params.user.id, content.title, content.description);\n\t\tif (nexboard) {\n\t\t\tcontent.url = nexboard.url;\n\t\t\tcontent.board = nexboard.board;\n\t\t\tcopy.content = content;\n\t\t\treturn copy;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate async copyLinkedTasks(destinationLesson: LessonEntity, lesson: LessonEntity, params: LessonCopyParams) {\n\t\tconst linkedTasks = lesson.getLessonLinkedTasks();\n\t\tif (linkedTasks.length > 0) {\n\t\t\tconst copiedTasksStatus = await Promise.all(\n\t\t\t\tlinkedTasks.map((element) =>\n\t\t\t\t\tthis.taskCopyService.copyTask({\n\t\t\t\t\t\toriginalTaskId: element.id,\n\t\t\t\t\t\tdestinationCourse: params.destinationCourse,\n\t\t\t\t\t\tdestinationLesson,\n\t\t\t\t\t\tuser: params.user,\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t);\n\t\t\tconst taskGroupStatus = {\n\t\t\t\ttype: CopyElementType.TASK_GROUP,\n\t\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(copiedTasksStatus),\n\t\t\t\telements: copiedTasksStatus,\n\t\t\t};\n\t\t\treturn [taskGroupStatus];\n\t\t}\n\t\treturn [];\n\t}\n\n\tprivate copyLinkedMaterials(originalLesson: LessonEntity): {\n\t\tcopiedMaterials: Material[];\n\t\tmaterialsStatus: CopyStatus[];\n\t} {\n\t\tconst linkedItems = originalLesson.getLessonMaterials();\n\t\tconst copiedMaterials: Material[] = [];\n\t\tconst materialsStatus: CopyStatus[] = [];\n\t\tif (linkedItems.length > 0) {\n\t\t\tconst elementsStatus: CopyStatus[] = [];\n\t\t\tlinkedItems.forEach((element) => {\n\t\t\t\tconst material = new Material(element);\n\t\t\t\tcopiedMaterials.push(material);\n\t\t\t\tconst status: CopyStatus = {\n\t\t\t\t\ttitle: element.title,\n\t\t\t\t\ttype: CopyElementType.LERNSTORE_MATERIAL,\n\t\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t\t\tcopyEntity: material,\n\t\t\t\t};\n\t\t\t\telementsStatus.push(status);\n\t\t\t});\n\t\t\tconst materialGroupStatus: CopyStatus = {\n\t\t\t\ttype: CopyElementType.LERNSTORE_MATERIAL_GROUP,\n\t\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elementsStatus),\n\t\t\t\telements: elementsStatus,\n\t\t\t};\n\t\t\tmaterialsStatus.push(materialGroupStatus);\n\t\t}\n\t\treturn { copiedMaterials, materialsStatus };\n\t}\n\n\tprivate copyEmbeddedTaskLink(originalElement: IComponentProperties) {\n\t\tconst copy = JSON.parse(JSON.stringify(originalElement)) as IComponentProperties;\n\t\tdelete copy._id;\n\t\treturn copy;\n\t}\n\n\tprivate static lessonStatusMetadata(): CopyStatus[] {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttype: CopyElementType.METADATA,\n\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t},\n\t\t];\n\t}\n\n\tprivate lessonStatusContent(elements: CopyStatus[]): CopyStatus[] {\n\t\tif (elements.length > 0) {\n\t\t\tconst componentStatus = {\n\t\t\t\ttype: CopyElementType.LESSON_CONTENT_GROUP,\n\t\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\t\telements,\n\t\t\t};\n\t\t\treturn [componentStatus];\n\t\t}\n\t\treturn [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonCopyUC.html":{"url":"injectables/LessonCopyUC.html","title":"injectable - LessonCopyUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonCopyUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyLesson\n \n \n Private\n featureEnabled\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorisation: AuthorizationService, lessonCopyService: LessonCopyService, lessonRepo: LessonRepo, courseRepo: CourseRepo, copyHelperService: CopyHelperService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorisation\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n lessonCopyService\n \n \n LessonCopyService\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(userId: EntityId, lessonId: EntityId, parentParams: LessonCopyParentParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n lessonId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentParams\n \n LessonCopyParentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n featureEnabled\n \n \n \n \n \n \n \n featureEnabled()\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/lesson-copy.uc.ts:62\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { ForbiddenException, Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Permission } from '@shared/domain/interface/permission.enum';\nimport { CourseRepo, LessonRepo } from '@shared/repo';\nimport {\n\tAction,\n\tAuthorizableReferenceType,\n\tAuthorizationContextBuilder,\n\tAuthorizationService,\n} from '@src/modules/authorization';\nimport { CopyHelperService, CopyStatus } from '@src/modules/copy-helper';\nimport { LessonCopyParentParams } from '@src/modules/lesson';\nimport { LessonCopyService } from '@src/modules/lesson/service';\n\n@Injectable()\nexport class LessonCopyUC {\n\tconstructor(\n\t\tprivate readonly authorisation: AuthorizationService,\n\t\tprivate readonly lessonCopyService: LessonCopyService,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly copyHelperService: CopyHelperService\n\t) {}\n\n\tasync copyLesson(userId: EntityId, lessonId: EntityId, parentParams: LessonCopyParentParams): Promise {\n\t\tthis.featureEnabled();\n\t\tconst user = await this.authorisation.getUserWithPermissions(userId);\n\t\tconst originalLesson = await this.lessonRepo.findById(lessonId);\n\t\tconst context = AuthorizationContextBuilder.read([Permission.TOPIC_CREATE]);\n\t\tif (!this.authorisation.hasPermission(user, originalLesson, context)) {\n\t\t\tthrow new ForbiddenException('could not find lesson to copy');\n\t\t}\n\n\t\tconst destinationCourse = parentParams.courseId\n\t\t\t? await this.courseRepo.findById(parentParams.courseId)\n\t\t\t: originalLesson.course;\n\t\tawait this.authorisation.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tAuthorizableReferenceType.Course,\n\t\t\tdestinationCourse.id,\n\t\t\t{\n\t\t\t\taction: Action.write,\n\t\t\t\trequiredPermissions: [],\n\t\t\t}\n\t\t);\n\n\t\tconst [existingLessons] = await this.lessonRepo.findAllByCourseIds([originalLesson.course.id]);\n\t\tconst existingNames = existingLessons.map((l) => l.name);\n\t\tconst copyName = this.copyHelperService.deriveCopyName(originalLesson.name, existingNames);\n\n\t\tconst copyStatus = await this.lessonCopyService.copyLesson({\n\t\t\toriginalLessonId: originalLesson.id,\n\t\t\tdestinationCourse,\n\t\t\tuser,\n\t\t\tcopyName,\n\t\t});\n\n\t\treturn copyStatus;\n\t}\n\n\tprivate featureEnabled() {\n\t\tconst enabled = Configuration.get('FEATURE_COPY_SERVICE_ENABLED') as boolean;\n\t\tif (!enabled) {\n\t\t\tthrow new InternalServerErrorException('Copy Feature not enabled');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/LessonEntity.html":{"url":"entities/LessonEntity.html","title":"entity - LessonEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n LessonEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contents\n \n \n \n \n course\n \n \n \n Optional\n courseGroup\n \n \n \n \n hidden\n \n \n \n materials\n \n \n \n name\n \n \n \n position\n \n \n \n tasks\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contents\n \n \n \n \n \n \n Type : IComponentProperties[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:104\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n course\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('Course', {fieldName: 'courseId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:95\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n courseGroup\n \n \n \n \n \n \n Type : CourseGroup\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('CourseGroup', {fieldName: 'courseGroupId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:98\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n hidden\n \n \n \n \n \n \n Default value : false\n \n \n \n \n Decorators : \n \n \n @Index()@Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:91\n \n \n\n\n \n \n \n \n \n \n \n \n \n materials\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('Material', undefined, {fieldName: 'materialIds'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:107\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:87\n \n \n\n\n \n \n \n \n \n \n \n \n \n position\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:101\n \n \n\n\n \n \n \n \n \n \n \n \n \n tasks\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @OneToMany('Task', 'lesson', {orphanRemoval: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/lesson.entity.ts:110\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { ILearnroomElement } from '@shared/domain/interface';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { CourseGroup } from './coursegroup.entity';\nimport { Material } from './materials.entity';\nimport { Task } from './task.entity';\nimport type { ITaskParent } from './task.entity';\n\nexport interface ILessonProperties {\n\tname: string;\n\thidden: boolean;\n\tcourse: Course;\n\tcourseGroup?: CourseGroup;\n\tposition?: number;\n\tcontents: IComponentProperties[] | [];\n\tmaterials?: Material[];\n}\n\nexport enum ComponentType {\n\tETHERPAD = 'Etherpad',\n\tGEOGEBRA = 'geoGebra',\n\tINTERNAL = 'internal',\n\tLERNSTORE = 'resources',\n\tTEXT = 'text',\n\tNEXBOARD = 'neXboard',\n}\n\nexport interface IComponentTextProperties {\n\ttext: string;\n}\n\nexport interface IComponentGeogebraProperties {\n\tmaterialId: string;\n}\n\nexport interface IComponentLernstoreProperties {\n\tresources: {\n\t\tclient: string;\n\t\tdescription: string;\n\t\tmerlinReference?: string;\n\t\ttitle: string;\n\t\turl: string;\n\t}[];\n}\n\nexport interface IComponentEtherpadProperties {\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentNexboardProperties {\n\tboard: string;\n\tdescription: string;\n\ttitle: string;\n\turl: string;\n}\n\nexport interface IComponentInternalProperties {\n\turl: string;\n}\n\nexport type IComponentProperties = {\n\t_id?: string;\n\ttitle: string;\n\thidden: boolean;\n\tuser?: EntityId;\n} & (\n\t| { component: ComponentType.TEXT; content: IComponentTextProperties }\n\t| { component: ComponentType.ETHERPAD; content: IComponentEtherpadProperties }\n\t| { component: ComponentType.GEOGEBRA; content: IComponentGeogebraProperties }\n\t| { component: ComponentType.INTERNAL; content: IComponentInternalProperties }\n\t| { component: ComponentType.LERNSTORE; content: IComponentLernstoreProperties }\n\t| { component: ComponentType.NEXBOARD; content: IComponentNexboardProperties }\n);\n\nexport interface ILessonParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'lessons' })\nexport class LessonEntity extends BaseEntityWithTimestamps implements ILearnroomElement, ITaskParent {\n\t@Property()\n\tname: string;\n\n\t@Index()\n\t@Property()\n\thidden = false;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId' })\n\tcourse: Course;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@Property()\n\tposition: number;\n\n\t@Property()\n\tcontents: IComponentProperties[] | [];\n\n\t@ManyToMany('Material', undefined, { fieldName: 'materialIds' })\n\tmaterials = new Collection(this);\n\n\t@OneToMany('Task', 'lesson', { orphanRemoval: true })\n\ttasks = new Collection(this);\n\n\tconstructor(props: ILessonProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.hidden !== undefined) this.hidden = props.hidden;\n\t\tthis.course = props.course;\n\t\tthis.courseGroup = props.courseGroup;\n\t\tthis.position = props.position || 0;\n\t\tthis.contents = props.contents;\n\t\tif (props.materials) this.materials.set(props.materials);\n\t}\n\n\tprivate getParent(): ILessonParent {\n\t\tconst parent = this.courseGroup || this.course;\n\n\t\treturn parent;\n\t}\n\n\tprivate getTasksItems(): Task[] {\n\t\tif (!this.tasks.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their tasks that are not loaded.');\n\t\t}\n\t\tconst tasks = this.tasks.getItems();\n\t\treturn tasks;\n\t}\n\n\tgetNumberOfPublishedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPublished());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfDraftTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isDraft());\n\t\treturn filtered.length;\n\t}\n\n\tgetNumberOfPlannedTasks(): number {\n\t\tconst tasks = this.getTasksItems();\n\t\tconst filtered = tasks.filter((task) => task.isPlanned());\n\t\treturn filtered.length;\n\t}\n\n\tgetLessonComponents(): IComponentProperties[] | [] {\n\t\treturn this.contents;\n\t}\n\n\tgetLessonLinkedTasks(): Task[] {\n\t\tconst tasks = this.getTasksItems();\n\t\treturn tasks;\n\t}\n\n\tgetLessonMaterials(): Material[] {\n\t\tif (!this.materials.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Lessons trying to access their materials that are not loaded.');\n\t\t}\n\t\tconst materials = this.materials.getItems();\n\t\treturn materials;\n\t}\n\n\tgetSchoolId(): EntityId {\n\t\tif (!this.courseGroup) {\n\t\t\treturn this.course.school.id;\n\t\t}\n\n\t\treturn this.courseGroup.school.id;\n\t}\n\n\tpublish() {\n\t\tthis.hidden = false;\n\t}\n\n\tunpublish() {\n\t\tthis.hidden = true;\n\t}\n\n\tpublic getStudentIds(): EntityId[] {\n\t\tconst parent = this.getParent();\n\t\tconst studentIds = parent.getStudentIds();\n\n\t\treturn studentIds;\n\t}\n}\n\nexport function isLesson(reference: unknown): reference is LessonEntity {\n\treturn reference instanceof LessonEntity;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonFactory.html":{"url":"classes/LessonFactory.html","title":"class - LessonFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/lesson.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Course, IComponentProperties, ILessonProperties, LessonEntity } from '@shared/domain';\n\nimport { BaseFactory } from './base.factory';\nimport { courseFactory } from './course.factory';\n\nclass LessonFactory extends BaseFactory {}\n\nexport const lessonFactory = LessonFactory.define(\n\tLessonEntity,\n\t({ sequence, params }) => {\n\t\tlet course: Course;\n\t\tif (params.course) {\n\t\t\tcourse = params.course as Course;\n\t\t} else {\n\t\t\tcourse = courseFactory.build();\n\t\t}\n\n\t\tconst contents: IComponentProperties[] = [];\n\t\tif (params.contents) {\n\t\t\tparams.contents.forEach((element) => {\n\t\t\t\tcontents.push(element);\n\t\t\t});\n\t\t}\n\n\t\tconst hidden = params.hidden || false;\n\n\t\treturn {\n\t\t\tname: `lesson #${sequence}`,\n\t\t\tcourse,\n\t\t\tcontents,\n\t\t\thidden,\n\t\t\tmaterials: [],\n\t\t};\n\t}\n);\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LessonModule.html":{"url":"modules/LessonModule.html","title":"module - LessonModule","body":"\n \n\n\n\n\n Modules\n LessonModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LessonModule\n\n\n\ncluster_LessonModule_imports\n\n\n\ncluster_LessonModule_providers\n\n\n\ncluster_LessonModule_exports\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\n\n\nLessonModule\n\nLessonModule\n\nLessonModule -->\n\nCopyHelperModule->LessonModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nLessonModule -->\n\nFilesStorageClientModule->LessonModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nLessonModule -->\n\nLoggerModule->LessonModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nLessonModule -->\n\nTaskModule->LessonModule\n\n\n\n\n\nLessonCopyService \n\nLessonCopyService \n\nLessonCopyService -->\n\nLessonModule->LessonCopyService \n\n\n\n\n\nLessonService \n\nLessonService \n\nLessonService -->\n\nLessonModule->LessonService \n\n\n\n\n\nEtherpadService\n\nEtherpadService\n\nLessonModule -->\n\nEtherpadService->LessonModule\n\n\n\n\n\nFeathersServiceProvider\n\nFeathersServiceProvider\n\nLessonModule -->\n\nFeathersServiceProvider->LessonModule\n\n\n\n\n\nLessonCopyService\n\nLessonCopyService\n\nLessonModule -->\n\nLessonCopyService->LessonModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nLessonModule -->\n\nLessonRepo->LessonModule\n\n\n\n\n\nLessonService\n\nLessonService\n\nLessonModule -->\n\nLessonService->LessonModule\n\n\n\n\n\nNexboardService\n\nNexboardService\n\nLessonModule -->\n\nNexboardService->LessonModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/lesson/lesson.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n EtherpadService\n \n \n FeathersServiceProvider\n \n \n LessonCopyService\n \n \n LessonRepo\n \n \n LessonService\n \n \n NexboardService\n \n \n \n \n Imports\n \n \n CopyHelperModule\n \n \n FilesStorageClientModule\n \n \n LoggerModule\n \n \n TaskModule\n \n \n \n \n Exports\n \n \n LessonCopyService\n \n \n LessonService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { FeathersServiceProvider } from '@shared/infra/feathers';\nimport { LessonRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { FilesStorageClientModule } from '@src/modules/files-storage-client';\nimport { TaskModule } from '@src/modules/task';\nimport { EtherpadService, LessonCopyService, LessonService, NexboardService } from './service';\n\n@Module({\n\timports: [FilesStorageClientModule, LoggerModule, CopyHelperModule, TaskModule],\n\tproviders: [LessonRepo, LessonService, EtherpadService, NexboardService, LessonCopyService, FeathersServiceProvider],\n\texports: [LessonService, LessonCopyService],\n})\nexport class LessonModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonRepo.html":{"url":"injectables/LessonRepo.html","title":"injectable - LessonRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/lesson/lesson.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createLesson\n \n \n Async\n findAllByCourseIds\n \n \n Async\n findById\n \n \n Public\n Async\n findByUserId\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createLesson\n \n \n \n \n \n \n \n createLesson(lesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByCourseIds\n \n \n \n \n \n \n \n findAllByCourseIds(courseIds: EntityId[], filters?: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson.repo.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:17\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson.repo.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/lesson/lesson.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, LessonEntity, SortOrder } from '@shared/domain';\nimport { EntityDictionary } from '@mikro-orm/core';\nimport { BaseRepo } from '../base.repo';\nimport { LessonScope } from './lesson-scope';\n\n@Injectable()\nexport class LessonRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn LessonEntity;\n\t}\n\n\tasync createLesson(lesson: LessonEntity): Promise {\n\t\treturn this.save(this.create(lesson));\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst lesson = await super.findById(id);\n\t\tawait this._em.populate(lesson, ['course', 'tasks', 'materials', 'courseGroup.course']);\n\t\treturn lesson;\n\t}\n\n\tasync findAllByCourseIds(courseIds: EntityId[], filters?: { hidden?: boolean }): Promise> {\n\t\tconst scope = new LessonScope();\n\n\t\tscope.byCourseIds(courseIds);\n\n\t\tif (filters?.hidden !== undefined) {\n\t\t\tscope.byHidden(filters.hidden);\n\t\t}\n\n\t\tconst order = { position: SortOrder.asc };\n\n\t\tconst [lessons, count] = await this._em.findAndCount(LessonEntity, scope.query, { orderBy: order });\n\n\t\tawait this._em.populate(lessons, ['course', 'tasks', 'materials']);\n\n\t\treturn [lessons, count];\n\t}\n\n\tpublic async findByUserId(userId: EntityId): Promise {\n\t\tconst pipeline = [\n\t\t\t{\n\t\t\t\t$match: {\n\t\t\t\t\tcontents: {\n\t\t\t\t\t\t$elemMatch: {\n\t\t\t\t\t\t\tuser: userId,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\n\t\tconst rawLessonsDocuments = await this._em.aggregate(LessonEntity, pipeline);\n\n\t\tconst lessons = rawLessonsDocuments.map((rawLessonDocument) =>\n\t\t\tthis._em.map(LessonEntity, rawLessonDocument as EntityDictionary)\n\t\t);\n\n\t\treturn lessons;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonRule.html":{"url":"injectables/LessonRule.html","title":"injectable - LessonRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/lesson.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n courseGroupPermission\n \n \n Private\n coursePermission\n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n Private\n lessonReadPermission\n \n \n Private\n lessonWritePermission\n \n \n Private\n parentPermission\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper, courseRule: CourseRule, courseGroupRule: CourseGroupRule)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n courseRule\n \n \n CourseRule\n \n \n \n No\n \n \n \n \n courseGroupRule\n \n \n CourseGroupRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n courseGroupPermission\n \n \n \n \n \n \n \n courseGroupPermission(user: User, entity: CourseGroup, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n CourseGroup\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n coursePermission\n \n \n \n \n \n \n \n coursePermission(user: User, entity: Course, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Course\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: LessonEntity, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n lessonReadPermission\n \n \n \n \n \n \n \n lessonReadPermission(user: User, entity: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n lessonWritePermission\n \n \n \n \n \n \n \n lessonWritePermission(user: User, entity: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n parentPermission\n \n \n \n \n \n \n \n parentPermission(user: User, entity: LessonEntity, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/lesson.rule.ts:57\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, CourseGroup, LessonEntity, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { CourseGroupRule } from './course-group.rule';\nimport { CourseRule } from './course.rule';\n\n@Injectable()\nexport class LessonRule implements Rule {\n\tconstructor(\n\t\tprivate readonly authorizationHelper: AuthorizationHelper,\n\t\tprivate readonly courseRule: CourseRule,\n\t\tprivate readonly courseGroupRule: CourseGroupRule\n\t) {}\n\n\tpublic isApplicable(user: User, entity: LessonEntity): boolean {\n\t\tconst isMatched = entity instanceof LessonEntity;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: LessonEntity, context: AuthorizationContext): boolean {\n\t\tconst { action, requiredPermissions } = context;\n\t\tlet hasLessonPermission = false;\n\n\t\tif (action === Action.read) {\n\t\t\thasLessonPermission = this.lessonReadPermission(user, entity);\n\t\t} else if (action === Action.write) {\n\t\t\thasLessonPermission = this.lessonWritePermission(user, entity);\n\t\t}\n\n\t\tconst hasUserPermission = this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n\t\tconst result = hasUserPermission && hasLessonPermission;\n\n\t\treturn result;\n\t}\n\n\tprivate lessonReadPermission(user: User, entity: LessonEntity): boolean {\n\t\tconst isVisible = !entity.hidden;\n\t\tlet hasParentReadPermission = false;\n\n\t\tif (isVisible) {\n\t\t\thasParentReadPermission = this.parentPermission(user, entity, Action.read);\n\t\t} else {\n\t\t\thasParentReadPermission = this.parentPermission(user, entity, Action.write);\n\t\t}\n\n\t\treturn hasParentReadPermission;\n\t}\n\n\tprivate lessonWritePermission(user: User, entity: LessonEntity): boolean {\n\t\tconst hasParentWritePermission = this.parentPermission(user, entity, Action.write);\n\n\t\treturn hasParentWritePermission;\n\t}\n\n\tprivate parentPermission(user: User, entity: LessonEntity, action: Action): boolean {\n\t\tlet result = false;\n\n\t\tif (entity.courseGroup) {\n\t\t\tresult = this.courseGroupPermission(user, entity.courseGroup, action);\n\t\t} else if (entity.course) {\n\t\t\tresult = this.coursePermission(user, entity.course, action); // ask course for student = read || teacher, sub-teacher = write\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate coursePermission(user: User, entity: Course, action: Action): boolean {\n\t\tconst result = this.courseRule.hasPermission(user, entity, { action, requiredPermissions: [] });\n\n\t\treturn result;\n\t}\n\n\tprivate courseGroupPermission(user: User, entity: CourseGroup, action: Action): boolean {\n\t\tconst result = this.courseGroupRule.hasPermission(user, entity, {\n\t\t\taction,\n\t\t\trequiredPermissions: [],\n\t\t});\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonScope.html":{"url":"classes/LessonScope.html","title":"class - LessonScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/lesson/lesson-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byCourseIds\n \n \n byHidden\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byCourseIds\n \n \n \n \n \n \nbyCourseIds(courseIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson-scope.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LessonScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byHidden\n \n \n \n \n \n \nbyHidden(isHidden: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/lesson/lesson-scope.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isHidden\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LessonScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, LessonEntity } from '@shared/domain';\nimport { Scope } from '../scope';\n\nexport class LessonScope extends Scope {\n\tbyCourseIds(courseIds: EntityId[]): LessonScope {\n\t\tthis.addQuery({ course: { $in: courseIds } });\n\t\treturn this;\n\t}\n\n\tbyHidden(isHidden: boolean): LessonScope {\n\t\tthis.addQuery({ hidden: { $eq: isHidden } });\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonService.html":{"url":"injectables/LessonService.html","title":"injectable - LessonService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/service/lesson.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteLesson\n \n \n Async\n deleteUserDataFromLessons\n \n \n Async\n findByCourseIds\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(lessonRepo: LessonRepo, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteLesson\n \n \n \n \n \n \n \n deleteLesson(lesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteUserDataFromLessons\n \n \n \n \n \n \n \n deleteUserDataFromLessons(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByCourseIds\n \n \n \n \n \n \n \n findByCourseIds(courseIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(lessonId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/lesson.service.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, IComponentProperties, LessonEntity } from '@shared/domain';\nimport { LessonRepo } from '@shared/repo';\nimport { FilesStorageClientAdapterService } from '@src/modules/files-storage-client';\n\n@Injectable()\nexport class LessonService {\n\tconstructor(\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync deleteLesson(lesson: LessonEntity): Promise {\n\t\tawait this.filesStorageClientAdapterService.deleteFilesOfParent(lesson.id);\n\n\t\tawait this.lessonRepo.delete(lesson);\n\t}\n\n\tasync findById(lessonId: EntityId): Promise {\n\t\treturn this.lessonRepo.findById(lessonId);\n\t}\n\n\tasync findByCourseIds(courseIds: EntityId[]): Promise> {\n\t\treturn this.lessonRepo.findAllByCourseIds(courseIds);\n\t}\n\n\tasync deleteUserDataFromLessons(userId: EntityId): Promise {\n\t\tconst lessons = await this.lessonRepo.findByUserId(userId);\n\n\t\tconst updatedLessons = lessons.map((lesson: LessonEntity) => {\n\t\t\tlesson.contents.map((c: IComponentProperties) => {\n\t\t\t\tif (c.user === userId) {\n\t\t\t\t\tc.user = '';\n\t\t\t\t}\n\t\t\t\treturn c;\n\t\t\t});\n\t\t\treturn lesson;\n\t\t});\n\n\t\tawait this.lessonRepo.save(updatedLessons);\n\n\t\treturn updatedLessons.length;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LessonUC.html":{"url":"injectables/LessonUC.html","title":"injectable - LessonUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LessonUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/uc/lesson.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, lessonService: LessonService)\n \n \n \n \n Defined in apps/server/src/modules/lesson/uc/lesson.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n lessonService\n \n \n LessonService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(userId: EntityId, lessonId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/uc/lesson.uc.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n lessonId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LessonService } from '../service';\n\n@Injectable()\nexport class LessonUC {\n\tconstructor(\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly lessonService: LessonService\n\t) {}\n\n\tasync delete(userId: EntityId, lessonId: EntityId) {\n\t\tconst [user, lesson] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.lessonService.findById(lessonId),\n\t\t]);\n\n\t\t// Check by Permission.TOPIC_VIEW because the student doesn't have Permission.TOPIC_EDIT\n\t\t// is required for CourseGroup lessons\n\t\tthis.authorizationService.checkPermission(user, lesson, AuthorizationContextBuilder.write([Permission.TOPIC_VIEW]));\n\n\t\tawait this.lessonService.deleteLesson(lesson);\n\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonUrlParams.html":{"url":"classes/LessonUrlParams.html","title":"class - LessonUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n lessonId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the lesson.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/lesson/controller/dto/lesson.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class LessonUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the lesson.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tlessonId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LessonUrlParams-1.html":{"url":"classes/LessonUrlParams-1.html","title":"class - LessonUrlParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LessonUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n lessonId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the lesson.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/lesson/lesson.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class LessonUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the lesson.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tlessonId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ListOauthClientsParams.html":{"url":"classes/ListOauthClientsParams.html","title":"class - ListOauthClientsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ListOauthClientsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Optional\n offset\n \n \n \n \n \n Optional\n owner\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The name of the clients to filter by.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@Max(500)@IsOptional()@ApiProperty({description: 'The maximum amount of clients to returned, upper bound is 500 clients.', required: false, nullable: false, minimum: 0, maximum: 500})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n offset\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@IsOptional()@ApiProperty({description: 'The offset from where to start looking.', required: false, nullable: false, minimum: 0})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n owner\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The owner of the clients to filter by.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/list-oauth-clients.params.ts:45\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsNumber, IsOptional, IsString, Max, Min } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ListOauthClientsParams {\n\t@IsNumber()\n\t@Min(0)\n\t@Max(500)\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The maximum amount of clients to returned, upper bound is 500 clients.',\n\t\trequired: false,\n\t\tnullable: false,\n\t\tminimum: 0,\n\t\tmaximum: 500,\n\t})\n\tlimit?: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The offset from where to start looking.',\n\t\trequired: false,\n\t\tnullable: false,\n\t\tminimum: 0,\n\t})\n\toffset?: number;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The name of the clients to filter by.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tclient_name?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The owner of the clients to filter by.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\towner?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LocalAuthorizationBodyParams.html":{"url":"classes/LocalAuthorizationBodyParams.html","title":"class - LocalAuthorizationBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LocalAuthorizationBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/dto/local-authorization.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n \n username\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/local-authorization.body.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n username\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/local-authorization.body.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsNotEmpty, IsString } from 'class-validator';\n\nexport class LocalAuthorizationBodyParams {\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tusername!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tpassword!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LocalStrategy.html":{"url":"injectables/LocalStrategy.html","title":"injectable - LocalStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LocalStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/local.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkCredentials\n \n \n Private\n cleanupInput\n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authenticationService: AuthenticationService, idmOauthService: IdentityManagementOauthService, configService: ConfigService, userRepo: UserRepo)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/local.strategy.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authenticationService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n idmOauthService\n \n \n IdentityManagementOauthService\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkCredentials\n \n \n \n \n \n \n \n checkCredentials(enteredPassword: string, savedPassword: string, account: AccountDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/local.strategy.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n enteredPassword\n \n string\n \n\n \n No\n \n\n\n \n \n savedPassword\n \n string\n \n\n \n No\n \n\n\n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n cleanupInput\n \n \n \n \n \n \n \n cleanupInput(username?: string, password?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/local.strategy.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n Yes\n \n\n\n \n \n password\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(username?: string, password?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/local.strategy.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n string\n \n\n \n Yes\n \n\n\n \n \n password\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Strategy } from 'passport-local';\nimport { ConfigService } from '@nestjs/config';\nimport { PassportStrategy } from '@nestjs/passport';\nimport { Injectable, UnauthorizedException } from '@nestjs/common';\nimport bcrypt from 'bcryptjs';\nimport { UserRepo } from '@shared/repo';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { GuardAgainst } from '@shared/common/utils/guard-against';\nimport { IdentityManagementOauthService, IIdentityManagementConfig } from '@shared/infra/identity-management';\nimport { CurrentUserMapper } from '../mapper';\nimport { ICurrentUser } from '../interface';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable()\nexport class LocalStrategy extends PassportStrategy(Strategy) {\n\tconstructor(\n\t\tprivate readonly authenticationService: AuthenticationService,\n\t\tprivate readonly idmOauthService: IdentityManagementOauthService,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly userRepo: UserRepo\n\t) {\n\t\tsuper();\n\t}\n\n\tasync validate(username?: string, password?: string): Promise {\n\t\t({ username, password } = this.cleanupInput(username, password));\n\t\tconst account = await this.authenticationService.loadAccount(username);\n\n\t\tif (this.configService.get('FEATURE_IDENTITY_MANAGEMENT_LOGIN_ENABLED')) {\n\t\t\tconst jwt = await this.idmOauthService.resourceOwnerPasswordGrant(username, password);\n\t\t\tGuardAgainst.nullOrUndefined(jwt, new UnauthorizedException());\n\t\t} else {\n\t\t\tconst accountPassword = GuardAgainst.nullOrUndefined(account.password, new UnauthorizedException());\n\t\t\tawait this.checkCredentials(password, accountPassword, account);\n\t\t}\n\n\t\tconst accountUserId = GuardAgainst.nullOrUndefined(\n\t\t\taccount.userId,\n\t\t\tnew Error(`login failing, because account ${account.id} has no userId`)\n\t\t);\n\t\tconst user = await this.userRepo.findById(accountUserId, true);\n\t\tconst currentUser = CurrentUserMapper.userToICurrentUser(account.id, user);\n\t\treturn currentUser;\n\t}\n\n\tprivate cleanupInput(username?: string, password?: string): { username: string; password: string } {\n\t\tusername = GuardAgainst.nullOrUndefined(username, new UnauthorizedException());\n\t\tpassword = GuardAgainst.nullOrUndefined(password, new UnauthorizedException());\n\t\tusername = this.authenticationService.normalizeUsername(username);\n\t\tpassword = this.authenticationService.normalizePassword(password);\n\t\treturn { username, password };\n\t}\n\n\tprivate async checkCredentials(\n\t\tenteredPassword: string,\n\t\tsavedPassword: string,\n\t\taccount: AccountDto\n\t): Promise {\n\t\tthis.authenticationService.checkBrutForce(account);\n\t\tif (!(await bcrypt.compare(enteredPassword, savedPassword))) {\n\t\t\tawait this.authenticationService.updateLastTriedFailedLogin(account.id);\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Loggable.html":{"url":"interfaces/Loggable.html","title":"interface - Loggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Loggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/interfaces/loggable.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/interfaces/loggable.ts:4\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n \n\n\n \n import { ErrorLogMessage, LogMessage, ValidationErrorLogMessage } from '../types';\n\nexport interface Loggable {\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/Logger.html":{"url":"injectables/Logger.html","title":"injectable - Logger","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n Logger\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/logger.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n context\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n debug\n \n \n Public\n info\n \n \n Public\n notice\n \n \n Public\n setContext\n \n \n Public\n warning\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: WinstonLogger)\n \n \n \n \n Defined in apps/server/src/core/logger/logger.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n WinstonLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n debug\n \n \n \n \n \n \n \n debug(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n info\n \n \n \n \n \n \n \n info(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n notice\n \n \n \n \n \n \n \n notice(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n setContext\n \n \n \n \n \n \n \n setContext(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n warning\n \n \n \n \n \n \n \n warning(loggable: Loggable)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logger.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n context\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : ''\n \n \n \n \n Defined in apps/server/src/core/logger/logger.ts:9\n \n \n\n\n \n \n\n\n \n\n\n \n import { Inject, Injectable, Scope } from '@nestjs/common';\nimport { WINSTON_MODULE_PROVIDER } from 'nest-winston';\nimport { Logger as WinstonLogger } from 'winston';\nimport { Loggable } from './interfaces';\nimport { LoggingUtils } from './logging.utils';\n\n@Injectable({ scope: Scope.TRANSIENT })\nexport class Logger {\n\tprivate context = '';\n\n\tconstructor(@Inject(WINSTON_MODULE_PROVIDER) private readonly logger: WinstonLogger) {}\n\n\tpublic warning(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable, this.context);\n\t\tthis.logger.warning(message);\n\t}\n\n\tpublic notice(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable, this.context);\n\t\tthis.logger.notice(message);\n\t}\n\n\tpublic info(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable, this.context);\n\t\tthis.logger.info(message);\n\t}\n\n\tpublic debug(loggable: Loggable): void {\n\t\tconst message = LoggingUtils.createMessageWithContext(loggable, this.context);\n\t\tthis.logger.debug(message);\n\t}\n\n\tpublic setContext(name: string) {\n\t\tthis.context = name;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LoggerModule.html":{"url":"modules/LoggerModule.html","title":"module - LoggerModule","body":"\n \n\n\n\n\n Modules\n LoggerModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LoggerModule\n\n\n\ncluster_LoggerModule_providers\n\n\n\ncluster_LoggerModule_exports\n\n\n\n\nErrorLogger \n\nErrorLogger \n\n\n\nLegacyLogger \n\nLegacyLogger \n\n\n\nLogger \n\nLogger \n\n\n\nLoggerModule\n\nLoggerModule\n\nErrorLogger -->\n\nLoggerModule->ErrorLogger \n\n\n\nLegacyLogger -->\n\nLoggerModule->LegacyLogger \n\n\n\nLogger -->\n\nLoggerModule->Logger \n\n\n\n\n\nErrorLogger\n\nErrorLogger\n\nLoggerModule -->\n\nErrorLogger->LoggerModule\n\n\n\n\n\nLegacyLogger\n\nLegacyLogger\n\nLoggerModule -->\n\nLegacyLogger->LoggerModule\n\n\n\n\n\nLogger\n\nLogger\n\nLoggerModule -->\n\nLogger->LoggerModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/logger/logger.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ErrorLogger\n \n \n LegacyLogger\n \n \n Logger\n \n \n \n \n Exports\n \n \n ErrorLogger\n \n \n LegacyLogger\n \n \n Logger\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { utilities, WinstonModule } from 'nest-winston';\nimport winston from 'winston';\nimport { ErrorLogger } from './error-logger';\nimport { ILoggerConfig } from './interfaces';\nimport { LegacyLogger } from './legacy-logger.service';\nimport { Logger } from './logger';\n\n@Module({\n\timports: [\n\t\tWinstonModule.forRootAsync({\n\t\t\tuseFactory: (configService: ConfigService) => {\n\t\t\t\treturn {\n\t\t\t\t\tlevels: winston.config.syslog.levels,\n\t\t\t\t\tlevel: configService.get('NEST_LOG_LEVEL'),\n\t\t\t\t\texitOnError: false,\n\t\t\t\t\ttransports: [\n\t\t\t\t\t\tnew winston.transports.Console({\n\t\t\t\t\t\t\thandleExceptions: true,\n\t\t\t\t\t\t\thandleRejections: true,\n\t\t\t\t\t\t\tformat: winston.format.combine(\n\t\t\t\t\t\t\t\twinston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss.SSS' }),\n\t\t\t\t\t\t\t\twinston.format.ms(),\n\t\t\t\t\t\t\t\tutilities.format.nestLike()\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}),\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t},\n\t\t\tinject: [ConfigService],\n\t\t}),\n\t],\n\tproviders: [LegacyLogger, Logger, ErrorLogger],\n\texports: [LegacyLogger, Logger, ErrorLogger],\n})\nexport class LoggerModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoggingUtils.html":{"url":"classes/LoggingUtils.html","title":"class - LoggingUtils","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoggingUtils\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/logger/logging.utils.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n createMessageWithContext\n \n \n Static\n isInstanceOfLoggable\n \n \n Private\n Static\n stringifyMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n createMessageWithContext\n \n \n \n \n \n \n \n createMessageWithContext(loggable: Loggable, context?: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logging.utils.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loggable\n \n Loggable\n \n\n \n No\n \n\n\n \n \n context\n \n string | undefined\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : LogMessageWithContext\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isInstanceOfLoggable\n \n \n \n \n \n \n \n isInstanceOfLoggable(object: any)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logging.utils.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n object\n \n any\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Loggable\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n stringifyMessage\n \n \n \n \n \n \n \n stringifyMessage(message)\n \n \n\n\n \n \n Defined in apps/server/src/core/logger/logging.utils.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n message\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import util from 'util';\nimport { Loggable } from './interfaces';\nimport { LogMessageWithContext } from './types';\n\nexport class LoggingUtils {\n\tstatic createMessageWithContext(loggable: Loggable, context?: string | undefined): LogMessageWithContext {\n\t\tconst message = loggable.getLogMessage();\n\t\tconst stringifiedMessage = this.stringifyMessage(message);\n\t\tconst messageWithContext = { message: stringifiedMessage, context };\n\t\treturn messageWithContext;\n\t}\n\n\tprivate static stringifyMessage(message: unknown): string {\n\t\tconst stringifiedMessage = util.inspect(message).replace(/\\n/g, '').replace(/\\\\n/g, '');\n\t\treturn stringifiedMessage;\n\t}\n\n\tstatic isInstanceOfLoggable(object: any): object is Loggable {\n\t\treturn 'getLogMessage' in object;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/LoginController.html":{"url":"controllers/LoginController.html","title":"controller - LoginController","body":"\n \n\n\n\n\n\n\n Controllers\n LoginController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/login.controller.ts\n \n\n \n Prefix\n \n \n authentication\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loginLdap\n \n \n \n \n \n \n \n \n \n Async\n loginLocal\n \n \n \n \n \n \n \n \n \n Async\n loginOauth2\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loginLdap\n \n \n \n \n \n \n \n loginLdap(user: ICurrentUser, _: LdapAuthorizationBodyParams)\n \n \n\n \n \n Decorators : \n \n @UseGuards(undefined)@HttpCode(HttpStatus.OK)@Post('ldap')@ApiOperation({summary: 'Starts the login process for users which are authenticated via LDAP'})@ApiResponse({status: 200, type: LoginResponse, description: 'Login was successful.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.'})\n \n \n\n \n \n Defined in apps/server/src/modules/authentication/controllers/login.controller.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n _\n \n LdapAuthorizationBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loginLocal\n \n \n \n \n \n \n \n loginLocal(user: ICurrentUser, _: LocalAuthorizationBodyParams)\n \n \n\n \n \n Decorators : \n \n @UseGuards(undefined)@HttpCode(HttpStatus.OK)@Post('local')@ApiOperation({summary: 'Starts the login process for users which are locally managed.'})@ApiResponse({status: 200, type: LoginResponse, description: 'Login was successful.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.'})\n \n \n\n \n \n Defined in apps/server/src/modules/authentication/controllers/login.controller.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n _\n \n LocalAuthorizationBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loginOauth2\n \n \n \n \n \n \n \n loginOauth2(user: ICurrentUser, _: Oauth2AuthorizationBodyParams)\n \n \n\n \n \n Decorators : \n \n @UseGuards(undefined)@HttpCode(HttpStatus.OK)@Post('oauth2')@ApiOperation({summary: 'Starts the login process for users which are authenticated via OAuth 2.'})@ApiResponse({status: 200, type: LoginResponse, description: 'Login was successful.'})@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiResponse({status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.'})\n \n \n\n \n \n Defined in apps/server/src/modules/authentication/controllers/login.controller.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n _\n \n Oauth2AuthorizationBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, HttpCode, HttpStatus, Post, UseGuards } from '@nestjs/common';\nimport { AuthGuard } from '@nestjs/passport';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ForbiddenOperationError, ValidationError } from '@shared/common';\nimport { CurrentUser } from '../decorator/auth.decorator';\nimport type { ICurrentUser } from '../interface';\nimport { LoginDto } from '../uc/dto';\nimport { LoginUc } from '../uc/login.uc';\nimport {\n\tLdapAuthorizationBodyParams,\n\tLocalAuthorizationBodyParams,\n\tLoginResponse,\n\tOauth2AuthorizationBodyParams,\n} from './dto';\nimport { LoginResponseMapper } from './mapper/login-response.mapper';\n\n@ApiTags('Authentication')\n@Controller('authentication')\nexport class LoginController {\n\tconstructor(private readonly loginUc: LoginUc) {}\n\n\t@UseGuards(AuthGuard('ldap'))\n\t@HttpCode(HttpStatus.OK)\n\t@Post('ldap')\n\t@ApiOperation({ summary: 'Starts the login process for users which are authenticated via LDAP' })\n\t@ApiResponse({ status: 200, type: LoginResponse, description: 'Login was successful.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.' })\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tasync loginLdap(@CurrentUser() user: ICurrentUser, @Body() _: LdapAuthorizationBodyParams): Promise {\n\t\tconst loginDto: LoginDto = await this.loginUc.getLoginData(user);\n\n\t\tconst mapped: LoginResponse = LoginResponseMapper.mapLoginDtoToResponse(loginDto);\n\n\t\treturn mapped;\n\t}\n\n\t@UseGuards(AuthGuard('local'))\n\t@HttpCode(HttpStatus.OK)\n\t@Post('local')\n\t@ApiOperation({ summary: 'Starts the login process for users which are locally managed.' })\n\t@ApiResponse({ status: 200, type: LoginResponse, description: 'Login was successful.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.' })\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tasync loginLocal(@CurrentUser() user: ICurrentUser, @Body() _: LocalAuthorizationBodyParams): Promise {\n\t\tconst loginDto: LoginDto = await this.loginUc.getLoginData(user);\n\n\t\tconst mapped: LoginResponse = LoginResponseMapper.mapLoginDtoToResponse(loginDto);\n\n\t\treturn mapped;\n\t}\n\n\t@UseGuards(AuthGuard('oauth2'))\n\t@HttpCode(HttpStatus.OK)\n\t@Post('oauth2')\n\t@ApiOperation({ summary: 'Starts the login process for users which are authenticated via OAuth 2.' })\n\t@ApiResponse({ status: 200, type: LoginResponse, description: 'Login was successful.' })\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiResponse({ status: 403, type: ForbiddenOperationError, description: 'Invalid user credentials.' })\n\tasync loginOauth2(\n\t\t@CurrentUser() user: ICurrentUser,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t@Body() _: Oauth2AuthorizationBodyParams\n\t): Promise {\n\t\tconst loginDto: LoginDto = await this.loginUc.getLoginData(user);\n\n\t\tconst mapped: LoginResponse = LoginResponseMapper.mapLoginDtoToResponse(loginDto);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginDto.html":{"url":"classes/LoginDto.html","title":"class - LoginDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/uc/dto/login.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n accessToken\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: LoginDto)\n \n \n \n \n Defined in apps/server/src/modules/authentication/uc/dto/login.dto.ts:2\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n LoginDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/authentication/uc/dto/login.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class LoginDto {\n\taccessToken: string;\n\n\tconstructor(props: LoginDto) {\n\t\tthis.accessToken = props.accessToken;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginRequestBody.html":{"url":"classes/LoginRequestBody.html","title":"class - LoginRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/login-request.body.ts\n \n\n\n\n \n Extends\n \n \n OAuthRejectableBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n remember\n \n \n \n \n \n Optional\n remember_for\n \n \n \n \n \n Optional\n error\n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n Optional\n status_code\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n remember\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Remember, if set to true, tells the oauth provider to remember this consent authorization and reuse it if the same client asks the same user for the same, or a subset of, scope.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/login-request.body.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n remember_for\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsInt()@IsOptional()@ApiProperty({description: 'RememberFor sets how long the consent authorization should be remembered for in seconds. If set to 0, the authorization will be remembered indefinitely.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/login-request.body.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The error should follow the OAuth2 error format (e.g. invalid_request, login_required). Defaults to request_denied.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Debug contains information to help resolve the problem as a developer. Usually not exposed to the public but only in the server logs.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:23\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Description of the error in a human readable format.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:32\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Hint to help resolve the error.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:41\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n status_code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@IsOptional()@ApiProperty({description: 'Represents the HTTP status code of the error (e.g. 401 or 403). Defaults to 400.', required: false, nullable: false})\n \n \n \n \n \n Inherited from OAuthRejectableBody\n\n \n \n \n \n Defined in OAuthRejectableBody:50\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsBoolean, IsInt, IsOptional } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { OAuthRejectableBody } from './oauth-rejectable.body';\n\nexport class LoginRequestBody extends OAuthRejectableBody {\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Remember, if set to true, tells the oauth provider to remember this consent authorization and reuse it if the same client asks the same user for the same, or a subset of, scope.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tremember?: boolean;\n\n\t@IsInt()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'RememberFor sets how long the consent authorization should be remembered for in seconds. If set to 0, the authorization will be remembered indefinitely.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tremember_for?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginResponse.html":{"url":"classes/LoginResponse.html","title":"class - LoginResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/dto/login.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: LoginResponse)\n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/login.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n LoginResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/login.response.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class LoginResponse {\n\t@ApiProperty()\n\taccessToken: string;\n\n\tconstructor(props: LoginResponse) {\n\t\tthis.accessToken = props.accessToken;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginResponse-1.html":{"url":"classes/LoginResponse-1.html","title":"class - LoginResponse-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n challenge\n \n \n \n client\n \n \n \n \n Optional\n client_id\n \n \n \n \n Optional\n oidc_context\n \n \n \n \n Optional\n request_url\n \n \n \n \n Optional\n requested_access_token_audience\n \n \n \n \n \n \n Optional\n requested_scope\n \n \n \n \n Optional\n session_id\n \n \n \n skip\n \n \n \n subject\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(loginResponse: LoginResponse)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n loginResponse\n \n \n LoginResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n challenge\n \n \n \n \n \n \n Type : string | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id/challenge of the consent login request.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n Type : OauthClientResponse | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n client_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'Id of the corresponding client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n oidc_context\n \n \n \n \n \n \n Type : OidcContextResponse\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n request_url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'The original oauth2.0 authorization url request by the client.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n requested_access_token_audience\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n requested_scope\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The request scopes of the login request.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n session_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@ApiProperty({description: 'The login session id. This parameter is used as sid for the oidc front-/backchannel logout.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n Type : boolean | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Skip, if true, implies that the client has requested the same scopes from the same user previously.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n Type : string | undefined\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'User id of the end-user that is authenticated.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/login.response.ts:51\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { OauthClientResponse } from '@src/modules/oauth-provider/controller/dto/response/oauth-client.response';\nimport { OidcContextResponse } from '@src/modules/oauth-provider/controller/dto/response/oidc-context.response';\nimport { IsArray, IsOptional, IsString } from 'class-validator';\n\nexport class LoginResponse {\n\tconstructor(loginResponse: LoginResponse) {\n\t\tObject.assign(this, loginResponse);\n\t}\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'Id of the corresponding client.' })\n\tclient_id?: string;\n\n\t@ApiProperty({ description: 'The id/challenge of the consent login request.' })\n\tchallenge: string | undefined;\n\n\t@ApiProperty()\n\tclient: OauthClientResponse | undefined;\n\n\t@IsOptional()\n\t@ApiProperty()\n\toidc_context?: OidcContextResponse;\n\n\t@IsOptional()\n\t@ApiProperty({ description: 'The original oauth2.0 authorization url request by the client.' })\n\trequest_url?: string;\n\n\t@IsOptional()\n\t@ApiProperty()\n\trequested_access_token_audience?: string[];\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The request scopes of the login request.', required: false, nullable: false })\n\trequested_scope?: string[];\n\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The login session id. This parameter is used as sid for the oidc front-/backchannel logout.',\n\t})\n\tsession_id?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Skip, if true, implies that the client has requested the same scopes from the same user previously.',\n\t})\n\tskip: boolean | undefined;\n\n\t@ApiProperty({ description: 'User id of the end-user that is authenticated.' })\n\tsubject: string | undefined;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LoginResponseMapper.html":{"url":"classes/LoginResponseMapper.html","title":"class - LoginResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LoginResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/mapper/login-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapLoginDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapLoginDtoToResponse\n \n \n \n \n \n \n \n mapLoginDtoToResponse(loginDto: LoginDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/controllers/mapper/login-response.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loginDto\n \n LoginDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LoginResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { LoginResponse } from '../dto';\nimport { LoginDto } from '../../uc/dto';\n\nexport class LoginResponseMapper {\n\tstatic mapLoginDtoToResponse(loginDto: LoginDto): LoginResponse {\n\t\tconst response: LoginResponse = new LoginResponse({ accessToken: loginDto.accessToken });\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LoginUc.html":{"url":"injectables/LoginUc.html","title":"injectable - LoginUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LoginUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/uc/login.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getLoginData\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authService: AuthenticationService)\n \n \n \n \n Defined in apps/server/src/modules/authentication/uc/login.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getLoginData\n \n \n \n \n \n \n \n getLoginData(userInfo: CreateJwtPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/uc/login.uc.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userInfo\n \n CreateJwtPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthenticationService } from '../services/authentication.service';\nimport { CreateJwtPayload } from '../interface/jwt-payload';\nimport { LoginDto } from './dto';\n\n@Injectable()\nexport class LoginUc {\n\tconstructor(private readonly authService: AuthenticationService) {}\n\n\tasync getLoginData(userInfo: CreateJwtPayload): Promise {\n\t\tconst accessTokenDto: LoginDto = await this.authService.generateJwt(userInfo);\n\n\t\tconst loginDto: LoginDto = new LoginDto({\n\t\t\taccessToken: accessTokenDto.accessToken,\n\t\t});\n\n\t\treturn loginDto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/Lti11EncryptionService.html":{"url":"injectables/Lti11EncryptionService.html","title":"injectable - Lti11EncryptionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n Lti11EncryptionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/lti11-encryption.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n sign\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n sign\n \n \n \n \n \n \n \n sign(key: string, secret: string, url: string, payload: Record)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/lti11-encryption.service.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n key\n \n string\n \n\n \n No\n \n\n\n \n \n secret\n \n string\n \n\n \n No\n \n\n\n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n Record\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Authorization\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport CryptoJS from 'crypto-js';\nimport OAuth, { Authorization, RequestOptions } from 'oauth-1.0a';\n\n@Injectable()\nexport class Lti11EncryptionService {\n\tpublic sign(key: string, secret: string, url: string, payload: Record): Authorization {\n\t\tconst requestData: RequestOptions = {\n\t\t\turl,\n\t\t\tmethod: 'POST',\n\t\t\tdata: payload,\n\t\t};\n\n\t\tconst consumer: OAuth = new OAuth({\n\t\t\tconsumer: {\n\t\t\t\tkey,\n\t\t\t\tsecret,\n\t\t\t},\n\t\t\tsignature_method: 'HMAC-SHA1',\n\t\t\thash_function: (base_string: string, hashKey: string) =>\n\t\t\t\tCryptoJS.HmacSHA1(base_string, hashKey).toString(CryptoJS.enc.Base64),\n\t\t});\n\n\t\tconst authorization: Authorization = consumer.authorize(requestData);\n\n\t\treturn authorization;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfig.html":{"url":"classes/Lti11ToolConfig.html","title":"class - Lti11ToolConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n key\n \n \n launch_presentation_locale\n \n \n lti_message_type\n \n \n privacy_permission\n \n \n Optional\n resource_link_id\n \n \n secret\n \n \n baseUrl\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Lti11ToolConfig)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Lti11ToolConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/lti11-tool-config.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:4\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LtiMessageType, LtiPrivacyPermission, ToolConfigType } from '../../../common/enum';\nimport { ExternalToolConfig } from './external-tool-config.do';\n\nexport class Lti11ToolConfig extends ExternalToolConfig {\n\tkey: string;\n\n\tsecret: string;\n\n\tresource_link_id?: string;\n\n\tlti_message_type: LtiMessageType;\n\n\tprivacy_permission: LtiPrivacyPermission;\n\n\tlaunch_presentation_locale: string;\n\n\tconstructor(props: Lti11ToolConfig) {\n\t\tsuper({\n\t\t\ttype: ToolConfigType.LTI11,\n\t\t\tbaseUrl: props.baseUrl,\n\t\t});\n\t\tthis.key = props.key;\n\t\tthis.secret = props.secret;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.privacy_permission = props.privacy_permission;\n\t\tthis.launch_presentation_locale = props.launch_presentation_locale;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfigCreateParams.html":{"url":"classes/Lti11ToolConfigCreateParams.html","title":"class - Lti11ToolConfigCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfigCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n key\n \n \n \n \n launch_presentation_locale\n \n \n \n \n lti_message_type\n \n \n \n \n privacy_permission\n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n secret\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsLocale()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(LtiMessageType)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(LtiPrivacyPermission)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-create.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsEnum, IsLocale, IsOptional, IsString } from 'class-validator';\nimport { LtiMessageType, LtiPrivacyPermission, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\n\nexport class Lti11ToolConfigCreateParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tkey!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tsecret!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tresource_link_id?: string;\n\n\t@IsEnum(LtiMessageType)\n\t@ApiProperty()\n\tlti_message_type!: LtiMessageType;\n\n\t@IsEnum(LtiPrivacyPermission)\n\t@ApiProperty()\n\tprivacy_permission!: LtiPrivacyPermission;\n\n\t@IsLocale()\n\t@ApiProperty()\n\tlaunch_presentation_locale!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfigEntity.html":{"url":"classes/Lti11ToolConfigEntity.html","title":"class - Lti11ToolConfigEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfigEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigEntity\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n key\n \n \n \n launch_presentation_locale\n \n \n \n lti_message_type\n \n \n \n privacy_permission\n \n \n \n Optional\n resource_link_id\n \n \n \n secret\n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Lti11ToolConfigEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:24\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Lti11ToolConfigEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/lti11-tool-config.entity.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Enum, Property } from '@mikro-orm/core';\nimport { LtiPrivacyPermission } from '@shared/domain/entity/ltitool.entity';\nimport { LtiMessageType, ToolConfigType } from '../../../common/enum';\nimport { ExternalToolConfigEntity } from './external-tool-config.entity';\n\n@Embeddable({ discriminatorValue: ToolConfigType.LTI11 })\nexport class Lti11ToolConfigEntity extends ExternalToolConfigEntity {\n\t@Property()\n\tkey: string;\n\n\t@Property()\n\tsecret: string;\n\n\t@Property({ nullable: true })\n\tresource_link_id?: string;\n\n\t@Enum()\n\tlti_message_type: LtiMessageType;\n\n\t@Enum()\n\tprivacy_permission: LtiPrivacyPermission;\n\n\t@Property()\n\tlaunch_presentation_locale: string;\n\n\tconstructor(props: Lti11ToolConfigEntity) {\n\t\tsuper(props);\n\t\tthis.type = ToolConfigType.LTI11;\n\t\tthis.key = props.key;\n\t\tthis.secret = props.secret;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.privacy_permission = props.privacy_permission;\n\t\tthis.launch_presentation_locale = props.launch_presentation_locale;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfigResponse.html":{"url":"classes/Lti11ToolConfigResponse.html","title":"class - Lti11ToolConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n key\n \n \n \n launch_presentation_locale\n \n \n \n lti_message_type\n \n \n \n privacy_permission\n \n \n \n Optional\n resource_link_id\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Lti11ToolConfigResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:25\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Lti11ToolConfigResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/lti11-tool-config.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { LtiMessageType, LtiPrivacyPermission, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigResponse } from './external-tool-config.response';\n\nexport class Lti11ToolConfigResponse extends ExternalToolConfigResponse {\n\t@ApiProperty()\n\ttype: ToolConfigType;\n\n\t@ApiProperty()\n\tbaseUrl: string;\n\n\t@ApiProperty()\n\tkey: string;\n\n\t@ApiPropertyOptional()\n\tresource_link_id?: string;\n\n\t@ApiProperty()\n\tlti_message_type: LtiMessageType;\n\n\t@ApiProperty()\n\tprivacy_permission: LtiPrivacyPermission;\n\n\t@ApiProperty()\n\tlaunch_presentation_locale: string;\n\n\tconstructor(props: Lti11ToolConfigResponse) {\n\t\tsuper();\n\t\tthis.type = ToolConfigType.LTI11;\n\t\tthis.baseUrl = props.baseUrl;\n\t\tthis.key = props.key;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.privacy_permission = props.privacy_permission;\n\t\tthis.launch_presentation_locale = props.launch_presentation_locale;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Lti11ToolConfigUpdateParams.html":{"url":"classes/Lti11ToolConfigUpdateParams.html","title":"class - Lti11ToolConfigUpdateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Lti11ToolConfigUpdateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n key\n \n \n \n \n launch_presentation_locale\n \n \n \n \n lti_message_type\n \n \n \n \n privacy_permission\n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n Optional\n secret\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n launch_presentation_locale\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsLocale()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n lti_message_type\n \n \n \n \n \n \n Type : LtiMessageType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(LtiMessageType)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(LtiPrivacyPermission)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/lti11-tool-config-update.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsEnum, IsLocale, IsOptional, IsString } from 'class-validator';\nimport { LtiMessageType, LtiPrivacyPermission, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\n\nexport class Lti11ToolConfigUpdateParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tkey!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tsecret?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tresource_link_id?: string;\n\n\t@IsEnum(LtiMessageType)\n\t@ApiProperty()\n\tlti_message_type!: LtiMessageType;\n\n\t@IsEnum(LtiPrivacyPermission)\n\t@ApiProperty()\n\tprivacy_permission!: LtiPrivacyPermission;\n\n\t@IsLocale()\n\t@ApiProperty()\n\tlaunch_presentation_locale!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/Lti11ToolLaunchStrategy.html":{"url":"injectables/Lti11ToolLaunchStrategy.html","title":"injectable - Lti11ToolLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n Lti11ToolLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/lti11-tool-launch.strategy.ts\n \n\n\n\n \n Extends\n \n \n AbstractLaunchStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n \n Async\n buildToolLaunchDataFromConcreteConfig\n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n Public\n \n determineLaunchRequestMethod\n \n \n Private\n Async\n addParameters\n \n \n Private\n addProperty\n \n \n Private\n applyPropertiesToPathParams\n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n Private\n buildUrl\n \n \n Public\n Async\n createLaunchData\n \n \n Public\n createLaunchRequest\n \n \n Private\n Async\n getParameterValue\n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, pseudonymService: PseudonymService, lti11EncryptionService: Lti11EncryptionService, schoolService: LegacySchoolService, courseService: CourseService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/strategy/lti11-tool-launch.strategy.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n pseudonymService\n \n \n PseudonymService\n \n \n \n No\n \n \n \n \n lti11EncryptionService\n \n \n Lti11EncryptionService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n \n Async\n buildToolLaunchDataFromConcreteConfig\n \n \n \n \n \n \n \n buildToolLaunchDataFromConcreteConfig(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n \n \n \n \n \n buildToolLaunchRequestPayload(url: string, properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:122\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n determineLaunchRequestMethod\n \n \n \n \n \n \n \n determineLaunchRequestMethod(properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:147\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LaunchRequestMethod\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n \n \n \n \n \n addParameters(propertyData: PropertyData[], customParameterDOs: CustomParameter[], scopes: literal type[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:141\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n customParameterDOs\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n scopes\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n addProperty\n \n \n \n \n \n \n \n addProperty(propertyData: PropertyData[], propertyName: string, value: string | undefined, customParameterLocation: CustomParameterLocation)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:246\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n propertyName\n \n string\n \n\n \n No\n \n\n\n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n customParameterLocation\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n applyPropertiesToPathParams\n \n \n \n \n \n \n \n applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:91\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n URL\n \n\n \n No\n \n\n\n \n \n pathProperties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n \n \n \n \n \n buildToolLaunchDataFromExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:114\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n \n \n \n \n \n buildToolLaunchDataFromTools(data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:125\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildUrl\n \n \n \n \n \n \n \n buildUrl(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:65\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createLaunchData\n \n \n \n \n \n \n \n createLaunchData(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n createLaunchRequest\n \n \n \n \n \n \n \n createLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getParameterValue\n \n \n \n \n \n \n \n getParameterValue(customParameter: CustomParameter, matchingParameterEntry: CustomParameterEntry | undefined, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:204\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n matchingParameterEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n \n \n \n handleParametersToInclude(propertyData: PropertyData[], parametersToInclude: CustomParameter[], params: CustomParameterEntry[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:167\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n parametersToInclude\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n params\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, LtiPrivacyPermission, Pseudonym, RoleName, UserDO } from '@shared/domain';\nimport { RoleReference } from '@shared/domain/domainobject';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { PseudonymService } from '@src/modules/pseudonym';\nimport { UserService } from '@src/modules/user';\nimport { Authorization } from 'oauth-1.0a';\nimport { LtiRole } from '../../../common/enum';\nimport { ExternalTool } from '../../../external-tool/domain';\nimport { LtiRoleMapper } from '../../mapper';\nimport { LaunchRequestMethod, PropertyData, PropertyLocation } from '../../types';\nimport { Lti11EncryptionService } from '../lti11-encryption.service';\nimport { AbstractLaunchStrategy } from './abstract-launch.strategy';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\n\n@Injectable()\nexport class Lti11ToolLaunchStrategy extends AbstractLaunchStrategy {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly lti11EncryptionService: Lti11EncryptionService,\n\t\tschoolService: LegacySchoolService,\n\t\tcourseService: CourseService\n\t) {\n\t\tsuper(schoolService, courseService);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tpublic override async buildToolLaunchDataFromConcreteConfig(\n\t\tuserId: EntityId,\n\t\tdata: IToolLaunchParams\n\t): Promise {\n\t\tconst { config } = data.externalTool;\n\t\tconst contextId: EntityId = data.contextExternalTool.contextRef.id;\n\n\t\tif (!ExternalTool.isLti11Config(config)) {\n\t\t\tthrow new UnprocessableEntityException(\n\t\t\t\t`Unable to build LTI 1.1 launch data. Tool configuration is of type ${config.type}. Expected \"lti11\"`\n\t\t\t);\n\t\t}\n\n\t\tconst user: UserDO = await this.userService.findById(userId);\n\n\t\tconst roleNames: RoleName[] = user.roles.map((roleRef: RoleReference): RoleName => roleRef.name);\n\t\tconst ltiRoles: LtiRole[] = LtiRoleMapper.mapRolesToLtiRoles(roleNames);\n\n\t\tconst additionalProperties: PropertyData[] = [\n\t\t\tnew PropertyData({ name: 'key', value: config.key }),\n\t\t\tnew PropertyData({ name: 'secret', value: config.secret }),\n\n\t\t\tnew PropertyData({ name: 'lti_message_type', value: config.lti_message_type, location: PropertyLocation.BODY }),\n\t\t\tnew PropertyData({ name: 'lti_version', value: 'LTI-1p0', location: PropertyLocation.BODY }),\n\t\t\tnew PropertyData({\n\t\t\t\tname: 'resource_link_id',\n\t\t\t\tvalue: config.resource_link_id || contextId,\n\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t}),\n\t\t\tnew PropertyData({\n\t\t\t\tname: 'launch_presentation_document_target',\n\t\t\t\tvalue: 'window',\n\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t}),\n\t\t\tnew PropertyData({\n\t\t\t\tname: 'launch_presentation_locale',\n\t\t\t\tvalue: config.launch_presentation_locale,\n\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t}),\n\t\t\tnew PropertyData({\n\t\t\t\tname: 'roles',\n\t\t\t\tvalue: ltiRoles.join(','),\n\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t}),\n\t\t];\n\n\t\tif (config.privacy_permission === LtiPrivacyPermission.NAME) {\n\t\t\tconst displayName: string = await this.userService.getDisplayName(user);\n\n\t\t\tadditionalProperties.push(\n\t\t\t\tnew PropertyData({\n\t\t\t\t\tname: 'lis_person_name_full',\n\t\t\t\t\tvalue: displayName,\n\t\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tif (config.privacy_permission === LtiPrivacyPermission.EMAIL) {\n\t\t\tadditionalProperties.push(\n\t\t\t\tnew PropertyData({\n\t\t\t\t\tname: 'lis_person_contact_email_primary',\n\t\t\t\t\tvalue: user.email,\n\t\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tif (config.privacy_permission === LtiPrivacyPermission.PSEUDONYMOUS) {\n\t\t\tconst pseudonym: Pseudonym = await this.pseudonymService.findOrCreatePseudonym(user, data.externalTool);\n\n\t\t\tadditionalProperties.push(\n\t\t\t\tnew PropertyData({\n\t\t\t\t\tname: 'user_id',\n\t\t\t\t\tvalue: pseudonym.pseudonym,\n\t\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tadditionalProperties.push(\n\t\t\t\tnew PropertyData({\n\t\t\t\t\tname: 'user_id',\n\t\t\t\t\tvalue: userId,\n\t\t\t\t\tlocation: PropertyLocation.BODY,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\treturn additionalProperties;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic override buildToolLaunchRequestPayload(url: string, properties: PropertyData[]): string | null {\n\t\tconst bodyProperties: PropertyData[] = properties.filter(\n\t\t\t(property: PropertyData) => property.location === PropertyLocation.BODY\n\t\t);\n\t\tconst payload: Record = {};\n\n\t\tfor (const property of bodyProperties) {\n\t\t\tpayload[property.name] = property.value;\n\t\t}\n\n\t\tconst key: PropertyData | undefined = properties.find((property: PropertyData) => property.name === 'key');\n\t\tconst secret: PropertyData | undefined = properties.find((property: PropertyData) => property.name === 'secret');\n\n\t\tif (!key || !secret) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'Unable to build LTI 1.1 launch payload. \"key\" or \"secret\" is undefined in PropertyData'\n\t\t\t);\n\t\t}\n\n\t\tconst signedPayload: Authorization = this.lti11EncryptionService.sign(key.value, secret.value, url, payload);\n\n\t\treturn JSON.stringify(signedPayload);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tpublic override determineLaunchRequestMethod(properties: PropertyData[]): LaunchRequestMethod {\n\t\treturn LaunchRequestMethod.POST;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LtiRoleMapper.html":{"url":"classes/LtiRoleMapper.html","title":"class - LtiRoleMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LtiRoleMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/mapper/lti-role.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapRolesToLtiRoles\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapRolesToLtiRoles\n \n \n \n \n \n \n \n mapRolesToLtiRoles(roleNames: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/lti-role.mapper.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleNames\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LtiRole[]\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { RoleName } from '@shared/domain';\nimport { LtiRole } from '../../common/enum';\n\nconst RoleMapping: Partial> = {\n\t[RoleName.USER]: LtiRole.LEARNER,\n\t[RoleName.STUDENT]: LtiRole.LEARNER,\n\t[RoleName.TEACHER]: LtiRole.INSTRUCTOR,\n\t[RoleName.ADMINISTRATOR]: LtiRole.ADMINISTRATOR,\n\t[RoleName.SUPERHERO]: LtiRole.ADMINISTRATOR,\n};\n\nexport class LtiRoleMapper {\n\tpublic static mapRolesToLtiRoles(roleNames: RoleName[]): LtiRole[] {\n\t\tconst ltiRoles: (LtiRole | undefined)[] = roleNames.map((roleName: RoleName) => RoleMapping[roleName]);\n\n\t\tconst filterUndefined: LtiRole[] = ltiRoles.filter(\n\t\t\t(ltiRole: LtiRole | undefined): ltiRole is LtiRole => ltiRole !== undefined\n\t\t);\n\n\t\treturn filterUndefined;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/LtiTool.html":{"url":"entities/LtiTool.html","title":"entity - LtiTool","body":"\n \n\n\n\n\n\n\n\n Entities\n LtiTool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/ltitool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n _originToolId\n \n \n \n customs\n \n \n \n \n Optional\n friendlyUrl\n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n isHidden\n \n \n \n Optional\n isLocal\n \n \n \n isTemplate\n \n \n \n key\n \n \n \n Optional\n logo_url\n \n \n \n Optional\n lti_message_type\n \n \n \n Optional\n lti_version\n \n \n \n name\n \n \n \n Optional\n oAuthClientId\n \n \n \n openNewTab\n \n \n \n privacy_permission\n \n \n \n Optional\n resource_link_id\n \n \n \n \n Optional\n roles\n \n \n \n secret\n \n \n \n Optional\n skipConsent\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n _originToolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'originTool'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:77\n \n \n\n\n \n \n \n \n \n \n \n \n \n customs\n \n \n \n \n \n \n Type : CustomLtiProperty[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:68\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n friendlyUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Unique({options: undefined})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:89\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:98\n \n \n\n\n \n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false, default: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:101\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n isLocal\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:74\n \n \n\n\n \n \n \n \n \n \n \n \n \n isTemplate\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false, default: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:71\n \n \n\n\n \n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logo_url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lti_message_type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lti_version\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oAuthClientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:85\n \n \n\n\n \n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false, default: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:95\n \n \n\n\n \n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Decorators : \n \n \n @Enum({items: () => LtiPrivacyPermission, default: undefined, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n roles\n \n \n \n \n \n \n Type : LtiRoleType[]\n\n \n \n \n \n Decorators : \n \n \n @Enum({array: true, items: () => LtiRoleType})@Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false, default: 'none'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:92\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/ltitool.entity.ts:36\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport type ILtiToolProperties = Readonly>;\n\nexport enum LtiRoleType {\n\tLEARNER = 'Learner',\n\tINSTRUCTOR = 'Instructor',\n\tCONTENT_DEVELOPER = 'ContentDeveloper',\n\tADMINISTRATOR = 'Administrator',\n\tMENTOR = 'Mentor',\n\tTEACHING_ASSISTANT = 'TeachingAssistant',\n}\n\nexport enum LtiPrivacyPermission {\n\tANONYMOUS = 'anonymous',\n\tEMAIL = 'e-mail',\n\tNAME = 'name',\n\tPUBLIC = 'public',\n\tPSEUDONYMOUS = 'pseudonymous',\n}\n\nexport interface CustomLtiProperty {\n\tkey: string;\n\tvalue: string;\n}\n\n@Entity({ tableName: 'ltitools' })\nexport class LtiTool extends BaseEntityWithTimestamps {\n\t@Property({ nullable: false })\n\tname: string;\n\n\t@Property({ nullable: false })\n\turl: string;\n\n\t@Property({ nullable: true })\n\tkey: string;\n\n\t@Property({ nullable: false, default: 'none' })\n\tsecret: string;\n\n\t@Property({ nullable: true })\n\tlogo_url?: string;\n\n\t@Property({ nullable: true })\n\tlti_message_type?: string;\n\n\t@Property({ nullable: true })\n\tlti_version?: string;\n\n\t@Property({ nullable: true })\n\tresource_link_id?: string;\n\n\t@Enum({ array: true, items: () => LtiRoleType })\n\t@Property({ nullable: true })\n\troles?: LtiRoleType[];\n\n\t@Enum({\n\t\titems: () => LtiPrivacyPermission,\n\t\tdefault: LtiPrivacyPermission.ANONYMOUS,\n\t\tnullable: false,\n\t})\n\tprivacy_permission: LtiPrivacyPermission;\n\n\t@Property({ nullable: false })\n\tcustoms: CustomLtiProperty[];\n\n\t@Property({ nullable: false, default: false })\n\tisTemplate: boolean;\n\n\t@Property({ nullable: true })\n\tisLocal?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'originTool' })\n\t_originToolId?: ObjectId;\n\n\t@Property({ persist: false, getter: true })\n\tget originToolId(): EntityId | undefined {\n\t\treturn this._originToolId?.toHexString();\n\t}\n\n\t@Property({ nullable: true })\n\toAuthClientId?: string;\n\n\t@Property({ nullable: true })\n\t@Unique({ options: { sparse: true } })\n\tfriendlyUrl?: string;\n\n\t@Property({ nullable: true })\n\tskipConsent?: boolean;\n\n\t@Property({ nullable: false, default: false })\n\topenNewTab: boolean;\n\n\t@Property({ nullable: true })\n\tfrontchannel_logout_uri?: string;\n\n\t@Property({ nullable: false, default: false })\n\tisHidden: boolean;\n\n\tconstructor(props: ILtiToolProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.url = props.url;\n\t\tthis.key = props.key || 'none';\n\t\tthis.secret = props.secret || 'none';\n\t\tthis.logo_url = props.logo_url;\n\t\tthis.lti_message_type = props.lti_message_type;\n\t\tthis.lti_version = props.lti_version;\n\t\tthis.resource_link_id = props.resource_link_id;\n\t\tthis.roles = props.roles || [];\n\t\tthis.privacy_permission = props.privacy_permission || LtiPrivacyPermission.ANONYMOUS;\n\t\tthis.customs = props.customs || [];\n\t\tthis.isTemplate = props.isTemplate || false;\n\t\tthis.isLocal = props.isLocal;\n\t\tif (props.originToolId !== undefined) {\n\t\t\tthis._originToolId = new ObjectId(props.originToolId);\n\t\t}\n\t\tthis.oAuthClientId = props.oAuthClientId;\n\t\tthis.friendlyUrl = props.friendlyUrl;\n\t\tthis.skipConsent = props.skipConsent;\n\t\tthis.openNewTab = props.openNewTab || false;\n\t\tthis.frontchannel_logout_uri = props.frontchannel_logout_uri;\n\t\tthis.isHidden = props.isHidden || false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LtiToolDO.html":{"url":"classes/LtiToolDO.html","title":"class - LtiToolDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LtiToolDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/ltitool.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n customs\n \n \n Optional\n friendlyUrl\n \n \n Optional\n frontchannel_logout_uri\n \n \n isHidden\n \n \n Optional\n isLocal\n \n \n isTemplate\n \n \n key\n \n \n Optional\n logo_url\n \n \n Optional\n lti_message_type\n \n \n Optional\n lti_version\n \n \n name\n \n \n Optional\n oAuthClientId\n \n \n openNewTab\n \n \n Optional\n originToolId\n \n \n privacy_permission\n \n \n Optional\n resource_link_id\n \n \n roles\n \n \n secret\n \n \n Optional\n skipConsent\n \n \n url\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(domainObject: LtiToolDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:55\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n \n LtiToolDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n customs\n \n \n \n \n \n \n Type : CustomLtiPropertyDO[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n friendlyUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:53\n \n \n\n\n \n \n \n \n \n \n \n \n isHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n isLocal\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n isTemplate\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logo_url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lti_message_type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lti_version\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oAuthClientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n originToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n privacy_permission\n \n \n \n \n \n \n Type : LtiPrivacyPermission\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n resource_link_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Type : LtiRoleType[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/ltitool.do.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LtiPrivacyPermission, LtiRoleType } from '@shared/domain/entity/ltitool.entity';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseDO } from './base.do';\n\nexport class CustomLtiPropertyDO {\n\tkey: string;\n\n\tvalue: string;\n\n\tconstructor(key: string, value: string) {\n\t\tthis.key = key;\n\t\tthis.value = value;\n\t}\n}\n\nexport class LtiToolDO extends BaseDO {\n\tname: string;\n\n\turl: string;\n\n\tkey: string;\n\n\tsecret: string;\n\n\tlogo_url?: string;\n\n\tlti_message_type?: string;\n\n\tlti_version?: string;\n\n\tresource_link_id?: string;\n\n\troles: LtiRoleType[];\n\n\tprivacy_permission: LtiPrivacyPermission;\n\n\tcustoms: CustomLtiPropertyDO[];\n\n\tisTemplate: boolean;\n\n\tisLocal?: boolean;\n\n\toriginToolId?: EntityId;\n\n\toAuthClientId?: string;\n\n\tfriendlyUrl?: string;\n\n\tskipConsent?: boolean;\n\n\topenNewTab: boolean;\n\n\tfrontchannel_logout_uri?: string;\n\n\tisHidden: boolean;\n\n\tconstructor(domainObject: LtiToolDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.name = domainObject.name;\n\t\tthis.url = domainObject.url;\n\t\tthis.key = domainObject.key;\n\t\tthis.secret = domainObject.secret;\n\t\tthis.logo_url = domainObject.logo_url;\n\t\tthis.lti_message_type = domainObject.lti_message_type;\n\t\tthis.lti_version = domainObject.lti_version;\n\t\tthis.resource_link_id = domainObject.resource_link_id;\n\t\tthis.roles = domainObject.roles;\n\t\tthis.privacy_permission = domainObject.privacy_permission;\n\t\tthis.customs = domainObject.customs;\n\t\tthis.isTemplate = domainObject.isTemplate;\n\t\tthis.isLocal = domainObject.isLocal;\n\t\tthis.originToolId = domainObject.originToolId;\n\t\tthis.oAuthClientId = domainObject.oAuthClientId;\n\t\tthis.friendlyUrl = domainObject.friendlyUrl;\n\t\tthis.skipConsent = domainObject.skipConsent;\n\t\tthis.openNewTab = domainObject.openNewTab;\n\t\tthis.frontchannel_logout_uri = domainObject.frontchannel_logout_uri;\n\t\tthis.isHidden = domainObject.isHidden;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/LtiToolFactory.html":{"url":"classes/LtiToolFactory.html","title":"class - LtiToolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n LtiToolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/ltitool.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withName\n \n \n withOauthClientId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withName\n \n \n \n \n \n \nwithName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/ltitool.factory.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOauthClientId\n \n \n \n \n \n \nwithOauthClientId(oAuthClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/ltitool.factory.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oAuthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ILtiToolProperties, LtiPrivacyPermission, LtiRoleType, LtiTool } from '@shared/domain/';\nimport { CustomLtiPropertyDO } from '@shared/domain/domainobject/ltitool.do';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\nimport { DeepPartial } from 'fishery';\n\nclass LtiToolFactory extends BaseFactory {\n\twithName(name: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tname,\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithOauthClientId(oAuthClientId: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\toAuthClientId,\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const ltiToolFactory = LtiToolFactory.define(LtiTool, ({ sequence }) => {\n\treturn {\n\t\tname: `ltiTool-${sequence}`,\n\t\tisLocal: true,\n\t\toAuthClientId: 'clientId',\n\t\tsecret: 'secret',\n\t\tcustoms: [new CustomLtiPropertyDO('key', 'value')],\n\t\tisHidden: false,\n\t\tisTemplate: false,\n\t\tkey: 'key',\n\t\topenNewTab: false,\n\t\toriginToolId: 'originToolId',\n\t\tprivacy_permission: LtiPrivacyPermission.NAME,\n\t\troles: [LtiRoleType.INSTRUCTOR, LtiRoleType.LEARNER],\n\t\turl: 'url',\n\t\tfriendlyUrl: 'friendlyUrl',\n\t\tfrontchannel_logout_uri: 'frontchannel_logout_uri',\n\t\tlogo_url: 'logo_url',\n\t\tlti_message_type: 'lti_message_type',\n\t\tlti_version: 'lti_version',\n\t\tresource_link_id: 'resource_link_id',\n\t\tskipConsent: true,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/LtiToolModule.html":{"url":"modules/LtiToolModule.html","title":"module - LtiToolModule","body":"\n \n\n\n\n\n Modules\n LtiToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_LtiToolModule\n\n\n\ncluster_LtiToolModule_exports\n\n\n\ncluster_LtiToolModule_providers\n\n\n\n\nLtiToolService \n\nLtiToolService \n\n\n\nLtiToolModule\n\nLtiToolModule\n\nLtiToolService -->\n\nLtiToolModule->LtiToolService \n\n\n\n\n\nLegacyLogger\n\nLegacyLogger\n\nLtiToolModule -->\n\nLegacyLogger->LtiToolModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nLtiToolModule -->\n\nLtiToolRepo->LtiToolModule\n\n\n\n\n\nLtiToolService\n\nLtiToolService\n\nLtiToolModule -->\n\nLtiToolService->LtiToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/lti-tool/lti-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n LegacyLogger\n \n \n LtiToolRepo\n \n \n LtiToolService\n \n \n \n \n Exports\n \n \n LtiToolService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { LtiToolService } from './service';\n\n@Module({\n\tproviders: [LtiToolService, LtiToolRepo, LegacyLogger],\n\texports: [LtiToolService],\n})\nexport class LtiToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LtiToolRepo.html":{"url":"injectables/LtiToolRepo.html","title":"injectable - LtiToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LtiToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/ltitool/ltitool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findByClientIdAndIsLocal\n \n \n Async\n findByName\n \n \n Async\n findByOauthClientId\n \n \n Protected\n mapDOToEntityProperties\n \n \n Protected\n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: ILtiToolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:13\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ILtiToolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LtiTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByClientIdAndIsLocal\n \n \n \n \n \n \n \n findByClientIdAndIsLocal(oAuthClientId: string, isLocal: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/ltitool/ltitool.repo.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oAuthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n isLocal\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByName\n \n \n \n \n \n \n \n findByName(name: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/ltitool/ltitool.repo.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByOauthClientId\n \n \n \n \n \n \n \n findByOauthClientId(oAuthClientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/ltitool/ltitool.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oAuthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(entityDO: LtiToolDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:69\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ILtiToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: LtiTool)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:43\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n LtiTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LtiToolDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/ltitool/ltitool.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { EntityName, NotFoundError } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { ILtiToolProperties, LtiPrivacyPermission, LtiTool } from '@shared/domain';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { BaseDORepo } from '@shared/repo/base.do.repo';\n\n@Injectable()\nexport class LtiToolRepo extends BaseDORepo {\n\tget entityName(): EntityName {\n\t\treturn LtiTool;\n\t}\n\n\tentityFactory(props: ILtiToolProperties): LtiTool {\n\t\treturn new LtiTool(props);\n\t}\n\n\tasync findByName(name: string): Promise {\n\t\tconst entities: LtiTool[] = await this._em.find(LtiTool, { name });\n\t\tif (entities.length === 0) {\n\t\t\tthrow new NotFoundError(`LtiTool with ${name} was not found.`);\n\t\t}\n\t\tconst dos: LtiToolDO[] = entities.map((entity) => this.mapEntityToDO(entity));\n\t\treturn dos;\n\t}\n\n\tasync findByOauthClientId(oAuthClientId: string): Promise {\n\t\tconst entity = await this._em.findOneOrFail(LtiTool, { oAuthClientId });\n\t\treturn this.mapEntityToDO(entity);\n\t}\n\n\tasync findByClientIdAndIsLocal(oAuthClientId: string, isLocal: boolean): Promise {\n\t\tconst entity: LtiTool | null = await this._em.findOne(LtiTool, { oAuthClientId, isLocal });\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainObject: LtiToolDO = this.mapEntityToDO(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tprotected mapEntityToDO(entity: LtiTool): LtiToolDO {\n\t\treturn new LtiToolDO({\n\t\t\tid: entity.id,\n\t\t\tname: entity.name,\n\t\t\turl: entity.url,\n\t\t\tkey: entity.key,\n\t\t\tsecret: entity.secret,\n\t\t\tlogo_url: entity.logo_url,\n\t\t\tlti_message_type: entity.lti_message_type,\n\t\t\tlti_version: entity.lti_version,\n\t\t\tresource_link_id: entity.resource_link_id,\n\t\t\troles: entity.roles || [],\n\t\t\tprivacy_permission: entity.privacy_permission || LtiPrivacyPermission.ANONYMOUS,\n\t\t\tcustoms: entity.customs,\n\t\t\tisTemplate: entity.isTemplate,\n\t\t\tisLocal: entity.isLocal,\n\t\t\toriginToolId: entity.originToolId,\n\t\t\toAuthClientId: entity.oAuthClientId,\n\t\t\tfriendlyUrl: entity.friendlyUrl,\n\t\t\tskipConsent: entity.skipConsent,\n\t\t\topenNewTab: entity.openNewTab,\n\t\t\tfrontchannel_logout_uri: entity.frontchannel_logout_uri,\n\t\t\tisHidden: entity.isHidden,\n\t\t});\n\t}\n\n\tprotected mapDOToEntityProperties(entityDO: LtiToolDO): ILtiToolProperties {\n\t\treturn {\n\t\t\tname: entityDO.name,\n\t\t\turl: entityDO.url,\n\t\t\tkey: entityDO.key,\n\t\t\tsecret: entityDO.secret,\n\t\t\tlogo_url: entityDO.logo_url,\n\t\t\tlti_message_type: entityDO.lti_message_type,\n\t\t\tlti_version: entityDO.lti_version,\n\t\t\tresource_link_id: entityDO.resource_link_id,\n\t\t\troles: entityDO.roles,\n\t\t\tprivacy_permission: entityDO.privacy_permission,\n\t\t\tcustoms: entityDO.customs,\n\t\t\tisTemplate: entityDO.isTemplate,\n\t\t\tisLocal: entityDO.isLocal,\n\t\t\toriginToolId: entityDO.originToolId,\n\t\t\toAuthClientId: entityDO.oAuthClientId,\n\t\t\tfriendlyUrl: entityDO.friendlyUrl,\n\t\t\tskipConsent: entityDO.skipConsent,\n\t\t\topenNewTab: entityDO.openNewTab,\n\t\t\tfrontchannel_logout_uri: entityDO.frontchannel_logout_uri,\n\t\t\tisHidden: entityDO.isHidden,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/LtiToolService.html":{"url":"injectables/LtiToolService.html","title":"injectable - LtiToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n LtiToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lti-tool/service/lti-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n findByClientIdAndIsLocal\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ltiToolRepo: LtiToolRepo)\n \n \n \n \n Defined in apps/server/src/modules/lti-tool/service/lti-tool.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ltiToolRepo\n \n \n LtiToolRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n findByClientIdAndIsLocal\n \n \n \n \n \n \n \n findByClientIdAndIsLocal(clientId: string, isLocal: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lti-tool/service/lti-tool.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n isLocal\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { LtiToolRepo } from '@shared/repo';\n\n@Injectable()\nexport class LtiToolService {\n\tconstructor(private readonly ltiToolRepo: LtiToolRepo) {}\n\n\tpublic async findByClientIdAndIsLocal(clientId: string, isLocal: boolean): Promise {\n\t\tconst ltiTool: Promise = this.ltiToolRepo.findByClientIdAndIsLocal(clientId, isLocal);\n\n\t\treturn ltiTool;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Mail.html":{"url":"interfaces/Mail.html","title":"interface - Mail","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Mail\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n bcc\n \n \n \n Optional\n \n cc\n \n \n \n Optional\n \n from\n \n \n \n \n mail\n \n \n \n \n recipients\n \n \n \n Optional\n \n replyTo\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bcc\n \n \n \n \n \n \n \n \n bcc: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n cc\n \n \n \n \n \n \n \n \n cc: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n from\n \n \n \n \n \n \n \n \n from: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n mail\n \n \n \n \n \n \n \n \n mail: PlainTextMailContent | HtmlMailContent\n\n \n \n\n\n \n \n Type : PlainTextMailContent | HtmlMailContent\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n recipients\n \n \n \n \n \n \n \n \n recipients: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n replyTo\n \n \n \n \n \n \n \n \n replyTo: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/MailAttachment.html":{"url":"interfaces/MailAttachment.html","title":"interface - MailAttachment","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n MailAttachment\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n base64Content\n \n \n \n \n mimeType\n \n \n \n \n name\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n base64Content\n \n \n \n \n \n \n \n \n base64Content: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n mimeType\n \n \n \n \n \n \n \n \n mimeType: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/MailContent.html":{"url":"interfaces/MailContent.html","title":"interface - MailContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n MailContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n attachments\n \n \n \n \n subject\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n attachments\n \n \n \n \n \n \n \n \n attachments: (InlineAttachment | AppendedAttachment)[]\n\n \n \n\n\n \n \n Type : (InlineAttachment | AppendedAttachment)[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n \n \n subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/MailModule.html":{"url":"modules/MailModule.html","title":"module - MailModule","body":"\n \n\n\n\n\n Modules\n MailModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/mail/mail.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options: MailModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/mail/mail.module.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MailModuleOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Module, DynamicModule } from '@nestjs/common';\nimport { MailService } from './mail.service';\n\ninterface MailModuleOptions {\n\texchange: string;\n\troutingKey: string;\n}\n\n@Module({})\nexport class MailModule {\n\tstatic forRoot(options: MailModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: MailModule,\n\t\t\tproviders: [\n\t\t\t\tMailService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'MAIL_SERVICE_OPTIONS',\n\t\t\t\t\tuseValue: { exchange: options.exchange, routingKey: options.routingKey },\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [MailService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/MailModuleOptions.html":{"url":"interfaces/MailModuleOptions.html","title":"interface - MailModuleOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n MailModuleOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.module.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n exchange\n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n exchange\n \n \n \n \n \n \n \n \n exchange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n routingKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Module, DynamicModule } from '@nestjs/common';\nimport { MailService } from './mail.service';\n\ninterface MailModuleOptions {\n\texchange: string;\n\troutingKey: string;\n}\n\n@Module({})\nexport class MailModule {\n\tstatic forRoot(options: MailModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: MailModule,\n\t\t\tproviders: [\n\t\t\t\tMailService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'MAIL_SERVICE_OPTIONS',\n\t\t\t\t\tuseValue: { exchange: options.exchange, routingKey: options.routingKey },\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [MailService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MailService.html":{"url":"injectables/MailService.html","title":"injectable - MailService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MailService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n send\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(amqpConnection: AmqpConnection, options: MailServiceOptions)\n \n \n \n \n Defined in apps/server/src/shared/infra/mail/mail.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n amqpConnection\n \n \n AmqpConnection\n \n \n \n No\n \n \n \n \n options\n \n \n MailServiceOptions\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n send\n \n \n \n \n \n \n \n send(data: Mail)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/mail/mail.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n Mail\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Inject, Injectable } from '@nestjs/common';\n\nimport { Mail } from './mail.interface';\n\ninterface MailServiceOptions {\n\texchange: string;\n\troutingKey: string;\n}\n\n@Injectable()\nexport class MailService {\n\tconstructor(\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\t@Inject('MAIL_SERVICE_OPTIONS') private readonly options: MailServiceOptions\n\t) {}\n\n\tpublic async send(data: Mail): Promise {\n\t\tawait this.amqpConnection.publish(this.options.exchange, this.options.routingKey, data, { persistent: true });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/MailServiceOptions.html":{"url":"interfaces/MailServiceOptions.html","title":"interface - MailServiceOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n MailServiceOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n exchange\n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n exchange\n \n \n \n \n \n \n \n \n exchange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n routingKey\n \n \n \n \n \n \n \n \n routingKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { AmqpConnection } from '@golevelup/nestjs-rabbitmq';\nimport { Inject, Injectable } from '@nestjs/common';\n\nimport { Mail } from './mail.interface';\n\ninterface MailServiceOptions {\n\texchange: string;\n\troutingKey: string;\n}\n\n@Injectable()\nexport class MailService {\n\tconstructor(\n\t\tprivate readonly amqpConnection: AmqpConnection,\n\t\t@Inject('MAIL_SERVICE_OPTIONS') private readonly options: MailServiceOptions\n\t) {}\n\n\tpublic async send(data: Mail): Promise {\n\t\tawait this.amqpConnection.publish(this.options.exchange, this.options.routingKey, data, { persistent: true });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ManagementModule.html":{"url":"modules/ManagementModule.html","title":"module - ManagementModule","body":"\n \n\n\n\n\n Modules\n ManagementModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ManagementModule\n\n\n\ncluster_ManagementModule_providers\n\n\n\ncluster_ManagementModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nManagementModule\n\nManagementModule\n\nManagementModule -->\n\nAuthenticationModule->ManagementModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nManagementModule -->\n\nAuthorizationModule->ManagementModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nManagementModule -->\n\nCoreModule->ManagementModule\n\n\n\n\n\nFilesStorageApiModule\n\nFilesStorageApiModule\n\nManagementModule -->\n\nFilesStorageApiModule->ManagementModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nManagementModule -->\n\nLoggerModule->ManagementModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nManagementModule -->\n\nRabbitMQWrapperTestModule->ManagementModule\n\n\n\n\n\nBoardManagementUc\n\nBoardManagementUc\n\nManagementModule -->\n\nBoardManagementUc->ManagementModule\n\n\n\n\n\nBsonConverter\n\nBsonConverter\n\nManagementModule -->\n\nBsonConverter->ManagementModule\n\n\n\n\n\nConsoleWriterService\n\nConsoleWriterService\n\nManagementModule -->\n\nConsoleWriterService->ManagementModule\n\n\n\n\n\nDatabaseManagementService\n\nDatabaseManagementService\n\nManagementModule -->\n\nDatabaseManagementService->ManagementModule\n\n\n\n\n\nDatabaseManagementUc\n\nDatabaseManagementUc\n\nManagementModule -->\n\nDatabaseManagementUc->ManagementModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/management/management.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BoardManagementUc\n \n \n BsonConverter\n \n \n ConsoleWriterService\n \n \n DatabaseManagementService\n \n \n DatabaseManagementUc\n \n \n \n \n Controllers\n \n \n DatabaseManagementController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n CoreModule\n \n \n FilesStorageApiModule\n \n \n LoggerModule\n \n \n RabbitMQWrapperTestModule\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Module } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ConsoleWriterService } from '@shared/infra/console';\nimport { DatabaseManagementModule, DatabaseManagementService } from '@shared/infra/database';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { FileSystemModule } from '@shared/infra/file-system';\nimport { KeycloakConfigurationModule } from '@shared/infra/identity-management/keycloak-configuration/keycloak-configuration.module';\nimport { createConfigModuleOptions } from '@src/config';\nimport { LoggerModule } from '@src/core/logger';\nimport { serverConfig } from '@src/modules/server';\nimport { BoardManagementConsole } from './console/board-management.console';\nimport { DatabaseManagementConsole } from './console/database-management.console';\nimport { DatabaseManagementController } from './controller/database-management.controller';\nimport { BsonConverter } from './converter/bson.converter';\nimport { BoardManagementUc } from './uc/board-management.uc';\nimport { DatabaseManagementUc } from './uc/database-management.uc';\n\nconst baseImports = [\n\tFileSystemModule,\n\tDatabaseManagementModule,\n\tLoggerModule,\n\tConfigModule.forRoot(createConfigModuleOptions(serverConfig)),\n\tEncryptionModule,\n];\n\nconst imports = (Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean)\n\t? [...baseImports, KeycloakConfigurationModule]\n\t: baseImports;\n\nconst providers = [\n\tDatabaseManagementUc,\n\tDatabaseManagementService,\n\tBsonConverter,\n\t// console providers\n\tDatabaseManagementConsole,\n\t// infra services\n\tConsoleWriterService,\n\tBoardManagementConsole,\n\tBoardManagementUc,\n];\n\nconst controllers = [DatabaseManagementController];\n\n@Module({\n\timports: [...imports],\n\tproviders,\n\tcontrollers,\n})\nexport class ManagementModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ManagementServerModule.html":{"url":"modules/ManagementServerModule.html","title":"module - ManagementServerModule","body":"\n \n\n\n\n\n Modules\n ManagementServerModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ManagementServerModule\n\n\n\ncluster_ManagementServerModule_imports\n\n\n\n\nManagementModule\n\nManagementModule\n\n\n\nManagementServerModule\n\nManagementServerModule\n\nManagementServerModule -->\n\nManagementModule->ManagementServerModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/management/management-server.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n ManagementModule\n \n \n \n \n \n\n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Module, NotFoundException } from '@nestjs/common';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME } from '@src/config';\nimport { ManagementModule } from './management.module';\n\nexport const defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\n@Module({\n\timports: [\n\t\tManagementModule,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\t// TODO repeats server module definitions\n\t\t\ttype: 'mongo',\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: ALL_ENTITIES,\n\t\t}),\n\t],\n})\nexport class ManagementServerModule {}\n\n@Module({\n\timports: [ManagementModule, MongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions })],\n})\nexport class ManagementServerTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: ManagementModule,\n\t\t\timports: [MongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions, ...options })],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ManagementServerTestModule.html":{"url":"modules/ManagementServerTestModule.html","title":"module - ManagementServerTestModule","body":"\n \n\n\n\n\n Modules\n ManagementServerTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ManagementServerTestModule\n\n\n\ncluster_ManagementServerTestModule_imports\n\n\n\n\nManagementModule\n\nManagementModule\n\n\n\nManagementServerTestModule\n\nManagementServerTestModule\n\nManagementServerTestModule -->\n\nManagementModule->ManagementServerTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nManagementServerTestModule -->\n\nMongoMemoryDatabaseModule->ManagementServerTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/management/management-server.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n ManagementModule\n \n \n MongoMemoryDatabaseModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/management/management-server.module.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Module, NotFoundException } from '@nestjs/common';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MongoDatabaseModuleOptions } from '@shared/infra/database/mongo-memory-database/types';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME } from '@src/config';\nimport { ManagementModule } from './management.module';\n\nexport const defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\n@Module({\n\timports: [\n\t\tManagementModule,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\t// TODO repeats server module definitions\n\t\t\ttype: 'mongo',\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: ALL_ENTITIES,\n\t\t}),\n\t],\n})\nexport class ManagementServerModule {}\n\n@Module({\n\timports: [ManagementModule, MongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions })],\n})\nexport class ManagementServerTestModule {\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: ManagementModule,\n\t\t\timports: [MongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions, ...options })],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Material.html":{"url":"entities/Material.html","title":"entity - Material","body":"\n \n\n\n\n\n\n\n\n Entities\n Material\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/materials.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n client\n \n \n \n Optional\n description\n \n \n \n license\n \n \n \n Optional\n merlinReference\n \n \n \n relatedResources\n \n \n \n subjects\n \n \n \n tags\n \n \n \n targetGroups\n \n \n \n title\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n license\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n merlinReference\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n relatedResources\n \n \n \n \n \n \n Type : IRelatedResourceProperties[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n subjects\n \n \n \n \n \n \n Type : string[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n tags\n \n \n \n \n \n \n Type : string[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetGroups\n \n \n \n \n \n \n Type : ITargetGroupProperties[] | \n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/materials.entity.ts:58\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ITargetGroupProperties {\n\tstate?: string;\n\tschoolType?: string;\n\tgrade?: string;\n}\n\nexport interface IRelatedResourceProperties {\n\toriginId?: string;\n\trelationType?: string;\n}\n\nexport interface IMaterialProperties {\n\tclient: string;\n\tdescription?: string;\n\tlicense: string[];\n\tmerlinReference?: string;\n\trelatedResources: IRelatedResourceProperties[];\n\tsubjects: string[];\n\ttags: string[];\n\ttargetGroups: ITargetGroupProperties[];\n\ttitle: string;\n\turl: string;\n}\n\n@Entity({ collection: 'materials' })\nexport class Material extends BaseEntityWithTimestamps {\n\t@Property()\n\tclient: string;\n\n\t@Property()\n\tdescription?: string;\n\n\t@Property()\n\tlicense: string[];\n\n\t@Property()\n\tmerlinReference?: string;\n\n\t@Property()\n\trelatedResources: IRelatedResourceProperties[] | [];\n\n\t@Property()\n\tsubjects: string[] | [];\n\n\t@Property()\n\ttags: string[] | [];\n\n\t@Property()\n\ttargetGroups: ITargetGroupProperties[] | [];\n\n\t@Property()\n\ttitle: string;\n\n\t@Property()\n\turl: string;\n\n\tconstructor(props: IMaterialProperties) {\n\t\tsuper();\n\t\tthis.client = props.client;\n\t\tthis.description = props.description || '';\n\t\tthis.license = props.license;\n\t\tthis.merlinReference = props.merlinReference || '';\n\t\tthis.relatedResources = props.relatedResources;\n\t\tthis.subjects = props.subjects;\n\t\tthis.tags = props.tags;\n\t\tthis.targetGroups = props.targetGroups;\n\t\tthis.title = props.title;\n\t\tthis.url = props.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MaterialFactory.html":{"url":"classes/MaterialFactory.html","title":"class - MaterialFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MaterialFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/material.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { IMaterialProperties, Material } from '@shared/domain/entity/materials.entity';\nimport { BaseFactory } from './base.factory';\n\nclass MaterialFactory extends BaseFactory {}\n\nexport const materialFactory = MaterialFactory.define(Material, ({ sequence }) => {\n\treturn {\n\t\tclient: 'test material client',\n\t\tdescription: 'test material description',\n\t\tlicense: [],\n\t\tmerlinReference: '',\n\t\trelatedResources: [],\n\t\tsubjects: [],\n\t\ttags: [],\n\t\ttargetGroups: [],\n\t\ttitle: `material #${sequence}`,\n\t\turl: 'test material url',\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MaterialsRepo.html":{"url":"injectables/MaterialsRepo.html","title":"injectable - MaterialsRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MaterialsRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/materials/materials.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/materials/materials.repo.ts:7\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Material } from '@shared/domain/entity/materials.entity';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class MaterialsRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Material;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Meta.html":{"url":"interfaces/Meta.html","title":"interface - Meta","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Meta\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n itemsperpage\n \n \n \n \n message\n \n \n \n \n status\n \n \n \n \n statuscode\n \n \n \n \n totalitems\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n itemsperpage\n \n \n \n \n \n \n \n \n itemsperpage: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n message\n \n \n \n \n \n \n \n \n message: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n statuscode\n \n \n \n \n \n \n \n \n statuscode: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n totalitems\n \n \n \n \n \n \n \n \n totalitems: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MetadataTypeMapper.html":{"url":"classes/MetadataTypeMapper.html","title":"class - MetadataTypeMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MetadataTypeMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/metadata-type.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToAlloweMetadataType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToAlloweMetadataType\n \n \n \n \n \n \n \n mapToAlloweMetadataType(type: ShareTokenParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/metadata-type.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ShareTokenParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LearnroomTypes\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { LearnroomTypes } from '@shared/domain';\nimport { ShareTokenParentType } from '../domainobject/share-token.do';\n\nexport class MetadataTypeMapper {\n\tstatic mapToAlloweMetadataType(type: ShareTokenParentType): LearnroomTypes {\n\t\tconst types: Map = new Map();\n\t\ttypes.set(ShareTokenParentType.Course, LearnroomTypes.Course);\n\n\t\tconst res = types.get(type);\n\n\t\tif (!res) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\treturn res;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationAlreadyActivatedException.html":{"url":"classes/MigrationAlreadyActivatedException.html","title":"class - MigrationAlreadyActivatedException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationAlreadyActivatedException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts\n \n\n\n\n \n Extends\n \n \n LdapUserMigrationException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(descriptionOrOptions?: string | HttpExceptionOptions)\n \n \n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:28\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n descriptionOrOptions\n \n \n string | HttpExceptionOptions\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:33\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, HttpExceptionOptions } from '@nestjs/common';\nimport { ErrorLogMessage, LogMessage, Loggable, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class LdapUserMigrationException extends BadRequestException {}\n\nexport class LdapAlreadyPersistedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('ldapAlreadyPersisted', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'LDAP is already Persisted',\n\t\t};\n\t}\n}\nexport class MissingSchoolNumberException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school is missing a official school number',\n\t\t};\n\t}\n}\nexport class MigrationAlreadyActivatedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration is already activated for this school',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationBody.html":{"url":"classes/MigrationBody.html","title":"class - MigrationBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/controller/dto/migration.body.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Set if migration is finished in this school', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.body.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Set if migration is mandatory in this school', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.body.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'Set if migration is possible in this school', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.body.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean, IsOptional } from 'class-validator';\n\nexport class MigrationBody {\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Set if migration is possible in this school',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\toauthMigrationPossible?: boolean;\n\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Set if migration is mandatory in this school',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\toauthMigrationMandatory?: boolean;\n\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Set if migration is finished in this school',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\toauthMigrationFinished?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MigrationCheckService.html":{"url":"injectables/MigrationCheckService.html","title":"injectable - MigrationCheckService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MigrationCheckService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/migration-check.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n shouldUserMigrate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, schoolService: LegacySchoolService, userLoginMigrationRepo: UserLoginMigrationRepo)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/migration-check.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n userLoginMigrationRepo\n \n \n UserLoginMigrationRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n shouldUserMigrate\n \n \n \n \n \n \n \n shouldUserMigrate(externalUserId: string, systemId: EntityId, officialSchoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/migration-check.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUserId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, UserDO, UserLoginMigrationDO } from '@shared/domain';\nimport { UserLoginMigrationRepo } from '@shared/repo';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserService } from '@src/modules/user';\n\n@Injectable()\nexport class MigrationCheckService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly userLoginMigrationRepo: UserLoginMigrationRepo\n\t) {}\n\n\tasync shouldUserMigrate(externalUserId: string, systemId: EntityId, officialSchoolNumber: string): Promise {\n\t\tconst school: LegacySchoolDo | null = await this.schoolService.getSchoolBySchoolNumber(officialSchoolNumber);\n\n\t\tif (school && school.id) {\n\t\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(\n\t\t\t\tschool.id\n\t\t\t);\n\n\t\t\tconst user: UserDO | null = await this.userService.findByExternalId(externalUserId, systemId);\n\n\t\t\tif (user?.lastLoginSystemChange && userLoginMigration && !userLoginMigration.closedAt) {\n\t\t\t\tconst hasMigrated: boolean = user.lastLoginSystemChange > userLoginMigration.startedAt;\n\t\t\t\treturn !hasMigrated;\n\t\t\t}\n\t\t\treturn !!userLoginMigration && !userLoginMigration.closedAt;\n\t\t}\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationDto.html":{"url":"classes/MigrationDto.html","title":"class - MigrationDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/dto/migration.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n redirect\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userMigrationDto: MigrationDto)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/migration.dto.ts:2\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userMigrationDto\n \n \n MigrationDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n redirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/migration.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class MigrationDto {\n\tredirect: string;\n\n\tconstructor(userMigrationDto: MigrationDto) {\n\t\tthis.redirect = userMigrationDto.redirect;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/MigrationMapper.html":{"url":"injectables/MigrationMapper.html","title":"injectable - MigrationMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n MigrationMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/mapper/migration.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapDtoToResponse\n \n \n \n \n \n \n \n mapDtoToResponse(dto: OauthMigrationDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/mapper/migration.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n OauthMigrationDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : MigrationResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { MigrationResponse } from '../controller/dto';\nimport { OauthMigrationDto } from '../uc/dto/oauth-migration.dto';\n\n@Injectable()\nexport class MigrationMapper {\n\tpublic mapDtoToResponse(dto: OauthMigrationDto): MigrationResponse {\n\t\tconst response: MigrationResponse = new MigrationResponse({\n\t\t\toauthMigrationPossible: dto.oauthMigrationPossible,\n\t\t\toauthMigrationMandatory: dto.oauthMigrationMandatory,\n\t\t\toauthMigrationFinished: dto.oauthMigrationFinished,\n\t\t\toauthMigrationFinalFinish: dto.oauthMigrationFinalFinish,\n\t\t\tenableMigrationStart: dto.enableMigrationStart,\n\t\t});\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationMayBeCompleted.html":{"url":"classes/MigrationMayBeCompleted.html","title":"class - MigrationMayBeCompleted","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationMayBeCompleted\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/migration-may-be-completed.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(inUserMigration?: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/migration-may-be-completed.loggable.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n inUserMigration\n \n \n boolean\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/migration-may-be-completed.loggable.ts:6\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class MigrationMayBeCompleted implements Loggable {\n\tconstructor(private readonly inUserMigration?: boolean) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The migration may have already been completed or the school may not yet be in maintenance mode',\n\t\t\tdata: {\n\t\t\t\tinUserMigration: this.inUserMigration,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationMayNotBeCompleted.html":{"url":"classes/MigrationMayNotBeCompleted.html","title":"class - MigrationMayNotBeCompleted","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationMayNotBeCompleted\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/migration-is-not-completed.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(inUserMigration?: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/migration-is-not-completed.loggable.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n inUserMigration\n \n \n boolean\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/migration-is-not-completed.loggable.ts:6\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class MigrationMayNotBeCompleted implements Loggable {\n\tconstructor(private readonly inUserMigration?: boolean) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The migration may not be yet complete or the school may not be in maintenance mode',\n\t\t\tdata: {\n\t\t\t\tinUserMigration: this.inUserMigration,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MigrationResponse.html":{"url":"classes/MigrationResponse.html","title":"class - MigrationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MigrationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/controller/dto/migration.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n enableMigrationStart\n \n \n \n Optional\n oauthMigrationFinalFinish\n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(params: MigrationResponse)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:31\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n \n MigrationResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n enableMigrationStart\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Enable the Migration'})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinalFinish\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date from when Migration is finally finished and cannot be restarted again', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date from when Migration is finished', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date from when Migration is mandatory', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date from when Migration is possible', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/migration.response.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class MigrationResponse {\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date from when Migration is possible',\n\t\ttype: Date,\n\t})\n\toauthMigrationPossible?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date from when Migration is mandatory',\n\t\ttype: Date,\n\t})\n\toauthMigrationMandatory?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date from when Migration is finished',\n\t\ttype: Date,\n\t})\n\toauthMigrationFinished?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date from when Migration is finally finished and cannot be restarted again',\n\t\ttype: Date,\n\t})\n\toauthMigrationFinalFinish?: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'Enable the Migration',\n\t})\n\tenableMigrationStart!: boolean;\n\n\tconstructor(params: MigrationResponse) {\n\t\tthis.oauthMigrationPossible = params.oauthMigrationPossible;\n\t\tthis.oauthMigrationMandatory = params.oauthMigrationMandatory;\n\t\tthis.oauthMigrationFinished = params.oauthMigrationFinished;\n\t\tthis.oauthMigrationFinalFinish = params.oauthMigrationFinalFinish;\n\t\tthis.enableMigrationStart = params.enableMigrationStart;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MissingSchoolNumberException.html":{"url":"classes/MissingSchoolNumberException.html","title":"class - MissingSchoolNumberException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MissingSchoolNumberException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts\n \n\n\n\n \n Extends\n \n \n LdapUserMigrationException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(descriptionOrOptions?: string | HttpExceptionOptions)\n \n \n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n descriptionOrOptions\n \n \n string | HttpExceptionOptions\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/uc/ldap-user-migration.error.ts:22\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException, HttpExceptionOptions } from '@nestjs/common';\nimport { ErrorLogMessage, LogMessage, Loggable, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class LdapUserMigrationException extends BadRequestException {}\n\nexport class LdapAlreadyPersistedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('ldapAlreadyPersisted', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'LDAP is already Persisted',\n\t\t};\n\t}\n}\nexport class MissingSchoolNumberException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school is missing a official school number',\n\t\t};\n\t}\n}\nexport class MigrationAlreadyActivatedException extends LdapUserMigrationException implements Loggable {\n\tconstructor(descriptionOrOptions?: string | HttpExceptionOptions) {\n\t\tsuper('LDAP migration Exception', descriptionOrOptions);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration is already activated for this school',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MissingToolParameterValueLoggableException.html":{"url":"classes/MissingToolParameterValueLoggableException.html","title":"class - MissingToolParameterValueLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MissingToolParameterValueLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(contextExternalTool: ContextExternalTool, parameters: CustomParameter[])\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n \n ContextExternalTool\n \n \n \n No\n \n \n \n \n parameters\n \n \n CustomParameter[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/missing-tool-parameter-value.loggable-exception.ts:26\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { CustomParameter } from '../../common/domain';\n\nexport class MissingToolParameterValueLoggableException extends BusinessError implements Loggable {\n\tconstructor(\n\t\tprivate readonly contextExternalTool: ContextExternalTool,\n\t\tprivate readonly parameters: CustomParameter[]\n\t) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'MISSING_TOOL_PARAMETER_VALUE',\n\t\t\t\ttitle: 'Missing tool parameter value',\n\t\t\t\tdefaultMessage: 'The external tool was attempted to launch, but a parameter was not configured.',\n\t\t\t},\n\t\t\tHttpStatus.UNPROCESSABLE_ENTITY,\n\t\t\t{\n\t\t\t\tparameterKeys: parameters.map((param): string => param.name),\n\t\t\t\tparameterNames: parameters.map((param): string => param.displayName),\n\t\t\t}\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\tconst parameterNames: string[] = this.parameters.map((param): string => param.name);\n\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tmessage: this.message,\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tcontextExternalToolId: this.contextExternalTool.id,\n\t\t\t\tparameterNames: `[${parameterNames.join(', ')}]`,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/MongoMemoryDatabaseModule.html":{"url":"modules/MongoMemoryDatabaseModule.html","title":"module - MongoMemoryDatabaseModule","body":"\n \n\n\n\n\n Modules\n MongoMemoryDatabaseModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/database/mongo-memory-database/mongo-memory-database.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/mongo-memory-database/mongo-memory-database.module.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n onModuleDestroy\n \n \n \n \n \n \n \n onModuleDestroy()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/database/mongo-memory-database/mongo-memory-database.module.ts:42\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n \n\n\n \n import { MikroORM } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleAsyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Inject, Module, OnModuleDestroy } from '@nestjs/common';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport _ from 'lodash';\nimport { MongoDatabaseModuleOptions } from './types';\n\nconst dbName = () => _.times(20, () => _.random(35).toString(36)).join('');\n\nconst createMikroOrmModule = (options: MikroOrmModuleAsyncOptions): DynamicModule => {\n\tconst mikroOrmModule = MikroOrmModule.forRootAsync({\n\t\tuseFactory: () => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions, no-process-env\n\t\t\tconst clientUrl = `${process.env.MONGO_TEST_URI}/${dbName()}`;\n\t\t\treturn {\n\t\t\t\tallowGlobalContext: true, // can be overridden by options\n\t\t\t\t...options,\n\t\t\t\ttype: 'mongo',\n\t\t\t\tclientUrl,\n\t\t\t};\n\t\t},\n\t});\n\n\treturn mikroOrmModule;\n};\n\n@Module({})\nexport class MongoMemoryDatabaseModule implements OnModuleDestroy {\n\tconstructor(@Inject(MikroORM) private orm: MikroORM) {}\n\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\tconst defaultOptions = {\n\t\t\tentities: ALL_ENTITIES,\n\t\t};\n\t\treturn {\n\t\t\tmodule: MongoMemoryDatabaseModule,\n\t\t\timports: [createMikroOrmModule({ ...defaultOptions, ...options })],\n\t\t\texports: [MikroOrmModule],\n\t\t};\n\t}\n\n\tasync onModuleDestroy(): Promise {\n\t\tawait this.orm.close();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MongoPatterns.html":{"url":"classes/MongoPatterns.html","title":"class - MongoPatterns","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MongoPatterns\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/mongo.patterns.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST\n \n \n \n \n \n \n Default value : /[^\\-_\\w\\d áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ]/gi\n \n \n \n \n Defined in apps/server/src/shared/repo/mongo.patterns.ts:6\n \n \n\n \n \n Regex to escape strings before use as regex against database.\nUsed to remove all non-language characters except numbers, whitespace or minus.\n\n \n \n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class MongoPatterns {\n\t/**\n\t * Regex to escape strings before use as regex against database.\n\t * Used to remove all non-language characters except numbers, whitespace or minus.\n\t */\n\tstatic REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST =\n\t\t/[^\\-_\\w\\d áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ]/gi;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveCardBodyParams.html":{"url":"classes/MoveCardBodyParams.html","title":"class - MoveCardBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveCardBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/move-card.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n toColumnId\n \n \n \n \n \n toPosition\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n toColumnId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/move-card.body.params.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n toPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/move-card.body.params.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNumber, Min } from 'class-validator';\n\nexport class MoveCardBodyParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoColumnId!: string;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoPosition!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveColumnBodyParams.html":{"url":"classes/MoveColumnBodyParams.html","title":"class - MoveColumnBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveColumnBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/move-column.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n toBoardId\n \n \n \n \n \n toPosition\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n toBoardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the target board', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/move-column.body.params.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n toPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/move-column.body.params.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNumber, Min } from 'class-validator';\n\nexport class MoveColumnBodyParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the target board',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoBoardId!: string;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoPosition!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveContentElementBody.html":{"url":"classes/MoveContentElementBody.html","title":"class - MoveContentElementBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveContentElementBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/move-content-element.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n toCardId\n \n \n \n \n \n toPosition\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n toCardId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/move-content-element.body.params.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n toPosition\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/move-content-element.body.params.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNumber, Min } from 'class-validator';\n\nexport class MoveContentElementBody {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoCardId!: string;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoPosition!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveElementParams.html":{"url":"classes/MoveElementParams.html","title":"class - MoveElementParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveElementParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n from\n \n \n \n \n to\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n from\n \n \n \n \n \n \n Type : MoveElementPositionParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n to\n \n \n \n \n \n \n Type : MoveElementPositionParams\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:33\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ValidateNested, IsNumber, Min, IsOptional } from 'class-validator';\n\n/**\n * DTO for Updating the position of a Dashboard Element.\n */\n\nexport class MoveElementPositionParams {\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\tx!: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\ty!: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiPropertyOptional({ description: 'used to identify a position within a group.' })\n\tgroupIndex?: number;\n}\n\nexport class MoveElementParams {\n\t@ValidateNested()\n\t@ApiProperty()\n\tfrom!: MoveElementPositionParams;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tto!: MoveElementPositionParams;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/MoveElementPositionParams.html":{"url":"classes/MoveElementPositionParams.html","title":"class - MoveElementPositionParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n MoveElementPositionParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts\n \n\n\n \n Description\n \n \n DTO for Updating the position of a Dashboard Element.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n groupIndex\n \n \n \n \n \n x\n \n \n \n \n \n y\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n groupIndex\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@IsOptional()@ApiPropertyOptional({description: 'used to identify a position within a group.'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n x\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n y\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@Min(0)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/move-element.body.params.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ValidateNested, IsNumber, Min, IsOptional } from 'class-validator';\n\n/**\n * DTO for Updating the position of a Dashboard Element.\n */\n\nexport class MoveElementPositionParams {\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\tx!: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@ApiProperty()\n\ty!: number;\n\n\t@IsNumber()\n\t@Min(0)\n\t@IsOptional()\n\t@ApiPropertyOptional({ description: 'used to identify a position within a group.' })\n\tgroupIndex?: number;\n}\n\nexport class MoveElementParams {\n\t@ValidateNested()\n\t@ApiProperty()\n\tfrom!: MoveElementPositionParams;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tto!: MoveElementPositionParams;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/News.html":{"url":"entities/News.html","title":"entity - News","body":"\n \n\n\n\n\n\n\n\n Entities\n News\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n creator\n \n \n \n \n displayAt\n \n \n \n Optional\n externalId\n \n \n permissions\n \n \n \n school\n \n \n \n Optional\n source\n \n \n \n Optional\n sourceDescription\n \n \n target\n \n \n \n targetModel\n \n \n \n title\n \n \n \n Optional\n updater\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:38\n \n \n\n \n \n the news content as html\n\n \n \n\n \n \n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('User', {fieldName: 'creatorId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:43\n \n \n\n \n \n only past news are visible for viewers, when edit permission, news visible in the future might be accessed too\n\n \n \n\n \n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:70\n \n \n\n\n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'schoolId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:62\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n source\n \n \n \n \n \n \n Type : \"internal\" | \"rss\"\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceDescription\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : NewsTarget\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:55\n \n \n\n \n \n id reference to a collection populated later with name\n\n \n \n\n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : NewsTargetModel\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:59\n \n \n\n \n \n name of a collection which is referenced in target\n\n \n \n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:34\n \n \n\n \n \n the news title\n\n \n \n\n \n \n \n \n \n \n \n \n \n Optional\n updater\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('User', {fieldName: 'updaterId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:68\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/NewsController.html":{"url":"controllers/NewsController.html","title":"controller - NewsController","body":"\n \n\n\n\n\n\n\n Controllers\n NewsController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/news.controller.ts\n \n\n \n Prefix\n \n \n news\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n Async\n delete\n \n \n \n Async\n findAll\n \n \n \n Async\n findOne\n \n \n \n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(currentUser: ICurrentUser, params: CreateNewsParams)\n \n \n\n \n \n Decorators : \n \n @Post()\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:27\n \n \n\n\n \n \n Create a news by a user in a given scope (school or team).\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n CreateNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(urlParams: NewsUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':newsId')\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:90\n \n \n\n\n \n \n Delete a news.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n NewsUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll(currentUser: ICurrentUser, scope: FilterNewsParams, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:41\n \n \n\n\n \n \n Responds with all news for a user.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n FilterNewsParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOne\n \n \n \n \n \n \n \n findOne(urlParams: NewsUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get(':newsId')\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:62\n \n \n\n\n \n \n Retrieve a specific news entry by id.\nA user may only read news of scopes he has the read permission.\nThe news entity has school and user names populated.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n NewsUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n update\n \n \n \n \n \n \n \n update(urlParams: NewsUrlParams, currentUser: ICurrentUser, params: UpdateNewsParams)\n \n \n\n \n \n Decorators : \n \n @Patch(':newsId')\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/news.controller.ts:72\n \n \n\n\n \n \n Update properties of a news.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n NewsUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n UpdateNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { PaginationParams } from '@shared/controller';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { NewsMapper } from '../mapper/news.mapper';\nimport { NewsUc } from '../uc/news.uc';\nimport {\n\tCreateNewsParams,\n\tFilterNewsParams,\n\tNewsListResponse,\n\tNewsResponse,\n\tNewsUrlParams,\n\tUpdateNewsParams,\n} from './dto';\n\n@ApiTags('News')\n@Authenticate('jwt')\n@Controller('news')\nexport class NewsController {\n\tconstructor(private readonly newsUc: NewsUc) {}\n\n\t/**\n\t * Create a news by a user in a given scope (school or team).\n\t */\n\t@Post()\n\tasync create(@CurrentUser() currentUser: ICurrentUser, @Body() params: CreateNewsParams): Promise {\n\t\tconst news = await this.newsUc.create(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId,\n\t\t\tNewsMapper.mapCreateNewsToDomain(params)\n\t\t);\n\t\tconst dto = NewsMapper.mapToResponse(news);\n\t\treturn dto;\n\t}\n\n\t/**\n\t * Responds with all news for a user.\n\t */\n\t@Get()\n\tasync findAll(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() scope: FilterNewsParams,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\tconst [newsList, count] = await this.newsUc.findAllForUser(\n\t\t\tcurrentUser.userId,\n\t\t\tNewsMapper.mapNewsScopeToDomain(scope),\n\t\t\t{ pagination }\n\t\t);\n\t\tconst dtoList = newsList.map((news) => NewsMapper.mapToResponse(news));\n\t\tconst response = new NewsListResponse(dtoList, count);\n\t\treturn response;\n\t}\n\n\t/**\n\t * Retrieve a specific news entry by id.\n\t * A user may only read news of scopes he has the read permission.\n\t * The news entity has school and user names populated.\n\t */\n\t@Get(':newsId')\n\tasync findOne(@Param() urlParams: NewsUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst news = await this.newsUc.findOneByIdForUser(urlParams.newsId, currentUser.userId);\n\t\tconst dto = NewsMapper.mapToResponse(news);\n\t\treturn dto;\n\t}\n\n\t/**\n\t * Update properties of a news.\n\t */\n\t@Patch(':newsId')\n\tasync update(\n\t\t@Param() urlParams: NewsUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() params: UpdateNewsParams\n\t): Promise {\n\t\tconst news = await this.newsUc.update(\n\t\t\turlParams.newsId,\n\t\t\tcurrentUser.userId,\n\t\t\tNewsMapper.mapUpdateNewsToDomain(params)\n\t\t);\n\t\tconst dto = NewsMapper.mapToResponse(news);\n\t\treturn dto;\n\t}\n\n\t/**\n\t * Delete a news.\n\t */\n\t@Delete(':newsId')\n\tasync delete(@Param() urlParams: NewsUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst deletedId = await this.newsUc.delete(urlParams.newsId, currentUser.userId);\n\t\treturn deletedId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsCrudOperationLoggable.html":{"url":"classes/NewsCrudOperationLoggable.html","title":"class - NewsCrudOperationLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsCrudOperationLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(operation: CrudOperation, userId: EntityId, news: News)\n \n \n \n \n Defined in apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n operation\n \n \n CrudOperation\n \n \n \n No\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n news\n \n \n News\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/loggable/news-crud-operation.loggable.ts:13\n \n \n\n\n \n \n\n \n Returns : LogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, News } from '@shared/domain';\nimport { CrudOperation } from '@shared/types';\nimport { LogMessage, Loggable } from '@src/core/logger';\nimport { NewsMapper } from '../mapper/news.mapper';\n\nexport class NewsCrudOperationLoggable implements Loggable {\n\tconstructor(\n\t\tprivate readonly operation: CrudOperation,\n\t\tprivate readonly userId: EntityId,\n\t\tprivate readonly news: News\n\t) {}\n\n\tgetLogMessage(): LogMessage {\n\t\treturn {\n\t\t\tmessage: 'Performing a CRUD operation on a news',\n\t\t\tdata: {\n\t\t\t\toperation: this.operation,\n\t\t\t\tuserId: this.userId,\n\t\t\t\tnews: NewsMapper.mapToLogMessageData(this.news),\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsListResponse.html":{"url":"classes/NewsListResponse.html","title":"class - NewsListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/news.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: NewsResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:129\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n NewsResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : NewsResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:136\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { NewsTargetModel } from '@shared/domain';\nimport { SchoolInfoResponse } from './school-info.response';\nimport { TargetInfoResponse } from './target-info.response';\nimport { UserInfoResponse } from './user-info.response';\n\nconst NEWS_SOURCES = ['internal', 'rss'] as const;\nconst TARGET_MODEL_VALUES = Object.values(NewsTargetModel);\n\ntype SourceType = typeof NEWS_SOURCES[number];\nexport class NewsResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tcontent,\n\t\tdisplayAt,\n\t\tsource,\n\t\tsourceDescription,\n\t\ttargetModel,\n\t\ttargetId,\n\t\ttarget,\n\t\tschool,\n\t\tcreator,\n\t\tupdater,\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t\tpermissions,\n\t}: NewsResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.content = content;\n\t\tthis.displayAt = displayAt;\n\t\tthis.source = source;\n\t\tthis.sourceDescription = sourceDescription;\n\t\tthis.targetModel = targetModel;\n\t\tthis.targetId = targetId;\n\t\tthis.target = target;\n\t\tthis.school = school;\n\t\tthis.creator = creator;\n\t\tthis.updater = updater;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.permissions = permissions;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the News entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Title of the News entity',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Content of the News entity',\n\t})\n\tcontent: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The point in time from when the News entity schould be displayed',\n\t})\n\tdisplayAt: Date;\n\n\t@ApiPropertyOptional({\n\t\ttype: 'string',\n\t\tenum: NEWS_SOURCES,\n\t\tdescription: 'The type of source of the News entity',\n\t})\n\tsource?: SourceType;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'The source description of the News entity',\n\t})\n\tsourceDescription?: string;\n\n\t@ApiProperty({\n\t\tenum: TARGET_MODEL_VALUES,\n\t\tenumName: 'NewsTargetModel',\n\t\tdescription: 'Target model to which the News entity is related',\n\t})\n\ttargetModel: string;\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Specific target id to which the News entity is related',\n\t})\n\ttargetId: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The target object with id and name, could be the school, team, or course name',\n\t})\n\ttarget: TargetInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'The School ownership',\n\t})\n\tschool: SchoolInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'Reference to the User that created the News entity',\n\t})\n\tcreator: UserInfoResponse;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Reference to the User that updated the News entity',\n\t})\n\tupdater?: UserInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'The creation timestamp',\n\t})\n\tcreatedAt: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'The update timestamp',\n\t})\n\tupdatedAt: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'List of permissions the current user has for the News entity',\n\t})\n\tpermissions: string[];\n}\n\nexport class NewsListResponse extends PaginationResponse {\n\tconstructor(data: NewsResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [NewsResponse] })\n\tdata: NewsResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsMapper.html":{"url":"classes/NewsMapper.html","title":"class - NewsMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/mapper/news.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapCreateNewsToDomain\n \n \n Static\n mapNewsScopeToDomain\n \n \n Static\n mapToLogMessageData\n \n \n Static\n mapToResponse\n \n \n Static\n mapUpdateNewsToDomain\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapCreateNewsToDomain\n \n \n \n \n \n \n \n mapCreateNewsToDomain(params: CreateNewsParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n CreateNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ICreateNews\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapNewsScopeToDomain\n \n \n \n \n \n \n \n mapNewsScopeToDomain(query: FilterNewsParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : INewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToLogMessageData\n \n \n \n \n \n \n \n mapToLogMessageData(news: News)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n news\n \n News\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LogMessageData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(news: News)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n news\n \n News\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : NewsResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapUpdateNewsToDomain\n \n \n \n \n \n \n \n mapUpdateNewsToDomain(params: UpdateNewsParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/news.mapper.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n UpdateNewsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IUpdateNews\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { News, ICreateNews, INewsScope, IUpdateNews, NewsTargetModel } from '@shared/domain';\nimport { LogMessageData } from '@src/core/logger';\nimport { CreateNewsParams, FilterNewsParams, NewsResponse, UpdateNewsParams } from '../controller/dto';\nimport { SchoolInfoMapper } from './school-info.mapper';\nimport { TargetInfoMapper } from './target-info.mapper';\nimport { UserInfoMapper } from './user-info.mapper';\n\nexport class NewsMapper {\n\tstatic mapToResponse(news: News): NewsResponse {\n\t\tconst target = TargetInfoMapper.mapToResponse(news.target);\n\t\tconst school = SchoolInfoMapper.mapToResponse(news.school);\n\t\tconst creator = UserInfoMapper.mapToResponse(news.creator);\n\n\t\tconst dto = new NewsResponse({\n\t\t\tid: news.id,\n\t\t\ttitle: news.title,\n\t\t\tcontent: news.content,\n\t\t\tdisplayAt: news.displayAt,\n\t\t\tsource: news.source,\n\t\t\tsourceDescription: news.sourceDescription,\n\t\t\ttargetId: news.target.id,\n\t\t\ttargetModel: news.targetModel,\n\t\t\ttarget,\n\t\t\tschool,\n\t\t\tcreator,\n\t\t\tcreatedAt: news.createdAt,\n\t\t\tupdatedAt: news.updatedAt,\n\t\t\tpermissions: news.permissions,\n\t\t});\n\n\t\tif (news.updater) {\n\t\t\tdto.updater = UserInfoMapper.mapToResponse(news.updater);\n\t\t}\n\n\t\treturn dto;\n\t}\n\n\tstatic mapNewsScopeToDomain(query: FilterNewsParams): INewsScope {\n\t\tconst dto: INewsScope = {};\n\t\tif (query.targetModel) {\n\t\t\tdto.target = {\n\t\t\t\ttargetModel: query.targetModel as NewsTargetModel,\n\t\t\t\ttargetId: query.targetId,\n\t\t\t};\n\t\t}\n\t\tif ('unpublished' in query) {\n\t\t\tdto.unpublished = query.unpublished;\n\t\t}\n\t\treturn dto;\n\t}\n\n\tstatic mapCreateNewsToDomain(params: CreateNewsParams): ICreateNews {\n\t\tconst dto = {\n\t\t\ttitle: params.title,\n\t\t\tcontent: params.content,\n\t\t\tdisplayAt: params.displayAt,\n\t\t\ttarget: {\n\t\t\t\ttargetModel: params.targetModel as NewsTargetModel,\n\t\t\t\ttargetId: params.targetId,\n\t\t\t},\n\t\t};\n\t\treturn dto;\n\t}\n\n\tstatic mapUpdateNewsToDomain(params: UpdateNewsParams): IUpdateNews {\n\t\tconst dto = {\n\t\t\ttitle: params.title,\n\t\t\tcontent: params.content,\n\t\t\tdisplayAt: params.displayAt,\n\t\t};\n\t\treturn dto;\n\t}\n\n\tstatic mapToLogMessageData(news: News): LogMessageData {\n\t\tconst data = {\n\t\t\tentityType: 'News',\n\t\t\tid: news.id,\n\t\t\ttargetModel: news.targetModel,\n\t\t\ttargetId: news.target.id,\n\t\t};\n\n\t\treturn data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/NewsModule.html":{"url":"modules/NewsModule.html","title":"module - NewsModule","body":"\n \n\n\n\n\n Modules\n NewsModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_NewsModule\n\n\n\ncluster_NewsModule_imports\n\n\n\ncluster_NewsModule_providers\n\n\n\ncluster_NewsModule_exports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nNewsModule\n\nNewsModule\n\nNewsModule -->\n\nAuthorizationModule->NewsModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nNewsModule -->\n\nLoggerModule->NewsModule\n\n\n\n\n\nNewsUc \n\nNewsUc \n\nNewsUc -->\n\nNewsModule->NewsUc \n\n\n\n\n\nNewsRepo\n\nNewsRepo\n\nNewsModule -->\n\nNewsRepo->NewsModule\n\n\n\n\n\nNewsUc\n\nNewsUc\n\nNewsModule -->\n\nNewsUc->NewsModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/news/news.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n NewsRepo\n \n \n NewsUc\n \n \n \n \n Controllers\n \n \n NewsController\n \n \n TeamNewsController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n \n \n Exports\n \n \n NewsUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { NewsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { NewsController } from './controller/news.controller';\nimport { TeamNewsController } from './controller/team-news.controller';\nimport { NewsUc } from './uc/news.uc';\n\n@Module({\n\timports: [AuthorizationModule, LoggerModule],\n\tcontrollers: [NewsController, TeamNewsController],\n\tproviders: [NewsUc, NewsRepo],\n\texports: [NewsUc],\n})\nexport class NewsModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/NewsRepo.html":{"url":"injectables/NewsRepo.html","title":"injectable - NewsRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n NewsRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/news/news.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n propertiesToPopulate\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAllPublished\n \n \n Async\n findAllUnpublishedByUser\n \n \n Private\n Async\n findNewsAndCount\n \n \n Async\n findOneById\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAllPublished\n \n \n \n \n \n \n \n findAllPublished(targets: NewsTargetFilter[], options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:21\n \n \n\n\n \n \n Find news\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n targets\n \n NewsTargetFilter[]\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllUnpublishedByUser\n \n \n \n \n \n \n \n findAllUnpublishedByUser(targets: NewsTargetFilter[], creatorId: EntityId, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:36\n \n \n\n\n \n \n Find news\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n targets\n \n NewsTargetFilter[]\n \n\n \n No\n \n\n\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \ncreatorId\n\n\n \n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findNewsAndCount\n \n \n \n \n \n \n \n findNewsAndCount(query: FilterQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:58\n \n \n\n\n \n \n resolves a news documents list with some elements (school, target, and updator/creator) populated already\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOneById\n \n \n \n \n \n \n \n findOneById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:51\n \n \n\n\n \n \n resolves a news document with some elements (school, target, and updator/creator) populated already\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n propertiesToPopulate\n \n \n \n \n \n \n Type : []\n\n \n \n \n \n Default value : ['school', 'target', 'creator', 'updater']\n \n \n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:10\n \n \n\n\n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/news/news.repo.ts:12\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { Counted, CourseNews, EntityId, IFindOptions, News, SchoolNews, TeamNews } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { NewsScope } from './news-scope';\nimport { NewsTargetFilter } from './news-target-filter';\n\n@Injectable()\nexport class NewsRepo extends BaseRepo {\n\tpropertiesToPopulate = ['school', 'target', 'creator', 'updater'];\n\n\tget entityName() {\n\t\treturn News;\n\t}\n\n\t/**\n\t * Find news\n\t * @param targets\n\t * @param options\n\t */\n\tasync findAllPublished(targets: NewsTargetFilter[], options?: IFindOptions): Promise> {\n\t\tconst scope = new NewsScope();\n\t\tscope.byTargets(targets);\n\t\tscope.byPublished();\n\n\t\tconst countedNewsList = await this.findNewsAndCount(scope.query, options);\n\t\treturn countedNewsList;\n\t}\n\n\t/**\n\t * Find news\n\t * @param targets\n\t * @param creatorId - creatorId\n\t * @param options\n\t */\n\tasync findAllUnpublishedByUser(\n\t\ttargets: NewsTargetFilter[],\n\t\tcreatorId: EntityId,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new NewsScope();\n\t\tscope.byTargets(targets);\n\t\tscope.byUnpublished();\n\t\tscope.byCreator(creatorId);\n\n\t\tconst countedNewsList = await this.findNewsAndCount(scope.query, options);\n\t\treturn countedNewsList;\n\t}\n\n\t/** resolves a news document with some elements (school, target, and updator/creator) populated already */\n\tasync findOneById(id: EntityId): Promise {\n\t\tconst newsEntity = await this._em.findOneOrFail(News, id);\n\t\tawait this._em.populate(newsEntity, this.propertiesToPopulate as never[]);\n\t\treturn newsEntity;\n\t}\n\n\t/** resolves a news documents list with some elements (school, target, and updator/creator) populated already */\n\tprivate async findNewsAndCount(query: FilterQuery, options?: IFindOptions): Promise> {\n\t\tconst { pagination, order } = options || {};\n\t\tconst [newsEntities, count] = await this._em.findAndCount(News, query, {\n\t\t\t...pagination,\n\t\t\torderBy: order as QueryOrderMap,\n\t\t});\n\t\tawait this._em.populate(newsEntities, this.propertiesToPopulate as never[]);\n\t\t// populate target for all inheritances of news which not works when the list contains different types\n\t\tconst discriminatorColumn = 'target';\n\t\tconst schoolNews = newsEntities.filter((news) => news instanceof SchoolNews);\n\t\tawait this._em.populate(schoolNews, [discriminatorColumn]);\n\t\tconst teamNews = newsEntities.filter((news) => news instanceof TeamNews);\n\t\tawait this._em.populate(teamNews, [discriminatorColumn]);\n\t\tconst courseNews = newsEntities.filter((news) => news instanceof CourseNews);\n\t\tawait this._em.populate(courseNews, [discriminatorColumn]);\n\t\treturn [newsEntities, count];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsResponse.html":{"url":"classes/NewsResponse.html","title":"class - NewsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/news.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n createdAt\n \n \n \n creator\n \n \n \n displayAt\n \n \n \n id\n \n \n \n permissions\n \n \n \n school\n \n \n \n Optional\n source\n \n \n \n Optional\n sourceDescription\n \n \n \n target\n \n \n \n targetId\n \n \n \n targetModel\n \n \n \n title\n \n \n \n updatedAt\n \n \n \n Optional\n updater\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: NewsResponse)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n NewsResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Content of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:61\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The creation timestamp'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:116\n \n \n\n\n \n \n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n Type : UserInfoResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Reference to the User that created the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:106\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The point in time from when the News entity schould be displayed'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the News entity', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'List of permissions the current user has for the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:126\n \n \n\n\n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolInfoResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The School ownership'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:101\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n source\n \n \n \n \n \n \n Type : SourceType\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({type: 'string', enum: NEWS_SOURCES, description: 'The type of source of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:73\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceDescription\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The source description of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:78\n \n \n\n\n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : TargetInfoResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The target object with id and name, could be the school, team, or course name'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:96\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}', description: 'Specific target id to which the News entity is related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:91\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: TARGET_MODEL_VALUES, enumName: 'NewsTargetModel', description: 'Target model to which the News entity is related'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:85\n \n \n\n\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Title of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The update timestamp'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:121\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n updater\n \n \n \n \n \n \n Type : UserInfoResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Reference to the User that updated the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.response.ts:111\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { NewsTargetModel } from '@shared/domain';\nimport { SchoolInfoResponse } from './school-info.response';\nimport { TargetInfoResponse } from './target-info.response';\nimport { UserInfoResponse } from './user-info.response';\n\nconst NEWS_SOURCES = ['internal', 'rss'] as const;\nconst TARGET_MODEL_VALUES = Object.values(NewsTargetModel);\n\ntype SourceType = typeof NEWS_SOURCES[number];\nexport class NewsResponse {\n\tconstructor({\n\t\tid,\n\t\ttitle,\n\t\tcontent,\n\t\tdisplayAt,\n\t\tsource,\n\t\tsourceDescription,\n\t\ttargetModel,\n\t\ttargetId,\n\t\ttarget,\n\t\tschool,\n\t\tcreator,\n\t\tupdater,\n\t\tcreatedAt,\n\t\tupdatedAt,\n\t\tpermissions,\n\t}: NewsResponse) {\n\t\tthis.id = id;\n\t\tthis.title = title;\n\t\tthis.content = content;\n\t\tthis.displayAt = displayAt;\n\t\tthis.source = source;\n\t\tthis.sourceDescription = sourceDescription;\n\t\tthis.targetModel = targetModel;\n\t\tthis.targetId = targetId;\n\t\tthis.target = target;\n\t\tthis.school = school;\n\t\tthis.creator = creator;\n\t\tthis.updater = updater;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.permissions = permissions;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the News entity',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Title of the News entity',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Content of the News entity',\n\t})\n\tcontent: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The point in time from when the News entity schould be displayed',\n\t})\n\tdisplayAt: Date;\n\n\t@ApiPropertyOptional({\n\t\ttype: 'string',\n\t\tenum: NEWS_SOURCES,\n\t\tdescription: 'The type of source of the News entity',\n\t})\n\tsource?: SourceType;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'The source description of the News entity',\n\t})\n\tsourceDescription?: string;\n\n\t@ApiProperty({\n\t\tenum: TARGET_MODEL_VALUES,\n\t\tenumName: 'NewsTargetModel',\n\t\tdescription: 'Target model to which the News entity is related',\n\t})\n\ttargetModel: string;\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Specific target id to which the News entity is related',\n\t})\n\ttargetId: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The target object with id and name, could be the school, team, or course name',\n\t})\n\ttarget: TargetInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'The School ownership',\n\t})\n\tschool: SchoolInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'Reference to the User that created the News entity',\n\t})\n\tcreator: UserInfoResponse;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Reference to the User that updated the News entity',\n\t})\n\tupdater?: UserInfoResponse;\n\n\t@ApiProperty({\n\t\tdescription: 'The creation timestamp',\n\t})\n\tcreatedAt: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'The update timestamp',\n\t})\n\tupdatedAt: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'List of permissions the current user has for the News entity',\n\t})\n\tpermissions: string[];\n}\n\nexport class NewsListResponse extends PaginationResponse {\n\tconstructor(data: NewsResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [NewsResponse] })\n\tdata: NewsResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsScope.html":{"url":"classes/NewsScope.html","title":"class - NewsScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/news/news-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n byCreator\n \n \n byPublished\n \n \n byTargets\n \n \n byUnpublished\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n byCreator\n \n \n \n \n \n \nbyCreator(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news-scope.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : NewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byPublished\n \n \n \n \n \n \nbyPublished()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news-scope.ts:25\n \n \n\n\n \n \n\n \n Returns : NewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n byTargets\n \n \n \n \n \n \nbyTargets(targets: NewsTargetFilter[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news-scope.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n targets\n \n NewsTargetFilter[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : NewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byUnpublished\n \n \n \n \n \n \nbyUnpublished()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/news/news-scope.ts:31\n \n \n\n\n \n \n\n \n Returns : NewsScope\n\n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { EntityId, News } from '@shared/domain';\nimport { EmptyResultQuery } from '../query';\nimport { Scope } from '../scope';\nimport { NewsTargetFilter } from './news-target-filter';\n\nexport class NewsScope extends Scope {\n\tbyTargets(targets: NewsTargetFilter[]): NewsScope {\n\t\tconst queries: FilterQuery[] = targets.map((target) => {\n\t\t\treturn {\n\t\t\t\t$and: [{ targetModel: target.targetModel }, { 'target:in': target.targetIds }],\n\t\t\t};\n\t\t});\n\t\tif (queries.length === 0) {\n\t\t\t// mission impossile query to ensure empty query result\n\t\t\tthis.addQuery(EmptyResultQuery);\n\t\t} else if (queries.length === 1) {\n\t\t\tthis.addQuery(queries[0]);\n\t\t} else {\n\t\t\tthis.addQuery({ $or: queries });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyPublished(): NewsScope {\n\t\tconst now = new Date();\n\t\tthis.addQuery({ displayAt: { $lte: now } });\n\t\treturn this;\n\t}\n\n\tbyUnpublished(): NewsScope {\n\t\tconst now = new Date();\n\t\tthis.addQuery({ displayAt: { $gt: now } });\n\t\treturn this;\n\t}\n\n\tbyCreator(creatorId: EntityId): NewsScope {\n\t\tif (creatorId !== undefined) {\n\t\t\tthis.addQuery({ creator: creatorId });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/NewsTargetFilter.html":{"url":"interfaces/NewsTargetFilter.html","title":"interface - NewsTargetFilter","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n NewsTargetFilter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/news/news-target-filter.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n targetIds\n \n \n \n \n targetModel\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n targetIds\n \n \n \n \n \n \n \n \n targetIds: EntityId[]\n\n \n \n\n\n \n \n Type : EntityId[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n \n \n targetModel: NewsTargetModel\n\n \n \n\n\n \n \n Type : NewsTargetModel\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId, NewsTargetModel } from '@shared/domain';\n\nexport interface NewsTargetFilter {\n\ttargetModel: NewsTargetModel;\n\ttargetIds: EntityId[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/NewsUc.html":{"url":"injectables/NewsUc.html","title":"injectable - NewsUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n NewsUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/uc/news.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n create\n \n \n Public\n Async\n delete\n \n \n Public\n Async\n findAllForUser\n \n \n Public\n Async\n findOneByIdForUser\n \n \n Private\n Async\n getNewsPermissions\n \n \n Private\n Async\n getPermittedTargets\n \n \n Private\n Static\n getRequiredPermissions\n \n \n Private\n Async\n getTargetFilters\n \n \n Public\n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(newsRepo: NewsRepo, authorizationService: FeathersAuthorizationService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n newsRepo\n \n \n NewsRepo\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n FeathersAuthorizationService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n create\n \n \n \n \n \n \n \n create(userId: EntityId, schoolId: EntityId, params: ICreateNews)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n params\n \n ICreateNews\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n delete\n \n \n \n \n \n \n \n delete(id: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:148\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findAllForUser\n \n \n \n \n \n \n \n findAllForUser(userId: EntityId, scope?: INewsScope, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:67\n \n \n\n\n \n \n Provides news for a user, by default odered by displayAt to show latest news first.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n INewsScope\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findOneByIdForUser\n \n \n \n \n \n \n \n findOneByIdForUser(id: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getNewsPermissions\n \n \n \n \n \n \n \n getNewsPermissions(userId: EntityId, news: News)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:197\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n news\n \n News\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getPermittedTargets\n \n \n \n \n \n \n \n getPermittedTargets(userId: EntityId, scope: INewsScope | undefined, permissions: NewsPermission[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:159\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n INewsScope | undefined\n \n\n \n No\n \n\n\n \n \n permissions\n \n NewsPermission[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n getRequiredPermissions\n \n \n \n \n \n \n \n getRequiredPermissions(unpublished: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:207\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n unpublished\n \n boolean\n \n\n \n No\n \n\n\n \n news with displayAt set to future date are not published for users with view permission\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getTargetFilters\n \n \n \n \n \n \n \n getTargetFilters(userId: EntityId, targetModels: NewsTargetModel[], permissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:179\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n targetModels\n \n NewsTargetModel[]\n \n\n \n No\n \n\n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n update\n \n \n \n \n \n \n \n update(id: EntityId, userId: EntityId, params: IUpdateNews)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/uc/news.uc.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n params\n \n IUpdateNews\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tCounted,\n\tEntityId,\n\tICreateNews,\n\tIFindOptions,\n\tINewsScope,\n\tIUpdateNews,\n\tNews,\n\tNewsTargetModel,\n\tPermission,\n\tSortOrder,\n} from '@shared/domain';\nimport { NewsRepo, NewsTargetFilter } from '@shared/repo';\nimport { CrudOperation } from '@shared/types';\nimport { Logger } from '@src/core/logger';\nimport { FeathersAuthorizationService } from '@src/modules/authorization';\nimport { NewsCrudOperationLoggable } from '../loggable/news-crud-operation.loggable';\n\ntype NewsPermission = Permission.NEWS_VIEW | Permission.NEWS_EDIT;\n\n@Injectable()\nexport class NewsUc {\n\tconstructor(\n\t\tprivate newsRepo: NewsRepo,\n\t\tprivate authorizationService: FeathersAuthorizationService,\n\t\tprivate logger: Logger\n\t) {\n\t\tthis.logger.setContext(NewsUc.name);\n\t}\n\n\t/**\n\t *\n\t * @param userId\n\t * @param schoolId\n\t * @param params\n\t * @returns\n\t */\n\tpublic async create(userId: EntityId, schoolId: EntityId, params: ICreateNews): Promise {\n\t\tconst { targetModel, targetId } = params.target;\n\t\tawait this.authorizationService.checkEntityPermissions(userId, targetModel, targetId, [Permission.NEWS_CREATE]);\n\n\t\tconst { target, displayAt: paramDisplayAt, ...props } = params;\n\t\t// set news as published by default\n\t\tconst displayAt = paramDisplayAt || new Date();\n\t\tconst news = News.createInstance(targetModel, {\n\t\t\t...props,\n\t\t\tdisplayAt,\n\t\t\tschool: schoolId,\n\t\t\tcreator: userId,\n\t\t\ttarget: targetId,\n\t\t});\n\t\tawait this.newsRepo.save(news);\n\n\t\tthis.logger.info(new NewsCrudOperationLoggable(CrudOperation.CREATE, userId, news));\n\n\t\treturn news;\n\t}\n\n\t/**\n\t * Provides news for a user, by default odered by displayAt to show latest news first.\n\t * @param userId\n\t * @param scope\n\t * @param pagination\n\t * @returns\n\t */\n\tpublic async findAllForUser(\n\t\tuserId: EntityId,\n\t\tscope?: INewsScope,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst unpublished = !!scope?.unpublished; // default is only published news\n\t\tconst permissions: [NewsPermission] = NewsUc.getRequiredPermissions(unpublished);\n\n\t\tconst targets = await this.getPermittedTargets(userId, scope, permissions);\n\n\t\tif (options == null) options = {};\n\t\t// by default show latest news first\n\t\tif (options.order == null) options.order = { displayAt: SortOrder.desc };\n\n\t\tconst [newsList, newsCount] = unpublished\n\t\t\t? await this.newsRepo.findAllUnpublishedByUser(targets, userId, options)\n\t\t\t: await this.newsRepo.findAllPublished(targets, options);\n\n\t\tawait Promise.all(\n\t\t\tnewsList.map(async (news: News) => {\n\t\t\t\tnews.permissions = await this.getNewsPermissions(userId, news);\n\t\t\t})\n\t\t);\n\n\t\treturn [newsList, newsCount];\n\t}\n\n\t/**\n\t *\n\t * @param id\n\t * @param userId\n\t * @returns\n\t */\n\tpublic async findOneByIdForUser(id: EntityId, userId: EntityId): Promise {\n\t\tconst news = await this.newsRepo.findOneById(id);\n\t\tconst isPublished = news.displayAt > new Date();\n\t\tconst requiredPermissions = NewsUc.getRequiredPermissions(isPublished);\n\t\tawait this.authorizationService.checkEntityPermissions(\n\t\t\tuserId,\n\t\t\tnews.targetModel,\n\t\t\tnews.target.id,\n\t\t\trequiredPermissions\n\t\t);\n\t\tnews.permissions = await this.getNewsPermissions(userId, news);\n\n\t\treturn news;\n\t}\n\n\t/**\n\t *\n\t * @param id\n\t * @param userId\n\t * @param params\n\t * @returns\n\t */\n\tpublic async update(id: EntityId, userId: EntityId, params: IUpdateNews): Promise {\n\t\tconst news = await this.newsRepo.findOneById(id);\n\t\tawait this.authorizationService.checkEntityPermissions(userId, news.targetModel, news.target.id, [\n\t\t\tPermission.NEWS_EDIT,\n\t\t]);\n\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const [key, value] of Object.entries(params)) {\n\t\t\tif (value) {\n\t\t\t\tnews[key] = value;\n\t\t\t}\n\t\t}\n\n\t\tawait this.newsRepo.save(news);\n\n\t\tthis.logger.info(new NewsCrudOperationLoggable(CrudOperation.UPDATE, userId, news));\n\n\t\treturn news;\n\t}\n\n\t/**\n\t *\n\t * @param id\n\t * @param userId\n\t * @returns\n\t */\n\tpublic async delete(id: EntityId, userId: EntityId): Promise {\n\t\tconst news = await this.newsRepo.findOneById(id);\n\t\tawait this.authorizationService.checkEntityPermissions(userId, news.targetModel, news.target.id, ['NEWS_EDIT']);\n\n\t\tawait this.newsRepo.delete(news);\n\n\t\tthis.logger.info(new NewsCrudOperationLoggable(CrudOperation.DELETE, userId, news));\n\n\t\treturn id;\n\t}\n\n\tprivate async getPermittedTargets(userId: EntityId, scope: INewsScope | undefined, permissions: NewsPermission[]) {\n\t\tlet targets: NewsTargetFilter[];\n\n\t\tif (scope?.target == null) {\n\t\t\t// for all target models\n\t\t\ttargets = await this.getTargetFilters(userId, Object.values(NewsTargetModel), permissions);\n\t\t} else {\n\t\t\tconst { targetModel, targetId } = scope.target;\n\t\t\tif (targetModel && targetId) {\n\t\t\t\t// for specific news target\n\t\t\t\tawait this.authorizationService.checkEntityPermissions(userId, targetModel, targetId, permissions);\n\t\t\t\ttargets = [{ targetModel, targetIds: [targetId] }];\n\t\t\t} else {\n\t\t\t\t// for single target model\n\t\t\t\ttargets = await this.getTargetFilters(userId, [targetModel], permissions);\n\t\t\t}\n\t\t}\n\t\treturn targets;\n\t}\n\n\tprivate async getTargetFilters(\n\t\tuserId: EntityId,\n\t\ttargetModels: NewsTargetModel[],\n\t\tpermissions: string[]\n\t): Promise {\n\t\tconst targets = await Promise.all(\n\t\t\ttargetModels.map(async (targetModel) => {\n\t\t\t\treturn {\n\t\t\t\t\ttargetModel,\n\t\t\t\t\ttargetIds: await this.authorizationService.getPermittedEntities(userId, targetModel, permissions),\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\t\tconst nonEmptyTargets = targets.filter((target) => target.targetIds.length > 0);\n\n\t\treturn nonEmptyTargets;\n\t}\n\n\tprivate async getNewsPermissions(userId: EntityId, news: News): Promise {\n\t\tconst permissions = await this.authorizationService.getEntityPermissions(userId, news.targetModel, news.target.id);\n\t\treturn permissions.filter((permission) => permission.includes('NEWS'));\n\t}\n\n\t/**\n\t *\n\t * @param unpublished news with displayAt set to future date are not published for users with view permission\n\t * @returns\n\t */\n\tprivate static getRequiredPermissions(unpublished: boolean): [NewsPermission] {\n\t\treturn unpublished ? [Permission.NEWS_EDIT] : [Permission.NEWS_VIEW];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NewsUrlParams.html":{"url":"classes/NewsUrlParams.html","title":"class - NewsUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NewsUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/news.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n newsId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n newsId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the news.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/news.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class NewsUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the news.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tnewsId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/NexboardService.html":{"url":"injectables/NexboardService.html","title":"injectable - NexboardService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n NexboardService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/lesson/service/nexboard.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createNexboard\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(feathersServiceProvider: FeathersServiceProvider, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/lesson/service/nexboard.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n feathersServiceProvider\n \n \n FeathersServiceProvider\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createNexboard\n \n \n \n \n \n \n \n createNexboard(userId: EntityId, title: string, description: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/lesson/service/nexboard.service.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n title\n \n string\n \n\n \n No\n \n\n\n \n \n description\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { FeathersServiceProvider } from '@shared/infra/feathers/feathers-service.provider';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain/types';\n\nexport type NexboardResponse = { id: string; publicLink: string };\n\n@Injectable()\nexport class NexboardService {\n\tconstructor(private readonly feathersServiceProvider: FeathersServiceProvider, private logger: LegacyLogger) {}\n\n\tasync createNexboard(\n\t\tuserId: EntityId,\n\t\ttitle: string,\n\t\tdescription: string\n\t): Promise {\n\t\tconst data = {\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t};\n\t\ttry {\n\t\t\tconst service = this.feathersServiceProvider.getService('/nexboard/boards');\n\t\t\tconst nexBoard = (await service.create(data, { account: { userId } })) as NexboardResponse;\n\t\t\treturn { board: nexBoard.id, url: nexBoard.publicLink };\n\t\t} catch (error) {\n\t\t\tthis.logger.error('Could not create new Nexboard', error);\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/NextcloudGroups.html":{"url":"interfaces/NextcloudGroups.html","title":"interface - NextcloudGroups","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n NextcloudGroups\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n groups\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n groups\n \n \n \n \n \n \n \n \n groups: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/NextcloudStrategy.html":{"url":"injectables/NextcloudStrategy.html","title":"injectable - NextcloudStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n NextcloudStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts\n \n\n\n \n Description\n \n \n Nextcloud Strategy Implementation for Collaborative Storage\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createTeam\n \n \n Async\n deleteTeam\n \n \n Private\n Async\n findLegacyLtiTool\n \n \n Private\n Async\n findNextcloudTool\n \n \n Protected\n Static\n generateGroupFolderName\n \n \n Protected\n Static\n generateGroupId\n \n \n Async\n updateTeam\n \n \n Async\n updateTeamPermissionsForRole\n \n \n Protected\n Async\n updateTeamUsersInGroup\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, client: NextcloudClient, pseudonymService: PseudonymService, ltiToolRepo: LtiToolRepo, externalToolService: ExternalToolService, userService: UserService)\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n client\n \n \n NextcloudClient\n \n \n \n No\n \n \n \n \n pseudonymService\n \n \n PseudonymService\n \n \n \n No\n \n \n \n \n ltiToolRepo\n \n \n LtiToolRepo\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createTeam\n \n \n \n \n \n \n \n createTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:75\n \n \n\n\n \n \n Creates a team in nextcloud.\nThis includes the creation of the related group, its groupfolder and the adding of the teamUsers (the creator).\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n schulcloud team\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteTeam\n \n \n \n \n \n \n \n deleteTeam(teamId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:59\n \n \n\n\n \n \n Deletes a whole team in nextcloud.\nThis includes the related group in nextcloud and the groupfolder of the group.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n id of the schulcloud team\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findLegacyLtiTool\n \n \n \n \n \n \n \n findLegacyLtiTool()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:172\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findNextcloudTool\n \n \n \n \n \n \n \n findNextcloudTool()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:158\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n Static\n generateGroupFolderName\n \n \n \n \n \n \n \n generateGroupFolderName(teamId: string, teamName: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:192\n \n \n\n\n \n \n Generates the groupfolder name by concatenating the teamId and teamName.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n teamId\n \n string\n \n\n \n No\n \n\n\n \n id of the team\n\n \n \n \n teamName\n \n string\n \n\n \n No\n \n\n\n \n name of the team\n\n \n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Static\n generateGroupId\n \n \n \n \n \n \n \n generateGroupId(dto: TeamRolePermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:202\n \n \n\n\n \n \n Generates groupId of the nextcloud group by concatenating some TeamRolePermissionsDto properties.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n TeamRolePermissionsDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTeam\n \n \n \n \n \n \n \n updateTeam(team: TeamDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:98\n \n \n\n\n \n \n Updates a team in nextcloud.\nThis includes the teamuser and the displayname of the team.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n team\n \n TeamDto\n \n\n \n No\n \n\n\n \n schulcloud team\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateTeamPermissionsForRole\n \n \n \n \n \n \n \n updateTeamPermissionsForRole(dto: TeamRolePermissionsDto)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:38\n \n \n\n\n \n \n At the moment unused.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n TeamRolePermissionsDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n Async\n updateTeamUsersInGroup\n \n \n \n \n \n \n \n updateTeamUsersInGroup(groupId: string, teamUsers: TeamUserDto[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.strategy.ts:129\n \n \n\n\n \n \n Updating nextcloud group to be in sync with schulcloud team members.\nTo do this, we have to get the link between the school cloud user ID and the Nextcloud user ID from the\npseudonym table and distinguish between added and deleted users.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n groupId\n \n string\n \n\n \n No\n \n\n\n \n nextclouds groupId\n\n \n \n \n teamUsers\n \n TeamUserDto[]\n \n\n \n No\n \n\n\n \n all users of a TeamDto\n\n \n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport { Pseudonym, UserDO } from '@shared/domain/';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { LtiToolRepo } from '@shared/repo/ltitool/';\nimport { LegacyLogger } from '@src/core/logger';\nimport { TeamDto, TeamUserDto } from '@src/modules/collaborative-storage';\nimport { PseudonymService } from '@src/modules/pseudonym';\nimport { UserService } from '@src/modules/user';\nimport { ExternalToolService } from '@src/modules/tool/external-tool/service';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { TeamRolePermissionsDto } from '../../dto/team-role-permissions.dto';\nimport { ICollaborativeStorageStrategy } from '../base.interface.strategy';\nimport { NextcloudClient } from './nextcloud.client';\n\n/**\n * Nextcloud Strategy Implementation for Collaborative Storage\n *\n * @implements {ICollaborativeStorageStrategy}\n */\n@Injectable()\nexport class NextcloudStrategy implements ICollaborativeStorageStrategy {\n\tconstructor(\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly client: NextcloudClient,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly ltiToolRepo: LtiToolRepo,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly userService: UserService\n\t) {\n\t\tthis.logger.setContext(NextcloudStrategy.name);\n\t}\n\n\t/**\n\t * At the moment unused.\n\t *\n\t * @param dto\n\t */\n\tasync updateTeamPermissionsForRole(dto: TeamRolePermissionsDto): Promise {\n\t\tconst groupId: string = await this.client.findGroupId(NextcloudStrategy.generateGroupId(dto));\n\t\tlet folderId: number;\n\n\t\ttry {\n\t\t\tfolderId = await this.client.findGroupFolderIdForGroupId(groupId);\n\t\t\tawait this.client.setGroupPermissions(groupId, folderId, dto.permissions);\n\t\t} catch (e) {\n\t\t\tthis.logger.log(\n\t\t\t\t`Permissions in nextcloud were not set because of missing groupId or folderId for teamId ${dto.teamId}`\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Deletes a whole team in nextcloud.\n\t *\n\t * This includes the related group in nextcloud and the groupfolder of the group.\n\t *\n\t * @param teamId id of the schulcloud team\n\t */\n\tasync deleteTeam(teamId: string): Promise {\n\t\tconst groupId: string = this.client.getNameWithPrefix(teamId);\n\t\tif (groupId) {\n\t\t\tconst folderId: number = await this.client.findGroupFolderIdForGroupId(groupId);\n\t\t\tawait this.client.deleteGroup(groupId);\n\t\t\tawait this.client.deleteGroupFolder(folderId);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a team in nextcloud.\n\t *\n\t * This includes the creation of the related group, its groupfolder and the adding of the {@link TeamUserDto teamUsers} (the creator).\n\t *\n\t * @param team schulcloud team\n\t */\n\tasync createTeam(team: TeamDto): Promise {\n\t\tconst groupId: string = this.client.getNameWithPrefix(team.id);\n\n\t\tawait this.client.createGroup(groupId, team.name);\n\n\t\tawait this.updateTeamUsersInGroup(groupId, team.teamUsers);\n\n\t\tconst folderName: string = NextcloudStrategy.generateGroupFolderName(team.id, team.name);\n\t\t// TODO N21-124: move the creation of group folders from the schulcloud-nextcloud-app to here, when all existing teams are migrated to the nextcloud\n\t\t// Due to the schulcloud-nextcloud-app creating the group folder, when the group is created, it only needs to be renamed here\n\t\tconst folderId: number = await this.client.findGroupFolderIdForGroupId(groupId);\n\t\tawait this.client.changeGroupFolderName(folderId, folderName);\n\t\t// const folderId: number = await this.client.createGroupFolder(folderName);\n\t\t// await this.client.addAccessToGroupFolder(folderId, groupId);\n\t}\n\n\t/**\n\t * Updates a team in nextcloud.\n\t *\n\t * This includes the {@link TeamUserDto teamuser} and the displayname of the team.\n\t *\n\t * @param team schulcloud team\n\t */\n\tasync updateTeam(team: TeamDto): Promise {\n\t\tif (!team.id) {\n\t\t\tthrow new UnprocessableEntityException('Cannot update team without id');\n\t\t}\n\n\t\tconst groupId: string = this.client.getNameWithPrefix(team.id);\n\n\t\tif (team.teamUsers && team.teamUsers.length > 0) {\n\t\t\tawait this.updateTeamUsersInGroup(groupId, team.teamUsers);\n\t\t}\n\n\t\tif (team.name) {\n\t\t\tconst folderName: string = NextcloudStrategy.generateGroupFolderName(team.id, team.name);\n\n\t\t\tawait this.client.renameGroup(groupId, team.name);\n\n\t\t\tconst folderId: number = await this.client.findGroupFolderIdForGroupId(groupId);\n\t\t\tawait this.client.changeGroupFolderName(folderId, folderName);\n\t\t}\n\t}\n\n\t/**\n\t * Updating nextcloud group to be in sync with schulcloud team members.\n\t *\n\t * To do this, we have to get the link between the school cloud user ID and the Nextcloud user ID from the\n\t * pseudonym table and distinguish between added and deleted users.\n\t *\n\t * @param groupId nextclouds groupId\n\t * @param teamUsers all users of a {@link TeamDto}\n\t * @protected\n\t */\n\tprotected async updateTeamUsersInGroup(groupId: string, teamUsers: TeamUserDto[]): Promise {\n\t\tconst groupUserIds: string[] = await this.client.getGroupUsers(groupId);\n\t\tconst nextcloudTool: ExternalTool | LtiToolDO = await this.findNextcloudTool();\n\n\t\tlet convertedTeamUserIds: string[] = await Promise.all[]>(\n\t\t\t// The Oauth authentication generates a pseudonym which will be used from external systems as identifier\n\t\t\tteamUsers.map(async (teamUser: TeamUserDto): Promise => {\n\t\t\t\tconst user: UserDO = await this.userService.findById(teamUser.userId);\n\t\t\t\tconst userId = await this.pseudonymService\n\t\t\t\t\t.findByUserAndTool(user, nextcloudTool)\n\t\t\t\t\t.then((pseudonymDO: Pseudonym) => this.client.getNameWithPrefix(pseudonymDO.pseudonym))\n\t\t\t\t\t.catch(() => '');\n\n\t\t\t\treturn userId;\n\t\t\t})\n\t\t);\n\t\tconvertedTeamUserIds = convertedTeamUserIds.filter(Boolean);\n\n\t\tconst removeUserIds: string[] = groupUserIds.filter((userId) => !convertedTeamUserIds.includes(userId));\n\t\tthis.logger.debug(`Removing nextcloud userIds [${removeUserIds.toString()}]`);\n\t\tconst addUserIds: string[] = convertedTeamUserIds.filter((userId) => !groupUserIds.includes(userId));\n\t\tthis.logger.debug(`Adding nextcloud userIds [${addUserIds.toString()}]`);\n\n\t\treturn Promise.all([\n\t\t\tPromise.all(removeUserIds.map((nextcloudUserId) => this.client.removeUserFromGroup(nextcloudUserId, groupId))),\n\t\t\tPromise.all(addUserIds.map((nextcloudUserId) => this.client.addUserToGroup(nextcloudUserId, groupId))),\n\t\t]);\n\t}\n\n\tprivate async findNextcloudTool(): Promise {\n\t\tconst tool: ExternalTool | null = await this.externalToolService.findExternalToolByName(\n\t\t\tthis.client.oidcInternalName\n\t\t);\n\n\t\tif (!tool) {\n\t\t\tconst ltiToolPromise: Promise = this.findLegacyLtiTool();\n\n\t\t\treturn ltiToolPromise;\n\t\t}\n\n\t\treturn tool;\n\t}\n\n\tprivate async findLegacyLtiTool(): Promise {\n\t\tconst foundTools: LtiToolDO[] = await this.ltiToolRepo.findByName(this.client.oidcInternalName);\n\n\t\tif (foundTools.length > 1) {\n\t\t\tthis.logger.warn(\n\t\t\t\t`Please check the configured lti tools. There should one be one tool with the name ${this.client.oidcInternalName}. \n\t\t\t\tOtherwise teams can not be created or updated on demand.`\n\t\t\t);\n\t\t}\n\n\t\treturn foundTools[0];\n\t}\n\n\t/**\n\t * Generates the groupfolder name by concatenating the teamId and teamName.\n\t *\n\t * @param teamId id of the team\n\t * @param teamName name of the team\n\t * @protected\n\t */\n\tprotected static generateGroupFolderName(teamId: string, teamName: string): string {\n\t\treturn `${teamName} (${teamId})`;\n\t}\n\n\t/**\n\t * Generates groupId of the nextcloud group by concatenating some {@link TeamRolePermissionsDto} properties.\n\t *\n\t * @param dto\n\t * @protected\n\t */\n\tprotected static generateGroupId(dto: TeamRolePermissionsDto): string {\n\t\treturn `${dto.teamName}-${dto.teamId}-${dto.roleName}`;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/NotFoundLoggableException.html":{"url":"classes/NotFoundLoggableException.html","title":"class - NotFoundLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n NotFoundLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/loggable-exception/not-found.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n NotFoundException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resourceName: string, identifierName: string, resourceId: EntityId)\n \n \n \n \n Defined in apps/server/src/shared/common/loggable-exception/not-found.loggable-exception.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resourceName\n \n \n string\n \n \n \n No\n \n \n \n \n identifierName\n \n \n string\n \n \n \n No\n \n \n \n \n resourceId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/loggable-exception/not-found.loggable-exception.ts:15\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Loggable } from '@src/core/logger/interfaces';\nimport { ErrorLogMessage } from '@src/core/logger/types';\n\nexport class NotFoundLoggableException extends NotFoundException implements Loggable {\n\tconstructor(\n\t\tprivate readonly resourceName: string,\n\t\tprivate readonly identifierName: string,\n\t\tprivate readonly resourceId: EntityId\n\t) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): ErrorLogMessage {\n\t\tconst message: ErrorLogMessage = {\n\t\t\ttype: 'NOT_FOUND',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tresourceName: this.resourceName,\n\t\t\t\t[this.identifierName]: this.resourceId,\n\t\t\t},\n\t\t};\n\n\t\treturn message;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OAuth2ToolLaunchStrategy.html":{"url":"injectables/OAuth2ToolLaunchStrategy.html","title":"injectable - OAuth2ToolLaunchStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OAuth2ToolLaunchStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/strategy/oauth2-tool-launch.strategy.ts\n \n\n\n\n \n Extends\n \n \n AbstractLaunchStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n \n buildToolLaunchDataFromConcreteConfig\n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n Public\n \n determineLaunchRequestMethod\n \n \n Private\n Async\n addParameters\n \n \n Private\n addProperty\n \n \n Private\n applyPropertiesToPathParams\n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n Private\n buildUrl\n \n \n Public\n Async\n createLaunchData\n \n \n Public\n createLaunchRequest\n \n \n Private\n Async\n getParameterValue\n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n \n buildToolLaunchDataFromConcreteConfig\n \n \n \n \n \n \n \n buildToolLaunchDataFromConcreteConfig(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:9\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n buildToolLaunchRequestPayload\n \n \n \n \n \n \n \n buildToolLaunchRequestPayload(url: string, properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n string\n \n\n \n No\n \n\n\n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n \n determineLaunchRequestMethod\n \n \n \n \n \n \n \n determineLaunchRequestMethod(properties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n properties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LaunchRequestMethod\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n addParameters\n \n \n \n \n \n \n \n addParameters(propertyData: PropertyData[], customParameterDOs: CustomParameter[], scopes: literal type[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:141\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n customParameterDOs\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n scopes\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n addProperty\n \n \n \n \n \n \n \n addProperty(propertyData: PropertyData[], propertyName: string, value: string | undefined, customParameterLocation: CustomParameterLocation)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:246\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n propertyName\n \n string\n \n\n \n No\n \n\n\n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n customParameterLocation\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n applyPropertiesToPathParams\n \n \n \n \n \n \n \n applyPropertiesToPathParams(url: URL, pathProperties: PropertyData[])\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:91\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n url\n \n URL\n \n\n \n No\n \n\n\n \n \n pathProperties\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildToolLaunchDataFromExternalTool\n \n \n \n \n \n \n \n buildToolLaunchDataFromExternalTool(externalTool: ExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:114\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchData\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n buildToolLaunchDataFromTools\n \n \n \n \n \n \n \n buildToolLaunchDataFromTools(data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:125\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildUrl\n \n \n \n \n \n \n \n buildUrl(toolLaunchDataDO: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:65\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchDataDO\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createLaunchData\n \n \n \n \n \n \n \n createLaunchData(userId: EntityId, data: IToolLaunchParams)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n data\n \n IToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n createLaunchRequest\n \n \n \n \n \n \n \n createLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getParameterValue\n \n \n \n \n \n \n \n getParameterValue(customParameter: CustomParameter, matchingParameterEntry: CustomParameterEntry | undefined, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:204\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameter\n \n CustomParameter\n \n\n \n No\n \n\n\n \n \n matchingParameterEntry\n \n CustomParameterEntry | undefined\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n handleParametersToInclude\n \n \n \n \n \n \n \n handleParametersToInclude(propertyData: PropertyData[], parametersToInclude: CustomParameter[], params: CustomParameterEntry[], schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Inherited from AbstractLaunchStrategy\n\n \n \n \n \n Defined in AbstractLaunchStrategy:167\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n propertyData\n \n PropertyData[]\n \n\n \n No\n \n\n\n \n \n parametersToInclude\n \n CustomParameter[]\n \n\n \n No\n \n\n\n \n \n params\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { LaunchRequestMethod, PropertyData } from '../../types';\nimport { AbstractLaunchStrategy } from './abstract-launch.strategy';\nimport { IToolLaunchParams } from './tool-launch-params.interface';\n\n@Injectable()\nexport class OAuth2ToolLaunchStrategy extends AbstractLaunchStrategy {\n\tpublic override buildToolLaunchDataFromConcreteConfig(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tuserId: EntityId,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tdata: IToolLaunchParams\n\t): Promise {\n\t\treturn Promise.resolve([]);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tpublic override buildToolLaunchRequestPayload(url: string, properties: PropertyData[]): string | null {\n\t\treturn null;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tpublic override determineLaunchRequestMethod(properties: PropertyData[]): LaunchRequestMethod {\n\t\treturn LaunchRequestMethod.GET;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthMigrationError.html":{"url":"classes/OAuthMigrationError.html","title":"class - OAuthMigrationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthMigrationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/oauth-migration.error.ts\n \n\n\n\n \n Extends\n \n \n OAuthSSOError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n Readonly\n errorcode\n \n \n Readonly\n message\n \n \n Readonly\n Optional\n officialSchoolNumberFromSource\n \n \n Readonly\n Optional\n officialSchoolNumberFromTarget\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message?: string, errorcode?: string, officialSchoolNumberFromSource?: string, officialSchoolNumberFromTarget?: string)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/oauth-migration.error.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n Yes\n \n \n \n \n errorcode\n \n \n string\n \n \n \n Yes\n \n \n \n \n officialSchoolNumberFromSource\n \n \n string\n \n \n \n Yes\n \n \n \n \n officialSchoolNumberFromTarget\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'OauthMigrationFailed'\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'Error in Oauth Migration Process.'\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:8\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n errorcode\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:4\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n Optional\n officialSchoolNumberFromSource\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/oauth-migration.error.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n Optional\n officialSchoolNumberFromTarget\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/oauth-migration.error.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { OAuthSSOError } from '@src/modules/oauth/error/oauth-sso.error';\n\nexport class OAuthMigrationError extends OAuthSSOError {\n\treadonly message: string;\n\n\treadonly errorcode: string;\n\n\treadonly DEFAULT_MESSAGE: string = 'Error in Oauth Migration Process.';\n\n\treadonly DEFAULT_ERRORCODE: string = 'OauthMigrationFailed';\n\n\treadonly officialSchoolNumberFromSource?: string;\n\n\treadonly officialSchoolNumberFromTarget?: string;\n\n\tconstructor(\n\t\tmessage?: string,\n\t\terrorcode?: string,\n\t\tofficialSchoolNumberFromSource?: string,\n\t\tofficialSchoolNumberFromTarget?: string\n\t) {\n\t\tsuper(message);\n\t\tthis.message = message || this.DEFAULT_MESSAGE;\n\t\tthis.errorcode = errorcode || this.DEFAULT_ERRORCODE;\n\t\tthis.officialSchoolNumberFromSource = officialSchoolNumberFromSource;\n\t\tthis.officialSchoolNumberFromTarget = officialSchoolNumberFromTarget;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthProcessDto.html":{"url":"classes/OAuthProcessDto.html","title":"class - OAuthProcessDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthProcessDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/oauth-process.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n jwt\n \n \n redirect\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(response: OAuthProcessDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/oauth-process.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n \n OAuthProcessDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n jwt\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/oauth-process.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n redirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/dto/oauth-process.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OAuthProcessDto {\n\tjwt?: string;\n\n\tredirect: string;\n\n\tconstructor(response: OAuthProcessDto) {\n\t\tthis.jwt = response.jwt;\n\t\tthis.redirect = response.redirect;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthRejectableBody.html":{"url":"classes/OAuthRejectableBody.html","title":"class - OAuthRejectableBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthRejectableBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n Optional\n status_code\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The error should follow the OAuth2 error format (e.g. invalid_request, login_required). Defaults to request_denied.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_debug\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Debug contains information to help resolve the problem as a developer. Usually not exposed to the public but only in the server logs.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Description of the error in a human readable format.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n error_hint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Hint to help resolve the error.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n status_code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsNumber()@IsOptional()@ApiProperty({description: 'Represents the HTTP status code of the error (e.g. 401 or 403). Defaults to 400.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-rejectable.body.ts:50\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsNumber, IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class OAuthRejectableBody {\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'The error should follow the OAuth2 error format (e.g. invalid_request, login_required). Defaults to request_denied.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\terror?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Debug contains information to help resolve the problem as a developer. Usually not exposed to the public but only in the server logs.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\terror_debug?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Description of the error in a human readable format.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\terror_description?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Hint to help resolve the error.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\terror_hint?: string;\n\n\t@IsNumber()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Represents the HTTP status code of the error (e.g. 401 or 403). Defaults to 400.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tstatus_code?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthSSOError.html":{"url":"classes/OAuthSSOError.html","title":"class - OAuthSSOError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthSSOError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/error/oauth-sso.error.ts\n \n\n\n\n \n Extends\n \n \n InternalServerErrorException\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n Readonly\n errorcode\n \n \n Readonly\n message\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message?: string, errorcode?: string)\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n Yes\n \n \n \n \n errorcode\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : SSOErrorCode.SSO_OAUTH_LOGIN_FAILED\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'Error in SSO Oauth Process.'\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n errorcode\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/oauth-sso.error.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { InternalServerErrorException } from '@nestjs/common';\nimport { SSOErrorCode } from './sso-error-code.enum';\n\nexport class OAuthSSOError extends InternalServerErrorException {\n\treadonly message: string;\n\n\treadonly errorcode: string;\n\n\treadonly DEFAULT_MESSAGE: string = 'Error in SSO Oauth Process.';\n\n\treadonly DEFAULT_ERRORCODE: string = SSOErrorCode.SSO_OAUTH_LOGIN_FAILED;\n\n\tconstructor(message?: string, errorcode?: string) {\n\t\tsuper(message);\n\t\tthis.message = message || this.DEFAULT_MESSAGE;\n\t\tthis.errorcode = errorcode || this.DEFAULT_ERRORCODE;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OAuthService.html":{"url":"injectables/OAuthService.html","title":"injectable - OAuthService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OAuthService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/oauth.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n authenticateUser\n \n \n Private\n buildTokenRequestPayload\n \n \n Private\n Async\n findUserAfterProvisioningOrThrow\n \n \n getAuthenticationUrl\n \n \n Async\n getPostLoginRedirectUrl\n \n \n getRedirectUri\n \n \n Async\n isOauthProvisioningEnabledForSchool\n \n \n Async\n provisionUser\n \n \n Async\n requestToken\n \n \n Async\n validateToken\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, oauthAdapterService: OauthAdapterService, oAuthEncryptionService: IEncryptionService, logger: LegacyLogger, provisioningService: ProvisioningService, systemService: SystemService, userMigrationService: UserMigrationService, migrationCheckService: MigrationCheckService, schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n oauthAdapterService\n \n \n OauthAdapterService\n \n \n \n No\n \n \n \n \n oAuthEncryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n provisioningService\n \n \n ProvisioningService\n \n \n \n No\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n userMigrationService\n \n \n UserMigrationService\n \n \n \n No\n \n \n \n \n migrationCheckService\n \n \n MigrationCheckService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n authenticateUser\n \n \n \n \n \n \n \n authenticateUser(systemId: string, redirectUri: string, authCode?: string, errorCode?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n authCode\n \n string\n \n\n \n Yes\n \n\n\n \n \n errorCode\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n buildTokenRequestPayload\n \n \n \n \n \n \n \n buildTokenRequestPayload(code: string, oauthConfig: OauthConfig, redirectUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:214\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n code\n \n string\n \n\n \n No\n \n\n\n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthenticationCodeGrantTokenRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findUserAfterProvisioningOrThrow\n \n \n \n \n \n \n \n findUserAfterProvisioningOrThrow(externalUserId: string, systemId: EntityId, officialSchoolNumber?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:116\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUserId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n officialSchoolNumber\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getAuthenticationUrl\n \n \n \n \n \n \ngetAuthenticationUrl(oauthConfig: OauthConfig, state: string, migration: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:189\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n state\n \n string\n \n\n \n No\n \n\n\n \n \n migration\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getPostLoginRedirectUrl\n \n \n \n \n \n \n \n getPostLoginRedirectUrl(idToken: string, systemId: string, postLoginRedirect?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:169\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idToken\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n postLoginRedirect\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getRedirectUri\n \n \n \n \n \n \ngetRedirectUri(migration: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:205\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n migration\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n isOauthProvisioningEnabledForSchool\n \n \n \n \n \n \n \n isOauthProvisioningEnabledForSchool(officialSchoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:132\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionUser\n \n \n \n \n \n \n \n provisionUser(systemId: string, idToken: string, accessToken: string, postLoginRedirect?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n idToken\n \n string\n \n\n \n No\n \n\n\n \n \n accessToken\n \n string\n \n\n \n No\n \n\n\n \n \n postLoginRedirect\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n requestToken\n \n \n \n \n \n \n \n requestToken(code: string, oauthConfig: OauthConfig, redirectUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n code\n \n string\n \n\n \n No\n \n\n\n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validateToken\n \n \n \n \n \n \n \n validateToken(idToken: string, oauthConfig: OauthConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth.service.ts:154\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n idToken\n \n string\n \n\n \n No\n \n\n\n \n \n oauthConfig\n \n OauthConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Inject } from '@nestjs/common';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { EntityId, LegacySchoolDo, OauthConfig, SchoolFeatures, UserDO } from '@shared/domain';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ProvisioningService } from '@src/modules/provisioning';\nimport { OauthDataDto } from '@src/modules/provisioning/dto';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { SystemService } from '@src/modules/system';\nimport { SystemDto } from '@src/modules/system/service';\nimport { UserService } from '@src/modules/user';\nimport { MigrationCheckService, UserMigrationService } from '@src/modules/user-login-migration';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { OAuthSSOError, SSOErrorCode, UserNotFoundAfterProvisioningLoggableException } from '../error';\nimport { OAuthTokenDto } from '../interface';\nimport { TokenRequestMapper } from '../mapper/token-request.mapper';\nimport { AuthenticationCodeGrantTokenRequest, OauthTokenResponse } from './dto';\nimport { OauthAdapterService } from './oauth-adapter.service';\n\n@Injectable()\nexport class OAuthService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly oauthAdapterService: OauthAdapterService,\n\t\t@Inject(DefaultEncryptionService) private readonly oAuthEncryptionService: IEncryptionService,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly provisioningService: ProvisioningService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly userMigrationService: UserMigrationService,\n\t\tprivate readonly migrationCheckService: MigrationCheckService,\n\t\tprivate readonly schoolService: LegacySchoolService\n\t) {\n\t\tthis.logger.setContext(OAuthService.name);\n\t}\n\n\tasync authenticateUser(\n\t\tsystemId: string,\n\t\tredirectUri: string,\n\t\tauthCode?: string,\n\t\terrorCode?: string\n\t): Promise {\n\t\tif (errorCode || !authCode) {\n\t\t\tthrow new OAuthSSOError(\n\t\t\t\t'Authorization Query Object has no authorization code or error',\n\t\t\t\terrorCode || 'sso_auth_code_step'\n\t\t\t);\n\t\t}\n\n\t\tconst system: SystemDto = await this.systemService.findById(systemId);\n\t\tif (!system.oauthConfig) {\n\t\t\tthrow new OAuthSSOError(`Requested system ${systemId} has no oauth configured`, 'sso_internal_error');\n\t\t}\n\t\tconst { oauthConfig } = system;\n\n\t\tconst oauthTokens: OAuthTokenDto = await this.requestToken(authCode, oauthConfig, redirectUri);\n\n\t\tawait this.validateToken(oauthTokens.idToken, oauthConfig);\n\n\t\treturn oauthTokens;\n\t}\n\n\tasync provisionUser(\n\t\tsystemId: string,\n\t\tidToken: string,\n\t\taccessToken: string,\n\t\tpostLoginRedirect?: string\n\t): Promise {\n\t\tconst data: OauthDataDto = await this.provisioningService.getData(systemId, idToken, accessToken);\n\n\t\tconst externalUserId: string = data.externalUser.externalId;\n\t\tconst officialSchoolNumber: string | undefined = data.externalSchool?.officialSchoolNumber;\n\n\t\tlet provisioning = true;\n\t\tlet migrationConsentRedirect: string | undefined;\n\n\t\tif (officialSchoolNumber) {\n\t\t\tprovisioning = await this.isOauthProvisioningEnabledForSchool(officialSchoolNumber);\n\n\t\t\tconst shouldUserMigrate: boolean = await this.migrationCheckService.shouldUserMigrate(\n\t\t\t\texternalUserId,\n\t\t\t\tsystemId,\n\t\t\t\tofficialSchoolNumber\n\t\t\t);\n\n\t\t\tif (shouldUserMigrate) {\n\t\t\t\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-632 Move Redirect Logic URLs to Client\n\t\t\t\tmigrationConsentRedirect = await this.userMigrationService.getMigrationConsentPageRedirect(\n\t\t\t\t\tofficialSchoolNumber,\n\t\t\t\t\tsystemId\n\t\t\t\t);\n\n\t\t\t\tconst existingUser: UserDO | null = await this.userService.findByExternalId(externalUserId, systemId);\n\t\t\t\tif (!existingUser) {\n\t\t\t\t\treturn { user: undefined, redirect: migrationConsentRedirect };\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (provisioning) {\n\t\t\tawait this.provisioningService.provisionData(data);\n\t\t}\n\n\t\tconst user: UserDO = await this.findUserAfterProvisioningOrThrow(externalUserId, systemId, officialSchoolNumber);\n\n\t\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-632 Move Redirect Logic URLs to Client\n\t\tconst redirect: string = await this.getPostLoginRedirectUrl(\n\t\t\tidToken,\n\t\t\tsystemId,\n\t\t\tpostLoginRedirect || migrationConsentRedirect\n\t\t);\n\n\t\treturn { user, redirect };\n\t}\n\n\tprivate async findUserAfterProvisioningOrThrow(\n\t\texternalUserId: string,\n\t\tsystemId: EntityId,\n\t\tofficialSchoolNumber?: string\n\t): Promise {\n\t\tconst user: UserDO | null = await this.userService.findByExternalId(externalUserId, systemId);\n\n\t\tif (!user) {\n\t\t\t// This can happen, when OAuth2 provisioning is disabled, because the school doesn't have the feature.\n\t\t\t// OAuth2 provisioning is disabled for schools that don't have migrated, yet.\n\t\t\tthrow new UserNotFoundAfterProvisioningLoggableException(externalUserId, systemId, officialSchoolNumber);\n\t\t}\n\n\t\treturn user;\n\t}\n\n\tasync isOauthProvisioningEnabledForSchool(officialSchoolNumber: string): Promise {\n\t\tconst school: LegacySchoolDo | null = await this.schoolService.getSchoolBySchoolNumber(officialSchoolNumber);\n\n\t\tif (!school) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !!school.features?.includes(SchoolFeatures.OAUTH_PROVISIONING_ENABLED);\n\t}\n\n\tasync requestToken(code: string, oauthConfig: OauthConfig, redirectUri: string): Promise {\n\t\tconst payload: AuthenticationCodeGrantTokenRequest = this.buildTokenRequestPayload(code, oauthConfig, redirectUri);\n\n\t\tconst responseToken: OauthTokenResponse = await this.oauthAdapterService.sendAuthenticationCodeTokenRequest(\n\t\t\toauthConfig.tokenEndpoint,\n\t\t\tpayload\n\t\t);\n\n\t\tconst tokenDto: OAuthTokenDto = TokenRequestMapper.mapTokenResponseToDto(responseToken);\n\t\treturn tokenDto;\n\t}\n\n\tasync validateToken(idToken: string, oauthConfig: OauthConfig): Promise {\n\t\tconst publicKey: string = await this.oauthAdapterService.getPublicKey(oauthConfig.jwksEndpoint);\n\t\tconst decodedJWT: string | JwtPayload = jwt.verify(idToken, publicKey, {\n\t\t\talgorithms: ['RS256'],\n\t\t\tissuer: oauthConfig.issuer,\n\t\t\taudience: oauthConfig.clientId,\n\t\t});\n\n\t\tif (typeof decodedJWT === 'string') {\n\t\t\tthrow new OAuthSSOError('Failed to validate idToken', SSOErrorCode.SSO_JWT_PROBLEM);\n\t\t}\n\n\t\treturn decodedJWT;\n\t}\n\n\tasync getPostLoginRedirectUrl(idToken: string, systemId: string, postLoginRedirect?: string): Promise {\n\t\tconst clientUrl: string = Configuration.get('HOST') as string;\n\t\tconst dashboardUrl: URL = new URL('/dashboard', clientUrl);\n\t\tconst system: SystemDto = await this.systemService.findById(systemId);\n\n\t\tlet redirect: string;\n\t\tif (system.oauthConfig?.provider === 'iserv') {\n\t\t\tconst iservLogoutUrl: URL = new URL(system.oauthConfig.logoutEndpoint);\n\t\t\tiservLogoutUrl.searchParams.append('id_token_hint', idToken);\n\t\t\tiservLogoutUrl.searchParams.append('post_logout_redirect_uri', postLoginRedirect || dashboardUrl.toString());\n\t\t\tredirect = iservLogoutUrl.toString();\n\t\t} else if (postLoginRedirect) {\n\t\t\tredirect = postLoginRedirect;\n\t\t} else {\n\t\t\tredirect = dashboardUrl.toString();\n\t\t}\n\n\t\treturn redirect;\n\t}\n\n\tgetAuthenticationUrl(oauthConfig: OauthConfig, state: string, migration: boolean): string {\n\t\tconst redirectUri: string = this.getRedirectUri(migration);\n\n\t\tconst authenticationUrl: URL = new URL(oauthConfig.authEndpoint);\n\t\tauthenticationUrl.searchParams.append('client_id', oauthConfig.clientId);\n\t\tauthenticationUrl.searchParams.append('redirect_uri', redirectUri);\n\t\tauthenticationUrl.searchParams.append('response_type', oauthConfig.responseType);\n\t\tauthenticationUrl.searchParams.append('scope', oauthConfig.scope);\n\t\tauthenticationUrl.searchParams.append('state', state);\n\t\tif (oauthConfig.idpHint) {\n\t\t\tauthenticationUrl.searchParams.append('kc_idp_hint', oauthConfig.idpHint);\n\t\t}\n\n\t\treturn authenticationUrl.toString();\n\t}\n\n\tgetRedirectUri(migration: boolean) {\n\t\tconst publicBackendUrl: string = Configuration.get('PUBLIC_BACKEND_URL') as string;\n\n\t\tconst path: string = migration ? 'api/v3/sso/oauth/migration' : 'api/v3/sso/oauth';\n\t\tconst redirectUri: URL = new URL(path, publicBackendUrl);\n\n\t\treturn redirectUri.toString();\n\t}\n\n\tprivate buildTokenRequestPayload(\n\t\tcode: string,\n\t\toauthConfig: OauthConfig,\n\t\tredirectUri: string\n\t): AuthenticationCodeGrantTokenRequest {\n\t\tconst decryptedClientSecret: string = this.oAuthEncryptionService.decrypt(oauthConfig.clientSecret);\n\n\t\tconst tokenRequestPayload: AuthenticationCodeGrantTokenRequest =\n\t\t\tTokenRequestMapper.createAuthenticationCodeGrantTokenRequestPayload(\n\t\t\t\toauthConfig.clientId,\n\t\t\t\tdecryptedClientSecret,\n\t\t\t\tcode,\n\t\t\t\tredirectUri\n\t\t\t);\n\n\t\treturn tokenRequestPayload;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OAuthTokenDto.html":{"url":"classes/OAuthTokenDto.html","title":"class - OAuthTokenDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OAuthTokenDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/interface/oauth-token.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n accessToken\n \n \n idToken\n \n \n refreshToken\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: OAuthTokenDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/interface/oauth-token.dto.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n OAuthTokenDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/interface/oauth-token.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n idToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/interface/oauth-token.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n refreshToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/interface/oauth-token.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OAuthTokenDto {\n\tidToken: string;\n\n\trefreshToken: string;\n\n\taccessToken: string;\n\n\tconstructor(props: OAuthTokenDto) {\n\t\tthis.idToken = props.idToken;\n\t\tthis.refreshToken = props.refreshToken;\n\t\tthis.accessToken = props.accessToken;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2AuthorizationBodyParams.html":{"url":"classes/Oauth2AuthorizationBodyParams.html","title":"class - Oauth2AuthorizationBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2AuthorizationBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/controllers/dto/oauth2-authorization.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n redirectUri\n \n \n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth2-authorization.body.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth2-authorization.body.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/authentication/controllers/dto/oauth2-authorization.body.params.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNotEmpty, IsString } from 'class-validator';\n\nexport class Oauth2AuthorizationBodyParams {\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tredirectUri!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tcode!: string;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\tsystemId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2MigrationParams.html":{"url":"classes/Oauth2MigrationParams.html","title":"class - Oauth2MigrationParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2MigrationParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/oauth2-migration.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n redirectUri\n \n \n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/oauth2-migration.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsNotEmpty()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/oauth2-migration.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/oauth2-migration.params.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsNotEmpty, IsString } from 'class-validator';\n\nexport class Oauth2MigrationParams {\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tredirectUri!: string;\n\n\t@IsString()\n\t@IsNotEmpty()\n\t@ApiProperty()\n\tcode!: string;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\tsystemId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/Oauth2Strategy.html":{"url":"injectables/Oauth2Strategy.html","title":"injectable - Oauth2Strategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n Oauth2Strategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/strategy/oauth2.strategy.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthService: OAuthService, accountService: AccountService)\n \n \n \n \n Defined in apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthService\n \n \n OAuthService\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(request: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/strategy/oauth2.strategy.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport { PassportStrategy } from '@nestjs/passport';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { OAuthTokenDto } from '@src/modules/oauth';\nimport { OAuthService } from '@src/modules/oauth/service/oauth.service';\nimport { Strategy } from 'passport-custom';\nimport { Oauth2AuthorizationBodyParams } from '../controllers/dto';\nimport { SchoolInMigrationError } from '../errors/school-in-migration.error';\nimport { ICurrentUser } from '../interface';\nimport { CurrentUserMapper } from '../mapper';\n\n@Injectable()\nexport class Oauth2Strategy extends PassportStrategy(Strategy, 'oauth2') {\n\tconstructor(private readonly oauthService: OAuthService, private readonly accountService: AccountService) {\n\t\tsuper();\n\t}\n\n\tasync validate(request: { body: Oauth2AuthorizationBodyParams }): Promise {\n\t\tconst { systemId, redirectUri, code } = request.body;\n\n\t\tconst tokenDto: OAuthTokenDto = await this.oauthService.authenticateUser(systemId, redirectUri, code);\n\n\t\tconst { user }: { user?: UserDO; redirect: string } = await this.oauthService.provisionUser(\n\t\t\tsystemId,\n\t\t\ttokenDto.idToken,\n\t\t\ttokenDto.accessToken\n\t\t);\n\n\t\tif (!user || !user.id) {\n\t\t\tthrow new SchoolInMigrationError();\n\t\t}\n\n\t\tconst account: AccountDto | null = await this.accountService.findByUserId(user.id);\n\t\tif (!account) {\n\t\t\tthrow new UnauthorizedException('no account found');\n\t\t}\n\n\t\tconst currentUser: ICurrentUser = CurrentUserMapper.userDoToICurrentUser(account.id, user, systemId);\n\n\t\treturn currentUser;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfig.html":{"url":"classes/Oauth2ToolConfig.html","title":"class - Oauth2ToolConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfig\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n clientId\n \n \n Optional\n clientSecret\n \n \n Optional\n frontchannelLogoutUri\n \n \n Optional\n redirectUris\n \n \n Optional\n scope\n \n \n skipConsent\n \n \n Optional\n tokenEndpointAuthMethod\n \n \n baseUrl\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Oauth2ToolConfig)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Oauth2ToolConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n redirectUris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n tokenEndpointAuthMethod\n \n \n \n \n \n \n Type : TokenEndpointAuthMethod\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/config/oauth2-tool-config.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Inherited from ExternalToolConfig\n\n \n \n \n \n Defined in ExternalToolConfig:4\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ExternalToolConfig } from './external-tool-config.do';\nimport { TokenEndpointAuthMethod, ToolConfigType } from '../../../common/enum';\n\nexport class Oauth2ToolConfig extends ExternalToolConfig {\n\tclientId: string;\n\n\tclientSecret?: string;\n\n\tskipConsent: boolean;\n\n\ttokenEndpointAuthMethod?: TokenEndpointAuthMethod;\n\n\tfrontchannelLogoutUri?: string;\n\n\tscope?: string;\n\n\tredirectUris?: string[];\n\n\tconstructor(props: Oauth2ToolConfig) {\n\t\tsuper({\n\t\t\ttype: ToolConfigType.OAUTH2,\n\t\t\tbaseUrl: props.baseUrl,\n\t\t});\n\t\tthis.clientId = props.clientId;\n\t\tthis.clientSecret = props.clientSecret;\n\t\tthis.skipConsent = props.skipConsent;\n\t\tthis.redirectUris = props.redirectUris;\n\t\tthis.scope = props.scope;\n\t\tthis.tokenEndpointAuthMethod = props.tokenEndpointAuthMethod;\n\t\tthis.frontchannelLogoutUri = props.frontchannelLogoutUri;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigCreateParams.html":{"url":"classes/Oauth2ToolConfigCreateParams.html","title":"class - Oauth2ToolConfigCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n clientId\n \n \n \n \n clientSecret\n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n redirectUris\n \n \n \n \n \n Optional\n scope\n \n \n \n \n skipConsent\n \n \n \n \n tokenEndpointAuthMethod\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n redirectUris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n tokenEndpointAuthMethod\n \n \n \n \n \n \n Type : TokenEndpointAuthMethod\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(TokenEndpointAuthMethod)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-create.params.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsArray, IsBoolean, IsEnum, IsOptional, IsString } from 'class-validator';\nimport { TokenEndpointAuthMethod, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\n\nexport class Oauth2ToolConfigCreateParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tclientId!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tclientSecret!: string;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tskipConsent!: boolean;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tfrontchannelLogoutUri?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tscope?: string;\n\n\t@IsArray()\n\t@ApiProperty()\n\tredirectUris!: string[];\n\n\t@IsEnum(TokenEndpointAuthMethod)\n\t@ApiProperty()\n\ttokenEndpointAuthMethod!: TokenEndpointAuthMethod;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigEntity.html":{"url":"classes/Oauth2ToolConfigEntity.html","title":"class - Oauth2ToolConfigEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/entity/config/oauth2-tool-config.entity.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigEntity\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n clientId\n \n \n \n skipConsent\n \n \n \n baseUrl\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Oauth2ToolConfigEntity)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/oauth2-tool-config.entity.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Oauth2ToolConfigEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/oauth2-tool-config.entity.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/entity/config/oauth2-tool-config.entity.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Inherited from ExternalToolConfigEntity\n\n \n \n \n \n Defined in ExternalToolConfigEntity:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Property } from '@mikro-orm/core';\nimport { ExternalToolConfigEntity } from './external-tool-config.entity';\nimport { ToolConfigType } from '../../../common/enum';\n\n@Embeddable({ discriminatorValue: ToolConfigType.OAUTH2 })\nexport class Oauth2ToolConfigEntity extends ExternalToolConfigEntity {\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tskipConsent: boolean;\n\n\tconstructor(props: Oauth2ToolConfigEntity) {\n\t\tsuper(props);\n\t\tthis.type = ToolConfigType.OAUTH2;\n\t\tthis.clientId = props.clientId;\n\t\tthis.skipConsent = props.skipConsent;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigFactory.html":{"url":"classes/Oauth2ToolConfigFactory.html","title":"class - Oauth2ToolConfigFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withExternalData\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withExternalData\n \n \n \n \n \n \nwithExternalData(oauth2Params?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/external-tool.factory.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauth2Params\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameter } from '@src/modules/tool/common/domain';\nimport {\n\tCustomParameterLocation,\n\tCustomParameterScope,\n\tCustomParameterType,\n\tLtiMessageType,\n\tLtiPrivacyPermission,\n\tTokenEndpointAuthMethod,\n\tToolConfigType,\n} from '@src/modules/tool/common/enum';\nimport {\n\tBasicToolConfig,\n\tExternalTool,\n\tExternalToolProps,\n\tLti11ToolConfig,\n\tOauth2ToolConfig,\n} from '@src/modules/tool/external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nexport const basicToolConfigFactory = DoBaseFactory.define(BasicToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.BASIC,\n\t\tbaseUrl: 'https://www.basic-baseUrl.com/',\n\t};\n});\n\nclass Oauth2ToolConfigFactory extends DoBaseFactory {\n\twithExternalData(oauth2Params?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tclientSecret: 'clientSecret',\n\t\t\tscope: 'offline openid',\n\t\t\tfrontchannelLogoutUri: 'https://www.frontchannel.com/',\n\t\t\tredirectUris: ['https://www.redirect.com/'],\n\t\t\ttokenEndpointAuthMethod: TokenEndpointAuthMethod.CLIENT_SECRET_POST,\n\t\t};\n\n\t\treturn this.params({ ...params, ...oauth2Params });\n\t}\n}\n\nexport const oauth2ToolConfigFactory = Oauth2ToolConfigFactory.define(Oauth2ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.OAUTH2,\n\t\tbaseUrl: 'https://www.oauth2-baseUrl.com/',\n\t\tclientId: 'clientId',\n\t\tskipConsent: false,\n\t};\n});\n\nexport const lti11ToolConfigFactory = DoBaseFactory.define(Lti11ToolConfig, () => {\n\treturn {\n\t\ttype: ToolConfigType.LTI11,\n\t\tbaseUrl: 'https://www.lti11-baseUrl.com/',\n\t\tkey: 'key',\n\t\tsecret: 'secret',\n\t\tprivacy_permission: LtiPrivacyPermission.PSEUDONYMOUS,\n\t\tlti_message_type: LtiMessageType.BASIC_LTI_LAUNCH_REQUEST,\n\t\tresource_link_id: 'linkId',\n\t\tlaunch_presentation_locale: 'de-DE',\n\t};\n});\n\nclass CustomParameterFactory extends DoBaseFactory {\n\tbuildListWithEachType(params?: DeepPartial): CustomParameter[] {\n\t\tconst globalParameter = this.build({ ...params, scope: CustomParameterScope.GLOBAL });\n\t\tconst schoolParameter = this.build({ ...params, scope: CustomParameterScope.SCHOOL });\n\t\tconst contextParameter = this.build({ ...params, scope: CustomParameterScope.CONTEXT });\n\n\t\treturn [globalParameter, schoolParameter, contextParameter];\n\t}\n}\n\nexport const customParameterFactory = CustomParameterFactory.define(CustomParameter, ({ sequence }) => {\n\treturn {\n\t\tname: `custom-parameter-${sequence}`,\n\t\tdisplayName: 'User Friendly Name',\n\t\ttype: CustomParameterType.STRING,\n\t\tscope: CustomParameterScope.SCHOOL,\n\t\tlocation: CustomParameterLocation.BODY,\n\t\tisOptional: false,\n\t};\n});\n\nclass ExternalToolFactory extends DoBaseFactory {\n\twithOauth2Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: oauth2ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLti11Config(customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tconfig: lti11ToolConfigFactory.build(customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithCustomParameters(number: number, customParam?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tparameters: customParameterFactory.buildList(number, customParam),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithBase64Logo(): this {\n\t\tconst params: DeepPartial = {\n\t\t\tlogo: 'iVBORw0KGgoAAAANSUhEUgAAAfQAAADICAYAAAAeGRPoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MUQ2Q0Y5RTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MUQ2Q0ZBRTQxMTExRTdBMTg3QkQ2MDVGMUFEMUIwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYxRDZDRjdFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYxRDZDRjhFNDExMTFFN0ExODdCRDYwNUYxQUQxQjAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz45EjsrAAALfUlEQVR42uzdgXWjOAIGYHLvGsiV4CnBU4JTgqeEpIS4hKSEpIS4BLsEu4RJCeMScmhGzPplkyCMAGO+7z3ezs3tYsuS+BEIcfX29lYAAOP2Hz8BAAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAIdABDoAIBABwAEOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAQCBDgAIdAAQ6ACAQAcABDoAINABQKADAAIdABDoAIBABwCBDgAIdABAoAMAAh0ABDoAINABgN79109AbldXV9flPxblNov/DOblFv7+UG77+HfVn39vb29vB78emdpg1fauP2iDwWvcgm3883aMbbAs6/yorPP414ujf+W4z+2r/12WdasOL6zdl4Ufa4fdvGu0gyp/x6sTyjD0jx8a/03GOgn1cVtuyxN3EQ4267CV3+t16u2jhz701lfb6DEAlnGbt2yDz+ccDDHEq7LOTtzNIZY11PVaHV6AEOhj3ErhgP12LtuJZRj6e28y1cW8g/p4CgeqKbePHvpQ522jp3LMYnvJWWe/2rbBjsq66Kht/wwn4+pw3Jt76LQ9o76NB5jco+Gw35/l/p/iJXx43/auy+2+CqPMu7+O+9zFzziHsj511Nf+Bmr5GT/jlTZ1OEICnbZh/lT8c0+rC1WwL/3ivLvkvCu3h44/KrTth/LzdvFy8BBlXXQUeJ8F+6b8zIeuT6SnVIcCnXM/oC5jmPchdMiXqZxlk3QiuStOv3d8inkc6c0HKOum45Pmj9zHYJ+pQ4HOZR9Qr08I8zBRZRu3U4RJcs9+fWHe44nkRyeWu/gd+ijr04BlrRzU4Xh4bI1T3CaMGMKB4LH4M4N2/0Gnrh5JqWbr1u3vzmNtwrxhEFSzuEP7ez1+TCu2v9lR+2syagv3mvcfteuMZb0vml1ifz0q6/74KZF3Za3Km/Lb/cjd56ZUh4OYyuy/1NnPZhknfe9fNd/9JQR0g/1Vk1d+frK/hym2D+3vX7O7G83YbtgGm86yDn1g1lFZlw3Lumy4/9Df7mv68VwdjrBPC3SBnrlT7lru//2BZtekUwv0y2t/MYB+JR6kH9q0lzjK2yV+1q6jx7dSy3qf4Xe9/2C/t+rQY2tMQ91lrceWV4zCf/8tXmZzqZ2iSH+SIrSVVZv2Ei/BhgV1UuZrzDuYqJlS1upyeNu+doj7+F78s+LaY/l3z+pwnAQ6WQM9x4pT8UDzI3TKi7vHRdN7rovEe753uYIotr+7xEC4zzUTPD45kvIM+E3Old1iH/sew3ylDgU609Hb4zPnvtY0vUgZPd11MaqMgbBP6A+5RngPiWXdd1DWQxdhPsE6FOhc1IjKqm7kHNnVjVjXHV0iroQrRXWXf2/btvtY1tnAZVWHAp2JqesYVnQjl5S2tOryC8THv1LuVbd9rvk2od+t1OFZ16FAZ3TqLl89XPJKTPQ2srtOCIPHtm/lSwyEEAZ1n7PsuKzPfZRVHQp0pqWuU4ROvLnUlZjoTfUe7C9DrsfvU/dZ8xYTq5YZPl8dDluHAp1RSpmo9ntp2Pjmpnv31TlB3VWefc8j1nWG7/yZ2ZmVVR0KdKYgPh+aelYdDlRh5u6vMtQ3MdxdjidHGKx7bvchePYJ7X30ZVWHAp38FmX4vXWwbTJ8t3A/qunCD4sY7uHFCCHgX2LAz1Q1n7SXL0d3A3ynbcvvPKayqsMR8nIWTjrTLYM4zEw99Y1J1WSZsIVJdNWLJdYWkiHREJegD2Mqa3ineZHpEnLZL2/UoUDnckP9uTxgFEWe1yCGUXpY2CGM2EOgP4/teVvySbktM9A95bqTzcUJZV10WNb5UCPOKdXhOXHJnVahXqQt2tD0IFRNqPNM+zSZRKkOEegMEOrhUnl4mcoqc7CHUXu4z/5kljyAQKefUD8cvSUtBHvOS2nhefaNUGcEvBVQHQp0LivYyy0E+++3NxV5ZrKGy/AvfuHJtKPatQ4Gevyx9nnxCyqrOhToZLQtO8VVB9tNTx16H99rHIL9f8Wfe+1tAn5xSe8tpvMDcxeuJ1RWdSjQ4dOR+/oo4MMIPrzWsOnCEladm9AJbc3/P8TobtHyO5/6381O7Hc3qSf6RTcvSJlSHQp0Jhvwr2GGfLn9iKP31Al1KS974DKc1Ys04onkouV3HkVZ1aFAhzaj92pCXcqz55aOnYbaJTp7vgebEj7bjso61peGTKkOBTq8C/a7hFC3VOw0pNyO6fONfnWftY3vOTjF9szKqg4FOmRRdy9v4SeaxgleQiDc9jFyja8C7uxFI4kvDbkd2yh9SnUo0OHzg8DWL0HiAfapyy8Q77vWPV1xKNqHQd2VqfA9HtThWdehQGecQieJZ73Q1cldOMDWTVLq+nHGEKJ1I8jHtpdq4zLKdftYjq3PTakOBTpjFl7D+hTf6JTbV4+meRvbtKQ8TvXQRdCFZYeL+vuuhyJtMmeKx8SyztXh2dahQGd0o/PQSaqDSng2fJPrPljcz1cHrFc1MLlResotmKeco7zEIMg6sotPe9S173Cyu+ngxUVzdSjQmV6Y337QScJEtV2mzlh3P80IfXruirR1CsIo76XN4kPhhDKcoCYGwTaGcO6y1gnle8nR38JoP5Z3qQ4FOtMK88UXgXsdO2N47elt0w4Z78m/FPWz2NdqYnKj9DBqTV3JLARTaIONVhWMIRACclekPUkRwulHB2UNI9nUgPnb307py3EEm1pedTiGY3T5Q08tlDZfVXZcBrGv7zL4j59a3njfblM0Wwv5OY6ow7ru+y/2u4xn03X73na9Fv05tY9Lbn+n/I7xYN10zsa6aoOxHR6qE8jiz2XmamsyQg37uPmsTWeqm5cTvlNV1tfjl6MclbW6nbUoGq7nkKvdT6kOBbpAP+dAv46B3uZe26H455L5rGi+SMz3rjugQD/fQI/fOfW+aFd6CYJM/S2XcI95lbFsk6jDIbjkTuoB+BBfrNLmflO1lnLjEUJpdYkdkMbtMNyLXQ308b0FQRyFhqtRQ86+/n1JOmeYT6kOBTpjOKCu4oGmz9nmz5c0cYXWbfAxtsE+ZyaHS9jf+gyCo+WQhwi/dSzvWh0KdC77gBo6xvci/S1pbaziQQ3et8HUF/q0HdHdxVeRHgYqaxV+fQTRaxzB/ui6vFOqQ4HOuR9Qj9+StupgxL6PBxYjc+pGsDdF/uWCD7Fdf4uruA1+AhNved0V3VwdC79fCPFvxxPq1OG4mBT37wZmUtzp5VnG3zb889TnSMMlvnVXl/rG1D4uuf118TvGRYluY/ubtWh/29gGD2dcdzn62j6W9Tk+VnYO5ZpMHQp0xhQW1aMk1+8Csvrz69FIYxv/vJ1aB6TTYKgmX87ftb3j9lc9eTHa9hf7WlXW2Qdl3cdyjqqsU6pDgQ4A/OUeOgAIdABAoAMAAh0AEOgAINABAIEOAAh0AECgA4BABwAEOgAg0AEAgQ4AAh0AEOgAgEAHAAQ6AAh0AECgAwACHQAQ6AAg0AEAgQ4ACHQAQKADgEAHAAQ6ACDQAQCBDgACHQAQ6ACAQAcABDoACHQAQKADAAIdABDoACDQAQCBDgAIdABAoAOAQAcABDoAINABAIEOAAh0ABDoAIBABwAEOgAg0AFAoAMAAh0AEOgAgEAHAIEOAAh0AECgAwACHQAEOgAg0AEAgQ4ACHQAEOgAgEAHAAQ6ACDQAUCgAwACHQAQ6ACAQAcAgQ4ACHQAQKADAAIdAAQ6ACDQAYD+/V+AAQADXuXS75wQpQAAAABJRU5ErkJggg==',\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const externalToolFactory = ExternalToolFactory.define(ExternalTool, ({ sequence }) => {\n\treturn {\n\t\tname: `external-tool-${sequence}`,\n\t\turl: 'https://url.com/',\n\t\tconfig: basicToolConfigFactory.build(),\n\t\tlogoUrl: 'https://logo.com/',\n\t\tisHidden: false,\n\t\topenNewTab: false,\n\t\tversion: 1,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigResponse.html":{"url":"classes/Oauth2ToolConfigResponse.html","title":"class - Oauth2ToolConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n clientId\n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n Optional\n redirectUris\n \n \n \n Optional\n scope\n \n \n \n skipConsent\n \n \n \n Optional\n tokenEndpointAuthMethod\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: Oauth2ToolConfigResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:28\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n Oauth2ToolConfigResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:10\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n redirectUris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n tokenEndpointAuthMethod\n \n \n \n \n \n \n Type : TokenEndpointAuthMethod\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/config/oauth2-tool-config.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigResponse\n\n \n \n \n \n Defined in ExternalToolConfigResponse:7\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ExternalToolConfigResponse } from './external-tool-config.response';\nimport { TokenEndpointAuthMethod, ToolConfigType } from '../../../../../common/enum';\n\nexport class Oauth2ToolConfigResponse extends ExternalToolConfigResponse {\n\t@ApiProperty()\n\ttype: ToolConfigType;\n\n\t@ApiProperty()\n\tbaseUrl: string;\n\n\t@ApiProperty()\n\tclientId: string;\n\n\t@ApiProperty()\n\tskipConsent: boolean;\n\n\t@ApiPropertyOptional()\n\tfrontchannelLogoutUri?: string;\n\n\t@ApiPropertyOptional()\n\tscope?: string;\n\n\t@ApiPropertyOptional()\n\tredirectUris?: string[];\n\n\t@ApiPropertyOptional()\n\ttokenEndpointAuthMethod?: TokenEndpointAuthMethod;\n\n\tconstructor(props: Oauth2ToolConfigResponse) {\n\t\tsuper();\n\t\tthis.type = ToolConfigType.OAUTH2;\n\t\tthis.baseUrl = props.baseUrl;\n\t\tthis.clientId = props.clientId;\n\t\tthis.skipConsent = props.skipConsent;\n\t\tthis.frontchannelLogoutUri = props.frontchannelLogoutUri;\n\t\tthis.scope = props.scope;\n\t\tthis.redirectUris = props.redirectUris;\n\t\tthis.tokenEndpointAuthMethod = props.tokenEndpointAuthMethod;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Oauth2ToolConfigUpdateParams.html":{"url":"classes/Oauth2ToolConfigUpdateParams.html","title":"class - Oauth2ToolConfigUpdateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Oauth2ToolConfigUpdateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts\n \n\n\n\n \n Extends\n \n \n ExternalToolConfigCreateParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n clientId\n \n \n \n \n \n Optional\n clientSecret\n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n redirectUris\n \n \n \n \n \n Optional\n scope\n \n \n \n \n skipConsent\n \n \n \n \n tokenEndpointAuthMethod\n \n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n frontchannelLogoutUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n redirectUris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n skipConsent\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n tokenEndpointAuthMethod\n \n \n \n \n \n \n Type : TokenEndpointAuthMethod\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(TokenEndpointAuthMethod)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/config/oauth2-tool-config-update.params.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolConfigType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ToolConfigType)@ApiProperty()\n \n \n \n \n \n Inherited from ExternalToolConfigCreateParams\n\n \n \n \n \n Defined in ExternalToolConfigCreateParams:9\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsArray, IsBoolean, IsEnum, IsOptional, IsString } from 'class-validator';\nimport { TokenEndpointAuthMethod, ToolConfigType } from '../../../../../common/enum';\nimport { ExternalToolConfigCreateParams } from './external-tool-config.params';\n\nexport class Oauth2ToolConfigUpdateParams extends ExternalToolConfigCreateParams {\n\t@IsEnum(ToolConfigType)\n\t@ApiProperty()\n\ttype!: ToolConfigType;\n\n\t@IsString()\n\t@ApiProperty()\n\tbaseUrl!: string;\n\n\t@IsString()\n\t@ApiProperty()\n\tclientId!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tclientSecret?: string;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tskipConsent!: boolean;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tfrontchannelLogoutUri?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiPropertyOptional()\n\tscope?: string;\n\n\t@IsArray()\n\t@ApiProperty()\n\tredirectUris!: string[];\n\n\t@IsEnum(TokenEndpointAuthMethod)\n\t@ApiProperty()\n\ttokenEndpointAuthMethod!: TokenEndpointAuthMethod;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthAdapterService.html":{"url":"injectables/OauthAdapterService.html","title":"injectable - OauthAdapterService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthAdapterService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/oauth-adapter.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getPublicKey\n \n \n Private\n Async\n resolveTokenRequest\n \n \n Public\n sendAuthenticationCodeTokenRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(httpService: HttpService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getPublicKey\n \n \n \n \n \n \n \n getPublicKey(jwksUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwksUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n resolveTokenRequest\n \n \n \n \n \n \n \n resolveTokenRequest(observable: Observable>)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n observable\n \n Observable>\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n sendAuthenticationCodeTokenRequest\n \n \n \n \n \n \n \n sendAuthenticationCodeTokenRequest(tokenEndpoint: string, payload: AuthenticationCodeGrantTokenRequest)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/service/oauth-adapter.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tokenEndpoint\n \n string\n \n\n \n No\n \n\n\n \n \n payload\n \n AuthenticationCodeGrantTokenRequest\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Injectable } from '@nestjs/common/decorators';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AxiosResponse } from 'axios';\nimport JwksRsa from 'jwks-rsa';\nimport QueryString from 'qs';\nimport { lastValueFrom, Observable } from 'rxjs';\nimport { OAuthSSOError } from '../error/oauth-sso.error';\nimport { AuthenticationCodeGrantTokenRequest, OauthTokenResponse } from './dto';\n\n@Injectable()\nexport class OauthAdapterService {\n\tconstructor(private readonly httpService: HttpService, private readonly logger: LegacyLogger) {\n\t\tthis.logger.setContext(OauthAdapterService.name);\n\t}\n\n\tasync getPublicKey(jwksUri: string): Promise {\n\t\tconst client: JwksRsa.JwksClient = JwksRsa({\n\t\t\tcache: true,\n\t\t\tjwksUri,\n\t\t});\n\t\tconst key: JwksRsa.SigningKey = await client.getSigningKey();\n\t\treturn key.getPublicKey();\n\t}\n\n\tpublic sendAuthenticationCodeTokenRequest(\n\t\ttokenEndpoint: string,\n\t\tpayload: AuthenticationCodeGrantTokenRequest\n\t): Promise {\n\t\tconst urlEncodedPayload: string = QueryString.stringify(payload);\n\t\tconst responseTokenObservable = this.httpService.post(tokenEndpoint, urlEncodedPayload, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\n\t\t\t},\n\t\t});\n\t\tconst responseData: Promise = this.resolveTokenRequest(responseTokenObservable);\n\t\treturn responseData;\n\t}\n\n\tprivate async resolveTokenRequest(\n\t\tobservable: Observable>\n\t): Promise {\n\t\tlet responseToken: AxiosResponse;\n\t\ttry {\n\t\t\tresponseToken = await lastValueFrom(observable);\n\t\t} catch (error) {\n\t\t\tthrow new OAuthSSOError('Requesting token failed.', 'sso_auth_code_step');\n\t\t}\n\n\t\treturn responseToken.data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthApiModule.html":{"url":"modules/OauthApiModule.html","title":"module - OauthApiModule","body":"\n \n\n\n\n\n Modules\n OauthApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthApiModule\n\n\n\ncluster_OauthApiModule_imports\n\n\n\ncluster_OauthApiModule_providers\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nOauthApiModule\n\nOauthApiModule\n\nOauthApiModule -->\n\nAuthenticationModule->OauthApiModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nOauthApiModule -->\n\nAuthorizationModule->OauthApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nOauthApiModule -->\n\nLegacySchoolModule->OauthApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthApiModule -->\n\nLoggerModule->OauthApiModule\n\n\n\n\n\nOauthModule\n\nOauthModule\n\nOauthApiModule -->\n\nOauthModule->OauthApiModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nOauthApiModule -->\n\nProvisioningModule->OauthApiModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nOauthApiModule -->\n\nSystemModule->OauthApiModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nOauthApiModule -->\n\nUserLoginMigrationModule->OauthApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthApiModule -->\n\nUserModule->OauthApiModule\n\n\n\n\n\nHydraOauthUc\n\nHydraOauthUc\n\nOauthApiModule -->\n\nHydraOauthUc->OauthApiModule\n\n\n\n\n\nOauthUc\n\nOauthUc\n\nOauthApiModule -->\n\nOauthUc->OauthApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth/oauth-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n HydraOauthUc\n \n \n OauthUc\n \n \n \n \n Controllers\n \n \n OauthSSOController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n OauthModule\n \n \n ProvisioningModule\n \n \n SystemModule\n \n \n UserLoginMigrationModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ProvisioningModule } from '@src/modules/provisioning';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { SystemModule } from '@src/modules/system';\nimport { UserModule } from '@src/modules/user';\nimport { UserLoginMigrationModule } from '@src/modules/user-login-migration';\nimport { OauthSSOController } from './controller/oauth-sso.controller';\nimport { OauthModule } from './oauth.module';\nimport { HydraOauthUc, OauthUc } from './uc';\n\n@Module({\n\timports: [\n\t\tOauthModule,\n\t\tAuthenticationModule,\n\t\tAuthorizationModule,\n\t\tProvisioningModule,\n\t\tLegacySchoolModule,\n\t\tUserLoginMigrationModule,\n\t\tSystemModule,\n\t\tUserModule,\n\t\tLoggerModule,\n\t],\n\tcontrollers: [OauthSSOController],\n\tproviders: [OauthUc, HydraOauthUc],\n})\nexport class OauthApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthClientBody.html":{"url":"classes/OauthClientBody.html","title":"class - OauthClientBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthClientBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n client_id\n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n Optional\n client_secret\n \n \n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n \n \n \n Optional\n grant_types\n \n \n \n \n \n \n Optional\n redirect_uris\n \n \n \n \n \n \n Optional\n response_types\n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n Optional\n subject_type\n \n \n \n \n \n Optional\n token_endpoint_auth_method\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n client_id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The Oauth2 client id.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n client_name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The Oauth2 client name.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n client_secret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The Oauth2 client secret.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n frontchannel_logout_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Thr frontchannel logout uri.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n grant_types\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The grant types of the Oauth2 client.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:71\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n redirect_uris\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The allowed redirect urls of the Oauth2 client.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n response_types\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsOptional()@IsString({each: true})@ApiProperty({description: 'The response types of the Oauth2 client.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:77\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'Scope is a string containing a space-separated list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting access tokens.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n subject_type\n \n \n \n \n \n \n Type : SubjectTypeEnum\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(SubjectTypeEnum)@IsOptional()@ApiProperty({description: 'SubjectType requested for responses to this Client. The subject_types_supported Discovery parameter contains a list of the supported subject_type values for this server. Valid types include pairwise and public.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n token_endpoint_auth_method\n \n \n \n \n \n \n Type : TokenAuthMethod\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(TokenAuthMethod)@IsOptional()@ApiProperty({description: 'Requested Client Authentication method for the Token Endpoint. The options are client_secret_post, client_secret_basic, private_key_jwt, and none.', required: false, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/oauth-client.body.ts:36\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsArray, IsEnum, IsOptional, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { SubjectTypeEnum } from '@src/modules/oauth-provider/interface/subject-type.enum';\nimport { TokenAuthMethod } from '@src/modules/oauth-provider/interface/token-auth-method.enum';\n\nexport class OauthClientBody {\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({ description: 'The Oauth2 client id.', required: false, nullable: false })\n\tclient_id?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({ description: 'The Oauth2 client name.', required: false, nullable: false })\n\tclient_name?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({ description: 'The Oauth2 client secret.', required: false, nullable: false })\n\tclient_secret?: string;\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The allowed redirect urls of the Oauth2 client.', required: false, nullable: false })\n\tredirect_uris?: string[];\n\n\t@IsEnum(TokenAuthMethod)\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Requested Client Authentication method for the Token Endpoint. The options are client_secret_post, client_secret_basic, private_key_jwt, and none.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\ttoken_endpoint_auth_method?: TokenAuthMethod;\n\n\t@IsEnum(SubjectTypeEnum)\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'SubjectType requested for responses to this Client. The subject_types_supported Discovery parameter contains a list of the supported subject_type values for this server. Valid types include pairwise and public.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tsubject_type?: SubjectTypeEnum;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'Scope is a string containing a space-separated list of scope values (as described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client can use when requesting access tokens.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tscope?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'Thr frontchannel logout uri.',\n\t\trequired: false,\n\t\tnullable: false,\n\t})\n\tfrontchannel_logout_uri?: string;\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The grant types of the Oauth2 client.', required: false, nullable: false })\n\tgrant_types?: string[];\n\n\t@IsArray()\n\t@IsOptional()\n\t@IsString({ each: true })\n\t@ApiProperty({ description: 'The response types of the Oauth2 client.', required: false, nullable: false })\n\tresponse_types?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthConfig.html":{"url":"classes/OauthConfig.html","title":"class - OauthConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n authEndpoint\n \n \n \n clientId\n \n \n \n clientSecret\n \n \n \n grantType\n \n \n \n Optional\n idpHint\n \n \n \n issuer\n \n \n \n jwksEndpoint\n \n \n \n logoutEndpoint\n \n \n \n provider\n \n \n \n redirectUri\n \n \n \n responseType\n \n \n \n scope\n \n \n \n tokenEndpoint\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthConfig: OauthConfig)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfig\n \n \n OauthConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n authEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n grantType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n issuer\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n \n jwksEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n logoutEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:63\n \n \n\n\n \n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n responseType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:60\n \n \n\n\n \n \n \n \n \n \n \n \n \n tokenEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:51\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthConfigDto.html":{"url":"classes/OauthConfigDto.html","title":"class - OauthConfigDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthConfigDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/dto/oauth-config.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n authEndpoint\n \n \n clientId\n \n \n clientSecret\n \n \n grantType\n \n \n Optional\n idpHint\n \n \n issuer\n \n \n jwksEndpoint\n \n \n logoutEndpoint\n \n \n provider\n \n \n redirectUri\n \n \n responseType\n \n \n scope\n \n \n tokenEndpoint\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthConfigDto: OauthConfigDto)\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfigDto\n \n \n OauthConfigDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n authEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n grantType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n issuer\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n jwksEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n logoutEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n responseType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n tokenEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oauth-config.dto.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OauthConfigDto {\n\tclientId: string;\n\n\tclientSecret: string;\n\n\tidpHint?: string;\n\n\tredirectUri: string;\n\n\tgrantType: string;\n\n\ttokenEndpoint: string;\n\n\tauthEndpoint: string;\n\n\tresponseType: string;\n\n\tscope: string;\n\n\tprovider: string;\n\n\tlogoutEndpoint: string;\n\n\tissuer: string;\n\n\tjwksEndpoint: string;\n\n\tconstructor(oauthConfigDto: OauthConfigDto) {\n\t\tthis.clientId = oauthConfigDto.clientId;\n\t\tthis.clientSecret = oauthConfigDto.clientSecret;\n\t\tthis.idpHint = oauthConfigDto.idpHint;\n\t\tthis.redirectUri = oauthConfigDto.redirectUri;\n\t\tthis.grantType = oauthConfigDto.grantType;\n\t\tthis.tokenEndpoint = oauthConfigDto.tokenEndpoint;\n\t\tthis.authEndpoint = oauthConfigDto.authEndpoint;\n\t\tthis.responseType = oauthConfigDto.responseType;\n\t\tthis.scope = oauthConfigDto.scope;\n\t\tthis.provider = oauthConfigDto.provider;\n\t\tthis.logoutEndpoint = oauthConfigDto.logoutEndpoint;\n\t\tthis.issuer = oauthConfigDto.issuer;\n\t\tthis.jwksEndpoint = oauthConfigDto.jwksEndpoint;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthConfigResponse.html":{"url":"classes/OauthConfigResponse.html","title":"class - OauthConfigResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthConfigResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/oauth-config.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n authEndpoint\n \n \n \n clientId\n \n \n \n grantType\n \n \n \n Optional\n idpHint\n \n \n \n issuer\n \n \n \n jwksEndpoint\n \n \n \n logoutEndpoint\n \n \n \n provider\n \n \n \n redirectUri\n \n \n \n responseType\n \n \n \n scope\n \n \n \n tokenEndpoint\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthConfigResponse: literal type)\n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:86\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfigResponse\n \n \n literal type\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n authEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Auth endpoint', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Client id', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n grantType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Grant type', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Hint for idp redirects (optional)', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n issuer\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Issuer', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:79\n \n \n\n\n \n \n \n \n \n \n \n \n \n jwksEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Jwks endpoint', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:86\n \n \n\n\n \n \n \n \n \n \n \n \n \n logoutEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Logout endpoint', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Provider', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n redirectUri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Redirect uri', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n responseType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Response type', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Scope', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n tokenEndpoint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Token endpoint', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/oauth-config.response.ts:37\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class OauthConfigResponse {\n\t@ApiProperty({\n\t\tdescription: 'Client id',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tclientId: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Hint for idp redirects (optional)',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tidpHint?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Redirect uri',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tredirectUri: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Grant type',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tgrantType: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Token endpoint',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttokenEndpoint: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Auth endpoint',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tauthEndpoint: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Response type',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tresponseType: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Scope',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tscope: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Provider',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tprovider: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Logout endpoint',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tlogoutEndpoint: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Issuer',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tissuer: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Jwks endpoint',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tjwksEndpoint: string;\n\n\tconstructor(oauthConfigResponse: {\n\t\tredirectUri: string;\n\t\tidpHint?: string;\n\t\ttokenEndpoint: string;\n\t\tresponseType: string;\n\t\tclientId: string;\n\t\tprovider: string;\n\t\tjwksEndpoint: string;\n\t\tauthEndpoint: string;\n\t\tscope: string;\n\t\tlogoutEndpoint: string;\n\t\tgrantType: string;\n\t\tissuer: string;\n\t}) {\n\t\tthis.clientId = oauthConfigResponse.clientId;\n\t\tthis.idpHint = oauthConfigResponse.idpHint;\n\t\tthis.redirectUri = oauthConfigResponse.redirectUri;\n\t\tthis.grantType = oauthConfigResponse.grantType;\n\t\tthis.tokenEndpoint = oauthConfigResponse.tokenEndpoint;\n\t\tthis.authEndpoint = oauthConfigResponse.authEndpoint;\n\t\tthis.responseType = oauthConfigResponse.responseType;\n\t\tthis.scope = oauthConfigResponse.scope;\n\t\tthis.provider = oauthConfigResponse.provider;\n\t\tthis.logoutEndpoint = oauthConfigResponse.logoutEndpoint;\n\t\tthis.issuer = oauthConfigResponse.issuer;\n\t\tthis.jwksEndpoint = oauthConfigResponse.jwksEndpoint;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthDataDto.html":{"url":"classes/OauthDataDto.html","title":"class - OauthDataDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthDataDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/oauth-data.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n externalGroups\n \n \n Optional\n externalSchool\n \n \n externalUser\n \n \n system\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: OauthDataDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n OauthDataDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalGroups\n \n \n \n \n \n \n Type : ExternalGroupDto[]\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n externalSchool\n \n \n \n \n \n \n Type : ExternalSchoolDto\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n externalUser\n \n \n \n \n \n \n Type : ExternalUserDto\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n Type : ProvisioningSystemDto\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data.dto.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ExternalUserDto } from './external-user.dto';\nimport { ExternalSchoolDto } from './external-school.dto';\nimport { ProvisioningSystemDto } from './provisioning-system.dto';\nimport { ExternalGroupDto } from './external-group.dto';\n\nexport class OauthDataDto {\n\tsystem: ProvisioningSystemDto;\n\n\texternalUser: ExternalUserDto;\n\n\texternalSchool?: ExternalSchoolDto;\n\n\texternalGroups?: ExternalGroupDto[];\n\n\tconstructor(props: OauthDataDto) {\n\t\tthis.system = props.system;\n\t\tthis.externalUser = props.externalUser;\n\t\tthis.externalSchool = props.externalSchool;\n\t\tthis.externalGroups = props.externalGroups;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthDataStrategyInputDto.html":{"url":"classes/OauthDataStrategyInputDto.html","title":"class - OauthDataStrategyInputDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthDataStrategyInputDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n accessToken\n \n \n idToken\n \n \n system\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: OauthDataStrategyInputDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n OauthDataStrategyInputDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n accessToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n idToken\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n system\n \n \n \n \n \n \n Type : ProvisioningSystemDto\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/oauth-data-strategy-input.dto.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ProvisioningSystemDto } from './provisioning-system.dto';\n\nexport class OauthDataStrategyInputDto {\n\taccessToken: string;\n\n\tidToken: string;\n\n\tsystem: ProvisioningSystemDto;\n\n\tconstructor(props: OauthDataStrategyInputDto) {\n\t\tthis.accessToken = props.accessToken;\n\t\tthis.idToken = props.idToken;\n\t\tthis.system = props.system;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthLoginStateDto.html":{"url":"classes/OauthLoginStateDto.html","title":"class - OauthLoginStateDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthLoginStateDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n postLoginRedirect\n \n \n provider\n \n \n state\n \n \n systemId\n \n \n userLoginMigration\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: OauthLoginStateDto)\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n OauthLoginStateDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n postLoginRedirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n provider\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n userLoginMigration\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/dto/oauth-login-state.dto.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\n\nexport class OauthLoginStateDto {\n\tstate: string;\n\n\tsystemId: EntityId;\n\n\tprovider: string;\n\n\tpostLoginRedirect?: string;\n\n\tuserLoginMigration: boolean;\n\n\tconstructor(props: OauthLoginStateDto) {\n\t\tthis.state = props.state;\n\t\tthis.systemId = props.systemId;\n\t\tthis.postLoginRedirect = props.postLoginRedirect;\n\t\tthis.provider = props.provider;\n\t\tthis.userLoginMigration = props.userLoginMigration;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthLoginStateMapper.html":{"url":"classes/OauthLoginStateMapper.html","title":"class - OauthLoginStateMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthLoginStateMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/mapper/oauth-login-state.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapSessionToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapSessionToDto\n \n \n \n \n \n \n \n mapSessionToDto(session: ISession)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/mapper/oauth-login-state.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthLoginStateDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ISession } from '@shared/domain/types/session';\nimport { OauthLoginStateDto } from '../uc/dto/oauth-login-state.dto';\n\nexport class OauthLoginStateMapper {\n\tstatic mapSessionToDto(session: ISession): OauthLoginStateDto {\n\t\tconst dto = new OauthLoginStateDto(session.oauthLoginState as OauthLoginStateDto);\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthMigrationDto.html":{"url":"classes/OauthMigrationDto.html","title":"class - OauthMigrationDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthMigrationDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n enableMigrationStart\n \n \n Optional\n oauthMigrationFinalFinish\n \n \n Optional\n oauthMigrationFinished\n \n \n Optional\n oauthMigrationMandatory\n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(params: OauthMigrationDto)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n \n OauthMigrationDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n enableMigrationStart\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinalFinish\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthMigrationFinished\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthMigrationMandatory\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthMigrationPossible\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/uc/dto/oauth-migration.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OauthMigrationDto {\n\toauthMigrationPossible?: Date;\n\n\toauthMigrationMandatory?: Date;\n\n\toauthMigrationFinished?: Date;\n\n\toauthMigrationFinalFinish?: Date;\n\n\tenableMigrationStart!: boolean;\n\n\tconstructor(params: OauthMigrationDto) {\n\t\tthis.oauthMigrationPossible = params.oauthMigrationPossible;\n\t\tthis.oauthMigrationMandatory = params.oauthMigrationMandatory;\n\t\tthis.oauthMigrationFinished = params.oauthMigrationFinished;\n\t\tthis.oauthMigrationFinalFinish = params.oauthMigrationFinalFinish;\n\t\tthis.enableMigrationStart = params.enableMigrationStart;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthModule.html":{"url":"modules/OauthModule.html","title":"module - OauthModule","body":"\n \n\n\n\n\n Modules\n OauthModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthModule\n\n\n\ncluster_OauthModule_providers\n\n\n\ncluster_OauthModule_imports\n\n\n\ncluster_OauthModule_exports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nOauthModule\n\nOauthModule\n\nOauthModule -->\n\nAuthorizationModule->OauthModule\n\n\n\n\n\nCacheWrapperModule\n\nCacheWrapperModule\n\nOauthModule -->\n\nCacheWrapperModule->OauthModule\n\n\n\n\n\nEncryptionModule\n\nEncryptionModule\n\nOauthModule -->\n\nEncryptionModule->OauthModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nOauthModule -->\n\nLegacySchoolModule->OauthModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthModule -->\n\nLoggerModule->OauthModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nOauthModule -->\n\nProvisioningModule->OauthModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nOauthModule -->\n\nSystemModule->OauthModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nOauthModule -->\n\nUserLoginMigrationModule->OauthModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthModule -->\n\nUserModule->OauthModule\n\n\n\n\n\nHydraSsoService \n\nHydraSsoService \n\nHydraSsoService -->\n\nOauthModule->HydraSsoService \n\n\n\n\n\nOAuthService \n\nOAuthService \n\nOAuthService -->\n\nOauthModule->OAuthService \n\n\n\n\n\nHydraSsoService\n\nHydraSsoService\n\nOauthModule -->\n\nHydraSsoService->OauthModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nOauthModule -->\n\nLtiToolRepo->OauthModule\n\n\n\n\n\nOAuthService\n\nOAuthService\n\nOauthModule -->\n\nOAuthService->OauthModule\n\n\n\n\n\nOauthAdapterService\n\nOauthAdapterService\n\nOauthModule -->\n\nOauthAdapterService->OauthModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth/oauth.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n HydraSsoService\n \n \n LtiToolRepo\n \n \n OAuthService\n \n \n OauthAdapterService\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CacheWrapperModule\n \n \n EncryptionModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n ProvisioningModule\n \n \n SystemModule\n \n \n UserLoginMigrationModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n HydraSsoService\n \n \n OAuthService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { CacheWrapperModule } from '@shared/infra/cache';\nimport { EncryptionModule } from '@shared/infra/encryption';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ProvisioningModule } from '@src/modules/provisioning';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { SystemModule } from '@src/modules/system';\nimport { UserModule } from '@src/modules/user';\nimport { UserLoginMigrationModule } from '@src/modules/user-login-migration';\nimport { HydraSsoService } from './service/hydra.service';\nimport { OauthAdapterService } from './service/oauth-adapter.service';\nimport { OAuthService } from './service/oauth.service';\n\n@Module({\n\timports: [\n\t\tLoggerModule,\n\t\tAuthorizationModule,\n\t\tHttpModule,\n\t\tEncryptionModule,\n\t\tUserModule,\n\t\tProvisioningModule,\n\t\tSystemModule,\n\t\tUserLoginMigrationModule,\n\t\tCacheWrapperModule,\n\t\tLegacySchoolModule,\n\t],\n\tproviders: [OAuthService, OauthAdapterService, HydraSsoService, LtiToolRepo],\n\texports: [OAuthService, HydraSsoService],\n})\nexport class OauthModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthProviderApiModule.html":{"url":"modules/OauthProviderApiModule.html","title":"module - OauthProviderApiModule","body":"\n \n\n\n\n\n Modules\n OauthProviderApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthProviderApiModule\n\n\n\ncluster_OauthProviderApiModule_imports\n\n\n\ncluster_OauthProviderApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nOauthProviderApiModule\n\nOauthProviderApiModule\n\nOauthProviderApiModule -->\n\nAuthorizationModule->OauthProviderApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nOauthProviderApiModule -->\n\nLoggerModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderModule\n\nOauthProviderModule\n\nOauthProviderApiModule -->\n\nOauthProviderModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nOauthProviderApiModule -->\n\nOauthProviderServiceModule->OauthProviderApiModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nOauthProviderApiModule -->\n\nPseudonymModule->OauthProviderApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthProviderApiModule -->\n\nUserModule->OauthProviderApiModule\n\n\n\n\n\nOauthProviderClientCrudUc\n\nOauthProviderClientCrudUc\n\nOauthProviderApiModule -->\n\nOauthProviderClientCrudUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderConsentFlowUc\n\nOauthProviderConsentFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderConsentFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderLoginFlowUc\n\nOauthProviderLoginFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderLoginFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderLogoutFlowUc\n\nOauthProviderLogoutFlowUc\n\nOauthProviderApiModule -->\n\nOauthProviderLogoutFlowUc->OauthProviderApiModule\n\n\n\n\n\nOauthProviderResponseMapper\n\nOauthProviderResponseMapper\n\nOauthProviderApiModule -->\n\nOauthProviderResponseMapper->OauthProviderApiModule\n\n\n\n\n\nOauthProviderUc\n\nOauthProviderUc\n\nOauthProviderApiModule -->\n\nOauthProviderUc->OauthProviderApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth-provider/oauth-provider-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n OauthProviderClientCrudUc\n \n \n OauthProviderConsentFlowUc\n \n \n OauthProviderLoginFlowUc\n \n \n OauthProviderLogoutFlowUc\n \n \n OauthProviderResponseMapper\n \n \n OauthProviderUc\n \n \n \n \n Controllers\n \n \n OauthProviderController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LoggerModule\n \n \n OauthProviderModule\n \n \n OauthProviderServiceModule\n \n \n PseudonymModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { OauthProviderServiceModule } from '@shared/infra/oauth-provider';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { PseudonymModule } from '@src/modules/pseudonym';\nimport { UserModule } from '@src/modules/user';\nimport { OauthProviderController } from './controller/oauth-provider.controller';\nimport { OauthProviderResponseMapper } from './mapper/oauth-provider-response.mapper';\nimport { OauthProviderModule } from './oauth-provider.module';\nimport {\n\tOauthProviderClientCrudUc,\n\tOauthProviderConsentFlowUc,\n\tOauthProviderLoginFlowUc,\n\tOauthProviderLogoutFlowUc,\n\tOauthProviderUc,\n} from './uc';\n\n@Module({\n\timports: [\n\t\tOauthProviderServiceModule,\n\t\tOauthProviderModule,\n\t\tPseudonymModule,\n\t\tLoggerModule,\n\t\tAuthorizationModule,\n\t\tUserModule,\n\t],\n\tproviders: [\n\t\tOauthProviderUc,\n\t\tOauthProviderClientCrudUc,\n\t\tOauthProviderConsentFlowUc,\n\t\tOauthProviderLogoutFlowUc,\n\t\tOauthProviderLoginFlowUc,\n\t\tOauthProviderResponseMapper,\n\t],\n\tcontrollers: [OauthProviderController],\n})\nexport class OauthProviderApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderClientCrudUc.html":{"url":"injectables/OauthProviderClientCrudUc.html","title":"injectable - OauthProviderClientCrudUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderClientCrudUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n defaultOauthClientBody\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createOAuth2Client\n \n \n Async\n deleteOAuth2Client\n \n \n Async\n getOAuth2Client\n \n \n Async\n listOAuth2Clients\n \n \n Async\n updateOAuth2Client\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createOAuth2Client\n \n \n \n \n \n \n \n createOAuth2Client(currentUser: ICurrentUser, data: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteOAuth2Client\n \n \n \n \n \n \n \n deleteOAuth2Client(currentUser: ICurrentUser, id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getOAuth2Client\n \n \n \n \n \n \n \n getOAuth2Client(currentUser: ICurrentUser, id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listOAuth2Clients\n \n \n \n \n \n \n \n listOAuth2Clients(currentUser: ICurrentUser, limit?: number, offset?: number, client_name?: string, owner?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n offset\n \n number\n \n\n \n Yes\n \n\n\n \n \n client_name\n \n string\n \n\n \n Yes\n \n\n\n \n \n owner\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateOAuth2Client\n \n \n \n \n \n \n \n updateOAuth2Client(currentUser: ICurrentUser, id: string, data: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n defaultOauthClientBody\n \n \n \n \n \n \n Type : ProviderOauthClient\n\n \n \n \n \n Default value : {\n\t\tscope: 'openid offline',\n\t\tgrant_types: ['authorization_code', 'refresh_token'],\n\t\tresponse_types: ['code', 'token', 'id_token'],\n\t\tredirect_uris: [],\n\t}\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.client-crud.uc.ts:15\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { OauthProviderService } from '@shared/infra/oauth-provider/index';\nimport { Permission, User } from '@shared/domain/index';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { ProviderOauthClient } from '@shared/infra/oauth-provider/dto';\nimport { ICurrentUser } from '@src/modules/authentication';\n\n@Injectable()\nexport class OauthProviderClientCrudUc {\n\tconstructor(\n\t\tprivate readonly oauthProviderService: OauthProviderService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tprivate readonly defaultOauthClientBody: ProviderOauthClient = {\n\t\tscope: 'openid offline',\n\t\tgrant_types: ['authorization_code', 'refresh_token'],\n\t\tresponse_types: ['code', 'token', 'id_token'],\n\t\tredirect_uris: [],\n\t};\n\n\tasync listOAuth2Clients(\n\t\tcurrentUser: ICurrentUser,\n\t\tlimit?: number,\n\t\toffset?: number,\n\t\tclient_name?: string,\n\t\towner?: string\n\t): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_VIEW]);\n\n\t\tconst client: ProviderOauthClient[] = await this.oauthProviderService.listOAuth2Clients(\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tclient_name,\n\t\t\towner\n\t\t);\n\t\treturn client;\n\t}\n\n\tasync getOAuth2Client(currentUser: ICurrentUser, id: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_VIEW]);\n\n\t\tconst client: ProviderOauthClient = await this.oauthProviderService.getOAuth2Client(id);\n\n\t\treturn client;\n\t}\n\n\tasync createOAuth2Client(currentUser: ICurrentUser, data: ProviderOauthClient): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_EDIT]);\n\n\t\tconst dataWithDefaults: ProviderOauthClient = { ...this.defaultOauthClientBody, ...data };\n\t\tconst client: ProviderOauthClient = await this.oauthProviderService.createOAuth2Client(dataWithDefaults);\n\t\treturn client;\n\t}\n\n\tasync updateOAuth2Client(\n\t\tcurrentUser: ICurrentUser,\n\t\tid: string,\n\t\tdata: ProviderOauthClient\n\t): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_EDIT]);\n\n\t\tconst dataWithDefaults: ProviderOauthClient = { ...this.defaultOauthClientBody, ...data };\n\t\tconst client: ProviderOauthClient = await this.oauthProviderService.updateOAuth2Client(id, dataWithDefaults);\n\t\treturn client;\n\t}\n\n\tasync deleteOAuth2Client(currentUser: ICurrentUser, id: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUser.userId);\n\t\tthis.authorizationService.checkAllPermissions(user, [Permission.OAUTH_CLIENT_EDIT]);\n\n\t\treturn this.oauthProviderService.deleteOAuth2Client(id);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderConsentFlowUc.html":{"url":"injectables/OauthProviderConsentFlowUc.html","title":"injectable - OauthProviderConsentFlowUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderConsentFlowUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n acceptConsentRequest\n \n \n Async\n getConsentRequest\n \n \n Async\n patchConsentRequest\n \n \n Private\n rejectConsentRequest\n \n \n Private\n validateSubject\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService, idTokenService: IdTokenService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n idTokenService\n \n \n IdTokenService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n acceptConsentRequest\n \n \n \n \n \n \n \n acceptConsentRequest(challenge: string, body: AcceptConsentRequestBody, userId: string, requested_scope: string[] | undefined, client_id: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptConsentRequestBody\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n requested_scope\n \n string[] | undefined\n \n\n \n No\n \n\n\n \n \n client_id\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getConsentRequest\n \n \n \n \n \n \n \n getConsentRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchConsentRequest\n \n \n \n \n \n \n \n patchConsentRequest(challenge: string, query: AcceptQuery, body: ConsentRequestBody, currentUser: ICurrentUser)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n query\n \n AcceptQuery\n \n\n \n No\n \n\n\n \n \n body\n \n ConsentRequestBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n rejectConsentRequest\n \n \n \n \n \n \n \n rejectConsentRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n validateSubject\n \n \n \n \n \n \n \n validateSubject(currentUser: ICurrentUser, response: ProviderConsentResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n response\n \n ProviderConsentResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import {\n\tAcceptConsentRequestBody,\n\tProviderConsentResponse,\n\tProviderRedirectResponse,\n\tRejectRequestBody,\n} from '@shared/infra/oauth-provider/dto';\nimport { AcceptQuery, ConsentRequestBody } from '@src/modules/oauth-provider/controller/dto';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { ForbiddenException, Injectable } from '@nestjs/common';\nimport { IdTokenService } from '@src/modules/oauth-provider/service/id-token.service';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { IdToken } from '@src/modules/oauth-provider/interface/id-token';\n\n@Injectable()\nexport class OauthProviderConsentFlowUc {\n\tconstructor(\n\t\tprivate readonly oauthProviderService: OauthProviderService,\n\t\tprivate readonly idTokenService: IdTokenService\n\t) {}\n\n\tasync getConsentRequest(challenge: string): Promise {\n\t\tconst consentResponse: ProviderConsentResponse = await this.oauthProviderService.getConsentRequest(challenge);\n\t\treturn consentResponse;\n\t}\n\n\tasync patchConsentRequest(\n\t\tchallenge: string,\n\t\tquery: AcceptQuery,\n\t\tbody: ConsentRequestBody,\n\t\tcurrentUser: ICurrentUser\n\t): Promise {\n\t\tconst consentResponse = await this.oauthProviderService.getConsentRequest(challenge);\n\t\tthis.validateSubject(currentUser, consentResponse);\n\n\t\tlet response: Promise;\n\t\tif (query.accept) {\n\t\t\tresponse = this.acceptConsentRequest(\n\t\t\t\tchallenge,\n\t\t\t\tbody,\n\t\t\t\tcurrentUser.userId,\n\t\t\t\tconsentResponse.requested_scope,\n\t\t\t\tconsentResponse.client?.client_id\n\t\t\t);\n\t\t} else {\n\t\t\tresponse = this.rejectConsentRequest(challenge, body);\n\t\t}\n\t\treturn response;\n\t}\n\n\tprivate rejectConsentRequest(challenge: string, body: RejectRequestBody): Promise {\n\t\tconst redirectResponse: Promise = this.oauthProviderService.rejectConsentRequest(\n\t\t\tchallenge,\n\t\t\tbody\n\t\t);\n\t\treturn redirectResponse;\n\t}\n\n\tprivate async acceptConsentRequest(\n\t\tchallenge: string,\n\t\tbody: AcceptConsentRequestBody,\n\t\tuserId: string,\n\t\trequested_scope: string[] | undefined,\n\t\tclient_id: string | undefined\n\t): Promise {\n\t\tconst idToken: IdToken = await this.idTokenService.createIdToken(userId, requested_scope || [], client_id || '');\n\t\tif (idToken) {\n\t\t\tbody.session = {\n\t\t\t\tid_token: idToken,\n\t\t\t};\n\t\t}\n\n\t\tconst redirectResponse: ProviderRedirectResponse = await this.oauthProviderService.acceptConsentRequest(\n\t\t\tchallenge,\n\t\t\tbody\n\t\t);\n\n\t\treturn redirectResponse;\n\t}\n\n\tprivate validateSubject(currentUser: ICurrentUser, response: ProviderConsentResponse): void {\n\t\tif (response.subject !== currentUser.userId) {\n\t\t\tthrow new ForbiddenException(\"You want to patch another user's consent\");\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/OauthProviderController.html":{"url":"controllers/OauthProviderController.html","title":"controller - OauthProviderController","body":"\n \n\n\n\n\n\n\n Controllers\n OauthProviderController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts\n \n\n \n Prefix\n \n \n oauth2\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n acceptLogoutRequest\n \n \n \n \n Async\n createOAuth2Client\n \n \n \n \n deleteOAuth2Client\n \n \n \n \n Async\n getConsentRequest\n \n \n \n Async\n getLoginRequest\n \n \n \n \n Async\n getOAuth2Client\n \n \n \n getUrl\n \n \n \n \n Async\n listConsentSessions\n \n \n \n \n Async\n listOAuth2Clients\n \n \n \n \n Async\n patchConsentRequest\n \n \n \n \n Async\n patchLoginRequest\n \n \n \n \n revokeConsentSession\n \n \n \n \n Async\n updateOAuth2Client\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n acceptLogoutRequest\n \n \n \n \n \n \n \n acceptLogoutRequest(params: ChallengeParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Patch('logoutRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:135\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createOAuth2Client\n \n \n \n \n \n \n \n createOAuth2Client(currentUser: ICurrentUser, body: OauthClientBody)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Post('clients')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n OauthClientBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n deleteOAuth2Client\n \n \n \n \n \n \n \n deleteOAuth2Client(currentUser: ICurrentUser, params: IdParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Delete('clients/:id')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n IdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getConsentRequest\n \n \n \n \n \n \n \n getConsentRequest(params: ChallengeParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Get('consentRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:143\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getLoginRequest\n \n \n \n \n \n \n \n getLoginRequest(params: ChallengeParams)\n \n \n\n \n \n Decorators : \n \n @Get('loginRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:109\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getOAuth2Client\n \n \n \n \n \n \n \n getOAuth2Client(currentUser: ICurrentUser, params: IdParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Get('clients/:id')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n IdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getUrl\n \n \n \n \n \n \n \n getUrl()\n \n \n\n \n \n Decorators : \n \n @Get('baseUrl')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:188\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listConsentSessions\n \n \n \n \n \n \n \n listConsentSessions(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Get('auth/sessions/consent')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:169\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n listOAuth2Clients\n \n \n \n \n \n \n \n listOAuth2Clients(currentUser: ICurrentUser, params: ListOauthClientsParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Get('clients')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ListOauthClientsParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchConsentRequest\n \n \n \n \n \n \n \n patchConsentRequest(params: ChallengeParams, query: AcceptQuery, body: ConsentRequestBody, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Patch('consentRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:151\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n query\n \n AcceptQuery\n \n\n \n No\n \n\n\n \n \n body\n \n ConsentRequestBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchLoginRequest\n \n \n \n \n \n \n \n patchLoginRequest(params: ChallengeParams, query: AcceptQuery, body: LoginRequestBody, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Patch('loginRequest/:challenge')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:117\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChallengeParams\n \n\n \n No\n \n\n\n \n \n query\n \n AcceptQuery\n \n\n \n No\n \n\n\n \n \n body\n \n LoginRequestBody\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n revokeConsentSession\n \n \n \n \n \n \n \n revokeConsentSession(currentUser: ICurrentUser, params: RevokeConsentParams)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Delete('auth/sessions/consent')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:182\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n RevokeConsentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateOAuth2Client\n \n \n \n \n \n \n \n updateOAuth2Client(currentUser: ICurrentUser, params: IdParams, body: OauthClientBody)\n \n \n\n \n \n Decorators : \n \n @Authenticate('jwt')@Put('clients/:id')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth-provider/controller/oauth-provider.controller.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n IdParams\n \n\n \n No\n \n\n\n \n \n body\n \n OauthClientBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Body, Controller, Delete, Get, Param, Patch, Post, Put, Query } from '@nestjs/common';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { OauthProviderLogoutFlowUc } from '@src/modules/oauth-provider/uc/oauth-provider.logout-flow.uc';\nimport { OauthProviderLoginFlowUc } from '@src/modules/oauth-provider/uc/oauth-provider.login-flow.uc';\nimport { OauthProviderResponseMapper } from '@src/modules/oauth-provider/mapper/oauth-provider-response.mapper';\nimport { OauthProviderConsentFlowUc } from '@src/modules/oauth-provider/uc/oauth-provider.consent-flow.uc';\nimport {\n\tProviderConsentResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n} from '@shared/infra/oauth-provider/dto';\nimport { ConsentResponse } from '@src/modules/oauth-provider/controller/dto/response/consent.response';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { OauthProviderClientCrudUc } from '@src/modules/oauth-provider/uc/oauth-provider.client-crud.uc';\nimport { RedirectResponse } from '@src/modules/oauth-provider/controller/dto/response/redirect.response';\nimport { ProviderConsentSessionResponse } from '@shared/infra/oauth-provider/dto/response/consent-session.response';\nimport { ApiTags } from '@nestjs/swagger';\nimport { OauthProviderUc } from '../uc/oauth-provider.uc';\nimport {\n\tAcceptQuery,\n\tChallengeParams,\n\tConsentRequestBody,\n\tConsentSessionResponse,\n\tIdParams,\n\tListOauthClientsParams,\n\tLoginRequestBody,\n\tLoginResponse,\n\tOauthClientBody,\n\tOauthClientResponse,\n\tRevokeConsentParams,\n} from './dto';\n\n@Controller('oauth2')\n@ApiTags('Oauth2')\nexport class OauthProviderController {\n\tconstructor(\n\t\tprivate readonly consentFlowUc: OauthProviderConsentFlowUc,\n\t\tprivate readonly logoutFlowUc: OauthProviderLogoutFlowUc,\n\t\tprivate readonly crudUc: OauthProviderClientCrudUc,\n\t\tprivate readonly oauthProviderUc: OauthProviderUc,\n\t\tprivate readonly oauthProviderLoginFlowUc: OauthProviderLoginFlowUc,\n\t\tprivate readonly oauthProviderResponseMapper: OauthProviderResponseMapper\n\t) {}\n\n\t@Authenticate('jwt')\n\t@Get('clients/:id')\n\tasync getOAuth2Client(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: IdParams\n\t): Promise {\n\t\tconst client: ProviderOauthClient = await this.crudUc.getOAuth2Client(currentUser, params.id);\n\t\tconst mapped: OauthClientResponse = this.oauthProviderResponseMapper.mapOauthClientResponse(client);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Get('clients')\n\tasync listOAuth2Clients(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ListOauthClientsParams\n\t): Promise {\n\t\tconst clients: ProviderOauthClient[] = await this.crudUc.listOAuth2Clients(\n\t\t\tcurrentUser,\n\t\t\tparams.limit,\n\t\t\tparams.offset,\n\t\t\tparams.client_name,\n\t\t\tparams.owner\n\t\t);\n\t\tconst mapped: OauthClientResponse[] = clients.map(\n\t\t\t(client: ProviderOauthClient): OauthClientResponse =>\n\t\t\t\tthis.oauthProviderResponseMapper.mapOauthClientResponse(client)\n\t\t);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Post('clients')\n\tasync createOAuth2Client(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: OauthClientBody\n\t): Promise {\n\t\tconst client: ProviderOauthClient = await this.crudUc.createOAuth2Client(currentUser, body);\n\t\tconst mapped: OauthClientResponse = this.oauthProviderResponseMapper.mapOauthClientResponse(client);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Put('clients/:id')\n\tasync updateOAuth2Client(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: IdParams,\n\t\t@Body() body: OauthClientBody\n\t): Promise {\n\t\tconst client: ProviderOauthClient = await this.crudUc.updateOAuth2Client(currentUser, params.id, body);\n\t\tconst mapped: OauthClientResponse = this.oauthProviderResponseMapper.mapOauthClientResponse(client);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Delete('clients/:id')\n\tdeleteOAuth2Client(@CurrentUser() currentUser: ICurrentUser, @Param() params: IdParams): Promise {\n\t\tconst promise: Promise = this.crudUc.deleteOAuth2Client(currentUser, params.id);\n\t\treturn promise;\n\t}\n\n\t@Get('loginRequest/:challenge')\n\tasync getLoginRequest(@Param() params: ChallengeParams): Promise {\n\t\tconst loginResponse: ProviderLoginResponse = await this.oauthProviderLoginFlowUc.getLoginRequest(params.challenge);\n\t\tconst mapped: LoginResponse = this.oauthProviderResponseMapper.mapLoginResponse(loginResponse);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Patch('loginRequest/:challenge')\n\tasync patchLoginRequest(\n\t\t@Param() params: ChallengeParams,\n\t\t@Query() query: AcceptQuery,\n\t\t@Body() body: LoginRequestBody,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst redirectResponse: ProviderRedirectResponse = await this.oauthProviderLoginFlowUc.patchLoginRequest(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.challenge,\n\t\t\tbody,\n\t\t\tquery\n\t\t);\n\t\tconst mapped: RedirectResponse = this.oauthProviderResponseMapper.mapRedirectResponse(redirectResponse);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Patch('logoutRequest/:challenge')\n\tasync acceptLogoutRequest(@Param() params: ChallengeParams): Promise {\n\t\tconst redirect: ProviderRedirectResponse = await this.logoutFlowUc.logoutFlow(params.challenge);\n\t\tconst mapped: RedirectResponse = this.oauthProviderResponseMapper.mapRedirectResponse(redirect);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Get('consentRequest/:challenge')\n\tasync getConsentRequest(@Param() params: ChallengeParams): Promise {\n\t\tconst consentRequest: ProviderConsentResponse = await this.consentFlowUc.getConsentRequest(params.challenge);\n\t\tconst mapped: ConsentResponse = this.oauthProviderResponseMapper.mapConsentResponse(consentRequest);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Patch('consentRequest/:challenge')\n\tasync patchConsentRequest(\n\t\t@Param() params: ChallengeParams,\n\t\t@Query() query: AcceptQuery,\n\t\t@Body() body: ConsentRequestBody,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst redirectResponse: ProviderRedirectResponse = await this.consentFlowUc.patchConsentRequest(\n\t\t\tparams.challenge,\n\t\t\tquery,\n\t\t\tbody,\n\t\t\tcurrentUser\n\t\t);\n\t\tconst response: RedirectResponse = this.oauthProviderResponseMapper.mapRedirectResponse(redirectResponse);\n\t\treturn response;\n\t}\n\n\t@Authenticate('jwt')\n\t@Get('auth/sessions/consent')\n\tasync listConsentSessions(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst sessions: ProviderConsentSessionResponse[] = await this.oauthProviderUc.listConsentSessions(\n\t\t\tcurrentUser.userId\n\t\t);\n\t\tconst mapped: ConsentSessionResponse[] = sessions.map(\n\t\t\t(session: ProviderConsentSessionResponse): ConsentSessionResponse =>\n\t\t\t\tthis.oauthProviderResponseMapper.mapConsentSessionsToResponse(session)\n\t\t);\n\t\treturn mapped;\n\t}\n\n\t@Authenticate('jwt')\n\t@Delete('auth/sessions/consent')\n\trevokeConsentSession(@CurrentUser() currentUser: ICurrentUser, @Param() params: RevokeConsentParams): Promise {\n\t\tconst promise: Promise = this.oauthProviderUc.revokeConsentSession(currentUser.userId, params.client);\n\t\treturn promise;\n\t}\n\n\t@Get('baseUrl')\n\tgetUrl(): Promise {\n\t\treturn Promise.resolve(Configuration.get('HYDRA_URI') as string);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderLoginFlowService.html":{"url":"injectables/OauthProviderLoginFlowService.html","title":"injectable - OauthProviderLoginFlowService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderLoginFlowService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/service/oauth-provider.login-flow.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n findToolByClientId\n \n \n Public\n isNextcloudTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(ltiToolService: LtiToolService, externalToolService: ExternalToolService, toolFeatures: IToolFeatures)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/service/oauth-provider.login-flow.service.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n ltiToolService\n \n \n LtiToolService\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n toolFeatures\n \n \n IToolFeatures\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n findToolByClientId\n \n \n \n \n \n \n \n findToolByClientId(clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/oauth-provider.login-flow.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isNextcloudTool\n \n \n \n \n \n \n \n isNextcloudTool(tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/service/oauth-provider.login-flow.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject } from '@nestjs/common';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { NotFoundException } from '@nestjs/common/exceptions/not-found.exception';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { LtiToolService } from '@src/modules/lti-tool/service';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { ExternalToolService } from '@src/modules/tool/external-tool/service';\nimport { IToolFeatures, ToolFeatures } from '@src/modules/tool/tool-config';\n\n@Injectable()\nexport class OauthProviderLoginFlowService {\n\tconstructor(\n\t\tprivate readonly ltiToolService: LtiToolService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\t@Inject(ToolFeatures) private readonly toolFeatures: IToolFeatures\n\t) {}\n\n\tpublic async findToolByClientId(clientId: string): Promise {\n\t\tif (this.toolFeatures.ctlToolsTabEnabled) {\n\t\t\tconst externalTool: ExternalTool | null = await this.externalToolService.findExternalToolByOAuth2ConfigClientId(\n\t\t\t\tclientId\n\t\t\t);\n\n\t\t\tif (externalTool) {\n\t\t\t\treturn externalTool;\n\t\t\t}\n\t\t}\n\n\t\tconst ltiTool: LtiToolDO | null = await this.ltiToolService.findByClientIdAndIsLocal(clientId, true);\n\n\t\tif (ltiTool) {\n\t\t\treturn ltiTool;\n\t\t}\n\n\t\tthrow new NotFoundException(`Unable to find ExternalTool or LtiTool for clientId: ${clientId}`);\n\t}\n\n\t// TODO N21-91. Magic Strings are not desireable\n\tpublic isNextcloudTool(tool: ExternalTool | LtiToolDO): boolean {\n\t\tconst isNextcloud: boolean = tool.name === 'SchulcloudNextcloud';\n\n\t\treturn isNextcloud;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderLoginFlowUc.html":{"url":"injectables/OauthProviderLoginFlowUc.html","title":"injectable - OauthProviderLoginFlowUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderLoginFlowUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n acceptLoginRequest\n \n \n Async\n getLoginRequest\n \n \n Async\n patchLoginRequest\n \n \n Private\n Async\n rejectLoginRequest\n \n \n Private\n shouldSkipConsent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService, oauthProviderLoginFlowService: OauthProviderLoginFlowService, pseudonymService: PseudonymService, authorizationService: AuthorizationService, userService: UserService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n oauthProviderLoginFlowService\n \n \n OauthProviderLoginFlowService\n \n \n \n No\n \n \n \n \n pseudonymService\n \n \n PseudonymService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n acceptLoginRequest\n \n \n \n \n \n \n \n acceptLoginRequest(currentUserId: string, challenge: string, loginRequestBody: LoginRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n loginRequestBody\n \n LoginRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getLoginRequest\n \n \n \n \n \n \n \n getLoginRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchLoginRequest\n \n \n \n \n \n \n \n patchLoginRequest(currentUserId: string, challenge: string, body: LoginRequestBody, query: AcceptQuery)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n LoginRequestBody\n \n\n \n No\n \n\n\n \n \n query\n \n AcceptQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n rejectLoginRequest\n \n \n \n \n \n \n \n rejectLoginRequest(challenge: string, rejectRequestBody: OAuthRejectableBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n rejectRequestBody\n \n OAuthRejectableBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n shouldSkipConsent\n \n \n \n \n \n \n \n shouldSkipConsent(tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.login-flow.uc.ts:94\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException, UnprocessableEntityException } from '@nestjs/common';\nimport { Permission, Pseudonym, User, UserDO } from '@shared/domain';\nimport { LtiToolDO } from '@shared/domain/domainobject/ltitool.do';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport {\n\tAcceptLoginRequestBody,\n\tProviderLoginResponse,\n\tProviderRedirectResponse,\n} from '@shared/infra/oauth-provider/dto';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { AcceptQuery, LoginRequestBody, OAuthRejectableBody } from '@src/modules/oauth-provider/controller/dto';\nimport { OauthProviderRequestMapper } from '@src/modules/oauth-provider/mapper/oauth-provider-request.mapper';\nimport { PseudonymService } from '@src/modules/pseudonym/service';\nimport { ExternalTool, Oauth2ToolConfig } from '@src/modules/tool/external-tool/domain';\nimport { UserService } from '@src/modules/user';\nimport { OauthProviderLoginFlowService } from '../service/oauth-provider.login-flow.service';\n\n@Injectable()\nexport class OauthProviderLoginFlowUc {\n\tconstructor(\n\t\tprivate readonly oauthProviderService: OauthProviderService,\n\t\tprivate readonly oauthProviderLoginFlowService: OauthProviderLoginFlowService,\n\t\tprivate readonly pseudonymService: PseudonymService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly userService: UserService\n\t) {}\n\n\tasync getLoginRequest(challenge: string): Promise {\n\t\tconst loginResponse: Promise = this.oauthProviderService.getLoginRequest(challenge);\n\t\treturn loginResponse;\n\t}\n\n\tasync patchLoginRequest(\n\t\tcurrentUserId: string,\n\t\tchallenge: string,\n\t\tbody: LoginRequestBody,\n\t\tquery: AcceptQuery\n\t): Promise {\n\t\tlet redirectResponse: ProviderRedirectResponse;\n\t\tif (query.accept) {\n\t\t\tredirectResponse = await this.acceptLoginRequest(currentUserId, challenge, body);\n\t\t} else {\n\t\t\tredirectResponse = await this.rejectLoginRequest(challenge, body);\n\t\t}\n\t\treturn redirectResponse;\n\t}\n\n\tprivate async acceptLoginRequest(\n\t\tcurrentUserId: string,\n\t\tchallenge: string,\n\t\tloginRequestBody: LoginRequestBody\n\t): Promise {\n\t\tconst loginResponse: ProviderLoginResponse = await this.oauthProviderService.getLoginRequest(challenge);\n\n\t\tif (!loginResponse.client.client_id) {\n\t\t\tthrow new InternalServerErrorException(`Cannot find oAuthClientId in login response for challenge: ${challenge}`);\n\t\t}\n\n\t\tconst tool: ExternalTool | LtiToolDO = await this.oauthProviderLoginFlowService.findToolByClientId(\n\t\t\tloginResponse.client.client_id\n\t\t);\n\n\t\tif (!tool.id) {\n\t\t\tthrow new InternalServerErrorException('Tool has no id');\n\t\t}\n\n\t\tif (this.oauthProviderLoginFlowService.isNextcloudTool(tool)) {\n\t\t\tconst user: User = await this.authorizationService.getUserWithPermissions(currentUserId);\n\t\t\tthis.authorizationService.checkAllPermissions(user, [Permission.NEXTCLOUD_USER]);\n\t\t}\n\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\t\tconst pseudonym: Pseudonym = await this.pseudonymService.findOrCreatePseudonym(user, tool);\n\n\t\tconst skipConsent: boolean = this.shouldSkipConsent(tool);\n\n\t\tconst acceptLoginRequestBody: AcceptLoginRequestBody = OauthProviderRequestMapper.mapCreateAcceptLoginRequestBody(\n\t\t\tloginRequestBody,\n\t\t\tcurrentUserId,\n\t\t\tpseudonym.pseudonym,\n\t\t\t{\n\t\t\t\tskipConsent,\n\t\t\t}\n\t\t);\n\n\t\tconst redirectResponse: ProviderRedirectResponse = await this.oauthProviderService.acceptLoginRequest(\n\t\t\tloginResponse.challenge,\n\t\t\tacceptLoginRequestBody\n\t\t);\n\n\t\treturn redirectResponse;\n\t}\n\n\tprivate shouldSkipConsent(tool: ExternalTool | LtiToolDO): boolean {\n\t\tif (tool instanceof LtiToolDO) {\n\t\t\treturn !!tool.skipConsent;\n\t\t}\n\t\tif (tool.config instanceof Oauth2ToolConfig) {\n\t\t\treturn tool.config.skipConsent;\n\t\t}\n\t\tthrow new UnprocessableEntityException(\n\t\t\t`Cannot use Tool ${tool.name} for OAuth2 login, since it is not a LtiTool or OAuth2-ExternalTool`\n\t\t);\n\t}\n\n\tprivate async rejectLoginRequest(\n\t\tchallenge: string,\n\t\trejectRequestBody: OAuthRejectableBody\n\t): Promise {\n\t\tconst redirectResponse: Promise = this.oauthProviderService.rejectLoginRequest(\n\t\t\tchallenge,\n\t\t\trejectRequestBody\n\t\t);\n\t\treturn redirectResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderLogoutFlowUc.html":{"url":"injectables/OauthProviderLogoutFlowUc.html","title":"injectable - OauthProviderLogoutFlowUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderLogoutFlowUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.logout-flow.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n logoutFlow\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.logout-flow.uc.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n logoutFlow\n \n \n \n \n \n \nlogoutFlow(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.logout-flow.uc.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { ProviderRedirectResponse } from '@shared/infra/oauth-provider/dto';\n\n@Injectable()\nexport class OauthProviderLogoutFlowUc {\n\tconstructor(private readonly oauthProviderService: OauthProviderService) {}\n\n\tlogoutFlow(challenge: string): Promise {\n\t\tconst logoutResponse: Promise = this.oauthProviderService.acceptLogoutRequest(challenge);\n\t\treturn logoutResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthProviderModule.html":{"url":"modules/OauthProviderModule.html","title":"module - OauthProviderModule","body":"\n \n\n\n\n\n Modules\n OauthProviderModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthProviderModule\n\n\n\ncluster_OauthProviderModule_exports\n\n\n\ncluster_OauthProviderModule_imports\n\n\n\ncluster_OauthProviderModule_providers\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nOauthProviderModule\n\nOauthProviderModule\n\nOauthProviderModule -->\n\nLoggerModule->OauthProviderModule\n\n\n\n\n\nLtiToolModule\n\nLtiToolModule\n\nOauthProviderModule -->\n\nLtiToolModule->OauthProviderModule\n\n\n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nOauthProviderModule -->\n\nOauthProviderServiceModule->OauthProviderModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nOauthProviderModule -->\n\nPseudonymModule->OauthProviderModule\n\n\n\n\n\nToolConfigModule\n\nToolConfigModule\n\nOauthProviderModule -->\n\nToolConfigModule->OauthProviderModule\n\n\n\n\n\nToolModule\n\nToolModule\n\nOauthProviderModule -->\n\nToolModule->OauthProviderModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nOauthProviderModule -->\n\nUserModule->OauthProviderModule\n\n\n\n\n\nIdTokenService \n\nIdTokenService \n\nIdTokenService -->\n\nOauthProviderModule->IdTokenService \n\n\n\n\n\nOauthProviderLoginFlowService \n\nOauthProviderLoginFlowService \n\nOauthProviderLoginFlowService -->\n\nOauthProviderModule->OauthProviderLoginFlowService \n\n\n\n\n\nIdTokenService\n\nIdTokenService\n\nOauthProviderModule -->\n\nIdTokenService->OauthProviderModule\n\n\n\n\n\nOauthProviderLoginFlowService\n\nOauthProviderLoginFlowService\n\nOauthProviderModule -->\n\nOauthProviderLoginFlowService->OauthProviderModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nOauthProviderModule -->\n\nTeamsRepo->OauthProviderModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/oauth-provider/oauth-provider.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n IdTokenService\n \n \n OauthProviderLoginFlowService\n \n \n TeamsRepo\n \n \n \n \n Imports\n \n \n LoggerModule\n \n \n LtiToolModule\n \n \n OauthProviderServiceModule\n \n \n PseudonymModule\n \n \n ToolConfigModule\n \n \n ToolModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n IdTokenService\n \n \n OauthProviderLoginFlowService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { OauthProviderServiceModule } from '@shared/infra/oauth-provider';\nimport { TeamsRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { LtiToolModule } from '@src/modules/lti-tool';\nimport { PseudonymModule } from '@src/modules/pseudonym';\nimport { ToolModule } from '@src/modules/tool';\nimport { ToolConfigModule } from '@src/modules/tool/tool-config.module';\nimport { UserModule } from '@src/modules/user';\nimport { IdTokenService } from './service/id-token.service';\nimport { OauthProviderLoginFlowService } from './service/oauth-provider.login-flow.service';\n\n@Module({\n\timports: [\n\t\tOauthProviderServiceModule,\n\t\tUserModule,\n\t\tLoggerModule,\n\t\tPseudonymModule,\n\t\tLtiToolModule,\n\t\tToolModule,\n\t\tToolConfigModule,\n\t],\n\tproviders: [OauthProviderLoginFlowService, IdTokenService, TeamsRepo],\n\texports: [OauthProviderLoginFlowService, IdTokenService],\n})\nexport class OauthProviderModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthProviderRequestMapper.html":{"url":"classes/OauthProviderRequestMapper.html","title":"class - OauthProviderRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthProviderRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/mapper/oauth-provider-request.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapCreateAcceptLoginRequestBody\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapCreateAcceptLoginRequestBody\n \n \n \n \n \n \n \n mapCreateAcceptLoginRequestBody(loginRequestBody: LoginRequestBody, currentUserId: string, pseudonym: string, context?: object)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-request.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n loginRequestBody\n \n LoginRequestBody\n \n\n \n No\n \n\n\n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n pseudonym\n \n string\n \n\n \n No\n \n\n\n \n \n context\n \n object\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : AcceptLoginRequestBody\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { AcceptLoginRequestBody } from '@shared/infra/oauth-provider/dto';\nimport { LoginRequestBody } from '@src/modules/oauth-provider/controller/dto';\n\nexport class OauthProviderRequestMapper {\n\tstatic mapCreateAcceptLoginRequestBody(\n\t\tloginRequestBody: LoginRequestBody,\n\t\tcurrentUserId: string,\n\t\tpseudonym: string,\n\t\tcontext?: object\n\t): AcceptLoginRequestBody {\n\t\treturn {\n\t\t\tremember: loginRequestBody.remember,\n\t\t\tremember_for: loginRequestBody.remember_for,\n\t\t\tsubject: currentUserId,\n\t\t\tforce_subject_identifier: pseudonym,\n\t\t\tcontext,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderResponseMapper.html":{"url":"injectables/OauthProviderResponseMapper.html","title":"injectable - OauthProviderResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapConsentResponse\n \n \n mapConsentSessionsToResponse\n \n \n mapLoginResponse\n \n \n mapOauthClientResponse\n \n \n mapRedirectResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapConsentResponse\n \n \n \n \n \n \nmapConsentResponse(consent: ProviderConsentResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n consent\n \n ProviderConsentResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ConsentResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapConsentSessionsToResponse\n \n \n \n \n \n \nmapConsentSessionsToResponse(session: ProviderConsentSessionResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ProviderConsentSessionResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ConsentSessionResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapLoginResponse\n \n \n \n \n \n \nmapLoginResponse(providerLoginResponse: ProviderLoginResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n providerLoginResponse\n \n ProviderLoginResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LoginResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapOauthClientResponse\n \n \n \n \n \n \nmapOauthClientResponse(oauthClient: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthClient\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthClientResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapRedirectResponse\n \n \n \n \n \n \nmapRedirectResponse(redirect: ProviderRedirectResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/mapper/oauth-provider-response.mapper.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n redirect\n \n ProviderRedirectResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RedirectResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport {\n\tProviderConsentResponse,\n\tProviderConsentSessionResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n} from '@shared/infra/oauth-provider/dto';\nimport {\n\tConsentResponse,\n\tConsentSessionResponse,\n\tLoginResponse,\n\tOauthClientResponse,\n\tRedirectResponse,\n} from '@src/modules/oauth-provider/controller/dto';\n\n@Injectable()\nexport class OauthProviderResponseMapper {\n\tmapRedirectResponse(redirect: ProviderRedirectResponse): RedirectResponse {\n\t\treturn new RedirectResponse({ ...redirect });\n\t}\n\n\tmapConsentResponse(consent: ProviderConsentResponse): ConsentResponse {\n\t\treturn new ConsentResponse({ ...consent });\n\t}\n\n\tmapOauthClientResponse(oauthClient: ProviderOauthClient): OauthClientResponse {\n\t\tdelete oauthClient.client_secret;\n\t\treturn new OauthClientResponse({ ...oauthClient });\n\t}\n\n\tmapConsentSessionsToResponse(session: ProviderConsentSessionResponse): ConsentSessionResponse {\n\t\treturn new ConsentSessionResponse(\n\t\t\tsession.consent_request.client?.client_id,\n\t\t\tsession.consent_request.client?.client_name,\n\t\t\tsession.consent_request.challenge\n\t\t);\n\t}\n\n\tmapLoginResponse(providerLoginResponse: ProviderLoginResponse): LoginResponse {\n\t\treturn new LoginResponse({ ...providerLoginResponse });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OauthProviderService.html":{"url":"classes/OauthProviderService.html","title":"class - OauthProviderService","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OauthProviderService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n acceptConsentRequest\n \n \n Abstract\n acceptLoginRequest\n \n \n Abstract\n acceptLogoutRequest\n \n \n Abstract\n createOAuth2Client\n \n \n Abstract\n deleteOAuth2Client\n \n \n Abstract\n getConsentRequest\n \n \n Abstract\n getLoginRequest\n \n \n Abstract\n getOAuth2Client\n \n \n Abstract\n introspectOAuth2Token\n \n \n Abstract\n isInstanceAlive\n \n \n Abstract\n listConsentSessions\n \n \n Abstract\n listOAuth2Clients\n \n \n Abstract\n rejectConsentRequest\n \n \n Abstract\n rejectLoginRequest\n \n \n Abstract\n revokeConsentSession\n \n \n Abstract\n updateOAuth2Client\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n acceptConsentRequest\n \n \n \n \n \n \n \n acceptConsentRequest(challenge: string, body: AcceptConsentRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptConsentRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n acceptLoginRequest\n \n \n \n \n \n \n \n acceptLoginRequest(challenge: string, body: AcceptLoginRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n AcceptLoginRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n acceptLogoutRequest\n \n \n \n \n \n \n \n acceptLogoutRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n createOAuth2Client\n \n \n \n \n \n \n \n createOAuth2Client(data: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n deleteOAuth2Client\n \n \n \n \n \n \n \n deleteOAuth2Client(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getConsentRequest\n \n \n \n \n \n \n \n getConsentRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getLoginRequest\n \n \n \n \n \n \n \n getLoginRequest(challenge: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getOAuth2Client\n \n \n \n \n \n \n \n getOAuth2Client(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n introspectOAuth2Token\n \n \n \n \n \n \n \n introspectOAuth2Token(token: string, scope?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n scope\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n isInstanceAlive\n \n \n \n \n \n \n \n isInstanceAlive()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:30\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Abstract\n listConsentSessions\n \n \n \n \n \n \n \n listConsentSessions(user: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n listOAuth2Clients\n \n \n \n \n \n \n \n listOAuth2Clients(limit?: number, offset?: number, client_name?: string, owner?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n limit\n \n number\n \n\n \n Yes\n \n\n\n \n \n offset\n \n number\n \n\n \n Yes\n \n\n\n \n \n client_name\n \n string\n \n\n \n Yes\n \n\n\n \n \n owner\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n rejectConsentRequest\n \n \n \n \n \n \n \n rejectConsentRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n rejectLoginRequest\n \n \n \n \n \n \n \n rejectLoginRequest(challenge: string, body: RejectRequestBody)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n challenge\n \n string\n \n\n \n No\n \n\n\n \n \n body\n \n RejectRequestBody\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n revokeConsentSession\n \n \n \n \n \n \n \n revokeConsentSession(user: string, client: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n string\n \n\n \n No\n \n\n\n \n \n client\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n updateOAuth2Client\n \n \n \n \n \n \n \n updateOAuth2Client(id: string, data: ProviderOauthClient)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/oauth-provider/oauth-provider.service.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n data\n \n ProviderOauthClient\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import {\n\tAcceptConsentRequestBody,\n\tAcceptLoginRequestBody,\n\tIntrospectResponse,\n\tProviderConsentResponse,\n\tProviderConsentSessionResponse,\n\tProviderLoginResponse,\n\tProviderOauthClient,\n\tProviderRedirectResponse,\n\tRejectRequestBody,\n} from './dto';\n\nexport abstract class OauthProviderService {\n\tabstract getLoginRequest(challenge: string): Promise;\n\n\tabstract acceptLoginRequest(challenge: string, body: AcceptLoginRequestBody): Promise;\n\n\tabstract rejectLoginRequest(challenge: string, body: RejectRequestBody): Promise;\n\n\tabstract getConsentRequest(challenge: string): Promise;\n\n\tabstract acceptConsentRequest(challenge: string, body: AcceptConsentRequestBody): Promise;\n\n\tabstract rejectConsentRequest(challenge: string, body: RejectRequestBody): Promise;\n\n\tabstract acceptLogoutRequest(challenge: string): Promise;\n\n\tabstract introspectOAuth2Token(token: string, scope?: string): Promise;\n\n\tabstract isInstanceAlive(): Promise;\n\n\tabstract listOAuth2Clients(\n\t\tlimit?: number,\n\t\toffset?: number,\n\t\tclient_name?: string,\n\t\towner?: string\n\t): Promise;\n\n\tabstract createOAuth2Client(data: ProviderOauthClient): Promise;\n\n\tabstract getOAuth2Client(id: string): Promise;\n\n\tabstract updateOAuth2Client(id: string, data: ProviderOauthClient): Promise;\n\n\tabstract deleteOAuth2Client(id: string): Promise;\n\n\tabstract listConsentSessions(user: string): Promise;\n\n\tabstract revokeConsentSession(user: string, client: string): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/OauthProviderServiceModule.html":{"url":"modules/OauthProviderServiceModule.html","title":"module - OauthProviderServiceModule","body":"\n \n\n\n\n\n Modules\n OauthProviderServiceModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_OauthProviderServiceModule\n\n\n\ncluster_OauthProviderServiceModule_exports\n\n\n\n\nOauthProviderService \n\nOauthProviderService \n\n\n\nOauthProviderServiceModule\n\nOauthProviderServiceModule\n\nOauthProviderService -->\n\nOauthProviderServiceModule->OauthProviderService \n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/oauth-provider-service.module.ts\n \n\n\n\n\n\n \n \n \n Exports\n \n \n OauthProviderService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { OauthProviderService } from '@shared/infra/oauth-provider/oauth-provider.service';\nimport { HydraAdapter } from '@shared/infra/oauth-provider/hydra/hydra.adapter';\nimport { HttpModule } from '@nestjs/axios';\n\n@Module({\n\timports: [HttpModule],\n\tproviders: [{ provide: OauthProviderService, useClass: HydraAdapter }],\n\texports: [OauthProviderService],\n})\nexport class OauthProviderServiceModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthProviderUc.html":{"url":"injectables/OauthProviderUc.html","title":"injectable - OauthProviderUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthProviderUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/uc/oauth-provider.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n listConsentSessions\n \n \n revokeConsentSession\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthProviderService: OauthProviderService)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthProviderService\n \n \n OauthProviderService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n listConsentSessions\n \n \n \n \n \n \nlistConsentSessions(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.uc.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n revokeConsentSession\n \n \n \n \n \n \nrevokeConsentSession(userId: EntityId, clientId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth-provider/uc/oauth-provider.uc.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { OauthProviderService } from '@shared/infra/oauth-provider';\nimport { EntityId } from '@shared/domain';\nimport { ProviderConsentSessionResponse } from '@shared/infra/oauth-provider/dto/';\n\n@Injectable()\nexport class OauthProviderUc {\n\tconstructor(private readonly oauthProviderService: OauthProviderService) {}\n\n\tlistConsentSessions(userId: EntityId): Promise {\n\t\tconst sessions: Promise = this.oauthProviderService.listConsentSessions(userId);\n\t\treturn sessions;\n\t}\n\n\trevokeConsentSession(userId: EntityId, clientId: string): Promise {\n\t\tconst promise: Promise = this.oauthProviderService.revokeConsentSession(userId, clientId);\n\t\treturn promise;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/OauthSSOController.html":{"url":"controllers/OauthSSOController.html","title":"controller - OauthSSOController","body":"\n \n\n\n\n\n\n\n Controllers\n OauthSSOController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/oauth-sso.controller.ts\n \n\n \n Prefix\n \n \n sso\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n errorHandler\n \n \n \n Async\n getAuthenticationUrl\n \n \n \n \n Async\n getHydraOauthToken\n \n \n \n \n \n \n Async\n migrateUser\n \n \n Private\n migrationErrorHandler\n \n \n \n \n Async\n requestAuthToken\n \n \n Private\n sessionHandler\n \n \n \n Async\n startOauthAuthorizationCodeFlow\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n errorHandler\n \n \n \n \n \n \n \n errorHandler(error, session: ISession, res: Response, provider?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n \n\n \n No\n \n\n\n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n provider\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getAuthenticationUrl\n \n \n \n \n \n \n \n getAuthenticationUrl(session: ISession, res: Response, params: SystemIdParams, query: SSOLoginQuery)\n \n \n\n \n \n Decorators : \n \n @Get('login/:systemId')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:99\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n params\n \n SystemIdParams\n \n\n \n No\n \n\n\n \n \n query\n \n SSOLoginQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getHydraOauthToken\n \n \n \n \n \n \n \n getHydraOauthToken(query: StatelessAuthorizationParams, oauthClientId: string)\n \n \n\n \n \n Decorators : \n \n @Get('hydra/:oauthClientId')@Authenticate('jwt')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:153\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n StatelessAuthorizationParams\n \n\n \n No\n \n\n\n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrateUser\n \n \n \n \n \n \n \n migrateUser(jwt: string, session: ISession, currentUser: ICurrentUser, query: AuthorizationParams, res: Response)\n \n \n\n \n \n Decorators : \n \n @Get('oauth/migration')@Authenticate('jwt')@ApiOkResponse({description: 'The User has been succesfully migrated.'})@ApiResponse({type: InternalServerErrorException, description: 'The migration of the User was not possible. '})\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:184\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwt\n \n string\n \n\n \n No\n \n\n\n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n query\n \n AuthorizationParams\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n migrationErrorHandler\n \n \n \n \n \n \n \n migrationErrorHandler(error, session: ISession, res: Response)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n error\n \n \n\n \n No\n \n\n\n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n requestAuthToken\n \n \n \n \n \n \n \n requestAuthToken(currentUser: ICurrentUser, req: Request, oauthClientId: string)\n \n \n\n \n \n Decorators : \n \n @Get('auth/:oauthClientId')@Authenticate('jwt')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:163\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n req\n \n Request\n \n\n \n No\n \n\n\n \n \n oauthClientId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n sessionHandler\n \n \n \n \n \n \n \n sessionHandler(session: ISession, query: AuthorizationParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n query\n \n AuthorizationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthLoginStateDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startOauthAuthorizationCodeFlow\n \n \n \n \n \n \n \n startOauthAuthorizationCodeFlow(session: ISession, res: Response, query: AuthorizationParams)\n \n \n\n \n \n Decorators : \n \n @Get('oauth')\n \n \n\n \n \n Defined in apps/server/src/modules/oauth/controller/oauth-sso.controller.ts:120\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n query\n \n AuthorizationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport {\n\tController,\n\tGet,\n\tInternalServerErrorException,\n\tParam,\n\tQuery,\n\tReq,\n\tRes,\n\tSession,\n\tUnauthorizedException,\n\tUnprocessableEntityException,\n} from '@nestjs/common';\nimport { ApiOkResponse, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ISession } from '@shared/domain/types/session';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser, JWT } from '@src/modules/authentication/decorator/auth.decorator';\nimport { UserMigrationResponse } from '@src/modules/oauth/controller/dto/user-migration.response';\nimport { HydraOauthUc } from '@src/modules/oauth/uc/hydra-oauth.uc';\nimport { OAuthMigrationError } from '@src/modules/user-login-migration/error/oauth-migration.error';\nimport { MigrationDto } from '@src/modules/user-login-migration/service/dto';\nimport { CookieOptions, Request, Response } from 'express';\nimport { OAuthSSOError } from '../error/oauth-sso.error';\nimport { OAuthTokenDto } from '../interface';\nimport { OauthLoginStateMapper } from '../mapper/oauth-login-state.mapper';\nimport { UserMigrationMapper } from '../mapper/user-migration.mapper';\nimport { OAuthProcessDto } from '../service/dto';\nimport { OauthUc } from '../uc';\nimport { OauthLoginStateDto } from '../uc/dto/oauth-login-state.dto';\nimport { AuthorizationParams, SSOLoginQuery, SystemIdParams } from './dto';\nimport { StatelessAuthorizationParams } from './dto/stateless-authorization.params';\n\n@ApiTags('SSO')\n@Controller('sso')\nexport class OauthSSOController {\n\tprivate readonly clientUrl: string;\n\n\tconstructor(\n\t\tprivate readonly oauthUc: OauthUc,\n\t\tprivate readonly hydraUc: HydraOauthUc,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(OauthSSOController.name);\n\t\tthis.clientUrl = Configuration.get('HOST') as string;\n\t}\n\n\tprivate errorHandler(error: unknown, session: ISession, res: Response, provider?: string) {\n\t\tthis.logger.error(error);\n\t\tconst ssoError: OAuthSSOError = error instanceof OAuthSSOError ? error : new OAuthSSOError();\n\n\t\tsession.destroy((err) => {\n\t\t\tthis.logger.log(err);\n\t\t});\n\n\t\tconst errorRedirect: URL = new URL('/login', this.clientUrl);\n\t\terrorRedirect.searchParams.append('error', ssoError.errorcode);\n\n\t\tif (provider) {\n\t\t\terrorRedirect.searchParams.append('provider', provider);\n\t\t}\n\n\t\tres.redirect(errorRedirect.toString());\n\t}\n\n\tprivate migrationErrorHandler(error: unknown, session: ISession, res: Response) {\n\t\tconst migrationError: OAuthMigrationError =\n\t\t\terror instanceof OAuthMigrationError ? error : new OAuthMigrationError();\n\n\t\tsession.destroy((err) => {\n\t\t\tthis.logger.log(err);\n\t\t});\n\n\t\tconst errorRedirect: URL = new URL('/migration/error', this.clientUrl);\n\n\t\tif (migrationError.officialSchoolNumberFromSource && migrationError.officialSchoolNumberFromTarget) {\n\t\t\terrorRedirect.searchParams.append('sourceSchoolNumber', migrationError.officialSchoolNumberFromSource);\n\t\t\terrorRedirect.searchParams.append('targetSchoolNumber', migrationError.officialSchoolNumberFromTarget);\n\t\t}\n\n\t\tres.redirect(errorRedirect.toString());\n\t}\n\n\tprivate sessionHandler(session: ISession, query: AuthorizationParams): OauthLoginStateDto {\n\t\tif (!session.oauthLoginState) {\n\t\t\tthrow new UnauthorizedException('Oauth session not found');\n\t\t}\n\n\t\tconst oauthLoginState: OauthLoginStateDto = OauthLoginStateMapper.mapSessionToDto(session);\n\n\t\tif (oauthLoginState.state !== query.state) {\n\t\t\tthrow new UnauthorizedException(`Invalid state. Got: ${query.state} Expected: ${oauthLoginState.state}`);\n\t\t}\n\n\t\treturn oauthLoginState;\n\t}\n\n\t@Get('login/:systemId')\n\tasync getAuthenticationUrl(\n\t\t@Session() session: ISession,\n\t\t@Res() res: Response,\n\t\t@Param() params: SystemIdParams,\n\t\t@Query() query: SSOLoginQuery\n\t): Promise {\n\t\ttry {\n\t\t\tconst redirect: string = await this.oauthUc.startOauthLogin(\n\t\t\t\tsession,\n\t\t\t\tparams.systemId,\n\t\t\t\tquery.migration || false,\n\t\t\t\tquery.postLoginRedirect\n\t\t\t);\n\n\t\t\tres.redirect(redirect);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(error, session, res);\n\t\t}\n\t}\n\n\t@Get('oauth')\n\tasync startOauthAuthorizationCodeFlow(\n\t\t@Session() session: ISession,\n\t\t@Res() res: Response,\n\t\t@Query() query: AuthorizationParams\n\t): Promise {\n\t\tconst oauthLoginState: OauthLoginStateDto = this.sessionHandler(session, query);\n\n\t\ttry {\n\t\t\tconst oauthProcessDto: OAuthProcessDto = await this.oauthUc.processOAuthLogin(\n\t\t\t\toauthLoginState,\n\t\t\t\tquery.code,\n\t\t\t\tquery.error\n\t\t\t);\n\n\t\t\tif (oauthProcessDto.jwt) {\n\t\t\t\tconst cookieDefaultOptions: CookieOptions = {\n\t\t\t\t\thttpOnly: Configuration.get('COOKIE__HTTP_ONLY') as boolean,\n\t\t\t\t\tsameSite: Configuration.get('COOKIE__SAME_SITE') as 'lax' | 'strict' | 'none',\n\t\t\t\t\tsecure: Configuration.get('COOKIE__SECURE') as boolean,\n\t\t\t\t\texpires: new Date(Date.now() + (Configuration.get('COOKIE__EXPIRES_SECONDS') as number)),\n\t\t\t\t};\n\n\t\t\t\tres.cookie('jwt', oauthProcessDto.jwt, cookieDefaultOptions);\n\t\t\t}\n\n\t\t\tres.redirect(oauthProcessDto.redirect);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(error, session, res, oauthLoginState.provider);\n\t\t}\n\t}\n\n\t@Get('hydra/:oauthClientId')\n\t@Authenticate('jwt')\n\tasync getHydraOauthToken(\n\t\t@Query() query: StatelessAuthorizationParams,\n\t\t@Param('oauthClientId') oauthClientId: string\n\t): Promise {\n\t\tconst oauthToken = this.hydraUc.getOauthToken(oauthClientId, query.code, query.error);\n\t\treturn oauthToken;\n\t}\n\n\t@Get('auth/:oauthClientId')\n\t@Authenticate('jwt')\n\tasync requestAuthToken(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Req() req: Request,\n\t\t@Param('oauthClientId') oauthClientId: string\n\t): Promise {\n\t\tlet jwt: string;\n\t\tconst authHeader: string | undefined = req.headers.authorization;\n\t\tif (authHeader && authHeader.toLowerCase().startsWith('bearer ')) {\n\t\t\t[, jwt] = authHeader.split(' ');\n\t\t} else {\n\t\t\tthrow new UnauthorizedException(\n\t\t\t\t`No bearer token in header for authorization process of user ${currentUser.userId} on oauth system ${oauthClientId}`\n\t\t\t);\n\t\t}\n\t\treturn this.hydraUc.requestAuthCode(currentUser.userId, jwt, oauthClientId);\n\t}\n\n\t@Get('oauth/migration')\n\t@Authenticate('jwt')\n\t@ApiOkResponse({ description: 'The User has been succesfully migrated.' })\n\t@ApiResponse({ type: InternalServerErrorException, description: 'The migration of the User was not possible. ' })\n\tasync migrateUser(\n\t\t@JWT() jwt: string,\n\t\t@Session() session: ISession,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() query: AuthorizationParams,\n\t\t@Res() res: Response\n\t): Promise {\n\t\tconst oauthLoginState: OauthLoginStateDto = this.sessionHandler(session, query);\n\n\t\tif (!currentUser.systemId) {\n\t\t\tthrow new UnprocessableEntityException('Current user does not have a system.');\n\t\t}\n\n\t\ttry {\n\t\t\tconst migration: MigrationDto = await this.oauthUc.migrate(jwt, currentUser.userId, query, oauthLoginState);\n\t\t\tconst response: UserMigrationResponse = UserMigrationMapper.mapDtoToResponse(migration);\n\t\t\tres.redirect(response.redirect);\n\t\t} catch (error) {\n\t\t\tthis.migrationErrorHandler(error, session, res);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/OauthTokenResponse.html":{"url":"interfaces/OauthTokenResponse.html","title":"interface - OauthTokenResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n OauthTokenResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/service/dto/oauth-token.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n access_token\n \n \n \n \n id_token\n \n \n \n \n refresh_token\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n access_token\n \n \n \n \n \n \n \n \n access_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id_token\n \n \n \n \n \n \n \n \n id_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n refresh_token\n \n \n \n \n \n \n \n \n refresh_token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface OauthTokenResponse {\n\taccess_token: string;\n\n\trefresh_token: string;\n\n\tid_token: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OauthUc.html":{"url":"injectables/OauthUc.html","title":"injectable - OauthUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OauthUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/uc/oauth.uc.ts\n \n\n \n Deprecated\n \n \n remove after login via oauth moved to authentication module\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n getJwtForUser\n \n \n Async\n migrate\n \n \n Async\n processOAuthLogin\n \n \n Async\n startOauthLogin\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oauthService: OAuthService, authenticationService: AuthenticationService, systemService: SystemService, provisioningService: ProvisioningService, userService: UserService, userMigrationService: UserMigrationService, schoolMigrationService: SchoolMigrationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:26\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthService\n \n \n OAuthService\n \n \n \n No\n \n \n \n \n authenticationService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n provisioningService\n \n \n ProvisioningService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n userMigrationService\n \n \n UserMigrationService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n getJwtForUser\n \n \n \n \n \n \n \n getJwtForUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrate\n \n \n \n \n \n \n \n migrate(userJwt: string, currentUserId: string, query: AuthorizationParams, cachedState: OauthLoginStateDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userJwt\n \n string\n \n\n \n No\n \n\n\n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n query\n \n AuthorizationParams\n \n\n \n No\n \n\n\n \n \n cachedState\n \n OauthLoginStateDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n processOAuthLogin\n \n \n \n \n \n \n \n processOAuthLogin(cachedState: OauthLoginStateDto, code?: string, error?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n cachedState\n \n OauthLoginStateDto\n \n\n \n No\n \n\n\n \n \n code\n \n string\n \n\n \n Yes\n \n\n\n \n \n error\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startOauthLogin\n \n \n \n \n \n \n \n startOauthLogin(session: ISession, systemId: EntityId, migration: boolean, postLoginRedirect?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/uc/oauth.uc.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n session\n \n ISession\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n migration\n \n boolean\n \n\n \n No\n \n\n\n \n \n postLoginRedirect\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, UserDO } from '@shared/domain';\nimport { ISession } from '@shared/domain/types/session';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { AuthenticationService } from '@src/modules/authentication/services/authentication.service';\nimport { ProvisioningService } from '@src/modules/provisioning';\nimport { OauthDataDto } from '@src/modules/provisioning/dto';\nimport { SystemService } from '@src/modules/system';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { UserService } from '@src/modules/user';\nimport { UserMigrationService } from '@src/modules/user-login-migration';\nimport { SchoolMigrationService } from '@src/modules/user-login-migration/service';\nimport { MigrationDto } from '@src/modules/user-login-migration/service/dto';\nimport { nanoid } from 'nanoid';\nimport { AuthorizationParams } from '../controller/dto';\nimport { OAuthTokenDto } from '../interface';\nimport { OAuthProcessDto } from '../service/dto';\nimport { OAuthService } from '../service/oauth.service';\nimport { OauthLoginStateDto } from './dto/oauth-login-state.dto';\n\n/**\n * @deprecated remove after login via oauth moved to authentication module\n */\n@Injectable()\nexport class OauthUc {\n\tconstructor(\n\t\tprivate readonly oauthService: OAuthService,\n\t\tprivate readonly authenticationService: AuthenticationService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly provisioningService: ProvisioningService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly userMigrationService: UserMigrationService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(OauthUc.name);\n\t}\n\n\tasync startOauthLogin(\n\t\tsession: ISession,\n\t\tsystemId: EntityId,\n\t\tmigration: boolean,\n\t\tpostLoginRedirect?: string\n\t): Promise {\n\t\tconst state = nanoid(16);\n\n\t\tconst system: SystemDto = await this.systemService.findById(systemId);\n\t\tif (!system.oauthConfig) {\n\t\t\tthrow new UnprocessableEntityException(`Requested system ${systemId} has no oauth configured`);\n\t\t}\n\n\t\tconst authenticationUrl: string = this.oauthService.getAuthenticationUrl(system.oauthConfig, state, migration);\n\n\t\tsession.oauthLoginState = new OauthLoginStateDto({\n\t\t\tstate,\n\t\t\tsystemId,\n\t\t\tprovider: system.oauthConfig.provider,\n\t\t\tpostLoginRedirect,\n\t\t\tuserLoginMigration: migration,\n\t\t});\n\n\t\treturn authenticationUrl;\n\t}\n\n\tasync processOAuthLogin(cachedState: OauthLoginStateDto, code?: string, error?: string): Promise {\n\t\tconst { state, systemId, postLoginRedirect, userLoginMigration } = cachedState;\n\n\t\tthis.logger.debug(`Oauth login process started. [state: ${state}, system: ${systemId}]`);\n\n\t\tconst redirectUri: string = this.oauthService.getRedirectUri(userLoginMigration);\n\n\t\tconst tokenDto: OAuthTokenDto = await this.oauthService.authenticateUser(systemId, redirectUri, code, error);\n\n\t\tconst { user, redirect }: { user?: UserDO; redirect: string } = await this.oauthService.provisionUser(\n\t\t\tsystemId,\n\t\t\ttokenDto.idToken,\n\t\t\ttokenDto.accessToken,\n\t\t\tpostLoginRedirect\n\t\t);\n\n\t\tthis.logger.debug(`Generating jwt for user. [state: ${state}, system: ${systemId}]`);\n\n\t\tlet jwt: string | undefined;\n\t\tif (user && user.id) {\n\t\t\tjwt = await this.getJwtForUser(user.id);\n\t\t}\n\n\t\tconst response = new OAuthProcessDto({\n\t\t\tjwt,\n\t\t\tredirect,\n\t\t});\n\n\t\treturn response;\n\t}\n\n\tasync migrate(\n\t\tuserJwt: string,\n\t\tcurrentUserId: string,\n\t\tquery: AuthorizationParams,\n\t\tcachedState: OauthLoginStateDto\n\t): Promise {\n\t\tconst { state, systemId, userLoginMigration } = cachedState;\n\n\t\tif (state !== query.state) {\n\t\t\tthrow new UnauthorizedException(`Invalid state. Got: ${query.state} Expected: ${state}`);\n\t\t}\n\n\t\tconst redirectUri: string = this.oauthService.getRedirectUri(userLoginMigration);\n\n\t\tconst tokenDto: OAuthTokenDto = await this.oauthService.authenticateUser(\n\t\t\tsystemId,\n\t\t\tredirectUri,\n\t\t\tquery.code,\n\t\t\tquery.error\n\t\t);\n\n\t\tconst data: OauthDataDto = await this.provisioningService.getData(systemId, tokenDto.idToken, tokenDto.accessToken);\n\n\t\tif (data.externalSchool) {\n\t\t\tconst schoolToMigrate: LegacySchoolDo | null = await this.schoolMigrationService.schoolToMigrate(\n\t\t\t\tcurrentUserId,\n\t\t\t\tdata.externalSchool.externalId,\n\t\t\t\tdata.externalSchool.officialSchoolNumber\n\t\t\t);\n\t\t\tif (schoolToMigrate) {\n\t\t\t\tawait this.schoolMigrationService.migrateSchool(data.externalSchool.externalId, schoolToMigrate, systemId);\n\t\t\t}\n\t\t}\n\n\t\tconst migrationDto: MigrationDto = await this.userMigrationService.migrateUser(\n\t\t\tcurrentUserId,\n\t\t\tdata.externalUser.externalId,\n\t\t\tsystemId\n\t\t);\n\n\t\tawait this.authenticationService.removeJwtFromWhitelist(userJwt);\n\n\t\treturn migrationDto;\n\t}\n\n\tprivate async getJwtForUser(userId: EntityId): Promise {\n\t\tconst currentUser: ICurrentUser = await this.userService.getResolvedUser(userId);\n\n\t\tconst { accessToken } = await this.authenticationService.generateJwt(currentUser);\n\n\t\treturn accessToken;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/OcsResponse.html":{"url":"interfaces/OcsResponse.html","title":"interface - OcsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n OcsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n ocs\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n ocs\n \n \n \n \n \n \n \n \n ocs: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OidcConfig.html":{"url":"classes/OidcConfig.html","title":"class - OidcConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OidcConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n authorizationUrl\n \n \n \n clientId\n \n \n \n clientSecret\n \n \n \n defaultScopes\n \n \n \n idpHint\n \n \n \n logoutUrl\n \n \n \n tokenUrl\n \n \n \n userinfoUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oidcConfig: OidcConfig)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:153\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfig\n \n \n OidcConfig\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n authorizationUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:175\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:166\n \n \n\n\n \n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:169\n \n \n\n\n \n \n \n \n \n \n \n \n \n defaultScopes\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:187\n \n \n\n\n \n \n \n \n \n \n \n \n \n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:172\n \n \n\n\n \n \n \n \n \n \n \n \n \n logoutUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:181\n \n \n\n\n \n \n \n \n \n \n \n \n \n tokenUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:178\n \n \n\n\n \n \n \n \n \n \n \n \n \n userinfoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:184\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OidcConfigDto.html":{"url":"classes/OidcConfigDto.html","title":"class - OidcConfigDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OidcConfigDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/dto/oidc-config.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n authorizationUrl\n \n \n clientId\n \n \n clientSecret\n \n \n defaultScopes\n \n \n idpHint\n \n \n logoutUrl\n \n \n parentSystemId\n \n \n tokenUrl\n \n \n userinfoUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oidcConfigDto: OidcConfigDto)\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:1\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfigDto\n \n \n OidcConfigDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n authorizationUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n clientId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n clientSecret\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n defaultScopes\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n idpHint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n logoutUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n parentSystemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n tokenUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n userinfoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/oidc-config.dto.ts:28\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class OidcConfigDto {\n\tconstructor(oidcConfigDto: OidcConfigDto) {\n\t\tthis.parentSystemId = oidcConfigDto.parentSystemId;\n\t\tthis.clientId = oidcConfigDto.clientId;\n\t\tthis.clientSecret = oidcConfigDto.clientSecret;\n\t\tthis.idpHint = oidcConfigDto.idpHint;\n\t\tthis.authorizationUrl = oidcConfigDto.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfigDto.tokenUrl;\n\t\tthis.userinfoUrl = oidcConfigDto.userinfoUrl;\n\t\tthis.logoutUrl = oidcConfigDto.logoutUrl;\n\t\tthis.defaultScopes = oidcConfigDto.defaultScopes;\n\t}\n\n\tparentSystemId: string;\n\n\tclientId: string;\n\n\tclientSecret: string;\n\n\tidpHint: string;\n\n\tauthorizationUrl: string;\n\n\ttokenUrl: string;\n\n\tlogoutUrl: string;\n\n\tuserinfoUrl: string;\n\n\tdefaultScopes: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OidcContextResponse.html":{"url":"classes/OidcContextResponse.html","title":"class - OidcContextResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OidcContextResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n acr_values\n \n \n \n Optional\n display\n \n \n \n Optional\n id_token_hint_claims\n \n \n \n Optional\n login_hint\n \n \n \n \n Optional\n ui_locales\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n acr_values\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n display\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n id_token_hint_claims\n \n \n \n \n \n \n Type : object\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n login_hint\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n ui_locales\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Optional()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/oidc-context.response.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { Optional } from '@nestjs/common';\n\nexport class OidcContextResponse {\n\t@ApiProperty()\n\tacr_values?: string[];\n\n\t@ApiProperty()\n\tdisplay?: string;\n\n\t@ApiProperty()\n\tid_token_hint_claims?: object;\n\n\t@ApiProperty()\n\tlogin_hint?: string;\n\n\t@Optional()\n\t@ApiProperty()\n\tui_locales?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/OidcIdentityProviderMapper.html":{"url":"classes/OidcIdentityProviderMapper.html","title":"class - OidcIdentityProviderMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n OidcIdentityProviderMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/identity-management/keycloak-configuration/mapper/identity-provider.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapToKeycloakIdentityProvider\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(defaultEncryptionService: IEncryptionService)\n \n \n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/mapper/identity-provider.mapper.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n defaultEncryptionService\n \n \n IEncryptionService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapToKeycloakIdentityProvider\n \n \n \n \n \n \n \n mapToKeycloakIdentityProvider(oidcConfig: OidcConfigDto, flowAlias: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/identity-management/keycloak-configuration/mapper/identity-provider.mapper.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcConfig\n \n OidcConfigDto\n \n\n \n No\n \n\n\n \n \n flowAlias\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IdentityProviderRepresentation\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import IdentityProviderRepresentation from '@keycloak/keycloak-admin-client/lib/defs/identityProviderRepresentation';\nimport { Inject } from '@nestjs/common';\nimport { DefaultEncryptionService, IEncryptionService } from '@shared/infra/encryption';\nimport { OidcConfigDto } from '@src/modules/system/service';\n\nexport class OidcIdentityProviderMapper {\n\tconstructor(@Inject(DefaultEncryptionService) private readonly defaultEncryptionService: IEncryptionService) {}\n\n\tpublic mapToKeycloakIdentityProvider(oidcConfig: OidcConfigDto, flowAlias: string): IdentityProviderRepresentation {\n\t\treturn {\n\t\t\tproviderId: 'oidc',\n\t\t\talias: oidcConfig.idpHint,\n\t\t\tdisplayName: oidcConfig.idpHint,\n\t\t\tenabled: true,\n\t\t\tfirstBrokerLoginFlowAlias: flowAlias,\n\t\t\tconfig: {\n\t\t\t\tclientId: oidcConfig.clientId,\n\t\t\t\tclientSecret: this.defaultEncryptionService.decrypt(oidcConfig.clientSecret),\n\t\t\t\tauthorizationUrl: oidcConfig.authorizationUrl,\n\t\t\t\ttokenUrl: oidcConfig.tokenUrl,\n\t\t\t\tlogoutUrl: oidcConfig.logoutUrl,\n\t\t\t\tuserInfoUrl: oidcConfig.userinfoUrl,\n\t\t\t\tdefaultScope: oidcConfig.defaultScopes,\n\t\t\t\tsyncMode: 'IMPORT',\n\t\t\t\tsync_mode: 'import',\n\t\t\t\tclientAuthMethod: 'client_secret_post',\n\t\t\t\tbackchannelSupported: 'true',\n\t\t\t\tprompt: 'login',\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OidcMockProvisioningStrategy.html":{"url":"injectables/OidcMockProvisioningStrategy.html","title":"injectable - OidcMockProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OidcMockProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/oidc-mock/oidc-mock.strategy.ts\n \n\n\n\n \n Extends\n \n \n ProvisioningStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n apply\n \n \n \n Async\n getData\n \n \n getType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getType\n \n \n \n \n \n \ngetType()\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:10\n\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { OAuthSSOError } from '@src/modules/oauth/error/oauth-sso.error';\nimport jwt, { JwtPayload } from 'jsonwebtoken';\nimport { ExternalUserDto, OauthDataDto, OauthDataStrategyInputDto, ProvisioningDto } from '../../dto';\nimport { ProvisioningStrategy } from '../base.strategy';\n\n@Injectable()\nexport class OidcMockProvisioningStrategy extends ProvisioningStrategy {\n\tgetType(): SystemProvisioningStrategy {\n\t\treturn SystemProvisioningStrategy.OIDC;\n\t}\n\n\toverride async getData(input: OauthDataStrategyInputDto): Promise {\n\t\tconst idToken = jwt.decode(input.idToken, { json: true }) as (JwtPayload & { external_sub?: string }) | null;\n\t\tif (!idToken || !idToken.external_sub) {\n\t\t\tthrow new OAuthSSOError('Failed to extract external_sub', 'sso_jwt_problem');\n\t\t}\n\n\t\tconst externalUser: ExternalUserDto = new ExternalUserDto({\n\t\t\texternalId: idToken.external_sub,\n\t\t});\n\n\t\tconst oauthData: OauthDataDto = new OauthDataDto({\n\t\t\tsystem: input.system,\n\t\t\texternalUser,\n\t\t});\n\t\treturn Promise.resolve(oauthData);\n\t}\n\n\toverride apply(data: OauthDataDto): Promise {\n\t\treturn Promise.resolve(new ProvisioningDto({ externalUserId: data.externalUser.externalId }));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OidcProvisioningService.html":{"url":"injectables/OidcProvisioningService.html","title":"injectable - OidcProvisioningService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OidcProvisioningService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n getFilteredGroupUsers\n \n \n Async\n provisionExternalGroup\n \n \n Async\n provisionExternalSchool\n \n \n Async\n provisionExternalUser\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, schoolService: LegacySchoolService, groupService: GroupService, roleService: RoleService, accountService: AccountService, schoolYearService: SchoolYearService, federalStateService: FederalStateService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n groupService\n \n \n GroupService\n \n \n \n No\n \n \n \n \n roleService\n \n \n RoleService\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n schoolYearService\n \n \n SchoolYearService\n \n \n \n No\n \n \n \n \n federalStateService\n \n \n FederalStateService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n getFilteredGroupUsers\n \n \n \n \n \n \n \n getFilteredGroupUsers(externalGroup: ExternalGroupDto, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:164\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalGroup\n \n ExternalGroupDto\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionExternalGroup\n \n \n \n \n \n \n \n provisionExternalGroup(externalGroup: ExternalGroupDto, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:120\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalGroup\n \n ExternalGroupDto\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionExternalSchool\n \n \n \n \n \n \n \n provisionExternalSchool(externalSchool: ExternalSchoolDto, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalSchool\n \n ExternalSchoolDto\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionExternalUser\n \n \n \n \n \n \n \n provisionExternalUser(externalUser: ExternalUserDto, systemId: EntityId, schoolId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/service/oidc-provisioning.service.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUser\n \n ExternalUserDto\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, ExternalSource, FederalState, SchoolFeatures, SchoolYear } from '@shared/domain';\nimport { LegacySchoolDo, RoleReference, UserDO } from '@shared/domain/domainobject';\nimport { Logger } from '@src/core/logger';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountSaveDto } from '@src/modules/account/services/dto';\nimport { Group, GroupService, GroupUser } from '@src/modules/group';\nimport { FederalStateService, LegacySchoolService, SchoolYearService } from '@src/modules/legacy-school';\nimport { FederalStateNames } from '@src/modules/legacy-school/types';\nimport { RoleService } from '@src/modules/role';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\nimport { UserService } from '@src/modules/user';\nimport { ObjectId } from 'bson';\nimport CryptoJS from 'crypto-js';\nimport { ExternalGroupDto, ExternalGroupUserDto, ExternalSchoolDto, ExternalUserDto } from '../../../dto';\nimport { SchoolForGroupNotFoundLoggable, UserForGroupNotFoundLoggable } from '../../../loggable';\n\n@Injectable()\nexport class OidcProvisioningService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly groupService: GroupService,\n\t\tprivate readonly roleService: RoleService,\n\t\tprivate readonly accountService: AccountService,\n\t\tprivate readonly schoolYearService: SchoolYearService,\n\t\tprivate readonly federalStateService: FederalStateService,\n\t\tprivate readonly logger: Logger\n\t) {}\n\n\tasync provisionExternalSchool(externalSchool: ExternalSchoolDto, systemId: EntityId): Promise {\n\t\tconst existingSchool: LegacySchoolDo | null = await this.schoolService.getSchoolByExternalId(\n\t\t\texternalSchool.externalId,\n\t\t\tsystemId\n\t\t);\n\t\tlet school: LegacySchoolDo;\n\t\tif (existingSchool) {\n\t\t\tschool = existingSchool;\n\t\t\tschool.name = externalSchool.name;\n\t\t\tschool.officialSchoolNumber = externalSchool.officialSchoolNumber ?? existingSchool.officialSchoolNumber;\n\t\t\tif (!school.systems) {\n\t\t\t\tschool.systems = [systemId];\n\t\t\t} else if (!school.systems.includes(systemId)) {\n\t\t\t\tschool.systems.push(systemId);\n\t\t\t}\n\t\t} else {\n\t\t\tconst schoolYear: SchoolYear = await this.schoolYearService.getCurrentSchoolYear();\n\t\t\tconst federalState: FederalState = await this.federalStateService.findFederalStateByName(\n\t\t\t\tFederalStateNames.NIEDERSACHEN\n\t\t\t);\n\n\t\t\tschool = new LegacySchoolDo({\n\t\t\t\texternalId: externalSchool.externalId,\n\t\t\t\tname: externalSchool.name,\n\t\t\t\tofficialSchoolNumber: externalSchool.officialSchoolNumber,\n\t\t\t\tsystems: [systemId],\n\t\t\t\tfeatures: [SchoolFeatures.OAUTH_PROVISIONING_ENABLED],\n\t\t\t\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\t\t\t\tschoolYear,\n\t\t\t\tfederalState,\n\t\t\t});\n\t\t}\n\n\t\tconst savedSchool: LegacySchoolDo = await this.schoolService.save(school, true);\n\t\treturn savedSchool;\n\t}\n\n\tasync provisionExternalUser(externalUser: ExternalUserDto, systemId: EntityId, schoolId?: string): Promise {\n\t\tlet roleRefs: RoleReference[] | undefined;\n\t\tif (externalUser.roles) {\n\t\t\tconst roles: RoleDto[] = await this.roleService.findByNames(externalUser.roles);\n\t\t\troleRefs = roles.map((role: RoleDto): RoleReference => new RoleReference({ id: role.id || '', name: role.name }));\n\t\t}\n\n\t\tconst existingUser: UserDO | null = await this.userService.findByExternalId(externalUser.externalId, systemId);\n\t\tlet user: UserDO;\n\t\tlet createNewAccount = false;\n\t\tif (existingUser) {\n\t\t\tuser = existingUser;\n\t\t\tuser.firstName = externalUser.firstName ?? existingUser.firstName;\n\t\t\tuser.lastName = externalUser.lastName ?? existingUser.lastName;\n\t\t\tuser.email = externalUser.email ?? existingUser.email;\n\t\t\tuser.roles = roleRefs ?? existingUser.roles;\n\t\t\tuser.schoolId = schoolId ?? existingUser.schoolId;\n\t\t} else {\n\t\t\tcreateNewAccount = true;\n\n\t\t\tif (!schoolId) {\n\t\t\t\tthrow new UnprocessableEntityException(\n\t\t\t\t\t`Unable to create new external user ${externalUser.externalId} without a school`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tuser = new UserDO({\n\t\t\t\texternalId: externalUser.externalId,\n\t\t\t\tfirstName: externalUser.firstName ?? '',\n\t\t\t\tlastName: externalUser.lastName ?? '',\n\t\t\t\temail: externalUser.email ?? '',\n\t\t\t\troles: roleRefs ?? [],\n\t\t\t\tschoolId,\n\t\t\t});\n\t\t}\n\n\t\tconst savedUser: UserDO = await this.userService.save(user);\n\n\t\tif (createNewAccount) {\n\t\t\tawait this.accountService.saveWithValidation(\n\t\t\t\tnew AccountSaveDto({\n\t\t\t\t\tuserId: savedUser.id,\n\t\t\t\t\tusername: CryptoJS.SHA256(savedUser.id as string).toString(CryptoJS.enc.Base64),\n\t\t\t\t\tsystemId,\n\t\t\t\t\tactivated: true,\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\treturn savedUser;\n\t}\n\n\tasync provisionExternalGroup(externalGroup: ExternalGroupDto, systemId: EntityId): Promise {\n\t\tif (externalGroup.users.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst existingGroup: Group | null = await this.groupService.findByExternalSource(\n\t\t\texternalGroup.externalId,\n\t\t\tsystemId\n\t\t);\n\n\t\tlet organizationId: string | undefined;\n\t\tif (externalGroup.externalOrganizationId) {\n\t\t\tconst existingSchool: LegacySchoolDo | null = await this.schoolService.getSchoolByExternalId(\n\t\t\t\texternalGroup.externalOrganizationId,\n\t\t\t\tsystemId\n\t\t\t);\n\n\t\t\tif (!existingSchool || !existingSchool.id) {\n\t\t\t\tthis.logger.info(new SchoolForGroupNotFoundLoggable(externalGroup));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\torganizationId = existingSchool.id;\n\t\t}\n\n\t\tconst users: GroupUser[] = await this.getFilteredGroupUsers(externalGroup, systemId);\n\n\t\tconst group: Group = new Group({\n\t\t\tid: existingGroup ? existingGroup.id : new ObjectId().toHexString(),\n\t\t\tname: externalGroup.name,\n\t\t\texternalSource: new ExternalSource({\n\t\t\t\texternalId: externalGroup.externalId,\n\t\t\t\tsystemId,\n\t\t\t}),\n\t\t\ttype: externalGroup.type,\n\t\t\torganizationId,\n\t\t\tvalidFrom: externalGroup.from,\n\t\t\tvalidUntil: externalGroup.until,\n\t\t\tusers,\n\t\t});\n\n\t\tawait this.groupService.save(group);\n\t}\n\n\tprivate async getFilteredGroupUsers(externalGroup: ExternalGroupDto, systemId: string): Promise {\n\t\tconst users: (GroupUser | null)[] = await Promise.all(\n\t\t\texternalGroup.users.map(async (externalGroupUser: ExternalGroupUserDto): Promise => {\n\t\t\t\tconst user: UserDO | null = await this.userService.findByExternalId(externalGroupUser.externalUserId, systemId);\n\t\t\t\tconst roles: RoleDto[] = await this.roleService.findByNames([externalGroupUser.roleName]);\n\n\t\t\t\tif (!user || !user.id || roles.length !== 1 || !roles[0].id) {\n\t\t\t\t\tthis.logger.info(new UserForGroupNotFoundLoggable(externalGroupUser));\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst groupUser: GroupUser = new GroupUser({\n\t\t\t\t\tuserId: user.id,\n\t\t\t\t\troleId: roles[0].id,\n\t\t\t\t});\n\n\t\t\t\treturn groupUser;\n\t\t\t})\n\t\t);\n\n\t\tconst filteredUsers: GroupUser[] = users.filter((groupUser): groupUser is GroupUser => groupUser !== null);\n\n\t\treturn filteredUsers;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/OidcProvisioningStrategy.html":{"url":"injectables/OidcProvisioningStrategy.html","title":"injectable - OidcProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n OidcProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts\n \n\n\n\n \n Extends\n \n \n ProvisioningStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n apply\n \n \n Abstract\n getData\n \n \n Abstract\n getType\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(oidcProvisioningService: OidcProvisioningService)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/oidc/oidc.strategy.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n oidcProvisioningService\n \n \n OidcProvisioningService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getType\n \n \n \n \n \n \n \n getType()\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:5\n\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport { LegacySchoolDo, UserDO } from '@shared/domain';\nimport { OauthDataDto, ProvisioningDto } from '../../dto';\nimport { ProvisioningStrategy } from '../base.strategy';\nimport { OidcProvisioningService } from './service/oidc-provisioning.service';\n\n@Injectable()\nexport abstract class OidcProvisioningStrategy extends ProvisioningStrategy {\n\tconstructor(protected readonly oidcProvisioningService: OidcProvisioningService) {\n\t\tsuper();\n\t}\n\n\toverride async apply(data: OauthDataDto): Promise {\n\t\tlet school: LegacySchoolDo | undefined;\n\t\tif (data.externalSchool) {\n\t\t\tschool = await this.oidcProvisioningService.provisionExternalSchool(data.externalSchool, data.system.systemId);\n\t\t}\n\n\t\tconst user: UserDO = await this.oidcProvisioningService.provisionExternalUser(\n\t\t\tdata.externalUser,\n\t\t\tdata.system.systemId,\n\t\t\tschool?.id\n\t\t);\n\n\t\tif (Configuration.get('FEATURE_SANIS_GROUP_PROVISIONING_ENABLED') && data.externalGroups) {\n\t\t\t// TODO: N21-1212 remove user from groups\n\n\t\t\tawait Promise.all(\n\t\t\t\tdata.externalGroups.map((externalGroup) =>\n\t\t\t\t\tthis.oidcProvisioningService.provisionExternalGroup(externalGroup, data.system.systemId)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn new ProvisioningDto({ externalUserId: user.externalId || data.externalUser.externalId });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Options.html":{"url":"interfaces/Options.html","title":"interface - Options","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Options\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/management/console/database-management.console.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n collection\n \n \n \n Optional\n \n onlyfactories\n \n \n \n Optional\n \n override\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n collection\n \n \n \n \n \n \n \n \n collection: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n onlyfactories\n \n \n \n \n \n \n \n \n onlyfactories: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n override\n \n \n \n \n \n \n \n \n override: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ConsoleWriterService } from '@shared/infra/console/console-writer/console-writer.service';\nimport { Command, Console } from 'nestjs-console';\nimport { DatabaseManagementUc } from '../uc/database-management.uc';\n\ninterface Options {\n\tcollection?: string;\n\toverride?: boolean;\n\tonlyfactories?: boolean;\n}\n\n@Console({ command: 'database', description: 'database setup console' })\nexport class DatabaseManagementConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService, private databaseManagementUc: DatabaseManagementUc) {}\n\n\t@Command({\n\t\tcommand: 'seed',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --onlyfactories',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'seed from factories only',\n\t\t\t},\n\t\t],\n\t\tdescription: 'reset database collections with seed data from filesystem',\n\t})\n\tasync seedCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\n\t\tconst collections = options.onlyfactories\n\t\t\t? await this.databaseManagementUc.seedDatabaseCollectionsFromFactories(filter)\n\t\t\t: await this.databaseManagementUc.seedDatabaseCollectionsFromFileSystem(filter);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'export',\n\t\toptions: [\n\t\t\t{\n\t\t\t\tflags: '-c, --collection ',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'filter for a single ',\n\t\t\t},\n\t\t\t{\n\t\t\t\tflags: '-o, --override',\n\t\t\t\trequired: false,\n\t\t\t\tdescription: 'optional export collections to setup folder and override existing files',\n\t\t\t},\n\t\t],\n\t\tdescription: 'export database collections to filesystem',\n\t})\n\tasync exportCollections(options: Options): Promise {\n\t\tconst filter = options?.collection ? [options.collection] : undefined;\n\t\tconst toSeedFolder = options?.override ? true : undefined;\n\t\tconst collections = await this.databaseManagementUc.exportCollectionsToFileSystem(filter, toSeedFolder);\n\t\tconst report = JSON.stringify(collections);\n\t\tthis.consoleWriter.info(report);\n\t\treturn collections;\n\t}\n\n\t@Command({\n\t\tcommand: 'sync-indexes',\n\t\toptions: [],\n\t\tdescription: 'sync indexes from nest and mikroorm',\n\t})\n\tasync syncIndexes(): Promise {\n\t\tawait this.databaseManagementUc.syncIndexes();\n\t\tconst report = 'sync of indexes is completed';\n\t\tthis.consoleWriter.info(report);\n\t\treturn report;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Page.html":{"url":"classes/Page.html","title":"class - Page","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Page\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/page.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n data\n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: T[], total: number)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n T[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : T[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/page.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class Page {\n\tdata: T[];\n\n\ttotal: number;\n\n\tconstructor(data: T[], total: number) {\n\t\tthis.data = data;\n\t\tthis.total = total;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PageContentDto.html":{"url":"classes/PageContentDto.html","title":"class - PageContentDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PageContentDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n cancelButtonUrl\n \n \n proceedButtonUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: PageContentDto)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n PageContentDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n cancelButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n proceedButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/dto/page-content.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class PageContentDto {\n\tproceedButtonUrl: string;\n\n\tcancelButtonUrl: string;\n\n\tconstructor(props: PageContentDto) {\n\t\tthis.proceedButtonUrl = props.proceedButtonUrl;\n\t\tthis.cancelButtonUrl = props.cancelButtonUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PageContentMapper.html":{"url":"injectables/PageContentMapper.html","title":"injectable - PageContentMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PageContentMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/mapper/page-content.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapDtoToResponse\n \n \n \n \n \n \nmapDtoToResponse(dto: PageContentDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/mapper/page-content.mapper.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n PageContentDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PageContentResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { PageContentDto } from '../service/dto/page-content.dto';\nimport { PageContentResponse } from '../controller/dto';\n\n@Injectable()\nexport class PageContentMapper {\n\tmapDtoToResponse(dto: PageContentDto): PageContentResponse {\n\t\tconst response: PageContentResponse = new PageContentResponse({\n\t\t\tproceedButtonUrl: dto.proceedButtonUrl,\n\t\t\tcancelButtonUrl: dto.cancelButtonUrl,\n\t\t});\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PageContentQueryParams.html":{"url":"classes/PageContentQueryParams.html","title":"class - PageContentQueryParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PageContentQueryParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/request/page-type.query.param.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n pageType\n \n \n \n \n sourceSystem\n \n \n \n \n targetSystem\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n pageType\n \n \n \n \n \n \n Type : PageTypes\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The Type of Page that is displayed', type: PageTypes})@IsEnum(PageTypes)\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/page-type.query.param.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n sourceSystem\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The Source System'})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/page-type.query.param.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n targetSystem\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The Target System'})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/page-type.query.param.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { PageTypes } from '../../../interface/page-types.enum';\n\nexport class PageContentQueryParams {\n\t@ApiProperty({ description: 'The Type of Page that is displayed', type: PageTypes })\n\t@IsEnum(PageTypes)\n\tpageType!: PageTypes;\n\n\t@ApiProperty({ description: 'The Source System' })\n\t@IsMongoId()\n\tsourceSystem!: string;\n\n\t@ApiProperty({ description: 'The Target System' })\n\t@IsMongoId()\n\ttargetSystem!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PageContentResponse.html":{"url":"classes/PageContentResponse.html","title":"class - PageContentResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PageContentResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/response/page-content.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n cancelButtonUrl\n \n \n \n proceedButtonUrl\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: PageContentResponse)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/page-content.response.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n PageContentResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n cancelButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The URL for the cancel button'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/page-content.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n proceedButtonUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The URL for the proceed button'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/page-content.response.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class PageContentResponse {\n\t@ApiProperty({\n\t\tdescription: 'The URL for the proceed button',\n\t})\n\tproceedButtonUrl: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The URL for the cancel button',\n\t})\n\tcancelButtonUrl: string;\n\n\tconstructor(props: PageContentResponse) {\n\t\tthis.proceedButtonUrl = props.proceedButtonUrl;\n\t\tthis.cancelButtonUrl = props.cancelButtonUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PaginationParams.html":{"url":"classes/PaginationParams.html","title":"class - PaginationParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PaginationParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/controller/dto/pagination.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n Optional\n skip\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 10\n \n \n \n \n Decorators : \n \n \n @IsInt()@Min(1)@Max(100)@ApiPropertyOptional({description: 'Page limit, defaults to 10.', minimum: 1, maximum: 99})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 0\n \n \n \n \n Decorators : \n \n \n @IsInt()@Min(0)@ApiPropertyOptional({description: 'Number of elements (not pages) to be skipped'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsInt, Max, Min } from 'class-validator';\nimport { ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class PaginationParams {\n\t@IsInt()\n\t@Min(0)\n\t@ApiPropertyOptional({ description: 'Number of elements (not pages) to be skipped' })\n\tskip?: number = 0;\n\n\t@IsInt()\n\t@Min(1)\n\t@Max(100)\n\t@ApiPropertyOptional({ description: 'Page limit, defaults to 10.', minimum: 1, maximum: 99 })\n\tlimit?: number = 10;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PaginationResponse.html":{"url":"classes/PaginationResponse.html","title":"class - PaginationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PaginationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/controller/dto/pagination.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Abstract\n data\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The items for the current page.'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/pagination.response.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport abstract class PaginationResponse {\n\tconstructor(total: number, skip?: number, limit?: number) {\n\t\tthis.total = total;\n\t\tthis.skip = skip;\n\t\tthis.limit = limit;\n\t}\n\n\t@ApiProperty({ description: 'The items for the current page.' })\n\tabstract data: T;\n\n\t@ApiProperty({ description: 'The total amount of items.', type: 'number' })\n\ttotal: number;\n\n\t@ApiProperty({ description: 'The amount of items skipped from the start.', type: 'number' })\n\tskip?: number;\n\n\t@ApiProperty({ description: 'The page size of the response.', type: 'number' })\n\tlimit?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ParameterTypeNotImplementedLoggableException.html":{"url":"classes/ParameterTypeNotImplementedLoggableException.html","title":"class - ParameterTypeNotImplementedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ParameterTypeNotImplementedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/error/parameter-type-not-implemented.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n NotImplementedException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(parameterType: string)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/parameter-type-not-implemented.loggable-exception.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n parameterType\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/parameter-type-not-implemented.loggable-exception.ts:9\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ParameterTypeNotImplementedLoggableException extends NotImplementedException implements Loggable {\n\tconstructor(private readonly parameterType: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'PARAMETER_TYPE_NOT_IMPLEMENTED',\n\t\t\tmessage: 'Launching an external tool with this parameter type is not implemented.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tparameterType: this.parameterType,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchGroupParams.html":{"url":"classes/PatchGroupParams.html","title":"class - PatchGroupParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchGroupParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/patch-group.params.ts\n \n\n\n \n Description\n \n \n DTO for Patching a the group name of a grid element.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'Title of the Group grid element'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/patch-group.params.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { SanitizeHtml } from '@shared/controller';\nimport { IsString } from 'class-validator';\n\n/**\n * DTO for Patching a the group name of a grid element.\n */\nexport class PatchGroupParams {\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Group grid element',\n\t})\n\ttitle!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchMyAccountParams.html":{"url":"classes/PatchMyAccountParams.html","title":"class - PatchMyAccountParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchMyAccountParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/patch-my-account.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n email\n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n \n Optional\n passwordNew\n \n \n \n \n passwordOld\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsEmail()@IsOptional()@ApiProperty({description: 'The new email address for the current user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The new first name for the current user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@ApiProperty({description: 'The new last name for the current user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n passwordNew\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsString()@IsOptional()@Matches(passwordPattern)@ApiProperty({description: 'The new password for the current user.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n passwordOld\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The current user password to authorize the update action.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-account.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PrivacyProtect } from '@shared/controller';\nimport { IsEmail, IsOptional, IsString, Matches } from 'class-validator';\nimport { passwordPattern } from './password-pattern';\n\nexport class PatchMyAccountParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The current user password to authorize the update action.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tpasswordOld!: string;\n\n\t@PrivacyProtect()\n\t@IsString()\n\t@IsOptional()\n\t@Matches(passwordPattern)\n\t@ApiProperty({\n\t\tdescription: 'The new password for the current user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tpasswordNew?: string;\n\n\t@IsEmail()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The new email address for the current user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\temail?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The new first name for the current user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tfirstName?: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'The new last name for the current user.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tlastName?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchMyPasswordParams.html":{"url":"classes/PatchMyPasswordParams.html","title":"class - PatchMyPasswordParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchMyPasswordParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/account/controller/dto/patch-my-password.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n confirmPassword\n \n \n \n \n \n \n password\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n confirmPassword\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsString()@Matches(passwordPattern)@ApiProperty({description: 'The confirmed new user password. Must match the password field.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-password.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n password\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @PrivacyProtect()@IsString()@Matches(passwordPattern)@ApiProperty({description: 'The new user password.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/account/controller/dto/patch-my-password.params.ts:15\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PrivacyProtect } from '@shared/controller';\nimport { IsString, Matches } from 'class-validator';\nimport { passwordPattern } from './password-pattern';\n\nexport class PatchMyPasswordParams {\n\t@PrivacyProtect()\n\t@IsString()\n\t@Matches(passwordPattern)\n\t@ApiProperty({\n\t\tdescription: 'The new user password.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tpassword!: string;\n\n\t@PrivacyProtect()\n\t@IsString()\n\t@Matches(passwordPattern)\n\t@ApiProperty({\n\t\tdescription: 'The confirmed new user password. Must match the password field.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tconfirmPassword!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchOrderParams.html":{"url":"classes/PatchOrderParams.html","title":"class - PatchOrderParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchOrderParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/patch-order.params.ts\n \n\n\n \n Description\n \n \n DTO for Patching the order of elements within the board.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n elements\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n elements\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @IsArray()@IsMongoId({each: true})@ApiProperty({description: 'Array ids determining the new order'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/patch-order.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsArray, IsMongoId } from 'class-validator';\n\n/**\n * DTO for Patching the order of elements within the board.\n */\nexport class PatchOrderParams {\n\t@IsArray()\n\t@IsMongoId({ each: true })\n\t@ApiProperty({\n\t\tdescription: 'Array ids determining the new order',\n\t})\n\telements!: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PatchVisibilityParams.html":{"url":"classes/PatchVisibilityParams.html","title":"class - PatchVisibilityParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PatchVisibilityParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/patch-visibility.params.ts\n \n\n\n \n Description\n \n \n DTO for Patching the visibility of a board element.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n visibility\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n visibility\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty({description: 'true to publish the element, false to unpublish'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/patch-visibility.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\n/**\n * DTO for Patching the visibility of a board element.\n */\nexport class PatchVisibilityParams {\n\t@IsBoolean()\n\t@ApiProperty({\n\t\tdescription: 'true to publish the element, false to unpublish',\n\t})\n\tvisibility!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PermissionService.html":{"url":"injectables/PermissionService.html","title":"injectable - PermissionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PermissionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/service/permission.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n hasUserAllSchoolPermissions\n \n \n resolvePermissions\n \n \n Private\n resolvePermissionsByRoles\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n hasUserAllSchoolPermissions\n \n \n \n \n \n \n \n \n \n \n \nhasUserAllSchoolPermissions(user: User, requiredPermissions: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/service/permission.service.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n requiredPermissions\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n resolvePermissions\n \n \n \n \n \n \n \n \n \n \n \nresolvePermissions(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/service/permission.service.ts:17\n \n \n\n\n \n \n Recursively resolve all roles and permissions of a user.\nIMPORTANT: The role collections of the user and nested roles will not be loaded lazily.\nPlease make sure you populate them before calling this method.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n resolvePermissionsByRoles\n \n \n \n \n \n \n \n resolvePermissionsByRoles(inputRoles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/service/permission.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n inputRoles\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string[]\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Role } from '../entity/role.entity';\nimport { User } from '../entity/user.entity';\n\n// TODO: Remove the PermissionService because it duplicates methods from the AuthorizationService.\n// Do not use this service, use the AuthorizationService!\n@Injectable()\nexport class PermissionService {\n\t/**\n\t * Recursively resolve all roles and permissions of a user.\n\t * IMPORTANT: The role collections of the user and nested roles will not be loaded lazily.\n\t * Please make sure you populate them before calling this method.\n\t * @param user\n\t * @deprecated\n\t * @returns\n\t */\n\tresolvePermissions(user: User): string[] {\n\t\tif (!user.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\t\tconst rolesAndPermissions = this.resolvePermissionsByRoles(user.roles.getItems());\n\n\t\treturn rolesAndPermissions;\n\t}\n\n\tprivate resolvePermissionsByRoles(inputRoles: Role[]): string[] {\n\t\tlet permissions: string[] = [];\n\n\t\tfor (let i = 0; i 0) {\n\t\t\t\tconst subPermissions = this.resolvePermissionsByRoles(innerRoles);\n\t\t\t\tpermissions = [...permissions, ...subPermissions];\n\t\t\t}\n\t\t}\n\n\t\tpermissions = [...new Set(permissions)];\n\n\t\treturn permissions;\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\thasUserAllSchoolPermissions(user: User, requiredPermissions: string[]): boolean {\n\t\tif (!Array.isArray(requiredPermissions) || requiredPermissions.length === 0) {\n\t\t\treturn false;\n\t\t}\n\t\tconst usersPermissions = this.resolvePermissions(user);\n\t\tconst hasPermissions = requiredPermissions.every((p) => usersPermissions.includes(p));\n\t\treturn hasPermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PlainTextMailContent.html":{"url":"interfaces/PlainTextMailContent.html","title":"interface - PlainTextMailContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PlainTextMailContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/mail/mail.interface.ts\n \n\n\n\n \n Extends\n \n \n MailContent\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n htmlContent\n \n \n \n \n plainTextContent\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n htmlContent\n \n \n \n \n \n \n \n \n htmlContent: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n plainTextContent\n \n \n \n \n \n \n \n \n plainTextContent: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n interface MailAttachment {\n\tbase64Content: string;\n\n\tmimeType: string;\n\n\tname: string;\n}\n\ninterface InlineAttachment extends MailAttachment {\n\tcontentDisposition: 'INLINE';\n\n\tcontentId: string;\n}\n\ninterface AppendedAttachment extends MailAttachment {\n\tcontentDisposition: 'ATTACHMENT';\n}\n\ninterface MailContent {\n\tsubject: string;\n\n\tattachments?: (InlineAttachment | AppendedAttachment)[];\n}\n\ninterface PlainTextMailContent extends MailContent {\n\thtmlContent?: string;\n\n\tplainTextContent: string;\n}\n\ninterface HtmlMailContent extends MailContent {\n\thtmlContent: string;\n\n\tplainTextContent?: string;\n}\n\nexport interface Mail {\n\tmail: PlainTextMailContent | HtmlMailContent;\n\n\trecipients: string[];\n\n\tfrom?: string;\n\n\tcc?: string[];\n\n\tbcc?: string[];\n\n\treplyTo?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PreviewFileParams.html":{"url":"interfaces/PreviewFileParams.html","title":"interface - PreviewFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PreviewFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/interface/interfaces.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n bytesRange\n \n \n \n \n downloadParams\n \n \n \n \n filePath\n \n \n \n \n fileRecord\n \n \n \n \n hash\n \n \n \n \n previewParams\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bytesRange\n \n \n \n \n \n \n \n \n bytesRange: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n downloadParams\n \n \n \n \n \n \n \n \n downloadParams: DownloadFileParams\n\n \n \n\n\n \n \n Type : DownloadFileParams\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n filePath\n \n \n \n \n \n \n \n \n filePath: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n fileRecord\n \n \n \n \n \n \n \n \n fileRecord: FileRecord\n\n \n \n\n\n \n \n Type : FileRecord\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n hash\n \n \n \n \n \n \n \n \n hash: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n previewParams\n \n \n \n \n \n \n \n \n previewParams: PreviewParams\n\n \n \n\n\n \n \n Type : PreviewParams\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\nimport type { DownloadFileParams, PreviewParams } from '../controller/dto';\nimport { FileRecord } from '../entity';\n\nexport interface GetFileResponse {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n\tname: string;\n}\n\nexport interface PreviewFileParams {\n\tfileRecord: FileRecord;\n\tdownloadParams: DownloadFileParams;\n\tpreviewParams: PreviewParams;\n\thash: string;\n\tfilePath: string;\n\tbytesRange?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PreviewParams.html":{"url":"classes/PreviewParams.html","title":"class - PreviewParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PreviewParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n forceUpdate\n \n \n \n \n \n Optional\n outputFormat\n \n \n \n \n \n Optional\n width\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n forceUpdate\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()@StringToBoolean()@ApiPropertyOptional({description: 'If true, the preview will be generated again.'})\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:125\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n outputFormat\n \n \n \n \n \n \n Type : PreviewOutputMimeTypes\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes'})@IsOptional()@IsEnum(PreviewOutputMimeTypes)\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:112\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n width\n \n \n \n \n \n \n Type : PreviewWidth\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({enum: PreviewWidth, enumName: 'PreviewWidth'})@IsOptional()@IsEnum(PreviewWidth)\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:117\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PreviewService.html":{"url":"injectables/PreviewService.html","title":"injectable - PreviewService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PreviewService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/service/preview.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkIfPreviewPossible\n \n \n Public\n Async\n deletePreviews\n \n \n Private\n Async\n generatePreview\n \n \n Private\n getFormat\n \n \n Public\n Async\n getPreview\n \n \n Private\n Async\n getPreviewFile\n \n \n Private\n getPreviewName\n \n \n Private\n resizeAndConvert\n \n \n Private\n Async\n tryGetPreviewOrGenerate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(storageClient: S3ClientAdapter, fileStorageService: FilesStorageService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n storageClient\n \n \n S3ClientAdapter\n \n \n \n No\n \n \n \n \n fileStorageService\n \n \n FilesStorageService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkIfPreviewPossible\n \n \n \n \n \n \n \n checkIfPreviewPossible(fileRecord: FileRecord)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void | UnprocessableEntityException\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n deletePreviews\n \n \n \n \n \n \n \n deletePreviews(fileRecords: FileRecord[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecords\n \n FileRecord[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n generatePreview\n \n \n \n \n \n \n \n generatePreview(params: PreviewFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getFormat\n \n \n \n \n \n \n \n getFormat(mimeType: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:133\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n mimeType\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getPreview\n \n \n \n \n \n \n \n getPreview(fileRecord: FileRecord, downloadParams: DownloadFileParams, previewParams: PreviewParams, bytesRange?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n downloadParams\n \n DownloadFileParams\n \n\n \n No\n \n\n\n \n \n previewParams\n \n PreviewParams\n \n\n \n No\n \n\n\n \n \n bytesRange\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getPreviewFile\n \n \n \n \n \n \n \n getPreviewFile(params: PreviewFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getPreviewName\n \n \n \n \n \n \n \n getPreviewName(fileRecord: FileRecord, outputFormat?: PreviewOutputMimeTypes)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:139\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n outputFormat\n \n PreviewOutputMimeTypes\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n resizeAndConvert\n \n \n \n \n \n \n \n resizeAndConvert(original: GetFileResponse, fileRecord: FileRecord, previewParams: PreviewParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:112\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n original\n \n GetFileResponse\n \n\n \n No\n \n\n\n \n \n fileRecord\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n previewParams\n \n PreviewParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PassThrough\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n tryGetPreviewOrGenerate\n \n \n \n \n \n \n \n tryGetPreviewOrGenerate(params: PreviewFileParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/files-storage/service/preview.service.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n PreviewFileParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Inject, Injectable, NotFoundException, UnprocessableEntityException } from '@nestjs/common';\nimport { S3ClientAdapter } from '@shared/infra/s3-client';\nimport { LegacyLogger } from '@src/core/logger';\nimport { subClass } from 'gm';\nimport { PassThrough } from 'stream';\nimport { DownloadFileParams, PreviewParams } from '../controller/dto';\nimport { FileRecord, PreviewStatus } from '../entity';\nimport { ErrorType } from '../error';\nimport { FILES_STORAGE_S3_CONNECTION } from '../files-storage.config';\nimport { createPreviewDirectoryPath, createPreviewFilePath, createPreviewNameHash } from '../helper';\nimport { GetFileResponse, PreviewFileParams } from '../interface';\nimport { PreviewOutputMimeTypes } from '../interface/preview-output-mime-types.enum';\nimport { FileDtoBuilder, FileResponseBuilder } from '../mapper';\nimport { FilesStorageService } from './files-storage.service';\n\n@Injectable()\nexport class PreviewService {\n\tconstructor(\n\t\t@Inject(FILES_STORAGE_S3_CONNECTION) private readonly storageClient: S3ClientAdapter,\n\t\tprivate readonly fileStorageService: FilesStorageService,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(PreviewService.name);\n\t}\n\n\tpublic async getPreview(\n\t\tfileRecord: FileRecord,\n\t\tdownloadParams: DownloadFileParams,\n\t\tpreviewParams: PreviewParams,\n\t\tbytesRange?: string\n\t): Promise {\n\t\tthis.checkIfPreviewPossible(fileRecord);\n\n\t\tconst hash = createPreviewNameHash(fileRecord.id, previewParams);\n\t\tconst filePath = createPreviewFilePath(fileRecord.getSchoolId(), hash, fileRecord.id);\n\n\t\tlet response: GetFileResponse;\n\n\t\tconst previewFileParams = { fileRecord, downloadParams, previewParams, hash, filePath, bytesRange };\n\n\t\tif (previewParams.forceUpdate) {\n\t\t\tresponse = await this.generatePreview(previewFileParams);\n\t\t} else {\n\t\t\tresponse = await this.tryGetPreviewOrGenerate(previewFileParams);\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tpublic async deletePreviews(fileRecords: FileRecord[]): Promise {\n\t\ttry {\n\t\t\tconst paths = fileRecords.map((fileRecord) =>\n\t\t\t\tcreatePreviewDirectoryPath(fileRecord.getSchoolId(), fileRecord.id)\n\t\t\t);\n\n\t\t\tconst promises = paths.map((path) => this.storageClient.deleteDirectory(path));\n\n\t\t\tawait Promise.all(promises);\n\t\t} catch (error) {\n\t\t\tthis.logger.warn(error);\n\t\t}\n\t}\n\n\tprivate checkIfPreviewPossible(fileRecord: FileRecord): void | UnprocessableEntityException {\n\t\tif (fileRecord.getPreviewStatus() !== PreviewStatus.PREVIEW_POSSIBLE) {\n\t\t\tthis.logger.warn(`could not generate preview for : ${fileRecord.id} ${fileRecord.mimeType}`);\n\t\t\tthrow new UnprocessableEntityException(ErrorType.PREVIEW_NOT_POSSIBLE);\n\t\t}\n\t}\n\n\tprivate async tryGetPreviewOrGenerate(params: PreviewFileParams): Promise {\n\t\tlet file: GetFileResponse;\n\n\t\ttry {\n\t\t\tfile = await this.getPreviewFile(params);\n\t\t} catch (error) {\n\t\t\tif (!(error instanceof NotFoundException)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tfile = await this.generatePreview(params);\n\t\t}\n\n\t\treturn file;\n\t}\n\n\tprivate async getPreviewFile(params: PreviewFileParams): Promise {\n\t\tconst { fileRecord, filePath, bytesRange, previewParams } = params;\n\t\tconst name = this.getPreviewName(fileRecord, previewParams.outputFormat);\n\t\tconst file = await this.storageClient.get(filePath, bytesRange);\n\n\t\tconst response = FileResponseBuilder.build(file, name);\n\n\t\treturn response;\n\t}\n\n\tprivate async generatePreview(params: PreviewFileParams): Promise {\n\t\tconst { fileRecord, downloadParams, previewParams, hash, filePath, bytesRange } = params;\n\n\t\tconst original = await this.fileStorageService.download(fileRecord, downloadParams, bytesRange);\n\t\tconst preview = this.resizeAndConvert(original, fileRecord, previewParams);\n\n\t\tconst format = previewParams.outputFormat ?? fileRecord.mimeType;\n\t\tconst fileDto = FileDtoBuilder.build(hash, preview, format);\n\t\tawait this.storageClient.create(filePath, fileDto);\n\n\t\tconst response = await this.getPreviewFile(params);\n\n\t\treturn response;\n\t}\n\n\tprivate resizeAndConvert(\n\t\toriginal: GetFileResponse,\n\t\tfileRecord: FileRecord,\n\t\tpreviewParams: PreviewParams\n\t): PassThrough {\n\t\tconst mimeType = previewParams.outputFormat ?? fileRecord.mimeType;\n\t\tconst format = this.getFormat(mimeType);\n\t\tconst im = subClass({ imageMagick: '7+' });\n\n\t\tconst preview = im(original.data, fileRecord.name);\n\t\tconst { width } = previewParams;\n\n\t\tif (width) {\n\t\t\tpreview.resize(width, undefined, '>');\n\t\t}\n\n\t\tconst result = preview.stream(format);\n\n\t\treturn result;\n\t}\n\n\tprivate getFormat(mimeType: string): string {\n\t\tconst format = mimeType.split('/')[1];\n\n\t\treturn format;\n\t}\n\n\tprivate getPreviewName(fileRecord: FileRecord, outputFormat?: PreviewOutputMimeTypes): string {\n\t\tif (!outputFormat) {\n\t\t\treturn fileRecord.name;\n\t\t}\n\n\t\tconst fileNameWithoutExtension = fileRecord.name.split('.')[0];\n\t\tconst format = this.getFormat(outputFormat);\n\t\tconst name = `${fileNameWithoutExtension}.${format}`;\n\n\t\treturn name;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PrometheusMetricsConfig.html":{"url":"classes/PrometheusMetricsConfig.html","title":"class - PrometheusMetricsConfig","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PrometheusMetricsConfig\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/metrics/prometheus/config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n _collectDefaultMetrics\n \n \n Private\n Readonly\n _collectMetricsRouteMetrics\n \n \n Private\n Static\n _instance\n \n \n Private\n Readonly\n _isEnabled\n \n \n Private\n Readonly\n _port\n \n \n Private\n Readonly\n _route\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n reload\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n isEnabled\n \n \n route\n \n \n port\n \n \n collectDefaultMetrics\n \n \n collectMetricsRouteMetrics\n \n \n instance\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \n Private\n constructor()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:34\n \n \n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n _collectDefaultMetrics\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n _collectMetricsRouteMetrics\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Static\n _instance\n \n \n \n \n \n \n Type : PrometheusMetricsConfig\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n _isEnabled\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n _port\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n _route\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:12\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n reload\n \n \n \n \n \n \n \n reload()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:52\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n isEnabled\n \n \n\n \n \n getisEnabled()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:8\n \n \n\n \n \n \n \n \n \n \n route\n \n \n\n \n \n getroute()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:14\n \n \n\n \n \n \n \n \n \n \n port\n \n \n\n \n \n getport()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:20\n \n \n\n \n \n \n \n \n \n \n collectDefaultMetrics\n \n \n\n \n \n getcollectDefaultMetrics()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:26\n \n \n\n \n \n \n \n \n \n \n collectMetricsRouteMetrics\n \n \n\n \n \n getcollectMetricsRouteMetrics()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:32\n \n \n\n \n \n \n \n \n \n \n instance\n \n \n\n \n \n getinstance()\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/config.ts:44\n \n \n\n \n \n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\n\nexport class PrometheusMetricsConfig {\n\tprivate static _instance: PrometheusMetricsConfig;\n\n\tprivate readonly _isEnabled: boolean;\n\n\tget isEnabled(): boolean {\n\t\treturn this._isEnabled;\n\t}\n\n\tprivate readonly _route: string;\n\n\tget route(): string {\n\t\treturn this._route;\n\t}\n\n\tprivate readonly _port: number;\n\n\tget port(): number {\n\t\treturn this._port;\n\t}\n\n\tprivate readonly _collectDefaultMetrics: boolean;\n\n\tget collectDefaultMetrics(): boolean {\n\t\treturn this._collectDefaultMetrics;\n\t}\n\n\tprivate readonly _collectMetricsRouteMetrics: boolean;\n\n\tget collectMetricsRouteMetrics(): boolean {\n\t\treturn this._collectMetricsRouteMetrics;\n\t}\n\n\tprivate constructor() {\n\t\tthis._isEnabled = Configuration.get('FEATURE_PROMETHEUS_METRICS_ENABLED') as boolean;\n\t\tthis._route = Configuration.get('PROMETHEUS_METRICS_ROUTE') as string;\n\t\tthis._port = Configuration.get('PROMETHEUS_METRICS_PORT') as number;\n\t\tthis._collectDefaultMetrics = Configuration.get('PROMETHEUS_METRICS_COLLECT_DEFAULT_METRICS') as boolean;\n\t\tthis._collectMetricsRouteMetrics = Configuration.get('PROMETHEUS_METRICS_COLLECT_METRICS_ROUTE_METRICS') as boolean;\n\t}\n\n\tpublic static get instance() {\n\t\tif (this._instance === undefined) {\n\t\t\tthis._instance = new this();\n\t\t}\n\n\t\treturn this._instance;\n\t}\n\n\tpublic static reload() {\n\t\tthis._instance = new this();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PrometheusMetricsSetupStateLoggable.html":{"url":"classes/PrometheusMetricsSetupStateLoggable.html","title":"class - PrometheusMetricsSetupStateLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PrometheusMetricsSetupStateLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/apps/helpers/prometheus-metrics.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(state: PrometheusMetricsSetupState)\n \n \n \n \n Defined in apps/server/src/apps/helpers/prometheus-metrics.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n state\n \n \n PrometheusMetricsSetupState\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/apps/helpers/prometheus-metrics.ts:22\n \n \n\n\n \n \n\n \n Returns : LogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Express } from 'express';\n\nimport {\n\tPrometheusMetricsConfig,\n\tcreateAPIResponseTimeMetricMiddleware,\n\tcreatePrometheusMetricsApp,\n} from '@shared/infra/metrics';\nimport { LogMessage, Loggable, Logger } from '@src/core/logger';\nimport { AppStartLoggable } from './app-start-loggable';\n\nexport const enum PrometheusMetricsSetupState {\n\tFEATURE_DISABLED_MIDDLEWARES_WILL_NOT_BE_CREATED = 'Prometheus metrics feature is disabled - no metrics middlewares will be added to the app',\n\tAPI_RESPONSE_TIME_METRIC_MIDDLEWARE_SUCCESSFULLY_ADDED = 'API response time metric middleware successfully added to the app',\n\tFEATURE_DISABLED_APP_WILL_NOT_BE_CREATED = 'Prometheus metrics feature is disabled - Prometheus metrics app will not be created',\n\tCOLLECTING_DEFAULT_METRICS_DISABLED = 'Collecting default metrics is disabled - only the custom metrics will be collected',\n\tCOLLECTING_METRICS_ROUTE_METRICS_DISABLED = 'Collecting metrics route metrics is disabled - no metrics route calls will be added to the metrics',\n}\n\nexport class PrometheusMetricsSetupStateLoggable implements Loggable {\n\tconstructor(private readonly state: PrometheusMetricsSetupState) {}\n\n\tgetLogMessage(): LogMessage {\n\t\treturn {\n\t\t\tmessage: 'Setting up Prometheus metrics...',\n\t\t\tdata: {\n\t\t\t\tstate: this.state,\n\t\t\t},\n\t\t};\n\t}\n}\n\nexport const addPrometheusMetricsMiddlewaresIfEnabled = (logger: Logger, app: Express) => {\n\tif (!PrometheusMetricsConfig.instance.isEnabled) {\n\t\tlogger.debug(\n\t\t\tnew PrometheusMetricsSetupStateLoggable(\n\t\t\t\tPrometheusMetricsSetupState.FEATURE_DISABLED_MIDDLEWARES_WILL_NOT_BE_CREATED\n\t\t\t)\n\t\t);\n\n\t\treturn;\n\t}\n\n\tapp.use(createAPIResponseTimeMetricMiddleware());\n\n\tlogger.debug(\n\t\tnew PrometheusMetricsSetupStateLoggable(\n\t\t\tPrometheusMetricsSetupState.API_RESPONSE_TIME_METRIC_MIDDLEWARE_SUCCESSFULLY_ADDED\n\t\t)\n\t);\n};\n\nexport const createAndStartPrometheusMetricsAppIfEnabled = (logger: Logger) => {\n\tif (!PrometheusMetricsConfig.instance.isEnabled) {\n\t\tlogger.debug(\n\t\t\tnew PrometheusMetricsSetupStateLoggable(PrometheusMetricsSetupState.FEATURE_DISABLED_APP_WILL_NOT_BE_CREATED)\n\t\t);\n\n\t\treturn;\n\t}\n\n\tconst { route, collectDefaultMetrics, collectMetricsRouteMetrics } = PrometheusMetricsConfig.instance;\n\n\tif (!collectDefaultMetrics) {\n\t\tlogger.debug(\n\t\t\tnew PrometheusMetricsSetupStateLoggable(PrometheusMetricsSetupState.COLLECTING_DEFAULT_METRICS_DISABLED)\n\t\t);\n\t}\n\n\tif (!collectMetricsRouteMetrics) {\n\t\tlogger.debug(\n\t\t\tnew PrometheusMetricsSetupStateLoggable(PrometheusMetricsSetupState.COLLECTING_METRICS_ROUTE_METRICS_DISABLED)\n\t\t);\n\t}\n\n\tconst prometheusMetricsAppPort = PrometheusMetricsConfig.instance.port;\n\n\tconst prometheusMetricsApp = createPrometheusMetricsApp(route, collectDefaultMetrics, collectMetricsRouteMetrics);\n\n\tprometheusMetricsApp.listen(prometheusMetricsAppPort, () => {\n\t\tlogger.info(\n\t\t\tnew AppStartLoggable({\n\t\t\t\tappName: 'Prometheus metrics server app',\n\t\t\t\tport: prometheusMetricsAppPort,\n\t\t\t\tmountsDescription: `${route} --> Prometheus metrics`,\n\t\t\t})\n\t\t);\n\t});\n};\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PropertyData.html":{"url":"classes/PropertyData.html","title":"class - PropertyData","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PropertyData\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/types/property-data.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n location\n \n \n name\n \n \n value\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: PropertyData)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/property-data.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n PropertyData\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n location\n \n \n \n \n \n \n Type : PropertyLocation\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/property-data.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/property-data.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n value\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/property-data.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PropertyLocation } from './property-location';\n\nexport class PropertyData {\n\tname: string;\n\n\tvalue: string;\n\n\tlocation?: PropertyLocation;\n\n\tconstructor(props: PropertyData) {\n\t\tthis.name = props.name;\n\t\tthis.value = props.value;\n\t\tthis.location = props.location;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderConsentResponse.html":{"url":"interfaces/ProviderConsentResponse.html","title":"interface - ProviderConsentResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderConsentResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/consent.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n acr\n \n \n \n Optional\n \n amr\n \n \n \n \n challenge\n \n \n \n Optional\n \n client\n \n \n \n Optional\n \n context\n \n \n \n Optional\n \n login_challenge\n \n \n \n Optional\n \n login_session_id\n \n \n \n Optional\n \n oidc_context\n \n \n \n Optional\n \n request_url\n \n \n \n Optional\n \n requested_access_token_audience\n \n \n \n Optional\n \n requested_scope\n \n \n \n Optional\n \n skip\n \n \n \n Optional\n \n subject\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n acr\n \n \n \n \n \n \n \n \n acr: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n amr\n \n \n \n \n \n \n \n \n amr: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n challenge\n \n \n \n \n \n \n \n \n challenge: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n \n \n client: ProviderOauthClient\n\n \n \n\n\n \n \n Type : ProviderOauthClient\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n context\n \n \n \n \n \n \n \n \n context: object\n\n \n \n\n\n \n \n Type : object\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n login_challenge\n \n \n \n \n \n \n \n \n login_challenge: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n login_session_id\n \n \n \n \n \n \n \n \n login_session_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n oidc_context\n \n \n \n \n \n \n \n \n oidc_context: ProviderOidcContext\n\n \n \n\n\n \n \n Type : ProviderOidcContext\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n request_url\n \n \n \n \n \n \n \n \n request_url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n requested_access_token_audience\n \n \n \n \n \n \n \n \n requested_access_token_audience: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n requested_scope\n \n \n \n \n \n \n \n \n requested_scope: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n \n \n skip: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n \n \n subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ProviderOauthClient } from '../interface/oauth-client.interface';\nimport { ProviderOidcContext } from '../interface/oidc-context.interface';\n\nexport interface ProviderConsentResponse {\n\tacr?: string;\n\n\tamr?: string[];\n\n\tchallenge: string;\n\n\tclient?: ProviderOauthClient;\n\n\tcontext?: object;\n\n\tlogin_challenge?: string;\n\n\tlogin_session_id?: string;\n\n\toidc_context?: ProviderOidcContext;\n\n\trequest_url?: string;\n\n\trequested_access_token_audience?: string[];\n\n\trequested_scope?: string[];\n\n\tskip?: boolean;\n\n\tsubject?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderConsentSessionResponse.html":{"url":"interfaces/ProviderConsentSessionResponse.html","title":"interface - ProviderConsentSessionResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderConsentSessionResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/consent-session.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n consent_request\n \n \n \n Optional\n \n grant_access_token_audience\n \n \n \n Optional\n \n grant_scope\n \n \n \n Optional\n \n handled_at\n \n \n \n Optional\n \n remember\n \n \n \n Optional\n \n remember_for\n \n \n \n Optional\n \n session\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n consent_request\n \n \n \n \n \n \n \n \n consent_request: ProviderConsentResponse\n\n \n \n\n\n \n \n Type : ProviderConsentResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n grant_access_token_audience\n \n \n \n \n \n \n \n \n grant_access_token_audience: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n grant_scope\n \n \n \n \n \n \n \n \n grant_scope: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n handled_at\n \n \n \n \n \n \n \n \n handled_at: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember\n \n \n \n \n \n \n \n \n remember: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n remember_for\n \n \n \n \n \n \n \n \n remember_for: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n session\n \n \n \n \n \n \n \n \n session: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { ProviderConsentResponse } from './consent.response';\n\nexport interface ProviderConsentSessionResponse {\n\tconsent_request: ProviderConsentResponse;\n\n\tgrant_access_token_audience?: string[];\n\n\tgrant_scope?: string[];\n\n\thandled_at?: string;\n\n\tremember?: boolean;\n\n\tremember_for?: number;\n\n\tsession?: {\n\t\taccess_token: string;\n\n\t\tid_token: string;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderLoginResponse.html":{"url":"interfaces/ProviderLoginResponse.html","title":"interface - ProviderLoginResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderLoginResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/login.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n challenge\n \n \n \n \n client\n \n \n \n Optional\n \n oidc_context\n \n \n \n \n request_url\n \n \n \n \n requested_access_token_audience\n \n \n \n \n requested_scope\n \n \n \n Optional\n \n session_id\n \n \n \n \n skip\n \n \n \n \n subject\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n challenge\n \n \n \n \n \n \n \n \n challenge: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n \n \n client: ProviderOauthClient\n\n \n \n\n\n \n \n Type : ProviderOauthClient\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n oidc_context\n \n \n \n \n \n \n \n \n oidc_context: ProviderOidcContext\n\n \n \n\n\n \n \n Type : ProviderOidcContext\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n request_url\n \n \n \n \n \n \n \n \n request_url: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n requested_access_token_audience\n \n \n \n \n \n \n \n \n requested_access_token_audience: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n requested_scope\n \n \n \n \n \n \n \n \n requested_scope: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n session_id\n \n \n \n \n \n \n \n \n session_id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n skip\n \n \n \n \n \n \n \n \n skip: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n subject\n \n \n \n \n \n \n \n \n subject: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ProviderOauthClient } from '../interface/oauth-client.interface';\nimport { ProviderOidcContext } from '../interface/oidc-context.interface';\n\nexport interface ProviderLoginResponse {\n\tchallenge: string;\n\n\tclient: ProviderOauthClient;\n\n\toidc_context?: ProviderOidcContext;\n\n\trequest_url: string;\n\n\trequested_access_token_audience: string[];\n\n\trequested_scope: string[];\n\n\tsession_id?: string;\n\n\tskip: boolean;\n\n\tsubject: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderOidcContext.html":{"url":"interfaces/ProviderOidcContext.html","title":"interface - ProviderOidcContext","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderOidcContext\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/interface/oidc-context.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n acr_values\n \n \n \n Optional\n \n display\n \n \n \n Optional\n \n id_token_hint_claims\n \n \n \n Optional\n \n login_hint\n \n \n \n Optional\n \n ui_locales\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n acr_values\n \n \n \n \n \n \n \n \n acr_values: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n display\n \n \n \n \n \n \n \n \n display: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id_token_hint_claims\n \n \n \n \n \n \n \n \n id_token_hint_claims: object\n\n \n \n\n\n \n \n Type : object\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n login_hint\n \n \n \n \n \n \n \n \n login_hint: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n ui_locales\n \n \n \n \n \n \n \n \n ui_locales: string[]\n\n \n \n\n\n \n \n Type : string[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface ProviderOidcContext {\n\tacr_values?: string[];\n\n\tdisplay?: string;\n\n\tid_token_hint_claims?: object;\n\n\tlogin_hint?: string;\n\n\tui_locales?: string[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ProviderRedirectResponse.html":{"url":"interfaces/ProviderRedirectResponse.html","title":"interface - ProviderRedirectResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ProviderRedirectResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/response/redirect.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n redirect_to\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n redirect_to\n \n \n \n \n \n \n \n \n redirect_to: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface ProviderRedirectResponse {\n\tredirect_to: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ProvisioningDto.html":{"url":"classes/ProvisioningDto.html","title":"class - ProvisioningDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ProvisioningDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/provisioning.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n externalUserId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(provisioningDto: ProvisioningDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n provisioningDto\n \n \n ProvisioningDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n externalUserId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning.dto.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class ProvisioningDto {\n\texternalUserId: string;\n\n\tconstructor(provisioningDto: ProvisioningDto) {\n\t\tthis.externalUserId = provisioningDto.externalUserId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ProvisioningModule.html":{"url":"modules/ProvisioningModule.html","title":"module - ProvisioningModule","body":"\n \n\n\n\n\n Modules\n ProvisioningModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ProvisioningModule\n\n\n\ncluster_ProvisioningModule_exports\n\n\n\ncluster_ProvisioningModule_providers\n\n\n\ncluster_ProvisioningModule_imports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nProvisioningModule -->\n\nAccountModule->ProvisioningModule\n\n\n\n\n\nGroupModule\n\nGroupModule\n\nProvisioningModule -->\n\nGroupModule->ProvisioningModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nProvisioningModule -->\n\nLegacySchoolModule->ProvisioningModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nProvisioningModule -->\n\nLoggerModule->ProvisioningModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nProvisioningModule -->\n\nRoleModule->ProvisioningModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nProvisioningModule -->\n\nSystemModule->ProvisioningModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nProvisioningModule -->\n\nUserModule->ProvisioningModule\n\n\n\n\n\nProvisioningService \n\nProvisioningService \n\nProvisioningService -->\n\nProvisioningModule->ProvisioningService \n\n\n\n\n\nIservProvisioningStrategy\n\nIservProvisioningStrategy\n\nProvisioningModule -->\n\nIservProvisioningStrategy->ProvisioningModule\n\n\n\n\n\nOidcMockProvisioningStrategy\n\nOidcMockProvisioningStrategy\n\nProvisioningModule -->\n\nOidcMockProvisioningStrategy->ProvisioningModule\n\n\n\n\n\nOidcProvisioningService\n\nOidcProvisioningService\n\nProvisioningModule -->\n\nOidcProvisioningService->ProvisioningModule\n\n\n\n\n\nProvisioningService\n\nProvisioningService\n\nProvisioningModule -->\n\nProvisioningService->ProvisioningModule\n\n\n\n\n\nSanisProvisioningStrategy\n\nSanisProvisioningStrategy\n\nProvisioningModule -->\n\nSanisProvisioningStrategy->ProvisioningModule\n\n\n\n\n\nSanisResponseMapper\n\nSanisResponseMapper\n\nProvisioningModule -->\n\nSanisResponseMapper->ProvisioningModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/provisioning/provisioning.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n IservProvisioningStrategy\n \n \n OidcMockProvisioningStrategy\n \n \n OidcProvisioningService\n \n \n ProvisioningService\n \n \n SanisProvisioningStrategy\n \n \n SanisResponseMapper\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n GroupModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n RoleModule\n \n \n SystemModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n ProvisioningService\n \n \n \n \n \n\n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@src/modules/account/account.module';\nimport { RoleModule } from '@src/modules/role';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { SystemModule } from '@src/modules/system/system.module';\nimport { UserModule } from '@src/modules/user';\nimport { GroupModule } from '@src/modules/group';\nimport { ProvisioningService } from './service/provisioning.service';\nimport { IservProvisioningStrategy, OidcMockProvisioningStrategy, SanisProvisioningStrategy } from './strategy';\nimport { OidcProvisioningService } from './strategy/oidc/service/oidc-provisioning.service';\nimport { SanisResponseMapper } from './strategy/sanis/sanis-response.mapper';\n\n@Module({\n\timports: [\n\t\tAccountModule,\n\t\tLegacySchoolModule,\n\t\tUserModule,\n\t\tRoleModule,\n\t\tSystemModule,\n\t\tHttpModule,\n\t\tLoggerModule,\n\t\tGroupModule,\n\t],\n\tproviders: [\n\t\tProvisioningService,\n\t\tSanisResponseMapper,\n\t\tOidcProvisioningService,\n\t\tSanisProvisioningStrategy,\n\t\tIservProvisioningStrategy,\n\t\tOidcMockProvisioningStrategy,\n\t],\n\texports: [ProvisioningService],\n})\nexport class ProvisioningModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ProvisioningService.html":{"url":"injectables/ProvisioningService.html","title":"injectable - ProvisioningService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ProvisioningService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/service/provisioning.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n strategies\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n determineInput\n \n \n Async\n getData\n \n \n Private\n getProvisioningStrategy\n \n \n Async\n provisionData\n \n \n Protected\n registerStrategy\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemService: SystemService, sanisStrategy: SanisProvisioningStrategy, iservStrategy: IservProvisioningStrategy, oidcMockStrategy: OidcMockProvisioningStrategy)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n sanisStrategy\n \n \n SanisProvisioningStrategy\n \n \n \n No\n \n \n \n \n iservStrategy\n \n \n IservProvisioningStrategy\n \n \n \n No\n \n \n \n \n oidcMockStrategy\n \n \n OidcMockProvisioningStrategy\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n determineInput\n \n \n \n \n \n \n \n determineInput(systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getData\n \n \n \n \n \n \n \n getData(systemId: string, idToken: string, accessToken: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n idToken\n \n string\n \n\n \n No\n \n\n\n \n \n accessToken\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getProvisioningStrategy\n \n \n \n \n \n \n \n getProvisioningStrategy(systemStrategy: SystemProvisioningStrategy)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemStrategy\n \n SystemProvisioningStrategy\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ProvisioningStrategy\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n provisionData\n \n \n \n \n \n \n \n provisionData(oauthData: OauthDataDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthData\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n registerStrategy\n \n \n \n \n \n \n \n registerStrategy(strategy: ProvisioningStrategy)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n strategy\n \n ProvisioningStrategy\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n strategies\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/provisioning/service/provisioning.service.ts:16\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { SystemService } from '@src/modules/system';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { OauthDataDto, OauthDataStrategyInputDto, ProvisioningDto, ProvisioningSystemDto } from '../dto';\nimport { ProvisioningSystemInputMapper } from '../mapper/provisioning-system-input.mapper';\nimport {\n\tIservProvisioningStrategy,\n\tOidcMockProvisioningStrategy,\n\tProvisioningStrategy,\n\tSanisProvisioningStrategy,\n} from '../strategy';\n\n@Injectable()\nexport class ProvisioningService {\n\tstrategies: Map = new Map();\n\n\tconstructor(\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly sanisStrategy: SanisProvisioningStrategy,\n\t\tprivate readonly iservStrategy: IservProvisioningStrategy,\n\t\tprivate readonly oidcMockStrategy: OidcMockProvisioningStrategy\n\t) {\n\t\tthis.registerStrategy(sanisStrategy);\n\t\tthis.registerStrategy(iservStrategy);\n\t\tthis.registerStrategy(oidcMockStrategy);\n\t}\n\n\tprotected registerStrategy(strategy: ProvisioningStrategy) {\n\t\tthis.strategies.set(strategy.getType(), strategy);\n\t}\n\n\tasync getData(systemId: string, idToken: string, accessToken: string): Promise {\n\t\tconst system: ProvisioningSystemDto = await this.determineInput(systemId);\n\t\tconst input: OauthDataStrategyInputDto = new OauthDataStrategyInputDto({\n\t\t\taccessToken,\n\t\t\tidToken,\n\t\t\tsystem,\n\t\t});\n\n\t\tconst strategy: ProvisioningStrategy = this.getProvisioningStrategy(system.provisioningStrategy);\n\n\t\tconst data: OauthDataDto = await strategy.getData(input);\n\t\treturn data;\n\t}\n\n\tprivate async determineInput(systemId: string): Promise {\n\t\tconst systemDto: SystemDto = await this.systemService.findById(systemId);\n\t\tconst inputDto: ProvisioningSystemDto = ProvisioningSystemInputMapper.mapToInternal(systemDto);\n\t\treturn inputDto;\n\t}\n\n\tasync provisionData(oauthData: OauthDataDto): Promise {\n\t\tconst strategy: ProvisioningStrategy = this.getProvisioningStrategy(oauthData.system.provisioningStrategy);\n\t\tconst provisioningDto: Promise = strategy.apply(oauthData);\n\t\treturn provisioningDto;\n\t}\n\n\tprivate getProvisioningStrategy(systemStrategy: SystemProvisioningStrategy): ProvisioningStrategy {\n\t\tconst strategy: ProvisioningStrategy | undefined = this.strategies.get(systemStrategy);\n\n\t\tif (!strategy) {\n\t\t\tthrow new InternalServerErrorException('Provisioning Strategy is not defined.');\n\t\t}\n\n\t\treturn strategy;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ProvisioningStrategy.html":{"url":"classes/ProvisioningStrategy.html","title":"class - ProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/base.strategy.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Abstract\n apply\n \n \n Abstract\n getData\n \n \n Abstract\n getType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Abstract\n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/base.strategy.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/base.strategy.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Abstract\n getType\n \n \n \n \n \n \n \n getType()\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/base.strategy.ts:5\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { OauthDataDto, OauthDataStrategyInputDto, ProvisioningDto } from '../dto';\n\nexport abstract class ProvisioningStrategy {\n\tabstract getType(): SystemProvisioningStrategy;\n\n\tabstract getData(input: OauthDataStrategyInputDto): Promise;\n\n\tabstract apply(data: OauthDataDto): Promise;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ProvisioningSystemDto.html":{"url":"classes/ProvisioningSystemDto.html","title":"class - ProvisioningSystemDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ProvisioningSystemDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n provisioningStrategy\n \n \n Optional\n provisioningUrl\n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ProvisioningSystemDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ProvisioningSystemDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n provisioningStrategy\n \n \n \n \n \n \n Type : SystemProvisioningStrategy\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n provisioningUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/provisioning/dto/provisioning-system.dto.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\n\nexport class ProvisioningSystemDto {\n\tsystemId: EntityId;\n\n\tprovisioningStrategy: SystemProvisioningStrategy;\n\n\tprovisioningUrl?: string;\n\n\tconstructor(props: ProvisioningSystemDto) {\n\t\tthis.systemId = props.systemId;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ProvisioningSystemInputMapper.html":{"url":"classes/ProvisioningSystemInputMapper.html","title":"class - ProvisioningSystemInputMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ProvisioningSystemInputMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/mapper/provisioning-system-input.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToInternal\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToInternal\n \n \n \n \n \n \n \n mapToInternal(dto: SystemDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/mapper/provisioning-system-input.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n SystemDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { ProvisioningSystemDto } from '../dto';\n\nexport class ProvisioningSystemInputMapper {\n\tstatic mapToInternal(dto: SystemDto) {\n\t\treturn new ProvisioningSystemDto({\n\t\t\tsystemId: dto.id || '',\n\t\t\tprovisioningStrategy: dto.provisioningStrategy || SystemProvisioningStrategy.UNDEFINED,\n\t\t\tprovisioningUrl: dto.provisioningUrl || undefined,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Pseudonym.html":{"url":"classes/Pseudonym.html","title":"class - Pseudonym","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Pseudonym\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/pseudonym.do.ts\n \n\n\n\n \n Extends\n \n \n DomainObject\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n pseudonym\n \n \n toolId\n \n \n userId\n \n \n createdAt\n \n \n updatedAt\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n pseudonym\n \n \n\n \n \n getpseudonym()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:13\n \n \n\n \n \n \n \n \n \n \n toolId\n \n \n\n \n \n gettoolId()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:17\n \n \n\n \n \n \n \n \n \n \n userId\n \n \n\n \n \n getuserId()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:21\n \n \n\n \n \n \n \n \n \n \n createdAt\n \n \n\n \n \n getcreatedAt()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:25\n \n \n\n \n \n \n \n \n \n \n updatedAt\n \n \n\n \n \n getupdatedAt()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/pseudonym.do.ts:29\n \n \n\n \n \n\n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { AuthorizableObject, DomainObject } from '../domain-object';\n\nexport interface PseudonymProps extends AuthorizableObject {\n\tpseudonym: string;\n\ttoolId: EntityId;\n\tuserId: EntityId;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport class Pseudonym extends DomainObject {\n\tget pseudonym(): string {\n\t\treturn this.props.pseudonym;\n\t}\n\n\tget toolId(): EntityId {\n\t\treturn this.props.toolId;\n\t}\n\n\tget userId(): EntityId {\n\t\treturn this.props.userId;\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/PseudonymEntity.html":{"url":"entities/PseudonymEntity.html","title":"entity - PseudonymEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n PseudonymEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n pseudonym\n \n \n \n toolId\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Unique()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts:24\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\n\nexport interface PseudonymEntityProps {\n\tid?: EntityId;\n\tpseudonym: string;\n\ttoolId: ObjectId;\n\tuserId: ObjectId;\n}\n\n@Entity({ tableName: 'pseudonyms' })\n@Unique({ properties: ['userId', 'toolId'] })\nexport class PseudonymEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tpseudonym: string;\n\n\t@Property()\n\ttoolId: ObjectId;\n\n\t@Property()\n\tuserId: ObjectId;\n\n\tconstructor(props: PseudonymEntityProps) {\n\t\tsuper();\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.pseudonym = props.pseudonym;\n\t\tthis.toolId = props.toolId;\n\t\tthis.userId = props.userId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PseudonymEntityProps.html":{"url":"interfaces/PseudonymEntityProps.html","title":"interface - PseudonymEntityProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PseudonymEntityProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/entity/pseudonym.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n \n pseudonym\n \n \n \n \n toolId\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n \n \n pseudonym: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n \n \n toolId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: ObjectId\n\n \n \n\n\n \n \n Type : ObjectId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property, Unique } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { EntityId } from '@shared/domain';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\n\nexport interface PseudonymEntityProps {\n\tid?: EntityId;\n\tpseudonym: string;\n\ttoolId: ObjectId;\n\tuserId: ObjectId;\n}\n\n@Entity({ tableName: 'pseudonyms' })\n@Unique({ properties: ['userId', 'toolId'] })\nexport class PseudonymEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tpseudonym: string;\n\n\t@Property()\n\ttoolId: ObjectId;\n\n\t@Property()\n\tuserId: ObjectId;\n\n\tconstructor(props: PseudonymEntityProps) {\n\t\tsuper();\n\t\tif (props.id != null) {\n\t\t\tthis.id = props.id;\n\t\t}\n\t\tthis.pseudonym = props.pseudonym;\n\t\tthis.toolId = props.toolId;\n\t\tthis.userId = props.userId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/PseudonymModule.html":{"url":"modules/PseudonymModule.html","title":"module - PseudonymModule","body":"\n \n\n\n\n\n Modules\n PseudonymModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_PseudonymModule\n\n\n\ncluster_PseudonymModule_exports\n\n\n\ncluster_PseudonymModule_providers\n\n\n\n\nPseudonymService \n\nPseudonymService \n\n\n\nPseudonymModule\n\nPseudonymModule\n\nPseudonymService -->\n\nPseudonymModule->PseudonymService \n\n\n\n\n\nExternalToolPseudonymRepo\n\nExternalToolPseudonymRepo\n\nPseudonymModule -->\n\nExternalToolPseudonymRepo->PseudonymModule\n\n\n\n\n\nLegacyLogger\n\nLegacyLogger\n\nPseudonymModule -->\n\nLegacyLogger->PseudonymModule\n\n\n\n\n\nPseudonymService\n\nPseudonymService\n\nPseudonymModule -->\n\nPseudonymService->PseudonymModule\n\n\n\n\n\nPseudonymsRepo\n\nPseudonymsRepo\n\nPseudonymModule -->\n\nPseudonymsRepo->PseudonymModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/pseudonym/pseudonym.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ExternalToolPseudonymRepo\n \n \n LegacyLogger\n \n \n PseudonymService\n \n \n PseudonymsRepo\n \n \n \n \n Exports\n \n \n PseudonymService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ExternalToolPseudonymRepo, PseudonymsRepo } from './repo';\nimport { PseudonymService } from './service';\n\n@Module({\n\tproviders: [PseudonymService, PseudonymsRepo, ExternalToolPseudonymRepo, LegacyLogger],\n\texports: [PseudonymService],\n})\nexport class PseudonymModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/PseudonymProps.html":{"url":"interfaces/PseudonymProps.html","title":"interface - PseudonymProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n PseudonymProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/pseudonym.do.ts\n \n\n\n\n \n Extends\n \n \n AuthorizableObject\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n \n pseudonym\n \n \n \n \n toolId\n \n \n \n \n updatedAt\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n createdAt\n \n \n \n \n \n \n \n \n createdAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n pseudonym\n \n \n \n \n \n \n \n \n pseudonym: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n \n \n toolId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n \n \n updatedAt: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { AuthorizableObject, DomainObject } from '../domain-object';\n\nexport interface PseudonymProps extends AuthorizableObject {\n\tpseudonym: string;\n\ttoolId: EntityId;\n\tuserId: EntityId;\n\tcreatedAt: Date;\n\tupdatedAt: Date;\n}\n\nexport class Pseudonym extends DomainObject {\n\tget pseudonym(): string {\n\t\treturn this.props.pseudonym;\n\t}\n\n\tget toolId(): EntityId {\n\t\treturn this.props.toolId;\n\t}\n\n\tget userId(): EntityId {\n\t\treturn this.props.userId;\n\t}\n\n\tget createdAt(): Date {\n\t\treturn this.props.createdAt;\n\t}\n\n\tget updatedAt(): Date {\n\t\treturn this.props.updatedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PseudonymService.html":{"url":"injectables/PseudonymService.html","title":"injectable - PseudonymService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PseudonymService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/service/pseudonym.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteByUserId\n \n \n Private\n Async\n deleteExternalToolPseudonymsByUserId\n \n \n Private\n Async\n deletePseudonymsByUserId\n \n \n Public\n Async\n findByUserAndTool\n \n \n Public\n Async\n findByUserId\n \n \n Private\n Async\n findExternalToolPseudonymsByUserId\n \n \n Public\n Async\n findOrCreatePseudonym\n \n \n Private\n Async\n findPseudonymsByUserId\n \n \n Private\n getRepository\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(pseudonymRepo: PseudonymsRepo, externalToolPseudonymRepo: ExternalToolPseudonymRepo)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n pseudonymRepo\n \n \n PseudonymsRepo\n \n \n \n No\n \n \n \n \n externalToolPseudonymRepo\n \n \n ExternalToolPseudonymRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteByUserId\n \n \n \n \n \n \n \n deleteByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteExternalToolPseudonymsByUserId\n \n \n \n \n \n \n \n deleteExternalToolPseudonymsByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:103\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deletePseudonymsByUserId\n \n \n \n \n \n \n \n deletePseudonymsByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUserAndTool\n \n \n \n \n \n \n \n findByUserAndTool(user: UserDO, tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findExternalToolPseudonymsByUserId\n \n \n \n \n \n \n \n findExternalToolPseudonymsByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:91\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findOrCreatePseudonym\n \n \n \n \n \n \n \n findOrCreatePseudonym(user: UserDO, tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findPseudonymsByUserId\n \n \n \n \n \n \n \n findPseudonymsByUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getRepository\n \n \n \n \n \n \n \n getRepository(tool: ExternalTool | LtiToolDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/service/pseudonym.service.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n ExternalTool | LtiToolDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PseudonymsRepo | ExternalToolPseudonymRepo\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { LtiToolDO, Pseudonym, UserDO } from '@shared/domain';\nimport { ExternalTool } from '@src/modules/tool/external-tool/domain';\nimport { v4 as uuidv4 } from 'uuid';\nimport { ExternalToolPseudonymRepo, PseudonymsRepo } from '../repo';\n\n@Injectable()\nexport class PseudonymService {\n\tconstructor(\n\t\tprivate readonly pseudonymRepo: PseudonymsRepo,\n\t\tprivate readonly externalToolPseudonymRepo: ExternalToolPseudonymRepo\n\t) {}\n\n\tpublic async findByUserAndTool(user: UserDO, tool: ExternalTool | LtiToolDO): Promise {\n\t\tif (!user.id || !tool.id) {\n\t\t\tthrow new InternalServerErrorException('User or tool id is missing');\n\t\t}\n\n\t\tconst pseudonymPromise: Promise = this.getRepository(tool).findByUserIdAndToolIdOrFail(user.id, tool.id);\n\n\t\treturn pseudonymPromise;\n\t}\n\n\tpublic async findByUserId(userId: string): Promise {\n\t\tif (!userId) {\n\t\t\tthrow new InternalServerErrorException('User id is missing');\n\t\t}\n\n\t\tlet [pseudonyms, externalToolPseudonyms] = await Promise.all([\n\t\t\tthis.findPseudonymsByUserId(userId),\n\t\t\tthis.findExternalToolPseudonymsByUserId(userId),\n\t\t]);\n\n\t\tif (pseudonyms === undefined) {\n\t\t\tpseudonyms = [];\n\t\t}\n\n\t\tif (externalToolPseudonyms === undefined) {\n\t\t\texternalToolPseudonyms = [];\n\t\t}\n\n\t\tconst allPseudonyms = [...pseudonyms, ...externalToolPseudonyms];\n\n\t\treturn allPseudonyms;\n\t}\n\n\tpublic async findOrCreatePseudonym(user: UserDO, tool: ExternalTool | LtiToolDO): Promise {\n\t\tif (!user.id || !tool.id) {\n\t\t\tthrow new InternalServerErrorException('User or tool id is missing');\n\t\t}\n\n\t\tconst repository: PseudonymsRepo | ExternalToolPseudonymRepo = this.getRepository(tool);\n\n\t\tlet pseudonym: Pseudonym | null = await repository.findByUserIdAndToolId(user.id, tool.id);\n\t\tif (!pseudonym) {\n\t\t\tpseudonym = new Pseudonym({\n\t\t\t\tid: new ObjectId().toHexString(),\n\t\t\t\tpseudonym: uuidv4(),\n\t\t\t\tuserId: user.id,\n\t\t\t\ttoolId: tool.id,\n\t\t\t\tcreatedAt: new Date(),\n\t\t\t\tupdatedAt: new Date(),\n\t\t\t});\n\n\t\t\tpseudonym = await repository.createOrUpdate(pseudonym);\n\t\t}\n\n\t\treturn pseudonym;\n\t}\n\n\tpublic async deleteByUserId(userId: string): Promise {\n\t\tif (!userId) {\n\t\t\tthrow new InternalServerErrorException('User id is missing');\n\t\t}\n\n\t\tconst [deletedPseudonyms, deletedExternalToolPseudonyms] = await Promise.all([\n\t\t\tthis.deletePseudonymsByUserId(userId),\n\t\t\tthis.deleteExternalToolPseudonymsByUserId(userId),\n\t\t]);\n\n\t\treturn deletedPseudonyms + deletedExternalToolPseudonyms;\n\t}\n\n\tprivate async findPseudonymsByUserId(userId: string): Promise {\n\t\tconst pseudonymPromise: Promise = this.pseudonymRepo.findByUserId(userId);\n\n\t\treturn pseudonymPromise;\n\t}\n\n\tprivate async findExternalToolPseudonymsByUserId(userId: string): Promise {\n\t\tconst externalToolPseudonymPromise: Promise = this.externalToolPseudonymRepo.findByUserId(userId);\n\n\t\treturn externalToolPseudonymPromise;\n\t}\n\n\tprivate async deletePseudonymsByUserId(userId: string): Promise {\n\t\tconst pseudonymPromise: Promise = this.pseudonymRepo.deletePseudonymsByUserId(userId);\n\n\t\treturn pseudonymPromise;\n\t}\n\n\tprivate async deleteExternalToolPseudonymsByUserId(userId: string): Promise {\n\t\tconst externalToolPseudonymPromise: Promise =\n\t\t\tthis.externalToolPseudonymRepo.deletePseudonymsByUserId(userId);\n\n\t\treturn externalToolPseudonymPromise;\n\t}\n\n\tprivate getRepository(tool: ExternalTool | LtiToolDO): PseudonymsRepo | ExternalToolPseudonymRepo {\n\t\tif (tool instanceof ExternalTool) {\n\t\t\treturn this.externalToolPseudonymRepo;\n\t\t}\n\n\t\treturn this.pseudonymRepo;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/PseudonymsRepo.html":{"url":"injectables/PseudonymsRepo.html","title":"injectable - PseudonymsRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n PseudonymsRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createOrUpdate\n \n \n Async\n deletePseudonymsByUserId\n \n \n Async\n findByUserId\n \n \n Async\n findByUserIdAndToolId\n \n \n Async\n findByUserIdAndToolIdOrFail\n \n \n Protected\n mapDomainObjectToEntityProperties\n \n \n Protected\n mapEntityToDomainObject\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager)\n \n \n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createOrUpdate\n \n \n \n \n \n \n \n createOrUpdate(domainObject: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deletePseudonymsByUserId\n \n \n \n \n \n \n \n deletePseudonymsByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdAndToolId\n \n \n \n \n \n \n \n findByUserIdAndToolId(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserIdAndToolIdOrFail\n \n \n \n \n \n \n \n findByUserIdAndToolIdOrFail(userId: EntityId, toolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n toolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDomainObjectToEntityProperties\n \n \n \n \n \n \n \n mapDomainObjectToEntityProperties(entityDO: Pseudonym)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n Pseudonym\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PseudonymEntityProps\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDomainObject\n \n \n \n \n \n \n \n mapEntityToDomainObject(entity: PseudonymEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/pseudonym/repo/pseudonyms.repo.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n PseudonymEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Pseudonym\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager, ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId, Pseudonym } from '@shared/domain';\nimport { PseudonymEntity, PseudonymEntityProps } from '../entity';\n\n@Injectable()\nexport class PseudonymsRepo {\n\tconstructor(private readonly em: EntityManager) {}\n\n\tasync findByUserIdAndToolIdOrFail(userId: EntityId, toolId: EntityId): Promise {\n\t\tconst entity: PseudonymEntity = await this.em.findOneOrFail(PseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t\ttoolId: new ObjectId(toolId),\n\t\t});\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByUserIdAndToolId(userId: EntityId, toolId: EntityId): Promise {\n\t\tconst entity: PseudonymEntity | null = await this.em.findOne(PseudonymEntity, {\n\t\t\tuserId: new ObjectId(userId),\n\t\t\ttoolId: new ObjectId(toolId),\n\t\t});\n\n\t\tif (!entity) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst domainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn domainObject;\n\t}\n\n\tasync findByUserId(userId: EntityId): Promise {\n\t\tconst entities: PseudonymEntity[] = await this.em.find(PseudonymEntity, { userId: new ObjectId(userId) });\n\n\t\tconst pseudonyms: Pseudonym[] = entities.map((entity) => this.mapEntityToDomainObject(entity));\n\n\t\treturn pseudonyms;\n\t}\n\n\tasync createOrUpdate(domainObject: Pseudonym): Promise {\n\t\tconst existing: PseudonymEntity | undefined = this.em\n\t\t\t.getUnitOfWork()\n\t\t\t.getById(PseudonymEntity.name, domainObject.id);\n\n\t\tconst entityProps: PseudonymEntityProps = this.mapDomainObjectToEntityProperties(domainObject);\n\t\tlet entity: PseudonymEntity = new PseudonymEntity(entityProps);\n\n\t\tif (existing) {\n\t\t\tentity = this.em.assign(existing, entity);\n\t\t} else {\n\t\t\tthis.em.persist(entity);\n\t\t}\n\n\t\tawait this.em.flush();\n\n\t\tconst savedDomainObject: Pseudonym = this.mapEntityToDomainObject(entity);\n\n\t\treturn savedDomainObject;\n\t}\n\n\tasync deletePseudonymsByUserId(userId: EntityId): Promise {\n\t\tconst promise: Promise = this.em.nativeDelete(PseudonymEntity, { userId: new ObjectId(userId) });\n\n\t\treturn promise;\n\t}\n\n\tprotected mapEntityToDomainObject(entity: PseudonymEntity): Pseudonym {\n\t\treturn new Pseudonym({\n\t\t\tid: entity.id,\n\t\t\tpseudonym: entity.pseudonym,\n\t\t\ttoolId: entity.toolId.toHexString(),\n\t\t\tuserId: entity.userId.toHexString(),\n\t\t\tcreatedAt: entity.createdAt,\n\t\t\tupdatedAt: entity.updatedAt,\n\t\t});\n\t}\n\n\tprotected mapDomainObjectToEntityProperties(entityDO: Pseudonym): PseudonymEntityProps {\n\t\treturn {\n\t\t\tid: entityDO.id,\n\t\t\tpseudonym: entityDO.pseudonym,\n\t\t\ttoolId: new ObjectId(entityDO.toolId),\n\t\t\tuserId: new ObjectId(entityDO.userId),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PublicSystemListResponse.html":{"url":"classes/PublicSystemListResponse.html","title":"class - PublicSystemListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PublicSystemListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/public-system-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemResponses: PublicSystemResponse[])\n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemResponses\n \n \n PublicSystemResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : PublicSystemResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { PublicSystemResponse } from './public-system-response';\n\nexport class PublicSystemListResponse {\n\t@ApiProperty({ type: [PublicSystemResponse] })\n\tdata: PublicSystemResponse[];\n\n\tconstructor(systemResponses: PublicSystemResponse[]) {\n\t\tthis.data = systemResponses;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/PublicSystemResponse.html":{"url":"classes/PublicSystemResponse.html","title":"class - PublicSystemResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n PublicSystemResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/public-system-response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n Optional\n displayName\n \n \n \n id\n \n \n \n Optional\n oauthConfig\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(system: PublicSystemResponse)\n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:39\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n \n PublicSystemResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Alias of the system.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Display name of the system.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Id of the system.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthConfig\n \n \n \n \n \n \n Type : OauthConfigResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Oauth config of the system.', type: OauthConfigResponse, required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Flag to request only systems with oauth-config.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/public-system-response.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { OauthConfigResponse } from '@src/modules/system/controller/dto/oauth-config.response';\n\nexport class PublicSystemResponse {\n\t@ApiProperty({\n\t\tdescription: 'Id of the system.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Flag to request only systems with oauth-config.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\ttype: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Alias of the system.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\talias?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Display name of the system.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tdisplayName?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Oauth config of the system.',\n\t\ttype: OauthConfigResponse,\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\toauthConfig?: OauthConfigResponse;\n\n\tconstructor(system: PublicSystemResponse) {\n\t\tthis.id = system.id;\n\t\tthis.type = system.type;\n\t\tthis.alias = system.alias;\n\t\tthis.displayName = system.displayName;\n\t\tthis.oauthConfig = system.oauthConfig;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RabbitMQWrapperModule.html":{"url":"modules/RabbitMQWrapperModule.html","title":"module - RabbitMQWrapperModule","body":"\n \n\n\n\n\n Modules\n RabbitMQWrapperModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts\n \n\n\n\n\n\n \n \n \n \n\n\n \n\n\n \n import { AmqpConnectionManager, RabbitMQModule } from '@golevelup/nestjs-rabbitmq';\nimport { Configuration } from '@hpi-schul-cloud/commons';\nimport { Global, Module, OnModuleDestroy } from '@nestjs/common';\nimport { FilesStorageExchange } from './exchange';\n\n/**\n * https://www.npmjs.com/package/@golevelup/nestjs-rabbitmq#usage\n * we want to have the RabbitMQModule globally available, since it provides via a factory the AMQPConnection.\n * You shall not explicitly declare the AMQPConnection in your modules since it will create a new AMQPConnection which will not be initialized!\n *\n * Therefore, the combination of @Global() and export: [RabbitMQModule] is required.\n */\n\nconst imports = [\n\tRabbitMQModule.forRoot(RabbitMQModule, {\n\t\t// Please don't change the global prefetch count, if you need constraint, change it at channel level\n\t\tprefetchCount: 5,\n\t\texchanges: [\n\t\t\t{\n\t\t\t\tname: Configuration.get('MAIL_SEND_EXCHANGE') as string,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: Configuration.get('ANTIVIRUS_EXCHANGE') as string,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: FilesStorageExchange,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t],\n\t\turi: Configuration.get('RABBITMQ_URI') as string,\n\t}),\n];\n@Global()\n@Module({\n\timports,\n\texports: [RabbitMQModule],\n})\nexport class RabbitMQWrapperModule {}\n\n@Global()\n@Module({\n\timports,\n\texports: [RabbitMQModule],\n})\nexport class RabbitMQWrapperTestModule implements OnModuleDestroy {\n\tconstructor(private readonly amqpConnectionManager: AmqpConnectionManager) {}\n\n\t// In tests we need to close connections when the module is destroyed.\n\tasync onModuleDestroy() {\n\t\tawait Promise.all(\n\t\t\tthis.amqpConnectionManager.getConnections().map((connection) => connection.managedConnection.close())\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RabbitMQWrapperTestModule.html":{"url":"modules/RabbitMQWrapperTestModule.html","title":"module - RabbitMQWrapperTestModule","body":"\n \n\n\n\n\n Modules\n RabbitMQWrapperTestModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n onModuleDestroy\n \n \n \n \n \n \n \n onModuleDestroy()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/rabbitmq/rabbitmq.module.ts:51\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n\n \n\n\n \n import { AmqpConnectionManager, RabbitMQModule } from '@golevelup/nestjs-rabbitmq';\nimport { Configuration } from '@hpi-schul-cloud/commons';\nimport { Global, Module, OnModuleDestroy } from '@nestjs/common';\nimport { FilesStorageExchange } from './exchange';\n\n/**\n * https://www.npmjs.com/package/@golevelup/nestjs-rabbitmq#usage\n * we want to have the RabbitMQModule globally available, since it provides via a factory the AMQPConnection.\n * You shall not explicitly declare the AMQPConnection in your modules since it will create a new AMQPConnection which will not be initialized!\n *\n * Therefore, the combination of @Global() and export: [RabbitMQModule] is required.\n */\n\nconst imports = [\n\tRabbitMQModule.forRoot(RabbitMQModule, {\n\t\t// Please don't change the global prefetch count, if you need constraint, change it at channel level\n\t\tprefetchCount: 5,\n\t\texchanges: [\n\t\t\t{\n\t\t\t\tname: Configuration.get('MAIL_SEND_EXCHANGE') as string,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: Configuration.get('ANTIVIRUS_EXCHANGE') as string,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: FilesStorageExchange,\n\t\t\t\ttype: 'direct',\n\t\t\t},\n\t\t],\n\t\turi: Configuration.get('RABBITMQ_URI') as string,\n\t}),\n];\n@Global()\n@Module({\n\timports,\n\texports: [RabbitMQModule],\n})\nexport class RabbitMQWrapperModule {}\n\n@Global()\n@Module({\n\timports,\n\texports: [RabbitMQModule],\n})\nexport class RabbitMQWrapperTestModule implements OnModuleDestroy {\n\tconstructor(private readonly amqpConnectionManager: AmqpConnectionManager) {}\n\n\t// In tests we need to close connections when the module is destroyed.\n\tasync onModuleDestroy() {\n\t\tawait Promise.all(\n\t\t\tthis.amqpConnectionManager.getConnections().map((connection) => connection.managedConnection.close())\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ReadableStreamWithFileTypeImp.html":{"url":"classes/ReadableStreamWithFileTypeImp.html","title":"class - ReadableStreamWithFileTypeImp","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ReadableStreamWithFileTypeImp\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/readable-stream-with-file-type.factory.ts\n \n\n\n\n \n Extends\n \n \n Readable\n \n\n \n Implements\n \n \n ReadableStreamWithFileType\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n fileType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ReadableStreamWithFileTypeProps)\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/readable-stream-with-file-type.factory.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ReadableStreamWithFileTypeProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n fileType\n \n \n \n \n \n \n Type : FileTypeResult\n\n \n \n \n \n Defined in apps/server/src/shared/testing/factory/readable-stream-with-file-type.factory.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { FileTypeResult, ReadableStreamWithFileType } from 'file-type';\nimport { Readable } from 'stream';\nimport { BaseFactory } from './base.factory';\n\ntype ReadableStreamWithFileTypeProps = {\n\tfileType?: FileTypeResult;\n\treadable: Readable;\n};\n\nclass ReadableStreamWithFileTypeImp extends Readable implements ReadableStreamWithFileType {\n\tfileType?: FileTypeResult;\n\n\tconstructor(props: ReadableStreamWithFileTypeProps) {\n\t\tsuper();\n\t\tthis.fileType = props.fileType;\n\t}\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const readableStreamWithFileTypeFactory = BaseFactory.define(ReadableStreamWithFileTypeImp, () => {\n\tconst readable = Readable.from('abc');\n\n\treturn {\n\t\tfileType: {\n\t\t\text: 'png',\n\t\t\tmime: 'image/png',\n\t\t},\n\t\treadable,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RecursiveDeleteVisitor.html":{"url":"injectables/RecursiveDeleteVisitor.html","title":"injectable - RecursiveDeleteVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RecursiveDeleteVisitor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/recursive-delete.vistor.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n deleteNode\n \n \n Async\n visitCardAsync\n \n \n Async\n visitChildrenAsync\n \n \n Async\n visitColumnAsync\n \n \n Async\n visitColumnBoardAsync\n \n \n Async\n visitFileElementAsync\n \n \n Async\n visitRichTextElementAsync\n \n \n Async\n visitSubmissionContainerElementAsync\n \n \n Async\n visitSubmissionItemAsync\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n deleteNode\n \n \n \n \n \n \ndeleteNode(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitCardAsync\n \n \n \n \n \n \n \n visitCardAsync(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitChildrenAsync\n \n \n \n \n \n \n \n visitChildrenAsync(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitColumnAsync\n \n \n \n \n \n \n \n visitColumnAsync(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitColumnBoardAsync\n \n \n \n \n \n \n \n visitColumnBoardAsync(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitFileElementAsync\n \n \n \n \n \n \n \n visitFileElementAsync(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitRichTextElementAsync\n \n \n \n \n \n \n \n visitRichTextElementAsync(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitSubmissionContainerElementAsync\n \n \n \n \n \n \n \n visitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n visitSubmissionItemAsync\n \n \n \n \n \n \n \n visitSubmissionItemAsync(submission: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-delete.vistor.ts:56\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tAnyBoardDo,\n\tBoardCompositeVisitorAsync,\n\tBoardNode,\n\tCard,\n\tColumn,\n\tColumnBoard,\n\tFileElement,\n\tRichTextElement,\n\tSubmissionContainerElement,\n\tSubmissionItem,\n} from '@shared/domain';\nimport { FilesStorageClientAdapterService } from '@src/modules/files-storage-client';\n\n@Injectable()\nexport class RecursiveDeleteVisitor implements BoardCompositeVisitorAsync {\n\tconstructor(\n\t\tprivate readonly em: EntityManager,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync visitColumnBoardAsync(columnBoard: ColumnBoard): Promise {\n\t\tthis.deleteNode(columnBoard);\n\t\tawait this.visitChildrenAsync(columnBoard);\n\t}\n\n\tasync visitColumnAsync(column: Column): Promise {\n\t\tthis.deleteNode(column);\n\t\tawait this.visitChildrenAsync(column);\n\t}\n\n\tasync visitCardAsync(card: Card): Promise {\n\t\tthis.deleteNode(card);\n\t\tawait this.visitChildrenAsync(card);\n\t}\n\n\tasync visitFileElementAsync(fileElement: FileElement): Promise {\n\t\tawait this.filesStorageClientAdapterService.deleteFilesOfParent(fileElement.id);\n\t\tthis.deleteNode(fileElement);\n\n\t\tawait this.visitChildrenAsync(fileElement);\n\t}\n\n\tasync visitRichTextElementAsync(richTextElement: RichTextElement): Promise {\n\t\tthis.deleteNode(richTextElement);\n\t\tawait this.visitChildrenAsync(richTextElement);\n\t}\n\n\tasync visitSubmissionContainerElementAsync(submissionContainerElement: SubmissionContainerElement): Promise {\n\t\tthis.deleteNode(submissionContainerElement);\n\t\tawait this.visitChildrenAsync(submissionContainerElement);\n\t}\n\n\tasync visitSubmissionItemAsync(submission: SubmissionItem): Promise {\n\t\tthis.deleteNode(submission);\n\t\tawait this.visitChildrenAsync(submission);\n\t}\n\n\tdeleteNode(domainObject: AnyBoardDo): void {\n\t\tthis.em.remove(this.em.getReference(BoardNode, domainObject.id));\n\t}\n\n\tasync visitChildrenAsync(domainObject: AnyBoardDo): Promise {\n\t\tawait Promise.all(domainObject.children.map(async (child) => child.acceptAsync(this)));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RecursiveSaveVisitor.html":{"url":"classes/RecursiveSaveVisitor.html","title":"class - RecursiveSaveVisitor","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RecursiveSaveVisitor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/repo/recursive-save.visitor.ts\n \n\n\n\n\n \n Implements\n \n \n BoardCompositeVisitor\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n parentsMap\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n createOrUpdateBoardNode\n \n \n registerParentData\n \n \n Async\n save\n \n \n visitCard\n \n \n visitChildren\n \n \n visitColumn\n \n \n visitColumnBoard\n \n \n visitFileElement\n \n \n visitRichTextElement\n \n \n visitSubmissionContainerElement\n \n \n visitSubmissionItem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(em: EntityManager, boardNodeRepo: BoardNodeRepo)\n \n \n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:31\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n boardNodeRepo\n \n \n BoardNodeRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n parentsMap\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:31\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createOrUpdateBoardNode\n \n \n \n \n \n \ncreateOrUpdateBoardNode(boardNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:165\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n registerParentData\n \n \n \n \n \n \nregisterParentData(parent: AnyBoardDo, child: AnyBoardDo, parentNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:157\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n parentNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(domainObject: AnyBoardDo | AnyBoardDo[], parent?: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo | AnyBoardDo[]\n \n\n \n No\n \n\n\n \n \n parent\n \n AnyBoardDo\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitCard\n \n \n \n \n \n \nvisitCard(card: Card)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n card\n \n Card\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitChildren\n \n \n \n \n \n \nvisitChildren(parent: AnyBoardDo, parentNode: BoardNode)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:150\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parent\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n parentNode\n \n BoardNode\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumn\n \n \n \n \n \n \nvisitColumn(column: Column)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n column\n \n Column\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitColumnBoard\n \n \n \n \n \n \nvisitColumnBoard(columnBoard: ColumnBoard)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n columnBoard\n \n ColumnBoard\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitFileElement\n \n \n \n \n \n \nvisitFileElement(fileElement: FileElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:93\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileElement\n \n FileElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitRichTextElement\n \n \n \n \n \n \nvisitRichTextElement(richTextElement: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:107\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n richTextElement\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionContainerElement\n \n \n \n \n \n \nvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerElement\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n visitSubmissionItem\n \n \n \n \n \n \nvisitSubmissionItem(submission: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/repo/recursive-save.visitor.ts:136\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Utils } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport {\n\tAnyBoardDo,\n\tBoardCompositeVisitor,\n\tBoardNode,\n\tCard,\n\tCardNode,\n\tColumn,\n\tColumnBoard,\n\tColumnBoardNode,\n\tColumnNode,\n\tEntityId,\n\tFileElement,\n\tFileElementNode,\n\tRichTextElement,\n\tRichTextElementNode,\n\tSubmissionContainerElement,\n\tSubmissionContainerElementNode,\n\tSubmissionItem,\n\tSubmissionItemNode,\n} from '@shared/domain';\nimport { BoardNodeRepo } from './board-node.repo';\n\ntype ParentData = {\n\tboardNode: BoardNode;\n\tposition: number;\n};\n\nexport class RecursiveSaveVisitor implements BoardCompositeVisitor {\n\tprivate parentsMap: Map = new Map();\n\n\tconstructor(private readonly em: EntityManager, private readonly boardNodeRepo: BoardNodeRepo) {}\n\n\tasync save(domainObject: AnyBoardDo | AnyBoardDo[], parent?: AnyBoardDo): Promise {\n\t\tconst domainObjects = Utils.asArray(domainObject);\n\n\t\tif (parent) {\n\t\t\tconst parentNode = await this.boardNodeRepo.findById(parent.id);\n\n\t\t\tdomainObjects.forEach((child) => {\n\t\t\t\tthis.registerParentData(parent, child, parentNode);\n\t\t\t});\n\t\t}\n\n\t\tdomainObjects.forEach((child) => child.accept(this));\n\t}\n\n\tvisitColumnBoard(columnBoard: ColumnBoard): void {\n\t\tconst parentData = this.parentsMap.get(columnBoard.id);\n\n\t\tconst boardNode = new ColumnBoardNode({\n\t\t\tid: columnBoard.id,\n\t\t\ttitle: columnBoard.title,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t\tcontext: columnBoard.context,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(columnBoard, boardNode);\n\t}\n\n\tvisitColumn(column: Column): void {\n\t\tconst parentData = this.parentsMap.get(column.id);\n\n\t\tconst boardNode = new ColumnNode({\n\t\t\tid: column.id,\n\t\t\ttitle: column.title,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(column, boardNode);\n\t}\n\n\tvisitCard(card: Card): void {\n\t\tconst parentData = this.parentsMap.get(card.id);\n\n\t\tconst boardNode = new CardNode({\n\t\t\tid: card.id,\n\t\t\theight: card.height,\n\t\t\ttitle: card.title,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(card, boardNode);\n\t}\n\n\tvisitFileElement(fileElement: FileElement): void {\n\t\tconst parentData = this.parentsMap.get(fileElement.id);\n\n\t\tconst boardNode = new FileElementNode({\n\t\t\tid: fileElement.id,\n\t\t\tcaption: fileElement.caption,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(fileElement, boardNode);\n\t}\n\n\tvisitRichTextElement(richTextElement: RichTextElement): void {\n\t\tconst parentData = this.parentsMap.get(richTextElement.id);\n\n\t\tconst boardNode = new RichTextElementNode({\n\t\t\tid: richTextElement.id,\n\t\t\ttext: richTextElement.text,\n\t\t\tinputFormat: richTextElement.inputFormat,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(richTextElement, boardNode);\n\t}\n\n\tvisitSubmissionContainerElement(submissionContainerElement: SubmissionContainerElement): void {\n\t\tconst parentData = this.parentsMap.get(submissionContainerElement.id);\n\n\t\tconst boardNode = new SubmissionContainerElementNode({\n\t\t\tid: submissionContainerElement.id,\n\t\t\tdueDate: submissionContainerElement.dueDate,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(submissionContainerElement, boardNode);\n\t}\n\n\tvisitSubmissionItem(submission: SubmissionItem): void {\n\t\tconst parentData = this.parentsMap.get(submission.id);\n\t\tconst boardNode = new SubmissionItemNode({\n\t\t\tid: submission.id,\n\t\t\tparent: parentData?.boardNode,\n\t\t\tposition: parentData?.position,\n\t\t\tcompleted: submission.completed,\n\t\t\tuserId: submission.userId,\n\t\t});\n\n\t\tthis.createOrUpdateBoardNode(boardNode);\n\t\tthis.visitChildren(submission, boardNode);\n\t}\n\n\tvisitChildren(parent: AnyBoardDo, parentNode: BoardNode) {\n\t\tparent.children.forEach((child) => {\n\t\t\tthis.registerParentData(parent, child, parentNode);\n\t\t\tchild.accept(this);\n\t\t});\n\t}\n\n\tregisterParentData(parent: AnyBoardDo, child: AnyBoardDo, parentNode: BoardNode) {\n\t\tconst position = parent.children.findIndex((obj) => obj.id === child.id);\n\t\tif (position === -1) {\n\t\t\tthrow new Error(`Cannot get child position. Child doesnt belong to parent`);\n\t\t}\n\t\tthis.parentsMap.set(child.id, { boardNode: parentNode, position });\n\t}\n\n\tcreateOrUpdateBoardNode(boardNode: BoardNode): void {\n\t\tconst existing = this.em.getUnitOfWork().getById(BoardNode.name, boardNode.id);\n\t\tif (existing) {\n\t\t\tthis.em.assign(existing, boardNode);\n\t\t} else {\n\t\t\tthis.em.persist(boardNode);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RedirectResponse.html":{"url":"classes/RedirectResponse.html","title":"class - RedirectResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RedirectResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/response/redirect.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n redirect_to\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(redirectReponse: RedirectResponse)\n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/redirect.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n redirectReponse\n \n \n RedirectResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n redirect_to\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'RedirectURL is the URL which you should redirect the user to once the authentication process is completed.'})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/response/redirect.response.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class RedirectResponse {\n\tconstructor(redirectReponse: RedirectResponse) {\n\t\tthis.redirect_to = redirectReponse.redirect_to;\n\t}\n\n\t@ApiProperty({\n\t\tdescription:\n\t\t\t'RedirectURL is the URL which you should redirect the user to once the authentication process is completed.',\n\t})\n\tredirect_to: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RedisModule.html":{"url":"modules/RedisModule.html","title":"module - RedisModule","body":"\n \n\n\n\n\n Modules\n RedisModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_RedisModule\n\n\n\ncluster_RedisModule_imports\n\n\n\n\nLoggerModule\n\nLoggerModule\n\n\n\nRedisModule\n\nRedisModule\n\nRedisModule -->\n\nLoggerModule->RedisModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/redis/redis.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n LoggerModule\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Module } from '@nestjs/common';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { createClient, RedisClient } from 'redis';\nimport { REDIS_CLIENT } from './interface/redis.constants';\n\n@Module({\n\timports: [LoggerModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: REDIS_CLIENT,\n\t\t\tuseFactory: (logger: LegacyLogger) => {\n\t\t\t\tlogger.setContext(RedisModule.name);\n\n\t\t\t\tif (Configuration.has('REDIS_URI')) {\n\t\t\t\t\tconst redisUrl: string = Configuration.get('REDIS_URI') as string;\n\t\t\t\t\tconst client: RedisClient = createClient({ url: redisUrl });\n\n\t\t\t\t\tclient.on('error', (error) => logger.error(error));\n\t\t\t\t\tclient.on('connect', (msg) => logger.log(msg));\n\n\t\t\t\t\treturn client;\n\t\t\t\t}\n\n\t\t\t\treturn undefined;\n\t\t\t},\n\t\t\tinject: [LegacyLogger],\n\t\t},\n\t],\n\texports: [REDIS_CLIENT],\n})\nexport class RedisModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ReferenceLoader.html":{"url":"injectables/ReferenceLoader.html","title":"injectable - ReferenceLoader","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ReferenceLoader\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/reference.loader.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n repos\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getUserWithPermissions\n \n \n Async\n loadAuthorizableObject\n \n \n Private\n resolveRepo\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userRepo: UserRepo, courseRepo: CourseRepo, courseGroupRepo: CourseGroupRepo, taskRepo: TaskRepo, schoolRepo: LegacySchoolRepo, lessonRepo: LessonRepo, teamsRepo: TeamsRepo, submissionRepo: SubmissionRepo, schoolExternalToolRepo: SchoolExternalToolRepo, boardNodeAuthorizableService: BoardDoAuthorizableService, contextExternalToolAuthorizableService: ContextExternalToolAuthorizableService)\n \n \n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:40\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n courseGroupRepo\n \n \n CourseGroupRepo\n \n \n \n No\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n schoolRepo\n \n \n LegacySchoolRepo\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n submissionRepo\n \n \n SubmissionRepo\n \n \n \n No\n \n \n \n \n schoolExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n \n No\n \n \n \n \n boardNodeAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n contextExternalToolAuthorizableService\n \n \n ContextExternalToolAuthorizableService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getUserWithPermissions\n \n \n \n \n \n \n \n getUserWithPermissions(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:94\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n loadAuthorizableObject\n \n \n \n \n \n \n \n loadAuthorizableObject(objectName: AuthorizableReferenceType, objectId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n objectName\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n objectId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n resolveRepo\n \n \n \n \n \n \n \n resolveRepo(type: AuthorizableReferenceType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IRepoLoader\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n repos\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Default value : new Map()\n \n \n \n \n Defined in apps/server/src/modules/authorization/reference.loader.ts:40\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { BaseDO, EntityId, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object';\nimport {\n\tCourseGroupRepo,\n\tCourseRepo,\n\tLessonRepo,\n\tSchoolExternalToolRepo,\n\tLegacySchoolRepo,\n\tSubmissionRepo,\n\tTaskRepo,\n\tTeamsRepo,\n\tUserRepo,\n} from '@shared/repo';\nimport { BoardDoAuthorizableService } from '@src/modules/board/service';\nimport { ContextExternalToolAuthorizableService } from '@src/modules/tool/context-external-tool/service';\nimport { AuthorizableReferenceType } from './types';\n\n// replace later with general \"base\" do-repo\ntype RepoType =\n\t| TaskRepo\n\t| CourseRepo\n\t| UserRepo\n\t| LegacySchoolRepo\n\t| LessonRepo\n\t| TeamsRepo\n\t| CourseGroupRepo\n\t| SubmissionRepo\n\t| SchoolExternalToolRepo\n\t| BoardDoAuthorizableService\n\t| ContextExternalToolAuthorizableService;\n\ninterface IRepoLoader {\n\trepo: RepoType;\n\tpopulate?: boolean;\n}\n\n@Injectable()\nexport class ReferenceLoader {\n\tprivate repos: Map = new Map();\n\n\tconstructor(\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly courseGroupRepo: CourseGroupRepo,\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly schoolRepo: LegacySchoolRepo,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly teamsRepo: TeamsRepo,\n\t\tprivate readonly submissionRepo: SubmissionRepo,\n\t\tprivate readonly schoolExternalToolRepo: SchoolExternalToolRepo,\n\t\tprivate readonly boardNodeAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly contextExternalToolAuthorizableService: ContextExternalToolAuthorizableService\n\t) {\n\t\tthis.repos.set(AuthorizableReferenceType.Task, { repo: this.taskRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Course, { repo: this.courseRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.CourseGroup, { repo: this.courseGroupRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.User, { repo: this.userRepo, populate: true });\n\t\tthis.repos.set(AuthorizableReferenceType.School, { repo: this.schoolRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Lesson, { repo: this.lessonRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.Team, { repo: this.teamsRepo, populate: true });\n\t\tthis.repos.set(AuthorizableReferenceType.Submission, { repo: this.submissionRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.SchoolExternalToolEntity, { repo: this.schoolExternalToolRepo });\n\t\tthis.repos.set(AuthorizableReferenceType.BoardNode, { repo: this.boardNodeAuthorizableService });\n\t\tthis.repos.set(AuthorizableReferenceType.ContextExternalToolEntity, {\n\t\t\trepo: this.contextExternalToolAuthorizableService,\n\t\t});\n\t}\n\n\tprivate resolveRepo(type: AuthorizableReferenceType): IRepoLoader {\n\t\tconst repo = this.repos.get(type);\n\t\tif (repo) {\n\t\t\treturn repo;\n\t\t}\n\t\tthrow new NotImplementedException('REPO_OR_SERVICE_NOT_IMPLEMENT');\n\t}\n\n\tasync loadAuthorizableObject(\n\t\tobjectName: AuthorizableReferenceType,\n\t\tobjectId: EntityId\n\t): Promise {\n\t\tconst repoLoader: IRepoLoader = this.resolveRepo(objectName);\n\n\t\tlet object: AuthorizableObject | BaseDO;\n\t\tif (repoLoader.populate) {\n\t\t\tobject = await repoLoader.repo.findById(objectId, true);\n\t\t} else {\n\t\t\tobject = await repoLoader.repo.findById(objectId);\n\t\t}\n\n\t\treturn object;\n\t}\n\n\tasync getUserWithPermissions(userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\n\t\treturn user;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RejectRequestBody.html":{"url":"interfaces/RejectRequestBody.html","title":"interface - RejectRequestBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RejectRequestBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/oauth-provider/dto/request/reject-request.body.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n error\n \n \n \n Optional\n \n error_debug\n \n \n \n Optional\n \n error_description\n \n \n \n Optional\n \n error_hint\n \n \n \n Optional\n \n status_code\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n error\n \n \n \n \n \n \n \n \n error: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n error_debug\n \n \n \n \n \n \n \n \n error_debug: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n error_description\n \n \n \n \n \n \n \n \n error_description: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n error_hint\n \n \n \n \n \n \n \n \n error_hint: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n status_code\n \n \n \n \n \n \n \n \n status_code: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface RejectRequestBody {\n\terror?: string;\n\n\terror_debug?: string;\n\n\terror_description?: string;\n\n\terror_hint?: string;\n\n\tstatus_code?: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RenameBodyParams.html":{"url":"classes/RenameBodyParams.html","title":"class - RenameBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RenameBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/rename.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({required: true, nullable: false})@SanitizeHtml()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/rename.body.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsString } from 'class-validator';\nimport { SanitizeHtml } from '@shared/controller';\n\nexport class RenameBodyParams {\n\t@IsString()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\t@SanitizeHtml()\n\ttitle!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RenameFileParams.html":{"url":"classes/RenameFileParams.html","title":"class - RenameFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RenameFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n fileName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:78\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RequestInfo.html":{"url":"classes/RequestInfo.html","title":"class - RequestInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RequestInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/metrics/prometheus/middleware.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n baseUrl\n \n \n fullPath\n \n \n method\n \n \n routePath\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n hasPath\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(req: Request)\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n req\n \n \n Request\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n fullPath\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n method\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n routePath\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : ''\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:12\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n hasPath\n \n \n \n \n \n \n \n hasPath(reqRoute)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n reqRoute\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import client from 'prom-client';\nimport responseTime from 'response-time';\nimport { Request, RequestHandler, Response } from 'express';\n\nclass RequestInfo {\n\tmethod: string;\n\n\tbaseUrl: string;\n\n\tfullPath: string;\n\n\troutePath = '';\n\n\tprivate hasPath(reqRoute: unknown): reqRoute is { path: string } {\n\t\treturn typeof reqRoute === 'object' && reqRoute != null && 'path' in reqRoute;\n\t}\n\n\tconstructor(req: Request) {\n\t\tthis.method = req.method;\n\t\tthis.baseUrl = req.baseUrl === undefined ? '' : req.baseUrl;\n\t\tthis.fullPath = this.baseUrl;\n\n\t\tif (this.hasPath(req.route)) {\n\t\t\tthis.routePath = req.route.path;\n\n\t\t\tthis.fullPath += this.routePath;\n\t\t}\n\t}\n}\n\nclass ResponseInfo {\n\tstatusCode: number;\n\n\tconstructor(res: Response) {\n\t\tthis.statusCode = res.statusCode;\n\t}\n}\n\nconst apiResponseTimeMetricLabelNames = ['method', 'base_url', 'full_path', 'route_path', 'status_code'];\n\nexport const getAPIResponseTimeMetricLabels = (req: Request, res: Response) => {\n\tconst reqInfo = new RequestInfo(req);\n\tconst resInfo = new ResponseInfo(res);\n\n\treturn {\n\t\tmethod: reqInfo.method,\n\t\tbase_url: reqInfo.baseUrl,\n\t\tfull_path: reqInfo.fullPath,\n\t\troute_path: reqInfo.routePath,\n\t\tstatus_code: resInfo.statusCode,\n\t};\n};\n\nexport const apiResponseTimeMetricHistogram = new client.Histogram({\n\tname: 'sc_api_response_time_in_seconds',\n\thelp: 'SC API response time in seconds',\n\tlabelNames: apiResponseTimeMetricLabelNames,\n});\n\nexport const createAPIResponseTimeMetricMiddleware = (): RequestHandler =>\n\tresponseTime((req: Request, res: Response, time: number) => {\n\t\tconst labels = getAPIResponseTimeMetricLabels(req, res);\n\n\t\tapiResponseTimeMetricHistogram.observe(labels, time / 1000);\n\t});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RequestLoggingInterceptor.html":{"url":"injectables/RequestLoggingInterceptor.html","title":"injectable - RequestLoggingInterceptor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RequestLoggingInterceptor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/interceptor/request-logging.interceptor.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n intercept\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/common/interceptor/request-logging.interceptor.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n intercept\n \n \n \n \n \n \nintercept(context: ExecutionContext, next: CallHandler)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/interceptor/request-logging.interceptor.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n context\n \n ExecutionContext\n \n\n \n No\n \n\n\n \n \n next\n \n CallHandler\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Observable<>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';\nimport { LegacyLogger, RequestLoggingBody } from '@src/core/logger';\nimport { Request } from 'express';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\nimport { ICurrentUser } from '@src/modules/authentication/interface/user';\n\n@Injectable()\nexport class RequestLoggingInterceptor implements NestInterceptor {\n\tconstructor(private logger: LegacyLogger) {}\n\n\tintercept(context: ExecutionContext, next: CallHandler): Observable {\n\t\tthis.logger.setContext(`${context.getClass().name}::${context.getHandler().name}()`);\n\n\t\tconst req: Request = context.switchToHttp().getRequest();\n\t\tconst currentUser = req.user as ICurrentUser;\n\t\tconst logging: RequestLoggingBody = {\n\t\t\tuserId: currentUser.userId,\n\t\t\trequest: {\n\t\t\t\turl: req.url,\n\t\t\t\tmethod: req.method,\n\t\t\t\tparams: req.params,\n\t\t\t\tquery: req.query,\n\t\t\t},\n\t\t\terror: undefined,\n\t\t};\n\t\treturn next.handle().pipe(\n\t\t\ttap(() => {\n\t\t\t\tthis.logger.http(logging);\n\t\t\t}),\n\t\t\tcatchError((err: unknown) => {\n\t\t\t\tlogging.error = err;\n\t\t\t\tthis.logger.http(logging);\n\t\t\t\treturn throwError(() => err);\n\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ResolvedUserMapper.html":{"url":"classes/ResolvedUserMapper.html","title":"class - ResolvedUserMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResolvedUserMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/mapper/resolved-user.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(user: User, permissions: string[], roles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/mapper/resolved-user.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n \n \n\n \n \n permissions\n \n string[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n roles\n \n Role[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : ResolvedUserResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { User, Role } from '@shared/domain';\nimport { ResolvedUserResponse } from '../controller/dto';\n\nexport class ResolvedUserMapper {\n\tstatic mapToResponse(user: User, permissions: string[] = [], roles: Role[] = []): ResolvedUserResponse {\n\t\tconst dto = new ResolvedUserResponse();\n\t\tdto.id = user.id;\n\t\tdto.firstName = user.firstName;\n\t\tdto.lastName = user.lastName;\n\t\tdto.createdAt = user.createdAt;\n\t\tdto.updatedAt = user.updatedAt;\n\t\tdto.schoolId = user.school.toString();\n\t\tdto.roles = roles.map((role) => {\n\t\t\treturn { name: role.name, id: role.id };\n\t\t});\n\n\t\tdto.permissions = permissions;\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ResolvedUserResponse.html":{"url":"classes/ResolvedUserResponse.html","title":"class - ResolvedUserResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResolvedUserResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/controller/dto/resolved-user.response.ts\n \n\n\n\n\n \n Implements\n \n \n IResolvedUser\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n firstName\n \n \n \n id\n \n \n \n lastName\n \n \n \n permissions\n \n \n \n roles\n \n \n \n schoolId\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Type : Role[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/resolved-user.response.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IResolvedUser, IRole } from '@src/modules/authentication/interface/user';\n\nexport type Role = IRole;\n\nexport class ResolvedUserResponse implements IResolvedUser {\n\t@ApiProperty()\n\tfirstName!: string;\n\n\t@ApiProperty()\n\tlastName!: string;\n\n\t@ApiProperty()\n\tid!: string;\n\n\t@ApiProperty()\n\tcreatedAt!: Date;\n\n\t@ApiProperty()\n\tupdatedAt!: Date;\n\n\t@ApiProperty()\n\troles!: Role[];\n\n\t@ApiProperty()\n\tpermissions!: string[];\n\n\t@ApiProperty()\n\tschoolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ResponseInfo.html":{"url":"classes/ResponseInfo.html","title":"class - ResponseInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ResponseInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/metrics/prometheus/middleware.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n statusCode\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(res: Response)\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n res\n \n \n Response\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n statusCode\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/shared/infra/metrics/prometheus/middleware.ts:32\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import client from 'prom-client';\nimport responseTime from 'response-time';\nimport { Request, RequestHandler, Response } from 'express';\n\nclass RequestInfo {\n\tmethod: string;\n\n\tbaseUrl: string;\n\n\tfullPath: string;\n\n\troutePath = '';\n\n\tprivate hasPath(reqRoute: unknown): reqRoute is { path: string } {\n\t\treturn typeof reqRoute === 'object' && reqRoute != null && 'path' in reqRoute;\n\t}\n\n\tconstructor(req: Request) {\n\t\tthis.method = req.method;\n\t\tthis.baseUrl = req.baseUrl === undefined ? '' : req.baseUrl;\n\t\tthis.fullPath = this.baseUrl;\n\n\t\tif (this.hasPath(req.route)) {\n\t\t\tthis.routePath = req.route.path;\n\n\t\t\tthis.fullPath += this.routePath;\n\t\t}\n\t}\n}\n\nclass ResponseInfo {\n\tstatusCode: number;\n\n\tconstructor(res: Response) {\n\t\tthis.statusCode = res.statusCode;\n\t}\n}\n\nconst apiResponseTimeMetricLabelNames = ['method', 'base_url', 'full_path', 'route_path', 'status_code'];\n\nexport const getAPIResponseTimeMetricLabels = (req: Request, res: Response) => {\n\tconst reqInfo = new RequestInfo(req);\n\tconst resInfo = new ResponseInfo(res);\n\n\treturn {\n\t\tmethod: reqInfo.method,\n\t\tbase_url: reqInfo.baseUrl,\n\t\tfull_path: reqInfo.fullPath,\n\t\troute_path: reqInfo.routePath,\n\t\tstatus_code: resInfo.statusCode,\n\t};\n};\n\nexport const apiResponseTimeMetricHistogram = new client.Histogram({\n\tname: 'sc_api_response_time_in_seconds',\n\thelp: 'SC API response time in seconds',\n\tlabelNames: apiResponseTimeMetricLabelNames,\n});\n\nexport const createAPIResponseTimeMetricMiddleware = (): RequestHandler =>\n\tresponseTime((req: Request, res: Response, time: number) => {\n\t\tconst labels = getAPIResponseTimeMetricLabels(req, res);\n\n\t\tapiResponseTimeMetricHistogram.observe(labels, time / 1000);\n\t});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RestartUserLoginMigrationUc.html":{"url":"injectables/RestartUserLoginMigrationUc.html","title":"injectable - RestartUserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RestartUserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/restart-user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkPermission\n \n \n Async\n restartMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, authorizationService: AuthorizationService, schoolService: LegacySchoolService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/restart-user-login-migration.uc.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/restart-user-login-migration.uc.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n restartMigration\n \n \n \n \n \n \n \n restartMigration(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/restart-user-login-migration.uc.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { Permission, LegacySchoolDo, User, UserLoginMigrationDO } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationContext, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport {\n\tUserLoginMigrationGracePeriodExpiredLoggableException,\n\tUserLoginMigrationNotFoundLoggableException,\n} from '../error';\nimport { UserLoginMigrationStartLoggable } from '../loggable';\nimport { UserLoginMigrationService } from '../service';\n\n@Injectable()\nexport class RestartUserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tthis.logger.setContext(RestartUserLoginMigrationUc.name);\n\t}\n\n\tasync restartMigration(userId: string, schoolId: string): Promise {\n\t\tawait this.checkPermission(userId, schoolId);\n\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t} else if (userLoginMigration.finishedAt && Date.now() >= userLoginMigration.finishedAt.getTime()) {\n\t\t\tthrow new UserLoginMigrationGracePeriodExpiredLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.finishedAt\n\t\t\t);\n\t\t} else if (userLoginMigration.closedAt) {\n\t\t\tuserLoginMigration = await this.userLoginMigrationService.restartMigration(schoolId);\n\n\t\t\tthis.logger.info(new UserLoginMigrationStartLoggable(userId, schoolId));\n\t\t} else {\n\t\t\t// Do nothing, if migration is already started but not stopped.\n\t\t}\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync checkPermission(userId: string, schoolId: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.USER_LOGIN_MIGRATION_ADMIN]);\n\t\tthis.authorizationService.checkPermission(user, school, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RevokeConsentParams.html":{"url":"classes/RevokeConsentParams.html","title":"class - RevokeConsentParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RevokeConsentParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/revoke-consent.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n client\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n client\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The Oauth2 client id.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/revoke-consent.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class RevokeConsentParams {\n\t@IsString()\n\t@ApiProperty({ description: 'The Oauth2 client id.', required: true, nullable: false })\n\tclient!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichText.html":{"url":"classes/RichText.html","title":"class - RichText","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichText\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/types/rich-text.types.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: RichText)\n \n \n \n \n Defined in apps/server/src/shared/domain/types/rich-text.types.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n RichText\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Content of the rich text element'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/types/rich-text.types.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Input format of the rich text element', enum: InputFormat})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/types/rich-text.types.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { sanitizeRichText } from '../../controller/transformer/sanitize-html.transformer';\nimport { InputFormat } from './input-format.types';\n\nexport class RichText {\n\tconstructor({ content, type }: RichText) {\n\t\tthis.content = sanitizeRichText(content, type);\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'Content of the rich text element',\n\t})\n\tcontent: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Input format of the rich text element',\n\t\tenum: InputFormat,\n\t})\n\ttype: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextContentBody.html":{"url":"classes/RichTextContentBody.html","title":"class - RichTextContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n text\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(InputFormat)@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:34\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElement.html":{"url":"classes/RichTextElement.html","title":"class - RichTextElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n text\n \n \n inputFormat\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild()\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:22\n\n \n \n\n\n \n \n\n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n text\n \n \n\n \n \n gettext()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts:6\n \n \n\n \n \n settext(value: string)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n inputFormat\n \n \n\n \n \n getinputFormat()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts:14\n \n \n\n \n \n setinputFormat(value: InputFormat)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts:18\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n InputFormat\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { InputFormat } from '@shared/domain/types';\nimport { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class RichTextElement extends BoardComposite {\n\tget text(): string {\n\t\treturn this.props.text;\n\t}\n\n\tset text(value: string) {\n\t\tthis.props.text = value;\n\t}\n\n\tget inputFormat(): InputFormat {\n\t\treturn this.props.inputFormat;\n\t}\n\n\tset inputFormat(value: InputFormat) {\n\t\tthis.props.inputFormat = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitRichTextElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitRichTextElementAsync(this);\n\t}\n}\n\nexport interface RichTextElementProps extends BoardCompositeProps {\n\ttext: string;\n\tinputFormat: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElementContent.html":{"url":"classes/RichTextElementContent.html","title":"class - RichTextElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElementContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n inputFormat\n \n \n \n text\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: RichTextElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n RichTextElementContent\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class RichTextElementContent {\n\tconstructor({ text, inputFormat }: RichTextElementContent) {\n\t\tthis.text = text;\n\t\tthis.inputFormat = inputFormat;\n\t}\n\n\t@ApiProperty()\n\ttext: string;\n\n\t@ApiProperty()\n\tinputFormat: InputFormat;\n}\n\nexport class RichTextElementResponse {\n\tconstructor({ id, content, timestamps, type }: RichTextElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.RICH_TEXT;\n\n\t@ApiProperty()\n\tcontent: RichTextElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElementContentBody.html":{"url":"classes/RichTextElementContentBody.html","title":"class - RichTextElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElementContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n \n Extends\n \n \n ElementContentBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : RichTextContentBody\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.RICH_TEXT\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from ElementContentBody\n\n \n \n \n \n Defined in ElementContentBody:43\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/RichTextElementNode.html":{"url":"entities/RichTextElementNode.html","title":"entity - RichTextElementNode","body":"\n \n\n\n\n\n\n\n\n Entities\n RichTextElementNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/rich-text-element-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n inputFormat\n \n \n \n text\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/rich-text-element-node.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/rich-text-element-node.entity.ts:10\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '@shared/domain/domainobject';\nimport { InputFormat } from '@shared/domain/types';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.RICH_TEXT_ELEMENT })\nexport class RichTextElementNode extends BoardNode {\n\t@Property()\n\ttext: string;\n\n\t@Property()\n\tinputFormat: InputFormat;\n\n\tconstructor(props: RichTextElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.RICH_TEXT_ELEMENT;\n\t\tthis.text = props.text;\n\t\tthis.inputFormat = props.inputFormat;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildRichTextElement(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface RichTextElementNodeProps extends BoardNodeProps {\n\ttext: string;\n\tinputFormat: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RichTextElementNodeProps.html":{"url":"interfaces/RichTextElementNodeProps.html","title":"interface - RichTextElementNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RichTextElementNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/rich-text-element-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n text\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n \n \n inputFormat: InputFormat\n\n \n \n\n\n \n \n Type : InputFormat\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n \n \n text: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '@shared/domain/domainobject';\nimport { InputFormat } from '@shared/domain/types';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.RICH_TEXT_ELEMENT })\nexport class RichTextElementNode extends BoardNode {\n\t@Property()\n\ttext: string;\n\n\t@Property()\n\tinputFormat: InputFormat;\n\n\tconstructor(props: RichTextElementNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.RICH_TEXT_ELEMENT;\n\t\tthis.text = props.text;\n\t\tthis.inputFormat = props.inputFormat;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildRichTextElement(this);\n\t\treturn domainObject;\n\t}\n}\n\nexport interface RichTextElementNodeProps extends BoardNodeProps {\n\ttext: string;\n\tinputFormat: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RichTextElementProps.html":{"url":"interfaces/RichTextElementProps.html","title":"interface - RichTextElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RichTextElementProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/rich-text-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n inputFormat\n \n \n \n \n text\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n inputFormat\n \n \n \n \n \n \n \n \n inputFormat: InputFormat\n\n \n \n\n\n \n \n Type : InputFormat\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n text\n \n \n \n \n \n \n \n \n text: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { InputFormat } from '@shared/domain/types';\nimport { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class RichTextElement extends BoardComposite {\n\tget text(): string {\n\t\treturn this.props.text;\n\t}\n\n\tset text(value: string) {\n\t\tthis.props.text = value;\n\t}\n\n\tget inputFormat(): InputFormat {\n\t\treturn this.props.inputFormat;\n\t}\n\n\tset inputFormat(value: InputFormat) {\n\t\tthis.props.inputFormat = value;\n\t}\n\n\tisAllowedAsChild(): boolean {\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitRichTextElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitRichTextElementAsync(this);\n\t}\n}\n\nexport interface RichTextElementProps extends BoardCompositeProps {\n\ttext: string;\n\tinputFormat: InputFormat;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElementResponse.html":{"url":"classes/RichTextElementResponse.html","title":"class - RichTextElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n id\n \n \n \n timestamps\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: RichTextElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n RichTextElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : RichTextElementContent\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.RICH_TEXT\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ContentElementType, enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/rich-text-element.response.ts:30\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class RichTextElementContent {\n\tconstructor({ text, inputFormat }: RichTextElementContent) {\n\t\tthis.text = text;\n\t\tthis.inputFormat = inputFormat;\n\t}\n\n\t@ApiProperty()\n\ttext: string;\n\n\t@ApiProperty()\n\tinputFormat: InputFormat;\n}\n\nexport class RichTextElementResponse {\n\tconstructor({ id, content, timestamps, type }: RichTextElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.RICH_TEXT;\n\n\t@ApiProperty()\n\tcontent: RichTextElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RichTextElementResponseMapper.html":{"url":"classes/RichTextElementResponseMapper.html","title":"class - RichTextElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RichTextElementResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts\n \n\n\n\n\n \n Implements\n \n \n BaseResponseMapper\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n canMap\n \n \n Static\n getInstance\n \n \n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n \n \n Type : RichTextElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts:7\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n \n \ncanMap(element: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n getInstance\n \n \n \n \n \n \n \n getInstance()\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts:9\n \n \n\n\n \n \n\n \n Returns : RichTextElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: RichTextElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/rich-text-element-response.mapper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n RichTextElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RichTextElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, RichTextElement } from '@shared/domain';\nimport { TimestampsResponse } from '../dto';\nimport { RichTextElementContent, RichTextElementResponse } from '../dto/element/rich-text-element.response';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class RichTextElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: RichTextElementResponseMapper;\n\n\tpublic static getInstance(): RichTextElementResponseMapper {\n\t\tif (!RichTextElementResponseMapper.instance) {\n\t\t\tRichTextElementResponseMapper.instance = new RichTextElementResponseMapper();\n\t\t}\n\n\t\treturn RichTextElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: RichTextElement): RichTextElementResponse {\n\t\tconst result = new RichTextElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.RICH_TEXT,\n\t\t\tcontent: new RichTextElementContent({ text: element.text, inputFormat: element.inputFormat }),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: RichTextElement): boolean {\n\t\treturn element instanceof RichTextElement;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RocketChatError.html":{"url":"classes/RocketChatError.html","title":"class - RocketChatError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RocketChatError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.service.ts\n \n\n\n\n \n Extends\n \n \n Error\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n errorType\n \n \n Private\n response\n \n \n Private\n statusCode\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(e: any)\n \n \n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.service.ts:47\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n e\n \n \n any\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n errorType\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.service.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n response\n \n \n \n \n \n \n Type : GenericData\n\n \n \n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.service.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n statusCode\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.service.ts:42\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { lastValueFrom } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport interface RocketChatOptions {\n\turi?: string;\n\tadminUser?: string;\n\tadminPassword?: string;\n\tadminId?: string;\n\tadminToken?: string;\n}\n\nexport interface RocketChatGroupModel {\n\tgroup: {\n\t\t_id: string;\n\t\tname: string;\n\t\tfname: string;\n\t\tt: string;\n\t\tmsgs: number;\n\t\tusersCount: number;\n\t\tu: {\n\t\t\t_id: string;\n\t\t\tusername: string;\n\t\t};\n\t\tcustomfields: object;\n\t\tbroadcast: boolean;\n\t\tencrypted: boolean;\n\t\tts: Date;\n\t\tro: boolean;\n\t\tdefaults: boolean;\n\t\tsysmes: boolean;\n\t\t_updatedAt: Date;\n\t};\n\tsuccess: boolean;\n}\n\ntype GenericData = Record;\n\nexport class RocketChatError extends Error {\n\tprivate statusCode: number;\n\n\tprivate response: GenericData;\n\n\t// rocketchat specific error type\n\tprivate errorType: string;\n\n\tconstructor(e: any) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument\n\t\tsuper(e.response.statusText);\n\n\t\t// Set the prototype explicitly.\n\t\tObject.setPrototypeOf(this, RocketChatError.prototype);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\tthis.statusCode = e.response.statusCode;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.response = e.response.data;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.errorType = e.response.data.errorType;\n\t}\n}\n\ninterface AdminIdAndToken {\n\tid: string;\n\ttoken: string;\n}\n\n@Injectable()\nexport class RocketChatService {\n\tprivate adminIdAndToken?: AdminIdAndToken;\n\n\tconstructor(\n\t\t@Inject('ROCKET_CHAT_OPTIONS') private readonly options: RocketChatOptions,\n\t\tprivate readonly httpService: HttpService\n\t) {}\n\n\tpublic async me(authToken: string, userId: string): Promise {\n\t\treturn this.get('/api/v1/me', authToken, userId);\n\t}\n\n\tpublic async setUserStatus(authToken: string, userId: string, status: string): Promise {\n\t\treturn this.post('/api/v1/users.setStatus', authToken, userId, {\n\t\t\tmessage: '',\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic async createUserToken(userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.createToken', {\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async logoutUser(authToken: string, userId: string): Promise {\n\t\treturn this.post('/api/v1/logout', authToken, userId, {});\n\t}\n\n\tpublic async getUserList(queryString: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/users.list?${queryString}`);\n\t}\n\n\tpublic async unarchiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.unarchive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async archiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.archive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async kickUserFromGroup(groupName: string, userId: string): Promise {\n\t\tconst groupInfo: RocketChatGroupModel = await this.getGroupData(groupName);\n\n\t\treturn this.postAsAdmin('/api/v1/groups.kick', {\n\t\t\troomId: groupInfo.group._id,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async inviteUserToGroup(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.invite', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async addGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.addModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async removeGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.removeModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async getGroupModerators(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.moderators?roomName=${groupName}`);\n\t}\n\n\tpublic async getGroupMembers(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.members?roomName=${groupName}`);\n\t}\n\n\tprivate async getGroupData(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.info?roomName=${groupName}`);\n\t}\n\n\tpublic async createGroup(name: string, members: string[]): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.create', {\n\t\t\tname,\n\t\t\tmembers,\n\t\t});\n\t}\n\n\tpublic async deleteGroup(groupName: string): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.delete', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async createUser(email: string, password: string, username: string, name: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.create', {\n\t\t\temail,\n\t\t\tpassword,\n\t\t\tusername,\n\t\t\tname,\n\t\t\tverified: true,\n\t\t});\n\t}\n\n\tpublic async deleteUser(username: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.delete', {\n\t\t\tusername,\n\t\t});\n\t}\n\n\tprivate async postAsAdmin(path: string, body: GenericData): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.post(path, adminIdAndToken.token, adminIdAndToken.id, body);\n\t}\n\n\tprivate async getAsAdmin(path: string): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.get(path, adminIdAndToken.token, adminIdAndToken.id);\n\t}\n\n\tprivate async get(path: string, authToken: string, userId: string): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.get(`${this.options.uri}${path}`, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as Type;\n\t}\n\n\tprivate async post(path: string, authToken: string, userId: string, body: GenericData): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}${path}`, body, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as GenericData;\n\t}\n\n\tprivate async getAdminIdAndToken(): Promise {\n\t\tthis.validateRocketChatConfig();\n\n\t\tif (this.adminIdAndToken) {\n\t\t\treturn this.adminIdAndToken;\n\t\t}\n\n\t\tif (this.options.adminId && this.options.adminToken) {\n\t\t\tconst newVar = { id: this.options.adminId, token: this.options.adminToken } as AdminIdAndToken;\n\t\t\tthis.adminIdAndToken = newVar;\n\t\t\treturn newVar;\n\t\t}\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}/api/v1/login`, {\n\t\t\t\t\tuser: this.options.adminUser,\n\t\t\t\t\tpassword: this.options.adminPassword,\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst responseJson = response?.data;\n\t\tthis.adminIdAndToken = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tid: responseJson.data.userId as string,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\ttoken: responseJson.data.authToken as string,\n\t\t} as AdminIdAndToken;\n\t\treturn this.adminIdAndToken;\n\t}\n\n\tprivate validateRocketChatConfig(): void {\n\t\tif (!this.options.uri) {\n\t\t\tthrow new Error('rocket chat uri not set');\n\t\t}\n\t\tif (!(this.options.adminId && this.options.adminToken) && !(this.options.adminUser && this.options.adminPassword)) {\n\t\t\tthrow new Error('rocket chat adminId and adminToken OR adminUser and adminPassword must be set');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RocketChatGroupModel.html":{"url":"interfaces/RocketChatGroupModel.html","title":"interface - RocketChatGroupModel","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RocketChatGroupModel\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n group\n \n \n \n \n success\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n group\n \n \n \n \n \n \n \n \n group: literal type\n\n \n \n\n\n \n \n Type : literal type\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n success\n \n \n \n \n \n \n \n \n success: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { lastValueFrom } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport interface RocketChatOptions {\n\turi?: string;\n\tadminUser?: string;\n\tadminPassword?: string;\n\tadminId?: string;\n\tadminToken?: string;\n}\n\nexport interface RocketChatGroupModel {\n\tgroup: {\n\t\t_id: string;\n\t\tname: string;\n\t\tfname: string;\n\t\tt: string;\n\t\tmsgs: number;\n\t\tusersCount: number;\n\t\tu: {\n\t\t\t_id: string;\n\t\t\tusername: string;\n\t\t};\n\t\tcustomfields: object;\n\t\tbroadcast: boolean;\n\t\tencrypted: boolean;\n\t\tts: Date;\n\t\tro: boolean;\n\t\tdefaults: boolean;\n\t\tsysmes: boolean;\n\t\t_updatedAt: Date;\n\t};\n\tsuccess: boolean;\n}\n\ntype GenericData = Record;\n\nexport class RocketChatError extends Error {\n\tprivate statusCode: number;\n\n\tprivate response: GenericData;\n\n\t// rocketchat specific error type\n\tprivate errorType: string;\n\n\tconstructor(e: any) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument\n\t\tsuper(e.response.statusText);\n\n\t\t// Set the prototype explicitly.\n\t\tObject.setPrototypeOf(this, RocketChatError.prototype);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\tthis.statusCode = e.response.statusCode;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.response = e.response.data;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.errorType = e.response.data.errorType;\n\t}\n}\n\ninterface AdminIdAndToken {\n\tid: string;\n\ttoken: string;\n}\n\n@Injectable()\nexport class RocketChatService {\n\tprivate adminIdAndToken?: AdminIdAndToken;\n\n\tconstructor(\n\t\t@Inject('ROCKET_CHAT_OPTIONS') private readonly options: RocketChatOptions,\n\t\tprivate readonly httpService: HttpService\n\t) {}\n\n\tpublic async me(authToken: string, userId: string): Promise {\n\t\treturn this.get('/api/v1/me', authToken, userId);\n\t}\n\n\tpublic async setUserStatus(authToken: string, userId: string, status: string): Promise {\n\t\treturn this.post('/api/v1/users.setStatus', authToken, userId, {\n\t\t\tmessage: '',\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic async createUserToken(userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.createToken', {\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async logoutUser(authToken: string, userId: string): Promise {\n\t\treturn this.post('/api/v1/logout', authToken, userId, {});\n\t}\n\n\tpublic async getUserList(queryString: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/users.list?${queryString}`);\n\t}\n\n\tpublic async unarchiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.unarchive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async archiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.archive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async kickUserFromGroup(groupName: string, userId: string): Promise {\n\t\tconst groupInfo: RocketChatGroupModel = await this.getGroupData(groupName);\n\n\t\treturn this.postAsAdmin('/api/v1/groups.kick', {\n\t\t\troomId: groupInfo.group._id,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async inviteUserToGroup(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.invite', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async addGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.addModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async removeGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.removeModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async getGroupModerators(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.moderators?roomName=${groupName}`);\n\t}\n\n\tpublic async getGroupMembers(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.members?roomName=${groupName}`);\n\t}\n\n\tprivate async getGroupData(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.info?roomName=${groupName}`);\n\t}\n\n\tpublic async createGroup(name: string, members: string[]): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.create', {\n\t\t\tname,\n\t\t\tmembers,\n\t\t});\n\t}\n\n\tpublic async deleteGroup(groupName: string): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.delete', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async createUser(email: string, password: string, username: string, name: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.create', {\n\t\t\temail,\n\t\t\tpassword,\n\t\t\tusername,\n\t\t\tname,\n\t\t\tverified: true,\n\t\t});\n\t}\n\n\tpublic async deleteUser(username: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.delete', {\n\t\t\tusername,\n\t\t});\n\t}\n\n\tprivate async postAsAdmin(path: string, body: GenericData): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.post(path, adminIdAndToken.token, adminIdAndToken.id, body);\n\t}\n\n\tprivate async getAsAdmin(path: string): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.get(path, adminIdAndToken.token, adminIdAndToken.id);\n\t}\n\n\tprivate async get(path: string, authToken: string, userId: string): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.get(`${this.options.uri}${path}`, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as Type;\n\t}\n\n\tprivate async post(path: string, authToken: string, userId: string, body: GenericData): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}${path}`, body, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as GenericData;\n\t}\n\n\tprivate async getAdminIdAndToken(): Promise {\n\t\tthis.validateRocketChatConfig();\n\n\t\tif (this.adminIdAndToken) {\n\t\t\treturn this.adminIdAndToken;\n\t\t}\n\n\t\tif (this.options.adminId && this.options.adminToken) {\n\t\t\tconst newVar = { id: this.options.adminId, token: this.options.adminToken } as AdminIdAndToken;\n\t\t\tthis.adminIdAndToken = newVar;\n\t\t\treturn newVar;\n\t\t}\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}/api/v1/login`, {\n\t\t\t\t\tuser: this.options.adminUser,\n\t\t\t\t\tpassword: this.options.adminPassword,\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst responseJson = response?.data;\n\t\tthis.adminIdAndToken = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tid: responseJson.data.userId as string,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\ttoken: responseJson.data.authToken as string,\n\t\t} as AdminIdAndToken;\n\t\treturn this.adminIdAndToken;\n\t}\n\n\tprivate validateRocketChatConfig(): void {\n\t\tif (!this.options.uri) {\n\t\t\tthrow new Error('rocket chat uri not set');\n\t\t}\n\t\tif (!(this.options.adminId && this.options.adminToken) && !(this.options.adminUser && this.options.adminPassword)) {\n\t\t\tthrow new Error('rocket chat adminId and adminToken OR adminUser and adminPassword must be set');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RocketChatModule.html":{"url":"modules/RocketChatModule.html","title":"module - RocketChatModule","body":"\n \n\n\n\n\n Modules\n RocketChatModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options: RocketChatOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/rocketchat/rocket-chat.module.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n RocketChatOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { HttpModule } from '@nestjs/axios';\nimport { DynamicModule, Module } from '@nestjs/common';\nimport { RocketChatOptions, RocketChatService } from './rocket-chat.service';\n\n@Module({})\nexport class RocketChatModule {\n\tstatic forRoot(options: RocketChatOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: RocketChatModule,\n\t\t\timports: [HttpModule],\n\t\t\tproviders: [\n\t\t\t\tRocketChatService,\n\t\t\t\t{\n\t\t\t\t\tprovide: 'ROCKET_CHAT_OPTIONS',\n\t\t\t\t\tuseValue: options,\n\t\t\t\t},\n\t\t\t],\n\t\t\texports: [RocketChatService],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RocketChatOptions.html":{"url":"interfaces/RocketChatOptions.html","title":"interface - RocketChatOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RocketChatOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/rocketchat/rocket-chat.service.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n adminId\n \n \n \n Optional\n \n adminPassword\n \n \n \n Optional\n \n adminToken\n \n \n \n Optional\n \n adminUser\n \n \n \n Optional\n \n uri\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n adminId\n \n \n \n \n \n \n \n \n adminId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n adminPassword\n \n \n \n \n \n \n \n \n adminPassword: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n adminToken\n \n \n \n \n \n \n \n \n adminToken: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n adminUser\n \n \n \n \n \n \n \n \n adminUser: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n uri\n \n \n \n \n \n \n \n \n uri: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { HttpService } from '@nestjs/axios';\nimport { Inject, Injectable } from '@nestjs/common';\nimport { lastValueFrom } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nexport interface RocketChatOptions {\n\turi?: string;\n\tadminUser?: string;\n\tadminPassword?: string;\n\tadminId?: string;\n\tadminToken?: string;\n}\n\nexport interface RocketChatGroupModel {\n\tgroup: {\n\t\t_id: string;\n\t\tname: string;\n\t\tfname: string;\n\t\tt: string;\n\t\tmsgs: number;\n\t\tusersCount: number;\n\t\tu: {\n\t\t\t_id: string;\n\t\t\tusername: string;\n\t\t};\n\t\tcustomfields: object;\n\t\tbroadcast: boolean;\n\t\tencrypted: boolean;\n\t\tts: Date;\n\t\tro: boolean;\n\t\tdefaults: boolean;\n\t\tsysmes: boolean;\n\t\t_updatedAt: Date;\n\t};\n\tsuccess: boolean;\n}\n\ntype GenericData = Record;\n\nexport class RocketChatError extends Error {\n\tprivate statusCode: number;\n\n\tprivate response: GenericData;\n\n\t// rocketchat specific error type\n\tprivate errorType: string;\n\n\tconstructor(e: any) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument\n\t\tsuper(e.response.statusText);\n\n\t\t// Set the prototype explicitly.\n\t\tObject.setPrototypeOf(this, RocketChatError.prototype);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\tthis.statusCode = e.response.statusCode;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.response = e.response.data;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment\n\t\tthis.errorType = e.response.data.errorType;\n\t}\n}\n\ninterface AdminIdAndToken {\n\tid: string;\n\ttoken: string;\n}\n\n@Injectable()\nexport class RocketChatService {\n\tprivate adminIdAndToken?: AdminIdAndToken;\n\n\tconstructor(\n\t\t@Inject('ROCKET_CHAT_OPTIONS') private readonly options: RocketChatOptions,\n\t\tprivate readonly httpService: HttpService\n\t) {}\n\n\tpublic async me(authToken: string, userId: string): Promise {\n\t\treturn this.get('/api/v1/me', authToken, userId);\n\t}\n\n\tpublic async setUserStatus(authToken: string, userId: string, status: string): Promise {\n\t\treturn this.post('/api/v1/users.setStatus', authToken, userId, {\n\t\t\tmessage: '',\n\t\t\tstatus,\n\t\t});\n\t}\n\n\tpublic async createUserToken(userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.createToken', {\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async logoutUser(authToken: string, userId: string): Promise {\n\t\treturn this.post('/api/v1/logout', authToken, userId, {});\n\t}\n\n\tpublic async getUserList(queryString: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/users.list?${queryString}`);\n\t}\n\n\tpublic async unarchiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.unarchive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async archiveGroup(groupName: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.archive', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async kickUserFromGroup(groupName: string, userId: string): Promise {\n\t\tconst groupInfo: RocketChatGroupModel = await this.getGroupData(groupName);\n\n\t\treturn this.postAsAdmin('/api/v1/groups.kick', {\n\t\t\troomId: groupInfo.group._id,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async inviteUserToGroup(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.invite', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async addGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.addModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async removeGroupModerator(groupName: string, userId: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/groups.removeModerator', {\n\t\t\troomName: groupName,\n\t\t\tuserId,\n\t\t});\n\t}\n\n\tpublic async getGroupModerators(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.moderators?roomName=${groupName}`);\n\t}\n\n\tpublic async getGroupMembers(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.members?roomName=${groupName}`);\n\t}\n\n\tprivate async getGroupData(groupName: string): Promise {\n\t\treturn this.getAsAdmin(`/api/v1/groups.info?roomName=${groupName}`);\n\t}\n\n\tpublic async createGroup(name: string, members: string[]): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.create', {\n\t\t\tname,\n\t\t\tmembers,\n\t\t});\n\t}\n\n\tpublic async deleteGroup(groupName: string): Promise {\n\t\t// group.name is only used\n\t\treturn this.postAsAdmin('/api/v1/groups.delete', {\n\t\t\troomName: groupName,\n\t\t});\n\t}\n\n\tpublic async createUser(email: string, password: string, username: string, name: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.create', {\n\t\t\temail,\n\t\t\tpassword,\n\t\t\tusername,\n\t\t\tname,\n\t\t\tverified: true,\n\t\t});\n\t}\n\n\tpublic async deleteUser(username: string): Promise {\n\t\treturn this.postAsAdmin('/api/v1/users.delete', {\n\t\t\tusername,\n\t\t});\n\t}\n\n\tprivate async postAsAdmin(path: string, body: GenericData): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.post(path, adminIdAndToken.token, adminIdAndToken.id, body);\n\t}\n\n\tprivate async getAsAdmin(path: string): Promise {\n\t\tconst adminIdAndToken = await this.getAdminIdAndToken();\n\t\treturn this.get(path, adminIdAndToken.token, adminIdAndToken.id);\n\t}\n\n\tprivate async get(path: string, authToken: string, userId: string): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.get(`${this.options.uri}${path}`, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as Type;\n\t}\n\n\tprivate async post(path: string, authToken: string, userId: string, body: GenericData): Promise {\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}${path}`, body, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'X-Auth-Token': authToken,\n\t\t\t\t\t\t'X-User-ID': userId,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\t\treturn response?.data as GenericData;\n\t}\n\n\tprivate async getAdminIdAndToken(): Promise {\n\t\tthis.validateRocketChatConfig();\n\n\t\tif (this.adminIdAndToken) {\n\t\t\treturn this.adminIdAndToken;\n\t\t}\n\n\t\tif (this.options.adminId && this.options.adminToken) {\n\t\t\tconst newVar = { id: this.options.adminId, token: this.options.adminToken } as AdminIdAndToken;\n\t\t\tthis.adminIdAndToken = newVar;\n\t\t\treturn newVar;\n\t\t}\n\t\tconst response = await lastValueFrom(\n\t\t\tthis.httpService\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t.post(`${this.options.uri}/api/v1/login`, {\n\t\t\t\t\tuser: this.options.adminUser,\n\t\t\t\t\tpassword: this.options.adminPassword,\n\t\t\t\t})\n\t\t\t\t.pipe(\n\t\t\t\t\tcatchError((e) => {\n\t\t\t\t\t\tthrow new RocketChatError(e);\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst responseJson = response?.data;\n\t\tthis.adminIdAndToken = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tid: responseJson.data.userId as string,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\ttoken: responseJson.data.authToken as string,\n\t\t} as AdminIdAndToken;\n\t\treturn this.adminIdAndToken;\n\t}\n\n\tprivate validateRocketChatConfig(): void {\n\t\tif (!this.options.uri) {\n\t\t\tthrow new Error('rocket chat uri not set');\n\t\t}\n\t\tif (!(this.options.adminId && this.options.adminToken) && !(this.options.adminUser && this.options.adminPassword)) {\n\t\t\tthrow new Error('rocket chat adminId and adminToken OR adminUser and adminPassword must be set');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Role.html":{"url":"entities/Role.html","title":"entity - Role","body":"\n \n\n\n\n\n\n\n\n Entities\n Role\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/role.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n permissions\n \n \n \n roles\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Decorators : \n \n \n @Property()@Unique()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/role.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : Permission[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/role.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany({entity: 'Role'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/role.entity.ts:21\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, ManyToMany, Property, Unique } from '@mikro-orm/core';\nimport { Permission, RoleName } from '../interface';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IRoleProperties {\n\tpermissions?: Permission[];\n\troles?: Role[];\n\tname: RoleName;\n}\n\n@Entity({ tableName: 'roles' })\nexport class Role extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Unique()\n\tname: RoleName;\n\n\t@Property()\n\tpermissions: Permission[] = [];\n\n\t@ManyToMany({ entity: 'Role' })\n\troles = new Collection(this);\n\n\tconstructor(props: IRoleProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tif (props.permissions) this.permissions = props.permissions;\n\t\tif (props.roles) this.roles.set(props.roles);\n\t}\n\n\tpublic resolvePermissions(): string[] {\n\t\tif (!this.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\n\t\tlet permissions: string[] = [...this.permissions];\n\n\t\tconst innerRoles = this.roles.getItems();\n\t\tinnerRoles.forEach((innerRole) => {\n\t\t\tconst innerPermissions = innerRole.resolvePermissions();\n\t\t\tpermissions = [...permissions, ...innerPermissions];\n\t\t});\n\n\t\tconst uniquePermissions = [...new Set(permissions)];\n\n\t\treturn uniquePermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoleDto.html":{"url":"classes/RoleDto.html","title":"class - RoleDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoleDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/role/service/dto/role.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n id\n \n \n name\n \n \n Optional\n permissions\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: RoleDto)\n \n \n \n \n Defined in apps/server/src/modules/role/service/dto/role.dto.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n RoleDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/role/service/dto/role.dto.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Defined in apps/server/src/modules/role/service/dto/role.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n permissions\n \n \n \n \n \n \n Type : Permission[]\n\n \n \n \n \n Defined in apps/server/src/modules/role/service/dto/role.dto.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId, Permission, RoleName } from '@shared/domain';\n\nexport class RoleDto {\n\tid?: EntityId;\n\n\tname: RoleName;\n\n\tpermissions?: Permission[];\n\n\tconstructor(props: RoleDto) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t\tthis.permissions = props.permissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoleMapper.html":{"url":"classes/RoleMapper.html","title":"class - RoleMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoleMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/role/mapper/role.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n Static\n mapFromEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n \n \n \n \n \n mapFromEntitiesToDtos(enities: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/mapper/role.mapper.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n enities\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoleDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n \n \n \n mapFromEntityToDto(entity: Role)\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/mapper/role.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n Role\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoleDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Role } from '@shared/domain';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\n\nexport class RoleMapper {\n\tstatic mapFromEntityToDto(entity: Role): RoleDto {\n\t\treturn new RoleDto({\n\t\t\tid: entity.id,\n\t\t\tname: entity.name,\n\t\t\tpermissions: entity.permissions,\n\t\t});\n\t}\n\n\tstatic mapFromEntitiesToDtos(enities: Role[]): RoleDto[] {\n\t\treturn enities.map((entity) => this.mapFromEntityToDto(entity));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/RoleModule.html":{"url":"modules/RoleModule.html","title":"module - RoleModule","body":"\n \n\n\n\n\n Modules\n RoleModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_RoleModule\n\n\n\ncluster_RoleModule_providers\n\n\n\ncluster_RoleModule_exports\n\n\n\n\nRoleRepo \n\nRoleRepo \n\n\n\nRoleService \n\nRoleService \n\n\n\nRoleUc \n\nRoleUc \n\n\n\nRoleModule\n\nRoleModule\n\nRoleRepo -->\n\nRoleModule->RoleRepo \n\n\n\nRoleService -->\n\nRoleModule->RoleService \n\n\n\nRoleUc -->\n\nRoleModule->RoleUc \n\n\n\n\n\nRoleRepo\n\nRoleRepo\n\nRoleModule -->\n\nRoleRepo->RoleModule\n\n\n\n\n\nRoleService\n\nRoleService\n\nRoleModule -->\n\nRoleService->RoleModule\n\n\n\n\n\nRoleUc\n\nRoleUc\n\nRoleModule -->\n\nRoleUc->RoleModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/role/role.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n RoleRepo\n \n \n RoleService\n \n \n RoleUc\n \n \n \n \n Exports\n \n \n RoleRepo\n \n \n RoleService\n \n \n RoleUc\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { RoleRepo } from '@shared/repo';\nimport { RoleService } from '@src/modules/role/service/role.service';\nimport { RoleUc } from '@src/modules/role/uc/role.uc';\n\n@Module({\n\tproviders: [RoleRepo, RoleService, RoleUc],\n\texports: [RoleService, RoleUc, RoleRepo],\n})\nexport class RoleModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoleNameMapper.html":{"url":"classes/RoleNameMapper.html","title":"class - RoleNameMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoleNameMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/mapper/role-name.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToDomain\n \n \n \n \n \n \n \n mapToDomain(roleName: FilterRoleType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/role-name.mapper.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleName\n \n FilterRoleType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IImportUserRoleName\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(roleName: IImportUserRoleName)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/role-name.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleName\n \n IImportUserRoleName\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserRole\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { RoleName, IImportUserRoleName } from '@shared/domain';\nimport { FilterRoleType, UserRole } from '../controller/dto';\n\nexport class RoleNameMapper {\n\tstatic mapToResponse(roleName: IImportUserRoleName): UserRole {\n\t\tif (roleName === RoleName.ADMINISTRATOR) return UserRole.ADMIN;\n\t\tif (roleName === RoleName.TEACHER) return UserRole.TEACHER;\n\t\tif (roleName === RoleName.STUDENT) return UserRole.STUDENT;\n\t\tthrow Error('invalid role name from domain');\n\t}\n\n\tstatic mapToDomain(roleName: FilterRoleType): IImportUserRoleName {\n\t\tif (roleName === FilterRoleType.ADMIN) return RoleName.ADMINISTRATOR;\n\t\tif (roleName === FilterRoleType.TEACHER) return RoleName.TEACHER;\n\t\tif (roleName === FilterRoleType.STUDENT) return RoleName.STUDENT;\n\t\tthrow Error('invalid role name from query');\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoleReference.html":{"url":"classes/RoleReference.html","title":"class - RoleReference","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoleReference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/role-reference.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: RoleReference)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/role-reference.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n RoleReference\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/role-reference.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : RoleName\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/role-reference.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { RoleName } from '../interface';\nimport { EntityId } from '../types';\n\nexport class RoleReference {\n\tid: EntityId;\n\n\tname: RoleName;\n\n\tconstructor(props: RoleReference) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoleRepo.html":{"url":"injectables/RoleRepo.html","title":"injectable - RoleRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoleRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/role/role.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n cacheExpiration\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findByIds\n \n \n Async\n findByName\n \n \n Async\n findByNames\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByIds\n \n \n \n \n \n \n \n findByIds(ids: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ids\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByName\n \n \n \n \n \n \n \n findByName(name: RoleName)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n RoleName\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByNames\n \n \n \n \n \n \n \n findByNames(names: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n names\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n cacheExpiration\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 60000\n \n \n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:11\n \n \n\n\n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/role/role.repo.ts:7\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Role, RoleName } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class RoleRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Role;\n\t}\n\n\tcacheExpiration = 60000;\n\n\tasync findByName(name: RoleName): Promise {\n\t\tconst promise: Promise = this._em.findOneOrFail(Role, { name }, { cache: this.cacheExpiration });\n\t\treturn promise;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst promise: Promise = this._em.findOneOrFail(Role, { id }, { cache: this.cacheExpiration });\n\t\treturn promise;\n\t}\n\n\tasync findByNames(names: RoleName[]): Promise {\n\t\tconst promise: Promise = this._em.find(Role, { name: { $in: names } }, { cache: this.cacheExpiration });\n\t\treturn promise;\n\t}\n\n\tasync findByIds(ids: string[]): Promise {\n\t\tconst promise: Promise = this._em.find(Role, { id: { $in: ids } }, { cache: this.cacheExpiration });\n\t\treturn promise;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoleService.html":{"url":"injectables/RoleService.html","title":"injectable - RoleService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoleService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/role/service/role.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findByIds\n \n \n Async\n findByNames\n \n \n Async\n getProtectedRoles\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(roleRepo: RoleRepo)\n \n \n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleRepo\n \n \n RoleRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByIds\n \n \n \n \n \n \n \n findByIds(ids: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ids\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByNames\n \n \n \n \n \n \n \n findByNames(names: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n names\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getProtectedRoles\n \n \n \n \n \n \n \n getProtectedRoles()\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/service/role.service.ts:11\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Role, RoleName } from '@shared/domain';\nimport { RoleRepo } from '@shared/repo';\nimport { RoleMapper } from '../mapper/role.mapper';\nimport { RoleDto } from './dto/role.dto';\n\n@Injectable()\nexport class RoleService {\n\tconstructor(private readonly roleRepo: RoleRepo) {}\n\n\tasync getProtectedRoles(): Promise {\n\t\tconst roleDtos: RoleDto[] = await this.findByNames([RoleName.ADMINISTRATOR, RoleName.TEACHER]);\n\t\treturn roleDtos;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst entity: Role = await this.roleRepo.findById(id);\n\t\tconst roleDto: RoleDto = RoleMapper.mapFromEntityToDto(entity);\n\t\treturn roleDto;\n\t}\n\n\tasync findByIds(ids: EntityId[]): Promise {\n\t\tconst roles: Role[] = await this.roleRepo.findByIds(ids);\n\t\tconst roleDtos: RoleDto[] = RoleMapper.mapFromEntitiesToDtos(roles);\n\t\treturn roleDtos;\n\t}\n\n\tasync findByNames(names: RoleName[]): Promise {\n\t\tconst entities: Role[] = await this.roleRepo.findByNames(names);\n\t\tconst roleDtos: RoleDto[] = RoleMapper.mapFromEntitiesToDtos(entities);\n\t\treturn roleDtos;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoleUc.html":{"url":"injectables/RoleUc.html","title":"injectable - RoleUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoleUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/role/uc/role.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findByNames\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(roleService: RoleService)\n \n \n \n \n Defined in apps/server/src/modules/role/uc/role.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n roleService\n \n \n RoleService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findByNames\n \n \n \n \n \n \n \n findByNames(names: RoleName[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/role/uc/role.uc.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n names\n \n RoleName[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { RoleService } from '@src/modules/role/service/role.service';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\nimport { Injectable } from '@nestjs/common';\nimport { RoleName } from '@shared/domain';\n\n@Injectable()\nexport class RoleUc {\n\tconstructor(private readonly roleService: RoleService) {}\n\n\tasync findByNames(names: RoleName[]): Promise {\n\t\tconst promise: Promise = this.roleService.findByNames(names);\n\t\treturn promise;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomBoardDTOFactory.html":{"url":"injectables/RoomBoardDTOFactory.html","title":"injectable - RoomBoardDTOFactory","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomBoardDTOFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n createDTO\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorisationService: AuthorizationService, roomsAuthorisationService: RoomsAuthorisationService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:187\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorisationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n roomsAuthorisationService\n \n \n RoomsAuthorisationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n createDTO\n \n \n \n \n \n \ncreateDTO(undefined: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/room-board-dto.factory.ts:193\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoomBoardDTO\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport {\n\tBoard,\n\tBoardElement,\n\tBoardElementType,\n\tColumnboardBoardElement,\n\tColumnBoardTarget,\n\tCourse,\n\tITaskStatus,\n\tLessonEntity,\n\tPermission,\n\tTask,\n\tTaskWithStatusVo,\n\tUser,\n} from '@shared/domain';\nimport { AuthorizationService } from '@src/modules/authorization/authorization.service';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport {\n\tColumnBoardMetaData,\n\tLessonMetaData,\n\tRoomBoardDTO,\n\tRoomBoardElementDTO,\n\tRoomBoardElementTypes,\n} from '../types/room-board.types';\nimport { RoomsAuthorisationService } from './rooms.authorisation.service';\n\nclass DtoCreator {\n\troom: Course;\n\n\tboard: Board;\n\n\tuser: User;\n\n\tauthorisationService: AuthorizationService;\n\n\troomsAuthorisationService: RoomsAuthorisationService;\n\n\tconstructor({\n\t\troom,\n\t\tboard,\n\t\tuser,\n\t\tauthorisationService,\n\t\troomsAuthorisationService,\n\t}: {\n\t\troom: Course;\n\t\tboard: Board;\n\t\tuser: User;\n\t\tauthorisationService: AuthorizationService;\n\t\troomsAuthorisationService: RoomsAuthorisationService;\n\t}) {\n\t\tthis.room = room;\n\t\tthis.board = board;\n\t\tthis.user = user;\n\t\tthis.authorisationService = authorisationService;\n\t\tthis.roomsAuthorisationService = roomsAuthorisationService;\n\t}\n\n\tmanufacture(): RoomBoardDTO {\n\t\tconst elements = this.board.getElements();\n\t\tconst filtered = this.filterByPermission(elements);\n\n\t\tconst mappedElements = this.mapToElementDTOs(filtered);\n\t\tconst dto = this.buildDTOWithElements(mappedElements);\n\t\treturn dto;\n\t}\n\n\tprivate filterByPermission(elements: BoardElement[]) {\n\t\tconst filtered = elements.filter((element) => {\n\t\t\tlet result = false;\n\t\t\tif (element.boardElementType === BoardElementType.Task) {\n\t\t\t\tresult = this.roomsAuthorisationService.hasTaskReadPermission(this.user, element.target as Task);\n\t\t\t}\n\n\t\t\tif (element.boardElementType === BoardElementType.Lesson) {\n\t\t\t\tresult = this.roomsAuthorisationService.hasLessonReadPermission(this.user, element.target as LessonEntity);\n\t\t\t}\n\n\t\t\tif (element instanceof ColumnboardBoardElement && this.isColumnBoardFeatureFlagActive()) {\n\t\t\t\tresult = this.authorisationService.hasPermission(this.user, this.room, {\n\t\t\t\t\taction: Action.read,\n\t\t\t\t\trequiredPermissions: [Permission.COURSE_VIEW],\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\t\treturn filtered;\n\t}\n\n\tprivate isColumnBoardFeatureFlagActive() {\n\t\tconst isActive = (Configuration.get('FEATURE_COLUMN_BOARD_ENABLED') as boolean) === true;\n\n\t\treturn isActive;\n\t}\n\n\tprivate isTeacher(): boolean {\n\t\tif (this.room.teachers.contains(this.user) || this.room.substitutionTeachers.contains(this.user)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate mapToElementDTOs(elements: BoardElement[]) {\n\t\tconst results: RoomBoardElementDTO[] = [];\n\t\telements.forEach((element) => {\n\t\t\tif (element.boardElementType === BoardElementType.Task) {\n\t\t\t\tconst mapped = this.mapTaskElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t\tif (element.boardElementType === BoardElementType.Lesson) {\n\t\t\t\tconst mapped = this.mapLessonElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t\tif (element.boardElementType === BoardElementType.ColumnBoard) {\n\t\t\t\tconst mapped = this.mapColumnBoardElement(element);\n\t\t\t\tresults.push(mapped);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t}\n\n\tprivate mapTaskElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst task = element.target as Task;\n\t\tconst status = this.createTaskStatus(task);\n\n\t\tconst content = new TaskWithStatusVo(task, status);\n\t\treturn { type: RoomBoardElementTypes.TASK, content };\n\t}\n\n\tprivate createTaskStatus(task: Task): ITaskStatus {\n\t\tlet status: ITaskStatus;\n\t\tif (this.isTeacher()) {\n\t\t\tstatus = task.createTeacherStatusForUser(this.user);\n\t\t} else {\n\t\t\tstatus = task.createStudentStatusForUser(this.user);\n\t\t}\n\t\treturn status;\n\t}\n\n\tprivate mapLessonElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst type = RoomBoardElementTypes.LESSON;\n\t\tconst lesson = element.target as LessonEntity;\n\t\tconst content: LessonMetaData = {\n\t\t\tid: lesson.id,\n\t\t\tname: lesson.name,\n\t\t\thidden: lesson.hidden,\n\t\t\tcreatedAt: lesson.createdAt,\n\t\t\tupdatedAt: lesson.updatedAt,\n\t\t\tcourseName: lesson.course.name,\n\t\t\tnumberOfPublishedTasks: lesson.getNumberOfPublishedTasks(),\n\t\t};\n\t\tif (this.isTeacher()) {\n\t\t\tcontent.numberOfDraftTasks = lesson.getNumberOfDraftTasks();\n\t\t\tcontent.numberOfPlannedTasks = lesson.getNumberOfPlannedTasks();\n\t\t}\n\t\treturn { type, content };\n\t}\n\n\tprivate mapColumnBoardElement(element: BoardElement): RoomBoardElementDTO {\n\t\tconst type = RoomBoardElementTypes.COLUMN_BOARD;\n\t\tconst columnBoardTarget = element.target as ColumnBoardTarget;\n\t\tconst content: ColumnBoardMetaData = {\n\t\t\tid: columnBoardTarget.id,\n\t\t\tcolumnBoardId: columnBoardTarget.columnBoardId,\n\t\t\ttitle: columnBoardTarget.title,\n\t\t\tcreatedAt: columnBoardTarget.createdAt,\n\t\t\tupdatedAt: columnBoardTarget.updatedAt,\n\t\t\tpublished: columnBoardTarget.published,\n\t\t};\n\n\t\treturn { type, content };\n\t}\n\n\tprivate buildDTOWithElements(elements: RoomBoardElementDTO[]): RoomBoardDTO {\n\t\tconst dto = {\n\t\t\troomId: this.room.id,\n\t\t\tdisplayColor: this.room.color,\n\t\t\ttitle: this.room.name,\n\t\t\telements,\n\t\t\tisArchived: this.room.isFinished(),\n\t\t};\n\t\treturn dto;\n\t}\n}\n\n@Injectable()\nexport class RoomBoardDTOFactory {\n\tconstructor(\n\t\tprivate readonly authorisationService: AuthorizationService,\n\t\tprivate readonly roomsAuthorisationService: RoomsAuthorisationService\n\t) {}\n\n\tcreateDTO({ room, board, user }: { room: Course; board: Board; user: User }): RoomBoardDTO {\n\t\tconst worker = new DtoCreator({\n\t\t\troom,\n\t\t\tboard,\n\t\t\tuser,\n\t\t\tauthorisationService: this.authorisationService,\n\t\t\troomsAuthorisationService: this.roomsAuthorisationService,\n\t\t});\n\t\tconst result = worker.manufacture();\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomBoardResponseMapper.html":{"url":"injectables/RoomBoardResponseMapper.html","title":"injectable - RoomBoardResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomBoardResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n mapBoardElements\n \n \n Private\n mapColumnBoard\n \n \n Private\n mapLesson\n \n \n Private\n mapTask\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(board: RoomBoardDTO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n RoomBoardDTO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SingleColumnBoardResponse\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n mapBoardElements\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n mapColumnBoard\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:93\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n mapLesson\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:73\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n mapTask\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/learnroom/mapper/room-board-response.mapper.ts:47\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Course, TaskWithStatusVo } from '@shared/domain';\nimport {\n\tBoardElementResponse,\n\tBoardLessonResponse,\n\tBoardTaskResponse,\n\tSingleColumnBoardResponse,\n} from '../controller/dto';\nimport { BoardColumnBoardResponse } from '../controller/dto/single-column-board/board-column-board.response';\nimport { ColumnBoardMetaData, LessonMetaData, RoomBoardDTO, RoomBoardElementTypes } from '../types';\nimport { BoardTaskStatusMapper } from './board-taskStatus.mapper';\n\n@Injectable()\nexport class RoomBoardResponseMapper {\n\tmapToResponse(board: RoomBoardDTO): SingleColumnBoardResponse {\n\t\tconst elements = this.mapBoardElements(board);\n\n\t\tconst mapped = new SingleColumnBoardResponse({\n\t\t\troomId: board.roomId,\n\t\t\ttitle: board.title,\n\t\t\tdisplayColor: board.displayColor,\n\t\t\telements,\n\t\t\tisArchived: board.isArchived,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tprivate mapBoardElements = (board: RoomBoardDTO): BoardElementResponse[] => {\n\t\tconst elements: BoardElementResponse[] = [];\n\t\tboard.elements.forEach((element) => {\n\t\t\tif (element.type === RoomBoardElementTypes.TASK) {\n\t\t\t\telements.push(this.mapTask(element.content as TaskWithStatusVo));\n\t\t\t}\n\n\t\t\tif (element.type === RoomBoardElementTypes.LESSON) {\n\t\t\t\telements.push(this.mapLesson(element.content as LessonMetaData));\n\t\t\t}\n\n\t\t\tif (element.type === RoomBoardElementTypes.COLUMN_BOARD) {\n\t\t\t\telements.push(this.mapColumnBoard(element.content as ColumnBoardMetaData));\n\t\t\t}\n\t\t});\n\t\treturn elements;\n\t};\n\n\tprivate mapTask = (taskWithStatus: TaskWithStatusVo): BoardElementResponse => {\n\t\tconst { task: boardTask, status } = taskWithStatus;\n\t\tconst boardTaskDesc = boardTask.getParentData();\n\t\tconst boardTaskStatus = BoardTaskStatusMapper.mapToResponse(status);\n\n\t\tconst mappedTask = new BoardTaskResponse({\n\t\t\tid: boardTask.id,\n\t\t\tname: boardTask.name,\n\t\t\tcreatedAt: boardTask.createdAt,\n\t\t\tupdatedAt: boardTask.updatedAt,\n\t\t\tstatus: boardTaskStatus,\n\t\t});\n\n\t\tconst taskCourse = boardTask.course as Course;\n\t\tmappedTask.courseName = taskCourse.name;\n\t\tmappedTask.availableDate = boardTask.availableDate;\n\t\tmappedTask.dueDate = boardTask.dueDate;\n\t\tmappedTask.displayColor = boardTaskDesc.color;\n\t\tmappedTask.description = boardTask.description;\n\t\tconst boardElementResponse = new BoardElementResponse({\n\t\t\ttype: RoomBoardElementTypes.TASK,\n\t\t\tcontent: mappedTask,\n\t\t});\n\t\treturn boardElementResponse;\n\t};\n\n\tprivate mapLesson = (lesson: LessonMetaData): BoardElementResponse => {\n\t\tconst mappedLesson = new BoardLessonResponse({\n\t\t\tid: lesson.id,\n\t\t\tname: lesson.name,\n\t\t\thidden: lesson.hidden,\n\t\t\tcreatedAt: lesson.createdAt,\n\t\t\tupdatedAt: lesson.updatedAt,\n\t\t\tnumberOfPublishedTasks: lesson.numberOfPublishedTasks,\n\t\t\tnumberOfDraftTasks: lesson.numberOfDraftTasks,\n\t\t\tnumberOfPlannedTasks: lesson.numberOfPlannedTasks,\n\t\t\tcourseName: lesson.courseName,\n\t\t});\n\n\t\tconst boardElementResponse = new BoardElementResponse({\n\t\t\ttype: RoomBoardElementTypes.LESSON,\n\t\t\tcontent: mappedLesson,\n\t\t});\n\t\treturn boardElementResponse;\n\t};\n\n\tprivate mapColumnBoard = (columnBoardInfo: ColumnBoardMetaData): BoardElementResponse => {\n\t\tconst mappedColumnBoard = new BoardColumnBoardResponse({\n\t\t\tid: columnBoardInfo.id,\n\t\t\tcolumnBoardId: columnBoardInfo.columnBoardId,\n\t\t\ttitle: columnBoardInfo.title,\n\t\t\tpublished: columnBoardInfo.published,\n\t\t\tcreatedAt: columnBoardInfo.createdAt,\n\t\t\tupdatedAt: columnBoardInfo.updatedAt,\n\t\t});\n\n\t\tconst boardElementResponse = new BoardElementResponse({\n\t\t\ttype: RoomBoardElementTypes.COLUMN_BOARD,\n\t\t\tcontent: mappedColumnBoard,\n\t\t});\n\t\treturn boardElementResponse;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoomElementUrlParams.html":{"url":"classes/RoomElementUrlParams.html","title":"class - RoomElementUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoomElementUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/room-element.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n elementId\n \n \n \n \n roomId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n elementId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the element within the room.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/room-element.url.params.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n roomId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the room.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/room-element.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class RoomElementUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the room.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\troomId!: string;\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the element within the room.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\telementId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/RoomUrlParams.html":{"url":"classes/RoomUrlParams.html","title":"class - RoomUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n RoomUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/room.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n roomId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n roomId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the room.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/room.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class RoomUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the room.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\troomId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomsAuthorisationService.html":{"url":"injectables/RoomsAuthorisationService.html","title":"injectable - RoomsAuthorisationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomsAuthorisationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n hasCourseReadPermission\n \n \n hasCourseWritePermission\n \n \n hasLessonReadPermission\n \n \n hasTaskReadPermission\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n hasCourseReadPermission\n \n \n \n \n \n \nhasCourseReadPermission(user: User, course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasCourseWritePermission\n \n \n \n \n \n \nhasCourseWritePermission(user: User, course: Course)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n course\n \n Course\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasLessonReadPermission\n \n \n \n \n \n \nhasLessonReadPermission(user: User, lesson: LessonEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n lesson\n \n LessonEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasTaskReadPermission\n \n \n \n \n \n \nhasTaskReadPermission(user: User, task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.authorisation.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, NotImplementedException } from '@nestjs/common';\nimport { Course, LessonEntity, Task, User } from '@shared/domain';\n\nexport enum TaskParentPermission {\n\tread,\n\twrite,\n}\n\n@Injectable()\nexport class RoomsAuthorisationService {\n\thasCourseWritePermission(user: User, course: Course): boolean {\n\t\tconst hasPermission = course.substitutionTeachers.contains(user) || course.teachers.contains(user);\n\n\t\treturn hasPermission;\n\t}\n\n\thasCourseReadPermission(user: User, course: Course): boolean {\n\t\tconst hasPermission =\n\t\t\tcourse.students.contains(user) || course.substitutionTeachers.contains(user) || course.teachers.contains(user);\n\n\t\treturn hasPermission;\n\t}\n\n\thasTaskReadPermission(user: User, task: Task): boolean {\n\t\tconst isCreator = task.creator === user;\n\t\tlet hasCoursePermission = false;\n\n\t\tif (task.lesson) {\n\t\t\tthrow new NotImplementedException('rooms currenlty do not support tasks in lessons');\n\t\t}\n\n\t\tif (task.course) {\n\t\t\thasCoursePermission = this.hasCourseReadPermission(user, task.course);\n\n\t\t\tif (!task.isPublished()) {\n\t\t\t\thasCoursePermission = this.hasCourseWritePermission(user, task.course);\n\t\t\t}\n\t\t}\n\n\t\tconst hasPermission = isCreator || hasCoursePermission;\n\n\t\treturn hasPermission;\n\t}\n\n\thasLessonReadPermission(user: User, lesson: LessonEntity): boolean {\n\t\tlet hasCoursePermission = false;\n\t\thasCoursePermission = this.hasCourseReadPermission(user, lesson.course);\n\t\tif (lesson.hidden) {\n\t\t\thasCoursePermission = this.hasCourseWritePermission(user, lesson.course);\n\t\t}\n\n\t\treturn hasCoursePermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/RoomsController.html":{"url":"controllers/RoomsController.html","title":"controller - RoomsController","body":"\n \n\n\n\n\n\n\n Controllers\n RoomsController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/rooms.controller.ts\n \n\n \n Prefix\n \n \n rooms\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n copyCourse\n \n \n \n \n Async\n copyLesson\n \n \n \n Async\n getRoomBoard\n \n \n \n Async\n patchElementVisibility\n \n \n \n Async\n patchOrderingOfElements\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n copyCourse\n \n \n \n \n \n \n \n copyCourse(currentUser: ICurrentUser, urlParams: RoomUrlParams)\n \n \n\n \n \n Decorators : \n \n @Post(':roomId/copy')@RequestTimeout(undefined.INCOMING_REQUEST_TIMEOUT_COPY_API)\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n RoomUrlParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(currentUser: ICurrentUser, urlParams: LessonUrlParams, params: LessonCopyApiParams)\n \n \n\n \n \n Decorators : \n \n @Post('lessons/:lessonId/copy')@RequestTimeout(undefined.INCOMING_REQUEST_TIMEOUT_COPY_API)\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n LessonUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n LessonCopyApiParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getRoomBoard\n \n \n \n \n \n \n \n getRoomBoard(urlParams: RoomUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get(':roomId/board')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n RoomUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchElementVisibility\n \n \n \n \n \n \n \n patchElementVisibility(urlParams: RoomElementUrlParams, params: PatchVisibilityParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':roomId/elements/:elementId/visibility')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n RoomElementUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n PatchVisibilityParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchOrderingOfElements\n \n \n \n \n \n \n \n patchOrderingOfElements(urlParams: RoomUrlParams, params: PatchOrderParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':roomId/board/order')\n \n \n\n \n \n Defined in apps/server/src/modules/learnroom/controller/rooms.controller.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n RoomUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n PatchOrderParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Patch, Post } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { RequestTimeout } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CopyApiResponse, CopyMapper } from '@src/modules/copy-helper';\nimport { serverConfig } from '@src/modules/server/server.config';\nimport { RoomBoardResponseMapper } from '../mapper/room-board-response.mapper';\nimport { CourseCopyUC } from '../uc/course-copy.uc';\nimport { LessonCopyUC } from '../uc/lesson-copy.uc';\nimport { RoomsUc } from '../uc/rooms.uc';\nimport {\n\tLessonCopyApiParams,\n\tLessonUrlParams,\n\tPatchOrderParams,\n\tPatchVisibilityParams,\n\tRoomElementUrlParams,\n\tRoomUrlParams,\n\tSingleColumnBoardResponse,\n} from './dto';\n\n@ApiTags('Rooms')\n@Authenticate('jwt')\n@Controller('rooms')\nexport class RoomsController {\n\tconstructor(\n\t\tprivate readonly roomsUc: RoomsUc,\n\t\tprivate readonly mapper: RoomBoardResponseMapper,\n\t\tprivate readonly courseCopyUc: CourseCopyUC,\n\t\tprivate readonly lessonCopyUc: LessonCopyUC\n\t) {}\n\n\t@Get(':roomId/board')\n\tasync getRoomBoard(\n\t\t@Param() urlParams: RoomUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst board = await this.roomsUc.getBoard(urlParams.roomId, currentUser.userId);\n\t\tconst mapped = this.mapper.mapToResponse(board);\n\t\treturn mapped;\n\t}\n\n\t@Patch(':roomId/elements/:elementId/visibility')\n\tasync patchElementVisibility(\n\t\t@Param() urlParams: RoomElementUrlParams,\n\t\t@Body() params: PatchVisibilityParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.roomsUc.updateVisibilityOfBoardElement(\n\t\t\turlParams.roomId,\n\t\t\turlParams.elementId,\n\t\t\tcurrentUser.userId,\n\t\t\tparams.visibility\n\t\t);\n\t}\n\n\t@Patch(':roomId/board/order')\n\tasync patchOrderingOfElements(\n\t\t@Param() urlParams: RoomUrlParams,\n\t\t@Body() params: PatchOrderParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tawait this.roomsUc.reorderBoardElements(urlParams.roomId, currentUser.userId, params.elements);\n\t}\n\n\t@Post(':roomId/copy')\n\t@RequestTimeout(serverConfig().INCOMING_REQUEST_TIMEOUT_COPY_API)\n\tasync copyCourse(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: RoomUrlParams\n\t): Promise {\n\t\tconst copyStatus = await this.courseCopyUc.copyCourse(currentUser.userId, urlParams.roomId);\n\t\tconst dto = CopyMapper.mapToResponse(copyStatus);\n\t\treturn dto;\n\t}\n\n\t@Post('lessons/:lessonId/copy')\n\t@RequestTimeout(serverConfig().INCOMING_REQUEST_TIMEOUT_COPY_API)\n\tasync copyLesson(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: LessonUrlParams,\n\t\t@Body() params: LessonCopyApiParams\n\t): Promise {\n\t\tconst copyStatus = await this.lessonCopyUc.copyLesson(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.lessonId,\n\t\t\tCopyMapper.mapLessonCopyToDomain(params, currentUser.userId)\n\t\t);\n\t\tconst dto = CopyMapper.mapToResponse(copyStatus);\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomsService.html":{"url":"injectables/RoomsService.html","title":"injectable - RoomsService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomsService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/service/rooms.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n handleColumnBoardIntegration\n \n \n Async\n updateBoard\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(taskService: TaskService, lessonRepo: LessonRepo, boardRepo: BoardRepo, columnBoardService: ColumnBoardService, columnBoardTargetService: ColumnBoardTargetService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/service/rooms.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskService\n \n \n TaskService\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n boardRepo\n \n \n BoardRepo\n \n \n \n No\n \n \n \n \n columnBoardService\n \n \n ColumnBoardService\n \n \n \n No\n \n \n \n \n columnBoardTargetService\n \n \n ColumnBoardTargetService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n handleColumnBoardIntegration\n \n \n \n \n \n \n \n handleColumnBoardIntegration(roomId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/rooms.service.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateBoard\n \n \n \n \n \n \n \n updateBoard(board: Board, roomId: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/service/rooms.service.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n board\n \n Board\n \n\n \n No\n \n\n\n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable } from '@nestjs/common';\nimport { Board, BoardExternalReferenceType, ColumnBoardTarget, EntityId } from '@shared/domain';\nimport { BoardRepo, LessonRepo } from '@shared/repo';\nimport { ColumnBoardService } from '@src/modules/board';\nimport { TaskService } from '@src/modules/task/service';\nimport { ColumnBoardTargetService } from './column-board-target.service';\n\n@Injectable()\nexport class RoomsService {\n\tconstructor(\n\t\tprivate readonly taskService: TaskService,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly boardRepo: BoardRepo,\n\t\tprivate readonly columnBoardService: ColumnBoardService,\n\t\tprivate readonly columnBoardTargetService: ColumnBoardTargetService\n\t) {}\n\n\tasync updateBoard(board: Board, roomId: EntityId, userId: EntityId): Promise {\n\t\tconst [courseLessons] = await this.lessonRepo.findAllByCourseIds([roomId]);\n\t\tconst [courseTasks] = await this.taskService.findBySingleParent(userId, roomId);\n\n\t\tconst courseColumnBoardTargets = await this.handleColumnBoardIntegration(roomId);\n\n\t\tconst boardElementTargets = [...courseLessons, ...courseTasks, ...courseColumnBoardTargets];\n\n\t\tboard.syncBoardElementReferences(boardElementTargets);\n\n\t\tawait this.boardRepo.save(board);\n\t\treturn board;\n\t}\n\n\tprivate async handleColumnBoardIntegration(roomId: EntityId): Promise {\n\t\tlet courseColumnBoardTargets: ColumnBoardTarget[] = [];\n\n\t\tif ((Configuration.get('FEATURE_COLUMN_BOARD_ENABLED') as boolean) === true) {\n\t\t\tconst courseReference = {\n\t\t\t\ttype: BoardExternalReferenceType.Course,\n\t\t\t\tid: roomId,\n\t\t\t};\n\n\t\t\tconst columnBoardIds = await this.columnBoardService.findIdsByExternalReference(courseReference);\n\t\t\tif (columnBoardIds.length === 0) {\n\t\t\t\tconst columnBoard = await this.columnBoardService.createWelcomeColumnBoard(courseReference);\n\t\t\t\tcolumnBoardIds.push(columnBoard.id);\n\t\t\t}\n\n\t\t\tcourseColumnBoardTargets = await this.columnBoardTargetService.findOrCreateTargets(columnBoardIds);\n\t\t}\n\t\treturn courseColumnBoardTargets;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RoomsUc.html":{"url":"injectables/RoomsUc.html","title":"injectable - RoomsUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RoomsUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/uc/rooms.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getBoard\n \n \n Async\n reorderBoardElements\n \n \n Async\n updateVisibilityOfBoardElement\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRepo: CourseRepo, userRepo: UserRepo, boardRepo: BoardRepo, factory: RoomBoardDTOFactory, authorisationService: RoomsAuthorisationService, roomsService: RoomsService)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.uc.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n boardRepo\n \n \n BoardRepo\n \n \n \n No\n \n \n \n \n factory\n \n \n RoomBoardDTOFactory\n \n \n \n No\n \n \n \n \n authorisationService\n \n \n RoomsAuthorisationService\n \n \n \n No\n \n \n \n \n roomsService\n \n \n RoomsService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getBoard\n \n \n \n \n \n \n \n getBoard(roomId: EntityId, userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.uc.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n reorderBoardElements\n \n \n \n \n \n \n \n reorderBoardElements(roomId: EntityId, userId: EntityId, orderedList: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.uc.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n orderedList\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateVisibilityOfBoardElement\n \n \n \n \n \n \n \n updateVisibilityOfBoardElement(roomId: EntityId, elementId: EntityId, userId: EntityId, visibility: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/learnroom/uc/rooms.uc.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roomId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n elementId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n visibility\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { BoardRepo, CourseRepo, UserRepo } from '@shared/repo';\nimport { RoomsService } from '../service/rooms.service';\nimport { RoomBoardDTO } from '../types';\nimport { RoomBoardDTOFactory } from './room-board-dto.factory';\nimport { RoomsAuthorisationService } from './rooms.authorisation.service';\n\n@Injectable()\nexport class RoomsUc {\n\tconstructor(\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly boardRepo: BoardRepo,\n\t\tprivate readonly factory: RoomBoardDTOFactory,\n\t\tprivate readonly authorisationService: RoomsAuthorisationService,\n\t\tprivate readonly roomsService: RoomsService\n\t) {}\n\n\tasync getBoard(roomId: EntityId, userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\t\tconst course = await this.courseRepo.findOne(roomId, userId);\n\t\tconst board = await this.boardRepo.findByCourseId(roomId);\n\n\t\tawait this.roomsService.updateBoard(board, roomId, userId);\n\n\t\tconst roomBoardDTO = this.factory.createDTO({ room: course, board, user });\n\t\treturn roomBoardDTO;\n\t}\n\n\tasync updateVisibilityOfBoardElement(\n\t\troomId: EntityId,\n\t\telementId: EntityId,\n\t\tuserId: EntityId,\n\t\tvisibility: boolean\n\t): Promise {\n\t\tconst user = await this.userRepo.findById(userId);\n\t\tconst course = await this.courseRepo.findOne(roomId, userId);\n\t\tif (!this.authorisationService.hasCourseWritePermission(user, course)) {\n\t\t\tthrow new ForbiddenException('you are not allowed to edit this');\n\t\t}\n\t\tconst board = await this.boardRepo.findByCourseId(course.id);\n\t\tconst element = board.getByTargetId(elementId);\n\t\tif (visibility) {\n\t\t\telement.publish();\n\t\t} else {\n\t\t\telement.unpublish();\n\t\t}\n\t\tawait this.boardRepo.save(board);\n\t}\n\n\tasync reorderBoardElements(roomId: EntityId, userId: EntityId, orderedList: EntityId[]): Promise {\n\t\tconst user = await this.userRepo.findById(userId);\n\t\tconst course = await this.courseRepo.findOne(roomId, userId);\n\t\tif (!this.authorisationService.hasCourseWritePermission(user, course)) {\n\t\t\tthrow new ForbiddenException('you are not allowed to edit this');\n\t\t}\n\t\tconst board = await this.boardRepo.findByCourseId(course.id);\n\t\tboard.reorderElements(orderedList);\n\t\tawait this.boardRepo.save(board);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/RpcMessage.html":{"url":"interfaces/RpcMessage.html","title":"interface - RpcMessage","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n RpcMessage\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/rabbitmq/rpc-message.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n error\n \n \n \n \n message\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n error\n \n \n \n \n \n \n \n \n error: IError\n\n \n \n\n\n \n \n Type : IError\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n message\n \n \n \n \n \n \n \n \n message: T\n\n \n \n\n\n \n \n Type : T\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface IError extends Error {\n\tstatus?: number;\n\tmessage: never;\n}\nexport interface RpcMessage {\n\tmessage: T;\n\terror?: IError;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/Rule.html":{"url":"interfaces/Rule.html","title":"interface - Rule","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n Rule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/types/rule.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n hasPermission\n \n \n \n \n isApplicable\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n hasPermission\n \n \n \n \n \n \nhasPermission(user: User, object: T, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/types/rule.interface.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n T\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isApplicable\n \n \n \n \n \n \nisApplicable(user: User, object: T, context?: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/types/rule.interface.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n T\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BaseDO, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object'; // fix import when it is avaible\nimport { AuthorizationContext } from './authorization-context.interface';\n\nexport interface Rule {\n\tisApplicable(user: User, object: T, context?: AuthorizationContext): boolean;\n\thasPermission(user: User, object: T, context: AuthorizationContext): boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/RuleManager.html":{"url":"injectables/RuleManager.html","title":"injectable - RuleManager","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n RuleManager\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authorization/rule-manager.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n rules\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n matchSingleRule\n \n \n Public\n selectRule\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRule: CourseRule, courseGroupRule: CourseGroupRule, lessonRule: LessonRule, legaySchoolRule: LegacySchoolRule, taskRule: TaskRule, userRule: UserRule, teamRule: TeamRule, submissionRule: SubmissionRule, schoolExternalToolRule: SchoolExternalToolRule, boardDoRule: BoardDoRule, contextExternalToolRule: ContextExternalToolRule, userLoginMigrationRule: UserLoginMigrationRule)\n \n \n \n \n Defined in apps/server/src/modules/authorization/rule-manager.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRule\n \n \n CourseRule\n \n \n \n No\n \n \n \n \n courseGroupRule\n \n \n CourseGroupRule\n \n \n \n No\n \n \n \n \n lessonRule\n \n \n LessonRule\n \n \n \n No\n \n \n \n \n legaySchoolRule\n \n \n LegacySchoolRule\n \n \n \n No\n \n \n \n \n taskRule\n \n \n TaskRule\n \n \n \n No\n \n \n \n \n userRule\n \n \n UserRule\n \n \n \n No\n \n \n \n \n teamRule\n \n \n TeamRule\n \n \n \n No\n \n \n \n \n submissionRule\n \n \n SubmissionRule\n \n \n \n No\n \n \n \n \n schoolExternalToolRule\n \n \n SchoolExternalToolRule\n \n \n \n No\n \n \n \n \n boardDoRule\n \n \n BoardDoRule\n \n \n \n No\n \n \n \n \n contextExternalToolRule\n \n \n ContextExternalToolRule\n \n \n \n No\n \n \n \n \n userLoginMigrationRule\n \n \n UserLoginMigrationRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n matchSingleRule\n \n \n \n \n \n \n \n matchSingleRule(rules: Rule[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/rule-manager.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n rules\n \n Rule[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n selectRule\n \n \n \n \n \n \n \n selectRule(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/authorization/rule-manager.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n object\n \n AuthorizableObject | BaseDO\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Rule\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n rules\n \n \n \n \n \n \n Type : Rule[]\n\n \n \n \n \n Defined in apps/server/src/modules/authorization/rule-manager.ts:22\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException, NotImplementedException } from '@nestjs/common';\nimport { BaseDO, User } from '@shared/domain';\nimport { AuthorizableObject } from '@shared/domain/domain-object'; // fix import when it is avaible\nimport {\n\tBoardDoRule,\n\tCourseGroupRule,\n\tCourseRule,\n\tLessonRule,\n\tSchoolExternalToolRule,\n\tLegacySchoolRule,\n\tSubmissionRule,\n\tTaskRule,\n\tTeamRule,\n\tUserRule,\n} from '@shared/domain/rules';\nimport { ContextExternalToolRule } from '@shared/domain/rules/context-external-tool.rule';\nimport { UserLoginMigrationRule } from '@shared/domain/rules/user-login-migration.rule';\nimport { AuthorizationContext, Rule } from './types';\n\n@Injectable()\nexport class RuleManager {\n\tprivate readonly rules: Rule[];\n\n\tconstructor(\n\t\tprivate readonly courseRule: CourseRule,\n\t\tprivate readonly courseGroupRule: CourseGroupRule,\n\t\tprivate readonly lessonRule: LessonRule,\n\t\tprivate readonly legaySchoolRule: LegacySchoolRule,\n\t\tprivate readonly taskRule: TaskRule,\n\t\tprivate readonly userRule: UserRule,\n\t\tprivate readonly teamRule: TeamRule,\n\t\tprivate readonly submissionRule: SubmissionRule,\n\t\tprivate readonly schoolExternalToolRule: SchoolExternalToolRule,\n\t\tprivate readonly boardDoRule: BoardDoRule,\n\t\tprivate readonly contextExternalToolRule: ContextExternalToolRule,\n\t\tprivate readonly userLoginMigrationRule: UserLoginMigrationRule\n\t) {\n\t\tthis.rules = [\n\t\t\tthis.courseRule,\n\t\t\tthis.courseGroupRule,\n\t\t\tthis.lessonRule,\n\t\t\tthis.taskRule,\n\t\t\tthis.teamRule,\n\t\t\tthis.userRule,\n\t\t\tthis.legaySchoolRule,\n\t\t\tthis.submissionRule,\n\t\t\tthis.schoolExternalToolRule,\n\t\t\tthis.boardDoRule,\n\t\t\tthis.contextExternalToolRule,\n\t\t\tthis.userLoginMigrationRule,\n\t\t];\n\t}\n\n\tpublic selectRule(user: User, object: AuthorizableObject | BaseDO, context: AuthorizationContext): Rule {\n\t\tconst selectedRules = this.rules.filter((rule) => rule.isApplicable(user, object, context));\n\t\tconst rule = this.matchSingleRule(selectedRules);\n\n\t\treturn rule;\n\t}\n\n\tprivate matchSingleRule(rules: Rule[]) {\n\t\tif (rules.length === 0) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\tif (rules.length > 1) {\n\t\t\tthrow new InternalServerErrorException('MULTIPLE_MATCHES_ARE_NOT_ALLOWED');\n\t\t}\n\t\treturn rules[0];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/S3ClientAdapter.html":{"url":"injectables/S3ClientAdapter.html","title":"injectable - S3ClientAdapter","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n S3ClientAdapter\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/s3-client.adapter.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n deletedFolderName\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkStreamResponsive\n \n \n Public\n Async\n copy\n \n \n Public\n Async\n create\n \n \n Public\n Async\n createBucket\n \n \n Public\n Async\n delete\n \n \n Public\n Async\n deleteDirectory\n \n \n Public\n Async\n get\n \n \n Public\n Async\n moveToTrash\n \n \n Public\n Async\n restore\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(client: S3Client, config: S3Config, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n client\n \n \n S3Client\n \n \n \n No\n \n \n \n \n config\n \n \n S3Config\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkStreamResponsive\n \n \n \n \n \n \n \n checkStreamResponsive(stream: Readable, context: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:226\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n stream\n \n Readable\n \n\n \n No\n \n\n\n \n \n context\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n copy\n \n \n \n \n \n \n \n copy(paths: CopyFiles[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:155\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n CopyFiles[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n create\n \n \n \n \n \n \n \n create(path: string, file: File)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n file\n \n File\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n createBucket\n \n \n \n \n \n \n \n createBucket()\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:32\n \n \n\n\n \n \n\n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n delete\n \n \n \n \n \n \n \n delete(paths: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:179\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n deleteDirectory\n \n \n \n \n \n \n \n deleteDirectory(path: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:199\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n get\n \n \n \n \n \n \n \n get(path: string, bytesRange?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n path\n \n string\n \n\n \n No\n \n\n\n \n \n bytesRange\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n moveToTrash\n \n \n \n \n \n \n \n moveToTrash(paths: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n restore\n \n \n \n \n \n \n \n restore(paths: string[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:134\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n paths\n \n string[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n deletedFolderName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'trash'\n \n \n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.adapter.ts:21\n \n \n\n\n \n \n\n\n \n\n\n \n import {\n\tCopyObjectCommand,\n\tCopyObjectCommandOutput,\n\tCreateBucketCommand,\n\tDeleteObjectsCommand,\n\tGetObjectCommand,\n\tListObjectsCommand,\n\tS3Client,\n\tServiceOutputTypes,\n} from '@aws-sdk/client-s3';\nimport { Upload } from '@aws-sdk/lib-storage';\nimport { Inject, Injectable, InternalServerErrorException, NotFoundException } from '@nestjs/common';\nimport { ErrorUtils } from '@src/core/error/utils';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Readable } from 'stream';\nimport { S3_CLIENT, S3_CONFIG } from './constants';\nimport { CopyFiles, File, GetFile, S3Config } from './interface';\n\n@Injectable()\nexport class S3ClientAdapter {\n\tprivate deletedFolderName = 'trash';\n\n\tconstructor(\n\t\t@Inject(S3_CLIENT) readonly client: S3Client,\n\t\t@Inject(S3_CONFIG) readonly config: S3Config,\n\t\tprivate logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(S3ClientAdapter.name);\n\t}\n\n\t// is public but only used internally\n\tpublic async createBucket() {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'create bucket', params: { bucket: this.config.bucket } });\n\n\t\t\tconst req = new CreateBucketCommand({ Bucket: this.config.bucket });\n\t\t\tawait this.client.send(req);\n\t\t} catch (err) {\n\t\t\tif (err instanceof Error) {\n\t\t\t\tthis.logger.error(`${err.message} \"${this.config.bucket}\"`);\n\t\t\t}\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'S3ClientAdapter:createBucket',\n\t\t\t\tErrorUtils.createHttpExceptionOptions(err)\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic async get(path: string, bytesRange?: string): Promise {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'get', params: { path, bucket: this.config.bucket } });\n\n\t\t\tconst req = new GetObjectCommand({\n\t\t\t\tBucket: this.config.bucket,\n\t\t\t\tKey: path,\n\t\t\t\tRange: bytesRange,\n\t\t\t});\n\n\t\t\tconst data = await this.client.send(req);\n\t\t\tconst stream = data.Body as Readable;\n\n\t\t\tthis.checkStreamResponsive(stream, path);\n\n\t\t\treturn {\n\t\t\t\tdata: stream,\n\t\t\t\tcontentType: data.ContentType,\n\t\t\t\tcontentLength: data.ContentLength,\n\t\t\t\tcontentRange: data.ContentRange,\n\t\t\t\tetag: data.ETag,\n\t\t\t};\n\t\t} catch (err) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (err?.Code === 'NoSuchKey') {\n\t\t\t\tthis.logger.log(`could not find one of the files for deletion with id ${path}`);\n\t\t\t\tthrow new NotFoundException('NoSuchKey');\n\t\t\t} else {\n\t\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:get', ErrorUtils.createHttpExceptionOptions(err));\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async create(path: string, file: File): Promise {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'create', params: { path, bucket: this.config.bucket } });\n\n\t\t\tconst req = {\n\t\t\t\tBody: file.data,\n\t\t\t\tBucket: this.config.bucket,\n\t\t\t\tKey: path,\n\t\t\t\tContentType: file.mimeType,\n\t\t\t};\n\t\t\tconst upload = new Upload({\n\t\t\t\tclient: this.client,\n\t\t\t\tparams: req,\n\t\t\t});\n\n\t\t\tconst commandOutput = await upload.done();\n\t\t\treturn commandOutput;\n\t\t} catch (err) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (err?.Code === 'NoSuchBucket') {\n\t\t\t\tawait this.createBucket();\n\n\t\t\t\treturn await this.create(path, file);\n\t\t\t}\n\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:create', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async moveToTrash(paths: string[]): Promise {\n\t\ttry {\n\t\t\tconst copyPaths = paths.map((path) => {\n\t\t\t\treturn { sourcePath: path, targetPath: `${this.deletedFolderName}/${path}` };\n\t\t\t});\n\n\t\t\tconst result = await this.copy(copyPaths);\n\n\t\t\t// try catch with rollback is not needed,\n\t\t\t// because the second copyRequest try override existing files in trash folder\n\t\t\tawait this.delete(paths);\n\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (err?.cause?.name === 'NoSuchKey') {\n\t\t\t\tthis.logger.log(`could not find one of the files for deletion with ids ${paths.join(',')}`);\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:delete', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async restore(paths: string[]): Promise {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'restore', params: { paths, bucket: this.config.bucket } });\n\n\t\t\tconst copyPaths = paths.map((path) => {\n\t\t\t\treturn { sourcePath: `${this.deletedFolderName}/${path}`, targetPath: path };\n\t\t\t});\n\n\t\t\tconst result = await this.copy(copyPaths);\n\n\t\t\t// try catch with rollback is not needed,\n\t\t\t// because the second copyRequest try override existing files in trash folder\n\t\t\tconst deleteObjects = copyPaths.map((p) => p.sourcePath);\n\t\t\tawait this.delete(deleteObjects);\n\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:restore', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async copy(paths: CopyFiles[]) {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'copy', params: { paths, bucket: this.config.bucket } });\n\n\t\t\tconst copyRequests = paths.map(async (path) => {\n\t\t\t\tconst req = new CopyObjectCommand({\n\t\t\t\t\tBucket: this.config.bucket,\n\t\t\t\t\tCopySource: `${this.config.bucket}/${path.sourcePath}`,\n\t\t\t\t\tKey: `${path.targetPath}`,\n\t\t\t\t});\n\n\t\t\t\tconst data = await this.client.send(req);\n\n\t\t\t\treturn data;\n\t\t\t});\n\n\t\t\tconst result = await Promise.all(copyRequests);\n\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:copy', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async delete(paths: string[]) {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'delete', params: { paths, bucket: this.config.bucket } });\n\n\t\t\tconst pathObjects = paths.map((p) => {\n\t\t\t\treturn { Key: p };\n\t\t\t});\n\t\t\tconst req = new DeleteObjectsCommand({\n\t\t\t\tBucket: this.config.bucket,\n\t\t\t\tDelete: { Objects: pathObjects },\n\t\t\t});\n\n\t\t\tconst result = await this.client.send(req);\n\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException('S3ClientAdapter:delete', ErrorUtils.createHttpExceptionOptions(err));\n\t\t}\n\t}\n\n\tpublic async deleteDirectory(path: string) {\n\t\ttry {\n\t\t\tthis.logger.log({ action: 'deleteDirectory', params: { path, bucket: this.config.bucket } });\n\n\t\t\tconst req = new ListObjectsCommand({\n\t\t\t\tBucket: this.config.bucket,\n\t\t\t\tPrefix: path,\n\t\t\t});\n\n\t\t\tconst data = await this.client.send(req);\n\n\t\t\tif (data.Contents?.length && data.Contents?.length > 0) {\n\t\t\t\tconst pathObjects = data.Contents.map((p) => p.Key);\n\n\t\t\t\tconst filteredPathObjects = pathObjects.filter((p): p is string => !!p);\n\n\t\t\t\tawait this.delete(filteredPathObjects);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'S3ClientAdapter:deleteDirectory',\n\t\t\t\tErrorUtils.createHttpExceptionOptions(err)\n\t\t\t);\n\t\t}\n\t}\n\n\t/* istanbul ignore next */\n\tprivate checkStreamResponsive(stream: Readable, context: string) {\n\t\tlet timer: NodeJS.Timeout;\n\t\tconst refreshTimeout = () => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\tif (timer) clearTimeout(timer);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tthis.logger.log(`Stream unresponsive: S3 object key ${context}`);\n\t\t\t\tstream.destroy();\n\t\t\t}, 60 * 1000);\n\t\t};\n\n\t\tstream.on('data', () => {\n\t\t\trefreshTimeout();\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/S3ClientModule.html":{"url":"modules/S3ClientModule.html","title":"module - S3ClientModule","body":"\n \n\n\n\n\n Modules\n S3ClientModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/shared/infra/s3-client/s3-client.module.ts\n \n\n\n\n\n\n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n register\n \n \n \n \n \n \n \n register(configs: S3Config[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/s3-client/s3-client.module.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n configs\n \n S3Config[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { S3Client } from '@aws-sdk/client-s3';\nimport { DynamicModule, Module } from '@nestjs/common';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { S3Config } from './interface';\nimport { S3ClientAdapter } from './s3-client.adapter';\n\nconst createS3ClientAdapter = (config: S3Config, legacyLogger: LegacyLogger) => {\n\tconst { region, accessKeyId, secretAccessKey, endpoint } = config;\n\n\tconst s3Client = new S3Client({\n\t\tregion,\n\t\tcredentials: {\n\t\t\taccessKeyId,\n\t\t\tsecretAccessKey,\n\t\t},\n\t\tendpoint,\n\t\tforcePathStyle: true,\n\t\ttls: true,\n\t});\n\treturn new S3ClientAdapter(s3Client, config, legacyLogger);\n};\n\n@Module({})\nexport class S3ClientModule {\n\tstatic register(configs: S3Config[]): DynamicModule {\n\t\tconst providers = configs.flatMap((config) => [\n\t\t\t{\n\t\t\t\tprovide: config.connectionName,\n\t\t\t\tuseFactory: (logger: LegacyLogger) => createS3ClientAdapter(config, logger),\n\t\t\t\tinject: [LegacyLogger],\n\t\t\t},\n\t\t]);\n\n\t\treturn {\n\t\t\tmodule: S3ClientModule,\n\t\t\timports: [LoggerModule],\n\t\t\tproviders,\n\t\t\texports: providers,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/S3Config.html":{"url":"interfaces/S3Config.html","title":"interface - S3Config","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n S3Config\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/fwu-learning-contents/interface/config.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessKeyId\n \n \n \n \n bucket\n \n \n \n \n endpoint\n \n \n \n \n region\n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accessKeyId\n \n \n \n \n \n \n \n \n accessKeyId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n bucket\n \n \n \n \n \n \n \n \n bucket: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n endpoint\n \n \n \n \n \n \n \n \n endpoint: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n region\n \n \n \n \n \n \n \n \n region: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n secretAccessKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface S3Config {\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/S3Config-1.html":{"url":"interfaces/S3Config-1.html","title":"interface - S3Config-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n S3Config\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/s3-client/interface/index.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessKeyId\n \n \n \n \n bucket\n \n \n \n \n connectionName\n \n \n \n \n endpoint\n \n \n \n \n region\n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n accessKeyId\n \n \n \n \n \n \n \n \n accessKeyId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n bucket\n \n \n \n \n \n \n \n \n bucket: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n connectionName\n \n \n \n \n \n \n \n \n connectionName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n endpoint\n \n \n \n \n \n \n \n \n endpoint: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n region\n \n \n \n \n \n \n \n \n region: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n \n \n secretAccessKey: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Readable } from 'stream';\n\nexport interface S3Config {\n\tconnectionName: string;\n\tendpoint: string;\n\tregion: string;\n\tbucket: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n}\n\nexport interface GetFile {\n\tdata: Readable;\n\tetag?: string;\n\tcontentType?: string;\n\tcontentLength?: number;\n\tcontentRange?: string;\n}\n\nexport interface CopyFiles {\n\tsourcePath: string;\n\ttargetPath: string;\n}\n\nexport interface File {\n\tdata: Readable;\n\tname: string;\n\tmimeType: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SSOLoginQuery.html":{"url":"classes/SSOLoginQuery.html","title":"class - SSOLoginQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SSOLoginQuery\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/sso-login.query.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n migration\n \n \n \n \n \n Optional\n postLoginRedirect\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n migration\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/sso-login.query.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n postLoginRedirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/sso-login.query.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean, IsOptional, IsString } from 'class-validator';\n\nexport class SSOLoginQuery {\n\t@IsOptional()\n\t@IsString()\n\t@ApiProperty()\n\tpostLoginRedirect?: string;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@ApiProperty()\n\tmigration?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisGruppeResponse.html":{"url":"interfaces/SanisGruppeResponse.html","title":"interface - SanisGruppeResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisGruppeResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-gruppe-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n bezeichnung\n \n \n \n \n id\n \n \n \n \n laufzeit\n \n \n \n \n orgid\n \n \n \n \n typ\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bezeichnung\n \n \n \n \n \n \n \n \n bezeichnung: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n laufzeit\n \n \n \n \n \n \n \n \n laufzeit: SanisLaufzeitResponse\n\n \n \n\n\n \n \n Type : SanisLaufzeitResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n orgid\n \n \n \n \n \n \n \n \n orgid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n typ\n \n \n \n \n \n \n \n \n typ: SanisGroupType\n\n \n \n\n\n \n \n Type : SanisGroupType\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisGroupType } from './sanis-group-type';\nimport { SanisLaufzeitResponse } from './sanis-laufzeit-response';\n\nexport interface SanisGruppeResponse {\n\tid: string;\n\n\tbezeichnung: string;\n\n\ttyp: SanisGroupType;\n\n\torgid: string;\n\n\tlaufzeit: SanisLaufzeitResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisGruppenResponse.html":{"url":"interfaces/SanisGruppenResponse.html","title":"interface - SanisGruppenResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisGruppenResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-gruppen-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n gruppe\n \n \n \n \n gruppenzugehoerigkeit\n \n \n \n Optional\n \n sonstige_gruppenzugehoerige\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n gruppe\n \n \n \n \n \n \n \n \n gruppe: SanisGruppeResponse\n\n \n \n\n\n \n \n Type : SanisGruppeResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n gruppenzugehoerigkeit\n \n \n \n \n \n \n \n \n gruppenzugehoerigkeit: SanisGruppenzugehoerigkeitResponse\n\n \n \n\n\n \n \n Type : SanisGruppenzugehoerigkeitResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n sonstige_gruppenzugehoerige\n \n \n \n \n \n \n \n \n sonstige_gruppenzugehoerige: SanisSonstigeGruppenzugehoerigeResponse[]\n\n \n \n\n\n \n \n Type : SanisSonstigeGruppenzugehoerigeResponse[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n import { SanisGruppeResponse } from './sanis-gruppe-response';\nimport { SanisGruppenzugehoerigkeitResponse } from './sanis-gruppenzugehoerigkeit-response';\nimport { SanisSonstigeGruppenzugehoerigeResponse } from './sanis-sonstige-gruppenzugehoerige-response';\n\nexport interface SanisGruppenResponse {\n\tgruppe: SanisGruppeResponse;\n\n\tgruppenzugehoerigkeit: SanisGruppenzugehoerigkeitResponse;\n\n\tsonstige_gruppenzugehoerige?: SanisSonstigeGruppenzugehoerigeResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisGruppenzugehoerigkeitResponse.html":{"url":"interfaces/SanisGruppenzugehoerigkeitResponse.html","title":"interface - SanisGruppenzugehoerigkeitResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisGruppenzugehoerigkeitResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-gruppenzugehoerigkeit-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n rollen\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n rollen\n \n \n \n \n \n \n \n \n rollen: SanisGroupRole[]\n\n \n \n\n\n \n \n Type : SanisGroupRole[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisGroupRole } from './sanis-group-role';\n\nexport interface SanisGruppenzugehoerigkeitResponse {\n\trollen: SanisGroupRole[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisLaufzeitResponse.html":{"url":"interfaces/SanisLaufzeitResponse.html","title":"interface - SanisLaufzeitResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisLaufzeitResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-laufzeit-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n bis\n \n \n \n \n von\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n bis\n \n \n \n \n \n \n \n \n bis: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n von\n \n \n \n \n \n \n \n \n von: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface SanisLaufzeitResponse {\n\tvon: Date;\n\n\tbis: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisNameResponse.html":{"url":"interfaces/SanisNameResponse.html","title":"interface - SanisNameResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisNameResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-name-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n familienname\n \n \n \n \n vorname\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n familienname\n \n \n \n \n \n \n \n \n familienname: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n vorname\n \n \n \n \n \n \n \n \n vorname: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface SanisNameResponse {\n\tfamilienname: string;\n\n\tvorname: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisOrganisationResponse.html":{"url":"interfaces/SanisOrganisationResponse.html","title":"interface - SanisOrganisationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisOrganisationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-organisation-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n kennung\n \n \n \n \n name\n \n \n \n \n typ\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n kennung\n \n \n \n \n \n \n \n \n kennung: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n typ\n \n \n \n \n \n \n \n \n typ: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface SanisOrganisationResponse {\n\tid: string;\n\n\tkennung: string;\n\n\tname: string;\n\n\ttyp: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisPersonResponse.html":{"url":"interfaces/SanisPersonResponse.html","title":"interface - SanisPersonResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisPersonResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-person-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n geschlecht\n \n \n \n \n lokalisierung\n \n \n \n \n name\n \n \n \n \n vertrauensstufe\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n geschlecht\n \n \n \n \n \n \n \n \n geschlecht: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n lokalisierung\n \n \n \n \n \n \n \n \n lokalisierung: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: SanisNameResponse\n\n \n \n\n\n \n \n Type : SanisNameResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n vertrauensstufe\n \n \n \n \n \n \n \n \n vertrauensstufe: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisNameResponse } from './sanis-name-response';\n\nexport interface SanisPersonResponse {\n\tname: SanisNameResponse;\n\n\tgeschlecht: string;\n\n\tlokalisierung: string;\n\n\tvertrauensstufe: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisPersonenkontextResponse.html":{"url":"interfaces/SanisPersonenkontextResponse.html","title":"interface - SanisPersonenkontextResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisPersonenkontextResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-personenkontext-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n gruppen\n \n \n \n \n id\n \n \n \n \n organisation\n \n \n \n \n personenstatus\n \n \n \n \n rolle\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n gruppen\n \n \n \n \n \n \n \n \n gruppen: SanisGruppenResponse[]\n\n \n \n\n\n \n \n Type : SanisGruppenResponse[]\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n organisation\n \n \n \n \n \n \n \n \n organisation: SanisOrganisationResponse\n\n \n \n\n\n \n \n Type : SanisOrganisationResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n personenstatus\n \n \n \n \n \n \n \n \n personenstatus: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n rolle\n \n \n \n \n \n \n \n \n rolle: SanisRole\n\n \n \n\n\n \n \n Type : SanisRole\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisRole } from './sanis-role';\nimport { SanisGruppenResponse } from './sanis-gruppen-response';\nimport { SanisOrganisationResponse } from './sanis-organisation-response';\n\nexport interface SanisPersonenkontextResponse {\n\tid: string;\n\n\trolle: SanisRole;\n\n\torganisation: SanisOrganisationResponse;\n\n\tpersonenstatus: string;\n\n\tgruppen?: SanisGruppenResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SanisProvisioningStrategy.html":{"url":"injectables/SanisProvisioningStrategy.html","title":"injectable - SanisProvisioningStrategy","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SanisProvisioningStrategy\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts\n \n\n\n\n \n Extends\n \n \n OidcProvisioningStrategy\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n addTeacherRoleIfAdmin\n \n \n \n Async\n getData\n \n \n getType\n \n \n \n Async\n apply\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(responseMapper: SanisResponseMapper, httpService: HttpService, oidcProvisioningService: OidcProvisioningService)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n responseMapper\n \n \n SanisResponseMapper\n \n \n \n No\n \n \n \n \n httpService\n \n \n HttpService\n \n \n \n No\n \n \n \n \n oidcProvisioningService\n \n \n OidcProvisioningService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n addTeacherRoleIfAdmin\n \n \n \n \n \n \n \n addTeacherRoleIfAdmin(externalUser: ExternalUserDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis.strategy.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUser\n \n ExternalUserDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getData\n \n \n \n \n \n \n \n getData(input: OauthDataStrategyInputDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:34\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n OauthDataStrategyInputDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getType\n \n \n \n \n \n \ngetType()\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:30\n\n \n \n\n\n \n \n\n \n Returns : SystemProvisioningStrategy\n\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n apply\n \n \n \n \n \n \n \n apply(data: OauthDataDto)\n \n \n\n\n \n \n Inherited from ProvisioningStrategy\n\n \n \n \n \n Defined in ProvisioningStrategy:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n OauthDataDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { HttpService } from '@nestjs/axios';\nimport { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { firstValueFrom } from 'rxjs';\nimport { RoleName } from '@shared/domain';\nimport {\n\tExternalSchoolDto,\n\tExternalUserDto,\n\tOauthDataDto,\n\tOauthDataStrategyInputDto,\n\tExternalGroupDto,\n} from '../../dto';\nimport { OidcProvisioningStrategy } from '../oidc/oidc.strategy';\nimport { OidcProvisioningService } from '../oidc/service/oidc-provisioning.service';\nimport { SanisResponseMapper } from './sanis-response.mapper';\nimport { SanisResponse } from './response';\n\n@Injectable()\nexport class SanisProvisioningStrategy extends OidcProvisioningStrategy {\n\tconstructor(\n\t\tprivate readonly responseMapper: SanisResponseMapper,\n\t\tprivate readonly httpService: HttpService,\n\t\tprotected readonly oidcProvisioningService: OidcProvisioningService\n\t) {\n\t\tsuper(oidcProvisioningService);\n\t}\n\n\tgetType(): SystemProvisioningStrategy {\n\t\treturn SystemProvisioningStrategy.SANIS;\n\t}\n\n\toverride async getData(input: OauthDataStrategyInputDto): Promise {\n\t\tif (!input.system.provisioningUrl) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t`Sanis system with id: ${input.system.systemId} is missing a provisioning url`\n\t\t\t);\n\t\t}\n\n\t\tconst axiosConfig: AxiosRequestConfig = {\n\t\t\theaders: { Authorization: `Bearer ${input.accessToken}` },\n\t\t};\n\n\t\tconst axiosResponse: AxiosResponse = await firstValueFrom(\n\t\t\tthis.httpService.get(input.system.provisioningUrl, axiosConfig)\n\t\t);\n\n\t\tconst externalUser: ExternalUserDto = this.responseMapper.mapToExternalUserDto(axiosResponse.data);\n\t\tthis.addTeacherRoleIfAdmin(externalUser);\n\n\t\tconst externalSchool: ExternalSchoolDto = this.responseMapper.mapToExternalSchoolDto(axiosResponse.data);\n\n\t\tlet externalGroups: ExternalGroupDto[] | undefined;\n\t\tif (Configuration.get('FEATURE_SANIS_GROUP_PROVISIONING_ENABLED')) {\n\t\t\texternalGroups = this.responseMapper.mapToExternalGroupDtos(axiosResponse.data);\n\t\t}\n\n\t\tconst oauthData: OauthDataDto = new OauthDataDto({\n\t\t\tsystem: input.system,\n\t\t\texternalSchool,\n\t\t\texternalUser,\n\t\t\texternalGroups,\n\t\t});\n\n\t\treturn oauthData;\n\t}\n\n\tprivate addTeacherRoleIfAdmin(externalUser: ExternalUserDto): void {\n\t\tif (externalUser.roles && externalUser.roles.includes(RoleName.ADMINISTRATOR)) {\n\t\t\texternalUser.roles.push(RoleName.TEACHER);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisResponse.html":{"url":"interfaces/SanisResponse.html","title":"interface - SanisResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis.response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n person\n \n \n \n \n personenkontexte\n \n \n \n \n pid\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n person\n \n \n \n \n \n \n \n \n person: SanisPersonResponse\n\n \n \n\n\n \n \n Type : SanisPersonResponse\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n personenkontexte\n \n \n \n \n \n \n \n \n personenkontexte: SanisPersonenkontextResponse[]\n\n \n \n\n\n \n \n Type : SanisPersonenkontextResponse[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n pid\n \n \n \n \n \n \n \n \n pid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisPersonResponse } from './sanis-person-response';\nimport { SanisPersonenkontextResponse } from './sanis-personenkontext-response';\n\nexport interface SanisResponse {\n\tpid: string;\n\n\tperson: SanisPersonResponse;\n\n\tpersonenkontexte: SanisPersonenkontextResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SanisResponseMapper.html":{"url":"injectables/SanisResponseMapper.html","title":"injectable - SanisResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SanisResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n SCHOOLNUMBER_PREFIX_REGEX\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n mapSanisRoleToRoleName\n \n \n mapToExternalGroupDtos\n \n \n Private\n mapToExternalGroupUser\n \n \n mapToExternalSchoolDto\n \n \n mapToExternalUserDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:34\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n mapSanisRoleToRoleName\n \n \n \n \n \n \n \n mapSanisRoleToRoleName(source: SanisResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n source\n \n SanisResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : RoleName\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToExternalGroupDtos\n \n \n \n \n \n \nmapToExternalGroupDtos(source: SanisResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n source\n \n SanisResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : [] | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n mapToExternalGroupUser\n \n \n \n \n \n \n \n mapToExternalGroupUser(relation: SanisSonstigeGruppenzugehoerigeResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n relation\n \n SanisSonstigeGruppenzugehoerigeResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalGroupUserDto | null\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToExternalSchoolDto\n \n \n \n \n \n \nmapToExternalSchoolDto(source: SanisResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n source\n \n SanisResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalSchoolDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToExternalUserDto\n \n \n \n \n \n \nmapToExternalUserDto(source: SanisResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:53\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n source\n \n SanisResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ExternalUserDto\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n SCHOOLNUMBER_PREFIX_REGEX\n \n \n \n \n \n \n Default value : /^NI_/\n \n \n \n \n Defined in apps/server/src/modules/provisioning/strategy/sanis/sanis-response.mapper.ts:34\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { RoleName } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { GroupTypes } from '@src/modules/group';\nimport { ExternalGroupDto, ExternalGroupUserDto, ExternalSchoolDto, ExternalUserDto } from '../../dto';\nimport { GroupRoleUnknownLoggable } from '../../loggable';\nimport {\n\tSanisGroupRole,\n\tSanisGroupType,\n\tSanisGruppenResponse,\n\tSanisResponse,\n\tSanisRole,\n\tSanisSonstigeGruppenzugehoerigeResponse,\n} from './response';\n\nconst RoleMapping: Record = {\n\t[SanisRole.LEHR]: RoleName.TEACHER,\n\t[SanisRole.LERN]: RoleName.STUDENT,\n\t[SanisRole.LEIT]: RoleName.ADMINISTRATOR,\n\t[SanisRole.ORGADMIN]: RoleName.ADMINISTRATOR,\n};\n\nconst GroupRoleMapping: Partial> = {\n\t[SanisGroupRole.TEACHER]: RoleName.TEACHER,\n\t[SanisGroupRole.STUDENT]: RoleName.STUDENT,\n};\n\nconst GroupTypeMapping: Partial> = {\n\t[SanisGroupType.CLASS]: GroupTypes.CLASS,\n};\n\n@Injectable()\nexport class SanisResponseMapper {\n\tSCHOOLNUMBER_PREFIX_REGEX = /^NI_/;\n\n\tconstructor(private readonly logger: Logger) {}\n\n\tmapToExternalSchoolDto(source: SanisResponse): ExternalSchoolDto {\n\t\tconst officialSchoolNumber: string = source.personenkontexte[0].organisation.kennung.replace(\n\t\t\tthis.SCHOOLNUMBER_PREFIX_REGEX,\n\t\t\t''\n\t\t);\n\n\t\tconst mapped = new ExternalSchoolDto({\n\t\t\tname: source.personenkontexte[0].organisation.name,\n\t\t\texternalId: source.personenkontexte[0].organisation.id.toString(),\n\t\t\tofficialSchoolNumber,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tmapToExternalUserDto(source: SanisResponse): ExternalUserDto {\n\t\tconst mapped = new ExternalUserDto({\n\t\t\tfirstName: source.person.name.vorname,\n\t\t\tlastName: source.person.name.familienname,\n\t\t\troles: [this.mapSanisRoleToRoleName(source)],\n\t\t\texternalId: source.pid,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tprivate mapSanisRoleToRoleName(source: SanisResponse): RoleName {\n\t\treturn RoleMapping[source.personenkontexte[0].rolle];\n\t}\n\n\tmapToExternalGroupDtos(source: SanisResponse): ExternalGroupDto[] | undefined {\n\t\tconst groups: SanisGruppenResponse[] | undefined = source.personenkontexte[0].gruppen;\n\n\t\tif (!groups) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst mapped: ExternalGroupDto[] = groups\n\t\t\t.map((group): ExternalGroupDto | null => {\n\t\t\t\tconst groupType: GroupTypes | undefined = GroupTypeMapping[group.gruppe.typ];\n\n\t\t\t\tif (!groupType) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst sanisGroupUsers: SanisSonstigeGruppenzugehoerigeResponse[] = [\n\t\t\t\t\t...(group.sonstige_gruppenzugehoerige ?? []),\n\t\t\t\t\t{\n\t\t\t\t\t\tktid: source.personenkontexte[0].id,\n\t\t\t\t\t\trollen: group.gruppenzugehoerigkeit.rollen,\n\t\t\t\t\t},\n\t\t\t\t].sort((a, b) => a.ktid.localeCompare(b.ktid));\n\n\t\t\t\tconst gruppenzugehoerigkeiten: ExternalGroupUserDto[] = sanisGroupUsers\n\t\t\t\t\t.map((relation): ExternalGroupUserDto | null => this.mapToExternalGroupUser(relation))\n\t\t\t\t\t.filter((user): user is ExternalGroupUserDto => user !== null);\n\n\t\t\t\treturn {\n\t\t\t\t\tname: group.gruppe.bezeichnung,\n\t\t\t\t\ttype: groupType,\n\t\t\t\t\texternalOrganizationId: group.gruppe.orgid,\n\t\t\t\t\tfrom: group.gruppe.laufzeit?.von,\n\t\t\t\t\tuntil: group.gruppe.laufzeit?.bis,\n\t\t\t\t\texternalId: group.gruppe.id,\n\t\t\t\t\tusers: gruppenzugehoerigkeiten,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((group): group is ExternalGroupDto => group !== null);\n\n\t\treturn mapped;\n\t}\n\n\tprivate mapToExternalGroupUser(relation: SanisSonstigeGruppenzugehoerigeResponse): ExternalGroupUserDto | null {\n\t\tconst userRole = GroupRoleMapping[relation.rollen[0]];\n\n\t\tif (!userRole) {\n\t\t\tthis.logger.info(new GroupRoleUnknownLoggable(relation));\n\t\t\treturn null;\n\t\t}\n\n\t\tconst mapped = new ExternalGroupUserDto({\n\t\t\troleName: userRole,\n\t\t\texternalUserId: relation.ktid,\n\t\t});\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html":{"url":"interfaces/SanisSonstigeGruppenzugehoerigeResponse.html","title":"interface - SanisSonstigeGruppenzugehoerigeResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SanisSonstigeGruppenzugehoerigeResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/strategy/sanis/response/sanis-sonstige-gruppenzugehoerige-response.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n ktid\n \n \n \n \n rollen\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n ktid\n \n \n \n \n \n \n \n \n ktid: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n rollen\n \n \n \n \n \n \n \n \n rollen: SanisGroupRole[]\n\n \n \n\n\n \n \n Type : SanisGroupRole[]\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { SanisGroupRole } from './sanis-group-role';\n\nexport interface SanisSonstigeGruppenzugehoerigeResponse {\n\tktid: string;\n\trollen: SanisGroupRole[];\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ScanResultDto.html":{"url":"classes/ScanResultDto.html","title":"class - ScanResultDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ScanResultDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/scan-result.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n reason\n \n \n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ScanResultDto)\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/scan-result.dto.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ScanResultDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n reason\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/scan-result.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ScanStatus\n\n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/scan-result.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ScanStatus } from '../../entity';\n\nexport class ScanResultDto {\n\tstatus: ScanStatus;\n\n\treason: string;\n\n\tconstructor(props: ScanResultDto) {\n\t\tthis.status = props.status;\n\t\tthis.reason = props.reason;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ScanResultParams.html":{"url":"classes/ScanResultParams.html","title":"class - ScanResultParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ScanResultParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n Optional\n virus_detected\n \n \n \n \n Optional\n virus_signature\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n virus_detected\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n virus_signature\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@Allow()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:61\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SchoolEntity.html":{"url":"entities/SchoolEntity.html","title":"entity - SchoolEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/school.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n Optional\n features\n \n \n \n federalState\n \n \n \n Optional\n inMaintenanceSince\n \n \n \n Optional\n inUserMigration\n \n \n \n name\n \n \n \n Optional\n officialSchoolNumber\n \n \n \n Optional\n permissions\n \n \n \n Optional\n previousExternalId\n \n \n \n Optional\n schoolYear\n \n \n \n systems\n \n \n \n Optional\n userLoginMigration\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'ldapSchoolIdentifier'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:75\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n features\n \n \n \n \n \n \n Type : SchoolFeatures[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:66\n \n \n\n\n \n \n \n \n \n \n \n \n \n federalState\n \n \n \n \n \n \n Type : FederalState\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'federalState', nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:103\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n inMaintenanceSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n inUserMigration\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:81\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n officialSchoolNumber\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:84\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n permissions\n \n \n \n \n \n \n Type : SchoolRoles\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {object: true, nullable: true, prefix: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:90\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n previousExternalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:78\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n schoolYear\n \n \n \n \n \n \n Type : SchoolYear\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('SchoolYear', {fieldName: 'currentYear', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:93\n \n \n\n\n \n \n \n \n \n \n \n \n \n systems\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('System', undefined, {fieldName: 'systems'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:87\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n userLoginMigration\n \n \n \n \n \n \n Type : UserLoginMigration\n\n \n \n \n \n Decorators : \n \n \n @OneToOne(undefined, userLoginMigration => userLoginMigration.school, {orphanRemoval: true, nullable: true, fieldName: 'userLoginMigrationId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:100\n \n \n\n\n \n \n\n \n\n\n \n import {\n\tCollection,\n\tEmbeddable,\n\tEmbedded,\n\tEntity,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToOne,\n\tProperty,\n} from '@mikro-orm/core';\nimport { UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYear } from './schoolyear.entity';\nimport { System } from './system.entity';\nimport { FederalState } from './federal-state.entity';\n\nexport enum SchoolFeatures {\n\tROCKET_CHAT = 'rocketChat',\n\tVIDEOCONFERENCE = 'videoconference',\n\tNEXTCLOUD = 'nextcloud',\n\tSTUDENTVISIBILITY = 'studentVisibility', // deprecated\n\tLDAP_UNIVENTION_MIGRATION = 'ldapUniventionMigrationSchool',\n\tOAUTH_PROVISIONING_ENABLED = 'oauthProvisioningEnabled',\n\tSHOW_OUTDATED_USERS = 'showOutdatedUsers',\n\tENABLE_LDAP_SYNC_DURING_MIGRATION = 'enableLdapSyncDuringMigration',\n}\n\nexport interface ISchoolProperties {\n\t_id?: string;\n\texternalId?: string;\n\tinMaintenanceSince?: Date;\n\tinUserMigration?: boolean;\n\tpreviousExternalId?: string;\n\tname: string;\n\tofficialSchoolNumber?: string;\n\tsystems?: System[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYear;\n\tuserLoginMigration?: UserLoginMigration;\n\tfederalState: FederalState;\n}\n\n@Embeddable()\nexport class SchoolRolePermission {\n\t@Property({ nullable: true })\n\tSTUDENT_LIST?: boolean;\n\n\t@Property({ nullable: true })\n\tLERNSTORE_VIEW?: boolean;\n}\n\n@Embeddable()\nexport class SchoolRoles {\n\t@Property({ nullable: true, fieldName: 'student' })\n\tstudent?: SchoolRolePermission;\n\n\t@Property({ nullable: true, fieldName: 'teacher' })\n\tteacher?: SchoolRolePermission;\n}\n\n@Entity({ tableName: 'schools' })\n@Index({ properties: ['externalId', 'systems'] })\nexport class SchoolEntity extends BaseEntity {\n\t@Property({ nullable: true })\n\tfeatures?: SchoolFeatures[];\n\n\t@Property({ nullable: true })\n\tinMaintenanceSince?: Date;\n\n\t@Property({ nullable: true })\n\tinUserMigration?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'ldapSchoolIdentifier' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tofficialSchoolNumber?: string;\n\n\t@ManyToMany('System', undefined, { fieldName: 'systems' })\n\tsystems = new Collection(this);\n\n\t@Embedded(() => SchoolRoles, { object: true, nullable: true, prefix: false })\n\tpermissions?: SchoolRoles;\n\n\t@ManyToOne('SchoolYear', { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYear;\n\n\t@OneToOne(() => UserLoginMigration, (userLoginMigration: UserLoginMigration) => userLoginMigration.school, {\n\t\torphanRemoval: true,\n\t\tnullable: true,\n\t\tfieldName: 'userLoginMigrationId',\n\t})\n\tuserLoginMigration?: UserLoginMigration;\n\n\t@ManyToOne(() => FederalState, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalState;\n\n\tconstructor(props: ISchoolProperties) {\n\t\tsuper();\n\t\tif (props.externalId) {\n\t\t\tthis.externalId = props.externalId;\n\t\t}\n\t\tif (props.previousExternalId) {\n\t\t\tthis.previousExternalId = props.previousExternalId;\n\t\t}\n\t\tthis.inMaintenanceSince = props.inMaintenanceSince;\n\t\tif (props.inUserMigration !== null) {\n\t\t\tthis.inUserMigration = props.inUserMigration;\n\t\t}\n\t\tthis.name = props.name;\n\t\tif (props.officialSchoolNumber) {\n\t\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t\t}\n\t\tif (props.systems) {\n\t\t\tthis.systems.set(props.systems);\n\t\t}\n\t\tif (props.features) {\n\t\t\tthis.features = props.features;\n\t\t}\n\t\tif (props.schoolYear) {\n\t\t\tthis.schoolYear = props.schoolYear;\n\t\t}\n\t\tif (props.userLoginMigration) {\n\t\t\tthis.userLoginMigration = props.userLoginMigration;\n\t\t}\n\t\tthis.federalState = props.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalTool.html":{"url":"classes/SchoolExternalTool.html","title":"class - SchoolExternalTool","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalTool\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n \n Implements\n \n \n ToolVersion\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n name\n \n \n parameters\n \n \n schoolId\n \n \n Optional\n status\n \n \n toolId\n \n \n toolVersion\n \n \n Optional\n id\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getVersion\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: SchoolExternalToolProps)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:33\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n SchoolExternalToolProps\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntry[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n status\n \n \n \n \n \n \n Type : ToolConfigurationStatus\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \ngetVersion()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts:45\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\nimport { ToolVersion } from '../../common/interface';\n\nexport interface SchoolExternalToolProps {\n\tid?: string;\n\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n}\n\nexport class SchoolExternalTool extends BaseDO implements ToolVersion {\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n\n\tconstructor(props: SchoolExternalToolProps) {\n\t\tsuper(props.id);\n\t\tthis.name = props.name;\n\t\tthis.toolId = props.toolId;\n\t\tthis.schoolId = props.schoolId;\n\t\tthis.parameters = props.parameters;\n\t\tthis.toolVersion = props.toolVersion;\n\t\tthis.status = props.status;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolConfigurationTemplateListResponse.html":{"url":"classes/SchoolExternalToolConfigurationTemplateListResponse.html","title":"class - SchoolExternalToolConfigurationTemplateListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolConfigurationTemplateListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: SchoolExternalToolConfigurationTemplateResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n SchoolExternalToolConfigurationTemplateResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : SchoolExternalToolConfigurationTemplateResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { SchoolExternalToolConfigurationTemplateResponse } from './school-external-tool-configuration-template.response';\n\nexport class SchoolExternalToolConfigurationTemplateListResponse {\n\t@ApiProperty({ type: [SchoolExternalToolConfigurationTemplateResponse] })\n\tdata: SchoolExternalToolConfigurationTemplateResponse[];\n\n\tconstructor(data: SchoolExternalToolConfigurationTemplateResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolConfigurationTemplateResponse.html":{"url":"classes/SchoolExternalToolConfigurationTemplateResponse.html","title":"class - SchoolExternalToolConfigurationTemplateResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolConfigurationTemplateResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n externalToolId\n \n \n \n Optional\n logoUrl\n \n \n \n name\n \n \n \n parameters\n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(configuration: SchoolExternalToolConfigurationTemplateResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n configuration\n \n \n SchoolExternalToolConfigurationTemplateResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n externalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/school-external-tool-configuration-template.response.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { CustomParameterResponse } from './custom-parameter.response';\n\nexport class SchoolExternalToolConfigurationTemplateResponse {\n\t@ApiProperty()\n\texternalToolId: EntityId;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\t@ApiProperty({ type: [CustomParameterResponse] })\n\tparameters: CustomParameterResponse[];\n\n\t@ApiProperty()\n\tversion: number;\n\n\tconstructor(configuration: SchoolExternalToolConfigurationTemplateResponse) {\n\t\tthis.externalToolId = configuration.externalToolId;\n\t\tthis.name = configuration.name;\n\t\tthis.logoUrl = configuration.logoUrl;\n\t\tthis.parameters = configuration.parameters;\n\t\tthis.version = configuration.version;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SchoolExternalToolEntity.html":{"url":"entities/SchoolExternalToolEntity.html","title":"entity - SchoolExternalToolEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolExternalToolEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n school\n \n \n \n schoolParameters\n \n \n \n tool\n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {eager: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolParameters\n \n \n \n \n \n \n Type : CustomParameterEntryEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n tool\n \n \n \n \n \n \n Type : ExternalToolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/entity/school-external-tool.entity.ts:26\n \n \n\n\n \n \n\n \n\n\n \n import { Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { CustomParameterEntryEntity } from '../../common/entity';\nimport { ExternalToolEntity } from '../../external-tool/entity';\n\nexport interface ISchoolExternalToolProperties {\n\ttool: ExternalToolEntity;\n\tschool: SchoolEntity;\n\tschoolParameters?: CustomParameterEntryEntity[];\n\ttoolVersion: number;\n}\n\n@Entity({ tableName: 'school_external_tools' })\nexport class SchoolExternalToolEntity extends BaseEntityWithTimestamps {\n\t@ManyToOne()\n\ttool: ExternalToolEntity;\n\n\t@ManyToOne(() => SchoolEntity, { eager: true })\n\tschool: SchoolEntity;\n\n\t@Embedded(() => CustomParameterEntryEntity, { array: true })\n\tschoolParameters: CustomParameterEntryEntity[];\n\n\t@Property()\n\ttoolVersion: number;\n\n\tconstructor(props: ISchoolExternalToolProperties) {\n\t\tsuper();\n\t\tthis.tool = props.tool;\n\t\tthis.school = props.school;\n\t\tthis.schoolParameters = props.schoolParameters ?? [];\n\t\tthis.toolVersion = props.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolFactory.html":{"url":"classes/SchoolExternalToolFactory.html","title":"class - SchoolExternalToolFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/domainobject/tool/school-external-tool.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withSchoolId\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withSchoolId\n \n \n \n \n \n \nwithSchoolId(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/domainobject/tool/school-external-tool.factory.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { CustomParameterEntry, ToolConfigurationStatus } from '@src/modules/tool/common/domain';\nimport { SchoolExternalTool, SchoolExternalToolProps } from '@src/modules/tool/school-external-tool/domain';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from '../do-base.factory';\n\nclass SchoolExternalToolFactory extends DoBaseFactory {\n\twithSchoolId(schoolId: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tschoolId,\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const schoolExternalToolFactory = SchoolExternalToolFactory.define(SchoolExternalTool, ({ sequence }) => {\n\treturn {\n\t\tname: `schoolExternal-${sequence}`,\n\t\tschoolId: `schoolId-${sequence}`,\n\t\ttoolVersion: 1,\n\t\tparameters: [\n\t\t\tnew CustomParameterEntry({\n\t\t\t\tname: 'name',\n\t\t\t\tvalue: 'value',\n\t\t\t}),\n\t\t],\n\t\ttoolId: 'toolId',\n\t\tstatus: ToolConfigurationStatus.LATEST,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolIdParams.html":{"url":"classes/SchoolExternalToolIdParams.html","title":"class - SchoolExternalToolIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-id.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class SchoolExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty({ nullable: false, required: true })\n\tschoolExternalToolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolIdParams-1.html":{"url":"classes/SchoolExternalToolIdParams-1.html","title":"class - SchoolExternalToolIdParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/school-external-tool-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolExternalToolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/school-external-tool-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class SchoolExternalToolIdParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tschoolExternalToolId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SchoolExternalToolModule.html":{"url":"modules/SchoolExternalToolModule.html","title":"module - SchoolExternalToolModule","body":"\n \n\n\n\n\n Modules\n SchoolExternalToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SchoolExternalToolModule\n\n\n\ncluster_SchoolExternalToolModule_exports\n\n\n\ncluster_SchoolExternalToolModule_imports\n\n\n\ncluster_SchoolExternalToolModule_providers\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule -->\n\nCommonToolModule->SchoolExternalToolModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nSchoolExternalToolModule -->\n\nExternalToolModule->SchoolExternalToolModule\n\n\n\n\n\nSchoolExternalToolService \n\nSchoolExternalToolService \n\nSchoolExternalToolService -->\n\nSchoolExternalToolModule->SchoolExternalToolService \n\n\n\n\n\nSchoolExternalToolValidationService \n\nSchoolExternalToolValidationService \n\nSchoolExternalToolValidationService -->\n\nSchoolExternalToolModule->SchoolExternalToolValidationService \n\n\n\n\n\nSchoolExternalToolService\n\nSchoolExternalToolService\n\nSchoolExternalToolModule -->\n\nSchoolExternalToolService->SchoolExternalToolModule\n\n\n\n\n\nSchoolExternalToolValidationService\n\nSchoolExternalToolValidationService\n\nSchoolExternalToolModule -->\n\nSchoolExternalToolValidationService->SchoolExternalToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/school-external-tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n SchoolExternalToolService\n \n \n SchoolExternalToolValidationService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n ExternalToolModule\n \n \n \n \n Exports\n \n \n SchoolExternalToolService\n \n \n SchoolExternalToolValidationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CommonToolModule } from '../common';\nimport { SchoolExternalToolService, SchoolExternalToolValidationService } from './service';\nimport { ExternalToolModule } from '../external-tool';\n\n@Module({\n\timports: [CommonToolModule, ExternalToolModule],\n\tproviders: [SchoolExternalToolService, SchoolExternalToolValidationService],\n\texports: [SchoolExternalToolService, SchoolExternalToolValidationService],\n})\nexport class SchoolExternalToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolPostParams.html":{"url":"classes/SchoolExternalToolPostParams.html","title":"class - SchoolExternalToolPostParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolPostParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n schoolId\n \n \n \n \n \n toolId\n \n \n \n \n version\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryParam[]\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested({each: true})@IsArray()@IsOptional()@ApiPropertyOptional({type: undefined})@Type(undefined)\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n version\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsNumber()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-post.params.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsMongoId, IsNumber, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { CustomParameterEntryParam } from './custom-parameter-entry.params';\n\nexport class SchoolExternalToolPostParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsMongoId()\n\ttoolId!: string;\n\n\t@ApiProperty()\n\t@IsString()\n\t@IsMongoId()\n\tschoolId!: string;\n\n\t@ValidateNested({ each: true })\n\t@IsArray()\n\t@IsOptional()\n\t@ApiPropertyOptional({ type: [CustomParameterEntryParam] })\n\t@Type(() => CustomParameterEntryParam)\n\tparameters?: CustomParameterEntryParam[];\n\n\t@ApiProperty()\n\t@IsNumber()\n\tversion!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SchoolExternalToolProps.html":{"url":"interfaces/SchoolExternalToolProps.html","title":"interface - SchoolExternalToolProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SchoolExternalToolProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/domain/school-external-tool.do.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n id\n \n \n \n Optional\n \n name\n \n \n \n \n parameters\n \n \n \n \n schoolId\n \n \n \n Optional\n \n status\n \n \n \n \n toolId\n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n id\n \n \n \n \n \n \n \n \n id: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n \n \n name: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n \n \n parameters: CustomParameterEntry[]\n\n \n \n\n\n \n \n Type : CustomParameterEntry[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n \n \n schoolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n \n \n status: ToolConfigurationStatus\n\n \n \n\n\n \n \n Type : ToolConfigurationStatus\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n \n \n toolId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n \n \n toolVersion: number\n\n \n \n\n\n \n \n Type : number\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BaseDO } from '@shared/domain/domainobject/base.do';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\nimport { ToolVersion } from '../../common/interface';\n\nexport interface SchoolExternalToolProps {\n\tid?: string;\n\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n}\n\nexport class SchoolExternalTool extends BaseDO implements ToolVersion {\n\tname?: string;\n\n\ttoolId: string;\n\n\tschoolId: string;\n\n\tparameters: CustomParameterEntry[];\n\n\ttoolVersion: number;\n\n\tstatus?: ToolConfigurationStatus;\n\n\tconstructor(props: SchoolExternalToolProps) {\n\t\tsuper(props.id);\n\t\tthis.name = props.name;\n\t\tthis.toolId = props.toolId;\n\t\tthis.schoolId = props.schoolId;\n\t\tthis.parameters = props.parameters;\n\t\tthis.toolVersion = props.toolVersion;\n\t\tthis.status = props.status;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.toolVersion;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolRefDO.html":{"url":"classes/SchoolExternalToolRefDO.html","title":"class - SchoolExternalToolRefDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolRefDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n schoolId\n \n \n schoolToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: SchoolExternalToolRefDO)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n SchoolExternalToolRefDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n schoolToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/domain/school-external-tool-ref.do.ts:2\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class SchoolExternalToolRefDO {\n\tschoolToolId: string;\n\n\tschoolId?: string;\n\n\tconstructor(props: SchoolExternalToolRefDO) {\n\t\tthis.schoolToolId = props.schoolToolId;\n\t\tthis.schoolId = props.schoolId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolRepo.html":{"url":"injectables/SchoolExternalToolRepo.html","title":"injectable - SchoolExternalToolRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n buildScope\n \n \n Async\n deleteByExternalToolId\n \n \n entityFactory\n \n \n Async\n find\n \n \n Async\n findByExternalToolId\n \n \n Async\n findBySchoolId\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n buildScope\n \n \n \n \n \n \n \n buildScope(query: SchoolExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n SchoolExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteByExternalToolId\n \n \n \n \n \n \n \n deleteByExternalToolId(toolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: ISchoolExternalToolProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:28\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n ISchoolExternalToolProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolEntity\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(query: SchoolExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:55\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n SchoolExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalToolId\n \n \n \n \n \n \n \n findByExternalToolId(toolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolId\n \n \n \n \n \n \n \n findBySchoolId(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: SchoolExternalTool)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ISchoolExternalToolProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: SchoolExternalToolEntity)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:74\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n SchoolExternalToolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalTool\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.repo.ts:24\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { SchoolEntity } from '@shared/domain';\nimport { BaseDORepo } from '@shared/repo/base.do.repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { SchoolExternalToolQuery } from '@src/modules/tool/school-external-tool/uc/dto/school-external-tool.types';\nimport { ISchoolExternalToolProperties, SchoolExternalToolEntity } from '@src/modules/tool/school-external-tool/entity';\nimport { SchoolExternalTool } from '@src/modules/tool/school-external-tool/domain';\nimport { ExternalToolEntity } from '@src/modules/tool/external-tool/entity';\nimport { SchoolExternalToolScope } from './school-external-tool.scope';\nimport { ExternalToolRepoMapper } from '../externaltool';\n\n@Injectable()\nexport class SchoolExternalToolRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn SchoolExternalToolEntity;\n\t}\n\n\tentityFactory(props: ISchoolExternalToolProperties): SchoolExternalToolEntity {\n\t\treturn new SchoolExternalToolEntity(props);\n\t}\n\n\tasync findByExternalToolId(toolId: string): Promise {\n\t\tconst entities: SchoolExternalToolEntity[] = await this._em.find(this.entityName, { tool: toolId });\n\t\tconst domainObjects: SchoolExternalTool[] = entities.map((entity: SchoolExternalToolEntity): SchoolExternalTool => {\n\t\t\tconst domainObject: SchoolExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t});\n\t\treturn domainObjects;\n\t}\n\n\tasync findBySchoolId(schoolId: string): Promise {\n\t\tconst entities: SchoolExternalToolEntity[] = await this._em.find(this.entityName, { school: schoolId });\n\t\tconst domainObjects: SchoolExternalTool[] = entities.map((entity: SchoolExternalToolEntity): SchoolExternalTool => {\n\t\t\tconst domainObject: SchoolExternalTool = this.mapEntityToDO(entity);\n\t\t\treturn domainObject;\n\t\t});\n\t\treturn domainObjects;\n\t}\n\n\tasync deleteByExternalToolId(toolId: string): Promise {\n\t\tconst count: Promise = this._em.nativeDelete(this.entityName, { tool: toolId });\n\t\treturn count;\n\t}\n\n\tasync find(query: SchoolExternalToolQuery): Promise {\n\t\tconst scope: SchoolExternalToolScope = this.buildScope(query);\n\n\t\tconst entities: SchoolExternalToolEntity[] = await this._em.find(this.entityName, scope.query);\n\n\t\tconst dos: SchoolExternalTool[] = entities.map((entity: SchoolExternalToolEntity) => this.mapEntityToDO(entity));\n\t\treturn dos;\n\t}\n\n\tprivate buildScope(query: SchoolExternalToolQuery): SchoolExternalToolScope {\n\t\tconst scope: SchoolExternalToolScope = new SchoolExternalToolScope();\n\n\t\tscope.bySchoolId(query.schoolId);\n\t\tscope.byToolId(query.toolId);\n\t\tscope.allowEmptyQuery(true);\n\n\t\treturn scope;\n\t}\n\n\tmapEntityToDO(entity: SchoolExternalToolEntity): SchoolExternalTool {\n\t\treturn new SchoolExternalTool({\n\t\t\tid: entity.id,\n\t\t\ttoolId: entity.tool.id,\n\t\t\tschoolId: entity.school.id,\n\t\t\ttoolVersion: entity.toolVersion,\n\t\t\tparameters: ExternalToolRepoMapper.mapCustomParameterEntryEntitiesToDOs(entity.schoolParameters),\n\t\t});\n\t}\n\n\tmapDOToEntityProperties(entityDO: SchoolExternalTool): ISchoolExternalToolProperties {\n\t\treturn {\n\t\t\tschool: this._em.getReference(SchoolEntity, entityDO.schoolId),\n\t\t\ttool: this._em.getReference(ExternalToolEntity, entityDO.toolId),\n\t\t\ttoolVersion: entityDO.toolVersion,\n\t\t\tschoolParameters: ExternalToolRepoMapper.mapCustomParameterEntryDOsToEntities(entityDO.parameters),\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolRequestMapper.html":{"url":"injectables/SchoolExternalToolRequestMapper.html","title":"injectable - SchoolExternalToolRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-request.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n mapRequestToCustomParameterEntryDO\n \n \n mapSchoolExternalToolRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n mapRequestToCustomParameterEntryDO\n \n \n \n \n \n \n \n mapRequestToCustomParameterEntryDO(customParameterParams: CustomParameterEntryParam[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-request.mapper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n customParameterParams\n \n CustomParameterEntryParam[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntry[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapSchoolExternalToolRequest\n \n \n \n \n \n \nmapSchoolExternalToolRequest(request: SchoolExternalToolPostParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-request.mapper.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n request\n \n SchoolExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolDto\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CustomParameterEntryParam, SchoolExternalToolPostParams } from '../controller/dto';\nimport { SchoolExternalToolDto } from '../uc/dto/school-external-tool.types';\nimport { CustomParameterEntry } from '../../common/domain';\n\n@Injectable()\nexport class SchoolExternalToolRequestMapper {\n\tmapSchoolExternalToolRequest(request: SchoolExternalToolPostParams): SchoolExternalToolDto {\n\t\treturn {\n\t\t\ttoolId: request.toolId,\n\t\t\tschoolId: request.schoolId,\n\t\t\ttoolVersion: request.version,\n\t\t\tparameters: this.mapRequestToCustomParameterEntryDO(request.parameters ?? []),\n\t\t};\n\t}\n\n\tprivate mapRequestToCustomParameterEntryDO(\n\t\tcustomParameterParams: CustomParameterEntryParam[]\n\t): CustomParameterEntry[] {\n\t\treturn customParameterParams.map((customParameterParam: CustomParameterEntryParam) => {\n\t\t\treturn {\n\t\t\t\tname: customParameterParam.name,\n\t\t\t\tvalue: customParameterParam.value,\n\t\t\t};\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolResponse.html":{"url":"classes/SchoolExternalToolResponse.html","title":"class - SchoolExternalToolResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n Optional\n logoUrl\n \n \n \n name\n \n \n \n parameters\n \n \n \n schoolId\n \n \n \n status\n \n \n \n toolId\n \n \n \n toolVersion\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(response: SchoolExternalToolResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:28\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n \n SchoolExternalToolResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n parameters\n \n \n \n \n \n \n Type : CustomParameterEntryResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ToolConfigurationStatusResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ToolConfigurationStatusResponse})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n toolVersion\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool.response.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { CustomParameterEntryResponse } from './custom-parameter-entry.response';\nimport { ToolConfigurationStatusResponse } from '../../../external-tool/controller/dto';\n\nexport class SchoolExternalToolResponse {\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tname: string;\n\n\t@ApiProperty()\n\ttoolId: string;\n\n\t@ApiProperty()\n\tschoolId: string;\n\n\t@ApiProperty({ type: [CustomParameterEntryResponse] })\n\tparameters: CustomParameterEntryResponse[];\n\n\t@ApiProperty()\n\ttoolVersion: number;\n\n\t@ApiProperty({ enum: ToolConfigurationStatusResponse })\n\tstatus: ToolConfigurationStatusResponse;\n\n\t@ApiPropertyOptional()\n\tlogoUrl?: string;\n\n\tconstructor(response: SchoolExternalToolResponse) {\n\t\tthis.id = response.id;\n\t\tthis.name = response.name;\n\t\tthis.toolId = response.toolId;\n\t\tthis.schoolId = response.schoolId;\n\t\tthis.parameters = response.parameters;\n\t\tthis.toolVersion = response.toolVersion;\n\t\tthis.status = response.status;\n\t\tthis.logoUrl = response.logoUrl;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolResponseMapper.html":{"url":"injectables/SchoolExternalToolResponseMapper.html","title":"injectable - SchoolExternalToolResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-response.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n mapToCustomParameterEntryResponse\n \n \n mapToSchoolExternalToolResponse\n \n \n mapToSearchListResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n mapToCustomParameterEntryResponse\n \n \n \n \n \n \n \n mapToCustomParameterEntryResponse(entries: CustomParameterEntry[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-response.mapper.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entries\n \n CustomParameterEntry[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CustomParameterEntryResponse[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToSchoolExternalToolResponse\n \n \n \n \n \n \nmapToSchoolExternalToolResponse(schoolExternalTool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-response.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapToSearchListResponse\n \n \n \n \n \n \nmapToSearchListResponse(externalTools: SchoolExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/mapper/school-external-tool-response.mapper.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolSearchListResponse\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CustomParameterEntry } from '../../common/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\nimport { ToolConfigurationStatusResponse } from '../../external-tool/controller/dto';\nimport {\n\tCustomParameterEntryResponse,\n\tSchoolExternalToolResponse,\n\tSchoolExternalToolSearchListResponse,\n} from '../controller/dto';\nimport { SchoolExternalTool } from '../domain';\n\nexport const statusMapping: Record = {\n\t[ToolConfigurationStatus.LATEST]: ToolConfigurationStatusResponse.LATEST,\n\t[ToolConfigurationStatus.OUTDATED]: ToolConfigurationStatusResponse.OUTDATED,\n\t[ToolConfigurationStatus.UNKNOWN]: ToolConfigurationStatusResponse.UNKNOWN,\n};\n\n@Injectable()\nexport class SchoolExternalToolResponseMapper {\n\tmapToSearchListResponse(externalTools: SchoolExternalTool[]): SchoolExternalToolSearchListResponse {\n\t\tconst responses: SchoolExternalToolResponse[] = externalTools.map((toolDO: SchoolExternalTool) =>\n\t\t\tthis.mapToSchoolExternalToolResponse(toolDO)\n\t\t);\n\t\treturn new SchoolExternalToolSearchListResponse(responses);\n\t}\n\n\tmapToSchoolExternalToolResponse(schoolExternalTool: SchoolExternalTool): SchoolExternalToolResponse {\n\t\treturn {\n\t\t\tid: schoolExternalTool.id ?? '',\n\t\t\tname: schoolExternalTool.name ?? '',\n\t\t\ttoolId: schoolExternalTool.toolId,\n\t\t\tschoolId: schoolExternalTool.schoolId,\n\t\t\tparameters: this.mapToCustomParameterEntryResponse(schoolExternalTool.parameters),\n\t\t\ttoolVersion: schoolExternalTool.toolVersion,\n\t\t\tstatus: schoolExternalTool.status\n\t\t\t\t? statusMapping[schoolExternalTool.status]\n\t\t\t\t: ToolConfigurationStatusResponse.UNKNOWN,\n\t\t};\n\t}\n\n\tprivate mapToCustomParameterEntryResponse(entries: CustomParameterEntry[]): CustomParameterEntryResponse[] {\n\t\treturn entries.map(\n\t\t\t(entry: CustomParameterEntry): CustomParameterEntry =>\n\t\t\t\tnew CustomParameterEntryResponse({\n\t\t\t\t\tname: entry.name,\n\t\t\t\t\tvalue: entry.value,\n\t\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolRule.html":{"url":"injectables/SchoolExternalToolRule.html","title":"injectable - SchoolExternalToolRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/school-external-tool.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/school-external-tool.rule.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: SchoolExternalToolEntity | SchoolExternalTool, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/school-external-tool.rule.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n SchoolExternalToolEntity | SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: SchoolExternalToolEntity | SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/school-external-tool.rule.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n SchoolExternalToolEntity | SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { SchoolExternalTool } from '@src/modules/tool/school-external-tool/domain';\nimport { SchoolExternalToolEntity } from '@src/modules/tool/school-external-tool/entity';\nimport { User } from '../entity';\n\n@Injectable()\nexport class SchoolExternalToolRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: SchoolExternalToolEntity | SchoolExternalTool): boolean {\n\t\tconst isMatched: boolean = entity instanceof SchoolExternalToolEntity || entity instanceof SchoolExternalTool;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(\n\t\tuser: User,\n\t\tentity: SchoolExternalToolEntity | SchoolExternalTool,\n\t\tcontext: AuthorizationContext\n\t): boolean {\n\t\tlet hasPermission: boolean;\n\t\tif (entity instanceof SchoolExternalToolEntity) {\n\t\t\thasPermission =\n\t\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t\tuser.school.id === entity.school.id;\n\t\t} else {\n\t\t\thasPermission =\n\t\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\t\tuser.school.id === entity.schoolId;\n\t\t}\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolScope.html":{"url":"classes/SchoolExternalToolScope.html","title":"class - SchoolExternalToolScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/schoolexternaltool/school-external-tool.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n bySchoolId\n \n \n byToolId\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n bySchoolId\n \n \n \n \n \n \nbySchoolId(schoolId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.scope.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byToolId\n \n \n \n \n \n \nbyToolId(toolId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/schoolexternaltool/school-external-tool.scope.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Scope } from '@shared/repo/scope';\nimport { EntityId } from '@shared/domain';\nimport { SchoolExternalToolEntity } from '@src/modules/tool/school-external-tool/entity';\n\nexport class SchoolExternalToolScope extends Scope {\n\tbySchoolId(schoolId: EntityId | undefined): this {\n\t\tif (schoolId !== undefined) {\n\t\t\tthis.addQuery({ school: schoolId });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbyToolId(toolId: EntityId | undefined): this {\n\t\tif (toolId !== undefined) {\n\t\t\tthis.addQuery({ tool: toolId });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolSearchListResponse.html":{"url":"classes/SchoolExternalToolSearchListResponse.html","title":"class - SchoolExternalToolSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: SchoolExternalToolResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n SchoolExternalToolResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : SchoolExternalToolResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { SchoolExternalToolResponse } from './school-external-tool.response';\n\nexport class SchoolExternalToolSearchListResponse {\n\t@ApiProperty({ type: [SchoolExternalToolResponse] })\n\tdata: SchoolExternalToolResponse[];\n\n\tconstructor(data: SchoolExternalToolResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolExternalToolSearchParams.html":{"url":"classes/SchoolExternalToolSearchParams.html","title":"class - SchoolExternalToolSearchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolExternalToolSearchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsString()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/dto/school-external-tool-search.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId, IsString } from 'class-validator';\n\nexport class SchoolExternalToolSearchParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsMongoId()\n\tschoolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolService.html":{"url":"injectables/SchoolExternalToolService.html","title":"injectable - SchoolExternalToolService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n deleteSchoolExternalToolById\n \n \n Private\n determineStatus\n \n \n Private\n Async\n enrichDataFromExternalTool\n \n \n Private\n Async\n enrichWithDataFromExternalTools\n \n \n Async\n findSchoolExternalTools\n \n \n Async\n getSchoolExternalToolById\n \n \n Async\n saveSchoolExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolExternalToolRepo: SchoolExternalToolRepo, externalToolService: ExternalToolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolRepo\n \n \n SchoolExternalToolRepo\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n deleteSchoolExternalToolById\n \n \n \n \n \n \n \n deleteSchoolExternalToolById(schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n determineStatus\n \n \n \n \n \n \n \n determineStatus(tool: SchoolExternalTool, externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolConfigurationStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n enrichDataFromExternalTool\n \n \n \n \n \n \n \n enrichDataFromExternalTool(tool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n enrichWithDataFromExternalTools\n \n \n \n \n \n \n \n enrichWithDataFromExternalTools(tools: SchoolExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findSchoolExternalTools\n \n \n \n \n \n \n \n findSchoolExternalTools(query: SchoolExternalToolQuery)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n SchoolExternalToolQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolExternalToolById\n \n \n \n \n \n \n \n getSchoolExternalToolById(schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveSchoolExternalTool\n \n \n \n \n \n \n \n saveSchoolExternalTool(schoolExternalTool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolExternalToolRepo } from '@shared/repo';\nimport { EntityId } from '@shared/domain';\nimport { SchoolExternalToolQuery } from '../uc/dto/school-external-tool.types';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../domain';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\n\n@Injectable()\nexport class SchoolExternalToolService {\n\tconstructor(\n\t\tprivate readonly schoolExternalToolRepo: SchoolExternalToolRepo,\n\t\tprivate readonly externalToolService: ExternalToolService\n\t) {}\n\n\tasync getSchoolExternalToolById(schoolExternalToolId: EntityId): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolRepo.findById(schoolExternalToolId);\n\t\treturn schoolExternalTool;\n\t}\n\n\tasync findSchoolExternalTools(query: SchoolExternalToolQuery): Promise {\n\t\tlet schoolExternalTools: SchoolExternalTool[] = await this.schoolExternalToolRepo.find({\n\t\t\tschoolId: query.schoolId,\n\t\t});\n\n\t\tschoolExternalTools = await this.enrichWithDataFromExternalTools(schoolExternalTools);\n\n\t\treturn schoolExternalTools;\n\t}\n\n\tprivate async enrichWithDataFromExternalTools(tools: SchoolExternalTool[]): Promise {\n\t\tconst enrichedTools: SchoolExternalTool[] = await Promise.all(\n\t\t\ttools.map(async (tool: SchoolExternalTool): Promise => this.enrichDataFromExternalTool(tool))\n\t\t);\n\n\t\treturn enrichedTools;\n\t}\n\n\tprivate async enrichDataFromExternalTool(tool: SchoolExternalTool): Promise {\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findExternalToolById(tool.toolId);\n\t\tconst status: ToolConfigurationStatus = this.determineStatus(tool, externalTool);\n\t\tconst schoolExternalTool: SchoolExternalTool = new SchoolExternalTool({\n\t\t\t...tool,\n\t\t\tstatus,\n\t\t\tname: externalTool.name,\n\t\t});\n\n\t\treturn schoolExternalTool;\n\t}\n\n\tprivate determineStatus(tool: SchoolExternalTool, externalTool: ExternalTool): ToolConfigurationStatus {\n\t\tif (externalTool.version {\n\t\tawait this.schoolExternalToolRepo.deleteById(schoolExternalToolId);\n\t}\n\n\tasync saveSchoolExternalTool(schoolExternalTool: SchoolExternalTool): Promise {\n\t\tlet createdSchoolExternalTool: SchoolExternalTool = await this.schoolExternalToolRepo.save(schoolExternalTool);\n\t\tcreatedSchoolExternalTool = await this.enrichDataFromExternalTool(createdSchoolExternalTool);\n\t\treturn createdSchoolExternalTool;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolUc.html":{"url":"injectables/SchoolExternalToolUc.html","title":"injectable - SchoolExternalToolUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createSchoolExternalTool\n \n \n Async\n deleteSchoolExternalTool\n \n \n Private\n Async\n ensureSchoolPermissions\n \n \n Async\n findSchoolExternalTools\n \n \n Async\n getSchoolExternalTool\n \n \n Async\n updateSchoolExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService, schoolExternalToolValidationService: SchoolExternalToolValidationService, toolPermissionHelper: ToolPermissionHelper)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n schoolExternalToolValidationService\n \n \n SchoolExternalToolValidationService\n \n \n \n No\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createSchoolExternalTool\n \n \n \n \n \n \n \n createSchoolExternalTool(userId: EntityId, schoolExternalToolDto: SchoolExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolDto\n \n SchoolExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteSchoolExternalTool\n \n \n \n \n \n \n \n deleteSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n ensureSchoolPermissions\n \n \n \n \n \n \n \n ensureSchoolPermissions(userId: EntityId, tools: SchoolExternalTool[], context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n tools\n \n SchoolExternalTool[]\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findSchoolExternalTools\n \n \n \n \n \n \n \n findSchoolExternalTools(userId: EntityId, query: SchoolExternalToolQueryInput)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n query\n \n SchoolExternalToolQueryInput\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolExternalTool\n \n \n \n \n \n \n \n getSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSchoolExternalTool\n \n \n \n \n \n \n \n updateSchoolExternalTool(userId: EntityId, schoolExternalToolId: string, schoolExternalToolDto: SchoolExternalToolDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/uc/school-external-tool.uc.ts:83\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalToolId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolExternalToolDto\n \n SchoolExternalToolDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { AuthorizationContext, AuthorizationContextBuilder } from '@src/modules/authorization';\nimport { SchoolExternalToolService, SchoolExternalToolValidationService } from '../service';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { SchoolExternalToolDto, SchoolExternalToolQueryInput } from './dto/school-external-tool.types';\nimport { SchoolExternalTool } from '../domain';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class SchoolExternalToolUc {\n\tconstructor(\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly schoolExternalToolValidationService: SchoolExternalToolValidationService,\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper\n\t) {}\n\n\tasync findSchoolExternalTools(userId: EntityId, query: SchoolExternalToolQueryInput): Promise {\n\t\tlet tools: SchoolExternalTool[] = [];\n\t\tif (query.schoolId) {\n\t\t\ttools = await this.schoolExternalToolService.findSchoolExternalTools({ schoolId: query.schoolId });\n\t\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\t\tawait this.ensureSchoolPermissions(userId, tools, context);\n\t\t}\n\t\treturn tools;\n\t}\n\n\tasync createSchoolExternalTool(\n\t\tuserId: EntityId,\n\t\tschoolExternalToolDto: SchoolExternalToolDto\n\t): Promise {\n\t\tconst schoolExternalTool = new SchoolExternalTool({ ...schoolExternalToolDto });\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\t\tawait this.schoolExternalToolValidationService.validate(schoolExternalTool);\n\n\t\tconst createdSchoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.saveSchoolExternalTool(\n\t\t\tschoolExternalTool\n\t\t);\n\n\t\treturn createdSchoolExternalTool;\n\t}\n\n\tprivate async ensureSchoolPermissions(\n\t\tuserId: EntityId,\n\t\ttools: SchoolExternalTool[],\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tawait Promise.all(\n\t\t\ttools.map(async (tool: SchoolExternalTool) =>\n\t\t\t\tthis.toolPermissionHelper.ensureSchoolPermissions(userId, tool, context)\n\t\t\t)\n\t\t);\n\t}\n\n\tasync deleteSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tschoolExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\n\t\tawait Promise.all([\n\t\t\tthis.contextExternalToolService.deleteBySchoolExternalToolId(schoolExternalToolId),\n\t\t\tthis.schoolExternalToolService.deleteSchoolExternalToolById(schoolExternalToolId),\n\t\t]);\n\t}\n\n\tasync getSchoolExternalTool(userId: EntityId, schoolExternalToolId: EntityId): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tschoolExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\t\treturn schoolExternalTool;\n\t}\n\n\tasync updateSchoolExternalTool(\n\t\tuserId: EntityId,\n\t\tschoolExternalToolId: string,\n\t\tschoolExternalToolDto: SchoolExternalToolDto\n\t): Promise {\n\t\tconst schoolExternalTool = new SchoolExternalTool({ ...schoolExternalToolDto });\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.SCHOOL_TOOL_ADMIN]);\n\n\t\tawait this.toolPermissionHelper.ensureSchoolPermissions(userId, schoolExternalTool, context);\n\t\tawait this.schoolExternalToolValidationService.validate(schoolExternalTool);\n\n\t\tconst updated: SchoolExternalTool = new SchoolExternalTool({\n\t\t\t...schoolExternalToolDto,\n\t\t\tid: schoolExternalToolId,\n\t\t});\n\n\t\tconst saved = await this.schoolExternalToolService.saveSchoolExternalTool(updated);\n\t\treturn saved;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolExternalToolValidationService.html":{"url":"injectables/SchoolExternalToolValidationService.html","title":"injectable - SchoolExternalToolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolExternalToolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkVersionMatch\n \n \n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, commonToolValidationService: CommonToolValidationService)\n \n \n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n commonToolValidationService\n \n \n CommonToolValidationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkVersionMatch\n \n \n \n \n \n \n \n checkVersionMatch(schoolExternalToolVersion: number, externalToolVersion: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolVersion\n \n number\n \n\n \n No\n \n\n\n \n \n externalToolVersion\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n validate\n \n \n \n \n \n \n \n validate(schoolExternalTool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/service/school-external-tool-validation.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { CommonToolValidationService } from '../../common/service';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { SchoolExternalTool } from '../domain';\n\n@Injectable()\nexport class SchoolExternalToolValidationService {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly commonToolValidationService: CommonToolValidationService\n\t) {}\n\n\tasync validate(schoolExternalTool: SchoolExternalTool): Promise {\n\t\tthis.commonToolValidationService.checkForDuplicateParameters(schoolExternalTool);\n\n\t\tconst loadedExternalTool: ExternalTool = await this.externalToolService.findExternalToolById(\n\t\t\tschoolExternalTool.toolId\n\t\t);\n\n\t\tthis.checkVersionMatch(schoolExternalTool.toolVersion, loadedExternalTool.version);\n\n\t\tthis.commonToolValidationService.checkCustomParameterEntries(loadedExternalTool, schoolExternalTool);\n\t}\n\n\tprivate checkVersionMatch(schoolExternalToolVersion: number, externalToolVersion: number): void {\n\t\tif (schoolExternalToolVersion !== externalToolVersion) {\n\t\t\tthrow new ValidationError(\n\t\t\t\t`tool_version_mismatch: The version ${schoolExternalToolVersion} of given schoolExternalTool does not match the externalTool version ${externalToolVersion}.`\n\t\t\t);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolForGroupNotFoundLoggable.html":{"url":"classes/SchoolForGroupNotFoundLoggable.html","title":"class - SchoolForGroupNotFoundLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolForGroupNotFoundLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/loggable/school-for-group-not-found.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(group: ExternalGroupDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/loggable/school-for-group-not-found.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n group\n \n \n ExternalGroupDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/loggable/school-for-group-not-found.loggable.ts:7\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { ExternalGroupDto } from '../dto';\n\nexport class SchoolForGroupNotFoundLoggable implements Loggable {\n\tconstructor(private readonly group: ExternalGroupDto) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Unable to provision group, since the connected school cannot be found.',\n\t\t\tdata: {\n\t\t\t\texternalGroupId: this.group.externalId,\n\t\t\t\texternalOrganizationId: this.group.externalOrganizationId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolIdDoesNotMatchWithUserSchoolId.html":{"url":"classes/SchoolIdDoesNotMatchWithUserSchoolId.html","title":"class - SchoolIdDoesNotMatchWithUserSchoolId","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolIdDoesNotMatchWithUserSchoolId\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/school-id-does-not-match-with-user-school-id.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userMatchSchoolId: string, importUserSchoolId: string, schoolId?: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/school-id-does-not-match-with-user-school-id.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userMatchSchoolId\n \n \n string\n \n \n \n No\n \n \n \n \n importUserSchoolId\n \n \n string\n \n \n \n No\n \n \n \n \n schoolId\n \n \n EntityId\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/school-id-does-not-match-with-user-school-id.loggable.ts:11\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { EntityId } from '@shared/domain';\n\nexport class SchoolIdDoesNotMatchWithUserSchoolId implements Loggable {\n\tconstructor(\n\t\tprivate readonly userMatchSchoolId: string,\n\t\tprivate readonly importUserSchoolId: string,\n\t\tprivate readonly schoolId?: EntityId\n\t) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'School ID does not match with user school ID or with imported user school ID',\n\t\t\tdata: {\n\t\t\t\tuserMatchSchoolId: this.userMatchSchoolId,\n\t\t\t\timportUserId: this.importUserSchoolId,\n\t\t\t\tschoolId: this.schoolId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolIdParams.html":{"url":"classes/SchoolIdParams.html","title":"class - SchoolIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/request/school-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/school-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class SchoolIdParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolIdParams-1.html":{"url":"classes/SchoolIdParams-1.html","title":"class - SchoolIdParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/school-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/request/school-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class SchoolIdParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tschoolId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInMigrationError.html":{"url":"classes/SchoolInMigrationError.html","title":"class - SchoolInMigrationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInMigrationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/errors/school-in-migration.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(details?: Record)\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/school-in-migration.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class SchoolInMigrationError extends BusinessError {\n\tconstructor(details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'SCHOOL_IN_MIGRATION',\n\t\t\t\ttitle: 'Login failed because school is in migration',\n\t\t\t\tdefaultMessage: 'Login failed because creation of user is not possible during migration',\n\t\t\t},\n\t\t\tHttpStatus.UNAUTHORIZED,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInUserMigrationEndLoggable.html":{"url":"classes/SchoolInUserMigrationEndLoggable.html","title":"class - SchoolInUserMigrationEndLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInUserMigrationEndLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/school-in-user-migration-end.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolName: string)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/school-in-user-migration-end.loggable.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolName\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/school-in-user-migration-end.loggable.ts:6\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class SchoolInUserMigrationEndLoggable implements Loggable {\n\tconstructor(private readonly schoolName: string) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Migration for school is completed',\n\t\t\tdata: {\n\t\t\t\tschoolName: this.schoolName,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInUserMigrationStartLoggable.html":{"url":"classes/SchoolInUserMigrationStartLoggable.html","title":"class - SchoolInUserMigrationStartLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInUserMigrationStartLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/school-in-user-migration-start.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, schoolName: string, useCentralLdap: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user-import/loggable/school-in-user-migration-start.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n schoolName\n \n \n string\n \n \n \n No\n \n \n \n \n useCentralLdap\n \n \n boolean\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/school-in-user-migration-start.loggable.ts:11\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { EntityId } from '@shared/domain';\n\nexport class SchoolInUserMigrationStartLoggable implements Loggable {\n\tconstructor(\n\t\tprivate readonly userId: EntityId,\n\t\tprivate readonly schoolName: string,\n\t\tprivate readonly useCentralLdap: boolean\n\t) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school administrator started the migration for his school.',\n\t\t\tdata: {\n\t\t\t\tcurrentUserId: this.userId,\n\t\t\t\tschoolName: this.schoolName,\n\t\t\t\tcentralLdap: this.useCentralLdap,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInfoMapper.html":{"url":"classes/SchoolInfoMapper.html","title":"class - SchoolInfoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInfoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/mapper/school-info.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(schoolInfo: SchoolEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/school-info.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolInfo\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolInfoResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SchoolEntity } from '@shared/domain';\nimport { SchoolInfoResponse } from '../controller/dto';\n\nexport class SchoolInfoMapper {\n\tstatic mapToResponse(schoolInfo: SchoolEntity): SchoolInfoResponse {\n\t\tconst dto = new SchoolInfoResponse({ id: schoolInfo.id, name: schoolInfo.name });\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolInfoResponse.html":{"url":"classes/SchoolInfoResponse.html","title":"class - SchoolInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/school-info.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SchoolInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/school-info.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SchoolInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}', description: 'The id of the School entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/school-info.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The name of the School entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/school-info.response.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class SchoolInfoResponse {\n\tconstructor({ id, name }: SchoolInfoResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'The id of the School entity',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The name of the School entity',\n\t})\n\tname: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolMigrationError.html":{"url":"classes/SchoolMigrationError.html","title":"class - SchoolMigrationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolMigrationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/school-migration.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(details?: Record, cause?)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/school-migration.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n cause\n \n \n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class SchoolMigrationError extends BusinessError {\n\tconstructor(details?: Record, cause?: unknown) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'SCHOOL_MIGRATION_FAILED',\n\t\t\t\ttitle: 'Migration of school failed.',\n\t\t\t\tdefaultMessage: 'School could not migrate during user migration process.',\n\t\t\t},\n\t\t\tHttpStatus.INTERNAL_SERVER_ERROR,\n\t\t\tdetails,\n\t\t\tcause\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SchoolMigrationFlags.html":{"url":"interfaces/SchoolMigrationFlags.html","title":"interface - SchoolMigrationFlags","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SchoolMigrationFlags\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/dto/school-migration-flags.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n isMandatory\n \n \n \n \n isPossible\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n isMandatory\n \n \n \n \n \n \n \n \n isMandatory: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n isPossible\n \n \n \n \n \n \n \n \n isPossible: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface SchoolMigrationFlags {\n\tisPossible: boolean;\n\tisMandatory: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolMigrationService.html":{"url":"injectables/SchoolMigrationService.html","title":"injectable - SchoolMigrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolMigrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/school-migration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkOfficialSchoolNumbersMatch\n \n \n Private\n Async\n doMigration\n \n \n Private\n hasSchoolMigrated\n \n \n Async\n hasSchoolMigratedUser\n \n \n Async\n markUnmigratedUsersAsOutdated\n \n \n Async\n migrateSchool\n \n \n Private\n Async\n rollbackMigration\n \n \n Async\n schoolToMigrate\n \n \n Async\n unmarkOutdatedUsers\n \n \n validateGracePeriod\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, logger: LegacyLogger, userService: UserService, userLoginMigrationRepo: UserLoginMigrationRepo)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n userLoginMigrationRepo\n \n \n UserLoginMigrationRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkOfficialSchoolNumbersMatch\n \n \n \n \n \n \n \n checkOfficialSchoolNumbersMatch(schoolDO: LegacySchoolDo, officialExternalSchoolNumber: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:147\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n officialExternalSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n doMigration\n \n \n \n \n \n \n \n doMigration(externalId: string, schoolDO: LegacySchoolDo, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:130\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasSchoolMigrated\n \n \n \n \n \n \n \n hasSchoolMigrated(sourceExternalId: string, targetExternalId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:158\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sourceExternalId\n \n string\n \n\n \n No\n \n\n\n \n \n targetExternalId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n hasSchoolMigratedUser\n \n \n \n \n \n \n \n hasSchoolMigratedUser(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:165\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n markUnmigratedUsersAsOutdated\n \n \n \n \n \n \n \n markUnmigratedUsersAsOutdated(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:81\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrateSchool\n \n \n \n \n \n \n \n migrateSchool(externalId: string, existingSchool: LegacySchoolDo, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n existingSchool\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n rollbackMigration\n \n \n \n \n \n \n \n rollbackMigration(originalSchoolDO: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalSchoolDO\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n schoolToMigrate\n \n \n \n \n \n \n \n schoolToMigrate(currentUserId: string, externalId: string, officialSchoolNumber: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n officialSchoolNumber\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n unmarkOutdatedUsers\n \n \n \n \n \n \n \n unmarkOutdatedUsers(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n validateGracePeriod\n \n \n \n \n \n \nvalidateGracePeriod(userLoginMigration: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/school-migration.service.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnprocessableEntityException } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { Page, LegacySchoolDo, UserDO, UserLoginMigrationDO } from '@shared/domain';\nimport { UserLoginMigrationRepo } from '@shared/repo';\nimport { LegacyLogger } from '@src/core/logger';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserService } from '@src/modules/user';\nimport { performance } from 'perf_hooks';\nimport { OAuthMigrationError } from '../error';\n\n@Injectable()\nexport class SchoolMigrationService {\n\tconstructor(\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly userLoginMigrationRepo: UserLoginMigrationRepo\n\t) {}\n\n\tvalidateGracePeriod(userLoginMigration: UserLoginMigrationDO) {\n\t\tif (userLoginMigration.finishedAt && Date.now() >= userLoginMigration.finishedAt.getTime()) {\n\t\t\tthrow new ValidationError('grace_period_expired: The grace period after finishing migration has expired', {\n\t\t\t\tfinishedAt: userLoginMigration.finishedAt,\n\t\t\t});\n\t\t}\n\t}\n\n\tasync migrateSchool(externalId: string, existingSchool: LegacySchoolDo, targetSystemId: string): Promise {\n\t\tconst schoolDOCopy: LegacySchoolDo = new LegacySchoolDo({ ...existingSchool });\n\n\t\ttry {\n\t\t\tawait this.doMigration(externalId, existingSchool, targetSystemId);\n\t\t} catch (e: unknown) {\n\t\t\tawait this.rollbackMigration(schoolDOCopy);\n\t\t\tthis.logger.log({\n\t\t\t\tmessage: `This error occurred during migration of School with official school number`,\n\t\t\t\tofficialSchoolNumber: existingSchool.officialSchoolNumber,\n\t\t\t\terror: e,\n\t\t\t});\n\t\t}\n\t}\n\n\tasync schoolToMigrate(\n\t\tcurrentUserId: string,\n\t\texternalId: string,\n\t\tofficialSchoolNumber: string | undefined\n\t): Promise {\n\t\tif (!officialSchoolNumber) {\n\t\t\tthrow new OAuthMigrationError(\n\t\t\t\t'Official school number from target migration system is missing',\n\t\t\t\t'ext_official_school_number_missing'\n\t\t\t);\n\t\t}\n\n\t\tconst userDO: UserDO | null = await this.userService.findById(currentUserId);\n\t\tif (userDO) {\n\t\t\tconst schoolDO: LegacySchoolDo = await this.schoolService.getSchoolById(userDO.schoolId);\n\t\t\tthis.checkOfficialSchoolNumbersMatch(schoolDO, officialSchoolNumber);\n\t\t}\n\n\t\tconst existingSchool: LegacySchoolDo | null = await this.schoolService.getSchoolBySchoolNumber(\n\t\t\tofficialSchoolNumber\n\t\t);\n\n\t\tif (!existingSchool) {\n\t\t\tthrow new OAuthMigrationError(\n\t\t\t\t'Could not find school by official school number from target migration system',\n\t\t\t\t'ext_official_school_missing'\n\t\t\t);\n\t\t}\n\n\t\tconst schoolMigrated: boolean = this.hasSchoolMigrated(externalId, existingSchool.externalId);\n\n\t\tif (schoolMigrated) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn existingSchool;\n\t}\n\n\tasync markUnmigratedUsersAsOutdated(schoolId: string): Promise {\n\t\tconst startTime: number = performance.now();\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UnprocessableEntityException(`School ${schoolId} has no UserLoginMigration`);\n\t\t}\n\n\t\tconst notMigratedUsers: Page = await this.userService.findUsers({\n\t\t\tschoolId,\n\t\t\tisOutdated: false,\n\t\t\tlastLoginSystemChangeSmallerThan: userLoginMigration.startedAt,\n\t\t});\n\n\t\tnotMigratedUsers.data.forEach((user: UserDO) => {\n\t\t\tuser.outdatedSince = userLoginMigration.closedAt;\n\t\t});\n\n\t\tawait this.userService.saveAll(notMigratedUsers.data);\n\n\t\tconst endTime: number = performance.now();\n\t\tthis.logger.warn(`completeMigration for schoolId ${schoolId} took ${endTime - startTime} milliseconds`);\n\t}\n\n\tasync unmarkOutdatedUsers(schoolId: string): Promise {\n\t\tconst startTime: number = performance.now();\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UnprocessableEntityException(`School ${schoolId} has no UserLoginMigration`);\n\t\t}\n\n\t\tconst migratedUsers: Page = await this.userService.findUsers({\n\t\t\tschoolId,\n\t\t\toutdatedSince: userLoginMigration.finishedAt,\n\t\t});\n\n\t\tmigratedUsers.data.forEach((user: UserDO) => {\n\t\t\tuser.outdatedSince = undefined;\n\t\t});\n\n\t\tawait this.userService.saveAll(migratedUsers.data);\n\n\t\tconst endTime: number = performance.now();\n\t\tthis.logger.warn(`restartMigration for schoolId ${schoolId} took ${endTime - startTime} milliseconds`);\n\t}\n\n\tprivate async doMigration(externalId: string, schoolDO: LegacySchoolDo, targetSystemId: string): Promise {\n\t\tif (schoolDO.systems) {\n\t\t\tschoolDO.systems.push(targetSystemId);\n\t\t} else {\n\t\t\tschoolDO.systems = [targetSystemId];\n\t\t}\n\t\tschoolDO.previousExternalId = schoolDO.externalId;\n\t\tschoolDO.externalId = externalId;\n\t\tawait this.schoolService.save(schoolDO);\n\t}\n\n\tprivate async rollbackMigration(originalSchoolDO: LegacySchoolDo) {\n\t\tif (originalSchoolDO) {\n\t\t\tawait this.schoolService.save(originalSchoolDO);\n\t\t}\n\t}\n\n\tprivate checkOfficialSchoolNumbersMatch(schoolDO: LegacySchoolDo, officialExternalSchoolNumber: string): void {\n\t\tif (schoolDO.officialSchoolNumber !== officialExternalSchoolNumber) {\n\t\t\tthrow new OAuthMigrationError(\n\t\t\t\t'Current users school is not the same as school found by official school number from target migration system',\n\t\t\t\t'ext_official_school_number_mismatch',\n\t\t\t\tschoolDO.officialSchoolNumber,\n\t\t\t\tofficialExternalSchoolNumber\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate hasSchoolMigrated(sourceExternalId: string, targetExternalId?: string): boolean {\n\t\tif (sourceExternalId === targetExternalId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tasync hasSchoolMigratedUser(schoolId: string): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst users: Page = await this.userService.findUsers({\n\t\t\tlastLoginSystemChangeBetweenStart: userLoginMigration.startedAt,\n\t\t\tlastLoginSystemChangeBetweenEnd: userLoginMigration.closedAt,\n\t\t});\n\n\t\tif (users.total > 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SchoolNews.html":{"url":"entities/SchoolNews.html","title":"entity - SchoolNews","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolNews\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:102\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolNumberDuplicateLoggableException.html":{"url":"classes/SchoolNumberDuplicateLoggableException.html","title":"class - SchoolNumberDuplicateLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolNumberDuplicateLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/error/school-number-duplicate.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n UnprocessableEntityException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(officialSchoolNumber: string)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/error/school-number-duplicate.loggable-exception.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n officialSchoolNumber\n \n \n string\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/error/school-number-duplicate.loggable-exception.ts:9\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class SchoolNumberDuplicateLoggableException extends UnprocessableEntityException implements Loggable {\n\tconstructor(private readonly officialSchoolNumber: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'SCHOOL_NUMBER_DUPLICATE',\n\t\t\tmessage: 'Unable to save the school. A school with this official school number does already exist.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tofficialSchoolNumber: this.officialSchoolNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolNumberMissingLoggableException.html":{"url":"classes/SchoolNumberMissingLoggableException.html","title":"class - SchoolNumberMissingLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolNumberMissingLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/school-number-missing.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n UnprocessableEntityException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolId: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/school-number-missing.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/error/school-number-missing.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class SchoolNumberMissingLoggableException extends UnprocessableEntityException implements Loggable {\n\tconstructor(private readonly schoolId: EntityId) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'SCHOOL_NUMBER_MISSING',\n\t\t\tmessage: 'The school is missing a official school number.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tschoolId: this.schoolId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolParams.html":{"url":"classes/SchoolParams.html","title":"class - SchoolParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/controller/dto/school.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the school.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/legacy-school/controller/dto/school.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class SchoolParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the school.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tschoolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolRolePermission.html":{"url":"classes/SchoolRolePermission.html","title":"class - SchoolRolePermission","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolRolePermission\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/school.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n LERNSTORE_VIEW\n \n \n \n Optional\n STUDENT_LIST\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n LERNSTORE_VIEW\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:50\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n STUDENT_LIST\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:47\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import {\n\tCollection,\n\tEmbeddable,\n\tEmbedded,\n\tEntity,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToOne,\n\tProperty,\n} from '@mikro-orm/core';\nimport { UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYear } from './schoolyear.entity';\nimport { System } from './system.entity';\nimport { FederalState } from './federal-state.entity';\n\nexport enum SchoolFeatures {\n\tROCKET_CHAT = 'rocketChat',\n\tVIDEOCONFERENCE = 'videoconference',\n\tNEXTCLOUD = 'nextcloud',\n\tSTUDENTVISIBILITY = 'studentVisibility', // deprecated\n\tLDAP_UNIVENTION_MIGRATION = 'ldapUniventionMigrationSchool',\n\tOAUTH_PROVISIONING_ENABLED = 'oauthProvisioningEnabled',\n\tSHOW_OUTDATED_USERS = 'showOutdatedUsers',\n\tENABLE_LDAP_SYNC_DURING_MIGRATION = 'enableLdapSyncDuringMigration',\n}\n\nexport interface ISchoolProperties {\n\t_id?: string;\n\texternalId?: string;\n\tinMaintenanceSince?: Date;\n\tinUserMigration?: boolean;\n\tpreviousExternalId?: string;\n\tname: string;\n\tofficialSchoolNumber?: string;\n\tsystems?: System[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYear;\n\tuserLoginMigration?: UserLoginMigration;\n\tfederalState: FederalState;\n}\n\n@Embeddable()\nexport class SchoolRolePermission {\n\t@Property({ nullable: true })\n\tSTUDENT_LIST?: boolean;\n\n\t@Property({ nullable: true })\n\tLERNSTORE_VIEW?: boolean;\n}\n\n@Embeddable()\nexport class SchoolRoles {\n\t@Property({ nullable: true, fieldName: 'student' })\n\tstudent?: SchoolRolePermission;\n\n\t@Property({ nullable: true, fieldName: 'teacher' })\n\tteacher?: SchoolRolePermission;\n}\n\n@Entity({ tableName: 'schools' })\n@Index({ properties: ['externalId', 'systems'] })\nexport class SchoolEntity extends BaseEntity {\n\t@Property({ nullable: true })\n\tfeatures?: SchoolFeatures[];\n\n\t@Property({ nullable: true })\n\tinMaintenanceSince?: Date;\n\n\t@Property({ nullable: true })\n\tinUserMigration?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'ldapSchoolIdentifier' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tofficialSchoolNumber?: string;\n\n\t@ManyToMany('System', undefined, { fieldName: 'systems' })\n\tsystems = new Collection(this);\n\n\t@Embedded(() => SchoolRoles, { object: true, nullable: true, prefix: false })\n\tpermissions?: SchoolRoles;\n\n\t@ManyToOne('SchoolYear', { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYear;\n\n\t@OneToOne(() => UserLoginMigration, (userLoginMigration: UserLoginMigration) => userLoginMigration.school, {\n\t\torphanRemoval: true,\n\t\tnullable: true,\n\t\tfieldName: 'userLoginMigrationId',\n\t})\n\tuserLoginMigration?: UserLoginMigration;\n\n\t@ManyToOne(() => FederalState, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalState;\n\n\tconstructor(props: ISchoolProperties) {\n\t\tsuper();\n\t\tif (props.externalId) {\n\t\t\tthis.externalId = props.externalId;\n\t\t}\n\t\tif (props.previousExternalId) {\n\t\t\tthis.previousExternalId = props.previousExternalId;\n\t\t}\n\t\tthis.inMaintenanceSince = props.inMaintenanceSince;\n\t\tif (props.inUserMigration !== null) {\n\t\t\tthis.inUserMigration = props.inUserMigration;\n\t\t}\n\t\tthis.name = props.name;\n\t\tif (props.officialSchoolNumber) {\n\t\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t\t}\n\t\tif (props.systems) {\n\t\t\tthis.systems.set(props.systems);\n\t\t}\n\t\tif (props.features) {\n\t\t\tthis.features = props.features;\n\t\t}\n\t\tif (props.schoolYear) {\n\t\t\tthis.schoolYear = props.schoolYear;\n\t\t}\n\t\tif (props.userLoginMigration) {\n\t\t\tthis.userLoginMigration = props.userLoginMigration;\n\t\t}\n\t\tthis.federalState = props.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SchoolRoles.html":{"url":"classes/SchoolRoles.html","title":"class - SchoolRoles","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SchoolRoles\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/school.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n student\n \n \n \n Optional\n teacher\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n student\n \n \n \n \n \n \n Type : SchoolRolePermission\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'student'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n teacher\n \n \n \n \n \n \n Type : SchoolRolePermission\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'teacher'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/school.entity.ts:59\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import {\n\tCollection,\n\tEmbeddable,\n\tEmbedded,\n\tEntity,\n\tIndex,\n\tManyToMany,\n\tManyToOne,\n\tOneToOne,\n\tProperty,\n} from '@mikro-orm/core';\nimport { UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { BaseEntity } from './base.entity';\nimport { SchoolYear } from './schoolyear.entity';\nimport { System } from './system.entity';\nimport { FederalState } from './federal-state.entity';\n\nexport enum SchoolFeatures {\n\tROCKET_CHAT = 'rocketChat',\n\tVIDEOCONFERENCE = 'videoconference',\n\tNEXTCLOUD = 'nextcloud',\n\tSTUDENTVISIBILITY = 'studentVisibility', // deprecated\n\tLDAP_UNIVENTION_MIGRATION = 'ldapUniventionMigrationSchool',\n\tOAUTH_PROVISIONING_ENABLED = 'oauthProvisioningEnabled',\n\tSHOW_OUTDATED_USERS = 'showOutdatedUsers',\n\tENABLE_LDAP_SYNC_DURING_MIGRATION = 'enableLdapSyncDuringMigration',\n}\n\nexport interface ISchoolProperties {\n\t_id?: string;\n\texternalId?: string;\n\tinMaintenanceSince?: Date;\n\tinUserMigration?: boolean;\n\tpreviousExternalId?: string;\n\tname: string;\n\tofficialSchoolNumber?: string;\n\tsystems?: System[];\n\tfeatures?: SchoolFeatures[];\n\tschoolYear?: SchoolYear;\n\tuserLoginMigration?: UserLoginMigration;\n\tfederalState: FederalState;\n}\n\n@Embeddable()\nexport class SchoolRolePermission {\n\t@Property({ nullable: true })\n\tSTUDENT_LIST?: boolean;\n\n\t@Property({ nullable: true })\n\tLERNSTORE_VIEW?: boolean;\n}\n\n@Embeddable()\nexport class SchoolRoles {\n\t@Property({ nullable: true, fieldName: 'student' })\n\tstudent?: SchoolRolePermission;\n\n\t@Property({ nullable: true, fieldName: 'teacher' })\n\tteacher?: SchoolRolePermission;\n}\n\n@Entity({ tableName: 'schools' })\n@Index({ properties: ['externalId', 'systems'] })\nexport class SchoolEntity extends BaseEntity {\n\t@Property({ nullable: true })\n\tfeatures?: SchoolFeatures[];\n\n\t@Property({ nullable: true })\n\tinMaintenanceSince?: Date;\n\n\t@Property({ nullable: true })\n\tinUserMigration?: boolean;\n\n\t@Property({ nullable: true, fieldName: 'ldapSchoolIdentifier' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property()\n\tname: string;\n\n\t@Property({ nullable: true })\n\tofficialSchoolNumber?: string;\n\n\t@ManyToMany('System', undefined, { fieldName: 'systems' })\n\tsystems = new Collection(this);\n\n\t@Embedded(() => SchoolRoles, { object: true, nullable: true, prefix: false })\n\tpermissions?: SchoolRoles;\n\n\t@ManyToOne('SchoolYear', { fieldName: 'currentYear', nullable: true })\n\tschoolYear?: SchoolYear;\n\n\t@OneToOne(() => UserLoginMigration, (userLoginMigration: UserLoginMigration) => userLoginMigration.school, {\n\t\torphanRemoval: true,\n\t\tnullable: true,\n\t\tfieldName: 'userLoginMigrationId',\n\t})\n\tuserLoginMigration?: UserLoginMigration;\n\n\t@ManyToOne(() => FederalState, { fieldName: 'federalState', nullable: false })\n\tfederalState: FederalState;\n\n\tconstructor(props: ISchoolProperties) {\n\t\tsuper();\n\t\tif (props.externalId) {\n\t\t\tthis.externalId = props.externalId;\n\t\t}\n\t\tif (props.previousExternalId) {\n\t\t\tthis.previousExternalId = props.previousExternalId;\n\t\t}\n\t\tthis.inMaintenanceSince = props.inMaintenanceSince;\n\t\tif (props.inUserMigration !== null) {\n\t\t\tthis.inUserMigration = props.inUserMigration;\n\t\t}\n\t\tthis.name = props.name;\n\t\tif (props.officialSchoolNumber) {\n\t\t\tthis.officialSchoolNumber = props.officialSchoolNumber;\n\t\t}\n\t\tif (props.systems) {\n\t\t\tthis.systems.set(props.systems);\n\t\t}\n\t\tif (props.features) {\n\t\t\tthis.features = props.features;\n\t\t}\n\t\tif (props.schoolYear) {\n\t\t\tthis.schoolYear = props.schoolYear;\n\t\t}\n\t\tif (props.userLoginMigration) {\n\t\t\tthis.userLoginMigration = props.userLoginMigration;\n\t\t}\n\t\tthis.federalState = props.federalState;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolValidationService.html":{"url":"injectables/SchoolValidationService.html","title":"injectable - SchoolValidationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolValidationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n isSchoolNumberUnique\n \n \n Public\n Async\n validate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolRepo: LegacySchoolRepo)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolRepo\n \n \n LegacySchoolRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n isSchoolNumberUnique\n \n \n \n \n \n \n \n isSchoolNumberUnique(school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n validate\n \n \n \n \n \n \n \n validate(school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/validation/school-validation.service.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { LegacySchoolDo } from '@shared/domain';\nimport { LegacySchoolRepo } from '@shared/repo';\nimport { SchoolNumberDuplicateLoggableException } from '../../error';\n\n@Injectable()\nexport class SchoolValidationService {\n\tconstructor(private readonly schoolRepo: LegacySchoolRepo) {}\n\n\tpublic async validate(school: LegacySchoolDo): Promise {\n\t\tif (!(await this.isSchoolNumberUnique(school))) {\n\t\t\tthrow new SchoolNumberDuplicateLoggableException(school.officialSchoolNumber as string);\n\t\t}\n\t}\n\n\tprivate async isSchoolNumberUnique(school: LegacySchoolDo): Promise {\n\t\tif (!school.officialSchoolNumber) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst foundSchool: LegacySchoolDo | null = await this.schoolRepo.findBySchoolNumber(school.officialSchoolNumber);\n\n\t\treturn foundSchool === null || foundSchool.id === school.id;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SchoolYear.html":{"url":"entities/SchoolYear.html","title":"entity - SchoolYear","body":"\n \n\n\n\n\n\n\n\n Entities\n SchoolYear\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/schoolyear.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n endDate\n \n \n \n name\n \n \n \n startDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n endDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/schoolyear.entity.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/schoolyear.entity.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n startDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/schoolyear.entity.ts:16\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { BaseEntity } from './base.entity';\n\nexport interface ISchoolYearProperties {\n\tname: string;\n\tstartDate: Date;\n\tendDate: Date;\n}\n\n@Entity({ tableName: 'years' })\nexport class SchoolYear extends BaseEntity implements ISchoolYearProperties {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tstartDate: Date;\n\n\t@Property()\n\tendDate: Date;\n\n\tconstructor(props: ISchoolYearProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.startDate = props.startDate;\n\t\tthis.endDate = props.endDate;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolYearRepo.html":{"url":"injectables/SchoolYearRepo.html","title":"injectable - SchoolYearRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolYearRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/repo/schoolyear.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findCurrentYear\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findCurrentYear\n \n \n \n \n \n \n \n findCurrentYear()\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/repo/schoolyear.repo.ts:11\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/repo/schoolyear.repo.ts:7\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolYear } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\n\n@Injectable()\nexport class SchoolYearRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn SchoolYear;\n\t}\n\n\tasync findCurrentYear(): Promise {\n\t\tconst currentDate = new Date();\n\t\tconst year: SchoolYear | null = await this._em.findOneOrFail(SchoolYear, {\n\t\t\t$and: [{ startDate: { $lte: currentDate } }, { endDate: { $gte: currentDate } }],\n\t\t});\n\t\treturn year;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SchoolYearService.html":{"url":"injectables/SchoolYearService.html","title":"injectable - SchoolYearService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SchoolYearService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/legacy-school/service/school-year.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getCurrentSchoolYear\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolYearRepo: SchoolYearRepo)\n \n \n \n \n Defined in apps/server/src/modules/legacy-school/service/school-year.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolYearRepo\n \n \n SchoolYearRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getCurrentSchoolYear\n \n \n \n \n \n \n \n getCurrentSchoolYear()\n \n \n\n\n \n \n Defined in apps/server/src/modules/legacy-school/service/school-year.service.ts:10\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolYear } from '@shared/domain';\nimport { SchoolYearRepo } from '../repo';\n\n@Injectable()\nexport class SchoolYearService {\n\tconstructor(private readonly schoolYearRepo: SchoolYearRepo) {}\n\n\t// TODO: N21-990 Refactoring: Create domain objects for schoolYear and federalState\n\tasync getCurrentSchoolYear(): Promise {\n\t\tconst current: SchoolYear = await this.schoolYearRepo.findCurrentYear();\n\n\t\treturn current;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/Scope.html":{"url":"classes/Scope.html","title":"class - Scope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n Scope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/scope.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n query\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(operator: ScopeOperator)\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n operator\n \n \n ScopeOperator\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:9\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/scope.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/scope.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n query\n \n \n\n \n \n getquery()\n \n \n \n \n Defined in apps/server/src/shared/repo/scope.ts:20\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { EmptyResultQuery } from './query/empty-result.query';\n\ntype EmptyResultQueryType = typeof EmptyResultQuery;\n\ntype ScopeOperator = '$and' | '$or';\n\nexport class Scope {\n\tprivate _queries: FilterQuery[] = [];\n\n\tprivate _operator: ScopeOperator;\n\n\tprivate _allowEmptyQuery: boolean;\n\n\tconstructor(operator: ScopeOperator = '$and') {\n\t\tthis._operator = operator;\n\t\tthis._allowEmptyQuery = false;\n\t}\n\n\tget query(): FilterQuery {\n\t\tif (this._queries.length === 0) {\n\t\t\tif (this._allowEmptyQuery) {\n\t\t\t\treturn {} as FilterQuery;\n\t\t\t}\n\t\t\treturn EmptyResultQuery as FilterQuery;\n\t\t}\n\t\tconst query = this._queries.length > 1 ? { [this._operator]: this._queries } : this._queries[0];\n\t\treturn query as FilterQuery;\n\t}\n\n\taddQuery(query: FilterQuery | EmptyResultQueryType): void {\n\t\tthis._queries.push(query);\n\t}\n\n\tallowEmptyQuery(isEmptyQueryAllowed: boolean): Scope {\n\t\tthis._allowEmptyQuery = isEmptyQueryAllowed;\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ScopeRef.html":{"url":"classes/ScopeRef.html","title":"class - ScopeRef","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ScopeRef\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/scope-ref.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n scope\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(id: EntityId, scope: VideoConferenceScope)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/scope-ref.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n \n EntityId\n \n \n \n No\n \n \n \n \n scope\n \n \n VideoConferenceScope\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/scope-ref.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : VideoConferenceScope\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/scope-ref.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId, VideoConferenceScope } from '@shared/domain';\n\nexport class ScopeRef {\n\tid: EntityId;\n\n\tscope: VideoConferenceScope;\n\n\tconstructor(id: EntityId, scope: VideoConferenceScope) {\n\t\tthis.id = id;\n\t\tthis.scope = scope;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ServerConsole.html":{"url":"classes/ServerConsole.html","title":"class - ServerConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ServerConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/console/server.console.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getHello\n \n \n \n getInOut\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(consoleWriter: ConsoleWriterService)\n \n \n \n \n Defined in apps/server/src/console/server.console.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n consoleWriter\n \n \n ConsoleWriterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getHello\n \n \n \n \n \n \n \n getHello()\n \n \n\n \n \n Decorators : \n \n @Command({command: 'test', description: 'sample test output'})\n \n \n\n \n \n Defined in apps/server/src/console/server.console.ts:11\n \n \n\n\n \n \n test method for console output\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n getInOut\n \n \n \n \n \n \n \n getInOut(whatever: string)\n \n \n\n \n \n Decorators : \n \n @Command({command: 'out ', description: 'return input args'})\n \n \n\n \n \n Defined in apps/server/src/console/server.console.ts:17\n \n \n\n\n \n \n test method for console input\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n whatever\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Command, Console } from 'nestjs-console';\nimport { ConsoleWriterService } from '@shared/infra/console';\n\n@Console({ command: 'server', description: 'sample server console' })\nexport class ServerConsole {\n\tconstructor(private consoleWriter: ConsoleWriterService) {}\n\n\t/** test method for console output */\n\t@Command({ command: 'test', description: 'sample test output' })\n\tgetHello(): void {\n\t\tthis.consoleWriter.info('Schulcloud Server API');\n\t}\n\n\t/** test method for console input */\n\t@Command({ command: 'out ', description: 'return input args' })\n\tgetInOut(whatever: string): void {\n\t\tthis.consoleWriter.info(`input was: ${whatever}`);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ServerConsoleModule.html":{"url":"modules/ServerConsoleModule.html","title":"module - ServerConsoleModule","body":"\n \n\n\n\n\n Modules\n ServerConsoleModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ServerConsoleModule\n\n\n\ncluster_ServerConsoleModule_imports\n\n\n\n\nConsoleWriterModule\n\nConsoleWriterModule\n\n\n\nServerConsoleModule\n\nServerConsoleModule\n\nServerConsoleModule -->\n\nConsoleWriterModule->ServerConsoleModule\n\n\n\n\n\nFilesModule\n\nFilesModule\n\nServerConsoleModule -->\n\nFilesModule->ServerConsoleModule\n\n\n\n\n\nManagementModule\n\nManagementModule\n\nServerConsoleModule -->\n\nManagementModule->ServerConsoleModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/console/console.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n \n \n \n ConsoleWriterModule\n \n \n FilesModule\n \n \n ManagementModule\n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule } from '@mikro-orm/nestjs';\nimport { Module, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { ConsoleWriterModule } from '@shared/infra/console/console-writer/console-writer.module';\nimport { KeycloakModule } from '@shared/infra/identity-management/keycloak/keycloak.module';\nimport { DB_PASSWORD, DB_URL, DB_USERNAME, createConfigModuleOptions } from '@src/config';\nimport { FilesModule } from '@src/modules/files';\nimport { FileEntity } from '@src/modules/files/entity';\nimport { FileRecord } from '@src/modules/files-storage/entity';\nimport { ManagementModule } from '@src/modules/management/management.module';\nimport { serverConfig } from '@src/modules/server';\nimport { ConsoleModule } from 'nestjs-console';\nimport { ServerConsole } from './server.console';\n\n@Module({\n\timports: [\n\t\tManagementModule,\n\t\tConsoleModule,\n\t\tConsoleWriterModule,\n\t\tFilesModule,\n\t\tConfigModule.forRoot(createConfigModuleOptions(serverConfig)),\n\t\t...((Configuration.get('FEATURE_IDENTITY_MANAGEMENT_ENABLED') as boolean) ? [KeycloakModule] : []),\n\t\tMikroOrmModule.forRoot({\n\t\t\t// TODO repeats server module definitions\n\t\t\ttype: 'mongo',\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: [...ALL_ENTITIES, FileEntity, FileRecord],\n\t\t\tallowGlobalContext: true,\n\t\t\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t\t\tnew NotFoundException(`The requested ${entityName}: ${JSON.stringify(where)} has not been found.`),\n\t\t}),\n\t],\n\tproviders: [\n\t\t/** add console services as providers */\n\t\tServerConsole,\n\t],\n})\nexport class ServerConsoleModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ServerController.html":{"url":"controllers/ServerController.html","title":"controller - ServerController","body":"\n \n\n\n\n\n\n\n Controllers\n ServerController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/server/controller/server.controller.ts\n \n\n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getHello\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getHello\n \n \n \n \n \n \n \n getHello()\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/server/controller/server.controller.ts:7\n \n \n\n\n \n \n default route to test public access\n\n\n \n Returns : string\n\n \n \n \n \n \n \n\n\n \n import { Controller, Get } from '@nestjs/common';\n\n@Controller()\nexport class ServerController {\n\t/** default route to test public access */\n\t@Get()\n\tgetHello(): string {\n\t\treturn 'Schulcloud Server API';\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ServerModule.html":{"url":"modules/ServerModule.html","title":"module - ServerModule","body":"\n \n\n\n\n\n Modules\n ServerModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ServerModule\n\n\n\ncluster_ServerModule_imports\n\n\n\n\nAccountApiModule\n\nAccountApiModule\n\n\n\nServerModule\n\nServerModule\n\nServerModule -->\n\nAccountApiModule->ServerModule\n\n\n\n\n\nAuthenticationApiModule\n\nAuthenticationApiModule\n\nServerModule -->\n\nAuthenticationApiModule->ServerModule\n\n\n\n\n\nBoardApiModule\n\nBoardApiModule\n\nServerModule -->\n\nBoardApiModule->ServerModule\n\n\n\n\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule\n\nServerModule -->\n\nCollaborativeStorageModule->ServerModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nServerModule -->\n\nCoreModule->ServerModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nServerModule -->\n\nFilesStorageClientModule->ServerModule\n\n\n\n\n\nGroupApiModule\n\nGroupApiModule\n\nServerModule -->\n\nGroupApiModule->ServerModule\n\n\n\n\n\nImportUserModule\n\nImportUserModule\n\nServerModule -->\n\nImportUserModule->ServerModule\n\n\n\n\n\nLearnroomApiModule\n\nLearnroomApiModule\n\nServerModule -->\n\nLearnroomApiModule->ServerModule\n\n\n\n\n\nLegacySchoolApiModule\n\nLegacySchoolApiModule\n\nServerModule -->\n\nLegacySchoolApiModule->ServerModule\n\n\n\n\n\nLessonApiModule\n\nLessonApiModule\n\nServerModule -->\n\nLessonApiModule->ServerModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nServerModule -->\n\nLoggerModule->ServerModule\n\n\n\n\n\nNewsModule\n\nNewsModule\n\nServerModule -->\n\nNewsModule->ServerModule\n\n\n\n\n\nOauthApiModule\n\nOauthApiModule\n\nServerModule -->\n\nOauthApiModule->ServerModule\n\n\n\n\n\nOauthProviderApiModule\n\nOauthProviderApiModule\n\nServerModule -->\n\nOauthProviderApiModule->ServerModule\n\n\n\n\n\nRabbitMQWrapperModule\n\nRabbitMQWrapperModule\n\nServerModule -->\n\nRabbitMQWrapperModule->ServerModule\n\n\n\n\n\nRedisModule\n\nRedisModule\n\nServerModule -->\n\nRedisModule->ServerModule\n\n\n\n\n\nSharingApiModule\n\nSharingApiModule\n\nServerModule -->\n\nSharingApiModule->ServerModule\n\n\n\n\n\nSystemApiModule\n\nSystemApiModule\n\nServerModule -->\n\nSystemApiModule->ServerModule\n\n\n\n\n\nTaskApiModule\n\nTaskApiModule\n\nServerModule -->\n\nTaskApiModule->ServerModule\n\n\n\n\n\nTeamsApiModule\n\nTeamsApiModule\n\nServerModule -->\n\nTeamsApiModule->ServerModule\n\n\n\n\n\nToolApiModule\n\nToolApiModule\n\nServerModule -->\n\nToolApiModule->ServerModule\n\n\n\n\n\nUserApiModule\n\nUserApiModule\n\nServerModule -->\n\nUserApiModule->ServerModule\n\n\n\n\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule\n\nServerModule -->\n\nUserLoginMigrationApiModule->ServerModule\n\n\n\n\n\nVideoConferenceApiModule\n\nVideoConferenceApiModule\n\nServerModule -->\n\nVideoConferenceApiModule->ServerModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/server/server.module.ts\n \n\n\n\n \n Description\n \n \n Server Module used for production\n\n \n\n\n \n \n \n Controllers\n \n \n ServerController\n \n \n \n \n Imports\n \n \n AccountApiModule\n \n \n AuthenticationApiModule\n \n \n BoardApiModule\n \n \n CollaborativeStorageModule\n \n \n CoreModule\n \n \n FilesStorageClientModule\n \n \n GroupApiModule\n \n \n ImportUserModule\n \n \n LearnroomApiModule\n \n \n LegacySchoolApiModule\n \n \n LessonApiModule\n \n \n LoggerModule\n \n \n NewsModule\n \n \n OauthApiModule\n \n \n OauthProviderApiModule\n \n \n RabbitMQWrapperModule\n \n \n RedisModule\n \n \n SharingApiModule\n \n \n SystemApiModule\n \n \n TaskApiModule\n \n \n TeamsApiModule\n \n \n ToolApiModule\n \n \n UserApiModule\n \n \n UserLoginMigrationApiModule\n \n \n VideoConferenceApiModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n configure\n \n \n \n \n \n \nconfigure(consumer: MiddlewareConsumer)\n \n \n\n\n \n \n Defined in apps/server/src/modules/server/server.module.ts:152\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n consumer\n \n MiddlewareConsumer\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Inject, MiddlewareConsumer, Module, NestModule, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoDatabaseModuleOptions, MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MailModule } from '@shared/infra/mail';\nimport { RabbitMQWrapperModule, RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq';\nimport { REDIS_CLIENT, RedisModule } from '@shared/infra/redis';\nimport { createConfigModuleOptions, DB_PASSWORD, DB_URL, DB_USERNAME } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { AccountApiModule } from '@src/modules/account/account-api.module';\nimport { AuthenticationApiModule } from '@src/modules/authentication/authentication-api.module';\nimport { BoardApiModule } from '@src/modules/board/board-api.module';\nimport { CollaborativeStorageModule } from '@src/modules/collaborative-storage';\nimport { FilesStorageClientModule } from '@src/modules/files-storage-client';\nimport { GroupApiModule } from '@src/modules/group/group-api.module';\nimport { LearnroomApiModule } from '@src/modules/learnroom/learnroom-api.module';\nimport { LessonApiModule } from '@src/modules/lesson/lesson-api.module';\nimport { NewsModule } from '@src/modules/news';\nimport { OauthProviderApiModule } from '@src/modules/oauth-provider';\nimport { OauthApiModule } from '@src/modules/oauth/oauth-api.module';\nimport { RocketChatModule } from '@src/modules/rocketchat';\nimport { LegacySchoolApiModule } from '@src/modules/legacy-school/legacy-school-api.module';\nimport { SharingApiModule } from '@src/modules/sharing/sharing.module';\nimport { SystemApiModule } from '@src/modules/system/system-api.module';\nimport { TaskApiModule } from '@src/modules/task/task-api.module';\nimport { ToolApiModule } from '@src/modules/tool/tool-api.module';\nimport { ImportUserModule } from '@src/modules/user-import';\nimport { UserLoginMigrationApiModule } from '@src/modules/user-login-migration/user-login-migration-api.module';\nimport { UserApiModule } from '@src/modules/user/user-api.module';\nimport { VideoConferenceApiModule } from '@src/modules/video-conference/video-conference-api.module';\nimport connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\nimport { TeamsApiModule } from '@src/modules/teams/teams-api.module';\nimport { ServerController } from './controller/server.controller';\nimport { serverConfig } from './server.config';\n\nconst serverModules = [\n\tConfigModule.forRoot(createConfigModuleOptions(serverConfig)),\n\tCoreModule,\n\tAuthenticationApiModule,\n\tAccountApiModule,\n\tCollaborativeStorageModule,\n\tOauthApiModule,\n\tTaskApiModule,\n\tLessonApiModule,\n\tNewsModule,\n\tUserApiModule,\n\tImportUserModule,\n\tLearnroomApiModule,\n\tFilesStorageClientModule,\n\tSystemApiModule,\n\tMailModule.forRoot({\n\t\texchange: Configuration.get('MAIL_SEND_EXCHANGE') as string,\n\t\troutingKey: Configuration.get('MAIL_SEND_ROUTING_KEY') as string,\n\t}),\n\tRocketChatModule.forRoot({\n\t\turi: Configuration.get('ROCKET_CHAT_URI') as string,\n\t\tadminId: Configuration.get('ROCKET_CHAT_ADMIN_ID') as string,\n\t\tadminToken: Configuration.get('ROCKET_CHAT_ADMIN_TOKEN') as string,\n\t\tadminUser: Configuration.get('ROCKET_CHAT_ADMIN_USER') as string,\n\t\tadminPassword: Configuration.get('ROCKET_CHAT_ADMIN_PASSWORD') as string,\n\t}),\n\tLegacySchoolApiModule,\n\tVideoConferenceApiModule,\n\tOauthProviderApiModule,\n\tSharingApiModule,\n\tToolApiModule,\n\tUserLoginMigrationApiModule,\n\tBoardApiModule,\n\tGroupApiModule,\n\tTeamsApiModule,\n];\n\nexport const defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\nconst setupSessions = (consumer: MiddlewareConsumer, redisClient: RedisClient | undefined, logger: LegacyLogger) => {\n\tconst sessionDuration: number = Configuration.get('SESSION__EXPIRES_SECONDS') as number;\n\n\tlet store: connectRedis.RedisStore | undefined;\n\tif (redisClient) {\n\t\tconst RedisStore: connectRedis.RedisStore = connectRedis(session);\n\t\tstore = new RedisStore({\n\t\t\tclient: redisClient,\n\t\t\tttl: sessionDuration,\n\t\t});\n\t} else {\n\t\tlogger.warn(\n\t\t\t'The RedisStore for sessions is not setup, since the environment variable REDIS_URI is not defined. Sessions are using the build-in MemoryStore. This should not be used in production!'\n\t\t);\n\t}\n\n\tconsumer\n\t\t.apply(\n\t\t\tsession({\n\t\t\t\tstore,\n\t\t\t\tsecret: Configuration.get('SESSION__SECRET') as string,\n\t\t\t\tresave: false,\n\t\t\t\tsaveUninitialized: false,\n\t\t\t\tname: Configuration.has('SESSION__NAME') ? (Configuration.get('SESSION__NAME') as string) : undefined,\n\t\t\t\tproxy: Configuration.has('SESSION__PROXY') ? (Configuration.get('SESSION__PROXY') as boolean) : undefined,\n\t\t\t\tcookie: {\n\t\t\t\t\tsecure: Configuration.get('SESSION__SECURE') as boolean,\n\t\t\t\t\tsameSite: Configuration.get('SESSION__SAME_SITE') as boolean | 'lax' | 'strict' | 'none',\n\t\t\t\t\thttpOnly: Configuration.get('SESSION__HTTP_ONLY') as boolean,\n\t\t\t\t\tmaxAge: sessionDuration * 1000,\n\t\t\t\t},\n\t\t\t})\n\t\t)\n\t\t.forRoutes('*');\n};\n\n/**\n * Server Module used for production\n */\n@Module({\n\timports: [\n\t\tRabbitMQWrapperModule,\n\t\t...serverModules,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\ttype: 'mongo',\n\t\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: ALL_ENTITIES,\n\n\t\t\t// debug: true, // use it for locally debugging of queries\n\t\t}),\n\t\tLoggerModule,\n\t\tRedisModule,\n\t],\n\tcontrollers: [ServerController],\n})\nexport class ServerModule implements NestModule {\n\tconstructor(\n\t\t@Inject(REDIS_CLIENT) private readonly redisClient: RedisClient | undefined,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tlogger.setContext(ServerModule.name);\n\t}\n\n\tconfigure(consumer: MiddlewareConsumer) {\n\t\tsetupSessions(consumer, this.redisClient, this.logger);\n\t}\n}\n\n/**\n * Server module used for testing.\n * Should have same modules than the @ServerModule while infrastucture Modules can be different.\n * Customizations:\n * - In Memory Database instead of external connection\n * // TODO add custom mail, rocketchat, and rabbitmq modules\n * // TODO use instead of ServerModule when NODE_ENV=test\n */\n@Module({\n\timports: [\n\t\t...serverModules,\n\t\tMongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions }),\n\t\tRabbitMQWrapperTestModule,\n\t\tLoggerModule,\n\t\tRedisModule,\n\t],\n\tcontrollers: [ServerController],\n})\nexport class ServerTestModule implements NestModule {\n\tconstructor(\n\t\t@Inject(REDIS_CLIENT) private readonly redisClient: RedisClient | undefined,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tlogger.setContext(ServerTestModule.name);\n\t}\n\n\tconfigure(consumer: MiddlewareConsumer) {\n\t\tsetupSessions(consumer, undefined, this.logger);\n\t}\n\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: ServerTestModule,\n\t\t\timports: [\n\t\t\t\t...serverModules,\n\t\t\t\tMongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions, ...options }),\n\t\t\t\tRabbitMQWrapperTestModule,\n\t\t\t],\n\t\t\tcontrollers: [ServerController],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ServerTestModule.html":{"url":"modules/ServerTestModule.html","title":"module - ServerTestModule","body":"\n \n\n\n\n\n Modules\n ServerTestModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ServerTestModule\n\n\n\ncluster_ServerTestModule_imports\n\n\n\n\nAccountApiModule\n\nAccountApiModule\n\n\n\nServerTestModule\n\nServerTestModule\n\nServerTestModule -->\n\nAccountApiModule->ServerTestModule\n\n\n\n\n\nAuthenticationApiModule\n\nAuthenticationApiModule\n\nServerTestModule -->\n\nAuthenticationApiModule->ServerTestModule\n\n\n\n\n\nBoardApiModule\n\nBoardApiModule\n\nServerTestModule -->\n\nBoardApiModule->ServerTestModule\n\n\n\n\n\nCollaborativeStorageModule\n\nCollaborativeStorageModule\n\nServerTestModule -->\n\nCollaborativeStorageModule->ServerTestModule\n\n\n\n\n\nCoreModule\n\nCoreModule\n\nServerTestModule -->\n\nCoreModule->ServerTestModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nServerTestModule -->\n\nFilesStorageClientModule->ServerTestModule\n\n\n\n\n\nGroupApiModule\n\nGroupApiModule\n\nServerTestModule -->\n\nGroupApiModule->ServerTestModule\n\n\n\n\n\nImportUserModule\n\nImportUserModule\n\nServerTestModule -->\n\nImportUserModule->ServerTestModule\n\n\n\n\n\nLearnroomApiModule\n\nLearnroomApiModule\n\nServerTestModule -->\n\nLearnroomApiModule->ServerTestModule\n\n\n\n\n\nLegacySchoolApiModule\n\nLegacySchoolApiModule\n\nServerTestModule -->\n\nLegacySchoolApiModule->ServerTestModule\n\n\n\n\n\nLessonApiModule\n\nLessonApiModule\n\nServerTestModule -->\n\nLessonApiModule->ServerTestModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nServerTestModule -->\n\nLoggerModule->ServerTestModule\n\n\n\n\n\nMongoMemoryDatabaseModule\n\nMongoMemoryDatabaseModule\n\nServerTestModule -->\n\nMongoMemoryDatabaseModule->ServerTestModule\n\n\n\n\n\nNewsModule\n\nNewsModule\n\nServerTestModule -->\n\nNewsModule->ServerTestModule\n\n\n\n\n\nOauthApiModule\n\nOauthApiModule\n\nServerTestModule -->\n\nOauthApiModule->ServerTestModule\n\n\n\n\n\nOauthProviderApiModule\n\nOauthProviderApiModule\n\nServerTestModule -->\n\nOauthProviderApiModule->ServerTestModule\n\n\n\n\n\nRabbitMQWrapperTestModule\n\nRabbitMQWrapperTestModule\n\nServerTestModule -->\n\nRabbitMQWrapperTestModule->ServerTestModule\n\n\n\n\n\nRedisModule\n\nRedisModule\n\nServerTestModule -->\n\nRedisModule->ServerTestModule\n\n\n\n\n\nSharingApiModule\n\nSharingApiModule\n\nServerTestModule -->\n\nSharingApiModule->ServerTestModule\n\n\n\n\n\nSystemApiModule\n\nSystemApiModule\n\nServerTestModule -->\n\nSystemApiModule->ServerTestModule\n\n\n\n\n\nTaskApiModule\n\nTaskApiModule\n\nServerTestModule -->\n\nTaskApiModule->ServerTestModule\n\n\n\n\n\nTeamsApiModule\n\nTeamsApiModule\n\nServerTestModule -->\n\nTeamsApiModule->ServerTestModule\n\n\n\n\n\nToolApiModule\n\nToolApiModule\n\nServerTestModule -->\n\nToolApiModule->ServerTestModule\n\n\n\n\n\nUserApiModule\n\nUserApiModule\n\nServerTestModule -->\n\nUserApiModule->ServerTestModule\n\n\n\n\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule\n\nServerTestModule -->\n\nUserLoginMigrationApiModule->ServerTestModule\n\n\n\n\n\nVideoConferenceApiModule\n\nVideoConferenceApiModule\n\nServerTestModule -->\n\nVideoConferenceApiModule->ServerTestModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/server/server.module.ts\n \n\n\n\n \n Description\n \n \n Server module used for testing.\nShould have same modules than the @ServerModule while infrastucture Modules can be different.\nCustomizations:\n\nIn Memory Database instead of external connection\n// TODO add custom mail, rocketchat, and rabbitmq modules\n// TODO use instead of ServerModule when NODE_ENV=test\n\n\n \n\n\n \n \n \n Controllers\n \n \n ServerController\n \n \n \n \n Imports\n \n \n AccountApiModule\n \n \n AuthenticationApiModule\n \n \n BoardApiModule\n \n \n CollaborativeStorageModule\n \n \n CoreModule\n \n \n FilesStorageClientModule\n \n \n GroupApiModule\n \n \n ImportUserModule\n \n \n LearnroomApiModule\n \n \n LegacySchoolApiModule\n \n \n LessonApiModule\n \n \n LoggerModule\n \n \n MongoMemoryDatabaseModule\n \n \n NewsModule\n \n \n OauthApiModule\n \n \n OauthProviderApiModule\n \n \n RabbitMQWrapperTestModule\n \n \n RedisModule\n \n \n SharingApiModule\n \n \n SystemApiModule\n \n \n TaskApiModule\n \n \n TeamsApiModule\n \n \n ToolApiModule\n \n \n UserApiModule\n \n \n UserLoginMigrationApiModule\n \n \n VideoConferenceApiModule\n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n configure\n \n \n \n \n \n \nconfigure(consumer: MiddlewareConsumer)\n \n \n\n\n \n \n Defined in apps/server/src/modules/server/server.module.ts:183\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n consumer\n \n MiddlewareConsumer\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n forRoot\n \n \n \n \n \n \n \n forRoot(options?: MongoDatabaseModuleOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/server/server.module.ts:187\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n MongoDatabaseModuleOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : DynamicModule\n\n \n \n \n \n \n \n \n \n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Dictionary, IPrimaryKey } from '@mikro-orm/core';\nimport { MikroOrmModule, MikroOrmModuleSyncOptions } from '@mikro-orm/nestjs';\nimport { DynamicModule, Inject, MiddlewareConsumer, Module, NestModule, NotFoundException } from '@nestjs/common';\nimport { ConfigModule } from '@nestjs/config';\nimport { ALL_ENTITIES } from '@shared/domain';\nimport { MongoDatabaseModuleOptions, MongoMemoryDatabaseModule } from '@shared/infra/database';\nimport { MailModule } from '@shared/infra/mail';\nimport { RabbitMQWrapperModule, RabbitMQWrapperTestModule } from '@shared/infra/rabbitmq';\nimport { REDIS_CLIENT, RedisModule } from '@shared/infra/redis';\nimport { createConfigModuleOptions, DB_PASSWORD, DB_URL, DB_USERNAME } from '@src/config';\nimport { CoreModule } from '@src/core';\nimport { LegacyLogger, LoggerModule } from '@src/core/logger';\nimport { AccountApiModule } from '@src/modules/account/account-api.module';\nimport { AuthenticationApiModule } from '@src/modules/authentication/authentication-api.module';\nimport { BoardApiModule } from '@src/modules/board/board-api.module';\nimport { CollaborativeStorageModule } from '@src/modules/collaborative-storage';\nimport { FilesStorageClientModule } from '@src/modules/files-storage-client';\nimport { GroupApiModule } from '@src/modules/group/group-api.module';\nimport { LearnroomApiModule } from '@src/modules/learnroom/learnroom-api.module';\nimport { LessonApiModule } from '@src/modules/lesson/lesson-api.module';\nimport { NewsModule } from '@src/modules/news';\nimport { OauthProviderApiModule } from '@src/modules/oauth-provider';\nimport { OauthApiModule } from '@src/modules/oauth/oauth-api.module';\nimport { RocketChatModule } from '@src/modules/rocketchat';\nimport { LegacySchoolApiModule } from '@src/modules/legacy-school/legacy-school-api.module';\nimport { SharingApiModule } from '@src/modules/sharing/sharing.module';\nimport { SystemApiModule } from '@src/modules/system/system-api.module';\nimport { TaskApiModule } from '@src/modules/task/task-api.module';\nimport { ToolApiModule } from '@src/modules/tool/tool-api.module';\nimport { ImportUserModule } from '@src/modules/user-import';\nimport { UserLoginMigrationApiModule } from '@src/modules/user-login-migration/user-login-migration-api.module';\nimport { UserApiModule } from '@src/modules/user/user-api.module';\nimport { VideoConferenceApiModule } from '@src/modules/video-conference/video-conference-api.module';\nimport connectRedis from 'connect-redis';\nimport session from 'express-session';\nimport { RedisClient } from 'redis';\nimport { TeamsApiModule } from '@src/modules/teams/teams-api.module';\nimport { ServerController } from './controller/server.controller';\nimport { serverConfig } from './server.config';\n\nconst serverModules = [\n\tConfigModule.forRoot(createConfigModuleOptions(serverConfig)),\n\tCoreModule,\n\tAuthenticationApiModule,\n\tAccountApiModule,\n\tCollaborativeStorageModule,\n\tOauthApiModule,\n\tTaskApiModule,\n\tLessonApiModule,\n\tNewsModule,\n\tUserApiModule,\n\tImportUserModule,\n\tLearnroomApiModule,\n\tFilesStorageClientModule,\n\tSystemApiModule,\n\tMailModule.forRoot({\n\t\texchange: Configuration.get('MAIL_SEND_EXCHANGE') as string,\n\t\troutingKey: Configuration.get('MAIL_SEND_ROUTING_KEY') as string,\n\t}),\n\tRocketChatModule.forRoot({\n\t\turi: Configuration.get('ROCKET_CHAT_URI') as string,\n\t\tadminId: Configuration.get('ROCKET_CHAT_ADMIN_ID') as string,\n\t\tadminToken: Configuration.get('ROCKET_CHAT_ADMIN_TOKEN') as string,\n\t\tadminUser: Configuration.get('ROCKET_CHAT_ADMIN_USER') as string,\n\t\tadminPassword: Configuration.get('ROCKET_CHAT_ADMIN_PASSWORD') as string,\n\t}),\n\tLegacySchoolApiModule,\n\tVideoConferenceApiModule,\n\tOauthProviderApiModule,\n\tSharingApiModule,\n\tToolApiModule,\n\tUserLoginMigrationApiModule,\n\tBoardApiModule,\n\tGroupApiModule,\n\tTeamsApiModule,\n];\n\nexport const defaultMikroOrmOptions: MikroOrmModuleSyncOptions = {\n\tfindOneOrFailHandler: (entityName: string, where: Dictionary | IPrimaryKey) =>\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tnew NotFoundException(`The requested ${entityName}: ${where} has not been found.`),\n};\n\nconst setupSessions = (consumer: MiddlewareConsumer, redisClient: RedisClient | undefined, logger: LegacyLogger) => {\n\tconst sessionDuration: number = Configuration.get('SESSION__EXPIRES_SECONDS') as number;\n\n\tlet store: connectRedis.RedisStore | undefined;\n\tif (redisClient) {\n\t\tconst RedisStore: connectRedis.RedisStore = connectRedis(session);\n\t\tstore = new RedisStore({\n\t\t\tclient: redisClient,\n\t\t\tttl: sessionDuration,\n\t\t});\n\t} else {\n\t\tlogger.warn(\n\t\t\t'The RedisStore for sessions is not setup, since the environment variable REDIS_URI is not defined. Sessions are using the build-in MemoryStore. This should not be used in production!'\n\t\t);\n\t}\n\n\tconsumer\n\t\t.apply(\n\t\t\tsession({\n\t\t\t\tstore,\n\t\t\t\tsecret: Configuration.get('SESSION__SECRET') as string,\n\t\t\t\tresave: false,\n\t\t\t\tsaveUninitialized: false,\n\t\t\t\tname: Configuration.has('SESSION__NAME') ? (Configuration.get('SESSION__NAME') as string) : undefined,\n\t\t\t\tproxy: Configuration.has('SESSION__PROXY') ? (Configuration.get('SESSION__PROXY') as boolean) : undefined,\n\t\t\t\tcookie: {\n\t\t\t\t\tsecure: Configuration.get('SESSION__SECURE') as boolean,\n\t\t\t\t\tsameSite: Configuration.get('SESSION__SAME_SITE') as boolean | 'lax' | 'strict' | 'none',\n\t\t\t\t\thttpOnly: Configuration.get('SESSION__HTTP_ONLY') as boolean,\n\t\t\t\t\tmaxAge: sessionDuration * 1000,\n\t\t\t\t},\n\t\t\t})\n\t\t)\n\t\t.forRoutes('*');\n};\n\n/**\n * Server Module used for production\n */\n@Module({\n\timports: [\n\t\tRabbitMQWrapperModule,\n\t\t...serverModules,\n\t\tMikroOrmModule.forRoot({\n\t\t\t...defaultMikroOrmOptions,\n\t\t\ttype: 'mongo',\n\t\t\t// TODO add mongoose options as mongo options (see database.js)\n\t\t\tclientUrl: DB_URL,\n\t\t\tpassword: DB_PASSWORD,\n\t\t\tuser: DB_USERNAME,\n\t\t\tentities: ALL_ENTITIES,\n\n\t\t\t// debug: true, // use it for locally debugging of queries\n\t\t}),\n\t\tLoggerModule,\n\t\tRedisModule,\n\t],\n\tcontrollers: [ServerController],\n})\nexport class ServerModule implements NestModule {\n\tconstructor(\n\t\t@Inject(REDIS_CLIENT) private readonly redisClient: RedisClient | undefined,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tlogger.setContext(ServerModule.name);\n\t}\n\n\tconfigure(consumer: MiddlewareConsumer) {\n\t\tsetupSessions(consumer, this.redisClient, this.logger);\n\t}\n}\n\n/**\n * Server module used for testing.\n * Should have same modules than the @ServerModule while infrastucture Modules can be different.\n * Customizations:\n * - In Memory Database instead of external connection\n * // TODO add custom mail, rocketchat, and rabbitmq modules\n * // TODO use instead of ServerModule when NODE_ENV=test\n */\n@Module({\n\timports: [\n\t\t...serverModules,\n\t\tMongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions }),\n\t\tRabbitMQWrapperTestModule,\n\t\tLoggerModule,\n\t\tRedisModule,\n\t],\n\tcontrollers: [ServerController],\n})\nexport class ServerTestModule implements NestModule {\n\tconstructor(\n\t\t@Inject(REDIS_CLIENT) private readonly redisClient: RedisClient | undefined,\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tlogger.setContext(ServerTestModule.name);\n\t}\n\n\tconfigure(consumer: MiddlewareConsumer) {\n\t\tsetupSessions(consumer, undefined, this.logger);\n\t}\n\n\tstatic forRoot(options?: MongoDatabaseModuleOptions): DynamicModule {\n\t\treturn {\n\t\t\tmodule: ServerTestModule,\n\t\t\timports: [\n\t\t\t\t...serverModules,\n\t\t\t\tMongoMemoryDatabaseModule.forRoot({ ...defaultMikroOrmOptions, ...options }),\n\t\t\t\tRabbitMQWrapperTestModule,\n\t\t\t],\n\t\t\tcontrollers: [ServerController],\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SetHeightBodyParams.html":{"url":"classes/SetHeightBodyParams.html","title":"class - SetHeightBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SetHeightBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/board/set-height.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n height\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n height\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsPositive()@ApiProperty({required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/board/set-height.body.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsPositive } from 'class-validator';\n\nexport class SetHeightBodyParams {\n\t@IsPositive()\n\t@ApiProperty({\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\theight!: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/ShareToken.html":{"url":"entities/ShareToken.html","title":"entity - ShareToken","body":"\n \n\n\n\n\n\n\n\n Entities\n ShareToken\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/entity/share-token.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n _contextId\n \n \n \n _parentId\n \n \n \n Optional\n contextType\n \n \n \n \n Optional\n expiresAt\n \n \n \n parentType\n \n \n \n token\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n _contextId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'context', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n _parentId\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'parent'})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n contextType\n \n \n \n \n \n \n Type : ShareTokenContextType\n\n \n \n \n \n Decorators : \n \n \n @Enum({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Index({options: undefined})@Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : ShareTokenParentType\n\n \n \n \n \n Decorators : \n \n \n @Enum()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : ShareTokenString\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/entity/share-token.entity.ts:19\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, Property } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseEntityWithTimestamps } from '@shared/domain/entity/base.entity';\nimport { EntityId } from '@shared/domain/types/entity-id';\nimport { ShareTokenContextType, ShareTokenParentType, ShareTokenString } from '../domainobject/share-token.do';\n\nexport interface IShareTokenProperties {\n\ttoken: ShareTokenString;\n\tparentType: ShareTokenParentType;\n\tparentId: EntityId | ObjectId;\n\tcontextType?: ShareTokenContextType;\n\tcontextId?: EntityId | ObjectId;\n\texpiresAt?: Date;\n}\n\n@Entity({ tableName: 'sharetokens' })\nexport class ShareToken extends BaseEntityWithTimestamps {\n\t@Property()\n\ttoken: ShareTokenString;\n\n\t@Enum()\n\tparentType: ShareTokenParentType;\n\n\t@Property({ fieldName: 'parent' })\n\t_parentId: ObjectId;\n\n\tget parentId(): EntityId {\n\t\treturn this._parentId.toHexString();\n\t}\n\n\t@Enum({ nullable: true })\n\tcontextType?: ShareTokenContextType;\n\n\t@Property({ fieldName: 'context', nullable: true })\n\t_contextId?: ObjectId;\n\n\tget contextId(): EntityId | undefined {\n\t\treturn this._contextId?.toHexString();\n\t}\n\n\t@Index({ options: { expireAfterSeconds: 0 } })\n\t@Property({ nullable: true })\n\texpiresAt?: Date;\n\n\tconstructor(props: IShareTokenProperties) {\n\t\tsuper();\n\t\tthis.token = props.token;\n\t\tthis.parentType = props.parentType;\n\t\tthis._parentId = new ObjectId(props.parentId);\n\t\tthis.contextType = props.contextType;\n\t\tif (props.contextId !== undefined) {\n\t\t\tthis._contextId = new ObjectId(props.contextId);\n\t\t}\n\t\tthis.expiresAt = props.expiresAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenBodyParams.html":{"url":"classes/ShareTokenBodyParams.html","title":"class - ShareTokenBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n expiresInDays\n \n \n \n \n parentId\n \n \n \n \n parentType\n \n \n \n \n \n Optional\n schoolExclusive\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n expiresInDays\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @IsInt()@IsOptional()@IsPositive()@ApiProperty({description: 'when defined, the sharetoken will expire after the given number of days.', required: false, nullable: true, minimum: 1})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'the id of the object being shared.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : ShareTokenParentType\n\n \n \n \n \n Decorators : \n \n \n @IsEnum(ShareTokenParentType)@ApiProperty({description: 'the type of the object being shared', required: true, nullable: false, enum: ShareTokenParentType})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n schoolExclusive\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@IsOptional()@ApiProperty({description: 'when defined, the sharetoken will be usable exclusively by members of the users school.', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.body.params.ts:41\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean, IsEnum, IsInt, IsMongoId, IsOptional, IsPositive } from 'class-validator';\nimport { ShareTokenParentType } from '../../domainobject/share-token.do';\n\nexport class ShareTokenBodyParams {\n\t@IsEnum(ShareTokenParentType)\n\t@ApiProperty({\n\t\tdescription: 'the type of the object being shared',\n\t\trequired: true,\n\t\tnullable: false,\n\t\tenum: ShareTokenParentType,\n\t})\n\tparentType!: ShareTokenParentType;\n\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'the id of the object being shared.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tparentId!: string;\n\n\t@IsInt()\n\t@IsOptional()\n\t@IsPositive()\n\t@ApiProperty({\n\t\tdescription: 'when defined, the sharetoken will expire after the given number of days.',\n\t\trequired: false,\n\t\tnullable: true,\n\t\tminimum: 1,\n\t})\n\texpiresInDays?: number;\n\n\t@IsBoolean()\n\t@IsOptional()\n\t@ApiProperty({\n\t\tdescription: 'when defined, the sharetoken will be usable exclusively by members of the users school.',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tschoolExclusive?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenContextTypeMapper.html":{"url":"classes/ShareTokenContextTypeMapper.html","title":"class - ShareTokenContextTypeMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenContextTypeMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/context-type.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n \n \n \n mapToAllowedAuthorizationEntityType(type: ShareTokenContextType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/context-type.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ShareTokenContextType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizableReferenceType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { AuthorizableReferenceType } from '@src/modules/authorization';\nimport { ShareTokenContextType } from '../domainobject/share-token.do';\n\nexport class ShareTokenContextTypeMapper {\n\tstatic mapToAllowedAuthorizationEntityType(type: ShareTokenContextType): AuthorizableReferenceType {\n\t\tconst types: Map = new Map();\n\t\ttypes.set(ShareTokenContextType.School, AuthorizableReferenceType.School);\n\n\t\tconst res = types.get(type);\n\n\t\tif (!res) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\treturn res;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ShareTokenController.html":{"url":"controllers/ShareTokenController.html","title":"controller - ShareTokenController","body":"\n \n\n\n\n\n\n\n Controllers\n ShareTokenController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/share-token.controller.ts\n \n\n \n Prefix\n \n \n sharetoken\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createShareToken\n \n \n \n \n \n \n \n \n \n \n Async\n importShareToken\n \n \n \n \n \n \n \n \n Async\n lookupShareToken\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createShareToken\n \n \n \n \n \n \n \n createShareToken(currentUser: ICurrentUser, body: ShareTokenBodyParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Create a share token.'})@ApiResponse({status: 201, type: ShareTokenResponse})@ApiResponse({status: 400, type: ApiValidationError})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 500, type: InternalServerErrorException})@Post()\n \n \n\n \n \n Defined in apps/server/src/modules/sharing/controller/share-token.controller.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n ShareTokenBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importShareToken\n \n \n \n \n \n \n \n importShareToken(currentUser: ICurrentUser, urlParams: ShareTokenUrlParams, body: ShareTokenImportBodyParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Import a share token payload.'})@ApiResponse({status: 201, type: CopyApiResponse})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@ApiResponse({status: 500, type: InternalServerErrorException})@ApiResponse({status: 501, type: NotImplementedException})@Post(':token/import')@RequestTimeout(undefined.INCOMING_REQUEST_TIMEOUT_COPY_API)\n \n \n\n \n \n Defined in apps/server/src/modules/sharing/controller/share-token.controller.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n ShareTokenUrlParams\n \n\n \n No\n \n\n\n \n \n body\n \n ShareTokenImportBodyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n lookupShareToken\n \n \n \n \n \n \n \n lookupShareToken(currentUser: ICurrentUser, urlParams: ShareTokenUrlParams)\n \n \n\n \n \n Decorators : \n \n @ApiOperation({summary: 'Look up a share token.'})@ApiResponse({status: 200, type: ShareTokenInfoResponse})@ApiResponse({status: 403, type: ForbiddenException})@ApiResponse({status: 404, type: NotFoundException})@ApiResponse({status: 500, type: InternalServerErrorException})@Get(':token')\n \n \n\n \n \n Defined in apps/server/src/modules/sharing/controller/share-token.controller.ts:67\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n ShareTokenUrlParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBody,\n\tController,\n\tForbiddenException,\n\tGet,\n\tInternalServerErrorException,\n\tNotFoundException,\n\tNotImplementedException,\n\tParam,\n\tPost,\n} from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ApiValidationError, RequestTimeout } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CopyApiResponse, CopyMapper } from '@src/modules/copy-helper';\nimport { serverConfig } from '@src/modules/server/server.config';\nimport { ShareTokenInfoResponseMapper, ShareTokenResponseMapper } from '../mapper';\nimport { ShareTokenUC } from '../uc';\nimport {\n\tShareTokenBodyParams,\n\tShareTokenImportBodyParams,\n\tShareTokenInfoResponse,\n\tShareTokenResponse,\n\tShareTokenUrlParams,\n} from './dto';\n\n@ApiTags('ShareToken')\n@Authenticate('jwt')\n@Controller('sharetoken')\nexport class ShareTokenController {\n\tconstructor(private readonly shareTokenUC: ShareTokenUC) {}\n\n\t@ApiOperation({ summary: 'Create a share token.' })\n\t@ApiResponse({ status: 201, type: ShareTokenResponse })\n\t@ApiResponse({ status: 400, type: ApiValidationError })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Post()\n\tasync createShareToken(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: ShareTokenBodyParams\n\t): Promise {\n\t\tconst shareToken = await this.shareTokenUC.createShareToken(\n\t\t\tcurrentUser.userId,\n\t\t\t{\n\t\t\t\tparentType: body.parentType,\n\t\t\t\tparentId: body.parentId,\n\t\t\t},\n\t\t\t{\n\t\t\t\tschoolExclusive: body.schoolExclusive,\n\t\t\t\texpiresInDays: body.expiresInDays,\n\t\t\t}\n\t\t);\n\n\t\tconst response = ShareTokenResponseMapper.mapToResponse(shareToken);\n\n\t\treturn Promise.resolve(response);\n\t}\n\n\t@ApiOperation({ summary: 'Look up a share token.' })\n\t@ApiResponse({ status: 200, type: ShareTokenInfoResponse })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@Get(':token')\n\tasync lookupShareToken(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: ShareTokenUrlParams\n\t): Promise {\n\t\tconst shareTokenInfo = await this.shareTokenUC.lookupShareToken(currentUser.userId, urlParams.token);\n\n\t\tconst response = ShareTokenInfoResponseMapper.mapToResponse(shareTokenInfo);\n\n\t\treturn response;\n\t}\n\n\t@ApiOperation({ summary: 'Import a share token payload.' })\n\t@ApiResponse({ status: 201, type: CopyApiResponse })\n\t@ApiResponse({ status: 403, type: ForbiddenException })\n\t@ApiResponse({ status: 404, type: NotFoundException })\n\t@ApiResponse({ status: 500, type: InternalServerErrorException })\n\t@ApiResponse({ status: 501, type: NotImplementedException })\n\t@Post(':token/import')\n\t@RequestTimeout(serverConfig().INCOMING_REQUEST_TIMEOUT_COPY_API)\n\tasync importShareToken(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: ShareTokenUrlParams,\n\t\t@Body() body: ShareTokenImportBodyParams\n\t): Promise {\n\t\tconst copyStatus = await this.shareTokenUC.importShareToken(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.token,\n\t\t\tbody.newName,\n\t\t\tbody.destinationCourseId\n\t\t);\n\n\t\tconst response = CopyMapper.mapToResponse(copyStatus);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenDO.html":{"url":"classes/ShareTokenDO.html","title":"class - ShareTokenDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/domainobject/share-token.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n context\n \n \n Optional\n expiresAt\n \n \n payload\n \n \n token\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(domainObject: ShareTokenDO)\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:33\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n \n ShareTokenDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n context\n \n \n \n \n \n \n Type : ShareTokenContext\n\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n payload\n \n \n \n \n \n \n Type : ShareTokenPayload\n\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : ShareTokenString\n\n \n \n \n \n Defined in apps/server/src/modules/sharing/domainobject/share-token.do.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain/types';\nimport { BaseDO } from '@shared/domain/domainobject';\n\nexport enum ShareTokenParentType {\n\t'Course' = 'courses',\n\t'Task' = 'tasks',\n\t'Lesson' = 'lessons',\n}\n\nexport enum ShareTokenContextType {\n\t'School' = 'schools',\n}\n\nexport type ShareTokenString = string;\n\nexport type ShareTokenPayload = {\n\tparentType: ShareTokenParentType;\n\tparentId: EntityId;\n};\n\nexport type ShareTokenContext = {\n\tcontextType: ShareTokenContextType;\n\tcontextId: EntityId;\n};\n\nexport class ShareTokenDO extends BaseDO {\n\ttoken: ShareTokenString;\n\n\tpayload: ShareTokenPayload;\n\n\tcontext?: ShareTokenContext;\n\n\texpiresAt?: Date;\n\n\tconstructor(domainObject: ShareTokenDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.token = domainObject.token;\n\t\tthis.payload = domainObject.payload;\n\t\tthis.context = domainObject.context;\n\t\tthis.expiresAt = domainObject.expiresAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenFactory.html":{"url":"classes/ShareTokenFactory.html","title":"class - ShareTokenFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/share-token.do.factory.ts\n \n\n\n\n \n Extends\n \n \n Factory\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n withId\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withId\n \n \n \n \n \n \nwithId(id?: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/share-token.do.factory.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ShareTokenDO, ShareTokenParentType } from '@src/modules/sharing/domainobject/share-token.do';\nimport { ObjectId } from 'bson';\nimport { Factory } from 'fishery';\n\nclass ShareTokenFactory extends Factory {\n\t/* istanbul ignore next */\n\twithId(id?: EntityId) {\n\t\treturn this.params({ id: new ObjectId(id).toHexString() });\n\t}\n}\n\nexport const shareTokenFactory = ShareTokenFactory.define(({ sequence }) => {\n\treturn {\n\t\ttoken: `share-token-${sequence}`,\n\t\tpayload: {\n\t\t\tparentType: ShareTokenParentType.Course,\n\t\t\tparentId: new ObjectId().toHexString(),\n\t\t},\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenImportBodyParams.html":{"url":"classes/ShareTokenImportBodyParams.html","title":"class - ShareTokenImportBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenImportBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n destinationCourseId\n \n \n \n \n \n newName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n destinationCourseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@ApiProperty({description: 'Id of the course to which the lesson/task will be added', required: false, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n newName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'the new name of the imported object.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-import.body.params.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { SanitizeHtml } from '@shared/controller';\nimport { IsOptional, IsString } from 'class-validator';\n\nexport class ShareTokenImportBodyParams {\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'the new name of the imported object.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tnewName!: string;\n\n\t@IsOptional()\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'Id of the course to which the lesson/task will be added',\n\t\trequired: false,\n\t\tnullable: true,\n\t})\n\tdestinationCourseId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ShareTokenInfoDto.html":{"url":"interfaces/ShareTokenInfoDto.html","title":"interface - ShareTokenInfoDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ShareTokenInfoDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/uc/dto/share-token-info.dto.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentName\n \n \n \n \n parentType\n \n \n \n \n token\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n parentName\n \n \n \n \n \n \n \n \n parentName: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n \n \n parentType: ShareTokenParentType\n\n \n \n\n\n \n \n Type : ShareTokenParentType\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n \n \n token: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { ShareTokenParentType } from '../../domainobject/share-token.do';\n\nexport interface ShareTokenInfoDto {\n\ttoken: string;\n\tparentType: ShareTokenParentType;\n\tparentName: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenInfoResponse.html":{"url":"classes/ShareTokenInfoResponse.html","title":"class - ShareTokenInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n parentName\n \n \n \n parentType\n \n \n \n token\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: ShareTokenInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n ShareTokenInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n parentName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : ShareTokenParentType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ShareTokenParentType})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-info.reponse.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { ShareTokenParentType } from '../../domainobject/share-token.do';\n\nexport class ShareTokenInfoResponse {\n\tconstructor({ token, parentType, parentName }: ShareTokenInfoResponse) {\n\t\tthis.token = token;\n\t\tthis.parentType = parentType;\n\t\tthis.parentName = parentName;\n\t}\n\n\t@ApiProperty()\n\ttoken: string;\n\n\t@ApiProperty({ enum: ShareTokenParentType })\n\tparentType: ShareTokenParentType;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tparentName: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenInfoResponseMapper.html":{"url":"classes/ShareTokenInfoResponseMapper.html","title":"class - ShareTokenInfoResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenInfoResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/share-token-info-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(shareTokenInfo: ShareTokenInfoDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/share-token-info-response.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n shareTokenInfo\n \n ShareTokenInfoDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ShareTokenInfoResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ShareTokenInfoResponse } from '../controller/dto';\nimport { ShareTokenInfoDto } from '../uc/dto';\n\nexport class ShareTokenInfoResponseMapper {\n\tstatic mapToResponse(shareTokenInfo: ShareTokenInfoDto): ShareTokenInfoResponse {\n\t\tconst dto = new ShareTokenInfoResponse({\n\t\t\ttoken: shareTokenInfo.token,\n\t\t\tparentType: shareTokenInfo.parentType,\n\t\t\tparentName: shareTokenInfo.parentName,\n\t\t});\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenParentTypeMapper.html":{"url":"classes/ShareTokenParentTypeMapper.html","title":"class - ShareTokenParentTypeMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenParentTypeMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/parent-type.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToAllowedAuthorizationEntityType\n \n \n \n \n \n \n \n mapToAllowedAuthorizationEntityType(type: ShareTokenParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/parent-type.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n ShareTokenParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthorizableReferenceType\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotImplementedException } from '@nestjs/common';\nimport { AuthorizableReferenceType } from '@src/modules/authorization';\nimport { ShareTokenParentType } from '../domainobject/share-token.do';\n\nexport class ShareTokenParentTypeMapper {\n\tstatic mapToAllowedAuthorizationEntityType(type: ShareTokenParentType): AuthorizableReferenceType {\n\t\tconst types: Map = new Map();\n\t\ttypes.set(ShareTokenParentType.Course, AuthorizableReferenceType.Course);\n\t\ttypes.set(ShareTokenParentType.Lesson, AuthorizableReferenceType.Lesson);\n\t\ttypes.set(ShareTokenParentType.Task, AuthorizableReferenceType.Task);\n\n\t\tconst res = types.get(type);\n\n\t\tif (!res) {\n\t\t\tthrow new NotImplementedException();\n\t\t}\n\t\treturn res;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenPayloadResponse.html":{"url":"classes/ShareTokenPayloadResponse.html","title":"class - ShareTokenPayloadResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenPayloadResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token-payload.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n parentId\n \n \n \n parentType\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(payload: ShareTokenPayload)\n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-payload.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n \n ShareTokenPayload\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n parentId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-payload.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n parentType\n \n \n \n \n \n \n Type : ShareTokenParentType\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ShareTokenParentType})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token-payload.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ShareTokenParentType, ShareTokenPayload } from '../../domainobject/share-token.do';\n\nexport class ShareTokenPayloadResponse {\n\tconstructor(payload: ShareTokenPayload) {\n\t\tthis.parentType = payload.parentType;\n\t\tthis.parentId = payload.parentId;\n\t}\n\n\t@ApiProperty({ enum: ShareTokenParentType })\n\tparentType: ShareTokenParentType;\n\n\t@ApiProperty()\n\tparentId: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ShareTokenRepo.html":{"url":"injectables/ShareTokenRepo.html","title":"injectable - ShareTokenRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ShareTokenRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/repo/share-token.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findOneByToken\n \n \n Protected\n mapDOToEntityProperties\n \n \n Protected\n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IShareTokenProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:13\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IShareTokenProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ShareToken\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findOneByToken\n \n \n \n \n \n \n \n findOneByToken(token: ShareTokenString)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/repo/share-token.repo.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n ShareTokenString\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(domainObject: ShareTokenDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:46\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n ShareTokenDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IShareTokenProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: ShareToken)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:25\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n ShareToken\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ShareTokenDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/modules/sharing/repo/share-token.repo.ts:9\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { BaseDORepo } from '@shared/repo/base.do.repo';\nimport { ShareTokenContext, ShareTokenDO, ShareTokenPayload, ShareTokenString } from '../domainobject/share-token.do';\nimport { IShareTokenProperties, ShareToken } from '../entity/share-token.entity';\n\n@Injectable()\nexport class ShareTokenRepo extends BaseDORepo {\n\tget entityName(): EntityName {\n\t\treturn ShareToken;\n\t}\n\n\tentityFactory(props: IShareTokenProperties): ShareToken {\n\t\treturn new ShareToken(props);\n\t}\n\n\tasync findOneByToken(token: ShareTokenString): Promise {\n\t\tconst entity = await this._em.findOneOrFail(ShareToken, { token });\n\n\t\tconst shareToken = this.mapEntityToDO(entity);\n\n\t\treturn shareToken;\n\t}\n\n\tprotected mapEntityToDO(entity: ShareToken): ShareTokenDO {\n\t\tconst payload: ShareTokenPayload = {\n\t\t\tparentType: entity.parentType,\n\t\t\tparentId: entity.parentId,\n\t\t};\n\n\t\tconst context: ShareTokenContext | undefined =\n\t\t\tentity.contextType && entity.contextId\n\t\t\t\t? { contextType: entity.contextType, contextId: entity.contextId }\n\t\t\t\t: undefined;\n\n\t\tconst domainObject = new ShareTokenDO({\n\t\t\ttoken: entity.token,\n\t\t\tpayload,\n\t\t\tcontext,\n\t\t\texpiresAt: entity.expiresAt,\n\t\t});\n\n\t\treturn domainObject;\n\t}\n\n\tprotected mapDOToEntityProperties(domainObject: ShareTokenDO): IShareTokenProperties {\n\t\tconst properties: IShareTokenProperties = {\n\t\t\ttoken: domainObject.token,\n\t\t\tparentType: domainObject.payload.parentType,\n\t\t\tparentId: domainObject.payload.parentId,\n\t\t\tcontextType: domainObject.context?.contextType,\n\t\t\tcontextId: domainObject.context?.contextId,\n\t\t\texpiresAt: domainObject.expiresAt,\n\t\t};\n\n\t\treturn properties;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenResponse.html":{"url":"classes/ShareTokenResponse.html","title":"class - ShareTokenResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n payload\n \n \n \n token\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: ShareTokenResponse)\n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.response.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n ShareTokenResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n expiresAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.response.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n payload\n \n \n \n \n \n \n Type : ShareTokenPayloadResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.response.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.response.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ShareTokenPayloadResponse } from './share-token-payload.response';\n\nexport class ShareTokenResponse {\n\tconstructor({ token, payload, expiresAt }: ShareTokenResponse) {\n\t\tthis.token = token;\n\t\tthis.payload = new ShareTokenPayloadResponse(payload);\n\t\tthis.expiresAt = expiresAt;\n\t}\n\n\t@ApiProperty()\n\ttoken: string;\n\n\t@ApiProperty()\n\tpayload: ShareTokenPayloadResponse;\n\n\t@ApiPropertyOptional()\n\texpiresAt?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenResponseMapper.html":{"url":"classes/ShareTokenResponseMapper.html","title":"class - ShareTokenResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/mapper/share-token-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(shareToken: ShareTokenDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/mapper/share-token-response.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n shareToken\n \n ShareTokenDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ShareTokenResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ShareTokenDO } from '../domainobject/share-token.do';\nimport { ShareTokenResponse } from '../controller/dto';\n\nexport class ShareTokenResponseMapper {\n\tstatic mapToResponse(shareToken: ShareTokenDO): ShareTokenResponse {\n\t\tconst dto = new ShareTokenResponse({\n\t\t\ttoken: shareToken.token,\n\t\t\tpayload: shareToken.payload,\n\t\t\texpiresAt: shareToken.expiresAt,\n\t\t});\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ShareTokenService.html":{"url":"injectables/ShareTokenService.html","title":"injectable - ShareTokenService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ShareTokenService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/service/share-token.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkExpired\n \n \n Async\n createToken\n \n \n Async\n lookupToken\n \n \n Async\n lookupTokenWithParentName\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(tokenGenerator: TokenGenerator, shareTokenRepo: ShareTokenRepo, courseService: CourseService, lessonService: LessonService, taskService: TaskService)\n \n \n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n tokenGenerator\n \n \n TokenGenerator\n \n \n \n No\n \n \n \n \n shareTokenRepo\n \n \n ShareTokenRepo\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n lessonService\n \n \n LessonService\n \n \n \n No\n \n \n \n \n taskService\n \n \n TaskService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkExpired\n \n \n \n \n \n \n \n checkExpired(shareToken: ShareTokenDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n shareToken\n \n ShareTokenDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createToken\n \n \n \n \n \n \n \n createToken(payload: ShareTokenPayload, options?: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n payload\n \n ShareTokenPayload\n \n\n \n No\n \n\n\n \n \n options\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n lookupToken\n \n \n \n \n \n \n \n lookupToken(token: ShareTokenString)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n ShareTokenString\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n lookupTokenWithParentName\n \n \n \n \n \n \n \n lookupTokenWithParentName(token: ShareTokenString)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/share-token.service.ts:50\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n token\n \n ShareTokenString\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LessonService } from '@src/modules/lesson/service';\nimport { TaskService } from '@src/modules/task/service';\nimport {\n\tShareTokenContext,\n\tShareTokenDO,\n\tShareTokenParentType,\n\tShareTokenPayload,\n\tShareTokenString,\n} from '../domainobject/share-token.do';\nimport { ShareTokenRepo } from '../repo/share-token.repo';\nimport { TokenGenerator } from './token-generator.service';\n\n@Injectable()\nexport class ShareTokenService {\n\tconstructor(\n\t\tprivate readonly tokenGenerator: TokenGenerator,\n\t\tprivate readonly shareTokenRepo: ShareTokenRepo,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly lessonService: LessonService,\n\t\tprivate readonly taskService: TaskService\n\t) {}\n\n\tasync createToken(\n\t\tpayload: ShareTokenPayload,\n\t\toptions?: { context?: ShareTokenContext; expiresAt?: Date }\n\t): Promise {\n\t\tconst token = this.tokenGenerator.generateShareToken();\n\t\tconst shareToken = new ShareTokenDO({\n\t\t\ttoken,\n\t\t\tpayload,\n\t\t\tcontext: options?.context,\n\t\t\texpiresAt: options?.expiresAt,\n\t\t});\n\n\t\tawait this.shareTokenRepo.save(shareToken);\n\n\t\treturn shareToken;\n\t}\n\n\tasync lookupToken(token: ShareTokenString): Promise {\n\t\tconst shareToken = await this.shareTokenRepo.findOneByToken(token);\n\n\t\tthis.checkExpired(shareToken);\n\n\t\treturn shareToken;\n\t}\n\n\tasync lookupTokenWithParentName(token: ShareTokenString): Promise {\n\t\tconst shareToken = await this.lookupToken(token);\n\n\t\tlet parentName = '';\n\t\tswitch (shareToken.payload.parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\tparentName = (await this.courseService.findById(shareToken.payload.parentId)).name;\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\tparentName = (await this.lessonService.findById(shareToken.payload.parentId)).name;\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\tparentName = (await this.taskService.findById(shareToken.payload.parentId)).name;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t}\n\n\t\treturn { shareToken, parentName };\n\t}\n\n\tprivate checkExpired(shareToken: ShareTokenDO) {\n\t\tif (shareToken.expiresAt != null && shareToken.expiresAt \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ShareTokenUC.html":{"url":"injectables/ShareTokenUC.html","title":"injectable - ShareTokenUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ShareTokenUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/uc/share-token.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkContextReadPermission\n \n \n Private\n Async\n checkCreatePermission\n \n \n Private\n checkFeatureEnabled\n \n \n Private\n Async\n checkParentWritePermission\n \n \n Private\n Async\n copyCourse\n \n \n Private\n Async\n copyLesson\n \n \n Private\n Async\n copyTask\n \n \n Async\n createShareToken\n \n \n Async\n importShareToken\n \n \n Async\n lookupShareToken\n \n \n Private\n nowPlusDays\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(shareTokenService: ShareTokenService, authorizationService: AuthorizationService, courseCopyService: CourseCopyService, lessonCopyService: LessonCopyService, courseService: CourseService, taskCopyService: TaskCopyService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n shareTokenService\n \n \n ShareTokenService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n courseCopyService\n \n \n CourseCopyService\n \n \n \n No\n \n \n \n \n lessonCopyService\n \n \n LessonCopyService\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n taskCopyService\n \n \n TaskCopyService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkContextReadPermission\n \n \n \n \n \n \n \n checkContextReadPermission(userId: EntityId, context: ShareTokenContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:186\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n context\n \n ShareTokenContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n checkCreatePermission\n \n \n \n \n \n \n \n checkCreatePermission(userId: EntityId, parentType: ShareTokenParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:194\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentType\n \n ShareTokenParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n checkFeatureEnabled\n \n \n \n \n \n \n \n checkFeatureEnabled(parentType: ShareTokenParentType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:221\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentType\n \n ShareTokenParentType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n checkParentWritePermission\n \n \n \n \n \n \n \n checkParentWritePermission(userId: EntityId, payload: ShareTokenPayload)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:164\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n payload\n \n ShareTokenPayload\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyCourse\n \n \n \n \n \n \n \n copyCourse(userId: EntityId, courseId: string, newName: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n string\n \n\n \n No\n \n\n\n \n \n newName\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyLesson\n \n \n \n \n \n \n \n copyLesson(userId: string, lessonId: string, courseId: string, copyName?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:137\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n lessonId\n \n string\n \n\n \n No\n \n\n\n \n \n courseId\n \n string\n \n\n \n No\n \n\n\n \n \n copyName\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(userId: string, originalTaskId: string, courseId: string, copyName?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:148\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n originalTaskId\n \n string\n \n\n \n No\n \n\n\n \n \n courseId\n \n string\n \n\n \n No\n \n\n\n \n \n copyName\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createShareToken\n \n \n \n \n \n \n \n createShareToken(userId: EntityId, payload: ShareTokenPayload, options?: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n payload\n \n ShareTokenPayload\n \n\n \n No\n \n\n\n \n \n options\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n importShareToken\n \n \n \n \n \n \n \n importShareToken(userId: EntityId, token: string, newName: string, destinationCourseId?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n newName\n \n string\n \n\n \n No\n \n\n\n \n \n destinationCourseId\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n lookupShareToken\n \n \n \n \n \n \n \n lookupShareToken(userId: EntityId, token: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:65\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n token\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n nowPlusDays\n \n \n \n \n \n \n \n nowPlusDays(days: number)\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/uc/share-token.uc.ts:215\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n days\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { BadRequestException, Injectable, InternalServerErrorException, NotImplementedException } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Action, AuthorizationService } from '@src/modules/authorization';\nimport { CopyStatus } from '@src/modules/copy-helper';\nimport { CourseCopyService } from '@src/modules/learnroom';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LessonCopyService } from '@src/modules/lesson/service';\nimport { TaskCopyService } from '@src/modules/task/service';\nimport {\n\tShareTokenContext,\n\tShareTokenContextType,\n\tShareTokenDO,\n\tShareTokenParentType,\n\tShareTokenPayload,\n} from '../domainobject/share-token.do';\nimport { ShareTokenContextTypeMapper, ShareTokenParentTypeMapper } from '../mapper';\nimport { ShareTokenService } from '../service';\nimport { ShareTokenInfoDto } from './dto';\n\n@Injectable()\nexport class ShareTokenUC {\n\tconstructor(\n\t\tprivate readonly shareTokenService: ShareTokenService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly courseCopyService: CourseCopyService,\n\t\tprivate readonly lessonCopyService: LessonCopyService,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly taskCopyService: TaskCopyService,\n\n\t\tprivate readonly logger: LegacyLogger\n\t) {\n\t\tthis.logger.setContext(ShareTokenUC.name);\n\t}\n\n\tasync createShareToken(\n\t\tuserId: EntityId,\n\t\tpayload: ShareTokenPayload,\n\t\toptions?: { schoolExclusive?: boolean; expiresInDays?: number }\n\t): Promise {\n\t\tthis.checkFeatureEnabled(payload.parentType);\n\n\t\tthis.logger.debug({ action: 'createShareToken', userId, payload, options });\n\n\t\tawait this.checkParentWritePermission(userId, payload);\n\n\t\tconst serviceOptions: { context?: ShareTokenContext; expiresAt?: Date } = {};\n\t\tif (options?.schoolExclusive) {\n\t\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\t\tserviceOptions.context = {\n\t\t\t\tcontextType: ShareTokenContextType.School,\n\t\t\t\tcontextId: user.school.id,\n\t\t\t};\n\t\t\tawait this.checkContextReadPermission(userId, serviceOptions.context);\n\t\t}\n\t\tif (options?.expiresInDays) {\n\t\t\tserviceOptions.expiresAt = this.nowPlusDays(options.expiresInDays);\n\t\t}\n\n\t\tconst shareToken = await this.shareTokenService.createToken(payload, serviceOptions);\n\t\treturn shareToken;\n\t}\n\n\tasync lookupShareToken(userId: EntityId, token: string): Promise {\n\t\tthis.logger.debug({ action: 'lookupShareToken', userId, token });\n\n\t\tconst { shareToken, parentName } = await this.shareTokenService.lookupTokenWithParentName(token);\n\n\t\tthis.checkFeatureEnabled(shareToken.payload.parentType);\n\n\t\tawait this.checkCreatePermission(userId, shareToken.payload.parentType);\n\n\t\tif (shareToken.context) {\n\t\t\tawait this.checkContextReadPermission(userId, shareToken.context);\n\t\t}\n\n\t\tconst shareTokenInfo: ShareTokenInfoDto = {\n\t\t\ttoken,\n\t\t\tparentType: shareToken.payload.parentType,\n\t\t\tparentName,\n\t\t};\n\n\t\treturn shareTokenInfo;\n\t}\n\n\tasync importShareToken(\n\t\tuserId: EntityId,\n\t\ttoken: string,\n\t\tnewName: string,\n\t\tdestinationCourseId?: string\n\t): Promise {\n\t\tthis.logger.debug({ action: 'importShareToken', userId, token, newName });\n\n\t\tconst shareToken = await this.shareTokenService.lookupToken(token);\n\n\t\tthis.checkFeatureEnabled(shareToken.payload.parentType);\n\n\t\tif (shareToken.context) {\n\t\t\tawait this.checkContextReadPermission(userId, shareToken.context);\n\t\t}\n\n\t\tawait this.checkCreatePermission(userId, shareToken.payload.parentType);\n\n\t\tlet result: CopyStatus;\n\t\tswitch (shareToken.payload.parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\tresult = await this.copyCourse(userId, shareToken.payload.parentId, newName);\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\tif (destinationCourseId === undefined) {\n\t\t\t\t\tthrow new BadRequestException('Destination course id is required to copy lesson');\n\t\t\t\t}\n\t\t\t\tresult = await this.copyLesson(userId, shareToken.payload.parentId, destinationCourseId, newName);\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\tif (destinationCourseId === undefined) {\n\t\t\t\t\tthrow new BadRequestException('Destination course id is required to copy task');\n\t\t\t\t}\n\t\t\t\tresult = await this.copyTask(userId, shareToken.payload.parentId, destinationCourseId, newName);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NotImplementedException('Copy not implemented');\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate async copyCourse(userId: EntityId, courseId: string, newName: string): Promise {\n\t\treturn this.courseCopyService.copyCourse({\n\t\t\tuserId,\n\t\t\tcourseId,\n\t\t\tnewName,\n\t\t});\n\t}\n\n\tprivate async copyLesson(userId: string, lessonId: string, courseId: string, copyName?: string): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst destinationCourse = await this.courseService.findById(courseId);\n\t\treturn this.lessonCopyService.copyLesson({\n\t\t\tuser,\n\t\t\toriginalLessonId: lessonId,\n\t\t\tdestinationCourse,\n\t\t\tcopyName,\n\t\t});\n\t}\n\n\tprivate async copyTask(\n\t\tuserId: string,\n\t\toriginalTaskId: string,\n\t\tcourseId: string,\n\t\tcopyName?: string\n\t): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst destinationCourse = await this.courseService.findById(courseId);\n\t\treturn this.taskCopyService.copyTask({\n\t\t\tuser,\n\t\t\toriginalTaskId,\n\t\t\tdestinationCourse,\n\t\t\tcopyName,\n\t\t});\n\t}\n\n\tprivate async checkParentWritePermission(userId: EntityId, payload: ShareTokenPayload) {\n\t\tconst allowedParentType = ShareTokenParentTypeMapper.mapToAllowedAuthorizationEntityType(payload.parentType);\n\n\t\tlet requiredPermissions: Permission[] = [];\n\t\t// eslint-disable-next-line default-case\n\t\tswitch (payload.parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\trequiredPermissions = [Permission.COURSE_CREATE];\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\trequiredPermissions = [Permission.TOPIC_CREATE];\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\trequiredPermissions = [Permission.HOMEWORK_CREATE];\n\t\t}\n\n\t\tawait this.authorizationService.checkPermissionByReferences(userId, allowedParentType, payload.parentId, {\n\t\t\taction: Action.write,\n\t\t\trequiredPermissions,\n\t\t});\n\t}\n\n\tprivate async checkContextReadPermission(userId: EntityId, context: ShareTokenContext) {\n\t\tconst allowedContextType = ShareTokenContextTypeMapper.mapToAllowedAuthorizationEntityType(context.contextType);\n\t\tawait this.authorizationService.checkPermissionByReferences(userId, allowedContextType, context.contextId, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [],\n\t\t});\n\t}\n\n\tprivate async checkCreatePermission(userId: EntityId, parentType: ShareTokenParentType) {\n\t\t// checks if parent type is supported\n\t\tShareTokenParentTypeMapper.mapToAllowedAuthorizationEntityType(parentType);\n\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tlet requiredPermissions: Permission[] = [];\n\t\t// eslint-disable-next-line default-case\n\t\tswitch (parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\trequiredPermissions = [Permission.COURSE_CREATE];\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\trequiredPermissions = [Permission.TOPIC_CREATE];\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\trequiredPermissions = [Permission.HOMEWORK_CREATE];\n\t\t}\n\t\tthis.authorizationService.checkAllPermissions(user, requiredPermissions);\n\t}\n\n\tprivate nowPlusDays(days: number) {\n\t\tconst date = new Date();\n\t\tdate.setDate(date.getDate() + days);\n\t\treturn date;\n\t}\n\n\tprivate checkFeatureEnabled(parentType: ShareTokenParentType) {\n\t\tswitch (parentType) {\n\t\t\tcase ShareTokenParentType.Course:\n\t\t\t\tif (!(Configuration.get('FEATURE_COURSE_SHARE_NEW') as boolean)) {\n\t\t\t\t\tthrow new InternalServerErrorException('Import Course Feature not enabled');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Lesson:\n\t\t\t\tif (!(Configuration.get('FEATURE_LESSON_SHARE') as boolean)) {\n\t\t\t\t\tthrow new InternalServerErrorException('Import Lesson Feature not enabled');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ShareTokenParentType.Task:\n\t\t\t\tif (!(Configuration.get('FEATURE_TASK_SHARE') as boolean)) {\n\t\t\t\t\tthrow new InternalServerErrorException('Import Task Feature not enabled');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new NotImplementedException('Import Feature not implemented');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ShareTokenUrlParams.html":{"url":"classes/ShareTokenUrlParams.html","title":"class - ShareTokenUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ShareTokenUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/controller/dto/share-token.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n token\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n token\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@ApiProperty({description: 'The token that identifies the shared object', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/sharing/controller/dto/share-token.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsString } from 'class-validator';\n\nexport class ShareTokenUrlParams {\n\t@IsString()\n\t@ApiProperty({\n\t\tdescription: 'The token that identifies the shared object',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttoken!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SharingApiModule.html":{"url":"modules/SharingApiModule.html","title":"module - SharingApiModule","body":"\n \n\n\n\n\n Modules\n SharingApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SharingApiModule\n\n\n\ncluster_SharingApiModule_imports\n\n\n\ncluster_SharingApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nSharingApiModule\n\nSharingApiModule\n\nSharingApiModule -->\n\nAuthorizationModule->SharingApiModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nSharingApiModule -->\n\nLearnroomModule->SharingApiModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nSharingApiModule -->\n\nLessonModule->SharingApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nSharingApiModule -->\n\nLoggerModule->SharingApiModule\n\n\n\n\n\nSharingModule\n\nSharingModule\n\nSharingApiModule -->\n\nSharingModule->SharingApiModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nSharingApiModule -->\n\nTaskModule->SharingApiModule\n\n\n\n\n\nShareTokenUC\n\nShareTokenUC\n\nSharingApiModule -->\n\nShareTokenUC->SharingApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/sharing/sharing.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ShareTokenUC\n \n \n \n \n Controllers\n \n \n ShareTokenController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LearnroomModule\n \n \n LessonModule\n \n \n LoggerModule\n \n \n SharingModule\n \n \n TaskModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ShareTokenController } from './controller/share-token.controller';\nimport { ShareTokenUC } from './uc';\nimport { ShareTokenService, TokenGenerator } from './service';\nimport { ShareTokenRepo } from './repo/share-token.repo';\nimport { LessonModule } from '../lesson';\nimport { LearnroomModule } from '../learnroom';\nimport { TaskModule } from '../task';\n\n@Module({\n\timports: [AuthorizationModule, LoggerModule, LearnroomModule, LessonModule, TaskModule],\n\tcontrollers: [],\n\tproviders: [ShareTokenService, TokenGenerator, ShareTokenRepo],\n\texports: [ShareTokenService],\n})\nexport class SharingModule {}\n\n@Module({\n\timports: [SharingModule, AuthorizationModule, LearnroomModule, LessonModule, TaskModule, LoggerModule],\n\tcontrollers: [ShareTokenController],\n\tproviders: [ShareTokenUC],\n})\nexport class SharingApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SharingModule.html":{"url":"modules/SharingModule.html","title":"module - SharingModule","body":"\n \n\n\n\n\n Modules\n SharingModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SharingModule\n\n\n\ncluster_SharingModule_exports\n\n\n\ncluster_SharingModule_providers\n\n\n\ncluster_SharingModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nSharingModule\n\nSharingModule\n\nSharingModule -->\n\nAuthorizationModule->SharingModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nSharingModule -->\n\nLearnroomModule->SharingModule\n\n\n\n\n\nLessonModule\n\nLessonModule\n\nSharingModule -->\n\nLessonModule->SharingModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nSharingModule -->\n\nLoggerModule->SharingModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nSharingModule -->\n\nTaskModule->SharingModule\n\n\n\n\n\nShareTokenService \n\nShareTokenService \n\nShareTokenService -->\n\nSharingModule->ShareTokenService \n\n\n\n\n\nShareTokenRepo\n\nShareTokenRepo\n\nSharingModule -->\n\nShareTokenRepo->SharingModule\n\n\n\n\n\nShareTokenService\n\nShareTokenService\n\nSharingModule -->\n\nShareTokenService->SharingModule\n\n\n\n\n\nTokenGenerator\n\nTokenGenerator\n\nSharingModule -->\n\nTokenGenerator->SharingModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/sharing/sharing.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ShareTokenRepo\n \n \n ShareTokenService\n \n \n TokenGenerator\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n LearnroomModule\n \n \n LessonModule\n \n \n LoggerModule\n \n \n TaskModule\n \n \n \n \n Exports\n \n \n ShareTokenService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { ShareTokenController } from './controller/share-token.controller';\nimport { ShareTokenUC } from './uc';\nimport { ShareTokenService, TokenGenerator } from './service';\nimport { ShareTokenRepo } from './repo/share-token.repo';\nimport { LessonModule } from '../lesson';\nimport { LearnroomModule } from '../learnroom';\nimport { TaskModule } from '../task';\n\n@Module({\n\timports: [AuthorizationModule, LoggerModule, LearnroomModule, LessonModule, TaskModule],\n\tcontrollers: [],\n\tproviders: [ShareTokenService, TokenGenerator, ShareTokenRepo],\n\texports: [ShareTokenService],\n})\nexport class SharingModule {}\n\n@Module({\n\timports: [SharingModule, AuthorizationModule, LearnroomModule, LessonModule, TaskModule, LoggerModule],\n\tcontrollers: [ShareTokenController],\n\tproviders: [ShareTokenUC],\n})\nexport class SharingApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SingleColumnBoardResponse.html":{"url":"classes/SingleColumnBoardResponse.html","title":"class - SingleColumnBoardResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SingleColumnBoardResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n displayColor\n \n \n \n elements\n \n \n \n isArchived\n \n \n \n roomId\n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SingleColumnBoardResponse)\n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SingleColumnBoardResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Color of the Board'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n elements\n \n \n \n \n \n \n Type : BoardElementResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined, description: 'Array of board specific tasks or lessons with matching type property'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n isArchived\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Boolean if the room this board belongs to is archived'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n roomId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The id of the room this board belongs to', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @DecodeHtmlEntities()@ApiProperty({description: 'Title of the Board'})\n \n \n \n \n \n Defined in apps/server/src/modules/learnroom/controller/dto/single-column-board/board.response.ts:25\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { DecodeHtmlEntities } from '@shared/controller';\nimport { BoardElementResponse } from './board-element.response';\n\n// TODO: this and DashboardResponse should be combined\nexport class SingleColumnBoardResponse {\n\tconstructor({ roomId, title, displayColor, elements, isArchived }: SingleColumnBoardResponse) {\n\t\tthis.roomId = roomId;\n\t\tthis.title = title;\n\t\tthis.displayColor = displayColor;\n\t\tthis.elements = elements;\n\t\tthis.isArchived = isArchived;\n\t}\n\n\t@ApiProperty({\n\t\tdescription: 'The id of the room this board belongs to',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\troomId: string;\n\n\t@DecodeHtmlEntities()\n\t@ApiProperty({\n\t\tdescription: 'Title of the Board',\n\t})\n\ttitle: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Color of the Board',\n\t})\n\tdisplayColor: string;\n\n\t@ApiProperty({\n\t\ttype: [BoardElementResponse],\n\t\tdescription: 'Array of board specific tasks or lessons with matching type property',\n\t})\n\telements: BoardElementResponse[];\n\n\t@ApiProperty({\n\t\tdescription: 'Boolean if the room this board belongs to is archived',\n\t})\n\tisArchived: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SingleFileParams.html":{"url":"classes/SingleFileParams.html","title":"class - SingleFileParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SingleFileParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n fileRecordId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n fileRecordId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/files-storage/controller/dto/file-storage.params.ts:71\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { EntityId } from '@shared/domain';\nimport { Allow, IsBoolean, IsEnum, IsMongoId, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { FileRecordParentType } from '../../entity';\nimport { PreviewOutputMimeTypes, PreviewWidth } from '../../interface';\n\nexport class FileRecordParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tschoolId!: EntityId;\n\n\t@ApiProperty()\n\t@IsMongoId()\n\tparentId!: EntityId;\n\n\t@ApiProperty({ enum: FileRecordParentType, enumName: 'FileRecordParentType' })\n\t@IsEnum(FileRecordParentType)\n\tparentType!: FileRecordParentType;\n}\n\nexport class FileUrlParams {\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\turl!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n\n\t@ApiProperty({ type: 'string' })\n\t@Allow()\n\theaders?: Record;\n}\n\nexport class FileParams {\n\t@ApiProperty({ type: 'string', format: 'binary' })\n\t@Allow()\n\tfile!: string;\n}\n\nexport class DownloadFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileName!: string;\n}\n\nexport class ScanResultParams {\n\t@ApiProperty()\n\t@Allow()\n\tvirus_detected?: boolean;\n\n\t@ApiProperty()\n\t@Allow()\n\tvirus_signature?: string;\n\n\t@ApiProperty()\n\t@Allow()\n\terror?: string;\n}\n\nexport class SingleFileParams {\n\t@ApiProperty()\n\t@IsMongoId()\n\tfileRecordId!: EntityId;\n}\n\nexport class RenameFileParams {\n\t@ApiProperty()\n\t@IsString()\n\t@IsNotEmpty()\n\tfileName!: string;\n}\n\nexport class CopyFilesOfParentParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class CopyFileParams {\n\t@ApiProperty()\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n\n\t@ApiProperty()\n\t@IsString()\n\tfileNamePrefix!: string;\n}\n\nexport class CopyFilesOfParentPayload {\n\t@IsMongoId()\n\tuserId!: EntityId;\n\n\t@ValidateNested()\n\tsource!: FileRecordParams;\n\n\t@ValidateNested()\n\ttarget!: FileRecordParams;\n}\n\nexport class PreviewParams {\n\t@ApiPropertyOptional({ enum: PreviewOutputMimeTypes, enumName: 'PreviewOutputMimeTypes' })\n\t@IsOptional()\n\t@IsEnum(PreviewOutputMimeTypes)\n\toutputFormat?: PreviewOutputMimeTypes;\n\n\t@ApiPropertyOptional({ enum: PreviewWidth, enumName: 'PreviewWidth' })\n\t@IsOptional()\n\t@IsEnum(PreviewWidth)\n\twidth?: PreviewWidth;\n\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\t@ApiPropertyOptional({\n\t\tdescription: 'If true, the preview will be generated again.',\n\t})\n\tforceUpdate?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SortExternalToolParams.html":{"url":"classes/SortExternalToolParams.html","title":"class - SortExternalToolParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SortExternalToolParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/request/external-tool-sort.params.ts\n \n\n\n\n \n Extends\n \n \n SortingParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n sortBy\n \n \n \n \n \n sortOrder\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n sortBy\n \n \n \n \n \n \n Type : ExternalToolSortBy\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(ExternalToolSortBy)@ApiPropertyOptional({enum: ExternalToolSortBy})\n \n \n \n \n \n Inherited from SortingParams\n\n \n \n \n \n Defined in SortingParams:14\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n sortOrder\n \n \n \n \n \n \n Type : SortOrder\n\n \n \n \n \n Default value : SortOrder.asc\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SortOrder)@ApiPropertyOptional({enum: SortOrder})\n \n \n \n \n \n Inherited from SortingParams\n\n \n \n \n \n Defined in SortingParams:18\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { SortingParams } from '@shared/controller';\nimport { IsEnum, IsOptional } from 'class-validator';\nimport { ApiPropertyOptional } from '@nestjs/swagger';\n\nexport enum ExternalToolSortBy {\n\tID = 'id',\n\tNAME = 'name',\n}\n\nexport class SortExternalToolParams extends SortingParams {\n\t@IsOptional()\n\t@IsEnum(ExternalToolSortBy)\n\t@ApiPropertyOptional({ enum: ExternalToolSortBy })\n\tsortBy?: ExternalToolSortBy;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SortImportUserParams.html":{"url":"classes/SortImportUserParams.html","title":"class - SortImportUserParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SortImportUserParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/sort-import-user.params.ts\n \n\n\n\n \n Extends\n \n \n SortingParams\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n sortBy\n \n \n \n \n \n sortOrder\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n sortBy\n \n \n \n \n \n \n Type : ImportUserSortOrder\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(ImportUserSortOrder)@ApiPropertyOptional({enum: ImportUserSortOrder})\n \n \n \n \n \n Inherited from SortingParams\n\n \n \n \n \n Defined in SortingParams:14\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n sortOrder\n \n \n \n \n \n \n Type : SortOrder\n\n \n \n \n \n Default value : SortOrder.asc\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SortOrder)@ApiPropertyOptional({enum: SortOrder})\n \n \n \n \n \n Inherited from SortingParams\n\n \n \n \n \n Defined in SortingParams:18\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { SortingParams } from '@shared/controller';\nimport { IsEnum, IsOptional } from 'class-validator';\n\nexport enum ImportUserSortOrder {\n\tFIRSTNAME = 'firstName',\n\tLASTNAME = 'lastName',\n}\n\nexport class SortImportUserParams extends SortingParams {\n\t@IsOptional()\n\t@IsEnum(ImportUserSortOrder)\n\t@ApiPropertyOptional({ enum: ImportUserSortOrder })\n\tsortBy?: ImportUserSortOrder;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SortingParams.html":{"url":"classes/SortingParams.html","title":"class - SortingParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SortingParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/controller/dto/sorting.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Abstract\n Optional\n sortBy\n \n \n \n \n \n sortOrder\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Abstract\n Optional\n sortBy\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Defined in apps/server/src/shared/controller/dto/sorting.params.ts:13\n \n \n\n \n \n Set type and Decorators in extending classes\n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n sortOrder\n \n \n \n \n \n \n Type : SortOrder\n\n \n \n \n \n Default value : SortOrder.asc\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SortOrder)@ApiPropertyOptional({enum: SortOrder})\n \n \n \n \n \n Defined in apps/server/src/shared/controller/dto/sorting.params.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsOptional } from 'class-validator';\nimport { ApiPropertyOptional } from '@nestjs/swagger';\n\nenum SortOrder {\n\tasc = 'asc',\n\tdesc = 'desc',\n}\n\nexport abstract class SortingParams {\n\t/**\n\t * Set type and Decorators in extending classes\n\t */\n\tabstract sortBy?: T;\n\n\t@IsOptional()\n\t@IsEnum(SortOrder)\n\t@ApiPropertyOptional({ enum: SortOrder })\n\tsortOrder: SortOrder = SortOrder.asc;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/StartUserLoginMigrationUc.html":{"url":"injectables/StartUserLoginMigrationUc.html","title":"injectable - StartUserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n StartUserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/start-user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkPreconditions\n \n \n Async\n startMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, authorizationService: AuthorizationService, schoolService: LegacySchoolService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/start-user-login-migration.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkPreconditions\n \n \n \n \n \n \n \n checkPreconditions(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/start-user-login-migration.uc.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startMigration\n \n \n \n \n \n \n \n startMigration(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/start-user-login-migration.uc.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common/decorators/core/injectable.decorator';\nimport { Permission, LegacySchoolDo, User, UserLoginMigrationDO } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationContext, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { SchoolNumberMissingLoggableException, UserLoginMigrationAlreadyClosedLoggableException } from '../error';\nimport { UserLoginMigrationStartLoggable } from '../loggable';\nimport { UserLoginMigrationService } from '../service';\n\n@Injectable()\nexport class StartUserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tthis.logger.setContext(StartUserLoginMigrationUc.name);\n\t}\n\n\tasync startMigration(userId: string, schoolId: string): Promise {\n\t\tawait this.checkPreconditions(userId, schoolId);\n\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tuserLoginMigration = await this.userLoginMigrationService.startMigration(schoolId);\n\n\t\t\tthis.logger.info(new UserLoginMigrationStartLoggable(userId, userLoginMigration.id as string));\n\t\t} else if (userLoginMigration.closedAt) {\n\t\t\tthrow new UserLoginMigrationAlreadyClosedLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.closedAt\n\t\t\t);\n\t\t} else {\n\t\t\t// Do nothing, if migration is already started but not stopped.\n\t\t}\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync checkPreconditions(userId: string, schoolId: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.USER_LOGIN_MIGRATION_ADMIN]);\n\t\tthis.authorizationService.checkPermission(user, school, context);\n\n\t\tif (!school.officialSchoolNumber) {\n\t\t\tthrow new SchoolNumberMissingLoggableException(schoolId);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/StatelessAuthorizationParams.html":{"url":"classes/StatelessAuthorizationParams.html","title":"class - StatelessAuthorizationParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n StatelessAuthorizationParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n code\n \n \n \n \n Optional\n error\n \n \n \n \n Optional\n error_description\n \n \n \n \n Optional\n error_uri\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n code\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@IsNotEmpty()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error\n \n \n \n \n \n \n Type : SSOAuthenticationError\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsEnum(SSOAuthenticationError)\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error_description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n error_uri\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/stateless-authorization.params.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';\nimport { SSOAuthenticationError } from '../../interface/sso-authentication-error.enum';\n\nexport class StatelessAuthorizationParams {\n\t@IsOptional()\n\t@IsString()\n\t@IsNotEmpty()\n\tcode?: string;\n\n\t@IsOptional()\n\t@IsEnum(SSOAuthenticationError)\n\terror?: SSOAuthenticationError;\n\n\t@IsOptional()\n\t@IsString()\n\terror_description?: string;\n\n\t@IsOptional()\n\t@IsString()\n\terror_uri?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/StorageProviderEncryptedStringType.html":{"url":"classes/StorageProviderEncryptedStringType.html","title":"class - StorageProviderEncryptedStringType","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n StorageProviderEncryptedStringType\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts\n \n\n\n \n Description\n \n \n Serialization type to transparent encrypt string values in database.\n\n \n\n \n Extends\n \n \n Type\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n key\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n convertToDatabaseValue\n \n \n convertToJSValue\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(customKey?: string)\n \n \n \n \n Defined in apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n customKey\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n key\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts:10\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n convertToDatabaseValue\n \n \n \n \n \n \nconvertToDatabaseValue(value: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n convertToJSValue\n \n \n \n \n \n \nconvertToJSValue(value: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/types/StorageProviderEncryptedString.type.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { Type } from '@mikro-orm/core';\nimport CryptoJs from 'crypto-js';\n\n/**\n * Serialization type to transparent encrypt string values in database.\n */\nexport class StorageProviderEncryptedStringType extends Type {\n\t// TODO modularize service?\n\tprivate key: string;\n\n\tconstructor(customKey?: string) {\n\t\tsuper();\n\t\tif (customKey) {\n\t\t\tthis.key = customKey;\n\t\t} else {\n\t\t\tthis.key = Configuration.get('S3_KEY') as string;\n\t\t}\n\t}\n\n\tconvertToDatabaseValue(value: string | undefined): string {\n\t\t// keep nullish values\n\t\tif (value == null) {\n\t\t\treturn value as unknown as string;\n\t\t}\n\n\t\t// encrypt non-empty strings only\n\t\tif (value.length === 0) {\n\t\t\treturn '';\n\t\t}\n\t\tconst encryptedString = CryptoJs.AES.encrypt(value, this.key).toString();\n\n\t\treturn encryptedString;\n\t}\n\n\tconvertToJSValue(value: string | undefined): string {\n\t\t// keep nullish values\n\t\tif (value == null) {\n\t\t\treturn value as unknown as string;\n\t\t}\n\n\t\t// decrypt non-empty strings only\n\t\tif (value.length === 0) {\n\t\t\treturn '';\n\t\t}\n\n\t\t// decrypt only non-empty strings\n\t\tconst decryptedString: string = CryptoJs.AES.decrypt(value, this.key).toString(CryptoJs.enc.Utf8);\n\n\t\treturn decryptedString;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/StorageProviderEntity.html":{"url":"entities/StorageProviderEntity.html","title":"entity - StorageProviderEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n StorageProviderEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/storageprovider.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n accessKeyId\n \n \n \n endpointUrl\n \n \n \n Optional\n region\n \n \n \n secretAccessKey\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n accessKeyId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/storageprovider.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n \n endpointUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/storageprovider.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n region\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/storageprovider.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n secretAccessKey\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({fieldName: 'secretAccessKey', type: StorageProviderEncryptedStringType})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/storageprovider.entity.ts:21\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { StorageProviderEncryptedStringType } from '@shared/repo/types/StorageProviderEncryptedString.type';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface IStorageProviderProperties {\n\tendpointUrl: string;\n\taccessKeyId: string;\n\tsecretAccessKey: string;\n\tregion?: string;\n}\n\n@Entity({ tableName: 'storageproviders' })\nexport class StorageProviderEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tendpointUrl: string;\n\n\t@Property()\n\taccessKeyId: string;\n\n\t@Property({ fieldName: 'secretAccessKey', type: StorageProviderEncryptedStringType })\n\tsecretAccessKey: string;\n\n\t@Property({ nullable: true })\n\tregion?: string;\n\n\tconstructor(props: IStorageProviderProperties) {\n\t\tsuper();\n\t\tthis.endpointUrl = props.endpointUrl;\n\t\tthis.accessKeyId = props.accessKeyId;\n\t\tthis.secretAccessKey = props.secretAccessKey;\n\t\tthis.region = props.region;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/StorageProviderRepo.html":{"url":"injectables/StorageProviderRepo.html","title":"injectable - StorageProviderRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n StorageProviderRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAll\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager)\n \n \n \n \n Defined in apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:16\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/storageprovider/storageprovider.repo.ts:12\n \n \n\n \n \n\n \n\n\n \n import { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { StorageProviderEntity } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class StorageProviderRepo extends BaseRepo {\n\tconstructor(protected readonly _em: EntityManager) {\n\t\tsuper(_em);\n\t}\n\n\tget entityName() {\n\t\treturn StorageProviderEntity;\n\t}\n\n\tasync findAll(): Promise {\n\t\tconst providers = this._em.find(StorageProviderEntity, {});\n\n\t\treturn providers;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/StringValidator.html":{"url":"classes/StringValidator.html","title":"class - StringValidator","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n StringValidator\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/validator/string.validator.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n isNotEmptyString\n \n \n Static\n isString\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n isNotEmptyString\n \n \n \n \n \n \n \n isNotEmptyString(value?: string, trim)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/validator/string.validator.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n value\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n trim\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n isString\n \n \n \n \n \n \n \n isString(value?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/validator/string.validator.ts:2\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n export class StringValidator {\n\tstatic isString(value?: string): value is string {\n\t\tconst result = value != null && typeof value === 'string';\n\t\tif (result === true) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tstatic isNotEmptyString(value?: string, trim = false): boolean {\n\t\tif (StringValidator.isString(value)) {\n\t\t\tconst result = trim ? value.trim().length > 0 : value.length > 0;\n\t\t\treturn result;\n\t\t}\n\t\treturn false;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Submission.html":{"url":"entities/Submission.html","title":"entity - Submission","body":"\n \n\n\n\n\n\n\n\n Entities\n Submission\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/submission.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n comment\n \n \n \n Optional\n courseGroup\n \n \n \n Optional\n grade\n \n \n \n Optional\n gradeComment\n \n \n \n graded\n \n \n \n \n school\n \n \n \n student\n \n \n \n submitted\n \n \n \n \n task\n \n \n \n teamMembers\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n comment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:46\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n courseGroup\n \n \n \n \n \n \n Type : CourseGroup\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('CourseGroup', {fieldName: 'courseGroupId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n grade\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n gradeComment\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {fieldName: 'schoolId'})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n student\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('User', {fieldName: 'studentId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n task\n \n \n \n \n \n \n Type : Task\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('Task', {fieldName: 'homeworkId'})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n \n teamMembers\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @ManyToMany('User', undefined, {fieldName: 'teamMembers'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/submission.entity.ts:43\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property, Unique } from '@mikro-orm/core';\n\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { CourseGroup } from './coursegroup.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { Task } from './task.entity';\nimport type { User } from './user.entity';\n\nexport interface ISubmissionProperties {\n\tschool: SchoolEntity;\n\ttask: Task;\n\tstudent: User;\n\tcourseGroup?: CourseGroup;\n\tteamMembers?: User[];\n\tcomment: string;\n\tsubmitted?: boolean;\n\tgraded?: boolean;\n\tgrade?: number;\n\tgradeComment?: string;\n}\n\n@Entity({ tableName: 'submissions' })\n@Index({ properties: ['student', 'teamMembers'] })\n@Unique({ properties: ['student', 'task'] })\nexport class Submission extends BaseEntityWithTimestamps {\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\t@Index()\n\tschool: SchoolEntity;\n\n\t@ManyToOne('Task', { fieldName: 'homeworkId' })\n\t@Index()\n\ttask: Task;\n\n\t@ManyToOne('User', { fieldName: 'studentId' })\n\tstudent: User;\n\n\t@ManyToOne('CourseGroup', { fieldName: 'courseGroupId', nullable: true })\n\tcourseGroup?: CourseGroup;\n\n\t@ManyToMany('User', undefined, { fieldName: 'teamMembers' })\n\tteamMembers = new Collection(this);\n\n\t@Property({ nullable: true })\n\tcomment?: string;\n\n\t@Property()\n\tsubmitted: boolean;\n\n\t@Property()\n\tgraded: boolean;\n\n\t@Property({ nullable: true })\n\tgrade?: number;\n\n\t@Property({ nullable: true })\n\tgradeComment?: string;\n\n\tconstructor(props: ISubmissionProperties) {\n\t\tsuper();\n\t\tthis.school = props.school;\n\t\tthis.student = props.student;\n\t\tthis.comment = props.comment;\n\t\tthis.task = props.task;\n\t\tthis.submitted = props.submitted || false;\n\t\tthis.graded = props.graded || false;\n\t\tthis.grade = props.grade;\n\t\tthis.gradeComment = props.gradeComment;\n\t\tthis.courseGroup = props.courseGroup;\n\n\t\tif (props.teamMembers !== undefined) {\n\t\t\tthis.teamMembers.set(props.teamMembers);\n\t\t}\n\t}\n\n\tprivate getCourseGroupStudentIds(): EntityId[] {\n\t\tlet courseGroupMemberIds: EntityId[] = [];\n\n\t\tif (this.courseGroup) {\n\t\t\tcourseGroupMemberIds = this.courseGroup.getStudentIds();\n\t\t}\n\n\t\treturn courseGroupMemberIds;\n\t}\n\n\tprivate getTeamMemberIds(): EntityId[] {\n\t\tif (!this.teamMembers) {\n\t\t\tthrow new InternalServerErrorException(\n\t\t\t\t'Submission.teamMembers is undefined. The submission need to be populated.'\n\t\t\t);\n\t\t}\n\n\t\tconst teamMemberObjectIds = this.teamMembers.getIdentifiers('_id');\n\t\tconst teamMemberIds = teamMemberObjectIds.map((id): string => id.toString());\n\n\t\treturn teamMemberIds;\n\t}\n\n\tpublic isSubmitted(): boolean {\n\t\treturn this.submitted;\n\t}\n\n\tpublic isSubmittedForUser(user: User): boolean {\n\t\tconst isMember = this.isUserSubmitter(user);\n\t\tconst isSubmitted = this.isSubmitted();\n\t\tconst isSubmittedForUser = isMember && isSubmitted;\n\n\t\treturn isSubmittedForUser;\n\t}\n\n\t// Bad that the logic is needed to expose the userIds, but is used in task for now.\n\t// Check later if it can be replaced and remove all related code.\n\tpublic getSubmitterIds(): EntityId[] {\n\t\tconst creatorId = this.student.id;\n\t\tconst teamMemberIds = this.getTeamMemberIds();\n\t\tconst courseGroupMemberIds = this.getCourseGroupStudentIds();\n\t\tconst memberIds = [creatorId, ...teamMemberIds, ...courseGroupMemberIds];\n\n\t\tconst uniqueMemberIds = [...new Set(memberIds)];\n\n\t\treturn uniqueMemberIds;\n\t}\n\n\tpublic isUserSubmitter(user: User): boolean {\n\t\tconst memberIds = this.getSubmitterIds();\n\t\tconst isMember = memberIds.some((id) => id === user.id);\n\n\t\treturn isMember;\n\t}\n\n\tpublic isGraded(): boolean {\n\t\treturn this.graded;\n\t}\n\n\tpublic isGradedForUser(user: User): boolean {\n\t\tconst isMember = this.isUserSubmitter(user);\n\t\tconst isGraded = this.isGraded();\n\t\tconst isGradedForUser = isMember && isGraded;\n\n\t\treturn isGradedForUser;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerContentBody.html":{"url":"classes/SubmissionContainerContentBody.html","title":"class - SubmissionContainerContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n dueDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:53\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElement.html":{"url":"classes/SubmissionContainerElement.html","title":"class - SubmissionContainerElement","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-container-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:23\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(domainObject: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n dueDate\n \n \n\n \n \n getdueDate()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-container-element.do.ts:6\n \n \n\n \n \n setdueDate(value: Date)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-container-element.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n Date\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { SubmissionItem } from './submission-item.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class SubmissionContainerElement extends BoardComposite {\n\tget dueDate(): Date {\n\t\treturn this.props.dueDate;\n\t}\n\n\tset dueDate(value: Date) {\n\t\tthis.props.dueDate = value;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof SubmissionItem;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitSubmissionContainerElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitSubmissionContainerElementAsync(this);\n\t}\n}\n\nexport interface SubmissionContainerElementProps extends BoardCompositeProps {\n\tdueDate: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElementContent.html":{"url":"classes/SubmissionContainerElementContent.html","title":"class - SubmissionContainerElementContent","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElementContent\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SubmissionContainerElementContent)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SubmissionContainerElementContent\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class SubmissionContainerElementContent {\n\tconstructor({ dueDate }: SubmissionContainerElementContent) {\n\t\tthis.dueDate = dueDate;\n\t}\n\n\t@ApiProperty()\n\tdueDate: Date;\n}\n\nexport class SubmissionContainerElementResponse {\n\tconstructor({ id, content, timestamps, type }: SubmissionContainerElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ApiProperty()\n\tcontent: SubmissionContainerElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElementContentBody.html":{"url":"classes/SubmissionContainerElementContentBody.html","title":"class - SubmissionContainerElementContentBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElementContentBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n \n Extends\n \n \n ElementContentBody\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : SubmissionContainerContentBody\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:62\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.SUBMISSION_CONTAINER\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from ElementContentBody\n\n \n \n \n \n Defined in ElementContentBody:58\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SubmissionContainerElementNode.html":{"url":"entities/SubmissionContainerElementNode.html","title":"entity - SubmissionContainerElementNode","body":"\n \n\n\n\n\n\n\n\n Entities\n SubmissionContainerElementNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts:9\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.SUBMISSION_CONTAINER_ELEMENT })\nexport class SubmissionContainerElementNode extends BoardNode {\n\t@Property()\n\tdueDate: Date;\n\n\tconstructor(props: SubmissionContainerNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.SUBMISSION_CONTAINER_ELEMENT;\n\t\tthis.dueDate = props.dueDate;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildSubmissionContainerElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface SubmissionContainerNodeProps extends BoardNodeProps {\n\tdueDate: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SubmissionContainerElementProps.html":{"url":"interfaces/SubmissionContainerElementProps.html","title":"interface - SubmissionContainerElementProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SubmissionContainerElementProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-container-element.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n dueDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport { SubmissionItem } from './submission-item.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class SubmissionContainerElement extends BoardComposite {\n\tget dueDate(): Date {\n\t\treturn this.props.dueDate;\n\t}\n\n\tset dueDate(value: Date) {\n\t\tthis.props.dueDate = value;\n\t}\n\n\tisAllowedAsChild(domainObject: AnyBoardDo): boolean {\n\t\tconst allowed = domainObject instanceof SubmissionItem;\n\t\treturn allowed;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitSubmissionContainerElement(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitSubmissionContainerElementAsync(this);\n\t}\n}\n\nexport interface SubmissionContainerElementProps extends BoardCompositeProps {\n\tdueDate: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElementResponse.html":{"url":"classes/SubmissionContainerElementResponse.html","title":"class - SubmissionContainerElementResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElementResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n content\n \n \n \n id\n \n \n \n timestamps\n \n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SubmissionContainerElementResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SubmissionContainerElementResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : SubmissionContainerElementContent\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ContentElementType.SUBMISSION_CONTAINER\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ContentElementType, enumName: 'ContentElementType'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/submission-container-element.response.ts:26\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ContentElementType } from '@shared/domain';\nimport { TimestampsResponse } from '../timestamps.response';\n\nexport class SubmissionContainerElementContent {\n\tconstructor({ dueDate }: SubmissionContainerElementContent) {\n\t\tthis.dueDate = dueDate;\n\t}\n\n\t@ApiProperty()\n\tdueDate: Date;\n}\n\nexport class SubmissionContainerElementResponse {\n\tconstructor({ id, content, timestamps, type }: SubmissionContainerElementResponse) {\n\t\tthis.id = id;\n\t\tthis.content = content;\n\t\tthis.timestamps = timestamps;\n\t\tthis.type = type;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty({ enum: ContentElementType, enumName: 'ContentElementType' })\n\ttype: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ApiProperty()\n\tcontent: SubmissionContainerElementContent;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerElementResponseMapper.html":{"url":"classes/SubmissionContainerElementResponseMapper.html","title":"class - SubmissionContainerElementResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerElementResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts\n \n\n\n\n\n \n Implements\n \n \n BaseResponseMapper\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n canMap\n \n \n Static\n getInstance\n \n \n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n \n \n Type : SubmissionContainerElementResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts:6\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canMap\n \n \n \n \n \n \ncanMap(element: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n getInstance\n \n \n \n \n \n \n \n getInstance()\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Returns : SubmissionContainerElementResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n mapToResponse\n \n \n \n \n \n \nmapToResponse(element: SubmissionContainerElement)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-container-element-response.mapper.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n element\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionContainerElementResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ContentElementType, SubmissionContainerElement } from '@shared/domain';\nimport { SubmissionContainerElementContent, SubmissionContainerElementResponse, TimestampsResponse } from '../dto';\nimport { BaseResponseMapper } from './base-mapper.interface';\n\nexport class SubmissionContainerElementResponseMapper implements BaseResponseMapper {\n\tprivate static instance: SubmissionContainerElementResponseMapper;\n\n\tpublic static getInstance(): SubmissionContainerElementResponseMapper {\n\t\tif (!SubmissionContainerElementResponseMapper.instance) {\n\t\t\tSubmissionContainerElementResponseMapper.instance = new SubmissionContainerElementResponseMapper();\n\t\t}\n\n\t\treturn SubmissionContainerElementResponseMapper.instance;\n\t}\n\n\tmapToResponse(element: SubmissionContainerElement): SubmissionContainerElementResponse {\n\t\tconst result = new SubmissionContainerElementResponse({\n\t\t\tid: element.id,\n\t\t\ttimestamps: new TimestampsResponse({ lastUpdatedAt: element.updatedAt, createdAt: element.createdAt }),\n\t\t\ttype: ContentElementType.SUBMISSION_CONTAINER,\n\t\t\tcontent: new SubmissionContainerElementContent({ dueDate: element.dueDate }),\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tcanMap(element: SubmissionContainerElement): boolean {\n\t\treturn element instanceof SubmissionContainerElement;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SubmissionContainerNodeProps.html":{"url":"interfaces/SubmissionContainerNodeProps.html","title":"interface - SubmissionContainerNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SubmissionContainerNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/submission-container-element-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n dueDate\n \n \n \n \n \n \n \n \n dueDate: Date\n\n \n \n\n\n \n \n Type : Date\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.SUBMISSION_CONTAINER_ELEMENT })\nexport class SubmissionContainerElementNode extends BoardNode {\n\t@Property()\n\tdueDate: Date;\n\n\tconstructor(props: SubmissionContainerNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.SUBMISSION_CONTAINER_ELEMENT;\n\t\tthis.dueDate = props.dueDate;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildSubmissionContainerElement(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface SubmissionContainerNodeProps extends BoardNodeProps {\n\tdueDate: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionContainerUrlParams.html":{"url":"classes/SubmissionContainerUrlParams.html","title":"class - SubmissionContainerUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionContainerUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/submission-container.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n submissionContainerId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n submissionContainerId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the submission container.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-container.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class SubmissionContainerUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the submission container.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tsubmissionContainerId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/SubmissionController.html":{"url":"controllers/SubmissionController.html","title":"controller - SubmissionController","body":"\n \n\n\n\n\n\n\n Controllers\n SubmissionController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/submission.controller.ts\n \n\n \n Prefix\n \n \n submissions\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n Async\n findStatusesByTask\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(urlParams: SubmissionUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':submissionId')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/submission.controller.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n SubmissionUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findStatusesByTask\n \n \n \n \n \n \n \n findStatusesByTask(currentUser: ICurrentUser, params: TaskUrlParams)\n \n \n\n \n \n Decorators : \n \n @Get('status/task/:taskId')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/submission.controller.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Delete, Get, Param } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { SubmissionMapper } from '../mapper';\nimport { SubmissionUc } from '../uc';\nimport { SubmissionStatusListResponse, SubmissionUrlParams, TaskUrlParams } from './dto';\n\n@ApiTags('Submission')\n@Authenticate('jwt')\n@Controller('submissions')\nexport class SubmissionController {\n\tconstructor(private readonly submissionUc: SubmissionUc) {}\n\n\t@Get('status/task/:taskId')\n\tasync findStatusesByTask(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: TaskUrlParams\n\t): Promise {\n\t\tconst submissions = await this.submissionUc.findAllByTask(currentUser.userId, params.taskId);\n\n\t\tconst submissionResponses = submissions.map((submission) => SubmissionMapper.mapToStatusResponse(submission));\n\n\t\tconst listResponse = new SubmissionStatusListResponse(submissionResponses);\n\n\t\treturn listResponse;\n\t}\n\n\t@Delete(':submissionId')\n\tasync delete(@Param() urlParams: SubmissionUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst result = await this.submissionUc.delete(currentUser.userId, urlParams.submissionId);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionFactory.html":{"url":"classes/SubmissionFactory.html","title":"class - SubmissionFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/submission.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n graded\n \n \n studentWithId\n \n \n submitted\n \n \n teamMembersWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \ngraded()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/submission.factory.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n studentWithId\n \n \n \n \n \n \nstudentWithId()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/submission.factory.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \nsubmitted()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/submission.factory.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n teamMembersWithId\n \n \n \n \n \n \nteamMembersWithId(numberOfTeamMembers: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/submission.factory.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n numberOfTeamMembers\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ISubmissionProperties, Submission } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\nimport { schoolFactory } from './school.factory';\nimport { taskFactory } from './task.factory';\nimport { userFactory } from './user.factory';\n\nclass SubmissionFactory extends BaseFactory {\n\tgraded(): this {\n\t\tconst params: DeepPartial = { graded: true };\n\n\t\treturn this.params(params);\n\t}\n\n\tsubmitted(): this {\n\t\tconst params: DeepPartial = { submitted: true };\n\n\t\treturn this.params(params);\n\t}\n\n\tstudentWithId(): this {\n\t\tconst params: DeepPartial = { student: userFactory.buildWithId() };\n\n\t\treturn this.params(params);\n\t}\n\n\tteamMembersWithId(numberOfTeamMembers: number): this {\n\t\tconst teamMembers = userFactory.buildListWithId(numberOfTeamMembers);\n\t\tconst params: DeepPartial = { teamMembers };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const submissionFactory = SubmissionFactory.define(Submission, ({ sequence }) => {\n\treturn {\n\t\tschool: schoolFactory.build(),\n\t\ttask: taskFactory.build(),\n\t\tstudent: userFactory.build(),\n\t\tcomment: `submission comment #${sequence}`,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionItem.html":{"url":"classes/SubmissionItem.html","title":"class - SubmissionItem","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionItem\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-item.do.ts\n \n\n\n\n \n Extends\n \n \n BoardComposite\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n props\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n accept\n \n \n Async\n acceptAsync\n \n \n isAllowedAsChild\n \n \n addChild\n \n \n hasChild\n \n \n removeChild\n \n \n Public\n getProps\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n completed\n \n \n userId\n \n \n \n \n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n props\n \n \n \n \n \n \n Type : T\n\n \n \n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:8\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n accept\n \n \n \n \n \n \naccept(visitor: BoardCompositeVisitor)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:28\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitor\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n acceptAsync\n \n \n \n \n \n \n \n acceptAsync(visitor: BoardCompositeVisitorAsync)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:32\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n visitor\n \n BoardCompositeVisitorAsync\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isAllowedAsChild\n \n \n \n \n \n \nisAllowedAsChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:23\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addChild\n \n \n \n \n \n \naddChild(child: AnyBoardDo, position?: number)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n position\n \n number\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasChild\n \n \n \n \n \n \nhasChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:39\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n removeChild\n \n \n \n \n \n \nremoveChild(child: AnyBoardDo)\n \n \n\n\n \n \n Inherited from BoardComposite\n\n \n \n \n \n Defined in BoardComposite:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n child\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n getProps\n \n \n \n \n \n \n \n getProps()\n \n \n\n\n \n \n Inherited from DomainObject\n\n \n \n \n \n Defined in DomainObject:18\n\n \n \n\n\n \n \n\n \n Returns : T\n\n \n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n completed\n \n \n\n \n \n getcompleted()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.do.ts:6\n \n \n\n \n \n setcompleted(value: boolean)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.do.ts:10\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n boolean\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n userId\n \n \n\n \n \n getuserId()\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.do.ts:14\n \n \n\n \n \n setuserId(value: EntityId)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.do.ts:18\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class SubmissionItem extends BoardComposite {\n\tget completed(): boolean {\n\t\treturn this.props.completed;\n\t}\n\n\tset completed(value: boolean) {\n\t\tthis.props.completed = value;\n\t}\n\n\tget userId(): EntityId {\n\t\treturn this.props.userId;\n\t}\n\n\tset userId(value: EntityId) {\n\t\tthis.props.userId = value;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tisAllowedAsChild(child: AnyBoardDo): boolean {\n\t\t// Currently submission-item rejects any children, will open in the future\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitSubmissionItem(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitSubmissionItemAsync(this);\n\t}\n}\n\nexport interface SubmissionItemProps extends BoardCompositeProps {\n\tcompleted: boolean;\n\tuserId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionItemFactory.html":{"url":"injectables/SubmissionItemFactory.html","title":"injectable - SubmissionItemFactory","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionItemFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-item.factory.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n build\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild()\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/domainobject/board/submission-item.factory.ts:7\n \n \n\n\n \n \n\n \n Returns : SubmissionItem\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { ObjectId } from 'bson';\nimport { SubmissionItem } from './submission-item.do';\n\n@Injectable()\nexport class SubmissionItemFactory {\n\tbuild(): SubmissionItem {\n\t\treturn new SubmissionItem({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tcompleted: false,\n\t\t\tuserId: new ObjectId().toHexString(),\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/SubmissionItemNode.html":{"url":"entities/SubmissionItemNode.html","title":"entity - SubmissionItemNode","body":"\n \n\n\n\n\n\n\n\n Entities\n SubmissionItemNode\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/submission-item-node.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n completed\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n completed\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/submission-item-node.entity.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @Property({comment: 'The user whos submission this is. Usually the student submitting the work.'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/boardnode/submission-item-node.entity.ts:16\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { EntityId } from '@shared/domain';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.SUBMISSION_ITEM })\nexport class SubmissionItemNode extends BoardNode {\n\t@Property()\n\tcompleted!: boolean;\n\n\t// @Index() // TODO if enabled tests in management fails with ERROR [ExceptionsHandler] Failed to create indexes\n\t@Property({\n\t\tcomment: 'The user whos submission this is. Usually the student submitting the work.',\n\t})\n\tuserId!: EntityId;\n\n\tconstructor(props: SubmissionItemNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.SUBMISSION_ITEM;\n\t\tthis.completed = props.completed;\n\t\tthis.userId = props.userId;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildSubmissionItem(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface SubmissionItemNodeProps extends BoardNodeProps {\n\tcompleted: boolean;\n\tuserId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SubmissionItemNodeProps.html":{"url":"interfaces/SubmissionItemNodeProps.html","title":"interface - SubmissionItemNodeProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SubmissionItemNodeProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/boardnode/submission-item-node.entity.ts\n \n\n\n\n \n Extends\n \n \n BoardNodeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n completed\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n completed\n \n \n \n \n \n \n \n \n completed: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { Entity, Property } from '@mikro-orm/core';\nimport { EntityId } from '@shared/domain';\nimport { AnyBoardDo } from '../../domainobject';\nimport { BoardNode, BoardNodeProps } from './boardnode.entity';\nimport { BoardDoBuilder, BoardNodeType } from './types';\n\n@Entity({ discriminatorValue: BoardNodeType.SUBMISSION_ITEM })\nexport class SubmissionItemNode extends BoardNode {\n\t@Property()\n\tcompleted!: boolean;\n\n\t// @Index() // TODO if enabled tests in management fails with ERROR [ExceptionsHandler] Failed to create indexes\n\t@Property({\n\t\tcomment: 'The user whos submission this is. Usually the student submitting the work.',\n\t})\n\tuserId!: EntityId;\n\n\tconstructor(props: SubmissionItemNodeProps) {\n\t\tsuper(props);\n\t\tthis.type = BoardNodeType.SUBMISSION_ITEM;\n\t\tthis.completed = props.completed;\n\t\tthis.userId = props.userId;\n\t}\n\n\tuseDoBuilder(builder: BoardDoBuilder): AnyBoardDo {\n\t\tconst domainObject = builder.buildSubmissionItem(this);\n\n\t\treturn domainObject;\n\t}\n}\n\nexport interface SubmissionItemNodeProps extends BoardNodeProps {\n\tcompleted: boolean;\n\tuserId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SubmissionItemProps.html":{"url":"interfaces/SubmissionItemProps.html","title":"interface - SubmissionItemProps","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SubmissionItemProps\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/submission-item.do.ts\n \n\n\n\n \n Extends\n \n \n BoardCompositeProps\n \n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n completed\n \n \n \n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n completed\n \n \n \n \n \n \n \n \n completed: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { BoardComposite, BoardCompositeProps } from './board-composite.do';\nimport type { AnyBoardDo, BoardCompositeVisitor, BoardCompositeVisitorAsync } from './types';\n\nexport class SubmissionItem extends BoardComposite {\n\tget completed(): boolean {\n\t\treturn this.props.completed;\n\t}\n\n\tset completed(value: boolean) {\n\t\tthis.props.completed = value;\n\t}\n\n\tget userId(): EntityId {\n\t\treturn this.props.userId;\n\t}\n\n\tset userId(value: EntityId) {\n\t\tthis.props.userId = value;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tisAllowedAsChild(child: AnyBoardDo): boolean {\n\t\t// Currently submission-item rejects any children, will open in the future\n\t\treturn false;\n\t}\n\n\taccept(visitor: BoardCompositeVisitor): void {\n\t\tvisitor.visitSubmissionItem(this);\n\t}\n\n\tasync acceptAsync(visitor: BoardCompositeVisitorAsync): Promise {\n\t\tawait visitor.visitSubmissionItemAsync(this);\n\t}\n}\n\nexport interface SubmissionItemProps extends BoardCompositeProps {\n\tcompleted: boolean;\n\tuserId: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionItemResponse.html":{"url":"classes/SubmissionItemResponse.html","title":"class - SubmissionItemResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionItemResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n completed\n \n \n \n id\n \n \n \n timestamps\n \n \n \n userData\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SubmissionItemResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SubmissionItemResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n completed\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n timestamps\n \n \n \n \n \n \n Type : TimestampsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n userData\n \n \n \n \n \n \n Type : UserDataResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.response.ts:23\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { TimestampsResponse } from '../timestamps.response';\nimport { UserDataResponse } from '../user-data.response';\n\nexport class SubmissionItemResponse {\n\tconstructor({ id, timestamps, completed, userData }: SubmissionItemResponse) {\n\t\tthis.id = id;\n\t\tthis.timestamps = timestamps;\n\t\tthis.completed = completed;\n\t\tthis.userData = userData;\n\t}\n\n\t@ApiProperty({ pattern: '[a-f0-9]{24}' })\n\tid: string;\n\n\t@ApiProperty()\n\ttimestamps: TimestampsResponse;\n\n\t@ApiProperty()\n\tcompleted: boolean;\n\n\t@ApiProperty()\n\tuserData: UserDataResponse;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionItemResponseMapper.html":{"url":"classes/SubmissionItemResponseMapper.html","title":"class - SubmissionItemResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionItemResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/mapper/submission-item-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n getInstance\n \n \n Public\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Static\n instance\n \n \n \n \n \n \n Type : SubmissionItemResponseMapper\n\n \n \n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-response.mapper.ts:5\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n getInstance\n \n \n \n \n \n \n \n getInstance()\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-response.mapper.ts:7\n \n \n\n\n \n \n\n \n Returns : SubmissionItemResponseMapper\n\n \n \n \n \n \n \n \n \n \n \n \n Public\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(submissionItem: SubmissionItem)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/controller/mapper/submission-item-response.mapper.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionItemResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { SubmissionItem } from '@shared/domain';\nimport { SubmissionItemResponse, TimestampsResponse, UserDataResponse } from '../dto';\n\nexport class SubmissionItemResponseMapper {\n\tprivate static instance: SubmissionItemResponseMapper;\n\n\tpublic static getInstance(): SubmissionItemResponseMapper {\n\t\tif (!SubmissionItemResponseMapper.instance) {\n\t\t\tSubmissionItemResponseMapper.instance = new SubmissionItemResponseMapper();\n\t\t}\n\n\t\treturn SubmissionItemResponseMapper.instance;\n\t}\n\n\tpublic mapToResponse(submissionItem: SubmissionItem): SubmissionItemResponse {\n\t\tconst result = new SubmissionItemResponse({\n\t\t\tcompleted: submissionItem.completed,\n\t\t\tid: submissionItem.id,\n\t\t\ttimestamps: new TimestampsResponse({\n\t\t\t\tlastUpdatedAt: submissionItem.updatedAt,\n\t\t\t\tcreatedAt: submissionItem.createdAt,\n\t\t\t}),\n\t\t\tuserData: new UserDataResponse({\n\t\t\t\t// TODO: put valid user info here which comes from the submission owner\n\t\t\t\tfirstName: 'John',\n\t\t\t\tlastName: 'Mr Doe',\n\t\t\t\tuserId: submissionItem.userId,\n\t\t\t}),\n\t\t});\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionItemService.html":{"url":"injectables/SubmissionItemService.html","title":"injectable - SubmissionItemService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionItemService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/service/submission-item.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n create\n \n \n Async\n findById\n \n \n Async\n update\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(boardDoRepo: BoardDoRepo, boardDoService: BoardDoService)\n \n \n \n \n Defined in apps/server/src/modules/board/service/submission-item.service.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n boardDoRepo\n \n \n BoardDoRepo\n \n \n \n No\n \n \n \n \n boardDoService\n \n \n BoardDoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n create\n \n \n \n \n \n \n \n create(userId: EntityId, submissionContainer: SubmissionContainerElement, payload: literal type)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/submission-item.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionContainer\n \n SubmissionContainerElement\n \n\n \n No\n \n\n\n \n \n payload\n \n literal type\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/submission-item.service.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n update\n \n \n \n \n \n \n \n update(submissionItem: SubmissionItem, completed: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/service/submission-item.service.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionItem\n \n SubmissionItem\n \n\n \n No\n \n\n\n \n \n completed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ObjectId } from 'bson';\nimport { Injectable, NotFoundException } from '@nestjs/common';\n\nimport { EntityId, SubmissionContainerElement, SubmissionItem } from '@shared/domain';\nimport { ValidationError } from '@shared/common';\n\nimport { BoardDoRepo } from '../repo';\nimport { BoardDoService } from './board-do.service';\n\n@Injectable()\nexport class SubmissionItemService {\n\tconstructor(private readonly boardDoRepo: BoardDoRepo, private readonly boardDoService: BoardDoService) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst element = await this.boardDoRepo.findById(id);\n\n\t\tif (!(element instanceof SubmissionItem)) {\n\t\t\tthrow new NotFoundException(`There is no '${element.constructor.name}' with this id`);\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tasync create(\n\t\tuserId: EntityId,\n\t\tsubmissionContainer: SubmissionContainerElement,\n\t\tpayload: { completed: boolean }\n\t): Promise {\n\t\tconst submissionItem = new SubmissionItem({\n\t\t\tid: new ObjectId().toHexString(),\n\t\t\tcreatedAt: new Date(),\n\t\t\tupdatedAt: new Date(),\n\t\t\tcompleted: payload.completed,\n\t\t\tuserId,\n\t\t});\n\n\t\tsubmissionContainer.addChild(submissionItem);\n\n\t\tawait this.boardDoRepo.save(submissionContainer.children, submissionContainer);\n\n\t\treturn submissionItem;\n\t}\n\n\tasync update(submissionItem: SubmissionItem, completed: boolean): Promise {\n\t\tconst parent = (await this.boardDoRepo.findParentOfId(submissionItem.id)) as SubmissionContainerElement;\n\t\tconst now = new Date();\n\t\tif (parent.dueDate && parent.dueDate \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionItemUc.html":{"url":"injectables/SubmissionItemUc.html","title":"injectable - SubmissionItemUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionItemUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/uc/submission-item.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n Async\n findSubmissionItems\n \n \n Private\n Async\n getSubmissionContainer\n \n \n Private\n Async\n isAuthorizedStudent\n \n \n Async\n updateSubmissionItem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, boardDoAuthorizableService: BoardDoAuthorizableService, elementService: ContentElementService, submissionItemService: SubmissionItemService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n boardDoAuthorizableService\n \n \n BoardDoAuthorizableService\n \n \n \n No\n \n \n \n \n elementService\n \n \n ContentElementService\n \n \n \n No\n \n \n \n \n submissionItemService\n \n \n SubmissionItemService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: EntityId, boardDo: AnyBoardDo, action: Action, requiredUserRole?: UserRoleEnum)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n requiredUserRole\n \n UserRoleEnum\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findSubmissionItems\n \n \n \n \n \n \n \n findSubmissionItems(userId: EntityId, submissionContainerId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionContainerId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getSubmissionContainer\n \n \n \n \n \n \n \n getSubmissionContainer(submissionContainerId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:75\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionContainerId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n isAuthorizedStudent\n \n \n \n \n \n \n \n isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n boardDo\n \n AnyBoardDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSubmissionItem\n \n \n \n \n \n \n \n updateSubmissionItem(userId: EntityId, submissionItemId: EntityId, completed: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/board/uc/submission-item.uc.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionItemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n completed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, forwardRef, HttpException, HttpStatus, Inject, Injectable } from '@nestjs/common';\nimport { AnyBoardDo, EntityId, SubmissionContainerElement, SubmissionItem, UserRoleEnum } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationService } from '@src/modules/authorization';\nimport { Action } from '@src/modules/authorization/types/action.enum';\nimport { BoardDoAuthorizableService, ContentElementService, SubmissionItemService } from '../service';\n\n@Injectable()\nexport class SubmissionItemUc {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService))\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly boardDoAuthorizableService: BoardDoAuthorizableService,\n\t\tprivate readonly elementService: ContentElementService,\n\t\tprivate readonly submissionItemService: SubmissionItemService,\n\t\tprivate readonly logger: Logger\n\t) {\n\t\tthis.logger.setContext(SubmissionItemUc.name);\n\t}\n\n\tasync findSubmissionItems(userId: EntityId, submissionContainerId: EntityId): Promise {\n\t\tconst submissionContainer = await this.getSubmissionContainer(submissionContainerId);\n\t\tawait this.checkPermission(userId, submissionContainer, Action.read);\n\n\t\tlet submissionItems = submissionContainer.children as SubmissionItem[];\n\n\t\tif (!submissionItems.every((child) => child instanceof SubmissionItem)) {\n\t\t\tthrow new HttpException(\n\t\t\t\t'Children of submission-container-element must be of type submission-item',\n\t\t\t\tHttpStatus.UNPROCESSABLE_ENTITY\n\t\t\t);\n\t\t}\n\n\t\tconst isAuthorizedStudent = await this.isAuthorizedStudent(userId, submissionContainer);\n\t\tif (isAuthorizedStudent) {\n\t\t\tsubmissionItems = submissionItems.filter((item) => item.userId === userId);\n\t\t}\n\n\t\treturn submissionItems;\n\t}\n\n\tasync updateSubmissionItem(\n\t\tuserId: EntityId,\n\t\tsubmissionItemId: EntityId,\n\t\tcompleted: boolean\n\t): Promise {\n\t\tconst submissionItem = await this.submissionItemService.findById(submissionItemId);\n\n\t\tawait this.checkPermission(userId, submissionItem, Action.read, UserRoleEnum.STUDENT);\n\t\tif (submissionItem.userId !== userId) {\n\t\t\tthrow new ForbiddenException();\n\t\t}\n\n\t\tawait this.submissionItemService.update(submissionItem, completed);\n\n\t\treturn submissionItem;\n\t}\n\n\tprivate async isAuthorizedStudent(userId: EntityId, boardDo: AnyBoardDo): Promise {\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tconst userRoleEnum = boardDoAuthorizable.users.find((u) => u.userId === userId)?.userRoleEnum;\n\n\t\tif (!userRoleEnum) {\n\t\t\tthrow new ForbiddenException('User not part of this board');\n\t\t}\n\n\t\t// TODO do this with permission instead of role and using authorizable rules\n\t\tif (userRoleEnum === UserRoleEnum.STUDENT) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate async getSubmissionContainer(submissionContainerId: EntityId): Promise {\n\t\tconst submissionContainer = (await this.elementService.findById(\n\t\t\tsubmissionContainerId\n\t\t)) as SubmissionContainerElement;\n\n\t\tif (!(submissionContainer instanceof SubmissionContainerElement)) {\n\t\t\tthrow new HttpException('Id does not belong to a submission container', HttpStatus.UNPROCESSABLE_ENTITY);\n\t\t}\n\n\t\treturn submissionContainer;\n\t}\n\n\tprivate async checkPermission(\n\t\tuserId: EntityId,\n\t\tboardDo: AnyBoardDo,\n\t\taction: Action,\n\t\trequiredUserRole?: UserRoleEnum\n\t): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst boardDoAuthorizable = await this.boardDoAuthorizableService.getBoardAuthorizable(boardDo);\n\t\tif (requiredUserRole) {\n\t\t\tboardDoAuthorizable.requiredUserRole = requiredUserRole;\n\t\t}\n\t\tconst context = { action, requiredPermissions: [] };\n\n\t\treturn this.authorizationService.checkPermission(user, boardDoAuthorizable, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionItemUrlParams.html":{"url":"classes/SubmissionItemUrlParams.html","title":"class - SubmissionItemUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionItemUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/submission-item.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n submissionItemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n submissionItemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the submission item.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/submission-item.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class SubmissionItemUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the submission item.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tsubmissionItemId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionMapper.html":{"url":"classes/SubmissionMapper.html","title":"class - SubmissionMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/mapper/submission.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToStatusResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToStatusResponse\n \n \n \n \n \n \n \n mapToStatusResponse(submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/submission.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SubmissionStatusResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Submission } from '@shared/domain';\nimport { SubmissionStatusResponse } from '../controller/dto';\n\nexport class SubmissionMapper {\n\tstatic mapToStatusResponse(submission: Submission): SubmissionStatusResponse {\n\t\tconst dto = new SubmissionStatusResponse({\n\t\t\tid: submission.id,\n\t\t\tsubmitters: submission.getSubmitterIds(),\n\t\t\tisSubmitted: submission.isSubmitted(),\n\t\t\tgrade: submission.grade,\n\t\t\tisGraded: submission.isGraded(),\n\t\t\tsubmittingCourseGroupName: submission.courseGroup?.name,\n\t\t});\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionRepo.html":{"url":"injectables/SubmissionRepo.html","title":"injectable - SubmissionRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/submission/submission.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n byUserIdQuery\n \n \n Async\n findAllByTaskIds\n \n \n Async\n findAllByUserId\n \n \n Async\n findById\n \n \n Private\n Async\n populateReferences\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n byUserIdQuery\n \n \n \n \n \n \n \n byUserIdQuery(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByTaskIds\n \n \n \n \n \n \n \n findAllByTaskIds(taskIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByUserId\n \n \n \n \n \n \n \n findAllByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: string)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateReferences\n \n \n \n \n \n \n \n populateReferences(submissions: Submission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissions\n \n Submission[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/submission/submission.repo.ts:10\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { Counted, CourseGroup, EntityId, Submission } from '@shared/domain';\nimport { BaseRepo } from '../base.repo';\n\n// TODO: add scope helper\n\n@Injectable()\nexport class SubmissionRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Submission;\n\t}\n\n\tasync findById(id: string): Promise {\n\t\tconst submission = await super.findById(id);\n\t\tawait this.populateReferences([submission]);\n\n\t\treturn submission;\n\t}\n\n\tasync findAllByTaskIds(taskIds: EntityId[]): Promise> {\n\t\tconst [submissions, count] = await this._em.findAndCount(this.entityName, {\n\t\t\ttask: { $in: taskIds },\n\t\t});\n\t\tawait this.populateReferences(submissions);\n\n\t\treturn [submissions, count];\n\t}\n\n\tasync findAllByUserId(userId: EntityId): Promise> {\n\t\tconst result = await this._em.findAndCount(this.entityName, await this.byUserIdQuery(userId));\n\t\treturn result;\n\t}\n\n\tprivate async byUserIdQuery(userId: EntityId): Promise> {\n\t\tconst courseGroupsOfUser = await this._em.find(CourseGroup, { students: userId });\n\t\tconst query = { $or: [{ student: userId }, { teamMembers: userId }, { courseGroup: { $in: courseGroupsOfUser } }] };\n\t\treturn query;\n\t}\n\n\tprivate async populateReferences(submissions: Submission[]): Promise {\n\t\tawait this._em.populate(submissions, [\n\t\t\t'courseGroup',\n\t\t\t'task.course',\n\t\t\t'task.lesson.course',\n\t\t\t'task.lesson.courseGroup.course',\n\t\t]);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionRule.html":{"url":"injectables/SubmissionRule.html","title":"injectable - SubmissionRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/submission.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n hasAccessToSubmission\n \n \n Private\n hasParentTaskReadAccess\n \n \n Private\n hasParentTaskWriteAccess\n \n \n Public\n hasPermission\n \n \n Private\n hasReadAccess\n \n \n Private\n hasWriteAccess\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper, taskRule: TaskRule)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n taskRule\n \n \n TaskRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n hasAccessToSubmission\n \n \n \n \n \n \n \n hasAccessToSubmission(user: User, submission: Submission, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:27\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasParentTaskReadAccess\n \n \n \n \n \n \n \n hasParentTaskReadAccess(user: User, submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasParentTaskWriteAccess\n \n \n \n \n \n \n \n hasParentTaskWriteAccess(user: User, submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, submission: Submission, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasReadAccess\n \n \n \n \n \n \n \n hasReadAccess(user: User, submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasWriteAccess\n \n \n \n \n \n \n \n hasWriteAccess(user: User, submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/submission.rule.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Submission, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { TaskRule } from './task.rule';\n\n@Injectable()\nexport class SubmissionRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper, private readonly taskRule: TaskRule) {}\n\n\tpublic isApplicable(user: User, entity: Submission): boolean {\n\t\tconst isMatched = entity instanceof Submission;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, submission: Submission, context: AuthorizationContext): boolean {\n\t\tconst { action, requiredPermissions } = context;\n\n\t\tconst result =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, requiredPermissions) &&\n\t\t\tthis.hasAccessToSubmission(user, submission, action);\n\n\t\treturn result;\n\t}\n\n\tprivate hasAccessToSubmission(user: User, submission: Submission, action: Action): boolean {\n\t\tlet hasAccessToSubmission = false;\n\n\t\tif (action === Action.write) {\n\t\t\thasAccessToSubmission = this.hasWriteAccess(user, submission);\n\t\t} else if (action === Action.read) {\n\t\t\thasAccessToSubmission = this.hasReadAccess(user, submission);\n\t\t}\n\n\t\treturn hasAccessToSubmission;\n\t}\n\n\tprivate hasWriteAccess(user: User, submission: Submission) {\n\t\tconst hasWriteAccess = submission.isUserSubmitter(user) || this.hasParentTaskWriteAccess(user, submission);\n\n\t\treturn hasWriteAccess;\n\t}\n\n\tprivate hasReadAccess(user: User, submission: Submission) {\n\t\tlet hasReadAccess = false;\n\n\t\tif (submission.isSubmitted()) {\n\t\t\thasReadAccess =\n\t\t\t\tthis.hasWriteAccess(user, submission) ||\n\t\t\t\t(this.hasParentTaskReadAccess(user, submission) && submission.task.areSubmissionsPublic());\n\t\t} else {\n\t\t\thasReadAccess = submission.isUserSubmitter(user);\n\t\t}\n\n\t\treturn hasReadAccess;\n\t}\n\n\tprivate hasParentTaskWriteAccess(user: User, submission: Submission) {\n\t\tconst hasParentTaskWriteAccess = this.taskRule.hasPermission(user, submission.task, {\n\t\t\taction: Action.write,\n\t\t\trequiredPermissions: [],\n\t\t});\n\n\t\treturn hasParentTaskWriteAccess;\n\t}\n\n\tprivate hasParentTaskReadAccess(user: User, submission: Submission) {\n\t\tconst hasParentTaskReadAccess = this.taskRule.hasPermission(user, submission.task, {\n\t\t\taction: Action.read,\n\t\t\trequiredPermissions: [],\n\t\t});\n\n\t\treturn hasParentTaskReadAccess;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionService.html":{"url":"injectables/SubmissionService.html","title":"injectable - SubmissionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/service/submission.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Async\n findAllByTask\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(submissionRepo: SubmissionRepo, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/task/service/submission.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionRepo\n \n \n SubmissionRepo\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(submission: Submission)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/submission.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submission\n \n Submission\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByTask\n \n \n \n \n \n \n \n findAllByTask(taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/submission.service.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(submissionId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/submission.service.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, Submission } from '@shared/domain';\nimport { SubmissionRepo } from '@shared/repo';\nimport { FilesStorageClientAdapterService } from '@src/modules/files-storage-client';\n\n@Injectable()\nexport class SubmissionService {\n\tconstructor(\n\t\tprivate readonly submissionRepo: SubmissionRepo,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync findById(submissionId: EntityId): Promise {\n\t\treturn this.submissionRepo.findById(submissionId);\n\t}\n\n\tasync findAllByTask(taskId: EntityId): Promise> {\n\t\tconst submissions = this.submissionRepo.findAllByTaskIds([taskId]);\n\n\t\treturn submissions;\n\t}\n\n\tasync delete(submission: Submission): Promise {\n\t\tawait this.filesStorageClientAdapterService.deleteFilesOfParent(submission.id);\n\n\t\tawait this.submissionRepo.delete(submission);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionStatusListResponse.html":{"url":"classes/SubmissionStatusListResponse.html","title":"class - SubmissionStatusListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionStatusListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/submission.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: SubmissionStatusResponse[])\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:32\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n SubmissionStatusResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : SubmissionStatusResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:38\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class SubmissionStatusResponse {\n\tconstructor({ id, submitters, isSubmitted, grade, isGraded, submittingCourseGroupName }: SubmissionStatusResponse) {\n\t\tthis.id = id;\n\t\tthis.submitters = submitters;\n\t\tthis.isSubmitted = isSubmitted;\n\t\tthis.grade = grade;\n\t\tthis.isGraded = isGraded;\n\t\tthis.submittingCourseGroupName = submittingCourseGroupName;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tsubmitters: string[];\n\n\t@ApiProperty()\n\tisSubmitted: boolean;\n\n\t@ApiPropertyOptional()\n\tgrade?: number;\n\n\t@ApiProperty()\n\tisGraded: boolean;\n\n\t@ApiPropertyOptional()\n\tsubmittingCourseGroupName?: string;\n}\n\nexport class SubmissionStatusListResponse {\n\tconstructor(data: SubmissionStatusResponse[]) {\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [SubmissionStatusResponse] })\n\tdata: SubmissionStatusResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionStatusResponse.html":{"url":"classes/SubmissionStatusResponse.html","title":"class - SubmissionStatusResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionStatusResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/submission.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n grade\n \n \n \n id\n \n \n \n isGraded\n \n \n \n isSubmitted\n \n \n \n submitters\n \n \n \n Optional\n submittingCourseGroupName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: SubmissionStatusResponse)\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n SubmissionStatusResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n grade\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n isGraded\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n isSubmitted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n submitters\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n submittingCourseGroupName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.response.ts:29\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class SubmissionStatusResponse {\n\tconstructor({ id, submitters, isSubmitted, grade, isGraded, submittingCourseGroupName }: SubmissionStatusResponse) {\n\t\tthis.id = id;\n\t\tthis.submitters = submitters;\n\t\tthis.isSubmitted = isSubmitted;\n\t\tthis.grade = grade;\n\t\tthis.isGraded = isGraded;\n\t\tthis.submittingCourseGroupName = submittingCourseGroupName;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\tsubmitters: string[];\n\n\t@ApiProperty()\n\tisSubmitted: boolean;\n\n\t@ApiPropertyOptional()\n\tgrade?: number;\n\n\t@ApiProperty()\n\tisGraded: boolean;\n\n\t@ApiPropertyOptional()\n\tsubmittingCourseGroupName?: string;\n}\n\nexport class SubmissionStatusListResponse {\n\tconstructor(data: SubmissionStatusResponse[]) {\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [SubmissionStatusResponse] })\n\tdata: SubmissionStatusResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SubmissionUc.html":{"url":"injectables/SubmissionUc.html","title":"injectable - SubmissionUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SubmissionUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/uc/submission.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Private\n filterSubmissionsByPermission\n \n \n Async\n findAllByTask\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(submissionService: SubmissionService, authorizationService: AuthorizationService)\n \n \n \n \n Defined in apps/server/src/modules/task/uc/submission.uc.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissionService\n \n \n SubmissionService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(userId: EntityId, submissionId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/submission.uc.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n submissionId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n filterSubmissionsByPermission\n \n \n \n \n \n \n \n filterSubmissionsByPermission(submissions: Submission[], user: User)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/submission.uc.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n submissions\n \n Submission[]\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Submission[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByTask\n \n \n \n \n \n \n \n findAllByTask(userId: EntityId, taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/submission.uc.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission, Submission, User } from '@shared/domain';\nimport { AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { SubmissionService } from '../service';\n\n@Injectable()\nexport class SubmissionUc {\n\tconstructor(\n\t\tprivate readonly submissionService: SubmissionService,\n\t\tprivate readonly authorizationService: AuthorizationService\n\t) {}\n\n\tasync findAllByTask(userId: EntityId, taskId: EntityId): Promise {\n\t\tconst [submissions] = await this.submissionService.findAllByTask(taskId);\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tconst permittedSubmissions = this.filterSubmissionsByPermission(submissions, user);\n\n\t\treturn permittedSubmissions;\n\t}\n\n\tasync delete(userId: EntityId, submissionId: EntityId) {\n\t\tconst [user, submission] = await Promise.all([\n\t\t\tthis.authorizationService.getUserWithPermissions(userId),\n\t\t\tthis.submissionService.findById(submissionId),\n\t\t]);\n\n\t\tthis.authorizationService.checkPermission(\n\t\t\tuser,\n\t\t\tsubmission,\n\t\t\tAuthorizationContextBuilder.write([Permission.SUBMISSIONS_EDIT])\n\t\t);\n\n\t\tawait this.submissionService.delete(submission);\n\n\t\treturn true;\n\t}\n\n\tprivate filterSubmissionsByPermission(submissions: Submission[], user: User): Submission[] {\n\t\tconst permissionContext = AuthorizationContextBuilder.read([Permission.SUBMISSIONS_VIEW]);\n\n\t\tconst permittedSubmissions = submissions.filter((submission) => {\n\t\t\tconst hasPermission = this.authorizationService.hasPermission(user, submission, permissionContext);\n\n\t\t\treturn hasPermission;\n\t\t});\n\n\t\treturn permittedSubmissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SubmissionUrlParams.html":{"url":"classes/SubmissionUrlParams.html","title":"class - SubmissionUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SubmissionUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/submission.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n submissionId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n submissionId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the submission.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/submission.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class SubmissionUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the submission.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tsubmissionId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/SuccessfulRes.html":{"url":"interfaces/SuccessfulRes.html","title":"interface - SuccessfulRes","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n SuccessfulRes\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/strategy/nextcloud/nextcloud.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n success\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n success\n \n \n \n \n \n \n \n \n success: boolean\n\n \n \n\n\n \n \n Type : boolean\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n export interface NextcloudGroups {\n\tgroups: string[];\n}\n\nexport interface OcsResponse {\n\tocs: {\n\t\tdata: T;\n\t\tmeta: Meta;\n\t};\n}\n\nexport interface Meta {\n\tstatus: string;\n\tstatuscode: number;\n\tmessage: string;\n\ttotalitems: string;\n\titemsperpage: string;\n}\n\nexport interface SuccessfulRes {\n\tsuccess: boolean;\n}\n\nexport interface GroupUsers {\n\tusers: string[];\n}\n\n// Groupfolders Responses\n\nexport interface GroupfoldersFolder {\n\tfolder_id: number;\n}\n\nexport interface GroupfoldersCreated {\n\tid: number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SuccessfulResponse.html":{"url":"classes/SuccessfulResponse.html","title":"class - SuccessfulResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SuccessfulResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/controller/dto/user.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n successful\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(successful: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/user.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n successful\n \n \n boolean\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n successful\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user/controller/dto/user.response.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class SuccessfulResponse {\n\tconstructor(successful: boolean) {\n\t\tthis.successful = successful;\n\t}\n\n\t@ApiProperty()\n\tsuccessful: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SymetricKeyEncryptionService.html":{"url":"injectables/SymetricKeyEncryptionService.html","title":"injectable - SymetricKeyEncryptionService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SymetricKeyEncryptionService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/encryption/encryption.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n decrypt\n \n \n Public\n encrypt\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(logger: LegacyLogger, key?: string)\n \n \n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n key\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n decrypt\n \n \n \n \n \n \n \n decrypt(data: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.service.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n encrypt\n \n \n \n \n \n \n \n encrypt(data: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/infra/encryption/encryption.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import CryptoJs from 'crypto-js';\n\nimport { Injectable } from '@nestjs/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { IEncryptionService } from './encryption.interface';\n\n@Injectable()\nexport class SymetricKeyEncryptionService implements IEncryptionService {\n\tconstructor(private logger: LegacyLogger, private key?: string) {\n\t\tif (!this.key) {\n\t\t\tthis.logger.warn('No AES key defined. Encryption will no work');\n\t\t}\n\t}\n\n\tpublic encrypt(data: string): string {\n\t\tif (!this.key) {\n\t\t\tthis.logger.warn('No AES key defined. Will return plain text');\n\t\t\treturn data;\n\t\t}\n\t\treturn CryptoJs.AES.encrypt(data, this.key).toString();\n\t}\n\n\tpublic decrypt(data: string): string {\n\t\tif (!this.key) {\n\t\t\tthis.logger.warn('No AES key defined. Will return plain text');\n\t\t\treturn data;\n\t\t}\n\t\treturn CryptoJs.AES.decrypt(data, this.key).toString(CryptoJs.enc.Utf8);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/System.html":{"url":"entities/System.html","title":"entity - System","body":"\n \n\n\n\n\n\n\n\n Entities\n System\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/system.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n Optional\n displayName\n \n \n \n Optional\n ldapConfig\n \n \n \n Optional\n oauthConfig\n \n \n \n Optional\n oidcConfig\n \n \n \n \n Optional\n provisioningStrategy\n \n \n \n Optional\n provisioningUrl\n \n \n \n type\n \n \n \n Optional\n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:212\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:215\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n ldapConfig\n \n \n \n \n \n \n Type : LdapConfig\n\n \n \n \n \n Decorators : \n \n \n @Embedded({entity: () => LdapConfig, object: true, nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:228\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oauthConfig\n \n \n \n \n \n \n Type : OauthConfig\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:218\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n oidcConfig\n \n \n \n \n \n \n Type : OidcConfig\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:225\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n provisioningStrategy\n \n \n \n \n \n \n Type : SystemProvisioningStrategy\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Enum()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:222\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n provisioningUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:231\n \n \n\n\n \n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:206\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/system.entity.ts:209\n \n \n\n\n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, Enum, Property } from '@mikro-orm/core';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { EntityId } from '../types';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport interface ISystemProperties {\n\ttype: string;\n\turl?: string;\n\talias?: string;\n\tdisplayName?: string;\n\toauthConfig?: OauthConfig;\n\toidcConfig?: OidcConfig;\n\tldapConfig?: LdapConfig;\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\tprovisioningUrl?: string;\n}\n\nexport class OauthConfig {\n\tconstructor(oauthConfig: OauthConfig) {\n\t\tthis.clientId = oauthConfig.clientId;\n\t\tthis.clientSecret = oauthConfig.clientSecret;\n\t\tthis.idpHint = oauthConfig.idpHint;\n\t\tthis.tokenEndpoint = oauthConfig.tokenEndpoint;\n\t\tthis.grantType = oauthConfig.grantType;\n\t\tthis.redirectUri = oauthConfig.redirectUri;\n\t\tthis.scope = oauthConfig.scope;\n\t\tthis.responseType = oauthConfig.responseType;\n\t\tthis.authEndpoint = oauthConfig.authEndpoint;\n\t\tthis.provider = oauthConfig.provider;\n\t\tthis.logoutEndpoint = oauthConfig.logoutEndpoint;\n\t\tthis.issuer = oauthConfig.issuer;\n\t\tthis.jwksEndpoint = oauthConfig.jwksEndpoint;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property({ nullable: true })\n\tidpHint?: string;\n\n\t@Property()\n\tredirectUri: string;\n\n\t@Property()\n\tgrantType: string;\n\n\t@Property()\n\ttokenEndpoint: string;\n\n\t@Property()\n\tauthEndpoint: string;\n\n\t@Property()\n\tresponseType: string;\n\n\t@Property()\n\tscope: string;\n\n\t@Property()\n\tprovider: string;\n\n\t@Property()\n\tlogoutEndpoint: string;\n\n\t@Property()\n\tissuer: string;\n\n\t@Property()\n\tjwksEndpoint: string;\n}\n\n@Embeddable()\nexport class LdapConfig {\n\tconstructor(ldapConfig: Readonly) {\n\t\tthis.active = ldapConfig.active;\n\t\tthis.federalState = ldapConfig.federalState;\n\t\tthis.lastSyncAttempt = ldapConfig.lastSyncAttempt;\n\t\tthis.lastSuccessfulFullSync = ldapConfig.lastSuccessfulFullSync;\n\t\tthis.lastSuccessfulPartialSync = ldapConfig.lastSuccessfulPartialSync;\n\t\tthis.lastModifyTimestamp = ldapConfig.lastModifyTimestamp;\n\t\tthis.url = ldapConfig.url;\n\t\tthis.rootPath = ldapConfig.rootPath;\n\t\tthis.searchUser = ldapConfig.searchUser;\n\t\tthis.searchUserPassword = ldapConfig.searchUserPassword;\n\t\tthis.provider = ldapConfig.provider;\n\t\tthis.providerOptions = ldapConfig.providerOptions;\n\t}\n\n\t@Property({ nullable: true })\n\tactive?: boolean;\n\n\t@Property({ nullable: true })\n\tfederalState?: EntityId;\n\n\t@Property({ nullable: true })\n\tlastSyncAttempt?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulFullSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastSuccessfulPartialSync?: Date;\n\n\t@Property({ nullable: true })\n\tlastModifyTimestamp?: string;\n\n\t@Property()\n\turl: string;\n\n\t@Property({ nullable: true })\n\trootPath?: string;\n\n\t@Property({ nullable: true })\n\tsearchUser?: string;\n\n\t@Property({ nullable: true })\n\tsearchUserPassword?: string;\n\n\t@Property({ nullable: true })\n\tprovider?: string;\n\n\t@Property({ nullable: true })\n\tproviderOptions?: {\n\t\tschoolName?: string;\n\t\tuserPathAdditions?: string;\n\t\tclassPathAdditions?: string;\n\t\troleType?: string;\n\t\tuserAttributeNameMapping?: {\n\t\t\tgivenName?: string;\n\t\t\tsn?: string;\n\t\t\tdn?: string;\n\t\t\tuuid?: string;\n\t\t\tuid?: string;\n\t\t\tmail?: string;\n\t\t\trole?: string;\n\t\t};\n\t\troleAttributeNameMapping?: {\n\t\t\troleStudent?: string;\n\t\t\troleTeacher?: string;\n\t\t\troleAdmin?: string;\n\t\t\troleNoSc?: string;\n\t\t};\n\t\tclassAttributeNameMapping?: {\n\t\t\tdescription?: string;\n\t\t\tdn?: string;\n\t\t\tuniqueMember?: string;\n\t\t};\n\t};\n}\nexport class OidcConfig {\n\tconstructor(oidcConfig: OidcConfig) {\n\t\tthis.clientId = oidcConfig.clientId;\n\t\tthis.clientSecret = oidcConfig.clientSecret;\n\t\tthis.idpHint = oidcConfig.idpHint;\n\t\tthis.authorizationUrl = oidcConfig.authorizationUrl;\n\t\tthis.tokenUrl = oidcConfig.tokenUrl;\n\t\tthis.logoutUrl = oidcConfig.logoutUrl;\n\t\tthis.userinfoUrl = oidcConfig.userinfoUrl;\n\t\tthis.defaultScopes = oidcConfig.defaultScopes;\n\t}\n\n\t@Property()\n\tclientId: string;\n\n\t@Property()\n\tclientSecret: string;\n\n\t@Property()\n\tidpHint: string;\n\n\t@Property()\n\tauthorizationUrl: string;\n\n\t@Property()\n\ttokenUrl: string;\n\n\t@Property()\n\tlogoutUrl: string;\n\n\t@Property()\n\tuserinfoUrl: string;\n\n\t@Property()\n\tdefaultScopes: string;\n}\n\n@Entity({ tableName: 'systems' })\nexport class System extends BaseEntityWithTimestamps {\n\tconstructor(props: ISystemProperties) {\n\t\tsuper();\n\t\tthis.type = props.type;\n\t\tthis.url = props.url;\n\t\tthis.alias = props.alias;\n\t\tthis.displayName = props.displayName;\n\t\tthis.oauthConfig = props.oauthConfig;\n\t\tthis.oidcConfig = props.oidcConfig;\n\t\tthis.ldapConfig = props.ldapConfig;\n\t\tthis.provisioningStrategy = props.provisioningStrategy;\n\t\tthis.provisioningUrl = props.provisioningUrl;\n\t}\n\n\t@Property({ nullable: false })\n\ttype: string; // see legacy enum for valid values\n\n\t@Property({ nullable: true })\n\turl?: string;\n\n\t@Property({ nullable: true })\n\talias?: string;\n\n\t@Property({ nullable: true })\n\tdisplayName?: string;\n\n\t@Property({ nullable: true })\n\toauthConfig?: OauthConfig;\n\n\t@Property({ nullable: true })\n\t@Enum()\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\t@Property({ nullable: true })\n\toidcConfig?: OidcConfig;\n\n\t@Embedded({ entity: () => LdapConfig, object: true, nullable: true })\n\tldapConfig?: LdapConfig;\n\n\t@Property({ nullable: true })\n\tprovisioningUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SystemApiModule.html":{"url":"modules/SystemApiModule.html","title":"module - SystemApiModule","body":"\n \n\n\n\n\n Modules\n SystemApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SystemApiModule\n\n\n\ncluster_SystemApiModule_providers\n\n\n\ncluster_SystemApiModule_imports\n\n\n\n\nSystemModule\n\nSystemModule\n\n\n\nSystemApiModule\n\nSystemApiModule\n\nSystemApiModule -->\n\nSystemModule->SystemApiModule\n\n\n\n\n\nSystemUc\n\nSystemUc\n\nSystemApiModule -->\n\nSystemUc->SystemApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/system/system-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n SystemUc\n \n \n \n \n Controllers\n \n \n SystemController\n \n \n \n \n Imports\n \n \n SystemModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { SystemController } from '@src/modules/system/controller/system.controller';\nimport { SystemUc } from '@src/modules/system/uc/system.uc';\nimport { SystemModule } from './system.module';\n\n@Module({\n\timports: [SystemModule],\n\tproviders: [SystemUc],\n\tcontrollers: [SystemController],\n})\nexport class SystemApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/SystemController.html":{"url":"controllers/SystemController.html","title":"controller - SystemController","body":"\n \n\n\n\n\n\n\n Controllers\n SystemController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/system.controller.ts\n \n\n \n Prefix\n \n \n systems\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n Async\n getSystem\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(filterParams: SystemFilterParams)\n \n \n\n \n \n Decorators : \n \n @Get('public')@ApiOperation({summary: 'Finds all publicly available systems.'})@ApiResponse({status: 200, type: PublicSystemListResponse, description: 'Returns a list of systems.'})\n \n \n\n \n \n Defined in apps/server/src/modules/system/controller/system.controller.ts:23\n \n \n\n\n \n \n This endpoint is used to show users the possible login systems that exist.\nNo sensible data should be returned!\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n filterParams\n \n SystemFilterParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSystem\n \n \n \n \n \n \n \n getSystem(params: SystemIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('public/:systemId')@ApiOperation({summary: 'Finds a publicly available system.'})@ApiResponse({status: 200, type: PublicSystemResponse, description: 'Returns a system.'})\n \n \n\n \n \n Defined in apps/server/src/modules/system/controller/system.controller.ts:38\n \n \n\n\n \n \n This endpoint is used to get information about a possible login systems.\nNo sensible data should be returned!\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n SystemIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param, Query } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { SystemFilterParams } from '@src/modules/system/controller/dto/system.filter.params';\nimport { SystemDto } from '../service';\nimport { SystemUc } from '../uc/system.uc';\nimport { PublicSystemListResponse } from './dto/public-system-list.response';\nimport { PublicSystemResponse } from './dto/public-system-response';\nimport { SystemIdParams } from './dto/system-id.params';\nimport { SystemResponseMapper } from './mapper/system-response.mapper';\n\n@ApiTags('Systems')\n@Controller('systems')\nexport class SystemController {\n\tconstructor(private readonly systemUc: SystemUc) {}\n\n\t/**\n\t * This endpoint is used to show users the possible login systems that exist.\n\t * No sensible data should be returned!\n\t */\n\t@Get('public')\n\t@ApiOperation({ summary: 'Finds all publicly available systems.' })\n\t@ApiResponse({ status: 200, type: PublicSystemListResponse, description: 'Returns a list of systems.' })\n\tasync find(@Query() filterParams: SystemFilterParams): Promise {\n\t\tconst systemDtos: SystemDto[] = await this.systemUc.findByFilter(filterParams.type, filterParams.onlyOauth);\n\n\t\tconst mapped: PublicSystemListResponse = SystemResponseMapper.mapFromDtoToListResponse(systemDtos);\n\n\t\treturn mapped;\n\t}\n\n\t/**\n\t * This endpoint is used to get information about a possible login systems.\n\t * No sensible data should be returned!\n\t */\n\t@Get('public/:systemId')\n\t@ApiOperation({ summary: 'Finds a publicly available system.' })\n\t@ApiResponse({ status: 200, type: PublicSystemResponse, description: 'Returns a system.' })\n\tasync getSystem(@Param() params: SystemIdParams): Promise {\n\t\tconst systemDto: SystemDto = await this.systemUc.findById(params.systemId);\n\n\t\tconst mapped: PublicSystemResponse = SystemResponseMapper.mapFromDtoToResponse(systemDto);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemDto.html":{"url":"classes/SystemDto.html","title":"class - SystemDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/dto/system.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n alias\n \n \n Optional\n displayName\n \n \n Optional\n id\n \n \n Optional\n ldapActive\n \n \n Optional\n oauthConfig\n \n \n Optional\n provisioningStrategy\n \n \n Optional\n provisioningUrl\n \n \n type\n \n \n Optional\n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(system: SystemDto)\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n \n SystemDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n alias\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n ldapActive\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n oauthConfig\n \n \n \n \n \n \n Type : OauthConfigDto\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n provisioningStrategy\n \n \n \n \n \n \n Type : SystemProvisioningStrategy\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n provisioningUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/system/service/dto/system.dto.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { OauthConfigDto } from '@src/modules/system/service/dto/oauth-config.dto';\n\nexport class SystemDto {\n\tid?: EntityId;\n\n\ttype: string;\n\n\turl?: string;\n\n\talias?: string;\n\n\tdisplayName?: string;\n\n\tprovisioningStrategy?: SystemProvisioningStrategy;\n\n\tprovisioningUrl?: string;\n\n\toauthConfig?: OauthConfigDto;\n\n\tldapActive?: boolean;\n\n\tconstructor(system: SystemDto) {\n\t\tthis.id = system.id;\n\t\tthis.type = system.type;\n\t\tthis.url = system.url;\n\t\tthis.alias = system.alias;\n\t\tthis.displayName = system.displayName;\n\t\tthis.provisioningStrategy = system.provisioningStrategy;\n\t\tthis.provisioningUrl = system.provisioningUrl;\n\t\tthis.oauthConfig = system.oauthConfig;\n\t\tthis.ldapActive = system.ldapActive;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemFactory.html":{"url":"classes/SystemFactory.html","title":"class - SystemFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/system.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withLdapConfig\n \n \n withOauthConfig\n \n \n withOidcConfig\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withLdapConfig\n \n \n \n \n \n \nwithLdapConfig(otherParams?: DeepPartial)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/system.factory.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n otherParams\n \n DeepPartial\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOauthConfig\n \n \n \n \n \n \nwithOauthConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/system.factory.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n withOidcConfig\n \n \n \n \n \n \nwithOidcConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/system.factory.ts:40\n \n \n\n\n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ISystemProperties, LdapConfig, OauthConfig, OidcConfig, System } from '@shared/domain';\nimport { SystemProvisioningStrategy } from '@shared/domain/interface/system-provisioning.strategy';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\n\nexport class SystemFactory extends BaseFactory {\n\twithOauthConfig(): this {\n\t\tconst params: DeepPartial = {\n\t\t\toauthConfig: new OauthConfig({\n\t\t\t\tclientId: '12345',\n\t\t\t\tclientSecret: 'mocksecret',\n\t\t\t\tidpHint: 'mock-oauth-idpHint',\n\t\t\t\ttokenEndpoint: 'http://mock.de/mock/auth/public/mockToken',\n\t\t\t\tgrantType: 'authorization_code',\n\t\t\t\tredirectUri: 'http://mockhost:3030/api/v3/sso/oauth/',\n\t\t\t\tscope: 'openid uuid',\n\t\t\t\tresponseType: 'code',\n\t\t\t\tauthEndpoint: 'http://mock.de/auth',\n\t\t\t\tprovider: 'mock_type',\n\t\t\t\tlogoutEndpoint: 'http://mock.de/logout',\n\t\t\t\tissuer: 'mock_issuer',\n\t\t\t\tjwksEndpoint: 'http://mock.de/jwks',\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithLdapConfig(otherParams?: DeepPartial): this {\n\t\tconst params: DeepPartial = {\n\t\t\tldapConfig: new LdapConfig({\n\t\t\t\turl: 'ldaps:mock.de:389',\n\t\t\t\tactive: true,\n\t\t\t\t...otherParams,\n\t\t\t}),\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n\n\twithOidcConfig(): this {\n\t\tconst params = {\n\t\t\toidcConfig: new OidcConfig({\n\t\t\t\tclientId: 'mock-client-id',\n\t\t\t\tclientSecret: 'mock-client-secret',\n\t\t\t\tidpHint: 'mock-oidc-idpHint',\n\t\t\t\tdefaultScopes: 'openid email userinfo',\n\t\t\t\tauthorizationUrl: 'https://mock.tld/auth',\n\t\t\t\ttokenUrl: 'https://mock.tld/token',\n\t\t\t\tuserinfoUrl: 'https://mock.tld/userinfo',\n\t\t\t\tlogoutUrl: 'https://mock.tld/logout',\n\t\t\t}),\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const systemFactory = SystemFactory.define(System, ({ sequence }) => {\n\treturn {\n\t\ttype: 'oauth',\n\t\turl: 'http://mock.de',\n\t\talias: `system #${sequence}`,\n\t\tdisplayName: `system #${sequence}DisplayName`,\n\t\tprovisioningStrategy: SystemProvisioningStrategy.OIDC,\n\t\tprovisioningUrl: 'https://provisioningurl.de',\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemFilterParams.html":{"url":"classes/SystemFilterParams.html","title":"class - SystemFilterParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemFilterParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/system.filter.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n onlyOauth\n \n \n \n \n \n Optional\n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n Optional\n onlyOauth\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Flag to request only systems with oauth-config.'})@IsOptional()@IsBoolean()@StringToBoolean()\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/system.filter.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n type\n \n \n \n \n \n \n Type : SystemTypeEnum\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The type of the system.'})@IsOptional()@IsEnum(SystemTypeEnum)\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/system.filter.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { StringToBoolean } from '@shared/controller';\nimport { SystemTypeEnum } from '@shared/domain';\nimport { IsBoolean, IsEnum, IsOptional } from 'class-validator';\n\nexport class SystemFilterParams {\n\t@ApiPropertyOptional({ description: 'The type of the system.' })\n\t@IsOptional()\n\t@IsEnum(SystemTypeEnum)\n\ttype?: SystemTypeEnum;\n\n\t@ApiPropertyOptional({ description: 'Flag to request only systems with oauth-config.' })\n\t@IsOptional()\n\t@IsBoolean()\n\t@StringToBoolean()\n\tonlyOauth?: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemIdParams.html":{"url":"classes/SystemIdParams.html","title":"class - SystemIdParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/system-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the system.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/system-id.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class SystemIdParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the system.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tsystemId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemIdParams-1.html":{"url":"classes/SystemIdParams-1.html","title":"class - SystemIdParams-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemIdParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/dto/system-id.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n systemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/system/controller/dto/system-id.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { EntityId } from '@shared/domain';\nimport { IsMongoId } from 'class-validator';\n\nexport class SystemIdParams {\n\t@IsMongoId()\n\t@ApiProperty()\n\tsystemId!: EntityId;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemMapper.html":{"url":"classes/SystemMapper.html","title":"class - SystemMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/mapper/system.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n Static\n mapFromEntityToDto\n \n \n Static\n mapFromOauthConfigEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n \n \n \n \n \n mapFromEntitiesToDtos(entities: System[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n System[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SystemDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n \n \n \n mapFromEntityToDto(entity: System)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n System\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SystemDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromOauthConfigEntityToDto\n \n \n \n \n \n \n \n mapFromOauthConfigEntityToDto(oauthConfig: OauthConfig | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system.mapper.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfig\n \n OauthConfig | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthConfigDto | undefined\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OauthConfig, System } from '@shared/domain';\nimport { OauthConfigDto } from '@src/modules/system/service/dto/oauth-config.dto';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\n\nexport class SystemMapper {\n\tstatic mapFromEntityToDto(entity: System): SystemDto {\n\t\treturn new SystemDto({\n\t\t\tid: entity.id,\n\t\t\ttype: entity.type,\n\t\t\turl: entity.url,\n\t\t\talias: entity.alias,\n\t\t\tdisplayName: entity.displayName ?? entity.alias,\n\t\t\tprovisioningStrategy: entity.provisioningStrategy,\n\t\t\tprovisioningUrl: entity.provisioningUrl,\n\t\t\toauthConfig: SystemMapper.mapFromOauthConfigEntityToDto(entity.oauthConfig),\n\t\t\tldapActive: entity.ldapConfig?.active,\n\t\t});\n\t}\n\n\tstatic mapFromOauthConfigEntityToDto(oauthConfig: OauthConfig | undefined): OauthConfigDto | undefined {\n\t\tif (!oauthConfig) return undefined;\n\t\treturn new OauthConfigDto({\n\t\t\tclientId: oauthConfig.clientId,\n\t\t\tclientSecret: oauthConfig.clientSecret,\n\t\t\tidpHint: oauthConfig.idpHint,\n\t\t\tredirectUri: oauthConfig.redirectUri,\n\t\t\tgrantType: oauthConfig.grantType,\n\t\t\ttokenEndpoint: oauthConfig.tokenEndpoint,\n\t\t\tauthEndpoint: oauthConfig.authEndpoint,\n\t\t\tresponseType: oauthConfig.responseType,\n\t\t\tscope: oauthConfig.scope,\n\t\t\tprovider: oauthConfig.provider,\n\t\t\tlogoutEndpoint: oauthConfig.logoutEndpoint,\n\t\t\tissuer: oauthConfig.issuer,\n\t\t\tjwksEndpoint: oauthConfig.jwksEndpoint,\n\t\t});\n\t}\n\n\tstatic mapFromEntitiesToDtos(entities: System[]): SystemDto[] {\n\t\treturn entities.map((entity) => this.mapFromEntityToDto(entity));\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/SystemModule.html":{"url":"modules/SystemModule.html","title":"module - SystemModule","body":"\n \n\n\n\n\n Modules\n SystemModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_SystemModule\n\n\n\ncluster_SystemModule_imports\n\n\n\ncluster_SystemModule_providers\n\n\n\ncluster_SystemModule_exports\n\n\n\n\nIdentityManagementModule\n\nIdentityManagementModule\n\n\n\nSystemModule\n\nSystemModule\n\nSystemModule -->\n\nIdentityManagementModule->SystemModule\n\n\n\n\n\nSystemOidcService \n\nSystemOidcService \n\nSystemOidcService -->\n\nSystemModule->SystemOidcService \n\n\n\n\n\nSystemService \n\nSystemService \n\nSystemService -->\n\nSystemModule->SystemService \n\n\n\n\n\nSystemOidcService\n\nSystemOidcService\n\nSystemModule -->\n\nSystemOidcService->SystemModule\n\n\n\n\n\nSystemRepo\n\nSystemRepo\n\nSystemModule -->\n\nSystemRepo->SystemModule\n\n\n\n\n\nSystemService\n\nSystemService\n\nSystemModule -->\n\nSystemService->SystemModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/system/system.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n SystemOidcService\n \n \n SystemRepo\n \n \n SystemService\n \n \n \n \n Imports\n \n \n IdentityManagementModule\n \n \n \n \n Exports\n \n \n SystemOidcService\n \n \n SystemService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { IdentityManagementModule } from '@shared/infra/identity-management/identity-management.module';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemService } from '@src/modules/system/service/system.service';\nimport { SystemOidcService } from './service/system-oidc.service';\n\n@Module({\n\timports: [IdentityManagementModule],\n\tproviders: [SystemRepo, SystemService, SystemOidcService],\n\texports: [SystemService, SystemOidcService],\n})\nexport class SystemModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemOidcMapper.html":{"url":"classes/SystemOidcMapper.html","title":"class - SystemOidcMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemOidcMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/mapper/system-oidc.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n Static\n mapFromEntityToDto\n \n \n Static\n mapFromOidcConfigEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromEntitiesToDtos\n \n \n \n \n \n \n \n mapFromEntitiesToDtos(entities: System[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system-oidc.mapper.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n System[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OidcConfigDto[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n \n \n \n mapFromEntityToDto(entity: System)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system-oidc.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n System\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OidcConfigDto | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromOidcConfigEntityToDto\n \n \n \n \n \n \n \n mapFromOidcConfigEntityToDto(systemId: string, oidcConfig: OidcConfig)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/mapper/system-oidc.mapper.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n oidcConfig\n \n OidcConfig\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OidcConfigDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OidcConfig, System } from '@shared/domain';\nimport { OidcConfigDto } from '@src/modules/system/service/dto/oidc-config.dto';\n\nexport class SystemOidcMapper {\n\tstatic mapFromEntityToDto(entity: System): OidcConfigDto | undefined {\n\t\tif (entity.oidcConfig) {\n\t\t\treturn SystemOidcMapper.mapFromOidcConfigEntityToDto(entity.id, entity.oidcConfig);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tstatic mapFromOidcConfigEntityToDto(systemId: string, oidcConfig: OidcConfig): OidcConfigDto {\n\t\treturn new OidcConfigDto({\n\t\t\tparentSystemId: systemId,\n\t\t\tclientId: oidcConfig.clientId,\n\t\t\tclientSecret: oidcConfig?.clientSecret,\n\t\t\tidpHint: oidcConfig.idpHint,\n\t\t\tauthorizationUrl: oidcConfig.authorizationUrl,\n\t\t\ttokenUrl: oidcConfig.tokenUrl,\n\t\t\tuserinfoUrl: oidcConfig.userinfoUrl,\n\t\t\tlogoutUrl: oidcConfig.logoutUrl,\n\t\t\tdefaultScopes: oidcConfig.defaultScopes,\n\t\t});\n\t}\n\n\tstatic mapFromEntitiesToDtos(entities: System[]): OidcConfigDto[] {\n\t\treturn entities\n\t\t\t.map((entity) => this.mapFromEntityToDto(entity))\n\t\t\t.filter((entity): entity is OidcConfigDto => entity !== undefined);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SystemOidcService.html":{"url":"injectables/SystemOidcService.html","title":"injectable - SystemOidcService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SystemOidcService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/system-oidc.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAll\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemRepo: SystemRepo)\n \n \n \n \n Defined in apps/server/src/modules/system/service/system-oidc.service.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemRepo\n \n \n SystemRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll()\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system-oidc.service.ts:21\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system-oidc.service.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport { EntityId, System, SystemTypeEnum } from '@shared/domain';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemOidcMapper } from '@src/modules/system/mapper/system-oidc.mapper';\nimport { OidcConfigDto } from './dto';\n\n@Injectable()\nexport class SystemOidcService {\n\tconstructor(private readonly systemRepo: SystemRepo) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst system = await this.systemRepo.findById(id);\n\t\tconst mappedEntity = SystemOidcMapper.mapFromEntityToDto(system);\n\t\tif (!mappedEntity) {\n\t\t\tthrow new EntityNotFoundError(System.name, { id });\n\t\t}\n\t\treturn mappedEntity;\n\t}\n\n\tasync findAll(): Promise {\n\t\tconst system = await this.systemRepo.findByFilter(SystemTypeEnum.OIDC);\n\t\treturn SystemOidcMapper.mapFromEntitiesToDtos(system);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SystemRepo.html":{"url":"injectables/SystemRepo.html","title":"injectable - SystemRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SystemRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/system/system.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findAll\n \n \n Async\n findByFilter\n \n \n create\n \n \n Async\n delete\n \n \n Async\n findById\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system.repo.ts:31\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n findByFilter\n \n \n \n \n \n \n \n findByFilter(type: SystemTypeEnum)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system.repo.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n SystemTypeEnum\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId | ObjectId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | ObjectId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/system/system.repo.ts:8\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { System, SystemTypeEnum } from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { SystemScope } from '@shared/repo/system/system-scope';\n\n@Injectable()\nexport class SystemRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn System;\n\t}\n\n\tasync findByFilter(type: SystemTypeEnum): Promise {\n\t\tconst scope = new SystemScope();\n\t\tswitch (type) {\n\t\t\tcase SystemTypeEnum.LDAP:\n\t\t\t\tscope.withLdapConfig();\n\t\t\t\tbreak;\n\t\t\tcase SystemTypeEnum.OAUTH:\n\t\t\t\tscope.withOauthConfig();\n\t\t\t\tbreak;\n\t\t\tcase SystemTypeEnum.OIDC:\n\t\t\t\tscope.withOidcConfig();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\tthrow new Error(`system type ${type} unknown`);\n\t\t}\n\t\treturn this._em.find(System, scope.query);\n\t}\n\n\tasync findAll(): Promise {\n\t\treturn this._em.find(System, {});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemResponseMapper.html":{"url":"classes/SystemResponseMapper.html","title":"class - SystemResponseMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemResponseMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/controller/mapper/system-response.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromDtoToListResponse\n \n \n Static\n mapFromDtoToResponse\n \n \n Static\n mapFromOauthConfigDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromDtoToListResponse\n \n \n \n \n \n \n \n mapFromDtoToListResponse(systems: SystemDto[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/controller/mapper/system-response.mapper.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systems\n \n SystemDto[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PublicSystemListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromDtoToResponse\n \n \n \n \n \n \n \n mapFromDtoToResponse(system: SystemDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/controller/mapper/system-response.mapper.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n SystemDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PublicSystemResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapFromOauthConfigDtoToResponse\n \n \n \n \n \n \n \n mapFromOauthConfigDtoToResponse(oauthConfigDto: OauthConfigDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/controller/mapper/system-response.mapper.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n oauthConfigDto\n \n OauthConfigDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OauthConfigResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OauthConfigResponse } from '@src/modules/system/controller/dto/oauth-config.response';\nimport { OauthConfigDto } from '@src/modules/system/service/dto/oauth-config.dto';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { PublicSystemListResponse } from '../dto/public-system-list.response';\nimport { PublicSystemResponse } from '../dto/public-system-response';\n\nexport class SystemResponseMapper {\n\tstatic mapFromDtoToListResponse(systems: SystemDto[]): PublicSystemListResponse {\n\t\tconst systemResponses: PublicSystemResponse[] = systems.map(\n\t\t\t(system: SystemDto): PublicSystemResponse => this.mapFromDtoToResponse(system)\n\t\t);\n\n\t\tconst systemListResponse: PublicSystemListResponse = new PublicSystemListResponse(systemResponses);\n\n\t\treturn systemListResponse;\n\t}\n\n\tstatic mapFromDtoToResponse(system: SystemDto): PublicSystemResponse {\n\t\tconst systemResponse: PublicSystemResponse = new PublicSystemResponse({\n\t\t\tid: system.id || '',\n\t\t\ttype: system.type,\n\t\t\talias: system.alias,\n\t\t\tdisplayName: system.displayName,\n\t\t\toauthConfig: system.oauthConfig\n\t\t\t\t? SystemResponseMapper.mapFromOauthConfigDtoToResponse(system.oauthConfig)\n\t\t\t\t: undefined,\n\t\t});\n\n\t\treturn systemResponse;\n\t}\n\n\tstatic mapFromOauthConfigDtoToResponse(oauthConfigDto: OauthConfigDto): OauthConfigResponse {\n\t\tconst oauthConfigResponse: OauthConfigResponse = new OauthConfigResponse({\n\t\t\tclientId: oauthConfigDto.clientId,\n\t\t\t// clientSecret will not be mapped for security reasons,\n\t\t\tidpHint: oauthConfigDto.idpHint,\n\t\t\tredirectUri: oauthConfigDto.redirectUri,\n\t\t\tgrantType: oauthConfigDto.grantType,\n\t\t\ttokenEndpoint: oauthConfigDto.tokenEndpoint,\n\t\t\tauthEndpoint: oauthConfigDto.authEndpoint,\n\t\t\tresponseType: oauthConfigDto.responseType,\n\t\t\tscope: oauthConfigDto.scope,\n\t\t\tprovider: oauthConfigDto.provider,\n\t\t\tlogoutEndpoint: oauthConfigDto.logoutEndpoint,\n\t\t\tissuer: oauthConfigDto.issuer,\n\t\t\tjwksEndpoint: oauthConfigDto.jwksEndpoint,\n\t\t});\n\n\t\treturn oauthConfigResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/SystemScope.html":{"url":"classes/SystemScope.html","title":"class - SystemScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n SystemScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/system/system-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withLdapConfig\n \n \n withOauthConfig\n \n \n withOidcConfig\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withLdapConfig\n \n \n \n \n \n \nwithLdapConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system-scope.ts:5\n \n \n\n\n \n \n\n \n Returns : SystemScope\n\n \n \n \n \n \n \n \n \n \n \n \n withOauthConfig\n \n \n \n \n \n \nwithOauthConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system-scope.ts:10\n \n \n\n\n \n \n\n \n Returns : SystemScope\n\n \n \n \n \n \n \n \n \n \n \n \n withOidcConfig\n \n \n \n \n \n \nwithOidcConfig()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/system/system-scope.ts:15\n \n \n\n\n \n \n\n \n Returns : SystemScope\n\n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { System } from '@shared/domain';\nimport { Scope } from '../scope';\n\nexport class SystemScope extends Scope {\n\twithLdapConfig(): SystemScope {\n\t\tthis.addQuery({ ldapConfig: { $ne: null } });\n\t\treturn this;\n\t}\n\n\twithOauthConfig(): SystemScope {\n\t\tthis.addQuery({ oauthConfig: { $ne: null } });\n\t\treturn this;\n\t}\n\n\twithOidcConfig(): SystemScope {\n\t\tthis.addQuery({ oidcConfig: { $ne: null } });\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SystemService.html":{"url":"injectables/SystemService.html","title":"injectable - SystemService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SystemService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/service/system.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findByType\n \n \n Private\n Async\n generateBrokerSystems\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemRepo: SystemRepo, idmOauthService: IdentityManagementOauthService)\n \n \n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemRepo\n \n \n SystemRepo\n \n \n \n No\n \n \n \n \n idmOauthService\n \n \n IdentityManagementOauthService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByType\n \n \n \n \n \n \n \n findByType(type?: SystemTypeEnum)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n type\n \n SystemTypeEnum\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n generateBrokerSystems\n \n \n \n \n \n \n \n generateBrokerSystems(systems: System[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:66\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systems\n \n System[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(systemDto: SystemDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/service/system.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemDto\n \n SystemDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport { EntityId, System, SystemTypeEnum } from '@shared/domain';\nimport { IdentityManagementOauthService } from '@shared/infra/identity-management/identity-management-oauth.service';\nimport { SystemRepo } from '@shared/repo';\nimport { SystemMapper } from '@src/modules/system/mapper/system.mapper';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\n\n@Injectable()\nexport class SystemService {\n\tconstructor(\n\t\tprivate readonly systemRepo: SystemRepo,\n\t\tprivate readonly idmOauthService: IdentityManagementOauthService\n\t) {}\n\n\tasync findById(id: EntityId): Promise {\n\t\tlet system = await this.systemRepo.findById(id);\n\t\t[system] = await this.generateBrokerSystems([system]);\n\t\tif (!system) {\n\t\t\tthrow new EntityNotFoundError(System.name, { id });\n\t\t}\n\t\treturn SystemMapper.mapFromEntityToDto(system);\n\t}\n\n\tasync findByType(type?: SystemTypeEnum): Promise {\n\t\tlet systems: System[];\n\t\tif (type && type === SystemTypeEnum.OAUTH) {\n\t\t\tconst oauthSystems = await this.systemRepo.findByFilter(SystemTypeEnum.OAUTH);\n\t\t\tconst oidcSystems = await this.systemRepo.findByFilter(SystemTypeEnum.OIDC);\n\t\t\tsystems = [...oauthSystems, ...oidcSystems];\n\t\t} else if (type) {\n\t\t\tsystems = await this.systemRepo.findByFilter(type);\n\t\t} else {\n\t\t\tsystems = await this.systemRepo.findAll();\n\t\t}\n\t\tsystems = await this.generateBrokerSystems(systems);\n\t\treturn SystemMapper.mapFromEntitiesToDtos(systems);\n\t}\n\n\tasync save(systemDto: SystemDto): Promise {\n\t\tlet system: System;\n\t\tif (systemDto.id) {\n\t\t\tsystem = await this.systemRepo.findById(systemDto.id);\n\t\t\tsystem.type = systemDto.type;\n\t\t\tsystem.alias = systemDto.alias;\n\t\t\tsystem.displayName = systemDto.displayName;\n\t\t\tsystem.oauthConfig = systemDto.oauthConfig;\n\t\t\tsystem.provisioningStrategy = systemDto.provisioningStrategy;\n\t\t\tsystem.provisioningUrl = systemDto.provisioningUrl;\n\t\t\tsystem.url = systemDto.url;\n\t\t} else {\n\t\t\tsystem = new System({\n\t\t\t\ttype: systemDto.type,\n\t\t\t\talias: systemDto.alias,\n\t\t\t\tdisplayName: systemDto.displayName,\n\t\t\t\toauthConfig: systemDto.oauthConfig,\n\t\t\t\tprovisioningStrategy: systemDto.provisioningStrategy,\n\t\t\t\tprovisioningUrl: systemDto.provisioningUrl,\n\t\t\t\turl: systemDto.url,\n\t\t\t});\n\t\t}\n\t\tawait this.systemRepo.save(system);\n\t\treturn SystemMapper.mapFromEntityToDto(system);\n\t}\n\n\tprivate async generateBrokerSystems(systems: System[]): Promise {\n\t\tif (!(await this.idmOauthService.isOauthConfigAvailable())) {\n\t\t\treturn systems.filter((system) => !(system.oidcConfig && !system.oauthConfig));\n\t\t}\n\t\tconst brokerConfig = await this.idmOauthService.getOauthConfig();\n\t\tlet generatedSystem: System;\n\t\treturn systems.map((system) => {\n\t\t\tif (system.oidcConfig && !system.oauthConfig) {\n\t\t\t\tgeneratedSystem = new System({\n\t\t\t\t\ttype: SystemTypeEnum.OAUTH,\n\t\t\t\t\talias: system.alias,\n\t\t\t\t\tdisplayName: system.displayName ? system.displayName : system.alias,\n\t\t\t\t\tprovisioningStrategy: system.provisioningStrategy,\n\t\t\t\t\tprovisioningUrl: system.provisioningUrl,\n\t\t\t\t\turl: system.url,\n\t\t\t\t});\n\t\t\t\tgeneratedSystem.id = system.id;\n\t\t\t\tgeneratedSystem.oauthConfig = { ...brokerConfig };\n\t\t\t\tgeneratedSystem.oauthConfig.idpHint = system.oidcConfig.idpHint;\n\t\t\t\tgeneratedSystem.oauthConfig.redirectUri += system.id;\n\t\t\t\treturn generatedSystem;\n\t\t\t}\n\t\t\treturn system;\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/SystemUc.html":{"url":"injectables/SystemUc.html","title":"injectable - SystemUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n SystemUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/system/uc/system.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findByFilter\n \n \n Async\n findById\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(systemService: SystemService)\n \n \n \n \n Defined in apps/server/src/modules/system/uc/system.uc.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findByFilter\n \n \n \n \n \n \n \n findByFilter(type?: SystemType, onlyOauth)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/uc/system.uc.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n type\n \n SystemType\n \n\n \n Yes\n \n\n \n \n\n \n \n onlyOauth\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/system/uc/system.uc.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport { EntityId, System, SystemType, SystemTypeEnum } from '@shared/domain';\nimport { SystemDto } from '@src/modules/system/service/dto/system.dto';\nimport { SystemService } from '@src/modules/system/service/system.service';\n\n@Injectable()\nexport class SystemUc {\n\tconstructor(private readonly systemService: SystemService) {}\n\n\tasync findByFilter(type?: SystemType, onlyOauth = false): Promise {\n\t\tlet systems: SystemDto[];\n\n\t\tif (onlyOauth) {\n\t\t\tsystems = await this.systemService.findByType(SystemTypeEnum.OAUTH);\n\t\t} else {\n\t\t\tsystems = await this.systemService.findByType(type);\n\t\t}\n\n\t\tsystems = systems.filter((system: SystemDto) => system.ldapActive !== false);\n\n\t\treturn systems;\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst system: SystemDto = await this.systemService.findById(id);\n\n\t\tif (system.ldapActive === false) {\n\t\t\tthrow new EntityNotFoundError(System.name, { id });\n\t\t}\n\n\t\treturn system;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TargetInfoMapper.html":{"url":"classes/TargetInfoMapper.html","title":"class - TargetInfoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TargetInfoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/mapper/target-info.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(target: NewsTarget)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/target-info.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n target\n \n NewsTarget\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TargetInfoResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NewsTarget } from '@shared/domain';\nimport { TargetInfoResponse } from '../controller/dto/target-info.response';\n\nexport class TargetInfoMapper {\n\tstatic mapToResponse(target: NewsTarget): TargetInfoResponse {\n\t\tconst dto = new TargetInfoResponse({ id: target.id, name: target.name });\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TargetInfoResponse.html":{"url":"classes/TargetInfoResponse.html","title":"class - TargetInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TargetInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/target-info.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: TargetInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/target-info.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n TargetInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}', description: 'The id of the Target entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/target-info.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The name of the Target entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/target-info.response.ts:18\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class TargetInfoResponse {\n\tconstructor({ id, name }: TargetInfoResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'The id of the Target entity',\n\t})\n\tid: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The name of the Target entity',\n\t})\n\tname: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/Task.html":{"url":"entities/Task.html","title":"entity - Task","body":"\n \n\n\n\n\n\n\n\n Entities\n Task\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/task.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n Optional\n course\n \n \n \n \n creator\n \n \n \n description\n \n \n \n descriptionInputFormat\n \n \n \n \n Optional\n dueDate\n \n \n \n \n finished\n \n \n \n \n Optional\n lesson\n \n \n \n name\n \n \n \n private\n \n \n \n Optional\n publicSubmissions\n \n \n \n \n school\n \n \n \n submissions\n \n \n \n Optional\n teamSubmissions\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:54\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n course\n \n \n \n \n \n \n Type : Course\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('Course', {fieldName: 'courseId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:75\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n creator\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('User', {fieldName: 'teacherId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:71\n \n \n\n\n \n \n \n \n \n \n \n \n \n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:48\n \n \n\n\n \n \n \n \n \n \n \n \n \n descriptionInputFormat\n \n \n \n \n \n \n Type : InputFormat\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n finished\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany('User', undefined, {fieldName: 'archived'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:90\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n lesson\n \n \n \n \n \n \n Type : LessonEntity\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne('LessonEntity', {fieldName: 'lessonId', nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:83\n \n \n\n\n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n \n private\n \n \n \n \n \n \n Default value : true\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:61\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n publicSubmissions\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:64\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne(undefined, {fieldName: 'schoolId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:79\n \n \n\n\n \n \n \n \n \n \n \n \n \n submissions\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @OneToMany('Submission', 'task')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:86\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n teamSubmissions\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:67\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { InputFormat } from '@shared/domain/types/input-format.types';\nimport type { IEntityWithSchool } from '../interface';\nimport type { ILearnroomElement } from '../interface/learnroom';\nimport type { EntityId } from '../types/entity-id';\nimport type { ITaskProperties, ITaskStatus } from '../types/task.types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { LessonEntity } from './lesson.entity';\nimport type { Submission } from './submission.entity';\nimport { User } from './user.entity';\n\nexport class TaskWithStatusVo {\n\ttask!: Task;\n\n\tstatus!: ITaskStatus;\n\n\tconstructor(task: Task, status: ITaskStatus) {\n\t\tthis.task = task;\n\t\tthis.status = status;\n\t}\n}\n\nexport type TaskParentDescriptions = {\n\tcourseName: string;\n\tcourseId: string;\n\tlessonName: string;\n\tlessonHidden: boolean;\n\tcolor: string;\n};\n\nexport interface ITaskParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'homeworks' })\n@Index({ properties: ['private', 'dueDate', 'finished'] })\n@Index({ properties: ['id', 'private'] })\n@Index({ properties: ['finished', 'course'] })\n@Index({ properties: ['finished', 'course'] })\nexport class Task extends BaseEntityWithTimestamps implements ILearnroomElement, IEntityWithSchool {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tdescription: string;\n\n\t@Property()\n\tdescriptionInputFormat: InputFormat;\n\n\t@Property({ nullable: true })\n\tavailableDate?: Date;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdueDate?: Date;\n\n\t@Property()\n\tprivate = true;\n\n\t@Property({ nullable: true })\n\tpublicSubmissions?: boolean;\n\n\t@Property({ nullable: true })\n\tteamSubmissions?: boolean;\n\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'teacherId' })\n\tcreator: User;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId', nullable: true })\n\tcourse?: Course;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToOne('LessonEntity', { fieldName: 'lessonId', nullable: true })\n\tlesson?: LessonEntity; // In database exist also null, but it can not set.\n\n\t@OneToMany('Submission', 'task')\n\tsubmissions = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'archived' })\n\tfinished = new Collection(this);\n\n\tconstructor(props: ITaskProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.description = props.description || '';\n\t\tthis.descriptionInputFormat = props.descriptionInputFormat || InputFormat.RICH_TEXT_CK4;\n\t\tthis.availableDate = props.availableDate;\n\t\tthis.dueDate = props.dueDate;\n\n\t\tif (props.private !== undefined) this.private = props.private;\n\t\tthis.creator = props.creator;\n\t\tthis.course = props.course;\n\t\tthis.school = props.school;\n\t\tthis.lesson = props.lesson;\n\t\tthis.submissions.set(props.submissions || []);\n\t\tthis.finished.set(props.finished || []);\n\t\tthis.publicSubmissions = props.publicSubmissions || false;\n\t\tthis.teamSubmissions = props.teamSubmissions || false;\n\t}\n\n\tprivate getSubmissionItems(): Submission[] {\n\t\tif (!this.submissions || !this.submissions.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Submissions items are not loaded.');\n\t\t}\n\t\tconst submissions = this.submissions.getItems();\n\n\t\treturn submissions;\n\t}\n\n\tprivate getFinishedUserIds(): EntityId[] {\n\t\tif (!this.finished) {\n\t\t\tthrow new InternalServerErrorException('Task.finished is undefined. The task need to be populated.');\n\t\t}\n\n\t\tconst finishedObjectIds = this.finished.getIdentifiers('_id');\n\t\tconst finishedIds = finishedObjectIds.map((id): string => id.toString());\n\n\t\treturn finishedIds;\n\t}\n\n\tprivate getParent(): ITaskParent | User {\n\t\tconst parent = this.lesson || this.course || this.creator;\n\n\t\treturn parent;\n\t}\n\n\tprivate getMaxSubmissions(): number {\n\t\tconst parent = this.getParent();\n\t\t// For draft (user as parent) propaly user is not a student, but for maxSubmission one is valid result\n\t\tconst maxSubmissions = parent instanceof User ? 1 : parent.getStudentIds().length;\n\n\t\treturn maxSubmissions;\n\t}\n\n\tprivate isFinishedForUser(user: User): boolean {\n\t\tconst finishedUserIds = this.getFinishedUserIds();\n\t\tconst isUserInFinishedUser = finishedUserIds.some((finishedUserId) => finishedUserId === user.id);\n\n\t\tconst isCourseFinished = this.course ? this.course.isFinished() : false;\n\n\t\tconst isFinishedForUser = isUserInFinishedUser || isCourseFinished;\n\n\t\treturn isFinishedForUser;\n\t}\n\n\tpublic isDraft(): boolean {\n\t\t// private can be undefined in the database\n\t\treturn !!this.private;\n\t}\n\n\tpublic isPublished(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic isPlanned(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate getSubmittedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst submittedSubmissions = submissions.filter((submission) => submission.isSubmitted());\n\n\t\treturn submittedSubmissions;\n\t}\n\n\tpublic areSubmissionsPublic(): boolean {\n\t\tconst areSubmissionsPublic = !!this.publicSubmissions;\n\n\t\treturn areSubmissionsPublic;\n\t}\n\n\tprivate getGradedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst gradedSubmissions = submissions.filter((submission) => submission.isGraded());\n\n\t\treturn gradedSubmissions;\n\t}\n\n\tprivate isSubmittedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isSubmitted = submissions.some((submission) => submission.isSubmittedForUser(user));\n\n\t\treturn isSubmitted;\n\t}\n\n\tprivate isGradedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isGraded = submissions.some((submission) => submission.isGradedForUser(user));\n\n\t\treturn isGraded;\n\t}\n\n\tprivate calculateNumberOfSubmitters(submissions: Submission[]): number {\n\t\tlet taskSubmitterIds: EntityId[] = [];\n\n\t\tsubmissions.forEach((submission) => {\n\t\t\tconst submitterIds = submission.getSubmitterIds();\n\t\t\ttaskSubmitterIds = [...taskSubmitterIds, ...submitterIds];\n\t\t});\n\n\t\tconst uniqueIds = [...new Set(taskSubmitterIds)];\n\t\tconst numberOfSubmitters = uniqueIds.length;\n\n\t\treturn numberOfSubmitters;\n\t}\n\n\tprivate isUserSubstitutionTeacherInCourse(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.course ? this.course.isUserSubstitutionTeacher(user) : false;\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic createTeacherStatusForUser(user: User): ITaskStatus {\n\t\tconst submittedSubmissions = this.getSubmittedSubmissions();\n\t\tconst gradedSubmissions = this.getGradedSubmissions();\n\n\t\tconst numberOfSubmitters = this.calculateNumberOfSubmitters(submittedSubmissions);\n\t\tconst numberOfSubmittersWithGrade = this.calculateNumberOfSubmitters(gradedSubmissions);\n\t\tconst maxSubmissions = this.getMaxSubmissions();\n\t\tconst isDraft = this.isDraft();\n\t\tconst isFinished = this.isFinishedForUser(user);\n\t\tconst isSubstitutionTeacher = this.isUserSubstitutionTeacherInCourse(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: numberOfSubmitters,\n\t\t\tgraded: numberOfSubmittersWithGrade,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\tpublic createStudentStatusForUser(user: User): ITaskStatus {\n\t\tconst isSubmitted = this.isSubmittedForUser(user);\n\t\tconst isGraded = this.isGradedForUser(user);\n\t\tconst maxSubmissions = 1;\n\t\tconst isDraft = this.isDraft();\n\t\tconst isSubstitutionTeacher = false;\n\t\tconst isFinished = this.isFinishedForUser(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: isSubmitted ? 1 : 0,\n\t\t\tgraded: isGraded ? 1 : 0,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\t// TODO: based on the parent relationship\n\tpublic getParentData(): TaskParentDescriptions {\n\t\tlet descriptions: TaskParentDescriptions;\n\t\tif (this.course) {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: this.course.name,\n\t\t\t\tcourseId: this.course.id,\n\t\t\t\tlessonName: this.lesson ? this.lesson.name : '',\n\t\t\t\tlessonHidden: this.lesson ? this.lesson.hidden : false,\n\t\t\t\tcolor: this.course.color,\n\t\t\t};\n\t\t} else {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: '',\n\t\t\t\tcourseId: '',\n\t\t\t\tlessonName: '',\n\t\t\t\tlessonHidden: false,\n\t\t\t\tcolor: '#ACACAC',\n\t\t\t};\n\t\t}\n\n\t\treturn descriptions;\n\t}\n\n\tpublic finishForUser(user: User): void {\n\t\tthis.finished.add(user);\n\t}\n\n\tpublic restoreForUser(user: User): void {\n\t\tthis.finished.remove(user);\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.school.id;\n\t}\n\n\tpublic publish(): void {\n\t\tthis.private = false;\n\t\tthis.availableDate = new Date();\n\t}\n\n\tpublic unpublish(): void {\n\t\tthis.private = true;\n\t}\n}\n\nexport function isTask(reference: unknown): reference is Task {\n\treturn reference instanceof Task;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/TaskApiModule.html":{"url":"modules/TaskApiModule.html","title":"module - TaskApiModule","body":"\n \n\n\n\n\n Modules\n TaskApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_TaskApiModule\n\n\n\ncluster_TaskApiModule_imports\n\n\n\ncluster_TaskApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nTaskApiModule\n\nTaskApiModule\n\nTaskApiModule -->\n\nAuthorizationModule->TaskApiModule\n\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\nTaskApiModule -->\n\nCopyHelperModule->TaskApiModule\n\n\n\n\n\nTaskModule\n\nTaskModule\n\nTaskApiModule -->\n\nTaskModule->TaskApiModule\n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nTaskApiModule -->\n\nCourseRepo->TaskApiModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nTaskApiModule -->\n\nLessonRepo->TaskApiModule\n\n\n\n\n\nSubmissionUc\n\nSubmissionUc\n\nTaskApiModule -->\n\nSubmissionUc->TaskApiModule\n\n\n\n\n\nTaskCopyUC\n\nTaskCopyUC\n\nTaskApiModule -->\n\nTaskCopyUC->TaskApiModule\n\n\n\n\n\nTaskRepo\n\nTaskRepo\n\nTaskApiModule -->\n\nTaskRepo->TaskApiModule\n\n\n\n\n\nTaskUC\n\nTaskUC\n\nTaskApiModule -->\n\nTaskUC->TaskApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/task/task-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CourseRepo\n \n \n LessonRepo\n \n \n SubmissionUc\n \n \n TaskCopyUC\n \n \n TaskRepo\n \n \n TaskUC\n \n \n \n \n Controllers\n \n \n TaskController\n \n \n SubmissionController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CopyHelperModule\n \n \n TaskModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { CourseRepo, LessonRepo, TaskRepo } from '@shared/repo';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { CopyHelperModule } from '@src/modules/copy-helper/copy-helper.module';\nimport { SubmissionController, TaskController } from './controller';\nimport { TaskModule } from './task.module';\nimport { SubmissionUc, TaskCopyUC, TaskUC } from './uc';\n\n@Module({\n\timports: [AuthorizationModule, CopyHelperModule, TaskModule],\n\tcontrollers: [TaskController, SubmissionController],\n\tproviders: [TaskUC, TaskRepo, LessonRepo, CourseRepo, TaskCopyUC, SubmissionUc],\n})\nexport class TaskApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/TaskBoardElement.html":{"url":"entities/TaskBoardElement.html","title":"entity - TaskBoardElement","body":"\n \n\n\n\n\n\n\n\n Entities\n TaskBoardElement\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/legacy-board/task-boardelement.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : Task\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('Task', {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/legacy-board/task-boardelement.entity.ts:16\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne } from '@mikro-orm/core';\nimport { Task } from '../task.entity';\nimport { BoardElement, BoardElementType } from './boardelement.entity';\n\n@Entity({ discriminatorValue: BoardElementType.Task })\nexport class TaskBoardElement extends BoardElement {\n\tconstructor(props: { target: Task }) {\n\t\tsuper(props);\n\t\tthis.boardElementType = BoardElementType.Task;\n\t}\n\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Task', { nullable: true })\n\ttarget!: Task;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/TaskController.html":{"url":"controllers/TaskController.html","title":"controller - TaskController","body":"\n \n\n\n\n\n\n\n Controllers\n TaskController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/task.controller.ts\n \n\n \n Prefix\n \n \n tasks\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n copyTask\n \n \n \n Async\n delete\n \n \n \n Async\n findAll\n \n \n \n Async\n findAllFinished\n \n \n Private\n Async\n findAllTasks\n \n \n \n Async\n finish\n \n \n \n Async\n restore\n \n \n \n Async\n revertPublished\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(currentUser: ICurrentUser, urlParams: TaskUrlParams, params: TaskCopyApiParams)\n \n \n\n \n \n Decorators : \n \n @Post(':taskId/copy')@RequestTimeout(undefined.INCOMING_REQUEST_TIMEOUT_COPY_API)\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n params\n \n TaskCopyApiParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(urlParams: TaskUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Delete(':taskId')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:100\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll(currentUser: ICurrentUser, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get()\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllFinished\n \n \n \n \n \n \n \n findAllFinished(currentUser: ICurrentUser, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get('finished')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findAllTasks\n \n \n \n \n \n \n \n findAllTasks(currentUser: ICurrentUser, pagination: PaginationParams, finished)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:37\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n \n \n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n \n \n\n \n \n finished\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n finish\n \n \n \n \n \n \n \n finish(urlParams: TaskUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':taskId/finish')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n restore\n \n \n \n \n \n \n \n restore(urlParams: TaskUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':taskId/restore')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n revertPublished\n \n \n \n \n \n \n \n revertPublished(urlParams: TaskUrlParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch(':taskId/revertPublished')\n \n \n\n \n \n Defined in apps/server/src/modules/task/controller/task.controller.ts:72\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TaskUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { RequestTimeout } from '@shared/common';\nimport { PaginationParams } from '@shared/controller/';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { CopyApiResponse, CopyMapper } from '@src/modules/copy-helper';\nimport { serverConfig } from '@src/modules/server/server.config';\nimport { TaskMapper } from '../mapper';\nimport { TaskCopyUC } from '../uc/task-copy.uc';\nimport { TaskUC } from '../uc/task.uc';\nimport { TaskListResponse, TaskResponse, TaskUrlParams } from './dto';\nimport { TaskCopyApiParams } from './dto/task-copy.params';\n\n@ApiTags('Task')\n@Authenticate('jwt')\n@Controller('tasks')\nexport class TaskController {\n\tconstructor(private readonly taskUc: TaskUC, private readonly taskCopyUc: TaskCopyUC) {}\n\n\t@Get()\n\tasync findAll(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\treturn this.findAllTasks(currentUser, pagination);\n\t}\n\n\t@Get('finished')\n\tasync findAllFinished(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\treturn this.findAllTasks(currentUser, pagination, true);\n\t}\n\n\tprivate async findAllTasks(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() pagination: PaginationParams,\n\t\tfinished = false\n\t): Promise {\n\t\tconst [tasksWithStatus, total] = finished\n\t\t\t? await this.taskUc.findAllFinished(currentUser.userId, pagination)\n\t\t\t: await this.taskUc.findAll(currentUser.userId, pagination);\n\n\t\tconst taskResponses = tasksWithStatus.map((task) => TaskMapper.mapToResponse(task));\n\n\t\tconst { skip, limit } = pagination;\n\t\tconst result = new TaskListResponse(taskResponses, total, skip, limit);\n\t\treturn result;\n\t}\n\n\t@Patch(':taskId/finish')\n\tasync finish(@Param() urlParams: TaskUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst task = await this.taskUc.changeFinishedForUser(currentUser.userId, urlParams.taskId, true);\n\n\t\tconst response = TaskMapper.mapToResponse(task);\n\n\t\treturn response;\n\t}\n\n\t@Patch(':taskId/restore')\n\tasync restore(@Param() urlParams: TaskUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst task = await this.taskUc.changeFinishedForUser(currentUser.userId, urlParams.taskId, false);\n\n\t\tconst response = TaskMapper.mapToResponse(task);\n\n\t\treturn response;\n\t}\n\n\t@Patch(':taskId/revertPublished')\n\tasync revertPublished(\n\t\t@Param() urlParams: TaskUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst task = await this.taskUc.revertPublished(currentUser.userId, urlParams.taskId);\n\n\t\tconst response = TaskMapper.mapToResponse(task);\n\n\t\treturn response;\n\t}\n\n\t@Post(':taskId/copy')\n\t@RequestTimeout(serverConfig().INCOMING_REQUEST_TIMEOUT_COPY_API)\n\tasync copyTask(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() urlParams: TaskUrlParams,\n\t\t@Body() params: TaskCopyApiParams\n\t): Promise {\n\t\tconst copyStatus = await this.taskCopyUc.copyTask(\n\t\t\tcurrentUser.userId,\n\t\t\turlParams.taskId,\n\t\t\tCopyMapper.mapTaskCopyToDomain(params, currentUser.userId)\n\t\t);\n\t\tconst dto = CopyMapper.mapToResponse(copyStatus);\n\t\treturn dto;\n\t}\n\n\t@Delete(':taskId')\n\tasync delete(@Param() urlParams: TaskUrlParams, @CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst result = await this.taskUc.delete(currentUser.userId, urlParams.taskId);\n\n\t\treturn result;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskCopyApiParams.html":{"url":"classes/TaskCopyApiParams.html","title":"class - TaskCopyApiParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskCopyApiParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task-copy.params.ts\n \n\n\n \n Description\n \n \n DTO for creating a task copy.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()@ApiPropertyOptional({pattern: '[a-f0-9]{24}', description: 'Destination course parent Id the task is copied to'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-copy.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsMongoId()@ApiPropertyOptional({pattern: '[a-f0-9]{24}', description: 'Destination lesson parent Id the task is copied to'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-copy.params.ts:22\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsMongoId, IsOptional } from 'class-validator';\n\n/**\n * DTO for creating a task copy.\n */\nexport class TaskCopyApiParams {\n\t@IsOptional()\n\t@IsMongoId()\n\t@ApiPropertyOptional({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Destination course parent Id the task is copied to',\n\t})\n\tcourseId?: string;\n\n\t@IsOptional()\n\t@IsMongoId()\n\t@ApiPropertyOptional({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'Destination lesson parent Id the task is copied to',\n\t})\n\tlessonId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskCopyService.html":{"url":"injectables/TaskCopyService.html","title":"injectable - TaskCopyService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskCopyService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/service/task-copy.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyTask\n \n \n Private\n Async\n copyTaskEntity\n \n \n Private\n deriveCopyStatus\n \n \n Private\n Async\n updateFileUrls\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(taskRepo: TaskRepo, copyHelperService: CopyHelperService, copyFilesService: CopyFilesService)\n \n \n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n copyFilesService\n \n \n CopyFilesService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(params: TaskCopyParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskCopyParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n copyTaskEntity\n \n \n \n \n \n \n \n copyTaskEntity(params: TaskCopyParams, originalTask: Task, user: User, destinationCourse: Course | undefined, destinationLesson: LessonEntity | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskCopyParams\n \n\n \n No\n \n\n\n \n \n originalTask\n \n Task\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n destinationCourse\n \n Course | undefined\n \n\n \n No\n \n\n\n \n \n destinationLesson\n \n LessonEntity | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deriveCopyStatus\n \n \n \n \n \n \n \n deriveCopyStatus(fileCopyStatus: CopyStatus, originalTask: Task, taskCopy: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileCopyStatus\n \n CopyStatus\n \n\n \n No\n \n\n\n \n \n originalTask\n \n Task\n \n\n \n No\n \n\n\n \n \n taskCopy\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyStatus\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateFileUrls\n \n \n \n \n \n \n \n updateFileUrls(task: Task, fileUrlReplacements: FileUrlReplacement[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task-copy.service.ts:63\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n fileUrlReplacements\n \n FileUrlReplacement[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { Course, LessonEntity, Task, User } from '@shared/domain/entity';\nimport { TaskRepo } from '@shared/repo';\nimport { CopyElementType, CopyHelperService, CopyStatus, CopyStatusEnum } from '@src/modules/copy-helper';\nimport { CopyFilesService } from '@src/modules/files-storage-client';\nimport { FileUrlReplacement } from '@src/modules/files-storage-client/service/copy-files.service';\n\ntype TaskCopyParams = {\n\toriginalTaskId: EntityId;\n\tdestinationCourse?: Course;\n\tdestinationLesson?: LessonEntity;\n\tuser: User;\n\tcopyName?: string;\n};\n\n@Injectable()\nexport class TaskCopyService {\n\tconstructor(\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly copyHelperService: CopyHelperService,\n\t\tprivate readonly copyFilesService: CopyFilesService\n\t) {}\n\n\tasync copyTask(params: TaskCopyParams): Promise {\n\t\tconst { user, destinationLesson, destinationCourse } = params;\n\t\tconst originalTask = await this.taskRepo.findById(params.originalTaskId);\n\n\t\tconst taskCopy = await this.copyTaskEntity(params, originalTask, user, destinationCourse, destinationLesson);\n\n\t\tconst { fileUrlReplacements, fileCopyStatus } = await this.copyFilesService.copyFilesOfEntity(\n\t\t\toriginalTask,\n\t\t\ttaskCopy,\n\t\t\tuser.id\n\t\t);\n\n\t\tawait this.updateFileUrls(taskCopy, fileUrlReplacements);\n\n\t\treturn this.deriveCopyStatus(fileCopyStatus, originalTask, taskCopy);\n\t}\n\n\tprivate async copyTaskEntity(\n\t\tparams: TaskCopyParams,\n\t\toriginalTask: Task,\n\t\tuser: User,\n\t\tdestinationCourse: Course | undefined,\n\t\tdestinationLesson: LessonEntity | undefined\n\t) {\n\t\tconst taskCopy = new Task({\n\t\t\tname: params.copyName || originalTask.name,\n\t\t\tdescription: originalTask.description,\n\t\t\tdescriptionInputFormat: originalTask.descriptionInputFormat,\n\t\t\tschool: user.school,\n\t\t\tcreator: user,\n\t\t\tcourse: destinationCourse,\n\t\t\tlesson: destinationLesson,\n\t\t\tteamSubmissions: originalTask.teamSubmissions,\n\t\t});\n\t\tawait this.taskRepo.createTask(taskCopy);\n\t\treturn taskCopy;\n\t}\n\n\tprivate async updateFileUrls(task: Task, fileUrlReplacements: FileUrlReplacement[]) {\n\t\tfileUrlReplacements.forEach(({ regex, replacement }) => {\n\t\t\ttask.description = task.description.replace(regex, replacement);\n\t\t});\n\t\tawait this.taskRepo.save(task);\n\t}\n\n\tprivate deriveCopyStatus(fileCopyStatus: CopyStatus, originalTask: Task, taskCopy: Task) {\n\t\tconst elements = [\n\t\t\t{\n\t\t\t\ttype: CopyElementType.METADATA,\n\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.CONTENT,\n\t\t\t\tstatus: CopyStatusEnum.SUCCESS,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: CopyElementType.SUBMISSION_GROUP,\n\t\t\t\tstatus: CopyStatusEnum.NOT_DOING,\n\t\t\t},\n\t\t\tfileCopyStatus,\n\t\t];\n\n\t\tconst status: CopyStatus = {\n\t\t\ttitle: taskCopy.name,\n\t\t\ttype: CopyElementType.TASK,\n\t\t\tstatus: this.copyHelperService.deriveStatusFromElements(elements),\n\t\t\tcopyEntity: taskCopy,\n\t\t\toriginalEntity: originalTask,\n\t\t\telements,\n\t\t};\n\t\treturn status;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskCopyUC.html":{"url":"injectables/TaskCopyUC.html","title":"injectable - TaskCopyUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskCopyUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/uc/task-copy.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n copyTask\n \n \n Private\n featureEnabled\n \n \n Private\n Async\n getCopyName\n \n \n Private\n Async\n getDestinationCourse\n \n \n Private\n Async\n getDestinationLesson\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(courseRepo: CourseRepo, lessonRepo: LessonRepo, authorisation: AuthorizationService, taskCopyService: TaskCopyService, taskRepo: TaskRepo, copyHelperService: CopyHelperService)\n \n \n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n authorisation\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n taskCopyService\n \n \n TaskCopyService\n \n \n \n No\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n copyHelperService\n \n \n CopyHelperService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n copyTask\n \n \n \n \n \n \n \n copyTask(userId: EntityId, taskId: EntityId, parentParams: TaskCopyParentParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n parentParams\n \n TaskCopyParentParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n featureEnabled\n \n \n \n \n \n \n \n featureEnabled()\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:92\n \n \n\n\n \n \n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getCopyName\n \n \n \n \n \n \n \n getCopyName(originalTaskName: string, parentCourseId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n originalTaskName\n \n string\n \n\n \n No\n \n\n\n \n \n parentCourseId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getDestinationCourse\n \n \n \n \n \n \n \n getDestinationCourse(courseId: string | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:70\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseId\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getDestinationLesson\n \n \n \n \n \n \n \n getDestinationLesson(lessonId: string | undefined, user: User)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task-copy.uc.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonId\n \n string | undefined\n \n\n \n No\n \n\n\n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons';\nimport { ForbiddenException, Injectable, InternalServerErrorException, NotFoundException } from '@nestjs/common';\nimport { Course, EntityId, LessonEntity, User } from '@shared/domain';\nimport { CourseRepo, LessonRepo, TaskRepo } from '@shared/repo';\nimport {\n\tAction,\n\tAuthorizableReferenceType,\n\tAuthorizationContextBuilder,\n\tAuthorizationService,\n} from '@src/modules/authorization';\nimport { CopyHelperService, CopyStatus } from '@src/modules/copy-helper';\nimport { TaskCopyService } from '../service';\nimport { TaskCopyParentParams } from '../types';\n\n@Injectable()\nexport class TaskCopyUC {\n\tconstructor(\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly authorisation: AuthorizationService,\n\t\tprivate readonly taskCopyService: TaskCopyService,\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly copyHelperService: CopyHelperService\n\t) {}\n\n\tasync copyTask(userId: EntityId, taskId: EntityId, parentParams: TaskCopyParentParams): Promise {\n\t\tthis.featureEnabled();\n\t\tconst user = await this.authorisation.getUserWithPermissions(userId);\n\t\tconst originalTask = await this.taskRepo.findById(taskId);\n\t\tif (!this.authorisation.hasPermission(user, originalTask, AuthorizationContextBuilder.read([]))) {\n\t\t\tthrow new NotFoundException('could not find task to copy');\n\t\t}\n\n\t\tconst destinationCourse = await this.getDestinationCourse(parentParams.courseId);\n\t\tif (parentParams.courseId) {\n\t\t\tawait this.authorisation.checkPermissionByReferences(\n\t\t\t\tuserId,\n\t\t\t\tAuthorizableReferenceType.Course,\n\t\t\t\tparentParams.courseId,\n\t\t\t\t{\n\t\t\t\t\taction: Action.write,\n\t\t\t\t\trequiredPermissions: [],\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tconst destinationLesson = await this.getDestinationLesson(parentParams.lessonId, user);\n\t\tconst copyName = await this.getCopyName(originalTask.name, parentParams.courseId);\n\n\t\tconst status = await this.taskCopyService.copyTask({\n\t\t\toriginalTaskId: originalTask.id,\n\t\t\tdestinationCourse,\n\t\t\tdestinationLesson,\n\t\t\tuser,\n\t\t\tcopyName,\n\t\t});\n\n\t\treturn status;\n\t}\n\n\tprivate async getCopyName(originalTaskName: string, parentCourseId: EntityId | undefined) {\n\t\tlet existingNames: string[] = [];\n\t\tif (parentCourseId) {\n\t\t\tconst [existingTasks] = await this.taskRepo.findBySingleParent('', parentCourseId);\n\t\t\texistingNames = existingTasks.map((t) => t.name);\n\t\t}\n\t\treturn this.copyHelperService.deriveCopyName(originalTaskName, existingNames);\n\t}\n\n\tprivate async getDestinationCourse(courseId: string | undefined): Promise {\n\t\tif (courseId === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst destinationCourse = await this.courseRepo.findById(courseId);\n\n\t\treturn destinationCourse;\n\t}\n\n\tprivate async getDestinationLesson(lessonId: string | undefined, user: User): Promise {\n\t\tif (lessonId === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst destinationLesson = await this.lessonRepo.findById(lessonId);\n\t\tif (!this.authorisation.hasPermission(user, destinationLesson, AuthorizationContextBuilder.write([]))) {\n\t\t\tthrow new ForbiddenException('you dont have permission to add to this lesson');\n\t\t}\n\t\treturn destinationLesson;\n\t}\n\n\tprivate featureEnabled() {\n\t\tconst enabled = Configuration.get('FEATURE_COPY_SERVICE_ENABLED') as boolean;\n\t\tif (!enabled) {\n\t\t\tthrow new InternalServerErrorException('Copy Feature not enabled');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskCreateParams.html":{"url":"classes/TaskCreateParams.html","title":"class - TaskCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task-create.params.ts\n \n\n\n\n\n \n Implements\n \n \n ITaskCreate\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'Date since the task is published', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsMongoId()@IsOptional()@ApiPropertyOptional({description: 'The id of an course object.', pattern: '[a-f0-9]{24}', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@SanitizeHtml(InputFormat.RICH_TEXT_CK5)@ApiPropertyOptional({description: 'The description of the task'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'Date until the task submissions can be sent', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsMongoId()@IsOptional()@ApiPropertyOptional({description: 'The id of an lesson object.', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'The title of the task', required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-create.params.ts:33\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsDate, IsMongoId, IsOptional, IsString } from 'class-validator';\nimport { InputFormat, ITaskCreate } from '@shared/domain';\nimport { SanitizeHtml } from '@shared/controller';\n\nexport class TaskCreateParams implements ITaskCreate {\n\t@IsString()\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The id of an course object.',\n\t\tpattern: '[a-f0-9]{24}',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcourseId?: string;\n\n\t@IsString()\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The id of an lesson object.',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tlessonId?: string;\n\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'The title of the task',\n\t\trequired: true,\n\t})\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@SanitizeHtml(InputFormat.RICH_TEXT_CK5)\n\t@ApiPropertyOptional({\n\t\tdescription: 'The description of the task',\n\t})\n\tdescription?: string;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date since the task is published',\n\t\ttype: Date,\n\t})\n\tavailableDate?: Date;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date until the task submissions can be sent',\n\t\ttype: Date,\n\t})\n\tdueDate?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskFactory.html":{"url":"classes/TaskFactory.html","title":"class - TaskFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/task.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n draft\n \n \n finished\n \n \n isPlanned\n \n \n isPublished\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n draft\n \n \n \n \n \n \ndraft()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/task.factory.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n finished\n \n \n \n \n \n \nfinished(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/task.factory.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isPlanned\n \n \n \n \n \n \nisPlanned()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/task.factory.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n isPublished\n \n \n \n \n \n \nisPublished()\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/task.factory.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ITaskProperties, Task } from '@shared/domain';\nimport { User } from '@shared/domain/entity';\nimport { DeepPartial } from 'fishery';\nimport { BaseFactory } from './base.factory';\nimport { schoolFactory } from './school.factory';\nimport { userFactory } from './user.factory';\n\nconst yesterday = new Date(Date.now() - 86400000);\n\nclass TaskFactory extends BaseFactory {\n\tdraft(): this {\n\t\tconst params: DeepPartial = { private: true };\n\n\t\treturn this.params(params);\n\t}\n\n\tisPlanned(): this {\n\t\tconst params: DeepPartial = { private: false, availableDate: new Date(Date.now() + 10000) };\n\n\t\treturn this.params(params);\n\t}\n\n\tisPublished(): this {\n\t\tconst params: DeepPartial = { private: false, availableDate: new Date(Date.now() - 10000) };\n\n\t\treturn this.params(params);\n\t}\n\n\tfinished(user: User): this {\n\t\tconst params: DeepPartial = { finished: [user] };\n\t\treturn this.params(params);\n\t}\n}\n\nexport const taskFactory = TaskFactory.define(Task, ({ sequence }) => {\n\tconst school = schoolFactory.build();\n\tconst creator = userFactory.build({ school });\n\t// private is by default in constructor true, but in the most test cases we need private: false\n\treturn {\n\t\tname: `task #${sequence}`,\n\t\tprivate: false,\n\t\tavailableDate: yesterday,\n\t\tcreator,\n\t\tschool,\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskListResponse.html":{"url":"classes/TaskListResponse.html","title":"class - TaskListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: TaskResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:67\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n TaskResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : TaskResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:74\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { RichText } from '@shared/domain';\nimport { TaskStatusResponse } from './task-status.response';\n\n/**\n * DTO for returning a task document via api.\n */\nexport class TaskResponse {\n\tconstructor({ id, name, courseName, courseId, createdAt, updatedAt, status }: TaskResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t\tthis.courseName = courseName;\n\t\tthis.courseId = courseId;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.lessonHidden = false;\n\t\tthis.status = status;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tavailableDate?: Date;\n\n\t@ApiPropertyOptional()\n\tdueDate?: Date;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tcourseName: string = '' as string;\n\n\t@ApiPropertyOptional()\n\tlessonName?: string;\n\n\t@ApiProperty()\n\tcourseId: string = '' as string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Task description object, with props content: string and type: input format types',\n\t\ttype: RichText,\n\t})\n\t@DecodeHtmlEntities()\n\tdescription?: RichText;\n\n\t@ApiProperty()\n\tlessonHidden: boolean;\n\n\t@ApiPropertyOptional()\n\tdisplayColor?: string;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\tstatus: TaskStatusResponse;\n}\n\nexport class TaskListResponse extends PaginationResponse {\n\tconstructor(data: TaskResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [TaskResponse] })\n\tdata: TaskResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskMapper.html":{"url":"classes/TaskMapper.html","title":"class - TaskMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/mapper/task.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapTaskCreateToDomain\n \n \n Static\n mapTaskUpdateToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapTaskCreateToDomain\n \n \n \n \n \n \n \n mapTaskCreateToDomain(params: TaskCreateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/task.mapper.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ITaskCreate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapTaskUpdateToDomain\n \n \n \n \n \n \n \n mapTaskUpdateToDomain(params: TaskUpdateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/task.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n TaskUpdateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ITaskUpdate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(taskWithStatus: TaskWithStatusVo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/task.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskWithStatus\n \n TaskWithStatusVo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { InputFormat, ITaskCreate, ITaskUpdate, RichText, TaskWithStatusVo } from '@shared/domain';\nimport { TaskCreateParams, TaskResponse, TaskUpdateParams } from '../controller/dto';\nimport { TaskStatusMapper } from './task-status.mapper';\n\nexport class TaskMapper {\n\tstatic mapToResponse(taskWithStatus: TaskWithStatusVo): TaskResponse {\n\t\tconst { task, status } = taskWithStatus;\n\t\tconst taskDesc = task.getParentData();\n\t\tconst statusDto = TaskStatusMapper.mapToResponse(status);\n\n\t\tconst dto = new TaskResponse({\n\t\t\tid: task.id,\n\t\t\tname: task.name,\n\t\t\tcourseName: taskDesc.courseName,\n\t\t\tcourseId: taskDesc.courseId,\n\t\t\tcreatedAt: task.createdAt,\n\t\t\tupdatedAt: task.updatedAt,\n\t\t\tlessonHidden: false,\n\t\t\tstatus: statusDto,\n\t\t});\n\t\tif (task.description) {\n\t\t\tdto.description = new RichText({\n\t\t\t\tcontent: task.description,\n\t\t\t\ttype: task.descriptionInputFormat || InputFormat.RICH_TEXT_CK4,\n\t\t\t});\n\t\t}\n\t\tdto.availableDate = task.availableDate;\n\t\tdto.dueDate = task.dueDate;\n\n\t\tdto.displayColor = taskDesc.color;\n\t\tif (taskDesc.lessonName) {\n\t\t\tdto.lessonName = taskDesc.lessonName;\n\t\t}\n\t\tdto.lessonHidden = taskDesc.lessonHidden;\n\n\t\treturn dto;\n\t}\n\n\tstatic mapTaskUpdateToDomain(params: TaskUpdateParams): ITaskUpdate {\n\t\tconst dto: ITaskUpdate = {\n\t\t\tname: params.name,\n\t\t\tcourseId: params.courseId,\n\t\t\tlessonId: params.lessonId,\n\t\t\tdescription: params.description,\n\t\t\tavailableDate: params.availableDate,\n\t\t\tdueDate: params.dueDate,\n\t\t};\n\t\tif (params.description) {\n\t\t\tdto.descriptionInputFormat = InputFormat.RICH_TEXT_CK5;\n\t\t}\n\t\treturn dto;\n\t}\n\n\tstatic mapTaskCreateToDomain(params: TaskCreateParams): ITaskCreate {\n\t\tconst dto: ITaskCreate = {\n\t\t\tname: params.name || 'Draft',\n\t\t\tcourseId: params.courseId,\n\t\t\tlessonId: params.lessonId,\n\t\t\tdescription: params.description,\n\t\t\tavailableDate: params.availableDate,\n\t\t\tdueDate: params.dueDate,\n\t\t};\n\t\tif (params.description) {\n\t\t\tdto.descriptionInputFormat = InputFormat.RICH_TEXT_CK5;\n\t\t}\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/TaskModule.html":{"url":"modules/TaskModule.html","title":"module - TaskModule","body":"\n \n\n\n\n\n Modules\n TaskModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_TaskModule\n\n\n\ncluster_TaskModule_imports\n\n\n\ncluster_TaskModule_exports\n\n\n\ncluster_TaskModule_providers\n\n\n\n\nCopyHelperModule\n\nCopyHelperModule\n\n\n\nTaskModule\n\nTaskModule\n\nTaskModule -->\n\nCopyHelperModule->TaskModule\n\n\n\n\n\nFilesStorageClientModule\n\nFilesStorageClientModule\n\nTaskModule -->\n\nFilesStorageClientModule->TaskModule\n\n\n\n\n\nSubmissionService \n\nSubmissionService \n\nSubmissionService -->\n\nTaskModule->SubmissionService \n\n\n\n\n\nTaskCopyService \n\nTaskCopyService \n\nTaskCopyService -->\n\nTaskModule->TaskCopyService \n\n\n\n\n\nTaskService \n\nTaskService \n\nTaskService -->\n\nTaskModule->TaskService \n\n\n\n\n\nCourseRepo\n\nCourseRepo\n\nTaskModule -->\n\nCourseRepo->TaskModule\n\n\n\n\n\nLessonRepo\n\nLessonRepo\n\nTaskModule -->\n\nLessonRepo->TaskModule\n\n\n\n\n\nSubmissionRepo\n\nSubmissionRepo\n\nTaskModule -->\n\nSubmissionRepo->TaskModule\n\n\n\n\n\nSubmissionService\n\nSubmissionService\n\nTaskModule -->\n\nSubmissionService->TaskModule\n\n\n\n\n\nTaskCopyService\n\nTaskCopyService\n\nTaskModule -->\n\nTaskCopyService->TaskModule\n\n\n\n\n\nTaskRepo\n\nTaskRepo\n\nTaskModule -->\n\nTaskRepo->TaskModule\n\n\n\n\n\nTaskService\n\nTaskService\n\nTaskModule -->\n\nTaskService->TaskModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/task/task.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CourseRepo\n \n \n LessonRepo\n \n \n SubmissionRepo\n \n \n SubmissionService\n \n \n TaskCopyService\n \n \n TaskRepo\n \n \n TaskService\n \n \n \n \n Imports\n \n \n CopyHelperModule\n \n \n FilesStorageClientModule\n \n \n \n \n Exports\n \n \n SubmissionService\n \n \n TaskCopyService\n \n \n TaskService\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { CourseRepo, LessonRepo, SubmissionRepo, TaskRepo } from '@shared/repo';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { CopyHelperModule } from '@src/modules/copy-helper';\nimport { FilesStorageClientModule } from '@src/modules/files-storage-client';\nimport { SubmissionService, TaskCopyService, TaskService } from './service';\n\n@Module({\n\timports: [forwardRef(() => AuthorizationModule), FilesStorageClientModule, CopyHelperModule],\n\tproviders: [TaskService, TaskCopyService, SubmissionService, TaskRepo, LessonRepo, CourseRepo, SubmissionRepo],\n\texports: [TaskService, TaskCopyService, SubmissionService],\n})\nexport class TaskModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskRepo.html":{"url":"injectables/TaskRepo.html","title":"injectable - TaskRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/task/task.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n createTask\n \n \n Async\n findAllByParentIds\n \n \n Async\n findAllFinishedByParentIds\n \n \n Async\n findById\n \n \n Async\n findBySingleParent\n \n \n Private\n Async\n findTasksAndCount\n \n \n Private\n Async\n populate\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n createTask\n \n \n \n \n \n \n \n createTask(task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllByParentIds\n \n \n \n \n \n \n \n findAllByParentIds(parentIds: literal type, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:106\n \n \n\n\n \n \n Find all tasks by their parents which can be any of\n\na teacher who owns the task\na list of courses\na list of lessons\n\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n parentIds\n \n literal type\n \n\n \n No\n \n\n\n \n parentIds for teacher, courses and lesson\n\n \n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n filters\n\n \n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n pagination, sorting\n\n \n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllFinishedByParentIds\n \n \n \n \n \n \n \n findAllFinishedByParentIds(parentIds: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n parentIds\n \n literal type\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:30\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySingleParent\n \n \n \n \n \n \n \n findBySingleParent(creatorId: EntityId, courseId: EntityId, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:164\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findTasksAndCount\n \n \n \n \n \n \n \n findTasksAndCount(query: FilterQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:190\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populate\n \n \n \n \n \n \n \n populate(tasks: Task[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n tasks\n \n Task[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/task/task.repo.ts:11\n \n \n\n \n \n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { Task } from '@shared/domain/entity';\nimport { IFindOptions, SortOrder } from '@shared/domain/interface';\nimport { Counted, EntityId } from '@shared/domain/types';\nimport { BaseRepo } from '../base.repo';\nimport { TaskScope } from './task-scope';\n\n@Injectable()\nexport class TaskRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn Task;\n\t}\n\n\tprivate async populate(tasks: Task[]): Promise {\n\t\tawait this._em.populate(tasks, [\n\t\t\t'course',\n\t\t\t'lesson',\n\t\t\t'lesson.course',\n\t\t\t'lesson.courseGroup',\n\t\t\t'submissions',\n\t\t\t'submissions.courseGroup',\n\t\t]);\n\t}\n\n\tasync createTask(task: Task): Promise {\n\t\treturn this.save(this.create(task));\n\t}\n\n\tasync findById(id: EntityId): Promise {\n\t\tconst task = await super.findById(id);\n\n\t\tawait this.populate([task]);\n\n\t\treturn task;\n\t}\n\n\tasync findAllFinishedByParentIds(\n\t\tparentIds: {\n\t\t\tcreatorId: EntityId;\n\t\t\topenCourseIds: EntityId[];\n\t\t\tlessonIdsOfOpenCourses: EntityId[];\n\t\t\tfinishedCourseIds: EntityId[];\n\t\t\tlessonIdsOfFinishedCourses: EntityId[];\n\t\t},\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new TaskScope('$or');\n\n\t\tconst parentsOpen = new TaskScope('$or');\n\t\tparentsOpen.byCourseIds(parentIds.openCourseIds);\n\t\tparentsOpen.byLessonIds(parentIds.lessonIdsOfOpenCourses);\n\n\t\tconst parentsFinished = new TaskScope('$or');\n\t\tparentsFinished.byCourseIds(parentIds.finishedCourseIds);\n\t\tparentsFinished.byLessonIds(parentIds.lessonIdsOfFinishedCourses);\n\n\t\tconst closedForOpenCoursesAndLessons = new TaskScope();\n\t\tclosedForOpenCoursesAndLessons.addQuery(parentsOpen.query);\n\t\tclosedForOpenCoursesAndLessons.byDraft(false);\n\t\tclosedForOpenCoursesAndLessons.byFinished(parentIds.creatorId, true);\n\n\t\tconst allForFinishedCoursesAndLessons = new TaskScope();\n\t\tallForFinishedCoursesAndLessons.addQuery(parentsFinished.query);\n\t\tallForFinishedCoursesAndLessons.byDraft(false);\n\n\t\t// must find also closed without course or lesson as parent\n\t\tconst closedWithoutParentForCreator = new TaskScope();\n\t\tclosedWithoutParentForCreator.byFinished(parentIds.creatorId, true);\n\t\tclosedWithoutParentForCreator.byOnlyCreatorId(parentIds.creatorId);\n\n\t\tconst closedDraftsForCreator = new TaskScope();\n\t\tclosedDraftsForCreator.addQuery(parentsOpen.query);\n\t\tclosedDraftsForCreator.byFinished(parentIds.creatorId, true);\n\t\tclosedDraftsForCreator.byCreatorId(parentIds.creatorId);\n\n\t\tconst allForFinishedCoursesAndLessonsForCreator = new TaskScope();\n\t\tallForFinishedCoursesAndLessonsForCreator.addQuery(parentsFinished.query);\n\t\tallForFinishedCoursesAndLessonsForCreator.byCreatorId(parentIds.creatorId);\n\n\t\tconst allForCreator = new TaskScope('$or');\n\t\tallForCreator.addQuery(closedWithoutParentForCreator.query);\n\t\tallForCreator.addQuery(closedDraftsForCreator.query);\n\t\tallForCreator.addQuery(allForFinishedCoursesAndLessonsForCreator.query);\n\n\t\tscope.addQuery(closedForOpenCoursesAndLessons.query);\n\t\tscope.addQuery(allForFinishedCoursesAndLessons.query);\n\t\tscope.addQuery(allForCreator.query);\n\n\t\tconst countedTaskList = await this.findTasksAndCount(scope.query, options);\n\n\t\treturn countedTaskList;\n\t}\n\n\t/**\n\t * Find all tasks by their parents which can be any of\n\t * - a teacher who owns the task\n\t * - a list of courses\n\t * - a list of lessons\n\t *\n\t * @param parentIds parentIds for teacher, courses and lesson\n\t * @param filters filters\n\t * @param options pagination, sorting\n\t * @returns\n\t */\n\tasync findAllByParentIds(\n\t\tparentIds: {\n\t\t\tcreatorId?: EntityId;\n\t\t\tcourseIds?: EntityId[];\n\t\t\tlessonIds?: EntityId[];\n\t\t},\n\t\tfilters?: {\n\t\t\tafterDueDateOrNone?: Date;\n\t\t\tfinished?: { userId: EntityId; value: boolean };\n\t\t\tavailableOn?: Date;\n\t\t},\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new TaskScope();\n\n\t\tconst parentIdScope = new TaskScope('$or');\n\n\t\tif (parentIds.creatorId) {\n\t\t\tparentIdScope.byOnlyCreatorId(parentIds.creatorId);\n\t\t}\n\n\t\tif (parentIds.courseIds) {\n\t\t\tparentIdScope.byCourseIds(parentIds.courseIds);\n\t\t}\n\n\t\tif (parentIds.lessonIds) {\n\t\t\tparentIdScope.byLessonIds(parentIds.lessonIds);\n\t\t}\n\n\t\tscope.addQuery(parentIdScope.query);\n\n\t\tif (filters?.finished) {\n\t\t\tscope.byFinished(filters.finished.userId, filters.finished.value);\n\t\t}\n\n\t\tif (parentIds.creatorId) {\n\t\t\tscope.excludeDraftsOfOthers(parentIds.creatorId);\n\t\t} else {\n\t\t\tscope.byDraft(false);\n\t\t}\n\n\t\tif (filters?.afterDueDateOrNone !== undefined) {\n\t\t\tscope.afterDueDateOrNone(filters.afterDueDateOrNone);\n\t\t}\n\n\t\tif (filters?.availableOn !== undefined) {\n\t\t\tif (parentIds.creatorId) {\n\t\t\t\tscope.excludeUnavailableOfOthers(parentIds.creatorId, filters.availableOn);\n\t\t\t} else {\n\t\t\t\tscope.byAvailable(filters?.availableOn);\n\t\t\t}\n\t\t}\n\n\t\tconst countedTaskList = await this.findTasksAndCount(scope.query, options);\n\n\t\treturn countedTaskList;\n\t}\n\n\tasync findBySingleParent(\n\t\tcreatorId: EntityId,\n\t\tcourseId: EntityId,\n\t\tfilters?: { draft?: boolean; noFutureAvailableDate?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst scope = new TaskScope();\n\t\tscope.byCourseIds([courseId]);\n\n\t\tif (filters?.draft !== undefined) {\n\t\t\tif (filters?.draft === true) {\n\t\t\t\tscope.excludeDraftsOfOthers(creatorId);\n\t\t\t} else {\n\t\t\t\tscope.byDraft(false);\n\t\t\t}\n\t\t}\n\n\t\tif (filters?.noFutureAvailableDate !== undefined) {\n\t\t\tscope.noFutureAvailableDate();\n\t\t}\n\n\t\tconst countedTaskList = await this.findTasksAndCount(scope.query, options);\n\n\t\treturn countedTaskList;\n\t}\n\n\tprivate async findTasksAndCount(query: FilterQuery, options?: IFindOptions): Promise> {\n\t\tconst pagination = options?.pagination || {};\n\t\tconst order = options?.order || {};\n\n\t\t// In order to solve pagination missmatches we apply a default order by _id. This is necessary\n\t\t// because other fields like the dueDate can be equal or null.\n\t\t// When pagination is used, sorting takes place on every page and if ambiguous leads to unwanted results.\n\t\t// Note: Indexes for dueDate and for _id do exist but there's no combined index.\n\t\t// This is okay, because the combined index would be too expensive for the particular purpose here.\n\t\tif (order._id == null) {\n\t\t\torder._id = SortOrder.asc;\n\t\t}\n\n\t\tconst [tasks, count] = await this._em.findAndCount(Task, query, {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order,\n\t\t});\n\n\t\tawait this.populate(tasks);\n\n\t\treturn [tasks, count];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskResponse.html":{"url":"classes/TaskResponse.html","title":"class - TaskResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task.response.ts\n \n\n\n \n Description\n \n \n DTO for returning a task document via api.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n courseId\n \n \n \n \n courseName\n \n \n \n createdAt\n \n \n \n \n Optional\n description\n \n \n \n Optional\n displayColor\n \n \n \n Optional\n dueDate\n \n \n \n id\n \n \n \n lessonHidden\n \n \n \n Optional\n lessonName\n \n \n \n \n name\n \n \n \n status\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: TaskResponse)\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n TaskResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '' as string\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:42\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n courseName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '' as string\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:58\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : RichText\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Task description object, with props content: string and type: input format types', type: RichText})@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n displayColor\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:55\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n lessonHidden\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:52\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lessonName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()@DecodeHtmlEntities()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : TaskStatusResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:64\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.response.ts:61\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { DecodeHtmlEntities, PaginationResponse } from '@shared/controller';\nimport { RichText } from '@shared/domain';\nimport { TaskStatusResponse } from './task-status.response';\n\n/**\n * DTO for returning a task document via api.\n */\nexport class TaskResponse {\n\tconstructor({ id, name, courseName, courseId, createdAt, updatedAt, status }: TaskResponse) {\n\t\tthis.id = id;\n\t\tthis.name = name;\n\t\tthis.courseName = courseName;\n\t\tthis.courseId = courseId;\n\t\tthis.createdAt = createdAt;\n\t\tthis.updatedAt = updatedAt;\n\t\tthis.lessonHidden = false;\n\t\tthis.status = status;\n\t}\n\n\t@ApiProperty()\n\tid: string;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tname: string;\n\n\t@ApiPropertyOptional()\n\tavailableDate?: Date;\n\n\t@ApiPropertyOptional()\n\tdueDate?: Date;\n\n\t@ApiProperty()\n\t@DecodeHtmlEntities()\n\tcourseName: string = '' as string;\n\n\t@ApiPropertyOptional()\n\tlessonName?: string;\n\n\t@ApiProperty()\n\tcourseId: string = '' as string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Task description object, with props content: string and type: input format types',\n\t\ttype: RichText,\n\t})\n\t@DecodeHtmlEntities()\n\tdescription?: RichText;\n\n\t@ApiProperty()\n\tlessonHidden: boolean;\n\n\t@ApiPropertyOptional()\n\tdisplayColor?: string;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiProperty()\n\tupdatedAt: Date;\n\n\t@ApiProperty()\n\tstatus: TaskStatusResponse;\n}\n\nexport class TaskListResponse extends PaginationResponse {\n\tconstructor(data: TaskResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [TaskResponse] })\n\tdata: TaskResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskRule.html":{"url":"injectables/TaskRule.html","title":"injectable - TaskRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/task.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n hasParentPermission\n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper, courseRule: CourseRule, lessonRule: LessonRule)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/task.rule.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n courseRule\n \n \n CourseRule\n \n \n \n No\n \n \n \n \n lessonRule\n \n \n LessonRule\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n hasParentPermission\n \n \n \n \n \n \n \n hasParentPermission(user: User, entity: Task, action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/task.rule.ts:43\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Task\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: Task, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/task.rule.ts:22\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Task\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: Task)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/task.rule.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Task, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { Action, AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { CourseRule } from './course.rule';\nimport { LessonRule } from './lesson.rule';\n\n@Injectable()\nexport class TaskRule implements Rule {\n\tconstructor(\n\t\tprivate readonly authorizationHelper: AuthorizationHelper,\n\t\tprivate readonly courseRule: CourseRule,\n\t\tprivate readonly lessonRule: LessonRule\n\t) {}\n\n\tpublic isApplicable(user: User, entity: Task): boolean {\n\t\tconst isMatched = entity instanceof Task;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: Task, context: AuthorizationContext): boolean {\n\t\tlet { action } = context;\n\t\tconst { requiredPermissions } = context;\n\t\tconst hasRequiredPermission = this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n\t\tif (!hasRequiredPermission) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst isCreator = this.authorizationHelper.hasAccessToEntity(user, entity, ['creator']);\n\t\tif (entity.isDraft()) {\n\t\t\taction = Action.write;\n\t\t}\n\n\t\tconst hasParentPermission = this.hasParentPermission(user, entity, action);\n\n\t\t// TODO why parent permission has OR cond?\n\t\tconst result = isCreator || hasParentPermission;\n\n\t\treturn result;\n\t}\n\n\tprivate hasParentPermission(user: User, entity: Task, action: Action): boolean {\n\t\tif (entity.lesson) {\n\t\t\tconst hasLessonPermission = this.lessonRule.hasPermission(user, entity.lesson, {\n\t\t\t\taction,\n\t\t\t\trequiredPermissions: [],\n\t\t\t});\n\t\t\treturn hasLessonPermission;\n\t\t}\n\t\tif (entity.course) {\n\t\t\tconst hasCoursePermission = this.courseRule.hasPermission(user, entity.course, {\n\t\t\t\taction,\n\t\t\t\trequiredPermissions: [],\n\t\t\t});\n\n\t\t\treturn hasCoursePermission;\n\t\t}\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskScope.html":{"url":"classes/TaskScope.html","title":"class - TaskScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/task/task-scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n afterDueDateOrNone\n \n \n byAvailable\n \n \n byCourseIds\n \n \n byCreatorId\n \n \n byDraft\n \n \n byFinished\n \n \n byLessonIds\n \n \n byOnlyCreatorId\n \n \n excludeDraftsOfOthers\n \n \n excludeUnavailableOfOthers\n \n \n Private\n getByDraftForCreatorQuery\n \n \n Private\n getByDraftQuery\n \n \n noFutureAvailableDate\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n afterDueDateOrNone\n \n \n \n \n \n \nafterDueDateOrNone(dueDate: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:83\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dueDate\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byAvailable\n \n \n \n \n \n \nbyAvailable(availableDate: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n availableDate\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byCourseIds\n \n \n \n \n \n \nbyCourseIds(courseIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n courseIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byCreatorId\n \n \n \n \n \n \nbyCreatorId(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byDraft\n \n \n \n \n \n \nbyDraft(isDraft: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isDraft\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byFinished\n \n \n \n \n \n \nbyFinished(userId: EntityId, value: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n value\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byLessonIds\n \n \n \n \n \n \nbyLessonIds(lessonIds: EntityId[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n lessonIds\n \n EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n byOnlyCreatorId\n \n \n \n \n \n \nbyOnlyCreatorId(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n excludeDraftsOfOthers\n \n \n \n \n \n \nexcludeDraftsOfOthers(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:52\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n excludeUnavailableOfOthers\n \n \n \n \n \n \nexcludeUnavailableOfOthers(creatorId: EntityId, availableOn: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n availableOn\n \n Date\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getByDraftForCreatorQuery\n \n \n \n \n \n \n \n getByDraftForCreatorQuery(creatorId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FilterQuery\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getByDraftQuery\n \n \n \n \n \n \n \n getByDraftQuery(isDraft: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:89\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isDraft\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FilterQuery\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n noFutureAvailableDate\n \n \n \n \n \n \nnoFutureAvailableDate()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/task/task-scope.ts:66\n \n \n\n\n \n \n\n \n Returns : TaskScope\n\n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { FilterQuery } from '@mikro-orm/core';\nimport { Task } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { Scope } from '../scope';\n\nexport class TaskScope extends Scope {\n\tbyFinished(userId: EntityId, value: boolean): TaskScope {\n\t\tif (value === true) {\n\t\t\tthis.addQuery({ finished: userId });\n\t\t} else {\n\t\t\tthis.addQuery({ finished: { $ne: userId } });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tbyOnlyCreatorId(creatorId: EntityId): TaskScope {\n\t\tthis.addQuery({\n\t\t\t$and: [{ creator: creatorId }, { course: null }, { lesson: null }],\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tbyCreatorId(creatorId: EntityId): TaskScope {\n\t\tthis.addQuery({ creator: creatorId });\n\n\t\treturn this;\n\t}\n\n\tbyCourseIds(courseIds: EntityId[]): TaskScope {\n\t\tthis.addQuery({\n\t\t\t$and: [{ course: { $in: courseIds } }, { lesson: null }],\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tbyLessonIds(lessonIds: EntityId[]): TaskScope {\n\t\tthis.addQuery({ lesson: { $in: lessonIds } });\n\n\t\treturn this;\n\t}\n\n\tbyDraft(isDraft: boolean): TaskScope {\n\t\tconst query = this.getByDraftQuery(isDraft);\n\t\tthis.addQuery(query);\n\n\t\treturn this;\n\t}\n\n\texcludeDraftsOfOthers(creatorId: EntityId): TaskScope {\n\t\tthis.addQuery({\n\t\t\t$or: [this.getByDraftForCreatorQuery(creatorId), this.getByDraftQuery(false)],\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tbyAvailable(availableDate: Date): TaskScope {\n\t\tthis.addQuery({ availableDate: { $lte: availableDate } });\n\n\t\treturn this;\n\t}\n\n\tnoFutureAvailableDate(): TaskScope {\n\t\tconst query = { availableDate: { $lte: new Date(Date.now()) } };\n\t\tthis.addQuery(query);\n\n\t\treturn this;\n\t}\n\n\texcludeUnavailableOfOthers(creatorId: EntityId, availableOn: Date): TaskScope {\n\t\tthis.addQuery({\n\t\t\t$or: [\n\t\t\t\t{ creator: creatorId },\n\t\t\t\t{ $and: [{ creator: { $ne: creatorId } }, { availableDate: { $lte: availableOn } }] },\n\t\t\t],\n\t\t});\n\t\treturn this;\n\t}\n\n\tafterDueDateOrNone(dueDate: Date): TaskScope {\n\t\tthis.addQuery({ $or: [{ dueDate: { $gte: dueDate } }, { dueDate: null }] });\n\n\t\treturn this;\n\t}\n\n\tprivate getByDraftQuery(isDraft: boolean): FilterQuery {\n\t\tconst query = isDraft ? { private: { $eq: true } } : { private: { $ne: true } };\n\n\t\treturn query;\n\t}\n\n\tprivate getByDraftForCreatorQuery(creatorId: EntityId): FilterQuery {\n\t\tconst query = { $and: [{ creator: creatorId }, this.getByDraftQuery(true)] };\n\n\t\treturn query;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskService.html":{"url":"injectables/TaskService.html","title":"injectable - TaskService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/service/task.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n delete\n \n \n Private\n Async\n deleteSubmissions\n \n \n Async\n findById\n \n \n Async\n findBySingleParent\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(taskRepo: TaskRepo, submissionService: SubmissionService, filesStorageClientAdapterService: FilesStorageClientAdapterService)\n \n \n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n submissionService\n \n \n SubmissionService\n \n \n \n No\n \n \n \n \n filesStorageClientAdapterService\n \n \n FilesStorageClientAdapterService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n deleteSubmissions\n \n \n \n \n \n \n \n deleteSubmissions(task: Task)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n Task\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySingleParent\n \n \n \n \n \n \n \n findBySingleParent(creatorId: EntityId, courseId: EntityId, filters?: literal type, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/service/task.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n creatorId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n courseId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n filters\n \n literal type\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Counted, EntityId, IFindOptions, Task } from '@shared/domain';\nimport { TaskRepo } from '@shared/repo';\nimport { FilesStorageClientAdapterService } from '@src/modules/files-storage-client';\nimport { SubmissionService } from './submission.service';\n\n@Injectable()\nexport class TaskService {\n\tconstructor(\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly submissionService: SubmissionService,\n\t\tprivate readonly filesStorageClientAdapterService: FilesStorageClientAdapterService\n\t) {}\n\n\tasync findBySingleParent(\n\t\tcreatorId: EntityId,\n\t\tcourseId: EntityId,\n\t\tfilters?: { draft?: boolean; noFutureAvailableDate?: boolean },\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\treturn this.taskRepo.findBySingleParent(creatorId, courseId, filters, options);\n\t}\n\n\tasync delete(task: Task): Promise {\n\t\tawait this.filesStorageClientAdapterService.deleteFilesOfParent(task.id);\n\n\t\tawait this.deleteSubmissions(task);\n\n\t\tawait this.taskRepo.delete(task);\n\t}\n\n\tprivate async deleteSubmissions(task: Task): Promise {\n\t\tconst submissions = task.submissions.getItems();\n\t\tconst promises = submissions.map((submission) => this.submissionService.delete(submission));\n\n\t\tawait Promise.all(promises);\n\t}\n\n\tasync findById(taskId: EntityId): Promise {\n\t\treturn this.taskRepo.findById(taskId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskStatusMapper.html":{"url":"classes/TaskStatusMapper.html","title":"class - TaskStatusMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskStatusMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/mapper/task-status.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(status: ITaskStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/mapper/task-status.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n status\n \n ITaskStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : TaskStatusResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ITaskStatus } from '@shared/domain';\nimport { TaskStatusResponse } from '../controller/dto/task-status.response';\n\nexport class TaskStatusMapper {\n\tstatic mapToResponse(status: ITaskStatus): TaskStatusResponse {\n\t\tconst dto = new TaskStatusResponse(status);\n\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskStatusResponse.html":{"url":"classes/TaskStatusResponse.html","title":"class - TaskStatusResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskStatusResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task-status.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n graded\n \n \n \n isDraft\n \n \n \n isFinished\n \n \n \n isSubstitutionTeacher\n \n \n \n maxSubmissions\n \n \n \n submitted\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: TaskStatusResponse)\n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n TaskStatusResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n graded\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n \n isDraft\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n isFinished\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n \n isSubstitutionTeacher\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n \n maxSubmissions\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n submitted\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-status.response.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class TaskStatusResponse {\n\tconstructor({ submitted, maxSubmissions, graded, isDraft, isSubstitutionTeacher, isFinished }: TaskStatusResponse) {\n\t\tthis.submitted = submitted;\n\t\tthis.maxSubmissions = maxSubmissions;\n\t\tthis.graded = graded;\n\t\tthis.isDraft = isDraft;\n\t\tthis.isSubstitutionTeacher = isSubstitutionTeacher;\n\t\tthis.isFinished = isFinished;\n\t}\n\n\t@ApiProperty()\n\tsubmitted: number;\n\n\t@ApiProperty()\n\tmaxSubmissions: number;\n\n\t@ApiProperty()\n\tgraded: number;\n\n\t@ApiProperty()\n\tisDraft: boolean;\n\n\t@ApiProperty()\n\tisSubstitutionTeacher: boolean;\n\n\t@ApiProperty()\n\tisFinished: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TaskUC.html":{"url":"injectables/TaskUC.html","title":"injectable - TaskUC","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TaskUC\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/uc/task.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n changeFinishedForUser\n \n \n Async\n delete\n \n \n Async\n findAll\n \n \n Async\n findAllFinished\n \n \n Private\n Async\n findAllForStudent\n \n \n Private\n Async\n findAllForTeacher\n \n \n Private\n getDefaultMaxDueDate\n \n \n Private\n Async\n getPermittedCourses\n \n \n Private\n Async\n getPermittedLessons\n \n \n Async\n revertPublished\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(taskRepo: TaskRepo, authorizationService: AuthorizationService, courseRepo: CourseRepo, lessonRepo: LessonRepo, taskService: TaskService)\n \n \n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n taskRepo\n \n \n TaskRepo\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n courseRepo\n \n \n CourseRepo\n \n \n \n No\n \n \n \n \n lessonRepo\n \n \n LessonRepo\n \n \n \n No\n \n \n \n \n taskService\n \n \n TaskService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n changeFinishedForUser\n \n \n \n \n \n \n \n changeFinishedForUser(userId: EntityId, taskId: EntityId, isFinished: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:85\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n isFinished\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(userId: EntityId, taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:225\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAll\n \n \n \n \n \n \n \n findAll(userId: EntityId, pagination: IPagination)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n pagination\n \n IPagination\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findAllFinished\n \n \n \n \n \n \n \n findAllFinished(userId: EntityId, pagination?: IPagination)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n pagination\n \n IPagination\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findAllForStudent\n \n \n \n \n \n \n \n findAllForStudent(user: User, pagination: IPagination)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:126\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n pagination\n \n IPagination\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n findAllForTeacher\n \n \n \n \n \n \n \n findAllForTeacher(user: User, pagination: IPagination)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:155\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n pagination\n \n IPagination\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getDefaultMaxDueDate\n \n \n \n \n \n \n \n getDefaultMaxDueDate()\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:218\n \n \n\n\n \n \n\n \n Returns : Date\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getPermittedCourses\n \n \n \n \n \n \n \n getPermittedCourses(user: User, neededPermission: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:185\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n neededPermission\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getPermittedLessons\n \n \n \n \n \n \n \n getPermittedLessons(user: User, courses: Course[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:197\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n courses\n \n Course[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n revertPublished\n \n \n \n \n \n \n \n revertPublished(userId: EntityId, taskId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/task/uc/task.uc.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n taskId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable, UnauthorizedException } from '@nestjs/common';\nimport {\n\tCounted,\n\tCourse,\n\tEntityId,\n\tIPagination,\n\tITaskStatus,\n\tLessonEntity,\n\tPermission,\n\tSortOrder,\n\tTaskWithStatusVo,\n\tUser,\n} from '@shared/domain';\nimport { CourseRepo, LessonRepo, TaskRepo } from '@shared/repo';\nimport { Action, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { TaskService } from '../service';\n\n@Injectable()\nexport class TaskUC {\n\tconstructor(\n\t\tprivate readonly taskRepo: TaskRepo,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly courseRepo: CourseRepo,\n\t\tprivate readonly lessonRepo: LessonRepo,\n\t\tprivate readonly taskService: TaskService\n\t) {}\n\n\tasync findAllFinished(userId: EntityId, pagination?: IPagination): Promise> {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tthis.authorizationService.checkOneOfPermissions(user, [\n\t\t\tPermission.TASK_DASHBOARD_TEACHER_VIEW_V3,\n\t\t\tPermission.TASK_DASHBOARD_VIEW_V3,\n\t\t]);\n\n\t\tconst courses = await this.getPermittedCourses(user, Action.read);\n\t\tconst lessons = await this.getPermittedLessons(user, courses);\n\n\t\tconst openCourseIds = courses.filter((c) => !c.isFinished()).map((c) => c.id);\n\t\tconst finishedCourseIds = courses.filter((c) => c.isFinished()).map((c) => c.id);\n\t\tconst lessonIdsOfOpenCourses = lessons.filter((l) => !l.course.isFinished()).map((l) => l.id);\n\t\tconst lessonIdsOfFinishedCourses = lessons.filter((l) => l.course.isFinished()).map((l) => l.id);\n\n\t\tconst [tasks, total] = await this.taskRepo.findAllFinishedByParentIds(\n\t\t\t{\n\t\t\t\tcreatorId: userId,\n\t\t\t\topenCourseIds,\n\t\t\t\tfinishedCourseIds,\n\t\t\t\tlessonIdsOfOpenCourses,\n\t\t\t\tlessonIdsOfFinishedCourses,\n\t\t\t},\n\t\t\t{ pagination, order: { dueDate: SortOrder.desc } }\n\t\t);\n\n\t\tconst taskWithStatusVos = tasks.map((task) => {\n\t\t\tlet status: ITaskStatus;\n\t\t\tif (this.authorizationService.hasPermission(user, task, AuthorizationContextBuilder.write([]))) {\n\t\t\t\tstatus = task.createTeacherStatusForUser(user);\n\t\t\t} else {\n\t\t\t\tstatus = task.createStudentStatusForUser(user);\n\t\t\t}\n\n\t\t\treturn new TaskWithStatusVo(task, status);\n\t\t});\n\n\t\treturn [taskWithStatusVos, total];\n\t}\n\n\tasync findAll(userId: EntityId, pagination: IPagination): Promise> {\n\t\tlet response: Counted;\n\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\n\t\tif (this.authorizationService.hasAllPermissions(user, [Permission.TASK_DASHBOARD_VIEW_V3])) {\n\t\t\tresponse = await this.findAllForStudent(user, pagination);\n\t\t} else if (this.authorizationService.hasAllPermissions(user, [Permission.TASK_DASHBOARD_TEACHER_VIEW_V3])) {\n\t\t\tresponse = await this.findAllForTeacher(user, pagination);\n\t\t} else {\n\t\t\tthrow new UnauthorizedException();\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tasync changeFinishedForUser(userId: EntityId, taskId: EntityId, isFinished: boolean): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst task = await this.taskRepo.findById(taskId);\n\n\t\tthis.authorizationService.checkPermission(user, task, AuthorizationContextBuilder.read([]));\n\n\t\tif (isFinished) {\n\t\t\ttask.finishForUser(user);\n\t\t} else {\n\t\t\ttask.restoreForUser(user);\n\t\t}\n\t\tawait this.taskRepo.save(task);\n\n\t\t// TODO fix student case - why have student as fallback?\n\t\t// should be based on permission too and use this.createStatus() instead\n\t\t// add status\n\t\tconst status = this.authorizationService.hasOneOfPermissions(user, [Permission.TASK_DASHBOARD_TEACHER_VIEW_V3])\n\t\t\t? task.createTeacherStatusForUser(user)\n\t\t\t: task.createStudentStatusForUser(user);\n\n\t\tconst result = new TaskWithStatusVo(task, status);\n\n\t\treturn result;\n\t}\n\n\tasync revertPublished(userId: EntityId, taskId: EntityId): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst task = await this.taskRepo.findById(taskId);\n\n\t\tthis.authorizationService.checkPermission(user, task, AuthorizationContextBuilder.write([]));\n\n\t\ttask.unpublish();\n\t\tawait this.taskRepo.save(task);\n\n\t\tconst status = task.createTeacherStatusForUser(user);\n\n\t\tconst result = new TaskWithStatusVo(task, status);\n\n\t\treturn result;\n\t}\n\n\tprivate async findAllForStudent(user: User, pagination: IPagination): Promise> {\n\t\tconst courses = await this.getPermittedCourses(user, Action.read);\n\t\tconst openCourses = courses.filter((c) => !c.isFinished());\n\t\tconst lessons = await this.getPermittedLessons(user, openCourses);\n\n\t\tconst dueDate = this.getDefaultMaxDueDate();\n\t\tconst notFinished = { userId: user.id, value: false };\n\n\t\tconst [tasks, total] = await this.taskRepo.findAllByParentIds(\n\t\t\t{\n\t\t\t\tcreatorId: user.id,\n\t\t\t\tcourseIds: openCourses.map((c) => c.id),\n\t\t\t\tlessonIds: lessons.map((l) => l.id),\n\t\t\t},\n\t\t\t{ afterDueDateOrNone: dueDate, finished: notFinished, availableOn: new Date() },\n\t\t\t{\n\t\t\t\tpagination,\n\t\t\t\torder: { dueDate: SortOrder.asc },\n\t\t\t}\n\t\t);\n\n\t\tconst taskWithStatusVos = tasks.map((task) => {\n\t\t\tconst status = task.createStudentStatusForUser(user);\n\t\t\treturn new TaskWithStatusVo(task, status);\n\t\t});\n\n\t\treturn [taskWithStatusVos, total];\n\t}\n\n\tprivate async findAllForTeacher(user: User, pagination: IPagination): Promise> {\n\t\tconst courses = await this.getPermittedCourses(user, Action.write);\n\t\tconst openCourses = courses.filter((c) => !c.isFinished());\n\t\tconst lessons = await this.getPermittedLessons(user, openCourses);\n\n\t\tconst notFinished = { userId: user.id, value: false };\n\n\t\tconst [tasks, total] = await this.taskRepo.findAllByParentIds(\n\t\t\t{\n\t\t\t\tcreatorId: user.id,\n\t\t\t\tcourseIds: openCourses.map((c) => c.id),\n\t\t\t\tlessonIds: lessons.map((l) => l.id),\n\t\t\t},\n\t\t\t{ finished: notFinished, availableOn: new Date() },\n\t\t\t{\n\t\t\t\tpagination,\n\t\t\t\torder: { dueDate: SortOrder.desc },\n\t\t\t}\n\t\t);\n\n\t\tconst taskWithStatusVos = tasks.map((task) => {\n\t\t\tconst status = task.createTeacherStatusForUser(user);\n\t\t\treturn new TaskWithStatusVo(task, status);\n\t\t});\n\n\t\treturn [taskWithStatusVos, total];\n\t}\n\n\t// it should return also the scopePermissions for this user added to the entity .scopePermission: { userId, read: boolean, write: boolean }\n\t// then we can pass and allow only scoped courses to getPermittedLessonIds and validate read write of .scopePermission\n\tprivate async getPermittedCourses(user: User, neededPermission: Action): Promise {\n\t\tlet permittedCourses: Course[] = [];\n\n\t\tif (neededPermission === Action.write) {\n\t\t\t[permittedCourses] = await this.courseRepo.findAllForTeacherOrSubstituteTeacher(user.id);\n\t\t} else if (neededPermission === Action.read) {\n\t\t\t[permittedCourses] = await this.courseRepo.findAllByUserId(user.id);\n\t\t}\n\n\t\treturn permittedCourses;\n\t}\n\n\tprivate async getPermittedLessons(user: User, courses: Course[]): Promise {\n\t\tconst writeCourses = courses.filter((c) =>\n\t\t\tthis.authorizationService.hasPermission(user, c, AuthorizationContextBuilder.write([]))\n\t\t);\n\t\tconst readCourses = courses.filter((c) => !writeCourses.includes(c));\n\n\t\tconst writeCourseIds = writeCourses.map((c) => c.id);\n\t\tconst readCourseIds = readCourses.map((c) => c.id);\n\n\t\t// idea as combined query:\n\t\t// [{courseIds: onlyWriteCoursesIds}, { courseIds: onlyReadCourses, filter: { hidden: false }}]\n\t\tconst [[writeLessons], [readLessons]] = await Promise.all([\n\t\t\tthis.lessonRepo.findAllByCourseIds(writeCourseIds),\n\t\t\tthis.lessonRepo.findAllByCourseIds(readCourseIds, { hidden: false }),\n\t\t]);\n\n\t\tconst permittedLessons = [...writeLessons, ...readLessons];\n\n\t\treturn permittedLessons;\n\t}\n\n\tprivate getDefaultMaxDueDate(): Date {\n\t\tconst oneWeekAgo = new Date();\n\t\toneWeekAgo.setDate(oneWeekAgo.getDate() - 7);\n\n\t\treturn oneWeekAgo;\n\t}\n\n\tasync delete(userId: EntityId, taskId: EntityId): Promise {\n\t\tconst user = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst task = await this.taskRepo.findById(taskId);\n\n\t\tthis.authorizationService.checkPermission(user, task, AuthorizationContextBuilder.write([]));\n\n\t\tawait this.taskService.delete(task);\n\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskUpdateParams.html":{"url":"classes/TaskUpdateParams.html","title":"class - TaskUpdateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskUpdateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task-update.params.ts\n \n\n\n\n\n \n Implements\n \n \n ITaskUpdate\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n name\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n availableDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'Date since the task is published', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:49\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n courseId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsMongoId()@IsOptional()@ApiPropertyOptional({description: 'The id of an course object.', pattern: '[a-f0-9]{24}', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n description\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsOptional()@SanitizeHtml(InputFormat.RICH_TEXT_CK5)@ApiPropertyOptional({description: 'The description of the task'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n dueDate\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsDate()@IsOptional()@ApiPropertyOptional({description: 'Date until the task submissions can be sent', type: Date})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:57\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n Optional\n lessonId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@IsMongoId()@IsOptional()@ApiPropertyOptional({description: 'The id of an lesson object.', pattern: '[a-f0-9]{24}'})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsString()@SanitizeHtml()@ApiProperty({description: 'The title of the task', required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task-update.params.ts:33\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsDate, IsMongoId, IsOptional, IsString } from 'class-validator';\nimport { InputFormat, ITaskUpdate } from '@shared/domain';\nimport { SanitizeHtml } from '@shared/controller';\n\nexport class TaskUpdateParams implements ITaskUpdate {\n\t@IsString()\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The id of an course object.',\n\t\tpattern: '[a-f0-9]{24}',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tcourseId?: string;\n\n\t@IsString()\n\t@IsMongoId()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The id of an lesson object.',\n\t\tpattern: '[a-f0-9]{24}',\n\t})\n\tlessonId?: string;\n\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiProperty({\n\t\tdescription: 'The title of the task',\n\t\trequired: true,\n\t})\n\tname!: string;\n\n\t@IsString()\n\t@IsOptional()\n\t@SanitizeHtml(InputFormat.RICH_TEXT_CK5)\n\t@ApiPropertyOptional({\n\t\tdescription: 'The description of the task',\n\t})\n\tdescription?: string;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date since the task is published',\n\t\ttype: Date,\n\t})\n\tavailableDate?: Date;\n\n\t@IsDate()\n\t@IsOptional()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date until the task submissions can be sent',\n\t\ttype: Date,\n\t})\n\tdueDate?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskUrlParams.html":{"url":"classes/TaskUrlParams.html","title":"class - TaskUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/task/controller/dto/task.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n taskId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n taskId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the task.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/task/controller/dto/task.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class TaskUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the task.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\ttaskId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TaskWithStatusVo.html":{"url":"classes/TaskWithStatusVo.html","title":"class - TaskWithStatusVo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TaskWithStatusVo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/task.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n status\n \n \n task\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(task: Task, status: ITaskStatus)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n task\n \n \n Task\n \n \n \n No\n \n \n \n \n status\n \n \n ITaskStatus\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ITaskStatus\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:18\n \n \n\n\n \n \n \n \n \n \n \n \n task\n \n \n \n \n \n \n Type : Task\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/task.entity.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, OneToMany, Property } from '@mikro-orm/core';\nimport { InternalServerErrorException } from '@nestjs/common';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { InputFormat } from '@shared/domain/types/input-format.types';\nimport type { IEntityWithSchool } from '../interface';\nimport type { ILearnroomElement } from '../interface/learnroom';\nimport type { EntityId } from '../types/entity-id';\nimport type { ITaskProperties, ITaskStatus } from '../types/task.types';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport type { LessonEntity } from './lesson.entity';\nimport type { Submission } from './submission.entity';\nimport { User } from './user.entity';\n\nexport class TaskWithStatusVo {\n\ttask!: Task;\n\n\tstatus!: ITaskStatus;\n\n\tconstructor(task: Task, status: ITaskStatus) {\n\t\tthis.task = task;\n\t\tthis.status = status;\n\t}\n}\n\nexport type TaskParentDescriptions = {\n\tcourseName: string;\n\tcourseId: string;\n\tlessonName: string;\n\tlessonHidden: boolean;\n\tcolor: string;\n};\n\nexport interface ITaskParent {\n\tgetStudentIds(): EntityId[];\n}\n\n@Entity({ tableName: 'homeworks' })\n@Index({ properties: ['private', 'dueDate', 'finished'] })\n@Index({ properties: ['id', 'private'] })\n@Index({ properties: ['finished', 'course'] })\n@Index({ properties: ['finished', 'course'] })\nexport class Task extends BaseEntityWithTimestamps implements ILearnroomElement, IEntityWithSchool {\n\t@Property()\n\tname: string;\n\n\t@Property()\n\tdescription: string;\n\n\t@Property()\n\tdescriptionInputFormat: InputFormat;\n\n\t@Property({ nullable: true })\n\tavailableDate?: Date;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdueDate?: Date;\n\n\t@Property()\n\tprivate = true;\n\n\t@Property({ nullable: true })\n\tpublicSubmissions?: boolean;\n\n\t@Property({ nullable: true })\n\tteamSubmissions?: boolean;\n\n\t@Index()\n\t@ManyToOne('User', { fieldName: 'teacherId' })\n\tcreator: User;\n\n\t@Index()\n\t@ManyToOne('Course', { fieldName: 'courseId', nullable: true })\n\tcourse?: Course;\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Index()\n\t@ManyToOne('LessonEntity', { fieldName: 'lessonId', nullable: true })\n\tlesson?: LessonEntity; // In database exist also null, but it can not set.\n\n\t@OneToMany('Submission', 'task')\n\tsubmissions = new Collection(this);\n\n\t@Index()\n\t@ManyToMany('User', undefined, { fieldName: 'archived' })\n\tfinished = new Collection(this);\n\n\tconstructor(props: ITaskProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.description = props.description || '';\n\t\tthis.descriptionInputFormat = props.descriptionInputFormat || InputFormat.RICH_TEXT_CK4;\n\t\tthis.availableDate = props.availableDate;\n\t\tthis.dueDate = props.dueDate;\n\n\t\tif (props.private !== undefined) this.private = props.private;\n\t\tthis.creator = props.creator;\n\t\tthis.course = props.course;\n\t\tthis.school = props.school;\n\t\tthis.lesson = props.lesson;\n\t\tthis.submissions.set(props.submissions || []);\n\t\tthis.finished.set(props.finished || []);\n\t\tthis.publicSubmissions = props.publicSubmissions || false;\n\t\tthis.teamSubmissions = props.teamSubmissions || false;\n\t}\n\n\tprivate getSubmissionItems(): Submission[] {\n\t\tif (!this.submissions || !this.submissions.isInitialized(true)) {\n\t\t\tthrow new InternalServerErrorException('Submissions items are not loaded.');\n\t\t}\n\t\tconst submissions = this.submissions.getItems();\n\n\t\treturn submissions;\n\t}\n\n\tprivate getFinishedUserIds(): EntityId[] {\n\t\tif (!this.finished) {\n\t\t\tthrow new InternalServerErrorException('Task.finished is undefined. The task need to be populated.');\n\t\t}\n\n\t\tconst finishedObjectIds = this.finished.getIdentifiers('_id');\n\t\tconst finishedIds = finishedObjectIds.map((id): string => id.toString());\n\n\t\treturn finishedIds;\n\t}\n\n\tprivate getParent(): ITaskParent | User {\n\t\tconst parent = this.lesson || this.course || this.creator;\n\n\t\treturn parent;\n\t}\n\n\tprivate getMaxSubmissions(): number {\n\t\tconst parent = this.getParent();\n\t\t// For draft (user as parent) propaly user is not a student, but for maxSubmission one is valid result\n\t\tconst maxSubmissions = parent instanceof User ? 1 : parent.getStudentIds().length;\n\n\t\treturn maxSubmissions;\n\t}\n\n\tprivate isFinishedForUser(user: User): boolean {\n\t\tconst finishedUserIds = this.getFinishedUserIds();\n\t\tconst isUserInFinishedUser = finishedUserIds.some((finishedUserId) => finishedUserId === user.id);\n\n\t\tconst isCourseFinished = this.course ? this.course.isFinished() : false;\n\n\t\tconst isFinishedForUser = isUserInFinishedUser || isCourseFinished;\n\n\t\treturn isFinishedForUser;\n\t}\n\n\tpublic isDraft(): boolean {\n\t\t// private can be undefined in the database\n\t\treturn !!this.private;\n\t}\n\n\tpublic isPublished(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic isPlanned(): boolean {\n\t\tif (this.isDraft()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.availableDate && this.availableDate > new Date()) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate getSubmittedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst submittedSubmissions = submissions.filter((submission) => submission.isSubmitted());\n\n\t\treturn submittedSubmissions;\n\t}\n\n\tpublic areSubmissionsPublic(): boolean {\n\t\tconst areSubmissionsPublic = !!this.publicSubmissions;\n\n\t\treturn areSubmissionsPublic;\n\t}\n\n\tprivate getGradedSubmissions(): Submission[] {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst gradedSubmissions = submissions.filter((submission) => submission.isGraded());\n\n\t\treturn gradedSubmissions;\n\t}\n\n\tprivate isSubmittedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isSubmitted = submissions.some((submission) => submission.isSubmittedForUser(user));\n\n\t\treturn isSubmitted;\n\t}\n\n\tprivate isGradedForUser(user: User): boolean {\n\t\tconst submissions = this.getSubmissionItems();\n\t\tconst isGraded = submissions.some((submission) => submission.isGradedForUser(user));\n\n\t\treturn isGraded;\n\t}\n\n\tprivate calculateNumberOfSubmitters(submissions: Submission[]): number {\n\t\tlet taskSubmitterIds: EntityId[] = [];\n\n\t\tsubmissions.forEach((submission) => {\n\t\t\tconst submitterIds = submission.getSubmitterIds();\n\t\t\ttaskSubmitterIds = [...taskSubmitterIds, ...submitterIds];\n\t\t});\n\n\t\tconst uniqueIds = [...new Set(taskSubmitterIds)];\n\t\tconst numberOfSubmitters = uniqueIds.length;\n\n\t\treturn numberOfSubmitters;\n\t}\n\n\tprivate isUserSubstitutionTeacherInCourse(user: User): boolean {\n\t\tconst isSubstitutionTeacher = this.course ? this.course.isUserSubstitutionTeacher(user) : false;\n\n\t\treturn isSubstitutionTeacher;\n\t}\n\n\tpublic createTeacherStatusForUser(user: User): ITaskStatus {\n\t\tconst submittedSubmissions = this.getSubmittedSubmissions();\n\t\tconst gradedSubmissions = this.getGradedSubmissions();\n\n\t\tconst numberOfSubmitters = this.calculateNumberOfSubmitters(submittedSubmissions);\n\t\tconst numberOfSubmittersWithGrade = this.calculateNumberOfSubmitters(gradedSubmissions);\n\t\tconst maxSubmissions = this.getMaxSubmissions();\n\t\tconst isDraft = this.isDraft();\n\t\tconst isFinished = this.isFinishedForUser(user);\n\t\tconst isSubstitutionTeacher = this.isUserSubstitutionTeacherInCourse(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: numberOfSubmitters,\n\t\t\tgraded: numberOfSubmittersWithGrade,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\tpublic createStudentStatusForUser(user: User): ITaskStatus {\n\t\tconst isSubmitted = this.isSubmittedForUser(user);\n\t\tconst isGraded = this.isGradedForUser(user);\n\t\tconst maxSubmissions = 1;\n\t\tconst isDraft = this.isDraft();\n\t\tconst isSubstitutionTeacher = false;\n\t\tconst isFinished = this.isFinishedForUser(user);\n\n\t\tconst status = {\n\t\t\tsubmitted: isSubmitted ? 1 : 0,\n\t\t\tgraded: isGraded ? 1 : 0,\n\t\t\tmaxSubmissions,\n\t\t\tisDraft,\n\t\t\tisSubstitutionTeacher,\n\t\t\tisFinished,\n\t\t};\n\n\t\treturn status;\n\t}\n\n\t// TODO: based on the parent relationship\n\tpublic getParentData(): TaskParentDescriptions {\n\t\tlet descriptions: TaskParentDescriptions;\n\t\tif (this.course) {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: this.course.name,\n\t\t\t\tcourseId: this.course.id,\n\t\t\t\tlessonName: this.lesson ? this.lesson.name : '',\n\t\t\t\tlessonHidden: this.lesson ? this.lesson.hidden : false,\n\t\t\t\tcolor: this.course.color,\n\t\t\t};\n\t\t} else {\n\t\t\tdescriptions = {\n\t\t\t\tcourseName: '',\n\t\t\t\tcourseId: '',\n\t\t\t\tlessonName: '',\n\t\t\t\tlessonHidden: false,\n\t\t\t\tcolor: '#ACACAC',\n\t\t\t};\n\t\t}\n\n\t\treturn descriptions;\n\t}\n\n\tpublic finishForUser(user: User): void {\n\t\tthis.finished.add(user);\n\t}\n\n\tpublic restoreForUser(user: User): void {\n\t\tthis.finished.remove(user);\n\t}\n\n\tpublic getSchoolId(): EntityId {\n\t\treturn this.school.id;\n\t}\n\n\tpublic publish(): void {\n\t\tthis.private = false;\n\t\tthis.availableDate = new Date();\n\t}\n\n\tpublic unpublish(): void {\n\t\tthis.private = true;\n\t}\n}\n\nexport function isTask(reference: unknown): reference is Task {\n\treturn reference instanceof Task;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamDto.html":{"url":"classes/TeamDto.html","title":"class - TeamDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts\n \n\n\n \n Description\n \n \n TODO\nThis DTO and all associated functionality should be moved to a general teams module once it has been created\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n id\n \n \n name\n \n \n teamUsers\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: TeamDto)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:13\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n TeamDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n teamUsers\n \n \n \n \n \n \n Type : TeamUserDto[]\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:13\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\n\n/**\n * TODO\n * This DTO and all associated functionality should be moved to a general teams module once it has been created\n */\n\nexport class TeamDto {\n\tid: EntityId;\n\n\tname: string;\n\n\tteamUsers: TeamUserDto[];\n\n\tconstructor(props: TeamDto) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t\tthis.teamUsers = props.teamUsers;\n\t}\n}\n\nexport class TeamUserDto {\n\tuserId: string;\n\n\troleId: string;\n\n\tschoolId: string;\n\n\tconstructor(props: TeamUserDto) {\n\t\tthis.userId = props.userId;\n\t\tthis.roleId = props.roleId;\n\t\tthis.schoolId = props.schoolId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/TeamEntity.html":{"url":"entities/TeamEntity.html","title":"entity - TeamEntity","body":"\n \n\n\n\n\n\n\n\n Entities\n TeamEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/team.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n name\n \n \n \n userIds\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n name\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:56\n \n \n\n\n \n \n \n \n \n \n \n \n \n userIds\n \n \n \n \n \n \n Type : TeamUserEntity[]\n\n \n \n \n \n Decorators : \n \n \n @Embedded(undefined, {array: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:59\n \n \n\n\n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\nimport { User } from './user.entity';\n\nexport interface ITeamProperties {\n\tname: string;\n\tteamUsers?: TeamUserEntity[];\n}\n\nexport interface ITeamUserProperties {\n\tuser: User;\n\trole: Role;\n\tschool: SchoolEntity;\n}\n\n@Embeddable()\nexport class TeamUserEntity {\n\tconstructor(props: ITeamUserProperties) {\n\t\tthis.userId = props.user;\n\t\tthis.role = props.role;\n\t\tthis.schoolId = props.school;\n\t}\n\n\t@ManyToOne(() => User)\n\tuserId: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\t@ManyToOne(() => SchoolEntity)\n\tprivate schoolId: SchoolEntity;\n\n\t// fieldName cannot be used in ManyToOne on Embeddable due to a mikro-orm bug (https://github.com/mikro-orm/mikro-orm/issues/2165)\n\tget user(): User {\n\t\treturn this.userId;\n\t}\n\n\tset user(value: User) {\n\t\tthis.userId = value;\n\t}\n\n\tget school(): SchoolEntity {\n\t\treturn this.schoolId;\n\t}\n\n\tset school(value: SchoolEntity) {\n\t\tthis.schoolId = value;\n\t}\n}\n\n@Entity({ tableName: 'teams' })\nexport class TeamEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Embedded(() => TeamUserEntity, { array: true })\n\tuserIds: TeamUserEntity[];\n\n\tget teamUsers(): TeamUserEntity[] {\n\t\treturn this.userIds;\n\t}\n\n\tset teamUsers(value: TeamUserEntity[]) {\n\t\tthis.userIds = value;\n\t}\n\n\tconstructor(props: ITeamProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.userIds = props.teamUsers ? props.teamUsers.map((teamUser) => new TeamUserEntity(teamUser)) : [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamFactory.html":{"url":"classes/TeamFactory.html","title":"class - TeamFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/team.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withRoleAndUserId\n \n \n withTeamUser\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withRoleAndUserId\n \n \n \n \n \n \nwithRoleAndUserId(role: Role, userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/team.factory.ts:7\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n Role\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withTeamUser\n \n \n \n \n \n \nwithTeamUser(teamUser: TeamUserEntity[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/team.factory.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamUser\n \n TeamUserEntity[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ITeamProperties, Role, TeamEntity, TeamUserEntity } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport { teamUserFactory } from '@shared/testing/factory/teamuser.factory';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\n\nclass TeamFactory extends BaseFactory {\n\twithRoleAndUserId(role: Role, userId: string): this {\n\t\tconst params: DeepPartial = {\n\t\t\tteamUsers: [teamUserFactory.withRoleAndUserId(role, userId).buildWithId()],\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithTeamUser(teamUser: TeamUserEntity[]): this {\n\t\tconst params: DeepPartial = {\n\t\t\tteamUsers: teamUser,\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const teamFactory = TeamFactory.define(TeamEntity, ({ sequence }) => {\n\treturn {\n\t\tname: `team #${sequence}`,\n\t\tteamUsers: [teamUserFactory.buildWithId()],\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamMapper.html":{"url":"injectables/TeamMapper.html","title":"injectable - TeamMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/mapper/team.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapEntityToDto\n \n \n \n \n \n \n \n mapEntityToDto(teamEntity: TeamEntity)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/mapper/team.mapper.ts:12\n \n \n\n\n \n \n Maps a Team Entity to the ServiceDTO\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n teamEntity\n \n TeamEntity\n \n\n \n No\n \n\n\n \n The Entity\n\n \n \n \n \n \n \n \n \n Returns : TeamDto\n\n \n \n The Dto\n\n \n \n \n \n \n\n\n \n\n\n \n import { TeamEntity, TeamUserEntity } from '@shared/domain';\nimport { Injectable } from '@nestjs/common';\nimport { TeamDto, TeamUserDto } from '../services/dto/team.dto';\n\n@Injectable()\nexport class TeamMapper {\n\t/**\n\t * Maps a Team Entity to the ServiceDTO\n\t * @param teamEntity The Entity\n\t * @return The Dto\n\t */\n\tpublic mapEntityToDto(teamEntity: TeamEntity): TeamDto {\n\t\tconst teamUsers: TeamUserDto[] = teamEntity.teamUsers.map(\n\t\t\t(teamUser: TeamUserEntity) =>\n\t\t\t\tnew TeamUserDto({\n\t\t\t\t\tuserId: teamUser.user.id,\n\t\t\t\t\troleId: teamUser.role.id,\n\t\t\t\t\tschoolId: teamUser.school.id,\n\t\t\t\t})\n\t\t);\n\t\treturn new TeamDto({ id: teamEntity.id, name: teamEntity.name, teamUsers });\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/TeamNews.html":{"url":"entities/TeamNews.html","title":"entity - TeamNews","body":"\n \n\n\n\n\n\n\n\n Entities\n TeamNews\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/news.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n target\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : TeamEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne('TeamEntity')\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/news.entity.ts:127\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Enum, Index, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport type { Course } from './course.entity';\nimport { SchoolEntity } from './school.entity';\nimport type { TeamEntity } from './team.entity';\nimport type { User } from './user.entity';\nimport { NewsTarget, NewsTargetModel } from '../types/news.types';\nimport { EntityId } from '../types';\n\nexport interface INewsProperties {\n\ttitle: string;\n\tcontent: string;\n\tdisplayAt: Date;\n\tschool: EntityId | SchoolEntity;\n\tcreator: EntityId | User;\n\ttarget: EntityId | NewsTarget;\n\n\texternalId?: string;\n\tsource?: 'internal' | 'rss';\n\tsourceDescription?: string;\n\tupdater?: User;\n}\n\n@Entity({\n\tdiscriminatorColumn: 'targetModel',\n\tabstract: true,\n})\n@Index({ properties: ['school', 'target'] })\n@Index({ properties: ['school', 'target', 'targetModel'] })\n@Index({ properties: ['target', 'targetModel'] })\nexport abstract class News extends BaseEntityWithTimestamps {\n\t/** the news title */\n\t@Property()\n\ttitle: string;\n\n\t/** the news content as html */\n\t@Property()\n\tcontent: string;\n\n\t/** only past news are visible for viewers, when edit permission, news visible in the future might be accessed too */\n\t@Property()\n\t@Index()\n\tdisplayAt: Date;\n\n\t@Property({ nullable: true })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tsource?: 'internal' | 'rss';\n\n\t@Property({ nullable: true })\n\tsourceDescription?: string;\n\n\t/** id reference to a collection populated later with name */\n\ttarget!: NewsTarget;\n\n\t/** name of a collection which is referenced in target */\n\t@Enum()\n\ttargetModel!: NewsTargetModel;\n\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool!: SchoolEntity;\n\n\t@ManyToOne('User', { fieldName: 'creatorId' })\n\tcreator!: User;\n\n\t@ManyToOne('User', { fieldName: 'updaterId', nullable: true })\n\tupdater?: User;\n\n\tpermissions: string[] = [];\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper();\n\t\tthis.title = props.title;\n\t\tthis.content = props.content;\n\t\tthis.displayAt = props.displayAt;\n\t\tObject.assign(this, { school: props.school, creator: props.creator, updater: props.updater, target: props.target });\n\t\tthis.externalId = props.externalId;\n\t\tthis.source = props.source;\n\t\tthis.sourceDescription = props.sourceDescription;\n\t}\n\n\tstatic createInstance(targetModel: NewsTargetModel, props: INewsProperties): News {\n\t\tlet news: News;\n\t\tif (targetModel === NewsTargetModel.Course) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new CourseNews(props);\n\t\t} else if (targetModel === NewsTargetModel.Team) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new TeamNews(props);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tnews = new SchoolNews(props);\n\t\t}\n\t\treturn news;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.School })\nexport class SchoolNews extends News {\n\t@ManyToOne(() => SchoolEntity)\n\ttarget!: SchoolEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.School;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Course })\nexport class CourseNews extends News {\n\t// FIXME Due to a weird behaviour in the mikro-orm validation we have to\n\t// disable the validation by setting the reference nullable.\n\t// Remove when fixed in mikro-orm.\n\t@ManyToOne('Course', { nullable: true })\n\ttarget!: Course;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Course;\n\t}\n}\n\n@Entity({ discriminatorValue: NewsTargetModel.Team })\nexport class TeamNews extends News {\n\t@ManyToOne('TeamEntity')\n\ttarget!: TeamEntity;\n\n\tconstructor(props: INewsProperties) {\n\t\tsuper(props);\n\t\tthis.targetModel = NewsTargetModel.Team;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/TeamNewsController.html":{"url":"controllers/TeamNewsController.html","title":"controller - TeamNewsController","body":"\n \n\n\n\n\n\n\n Controllers\n TeamNewsController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/team-news.controller.ts\n \n\n \n Prefix\n \n \n team\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n findAllForTeam\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n findAllForTeam\n \n \n \n \n \n \n \n findAllForTeam(urlParams: TeamUrlParams, currentUser: ICurrentUser, scope: FilterNewsParams, pagination: PaginationParams)\n \n \n\n \n \n Decorators : \n \n @Get(':teamId/news')\n \n \n\n \n \n Defined in apps/server/src/modules/news/controller/team-news.controller.ts:22\n \n \n\n\n \n \n Responds with news of a given team for a user.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlParams\n \n TeamUrlParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n FilterNewsParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\n\nimport { PaginationParams } from '@shared/controller';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\n\nimport { NewsMapper } from '../mapper/news.mapper';\nimport { NewsUc } from '../uc';\nimport { FilterNewsParams, NewsListResponse, TeamUrlParams } from './dto';\n\n@ApiTags('News')\n@Authenticate('jwt')\n@Controller('team')\nexport class TeamNewsController {\n\tconstructor(private readonly newsUc: NewsUc) {}\n\n\t/**\n\t * Responds with news of a given team for a user.\n\t */\n\t@Get(':teamId/news')\n\tasync findAllForTeam(\n\t\t@Param() urlParams: TeamUrlParams,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() scope: FilterNewsParams,\n\t\t@Query() pagination: PaginationParams\n\t): Promise {\n\t\t// enforce filter by a given team, used in team tab\n\t\tscope.targetId = urlParams.teamId;\n\t\tscope.targetModel = 'teams';\n\t\tconst [newsList, count] = await this.newsUc.findAllForUser(\n\t\t\tcurrentUser.userId,\n\t\t\tNewsMapper.mapNewsScopeToDomain(scope),\n\t\t\t{ pagination }\n\t\t);\n\t\tconst dtoList = newsList.map((news) => NewsMapper.mapToResponse(news));\n\t\tconst response = new NewsListResponse(dtoList, count);\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamPermissionsBody.html":{"url":"classes/TeamPermissionsBody.html","title":"class - TeamPermissionsBody","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamPermissionsBody\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n create\n \n \n \n \n delete\n \n \n \n \n read\n \n \n \n \n share\n \n \n \n \n write\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n delete\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n read\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n share\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n write\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-permissions.body.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class TeamPermissionsBody {\n\t@IsBoolean()\n\t@ApiProperty()\n\tread!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\twrite!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tcreate!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tdelete!: boolean;\n\n\t@IsBoolean()\n\t@ApiProperty()\n\tshare!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamPermissionsDto.html":{"url":"classes/TeamPermissionsDto.html","title":"class - TeamPermissionsDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamPermissionsDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n create\n \n \n Optional\n delete\n \n \n Optional\n read\n \n \n Optional\n share\n \n \n Optional\n write\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: TeamPermissionsDto)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n TeamPermissionsDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n create\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n delete\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n read\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n share\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n write\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team-permissions.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class TeamPermissionsDto {\n\tread?: boolean;\n\n\twrite?: boolean;\n\n\tcreate?: boolean;\n\n\tdelete?: boolean;\n\n\tshare?: boolean;\n\n\tconstructor(props: TeamPermissionsDto) {\n\t\tthis.read = !!props.read;\n\t\tthis.write = !!props.write;\n\t\tthis.create = !!props.create;\n\t\tthis.delete = !!props.delete;\n\t\tthis.share = !!props.share;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamPermissionsMapper.html":{"url":"injectables/TeamPermissionsMapper.html","title":"injectable - TeamPermissionsMapper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamPermissionsMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/mapper/team-permissions.mapper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n mapBodyToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n mapBodyToDto\n \n \n \n \n \n \n \n mapBodyToDto(body: TeamPermissionsBody)\n \n \n\n\n \n \n Defined in apps/server/src/modules/collaborative-storage/mapper/team-permissions.mapper.ts:12\n \n \n\n\n \n \n Maps a TeamPermissions Body to a ServiceDTO\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n body\n \n TeamPermissionsBody\n \n\n \n No\n \n\n\n \n The TeamPermissions Body\n\n \n \n \n \n \n \n \n \n Returns : TeamPermissionsDto\n\n \n \n The mapped DTO\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { TeamPermissionsBody } from '../controller/dto/team-permissions.body.params';\nimport { TeamPermissionsDto } from '../services/dto/team-permissions.dto';\n\n@Injectable()\nexport class TeamPermissionsMapper {\n\t/**\n\t * Maps a TeamPermissions Body to a ServiceDTO\n\t * @param body The TeamPermissions Body\n\t * @return The mapped DTO\n\t */\n\tpublic mapBodyToDto(body: TeamPermissionsBody): TeamPermissionsDto {\n\t\treturn new TeamPermissionsDto({\n\t\t\tcreate: body.create,\n\t\t\tdelete: body.delete,\n\t\t\tread: body.read,\n\t\t\tshare: body.share,\n\t\t\twrite: body.write,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamRoleDto.html":{"url":"classes/TeamRoleDto.html","title":"class - TeamRoleDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamRoleDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/controller/dto/team-role.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n roleId\n \n \n \n \n teamId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n roleId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-role.params.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n teamId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/controller/dto/team-role.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class TeamRoleDto {\n\t@IsMongoId()\n\t@ApiProperty()\n\tteamId!: string;\n\n\t@IsMongoId()\n\t@ApiProperty()\n\troleId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamRolePermissionsDto.html":{"url":"classes/TeamRolePermissionsDto.html","title":"class - TeamRolePermissionsDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamRolePermissionsDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n permissions\n \n \n roleName\n \n \n teamId\n \n \n teamName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: TeamRolePermissionsDto)\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n TeamRolePermissionsDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n permissions\n \n \n \n \n \n \n Type : boolean[]\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n roleName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n teamId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:2\n \n \n\n\n \n \n \n \n \n \n \n \n teamName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/infra/collaborative-storage/dto/team-role-permissions.dto.ts:4\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class TeamRolePermissionsDto {\n\tteamId: string;\n\n\tteamName: string;\n\n\troleName: string;\n\n\tpermissions: boolean[];\n\n\tconstructor(props: TeamRolePermissionsDto) {\n\t\tthis.teamId = props.teamId;\n\t\tthis.teamName = props.teamName;\n\t\tthis.roleName = props.roleName;\n\t\tthis.permissions = props.permissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamRule.html":{"url":"injectables/TeamRule.html","title":"injectable - TeamRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/team.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/team.rule.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: TeamEntity, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/team.rule.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n TeamEntity\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: TeamEntity)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/team.rule.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n TeamEntity\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { TeamEntity, TeamUserEntity, User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\n\n@Injectable()\nexport class TeamRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: TeamEntity): boolean {\n\t\treturn entity instanceof TeamEntity;\n\t}\n\n\tpublic hasPermission(user: User, entity: TeamEntity, context: AuthorizationContext): boolean {\n\t\tlet hasPermission = false;\n\t\tconst isTeamUser = entity.teamUsers.find((teamUser: TeamUserEntity) => teamUser.user.id === user.id);\n\t\tif (isTeamUser) {\n\t\t\thasPermission = this.authorizationHelper.hasAllPermissionsByRole(isTeamUser.role, context.requiredPermissions);\n\t\t}\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamService.html":{"url":"injectables/TeamService.html","title":"injectable - TeamService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/teams/service/team.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromTeams\n \n \n Public\n Async\n findUserDataFromTeams\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(teamsRepo: TeamsRepo)\n \n \n \n \n Defined in apps/server/src/modules/teams/service/team.service.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n deleteUserDataFromTeams\n \n \n \n \n \n \n \n deleteUserDataFromTeams(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/teams/service/team.service.ts:15\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n findUserDataFromTeams\n \n \n \n \n \n \n \n findUserDataFromTeams(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/teams/service/team.service.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, TeamEntity } from '@shared/domain';\nimport { TeamsRepo } from '@shared/repo';\n\n@Injectable()\nexport class TeamService {\n\tconstructor(private readonly teamsRepo: TeamsRepo) {}\n\n\tpublic async findUserDataFromTeams(userId: EntityId): Promise {\n\t\tconst teams = await this.teamsRepo.findByUserId(userId);\n\n\t\treturn teams;\n\t}\n\n\tpublic async deleteUserDataFromTeams(userId: EntityId): Promise {\n\t\tconst teams = await this.teamsRepo.findByUserId(userId);\n\n\t\tteams.forEach((team) => {\n\t\t\tteam.userIds = team.userIds.filter((u) => u.userId.id !== userId);\n\t\t});\n\n\t\tawait this.teamsRepo.save(teams);\n\n\t\treturn teams.length;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamUrlParams.html":{"url":"classes/TeamUrlParams.html","title":"class - TeamUrlParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamUrlParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/team.url.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n teamId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n teamId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the team.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/team.url.params.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class TeamUrlParams {\n\t@IsMongoId()\n\t@ApiProperty({\n\t\tdescription: 'The id of the team.',\n\t\trequired: true,\n\t\tnullable: false,\n\t})\n\tteamId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamUserDto.html":{"url":"classes/TeamUserDto.html","title":"class - TeamUserDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamUserDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n roleId\n \n \n schoolId\n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: TeamUserDto)\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:27\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n TeamUserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n roleId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/collaborative-storage/services/dto/team.dto.ts:23\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\n\n/**\n * TODO\n * This DTO and all associated functionality should be moved to a general teams module once it has been created\n */\n\nexport class TeamDto {\n\tid: EntityId;\n\n\tname: string;\n\n\tteamUsers: TeamUserDto[];\n\n\tconstructor(props: TeamDto) {\n\t\tthis.id = props.id;\n\t\tthis.name = props.name;\n\t\tthis.teamUsers = props.teamUsers;\n\t}\n}\n\nexport class TeamUserDto {\n\tuserId: string;\n\n\troleId: string;\n\n\tschoolId: string;\n\n\tconstructor(props: TeamUserDto) {\n\t\tthis.userId = props.userId;\n\t\tthis.roleId = props.roleId;\n\t\tthis.schoolId = props.schoolId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamUserEntity.html":{"url":"classes/TeamUserEntity.html","title":"class - TeamUserEntity","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamUserEntity\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/team.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n role\n \n \n \n Private\n schoolId\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n user\n \n \n school\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ITeamUserProperties)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ITeamUserProperties\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n role\n \n \n \n \n \n \n Type : Role\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Private\n schoolId\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : User\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:27\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n user\n \n \n\n \n \n getuser()\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:36\n \n \n\n \n \n setuser(value: User)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:40\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n User\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n\n \n \n getschool()\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:44\n \n \n\n \n \n setschool(value: SchoolEntity)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/team.entity.ts:48\n \n \n \n \n\n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n value\n \n \n SchoolEntity\n \n \n \n No\n \n \n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n\n \n\n\n \n import { Embeddable, Embedded, Entity, ManyToOne, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\nimport { User } from './user.entity';\n\nexport interface ITeamProperties {\n\tname: string;\n\tteamUsers?: TeamUserEntity[];\n}\n\nexport interface ITeamUserProperties {\n\tuser: User;\n\trole: Role;\n\tschool: SchoolEntity;\n}\n\n@Embeddable()\nexport class TeamUserEntity {\n\tconstructor(props: ITeamUserProperties) {\n\t\tthis.userId = props.user;\n\t\tthis.role = props.role;\n\t\tthis.schoolId = props.school;\n\t}\n\n\t@ManyToOne(() => User)\n\tuserId: User;\n\n\t@ManyToOne(() => Role)\n\trole: Role;\n\n\t@ManyToOne(() => SchoolEntity)\n\tprivate schoolId: SchoolEntity;\n\n\t// fieldName cannot be used in ManyToOne on Embeddable due to a mikro-orm bug (https://github.com/mikro-orm/mikro-orm/issues/2165)\n\tget user(): User {\n\t\treturn this.userId;\n\t}\n\n\tset user(value: User) {\n\t\tthis.userId = value;\n\t}\n\n\tget school(): SchoolEntity {\n\t\treturn this.schoolId;\n\t}\n\n\tset school(value: SchoolEntity) {\n\t\tthis.schoolId = value;\n\t}\n}\n\n@Entity({ tableName: 'teams' })\nexport class TeamEntity extends BaseEntityWithTimestamps {\n\t@Property()\n\tname: string;\n\n\t@Embedded(() => TeamUserEntity, { array: true })\n\tuserIds: TeamUserEntity[];\n\n\tget teamUsers(): TeamUserEntity[] {\n\t\treturn this.userIds;\n\t}\n\n\tset teamUsers(value: TeamUserEntity[]) {\n\t\tthis.userIds = value;\n\t}\n\n\tconstructor(props: ITeamProperties) {\n\t\tsuper();\n\t\tthis.name = props.name;\n\t\tthis.userIds = props.teamUsers ? props.teamUsers.map((teamUser) => new TeamUserEntity(teamUser)) : [];\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TeamUserFactory.html":{"url":"classes/TeamUserFactory.html","title":"class - TeamUserFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TeamUserFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/teamuser.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withRoleAndUserId\n \n \n withUserId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withRoleAndUserId\n \n \n \n \n \n \nwithRoleAndUserId(role: Role, userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/teamuser.factory.ts:9\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n Role\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withUserId\n \n \n \n \n \n \nwithUserId(userId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/teamuser.factory.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Role, TeamUserEntity } from '@shared/domain';\nimport { BaseFactory } from '@shared/testing/factory/base.factory';\nimport { DeepPartial } from 'fishery';\nimport { schoolFactory } from '@shared/testing/factory/school.factory';\nimport { userFactory } from '@shared/testing/factory/user.factory';\nimport { roleFactory } from '@shared/testing/factory/role.factory';\n\nclass TeamUserFactory extends BaseFactory {\n\twithRoleAndUserId(role: Role, userId: string): this {\n\t\tconst school = schoolFactory.build();\n\t\tconst params: DeepPartial = {\n\t\t\tuser: userFactory.buildWithId({ school, roles: [roleFactory.build({ roles: [role] })] }, userId),\n\t\t\tschool,\n\t\t\trole,\n\t\t};\n\t\treturn this.params(params);\n\t}\n\n\twithUserId(userId: string): this {\n\t\tconst school = schoolFactory.build();\n\t\tconst params: DeepPartial = {\n\t\t\tuser: userFactory.buildWithId({ school }, userId),\n\t\t\tschool,\n\t\t};\n\t\treturn this.params(params);\n\t}\n}\n\nexport const teamUserFactory = TeamUserFactory.define(TeamUserEntity, () => {\n\tconst role = roleFactory.buildWithId();\n\tconst school = schoolFactory.buildWithId();\n\tconst user = userFactory.buildWithId({ roles: [role] });\n\n\treturn new TeamUserEntity({\n\t\tuser,\n\t\tschool,\n\t\trole,\n\t});\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/TeamsApiModule.html":{"url":"modules/TeamsApiModule.html","title":"module - TeamsApiModule","body":"\n \n\n\n\n\n Modules\n TeamsApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_TeamsApiModule\n\n\n\ncluster_TeamsApiModule_imports\n\n\n\n\nTeamsModule\n\nTeamsModule\n\n\n\nTeamsApiModule\n\nTeamsApiModule\n\nTeamsApiModule -->\n\nTeamsModule->TeamsApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/teams/teams-api.module.ts\n \n\n\n\n\n\n \n \n \n Imports\n \n \n TeamsModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { TeamsModule } from '@src/modules/teams/teams.module';\n\n@Module({\n\timports: [TeamsModule],\n\tproviders: [],\n\tcontrollers: [],\n\texports: [],\n})\nexport class TeamsApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/TeamsModule.html":{"url":"modules/TeamsModule.html","title":"module - TeamsModule","body":"\n \n\n\n\n\n Modules\n TeamsModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_TeamsModule\n\n\n\ncluster_TeamsModule_exports\n\n\n\ncluster_TeamsModule_providers\n\n\n\n\nTeamService \n\nTeamService \n\n\n\nTeamsModule\n\nTeamsModule\n\nTeamService -->\n\nTeamsModule->TeamService \n\n\n\n\n\nTeamService\n\nTeamService\n\nTeamsModule -->\n\nTeamService->TeamsModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nTeamsModule -->\n\nTeamsRepo->TeamsModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/teams/teams.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n TeamService\n \n \n TeamsRepo\n \n \n \n \n Exports\n \n \n TeamService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { TeamsRepo } from '@shared/repo';\nimport { TeamService } from './service';\n\n@Module({\n\tproviders: [TeamService, TeamsRepo],\n\texports: [TeamService],\n})\nexport class TeamsModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TeamsRepo.html":{"url":"injectables/TeamsRepo.html","title":"injectable - TeamsRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TeamsRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/teams/teams.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n cacheExpiration\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findById\n \n \n Async\n findByUserId\n \n \n Private\n Async\n populateRoles\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, populate)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:14\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n populate\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByUserId\n \n \n \n \n \n \n \n findByUserId(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/teams/teams.repo.ts:35\n \n \n\n\n \n \n Finds teams which the user is a member.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n Array of teams\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateRoles\n \n \n \n \n \n \n \n populateRoles(roles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/teams/teams.repo.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n cacheExpiration\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Default value : 60000\n \n \n \n \n Defined in apps/server/src/shared/repo/teams/teams.repo.ts:12\n \n \n\n\n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/teams/teams.repo.ts:8\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Role, TeamEntity, TeamUserEntity } from '@shared/domain';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { BaseRepo } from '../base.repo';\n\n@Injectable()\nexport class TeamsRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn TeamEntity;\n\t}\n\n\tcacheExpiration = 60000;\n\n\tasync findById(id: EntityId, populate = false): Promise {\n\t\tconst team = await this._em.findOneOrFail(TeamEntity, { id }, { cache: this.cacheExpiration });\n\n\t\tif (populate) {\n\t\t\tawait Promise.all(\n\t\t\t\tteam.teamUsers.map(async (teamUser: TeamUserEntity): Promise => {\n\t\t\t\t\tawait this._em.populate(teamUser, ['role']);\n\t\t\t\t\tawait this.populateRoles([teamUser.role]);\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\treturn team;\n\t}\n\n\t/**\n\t * Finds teams which the user is a member.\n\t *\n\t * @param userId\n\t * @return Array of teams\n\t */\n\tasync findByUserId(userId: EntityId): Promise {\n\t\tconst teams: TeamEntity[] = await this._em.find(TeamEntity, {\n\t\t\tuserIds: { userId: new ObjectId(userId) },\n\t\t});\n\t\treturn teams;\n\t}\n\n\tprivate async populateRoles(roles: Role[]): Promise {\n\t\treturn Promise.all(\n\t\t\troles.map(async (role: Role): Promise => {\n\t\t\t\tif (!role.roles.isInitialized(true)) {\n\t\t\t\t\tawait this._em.populate(role, ['roles']);\n\t\t\t\t\tawait this.populateRoles(role.roles.getItems());\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TestApiClient.html":{"url":"classes/TestApiClient.html","title":"class - TestApiClient","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TestApiClient\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/test-api-client.ts\n \n\n\n \n Description\n \n \n Note res.cookie is not supported atm, feel free to add this\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n app\n \n \n Private\n Readonly\n baseRoute\n \n \n Private\n Readonly\n formattedJwt\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkAndAddPrefix\n \n \n Private\n cleanupPath\n \n \n Public\n delete\n \n \n Public\n get\n \n \n Private\n getJwtFromResponse\n \n \n Private\n getPath\n \n \n Private\n isAuthenticationResponse\n \n \n Private\n isSlash\n \n \n Public\n Async\n login\n \n \n Public\n patch\n \n \n Public\n post\n \n \n Public\n put\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(app: INestApplication, baseRoute: string, jwt?: string)\n \n \n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n app\n \n \n INestApplication\n \n \n \n No\n \n \n \n \n baseRoute\n \n \n string\n \n \n \n No\n \n \n \n \n jwt\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n app\n \n \n \n \n \n \n Type : INestApplication\n\n \n \n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n baseRoute\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n formattedJwt\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:30\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkAndAddPrefix\n \n \n \n \n \n \n \n checkAndAddPrefix(inputPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n inputPath\n \n string\n \n\n \n No\n \n\n \n '/'\n \n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n cleanupPath\n \n \n \n \n \n \n \n cleanupPath(inputPath: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:120\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n inputPath\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n delete\n \n \n \n \n \n \n \n delete(subPath?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n get\n \n \n \n \n \n \n \n get(subPath?: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getJwtFromResponse\n \n \n \n \n \n \n \n getJwtFromResponse(response: Response)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:142\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getPath\n \n \n \n \n \n \n \n getPath(routeNameInput: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n routeNameInput\n \n string\n \n\n \n No\n \n\n \n ''\n \n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isAuthenticationResponse\n \n \n \n \n \n \n \n isAuthenticationResponse(body)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:136\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n body\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthenticationResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isSlash\n \n \n \n \n \n \n \n isSlash(inputPath: string, pos: number)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:104\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n inputPath\n \n string\n \n\n \n No\n \n\n\n \n \n pos\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n login\n \n \n \n \n \n \n \n login(account: Account)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n account\n \n Account\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n patch\n \n \n \n \n \n \n \n patch(subPath?: string, data: object)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n data\n \n object\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n post\n \n \n \n \n \n \n \n post(subPath?: string, data: object)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n data\n \n object\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n put\n \n \n \n \n \n \n \n put(subPath?: string, data: object)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/test-api-client.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n subPath\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n data\n \n object\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : supertest.Test\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { INestApplication } from '@nestjs/common';\nimport { Account } from '@shared/domain';\nimport supertest, { Response } from 'supertest';\nimport { defaultTestPassword } from './factory/account.factory';\n\ninterface AuthenticationResponse {\n\taccessToken: string;\n}\n\nconst headerConst = {\n\taccept: 'accept',\n\tjson: 'application/json',\n};\n\nconst testReqestConst = {\n\tprefix: 'Bearer',\n\tloginPath: '/authentication/local',\n\taccessToken: 'accessToken',\n\terrorMessage: 'TestApiClient: Can not cast to local AutenticationResponse:',\n};\n\n/**\n * Note res.cookie is not supported atm, feel free to add this\n */\nexport class TestApiClient {\n\tprivate readonly app: INestApplication;\n\n\tprivate readonly baseRoute: string;\n\n\tprivate readonly formattedJwt: string;\n\n\tconstructor(app: INestApplication, baseRoute: string, jwt?: string) {\n\t\tthis.app = app;\n\t\tthis.baseRoute = this.checkAndAddPrefix(baseRoute);\n\t\tthis.formattedJwt = `${testReqestConst.prefix} ${jwt || ''}`;\n\t}\n\n\tpublic get(subPath?: string): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer()).get(path).set('authorization', this.formattedJwt);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic delete(subPath?: string): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.delete(path)\n\t\t\t.set('authorization', this.formattedJwt);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic put(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.put(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic patch(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.patch(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic post(subPath?: string, data = {}): supertest.Test {\n\t\tconst path = this.getPath(subPath);\n\t\tconst testRequestInstance = supertest(this.app.getHttpServer())\n\t\t\t.post(path)\n\t\t\t.set('authorization', this.formattedJwt)\n\t\t\t.send(data);\n\n\t\treturn testRequestInstance;\n\t}\n\n\tpublic async login(account: Account): Promise {\n\t\tconst path = testReqestConst.loginPath;\n\t\tconst params: { username: string; password: string } = {\n\t\t\tusername: account.username,\n\t\t\tpassword: defaultTestPassword,\n\t\t};\n\t\tconst response = await supertest(this.app.getHttpServer())\n\t\t\t.post(path)\n\t\t\t.set(headerConst.accept, headerConst.json)\n\t\t\t.send(params);\n\n\t\tconst jwtFromResponse = this.getJwtFromResponse(response);\n\n\t\treturn new (this.constructor as new (app: INestApplication, baseRoute: string, jwt?: string) => this)(\n\t\t\tthis.app,\n\t\t\tthis.baseRoute,\n\t\t\tjwtFromResponse\n\t\t);\n\t}\n\n\tprivate isSlash(inputPath: string, pos: number): boolean {\n\t\tconst isSlash = inputPath.charAt(pos) === '/';\n\n\t\treturn isSlash;\n\t}\n\n\tprivate checkAndAddPrefix(inputPath = '/'): string {\n\t\tlet path = '';\n\t\tif (!this.isSlash(inputPath, 0)) {\n\t\t\tpath = '/';\n\t\t}\n\t\tpath += inputPath;\n\n\t\treturn path;\n\t}\n\n\tprivate cleanupPath(inputPath: string): string {\n\t\tlet path = inputPath;\n\t\tif (this.isSlash(path, 0) && this.isSlash(path, 1)) {\n\t\t\tpath = path.slice(1);\n\t\t}\n\n\t\treturn path;\n\t}\n\n\tprivate getPath(routeNameInput = ''): string {\n\t\tconst routeName = this.checkAndAddPrefix(routeNameInput);\n\t\tconst path = this.cleanupPath(this.baseRoute + routeName);\n\n\t\treturn path;\n\t}\n\n\tprivate isAuthenticationResponse(body: unknown): body is AuthenticationResponse {\n\t\tconst isAuthenticationResponse = typeof body === 'object' && body !== null && testReqestConst.accessToken in body;\n\n\t\treturn isAuthenticationResponse;\n\t}\n\n\tprivate getJwtFromResponse(response: Response): string {\n\t\tif (!this.isAuthenticationResponse(response.body)) {\n\t\t\tconst body = JSON.stringify(response.body);\n\t\t\tthrow new Error(`${testReqestConst.errorMessage} ${body}`);\n\t\t}\n\t\tconst authenticationResponse = response.body;\n\t\tconst jwt = authenticationResponse.accessToken;\n\n\t\treturn jwt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TestBootstrapConsole.html":{"url":"classes/TestBootstrapConsole.html","title":"class - TestBootstrapConsole","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TestBootstrapConsole\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/console/api-test/test-bootstrap.console.ts\n \n\n\n\n \n Extends\n \n \n AbstractBootstrapConsole\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n create\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate()\n \n \n\n\n \n \n Defined in apps/server/src/console/api-test/test-bootstrap.console.ts:8\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { createMock } from '@golevelup/ts-jest';\nimport { Test, TestingModule } from '@nestjs/testing';\nimport { ConsoleWriterService } from '@shared/infra/console';\nimport { DatabaseManagementUc } from '@src/modules/management/uc/database-management.uc';\nimport { AbstractBootstrapConsole, BootstrapConsole } from 'nestjs-console';\n\nexport class TestBootstrapConsole extends AbstractBootstrapConsole {\n\tcreate(): Promise {\n\t\treturn Test.createTestingModule({\n\t\t\timports: [this.options.module],\n\t\t})\n\t\t\t.overrideProvider(DatabaseManagementUc)\n\t\t\t.useValue(createMock())\n\t\t\t.overrideProvider(ConsoleWriterService)\n\t\t\t.useValue(createMock())\n\t\t\t.compile();\n\t}\n}\n\nexport const execute = async (bootstrap: BootstrapConsole, args: string[]): Promise => {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst commandResponse = await bootstrap.boot([process.argv0, 'console', ...args]);\n\treturn Promise.resolve();\n};\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TestHelper.html":{"url":"classes/TestHelper.html","title":"class - TestHelper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TestHelper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/files-storage/helper/test-helper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n createFile\n \n \n Static\n createFileResponse\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n createFile\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/files-storage/helper/test-helper.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Static\n createFileResponse\n \n \n \n \n \n \n Default value : () => {...}\n \n \n \n \n Defined in apps/server/src/modules/files-storage/helper/test-helper.ts:21\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { GetFile } from '@shared/infra/s3-client';\nimport { Readable } from 'stream';\nimport { GetFileResponse } from '../interface';\n\nexport class TestHelper {\n\tpublic static createFile = (contentRange?: string): GetFile => {\n\t\tconst text = 'testText';\n\t\tconst readable = Readable.from(text);\n\n\t\tconst fileResponse = {\n\t\t\tdata: readable,\n\t\t\tcontentType: 'image/webp',\n\t\t\tcontentLength: text.length,\n\t\t\tcontentRange,\n\t\t\tetag: 'testTag',\n\t\t};\n\n\t\treturn fileResponse;\n\t};\n\n\tpublic static createFileResponse = (contentRange?: string): GetFileResponse => {\n\t\tconst name = 'testName';\n\t\tconst file = this.createFile(contentRange);\n\t\tconst fileResponse = { ...file, name };\n\n\t\treturn fileResponse;\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TimeoutInterceptor.html":{"url":"injectables/TimeoutInterceptor.html","title":"injectable - TimeoutInterceptor","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TimeoutInterceptor\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/interceptor/timeout.interceptor.ts\n \n\n\n \n Description\n \n \n This interceptor leaves the request execution after a given timeout in ms.\nThis will not stop the running services behind the controller.\n\n \n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n intercept\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(requestTimeout: number)\n \n \n \n \n Defined in apps/server/src/shared/common/interceptor/timeout.interceptor.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n requestTimeout\n \n \n number\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n intercept\n \n \n \n \n \n \nintercept(context: ExecutionContext, next: CallHandler)\n \n \n\n\n \n \n Defined in apps/server/src/shared/common/interceptor/timeout.interceptor.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n context\n \n ExecutionContext\n \n\n \n No\n \n\n\n \n \n next\n \n CallHandler\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Observable\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { CallHandler, ExecutionContext, Injectable, NestInterceptor, RequestTimeoutException } from '@nestjs/common';\nimport { Reflector } from '@nestjs/core';\nimport { Observable, throwError, TimeoutError } from 'rxjs';\nimport { catchError, timeout } from 'rxjs/operators';\n\n/**\n * This interceptor leaves the request execution after a given timeout in ms.\n * This will not stop the running services behind the controller.\n */\n@Injectable()\nexport class TimeoutInterceptor implements NestInterceptor {\n\tconstructor(private readonly requestTimeout: number) {}\n\n\tintercept(context: ExecutionContext, next: CallHandler): Observable {\n\t\tconst reflector = new Reflector();\n\t\tconst timeoutValue =\n\t\t\treflector.get('timeout', context.getHandler()) || reflector.get('timeout', context.getClass());\n\t\treturn next.handle().pipe(\n\t\t\ttimeout(timeoutValue || this.requestTimeout),\n\t\t\tcatchError((err: Error) => {\n\t\t\t\tif (err instanceof TimeoutError) {\n\t\t\t\t\treturn throwError(() => new RequestTimeoutException());\n\t\t\t\t}\n\t\t\t\treturn throwError(() => err);\n\t\t\t})\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TimestampsResponse.html":{"url":"classes/TimestampsResponse.html","title":"class - TimestampsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TimestampsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/timestamps.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n createdAt\n \n \n \n Optional\n deletedAt\n \n \n \n lastUpdatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: TimestampsResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/timestamps.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n TimestampsResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/timestamps.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n deletedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/timestamps.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastUpdatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/timestamps.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class TimestampsResponse {\n\tconstructor({ lastUpdatedAt, createdAt, deletedAt }: TimestampsResponse) {\n\t\tthis.lastUpdatedAt = lastUpdatedAt;\n\t\tthis.createdAt = createdAt;\n\t\tthis.deletedAt = deletedAt;\n\t}\n\n\t@ApiProperty()\n\tlastUpdatedAt: Date;\n\n\t@ApiProperty()\n\tcreatedAt: Date;\n\n\t@ApiPropertyOptional()\n\tdeletedAt?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToggleUserLoginMigrationUc.html":{"url":"injectables/ToggleUserLoginMigrationUc.html","title":"injectable - ToggleUserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToggleUserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/toggle-user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n checkPermission\n \n \n Async\n setMigrationMandatory\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, authorizationService: AuthorizationService, schoolService: LegacySchoolService, logger: Logger)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/toggle-user-login-migration.uc.ts:15\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n logger\n \n \n Logger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n checkPermission\n \n \n \n \n \n \n \n checkPermission(userId: string, schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/toggle-user-login-migration.uc.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigrationMandatory\n \n \n \n \n \n \n \n setMigrationMandatory(userId: string, schoolId: string, mandatory: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/toggle-user-login-migration.uc.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n mandatory\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { Permission, LegacySchoolDo, User, UserLoginMigrationDO } from '@shared/domain';\nimport { Logger } from '@src/core/logger';\nimport { AuthorizationContext, AuthorizationContextBuilder, AuthorizationService } from '@src/modules/authorization';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport {\n\tUserLoginMigrationAlreadyClosedLoggableException,\n\tUserLoginMigrationGracePeriodExpiredLoggableException,\n\tUserLoginMigrationNotFoundLoggableException,\n} from '../error';\nimport { UserLoginMigrationMandatoryLoggable } from '../loggable';\nimport { UserLoginMigrationService } from '../service';\n\n@Injectable()\nexport class ToggleUserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly logger: Logger\n\t) {}\n\n\tasync setMigrationMandatory(userId: string, schoolId: string, mandatory: boolean): Promise {\n\t\tawait this.checkPermission(userId, schoolId);\n\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t} else if (userLoginMigration.finishedAt && Date.now() >= userLoginMigration.finishedAt.getTime()) {\n\t\t\tthrow new UserLoginMigrationGracePeriodExpiredLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.finishedAt\n\t\t\t);\n\t\t} else if (userLoginMigration.closedAt) {\n\t\t\tthrow new UserLoginMigrationAlreadyClosedLoggableException(\n\t\t\t\tuserLoginMigration.id as string,\n\t\t\t\tuserLoginMigration.closedAt\n\t\t\t);\n\t\t} else {\n\t\t\tuserLoginMigration = await this.userLoginMigrationService.setMigrationMandatory(schoolId, mandatory);\n\n\t\t\tthis.logger.debug(new UserLoginMigrationMandatoryLoggable(userId, userLoginMigration.id as string, mandatory));\n\t\t}\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync checkPermission(userId: string, schoolId: string): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.write([Permission.USER_LOGIN_MIGRATION_ADMIN]);\n\t\tthis.authorizationService.checkPermission(user, school, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/TokenGenerator.html":{"url":"injectables/TokenGenerator.html","title":"injectable - TokenGenerator","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n TokenGenerator\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/sharing/service/token-generator.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n generateShareToken\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n generateShareToken\n \n \n \n \n \n \ngenerateShareToken()\n \n \n\n\n \n \n Defined in apps/server/src/modules/sharing/service/token-generator.service.ts:7\n \n \n\n\n \n \n\n \n Returns : ShareTokenString\n\n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { nanoid } from 'nanoid';\nimport { ShareTokenString } from '../domainobject/share-token.do';\n\n@Injectable()\nexport class TokenGenerator {\n\tgenerateShareToken(): ShareTokenString {\n\t\tconst token = nanoid(12);\n\t\treturn token;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/TokenRequestMapper.html":{"url":"classes/TokenRequestMapper.html","title":"class - TokenRequestMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n TokenRequestMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/mapper/token-request.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n createAuthenticationCodeGrantTokenRequestPayload\n \n \n Static\n mapTokenResponseToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n createAuthenticationCodeGrantTokenRequestPayload\n \n \n \n \n \n \n \n createAuthenticationCodeGrantTokenRequestPayload(clientId: string, decryptedClientSecret: string, code: string, redirectUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/mapper/token-request.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n clientId\n \n string\n \n\n \n No\n \n\n\n \n \n decryptedClientSecret\n \n string\n \n\n \n No\n \n\n\n \n \n code\n \n string\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AuthenticationCodeGrantTokenRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapTokenResponseToDto\n \n \n \n \n \n \n \n mapTokenResponseToDto(response: OauthTokenResponse)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/mapper/token-request.mapper.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n response\n \n OauthTokenResponse\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : OAuthTokenDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { OAuthTokenDto } from '../interface';\nimport { OAuthGrantType } from '../interface/oauth-grant-type.enum';\nimport { AuthenticationCodeGrantTokenRequest, OauthTokenResponse } from '../service/dto';\n\nexport class TokenRequestMapper {\n\tstatic createAuthenticationCodeGrantTokenRequestPayload(\n\t\tclientId: string,\n\t\tdecryptedClientSecret: string,\n\t\tcode: string,\n\t\tredirectUri: string\n\t): AuthenticationCodeGrantTokenRequest {\n\t\treturn new AuthenticationCodeGrantTokenRequest({\n\t\t\tclient_id: clientId,\n\t\t\tclient_secret: decryptedClientSecret,\n\t\t\tredirect_uri: redirectUri,\n\t\t\tgrant_type: OAuthGrantType.AUTHORIZATION_CODE_GRANT,\n\t\t\tcode,\n\t\t});\n\t}\n\n\tstatic mapTokenResponseToDto(response: OauthTokenResponse): OAuthTokenDto {\n\t\treturn new OAuthTokenDto({\n\t\t\tidToken: response.id_token,\n\t\t\trefreshToken: response.refresh_token,\n\t\t\taccessToken: response.access_token,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ToolApiModule.html":{"url":"modules/ToolApiModule.html","title":"module - ToolApiModule","body":"\n \n\n\n\n\n Modules\n ToolApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ToolApiModule\n\n\n\ncluster_ToolApiModule_providers\n\n\n\ncluster_ToolApiModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nToolApiModule\n\nToolApiModule\n\nToolApiModule -->\n\nAuthorizationModule->ToolApiModule\n\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\nToolApiModule -->\n\nCommonToolModule->ToolApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nToolApiModule -->\n\nLegacySchoolModule->ToolApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nToolApiModule -->\n\nLoggerModule->ToolApiModule\n\n\n\n\n\nToolConfigModule\n\nToolConfigModule\n\nToolApiModule -->\n\nToolConfigModule->ToolApiModule\n\n\n\n\n\nToolModule\n\nToolModule\n\nToolApiModule -->\n\nToolModule->ToolApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nToolApiModule -->\n\nUserModule->ToolApiModule\n\n\n\n\n\nContextExternalToolUc\n\nContextExternalToolUc\n\nToolApiModule -->\n\nContextExternalToolUc->ToolApiModule\n\n\n\n\n\nExternalToolConfigurationService\n\nExternalToolConfigurationService\n\nToolApiModule -->\n\nExternalToolConfigurationService->ToolApiModule\n\n\n\n\n\nExternalToolConfigurationUc\n\nExternalToolConfigurationUc\n\nToolApiModule -->\n\nExternalToolConfigurationUc->ToolApiModule\n\n\n\n\n\nExternalToolRequestMapper\n\nExternalToolRequestMapper\n\nToolApiModule -->\n\nExternalToolRequestMapper->ToolApiModule\n\n\n\n\n\nExternalToolResponseMapper\n\nExternalToolResponseMapper\n\nToolApiModule -->\n\nExternalToolResponseMapper->ToolApiModule\n\n\n\n\n\nExternalToolUc\n\nExternalToolUc\n\nToolApiModule -->\n\nExternalToolUc->ToolApiModule\n\n\n\n\n\nLtiToolRepo\n\nLtiToolRepo\n\nToolApiModule -->\n\nLtiToolRepo->ToolApiModule\n\n\n\n\n\nSchoolExternalToolRequestMapper\n\nSchoolExternalToolRequestMapper\n\nToolApiModule -->\n\nSchoolExternalToolRequestMapper->ToolApiModule\n\n\n\n\n\nSchoolExternalToolResponseMapper\n\nSchoolExternalToolResponseMapper\n\nToolApiModule -->\n\nSchoolExternalToolResponseMapper->ToolApiModule\n\n\n\n\n\nSchoolExternalToolUc\n\nSchoolExternalToolUc\n\nToolApiModule -->\n\nSchoolExternalToolUc->ToolApiModule\n\n\n\n\n\nToolLaunchUc\n\nToolLaunchUc\n\nToolApiModule -->\n\nToolLaunchUc->ToolApiModule\n\n\n\n\n\nToolReferenceUc\n\nToolReferenceUc\n\nToolApiModule -->\n\nToolReferenceUc->ToolApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/tool-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n ContextExternalToolUc\n \n \n ExternalToolConfigurationService\n \n \n ExternalToolConfigurationUc\n \n \n ExternalToolRequestMapper\n \n \n ExternalToolResponseMapper\n \n \n ExternalToolUc\n \n \n LtiToolRepo\n \n \n SchoolExternalToolRequestMapper\n \n \n SchoolExternalToolResponseMapper\n \n \n SchoolExternalToolUc\n \n \n ToolLaunchUc\n \n \n ToolReferenceUc\n \n \n \n \n Controllers\n \n \n ToolLaunchController\n \n \n ToolConfigurationController\n \n \n ToolSchoolController\n \n \n ToolContextController\n \n \n ToolController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CommonToolModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n ToolConfigModule\n \n \n ToolModule\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LtiToolRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { UserModule } from '@src/modules/user';\nimport { ToolContextController } from './context-external-tool/controller';\nimport { ContextExternalToolUc } from './context-external-tool/uc';\nimport { ToolConfigurationController, ToolController } from './external-tool/controller';\nimport { ExternalToolRequestMapper, ExternalToolResponseMapper } from './external-tool/mapper';\nimport { ExternalToolConfigurationUc, ExternalToolUc, ToolReferenceUc } from './external-tool/uc';\nimport { ToolSchoolController } from './school-external-tool/controller';\nimport { SchoolExternalToolRequestMapper, SchoolExternalToolResponseMapper } from './school-external-tool/mapper';\nimport { SchoolExternalToolUc } from './school-external-tool/uc';\nimport { ToolConfigModule } from './tool-config.module';\nimport { ToolLaunchController } from './tool-launch/controller/tool-launch.controller';\nimport { ToolLaunchUc } from './tool-launch/uc';\nimport { ToolModule } from './tool.module';\nimport { ExternalToolConfigurationService } from './external-tool/service';\nimport { CommonToolModule } from './common';\n\n@Module({\n\timports: [\n\t\tToolModule,\n\t\tCommonToolModule,\n\t\tUserModule,\n\t\tAuthorizationModule,\n\t\tLoggerModule,\n\t\tLegacySchoolModule,\n\t\tToolConfigModule,\n\t],\n\tcontrollers: [\n\t\tToolLaunchController,\n\t\tToolConfigurationController,\n\t\tToolSchoolController,\n\t\tToolContextController,\n\t\tToolController,\n\t],\n\tproviders: [\n\t\tLtiToolRepo,\n\t\tExternalToolUc,\n\t\tExternalToolConfigurationUc,\n\t\tExternalToolConfigurationService,\n\t\tExternalToolRequestMapper,\n\t\tExternalToolResponseMapper,\n\t\tSchoolExternalToolUc,\n\t\tSchoolExternalToolResponseMapper,\n\t\tSchoolExternalToolRequestMapper,\n\t\tContextExternalToolUc,\n\t\tToolLaunchUc,\n\t\tToolReferenceUc,\n\t],\n})\nexport class ToolApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ToolConfigModule.html":{"url":"modules/ToolConfigModule.html","title":"module - ToolConfigModule","body":"\n \n\n\n\n\n Modules\n ToolConfigModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/tool-config.module.ts\n \n\n\n\n\n\n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport ToolConfiguration, { ToolFeatures } from './tool-config';\n\n@Module({\n\tproviders: [\n\t\t{\n\t\t\tprovide: ToolFeatures,\n\t\t\tuseValue: ToolConfiguration.toolFeatures,\n\t\t},\n\t],\n\texports: [ToolFeatures],\n})\nexport class ToolConfigModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolConfiguration.html":{"url":"classes/ToolConfiguration.html","title":"class - ToolConfiguration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolConfiguration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n toolFeatures\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n toolFeatures\n \n \n \n \n \n \n Type : IToolFeatures\n\n \n \n \n \n Default value : {\n\t\tctlToolsTabEnabled: Configuration.get('FEATURE_CTL_TOOLS_TAB_ENABLED') as boolean,\n\t\tltiToolsTabEnabled: Configuration.get('FEATURE_LTI_TOOLS_TAB_ENABLED') as boolean,\n\t\tcontextConfigurationEnabled: Configuration.get('FEATURE_CTL_CONTEXT_CONFIGURATION_ENABLED') as boolean,\n\t\tmaxExternalToolLogoSizeInBytes: Configuration.get('CTL_TOOLS__EXTERNAL_TOOL_MAX_LOGO_SIZE_IN_BYTES') as number,\n\t\tbackEndUrl: Configuration.get('PUBLIC_BACKEND_URL') as string,\n\t}\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-config.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\n\nexport const ToolFeatures = Symbol('ToolFeatures');\n\nexport interface IToolFeatures {\n\tctlToolsTabEnabled: boolean;\n\tltiToolsTabEnabled: boolean;\n\tcontextConfigurationEnabled: boolean;\n\tmaxExternalToolLogoSizeInBytes: number;\n\tbackEndUrl: string;\n}\n\nexport default class ToolConfiguration {\n\tstatic toolFeatures: IToolFeatures = {\n\t\tctlToolsTabEnabled: Configuration.get('FEATURE_CTL_TOOLS_TAB_ENABLED') as boolean,\n\t\tltiToolsTabEnabled: Configuration.get('FEATURE_LTI_TOOLS_TAB_ENABLED') as boolean,\n\t\tcontextConfigurationEnabled: Configuration.get('FEATURE_CTL_CONTEXT_CONFIGURATION_ENABLED') as boolean,\n\t\tmaxExternalToolLogoSizeInBytes: Configuration.get('CTL_TOOLS__EXTERNAL_TOOL_MAX_LOGO_SIZE_IN_BYTES') as number,\n\t\tbackEndUrl: Configuration.get('PUBLIC_BACKEND_URL') as string,\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolConfigurationController.html":{"url":"controllers/ToolConfigurationController.html","title":"controller - ToolConfigurationController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolConfigurationController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts\n \n\n \n Prefix\n \n \n tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForContext\n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForSchool\n \n \n \n \n \n \n \n Public\n Async\n getConfigurationTemplateForContext\n \n \n \n \n \n \n \n Public\n Async\n getConfigurationTemplateForSchool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForContext\n \n \n \n \n \n \n \n getAvailableToolsForContext(currentUser: ICurrentUser, params: ContextRefParams)\n \n \n\n \n \n Decorators : \n \n @Get(':contextType/:contextId/available-tools')@ApiForbiddenResponse()@ApiOperation({summary: 'Lists all available tools that can be added for a given context'})@ApiOkResponse({description: 'List of available tools for a context', type: ContextExternalToolConfigurationTemplateListResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextRefParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getAvailableToolsForSchool\n \n \n \n \n \n \n \n getAvailableToolsForSchool(currentUser: ICurrentUser, params: SchoolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('school/:schoolId/available-tools')@ApiForbiddenResponse()@ApiOperation({summary: 'Lists all available tools that can be added for a given school'})@ApiOkResponse({description: 'List of available tools for a school', type: SchoolExternalToolConfigurationTemplateListResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getConfigurationTemplateForContext\n \n \n \n \n \n \n \n getConfigurationTemplateForContext(currentUser: ICurrentUser, params: ContextExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('context-external-tools/:contextExternalToolId/configuration-template')@ApiUnauthorizedResponse()@ApiForbiddenResponse()@ApiOperation({summary: 'Get the latest configuration template for a Context External Tool'})@ApiFoundResponse({description: 'Configuration template for a Context External Tool', type: ContextExternalToolConfigurationTemplateResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts:110\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n getConfigurationTemplateForSchool\n \n \n \n \n \n \n \n getConfigurationTemplateForSchool(currentUser: ICurrentUser, params: SchoolExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('school-external-tools/:schoolExternalToolId/configuration-template')@ApiUnauthorizedResponse()@ApiForbiddenResponse()@ApiOperation({summary: 'Get the latest configuration template for a School External Tool'})@ApiFoundResponse({description: 'Configuration template for a School External Tool', type: SchoolExternalToolConfigurationTemplateResponse})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool-configuration.controller.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param } from '@nestjs/common';\nimport {\n\tApiForbiddenResponse,\n\tApiFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n} from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ExternalTool } from '../domain';\nimport { ToolConfigurationMapper } from '../mapper/tool-configuration.mapper';\nimport { ContextExternalToolTemplateInfo, ExternalToolConfigurationUc } from '../uc';\nimport {\n\tContextExternalToolConfigurationTemplateListResponse,\n\tContextExternalToolConfigurationTemplateResponse,\n\tContextExternalToolIdParams,\n\tContextRefParams,\n\tSchoolExternalToolConfigurationTemplateListResponse,\n\tSchoolExternalToolConfigurationTemplateResponse,\n\tSchoolExternalToolIdParams,\n\tSchoolIdParams,\n} from './dto';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools')\nexport class ToolConfigurationController {\n\tconstructor(private readonly externalToolConfigurationUc: ExternalToolConfigurationUc) {}\n\n\t@Get('school/:schoolId/available-tools')\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Lists all available tools that can be added for a given school' })\n\t@ApiOkResponse({\n\t\tdescription: 'List of available tools for a school',\n\t\ttype: SchoolExternalToolConfigurationTemplateListResponse,\n\t})\n\tpublic async getAvailableToolsForSchool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolIdParams\n\t): Promise {\n\t\tconst availableTools: ExternalTool[] = await this.externalToolConfigurationUc.getAvailableToolsForSchool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.schoolId\n\t\t);\n\n\t\tconst mapped: SchoolExternalToolConfigurationTemplateListResponse =\n\t\t\tToolConfigurationMapper.mapToSchoolExternalToolConfigurationTemplateListResponse(availableTools);\n\n\t\treturn mapped;\n\t}\n\n\t@Get(':contextType/:contextId/available-tools')\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Lists all available tools that can be added for a given context' })\n\t@ApiOkResponse({\n\t\tdescription: 'List of available tools for a context',\n\t\ttype: ContextExternalToolConfigurationTemplateListResponse,\n\t})\n\tpublic async getAvailableToolsForContext(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextRefParams\n\t): Promise {\n\t\tconst availableTools: ContextExternalToolTemplateInfo[] =\n\t\t\tawait this.externalToolConfigurationUc.getAvailableToolsForContext(\n\t\t\t\tcurrentUser.userId,\n\t\t\t\tcurrentUser.schoolId,\n\t\t\t\tparams.contextId,\n\t\t\t\tparams.contextType\n\t\t\t);\n\n\t\tconst mapped: ContextExternalToolConfigurationTemplateListResponse =\n\t\t\tToolConfigurationMapper.mapToContextExternalToolConfigurationTemplateListResponse(availableTools);\n\n\t\treturn mapped;\n\t}\n\n\t@Get('school-external-tools/:schoolExternalToolId/configuration-template')\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Get the latest configuration template for a School External Tool' })\n\t@ApiFoundResponse({\n\t\tdescription: 'Configuration template for a School External Tool',\n\t\ttype: SchoolExternalToolConfigurationTemplateResponse,\n\t})\n\tpublic async getConfigurationTemplateForSchool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolExternalToolIdParams\n\t): Promise {\n\t\tconst tool: ExternalTool = await this.externalToolConfigurationUc.getTemplateForSchoolExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.schoolExternalToolId\n\t\t);\n\n\t\tconst mapped: SchoolExternalToolConfigurationTemplateResponse =\n\t\t\tToolConfigurationMapper.mapToSchoolExternalToolConfigurationTemplateResponse(tool);\n\n\t\treturn mapped;\n\t}\n\n\t@Get('context-external-tools/:contextExternalToolId/configuration-template')\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Get the latest configuration template for a Context External Tool' })\n\t@ApiFoundResponse({\n\t\tdescription: 'Configuration template for a Context External Tool',\n\t\ttype: ContextExternalToolConfigurationTemplateResponse,\n\t})\n\tpublic async getConfigurationTemplateForContext(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams\n\t): Promise {\n\t\tconst tool: ContextExternalToolTemplateInfo =\n\t\t\tawait this.externalToolConfigurationUc.getTemplateForContextExternalTool(\n\t\t\t\tcurrentUser.userId,\n\t\t\t\tparams.contextExternalToolId\n\t\t\t);\n\n\t\tconst mapped: ContextExternalToolConfigurationTemplateResponse =\n\t\t\tToolConfigurationMapper.mapToContextExternalToolConfigurationTemplateResponse(tool);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolConfigurationMapper.html":{"url":"classes/ToolConfigurationMapper.html","title":"class - ToolConfigurationMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolConfigurationMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToContextExternalToolConfigurationTemplateListResponse\n \n \n Static\n mapToContextExternalToolConfigurationTemplateResponse\n \n \n Static\n mapToSchoolExternalToolConfigurationTemplateListResponse\n \n \n Static\n mapToSchoolExternalToolConfigurationTemplateResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToContextExternalToolConfigurationTemplateListResponse\n \n \n \n \n \n \n \n mapToContextExternalToolConfigurationTemplateListResponse(toolInfos: ContextExternalToolTemplateInfo[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolInfos\n \n ContextExternalToolTemplateInfo[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolConfigurationTemplateListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToContextExternalToolConfigurationTemplateResponse\n \n \n \n \n \n \n \n mapToContextExternalToolConfigurationTemplateResponse(toolInfo: ContextExternalToolTemplateInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolInfo\n \n ContextExternalToolTemplateInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ContextExternalToolConfigurationTemplateResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToSchoolExternalToolConfigurationTemplateListResponse\n \n \n \n \n \n \n \n mapToSchoolExternalToolConfigurationTemplateListResponse(externalTools: ExternalTool[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTools\n \n ExternalTool[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolConfigurationTemplateListResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToSchoolExternalToolConfigurationTemplateResponse\n \n \n \n \n \n \n \n mapToSchoolExternalToolConfigurationTemplateResponse(externalTool: ExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-configuration.mapper.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : SchoolExternalToolConfigurationTemplateResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import {\n\tContextExternalToolConfigurationTemplateListResponse,\n\tContextExternalToolConfigurationTemplateResponse,\n\tSchoolExternalToolConfigurationTemplateListResponse,\n\tSchoolExternalToolConfigurationTemplateResponse,\n} from '../controller/dto';\nimport { ExternalTool } from '../domain';\nimport { ContextExternalToolTemplateInfo } from '../uc';\nimport { ExternalToolResponseMapper } from './external-tool-response.mapper';\n\nexport class ToolConfigurationMapper {\n\tstatic mapToSchoolExternalToolConfigurationTemplateResponse(\n\t\texternalTool: ExternalTool\n\t): SchoolExternalToolConfigurationTemplateResponse {\n\t\tconst mapped = new SchoolExternalToolConfigurationTemplateResponse({\n\t\t\texternalToolId: externalTool.id ?? '',\n\t\t\tname: externalTool.name,\n\t\t\tlogoUrl: externalTool.logoUrl,\n\t\t\tparameters: externalTool.parameters\n\t\t\t\t? ExternalToolResponseMapper.mapCustomParameterToResponse(externalTool.parameters)\n\t\t\t\t: [],\n\t\t\tversion: externalTool.version,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapToSchoolExternalToolConfigurationTemplateListResponse(\n\t\texternalTools: ExternalTool[]\n\t): SchoolExternalToolConfigurationTemplateListResponse {\n\t\tconst mappedTools = externalTools.map(\n\t\t\t(tool): SchoolExternalToolConfigurationTemplateResponse =>\n\t\t\t\tthis.mapToSchoolExternalToolConfigurationTemplateResponse(tool)\n\t\t);\n\n\t\tconst mapped = new SchoolExternalToolConfigurationTemplateListResponse(mappedTools);\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapToContextExternalToolConfigurationTemplateResponse(\n\t\ttoolInfo: ContextExternalToolTemplateInfo\n\t): ContextExternalToolConfigurationTemplateResponse {\n\t\tconst { externalTool, schoolExternalTool } = toolInfo;\n\n\t\tconst mapped = new ContextExternalToolConfigurationTemplateResponse({\n\t\t\texternalToolId: externalTool.id ?? '',\n\t\t\tschoolExternalToolId: schoolExternalTool.id ?? '',\n\t\t\tname: externalTool.name,\n\t\t\tlogoUrl: externalTool.logoUrl,\n\t\t\tparameters: externalTool.parameters\n\t\t\t\t? ExternalToolResponseMapper.mapCustomParameterToResponse(externalTool.parameters)\n\t\t\t\t: [],\n\t\t\tversion: externalTool.version,\n\t\t});\n\n\t\treturn mapped;\n\t}\n\n\tstatic mapToContextExternalToolConfigurationTemplateListResponse(\n\t\ttoolInfos: ContextExternalToolTemplateInfo[]\n\t): ContextExternalToolConfigurationTemplateListResponse {\n\t\tconst mappedTools = toolInfos.map(\n\t\t\t(tool): ContextExternalToolConfigurationTemplateResponse =>\n\t\t\t\tthis.mapToContextExternalToolConfigurationTemplateResponse(tool)\n\t\t);\n\n\t\tconst mapped = new ContextExternalToolConfigurationTemplateListResponse(mappedTools);\n\n\t\treturn mapped;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolContextController.html":{"url":"controllers/ToolContextController.html","title":"controller - ToolContextController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolContextController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts\n \n\n \n Prefix\n \n \n tools/context-external-tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createContextExternalTool\n \n \n \n \n \n \n \n Async\n deleteContextExternalTool\n \n \n \n \n \n \n \n \n Async\n getContextExternalTool\n \n \n \n \n \n \n \n Async\n getContextExternalToolsForContext\n \n \n \n \n \n \n \n \n Async\n updateContextExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createContextExternalTool\n \n \n \n \n \n \n \n createContextExternalTool(currentUser: ICurrentUser, body: ContextExternalToolPostParams)\n \n \n\n \n \n Decorators : \n \n @Post()@ApiCreatedResponse({description: 'The ContextExternalTool has been successfully created.', type: ContextExternalToolResponse})@ApiForbiddenResponse()@ApiUnprocessableEntityResponse()@ApiUnauthorizedResponse()@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Creates a ContextExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n ContextExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteContextExternalTool\n \n \n \n \n \n \n \n deleteContextExternalTool(currentUser: ICurrentUser, params: ContextExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Delete(':contextExternalToolId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOperation({summary: 'Deletes a ContextExternalTool'})@HttpCode(HttpStatus.NO_CONTENT)\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalTool\n \n \n \n \n \n \n \n getContextExternalTool(currentUser: ICurrentUser, params: ContextExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get(':contextExternalToolId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiNotFoundResponse()@ApiOkResponse({description: 'Returns a ContextExternalTool for the given id', type: ContextExternalToolResponse})@ApiOperation({summary: 'Searches a ContextExternalTool for the given id'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:121\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getContextExternalToolsForContext\n \n \n \n \n \n \n \n getContextExternalToolsForContext(currentUser: ICurrentUser, params: ContextExternalToolContextParams)\n \n \n\n \n \n Decorators : \n \n @Get(':contextType/:contextId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOkResponse({description: 'Returns a list of ContextExternalTools for the given context', type: ContextExternalToolSearchListResponse})@ApiOperation({summary: 'Returns a list of ContextExternalTools for the given context'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:88\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolContextParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateContextExternalTool\n \n \n \n \n \n \n \n updateContextExternalTool(currentUser: ICurrentUser, params: ContextExternalToolIdParams, body: ContextExternalToolPostParams)\n \n \n\n \n \n Decorators : \n \n @Put(':contextExternalToolId')@ApiOkResponse({description: 'The ContextExternalTool has been successfully updated.', type: ContextExternalToolResponse})@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiUnprocessableEntityResponse()@ApiOperation({summary: 'Updates a ContextExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/context-external-tool/controller/tool-context.controller.ts:145\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n body\n \n ContextExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put } from '@nestjs/common';\nimport {\n\tApiCreatedResponse,\n\tApiForbiddenResponse,\n\tApiNotFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiResponse,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n} from '@nestjs/swagger';\nimport { ValidationError } from '@shared/common';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ContextExternalTool } from '../domain';\nimport { ContextExternalToolRequestMapper, ContextExternalToolResponseMapper } from '../mapper';\nimport { ContextExternalToolUc } from '../uc';\nimport { ContextExternalToolDto } from '../uc/dto/context-external-tool.types';\nimport {\n\tContextExternalToolContextParams,\n\tContextExternalToolIdParams,\n\tContextExternalToolPostParams,\n\tContextExternalToolResponse,\n\tContextExternalToolSearchListResponse,\n} from './dto';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools/context-external-tools')\nexport class ToolContextController {\n\tconstructor(private readonly contextExternalToolUc: ContextExternalToolUc, private readonly logger: LegacyLogger) {}\n\n\t@Post()\n\t@ApiCreatedResponse({\n\t\tdescription: 'The ContextExternalTool has been successfully created.',\n\t\ttype: ContextExternalToolResponse,\n\t})\n\t@ApiForbiddenResponse()\n\t@ApiUnprocessableEntityResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Creates a ContextExternalTool' })\n\tasync createContextExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: ContextExternalToolPostParams\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalToolDto =\n\t\t\tContextExternalToolRequestMapper.mapContextExternalToolRequest(body);\n\n\t\tconst createdTool: ContextExternalTool = await this.contextExternalToolUc.createContextExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\tconst response: ContextExternalToolResponse =\n\t\t\tContextExternalToolResponseMapper.mapContextExternalToolResponse(createdTool);\n\n\t\tthis.logger.debug(`ContextExternalTool with id ${response.id} was created by user with id ${currentUser.userId}`);\n\t\treturn response;\n\t}\n\n\t@Delete(':contextExternalToolId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOperation({ summary: 'Deletes a ContextExternalTool' })\n\t@HttpCode(HttpStatus.NO_CONTENT)\n\tasync deleteContextExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams\n\t): Promise {\n\t\tawait this.contextExternalToolUc.deleteContextExternalTool(currentUser.userId, params.contextExternalToolId);\n\n\t\tthis.logger.debug(\n\t\t\t`ContextExternalTool with id ${params.contextExternalToolId} was deleted by user with id ${currentUser.userId}`\n\t\t);\n\t}\n\n\t@Get(':contextType/:contextId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOkResponse({\n\t\tdescription: 'Returns a list of ContextExternalTools for the given context',\n\t\ttype: ContextExternalToolSearchListResponse,\n\t})\n\t@ApiOperation({ summary: 'Returns a list of ContextExternalTools for the given context' })\n\tasync getContextExternalToolsForContext(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolContextParams\n\t): Promise {\n\t\tconst contextExternalTools: ContextExternalTool[] =\n\t\t\tawait this.contextExternalToolUc.getContextExternalToolsForContext(\n\t\t\t\tcurrentUser.userId,\n\t\t\t\tparams.contextType,\n\t\t\t\tparams.contextId\n\t\t\t);\n\n\t\tconst mappedTools: ContextExternalToolResponse[] = contextExternalTools.map(\n\t\t\t(tool: ContextExternalTool): ContextExternalToolResponse =>\n\t\t\t\tContextExternalToolResponseMapper.mapContextExternalToolResponse(tool)\n\t\t);\n\n\t\tthis.logger.debug(\n\t\t\t`User with id ${currentUser.userId} fetched ContextExternalTools for contextType: ${params.contextType} and contextId: ${params.contextId}`\n\t\t);\n\n\t\tconst response: ContextExternalToolSearchListResponse = new ContextExternalToolSearchListResponse(mappedTools);\n\t\treturn response;\n\t}\n\n\t@Get(':contextExternalToolId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiNotFoundResponse()\n\t@ApiOkResponse({\n\t\tdescription: 'Returns a ContextExternalTool for the given id',\n\t\ttype: ContextExternalToolResponse,\n\t})\n\t@ApiOperation({ summary: 'Searches a ContextExternalTool for the given id' })\n\tasync getContextExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolUc.getContextExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextExternalToolId\n\t\t);\n\n\t\tconst response: ContextExternalToolResponse =\n\t\t\tContextExternalToolResponseMapper.mapContextExternalToolResponse(contextExternalTool);\n\n\t\treturn response;\n\t}\n\n\t@Put(':contextExternalToolId')\n\t@ApiOkResponse({\n\t\tdescription: 'The ContextExternalTool has been successfully updated.',\n\t\ttype: ContextExternalToolResponse,\n\t})\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiUnprocessableEntityResponse()\n\t@ApiOperation({ summary: 'Updates a ContextExternalTool' })\n\tasync updateContextExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolIdParams,\n\t\t@Body() body: ContextExternalToolPostParams\n\t): Promise {\n\t\tconst contextExternalTool: ContextExternalToolDto =\n\t\t\tContextExternalToolRequestMapper.mapContextExternalToolRequest(body);\n\n\t\tconst updatedTool: ContextExternalTool = await this.contextExternalToolUc.updateContextExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextExternalToolId,\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\tconst response: ContextExternalToolResponse =\n\t\t\tContextExternalToolResponseMapper.mapContextExternalToolResponse(updatedTool);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolController.html":{"url":"controllers/ToolController.html","title":"controller - ToolController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/tool.controller.ts\n \n\n \n Prefix\n \n \n tools/external-tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createExternalTool\n \n \n \n \n \n \n \n Async\n deleteExternalTool\n \n \n \n \n \n \n \n Async\n findExternalTool\n \n \n \n \n Async\n getExternalTool\n \n \n \n \n \n \n Async\n getExternalToolLogo\n \n \n \n \n \n \n \n Async\n getToolReferences\n \n \n \n \n \n \n \n \n Async\n updateExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createExternalTool\n \n \n \n \n \n \n \n createExternalTool(currentUser: ICurrentUser, externalToolParams: ExternalToolCreateParams)\n \n \n\n \n \n Decorators : \n \n @Post()@ApiCreatedResponse({description: 'The Tool has been successfully created.', type: ExternalToolResponse})@ApiForbiddenResponse()@ApiUnprocessableEntityResponse()@ApiUnauthorizedResponse()@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Creates an ExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:58\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n externalToolParams\n \n ExternalToolCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteExternalTool\n \n \n \n \n \n \n \n deleteExternalTool(currentUser: ICurrentUser, params: ExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Delete(':externalToolId')@ApiForbiddenResponse({description: 'User is not allowed to access this resource.'})@ApiUnauthorizedResponse({description: 'User is not logged in.'})@ApiOperation({summary: 'Deletes an ExternalTool'})@HttpCode(HttpStatus.NO_CONTENT)\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:147\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findExternalTool\n \n \n \n \n \n \n \n findExternalTool(currentUser: ICurrentUser, filterQuery: ExternalToolSearchParams, pagination: PaginationParams, sortingQuery: SortExternalToolParams)\n \n \n\n \n \n Decorators : \n \n @Get()@ApiFoundResponse({description: 'Tools has been found.', type: ExternalToolSearchListResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()@ApiOperation({summary: 'Returns a list of ExternalTools'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n filterQuery\n \n ExternalToolSearchParams\n \n\n \n No\n \n\n\n \n \n pagination\n \n PaginationParams\n \n\n \n No\n \n\n\n \n \n sortingQuery\n \n SortExternalToolParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getExternalTool\n \n \n \n \n \n \n \n getExternalTool(currentUser: ICurrentUser, params: ExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get(':externalToolId')@ApiOperation({summary: 'Returns an ExternalTool for the given id'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getExternalToolLogo\n \n \n \n \n \n \n \n getExternalToolLogo(params: ExternalToolIdParams, res: Response)\n \n \n\n \n \n Decorators : \n \n @Get('/:externalToolId/logo')@ApiOperation({summary: 'Gets the logo of an external tool.'})@ApiOkResponse({description: 'Logo of external tool fetched successfully.'})@ApiUnauthorizedResponse({description: 'User is not logged in.'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:191\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n res\n \n Response\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolReferences\n \n \n \n \n \n \n \n getToolReferences(currentUser: ICurrentUser, params: ContextExternalToolContextParams)\n \n \n\n \n \n Decorators : \n \n @Get('/:contextType/:contextId/references')@ApiOperation({summary: 'Get ExternalTool References for a given context'})@ApiOkResponse({description: 'The Tool References has been successfully fetched.', type: ToolReferenceListResponse})@ApiForbiddenResponse({description: 'User is not allowed to access this resource.'})@ApiUnauthorizedResponse({description: 'User is not logged in.'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ContextExternalToolContextParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateExternalTool\n \n \n \n \n \n \n \n updateExternalTool(currentUser: ICurrentUser, params: ExternalToolIdParams, externalToolParams: ExternalToolUpdateParams)\n \n \n\n \n \n Decorators : \n \n @Post('/:externalToolId')@ApiOkResponse({description: 'The Tool has been successfully updated.', type: ExternalToolResponse})@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Updates an ExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/tool.controller.ts:125\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n externalToolParams\n \n ExternalToolUpdateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Query, Res } from '@nestjs/common';\nimport {\n\tApiCreatedResponse,\n\tApiForbiddenResponse,\n\tApiFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiResponse,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n} from '@nestjs/swagger';\nimport { ValidationError } from '@shared/common';\nimport { PaginationParams } from '@shared/controller';\nimport { IFindOptions, Page } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { Response } from 'express';\nimport { ExternalToolSearchQuery } from '../../common/interface';\nimport { ContextExternalToolContextParams } from '../../context-external-tool/controller/dto';\nimport { ExternalTool, ToolReference } from '../domain';\nimport { ExternalToolLogo } from '../domain/external-tool-logo';\nimport { ExternalToolRequestMapper, ExternalToolResponseMapper } from '../mapper';\nimport { ExternalToolCreate, ExternalToolUc, ExternalToolUpdate, ToolReferenceUc } from '../uc';\nimport {\n\tExternalToolCreateParams,\n\tExternalToolResponse,\n\tExternalToolSearchListResponse,\n\tExternalToolSearchParams,\n\tExternalToolUpdateParams,\n\tSortExternalToolParams,\n\tExternalToolIdParams,\n\tToolReferenceListResponse,\n\tToolReferenceResponse,\n} from './dto';\nimport { ExternalToolLogoService } from '../service';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools/external-tools')\nexport class ToolController {\n\tconstructor(\n\t\tprivate readonly externalToolUc: ExternalToolUc,\n\t\tprivate readonly externalToolDOMapper: ExternalToolRequestMapper,\n\t\tprivate readonly toolReferenceUc: ToolReferenceUc,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\t@Post()\n\t@ApiCreatedResponse({ description: 'The Tool has been successfully created.', type: ExternalToolResponse })\n\t@ApiForbiddenResponse()\n\t@ApiUnprocessableEntityResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Creates an ExternalTool' })\n\tasync createExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() externalToolParams: ExternalToolCreateParams\n\t): Promise {\n\t\tconst externalTool: ExternalToolCreate = this.externalToolDOMapper.mapCreateRequest(externalToolParams);\n\n\t\tconst created: ExternalTool = await this.externalToolUc.createExternalTool(currentUser.userId, externalTool);\n\n\t\tconst mapped: ExternalToolResponse = ExternalToolResponseMapper.mapToExternalToolResponse(created);\n\n\t\tthis.logger.debug(`ExternalTool with id ${mapped.id} was created by user with id ${currentUser.userId}`);\n\n\t\treturn mapped;\n\t}\n\n\t@Get()\n\t@ApiFoundResponse({ description: 'Tools has been found.', type: ExternalToolSearchListResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({ summary: 'Returns a list of ExternalTools' })\n\tasync findExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() filterQuery: ExternalToolSearchParams,\n\t\t@Query() pagination: PaginationParams,\n\t\t@Query() sortingQuery: SortExternalToolParams\n\t): Promise {\n\t\tconst options: IFindOptions = { pagination };\n\t\toptions.order = this.externalToolDOMapper.mapSortingQueryToDomain(sortingQuery);\n\t\tconst query: ExternalToolSearchQuery =\n\t\t\tthis.externalToolDOMapper.mapExternalToolFilterQueryToExternalToolSearchQuery(filterQuery);\n\n\t\tconst tools: Page = await this.externalToolUc.findExternalTool(currentUser.userId, query, options);\n\n\t\tconst dtoList: ExternalToolResponse[] = tools.data.map(\n\t\t\t(tool: ExternalTool): ExternalToolResponse => ExternalToolResponseMapper.mapToExternalToolResponse(tool)\n\t\t);\n\t\tconst response: ExternalToolSearchListResponse = new ExternalToolSearchListResponse(\n\t\t\tdtoList,\n\t\t\ttools.total,\n\t\t\tpagination.skip,\n\t\t\tpagination.limit\n\t\t);\n\n\t\treturn response;\n\t}\n\n\t@Get(':externalToolId')\n\t@ApiOperation({ summary: 'Returns an ExternalTool for the given id' })\n\tasync getExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ExternalToolIdParams\n\t): Promise {\n\t\tconst externalTool: ExternalTool = await this.externalToolUc.getExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.externalToolId\n\t\t);\n\t\tconst mapped: ExternalToolResponse = ExternalToolResponseMapper.mapToExternalToolResponse(externalTool);\n\n\t\treturn mapped;\n\t}\n\n\t@Post('/:externalToolId')\n\t@ApiOkResponse({ description: 'The Tool has been successfully updated.', type: ExternalToolResponse })\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Updates an ExternalTool' })\n\tasync updateExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ExternalToolIdParams,\n\t\t@Body() externalToolParams: ExternalToolUpdateParams\n\t): Promise {\n\t\tconst externalTool: ExternalToolUpdate = this.externalToolDOMapper.mapUpdateRequest(externalToolParams);\n\t\tconst updated: ExternalTool = await this.externalToolUc.updateExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.externalToolId,\n\t\t\texternalTool\n\t\t);\n\t\tconst mapped: ExternalToolResponse = ExternalToolResponseMapper.mapToExternalToolResponse(updated);\n\t\tthis.logger.debug(`ExternalTool with id ${mapped.id} was updated by user with id ${currentUser.userId}`);\n\n\t\treturn mapped;\n\t}\n\n\t@Delete(':externalToolId')\n\t@ApiForbiddenResponse({ description: 'User is not allowed to access this resource.' })\n\t@ApiUnauthorizedResponse({ description: 'User is not logged in.' })\n\t@ApiOperation({ summary: 'Deletes an ExternalTool' })\n\t@HttpCode(HttpStatus.NO_CONTENT)\n\tasync deleteExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ExternalToolIdParams\n\t): Promise {\n\t\tconst promise: Promise = this.externalToolUc.deleteExternalTool(currentUser.userId, params.externalToolId);\n\t\tthis.logger.debug(\n\t\t\t`ExternalTool with id ${params.externalToolId} was deleted by user with id ${currentUser.userId}`\n\t\t);\n\n\t\treturn promise;\n\t}\n\n\t@Get('/:contextType/:contextId/references')\n\t@ApiOperation({ summary: 'Get ExternalTool References for a given context' })\n\t@ApiOkResponse({\n\t\tdescription: 'The Tool References has been successfully fetched.',\n\t\ttype: ToolReferenceListResponse,\n\t})\n\t@ApiForbiddenResponse({ description: 'User is not allowed to access this resource.' })\n\t@ApiUnauthorizedResponse({ description: 'User is not logged in.' })\n\tasync getToolReferences(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ContextExternalToolContextParams\n\t): Promise {\n\t\tconst toolReferences: ToolReference[] = await this.toolReferenceUc.getToolReferences(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextType,\n\t\t\tparams.contextId,\n\t\t\t'/v3/tools/external-tools/{id}/logo'\n\t\t);\n\n\t\tconst toolReferenceResponses: ToolReferenceResponse[] =\n\t\t\tExternalToolResponseMapper.mapToToolReferenceResponses(toolReferences);\n\t\tconst toolReferenceListResponse = new ToolReferenceListResponse(toolReferenceResponses);\n\n\t\treturn toolReferenceListResponse;\n\t}\n\n\t@Get('/:externalToolId/logo')\n\t@ApiOperation({ summary: 'Gets the logo of an external tool.' })\n\t@ApiOkResponse({\n\t\tdescription: 'Logo of external tool fetched successfully.',\n\t})\n\t@ApiUnauthorizedResponse({ description: 'User is not logged in.' })\n\tasync getExternalToolLogo(@Param() params: ExternalToolIdParams, @Res() res: Response): Promise {\n\t\tconst externalToolLogo: ExternalToolLogo = await this.externalToolLogoService.getExternalToolBinaryLogo(\n\t\t\tparams.externalToolId\n\t\t);\n\t\tres.setHeader('Content-Type', externalToolLogo.contentType);\n\t\tres.setHeader('Cache-Control', 'must-revalidate');\n\t\tres.send(externalToolLogo.logo);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolLaunchController.html":{"url":"controllers/ToolLaunchController.html","title":"controller - ToolLaunchController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolLaunchController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/controller/tool-launch.controller.ts\n \n\n \n Prefix\n \n \n tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolLaunchRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolLaunchRequest\n \n \n \n \n \n \n \n getToolLaunchRequest(currentUser: ICurrentUser, params: ToolLaunchParams)\n \n \n\n \n \n Decorators : \n \n @Get('context/:contextExternalToolId/launch')@ApiOperation({summary: 'Get tool launch request for a context external tool id'})@ApiOkResponse({description: 'Tool launch request', type: ToolLaunchRequestResponse})@ApiUnauthorizedResponse({description: 'Unauthorized'})@ApiForbiddenResponse({description: 'Forbidden'})@ApiBadRequestResponse({description: 'Outdated tools cannot be launched'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/tool-launch.controller.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n ToolLaunchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Param } from '@nestjs/common';\nimport {\n\tApiBadRequestResponse,\n\tApiForbiddenResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n} from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ToolLaunchUc } from '../uc';\nimport { ToolLaunchParams, ToolLaunchRequestResponse } from './dto';\nimport { ToolLaunchMapper } from '../mapper';\nimport { ToolLaunchRequest } from '../types';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools')\nexport class ToolLaunchController {\n\tconstructor(private readonly toolLaunchUc: ToolLaunchUc) {}\n\n\t@Get('context/:contextExternalToolId/launch')\n\t@ApiOperation({ summary: 'Get tool launch request for a context external tool id' })\n\t@ApiOkResponse({ description: 'Tool launch request', type: ToolLaunchRequestResponse })\n\t@ApiUnauthorizedResponse({ description: 'Unauthorized' })\n\t@ApiForbiddenResponse({ description: 'Forbidden' })\n\t@ApiBadRequestResponse({ description: 'Outdated tools cannot be launched' })\n\tasync getToolLaunchRequest(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: ToolLaunchParams\n\t): Promise {\n\t\tconst toolLaunchRequest: ToolLaunchRequest = await this.toolLaunchUc.getToolLaunchRequest(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.contextExternalToolId\n\t\t);\n\n\t\tconst response: ToolLaunchRequestResponse = ToolLaunchMapper.mapToToolLaunchRequestResponse(toolLaunchRequest);\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchData.html":{"url":"classes/ToolLaunchData.html","title":"class - ToolLaunchData","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchData\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n baseUrl\n \n \n openNewTab\n \n \n properties\n \n \n type\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ToolLaunchData)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ToolLaunchData\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n baseUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n properties\n \n \n \n \n \n \n Type : PropertyData[]\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n type\n \n \n \n \n \n \n Type : ToolLaunchDataType\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-data.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PropertyData } from './property-data';\nimport { ToolLaunchDataType } from './tool-launch-data-type';\n\nexport class ToolLaunchData {\n\tbaseUrl: string;\n\n\ttype: ToolLaunchDataType;\n\n\tproperties: PropertyData[];\n\n\topenNewTab: boolean;\n\n\tconstructor(props: ToolLaunchData) {\n\t\tthis.baseUrl = props.baseUrl;\n\t\tthis.type = props.type;\n\t\tthis.properties = props.properties;\n\t\tthis.openNewTab = props.openNewTab;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchMapper.html":{"url":"classes/ToolLaunchMapper.html","title":"class - ToolLaunchMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToParameterLocation\n \n \n Static\n mapToToolConfigType\n \n \n Static\n mapToToolLaunchDataType\n \n \n Static\n mapToToolLaunchRequestResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToParameterLocation\n \n \n \n \n \n \n \n mapToParameterLocation(location: CustomParameterLocation)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts:24\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n location\n \n CustomParameterLocation\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PropertyLocation\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToToolConfigType\n \n \n \n \n \n \n \n mapToToolConfigType(launchDataType: ToolLaunchDataType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n launchDataType\n \n ToolLaunchDataType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolConfigType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToToolLaunchDataType\n \n \n \n \n \n \n \n mapToToolLaunchDataType(configType: ToolConfigType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n configType\n \n ToolConfigType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchDataType\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToToolLaunchRequestResponse\n \n \n \n \n \n \n \n mapToToolLaunchRequestResponse(toolLaunchRequest: ToolLaunchRequest)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/mapper/tool-launch.mapper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchRequest\n \n ToolLaunchRequest\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequestResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { PropertyLocation, ToolLaunchDataType, ToolLaunchRequest } from '../types';\nimport { ToolLaunchRequestResponse } from '../controller/dto';\nimport { CustomParameterLocation, ToolConfigType } from '../../common/enum';\n\nconst customToParameterLocationMapping: Record = {\n\t[CustomParameterLocation.PATH]: PropertyLocation.PATH,\n\t[CustomParameterLocation.BODY]: PropertyLocation.BODY,\n\t[CustomParameterLocation.QUERY]: PropertyLocation.QUERY,\n};\n\nconst toolConfigTypeToToolLaunchDataTypeMapping: Record = {\n\t[ToolConfigType.BASIC]: ToolLaunchDataType.BASIC,\n\t[ToolConfigType.LTI11]: ToolLaunchDataType.LTI11,\n\t[ToolConfigType.OAUTH2]: ToolLaunchDataType.OAUTH2,\n};\n\nconst toolLaunchDataTypeToToolConfigTypeMapping: Record = Object.entries(\n\ttoolConfigTypeToToolLaunchDataTypeMapping\n).reduce((acc: Record, [key, value]) => {\n\treturn { ...acc, [value]: key as ToolConfigType };\n}, {} as Record);\n\nexport class ToolLaunchMapper {\n\tstatic mapToParameterLocation(location: CustomParameterLocation): PropertyLocation {\n\t\tconst mappedLocation = customToParameterLocationMapping[location];\n\t\treturn mappedLocation;\n\t}\n\n\tstatic mapToToolLaunchDataType(configType: ToolConfigType): ToolLaunchDataType {\n\t\tconst mappedType = toolConfigTypeToToolLaunchDataTypeMapping[configType];\n\t\treturn mappedType;\n\t}\n\n\tstatic mapToToolConfigType(launchDataType: ToolLaunchDataType): ToolConfigType {\n\t\tconst mappedType = toolLaunchDataTypeToToolConfigTypeMapping[launchDataType];\n\t\treturn mappedType;\n\t}\n\n\tstatic mapToToolLaunchRequestResponse(toolLaunchRequest: ToolLaunchRequest): ToolLaunchRequestResponse {\n\t\tconst { method, url, payload, openNewTab } = toolLaunchRequest;\n\n\t\tconst response = new ToolLaunchRequestResponse({\n\t\t\tmethod,\n\t\t\turl,\n\t\t\tpayload,\n\t\t\topenNewTab,\n\t\t});\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ToolLaunchModule.html":{"url":"modules/ToolLaunchModule.html","title":"module - ToolLaunchModule","body":"\n \n\n\n\n\n Modules\n ToolLaunchModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ToolLaunchModule\n\n\n\ncluster_ToolLaunchModule_providers\n\n\n\ncluster_ToolLaunchModule_exports\n\n\n\ncluster_ToolLaunchModule_imports\n\n\n\n\nCommonToolModule\n\nCommonToolModule\n\n\n\nToolLaunchModule\n\nToolLaunchModule\n\nToolLaunchModule -->\n\nCommonToolModule->ToolLaunchModule\n\n\n\n\n\nContextExternalToolModule\n\nContextExternalToolModule\n\nToolLaunchModule -->\n\nContextExternalToolModule->ToolLaunchModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nToolLaunchModule -->\n\nExternalToolModule->ToolLaunchModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nToolLaunchModule -->\n\nLearnroomModule->ToolLaunchModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nToolLaunchModule -->\n\nLegacySchoolModule->ToolLaunchModule\n\n\n\n\n\nPseudonymModule\n\nPseudonymModule\n\nToolLaunchModule -->\n\nPseudonymModule->ToolLaunchModule\n\n\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nToolLaunchModule -->\n\nSchoolExternalToolModule->ToolLaunchModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nToolLaunchModule -->\n\nUserModule->ToolLaunchModule\n\n\n\n\n\nToolLaunchService \n\nToolLaunchService \n\nToolLaunchService -->\n\nToolLaunchModule->ToolLaunchService \n\n\n\n\n\nBasicToolLaunchStrategy\n\nBasicToolLaunchStrategy\n\nToolLaunchModule -->\n\nBasicToolLaunchStrategy->ToolLaunchModule\n\n\n\n\n\nLti11EncryptionService\n\nLti11EncryptionService\n\nToolLaunchModule -->\n\nLti11EncryptionService->ToolLaunchModule\n\n\n\n\n\nLti11ToolLaunchStrategy\n\nLti11ToolLaunchStrategy\n\nToolLaunchModule -->\n\nLti11ToolLaunchStrategy->ToolLaunchModule\n\n\n\n\n\nOAuth2ToolLaunchStrategy\n\nOAuth2ToolLaunchStrategy\n\nToolLaunchModule -->\n\nOAuth2ToolLaunchStrategy->ToolLaunchModule\n\n\n\n\n\nToolLaunchService\n\nToolLaunchService\n\nToolLaunchModule -->\n\nToolLaunchService->ToolLaunchModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/tool-launch/tool-launch.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BasicToolLaunchStrategy\n \n \n Lti11EncryptionService\n \n \n Lti11ToolLaunchStrategy\n \n \n OAuth2ToolLaunchStrategy\n \n \n ToolLaunchService\n \n \n \n \n Imports\n \n \n CommonToolModule\n \n \n ContextExternalToolModule\n \n \n ExternalToolModule\n \n \n LearnroomModule\n \n \n LegacySchoolModule\n \n \n PseudonymModule\n \n \n SchoolExternalToolModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n ToolLaunchService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LearnroomModule } from '@src/modules/learnroom';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { PseudonymModule } from '@src/modules/pseudonym';\nimport { UserModule } from '@src/modules/user';\nimport { CommonToolModule } from '../common';\nimport { ContextExternalToolModule } from '../context-external-tool';\nimport { ExternalToolModule } from '../external-tool';\nimport { SchoolExternalToolModule } from '../school-external-tool';\nimport { Lti11EncryptionService, ToolLaunchService } from './service';\nimport { BasicToolLaunchStrategy, Lti11ToolLaunchStrategy, OAuth2ToolLaunchStrategy } from './service/strategy';\n\n@Module({\n\timports: [\n\t\tCommonToolModule,\n\t\tExternalToolModule,\n\t\tSchoolExternalToolModule,\n\t\tContextExternalToolModule,\n\t\tLegacySchoolModule,\n\t\tUserModule,\n\t\tPseudonymModule,\n\t\tLearnroomModule,\n\t],\n\tproviders: [\n\t\tToolLaunchService,\n\t\tBasicToolLaunchStrategy,\n\t\tLti11ToolLaunchStrategy,\n\t\tOAuth2ToolLaunchStrategy,\n\t\tLti11EncryptionService,\n\t],\n\texports: [ToolLaunchService],\n})\nexport class ToolLaunchModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchParams.html":{"url":"classes/ToolLaunchParams.html","title":"class - ToolLaunchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n contextExternalToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The id of the context external tool', nullable: false, required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class ToolLaunchParams {\n\t@IsMongoId()\n\t@ApiProperty({ description: 'The id of the context external tool', nullable: false, required: true })\n\tcontextExternalToolId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchRequest.html":{"url":"classes/ToolLaunchRequest.html","title":"class - ToolLaunchRequest","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchRequest\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n method\n \n \n openNewTab\n \n \n Optional\n payload\n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ToolLaunchRequest)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ToolLaunchRequest\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n method\n \n \n \n \n \n \n Type : LaunchRequestMethod\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n payload\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/types/tool-launch-request.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LaunchRequestMethod } from './launch-request-method';\n\nexport class ToolLaunchRequest {\n\tmethod: LaunchRequestMethod;\n\n\turl: string;\n\n\tpayload?: string;\n\n\topenNewTab: boolean;\n\n\tconstructor(props: ToolLaunchRequest) {\n\t\tthis.url = props.url;\n\t\tthis.method = props.method;\n\t\tthis.payload = props.payload;\n\t\tthis.openNewTab = props.openNewTab;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolLaunchRequestResponse.html":{"url":"classes/ToolLaunchRequestResponse.html","title":"class - ToolLaunchRequestResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolLaunchRequestResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n method\n \n \n \n Optional\n openNewTab\n \n \n \n Optional\n payload\n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: ToolLaunchRequestResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:30\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n ToolLaunchRequestResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n method\n \n \n \n \n \n \n Type : LaunchRequestMethod\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The Launch Request method (GET or POST)', enum: LaunchRequestMethod, example: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n openNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Specifies whether the Tool should be launched in a new tab', example: true, required: false})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n payload\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The payload for the Tool Launch Request (optional)', example: '{ \"key\": \"value\" }', required: false})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The URL for the Tool Launch Request', example: 'https://example.com/tool-launch'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/controller/dto/tool-launch-request.response.ts:16\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { LaunchRequestMethod } from '../../types';\n\nexport class ToolLaunchRequestResponse {\n\t@ApiProperty({\n\t\tdescription: 'The Launch Request method (GET or POST)',\n\t\tenum: LaunchRequestMethod,\n\t\texample: LaunchRequestMethod.GET,\n\t})\n\tmethod!: LaunchRequestMethod;\n\n\t@ApiProperty({\n\t\tdescription: 'The URL for the Tool Launch Request',\n\t\texample: 'https://example.com/tool-launch',\n\t})\n\turl!: string;\n\n\t@ApiProperty({\n\t\tdescription: 'The payload for the Tool Launch Request (optional)',\n\t\texample: '{ \"key\": \"value\" }',\n\t\trequired: false,\n\t})\n\tpayload?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Specifies whether the Tool should be launched in a new tab',\n\t\texample: true,\n\t\trequired: false,\n\t})\n\topenNewTab?: boolean;\n\n\tconstructor(props: ToolLaunchRequestResponse) {\n\t\tthis.url = props.url;\n\t\tthis.method = props.method;\n\t\tthis.payload = props.payload;\n\t\tthis.openNewTab = props.openNewTab;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToolLaunchService.html":{"url":"injectables/ToolLaunchService.html","title":"injectable - ToolLaunchService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolLaunchService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n strategies\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n generateLaunchRequest\n \n \n Async\n getLaunchData\n \n \n Private\n isToolStatusLatestOrThrow\n \n \n Private\n Async\n loadToolHierarchy\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolExternalToolService: SchoolExternalToolService, externalToolService: ExternalToolService, basicToolLaunchStrategy: BasicToolLaunchStrategy, lti11ToolLaunchStrategy: Lti11ToolLaunchStrategy, oauth2ToolLaunchStrategy: OAuth2ToolLaunchStrategy, commonToolService: CommonToolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:22\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n basicToolLaunchStrategy\n \n \n BasicToolLaunchStrategy\n \n \n \n No\n \n \n \n \n lti11ToolLaunchStrategy\n \n \n Lti11ToolLaunchStrategy\n \n \n \n No\n \n \n \n \n oauth2ToolLaunchStrategy\n \n \n OAuth2ToolLaunchStrategy\n \n \n \n No\n \n \n \n \n commonToolService\n \n \n CommonToolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n generateLaunchRequest\n \n \n \n \n \n \ngenerateLaunchRequest(toolLaunchData: ToolLaunchData)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchData\n \n ToolLaunchData\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolLaunchRequest\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getLaunchData\n \n \n \n \n \n \n \n getLaunchData(userId: EntityId, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n isToolStatusLatestOrThrow\n \n \n \n \n \n \n \n isToolStatusLatestOrThrow(userId: EntityId, externalTool: ExternalTool, schoolExternalTool: SchoolExternalTool, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:88\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n loadToolHierarchy\n \n \n \n \n \n \n \n loadToolHierarchy(schoolExternalToolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:73\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalToolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n strategies\n \n \n \n \n \n \n Type : Map\n\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/service/tool-launch.service.ts:22\n \n \n\n\n \n \n\n\n \n\n\n \n import { Injectable, InternalServerErrorException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { CommonToolService } from '../../common/service';\nimport { ToolLaunchMapper } from '../mapper';\nimport { ToolLaunchData, ToolLaunchRequest } from '../types';\nimport {\n\tBasicToolLaunchStrategy,\n\tIToolLaunchStrategy,\n\tLti11ToolLaunchStrategy,\n\tOAuth2ToolLaunchStrategy,\n} from './strategy';\nimport { ToolStatusOutdatedLoggableException } from '../error';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ExternalToolService } from '../../external-tool/service';\nimport { ToolConfigType, ToolConfigurationStatus } from '../../common/enum';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ExternalTool } from '../../external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\n\n@Injectable()\nexport class ToolLaunchService {\n\tprivate strategies: Map;\n\n\tconstructor(\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly basicToolLaunchStrategy: BasicToolLaunchStrategy,\n\t\tprivate readonly lti11ToolLaunchStrategy: Lti11ToolLaunchStrategy,\n\t\tprivate readonly oauth2ToolLaunchStrategy: OAuth2ToolLaunchStrategy,\n\t\tprivate readonly commonToolService: CommonToolService\n\t) {\n\t\tthis.strategies = new Map();\n\t\tthis.strategies.set(ToolConfigType.BASIC, basicToolLaunchStrategy);\n\t\tthis.strategies.set(ToolConfigType.LTI11, lti11ToolLaunchStrategy);\n\t\tthis.strategies.set(ToolConfigType.OAUTH2, oauth2ToolLaunchStrategy);\n\t}\n\n\tgenerateLaunchRequest(toolLaunchData: ToolLaunchData): ToolLaunchRequest {\n\t\tconst toolConfigType: ToolConfigType = ToolLaunchMapper.mapToToolConfigType(toolLaunchData.type);\n\t\tconst strategy: IToolLaunchStrategy | undefined = this.strategies.get(toolConfigType);\n\n\t\tif (!strategy) {\n\t\t\tthrow new InternalServerErrorException('Unknown tool launch data type');\n\t\t}\n\n\t\tconst launchRequest: ToolLaunchRequest = strategy.createLaunchRequest(toolLaunchData);\n\n\t\treturn launchRequest;\n\t}\n\n\tasync getLaunchData(userId: EntityId, contextExternalTool: ContextExternalTool): Promise {\n\t\tconst schoolExternalToolId: EntityId = contextExternalTool.schoolToolRef.schoolToolId;\n\n\t\tconst { externalTool, schoolExternalTool } = await this.loadToolHierarchy(schoolExternalToolId);\n\n\t\tthis.isToolStatusLatestOrThrow(userId, externalTool, schoolExternalTool, contextExternalTool);\n\n\t\tconst strategy: IToolLaunchStrategy | undefined = this.strategies.get(externalTool.config.type);\n\n\t\tif (!strategy) {\n\t\t\tthrow new InternalServerErrorException('Unknown tool config type');\n\t\t}\n\n\t\tconst launchData: ToolLaunchData = await strategy.createLaunchData(userId, {\n\t\t\texternalTool,\n\t\t\tschoolExternalTool,\n\t\t\tcontextExternalTool,\n\t\t});\n\n\t\treturn launchData;\n\t}\n\n\tprivate async loadToolHierarchy(\n\t\tschoolExternalToolId: string\n\t): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolService.getSchoolExternalToolById(\n\t\t\tschoolExternalToolId\n\t\t);\n\n\t\tconst externalTool: ExternalTool = await this.externalToolService.findExternalToolById(schoolExternalTool.toolId);\n\n\t\treturn {\n\t\t\tschoolExternalTool,\n\t\t\texternalTool,\n\t\t};\n\t}\n\n\tprivate isToolStatusLatestOrThrow(\n\t\tuserId: EntityId,\n\t\texternalTool: ExternalTool,\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontextExternalTool: ContextExternalTool\n\t): void {\n\t\tconst status: ToolConfigurationStatus = this.commonToolService.determineToolConfigurationStatus(\n\t\t\texternalTool,\n\t\t\tschoolExternalTool,\n\t\t\tcontextExternalTool\n\t\t);\n\t\tif (status !== ToolConfigurationStatus.LATEST) {\n\t\t\tthrow new ToolStatusOutdatedLoggableException(userId, contextExternalTool.id ?? '');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToolLaunchUc.html":{"url":"injectables/ToolLaunchUc.html","title":"injectable - ToolLaunchUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolLaunchUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/uc/tool-launch.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getToolLaunchRequest\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolLaunchService: ToolLaunchService, contextExternalToolService: ContextExternalToolService, toolPermissionHelper: ToolPermissionHelper)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/uc/tool-launch.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolLaunchService\n \n \n ToolLaunchService\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getToolLaunchRequest\n \n \n \n \n \n \n \n getToolLaunchRequest(userId: EntityId, contextExternalToolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/uc/tool-launch.uc.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalToolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { AuthorizationContext, AuthorizationContextBuilder } from '@src/modules/authorization';\nimport { ToolLaunchService } from '../service';\nimport { ToolLaunchData, ToolLaunchRequest } from '../types';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class ToolLaunchUc {\n\tconstructor(\n\t\tprivate readonly toolLaunchService: ToolLaunchService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper\n\t) {}\n\n\tasync getToolLaunchRequest(userId: EntityId, contextExternalToolId: EntityId): Promise {\n\t\tconst contextExternalTool: ContextExternalTool = await this.contextExternalToolService.getContextExternalToolById(\n\t\t\tcontextExternalToolId\n\t\t);\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_USER]);\n\n\t\tawait this.toolPermissionHelper.ensureContextPermissions(userId, contextExternalTool, context);\n\n\t\tconst toolLaunchData: ToolLaunchData = await this.toolLaunchService.getLaunchData(userId, contextExternalTool);\n\t\tconst launchRequest: ToolLaunchRequest = this.toolLaunchService.generateLaunchRequest(toolLaunchData);\n\n\t\treturn launchRequest;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ToolModule.html":{"url":"modules/ToolModule.html","title":"module - ToolModule","body":"\n \n\n\n\n\n Modules\n ToolModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_ToolModule\n\n\n\ncluster_ToolModule_providers\n\n\n\ncluster_ToolModule_exports\n\n\n\ncluster_ToolModule_imports\n\n\n\n\nContextExternalToolModule\n\nContextExternalToolModule\n\n\n\nToolModule\n\nToolModule\n\nToolModule -->\n\nContextExternalToolModule->ToolModule\n\n\n\n\n\nExternalToolModule\n\nExternalToolModule\n\nToolModule -->\n\nExternalToolModule->ToolModule\n\n\n\n\n\nSchoolExternalToolModule\n\nSchoolExternalToolModule\n\nToolModule -->\n\nSchoolExternalToolModule->ToolModule\n\n\n\n\n\nToolConfigModule\n\nToolConfigModule\n\nToolModule -->\n\nToolConfigModule->ToolModule\n\n\n\n\n\nToolLaunchModule\n\nToolLaunchModule\n\nToolModule -->\n\nToolLaunchModule->ToolModule\n\n\n\n\n\nCommonToolService \n\nCommonToolService \n\nCommonToolService -->\n\nToolModule->CommonToolService \n\n\n\n\n\nContextExternalToolModule \n\nContextExternalToolModule \n\nContextExternalToolModule -->\n\nToolModule->ContextExternalToolModule \n\n\n\n\n\nExternalToolModule \n\nExternalToolModule \n\nExternalToolModule -->\n\nToolModule->ExternalToolModule \n\n\n\n\n\nSchoolExternalToolModule \n\nSchoolExternalToolModule \n\nSchoolExternalToolModule -->\n\nToolModule->SchoolExternalToolModule \n\n\n\n\n\nToolLaunchModule \n\nToolLaunchModule \n\nToolLaunchModule -->\n\nToolModule->ToolLaunchModule \n\n\n\n\n\nCommonToolService\n\nCommonToolService\n\nToolModule -->\n\nCommonToolService->ToolModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/tool/tool.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CommonToolService\n \n \n \n \n Imports\n \n \n ContextExternalToolModule\n \n \n ExternalToolModule\n \n \n SchoolExternalToolModule\n \n \n ToolConfigModule\n \n \n ToolLaunchModule\n \n \n \n \n Exports\n \n \n CommonToolService\n \n \n ContextExternalToolModule\n \n \n ExternalToolModule\n \n \n SchoolExternalToolModule\n \n \n ToolLaunchModule\n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Module } from '@nestjs/common';\nimport { ContextExternalToolModule } from './context-external-tool';\nimport { SchoolExternalToolModule } from './school-external-tool';\nimport { ExternalToolModule } from './external-tool';\nimport { CommonToolModule } from './common';\nimport { ToolLaunchModule } from './tool-launch';\nimport { CommonToolService } from './common/service';\nimport { ToolConfigModule } from './tool-config.module';\n\n@Module({\n\timports: [\n\t\tToolConfigModule,\n\t\tforwardRef(() => CommonToolModule),\n\t\tExternalToolModule,\n\t\tSchoolExternalToolModule,\n\t\tContextExternalToolModule,\n\t\tToolLaunchModule,\n\t],\n\tproviders: [CommonToolService],\n\texports: [\n\t\tExternalToolModule,\n\t\tSchoolExternalToolModule,\n\t\tContextExternalToolModule,\n\t\tToolLaunchModule,\n\t\t// TODO: remove this when reference loader is using service instead of repo\n\t\tCommonToolService,\n\t],\n})\nexport class ToolModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToolPermissionHelper.html":{"url":"injectables/ToolPermissionHelper.html","title":"injectable - ToolPermissionHelper","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolPermissionHelper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/uc/tool-permission-helper.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n Async\n ensureContextPermissions\n \n \n Public\n Async\n ensureSchoolPermissions\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationService: AuthorizationService, schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/tool/common/uc/tool-permission-helper.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n Async\n ensureContextPermissions\n \n \n \n \n \n \n \n ensureContextPermissions(userId: EntityId, contextExternalTool: ContextExternalTool, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/uc/tool-permission-helper.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n Async\n ensureSchoolPermissions\n \n \n \n \n \n \n \n ensureSchoolPermissions(userId: EntityId, schoolExternalTool: SchoolExternalTool, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/uc/tool-permission-helper.ts:39\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { forwardRef, Inject, Injectable } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, User } from '@shared/domain';\nimport { AuthorizableReferenceType, AuthorizationContext, AuthorizationService } from '@src/modules/authorization';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { ContextTypeMapper } from '../mapper';\n\n@Injectable()\nexport class ToolPermissionHelper {\n\tconstructor(\n\t\t@Inject(forwardRef(() => AuthorizationService)) private authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService\n\t) {}\n\n\t// TODO build interface to get contextDO by contextType\n\tpublic async ensureContextPermissions(\n\t\tuserId: EntityId,\n\t\tcontextExternalTool: ContextExternalTool,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tif (contextExternalTool.id) {\n\t\t\tawait this.authorizationService.checkPermissionByReferences(\n\t\t\t\tuserId,\n\t\t\t\tAuthorizableReferenceType.ContextExternalToolEntity,\n\t\t\t\tcontextExternalTool.id,\n\t\t\t\tcontext\n\t\t\t);\n\t\t}\n\n\t\tawait this.authorizationService.checkPermissionByReferences(\n\t\t\tuserId,\n\t\t\tContextTypeMapper.mapContextTypeToAllowedAuthorizationEntityType(contextExternalTool.contextRef.type),\n\t\t\tcontextExternalTool.contextRef.id,\n\t\t\tcontext\n\t\t);\n\t}\n\n\tpublic async ensureSchoolPermissions(\n\t\tuserId: EntityId,\n\t\tschoolExternalTool: SchoolExternalTool,\n\t\tcontext: AuthorizationContext\n\t): Promise {\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tconst school: LegacySchoolDo = await this.schoolService.getSchoolById(schoolExternalTool.schoolId);\n\t\tthis.authorizationService.checkPermission(user, school, context);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolReference.html":{"url":"classes/ToolReference.html","title":"class - ToolReference","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolReference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/domain/tool-reference.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n contextToolId\n \n \n displayName\n \n \n Optional\n logoUrl\n \n \n openInNewTab\n \n \n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolReference: ToolReference)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolReference\n \n \n ToolReference\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n contextToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:4\n \n \n\n\n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n openInNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ToolConfigurationStatus\n\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/domain/tool-reference.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ToolConfigurationStatus } from '../../common/enum';\n\nexport class ToolReference {\n\tcontextToolId: string;\n\n\tlogoUrl?: string;\n\n\tdisplayName: string;\n\n\topenInNewTab: boolean;\n\n\tstatus: ToolConfigurationStatus;\n\n\tconstructor(toolReference: ToolReference) {\n\t\tthis.contextToolId = toolReference.contextToolId;\n\t\tthis.logoUrl = toolReference.logoUrl;\n\t\tthis.displayName = toolReference.displayName;\n\t\tthis.openInNewTab = toolReference.openInNewTab;\n\t\tthis.status = toolReference.status;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolReferenceListResponse.html":{"url":"classes/ToolReferenceListResponse.html","title":"class - ToolReferenceListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolReferenceListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference-list.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: ToolReferenceResponse[])\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference-list.response.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n ToolReferenceResponse[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : ToolReferenceResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference-list.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { ToolReferenceResponse } from './tool-reference.response';\n\nexport class ToolReferenceListResponse {\n\t@ApiProperty({ type: [ToolReferenceResponse] })\n\tdata: ToolReferenceResponse[];\n\n\tconstructor(data: ToolReferenceResponse[]) {\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolReferenceMapper.html":{"url":"classes/ToolReferenceMapper.html","title":"class - ToolReferenceMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolReferenceMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/mapper/tool-reference.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToToolReference\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToToolReference\n \n \n \n \n \n \n \n mapToToolReference(externalTool: ExternalTool, contextExternalTool: ContextExternalTool, status: ToolConfigurationStatus)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/mapper/tool-reference.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalTool\n \n ExternalTool\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n status\n \n ToolConfigurationStatus\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : ToolReference\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ExternalTool, ToolReference } from '../domain';\nimport { ContextExternalTool } from '../../context-external-tool/domain';\nimport { ToolConfigurationStatus } from '../../common/enum';\n\nexport class ToolReferenceMapper {\n\tstatic mapToToolReference(\n\t\texternalTool: ExternalTool,\n\t\tcontextExternalTool: ContextExternalTool,\n\t\tstatus: ToolConfigurationStatus\n\t): ToolReference {\n\t\tconst toolReference = new ToolReference({\n\t\t\tcontextToolId: contextExternalTool.id ?? '',\n\t\t\tlogoUrl: externalTool.logoUrl,\n\t\t\tdisplayName: contextExternalTool.displayName ?? externalTool.name,\n\t\t\tstatus,\n\t\t\topenInNewTab: externalTool.openNewTab,\n\t\t});\n\n\t\treturn toolReference;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolReferenceResponse.html":{"url":"classes/ToolReferenceResponse.html","title":"class - ToolReferenceResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolReferenceResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n contextToolId\n \n \n \n displayName\n \n \n \n Optional\n logoUrl\n \n \n \n openInNewTab\n \n \n \n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(toolReferenceResponse: ToolReferenceResponse)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:27\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n toolReferenceResponse\n \n \n ToolReferenceResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n contextToolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, description: 'The id of the tool in the context'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n \n displayName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, description: 'The display name of the tool'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:16\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n logoUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({nullable: false, required: false, description: 'The url of the logo which is stored in the db'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n \n openInNewTab\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, description: 'Whether the tool should be opened in a new tab'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n status\n \n \n \n \n \n \n Type : ToolConfigurationStatusResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: ToolConfigurationStatusResponse, nullable: false, required: true, description: 'The status of the tool'})\n \n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/controller/dto/response/tool-reference.response.ts:27\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { ToolConfigurationStatusResponse } from './tool-configuration-status.response';\n\nexport class ToolReferenceResponse {\n\t@ApiProperty({ nullable: false, required: true, description: 'The id of the tool in the context' })\n\tcontextToolId: string;\n\n\t@ApiPropertyOptional({\n\t\tnullable: false,\n\t\trequired: false,\n\t\tdescription: 'The url of the logo which is stored in the db',\n\t})\n\tlogoUrl?: string;\n\n\t@ApiProperty({ nullable: false, required: true, description: 'The display name of the tool' })\n\tdisplayName: string;\n\n\t@ApiProperty({ nullable: false, required: true, description: 'Whether the tool should be opened in a new tab' })\n\topenInNewTab: boolean;\n\n\t@ApiProperty({\n\t\tenum: ToolConfigurationStatusResponse,\n\t\tnullable: false,\n\t\trequired: true,\n\t\tdescription: 'The status of the tool',\n\t})\n\tstatus: ToolConfigurationStatusResponse;\n\n\tconstructor(toolReferenceResponse: ToolReferenceResponse) {\n\t\tthis.contextToolId = toolReferenceResponse.contextToolId;\n\t\tthis.logoUrl = toolReferenceResponse.logoUrl;\n\t\tthis.displayName = toolReferenceResponse.displayName;\n\t\tthis.openInNewTab = toolReferenceResponse.openInNewTab;\n\t\tthis.status = toolReferenceResponse.status;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/ToolReferenceUc.html":{"url":"injectables/ToolReferenceUc.html","title":"injectable - ToolReferenceUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n ToolReferenceUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n buildToolReference\n \n \n Private\n Async\n ensureToolPermissions\n \n \n Private\n Async\n fetchExternalTool\n \n \n Private\n Async\n fetchSchoolExternalTool\n \n \n Async\n getToolReferences\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalToolService: ExternalToolService, schoolExternalToolService: SchoolExternalToolService, contextExternalToolService: ContextExternalToolService, toolPermissionHelper: ToolPermissionHelper, commonToolService: CommonToolService, externalToolLogoService: ExternalToolLogoService)\n \n \n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:16\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalToolService\n \n \n ExternalToolService\n \n \n \n No\n \n \n \n \n schoolExternalToolService\n \n \n SchoolExternalToolService\n \n \n \n No\n \n \n \n \n contextExternalToolService\n \n \n ContextExternalToolService\n \n \n \n No\n \n \n \n \n toolPermissionHelper\n \n \n ToolPermissionHelper\n \n \n \n No\n \n \n \n \n commonToolService\n \n \n CommonToolService\n \n \n \n No\n \n \n \n \n externalToolLogoService\n \n \n ExternalToolLogoService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n buildToolReference\n \n \n \n \n \n \n \n buildToolReference(userId: EntityId, contextExternalTool: ContextExternalTool, logoUrlTemplate: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:51\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n logoUrlTemplate\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n ensureToolPermissions\n \n \n \n \n \n \n \n ensureToolPermissions(userId: EntityId, contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:83\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n fetchExternalTool\n \n \n \n \n \n \n \n fetchExternalTool(schoolExternalTool: SchoolExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:99\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolExternalTool\n \n SchoolExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n fetchSchoolExternalTool\n \n \n \n \n \n \n \n fetchSchoolExternalTool(contextExternalTool: ContextExternalTool)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n contextExternalTool\n \n ContextExternalTool\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getToolReferences\n \n \n \n \n \n \n \n getToolReferences(userId: EntityId, contextType: ToolContextType, contextId: string, logoUrlTemplate: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/external-tool/uc/tool-reference.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n contextType\n \n ToolContextType\n \n\n \n No\n \n\n\n \n \n contextId\n \n string\n \n\n \n No\n \n\n\n \n \n logoUrlTemplate\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, Permission } from '@shared/domain';\nimport { AuthorizationContext, AuthorizationContextBuilder } from '@src/modules/authorization';\nimport { ExternalTool, ToolReference } from '../domain';\nimport { ToolConfigurationStatus, ToolContextType } from '../../common/enum';\nimport { CommonToolService } from '../../common/service';\nimport { ContextExternalTool, ContextRef } from '../../context-external-tool/domain';\nimport { ContextExternalToolService } from '../../context-external-tool/service';\nimport { SchoolExternalTool } from '../../school-external-tool/domain';\nimport { SchoolExternalToolService } from '../../school-external-tool/service';\nimport { ToolReferenceMapper } from '../mapper/tool-reference.mapper';\nimport { ExternalToolLogoService, ExternalToolService } from '../service';\nimport { ToolPermissionHelper } from '../../common/uc/tool-permission-helper';\n\n@Injectable()\nexport class ToolReferenceUc {\n\tconstructor(\n\t\tprivate readonly externalToolService: ExternalToolService,\n\t\tprivate readonly schoolExternalToolService: SchoolExternalToolService,\n\t\tprivate readonly contextExternalToolService: ContextExternalToolService,\n\t\tprivate readonly toolPermissionHelper: ToolPermissionHelper,\n\t\tprivate readonly commonToolService: CommonToolService,\n\t\tprivate readonly externalToolLogoService: ExternalToolLogoService\n\t) {}\n\n\tasync getToolReferences(\n\t\tuserId: EntityId,\n\t\tcontextType: ToolContextType,\n\t\tcontextId: string,\n\t\tlogoUrlTemplate: string\n\t): Promise {\n\t\tconst contextRef = new ContextRef({ type: contextType, id: contextId });\n\n\t\tconst contextExternalTools: ContextExternalTool[] = await this.contextExternalToolService.findAllByContext(\n\t\t\tcontextRef\n\t\t);\n\n\t\tconst toolReferencesPromises: Promise[] = contextExternalTools.map(\n\t\t\t(contextExternalTool: ContextExternalTool) =>\n\t\t\t\tthis.buildToolReference(userId, contextExternalTool, logoUrlTemplate)\n\t\t);\n\n\t\tconst toolReferencesWithNull: (ToolReference | null)[] = await Promise.all(toolReferencesPromises);\n\t\tconst filteredToolReferences: ToolReference[] = toolReferencesWithNull.filter(\n\t\t\t(toolReference: ToolReference | null): toolReference is ToolReference => toolReference !== null\n\t\t);\n\n\t\treturn filteredToolReferences;\n\t}\n\n\tprivate async buildToolReference(\n\t\tuserId: EntityId,\n\t\tcontextExternalTool: ContextExternalTool,\n\t\tlogoUrlTemplate: string\n\t): Promise {\n\t\ttry {\n\t\t\tawait this.ensureToolPermissions(userId, contextExternalTool);\n\t\t} catch (e: unknown) {\n\t\t\tif (e instanceof ForbiddenException) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.fetchSchoolExternalTool(contextExternalTool);\n\t\tconst externalTool: ExternalTool = await this.fetchExternalTool(schoolExternalTool);\n\n\t\tconst status: ToolConfigurationStatus = this.commonToolService.determineToolConfigurationStatus(\n\t\t\texternalTool,\n\t\t\tschoolExternalTool,\n\t\t\tcontextExternalTool\n\t\t);\n\n\t\tconst toolReference: ToolReference = ToolReferenceMapper.mapToToolReference(\n\t\t\texternalTool,\n\t\t\tcontextExternalTool,\n\t\t\tstatus\n\t\t);\n\t\ttoolReference.logoUrl = this.externalToolLogoService.buildLogoUrl(logoUrlTemplate, externalTool);\n\n\t\treturn toolReference;\n\t}\n\n\tprivate async ensureToolPermissions(userId: EntityId, contextExternalTool: ContextExternalTool): Promise {\n\t\tconst context: AuthorizationContext = AuthorizationContextBuilder.read([Permission.CONTEXT_TOOL_USER]);\n\n\t\tconst promise: Promise = this.toolPermissionHelper.ensureContextPermissions(\n\t\t\tuserId,\n\t\t\tcontextExternalTool,\n\t\t\tcontext\n\t\t);\n\n\t\treturn promise;\n\t}\n\n\tprivate async fetchSchoolExternalTool(contextExternalTool: ContextExternalTool): Promise {\n\t\treturn this.schoolExternalToolService.getSchoolExternalToolById(contextExternalTool.schoolToolRef.schoolToolId);\n\t}\n\n\tprivate async fetchExternalTool(schoolExternalTool: SchoolExternalTool): Promise {\n\t\treturn this.externalToolService.findExternalToolById(schoolExternalTool.toolId);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/ToolSchoolController.html":{"url":"controllers/ToolSchoolController.html","title":"controller - ToolSchoolController","body":"\n \n\n\n\n\n\n\n Controllers\n ToolSchoolController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts\n \n\n \n Prefix\n \n \n tools/school-external-tools\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSchoolExternalTool\n \n \n \n \n \n \n \n Async\n deleteSchoolExternalTool\n \n \n \n \n \n \n Async\n getSchoolExternalTool\n \n \n \n \n \n \n \n Async\n getSchoolExternalTools\n \n \n \n \n \n \n \n \n Async\n updateSchoolExternalTool\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createSchoolExternalTool\n \n \n \n \n \n \n \n createSchoolExternalTool(currentUser: ICurrentUser, body: SchoolExternalToolPostParams)\n \n \n\n \n \n Decorators : \n \n @Post()@ApiCreatedResponse({description: 'The SchoolExternalTool has been successfully created.', type: SchoolExternalToolResponse})@ApiForbiddenResponse()@ApiUnprocessableEntityResponse()@ApiUnauthorizedResponse()@ApiResponse({status: 400, type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Creates a SchoolExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:122\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n SchoolExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteSchoolExternalTool\n \n \n \n \n \n \n \n deleteSchoolExternalTool(currentUser: ICurrentUser, params: SchoolExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Delete(':schoolExternalToolId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOperation({summary: 'Deletes a SchoolExternalTool'})@HttpCode(HttpStatus.NO_CONTENT)\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:102\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolExternalTool\n \n \n \n \n \n \n \n getSchoolExternalTool(currentUser: ICurrentUser, params: SchoolExternalToolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get(':schoolExternalToolId')@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOperation({summary: 'Returns a SchoolExternalTool for the given id'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:62\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getSchoolExternalTools\n \n \n \n \n \n \n \n getSchoolExternalTools(currentUser: ICurrentUser, schoolExternalToolParams: SchoolExternalToolSearchParams)\n \n \n\n \n \n Decorators : \n \n @Get()@ApiFoundResponse({description: 'SchoolExternalTools has been found.', type: ExternalToolSearchListResponse})@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiOperation({summary: 'Returns a list of SchoolExternalTools for a given school'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n schoolExternalToolParams\n \n SchoolExternalToolSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n updateSchoolExternalTool\n \n \n \n \n \n \n \n updateSchoolExternalTool(currentUser: ICurrentUser, params: SchoolExternalToolIdParams, body: SchoolExternalToolPostParams)\n \n \n\n \n \n Decorators : \n \n @Put('/:schoolExternalToolId')@ApiOkResponse({description: 'The Tool has been successfully updated.', type: SchoolExternalToolResponse})@ApiForbiddenResponse()@ApiUnauthorizedResponse()@ApiBadRequestResponse({type: ValidationError, description: 'Request data has invalid format.'})@ApiOperation({summary: 'Updates a SchoolExternalTool'})\n \n \n\n \n \n Defined in apps/server/src/modules/tool/school-external-tool/controller/tool-school.controller.ts:80\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolExternalToolIdParams\n \n\n \n No\n \n\n\n \n \n body\n \n SchoolExternalToolPostParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tApiCreatedResponse,\n\tApiForbiddenResponse,\n\tApiFoundResponse,\n\tApiResponse,\n\tApiOkResponse,\n\tApiBadRequestResponse,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n\tApiOperation,\n} from '@nestjs/swagger';\nimport { Body, Controller, Delete, Get, Param, Post, Query, Put, HttpCode, HttpStatus } from '@nestjs/common';\nimport { ValidationError } from '@shared/common';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { LegacyLogger } from '@src/core/logger';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { SchoolExternalToolRequestMapper, SchoolExternalToolResponseMapper } from '../mapper';\nimport { ExternalToolSearchListResponse } from '../../external-tool/controller/dto';\nimport {\n\tSchoolExternalToolIdParams,\n\tSchoolExternalToolPostParams,\n\tSchoolExternalToolResponse,\n\tSchoolExternalToolSearchListResponse,\n\tSchoolExternalToolSearchParams,\n} from './dto';\nimport { SchoolExternalToolDto } from '../uc/dto/school-external-tool.types';\nimport { SchoolExternalToolUc } from '../uc';\nimport { SchoolExternalTool } from '../domain';\n\n@ApiTags('Tool')\n@Authenticate('jwt')\n@Controller('tools/school-external-tools')\nexport class ToolSchoolController {\n\tconstructor(\n\t\tprivate readonly schoolExternalToolUc: SchoolExternalToolUc,\n\t\tprivate readonly responseMapper: SchoolExternalToolResponseMapper,\n\t\tprivate readonly requestMapper: SchoolExternalToolRequestMapper,\n\t\tprivate readonly logger: LegacyLogger\n\t) {}\n\n\t@Get()\n\t@ApiFoundResponse({ description: 'SchoolExternalTools has been found.', type: ExternalToolSearchListResponse })\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOperation({ summary: 'Returns a list of SchoolExternalTools for a given school' })\n\tasync getSchoolExternalTools(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Query() schoolExternalToolParams: SchoolExternalToolSearchParams\n\t): Promise {\n\t\tconst found: SchoolExternalTool[] = await this.schoolExternalToolUc.findSchoolExternalTools(currentUser.userId, {\n\t\t\tschoolId: schoolExternalToolParams.schoolId,\n\t\t});\n\t\tconst response: SchoolExternalToolSearchListResponse = this.responseMapper.mapToSearchListResponse(found);\n\t\treturn response;\n\t}\n\n\t@Get(':schoolExternalToolId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOperation({ summary: 'Returns a SchoolExternalTool for the given id' })\n\tasync getSchoolExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolExternalToolIdParams\n\t): Promise {\n\t\tconst schoolExternalTool: SchoolExternalTool = await this.schoolExternalToolUc.getSchoolExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.schoolExternalToolId\n\t\t);\n\t\tconst mapped: SchoolExternalToolResponse = this.responseMapper.mapToSchoolExternalToolResponse(schoolExternalTool);\n\t\treturn mapped;\n\t}\n\n\t@Put('/:schoolExternalToolId')\n\t@ApiOkResponse({ description: 'The Tool has been successfully updated.', type: SchoolExternalToolResponse })\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiBadRequestResponse({ type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Updates a SchoolExternalTool' })\n\tasync updateSchoolExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolExternalToolIdParams,\n\t\t@Body() body: SchoolExternalToolPostParams\n\t): Promise {\n\t\tconst schoolExternalToolDto: SchoolExternalToolDto = this.requestMapper.mapSchoolExternalToolRequest(body);\n\t\tconst updated: SchoolExternalTool = await this.schoolExternalToolUc.updateSchoolExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tparams.schoolExternalToolId,\n\t\t\tschoolExternalToolDto\n\t\t);\n\n\t\tconst mapped: SchoolExternalToolResponse = this.responseMapper.mapToSchoolExternalToolResponse(updated);\n\t\tthis.logger.debug(`SchoolExternalTool with id ${mapped.id} was updated by user with id ${currentUser.userId}`);\n\t\treturn mapped;\n\t}\n\n\t@Delete(':schoolExternalToolId')\n\t@ApiForbiddenResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiOperation({ summary: 'Deletes a SchoolExternalTool' })\n\t@HttpCode(HttpStatus.NO_CONTENT)\n\tasync deleteSchoolExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() params: SchoolExternalToolIdParams\n\t): Promise {\n\t\tawait this.schoolExternalToolUc.deleteSchoolExternalTool(currentUser.userId, params.schoolExternalToolId);\n\t\tthis.logger.debug(\n\t\t\t`SchoolExternalTool with id ${params.schoolExternalToolId} was deleted by user with id ${currentUser.userId}`\n\t\t);\n\t}\n\n\t@Post()\n\t@ApiCreatedResponse({\n\t\tdescription: 'The SchoolExternalTool has been successfully created.',\n\t\ttype: SchoolExternalToolResponse,\n\t})\n\t@ApiForbiddenResponse()\n\t@ApiUnprocessableEntityResponse()\n\t@ApiUnauthorizedResponse()\n\t@ApiResponse({ status: 400, type: ValidationError, description: 'Request data has invalid format.' })\n\t@ApiOperation({ summary: 'Creates a SchoolExternalTool' })\n\tasync createSchoolExternalTool(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: SchoolExternalToolPostParams\n\t): Promise {\n\t\tconst schoolExternalToolDto: SchoolExternalToolDto = this.requestMapper.mapSchoolExternalToolRequest(body);\n\n\t\tconst createdSchoolExternalToolDO: SchoolExternalTool = await this.schoolExternalToolUc.createSchoolExternalTool(\n\t\t\tcurrentUser.userId,\n\t\t\tschoolExternalToolDto\n\t\t);\n\n\t\tconst response: SchoolExternalToolResponse =\n\t\t\tthis.responseMapper.mapToSchoolExternalToolResponse(createdSchoolExternalToolDO);\n\n\t\tthis.logger.debug(`SchoolExternalTool with id ${response.id} was created by user with id ${currentUser.userId}`);\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ToolStatusOutdatedLoggableException.html":{"url":"classes/ToolStatusOutdatedLoggableException.html","title":"class - ToolStatusOutdatedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ToolStatusOutdatedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/tool-launch/error/tool-status-outdated.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n BadRequestException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, toolId: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/tool-status-outdated.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n toolId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/tool-launch/error/tool-status-outdated.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BadRequestException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class ToolStatusOutdatedLoggableException extends BadRequestException implements Loggable {\n\tconstructor(private readonly userId: EntityId, private readonly toolId: EntityId) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'TOOL_STATUS_OUTDATED',\n\t\t\tmessage: 'The status of the tool is outdated and cannot be launched by the user.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\ttoolId: this.toolId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/ToolVersion.html":{"url":"interfaces/ToolVersion.html","title":"interface - ToolVersion","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n ToolVersion\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/tool/common/interface/tool-version.interface.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \n \n \n\n \n \n \n Methods\n \n \n \n \n \n \n \n getVersion\n \n \n \n \n \n \ngetVersion()\n \n \n\n\n \n \n Defined in apps/server/src/modules/tool/common/interface/tool-version.interface.ts:2\n \n \n\n\n \n \n\n \n Returns : number\n\n \n \n \n \n \n\n\n \n\n\n \n export interface ToolVersion {\n\tgetVersion(): number;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UnauthorizedLoggableException.html":{"url":"classes/UnauthorizedLoggableException.html","title":"class - UnauthorizedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UnauthorizedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/authentication/errors/unauthorized.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n UnauthorizedException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(username: string, systemId?: string)\n \n \n \n \n Defined in apps/server/src/modules/authentication/errors/unauthorized.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n username\n \n \n string\n \n \n \n No\n \n \n \n \n systemId\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/authentication/errors/unauthorized.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : ErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnauthorizedException } from '@nestjs/common';\nimport { Loggable } from '@src/core/logger/interfaces';\nimport { ErrorLogMessage } from '@src/core/logger/types';\n\nexport class UnauthorizedLoggableException extends UnauthorizedException implements Loggable {\n\tconstructor(private readonly username: string, private readonly systemId?: string) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): ErrorLogMessage {\n\t\tconst message: ErrorLogMessage = {\n\t\t\ttype: 'UNAUTHORIZED_EXCEPTION',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserName: this.username,\n\t\t\t\tsystemId: this.systemId,\n\t\t\t},\n\t\t};\n\n\t\treturn message;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateElementContentBodyParams.html":{"url":"classes/UpdateElementContentBodyParams.html","title":"class - UpdateElementContentBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateElementContentBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n data\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody\n\n \n \n \n \n Decorators : \n \n \n @ValidateNested()@Type(undefined, {discriminator: undefined, keepDiscriminatorProperty: true})@ApiProperty({oneOf: undefined})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/element/update-element-content.body.params.ts:87\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, getSchemaPath } from '@nestjs/swagger';\nimport { ContentElementType, InputFormat } from '@shared/domain';\nimport { Type } from 'class-transformer';\nimport { IsDate, IsEnum, IsString, ValidateNested } from 'class-validator';\n\nexport abstract class ElementContentBody {\n\t@ApiProperty({\n\t\tenum: ContentElementType,\n\t\tdescription: 'the type of the updated element',\n\t\tenumName: 'ContentElementType',\n\t})\n\t@IsEnum(ContentElementType)\n\ttype!: ContentElementType;\n}\n\nexport class FileContentBody {\n\t@IsString()\n\t@ApiProperty({})\n\tcaption!: string;\n}\n\nexport class FileElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.FILE })\n\ttype!: ContentElementType.FILE;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: FileContentBody;\n}\n\nexport class RichTextContentBody {\n\t@IsString()\n\t@ApiProperty()\n\ttext!: string;\n\n\t@IsEnum(InputFormat)\n\t@ApiProperty()\n\tinputFormat!: InputFormat;\n}\n\nexport class RichTextElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.RICH_TEXT })\n\ttype!: ContentElementType.RICH_TEXT;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: RichTextContentBody;\n}\n\nexport class SubmissionContainerContentBody {\n\t@IsDate()\n\t@ApiProperty()\n\tdueDate!: Date;\n}\n\nexport class SubmissionContainerElementContentBody extends ElementContentBody {\n\t@ApiProperty({ type: ContentElementType.SUBMISSION_CONTAINER })\n\ttype!: ContentElementType.SUBMISSION_CONTAINER;\n\n\t@ValidateNested()\n\t@ApiProperty()\n\tcontent!: SubmissionContainerContentBody;\n}\n\nexport type AnyElementContentBody = RichTextElementContentBody | FileContentBody;\n\nexport class UpdateElementContentBodyParams {\n\t@ValidateNested()\n\t@Type(() => ElementContentBody, {\n\t\tdiscriminator: {\n\t\t\tproperty: 'type',\n\t\t\tsubTypes: [\n\t\t\t\t{ value: FileElementContentBody, name: ContentElementType.FILE },\n\t\t\t\t{ value: RichTextElementContentBody, name: ContentElementType.RICH_TEXT },\n\t\t\t\t{ value: SubmissionContainerElementContentBody, name: ContentElementType.SUBMISSION_CONTAINER },\n\t\t\t],\n\t\t},\n\t\tkeepDiscriminatorProperty: true,\n\t})\n\t@ApiProperty({\n\t\toneOf: [\n\t\t\t{ $ref: getSchemaPath(FileElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(RichTextElementContentBody) },\n\t\t\t{ $ref: getSchemaPath(SubmissionContainerElementContentBody) },\n\t\t],\n\t})\n\tdata!: FileElementContentBody | RichTextElementContentBody | SubmissionContainerElementContentBody;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateFlagParams.html":{"url":"classes/UpdateFlagParams.html","title":"class - UpdateFlagParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateFlagParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/update-flag.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n flagged\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n flagged\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'updates flag for an import user'})@IsBoolean()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/update-flag.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class UpdateFlagParams {\n\t@ApiProperty({ description: 'updates flag for an import user' })\n\t@IsBoolean()\n\tflagged!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateMatchParams.html":{"url":"classes/UpdateMatchParams.html","title":"class - UpdateMatchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateMatchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/update-match.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'updates local user reference for an import user'})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/update-match.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsMongoId } from 'class-validator';\n\nexport class UpdateMatchParams {\n\t@ApiProperty({ description: 'updates local user reference for an import user' })\n\t@IsMongoId()\n\tuserId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateNewsParams.html":{"url":"classes/UpdateNewsParams.html","title":"class - UpdateNewsParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateNewsParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/update-news.params.ts\n \n\n\n \n Description\n \n \n DTO for Updating a news document.\nA PartialType is a halper which allows to extend an existing class by making all its properties optional.\n\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n displayAt\n \n \n \n \n \n \n title\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n \n content\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@SanitizeHtml(InputFormat.RICH_TEXT)@ApiPropertyOptional({description: 'Content of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/update-news.params.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n displayAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsDate()@ApiPropertyOptional({description: 'The point in time from when the News entity schould be displayed'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/update-news.params.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsOptional()@IsString()@SanitizeHtml()@ApiPropertyOptional({description: 'Title of the News entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/update-news.params.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { SanitizeHtml } from '@shared/controller';\nimport { IsDate, IsOptional, IsString } from 'class-validator';\nimport { InputFormat } from '@shared/domain';\n\n/**\n * DTO for Updating a news document.\n * A PartialType is a halper which allows to extend an existing class by making all its properties optional.\n */\nexport class UpdateNewsParams {\n\t@IsOptional()\n\t@IsString()\n\t@SanitizeHtml()\n\t@ApiPropertyOptional({\n\t\tdescription: 'Title of the News entity',\n\t})\n\ttitle!: string;\n\n\t@IsOptional()\n\t@IsString()\n\t@SanitizeHtml(InputFormat.RICH_TEXT)\n\t@ApiPropertyOptional({\n\t\tdescription: 'Content of the News entity',\n\t})\n\tcontent!: string;\n\n\t@IsOptional()\n\t@IsDate()\n\t@ApiPropertyOptional({\n\t\tdescription: 'The point in time from when the News entity schould be displayed',\n\t})\n\tdisplayAt!: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UpdateSubmissionItemBodyParams.html":{"url":"classes/UpdateSubmissionItemBodyParams.html","title":"class - UpdateSubmissionItemBodyParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UpdateSubmissionItemBodyParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/submission-item/update-submission-item.body.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n completed\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n completed\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty({description: 'Boolean indicating whether the submission is completed.', required: true})\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/submission-item/update-submission-item.body.params.ts:10\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class UpdateSubmissionItemBodyParams {\n\t@IsBoolean()\n\t@ApiProperty({\n\t\tdescription: 'Boolean indicating whether the submission is completed.',\n\t\trequired: true,\n\t})\n\tcompleted!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/User.html":{"url":"entities/User.html","title":"entity - User","body":"\n \n\n\n\n\n\n\n\n Entities\n User\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/user.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n deletedAt\n \n \n \n \n email\n \n \n \n Optional\n emailSearchValues\n \n \n \n Optional\n externalId\n \n \n \n firstName\n \n \n \n Optional\n firstNameSearchValues\n \n \n \n Optional\n forcePasswordChange\n \n \n \n \n Optional\n importHash\n \n \n \n Optional\n language\n \n \n \n Optional\n lastLoginSystemChange\n \n \n \n lastName\n \n \n \n Optional\n lastNameSearchValues\n \n \n \n \n Optional\n ldapDn\n \n \n \n Optional\n outdatedSince\n \n \n \n Optional\n preferences\n \n \n \n Optional\n previousExternalId\n \n \n \n \n roles\n \n \n \n \n school\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n deletedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:91\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n emailSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:78\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true, fieldName: 'ldapId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:62\n \n \n\n\n \n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:44\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n firstNameSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:72\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n forcePasswordChange\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:84\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n importHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:69\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n language\n \n \n \n \n \n \n Type : LanguageType\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:81\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastLoginSystemChange\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:94\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:47\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastNameSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:75\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n Optional\n ldapDn\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:59\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n outdatedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:97\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n preferences\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:87\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n previousExternalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:65\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Default value : new Collection(this)\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToMany({fieldName: 'roles', entity: () => Role})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:51\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @Index()@ManyToOne(undefined, {fieldName: 'schoolId'})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user.entity.ts:55\n \n \n\n\n \n \n\n \n\n\n \n import { Collection, Entity, Index, ManyToMany, ManyToOne, Property } from '@mikro-orm/core';\nimport { IEntityWithSchool } from '../interface';\nimport { BaseEntityWithTimestamps } from './base.entity';\nimport { Role } from './role.entity';\nimport { SchoolEntity } from './school.entity';\n\nexport enum LanguageType {\n\tDE = 'de',\n\tEN = 'en',\n\tES = 'es',\n\tUK = 'uk',\n}\n\nexport interface IUserProperties {\n\temail: string;\n\tfirstName: string;\n\tlastName: string;\n\tschool: SchoolEntity;\n\troles: Role[];\n\tldapDn?: string;\n\texternalId?: string;\n\tlanguage?: LanguageType;\n\tforcePasswordChange?: boolean;\n\tpreferences?: Record;\n\tdeletedAt?: Date;\n\tlastLoginSystemChange?: Date;\n\toutdatedSince?: Date;\n\tpreviousExternalId?: string;\n}\n\n@Entity({ tableName: 'users' })\n@Index({ properties: ['id', 'email'] })\n@Index({ properties: ['firstName', 'lastName'] })\n@Index({ properties: ['externalId', 'school'] })\n@Index({ properties: ['school', 'ldapDn'] })\n@Index({ properties: ['school', 'roles'] })\nexport class User extends BaseEntityWithTimestamps implements IEntityWithSchool {\n\t@Property()\n\t@Index()\n\t// @Unique()\n\temail: string;\n\n\t@Property()\n\tfirstName: string;\n\n\t@Property()\n\tlastName: string;\n\n\t@Index()\n\t@ManyToMany({ fieldName: 'roles', entity: () => Role })\n\troles = new Collection(this);\n\n\t@Index()\n\t@ManyToOne(() => SchoolEntity, { fieldName: 'schoolId' })\n\tschool: SchoolEntity;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tldapDn?: string;\n\n\t@Property({ nullable: true, fieldName: 'ldapId' })\n\texternalId?: string;\n\n\t@Property({ nullable: true })\n\tpreviousExternalId?: string;\n\n\t@Property({ nullable: true })\n\t@Index()\n\timportHash?: string;\n\n\t@Property({ nullable: true })\n\tfirstNameSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\tlastNameSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\temailSearchValues?: string[];\n\n\t@Property({ nullable: true })\n\tlanguage?: LanguageType;\n\n\t@Property({ nullable: true })\n\tforcePasswordChange?: boolean;\n\n\t@Property({ nullable: true })\n\tpreferences?: Record;\n\n\t@Property({ nullable: true })\n\t@Index()\n\tdeletedAt?: Date;\n\n\t@Property({ nullable: true })\n\tlastLoginSystemChange?: Date;\n\n\t@Property({ nullable: true })\n\toutdatedSince?: Date;\n\n\tconstructor(props: IUserProperties) {\n\t\tsuper();\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.email = props.email;\n\t\tthis.school = props.school;\n\t\tthis.roles.set(props.roles);\n\t\tthis.ldapDn = props.ldapDn;\n\t\tthis.externalId = props.externalId;\n\t\tthis.forcePasswordChange = props.forcePasswordChange;\n\t\tthis.language = props.language;\n\t\tthis.preferences = props.preferences ?? {};\n\t\tthis.deletedAt = props.deletedAt;\n\t\tthis.lastLoginSystemChange = props.lastLoginSystemChange;\n\t\tthis.outdatedSince = props.outdatedSince;\n\t\tthis.previousExternalId = props.previousExternalId;\n\t}\n\n\tpublic resolvePermissions(): string[] {\n\t\tif (!this.roles.isInitialized(true)) {\n\t\t\tthrow new Error('Roles items are not loaded.');\n\t\t}\n\n\t\tlet permissions: string[] = [];\n\n\t\tconst roles = this.roles.getItems();\n\t\troles.forEach((role) => {\n\t\t\tconst rolePermissions = role.resolvePermissions();\n\t\t\tpermissions = [...permissions, ...rolePermissions];\n\t\t});\n\n\t\tconst uniquePermissions = [...new Set(permissions)];\n\n\t\treturn uniquePermissions;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserAlreadyAssignedToImportUserError.html":{"url":"classes/UserAlreadyAssignedToImportUserError.html","title":"class - UserAlreadyAssignedToImportUserError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserAlreadyAssignedToImportUserError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/user-already-assigned-to-import-user.business-error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor()\n \n \n \n \n Defined in apps/server/src/shared/common/error/user-already-assigned-to-import-user.business-error.ts:3\n \n \n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BusinessError } from './business.error';\n\nexport class UserAlreadyAssignedToImportUserError extends BusinessError {\n\tconstructor() {\n\t\tsuper({\n\t\t\ttype: 'USER_ALREADY_ASSIGNED_TO_IMPORT_USER_ERROR',\n\t\t\ttitle: 'USER_ALREADY_ASSIGNED_TO_IMPORT_USER_ERROR',\n\t\t\tdefaultMessage:\n\t\t\t\t'The selected user already has been referenced to a different import user. Only one reference is allowed.',\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/UserAndAccountParams.html":{"url":"interfaces/UserAndAccountParams.html","title":"interface - UserAndAccountParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserAndAccountParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user-and-account.test.factory.ts\n \n\n\n\n \n Extends\n \n \n UserParams\n \n\n\n\n\n \n\n\n \n import { Account, EntityId, Permission, SchoolEntity, User } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport _ from 'lodash';\nimport { accountFactory } from './account.factory';\nimport { userFactory } from './user.factory';\n\ninterface UserParams {\n\tfirstName?: string;\n\tlastName?: string;\n\temail?: string;\n\tschool?: SchoolEntity;\n\texternalId?: string;\n}\n\ninterface AccountParams {\n\tusername?: string;\n\tsystemId?: EntityId | ObjectId;\n}\n\nexport interface UserAndAccountParams extends UserParams, AccountParams {}\n\nexport class UserAndAccountTestFactory {\n\tprivate static getUserParams(params: UserAndAccountParams): UserParams {\n\t\tconst userParams = _.pick(params, 'firstName', 'lastName', 'email', 'school', 'externalId');\n\t\treturn userParams;\n\t}\n\n\tprivate static buildAccount(user: User, params: UserAndAccountParams = {}): Account {\n\t\tconst accountParams = _.pick(params, 'username', 'systemId');\n\t\tconst account = accountFactory.withUser(user).build(accountParams);\n\t\treturn account;\n\t}\n\n\tpublic static buildStudent(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): {\n\t\tstudentAccount: Account;\n\t\tstudentUser: User;\n\t} {\n\t\tconst user = userFactory\n\t\t\t.asStudent(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { studentAccount: account, studentUser: user };\n\t}\n\n\tpublic static buildTeacher(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { teacherAccount: Account; teacherUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asTeacher(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { teacherAccount: account, teacherUser: user };\n\t}\n\n\tpublic static buildAdmin(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { adminAccount: Account; adminUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asAdmin(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { adminAccount: account, adminUser: user };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserAndAccountTestFactory.html":{"url":"classes/UserAndAccountTestFactory.html","title":"class - UserAndAccountTestFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserAndAccountTestFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user-and-account.test.factory.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Static\n buildAccount\n \n \n Static\n buildAdmin\n \n \n Static\n buildStudent\n \n \n Static\n buildTeacher\n \n \n Private\n Static\n getUserParams\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Static\n buildAccount\n \n \n \n \n \n \n \n buildAccount(user: User, params: UserAndAccountParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : Account\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildAdmin\n \n \n \n \n \n \n \n buildAdmin(params: UserAndAccountParams, additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n \n {}\n \n\n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildStudent\n \n \n \n \n \n \n \n buildStudent(params: UserAndAccountParams, additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:34\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n \n {}\n \n\n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n buildTeacher\n \n \n \n \n \n \n \n buildTeacher(params: UserAndAccountParams, additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:49\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n \n {}\n \n\n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n Returns : literal type\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Static\n getUserParams\n \n \n \n \n \n \n \n getUserParams(params: UserAndAccountParams)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user-and-account.test.factory.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n UserAndAccountParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserParams\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Account, EntityId, Permission, SchoolEntity, User } from '@shared/domain';\nimport { ObjectId } from 'bson';\nimport _ from 'lodash';\nimport { accountFactory } from './account.factory';\nimport { userFactory } from './user.factory';\n\ninterface UserParams {\n\tfirstName?: string;\n\tlastName?: string;\n\temail?: string;\n\tschool?: SchoolEntity;\n\texternalId?: string;\n}\n\ninterface AccountParams {\n\tusername?: string;\n\tsystemId?: EntityId | ObjectId;\n}\n\nexport interface UserAndAccountParams extends UserParams, AccountParams {}\n\nexport class UserAndAccountTestFactory {\n\tprivate static getUserParams(params: UserAndAccountParams): UserParams {\n\t\tconst userParams = _.pick(params, 'firstName', 'lastName', 'email', 'school', 'externalId');\n\t\treturn userParams;\n\t}\n\n\tprivate static buildAccount(user: User, params: UserAndAccountParams = {}): Account {\n\t\tconst accountParams = _.pick(params, 'username', 'systemId');\n\t\tconst account = accountFactory.withUser(user).build(accountParams);\n\t\treturn account;\n\t}\n\n\tpublic static buildStudent(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): {\n\t\tstudentAccount: Account;\n\t\tstudentUser: User;\n\t} {\n\t\tconst user = userFactory\n\t\t\t.asStudent(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { studentAccount: account, studentUser: user };\n\t}\n\n\tpublic static buildTeacher(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { teacherAccount: Account; teacherUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asTeacher(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { teacherAccount: account, teacherUser: user };\n\t}\n\n\tpublic static buildAdmin(\n\t\tparams: UserAndAccountParams = {},\n\t\tadditionalPermissions: Permission[] = []\n\t): { adminAccount: Account; adminUser: User } {\n\t\tconst user = userFactory\n\t\t\t.asAdmin(additionalPermissions)\n\t\t\t.buildWithId(UserAndAccountTestFactory.getUserParams(params));\n\t\tconst account = UserAndAccountTestFactory.buildAccount(user, params);\n\n\t\treturn { adminAccount: account, adminUser: user };\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/UserApiModule.html":{"url":"modules/UserApiModule.html","title":"module - UserApiModule","body":"\n \n\n\n\n\n Modules\n UserApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_UserApiModule\n\n\n\ncluster_UserApiModule_imports\n\n\n\ncluster_UserApiModule_providers\n\n\n\n\nUserModule\n\nUserModule\n\n\n\nUserApiModule\n\nUserApiModule\n\nUserApiModule -->\n\nUserModule->UserApiModule\n\n\n\n\n\nUserUc\n\nUserUc\n\nUserApiModule -->\n\nUserUc->UserApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user/user-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n UserUc\n \n \n \n \n Controllers\n \n \n UserController\n \n \n \n \n Imports\n \n \n UserModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { UserController } from './controller';\nimport { UserUc } from './uc';\nimport { UserModule } from './user.module';\n\n@Module({\n\timports: [UserModule],\n\tcontrollers: [UserController],\n\tproviders: [UserUc],\n})\nexport class UserApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/UserBoardRoles.html":{"url":"interfaces/UserBoardRoles.html","title":"interface - UserBoardRoles","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserBoardRoles\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/board/types/board-do-authorizable.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n roles\n \n \n \n \n userId\n \n \n \n \n userRoleEnum\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n roles\n \n \n \n \n \n \n \n \n roles: BoardRoles[]\n\n \n \n\n\n \n \n Type : BoardRoles[]\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: EntityId\n\n \n \n\n\n \n \n Type : EntityId\n\n \n \n\n\n\n\n\n \n \n \n \n \n \n \n userRoleEnum\n \n \n \n \n \n \n \n \n userRoleEnum: UserRoleEnum\n\n \n \n\n\n \n \n Type : UserRoleEnum\n\n \n \n\n\n\n\n\n \n \n \n \n\n\n \n import { AuthorizableObject, DomainObject } from '@shared/domain/domain-object';\nimport { EntityId } from '@shared/domain/types';\n\nexport enum BoardRoles {\n\tEDITOR = 'editor',\n\tREADER = 'reader',\n}\n/**\n\tdeprecated: This is a temporary solution. This will be replaced with a more proper permission system.\n*/\nexport enum UserRoleEnum {\n\tTEACHER = 'teacher',\n\tSTUDENT = 'student',\n\tSUBSTITUTION_TEACHER = 'subsitution teacher',\n}\n\nexport interface UserBoardRoles {\n\troles: BoardRoles[];\n\tuserId: EntityId;\n\tuserRoleEnum: UserRoleEnum;\n}\n\nexport interface BoardDoAuthorizableProps extends AuthorizableObject {\n\tid: EntityId;\n\tusers: UserBoardRoles[];\n\trequiredUserRole?: UserRoleEnum;\n}\n\nexport class BoardDoAuthorizable extends DomainObject {\n\tget users(): UserBoardRoles[] {\n\t\treturn this.props.users;\n\t}\n\n\tget requiredUserRole(): UserRoleEnum | undefined {\n\t\treturn this.props.requiredUserRole;\n\t}\n\n\tset requiredUserRole(userRoleEnum: UserRoleEnum | undefined) {\n\t\tthis.props.requiredUserRole = userRoleEnum;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/UserController.html":{"url":"controllers/UserController.html","title":"controller - UserController","body":"\n \n\n\n\n\n\n\n Controllers\n UserController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/controller/user.controller.ts\n \n\n \n Prefix\n \n \n user\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n changeLanguage\n \n \n \n Async\n me\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n changeLanguage\n \n \n \n \n \n \n \n changeLanguage(params: ChangeLanguageParams, currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Patch('/language')\n \n \n\n \n \n Defined in apps/server/src/modules/user/controller/user.controller.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n ChangeLanguageParams\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n me\n \n \n \n \n \n \n \n me(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Get('me')\n \n \n\n \n \n Defined in apps/server/src/modules/user/controller/user.controller.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Patch } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ResolvedUserMapper } from '../mapper';\nimport { UserUc } from '../uc';\nimport { ChangeLanguageParams, ResolvedUserResponse, SuccessfulResponse } from './dto';\n\n@ApiTags('User')\n@Authenticate('jwt')\n@Controller('user')\nexport class UserController {\n\tconstructor(private readonly userUc: UserUc) {}\n\n\t@Get('me')\n\tasync me(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst [user, permissions] = await this.userUc.me(currentUser.userId);\n\n\t\t// only the root roles of the user get published\n\t\tconst resolvedUser = ResolvedUserMapper.mapToResponse(user, permissions, user.roles.getItems());\n\n\t\treturn resolvedUser;\n\t}\n\n\t@Patch('/language')\n\tasync changeLanguage(\n\t\t@Body() params: ChangeLanguageParams,\n\t\t@CurrentUser() currentUser: ICurrentUser\n\t): Promise {\n\t\tconst result = await this.userUc.patchLanguage(currentUser.userId, params);\n\n\t\tconst successfulResponse = new SuccessfulResponse(result);\n\n\t\treturn successfulResponse;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserDO.html":{"url":"classes/UserDO.html","title":"class - UserDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/user.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n createdAt\n \n \n email\n \n \n Optional\n emailSearchValues\n \n \n Optional\n externalId\n \n \n firstName\n \n \n Optional\n firstNameSearchValues\n \n \n Optional\n forcePasswordChange\n \n \n Optional\n importHash\n \n \n Optional\n language\n \n \n Optional\n lastLoginSystemChange\n \n \n lastName\n \n \n Optional\n lastNameSearchValues\n \n \n Optional\n ldapDn\n \n \n Optional\n outdatedSince\n \n \n Optional\n preferences\n \n \n Optional\n previousExternalId\n \n \n roles\n \n \n schoolId\n \n \n Optional\n updatedAt\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(domainObject: UserDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:43\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n \n UserDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n createdAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n emailSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n firstNameSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n forcePasswordChange\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n importHash\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n language\n \n \n \n \n \n \n Type : LanguageType\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:33\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lastLoginSystemChange\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:39\n \n \n\n\n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lastNameSearchValues\n \n \n \n \n \n \n Type : string[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n ldapDn\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n outdatedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n preferences\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n previousExternalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n roles\n \n \n \n \n \n \n Type : RoleReference[]\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n updatedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { LanguageType } from '@shared/domain/entity';\nimport { EntityId } from '@shared/domain/types';\nimport { BaseDO } from './base.do';\nimport { RoleReference } from './role-reference';\n\nexport class UserDO extends BaseDO {\n\tcreatedAt?: Date;\n\n\tupdatedAt?: Date;\n\n\temail: string;\n\n\tfirstName: string;\n\n\tlastName: string;\n\n\troles: RoleReference[];\n\n\tschoolId: EntityId;\n\n\tldapDn?: string;\n\n\texternalId?: string;\n\n\timportHash?: string;\n\n\tfirstNameSearchValues?: string[];\n\n\tlastNameSearchValues?: string[];\n\n\temailSearchValues?: string[];\n\n\tlanguage?: LanguageType;\n\n\tforcePasswordChange?: boolean;\n\n\tpreferences?: Record;\n\n\tlastLoginSystemChange?: Date;\n\n\toutdatedSince?: Date;\n\n\tpreviousExternalId?: string;\n\n\tconstructor(domainObject: UserDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.createdAt = domainObject.createdAt;\n\t\tthis.updatedAt = domainObject.updatedAt;\n\t\tthis.email = domainObject.email;\n\t\tthis.firstName = domainObject.firstName;\n\t\tthis.lastName = domainObject.lastName;\n\t\tthis.roles = domainObject.roles;\n\t\tthis.schoolId = domainObject.schoolId;\n\t\tthis.ldapDn = domainObject.ldapDn;\n\t\tthis.externalId = domainObject.externalId;\n\t\tthis.importHash = domainObject.importHash;\n\t\tthis.firstNameSearchValues = domainObject.firstNameSearchValues;\n\t\tthis.lastNameSearchValues = domainObject.lastNameSearchValues;\n\t\tthis.emailSearchValues = domainObject.emailSearchValues;\n\t\tthis.language = domainObject.language;\n\t\tthis.forcePasswordChange = domainObject.forcePasswordChange;\n\t\tthis.preferences = domainObject.preferences;\n\t\tthis.lastLoginSystemChange = domainObject.lastLoginSystemChange;\n\t\tthis.outdatedSince = domainObject.outdatedSince;\n\t\tthis.previousExternalId = domainObject.previousExternalId;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserDORepo.html":{"url":"injectables/UserDORepo.html","title":"injectable - UserDORepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserDORepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/user/user-do.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createQueryOrderMap\n \n \n entityFactory\n \n \n Async\n find\n \n \n Async\n findByExternalId\n \n \n Async\n findByExternalIdOrFail\n \n \n Async\n findById\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n Async\n populateRoles\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createQueryOrderMap\n \n \n \n \n \n \n \n createQueryOrderMap(sort: SortOrderMap)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:141\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sort\n \n SortOrderMap\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : QueryOrderMap\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IUserProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:29\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IUserProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : User\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n find\n \n \n \n \n \n \n \n find(query: UserQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:33\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n UserQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalId\n \n \n \n \n \n \n \n findByExternalId(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalIdOrFail\n \n \n \n \n \n \n \n findByExternalIdOrFail(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:71\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, populate)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:60\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n populate\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: UserDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:123\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n UserDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IUserProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: User)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:90\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateRoles\n \n \n \n \n \n \n \n populateRoles(roles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:151\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/user/user-do.repo.ts:25\n \n \n\n \n \n\n \n\n\n \n import { EntityName, FilterQuery, QueryOrderMap } from '@mikro-orm/core';\nimport { Injectable } from '@nestjs/common';\nimport { EntityNotFoundError } from '@shared/common';\nimport {\n\tEntityId,\n\tIFindOptions,\n\tIPagination,\n\tIUserProperties,\n\tRole,\n\tSchoolEntity,\n\tSortOrder,\n\tSortOrderMap,\n\tSystem,\n\tUser,\n} from '@shared/domain';\nimport { RoleReference } from '@shared/domain/domainobject';\nimport { Page } from '@shared/domain/domainobject/page';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { BaseDORepo, Scope } from '@shared/repo';\nimport { UserQuery } from '@src/modules/user/service/user-query.type';\nimport { UserScope } from './user.scope';\n\n@Injectable()\nexport class UserDORepo extends BaseDORepo {\n\tget entityName(): EntityName {\n\t\treturn User;\n\t}\n\n\tentityFactory(props: IUserProperties): User {\n\t\treturn new User(props);\n\t}\n\n\tasync find(query: UserQuery, options?: IFindOptions) {\n\t\tconst pagination: IPagination = options?.pagination || {};\n\t\tconst order: QueryOrderMap = this.createQueryOrderMap(options?.order || {});\n\t\tconst scope: Scope = new UserScope()\n\t\t\t.bySchoolId(query.schoolId)\n\t\t\t.isOutdated(query.isOutdated)\n\t\t\t.whereLastLoginSystemChangeSmallerThan(query.lastLoginSystemChangeSmallerThan)\n\t\t\t.whereLastLoginSystemChangeIsBetween(\n\t\t\t\tquery.lastLoginSystemChangeBetweenStart,\n\t\t\t\tquery.lastLoginSystemChangeBetweenEnd\n\t\t\t)\n\t\t\t.withOutdatedSince(query.outdatedSince)\n\t\t\t.allowEmptyQuery(true);\n\n\t\torder._id = order._id ?? SortOrder.asc;\n\n\t\tconst [entities, total]: [User[], number] = await this._em.findAndCount(User, scope.query, {\n\t\t\toffset: pagination?.skip,\n\t\t\tlimit: pagination?.limit,\n\t\t\torderBy: order,\n\t\t});\n\n\t\tconst entityDos: UserDO[] = entities.map((entity) => this.mapEntityToDO(entity));\n\t\tconst page: Page = new Page(entityDos, total);\n\t\treturn page;\n\t}\n\n\tasync findById(id: EntityId, populate = false): Promise {\n\t\tconst userEntity: User = await this._em.findOneOrFail(this.entityName, id as FilterQuery);\n\n\t\tif (populate) {\n\t\t\tawait this._em.populate(userEntity, ['roles', 'school.systems', 'school.schoolYear']);\n\t\t\tawait this.populateRoles(userEntity.roles.getItems());\n\t\t}\n\n\t\treturn this.mapEntityToDO(userEntity);\n\t}\n\n\tasync findByExternalIdOrFail(externalId: string, systemId: string): Promise {\n\t\tconst userDo: UserDO | null = await this.findByExternalId(externalId, systemId);\n\t\tif (userDo) {\n\t\t\treturn userDo;\n\t\t}\n\t\tthrow new EntityNotFoundError('User');\n\t}\n\n\tasync findByExternalId(externalId: string, systemId: string): Promise {\n\t\tconst userEntitys: User[] = await this._em.find(User, { externalId }, { populate: ['school.systems'] });\n\t\tconst userEntity: User | undefined = userEntitys.find((user: User): boolean => {\n\t\t\tconst { systems } = user.school;\n\t\t\treturn systems && !!systems.getItems().find((system: System): boolean => system.id === systemId);\n\t\t});\n\n\t\tconst userDo: UserDO | null = userEntity ? this.mapEntityToDO(userEntity) : null;\n\t\treturn userDo;\n\t}\n\n\tmapEntityToDO(entity: User): UserDO {\n\t\tconst user: UserDO = new UserDO({\n\t\t\tid: entity.id,\n\t\t\tcreatedAt: entity.createdAt,\n\t\t\tupdatedAt: entity.updatedAt,\n\t\t\temail: entity.email,\n\t\t\tfirstName: entity.firstName,\n\t\t\tlastName: entity.lastName,\n\t\t\troles: [],\n\t\t\tschoolId: entity.school.id,\n\t\t\tldapDn: entity.ldapDn,\n\t\t\texternalId: entity.externalId,\n\t\t\timportHash: entity.importHash,\n\t\t\tfirstNameSearchValues: entity.firstNameSearchValues,\n\t\t\tlastNameSearchValues: entity.lastNameSearchValues,\n\t\t\temailSearchValues: entity.emailSearchValues,\n\t\t\tlanguage: entity.language,\n\t\t\tforcePasswordChange: entity.forcePasswordChange,\n\t\t\tpreferences: entity.preferences,\n\t\t\tlastLoginSystemChange: entity.lastLoginSystemChange,\n\t\t\toutdatedSince: entity.outdatedSince,\n\t\t\tpreviousExternalId: entity.previousExternalId,\n\t\t});\n\n\t\tif (entity.roles.isInitialized()) {\n\t\t\tuser.roles = entity.roles\n\t\t\t\t.getItems()\n\t\t\t\t.map((role: Role): RoleReference => new RoleReference({ id: role.id, name: role.name }));\n\t\t}\n\n\t\treturn user;\n\t}\n\n\tmapDOToEntityProperties(entityDO: UserDO): IUserProperties {\n\t\treturn {\n\t\t\temail: entityDO.email,\n\t\t\tfirstName: entityDO.firstName,\n\t\t\tlastName: entityDO.lastName,\n\t\t\tschool: this._em.getReference(SchoolEntity, entityDO.schoolId),\n\t\t\troles: entityDO.roles.map((roleRef: RoleReference) => this._em.getReference(Role, roleRef.id)),\n\t\t\tldapDn: entityDO.ldapDn,\n\t\t\texternalId: entityDO.externalId,\n\t\t\tlanguage: entityDO.language,\n\t\t\tforcePasswordChange: entityDO.forcePasswordChange,\n\t\t\tpreferences: entityDO.preferences,\n\t\t\tlastLoginSystemChange: entityDO.lastLoginSystemChange,\n\t\t\toutdatedSince: entityDO.outdatedSince,\n\t\t\tpreviousExternalId: entityDO.previousExternalId,\n\t\t};\n\t}\n\n\tprivate createQueryOrderMap(sort: SortOrderMap): QueryOrderMap {\n\t\tconst queryOrderMap: QueryOrderMap = {\n\t\t\t_id: sort.id,\n\t\t};\n\t\tObject.keys(queryOrderMap)\n\t\t\t.filter((key) => queryOrderMap[key] === undefined)\n\t\t\t.forEach((key) => delete queryOrderMap[key]);\n\t\treturn queryOrderMap;\n\t}\n\n\tprivate async populateRoles(roles: Role[]): Promise {\n\t\tfor (let i = 0; i \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserDataResponse.html":{"url":"classes/UserDataResponse.html","title":"class - UserDataResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserDataResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/user-data.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n firstName\n \n \n \n lastName\n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: UserDataResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/user-data.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n UserDataResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/user-data.response.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/user-data.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/user-data.response.ts:17\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class UserDataResponse {\n\tconstructor({ userId, firstName, lastName }: UserDataResponse) {\n\t\tthis.userId = userId;\n\t\tthis.firstName = firstName;\n\t\tthis.lastName = lastName;\n\t}\n\n\t@ApiProperty()\n\tfirstName!: string;\n\n\t@ApiProperty()\n\tlastName!: string;\n\n\t@ApiProperty()\n\tuserId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserDoFactory.html":{"url":"classes/UserDoFactory.html","title":"class - UserDoFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserDoFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user.do.factory.ts\n \n\n\n\n \n Extends\n \n \n DoBaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n withRoles\n \n \n \n buildWithId\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n withRoles\n \n \n \n \n \n \nwithRoles(roles: literal type[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.do.factory.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n literal type[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \n \n buildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:7\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId, RoleName } from '@shared/domain';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { ObjectId } from 'bson';\nimport { DeepPartial } from 'fishery';\nimport { DoBaseFactory } from './domainobject';\n\nclass UserDoFactory extends DoBaseFactory {\n\twithRoles(roles: { id: EntityId; name: RoleName }[]) {\n\t\tconst params: DeepPartial = {\n\t\t\troles,\n\t\t};\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const userDoFactory = UserDoFactory.define(UserDO, ({ sequence }) => {\n\treturn {\n\t\tfirstName: 'John',\n\t\tlastName: `Doe ${sequence}`,\n\t\temail: `user-${sequence}@example.com`,\n\t\troles: [],\n\t\tschoolId: new ObjectId().toString(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserDto.html":{"url":"classes/UserDto.html","title":"class - UserDto","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserDto\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/uc/dto/user.dto.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n email\n \n \n Optional\n externalId\n \n \n firstName\n \n \n Optional\n forcePasswordChange\n \n \n Optional\n id\n \n \n Optional\n language\n \n \n Optional\n lastLoginSystemChange\n \n \n lastName\n \n \n Optional\n ldapDn\n \n \n Optional\n outdatedSince\n \n \n Optional\n preferences\n \n \n roleIds\n \n \n schoolId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(user: UserDto)\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n \n UserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n email\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n externalId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:34\n \n \n\n\n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n forcePasswordChange\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:38\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:20\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n language\n \n \n \n \n \n \n Type : LanguageType\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:36\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n lastLoginSystemChange\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:43\n \n \n\n\n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:26\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n ldapDn\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n outdatedSince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:45\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n preferences\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Default value : {}\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n roleIds\n \n \n \n \n \n \n Type : EntityId[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user/uc/dto/user.dto.ts:30\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId, LanguageType } from '@shared/domain';\n\nexport class UserDto {\n\tconstructor(user: UserDto) {\n\t\tthis.id = user.id;\n\t\tthis.email = user.email;\n\t\tthis.firstName = user.firstName;\n\t\tthis.lastName = user.lastName;\n\t\tthis.roleIds = user.roleIds;\n\t\tthis.schoolId = user.schoolId;\n\t\tthis.ldapDn = user.ldapDn;\n\t\tthis.externalId = user.externalId;\n\t\tthis.language = user.language;\n\t\tthis.forcePasswordChange = user.forcePasswordChange;\n\t\tthis.preferences = user.preferences;\n\t\tthis.lastLoginSystemChange = user.lastLoginSystemChange;\n\t\tthis.outdatedSince = user.outdatedSince;\n\t}\n\n\tid?: EntityId;\n\n\temail: string;\n\n\tfirstName: string;\n\n\tlastName: string;\n\n\troleIds: EntityId[] = [];\n\n\tschoolId: string;\n\n\tldapDn?: string;\n\n\texternalId?: string;\n\n\tlanguage?: LanguageType;\n\n\tforcePasswordChange?: boolean;\n\n\t// See user entity\n\tpreferences?: Record = {};\n\n\tlastLoginSystemChange?: Date;\n\n\toutdatedSince?: Date;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserFactory.html":{"url":"classes/UserFactory.html","title":"class - UserFactory","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserFactory\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/testing/factory/user.factory.ts\n \n\n\n\n \n Extends\n \n \n BaseFactory\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n asAdmin\n \n \n asStudent\n \n \n asTeacher\n \n \n withRole\n \n \n withRoleByName\n \n \n afterBuild\n \n \n associations\n \n \n build\n \n \n buildList\n \n \n buildListWithId\n \n \n buildWithId\n \n \n Protected\n clone\n \n \n Static\n define\n \n \n params\n \n \n rewindSequence\n \n \n Protected\n sequence\n \n \n transient\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Protected\n Readonly\n propsFactory\n \n \n \n \n \n \n Type : Factory\n\n \n \n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n asAdmin\n \n \n \n \n \n \nasAdmin(additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:41\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n asStudent\n \n \n \n \n \n \nasStudent(additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n asTeacher\n \n \n \n \n \n \nasTeacher(additionalPermissions: Permission[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:32\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n additionalPermissions\n \n Permission[]\n \n\n \n No\n \n\n \n []\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withRole\n \n \n \n \n \n \nwithRole(role: Role)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n Role\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withRoleByName\n \n \n \n \n \n \nwithRoleByName(name: RoleName)\n \n \n\n\n \n \n Defined in apps/server/src/shared/testing/factory/user.factory.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n RoleName\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n afterBuild\n \n \n \n \n \n \nafterBuild(afterBuildFn: HookFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:98\n\n \n \n\n\n \n \n Extend the factory by adding a function to be called after an object is built.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n afterBuildFn\n \n HookFn\n \n\n \n No\n \n\n\n \n \nthe function to call. It accepts your object of type T. The value this function returns gets returned from \"build\"\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n associations\n \n \n \n \n \n \nassociations(associations: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:110\n\n \n \n\n\n \n \n Extend the factory by adding default associations to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n associations\n \n Partial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n build\n \n \n \n \n \n \nbuild(params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:47\n\n \n \n\n\n \n \n Build an entity using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n buildList\n \n \n \n \n \n \nbuildList(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:75\n\n \n \n\n\n \n \n Build a list of entities using your factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n a list of entities\n\n \n \n \n \n \n \n \n \n \n \n \n buildListWithId\n \n \n \n \n \n \nbuildListWithId(number: number, params?: DeepPartial, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:84\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n number\n \n number\n \n\n \n No\n \n\n \n \n\n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n buildWithId\n \n \n \n \n \n \nbuildWithId(params?: DeepPartial, id?: string, options: BuildOptions)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:60\n\n \n \n\n\n \n \n Build an entity using your factory and generate a id for it.\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n params\n \n DeepPartial\n \n\n \n Yes\n \n\n \n \n\n \n \n id\n \n string\n \n\n \n Yes\n \n\n \n \n\n \n \n options\n \n BuildOptions\n \n\n \n No\n \n\n \n {}\n \n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n an entity\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n clone\n \n \n \n \n \n \n \n clone(this: F, propsFactory: Factory)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:148\n\n \n \n\n \n \n Type parameters :\n \n F\n \n \n \n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n this\n \n F\n \n\n \n No\n \n\n\n \n \n propsFactory\n \n Factory\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n define\n \n \n \n \n \n \n \n define(this, EntityClass: literal type, generator: GeneratorFn)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:32\n\n \n \n\n \n \n Type parameters :\n \n T\n U\n I\n C\n F\n \n \n \n\n \n \n Define a factory\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n this\n \n \n\n \n No\n \n\n\n \n \n \n \n EntityClass\n \n literal type\n \n\n \n No\n \n\n\n \n The constructor of the entity to be built.\n\n \n \n \n generator\n \n GeneratorFn\n \n\n \n No\n \n\n\n \n Your factory function - see Factory.define() in thoughtbot/fishery\n\n \n \n \n \n \n \n \n \n Returns : F\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n params\n \n \n \n \n \n \nparams(params: DeepPartial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:122\n\n \n \n\n\n \n \n Extend the factory by adding default parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n DeepPartial\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n rewindSequence\n \n \n \n \n \n \nrewindSequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:144\n\n \n \n\n\n \n \n Set sequence back to its default value\n\n\n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n Protected\n sequence\n \n \n \n \n \n \n \n sequence()\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:160\n\n \n \n\n\n \n \n Get the next sequence value\n\n\n \n \n \n Returns : number\n\n \n \n the next sequence value\n\n \n \n \n \n \n \n \n \n \n \n \n transient\n \n \n \n \n \n \ntransient(transient: Partial)\n \n \n\n\n \n \n Inherited from BaseFactory\n\n \n \n \n \n Defined in BaseFactory:134\n\n \n \n\n\n \n \n Extend the factory by adding default transient parameters to be passed to the factory when \"build\" is called\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Description\n \n \n \n \n transient\n \n Partial\n \n\n \n No\n \n\n\n \n \ntransient params\n\n\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { IUserProperties, Permission, Role, RoleName, User } from '@shared/domain';\nimport { DeepPartial } from 'fishery';\nimport _ from 'lodash';\nimport { adminPermissions, studentPermissions, teacherPermissions, userPermissions } from '../user-role-permissions';\nimport { BaseFactory } from './base.factory';\nimport { roleFactory } from './role.factory';\nimport { schoolFactory } from './school.factory';\n\nclass UserFactory extends BaseFactory {\n\twithRoleByName(name: RoleName): this {\n\t\tconst params: DeepPartial = { roles: [roleFactory.buildWithId({ name })] };\n\n\t\treturn this.params(params);\n\t}\n\n\twithRole(role: Role): this {\n\t\tconst params: DeepPartial = { roles: [role] };\n\n\t\treturn this.params(params);\n\t}\n\n\tasStudent(additionalPermissions: Permission[] = []): this {\n\t\tconst permissions = _.union(userPermissions, studentPermissions, additionalPermissions);\n\t\tconst role = roleFactory.buildWithId({ permissions });\n\n\t\tconst params: DeepPartial = { roles: [role] };\n\n\t\treturn this.params(params);\n\t}\n\n\tasTeacher(additionalPermissions: Permission[] = []): this {\n\t\tconst permissions = _.union(userPermissions, teacherPermissions, additionalPermissions);\n\t\tconst role = roleFactory.buildWithId({ permissions });\n\n\t\tconst params: DeepPartial = { roles: [role] };\n\n\t\treturn this.params(params);\n\t}\n\n\tasAdmin(additionalPermissions: Permission[] = []): this {\n\t\tconst permissions = _.union(userPermissions, adminPermissions, additionalPermissions);\n\t\tconst role = roleFactory.buildWithId({ permissions });\n\n\t\tconst params: DeepPartial = { roles: [role] };\n\n\t\treturn this.params(params);\n\t}\n}\n\nexport const userFactory = UserFactory.define(User, ({ sequence }) => {\n\treturn {\n\t\tfirstName: 'John',\n\t\tlastName: `Doe ${sequence}`,\n\t\temail: `user-${sequence}@example.com`,\n\t\troles: [],\n\t\tschool: schoolFactory.build(),\n\t};\n});\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserForGroupNotFoundLoggable.html":{"url":"classes/UserForGroupNotFoundLoggable.html","title":"class - UserForGroupNotFoundLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserForGroupNotFoundLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/provisioning/loggable/user-for-group-not-found.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(groupUser: ExternalGroupUserDto)\n \n \n \n \n Defined in apps/server/src/modules/provisioning/loggable/user-for-group-not-found.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n groupUser\n \n \n ExternalGroupUserDto\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/provisioning/loggable/user-for-group-not-found.loggable.ts:7\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { ExternalGroupUserDto } from '../dto';\n\nexport class UserForGroupNotFoundLoggable implements Loggable {\n\tconstructor(private readonly groupUser: ExternalGroupUserDto) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Unable to add unknown user to group during provisioning.',\n\t\t\tdata: {\n\t\t\t\texternalUserId: this.groupUser.externalUserId,\n\t\t\t\troleName: this.groupUser.roleName,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserInfoMapper.html":{"url":"classes/UserInfoMapper.html","title":"class - UserInfoMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserInfoMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/mapper/user-info.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/modules/news/mapper/user-info.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserInfoResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { User } from '@shared/domain';\nimport { UserInfoResponse } from '../controller/dto';\n\nexport class UserInfoMapper {\n\tstatic mapToResponse(user: User): UserInfoResponse {\n\t\tconst dto = new UserInfoResponse({\n\t\t\tid: user.id,\n\t\t\tfirstName: user.firstName,\n\t\t\tlastName: user.lastName,\n\t\t});\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserInfoResponse.html":{"url":"classes/UserInfoResponse.html","title":"class - UserInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/news/controller/dto/user-info.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n id\n \n \n \n Optional\n lastName\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: UserInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/user-info.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n UserInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'First name of the user'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/user-info.response.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({pattern: '[a-f0-9]{24}', description: 'The id of the User entity'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/user-info.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Last name of the user'})\n \n \n \n \n \n Defined in apps/server/src/modules/news/controller/dto/user-info.response.ts:24\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class UserInfoResponse {\n\tconstructor({ id, firstName, lastName }: UserInfoResponse) {\n\t\tthis.id = id;\n\t\tthis.firstName = firstName;\n\t\tthis.lastName = lastName;\n\t}\n\n\t@ApiProperty({\n\t\tpattern: '[a-f0-9]{24}',\n\t\tdescription: 'The id of the User entity',\n\t})\n\tid: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'First name of the user',\n\t})\n\tfirstName?: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Last name of the user',\n\t})\n\tlastName?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/UserLoginMigration.html":{"url":"entities/UserLoginMigration.html","title":"entity - UserLoginMigration","body":"\n \n\n\n\n\n\n\n\n Entities\n UserLoginMigration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/user-login-migration.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n Optional\n finishedAt\n \n \n \n Optional\n mandatorySince\n \n \n \n school\n \n \n \n Optional\n sourceSystem\n \n \n \n startedAt\n \n \n \n targetSystem\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n finishedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:30\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n mandatorySince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property({nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n \n school\n \n \n \n \n \n \n Type : SchoolEntity\n\n \n \n \n \n Decorators : \n \n \n @OneToOne(undefined, undefined, {nullable: false})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceSystem\n \n \n \n \n \n \n Type : System\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined, {nullable: true})\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n \n startedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:24\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetSystem\n \n \n \n \n \n \n Type : System\n\n \n \n \n \n Decorators : \n \n \n @ManyToOne(undefined)\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/user-login-migration.entity.ts:18\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, ManyToOne, OneToOne, Property } from '@mikro-orm/core';\nimport { SchoolEntity } from '@shared/domain/entity/school.entity';\nimport { System } from '@shared/domain/entity/system.entity';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport type IUserLoginMigration = Readonly>;\n\n@Entity({ tableName: 'user_login_migrations' })\nexport class UserLoginMigration extends BaseEntityWithTimestamps {\n\t@OneToOne(() => SchoolEntity, undefined, { nullable: false })\n\tschool: SchoolEntity;\n\n\t// undefined, if migrating from 'local'\n\t@ManyToOne(() => System, { nullable: true })\n\tsourceSystem?: System;\n\n\t@ManyToOne(() => System)\n\ttargetSystem: System;\n\n\t@Property({ nullable: true })\n\tmandatorySince?: Date;\n\n\t@Property()\n\tstartedAt: Date;\n\n\t@Property({ nullable: true })\n\tclosedAt?: Date;\n\n\t@Property({ nullable: true })\n\tfinishedAt?: Date;\n\n\tconstructor(props: IUserLoginMigration) {\n\t\tsuper();\n\t\tthis.school = props.school;\n\t\tthis.sourceSystem = props.sourceSystem;\n\t\tthis.targetSystem = props.targetSystem;\n\t\tthis.mandatorySince = props.mandatorySince;\n\t\tthis.startedAt = props.startedAt;\n\t\tthis.closedAt = props.closedAt;\n\t\tthis.finishedAt = props.finishedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationAlreadyClosedLoggableException.html":{"url":"classes/UserLoginMigrationAlreadyClosedLoggableException.html","title":"class - UserLoginMigrationAlreadyClosedLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationAlreadyClosedLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/user-login-migration-already-closed.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n UnprocessableEntityException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationId: EntityId, closedAt: Date)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-already-closed.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n closedAt\n \n \n Date\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-already-closed.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationAlreadyClosedLoggableException extends UnprocessableEntityException implements Loggable {\n\tconstructor(private readonly userLoginMigrationId: EntityId, private readonly closedAt: Date) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'USER_LOGIN_MIGRATION_ALREADY_CLOSED',\n\t\t\tmessage: 'Migration of school cannot be started or changed, because it is already closed.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t\tclosedAt: this.closedAt.toISOString(),\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/UserLoginMigrationApiModule.html":{"url":"modules/UserLoginMigrationApiModule.html","title":"module - UserLoginMigrationApiModule","body":"\n \n\n\n\n\n Modules\n UserLoginMigrationApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_UserLoginMigrationApiModule\n\n\n\ncluster_UserLoginMigrationApiModule_providers\n\n\n\ncluster_UserLoginMigrationApiModule_imports\n\n\n\n\nAuthenticationModule\n\nAuthenticationModule\n\n\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule\n\nUserLoginMigrationApiModule -->\n\nAuthenticationModule->UserLoginMigrationApiModule\n\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\nUserLoginMigrationApiModule -->\n\nAuthorizationModule->UserLoginMigrationApiModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nUserLoginMigrationApiModule -->\n\nLegacySchoolModule->UserLoginMigrationApiModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nUserLoginMigrationApiModule -->\n\nLoggerModule->UserLoginMigrationApiModule\n\n\n\n\n\nOauthModule\n\nOauthModule\n\nUserLoginMigrationApiModule -->\n\nOauthModule->UserLoginMigrationApiModule\n\n\n\n\n\nProvisioningModule\n\nProvisioningModule\n\nUserLoginMigrationApiModule -->\n\nProvisioningModule->UserLoginMigrationApiModule\n\n\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nUserLoginMigrationApiModule -->\n\nUserLoginMigrationModule->UserLoginMigrationApiModule\n\n\n\n\n\nCloseUserLoginMigrationUc\n\nCloseUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nCloseUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nPageContentMapper\n\nPageContentMapper\n\nUserLoginMigrationApiModule -->\n\nPageContentMapper->UserLoginMigrationApiModule\n\n\n\n\n\nRestartUserLoginMigrationUc\n\nRestartUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nRestartUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nStartUserLoginMigrationUc\n\nStartUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nStartUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nToggleUserLoginMigrationUc\n\nToggleUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nToggleUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\nUserLoginMigrationUc\n\nUserLoginMigrationUc\n\nUserLoginMigrationApiModule -->\n\nUserLoginMigrationUc->UserLoginMigrationApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user-login-migration/user-login-migration-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n CloseUserLoginMigrationUc\n \n \n PageContentMapper\n \n \n RestartUserLoginMigrationUc\n \n \n StartUserLoginMigrationUc\n \n \n ToggleUserLoginMigrationUc\n \n \n UserLoginMigrationUc\n \n \n \n \n Controllers\n \n \n UserMigrationController\n \n \n UserLoginMigrationController\n \n \n \n \n Imports\n \n \n AuthenticationModule\n \n \n AuthorizationModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n OauthModule\n \n \n ProvisioningModule\n \n \n UserLoginMigrationModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { LoggerModule } from '@src/core/logger';\nimport { AuthenticationModule } from '@src/modules/authentication/authentication.module';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { OauthModule } from '@src/modules/oauth';\nimport { ProvisioningModule } from '@src/modules/provisioning';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { UserLoginMigrationController } from './controller/user-login-migration.controller';\nimport { UserMigrationController } from './controller/user-migration.controller';\nimport { PageContentMapper } from './mapper';\nimport {\n\tCloseUserLoginMigrationUc,\n\tRestartUserLoginMigrationUc,\n\tStartUserLoginMigrationUc,\n\tToggleUserLoginMigrationUc,\n\tUserLoginMigrationUc,\n} from './uc';\nimport { UserLoginMigrationModule } from './user-login-migration.module';\n\n@Module({\n\timports: [\n\t\tUserLoginMigrationModule,\n\t\tOauthModule,\n\t\tProvisioningModule,\n\t\tAuthenticationModule,\n\t\tAuthorizationModule,\n\t\tLoggerModule,\n\t\tLegacySchoolModule,\n\t],\n\tproviders: [\n\t\tUserLoginMigrationUc,\n\t\tStartUserLoginMigrationUc,\n\t\tRestartUserLoginMigrationUc,\n\t\tToggleUserLoginMigrationUc,\n\t\tCloseUserLoginMigrationUc,\n\t\tPageContentMapper,\n\t],\n\tcontrollers: [UserMigrationController, UserLoginMigrationController],\n})\nexport class UserLoginMigrationApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/UserLoginMigrationController.html":{"url":"controllers/UserLoginMigrationController.html","title":"controller - UserLoginMigrationController","body":"\n \n\n\n\n\n\n\n Controllers\n UserLoginMigrationController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts\n \n\n \n Prefix\n \n \n user-login-migrations\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n closeMigration\n \n \n \n \n \n \n Async\n findUserLoginMigrationBySchool\n \n \n \n \n \n \n \n Async\n getMigrations\n \n \n \n \n \n Async\n migrateUserLogin\n \n \n \n \n \n \n \n \n Async\n restartMigration\n \n \n \n \n \n \n \n \n \n Async\n setMigrationMandatory\n \n \n \n \n \n \n \n Async\n startMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n closeMigration\n \n \n \n \n \n \n \n closeMigration(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Post('close')@ApiUnprocessableEntityResponse({description: 'User login migration is already closed and cannot be modified. Restart is possible.', type: UserLoginMigrationAlreadyClosedLoggableException})@ApiUnprocessableEntityResponse({description: 'User login migration is already closed and cannot be modified. It cannot be restarted.', type: UserLoginMigrationGracePeriodExpiredLoggableException})@ApiNotFoundResponse({description: 'User login migration does not exist', type: UserLoginMigrationNotFoundLoggableException})@ApiOkResponse({description: 'User login migration closed', type: UserLoginMigrationResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:199\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findUserLoginMigrationBySchool\n \n \n \n \n \n \n \n findUserLoginMigrationBySchool(user: ICurrentUser, params: SchoolIdParams)\n \n \n\n \n \n Decorators : \n \n @Get('schools/:schoolId')@ApiForbiddenResponse()@ApiOkResponse({description: 'UserLoginMigrations has been found', type: UserLoginMigrationResponse})@ApiNotFoundResponse({description: 'Cannot find UserLoginMigration'})\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:89\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n SchoolIdParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigrations\n \n \n \n \n \n \n \n getMigrations(user: ICurrentUser, params: UserLoginMigrationSearchParams)\n \n \n\n \n \n Decorators : \n \n @Get()@ApiForbiddenResponse()@ApiOperation({summary: 'Get UserLoginMigrations', description: 'Currently there can only be one migration for a user. Therefore only one migration is returned.'})@ApiOkResponse({description: 'UserLoginMigrations has been found.', type: UserLoginMigrationSearchListResponse})@ApiInternalServerErrorResponse({description: 'Cannot find target system information.'})\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n params\n \n UserLoginMigrationSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrateUserLogin\n \n \n \n \n \n \n \n migrateUserLogin(jwt: string, currentUser: ICurrentUser, body: Oauth2MigrationParams)\n \n \n\n \n \n Decorators : \n \n @Post('migrate-to-oauth2')@ApiOkResponse({description: 'The User has been successfully migrated.', status: 200})@ApiInternalServerErrorResponse({description: 'The migration of the User was not possible.'})\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:214\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n jwt\n \n string\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n Oauth2MigrationParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n restartMigration\n \n \n \n \n \n \n \n restartMigration(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Put('restart')@ApiNotFoundResponse({description: 'User login migration was not found', type: UserLoginMigrationNotFoundLoggableException})@ApiUnprocessableEntityResponse({description: 'Grace period for changing the user login migration is expired', type: UserLoginMigrationGracePeriodExpiredLoggableException})@ApiOkResponse({description: 'User login migration started', type: UserLoginMigrationResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:139\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigrationMandatory\n \n \n \n \n \n \n \n setMigrationMandatory(currentUser: ICurrentUser, body: UserLoginMigrationMandatoryParams)\n \n \n\n \n \n Decorators : \n \n @Put('mandatory')@ApiNotFoundResponse({description: 'User login migration was not found', type: UserLoginMigrationNotFoundLoggableException})@ApiUnprocessableEntityResponse({description: 'Grace period for changing the user login migration is expired', type: UserLoginMigrationGracePeriodExpiredLoggableException})@ApiUnprocessableEntityResponse({description: 'User login migration is already closed and cannot be modified', type: UserLoginMigrationAlreadyClosedLoggableException})@ApiOkResponse({description: 'User login migration is set mandatory/optional', type: UserLoginMigrationResponse})@ApiUnauthorizedResponse()@ApiForbiddenResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:167\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n body\n \n UserLoginMigrationMandatoryParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startMigration\n \n \n \n \n \n \n \n startMigration(currentUser: ICurrentUser)\n \n \n\n \n \n Decorators : \n \n @Post('start')@ApiUnprocessableEntityResponse({description: 'User login migration is already closed and cannot be modified', type: UserLoginMigrationAlreadyClosedLoggableException})@ApiUnprocessableEntityResponse({description: 'School has no official school number', type: SchoolNumberMissingLoggableException})@ApiOkResponse({description: 'User login migration started', type: UserLoginMigrationResponse})@ApiForbiddenResponse()\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-login-migration.controller.ts:115\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, Param, Post, Put, Query } from '@nestjs/common';\nimport {\n\tApiForbiddenResponse,\n\tApiInternalServerErrorResponse,\n\tApiNotFoundResponse,\n\tApiOkResponse,\n\tApiOperation,\n\tApiTags,\n\tApiUnauthorizedResponse,\n\tApiUnprocessableEntityResponse,\n} from '@nestjs/swagger';\nimport { Page, UserLoginMigrationDO } from '@shared/domain';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser, JWT } from '@src/modules/authentication/decorator/auth.decorator';\nimport {\n\tSchoolNumberMissingLoggableException,\n\tUserLoginMigrationAlreadyClosedLoggableException,\n\tUserLoginMigrationGracePeriodExpiredLoggableException,\n\tUserLoginMigrationNotFoundLoggableException,\n} from '../error';\nimport { UserLoginMigrationMapper } from '../mapper';\nimport {\n\tCloseUserLoginMigrationUc,\n\tRestartUserLoginMigrationUc,\n\tStartUserLoginMigrationUc,\n\tToggleUserLoginMigrationUc,\n\tUserLoginMigrationQuery,\n\tUserLoginMigrationUc,\n} from '../uc';\nimport {\n\tUserLoginMigrationResponse,\n\tUserLoginMigrationSearchListResponse,\n\tUserLoginMigrationSearchParams,\n} from './dto';\nimport { Oauth2MigrationParams } from './dto/oauth2-migration.params';\nimport { SchoolIdParams } from './dto/request/school-id.params';\nimport { UserLoginMigrationMandatoryParams } from './dto/request/user-login-migration-mandatory.params';\n\n@ApiTags('UserLoginMigration')\n@Controller('user-login-migrations')\n@Authenticate('jwt')\nexport class UserLoginMigrationController {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationUc: UserLoginMigrationUc,\n\t\tprivate readonly startUserLoginMigrationUc: StartUserLoginMigrationUc,\n\t\tprivate readonly restartUserLoginMigrationUc: RestartUserLoginMigrationUc,\n\t\tprivate readonly toggleUserLoginMigrationUc: ToggleUserLoginMigrationUc,\n\t\tprivate readonly closeUserLoginMigrationUc: CloseUserLoginMigrationUc\n\t) {}\n\n\t@Get()\n\t@ApiForbiddenResponse()\n\t@ApiOperation({\n\t\tsummary: 'Get UserLoginMigrations',\n\t\tdescription: 'Currently there can only be one migration for a user. Therefore only one migration is returned.',\n\t})\n\t@ApiOkResponse({ description: 'UserLoginMigrations has been found.', type: UserLoginMigrationSearchListResponse })\n\t@ApiInternalServerErrorResponse({ description: 'Cannot find target system information.' })\n\tasync getMigrations(\n\t\t@CurrentUser() user: ICurrentUser,\n\t\t@Query() params: UserLoginMigrationSearchParams\n\t): Promise {\n\t\tconst userLoginMigrationQuery: UserLoginMigrationQuery = UserLoginMigrationMapper.mapSearchParamsToQuery(params);\n\n\t\tconst migrationPage: Page = await this.userLoginMigrationUc.getMigrations(\n\t\t\tuser.userId,\n\t\t\tuserLoginMigrationQuery\n\t\t);\n\n\t\tconst migrationResponses: UserLoginMigrationResponse[] = migrationPage.data.map(\n\t\t\t(userLoginMigration: UserLoginMigrationDO) =>\n\t\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(userLoginMigration)\n\t\t);\n\n\t\tconst response: UserLoginMigrationSearchListResponse = new UserLoginMigrationSearchListResponse(\n\t\t\tmigrationResponses,\n\t\t\tmigrationPage.total,\n\t\t\tundefined,\n\t\t\tundefined\n\t\t);\n\n\t\treturn response;\n\t}\n\n\t@Get('schools/:schoolId')\n\t@ApiForbiddenResponse()\n\t@ApiOkResponse({ description: 'UserLoginMigrations has been found', type: UserLoginMigrationResponse })\n\t@ApiNotFoundResponse({ description: 'Cannot find UserLoginMigration' })\n\tasync findUserLoginMigrationBySchool(\n\t\t@CurrentUser() user: ICurrentUser,\n\t\t@Param() params: SchoolIdParams\n\t): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationUc.findUserLoginMigrationBySchool(\n\t\t\tuser.userId,\n\t\t\tparams.schoolId\n\t\t);\n\n\t\tconst response: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(userLoginMigration);\n\n\t\treturn response;\n\t}\n\n\t@Post('start')\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'User login migration is already closed and cannot be modified',\n\t\ttype: UserLoginMigrationAlreadyClosedLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'School has no official school number',\n\t\ttype: SchoolNumberMissingLoggableException,\n\t})\n\t@ApiOkResponse({ description: 'User login migration started', type: UserLoginMigrationResponse })\n\t@ApiForbiddenResponse()\n\tasync startMigration(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst migrationDto: UserLoginMigrationDO = await this.startUserLoginMigrationUc.startMigration(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId\n\t\t);\n\n\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(migrationDto);\n\n\t\treturn migrationResponse;\n\t}\n\n\t@Put('restart')\n\t@ApiNotFoundResponse({\n\t\tdescription: 'User login migration was not found',\n\t\ttype: UserLoginMigrationNotFoundLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'Grace period for changing the user login migration is expired',\n\t\ttype: UserLoginMigrationGracePeriodExpiredLoggableException,\n\t})\n\t@ApiOkResponse({ description: 'User login migration started', type: UserLoginMigrationResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\tasync restartMigration(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst migrationDto: UserLoginMigrationDO = await this.restartUserLoginMigrationUc.restartMigration(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId\n\t\t);\n\n\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(migrationDto);\n\n\t\treturn migrationResponse;\n\t}\n\n\t@Put('mandatory')\n\t@ApiNotFoundResponse({\n\t\tdescription: 'User login migration was not found',\n\t\ttype: UserLoginMigrationNotFoundLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'Grace period for changing the user login migration is expired',\n\t\ttype: UserLoginMigrationGracePeriodExpiredLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'User login migration is already closed and cannot be modified',\n\t\ttype: UserLoginMigrationAlreadyClosedLoggableException,\n\t})\n\t@ApiOkResponse({ description: 'User login migration is set mandatory/optional', type: UserLoginMigrationResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\tasync setMigrationMandatory(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: UserLoginMigrationMandatoryParams\n\t): Promise {\n\t\tconst migrationDto: UserLoginMigrationDO = await this.toggleUserLoginMigrationUc.setMigrationMandatory(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId,\n\t\t\tbody.mandatory\n\t\t);\n\n\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(migrationDto);\n\n\t\treturn migrationResponse;\n\t}\n\n\t@Post('close')\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'User login migration is already closed and cannot be modified. Restart is possible.',\n\t\ttype: UserLoginMigrationAlreadyClosedLoggableException,\n\t})\n\t@ApiUnprocessableEntityResponse({\n\t\tdescription: 'User login migration is already closed and cannot be modified. It cannot be restarted.',\n\t\ttype: UserLoginMigrationGracePeriodExpiredLoggableException,\n\t})\n\t@ApiNotFoundResponse({\n\t\tdescription: 'User login migration does not exist',\n\t\ttype: UserLoginMigrationNotFoundLoggableException,\n\t})\n\t@ApiOkResponse({ description: 'User login migration closed', type: UserLoginMigrationResponse })\n\t@ApiUnauthorizedResponse()\n\t@ApiForbiddenResponse()\n\tasync closeMigration(@CurrentUser() currentUser: ICurrentUser): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO = await this.closeUserLoginMigrationUc.closeMigration(\n\t\t\tcurrentUser.userId,\n\t\t\tcurrentUser.schoolId\n\t\t);\n\n\t\tconst migrationResponse: UserLoginMigrationResponse =\n\t\t\tUserLoginMigrationMapper.mapUserLoginMigrationDoToResponse(userLoginMigration);\n\n\t\treturn migrationResponse;\n\t}\n\n\t@Post('migrate-to-oauth2')\n\t@ApiOkResponse({ description: 'The User has been successfully migrated.', status: 200 })\n\t@ApiInternalServerErrorResponse({ description: 'The migration of the User was not possible.' })\n\tasync migrateUserLogin(\n\t\t@JWT() jwt: string,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Body() body: Oauth2MigrationParams\n\t): Promise {\n\t\tawait this.userLoginMigrationUc.migrate(jwt, currentUser.userId, body.systemId, body.code, body.redirectUri);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationDO.html":{"url":"classes/UserLoginMigrationDO.html","title":"class - UserLoginMigrationDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/user-login-migration.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n closedAt\n \n \n Optional\n finishedAt\n \n \n Optional\n mandatorySince\n \n \n schoolId\n \n \n Optional\n sourceSystemId\n \n \n startedAt\n \n \n targetSystemId\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: UserLoginMigrationDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:17\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n UserLoginMigrationDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:15\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n finishedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n mandatorySince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:11\n \n \n\n\n \n \n \n \n \n \n \n \n schoolId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n sourceSystemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n startedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:13\n \n \n\n\n \n \n \n \n \n \n \n \n targetSystemId\n \n \n \n \n \n \n Type : EntityId\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/user-login-migration.do.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '../types';\nimport { BaseDO } from './base.do';\n\nexport class UserLoginMigrationDO extends BaseDO {\n\tschoolId: EntityId;\n\n\tsourceSystemId?: EntityId;\n\n\ttargetSystemId: EntityId;\n\n\tmandatorySince?: Date;\n\n\tstartedAt: Date;\n\n\tclosedAt?: Date;\n\n\tfinishedAt?: Date;\n\n\tconstructor(props: UserLoginMigrationDO) {\n\t\tsuper(props.id);\n\t\tthis.schoolId = props.schoolId;\n\t\tthis.sourceSystemId = props.sourceSystemId;\n\t\tthis.targetSystemId = props.targetSystemId;\n\t\tthis.mandatorySince = props.mandatorySince;\n\t\tthis.startedAt = props.startedAt;\n\t\tthis.closedAt = props.closedAt;\n\t\tthis.finishedAt = props.finishedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationError.html":{"url":"classes/UserLoginMigrationError.html","title":"class - UserLoginMigrationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/user-login-migration.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(details?: Record)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from '@shared/common';\n\nexport class UserLoginMigrationError extends BusinessError {\n\tconstructor(details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'USER_MIGRATION_FAILED',\n\t\t\t\ttitle: 'Migration failed',\n\t\t\t\tdefaultMessage: 'Migration of user failed during migration process',\n\t\t\t},\n\t\t\tHttpStatus.INTERNAL_SERVER_ERROR,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html":{"url":"classes/UserLoginMigrationGracePeriodExpiredLoggableException.html","title":"class - UserLoginMigrationGracePeriodExpiredLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationGracePeriodExpiredLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/user-login-migration-grace-period-expired-loggable.exception.ts\n \n\n\n\n \n Extends\n \n \n UnprocessableEntityException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationId: EntityId, finishedAt: Date)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-grace-period-expired-loggable.exception.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n finishedAt\n \n \n Date\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-grace-period-expired-loggable.exception.ts:13\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationGracePeriodExpiredLoggableException\n\textends UnprocessableEntityException\n\timplements Loggable\n{\n\tconstructor(private readonly userLoginMigrationId: EntityId, private readonly finishedAt: Date) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'USER_LOGIN_MIGRATION_GRACE_PERIOD_EXPIRED',\n\t\t\tmessage: 'The grace period after finishing the user login migration has expired. It cannot be restarted.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t\tfinishedAt: this.finishedAt.toISOString(),\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationMandatoryLoggable.html":{"url":"classes/UserLoginMigrationMandatoryLoggable.html","title":"class - UserLoginMigrationMandatoryLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationMandatoryLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/loggable/user-login-migration-mandatory.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, userLoginMigrationId: EntityId, mandatory: boolean)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/loggable/user-login-migration-mandatory.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n mandatory\n \n \n boolean\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/loggable/user-login-migration-mandatory.loggable.ts:11\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationMandatoryLoggable implements Loggable {\n\tconstructor(\n\t\tprivate readonly userId: EntityId,\n\t\tprivate readonly userLoginMigrationId: EntityId,\n\t\tprivate readonly mandatory: boolean\n\t) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school administrator changed the requirement status of the user login migration for his school.',\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t\tmandatory: this.mandatory,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationMandatoryParams.html":{"url":"classes/UserLoginMigrationMandatoryParams.html","title":"class - UserLoginMigrationMandatoryParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationMandatoryParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/request/user-login-migration-mandatory.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n mandatory\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n mandatory\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @IsBoolean()@ApiProperty()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/user-login-migration-mandatory.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class UserLoginMigrationMandatoryParams {\n\t@IsBoolean()\n\t@ApiProperty()\n\tmandatory!: boolean;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationMapper.html":{"url":"classes/UserLoginMigrationMapper.html","title":"class - UserLoginMigrationMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/mapper/user-login-migration.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapSearchParamsToQuery\n \n \n Static\n mapUserLoginMigrationDoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapSearchParamsToQuery\n \n \n \n \n \n \n \n mapSearchParamsToQuery(searchParams: UserLoginMigrationSearchParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/mapper/user-login-migration.mapper.ts:6\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n searchParams\n \n UserLoginMigrationSearchParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserLoginMigrationQuery\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapUserLoginMigrationDoToResponse\n \n \n \n \n \n \n \n mapUserLoginMigrationDoToResponse(domainObject: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/mapper/user-login-migration.mapper.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserLoginMigrationResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { UserLoginMigrationDO } from '@shared/domain';\nimport { UserLoginMigrationResponse, UserLoginMigrationSearchParams } from '../controller/dto';\nimport { UserLoginMigrationQuery } from '../uc/dto/user-login-migration-query';\n\nexport class UserLoginMigrationMapper {\n\tstatic mapSearchParamsToQuery(searchParams: UserLoginMigrationSearchParams): UserLoginMigrationQuery {\n\t\tconst query: UserLoginMigrationQuery = {\n\t\t\tuserId: searchParams.userId,\n\t\t};\n\t\treturn query;\n\t}\n\n\tstatic mapUserLoginMigrationDoToResponse(domainObject: UserLoginMigrationDO): UserLoginMigrationResponse {\n\t\tconst response: UserLoginMigrationResponse = new UserLoginMigrationResponse({\n\t\t\tsourceSystemId: domainObject.sourceSystemId,\n\t\t\ttargetSystemId: domainObject.targetSystemId,\n\t\t\tstartedAt: domainObject.startedAt,\n\t\t\tclosedAt: domainObject.closedAt,\n\t\t\tfinishedAt: domainObject.finishedAt,\n\t\t\tmandatorySince: domainObject.mandatorySince,\n\t\t});\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/UserLoginMigrationModule.html":{"url":"modules/UserLoginMigrationModule.html","title":"module - UserLoginMigrationModule","body":"\n \n\n\n\n\n Modules\n UserLoginMigrationModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_UserLoginMigrationModule\n\n\n\ncluster_UserLoginMigrationModule_exports\n\n\n\ncluster_UserLoginMigrationModule_providers\n\n\n\ncluster_UserLoginMigrationModule_imports\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule\n\nUserLoginMigrationModule -->\n\nAccountModule->UserLoginMigrationModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nUserLoginMigrationModule -->\n\nLegacySchoolModule->UserLoginMigrationModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nUserLoginMigrationModule -->\n\nLoggerModule->UserLoginMigrationModule\n\n\n\n\n\nSystemModule\n\nSystemModule\n\nUserLoginMigrationModule -->\n\nSystemModule->UserLoginMigrationModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nUserLoginMigrationModule -->\n\nUserModule->UserLoginMigrationModule\n\n\n\n\n\nMigrationCheckService \n\nMigrationCheckService \n\nMigrationCheckService -->\n\nUserLoginMigrationModule->MigrationCheckService \n\n\n\n\n\nSchoolMigrationService \n\nSchoolMigrationService \n\nSchoolMigrationService -->\n\nUserLoginMigrationModule->SchoolMigrationService \n\n\n\n\n\nUserLoginMigrationRevertService \n\nUserLoginMigrationRevertService \n\nUserLoginMigrationRevertService -->\n\nUserLoginMigrationModule->UserLoginMigrationRevertService \n\n\n\n\n\nUserLoginMigrationService \n\nUserLoginMigrationService \n\nUserLoginMigrationService -->\n\nUserLoginMigrationModule->UserLoginMigrationService \n\n\n\n\n\nUserMigrationService \n\nUserMigrationService \n\nUserMigrationService -->\n\nUserLoginMigrationModule->UserMigrationService \n\n\n\n\n\nMigrationCheckService\n\nMigrationCheckService\n\nUserLoginMigrationModule -->\n\nMigrationCheckService->UserLoginMigrationModule\n\n\n\n\n\nSchoolMigrationService\n\nSchoolMigrationService\n\nUserLoginMigrationModule -->\n\nSchoolMigrationService->UserLoginMigrationModule\n\n\n\n\n\nUserLoginMigrationRepo\n\nUserLoginMigrationRepo\n\nUserLoginMigrationModule -->\n\nUserLoginMigrationRepo->UserLoginMigrationModule\n\n\n\n\n\nUserLoginMigrationRevertService\n\nUserLoginMigrationRevertService\n\nUserLoginMigrationModule -->\n\nUserLoginMigrationRevertService->UserLoginMigrationModule\n\n\n\n\n\nUserLoginMigrationService\n\nUserLoginMigrationService\n\nUserLoginMigrationModule -->\n\nUserLoginMigrationService->UserLoginMigrationModule\n\n\n\n\n\nUserMigrationService\n\nUserMigrationService\n\nUserLoginMigrationModule -->\n\nUserMigrationService->UserLoginMigrationModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user-login-migration/user-login-migration.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n MigrationCheckService\n \n \n SchoolMigrationService\n \n \n UserLoginMigrationRepo\n \n \n UserLoginMigrationRevertService\n \n \n UserLoginMigrationService\n \n \n UserMigrationService\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n SystemModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n MigrationCheckService\n \n \n SchoolMigrationService\n \n \n UserLoginMigrationRevertService\n \n \n UserLoginMigrationService\n \n \n UserMigrationService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { UserLoginMigrationRepo } from '@shared/repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@src/modules/account';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { SystemModule } from '@src/modules/system';\nimport { UserModule } from '@src/modules/user';\nimport {\n\tMigrationCheckService,\n\tSchoolMigrationService,\n\tUserLoginMigrationRevertService,\n\tUserLoginMigrationService,\n\tUserMigrationService,\n} from './service';\n\n@Module({\n\timports: [UserModule, LegacySchoolModule, LoggerModule, AccountModule, SystemModule],\n\tproviders: [\n\t\tUserMigrationService,\n\t\tSchoolMigrationService,\n\t\tMigrationCheckService,\n\t\tUserLoginMigrationService,\n\t\tUserLoginMigrationRepo,\n\t\tUserLoginMigrationRevertService,\n\t],\n\texports: [\n\t\tUserMigrationService,\n\t\tSchoolMigrationService,\n\t\tMigrationCheckService,\n\t\tUserLoginMigrationService,\n\t\tUserLoginMigrationRevertService,\n\t],\n})\nexport class UserLoginMigrationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationNotFoundLoggableException.html":{"url":"classes/UserLoginMigrationNotFoundLoggableException.html","title":"class - UserLoginMigrationNotFoundLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationNotFoundLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/error/user-login-migration-not-found.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n NotFoundException\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolId: EntityId, userLoginMigrationId?: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-not-found.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/error/user-login-migration-not-found.loggable-exception.ts:10\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { NotFoundException } from '@nestjs/common';\nimport { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationNotFoundLoggableException extends NotFoundException implements Loggable {\n\tconstructor(private readonly schoolId: EntityId, private readonly userLoginMigrationId?: EntityId) {\n\t\tsuper();\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\ttype: 'USER_LOGIN_MIGRATION_NOT_FOUND',\n\t\t\tmessage: 'Cannot find requested user login migration for school.',\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\tschoolId: this.schoolId,\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"interfaces/UserLoginMigrationQuery.html":{"url":"interfaces/UserLoginMigrationQuery.html","title":"interface - UserLoginMigrationQuery","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Interfaces\n \n UserLoginMigrationQuery\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/dto/user-login-migration-query.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n \n userId\n \n \n \n \n \n \n \n \n\n\n\n \n Properties\n \n \n \n \n \n userId\n \n \n \n \n \n \n \n \n userId: string\n\n \n \n\n\n \n \n Type : string\n\n \n \n\n \n \n Optional\n \n \n\n\n\n\n \n \n \n \n\n\n \n export interface UserLoginMigrationQuery {\n\tuserId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationRepo.html":{"url":"injectables/UserLoginMigrationRepo.html","title":"injectable - UserLoginMigrationRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/userloginmigration/user-login-migration.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findBySchoolId\n \n \n mapDOToEntityProperties\n \n \n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(_em: EntityManager, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/shared/repo/userloginmigration/user-login-migration.repo.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n _em\n \n \n EntityManager\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IUserLoginMigration)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IUserLoginMigration\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserLoginMigration\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findBySchoolId\n \n \n \n \n \n \n \n findBySchoolId(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/userloginmigration/user-login-migration.repo.ts:23\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapDOToEntityProperties\n \n \n \n \n \n \nmapDOToEntityProperties(entityDO: UserLoginMigrationDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:51\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IUserLoginMigration\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n mapEntityToDO\n \n \n \n \n \n \nmapEntityToDO(entity: UserLoginMigration)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:36\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n UserLoginMigration\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserLoginMigrationDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/userloginmigration/user-login-migration.repo.ts:15\n \n \n\n \n \n\n \n\n\n \n import { EntityName } from '@mikro-orm/core';\nimport { EntityManager } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { EntityId, SchoolEntity, System, UserLoginMigrationDO } from '@shared/domain';\nimport { IUserLoginMigration, UserLoginMigration } from '@shared/domain/entity/user-login-migration.entity';\nimport { LegacyLogger } from '@src/core/logger';\nimport { BaseDORepo } from '../base.do.repo';\n\n@Injectable()\nexport class UserLoginMigrationRepo extends BaseDORepo {\n\tconstructor(protected readonly _em: EntityManager, protected readonly logger: LegacyLogger) {\n\t\tsuper(_em, logger);\n\t}\n\n\tget entityName(): EntityName {\n\t\treturn UserLoginMigration;\n\t}\n\n\tentityFactory(props: IUserLoginMigration): UserLoginMigration {\n\t\treturn new UserLoginMigration(props);\n\t}\n\n\tasync findBySchoolId(schoolId: EntityId): Promise {\n\t\tconst userLoginMigration: UserLoginMigration | null = await this._em.findOne(UserLoginMigration, {\n\t\t\tschool: schoolId,\n\t\t});\n\n\t\tif (userLoginMigration) {\n\t\t\tconst userLoginMigrationDO = this.mapEntityToDO(userLoginMigration);\n\t\t\treturn userLoginMigrationDO;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tmapEntityToDO(entity: UserLoginMigration): UserLoginMigrationDO {\n\t\tconst userLoginMigrationDO: UserLoginMigrationDO = new UserLoginMigrationDO({\n\t\t\tid: entity.id,\n\t\t\tschoolId: entity.school.id,\n\t\t\tsourceSystemId: entity.sourceSystem?.id,\n\t\t\ttargetSystemId: entity.targetSystem.id,\n\t\t\tmandatorySince: entity.mandatorySince,\n\t\t\tstartedAt: entity.startedAt,\n\t\t\tclosedAt: entity.closedAt,\n\t\t\tfinishedAt: entity.finishedAt,\n\t\t});\n\n\t\treturn userLoginMigrationDO;\n\t}\n\n\tmapDOToEntityProperties(entityDO: UserLoginMigrationDO): IUserLoginMigration {\n\t\tconst userLoginMigrationProps: IUserLoginMigration = {\n\t\t\tschool: this._em.getReference(SchoolEntity, entityDO.schoolId),\n\t\t\tsourceSystem: entityDO.sourceSystemId ? this._em.getReference(System, entityDO.sourceSystemId) : undefined,\n\t\t\ttargetSystem: this._em.getReference(System, entityDO.targetSystemId),\n\t\t\tmandatorySince: entityDO.mandatorySince,\n\t\t\tstartedAt: entityDO.startedAt,\n\t\t\tclosedAt: entityDO.closedAt,\n\t\t\tfinishedAt: entityDO.finishedAt,\n\t\t};\n\n\t\treturn userLoginMigrationProps;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationResponse.html":{"url":"classes/UserLoginMigrationResponse.html","title":"class - UserLoginMigrationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n Optional\n finishedAt\n \n \n \n Optional\n mandatorySince\n \n \n \n Optional\n sourceSystemId\n \n \n \n startedAt\n \n \n \n targetSystemId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: UserLoginMigrationResponse)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:32\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n UserLoginMigrationResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n closedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date when the migration was completed'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n finishedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date when the migration was completed including the grace period'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:32\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n mandatorySince\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Date when the migration was marked as required'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:17\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n sourceSystemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'Id of the system which is the origin of the migration'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n \n startedAt\n \n \n \n \n \n \n Type : Date\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Date when the migration was started'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetSystemId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Id of the system which is the target of the migration'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration.response.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class UserLoginMigrationResponse {\n\t@ApiPropertyOptional({\n\t\tdescription: 'Id of the system which is the origin of the migration',\n\t})\n\tsourceSystemId?: string;\n\n\t@ApiProperty({\n\t\tdescription: 'Id of the system which is the target of the migration',\n\t})\n\ttargetSystemId: string;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date when the migration was marked as required',\n\t})\n\tmandatorySince?: Date;\n\n\t@ApiProperty({\n\t\tdescription: 'Date when the migration was started',\n\t})\n\tstartedAt: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date when the migration was completed',\n\t})\n\tclosedAt?: Date;\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'Date when the migration was completed including the grace period',\n\t})\n\tfinishedAt?: Date;\n\n\tconstructor(props: UserLoginMigrationResponse) {\n\t\tthis.sourceSystemId = props.sourceSystemId;\n\t\tthis.targetSystemId = props.targetSystemId;\n\t\tthis.mandatorySince = props.mandatorySince;\n\t\tthis.startedAt = props.startedAt;\n\t\tthis.closedAt = props.closedAt;\n\t\tthis.finishedAt = props.finishedAt;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationRevertService.html":{"url":"injectables/UserLoginMigrationRevertService.html","title":"injectable - UserLoginMigrationRevertService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationRevertService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/user-login-migration-revert.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n revertUserLoginMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userLoginMigrationService: UserLoginMigrationService, schoolService: LegacySchoolService)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration-revert.service.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n revertUserLoginMigration\n \n \n \n \n \n \n \n revertUserLoginMigration(userLoginMigration: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration-revert.service.ts:13\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { SchoolFeatures, UserLoginMigrationDO } from '@shared/domain';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserLoginMigrationService } from './user-login-migration.service';\n\n@Injectable()\nexport class UserLoginMigrationRevertService {\n\tconstructor(\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly schoolService: LegacySchoolService\n\t) {}\n\n\tasync revertUserLoginMigration(userLoginMigration: UserLoginMigrationDO): Promise {\n\t\tawait this.schoolService.removeFeature(userLoginMigration.schoolId, SchoolFeatures.OAUTH_PROVISIONING_ENABLED);\n\t\tawait this.userLoginMigrationService.deleteUserLoginMigration(userLoginMigration);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationRule.html":{"url":"injectables/UserLoginMigrationRule.html","title":"injectable - UserLoginMigrationRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/user-login-migration.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/user-login-migration.rule.ts:8\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: UserLoginMigrationDO, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/user-login-migration.rule.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/user-login-migration.rule.ts:11\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\nimport { UserLoginMigrationDO } from '../domainobject';\nimport { User } from '../entity';\n\n@Injectable()\nexport class UserLoginMigrationRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: UserLoginMigrationDO): boolean {\n\t\tconst isMatched: boolean = entity instanceof UserLoginMigrationDO;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: UserLoginMigrationDO, context: AuthorizationContext): boolean {\n\t\tconst hasPermission: boolean =\n\t\t\tthis.authorizationHelper.hasAllPermissions(user, context.requiredPermissions) &&\n\t\t\tuser.school.id === entity.schoolId;\n\n\t\treturn hasPermission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationSearchListResponse.html":{"url":"classes/UserLoginMigrationSearchListResponse.html","title":"class - UserLoginMigrationSearchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationSearchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration-search-list.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: UserLoginMigrationResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/response/user-login-migration-search-list.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n UserLoginMigrationResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : UserLoginMigrationResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:7\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { PaginationResponse } from '@shared/controller';\nimport { ApiProperty } from '@nestjs/swagger';\nimport { UserLoginMigrationResponse } from './user-login-migration.response';\n\nexport class UserLoginMigrationSearchListResponse extends PaginationResponse {\n\t@ApiProperty({ type: [UserLoginMigrationResponse] })\n\tdata: UserLoginMigrationResponse[];\n\n\tconstructor(data: UserLoginMigrationResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationSearchParams.html":{"url":"classes/UserLoginMigrationSearchParams.html","title":"class - UserLoginMigrationSearchParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationSearchParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/dto/request/user-login-migration-search.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()@IsString()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/controller/dto/request/user-login-migration-search.params.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsOptional, IsString } from 'class-validator';\n\nexport class UserLoginMigrationSearchParams {\n\t@ApiPropertyOptional()\n\t@IsString()\n\t@IsOptional()\n\tuserId?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationService.html":{"url":"injectables/UserLoginMigrationService.html","title":"injectable - UserLoginMigrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n closeMigration\n \n \n Private\n Async\n createNewMigration\n \n \n Async\n deleteUserLoginMigration\n \n \n Private\n enableOauthMigrationFeature\n \n \n Async\n findMigrationBySchool\n \n \n Async\n findMigrationByUser\n \n \n Async\n restartMigration\n \n \n Async\n setMigration\n \n \n Async\n setMigrationMandatory\n \n \n Async\n startMigration\n \n \n Private\n Async\n updateExistingMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userService: UserService, userLoginMigrationRepo: UserLoginMigrationRepo, schoolService: LegacySchoolService, systemService: SystemService, schoolMigrationService: SchoolMigrationService)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n userLoginMigrationRepo\n \n \n UserLoginMigrationRepo\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n closeMigration\n \n \n \n \n \n \n \n closeMigration(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:129\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n createNewMigration\n \n \n \n \n \n \n \n createNewMigration(school: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:149\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteUserLoginMigration\n \n \n \n \n \n \n \n deleteUserLoginMigration(userLoginMigration: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:215\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigration\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n enableOauthMigrationFeature\n \n \n \n \n \n \n \n enableOauthMigrationFeature(schoolDo: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:181\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolDo\n \n LegacySchoolDo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMigrationBySchool\n \n \n \n \n \n \n \n findMigrationBySchool(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:189\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findMigrationByUser\n \n \n \n \n \n \n \n findMigrationByUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:195\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n restartMigration\n \n \n \n \n \n \n \n restartMigration(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigration\n \n \n \n \n \n \n Use the other functions in this class instead.\n \n \n \n \n \n setMigration(schoolId: EntityId, oauthMigrationPossible?: boolean, oauthMigrationMandatory?: boolean, oauthMigrationFinished?: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n oauthMigrationPossible\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n oauthMigrationMandatory\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n oauthMigrationFinished\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n setMigrationMandatory\n \n \n \n \n \n \n \n setMigrationMandatory(schoolId: string, mandatory: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:111\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n mandatory\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n startMigration\n \n \n \n \n \n \n \n startMigration(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateExistingMigration\n \n \n \n \n \n \n \n updateExistingMigration(userLoginMigrationDO: UserLoginMigrationDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-login-migration.service.ts:171\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userLoginMigrationDO\n \n UserLoginMigrationDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : unknown\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { Injectable, InternalServerErrorException, UnprocessableEntityException } from '@nestjs/common';\nimport { EntityId, LegacySchoolDo, SchoolFeatures, SystemTypeEnum, UserDO, UserLoginMigrationDO } from '@shared/domain';\nimport { UserLoginMigrationRepo } from '@shared/repo';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { SystemDto, SystemService } from '@src/modules/system';\nimport { UserService } from '@src/modules/user';\nimport { UserLoginMigrationNotFoundLoggableException } from '../error';\nimport { SchoolMigrationService } from './school-migration.service';\n\n@Injectable()\nexport class UserLoginMigrationService {\n\tconstructor(\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly userLoginMigrationRepo: UserLoginMigrationRepo,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService\n\t) {}\n\n\t/**\n\t * @deprecated Use the other functions in this class instead.\n\t *\n\t * @param schoolId\n\t * @param oauthMigrationPossible\n\t * @param oauthMigrationMandatory\n\t * @param oauthMigrationFinished\n\t */\n\tasync setMigration(\n\t\tschoolId: EntityId,\n\t\toauthMigrationPossible?: boolean,\n\t\toauthMigrationMandatory?: boolean,\n\t\toauthMigrationFinished?: boolean\n\t): Promise {\n\t\tconst schoolDo: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst existingUserLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(\n\t\t\tschoolId\n\t\t);\n\n\t\tlet userLoginMigration: UserLoginMigrationDO;\n\n\t\tif (existingUserLoginMigration) {\n\t\t\tuserLoginMigration = existingUserLoginMigration;\n\t\t} else {\n\t\t\tif (!oauthMigrationPossible) {\n\t\t\t\tthrow new UnprocessableEntityException(`School ${schoolId} has no UserLoginMigration`);\n\t\t\t}\n\n\t\t\tuserLoginMigration = await this.createNewMigration(schoolDo);\n\n\t\t\tthis.enableOauthMigrationFeature(schoolDo);\n\t\t\tawait this.schoolService.save(schoolDo);\n\t\t}\n\n\t\tif (oauthMigrationPossible === true) {\n\t\t\tuserLoginMigration.closedAt = undefined;\n\t\t\tuserLoginMigration.finishedAt = undefined;\n\t\t}\n\n\t\tif (oauthMigrationMandatory !== undefined) {\n\t\t\tuserLoginMigration.mandatorySince = oauthMigrationMandatory ? new Date() : undefined;\n\t\t}\n\n\t\tif (oauthMigrationFinished !== undefined) {\n\t\t\tuserLoginMigration.closedAt = oauthMigrationFinished ? new Date() : undefined;\n\t\t\tuserLoginMigration.finishedAt = oauthMigrationFinished\n\t\t\t\t? new Date(Date.now() + (Configuration.get('MIGRATION_END_GRACE_PERIOD_MS') as number))\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tconst savedMigration: UserLoginMigrationDO = await this.userLoginMigrationRepo.save(userLoginMigration);\n\n\t\tif (oauthMigrationFinished !== undefined) {\n\t\t\t// this would throw an error when executed before the userLoginMigrationRepo.save method.\n\t\t\tawait this.schoolService.removeFeature(schoolId, SchoolFeatures.ENABLE_LDAP_SYNC_DURING_MIGRATION);\n\t\t}\n\n\t\treturn savedMigration;\n\t}\n\n\tasync startMigration(schoolId: string): Promise {\n\t\tconst schoolDo: LegacySchoolDo = await this.schoolService.getSchoolById(schoolId);\n\n\t\tconst userLoginMigrationDO: UserLoginMigrationDO = await this.createNewMigration(schoolDo);\n\n\t\tthis.enableOauthMigrationFeature(schoolDo);\n\t\tawait this.schoolService.save(schoolDo);\n\n\t\tconst userLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationRepo.save(userLoginMigrationDO);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync restartMigration(schoolId: string): Promise {\n\t\tconst existingUserLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!existingUserLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t}\n\n\t\tconst updatedUserLoginMigration = await this.updateExistingMigration(existingUserLoginMigration);\n\n\t\tawait this.schoolMigrationService.unmarkOutdatedUsers(schoolId);\n\n\t\treturn updatedUserLoginMigration;\n\t}\n\n\tasync setMigrationMandatory(schoolId: string, mandatory: boolean): Promise {\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t}\n\n\t\tif (mandatory) {\n\t\t\tuserLoginMigration.mandatorySince = userLoginMigration.mandatorySince ?? new Date();\n\t\t} else {\n\t\t\tuserLoginMigration.mandatorySince = undefined;\n\t\t}\n\n\t\tuserLoginMigration = await this.userLoginMigrationRepo.save(userLoginMigration);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync closeMigration(schoolId: string): Promise {\n\t\tlet userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new UserLoginMigrationNotFoundLoggableException(schoolId);\n\t\t}\n\n\t\tawait this.schoolService.removeFeature(schoolId, SchoolFeatures.ENABLE_LDAP_SYNC_DURING_MIGRATION);\n\n\t\tconst now: Date = new Date();\n\t\tconst gracePeriodDuration: number = Configuration.get('MIGRATION_END_GRACE_PERIOD_MS') as number;\n\n\t\tuserLoginMigration.closedAt = now;\n\t\tuserLoginMigration.finishedAt = new Date(now.getTime() + gracePeriodDuration);\n\n\t\tuserLoginMigration = await this.userLoginMigrationRepo.save(userLoginMigration);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tprivate async createNewMigration(school: LegacySchoolDo): Promise {\n\t\tconst oauthSystems: SystemDto[] = await this.systemService.findByType(SystemTypeEnum.OAUTH);\n\t\tconst sanisSystem: SystemDto | undefined = oauthSystems.find((system: SystemDto) => system.alias === 'SANIS');\n\n\t\tif (!sanisSystem) {\n\t\t\tthrow new InternalServerErrorException('Cannot find SANIS system');\n\t\t}\n\n\t\tconst systemIds: EntityId[] =\n\t\t\tschool.systems?.filter((systemId: EntityId) => systemId !== (sanisSystem.id as string)) || [];\n\t\tconst sourceSystemId = systemIds[0];\n\n\t\tconst userLoginMigrationDO: UserLoginMigrationDO = new UserLoginMigrationDO({\n\t\t\tschoolId: school.id as string,\n\t\t\ttargetSystemId: sanisSystem.id as string,\n\t\t\tsourceSystemId,\n\t\t\tstartedAt: new Date(),\n\t\t});\n\n\t\treturn userLoginMigrationDO;\n\t}\n\n\tprivate async updateExistingMigration(userLoginMigrationDO: UserLoginMigrationDO) {\n\t\tuserLoginMigrationDO.startedAt = new Date();\n\t\tuserLoginMigrationDO.closedAt = undefined;\n\t\tuserLoginMigrationDO.finishedAt = undefined;\n\n\t\tconst userLoginMigration: UserLoginMigrationDO = await this.userLoginMigrationRepo.save(userLoginMigrationDO);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tprivate enableOauthMigrationFeature(schoolDo: LegacySchoolDo) {\n\t\tif (schoolDo.features && !schoolDo.features.includes(SchoolFeatures.OAUTH_PROVISIONING_ENABLED)) {\n\t\t\tschoolDo.features.push(SchoolFeatures.OAUTH_PROVISIONING_ENABLED);\n\t\t} else {\n\t\t\tschoolDo.features = [SchoolFeatures.OAUTH_PROVISIONING_ENABLED];\n\t\t}\n\t}\n\n\tasync findMigrationBySchool(schoolId: string): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationRepo.findBySchoolId(schoolId);\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync findMigrationByUser(userId: EntityId): Promise {\n\t\tconst userDO: UserDO = await this.userService.findById(userId);\n\t\tconst { schoolId } = userDO;\n\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.findMigrationBySchool(schoolId);\n\n\t\tif (!userLoginMigration) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst hasUserMigrated: boolean =\n\t\t\t!!userDO.lastLoginSystemChange && userDO.lastLoginSystemChange > userLoginMigration.startedAt;\n\n\t\tif (hasUserMigrated) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync deleteUserLoginMigration(userLoginMigration: UserLoginMigrationDO): Promise {\n\t\tawait this.userLoginMigrationRepo.delete(userLoginMigration);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserLoginMigrationStartLoggable.html":{"url":"classes/UserLoginMigrationStartLoggable.html","title":"class - UserLoginMigrationStartLoggable","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserLoginMigrationStartLoggable\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/loggable/user-login-migration-start.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userId: EntityId, userLoginMigrationId: EntityId)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/loggable/user-login-migration-start.loggable.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n userLoginMigrationId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/loggable/user-login-migration-start.loggable.ts:7\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserLoginMigrationStartLoggable implements Loggable {\n\tconstructor(private readonly userId: EntityId, private readonly userLoginMigrationId: EntityId) {}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'The school administrator started the migration for his school.',\n\t\t\tdata: {\n\t\t\t\tuserId: this.userId,\n\t\t\t\tuserLoginMigrationId: this.userLoginMigrationId,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserLoginMigrationUc.html":{"url":"injectables/UserLoginMigrationUc.html","title":"injectable - UserLoginMigrationUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserLoginMigrationUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findUserLoginMigrationBySchool\n \n \n Async\n getMigrations\n \n \n Async\n getPageContent\n \n \n Private\n logMigrationInformation\n \n \n Async\n migrate\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userMigrationService: UserMigrationService, userLoginMigrationService: UserLoginMigrationService, oauthService: OAuthService, provisioningService: ProvisioningService, schoolMigrationService: SchoolMigrationService, authenticationService: AuthenticationService, authorizationService: AuthorizationService, logger: LegacyLogger)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:18\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userMigrationService\n \n \n UserMigrationService\n \n \n \n No\n \n \n \n \n userLoginMigrationService\n \n \n UserLoginMigrationService\n \n \n \n No\n \n \n \n \n oauthService\n \n \n OAuthService\n \n \n \n No\n \n \n \n \n provisioningService\n \n \n ProvisioningService\n \n \n \n No\n \n \n \n \n schoolMigrationService\n \n \n SchoolMigrationService\n \n \n \n No\n \n \n \n \n authenticationService\n \n \n AuthenticationService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findUserLoginMigrationBySchool\n \n \n \n \n \n \n \n findUserLoginMigrationBySchool(userId: EntityId, schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:60\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigrations\n \n \n \n \n \n \n \n getMigrations(userId: EntityId, query: UserLoginMigrationQuery)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n query\n \n UserLoginMigrationQuery\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getPageContent\n \n \n \n \n \n \n \n getPageContent(pageType: PageTypes, sourceSystem: string, targetSystem: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pageType\n \n PageTypes\n \n\n \n No\n \n\n\n \n \n sourceSystem\n \n string\n \n\n \n No\n \n\n\n \n \n targetSystem\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n logMigrationInformation\n \n \n \n \n \n \n \n logMigrationInformation(userId: string, text?: string, oauthData?: OauthDataDto, targetSystemId?: string, school?: LegacySchoolDo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:155\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n text\n \n string\n \n\n \n Yes\n \n\n\n \n \n oauthData\n \n OauthDataDto\n \n\n \n Yes\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n Yes\n \n\n\n \n \n school\n \n LegacySchoolDo\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrate\n \n \n \n \n \n \n \n migrate(userJwt: string, currentUserId: string, targetSystemId: EntityId, code: string, redirectUri: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/uc/user-login-migration.uc.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userJwt\n \n string\n \n\n \n No\n \n\n\n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n code\n \n string\n \n\n \n No\n \n\n\n \n \n redirectUri\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { NotFoundLoggableException } from '@shared/common/loggable-exception';\nimport { EntityId, Page, Permission, LegacySchoolDo, User, UserLoginMigrationDO } from '@shared/domain';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AuthenticationService } from '@src/modules/authentication/services/authentication.service';\nimport { Action, AuthorizationService } from '@src/modules/authorization';\nimport { OAuthTokenDto } from '@src/modules/oauth';\nimport { OAuthService } from '@src/modules/oauth/service/oauth.service';\nimport { ProvisioningService } from '@src/modules/provisioning';\nimport { OauthDataDto } from '@src/modules/provisioning/dto';\nimport { OAuthMigrationError, SchoolMigrationError, UserLoginMigrationError } from '../error';\nimport { PageTypes } from '../interface/page-types.enum';\nimport { SchoolMigrationService, UserLoginMigrationService, UserMigrationService } from '../service';\nimport { MigrationDto, PageContentDto } from '../service/dto';\nimport { UserLoginMigrationQuery } from './dto';\n\n@Injectable()\nexport class UserLoginMigrationUc {\n\tconstructor(\n\t\tprivate readonly userMigrationService: UserMigrationService,\n\t\tprivate readonly userLoginMigrationService: UserLoginMigrationService,\n\t\tprivate readonly oauthService: OAuthService,\n\t\tprivate readonly provisioningService: ProvisioningService,\n\t\tprivate readonly schoolMigrationService: SchoolMigrationService,\n\t\tprivate readonly authenticationService: AuthenticationService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly logger: LegacyLogger\n\t) {}\n\n\tasync getPageContent(pageType: PageTypes, sourceSystem: string, targetSystem: string): Promise {\n\t\tconst content: PageContentDto = await this.userMigrationService.getPageContent(\n\t\t\tpageType,\n\t\t\tsourceSystem,\n\t\t\ttargetSystem\n\t\t);\n\n\t\treturn content;\n\t}\n\n\tasync getMigrations(userId: EntityId, query: UserLoginMigrationQuery): Promise> {\n\t\tlet page = new Page([], 0);\n\n\t\tif (query.userId) {\n\t\t\tif (userId !== query.userId) {\n\t\t\t\tthrow new ForbiddenException('Accessing migration status of another user is forbidden.');\n\t\t\t}\n\n\t\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationByUser(\n\t\t\t\tquery.userId\n\t\t\t);\n\n\t\t\tif (userLoginMigration) {\n\t\t\t\tpage = new Page([userLoginMigration], 1);\n\t\t\t}\n\t\t}\n\n\t\treturn page;\n\t}\n\n\tasync findUserLoginMigrationBySchool(userId: EntityId, schoolId: EntityId): Promise {\n\t\tconst userLoginMigration: UserLoginMigrationDO | null = await this.userLoginMigrationService.findMigrationBySchool(\n\t\t\tschoolId\n\t\t);\n\n\t\tif (!userLoginMigration) {\n\t\t\tthrow new NotFoundLoggableException('UserLoginMigration', 'schoolId', schoolId);\n\t\t}\n\n\t\tconst user: User = await this.authorizationService.getUserWithPermissions(userId);\n\t\tthis.authorizationService.checkPermission(user, userLoginMigration, {\n\t\t\trequiredPermissions: [Permission.USER_LOGIN_MIGRATION_ADMIN],\n\t\t\taction: Action.read,\n\t\t});\n\n\t\treturn userLoginMigration;\n\t}\n\n\tasync migrate(\n\t\tuserJwt: string,\n\t\tcurrentUserId: string,\n\t\ttargetSystemId: EntityId,\n\t\tcode: string,\n\t\tredirectUri: string\n\t): Promise {\n\t\tconst tokenDto: OAuthTokenDto = await this.oauthService.authenticateUser(targetSystemId, redirectUri, code);\n\n\t\tthis.logMigrationInformation(currentUserId, `Migrates to targetSystem with id ${targetSystemId}`);\n\n\t\tconst data: OauthDataDto = await this.provisioningService.getData(\n\t\t\ttargetSystemId,\n\t\t\ttokenDto.idToken,\n\t\t\ttokenDto.accessToken\n\t\t);\n\n\t\tthis.logMigrationInformation(currentUserId, undefined, data, targetSystemId);\n\n\t\tif (data.externalSchool) {\n\t\t\tlet schoolToMigrate: LegacySchoolDo | null;\n\t\t\t// TODO: N21-820 after fully switching to the new client login flow, try/catch will be obsolete and schoolToMigrate should throw correct errors\n\t\t\ttry {\n\t\t\t\tschoolToMigrate = await this.schoolMigrationService.schoolToMigrate(\n\t\t\t\t\tcurrentUserId,\n\t\t\t\t\tdata.externalSchool.externalId,\n\t\t\t\t\tdata.externalSchool.officialSchoolNumber\n\t\t\t\t);\n\t\t\t} catch (error: unknown) {\n\t\t\t\tlet details: Record | undefined;\n\n\t\t\t\tif (\n\t\t\t\t\terror instanceof OAuthMigrationError &&\n\t\t\t\t\terror.officialSchoolNumberFromSource &&\n\t\t\t\t\terror.officialSchoolNumberFromTarget\n\t\t\t\t) {\n\t\t\t\t\tdetails = {\n\t\t\t\t\t\tsourceSchoolNumber: error.officialSchoolNumberFromSource,\n\t\t\t\t\t\ttargetSchoolNumber: error.officialSchoolNumberFromTarget,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthrow new SchoolMigrationError(details, error);\n\t\t\t}\n\n\t\t\tthis.logMigrationInformation(\n\t\t\t\tcurrentUserId,\n\t\t\t\t`Found school with officialSchoolNumber (${data.externalSchool.officialSchoolNumber ?? ''})`\n\t\t\t);\n\n\t\t\tif (schoolToMigrate) {\n\t\t\t\tawait this.schoolMigrationService.migrateSchool(\n\t\t\t\t\tdata.externalSchool.externalId,\n\t\t\t\t\tschoolToMigrate,\n\t\t\t\t\ttargetSystemId\n\t\t\t\t);\n\n\t\t\t\tthis.logMigrationInformation(currentUserId, undefined, data, data.system.systemId, schoolToMigrate);\n\t\t\t}\n\t\t}\n\n\t\tconst migrationDto: MigrationDto = await this.userMigrationService.migrateUser(\n\t\t\tcurrentUserId,\n\t\t\tdata.externalUser.externalId,\n\t\t\ttargetSystemId\n\t\t);\n\n\t\t// TODO: N21-820 after implementation of new client login flow, redirects will be obsolete and migrate should throw errors directly\n\t\tif (migrationDto.redirect.includes('migration/error')) {\n\t\t\tthrow new UserLoginMigrationError({ userId: currentUserId });\n\t\t}\n\n\t\tthis.logMigrationInformation(currentUserId, `Successfully migrated user and redirects to ${migrationDto.redirect}`);\n\n\t\tawait this.authenticationService.removeJwtFromWhitelist(userJwt);\n\t}\n\n\tprivate logMigrationInformation(\n\t\tuserId: string,\n\t\ttext?: string,\n\t\toauthData?: OauthDataDto,\n\t\ttargetSystemId?: string,\n\t\tschool?: LegacySchoolDo\n\t) {\n\t\tlet message = `MIGRATION (userId: ${userId}): ${text ?? ''}`;\n\t\tif (!school && oauthData) {\n\t\t\tmessage += `Provisioning data received from targetSystem (${targetSystemId ?? 'N/A'} with data: \n\t\t\t{ \n\t\t\t\t\"officialSchoolNumber\": ${oauthData.externalSchool?.officialSchoolNumber ?? 'N/A'},\n\t\t\t\t\"externalSchoolId\": ${oauthData.externalSchool?.externalId ?? ''}\n\t\t\t\t\"externalUserId\": ${oauthData.externalUser.externalId},\n\t\t\t})`;\n\t\t}\n\t\tif (school && oauthData) {\n\t\t\tmessage += `Successfully migrated school (${school.name} - (${school.id ?? 'N/A'}) to targetSystem ${\n\t\t\t\ttargetSystemId ?? 'N/A'\n\t\t\t} which has the externalSchoolId ${oauthData.externalSchool?.externalId ?? 'N/A'}`;\n\t\t}\n\t\tthis.logger.debug(message);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMapper.html":{"url":"classes/UserMapper.html","title":"class - UserMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/mapper/user.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapFromEntityToDto\n \n \n \n \n \n \n \n mapFromEntityToDto(entity: User)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/mapper/user.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserDto\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Role, User } from '@shared/domain';\nimport { UserDto } from '@src/modules/user/uc/dto/user.dto';\n\nexport class UserMapper {\n\tstatic mapFromEntityToDto(entity: User): UserDto {\n\t\treturn new UserDto({\n\t\t\tid: entity.id,\n\t\t\temail: entity.email,\n\t\t\tfirstName: entity.firstName,\n\t\t\tlastName: entity.lastName,\n\t\t\tschoolId: entity.school.id,\n\t\t\troleIds: entity.roles.getItems().map((role: Role) => role.id),\n\t\t\tldapDn: entity.ldapDn,\n\t\t\texternalId: entity.externalId,\n\t\t\tlanguage: entity.language,\n\t\t\tforcePasswordChange: entity.forcePasswordChange,\n\t\t\tpreferences: entity.preferences,\n\t\t\tlastLoginSystemChange: entity.lastLoginSystemChange,\n\t\t\toutdatedSince: entity.outdatedSince,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMatchListResponse.html":{"url":"classes/UserMatchListResponse.html","title":"class - UserMatchListResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMatchListResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/user-match.response.ts\n \n\n\n\n \n Extends\n \n \n PaginationResponse\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n data\n \n \n \n Optional\n limit\n \n \n \n Optional\n skip\n \n \n \n total\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(data: UserMatchResponse[], total: number, skip?: number, limit?: number)\n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:44\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n data\n \n \n UserMatchResponse[]\n \n \n \n No\n \n \n \n \n total\n \n \n number\n \n \n \n No\n \n \n \n \n skip\n \n \n number\n \n \n \n Yes\n \n \n \n \n limit\n \n \n number\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n data\n \n \n \n \n \n \n Type : UserMatchResponse[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({type: undefined})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:51\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n limit\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The page size of the response.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:20\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n skip\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The amount of items skipped from the start.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:17\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n total\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The total amount of items.', type: 'number'})\n \n \n \n \n \n Inherited from PaginationResponse\n\n \n \n \n \n Defined in PaginationResponse:14\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { IsMongoId } from 'class-validator';\nimport { MatchType } from './match-type';\nimport { UserRole } from './user-role';\n\nexport class UserMatchResponse {\n\tconstructor(props: UserMatchResponse) {\n\t\tthis.userId = props.userId;\n\t\tthis.loginName = props.loginName;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.roleNames = props.roleNames;\n\t\tif (props.matchedBy != null) this.matchedBy = props.matchedBy;\n\t}\n\n\t@IsMongoId()\n\t@ApiProperty({ description: 'local user id' })\n\tuserId: string;\n\n\t@ApiProperty({ description: 'login name of local user' })\n\tloginName: string;\n\n\t@ApiProperty({ description: 'firstname of local user' })\n\tfirstName: string;\n\n\t@ApiProperty({ description: 'lastname of local user' })\n\tlastName: string;\n\n\t@ApiProperty({\n\t\tdescription: 'list of user roles from external system: student, teacher, admin',\n\t\tenum: UserRole,\n\t\tisArray: true,\n\t})\n\troleNames: UserRole[];\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'match type: admin (manual) or auto (set, when names match exactly for a single user',\n\t\tenum: MatchType,\n\t})\n\tmatchedBy?: MatchType;\n}\n\nexport class UserMatchListResponse extends PaginationResponse {\n\tconstructor(data: UserMatchResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [UserMatchResponse] })\n\tdata: UserMatchResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMatchMapper.html":{"url":"classes/UserMatchMapper.html","title":"class - UserMatchMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMatchMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/mapper/user-match.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToDomain\n \n \n Static\n mapToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToDomain\n \n \n \n \n \n \n \n mapToDomain(query: FilterUserParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/user-match.mapper.ts:8\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterUserParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : INameMatch\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToResponse\n \n \n \n \n \n \n \n mapToResponse(user: User, matchCreator?: MatchCreator)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/mapper/user-match.mapper.ts:20\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n matchCreator\n \n MatchCreator\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserMatchResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { StringValidator } from '@shared/common';\nimport { INameMatch, MatchCreator, User } from '@shared/domain';\nimport { UserRole, UserMatchResponse } from '../controller/dto';\nimport { FilterUserParams } from '../controller/dto/filter-user.params';\nimport { ImportUserMatchMapper } from './match.mapper';\n\nexport class UserMatchMapper {\n\tstatic mapToDomain(query: FilterUserParams): INameMatch {\n\t\tconst scope: INameMatch = {};\n\t\tif (query.name) {\n\t\t\tif (StringValidator.isNotEmptyString(query.name, true)) {\n\t\t\t\tscope.name = query.name;\n\t\t\t} else {\n\t\t\t\tthrow Error('invalid name from query');\n\t\t\t}\n\t\t}\n\t\treturn scope;\n\t}\n\n\tstatic mapToResponse(user: User, matchCreator?: MatchCreator): UserMatchResponse {\n\t\tconst domainRoles = user.roles.getItems(true);\n\t\tconst domainRoleNames = domainRoles.map((role) => role.name);\n\t\tconst roleNames: UserRole[] = domainRoleNames\n\t\t\t.map((roleName) => {\n\t\t\t\tswitch (roleName) {\n\t\t\t\t\tcase 'teacher':\n\t\t\t\t\t\treturn UserRole.TEACHER;\n\t\t\t\t\tcase 'administrator':\n\t\t\t\t\t\treturn UserRole.ADMIN;\n\t\t\t\t\tcase 'student':\n\t\t\t\t\t\treturn UserRole.STUDENT;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.filter((roleName) => roleName != null) as UserRole[];\n\t\tconst dto = new UserMatchResponse({\n\t\t\tuserId: user.id,\n\t\t\tfirstName: user.firstName,\n\t\t\tlastName: user.lastName,\n\t\t\tloginName: user.email,\n\t\t\troleNames,\n\t\t});\n\t\tif (matchCreator != null) {\n\t\t\tconst matchedBy = ImportUserMatchMapper.mapMatchCreatorToResponse(matchCreator);\n\t\t\tdto.matchedBy = matchedBy;\n\t\t}\n\t\treturn dto;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMatchResponse.html":{"url":"classes/UserMatchResponse.html","title":"class - UserMatchResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMatchResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/controller/dto/user-match.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n firstName\n \n \n \n lastName\n \n \n \n loginName\n \n \n \n Optional\n matchedBy\n \n \n \n roleNames\n \n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: UserMatchResponse)\n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n UserMatchResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n firstName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'firstname of local user'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n \n lastName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'lastname of local user'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:28\n \n \n\n\n \n \n \n \n \n \n \n \n \n loginName\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'login name of local user'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:22\n \n \n\n\n \n \n \n \n \n \n \n \n \n Optional\n matchedBy\n \n \n \n \n \n \n Type : MatchType\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'match type: admin (manual) or auto (set, when names match exactly for a single user', enum: MatchType})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:41\n \n \n\n\n \n \n \n \n \n \n \n \n \n roleNames\n \n \n \n \n \n \n Type : UserRole[]\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'list of user roles from external system: student, teacher, admin', enum: UserRole, isArray: true})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:35\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'local user id'})\n \n \n \n \n \n Defined in apps/server/src/modules/user-import/controller/dto/user-match.response.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { PaginationResponse } from '@shared/controller';\nimport { IsMongoId } from 'class-validator';\nimport { MatchType } from './match-type';\nimport { UserRole } from './user-role';\n\nexport class UserMatchResponse {\n\tconstructor(props: UserMatchResponse) {\n\t\tthis.userId = props.userId;\n\t\tthis.loginName = props.loginName;\n\t\tthis.firstName = props.firstName;\n\t\tthis.lastName = props.lastName;\n\t\tthis.roleNames = props.roleNames;\n\t\tif (props.matchedBy != null) this.matchedBy = props.matchedBy;\n\t}\n\n\t@IsMongoId()\n\t@ApiProperty({ description: 'local user id' })\n\tuserId: string;\n\n\t@ApiProperty({ description: 'login name of local user' })\n\tloginName: string;\n\n\t@ApiProperty({ description: 'firstname of local user' })\n\tfirstName: string;\n\n\t@ApiProperty({ description: 'lastname of local user' })\n\tlastName: string;\n\n\t@ApiProperty({\n\t\tdescription: 'list of user roles from external system: student, teacher, admin',\n\t\tenum: UserRole,\n\t\tisArray: true,\n\t})\n\troleNames: UserRole[];\n\n\t@ApiPropertyOptional({\n\t\tdescription: 'match type: admin (manual) or auto (set, when names match exactly for a single user',\n\t\tenum: MatchType,\n\t})\n\tmatchedBy?: MatchType;\n}\n\nexport class UserMatchListResponse extends PaginationResponse {\n\tconstructor(data: UserMatchResponse[], total: number, skip?: number, limit?: number) {\n\t\tsuper(total, skip, limit);\n\t\tthis.data = data;\n\t}\n\n\t@ApiProperty({ type: [UserMatchResponse] })\n\tdata: UserMatchResponse[];\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/UserMigrationController.html":{"url":"controllers/UserMigrationController.html","title":"controller - UserMigrationController","body":"\n \n\n\n\n\n\n\n Controllers\n UserMigrationController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/controller/user-migration.controller.ts\n \n\n \n Prefix\n \n \n user-migration\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n Async\n getMigrationPageDetails\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n Async\n getMigrationPageDetails\n \n \n \n \n \n \n \n getMigrationPageDetails(pageTypeQuery: PageContentQueryParams)\n \n \n\n \n \n Decorators : \n \n @Get('page-content')\n \n \n\n \n \n Defined in apps/server/src/modules/user-login-migration/controller/user-migration.controller.ts:17\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pageTypeQuery\n \n PageContentQueryParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Controller, Get, Query } from '@nestjs/common';\nimport { ApiTags } from '@nestjs/swagger';\nimport { PageContentMapper } from '../mapper';\nimport { PageContentDto } from '../service/dto';\nimport { UserLoginMigrationUc } from '../uc/user-login-migration.uc';\nimport { PageContentQueryParams, PageContentResponse } from './dto';\n\n@ApiTags('UserMigration')\n@Controller('user-migration')\n/**\n * @Deprecated\n */\nexport class UserMigrationController {\n\tconstructor(private readonly uc: UserLoginMigrationUc, private readonly pageContentMapper: PageContentMapper) {}\n\n\t@Get('page-content')\n\tasync getMigrationPageDetails(@Query() pageTypeQuery: PageContentQueryParams): Promise {\n\t\tconst content: PageContentDto = await this.uc.getPageContent(\n\t\t\tpageTypeQuery.pageType,\n\t\t\tpageTypeQuery.sourceSystem,\n\t\t\tpageTypeQuery.targetSystem\n\t\t);\n\n\t\tconst response: PageContentResponse = this.pageContentMapper.mapDtoToResponse(content);\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMigrationIsNotEnabled.html":{"url":"classes/UserMigrationIsNotEnabled.html","title":"class - UserMigrationIsNotEnabled","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMigrationIsNotEnabled\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-import/loggable/user-migration-not-enable.loggable.ts\n \n\n\n\n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-import/loggable/user-migration-not-enable.loggable.ts:4\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\n\nexport class UserMigrationIsNotEnabled implements Loggable {\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: 'Feature flag of user migration may be disable or the school is not an LDAP pilot',\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMigrationMapper.html":{"url":"classes/UserMigrationMapper.html","title":"class - UserMigrationMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMigrationMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/mapper/user-migration.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapDtoToResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapDtoToResponse\n \n \n \n \n \n \n \n mapDtoToResponse(dto: MigrationDto)\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/mapper/user-migration.mapper.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n MigrationDto\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserMigrationResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { MigrationDto } from '@src/modules/user-login-migration/service/dto';\nimport { UserMigrationResponse } from '../controller/dto';\n\nexport class UserMigrationMapper {\n\tstatic mapDtoToResponse(dto: MigrationDto): UserMigrationResponse {\n\t\tconst response: UserMigrationResponse = new UserMigrationResponse({\n\t\t\tredirect: dto.redirect,\n\t\t});\n\n\t\treturn response;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserMigrationResponse.html":{"url":"classes/UserMigrationResponse.html","title":"class - UserMigrationResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserMigrationResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/controller/dto/user-migration.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n redirect\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(props: UserMigrationResponse)\n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/user-migration.response.ts:1\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n \n UserMigrationResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n redirect\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/oauth/controller/dto/user-migration.response.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n export class UserMigrationResponse {\n\tconstructor(props: UserMigrationResponse) {\n\t\tthis.redirect = props.redirect;\n\t}\n\n\tredirect: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserMigrationService.html":{"url":"injectables/UserMigrationService.html","title":"injectable - UserMigrationService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserMigrationService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user-login-migration/service/user-migration.service.ts\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n Readonly\n dashboardUrl\n \n \n Private\n Readonly\n hostUrl\n \n \n Private\n Readonly\n loginUrl\n \n \n Private\n Readonly\n logoutUrl\n \n \n Private\n Readonly\n publicBackendUrl\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n createUserMigrationDto\n \n \n Private\n Async\n doMigration\n \n \n Private\n getLoginUrl\n \n \n Async\n getMigrationConsentPageRedirect\n \n \n getMigrationRedirectUri\n \n \n Async\n getPageContent\n \n \n Async\n migrateUser\n \n \n Private\n Async\n rollbackMigration\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(schoolService: LegacySchoolService, systemService: SystemService, userService: UserService, logger: LegacyLogger, accountService: AccountService)\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:29\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n systemService\n \n \n SystemService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n logger\n \n \n LegacyLogger\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n createUserMigrationDto\n \n \n \n \n \n \n \n createUserMigrationDto(urlPath: string, sourceSystemId: string, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:159\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n urlPath\n \n string\n \n\n \n No\n \n\n\n \n \n sourceSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : MigrationDto\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n doMigration\n \n \n \n \n \n \n \n doMigration(userDO: UserDO, externalUserId: string, account: AccountDto, targetSystemId: string, accountId?: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:135\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userDO\n \n UserDO\n \n\n \n No\n \n\n\n \n \n externalUserId\n \n string\n \n\n \n No\n \n\n\n \n \n account\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n accountId\n \n EntityId\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n getLoginUrl\n \n \n \n \n \n \n \n getLoginUrl(system: SystemDto, postLoginRedirect?: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:169\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n system\n \n SystemDto\n \n\n \n No\n \n\n\n \n \n postLoginRedirect\n \n string\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getMigrationConsentPageRedirect\n \n \n \n \n \n \n \n getMigrationConsentPageRedirect(officialSchoolNumber: string, originSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:42\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n officialSchoolNumber\n \n string\n \n\n \n No\n \n\n\n \n \n originSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getMigrationRedirectUri\n \n \n \n \n \n \ngetMigrationRedirectUri()\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:91\n \n \n\n\n \n \n\n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n Async\n getPageContent\n \n \n \n \n \n \n \n getPageContent(pageType: PageTypes, sourceId: string, targetId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n pageType\n \n PageTypes\n \n\n \n No\n \n\n\n \n \n sourceId\n \n string\n \n\n \n No\n \n\n\n \n \n targetId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n migrateUser\n \n \n \n \n \n \n \n migrateUser(currentUserId: string, externalUserId: string, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:97\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n string\n \n\n \n No\n \n\n\n \n \n externalUserId\n \n string\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n rollbackMigration\n \n \n \n \n \n \n \n rollbackMigration(userDOCopy: UserDO, accountCopy: AccountDto, targetSystemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:119\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userDOCopy\n \n UserDO\n \n\n \n No\n \n\n\n \n \n accountCopy\n \n AccountDto\n \n\n \n No\n \n\n\n \n \n targetSystemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n Readonly\n dashboardUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '/dashboard'\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:25\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n hostUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n loginUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '/login'\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:29\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n logoutUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : '/logout'\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n Readonly\n publicBackendUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/user-login-migration/service/user-migration.service.ts:23\n \n \n\n\n \n \n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { BadRequestException, Injectable, NotFoundException, UnprocessableEntityException } from '@nestjs/common';\nimport { LegacySchoolDo } from '@shared/domain';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { LegacyLogger } from '@src/core/logger';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { SystemDto, SystemService } from '@src/modules/system/service';\nimport { UserService } from '@src/modules/user';\nimport { EntityId } from '@src/shared/domain/types';\nimport { PageTypes } from '../interface/page-types.enum';\nimport { MigrationDto } from './dto/migration.dto';\nimport { PageContentDto } from './dto/page-content.dto';\n\n@Injectable()\n/**\n * @deprecated\n */\nexport class UserMigrationService {\n\tprivate readonly hostUrl: string;\n\n\tprivate readonly publicBackendUrl: string;\n\n\tprivate readonly dashboardUrl: string = '/dashboard';\n\n\tprivate readonly logoutUrl: string = '/logout';\n\n\tprivate readonly loginUrl: string = '/login';\n\n\tconstructor(\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly systemService: SystemService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly logger: LegacyLogger,\n\t\tprivate readonly accountService: AccountService\n\t) {\n\t\tthis.hostUrl = Configuration.get('HOST') as string;\n\t\tthis.publicBackendUrl = Configuration.get('PUBLIC_BACKEND_URL') as string;\n\t}\n\n\tasync getMigrationConsentPageRedirect(officialSchoolNumber: string, originSystemId: string): Promise {\n\t\tconst school: LegacySchoolDo | null = await this.schoolService.getSchoolBySchoolNumber(officialSchoolNumber);\n\n\t\tif (!school || !school.id) {\n\t\t\tthrow new NotFoundException(`School with offical school number ${officialSchoolNumber} does not exist.`);\n\t\t}\n\n\t\tconst url = new URL('/migration', this.hostUrl);\n\t\turl.searchParams.append('origin', originSystemId);\n\t\treturn url.toString();\n\t}\n\n\tasync getPageContent(pageType: PageTypes, sourceId: string, targetId: string): Promise {\n\t\tconst sourceSystem: SystemDto = await this.systemService.findById(sourceId);\n\t\tconst targetSystem: SystemDto = await this.systemService.findById(targetId);\n\n\t\tconst targetSystemLoginUrl: string = this.getLoginUrl(targetSystem);\n\n\t\tswitch (pageType) {\n\t\t\tcase PageTypes.START_FROM_TARGET_SYSTEM: {\n\t\t\t\tconst sourceSystemLoginUrl: string = this.getLoginUrl(sourceSystem, targetSystemLoginUrl.toString());\n\n\t\t\t\tconst content: PageContentDto = new PageContentDto({\n\t\t\t\t\tproceedButtonUrl: sourceSystemLoginUrl.toString(),\n\t\t\t\t\tcancelButtonUrl: this.loginUrl,\n\t\t\t\t});\n\t\t\t\treturn content;\n\t\t\t}\n\t\t\tcase PageTypes.START_FROM_SOURCE_SYSTEM: {\n\t\t\t\tconst content: PageContentDto = new PageContentDto({\n\t\t\t\t\tproceedButtonUrl: targetSystemLoginUrl.toString(),\n\t\t\t\t\tcancelButtonUrl: this.dashboardUrl,\n\t\t\t\t});\n\t\t\t\treturn content;\n\t\t\t}\n\t\t\tcase PageTypes.START_FROM_SOURCE_SYSTEM_MANDATORY: {\n\t\t\t\tconst content: PageContentDto = new PageContentDto({\n\t\t\t\t\tproceedButtonUrl: targetSystemLoginUrl.toString(),\n\t\t\t\t\tcancelButtonUrl: this.logoutUrl,\n\t\t\t\t});\n\t\t\t\treturn content;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow new BadRequestException('Unknown PageType requested');\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-632 Move Redirect Logic URLs to Client\n\tgetMigrationRedirectUri(): string {\n\t\tconst combinedUri = new URL(this.publicBackendUrl);\n\t\tcombinedUri.pathname = `api/v3/sso/oauth/migration`;\n\t\treturn combinedUri.toString();\n\t}\n\n\tasync migrateUser(currentUserId: string, externalUserId: string, targetSystemId: string): Promise {\n\t\tconst userDO: UserDO = await this.userService.findById(currentUserId);\n\t\tconst account: AccountDto = await this.accountService.findByUserIdOrFail(currentUserId);\n\t\tconst userDOCopy: UserDO = new UserDO({ ...userDO });\n\t\tconst accountCopy: AccountDto = new AccountDto({ ...account });\n\n\t\tlet migrationDto: MigrationDto;\n\t\ttry {\n\t\t\tmigrationDto = await this.doMigration(userDO, externalUserId, account, targetSystemId, accountCopy.systemId);\n\t\t} catch (e: unknown) {\n\t\t\tthis.logger.log({\n\t\t\t\tmessage: 'This error occurred during migration of User:',\n\t\t\t\taffectedUserId: currentUserId,\n\t\t\t\terror: e,\n\t\t\t});\n\n\t\t\tmigrationDto = await this.rollbackMigration(userDOCopy, accountCopy, targetSystemId);\n\t\t}\n\n\t\treturn migrationDto;\n\t}\n\n\tprivate async rollbackMigration(\n\t\tuserDOCopy: UserDO,\n\t\taccountCopy: AccountDto,\n\t\ttargetSystemId: string\n\t): Promise {\n\t\tawait this.userService.save(userDOCopy);\n\t\tawait this.accountService.save(accountCopy);\n\n\t\tconst userMigrationDto: MigrationDto = this.createUserMigrationDto(\n\t\t\t'/migration/error',\n\t\t\taccountCopy.systemId ?? '',\n\t\t\ttargetSystemId\n\t\t);\n\t\treturn userMigrationDto;\n\t}\n\n\tprivate async doMigration(\n\t\tuserDO: UserDO,\n\t\texternalUserId: string,\n\t\taccount: AccountDto,\n\t\ttargetSystemId: string,\n\t\taccountId?: EntityId\n\t): Promise {\n\t\tuserDO.previousExternalId = userDO.externalId;\n\t\tuserDO.externalId = externalUserId;\n\t\tuserDO.lastLoginSystemChange = new Date();\n\t\tawait this.userService.save(userDO);\n\n\t\taccount.systemId = targetSystemId;\n\t\tawait this.accountService.save(account);\n\n\t\tconst userMigrationDto: MigrationDto = this.createUserMigrationDto(\n\t\t\t'/migration/success',\n\t\t\taccountId ?? '',\n\t\t\ttargetSystemId\n\t\t);\n\t\treturn userMigrationDto;\n\t}\n\n\t// TODO: https://ticketsystem.dbildungscloud.de/browse/N21-632 Move Redirect Logic URLs to Client\n\tprivate createUserMigrationDto(urlPath: string, sourceSystemId: string, targetSystemId: string) {\n\t\tconst errorUrl: URL = new URL(urlPath, this.hostUrl);\n\t\terrorUrl.searchParams.append('sourceSystem', sourceSystemId);\n\t\terrorUrl.searchParams.append('targetSystem', targetSystemId);\n\t\tconst userMigrationDto: MigrationDto = new MigrationDto({\n\t\t\tredirect: errorUrl.toString(),\n\t\t});\n\t\treturn userMigrationDto;\n\t}\n\n\tprivate getLoginUrl(system: SystemDto, postLoginRedirect?: string): string {\n\t\tif (!system.oauthConfig || !system.id) {\n\t\t\tthrow new UnprocessableEntityException(`System ${system?.id || 'unknown'} has no oauth config`);\n\t\t}\n\n\t\tconst loginUrl: URL = new URL(`api/v3/sso/login/${system.id}`, this.publicBackendUrl);\n\t\tif (postLoginRedirect) {\n\t\t\tloginUrl.searchParams.append('postLoginRedirect', postLoginRedirect);\n\t\t} else {\n\t\t\tloginUrl.searchParams.append('migration', 'true');\n\t\t}\n\n\t\treturn loginUrl.toString();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/UserModule.html":{"url":"modules/UserModule.html","title":"module - UserModule","body":"\n \n\n\n\n\n Modules\n UserModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_UserModule\n\n\n\ncluster_UserModule_imports\n\n\n\ncluster_UserModule_exports\n\n\n\ncluster_UserModule_providers\n\n\n\n\nAccountModule\n\nAccountModule\n\n\n\nUserModule\n\nUserModule\n\nUserModule -->\n\nAccountModule->UserModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nUserModule -->\n\nLegacySchoolModule->UserModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nUserModule -->\n\nLoggerModule->UserModule\n\n\n\n\n\nRoleModule\n\nRoleModule\n\nUserModule -->\n\nRoleModule->UserModule\n\n\n\n\n\nUserRepo \n\nUserRepo \n\nUserRepo -->\n\nUserModule->UserRepo \n\n\n\n\n\nUserService \n\nUserService \n\nUserService -->\n\nUserModule->UserService \n\n\n\n\n\nUserDORepo\n\nUserDORepo\n\nUserModule -->\n\nUserDORepo->UserModule\n\n\n\n\n\nUserRepo\n\nUserRepo\n\nUserModule -->\n\nUserRepo->UserModule\n\n\n\n\n\nUserService\n\nUserService\n\nUserModule -->\n\nUserService->UserModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/user/user.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n UserDORepo\n \n \n UserRepo\n \n \n UserService\n \n \n \n \n Imports\n \n \n AccountModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n RoleModule\n \n \n \n \n Exports\n \n \n UserRepo\n \n \n UserService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { UserRepo } from '@shared/repo';\nimport { UserDORepo } from '@shared/repo/user/user-do.repo';\nimport { LoggerModule } from '@src/core/logger';\nimport { AccountModule } from '@src/modules/account';\nimport { RoleModule } from '@src/modules/role/role.module';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { UserService } from './service/user.service';\n\n@Module({\n\timports: [LegacySchoolModule, RoleModule, AccountModule, LoggerModule],\n\tproviders: [UserRepo, UserDORepo, UserService],\n\texports: [UserService, UserRepo],\n})\nexport class UserModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserNotFoundAfterProvisioningLoggableException.html":{"url":"classes/UserNotFoundAfterProvisioningLoggableException.html","title":"class - UserNotFoundAfterProvisioningLoggableException","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserNotFoundAfterProvisioningLoggableException\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth/error/user-not-found-after-provisioning.loggable-exception.ts\n \n\n\n\n \n Extends\n \n \n OAuthSSOError\n \n\n \n Implements\n \n \n Loggable\n \n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n Readonly\n errorcode\n \n \n Readonly\n message\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n getLogMessage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(externalUserId: string, systemId: EntityId, officialSchoolNumber?: string)\n \n \n \n \n Defined in apps/server/src/modules/oauth/error/user-not-found-after-provisioning.loggable-exception.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalUserId\n \n \n string\n \n \n \n No\n \n \n \n \n systemId\n \n \n EntityId\n \n \n \n No\n \n \n \n \n officialSchoolNumber\n \n \n string\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n DEFAULT_ERRORCODE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : SSOErrorCode.SSO_OAUTH_LOGIN_FAILED\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n DEFAULT_MESSAGE\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Default value : 'Error in SSO Oauth Process.'\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:9\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n errorcode\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:7\n\n \n \n\n\n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from OAuthSSOError\n\n \n \n \n \n Defined in OAuthSSOError:5\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n getLogMessage\n \n \n \n \n \n \ngetLogMessage()\n \n \n\n\n \n \n Defined in apps/server/src/modules/oauth/error/user-not-found-after-provisioning.loggable-exception.ts:17\n \n \n\n\n \n \n\n \n Returns : LogMessage | ErrorLogMessage | ValidationErrorLogMessage\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { EntityId } from '@shared/domain';\nimport { ErrorLogMessage, Loggable, LogMessage, ValidationErrorLogMessage } from '@src/core/logger';\nimport { OAuthSSOError } from './oauth-sso.error';\n\nexport class UserNotFoundAfterProvisioningLoggableException extends OAuthSSOError implements Loggable {\n\tconstructor(\n\t\tprivate readonly externalUserId: string,\n\t\tprivate readonly systemId: EntityId,\n\t\tprivate readonly officialSchoolNumber?: string\n\t) {\n\t\tsuper(\n\t\t\t'Unable to find user after provisioning. The feature for OAuth2 provisioning might be disabled for this school.',\n\t\t\t'sso_user_not_found_after_provisioning'\n\t\t);\n\t}\n\n\tgetLogMessage(): LogMessage | ErrorLogMessage | ValidationErrorLogMessage {\n\t\treturn {\n\t\t\tmessage: this.message,\n\t\t\tstack: this.stack,\n\t\t\tdata: {\n\t\t\t\texternalUserId: this.externalUserId,\n\t\t\t\tsystemId: this.systemId,\n\t\t\t\tofficialSchoolNumber: this.officialSchoolNumber,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserParams.html":{"url":"classes/UserParams.html","title":"class - UserParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/oauth-provider/controller/dto/request/user.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n userId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n userId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @IsMongoId()@ApiProperty({description: 'The user id.', required: true, nullable: false})\n \n \n \n \n \n Defined in apps/server/src/modules/oauth-provider/controller/dto/request/user.params.ts:7\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class UserParams {\n\t@IsMongoId()\n\t@ApiProperty({ description: 'The user id.', required: true, nullable: false })\n\tuserId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserRepo.html":{"url":"injectables/UserRepo.html","title":"injectable - UserRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/user/user.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseRepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n findByEmail\n \n \n Async\n findByExternalIdOrFail\n \n \n Async\n findById\n \n \n Async\n findWithoutImportUser\n \n \n Async\n flush\n \n \n Private\n Async\n populateRoles\n \n \n saveWithoutFlush\n \n \n create\n \n \n Async\n delete\n \n \n Async\n save\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n findByEmail\n \n \n \n \n \n \n \n findByEmail(email: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:158\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalIdOrFail\n \n \n \n \n \n \n \n findByExternalIdOrFail(externalId: string, systemId: string)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:36\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId, populate)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:25\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n Default value\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n \n \n\n \n \n populate\n \n \n\n \n No\n \n\n \n false\n \n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findWithoutImportUser\n \n \n \n \n \n \n \n findWithoutImportUser(school: SchoolEntity, filters?: INameMatch, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:48\n \n \n\n\n \n \n used for importusers module to request users not referenced in importusers\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n school\n \n SchoolEntity\n \n\n \n No\n \n\n\n \n \n filters\n \n INameMatch\n \n\n \n Yes\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n flush\n \n \n \n \n \n \n \n flush()\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:182\n \n \n\n\n \n \n\n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n populateRoles\n \n \n \n \n \n \n \n populateRoles(roles: Role[])\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:166\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n Role[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n saveWithoutFlush\n \n \n \n \n \n \nsaveWithoutFlush(user: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:178\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n create\n \n \n \n \n \n \ncreate(entity: T)\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:18\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n T\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:26\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entities: T | T[])\n \n \n\n\n \n \n Inherited from BaseRepo\n\n \n \n \n \n Defined in BaseRepo:22\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entities\n \n T | T[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/user/user.repo.ts:21\n \n \n\n \n \n\n \n\n\n \n import { QueryOrderMap, QueryOrderNumeric } from '@mikro-orm/core';\nimport { ObjectId } from '@mikro-orm/mongodb';\nimport { Injectable } from '@nestjs/common';\nimport { StringValidator } from '@shared/common';\nimport {\n\tCounted,\n\tEntityId,\n\tIFindOptions,\n\tImportUser,\n\tINameMatch,\n\tRole,\n\tSchoolEntity,\n\tSortOrder,\n\tUser,\n} from '@shared/domain';\nimport { BaseRepo } from '@shared/repo/base.repo';\nimport { MongoPatterns } from '../mongo.patterns';\n\n@Injectable()\nexport class UserRepo extends BaseRepo {\n\tget entityName() {\n\t\treturn User;\n\t}\n\n\tasync findById(id: EntityId, populate = false): Promise {\n\t\tconst user = await super.findById(id);\n\n\t\tif (populate) {\n\t\t\tawait this._em.populate(user, ['roles', 'school.systems', 'school.schoolYear']);\n\t\t\tawait this.populateRoles(user.roles.getItems());\n\t\t}\n\n\t\treturn user;\n\t}\n\n\tasync findByExternalIdOrFail(externalId: string, systemId: string): Promise {\n\t\tconst [users] = await this._em.findAndCount(User, { externalId }, { populate: ['school.systems'] });\n\t\tconst resultUser = users.find((user) => {\n\t\t\tconst { systems } = user.school;\n\t\t\treturn systems && systems.getItems().find((system) => system.id === systemId);\n\t\t});\n\t\treturn resultUser ?? Promise.reject();\n\t}\n\n\t/**\n\t * used for importusers module to request users not referenced in importusers\n\t */\n\tasync findWithoutImportUser(\n\t\tschool: SchoolEntity,\n\t\tfilters?: INameMatch,\n\t\toptions?: IFindOptions\n\t): Promise> {\n\t\tconst { _id: schoolId } = school;\n\t\tif (!ObjectId.isValid(schoolId)) throw new Error('invalid school id');\n\n\t\tconst existingMatch = { deletedAt: null };\n\t\tconst permittedMatch = { schoolId };\n\n\t\tconst queryFilterMatch: { $or?: unknown[] } = {};\n\t\tif (filters?.name && StringValidator.isNotEmptyString(filters.name, true)) {\n\t\t\tconst escapedName = filters.name.replace(MongoPatterns.REGEX_MONGO_LANGUAGE_PATTERN_WHITELIST, '').trim();\n\t\t\t// TODO make db agnostic\n\t\t\tif (StringValidator.isNotEmptyString(escapedName, true)) {\n\t\t\t\tqueryFilterMatch.$or = [\n\t\t\t\t\t{\n\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t$regex: escapedName,\n\t\t\t\t\t\t\t$options: 'i',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlastName: {\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t$regex: escapedName,\n\t\t\t\t\t\t\t$options: 'i',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t}\n\t\t}\n\n\t\tconst pipeline: unknown[] = [\n\t\t\t{ $match: existingMatch },\n\t\t\t{ $match: permittedMatch },\n\t\t\t{\n\t\t\t\t$lookup: {\n\t\t\t\t\tfrom: 'importusers',\n\t\t\t\t\tlocalField: '_id',\n\t\t\t\t\tforeignField: 'match_userId',\n\t\t\t\t\tas: 'importusers',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\t$match: {\n\t\t\t\t\timportusers: {\n\t\t\t\t\t\t$size: 0,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ $match: queryFilterMatch },\n\t\t\t{\n\t\t\t\t$project: {\n\t\t\t\t\timportusers: 0,\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\n\t\tconst countPipeline = [...pipeline];\n\t\tcountPipeline.push({ $group: { _id: null, count: { $sum: 1 } } });\n\t\tconst total = (await this._em.aggregate(User, countPipeline)) as { count: number }[];\n\t\tconst count = total.length > 0 ? total[0].count : 0;\n\t\tconst { pagination, order } = options || {};\n\n\t\tif (order) {\n\t\t\tconst orderQuery: QueryOrderMap = {};\n\t\t\tif (order.firstName) {\n\t\t\t\tswitch (order.firstName) {\n\t\t\t\t\tcase SortOrder.desc:\n\t\t\t\t\t\torderQuery.firstName = QueryOrderNumeric.DESC;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase SortOrder.asc:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\torderQuery.firstName = QueryOrderNumeric.ASC;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (order.lastName) {\n\t\t\t\tswitch (order.lastName) {\n\t\t\t\t\tcase SortOrder.desc:\n\t\t\t\t\t\torderQuery.lastName = QueryOrderNumeric.DESC;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase SortOrder.asc:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\torderQuery.lastName = QueryOrderNumeric.ASC;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tpipeline.push({ $sort: orderQuery });\n\t\t}\n\n\t\tif (pagination?.skip) {\n\t\t\tpipeline.push({ $skip: pagination.skip });\n\t\t}\n\t\tif (pagination?.limit) {\n\t\t\tpipeline.push({ $limit: pagination.limit });\n\t\t}\n\n\t\tconst userDocuments = await this._em.aggregate(User, pipeline);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tconst users = userDocuments.map((userDocument) => this._em.map(User, userDocument));\n\t\tawait this._em.populate(users, ['roles']);\n\t\treturn [users, count];\n\t}\n\n\tasync findByEmail(email: string): Promise {\n\t\t// find mail case-insensitive by regex\n\t\tconst promise: Promise = this._em.find(User, {\n\t\t\temail: new RegExp(`^${email.replace(/\\W/g, '\\\\$&')}$`, 'i'),\n\t\t});\n\t\treturn promise;\n\t}\n\n\tprivate async populateRoles(roles: Role[]): Promise {\n\t\tfor (let i = 0; i {\n\t\tawait this._em.flush();\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserRule.html":{"url":"injectables/UserRule.html","title":"injectable - UserRule","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserRule\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/rules/user.rule.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Public\n hasPermission\n \n \n Public\n isApplicable\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(authorizationHelper: AuthorizationHelper)\n \n \n \n \n Defined in apps/server/src/shared/domain/rules/user.rule.ts:7\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n authorizationHelper\n \n \n AuthorizationHelper\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Public\n hasPermission\n \n \n \n \n \n \n \n hasPermission(user: User, entity: User, context: AuthorizationContext)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/user.rule.ts:16\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n User\n \n\n \n No\n \n\n\n \n \n context\n \n AuthorizationContext\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Public\n isApplicable\n \n \n \n \n \n \n \n isApplicable(user: User, entity: User)\n \n \n\n\n \n \n Defined in apps/server/src/shared/domain/rules/user.rule.ts:10\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n User\n \n\n \n No\n \n\n\n \n \n entity\n \n User\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { User } from '@shared/domain/entity';\nimport { AuthorizationHelper } from '@src/modules/authorization/authorization.helper';\nimport { AuthorizationContext, Rule } from '@src/modules/authorization/types';\n\n@Injectable()\nexport class UserRule implements Rule {\n\tconstructor(private readonly authorizationHelper: AuthorizationHelper) {}\n\n\tpublic isApplicable(user: User, entity: User): boolean {\n\t\tconst isMatched = entity instanceof User;\n\n\t\treturn isMatched;\n\t}\n\n\tpublic hasPermission(user: User, entity: User, context: AuthorizationContext): boolean {\n\t\tconst hasPermission = this.authorizationHelper.hasAllPermissions(user, context.requiredPermissions);\n\t\tconst isOwner = user === entity;\n\n\t\treturn hasPermission || isOwner;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/UserScope.html":{"url":"classes/UserScope.html","title":"class - UserScope","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n UserScope\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/user/user.scope.ts\n \n\n\n\n \n Extends\n \n \n Scope\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n Private\n _operator\n \n \n Private\n _queries\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n bySchoolId\n \n \n isOutdated\n \n \n whereLastLoginSystemChangeIsBetween\n \n \n whereLastLoginSystemChangeSmallerThan\n \n \n withOutdatedSince\n \n \n addQuery\n \n \n allowEmptyQuery\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Private\n _allowEmptyQuery\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:13\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _operator\n \n \n \n \n \n \n Type : ScopeOperator\n\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:11\n\n \n \n\n\n \n \n \n \n \n \n \n \n Private\n _queries\n \n \n \n \n \n \n Type : FilterQuery[]\n\n \n \n \n \n Default value : []\n \n \n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:9\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n bySchoolId\n \n \n \n \n \n \nbySchoolId(schoolId: EntityId | undefined)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:35\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId | undefined\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isOutdated\n \n \n \n \n \n \nisOutdated(isOutdated?: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:5\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isOutdated\n \n boolean\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n whereLastLoginSystemChangeIsBetween\n \n \n \n \n \n \nwhereLastLoginSystemChangeIsBetween(startDate?: Date, endDate?: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n startDate\n \n Date\n \n\n \n Yes\n \n\n\n \n \n endDate\n \n Date\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n whereLastLoginSystemChangeSmallerThan\n \n \n \n \n \n \nwhereLastLoginSystemChangeSmallerThan(date?: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n date\n \n Date\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n withOutdatedSince\n \n \n \n \n \n \nwithOutdatedSince(date?: Date)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/user/user.scope.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n date\n \n Date\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : UserScope\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n addQuery\n \n \n \n \n \n \naddQuery(query: FilterQuery | EmptyResultQueryType)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:31\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n FilterQuery | EmptyResultQueryType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n allowEmptyQuery\n \n \n \n \n \n \nallowEmptyQuery(isEmptyQueryAllowed: boolean)\n \n \n\n\n \n \n Inherited from Scope\n\n \n \n \n \n Defined in Scope:35\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isEmptyQueryAllowed\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Scope\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Scope } from '@shared/repo';\nimport { EntityId, User } from '@shared/domain';\n\nexport class UserScope extends Scope {\n\tisOutdated(isOutdated?: boolean): UserScope {\n\t\tif (isOutdated !== undefined) {\n\t\t\tthis.addQuery({ outdatedSince: { $exists: isOutdated } });\n\t\t}\n\t\treturn this;\n\t}\n\n\twhereLastLoginSystemChangeSmallerThan(date?: Date): UserScope {\n\t\tif (date) {\n\t\t\tthis.addQuery({ $or: [{ lastLoginSystemChange: { $lt: date } }, { lastLoginSystemChange: { $exists: false } }] });\n\t\t}\n\t\treturn this;\n\t}\n\n\twhereLastLoginSystemChangeIsBetween(startDate?: Date, endDate?: Date): UserScope {\n\t\tif (startDate && endDate) {\n\t\t\tthis.addQuery({\n\t\t\t\tlastLoginSystemChange: { $gte: startDate, $lt: endDate },\n\t\t\t});\n\t\t}\n\t\treturn this;\n\t}\n\n\twithOutdatedSince(date?: Date): UserScope {\n\t\tif (date) {\n\t\t\tthis.addQuery({ outdatedSince: { $eq: date } });\n\t\t}\n\t\treturn this;\n\t}\n\n\tbySchoolId(schoolId: EntityId | undefined): UserScope {\n\t\tif (schoolId !== undefined) {\n\t\t\tthis.addQuery({ school: schoolId });\n\t\t}\n\t\treturn this;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserService.html":{"url":"injectables/UserService.html","title":"injectable - UserService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/service/user.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkAvailableLanguages\n \n \n Async\n findByEmail\n \n \n Async\n findByExternalId\n \n \n Async\n findById\n \n \n Async\n findUsers\n \n \n Async\n getDisplayName\n \n \n Async\n getResolvedUser\n \n \n Async\n getUser\n \n \n Async\n me\n \n \n Async\n patchLanguage\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userRepo: UserRepo, userDORepo: UserDORepo, configService: ConfigService, roleService: RoleService, accountService: AccountService)\n \n \n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:21\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n userDORepo\n \n \n UserDORepo\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n roleService\n \n \n RoleService\n \n \n \n No\n \n \n \n \n accountService\n \n \n AccountService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkAvailableLanguages\n \n \n \n \n \n \n \n checkAvailableLanguages(language: LanguageType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:105\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n language\n \n LanguageType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void | BadRequestException\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByEmail\n \n \n \n \n \n \n \n findByEmail(email: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:79\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n email\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByExternalId\n \n \n \n \n \n \n \n findByExternalId(externalId: string, systemId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:74\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n externalId\n \n string\n \n\n \n No\n \n\n\n \n \n systemId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findUsers\n \n \n \n \n \n \n \n findUsers(query: UserQuery, options?: IFindOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:69\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n query\n \n UserQuery\n \n\n \n No\n \n\n\n \n \n options\n \n IFindOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getDisplayName\n \n \n \n \n \n \n \n getDisplayName(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:84\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getResolvedUser\n \n \n \n \n \n \n \n getResolvedUser(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:46\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUser\n \n \n \n \n \n \n \n \n \n \n \n \n getUser(id: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n me\n \n \n \n \n \n \n \n me(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:30\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchLanguage\n \n \n \n \n \n \n \n patchLanguage(userId: EntityId, newLanguage: LanguageType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:96\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n newLanguage\n \n LanguageType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(user: UserDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:59\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n user\n \n UserDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(users: UserDO[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/service/user.service.ts:64\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n users\n \n UserDO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BadRequestException, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId, IFindOptions, LanguageType, User } from '@shared/domain';\nimport { RoleReference } from '@shared/domain/domainobject';\nimport { Page } from '@shared/domain/domainobject/page';\nimport { UserDO } from '@shared/domain/domainobject/user.do';\nimport { UserRepo } from '@shared/repo';\nimport { UserDORepo } from '@shared/repo/user/user-do.repo';\nimport { AccountService } from '@src/modules/account/services/account.service';\nimport { AccountDto } from '@src/modules/account/services/dto';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { CurrentUserMapper } from '@src/modules/authentication/mapper';\nimport { RoleDto } from '@src/modules/role/service/dto/role.dto';\nimport { RoleService } from '@src/modules/role/service/role.service';\nimport { IUserConfig } from '../interfaces';\nimport { UserMapper } from '../mapper/user.mapper';\nimport { UserDto } from '../uc/dto/user.dto';\nimport { UserQuery } from './user-query.type';\n\n@Injectable()\nexport class UserService {\n\tconstructor(\n\t\tprivate readonly userRepo: UserRepo,\n\t\tprivate readonly userDORepo: UserDORepo,\n\t\tprivate readonly configService: ConfigService,\n\t\tprivate readonly roleService: RoleService,\n\t\tprivate readonly accountService: AccountService\n\t) {}\n\n\tasync me(userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\t\tconst permissions = user.resolvePermissions();\n\n\t\treturn [user, permissions];\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tasync getUser(id: string): Promise {\n\t\tconst userEntity = await this.userRepo.findById(id, true);\n\t\tconst userDto = UserMapper.mapFromEntityToDto(userEntity);\n\t\treturn userDto;\n\t}\n\n\tasync getResolvedUser(userId: EntityId): Promise {\n\t\tconst user: User = await this.userRepo.findById(userId, true);\n\t\tconst account: AccountDto = await this.accountService.findByUserIdOrFail(userId);\n\n\t\tconst resolvedUser: ICurrentUser = CurrentUserMapper.userToICurrentUser(account.id, user, account.systemId);\n\t\treturn resolvedUser;\n\t}\n\n\tasync findById(id: string): Promise {\n\t\tconst userDO = await this.userDORepo.findById(id, true);\n\t\treturn userDO;\n\t}\n\n\tasync save(user: UserDO): Promise {\n\t\tconst savedUser: Promise = this.userDORepo.save(user);\n\t\treturn savedUser;\n\t}\n\n\tasync saveAll(users: UserDO[]): Promise {\n\t\tconst savedUsers: Promise = this.userDORepo.saveAll(users);\n\t\treturn savedUsers;\n\t}\n\n\tasync findUsers(query: UserQuery, options?: IFindOptions): Promise> {\n\t\tconst users: Page = await this.userDORepo.find(query, options);\n\t\treturn users;\n\t}\n\n\tasync findByExternalId(externalId: string, systemId: EntityId): Promise {\n\t\tconst user: Promise = this.userDORepo.findByExternalId(externalId, systemId);\n\t\treturn user;\n\t}\n\n\tasync findByEmail(email: string): Promise {\n\t\tconst user: Promise = this.userRepo.findByEmail(email);\n\t\treturn user;\n\t}\n\n\tasync getDisplayName(user: UserDO): Promise {\n\t\tconst protectedRoles: RoleDto[] = await this.roleService.getProtectedRoles();\n\t\tconst isProtectedUser: boolean = user.roles.some(\n\t\t\t(roleRef: RoleReference): boolean =>\n\t\t\t\t!!protectedRoles.find((protectedRole: RoleDto): boolean => roleRef.id === protectedRole.id)\n\t\t);\n\n\t\tconst displayName: string = isProtectedUser ? user.lastName : `${user.firstName} ${user.lastName}`;\n\n\t\treturn displayName;\n\t}\n\n\tasync patchLanguage(userId: EntityId, newLanguage: LanguageType): Promise {\n\t\tthis.checkAvailableLanguages(newLanguage);\n\t\tconst user = await this.userRepo.findById(userId);\n\t\tuser.language = newLanguage;\n\t\tawait this.userRepo.save(user);\n\n\t\treturn true;\n\t}\n\n\tprivate checkAvailableLanguages(language: LanguageType): void | BadRequestException {\n\t\tif (!this.configService.get('AVAILABLE_LANGUAGES').includes(language)) {\n\t\t\tthrow new BadRequestException('Language is not activated.');\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/UserUc.html":{"url":"injectables/UserUc.html","title":"injectable - UserUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n UserUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/user/uc/user.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n checkAvaibleLanguages\n \n \n Async\n me\n \n \n Async\n patchLanguage\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(userRepo: UserRepo, configService: ConfigService)\n \n \n \n \n Defined in apps/server/src/modules/user/uc/user.uc.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n userRepo\n \n \n UserRepo\n \n \n \n No\n \n \n \n \n configService\n \n \n ConfigService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n checkAvaibleLanguages\n \n \n \n \n \n \n \n checkAvaibleLanguages(settedLanguage: LanguageType)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/uc/user.uc.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n settedLanguage\n \n LanguageType\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void | Error\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n me\n \n \n \n \n \n \n \n me(userId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/uc/user.uc.ts:12\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise<>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n patchLanguage\n \n \n \n \n \n \n \n patchLanguage(userId: EntityId, params: ChangeLanguageParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/user/uc/user.uc.ts:25\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n params\n \n ChangeLanguageParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { BadRequestException, Injectable } from '@nestjs/common';\nimport { ConfigService } from '@nestjs/config';\nimport { EntityId, LanguageType, User } from '@shared/domain';\nimport { UserRepo } from '@shared/repo';\nimport { ChangeLanguageParams } from '../controller/dto';\nimport { IUserConfig } from '../interfaces';\n\n@Injectable()\nexport class UserUc {\n\tconstructor(private readonly userRepo: UserRepo, private readonly configService: ConfigService) {}\n\n\tasync me(userId: EntityId): Promise {\n\t\tconst user = await this.userRepo.findById(userId, true);\n\t\tconst permissions = user.resolvePermissions();\n\n\t\treturn [user, permissions];\n\t}\n\n\tprivate checkAvaibleLanguages(settedLanguage: LanguageType): void | Error {\n\t\tif (!this.configService.get('AVAILABLE_LANGUAGES').includes(settedLanguage)) {\n\t\t\tthrow new BadRequestException('Language is not activated.');\n\t\t}\n\t}\n\n\tasync patchLanguage(userId: EntityId, params: ChangeLanguageParams): Promise {\n\t\tthis.checkAvaibleLanguages(params.language);\n\t\tconst user = await this.userRepo.findById(userId);\n\t\tuser.language = params.language;\n\t\tawait this.userRepo.save(user);\n\n\t\treturn true;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ValidationError.html":{"url":"classes/ValidationError.html","title":"class - ValidationError","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ValidationError\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/common/error/validation.error.ts\n \n\n\n\n \n Extends\n \n \n BusinessError\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n Readonly\n Optional\n details\n \n \n \n Readonly\n message\n \n \n \n Readonly\n title\n \n \n \n Readonly\n type\n \n \n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n getResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(message: string, details?: Record)\n \n \n \n \n Defined in apps/server/src/shared/common/error/validation.error.ts:4\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n message\n \n \n string\n \n \n \n No\n \n \n \n \n details\n \n \n Record\n \n \n \n Yes\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Readonly\n code\n \n \n \n \n \n \n Type : number\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The response status code.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:12\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n Optional\n details\n \n \n \n \n \n \n Type : Record\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The error details.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n message\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error message.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:21\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n title\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error title.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:18\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n Readonly\n type\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The error type.'})\n \n \n \n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:15\n\n \n \n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n getResponse\n \n \n \n \n \n \n \n getResponse()\n \n \n\n\n \n \n Inherited from BusinessError\n\n \n \n \n \n Defined in BusinessError:47\n\n \n \n\n\n \n \n\n \n Returns : ErrorResponse\n\n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { HttpStatus } from '@nestjs/common';\nimport { BusinessError } from './business.error';\n\nexport class ValidationError extends BusinessError {\n\tconstructor(readonly message: string, details?: Record) {\n\t\tsuper(\n\t\t\t{\n\t\t\t\ttype: 'VALIDATION_ERROR',\n\t\t\t\ttitle: 'Validation Error',\n\t\t\t\tdefaultMessage: message,\n\t\t\t},\n\t\t\tHttpStatus.BAD_REQUEST,\n\t\t\tdetails\n\t\t);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/ValidationErrorDetailResponse.html":{"url":"classes/ValidationErrorDetailResponse.html","title":"class - ValidationErrorDetailResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n ValidationErrorDetailResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/core/error/dto/validation-error-detail.response.ts\n \n\n\n\n\n\n\n\n \n Constructor\n \n \n \n \nconstructor(field: string[], errors: string[])\n \n \n \n \n Defined in apps/server/src/core/error/dto/validation-error-detail.response.ts:1\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n field\n \n \n string[]\n \n \n \n No\n \n \n \n \n errors\n \n \n string[]\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n\n\n\n\n \n\n\n \n export class ValidationErrorDetailResponse {\n\tconstructor(readonly field: string[], readonly errors: string[]) {}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/ValidationModule.html":{"url":"modules/ValidationModule.html","title":"module - ValidationModule","body":"\n \n\n\n\n\n Modules\n ValidationModule\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/core/validation/validation.module.ts\n \n\n\n\n\n\n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { APP_PIPE } from '@nestjs/core';\nimport { GlobalValidationPipe } from './pipe/global-validation.pipe';\n\n@Module({\n\tproviders: [\n\t\t{\n\t\t\tprovide: APP_PIPE,\n\t\t\tuseClass: GlobalValidationPipe,\n\t\t},\n\t],\n})\nexport class ValidationModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"entities/VideoConference.html":{"url":"entities/VideoConference.html","title":"entity - VideoConference","body":"\n \n\n\n\n\n\n\n\n Entities\n VideoConference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/video-conference.entity.ts\n \n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n options\n \n \n \n \n target\n \n \n \n targetModel\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n options\n \n \n \n \n \n \n Type : VideoConferenceOptions\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:37\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:31\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : TargetModels\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:34\n \n \n\n\n \n \n\n \n\n\n \n import { Entity, Index, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport enum TargetModels {\n\tCOURSES = 'courses',\n\tEVENTS = 'events',\n}\n\nexport class VideoConferenceOptions {\n\teveryAttendeJoinsMuted: boolean;\n\n\teverybodyJoinsAsModerator: boolean;\n\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(options: VideoConferenceOptions) {\n\t\tthis.everyAttendeJoinsMuted = options.everyAttendeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = options.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = options.moderatorMustApproveJoinRequests;\n\t}\n}\n\nexport type IVideoConferenceProperties = Readonly>;\n\n// Preset options for opening a video conference\n@Entity({ tableName: 'videoconferences' })\n@Index({ properties: ['target', 'targetModel'] })\nexport class VideoConference extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Index()\n\ttarget: string;\n\n\t@Property()\n\ttargetModel: TargetModels;\n\n\t@Property()\n\toptions: VideoConferenceOptions;\n\n\tconstructor(props: IVideoConferenceProperties) {\n\t\tsuper();\n\t\tthis.target = props.target;\n\t\tthis.targetModel = props.targetModel;\n\t\tthis.options = props.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConference-1.html":{"url":"classes/VideoConference-1.html","title":"class - VideoConference-1","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConference\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/video-conference.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Optional\n bbbResponse\n \n \n permission\n \n \n state\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dto: VideoConference)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference.ts:10\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n \n VideoConference\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n bbbResponse\n \n \n \n \n \n \n Type : BBBResponse\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceState\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference.ts:6\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceState } from './video-conference-state.enum';\nimport { BBBBaseResponse, BBBResponse } from '../../bbb';\n\nexport class VideoConference {\n\tstate: VideoConferenceState;\n\n\tpermission: Permission;\n\n\tbbbResponse?: BBBResponse;\n\n\tconstructor(dto: VideoConference) {\n\t\tthis.state = dto.state;\n\t\tthis.bbbResponse = dto.bbbResponse;\n\t\tthis.permission = dto.permission;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/VideoConferenceApiModule.html":{"url":"modules/VideoConferenceApiModule.html","title":"module - VideoConferenceApiModule","body":"\n \n\n\n\n\n Modules\n VideoConferenceApiModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_VideoConferenceApiModule\n\n\n\ncluster_VideoConferenceApiModule_imports\n\n\n\ncluster_VideoConferenceApiModule_providers\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nVideoConferenceApiModule\n\nVideoConferenceApiModule\n\nVideoConferenceApiModule -->\n\nAuthorizationModule->VideoConferenceApiModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nVideoConferenceApiModule -->\n\nUserModule->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceModule\n\nVideoConferenceModule\n\nVideoConferenceApiModule -->\n\nVideoConferenceModule->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceCreateUc\n\nVideoConferenceCreateUc\n\nVideoConferenceApiModule -->\n\nVideoConferenceCreateUc->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceEndUc\n\nVideoConferenceEndUc\n\nVideoConferenceApiModule -->\n\nVideoConferenceEndUc->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceInfoUc\n\nVideoConferenceInfoUc\n\nVideoConferenceApiModule -->\n\nVideoConferenceInfoUc->VideoConferenceApiModule\n\n\n\n\n\nVideoConferenceJoinUc\n\nVideoConferenceJoinUc\n\nVideoConferenceApiModule -->\n\nVideoConferenceJoinUc->VideoConferenceApiModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/video-conference/video-conference-api.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n VideoConferenceCreateUc\n \n \n VideoConferenceEndUc\n \n \n VideoConferenceInfoUc\n \n \n VideoConferenceJoinUc\n \n \n \n \n Controllers\n \n \n VideoConferenceController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n UserModule\n \n \n VideoConferenceModule\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { UserModule } from '@src/modules/user';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { VideoConferenceController } from './controller';\nimport { VideoConferenceCreateUc, VideoConferenceJoinUc, VideoConferenceEndUc, VideoConferenceInfoUc } from './uc';\nimport { VideoConferenceModule } from './video-conference.module';\n\n@Module({\n\timports: [VideoConferenceModule, UserModule, AuthorizationModule],\n\tcontrollers: [VideoConferenceController],\n\tproviders: [VideoConferenceCreateUc, VideoConferenceJoinUc, VideoConferenceEndUc, VideoConferenceInfoUc],\n})\nexport class VideoConferenceApiModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceBaseResponse.html":{"url":"classes/VideoConferenceBaseResponse.html","title":"class - VideoConferenceBaseResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceBaseResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts\n \n\n \n Deprecated\n \n \n Please use new video conference response classes\n \n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n permission\n \n \n state\n \n \n Optional\n status\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: VideoConferenceBaseResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n VideoConferenceBaseResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceStateResponse\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n status\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-deprecated.response.ts:8\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceStateResponse } from './video-conference-state.response';\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class VideoConferenceBaseResponse {\n\tstatus?: string;\n\n\tstate: VideoConferenceStateResponse;\n\n\tpermission: Permission;\n\n\tconstructor(resp: VideoConferenceBaseResponse) {\n\t\tthis.status = 'SUCCESS';\n\t\tthis.state = resp.state;\n\t\tthis.permission = resp.permission;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceJoinResponse extends VideoConferenceBaseResponse {\n\turl?: string;\n\n\tconstructor(resp: DeprecatedVideoConferenceJoinResponse) {\n\t\tsuper(resp);\n\t\tthis.url = resp.url;\n\t}\n}\n\n/**\n * @deprecated Please use new video conference response classes\n */\nexport class DeprecatedVideoConferenceInfoResponse extends VideoConferenceBaseResponse {\n\toptions?: {\n\t\teveryAttendeeJoinsMuted: boolean;\n\n\t\teverybodyJoinsAsModerator: boolean;\n\n\t\tmoderatorMustApproveJoinRequests: boolean;\n\t};\n\n\tconstructor(resp: DeprecatedVideoConferenceInfoResponse) {\n\t\tsuper(resp);\n\t\tthis.options = resp.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceConfiguration.html":{"url":"classes/VideoConferenceConfiguration.html","title":"class - VideoConferenceConfiguration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceConfiguration\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/video-conference-config.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n Static\n bbb\n \n \n Static\n videoConference\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n Static\n bbb\n \n \n \n \n \n \n Type : IBbbSettings\n\n \n \n \n \n Default value : {\n\t\thost: Configuration.get('VIDEOCONFERENCE_HOST') as string,\n\t\tsalt: Configuration.get('VIDEOCONFERENCE_SALT') as string,\n\t\tpresentationUrl: Configuration.get('VIDEOCONFERENCE_DEFAULT_PRESENTATION') as string,\n\t}\n \n \n \n \n Defined in apps/server/src/modules/video-conference/video-conference-config.ts:6\n \n \n\n\n \n \n \n \n \n \n \n \n Static\n videoConference\n \n \n \n \n \n \n Type : IVideoConferenceSettings\n\n \n \n \n \n Default value : {\n\t\tenabled: Configuration.get('FEATURE_VIDEOCONFERENCE_ENABLED') as boolean,\n\t\thostUrl: Configuration.get('HOST') as string,\n\t\tbbb: VideoConferenceConfiguration.bbb,\n\t}\n \n \n \n \n Defined in apps/server/src/modules/video-conference/video-conference-config.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Configuration } from '@hpi-schul-cloud/commons/lib';\nimport { IBbbSettings } from './bbb';\nimport { IVideoConferenceSettings } from './interface';\n\nexport default class VideoConferenceConfiguration {\n\tstatic bbb: IBbbSettings = {\n\t\thost: Configuration.get('VIDEOCONFERENCE_HOST') as string,\n\t\tsalt: Configuration.get('VIDEOCONFERENCE_SALT') as string,\n\t\tpresentationUrl: Configuration.get('VIDEOCONFERENCE_DEFAULT_PRESENTATION') as string,\n\t};\n\n\tstatic videoConference: IVideoConferenceSettings = {\n\t\tenabled: Configuration.get('FEATURE_VIDEOCONFERENCE_ENABLED') as boolean,\n\t\thostUrl: Configuration.get('HOST') as string,\n\t\tbbb: VideoConferenceConfiguration.bbb,\n\t};\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/VideoConferenceController.html":{"url":"controllers/VideoConferenceController.html","title":"controller - VideoConferenceController","body":"\n \n\n\n\n\n\n\n Controllers\n VideoConferenceController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/video-conference.controller.ts\n \n\n \n Prefix\n \n \n videoconference2\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n \n Async\n info\n \n \n \n \n \n \n \n \n Async\n join\n \n \n \n \n \n \n \n \n Async\n start\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n end(currentUser: ICurrentUser, scopeParams: VideoConferenceScopeParams)\n \n \n\n \n \n Decorators : \n \n @Get(':scope/:scopeId/end')@ApiOperation({summary: 'Ends a running video conference.', description: 'Use this endpoint to end a running video conference.'})@ApiResponse({status: undefined, description: 'Returns the status of the operation.'})@ApiResponse({status: undefined, description: 'Invalid parameters.'})@ApiResponse({status: undefined, description: 'User does not have the permission to end this conference.'})@ApiResponse({status: undefined, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference.controller.ts:133\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scopeParams\n \n VideoConferenceScopeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n info\n \n \n \n \n \n \n \n info(currentUser: ICurrentUser, scopeParams: VideoConferenceScopeParams)\n \n \n\n \n \n Decorators : \n \n @Get(':scope/:scopeId/info')@ApiOperation({summary: 'Returns information about a running video conference.', description: 'Use this endpoint to get information about a running video conference.'})@ApiResponse({status: undefined, description: 'Returns a list of information about a video conference.', type: VideoConferenceInfoResponse})@ApiResponse({status: undefined, description: 'Invalid parameters.'})@ApiResponse({status: undefined, description: 'User does not have the permission to get information about this conference.'})@ApiResponse({status: undefined, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference.controller.ts:106\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scopeParams\n \n VideoConferenceScopeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n join\n \n \n \n \n \n \n \n join(currentUser: ICurrentUser, scopeParams: VideoConferenceScopeParams)\n \n \n\n \n \n Decorators : \n \n @Get(':scope/:scopeId/join')@ApiOperation({summary: 'Creates a join link for a video conference, if it has started.', description: 'Use this endpoint to get a link to join an existing video conference. The conference must be running.'})@ApiResponse({status: undefined, description: 'Returns the information for joining the conference.', type: VideoConferenceJoinResponse})@ApiResponse({status: undefined, description: 'Invalid parameters.'})@ApiResponse({status: undefined, description: 'User does not have the permission to join this conference.'})@ApiResponse({status: undefined, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference.controller.ts:78\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scopeParams\n \n VideoConferenceScopeParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n start\n \n \n \n \n \n \n \n start(req: Request, currentUser: ICurrentUser, scopeParams: VideoConferenceScopeParams, params: VideoConferenceCreateParams)\n \n \n\n \n \n Decorators : \n \n @Put(':scope/:scopeId/start')@ApiOperation({summary: 'Creates the video conference, if it has not started yet.', description: 'Use this endpoint to start a video conference. If the conference is not yet running, it will be created.'})@ApiResponse({status: undefined, description: 'Video conference was created.'})@ApiResponse({status: undefined, description: 'Invalid parameters.'})@ApiResponse({status: undefined, description: 'User does not have the permission to create this conference.'})@ApiResponse({status: undefined, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference.controller.ts:45\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n req\n \n Request\n \n\n \n No\n \n\n\n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scopeParams\n \n VideoConferenceScopeParams\n \n\n \n No\n \n\n\n \n \n params\n \n VideoConferenceCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import { Body, Controller, Get, HttpStatus, Param, Put, Req } from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { ICurrentUser } from '@src/modules/authentication';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { Request } from 'express';\nimport { InvalidOriginForLogoutUrlLoggableException } from '../error';\nimport { VideoConferenceOptions } from '../interface';\nimport { VideoConferenceMapper } from '../mapper/video-conference.mapper';\nimport { VideoConferenceCreateUc, VideoConferenceEndUc, VideoConferenceInfoUc, VideoConferenceJoinUc } from '../uc';\nimport { ScopeRef, VideoConferenceInfo, VideoConferenceJoin } from '../uc/dto';\nimport {\n\tVideoConferenceCreateParams,\n\tVideoConferenceInfoResponse,\n\tVideoConferenceJoinResponse,\n\tVideoConferenceScopeParams,\n} from './dto';\n\n@ApiTags('VideoConference')\n@Authenticate('jwt')\n@Controller('videoconference2')\nexport class VideoConferenceController {\n\tconstructor(\n\t\tprivate readonly videoConferenceCreateUc: VideoConferenceCreateUc,\n\t\tprivate readonly videoConferenceJoinUc: VideoConferenceJoinUc,\n\t\tprivate readonly videoConferenceEndUc: VideoConferenceEndUc,\n\t\tprivate readonly videoConferenceInfoUc: VideoConferenceInfoUc\n\t) {}\n\n\t@Put(':scope/:scopeId/start')\n\t@ApiOperation({\n\t\tsummary: 'Creates the video conference, if it has not started yet.',\n\t\tdescription:\n\t\t\t'Use this endpoint to start a video conference. If the conference is not yet running, it will be created.',\n\t})\n\t@ApiResponse({\n\t\tstatus: HttpStatus.OK,\n\t\tdescription: 'Video conference was created.',\n\t})\n\t@ApiResponse({ status: HttpStatus.BAD_REQUEST, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: HttpStatus.FORBIDDEN,\n\t\tdescription: 'User does not have the permission to create this conference.',\n\t})\n\t@ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: 'Unable to fetch required data.' })\n\tasync start(\n\t\t@Req() req: Request,\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() scopeParams: VideoConferenceScopeParams,\n\t\t@Body() params: VideoConferenceCreateParams\n\t): Promise {\n\t\tif (params.logoutUrl && new URL(params.logoutUrl).origin !== req.headers.origin) {\n\t\t\tthrow new InvalidOriginForLogoutUrlLoggableException(params.logoutUrl, req.headers.origin);\n\t\t}\n\n\t\tconst scopeRef = new ScopeRef(scopeParams.scopeId, scopeParams.scope);\n\t\tconst videoConferenceOptions: VideoConferenceOptions = VideoConferenceMapper.toVideoConferenceOptions(params);\n\n\t\tawait this.videoConferenceCreateUc.createIfNotRunning(currentUser.userId, scopeRef, videoConferenceOptions);\n\t}\n\n\t@Get(':scope/:scopeId/join')\n\t@ApiOperation({\n\t\tsummary: 'Creates a join link for a video conference, if it has started.',\n\t\tdescription:\n\t\t\t'Use this endpoint to get a link to join an existing video conference. The conference must be running.',\n\t})\n\t@ApiResponse({\n\t\tstatus: HttpStatus.OK,\n\t\tdescription: 'Returns the information for joining the conference.',\n\t\ttype: VideoConferenceJoinResponse,\n\t})\n\t@ApiResponse({ status: HttpStatus.BAD_REQUEST, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: HttpStatus.FORBIDDEN,\n\t\tdescription: 'User does not have the permission to join this conference.',\n\t})\n\t@ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: 'Unable to fetch required data.' })\n\tasync join(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() scopeParams: VideoConferenceScopeParams\n\t): Promise {\n\t\tconst scopeRef = new ScopeRef(scopeParams.scopeId, scopeParams.scope);\n\t\tconst dto: VideoConferenceJoin = await this.videoConferenceJoinUc.join(currentUser.userId, scopeRef);\n\n\t\tconst resp: VideoConferenceJoinResponse = VideoConferenceMapper.toVideoConferenceJoinResponse(dto);\n\n\t\treturn resp;\n\t}\n\n\t@Get(':scope/:scopeId/info')\n\t@ApiOperation({\n\t\tsummary: 'Returns information about a running video conference.',\n\t\tdescription: 'Use this endpoint to get information about a running video conference.',\n\t})\n\t@ApiResponse({\n\t\tstatus: HttpStatus.OK,\n\t\tdescription: 'Returns a list of information about a video conference.',\n\t\ttype: VideoConferenceInfoResponse,\n\t})\n\t@ApiResponse({ status: HttpStatus.BAD_REQUEST, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: HttpStatus.FORBIDDEN,\n\t\tdescription: 'User does not have the permission to get information about this conference.',\n\t})\n\t@ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: 'Unable to fetch required data.' })\n\tasync info(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param() scopeParams: VideoConferenceScopeParams\n\t): Promise {\n\t\tconst scopeRef = new ScopeRef(scopeParams.scopeId, scopeParams.scope);\n\t\tconst dto: VideoConferenceInfo = await this.videoConferenceInfoUc.getMeetingInfo(currentUser.userId, scopeRef);\n\n\t\tconst resp: VideoConferenceInfoResponse = VideoConferenceMapper.toVideoConferenceInfoResponse(dto);\n\n\t\treturn resp;\n\t}\n\n\t@Get(':scope/:scopeId/end')\n\t@ApiOperation({\n\t\tsummary: 'Ends a running video conference.',\n\t\tdescription: 'Use this endpoint to end a running video conference.',\n\t})\n\t@ApiResponse({\n\t\tstatus: HttpStatus.OK,\n\t\tdescription: 'Returns the status of the operation.',\n\t})\n\t@ApiResponse({ status: HttpStatus.BAD_REQUEST, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: HttpStatus.FORBIDDEN,\n\t\tdescription: 'User does not have the permission to end this conference.',\n\t})\n\t@ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: 'Unable to fetch required data.' })\n\tasync end(@CurrentUser() currentUser: ICurrentUser, @Param() scopeParams: VideoConferenceScopeParams): Promise {\n\t\tconst scopeRef = new ScopeRef(scopeParams.scopeId, scopeParams.scope);\n\n\t\tawait this.videoConferenceEndUc.end(currentUser.userId, scopeRef);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceCreateParams.html":{"url":"classes/VideoConferenceCreateParams.html","title":"class - VideoConferenceCreateParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceCreateParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n Optional\n everyAttendeeJoinsMuted\n \n \n \n \n \n Optional\n everybodyJoinsAsModerator\n \n \n \n \n \n Optional\n logoutUrl\n \n \n \n \n \n Optional\n moderatorMustApproveJoinRequests\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n \n Optional\n everyAttendeeJoinsMuted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({default: undefined})@IsBoolean()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts:9\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n everybodyJoinsAsModerator\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({default: undefined})@IsBoolean()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n logoutUrl\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({description: 'The URL that the BigBlueButton client will go to after users click the OK button on the ‘You have been logged out’ or ’This session was ended’ message. Has to be a URL from the same domain that the conference is started from.'})@IsUrl({require_tld: false})@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts:27\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n Optional\n moderatorMustApproveJoinRequests\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional({default: undefined})@IsBoolean()@IsOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-create.params.ts:19\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsBoolean, IsOptional, IsUrl } from 'class-validator';\nimport { defaultVideoConferenceOptions } from '../../../interface';\n\nexport class VideoConferenceCreateParams {\n\t@ApiPropertyOptional({ default: defaultVideoConferenceOptions.everyAttendeeJoinsMuted })\n\t@IsBoolean()\n\t@IsOptional()\n\teveryAttendeeJoinsMuted?: boolean;\n\n\t@ApiPropertyOptional({ default: defaultVideoConferenceOptions.everybodyJoinsAsModerator })\n\t@IsBoolean()\n\t@IsOptional()\n\teverybodyJoinsAsModerator?: boolean;\n\n\t@ApiPropertyOptional({ default: defaultVideoConferenceOptions.moderatorMustApproveJoinRequests })\n\t@IsBoolean()\n\t@IsOptional()\n\tmoderatorMustApproveJoinRequests?: boolean;\n\n\t@ApiPropertyOptional({\n\t\tdescription:\n\t\t\t'The URL that the BigBlueButton client will go to after users click the OK button on the ‘You have been logged out’ or ’This session was ended’ message. Has to be a URL from the same domain that the conference is started from.',\n\t})\n\t@IsUrl({ require_tld: false })\n\t@IsOptional()\n\tlogoutUrl?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceCreateUc.html":{"url":"injectables/VideoConferenceCreateUc.html","title":"injectable - VideoConferenceCreateUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceCreateUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Private\n Async\n create\n \n \n Async\n createIfNotRunning\n \n \n Private\n prepareBBBCreateConfigBuilder\n \n \n Private\n throwIfNotModerator\n \n \n Private\n Async\n verifyFeaturesEnabled\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbService: BBBService, userService: UserService, videoConferenceService: VideoConferenceService)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:19\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbService\n \n \n BBBService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceService\n \n \n VideoConferenceService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Private\n Async\n create\n \n \n \n \n \n \n \n create(currentUserId: EntityId, scope: ScopeRef, options: VideoConferenceOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:40\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n options\n \n VideoConferenceOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createIfNotRunning\n \n \n \n \n \n \n \n createIfNotRunning(currentUserId: EntityId, scope: ScopeRef, options: VideoConferenceOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:26\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n options\n \n VideoConferenceOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n prepareBBBCreateConfigBuilder\n \n \n \n \n \n \n \n prepareBBBCreateConfigBuilder(scope: ScopeRef, options: VideoConferenceOptions, scopeInfo: IScopeInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n options\n \n VideoConferenceOptions\n \n\n \n No\n \n\n\n \n \n scopeInfo\n \n IScopeInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : BBBCreateConfigBuilder\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n throwIfNotModerator\n \n \n \n \n \n \n \n throwIfNotModerator(role: BBBRole, errorMessage: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:86\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n role\n \n BBBRole\n \n\n \n No\n \n\n\n \n \n errorMessage\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n verifyFeaturesEnabled\n \n \n \n \n \n \n \n verifyFeaturesEnabled(schoolId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-create.uc.ts:82\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, UserDO } from '@shared/domain';\nimport { UserService } from '@src/modules/user';\nimport {\n\tBBBBaseMeetingConfig,\n\tBBBCreateConfigBuilder,\n\tBBBMeetingInfoResponse,\n\tBBBResponse,\n\tBBBRole,\n\tBBBService,\n\tGuestPolicy,\n} from '../bbb';\nimport { ErrorStatus } from '../error/error-status.enum';\nimport { VideoConferenceOptions } from '../interface';\nimport { VideoConferenceService } from '../service';\nimport { IScopeInfo, ScopeRef } from './dto';\n\n@Injectable()\nexport class VideoConferenceCreateUc {\n\tconstructor(\n\t\tprivate readonly bbbService: BBBService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceService: VideoConferenceService\n\t) {}\n\n\tasync createIfNotRunning(currentUserId: EntityId, scope: ScopeRef, options: VideoConferenceOptions): Promise {\n\t\tlet bbbMeetingInfoResponse: BBBResponse | undefined;\n\t\t// try and catch based on legacy behavior\n\t\ttry {\n\t\t\tbbbMeetingInfoResponse = await this.bbbService.getMeetingInfo(new BBBBaseMeetingConfig({ meetingID: scope.id }));\n\t\t} catch (e) {\n\t\t\tbbbMeetingInfoResponse = undefined;\n\t\t}\n\n\t\tif (bbbMeetingInfoResponse === undefined) {\n\t\t\tawait this.create(currentUserId, scope, options);\n\t\t}\n\t}\n\n\tprivate async create(currentUserId: EntityId, scope: ScopeRef, options: VideoConferenceOptions): Promise {\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\n\t\tawait this.verifyFeaturesEnabled(user.schoolId);\n\n\t\tconst scopeInfo: IScopeInfo = await this.videoConferenceService.getScopeInfo(currentUserId, scope.id, scope.scope);\n\n\t\tconst bbbRole: BBBRole = await this.videoConferenceService.determineBbbRole(\n\t\t\tcurrentUserId,\n\t\t\tscopeInfo.scopeId,\n\t\t\tscope.scope\n\t\t);\n\t\tthis.throwIfNotModerator(bbbRole, 'You are not allowed to start the videoconference. Ask a moderator.');\n\n\t\tawait this.videoConferenceService.createOrUpdateVideoConferenceForScopeWithOptions(scope.id, scope.scope, options);\n\n\t\tconst configBuilder: BBBCreateConfigBuilder = this.prepareBBBCreateConfigBuilder(scope, options, scopeInfo);\n\n\t\tawait this.bbbService.create(configBuilder.build());\n\t}\n\n\tprivate prepareBBBCreateConfigBuilder(\n\t\tscope: ScopeRef,\n\t\toptions: VideoConferenceOptions,\n\t\tscopeInfo: IScopeInfo\n\t): BBBCreateConfigBuilder {\n\t\tconst configBuilder: BBBCreateConfigBuilder = new BBBCreateConfigBuilder({\n\t\t\tname: this.videoConferenceService.sanitizeString(scopeInfo.title),\n\t\t\tmeetingID: scope.id,\n\t\t}).withLogoutUrl(options.logoutUrl ?? scopeInfo.logoutUrl);\n\n\t\tif (options.moderatorMustApproveJoinRequests) {\n\t\t\tconfigBuilder.withGuestPolicy(GuestPolicy.ASK_MODERATOR);\n\t\t}\n\n\t\tif (options.everyAttendeeJoinsMuted) {\n\t\t\tconfigBuilder.withMuteOnStart(true);\n\t\t}\n\n\t\treturn configBuilder;\n\t}\n\n\tprivate async verifyFeaturesEnabled(schoolId: string): Promise {\n\t\tawait this.videoConferenceService.throwOnFeaturesDisabled(schoolId);\n\t}\n\n\tprivate throwIfNotModerator(role: BBBRole, errorMessage: string) {\n\t\tif (role !== BBBRole.MODERATOR) {\n\t\t\tthrow new ForbiddenException(ErrorStatus.INSUFFICIENT_PERMISSION, errorMessage);\n\t\t}\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceDO.html":{"url":"classes/VideoConferenceDO.html","title":"class - VideoConferenceDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/video-conference.do.ts\n \n\n\n\n \n Extends\n \n \n BaseDO\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n options\n \n \n target\n \n \n targetModel\n \n \n Optional\n id\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(domainObject: VideoConferenceDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:23\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n \n VideoConferenceDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n options\n \n \n \n \n \n \n Type : VideoConferenceOptionsDO\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:23\n \n \n\n\n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:19\n \n \n\n\n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : VideoConferenceScope\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:21\n \n \n\n\n \n \n \n \n \n \n \n \n Optional\n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Inherited from BaseDO\n\n \n \n \n \n Defined in BaseDO:5\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { VideoConferenceScope } from '@shared/domain/interface/video-conference-scope.enum';\nimport { BaseDO } from './base.do';\n\nexport class VideoConferenceOptionsDO {\n\teveryAttendeeJoinsMuted: boolean;\n\n\teverybodyJoinsAsModerator: boolean;\n\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(options: VideoConferenceOptionsDO) {\n\t\tthis.everyAttendeeJoinsMuted = options.everyAttendeeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = options.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = options.moderatorMustApproveJoinRequests;\n\t}\n}\n\nexport class VideoConferenceDO extends BaseDO {\n\ttarget: string;\n\n\ttargetModel: VideoConferenceScope;\n\n\toptions: VideoConferenceOptionsDO;\n\n\tconstructor(domainObject: VideoConferenceDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.target = domainObject.target;\n\t\tthis.targetModel = domainObject.targetModel;\n\t\tthis.options = domainObject.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"controllers/VideoConferenceDeprecatedController.html":{"url":"controllers/VideoConferenceDeprecatedController.html","title":"controller - VideoConferenceDeprecatedController","body":"\n \n\n\n\n\n\n\n Controllers\n VideoConferenceDeprecatedController\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/video-conference-deprecated.controller.ts\n \n\n \n Prefix\n \n \n videoconference\n \n\n\n \n Description\n \n \n This controller is deprecated. Please use VideoConferenceController instead.\n\n \n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n Async\n createAndJoin\n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n \n Async\n info\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createAndJoin\n \n \n \n \n \n \n \n createAndJoin(currentUser: ICurrentUser, scope: VideoConferenceScope, scopeId: string, params: VideoConferenceCreateParams)\n \n \n\n \n \n Decorators : \n \n @Post(':scope/:scopeId')@ApiOperation({summary: 'Creates a join link for a video conference and creates the video conference, if it has not started yet.'})@ApiResponse({status: 400, type: BadRequestException, description: 'Invalid parameters.'})@ApiResponse({status: 403, type: ForbiddenException, description: 'User does not have the permission to create this conference.'})@ApiResponse({status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference-deprecated.controller.ts:47\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n params\n \n VideoConferenceCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n end(currentUser: ICurrentUser, scope: VideoConferenceScope, scopeId: string)\n \n \n\n \n \n Decorators : \n \n @Delete(':scope/:scopeId')@ApiOperation({summary: 'Ends a running video conference.'})@ApiResponse({status: 400, type: BadRequestException, description: 'Invalid parameters.'})@ApiResponse({status: 403, type: ForbiddenException, description: 'User does not have the permission to get information about this conference.'})@ApiResponse({status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference-deprecated.controller.ts:107\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n info\n \n \n \n \n \n \n \n info(currentUser: ICurrentUser, scope: VideoConferenceScope, scopeId: string)\n \n \n\n \n \n Decorators : \n \n @Get(':scope/:scopeId')@ApiOperation({summary: 'Returns information about a running video conference.'})@ApiResponse({status: 200, type: DeprecatedVideoConferenceInfoResponse, description: 'Returns a list of information about a video conference.'})@ApiResponse({status: 400, type: BadRequestException, description: 'Invalid parameters.'})@ApiResponse({status: 403, type: ForbiddenException, description: 'User does not have the permission to get information about this conference.'})@ApiResponse({status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.'})\n \n \n\n \n \n Defined in apps/server/src/modules/video-conference/controller/video-conference-deprecated.controller.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUser\n \n ICurrentUser\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n\n\n \n import {\n\tBadRequestException,\n\tBody,\n\tController,\n\tDelete,\n\tForbiddenException,\n\tGet,\n\tInternalServerErrorException,\n\tParam,\n\tPost,\n} from '@nestjs/common';\nimport { ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { VideoConferenceScope } from '@shared/domain/interface';\nimport { Authenticate, CurrentUser } from '@src/modules/authentication/decorator/auth.decorator';\nimport { ICurrentUser } from '@src/modules/authentication/interface';\nimport { BBBBaseResponse } from '../bbb';\nimport { defaultVideoConferenceOptions } from '../interface';\nimport { VideoConferenceResponseDeprecatedMapper } from '../mapper/vc-deprecated-response.mapper';\nimport { VideoConferenceDeprecatedUc } from '../uc';\nimport { VideoConference, VideoConferenceInfo, VideoConferenceJoin, VideoConferenceState } from '../uc/dto';\nimport { VideoConferenceCreateParams } from './dto';\nimport {\n\tDeprecatedVideoConferenceInfoResponse,\n\tVideoConferenceBaseResponse,\n} from './dto/response/video-conference-deprecated.response';\n\n/**\n * This controller is deprecated. Please use {@link VideoConferenceController} instead.\n */\n@ApiTags('VideoConference')\n@Authenticate('jwt')\n@Controller('videoconference')\nexport class VideoConferenceDeprecatedController {\n\tconstructor(private readonly videoConferenceUc: VideoConferenceDeprecatedUc) {}\n\n\t@Post(':scope/:scopeId')\n\t@ApiOperation({\n\t\tsummary: 'Creates a join link for a video conference and creates the video conference, if it has not started yet.',\n\t})\n\t@ApiResponse({ status: 400, type: BadRequestException, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: 403,\n\t\ttype: ForbiddenException,\n\t\tdescription: 'User does not have the permission to create this conference.',\n\t})\n\t@ApiResponse({ status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.' })\n\tasync createAndJoin(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param('scope') scope: VideoConferenceScope,\n\t\t@Param('scopeId') scopeId: string,\n\t\t@Body() params: VideoConferenceCreateParams\n\t): Promise {\n\t\tconst infoDto: VideoConferenceInfo = await this.videoConferenceUc.getMeetingInfo(currentUser, scope, scopeId);\n\n\t\tif (infoDto.state !== VideoConferenceState.RUNNING) {\n\t\t\tawait this.videoConferenceUc.create(currentUser, scope, scopeId, {\n\t\t\t\teveryAttendeeJoinsMuted:\n\t\t\t\t\tparams.everyAttendeeJoinsMuted ?? defaultVideoConferenceOptions.everyAttendeeJoinsMuted,\n\t\t\t\teverybodyJoinsAsModerator:\n\t\t\t\t\tparams.everybodyJoinsAsModerator ?? defaultVideoConferenceOptions.everybodyJoinsAsModerator,\n\t\t\t\tmoderatorMustApproveJoinRequests:\n\t\t\t\t\tparams.moderatorMustApproveJoinRequests ?? defaultVideoConferenceOptions.moderatorMustApproveJoinRequests,\n\t\t\t});\n\t\t}\n\n\t\tconst dto: VideoConferenceJoin = await this.videoConferenceUc.join(currentUser, scope, scopeId);\n\n\t\treturn VideoConferenceResponseDeprecatedMapper.mapToJoinResponse(dto);\n\t}\n\n\t@Get(':scope/:scopeId')\n\t@ApiOperation({\n\t\tsummary: 'Returns information about a running video conference.',\n\t})\n\t@ApiResponse({\n\t\tstatus: 200,\n\t\ttype: DeprecatedVideoConferenceInfoResponse,\n\t\tdescription: 'Returns a list of information about a video conference.',\n\t})\n\t@ApiResponse({ status: 400, type: BadRequestException, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: 403,\n\t\ttype: ForbiddenException,\n\t\tdescription: 'User does not have the permission to get information about this conference.',\n\t})\n\t@ApiResponse({ status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.' })\n\tasync info(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param('scope') scope: VideoConferenceScope,\n\t\t@Param('scopeId') scopeId: string\n\t): Promise {\n\t\tconst dto: VideoConferenceInfo = await this.videoConferenceUc.getMeetingInfo(currentUser, scope, scopeId);\n\t\treturn VideoConferenceResponseDeprecatedMapper.mapToInfoResponse(dto);\n\t}\n\n\t@Delete(':scope/:scopeId')\n\t@ApiOperation({\n\t\tsummary: 'Ends a running video conference.',\n\t})\n\t@ApiResponse({ status: 400, type: BadRequestException, description: 'Invalid parameters.' })\n\t@ApiResponse({\n\t\tstatus: 403,\n\t\ttype: ForbiddenException,\n\t\tdescription: 'User does not have the permission to get information about this conference.',\n\t})\n\t@ApiResponse({ status: 500, type: InternalServerErrorException, description: 'Unable to fetch required data.' })\n\tasync end(\n\t\t@CurrentUser() currentUser: ICurrentUser,\n\t\t@Param('scope') scope: VideoConferenceScope,\n\t\t@Param('scopeId') scopeId: string\n\t): Promise {\n\t\tconst dto: VideoConference = await this.videoConferenceUc.end(currentUser, scope, scopeId);\n\t\treturn VideoConferenceResponseDeprecatedMapper.mapToBaseResponse(dto);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceEndUc.html":{"url":"injectables/VideoConferenceEndUc.html","title":"injectable - VideoConferenceEndUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceEndUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/video-conference-end.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n end\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbService: BBBService, userService: UserService, videoConferenceService: VideoConferenceService)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-end.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbService\n \n \n BBBService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceService\n \n \n VideoConferenceService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n end\n \n \n \n \n \n \n \n end(currentUserId: EntityId, scope: ScopeRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-end.uc.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise>\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, UserDO } from '@shared/domain';\nimport { ErrorStatus } from '@src/modules/video-conference/error/error-status.enum';\nimport { UserService } from '@src/modules/user';\nimport { BBBBaseMeetingConfig, BBBBaseResponse, BBBResponse, BBBRole, BBBService } from '../bbb';\nimport { IScopeInfo, ScopeRef, VideoConference, VideoConferenceState } from './dto';\nimport { VideoConferenceService } from '../service';\nimport { PermissionMapping } from '../mapper/video-conference.mapper';\n\n@Injectable()\nexport class VideoConferenceEndUc {\n\tconstructor(\n\t\tprivate readonly bbbService: BBBService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceService: VideoConferenceService\n\t) {}\n\n\tasync end(currentUserId: EntityId, scope: ScopeRef): Promise> {\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\t\tconst userId: string = user.id as string;\n\n\t\tawait this.videoConferenceService.throwOnFeaturesDisabled(user.schoolId);\n\n\t\tconst scopeInfo: IScopeInfo = await this.videoConferenceService.getScopeInfo(userId, scope.id, scope.scope);\n\n\t\tconst bbbRole: BBBRole = await this.videoConferenceService.determineBbbRole(userId, scopeInfo.scopeId, scope.scope);\n\n\t\tif (bbbRole !== BBBRole.MODERATOR) {\n\t\t\tthrow new ForbiddenException(ErrorStatus.INSUFFICIENT_PERMISSION);\n\t\t}\n\n\t\tconst config: BBBBaseMeetingConfig = new BBBBaseMeetingConfig({\n\t\t\tmeetingID: scope.id,\n\t\t});\n\n\t\tconst bbbResponse: BBBResponse = await this.bbbService.end(config);\n\n\t\tconst videoConference = new VideoConference({\n\t\t\tstate: VideoConferenceState.FINISHED,\n\t\t\tpermission: PermissionMapping[bbbRole],\n\t\t\tbbbResponse,\n\t\t});\n\t\treturn videoConference;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceInfo.html":{"url":"classes/VideoConferenceInfo.html","title":"class - VideoConferenceInfo","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceInfo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/video-conference-info.ts\n \n\n\n\n \n Extends\n \n \n VideoConference\n \n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n options\n \n \n \n \n target\n \n \n \n targetModel\n \n \n \n _id\n \n \n \n createdAt\n \n \n \n id\n \n \n \n updatedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dto: VideoConferenceInfo)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-info.ts:6\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n \n VideoConferenceInfo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n options\n \n \n \n \n \n \n Type : VideoConferenceOptions\n\n \n \n \n \n Inherited from VideoConference\n\n \n \n \n \n Defined in VideoConference:6\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n target\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @Property()@Index()\n \n \n \n \n \n Inherited from VideoConference\n\n \n \n \n \n Defined in VideoConference:31\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n targetModel\n \n \n \n \n \n \n Type : TargetModels\n\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from VideoConference\n\n \n \n \n \n Defined in VideoConference:34\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n _id\n \n \n \n \n \n \n Type : ObjectId\n\n \n \n \n \n Decorators : \n \n \n @PrimaryKey()\n \n \n \n \n \n Inherited from BaseEntityWithTimestamps\n\n \n \n \n \n Defined in BaseEntityWithTimestamps:25\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n createdAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property()\n \n \n \n \n \n Inherited from BaseEntityWithTimestamps\n\n \n \n \n \n Defined in BaseEntityWithTimestamps:31\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n id\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @SerializedPrimaryKey()\n \n \n \n \n \n Inherited from BaseEntityWithTimestamps\n\n \n \n \n \n Defined in BaseEntityWithTimestamps:28\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n updatedAt\n \n \n \n \n \n \n Default value : new Date()\n \n \n \n \n Decorators : \n \n \n @Property({onUpdate: () => })\n \n \n \n \n \n Inherited from BaseEntityWithTimestamps\n\n \n \n \n \n Defined in BaseEntityWithTimestamps:34\n\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { VideoConference } from './video-conference';\nimport { BBBMeetingInfoResponse } from '../../bbb';\nimport { VideoConferenceOptions } from '../../interface';\n\nexport class VideoConferenceInfo extends VideoConference {\n\toptions: VideoConferenceOptions;\n\n\tconstructor(dto: VideoConferenceInfo) {\n\t\tsuper(dto);\n\t\tthis.options = dto.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceInfoResponse.html":{"url":"classes/VideoConferenceInfoResponse.html","title":"class - VideoConferenceInfoResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceInfoResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-info.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n options\n \n \n \n state\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: VideoConferenceInfoResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-info.response.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n VideoConferenceInfoResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n options\n \n \n \n \n \n \n Type : VideoConferenceOptionsResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The options for the video conference.'})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-info.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceStateResponse\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({enum: VideoConferenceStateResponse, enumName: 'VideoConferenceStateResponse', description: 'The state of the video conference.'})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-info.response.ts:11\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\nimport { VideoConferenceOptionsResponse } from './video-conference-options.response';\nimport { VideoConferenceStateResponse } from './video-conference-state.response';\n\nexport class VideoConferenceInfoResponse {\n\t@ApiProperty({\n\t\tenum: VideoConferenceStateResponse,\n\t\tenumName: 'VideoConferenceStateResponse',\n\t\tdescription: 'The state of the video conference.',\n\t})\n\tstate: VideoConferenceStateResponse;\n\n\t@ApiProperty({ description: 'The options for the video conference.' })\n\toptions: VideoConferenceOptionsResponse;\n\n\tconstructor(resp: VideoConferenceInfoResponse) {\n\t\tthis.state = resp.state;\n\t\tthis.options = resp.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceInfoUc.html":{"url":"injectables/VideoConferenceInfoUc.html","title":"injectable - VideoConferenceInfoUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceInfoUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/video-conference-info.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n getMeetingInfo\n \n \n Private\n Async\n getVideoConferenceOptions\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbService: BBBService, userService: UserService, videoConferenceService: VideoConferenceService)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-info.uc.ts:12\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbService\n \n \n BBBService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceService\n \n \n VideoConferenceService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n getMeetingInfo\n \n \n \n \n \n \n \n getMeetingInfo(currentUserId: EntityId, scope: ScopeRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-info.uc.ts:19\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n getVideoConferenceOptions\n \n \n \n \n \n \n \n getVideoConferenceOptions(scope: ScopeRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-info.uc.ts:68\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, UserDO, VideoConferenceDO, VideoConferenceOptionsDO } from '@shared/domain';\nimport { ErrorStatus } from '@src/modules/video-conference/error/error-status.enum';\nimport { UserService } from '@src/modules/user';\nimport { BBBBaseMeetingConfig, BBBMeetingInfoResponse, BBBResponse, BBBRole, BBBService } from '../bbb';\nimport { IScopeInfo, ScopeRef, VideoConferenceInfo, VideoConferenceState } from './dto';\nimport { VideoConferenceService } from '../service';\nimport { PermissionMapping } from '../mapper/video-conference.mapper';\nimport { defaultVideoConferenceOptions, VideoConferenceOptions } from '../interface';\n\n@Injectable()\nexport class VideoConferenceInfoUc {\n\tconstructor(\n\t\tprivate readonly bbbService: BBBService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceService: VideoConferenceService\n\t) {}\n\n\tasync getMeetingInfo(currentUserId: EntityId, scope: ScopeRef): Promise {\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\n\t\tawait this.videoConferenceService.throwOnFeaturesDisabled(user.schoolId);\n\n\t\tconst scopeInfo: IScopeInfo = await this.videoConferenceService.getScopeInfo(currentUserId, scope.id, scope.scope);\n\n\t\tconst bbbRole: BBBRole = await this.videoConferenceService.determineBbbRole(\n\t\t\tcurrentUserId,\n\t\t\tscopeInfo.scopeId,\n\t\t\tscope.scope\n\t\t);\n\n\t\tconst config: BBBBaseMeetingConfig = new BBBBaseMeetingConfig({\n\t\t\tmeetingID: scope.id,\n\t\t});\n\n\t\tconst options: VideoConferenceOptionsDO = await this.getVideoConferenceOptions(scope);\n\n\t\tlet response: VideoConferenceInfo;\n\t\ttry {\n\t\t\tconst bbbResponse: BBBResponse = await this.bbbService.getMeetingInfo(config);\n\t\t\tresponse = new VideoConferenceInfo({\n\t\t\t\tstate: VideoConferenceState.RUNNING,\n\t\t\t\tpermission: PermissionMapping[bbbRole],\n\t\t\t\tbbbResponse,\n\t\t\t\toptions: bbbRole === BBBRole.MODERATOR ? options : ({} as VideoConferenceOptions),\n\t\t\t});\n\t\t} catch {\n\t\t\tresponse = new VideoConferenceInfo({\n\t\t\t\tstate: VideoConferenceState.NOT_STARTED,\n\t\t\t\tpermission: PermissionMapping[bbbRole],\n\t\t\t\toptions: bbbRole === BBBRole.MODERATOR ? options : ({} as VideoConferenceOptions),\n\t\t\t});\n\t\t}\n\n\t\tconst isGuest: boolean = await this.videoConferenceService.hasExpertRole(\n\t\t\tcurrentUserId,\n\t\t\tscope.scope,\n\t\t\tscopeInfo.scopeId\n\t\t);\n\n\t\tif (!this.videoConferenceService.canGuestJoin(isGuest, response.state, options.moderatorMustApproveJoinRequests)) {\n\t\t\tthrow new ForbiddenException(ErrorStatus.GUESTS_CANNOT_JOIN_CONFERENCE);\n\t\t}\n\n\t\treturn response;\n\t}\n\n\tprivate async getVideoConferenceOptions(scope: ScopeRef): Promise {\n\t\tlet options: VideoConferenceOptionsDO;\n\t\ttry {\n\t\t\tconst vcDO: VideoConferenceDO = await this.videoConferenceService.findVideoConferenceByScopeIdAndScope(\n\t\t\t\tscope.id,\n\t\t\t\tscope.scope\n\t\t\t);\n\t\t\toptions = vcDO.options;\n\t\t} catch {\n\t\t\toptions = defaultVideoConferenceOptions;\n\t\t}\n\t\treturn options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceJoin.html":{"url":"classes/VideoConferenceJoin.html","title":"class - VideoConferenceJoin","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceJoin\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n permission\n \n \n state\n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(dto: VideoConferenceJoin)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n dto\n \n \n VideoConferenceJoin\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n permission\n \n \n \n \n \n \n Type : Permission\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n state\n \n \n \n \n \n \n Type : VideoConferenceState\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/dto/video-conference-join.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Permission } from '@shared/domain';\nimport { VideoConferenceState } from './video-conference-state.enum';\n\nexport class VideoConferenceJoin {\n\tstate: VideoConferenceState;\n\n\tpermission: Permission;\n\n\turl: string;\n\n\tconstructor(dto: VideoConferenceJoin) {\n\t\tthis.state = dto.state;\n\t\tthis.permission = dto.permission;\n\t\tthis.url = dto.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceJoinResponse.html":{"url":"classes/VideoConferenceJoinResponse.html","title":"class - VideoConferenceJoinResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceJoinResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-join.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n url\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: VideoConferenceJoinResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-join.response.ts:5\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n VideoConferenceJoinResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n url\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'The URL to join the video conference.'})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-join.response.ts:5\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class VideoConferenceJoinResponse {\n\t@ApiProperty({ description: 'The URL to join the video conference.' })\n\turl: string;\n\n\tconstructor(resp: VideoConferenceJoinResponse) {\n\t\tthis.url = resp.url;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceJoinUc.html":{"url":"injectables/VideoConferenceJoinUc.html","title":"injectable - VideoConferenceJoinUc","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceJoinUc\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/uc/video-conference-join.uc.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Async\n join\n \n \n \n \n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(bbbService: BBBService, userService: UserService, videoConferenceService: VideoConferenceService)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-join.uc.ts:11\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n bbbService\n \n \n BBBService\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceService\n \n \n VideoConferenceService\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Async\n join\n \n \n \n \n \n \n \n join(currentUserId: EntityId, scope: ScopeRef)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/uc/video-conference-join.uc.ts:18\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n currentUserId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n ScopeRef\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n\n\n \n import { ForbiddenException, Injectable } from '@nestjs/common';\nimport { EntityId, UserDO, VideoConferenceDO } from '@shared/domain';\nimport { ErrorStatus } from '@src/modules/video-conference/error/error-status.enum';\nimport { UserService } from '@src/modules/user';\nimport { BBBJoinConfigBuilder, BBBRole, BBBService } from '../bbb';\nimport { ScopeRef, VideoConferenceJoin, VideoConferenceState } from './dto';\nimport { VideoConferenceService } from '../service';\nimport { PermissionMapping } from '../mapper/video-conference.mapper';\n\n@Injectable()\nexport class VideoConferenceJoinUc {\n\tconstructor(\n\t\tprivate readonly bbbService: BBBService,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceService: VideoConferenceService\n\t) {}\n\n\tasync join(currentUserId: EntityId, scope: ScopeRef): Promise {\n\t\tconst user: UserDO = await this.userService.findById(currentUserId);\n\n\t\tawait this.videoConferenceService.throwOnFeaturesDisabled(user.schoolId);\n\n\t\tconst { role, isGuest } = await this.videoConferenceService.getUserRoleAndGuestStatusByUserIdForBbb(\n\t\t\tcurrentUserId,\n\t\t\tscope.id,\n\t\t\tscope.scope\n\t\t);\n\n\t\tconst joinBuilder: BBBJoinConfigBuilder = new BBBJoinConfigBuilder({\n\t\t\tfullName: this.videoConferenceService.sanitizeString(`${user.firstName} ${user.lastName}`),\n\t\t\tmeetingID: scope.id,\n\t\t\trole,\n\t\t})\n\t\t\t.withUserId(currentUserId)\n\t\t\t.asGuest(isGuest);\n\n\t\tconst videoConference: VideoConferenceDO = await this.videoConferenceService.findVideoConferenceByScopeIdAndScope(\n\t\t\tscope.id,\n\t\t\tscope.scope\n\t\t);\n\n\t\tif (videoConference.options.everybodyJoinsAsModerator && !isGuest) {\n\t\t\tjoinBuilder.withRole(BBBRole.MODERATOR);\n\t\t}\n\n\t\tif (\n\t\t\tvideoConference.options.moderatorMustApproveJoinRequests &&\n\t\t\t!videoConference.options.everybodyJoinsAsModerator\n\t\t) {\n\t\t\tjoinBuilder.asGuest(true);\n\t\t}\n\n\t\tif (!videoConference.options.moderatorMustApproveJoinRequests && isGuest) {\n\t\t\tthrow new ForbiddenException(\n\t\t\t\tErrorStatus.GUESTS_CANNOT_JOIN_CONFERENCE,\n\t\t\t\t'Guests cannot join this conference, since the waiting room is not enabled.'\n\t\t\t);\n\t\t}\n\n\t\tconst url: string = await this.bbbService.join(joinBuilder.build());\n\n\t\tconst videoConferenceJoin: VideoConferenceJoin = new VideoConferenceJoin({\n\t\t\tstate: VideoConferenceState.RUNNING,\n\t\t\tpermission: PermissionMapping[role],\n\t\t\turl,\n\t\t});\n\t\treturn videoConferenceJoin;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceMapper.html":{"url":"classes/VideoConferenceMapper.html","title":"class - VideoConferenceMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts\n \n\n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n toVideoConferenceInfoResponse\n \n \n Static\n toVideoConferenceJoinResponse\n \n \n Static\n toVideoConferenceOptions\n \n \n Static\n toVideoConferenceStateResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n toVideoConferenceInfoResponse\n \n \n \n \n \n \n \n toVideoConferenceInfoResponse(videoConferenceInfo: VideoConferenceInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts:31\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n videoConferenceInfo\n \n VideoConferenceInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceInfoResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n toVideoConferenceJoinResponse\n \n \n \n \n \n \n \n toVideoConferenceJoinResponse(videoConferenceJoin: VideoConferenceJoin)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts:38\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n videoConferenceJoin\n \n VideoConferenceJoin\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceJoinResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n toVideoConferenceOptions\n \n \n \n \n \n \n \n toVideoConferenceOptions(params: VideoConferenceCreateParams)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts:48\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n params\n \n VideoConferenceCreateParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceOptions\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n toVideoConferenceStateResponse\n \n \n \n \n \n \n \n toVideoConferenceStateResponse(state: VideoConferenceState)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/video-conference.mapper.ts:44\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n state\n \n VideoConferenceState\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceStateResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { Permission, VideoConferenceScope } from '@shared/domain';\nimport { AuthorizableReferenceType } from '@src/modules/authorization';\nimport { BBBRole } from '../bbb';\nimport {\n\tVideoConferenceCreateParams,\n\tVideoConferenceInfoResponse,\n\tVideoConferenceJoinResponse,\n\tVideoConferenceStateResponse,\n} from '../controller/dto';\nimport { VideoConferenceOptionsResponse } from '../controller/dto/response/video-conference-options.response';\nimport { defaultVideoConferenceOptions, VideoConferenceOptions } from '../interface';\nimport { VideoConferenceInfo, VideoConferenceJoin, VideoConferenceState } from '../uc/dto';\n\nexport const PermissionMapping = {\n\t[BBBRole.MODERATOR]: Permission.START_MEETING,\n\t[BBBRole.VIEWER]: Permission.JOIN_MEETING,\n};\n\nexport const PermissionScopeMapping = {\n\t[VideoConferenceScope.COURSE]: AuthorizableReferenceType.Course,\n\t[VideoConferenceScope.EVENT]: AuthorizableReferenceType.Team,\n};\n\nconst stateMapping = {\n\t[VideoConferenceState.NOT_STARTED]: VideoConferenceStateResponse.NOT_STARTED,\n\t[VideoConferenceState.RUNNING]: VideoConferenceStateResponse.RUNNING,\n\t[VideoConferenceState.FINISHED]: VideoConferenceStateResponse.FINISHED,\n};\n\nexport class VideoConferenceMapper {\n\tstatic toVideoConferenceInfoResponse(videoConferenceInfo: VideoConferenceInfo): VideoConferenceInfoResponse {\n\t\treturn new VideoConferenceInfoResponse({\n\t\t\tstate: this.toVideoConferenceStateResponse(videoConferenceInfo.state),\n\t\t\toptions: new VideoConferenceOptionsResponse(videoConferenceInfo.options),\n\t\t});\n\t}\n\n\tstatic toVideoConferenceJoinResponse(videoConferenceJoin: VideoConferenceJoin): VideoConferenceJoinResponse {\n\t\treturn new VideoConferenceJoinResponse({\n\t\t\turl: videoConferenceJoin.url,\n\t\t});\n\t}\n\n\tstatic toVideoConferenceStateResponse(state: VideoConferenceState): VideoConferenceStateResponse {\n\t\treturn stateMapping[state];\n\t}\n\n\tstatic toVideoConferenceOptions(params: VideoConferenceCreateParams): VideoConferenceOptions {\n\t\treturn {\n\t\t\teveryAttendeeJoinsMuted: params.everyAttendeeJoinsMuted ?? defaultVideoConferenceOptions.everyAttendeeJoinsMuted,\n\t\t\teverybodyJoinsAsModerator:\n\t\t\t\tparams.everybodyJoinsAsModerator ?? defaultVideoConferenceOptions.everybodyJoinsAsModerator,\n\t\t\tmoderatorMustApproveJoinRequests:\n\t\t\t\tparams.moderatorMustApproveJoinRequests ?? defaultVideoConferenceOptions.moderatorMustApproveJoinRequests,\n\t\t\tlogoutUrl: params.logoutUrl,\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules/VideoConferenceModule.html":{"url":"modules/VideoConferenceModule.html","title":"module - VideoConferenceModule","body":"\n \n\n\n\n\n Modules\n VideoConferenceModule\n\n\n\n \n \n\n\n\n\n\ndependencies\n\nLegend\n\n  Declarations\n\n  Module\n\n  Bootstrap\n\n  Providers\n\n  Exports\n\ncluster_VideoConferenceModule\n\n\n\ncluster_VideoConferenceModule_providers\n\n\n\ncluster_VideoConferenceModule_exports\n\n\n\ncluster_VideoConferenceModule_imports\n\n\n\n\nAuthorizationModule\n\nAuthorizationModule\n\n\n\nVideoConferenceModule\n\nVideoConferenceModule\n\nVideoConferenceModule -->\n\nAuthorizationModule->VideoConferenceModule\n\n\n\n\n\nCalendarModule\n\nCalendarModule\n\nVideoConferenceModule -->\n\nCalendarModule->VideoConferenceModule\n\n\n\n\n\nLearnroomModule\n\nLearnroomModule\n\nVideoConferenceModule -->\n\nLearnroomModule->VideoConferenceModule\n\n\n\n\n\nLegacySchoolModule\n\nLegacySchoolModule\n\nVideoConferenceModule -->\n\nLegacySchoolModule->VideoConferenceModule\n\n\n\n\n\nLoggerModule\n\nLoggerModule\n\nVideoConferenceModule -->\n\nLoggerModule->VideoConferenceModule\n\n\n\n\n\nUserModule\n\nUserModule\n\nVideoConferenceModule -->\n\nUserModule->VideoConferenceModule\n\n\n\nVideoConferenceModule -->\n\nUserModule->VideoConferenceModule\n\n\n\n\n\nBBBService \n\nBBBService \n\nBBBService -->\n\nVideoConferenceModule->BBBService \n\n\n\n\n\nVideoConferenceService \n\nVideoConferenceService \n\nVideoConferenceService -->\n\nVideoConferenceModule->VideoConferenceService \n\n\n\n\n\nBBBService\n\nBBBService\n\nVideoConferenceModule -->\n\nBBBService->VideoConferenceModule\n\n\n\n\n\nConverterUtil\n\nConverterUtil\n\nVideoConferenceModule -->\n\nConverterUtil->VideoConferenceModule\n\n\n\n\n\nTeamsRepo\n\nTeamsRepo\n\nVideoConferenceModule -->\n\nTeamsRepo->VideoConferenceModule\n\n\n\n\n\nVideoConferenceDeprecatedUc\n\nVideoConferenceDeprecatedUc\n\nVideoConferenceModule -->\n\nVideoConferenceDeprecatedUc->VideoConferenceModule\n\n\n\n\n\nVideoConferenceRepo\n\nVideoConferenceRepo\n\nVideoConferenceModule -->\n\nVideoConferenceRepo->VideoConferenceModule\n\n\n\n\n\nVideoConferenceService\n\nVideoConferenceService\n\nVideoConferenceModule -->\n\nVideoConferenceService->VideoConferenceModule\n\n\n\n\n\n\n \n \n \n Zoom in\n Reset\n Zoom out\n \n\n\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n\n \n File\n \n \n apps/server/src/modules/video-conference/video-conference.module.ts\n \n\n\n\n\n\n \n \n \n Providers\n \n \n BBBService\n \n \n ConverterUtil\n \n \n TeamsRepo\n \n \n VideoConferenceDeprecatedUc\n \n \n VideoConferenceRepo\n \n \n VideoConferenceService\n \n \n \n \n Controllers\n \n \n VideoConferenceDeprecatedController\n \n \n \n \n Imports\n \n \n AuthorizationModule\n \n \n CalendarModule\n \n \n LearnroomModule\n \n \n LegacySchoolModule\n \n \n LoggerModule\n \n \n UserModule\n \n \n UserModule\n \n \n \n \n Exports\n \n \n BBBService\n \n \n VideoConferenceService\n \n \n \n \n \n\n\n \n\n\n \n import { Module } from '@nestjs/common';\nimport { HttpModule } from '@nestjs/axios';\nimport { CalendarModule } from '@shared/infra/calendar';\nimport { VideoConferenceRepo } from '@shared/repo/videoconference/video-conference.repo';\nimport { AuthorizationModule } from '@src/modules/authorization';\nimport { TeamsRepo } from '@shared/repo';\nimport { LegacySchoolModule } from '@src/modules/legacy-school';\nimport { LoggerModule } from '@src/core/logger';\nimport { ConverterUtil } from '@shared/common';\nimport { UserModule } from '@src/modules/user';\nimport { BBBService, BbbSettings } from './bbb';\nimport { VideoConferenceService } from './service';\nimport { VideoConferenceDeprecatedUc } from './uc';\nimport { VideoConferenceDeprecatedController } from './controller';\nimport VideoConferenceConfiguration from './video-conference-config';\nimport { VideoConferenceSettings } from './interface';\nimport { LearnroomModule } from '../learnroom';\n\n@Module({\n\timports: [\n\t\tAuthorizationModule,\n\t\tCalendarModule,\n\t\tHttpModule,\n\t\tLegacySchoolModule,\n\t\tLoggerModule,\n\t\tUserModule,\n\t\tLearnroomModule,\n\t\tUserModule,\n\t],\n\tproviders: [\n\t\t{\n\t\t\tprovide: VideoConferenceSettings,\n\t\t\tuseValue: VideoConferenceConfiguration.videoConference,\n\t\t},\n\t\t{\n\t\t\tprovide: BbbSettings,\n\t\t\tuseValue: VideoConferenceConfiguration.bbb,\n\t\t},\n\t\tBBBService,\n\t\tVideoConferenceRepo,\n\t\t// TODO: N21-1010 clean up video conferences - remove repos\n\t\tTeamsRepo,\n\t\tConverterUtil,\n\t\tVideoConferenceService,\n\t\t// TODO: N21-885 remove VideoConferenceDeprecatedUc from providers\n\t\tVideoConferenceDeprecatedUc,\n\t],\n\t// TODO: N21-885 remove VideoConferenceDeprecatedController from exports\n\tcontrollers: [VideoConferenceDeprecatedController],\n\texports: [BBBService, VideoConferenceService],\n})\nexport class VideoConferenceModule {}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceOptions.html":{"url":"classes/VideoConferenceOptions.html","title":"class - VideoConferenceOptions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceOptions\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/entity/video-conference.entity.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n everyAttendeJoinsMuted\n \n \n everybodyJoinsAsModerator\n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(options: VideoConferenceOptions)\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:14\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n \n VideoConferenceOptions\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n everyAttendeJoinsMuted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:10\n \n \n\n\n \n \n \n \n \n \n \n \n everybodyJoinsAsModerator\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:12\n \n \n\n\n \n \n \n \n \n \n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/entity/video-conference.entity.ts:14\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { Entity, Index, Property } from '@mikro-orm/core';\nimport { BaseEntityWithTimestamps } from './base.entity';\n\nexport enum TargetModels {\n\tCOURSES = 'courses',\n\tEVENTS = 'events',\n}\n\nexport class VideoConferenceOptions {\n\teveryAttendeJoinsMuted: boolean;\n\n\teverybodyJoinsAsModerator: boolean;\n\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(options: VideoConferenceOptions) {\n\t\tthis.everyAttendeJoinsMuted = options.everyAttendeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = options.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = options.moderatorMustApproveJoinRequests;\n\t}\n}\n\nexport type IVideoConferenceProperties = Readonly>;\n\n// Preset options for opening a video conference\n@Entity({ tableName: 'videoconferences' })\n@Index({ properties: ['target', 'targetModel'] })\nexport class VideoConference extends BaseEntityWithTimestamps {\n\t@Property()\n\t@Index()\n\ttarget: string;\n\n\t@Property()\n\ttargetModel: TargetModels;\n\n\t@Property()\n\toptions: VideoConferenceOptions;\n\n\tconstructor(props: IVideoConferenceProperties) {\n\t\tsuper();\n\t\tthis.target = props.target;\n\t\tthis.targetModel = props.targetModel;\n\t\tthis.options = props.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceOptionsDO.html":{"url":"classes/VideoConferenceOptionsDO.html","title":"class - VideoConferenceOptionsDO","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceOptionsDO\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/domain/domainobject/video-conference.do.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n everyAttendeeJoinsMuted\n \n \n everybodyJoinsAsModerator\n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(options: VideoConferenceOptionsDO)\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:9\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n options\n \n \n VideoConferenceOptionsDO\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n everyAttendeeJoinsMuted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:5\n \n \n\n\n \n \n \n \n \n \n \n \n everybodyJoinsAsModerator\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:7\n \n \n\n\n \n \n \n \n \n \n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Defined in apps/server/src/shared/domain/domainobject/video-conference.do.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { VideoConferenceScope } from '@shared/domain/interface/video-conference-scope.enum';\nimport { BaseDO } from './base.do';\n\nexport class VideoConferenceOptionsDO {\n\teveryAttendeeJoinsMuted: boolean;\n\n\teverybodyJoinsAsModerator: boolean;\n\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(options: VideoConferenceOptionsDO) {\n\t\tthis.everyAttendeeJoinsMuted = options.everyAttendeeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = options.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = options.moderatorMustApproveJoinRequests;\n\t}\n}\n\nexport class VideoConferenceDO extends BaseDO {\n\ttarget: string;\n\n\ttargetModel: VideoConferenceScope;\n\n\toptions: VideoConferenceOptionsDO;\n\n\tconstructor(domainObject: VideoConferenceDO) {\n\t\tsuper(domainObject.id);\n\n\t\tthis.target = domainObject.target;\n\t\tthis.targetModel = domainObject.targetModel;\n\t\tthis.options = domainObject.options;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceOptionsResponse.html":{"url":"classes/VideoConferenceOptionsResponse.html","title":"class - VideoConferenceOptionsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceOptionsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n everyAttendeeJoinsMuted\n \n \n \n everybodyJoinsAsModerator\n \n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(resp: VideoConferenceOptionsResponse)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts:20\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n resp\n \n \n VideoConferenceOptionsResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n everyAttendeeJoinsMuted\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Every attendee joins muted', example: false})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n everybodyJoinsAsModerator\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Every attendee joins as a moderator', example: false})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts:14\n \n \n\n\n \n \n \n \n \n \n \n \n \n moderatorMustApproveJoinRequests\n \n \n \n \n \n \n Type : boolean\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({description: 'Moderator must approve join requests', example: true})\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/response/video-conference-options.response.ts:20\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiProperty } from '@nestjs/swagger';\n\nexport class VideoConferenceOptionsResponse {\n\t@ApiProperty({\n\t\tdescription: 'Every attendee joins muted',\n\t\texample: false,\n\t})\n\teveryAttendeeJoinsMuted: boolean;\n\n\t@ApiProperty({\n\t\tdescription: 'Every attendee joins as a moderator',\n\t\texample: false,\n\t})\n\teverybodyJoinsAsModerator: boolean;\n\n\t@ApiProperty({\n\t\tdescription: 'Moderator must approve join requests',\n\t\texample: true,\n\t})\n\tmoderatorMustApproveJoinRequests: boolean;\n\n\tconstructor(resp: VideoConferenceOptionsResponse) {\n\t\tthis.everyAttendeeJoinsMuted = resp.everyAttendeeJoinsMuted;\n\t\tthis.everybodyJoinsAsModerator = resp.everybodyJoinsAsModerator;\n\t\tthis.moderatorMustApproveJoinRequests = resp.moderatorMustApproveJoinRequests;\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceRepo.html":{"url":"injectables/VideoConferenceRepo.html","title":"injectable - VideoConferenceRepo","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceRepo\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/shared/repo/videoconference/video-conference.repo.ts\n \n\n\n\n \n Extends\n \n \n BaseDORepo\n \n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n entityFactory\n \n \n Async\n findByScopeAndScopeId\n \n \n Protected\n mapDOToEntityProperties\n \n \n Protected\n mapEntityToDO\n \n \n Private\n createEntity\n \n \n Protected\n createNewEntityFromDO\n \n \n Async\n delete\n \n \n Async\n deleteById\n \n \n Private\n deleteEntityById\n \n \n Async\n findById\n \n \n Private\n removeProtectedEntityFields\n \n \n Async\n save\n \n \n Async\n saveAll\n \n \n Private\n Async\n updateEntity\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n \n \n \n \n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n entityFactory\n \n \n \n \n \n \nentityFactory(props: IVideoConferenceProperties)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n props\n \n IVideoConferenceProperties\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConference\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findByScopeAndScopeId\n \n \n \n \n \n \n \n findByScopeAndScopeId(scopeId: string, videoConferenceScope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/shared/repo/videoconference/video-conference.repo.ts:28\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n videoConferenceScope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapDOToEntityProperties\n \n \n \n \n \n \n \n mapDOToEntityProperties(entityDO: VideoConferenceDO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDO\n \n VideoConferenceDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : IVideoConferenceProperties\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n mapEntityToDO\n \n \n \n \n \n \n \n mapEntityToDO(entity: VideoConference)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:37\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n VideoConference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceDO\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n createEntity\n \n \n \n \n \n \n \n createEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:42\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Protected\n createNewEntityFromDO\n \n \n \n \n \n \n \n createNewEntityFromDO(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:63\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : E\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n delete\n \n \n \n \n \n \n \n delete(domainObjects: DO[] | DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:85\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObjects\n \n DO[] | DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n deleteById\n \n \n \n \n \n \n [object Object],[object Object],[object Object]\n \n \n \n \n \n deleteById(id: EntityId | EntityId[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:98\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId | EntityId[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n deleteEntityById\n \n \n \n \n \n \n \n deleteEntityById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:111\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findById\n \n \n \n \n \n \n \n findById(id: EntityId)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:116\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n id\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n removeProtectedEntityFields\n \n \n \n \n \n \n \n removeProtectedEntityFields(entity: E)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:77\n\n \n \n\n\n \n \n Ignore base entity properties when updating entity\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entity\n \n E\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : void\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n save\n \n \n \n \n \n \n \n save(entityDo: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:19\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDo\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n saveAll\n \n \n \n \n \n \n \n saveAll(entityDos: DO[])\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:24\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n entityDos\n \n DO[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n updateEntity\n \n \n \n \n \n \n \n updateEntity(domainObject: DO)\n \n \n\n\n \n \n Inherited from BaseDORepo\n\n \n \n \n \n Defined in BaseDORepo:50\n\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n domainObject\n \n DO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n entityName\n \n \n\n \n \n getentityName()\n \n \n \n \n Defined in apps/server/src/shared/repo/videoconference/video-conference.repo.ts:20\n \n \n\n \n \n\n \n\n\n \n import { Injectable } from '@nestjs/common';\nimport { IVideoConferenceProperties, VideoConferenceDO } from '@shared/domain';\nimport { TargetModels, VideoConference } from '@shared/domain/entity/video-conference.entity';\nimport { VideoConferenceScope } from '@shared/domain/interface';\nimport { BaseDORepo } from '@shared/repo/base.do.repo';\nimport { EntityName, Loaded } from '@mikro-orm/core';\n\nconst TargetModelsMapping = {\n\t[VideoConferenceScope.EVENT]: TargetModels.EVENTS,\n\t[VideoConferenceScope.COURSE]: TargetModels.COURSES,\n};\n\nconst VideoConferencingScopeMapping = {\n\t[TargetModels.EVENTS]: VideoConferenceScope.EVENT,\n\t[TargetModels.COURSES]: VideoConferenceScope.COURSE,\n};\n\n@Injectable()\nexport class VideoConferenceRepo extends BaseDORepo {\n\tget entityName(): EntityName {\n\t\treturn VideoConference;\n\t}\n\n\tentityFactory(props: IVideoConferenceProperties): VideoConference {\n\t\treturn new VideoConference(props);\n\t}\n\n\tasync findByScopeAndScopeId(scopeId: string, videoConferenceScope: VideoConferenceScope): Promise {\n\t\tconst entity: Loaded = await this._em.findOneOrFail(VideoConference, {\n\t\t\ttarget: scopeId,\n\t\t\ttargetModel: TargetModelsMapping[videoConferenceScope],\n\t\t});\n\n\t\treturn this.mapEntityToDO(entity);\n\t}\n\n\tprotected mapEntityToDO(entity: VideoConference): VideoConferenceDO {\n\t\treturn new VideoConferenceDO({\n\t\t\tid: entity.id,\n\t\t\ttarget: entity.target,\n\t\t\ttargetModel: VideoConferencingScopeMapping[entity.targetModel],\n\t\t\toptions: {\n\t\t\t\teverybodyJoinsAsModerator: entity.options.everybodyJoinsAsModerator,\n\t\t\t\teveryAttendeeJoinsMuted: entity.options.everyAttendeJoinsMuted,\n\t\t\t\tmoderatorMustApproveJoinRequests: entity.options.moderatorMustApproveJoinRequests,\n\t\t\t},\n\t\t});\n\t}\n\n\tprotected mapDOToEntityProperties(entityDO: VideoConferenceDO): IVideoConferenceProperties {\n\t\treturn {\n\t\t\ttarget: entityDO.target,\n\t\t\ttargetModel: TargetModelsMapping[entityDO.targetModel],\n\t\t\toptions: {\n\t\t\t\teverybodyJoinsAsModerator: entityDO.options.everybodyJoinsAsModerator,\n\t\t\t\teveryAttendeJoinsMuted: entityDO.options.everyAttendeeJoinsMuted,\n\t\t\t\tmoderatorMustApproveJoinRequests: entityDO.options.moderatorMustApproveJoinRequests,\n\t\t\t},\n\t\t};\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceResponseDeprecatedMapper.html":{"url":"classes/VideoConferenceResponseDeprecatedMapper.html","title":"class - VideoConferenceResponseDeprecatedMapper","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceResponseDeprecatedMapper\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/mapper/vc-deprecated-response.mapper.ts\n \n\n \n Deprecated\n \n \n Please use the VideoConferenceResponseMapper instead.\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n Static\n mapToBaseResponse\n \n \n Static\n mapToInfoResponse\n \n \n Static\n mapToJoinResponse\n \n \n \n \n\n\n\n\n\n \n \n\n\n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n Static\n mapToBaseResponse\n \n \n \n \n \n \n \n mapToBaseResponse(from: VideoConference)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/vc-deprecated-response.mapper.ts:14\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n from\n \n VideoConference\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : VideoConferenceBaseResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToInfoResponse\n \n \n \n \n \n \n \n mapToInfoResponse(from: VideoConferenceInfo)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/vc-deprecated-response.mapper.ts:29\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n from\n \n VideoConferenceInfo\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DeprecatedVideoConferenceInfoResponse\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Static\n mapToJoinResponse\n \n \n \n \n \n \n \n mapToJoinResponse(from: VideoConferenceJoin)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/mapper/vc-deprecated-response.mapper.ts:21\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n from\n \n VideoConferenceJoin\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : DeprecatedVideoConferenceJoinResponse\n\n \n \n \n \n \n \n \n \n\n\n\n\n\n\n \n\n\n \n import { BBBBaseResponse } from '../bbb';\nimport {\n\tDeprecatedVideoConferenceInfoResponse,\n\tDeprecatedVideoConferenceJoinResponse,\n\tVideoConferenceBaseResponse,\n} from '../controller/dto/response/video-conference-deprecated.response';\nimport { VideoConference, VideoConferenceInfo, VideoConferenceJoin } from '../uc/dto';\nimport { VideoConferenceMapper } from './video-conference.mapper';\n\n/**\n * @deprecated Please use the VideoConferenceResponseMapper instead.\n */\nexport class VideoConferenceResponseDeprecatedMapper {\n\tstatic mapToBaseResponse(from: VideoConference): VideoConferenceBaseResponse {\n\t\treturn new VideoConferenceBaseResponse({\n\t\t\tstate: VideoConferenceMapper.toVideoConferenceStateResponse(from.state),\n\t\t\tpermission: from.permission,\n\t\t});\n\t}\n\n\tstatic mapToJoinResponse(from: VideoConferenceJoin): DeprecatedVideoConferenceJoinResponse {\n\t\treturn new DeprecatedVideoConferenceJoinResponse({\n\t\t\tstate: VideoConferenceMapper.toVideoConferenceStateResponse(from.state),\n\t\t\tpermission: from.permission,\n\t\t\turl: from.url,\n\t\t});\n\t}\n\n\tstatic mapToInfoResponse(from: VideoConferenceInfo): DeprecatedVideoConferenceInfoResponse {\n\t\treturn new DeprecatedVideoConferenceInfoResponse({\n\t\t\tstate: VideoConferenceMapper.toVideoConferenceStateResponse(from.state),\n\t\t\tpermission: from.permission,\n\t\t\toptions: from.options,\n\t\t});\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VideoConferenceScopeParams.html":{"url":"classes/VideoConferenceScopeParams.html","title":"class - VideoConferenceScopeParams","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VideoConferenceScopeParams\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/controller/dto/request/video-conference-scope.params.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n \n scope\n \n \n \n \n scopeId\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n \n scope\n \n \n \n \n \n \n Type : VideoConferenceScope\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true, enum: VideoConferenceScope, enumName: 'VideoConferenceScope'})@IsEnum(VideoConferenceScope)\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-scope.params.ts:8\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n scopeId\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiProperty({nullable: false, required: true})@IsMongoId()\n \n \n \n \n \n Defined in apps/server/src/modules/video-conference/controller/dto/request/video-conference-scope.params.ts:12\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { VideoConferenceScope } from '@shared/domain';\nimport { IsEnum, IsMongoId } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class VideoConferenceScopeParams {\n\t@ApiProperty({ nullable: false, required: true, enum: VideoConferenceScope, enumName: 'VideoConferenceScope' })\n\t@IsEnum(VideoConferenceScope)\n\tscope!: VideoConferenceScope;\n\n\t@ApiProperty({ nullable: false, required: true })\n\t@IsMongoId()\n\tscopeId!: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"injectables/VideoConferenceService.html":{"url":"injectables/VideoConferenceService.html","title":"injectable - VideoConferenceService","body":"\n \n\n\n\n\n\n\n\n\n\n Injectables\n VideoConferenceService\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/video-conference/service/video-conference.service.ts\n \n\n\n\n\n\n \n Index\n \n \n\n \n \n Methods\n \n \n \n \n \n \n canGuestJoin\n \n \n Async\n createOrUpdateVideoConferenceForScopeWithOptions\n \n \n Async\n determineBbbRole\n \n \n Private\n existsExpertRole\n \n \n Async\n findVideoConferenceByScopeIdAndScope\n \n \n Async\n getScopeInfo\n \n \n Async\n getUserRoleAndGuestStatusByUserIdForBbb\n \n \n Async\n hasExpertRole\n \n \n Private\n hasPermissions\n \n \n sanitizeString\n \n \n Private\n Async\n saveVideoConference\n \n \n Async\n throwOnFeaturesDisabled\n \n \n \n \n\n\n\n\n\n \n \n Accessors\n \n \n \n \n \n \n hostUrl\n \n \n isVideoConferenceFeatureEnabled\n \n \n \n \n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(vcSettings: IVideoConferenceSettings, courseService: CourseService, calendarService: CalendarService, authorizationService: AuthorizationService, schoolService: LegacySchoolService, teamsRepo: TeamsRepo, userService: UserService, videoConferenceRepo: VideoConferenceRepo)\n \n \n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:34\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n vcSettings\n \n \n IVideoConferenceSettings\n \n \n \n No\n \n \n \n \n courseService\n \n \n CourseService\n \n \n \n No\n \n \n \n \n calendarService\n \n \n CalendarService\n \n \n \n No\n \n \n \n \n authorizationService\n \n \n AuthorizationService\n \n \n \n No\n \n \n \n \n schoolService\n \n \n LegacySchoolService\n \n \n \n No\n \n \n \n \n teamsRepo\n \n \n TeamsRepo\n \n \n \n No\n \n \n \n \n userService\n \n \n UserService\n \n \n \n No\n \n \n \n \n videoConferenceRepo\n \n \n VideoConferenceRepo\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Methods\n \n \n \n \n \n \n \n canGuestJoin\n \n \n \n \n \n \ncanGuestJoin(isGuest: boolean, state: VideoConferenceState, waitingRoomEnabled: boolean)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:54\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n isGuest\n \n boolean\n \n\n \n No\n \n\n\n \n \n state\n \n VideoConferenceState\n \n\n \n No\n \n\n\n \n \n waitingRoomEnabled\n \n boolean\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n createOrUpdateVideoConferenceForScopeWithOptions\n \n \n \n \n \n \n \n createOrUpdateVideoConferenceForScopeWithOptions(scopeId: EntityId, scope: VideoConferenceScope, options: VideoConferenceOptions)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:198\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scopeId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n options\n \n VideoConferenceOptions\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n determineBbbRole\n \n \n \n \n \n \n \n determineBbbRole(userId: EntityId, scopeId: EntityId, scope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:95\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scopeId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n existsExpertRole\n \n \n \n \n \n \n \n existsExpertRole(roles: RoleReference[])\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:87\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n roles\n \n RoleReference[]\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : boolean\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n findVideoConferenceByScopeIdAndScope\n \n \n \n \n \n \n \n findVideoConferenceByScopeIdAndScope(scopeId: EntityId, scope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:189\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n scopeId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getScopeInfo\n \n \n \n \n \n \n \n getScopeInfo(userId: EntityId, scopeId: string, scope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:148\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n getUserRoleAndGuestStatusByUserIdForBbb\n \n \n \n \n \n \n \n getUserRoleAndGuestStatusByUserIdForBbb(userId: string, scopeId: EntityId, scope: VideoConferenceScope)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:175\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n scopeId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n scope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n hasExpertRole\n \n \n \n \n \n \n \n hasExpertRole(userId: EntityId, conferenceScope: VideoConferenceScope, scopeId: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:61\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n conferenceScope\n \n VideoConferenceScope\n \n\n \n No\n \n\n\n \n \n scopeId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n hasPermissions\n \n \n \n \n \n \n \n hasPermissions(userId: EntityId, entityName: AuthorizableReferenceType, entityId: EntityId, permissions: Permission[], action: Action)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:113\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n userId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n entityName\n \n AuthorizableReferenceType\n \n\n \n No\n \n\n\n \n \n entityId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n permissions\n \n Permission[]\n \n\n \n No\n \n\n\n \n \n action\n \n Action\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Map>\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n sanitizeString\n \n \n \n \n \n \nsanitizeString(text: string)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:144\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n text\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : any\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Private\n Async\n saveVideoConference\n \n \n \n \n \n \n \n saveVideoConference(videoConference: VideoConferenceDO)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:223\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n videoConference\n \n VideoConferenceDO\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Async\n throwOnFeaturesDisabled\n \n \n \n \n \n \n \n throwOnFeaturesDisabled(schoolId: EntityId)\n \n \n\n\n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:130\n \n \n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Promise\n\n \n \n \n \n \n \n \n \n\n\n \n \n Accessors\n \n \n \n \n \n \n hostUrl\n \n \n\n \n \n gethostUrl()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:46\n \n \n\n \n \n \n \n \n \n \n isVideoConferenceFeatureEnabled\n \n \n\n \n \n getisVideoConferenceFeatureEnabled()\n \n \n \n \n Defined in apps/server/src/modules/video-conference/service/video-conference.service.ts:50\n \n \n\n \n \n\n \n\n\n \n import { BadRequestException, ForbiddenException, Inject, Injectable } from '@nestjs/common';\nimport {\n\tCourse,\n\tEntityId,\n\tPermission,\n\tRoleName,\n\tRoleReference,\n\tSchoolFeatures,\n\tTeamEntity,\n\tTeamUserEntity,\n\tUserDO,\n\tVideoConferenceDO,\n\tVideoConferenceOptionsDO,\n\tVideoConferenceScope,\n} from '@shared/domain';\nimport { CalendarEventDto, CalendarService } from '@shared/infra/calendar';\nimport { TeamsRepo, VideoConferenceRepo } from '@shared/repo';\nimport {\n\tAction,\n\tAuthorizableReferenceType,\n\tAuthorizationContextBuilder,\n\tAuthorizationService,\n} from '@src/modules/authorization';\nimport { CourseService } from '@src/modules/learnroom/service';\nimport { LegacySchoolService } from '@src/modules/legacy-school';\nimport { UserService } from '@src/modules/user';\nimport { BBBRole } from '../bbb';\nimport { ErrorStatus } from '../error/error-status.enum';\nimport { IVideoConferenceSettings, VideoConferenceOptions, VideoConferenceSettings } from '../interface';\nimport { PermissionScopeMapping } from '../mapper/video-conference.mapper';\nimport { IScopeInfo, VideoConferenceState } from '../uc/dto';\n\n@Injectable()\nexport class VideoConferenceService {\n\tconstructor(\n\t\t@Inject(VideoConferenceSettings) private readonly vcSettings: IVideoConferenceSettings,\n\t\tprivate readonly courseService: CourseService,\n\t\tprivate readonly calendarService: CalendarService,\n\t\tprivate readonly authorizationService: AuthorizationService,\n\t\tprivate readonly schoolService: LegacySchoolService,\n\t\tprivate readonly teamsRepo: TeamsRepo,\n\t\tprivate readonly userService: UserService,\n\t\tprivate readonly videoConferenceRepo: VideoConferenceRepo\n\t) {}\n\n\tget hostUrl(): string {\n\t\treturn this.vcSettings.hostUrl;\n\t}\n\n\tget isVideoConferenceFeatureEnabled(): boolean {\n\t\treturn this.vcSettings.enabled;\n\t}\n\n\tcanGuestJoin(isGuest: boolean, state: VideoConferenceState, waitingRoomEnabled: boolean): boolean {\n\t\tif ((isGuest && state === VideoConferenceState.NOT_STARTED) || (isGuest && !waitingRoomEnabled)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\tasync hasExpertRole(userId: EntityId, conferenceScope: VideoConferenceScope, scopeId: string): Promise {\n\t\tlet isExpert = false;\n\t\tswitch (conferenceScope) {\n\t\t\tcase VideoConferenceScope.COURSE: {\n\t\t\t\tconst user: UserDO = await this.userService.findById(userId);\n\t\t\t\tisExpert = this.existsExpertRole(user.roles);\n\t\t\t\treturn isExpert;\n\t\t\t}\n\t\t\tcase VideoConferenceScope.EVENT: {\n\t\t\t\tconst team: TeamEntity = await this.teamsRepo.findById(scopeId);\n\t\t\t\tconst teamUser: TeamUserEntity | undefined = team.teamUsers.find(\n\t\t\t\t\t(userInTeam: TeamUserEntity) => userInTeam.user.id === userId\n\t\t\t\t);\n\n\t\t\t\tif (teamUser === undefined) {\n\t\t\t\t\tthrow new ForbiddenException(ErrorStatus.UNKNOWN_USER, 'Cannot find user in team.');\n\t\t\t\t}\n\n\t\t\t\tisExpert = teamUser.role.name === RoleName.TEAMEXPERT;\n\t\t\t\treturn isExpert;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new BadRequestException('Unknown scope name.');\n\t\t}\n\t}\n\n\tprivate existsExpertRole(roles: RoleReference[]): boolean {\n\t\tconst roleNames: RoleName[] = roles.map((role: RoleReference) => role.name);\n\n\t\tconst isExpert: boolean = roleNames.includes(RoleName.EXPERT);\n\n\t\treturn isExpert;\n\t}\n\n\tasync determineBbbRole(userId: EntityId, scopeId: EntityId, scope: VideoConferenceScope): Promise {\n\t\tconst permissionMap: Map> = this.hasPermissions(\n\t\t\tuserId,\n\t\t\tPermissionScopeMapping[scope],\n\t\t\tscopeId,\n\t\t\t[Permission.START_MEETING, Permission.JOIN_MEETING],\n\t\t\tAction.read\n\t\t);\n\n\t\tif (await permissionMap.get(Permission.START_MEETING)) {\n\t\t\treturn BBBRole.MODERATOR;\n\t\t}\n\t\tif (await permissionMap.get(Permission.JOIN_MEETING)) {\n\t\t\treturn BBBRole.VIEWER;\n\t\t}\n\t\tthrow new ForbiddenException(ErrorStatus.INSUFFICIENT_PERMISSION);\n\t}\n\n\tprivate hasPermissions(\n\t\tuserId: EntityId,\n\t\tentityName: AuthorizableReferenceType,\n\t\tentityId: EntityId,\n\t\tpermissions: Permission[],\n\t\taction: Action\n\t): Map> {\n\t\tconst returnMap: Map> = new Map();\n\t\tpermissions.forEach((perm) => {\n\t\t\tconst context =\n\t\t\t\taction === Action.read ? AuthorizationContextBuilder.read([perm]) : AuthorizationContextBuilder.write([perm]);\n\t\t\tconst ret = this.authorizationService.hasPermissionByReferences(userId, entityName, entityId, context);\n\t\t\treturnMap.set(perm, ret);\n\t\t});\n\t\treturn returnMap;\n\t}\n\n\tasync throwOnFeaturesDisabled(schoolId: EntityId): Promise {\n\t\tif (!this.isVideoConferenceFeatureEnabled) {\n\t\t\tthrow new ForbiddenException(\n\t\t\t\tErrorStatus.SCHOOL_FEATURE_DISABLED,\n\t\t\t\t'feature FEATURE_VIDEOCONFERENCE_ENABLED is disabled'\n\t\t\t);\n\t\t}\n\n\t\tconst schoolFeatureEnabled: boolean = await this.schoolService.hasFeature(schoolId, SchoolFeatures.VIDEOCONFERENCE);\n\t\tif (!schoolFeatureEnabled) {\n\t\t\tthrow new ForbiddenException(ErrorStatus.SCHOOL_FEATURE_DISABLED, 'school feature VIDEOCONFERENCE is disabled');\n\t\t}\n\t}\n\n\tsanitizeString(text: string) {\n\t\treturn text.replace(/[^\\dA-Za-zÀ-ÖØ-öø-ÿ.\\-=_`´ ]/g, '');\n\t}\n\n\tasync getScopeInfo(userId: EntityId, scopeId: string, scope: VideoConferenceScope): Promise {\n\t\tswitch (scope) {\n\t\t\tcase VideoConferenceScope.COURSE: {\n\t\t\t\tconst course: Course = await this.courseService.findById(scopeId);\n\n\t\t\t\treturn {\n\t\t\t\t\tscopeId,\n\t\t\t\t\tscopeName: 'courses',\n\t\t\t\t\tlogoutUrl: `${this.hostUrl}/courses/${scopeId}?activeTab=tools`,\n\t\t\t\t\ttitle: course.name,\n\t\t\t\t};\n\t\t\t}\n\t\t\tcase VideoConferenceScope.EVENT: {\n\t\t\t\tconst event: CalendarEventDto = await this.calendarService.findEvent(userId, scopeId);\n\n\t\t\t\treturn {\n\t\t\t\t\tscopeId: event.teamId,\n\t\t\t\t\tscopeName: 'teams',\n\t\t\t\t\tlogoutUrl: `${this.hostUrl}/teams/${event.teamId}?activeTab=events`,\n\t\t\t\t\ttitle: event.title,\n\t\t\t\t};\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new BadRequestException('Unknown scope name');\n\t\t}\n\t}\n\n\tasync getUserRoleAndGuestStatusByUserIdForBbb(\n\t\tuserId: string,\n\t\tscopeId: EntityId,\n\t\tscope: VideoConferenceScope\n\t): Promise {\n\t\tconst scopeInfo: IScopeInfo = await this.getScopeInfo(userId, scopeId, scope);\n\n\t\tconst role: BBBRole = await this.determineBbbRole(userId, scopeInfo.scopeId, scope);\n\n\t\tconst isBbbGuest: boolean = await this.hasExpertRole(userId, scope, scopeInfo.scopeId);\n\n\t\treturn { role, isGuest: isBbbGuest };\n\t}\n\n\tasync findVideoConferenceByScopeIdAndScope(\n\t\tscopeId: EntityId,\n\t\tscope: VideoConferenceScope\n\t): Promise {\n\t\tconst videoConference: VideoConferenceDO = await this.videoConferenceRepo.findByScopeAndScopeId(scopeId, scope);\n\n\t\treturn videoConference;\n\t}\n\n\tasync createOrUpdateVideoConferenceForScopeWithOptions(\n\t\tscopeId: EntityId,\n\t\tscope: VideoConferenceScope,\n\t\toptions: VideoConferenceOptions\n\t): Promise {\n\t\tlet vcDo: VideoConferenceDO;\n\n\t\t// try and catch based on legacy behavior\n\t\ttry {\n\t\t\tvcDo = await this.findVideoConferenceByScopeIdAndScope(scopeId, scope);\n\n\t\t\tvcDo.options = new VideoConferenceOptionsDO(options);\n\t\t} catch (error) {\n\t\t\tvcDo = new VideoConferenceDO({\n\t\t\t\ttarget: scopeId,\n\t\t\t\ttargetModel: scope,\n\t\t\t\toptions: new VideoConferenceOptionsDO(options),\n\t\t\t});\n\t\t}\n\n\t\tvcDo = await this.saveVideoConference(vcDo);\n\n\t\treturn vcDo;\n\t}\n\n\tprivate async saveVideoConference(videoConference: VideoConferenceDO): Promise {\n\t\treturn this.videoConferenceRepo.save(videoConference);\n\t}\n}\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"classes/VisibilitySettingsResponse.html":{"url":"classes/VisibilitySettingsResponse.html","title":"class - VisibilitySettingsResponse","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n Classes\n VisibilitySettingsResponse\n\n\n\n \n Info\n \n \n Source\n \n\n\n\n \n \n File\n \n \n apps/server/src/modules/board/controller/dto/card/visibility-settings.response.ts\n \n\n\n\n\n\n\n \n Index\n \n \n \n \n Properties\n \n \n \n \n \n \n \n Optional\n publishedAt\n \n \n \n \n\n\n\n\n\n\n \n \n\n\n \n Constructor\n \n \n \n \nconstructor(undefined: VisibilitySettingsResponse)\n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/visibility-settings.response.ts:3\n \n \n\n \n \n \n Parameters :\n \n \n \n Name\n Type\n Optional\n \n \n \n \n \n \n VisibilitySettingsResponse\n \n \n \n No\n \n \n \n \n \n \n \n \n \n \n\n\n \n \n \n Properties\n \n \n \n \n \n \n \n \n Optional\n publishedAt\n \n \n \n \n \n \n Type : string\n\n \n \n \n \n Decorators : \n \n \n @ApiPropertyOptional()\n \n \n \n \n \n Defined in apps/server/src/modules/board/controller/dto/card/visibility-settings.response.ts:9\n \n \n\n\n \n \n\n\n\n\n\n\n\n\n \n\n\n \n import { ApiPropertyOptional } from '@nestjs/swagger';\n\nexport class VisibilitySettingsResponse {\n\tconstructor({ publishedAt }: VisibilitySettingsResponse) {\n\t\tthis.publishedAt = publishedAt;\n\t}\n\n\t@ApiPropertyOptional()\n\tpublishedAt?: string;\n}\n\n \n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"dependencies.html":{"url":"dependencies.html","title":"package-dependencies - dependencies","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n Dependencies\n \n \n \n @aws-sdk/lib-storage : ^3.100.0\n \n @feathersjs/authentication : ^4.5.16\n \n @feathersjs/authentication-local : ^4.5.11\n \n @feathersjs/configuration : ^4.5.11\n \n @feathersjs/errors : ^4.5.11\n \n @feathersjs/express : ^4.5.11\n \n @feathersjs/feathers : ^4.5.11\n \n @golevelup/nestjs-rabbitmq : ^4.0.0\n \n @hendt/xml2json : ^1.0.3\n \n @hpi-schul-cloud/commons : ^1.3.4\n \n @keycloak/keycloak-admin-client : ^21.1.2\n \n @lumieducation/h5p-server : ^9.2.0\n \n @mikro-orm/core : ^5.4.2\n \n @mikro-orm/mongodb : ^5.4.2\n \n @mikro-orm/nestjs : ^5.2.1\n \n @nestjs/axios : ^3.0.0\n \n @nestjs/cache-manager : ^2.1.0\n \n @nestjs/common : ^10.2.4\n \n @nestjs/config : ^3.0.1\n \n @nestjs/core : ^10.2.4\n \n @nestjs/jwt : ^10.1.1\n \n @nestjs/microservices : ^10.2.4\n \n @nestjs/passport : ^10.0.1\n \n @nestjs/platform-express : ^10.2.4\n \n @nestjs/swagger : ^7.1.10\n \n @types/cache-manager-redis-store : ^2.0.1\n \n @types/connect-redis : ^0.0.19\n \n @types/gm : ^1.25.1\n \n @types/ldapjs : ^2.2.5\n \n @types/redis : ^2.8.32\n \n @types/xml2js : ^0.4.11\n \n adm-zip : ^0.5.9\n \n ajv : ^8.8.2\n \n amqp-connection-manager : ^3.2.2\n \n amqplib : ^0.8.0\n \n arg : ^5.0.0\n \n args : ^5.0.1\n \n async : ^3.2.2\n \n async-mutex : ^0.4.0\n \n aws-sdk : ^2.1375.0\n \n axios : ^1.5.0\n \n axios-mock-adapter : ^1.21.2\n \n bbb-promise : ^1.2.0\n \n bcryptjs : *\n \n body-parser : ^1.15.2\n \n bson : ^4.6.0\n \n busboy : ^1.6.0\n \n cache-manager : ^2.9.0\n \n cache-manager-redis-store : ^2.0.0\n \n chalk : ^5.0.0\n \n class-transformer : ^0.4.0\n \n class-validator : ^0.14.0\n \n client-oauth2 : ^4.2.5\n \n commander : ^8.1.0\n \n compression : ^1.6.2\n \n concurrently : ^6.0.0\n \n connect-redis : ^6.1.3\n \n cors : ^2.8.1\n \n cross-env : ^7.0.0\n \n crypto-js : ^4.0.0\n \n disposable-email-domains : ^1.0.56\n \n es6-promisify : ^7.0.0\n \n express : ^4.14.0\n \n express-openapi-validator : ^4.13.2\n \n express-session : ^1.17.3\n \n feathers-hooks-common : ^5.0.3\n \n feathers-mongoose : ^6.3.0\n \n feathers-swagger : ^3.0.0\n \n file-type : ^18.5.0\n \n freeport : ^1.0.5\n \n gm : ^1.25.0\n \n html-entities : ^2.3.2\n \n jose : ^1.28.1\n \n jsonwebtoken : ^9.0.0\n \n jwks-rsa : ^2.0.5\n \n ldapjs : git://github.com/hpi-schul-cloud/node-ldapjs.git\n \n lodash : ^4.17.19\n \n migrate-mongoose : ^4.0.0\n \n mixwith : ^0.1.1\n \n moment : ^2.19.2\n \n mongodb-uri : ^0.9.7\n \n mongoose : ^5.13.20\n \n mongoose-delete : ^0.5.4\n \n mongoose-id-validator : ^0.6.0\n \n mongoose-lean-virtuals : ^0.8.1\n \n mongoose-shortid-nodeps : git://github.com/leeroybrun/mongoose-shortid-nodeps.git\n \n moodle-client : ^0.5.2\n \n nanoid : ^3.3.4\n \n nest-winston : ^1.9.4\n \n nestjs-console : ^9.0.0\n \n oauth-1.0a : ^2.2.6\n \n p-limit : ^3.1.0\n \n papaparse : ^5.1.1\n \n passport : ^0.6.0\n \n passport-custom : ^1.1.1\n \n passport-jwt : ^4.0.1\n \n passport-local : ^1.0.0\n \n prom-client : ^13.1.0\n \n qs : ^6.9.7\n \n read-chunk : ^3.0.0\n \n redis : ^3.0.0\n \n reflect-metadata : ^0.1.13\n \n request-promise-core : ^1.1.4\n \n request-promise-native : ^1.0.3\n \n response-time : ^2.3.2\n \n rimraf : ^3.0.2\n \n rss-parser : ^3.13.0\n \n rxjs : ^7.3.1\n \n sanitize-html : ^2.1.0\n \n serve-favicon : ^2.3.2\n \n service : ^0.1.4\n \n socketio-file-upload : ^0.7.0\n \n source-map-support : ^0.5.19\n \n strip-bom : ^4.0.0\n \n swagger-ui-dist : ^4.18.2\n \n swagger-ui-express : ^4.1.6\n \n tiny-async-pool : ^1.2.0\n \n universal-analytics : ^0.5.1\n \n urlsafe-base64 : ^1.0.0\n \n uuid : ^8.3.0\n \n winston : ^3.8.2\n \n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"miscellaneous/functions.html":{"url":"miscellaneous/functions.html","title":"miscellaneous-functions - functions","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Miscellaneous\n Functions\n\n\n\n Index\n \n \n \n \n \n \n accountIdmToDtoMapperFactory   (apps/.../account.module.ts)\n \n \n bootstrap   (apps/.../files-storage-consumer.app.ts)\n \n \n bootstrap   (apps/.../files-storage.app.ts)\n \n \n bootstrap   (apps/.../fwu-learning-contents.app.ts)\n \n \n bootstrap   (apps/.../h5p-editor.app.ts)\n \n \n bootstrap   (apps/.../management.app.ts)\n \n \n bootstrap   (apps/.../server.app.ts)\n \n \n createCopyFiles   (apps/.../path.ts)\n \n \n createFileRecord   (apps/.../file-record.ts)\n \n \n createIdentifier   (apps/.../utils.ts)\n \n \n createPath   (apps/.../path.ts)\n \n \n createPreviewDirectoryPath   (apps/.../path.ts)\n \n \n createPreviewFilePath   (apps/.../path.ts)\n \n \n createPreviewNameHash   (apps/.../file-name.ts)\n \n \n DecodeHtmlEntities   (apps/.../decode-html-entities.transformer.ts)\n \n \n encryptionProviderFactory   (apps/.../encryption.module.ts)\n \n \n generateFederalStates   (apps/.../federalstates.ts)\n \n \n generateRole   (apps/.../roles.ts)\n \n \n generateSchools   (apps/.../schools.ts)\n \n \n generateSchoolYears   (apps/.../schoolyears.ts)\n \n \n generateSeedData   (apps/.../generateSeedData.ts)\n \n \n generateSystems   (apps/.../systems.ts)\n \n \n getPaths   (apps/.../path.ts)\n \n \n getResolvedValues   (apps/.../promise.ts)\n \n \n hasDuplicateName   (apps/.../file-name.ts)\n \n \n isFulfilled   (apps/.../promise.ts)\n \n \n isLesson   (apps/.../lesson.entity.ts)\n \n \n isTask   (apps/.../task.entity.ts)\n \n \n markForDelete   (apps/.../file-record.ts)\n \n \n PrivacyProtect   (apps/.../privacy-protect.validator.ts)\n \n \n RequestTimeout   (apps/.../timeout.decorator.ts)\n \n \n resolveFileNameDuplicates   (apps/.../file-name.ts)\n \n \n SanitizeHtml   (apps/.../sanitize-html.transformer.ts)\n \n \n SingleValueToArrayTransformer   (apps/.../single-value-to-array.transformer.ts)\n \n \n StringToBoolean   (apps/.../string-to-boolean.transformer.ts)\n \n \n unmarkForDelete   (apps/.../file-record.ts)\n \n \n \n \n \n \n\n\n apps/server/src/modules/account/account.module.ts\n \n \n \n \n \n \n \n accountIdmToDtoMapperFactory\n \n \n \n \n \n \naccountIdmToDtoMapperFactory(configService: ConfigService)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n configService\n \n ConfigService\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : AccountIdmToDtoMapper\n\n \n \n \n \n \n \n \n \n apps/server/src/apps/files-storage-consumer.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/files-storage.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/fwu-learning-contents.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/h5p-editor.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/management.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/apps/server.app.ts\n \n \n \n \n \n \n \n bootstrap\n \n \n \n \n \n \nbootstrap()\n \n \n\n\n\n\n \n \n apps/server/src/modules/files-storage/helper/path.ts\n \n \n \n \n \n \n \n createCopyFiles\n \n \n \n \n \n \ncreateCopyFiles(sourceFile: FileRecord, targetFile: FileRecord)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n sourceFile\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n targetFile\n \n FileRecord\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : CopyFiles\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createPath\n \n \n \n \n \n \ncreatePath(schoolId: EntityId, fileRecordId: EntityId)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n fileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createPreviewDirectoryPath\n \n \n \n \n \n \ncreatePreviewDirectoryPath(schoolId: EntityId, sourceFileRecordId: EntityId)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n sourceFileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n createPreviewFilePath\n \n \n \n \n \n \ncreatePreviewFilePath(schoolId: EntityId, hash: string, sourceFileRecordId: EntityId)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n schoolId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n hash\n \n string\n \n\n \n No\n \n\n\n \n \n sourceFileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n getPaths\n \n \n \n \n \n \ngetPaths(fileRecords)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n fileRecords\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string[]\n\n \n \n \n \n \n \n \n \n apps/server/src/modules/files-storage/helper/file-record.ts\n \n \n \n \n \n \n \n createFileRecord\n \n \n \n \n \n \ncreateFileRecord(name: string, size: number, mimeType: string, params: FileRecordParams, userId: string)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n size\n \n number\n \n\n \n No\n \n\n\n \n \n mimeType\n \n string\n \n\n \n No\n \n\n\n \n \n params\n \n FileRecordParams\n \n\n \n No\n \n\n\n \n \n userId\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n markForDelete\n \n \n \n \n \n \nmarkForDelete(fileRecords)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n fileRecords\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecord[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n unmarkForDelete\n \n \n \n \n \n \nunmarkForDelete(fileRecords)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n fileRecords\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecord[]\n\n \n \n \n \n \n \n \n \n apps/server/src/modules/learnroom/common-cartridge/utils.ts\n \n \n \n \n \n \n \n createIdentifier\n \n \n \n \n \n \ncreateIdentifier(id?)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n id\n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n apps/server/src/modules/files-storage/helper/file-name.ts\n \n \n \n \n \n \n \n createPreviewNameHash\n \n \n \n \n \n \ncreatePreviewNameHash(fileRecordId: EntityId, previewParams: PreviewParams)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecordId\n \n EntityId\n \n\n \n No\n \n\n\n \n \n previewParams\n \n PreviewParams\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n hasDuplicateName\n \n \n \n \n \n \nhasDuplicateName(fileRecords, name: string)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n fileRecords\n \n \n\n \n No\n \n\n\n \n \n name\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : FileRecord | undefined\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n resolveFileNameDuplicates\n \n \n \n \n \n \nresolveFileNameDuplicates(filename: string, fileRecords)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n filename\n \n string\n \n\n \n No\n \n\n\n \n \n fileRecords\n \n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : string\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/transformer/decode-html-entities.transformer.ts\n \n \n \n \n \n \n \n DecodeHtmlEntities\n \n \n \n \n \n \nDecodeHtmlEntities()\n \n \n\n\n\n\n \n \n Decorator to transform a string value so that all contained html entities are decoded.\nThe purpose of this decorator is to revert html entity encodings that come from generic\ninput sanitization in the legacy server. We don't need this encoding in the output of our API\nbecause in common template systems (e.g handlebars and vue.js) strings are generally\nescaped for the output. That leads to wrong text output because html entities are rendered \"as is\"\nwith all characters encoded again.\nExamples:\n\nwhen text = \"X & Y\" and template is {{ text }} it is rendered as \"X & Y\" => wrong\nwhen text = \"X & Y\" and template is {{ text }} it is rendered as \"X & Y\" => good\n\n(both for vue.js and handlebars)\nUse this decorator in your response DTO wherever redundant html encoding from the legacy server has to be reverted.\nIMPORTANT: Should be removed later when sanitization works properly\n\n\n \n \n \n Returns : PropertyDecorator\n\n \n \n the string with decoded html entities\n\n \n \n \n \n \n apps/server/src/shared/infra/encryption/encryption.module.ts\n \n \n \n \n \n \n \n encryptionProviderFactory\n \n \n \n \n \n \nencryptionProviderFactory(configService: ConfigService, logger: LegacyLogger, aesKey: string)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n configService\n \n ConfigService\n \n\n \n No\n \n\n\n \n \n logger\n \n LegacyLogger\n \n\n \n No\n \n\n\n \n \n aesKey\n \n string\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/management/seed-data/federalstates.ts\n \n \n \n \n \n \n \n generateFederalStates\n \n \n \n \n \n \ngenerateFederalStates()\n \n \n\n\n\n\n \n \n apps/server/src/modules/management/seed-data/roles.ts\n \n \n \n \n \n \n \n generateRole\n \n \n \n \n \n \ngenerateRole(localRoleSeedData?)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n localRoleSeedData\n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/management/seed-data/schools.ts\n \n \n \n \n \n \n \n generateSchools\n \n \n \n \n \n \ngenerateSchools(entities)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n entities\n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/management/seed-data/schoolyears.ts\n \n \n \n \n \n \n \n generateSchoolYears\n \n \n \n \n \n \ngenerateSchoolYears()\n \n \n\n\n\n\n \n \n apps/server/src/modules/management/seed-data/generateSeedData.ts\n \n \n \n \n \n \n \n generateSeedData\n \n \n \n \n \n \ngenerateSeedData(injectEnvVars)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n injectEnvVars\n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/management/seed-data/systems.ts\n \n \n \n \n \n \n \n generateSystems\n \n \n \n \n \n \ngenerateSystems(injectEnvVars)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n injectEnvVars\n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/modules/files-storage/helper/promise.ts\n \n \n \n \n \n \n \n getResolvedValues\n \n \n \n \n \n \ngetResolvedValues(result)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n result\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : T[]\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n isFulfilled\n \n \n \n \n \n \nisFulfilled(input: PromiseSettledResult)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n input\n \n PromiseSettledResult\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : PromiseFulfilledResult\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/domain/entity/lesson.entity.ts\n \n \n \n \n \n \n \n isLesson\n \n \n \n \n \n \nisLesson(reference)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n reference\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : LessonEntity\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/domain/entity/task.entity.ts\n \n \n \n \n \n \n \n isTask\n \n \n \n \n \n \nisTask(reference)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Optional\n \n \n \n \n reference\n\n \n No\n \n\n\n \n \n \n \n \n \n \n Returns : Task\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/validator/privacy-protect.validator.ts\n \n \n \n \n \n \n \n PrivacyProtect\n \n \n \n \n \n \nPrivacyProtect(validationOptions?: ValidationOptions)\n \n \n\n\n\n\n \n \n Set privacy protect context attribute in validation options.\nThis can be used to detect if a property value should be obfuscated in error logs or responses.\nsee e.g. ApiValidationError\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n validationOptions\n \n ValidationOptions\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : PropertyDecorator\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/common/decorators/timeout.decorator.ts\n \n \n \n \n \n \n \n RequestTimeout\n \n \n \n \n \n \nRequestTimeout(ms: number)\n \n \n\n\n\n\n \n \n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n ms\n \n number\n \n\n \n No\n \n\n\n \n \n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/transformer/sanitize-html.transformer.ts\n \n \n \n \n \n \n \n SanitizeHtml\n \n \n \n \n \n \nSanitizeHtml(inputFormat?: InputFormat)\n \n \n\n\n\n\n \n \n Decorator to sanitize a string by removing unwanted HTML.\nPlace after IsString decorator.\nBy default, it will return a plain text\n\n\n \n Parameters :\n \n \n \n \n Name\n Type\n Optional\n \n \n \n \n inputFormat\n \n InputFormat\n \n\n \n Yes\n \n\n\n \n \n \n \n \n \n \n Returns : PropertyDecorator\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/transformer/single-value-to-array.transformer.ts\n \n \n \n \n \n \n \n SingleValueToArrayTransformer\n \n \n \n \n \n \nSingleValueToArrayTransformer()\n \n \n\n\n\n\n \n \n Decorator to transform a given value to be an array if the value is not null or undefined.\nUsed to ensure an array even if only one parameter is given via rest which would set the value not as array.\n\n\n \n \n \n Returns : PropertyDecorator\n\n \n \n \n \n \n \n \n \n apps/server/src/shared/controller/transformer/string-to-boolean.transformer.ts\n \n \n \n \n \n \n \n StringToBoolean\n \n \n \n \n \n \nStringToBoolean()\n \n \n\n\n\n\n \n \n Decorator to transform a boolish string value to a boolean.\nAccepts: '1', 'true', '0', 'false' with type string only.\nPlace after IsBoolean decorator.\n\n\n \n \n \n Returns : PropertyDecorator\n\n \n \n \n \n \n \n \n \n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"index.html":{"url":"index.html","title":"getting-started - index","body":"\n \n\nSchul-Cloud Server\n\n\n\nNestJS application\n\nFind the NestJS applications documentation of this repository at GitHub pages. It contains information about\n\n\nsetup & preconditions\nstarting the application\ntesting\ntools setup (VSCode, Git)\narchitecture\n\nBased on NestJS\nFeathers application\nThis is legacy part of the application!\nBased on Node.js and Feathers\nApplication seperation\nIn order to seperate NestJS and Feathers each application runs in its own express instance. These express instances are then mounted on seperate paths under a common root express instance.\nRoot-Express-App \n├─ api/v1/ --> Feathers-App\n├─ api/v3/ --> NestJS-AppThis ensures that each application can run its own middleware stack for authentication, error handling, logging etc.\nThe mount paths don't have any impact on the routes inside of the applications, e.g. the path /api/v3/news will translate to the inner path /news. That means that in terms of route matching each child application doesn't have to take any measures regarding the path prefix. It simply works as it was mounted to /.\nHowever note that when URLs are generated inside a child application the path prefix has to be prepended. Only then the generated URLs match the appropriate child application, e.g. the path /news has to be provided as the external path /api/v3/news.\nIt is possible (not very likely) that the server api is called with URLs that use the old schema without a path prefix. As a safety net for that we additionally mount the Feathers application as before under the paths:\n\n/ - for internal calls\n/api - for external calls\n\nWhen these paths are accessed an error with context [DEPRECATED-PATH] is logged.\nSetup\nThe whole application setup with all dependencies can be found in System Architecture. It contains information about how different application components are connected to each other.\nDebugger Configuration in Visual Studio Code\nFor more details how to set up Visual Studio Code, read this document.\nHow to name your branch and create a pull request (PR)\n\nTake the Ticket Number from JIRA (ticketsystem.dbildungscloud.de), e.g. SC-999\nName the feature branch beginning with Ticket Number, all words separated by dash \"-\", e.g. feature/SC-999-fantasy-problem\nCreate a PR on branch develop containing the Ticket Number in PR title\nKeep the WIP label as long as this PR is in development, complete PR checklist (is automatically added), keep or increase code test coverage, and pass all tests before you remove the WIP label. Reviewers will be added automatically.\n\nCommitting\nDefault branch: main\n\nGo into project folder\nCheckout to develop branch (or clone for the first time)\nRun git pull\nCreate a branch for your new feature named feature/BC-Ticket-ID-Description\nRun the tests (see above)\nCommit with a meaningful commit message(!) even at 4 a.m. and not stuff like \"dfsdfsf\"\nStart a pull request (see above) to branch develop to merge your changes\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"license.html":{"url":"license.html","title":"getting-started - license","body":"\n \n\n GNU AFFERO GENERAL PUBLIC LICENSE\n Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n Preamble The GNU Affero General Public License is a free, copyleft license for\nsoftware and other kinds of works, specifically designed to ensure\ncooperation with the community in the case of network server software.\n The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nour General Public Licenses are intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.\n When we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n Developers that use our General Public Licenses protect your rights\nwith two steps: (1) assert copyright on the software, and (2) offer\nyou this License which gives you legal permission to copy, distribute\nand/or modify the software.\n A secondary benefit of defending all users' freedom is that\nimprovements made in alternate versions of the program, if they\nreceive widespread use, become available for other developers to\nincorporate. Many developers of free software are heartened and\nencouraged by the resulting cooperation. However, in the case of\nsoftware used on network servers, this result may fail to come about.\nThe GNU General Public License permits making a modified version and\nletting the public access it on a server without ever releasing its\nsource code to the public.\n The GNU Affero General Public License is designed specifically to\nensure that, in such cases, the modified source code becomes available\nto the community. It requires the operator of a network server to\nprovide the source code of the modified version running there to the\nusers of that server. Therefore, public use of a modified version, on\na publicly accessible server, gives the public access to the source\ncode of the modified version.\n An older license, called the Affero General Public License and\npublished by Affero, was designed to accomplish similar goals. This is\na different license, not a version of the Affero GPL, but Affero has\nreleased a new version of the Affero GPL which permits relicensing under\nthis license.\n The precise terms and conditions for copying, distribution and\nmodification follow.\n TERMS AND CONDITIONS\nDefinitions.\n\n \"This License\" refers to version 3 of the GNU Affero General Public License.\n \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n \"The Program\" refers to any copyrightable work licensed under this\nLicense. Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n A \"covered work\" means either the unmodified Program or a work based\non the Program.\n To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy. Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies. Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License. If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\nSource Code.\n\n The \"source code\" for a work means the preferred form of the work\nfor making modifications to it. \"Object code\" means any non-source\nform of a work.\n A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form. A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work. For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n The Corresponding Source for a work in source code form is that\nsame work.\n\nBasic Permissions.\n\n All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met. This License explicitly affirms your unlimited\npermission to run the unmodified Program. The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force. You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n Conveying under any other circumstances is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\nProtecting Users' Legal Rights From Anti-Circumvention Law.\n\n No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\nConveying Verbatim Copies.\n\n You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\nConveying Modified Source Versions.\n\n You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\na) The work must carry prominent notices stating that you modified\nit, and giving a relevant date.\n\nb) The work must carry prominent notices stating that it is\nreleased under this License and any conditions added under section\n7. This requirement modifies the requirement in section 4 to\n\"keep intact all notices\".\n\nc) You must license the entire work, as a whole, under this\nLicense to anyone who comes into possession of a copy. This\nLicense will therefore apply, along with any applicable section 7\nadditional terms, to the whole of the work, and all its parts,\nregardless of how they are packaged. This License gives no\npermission to license the work in any other way, but it does not\ninvalidate such permission if you have separately received it.\n\nd) If the work has interactive user interfaces, each must display\nAppropriate Legal Notices; however, if the Program has interactive\ninterfaces that do not display Appropriate Legal Notices, your\nwork need not make them do so. A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit. Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\nConveying Non-Source Forms.\n\n You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\na) Convey the object code in, or embodied in, a physical product\n(including a physical distribution medium), accompanied by the\nCorresponding Source fixed on a durable physical medium\ncustomarily used for software interchange.\n\nb) Convey the object code in, or embodied in, a physical product\n(including a physical distribution medium), accompanied by a\nwritten offer, valid for at least three years and valid for as\nlong as you offer spare parts or customer support for that product\nmodel, to give anyone who possesses the object code either (1) a\ncopy of the Corresponding Source for all the software in the\nproduct that is covered by this License, on a durable physical\nmedium customarily used for software interchange, for a price no\nmore than your reasonable cost of physically performing this\nconveying of source, or (2) access to copy the\nCorresponding Source from a network server at no charge.\n\nc) Convey individual copies of the object code with a copy of the\nwritten offer to provide the Corresponding Source. This\nalternative is allowed only occasionally and noncommercially, and\nonly if you received the object code with such an offer, in accord\nwith subsection 6b.\n\nd) Convey the object code by offering access from a designated\nplace (gratis or for a charge), and offer equivalent access to the\nCorresponding Source in the same way through the same place at no\nfurther charge. You need not require recipients to copy the\nCorresponding Source along with the object code. If the place to\ncopy the object code is a network server, the Corresponding Source\nmay be on a different server (operated by you or a third party)\nthat supports equivalent copying facilities, provided you maintain\nclear directions next to the object code saying where to find the\nCorresponding Source. Regardless of what server hosts the\nCorresponding Source, you remain obligated to ensure that it is\navailable for as long as needed to satisfy these requirements.\n\ne) Convey the object code using peer-to-peer transmission, provided\nyou inform other peers where the object code and Corresponding\nSource of the work are being offered to the general public at no\ncharge under subsection 6d. A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling. In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product. A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source. The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed. Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\nAdditional Terms.\n\n \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law. If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit. (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.) You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\na) Disclaiming warranty or limiting liability differently from the\nterms of sections 15 and 16 of this License; or\n\nb) Requiring preservation of specified reasonable legal notices or\nauthor attributions in that material or in the Appropriate Legal\nNotices displayed by works containing it; or\n\nc) Prohibiting misrepresentation of the origin of that material, or\nrequiring that modified versions of such material be marked in\nreasonable ways as different from the original version; or\n\nd) Limiting the use for publicity purposes of names of licensors or\nauthors of the material; or\n\ne) Declining to grant rights under trademark law for use of some\ntrade names, trademarks, or service marks; or\n\nf) Requiring indemnification of licensors and authors of that\nmaterial by anyone who conveys the material (or modified versions of\nit) with contractual assumptions of liability to the recipient, for\nany liability that these contractual assumptions directly impose on\nthose licensors and authors. All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10. If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term. If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\nTermination.\n\n You may not propagate or modify a covered work except as expressly\nprovided under this License. Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\nAcceptance Not Required for Having Copies.\n\n You are not required to accept this License in order to receive or\nrun a copy of the Program. Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance. However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work. These actions infringe copyright if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\nAutomatic Licensing of Downstream Recipients.\n\n Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License. You are not responsible\nfor enforcing compliance by third parties with this License.\n An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License. For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\nPatents.\n\n A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The\nwork thus licensed is called the contributor's \"contributor version\".\n A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version. For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement). To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License. You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\nNo Surrender of Others' Freedom.\n\n If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all. For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\nRemote Network Interaction; Use with the GNU General Public License.\n\n Notwithstanding any other provision of this License, if you modify the\nProgram, your modified version must prominently offer all users\ninteracting with it remotely through a computer network (if your version\nsupports such interaction) an opportunity to receive the Corresponding\nSource of your version by providing access to the Corresponding Source\nfrom a network server at no charge, through some standard or customary\nmeans of facilitating copying of software. This Corresponding Source\nshall include the Corresponding Source for any work covered by version 3\nof the GNU General Public License that is incorporated pursuant to the\nfollowing paragraph.\n Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU General Public License into a single\ncombined work, and to convey the resulting work. The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the work with which it is combined will remain governed by version\n3 of the GNU General Public License.\n\nRevised Versions of this License.\n\n The Free Software Foundation may publish revised and/or new versions of\nthe GNU Affero General Public License from time to time. Such new versions\nwill be similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n Each version is given a distinguishing version number. If the\nProgram specifies that a certain numbered version of the GNU Affero General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation. If the Program does not specify a version number of the\nGNU Affero General Public License, you may choose any version ever published\nby the Free Software Foundation.\n If the Program specifies that a proxy can decide which future\nversions of the GNU Affero General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n Later license versions may give you additional or different\npermissions. However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\nDisclaimer of Warranty.\n\n THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\nLimitation of Liability.\n\n IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\nInterpretation of Sections 15 and 16.\n\n If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n END OF TERMS AND CONDITIONS\n\n How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n To do so, attach the following notices to the program. It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\nCopyright (C) \n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published\nby the Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program. If not, see .Also add information on how to contact you by electronic and paper mail.\n If your software can interact with users remotely through a computer\nnetwork, you should also make sure that it provides a way for users to\nget its source. For example, if your program is a web application, its\ninterface could display a \"Source\" link that leads users to an archive\nof the code. There are many ways you could offer source, and different\nsolutions will be better for different programs; see section 13 for the\nspecific requirements.\n You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU AGPL, see\nhttp://www.gnu.org/licenses/.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules.html":{"url":"modules.html","title":"modules - modules","body":"\n \n\n\n\n\n Modules\n\n\n \n \n \n \n AccountApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n AccountModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n AntivirusModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n AuthenticationApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n AuthenticationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n AuthorizationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n BoardApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n BoardModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CacheWrapperModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CalendarModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ClassModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CollaborativeStorageAdapterModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CollaborativeStorageModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CommonToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ConsoleWriterModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ContextExternalToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CopyHelperModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n CoreModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n DatabaseManagementModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n EncryptionModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ErrorModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ExternalToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FeathersModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageAMQPModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageClientModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FilesStorageTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FileSystemModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FwuLearningContentsModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n FwuLearningContentsTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n GroupApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n GroupModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n H5PEditorModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n H5PEditorTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n IdentityManagementModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ImportUserModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n InterceptorModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n KeycloakAdministrationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n KeycloakConfigurationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n KeycloakModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LearnroomApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LearnroomModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LegacySchoolApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LegacySchoolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LessonApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LessonModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LoggerModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n LtiToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n MailModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n ManagementModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ManagementServerModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ManagementServerTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n MongoMemoryDatabaseModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n NewsModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthProviderApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthProviderModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n OauthProviderServiceModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ProvisioningModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n PseudonymModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n RabbitMQWrapperModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n RabbitMQWrapperTestModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n RedisModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n RocketChatModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n RoleModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n S3ClientModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n SchoolExternalToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ServerConsoleModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ServerModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ServerTestModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n SharingApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n SharingModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n SystemApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n SystemModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n TaskApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n TaskModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n TeamsApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n TeamsModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ToolApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ToolConfigModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n ToolLaunchModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ToolModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n UserApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n UserLoginMigrationApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n UserLoginMigrationModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n UserModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n ValidationModule\n \n \n \n No graph available.\n \n \n Browse\n \n \n \n \n \n \n \n VideoConferenceApiModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n \n \n VideoConferenceModule\n \n \n \n \n Your browser does not support SVG\n \n \n \n Browse\n \n \n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"properties.html":{"url":"properties.html","title":"package-properties - properties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n Properties\n \n \n \n Description : dBildungscloud server\n \n Keywords : feathers, nest, jest, domain driven design\n \n Homepage : https://dBildungscloud.de/\n \n Bugs : \n \n License : AGPL-3.0\n \n Repository : \n \n Author : dBildungscloud Team\n \n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"todo.html":{"url":"todo.html","title":"getting-started - todo","body":"\n \n\nTechnical TODO around Nest Introduction\nSUGGESTED\n\nfilter logs by request with reflect-metadata (see mikroorm em setup)\ndisable Document from window\nfind a name for base entity id type\nfind a name for base entity class\ndecide if we want to use our entity id type in all layers (also in dtos etc.)\nuse index.ts files to bundle exports - we could use path names for imports then, e.g. @shared/domain\ncheck how we can implement mandatory/optional fields in dtos\nshould we use Expose() as default in dtos?\nin the controller we have to prohibit serialization of properties that have no @EXPOSE\nfind the best way ORM entity discovery\ndecide where to put domain interfaces (directory)\nhow can we log validation errors during development?\nsanitizer\nremove non-node async library\nfix async cleanup & remove timeout in tests\ntest object creator for nest entities\nenable log only for failed tests: https://stackoverflow.com/a/61909588\nremove mongoose history (keep one)\nremove custom npm packages (ldap, ...)\nAPI default tests to extend: auth required, fails without/succeeds with\n\nACCEPTED\n\ndocumentation\n\nentity constructor\nem to be used in repositories only (!!!)\n\n\nload/perf test\n\ndisable legacy ts support (app, tests)\n\nfix .env/config for windows\n\n\nMERGE\n\napi path prefix cleanup: remove middleware and multiple path mounts, sync with nest\nuser module stucture\nsingle domain: shared entity (main.ts), shared repository \nrequest.user.user in jwt strategy\nremove outdated sorting.ts \nremove default launch/settings json files, apply them\nfix https://github.com/hpi-schul-cloud/schulcloud-server/pull/2729#pullrequestreview-699615164\n\nSELECTED\n\ntest shared / core module \n\nasync test fixes (remove this.timeout and red promise chains)\n\ndb configuration\n\nkeep mongoose options as mongo options\npovider for mikroorm options and db url\ntest db provider\nentity discovery\ncheck indexes in mikroorm: when are they updated?\nteardown (test, server module, main.ts)\nreplikaset for test module\nentity discovery\n\n\nnews\n\nuc cleanup: 2auth, visibilities\ndocument best practices/layers/orm\n\n\ncontext: user-/request-context (see mikroorm/asynclocalstorage)\n\n\nDONE\n\ncheck build & start for production with ops\nfix jest, linter, ...\ninject APP_FILTER (exception handler) and APP_INTERCEPTOR (logger), see core module\ncustom error handling (log/response), see global-error.filter.ts\nwatch docs should hot reload on md file change\n404 error handling in feathers has to be replaced (tests too). better: have nest before feathers... but seems not to be working\nremove mongoose\npublish documentation, see https://hpi-schul-cloud.github.io/schulcloud-server/overview.html\nfix all tests (nest/legacy)\nremove legacy scripts from package json (except tests) goal: have separated tests (legacy/nest) but only execute the nest app\nusing legacy database connection string\nv3 with/-out slash: diffenrent routes should respond with different result (/v3 is a resssource, /v3/ === /v3/index)\nvscode/lauch files: we put only default files into the repo\nnaming of dtos and dto-files: api vs domain, we leave out \"dto\" suffix for simplicity (we know that they are dtos) and instead append a specific suffix:\ne.g.\napi: , , \ndomain: , \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application.html":{"url":"additional-documentation/nestjs-application.html","title":"additional-page - NestJS Application","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHPI Schul-Cloud NestJS server\nThis application extends the existing server-application based on feathers and express by introducing dependency injection supporting unit testing and modularization, the possibility to develop against interfaces, and start implementation of modules using TypeScript.\nYou find the whole documentation published as GitHub Page\nRequirements\n\nNode.js (see .nvmrc for version)\nMongoDB (4.x)\nRabbitMQ (configure using RABBITMQ_URL, see default.schema.json)\nS3 Object Storage e.g. MinIO locally\n\npreconditions\n\nHave a MongoDB started, run mongod\nHave some seed data in database, use npm run setup to reset the db and apply seed data\nHave RabbitMQ started, run docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:3.8.9-management. This starts RabbitMQ on port 5672 and a web admin console at localhost:15672 (use guest:guest to login).\nHave MinIO (S3 compatible object storage), run [optional if you need files-storage module]\n\ndocker run \\\n --name minioS3storage \\\n -p 9000:9000 \\\n -p 9001:9001 \\\n -e \"MINIO_ROOT_USER=`miniouser`\" \\\n -e \"MINIO_ROOT_PASSWORD=miniouser\" \\\n quay.io/minio/minio server /data --console-address \":9001\"\nHave ErWIn-IDM started [currently not needed, but will be mandatory in the future]. For more information look here.\n\nChange directory to the schulcloud-server root folder. Execute following command to setup the ErWIn-IDM container:\ndocker run \\\n --name erwinidm \\\n -p 8080:8080 \\\n -p 8443:8443 \\\n -v \"$PWD/backup/idm/keycloak:/tmp/realms\" \\\n ghcr.io/hpi-schul-cloud/erwin-idm/dev:latest \\\n \"&& /opt/keycloak/bin/kc.sh import --dir /tmp/realms\"To add seed data into ErWIn-IDM, use npm run setup:idm to reset and apply seed data.\nSee ErWIn-IDM specific documentation to learn how to add the ErWIn-IDM identity broker feature.\n\nAdd secrets to systems (optional)\n\nThe systems of the seed data do not contain any secrets, so connecting to those systems will fail.\nYou can add these secrets by putting them into your env vars. E.g. if you add SANIS_CLIENT_ID= into your .env file, the secret will be written into the db, when you run the database setup. You need to add the env var AES_KEY as well to encrypt those secrets in the DB.\nThe real secrets can be found in the password store.\nWhile exporting the systems to JSON the secrets will be replaced by placeholders following the pattern _. So the system with alias \"sanis\" and the secret property \"clientId\" will be replaced by \"SANIS_CLIENT_ID\"\nHow to start the application\nBeside existing scripts, for the nestJS application the following scripts have been added. Try not changing the scripts as they should match what NestJS defines by default. Execute npm run ...\n\nnest:prebuild remove existing data from previous build\nnest:build compile the applications typescript ressources from apps/server to dist folder, keeps legacy js-code where it is\nnest:build:all currently executes nest:build, could additionaly build static assets\nnest:start starts the nest application on localhost:3030\nnest:start:dev run application without build from sources in dev-mode with hot-reload\nnest:start:debug run application in dev-mode with hot-reload and debug port opened on port :9229\nnest:start:prod start applicaiton in production mode, requires nest:build to be executed beforehand\n\nIt exist a file storage module. It is started as a microservice on port :4444\n\nnest:start:files-storage starts the nest file storage\nnest:start:files-storage:dev run file storage without build from sources in dev-mode with hot-reload\nnest:start:files-storage:debug run file storage in dev-mode with hot-reload and debug port opened on port :9229\nnest:start:files-storage:prod start file storage in production mode, requires nest:build to be executed beforehand\n\nHow to build and serve the documentation\n\nnest:docs:build builds code documentation and module relations into /documentation folder\nnest:docs:serve builds code documentation and module relations into /documentation folder and serves it on port :8080 with hot reload on changes\n\nHow to start the server console\nThe console offers management capabilities of the application.\n\nnest:console after nest:build in production or\nnest:console:dev for development\n\nTo run a specific command run npm run nest:console:dev -- command . The --is required for npm to send params to the console. Use --helpto get an overview about existing commands.\nHow to test the nest-application with jest\nNestJS must not use _.test.[ts|js] as filename but instead either *.spec.ts for unit tests or *.api.spec.ts API tests. This ensures legacy/feathers/mocha tests can be separated from jest test suites.\nThe application must pass the following statement which executes separate checks:\n\nnest:test executes all jest (NestJS) tests with coverage and eslint\n\nTo test a subset, use\n\nnest:test:all execute unit and API tests\n\nnest:test:api execute API tests only\n\nnest:test:unit execute unit tests only\n\nnest:test:cov executes all jest tests with coverage check\n\nnest:test:watch executes changed tests again on save\n\nnest:test:debug executes tests with debugging\n\nnest:lint run eslint to report linter issues and apply formatting\n\nnest:lint:fix run eslint to report and auto-fix fixable linter issues and apply formatting\n\n\nQuality gates\nWith coverage on tests and static code analysis we ensure some quality gates which are all handled by running nest:test:\n\nESLint with prettier ensures formatting and static code analysis to pass, see .eslintrc.js for details.\nTests ensure functional requirements via unit & API tests.\nCoverage on tests ensures a coverage of 80% on NestJS code, see jest.config.ts for details.\n\nGates are part of pull request checks.\nOpenAPI documentation\nThe NestJS applicaiton serves a documentation at :3030/api/v3/docs. The JSON-representation can be found at /api/v3/docs-json to be used for generating a client application.\nLegacy/feathers Swagger UI documentation when running the server locally, it is served at :3030/docs/.\nLegacy (feathers) testing with mocha\n\nnpm run test\nTo run a single test, use npm run mocha-single -- .\n\nHow to get full documentation\nThe documentation is provided by compodoc, run npm run nest:docs:serve, check generated compodoc features, custom information can be found in additional information section. Your console will tell you, where it is served.\nThe updated documentation is published as GitHub Page\nContent\nFor further reading, browse apps/server/doc.\nNestJS CLI\nTo use the NestJS CLI, install the nest cli globally.\n npm i -g @nestjs/cliThen you may use features like nest g service foo within of /apps/server/src.\nDebugging\nThere are launch configurations available for VSCode in .vscode/launch.default.json\nTech Stack\nFeel free to find related documentation:\n\nhttps://nestjs.com/\nhttps://jestjs.io/\nhttps://mikro-orm.io/\nhttps://min.io/\nhttps://www.rabbitmq.com/\n\nConfiguration\nhttps://github.com/hpi-schul-cloud/schulcloud-server/blob/main/config/README.md\nNestJS Modules\nAuthorisation\nhttps://github.com/hpi-schul-cloud/schulcloud-server/blob/main/apps/server/src/modules/authorization/README.md\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/software-architecture.html":{"url":"additional-documentation/nestjs-application/software-architecture.html","title":"additional-page - Software Architecture","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSoftware Architecture\nGoals\nOur architecture aims to achieve the following goals:\n\nMaintainability\nit should be easy as possible to make changes that do not change the behaviour of the system (refactoring)\nit should be easy to exchange entire components of the system, without impact on other components.\n\n\nExtendability\nit should be easy to add new functionality to the system\n\n\nAgility\nit should be easy to react to changing requirements during our development process\n\n\nChange Security\nit should be easy to determine the correctness of the system after making any changes\n\nPrinciples\nIn order to achieve these goals, we try to follow the principles detailed below.\nThese principles apply to all layers of our software, from lines of code and methods to modules and architectural layers.\n\nSingle Responsibility / Seperation of Concerns\neach piece of code should have a single layer of abstraction/detail\neach piece of code should have a single reason to change\n\n\nOpen/Closed Principle\ndesign to be open to extension, but closed to modification\nLiskov Substitution\nthe specific input may be more generic than its interface\nthe specific output may be more specialized than its interface\n\n\nInterface Segregation\nmultiple small interfaces are preferred over big interfaces\n\n\nDependency Inversion Principle\nalways depend on interfaces, not implementations\nhigher level parts should not depend on lower level parts.\n\n\nKeep It Simple (KISS)\nany piece of code should be simple and readable\nany logic should be broken down to be trivial\nbeware of overenginiering and premature optimisation\n\n\nYou Aint Gonna Need It (YAGNI)\nkeep decisions open for as long as possible\nbuild only what you need to build, stay flexible for future requirements\n\n\nDo Not Repeat Yourself (DRY)\ndo not solve the same responsability or concern in multiple places\nbeware of things that look similar, but are not. for example, things that change for different reasons should not be combined, even if their code looks the same\n\n\n\nServer Layer Architecture\nWe generally distinguish three different layers in our server architecture: The API Layer, the Repository Layer, and the Domain Layer.\n\nNote that based on the Dependency Inversion Principle, the Domain Layer does not have any dependencies. Instead, both the API and Repository Layer depend on its abstractions.\nDomain Layer\nThe Domain Layer contains the business logic of the application. As mentioned above, it is not allowed to know about anything outside the domain layer itself.\n\nAny operation within the system is defined by a usecase (UC). It describes how an external actor, for example a user, can interact with the system.\nEach usecase defines what needs to be done to authorize it, and what needs to be done to fulfill it. To this end, it orchestrates services.\nA service is a public part of a domain module, that provides an interface for logic. It might be a simple class doing simple calculations, an interface to a complex hierarchy of classes within a module, or anything in between.\nThe domain layer might also define other classes, types, and interfaces to be used internally by its services, as well as the interface definitions for the repository layer. That way, the domain does not have to depend on the repositories, and the repositories have to depend on the domain instead (dependency inversion)\nTODO: the exact way of implementing the interfaces between repositories and domain layer is still in active discussion and development within the architecture chapter\nAPI Layer\nThe API Layer is responsible for providing the API that is exposed outside the system, and to map the various incoming requests into domain DTOs.\n\nThe params.dto and response.dto are used to automatically generate the API Documentation based on openAPI. The params.dto also contains information that is used for input validation.\nThe controller is responsible for sanitizing and authenticating incoming requests, and to map to and from the format that the domain usecase implementations expect. To this end, mappers are being used.\nRepository Layer\nThe Repository Layer is responsible for outgoing requests to external services. The most prominent example is accessing the database, but the same principles apply for sending emails or other interactions with external systems.\n\nIn order to access these external systems without knowing them, the domain layer may define interfaces that describe how it would like to use external services in its own domain language. The repositories implement these interfaces, recieving and returning exclusively objects or dtos defined in the domain.\nThe datamodel itself is defined through Entities, that have to be mapped into domain objects before they can be returned to the domain layer. We use MikroORM to create, persist and load the entities and their references among each other.\nModules\nThe codebase is broken into modules, each dealing with a part of the businesslogic, or seperated technical concerns.\nThese modules define what code is available where, and ensure a clean dependency graph.\nAll Code written should be part of exactly one module. Each module contains any services, typedefinitions, interfaces, repositories, mappers, and other files it needs internally to function.\nWhen something is needed in more than one module, it needs to be explicitly exported by the module, to be part of its public interface. It can then be imported by other modules. Services are exported published via the dependency injection mechanism provided by Nestjs.\n@Module({\n providers: [InternalRepo, InternalService, PublicService],\n exports: [PublicService],\n})\nexport class ExampleModule {}\n\n@Module({\n imports: [ExampleModule]\n providers: [SomeOtherService],\n})\nexport class OtherModule {}Notice that in the above example, the PublicService can be used anywhere within the OtherModule, including in the SomeOtherService, whereas the InternalRepo and InternalService can not.\nThings that cant be injectables, like types and interfaces, are exported via the index file at the root of the module.\nCode that needs to be shared across many modules can either be put into their own seperate module, if there is a clearly defined seperate concern covered by it, or into the shared module if not.\nApi Modules\nThe controllers and the corresponding usecases, along with the api tests for these routes, are seperated into api modules\n@Module({\n imports: [ExampleModule]\n providers: [ExampleUc],\n controllers: [ExampleController],\n})\nexport class ExampleApiModule {}This allows us to include the domain modules in different server deployments, without each of them having all api definitions. This also means that no usecase can ever be imported, as only services are ever exported, enforcing a seperation of concerns between logic and orchestration.\nHorizontal Architecture\nThe application is split into different modules that implement different parts of our domain.\nThe exact split of modules is still work in progress, or left open as implementation detail. Some important considerations are:\n\nthings with high cohesion and coupling should be in the same module\nthings with low coupling should be in seperate modules\nthe modules define an explicit public interface of usecases and types they expose to other modules\nno module should ever try to access a class of a different module that is not explicitly exported\nno injectable should ever be defined in more than one module\na module should only export services to be used by other modules.\na module that other modules might need to import, especially in another mikroservice, should not contain controllers.\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/file-structure.html":{"url":"additional-documentation/nestjs-application/file-structure.html","title":"additional-page - File Structure","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nArchitecture mapping to Code\nConventions\nFile structure\nThe server app located in /apps/server is structured like. Beside each ts-file, a test file _.spec.ts has to be added for unit tests (hidden for simplification). Use index.ts files that combine a folders content and export all files from within of the folder using export _ from './file' where this makes sense. When there are naming conflicts, use more specific names and correct concepts. Think about not to create sub-folders, when only one concept exist.\nsrc/ // sourcecode & unit tests\n - config/ // for global definitions\n - modules/ // for your NestJS modules\n - [module] // where [module] could be like user, homework, school\n - entity/\n - .entity.ts // (where might be a user, news, ... owned by the module) exports entity class & document type\n - .entity.ts // where related-info is a partial of another entity used in the entity above\n - index.ts // exports all entities\n - controller/ // where controllers define the api\n - dto/ // dto's define api in/out types as a class with annotations\n - [params].ts // (like create-user.params.ts)\n - [response].ts // (like create-user.response.ts)\n - index.ts // exports all dto's\n - .controller.ts // defines rest api, references main service file\n - .controller.ts // think about a new module when require multiple controllers :)\n - repo/ // repositories take care to load/persist/... entities\n - schema/ // contains schema imports from legacy app or new definitions (might be replaced by OR mapper)\n - .schema.ts // exports (legacy-) mongoose schemas\n - .repo.ts // where entity might be user, news, school\n - service/ // for technical dependencies (libraries, infrastructure layer concerns)\n - .service.ts // the modules main service file, might be exported for other modules\n - .service.ts // use services not for features\n - mapper/\n - .mapper.ts // mapper for a domain entity, should contain mapDomainToResponse and mapFooToDomain\n - uc/ // preferred for features\n - .uc.ts // one file per single use case (use a long name)\n - .module.ts // DI instructions to build the module\n - shared/ // reused stuff without module ownership\n - core/ // shared concepts (decorators, pipes, guards, errors, ...) folders might be added\n - domain // (abstract) domain base entities which will be extended in the modules\n - util/ // helpers, tools, utils can be located here (but find a better name)\ntest/ // contains globalSetup and globalTeardown for MongoMemoryServer for tests\nFor concepts (see https://docs.nestjs.com/first-steps) of NestJS put implementations in shared/core. You might use shared/utils for own solutions, assume TextUtils but when it contains text validators, move it better to shared/validators/text.validator.ts before merge. The core concepts of NestJS can be extended with ours (like repo).\nFile naming conventions\nIn TypeScript files: for Classes we use PascalCase (names start with uppercase letter), variables use lowercase for the first letter camelCase.\nWhen assigning names, they may end with a concept name:\n\nA Concept might be a known term which is widely used. Samples from NestJS: Controller, Provider, Module, Middleware, Exception, Pipe, Guard, Interceptor.\n\nBeside we have own concepts like comparator, validator (generic ones should not be part of a modules (and located in shared folder btw) or repo, use-case which might be owned by a module.\n\n\nIn file names, we use lowercase and minus in the beginning and end with ..ts\nSamples\n\n\n\nFile name\nClass name\nConcept\nLocation\n\n\n\n\nlogin-user.uc.ts\nLoginUserUc\nuse case\nmodule/uc\n\n\ntext.validator.ts\nTextValidator\nvalidator\nshared/validators\n\n\nuser.repo.ts\nUserRepo\nrepository\nmodule/repo\n\n\nparse-object-id.pipe.ts\nParseObjectIdPipe\npipe\nshared/pipes\n\n\n\nComponents\nComponents are defined as NestJS Modules. \nCommunication between components\nTo access other modules services, it can be injected anywhere. The usage is allowed only, when the module which owns that service has exported it in the modules definition.\n// modules/feathers/feathers-service.provider.ts\n// modules/feathers/feathers.module.ts\n@Module({\n providers: [FeathersServiceProvider],\n exports: [FeathersServiceProvider],\n})\nexport class FeathersModule {}\nThe feathers module is used to handle how the application is using legacy services, when access them, inject the FeathersServiceProvider but in your module definition, import the FeathersModule.\n// your module, here modules/authorization/authorization.module.ts\n@Module({\n imports: [FeathersModule], // here import the services module\n // providers: [AuthorizationService, FeathersAuthProvider],\n // exports: [AuthorizationService],\n})\nexport class AuthorizationModule {}\n\n// inside of your service, here feathers-auth.provider.ts\n@Injectable()\nexport class FeathersAuthProvider {\n\n // inject the service in constructor\n constructor(private feathersServiceProvider: FeathersServiceProvider) {}\n \n // ...\n\n async getUserTargetPermissions(\n // ...\n ): Promise {\n const service = this.feathersServiceProvider.getService(`path`);\n const result = await service.get(...)\n // ...\n return result;\n }\nAccess legacy Code\nUse the feathers module introduced above to get access to legacy services.\nIt is important to introduce strong typing like it happened above in the FeathersAuthProvider. While the FeathersServiceProvider from the feathers module, has only an abstract implementation for all services, add a concrete service inside your module for a specific feathers-service, like above in FeathersAuthProvider.\nAccess NestJS injectable from Feathers\nTo access a NestJS service from a legacy Feathers service you need to make the NestJS service known to the Feathers service-collection in main.ts. \nThis possibility should not be used for new features in Feathers, but it can help if you want to refactor a Feathers service to NestJs although other Feathers services depend on it.\n // main.ts\n async function bootstrap() {\n // (...)\n feathersExpress.services['nest-rocket-chat'] = nestApp.get(RocketChatService);\n // (...)\n }Afterwards you can access it the same way as you access other Feathers services with\napp.service('/nest-rocket-chat');\nLayered Architecture\nThe different layers use separately defined objects that must be mapped when crossing layers.\n\nNever export entities through the service layer without DTO-mapping which is defined in the controller\nConcepts owned by a layer must not be shared with other layers\n\n\nFurther reading: https://khalilstemmler.com/articles/software-design-architecture/organizing-app-logic/\nController\nA modules api layer is defined within of controllers.\nThe main responsibilities of a controller is to define the REST API interface as openAPI specification and map DTO's to match the logic layers interfaces.\n @Post()\n async create(@CurrentUser() currentUser: ICurrentUser, @Body() params: CreateNewsParams): Promise {\n const news = await this.newsUc.create(\n currentUser.userId,\n currentUser.schoolId,\n NewsMapper.mapCreateNewsToDomain(params)\n );\n const dto = NewsMapper.mapToResponse(news);\n return dto;\n }JWT-Authentication\nFor authentication, use guards like JwtAuthGuard. It can be applied to a whole controller or a single controller method only. Then, ICurrentUser can be injected using the @CurrentUser() decorator.\nValidation\nGlobal settings of the core-module ensure request/response validation against the api definition. Simple input types might additionally use a custom pipe while for complex types injected as query/body are validated by default when parsed as DTO class.\nFile naming\nComplex input DTOs are defined like [create-news].params.ts (class-name: CreateNewsParams).\nWhen DTO's are shared between multiple modules, locate them in the layer-related shared folder.\n\nSecurity: When exporting data, internal entities must be mapped to a response DTO class named like [news].response.dto. The mapping ensures which data of internal entities are exported.\n\nopenAPI specification\nDefining the request/response DTOs in a controller will define the openAPI specification automatically. Additional validation rules and openAPI definitions can be added using decorators. For simplification, openAPI decorators should define a type and if a property is required, while additional decorators can be used from class-validator to validate content.\nMapping\nIt is forbidden, to directly pass a DTO to a use-case or return an Entity (or other use-case result) via REST. In-between a mapper must transform the given data, to protect the logic layer from outside implications.\nThe use of a mapper gives us the guarantee, that\n\nno additional data beside the known properties is published.\nA plain object might contain more properties than defined in TS-interfaces.\nSample: All school properties are published while only name & id are intended to be published.\n\n\nthe API definition is complete\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/api-design.html":{"url":"additional-documentation/nestjs-application/api-design.html","title":"additional-page - API Design","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nto be documented\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/logging.html":{"url":"additional-documentation/nestjs-application/logging.html","title":"additional-page - Logging","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nLogging\nFor logging use the Logger, exported by the logger module. It encapsulates a Winston logger. Its injection scope is transient, so you can set a context when you inject it.\nFor better privacy protection and searchability of logs, the logger cannot log arbitrary strings but only so called loggables. If you want to log something you have to use or create a loggable that implements the Loggable interface.\nThe message should be fixed in each loggable. If you want to log further data, put in the data field of the LogMessage, like in the example below.\nexport class YourLoggable implements Loggable {\n constructor(private readonly userId: EntityId) {}\n\n getLogMessage(): LogMessage {\n return {\n message: 'I am a log message.',\n data: { userId: this.userId, },\n };\n }\n}\nimport { Logger } from '@src/core/logger';\n\nexport class YourUc {\n constructor(private logger: Logger) {\n this.logger.setContext(YourUc.name);\n }\n\n public sampleUcMethod(user) {\n this.logger.log(new YourLoggable(userId: user.id));\n }\n}This produces a logging output like\n[NestWinston] Info - 2023-05-31 15:20:30.888 [YourUc] { message: 'I am a log message.', data: { userId: '0000d231816abba584714c9e' }}Log levels and error logging\nThe logger exposes the methods log, warn, debug and verbose. It does not expose an error method because we don't want errors to be logged manually. All errors are logged in the exception filter.\nLegacy logger\nWhile transitioning to the new logger for loggables, the old logger for strings is still available as LegacyLogger.\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/exception-handling.html":{"url":"additional-documentation/nestjs-application/exception-handling.html","title":"additional-page - Exception Handling","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nException Handling\n\nWe separate our business exceptions from technical exceptions. While for technical exceptions, we use the predefined HTTPExceptions from NestJS, business exceptions inherit from abstract BusinessException.\nBy default, implementations of BusinessException must define\n code: 500\n type: \"CUSTOM_ERROR_TYPE\",\n title: \"Custom Error Type\",\n message: \"Human readable details\",\n // additional: optionalDataThere is a GlobalErrorFilter provided to handle exceptions, which cares about the response format of exceptions and logging. It overrides the default NestJS APP_FILTER in the core/error-module.\nIn client applications, for technical errors, evaluate the http-error-code, then for business exceptions, the type can be used as identifier and additional data can be evaluated.\nFor business errors we use 409/conflict as default to clearly have all business errors with one error code identified.\n\nSample: For API validation errors, 400/Bad Request will be extended with validationError: ValidationError[{ field: string, error: string }] and a custom type API_VALIDATION_ERROR.\n\nPipes can be used as input validation. To get errors reported in the correct format, they can define a custom exception factory when they should produce api validation error or other exceptions, handled by clients.\nChaining errors with the cause property\nIf you catch an error and throw a new one, put the original error in the cause property of the new error. See example:\ntry {\n someMethod();\n} catch(error) {\n throw new ForbiddenException('some message', { cause: error });\n}Loggable exceptions\nIf you want the error log to contain more information than just the exception message, use or create an exception which implements the Loggable interface. Don't put data directly in the exception message!\nA loggable exception should extend the respective Built-in HTTP exception from NestJS. For the name just put in \"Loggable\" before the word \"Exception\", e.g. \"BadRequestLoggableException\". Except for logging a loggable exception behaves like any other exception, specifically the error response is not affected by this.\nSee example below.\nexport class UnauthorizedLoggableException extends UnauthorizedException implements Loggable {\n constructor(private readonly username: string, private readonly systemId?: string) {\n super();\n }\n\n getLogMessage(): ErrorLogMessage {\n const message = {\n type: 'UNAUTHORIZED_EXCEPTION',\n stack: this.stack,\n data: {\n userName: this.username,\n systemId: this.systemId,\n },\n };\n\n return message;\n }\n}export class YourService {\n public sampleServiceMethod(username, systemId) {\n throw new UnauthorizedLoggableException(username, systemId);\n }\n}\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/domain-object-validation.html":{"url":"additional-documentation/nestjs-application/domain-object-validation.html","title":"additional-page - Domain Object Validation","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nDomain Object Validation\nIf you need to validate a domain object, please write an independent class, so that the domain object itself, its repo and services can reuse it.\nEric Evans suggests using the specification pattern.A specification fulfills the following interface:\npublic interface Specification {\n boolean isSatisfiedBy(T t);\n}A specification checks if a domain object fulfills the conditions of the specification.\nA specification can simply specify that a domain object is valid. E.g. a Task has an owner and a description.A specification can specify more complex and specialized conditions. E.g. Task where every student assigned to the task's course has handed in a submission. \nThe specification pattern in its full extend describes how to use logic operators to combine multiple specifications into combined specifications as well. Please don't build this as long as you don't need it. YAGNI.More about full specification pattern\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/testing.html":{"url":"additional-documentation/nestjs-application/testing.html","title":"additional-page - Testing","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTesting\nAutomated testing is the essential part of the software development process.\nIt improves the code quality and ensure that the code operates correctly especially after refactoring.\nGeneral Test Conventions\nLean Tests\nThe tests should be as simple to read and understand as possible. They should be effortless to write and change, in order to not slow down development. Wherever possible:\n\navoid complex logic\ncover only one case per test\nonly use clearly named and widely used helper functions\nstick to blackbox testing: think about the unit from the outside, not its inner workings.\nits okay to duplicate code for each test\n\nNaming Convention\nWhen a test fails, the name of the test is the first hint to the developer (or any other person) to what went wrong where. (along with the \"describe\" blocks the test is in).\nThus, your describe structure and testcase names should be designed to enable a person unfamiliar with the code to identify the problem as fast as possible. It should tell him:\n\nwhat component is being tested\nunder what condition\nthe expected outcome\n\nTo facilitate this, your tests should be wrapped in at least two describe levels.\n// Name of the unit under test\ndescribe(\"Course Service\", (() => {\n // method that is called\n describe('createCourse', () => {\n // a \"when...\" sentence\n describe(\"When a student tries to create a course\", (() => {\n // a \"should...\" sentence\n it(\"should return course\", async () => {\n ...\n });\n });\n });\n});Isolation\nEach test should be able to run alone, as well as together with any other tests. To ensure this, it is important that the test does not depend on any preexisting data.\n\nEach test should generate the data it needs, and ensure that its data is deleted afterwards. (this is usually done via mocha's \"afterEach\" function.\nWhen you create objects with fields that have to be globally unique, like the account username, you must ensure the name you choose is unique. This can be done by including a timestamp.\nNever use seeddata.\n\nTest Structure\nYour test should be structured in three seperate areas, each distinguished by at least an empty line:\n\nArrange - set up your testdata\nAct - call the function you want to test\nAssert - check the result\n\nthis is known as the AAA-pattern.\nThe tests for a unit should cover as much scenarios as possible. Parameters and the combination of parameters can often take numerous values. Therefore it largely differs from case to case what a sufficient amount of scenarios would be. Parameter values that contradict the typescript type definition should be ignored as a test case. \nThe test coverage report already enforces scenarios that test every possible if/else result in the code. But still some scenarios are not covered by the report and must be tested:\n\nAll error scenarios: That means one describe block for every call that can reject.\n\nWe use different levels of describe blocks to structure the tests in a way, that the tested scenarios could easily be recognized. The outer describe would be the function call itself. Every scenario is added as another describe inside the outer describe. \nAll of the data and mock preparation should happen in a setup function. Every describe scenario only contains one setup function and is called in every test. No further data or mock preparation should be added to the test. Often there will be only one test in every describe scenario, this is perfectly fine with our desired structure.\ndescribe('[method]', () => {\n describe('when [senario description that is prepared in setup]', () => {\n const setup = () => {\n // prepare the data and mocks for this scenario\n };\n\n it('...', () => {\n const { } = setup();\n });\n\n it('...', () => {\n const { } = setup();\n });\n }); \n\n describe('when [senario description that is prepared in setup]', () => {\n const setup = () => {\n // prepare the data and mocks for this scenario\n };\n\n it('...', () => {\n const { } = setup();\n });\n });\n});Testing Samples\nHandling of function return values\nWhen assigning a value to an expect, separate the function call from the expectation to simplify debugging. This later helps when you not know about the return value type or if it's an promise or not. This is good style not only for tests.\n // doSomethingCrazy : retValue\n it('bad sample', () => {\n expect(doSomethingCrazy(x,y,z)).to...\n })\n it('good sample', () => {\n const result = doSomethingCrazy(x,y,z)\n expect(result).to... // here we can simply debug\n })\nPromises and Timouts in tests\nWhen using asynchronous functions and/opr promises, results must be awaited within of an async test function instead of using promise chains. While for expecting error conditions it might be helpful to use catch for extracting a value from an expected error, in every case avoid writing long promise chains.\n\nInstead of using done callback, use async test functions.\nUse await instead of (long) promise chains\nnever manually set a timeout\n\n // doSomethingCrazy : Promise\n it('bad async sample', async function (done) => {\n this.timeout(10000);\n return doSomethingCrazy(x,y,z).then(result=>{\n expect(result).to...\n done() // expected done\n }).catch(()=>{\n logger.info(`Could not ... ${error}`);\n done() // unexpected done, test will always succeed which is wrong\n })\n })\n it('good async sample', async () => {\n // no timeout set\n const result = await doSomethingCrazy(x,y,z)\n expect(result).to...\n })\nTimeouts must not be used, when async handling is correctly defined!\n\nExpecting errors in tests\nWhen expecting an error, you might take values from an error, test for the error type thrown and must care of promises.\n // doSomethingCrazy : Promise\n it('bad async sample expecting an error', () => {\n expect(doSomethingCrazy(x,y,z)).to...\n })\n it('good async sample expecting an error value', async () => {\n const code = await doSomethingCrazy(x,y,z).catch(err => err.code)\n expect(code).to...\n })\n it('good sample expecting an error type from a sync function', () => {\n expect(() => doSomethingCrazySync(wrong, param)).toThrow(BadRequestException);\n })\n it('good sample expecting an error type from an async function', async () => {\n await expect(doSomethingCrazySync(wrong, param)).rejects.toThrow(BadRequestException);\n })Testing Utilities\nNestJS:\n\nprovides default tooling (such as test runner that builds an isolated module/application loader)\nprovides integration with Jest and Supertest out of the box\nmakes the Nest dependency injection system available in the testing environment for mocking components\n\nThe @nestjs/testing.Test class provides an execution context that mocks the full Nest runtime, but gives\nhooks that can help to manage class instances, including mocking and overriding.\nThe method Test.createTestingModule() takes module metadata as argument it returns TestingModule instance.\nThe TestingModule instance provides method compile() which bootstraps a module with its dependencies.\nEvery provider can be overwritten with custom provider implementation for testing purposes.\n beforeAll(async () => {\n const moduleRef = await Test.createTestingModule({\n controllers: [SampleController],\n providers: [SampleService],\n }).compile();\n\n sampleService = moduleRef.get(SampleService);\n sampleController = moduleRef.get(CatsController);\n });Mocking\nUsing the utilities provided by NestJs, we can easily inject mocks into our testing module. The mocks themselves, we create using a library by @golevelup.\nYou can create a mock using createMock(). As result you will recieved a DeepMocked\nlet fut: FeatureUnderTest;\nlet mockService: DeepMocked;\n\nbeforeAll(async () => {\n const module = await Test.createTestingModule({\n providers: [\n FeatureUnderTest,\n {\n provide: MockService,\n useValue: createMock(),\n },\n ],\n }).compile();\n\n fut = module.get(FeatureUnderTest);\n mockService = module.get(MockService);\n});\n\nafterAll(async () => {\n await module.close();\n});\n\nafterEach(() => {\n jest.resetAllMocks();\n})The resulting mock has all the functions of the original Class, replaced with jest spies. This gives you code completion and type safety, combined with all the features of spies.\ncreateTestingModule should only be calld in beforeAll and not in beforeEach to keep the setup and teardown for each test as simple as possible. Therefore module.close should only be called in afterAll and not in afterEach.\nTo generally reset specific mock implementation after each test jest.resetAllMocks can be used in afterEach. jest.restoreAllMocks should not be used, because in some cases it will not properly restore mocks created by ts-jest.\ndescribe('somefunction', () => {\n describe('when service returns user', () => {\n const setup = () => {\n const resultUser = userFactory.buildWithId();\n\n mockService.getUser.mockReturnValueOnce(resultUser);\n\n return { resultUser };\n };\n\n it('should call service', async () => {\n setup();\n await fut.somefunction();\n expect(mockService.getUser).toHaveBeenCalled();\n });\n\n it('should return user passed by service', async () => {\n const { resultUser } = setup();\n const result = await fut.somefunction();\n expect(result).toEqual(resultUser);\n });\n });\n});For creating specific mock implementations the helper functions which only mock the implementation once, must be used (e.g. mockReturnValueOnce). With that approach more control over mocked functions can be achieved.\nIf you want to mock a method that is not part of a dependency you can mock it with jest.spyOn. We strongly recommend the use of jest.spyOn and not jest.fn, because jest.spyOn can be restored a lot easier. \nUnit Tests vs Integration Tests\nIn Unit Tests we access directly only the component which is currently testing.\nAny dependencies should be mocked or are replaced with default testing implementation.\nEspecially the database access and database calls should be mocked.\nIn contrast to unit tests the integration tests use access to the database and execute\nreal queries using repositories.\nRepo Tests\nFor the data access layer, integration tests can be used to check the repositories base functionality against a database.\nFor Queries care DRY principle, they should be tested very carefully.\n\nUse a in-memory database for testing to allow parallel test execution and have isolated execution of tests.\n\n\nA test must define the before and after state of the data set clearly and cleanup the database after execution to the before state.\n\n\nInstead of using predefined data sets, all preconditions should be defined in code through fixtures.\n\nOur repository layer uses mikro-orm/EntityManager to execute the queries.\nBy testing repositories we want to verify the correct behaviour of the repository functions.\nIt includes verifying expected database state after executed repository function.\nTherefore, the *.repo.integration.spec.js should be used.\nThe basic structure of the repo integration test:\nPreconditions (beforeAll):\n\nCreate Nest JS testing module:\n1.1 with MongoMemoryDatabaseModule defining entities which are used in tests. This will wrap MikroOrmModule.forRoot() with running a MongoDB in memory.\n1.2 provide the repo which should be tested\nGet repo, orm and entityManager from testing module\n\n import { MongoMemoryDatabaseModule } from '@src/modules/database';\n\n let repo: NewsRepo;\n let em: EntityManager;\n let testModule: TestingModule;\n\n beforeAll(async () => {\n testModule: TestingModule = await Test.createTestingModule({ (1)\n imports: [\n MongoMemoryDatabaseModule.forRoot({ (1.1)\n entities: [News, CourseNews, ...],\n }),\n ],\n providers: [NewsRepo], (1.2)\n }).compile();\n repo = testModule.get(NewsRepo); (2)\n orm = testModule.get(MikroORM);\n em = testModule.get(EntityManager);\n })Post conditions (afterAll), Teardown\nAfter all tests are executed close the app and orm to release the resources by closing the test module.\n afterAll(async () => {\n await testModule.close();\n });\nWhen Jest reports open handles that not have been closed, ensure all Promises are awaited and all application parts started are correctly closed.\n\nEntity Factories\nTo fill the in-memory-db we use factories. They are located in \\apps\\server\\src\\shared\\testing\\factory. If you create a new one, please add it to the index.ts in that folder.\nAccessing the in-memory-db\nWhile debugging the tests, the URL to the in-memory-db can be found in the EntityManager instance of your repo in em.config.options.clientUrl.\nCopy paste this URL to your DB Tool e.g. MongoDB Compass. You will find a database called 'test' with the data you created for your test.\nMapping Tests\nMapping tests are Unit Tests which verify the correct mapping between entities and Dto objects.\nThese tests should not have any external dependencies to other layers like database or use cases.\nUse Case Tests\nSince a usecase only contains orchestration, its tests should be decoupled from the components it depends on. We thus use unittests to verify the orchestration where necessary\n\nAll Dependencies should be mocked.\n\n\nUse Spies to verify necessary steps, such as authorisation checks.\n\nto be documented\nController Tests\nControllers do not contain any logic, but exclusively information to map and validate between dataformats used on the network, and those used internally, as well as documentation of the api.\nMost of these things can not be covered by unit tests. Therefore we do not write specific unittests for them, and only cover them with api tests.\nAPI Tests\nThe API tests are plumbing or integration tests. Their job is to make sure all components that interact to fulfill a specific api endpoint are wired up correctly, and fulfil the expectation set up in the documentation.\nAPI tests should be located in the folder controller/api-test of each module.\nThey should call the endpoint like a external entity would, treating it like a blackbox. It should try all parameters available on the API, users with different roles, as well as relevant error cases.\nDuring the API test, all components that are part of the server, or controlled by the server, should be available. This includes an in-memory database.\nAny external services or servers that are outside our control should be mocked away via their respective adapters.\nReferences\nThis guide is inspired by https://github.com/goldbergyoni/javascript-testing-best-practices/\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/vscode.html":{"url":"additional-documentation/nestjs-application/vscode.html","title":"additional-page - VSCode","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nVSCode\nLaunch scripts\nIn the file ./vscode/launch.default.json you find following actions:\n\nAttach to NestJS will allow to attach VSCode debugger to an already running application\nDeubg NestJS via NPM will start the application and attach the debugger\n\nSettings\nIn the file ./vscode/settings.default.json find suggested settings.\nRecommended extensions\nSee ./vscode/extensions.json for recommendations.\nJest\nJest is used to care of unit- and end2end tests on all *.spec.ts files.\n Allows to just see failing tests in Problems tab.\n and get small icons like ✔️ or a cross beside it-definitions inside of test files.\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/git.html":{"url":"additional-documentation/nestjs-application/git.html","title":"additional-page - Git","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nGit\nBranch name conventions\n\nEach change should be done in a ticket (no matter how small)\nThe ticket does not need to be refined for very small things\nMight be relevant for reporting later\n\n\nFolder (feature/..) should no longer be used\nStay below 64 letters\nDo not simply use ticket title, usually we need a shorter description :-)\n\n\nTicket number needs to be uppercase (BC-1234)\nRelated to matching with Jira\nCareful: namespace is lowercase\n\n\n\nBC-XXXX-kebab-case-short-descriptionCommit message conventions\n\nSquashed commit subject should start with a ticket number, and end with a PR number\nClean body (contains all commits by default)\nOnly leave changes relevant for main\nRemove commits likes 'fix for linter', 'add tests', 'fix review comments'\nSee example below\n\n\nWrite commit messages in imperative and active\nGood: \"make the code better\"\nBad: \"made the code better\", \"makes the code better\"\n\n\nFeel free to write actual text\n\nBC-1993 - lesson lernstore and geogebra copy (#3532)\n \nIn order to make sure developers in the future can find out why changes have been made,\nwe would like some descriptive text here that explains what we did and why.\n \n- change some important things\n- change some other things\n- refactor some existing things\n \n# I dont need to mention tests, changes that didnt make it to main, linter, or other fixups\n# only leave lines that are relevant changes compared to main\n# comments like this will not actually show up in the git historyWindows\nWe strongly recommend to let git translate line endings. Please set git config --global --add core.autocrlf input when working with windows.\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/keycloak.html":{"url":"additional-documentation/nestjs-application/keycloak.html","title":"additional-page - Keycloak","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nErWIn-IDM (Keycloak)\n\nErWIn-IDM, namely Keycloak, will be the future Identity Management System (IDM) for the dBildungscloud. Keycloak\nprovides OpenID Connect, SAML 2.0 and other identity related functionalities like SSO out of the box. It can\nalso act as identity broker or aggregate identities from third party services which can be an active directory or LDAP.\n\nDocker\nTo run Keycloak locally for development purpose use the following Bash or PowerShell command. You can log into Keycloak\nhere http://localhost:8080. If you don't want to block your terminal, you can add the -d option to start the container\nin the background. Execute these commands in the repository root or the data seeding will fail, and you can not log into\nKeycloak with any user.\nBash:\ndocker run \\\n --name erwinidm \\\n -p 8080:8080 \\\n -p 8443:8443 \\\n -v \"$PWD/backup/idm/keycloak:/tmp/realms\" \\\n ghcr.io/hpi-schul-cloud/erwin-idm/dev:latest \\\n \"&& /opt/keycloak/bin/kc.sh import --dir /tmp/realms\"PowerShell:\ndocker run `\n --name erwinidm `\n -p 8080:8080 `\n -p 8443:8443 `\n -v \"$PWD/backup/idm/keycloak:/tmp/realms\" `\n ghcr.io/hpi-schul-cloud/erwin-idm/dev:latest `\n \"&& /opt/keycloak/bin/kc.sh import --dir /tmp/realms\"Setup OpenID Connect Identity Provider mock for ErWIn-IDM brokering\nTo add ErWIn-IDM identity broker feature via OpenID Connect (OIDC) Identity Provider (IdP) mock follow the steps below. Execute these commands in the repository root.\n\nSet env vars (or in your .env file) 'OIDCMOCK__BASE_URL' to http://:4011.\nTo make it work with the nuxt client set the env var HOST=http://localhost:4000\nre-trigger npm run setup:db and npm run setup:idm to reset and apply seed data.\nstart the 'oidc-server-mock' as follows:\n\ndocker run \\\n --name oidc-server-mock \\\n -p 4011:80 \\\n -e ASPNETCORE_ENVIRONMENT='Development' \\\n -e SERVER_OPTIONS_PATH='/tmp/config/server-config.json' \\\n -e USERS_CONFIGURATION_PATH='/tmp/config/users-config.json' \\\n -e CLIENTS_CONFIGURATION_PATH='/tmp/config/clients-config.json' \\\n -v \"$PWD/backup/idm/oidcmock:/tmp/config\" \\\n ghcr.io/soluto/oidc-server-mock:0.6.0PowerShell:\ndocker run `\n --name oidc-server-mock `\n -p 4011:80 `\n -e ASPNETCORE_ENVIRONMENT='Development' `\n -e SERVER_OPTIONS_PATH='/tmp/config/server-config.json' `\n -e USERS_CONFIGURATION_PATH='/tmp/config/users-config.json' `\n -e CLIENTS_CONFIGURATION_PATH='/tmp/config/clients-config.json' `\n -v \"$PWD/backup/idm/oidcmock:/tmp/config\" `\n ghcr.io/soluto/oidc-server-mock:0.6.0Setup OpenID Connect Identity Provider mock for ErWIn-IDM brokering with LDAP provisioning\nThe broker feature can be setup in conjunction with LDAP provisioning for local testing purpose. Therefore, run the sc-openldap-single container:\ndocker run \\\n --name sc-openldap-single \\\n -p 389:389 \\\n ghcr.io/hpi-schul-cloud/sc-openldap-single:latestdocker run `\n --name sc-openldap-single `\n -p 389:389 `\n ghcr.io/hpi-schul-cloud/sc-openldap-single:latestThe LDAP provisioning is trigger as follows:\ncurl -X POST \\\n  'http://localhost:3030/api/v1/sync?target=ldap' \\\n  --header 'Accept: */*' \\\n  --header 'X-API-KEY: example'Invoke-RestMethod `\n -Uri 'http://localhost:3030/api/v1/sync?target=ldap' `\n -Method Post `\n -Headers @{ \"Accept\" = \"*/*\"; \"X-API-KEY\" = \"example\" }See '/tmp/config/users-config.json' for the users details.\nTest local environment\nYou may test your local setup executing 'keycloak-identity-management.integration.spec.ts':\nnpx jest apps/server/src/shared/infra/identity-management/keycloak/service/keycloak-identity-management.service.integration.spec.tsSeeding Data\nDuring container startup Keycloak will always create the Master realm with the admin user. After startup, we use the\nKeycloak-CLI to import the dBildungscloud realm, which contains some seed users, groups and permissions for development\nand testing. In the table below you can see the username and password combinations for the Keycloak login.\n\n\n\nUsername\nPassword\nDescription\n\n\n\n\nkeycloak\nkeycloak\nThe overall Keycloak administrator with all permissions.\n\n\ndbildungscloud\ndBildungscloud\nThe dBildungscloud realm specific administrator.\n\n\n\nUpdating Seed Data\n\nRun Keycloak and make the desired changes\nUse docker container exec -it keycloak bash to start a bash in the container\nUse the Keycloak-CLI to export all Keycloak data with /opt/keycloak/bin/kc.sh export --dir /tmp/realms\nSave your changes with a commit\nIf you start your container with a command from the docker section, your changes will be directly applied to the starting Keycloak container\n\n\nIMPORTANT: During the export process there will be some errors, that's because the export process will be done on the\nsame port as the Keycloak server. This leads to Keycloak failing to start the server in import/export mode. Due to the\ntransition from WildFly to Quarkus as application server there is currently no documentation on this topic.\n\nIn order to re-apply the seeding data for a running keycloak container, you may run following commands (to be executed in the repository root):\n\ndocker cp ./backup/idm/keycloak keycloak:/tmp/realms\ndocker exec erwinidm /opt/keycloak/bin/kc.sh import --dir /tmp/realms\n\nNPM Commands\nA list of available NPM commands regarding Keycloak / IDM.\n\n\n\nCommand\nDescription\n\n\n\n\nsetup:idm:seed\nSeeds users for development and testing purpose into the IDM\n\n\nsetup:idm:configure\nConfigures identity and authentication providers and other details in the IDM\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/rocket.chat.html":{"url":"additional-documentation/nestjs-application/rocket.chat.html","title":"additional-page - Rocket.Chat","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nRocket.Chat\nStart Mongodb\nIt makes sense for Rocket.Chat to launch its own mongodb in Docker. Reason for this is Rocket.Chat requires Mongodb as replicaSet setup.\ndocker run --name rocket-chat-mongodb -m=256m -p27030:27017 -d docker.io/mongo --replSet rs0 --oplogSize 10Start mongoDB console and execute\nrs.initiate({\"_id\" : \"rs0\", \"members\" : [{\"_id\" : 0, \"host\" : \"localhost:27017\"}]})Start rocketChat\n(check the latest settings https://github.com/hpi-schul-cloud/dof_app_deploy/blob/main/ansible/roles/rocketchat/templates/configmap.yml.j2#L9)\nPlease not that the displayed //172.29.173.128 is the IP address of the mongoDB docker container.\nYou can get the ip over the command: docker inspect rocket-chat-mongodb | grep \"IPAddress\" (dependent on our system)\ndocker run\\\n -e CREATE_TOKENS_FOR_USERS=true \\\n -e MONGO_URL=mongodb://172.29.173.128:27030/rocketchat \\\n -e ADMIN_PASS=huhu \\\n -e API_Enable_Rate_Limiter_Limit_Calls_Default=255 \\\n -e Accounts_iframe_enabled=true \\\n -e Accounts_iframe_url=http://localhost:4000/rocketChat/Iframe \\\n -e Accounts_Iframe_api_url=http://localhost:4000/rocketChat/authGet \\\n -e Accounts_AllowRealNameChange=false \\\n -e Accounts_AllowUsernameChange=false \\\n -e Accounts_AllowEmailChange=false \\\n -e Accounts_AllowAnonymousRead=false \\\n -e Accounts_Send_Email_When_Activating=false \\\n -e Accounts_Send_Email_When_Deactivating=false \\\n -e Accounts_UseDefaultBlockedDomainsList=false \\\n -e Analytics_features_messages=false \\\n -e Analytics_features_rooms=false \\\n -e Analytics_features_users=false \\\n -e Statistics_reporting=false \\\n -e API_Enable_CORS=true \\\n -e Discussion_enabled=false \\\n -e FileUpload_Enabled=false \\\n -e UI_Use_Real_Name=true \\\n -e Threads_enabled=false \\\n -e Accounts_SetDefaultAvatar=false \\\n -e Iframe_Restrict_Access=false \\\n -e Accounts_Iframe_api_method=GET \\\n -e OVERWRITE_SETTING_Show_Setup_Wizard='completed' \\\n -p 3000:3000 docker.io/rocketchat/rocket.chat:4.7.2ENVS\nYou must also configure you server and legacy client application.\nUse the .env file in top of the project folders.\ndBildungscloud Backend Server\nROCKETCHAT_SERVICE_ENABLED=true\nROCKET_CHAT_URI=\"http://localhost:3000\"\nROCKET_CHAT_ADMIN_USER=admin\nROCKET_CHAT_ADMIN_PASSWORD=huhudBildungscloud Legacy Client\nROCKETCHAT_SERVICE_ENABLED=true\nROCKET_CHAT_URI=\"http://localhost:3000\"\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/configuration.html":{"url":"additional-documentation/nestjs-application/configuration.html","title":"additional-page - Configuration","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSchul-Cloud Server\n\n\n\nNestJS application\n\nFind the NestJS applications documentation of this repository at GitHub pages. It contains information about\n\n\nsetup & preconditions\nstarting the application\ntesting\ntools setup (VSCode, Git)\narchitecture\n\nBased on NestJS\nFeathers application\nThis is legacy part of the application!\nBased on Node.js and Feathers\nApplication seperation\nIn order to seperate NestJS and Feathers each application runs in its own express instance. These express instances are then mounted on seperate paths under a common root express instance.\nRoot-Express-App \n├─ api/v1/ --> Feathers-App\n├─ api/v3/ --> NestJS-AppThis ensures that each application can run its own middleware stack for authentication, error handling, logging etc.\nThe mount paths don't have any impact on the routes inside of the applications, e.g. the path /api/v3/news will translate to the inner path /news. That means that in terms of route matching each child application doesn't have to take any measures regarding the path prefix. It simply works as it was mounted to /.\nHowever note that when URLs are generated inside a child application the path prefix has to be prepended. Only then the generated URLs match the appropriate child application, e.g. the path /news has to be provided as the external path /api/v3/news.\nIt is possible (not very likely) that the server api is called with URLs that use the old schema without a path prefix. As a safety net for that we additionally mount the Feathers application as before under the paths:\n\n/ - for internal calls\n/api - for external calls\n\nWhen these paths are accessed an error with context [DEPRECATED-PATH] is logged.\nSetup\nThe whole application setup with all dependencies can be found in System Architecture. It contains information about how different application components are connected to each other.\nDebugger Configuration in Visual Studio Code\nFor more details how to set up Visual Studio Code, read this document.\nHow to name your branch and create a pull request (PR)\n\nTake the Ticket Number from JIRA (ticketsystem.dbildungscloud.de), e.g. SC-999\nName the feature branch beginning with Ticket Number, all words separated by dash \"-\", e.g. feature/SC-999-fantasy-problem\nCreate a PR on branch develop containing the Ticket Number in PR title\nKeep the WIP label as long as this PR is in development, complete PR checklist (is automatically added), keep or increase code test coverage, and pass all tests before you remove the WIP label. Reviewers will be added automatically.\n\nCommitting\nDefault branch: main\n\nGo into project folder\nCheckout to develop branch (or clone for the first time)\nRun git pull\nCreate a branch for your new feature named feature/BC-Ticket-ID-Description\nRun the tests (see above)\nCommit with a meaningful commit message(!) even at 4 a.m. and not stuff like \"dfsdfsf\"\nStart a pull request (see above) to branch develop to merge your changes\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/authorisation.html":{"url":"additional-documentation/nestjs-application/authorisation.html","title":"additional-page - Authorisation","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nNestJS Authorization Module\nObjectives\nBreaking down complexity and isolate it.\nOne place to solve a specific authorization for a scope.\nOne implementation to handle all different situations in our system.\nIt should not be possible to use it in a wrong way.\n\nYou should not need to understand the complete system, to know if something is authorized\n\nWe also want to avoid any specific code for modules, collections, or something else, in the authorization module.\nExplanation of Terms\nPermissions\nWe have string based permissions.\nFor examples check \"enum Permission\".\nIt includes all available permissions and is not seperated by concerns or abstraction levels.\nThe permissions have different implicit scopes like instance, school, or named scope like team and course.\n(Feature Flag Permissions)\nSome of the permissions are used like feature flags. We want to seperate and move these in the future.\nPlease keep that in mind, while becoming familiar with permissions.\nRoles\nWe have a role collection, where each role has a permissions array that includes string based permissions.\nRoles inherit permissions from the roles they have in their \"roles\" field.\nLike the \"user\" role, some of these roles are abstract and only used for inheritance.\nSome others are scope based with a prefix name like team*, or course*.\nThe \"real\" user roles by name are expert, student, teacher and administrator. All of these are in the school scope and the superhero is in the scope of an instance.\n\nIn future we want to remove the inherit logic.\nWe want to add scope types to each role.\nAdd more technical users for the instance scope.\n\nEntities\nThe entities are the representation of a single document of the collection, or the type.\nThey are used for authorization for now, but should be replaced by domain objects soon.\nDomain Objects\nThey are not really introduced. They should map between the repository layer and the domain.\n\nIn future they are the base for authorization and the authorization service doesn't know anything about entities anymore.\n\nScopes\nEverything what the system, or a user wants to do, is executed in a scope.\nA scope means an area like the complete instance, the school, the course, the user itself and so on.\nThe scopes are highly bind to the real domain objects that we have in our domain.\nScope Actions\nThe permission for a base action, like they are defined in CRUD operations, is needed to execute something in a scope.\nThe most implicit action you ever need is the \"read\" action. That means, you must have the authorization to \"read\" the scope, otherwise it should not exist for you. :-)\nThe other possible action is to have write access to the scope.\nIt is a combination of delete, edit, create from CRUD side.\n\nFrom our current perspective, we need no differentiation.\nBut we force the implementation in a way, that allows us to add some more.\n\nScope Permission\nWe have different situations where it is hard to say you can write/read to the domain scope.\nWe need the possibility to define different permissions for a single domain scope, or a single domain object it self.\n\nLet say the user can edit his own user account, but we want to disallow that they can change his age.\nBut an administrator should have the authorization to do it.\n\nor a other case..\n\nA student has limited permissions in a team, where he is only a member, but would have more permissions in a team, where he is the owner. So at this point, we need to distingush between instances of domain objects.\n\nUser(s)\nIn authorization scope it can be a system user, or a real user in our application.\nEach user has a role with permissions in the scope of the domain object they want to interact with.\nEach authorization requires a user.\nSystem Users\nWe have console operations, or operations based on API_KEYS that are used between internal services for already authorized operations like copy and copy files in file service.\nFor this we want to use system user and roles with own permissions.\n\nThey are not introduced for now\n\nRules\nThe rules are implemented with a strategy pattern and are called from the authorization service.\nThe implementation should solve the authorization for a domain object based on the executed action.\nIt implements a check for which domain object, entity, or additional conditions should be used.\n\nThe rule must validate our scope actions.\nWe highly recommend that every single operation and check in the rule is implemented as a additional method to keep the logic clean and moveable.\n\nUser (Role) Permissions vs Scope Based Permissions\nThe permissions of the user come from his role.\nThis permissions have no explicit scope. But implicitly the roles expert, student, teacher and administrator are in the school scope. The superhero is implicitly in the scope of the instance.\nIt exists also scope based permissions. A user can have different (scope)roles in different (domain)scopes. For example in teams where the student can have team member role in one team, or team adminstrator in another.\n\nIn future we want to switch the implicit scope of the user role permissions to explicit scopes like in teams.\nAt the moment we must handle scope-, user- and system-user-permissions as seperated special cases in our implementation.\nBy implementing user role permissions bind to scopes, we can do it in one way for all situations.\n\nHow should you Authorize an Operation?\nAuthorization must be handled in use cases (UC). They solve the authorization and orchestrate the logic that should be done in services, or private methods.\nYou should never implement authorization on service level, to avoid different authorization steps.\nWhen calling other internal micro service for already authorized operations please use a queue based on RabbitMQ.\n\nNot implemented but coming soon.\n\nHow to use Authorization Service\n\nPlease avoid to catch the errors of the authorization in UC.\nWe set empty array as required for passing permissions to make it visible that no string base permission is needed.\n\nExample 1 - Execute a Single Operation\n this.authorizationService.checkPermission(user, course, AuthorizationContextBuilder.write([])\n // or\n this.authorizationService.hasPermission(user, course, AuthorizationContextBuilder.write([])\n // next orchestration stepsExample 2 - Execute a Single Operation with Loading Resources\n// If you don't have an entity but an entity type and id, you can check permission by reference\nawait this.authorizationService.checkPermissionByReferences(userId, AllowedEntity.course, courseId, AuthorizationContextBuilder.read([]));\n// or\nawait this.authorizationService.hasPermissionByReferences(userId, AllowedEntity.course, courseId, AuthorizationContextBuilder.read([]));\n// next orchestration stepsExample 3 - Set Permission(s) of User as Required\n// Multiple permissions can be added. For a successful authorization, the user need all of them.\nawait this.authorizationService.hasPermission(userId, course, AuthorizationContextBuilder.read([Permissions.COURSE_VIEW]));\n// next orchestration stepsExample 4 - Define Context for Multiple Places\n/** const **/\nexport const FileStorageAuthorizationContext = {\n create: AuthorizationContextBuilder.write([Permission.FILESTORAGE_CREATE]),\n read: AuthorizationContextBuilder.read([Permission.FILESTORAGE_VIEW]),\n update: AuthorizationContextBuilder.write([Permission.FILESTORAGE_EDIT]),\n delete: AuthorizationContextBuilder.write([Permission.FILESTORAGE_REMOVE]),\n};\n\n/** UC **/\nthis.authorizationService.hasPermission(userId, course, PermissionContexts.create);\n// do other orchestration stepsHow to use in our use cases\nExample - Create a school by superhero\nasync createSchoolBySuperhero(userId: EntityId, params: { name: string }) {\n\n const user = this.authorizationService.getUserWithPermissions(userId);\n this.authorizationService.hasAllPermissions(user, [Permission.SCHOOL_CREATE]);\n\n const school = new School(params);\n\n await this.schoolService.save(school);\n\n return true;\n}\nExample - Create user by admin\n\nasync createUserByAdmin(userId: EntityId, params: { email: string, firstName: string, lastName: string, schoolId: EntityId }) {\n\n const user = this.authorizationService.getUserWithPermissions(userId);\n\n await this.authorizationService.checkPermissionByReferences(userId, AllowedEntity.school, schoolId, AuthorizationContextBuilder.write([Permission.INSTANCE, Permission.CREATE_USER]));\n\n const newUser = new User(params)\n\n await this.userService.save(newUser);\n\n return true;\n}\nExample - Edit course by admin\n// admin\nasync editCourseByAdmin(userId: EntityId, params: { courseId: EntityId, description: string }) {\n\n const course = this.courseService.getCourse(params.courseId);\n const user = this.authorizationService.getUserWithPermissions(userId);\n\n const school = course.school\n\n this.authorizationService.hasPermissions(user, school, [Permission.INSTANCE, Permission.COURSE_EDIT]);\n\n course.description = params.description;\n\n await this.courseService.save(course);\n\n return true;\n}\nExample - Create a Course\n// User can create a course in scope a school, you need to check if he can it by school\nasync createCourse(userId: EntityId, params: { schoolId: EntityId }) {\n const user = this.authorizationService.getUserWithPermissions(userId);\n const school = this.schoolService.getSchool(params.schoolId);\n\n this.authorizationService.checkPermission(user, school\n {\n action: Actions.write,\n requiredPermissions: [Permission.COURSE_CREATE],\n }\n );\n\n const course = new Course({ school });\n\n await this.courseService.saveCourse(course);\n\n return course;\n}\nExample - Create a Lesson\n// User can create a lesson to course, so you have a courseId\nasync createLesson(userId: EntityId, params: { courseId: EntityId }) {\n const course = this.courseService.getCourse(params.courseId);\n const user = this.authorizationService.getUserWithPermissions(userId);\n // check authorization for user and course\n this.authorizationService.checkPermission(user, course\n {\n action: Actions.write,\n requiredPermissions: [Permission.COURSE_EDIT],\n }\n );\n\n const lesson = new Lesson({course});\n\n await this.lessonService.saveLesson(lesson);\n\n return true;\n}How to write a rule\nSo a rule must validate our scope actions. For example we have a news for the school or course. The news has a creator and target model.\n\nAttention: The target model must be populated\n\n@Injectable()\nexport class NewsRule extends BasePermission {\n constructor(private readonly authorizationHelper: AuthorizationHelper, private readonly schoolRule: SchoolRule, private readonly courseRule: CourseRule) {\n super();\n }\n\n // Is used to select the matching rule in the rule manager. Therefore we keep the condition to which case the rule\n // applies in the rule itself. In future we expect more complex conditions that could apply here.\n public isApplicable(user: User, entity: News): boolean {\n const isMatched = entity instanceof News;\n\n return isMatched;\n }\n\n public hasPermission(user: User, entity: News, context: AuthorizationContext): boolean {\n const { action, requiredPermissions } = context;\n\n // check required permissions passed by UC\n const hasPermission = this.authorizationHelper.hasAllPermissions(user, requiredPermissions);\n // check access to entity by property\n const isCreator = this.authorizationHelper.hasAccessToEntity(user, entity, ['creator']);\n let hasNewsPermission = false;\n\n if (action === Actions.read) {\n hasNewsPermission = this.parentPermission(user, entity, action);\n } else if (action === Actions.write) {\n hasNewsPermission = isCreator;\n }\n\n const result = hasPermission && hasNewsPermission;\n\n return result;\n }\n\n private parentPermission(user: User, entity: News, action: Actions): boolean {\n let hasParentPermission = false;\n // check by parentRule, because the schoolRule can contain extra logic\n // e.g. school is offline\n // or courseRule has complex permissions-resolves\n if (entity.targetModel === NewsTargetModel.School) {\n hasParentPermission = this.schoolRule.hasPermission(user, entity.target, { action, requiredPermissions: [] });\n } else if (entity.targetModel === NewsTargetModel.Course) {\n hasParentPermission = this.courseRule.hasPermission(user, entity.target, { action, requiredPermissions: [] });\n }\n\n return hasParentPermission;\n }\n}\nStructure of the Authorization Components\nfeathers-* (legacy/deprecated)\nIt exists a adapter to call featherJS endpoints that solve authorizations.\n\nThis service is only used in news and should not be used in any other place.\nWe want to remove it completly.\n\nAuthorization Module\nThe authorization module is the core of authorization. It collects all needed information and handles it behind a small interface. It exports the authoriation service that can be used in your use case over injections.\nReference.loader\nFor situations where only the id and the domain object (string) type is known, it is possible to use the *ByReferences methods.\nThey load the reference directly.\n\nPlease keep in mind that it can have an impact on the performance if you use it wrongly.\nWe keep it as a seperate method to avoid the usage in areas where the domain object should exist, because we see the risk that a developer could be tempted by the ease of only passing the id.\n\nauthorization-context.builder\nWe export an authorization context builder to prepare the parameter for the authorization service called \"authorization context\".\nThis is optional and not required.\nBut it enables us to easily change the structure of the authorization context without touching many different places.\nshared/domain/interface/*\nrolename.enum\nAn enum that holds all avaible role names.\npermission.enum\nA enum that holds all avaible permission names, however it's mixing all domain scopes atm.\nWorking other Internal MicroServices\n\nExample FilesStorageService\n\nWe have the files storage service application that is a bundle of modules of this repository.\nThe application is startet as additional micro service.\nIt exists the need that the server application can call the file service.\nWe add a files storage client module to the server.\nThis module exports a service to communicate with the file service.\nFor communication it uses RabbitMQ.\nEvery operation must already be authorized in the UC of the server. There is no need to do it again in files storage service.\nFor this reason, we want the consumer of the RabbitMQ item to call the files storage service directly without authorization.\nLegacy Tech Stack FeatherJS Hooks\nIn featherJS all the authorization is done in hooks. Mostly before hooks and sometimes in after hooks.\nBefore and after means before, or after the database operation. For self writen services before, or after the call of the operation that should be executed.\nThey work similar to express middleware and bring their own request context.\nIt exists hooks that can be used for all http(s) calls, or for specific type based on CRUD operations.\nAdditionally it also exists the find operations that are a http(s) GET requests without the ID of a specific element.\nEach function that adds to the hooks will be executed in order. Hooks for all methods first, then hooks for specific methodes.\nEach hooks exists for a featherJS service that exposes directly the api endpoints directly. Additional it exists a global hook pattern for the whole application.\nExample: https://github.com/hpi-schul-cloud/schulcloud-server/blob/main/src/services/lesson/hooks/index.js#L232\nDesired Changes in Future\nSome small steps are done. But many next steps still exist.\nThey follow our general target.\nNext Steps\n\nImplementation of Scope Based Permissions as generell solution instead of User Permissions that has only implicit school scopes for now.\nRemove populate logic in reference loader.\nSolve eager loading in coursegroups.\nIntroduce RabbitMQ. Splitting Service(logic) from UC, that we can call services over the consumer for internal communication between micro services of already authorized operations.\nThink about: Move hasPermission checks from rules to a more generic place.\nRemove jwt decorator and cleanup copy logic.\nMove authorization-context.builder to authorization module.\nRemove inheritance from roles, because we want to write it explicitly into the collection documents.\nMoving role api endpoints to nestjs.\nFixing of dashboard to handle roles in the right way as superhero.\nSwitching entity based authorization to domain objects based in steps.\nCleanup of feature flags from user permissions.\nAdd existing feature flags to rules on places where it make sense.\nIntroduce instance as a scope to have an implemenation that handles all scopes/rules/permissions/user types in the same way.\n\nRefactoring Todos\n\nTask module should fully use authorization service.\nNews module should start to use authorization service.\n\nIs Needed\n\nWe can introduce a new layer called \"policy\" that combines different rules (any of them has their own matching strategy) for a single domain object between authorization and rule to reduce complexity in a single rule.\nWe can switch to a behaviour where rules register themself at the authorization service than.\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/code-style.html":{"url":"additional-documentation/nestjs-application/code-style.html","title":"additional-page - Code Style","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nCode Style\nFunction\nNaming\nThe name of a function should clearly communicate what it does. There should be no need to read the implementation of a function to understand what it does.\nThere are a few keywords that we use with specific meaning:\nis...\nisTask(), isPublished(), isAuthenticated(), isValid()\nA function with the prefix \"is...\" is checking wether the input belongs to a certain (sub)class, or fulfils a specific criteria.\nThe function should return a boolean, and have no sideeffects.\ncheck...\ncheckPermission(), checkInputIsValid()\nA function with the prefix \"check...\" is checking the condition described in its name, throwing an error if it does not apply.\nhas...\nhasPermission(),\nsimilar to \"is...\", the prefix \"has...\" means that the function is checking a condition, and returns a boolean. It does NOT throw an error.\nClasses\nOrder of declarations\nClasses are declared in the following order:\n\nproperties\nconstructor\nmethods\n\nExample:\nexport class Course {\n // 1. properties\n name: string;\n \n // more properties...\n\n // 2. constructor\n constructor(props: { name: string }) {\n // ...\n }\n\n // 3. methods\n getShortTitle(): string {\n // ...\n }\n\n // more methods...\n}\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"additional-documentation/nestjs-application/s3clientmodule.html":{"url":"additional-documentation/nestjs-application/s3clientmodule.html","title":"additional-page - S3ClientModule","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nS3 client module\nThis module allows to connect to the S3 storage with our abstraction layer.\nhow to use\nYou need to create a unique connection token and set it as the connection name in S3 configuration. And you must use this token, when injecting the S3 client into your service. This is very important, because multiple modules could potentially use the S3 client with different configurations.\nThe S3ClientModule.register method awaits an array of S3 configurations. Also you can create many connections to different S3 providers and buckets.\n// your.config.ts\nexport const YOUR_S3_UNIQ_CONNECTION_TOKEN = \"YOUR_S3_UNIQ_CONNECTION_TOKEN\";\n\nconst s3Config: S3Config = {\n connectionName: YOUR_S3_UNIQ_CONNECTION_TOKEN, // Important!\n endpoint: \"\",\n region: \"\",\n bucket: \"\",\n accessKeyId: \"\",\n secretAccessKey: \"\",\n};\n\n// your.service.ts\n\n@Injectable()\nexport class FilesStorageService {\n constructor(\n @Inject(YOUR_S3_UNIQ_CONNECTION_TOKEN) // Important!\n private readonly storageClient: S3ClientAdapter)\n}\n\n// your.module.ts\n@Module({\n imports: [S3ClientModule.register([s3Config]),]\n providers: [YourService]\n})\n\nexport class YourModule {}\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"}} } diff --git a/miscellaneous/typealiases.html b/miscellaneous/typealiases.html index e1c71a983f0..a06e4b8ee44 100644 --- a/miscellaneous/typealiases.html +++ b/miscellaneous/typealiases.html @@ -309,6 +309,9 @@

    Index

  • PartialBy   (apps/.../external-tool.types.ts)
  • +
  • + ReadableStreamWithFileTypeProps   (apps/.../readable-stream-with-file-type.factory.ts) +
  • RepoType   (apps/.../reference.loader.ts)
  • @@ -1951,6 +1954,24 @@

    apps/server/src/shared/domain/domainobject/board/types/any-board-do.ts

    +

    apps/server/src/shared/testing/factory/readable-stream-with-file-type.factory.ts

    +
    + + + + + + + + + +
    + + ReadableStreamWithFileTypeProps +
    + literal type + +

    apps/server/src/modules/authorization/reference.loader.ts

    diff --git a/miscellaneous/variables.html b/miscellaneous/variables.html index 51760c23c97..f8c762d7f65 100644 --- a/miscellaneous/variables.html +++ b/miscellaneous/variables.html @@ -156,6 +156,9 @@

    Index

  • config   (jest.config.ts)
  • +
  • + config   (apps/.../swagger.ts) +
  • config   (apps/.../files-storage.config.ts)
  • @@ -168,9 +171,6 @@

    Index

  • config   (apps/.../server.config.ts)
  • -
  • - config   (apps/.../swagger.ts) -
  • contentTypeDetector   (apps/.../external-tool-logo.service.ts)
  • @@ -537,6 +537,9 @@

    Index

  • publicKey   (apps/.../jwt.test.factory.ts)
  • +
  • + readableStreamWithFileTypeFactory   (apps/.../readable-stream-with-file-type.factory.ts) +
  • REDIS_CLIENT   (apps/.../redis.constants.ts)
  • @@ -738,9 +741,6 @@

    Index

  •    (apps/.../server-error-types.ts)
  • -
  • -    (apps/.../constants.ts) -
  • userDoFactory   (apps/.../user.do.factory.ts)
  • @@ -756,6 +756,12 @@

    Index

  • userPermissions   (apps/.../user-role-permissions.ts)
  • +
  • +    (apps/.../constants.ts) +
  • +
  • +    (apps/.../file-system.adapter.ts) +
  • videoConferenceDOFactory   (apps/.../video-conference.do.factory.ts)
  • @@ -765,9 +771,6 @@

    Index

  • VideoConferenceSettings   (apps/.../video-conference-settings.interface.ts)
  • -
  • -    (apps/.../file-system.adapter.ts) -
  • VideoConferencingScopeMapping   (apps/.../video-conference.repo.ts)
  • @@ -2701,6 +2704,70 @@

    + +
    +
    +

    apps/server/src/shared/controller/swagger.ts

    +
    +

    + + + + + + + + + + + + + +
    + + + config + + +
    + Default value : new DocumentBuilder() + .addServer('/api/v3/') // add default path as server to have correct urls ald let 'try out' work + .setTitle('HPI Schul-Cloud Server API') + .setDescription('This is v3 of HPI Schul-Cloud Server. Checkout /docs for v1.') + .setVersion('3.0') + /** set authentication for all routes enabled by default */ + .addBearerAuth({ type: 'http', scheme: 'bearer', bearerFormat: 'JWT' }) + .build() +
    +

    +

    OpenAPI docs setup

    +
    +

    They will be generated by Controller routes +and DTOs/Entities passed. Their properties +must use @ApiProperty

    +
    +
    + + + + + + + + + +
    + + + enableOpenApiDocs + + +
    + Default value : (app: INestApplication, path: string, options?: SwaggerDocumentOptions): void => { + const document = SwaggerModule.createDocument(app, config, options); + SwaggerModule.setup(path, app, document); +} +
    @@ -3042,70 +3109,6 @@

    - -
    - -

    apps/server/src/shared/controller/swagger.ts

    -
    -

    - - - - - - - - - - - - - -
    - - - config - - -
    - Default value : new DocumentBuilder() - .addServer('/api/v3/') // add default path as server to have correct urls ald let 'try out' work - .setTitle('HPI Schul-Cloud Server API') - .setDescription('This is v3 of HPI Schul-Cloud Server. Checkout /docs for v1.') - .setVersion('3.0') - /** set authentication for all routes enabled by default */ - .addBearerAuth({ type: 'http', scheme: 'bearer', bearerFormat: 'JWT' }) - .build() -
    -

    -

    OpenAPI docs setup

    -
    -

    They will be generated by Controller routes -and DTOs/Entities passed. Their properties -must use @ApiProperty

    -
    -
    - - - - - - - - - -
    - - - enableOpenApiDocs - - -
    - Default value : (app: INestApplication, path: string, options?: SwaggerDocumentOptions): void => { - const document = SwaggerModule.createDocument(app, config, options); - SwaggerModule.setup(path, app, document); -} -
    @@ -7154,6 +7157,42 @@

    + +
    + +

    apps/server/src/shared/testing/factory/readable-stream-with-file-type.factory.ts

    +
    +

    + + + + + + + + +
    + + + readableStreamWithFileTypeFactory + + +
    + Default value : BaseFactory.define< + ReadableStreamWithFileTypeImp, + ReadableStreamWithFileTypeProps +>(ReadableStreamWithFileTypeImp, () => { + const readable = Readable.from('abc'); + + return { + fileType: { + ext: 'png', + mime: 'image/png', + }, + readable, + }; +}) +
    @@ -9313,6 +9352,29 @@

    + +
    + +

    apps/server/src/shared/infra/file-system/file-system.adapter.ts

    +
    +

    + + + + + + + + +
    + + + + + +
    + Default value : fsp +
    @@ -9415,29 +9477,6 @@

    - -
    - -

    apps/server/src/shared/infra/file-system/file-system.adapter.ts

    -
    -

    - - - - - - - - -
    - - - - - -
    - Default value : fsp -
    diff --git a/modules/AuthenticationModule.html b/modules/AuthenticationModule.html index c6898cf86f0..a7c74a7204a 100644 --- a/modules/AuthenticationModule.html +++ b/modules/AuthenticationModule.html @@ -66,14 +66,14 @@ cluster_AuthenticationModule - -cluster_AuthenticationModule_imports - - cluster_AuthenticationModule_exports + +cluster_AuthenticationModule_imports + + cluster_AuthenticationModule_providers diff --git a/modules/AuthenticationModule/dependencies.svg b/modules/AuthenticationModule/dependencies.svg index e0913feb0cb..5ee438b3b91 100644 --- a/modules/AuthenticationModule/dependencies.svg +++ b/modules/AuthenticationModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_AuthenticationModule - -cluster_AuthenticationModule_imports - - cluster_AuthenticationModule_exports + +cluster_AuthenticationModule_imports + + cluster_AuthenticationModule_providers diff --git a/modules/AuthorizationModule.html b/modules/AuthorizationModule.html index af507785dbf..9f410011d8f 100644 --- a/modules/AuthorizationModule.html +++ b/modules/AuthorizationModule.html @@ -66,14 +66,14 @@ cluster_AuthorizationModule - -cluster_AuthorizationModule_exports - - cluster_AuthorizationModule_providers + +cluster_AuthorizationModule_exports + + cluster_AuthorizationModule_imports diff --git a/modules/AuthorizationModule/dependencies.svg b/modules/AuthorizationModule/dependencies.svg index 15197c0cccb..8be2d867095 100644 --- a/modules/AuthorizationModule/dependencies.svg +++ b/modules/AuthorizationModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_AuthorizationModule - -cluster_AuthorizationModule_exports - - cluster_AuthorizationModule_providers + +cluster_AuthorizationModule_exports + + cluster_AuthorizationModule_imports diff --git a/modules/BoardModule.html b/modules/BoardModule.html index 987856513f5..026ef01b6ca 100644 --- a/modules/BoardModule.html +++ b/modules/BoardModule.html @@ -66,6 +66,10 @@ cluster_BoardModule + +cluster_BoardModule_exports + + cluster_BoardModule_providers @@ -74,10 +78,6 @@ cluster_BoardModule_imports - -cluster_BoardModule_exports - - ConsoleWriterModule diff --git a/modules/BoardModule/dependencies.svg b/modules/BoardModule/dependencies.svg index a03878ac2a4..f5a29d3e755 100644 --- a/modules/BoardModule/dependencies.svg +++ b/modules/BoardModule/dependencies.svg @@ -24,6 +24,10 @@ cluster_BoardModule + +cluster_BoardModule_exports + + cluster_BoardModule_providers @@ -32,10 +36,6 @@ cluster_BoardModule_imports - -cluster_BoardModule_exports - - ConsoleWriterModule diff --git a/modules/CacheWrapperModule.html b/modules/CacheWrapperModule.html index 54df179114f..d40df7864a0 100644 --- a/modules/CacheWrapperModule.html +++ b/modules/CacheWrapperModule.html @@ -66,14 +66,14 @@ cluster_CacheWrapperModule - -cluster_CacheWrapperModule_providers - - cluster_CacheWrapperModule_exports + +cluster_CacheWrapperModule_providers + + CacheService diff --git a/modules/CacheWrapperModule/dependencies.svg b/modules/CacheWrapperModule/dependencies.svg index 5734bbdcdbd..8bda11cb761 100644 --- a/modules/CacheWrapperModule/dependencies.svg +++ b/modules/CacheWrapperModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_CacheWrapperModule - -cluster_CacheWrapperModule_providers - - cluster_CacheWrapperModule_exports + +cluster_CacheWrapperModule_providers + + CacheService diff --git a/modules/CalendarModule.html b/modules/CalendarModule.html index 2b0c06c8d51..043b01f1fac 100644 --- a/modules/CalendarModule.html +++ b/modules/CalendarModule.html @@ -66,14 +66,14 @@ cluster_CalendarModule - -cluster_CalendarModule_exports - - cluster_CalendarModule_providers + +cluster_CalendarModule_exports + + CalendarService diff --git a/modules/CalendarModule/dependencies.svg b/modules/CalendarModule/dependencies.svg index 4c786758797..779dd317518 100644 --- a/modules/CalendarModule/dependencies.svg +++ b/modules/CalendarModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_CalendarModule - -cluster_CalendarModule_exports - - cluster_CalendarModule_providers + +cluster_CalendarModule_exports + + CalendarService diff --git a/modules/CollaborativeStorageModule.html b/modules/CollaborativeStorageModule.html index 251881ea517..d34c9724dd0 100644 --- a/modules/CollaborativeStorageModule.html +++ b/modules/CollaborativeStorageModule.html @@ -66,6 +66,10 @@ cluster_CollaborativeStorageModule + +cluster_CollaborativeStorageModule_exports + + cluster_CollaborativeStorageModule_imports @@ -74,10 +78,6 @@ cluster_CollaborativeStorageModule_providers - -cluster_CollaborativeStorageModule_exports - - AuthorizationModule diff --git a/modules/CollaborativeStorageModule/dependencies.svg b/modules/CollaborativeStorageModule/dependencies.svg index 6c847f2ab0e..6b0ffe0aa0d 100644 --- a/modules/CollaborativeStorageModule/dependencies.svg +++ b/modules/CollaborativeStorageModule/dependencies.svg @@ -24,6 +24,10 @@ cluster_CollaborativeStorageModule + +cluster_CollaborativeStorageModule_exports + + cluster_CollaborativeStorageModule_imports @@ -32,10 +36,6 @@ cluster_CollaborativeStorageModule_providers - -cluster_CollaborativeStorageModule_exports - - AuthorizationModule diff --git a/modules/CommonToolModule.html b/modules/CommonToolModule.html index 16edeca9324..f263a3bcfc5 100644 --- a/modules/CommonToolModule.html +++ b/modules/CommonToolModule.html @@ -66,167 +66,167 @@ cluster_CommonToolModule + +cluster_CommonToolModule_providers + + cluster_CommonToolModule_imports - + cluster_CommonToolModule_exports - - - -cluster_CommonToolModule_providers - + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule CommonToolModule - -CommonToolModule + +CommonToolModule LegacySchoolModule->CommonToolModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->CommonToolModule - - + + CommonToolService - -CommonToolService + +CommonToolService CommonToolModule->CommonToolService - - + + CommonToolValidationService - -CommonToolValidationService + +CommonToolValidationService CommonToolModule->CommonToolValidationService - - + + ContextExternalToolRepo - -ContextExternalToolRepo + +ContextExternalToolRepo CommonToolModule->ContextExternalToolRepo - - + + SchoolExternalToolRepo - -SchoolExternalToolRepo + +SchoolExternalToolRepo CommonToolModule->SchoolExternalToolRepo - - + + ToolPermissionHelper - -ToolPermissionHelper + +ToolPermissionHelper CommonToolModule->ToolPermissionHelper - - + + CommonToolService - -CommonToolService + +CommonToolService CommonToolService->CommonToolModule - - + + CommonToolValidationService - -CommonToolValidationService + +CommonToolValidationService CommonToolValidationService->CommonToolModule - - + + ContextExternalToolRepo - -ContextExternalToolRepo + +ContextExternalToolRepo ContextExternalToolRepo->CommonToolModule - - + + SchoolExternalToolRepo - -SchoolExternalToolRepo + +SchoolExternalToolRepo SchoolExternalToolRepo->CommonToolModule - - + + ToolPermissionHelper - -ToolPermissionHelper + +ToolPermissionHelper ToolPermissionHelper->CommonToolModule - - + + diff --git a/modules/CommonToolModule/dependencies.svg b/modules/CommonToolModule/dependencies.svg index dd9eaf25caa..9588cdfff40 100644 --- a/modules/CommonToolModule/dependencies.svg +++ b/modules/CommonToolModule/dependencies.svg @@ -24,167 +24,167 @@ cluster_CommonToolModule + +cluster_CommonToolModule_providers + + cluster_CommonToolModule_imports - + cluster_CommonToolModule_exports - - - -cluster_CommonToolModule_providers - + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule CommonToolModule - -CommonToolModule + +CommonToolModule LegacySchoolModule->CommonToolModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->CommonToolModule - - + + CommonToolService - -CommonToolService + +CommonToolService CommonToolModule->CommonToolService - - + + CommonToolValidationService - -CommonToolValidationService + +CommonToolValidationService CommonToolModule->CommonToolValidationService - - + + ContextExternalToolRepo - -ContextExternalToolRepo + +ContextExternalToolRepo CommonToolModule->ContextExternalToolRepo - - + + SchoolExternalToolRepo - -SchoolExternalToolRepo + +SchoolExternalToolRepo CommonToolModule->SchoolExternalToolRepo - - + + ToolPermissionHelper - -ToolPermissionHelper + +ToolPermissionHelper CommonToolModule->ToolPermissionHelper - - + + CommonToolService - -CommonToolService + +CommonToolService CommonToolService->CommonToolModule - - + + CommonToolValidationService - -CommonToolValidationService + +CommonToolValidationService CommonToolValidationService->CommonToolModule - - + + ContextExternalToolRepo - -ContextExternalToolRepo + +ContextExternalToolRepo ContextExternalToolRepo->CommonToolModule - - + + SchoolExternalToolRepo - -SchoolExternalToolRepo + +SchoolExternalToolRepo SchoolExternalToolRepo->CommonToolModule - - + + ToolPermissionHelper - -ToolPermissionHelper + +ToolPermissionHelper ToolPermissionHelper->CommonToolModule - - + + diff --git a/modules/ConsoleWriterModule.html b/modules/ConsoleWriterModule.html index 3220b40e47b..d7963a58cdd 100644 --- a/modules/ConsoleWriterModule.html +++ b/modules/ConsoleWriterModule.html @@ -66,14 +66,14 @@ cluster_ConsoleWriterModule - -cluster_ConsoleWriterModule_providers - - cluster_ConsoleWriterModule_exports + +cluster_ConsoleWriterModule_providers + + ConsoleWriterService diff --git a/modules/ConsoleWriterModule/dependencies.svg b/modules/ConsoleWriterModule/dependencies.svg index bdae8c103a8..10cd3c55c39 100644 --- a/modules/ConsoleWriterModule/dependencies.svg +++ b/modules/ConsoleWriterModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_ConsoleWriterModule - -cluster_ConsoleWriterModule_providers - - cluster_ConsoleWriterModule_exports + +cluster_ConsoleWriterModule_providers + + ConsoleWriterService diff --git a/modules/ContextExternalToolModule.html b/modules/ContextExternalToolModule.html index ce829dbba13..62e57e25bf2 100644 --- a/modules/ContextExternalToolModule.html +++ b/modules/ContextExternalToolModule.html @@ -66,14 +66,14 @@ cluster_ContextExternalToolModule - -cluster_ContextExternalToolModule_imports - - cluster_ContextExternalToolModule_exports + +cluster_ContextExternalToolModule_imports + + cluster_ContextExternalToolModule_providers diff --git a/modules/ContextExternalToolModule/dependencies.svg b/modules/ContextExternalToolModule/dependencies.svg index cf355fd4691..bd49a468883 100644 --- a/modules/ContextExternalToolModule/dependencies.svg +++ b/modules/ContextExternalToolModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_ContextExternalToolModule - -cluster_ContextExternalToolModule_imports - - cluster_ContextExternalToolModule_exports + +cluster_ContextExternalToolModule_imports + + cluster_ContextExternalToolModule_providers diff --git a/modules/CoreModule.html b/modules/CoreModule.html index 3b42cab53d5..92d1c8f42d7 100644 --- a/modules/CoreModule.html +++ b/modules/CoreModule.html @@ -66,14 +66,14 @@ cluster_CoreModule - -cluster_CoreModule_exports - - cluster_CoreModule_imports + +cluster_CoreModule_exports + + ErrorModule diff --git a/modules/CoreModule/dependencies.svg b/modules/CoreModule/dependencies.svg index c2868adf51b..ea7b488053d 100644 --- a/modules/CoreModule/dependencies.svg +++ b/modules/CoreModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_CoreModule - -cluster_CoreModule_exports - - cluster_CoreModule_imports + +cluster_CoreModule_exports + + ErrorModule diff --git a/modules/DatabaseManagementModule.html b/modules/DatabaseManagementModule.html index b01e77d8582..3b660658ae8 100644 --- a/modules/DatabaseManagementModule.html +++ b/modules/DatabaseManagementModule.html @@ -66,14 +66,14 @@ cluster_DatabaseManagementModule - -cluster_DatabaseManagementModule_exports - - cluster_DatabaseManagementModule_providers + +cluster_DatabaseManagementModule_exports + + DatabaseManagementService diff --git a/modules/DatabaseManagementModule/dependencies.svg b/modules/DatabaseManagementModule/dependencies.svg index feb5c1079f9..dec3b83de18 100644 --- a/modules/DatabaseManagementModule/dependencies.svg +++ b/modules/DatabaseManagementModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_DatabaseManagementModule - -cluster_DatabaseManagementModule_exports - - cluster_DatabaseManagementModule_providers + +cluster_DatabaseManagementModule_exports + + DatabaseManagementService diff --git a/modules/ExternalToolModule.html b/modules/ExternalToolModule.html index b5cf387d33e..b015db271c1 100644 --- a/modules/ExternalToolModule.html +++ b/modules/ExternalToolModule.html @@ -66,227 +66,227 @@ cluster_ExternalToolModule - -cluster_ExternalToolModule_providers - - cluster_ExternalToolModule_imports - + + + +cluster_ExternalToolModule_providers + cluster_ExternalToolModule_exports - + CommonToolModule - -CommonToolModule + +CommonToolModule ExternalToolModule - -ExternalToolModule + +ExternalToolModule CommonToolModule->ExternalToolModule - - + + EncryptionModule - -EncryptionModule + +EncryptionModule EncryptionModule->ExternalToolModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ExternalToolModule - - + + OauthProviderServiceModule - -OauthProviderServiceModule + +OauthProviderServiceModule OauthProviderServiceModule->ExternalToolModule - - + + ToolConfigModule - -ToolConfigModule + +ToolConfigModule ToolConfigModule->ExternalToolModule - - + + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService ExternalToolModule->ExternalToolConfigurationService - - + + ExternalToolLogoService - -ExternalToolLogoService + +ExternalToolLogoService ExternalToolModule->ExternalToolLogoService - - + + ExternalToolService - -ExternalToolService + +ExternalToolService ExternalToolModule->ExternalToolService - - + + ExternalToolValidationService - -ExternalToolValidationService + +ExternalToolValidationService ExternalToolModule->ExternalToolValidationService - - + + ExternalToolVersionService - -ExternalToolVersionService + +ExternalToolVersionService ExternalToolModule->ExternalToolVersionService - - + + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService ExternalToolConfigurationService->ExternalToolModule - - + + ExternalToolParameterValidationService - -ExternalToolParameterValidationService + +ExternalToolParameterValidationService ExternalToolParameterValidationService->ExternalToolModule - - + + ExternalToolRepo - -ExternalToolRepo + +ExternalToolRepo ExternalToolRepo->ExternalToolModule - - + + ExternalToolService - -ExternalToolService + +ExternalToolService ExternalToolService->ExternalToolModule - - + + ExternalToolServiceMapper - -ExternalToolServiceMapper + +ExternalToolServiceMapper ExternalToolServiceMapper->ExternalToolModule - - + + ExternalToolValidationService - -ExternalToolValidationService + +ExternalToolValidationService ExternalToolValidationService->ExternalToolModule - - + + ExternalToolVersionService - -ExternalToolVersionService + +ExternalToolVersionService ExternalToolVersionService->ExternalToolModule - - + + diff --git a/modules/ExternalToolModule/dependencies.svg b/modules/ExternalToolModule/dependencies.svg index 0747709c546..8c68fd8e757 100644 --- a/modules/ExternalToolModule/dependencies.svg +++ b/modules/ExternalToolModule/dependencies.svg @@ -24,227 +24,227 @@ cluster_ExternalToolModule - -cluster_ExternalToolModule_providers - - cluster_ExternalToolModule_imports - + + + +cluster_ExternalToolModule_providers + cluster_ExternalToolModule_exports - + CommonToolModule - -CommonToolModule + +CommonToolModule ExternalToolModule - -ExternalToolModule + +ExternalToolModule CommonToolModule->ExternalToolModule - - + + EncryptionModule - -EncryptionModule + +EncryptionModule EncryptionModule->ExternalToolModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ExternalToolModule - - + + OauthProviderServiceModule - -OauthProviderServiceModule + +OauthProviderServiceModule OauthProviderServiceModule->ExternalToolModule - - + + ToolConfigModule - -ToolConfigModule + +ToolConfigModule ToolConfigModule->ExternalToolModule - - + + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService ExternalToolModule->ExternalToolConfigurationService - - + + ExternalToolLogoService - -ExternalToolLogoService + +ExternalToolLogoService ExternalToolModule->ExternalToolLogoService - - + + ExternalToolService - -ExternalToolService + +ExternalToolService ExternalToolModule->ExternalToolService - - + + ExternalToolValidationService - -ExternalToolValidationService + +ExternalToolValidationService ExternalToolModule->ExternalToolValidationService - - + + ExternalToolVersionService - -ExternalToolVersionService + +ExternalToolVersionService ExternalToolModule->ExternalToolVersionService - - + + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService ExternalToolConfigurationService->ExternalToolModule - - + + ExternalToolParameterValidationService - -ExternalToolParameterValidationService + +ExternalToolParameterValidationService ExternalToolParameterValidationService->ExternalToolModule - - + + ExternalToolRepo - -ExternalToolRepo + +ExternalToolRepo ExternalToolRepo->ExternalToolModule - - + + ExternalToolService - -ExternalToolService + +ExternalToolService ExternalToolService->ExternalToolModule - - + + ExternalToolServiceMapper - -ExternalToolServiceMapper + +ExternalToolServiceMapper ExternalToolServiceMapper->ExternalToolModule - - + + ExternalToolValidationService - -ExternalToolValidationService + +ExternalToolValidationService ExternalToolValidationService->ExternalToolModule - - + + ExternalToolVersionService - -ExternalToolVersionService + +ExternalToolVersionService ExternalToolVersionService->ExternalToolModule - - + + diff --git a/modules/FilesStorageClientModule.html b/modules/FilesStorageClientModule.html index 2f117ac0b83..7080b21a5d2 100644 --- a/modules/FilesStorageClientModule.html +++ b/modules/FilesStorageClientModule.html @@ -66,107 +66,107 @@ cluster_FilesStorageClientModule - -cluster_FilesStorageClientModule_providers - + +cluster_FilesStorageClientModule_imports + cluster_FilesStorageClientModule_exports - + - -cluster_FilesStorageClientModule_imports - + +cluster_FilesStorageClientModule_providers + CopyHelperModule - -CopyHelperModule + +CopyHelperModule FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule CopyHelperModule->FilesStorageClientModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->FilesStorageClientModule - - + + CopyFilesService - -CopyFilesService + +CopyFilesService FilesStorageClientModule->CopyFilesService - - + + FilesStorageClientAdapterService - -FilesStorageClientAdapterService + +FilesStorageClientAdapterService FilesStorageClientModule->FilesStorageClientAdapterService - - + + CopyFilesService - -CopyFilesService + +CopyFilesService CopyFilesService->FilesStorageClientModule - - + + FilesStorageClientAdapterService - -FilesStorageClientAdapterService + +FilesStorageClientAdapterService FilesStorageClientAdapterService->FilesStorageClientModule - - + + FilesStorageProducer - -FilesStorageProducer + +FilesStorageProducer FilesStorageProducer->FilesStorageClientModule - - + + diff --git a/modules/FilesStorageClientModule/dependencies.svg b/modules/FilesStorageClientModule/dependencies.svg index 43786e9a749..72886de4a1d 100644 --- a/modules/FilesStorageClientModule/dependencies.svg +++ b/modules/FilesStorageClientModule/dependencies.svg @@ -24,107 +24,107 @@ cluster_FilesStorageClientModule - -cluster_FilesStorageClientModule_providers - + +cluster_FilesStorageClientModule_imports + cluster_FilesStorageClientModule_exports - + - -cluster_FilesStorageClientModule_imports - + +cluster_FilesStorageClientModule_providers + CopyHelperModule - -CopyHelperModule + +CopyHelperModule FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule CopyHelperModule->FilesStorageClientModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->FilesStorageClientModule - - + + CopyFilesService - -CopyFilesService + +CopyFilesService FilesStorageClientModule->CopyFilesService - - + + FilesStorageClientAdapterService - -FilesStorageClientAdapterService + +FilesStorageClientAdapterService FilesStorageClientModule->FilesStorageClientAdapterService - - + + CopyFilesService - -CopyFilesService + +CopyFilesService CopyFilesService->FilesStorageClientModule - - + + FilesStorageClientAdapterService - -FilesStorageClientAdapterService + +FilesStorageClientAdapterService FilesStorageClientAdapterService->FilesStorageClientModule - - + + FilesStorageProducer - -FilesStorageProducer + +FilesStorageProducer FilesStorageProducer->FilesStorageClientModule - - + + diff --git a/modules/FilesStorageModule.html b/modules/FilesStorageModule.html index 35532963b8e..2cf0a3662e6 100644 --- a/modules/FilesStorageModule.html +++ b/modules/FilesStorageModule.html @@ -66,167 +66,167 @@ cluster_FilesStorageModule - -cluster_FilesStorageModule_exports - + +cluster_FilesStorageModule_providers + cluster_FilesStorageModule_imports - + - -cluster_FilesStorageModule_providers - + +cluster_FilesStorageModule_exports + AuthenticationModule - -AuthenticationModule + +AuthenticationModule FilesStorageModule - -FilesStorageModule + +FilesStorageModule AuthenticationModule->FilesStorageModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->FilesStorageModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->FilesStorageModule - - + + FilesStorageApiModule - -FilesStorageApiModule + +FilesStorageApiModule FilesStorageApiModule->FilesStorageModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->FilesStorageModule - - + + RabbitMQWrapperModule - -RabbitMQWrapperModule + +RabbitMQWrapperModule RabbitMQWrapperModule->FilesStorageModule - - + + RabbitMQWrapperTestModule - -RabbitMQWrapperTestModule + +RabbitMQWrapperTestModule RabbitMQWrapperTestModule->FilesStorageModule - - + + FilesStorageService - -FilesStorageService + +FilesStorageService FilesStorageModule->FilesStorageService - - + + PreviewService - -PreviewService + +PreviewService FilesStorageModule->PreviewService - - + + FileRecordRepo - -FileRecordRepo + +FileRecordRepo FileRecordRepo->FilesStorageModule - - + + FilesStorageService - -FilesStorageService + +FilesStorageService FilesStorageService->FilesStorageModule - - + + PreviewService - -PreviewService + +PreviewService PreviewService->FilesStorageModule - - + + diff --git a/modules/FilesStorageModule/dependencies.svg b/modules/FilesStorageModule/dependencies.svg index 35e1c774425..cb74c2ba456 100644 --- a/modules/FilesStorageModule/dependencies.svg +++ b/modules/FilesStorageModule/dependencies.svg @@ -24,167 +24,167 @@ cluster_FilesStorageModule - -cluster_FilesStorageModule_exports - + +cluster_FilesStorageModule_providers + cluster_FilesStorageModule_imports - + - -cluster_FilesStorageModule_providers - + +cluster_FilesStorageModule_exports + AuthenticationModule - -AuthenticationModule + +AuthenticationModule FilesStorageModule - -FilesStorageModule + +FilesStorageModule AuthenticationModule->FilesStorageModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->FilesStorageModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->FilesStorageModule - - + + FilesStorageApiModule - -FilesStorageApiModule + +FilesStorageApiModule FilesStorageApiModule->FilesStorageModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->FilesStorageModule - - + + RabbitMQWrapperModule - -RabbitMQWrapperModule + +RabbitMQWrapperModule RabbitMQWrapperModule->FilesStorageModule - - + + RabbitMQWrapperTestModule - -RabbitMQWrapperTestModule + +RabbitMQWrapperTestModule RabbitMQWrapperTestModule->FilesStorageModule - - + + FilesStorageService - -FilesStorageService + +FilesStorageService FilesStorageModule->FilesStorageService - - + + PreviewService - -PreviewService + +PreviewService FilesStorageModule->PreviewService - - + + FileRecordRepo - -FileRecordRepo + +FileRecordRepo FileRecordRepo->FilesStorageModule - - + + FilesStorageService - -FilesStorageService + +FilesStorageService FilesStorageService->FilesStorageModule - - + + PreviewService - -PreviewService + +PreviewService PreviewService->FilesStorageModule - - + + diff --git a/modules/FwuLearningContentsModule.html b/modules/FwuLearningContentsModule.html index 03ac9e6aed6..2fd2f44b16d 100644 --- a/modules/FwuLearningContentsModule.html +++ b/modules/FwuLearningContentsModule.html @@ -66,103 +66,103 @@ cluster_FwuLearningContentsModule - -cluster_FwuLearningContentsModule_providers - - cluster_FwuLearningContentsModule_imports - + + + +cluster_FwuLearningContentsModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule FwuLearningContentsModule - -FwuLearningContentsModule + +FwuLearningContentsModule AuthenticationModule->FwuLearningContentsModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->FwuLearningContentsModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->FwuLearningContentsModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->FwuLearningContentsModule - - + + RabbitMQWrapperModule - -RabbitMQWrapperModule + +RabbitMQWrapperModule RabbitMQWrapperModule->FwuLearningContentsModule - - + + S3ClientModule - -S3ClientModule + +S3ClientModule S3ClientModule->FwuLearningContentsModule - - + + FwuLearningContentsUc - -FwuLearningContentsUc + +FwuLearningContentsUc FwuLearningContentsUc->FwuLearningContentsModule - - + + diff --git a/modules/FwuLearningContentsModule/dependencies.svg b/modules/FwuLearningContentsModule/dependencies.svg index 1a2633a040d..61303dda108 100644 --- a/modules/FwuLearningContentsModule/dependencies.svg +++ b/modules/FwuLearningContentsModule/dependencies.svg @@ -24,103 +24,103 @@ cluster_FwuLearningContentsModule - -cluster_FwuLearningContentsModule_providers - - cluster_FwuLearningContentsModule_imports - + + + +cluster_FwuLearningContentsModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule FwuLearningContentsModule - -FwuLearningContentsModule + +FwuLearningContentsModule AuthenticationModule->FwuLearningContentsModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->FwuLearningContentsModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->FwuLearningContentsModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->FwuLearningContentsModule - - + + RabbitMQWrapperModule - -RabbitMQWrapperModule + +RabbitMQWrapperModule RabbitMQWrapperModule->FwuLearningContentsModule - - + + S3ClientModule - -S3ClientModule + +S3ClientModule S3ClientModule->FwuLearningContentsModule - - + + FwuLearningContentsUc - -FwuLearningContentsUc + +FwuLearningContentsUc FwuLearningContentsUc->FwuLearningContentsModule - - + + diff --git a/modules/FwuLearningContentsTestModule.html b/modules/FwuLearningContentsTestModule.html index 4b551ea5bd1..b35adc13ec7 100644 --- a/modules/FwuLearningContentsTestModule.html +++ b/modules/FwuLearningContentsTestModule.html @@ -66,115 +66,115 @@ cluster_FwuLearningContentsTestModule - -cluster_FwuLearningContentsTestModule_providers - - cluster_FwuLearningContentsTestModule_imports - + + + +cluster_FwuLearningContentsTestModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule FwuLearningContentsTestModule - -FwuLearningContentsTestModule + +FwuLearningContentsTestModule AuthenticationModule->FwuLearningContentsTestModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->FwuLearningContentsTestModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->FwuLearningContentsTestModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->FwuLearningContentsTestModule - - + + MongoMemoryDatabaseModule - -MongoMemoryDatabaseModule + +MongoMemoryDatabaseModule MongoMemoryDatabaseModule->FwuLearningContentsTestModule - - + + RabbitMQWrapperTestModule - -RabbitMQWrapperTestModule + +RabbitMQWrapperTestModule RabbitMQWrapperTestModule->FwuLearningContentsTestModule - - + + S3ClientModule - -S3ClientModule + +S3ClientModule S3ClientModule->FwuLearningContentsTestModule - - + + FwuLearningContentsUc - -FwuLearningContentsUc + +FwuLearningContentsUc FwuLearningContentsUc->FwuLearningContentsTestModule - - + + diff --git a/modules/FwuLearningContentsTestModule/dependencies.svg b/modules/FwuLearningContentsTestModule/dependencies.svg index 17c50ba016f..41e915a635f 100644 --- a/modules/FwuLearningContentsTestModule/dependencies.svg +++ b/modules/FwuLearningContentsTestModule/dependencies.svg @@ -24,115 +24,115 @@ cluster_FwuLearningContentsTestModule - -cluster_FwuLearningContentsTestModule_providers - - cluster_FwuLearningContentsTestModule_imports - + + + +cluster_FwuLearningContentsTestModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule FwuLearningContentsTestModule - -FwuLearningContentsTestModule + +FwuLearningContentsTestModule AuthenticationModule->FwuLearningContentsTestModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->FwuLearningContentsTestModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->FwuLearningContentsTestModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->FwuLearningContentsTestModule - - + + MongoMemoryDatabaseModule - -MongoMemoryDatabaseModule + +MongoMemoryDatabaseModule MongoMemoryDatabaseModule->FwuLearningContentsTestModule - - + + RabbitMQWrapperTestModule - -RabbitMQWrapperTestModule + +RabbitMQWrapperTestModule RabbitMQWrapperTestModule->FwuLearningContentsTestModule - - + + S3ClientModule - -S3ClientModule + +S3ClientModule S3ClientModule->FwuLearningContentsTestModule - - + + FwuLearningContentsUc - -FwuLearningContentsUc + +FwuLearningContentsUc FwuLearningContentsUc->FwuLearningContentsTestModule - - + + diff --git a/modules/H5PEditorModule.html b/modules/H5PEditorModule.html index 847ca4df7de..0bc4e00748a 100644 --- a/modules/H5PEditorModule.html +++ b/modules/H5PEditorModule.html @@ -66,67 +66,67 @@ cluster_H5PEditorModule - -cluster_H5PEditorModule_providers - - cluster_H5PEditorModule_imports - + + + +cluster_H5PEditorModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule H5PEditorModule - -H5PEditorModule + +H5PEditorModule AuthenticationModule->H5PEditorModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->H5PEditorModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->H5PEditorModule - - + + Logger - -Logger + +Logger Logger->H5PEditorModule - - + + diff --git a/modules/H5PEditorModule/dependencies.svg b/modules/H5PEditorModule/dependencies.svg index 7b16172fa34..25f990f869a 100644 --- a/modules/H5PEditorModule/dependencies.svg +++ b/modules/H5PEditorModule/dependencies.svg @@ -24,67 +24,67 @@ cluster_H5PEditorModule - -cluster_H5PEditorModule_providers - - cluster_H5PEditorModule_imports - + + + +cluster_H5PEditorModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule H5PEditorModule - -H5PEditorModule + +H5PEditorModule AuthenticationModule->H5PEditorModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->H5PEditorModule - - + + CoreModule - -CoreModule + +CoreModule CoreModule->H5PEditorModule - - + + Logger - -Logger + +Logger Logger->H5PEditorModule - - + + diff --git a/modules/IdentityManagementModule.html b/modules/IdentityManagementModule.html index bf3c1b3127e..46aafed1f28 100644 --- a/modules/IdentityManagementModule.html +++ b/modules/IdentityManagementModule.html @@ -66,14 +66,14 @@ cluster_IdentityManagementModule - -cluster_IdentityManagementModule_exports - - cluster_IdentityManagementModule_imports + +cluster_IdentityManagementModule_exports + + EncryptionModule diff --git a/modules/IdentityManagementModule/dependencies.svg b/modules/IdentityManagementModule/dependencies.svg index a6a787251a7..20838180ff7 100644 --- a/modules/IdentityManagementModule/dependencies.svg +++ b/modules/IdentityManagementModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_IdentityManagementModule - -cluster_IdentityManagementModule_exports - - cluster_IdentityManagementModule_imports + +cluster_IdentityManagementModule_exports + + EncryptionModule diff --git a/modules/KeycloakAdministrationModule.html b/modules/KeycloakAdministrationModule.html index d684e55f52f..031ed817de1 100644 --- a/modules/KeycloakAdministrationModule.html +++ b/modules/KeycloakAdministrationModule.html @@ -66,14 +66,14 @@ cluster_KeycloakAdministrationModule - -cluster_KeycloakAdministrationModule_exports - - cluster_KeycloakAdministrationModule_providers + +cluster_KeycloakAdministrationModule_exports + + KeycloakAdministrationService diff --git a/modules/KeycloakAdministrationModule/dependencies.svg b/modules/KeycloakAdministrationModule/dependencies.svg index 6cc08655c7d..913751455c2 100644 --- a/modules/KeycloakAdministrationModule/dependencies.svg +++ b/modules/KeycloakAdministrationModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_KeycloakAdministrationModule - -cluster_KeycloakAdministrationModule_exports - - cluster_KeycloakAdministrationModule_providers + +cluster_KeycloakAdministrationModule_exports + + KeycloakAdministrationService diff --git a/modules/KeycloakConfigurationModule.html b/modules/KeycloakConfigurationModule.html index 4817fa97cae..4031fbd7831 100644 --- a/modules/KeycloakConfigurationModule.html +++ b/modules/KeycloakConfigurationModule.html @@ -70,14 +70,14 @@ cluster_KeycloakConfigurationModule_providers - -cluster_KeycloakConfigurationModule_imports - - cluster_KeycloakConfigurationModule_exports + +cluster_KeycloakConfigurationModule_imports + + AccountModule diff --git a/modules/KeycloakConfigurationModule/dependencies.svg b/modules/KeycloakConfigurationModule/dependencies.svg index 276f318db12..0fd76341cf6 100644 --- a/modules/KeycloakConfigurationModule/dependencies.svg +++ b/modules/KeycloakConfigurationModule/dependencies.svg @@ -28,14 +28,14 @@ cluster_KeycloakConfigurationModule_providers - -cluster_KeycloakConfigurationModule_imports - - cluster_KeycloakConfigurationModule_exports + +cluster_KeycloakConfigurationModule_imports + + AccountModule diff --git a/modules/KeycloakModule.html b/modules/KeycloakModule.html index f8e5b9a8f8d..5bc9b1191a6 100644 --- a/modules/KeycloakModule.html +++ b/modules/KeycloakModule.html @@ -66,14 +66,14 @@ cluster_KeycloakModule - -cluster_KeycloakModule_imports - - cluster_KeycloakModule_exports + +cluster_KeycloakModule_imports + + cluster_KeycloakModule_providers diff --git a/modules/KeycloakModule/dependencies.svg b/modules/KeycloakModule/dependencies.svg index 0837ecca53e..d8c1f35a232 100644 --- a/modules/KeycloakModule/dependencies.svg +++ b/modules/KeycloakModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_KeycloakModule - -cluster_KeycloakModule_imports - - cluster_KeycloakModule_exports + +cluster_KeycloakModule_imports + + cluster_KeycloakModule_providers diff --git a/modules/LearnroomApiModule.html b/modules/LearnroomApiModule.html index 6d9b05809f3..d393a2c9150 100644 --- a/modules/LearnroomApiModule.html +++ b/modules/LearnroomApiModule.html @@ -66,235 +66,235 @@ cluster_LearnroomApiModule - -cluster_LearnroomApiModule_providers - - cluster_LearnroomApiModule_imports - + + + +cluster_LearnroomApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule LearnroomApiModule - -LearnroomApiModule + +LearnroomApiModule AuthorizationModule->LearnroomApiModule - - + + CopyHelperModule - -CopyHelperModule + +CopyHelperModule CopyHelperModule->LearnroomApiModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->LearnroomApiModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->LearnroomApiModule - - + + BoardRepo - -BoardRepo + +BoardRepo BoardRepo->LearnroomApiModule - - + + CourseCopyUC - -CourseCopyUC + +CourseCopyUC CourseCopyUC->LearnroomApiModule - - + + CourseExportUc - -CourseExportUc + +CourseExportUc CourseExportUc->LearnroomApiModule - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->LearnroomApiModule - - + + CourseUc - -CourseUc + +CourseUc CourseUc->LearnroomApiModule - - + + DashboardModelMapper - -DashboardModelMapper + +DashboardModelMapper DashboardModelMapper->LearnroomApiModule - - + + DashboardUc - -DashboardUc + +DashboardUc DashboardUc->LearnroomApiModule - - + + LessonCopyUC - -LessonCopyUC + +LessonCopyUC LessonCopyUC->LearnroomApiModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->LearnroomApiModule - - + + RoomBoardDTOFactory - -RoomBoardDTOFactory + +RoomBoardDTOFactory RoomBoardDTOFactory->LearnroomApiModule - - + + RoomBoardResponseMapper - -RoomBoardResponseMapper + +RoomBoardResponseMapper RoomBoardResponseMapper->LearnroomApiModule - - + + RoomsAuthorisationService - -RoomsAuthorisationService + +RoomsAuthorisationService RoomsAuthorisationService->LearnroomApiModule - - + + RoomsUc - -RoomsUc + +RoomsUc RoomsUc->LearnroomApiModule - - + + UserRepo - -UserRepo + +UserRepo UserRepo->LearnroomApiModule - - + + diff --git a/modules/LearnroomApiModule/dependencies.svg b/modules/LearnroomApiModule/dependencies.svg index 1846e09e5d0..8b889f7c483 100644 --- a/modules/LearnroomApiModule/dependencies.svg +++ b/modules/LearnroomApiModule/dependencies.svg @@ -24,235 +24,235 @@ cluster_LearnroomApiModule - -cluster_LearnroomApiModule_providers - - cluster_LearnroomApiModule_imports - + + + +cluster_LearnroomApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule LearnroomApiModule - -LearnroomApiModule + +LearnroomApiModule AuthorizationModule->LearnroomApiModule - - + + CopyHelperModule - -CopyHelperModule + +CopyHelperModule CopyHelperModule->LearnroomApiModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->LearnroomApiModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->LearnroomApiModule - - + + BoardRepo - -BoardRepo + +BoardRepo BoardRepo->LearnroomApiModule - - + + CourseCopyUC - -CourseCopyUC + +CourseCopyUC CourseCopyUC->LearnroomApiModule - - + + CourseExportUc - -CourseExportUc + +CourseExportUc CourseExportUc->LearnroomApiModule - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->LearnroomApiModule - - + + CourseUc - -CourseUc + +CourseUc CourseUc->LearnroomApiModule - - + + DashboardModelMapper - -DashboardModelMapper + +DashboardModelMapper DashboardModelMapper->LearnroomApiModule - - + + DashboardUc - -DashboardUc + +DashboardUc DashboardUc->LearnroomApiModule - - + + LessonCopyUC - -LessonCopyUC + +LessonCopyUC LessonCopyUC->LearnroomApiModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->LearnroomApiModule - - + + RoomBoardDTOFactory - -RoomBoardDTOFactory + +RoomBoardDTOFactory RoomBoardDTOFactory->LearnroomApiModule - - + + RoomBoardResponseMapper - -RoomBoardResponseMapper + +RoomBoardResponseMapper RoomBoardResponseMapper->LearnroomApiModule - - + + RoomsAuthorisationService - -RoomsAuthorisationService + +RoomsAuthorisationService RoomsAuthorisationService->LearnroomApiModule - - + + RoomsUc - -RoomsUc + +RoomsUc RoomsUc->LearnroomApiModule - - + + UserRepo - -UserRepo + +UserRepo UserRepo->LearnroomApiModule - - + + diff --git a/modules/LegacySchoolApiModule.html b/modules/LegacySchoolApiModule.html index 0071642f98c..d952f82e1c5 100644 --- a/modules/LegacySchoolApiModule.html +++ b/modules/LegacySchoolApiModule.html @@ -68,91 +68,91 @@ cluster_LegacySchoolApiModule - -cluster_LegacySchoolApiModule_imports - - cluster_LegacySchoolApiModule_providers - + + + +cluster_LegacySchoolApiModule_imports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule LegacySchoolApiModule - -LegacySchoolApiModule + +LegacySchoolApiModule AuthorizationModule->LegacySchoolApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->LegacySchoolApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->LegacySchoolApiModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->LegacySchoolApiModule - - + + LegacySchoolUc - -LegacySchoolUc + +LegacySchoolUc LegacySchoolUc->LegacySchoolApiModule - - + + MigrationMapper - -MigrationMapper + +MigrationMapper MigrationMapper->LegacySchoolApiModule - - + + diff --git a/modules/LegacySchoolApiModule/dependencies.svg b/modules/LegacySchoolApiModule/dependencies.svg index ef173e46813..b9501923e85 100644 --- a/modules/LegacySchoolApiModule/dependencies.svg +++ b/modules/LegacySchoolApiModule/dependencies.svg @@ -24,91 +24,91 @@ cluster_LegacySchoolApiModule - -cluster_LegacySchoolApiModule_imports - - cluster_LegacySchoolApiModule_providers - + + + +cluster_LegacySchoolApiModule_imports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule LegacySchoolApiModule - -LegacySchoolApiModule + +LegacySchoolApiModule AuthorizationModule->LegacySchoolApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->LegacySchoolApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->LegacySchoolApiModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->LegacySchoolApiModule - - + + LegacySchoolUc - -LegacySchoolUc + +LegacySchoolUc LegacySchoolUc->LegacySchoolApiModule - - + + MigrationMapper - -MigrationMapper + +MigrationMapper MigrationMapper->LegacySchoolApiModule - - + + diff --git a/modules/LegacySchoolModule.html b/modules/LegacySchoolModule.html index bf7ff226fb6..b8367395e32 100644 --- a/modules/LegacySchoolModule.html +++ b/modules/LegacySchoolModule.html @@ -68,155 +68,155 @@ cluster_LegacySchoolModule - -cluster_LegacySchoolModule_imports - - cluster_LegacySchoolModule_providers - + + + +cluster_LegacySchoolModule_imports + cluster_LegacySchoolModule_exports - + LoggerModule - -LoggerModule + +LoggerModule LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LoggerModule->LegacySchoolModule - - + + FederalStateService - -FederalStateService + +FederalStateService LegacySchoolModule->FederalStateService - - + + LegacySchoolService - -LegacySchoolService + +LegacySchoolService LegacySchoolModule->LegacySchoolService - - + + SchoolYearService - -SchoolYearService + +SchoolYearService LegacySchoolModule->SchoolYearService - - + + FederalStateRepo - -FederalStateRepo + +FederalStateRepo FederalStateRepo->LegacySchoolModule - - + + FederalStateService - -FederalStateService + +FederalStateService FederalStateService->LegacySchoolModule - - + + LegacySchoolRepo - -LegacySchoolRepo + +LegacySchoolRepo LegacySchoolRepo->LegacySchoolModule - - + + LegacySchoolService - -LegacySchoolService + +LegacySchoolService LegacySchoolService->LegacySchoolModule - - + + SchoolValidationService - -SchoolValidationService + +SchoolValidationService SchoolValidationService->LegacySchoolModule - - + + SchoolYearRepo - -SchoolYearRepo + +SchoolYearRepo SchoolYearRepo->LegacySchoolModule - - + + SchoolYearService - -SchoolYearService + +SchoolYearService SchoolYearService->LegacySchoolModule - - + + diff --git a/modules/LegacySchoolModule/dependencies.svg b/modules/LegacySchoolModule/dependencies.svg index 9a10c7544fc..1286a6d4d80 100644 --- a/modules/LegacySchoolModule/dependencies.svg +++ b/modules/LegacySchoolModule/dependencies.svg @@ -24,155 +24,155 @@ cluster_LegacySchoolModule - -cluster_LegacySchoolModule_imports - - cluster_LegacySchoolModule_providers - + + + +cluster_LegacySchoolModule_imports + cluster_LegacySchoolModule_exports - + LoggerModule - -LoggerModule + +LoggerModule LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LoggerModule->LegacySchoolModule - - + + FederalStateService - -FederalStateService + +FederalStateService LegacySchoolModule->FederalStateService - - + + LegacySchoolService - -LegacySchoolService + +LegacySchoolService LegacySchoolModule->LegacySchoolService - - + + SchoolYearService - -SchoolYearService + +SchoolYearService LegacySchoolModule->SchoolYearService - - + + FederalStateRepo - -FederalStateRepo + +FederalStateRepo FederalStateRepo->LegacySchoolModule - - + + FederalStateService - -FederalStateService + +FederalStateService FederalStateService->LegacySchoolModule - - + + LegacySchoolRepo - -LegacySchoolRepo + +LegacySchoolRepo LegacySchoolRepo->LegacySchoolModule - - + + LegacySchoolService - -LegacySchoolService + +LegacySchoolService LegacySchoolService->LegacySchoolModule - - + + SchoolValidationService - -SchoolValidationService + +SchoolValidationService SchoolValidationService->LegacySchoolModule - - + + SchoolYearRepo - -SchoolYearRepo + +SchoolYearRepo SchoolYearRepo->LegacySchoolModule - - + + SchoolYearService - -SchoolYearService + +SchoolYearService SchoolYearService->LegacySchoolModule - - + + diff --git a/modules/LessonModule.html b/modules/LessonModule.html index 89e23b6ac92..6c342b58549 100644 --- a/modules/LessonModule.html +++ b/modules/LessonModule.html @@ -66,167 +66,167 @@ cluster_LessonModule - -cluster_LessonModule_providers - - cluster_LessonModule_imports - + + + +cluster_LessonModule_providers + cluster_LessonModule_exports - + CopyHelperModule - -CopyHelperModule + +CopyHelperModule LessonModule - -LessonModule + +LessonModule CopyHelperModule->LessonModule - - + + FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule FilesStorageClientModule->LessonModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->LessonModule - - + + TaskModule - -TaskModule + +TaskModule TaskModule->LessonModule - - + + LessonCopyService - -LessonCopyService + +LessonCopyService LessonModule->LessonCopyService - - + + LessonService - -LessonService + +LessonService LessonModule->LessonService - - + + EtherpadService - -EtherpadService + +EtherpadService EtherpadService->LessonModule - - + + FeathersServiceProvider - -FeathersServiceProvider + +FeathersServiceProvider FeathersServiceProvider->LessonModule - - + + LessonCopyService - -LessonCopyService + +LessonCopyService LessonCopyService->LessonModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->LessonModule - - + + LessonService - -LessonService + +LessonService LessonService->LessonModule - - + + NexboardService - -NexboardService + +NexboardService NexboardService->LessonModule - - + + diff --git a/modules/LessonModule/dependencies.svg b/modules/LessonModule/dependencies.svg index 15081e35f04..b572b381909 100644 --- a/modules/LessonModule/dependencies.svg +++ b/modules/LessonModule/dependencies.svg @@ -24,167 +24,167 @@ cluster_LessonModule - -cluster_LessonModule_providers - - cluster_LessonModule_imports - + + + +cluster_LessonModule_providers + cluster_LessonModule_exports - + CopyHelperModule - -CopyHelperModule + +CopyHelperModule LessonModule - -LessonModule + +LessonModule CopyHelperModule->LessonModule - - + + FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule FilesStorageClientModule->LessonModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->LessonModule - - + + TaskModule - -TaskModule + +TaskModule TaskModule->LessonModule - - + + LessonCopyService - -LessonCopyService + +LessonCopyService LessonModule->LessonCopyService - - + + LessonService - -LessonService + +LessonService LessonModule->LessonService - - + + EtherpadService - -EtherpadService + +EtherpadService EtherpadService->LessonModule - - + + FeathersServiceProvider - -FeathersServiceProvider + +FeathersServiceProvider FeathersServiceProvider->LessonModule - - + + LessonCopyService - -LessonCopyService + +LessonCopyService LessonCopyService->LessonModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->LessonModule - - + + LessonService - -LessonService + +LessonService LessonService->LessonModule - - + + NexboardService - -NexboardService + +NexboardService NexboardService->LessonModule - - + + diff --git a/modules/LoggerModule.html b/modules/LoggerModule.html index 7703601b952..523e89f4a9e 100644 --- a/modules/LoggerModule.html +++ b/modules/LoggerModule.html @@ -66,14 +66,14 @@ cluster_LoggerModule - -cluster_LoggerModule_exports - - cluster_LoggerModule_providers + +cluster_LoggerModule_exports + + ErrorLogger diff --git a/modules/LoggerModule/dependencies.svg b/modules/LoggerModule/dependencies.svg index 15fdf003557..19f1467382c 100644 --- a/modules/LoggerModule/dependencies.svg +++ b/modules/LoggerModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_LoggerModule - -cluster_LoggerModule_exports - - cluster_LoggerModule_providers + +cluster_LoggerModule_exports + + ErrorLogger diff --git a/modules/LtiToolModule.html b/modules/LtiToolModule.html index ed37e69b728..9c9b88bfe67 100644 --- a/modules/LtiToolModule.html +++ b/modules/LtiToolModule.html @@ -66,14 +66,14 @@ cluster_LtiToolModule - -cluster_LtiToolModule_providers - - cluster_LtiToolModule_exports + +cluster_LtiToolModule_providers + + LtiToolService diff --git a/modules/LtiToolModule/dependencies.svg b/modules/LtiToolModule/dependencies.svg index a04811113b8..cb6c096489d 100644 --- a/modules/LtiToolModule/dependencies.svg +++ b/modules/LtiToolModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_LtiToolModule - -cluster_LtiToolModule_providers - - cluster_LtiToolModule_exports + +cluster_LtiToolModule_providers + + LtiToolService diff --git a/modules/NewsModule.html b/modules/NewsModule.html index 5d2d8642457..281a7cc1789 100644 --- a/modules/NewsModule.html +++ b/modules/NewsModule.html @@ -66,83 +66,83 @@ cluster_NewsModule - -cluster_NewsModule_providers - - cluster_NewsModule_imports - + + + +cluster_NewsModule_providers + cluster_NewsModule_exports - + AuthorizationModule - -AuthorizationModule + +AuthorizationModule NewsModule - -NewsModule + +NewsModule AuthorizationModule->NewsModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->NewsModule - - + + NewsUc - -NewsUc + +NewsUc NewsModule->NewsUc - - + + NewsRepo - -NewsRepo + +NewsRepo NewsRepo->NewsModule - - + + NewsUc - -NewsUc + +NewsUc NewsUc->NewsModule - - + + diff --git a/modules/NewsModule/dependencies.svg b/modules/NewsModule/dependencies.svg index a0080921c9e..60233ce948b 100644 --- a/modules/NewsModule/dependencies.svg +++ b/modules/NewsModule/dependencies.svg @@ -24,83 +24,83 @@ cluster_NewsModule - -cluster_NewsModule_providers - - cluster_NewsModule_imports - + + + +cluster_NewsModule_providers + cluster_NewsModule_exports - + AuthorizationModule - -AuthorizationModule + +AuthorizationModule NewsModule - -NewsModule + +NewsModule AuthorizationModule->NewsModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->NewsModule - - + + NewsUc - -NewsUc + +NewsUc NewsModule->NewsUc - - + + NewsRepo - -NewsRepo + +NewsRepo NewsRepo->NewsModule - - + + NewsUc - -NewsUc + +NewsUc NewsUc->NewsModule - - + + diff --git a/modules/OauthApiModule.html b/modules/OauthApiModule.html index deeb66e4e0f..19dc50a2a32 100644 --- a/modules/OauthApiModule.html +++ b/modules/OauthApiModule.html @@ -66,151 +66,151 @@ cluster_OauthApiModule - -cluster_OauthApiModule_providers - - cluster_OauthApiModule_imports - + + + +cluster_OauthApiModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule OauthApiModule - -OauthApiModule + +OauthApiModule AuthenticationModule->OauthApiModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->OauthApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->OauthApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->OauthApiModule - - + + OauthModule - -OauthModule + +OauthModule OauthModule->OauthApiModule - - + + ProvisioningModule - -ProvisioningModule + +ProvisioningModule ProvisioningModule->OauthApiModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->OauthApiModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->OauthApiModule - - + + UserModule - -UserModule + +UserModule UserModule->OauthApiModule - - + + HydraOauthUc - -HydraOauthUc + +HydraOauthUc HydraOauthUc->OauthApiModule - - + + OauthUc - -OauthUc + +OauthUc OauthUc->OauthApiModule - - + + diff --git a/modules/OauthApiModule/dependencies.svg b/modules/OauthApiModule/dependencies.svg index 0d368a51025..26de2d05b5e 100644 --- a/modules/OauthApiModule/dependencies.svg +++ b/modules/OauthApiModule/dependencies.svg @@ -24,151 +24,151 @@ cluster_OauthApiModule - -cluster_OauthApiModule_providers - - cluster_OauthApiModule_imports - + + + +cluster_OauthApiModule_providers + AuthenticationModule - -AuthenticationModule + +AuthenticationModule OauthApiModule - -OauthApiModule + +OauthApiModule AuthenticationModule->OauthApiModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->OauthApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->OauthApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->OauthApiModule - - + + OauthModule - -OauthModule + +OauthModule OauthModule->OauthApiModule - - + + ProvisioningModule - -ProvisioningModule + +ProvisioningModule ProvisioningModule->OauthApiModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->OauthApiModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->OauthApiModule - - + + UserModule - -UserModule + +UserModule UserModule->OauthApiModule - - + + HydraOauthUc - -HydraOauthUc + +HydraOauthUc HydraOauthUc->OauthApiModule - - + + OauthUc - -OauthUc + +OauthUc OauthUc->OauthApiModule - - + + diff --git a/modules/OauthModule.html b/modules/OauthModule.html index f6f952274f4..b1b9618c381 100644 --- a/modules/OauthModule.html +++ b/modules/OauthModule.html @@ -66,10 +66,6 @@ cluster_OauthModule - -cluster_OauthModule_exports - - cluster_OauthModule_providers @@ -78,6 +74,10 @@ cluster_OauthModule_imports + +cluster_OauthModule_exports + + AuthorizationModule diff --git a/modules/OauthModule/dependencies.svg b/modules/OauthModule/dependencies.svg index 39d14f1adba..64730eb6bba 100644 --- a/modules/OauthModule/dependencies.svg +++ b/modules/OauthModule/dependencies.svg @@ -24,10 +24,6 @@ cluster_OauthModule - -cluster_OauthModule_exports - - cluster_OauthModule_providers @@ -36,6 +32,10 @@ cluster_OauthModule_imports + +cluster_OauthModule_exports + + AuthorizationModule diff --git a/modules/OauthProviderModule.html b/modules/OauthProviderModule.html index 900063e167e..a5ea10f9464 100644 --- a/modules/OauthProviderModule.html +++ b/modules/OauthProviderModule.html @@ -66,14 +66,14 @@ cluster_OauthProviderModule - -cluster_OauthProviderModule_imports - - cluster_OauthProviderModule_exports + +cluster_OauthProviderModule_imports + + cluster_OauthProviderModule_providers diff --git a/modules/OauthProviderModule/dependencies.svg b/modules/OauthProviderModule/dependencies.svg index 03a026fbb88..ca1de7b3922 100644 --- a/modules/OauthProviderModule/dependencies.svg +++ b/modules/OauthProviderModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_OauthProviderModule - -cluster_OauthProviderModule_imports - - cluster_OauthProviderModule_exports + +cluster_OauthProviderModule_imports + + cluster_OauthProviderModule_providers diff --git a/modules/ProvisioningModule.html b/modules/ProvisioningModule.html index c4c4153445e..87679b9d5e4 100644 --- a/modules/ProvisioningModule.html +++ b/modules/ProvisioningModule.html @@ -66,191 +66,191 @@ cluster_ProvisioningModule - -cluster_ProvisioningModule_imports - - cluster_ProvisioningModule_exports - + cluster_ProvisioningModule_providers - + + + +cluster_ProvisioningModule_imports + AccountModule - -AccountModule + +AccountModule ProvisioningModule - -ProvisioningModule + +ProvisioningModule AccountModule->ProvisioningModule - - + + GroupModule - -GroupModule + +GroupModule GroupModule->ProvisioningModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ProvisioningModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ProvisioningModule - - + + RoleModule - -RoleModule + +RoleModule RoleModule->ProvisioningModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->ProvisioningModule - - + + UserModule - -UserModule + +UserModule UserModule->ProvisioningModule - - + + ProvisioningService - -ProvisioningService + +ProvisioningService ProvisioningModule->ProvisioningService - - + + IservProvisioningStrategy - -IservProvisioningStrategy + +IservProvisioningStrategy IservProvisioningStrategy->ProvisioningModule - - + + OidcMockProvisioningStrategy - -OidcMockProvisioningStrategy + +OidcMockProvisioningStrategy OidcMockProvisioningStrategy->ProvisioningModule - - + + OidcProvisioningService - -OidcProvisioningService + +OidcProvisioningService OidcProvisioningService->ProvisioningModule - - + + ProvisioningService - -ProvisioningService + +ProvisioningService ProvisioningService->ProvisioningModule - - + + SanisProvisioningStrategy - -SanisProvisioningStrategy + +SanisProvisioningStrategy SanisProvisioningStrategy->ProvisioningModule - - + + SanisResponseMapper - -SanisResponseMapper + +SanisResponseMapper SanisResponseMapper->ProvisioningModule - - + + diff --git a/modules/ProvisioningModule/dependencies.svg b/modules/ProvisioningModule/dependencies.svg index 886a8d23c62..00d904c379e 100644 --- a/modules/ProvisioningModule/dependencies.svg +++ b/modules/ProvisioningModule/dependencies.svg @@ -24,191 +24,191 @@ cluster_ProvisioningModule - -cluster_ProvisioningModule_imports - - cluster_ProvisioningModule_exports - + cluster_ProvisioningModule_providers - + + + +cluster_ProvisioningModule_imports + AccountModule - -AccountModule + +AccountModule ProvisioningModule - -ProvisioningModule + +ProvisioningModule AccountModule->ProvisioningModule - - + + GroupModule - -GroupModule + +GroupModule GroupModule->ProvisioningModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ProvisioningModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ProvisioningModule - - + + RoleModule - -RoleModule + +RoleModule RoleModule->ProvisioningModule - - + + SystemModule - -SystemModule + +SystemModule SystemModule->ProvisioningModule - - + + UserModule - -UserModule + +UserModule UserModule->ProvisioningModule - - + + ProvisioningService - -ProvisioningService + +ProvisioningService ProvisioningModule->ProvisioningService - - + + IservProvisioningStrategy - -IservProvisioningStrategy + +IservProvisioningStrategy IservProvisioningStrategy->ProvisioningModule - - + + OidcMockProvisioningStrategy - -OidcMockProvisioningStrategy + +OidcMockProvisioningStrategy OidcMockProvisioningStrategy->ProvisioningModule - - + + OidcProvisioningService - -OidcProvisioningService + +OidcProvisioningService OidcProvisioningService->ProvisioningModule - - + + ProvisioningService - -ProvisioningService + +ProvisioningService ProvisioningService->ProvisioningModule - - + + SanisProvisioningStrategy - -SanisProvisioningStrategy + +SanisProvisioningStrategy SanisProvisioningStrategy->ProvisioningModule - - + + SanisResponseMapper - -SanisResponseMapper + +SanisResponseMapper SanisResponseMapper->ProvisioningModule - - + + diff --git a/modules/PseudonymModule.html b/modules/PseudonymModule.html index 37f6fff87da..72921246d31 100644 --- a/modules/PseudonymModule.html +++ b/modules/PseudonymModule.html @@ -66,14 +66,14 @@ cluster_PseudonymModule - -cluster_PseudonymModule_providers - - cluster_PseudonymModule_exports + +cluster_PseudonymModule_providers + + PseudonymService diff --git a/modules/PseudonymModule/dependencies.svg b/modules/PseudonymModule/dependencies.svg index 8f00f3aeec2..ea633d43459 100644 --- a/modules/PseudonymModule/dependencies.svg +++ b/modules/PseudonymModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_PseudonymModule - -cluster_PseudonymModule_providers - - cluster_PseudonymModule_exports + +cluster_PseudonymModule_providers + + PseudonymService diff --git a/modules/SchoolExternalToolModule.html b/modules/SchoolExternalToolModule.html index 96dfae92c67..8631d1f550b 100644 --- a/modules/SchoolExternalToolModule.html +++ b/modules/SchoolExternalToolModule.html @@ -66,6 +66,10 @@ cluster_SchoolExternalToolModule + +cluster_SchoolExternalToolModule_exports + + cluster_SchoolExternalToolModule_imports @@ -74,10 +78,6 @@ cluster_SchoolExternalToolModule_providers - -cluster_SchoolExternalToolModule_exports - - CommonToolModule diff --git a/modules/SchoolExternalToolModule/dependencies.svg b/modules/SchoolExternalToolModule/dependencies.svg index 7ae7ea928da..6aff406a4ce 100644 --- a/modules/SchoolExternalToolModule/dependencies.svg +++ b/modules/SchoolExternalToolModule/dependencies.svg @@ -24,6 +24,10 @@ cluster_SchoolExternalToolModule + +cluster_SchoolExternalToolModule_exports + + cluster_SchoolExternalToolModule_imports @@ -32,10 +36,6 @@ cluster_SchoolExternalToolModule_providers - -cluster_SchoolExternalToolModule_exports - - CommonToolModule diff --git a/modules/SharingApiModule.html b/modules/SharingApiModule.html index 02ea8f26d64..0c36cac0d3c 100644 --- a/modules/SharingApiModule.html +++ b/modules/SharingApiModule.html @@ -66,103 +66,103 @@ cluster_SharingApiModule - -cluster_SharingApiModule_providers - - cluster_SharingApiModule_imports - + + + +cluster_SharingApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule SharingApiModule - -SharingApiModule + +SharingApiModule AuthorizationModule->SharingApiModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->SharingApiModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->SharingApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->SharingApiModule - - + + SharingModule - -SharingModule + +SharingModule SharingModule->SharingApiModule - - + + TaskModule - -TaskModule + +TaskModule TaskModule->SharingApiModule - - + + ShareTokenUC - -ShareTokenUC + +ShareTokenUC ShareTokenUC->SharingApiModule - - + + diff --git a/modules/SharingApiModule/dependencies.svg b/modules/SharingApiModule/dependencies.svg index 0f22d34e44e..1287f7d218c 100644 --- a/modules/SharingApiModule/dependencies.svg +++ b/modules/SharingApiModule/dependencies.svg @@ -24,103 +24,103 @@ cluster_SharingApiModule - -cluster_SharingApiModule_providers - - cluster_SharingApiModule_imports - + + + +cluster_SharingApiModule_providers + AuthorizationModule - -AuthorizationModule + +AuthorizationModule SharingApiModule - -SharingApiModule + +SharingApiModule AuthorizationModule->SharingApiModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->SharingApiModule - - + + LessonModule - -LessonModule + +LessonModule LessonModule->SharingApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->SharingApiModule - - + + SharingModule - -SharingModule + +SharingModule SharingModule->SharingApiModule - - + + TaskModule - -TaskModule + +TaskModule TaskModule->SharingApiModule - - + + ShareTokenUC - -ShareTokenUC + +ShareTokenUC ShareTokenUC->SharingApiModule - - + + diff --git a/modules/SystemModule.html b/modules/SystemModule.html index 7f01e0c766e..025f6be2d4b 100644 --- a/modules/SystemModule.html +++ b/modules/SystemModule.html @@ -66,95 +66,95 @@ cluster_SystemModule - -cluster_SystemModule_exports - + +cluster_SystemModule_imports + cluster_SystemModule_providers - + - -cluster_SystemModule_imports - + +cluster_SystemModule_exports + IdentityManagementModule - -IdentityManagementModule + +IdentityManagementModule SystemModule - -SystemModule + +SystemModule IdentityManagementModule->SystemModule - - + + SystemOidcService - -SystemOidcService + +SystemOidcService SystemModule->SystemOidcService - - + + SystemService - -SystemService + +SystemService SystemModule->SystemService - - + + SystemOidcService - -SystemOidcService + +SystemOidcService SystemOidcService->SystemModule - - + + SystemRepo - -SystemRepo + +SystemRepo SystemRepo->SystemModule - - + + SystemService - -SystemService + +SystemService SystemService->SystemModule - - + + diff --git a/modules/SystemModule/dependencies.svg b/modules/SystemModule/dependencies.svg index 471b81aae65..1ef9408e389 100644 --- a/modules/SystemModule/dependencies.svg +++ b/modules/SystemModule/dependencies.svg @@ -24,95 +24,95 @@ cluster_SystemModule - -cluster_SystemModule_exports - + +cluster_SystemModule_imports + cluster_SystemModule_providers - + - -cluster_SystemModule_imports - + +cluster_SystemModule_exports + IdentityManagementModule - -IdentityManagementModule + +IdentityManagementModule SystemModule - -SystemModule + +SystemModule IdentityManagementModule->SystemModule - - + + SystemOidcService - -SystemOidcService + +SystemOidcService SystemModule->SystemOidcService - - + + SystemService - -SystemService + +SystemService SystemModule->SystemService - - + + SystemOidcService - -SystemOidcService + +SystemOidcService SystemOidcService->SystemModule - - + + SystemRepo - -SystemRepo + +SystemRepo SystemRepo->SystemModule - - + + SystemService - -SystemService + +SystemService SystemService->SystemModule - - + + diff --git a/modules/TaskModule.html b/modules/TaskModule.html index b5c2e4b3496..909c6c096e4 100644 --- a/modules/TaskModule.html +++ b/modules/TaskModule.html @@ -66,167 +66,167 @@ cluster_TaskModule - -cluster_TaskModule_providers - - cluster_TaskModule_imports - + cluster_TaskModule_exports - + + + +cluster_TaskModule_providers + CopyHelperModule - -CopyHelperModule + +CopyHelperModule TaskModule - -TaskModule + +TaskModule CopyHelperModule->TaskModule - - + + FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule FilesStorageClientModule->TaskModule - - + + SubmissionService - -SubmissionService + +SubmissionService TaskModule->SubmissionService - - + + TaskCopyService - -TaskCopyService + +TaskCopyService TaskModule->TaskCopyService - - + + TaskService - -TaskService + +TaskService TaskModule->TaskService - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->TaskModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->TaskModule - - + + SubmissionRepo - -SubmissionRepo + +SubmissionRepo SubmissionRepo->TaskModule - - + + SubmissionService - -SubmissionService + +SubmissionService SubmissionService->TaskModule - - + + TaskCopyService - -TaskCopyService + +TaskCopyService TaskCopyService->TaskModule - - + + TaskRepo - -TaskRepo + +TaskRepo TaskRepo->TaskModule - - + + TaskService - -TaskService + +TaskService TaskService->TaskModule - - + + diff --git a/modules/TaskModule/dependencies.svg b/modules/TaskModule/dependencies.svg index 8b9172c0d62..e7e5aa3c1be 100644 --- a/modules/TaskModule/dependencies.svg +++ b/modules/TaskModule/dependencies.svg @@ -24,167 +24,167 @@ cluster_TaskModule - -cluster_TaskModule_providers - - cluster_TaskModule_imports - + cluster_TaskModule_exports - + + + +cluster_TaskModule_providers + CopyHelperModule - -CopyHelperModule + +CopyHelperModule TaskModule - -TaskModule + +TaskModule CopyHelperModule->TaskModule - - + + FilesStorageClientModule - -FilesStorageClientModule + +FilesStorageClientModule FilesStorageClientModule->TaskModule - - + + SubmissionService - -SubmissionService + +SubmissionService TaskModule->SubmissionService - - + + TaskCopyService - -TaskCopyService + +TaskCopyService TaskModule->TaskCopyService - - + + TaskService - -TaskService + +TaskService TaskModule->TaskService - - + + CourseRepo - -CourseRepo + +CourseRepo CourseRepo->TaskModule - - + + LessonRepo - -LessonRepo + +LessonRepo LessonRepo->TaskModule - - + + SubmissionRepo - -SubmissionRepo + +SubmissionRepo SubmissionRepo->TaskModule - - + + SubmissionService - -SubmissionService + +SubmissionService SubmissionService->TaskModule - - + + TaskCopyService - -TaskCopyService + +TaskCopyService TaskCopyService->TaskModule - - + + TaskRepo - -TaskRepo + +TaskRepo TaskRepo->TaskModule - - + + TaskService - -TaskService + +TaskService TaskService->TaskModule - - + + diff --git a/modules/TeamsModule.html b/modules/TeamsModule.html index 86d3fb0ee19..e724bbe74ef 100644 --- a/modules/TeamsModule.html +++ b/modules/TeamsModule.html @@ -66,14 +66,14 @@ cluster_TeamsModule - -cluster_TeamsModule_providers - - cluster_TeamsModule_exports + +cluster_TeamsModule_providers + + TeamService diff --git a/modules/TeamsModule/dependencies.svg b/modules/TeamsModule/dependencies.svg index 81f552b409f..32b4bc18055 100644 --- a/modules/TeamsModule/dependencies.svg +++ b/modules/TeamsModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_TeamsModule - -cluster_TeamsModule_providers - - cluster_TeamsModule_exports + +cluster_TeamsModule_providers + + TeamService diff --git a/modules/ToolApiModule.html b/modules/ToolApiModule.html index 34d6c466ad4..eebe204cf00 100644 --- a/modules/ToolApiModule.html +++ b/modules/ToolApiModule.html @@ -66,247 +66,247 @@ cluster_ToolApiModule - -cluster_ToolApiModule_imports - - cluster_ToolApiModule_providers - + + + +cluster_ToolApiModule_imports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule ToolApiModule - -ToolApiModule + +ToolApiModule AuthorizationModule->ToolApiModule - - + + CommonToolModule - -CommonToolModule + +CommonToolModule CommonToolModule->ToolApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ToolApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ToolApiModule - - + + ToolConfigModule - -ToolConfigModule + +ToolConfigModule ToolConfigModule->ToolApiModule - - + + ToolModule - -ToolModule + +ToolModule ToolModule->ToolApiModule - - + + UserModule - -UserModule + +UserModule UserModule->ToolApiModule - - + + ContextExternalToolUc - -ContextExternalToolUc + +ContextExternalToolUc ContextExternalToolUc->ToolApiModule - - + + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService ExternalToolConfigurationService->ToolApiModule - - + + ExternalToolConfigurationUc - -ExternalToolConfigurationUc + +ExternalToolConfigurationUc ExternalToolConfigurationUc->ToolApiModule - - + + ExternalToolRequestMapper - -ExternalToolRequestMapper + +ExternalToolRequestMapper ExternalToolRequestMapper->ToolApiModule - - + + ExternalToolResponseMapper - -ExternalToolResponseMapper + +ExternalToolResponseMapper ExternalToolResponseMapper->ToolApiModule - - + + ExternalToolUc - -ExternalToolUc + +ExternalToolUc ExternalToolUc->ToolApiModule - - + + LtiToolRepo - -LtiToolRepo + +LtiToolRepo LtiToolRepo->ToolApiModule - - + + SchoolExternalToolRequestMapper - -SchoolExternalToolRequestMapper + +SchoolExternalToolRequestMapper SchoolExternalToolRequestMapper->ToolApiModule - - + + SchoolExternalToolResponseMapper - -SchoolExternalToolResponseMapper + +SchoolExternalToolResponseMapper SchoolExternalToolResponseMapper->ToolApiModule - - + + SchoolExternalToolUc - -SchoolExternalToolUc + +SchoolExternalToolUc SchoolExternalToolUc->ToolApiModule - - + + ToolLaunchUc - -ToolLaunchUc + +ToolLaunchUc ToolLaunchUc->ToolApiModule - - + + ToolReferenceUc - -ToolReferenceUc + +ToolReferenceUc ToolReferenceUc->ToolApiModule - - + + diff --git a/modules/ToolApiModule/dependencies.svg b/modules/ToolApiModule/dependencies.svg index b36df0eb412..042b8611a36 100644 --- a/modules/ToolApiModule/dependencies.svg +++ b/modules/ToolApiModule/dependencies.svg @@ -24,247 +24,247 @@ cluster_ToolApiModule - -cluster_ToolApiModule_imports - - cluster_ToolApiModule_providers - + + + +cluster_ToolApiModule_imports + AuthorizationModule - -AuthorizationModule + +AuthorizationModule ToolApiModule - -ToolApiModule + +ToolApiModule AuthorizationModule->ToolApiModule - - + + CommonToolModule - -CommonToolModule + +CommonToolModule CommonToolModule->ToolApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ToolApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->ToolApiModule - - + + ToolConfigModule - -ToolConfigModule + +ToolConfigModule ToolConfigModule->ToolApiModule - - + + ToolModule - -ToolModule + +ToolModule ToolModule->ToolApiModule - - + + UserModule - -UserModule + +UserModule UserModule->ToolApiModule - - + + ContextExternalToolUc - -ContextExternalToolUc + +ContextExternalToolUc ContextExternalToolUc->ToolApiModule - - + + ExternalToolConfigurationService - -ExternalToolConfigurationService + +ExternalToolConfigurationService ExternalToolConfigurationService->ToolApiModule - - + + ExternalToolConfigurationUc - -ExternalToolConfigurationUc + +ExternalToolConfigurationUc ExternalToolConfigurationUc->ToolApiModule - - + + ExternalToolRequestMapper - -ExternalToolRequestMapper + +ExternalToolRequestMapper ExternalToolRequestMapper->ToolApiModule - - + + ExternalToolResponseMapper - -ExternalToolResponseMapper + +ExternalToolResponseMapper ExternalToolResponseMapper->ToolApiModule - - + + ExternalToolUc - -ExternalToolUc + +ExternalToolUc ExternalToolUc->ToolApiModule - - + + LtiToolRepo - -LtiToolRepo + +LtiToolRepo LtiToolRepo->ToolApiModule - - + + SchoolExternalToolRequestMapper - -SchoolExternalToolRequestMapper + +SchoolExternalToolRequestMapper SchoolExternalToolRequestMapper->ToolApiModule - - + + SchoolExternalToolResponseMapper - -SchoolExternalToolResponseMapper + +SchoolExternalToolResponseMapper SchoolExternalToolResponseMapper->ToolApiModule - - + + SchoolExternalToolUc - -SchoolExternalToolUc + +SchoolExternalToolUc SchoolExternalToolUc->ToolApiModule - - + + ToolLaunchUc - -ToolLaunchUc + +ToolLaunchUc ToolLaunchUc->ToolApiModule - - + + ToolReferenceUc - -ToolReferenceUc + +ToolReferenceUc ToolReferenceUc->ToolApiModule - - + + diff --git a/modules/ToolLaunchModule.html b/modules/ToolLaunchModule.html index 7d3ec61733f..aa413d4e097 100644 --- a/modules/ToolLaunchModule.html +++ b/modules/ToolLaunchModule.html @@ -66,191 +66,191 @@ cluster_ToolLaunchModule - -cluster_ToolLaunchModule_imports - - cluster_ToolLaunchModule_providers - + cluster_ToolLaunchModule_exports - + + + +cluster_ToolLaunchModule_imports + CommonToolModule - -CommonToolModule + +CommonToolModule ToolLaunchModule - -ToolLaunchModule + +ToolLaunchModule CommonToolModule->ToolLaunchModule - - + + ContextExternalToolModule - -ContextExternalToolModule + +ContextExternalToolModule ContextExternalToolModule->ToolLaunchModule - - + + ExternalToolModule - -ExternalToolModule + +ExternalToolModule ExternalToolModule->ToolLaunchModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->ToolLaunchModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ToolLaunchModule - - + + PseudonymModule - -PseudonymModule + +PseudonymModule PseudonymModule->ToolLaunchModule - - + + SchoolExternalToolModule - -SchoolExternalToolModule + +SchoolExternalToolModule SchoolExternalToolModule->ToolLaunchModule - - + + UserModule - -UserModule + +UserModule UserModule->ToolLaunchModule - - + + ToolLaunchService - -ToolLaunchService + +ToolLaunchService ToolLaunchModule->ToolLaunchService - - + + BasicToolLaunchStrategy - -BasicToolLaunchStrategy + +BasicToolLaunchStrategy BasicToolLaunchStrategy->ToolLaunchModule - - + + Lti11EncryptionService - -Lti11EncryptionService + +Lti11EncryptionService Lti11EncryptionService->ToolLaunchModule - - + + Lti11ToolLaunchStrategy - -Lti11ToolLaunchStrategy + +Lti11ToolLaunchStrategy Lti11ToolLaunchStrategy->ToolLaunchModule - - + + OAuth2ToolLaunchStrategy - -OAuth2ToolLaunchStrategy + +OAuth2ToolLaunchStrategy OAuth2ToolLaunchStrategy->ToolLaunchModule - - + + ToolLaunchService - -ToolLaunchService + +ToolLaunchService ToolLaunchService->ToolLaunchModule - - + + diff --git a/modules/ToolLaunchModule/dependencies.svg b/modules/ToolLaunchModule/dependencies.svg index 52468468d10..62ed8aea960 100644 --- a/modules/ToolLaunchModule/dependencies.svg +++ b/modules/ToolLaunchModule/dependencies.svg @@ -24,191 +24,191 @@ cluster_ToolLaunchModule - -cluster_ToolLaunchModule_imports - - cluster_ToolLaunchModule_providers - + cluster_ToolLaunchModule_exports - + + + +cluster_ToolLaunchModule_imports + CommonToolModule - -CommonToolModule + +CommonToolModule ToolLaunchModule - -ToolLaunchModule + +ToolLaunchModule CommonToolModule->ToolLaunchModule - - + + ContextExternalToolModule - -ContextExternalToolModule + +ContextExternalToolModule ContextExternalToolModule->ToolLaunchModule - - + + ExternalToolModule - -ExternalToolModule + +ExternalToolModule ExternalToolModule->ToolLaunchModule - - + + LearnroomModule - -LearnroomModule + +LearnroomModule LearnroomModule->ToolLaunchModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->ToolLaunchModule - - + + PseudonymModule - -PseudonymModule + +PseudonymModule PseudonymModule->ToolLaunchModule - - + + SchoolExternalToolModule - -SchoolExternalToolModule + +SchoolExternalToolModule SchoolExternalToolModule->ToolLaunchModule - - + + UserModule - -UserModule + +UserModule UserModule->ToolLaunchModule - - + + ToolLaunchService - -ToolLaunchService + +ToolLaunchService ToolLaunchModule->ToolLaunchService - - + + BasicToolLaunchStrategy - -BasicToolLaunchStrategy + +BasicToolLaunchStrategy BasicToolLaunchStrategy->ToolLaunchModule - - + + Lti11EncryptionService - -Lti11EncryptionService + +Lti11EncryptionService Lti11EncryptionService->ToolLaunchModule - - + + Lti11ToolLaunchStrategy - -Lti11ToolLaunchStrategy + +Lti11ToolLaunchStrategy Lti11ToolLaunchStrategy->ToolLaunchModule - - + + OAuth2ToolLaunchStrategy - -OAuth2ToolLaunchStrategy + +OAuth2ToolLaunchStrategy OAuth2ToolLaunchStrategy->ToolLaunchModule - - + + ToolLaunchService - -ToolLaunchService + +ToolLaunchService ToolLaunchService->ToolLaunchModule - - + + diff --git a/modules/ToolModule.html b/modules/ToolModule.html index 8efe1f7804d..fa20e62911d 100644 --- a/modules/ToolModule.html +++ b/modules/ToolModule.html @@ -66,14 +66,14 @@ cluster_ToolModule - -cluster_ToolModule_exports - - cluster_ToolModule_providers + +cluster_ToolModule_exports + + cluster_ToolModule_imports diff --git a/modules/ToolModule/dependencies.svg b/modules/ToolModule/dependencies.svg index 7fcb336870d..fc7a7264243 100644 --- a/modules/ToolModule/dependencies.svg +++ b/modules/ToolModule/dependencies.svg @@ -24,14 +24,14 @@ cluster_ToolModule - -cluster_ToolModule_exports - - cluster_ToolModule_providers + +cluster_ToolModule_exports + + cluster_ToolModule_imports diff --git a/modules/UserApiModule.html b/modules/UserApiModule.html index b0af7fc65ff..e8022781991 100644 --- a/modules/UserApiModule.html +++ b/modules/UserApiModule.html @@ -66,19 +66,19 @@ cluster_UserApiModule - -cluster_UserApiModule_providers - - cluster_UserApiModule_imports - + + + +cluster_UserApiModule_providers + UserModule - -UserModule + +UserModule @@ -89,20 +89,20 @@ UserModule->UserApiModule - - + + UserUc - -UserUc + +UserUc UserUc->UserApiModule - - + + diff --git a/modules/UserApiModule/dependencies.svg b/modules/UserApiModule/dependencies.svg index 0bb7fadff78..01b936dce17 100644 --- a/modules/UserApiModule/dependencies.svg +++ b/modules/UserApiModule/dependencies.svg @@ -24,19 +24,19 @@ cluster_UserApiModule - -cluster_UserApiModule_providers - - cluster_UserApiModule_imports - + + + +cluster_UserApiModule_providers + UserModule - -UserModule + +UserModule @@ -47,20 +47,20 @@ UserModule->UserApiModule - - + + UserUc - -UserUc + +UserUc UserUc->UserApiModule - - + + diff --git a/modules/UserLoginMigrationApiModule.html b/modules/UserLoginMigrationApiModule.html index 66fa2176e52..704cfaa771c 100644 --- a/modules/UserLoginMigrationApiModule.html +++ b/modules/UserLoginMigrationApiModule.html @@ -66,175 +66,175 @@ cluster_UserLoginMigrationApiModule - -cluster_UserLoginMigrationApiModule_imports - - cluster_UserLoginMigrationApiModule_providers - + + + +cluster_UserLoginMigrationApiModule_imports + AuthenticationModule - -AuthenticationModule + +AuthenticationModule UserLoginMigrationApiModule - -UserLoginMigrationApiModule + +UserLoginMigrationApiModule AuthenticationModule->UserLoginMigrationApiModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->UserLoginMigrationApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->UserLoginMigrationApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->UserLoginMigrationApiModule - - + + OauthModule - -OauthModule + +OauthModule OauthModule->UserLoginMigrationApiModule - - + + ProvisioningModule - -ProvisioningModule + +ProvisioningModule ProvisioningModule->UserLoginMigrationApiModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->UserLoginMigrationApiModule - - + + CloseUserLoginMigrationUc - -CloseUserLoginMigrationUc + +CloseUserLoginMigrationUc CloseUserLoginMigrationUc->UserLoginMigrationApiModule - - + + PageContentMapper - -PageContentMapper + +PageContentMapper PageContentMapper->UserLoginMigrationApiModule - - + + RestartUserLoginMigrationUc - -RestartUserLoginMigrationUc + +RestartUserLoginMigrationUc RestartUserLoginMigrationUc->UserLoginMigrationApiModule - - + + StartUserLoginMigrationUc - -StartUserLoginMigrationUc + +StartUserLoginMigrationUc StartUserLoginMigrationUc->UserLoginMigrationApiModule - - + + ToggleUserLoginMigrationUc - -ToggleUserLoginMigrationUc + +ToggleUserLoginMigrationUc ToggleUserLoginMigrationUc->UserLoginMigrationApiModule - - + + UserLoginMigrationUc - -UserLoginMigrationUc + +UserLoginMigrationUc UserLoginMigrationUc->UserLoginMigrationApiModule - - + + diff --git a/modules/UserLoginMigrationApiModule/dependencies.svg b/modules/UserLoginMigrationApiModule/dependencies.svg index 8ec06bebd6b..71d8658e2d2 100644 --- a/modules/UserLoginMigrationApiModule/dependencies.svg +++ b/modules/UserLoginMigrationApiModule/dependencies.svg @@ -24,175 +24,175 @@ cluster_UserLoginMigrationApiModule - -cluster_UserLoginMigrationApiModule_imports - - cluster_UserLoginMigrationApiModule_providers - + + + +cluster_UserLoginMigrationApiModule_imports + AuthenticationModule - -AuthenticationModule + +AuthenticationModule UserLoginMigrationApiModule - -UserLoginMigrationApiModule + +UserLoginMigrationApiModule AuthenticationModule->UserLoginMigrationApiModule - - + + AuthorizationModule - -AuthorizationModule + +AuthorizationModule AuthorizationModule->UserLoginMigrationApiModule - - + + LegacySchoolModule - -LegacySchoolModule + +LegacySchoolModule LegacySchoolModule->UserLoginMigrationApiModule - - + + LoggerModule - -LoggerModule + +LoggerModule LoggerModule->UserLoginMigrationApiModule - - + + OauthModule - -OauthModule + +OauthModule OauthModule->UserLoginMigrationApiModule - - + + ProvisioningModule - -ProvisioningModule + +ProvisioningModule ProvisioningModule->UserLoginMigrationApiModule - - + + UserLoginMigrationModule - -UserLoginMigrationModule + +UserLoginMigrationModule UserLoginMigrationModule->UserLoginMigrationApiModule - - + + CloseUserLoginMigrationUc - -CloseUserLoginMigrationUc + +CloseUserLoginMigrationUc CloseUserLoginMigrationUc->UserLoginMigrationApiModule - - + + PageContentMapper - -PageContentMapper + +PageContentMapper PageContentMapper->UserLoginMigrationApiModule - - + + RestartUserLoginMigrationUc - -RestartUserLoginMigrationUc + +RestartUserLoginMigrationUc RestartUserLoginMigrationUc->UserLoginMigrationApiModule - - + + StartUserLoginMigrationUc - -StartUserLoginMigrationUc + +StartUserLoginMigrationUc StartUserLoginMigrationUc->UserLoginMigrationApiModule - - + + ToggleUserLoginMigrationUc - -ToggleUserLoginMigrationUc + +ToggleUserLoginMigrationUc ToggleUserLoginMigrationUc->UserLoginMigrationApiModule - - + + UserLoginMigrationUc - -UserLoginMigrationUc + +UserLoginMigrationUc UserLoginMigrationUc->UserLoginMigrationApiModule - - + + diff --git a/modules/UserLoginMigrationModule.html b/modules/UserLoginMigrationModule.html index a2b9e712937..205ad501175 100644 --- a/modules/UserLoginMigrationModule.html +++ b/modules/UserLoginMigrationModule.html @@ -66,6 +66,10 @@ cluster_UserLoginMigrationModule + +cluster_UserLoginMigrationModule_exports + + cluster_UserLoginMigrationModule_providers @@ -74,10 +78,6 @@ cluster_UserLoginMigrationModule_imports - -cluster_UserLoginMigrationModule_exports - - AccountModule diff --git a/modules/UserLoginMigrationModule/dependencies.svg b/modules/UserLoginMigrationModule/dependencies.svg index 3b9af6ad517..44338636d38 100644 --- a/modules/UserLoginMigrationModule/dependencies.svg +++ b/modules/UserLoginMigrationModule/dependencies.svg @@ -24,6 +24,10 @@ cluster_UserLoginMigrationModule + +cluster_UserLoginMigrationModule_exports + + cluster_UserLoginMigrationModule_providers @@ -32,10 +36,6 @@ cluster_UserLoginMigrationModule_imports - -cluster_UserLoginMigrationModule_exports - - AccountModule diff --git a/overview.html b/overview.html index ddf179193e9..1477f7e56f7 100644 --- a/overview.html +++ b/overview.html @@ -7552,7 +7552,7 @@

    -

    570 Classes

    +

    571 Classes